neon page (#35759)
* switch from neon page init * postgres platform section * dx section visuals * neon page graphics * last touches * disable crawl to page * fixes * polish * copy change
@@ -56,7 +56,7 @@ const FeatureItem: FC<FeatureItemProps> = ({ feature }) => {
|
||||
const Icon: LucideIcon = feature.icon
|
||||
|
||||
return (
|
||||
<li className="flex flex-nowrap items-center h-fit gap-2 sm:gap-4 text-foreground text-xs sm:text-sm">
|
||||
<li className="flex flex-nowrap items-center h-fit gap-2 sm:gap-4 text-foreground-light text-xs sm:text-sm">
|
||||
<figure className="border not-prose bg-surface-100 flex h-8 w-8 items-center justify-center rounded-md">
|
||||
<Icon className="w-4 h-4 stroke-1" />
|
||||
</figure>
|
||||
|
||||
@@ -1,30 +1,40 @@
|
||||
import Link from 'next/link'
|
||||
import React, { FC } from 'react'
|
||||
import { cn } from 'ui'
|
||||
|
||||
import SectionContainer from '~/components/Layouts/SectionContainer'
|
||||
|
||||
interface Props {
|
||||
id: string
|
||||
quote: Quote
|
||||
className?: string
|
||||
}
|
||||
|
||||
type Quote = {
|
||||
text: string
|
||||
author: string
|
||||
logo: string | JSX.Element
|
||||
logo?: string | JSX.Element
|
||||
role: string
|
||||
avatar?: string | JSX.Element
|
||||
link?: string
|
||||
}
|
||||
|
||||
const SingleQuote: FC<Props> = ({ id: sectionId, quote }) => {
|
||||
const SingleQuote: FC<Props> = ({ id: sectionId, quote, className }) => {
|
||||
return (
|
||||
<SectionContainer
|
||||
id={sectionId}
|
||||
className="flex flex-col items-center text-center gap-8 md:gap-12"
|
||||
className={cn('flex flex-col items-center text-center gap-8 md:gap-12', className)}
|
||||
>
|
||||
<q className="text-2xl max-w-xs md:text-3xl md:max-w-xl">{quote.text}</q>
|
||||
<div className="flex flex-col items-center gap-1">
|
||||
<figure className="text-foreground-lighter mb-4">{quote.logo}</figure>
|
||||
{quote.logo && <figure className="text-foreground-lighter mb-4">{quote.logo}</figure>}
|
||||
<span className="text-foreground">{quote.author}</span>
|
||||
<span className="text-foreground-lighter">{quote.role}</span>
|
||||
<span className="text-foreground-lighter font-mono text-sm">{quote.role}</span>
|
||||
{quote.avatar && (
|
||||
<Link href={quote.link ?? '#'}>
|
||||
<figure className="text-foreground-muted mt-4">{quote.avatar}</figure>
|
||||
</Link>
|
||||
)}
|
||||
</div>
|
||||
</SectionContainer>
|
||||
)
|
||||
|
||||
@@ -14,6 +14,7 @@ const AuthVisual: React.FC<Props> = ({ className }) => {
|
||||
aria-label="Supabase Authentication provides Row Level Security which enables you to define custom Policies to restrict access to your database"
|
||||
>
|
||||
<Image
|
||||
draggable={false}
|
||||
src="/images/index/products/auth.svg"
|
||||
alt="Supabase Authentication user db rows"
|
||||
fill
|
||||
@@ -23,6 +24,7 @@ const AuthVisual: React.FC<Props> = ({ className }) => {
|
||||
className="hidden dark:block absolute inset-0 object-cover object-center xl:object-bottom"
|
||||
/>
|
||||
<Image
|
||||
draggable={false}
|
||||
src="/images/index/products/auth-active.svg"
|
||||
alt="Supabase Authentication user db rows"
|
||||
fill
|
||||
@@ -32,6 +34,7 @@ const AuthVisual: React.FC<Props> = ({ className }) => {
|
||||
aria-hidden
|
||||
/>
|
||||
<Image
|
||||
draggable={false}
|
||||
src="/images/index/products/auth-light.svg"
|
||||
alt="Supabase Authentication user db rows"
|
||||
fill
|
||||
@@ -41,6 +44,7 @@ const AuthVisual: React.FC<Props> = ({ className }) => {
|
||||
className="dark:hidden absolute inset-0 object-cover object-center xl:object-bottom"
|
||||
/>
|
||||
<Image
|
||||
draggable={false}
|
||||
src="/images/index/products/auth-active-light.svg"
|
||||
alt="Supabase Authentication user db rows"
|
||||
fill
|
||||
|
||||
@@ -16,38 +16,42 @@ const DataAPIsVisual: React.FC<Props> = ({ className }) => (
|
||||
className="relative h-full !aspect-[330/430] -right-10 -left-10 items-end pb-2 z-10 flex pause animate-[marquee-reverse_30000ms_linear_both_infinite] motion-safe:group-hover:run will-change-transform"
|
||||
>
|
||||
<Image
|
||||
draggable={false}
|
||||
src="/images/index/products/data-apis-lines-dark.svg"
|
||||
alt="Supabase restful DataAPIs"
|
||||
fill
|
||||
sizes="100%"
|
||||
width={330}
|
||||
height={430}
|
||||
quality={100}
|
||||
className="hidden dark:block !h-full !aspect-[330/430]"
|
||||
className="hidden dark:block !h-full object-contain !aspect-[330/430]"
|
||||
/>
|
||||
<Image
|
||||
draggable={false}
|
||||
src="/images/index/products/data-apis-lines-light.svg"
|
||||
alt="Supabase restful DataAPIs"
|
||||
fill
|
||||
sizes="100%"
|
||||
width={330}
|
||||
height={430}
|
||||
quality={100}
|
||||
className="dark:block !h-full !aspect-[330/430]"
|
||||
className="dark:block !h-full !aspect-[330/430] not-sr-only"
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
<Image
|
||||
draggable={false}
|
||||
src="/images/index/products/data-apis-dark.svg"
|
||||
alt="Supabase restful DataAPIs"
|
||||
fill
|
||||
sizes="100%"
|
||||
quality={100}
|
||||
className="hidden dark:block absolute h-full aspect-[330/430] inset-0 z-10 object-contain xl:object-cover 2xl:object-contain object-center bottom-0"
|
||||
className="hidden dark:block absolute !h-full aspect-[330/430] inset-0 z-10 object-contain -mt-1.5 object-center bottom-0"
|
||||
/>
|
||||
<Image
|
||||
draggable={false}
|
||||
src="/images/index/products/data-apis-light.svg"
|
||||
alt="Supabase restful DataAPIs"
|
||||
fill
|
||||
sizes="100%"
|
||||
quality={100}
|
||||
className="dark:hidden absolute h-full aspect-[330/430] inset-0 z-10 object-contain xl:object-cover 2xl:object-contain object-center bottom-0"
|
||||
className="dark:hidden absolute h-full aspect-[330/430] inset-0 z-10 object-contain -mt-1.5 object-center bottom-0"
|
||||
/>
|
||||
</div>
|
||||
</figure>
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import React, { FC, useEffect, useState } from 'react'
|
||||
import dayjs from 'dayjs'
|
||||
import { AnimatePresence, motion } from 'framer-motion'
|
||||
import { Badge } from 'ui'
|
||||
import { Badge, cn } from 'ui'
|
||||
import { useInterval } from 'react-use'
|
||||
|
||||
const RealtimeLogs = ({ isActive, isInView }: { isActive?: boolean; isInView?: boolean }) => {
|
||||
interface Props {
|
||||
isActive?: boolean
|
||||
isInView?: boolean
|
||||
className?: string
|
||||
}
|
||||
|
||||
const RealtimeLogs: FC<Props> = ({ isActive, isInView, className }) => {
|
||||
const [mounted, setMounted] = useState(false)
|
||||
|
||||
const isPlaying = isActive && isInView
|
||||
@@ -55,14 +61,8 @@ const RealtimeLogs = ({ isActive, isInView }: { isActive?: boolean; isInView?: b
|
||||
if (!mounted) return null
|
||||
|
||||
return (
|
||||
<div className="absolute inset-0 bottom-8 overflow-hidden">
|
||||
<div
|
||||
className="absolute z-20 pointer-events-none inset-0 top-auto h-32"
|
||||
style={{
|
||||
background:
|
||||
'linear-gradient(to top, hsl(var(--background-surface-75)) 0%, transparent 100%)',
|
||||
}}
|
||||
/>
|
||||
<div className={cn('absolute inset-0 bottom-8 overflow-hidden', className)}>
|
||||
<div className="visual-overlay absolute z-20 pointer-events-none inset-0 top-auto h-32 bg-[linear-gradient(to_top,hsl(var(--background-surface-75))_0%,transparent_100%)]" />
|
||||
<motion.ul
|
||||
layout
|
||||
transition={{
|
||||
|
||||
@@ -152,6 +152,7 @@ const RealtimeVisual: React.FC<Props> = ({ className }) => {
|
||||
{/* Gradient to hide animation under text to maintain readability */}
|
||||
<div
|
||||
className="
|
||||
visual-overlay
|
||||
absolute pointer-events-none
|
||||
w-full h-full max-h-[400px] lg:max-h-none
|
||||
inset-0 top-auto
|
||||
|
||||
@@ -48,17 +48,18 @@ const ProductHeader = (props: Props) => (
|
||||
{props.h1}
|
||||
</h1>
|
||||
</div>
|
||||
<div>
|
||||
{props.subheader &&
|
||||
props.subheader.map((subheader, i) => {
|
||||
{props.subheader && (
|
||||
<div className="mb-4 md:mb-8">
|
||||
{props.subheader.map((subheader, i) => {
|
||||
return (
|
||||
<p className="p lg:text-lg max-w-lg lg:max-w-none" key={i}>
|
||||
{subheader}
|
||||
</p>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
<div className="flex flex-row md:flex-row md:items-center gap-2">
|
||||
</div>
|
||||
)}
|
||||
<div className="flex flex-row md:flex-row md:items-center gap-2 mt-2">
|
||||
{props.ctas?.map((cta) => (
|
||||
<Button key={cta.href} size="medium" type={cta.type ?? 'default'} asChild>
|
||||
<Link href={cta.href}>{cta.label ?? 'Start for free'}</Link>
|
||||
|
||||
57
apps/www/components/Solutions/CtaSection.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
import Link from 'next/link'
|
||||
import React from 'react'
|
||||
import { Button, cn, Image } from 'ui'
|
||||
import SectionContainer from '~/components/Layouts/SectionContainer'
|
||||
|
||||
interface Props {
|
||||
id: string
|
||||
title: string | React.ReactNode
|
||||
subtitle?: string
|
||||
primaryCta: {
|
||||
label: string
|
||||
url: string
|
||||
target?: string
|
||||
icon?: React.ReactNode
|
||||
}
|
||||
secondaryCta?: {
|
||||
label: string
|
||||
url: string
|
||||
}
|
||||
image?: {
|
||||
dark: string
|
||||
light: string
|
||||
}
|
||||
className?: string
|
||||
}
|
||||
|
||||
const CtaSection = ({ id, title, subtitle, primaryCta, secondaryCta, className }: Props) => {
|
||||
return (
|
||||
<SectionContainer
|
||||
id={id}
|
||||
className={cn('py-16 md:py-24 lg:py-32 relative overflow-hidden', className)}
|
||||
>
|
||||
<div className="mx-auto relative z-10">
|
||||
<div className="flex flex-col gap-6 text-center items-center max-w-5xl mx-auto">
|
||||
<h2 className="text-foreground-light text-2xl lg:text-3xl leading-tight">{title}</h2>
|
||||
{subtitle && <p className="text-foreground-light text-lg">{subtitle}</p>}
|
||||
<div className="flex flex-wrap gap-3 pt-4">
|
||||
<Button asChild size="medium" icon={primaryCta.icon}>
|
||||
<Link href={primaryCta.url} target={primaryCta.target}>
|
||||
{primaryCta.label}
|
||||
</Link>
|
||||
</Button>
|
||||
{secondaryCta && (
|
||||
<Button asChild size="medium" type="default">
|
||||
<Link href={secondaryCta.url}>{secondaryCta.label}</Link>
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="absolute inset-0 w-full h-full bg-gradient-to-r from-transparent via-transparent to-background opacity-80 z-0"></div>
|
||||
</SectionContainer>
|
||||
)
|
||||
}
|
||||
|
||||
export default CtaSection
|
||||
115
apps/www/components/Solutions/DeveloperExperienceSection.tsx
Normal file
@@ -0,0 +1,115 @@
|
||||
import React from 'react'
|
||||
import { cn, Image } from 'ui'
|
||||
import SectionContainer from '~/components/Layouts/SectionContainer'
|
||||
import { Badge } from 'ui'
|
||||
import { Check, X } from 'lucide-react'
|
||||
|
||||
interface Feature {
|
||||
id?: string
|
||||
title: string | React.ReactNode
|
||||
subheading: string | React.ReactNode
|
||||
highlights?: string | React.ReactNode
|
||||
url?: string
|
||||
icon?: string
|
||||
image?: any
|
||||
className?: string
|
||||
onClick?: any
|
||||
alignLeft?: boolean
|
||||
}
|
||||
|
||||
interface Props {
|
||||
id: string
|
||||
title: string | React.ReactNode
|
||||
subheading: string
|
||||
features: Feature[]
|
||||
className?: string
|
||||
}
|
||||
|
||||
const DeveloperExperienceSection = ({ id, title, subheading, features, className }: Props) => {
|
||||
return (
|
||||
<SectionContainer id={id} className={cn('flex flex-col gap-12 py-16 md:py-24', className)}>
|
||||
<div className="flex flex-col gap-4 max-w-lg">
|
||||
<h2 className="text-2xl md:text-3xl font-normal text-foreground-lighter">{title}</h2>
|
||||
<p className="text-foreground-light text-base md:text-lg">{subheading}</p>
|
||||
</div>
|
||||
|
||||
<div
|
||||
className="
|
||||
grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-0
|
||||
rounded-md border-default overflow-hidden
|
||||
sm:divide-x divide-y border
|
||||
[&>div:nth-child(2n+1)]:sm:!border-l-0
|
||||
[&>div:nth-child(2)]:sm:!border-t-0
|
||||
[&>div:nth-child(3)]:lg:!border-t-0
|
||||
[&>div:nth-child(3n)]:lg:!border-l
|
||||
[&>div:nth-child(4n)]:lg:!border-l-0
|
||||
[&>div:nth-child(3n-1)]:lg:!border-l
|
||||
"
|
||||
>
|
||||
{features.map((feature) => (
|
||||
<FeatureCard key={feature.id} feature={feature} />
|
||||
))}
|
||||
</div>
|
||||
</SectionContainer>
|
||||
)
|
||||
}
|
||||
|
||||
const FeatureCard = ({ feature }: { feature: Feature }) => {
|
||||
const { alignLeft = true } = feature
|
||||
|
||||
return (
|
||||
<div
|
||||
className={cn(
|
||||
'relative overflow-hidden',
|
||||
'flex-1 flex flex-col',
|
||||
'items-start justify-between',
|
||||
'bg-default w-full h-full min-h-[330px] sm:min-h-[360px]',
|
||||
'text-foreground-lighter [&_strong]:!font-normal [&_strong]:!text-foreground',
|
||||
feature.className
|
||||
)}
|
||||
>
|
||||
<div
|
||||
className={cn(
|
||||
'relative z-10',
|
||||
'p-4 md:p-6 2xl:p-8',
|
||||
'w-full',
|
||||
'mx-auto gap-2 sm:gap-4',
|
||||
'flex flex-col items-start',
|
||||
'text-left',
|
||||
alignLeft && 'lg:mx-0 lg:items-start lg:text-left'
|
||||
)}
|
||||
>
|
||||
<div className="flex items-center gap-2">
|
||||
{feature.icon && (
|
||||
<svg
|
||||
width="18"
|
||||
height="18"
|
||||
viewBox="0 0 25 25"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d={feature.icon}
|
||||
stroke="currentColor"
|
||||
strokeMiterlimit="10"
|
||||
strokeLinejoin="round"
|
||||
strokeLinecap="round"
|
||||
strokeWidth="1.5"
|
||||
/>
|
||||
</svg>
|
||||
)}
|
||||
<h3 className="">{feature.title}</h3>
|
||||
</div>
|
||||
<div className="flex-1 flex flex-col justify-between gap-2">
|
||||
<p className="text-sm [&_strong]:!text-foreground">{feature.subheading}</p>
|
||||
{feature.highlights && (
|
||||
<span className="hidden lg:block text-foreground">{feature.highlights}</span>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
{feature.image && feature.image}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default DeveloperExperienceSection
|
||||
74
apps/www/components/Solutions/FeatureGrid.tsx
Normal file
@@ -0,0 +1,74 @@
|
||||
import React from 'react'
|
||||
import { cn } from 'ui'
|
||||
import SectionContainer from '~/components/Layouts/SectionContainer'
|
||||
|
||||
interface Feature {
|
||||
id: string
|
||||
title: string
|
||||
description: string | React.ReactNode
|
||||
icon: string
|
||||
iconNoStroke?: boolean
|
||||
className?: string
|
||||
}
|
||||
|
||||
interface Props {
|
||||
id: string
|
||||
features: Feature[]
|
||||
className?: string
|
||||
}
|
||||
|
||||
const FeatureGrid = ({ id, features, className }: Props) => {
|
||||
return (
|
||||
<SectionContainer id={id} className={cn('flex flex-col gap-12 py-16 md:py-24', className)}>
|
||||
<div
|
||||
className="
|
||||
grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3
|
||||
sm:divide-x divide-y border border-default rounded-md overflow-hidden
|
||||
[&>div:nth-child(2n+1)]:sm:!border-l-0
|
||||
[&>div:nth-child(2)]:sm:!border-t-0
|
||||
[&>div:nth-child(3)]:lg:!border-t-0
|
||||
[&>div:nth-child(3n)]:lg:!border-l
|
||||
[&>div:nth-child(4n)]:lg:!border-l-0
|
||||
[&>div:nth-child(3n-1)]:lg:!border-l
|
||||
"
|
||||
>
|
||||
{features.map((feature) => (
|
||||
<div
|
||||
key={feature.id}
|
||||
className={cn(
|
||||
'text-sm bg-default p-4 md:p-6 flex flex-col gap-2 md:gap-4 text-foreground-lighter',
|
||||
feature.className
|
||||
)}
|
||||
>
|
||||
<div className="flex items-center gap-2">
|
||||
{feature.icon && (
|
||||
<svg
|
||||
width="18"
|
||||
height="18"
|
||||
viewBox="0 0 25 25"
|
||||
fill={feature.iconNoStroke ? 'currentColor' : 'none'}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d={feature.icon}
|
||||
stroke={feature.iconNoStroke ? 'none' : 'currentColor'}
|
||||
strokeMiterlimit="10"
|
||||
strokeLinejoin="round"
|
||||
strokeLinecap="round"
|
||||
strokeWidth="1.5"
|
||||
/>
|
||||
</svg>
|
||||
)}
|
||||
<h3 className="">{feature.title}</h3>
|
||||
</div>
|
||||
<p className="text-base">{feature.description}</p>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</SectionContainer>
|
||||
)
|
||||
}
|
||||
|
||||
export default FeatureGrid
|
||||
@@ -18,7 +18,7 @@ export default function FeaturesGrid(props: any) {
|
||||
)}
|
||||
>
|
||||
<Content
|
||||
card={props.features['mgmt-api']}
|
||||
card={props.features.find((f: any) => f.id === 'mgmt-api')}
|
||||
innerClassName="
|
||||
xl:flex-row
|
||||
[&_.image-container]:border-b
|
||||
@@ -30,11 +30,11 @@ export default function FeaturesGrid(props: any) {
|
||||
[&_.next-image--dynamic-fill]:rounded-none"
|
||||
/>
|
||||
<Content
|
||||
card={props.features['postgres']}
|
||||
card={props.features.find((f: any) => f.id === 'postgres')}
|
||||
innerClassName="[&_.image-container]:xl:pt-4 [&_.image-container]:xl:pl-8"
|
||||
/>
|
||||
<Content card={props.features['branching']} />
|
||||
<Content card={props.features['pricing']} />
|
||||
<Content card={props.features.find((f: any) => f.id === 'branching')} />
|
||||
<Content card={props.features.find((f: any) => f.id === 'pricing')} />
|
||||
</div>
|
||||
</SectionContainer>
|
||||
)
|
||||
@@ -43,21 +43,21 @@ export default function FeaturesGrid(props: any) {
|
||||
const Content = ({ card, innerClassName }: { card: any; innerClassName?: string }) => {
|
||||
return (
|
||||
<Panel
|
||||
key={card.heading}
|
||||
key={card?.heading}
|
||||
hasActiveOnHover={false}
|
||||
outerClassName="w-full group hover:shadow-none"
|
||||
innerClassName={cn('relative flex flex-col justify-between xl:min-h-[250px]', innerClassName)}
|
||||
style={{ gridArea: card.id }}
|
||||
style={{ gridArea: card?.id }}
|
||||
>
|
||||
{card.img && (
|
||||
{card?.img && (
|
||||
<div className="image-container relative h-full w-full inline-flex items-start p-6">
|
||||
{card.img}
|
||||
</div>
|
||||
)}
|
||||
<div className="content-container flex flex-col justify-between gap-3 p-6 flex-1">
|
||||
<h3 className="text-foreground-lighter flex items-center gap-2">{card.heading}</h3>
|
||||
<h3 className="text-foreground-lighter flex items-center gap-2">{card?.heading}</h3>
|
||||
<div className="flex flex-col justify-between gap-2">
|
||||
<p className="text-sm text-foreground-lighter">{card.subheading}</p>
|
||||
<p className="text-sm text-foreground-lighter">{card?.subheading}</p>
|
||||
</div>
|
||||
</div>
|
||||
</Panel>
|
||||
|
||||
@@ -2,17 +2,27 @@ import React, { FC } from 'react'
|
||||
|
||||
import { cn } from 'ui'
|
||||
import SectionContainer from '~/components/Layouts/SectionContainer'
|
||||
import type { Feature, WhySection } from '~/data/solutions/solutions.types'
|
||||
import type {
|
||||
Feature,
|
||||
FeaturesSection as FeaturesSectionType,
|
||||
} from '~/data/solutions/solutions.types'
|
||||
|
||||
const Support: FC<WhySection> = (props) => {
|
||||
const FeaturesSection: FC<FeaturesSectionType> = (props) => {
|
||||
return (
|
||||
<SectionContainer id={props.id} className="flex flex-col gap-4 md:gap-8">
|
||||
<div className="flex flex-col gap-2">
|
||||
<span className="label">{props.label}</span>
|
||||
<h2 className="h2 text-foreground-lighter">{props.heading}</h2>
|
||||
</div>
|
||||
<ul className="grid grid-cols-1 gap-4 gap-y-10 md:grid-cols-3 md:gap-12 xl:gap-20">
|
||||
{props.features?.map((feature, index) => <FeatureItem feature={feature} key={index} />)}
|
||||
<ul
|
||||
className={cn(
|
||||
'grid grid-cols-1 gap-4 gap-y-10 md:grid-cols-3 md:gap-12 xl:gap-20',
|
||||
props.features?.length === 4 && 'md:grid-cols-2 xl:grid-cols-4'
|
||||
)}
|
||||
>
|
||||
{props.features?.map((feature: Feature, index: number) => (
|
||||
<FeatureItem feature={feature} key={index} />
|
||||
))}
|
||||
</ul>
|
||||
</SectionContainer>
|
||||
)
|
||||
@@ -29,10 +39,31 @@ const FeatureItem: FC<FeatureItemProps> = ({ feature }) => {
|
||||
const iconHeight = `h-${iconSize}`
|
||||
|
||||
return (
|
||||
<li className="flex flex-col gap-2 text-sm">
|
||||
{Icon && (
|
||||
<Icon className={cn('stroke-1 mb-2 text-foreground-lighter', iconWidth, iconHeight)} />
|
||||
)}
|
||||
<li className="flex flex-col gap-2 text-sm text-foreground-lighter">
|
||||
{Icon &&
|
||||
(typeof Icon === 'string' ? (
|
||||
<svg
|
||||
width="25"
|
||||
height="25"
|
||||
viewBox="0 0 25 25"
|
||||
fill={feature.iconNoStroke ? 'currentColor' : 'none'}
|
||||
className="w-7 h-7 mb-2"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d={Icon}
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
stroke={feature.iconNoStroke ? 'none' : 'currentColor'}
|
||||
strokeMiterlimit="10"
|
||||
strokeLinejoin="round"
|
||||
strokeLinecap="round"
|
||||
strokeWidth="1"
|
||||
/>
|
||||
</svg>
|
||||
) : (
|
||||
<Icon className={cn('stroke-1 mb-2 text-current', iconWidth, iconHeight)} />
|
||||
))}
|
||||
<div className="w-full h-px overflow-hidden flex items-start bg-border-muted">
|
||||
<span className={cn('h-full bg-foreground-lighter', iconWidth)} />
|
||||
</div>
|
||||
@@ -43,4 +74,4 @@ const FeatureItem: FC<FeatureItemProps> = ({ feature }) => {
|
||||
)
|
||||
}
|
||||
|
||||
export default Support
|
||||
export default FeaturesSection
|
||||
|
||||
108
apps/www/components/Solutions/PlatformSection.tsx
Normal file
@@ -0,0 +1,108 @@
|
||||
import React from 'react'
|
||||
import { cn } from 'ui'
|
||||
import SectionContainer from '~/components/Layouts/SectionContainer'
|
||||
|
||||
interface Feature {
|
||||
id?: string
|
||||
title: string
|
||||
subheading: string | React.ReactNode
|
||||
highlights?: string | React.ReactNode
|
||||
url?: string
|
||||
icon?: string
|
||||
image?: any
|
||||
className?: string
|
||||
onClick?: any
|
||||
alignLeft?: boolean
|
||||
isDatabase?: boolean
|
||||
}
|
||||
|
||||
interface Props {
|
||||
id?: string
|
||||
title: string | React.ReactNode
|
||||
subheading: string
|
||||
features?: Feature[]
|
||||
className?: string
|
||||
}
|
||||
|
||||
const PlatformSection = ({ title, subheading, features, id, className }: Props) => {
|
||||
return (
|
||||
<SectionContainer id={id} className={cn('flex flex-col gap-12 py-16 md:py-24', className)}>
|
||||
<div className="flex flex-col gap-4 max-w-lg">
|
||||
<h2 className="text-2xl md:text-3xl text-foreground-lighter font-normal">{title}</h2>
|
||||
<p className="text-foreground-lighter text-base md:text-lg">{subheading}</p>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-0 sm:divide-x divide-y rounded-md border border-default overflow-hidden">
|
||||
{features?.map((feature) => <FeatureCard key={feature.id} feature={feature} />)}
|
||||
</div>
|
||||
</SectionContainer>
|
||||
)
|
||||
}
|
||||
|
||||
const FeatureCard = ({ feature }: { feature: Feature }) => {
|
||||
const { alignLeft = true } = feature
|
||||
|
||||
return (
|
||||
<div
|
||||
className={cn(
|
||||
'relative overflow-hidden',
|
||||
'flex-1 flex flex-col',
|
||||
'items-start sm:items-center lg:items-start justify-between',
|
||||
'bg-default w-full h-full min-h-[350px] sm:min-h-[400px]',
|
||||
'text-foreground-lighter [&_strong]:!font-normal [&_strong]:!text-foreground',
|
||||
feature.className
|
||||
)}
|
||||
>
|
||||
<div
|
||||
className={cn(
|
||||
'relative z-10',
|
||||
'p-4 sm:p-6 2xl:p-8',
|
||||
'w-full',
|
||||
'mx-auto gap-2 sm:gap-4',
|
||||
'flex flex-col items-start sm:items-center',
|
||||
'text-left sm:text-center',
|
||||
feature.isDatabase && 'lg:h-full',
|
||||
alignLeft && !feature.isDatabase && 'lg:mx-0 lg:items-start lg:text-left',
|
||||
alignLeft &&
|
||||
feature.isDatabase &&
|
||||
'ml-0 md:justify-start md:text-left md:items-start lg:max-w-[47%]'
|
||||
)}
|
||||
>
|
||||
<div className="flex items-center gap-2">
|
||||
{feature.icon && (
|
||||
<svg
|
||||
width="18"
|
||||
height="18"
|
||||
viewBox="0 0 25 25"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d={feature.icon}
|
||||
stroke="currentColor"
|
||||
strokeMiterlimit="10"
|
||||
strokeLinejoin="round"
|
||||
strokeLinecap="round"
|
||||
strokeWidth="1.5"
|
||||
/>
|
||||
</svg>
|
||||
)}
|
||||
<h3 className="">{feature.title}</h3>
|
||||
</div>
|
||||
<div className="flex-1 flex flex-col justify-between gap-2">
|
||||
<p className="text-sm [&_strong]:!text-foreground">{feature.subheading}</p>
|
||||
{feature.highlights && (
|
||||
<span
|
||||
className={cn('hidden lg:block text-foreground', feature.isDatabase && 'md:block')}
|
||||
>
|
||||
{feature.highlights}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
{feature.image && feature.image}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default PlatformSection
|
||||
110
apps/www/components/Solutions/ResultsSection.tsx
Normal file
@@ -0,0 +1,110 @@
|
||||
import React, { FC } from 'react'
|
||||
import { cn, Badge } from 'ui'
|
||||
import SectionContainer from '~/components/Layouts/SectionContainer'
|
||||
|
||||
interface Props {
|
||||
id: string
|
||||
heading: string | JSX.Element
|
||||
subheading: string | JSX.Element
|
||||
highlights: Highlight[]
|
||||
}
|
||||
|
||||
type Highlight = {
|
||||
heading: string
|
||||
subheading: string
|
||||
}
|
||||
|
||||
const ResultsSection: FC<Props> = (props) => {
|
||||
return (
|
||||
<SectionContainer id={props.id} className="relative">
|
||||
<div className="relative z-10 flex flex-col gap-4 md:gap-8 pb-20">
|
||||
<div className="flex flex-col gap-2 max-w-xl">
|
||||
{/* <span className="label">{props.label}</span> */}
|
||||
<h2 className="h2 !m-0">{props.heading}</h2>
|
||||
<p className="p !text-foreground-lighter">{props.subheading}</p>
|
||||
</div>
|
||||
<div className="flex flex-wrap gap-4 md:gap-12">
|
||||
{props.highlights.map((highlight) => (
|
||||
<HighlightItem key={highlight.heading} highlight={highlight} />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
<div className="relative xl:absolute z-0 inset-0 mt-4 -mb-8 sm:mt-0 sm:-mb-20 md:-mt-20 md:-mb-36 xl:mt-0 xl:top-10 w-full aspect-[2.15/1]">
|
||||
<GraphLabel className="" />
|
||||
<svg
|
||||
width="100%"
|
||||
height="100%"
|
||||
viewBox="0 0 1403 599"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className="absolute inset-0 w-full h-full"
|
||||
>
|
||||
<path
|
||||
d="M1402.27 0.744141C896.689 410.854 286.329 492.876 0.476562 492.876V598.744H1402.27V0.744141Z"
|
||||
fill="url(#paint0_linear_585_9420)"
|
||||
/>
|
||||
<path
|
||||
d="M11.4209 492.744C295.041 492.744 900.636 410.744 1402.27 0.744141"
|
||||
stroke="hsl(var(--foreground-lighter))"
|
||||
/>
|
||||
<defs>
|
||||
<linearGradient
|
||||
id="paint0_linear_585_9420"
|
||||
x1="701.374"
|
||||
y1="170.846"
|
||||
x2="701.374"
|
||||
y2="561.839"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
>
|
||||
<stop stopColor="hsl(var(--border-overlay))" />
|
||||
<stop offset="1" stopColor="hsl(var(--border-overlay))" stopOpacity="0" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
<div className="absolute inset-0 w-full h-full bg-[radial-gradient(50%_50%_at_50%_50%,_transparent_0%,_hsl(var(--background-default))_100%)]" />
|
||||
</div>
|
||||
</SectionContainer>
|
||||
)
|
||||
}
|
||||
|
||||
const GraphLabel: FC<{ className?: string }> = ({ className }) => (
|
||||
<div
|
||||
className={cn(
|
||||
'absolute z-10 inset-0 left-auto right-[20%] -top-8 md:top-0 xl:top-[15%] w-fit h-[200px] lg:h-[400px]',
|
||||
'flex flex-col items-center gap-1',
|
||||
className
|
||||
)}
|
||||
>
|
||||
<div className="w-fit text-foreground bg-alternative p-4 rounded-lg border flex flex-col gap-1">
|
||||
<span className="label !text-[10px] !leading-3">Users</span>
|
||||
<div className="flex items-center gap-2">
|
||||
<span className="text-foreground-light text-2xl">230,550</span>
|
||||
<Badge variant="success" size="small" className="h-[24px] px-2">
|
||||
+13.4%
|
||||
</Badge>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
className={cn(
|
||||
'relative w-2 h-2 min-w-2 min-h-2 rounded-full border-2 border-stronger',
|
||||
'after:absolute after:inset-0 after:top-full after:mx-auto after:w-[2px] after:h-[150px] after:lg:h-[250px]',
|
||||
'after:bg-gradient-to-b after:from-border-stronger after:to-transparent'
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
|
||||
interface HighlightItemProps {
|
||||
highlight: Highlight
|
||||
}
|
||||
|
||||
const HighlightItem: FC<HighlightItemProps> = ({ highlight }) => {
|
||||
return (
|
||||
<li className="flex flex-col gap-2 text-sm">
|
||||
<span className="label">{highlight.heading}</span>
|
||||
<p className="text-foreground text-xl md:text-3xl">{highlight.subheading}</p>
|
||||
</li>
|
||||
)
|
||||
}
|
||||
|
||||
export default ResultsSection
|
||||
@@ -44,6 +44,10 @@ const footerData = [
|
||||
text: 'AI Builders',
|
||||
url: '/solutions/ai-builders',
|
||||
},
|
||||
{
|
||||
text: 'Switch from Neon',
|
||||
url: '/solutions/switch-from-neon',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -6,6 +6,11 @@ export const data = {
|
||||
description: '',
|
||||
url: '/solutions/ai-builders',
|
||||
},
|
||||
{
|
||||
text: 'Switch from Neon',
|
||||
description: '',
|
||||
url: '/solutions/switch-from-neon',
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
@@ -133,18 +133,21 @@ const data: AIData = {
|
||||
),
|
||||
features: [
|
||||
{
|
||||
id: 'get-to-market-faster',
|
||||
icon: Timer,
|
||||
heading: 'Get to market faster',
|
||||
subheading:
|
||||
'Supabase is easy to use and set up. Use your existing Postgres knowledge and skills. Build with your favorite frameworks and tools.',
|
||||
},
|
||||
{
|
||||
id: 'the-tools-you-need-at-a-great-price',
|
||||
icon: CubeIcon,
|
||||
heading: 'The tools you need at a great price',
|
||||
subheading:
|
||||
'Supabase offers a fully integrated suite of tools including authentication, storage, edge functions, real-time subscriptions, and vector search. Use one or all.',
|
||||
},
|
||||
{
|
||||
id: 'scalable-and-dependable',
|
||||
icon: (props: any) => (
|
||||
<svg
|
||||
width="23"
|
||||
@@ -181,8 +184,8 @@ const data: AIData = {
|
||||
),
|
||||
subheading:
|
||||
'Build a delightful application building experience backed seamlessly by a powerful application backend.',
|
||||
features: {
|
||||
'mgmt-api': {
|
||||
features: [
|
||||
{
|
||||
id: 'mgmt-api',
|
||||
icon: Timer,
|
||||
heading: (
|
||||
@@ -225,7 +228,7 @@ const data: AIData = {
|
||||
/>
|
||||
),
|
||||
},
|
||||
postgres: {
|
||||
{
|
||||
id: 'postgres',
|
||||
icon: Timer,
|
||||
heading: (
|
||||
@@ -455,7 +458,7 @@ const data: AIData = {
|
||||
</svg>
|
||||
),
|
||||
},
|
||||
branching: {
|
||||
{
|
||||
id: 'branching',
|
||||
icon: Timer,
|
||||
heading: (
|
||||
@@ -507,7 +510,7 @@ const data: AIData = {
|
||||
</>
|
||||
),
|
||||
},
|
||||
pricing: {
|
||||
{
|
||||
id: 'pricing',
|
||||
icon: Timer,
|
||||
heading: (
|
||||
@@ -551,7 +554,7 @@ const data: AIData = {
|
||||
</>
|
||||
),
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
testimonials: {
|
||||
id: 'testimonials',
|
||||
|
||||
703
apps/www/data/solutions/neon.tsx
Normal file
@@ -0,0 +1,703 @@
|
||||
import { cn, Image } from 'ui'
|
||||
import { CubeIcon } from '@heroicons/react/outline'
|
||||
import {
|
||||
ArrowRight,
|
||||
ArrowUpRight,
|
||||
Timer,
|
||||
Lock,
|
||||
ShieldCheck,
|
||||
Users,
|
||||
UserX,
|
||||
FolderLock,
|
||||
Lightbulb,
|
||||
List,
|
||||
ClipboardCheck,
|
||||
ShieldAlert,
|
||||
HeartPulse,
|
||||
Check,
|
||||
InfoIcon,
|
||||
} from 'lucide-react'
|
||||
import AuthVisual from '~/components/Products/AuthVisual'
|
||||
import FunctionsVisual from '~/components/Products/FunctionsVisual'
|
||||
import RealtimeVisual from '~/components/Products/RealtimeVisual'
|
||||
import RealtimeLogs from '~/components/Products/Functions/RealtimeLogs'
|
||||
import DataAPIsVisual from '~/components/Products/DataAPIsVisual'
|
||||
|
||||
import MainProducts from '~/data/MainProducts'
|
||||
import { PRODUCT_SHORTNAMES } from 'shared-data/products'
|
||||
|
||||
const data = {
|
||||
metadata: {
|
||||
metaTitle: 'Switch from Neon to Supabase',
|
||||
metaDescription:
|
||||
'The complete Postgres development platform Neon users prefer. Supabase is a composable stack for modern applications: Postgres Database, built-in Auth, Real-time sync, Edge Functions, Storage, and a powerful developer experience.',
|
||||
},
|
||||
heroSection: {
|
||||
id: 'hero',
|
||||
title: 'Moving from Neon to Supabase',
|
||||
sectionContainerClassName: cn(
|
||||
'[&_h1]:text-xl [&_h1]:md:!text-2xl [&_h1]:lg:!text-4xl [&_h1]:2xl:!text-5xl',
|
||||
'[&_.image-container]:flex [&_.image-container]:items-center'
|
||||
),
|
||||
h1: 'Neon users switch to Supabase for a complete Postgres experience',
|
||||
subheader: [
|
||||
<>
|
||||
Supabase is a composable stack for modern applications: Postgres Database, built-in Auth,
|
||||
Real-time sync, Edge Functions, Storage, and a powerful developer experience.
|
||||
</>,
|
||||
<>
|
||||
Supabase is the preferred foundation for high-performance, high-scale SaaS, AI-native apps,
|
||||
data-intensive tools, and more.
|
||||
</>,
|
||||
],
|
||||
ctas: [
|
||||
{
|
||||
label: 'Start your migration',
|
||||
href: 'https://supabase.com/docs/guides/platform/migrating-to-supabase/neon',
|
||||
type: 'primary' as any,
|
||||
icon: <ArrowUpRight className="w-4 h-4 text-current" />,
|
||||
},
|
||||
],
|
||||
image: (
|
||||
<Image
|
||||
draggable={false}
|
||||
src={{
|
||||
dark: '/images/solutions/neon/neon-hero-dark.svg',
|
||||
light: '/images/solutions/neon/neon-hero-light.svg',
|
||||
}}
|
||||
alt="Neon to Supabase illustration"
|
||||
width={1000}
|
||||
height={1000}
|
||||
className="max-w-[500px] max-h-[400px] m-auto"
|
||||
/>
|
||||
),
|
||||
},
|
||||
quote: {
|
||||
id: 'quote',
|
||||
className: '[&_q]:md:max-w-2xl',
|
||||
text: 'We wanted a backend that could accelerate our development while maintaining security and scalability. Supabase stood out due to its automation, integrations, and ecosystem.',
|
||||
author: 'Raunak Kathuria',
|
||||
role: 'VP of Engineering, Deriv',
|
||||
avatar: (
|
||||
<Image
|
||||
draggable={false}
|
||||
src="/images/customers/logos/deriv.png"
|
||||
alt="Deriv logo"
|
||||
className="dark:invert object-contain opacity-50 hover:!opacity-60 max-w-20 max-h-10 !w-10 !h-10"
|
||||
width={28}
|
||||
height={28}
|
||||
/>
|
||||
),
|
||||
link: '/customers/deriv',
|
||||
logo: (
|
||||
<Image
|
||||
draggable={false}
|
||||
src="/images/solutions/neon/raunak-kathuria.jpg"
|
||||
alt="Raunak Kathuria"
|
||||
className="w-10 h-10 rounded-full overflow-hidden"
|
||||
width={28}
|
||||
height={28}
|
||||
/>
|
||||
),
|
||||
},
|
||||
why: {
|
||||
id: 'why-supabase',
|
||||
label: '',
|
||||
heading: (
|
||||
<>
|
||||
Why companies moved <span className="text-foreground">to Supabase from Neon</span>
|
||||
</>
|
||||
),
|
||||
subheading:
|
||||
'Build secure, scalable applications using a developer platform built for dependability.',
|
||||
features: [
|
||||
{
|
||||
id: 'speed',
|
||||
icon: Timer,
|
||||
heading: 'Build fast and with confidence',
|
||||
subheading:
|
||||
'Supabase helps you go from prototype to production with built-in auth, real-time data, and observability. No setup or backend boilerplate required.',
|
||||
},
|
||||
{
|
||||
id: 'platform',
|
||||
icon: CubeIcon,
|
||||
heading: 'Everything your application stack needs',
|
||||
subheading:
|
||||
'Auth, storage, edge functions, vectors, and realtime are available out of the box. Use one or all.',
|
||||
},
|
||||
{
|
||||
id: 'scalability',
|
||||
icon: 'M13.2689 14.9229C14.04 16.494 15.6379 17.4892 17.3881 17.4893H22.0892C22.4726 17.4893 22.7843 17.8003 22.7845 18.1836C22.7845 18.5671 22.4728 18.8789 22.0892 18.8789H20.1664C20.1564 21.0605 18.171 22.4853 16.0052 22.4854C14.044 22.4854 12.4009 21.1292 11.9603 19.3037L11.9213 19.126L11.9086 18.9854C11.9116 18.6624 12.1408 18.3748 12.4701 18.3105C12.7994 18.2463 13.1203 18.4265 13.2445 18.7246L13.2845 18.8594L13.3412 19.0947C13.6746 20.251 14.742 21.0967 16.0052 21.0967C17.6551 21.0966 18.7655 20.0649 18.7758 18.8789H17.3881C15.108 18.8788 13.0263 17.5811 12.0218 15.5342L13.2689 14.9229ZM18.7767 15.6787V11.4639C18.7766 8.09738 16.0476 5.36816 12.681 5.36816H11.7269C11.7032 5.36816 11.6797 5.36364 11.6566 5.36133H7.15564C6.5783 5.36133 6.05835 5.69927 5.82068 6.21777L5.77673 6.32422L4.26404 10.4443C4.03486 11.0686 4.21563 11.7696 4.71814 12.2051L5.75622 13.1045L5.93298 13.2754C6.32193 13.694 6.54138 14.2468 6.54138 14.8242V16.4775L6.5531 16.7227C6.67574 17.9298 7.69544 18.8721 8.93493 18.8721C9.2213 18.8721 9.45986 18.6685 9.51501 18.3984L9.52771 18.2793V10.9121C9.52772 9.33737 10.1566 7.82755 11.2748 6.71875L11.3842 6.63086C11.6543 6.45411 12.0199 6.48475 12.2562 6.72266C12.5263 6.995 12.5247 7.43503 12.2523 7.70508L12.097 7.86816C11.3396 8.69814 10.9164 9.78304 10.9164 10.9121V18.2793L10.9056 18.4814C10.8044 19.4807 9.96094 20.2607 8.93493 20.2607C6.91113 20.2607 5.25814 18.6714 5.15661 16.6729L5.15173 16.4775V14.8242C5.15173 14.5993 5.06693 14.3838 4.9154 14.2207L4.84607 14.1543L3.80798 13.2549C2.86934 12.4414 2.53223 11.1318 2.96033 9.96582L4.47302 5.84473L4.55798 5.63867C5.02039 4.62971 6.03224 3.97266 7.15564 3.97266H11.8246V3.97949H12.681C16.8146 3.97949 20.1662 7.33032 20.1664 11.4639V15.6787C20.1664 16.0622 19.8546 16.373 19.4711 16.373C19.0877 16.3728 18.7767 16.0621 18.7767 15.6787ZM12.3392 14.6055C12.6835 14.4365 13.1 14.5785 13.2689 14.9229L12.0218 15.5342C11.8532 15.1901 11.9953 14.7745 12.3392 14.6055Z M14.4779 10.7135C14.4779 11.1278 14.8137 11.4635 15.2279 11.4635C15.6421 11.4635 15.9779 11.1278 15.9779 10.7135C15.9779 10.2993 15.6421 9.96354 15.2279 9.96354C14.8137 9.96354 14.4779 10.2993 14.4779 10.7135Z',
|
||||
iconNoStroke: true,
|
||||
heading: 'Scalable, dependable, Postgres-native',
|
||||
subheading:
|
||||
'Supabase runs on standard Postgres with full SQL, ACID guarantees, PITR, and high availability. Designed for reliable, stateful agent workloads.',
|
||||
},
|
||||
{
|
||||
id: 'migration',
|
||||
icon: ArrowRight,
|
||||
heading: 'Migrate from Neon with ease',
|
||||
subheading: 'Supabase is Postgres. Moving from Neon is a breeze.',
|
||||
},
|
||||
],
|
||||
},
|
||||
platform: {
|
||||
id: 'postgres-platform',
|
||||
title: (
|
||||
<>
|
||||
Supabase is the Postgres platform <span className="text-foreground">you control</span>
|
||||
</>
|
||||
),
|
||||
subheading: "Supabase includes everything you've come to expect from Neon, and so much more.",
|
||||
features: [
|
||||
{
|
||||
id: 'database',
|
||||
title: 'Database',
|
||||
isDatabase: true,
|
||||
icon: MainProducts[PRODUCT_SHORTNAMES.DATABASE].icon,
|
||||
subheading: (
|
||||
<>
|
||||
A fully managed Postgres database.
|
||||
<br /> No forks: 100% pure Postgres.
|
||||
</>
|
||||
),
|
||||
className: 'lg:col-span-2 flex-col lg:flex-row',
|
||||
image: (
|
||||
<div className="relative w-full max-w-xl pt-8">
|
||||
<div className="w-full h-full rounded-tl-lg overflow-hidden border-t border-l bg-surface-75">
|
||||
<table className="min-w-full m-0">
|
||||
<thead className="p-0">
|
||||
<tr className="border-b">
|
||||
<th className="py-2 px-4 text-left text-xs font-mono font-normal tracking-widest text-[#A0A0A0]">
|
||||
NAME
|
||||
</th>
|
||||
<th className="py-2 px-4 text-left text-xs font-mono font-normal tracking-widest text-[#A0A0A0]">
|
||||
PUBLICATION
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody className="bg-surface-100">
|
||||
{[
|
||||
{ name: 'Jon Meyers', pub: 'All', active: false },
|
||||
{ name: 'Chris Martin', pub: 'All', active: true },
|
||||
{ name: 'Amy Quek', pub: 'No', active: false },
|
||||
{ name: 'Riccardo Bussetti', pub: 'No', active: false },
|
||||
{ name: 'Beng Eu', pub: 'All', active: false },
|
||||
{ name: 'Tyler Hillery', pub: 'All', active: false },
|
||||
].map((row) => (
|
||||
<tr
|
||||
key={row.name}
|
||||
className="group/row hover:bg-selection hover:text-foreground transition-colors cursor-pointer"
|
||||
>
|
||||
<td className="py-2 px-4 whitespace-nowrap">{row.name}</td>
|
||||
<td className="py-2 px-4 whitespace-nowrap">{row.pub}</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div
|
||||
className="
|
||||
absolute pointer-events-none
|
||||
w-full h-full
|
||||
inset-0 top-auto
|
||||
bg-[linear-gradient(to_bottom,transparent_0%,hsl(var(--background-default))_100%)]
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
),
|
||||
highlights: (
|
||||
<ul className="hidden lg:flex flex-col gap-1 text-sm">
|
||||
<li>
|
||||
<Check className="inline text-foreground-light h-4 w-4" /> 100% portable
|
||||
</li>
|
||||
<li>
|
||||
<Check className="inline text-foreground-light h-4 w-4" /> Built-in Auth with RLS
|
||||
</li>
|
||||
<li>
|
||||
<Check className="inline text-foreground-light h-4 w-4" /> Easy to extend
|
||||
</li>
|
||||
</ul>
|
||||
),
|
||||
},
|
||||
{
|
||||
id: 'authentication',
|
||||
title: 'Authentication',
|
||||
icon: MainProducts[PRODUCT_SHORTNAMES.AUTHENTICATION].icon,
|
||||
subheading: (
|
||||
<>
|
||||
Secure authentication with email/password, magic links, OAuth (Google, GitHub, Twitter,
|
||||
etc.), SAML, SSO, and phone/SMS OTP.
|
||||
</>
|
||||
),
|
||||
className: '!border-l-0 sm:!border-l sm:!border-t-0',
|
||||
image: <AuthVisual className="2xl:!-bottom-20" />,
|
||||
},
|
||||
{
|
||||
id: 'rbac',
|
||||
title: 'Role-Based Access Control',
|
||||
icon: 'M17.6874 22.888V20.3886C17.6874 17.5888 15.4178 15.3192 12.618 15.3192C9.8182 15.3192 7.54852 17.5888 7.54852 20.3886V22.888M21.5531 11.5235C21.8189 14.1669 20.9393 16.9038 18.9141 18.9289C18.5359 19.3072 18.1328 19.6455 17.7101 19.9438M20.8038 8.70448C20.3598 7.71036 19.7299 6.77911 18.9141 5.96334C15.3338 2.38299 9.52889 2.38299 5.94855 5.96334C4.17501 7.73687 3.28 10.0562 3.26352 12.3807M24.0875 13.1161L23.2046 12.2332C22.3264 11.355 20.9026 11.355 20.0244 12.2332L19.1415 13.1161M0.875198 10.9503L1.75809 11.8331C2.63629 12.7113 4.06012 12.7113 4.93832 11.8331L5.82121 10.9503M7.49904 20.4919C5.77226 19.4557 4.37848 17.8555 3.62143 15.8584M15.6799 12.1942C15.6799 13.9201 14.2808 15.3192 12.5549 15.3192C10.829 15.3192 9.42993 13.9201 9.42993 12.1942C9.42993 10.4683 10.829 9.06917 12.5549 9.06917C14.2808 9.06917 15.6799 10.4683 15.6799 12.1942Z',
|
||||
subheading: <>Secure your data properly.</>,
|
||||
className: '!border-l-0',
|
||||
image: (
|
||||
<Image
|
||||
draggable={false}
|
||||
src={{
|
||||
dark: '/images/solutions/neon/rbac-dark.png',
|
||||
light: '/images/solutions/neon/rbac-light.png',
|
||||
}}
|
||||
alt="Role Based Access Control diagram"
|
||||
width={100}
|
||||
height={100}
|
||||
quality={100}
|
||||
containerClassName="md:mb-4 -mt-12 sm:mt-0"
|
||||
/>
|
||||
),
|
||||
},
|
||||
{
|
||||
id: 'realtime',
|
||||
title: 'Realtime',
|
||||
icon: MainProducts[PRODUCT_SHORTNAMES.REALTIME].icon,
|
||||
subheading: (
|
||||
<>
|
||||
Postgres replication enables{' '}
|
||||
<span className="text-foreground">live sync functionality</span> for collaborative
|
||||
applications.
|
||||
</>
|
||||
),
|
||||
className: '!border-l-0 sm:!border-l',
|
||||
image: (
|
||||
<RealtimeVisual className="[&_.visual-overlay]:bg-[linear-gradient(to_top,transparent_0%,transparent_50%,hsl(var(--background-default))_75%)]" />
|
||||
),
|
||||
},
|
||||
{
|
||||
id: 'storage',
|
||||
title: 'Storage',
|
||||
icon: MainProducts[PRODUCT_SHORTNAMES.STORAGE].icon,
|
||||
subheading: (
|
||||
<>
|
||||
<span className="text-foreground">Scalable S3-compatible</span> object storage for
|
||||
managing files, images, and videos.
|
||||
</>
|
||||
),
|
||||
className: '!border-l-0 lg:!border-l',
|
||||
image: (
|
||||
<Image
|
||||
draggable={false}
|
||||
src={{
|
||||
dark: '/images/solutions/neon/storage-dark.png',
|
||||
light: '/images/solutions/neon/storage-light.png',
|
||||
}}
|
||||
alt="Storage"
|
||||
width={1000}
|
||||
height={1000}
|
||||
quality={100}
|
||||
containerClassName="md:mb-4"
|
||||
className="opacity-[0.99]"
|
||||
style={{
|
||||
imageRendering: 'revert-layer',
|
||||
}}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{
|
||||
id: 'edge-functions',
|
||||
title: 'Edge Functions',
|
||||
icon: MainProducts[PRODUCT_SHORTNAMES.FUNCTIONS].icon,
|
||||
subheading: (
|
||||
<>Serverless functions powered by Deno, deployed globally for low-latency execution.</>
|
||||
),
|
||||
className: '!border-l-0 sm:!border-l lg:!border-l-0',
|
||||
image: <FunctionsVisual className="" />,
|
||||
},
|
||||
{
|
||||
id: 'vectors',
|
||||
title: 'Vectors',
|
||||
icon: 'M4.13477 12.8129C4.13477 14.1481 4.43245 15.4138 4.96506 16.5471M12.925 4.02271C11.5644 4.02271 10.276 4.33184 9.12614 4.88371M21.7152 12.8129C21.7152 11.4644 21.4115 10.1867 20.8688 9.0447M12.925 21.6032C14.2829 21.6032 15.5689 21.2952 16.717 20.7454M16.717 20.7454C17.2587 21.5257 18.1612 22.0366 19.1831 22.0366C20.84 22.0366 22.1831 20.6935 22.1831 19.0366C22.1831 17.3798 20.84 16.0366 19.1831 16.0366C17.5263 16.0366 16.1831 17.3798 16.1831 19.0366C16.1831 19.6716 16.3804 20.2605 16.717 20.7454ZM4.96506 16.5471C4.16552 17.086 3.63965 17.9999 3.63965 19.0366C3.63965 20.6935 4.98279 22.0366 6.63965 22.0366C8.2965 22.0366 9.63965 20.6935 9.63965 19.0366C9.63965 17.3798 8.2965 16.0366 6.63965 16.0366C6.01951 16.0366 5.44333 16.2248 4.96506 16.5471ZM9.12614 4.88371C8.58687 4.08666 7.67444 3.56274 6.63965 3.56274C4.98279 3.56274 3.63965 4.90589 3.63965 6.56274C3.63965 8.2196 4.98279 9.56274 6.63965 9.56274C8.2965 9.56274 9.63965 8.2196 9.63965 6.56274C9.63965 5.94069 9.45032 5.36285 9.12614 4.88371ZM20.8688 9.0447C21.6621 8.50486 22.1831 7.59464 22.1831 6.56274C22.1831 4.90589 20.84 3.56274 19.1831 3.56274C17.5263 3.56274 16.1831 4.90589 16.1831 6.56274C16.1831 8.2196 17.5263 9.56274 19.1831 9.56274C19.8081 9.56274 20.3884 9.37165 20.8688 9.0447Z',
|
||||
subheading: (
|
||||
<>
|
||||
pgvector extension for AI/ML applications, enabling fast semantic search and embedding
|
||||
storage.
|
||||
</>
|
||||
),
|
||||
className: '!border-l-0 lg:!border-l',
|
||||
image: (
|
||||
<Image
|
||||
draggable={false}
|
||||
src={{
|
||||
dark: '/images/solutions/neon/vectors-dark.png',
|
||||
light: '/images/solutions/neon/vectors-light.png',
|
||||
}}
|
||||
alt="Vector embeddings"
|
||||
width={100}
|
||||
height={100}
|
||||
quality={100}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{
|
||||
id: 'row-level-security',
|
||||
title: 'Row Level Security',
|
||||
icon: 'M20.3124 10.9373C21.1753 10.9373 21.8749 11.6369 21.8749 12.4998V12.4998C21.8749 13.3628 21.1753 14.0623 20.3124 14.0623L4.68738 14.0623C3.82443 14.0623 3.12488 13.3628 3.12488 12.4998V12.4998C3.12488 11.6369 3.82443 10.9373 4.68738 10.9373L20.3124 10.9373Z M20.3124 3.90454C21.1753 3.90454 21.8749 4.6041 21.8749 5.46704V5.46704C21.8749 6.32999 21.1753 7.02954 20.3124 7.02954L4.68738 7.02954C3.82443 7.02954 3.12488 6.32998 3.12488 5.46704V5.46704C3.12488 4.6041 3.82443 3.90454 4.68738 3.90454L20.3124 3.90454Z M20.3124 17.9701C21.1753 17.9701 21.8749 18.6696 21.8749 19.5326V19.5326C21.8749 20.3955 21.1753 21.0951 20.3124 21.0951L4.68738 21.0951C3.82443 21.0951 3.12488 20.3955 3.12488 19.5326V19.5326C3.12488 18.6696 3.82443 17.9701 4.68738 17.9701L20.3124 17.9701Z',
|
||||
subheading: <>Granular access control policies to secure data at the row level.</>,
|
||||
image: (
|
||||
<Image
|
||||
draggable={false}
|
||||
src={{
|
||||
dark: '/images/solutions/neon/rls-dark.svg',
|
||||
light: '/images/solutions/neon/rls-light.svg',
|
||||
}}
|
||||
alt="Row Level Security"
|
||||
width={100}
|
||||
height={100}
|
||||
quality={100}
|
||||
containerClassName="-mt-8 sm:mt-0 mb-8"
|
||||
/>
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
developerExperience: {
|
||||
id: 'developer-experience',
|
||||
className: '[&_h2]:!max-w-sm',
|
||||
title: (
|
||||
<>
|
||||
Developers can build <span className="text-foreground">faster</span> with Supabase
|
||||
</>
|
||||
),
|
||||
subheading: 'Features that help developers move quickly and focus.',
|
||||
features: [
|
||||
{
|
||||
id: 'ai-assistant',
|
||||
title: 'AI Assistant',
|
||||
icon: 'M11.8949 2.39344C12.5051 1.78324 13.4944 1.78324 14.1046 2.39344L22.9106 11.1994C23.5208 11.8096 23.5208 12.7989 22.9106 13.4091L14.1046 22.2151C13.4944 22.8253 12.5051 22.8253 11.8949 22.2151L3.08892 13.4091C2.47872 12.7989 2.47872 11.8096 3.08892 11.1994L11.8949 2.39344Z M16.5408 12.3043C16.5408 14.2597 14.9556 15.8449 13.0002 15.8449C11.0448 15.8449 9.45961 14.2597 9.45961 12.3043C9.45961 10.3489 11.0448 8.76371 13.0002 8.76371C14.9556 8.76371 16.5408 10.3489 16.5408 12.3043Z',
|
||||
subheading:
|
||||
'A single panel that persists across the Supabase Dashboard and maintains context across AI prompts.',
|
||||
image: (
|
||||
<div className="w-full ml-4 md:ml-6 2xl:ml-8 max-w-[430px] rounded-tl-lg border-t border-l bg-default text-foreground">
|
||||
<div className="flex items-center gap-3 p-2 lg:p-4 border-b">
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 25 25"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className="hover:rotate-12 transition-transform duration-300"
|
||||
>
|
||||
<path
|
||||
d="M11.8949 2.39344C12.5051 1.78324 13.4944 1.78324 14.1046 2.39344L22.9106 11.1994C23.5208 11.8096 23.5208 12.7989 22.9106 13.4091L14.1046 22.2151C13.4944 22.8253 12.5051 22.8253 11.8949 22.2151L3.08892 13.4091C2.47872 12.7989 2.47872 11.8096 3.08892 11.1994L11.8949 2.39344Z M16.5408 12.3043C16.5408 14.2597 14.9556 15.8449 13.0002 15.8449C11.0448 15.8449 9.45961 14.2597 9.45961 12.3043C9.45961 10.3489 11.0448 8.76371 13.0002 8.76371C14.9556 8.76371 16.5408 10.3489 16.5408 12.3043Z"
|
||||
stroke="hsl(var(--brand-default))"
|
||||
strokeMiterlimit="10"
|
||||
strokeLinejoin="bevel"
|
||||
strokeLinecap="square"
|
||||
strokeWidth="1.5"
|
||||
/>
|
||||
</svg>
|
||||
<div className="flex items-center gap-1">
|
||||
<h3 className="text-sm font-medium">AI Assistant</h3>
|
||||
<InfoIcon className="w-3 h-3 text-foreground-lighter" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="space-y-2 p-4 pr-0 2xl:py-8 xl:pl-12 xl:ml-1 text-sm text-[#808080]">
|
||||
<p>Entity: Auth</p>
|
||||
<p>Schema:</p>
|
||||
<p className="text-[#808080]">
|
||||
Issue: We have detected that you have enabled the email provider with an expiry time
|
||||
of more than an hour. It is recommended to set this value to less th...
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
),
|
||||
},
|
||||
{
|
||||
id: 'mcp-server',
|
||||
title: 'MCP Server',
|
||||
icon: 'M19 5L22 2M2 22L5 19M7.5 13.5L10 11M10.5 16.5L13 14M6.3 20.3C6.52297 20.5237 6.78791 20.7013 7.07963 20.8224C7.37136 20.9435 7.68413 21.0059 8 21.0059C8.31587 21.0059 8.62864 20.9435 8.92036 20.8224C9.21209 20.7013 9.47703 20.5237 9.7 20.3L12 18L6 12L3.7 14.3C3.47626 14.523 3.29873 14.7879 3.17759 15.0796C3.05646 15.3714 2.99411 15.6841 2.99411 16C2.99411 16.3159 3.05646 16.6286 3.17759 16.9204C3.29873 17.2121 3.47626 17.477 3.7 17.7L6.3 20.3ZM12 6L18 12L20.3 9.7C20.5237 9.47703 20.7013 9.21209 20.8224 8.92036C20.9435 8.62864 21.0059 8.31587 21.0059 8C21.0059 7.68413 20.9435 7.37136 20.8224 7.07963C20.7013 6.78791 20.5237 6.52297 20.3 6.3L17.7 3.7C17.477 3.47626 17.2121 3.29873 16.9204 3.17759C16.6286 3.05646 16.3159 2.99411 16 2.99411C15.6841 2.99411 15.3714 3.05646 15.0796 3.17759C14.7879 3.29873 14.523 3.47626 14.3 3.7L12 6Z',
|
||||
subheading:
|
||||
'Connect your favorite AI tools such as Cursor or Claude directly with Supabase.',
|
||||
image: (
|
||||
<Image
|
||||
draggable={false}
|
||||
src={{
|
||||
dark: '/images/solutions/neon/mcp-server-dark.svg',
|
||||
light: '/images/solutions/neon/mcp-server-light.svg',
|
||||
}}
|
||||
alt="Vector embeddings"
|
||||
width={100}
|
||||
height={100}
|
||||
quality={100}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{
|
||||
id: 'auto-generated-apis',
|
||||
title: 'Auto-generated APIs',
|
||||
icon: 'M4.13477 12.8129C4.13477 14.1481 4.43245 15.4138 4.96506 16.5471M12.925 4.02271C11.5644 4.02271 10.276 4.33184 9.12614 4.88371M21.7152 12.8129C21.7152 11.4644 21.4115 10.1867 20.8688 9.0447M12.925 21.6032C14.2829 21.6032 15.5689 21.2952 16.717 20.7454M16.717 20.7454C17.2587 21.5257 18.1612 22.0366 19.1831 22.0366C20.84 22.0366 22.1831 20.6935 22.1831 19.0366C22.1831 17.3798 20.84 16.0366 19.1831 16.0366C17.5263 16.0366 16.1831 17.3798 16.1831 19.0366C16.1831 19.6716 16.3804 20.2605 16.717 20.7454ZM4.96506 16.5471C4.16552 17.086 3.63965 17.9999 3.63965 19.0366C3.63965 20.6935 4.98279 22.0366 6.63965 22.0366C8.2965 22.0366 9.63965 20.6935 9.63965 19.0366C9.63965 17.3798 8.2965 16.0366 6.63965 16.0366C6.01951 16.0366 5.44333 16.2248 4.96506 16.5471ZM9.12614 4.88371C8.58687 4.08666 7.67444 3.56274 6.63965 3.56274C4.98279 3.56274 3.63965 4.90589 3.63965 6.56274C3.63965 8.2196 4.98279 9.56274 6.63965 9.56274C8.2965 9.56274 9.63965 8.2196 9.63965 6.56274C9.63965 5.94069 9.45032 5.36285 9.12614 4.88371ZM20.8688 9.0447C21.6621 8.50486 22.1831 7.59464 22.1831 6.56274C22.1831 4.90589 20.84 3.56274 19.1831 3.56274C17.5263 3.56274 16.1831 4.90589 16.1831 6.56274C16.1831 8.2196 17.5263 9.56274 19.1831 9.56274C19.8081 9.56274 20.3884 9.37165 20.8688 9.0447Z',
|
||||
subheading:
|
||||
"Learn SQL when you're ready. In the meantime, Supabase generates automatic APIs to make coding a lot easier.",
|
||||
image: (
|
||||
<Image
|
||||
draggable={false}
|
||||
src={{
|
||||
dark: '/images/solutions/neon/auto-generated-apis-dark.png',
|
||||
light: '/images/solutions/neon/auto-generated-apis-light.png',
|
||||
}}
|
||||
alt="Auto Generated APIs"
|
||||
width={100}
|
||||
height={100}
|
||||
quality={100}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{
|
||||
id: 'foreign-data-wrappers',
|
||||
title: 'Foreign Data Wrappers',
|
||||
icon: 'M10.2805 18.2121C11.2419 18.6711 12.3325 18.8932 13.4711 18.8084C15.2257 18.6776 16.7596 17.843 17.8169 16.6015M8.21496 8.36469C9.27117 7.14237 10.7928 6.322 12.5311 6.19248C13.7196 6.10392 14.8558 6.34979 15.8474 6.85054M17.8169 16.6015L20.5242 19.3223C22.1857 17.5141 23.1562 15.1497 23.1562 12.5005C23.1562 6.89135 18.6091 2.34424 13 2.34424C10.9595 2.34424 9.16199 2.87659 7.57035 3.91232C8.35717 3.56865 9.22613 3.37801 10.1396 3.37801C12.6236 3.37801 14.7783 4.78762 15.8474 6.85054M17.8169 16.6015V16.6015C16.277 15.059 16.3448 12.5527 16.5387 10.3817C16.5557 10.191 16.5644 9.99794 16.5644 9.80282C16.5644 8.73844 16.3056 7.73451 15.8474 6.85054M13 22.6567C7.39086 22.6567 2.84375 18.1096 2.84375 12.5005C2.84375 9.84123 3.8026 7.48969 5.4753 5.67921L8.21496 8.42354V8.42354C9.76942 9.98064 9.69844 12.5133 9.51947 14.7062C9.50526 14.8803 9.49802 15.0564 9.49802 15.2341C9.49802 18.7705 12.3648 21.6373 15.9012 21.6373C16.8116 21.6373 17.6776 21.4473 18.4618 21.1048C16.8609 22.1588 15.06 22.6567 13 22.6567Z',
|
||||
subheading:
|
||||
'Connect Supabase to Redshift, BigQuery, MySQL, and external APIs for seamless integrations.',
|
||||
image: (
|
||||
<Image
|
||||
draggable={false}
|
||||
src={{
|
||||
dark: '/images/solutions/neon/foreign-data-wrappers-dark.png',
|
||||
light: '/images/solutions/neon/foreign-data-wrappers-light.png',
|
||||
}}
|
||||
alt="Foreign Data Wrappers"
|
||||
containerClassName="md:mb-4"
|
||||
width={100}
|
||||
height={100}
|
||||
quality={100}
|
||||
/>
|
||||
),
|
||||
},
|
||||
{
|
||||
id: 'instant-deployment',
|
||||
title: 'Instant and secure deployment',
|
||||
icon: 'M12.5 1.5625C6.45939 1.5625 1.5625 6.45939 1.5625 12.5C1.5625 18.5406 6.45939 23.4375 12.5 23.4375C18.5406 23.4375 23.4375 18.5406 23.4375 12.5C23.4375 9.90692 22.5351 7.52461 21.0273 5.64995L11.6145 15.0627L9.61957 13.0677M12.6068 5.82237C8.92939 5.82237 5.94826 8.80351 5.94826 12.4809C5.94826 16.1583 8.92939 19.1395 12.6068 19.1395C16.2842 19.1395 19.2654 16.1583 19.2654 12.4809C19.2654 11.1095 18.8507 9.83483 18.14 8.77557',
|
||||
subheading: (
|
||||
<>
|
||||
<span className="text-foreground">No need to set up servers</span>, manage DevOps, or
|
||||
tweak security settings.
|
||||
</>
|
||||
),
|
||||
|
||||
image: (
|
||||
<>
|
||||
<Image
|
||||
draggable={false}
|
||||
src={{
|
||||
dark: '/images/index/products/realtime-dark.svg',
|
||||
light: '/images/index/products/realtime-light.svg',
|
||||
}}
|
||||
alt="background grid"
|
||||
containerClassName="absolute inset-0 rotate-180 not-sr-only"
|
||||
width={100}
|
||||
height={100}
|
||||
quality={100}
|
||||
/>
|
||||
<div
|
||||
className="
|
||||
absolute pointer-events-none
|
||||
w-full h-full
|
||||
inset-0 top-auto
|
||||
bg-[linear-gradient(to_top,transparent_0%,transparent_50%,hsl(var(--background-default))_75%)]
|
||||
"
|
||||
/>
|
||||
<Image
|
||||
draggable={false}
|
||||
src={{
|
||||
dark: '/images/solutions/neon/slonik-dark.svg',
|
||||
light: '/images/solutions/neon/slonik-light.svg',
|
||||
}}
|
||||
alt="Postgres slonik elephant"
|
||||
width={100}
|
||||
height={100}
|
||||
quality={100}
|
||||
/>
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
id: 'observability',
|
||||
title: 'Observability',
|
||||
icon: 'M11.1404 7.66537C11.1404 5.18146 13.1541 3.16785 15.638 3.16785H17.3775C19.8614 3.16785 21.875 5.18146 21.875 7.66537V17.3776C21.875 19.8615 19.8614 21.8751 17.3775 21.8751H15.638C13.1541 21.8751 11.1404 19.8615 11.1404 17.3776V7.66537Z M3.125 14.7821C3.125 13.4015 4.24419 12.2823 5.62477 12.2823C7.00536 12.2823 8.12454 13.4015 8.12454 14.7821V19.3754C8.12454 20.7559 7.00536 21.8751 5.62477 21.8751C4.24419 21.8751 3.125 20.7559 3.125 19.3754V14.7821Z M3.125 5.58522C3.125 4.20463 4.24419 3.08545 5.62477 3.08545C7.00536 3.08545 8.12454 4.20463 8.12454 5.58522V6.95164C8.12454 8.33223 7.00536 9.45142 5.62477 9.45142C4.24419 9.45142 3.125 8.33223 3.125 6.95164V5.58522Z',
|
||||
subheading:
|
||||
'Built-in logs, query performance tools, and security insights for easy debugging.',
|
||||
image: (
|
||||
<RealtimeLogs
|
||||
isActive={false}
|
||||
isInView={true}
|
||||
className="h-3/5 bottom-0 top-auto [&_.visual-overlay]:!bg-[linear-gradient(to_top,hsl(var(--background-default))_0%,transparent_100%)]"
|
||||
/>
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
resultsSection: {
|
||||
id: 'results',
|
||||
heading: (
|
||||
<>
|
||||
Top performance,
|
||||
<br />
|
||||
at any scale
|
||||
</>
|
||||
),
|
||||
subheading:
|
||||
"Supabase ensures optimal database performance at any scale, so you can focus on innovating and growing without worrying about infrastructure limitations — whether you're handling high-traffic applications, complex queries, or massive data volumes.",
|
||||
highlights: [
|
||||
{
|
||||
heading: 'databases managed',
|
||||
subheading: '1,000,000+',
|
||||
},
|
||||
{
|
||||
heading: 'databases launched daily',
|
||||
subheading: '2,500+',
|
||||
},
|
||||
],
|
||||
},
|
||||
featureGrid: {
|
||||
id: 'database-features',
|
||||
features: [
|
||||
{
|
||||
id: 'postgres-core',
|
||||
title: 'Postgres at its core',
|
||||
description: (
|
||||
<>
|
||||
ACID-compliant, battle-tested database{' '}
|
||||
<span className="text-foreground">trusted by enterprises and startups</span>.
|
||||
</>
|
||||
),
|
||||
icon: 'M13.2689 14.9229C14.04 16.494 15.6379 17.4892 17.3881 17.4893H22.0892C22.4726 17.4893 22.7843 17.8003 22.7845 18.1836C22.7845 18.5671 22.4728 18.8789 22.0892 18.8789H20.1664C20.1564 21.0605 18.171 22.4853 16.0052 22.4854C14.044 22.4854 12.4009 21.1292 11.9603 19.3037L11.9213 19.126L11.9086 18.9854C11.9116 18.6624 12.1408 18.3748 12.4701 18.3105C12.7994 18.2463 13.1203 18.4265 13.2445 18.7246L13.2845 18.8594L13.3412 19.0947C13.6746 20.251 14.742 21.0967 16.0052 21.0967C17.6551 21.0966 18.7655 20.0649 18.7758 18.8789H17.3881C15.108 18.8788 13.0263 17.5811 12.0218 15.5342L13.2689 14.9229ZM18.7767 15.6787V11.4639C18.7766 8.09738 16.0476 5.36816 12.681 5.36816H11.7269C11.7032 5.36816 11.6797 5.36364 11.6566 5.36133H7.15564C6.5783 5.36133 6.05835 5.69927 5.82068 6.21777L5.77673 6.32422L4.26404 10.4443C4.03486 11.0686 4.21563 11.7696 4.71814 12.2051L5.75622 13.1045L5.93298 13.2754C6.32193 13.694 6.54138 14.2468 6.54138 14.8242V16.4775L6.5531 16.7227C6.67574 17.9298 7.69544 18.8721 8.93493 18.8721C9.2213 18.8721 9.45986 18.6685 9.51501 18.3984L9.52771 18.2793V10.9121C9.52772 9.33737 10.1566 7.82755 11.2748 6.71875L11.3842 6.63086C11.6543 6.45411 12.0199 6.48475 12.2562 6.72266C12.5263 6.995 12.5247 7.43503 12.2523 7.70508L12.097 7.86816C11.3396 8.69814 10.9164 9.78304 10.9164 10.9121V18.2793L10.9056 18.4814C10.8044 19.4807 9.96094 20.2607 8.93493 20.2607C6.91113 20.2607 5.25814 18.6714 5.15661 16.6729L5.15173 16.4775V14.8242C5.15173 14.5993 5.06693 14.3838 4.9154 14.2207L4.84607 14.1543L3.80798 13.2549C2.86934 12.4414 2.53223 11.1318 2.96033 9.96582L4.47302 5.84473L4.55798 5.63867C5.02039 4.62971 6.03224 3.97266 7.15564 3.97266H11.8246V3.97949H12.681C16.8146 3.97949 20.1662 7.33032 20.1664 11.4639V15.6787C20.1664 16.0622 19.8546 16.373 19.4711 16.373C19.0877 16.3728 18.7767 16.0621 18.7767 15.6787ZM12.3392 14.6055C12.6835 14.4365 13.1 14.5785 13.2689 14.9229L12.0218 15.5342C11.8532 15.1901 11.9953 14.7745 12.3392 14.6055Z M14.4779 10.7135C14.4779 11.1278 14.8137 11.4635 15.2279 11.4635C15.6421 11.4635 15.9779 11.1278 15.9779 10.7135C15.9779 10.2993 15.6421 9.96354 15.2279 9.96354C14.8137 9.96354 14.4779 10.2993 14.4779 10.7135Z',
|
||||
iconNoStroke: true,
|
||||
},
|
||||
{
|
||||
id: 'scaling',
|
||||
title: 'Horizontal & Vertical Scaling',
|
||||
description: (
|
||||
<>
|
||||
Scale compute and storage independently, including support for{' '}
|
||||
<span className="text-foreground">read replicas</span>.
|
||||
</>
|
||||
),
|
||||
icon: 'M14.2847 11.1404V7.8447C14.2847 5.36078 12.2711 3.34717 9.7872 3.34717H7.84476C5.36084 3.34717 3.34723 5.36078 3.34723 7.8447V9.78714C3.34723 12.2711 5.36084 14.2847 7.84476 14.2847H11.1253M8.63752 8.65306L18.4524 18.468M19.1282 14.068V16.5986C19.1282 17.8405 18.1214 18.8474 16.8794 18.8474H14.2847M15.6573 22.0972H17.5997C20.0836 22.0972 22.0972 20.0836 22.0972 17.5996V15.6572C22.0972 13.1733 20.0836 11.1597 17.5997 11.1597H15.6573C13.1733 11.1597 11.1597 13.1733 11.1597 15.6572V17.5996C11.1597 20.0836 13.1733 22.0972 15.6573 22.0972Z',
|
||||
},
|
||||
{
|
||||
id: 'multi-region',
|
||||
title: 'Multi-region Deployments',
|
||||
description: (
|
||||
<>
|
||||
Deploy databases across multiple regions for{' '}
|
||||
<span className="text-foreground">global availability</span>.
|
||||
</>
|
||||
),
|
||||
icon: 'M8.48462 3.05339C6.79298 3.58819 5.33457 4.64831 4.30037 6.0436C3.4029 7.25444 2.82613 8.71636 2.69516 10.306H6.77142C6.83771 8.01994 7.22916 5.93809 7.84745 4.36313C8.03485 3.88578 8.24723 3.44433 8.48462 3.05339ZM10.9999 1.27832C7.79633 1.27832 4.95467 2.82842 3.18457 5.21656C1.98658 6.83284 1.2778 8.83471 1.2778 11.0001C1.2778 13.1781 1.99476 15.1906 3.20527 16.8117C4.97675 19.1842 7.80877 20.7225 10.9999 20.7225C14.191 20.7225 17.023 19.1841 18.7944 16.8117C20.005 15.1906 20.722 13.1781 20.722 11.0001C20.722 8.83471 20.0132 6.83284 18.8152 5.21656L18.7944 5.18864C17.0229 2.81635 14.1909 1.27832 10.9999 1.27832ZM10.9999 2.66721C10.768 2.66721 10.4732 2.78413 10.1294 3.15462C9.78466 3.52602 9.44227 4.10142 9.14028 4.87067C8.596 6.2571 8.22699 8.16013 8.16092 10.306H13.8389C13.7728 8.16013 13.4038 6.2571 12.8595 4.87067C12.5575 4.10142 12.2151 3.52602 11.8704 3.15462C11.5265 2.78413 11.2318 2.66721 10.9999 2.66721ZM15.2284 10.306C15.1621 8.01994 14.7706 5.93809 14.1523 4.36313C13.9649 3.88578 13.7525 3.44433 13.5152 3.05339C15.1971 3.58512 16.6485 4.63618 17.6816 6.01966L17.6994 6.0436C18.5969 7.25443 19.1737 8.71636 19.3046 10.306H15.2284ZM13.8389 11.6949H8.16092C8.22699 13.8407 8.596 15.7437 9.14028 17.1301C9.44227 17.8994 9.78466 18.4748 10.1294 18.8462C10.4732 19.2167 10.768 19.3336 10.9999 19.3336C11.2318 19.3336 11.5265 19.2167 11.8704 18.8462C12.2151 18.4748 12.5575 17.8994 12.8595 17.1301C13.4038 15.7437 13.7728 13.8407 13.8389 11.6949ZM13.5152 18.9473C13.7526 18.5564 13.965 18.115 14.1523 17.6377C14.7706 16.0627 15.1621 13.9809 15.2284 11.6949H19.3046C19.1727 13.2947 18.5892 14.7653 17.6816 15.9807C16.6485 17.3643 15.1971 18.4155 13.5152 18.9473ZM8.48458 18.9474C8.24721 18.5564 8.03484 18.115 7.84745 17.6377C7.22916 16.0627 6.83771 13.9809 6.77142 11.6949H2.6952C2.82712 13.2947 3.41061 14.7653 4.31815 15.9808C5.35126 17.3644 6.80264 18.4156 8.48458 18.9474Z',
|
||||
iconNoStroke: true,
|
||||
},
|
||||
{
|
||||
id: 'high-availability',
|
||||
title: 'High Availability Architecture',
|
||||
description: (
|
||||
<>
|
||||
Enterprise plans offer{' '}
|
||||
<span className="text-foreground">automatic failover and redundancy</span> for
|
||||
mission-critical applications.
|
||||
</>
|
||||
),
|
||||
icon: 'M16.3046 3.24514C15.3004 2.91279 14.2268 2.73291 13.1111 2.73291C7.50197 2.73291 2.95486 7.28002 2.95486 12.8892C2.95486 18.4983 7.50197 23.0454 13.1111 23.0454C18.7203 23.0454 23.2674 18.4983 23.2674 12.8892C23.2674 10.5703 22.4902 8.4329 21.1822 6.72328L12.2253 15.5572L10.2303 13.5622M13.2175 6.31682C9.54013 6.31682 6.55899 9.29795 6.55899 12.4809C6.55899 16.1583 9.54013 19.1395 13.2175 19.1395C16.895 19.1395 19.8761 16.1583 19.8761 12.4809C19.8761 11.1095 19.4615 9.83483 18.7507 8.77557',
|
||||
},
|
||||
{
|
||||
id: 'pitr',
|
||||
title: 'Point-in-Time Recovery',
|
||||
description: (
|
||||
<>
|
||||
Restore your database <span className="text-foreground">to any point in time</span> for
|
||||
disaster recovery.
|
||||
</>
|
||||
),
|
||||
icon: 'M3.3784 13.3407C3.1413 10.4689 4.12132 7.51558 6.31845 5.31845C10.2847 1.35219 16.7153 1.35219 20.6816 5.31845C24.6478 9.28471 24.6478 15.7153 20.6816 19.6816C16.7153 23.6478 10.2847 23.6478 6.31845 19.6816C5.3819 18.745 4.6665 17.671 4.17224 16.5246M0.706939 11.443L2.28117 13.0172C2.89137 13.6274 3.88069 13.6274 4.49088 13.0172L6.06512 11.443M10.761 17.5453L16.0995 17.5453C16.9625 17.5453 17.662 16.8458 17.662 15.9828V15.7328C17.662 14.8699 16.9625 14.1703 16.0995 14.1703L10.761 14.1703C9.89806 14.1703 9.1985 14.8699 9.1985 15.7328L9.1985 15.9828C9.1985 16.8458 9.89806 17.5453 10.761 17.5453ZM11.1648 14.1711L15.6537 14.1711C16.5167 14.1711 17.2162 13.4716 17.2162 12.6086L17.2162 12.3586C17.2162 11.4956 16.5167 10.7961 15.6537 10.7961L11.1648 10.7961C10.3019 10.7961 9.60234 11.4956 9.60234 12.3586L9.60234 12.6086C9.60234 13.4716 10.3019 14.1711 11.1648 14.1711ZM10.7606 10.7963L16.0991 10.7963C16.9621 10.7963 17.6616 10.0967 17.6616 9.2338V8.98375C17.6616 8.1208 16.9621 7.42125 16.0991 7.42125L10.7606 7.42125C9.89765 7.42125 9.19809 8.12081 9.19809 8.98375L9.19809 9.2338C9.19809 10.0967 9.89765 10.7963 10.7606 10.7963Z',
|
||||
},
|
||||
{
|
||||
id: 'backups',
|
||||
title: 'Automatic Backups',
|
||||
description: (
|
||||
<>
|
||||
<span className="text-foreground">Daily backups</span> with retention policies for added
|
||||
security.
|
||||
</>
|
||||
),
|
||||
icon: 'M22.375 5.7085C22.375 7.43439 18.1777 8.8335 13 8.8335C7.82233 8.8335 3.625 7.43439 3.625 5.7085M22.375 5.7085C22.375 3.98261 18.1777 2.5835 13 2.5835C7.82233 2.5835 3.625 3.98261 3.625 5.7085M22.375 5.7085V10.1877M3.625 5.7085L3.625 20.2918C3.62434 20.9675 4.28075 21.6251 5.49583 22.166C6.71091 22.7069 8.41919 23.1019 10.3646 23.2918M3.625 13.0002C3.6235 13.5826 4.11036 14.1536 5.03066 14.6487C5.95095 15.1438 7.26805 15.5434 8.83334 15.8022M13 13.0002V17.1668M13 17.1668H17.1667M13 17.1668L15.1771 14.9897C16.0833 14.0835 17.3438 13.521 18.7292 13.521C19.9724 13.521 21.1647 14.0149 22.0437 14.8939C22.9228 15.773 23.4167 16.9653 23.4167 18.2085C23.4167 19.3016 23.0727 20.3671 22.4336 21.2539C21.7944 22.1407 20.8924 22.8039 19.8554 23.1496C18.8183 23.4952 17.6988 23.5059 16.6554 23.1799C15.612 22.854 14.6975 22.208 14.0417 21.3335',
|
||||
},
|
||||
],
|
||||
},
|
||||
securitySection: {
|
||||
id: 'security',
|
||||
label: 'Security',
|
||||
heading: 'Trusted for medical records, missions to the moon, and everything in between',
|
||||
subheading:
|
||||
"Keep your data secure with SOC 2, HIPAA, and GDPR compliance. Your customers' data is encrypted at rest and in transit, with built-in tools for monitoring and managing security threats.",
|
||||
features: [
|
||||
{
|
||||
icon: ShieldCheck,
|
||||
heading: 'SOC 2 Type II certified',
|
||||
},
|
||||
{
|
||||
icon: HeartPulse,
|
||||
heading: 'HIPAA compliance',
|
||||
},
|
||||
{
|
||||
icon: ShieldAlert,
|
||||
heading: 'DDoS Protection',
|
||||
},
|
||||
{
|
||||
icon: Lock,
|
||||
heading: 'Multi-factor Authentication',
|
||||
},
|
||||
{
|
||||
icon: ClipboardCheck,
|
||||
heading: 'Vulnerability Management',
|
||||
},
|
||||
{
|
||||
icon: Users,
|
||||
heading: 'Role-based access control',
|
||||
},
|
||||
{
|
||||
icon: List,
|
||||
heading: 'Database Audit Logs',
|
||||
},
|
||||
{
|
||||
icon: Lightbulb,
|
||||
heading: 'Security Advisors',
|
||||
},
|
||||
{
|
||||
icon: FolderLock,
|
||||
heading: 'Encrypted Storage',
|
||||
},
|
||||
{
|
||||
icon: UserX,
|
||||
heading: 'Network restrictions',
|
||||
},
|
||||
],
|
||||
cta: {
|
||||
label: 'Learn about security',
|
||||
url: '/security',
|
||||
},
|
||||
},
|
||||
ctaSection: {
|
||||
id: 'get-started',
|
||||
title: (
|
||||
<>
|
||||
Migrate your Neon database to Supabase to{' '}
|
||||
<span className="text-foreground">get the most out of Postgres</span> while gaining access
|
||||
to all the features you need to build a project
|
||||
</>
|
||||
),
|
||||
primaryCta: {
|
||||
label: 'Open migration guide',
|
||||
url: 'https://supabase.com/docs/guides/platform/migrating-to-supabase/neon',
|
||||
target: '_blank',
|
||||
icon: <ArrowUpRight className="w-4 h-4 text-current" />,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
export default data
|
||||
@@ -1,8 +1,8 @@
|
||||
import { LucideIcon } from 'lucide-react'
|
||||
import type { ComponentType, SVGProps } from 'react'
|
||||
|
||||
type HeroIcon = ComponentType<SVGProps<SVGSVGElement>>
|
||||
type IconType = LucideIcon | HeroIcon
|
||||
export type HeroIcon = ComponentType<SVGProps<SVGSVGElement>>
|
||||
export type IconType = LucideIcon | HeroIcon
|
||||
|
||||
interface Metadata {
|
||||
metaTitle: string
|
||||
@@ -52,32 +52,23 @@ export interface Highlight {
|
||||
}
|
||||
|
||||
export interface Feature {
|
||||
icon?: IconType
|
||||
id?: string
|
||||
icon?: IconType | string
|
||||
iconNoStroke?: boolean
|
||||
heading: string | JSX.Element
|
||||
subheading: string | JSX.Element
|
||||
img?: JSX.Element
|
||||
}
|
||||
|
||||
export interface WhySection {
|
||||
export interface FeaturesSection {
|
||||
id: string
|
||||
label: string
|
||||
label?: string
|
||||
heading: JSX.Element
|
||||
subheading?: string
|
||||
features: Feature[]
|
||||
}
|
||||
|
||||
interface FeaturesSection {
|
||||
id: string
|
||||
heading: JSX.Element
|
||||
subheading: string
|
||||
features: {
|
||||
[key: string]: {
|
||||
id: string
|
||||
icon?: IconType
|
||||
heading: JSX.Element
|
||||
subheading: JSX.Element
|
||||
img?: JSX.Element
|
||||
}
|
||||
}
|
||||
// {
|
||||
// [key: string]: Feature
|
||||
// }
|
||||
}
|
||||
|
||||
export interface Testimonials {
|
||||
@@ -94,7 +85,7 @@ export interface Testimonials {
|
||||
interface CTASection {
|
||||
id: string
|
||||
label: string
|
||||
heading: JSX.Element
|
||||
heading: JSX.Element | string
|
||||
subheading: string
|
||||
cta: {
|
||||
label: string
|
||||
@@ -107,7 +98,7 @@ export interface AIData {
|
||||
metadata: Metadata
|
||||
heroSection: HeroSection
|
||||
quotes: Quotes
|
||||
why: WhySection
|
||||
why: FeaturesSection
|
||||
features: FeaturesSection
|
||||
testimonials: Testimonials
|
||||
'cta-section': CTASection
|
||||
|
||||
90
apps/www/pages/solutions/switch-from-neon.tsx
Normal file
@@ -0,0 +1,90 @@
|
||||
import { NextPage } from 'next'
|
||||
import dynamic from 'next/dynamic'
|
||||
import { NextSeo } from 'next-seo'
|
||||
|
||||
import Layout from '~/components/Layouts/Default'
|
||||
import content from '~/data/solutions/neon'
|
||||
|
||||
const ProductHeader = dynamic(() => import('~/components/Sections/ProductHeader2'))
|
||||
const SingleQuote = dynamic(() => import('~/components/Enterprise/SingleQuote'))
|
||||
const FeaturesSection = dynamic(() => import('~/components/Solutions/FeaturesSection'))
|
||||
const PlatformSection = dynamic(() => import('~/components/Solutions/PlatformSection'))
|
||||
const DXSection = dynamic(() => import('~/components/Solutions/DeveloperExperienceSection'))
|
||||
const ResultsSection = dynamic(() => import('~/components/Solutions/ResultsSection'))
|
||||
const FeatureGrid = dynamic(() => import('~/components/Solutions/FeatureGrid'))
|
||||
const Security = dynamic(() => import('~/components/Enterprise/Security'))
|
||||
const CtaSection = dynamic(() => import('~/components/Solutions/CtaSection'))
|
||||
|
||||
const Neon: NextPage = () => {
|
||||
return (
|
||||
<>
|
||||
<NextSeo
|
||||
title={content.metadata.metaTitle}
|
||||
description={content.metadata.metaDescription}
|
||||
openGraph={{
|
||||
title: content.metadata.metaTitle,
|
||||
description: content.metadata.metaDescription,
|
||||
url: `https://supabase.com/neon`,
|
||||
}}
|
||||
noindex={true}
|
||||
nofollow={true}
|
||||
/>
|
||||
<Layout className="overflow-visible">
|
||||
<ProductHeader {...content.heroSection} />
|
||||
<SingleQuote
|
||||
quote={{
|
||||
text: content.quote.text,
|
||||
author: content.quote.author,
|
||||
role: content.quote.role,
|
||||
logo: content.quote.logo,
|
||||
link: content.quote.link,
|
||||
avatar: content.quote.avatar,
|
||||
}}
|
||||
{...content.quote}
|
||||
/>
|
||||
<FeaturesSection
|
||||
id={content.why.id}
|
||||
label={content.why.label}
|
||||
heading={content.why.heading}
|
||||
subheading={content.why.subheading}
|
||||
features={content.why.features}
|
||||
/>
|
||||
<PlatformSection
|
||||
id={content.platform.id}
|
||||
title={content.platform.title}
|
||||
subheading={content.platform.subheading}
|
||||
features={content.platform.features}
|
||||
/>
|
||||
<DXSection
|
||||
id={content.developerExperience.id}
|
||||
title={content.developerExperience.title}
|
||||
subheading={content.developerExperience.subheading}
|
||||
features={content.developerExperience.features}
|
||||
className={content.developerExperience.className}
|
||||
/>
|
||||
<ResultsSection
|
||||
id={content.resultsSection.id}
|
||||
heading={content.resultsSection.heading}
|
||||
subheading={content.resultsSection.subheading}
|
||||
highlights={content.resultsSection.highlights}
|
||||
/>
|
||||
<FeatureGrid id={content.featureGrid.id} features={content.featureGrid.features} />
|
||||
<Security
|
||||
id={content.securitySection.id}
|
||||
label={content.securitySection.label}
|
||||
heading={content.securitySection.heading}
|
||||
subheading={content.securitySection.subheading}
|
||||
features={content.securitySection.features}
|
||||
cta={content.securitySection.cta}
|
||||
/>
|
||||
<CtaSection
|
||||
id={content.ctaSection.id}
|
||||
title={content.ctaSection.title}
|
||||
primaryCta={content.ctaSection.primaryCta}
|
||||
/>
|
||||
</Layout>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export default Neon
|
||||
15
apps/www/public/images/solutions/neon/ai-assistant-dark.svg
Normal file
|
After Width: | Height: | Size: 109 KiB |
15
apps/www/public/images/solutions/neon/ai-assistant-light.svg
Normal file
|
After Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 59 KiB |
132
apps/www/public/images/solutions/neon/database-visual-dark.svg
Normal file
|
After Width: | Height: | Size: 33 KiB |
132
apps/www/public/images/solutions/neon/database-visual-light.svg
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
apps/www/public/images/solutions/neon/deriv-logo.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 45 KiB |
51
apps/www/public/images/solutions/neon/mcp-server-dark.svg
Normal file
|
After Width: | Height: | Size: 146 KiB |
51
apps/www/public/images/solutions/neon/mcp-server-light.svg
Normal file
|
After Width: | Height: | Size: 146 KiB |
77
apps/www/public/images/solutions/neon/neon-hero-dark.svg
Normal file
@@ -0,0 +1,77 @@
|
||||
<svg width="568" height="424" viewBox="0 0 568 424" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g filter="url(#filter0_d_744_1355)">
|
||||
<rect x="68.8235" y="143.935" width="173.109" height="173.836" rx="28.1804" fill="#202020"/>
|
||||
<rect x="69.3235" y="144.435" width="172.109" height="172.836" rx="27.6804" stroke="#2E2E2E"/>
|
||||
</g>
|
||||
<line x1="107.628" y1="170.847" x2="107.628" y2="290.859" stroke="#2E2E2E" stroke-width="0.509144"/>
|
||||
<line x1="120.72" y1="170.847" x2="120.72" y2="290.859" stroke="#2E2E2E" stroke-width="0.509144"/>
|
||||
<line x1="154.178" y1="170.847" x2="154.178" y2="290.859" stroke="#2E2E2E" stroke-width="0.509144"/>
|
||||
<line x1="167.27" y1="170.847" x2="167.27" y2="290.859" stroke="#2E2E2E" stroke-width="0.509144"/>
|
||||
<line x1="189.818" y1="170.847" x2="189.818" y2="290.859" stroke="#2E2E2E" stroke-width="0.509144"/>
|
||||
<line x1="202.91" y1="170.847" x2="202.91" y2="290.859" stroke="#2E2E2E" stroke-width="0.509144"/>
|
||||
<line x1="215.384" y1="183.83" x2="95.3718" y2="183.83" stroke="#2E2E2E" stroke-width="0.509144"/>
|
||||
<line x1="215.384" y1="196.922" x2="95.3718" y2="196.922" stroke="#2E2E2E" stroke-width="0.509144"/>
|
||||
<line x1="215.384" y1="265.293" x2="95.3718" y2="265.293" stroke="#2E2E2E" stroke-width="0.509144"/>
|
||||
<line x1="215.384" y1="278.385" x2="95.3718" y2="278.385" stroke="#2E2E2E" stroke-width="0.509144"/>
|
||||
<line x1="215.632" y1="276.403" x2="133.351" y2="171.087" stroke="#2E2E2E" stroke-width="0.509144"/>
|
||||
<line x1="209.814" y1="290.222" x2="116.815" y2="171.188" stroke="#2E2E2E" stroke-width="0.509144"/>
|
||||
<g clip-path="url(#clip0_744_1355)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M107.373 199.523C107.373 190.515 114.744 183.212 123.837 183.212H186.4C195.493 183.212 202.864 190.515 202.864 199.523V252.239C202.864 261.559 190.96 265.603 185.187 258.245L167.137 235.242V263.137C167.137 271.244 160.503 277.817 152.32 277.817H123.837C114.744 277.817 107.373 270.514 107.373 261.505V199.523ZM123.837 196.261C122.018 196.261 120.544 197.721 120.544 199.523V261.505C120.544 263.307 122.018 264.768 123.837 264.768H152.813C153.723 264.768 153.966 264.037 153.966 263.137V225.731C153.966 216.411 165.87 212.366 171.643 219.724L189.693 242.727V199.523C189.693 197.721 189.865 196.261 188.046 196.261H123.837Z" fill="#3E3E3E"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M107.373 199.523C107.373 190.515 114.744 183.212 123.837 183.212H186.4C195.493 183.212 202.864 190.515 202.864 199.523V252.239C202.864 261.559 190.96 265.603 185.187 258.245L167.137 235.242V263.137C167.137 271.244 160.503 277.817 152.32 277.817H123.837C114.744 277.817 107.373 270.514 107.373 261.505V199.523ZM123.837 196.261C122.018 196.261 120.544 197.721 120.544 199.523V261.505C120.544 263.307 122.018 264.768 123.837 264.768H152.813C153.723 264.768 153.966 264.037 153.966 263.137V225.731C153.966 216.411 165.87 212.366 171.643 219.724L189.693 242.727V199.523C189.693 197.721 189.865 196.261 188.046 196.261H123.837Z" fill="url(#paint0_linear_744_1355)" fill-opacity="0.4"/>
|
||||
</g>
|
||||
<foreignObject x="190.114" y="62.2251" width="337.067" height="337.067"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(12.06px);clip-path:url(#bgblur_1_744_1355_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter1_d_744_1355)" data-figma-bg-blur-radius="24.1232">
|
||||
<rect x="215.824" y="87.935" width="285.647" height="285.647" rx="53.5588" fill="#1C1C1C"/>
|
||||
<rect x="216.359" y="88.4706" width="284.576" height="284.576" rx="53.0232" stroke="#343434" stroke-width="1.07125"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip2_744_1355)">
|
||||
<path d="M370.486 298.914C366.864 303.465 359.52 300.972 359.433 295.16L358.157 210.16H415.433C425.808 210.16 431.594 222.116 425.143 230.224L370.486 298.914Z" fill="url(#paint1_linear_744_1355)"/>
|
||||
<path d="M370.486 298.914C366.864 303.465 359.52 300.972 359.433 295.16L358.157 210.16H415.433C425.808 210.16 431.594 222.116 425.143 230.224L370.486 298.914Z" fill="url(#paint2_linear_744_1355)" fill-opacity="0.2"/>
|
||||
<path d="M347.191 162.141C350.813 157.589 358.157 160.083 358.245 165.895L358.804 250.895H302.244C291.869 250.895 286.083 238.938 292.534 230.831L347.191 162.141Z" fill="#3ECF8E"/>
|
||||
</g>
|
||||
<path d="M352.49 101.406C352.49 104.352 354.878 106.74 357.824 106.74C360.769 106.74 363.157 104.352 363.157 101.406C363.157 98.4607 360.769 96.0729 357.824 96.0729C354.878 96.0729 352.49 98.4607 352.49 101.406ZM155.824 125.762H156.824V71H155.824H154.824V125.762H155.824ZM176.824 50V51H336.824V50V49H176.824V50ZM357.824 71H356.824V101.406H357.824H358.824V71H357.824ZM336.824 50V51C347.869 51 356.824 59.9543 356.824 71H357.824H358.824C358.824 58.8497 348.974 49 336.824 49V50ZM155.824 71H156.824C156.824 59.9543 165.778 51 176.824 51V50V49C164.673 49 154.824 58.8497 154.824 71H155.824Z" fill="url(#paint3_linear_744_1355)"/>
|
||||
<defs>
|
||||
<filter id="filter0_d_744_1355" x="65.9474" y="141.059" width="180.779" height="181.506" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dx="0.958705" dy="0.958705"/>
|
||||
<feGaussianBlur stdDeviation="1.91741"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_744_1355"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_744_1355" result="shape"/>
|
||||
</filter>
|
||||
<filter id="filter1_d_744_1355" x="190.114" y="62.2251" width="337.067" height="337.067" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset/>
|
||||
<feGaussianBlur stdDeviation="12.855"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.0117647 0 0 0 0 0.0117647 0 0 0 0 0.0117647 0 0 0 0.6 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_744_1355"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_744_1355" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_1_744_1355_clip_path" transform="translate(-190.114 -62.2251)"><rect x="215.824" y="87.935" width="285.647" height="285.647" rx="53.5588"/>
|
||||
</clipPath><linearGradient id="paint0_linear_744_1355" x1="107.352" y1="278.54" x2="202.859" y2="183.027" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#EDEDED" stop-opacity="0.4"/>
|
||||
<stop offset="1" stop-color="white"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_744_1355" x1="358.157" y1="229.006" x2="409.03" y2="250.388" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#249361"/>
|
||||
<stop offset="1" stop-color="#3ECF8E"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear_744_1355" x1="335.588" y1="198.172" x2="358.726" y2="241.821" gradientUnits="userSpaceOnUse">
|
||||
<stop/>
|
||||
<stop offset="1" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint3_linear_744_1355" x1="153.824" y1="126.746" x2="392.405" y2="115.784" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="1" stop-color="#EDEDED"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip0_744_1355">
|
||||
<rect width="95.4932" height="94.6049" fill="white" transform="translate(107.373 183.212)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2_744_1355">
|
||||
<rect width="138.063" height="142.823" fill="white" transform="translate(289.792 159.523)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.4 KiB |
77
apps/www/public/images/solutions/neon/neon-hero-light.svg
Normal file
@@ -0,0 +1,77 @@
|
||||
<svg width="567" height="424" viewBox="0 0 567 424" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g filter="url(#filter0_d_744_1397)">
|
||||
<rect x="68" y="143.935" width="173.109" height="173.836" rx="28.1804" fill="white"/>
|
||||
<rect x="68.5" y="144.435" width="172.109" height="172.836" rx="27.6804" stroke="#EDEDED"/>
|
||||
</g>
|
||||
<line x1="106.804" y1="170.847" x2="106.804" y2="290.859" stroke="#EDEDED" stroke-width="0.509144"/>
|
||||
<line x1="119.896" y1="170.847" x2="119.896" y2="290.859" stroke="#EDEDED" stroke-width="0.509144"/>
|
||||
<line x1="153.354" y1="170.847" x2="153.354" y2="290.859" stroke="#EDEDED" stroke-width="0.509144"/>
|
||||
<line x1="166.446" y1="170.847" x2="166.446" y2="290.859" stroke="#EDEDED" stroke-width="0.509144"/>
|
||||
<line x1="188.994" y1="170.847" x2="188.994" y2="290.859" stroke="#EDEDED" stroke-width="0.509144"/>
|
||||
<line x1="202.087" y1="170.847" x2="202.087" y2="290.859" stroke="#EDEDED" stroke-width="0.509144"/>
|
||||
<line x1="214.561" y1="183.83" x2="94.5481" y2="183.83" stroke="#EDEDED" stroke-width="0.509144"/>
|
||||
<line x1="214.561" y1="196.922" x2="94.5481" y2="196.922" stroke="#EDEDED" stroke-width="0.509144"/>
|
||||
<line x1="214.561" y1="265.293" x2="94.5481" y2="265.293" stroke="#EDEDED" stroke-width="0.509144"/>
|
||||
<line x1="214.561" y1="278.385" x2="94.5481" y2="278.385" stroke="#EDEDED" stroke-width="0.509144"/>
|
||||
<line x1="214.809" y1="276.403" x2="132.527" y2="171.087" stroke="#EDEDED" stroke-width="0.509144"/>
|
||||
<line x1="208.99" y1="290.222" x2="115.991" y2="171.188" stroke="#EDEDED" stroke-width="0.509144"/>
|
||||
<g clip-path="url(#clip0_744_1397)">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M106.549 199.523C106.549 190.515 113.92 183.212 123.013 183.212H185.576C194.669 183.212 202.04 190.515 202.04 199.523V252.239C202.04 261.559 190.136 265.603 184.363 258.245L166.313 235.242V263.137C166.313 271.244 159.679 277.817 151.496 277.817H123.013C113.92 277.817 106.549 270.514 106.549 261.505V199.523ZM123.013 196.261C121.195 196.261 119.72 197.721 119.72 199.523V261.505C119.72 263.307 121.195 264.768 123.013 264.768H151.99C152.899 264.768 153.142 264.037 153.142 263.137V225.731C153.142 216.411 165.046 212.366 170.82 219.724L188.869 242.727V199.523C188.869 197.721 189.041 196.261 187.223 196.261H123.013Z" fill="#E6E6E6"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M106.549 199.523C106.549 190.515 113.92 183.212 123.013 183.212H185.576C194.669 183.212 202.04 190.515 202.04 199.523V252.239C202.04 261.559 190.136 265.603 184.363 258.245L166.313 235.242V263.137C166.313 271.244 159.679 277.817 151.496 277.817H123.013C113.92 277.817 106.549 270.514 106.549 261.505V199.523ZM123.013 196.261C121.195 196.261 119.72 197.721 119.72 199.523V261.505C119.72 263.307 121.195 264.768 123.013 264.768H151.99C152.899 264.768 153.142 264.037 153.142 263.137V225.731C153.142 216.411 165.046 212.366 170.82 219.724L188.869 242.727V199.523C188.869 197.721 189.041 196.261 187.223 196.261H123.013Z" fill="url(#paint0_linear_744_1397)" fill-opacity="0.4"/>
|
||||
</g>
|
||||
<foreignObject x="189.29" y="62.2251" width="337.067" height="337.067"><div xmlns="http://www.w3.org/1999/xhtml" style="backdrop-filter:blur(12.06px);clip-path:url(#bgblur_1_744_1397_clip_path);height:100%;width:100%"></div></foreignObject><g filter="url(#filter1_d_744_1397)" data-figma-bg-blur-radius="24.1232">
|
||||
<rect x="215" y="87.935" width="285.647" height="285.647" rx="53.5588" fill="#FCFCFC"/>
|
||||
<rect x="215.536" y="88.4706" width="284.576" height="284.576" rx="53.0232" stroke="#DFDFDF" stroke-width="1.07125"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip2_744_1397)">
|
||||
<path d="M369.662 298.914C366.04 303.465 358.696 300.972 358.609 295.16L357.333 210.16H414.61C424.984 210.16 430.77 222.116 424.319 230.224L369.662 298.914Z" fill="url(#paint1_linear_744_1397)"/>
|
||||
<path d="M369.662 298.914C366.04 303.465 358.696 300.972 358.609 295.16L357.333 210.16H414.61C424.984 210.16 430.77 222.116 424.319 230.224L369.662 298.914Z" fill="url(#paint2_linear_744_1397)" fill-opacity="0.2"/>
|
||||
<path d="M346.368 162.141C349.99 157.589 357.334 160.083 357.421 165.895L357.98 250.895H301.42C291.046 250.895 285.259 238.938 291.711 230.831L346.368 162.141Z" fill="#3FCF8E"/>
|
||||
</g>
|
||||
<path d="M351.667 101.406C351.667 104.352 354.054 106.74 357 106.74C359.946 106.74 362.333 104.352 362.333 101.406C362.333 98.4607 359.946 96.0729 357 96.0729C354.054 96.0729 351.667 98.4607 351.667 101.406ZM155 125.762H156V71H155H154V125.762H155ZM176 50V51H336V50V49H176V50ZM357 71H356V101.406H357H358V71H357ZM336 50V51C347.046 51 356 59.9543 356 71H357H358C358 58.8497 348.15 49 336 49V50ZM155 71H156C156 59.9543 164.954 51 176 51V50V49C163.85 49 154 58.8497 154 71H155Z" fill="url(#paint3_linear_744_1397)"/>
|
||||
<defs>
|
||||
<filter id="filter0_d_744_1397" x="65.1239" y="141.059" width="180.779" height="181.506" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dx="0.958705" dy="0.958705"/>
|
||||
<feGaussianBlur stdDeviation="1.91741"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_744_1397"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_744_1397" result="shape"/>
|
||||
</filter>
|
||||
<filter id="filter1_d_744_1397" x="189.29" y="62.2251" width="337.067" height="337.067" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset/>
|
||||
<feGaussianBlur stdDeviation="12.855"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.0117647 0 0 0 0 0.0117647 0 0 0 0 0.0117647 0 0 0 0.3 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_744_1397"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_744_1397" result="shape"/>
|
||||
</filter>
|
||||
<clipPath id="bgblur_1_744_1397_clip_path" transform="translate(-189.29 -62.2251)"><rect x="215" y="87.935" width="285.647" height="285.647" rx="53.5588"/>
|
||||
</clipPath><linearGradient id="paint0_linear_744_1397" x1="106.528" y1="278.54" x2="202.036" y2="183.027" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#EDEDED" stop-opacity="0.4"/>
|
||||
<stop offset="1" stop-color="white"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_744_1397" x1="357.333" y1="229.006" x2="408.206" y2="250.388" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#249361"/>
|
||||
<stop offset="1" stop-color="#3ECF8E"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear_744_1397" x1="334.764" y1="198.172" x2="357.902" y2="241.821" gradientUnits="userSpaceOnUse">
|
||||
<stop/>
|
||||
<stop offset="1" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint3_linear_744_1397" x1="153" y1="126.746" x2="391.581" y2="115.784" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="1" stop-color="#171717"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip0_744_1397">
|
||||
<rect width="95.4932" height="94.6049" fill="white" transform="translate(106.549 183.212)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2_744_1397">
|
||||
<rect width="138.063" height="142.823" fill="white" transform="translate(288.969 159.523)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.2 KiB |
BIN
apps/www/public/images/solutions/neon/raunak-kathuria.jpg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
apps/www/public/images/solutions/neon/rbac-dark.png
Normal file
|
After Width: | Height: | Size: 133 KiB |
BIN
apps/www/public/images/solutions/neon/rbac-light.png
Normal file
|
After Width: | Height: | Size: 130 KiB |
100
apps/www/public/images/solutions/neon/rls-dark.svg
Normal file
@@ -0,0 +1,100 @@
|
||||
<svg width="459" height="252" viewBox="0 0 459 252" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_679_1341)">
|
||||
<g clip-path="url(#clip1_679_1341)">
|
||||
<rect x="31" y="32" width="553" height="192" rx="4" fill="#1C1C1C"/>
|
||||
<g clip-path="url(#clip2_679_1341)">
|
||||
<rect width="553" height="48" transform="translate(31 32)" fill="#1C1C1C"/>
|
||||
<mask id="path-3-inside-1_679_1341" fill="white">
|
||||
<path d="M31 32H197.667V80H31V32Z"/>
|
||||
</mask>
|
||||
<path d="M197.667 80V79H31V80V81H197.667V80Z" fill="#343434" mask="url(#path-3-inside-1_679_1341)"/>
|
||||
<path d="M44.4 57.32C44.4 56.54 45 55.92 45.78 55.92C46.56 55.92 47.18 56.54 47.18 57.32C47.18 58.1 46.56 58.7 45.78 58.7C45 58.7 44.4 58.1 44.4 57.32ZM52.9859 57.32C52.9859 56.54 53.5859 55.92 54.3659 55.92C55.1459 55.92 55.7659 56.54 55.7659 57.32C55.7659 58.1 55.1459 58.7 54.3659 58.7C53.5859 58.7 52.9859 58.1 52.9859 57.32ZM61.5719 57.32C61.5719 56.54 62.1719 55.92 62.9519 55.92C63.7319 55.92 64.3519 56.54 64.3519 57.32C64.3519 58.1 63.7319 58.7 62.9519 58.7C62.1719 58.7 61.5719 58.1 61.5719 57.32ZM70.1578 57.32C70.1578 56.54 70.7578 55.92 71.5378 55.92C72.3178 55.92 72.9378 56.54 72.9378 57.32C72.9378 58.1 72.3178 58.7 71.5378 58.7C70.7578 58.7 70.1578 58.1 70.1578 57.32ZM78.7438 57.32C78.7438 56.54 79.3438 55.92 80.1238 55.92C80.9038 55.92 81.5238 56.54 81.5238 57.32C81.5238 58.1 80.9038 58.7 80.1238 58.7C79.3438 58.7 78.7438 58.1 78.7438 57.32ZM95.3297 57.32C95.3297 56.54 95.9297 55.92 96.7097 55.92C97.4897 55.92 98.1097 56.54 98.1097 57.32C98.1097 58.1 97.4897 58.7 96.7097 58.7C95.9297 58.7 95.3297 58.1 95.3297 57.32ZM103.916 57.32C103.916 56.54 104.516 55.92 105.296 55.92C106.076 55.92 106.696 56.54 106.696 57.32C106.696 58.1 106.076 58.7 105.296 58.7C104.516 58.7 103.916 58.1 103.916 57.32ZM112.502 57.32C112.502 56.54 113.102 55.92 113.882 55.92C114.662 55.92 115.282 56.54 115.282 57.32C115.282 58.1 114.662 58.7 113.882 58.7C113.102 58.7 112.502 58.1 112.502 57.32Z" fill="#707070"/>
|
||||
<mask id="path-6-inside-2_679_1341" fill="white">
|
||||
<path d="M197.667 32H364.333V80H197.667V32Z"/>
|
||||
</mask>
|
||||
<path d="M364.333 80V79H197.667V80V81H364.333V80Z" fill="#343434" mask="url(#path-6-inside-2_679_1341)"/>
|
||||
<path d="M211.067 57.32C211.067 56.54 211.667 55.92 212.447 55.92C213.227 55.92 213.847 56.54 213.847 57.32C213.847 58.1 213.227 58.7 212.447 58.7C211.667 58.7 211.067 58.1 211.067 57.32ZM219.652 57.32C219.652 56.54 220.252 55.92 221.032 55.92C221.812 55.92 222.432 56.54 222.432 57.32C222.432 58.1 221.812 58.7 221.032 58.7C220.252 58.7 219.652 58.1 219.652 57.32ZM228.238 57.32C228.238 56.54 228.838 55.92 229.618 55.92C230.398 55.92 231.018 56.54 231.018 57.32C231.018 58.1 230.398 58.7 229.618 58.7C228.838 58.7 228.238 58.1 228.238 57.32ZM236.824 57.32C236.824 56.54 237.424 55.92 238.204 55.92C238.984 55.92 239.604 56.54 239.604 57.32C239.604 58.1 238.984 58.7 238.204 58.7C237.424 58.7 236.824 58.1 236.824 57.32ZM245.41 57.32C245.41 56.54 246.01 55.92 246.79 55.92C247.57 55.92 248.19 56.54 248.19 57.32C248.19 58.1 247.57 58.7 246.79 58.7C246.01 58.7 245.41 58.1 245.41 57.32ZM253.996 57.32C253.996 56.54 254.596 55.92 255.376 55.92C256.156 55.92 256.776 56.54 256.776 57.32C256.776 58.1 256.156 58.7 255.376 58.7C254.596 58.7 253.996 58.1 253.996 57.32ZM262.582 57.32C262.582 56.54 263.182 55.92 263.962 55.92C264.742 55.92 265.362 56.54 265.362 57.32C265.362 58.1 264.742 58.7 263.962 58.7C263.182 58.7 262.582 58.1 262.582 57.32ZM271.168 57.32C271.168 56.54 271.768 55.92 272.548 55.92C273.328 55.92 273.948 56.54 273.948 57.32C273.948 58.1 273.328 58.7 272.548 58.7C271.768 58.7 271.168 58.1 271.168 57.32ZM279.754 57.32C279.754 56.54 280.354 55.92 281.134 55.92C281.914 55.92 282.534 56.54 282.534 57.32C282.534 58.1 281.914 58.7 281.134 58.7C280.354 58.7 279.754 58.1 279.754 57.32ZM288.34 57.32C288.34 56.54 288.94 55.92 289.72 55.92C290.5 55.92 291.12 56.54 291.12 57.32C291.12 58.1 290.5 58.7 289.72 58.7C288.94 58.7 288.34 58.1 288.34 57.32Z" fill="#707070"/>
|
||||
<mask id="path-9-inside-3_679_1341" fill="white">
|
||||
<path d="M364.333 32H531V80H364.333V32Z"/>
|
||||
</mask>
|
||||
<path d="M531 80V79H364.333V80V81H531V80Z" fill="#343434" mask="url(#path-9-inside-3_679_1341)"/>
|
||||
<path d="M377.733 57.32C377.733 56.54 378.333 55.92 379.113 55.92C379.893 55.92 380.513 56.54 380.513 57.32C380.513 58.1 379.893 58.7 379.113 58.7C378.333 58.7 377.733 58.1 377.733 57.32ZM386.319 57.32C386.319 56.54 386.919 55.92 387.699 55.92C388.479 55.92 389.099 56.54 389.099 57.32C389.099 58.1 388.479 58.7 387.699 58.7C386.919 58.7 386.319 58.1 386.319 57.32ZM394.905 57.32C394.905 56.54 395.505 55.92 396.285 55.92C397.065 55.92 397.685 56.54 397.685 57.32C397.685 58.1 397.065 58.7 396.285 58.7C395.505 58.7 394.905 58.1 394.905 57.32ZM403.491 57.32C403.491 56.54 404.091 55.92 404.871 55.92C405.651 55.92 406.271 56.54 406.271 57.32C406.271 58.1 405.651 58.7 404.871 58.7C404.091 58.7 403.491 58.1 403.491 57.32ZM412.077 57.32C412.077 56.54 412.677 55.92 413.457 55.92C414.237 55.92 414.857 56.54 414.857 57.32C414.857 58.1 414.237 58.7 413.457 58.7C412.677 58.7 412.077 58.1 412.077 57.32ZM420.663 57.32C420.663 56.54 421.263 55.92 422.043 55.92C422.823 55.92 423.443 56.54 423.443 57.32C423.443 58.1 422.823 58.7 422.043 58.7C421.263 58.7 420.663 58.1 420.663 57.32Z" fill="#707070"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip3_679_1341)">
|
||||
<rect width="553" height="48" transform="translate(31 80)" fill="#232323"/>
|
||||
<mask id="path-12-inside-4_679_1341" fill="white">
|
||||
<path d="M31 80H197.667V128H31V80Z"/>
|
||||
</mask>
|
||||
<path d="M197.667 128V127H31V128V129H197.667V128Z" fill="#343434" mask="url(#path-12-inside-4_679_1341)"/>
|
||||
<path d="M51.148 100.348H47.83V109H46.458V100.348H43.14V99.074H51.148V100.348ZM53.1008 111.814H51.6588L53.3388 108.258L50.4408 102.266H51.9528L54.0528 106.914L56.0688 102.266H57.4828L53.1008 111.814ZM60.0649 109H58.7489V98.864H60.0649V109ZM63.1576 104.94H66.8396C66.8116 103.974 66.1816 103.218 64.9916 103.218C63.8856 103.218 63.2136 104.072 63.1576 104.94ZM67.0356 106.69L68.1696 107.082C67.7916 108.272 66.7136 109.21 65.1456 109.21C63.3396 109.21 61.7576 107.894 61.7576 105.612C61.7576 103.498 63.2836 102.056 64.9776 102.056C67.0496 102.056 68.2116 103.484 68.2116 105.584C68.2116 105.752 68.1976 105.92 68.1836 106.004H63.1156C63.1436 107.208 64.0116 108.048 65.1456 108.048C66.2376 108.048 66.7836 107.446 67.0356 106.69ZM73.6295 102.196V103.596C73.4335 103.568 73.2375 103.554 73.0555 103.554C71.9495 103.554 71.2075 104.142 71.2075 105.626V109H69.8915V102.266H71.1795V103.442C71.6695 102.406 72.5095 102.154 73.1955 102.154C73.3775 102.154 73.5595 102.182 73.6295 102.196ZM80.0441 109H78.6721V99.074H84.7061V100.348H80.0441V103.54H84.2721V104.828H80.0441V109ZM88.6349 108.034C89.7549 108.034 90.7349 107.194 90.7349 105.626C90.7349 104.072 89.7549 103.232 88.6349 103.232C87.5149 103.232 86.5349 104.072 86.5349 105.626C86.5349 107.194 87.5149 108.034 88.6349 108.034ZM88.6349 102.056C90.6509 102.056 92.0789 103.582 92.0789 105.626C92.0789 107.684 90.6509 109.21 88.6349 109.21C86.6189 109.21 85.1909 107.684 85.1909 105.626C85.1909 103.582 86.6189 102.056 88.6349 102.056ZM95.0786 105.108V109H93.7626V102.266H95.0506V103.232C95.5406 102.392 96.3386 102.07 97.1226 102.07C98.7326 102.07 99.5306 103.232 99.5306 104.73V109H98.2146V104.954C98.2146 104.016 97.8226 103.26 96.6466 103.26C95.6106 103.26 95.0786 104.086 95.0786 105.108ZM103.388 100.138V102.266H104.844V103.456H103.388V106.956C103.388 107.572 103.64 107.88 104.326 107.88C104.494 107.88 104.732 107.852 104.844 107.824V108.944C104.732 108.986 104.396 109.07 103.948 109.07C102.8 109.07 102.072 108.37 102.072 107.152V103.456H100.784V102.266H101.148C101.876 102.266 102.184 101.818 102.184 101.23V100.138H103.388ZM106.18 107.194C106.18 105.99 107.062 105.318 108.224 105.15L110.044 104.884C110.45 104.828 110.562 104.618 110.562 104.38C110.562 103.722 110.128 103.176 109.106 103.176C108.182 103.176 107.664 103.75 107.58 104.534L106.32 104.24C106.46 102.952 107.622 102.056 109.078 102.056C111.094 102.056 111.878 103.204 111.878 104.52V107.894C111.878 108.482 111.934 108.832 111.962 109H110.674C110.646 108.832 110.604 108.58 110.604 108.09C110.31 108.566 109.638 109.21 108.434 109.21C107.062 109.21 106.18 108.258 106.18 107.194ZM108.616 108.104C109.694 108.104 110.562 107.586 110.562 106.116V105.808L108.504 106.116C107.944 106.2 107.524 106.522 107.524 107.124C107.524 107.628 107.944 108.104 108.616 108.104ZM115.231 109H113.929V102.266H115.231V109ZM113.635 99.718C113.635 99.186 114.055 98.766 114.573 98.766C115.105 98.766 115.525 99.186 115.525 99.718C115.525 100.236 115.105 100.656 114.573 100.656C114.055 100.656 113.635 100.236 113.635 99.718ZM118.786 105.108V109H117.47V102.266H118.758V103.232C119.248 102.392 120.046 102.07 120.83 102.07C122.44 102.07 123.238 103.232 123.238 104.73V109H121.922V104.954C121.922 104.016 121.53 103.26 120.354 103.26C119.318 103.26 118.786 104.086 118.786 105.108ZM126.185 104.94H129.867C129.839 103.974 129.209 103.218 128.019 103.218C126.913 103.218 126.241 104.072 126.185 104.94ZM130.063 106.69L131.197 107.082C130.819 108.272 129.741 109.21 128.173 109.21C126.367 109.21 124.785 107.894 124.785 105.612C124.785 103.498 126.311 102.056 128.005 102.056C130.077 102.056 131.239 103.484 131.239 105.584C131.239 105.752 131.225 105.92 131.211 106.004H126.143C126.171 107.208 127.039 108.048 128.173 108.048C129.265 108.048 129.811 107.446 130.063 106.69Z" fill="#EDEDED"/>
|
||||
<mask id="path-15-inside-5_679_1341" fill="white">
|
||||
<path d="M197.667 80H364.333V128H197.667V80Z"/>
|
||||
</mask>
|
||||
<path d="M364.333 128V127H197.667V128V129H364.333V128Z" fill="#343434" mask="url(#path-15-inside-5_679_1341)"/>
|
||||
<path d="M218.081 107.082C217.423 107.082 216.849 106.802 216.695 106.186C216.275 106.788 215.631 107.11 215.029 107.11C213.769 107.11 212.887 106.158 212.887 104.716C212.887 102.84 214.175 101.454 215.687 101.454C216.275 101.454 216.975 101.748 217.185 102.378L217.311 101.636H218.417L217.661 105.15C217.633 105.29 217.619 105.416 217.619 105.542C217.619 105.864 217.759 106.116 218.151 106.116C218.935 106.116 219.663 104.856 219.663 103.456C219.663 101.412 218.109 99.886 215.743 99.886C213.279 99.886 211.445 101.678 211.445 104.352C211.445 106.802 213.097 108.636 215.897 108.636C216.919 108.636 217.927 108.328 218.767 107.656L219.341 108.412C218.529 109.182 217.101 109.658 215.897 109.658C212.621 109.658 210.297 107.516 210.297 104.338C210.297 101.09 212.775 98.864 215.729 98.864C218.571 98.864 220.741 100.824 220.741 103.442C220.741 105.528 219.537 107.082 218.081 107.082ZM216.877 103.82C216.877 102.994 216.457 102.504 215.701 102.504C214.693 102.504 214.035 103.526 214.035 104.562C214.035 105.416 214.315 106.088 215.225 106.088C216.177 106.088 216.835 105.136 216.877 103.82ZM224.117 100.138V102.266H225.573V103.456H224.117V106.956C224.117 107.572 224.369 107.88 225.055 107.88C225.223 107.88 225.461 107.852 225.573 107.824V108.944C225.461 108.986 225.125 109.07 224.677 109.07C223.529 109.07 222.801 108.37 222.801 107.152V103.456H221.513V102.266H221.877C222.605 102.266 222.913 101.818 222.913 101.23V100.138H224.117ZM229.078 111.814H227.636L229.316 108.258L226.418 102.266H227.93L230.03 106.914L232.046 102.266H233.46L229.078 111.814ZM236.042 109H234.726V98.864H236.042V109ZM239.135 104.94H242.817C242.789 103.974 242.159 103.218 240.969 103.218C239.863 103.218 239.191 104.072 239.135 104.94ZM243.013 106.69L244.147 107.082C243.769 108.272 242.691 109.21 241.123 109.21C239.317 109.21 237.735 107.894 237.735 105.612C237.735 103.498 239.261 102.056 240.955 102.056C243.027 102.056 244.189 103.484 244.189 105.584C244.189 105.752 244.175 105.92 244.161 106.004H239.093C239.121 107.208 239.989 108.048 241.123 108.048C242.215 108.048 242.761 107.446 243.013 106.69ZM249.607 102.196V103.596C249.411 103.568 249.215 103.554 249.033 103.554C247.927 103.554 247.185 104.142 247.185 105.626V109H245.869V102.266H247.157V103.442C247.647 102.406 248.487 102.154 249.173 102.154C249.355 102.154 249.537 102.182 249.607 102.196ZM257.13 110.106H249.962V109H257.13V110.106ZM261.712 103.456H260.088V109H258.73V103.456H257.484V102.266H258.73V101.132C258.73 99.634 259.724 98.822 260.942 98.822C261.39 98.822 261.67 98.92 261.726 98.962V100.138C261.656 100.11 261.488 100.054 261.152 100.054C260.69 100.054 260.088 100.278 260.088 101.202V102.266H261.712V103.456ZM265.733 108.034C266.853 108.034 267.833 107.194 267.833 105.626C267.833 104.072 266.853 103.232 265.733 103.232C264.613 103.232 263.633 104.072 263.633 105.626C263.633 107.194 264.613 108.034 265.733 108.034ZM265.733 102.056C267.749 102.056 269.177 103.582 269.177 105.626C269.177 107.684 267.749 109.21 265.733 109.21C263.717 109.21 262.289 107.684 262.289 105.626C262.289 103.582 263.717 102.056 265.733 102.056ZM272.177 105.108V109H270.861V102.266H272.149V103.232C272.639 102.392 273.437 102.07 274.221 102.07C275.831 102.07 276.629 103.232 276.629 104.73V109H275.313V104.954C275.313 104.016 274.921 103.26 273.745 103.26C272.709 103.26 272.177 104.086 272.177 105.108ZM284.294 99.928V101.244C283.454 101.916 280.892 104.198 280.458 109H279.044C279.45 103.722 282.782 101.188 282.782 101.188H277.672V99.928H284.294ZM287.52 104.786L286.848 103.652L289.522 101.188H285.182V99.928H291.342V101.16L288.752 103.554C290.082 103.554 291.552 104.45 291.552 106.312C291.552 107.838 290.376 109.224 288.262 109.224C286.162 109.224 284.972 107.852 284.888 106.368L286.232 106.06C286.288 107.264 287.156 108.02 288.248 108.02C289.494 108.02 290.166 107.25 290.166 106.34C290.166 105.15 289.214 104.646 288.318 104.646C288.038 104.646 287.758 104.702 287.52 104.786Z" fill="#EDEDED"/>
|
||||
<mask id="path-18-inside-6_679_1341" fill="white">
|
||||
<path d="M364.333 80H531V128H364.333V80Z"/>
|
||||
</mask>
|
||||
<path d="M531 128V127H364.333V128V129H531V128Z" fill="#343434" mask="url(#path-18-inside-6_679_1341)"/>
|
||||
<path d="M383.627 109H377.593V99.074H383.627V100.348H378.965V103.4H383.193V104.688H378.965V107.726H383.627V109ZM386.699 105.108V109H385.383V102.266H386.671V103.232C387.161 102.392 387.959 102.07 388.743 102.07C390.353 102.07 391.151 103.232 391.151 104.73V109H389.835V104.954C389.835 104.016 389.443 103.26 388.267 103.26C387.231 103.26 386.699 104.086 386.699 105.108ZM392.825 107.194C392.825 105.99 393.707 105.318 394.869 105.15L396.689 104.884C397.095 104.828 397.207 104.618 397.207 104.38C397.207 103.722 396.773 103.176 395.751 103.176C394.827 103.176 394.309 103.75 394.225 104.534L392.965 104.24C393.105 102.952 394.267 102.056 395.723 102.056C397.739 102.056 398.523 103.204 398.523 104.52V107.894C398.523 108.482 398.579 108.832 398.607 109H397.319C397.291 108.832 397.249 108.58 397.249 108.09C396.955 108.566 396.283 109.21 395.079 109.21C393.707 109.21 392.825 108.258 392.825 107.194ZM395.261 108.104C396.339 108.104 397.207 107.586 397.207 106.116V105.808L395.149 106.116C394.589 106.2 394.169 106.522 394.169 107.124C394.169 107.628 394.589 108.104 395.261 108.104ZM401.875 109H400.573V98.864H401.875V103.218C402.197 102.616 402.981 102.07 404.101 102.07C406.145 102.07 407.195 103.638 407.195 105.598C407.195 107.6 406.061 109.182 404.059 109.182C403.065 109.182 402.295 108.748 401.875 108.02V109ZM405.851 105.598C405.851 104.142 405.081 103.232 403.863 103.232C402.701 103.232 401.861 104.142 401.861 105.598C401.861 107.054 402.701 108.006 403.863 108.006C405.067 108.006 405.851 107.054 405.851 105.598ZM410.187 109H408.871V98.864H410.187V109ZM413.28 104.94H416.962C416.934 103.974 416.304 103.218 415.114 103.218C414.008 103.218 413.336 104.072 413.28 104.94ZM417.158 106.69L418.292 107.082C417.914 108.272 416.836 109.21 415.268 109.21C413.462 109.21 411.88 107.894 411.88 105.612C411.88 103.498 413.406 102.056 415.1 102.056C417.172 102.056 418.334 103.484 418.334 105.584C418.334 105.752 418.32 105.92 418.306 106.004H413.238C413.266 107.208 414.134 108.048 415.268 108.048C416.36 108.048 416.906 107.446 417.158 106.69ZM420.798 105.612C420.798 106.998 421.512 108.02 422.772 108.02C423.976 108.02 424.718 106.97 424.718 105.584C424.718 104.198 423.99 103.246 422.786 103.246C421.582 103.246 420.798 104.226 420.798 105.612ZM424.732 108.09V107.978C424.41 108.622 423.696 109.182 422.646 109.182C420.672 109.182 419.454 107.614 419.454 105.612C419.454 103.708 420.742 102.084 422.646 102.084C423.836 102.084 424.48 102.672 424.704 103.218V98.864H426.006V107.754C426.006 108.398 426.062 108.888 426.076 109H424.802C424.774 108.846 424.732 108.496 424.732 108.09Z" fill="#EDEDED"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip4_679_1341)">
|
||||
<rect width="553" height="48" transform="translate(31 128)" fill="#1C1C1C"/>
|
||||
<mask id="path-21-inside-7_679_1341" fill="white">
|
||||
<path d="M31 128H197.667V176H31V128Z"/>
|
||||
</mask>
|
||||
<path d="M197.667 176V175H31V176V177H197.667V176Z" fill="#343434" mask="url(#path-21-inside-7_679_1341)"/>
|
||||
<path d="M44.4 153.32C44.4 152.54 45 151.92 45.78 151.92C46.56 151.92 47.18 152.54 47.18 153.32C47.18 154.1 46.56 154.7 45.78 154.7C45 154.7 44.4 154.1 44.4 153.32ZM52.9859 153.32C52.9859 152.54 53.5859 151.92 54.3659 151.92C55.1459 151.92 55.7659 152.54 55.7659 153.32C55.7659 154.1 55.1459 154.7 54.3659 154.7C53.5859 154.7 52.9859 154.1 52.9859 153.32ZM61.5719 153.32C61.5719 152.54 62.1719 151.92 62.9519 151.92C63.7319 151.92 64.3519 152.54 64.3519 153.32C64.3519 154.1 63.7319 154.7 62.9519 154.7C62.1719 154.7 61.5719 154.1 61.5719 153.32ZM78.1578 153.32C78.1578 152.54 78.7578 151.92 79.5378 151.92C80.3178 151.92 80.9378 152.54 80.9378 153.32C80.9378 154.1 80.3178 154.7 79.5378 154.7C78.7578 154.7 78.1578 154.1 78.1578 153.32ZM86.7438 153.32C86.7438 152.54 87.3438 151.92 88.1238 151.92C88.9038 151.92 89.5238 152.54 89.5238 153.32C89.5238 154.1 88.9038 154.7 88.1238 154.7C87.3438 154.7 86.7438 154.1 86.7438 153.32ZM95.3297 153.32C95.3297 152.54 95.9297 151.92 96.7097 151.92C97.4897 151.92 98.1097 152.54 98.1097 153.32C98.1097 154.1 97.4897 154.7 96.7097 154.7C95.9297 154.7 95.3297 154.1 95.3297 153.32ZM103.916 153.32C103.916 152.54 104.516 151.92 105.296 151.92C106.076 151.92 106.696 152.54 106.696 153.32C106.696 154.1 106.076 154.7 105.296 154.7C104.516 154.7 103.916 154.1 103.916 153.32ZM112.502 153.32C112.502 152.54 113.102 151.92 113.882 151.92C114.662 151.92 115.282 152.54 115.282 153.32C115.282 154.1 114.662 154.7 113.882 154.7C113.102 154.7 112.502 154.1 112.502 153.32ZM121.088 153.32C121.088 152.54 121.688 151.92 122.468 151.92C123.248 151.92 123.868 152.54 123.868 153.32C123.868 154.1 123.248 154.7 122.468 154.7C121.688 154.7 121.088 154.1 121.088 153.32ZM129.673 153.32C129.673 152.54 130.273 151.92 131.053 151.92C131.833 151.92 132.453 152.54 132.453 153.32C132.453 154.1 131.833 154.7 131.053 154.7C130.273 154.7 129.673 154.1 129.673 153.32ZM138.259 153.32C138.259 152.54 138.859 151.92 139.639 151.92C140.419 151.92 141.039 152.54 141.039 153.32C141.039 154.1 140.419 154.7 139.639 154.7C138.859 154.7 138.259 154.1 138.259 153.32Z" fill="#707070"/>
|
||||
<mask id="path-24-inside-8_679_1341" fill="white">
|
||||
<path d="M197.667 128H364.333V176H197.667V128Z"/>
|
||||
</mask>
|
||||
<path d="M364.333 176V175H197.667V176V177H364.333V176Z" fill="#343434" mask="url(#path-24-inside-8_679_1341)"/>
|
||||
<path d="M211.067 153.32C211.067 152.54 211.667 151.92 212.447 151.92C213.227 151.92 213.847 152.54 213.847 153.32C213.847 154.1 213.227 154.7 212.447 154.7C211.667 154.7 211.067 154.1 211.067 153.32ZM219.652 153.32C219.652 152.54 220.252 151.92 221.032 151.92C221.812 151.92 222.432 152.54 222.432 153.32C222.432 154.1 221.812 154.7 221.032 154.7C220.252 154.7 219.652 154.1 219.652 153.32ZM228.238 153.32C228.238 152.54 228.838 151.92 229.618 151.92C230.398 151.92 231.018 152.54 231.018 153.32C231.018 154.1 230.398 154.7 229.618 154.7C228.838 154.7 228.238 154.1 228.238 153.32ZM236.824 153.32C236.824 152.54 237.424 151.92 238.204 151.92C238.984 151.92 239.604 152.54 239.604 153.32C239.604 154.1 238.984 154.7 238.204 154.7C237.424 154.7 236.824 154.1 236.824 153.32ZM245.41 153.32C245.41 152.54 246.01 151.92 246.79 151.92C247.57 151.92 248.19 152.54 248.19 153.32C248.19 154.1 247.57 154.7 246.79 154.7C246.01 154.7 245.41 154.1 245.41 153.32ZM253.996 153.32C253.996 152.54 254.596 151.92 255.376 151.92C256.156 151.92 256.776 152.54 256.776 153.32C256.776 154.1 256.156 154.7 255.376 154.7C254.596 154.7 253.996 154.1 253.996 153.32Z" fill="#707070"/>
|
||||
<mask id="path-27-inside-9_679_1341" fill="white">
|
||||
<path d="M364.333 128H531V176H364.333V128Z"/>
|
||||
</mask>
|
||||
<path d="M531 176V175H364.333V176V177H531V176Z" fill="#343434" mask="url(#path-27-inside-9_679_1341)"/>
|
||||
<path d="M377.733 153.32C377.733 152.54 378.333 151.92 379.113 151.92C379.893 151.92 380.513 152.54 380.513 153.32C380.513 154.1 379.893 154.7 379.113 154.7C378.333 154.7 377.733 154.1 377.733 153.32ZM386.319 153.32C386.319 152.54 386.919 151.92 387.699 151.92C388.479 151.92 389.099 152.54 389.099 153.32C389.099 154.1 388.479 154.7 387.699 154.7C386.919 154.7 386.319 154.1 386.319 153.32ZM394.905 153.32C394.905 152.54 395.505 151.92 396.285 151.92C397.065 151.92 397.685 152.54 397.685 153.32C397.685 154.1 397.065 154.7 396.285 154.7C395.505 154.7 394.905 154.1 394.905 153.32ZM403.491 153.32C403.491 152.54 404.091 151.92 404.871 151.92C405.651 151.92 406.271 152.54 406.271 153.32C406.271 154.1 405.651 154.7 404.871 154.7C404.091 154.7 403.491 154.1 403.491 153.32ZM412.077 153.32C412.077 152.54 412.677 151.92 413.457 151.92C414.237 151.92 414.857 152.54 414.857 153.32C414.857 154.1 414.237 154.7 413.457 154.7C412.677 154.7 412.077 154.1 412.077 153.32ZM420.663 153.32C420.663 152.54 421.263 151.92 422.043 151.92C422.823 151.92 423.443 152.54 423.443 153.32C423.443 154.1 422.823 154.7 422.043 154.7C421.263 154.7 420.663 154.1 420.663 153.32ZM429.249 153.32C429.249 152.54 429.849 151.92 430.629 151.92C431.409 151.92 432.029 152.54 432.029 153.32C432.029 154.1 431.409 154.7 430.629 154.7C429.849 154.7 429.249 154.1 429.249 153.32ZM437.835 153.32C437.835 152.54 438.435 151.92 439.215 151.92C439.995 151.92 440.615 152.54 440.615 153.32C440.615 154.1 439.995 154.7 439.215 154.7C438.435 154.7 437.835 154.1 437.835 153.32Z" fill="#707070"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip5_679_1341)">
|
||||
<rect width="553" height="48" transform="translate(31 176)" fill="#1C1C1C"/>
|
||||
<mask id="path-30-inside-10_679_1341" fill="white">
|
||||
<path d="M31 176H197.667V224H31V176Z"/>
|
||||
</mask>
|
||||
<path d="M197.667 224V223H31V224V225H197.667V224Z" fill="#343434" mask="url(#path-30-inside-10_679_1341)"/>
|
||||
<path d="M44.4 201.32C44.4 200.54 45 199.92 45.78 199.92C46.56 199.92 47.18 200.54 47.18 201.32C47.18 202.1 46.56 202.7 45.78 202.7C45 202.7 44.4 202.1 44.4 201.32ZM52.9859 201.32C52.9859 200.54 53.5859 199.92 54.3659 199.92C55.1459 199.92 55.7659 200.54 55.7659 201.32C55.7659 202.1 55.1459 202.7 54.3659 202.7C53.5859 202.7 52.9859 202.1 52.9859 201.32ZM61.5719 201.32C61.5719 200.54 62.1719 199.92 62.9519 199.92C63.7319 199.92 64.3519 200.54 64.3519 201.32C64.3519 202.1 63.7319 202.7 62.9519 202.7C62.1719 202.7 61.5719 202.1 61.5719 201.32ZM70.1578 201.32C70.1578 200.54 70.7578 199.92 71.5378 199.92C72.3178 199.92 72.9378 200.54 72.9378 201.32C72.9378 202.1 72.3178 202.7 71.5378 202.7C70.7578 202.7 70.1578 202.1 70.1578 201.32ZM86.7438 201.32C86.7438 200.54 87.3438 199.92 88.1238 199.92C88.9038 199.92 89.5238 200.54 89.5238 201.32C89.5238 202.1 88.9038 202.7 88.1238 202.7C87.3438 202.7 86.7438 202.1 86.7438 201.32ZM95.3297 201.32C95.3297 200.54 95.9297 199.92 96.7097 199.92C97.4897 199.92 98.1097 200.54 98.1097 201.32C98.1097 202.1 97.4897 202.7 96.7097 202.7C95.9297 202.7 95.3297 202.1 95.3297 201.32ZM111.916 201.32C111.916 200.54 112.516 199.92 113.296 199.92C114.076 199.92 114.696 200.54 114.696 201.32C114.696 202.1 114.076 202.7 113.296 202.7C112.516 202.7 111.916 202.1 111.916 201.32ZM120.502 201.32C120.502 200.54 121.102 199.92 121.882 199.92C122.662 199.92 123.282 200.54 123.282 201.32C123.282 202.1 122.662 202.7 121.882 202.7C121.102 202.7 120.502 202.1 120.502 201.32ZM129.088 201.32C129.088 200.54 129.688 199.92 130.468 199.92C131.248 199.92 131.868 200.54 131.868 201.32C131.868 202.1 131.248 202.7 130.468 202.7C129.688 202.7 129.088 202.1 129.088 201.32ZM137.673 201.32C137.673 200.54 138.273 199.92 139.053 199.92C139.833 199.92 140.453 200.54 140.453 201.32C140.453 202.1 139.833 202.7 139.053 202.7C138.273 202.7 137.673 202.1 137.673 201.32Z" fill="#707070"/>
|
||||
<mask id="path-33-inside-11_679_1341" fill="white">
|
||||
<path d="M197.667 176H364.333V224H197.667V176Z"/>
|
||||
</mask>
|
||||
<path d="M364.333 224V223H197.667V224V225H364.333V224Z" fill="#343434" mask="url(#path-33-inside-11_679_1341)"/>
|
||||
<path d="M211.067 201.32C211.067 200.54 211.667 199.92 212.447 199.92C213.227 199.92 213.847 200.54 213.847 201.32C213.847 202.1 213.227 202.7 212.447 202.7C211.667 202.7 211.067 202.1 211.067 201.32ZM219.652 201.32C219.652 200.54 220.252 199.92 221.032 199.92C221.812 199.92 222.432 200.54 222.432 201.32C222.432 202.1 221.812 202.7 221.032 202.7C220.252 202.7 219.652 202.1 219.652 201.32ZM228.238 201.32C228.238 200.54 228.838 199.92 229.618 199.92C230.398 199.92 231.018 200.54 231.018 201.32C231.018 202.1 230.398 202.7 229.618 202.7C228.838 202.7 228.238 202.1 228.238 201.32ZM236.824 201.32C236.824 200.54 237.424 199.92 238.204 199.92C238.984 199.92 239.604 200.54 239.604 201.32C239.604 202.1 238.984 202.7 238.204 202.7C237.424 202.7 236.824 202.1 236.824 201.32ZM245.41 201.32C245.41 200.54 246.01 199.92 246.79 199.92C247.57 199.92 248.19 200.54 248.19 201.32C248.19 202.1 247.57 202.7 246.79 202.7C246.01 202.7 245.41 202.1 245.41 201.32ZM253.996 201.32C253.996 200.54 254.596 199.92 255.376 199.92C256.156 199.92 256.776 200.54 256.776 201.32C256.776 202.1 256.156 202.7 255.376 202.7C254.596 202.7 253.996 202.1 253.996 201.32ZM262.582 201.32C262.582 200.54 263.182 199.92 263.962 199.92C264.742 199.92 265.362 200.54 265.362 201.32C265.362 202.1 264.742 202.7 263.962 202.7C263.182 202.7 262.582 202.1 262.582 201.32ZM271.168 201.32C271.168 200.54 271.768 199.92 272.548 199.92C273.328 199.92 273.948 200.54 273.948 201.32C273.948 202.1 273.328 202.7 272.548 202.7C271.768 202.7 271.168 202.1 271.168 201.32ZM279.754 201.32C279.754 200.54 280.354 199.92 281.134 199.92C281.914 199.92 282.534 200.54 282.534 201.32C282.534 202.1 281.914 202.7 281.134 202.7C280.354 202.7 279.754 202.1 279.754 201.32Z" fill="#707070"/>
|
||||
<mask id="path-36-inside-12_679_1341" fill="white">
|
||||
<path d="M364.333 176H531V224H364.333V176Z"/>
|
||||
</mask>
|
||||
<path d="M531 224V223H364.333V224V225H531V224Z" fill="#343434" mask="url(#path-36-inside-12_679_1341)"/>
|
||||
<path d="M377.733 201.32C377.733 200.54 378.333 199.92 379.113 199.92C379.893 199.92 380.513 200.54 380.513 201.32C380.513 202.1 379.893 202.7 379.113 202.7C378.333 202.7 377.733 202.1 377.733 201.32ZM386.319 201.32C386.319 200.54 386.919 199.92 387.699 199.92C388.479 199.92 389.099 200.54 389.099 201.32C389.099 202.1 388.479 202.7 387.699 202.7C386.919 202.7 386.319 202.1 386.319 201.32ZM394.905 201.32C394.905 200.54 395.505 199.92 396.285 199.92C397.065 199.92 397.685 200.54 397.685 201.32C397.685 202.1 397.065 202.7 396.285 202.7C395.505 202.7 394.905 202.1 394.905 201.32ZM403.491 201.32C403.491 200.54 404.091 199.92 404.871 199.92C405.651 199.92 406.271 200.54 406.271 201.32C406.271 202.1 405.651 202.7 404.871 202.7C404.091 202.7 403.491 202.1 403.491 201.32ZM412.077 201.32C412.077 200.54 412.677 199.92 413.457 199.92C414.237 199.92 414.857 200.54 414.857 201.32C414.857 202.1 414.237 202.7 413.457 202.7C412.677 202.7 412.077 202.1 412.077 201.32ZM420.663 201.32C420.663 200.54 421.263 199.92 422.043 199.92C422.823 199.92 423.443 200.54 423.443 201.32C423.443 202.1 422.823 202.7 422.043 202.7C421.263 202.7 420.663 202.1 420.663 201.32ZM429.249 201.32C429.249 200.54 429.849 199.92 430.629 199.92C431.409 199.92 432.029 200.54 432.029 201.32C432.029 202.1 431.409 202.7 430.629 202.7C429.849 202.7 429.249 202.1 429.249 201.32ZM437.835 201.32C437.835 200.54 438.435 199.92 439.215 199.92C439.995 199.92 440.615 200.54 440.615 201.32C440.615 202.1 439.995 202.7 439.215 202.7C438.435 202.7 437.835 202.1 437.835 201.32ZM446.421 201.32C446.421 200.54 447.021 199.92 447.801 199.92C448.581 199.92 449.201 200.54 449.201 201.32C449.201 202.1 448.581 202.7 447.801 202.7C447.021 202.7 446.421 202.1 446.421 201.32Z" fill="#707070"/>
|
||||
</g>
|
||||
</g>
|
||||
<rect x="31.5" y="32.5" width="552" height="191" rx="3.5" stroke="#343434"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_679_1341">
|
||||
<rect width="459" height="252" fill="white"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip1_679_1341">
|
||||
<rect x="31" y="32" width="553" height="192" rx="4" fill="white"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2_679_1341">
|
||||
<rect width="553" height="48" fill="white" transform="translate(31 32)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip3_679_1341">
|
||||
<rect width="553" height="48" fill="white" transform="translate(31 80)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip4_679_1341">
|
||||
<rect width="553" height="48" fill="white" transform="translate(31 128)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip5_679_1341">
|
||||
<rect width="553" height="48" fill="white" transform="translate(31 176)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 28 KiB |
100
apps/www/public/images/solutions/neon/rls-light.svg
Normal file
@@ -0,0 +1,100 @@
|
||||
<svg width="459" height="252" viewBox="0 0 459 252" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_679_1470)">
|
||||
<g clip-path="url(#clip1_679_1470)">
|
||||
<rect x="31" y="32" width="553" height="192" rx="4" fill="#F8F8F8"/>
|
||||
<g clip-path="url(#clip2_679_1470)">
|
||||
<rect width="553" height="48" transform="translate(31 32)" fill="#FCFCFC"/>
|
||||
<mask id="path-3-inside-1_679_1470" fill="white">
|
||||
<path d="M31 32H197.667V80H31V32Z"/>
|
||||
</mask>
|
||||
<path d="M197.667 80V79H31V80V81H197.667V80Z" fill="#DFDFDF" mask="url(#path-3-inside-1_679_1470)"/>
|
||||
<path d="M44.4 57.32C44.4 56.54 45 55.92 45.78 55.92C46.56 55.92 47.18 56.54 47.18 57.32C47.18 58.1 46.56 58.7 45.78 58.7C45 58.7 44.4 58.1 44.4 57.32ZM52.9859 57.32C52.9859 56.54 53.5859 55.92 54.3659 55.92C55.1459 55.92 55.7659 56.54 55.7659 57.32C55.7659 58.1 55.1459 58.7 54.3659 58.7C53.5859 58.7 52.9859 58.1 52.9859 57.32ZM61.5719 57.32C61.5719 56.54 62.1719 55.92 62.9519 55.92C63.7319 55.92 64.3519 56.54 64.3519 57.32C64.3519 58.1 63.7319 58.7 62.9519 58.7C62.1719 58.7 61.5719 58.1 61.5719 57.32ZM70.1578 57.32C70.1578 56.54 70.7578 55.92 71.5378 55.92C72.3178 55.92 72.9378 56.54 72.9378 57.32C72.9378 58.1 72.3178 58.7 71.5378 58.7C70.7578 58.7 70.1578 58.1 70.1578 57.32ZM78.7438 57.32C78.7438 56.54 79.3438 55.92 80.1238 55.92C80.9038 55.92 81.5238 56.54 81.5238 57.32C81.5238 58.1 80.9038 58.7 80.1238 58.7C79.3438 58.7 78.7438 58.1 78.7438 57.32ZM95.3297 57.32C95.3297 56.54 95.9297 55.92 96.7097 55.92C97.4897 55.92 98.1097 56.54 98.1097 57.32C98.1097 58.1 97.4897 58.7 96.7097 58.7C95.9297 58.7 95.3297 58.1 95.3297 57.32ZM103.916 57.32C103.916 56.54 104.516 55.92 105.296 55.92C106.076 55.92 106.696 56.54 106.696 57.32C106.696 58.1 106.076 58.7 105.296 58.7C104.516 58.7 103.916 58.1 103.916 57.32ZM112.502 57.32C112.502 56.54 113.102 55.92 113.882 55.92C114.662 55.92 115.282 56.54 115.282 57.32C115.282 58.1 114.662 58.7 113.882 58.7C113.102 58.7 112.502 58.1 112.502 57.32Z" fill="#B2B2B2"/>
|
||||
<mask id="path-6-inside-2_679_1470" fill="white">
|
||||
<path d="M197.667 32H364.333V80H197.667V32Z"/>
|
||||
</mask>
|
||||
<path d="M364.333 80V79H197.667V80V81H364.333V80Z" fill="#DFDFDF" mask="url(#path-6-inside-2_679_1470)"/>
|
||||
<path d="M211.067 57.32C211.067 56.54 211.667 55.92 212.447 55.92C213.227 55.92 213.847 56.54 213.847 57.32C213.847 58.1 213.227 58.7 212.447 58.7C211.667 58.7 211.067 58.1 211.067 57.32ZM219.652 57.32C219.652 56.54 220.252 55.92 221.032 55.92C221.812 55.92 222.432 56.54 222.432 57.32C222.432 58.1 221.812 58.7 221.032 58.7C220.252 58.7 219.652 58.1 219.652 57.32ZM228.238 57.32C228.238 56.54 228.838 55.92 229.618 55.92C230.398 55.92 231.018 56.54 231.018 57.32C231.018 58.1 230.398 58.7 229.618 58.7C228.838 58.7 228.238 58.1 228.238 57.32ZM236.824 57.32C236.824 56.54 237.424 55.92 238.204 55.92C238.984 55.92 239.604 56.54 239.604 57.32C239.604 58.1 238.984 58.7 238.204 58.7C237.424 58.7 236.824 58.1 236.824 57.32ZM245.41 57.32C245.41 56.54 246.01 55.92 246.79 55.92C247.57 55.92 248.19 56.54 248.19 57.32C248.19 58.1 247.57 58.7 246.79 58.7C246.01 58.7 245.41 58.1 245.41 57.32ZM253.996 57.32C253.996 56.54 254.596 55.92 255.376 55.92C256.156 55.92 256.776 56.54 256.776 57.32C256.776 58.1 256.156 58.7 255.376 58.7C254.596 58.7 253.996 58.1 253.996 57.32ZM262.582 57.32C262.582 56.54 263.182 55.92 263.962 55.92C264.742 55.92 265.362 56.54 265.362 57.32C265.362 58.1 264.742 58.7 263.962 58.7C263.182 58.7 262.582 58.1 262.582 57.32ZM271.168 57.32C271.168 56.54 271.768 55.92 272.548 55.92C273.328 55.92 273.948 56.54 273.948 57.32C273.948 58.1 273.328 58.7 272.548 58.7C271.768 58.7 271.168 58.1 271.168 57.32ZM279.754 57.32C279.754 56.54 280.354 55.92 281.134 55.92C281.914 55.92 282.534 56.54 282.534 57.32C282.534 58.1 281.914 58.7 281.134 58.7C280.354 58.7 279.754 58.1 279.754 57.32ZM288.34 57.32C288.34 56.54 288.94 55.92 289.72 55.92C290.5 55.92 291.12 56.54 291.12 57.32C291.12 58.1 290.5 58.7 289.72 58.7C288.94 58.7 288.34 58.1 288.34 57.32Z" fill="#B2B2B2"/>
|
||||
<mask id="path-9-inside-3_679_1470" fill="white">
|
||||
<path d="M364.333 32H531V80H364.333V32Z"/>
|
||||
</mask>
|
||||
<path d="M531 80V79H364.333V80V81H531V80Z" fill="#DFDFDF" mask="url(#path-9-inside-3_679_1470)"/>
|
||||
<path d="M377.733 57.32C377.733 56.54 378.333 55.92 379.113 55.92C379.893 55.92 380.513 56.54 380.513 57.32C380.513 58.1 379.893 58.7 379.113 58.7C378.333 58.7 377.733 58.1 377.733 57.32ZM386.319 57.32C386.319 56.54 386.919 55.92 387.699 55.92C388.479 55.92 389.099 56.54 389.099 57.32C389.099 58.1 388.479 58.7 387.699 58.7C386.919 58.7 386.319 58.1 386.319 57.32ZM394.905 57.32C394.905 56.54 395.505 55.92 396.285 55.92C397.065 55.92 397.685 56.54 397.685 57.32C397.685 58.1 397.065 58.7 396.285 58.7C395.505 58.7 394.905 58.1 394.905 57.32ZM403.491 57.32C403.491 56.54 404.091 55.92 404.871 55.92C405.651 55.92 406.271 56.54 406.271 57.32C406.271 58.1 405.651 58.7 404.871 58.7C404.091 58.7 403.491 58.1 403.491 57.32ZM412.077 57.32C412.077 56.54 412.677 55.92 413.457 55.92C414.237 55.92 414.857 56.54 414.857 57.32C414.857 58.1 414.237 58.7 413.457 58.7C412.677 58.7 412.077 58.1 412.077 57.32ZM420.663 57.32C420.663 56.54 421.263 55.92 422.043 55.92C422.823 55.92 423.443 56.54 423.443 57.32C423.443 58.1 422.823 58.7 422.043 58.7C421.263 58.7 420.663 58.1 420.663 57.32Z" fill="#B2B2B2"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip3_679_1470)">
|
||||
<rect width="553" height="48" transform="translate(31 80)" fill="#F3F3F3"/>
|
||||
<mask id="path-12-inside-4_679_1470" fill="white">
|
||||
<path d="M31 80H197.667V128H31V80Z"/>
|
||||
</mask>
|
||||
<path d="M197.667 128V127H31V128V129H197.667V128Z" fill="#DFDFDF" mask="url(#path-12-inside-4_679_1470)"/>
|
||||
<path d="M51.148 100.348H47.83V109H46.458V100.348H43.14V99.074H51.148V100.348ZM53.1008 111.814H51.6588L53.3388 108.258L50.4408 102.266H51.9528L54.0528 106.914L56.0688 102.266H57.4828L53.1008 111.814ZM60.0649 109H58.7489V98.864H60.0649V109ZM63.1576 104.94H66.8396C66.8116 103.974 66.1816 103.218 64.9916 103.218C63.8856 103.218 63.2136 104.072 63.1576 104.94ZM67.0356 106.69L68.1696 107.082C67.7916 108.272 66.7136 109.21 65.1456 109.21C63.3396 109.21 61.7576 107.894 61.7576 105.612C61.7576 103.498 63.2836 102.056 64.9776 102.056C67.0496 102.056 68.2116 103.484 68.2116 105.584C68.2116 105.752 68.1976 105.92 68.1836 106.004H63.1156C63.1436 107.208 64.0116 108.048 65.1456 108.048C66.2376 108.048 66.7836 107.446 67.0356 106.69ZM73.6295 102.196V103.596C73.4335 103.568 73.2375 103.554 73.0555 103.554C71.9495 103.554 71.2075 104.142 71.2075 105.626V109H69.8915V102.266H71.1795V103.442C71.6695 102.406 72.5095 102.154 73.1955 102.154C73.3775 102.154 73.5595 102.182 73.6295 102.196ZM80.0441 109H78.6721V99.074H84.7061V100.348H80.0441V103.54H84.2721V104.828H80.0441V109ZM88.6349 108.034C89.7549 108.034 90.7349 107.194 90.7349 105.626C90.7349 104.072 89.7549 103.232 88.6349 103.232C87.5149 103.232 86.5349 104.072 86.5349 105.626C86.5349 107.194 87.5149 108.034 88.6349 108.034ZM88.6349 102.056C90.6509 102.056 92.0789 103.582 92.0789 105.626C92.0789 107.684 90.6509 109.21 88.6349 109.21C86.6189 109.21 85.1909 107.684 85.1909 105.626C85.1909 103.582 86.6189 102.056 88.6349 102.056ZM95.0786 105.108V109H93.7626V102.266H95.0506V103.232C95.5406 102.392 96.3386 102.07 97.1226 102.07C98.7326 102.07 99.5306 103.232 99.5306 104.73V109H98.2146V104.954C98.2146 104.016 97.8226 103.26 96.6466 103.26C95.6106 103.26 95.0786 104.086 95.0786 105.108ZM103.388 100.138V102.266H104.844V103.456H103.388V106.956C103.388 107.572 103.64 107.88 104.326 107.88C104.494 107.88 104.732 107.852 104.844 107.824V108.944C104.732 108.986 104.396 109.07 103.948 109.07C102.8 109.07 102.072 108.37 102.072 107.152V103.456H100.784V102.266H101.148C101.876 102.266 102.184 101.818 102.184 101.23V100.138H103.388ZM106.18 107.194C106.18 105.99 107.062 105.318 108.224 105.15L110.044 104.884C110.45 104.828 110.562 104.618 110.562 104.38C110.562 103.722 110.128 103.176 109.106 103.176C108.182 103.176 107.664 103.75 107.58 104.534L106.32 104.24C106.46 102.952 107.622 102.056 109.078 102.056C111.094 102.056 111.878 103.204 111.878 104.52V107.894C111.878 108.482 111.934 108.832 111.962 109H110.674C110.646 108.832 110.604 108.58 110.604 108.09C110.31 108.566 109.638 109.21 108.434 109.21C107.062 109.21 106.18 108.258 106.18 107.194ZM108.616 108.104C109.694 108.104 110.562 107.586 110.562 106.116V105.808L108.504 106.116C107.944 106.2 107.524 106.522 107.524 107.124C107.524 107.628 107.944 108.104 108.616 108.104ZM115.231 109H113.929V102.266H115.231V109ZM113.635 99.718C113.635 99.186 114.055 98.766 114.573 98.766C115.105 98.766 115.525 99.186 115.525 99.718C115.525 100.236 115.105 100.656 114.573 100.656C114.055 100.656 113.635 100.236 113.635 99.718ZM118.786 105.108V109H117.47V102.266H118.758V103.232C119.248 102.392 120.046 102.07 120.83 102.07C122.44 102.07 123.238 103.232 123.238 104.73V109H121.922V104.954C121.922 104.016 121.53 103.26 120.354 103.26C119.318 103.26 118.786 104.086 118.786 105.108ZM126.185 104.94H129.867C129.839 103.974 129.209 103.218 128.019 103.218C126.913 103.218 126.241 104.072 126.185 104.94ZM130.063 106.69L131.197 107.082C130.819 108.272 129.741 109.21 128.173 109.21C126.367 109.21 124.785 107.894 124.785 105.612C124.785 103.498 126.311 102.056 128.005 102.056C130.077 102.056 131.239 103.484 131.239 105.584C131.239 105.752 131.225 105.92 131.211 106.004H126.143C126.171 107.208 127.039 108.048 128.173 108.048C129.265 108.048 129.811 107.446 130.063 106.69Z" fill="#171717"/>
|
||||
<mask id="path-15-inside-5_679_1470" fill="white">
|
||||
<path d="M197.667 80H364.333V128H197.667V80Z"/>
|
||||
</mask>
|
||||
<path d="M364.333 128V127H197.667V128V129H364.333V128Z" fill="#DFDFDF" mask="url(#path-15-inside-5_679_1470)"/>
|
||||
<path d="M218.081 107.082C217.423 107.082 216.849 106.802 216.695 106.186C216.275 106.788 215.631 107.11 215.029 107.11C213.769 107.11 212.887 106.158 212.887 104.716C212.887 102.84 214.175 101.454 215.687 101.454C216.275 101.454 216.975 101.748 217.185 102.378L217.311 101.636H218.417L217.661 105.15C217.633 105.29 217.619 105.416 217.619 105.542C217.619 105.864 217.759 106.116 218.151 106.116C218.935 106.116 219.663 104.856 219.663 103.456C219.663 101.412 218.109 99.886 215.743 99.886C213.279 99.886 211.445 101.678 211.445 104.352C211.445 106.802 213.097 108.636 215.897 108.636C216.919 108.636 217.927 108.328 218.767 107.656L219.341 108.412C218.529 109.182 217.101 109.658 215.897 109.658C212.621 109.658 210.297 107.516 210.297 104.338C210.297 101.09 212.775 98.864 215.729 98.864C218.571 98.864 220.741 100.824 220.741 103.442C220.741 105.528 219.537 107.082 218.081 107.082ZM216.877 103.82C216.877 102.994 216.457 102.504 215.701 102.504C214.693 102.504 214.035 103.526 214.035 104.562C214.035 105.416 214.315 106.088 215.225 106.088C216.177 106.088 216.835 105.136 216.877 103.82ZM224.117 100.138V102.266H225.573V103.456H224.117V106.956C224.117 107.572 224.369 107.88 225.055 107.88C225.223 107.88 225.461 107.852 225.573 107.824V108.944C225.461 108.986 225.125 109.07 224.677 109.07C223.529 109.07 222.801 108.37 222.801 107.152V103.456H221.513V102.266H221.877C222.605 102.266 222.913 101.818 222.913 101.23V100.138H224.117ZM229.078 111.814H227.636L229.316 108.258L226.418 102.266H227.93L230.03 106.914L232.046 102.266H233.46L229.078 111.814ZM236.042 109H234.726V98.864H236.042V109ZM239.135 104.94H242.817C242.789 103.974 242.159 103.218 240.969 103.218C239.863 103.218 239.191 104.072 239.135 104.94ZM243.013 106.69L244.147 107.082C243.769 108.272 242.691 109.21 241.123 109.21C239.317 109.21 237.735 107.894 237.735 105.612C237.735 103.498 239.261 102.056 240.955 102.056C243.027 102.056 244.189 103.484 244.189 105.584C244.189 105.752 244.175 105.92 244.161 106.004H239.093C239.121 107.208 239.989 108.048 241.123 108.048C242.215 108.048 242.761 107.446 243.013 106.69ZM249.607 102.196V103.596C249.411 103.568 249.215 103.554 249.033 103.554C247.927 103.554 247.185 104.142 247.185 105.626V109H245.869V102.266H247.157V103.442C247.647 102.406 248.487 102.154 249.173 102.154C249.355 102.154 249.537 102.182 249.607 102.196ZM257.13 110.106H249.962V109H257.13V110.106ZM261.712 103.456H260.088V109H258.73V103.456H257.484V102.266H258.73V101.132C258.73 99.634 259.724 98.822 260.942 98.822C261.39 98.822 261.67 98.92 261.726 98.962V100.138C261.656 100.11 261.488 100.054 261.152 100.054C260.69 100.054 260.088 100.278 260.088 101.202V102.266H261.712V103.456ZM265.733 108.034C266.853 108.034 267.833 107.194 267.833 105.626C267.833 104.072 266.853 103.232 265.733 103.232C264.613 103.232 263.633 104.072 263.633 105.626C263.633 107.194 264.613 108.034 265.733 108.034ZM265.733 102.056C267.749 102.056 269.177 103.582 269.177 105.626C269.177 107.684 267.749 109.21 265.733 109.21C263.717 109.21 262.289 107.684 262.289 105.626C262.289 103.582 263.717 102.056 265.733 102.056ZM272.177 105.108V109H270.861V102.266H272.149V103.232C272.639 102.392 273.437 102.07 274.221 102.07C275.831 102.07 276.629 103.232 276.629 104.73V109H275.313V104.954C275.313 104.016 274.921 103.26 273.745 103.26C272.709 103.26 272.177 104.086 272.177 105.108ZM284.294 99.928V101.244C283.454 101.916 280.892 104.198 280.458 109H279.044C279.45 103.722 282.782 101.188 282.782 101.188H277.672V99.928H284.294ZM287.52 104.786L286.848 103.652L289.522 101.188H285.182V99.928H291.342V101.16L288.752 103.554C290.082 103.554 291.552 104.45 291.552 106.312C291.552 107.838 290.376 109.224 288.262 109.224C286.162 109.224 284.972 107.852 284.888 106.368L286.232 106.06C286.288 107.264 287.156 108.02 288.248 108.02C289.494 108.02 290.166 107.25 290.166 106.34C290.166 105.15 289.214 104.646 288.318 104.646C288.038 104.646 287.758 104.702 287.52 104.786Z" fill="#171717"/>
|
||||
<mask id="path-18-inside-6_679_1470" fill="white">
|
||||
<path d="M364.333 80H531V128H364.333V80Z"/>
|
||||
</mask>
|
||||
<path d="M531 128V127H364.333V128V129H531V128Z" fill="#DFDFDF" mask="url(#path-18-inside-6_679_1470)"/>
|
||||
<path d="M383.627 109H377.593V99.074H383.627V100.348H378.965V103.4H383.193V104.688H378.965V107.726H383.627V109ZM386.699 105.108V109H385.383V102.266H386.671V103.232C387.161 102.392 387.959 102.07 388.743 102.07C390.353 102.07 391.151 103.232 391.151 104.73V109H389.835V104.954C389.835 104.016 389.443 103.26 388.267 103.26C387.231 103.26 386.699 104.086 386.699 105.108ZM392.825 107.194C392.825 105.99 393.707 105.318 394.869 105.15L396.689 104.884C397.095 104.828 397.207 104.618 397.207 104.38C397.207 103.722 396.773 103.176 395.751 103.176C394.827 103.176 394.309 103.75 394.225 104.534L392.965 104.24C393.105 102.952 394.267 102.056 395.723 102.056C397.739 102.056 398.523 103.204 398.523 104.52V107.894C398.523 108.482 398.579 108.832 398.607 109H397.319C397.291 108.832 397.249 108.58 397.249 108.09C396.955 108.566 396.283 109.21 395.079 109.21C393.707 109.21 392.825 108.258 392.825 107.194ZM395.261 108.104C396.339 108.104 397.207 107.586 397.207 106.116V105.808L395.149 106.116C394.589 106.2 394.169 106.522 394.169 107.124C394.169 107.628 394.589 108.104 395.261 108.104ZM401.875 109H400.573V98.864H401.875V103.218C402.197 102.616 402.981 102.07 404.101 102.07C406.145 102.07 407.195 103.638 407.195 105.598C407.195 107.6 406.061 109.182 404.059 109.182C403.065 109.182 402.295 108.748 401.875 108.02V109ZM405.851 105.598C405.851 104.142 405.081 103.232 403.863 103.232C402.701 103.232 401.861 104.142 401.861 105.598C401.861 107.054 402.701 108.006 403.863 108.006C405.067 108.006 405.851 107.054 405.851 105.598ZM410.187 109H408.871V98.864H410.187V109ZM413.28 104.94H416.962C416.934 103.974 416.304 103.218 415.114 103.218C414.008 103.218 413.336 104.072 413.28 104.94ZM417.158 106.69L418.292 107.082C417.914 108.272 416.836 109.21 415.268 109.21C413.462 109.21 411.88 107.894 411.88 105.612C411.88 103.498 413.406 102.056 415.1 102.056C417.172 102.056 418.334 103.484 418.334 105.584C418.334 105.752 418.32 105.92 418.306 106.004H413.238C413.266 107.208 414.134 108.048 415.268 108.048C416.36 108.048 416.906 107.446 417.158 106.69ZM420.798 105.612C420.798 106.998 421.512 108.02 422.772 108.02C423.976 108.02 424.718 106.97 424.718 105.584C424.718 104.198 423.99 103.246 422.786 103.246C421.582 103.246 420.798 104.226 420.798 105.612ZM424.732 108.09V107.978C424.41 108.622 423.696 109.182 422.646 109.182C420.672 109.182 419.454 107.614 419.454 105.612C419.454 103.708 420.742 102.084 422.646 102.084C423.836 102.084 424.48 102.672 424.704 103.218V98.864H426.006V107.754C426.006 108.398 426.062 108.888 426.076 109H424.802C424.774 108.846 424.732 108.496 424.732 108.09Z" fill="#171717"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip4_679_1470)">
|
||||
<rect width="553" height="48" transform="translate(31 128)" fill="#FCFCFC"/>
|
||||
<mask id="path-21-inside-7_679_1470" fill="white">
|
||||
<path d="M31 128H197.667V176H31V128Z"/>
|
||||
</mask>
|
||||
<path d="M197.667 176V175H31V176V177H197.667V176Z" fill="#DFDFDF" mask="url(#path-21-inside-7_679_1470)"/>
|
||||
<path d="M44.4 153.32C44.4 152.54 45 151.92 45.78 151.92C46.56 151.92 47.18 152.54 47.18 153.32C47.18 154.1 46.56 154.7 45.78 154.7C45 154.7 44.4 154.1 44.4 153.32ZM52.9859 153.32C52.9859 152.54 53.5859 151.92 54.3659 151.92C55.1459 151.92 55.7659 152.54 55.7659 153.32C55.7659 154.1 55.1459 154.7 54.3659 154.7C53.5859 154.7 52.9859 154.1 52.9859 153.32ZM61.5719 153.32C61.5719 152.54 62.1719 151.92 62.9519 151.92C63.7319 151.92 64.3519 152.54 64.3519 153.32C64.3519 154.1 63.7319 154.7 62.9519 154.7C62.1719 154.7 61.5719 154.1 61.5719 153.32ZM78.1578 153.32C78.1578 152.54 78.7578 151.92 79.5378 151.92C80.3178 151.92 80.9378 152.54 80.9378 153.32C80.9378 154.1 80.3178 154.7 79.5378 154.7C78.7578 154.7 78.1578 154.1 78.1578 153.32ZM86.7438 153.32C86.7438 152.54 87.3438 151.92 88.1238 151.92C88.9038 151.92 89.5238 152.54 89.5238 153.32C89.5238 154.1 88.9038 154.7 88.1238 154.7C87.3438 154.7 86.7438 154.1 86.7438 153.32ZM95.3297 153.32C95.3297 152.54 95.9297 151.92 96.7097 151.92C97.4897 151.92 98.1097 152.54 98.1097 153.32C98.1097 154.1 97.4897 154.7 96.7097 154.7C95.9297 154.7 95.3297 154.1 95.3297 153.32ZM103.916 153.32C103.916 152.54 104.516 151.92 105.296 151.92C106.076 151.92 106.696 152.54 106.696 153.32C106.696 154.1 106.076 154.7 105.296 154.7C104.516 154.7 103.916 154.1 103.916 153.32ZM112.502 153.32C112.502 152.54 113.102 151.92 113.882 151.92C114.662 151.92 115.282 152.54 115.282 153.32C115.282 154.1 114.662 154.7 113.882 154.7C113.102 154.7 112.502 154.1 112.502 153.32ZM121.088 153.32C121.088 152.54 121.688 151.92 122.468 151.92C123.248 151.92 123.868 152.54 123.868 153.32C123.868 154.1 123.248 154.7 122.468 154.7C121.688 154.7 121.088 154.1 121.088 153.32ZM129.673 153.32C129.673 152.54 130.273 151.92 131.053 151.92C131.833 151.92 132.453 152.54 132.453 153.32C132.453 154.1 131.833 154.7 131.053 154.7C130.273 154.7 129.673 154.1 129.673 153.32ZM138.259 153.32C138.259 152.54 138.859 151.92 139.639 151.92C140.419 151.92 141.039 152.54 141.039 153.32C141.039 154.1 140.419 154.7 139.639 154.7C138.859 154.7 138.259 154.1 138.259 153.32Z" fill="#B2B2B2"/>
|
||||
<mask id="path-24-inside-8_679_1470" fill="white">
|
||||
<path d="M197.667 128H364.333V176H197.667V128Z"/>
|
||||
</mask>
|
||||
<path d="M364.333 176V175H197.667V176V177H364.333V176Z" fill="#DFDFDF" mask="url(#path-24-inside-8_679_1470)"/>
|
||||
<path d="M211.067 153.32C211.067 152.54 211.667 151.92 212.447 151.92C213.227 151.92 213.847 152.54 213.847 153.32C213.847 154.1 213.227 154.7 212.447 154.7C211.667 154.7 211.067 154.1 211.067 153.32ZM219.652 153.32C219.652 152.54 220.252 151.92 221.032 151.92C221.812 151.92 222.432 152.54 222.432 153.32C222.432 154.1 221.812 154.7 221.032 154.7C220.252 154.7 219.652 154.1 219.652 153.32ZM228.238 153.32C228.238 152.54 228.838 151.92 229.618 151.92C230.398 151.92 231.018 152.54 231.018 153.32C231.018 154.1 230.398 154.7 229.618 154.7C228.838 154.7 228.238 154.1 228.238 153.32ZM236.824 153.32C236.824 152.54 237.424 151.92 238.204 151.92C238.984 151.92 239.604 152.54 239.604 153.32C239.604 154.1 238.984 154.7 238.204 154.7C237.424 154.7 236.824 154.1 236.824 153.32ZM245.41 153.32C245.41 152.54 246.01 151.92 246.79 151.92C247.57 151.92 248.19 152.54 248.19 153.32C248.19 154.1 247.57 154.7 246.79 154.7C246.01 154.7 245.41 154.1 245.41 153.32ZM253.996 153.32C253.996 152.54 254.596 151.92 255.376 151.92C256.156 151.92 256.776 152.54 256.776 153.32C256.776 154.1 256.156 154.7 255.376 154.7C254.596 154.7 253.996 154.1 253.996 153.32Z" fill="#B2B2B2"/>
|
||||
<mask id="path-27-inside-9_679_1470" fill="white">
|
||||
<path d="M364.333 128H531V176H364.333V128Z"/>
|
||||
</mask>
|
||||
<path d="M531 176V175H364.333V176V177H531V176Z" fill="#DFDFDF" mask="url(#path-27-inside-9_679_1470)"/>
|
||||
<path d="M377.733 153.32C377.733 152.54 378.333 151.92 379.113 151.92C379.893 151.92 380.513 152.54 380.513 153.32C380.513 154.1 379.893 154.7 379.113 154.7C378.333 154.7 377.733 154.1 377.733 153.32ZM386.319 153.32C386.319 152.54 386.919 151.92 387.699 151.92C388.479 151.92 389.099 152.54 389.099 153.32C389.099 154.1 388.479 154.7 387.699 154.7C386.919 154.7 386.319 154.1 386.319 153.32ZM394.905 153.32C394.905 152.54 395.505 151.92 396.285 151.92C397.065 151.92 397.685 152.54 397.685 153.32C397.685 154.1 397.065 154.7 396.285 154.7C395.505 154.7 394.905 154.1 394.905 153.32ZM403.491 153.32C403.491 152.54 404.091 151.92 404.871 151.92C405.651 151.92 406.271 152.54 406.271 153.32C406.271 154.1 405.651 154.7 404.871 154.7C404.091 154.7 403.491 154.1 403.491 153.32ZM412.077 153.32C412.077 152.54 412.677 151.92 413.457 151.92C414.237 151.92 414.857 152.54 414.857 153.32C414.857 154.1 414.237 154.7 413.457 154.7C412.677 154.7 412.077 154.1 412.077 153.32ZM420.663 153.32C420.663 152.54 421.263 151.92 422.043 151.92C422.823 151.92 423.443 152.54 423.443 153.32C423.443 154.1 422.823 154.7 422.043 154.7C421.263 154.7 420.663 154.1 420.663 153.32ZM429.249 153.32C429.249 152.54 429.849 151.92 430.629 151.92C431.409 151.92 432.029 152.54 432.029 153.32C432.029 154.1 431.409 154.7 430.629 154.7C429.849 154.7 429.249 154.1 429.249 153.32ZM437.835 153.32C437.835 152.54 438.435 151.92 439.215 151.92C439.995 151.92 440.615 152.54 440.615 153.32C440.615 154.1 439.995 154.7 439.215 154.7C438.435 154.7 437.835 154.1 437.835 153.32Z" fill="#B2B2B2"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip5_679_1470)">
|
||||
<rect width="553" height="48" transform="translate(31 176)" fill="#FCFCFC"/>
|
||||
<mask id="path-30-inside-10_679_1470" fill="white">
|
||||
<path d="M31 176H197.667V224H31V176Z"/>
|
||||
</mask>
|
||||
<path d="M197.667 224V223H31V224V225H197.667V224Z" fill="#DFDFDF" mask="url(#path-30-inside-10_679_1470)"/>
|
||||
<path d="M44.4 201.32C44.4 200.54 45 199.92 45.78 199.92C46.56 199.92 47.18 200.54 47.18 201.32C47.18 202.1 46.56 202.7 45.78 202.7C45 202.7 44.4 202.1 44.4 201.32ZM52.9859 201.32C52.9859 200.54 53.5859 199.92 54.3659 199.92C55.1459 199.92 55.7659 200.54 55.7659 201.32C55.7659 202.1 55.1459 202.7 54.3659 202.7C53.5859 202.7 52.9859 202.1 52.9859 201.32ZM61.5719 201.32C61.5719 200.54 62.1719 199.92 62.9519 199.92C63.7319 199.92 64.3519 200.54 64.3519 201.32C64.3519 202.1 63.7319 202.7 62.9519 202.7C62.1719 202.7 61.5719 202.1 61.5719 201.32ZM70.1578 201.32C70.1578 200.54 70.7578 199.92 71.5378 199.92C72.3178 199.92 72.9378 200.54 72.9378 201.32C72.9378 202.1 72.3178 202.7 71.5378 202.7C70.7578 202.7 70.1578 202.1 70.1578 201.32ZM86.7438 201.32C86.7438 200.54 87.3438 199.92 88.1238 199.92C88.9038 199.92 89.5238 200.54 89.5238 201.32C89.5238 202.1 88.9038 202.7 88.1238 202.7C87.3438 202.7 86.7438 202.1 86.7438 201.32ZM95.3297 201.32C95.3297 200.54 95.9297 199.92 96.7097 199.92C97.4897 199.92 98.1097 200.54 98.1097 201.32C98.1097 202.1 97.4897 202.7 96.7097 202.7C95.9297 202.7 95.3297 202.1 95.3297 201.32ZM111.916 201.32C111.916 200.54 112.516 199.92 113.296 199.92C114.076 199.92 114.696 200.54 114.696 201.32C114.696 202.1 114.076 202.7 113.296 202.7C112.516 202.7 111.916 202.1 111.916 201.32ZM120.502 201.32C120.502 200.54 121.102 199.92 121.882 199.92C122.662 199.92 123.282 200.54 123.282 201.32C123.282 202.1 122.662 202.7 121.882 202.7C121.102 202.7 120.502 202.1 120.502 201.32ZM129.088 201.32C129.088 200.54 129.688 199.92 130.468 199.92C131.248 199.92 131.868 200.54 131.868 201.32C131.868 202.1 131.248 202.7 130.468 202.7C129.688 202.7 129.088 202.1 129.088 201.32ZM137.673 201.32C137.673 200.54 138.273 199.92 139.053 199.92C139.833 199.92 140.453 200.54 140.453 201.32C140.453 202.1 139.833 202.7 139.053 202.7C138.273 202.7 137.673 202.1 137.673 201.32Z" fill="#B2B2B2"/>
|
||||
<mask id="path-33-inside-11_679_1470" fill="white">
|
||||
<path d="M197.667 176H364.333V224H197.667V176Z"/>
|
||||
</mask>
|
||||
<path d="M364.333 224V223H197.667V224V225H364.333V224Z" fill="#DFDFDF" mask="url(#path-33-inside-11_679_1470)"/>
|
||||
<path d="M211.067 201.32C211.067 200.54 211.667 199.92 212.447 199.92C213.227 199.92 213.847 200.54 213.847 201.32C213.847 202.1 213.227 202.7 212.447 202.7C211.667 202.7 211.067 202.1 211.067 201.32ZM219.652 201.32C219.652 200.54 220.252 199.92 221.032 199.92C221.812 199.92 222.432 200.54 222.432 201.32C222.432 202.1 221.812 202.7 221.032 202.7C220.252 202.7 219.652 202.1 219.652 201.32ZM228.238 201.32C228.238 200.54 228.838 199.92 229.618 199.92C230.398 199.92 231.018 200.54 231.018 201.32C231.018 202.1 230.398 202.7 229.618 202.7C228.838 202.7 228.238 202.1 228.238 201.32ZM236.824 201.32C236.824 200.54 237.424 199.92 238.204 199.92C238.984 199.92 239.604 200.54 239.604 201.32C239.604 202.1 238.984 202.7 238.204 202.7C237.424 202.7 236.824 202.1 236.824 201.32ZM245.41 201.32C245.41 200.54 246.01 199.92 246.79 199.92C247.57 199.92 248.19 200.54 248.19 201.32C248.19 202.1 247.57 202.7 246.79 202.7C246.01 202.7 245.41 202.1 245.41 201.32ZM253.996 201.32C253.996 200.54 254.596 199.92 255.376 199.92C256.156 199.92 256.776 200.54 256.776 201.32C256.776 202.1 256.156 202.7 255.376 202.7C254.596 202.7 253.996 202.1 253.996 201.32ZM262.582 201.32C262.582 200.54 263.182 199.92 263.962 199.92C264.742 199.92 265.362 200.54 265.362 201.32C265.362 202.1 264.742 202.7 263.962 202.7C263.182 202.7 262.582 202.1 262.582 201.32ZM271.168 201.32C271.168 200.54 271.768 199.92 272.548 199.92C273.328 199.92 273.948 200.54 273.948 201.32C273.948 202.1 273.328 202.7 272.548 202.7C271.768 202.7 271.168 202.1 271.168 201.32ZM279.754 201.32C279.754 200.54 280.354 199.92 281.134 199.92C281.914 199.92 282.534 200.54 282.534 201.32C282.534 202.1 281.914 202.7 281.134 202.7C280.354 202.7 279.754 202.1 279.754 201.32Z" fill="#B2B2B2"/>
|
||||
<mask id="path-36-inside-12_679_1470" fill="white">
|
||||
<path d="M364.333 176H531V224H364.333V176Z"/>
|
||||
</mask>
|
||||
<path d="M531 224V223H364.333V224V225H531V224Z" fill="#DFDFDF" mask="url(#path-36-inside-12_679_1470)"/>
|
||||
<path d="M377.733 201.32C377.733 200.54 378.333 199.92 379.113 199.92C379.893 199.92 380.513 200.54 380.513 201.32C380.513 202.1 379.893 202.7 379.113 202.7C378.333 202.7 377.733 202.1 377.733 201.32ZM386.319 201.32C386.319 200.54 386.919 199.92 387.699 199.92C388.479 199.92 389.099 200.54 389.099 201.32C389.099 202.1 388.479 202.7 387.699 202.7C386.919 202.7 386.319 202.1 386.319 201.32ZM394.905 201.32C394.905 200.54 395.505 199.92 396.285 199.92C397.065 199.92 397.685 200.54 397.685 201.32C397.685 202.1 397.065 202.7 396.285 202.7C395.505 202.7 394.905 202.1 394.905 201.32ZM403.491 201.32C403.491 200.54 404.091 199.92 404.871 199.92C405.651 199.92 406.271 200.54 406.271 201.32C406.271 202.1 405.651 202.7 404.871 202.7C404.091 202.7 403.491 202.1 403.491 201.32ZM412.077 201.32C412.077 200.54 412.677 199.92 413.457 199.92C414.237 199.92 414.857 200.54 414.857 201.32C414.857 202.1 414.237 202.7 413.457 202.7C412.677 202.7 412.077 202.1 412.077 201.32ZM420.663 201.32C420.663 200.54 421.263 199.92 422.043 199.92C422.823 199.92 423.443 200.54 423.443 201.32C423.443 202.1 422.823 202.7 422.043 202.7C421.263 202.7 420.663 202.1 420.663 201.32ZM429.249 201.32C429.249 200.54 429.849 199.92 430.629 199.92C431.409 199.92 432.029 200.54 432.029 201.32C432.029 202.1 431.409 202.7 430.629 202.7C429.849 202.7 429.249 202.1 429.249 201.32ZM437.835 201.32C437.835 200.54 438.435 199.92 439.215 199.92C439.995 199.92 440.615 200.54 440.615 201.32C440.615 202.1 439.995 202.7 439.215 202.7C438.435 202.7 437.835 202.1 437.835 201.32ZM446.421 201.32C446.421 200.54 447.021 199.92 447.801 199.92C448.581 199.92 449.201 200.54 449.201 201.32C449.201 202.1 448.581 202.7 447.801 202.7C447.021 202.7 446.421 202.1 446.421 201.32Z" fill="#B2B2B2"/>
|
||||
</g>
|
||||
</g>
|
||||
<rect x="31.5" y="32.5" width="552" height="191" rx="3.5" stroke="#DFDFDF"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_679_1470">
|
||||
<rect width="459" height="252" fill="white"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip1_679_1470">
|
||||
<rect x="31" y="32" width="553" height="192" rx="4" fill="white"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip2_679_1470">
|
||||
<rect width="553" height="48" fill="white" transform="translate(31 32)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip3_679_1470">
|
||||
<rect width="553" height="48" fill="white" transform="translate(31 80)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip4_679_1470">
|
||||
<rect width="553" height="48" fill="white" transform="translate(31 128)"/>
|
||||
</clipPath>
|
||||
<clipPath id="clip5_679_1470">
|
||||
<rect width="553" height="48" fill="white" transform="translate(31 176)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 28 KiB |
3
apps/www/public/images/solutions/neon/slonik-dark.svg
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
3
apps/www/public/images/solutions/neon/slonik-light.svg
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
apps/www/public/images/solutions/neon/storage-dark.png
Normal file
|
After Width: | Height: | Size: 169 KiB |
BIN
apps/www/public/images/solutions/neon/storage-light.png
Normal file
|
After Width: | Height: | Size: 171 KiB |
BIN
apps/www/public/images/solutions/neon/vectors-dark.png
Normal file
|
After Width: | Height: | Size: 533 KiB |
BIN
apps/www/public/images/solutions/neon/vectors-light.png
Normal file
|
After Width: | Height: | Size: 481 KiB |
@@ -17,6 +17,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
@layer components {
|
||||
.disable-blur {
|
||||
image-rendering: -webkit-optimize-contrast;
|
||||
}
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'custom-font';
|
||||
src:
|
||||
|
||||