fork refine

This commit is contained in:
Stefan Pejcic
2024-02-05 10:23:04 +01:00
parent 3fffde9a8f
commit 8496a83edb
3634 changed files with 715528 additions and 2 deletions

View File

@@ -0,0 +1,36 @@
export const backedBy = [
{
name: "Emre Baran",
avatar: {
light: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/emre.png",
dark: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/emre-dark.png",
},
role1: "CEO & Co-founder at Cerbos",
role2: "Expert-in-Residence at Seedcamp",
},
{
name: "Burak Emre Kabakçı",
avatar: {
light: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/burak.png",
dark: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/burak-dark.png",
},
role1: "Staff SWE @ LiveRamp Maker",
},
{
name: "Piotr Karwatka",
avatar: {
light: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/piotr.png",
dark: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/piotr-dark.png",
},
role1: "Co-founder @ Catch The Tornado",
role2: "Business Angel investor",
},
{
name: "Aksel Kastoryano",
avatar: {
light: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/aksel.png",
dark: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/aksel-dark.png",
},
role1: "Entrepreneur - Investor",
},
];

View File

@@ -0,0 +1,200 @@
import { PageIcon } from "@site/src/refine-theme/icons/page";
import { ShareIcon } from "@site/src/refine-theme/icons/share";
import React from "react";
import { Examples } from "../types/examples";
export const SHOW_CASES: Examples = [
{
title: "Refine CRM Application",
description:
"Comprehensive CRM App developed using Refine, Ant Design and GraphQL. It includes features like authentication, a dashboard, and over 10 CRUD interfaces ranging from charts and sales kanban boards to user administration.",
image: "/examples/crm-banner.jpg",
image2x: "/examples/crm-banner.jpg",
buttons: [
{
text: "Demo",
link: "https://example.crm.refine.dev/",
icon: (props) => <ShareIcon {...props} />,
},
],
source: "https://github.com/refinedev/refine/tree/master/examples/app-crm",
},
{
title: "B2B Internal tool with Ant Design",
description:
"Complete admin panel example built with Ant Design. Features authentication, dashboard and 10+ CRUD screens from orders to user management.",
image: "/examples/antd-finefoods.jpg",
image2x: "/examples/antd-finefoods2x.jpg",
buttons: [
{
text: "Demo",
link: "https://example.admin.refine.dev",
icon: (props) => <ShareIcon {...props} />,
},
],
source: "https://github.com/refinedev/refine/tree/master/examples/finefoods-antd",
},
{
title: "B2B Admin Panel with Material UI",
description:
"Complete admin panel example built with Material UI. Features authentication, dashboard and 10+ CRUD screens from orders to user management.",
image: "/examples/mui-finefoods.jpg",
image2x: "/examples/mui-finefoods2x.jpg",
buttons: [
{
text: "Demo",
link: "https://example.mui.admin.refine.dev",
icon: (props) => <ShareIcon {...props} />,
},
],
source: "https://github.com/refinedev/refine/tree/master/examples/finefoods-material-ui",
},
{
title: "Refine Swag Store",
description:
"Complete headless e-commerce built on top of Medusa. Features a fully working solution with product listings, shopping cart and checkout.",
image: "/examples/swag-store.jpg",
image2x: "/examples/swag-store2x.jpg",
buttons: [
{
text: "Demo",
link: "https://store.refine.dev",
icon: (props) => <ShareIcon {...props} />,
},
],
source: "https://github.com/refinedev/refine/tree/master/examples/store",
},
];
export const EXAMPLES: Examples = [
{
title: "Realworld Example",
description: `"The mother of all demo apps" - Exemplary fullstack Medium.com clone powered by <strong>Refine</strong>!`,
image: "/examples/real-world.jpg",
image2x: "/examples/real-world2x.jpg",
buttons: [
{
text: "Demo",
link: "https://refine-real-world.netlify.app/",
icon: (props) => <ShareIcon {...props} />,
},
],
source: "https://github.com/refinedev/real-world-example",
},
{
title: "Finefoods Storefront",
description:
"Headless storefront example built with Tailwind CSS. Features product listings and a simple shopping cart. Supports SSR with NextJS.",
image: "/examples/food-delivery.jpg",
image2x: "/examples/food-delivery2x.jpg",
buttons: [
{
text: "Demo",
link: "https://example.refine.dev",
icon: (props) => <ShareIcon {...props} />,
},
],
source: "https://github.com/refinedev/refine/tree/master/examples/finefoods-client",
},
{
title: "Win95 Style Admin Panel",
description:
"With <strong>Refine</strong>'s headless feature, you can include any UI in your project and take full advantage of all its features without worrying about compatibility.",
image: "/examples/win95.jpg",
image2x: "/examples/win952x.jpg",
buttons: [
{
text: "Blog",
link: "https://refine.dev/blog/awesome-react-windows95-ui-with-refine",
icon: (props) => <PageIcon {...props} />,
},
{
text: "Demo",
link: "https://win95.refine.dev",
icon: (props) => <ShareIcon {...props} />,
},
],
source: "https://github.com/refinedev/refine/tree/master/examples/blog-win95",
},
{
title: "Invoice Generator App",
description:
"You can develop any web application or admin panel you want in a very short time with <strong>Refine</strong> like an invoice app.",
image: "/examples/invoice-generator.jpg",
image2x: "/examples/invoice-generator2x.jpg",
buttons: [
{
text: "Blog",
link: "https://refine.dev/week-of-refine-strapi/",
icon: (props) => <PageIcon {...props} />,
},
{
text: "Demo",
link: "https://invoice-generator.refine.dev",
icon: (props) => <ShareIcon {...props} />,
},
],
source: "https://github.com/refinedev/refine/tree/master/examples/refine-week-invoice-generator",
},
{
title: "Refine Pixels!",
description:
"Our internal hackathon winner by Ali Emir Şen. He used Supabase as a db and real-time API and it worked in perfect harmony with <strong>Refine</strong>.",
image: "/examples/refine-pixels.jpg",
image2x: "/examples/refine-pixels2x.jpg",
buttons: [
{
text: "Blog",
link: "https://refine.dev/week-of-refine-supabase/",
icon: (props) => <PageIcon {...props} />,
},
{
text: "Demo",
link: "https://pixels.refine.dev/",
icon: (props) => <ShareIcon {...props} />,
},
],
source: "https://github.com/refinedev/refine/tree/master/examples/pixels",
isExternal: true,
},
{
title: "Multi-Tenancy Example with Strapi",
description:
"Cake House application using <strong>Refine</strong> and Strapi-v4 and AppWrite.",
image: "/examples/multi-tenancy-strapi.jpg",
image2x: "/examples/multi-tenancy-strapi2x.jpg",
buttons: [
{
text: "Blog",
link: "https://refine.dev/docs/guides-concepts/multi-tenancy/#strapi",
icon: (props) => <PageIcon {...props} />,
},
{
text: "Demo",
link: "https://multi-tenancy-strapi.refine.dev",
icon: (props) => <ShareIcon {...props} />,
},
],
source: "https://github.com/refinedev/refine/tree/master/examples/multi-tenancy-strapi",
},
{
title: "Multi-Tenancy Example with Appwrite",
description:
"Cake House application using <strong>Refine</strong> and Strapi-v4 and AppWrite.",
image: "/examples/multi-tenancy-appwrite.jpg",
image2x: "/examples/multi-tenancy-appwrite2x.jpg",
buttons: [
{
text: "Blog",
link: "https://refine.dev/docs/guides-concepts/multi-tenancy/#appwrite",
icon: (props) => <PageIcon {...props} />,
},
{
text: "Demo",
link: "https://multi-tenancy-appwrite.refine.dev",
icon: (props) => <ShareIcon {...props} />,
},
],
source: "https://github.com/refinedev/refine/tree/master/examples/multi-tenancy-appwrite",
},
];

View File

@@ -0,0 +1,39 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgAbly = (props: SVGProps<SVGSVGElement>) => (
<svg
width={48}
height={40}
viewBox="0 0 48 40"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M3.959 36.495 23.876 0h-5.32L0 33.773l3.959 2.722Zm40.206 0L24.124 0h5.443L48 33.773l-3.835 2.722Zm-20.041-15.34 19.793 15.587-3.834 2.846-15.836-12.371-15.835 12.37-4.082-2.845 19.794-15.587Z"
fill="url(#ably_svg__a)"
/>
<defs>
<linearGradient
id="ably_svg__a"
x1={13.293}
y1={48.706}
x2={33.025}
y2={26.791}
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#FF5416" />
<stop offset={0.254} stopColor="#FF5115" />
<stop offset={0.461} stopColor="#FF4712" />
<stop offset={0.652} stopColor="#FF350E" />
<stop offset={0.833} stopColor="#FF1E08" />
<stop offset={1} stopColor="red" />
</linearGradient>
</defs>
</svg>
);
export default SvgAbly;

View File

@@ -0,0 +1,33 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgAirtable = (props: SVGProps<SVGSVGElement>) => (
<svg
width={48}
height={41}
viewBox="0 0 48 41"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
d="M21.423.506 3.536 7.908c-.995.412-.984 1.824.017 2.221l17.962 7.123a6.664 6.664 0 0 0 4.913 0l17.963-7.123c1-.397 1.011-1.81.016-2.221L26.52.506a6.665 6.665 0 0 0-5.097 0Z"
fill="#FFBF00"
/>
<path
d="M25.565 21.142v17.795c0 .846.854 1.425 1.64 1.114l20.016-7.77c.457-.18.756-.622.756-1.113V13.373c0-.846-.853-1.425-1.64-1.114l-20.015 7.77a1.199 1.199 0 0 0-.757 1.113Z"
fill="#26B5F8"
/>
<path
d="m20.892 22.06-5.94 2.868-.604.292L1.81 31.228C1.015 31.61 0 31.032 0 30.149V13.448c0-.32.164-.595.383-.803.092-.092.196-.168.304-.228.3-.18.727-.227 1.09-.084l19.015 7.534c.966.384 1.042 1.738.1 2.193Z"
fill="#ED3049"
/>
<path
d="m20.892 22.06-5.94 2.868L.382 12.645c.092-.092.196-.168.304-.228.3-.18.727-.227 1.09-.084l19.015 7.534c.966.384 1.042 1.738.1 2.193Z"
fill="#000"
fillOpacity={0.25}
/>
</svg>
);
export default SvgAirtable;

View File

@@ -0,0 +1,105 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgAntd = ({
withBrandColor = true,
...props
}: SVGProps<SVGSVGElement> & { withBrandColor?: boolean }) => (
<svg
width={64}
height={64}
viewBox="0 0 64 64"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
d="M29.212 1.136 1.133 29.194a3.849 3.849 0 0 0 0 5.453l28.08 28.057a3.857 3.857 0 0 0 5.458 0L46.444 50.94a3.457 3.457 0 0 0 0-4.892 3.464 3.464 0 0 0-4.896 0l-8.926 8.918a.916.916 0 0 1-1.322 0L8.877 32.56a.914.914 0 0 1 0-1.32L31.301 8.834a.916.916 0 0 1 1.321 0l8.926 8.918a3.464 3.464 0 0 0 4.896 0 3.457 3.457 0 0 0 0-4.892L34.67 1.098a3.894 3.894 0 0 0-5.459.038Z"
fill={`url(#antd_svg__a-${props.id || ""})`}
/>
<path
d="M29.212 1.136 1.133 29.194a3.849 3.849 0 0 0 0 5.453l28.08 28.057a3.857 3.857 0 0 0 5.458 0L46.444 50.94a3.457 3.457 0 0 0 0-4.892 3.464 3.464 0 0 0-4.896 0l-8.926 8.918a.916.916 0 0 1-1.322 0L8.877 32.56a.914.914 0 0 1 0-1.32L31.301 8.834c.935-.806 2.462-2.44 4.703-2.822 1.666-.284 3.488.34 5.465 1.875l-6.798-6.79a3.894 3.894 0 0 0-5.459.04Z"
fill={`url(#antd_svg__b-${props.id || ""})`}
/>
<path
d="M49.162 43.439a3.464 3.464 0 0 0 4.896 0l8.684-8.678a3.849 3.849 0 0 0 0-5.453l-8.76-8.722a3.47 3.47 0 0 0-4.9.004 3.457 3.457 0 0 0 0 4.892l5.916 5.912a.915.915 0 0 1 0 1.32l-5.836 5.833a3.457 3.457 0 0 0 0 4.892Z"
fill={`url(#antd_svg__c-${props.id || ""})`}
/>
<path
d="M32.082 39.636a7.579 7.579 0 0 0 7.581-7.575 7.579 7.579 0 0 0-7.581-7.576 7.579 7.579 0 0 0-7.582 7.576 7.579 7.579 0 0 0 7.582 7.575Z"
fill={`url(#antd_svg__d-${props.id || ""})`}
/>
<defs>
<linearGradient
id={`antd_svg__a-${props.id || ""}`}
x1={29.472}
y1={0}
x2={56.157}
y2={16.296}
gradientUnits="userSpaceOnUse"
>
<stop stopColor={withBrandColor ? "#4285EB" : "currentColor"} />
<stop
offset={1}
stopColor={withBrandColor ? "#2EC7FF" : "currentColor"}
/>
</linearGradient>
<linearGradient
id={`antd_svg__b-${props.id || ""}`}
x1={33.052}
y1={0}
x2={19.872}
y2={68.116}
gradientUnits="userSpaceOnUse"
>
<stop stopColor={withBrandColor ? "#29CDFF" : "currentColor"} />
<stop
offset={0.379}
stopColor={withBrandColor ? "#148EFF" : "currentColor"}
/>
<stop
offset={1}
stopColor={withBrandColor ? "#0A60FF" : "currentColor"}
/>
</linearGradient>
<linearGradient
id={`antd_svg__c-${props.id || ""}`}
x1={59.084}
y1={16.347}
x2={41.935}
y2={43.167}
gradientUnits="userSpaceOnUse"
>
<stop stopColor={withBrandColor ? "#FA816E" : "currentColor"} />
<stop
offset={0.415}
stopColor={withBrandColor ? "#F74A5C" : "currentColor"}
/>
<stop
offset={1}
stopColor={withBrandColor ? "#F51D2C" : "currentColor"}
/>
</linearGradient>
<linearGradient
id={`antd_svg__d-${props.id || ""}`}
x1={34.831}
y1={19.078}
x2={29.125}
y2={41.902}
gradientUnits="userSpaceOnUse"
>
<stop stopColor={withBrandColor ? "#FA8E7D" : "currentColor"} />
<stop
offset={0.513}
stopColor={withBrandColor ? "#F74A5C" : "currentColor"}
/>
<stop
offset={1}
stopColor={withBrandColor ? "#F51D2C" : "currentColor"}
/>
</linearGradient>
</defs>
</svg>
);
export default SvgAntd;

View File

@@ -0,0 +1,24 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgAppwrite = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={56}
height={49}
viewBox="0 0 56 49"
fill="none"
{...props}
>
<path
fill="#FD366E"
d="M55.55 36.736v12.246H24.435c-9.065 0-16.98-4.925-21.214-12.246A24.324 24.324 0 0 1 0 26.146v-3.31a24.174 24.174 0 0 1 .866-5.024C3.773 7.532 13.224 0 24.436 0c11.21 0 20.66 7.532 23.567 17.812H34.7a12.232 12.232 0 0 0-10.264-5.567c-4.299 0-8.08 2.216-10.264 5.567a12.13 12.13 0 0 0-1.52 3.34c-.3 1.061-.461 2.181-.461 3.339 0 3.51 1.476 6.674 3.843 8.906a12.194 12.194 0 0 0 8.402 3.34H55.55Z"
/>
<path
fill="#FD366E"
d="M55.55 21.151v12.246H32.838a12.203 12.203 0 0 0 3.843-8.906c0-1.158-.16-2.278-.461-3.34h19.33Z"
/>
</svg>
);
export default SvgAppwrite;

View File

@@ -0,0 +1,37 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgAtlassian = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={25}
height={25}
viewBox="0 0 25 25"
fill="none"
{...props}
>
<path
fill="url(#atlassian-a)"
d="M7.619 11.453a.683.683 0 0 0-1.162.126L.574 23.349a.704.704 0 0 0 .63 1.02h8.191a.678.678 0 0 0 .63-.39c1.766-3.654.695-9.21-2.406-12.526Z"
/>
<path
fill="#2684FF"
d="M11.934.746a15.534 15.534 0 0 0-.906 15.329l3.95 7.904a.703.703 0 0 0 .628.39h8.191a.703.703 0 0 0 .629-1.02L13.13.743a.664.664 0 0 0-1.196.004Z"
/>
<defs>
<linearGradient
id="atlassian-a"
x1={10.843}
x2={4.628}
y1={13.269}
y2={24.027}
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#0052CC" />
<stop offset={0.923} stopColor="#2684FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgAtlassian;

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,20 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgAuth0 = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={25}
height={25}
viewBox="0 0 25 25"
fill="none"
{...props}
>
<path
fill="#EB5424"
d="m18.674 19.783-2.357-7.415 6.17-4.581h-7.63L12.498.368h7.63l2.36 7.418c1.367 4.3-.043 9.195-3.826 11.996l.011.001Zm-12.343 0 6.17 4.585 6.173-4.585-6.17-4.581-6.173 4.581Zm-3.814-12c-1.443 4.538.232 9.343 3.812 12.002v-.002l2.358-7.415-6.17-4.585 7.629.003L12.499.368H4.864L2.517 7.783Z"
/>
</svg>
);
export default SvgAuth0;

View File

@@ -0,0 +1,55 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgAwsCognito = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={25}
height={25}
viewBox="0 0 25 25"
fill="none"
{...props}
>
<g clipPath="url(#a)">
<path
fill="#7A3E65"
d="m19.252 5.03 2.068-.532.015.023.053 12.487-.068.068-.426.018-1.618-.252-.024-.063V5.03ZM7.291 17.943l.008.001 5.459 1.586.014.011.023.019-.007 4.753-.016.02-5.481-2.662v-3.727Z"
/>
<path
fill="#CFB2C1"
d="m19.252 16.779-6.471 1.55-3.25-.785-2.24.4 5.48 1.597 8.46-2.29.09-.175-2.069-.297Z"
/>
<path
fill="#512843"
d="m18.253 6.761-.053-.06-5.369-1.56-.059.023-.054-.028L4.27 7.572l-.046.057.067.037 1.932.283.069-.023 6.471-1.55 3.25.784 2.24-.399Z"
/>
<path
fill="#C17B9E"
d="m6.292 19.674-2.068.5-.004-.012L4.14 7.72l.085-.092 2.068.297v11.748Z"
/>
<path
fill="#7A3E65"
d="m9.084 14.848 3.688.433.028-.041.015-5.77-.043-.047-3.688.433v4.992Z"
/>
<path
fill="#C17B9E"
d="m16.46 14.848-3.689.433V9.424l3.689.432v4.992Zm1.792-8.087-5.48-1.597V.37l5.48 2.663V6.76Z"
/>
<path
fill="#7A3E65"
d="M12.772.371 2.5 5.33v14.045l1.724.798V7.63l8.548-2.465V.37Z"
/>
<path
fill="#C17B9E"
d="M21.32 4.498v12.578l-8.549 2.465v4.793l10.272-4.96V5.33l-1.723-.832Z"
/>
</g>
<defs>
<clipPath id="a">
<path fill="#fff" d="M.5.368h24v24H.5z" />
</clipPath>
</defs>
</svg>
);
export default SvgAwsCognito;

View File

@@ -0,0 +1,22 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgAzureActiveDirectory = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={25}
height={25}
fill="none"
{...props}
>
<path fill="#1E91DB" d="m.5 14.368 12-14 12 14-12 10-12-10Z" />
<path
fill="#fff"
fillRule="evenodd"
d="M11.885 9.272c.038.012.076.023.115.033v8.126a1.985 1.985 0 0 0-.39.145l-3.26-2.445c.097-.235.15-.493.15-.763 0-.4-.117-.771-.319-1.084l3.704-4.012Zm2.085-.548a2 2 0 1 0-2.94 0l-3.584 3.882a2 2 0 1 0 .303 3.324l3.093 2.32a2 2 0 1 0 3.316 0l3.093-2.32a2 2 0 1 0 .303-3.324L13.97 8.724Zm-.97.581c.039-.01.077-.02.115-.033l3.704 4.012a1.99 1.99 0 0 0-.169 1.847l-3.26 2.445a1.985 1.985 0 0 0-.39-.145V9.305Z"
clipRule="evenodd"
/>
</svg>
);
export default SvgAzureActiveDirectory;

View File

@@ -0,0 +1,46 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgChakra = ({
withBrandColor = true,
...props
}: SVGProps<SVGSVGElement> & { withBrandColor?: boolean }) => (
<svg
width="65"
height="65"
viewBox="0 0 65 65"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<circle
cx="32.7988"
cy="32.8003"
r="32"
fill={`url(#chakra_svg__d-${props.id || ""})`}
/>
<path
d="M18.4223 34.422L39.9834 13.0093C40.3861 12.6092 41.0344 13.096 40.7624 13.5944L32.7376 28.3026C32.5584 28.6305 32.7959 29.0307 33.1696 29.0307H47.0379C47.4847 29.0307 47.7003 29.5779 47.3736 29.8829L23.0714 52.564C22.6357 52.9706 21.9871 52.3976 22.3369 51.9151L33.8411 36.0449C34.0769 35.7194 33.8445 35.2636 33.4426 35.2636H18.7692C18.3298 35.2636 18.1105 34.7316 18.4223 34.422Z"
className="text-white dark:text-gray-900"
fill={withBrandColor ? "#FFFFFF" : "currentColor"}
/>
<defs>
<linearGradient
id={`chakra_svg__d-${props.id || ""}`}
x1="32.7988"
y1="0.800293"
x2="32.7988"
y2="64.8003"
gradientUnits="userSpaceOnUse"
>
<stop stopColor={withBrandColor ? "#7ACBD4" : "currentColor"} />
<stop
offset="0.916667"
stopColor={withBrandColor ? "#2AC6B7" : "currentColor"}
/>
</linearGradient>
</defs>
</svg>
);
export default SvgChakra;

View File

@@ -0,0 +1,55 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgClerk = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={25}
height={25}
viewBox="0 0 25 25"
fill="none"
{...props}
>
<g clipPath="url(#clerk-a)">
<path
fill="url(#clerk-b)"
d="m19.616 3.53-2.88 2.88a.571.571 0 0 1-.701.084 6.854 6.854 0 0 0-10.39 5.647 6.867 6.867 0 0 0 .979 3.763.571.571 0 0 1-.084.7l-2.88 2.88a.57.57 0 0 1-.865-.063A11.994 11.994 0 0 1 19.551 2.663a.57.57 0 0 1 .065.866Z"
/>
<path
fill="#1F0256"
d="m19.613 21.197-2.88-2.88a.571.571 0 0 0-.7-.084 6.854 6.854 0 0 1-7.081 0 .571.571 0 0 0-.7.084l-2.881 2.88a.57.57 0 0 0 .062.876 11.994 11.994 0 0 0 14.114 0 .571.571 0 0 0 .066-.876Z"
/>
<path
fill="#fff"
d="m19.613 21.197-2.88-2.88a.571.571 0 0 0-.7-.084 6.854 6.854 0 0 1-7.081 0 .571.571 0 0 0-.7.084l-2.881 2.88a.57.57 0 0 0 .062.876 11.994 11.994 0 0 0 14.114 0 .571.571 0 0 0 .066-.876Z"
/>
<path
fill="#1F0256"
d="M12.497 15.79a3.427 3.427 0 1 0 0-6.853 3.427 3.427 0 0 0 0 6.854Z"
/>
<path
fill="#fff"
d="M12.497 15.79a3.427 3.427 0 1 0 0-6.853 3.427 3.427 0 0 0 0 6.854Z"
/>
</g>
<defs>
<linearGradient
id="clerk-b"
x1={16.909}
x2={-7.385}
y1={-1.39}
y2={22.905}
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#17CCFC" />
<stop offset={0.5} stopColor="#5D31FF" />
<stop offset={1} stopColor="#F35AFF" />
</linearGradient>
<clipPath id="clerk-a">
<path fill="#fff" d="M.5.368h24v24H.5z" />
</clipPath>
</defs>
</svg>
);
export default SvgClerk;

View File

@@ -0,0 +1,23 @@
import React, { SVGProps } from "react";
const CustomAuthIcon = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<g fill="currentColor">
<path
fillRule="evenodd"
clipRule="evenodd"
d="M9 3a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h1v8a1 1 0 0 0 .293.707l1 1a1 1 0 0 0 1.414 0l1-1A1 1 0 0 0 14 19v-8h1a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2H9Zm4.5 4a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z"
/>
<path d="M4.707 8.293a1 1 0 0 1 0 1.414L2.414 12l2.293 2.293a1 1 0 1 1-1.414 1.414l-3-3a1 1 0 0 1 0-1.414l3-3a1 1 0 0 1 1.414 0ZM21.586 12l-2.293-2.293a1 1 0 0 1 1.414-1.414l3 3a1 1 0 0 1 0 1.414l-3 3a1 1 0 0 1-1.414-1.414L21.586 12Z" />
</g>
</svg>
);
export default CustomAuthIcon;

View File

@@ -0,0 +1,22 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgDirectus = (props: SVGProps<SVGSVGElement>) => (
<svg
width={48}
height={30}
viewBox="0 0 48 30"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M38.387 18.498a3.465 3.465 0 0 1-.587-.183 1.306 1.306 0 0 1-.308-.198.234.234 0 0 1-.08-.205c.088-.931-.008-1.76.073-2.676.374-3.754 2.735-2.566 4.853-3.175 1.21-.344 2.427-1.019 2.874-2.346a.63.63 0 0 0-.147-.623 27.174 27.174 0 0 0-4.589-4.164A27.492 27.492 0 0 0 20.961.266a.345.345 0 0 0-.25.527 10.278 10.278 0 0 0 3.234 3.182c.234.147.139.462-.133.396a6.152 6.152 0 0 1-2.184-.953.264.264 0 0 0-.25-.022l-1.238.498a.338.338 0 0 0-.088.572 10.264 10.264 0 0 0 12.045 1.02c.234-.147.608.146.535.41-.125.418-.264.997-.41 1.781-.954 4.788-3.68 4.421-7.06 3.211-6.745-2.448-10.58-.359-13.981-4.494-.242-.293-.66-.388-.938-.146a3.196 3.196 0 0 0 .322 5.11.25.25 0 0 0 .33-.052c.213-.271.381-.44.601-.557.227-.117.345.22.147.389-.726.637-.931 1.4-1.4 2.91-.748 2.353-.433 4.765-3.9 5.396-1.833.095-1.804 1.341-2.471 3.196-.777 2.244-1.789 3.226-3.666 5.19-.264.265-.286.697 0 .939.748.638 1.525.675 2.31.352 1.95-.821 3.453-3.343 4.867-4.978 1.577-1.818 5.36-1.04 8.219-2.822 1.54-.946 2.47-2.156 2.177-3.96-.051-.293.286-.468.403-.197a5.38 5.38 0 0 1 .44 1.613.289.289 0 0 0 .3.256c3.094-.176 7.09 3.233 10.829 4.157.227.059.388-.205.264-.403a6.9 6.9 0 0 1-.975-2.273c-.074-.286.352-.366.498-.102a6.906 6.906 0 0 0 5.543 3.548c.908.073 1.905-.037 2.947-.352 1.246-.374 2.397-.858 3.768-.594a3.885 3.885 0 0 1 2.566 1.576c.828 1.217 2.588 1.54 3.526.264a.608.608 0 0 0 .059-.6c-2.068-4.84-7.31-5.17-9.568-5.756h.008Z"
fill="#64F"
/>
</svg>
);
export default SvgDirectus;

View File

@@ -0,0 +1,33 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgDp = (props: SVGProps<SVGSVGElement>) => (
<svg
width={24}
height={24}
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
d="M4 3.04V.8c0-.453-.347-.8-.8-.8-.453 0-.8.347-.8.8v2.24A3.178 3.178 0 0 0 0 6.134a3.178 3.178 0 0 0 2.4 3.093V23.2c0 .454.347.8.8.8.453 0 .8-.346.8-.8V9.227a3.178 3.178 0 0 0 2.4-3.093A3.178 3.178 0 0 0 4 3.04Zm-.8 4.693c-.88 0-1.6-.72-1.6-1.6 0-.88.72-1.6 1.6-1.6.88 0 1.6.72 1.6 1.6 0 .88-.72 1.6-1.6 1.6Zm9.6 1.174V.8c0-.453-.347-.8-.8-.8-.453 0-.8.347-.8.8v8.107A3.178 3.178 0 0 0 8.8 12a3.178 3.178 0 0 0 2.4 3.094V23.2c0 .454.347.8.8.8.453 0 .8-.346.8-.8v-8.106A3.178 3.178 0 0 0 15.2 12a3.178 3.178 0 0 0-2.4-3.093ZM12 13.6c-.88 0-1.6-.72-1.6-1.6 0-.88.72-1.6 1.6-1.6.88 0 1.6.72 1.6 1.6 0 .88-.72 1.6-1.6 1.6Zm9.6 1.174V.8c0-.453-.347-.8-.8-.8-.453 0-.8.347-.8.8v13.974a3.178 3.178 0 0 0-2.4 3.093A3.178 3.178 0 0 0 20 20.96v2.24c0 .453.347.8.8.8.453 0 .8-.347.8-.8v-2.24a3.178 3.178 0 0 0 2.4-3.093 3.178 3.178 0 0 0-2.4-3.094Zm-.8 4.693c-.88 0-1.6-.72-1.6-1.6 0-.88.72-1.6 1.6-1.6.88 0 1.6.72 1.6 1.6 0 .88-.72 1.6-1.6 1.6Z"
fill="url(#dp_svg__a)"
/>
<defs>
<linearGradient
id="dp_svg__a"
x1={12.054}
y1={2.068}
x2={12.054}
y2={24}
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#67BFFF" />
<stop offset={1} stopColor="#3F54E6" />
</linearGradient>
</defs>
</svg>
);
export default SvgDp;

View File

@@ -0,0 +1,52 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const SvgElideGraphql = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={48}
height={48}
viewBox="0 0 48 48"
fill="none"
className={clsx(
"dark:text-[#ffffff] dark:fill-[#14141f] text-[#14141f] fill-[#ffffff]",
className,
)}
{...props}
>
<path
fill="currentColor"
d="M24 21.143c5.8 0 10.5 1.279 10.5 2.857 0 .732-1.01 1.4-2.673 1.905-1.923.584-4.717.952-7.827.952-3.11 0-5.904-.367-7.826-.952C14.51 25.399 13.5 24.732 13.5 24c0-1.578 4.701-2.857 10.5-2.857Zm10.5 20C34.5 42.721 29.8 44 24 44c-5.799 0-10.5-1.28-10.5-2.857v-3.81c0 1.578 4.701 2.857 10.5 2.857 5.8 0 10.5-1.279 10.5-2.857v3.81Zm0-5.714c0 1.578-4.7 2.857-10.5 2.857-5.799 0-10.5-1.28-10.5-2.857v-3.81c0 1.578 4.701 2.857 10.5 2.857 5.8 0 10.5-1.279 10.5-2.857v3.81Zm0-5.715c0 1.578-4.7 2.858-10.5 2.858-5.799 0-10.5-1.28-10.5-2.858v-3.81c0 1.579 4.701 2.858 10.5 2.858 5.8 0 10.5-1.28 10.5-2.857v3.81ZM29.256 19.238H17.71c-1.16 0-2.151-.426-2.975-1.278-.823-.853-1.235-1.879-1.235-3.08 0-1.008.294-1.9.882-2.674a4.09 4.09 0 0 1 2.27-1.526v-.157c0-1.809.617-3.348 1.852-4.618C19.74 4.635 21.224 4 22.954 4c1.344 0 2.559.404 3.643 1.213a6.394 6.394 0 0 1 2.281 3.17c1.547-.121 2.87.353 3.97 1.423 1.102 1.07 1.652 2.396 1.652 3.979 0 1.496-.512 2.779-1.538 3.848-1.025 1.07-2.26 1.605-3.706 1.605Zm-11.647-6.55c-.537 0-1.008.218-1.411.653a2.19 2.19 0 0 0-.605 1.54c0 .591.206 1.1.617 1.526.412.426.912.64 1.5.64h11.546c.874 0 1.618-.318 2.232-.953.613-.635.92-1.404.92-2.31 0-.904-.307-1.674-.92-2.309-.614-.634-1.358-.952-2.232-.952-.252 0-.537.052-.857.157l-1.134.34-.177-1.201c-.184-1.044-.663-1.91-1.437-2.597a3.936 3.936 0 0 0-2.697-1.03c-1.16 0-2.151.422-2.975 1.265-.823.844-1.235 1.866-1.235 3.066 0 .209.033.505.1.887l.253 1.305-1.488-.026Z"
/>
<rect width={24} height={24} x={24} y={24} fill="currentFill" rx={12} />
<path
fill="#E535AB"
d="m29.59 39.855.587.339L36.72 28.86l-.587-.339-6.544 11.334Z"
/>
<path fill="#E535AB" d="M42.541 38.95H29.455v.678H42.54v-.678Z" />
<path
fill="#E535AB"
d="m29.714 39.33 6.546 3.78.339-.587-6.546-3.78-.34.588Zm5.687-9.85 6.545 3.78.34-.587-6.547-3.78-.338.588Z"
/>
<path
fill="#E535AB"
d="m29.716 32.67.339.587 6.545-3.779-.339-.587-6.545 3.78Z"
/>
<path
fill="#E535AB"
d="m35.282 28.861 6.543 11.333.588-.339-6.544-11.333-.587.339Zm-4.63 3.36h-.678v7.558h.678v-7.558Z"
/>
<path fill="#E535AB" d="M42.027 32.22h-.678v7.56h.678v-7.56Z" />
<path
fill="#E535AB"
d="m35.848 42.31.296.513 5.693-3.287-.296-.513-5.693 3.287Z"
/>
<path
fill="#E535AB"
d="M42.926 40a1.428 1.428 0 0 1-2.472-1.426 1.428 1.428 0 0 1 2.652.899 1.422 1.422 0 0 1-.18.527Zm-11.383-6.574a1.429 1.429 0 0 1-1.95.523 1.428 1.428 0 0 1 1.427-2.472 1.43 1.43 0 0 1 .523 1.949ZM29.075 40a1.43 1.43 0 0 1 .523-1.949 1.43 1.43 0 0 1 1.949.523 1.43 1.43 0 0 1-.523 1.949 1.427 1.427 0 0 1-1.95-.523Zm11.383-6.574a1.43 1.43 0 0 1 .523-1.949 1.429 1.429 0 0 1 1.95.523 1.429 1.429 0 0 1-.524 1.949 1.428 1.428 0 0 1-1.949-.523ZM36.001 44a1.424 1.424 0 0 1-1.319-1.972A1.425 1.425 0 1 1 36.001 44Zm0-13.148a1.424 1.424 0 0 1-1.319-1.972 1.425 1.425 0 0 1 2.327-.463 1.423 1.423 0 0 1 .31 1.555 1.423 1.423 0 0 1-1.319.88Z"
/>
</svg>
);
export default SvgElideGraphql;

View File

@@ -0,0 +1,22 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const SvgElide = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={48}
height={48}
viewBox="0 0 48 48"
fill="none"
className={clsx("dark:text-gray-0 text-[#273646]", className)}
{...props}
>
<path
fill="currentColor"
d="M24 21.143c5.8 0 10.5 1.279 10.5 2.857 0 .732-1.01 1.4-2.673 1.905-1.923.584-4.717.952-7.827.952-3.11 0-5.904-.367-7.826-.952C14.51 25.399 13.5 24.732 13.5 24c0-1.578 4.701-2.857 10.5-2.857Zm10.5 20C34.5 42.721 29.8 44 24 44c-5.799 0-10.5-1.28-10.5-2.857v-3.81c0 1.578 4.701 2.857 10.5 2.857 5.8 0 10.5-1.279 10.5-2.857v3.81Zm0-5.714c0 1.578-4.7 2.857-10.5 2.857-5.799 0-10.5-1.28-10.5-2.857v-3.81c0 1.578 4.701 2.857 10.5 2.857 5.8 0 10.5-1.279 10.5-2.857v3.81Zm0-5.715c0 1.578-4.7 2.858-10.5 2.858-5.799 0-10.5-1.28-10.5-2.858v-3.81c0 1.579 4.701 2.858 10.5 2.858 5.8 0 10.5-1.28 10.5-2.857v3.81ZM29.256 19.238H17.71c-1.16 0-2.151-.426-2.975-1.278-.823-.853-1.235-1.879-1.235-3.08 0-1.008.294-1.9.882-2.674a4.09 4.09 0 0 1 2.27-1.526v-.157c0-1.809.617-3.348 1.852-4.618C19.74 4.635 21.224 4 22.954 4c1.344 0 2.559.404 3.643 1.213a6.394 6.394 0 0 1 2.281 3.17c1.547-.121 2.87.353 3.97 1.423 1.102 1.07 1.652 2.396 1.652 3.979 0 1.496-.512 2.779-1.538 3.848-1.025 1.07-2.26 1.605-3.706 1.605Zm-11.647-6.55c-.537 0-1.008.218-1.411.653a2.19 2.19 0 0 0-.605 1.54c0 .591.206 1.1.617 1.526.412.426.912.64 1.5.64h11.546c.874 0 1.618-.318 2.232-.953.613-.635.92-1.404.92-2.31 0-.904-.307-1.674-.92-2.309-.614-.634-1.358-.952-2.232-.952-.252 0-.537.052-.857.157l-1.134.34-.177-1.201c-.184-1.044-.663-1.91-1.437-2.597a3.936 3.936 0 0 0-2.697-1.03c-1.16 0-2.151.422-2.975 1.265-.823.844-1.235 1.866-1.235 3.066 0 .209.033.505.1.887l.253 1.305-1.488-.026Z"
/>
</svg>
);
export default SvgElide;

View File

@@ -0,0 +1,33 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgEntRefine = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={48}
height={48}
viewBox="0 0 48 48"
fill="none"
{...props}
>
<path
fill="currentColor"
className="text-gray-1000 dark:text-gray-0"
d="M31.086 8.457v8.624h-1.08V9.537H1.08v28.926h28.926V30.92h1.08v8.624H0V8.457h31.086Z"
/>
<path
fill="currentColor"
className="text-gray-1000 dark:text-gray-0"
fillRule="evenodd"
d="M11.165 28.876c.708.742 1.627 1.113 2.756 1.113 1.395 0 2.442-.536 3.14-1.608l-.87-.678c-.261.338-.566.61-.915.817-.349.204-.775.306-1.28.306-.708 0-1.291-.253-1.75-.757-.46-.507-.7-1.17-.718-1.99h5.64v-.592c0-1.33-.3-2.352-.898-3.065-.602-.713-1.444-1.069-2.526-1.069a3.34 3.34 0 0 0-1.844.549 3.697 3.697 0 0 0-1.325 1.526c-.315.647-.473 1.384-.473 2.21v.262c0 1.242.355 2.234 1.063 2.976Zm1.132-5.726a1.896 1.896 0 0 1 1.447-.627c.595 0 1.067.199 1.416.596.349.397.544.957.586 1.68v.108h-4.174c.092-.753.334-1.338.725-1.757Z"
clipRule="evenodd"
/>
<path
fill="currentColor"
className="text-gray-1000 dark:text-gray-0"
d="M20.163 21.505h-1.35v8.33h1.426V23.9c.195-.402.468-.725.817-.971a2.059 2.059 0 0 1 1.217-.37c.57 0 .989.145 1.258.433.269.286.405.73.41 1.33v5.511h1.425V24.33c-.015-1.984-.903-2.976-2.665-2.976-1.025 0-1.857.4-2.494 1.198l-.044-1.046ZM29.445 19.49H28.02v2.015h-1.516v1.103h1.516v5.165c0 .708.162 1.254.486 1.639.323.385.803.577 1.438.577.355 0 .72-.052 1.094-.155V28.68c-.288.061-.514.092-.678.092-.332 0-.568-.083-.707-.25-.138-.167-.208-.417-.208-.75v-5.164H31v-1.104h-1.555V19.49ZM34.985 25.979l2.904 3.855h1.67l-3.619-4.849 3.241-3.48h-1.73l-2.595 2.742-.763.915v-7.15H32.67v11.822h1.422V26.91l.892-.93ZM42.199 29.834v-8.33h-1.425v8.33h1.425ZM40.871 18.711a.848.848 0 0 0-.214.587c0 .23.071.423.214.577.141.153.35.23.628.23.275 0 .485-.077.63-.23a.813.813 0 0 0 .215-.578.848.848 0 0 0-.215-.586c-.145-.16-.355-.24-.63-.24-.278 0-.487.08-.628.24ZM46.408 19.49h-1.425v2.015h-1.517v1.103h1.517v5.165c0 .708.162 1.254.485 1.639.324.385.804.577 1.441.577.353 0 .717-.052 1.091-.155V28.68c-.286.061-.512.092-.678.092-.332 0-.567-.083-.706-.25-.139-.167-.208-.417-.208-.75v-5.164h1.554v-1.104h-1.554V19.49Z"
/>
</svg>
);
export default SvgEntRefine;

View File

@@ -0,0 +1,22 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const SvgExpo = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={25}
height={25}
viewBox="0 0 25 25"
fill="none"
{...props}
className={clsx("dark:text-gray-0 text-gray-1000", props.className)}
>
<path
fill="currentColor"
d="M11.873 9.532c.196-.286.41-.323.585-.323.174 0 .465.037.66.323 2.558 3.483 7.861 12.672 8.352 13.172.726.742 1.723.28 2.301-.56.571-.829.729-1.41.729-2.029 0-.422-8.259-15.66-9.092-16.928-.8-1.22-1.06-1.528-2.428-1.528h-1.024c-1.366 0-1.563.308-2.363 1.527C8.76 4.457.5 19.694.5 20.116c0 .62.158 1.2.729 2.029.578.84 1.575 1.303 2.301.56.49-.5 5.786-9.688 8.343-13.17v-.003Z"
/>
</svg>
);
export default SvgExpo;

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,32 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgGoogle = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={25}
height={25}
viewBox="0 0 25 25"
fill="none"
{...props}
>
<path
fill="#4285F4"
d="M12.74 10.187v4.648h6.458c-.283 1.494-1.134 2.76-2.41 3.61l3.894 3.023c2.27-2.095 3.578-5.171 3.578-8.826 0-.85-.076-1.67-.218-2.454H12.74Z"
/>
<path
fill="#34A853"
d="m6.015 14.652-.878.673-3.11 2.421c1.975 3.917 6.022 6.622 10.713 6.622 3.24 0 5.956-1.069 7.942-2.901l-3.895-3.022c-1.07.72-2.433 1.156-4.047 1.156-3.12 0-5.771-2.105-6.72-4.942l-.005-.007Z"
/>
<path
fill="#FBBC05"
d="M2.027 6.991A11.852 11.852 0 0 0 .74 12.37c0 1.942.47 3.764 1.287 5.378 0 .011 3.993-3.098 3.993-3.098a7.19 7.19 0 0 1-.382-2.28c0-.796.142-1.56.382-2.28L2.027 6.991Z"
/>
<path
fill="#EA4335"
d="M12.74 5.147c1.767 0 3.338.61 4.593 1.789l3.436-3.437C18.686 1.558 15.98.37 12.74.37 8.05.369 4.002 3.063 2.027 6.99L6.02 10.09c.95-2.837 3.6-4.942 6.72-4.942Z"
/>
</svg>
);
export default SvgGoogle;

View File

@@ -0,0 +1,42 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgGraphql = (props: SVGProps<SVGSVGElement>) => (
<svg
width={43}
height={48}
viewBox="0 0 43 48"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
d="m2.127 35.564 1.762 1.017 19.63-34-1.762-1.017-19.63 34Z"
fill="#E535AB"
/>
<path d="M40.984 32.85H1.724v2.035h39.26V32.85Z" fill="#E535AB" />
<path
d="m2.5 33.993 19.638 11.338 1.017-1.762L3.518 32.231l-1.017 1.762ZM19.56 4.443l19.637 11.338 1.018-1.762L20.577 2.681 19.56 4.443Z"
fill="#E535AB"
/>
<path
d="m2.506 14.011 1.017 1.762L23.16 4.435l-1.017-1.762L2.506 14.011Z"
fill="#E535AB"
/>
<path
d="m19.205 2.583 19.63 34 1.762-1.017-19.63-34-1.762 1.017ZM5.315 12.662H3.28v22.676h2.035V12.662Z"
fill="#E535AB"
/>
<path d="M39.44 12.662h-2.035v22.676h2.035V12.662Z" fill="#E535AB" />
<path
d="m20.903 42.93.889 1.54 17.079-9.861-.889-1.54-17.08 9.861Z"
fill="#E535AB"
/>
<path
d="M42.136 36c-1.176 2.047-3.8 2.746-5.846 1.569-2.047-1.177-2.746-3.8-1.57-5.847 1.177-2.047 3.8-2.745 5.847-1.569A4.266 4.266 0 0 1 42.137 36ZM7.987 16.277c-1.177 2.047-3.8 2.746-5.847 1.57C.093 16.67-.606 14.046.571 12c1.177-2.047 3.8-2.746 5.847-1.57a4.287 4.287 0 0 1 1.569 5.848ZM.583 36a4.287 4.287 0 0 1 1.57-5.847 4.287 4.287 0 0 1 5.846 1.57 4.287 4.287 0 0 1-1.569 5.846C4.371 38.746 1.76 38.047.583 36ZM34.733 16.277a4.287 4.287 0 0 1 1.569-5.846A4.287 4.287 0 0 1 42.149 12a4.287 4.287 0 0 1-1.57 5.846c-2.046 1.177-4.67.479-5.846-1.569ZM21.36 48a4.274 4.274 0 0 1-4.279-4.278 4.274 4.274 0 0 1 4.278-4.278 4.274 4.274 0 0 1 4.278 4.278A4.282 4.282 0 0 1 21.36 48ZM21.36 8.556a4.274 4.274 0 0 1-4.279-4.278A4.274 4.274 0 0 1 21.36 0a4.274 4.274 0 0 1 4.278 4.278 4.274 4.274 0 0 1-4.278 4.278Z"
fill="#E535AB"
/>
</svg>
);
export default SvgGraphql;

View File

@@ -0,0 +1,22 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgHasura = (props: SVGProps<SVGSVGElement>) => (
<svg
width={48}
height={48}
viewBox="0 0 48 48"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M44.726.28c2.743 3.17 3.595 11.76 2.179 16.065-.47 1.431-.603 2.944-.332 4.413.277 1.459.553 3.22.553 4.446C47.126 37.791 36.678 48 23.784 48 10.897 48 .443 37.796.443 25.204c0-1.226.276-2.987.553-4.446.276-1.469.15-2.982-.321-4.413C-.741 12.045.111 3.456 2.855.28a.841.841 0 0 1 1.327.102l3.38 5.18a2.651 2.651 0 0 0 3.473.552A23.607 23.607 0 0 1 23.79 2.408c4.707 0 9.088 1.361 12.755 3.706 1.134.724 2.638.486 3.474-.551l3.38-5.18c.298-.46.967-.52 1.327-.103ZM5.714 25.258c0 9.734 8.103 17.654 18.07 17.654 9.968 0 18.076-7.92 18.082-17.648 0-.314-.011-.633-.028-.946-.36-6.628-4.486-12.3-10.32-15.001a18.182 18.182 0 0 0-7.728-1.702 18.24 18.24 0 0 0-7.727 1.697c-5.836 2.7-9.962 8.367-10.321 15-.017.314-.028.627-.028.946Zm21.284-1.026 4.619 7.822a.482.482 0 0 1 0 .502.512.512 0 0 1-.448.254h-3.756a.525.525 0 0 1-.448-.254l-2.467-4.176-2.75 4.192a.518.518 0 0 1-.436.232h-3.811a.522.522 0 0 1-.46-.264.5.5 0 0 1 .023-.519l5.083-7.573-3.789-6.218a.492.492 0 0 1-.005-.508.52.52 0 0 1 .453-.26h3.784a.52.52 0 0 1 .448.25l3.96 6.52Z"
fill="#1EB4D4"
/>
</svg>
);
export default SvgHasura;

View File

@@ -0,0 +1,26 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgHeadless = ({
withBrandColor = true,
...props
}: SVGProps<SVGSVGElement> & { withBrandColor?: boolean }) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={48}
height={48}
viewBox="0 0 48 48"
fill="none"
{...props}
>
<path
className={
withBrandColor ? "text-gray-800 dark:text-gray-0" : "inherit"
}
fill="currentColor"
d="M35.828 9.723a5.008 5.008 0 0 1-.818 4.29l.006.003-8.426 12.441a10.947 10.947 0 0 0-6.803-3.925l6.57-13.51.006.003a5.026 5.026 0 0 1 9.465.698ZM18.826 26.295a6.482 6.482 0 0 1 4.983 2.874c.531.801.892 1.74 1.017 2.78a6.43 6.43 0 0 1-3.861 6.683L13.073 42l-1.027-8.513a6.43 6.43 0 0 1 3.862-6.683 6.406 6.406 0 0 1 2.918-.51ZM38.586 16.586a2 2 0 0 0 0 2.828L43.172 24l-4.586 4.586a2 2 0 1 0 2.828 2.828l6-6a2 2 0 0 0 0-2.828l-6-6a2 2 0 0 0-2.828 0ZM9.414 19.414a2 2 0 1 0-2.828-2.828l-6 6a2 2 0 0 0 0 2.828l6 6a2 2 0 1 0 2.828-2.828L4.828 24l4.586-4.586Z"
/>
</svg>
);
export default SvgHeadless;

View File

@@ -0,0 +1,38 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgHookForm = (props: SVGProps<SVGSVGElement>) => (
<svg
width={48}
height={48}
viewBox="0 0 48 48"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<rect width={48} height={48} rx={8} fill="#EC5990" />
<path
d="M31.746 22.666a.345.345 0 0 0-.246-.103h-6.111a.345.345 0 0 0-.246.103.354.354 0 0 0 0 .497.345.345 0 0 0 .246.103H31.5c.092 0 .18-.037.246-.103a.354.354 0 0 0 0-.497ZM22.663 22.563h-6.111a.345.345 0 0 0-.245.103.354.354 0 0 0 0 .497.345.345 0 0 0 .245.103h6.111c.092 0 .18-.037.246-.103a.354.354 0 0 0 0-.497.345.345 0 0 0-.246-.103ZM31.326 30.857c.093 0 .18.037.246.103a.354.354 0 0 1 0 .498.345.345 0 0 1-.245.103h-6.129a.345.345 0 0 1-.245-.103.354.354 0 0 1 0-.498.345.345 0 0 1 .245-.103h6.128ZM16.361 30.857h6.129c.092 0 .18.037.245.103a.354.354 0 0 1 0 .498.345.345 0 0 1-.245.103H16.36a.345.345 0 0 1-.245-.103.354.354 0 0 1 0-.498.345.345 0 0 1 .245-.103Z"
fill="#fff"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M32.18 11.09h-5.354a3.004 3.004 0 0 0-1.075-1.512 2.939 2.939 0 0 0-3.498 0 3.004 3.004 0 0 0-1.076 1.513H15.82a3.794 3.794 0 0 0-2.7 1.134A3.897 3.897 0 0 0 12 14.962v20.167c0 1.027.402 2.011 1.119 2.737a3.794 3.794 0 0 0 2.7 1.134h16.362a3.794 3.794 0 0 0 2.7-1.134A3.897 3.897 0 0 0 36 35.13V14.962a3.897 3.897 0 0 0-1.119-2.737 3.794 3.794 0 0 0-2.7-1.134Zm-10.736.704c.081.002.16-.024.223-.075a.353.353 0 0 0 .125-.202c.11-.514.39-.973.794-1.303a2.252 2.252 0 0 1 2.849 0c.404.33.684.79.794 1.303a.344.344 0 0 0 .347.278h1.868V14.1c0 .28-.11.548-.305.746-.195.198-.46.31-.736.31h-6.788c-.277 0-.542-.112-.737-.31a1.063 1.063 0 0 1-.305-.746v-2.306h1.871ZM35.306 35.13c0 .84-.33 1.646-.916 2.24a3.104 3.104 0 0 1-2.21.927H15.82a3.104 3.104 0 0 1-2.21-.927 3.19 3.19 0 0 1-.916-2.24V14.962c0-.84.33-1.646.916-2.24a3.104 3.104 0 0 1 2.21-.928h3.058V14.1c0 .466.183.914.509 1.244.326.33.767.515 1.228.515h6.77c.46 0 .902-.185 1.228-.515.326-.33.509-.778.509-1.244v-2.306h3.059c.828 0 1.623.334 2.21.928.585.594.915 1.4.915 2.24v20.167Z"
fill="#fff"
/>
<path
d="M31.746 22.666a.345.345 0 0 0-.246-.103h-6.111a.345.345 0 0 0-.246.103.354.354 0 0 0 0 .497.345.345 0 0 0 .246.103H31.5c.092 0 .18-.037.246-.103a.354.354 0 0 0 0-.497ZM22.663 22.563h-6.111a.345.345 0 0 0-.245.103.354.354 0 0 0 0 .497.345.345 0 0 0 .245.103h6.111c.092 0 .18-.037.246-.103a.354.354 0 0 0 0-.497.345.345 0 0 0-.246-.103ZM31.326 30.857c.093 0 .18.037.246.103a.354.354 0 0 1 0 .498.345.345 0 0 1-.245.103h-6.129a.345.345 0 0 1-.245-.103.354.354 0 0 1 0-.498.345.345 0 0 1 .245-.103h6.128ZM16.361 30.857h6.129c.092 0 .18.037.245.103a.354.354 0 0 1 0 .498.345.345 0 0 1-.245.103H16.36a.345.345 0 0 1-.245-.103.354.354 0 0 1 0-.498.345.345 0 0 1 .245-.103Z"
stroke="#fff"
strokeWidth={0.5}
/>
<path
clipRule="evenodd"
d="M32.18 11.09h-5.354a3.004 3.004 0 0 0-1.075-1.512 2.939 2.939 0 0 0-3.498 0 3.004 3.004 0 0 0-1.076 1.513H15.82a3.794 3.794 0 0 0-2.7 1.134A3.897 3.897 0 0 0 12 14.962v20.167c0 1.027.402 2.011 1.119 2.737a3.794 3.794 0 0 0 2.7 1.134h16.362a3.794 3.794 0 0 0 2.7-1.134A3.897 3.897 0 0 0 36 35.13V14.962a3.897 3.897 0 0 0-1.119-2.737 3.794 3.794 0 0 0-2.7-1.134Zm-10.736.704c.081.002.16-.024.223-.075a.353.353 0 0 0 .125-.202c.11-.514.39-.973.794-1.303a2.252 2.252 0 0 1 2.849 0c.404.33.684.79.794 1.303a.344.344 0 0 0 .347.278h1.868V14.1c0 .28-.11.548-.305.746-.195.198-.46.31-.736.31h-6.788c-.277 0-.542-.112-.737-.31a1.063 1.063 0 0 1-.305-.746v-2.306h1.871ZM35.306 35.13c0 .84-.33 1.646-.916 2.24a3.104 3.104 0 0 1-2.21.927H15.82a3.104 3.104 0 0 1-2.21-.927 3.19 3.19 0 0 1-.916-2.24V14.962c0-.84.33-1.646.916-2.24a3.104 3.104 0 0 1 2.21-.928h3.058V14.1c0 .466.183.914.509 1.244.326.33.767.515 1.228.515h6.77c.46 0 .902-.185 1.228-.515.326-.33.509-.778.509-1.244v-2.306h3.059c.828 0 1.623.334 2.21.928.585.594.915 1.4.915 2.24v20.167Z"
stroke="#fff"
strokeWidth={0.5}
/>
</svg>
);
export default SvgHookForm;

View File

@@ -0,0 +1,22 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const SvgHygraph = (props: SVGProps<SVGSVGElement>) => (
<svg
width={48}
height={41}
viewBox="0 0 19 32"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
className={clsx("text-[#081026] dark:text-white", props.className)}
>
<path
d="M15.0597 4.30294L11.2949 6.4298L7.53014 8.55608L3.76478 10.6829V23.4429L7.53014 21.3167L11.2943 19.1898V14.9367L7.53014 17.0629V12.8098L11.2943 10.6829L15.0597 8.55666V21.3167L11.2949 23.4429L7.53014 25.5698L3.7642 27.6967L0 29.8229L3.76478 31.9498L7.53014 29.8229L11.2943 27.6967L15.0603 25.5698L18.8256 23.4435V2.17608L15.0597 0.0498047V4.30294Z"
fill="currentColor"
/>
</svg>
);
export default SvgHygraph;

View File

@@ -0,0 +1,55 @@
export { default as Ably } from "./ably";
export { default as Airtable } from "./airtable";
export { default as Antd } from "./antd";
export { default as Appwrite } from "./appwrite";
export { default as Chakra } from "./chakra";
export { default as Directus } from "./directus";
export { default as Dp } from "./dp";
export { default as Elide } from "./elide";
export { default as ElideGraphql } from "./elide-graphql";
export { default as EntRefine } from "./entrefine";
export { default as Firebase } from "./firebase";
export { default as Graphql } from "./graphql";
export { default as Hasura } from "./hasura";
export { default as Headless } from "./headless";
export { default as HookForm } from "./hook-form";
export { default as Hygraph } from "./hygraph";
export { default as JSONApi } from "./json-api";
export { default as Kbar } from "./kbar";
export { default as Kinde } from "./kinde";
export { default as Mantine } from "./mantine";
export { default as Medusa } from "./medusa";
export { default as Mui } from "./mui";
export { default as Nest } from "./nest";
export { default as NestQuery } from "./nest-query";
export { default as Nextjs } from "./nextjs";
export { default as React } from "./react";
export { default as Remix } from "./remix";
export { default as Rest } from "./rest";
export { default as Sanity } from "./sanity";
export { default as ShadCnUI } from "./shadcn-ui";
export { default as SQLite } from "./sqlite";
export { default as Strapi } from "./strapi";
export { default as StrapiWithText } from "./strapi-with-text";
export { default as Supabase } from "./supabase";
export { default as SupabaseWithText } from "./supabase-with-text";
export { default as TailwindCss } from "./tailwindcss";
export { default as UseGenerated } from "./usegenerated";
export { default as SlackIcon } from "./slack";
export { default as Atlassian } from "./atlassian";
export { default as AuthJs } from "./auth-js";
export { default as Auth0 } from "./auth0";
export { default as AwsCognito } from "./aws-cognito";
export { default as AzureActiveDirectory } from "./azure-active-directory";
export { default as Clerk } from "./clerk";
export { default as Expo } from "./expo";
export { default as Google } from "./google";
export { default as Okta } from "./okta";
export { default as MongoDB } from "./mongodb";
export { default as MsSqlServer } from "./ms-sql-server";
export { default as MySql } from "./mysql";
export { default as PostgreSql } from "./postgresql";
export { default as Oracle } from "./oracle";
export { default as RestWithoutText } from "./rest-without-text";
export { default as CustomAuth } from "./custom-auth";
export { default as Vite } from "./vite";

View File

@@ -0,0 +1,28 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const SvgJSONApi = (props: SVGProps<SVGSVGElement>) => (
<svg
width="512"
height="512"
viewBox="0 0 512 512"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
className={clsx("text-[#081026] dark:text-white", props.className)}
>
<g
transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)"
fill="currentColor"
stroke="none"
>
<path d="M1067 4574 c-1 -1 -42 -4 -92 -7 -177 -12 -298 -59 -390 -152 -81 -80 -117 -161 -141 -315 -4 -25 -8 -268 -9 -540 -1 -429 -4 -503 -19 -559 -31 -118 -101 -199 -202 -235 l-37 -12 1 -115 c1 -171 1 -169 16 -169 27 0 103 -40 138 -73 39 -36 72 -94 82 -142 3 -16 9 -41 12 -55 3 -14 7 -245 9 -515 3 -526 5 -561 36 -675 70 -257 238 -358 607 -364 114 -2 132 -1 133 13 2 74 0 273 -4 277 -2 3 -38 7 -78 9 -158 10 -241 37 -286 95 -22 27 -52 116 -59 176 -3 32 -8 274 -9 539 -2 459 -3 483 -24 554 -12 41 -33 93 -47 116 -29 50 -116 135 -163 160 l-33 17 53 35 c110 71 174 164 199 288 9 42 14 212 15 555 2 272 5 511 9 530 9 61 33 127 55 159 24 33 106 77 161 85 19 3 46 8 60 11 14 3 53 6 87 7 l63 2 1 38 c0 21 0 76 0 123 0 149 9 133 -72 137 -39 2 -71 2 -72 2z" />
<path d="M3842 4566 c-8 -14 -9 -258 -1 -276 5 -11 26 -16 76 -18 128 -5 226 -33 275 -80 32 -30 64 -109 73 -179 4 -26 8 -264 9 -528 2 -264 6 -491 10 -505 3 -14 8 -37 11 -51 22 -117 92 -218 203 -290 l44 -28 -30 -15 c-63 -33 -154 -129 -184 -193 -48 -107 -54 -183 -56 -703 -1 -261 -4 -486 -7 -500 -14 -72 -19 -88 -35 -120 -32 -62 -90 -101 -171 -115 -19 -3 -41 -8 -49 -10 -9 -3 -48 -7 -89 -9 -40 -3 -75 -7 -78 -10 -9 -9 -10 -259 -1 -277 6 -14 26 -16 142 -13 249 6 408 59 504 168 37 43 86 143 101 211 6 28 14 61 17 75 3 14 7 255 9 535 2 281 6 521 8 535 24 134 98 236 200 275 l46 17 3 113 c4 147 0 167 -34 176 -69 18 -142 86 -177 163 -41 88 -43 126 -46 646 -2 278 -6 516 -9 530 -3 14 -11 50 -17 80 -6 30 -28 91 -48 135 -64 137 -177 216 -356 250 -89 16 -334 24 -343 11z" />
<path d="M2809 4496 c-126 -27 -207 -136 -197 -265 7 -95 61 -175 145 -217 55 -27 174 -26 229 3 130 69 183 220 119 342 -37 73 -120 131 -205 144 -19 3 -60 0 -91 -7z" />
<path d="M2398 3759 c-63 -10 -117 -44 -134 -85 -19 -44 -15 -117 7 -153 40 -66 97 -77 244 -47 107 21 164 12 192 -31 39 -59 42 -139 39 -1143 -2 -531 -6 -976 -9 -990 -3 -14 -8 -42 -11 -63 -17 -111 -79 -234 -147 -288 -70 -55 -151 -81 -269 -85 -93 -3 -112 0 -165 22 -33 13 -71 33 -83 43 -21 15 -22 19 -9 32 32 33 60 104 60 154 0 110 -81 192 -197 200 -136 9 -246 -104 -248 -256 -3 -209 133 -374 373 -452 147 -48 321 -53 490 -13 260 60 455 256 529 529 33 124 38 224 39 927 2 628 5 849 16 1125 2 55 7 189 10 298 l7 197 -26 34 c-14 19 -38 38 -53 44 -30 10 -124 8 -208 -6 -27 -4 -70 -7 -95 -7 -58 2 -293 17 -300 19 -3 1 -26 -1 -52 -5z" />
</g>
</svg>
);
export default SvgJSONApi;

View File

@@ -0,0 +1,59 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgKbar = (props: SVGProps<SVGSVGElement>) => (
<svg
width={49}
height={48}
viewBox="0 0 49 48"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<rect
x={1.136}
y={15.53}
width={34.228}
height={34.228}
rx={5.99}
transform="rotate(-24.868 1.136 15.53)"
className="fill-[#fff] stroke-[#2A2A42] dark:fill-[#2A2A42] dark:stroke-[#fff]"
strokeWidth={1.711}
/>
<rect
x={4.402}
y={13.745}
width={34.228}
height={34.228}
rx={5.99}
transform="rotate(-17.324 4.402 13.745)"
className="fill-[#fff] stroke-[#2A2A42] dark:fill-[#2A2A42] dark:stroke-[#fff]"
strokeWidth={1.711}
/>
<rect
x={8.077}
y={11.985}
width={34.228}
height={34.228}
rx={5.99}
transform="rotate(-9.47 8.077 11.985)"
className="fill-[#fff] stroke-[#2A2A42] dark:fill-[#2A2A42] dark:stroke-[#fff]"
strokeWidth={1.711}
/>
<rect
x={12.927}
y={11.215}
width={34.228}
height={34.228}
rx={5.99}
className="fill-[#fff] stroke-[#2A2A42] dark:fill-[#2A2A42] dark:stroke-[#fff]"
strokeWidth={1.711}
/>
<path
d="M37.275 25.84a3.89 3.89 0 1 0-3.889-3.89v1.945h-5.835V21.95a3.89 3.89 0 1 0-3.889 3.89h1.945v5.834h-1.945a3.89 3.89 0 1 0 3.89 3.89v-1.945h5.834v2.475a3.363 3.363 0 0 0 3.36 3.36h.53a3.89 3.89 0 1 0 0-7.78H35.33V25.84h1.944Zm-1.944-3.89a1.944 1.944 0 1 1 1.944 1.945h-1.944V21.95Zm-11.669 1.945a1.944 1.944 0 1 1 1.945-1.945v1.945h-1.945Zm1.945 11.669a1.944 1.944 0 1 1-1.945-1.945h1.945v1.945Zm11.668-1.945a1.946 1.946 0 0 1 0 3.89h-.53a1.415 1.415 0 0 1-1.414-1.415v-2.475h1.944Zm-3.89-1.945h-5.834V25.84h5.835v5.834Z"
className="fill-[#2A2A42] dark:fill-[#fff]"
/>
</svg>
);
export default SvgKbar;

View File

@@ -0,0 +1,23 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const SvgKinde = (props: SVGProps<SVGSVGElement>) => (
<svg
width={64}
height={21}
viewBox="0 0 86 28"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
className={clsx("text-[#081026] dark:text-white", props.className)}
>
<path
fill="currentColor"
fillRule="evenodd"
d="M20.472 27.722c-1.742 0-3.324.011-4.905-.016-.18-.003-.392-.193-.527-.349-3.457-4.01-6.906-8.026-10.356-12.04-.112-.13-.227-.257-.434-.49v12.856H0V.038h4.207V12.72c.23-.255.356-.384.468-.523C7.818 8.29 10.963 4.382 14.095.465c.26-.326.522-.474.955-.465 1.462.029 2.925.011 4.55.011L8.223 13.661l12.248 14.06m41.909-9.585c-.01-1.28-.213-2.265-.635-3.207-1.708-3.81-6.626-4.617-9.343-1.533-1.934 2.196-2.174 5.803-.546 8.233 1.692 2.526 4.8 3.372 7.35 1.937 2.207-1.242 3.08-3.26 3.173-5.43m-.445-8.32V.08h3.97v27.666c-.911 0-1.826.01-2.74-.014-.097-.003-.216-.196-.278-.323-.247-.508-.475-1.025-.734-1.59-1.19 1.145-2.578 1.756-4.14 2.033-4.68.83-9.29-1.881-10.669-6.383-1.15-3.751-.743-7.312 1.817-10.431 2.64-3.217 7.465-4.233 11.02-2.385.603.314 1.14.753 1.754 1.164m20.182 6.486c.014-2.515-2.464-4.752-5.276-4.797-2.801-.045-5.216 2.137-5.278 4.797h10.554Zm-10.576 3.34c.099 1.978 1.762 3.888 3.83 4.397 2.237.55 4.16.02 5.712-1.711.114-.127.3-.27.454-.272 1.303-.022 2.606-.013 3.98-.013-.503 1.327-1.212 2.454-2.173 3.418-1.835 1.841-4.11 2.557-6.679 2.51-4.803-.087-8.703-3.621-9.285-8.37-.333-2.723.015-5.309 1.553-7.626C70.974 8.9 73.91 7.44 77.613 7.83c3.646.383 6.127 2.455 7.532 5.755.79 1.853 1.09 3.801.657 5.81-.014.064-.039.127-.075.247H71.54Zm-26.29 8.085h-3.983v-.598c-.001-3.634.012-7.268-.01-10.902-.01-2.01-1.443-3.913-3.324-4.509-2.724-.863-5.697.973-6.176 3.825a7.26 7.26 0 0 0-.09 1.182c-.006 3.445-.004 6.89-.004 10.335v.653h-3.956V7.992c.9 0 1.8-.012 2.698.015.112.004.253.201.32.338.249.505.473 1.022.724 1.575 1.977-1.847 4.321-2.366 6.862-2.09 3.297.36 6.053 2.945 6.704 6.221.15.755.24 1.534.244 2.303.026 3.652.012 7.303.012 10.954 0 .12-.012.24-.022.42m-23.752 0h3.943V8.005h-3.943zM25.914 2.48c-.003 1.327-1.124 2.425-2.465 2.415-1.303-.01-2.428-1.117-2.444-2.403C20.99 1.198 22.144.049 23.463.046c1.335-.004 2.454 1.108 2.451 2.433"
></path>
</svg>
);
export default SvgKinde;

View File

@@ -0,0 +1,35 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgMantine = ({
withBrandColor = true,
...props
}: SVGProps<SVGSVGElement> & { withBrandColor?: boolean }) => (
<svg
width={64}
height={64}
viewBox="0 0 64 64"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
d="M64 32C64 14.327 49.673 0 32 0 14.327 0 0 14.327 0 32c0 17.673 14.327 32 32 32 17.673 0 32-14.327 32-32Z"
fill={withBrandColor ? "#339AF0" : "currentColor"}
/>
<path
d="M26.041 16.903a2.439 2.439 0 0 0-.133 2.703c.165.273.382.512.639.701 3.727 2.763 5.867 6.987 5.867 11.591 0 4.604-2.14 8.828-5.867 11.59a2.428 2.428 0 0 0-.506 3.402 2.422 2.422 0 0 0 1.598.958 2.441 2.441 0 0 0 1.81-.453 19.736 19.736 0 0 0 3.136-2.902h6.904a2.435 2.435 0 0 0 2.437-2.431 2.433 2.433 0 0 0-2.437-2.432h-3.81a19.218 19.218 0 0 0 1.606-7.732 19.218 19.218 0 0 0-1.606-7.731h3.812a2.434 2.434 0 0 0 2.437-2.432 2.433 2.433 0 0 0-2.437-2.432H32.59a19.74 19.74 0 0 0-3.138-2.904 2.433 2.433 0 0 0-1.807-.453c-.64.096-1.216.44-1.6.957h-.003Z"
className="text-white dark:text-gray-900"
fill={withBrandColor ? "#FFFFFF" : "currentColor"}
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M22.194 31.173a3.652 3.652 0 0 1 1.026-2.625 3.61 3.61 0 0 1 2.583-1.095 3.593 3.593 0 0 1 2.584 1.095 3.635 3.635 0 0 1 1.025 2.625 3.642 3.642 0 0 1-1.087 2.51 3.599 3.599 0 0 1-5.043 0 3.642 3.642 0 0 1-1.088-2.51Z"
className="text-white dark:text-gray-900"
fill={withBrandColor ? "#FFFFFF" : "currentColor"}
/>
</svg>
);
export default SvgMantine;

View File

@@ -0,0 +1,33 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgMedusa = (props: SVGProps<SVGSVGElement>) => (
<svg
width={45}
height={48}
viewBox="0 0 45 48"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
d="M39.024 7.792 28.14 1.538a11.49 11.49 0 0 0-11.487 0L5.718 7.792C2.207 9.842 0 13.645 0 17.697v12.556c0 4.102 2.207 7.854 5.718 9.905l10.885 6.304a11.49 11.49 0 0 0 11.486 0l10.885-6.304a11.38 11.38 0 0 0 5.718-9.905V17.697c.1-4.052-2.106-7.854-5.668-9.905ZM22.371 35.156c-6.17 0-11.185-5.003-11.185-11.156 0-6.153 5.015-11.156 11.185-11.156 6.17 0 11.236 5.003 11.236 11.156 0 6.153-5.016 11.156-11.236 11.156Z"
fill={`url(#medusa_svg__a-${props.id || ""})`}
/>
<defs>
<linearGradient
id={`medusa_svg__a-${props.id || ""}`}
x1={-38.338}
y1={39.298}
x2={52.789}
y2={16.332}
gradientUnits="userSpaceOnUse"
>
<stop offset={0.266} stopColor="#592EE1" />
<stop offset={1} stopColor="#B836D9" />
</linearGradient>
</defs>
</svg>
);
export default SvgMedusa;

View File

@@ -0,0 +1,27 @@
import * as React from "react";
import { SVGProps } from "react";
const MsSqlServer = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
viewBox="0 0 24 24"
fill="none"
{...props}
>
<g clipPath="url(#mongodb-aa)">
<path
fill="#13AA52"
d="M17.287 9.555c-1.264-5.58-4.252-7.414-4.573-8.115-.352-.494-.709-1.373-.709-1.373L11.98 0c-.036.495-.055.685-.522 1.184-.724.566-4.438 3.682-4.74 10.02-.282 5.912 4.27 9.435 4.885 9.884l.07.05v-.005c.004.03.196 1.408.33 2.867h.482c.114-1.032.283-2.056.509-3.07l.039-.025c.275-.197.538-.412.786-.643l.028-.025a11.341 11.341 0 0 0 3.638-8.464 13.569 13.569 0 0 0-.198-2.218ZM11.95 17.75s0-8.29.274-8.29c.213 0 .49 10.695.49 10.695-.38-.045-.764-1.76-.764-2.405Z"
/>
</g>
<defs>
<clipPath id="mongodb-a">
<path fill="#fff" d="M0 0h24v24H0z" />
</clipPath>
</defs>
</svg>
);
export default MsSqlServer;

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,25 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgMui = ({
withBrandColor = true,
...props
}: SVGProps<SVGSVGElement> & { withBrandColor?: boolean }) => (
<svg
width={64}
height={56}
viewBox="0 0 64 56"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M55.111 11.506c0 .685.301 1.198.902 1.538.602.336 1.197.328 1.79-.024l5.333-3.18c.576-.345.864-.848.864-1.517V1.84c-.001-.69-.301-1.199-.902-1.538-.6-.34-1.197-.329-1.79.024l-5.333 3.18c-.575.345-.863.848-.864 1.516v6.484ZM53.943 37.57c.593-.34.89-.848.893-1.527l.032-10.231c.002-.681.299-1.192.892-1.531l5.578-3.186c.275-.156.57-.235.888-.235a1.766 1.766 0 0 1 1.537.886c.158.271.237.566.237.882V41.23c0 .683-.297 1.194-.892 1.534L42.061 54.785c-.588.337-1.177.337-1.766 0l-16.519-9.392c-.597-.34-.896-.852-.896-1.537v-9.38c0-.01.012-.017.023-.01.01.004.021 0 .021-.013v-.01a.02.02 0 0 1 .011-.018l13.604-7.774c.011-.007.006-.027-.007-.027-.01 0-.015-.004-.015-.013l.027-9.197c.003-.682-.292-1.194-.887-1.537-.591-.34-1.186-.343-1.779 0L23.767 21.67c-.59.34-1.183.34-1.774 0L11.85 15.864a1.74 1.74 0 0 0-.888-.237 1.771 1.771 0 0 0-1.538.885 1.721 1.721 0 0 0-.239.883v16.62c0 .316-.078.607-.237.883a1.763 1.763 0 0 1-1.534.885 1.76 1.76 0 0 1-.888-.23L.896 32.355C.299 32.012 0 31.5 0 30.815l.05-29.05A1.778 1.778 0 0 1 2.713.235l19.282 11.014c.59.335 1.18.335 1.77 0L43.04.235a1.773 1.773 0 0 1 1.777.006c.275.157.49.374.65.644.158.275.236.57.236.886v29.057c0 .683-.297 1.191-.89 1.533l-10.095 5.783c-.595.339-.89.852-.89 1.533.002.683.3 1.194.898 1.53l5.569 3.154c.589.336 1.176.332 1.764 0l11.884-6.79v-.001Z"
fill={withBrandColor ? "#007FFF" : "currentColor"}
/>
</svg>
);
export default SvgMui;

View File

@@ -0,0 +1,27 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const MySQL = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
viewBox="0 0 24 24"
fill="none"
{...props}
className={clsx("dark:text-gray-0 text-[#00758F]", props.className)}
>
<g fill="currentColor" clipPath="url(#mysql-a)">
<path d="M22.099 18.437c-1.305-.033-2.317.098-3.165.457-.244.097-.636.098-.669.407.13.13.147.343.261.522.196.326.539.767.849.995.342.261.685.522 1.043.75.637.392 1.354.62 1.974 1.012.36.228.718.522 1.077.766.179.13.293.343.522.424v-.048c-.115-.147-.147-.36-.261-.522-.163-.163-.327-.31-.49-.473a7.736 7.736 0 0 0-1.696-1.648c-.522-.359-1.664-.848-1.876-1.451l-.032-.033c.358-.033.782-.163 1.125-.261.555-.147 1.06-.114 1.631-.261.261-.065.522-.147.783-.228v-.147c-.294-.294-.506-.685-.816-.962a21.738 21.738 0 0 0-2.69-2.007c-.506-.326-1.159-.538-1.697-.815-.196-.098-.522-.147-.636-.31-.294-.359-.457-.832-.669-1.256a41.208 41.208 0 0 1-1.338-2.838c-.293-.636-.472-1.272-.831-1.86-1.68-2.772-3.507-4.452-6.312-6.1-.604-.342-1.322-.489-2.088-.668-.408-.017-.816-.05-1.224-.066-.26-.114-.522-.424-.75-.57C3.194.657.797-.615.112 1.065c-.44 1.06.652 2.104 1.027 2.642.278.376.636.8.832 1.224.114.277.147.57.261.864.261.718.506 1.517.848 2.186.18.342.375.701.604 1.011.13.18.359.261.408.555-.229.326-.245.815-.376 1.223-.587 1.843-.358 4.127.473 5.48.261.408.881 1.305 1.713.963.734-.294.57-1.224.783-2.04.049-.195.016-.325.114-.456v.033c.228.456.457.897.669 1.354.505.799 1.386 1.63 2.12 2.185.392.294.702.8 1.19.979v-.05h-.032c-.098-.146-.245-.211-.375-.326a7.904 7.904 0 0 1-.848-.978C8.838 17 8.234 15.99 7.696 14.946c-.26-.505-.49-1.06-.701-1.565-.098-.196-.098-.49-.261-.588-.245.36-.604.67-.783 1.11-.31.7-.343 1.565-.457 2.462-.065.017-.032 0-.065.033-.522-.13-.701-.669-.897-1.125-.49-1.158-.571-3.018-.147-4.355.114-.343.604-1.42.408-1.746-.098-.31-.424-.489-.604-.733a6.572 6.572 0 0 1-.587-1.044c-.391-.914-.587-1.925-1.011-2.838-.196-.425-.538-.865-.816-1.256-.31-.44-.652-.75-.897-1.273C.797 1.85.683 1.555.813 1.36c.033-.13.098-.18.228-.212.212-.18.816.049 1.028.146.603.245 1.11.473 1.615.816.228.163.473.473.766.555h.343c.522.114 1.109.032 1.598.179.865.277 1.648.685 2.35 1.125a14.47 14.47 0 0 1 5.088 5.579c.196.375.277.717.457 1.109.342.799.766 1.614 1.109 2.397.342.767.668 1.55 1.158 2.186.244.342 1.223.522 1.663.701.327.147.832.278 1.126.457.555.342 1.109.734 1.631 1.11.261.195 1.076.603 1.126.929Z" />
<path d="M5.454 4.097c-.277 0-.472.034-.668.083v.033h.033c.13.266.358.448.521.68.13.265.245.53.375.795l.033-.033c.228-.166.342-.43.342-.829-.098-.115-.114-.231-.196-.347-.097-.166-.31-.25-.44-.382Z" />
</g>
<defs>
<clipPath id="mysql-a">
<path fill="currentColor" d="M0 0h24v24H0z" />
</clipPath>
</defs>
</svg>
);
export default MySQL;

View File

@@ -0,0 +1,146 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgNestQuery = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
fillRule="evenodd"
clipRule="evenodd"
strokeLinecap="round"
strokeLinejoin="round"
xmlSpace="preserve"
width={48}
height={48}
version="1.1"
viewBox="0 0 500 500"
{...props}
className={props.className}
>
<g id="Layer 2">
<path
stroke="#25c2a0"
strokeWidth="15"
d="M10.0732+149.092C9.87799+124.047+31.7197+103.907+58.8581+104.107C85.9964+104.307+108.155+124.772+108.35+149.817C108.545+174.861+86.7032+195.002+59.5649+194.802C32.4265+194.602+10.2684+174.137+10.0732+149.092Z"
fill="#25c2a0"
strokeLinecap="round"
opacity="1"
strokeLinejoin="round"
/>
<path
stroke="#25c2a0"
strokeWidth="15"
d="M492.13+351.392C492.325+376.436+470.483+396.577+443.345+396.377C416.207+396.177+394.049+375.712+393.853+350.667C393.658+325.622+415.5+305.482+442.638+305.682C469.777+305.882+491.935+326.347+492.13+351.392Z"
fill="#25c2a0"
strokeLinecap="round"
opacity="1"
strokeLinejoin="round"
/>
<path
stroke="#25c2a0"
strokeWidth="15"
d="M58.8196+196.132L58.6133+288.458"
fill="none"
strokeLinecap="round"
opacity="1"
strokeLinejoin="round"
/>
<path
stroke="#25c2a0"
strokeWidth="15"
d="M443.384+304.352L443.59+212.026"
fill="none"
strokeLinecap="round"
opacity="1"
strokeLinejoin="round"
/>
<path
stroke="#25c2a0"
strokeWidth="15"
d="M466.119+106.796C488.984+118.455+496.984+146.63+483.988+169.728C470.993+192.825+441.922+202.098+419.057+190.44C396.192+178.781+388.192+150.606+401.187+127.508C414.183+104.411+443.254+95.1376+466.119+106.796Z"
fill="#25c2a0"
strokeLinecap="round"
opacity="1"
strokeLinejoin="round"
/>
<path
stroke="#25c2a0"
strokeWidth="15"
d="M36.0844+393.688C13.2195+382.029+5.219+353.854+18.2147+330.756C31.2105+307.658+60.2813+298.385+83.1462+310.044C106.011+321.702+114.012+349.878+101.016+372.975C88.0201+396.073+58.9493+405.346+36.0844+393.688Z"
fill="#25c2a0"
strokeLinecap="round"
opacity="1"
strokeLinejoin="round"
/>
<path
stroke="#25c2a0"
strokeWidth="15"
d="M397.458+126.244L313.605+82.4736"
fill="#25c2a0"
strokeLinecap="round"
opacity="1"
strokeLinejoin="round"
/>
<path
stroke="#25c2a0"
strokeWidth="15"
d="M104.745+374.24L188.598+418.01"
fill="none"
strokeLinecap="round"
opacity="1"
strokeLinejoin="round"
/>
<path
stroke="#25c2a0"
strokeWidth="15"
d="M229.317+13.8039C252.406+2.56722+280.694+12.6625+292.501+36.3524C304.308+60.0422+295.162+88.3557+272.074+99.5924C248.985+110.829+220.697+100.734+208.89+77.0439C197.083+53.3541+206.229+25.0406+229.317+13.8039Z"
fill="#25c2a0"
strokeLinecap="round"
opacity="1"
strokeLinejoin="round"
/>
<path
stroke="#25c2a0"
strokeWidth="15"
d="M272.886+486.68C249.797+497.916+221.509+487.821+209.702+464.131C197.895+440.441+207.041+412.128+230.129+400.891C253.218+389.655+281.506+399.75+293.313+423.44C305.12+447.13+295.975+475.443+272.886+486.68Z"
fill="#25c2a0"
strokeLinecap="round"
opacity="1"
strokeLinejoin="round"
/>
<path
stroke="#25c2a0"
strokeWidth="15"
d="M207.33+76.9833L121.806+117.602"
fill="none"
strokeLinecap="round"
opacity="1"
strokeLinejoin="round"
/>
<path
stroke="#25c2a0"
strokeWidth="15"
d="M294.873+423.5L380.397+382.882"
fill="none"
strokeLinecap="round"
opacity="1"
strokeLinejoin="round"
/>
</g>
<g id="Layer 3">
<g opacity="1">
<path
d="M141.487+323.423L124.397+323.423L124.397+178.306L141.487+178.306L215.706+294.321L216.487+294.321L216.487+178.306L233.382+178.306L233.382+323.423L216.487+323.423L142.073+207.407L141.487+207.407L141.487+323.423Z"
opacity="1"
fill="#25c2a0"
/>
<path
d="M268.733+261.802L268.733+239.927C268.733+226.515+271.11+214.894+275.862+205.063C280.615+195.233+287.288+187.811+295.882+182.798C304.476+177.785+314.534+175.278+326.058+175.278C343.636+175.278+357.617+180.959+368.001+192.319C378.385+203.68+383.577+219.549+383.577+239.927L383.577+261.802C383.577+283.937+377.392+300.766+365.022+312.29L385.433+340.122L365.706+340.122L351.839+321.177C344.157+324.692+335.563+326.45+326.058+326.45C308.545+326.45+294.612+320.77+284.261+309.409C273.909+298.048+268.733+282.179+268.733+261.802ZM285.628+240.122L285.628+261.606C285.628+268.117+286.295+274.09+287.63+279.526C288.964+284.962+290.853+289.601+293.294+293.442C295.735+297.283+298.616+300.522+301.936+303.159C305.257+305.796+308.951+307.765+313.02+309.067C317.089+310.369+321.435+311.02+326.058+311.02C331.982+311.02+337.321+310.011+342.073+307.993L325.862+285.825L345.784+285.825L355.061+298.618C362.809+289.829+366.683+277.492+366.683+261.606L366.683+240.122C366.683+224.106+362.923+211.867+355.403+203.403C347.884+194.94+338.102+190.708+326.058+190.708C320.198+190.708+314.876+191.717+310.091+193.735C305.306+195.753+301.041+198.797+297.298+202.866C293.554+206.935+290.673+212.16+288.655+218.54C286.637+224.92+285.628+232.114+285.628+240.122Z"
opacity="1"
fill="#25c2a0"
/>
</g>
</g>
</svg>
);
export default SvgNestQuery;

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,96 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgNextjs = (props: SVGProps<SVGSVGElement>) => (
<svg
width={64}
height={64}
viewBox="0 0 64 64"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<g clipPath={`url(#nextjs_svg-${props.id}__a)`}>
<mask
id={`nextjs_svg-${props.id}__b`}
style={{
maskType: "alpha",
}}
maskUnits="userSpaceOnUse"
x={0}
y={0}
width={64}
height={64}
>
<path
d="M32 64c17.673 0 32-14.327 32-32C64 14.327 49.673 0 32 0 14.327 0 0 14.327 0 32c0 17.673 14.327 32 32 32Z"
fill="#000"
/>
</mask>
<g mask={`url(#nextjs_svg-${props.id}__b)`}>
<path
d="M32 64c17.673 0 32-14.327 32-32C64 14.327 49.673 0 32 0 14.327 0 0 14.327 0 32c0 17.673 14.327 32 32 32Z"
fill="currentColor"
className="text-gray-1000 dark:text-gray-0"
/>
<path
d="M53.159 56.007 24.584 19.2H19.2v25.59h4.307V24.67l26.27 33.941a32.11 32.11 0 0 0 3.382-2.604Z"
fill={`url(#nextjs_svg-${props.id}__c)`}
/>
<path
d="M45.155 19.2H40.89v25.6h4.266V19.2Z"
fill={`url(#nextjs_svg-${props.id}__d)`}
/>
</g>
</g>
<defs>
<linearGradient
id={`nextjs_svg-${props.id}__c`}
x1={38.756}
y1={41.422}
x2={51.378}
y2={57.067}
gradientUnits="userSpaceOnUse"
>
<stop
stopColor="currentColor"
className="text-gray-0 dark:text-gray-1000"
/>
<stop
offset={1}
stopColor="currentColor"
className="text-gray-0 dark:text-gray-1000"
stopOpacity={0}
/>
</linearGradient>
<linearGradient
id={`nextjs_svg-${props.id}__d`}
x1={43.022}
y1={19.2}
x2={42.95}
y2={38}
gradientUnits="userSpaceOnUse"
>
<stop
stopColor="currentColor"
className="text-gray-0 dark:text-gray-1000"
/>
<stop
offset={1}
stopColor="currentColor"
className="text-gray-0 dark:text-gray-1000"
stopOpacity={0}
/>
</linearGradient>
<clipPath id={`nextjs_svg-${props.id}__a}`}>
<path
fill="currentColor"
className="text-gray-0 dark:text-gray-1000"
d="M0 0h64v64H0z"
/>
</clipPath>
</defs>
</svg>
);
export default SvgNextjs;

View File

@@ -0,0 +1,24 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const SvgOkta = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={25}
height={25}
viewBox="0 0 25 25"
fill="none"
{...props}
className={clsx("dark:text-gray-0 text-gray-1000", props.className)}
>
<path
fill="currentColor"
fillRule="evenodd"
d="m13.704.535-.494 6.08a6.198 6.198 0 0 0-.707-.04c-.3 0-.593.02-.88.067l-.28-2.947a.161.161 0 0 1 .16-.173h.5l-.24-2.98c-.007-.094.066-.174.153-.174h1.635c.093 0 .166.08.153.174V.535Zm-4.123.3c-.026-.087-.12-.14-.206-.107l-1.535.56a.156.156 0 0 0-.087.214l1.248 2.72-.474.173c-.086.033-.126.133-.086.213l1.274 2.674c.46-.254.96-.447 1.488-.567L9.588.835h-.007ZM5.82 2.528l3.529 4.974c-.447.293-.854.64-1.201 1.04l-2.115-2.08a.161.161 0 0 1 .007-.234l.387-.32-2.102-2.126a.156.156 0 0 1 .014-.234l1.247-1.046a.154.154 0 0 1 .227.026h.007Zm-2.962 2.88c-.074-.053-.18-.026-.227.054l-.814 1.413a.157.157 0 0 0 .067.22l2.708 1.28-.253.433a.153.153 0 0 0 .073.22l2.695 1.234c.194-.5.454-.967.774-1.387L2.857 5.408ZM.862 9.248c.013-.093.107-.146.194-.126l5.904 1.54c-.154.5-.24 1.026-.254 1.573l-2.955-.24a.154.154 0 0 1-.14-.187l.086-.493-2.982-.28c-.093-.007-.153-.093-.14-.187l.28-1.606.007.006Zm-.22 3.987c-.093.007-.153.093-.14.187l.287 1.606c.013.094.106.147.193.127l2.895-.753.087.493c.014.093.107.147.194.127l2.855-.787a5.774 5.774 0 0 1-.3-1.56l-6.078.56h.007Zm.947 4.227a.157.157 0 0 1 .067-.22l5.51-2.614c.207.494.487.954.82 1.367l-2.414 1.72a.157.157 0 0 1-.227-.047l-.253-.44-2.462 1.7c-.073.054-.18.027-.227-.053l-.82-1.413h.006Zm6.678-1.147-4.29 4.34a.156.156 0 0 0 .014.233l1.254 1.047c.073.06.174.047.227-.027l1.734-2.44.387.327c.074.06.18.047.234-.033l1.681-2.44a5.996 5.996 0 0 1-1.234-1.007h-.007Zm-.847 6.967a.156.156 0 0 1-.087-.214l2.542-5.546c.467.24.974.42 1.5.52l-.746 2.866a.157.157 0 0 1-.207.107l-.474-.173-.794 2.886c-.026.087-.12.14-.206.107l-1.535-.56.007.007Zm4.376-5.167-.493 6.08c-.007.093.066.173.153.173h1.634c.094 0 .167-.08.154-.173l-.24-2.98h.5c.093 0 .167-.08.16-.173l-.28-2.947c-.287.047-.58.067-.88.067-.24 0-.474-.014-.708-.047Zm5.884-16.46c.04-.087 0-.18-.087-.213L16.06.882c-.087-.034-.18.02-.207.106l-.794 2.887-.473-.173c-.087-.034-.18.02-.207.106l-.747 2.867a5.969 5.969 0 0 1 1.5.52l2.55-5.54Zm3.35 2.42-4.29 4.34a5.82 5.82 0 0 0-1.235-1.007l1.681-2.44a.163.163 0 0 1 .234-.033l.387.327 1.735-2.44a.155.155 0 0 1 .226-.027l1.255 1.047c.073.06.073.166.013.233h-.007Zm2.32 3.413a.153.153 0 0 0 .067-.22l-.82-1.413a.164.164 0 0 0-.227-.053l-2.462 1.7-.253-.434c-.047-.08-.154-.106-.227-.046l-2.415 1.72c.334.413.607.873.82 1.366l5.511-2.613.007-.007Zm.868 2.214.28 1.606a.161.161 0 0 1-.14.187l-6.077.567a5.725 5.725 0 0 0-.3-1.56l2.855-.787a.153.153 0 0 1 .193.127l.087.493 2.895-.753c.087-.02.18.033.194.126l.013-.006Zm-.274 5.9c.087.02.18-.034.194-.127l.28-1.607a.161.161 0 0 0-.14-.186l-2.982-.28.087-.494a.161.161 0 0 0-.14-.186l-2.956-.24a5.84 5.84 0 0 1-.253 1.573l5.904 1.54.006.007Zm-1.574 3.666a.164.164 0 0 1-.227.054l-5.023-3.467c.32-.42.58-.887.774-1.387l2.695 1.234c.087.04.12.14.073.22l-.253.433 2.708 1.28c.08.04.114.14.067.22l-.814 1.413Zm-6.718-2.046 3.53 4.973c.053.073.16.087.226.027l1.247-1.047a.161.161 0 0 0 .014-.233l-2.102-2.127.387-.32c.074-.06.074-.167.007-.233l-2.115-2.08c-.353.4-.754.753-1.2 1.04h.006Zm-.033 6.773c-.087.033-.18-.02-.207-.107l-1.615-5.88a5.719 5.719 0 0 0 1.488-.566l1.274 2.673c.04.087 0 .187-.086.213l-.474.174 1.248 2.72c.04.086 0 .18-.087.213l-1.534.56h-.007Z"
clipRule="evenodd"
/>
</svg>
);
export default SvgOkta;

View File

@@ -0,0 +1,27 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgOracle = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={25}
height={26}
viewBox="0 0 25 26"
fill="none"
{...props}
>
<g clipPath="url(#oracle-a)">
<path
fill="#E32124"
d="M7.882 20.882A7.85 7.85 0 0 1 0 13a7.85 7.85 0 0 1 7.882-7.882h9.236A7.85 7.85 0 0 1 25 13a7.85 7.85 0 0 1-7.882 7.882H7.882Zm8.997-2.787A5.08 5.08 0 0 0 21.974 13a5.08 5.08 0 0 0-5.095-5.096H8.121A5.08 5.08 0 0 0 3.025 13c0 2.787 2.31 5.096 5.096 5.096h8.758Z"
/>
</g>
<defs>
<clipPath id="oracle-a">
<path fill="#fff" d="M0 .5h25v25H0z" />
</clipPath>
</defs>
</svg>
);
export default SvgOracle;

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,42 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgReact = (props: SVGProps<SVGSVGElement>) => (
<svg
width={54}
height={48}
viewBox="0 0 54 48"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<g clipPath="url(#react_svg__a)">
<path
d="M26.976 28.808a4.808 4.808 0 1 0 0-9.616 4.808 4.808 0 0 0 0 9.616Z"
fill="#61DAFB"
/>
<path
d="M26.975 33.852c14.25 0 25.802-4.411 25.802-9.852 0-5.441-11.552-9.852-25.802-9.852S1.173 18.558 1.173 24c0 5.44 11.552 9.852 25.802 9.852Z"
stroke="#61DAFB"
strokeWidth={2.346}
/>
<path
d="M18.444 28.926c7.125 12.34 16.72 20.14 21.433 17.42 4.712-2.721 2.755-14.931-4.37-27.272-7.125-12.34-16.72-20.14-21.432-17.42-4.712 2.721-2.756 14.93 4.369 27.272Z"
stroke="#61DAFB"
strokeWidth={2.346}
/>
<path
d="M18.444 19.074c-7.125 12.341-9.081 24.55-4.37 27.271 4.713 2.72 14.309-5.078 21.434-17.42 7.125-12.34 9.08-24.55 4.369-27.27-4.712-2.72-14.308 5.078-21.433 17.42Z"
stroke="#61DAFB"
strokeWidth={2.346}
/>
</g>
<defs>
<clipPath id="react_svg__a">
<path fill="#fff" d="M0 0h53.95v48H0z" />
</clipPath>
</defs>
</svg>
);
export default SvgReact;

View File

@@ -0,0 +1,26 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const SvgRemix = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width={45}
height={52}
viewBox="0 0 45 52"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={clsx("dark:text-gray-0 text-[#273646]", className)}
{...props}
>
<path
d="M43.49 52c0-3.074 0-5.89-.467-11.899-.576-6.035-3.706-9.095-9.06-10.17C40.306 29.104 45 24.143 45 16.537 45 6.367 38.329 0 24.904 0H0v10.599h22.433c5.93 0 8.895 2.556 8.895 6.772 0 4.796-2.965 6.607-8.895 6.607H0V34.81h21.774c4.695 0 7.248 1.323 7.66 7.276.311 4.064.272 6.077.235 8.008V50.12a94.98 94.98 0 0 0-.024 1.88h13.844Z"
fill="currentColor"
/>
<path
d="M0 43.925V52h17.614v-5.168c0-1.086-.53-2.907-2.976-2.907H0Z"
fill="currentColor"
/>
</svg>
);
export default SvgRemix;

View File

@@ -0,0 +1,31 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const SvgRestWithoutText = ({
className,
...props
}: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={16}
height={14}
viewBox="0 0 16 14"
fill="none"
{...props}
className={clsx("dark:text-gray-100 text-[#273646]", className)}
>
<path
fill="currentColor"
fillRule="evenodd"
d="M10.24.333a.667.667 0 0 0-.632.456l-.258.772a.332.332 0 0 0-.016.084 2.99 2.99 0 0 0-.323.186.327.327 0 0 0-.072-.024l-.79-.163a.658.658 0 0 0-.704.32l-.423.739a.671.671 0 0 0 .078.775l.535.61a.402.402 0 0 0 .022.022l.017.015a3.051 3.051 0 0 0 0 .417.346.346 0 0 0-.04.037l-.534.61a.671.671 0 0 0-.078.775l.423.739a.658.658 0 0 0 .704.32l.79-.164a.293.293 0 0 0 .072-.023c.103.068.211.13.323.186a.332.332 0 0 0 .016.083l.258.772c.09.273.345.456.632.456h.853a.667.667 0 0 0 .633-.455l.257-.773a.38.38 0 0 0 .016-.083c.112-.056.22-.118.323-.186.023.01.047.018.072.023l.79.163a.659.659 0 0 0 .705-.32l.422-.738a.67.67 0 0 0-.077-.776l-.536-.609-.015-.016a.355.355 0 0 0-.024-.021 3.062 3.062 0 0 0 0-.417.33.33 0 0 0 .04-.038l.535-.609a.671.671 0 0 0 .077-.775l-.422-.739a.659.659 0 0 0-.705-.32l-.79.163a.325.325 0 0 0-.072.024A2.994 2.994 0 0 0 12 1.645a.34.34 0 0 0-.016-.084L11.725.79a.667.667 0 0 0-.632-.456h-.853Zm1.76 4a1.333 1.333 0 1 1-2.667 0 1.333 1.333 0 0 1 2.667 0Z"
clipRule="evenodd"
/>
<path
fill="currentColor"
d="M3.5 7.004A5.344 5.344 0 0 1 6 3.714v1.638a3.996 3.996 0 0 0-1.208 1.983l-.27 1.055-1.089-.054a1.889 1.889 0 0 0-.06-.002h-.044a2 2 0 0 0 .004 4h10a1.333 1.333 0 0 0 .334-2.626l-1.009-.26.009-1.115H14v.084a2.668 2.668 0 0 1-.667 5.25h-10a3.333 3.333 0 1 1 0-6.667h.055l.112.004Z"
/>
</svg>
);
export default SvgRestWithoutText;

View File

@@ -0,0 +1,24 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const SvgRest = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width={48}
height={40}
viewBox="0 0 48 40"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={clsx("dark:text-gray-100 text-[#273646]", className)}
{...props}
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="m40.155 2.777 1.012 1.332c.265.352.199.855-.153 1.121l-1.074.817c.195.52.32 1.074.371 1.64l1.223.168a.801.801 0 0 1 .684.903l-.227 1.66a.799.799 0 0 1-.902.684l-1.336-.184c-.239.52-.543.996-.903 1.422l.75.984a.802.802 0 0 1-.156 1.121l-1.332 1.012a.805.805 0 0 1-1.121-.152l-.817-1.074a6.282 6.282 0 0 1-1.644.37l-.168 1.223a.801.801 0 0 1-.903.684l-1.66-.226a.801.801 0 0 1-.684-.903l.184-1.336a6.439 6.439 0 0 1-1.422-.898l-.984.746a.802.802 0 0 1-1.122-.153l-1.011-1.332a.802.802 0 0 1 .152-1.12l1.074-.817a6.29 6.29 0 0 1-.37-1.641l-1.224-.168a.799.799 0 0 1-.683-.902l.226-1.66a.804.804 0 0 1 .903-.684l1.336.183a6.44 6.44 0 0 1 .898-1.422l-.746-.984a.797.797 0 0 1 .152-1.117l1.333-1.012a.802.802 0 0 1 1.12.152l.817 1.075a6.262 6.262 0 0 1 1.64-.372l.169-1.222a.804.804 0 0 1 .902-.688l1.66.227a.799.799 0 0 1 .684.902l-.183 1.336c.52.238.996.543 1.425.903l.985-.747a.803.803 0 0 1 1.125.149ZM11.59 26.22v-6.446h3.32c.617 0 1.086.05 1.41.16.325.106.59.3.786.586.199.29.3.637.3 1.047 0 .355-.078.668-.23.926a1.774 1.774 0 0 1-.629.633 2.382 2.382 0 0 1-.7.254c.24.082.411.156.516.238.075.055.18.168.317.34.137.172.23.308.277.402l.97 1.864h-2.251l-1.063-1.965c-.136-.254-.254-.422-.359-.497a.857.857 0 0 0-.488-.148h-.176v2.61h-2v-.004Zm7.024 11.223h-3.72l-.534 1.75h-3.352l3.996-10.622h3.594l3.98 10.622h-3.437l-.527-1.75Zm-.696-2.301-1.16-3.82-1.164 3.82h2.324Zm5.434-6.57h5.461c1.192 0 2.083.28 2.672.847.59.566.887 1.375.887 2.418 0 1.074-.324 1.914-.969 2.52-.644.605-1.633.906-2.957.906h-1.8v3.93h-3.294V28.571Zm3.293 4.539h.809c.637 0 1.086-.11 1.344-.332.258-.22.387-.504.387-.844a1.18 1.18 0 0 0-.336-.848c-.223-.23-.645-.348-1.262-.348h-.942v2.372Zm7.055-4.54h3.294v10.622H33.7V28.571Zm-20.11-6.18h.84c.09 0 .265-.031.527-.09a.523.523 0 0 0 .324-.203.587.587 0 0 0 .125-.375c0-.207-.066-.37-.199-.48-.133-.113-.379-.168-.742-.168h-.875v1.316Zm4.719-2.617h5.332v1.375H20.31v1.027h3.09v1.313h-3.09v1.27h3.43v1.457h-5.43v-6.442Zm5.903 4.313 1.89-.117c.04.308.125.539.25.699.207.258.5.39.88.39.28 0 .503-.066.656-.199a.605.605 0 0 0 .23-.465c0-.168-.074-.316-.219-.449-.144-.133-.484-.254-1.02-.375-.87-.195-1.491-.457-1.867-.781a1.569 1.569 0 0 1-.562-1.242c0-.333.098-.645.289-.938.191-.293.48-.527.867-.695.387-.168.914-.25 1.586-.25.824 0 1.45.152 1.883.46.43.31.688.794.77 1.465l-1.871.114c-.051-.293-.157-.508-.313-.637-.16-.133-.383-.2-.66-.2-.23 0-.406.052-.524.15a.453.453 0 0 0-.175.359c0 .101.05.191.144.277.094.082.313.164.664.238.871.188 1.496.38 1.871.57.375.192.653.43.82.716.173.28.259.601.259.953 0 .414-.114.793-.344 1.14a2.134 2.134 0 0 1-.957.793c-.41.18-.926.27-1.551.27-1.094 0-1.856-.211-2.278-.633-.422-.43-.66-.965-.718-1.613Zm6.137-4.313h6.059v1.594h-2.032v4.852h-1.992v-4.852H30.35v-1.594ZM23.646 4.476a12.38 12.38 0 0 0-2.152.024c-2.2.21-4.337 1.011-6.102 2.383-2.043 1.582-3.594 3.949-4.192 7.086l-.187.98-.977.172c-.957.168-1.813.399-2.563.692a8.568 8.568 0 0 0-1.941 1.039 6.437 6.437 0 0 0-1.176 1.094c-1.027 1.23-1.504 2.773-1.492 4.336a7.84 7.84 0 0 0 1.48 4.504 7.36 7.36 0 0 0 1.235 1.328 6.2 6.2 0 0 0 1.613.97c.34.14.703.257 1.082.35v2.927c-.781-.141-1.5-.352-2.172-.63a9.051 9.051 0 0 1-2.363-1.417 10.086 10.086 0 0 1-1.72-1.844A10.743 10.743 0 0 1 0 22.29c-.015-2.211.672-4.41 2.157-6.192a9.23 9.23 0 0 1 1.695-1.578 11.43 11.43 0 0 1 2.594-1.387 15.7 15.7 0 0 1 2.149-.656c.859-3.415 2.691-6.044 5.047-7.868 2.203-1.707 4.855-2.703 7.586-2.965a15.482 15.482 0 0 1 4.309.191 3.286 3.286 0 0 0-.074.391l-.004.023c-.028.223-.04.446-.028.672-.3.118-.582.278-.836.473l-.011.008c-.38.285-.7.652-.938 1.074Zm20.67 7.5a10.71 10.71 0 0 1 1.82 2.153c1.25 1.922 1.89 4.489 1.863 7-.027 2.465-.691 4.919-2.05 6.723-.887 1.176-2.024 2.137-3.388 2.9-.933.523-1.984.956-3.129 1.308v-3.028c.617-.23 1.192-.488 1.72-.781 1.026-.574 1.866-1.274 2.495-2.113.977-1.301 1.458-3.141 1.477-5.028.023-1.98-.461-3.969-1.402-5.414a8.109 8.109 0 0 0-1.247-1.497c.02-.195.028-.394.016-.593.3-.118.582-.278.836-.473l.012-.008c.402-.309.738-.7.976-1.148ZM34.407 5a3.293 3.293 0 0 1-.895 6.524 3.287 3.287 0 0 1-2.812-3.708A3.295 3.295 0 0 1 34.408 5Z"
fill="currentColor"
/>
</svg>
);
export default SvgRest;

View File

@@ -0,0 +1,27 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const SvgSanity = (props: SVGProps<SVGSVGElement>) => (
<svg
width={48}
height={48}
viewBox="0 0 30 30"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
className={clsx("text-[#081026] dark:text-white", props.className)}
>
<rect width={28} height={28} fill="#F03E2F" rx={3} />
<path
fill="#FFF"
d="M8.62 7.25c0 2.41 1.52 3.84 4.54 4.6l3.21.73c2.87.64 4.61 2.25 4.61 4.87a4.91 4.91 0 0 1-1.07 3.15c0-2.61-1.37-4.02-4.69-4.87l-3.15-.7c-2.52-.57-4.47-1.89-4.47-4.73a4.89 4.89 0 0 1 1.02-3.05z"
/>
<path
fill="#FFFFFFB3"
d="M17.94 16.8c1.37.87 1.97 2.07 1.97 3.8-1.13 1.42-3.12 2.22-5.46 2.22-3.94 0-6.7-1.9-7.3-5.21h3.78c.48 1.52 1.77 2.22 3.5 2.22 2.1 0 3.49-1.1 3.52-3.03M10.59 10.82a3.99 3.99 0 0 1-1.97-3.57c1.1-1.4 3-2.27 5.32-2.27 4 0 6.33 2.08 6.9 5H17.2c-.4-1.15-1.4-2.05-3.23-2.05-1.96 0-3.3 1.12-3.37 2.9"
/>
</svg>
);
export default SvgSanity;

View File

@@ -0,0 +1,25 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const ShadCnUI = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={25}
height={24}
viewBox="0 0 25 24"
fill="none"
{...props}
className={clsx(props.className, "dark:text-white text-gray-1000")}
>
<path
stroke="currentColor"
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth={1.5}
d="m20 12-7.5 7.5M18.5 3.75 4.25 18"
/>
</svg>
);
export default ShadCnUI;

View File

@@ -0,0 +1,32 @@
import * as React from "react";
import { SVGProps } from "react";
const SlackIcon = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={16}
height={16}
viewBox="0 0 16 16"
fill="none"
{...props}
>
<path
fill="#E01E5A"
d="M3.373 10.115a1.68 1.68 0 1 1-3.36 0c0-.93.75-1.682 1.68-1.682h1.68v1.682Zm.84 0a1.68 1.68 0 1 1 3.36 0v4.204a1.68 1.68 0 1 1-3.36 0v-4.204Z"
/>
<path
fill="#36C5F0"
d="M5.893 3.363a1.68 1.68 0 0 1-1.68-1.681 1.68 1.68 0 1 1 3.36 0v1.681h-1.68Zm0 .854c.93 0 1.68.751 1.68 1.681a1.68 1.68 0 0 1-1.68 1.682H1.68A1.68 1.68 0 0 1 0 5.898c0-.93.751-1.681 1.68-1.681h4.213Z"
/>
<path
fill="#2EB67D"
d="M12.627 5.898a1.68 1.68 0 1 1 3.36 0 1.68 1.68 0 0 1-1.68 1.682h-1.68V5.898Zm-.84 0a1.68 1.68 0 1 1-3.36 0V1.682a1.68 1.68 0 1 1 3.36 0v4.216Z"
/>
<path
fill="#ECB22E"
d="M10.107 12.637c.929 0 1.68.752 1.68 1.682a1.68 1.68 0 1 1-3.36 0v-1.682h1.68Zm0-.84a1.68 1.68 0 0 1-1.68-1.682c0-.93.75-1.682 1.68-1.682h4.213c.929 0 1.68.752 1.68 1.682a1.68 1.68 0 0 1-1.68 1.681h-4.213Z"
/>
</svg>
);
export default SlackIcon;

View File

@@ -0,0 +1,44 @@
import clsx from "clsx";
import * as React from "react";
import { SVGProps } from "react";
const SvgSQLite = (props: SVGProps<SVGSVGElement>) => (
<svg
width={48}
height={48}
viewBox="0 0 7 7"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
className={clsx("text-[#081026] dark:text-white", props.className)}
>
<defs>
<linearGradient
x1="2.983"
y1=".53"
x2="2.983"
y2="4.744"
id="A"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#97d9f6" offset="0%" />
<stop stopColor="#0f80cc" offset="92.024%" />
<stop stopColor="#0f80cc" offset="100%" />
</linearGradient>
</defs>
<path
d="M4.96.29H.847c-.276 0-.5.226-.5.5v4.536c0 .276.226.5.5.5h2.71c-.03-1.348.43-3.964 1.404-5.54z"
fill="#0f80cc"
/>
<path
d="M4.81.437H.847c-.196 0-.355.16-.355.355v4.205c.898-.345 2.245-.642 3.177-.628A28.93 28.93 0 0 1 4.811.437z"
fill="url(#A)"
/>
<path
d="M5.92.142c-.282-.25-.623-.15-.96.148l-.15.146c-.576.61-1.1 1.742-1.276 2.607a2.38 2.38 0 0 1 .148.426l.022.1.022.102s-.005-.02-.026-.08l-.014-.04a.461.461 0 0 0-.009-.022c-.038-.087-.14-.272-.187-.352a8.789 8.789 0 0 0-.103.321c.132.242.212.656.212.656s-.007-.027-.04-.12c-.03-.083-.176-.34-.21-.4-.06.22-.083.368-.062.404.04.07.08.2.115.324a7.52 7.52 0 0 1 .132.666l.005.062a6.11 6.11 0 0 0 .015.75c.026.313.075.582.137.726l.042-.023c-.09-.284-.128-.655-.112-1.084.025-.655.175-1.445.454-2.268C4.548 1.938 5.2.94 5.798.464c-.545.492-1.282 2.084-1.502 2.673-.247.66-.422 1.28-.528 1.873.182-.556.77-.796.77-.796s.29-.356.626-.865l-.645.172-.208.092s.53-.323.987-.47c.627-.987 1.31-2.39.622-3.002"
fill="#003b57"
/>
</svg>
);
export default SvgSQLite;

View File

@@ -0,0 +1,35 @@
import * as React from "react";
import { SVGProps } from "react";
const StrapiWithText = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={100}
height={24}
fill="none"
{...props}
>
<path
className="text-[#212067] dark:text-white"
fill="currentColor"
fillRule="evenodd"
d="M95.595 3.539c.408.409.89.613 1.445.613a2 2 0 0 0 1.47-.613c.408-.41.612-.893.612-1.45 0-.557-.204-1.044-.612-1.462A1.98 1.98 0 0 0 97.04 0c-.555 0-1.037.209-1.445.627-.407.418-.612.905-.612 1.462 0 .557.205 1.04.612 1.45ZM51.687 8.88a.077.077 0 0 1-.078.077h-2.863v5.432c0 .453.113.784.338.992.226.21.555.327.99.353.396.024.88.022 1.451-.005l.08-.004a.077.077 0 0 1 .082.077v2.905c0 .04-.03.073-.07.077l-.052.006c-2.243.24-3.83.018-4.758-.666-.946-.697-1.419-1.942-1.419-3.735V8.958h-2.187a.077.077 0 0 1-.077-.077V5.797c0-.043.035-.077.077-.077h2.187V3.563c0-.061.037-.117.093-.142l3.156-1.394a.077.077 0 0 1 .109.071V5.72h2.863c.043 0 .078.034.078.077v3.084Zm6.088-.916c.312-.836.829-1.462 1.549-1.88a4.661 4.661 0 0 1 2.329-.626c.043 0 .078.034.078.077V9.08c0 .074-.064.13-.138.124-.968-.088-1.837.126-2.608.641-.806.54-1.21 1.437-1.21 2.69V18.7a.077.077 0 0 1-.077.078h-3.203a.077.077 0 0 1-.077-.078V5.797c0-.043.034-.078.077-.078h3.203c.042 0 .077.035.077.078v2.168ZM73.65 5.719a.077.077 0 0 0-.077.078V7.26c-1.006-1.27-2.42-1.906-4.242-1.906-1.736 0-3.224.666-4.464 1.998-1.24 1.331-1.861 2.964-1.861 4.896 0 1.933.62 3.565 1.86 4.897 1.242 1.332 2.73 1.998 4.465 1.998 1.821 0 3.236-.636 4.242-1.907V18.7c0 .043.035.078.077.078h3.203a.078.078 0 0 0 .077-.078V5.798a.077.077 0 0 0-.077-.078H73.65Zm-6.272 9.193c.677.68 1.536 1.019 2.577 1.019 1.04 0 1.904-.344 2.59-1.032.685-.688 1.027-1.571 1.027-2.65 0-1.08-.342-1.963-1.028-2.651-.685-.688-1.548-1.032-2.59-1.032-1.04 0-1.9.344-2.576 1.032-.677.688-1.015 1.571-1.015 2.65 0 1.08.338 1.968 1.015 2.664Zm24.135-7.56c-1.241-1.332-2.737-1.998-4.49-1.998-1.822 0-3.227.635-4.216 1.906V5.797a.077.077 0 0 0-.077-.078h-3.203a.078.078 0 0 0-.078.078v18.126c0 .042.035.077.078.077h3.203a.078.078 0 0 0 .077-.078v-6.686c.989 1.271 2.394 1.907 4.216 1.907 1.753 0 3.249-.666 4.49-1.998 1.24-1.332 1.86-2.964 1.86-4.897 0-1.932-.62-3.565-1.86-4.896Zm-7.69 7.56c.675.68 1.535 1.019 2.576 1.019 1.04 0 1.904-.344 2.589-1.032.686-.688 1.028-1.571 1.028-2.65 0-1.08-.342-1.963-1.028-2.651-.685-.688-1.549-1.032-2.59-1.032-1.04 0-1.9.344-2.576 1.032-.677.688-1.015 1.571-1.015 2.65 0 1.08.338 1.968 1.015 2.664Zm11.628 3.865a.078.078 0 0 1-.077-.077V5.797c0-.043.035-.077.077-.077h3.203c.043 0 .078.034.078.077V18.7a.078.078 0 0 1-.078.077H95.45Zm-59.932-8.5c-.46-.218-.69-.501-.69-.85 0-.33.144-.591.43-.783.286-.191.646-.287 1.08-.287.832 0 1.46.325 1.885.976a.11.11 0 0 0 .137.042l2.833-1.258a.077.077 0 0 0 .035-.11 5.106 5.106 0 0 0-2-1.936c-.869-.478-1.832-.717-2.89-.717-1.405 0-2.581.37-3.527 1.11-.945.74-1.418 1.754-1.418 3.042 0 .853.23 1.563.69 2.128.46.566 1.019.98 1.678 1.24.66.262 1.319.48 1.978.654.66.174 1.22.37 1.68.587.459.218.689.5.689.85 0 .748-.599 1.122-1.796 1.122-1.14 0-1.93-.422-2.37-1.268-.037-.072-.123-.106-.198-.072l-2.825 1.256a.077.077 0 0 0-.038.104l.032.066c.987 1.98 2.787 2.97 5.399 2.97 1.492 0 2.737-.362 3.735-1.084.997-.723 1.496-1.754 1.496-3.095 0-.888-.23-1.628-.69-2.22a3.84 3.84 0 0 0-1.678-1.266 17.319 17.319 0 0 0-1.978-.627 9.178 9.178 0 0 1-1.679-.575Z"
clipRule="evenodd"
/>
<path
fill="#4945FF"
d="M19.72 0H4.28A4.28 4.28 0 0 0 0 4.28v15.44A4.28 4.28 0 0 0 4.28 24h15.44A4.28 4.28 0 0 0 24 19.72V4.28A4.28 4.28 0 0 0 19.72 0Z"
/>
<path
fill="#fff"
fillRule="evenodd"
d="M16.485 7.396H8.372v4.053h4.06c.066 0 .119.053.119.119v4.06h4.052V7.515a.118.118 0 0 0-.118-.119Z"
clipRule="evenodd"
/>
<g fill="#fff" opacity={0.42}>
<path d="M8.372 7.396v4.053h-3.91a.06.06 0 0 1-.041-.101l3.951-3.952ZM12.652 19.58a.06.06 0 0 1-.101-.043v-3.909H8.49a.118.118 0 0 1-.118-.119v-4.06h4.12a.06.06 0 0 1 .06.06v4.119h4.05l-3.951 3.951Z" />
</g>
</svg>
);
export default StrapiWithText;

View File

@@ -0,0 +1,38 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgStrapi = (props: SVGProps<SVGSVGElement>) => (
<svg
width={48}
height={48}
viewBox="0 0 48 48"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fill="#4945FF"
d="M39.44 0H8.56A8.56 8.56 0 0 0 0 8.56v30.88A8.56 8.56 0 0 0 8.56 48h30.88A8.56 8.56 0 0 0 48 39.44V8.56A8.56 8.56 0 0 0 39.44 0Z"
/>
<path
fill="#fff"
fillRule="evenodd"
d="M33.281 14.48h-16.38v8.181H25.1a.24.24 0 0 1 .24.24v8.197h8.181v-16.38a.24.24 0 0 0-.239-.238Z"
clipRule="evenodd"
/>
<path
fill="#fff"
fillRule="evenodd"
d="M16.903 14.48v8.181H9.01a.12.12 0 0 1-.085-.204l7.978-7.977ZM25.544 39.075a.12.12 0 0 1-.204-.084v-7.893h8.181l-7.977 7.977Z"
clipRule="evenodd"
opacity={0.42}
/>
<path
fill="#fff"
d="M16.905 22.661h8.317a.12.12 0 0 1 .12.12v8.317h-8.198a.24.24 0 0 1-.24-.239v-8.198Z"
opacity={0.42}
/>
</svg>
);
export default SvgStrapi;

View File

@@ -0,0 +1,57 @@
import * as React from "react";
import { SVGProps } from "react";
const SupabaseWithText = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={125}
height={24}
fill="none"
{...props}
>
<path
className="text-[#1F1F1F] dark:text-white"
fill="currentColor"
d="M31.969 14.27c.128 1.2 1.221 3.26 4.393 3.26 2.764 0 4.093-1.76 4.093-3.475 0-1.544-1.05-2.81-3.129-3.239l-1.5-.321c-.578-.107-.964-.43-.964-.944 0-.6.6-1.05 1.35-1.05 1.2 0 1.65.793 1.736 1.415l2.378-.536c-.128-1.137-1.136-3.046-4.136-3.046-2.271 0-3.942 1.566-3.942 3.453 0 1.48.92 2.702 2.957 3.153l1.393.321c.814.172 1.135.558 1.135 1.03 0 .557-.45 1.05-1.393 1.05-1.242 0-1.864-.771-1.928-1.608l-2.443.536ZM49.563 17.207h2.722a17.35 17.35 0 0 1-.107-1.908V6.656h-2.85v6.133c0 1.223-.73 2.08-1.993 2.08-1.329 0-1.93-.943-1.93-2.123v-6.09h-2.85v6.67c0 2.294 1.458 4.16 4.008 4.16 1.114 0 2.336-.429 2.915-1.415 0 .429.042.922.085 1.136ZM58.069 21.282v-5.104c.514.708 1.586 1.287 3.043 1.287 2.979 0 4.971-2.36 4.971-5.555 0-3.131-1.778-5.49-4.864-5.49-1.585 0-2.764.708-3.236 1.523V6.656H55.22v14.626h2.85Zm5.207-9.35c0 1.887-1.157 2.98-2.614 2.98-1.457 0-2.636-1.115-2.636-2.98 0-1.866 1.179-2.96 2.636-2.96s2.614 1.094 2.614 2.96ZM67.697 14.334c0 1.65 1.371 3.174 3.622 3.174 1.564 0 2.571-.73 3.107-1.566 0 .407.043.986.107 1.265h2.614a11.812 11.812 0 0 1-.128-1.672v-5.19c0-2.124-1.243-4.01-4.586-4.01-2.829 0-4.35 1.822-4.522 3.473l2.529.537c.086-.923.772-1.716 2.014-1.716 1.2 0 1.779.622 1.779 1.372 0 .365-.193.665-.793.751l-2.593.386c-1.757.257-3.15 1.308-3.15 3.196Zm4.221 1.05c-.92 0-1.371-.6-1.371-1.222 0-.815.579-1.223 1.307-1.33l2.379-.364v.472c0 1.865-1.114 2.444-2.315 2.444ZM82.656 17.207v-1.286c.557.9 1.672 1.544 3.129 1.544 3 0 4.972-2.38 4.972-5.576 0-3.131-1.779-5.512-4.865-5.512-1.564 0-2.721.686-3.193 1.437V1.68h-2.807v15.527h2.764Zm5.25-5.297c0 1.93-1.157 3.003-2.614 3.003-1.436 0-2.636-1.094-2.636-3.003 0-1.93 1.2-2.98 2.636-2.98 1.457 0 2.614 1.05 2.614 2.98ZM92.37 14.334c0 1.65 1.371 3.174 3.622 3.174 1.564 0 2.571-.73 3.107-1.566 0 .407.043.986.107 1.265h2.614a11.877 11.877 0 0 1-.128-1.672v-5.19c0-2.124-1.243-4.01-4.586-4.01-2.829 0-4.35 1.822-4.521 3.473l2.528.537c.086-.923.772-1.716 2.014-1.716 1.2 0 1.779.622 1.779 1.372 0 .365-.193.665-.793.751l-2.593.386c-1.757.257-3.15 1.308-3.15 3.196Zm4.222 1.05c-.922 0-1.372-.6-1.372-1.222 0-.815.579-1.223 1.307-1.33l2.379-.364v.472c0 1.865-1.114 2.444-2.314 2.444ZM103.665 14.27c.128 1.2 1.221 3.26 4.392 3.26 2.765 0 4.093-1.76 4.093-3.475 0-1.544-1.05-2.81-3.128-3.239l-1.5-.321c-.579-.107-.964-.43-.964-.944 0-.6.599-1.05 1.349-1.05 1.201 0 1.651.793 1.737 1.415l2.378-.536c-.129-1.137-1.136-3.046-4.136-3.046-2.272 0-3.943 1.566-3.943 3.453 0 1.48.921 2.702 2.957 3.153l1.393.321c.815.172 1.136.558 1.136 1.03 0 .557-.45 1.05-1.393 1.05-1.243 0-1.864-.771-1.928-1.608l-2.443.536ZM116.48 10.73c.064-.964.878-2.08 2.357-2.08 1.628 0 2.314 1.03 2.357 2.08h-4.714Zm4.993 2.746c-.343.943-1.072 1.608-2.4 1.608-1.415 0-2.593-1.008-2.657-2.402h7.543c0-.043.042-.472.042-.879 0-3.389-1.95-5.469-5.207-5.469-2.7 0-5.186 2.188-5.186 5.555 0 3.56 2.55 5.64 5.443 5.64 2.593 0 4.265-1.523 4.8-3.345l-2.378-.708Z"
/>
<path
fill="url(#supabase-with-text-a)"
d="M13.66 23.601c-.613.772-1.857.35-1.872-.637l-.216-14.42h9.7c1.757 0 2.737 2.03 1.644 3.404L13.66 23.602Z"
/>
<path
fill="url(#supabase-with-text-b)"
fillOpacity={0.2}
d="M13.66 23.601c-.613.772-1.857.35-1.872-.637l-.216-14.42h9.7c1.757 0 2.737 2.03 1.644 3.404L13.66 23.602Z"
/>
<path
fill="#3ECF8E"
d="M9.715.399c.614-.772 1.857-.35 1.872.637l.095 14.42H2.103c-1.756 0-2.736-2.03-1.644-3.404L9.715.399Z"
/>
<defs>
<linearGradient
id="supabase-with-text-a"
x1={11.572}
x2={20.192}
y1={11.742}
y2={15.358}
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#249361" />
<stop offset={1} stopColor="#3ECF8E" />
</linearGradient>
<linearGradient
id="supabase-with-text-b"
x1={7.75}
x2={11.68}
y1={6.511}
y2={13.91}
gradientUnits="userSpaceOnUse"
>
<stop />
<stop offset={1} stopOpacity={0} />
</linearGradient>
</defs>
</svg>
);
export default SupabaseWithText;

View File

@@ -0,0 +1,53 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgSupabase = (props: SVGProps<SVGSVGElement>) => (
<svg
width="24"
height="24"
viewBox="0 0 47 48"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
d="M27.3094 47.2028C26.0832 48.7471 23.5968 47.901 23.5673 45.9292L23.1353 17.0898H42.5268C46.0392 17.0898 47.998 21.1466 45.814 23.8974L27.3094 47.2028Z"
fill={`url(#${props?.id || ""}-supabase-a)`}
/>
<path
d="M27.3094 47.2028C26.0832 48.7471 23.5968 47.901 23.5673 45.9292L23.1353 17.0898H42.5268C46.0392 17.0898 47.998 21.1466 45.814 23.8974L27.3094 47.2028Z"
fill={`url(#${props?.id || ""}-supabase-b)`}
fillOpacity="0.2"
/>
<path
d="M19.4227 0.797559C20.649 -0.746829 23.1353 0.099384 23.1649 2.07117L23.3542 30.9105H4.20531C0.69287 30.9105 -1.26608 26.8537 0.918057 24.103L19.4227 0.797559Z"
fill="#3ECF8E"
/>
<defs>
<linearGradient
id={`${props?.id || ""}-supabase-a`}
x1="23.1353"
y1="23.4843"
x2="40.3698"
y2="30.7124"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#249361" />
<stop offset="1" stopColor="#3ECF8E" />
</linearGradient>
<linearGradient
id={`${props?.id || ""}-supabase-b`}
x1="15.4944"
y1="13.0225"
x2="23.3542"
y2="27.8183"
gradientUnits="userSpaceOnUse"
>
<stop />
<stop offset="1" stopOpacity="0" />
</linearGradient>
</defs>
</svg>
);
export default SvgSupabase;

View File

@@ -0,0 +1,21 @@
import React from "react";
const SvgTailwindCss = (props: React.SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
viewBox="0 0 24 24"
fill="none"
{...props}
>
<path
fill="#38BDF8"
fillRule="evenodd"
d="M12 5C8.8 5 6.8 6.59 6 9.771c1.2-1.59 2.6-2.186 4.2-1.789.913.227 1.566.885 2.287 1.614 1.177 1.187 2.539 2.56 5.513 2.56 3.2 0 5.2-1.59 6-4.77-1.2 1.59-2.6 2.187-4.2 1.789-.913-.227-1.566-.885-2.288-1.614C16.336 6.373 14.974 5 12 5Zm-6 7.157c-3.2 0-5.2 1.59-6 4.771 1.2-1.59 2.6-2.187 4.2-1.79.913.228 1.566.886 2.288 1.615 1.176 1.187 2.538 2.56 5.512 2.56 3.2 0 5.2-1.59 6-4.77-1.2 1.59-2.6 2.186-4.2 1.789-.913-.227-1.566-.886-2.287-1.614C10.336 13.53 8.974 12.157 6 12.157Z"
clipRule="evenodd"
/>
</svg>
);
export default SvgTailwindCss;

View File

@@ -0,0 +1,99 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgUseGenerated = (props: SVGProps<SVGSVGElement>) => (
<svg
width={50}
height={50}
viewBox="0 0 50 50"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<defs>
<clipPath id="a">
<path d="M35.348 21.133h2.062v7.738h-2.062zm0 0" />
</clipPath>
<clipPath id="b">
<path d="M35.746 21.133h1.23c.223 0 .403.18.403.398v6.938c0 .218-.18.398-.402.398h-1.23a.4.4 0 0 1-.4-.398V21.53a.4.4 0 0 1 .4-.398" />
</clipPath>
<clipPath id="c">
<path d="M30.336 21.133h1.637v7.738h-1.637zm0 0" />
</clipPath>
<clipPath id="d">
<path d="M30.738 21.133h.801a.4.4 0 0 1 .398.398v6.938a.4.4 0 0 1-.398.398h-.8a.401.401 0 0 1-.403-.398V21.53c0-.218.18-.398.402-.398" />
</clipPath>
<clipPath id="e">
<path d="M25.582 21.133h1.375v7.738h-1.375zm0 0" />
</clipPath>
<clipPath id="f">
<path d="M25.98 21.133h.56a.4.4 0 0 1 .398.398v6.938a.4.4 0 0 1-.399.398h-.559a.4.4 0 0 1-.398-.398V21.53a.4.4 0 0 1 .398-.398" />
</clipPath>
<clipPath id="g">
<path d="M21.031 21.133h1.203v7.738h-1.203zm0 0" />
</clipPath>
<clipPath id="h">
<path d="M21.434 21.133h.347c.223 0 .403.18.403.398v6.938c0 .218-.18.398-.403.398h-.347a.401.401 0 0 1-.403-.398V21.53c0-.218.18-.398.403-.398" />
</clipPath>
<clipPath id="i">
<path d="M16.719 21.133h.945v7.738h-.945zm0 0" />
</clipPath>
<clipPath id="j">
<path d="M17.117 21.133h.117a.4.4 0 0 1 .399.398v6.938a.4.4 0 0 1-.399.398h-.117a.4.4 0 0 1-.398-.398V21.53a.4.4 0 0 1 .398-.398" />
</clipPath>
<clipPath id="k">
<path d="M12.621 21.133h.711v7.738h-.71zm0 0" />
</clipPath>
<clipPath id="l">
<path d="M12.973 21.133c.191 0 .347.156.347.347v7.04a.35.35 0 0 1-.7 0l.001-7.04a.35.35 0 0 1 .352-.347" />
</clipPath>
</defs>
<path
fill="#542cf2"
d="M7.336 32.086c-.762 0-1.348-.191-1.762-.578-.41-.383-.617-.957-.617-1.723V26.91c0-.496-.105-.844-.312-1.043-.211-.203-.555-.305-1.04-.305h-.648V24.41h.648c.485 0 .829-.101 1.04-.305.207-.207.312-.558.312-1.054V20.18c0-.77.207-1.344.617-1.727.414-.383 1-.574 1.762-.574h.832v1.05h-.664c-.441 0-.77.102-.984.305-.211.203-.317.52-.317.946v2.773c0 .547-.105.969-.312 1.27-.207.297-.516.523-.922.675v.168c.406.153.715.375.922.676.207.301.312.723.312 1.266v2.777c0 .43.106.742.317.942.214.203.543.304.984.304h.664v1.055zM41.84 32.086V31.03h.652c.446 0 .774-.101.985-.304.214-.2.32-.512.32-.942v-2.777c0-.543.101-.965.312-1.266.207-.3.516-.523.926-.676v-.168c-.41-.152-.719-.378-.926-.675-.21-.301-.312-.723-.312-1.27V20.18c0-.426-.106-.742-.32-.946-.211-.203-.54-.304-.985-.304h-.652v-1.051h.824c.762 0 1.348.191 1.766.574.414.383.62.957.62 1.727v2.87c0 .497.106.848.313 1.055.207.204.555.305 1.04.305h.64v1.152h-.64c-.485 0-.833.102-1.04.305-.207.2-.312.547-.312 1.043v2.875c0 .766-.207 1.34-.621 1.723-.418.387-1.004.578-1.766.578zm0 0"
/>
<g clipPath="url(#a)">
<g clipPath="url(#b)">
<path
fill="#542cf2"
d="M35.348 21.133h2.062v7.738h-2.062zm0 0"
/>
</g>
</g>
<g clipPath="url(#c)">
<g clipPath="url(#d)">
<path
fill="#542cf2"
d="M30.336 21.133h1.637v7.738h-1.637zm0 0"
/>
</g>
</g>
<g clipPath="url(#e)">
<g clipPath="url(#f)">
<path
fill="#542cf2"
d="M25.582 21.133h1.375v7.738h-1.375zm0 0"
/>
</g>
</g>
<g clipPath="url(#g)">
<g clipPath="url(#h)">
<path
fill="#542cf2"
d="M21.031 21.133h1.117v7.738h-1.117zm0 0"
/>
</g>
</g>
<g clipPath="url(#i)">
<g clipPath="url(#j)">
<path fill="#542cf2" d="M16.719 21.133h.945v7.738h-.945zm0 0" />
</g>
</g>
<g clipPath="url(#k)">
<g clipPath="url(#l)">
<path fill="#542cf2" d="M12.621 21.133h.688v7.738h-.688zm0 0" />
</g>
</g>
</svg>
);
export default SvgUseGenerated;

View File

@@ -0,0 +1,49 @@
import React, { SVGProps } from "react";
const ViteIcon = (props: SVGProps<SVGSVGElement>) => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={48}
height={48}
viewBox="0 0 48 48"
fill="none"
{...props}
>
<path
fill={`url(#${props?.id || ""}-vite-colored-a)`}
d="m47.841 7.104-22.548 40.27a1.226 1.226 0 0 1-2.134.009L.164 7.108c-.515-.901.257-1.993 1.28-1.81l22.572 4.029a1.227 1.227 0 0 0 .435 0l22.1-4.024c1.02-.185 1.796.898 1.29 1.802Z"
/>
<path
fill={`url(#${props?.id || ""}-vite-colored-b)`}
d="M34.769.012 18.082 3.277a.612.612 0 0 0-.493.565l-1.027 17.314a.613.613 0 0 0 .75.632l4.645-1.07c.435-.1.828.282.738.718l-1.38 6.75a.612.612 0 0 0 .778.708l2.87-.87a.612.612 0 0 1 .778.709l-2.193 10.603c-.138.663.746 1.025 1.114.456l.246-.38 13.597-27.1a.612.612 0 0 0-.664-.875l-4.782.922a.612.612 0 0 1-.705-.771L35.475.782a.612.612 0 0 0-.706-.77Z"
/>
<defs>
<linearGradient
id={`${props?.id || ""}-vite-colored-a`}
x1={-0.398}
x2={27.619}
y1={3.858}
y2={41.955}
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#41D1FF" />
<stop offset={1} stopColor="#BD34FE" />
</linearGradient>
<linearGradient
id={`${props?.id || ""}-vite-colored-b`}
x1={22.721}
x2={27.785}
y1={0.898}
y2={35.68}
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#FFEA83" />
<stop offset={0.083} stopColor="#FFDD35" />
<stop offset={1} stopColor="#FFA800" />
<stop offset={1} stopColor="#FFA800" />
</linearGradient>
</defs>
</svg>
);
export default ViteIcon;

View File

@@ -0,0 +1,373 @@
import { IntegrationsType } from "../types/integrations";
import {
Ably,
Airtable,
Antd,
Appwrite,
Chakra,
Directus,
Dp,
Elide,
ElideGraphql,
EntRefine,
Firebase,
Graphql,
Hasura,
HookForm,
Hygraph,
JSONApi,
Kbar,
Mantine,
Medusa,
Mui,
Nest,
NestQuery,
Nextjs,
React,
Remix,
Rest,
Sanity,
SQLite,
Strapi,
Supabase,
UseGenerated,
Kinde,
} from "./integration-icons";
export const integrations: IntegrationsType = {
"ui-framework-packages": [
{
name: "Material UI",
icon: Mui,
description:
"<strong>Material UI</strong> Framework support. 20+ framework-specific hooks and components incl. DataGrid (+ Pro), AutoComplete, Menu, Layout, Notification and CRUD components.",
url: "https://www.npmjs.com/package/@refinedev/mui",
status: "stable",
},
{
name: "Ant Design",
icon: Antd,
description:
"<strong>Ant Design</strong> System UI Framework support. 20+ framework-specific <strong>hooks</strong> and <strong>components</strong> incl. Table, Form, Select, Menu, Layout, Notification and CRUD components.",
url: "https://www.npmjs.com/package/@refinedev/antd",
status: "stable",
},
{
name: "Chakra UI",
icon: Chakra,
description:
" <strong>Chakra UI</strong> Framework support. 20+ framework-specific components incl. Layout, Feedback, and CRUD components.",
url: "https://www.npmjs.com/package/@refinedev/chakra-ui",
status: "stable",
},
{
name: "Mantine UI",
icon: Mantine,
description:
" <strong>Mantine UI</strong> Framework support. 20+ framework-specific hooks and components incl. Table, Form, AutoComplete, Menu, Layout, Notification and CRUD components.",
url: "https://www.npmjs.com/package/@refinedev/mantine",
status: "stable",
},
],
"data-provider-packages": [
{
name: "REST API",
icon: Rest,
description:
"Connect any custom <strong>REST API</strong> backend.",
url: "https://www.npmjs.com/package/@refinedev/simple-rest",
status: "stable",
},
{
name: "GraphQL",
icon: Graphql,
description: "Connect any custom <strong>GraphQL</strong> backend.",
url: "https://www.npmjs.com/package/@refinedev/graphql",
status: "stable",
},
{
name: "NestJsX CRUD",
icon: Nest,
description:
"Consume <strong>REST API's</strong> built with <strong>NestJs</strong>.",
url: "https://www.npmjs.com/package/@refinedev/nestjsx-crud",
status: "stable",
},
{
name: "Strapi",
icon: Strapi,
description:
"<strong>Strapi</strong> connector for <strong>v4 REST API</strong>.",
url: "https://www.npmjs.com/package/@refinedev/strapi",
status: "stable",
},
{
name: "Supabase",
icon: Supabase,
description:
"<strong>Supabase</strong> data provider. Supports <strong>Supabase Realtime</strong> for <strong>live/realtime</strong> projects.",
url: "https://www.npmjs.com/package/@refinedev/supabase",
status: "stable",
},
{
name: "Hasura GraphQL",
icon: Hasura,
description:
"<strong>Hasura GraphQL</strong> data provider. Supports <strong>GraphQL Subscriptions</strong> for <strong>live/realtime</strong> projects.",
url: "https://www.npmjs.com/package/@refinedev/hasura",
status: "stable",
},
{
name: "Nestjs-Query",
icon: NestQuery,
description:
"Consume <strong>GraphQL API's</strong> built with <strong>Nestjs-Query</strong>.",
url: "https://www.npmjs.com/package/@refinedev/nestjs-query",
status: "stable",
},
{
name: "Appwrite",
icon: Appwrite,
description:
" Appwrite data provider. Supports <strong>Appwrite Realtime</strong> for <strong>live/realtime</strong> projects.",
url: "https://www.npmjs.com/package/@refinedev/appwrite",
status: "stable",
},
{
name: "Airtable",
icon: Airtable,
description: "Use <strong>Airtable</strong> as backend service.",
url: "https://www.npmjs.com/package/@refinedev/airtable",
status: "stable",
},
{
name: "Medusa",
icon: Medusa,
description:
"<strong>Medusa</strong> connector for your e-commerce projects.",
url: "https://www.npmjs.com/package/@refinedev/medusa",
status: "stable",
},
],
"community-data-provider-packages": [
{
name: "Directus Data Provider",
icon: Directus,
description:
"Connector for backends created with <strong>Directus</strong>",
url: "https://www.npmjs.com/package/@tspvivek/refine-directus",
status: "stable",
contributors: [
{
name: "tspvivek",
url: "https://github.com/tspvivek",
},
],
},
{
name: "Firebase Data Provider",
icon: Firebase,
description: "Support for <strong>Firebase</strong> services.",
url: "https://www.npmjs.com/package/refine-firebase",
status: "stable",
contributors: [
{
name: "rturan29",
url: "https://github.com/resulturan",
},
],
},
{
name: "Hygraph Data Provider",
icon: Hygraph,
description:
"Connector for backends created with <strong>Hygraph</strong> (GraphQL)",
url: "https://github.com/acomagu/refine-hygraph",
status: "stable",
contributors: [
{
name: "acomagu",
url: "https://github.com/acomagu",
},
],
},
{
name: "Sanity Data Provider",
icon: Sanity,
description:
"Connector for backends created with <strong>Sanity</strong>",
url: "https://github.com/hirenf14/refine-sanity",
status: "stable",
contributors: [
{
name: "hirenf14",
url: "https://github.com/hirenf14/refine-sanity",
},
],
},
{
name: "Elide Data Provider",
icon: Elide,
description:
"Connector for backends created with <strong>Elide</strong>",
url: "https://github.com/chirdeeptomar/refine-elide-rest",
status: "stable",
contributors: [
{
name: "chirdeeptomar",
url: "https://github.com/chirdeeptomar",
},
],
},
{
name: "Elide GraphQL Data Provider",
icon: ElideGraphql,
description:
"Connector for GraphQL backends created with <strong>Elide</strong>",
url: "https://github.com/chirdeeptomar/refine-elide-graphql",
status: "stable",
contributors: [
{
name: "chirdeeptomar",
url: "https://github.com/chirdeeptomar",
},
],
},
{
name: "Ent refine",
icon: EntRefine,
description:
"A library that generates fully customizable UI based on Entgo ORM and GraphQL API with Refine.",
url: "https://github.com/diazoxide/entrefine",
status: "stable",
contributors: [
{
name: "diazoxide",
url: "https://github.com/diazoxide",
},
],
},
{
name: "useGenerated Data Provider",
icon: UseGenerated,
description:
"Connector for backends created with <strong>useGenerated</strong> (GraphQL)",
url: "https://github.com/usegen/refine-use-generated",
status: "stable",
contributors: [
{
name: "usegen",
url: "https://github.com/usegen",
},
],
},
{
name: "SQLite Data Provider",
icon: SQLite,
description:
"Connector for backends created with <strong>SQLite</strong>",
url: "https://github.com/mateusabelli/refine-sqlite",
status: "stable",
contributors: [
{
name: "mateusabelli",
url: "https://github.com/mateusabelli",
},
],
},
{
name: "JSON:API Data Provider",
icon: JSONApi,
description:
"Connector for backends created with <strong>JSON:API</strong>",
url: "https://github.com/mahirmahdi/refine-jsonapi",
status: "stable",
contributors: [
{
name: "mahirmahdi",
url: "https://github.com/mahirmahdi",
},
],
},
],
frameworks: [
{
name: "Next.js",
icon: Nextjs,
description: "Router Provider for <strong>Next.js</strong>",
url: "https://www.npmjs.com/package/@refinedev/nextjs-router",
status: "stable",
},
{
name: "Remix",
icon: Remix,
description: "Router Provider for <strong>Remix</strong>",
url: "https://www.npmjs.com/package/@refinedev/remix-router",
status: "stable",
},
],
integrations: [
{
name: "React Table",
icon: React,
description:
"<strong>React Table</strong> integration. Powerful tables & datagrids for your <strong>headless</strong> projects.",
url: "https://www.npmjs.com/package/@refinedev/react-table",
status: "stable",
},
{
name: "React Hook Form",
icon: HookForm,
description:
"<strong>React Hook Form</strong> integration. Extensible forms and validation for your projects.",
url: "https://www.npmjs.com/package/@refinedev/react-hook-form",
status: "stable",
},
{
name: "kbar interface",
icon: Kbar,
description: "Add command / crtrl+k interfaces to your project.",
url: "https://www.npmjs.com/package/@refinedev/kbar",
status: "stable",
},
],
"live-providers": [
{
name: "Ably Live Provider",
icon: Ably,
description:
"<strong>Ably</strong> support for for <strong>live/realtime</strong> projects.",
url: "https://www.npmjs.com/package/@refinedev/ably",
status: "stable",
},
],
"community-packages": [
{
name: "DP Customizer",
icon: Dp,
description: " Mix & match different data providers",
url: "https://www.npmjs.com/package/data-provider-customizer",
status: "stable",
contributors: [
{
name: "umutzd",
url: "https://github.com/umutzd",
},
],
},
{
name: "Kinde Auth Provider",
icon: Kinde,
description:
"Auth provider for Refine to integrate <strong>Kinde</strong> authentication",
url: "https://github.com/hirenf14/refine-auth-kinde-react",
status: "stable",
contributors: [
{
name: "hirenf14",
url: "https://github.com/hirenf14/refine-auth-kinde-react",
},
],
},
],
};

View File

@@ -0,0 +1,120 @@
import { NavMenu } from "../types/nav-menu";
import {
DocumentsIcon,
IntegrationsIcon,
TutorialIcon,
ExamplesIcon,
AwesomeIcon,
ExpertIcon,
ContributeIcon,
UseCasesIcon,
RefineWeekIcon,
AboutUsIcon,
RefineStoreIcon,
RefineIcon,
} from "./popover-icons";
export const POPOVERMENUS: NavMenu[] = [
{
label: "Open-source",
items: [
{
label: "Documents",
description: "Everything you need to get started",
link: "/docs/",
icon: DocumentsIcon,
},
{
label: "Integrations",
description: "Discover the Refine ecosystem",
link: "/integrations",
icon: IntegrationsIcon,
},
{
label: "Tutorial",
description: "Your first Refine application",
link: "/docs/tutorial/introduction/index/",
icon: TutorialIcon,
},
{
label: "Templates",
description: "Ready-made examples for your project",
link: "/templates",
icon: ExamplesIcon,
},
{
label: "Awesome Refine",
description: "Repo of awesome things",
link: "https://github.com/refinedev/awesome-refine",
icon: AwesomeIcon,
},
],
imageLink: "https://github.com/refinedev/refine",
imageURL:
"https://refine.ams3.cdn.digitaloceanspaces.com/website/static/landing/popovers/open-source.png",
},
{
label: "Community",
items: [
{
label: "Hire an expert",
description: "Find a trusted partner",
link: "/become-a-refine-expert",
icon: ExpertIcon,
},
{
label: "Contributing",
description: "Join open-source contributors",
link: "/docs/guides-concepts/contributing/",
icon: ContributeIcon,
},
{
label: "Use cases",
description: "Inspiring projects built with Refine",
link: "/use-cases",
icon: UseCasesIcon,
},
{
label: "refineweek ft. Supabase",
description: "The official Refine event",
link: "/week-of-refine",
icon: RefineWeekIcon,
},
{
label: "refineweek ft. Strapi",
description: "The official Refine event",
link: "/week-of-refine-strapi",
icon: RefineWeekIcon,
},
],
imageLink: "/examples",
imageURL:
"https://refine.ams3.cdn.digitaloceanspaces.com/website/static/landing/popovers/community.png",
},
{
label: "Company",
items: [
{
label: "About Us",
description: "Team & company information",
link: "/about",
icon: AboutUsIcon,
},
{
label: "Swag Store",
description: "T-shirts, caps, and more",
link: "https://store.refine.dev",
icon: RefineStoreIcon,
},
{
label: "Meet Refine",
description: "Call us for any questions",
link: "https://refinedev.typeform.com/to/Z9wS06kE",
icon: RefineIcon,
},
],
imageLink: "https://store.refine.dev",
imageURL:
"https://refine.ams3.cdn.digitaloceanspaces.com/website/static/landing/popovers/company.png",
},
];

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,67 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgAwesome = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="32"
height="17"
viewBox="0 0 32 17"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
className={props.className ? props.className : undefined}
>
<g opacity="0.75">
<path
d="M23.6373 0.00545461L22.4907 1.26003L29.2831 7.51111H2.51044L9.30277 1.25458L8.15622 0L0.00543419 7.51111H0V9.90572L31.7881 9.96026V7.51111L23.6373 0.00545461Z"
fill="url(#paint0_linear_1502_1214)"
/>
<path
d="M0 12.5625V9.96027L14.6746 10.0136V12.5625C14.6746 14.7488 12.5158 16.5298 9.86507 16.5298H4.80956C2.15884 16.5298 0 14.7488 0 12.5625Z"
fill="url(#paint1_linear_1502_1214)"
/>
<path
d="M17.3254 12.5625V10.0136H32V12.5625C32 14.7488 29.8412 16.5298 27.1904 16.5298H22.1349C19.4842 16.5298 17.3254 14.7488 17.3254 12.5625Z"
fill="url(#paint2_linear_1502_1214)"
/>
</g>
<defs>
<linearGradient
id="paint0_linear_1502_1214"
x1="15.894"
y1="0"
x2="15.894"
y2="9.96027"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint1_linear_1502_1214"
x1="16"
y1="9.96027"
x2="16"
y2="16.5298"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint2_linear_1502_1214"
x1="16"
y1="9.96027"
x2="16"
y2="16.5298"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgAwesome;

View File

@@ -0,0 +1,21 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgChevronDown = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="7"
height="5"
viewBox="0 0 7 5"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
>
<path
d="M0.146447 0.732232C-0.0488156 0.927494 -0.0488155 1.24408 0.146447 1.43934L2.97487 4.26777C3.17014 4.46303 3.48672 4.46303 3.68198 4.26777L6.51041 1.43934C6.70567 1.24408 6.70567 0.927494 6.51041 0.732232C6.31515 0.536969 5.99856 0.53697 5.8033 0.732232L3.32843 3.20711L0.853553 0.732232C0.658291 0.536969 0.341709 0.536969 0.146447 0.732232Z"
fill="#ABABB2"
/>
</svg>
);
export default SvgChevronDown;

View File

@@ -0,0 +1,38 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgContribute = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="28"
height="32"
viewBox="0 0 28 32"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
className={props.className ? props.className : undefined}
>
<path
opacity="0.75"
fillRule="evenodd"
clipRule="evenodd"
d="M12.2396 11.4868H12.0973L12.0973 11.4868C11.9468 11.4531 11.8164 11.3598 11.7359 11.2283C11.6554 11.0969 11.6316 10.9384 11.6701 10.789L14.2048 0.436376C14.2532 0.237909 14.4037 0.0803693 14.5996 0.0230552C14.7956 -0.034358 15.0073 0.0171939 15.155 0.158344C15.3027 0.299398 15.3639 0.508482 15.3155 0.706946L12.7808 11.0595C12.7497 11.1801 12.68 11.2872 12.5822 11.3643C12.4845 11.4415 12.3642 11.4845 12.2396 11.4868ZM10.9154 2.20218C10.8045 2.09718 10.6561 2.04106 10.5035 2.04633C10.351 2.05169 10.2068 2.11814 10.1036 2.23069L7.15591 5.36352C7.05579 5.46931 6.99996 5.60947 6.99996 5.75518C6.99996 5.9008 7.05579 6.04094 7.15591 6.14673L10.1179 9.27956C10.2598 9.41744 10.4631 9.47167 10.6549 9.4229C10.8468 9.37413 10.9994 9.2293 11.0583 9.04037C11.1172 8.85144 11.0738 8.64554 10.9438 8.49632L8.35209 5.74797L10.9438 3.01386C11.0488 2.90301 11.1049 2.75461 11.0995 2.60204C11.0943 2.44947 11.0278 2.30534 10.9153 2.20212L10.9154 2.20218ZM16.4822 9.44962C16.3296 9.45488 16.1812 9.39876 16.0703 9.29377L16.0704 9.29382C15.9579 9.19061 15.8914 9.04648 15.8861 8.8939C15.8808 8.74133 15.9369 8.59294 16.0419 8.48208L18.6336 5.74797L16.0561 2.99962C15.926 2.85041 15.8826 2.6445 15.9415 2.45557C16.0004 2.26665 16.1532 2.12182 16.3449 2.07305C16.5367 2.02427 16.74 2.07851 16.8821 2.21638L19.844 5.34922C19.9442 5.455 20 5.59515 20 5.74077C20 5.88648 19.9442 6.02664 19.844 6.13243L16.8821 9.26526C16.7789 9.3778 16.6347 9.44426 16.4822 9.44962ZM25.3694 8.84344C24.3586 8.84344 23.5387 9.66332 23.5387 10.6742V15.1805C22.869 14.8862 22.0554 15.0146 21.5077 15.5592L17.2488 19.7804C16.5979 20.425 16.2255 21.32 16.2255 22.237V28.0698H15.3993C15.1395 28.0698 14.93 28.2796 14.93 28.5391V31.5307C14.93 31.7904 15.1398 32 15.3993 32H23.9424C24.2021 32 24.4117 31.7902 24.4117 31.5307V28.5391C24.4117 28.2794 24.2019 28.0698 23.9424 28.0698H22.9911V25.9514C22.9911 25.2941 23.2196 24.6558 23.6357 24.1488L26.7338 20.3685C27.0341 20.0025 27.2 19.5423 27.2 19.0667V10.6739C27.2 9.66306 26.3771 8.84318 25.3695 8.84318L25.3694 8.84344ZM23.473 29.0086V31.0613H15.8687V29.0086H23.473ZM26.2611 19.0696C26.2611 19.3263 26.1703 19.5765 26.0077 19.7738L22.9096 23.5541C22.3558 24.2301 22.0522 25.0812 22.0522 25.9511V28.0695H17.1643V22.2367C17.1643 21.57 17.4365 20.916 17.9091 20.4468L22.1681 16.2253C22.5029 15.8905 23.0942 15.8905 23.4291 16.2253C23.4885 16.2847 23.5387 16.3537 23.5793 16.4257C23.5823 16.4317 23.5853 16.437 23.5883 16.4423C23.5915 16.448 23.5947 16.4536 23.598 16.4602C23.7639 16.7951 23.7076 17.2113 23.4291 17.4866L20.6222 20.2935C20.4375 20.4781 20.4375 20.7754 20.6222 20.9568C20.8069 21.1382 21.1042 21.1415 21.2856 20.9568L24.0957 18.1499C24.6434 17.6023 24.7718 16.7887 24.4775 16.116V10.6709C24.4775 10.1796 24.8781 9.779 25.3694 9.779C25.8608 9.779 26.2613 10.1796 26.2613 10.6709L26.2611 19.0696ZM11.7976 28.0698H10.9714L10.9716 22.237C10.9716 21.3202 10.5992 20.425 9.94835 19.7804L5.69247 15.5621C5.14479 15.0144 4.33126 14.886 3.66153 15.1803V10.674C3.66153 9.66312 2.84165 8.84324 1.83077 8.84324C0.819883 8.84324 0 9.66312 0 10.674V19.0667C0 19.5393 0.165899 20.0023 0.466258 20.3686L3.56435 24.1488C3.98061 24.6557 4.20893 25.2972 4.20893 25.9514V28.0699H3.2546C2.99484 28.0699 2.78529 28.2796 2.78529 28.5392V31.5308C2.78529 31.7905 2.99506 32.0001 3.2546 32.0001H11.7977C12.0574 32.0001 12.267 31.7903 12.267 31.5308V28.5392C12.2672 28.2796 12.0574 28.0699 11.7977 28.0699L11.7976 28.0698ZM4.28724 23.5511L1.18915 19.7741C1.02652 19.577 0.935718 19.3267 0.935718 19.0699V10.6738C0.935718 10.1825 1.33627 9.78193 1.82763 9.78193C2.31899 9.78193 2.71954 10.1825 2.71954 10.6738V16.1157C2.61935 16.3442 2.56631 16.5944 2.56631 16.8541C2.56631 17.3455 2.75709 17.8054 3.10132 18.1497L5.90822 20.9566C6.09288 21.1412 6.39019 21.1412 6.57158 20.9566C6.75625 20.7719 6.75625 20.4746 6.57158 20.2932L3.76468 17.4863C3.59573 17.3174 3.50493 17.0952 3.50493 16.8542C3.50493 16.7134 3.53614 16.5757 3.59879 16.4536C3.60196 16.449 3.6043 16.4443 3.60665 16.4396C3.609 16.4349 3.61134 16.4302 3.61451 16.4255C3.65511 16.3535 3.70531 16.2847 3.76469 16.222C4.09954 15.8872 4.69086 15.8872 5.02899 16.222L9.28794 20.4404C9.76359 20.9097 10.0327 21.5639 10.0327 22.2303V28.0631L5.14466 28.0634V25.9449C5.14466 25.0779 4.84125 24.2268 4.28723 23.5508L4.28724 23.5511ZM11.3282 31.0615H3.72396V29.0088H11.3282V31.0615Z"
fill="url(#paint0_linear_1502_1700)"
/>
<defs>
<linearGradient
id="paint0_linear_1502_1700"
x1="13.6"
y1="0"
x2="13.6"
y2="32"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgContribute;

View File

@@ -0,0 +1,36 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgDocuments = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="25"
height="32"
viewBox="0 0 25 32"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
className={props.className ? props.className : undefined}
>
<path
opacity="0.75"
d="M6.66596 2.31205H14.8452L13.8005 1.26729H3.59375C2.9536 1.26729 2.37187 1.52837 1.95048 1.9509C1.52908 2.3723 1.26687 2.95403 1.26687 3.59418V26.094C1.26687 26.7351 1.5291 27.3159 1.95048 27.7382C2.25411 28.0418 2.64009 28.2624 3.07137 28.3616V5.90652C3.07137 4.91629 3.47507 4.01804 4.12603 3.36705C4.77701 2.71607 5.67614 2.3124 6.66549 2.3124L6.66596 2.31205ZM16.6371 2.31205H17.1347C17.3067 2.31205 17.4701 2.38129 17.5897 2.50504L23.8116 8.72694C23.9353 8.84655 24.0046 9.00987 24.0046 9.18193V28.4059C24.0046 29.3961 23.6009 30.2944 22.9499 30.9453C22.2989 31.5963 21.3998 32 20.4105 32H6.66585C5.67562 32 4.77737 31.5963 4.12638 30.9453C3.76916 30.5881 3.48735 30.1568 3.30428 29.6761C2.4297 29.6059 1.64121 29.2199 1.05465 28.6334C0.403664 27.9824 0 27.0841 0 26.0939V3.59411C0 2.60388 0.403694 1.70564 1.05465 1.05465C1.70564 0.403664 2.60388 0 3.59411 0H14.0629C14.2409 0 14.4022 0.0731483 14.5169 0.191839L16.6371 2.31205ZM8.02446 25.3459C7.67437 25.3459 7.39026 25.0621 7.39026 24.7117C7.39026 24.3616 7.67411 24.0775 8.02446 24.0775H19.0521C19.4022 24.0775 19.6863 24.3614 19.6863 24.7117C19.6863 25.0618 19.4024 25.3459 19.0521 25.3459H8.02446ZM8.02446 18.6353C7.67437 18.6353 7.39026 18.3514 7.39026 18.0011C7.39026 17.651 7.67411 17.3669 8.02446 17.3669H19.0521C19.4022 17.3669 19.6863 17.6507 19.6863 18.0011C19.6863 18.3512 19.4024 18.6353 19.0521 18.6353H8.02446ZM8.02446 21.99C7.67437 21.99 7.39026 21.7061 7.39026 21.3558C7.39026 21.0057 7.67411 20.7216 8.02446 20.7216H19.0521C19.4022 20.7216 19.6863 21.0054 19.6863 21.3558C19.6863 21.7058 19.4024 21.99 19.0521 21.99H8.02446ZM8.02446 15.2793C7.67437 15.2793 7.39026 14.9954 7.39026 14.6451C7.39026 14.295 7.67411 14.0109 8.02446 14.0109H19.0521C19.4022 14.0109 19.6863 14.2947 19.6863 14.6451C19.6863 14.9952 19.4024 15.2793 19.0521 15.2793H8.02446ZM17.7689 4.47429V6.22038C17.7689 6.86147 18.03 7.44227 18.4525 7.8646C18.8739 8.286 19.4557 8.54732 20.0958 8.54732H21.8419L17.7689 4.47429ZM16.5017 3.57787H6.66714C6.02604 3.57787 5.44525 3.83894 5.02292 4.26148C4.60152 4.68288 4.34019 5.2646 4.34019 5.90475V28.4134C4.34226 29.0505 4.60334 29.6281 5.02292 30.0477C5.44432 30.4691 6.02604 30.7313 6.66714 30.7313H20.4117C21.0519 30.7313 21.6336 30.4702 22.056 30.0477C22.4774 29.6263 22.7396 29.0446 22.7396 28.4044V9.81349H20.0971C19.1068 9.81349 18.2086 9.4098 17.5576 8.75884C16.9066 8.10786 16.5029 7.20961 16.5029 6.21938V3.57804L16.5017 3.57787Z"
fill="url(#paint0_linear_1502_1365)"
/>
<defs>
<linearGradient
id="paint0_linear_1502_1365"
x1="12.0023"
y1="0"
x2="12.0023"
y2="32"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgDocuments;

View File

@@ -0,0 +1,38 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgExamples = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="32"
height="28"
viewBox="0 0 32 28"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
className={props.className ? props.className : undefined}
>
<path
opacity="0.75"
fillRule="evenodd"
clipRule="evenodd"
d="M1.03438 6.10352e-05H30.9649H30.9653C31.5365 6.10352e-05 31.9997 0.463854 32 1.03444V5.03143C32 5.6023 31.5365 6.0658 30.9656 6.0658H1.03438C0.463505 6.0658 0 5.6023 0 5.03143V1.03444C0 0.463566 0.463505 6.10352e-05 1.03438 6.10352e-05ZM2.06876 3.99734H29.9305L29.9312 2.06911H2.06876V3.99734ZM1.03438 8.27501H13.1699C13.741 8.27501 14.2042 8.73881 14.2042 9.30939V15.8343C14.2042 16.4051 13.7407 16.8686 13.1699 16.8686H1.03438C0.463505 16.8686 0 16.4051 0 15.8343V9.30939C0 8.73852 0.463505 8.27501 1.03438 8.27501ZM2.06876 14.7999H12.1355V10.3438H2.06876V14.7999ZM13.1699 19.4012H1.03438C0.463505 19.4012 0 19.8642 0 20.4356V26.9605C0 27.5319 0.463505 27.9949 1.03438 27.9949H13.1699C13.7407 27.9949 14.2042 27.5319 14.2042 26.9605V20.4356C14.2042 19.8642 13.741 19.4012 13.1699 19.4012ZM12.1355 25.9259H2.06876V21.4698H12.1355V25.9259ZM17.8571 8.27501H30.9649C31.5361 8.27501 31.9993 8.73881 31.9993 9.30939V26.9596C31.9993 27.531 31.5358 27.994 30.9649 27.994H17.8571C17.2863 27.994 16.8228 27.531 16.8228 26.9596V9.30939C16.8228 8.73852 17.2863 8.27501 17.8571 8.27501ZM18.8915 25.9259H29.9305V10.3438H18.8915V25.9259Z"
fill="url(#paint0_linear_1502_1669)"
/>
<defs>
<linearGradient
id="paint0_linear_1502_1669"
x1="16"
y1="6.10352e-05"
x2="16"
y2="27.9948"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgExamples;

View File

@@ -0,0 +1,36 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgExpert = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="32"
height="32"
viewBox="0 0 32 32"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
className={props.className ? props.className : undefined}
>
<path
opacity="0.75"
d="M15.9982 2.02601e-05C12.9902 2.02601e-05 10.5311 2.46092 10.5311 5.46893C10.5311 7.22998 11.3775 8.79829 12.6801 9.79993C10.0138 11.051 8.1616 13.7517 8.1616 16.8899V18.9671C8.16055 19.2179 8.25981 19.4587 8.43734 19.6362C8.6146 19.8135 8.85569 19.9128 9.10647 19.912H22.8991C23.4188 19.9099 23.8387 19.4868 23.8366 18.9671V16.8898C23.8366 13.7511 21.9844 11.0507 19.3181 9.79991C20.6206 8.79834 21.4671 7.22997 21.4671 5.46891C21.4671 2.46097 19.0062 0 15.9981 0L15.9982 2.02601e-05ZM15.9982 1.88242C17.989 1.88242 19.5847 3.47802 19.5847 5.46893C19.5847 7.45977 17.9891 9.05356 15.9982 9.05356C14.0073 9.05356 12.4135 7.45977 12.4135 5.46893C12.4135 3.47809 14.0073 1.88242 15.9982 1.88242V1.88242ZM15.9982 10.9361C19.3141 10.9361 21.9597 13.5743 21.9597 16.8903V18.03H10.0441V16.8903C10.0441 13.574 12.6823 10.9361 15.9983 10.9361H15.9982ZM5.01234 22.0154C4.66727 22.0038 4.35503 22.2184 4.2421 22.5448L3.38359 25.0136L0.769545 25.0669C0.4355 25.0743 0.142693 25.2917 0.0389725 25.6092C-0.0647613 25.927 0.0431741 26.2752 0.308149 26.4788L2.39089 28.0597L1.63719 30.5616C1.53898 30.8825 1.65479 31.2302 1.92607 31.428C2.19708 31.6257 2.56395 31.6299 2.83943 31.4385L4.98288 29.944L7.13003 31.4367C7.40498 31.6284 7.77133 31.625 8.04259 31.4283C8.31387 31.2313 8.43099 30.8844 8.33409 30.5633L7.57487 28.0613L9.66131 26.4804C9.92786 26.2777 10.0368 25.9281 9.93312 25.6099C9.82912 25.2913 9.535 25.0733 9.19992 25.0668L6.58587 25.0116L5.72925 22.5428V22.5431C5.63156 22.2634 5.38496 22.0622 5.09136 22.0228C5.0651 22.0189 5.03884 22.0163 5.01231 22.0152L5.01234 22.0154ZM16.0271 22.0154C15.682 22.0038 15.3698 22.2184 15.2568 22.5448L14.3965 25.0136L11.7825 25.0669C11.4484 25.0743 11.1556 25.2917 11.0519 25.6092C10.9482 25.927 11.0561 26.2752 11.3211 26.4788L13.4057 28.0597L12.6483 30.5616C12.549 30.8831 12.6651 31.2321 12.9372 31.4301C13.209 31.6281 13.5769 31.6315 13.8523 31.4385L15.9976 29.944L18.1448 31.4367C18.4197 31.6284 18.7861 31.625 19.0573 31.4283C19.3286 31.2313 19.4457 30.8844 19.3488 30.5632L18.5896 28.0613L20.6742 26.4804C20.9408 26.2776 21.0498 25.9281 20.946 25.6098C20.842 25.2913 20.5479 25.0733 20.2128 25.0668L17.6007 25.0116L16.744 22.5428V22.543C16.6464 22.2634 16.3998 22.0622 16.1062 22.0228C16.0799 22.0189 16.0536 22.0162 16.0271 22.0152L16.0271 22.0154ZM27.0405 22.0154C26.6962 22.0046 26.3847 22.2192 26.272 22.5448L25.4117 25.0136L22.7958 25.0669C22.4623 25.0751 22.17 25.2928 22.0666 25.6103C21.9633 25.9275 22.0713 26.2755 22.3363 26.4787L24.4209 28.0597L23.6635 30.5616C23.5653 30.8825 23.6811 31.2302 23.9524 31.428C24.2234 31.6257 24.5902 31.6299 24.8657 31.4385L27.0129 29.944L29.1581 31.4367C29.4331 31.6284 29.7994 31.625 30.0707 31.4283C30.342 31.2313 30.4591 30.8844 30.3622 30.5632L29.603 28.0613L31.6894 26.4804C31.956 26.2776 32.0649 25.9281 31.9612 25.6098C31.8572 25.2913 31.5631 25.0733 31.228 25.0667L28.614 25.0116L27.7574 22.5428V22.543C27.6597 22.2633 27.4131 22.0622 27.1195 22.0228C27.0932 22.0189 27.0669 22.0162 27.0404 22.0152L27.0405 22.0154Z"
fill="url(#paint0_linear_1502_105)"
/>
<defs>
<linearGradient
id="paint0_linear_1502_105"
x1="16"
y1="0"
x2="16"
y2="31.581"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgExpert;

View File

@@ -0,0 +1,15 @@
export { default as DocumentsIcon } from "./documents";
export { default as RightArrow } from "./right-arrow";
export { default as IntegrationsIcon } from "./integrations";
export { default as TutorialIcon } from "./tutorial";
export { default as UIFrameworksIcon } from "./ui-frameworks";
export { default as ExamplesIcon } from "./examples";
export { default as AwesomeIcon } from "./awesome";
export { default as ExpertIcon } from "./expert";
export { default as ContributeIcon } from "./contribute";
export { default as UseCasesIcon } from "./use-cases";
export { default as RefineWeekIcon } from "./refine-week";
export { default as AboutUsIcon } from "./about-us";
export { default as RefineStoreIcon } from "./refine-store";
export { default as RefineIcon } from "./refine";
export { default as ChevronDownIcon } from "./chevron-down";

View File

@@ -0,0 +1,52 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgIntegrations = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="32"
height="33"
viewBox="0 0 32 33"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
className={props.className ? props.className : undefined}
>
<g opacity="0.75">
<path
d="M31.0436 4.63474H18.7217C18.2068 4.63474 17.7655 5.03935 17.7655 5.591V9.19554C17.7655 9.7841 18.3171 10.1518 18.7954 10.1151C19.8989 10.0414 20.5608 10.5197 20.7814 11.2186C21.2597 12.5794 19.9722 13.7196 18.8687 13.4256C18.2802 13.2786 17.7286 13.6832 17.7286 14.2715V17.7657H14.2344C13.6458 17.7657 13.2045 18.3173 13.3885 18.9059C13.6827 20.0094 12.5425 21.2599 11.1814 20.8186C10.5562 20.5979 10.0779 20.0094 10.0779 19.2001C10.0779 18.8322 10.1515 18.5749 9.93089 18.2806C9.74693 17.9863 9.48959 17.8024 9.15835 17.8024H5.55381C5.03888 17.8024 4.59755 18.207 4.59755 18.7586V31.1173C4.59755 31.6322 5.00217 32.0735 5.55381 32.0735H31.0435C31.5584 32.0735 31.9997 31.6689 31.9997 31.1173L32 5.62757C32 5.03926 31.5954 4.63466 31.0435 4.63466L31.0436 4.63474ZM21.9953 11.7704C21.9953 10.3359 20.8918 8.93813 18.8687 8.97504V5.70121H30.8963V17.7288H27.7697C27.5121 16.4047 26.3353 15.4115 24.9008 15.4115C23.4663 15.4115 22.2891 16.4047 22.0318 17.7288H18.8686V14.5289C20.3397 14.7862 21.9952 13.5357 21.9952 11.7703L21.9953 11.7704ZM18.0229 26.7037C17.177 26.5567 16.5517 25.8209 16.5517 24.9014C16.5517 23.9818 17.177 23.2463 18.0229 23.099C18.5011 23.0254 18.8688 22.5841 18.8688 22.1058V18.869H22.1056C22.6206 18.869 23.0252 18.5011 23.0988 18.0231C23.2458 17.1772 23.9816 16.5519 24.9012 16.5519C25.8207 16.5519 26.5563 17.1772 26.7035 18.0231C26.7772 18.5013 27.1818 18.869 27.6967 18.869H30.8966V30.8966L18.869 30.8968V27.6969C18.869 27.2187 18.5011 26.7771 18.0231 26.7037L18.0229 26.7037ZM11.7701 21.9957C13.5355 21.9957 14.7863 20.3406 14.5287 18.8691H17.7655V22.0323C16.4414 22.2899 15.4482 23.4668 15.4482 24.9013C15.4482 26.3358 16.4414 27.5129 17.7655 27.7703V30.8968H5.73794V18.8692H9.0115C8.93787 20.8556 10.2987 21.9958 11.7701 21.9958L11.7701 21.9957Z"
fill="url(#paint0_linear_1502_730)"
/>
<path
d="M4.22976 14.2348C4.48735 15.5589 5.66424 16.5521 7.09873 16.5521C8.53321 16.5521 9.71035 15.5589 9.96769 14.2348H13.3149C13.8298 14.2348 14.2711 13.8301 14.2711 13.2785V9.9313C15.5953 9.6737 16.5885 8.49682 16.5885 7.06233C16.5885 5.62785 15.5953 4.4507 14.2711 4.19336V0.956513C14.2711 0.441584 13.8665 0.000256568 13.3149 0.000256568L0.956257 0C0.441327 0 0 0.404611 0 0.956257V13.3149C0 13.8298 0.404611 14.2711 0.956257 14.2711L4.22976 14.2348ZM15.4482 7.09911C15.4482 8.01865 14.8229 8.75422 13.977 8.90148C13.4988 8.97511 13.1311 9.41641 13.1311 9.89465V13.1315H9.89426C9.37933 13.1315 8.97472 13.4994 8.90109 13.9774C8.75408 14.8233 8.01827 15.4485 7.09873 15.4485C6.17918 15.4485 5.44362 14.8233 5.29636 13.9774C5.22272 13.4992 4.81812 13.1315 4.30319 13.1315L1.10325 13.1312V1.10365H13.1308V4.30358C13.1308 4.81851 13.4988 5.22312 13.9768 5.29675C14.8227 5.40708 15.4482 6.17957 15.4482 7.09911Z"
fill="url(#paint1_linear_1502_730)"
/>
</g>
<defs>
<linearGradient
id="paint0_linear_1502_730"
x1="16"
y1="0"
x2="16"
y2="32.0735"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint1_linear_1502_730"
x1="16"
y1="0"
x2="16"
y2="32.0735"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgIntegrations;

View File

@@ -0,0 +1,82 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgRefineStore = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="34"
height="30"
viewBox="0 0 34 30"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
className={props.className ? props.className : undefined}
>
<g opacity="0.75">
<path
d="M9.76961 9.45366H7.19799C7.09417 9.45146 6.99521 9.40967 6.92178 9.337C6.84836 9.26433 6.80613 9.16641 6.80391 9.06367V8.59339C6.80294 6.63101 7.70507 5.64982 9.51028 5.64982C10.108 5.6433 10.7004 5.76153 11.2488 5.99679C11.3357 6.0357 11.4298 6.05646 11.5251 6.0578C11.6205 6.05913 11.7151 6.041 11.803 6.00454C11.891 5.96808 11.9704 5.91408 12.0363 5.84589C12.1023 5.77771 12.1533 5.69681 12.1862 5.60824L13.2714 2.64603C13.3308 2.48463 13.3274 2.30709 13.2618 2.14805C13.1962 1.989 13.073 1.85984 12.9164 1.78576C12.4534 1.56756 11.9675 1.40024 11.4676 1.2868C10.6361 1.09388 9.78477 0.997648 8.93075 1.00004C6.4137 0.999088 4.46264 1.67823 3.07759 3.03746C1.69253 4.39669 1 6.23337 1 8.5475V26.3594C1 27.1401 1.31337 27.8888 1.87118 28.4409C2.42899 28.9929 3.18554 29.303 3.9744 29.303C4.365 29.303 4.75177 29.2269 5.11265 29.0789C5.47352 28.931 5.80141 28.7142 6.07761 28.4409C6.35381 28.1675 6.5729 27.843 6.72238 27.4859C6.87186 27.1288 6.94879 26.746 6.94879 26.3594V14.3787C6.94879 14.2734 6.99107 14.1724 7.06633 14.0979C7.1416 14.0234 7.24367 13.9816 7.35011 13.9816H9.76961C10.3763 13.9816 10.9582 13.743 11.3872 13.3185C11.8163 12.8939 12.0573 12.318 12.0573 11.7176C12.0573 11.1172 11.8163 10.5413 11.3872 10.1168C10.9582 9.69218 10.3763 9.45366 9.76961 9.45366Z"
stroke="url(#paint0_linear_1502_1746)"
/>
<path
d="M17.4159 11.0803C18.1672 11.0803 18.8241 11.5964 19.0284 12.3194C19.0952 12.5559 19.1732 12.8261 19.2633 13.13C19.3114 13.292 19.398 13.5716 19.5135 13.9387H31.382C32.422 13.9387 33.1918 14.9063 32.9579 15.9197L31.2783 23.1977C31.109 23.9316 30.4555 24.4514 29.7024 24.4514H21.3115C20.5802 24.4514 19.9399 23.9607 19.7498 23.2545L18.9365 20.2337L16.3412 13.13H14.1549C13.5889 13.13 13.13 12.6712 13.13 12.1052C13.13 11.5392 13.5887 11.0803 14.1547 11.0803H17.4159Z"
stroke="url(#paint1_linear_1502_1746)"
/>
<path
d="M30.989 27.2817C30.989 28.3983 30.0839 29.3034 28.9674 29.3034C27.8508 29.3034 26.9457 28.3983 26.9457 27.2817C26.9457 26.1652 27.8508 25.26 28.9674 25.26C30.0839 25.26 30.989 26.1652 30.989 27.2817Z"
stroke="url(#paint2_linear_1502_1746)"
/>
<path
d="M21.6893 29.3034C22.8059 29.3034 23.711 28.3983 23.711 27.2817C23.711 26.1652 22.8059 25.26 21.6893 25.26C20.5728 25.26 19.6677 26.1652 19.6677 27.2817C19.6677 28.3983 20.5728 29.3034 21.6893 29.3034Z"
stroke="url(#paint3_linear_1502_1746)"
/>
</g>
<defs>
<linearGradient
id="paint0_linear_1502_1746"
x1="17"
y1="1"
x2="17"
y2="29.3034"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint1_linear_1502_1746"
x1="17"
y1="1"
x2="17"
y2="29.3034"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint2_linear_1502_1746"
x1="17"
y1="1"
x2="17"
y2="29.3034"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint3_linear_1502_1746"
x1="17"
y1="1"
x2="17"
y2="29.3034"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgRefineStore;

View File

@@ -0,0 +1,181 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgRefineWeek = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="32"
height="32"
viewBox="0 0 32 32"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
>
<g opacity="0.75">
<path
d="M7.00024 0.999999C7.00024 0.447715 7.44795 0 8.00024 0C8.55252 0 9.00024 0.447715 9.00024 1V5C9.00024 5.55229 8.55252 6 8.00024 6C7.44795 6 7.00024 5.55228 7.00024 5V0.999999Z"
fill="url(#paint0_linear_1502_1488)"
/>
<path
d="M15.0005 0.999999C15.0005 0.447715 15.4482 0 16.0005 0C16.5528 0 17.0005 0.447715 17.0005 1V5C17.0005 5.55229 16.5528 6 16.0005 6C15.4482 6 15.0005 5.55228 15.0005 5V0.999999Z"
fill="url(#paint1_linear_1502_1488)"
/>
<path
d="M23.0002 0.999999C23.0002 0.447715 23.4479 0 24.0002 0C24.5525 0 25.0002 0.447715 25.0002 1V5C25.0002 5.55229 24.5525 6 24.0002 6C23.4479 6 23.0002 5.55228 23.0002 5V0.999999Z"
fill="url(#paint2_linear_1502_1488)"
/>
<path
d="M21.7927 15.2071C21.4021 15.5976 21.4021 16.2308 21.7927 16.6213L25.3282 20.1568L21.7927 23.6924C21.4021 24.0829 21.4021 24.7161 21.7927 25.1066C22.1832 25.4971 22.8163 25.4971 23.2069 25.1066L27.4487 20.8648L27.4495 20.864C27.7665 20.547 27.8262 20.0702 27.6286 19.693C27.5828 19.6055 27.5231 19.5233 27.4495 19.4497L23.2069 15.2071C22.8163 14.8166 22.1832 14.8166 21.7927 15.2071Z"
fill="url(#paint3_linear_1502_1488)"
/>
<path
d="M10.0286 23.6924C10.4191 24.0829 10.4191 24.7161 10.0286 25.1066C9.63805 25.4971 9.00488 25.4971 8.61436 25.1066L4.37171 20.864C3.98119 20.4734 3.98119 19.8403 4.37171 19.4497C4.37382 19.4476 4.37594 19.4455 4.37806 19.4434C4.37939 19.4421 4.38073 19.4408 4.38206 19.4395L8.6145 15.2071C9.00502 14.8166 9.63819 14.8166 10.0287 15.2071C10.4192 15.5976 10.4192 16.2308 10.0287 16.6213L6.49311 20.1569L10.0286 23.6924Z"
fill="url(#paint4_linear_1502_1488)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M4 2.00004H5.99992V4.00004H4C2.89543 4.00004 2 4.89547 2 6.00004V8.00004H30V6.00004C30 4.89547 29.1046 4.00004 28 4.00004H25.9999V2.00004H28C30.2091 2.00004 32 3.7909 32 6.00004V28C32 30.2092 30.2091 32 28 32H4C1.79086 32 0 30.2092 0 28V6.00004C0 3.7909 1.79086 2.00004 4 2.00004ZM2 10H30V28C30 29.1046 29.1046 30 28 30H4C2.89543 30 2 29.1046 2 28V10Z"
fill="url(#paint5_linear_1502_1488)"
/>
<path
d="M9.99992 2.00004V4.00004H13.9999V2.00004H9.99992Z"
fill="url(#paint6_linear_1502_1488)"
/>
<path
d="M17.9999 4.00004H21.9999V2.00004H17.9999V4.00004Z"
fill="url(#paint7_linear_1502_1488)"
/>
<g filter="url(#filter0_b_1502_1488)">
<path
fillRule="evenodd"
clipRule="evenodd"
d="M14.9956 13.5351C15.6615 13.1074 16.4725 12.9595 17.2508 13.1239C18.0287 13.2903 18.7095 13.7553 19.1439 14.4168C19.5782 15.0783 19.7307 15.8824 19.5678 16.6526L17.775 25.0872C17.6113 25.8574 17.1451 26.5303 16.479 26.9579C15.813 27.3856 15.0015 27.5329 14.2233 27.3675C13.445 27.202 12.7637 26.7374 12.3291 26.0758C11.8946 25.4143 11.7424 24.6099 11.9061 23.8397L13.6989 15.4051C13.8634 14.6353 14.3297 13.9627 14.9956 13.5351ZM18.3931 14.8991C18.0886 14.4355 17.6112 14.11 17.0659 13.9941C16.7959 13.9367 16.5173 13.9325 16.2461 13.9817C15.9749 14.0309 15.7164 14.1327 15.4853 14.281C15.2542 14.4294 15.0551 14.6215 14.8993 14.8464C14.7435 15.0713 14.6341 15.3246 14.5773 15.5918L12.7844 24.0264C12.6697 24.5661 12.7763 25.1297 13.0808 25.5932C13.3853 26.0568 13.8627 26.3823 14.408 26.4982C14.9534 26.6141 15.5219 26.5109 15.9886 26.2113C16.4553 25.9117 16.782 25.4401 16.8967 24.9005L18.6895 16.4659C18.8042 15.9263 18.6976 15.3626 18.3931 14.8991Z"
fill="#1890FF"
/>
</g>
<path
d="M18.2079 16.3134C18.0261 17.1684 17.1784 17.7127 16.3144 17.529C15.4505 17.3454 14.8974 16.5034 15.0791 15.6484C15.2609 14.7934 16.1086 14.2491 16.9726 14.4327C17.8365 14.6164 18.3896 15.4584 18.2079 16.3134Z"
fill="#3FDCF7"
/>
</g>
<defs>
<filter
id="filter0_b_1502_1488"
x="-73.6103"
y="-72.3938"
width="178.693"
height="185.28"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feGaussianBlur
in="BackgroundImageFix"
stdDeviation="42.7261"
/>
<feComposite
in2="SourceAlpha"
operator="in"
result="effect1_backgroundBlur_1502_1488"
/>
<feBlend
mode="normal"
in="SourceGraphic"
in2="effect1_backgroundBlur_1502_1488"
result="shape"
/>
</filter>
<linearGradient
id="paint0_linear_1502_1488"
x1="16"
y1="0"
x2="16"
y2="32"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint1_linear_1502_1488"
x1="16"
y1="0"
x2="16"
y2="32"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint2_linear_1502_1488"
x1="16"
y1="0"
x2="16"
y2="32"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint3_linear_1502_1488"
x1="16"
y1="0"
x2="16"
y2="32"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint4_linear_1502_1488"
x1="16"
y1="0"
x2="16"
y2="32"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint5_linear_1502_1488"
x1="16"
y1="0"
x2="16"
y2="32"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint6_linear_1502_1488"
x1="16"
y1="0"
x2="16"
y2="32"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint7_linear_1502_1488"
x1="16"
y1="0"
x2="16"
y2="32"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgRefineWeek;

View File

@@ -0,0 +1,51 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgRefine = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="32"
height="32"
viewBox="0 0 32 32"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
className={props.className ? props.className : undefined}
>
<g opacity="0.75">
<path
d="M17.6851 10.6108C17.6851 11.6913 16.8 12.5672 15.7082 12.5672C14.6163 12.5672 13.7312 11.6913 13.7312 10.6108C13.7312 9.53025 14.6163 8.65432 15.7082 8.65432C16.8 8.65432 17.6851 9.53025 17.6851 10.6108Z"
fill="#1890FF"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M13.0872 8.07679C13.7824 7.38857 14.725 7.00133 15.7083 7C16.6916 7.00133 17.6343 7.38857 18.3295 8.07679C19.0247 8.76501 19.4157 9.69802 19.4167 10.6711V21.3301C19.4167 22.3034 19.026 23.2369 18.3305 23.9251C17.6351 24.6133 16.6918 25 15.7083 25C14.7248 25 13.7816 24.6133 13.0861 23.9251C12.3907 23.2369 12 22.3034 12 21.3301V10.6711C12.001 9.69802 12.392 8.76501 13.0872 8.07679ZM17.5456 8.85287C17.0584 8.37063 16.3975 8.09971 15.7083 8.09971C15.3671 8.09971 15.0292 8.16623 14.714 8.29545C14.3987 8.42468 14.1123 8.61409 13.871 8.85287C13.6297 9.09165 13.4383 9.37512 13.3078 9.6871C13.1772 9.99908 13.11 10.3335 13.11 10.6711V21.3301C13.11 22.0121 13.3837 22.6661 13.871 23.1484C14.3583 23.6306 15.0192 23.9015 15.7083 23.9015C16.3975 23.9015 17.0584 23.6306 17.5456 23.1484C18.0329 22.6661 18.3067 22.0121 18.3067 21.3301V10.6711C18.3067 9.98916 18.0329 9.3351 17.5456 8.85287Z"
fill="#1890FF"
/>
</g>
<circle
opacity="0.75"
cx="16"
cy="16"
r="15.3333"
stroke="url(#paint0_linear_1520_2185)"
strokeWidth="1.33333"
/>
<defs>
<linearGradient
id="paint0_linear_1520_2185"
x1="16"
y1="0"
x2="16"
y2="32"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgRefine;

View File

@@ -0,0 +1,22 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgRightArrow = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="10"
height="18"
viewBox="0 0 10 18"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
className={props.className ? props.className : undefined}
>
<path
d="M1.06102 0.938983C0.826703 1.1733 0.826702 1.5532 1.06102 1.78751L8.2735 9L1.06102 16.2125C0.826701 16.4468 0.826702 16.8267 1.06102 17.061C1.29533 17.2953 1.67523 17.2953 1.90954 17.061L9.5463 9.42426C9.78061 9.18995 9.78061 8.81005 9.5463 8.57573L1.90954 0.938983C1.67523 0.704669 1.29533 0.704669 1.06102 0.938983Z"
fill="#66B5FF"
/>
</svg>
);
export default SvgRightArrow;

View File

@@ -0,0 +1,842 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgTutorial = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="32"
height="32"
viewBox="0 0 32 32"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
className={props.className ? props.className : undefined}
>
<g opacity="0.75">
<path
d="M17.3143 21.4187H14.6905C14.4474 21.4187 14.2539 21.2252 14.2539 20.982C14.2539 20.7389 14.4474 20.5454 14.6905 20.5454H17.3143C17.5574 20.5454 17.751 20.7389 17.751 20.982C17.751 21.2252 17.5574 21.4187 17.3143 21.4187Z"
fill="url(#paint0_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M12.4266 6.72886C12.4266 8.69565 14.0333 10.3023 16.0045 10.3023C17.9713 10.3023 19.578 8.70456 19.578 6.72886C19.578 4.76208 17.9713 3.15986 16.0045 3.15986C14.0333 3.15986 12.4266 4.76208 12.4266 6.72886ZM13.3041 6.72892C13.3041 5.23917 14.5148 4.03747 16.0045 4.03747C17.4897 4.03747 18.7004 5.24815 18.7004 6.72892C18.7004 8.21415 17.4897 9.42929 16.0045 9.42929C14.5148 9.42929 13.3041 8.21415 13.3041 6.72892Z"
fill="url(#paint1_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M3.13645 9.57766H9.13613C9.37924 9.57766 9.57279 9.38411 9.57279 9.14099V3.14131C9.57279 2.8982 9.37924 2.70465 9.13613 2.70465H3.13645C2.89334 2.70465 2.69978 2.8982 2.69978 3.14131V9.14099C2.69978 9.38411 2.89334 9.57766 3.13645 9.57766ZM8.69967 8.70457H3.57331V3.57821H8.69967V8.70457Z"
fill="url(#paint2_linear_1502_1678)"
/>
<path
d="M28.8674 3.5782H22.9626C22.7195 3.5782 22.5259 3.38465 22.5259 3.14154C22.5259 2.89842 22.7195 2.70487 22.9626 2.70487H28.8674C29.1105 2.70487 29.3041 2.89842 29.3041 3.14154C29.3041 3.38465 29.1061 3.5782 28.8674 3.5782Z"
fill="url(#paint3_linear_1502_1678)"
/>
<path
d="M22.9626 6.4898H28.8674C29.1061 6.4898 29.3041 6.29625 29.3041 6.05313C29.3041 5.81002 29.1105 5.61647 28.8674 5.61647H22.9626C22.7195 5.61647 22.5259 5.81002 22.5259 6.05313C22.5259 6.29625 22.7195 6.4898 22.9626 6.4898Z"
fill="url(#paint4_linear_1502_1678)"
/>
<path
d="M28.8674 9.39763H22.9626C22.7195 9.39763 22.5259 9.20408 22.5259 8.96096C22.5259 8.71339 22.7195 8.51983 22.9626 8.51983H28.8674C29.1105 8.51983 29.3041 8.71338 29.3041 8.96096C29.3041 9.20408 29.1061 9.39763 28.8674 9.39763Z"
fill="url(#paint5_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M11.9127 23.7367H1.87681C0.841637 23.7367 0.00443699 22.8996 0.00443699 21.8688V1.87237C0.00443699 0.841658 0.84158 0 1.87681 0H30.1321C31.1628 0 32 0.837143 32 1.87237V21.8688C32 22.8995 31.1629 23.7367 30.1321 23.7367H20.0883C20.6365 25.216 21.895 26.9742 23.2777 27.6255C23.4306 27.6977 23.5253 27.8506 23.5253 28.0171V29.3718C23.5342 29.6149 23.3362 29.8084 23.0933 29.8084H8.91149C8.66837 29.8084 8.47482 29.6149 8.47482 29.3718V28.0171C8.47482 27.8506 8.57394 27.693 8.7224 27.6255C10.1057 26.9778 11.3648 25.2219 11.9127 23.7367ZM12.4817 22.8677H1.87681C1.32341 22.8677 0.882271 22.4223 0.882271 21.8732V19.1007H31.1222V21.8732C31.1222 22.4221 30.6813 22.8677 30.1321 22.8677H19.5188C19.5028 22.8668 19.4867 22.8668 19.4705 22.8677H12.5298C12.5136 22.8668 12.4976 22.8668 12.4817 22.8677ZM0.882271 18.2229H7.24732C7.93452 14.91 10.4461 12.2506 13.7362 11.3957C13.8668 11.3598 14.0108 11.3912 14.1233 11.4767C15.2081 12.3588 16.7878 12.3588 17.877 11.4767C17.985 11.3912 18.129 11.3598 18.2641 11.3957C21.563 12.2509 24.0749 14.9101 24.7581 18.2229H31.1222V1.88129C31.1222 1.32764 30.681 0.877606 30.1321 0.877606H1.87681C1.32316 0.877606 0.882271 1.32767 0.882271 1.88129V18.2229ZM23.8623 18.2229H8.14199C8.79282 15.3757 10.9403 13.0988 13.754 12.2913C15.0909 13.241 16.9136 13.241 18.2458 12.2913C21.0595 13.1028 23.2106 15.3833 23.8623 18.2229ZM12.8327 23.7367C12.3058 25.3941 10.9434 27.4049 9.34343 28.2873V28.9398H22.6567V28.2873C21.0653 27.4049 19.6954 25.3941 19.1639 23.7367H12.8327Z"
fill="url(#paint6_linear_1502_1678)"
/>
<path
d="M0.0125299 30.9737C0.0136461 30.9737 0.0145391 30.9735 0.0152088 30.9728V30.9692C0.0145391 30.9699 0.0136461 30.9706 0.0125299 30.971H0.00985096C0.00851152 30.971 0.00739526 30.9708 0.00627905 30.9701C0.00560931 30.969 0.00538607 30.9675 0.00538607 30.9657C0.00538607 30.9639 0.0056093 30.9628 0.00627905 30.9621C0.00739526 30.961 0.00851152 30.9603 0.00985096 30.9603H0.0125299C0.0136461 30.9603 0.0145391 30.961 0.0152088 30.9621V30.9585C0.0145391 30.9581 0.0136461 30.9576 0.0125299 30.9576C0.0118602 30.9572 0.0109672 30.9567 0.00985096 30.9567C0.00739497 30.9567 0.00538578 30.9576 0.00359982 30.9594C0.00181386 30.9612 0.000920885 30.9634 0.000920885 30.9657C0.000920885 30.9681 0.00181386 30.9701 0.00359982 30.9719C0.00538607 30.9733 0.00739526 30.9737 0.00985096 30.9737H0.0125299Z"
fill="url(#paint7_linear_1502_1678)"
/>
<path
d="M0.0272638 30.9648C0.0272638 30.9643 0.0259243 30.9639 0.0254778 30.9639C0.0241383 30.9639 0.0232454 30.9646 0.0227989 30.9657V30.9737H0.018334V30.9612H0.0227989V30.9639C0.0227989 30.9628 0.0230221 30.9621 0.0236919 30.9621C0.0241383 30.9617 0.0250314 30.9612 0.0263708 30.9612L0.0272638 30.9648Z"
fill="url(#paint8_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.0419421 30.9684C0.0419421 30.9666 0.0412724 30.9643 0.0401562 30.963C0.0388167 30.9619 0.0374772 30.9612 0.0356913 30.9612C0.0332356 30.9612 0.0314496 30.9619 0.0303334 30.963C0.0289939 30.9643 0.0285474 30.9657 0.0285474 30.9675C0.0285474 30.9692 0.0289939 30.9708 0.0303334 30.9719C0.0314496 30.9733 0.0332356 30.9737 0.0356913 30.9737H0.0383702C0.0394864 30.9737 0.0403794 30.9735 0.0410491 30.9728V30.9701C0.0405192 30.9701 0.0398494 30.9704 0.0390399 30.9708L0.0356913 30.971H0.0330123V30.9684H0.0419421ZM0.0365842 30.9648C0.0370307 30.9648 0.0374772 30.9655 0.0374772 30.9666H0.0330123V30.9648C0.0334588 30.9643 0.0343518 30.9639 0.0356913 30.9639C0.0361378 30.9639 0.0365842 30.9643 0.0365842 30.9648Z"
fill="url(#paint9_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.0562856 30.9666V30.9737H0.0527137V30.9719C0.0520439 30.9726 0.051151 30.9733 0.0500348 30.9737H0.0482488C0.0469093 30.9737 0.0457931 30.9735 0.0446769 30.9728C0.0440071 30.9724 0.0437839 30.9715 0.0437839 30.9701C0.0437839 30.9684 0.0440071 30.9672 0.0446769 30.9666C0.0457931 30.9661 0.047579 30.9657 0.0500348 30.9657H0.0527137C0.0527137 30.9652 0.0522672 30.9648 0.0518207 30.9648C0.051151 30.9643 0.050258 30.9639 0.0491418 30.9639H0.0464628C0.0457931 30.9639 0.0451233 30.9643 0.0446769 30.9648V30.9621C0.0454864 30.9618 0.0468258 30.9612 0.0473558 30.9612H0.0500348C0.0522672 30.9612 0.0538299 30.9619 0.0544996 30.963C0.0556159 30.9637 0.0562856 30.9648 0.0562856 30.9666ZM0.0500345 30.9684C0.0493647 30.9684 0.048695 30.9688 0.0482485 30.9692V30.971H0.0518204C0.0522669 30.9706 0.0527134 30.9697 0.0527134 30.9684H0.0500345Z"
fill="url(#paint10_linear_1502_1678)"
/>
<path
d="M0.0642666 30.9612V30.9576H0.0598017V30.9612H0.0580158V30.9639H0.0598017V30.9692C0.0598017 30.971 0.0600249 30.9724 0.0606947 30.9728C0.0618109 30.9735 0.0629271 30.9737 0.0642666 30.9737H0.0678385V30.971H0.0642666V30.9639H0.0678385V30.9612H0.0642666Z"
fill="url(#paint11_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.0830471 30.9675L0.0741173 30.9684V30.971H0.0794752C0.0802847 30.9707 0.0816241 30.9701 0.0821541 30.9701V30.9728C0.0814844 30.9735 0.0805914 30.9737 0.0794752 30.9737H0.0767962C0.0743405 30.9737 0.0725546 30.9733 0.0714383 30.9719C0.0700989 30.9708 0.0696524 30.9692 0.0696524 30.9675C0.0696524 30.9657 0.0700989 30.9643 0.0714383 30.963C0.0725546 30.9619 0.0743405 30.9612 0.0767962 30.9612C0.0785822 30.9612 0.0799216 30.9619 0.0812611 30.963C0.0823773 30.9643 0.0830471 30.9657 0.0830471 30.9675ZM0.0785822 30.9666C0.0785822 30.9655 0.0781357 30.9648 0.0776892 30.9648C0.0776892 30.9643 0.0772427 30.9639 0.0767962 30.9639C0.0754568 30.9639 0.0745637 30.9643 0.0741173 30.9648V30.9666H0.0785822Z"
fill="url(#paint12_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.0939861 30.9567V30.963C0.0939861 30.9625 0.0933163 30.9621 0.0922001 30.9621C0.0915304 30.9617 0.0908607 30.9612 0.0904142 30.9612C0.0886282 30.9612 0.0870655 30.9619 0.0859493 30.963C0.0852795 30.9643 0.0850563 30.9657 0.0850563 30.9675C0.0850563 30.9692 0.0852795 30.9708 0.0859493 30.9719C0.0870655 30.9733 0.0886282 30.9737 0.0904142 30.9737H0.0922001C0.0933163 30.9733 0.0939861 30.9726 0.0939861 30.9719V30.9737H0.098451V30.9567H0.0939861ZM0.0930931 30.9701C0.0930931 30.9708 0.0926466 30.971 0.0922001 30.971C0.0908607 30.971 0.0899676 30.9708 0.0895212 30.9701V30.9648C0.0899676 30.9643 0.0908607 30.9639 0.0922001 30.9639C0.0926466 30.9639 0.0930931 30.9643 0.0930931 30.9648C0.0935396 30.9654 0.0939861 30.9663 0.0939861 30.9675C0.0939861 30.9688 0.0935396 30.9697 0.0930931 30.9701Z"
fill="url(#paint13_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.114301 30.963C0.114301 30.9625 0.114525 30.9621 0.115194 30.9621C0.116004 30.9618 0.117343 30.9612 0.117873 30.9612C0.119659 30.9612 0.120775 30.9619 0.121445 30.963C0.122561 30.9643 0.123231 30.9657 0.123231 30.9675C0.123231 30.9692 0.122561 30.9708 0.121445 30.9719C0.120775 30.9733 0.119659 30.9737 0.117873 30.9737H0.115194H0.109836V30.9567H0.114301V30.963ZM0.116087 30.971C0.117204 30.971 0.117873 30.9708 0.117873 30.9701C0.11832 30.9697 0.118766 30.9688 0.118766 30.9675C0.118766 30.9663 0.11832 30.9654 0.117873 30.9648C0.117873 30.9643 0.117204 30.9639 0.116087 30.9639C0.115418 30.9639 0.114748 30.9643 0.114301 30.9648V30.9701C0.114748 30.9708 0.115418 30.971 0.116087 30.971Z"
fill="url(#paint14_linear_1502_1678)"
/>
<path
d="M0.128617 30.9612H0.124152L0.12951 30.9737C0.12951 30.9742 0.129063 30.9755 0.128617 30.9755H0.125938V30.9791H0.128617C0.129733 30.9791 0.130626 30.9786 0.131296 30.9782C0.131742 30.9775 0.132412 30.9764 0.133082 30.9746L0.13844 30.9612H0.133975L0.131296 30.9701L0.128617 30.9612Z"
fill="url(#paint15_linear_1502_1678)"
/>
<path
d="M0.14843 30.9567H0.153788L0.158253 30.9657L0.161825 30.9567H0.167182V30.9737H0.162718V30.9621L0.159146 30.9701H0.156467L0.152895 30.9621V30.9737H0.14843V30.9567Z"
fill="url(#paint16_linear_1502_1678)"
/>
<path
d="M0.174354 30.9612H0.170782V30.9684C0.170782 30.9701 0.171006 30.9717 0.171675 30.9728C0.172122 30.9735 0.173461 30.9737 0.175247 30.9737H0.177033L0.178819 30.9719V30.9737H0.183284V30.9612H0.178819V30.9675C0.178819 30.9688 0.178373 30.9697 0.177926 30.9701C0.177926 30.9708 0.17748 30.971 0.177033 30.971H0.175247C0.175247 30.971 0.174801 30.9699 0.174354 30.9692V30.9612Z"
fill="url(#paint17_linear_1502_1678)"
/>
<path
d="M0.199358 30.9737H0.194893V30.9648C0.194893 30.9643 0.193553 30.9639 0.193107 30.9639C0.192437 30.9639 0.191767 30.9643 0.191321 30.9648V30.9737H0.186856V30.9567H0.191321V30.963C0.191321 30.9625 0.191544 30.9621 0.192214 30.9621C0.19333 30.9617 0.194223 30.9612 0.194893 30.9612C0.196009 30.9612 0.196902 30.9619 0.197572 30.963C0.198688 30.9637 0.199358 30.9648 0.199358 30.9666V30.9737Z"
fill="url(#paint18_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.21451 30.9737V30.9666C0.21451 30.9648 0.213841 30.9637 0.212724 30.963C0.212055 30.9619 0.210492 30.9612 0.20826 30.9612H0.205581C0.205051 30.9612 0.204381 30.9615 0.203571 30.9618L0.202902 30.9648C0.203348 30.9643 0.204018 30.9639 0.204688 30.9639H0.207367C0.208483 30.9639 0.209376 30.9643 0.210046 30.9648C0.210492 30.9648 0.210938 30.9652 0.210938 30.9657H0.20826C0.205804 30.9657 0.204018 30.9661 0.202902 30.9666C0.202232 30.9672 0.202009 30.9684 0.202009 30.9701C0.202009 30.9715 0.202232 30.9724 0.202902 30.9728C0.204018 30.9735 0.205134 30.9737 0.206474 30.9737H0.20826C0.209376 30.9733 0.210269 30.9726 0.210938 30.9719V30.9737H0.21451ZM0.206473 30.9692C0.20692 30.9688 0.20759 30.9684 0.208259 30.9684H0.210938C0.210938 30.9697 0.210492 30.9706 0.210045 30.971H0.207366L0.206473 30.9692Z"
fill="url(#paint19_linear_1502_1678)"
/>
<path
d="M0.229691 30.9639C0.230138 30.9628 0.230807 30.9621 0.231477 30.9621C0.231924 30.9617 0.232593 30.9612 0.233263 30.9612C0.235049 30.9612 0.236165 30.9619 0.236835 30.963C0.237281 30.9637 0.237728 30.9648 0.237728 30.9666V30.9737H0.234156V30.9675C0.234156 30.967 0.233709 30.9655 0.233263 30.9648C0.233263 30.9643 0.232816 30.9639 0.23237 30.9639C0.2317 30.9639 0.23103 30.9643 0.230584 30.9648C0.229914 30.9655 0.229691 30.9663 0.229691 30.9675V30.9737H0.226119V30.9675C0.226119 30.9663 0.225673 30.9655 0.225226 30.9648C0.225226 30.9643 0.22478 30.9639 0.224333 30.9639C0.223663 30.9639 0.222994 30.9643 0.222547 30.9648V30.9737H0.218082V30.9612H0.222547V30.963C0.222547 30.9625 0.22277 30.9621 0.22344 30.9621C0.223887 30.9617 0.22478 30.9612 0.226119 30.9612C0.226566 30.9612 0.227235 30.9617 0.227905 30.9621C0.228352 30.9621 0.229021 30.9628 0.229691 30.9639Z"
fill="url(#paint20_linear_1502_1678)"
/>
<path
d="M0.254918 30.9621C0.254248 30.9621 0.253578 30.9628 0.253132 30.9639C0.252462 30.9628 0.251792 30.9621 0.251346 30.9621C0.250676 30.9617 0.250006 30.9612 0.24956 30.9612C0.24822 30.9612 0.247327 30.9617 0.246881 30.9621C0.246211 30.9621 0.245988 30.9625 0.245988 30.963V30.9612H0.241523V30.9737H0.245988V30.9648C0.246434 30.9643 0.247104 30.9639 0.247774 30.9639C0.24822 30.9639 0.248667 30.9643 0.248667 30.9648C0.249113 30.9655 0.24956 30.9663 0.24956 30.9675V30.9737H0.253132V30.9675C0.253132 30.9663 0.253355 30.9655 0.254025 30.9648C0.254471 30.9643 0.255141 30.9639 0.255811 30.9639C0.256257 30.9639 0.256704 30.9643 0.256704 30.9648C0.25715 30.9655 0.257597 30.9661 0.257597 30.9666V30.9737H0.261169V30.9666C0.261169 30.9648 0.260722 30.9637 0.260276 30.963C0.259606 30.9619 0.25849 30.9612 0.256704 30.9612C0.256034 30.9612 0.255364 30.9617 0.254918 30.9621Z"
fill="url(#paint21_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.276628 30.9666V30.9737H0.273056V30.9719C0.272387 30.9726 0.271494 30.9733 0.270377 30.9737H0.268591C0.267252 30.9737 0.266136 30.9735 0.26502 30.9728C0.26435 30.9724 0.264127 30.9715 0.264127 30.9701C0.264127 30.9684 0.26435 30.9672 0.26502 30.9666C0.266136 30.9661 0.267922 30.9657 0.270377 30.9657H0.273056C0.273056 30.9652 0.27261 30.9648 0.272163 30.9648C0.271494 30.9643 0.270601 30.9639 0.269484 30.9639H0.266805L0.26557 30.9643L0.26502 30.9621C0.265829 30.9618 0.267169 30.9612 0.267698 30.9612H0.270377C0.27261 30.9612 0.274173 30.9619 0.274842 30.963C0.275959 30.9637 0.276628 30.9648 0.276628 30.9666ZM0.270377 30.9684C0.269707 30.9684 0.269038 30.9688 0.268591 30.9692V30.971H0.272163C0.27261 30.9706 0.273056 30.9697 0.273056 30.9684H0.270377Z"
fill="url(#paint22_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.288209 30.9567V30.963C0.288209 30.9625 0.287539 30.9621 0.286423 30.9621C0.285753 30.9617 0.285084 30.9612 0.284637 30.9612C0.282851 30.9612 0.281288 30.9619 0.280172 30.963C0.279503 30.9643 0.279279 30.9657 0.279279 30.9675C0.279279 30.9692 0.279503 30.9708 0.280172 30.9719C0.281288 30.9733 0.282851 30.9737 0.284637 30.9737H0.286423C0.287539 30.9733 0.288209 30.9726 0.288209 30.9719V30.9737H0.292674V30.9567H0.288209ZM0.287316 30.9701C0.287316 30.9708 0.28687 30.971 0.286423 30.971C0.285084 30.971 0.284191 30.9708 0.283744 30.9701V30.9648C0.284191 30.9643 0.285084 30.9639 0.286423 30.9639C0.28687 30.9639 0.287316 30.9643 0.287316 30.9648C0.287763 30.9654 0.288209 30.9663 0.288209 30.9675C0.288209 30.9688 0.287763 30.9697 0.287316 30.9701Z"
fill="url(#paint23_linear_1502_1678)"
/>
<path
d="M0.315668 30.9576V30.9612C0.314998 30.9608 0.314105 30.9603 0.312989 30.9603H0.31031C0.309641 30.9603 0.308971 30.9608 0.308524 30.9612C0.307855 30.9612 0.307631 30.9617 0.307631 30.9621L0.308971 30.9634L0.31031 30.9639H0.312096C0.313882 30.9639 0.314998 30.9646 0.315668 30.9657C0.316115 30.9663 0.316561 30.9672 0.316561 30.9683C0.316561 30.9701 0.315891 30.9717 0.314775 30.9728C0.314105 30.9735 0.312543 30.9737 0.31031 30.9737H0.306738C0.306069 30.9737 0.305176 30.9735 0.304059 30.9728V30.9692L0.306738 30.971H0.312096C0.312543 30.9706 0.312989 30.9699 0.312989 30.9692C0.313237 30.9694 0.312989 30.969 0.312989 30.9692L0.312096 30.9683C0.312096 30.9679 0.311427 30.9675 0.31031 30.9675H0.308524C0.306738 30.967 0.305399 30.9663 0.304952 30.9657C0.304283 30.9646 0.304059 30.9634 0.304059 30.9621C0.304059 30.9603 0.304506 30.9592 0.305845 30.9585C0.306962 30.9574 0.308524 30.9567 0.31031 30.9567L0.312096 30.9576H0.315668Z"
fill="url(#paint24_linear_1502_1678)"
/>
<path
d="M0.328421 30.9737H0.332886V30.9666C0.332886 30.9648 0.332216 30.9637 0.3311 30.963C0.33043 30.9619 0.329537 30.9612 0.328421 30.9612C0.327751 30.9612 0.326858 30.9617 0.325742 30.9621C0.325072 30.9621 0.324849 30.9625 0.324849 30.963V30.9567H0.320384V30.9737H0.324849V30.9648C0.325296 30.9643 0.325965 30.9639 0.326635 30.9639C0.327082 30.9639 0.327528 30.9643 0.327528 30.9648L0.328421 30.9666V30.9737Z"
fill="url(#paint25_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.347788 30.9666V30.9737H0.344216V30.9719C0.343546 30.9726 0.342653 30.9733 0.341537 30.9737H0.339751C0.338411 30.9737 0.337295 30.9735 0.336179 30.9728C0.335509 30.9724 0.335286 30.9715 0.335286 30.9701C0.335286 30.9684 0.335509 30.9672 0.336179 30.9666C0.337295 30.9661 0.339081 30.9657 0.341537 30.9657H0.344216C0.344216 30.9652 0.343769 30.9648 0.343323 30.9648C0.342653 30.9643 0.34176 30.9639 0.340644 30.9639H0.337965L0.336179 30.9648V30.9621C0.337295 30.9617 0.338188 30.9612 0.338858 30.9612H0.341537C0.343769 30.9612 0.345332 30.9619 0.346002 30.963C0.347118 30.9637 0.347788 30.9648 0.347788 30.9666ZM0.340652 30.9686L0.33975 30.9692V30.971H0.343322C0.343769 30.9706 0.344215 30.9697 0.344215 30.9684L0.340652 30.9686Z"
fill="url(#paint26_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.356717 30.9621C0.356048 30.9621 0.355824 30.9625 0.355824 30.963V30.9567H0.351359V30.9737H0.355824H0.359396C0.361182 30.9737 0.362298 30.9733 0.362968 30.9719C0.364084 30.9708 0.364754 30.9692 0.364754 30.9675C0.364754 30.9657 0.364084 30.9643 0.362968 30.963C0.362298 30.9619 0.361182 30.9612 0.359396 30.9612L0.358206 30.9615L0.356717 30.9621ZM0.359396 30.9701C0.359396 30.9708 0.358727 30.971 0.35761 30.971C0.356941 30.971 0.356271 30.9708 0.355824 30.9701V30.9648L0.356791 30.9641C0.357907 30.9641 0.359396 30.9643 0.359396 30.9648C0.359843 30.9654 0.360289 30.9663 0.360289 30.9675C0.360289 30.9688 0.359843 30.9697 0.359396 30.9701Z"
fill="url(#paint27_linear_1502_1678)"
/>
<path
d="M0.376614 30.9648C0.376614 30.9643 0.375275 30.9639 0.374828 30.9639C0.373489 30.9639 0.372596 30.9646 0.372149 30.9657V30.9737H0.367684V30.9612H0.372149V30.9639C0.372149 30.9628 0.372372 30.9621 0.373042 30.9621C0.373489 30.9617 0.374382 30.9612 0.375721 30.9612L0.376614 30.9648Z"
fill="url(#paint28_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.390232 30.9737V30.9666C0.390232 30.9648 0.389562 30.9637 0.388446 30.963C0.387776 30.9619 0.386214 30.9612 0.383981 30.9612H0.381302L0.379676 30.9617L0.378623 30.9621V30.9648C0.37907 30.9643 0.379739 30.9639 0.380409 30.9639H0.383088C0.384204 30.9639 0.385097 30.9643 0.385767 30.9648C0.386214 30.9648 0.38666 30.9652 0.38666 30.9657H0.383981C0.381525 30.9657 0.379739 30.9661 0.378623 30.9666C0.377954 30.9672 0.37773 30.9684 0.37773 30.9701C0.37773 30.9715 0.377953 30.9724 0.378623 30.9728C0.379739 30.9735 0.380856 30.9737 0.382195 30.9737H0.383981C0.385097 30.9733 0.38599 30.9726 0.38666 30.9719V30.9737H0.390232ZM0.38338 30.9685L0.38666 30.9684C0.38666 30.9697 0.386213 30.9706 0.385767 30.971H0.383088L0.382195 30.9701C0.382506 30.9698 0.382927 30.9686 0.38338 30.9685Z"
fill="url(#paint29_linear_1502_1678)"
/>
<path
d="M0.393804 30.9612H0.398269V30.9737H0.393804V30.9612Z"
fill="url(#paint30_linear_1502_1678)"
/>
<path
d="M0.393804 30.9567H0.398269V30.9594H0.393804V30.9567Z"
fill="url(#paint31_linear_1502_1678)"
/>
<path
d="M0.411468 30.9612H0.401645L0.401646 30.9639H0.407004L0.400752 30.971V30.9737H0.411468V30.971H0.405217L0.411468 30.9639V30.9612Z"
fill="url(#paint32_linear_1502_1678)"
/>
<path
d="M0.00982277 30.9793V30.982H0.00625086V30.9838H0.00982277V30.9864H0.00625086V30.9963H0.00267894V30.9864H0V30.9838H0.00267894C0.00267894 30.9826 0.00290218 30.9809 0.00357192 30.9802C0.00401841 30.9797 0.00535788 30.9793 0.00714384 30.9793H0.00982277Z"
fill="url(#paint33_linear_1502_1678)"
/>
<path
d="M0.0196735 30.9873L0.0205664 30.9838C0.019227 30.9838 0.017441 30.9842 0.0169945 30.9846C0.0163248 30.9846 0.0161015 30.9853 0.0161015 30.9864V30.9838H0.0116366V30.9963H0.0161015V30.9882C0.0165481 30.9871 0.017441 30.9864 0.0187805 30.9864C0.0192269 30.9864 0.0196735 30.9869 0.0196735 30.9873Z"
fill="url(#paint34_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.0289939 30.9838C0.0307799 30.9838 0.0321193 30.9844 0.0334588 30.9855C0.034575 30.9869 0.0352448 30.9882 0.0352448 30.99C0.0352448 30.9918 0.034575 30.9934 0.0334588 30.9945C0.0321193 30.9958 0.0307799 30.9963 0.0289939 30.9963C0.0265382 30.9963 0.0247523 30.9958 0.023636 30.9945C0.0222965 30.9934 0.0218501 30.9918 0.0218501 30.99C0.0218501 30.9882 0.0222966 30.9869 0.023636 30.9855C0.0247523 30.9844 0.0265382 30.9838 0.0289939 30.9838ZM0.0289939 30.9864C0.0276545 30.9864 0.0267614 30.9869 0.026315 30.9873V30.9927C0.0267614 30.9934 0.0276545 30.9936 0.0289939 30.9936C0.0294404 30.9936 0.0301101 30.9934 0.0307799 30.9927C0.0312264 30.9922 0.0316729 30.9913 0.0316729 30.99C0.0316729 30.9889 0.0312264 30.988 0.0307799 30.9873C0.0301101 30.9869 0.0294404 30.9864 0.0289939 30.9864Z"
fill="url(#paint35_linear_1502_1678)"
/>
<path
d="M0.0515696 30.9846C0.0508998 30.9846 0.0502301 30.9853 0.0497836 30.9864C0.0491139 30.9853 0.0484442 30.9846 0.0479976 30.9846C0.0473279 30.9842 0.0466582 30.9838 0.0462117 30.9838C0.0448722 30.9838 0.0439792 30.9842 0.0435327 30.9846C0.042863 30.9846 0.0426398 30.9851 0.0426398 30.9855V30.9838H0.0381749V30.9963H0.0426398V30.9873C0.0430863 30.9869 0.043756 30.9864 0.0444257 30.9864C0.0448722 30.9864 0.0453187 30.9869 0.0453187 30.9873C0.0457652 30.988 0.0462117 30.9889 0.0462117 30.99V30.9963H0.0497836V30.99C0.0497836 30.9889 0.0500068 30.988 0.0506766 30.9873C0.051123 30.9869 0.0517928 30.9864 0.0524625 30.9864C0.052909 30.9864 0.0533555 30.9869 0.0533555 30.9873C0.053802 30.988 0.0542485 30.9887 0.0542485 30.9891V30.9963H0.0578204V30.9891C0.0578204 30.9873 0.057374 30.9862 0.0569274 30.9855C0.0562577 30.9844 0.0551415 30.9838 0.0533555 30.9838C0.0526858 30.9838 0.0520161 30.9842 0.0515696 30.9846Z"
fill="url(#paint36_linear_1502_1678)"
/>
<path
d="M0.073894 30.9802V30.9838H0.077466V30.9864H0.073894V30.9936H0.077466V30.9963H0.073894C0.0725545 30.9963 0.0714383 30.996 0.0703221 30.9954C0.0696524 30.9949 0.0694291 30.9936 0.0694291 30.9918V30.9864H0.0676432V30.9838H0.0694291V30.9802H0.073894Z"
fill="url(#paint37_linear_1502_1678)"
/>
<path
d="M0.0926187 30.9963V30.9891C0.0926187 30.9873 0.091949 30.9862 0.0908327 30.9855C0.090163 30.9844 0.08927 30.9838 0.0881538 30.9838C0.0876238 30.9838 0.0869541 30.984 0.0861446 30.9844C0.0854748 30.9844 0.0845819 30.9851 0.0845819 30.9855V30.9793H0.080117V30.9963H0.0845819V30.9873C0.0850284 30.9869 0.0856981 30.9864 0.0863679 30.9864C0.0868144 30.9864 0.0872608 30.9869 0.0872608 30.9873L0.0881538 30.9891V30.9963H0.0926187Z"
fill="url(#paint38_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.108748 30.99L0.0998183 30.9909V30.9936H0.105176C0.105986 30.9932 0.107325 30.9927 0.107855 30.9927V30.9954C0.107185 30.996 0.106292 30.9963 0.105176 30.9963H0.102497C0.100042 30.9963 0.0982556 30.9958 0.0971394 30.9945C0.0957999 30.9934 0.0953535 30.9918 0.0953535 30.99C0.0953535 30.9882 0.0957999 30.9869 0.0971394 30.9855C0.0982556 30.9844 0.100042 30.9838 0.102497 30.9838C0.104283 30.9838 0.105623 30.9844 0.106962 30.9855C0.108078 30.9869 0.108748 30.9882 0.108748 30.99ZM0.104283 30.9891C0.104283 30.988 0.103837 30.9873 0.10339 30.9873C0.10339 30.9869 0.102944 30.9864 0.102497 30.9864C0.101158 30.9864 0.100265 30.9869 0.0998183 30.9873V30.9891H0.104283Z"
fill="url(#paint39_linear_1502_1678)"
/>
<path
d="M0.129929 30.9909L0.123678 30.9793H0.119213L0.119213 30.9963H0.123678V30.9847L0.129036 30.9963H0.134394V30.9793H0.129929V30.9909Z"
fill="url(#paint40_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.144439 30.9838C0.146225 30.9838 0.147565 30.9844 0.148904 30.9855C0.150021 30.9869 0.15069 30.9882 0.15069 30.99C0.15069 30.9918 0.150021 30.9934 0.148904 30.9945C0.147565 30.9958 0.146225 30.9963 0.144439 30.9963C0.141984 30.9963 0.140198 30.9958 0.139082 30.9945C0.137742 30.9934 0.137296 30.9918 0.137296 30.99C0.137296 30.9882 0.137742 30.9869 0.139082 30.9855C0.140198 30.9844 0.141984 30.9838 0.144439 30.9838ZM0.144439 30.9864C0.1431 30.9864 0.142207 30.9869 0.14176 30.9873V30.9927C0.142207 30.9934 0.1431 30.9936 0.144439 30.9936C0.144886 30.9936 0.145556 30.9934 0.146225 30.9927C0.146672 30.9922 0.147118 30.9913 0.147118 30.99C0.147118 30.9889 0.146672 30.988 0.146225 30.9873C0.145556 30.9869 0.144886 30.9864 0.144439 30.9864Z"
fill="url(#paint41_linear_1502_1678)"
/>
<path
d="M0.157192 30.9838H0.15362V30.9909C0.15362 30.9927 0.153844 30.9942 0.154513 30.9954C0.15496 30.996 0.156299 30.9963 0.158085 30.9963H0.159871L0.161657 30.9945V30.9963H0.166122V30.9838H0.161657V30.99C0.161657 30.9913 0.161211 30.9922 0.160764 30.9927C0.160764 30.9934 0.160318 30.9936 0.159871 30.9936H0.158085C0.158085 30.9936 0.157639 30.9925 0.157192 30.9918V30.9838Z"
fill="url(#paint42_linear_1502_1678)"
/>
<path
d="M0.182196 30.9891V30.9963H0.177731V30.9873C0.177731 30.9869 0.176391 30.9864 0.175945 30.9864C0.175275 30.9864 0.174605 30.9869 0.174159 30.9873V30.9963H0.169694V30.9838H0.174159V30.9855C0.174159 30.9851 0.174382 30.9846 0.175052 30.9846C0.175861 30.9843 0.177201 30.9838 0.177731 30.9838C0.178847 30.9838 0.17974 30.9844 0.18041 30.9855C0.181526 30.9862 0.182196 30.9873 0.182196 30.9891Z"
fill="url(#paint43_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.200697 30.9793H0.193553V30.9963H0.198018V30.9909H0.200697C0.20293 30.9909 0.204492 30.9907 0.205162 30.99C0.206278 30.9889 0.206948 30.9873 0.206948 30.9855C0.206948 30.9838 0.206278 30.9824 0.205162 30.9811C0.204492 30.98 0.20293 30.9793 0.200697 30.9793ZM0.198018 30.9873V30.9829H0.200697C0.201144 30.9829 0.201813 30.9833 0.202483 30.9838C0.20293 30.9838 0.203376 30.9844 0.203376 30.9855C0.203376 30.9862 0.20293 30.9869 0.202483 30.9873H0.198018Z"
fill="url(#paint44_linear_1502_1678)"
/>
<path
d="M0.218808 30.9873C0.218808 30.9869 0.217468 30.9864 0.217022 30.9864C0.215682 30.9864 0.214789 30.9871 0.214343 30.9882V30.9963H0.209878V30.9838H0.214343V30.9864C0.214343 30.9853 0.214566 30.9846 0.215236 30.9846C0.215682 30.9842 0.216575 30.9838 0.217915 30.9838L0.218808 30.9873Z"
fill="url(#paint45_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.2317 30.9855C0.230361 30.9844 0.229021 30.9838 0.227235 30.9838C0.22478 30.9838 0.222994 30.9844 0.221877 30.9855C0.220538 30.9869 0.220092 30.9882 0.220092 30.99C0.220092 30.9918 0.220538 30.9934 0.221877 30.9945C0.222994 30.9958 0.22478 30.9963 0.227235 30.9963C0.229021 30.9963 0.230361 30.9958 0.2317 30.9945C0.232816 30.9934 0.233486 30.9918 0.233486 30.99C0.233486 30.9882 0.232816 30.9869 0.2317 30.9855ZM0.224556 30.9873C0.225003 30.9869 0.225896 30.9864 0.227235 30.9864C0.227682 30.9864 0.228352 30.9869 0.229021 30.9873C0.229468 30.988 0.229914 30.9889 0.229914 30.99C0.229914 30.9913 0.229468 30.9922 0.229021 30.9927C0.228352 30.9934 0.227682 30.9936 0.227235 30.9936C0.225896 30.9936 0.225003 30.9934 0.224556 30.9927V30.9873Z"
fill="url(#paint46_linear_1502_1678)"
/>
<path
d="M0.236416 30.9838H0.240881V30.9963C0.240881 30.9974 0.240211 30.9985 0.239095 30.9998C0.238425 31.0009 0.237309 31.0016 0.235523 31.0016H0.233737V30.998H0.235523C0.23597 30.998 0.236416 30.9974 0.236416 30.9963V30.9838Z"
fill="url(#paint47_linear_1502_1678)"
/>
<path
d="M0.236416 30.9793H0.240881V30.982H0.236416V30.9793Z"
fill="url(#paint48_linear_1502_1678)"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M0.256759 30.9909C0.256759 30.9891 0.25609 30.9869 0.254974 30.9855C0.253634 30.9844 0.252295 30.9838 0.250509 30.9838C0.248053 30.9838 0.246267 30.9844 0.245151 30.9855C0.243811 30.9869 0.243365 30.9882 0.243365 30.99C0.243365 30.9918 0.243811 30.9934 0.245151 30.9945C0.246267 30.9958 0.248053 30.9963 0.250509 30.9963H0.253188C0.254304 30.9963 0.255197 30.996 0.255866 30.9954V30.9927C0.255337 30.9927 0.254667 30.993 0.253857 30.9933L0.250509 30.9936H0.24783V30.9909H0.256759ZM0.251402 30.9873C0.251848 30.9873 0.252295 30.988 0.252295 30.9891H0.24783V30.9873C0.248276 30.9869 0.249169 30.9864 0.250509 30.9864C0.250955 30.9864 0.251402 30.9869 0.251402 30.9873Z"
fill="url(#paint49_linear_1502_1678)"
/>
<path
d="M0.269233 30.9846V30.9873H0.267447C0.267447 30.9869 0.266778 30.9864 0.265661 30.9864C0.264992 30.9864 0.264322 30.9869 0.263875 30.9873C0.263206 30.988 0.262982 30.9889 0.262982 30.99C0.262982 30.9913 0.263206 30.9922 0.263875 30.9927C0.264322 30.9934 0.264992 30.9936 0.265661 30.9936H0.26834L0.269233 30.9927V30.9963H0.265661C0.263206 30.9963 0.26142 30.9958 0.260303 30.9945C0.258964 30.9934 0.258518 30.9918 0.258518 30.99C0.258518 30.9882 0.258964 30.9869 0.260303 30.9855C0.26142 30.9844 0.263206 30.9838 0.265661 30.9838H0.267447C0.267894 30.9838 0.268564 30.9842 0.269233 30.9846Z"
fill="url(#paint50_linear_1502_1678)"
/>
<path
d="M0.277242 30.9838V30.9802H0.272777V30.9838H0.270991V30.9864H0.272777V30.9918C0.272777 30.9936 0.273001 30.9949 0.27367 30.9954C0.274786 30.996 0.275903 30.9963 0.277242 30.9963H0.280814V30.9936H0.277242V30.9864H0.280814V30.9838H0.277242Z"
fill="url(#paint51_linear_1502_1678)"
/>
</g>
<defs>
<linearGradient
id="paint0_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint1_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint2_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint3_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint4_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint5_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint6_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint7_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint8_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint9_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint10_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint11_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint12_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint13_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint14_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint15_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint16_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint17_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint18_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint19_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint20_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint21_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint22_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint23_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint24_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint25_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint26_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint27_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint28_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint29_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint30_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint31_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint32_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint33_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint34_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint35_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint36_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint37_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint38_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint39_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint40_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint41_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint42_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint43_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint44_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint45_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint46_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint47_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint48_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint49_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint50_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
<linearGradient
id="paint51_linear_1502_1678"
x1="16"
y1="0"
x2="16"
y2="31.0016"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgTutorial;

View File

@@ -0,0 +1,38 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgUIFrameworks = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="32"
height="32"
viewBox="0 0 32 32"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
className={props.className ? props.className : undefined}
>
<path
opacity="0.75"
fillRule="evenodd"
clipRule="evenodd"
d="M28.8924 10.975L28.1352 18.7984L28.1352 18.7989C30.4696 19.9658 32 22.3925 32 25.0326C32 28.8744 28.8747 32 25.0326 32H17.5484C14.4173 32 11.6715 30.3459 10.1185 27.871H2.58065C1.1576 27.871 0 26.7134 0 25.2903V2.58065C0 1.1576 1.1576 0 2.58065 0H18.0645C19.4876 0 20.6452 1.1576 20.6452 2.58065L20.6449 11.2321C22.1537 12.324 23.2514 13.9676 23.6143 15.9061C23.6214 15.9469 23.6277 15.989 23.6334 16.0402C23.7191 16.7624 24.1249 17.3921 24.7039 17.7713L24.2627 10.9301C24.2597 10.8801 24.258 10.8306 24.258 10.781V9.54851C24.258 8.86462 24.5606 8.25565 25.0318 7.8303C24.3018 7.3255 23.7419 6.39712 23.7419 5.16141C23.7419 2.29486 26.9857 0.639546 27.1242 0.57111L27.8709 0.19738V1.88492C27.8709 2.60661 28.0857 3.34712 28.5083 4.08793C28.7705 4.54619 28.9032 5.08102 28.9032 5.67755C28.9032 6.67206 28.5373 7.32964 28.0113 7.73286C28.5502 8.15868 28.9032 8.81001 28.9032 9.54852V10.7515C28.9032 10.8264 28.8991 10.9004 28.8924 10.975ZM26.8392 1.96042C26.0063 2.55282 24.7742 3.68052 24.7742 5.16137C24.7742 6.43671 25.5784 7.22588 26.3226 7.22588C27.0286 7.22588 27.871 6.95696 27.871 5.6775C27.871 5.26247 27.7837 4.90028 27.6125 4.59982C27.1132 3.72653 26.853 2.83879 26.8392 1.96042ZM26.3312 26.3222C26.3446 26.3212 26.3574 26.3183 26.3705 26.3179L27.8648 10.8753C27.8689 10.8345 27.871 10.7926 27.871 10.7513V9.54831C27.871 8.83656 27.2924 8.25798 26.5807 8.25798C25.8689 8.25798 25.2903 8.83658 25.2903 9.54831V10.3225H26.8387V11.3548H25.3244L26.2901 26.3196C26.2958 26.3196 26.3013 26.3203 26.3067 26.3211C26.312 26.3218 26.3172 26.3225 26.3226 26.3225C26.3255 26.3225 26.3283 26.3224 26.3312 26.3222ZM27.871 24.7742C27.871 24.4811 27.7844 24.2064 27.635 23.9679L27.4555 25.8219C27.7111 25.5458 27.871 25.1792 27.871 24.7742ZM25.2263 25.8663L25.0968 23.856C24.8966 24.1181 24.7742 24.4324 24.7742 24.7741C24.7742 25.2 24.947 25.5861 25.2263 25.8663ZM18.0645 1.03243H2.58061C1.7269 1.03243 1.03222 1.72711 1.03222 2.58082H19.6129C19.6129 1.72711 18.9182 1.03243 18.0645 1.03243ZM1.03222 25.2905C1.03222 26.1442 1.7269 26.8389 2.58061 26.8389H9.56222C9.41038 26.5043 9.27259 26.1617 9.16314 25.8066H7.22604V24.7744H8.91982C8.85946 24.4368 8.82144 24.0921 8.8007 23.7421H1.03222V25.2905ZM3.09674 18.0647H8.77416L8.77419 17.2905C8.77419 16.8497 8.82004 16.4202 8.89331 16.0002H3.09674V18.0647ZM2.06424 14.9679H9.14789L9.14794 14.9678C9.26499 14.6106 9.41062 14.2668 9.5779 13.9355H2.06424V9.80647H18.5804V10.1823C18.9366 10.2984 19.2813 10.4397 19.6126 10.6065V3.61307H1.03198V22.7098H8.77392V19.0969H2.06424V14.9679ZM10.2085 12.9034C10.8159 12.0677 11.5901 11.3642 12.4841 10.8389H3.09656V12.9034H10.2085ZM17.548 30.9679H25.0322L25.0323 30.9676C28.3047 30.9676 30.9674 28.3052 30.9674 25.0324C30.9674 22.9188 29.8165 20.9653 28.0271 19.9119L27.7624 22.6499C28.4679 23.1289 28.9029 23.9248 28.9029 24.7744C28.9029 26.1974 27.7453 27.355 26.3223 27.355C24.8992 27.355 23.7416 26.1974 23.7416 24.7744C23.7416 23.8728 24.229 23.0274 25.0128 22.5621L24.7806 18.9592C23.6146 18.5147 22.7601 17.4384 22.6082 16.1601L22.5979 16.0889C22.0299 13.0495 19.3626 10.8389 16.258 10.8389C12.7001 10.8389 9.80612 13.7332 9.80612 17.2908V23.226C9.80612 27.4949 13.2792 30.9679 17.548 30.9679ZM18.5807 4.64524H2.06457V8.77427H18.5807V4.64524ZM17.5484 7.74201H3.09683V5.67749H17.5484V7.74201ZM14.4516 19.0968C15.8747 19.0968 17.0323 17.9392 17.0323 16.5162C17.0323 15.0932 15.8747 13.9356 14.4516 13.9356C13.0286 13.9356 11.871 15.0932 11.871 16.5162C11.871 17.9392 13.0286 19.0968 14.4516 19.0968ZM14.4516 14.9678C15.3053 14.9678 16 15.6625 16 16.5162C16 17.3699 15.3053 18.0646 14.4516 18.0646C13.5979 18.0646 12.9033 17.3699 12.9033 16.5162C12.9033 15.6625 13.5979 14.9678 14.4516 14.9678ZM14.4516 20.1291C15.8747 20.1291 17.0323 21.2867 17.0323 22.7098C17.0323 24.1328 15.8747 25.2904 14.4516 25.2904C13.0286 25.2904 11.871 24.1328 11.871 22.7098C11.871 21.2867 13.0286 20.1291 14.4516 20.1291ZM12.9033 22.7098C12.9033 23.5635 13.5979 24.2581 14.4516 24.2581C15.3053 24.2581 16 23.5635 16 22.7098C16 21.856 15.3053 21.1614 14.4516 21.1614C13.5979 21.1614 12.9033 21.856 12.9033 22.7098ZM18.5807 24.7743C17.1577 24.7743 16.0001 25.9319 16.0001 27.3549C16.0001 28.778 17.1577 29.9356 18.5807 29.9356C20.0037 29.9356 21.1613 28.778 21.1613 27.3549C21.1613 25.9319 20.0037 24.7743 18.5807 24.7743ZM18.5807 28.9033C17.727 28.9033 17.0323 28.2086 17.0323 27.3549C17.0323 26.5012 17.727 25.8065 18.5807 25.8065C19.4344 25.8065 20.1291 26.5012 20.1291 27.3549C20.1291 28.2086 19.4344 28.9033 18.5807 28.9033Z"
fill="url(#paint0_linear_1502_1691)"
/>
<defs>
<linearGradient
id="paint0_linear_1502_1691"
x1="16"
y1="0"
x2="16"
y2="32"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgUIFrameworks;

View File

@@ -0,0 +1,36 @@
import * as React from "react";
import { SVGProps } from "react";
const SvgUseCases = ({ className, ...props }: SVGProps<SVGSVGElement>) => (
<svg
width="32"
height="24"
viewBox="0 0 32 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
className={className ? className : undefined}
{...props}
className={props.className ? props.className : undefined}
>
<path
opacity="0.75"
d="M0 18.2406L6.40694 19.2558V4.23622L0 5.21652V18.2406ZM1.54053 6.54705L4.90167 6.02199V17.4705L1.54053 16.9454V6.54705ZM25.7329 4.23628V19.2558L31.9998 18.2407L32 5.21671L25.7329 4.23628ZM30.4594 16.9101L27.2384 17.4352V6.02172L30.4594 6.54678V16.9101ZM7.73753 23.4571H24.2975V0H7.73753V23.4571ZM9.24311 1.54047H22.7572V21.9166H9.24311V1.54047Z"
fill="url(#paint0_linear_1502_839)"
/>
<defs>
<linearGradient
id="paint0_linear_1502_839"
x1="16"
y1="0"
x2="16"
y2="23.4571"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#3FDCF7" />
<stop offset="1" stopColor="#1890FF" />
</linearGradient>
</defs>
</svg>
);
export default SvgUseCases;

View File

@@ -0,0 +1,45 @@
export const team = [
{
name: "Civan Özseyhan",
avatar: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/civan.png",
role1: "Co-Founder",
role2: "CEO",
},
{
name: "Ömer Aplak",
avatar: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/omer.png",
role1: "Co-Founder",
role2: "CTO",
},
{
name: "Eren Erkalkan",
avatar: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/eren.png",
role1: "Co-Founder",
role2: "CPO",
},
{
name: "Batuhan Özgür Özdemir",
avatar: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/batuhan.png",
role1: "Tech Lead",
},
{
name: "Ali Emir Şen",
avatar: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/ali.png",
role1: "Senior Software Developer",
},
{
name: "Alican Erdurmaz",
avatar: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/alican.png",
role1: "Software Developer",
},
{
name: "Necati Ozmen",
avatar: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/necati.png",
role1: "Head of Growth",
},
{
name: "Recep Kütük",
avatar: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/about/images/team-avatars/recep.png",
role1: "Senior Product Designer",
},
];

View File

@@ -0,0 +1,27 @@
import { CardProps } from "@site/src/pages/week-of-refine";
import { StrapiWithText, SupabaseWithText } from "../integration-icons";
export const weekOfRefineCards: CardProps[] = [
{
title: "Invoicer",
imgURL: "https://refine.ams3.cdn.digitaloceanspaces.com/week-of-refine/week-of-refine-invoicer.png",
dateRange: "April 10 - April 14, 2023",
description:
"We'll be building an Invoice generator internal tool via Refine & Strapi in a week.",
logo: StrapiWithText,
bgLinearGradient:
"bg-week-of-refine-strapi-card-light dark:bg-week-of-refine-strapi-card",
link: "/week-of-refine-strapi",
},
{
title: "Pixels!",
imgURL: "https://refine.ams3.cdn.digitaloceanspaces.com/week-of-refine/week-of-refine-pixels.png",
dateRange: "February 14 - February 20, 2023",
description:
"Stay tuned all week and learn the basics of creating a CRUD app via Refine & Supabase on a fun project in a week.",
logo: SupabaseWithText,
bgLinearGradient:
"bg-week-of-refine-supabase-card-light dark:bg-week-of-refine-supabase-card",
link: "/week-of-refine-supabase",
},
];

View File

@@ -0,0 +1,19 @@
import * as React from "react";
import { SVGProps } from "react";
export const DateIcon = (props: SVGProps<SVGSVGElement>) => {
return (
<svg
xmlns="http://www.w3.org/2000/svg"
width="16"
height="16"
fill="currentColor"
{...props}
>
<g opacity=".25">
<path d="M4.4 8.8a1.2 1.2 0 1 0 0-2.4 1.2 1.2 0 0 0 0 2.4ZM5.6 11.6a1.2 1.2 0 1 1-2.4 0 1.2 1.2 0 0 1 2.4 0ZM8 8.8a1.2 1.2 0 1 0 0-2.4 1.2 1.2 0 0 0 0 2.4ZM9.2 11.6a1.2 1.2 0 1 1-2.4 0 1.2 1.2 0 0 1 2.4 0ZM11.6 8.8a1.2 1.2 0 1 0 0-2.4 1.2 1.2 0 0 0 0 2.4Z" />
<path d="M4.4 0a2 2 0 0 0-2 2v.4A2.4 2.4 0 0 0 0 4.8v8.8A2.4 2.4 0 0 0 2.4 16h11.2a2.4 2.4 0 0 0 2.4-2.4V4.8a2.4 2.4 0 0 0-2.4-2.4V2a2 2 0 1 0-4 0v.4H6.4V2a2 2 0 0 0-2-2ZM4 2a.4.4 0 0 1 .8 0v1.2a.8.8 0 0 0 .8.8h4.8a.8.8 0 0 0 .8-.8V2a.4.4 0 0 1 .8 0v1.2a.8.8 0 0 0 .8.8h.8a.8.8 0 0 1 .8.8v8.8a.8.8 0 0 1-.8.8H2.4a.8.8 0 0 1-.8-.8V4.8a.8.8 0 0 1 .8-.8h.8a.8.8 0 0 0 .8-.8V2Z" />
</g>
</svg>
);
};

View File

@@ -0,0 +1,3 @@
export * from "./date";
export * from "./refine-week-logo-xl";
export * from "./refine-week-logo";

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,57 @@
import clsx from "clsx";
import React from "react";
type Props = {
children: React.ReactNode;
content?: React.ReactNode;
};
export const BadgeTooltip = ({ children, content }: Props) => {
return (
<div
className={clsx(
"refine-info-badge",
"relative",
"group",
"inline-flex",
"align-middle",
)}
>
{children}
<div
className={clsx(
"absolute",
"-left-1",
"top-0",
"translate-x-0",
"-translate-y-0",
"scale-0",
"group-hover:scale-100",
"group-hover:-translate-y-full",
"transition-transform",
"origin-top-left",
"pb-2",
"w-60",
"pointer-events-none",
)}
>
<div
className={clsx(
"text-xs",
"text-gray-600",
"bg-gray-0",
"border",
"border-gray-200",
"shadow-sm",
"rounded",
"py-1",
"px-2",
"font-normal",
)}
>
{content ?? "Check the guide for more information"}
</div>
</div>
</div>
);
};

View File

@@ -0,0 +1,85 @@
import React, { FC } from "react";
import clsx from "clsx";
import { LandingRainbowButton } from "@site/src/refine-theme/landing-rainbow-button";
import { RefineLogoSeal } from "@site/src/refine-theme/icons/refine-logo-seal";
type Props = {
title?: string;
description?: string;
button?: {
text: string;
href?: string;
onClick?: () => void;
};
};
export const BannerExamples: FC<Props> = ({
title = "Open-source Retool alternative for enterprise",
description = "Build React-based internal tools, dashboards & B2B apps with unmatched flexibility",
button = {
text: "Discover Refine",
href: "https://s.refine.dev/blog-retool?ref=banner-retool-alternative",
onClick: undefined,
},
}) => {
React.useEffect(() => {
if (
typeof window !== "undefined" &&
typeof window.gtag !== "undefined" &&
title &&
description
) {
window.gtag("event", "view_banner", {
banner_name: "banner-retool-alternative",
banner_text: title,
banner_description: description,
});
}
}, [title, description]);
return (
<div
className={clsx(
"relative",
"rounded-2xl",
"p-8",
"flex",
"flex-col",
"justify-center",
"items-center",
"not-prose",
"bg-banner-examples-gray",
)}
>
<h2
className={clsx(
"text-2xl",
"font-semibold",
"bg-banner-examples-text",
"bg-clip-text",
"text-transparent",
)}
>
{title}
</h2>
<p className={clsx("mt-2", "text-sm", "text-gray-300")}>
{description}
</p>
<LandingRainbowButton
className={clsx("mt-9")}
href={button.href}
onClick={button.onClick}
target="_blank"
rel="noopener noreferrer"
>
<div
className={clsx("text-gray-900", "text-base", "font-bold")}
>
{button.text}
</div>
</LandingRainbowButton>
<RefineLogoSeal
className={clsx("absolute", "bottom-2", "right-2")}
/>
</div>
);
};

View File

@@ -0,0 +1,136 @@
import React, { FC } from "react";
import clsx from "clsx";
import { LandingRainbowButton } from "@site/src/refine-theme/landing-rainbow-button";
import { RefineLogoSeal } from "@site/src/refine-theme/icons/refine-logo-seal";
import { ArrowRightIcon } from "@site/src/refine-theme/icons/arrow-right";
import Link from "@docusaurus/Link";
type Props = {
title?: string;
description?: string;
variant?: "gray" | "purple";
image?: {
src?: string;
alt?: string;
href?: string;
};
button?: {
text: string;
href?: string;
onClick?: () => void;
};
bannerName: string;
};
export const BannerImageWithText: FC<Props> = ({
title,
description,
image,
variant = "purple",
button = {
text: "Learn more",
href: "https://refine.dev/",
onClick: undefined,
},
bannerName,
}) => {
React.useEffect(() => {
if (
typeof window !== "undefined" &&
typeof window.gtag !== "undefined" &&
bannerName
) {
window.gtag("event", "view_banner", {
banner_name: bannerName,
banner_text: title,
banner_description: description,
banner_image: image.src,
});
}
}, [bannerName]);
return (
<div
className={clsx(
"relative",
"rounded-2xl",
"p-6",
"flex",
"flex-col 2xl:flex-row",
"items-center",
"gap-4 2xl:gap-10",
"not-prose",
variant === "gray" && "bg-banner-examples-gray",
variant === "purple" && "bg-banner-examples-purple",
)}
>
<Link
to={image?.href ?? button?.href}
target="_blank"
rel="noopener noreferrer"
className={clsx(
"flex",
"max-w-[360px]",
"h-auto",
"flex-shrink-0",
"rounded-lg",
"overflow-hidden",
)}
>
<img
src={image?.src}
alt={image?.alt ?? title}
loading="lazy"
/>
</Link>
<div
className={clsx(
"flex",
"flex-col",
"gap-6",
"justify-center 2xl:justify-start",
"items-center 2xl:items-start",
"text-center 2xl:text-start",
"not-prose",
)}
>
{title && (
<h2 className={clsx("text-xl md:text-2xl", "text-gray-0")}>
{title}
</h2>
)}
<p className={clsx("text-sm md:text-base", "text-gray-100")}>
{description}
</p>
<LandingRainbowButton
className={clsx("w-max")}
buttonClassname={clsx("!px-4", "!py-2")}
href={button.href}
onClick={button.onClick}
target="_blank"
rel="noopener noreferrer"
>
<div
className={clsx(
"text-gray-900",
"text-sm md:text-base",
"font-bold",
)}
>
{button.text}
</div>
<ArrowRightIcon
className={clsx(
"ml-1 md:ml-2",
"w-[14px] h-[14px]",
"md:w-4 md:h-4",
)}
/>
</LandingRainbowButton>
</div>
<RefineLogoSeal
className={clsx("absolute", "bottom-2", "right-2")}
/>
</div>
);
};

View File

@@ -0,0 +1,227 @@
import React, { FC, Fragment, useEffect, useRef, useState } from "react";
import clsx from "clsx";
import { LandingRainbowButton } from "@site/src/refine-theme/landing-rainbow-button";
import { ArrowRightIcon } from "@site/src/refine-theme/icons/arrow-right";
import Link from "@docusaurus/Link";
import { Dialog, Transition } from "@headlessui/react";
import { CloseIcon } from "@site/src/refine-theme/icons/close";
import useScrollTracker from "@site/src/hooks/use-scroll-tracker";
import useLocalStorage from "@site/src/hooks/use-localstorage";
import { useLocation } from "@docusaurus/router";
const SCROLL_TRESHOLD = 79;
const SCROLL_MAX = 100;
const MAX_VISIT_COUNT = 9;
type Props = {
title?: string;
variant?: "gray" | "purple";
image?: {
src?: string;
alt?: string;
href?: string;
};
button?: {
text: string;
href?: string;
onClick?: () => void;
};
};
export const BannerModal: FC<Props> = ({
title = "refine's app scaffolder offers +720 customizable CRUD app codebase combinations.",
variant = "purple",
image = {
src: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/banners/playground.gif",
alt: "refine App screenshot",
href: "https://s.refine.dev/banner-modal?ref=banner-modal",
},
button = {
text: "Try online",
href: "https://s.refine.dev/banner-modal?ref=banner-modal",
onClick: undefined,
},
}) => {
const { pathname } = useLocation();
const [isOpen, setIsOpen] = useState(false);
const [visitCount, setVisitCount] = useLocalStorage("banner-modal", null);
const scrollTresholdExceeded = useRef(false);
const tracker = useScrollTracker();
useEffect(() => {
if (pathname === "/blog/" || pathname === "/blog") return;
if (scrollTresholdExceeded.current || isOpen) return;
if (tracker.scrollY > SCROLL_TRESHOLD && tracker.scrollY < SCROLL_MAX) {
scrollTresholdExceeded.current = true;
if (visitCount === MAX_VISIT_COUNT || visitCount === null) {
setIsOpen(true);
setVisitCount(0);
} else {
setVisitCount(visitCount + 1);
scrollTresholdExceeded.current = true;
}
}
}, [tracker.scrollY]);
useEffect(() => {
if (
isOpen &&
typeof window !== "undefined" &&
typeof window.gtag !== "undefined"
) {
window.gtag("event", "view_banner", {
banner_name: "banner-modal",
banner_text: title,
banner_image: image.src,
});
}
}, [isOpen]);
return (
<Transition appear show={isOpen} as={Fragment}>
<Dialog
as="div"
className="relative z-modal"
onClose={() => setIsOpen(false)}
>
<Transition.Child
as={Fragment}
enter="ease-out duration-75"
enterFrom="opacity-0"
enterTo="opacity-100"
leave="ease-in duration-75"
leaveFrom="opacity-100"
leaveTo="opacity-0"
>
<div className="fixed inset-0 bg-gray-900/70" />
</Transition.Child>
<div className="fixed inset-0 overflow-y-auto">
<div className="flex min-h-full items-start justify-center">
<Transition.Child
as={Fragment}
enter="ease-out duration-75"
enterFrom="opacity-0"
enterTo="opacity-100"
leave="ease-in duration-75"
leaveFrom="opacity-100"
leaveTo="opacity-0"
>
<Dialog.Panel
className={clsx(
"w-full min-h-screen",
"flex flex-col justify-center items-center",
)}
>
<div
className={clsx(
"relative",
"rounded-3xl",
"max-w-[576px]",
"py-8",
"px-4 md:px-8",
variant === "gray" &&
"bg-banner-examples-modal-gray",
variant === "purple" &&
"bg-banner-examples-modal-purple",
)}
>
<div
className={clsx(
"flex",
"flex-col",
"items-center",
"gap-8",
"text-center",
"not-prose",
)}
>
<Link
to={image?.href ?? button?.href}
target="_blank"
rel="noopener noreferrer"
className={clsx(
"flex",
"h-auto xl:h-[192px]",
"flex-shrink-0",
"rounded-lg",
"overflow-hidden",
"focus:outline-none",
)}
>
<img
className={clsx(
"object-contain",
)}
src={image?.src}
alt={image?.alt ?? title}
loading="lazy"
/>
</Link>
<p
className={clsx(
"text-2xl",
"font-semibold",
variant === "gray" &&
"bg-clip-text",
variant === "gray" &&
"text-transparent",
variant === "gray" &&
"bg-banner-examples-text",
variant === "purple" &&
"text-gray-0",
)}
>
{title}
</p>
<LandingRainbowButton
className={clsx("w-max")}
buttonClassname={clsx(
"!px-4",
"!py-4",
)}
href={button.href}
onClick={button.onClick}
target="_blank"
rel="noopener noreferrer"
>
<div
className={clsx(
"text-gray-900",
"text-base",
"font-bold",
)}
>
{button.text}
</div>
<ArrowRightIcon
className={clsx("w-4", "h-4")}
/>
</LandingRainbowButton>
</div>
<button
className={clsx(
"absolute",
"top-2 right-2",
"w-8 h-8",
"flex items-center justify-center flex-shrink-0",
"text-gray-0",
"rounded-full",
"bg-gray-900/20",
)}
onClick={() => setIsOpen(false)}
>
<CloseIcon className="w-4 h-4" />
</button>
</div>
</Dialog.Panel>
</Transition.Child>
</div>
</div>
</Dialog>
</Transition>
);
};

View File

@@ -0,0 +1,66 @@
import React from "react";
import { BannerImageWithText } from "./banner-image-with-text";
import { BannerExamples } from "./banner-examples";
import BrowserOnly from "@docusaurus/BrowserOnly";
const data = [
{
description:
"Refine is a React Framework used by over monthly 15K developers for building enterprise internal tools, dashboards, and B2B apps",
image: {
src: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/banners/banner-tweet.jpg",
alt: "X tweet about Refine",
href: "https://s.refine.dev/blog-twitter?ref=banner-twitter",
},
button: {
text: "Learn more",
href: "https://s.refine.dev/blog-twitter?ref=banner-twitter",
},
bannerName: "banner-twitter",
},
/* {
title: "Save developer hours!",
description:
"An open-source, industry-standard codebase designed for building enterprise-grade internal tools, admin panels, and CRUD apps.",
image: {
src: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/banners/banner-save-hours.png",
alt: "Illustration about time is gold",
href: "https://github.com/refinedev/refine?ref=banner-save-hours",
},
button: {
text: "Learn more",
href: "https://github.com/refinedev/refine?ref=banner-save-hours",
},
bannerName: "banner-save-hours",
},
{
description:
"refine is ranked among the top 3 rapidly growing React frameworks in the ecosystem.",
image: {
src: "https://refine.ams3.cdn.digitaloceanspaces.com/website/static/banners/banner-oss-insight.png",
alt: "Photo about refine ranking on OSS Insight website",
href: "https://github.com/refinedev/refine?ref=banner-oss-insight",
},
button: {
text: "Learn more",
href: "https://github.com/refinedev/refine?ref=banner-oss-insight",
},
bannerName: "banner-oss-insight",
}, */
];
// +1 for BannerExamples
const random = Math.floor(Math.random() * (data.length + 1));
export const BannerRandom = () => {
// when random is equal to data.length, we will show BannerExamples
if (random === data.length) {
return <BrowserOnly>{() => <BannerExamples />}</BrowserOnly>;
}
return (
<BrowserOnly>
{() => <BannerImageWithText {...data[random]} />}
</BrowserOnly>
);
};

View File

@@ -0,0 +1,78 @@
import Link from "@docusaurus/Link";
import { ArrowRightIcon } from "@site/src/refine-theme/icons/arrow-right";
import { LandingRainbowButton } from "@site/src/refine-theme/landing-rainbow-button";
import clsx from "clsx";
import React from "react";
const text = "Struggling with internal tools?";
const description =
"Explore refines limitless possibilities in crafting CRUD apps, CRM solutions, HR dashboards, and more!";
const image =
"https://refine.ams3.cdn.digitaloceanspaces.com/website/static/banners/app-crm.png";
export const BannerSidebar = ({ shouldShowBanner }) => {
React.useEffect(() => {
if (
typeof window !== "undefined" &&
typeof window.gtag !== "undefined" &&
shouldShowBanner
) {
window.gtag("event", "view_banner", {
banner_name: "banner-sidebar",
banner_text: text,
banner_description: description,
banner_image: image,
});
}
}, [shouldShowBanner]);
return (
<div
className={clsx(
"flex",
"flex-col",
"gap-6",
"py-6",
"px-4",
"rounded-2xl",
"bg-banner-examples-sider-purple",
"not-prose",
)}
>
<Link
to={"https://s.refine.dev/blog-sidebar?ref=banner-sidebar"}
target="_blank"
rel="noopener noreferrer"
className={clsx(
"flex",
"w-full h-auto xl:h-[152px]",
"flex-shrink-0",
"rounded-md",
"overflow-hidden",
)}
>
<img src={image} alt={"refine App screenshot"} loading="lazy" />
</Link>
<h2 className={clsx("text-2xl font-semibold", "text-gray-0")}>
{text}
</h2>
<p className={clsx("text-base", "text-gray-100")}>{description}</p>
<LandingRainbowButton
className={clsx("w-max")}
buttonClassname={clsx("!px-4", "!py-2")}
href={"https://s.refine.dev/blog-sidebar?ref=banner-sidebar"}
target="_blank"
rel="noopener noreferrer"
>
<div
className={clsx("text-gray-900", "text-base", "font-bold")}
>
Try online
</div>
<ArrowRightIcon className={clsx("ml-2", "w-4", "h-4")} />
</LandingRainbowButton>
</div>
);
};

View File

@@ -0,0 +1,113 @@
import React from "react";
import clsx from "clsx";
import Link from "@docusaurus/Link";
import { useBlogPost } from "@docusaurus/theme-common/internal";
import { Github, Twitter, Linkedin } from "../icons";
export const AuthorCardWithHook = ({ className }) => {
const { metadata } = useBlogPost();
const author = metadata.authors[0];
return <AuthorCard author={author} className={className} />;
};
export const AuthorCardWithProps = ({ author, className }) => {
return <AuthorCard author={author} className={className} />;
};
const AuthorCard = ({ author }) => {
const authorHasSocialInfo =
author.github || author.twitter || author.linkedin;
return (
<div
className={clsx(
"px-4",
"blog-md:px-7",
"blog-2xl:px-0",
"max-w-[640px]",
"blog-md:max-w-screen-blog-md",
"blog-2xl:max-w-screen-blog-md",
"w-full",
"mx-auto",
)}
>
<div className={clsx("flex", "justify-between", "items-center")}>
<div
className={clsx(
"w-full",
"flex items-center justify-between flex-wrap",
)}
>
<div
className={clsx("flex items-center", "gap-2 sm:gap-6")}
>
<Link
to={`/blog/author/${author?.key}`}
itemProp="url"
className="flex-shrink-0"
>
<img
src={author?.imageURL}
alt={author?.name}
loading="lazy"
className={clsx(
"flex flex-shrink-0",
"h-12 w-12",
"blog-sm:h-[88px] blog-sm:w-[88px]",
"blog-md:h-[120px] blog-md:w-[120px]",
"rounded-full object-cover",
)}
/>
</Link>
<div
className={clsx(
"not-prose flex flex-col justify-between",
)}
>
<h1
className={clsx(
"text-xl sm:text-[40px] sm:leading-[56px]",
"m-0 p-0 pb-2 font-bold text-gray-900 dark:text-gray-200",
)}
>
{author?.name}
</h1>
<div
className={clsx(
"text-xs sm:text-base",
"text-gray-600 dark:text-gray-400",
)}
>
{author?.title}
</div>
</div>
</div>
{authorHasSocialInfo && (
<div className="flex justify-center gap-3">
{author?.github && (
<Link to={author?.github}>
<Github className="h-6 w-6" />
</Link>
)}
{author?.twitter && (
<Link to={author?.twitter}>
<Twitter className="h-6 w-6" />
</Link>
)}
{author?.linkedin && (
<Link to={author?.linkedin}>
<Linkedin className="h-6 w-6" />
</Link>
)}
</div>
)}
</div>
</div>
<div className="border-b border-gray-200 dark:border-gray-700 mb-8" />
</div>
);
};

View File

@@ -0,0 +1,60 @@
import React from "react";
import BlogLayout from "@theme/BlogLayout";
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
import { PageMetadata } from "@docusaurus/theme-common";
import SearchMetadata from "@theme/SearchMetadata";
import BlogPostItems from "@theme/BlogPostItems";
import { AuthorCardWithProps } from "@site/src/components/blog";
import clsx from "clsx";
const BlogListPageMetadata = () => {
const {
siteConfig: { title, tagline },
} = useDocusaurusContext();
return (
<>
<PageMetadata title={title} description={tagline} />
<SearchMetadata tag="author_blog_posts_list" />
</>
);
};
const AuthorPage = (props) => {
const { items } = props;
const author = items[0].content.metadata.authors[0];
return (
<>
<BlogListPageMetadata />
<BlogLayout showSidebarBanner={false}>
<div className="h-12" />
<AuthorCardWithProps author={author} />
<div
className={clsx(
"px-4",
"max-w-[512px]",
"blog-md:px-7",
"blog-md:max-w-screen-blog-md",
"blog-2xl:px-0",
"blog-2xl:max-w-screen-blog-md",
"w-full",
"mx-auto",
)}
>
<h1 className="text-4xl !mb-0 px-0 lg:px-4">Posts</h1>
</div>
<div className={clsx("px-4", "blog-md:px-7", "blog-2xl:px-0")}>
<BlogPostItems
items={items}
showTitle={false}
isAuthorPage={true}
/>
</div>
</BlogLayout>
</>
);
};
export default AuthorPage;

View File

@@ -0,0 +1,155 @@
import React from "react";
import Link from "@docusaurus/Link";
import { useBlogPost } from "@docusaurus/theme-common/internal";
import { blogPostContainerID } from "@docusaurus/utils-common";
import MDXContent from "@theme/MDXContent";
import BlogPostItemContainer from "@theme/BlogPostItem/Container";
import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
import {
LinkedinShareButton,
RedditShareButton,
TwitterShareButton,
TwitterIcon,
RedditIcon,
LinkedinIcon,
} from "react-share";
import clsx from "clsx";
import { Date, ReadingTime } from "@site/src/components/blog/common";
import { BannerRandom } from "@site/src/components/banner/banner-random";
import { Twitter } from "../icons";
export const BlogPostPageView = ({ children }) => {
const { metadata, isBlogPostPage } = useBlogPost();
const {
permalink,
title,
date,
formattedDate,
readingTime,
frontMatter,
tags,
description,
authors,
} = metadata;
const author = authors[0];
const {
siteConfig: { url },
} = useDocusaurusContext();
return (
<BlogPostItemContainer
className={clsx(
"py-10",
"px-4 sm:px-0",
"blog-sm:py-12",
"blog-md:py-16",
"w-full",
"mx-auto",
"max-w-[512px]",
"blog-sm:max-w-screen-blog-sm",
"blog-lg:max-w-screen-content-2xl",
)}
>
<div
className={clsx(
"flex",
"justify-between",
"items-center",
"blog-sm:px-6",
)}
>
<Link
to="/blog"
className={clsx("!text-gray-500 text-sm no-underline")}
>
Back to blog
</Link>
<div className="flex items-center space-x-2 px-2 py-1">
<span className="text-gray-500 text-sm">Share on</span>
<TwitterShareButton
windowWidth={750}
windowHeight={800}
url={url + permalink}
className="flex"
title={title}
hashtags={tags.map((tag) => tag.label)}
>
<Twitter width={26} height={26} />
</TwitterShareButton>
<RedditShareButton
className="flex"
windowWidth={750}
windowHeight={600}
url={url + permalink}
title={title}
>
<RedditIcon size={26} round />
</RedditShareButton>
<LinkedinShareButton
url={url + permalink}
title={title}
source={url}
summary={description}
className="flex"
>
<LinkedinIcon size={26} round />
</LinkedinShareButton>
</div>
</div>
<div>
<img
className="mb-2 w-full rounded-xl"
src={`https://refine-web.imgix.net${frontMatter.image?.replace(
"https://refine.ams3.cdn.digitaloceanspaces.com",
"",
)}?w=800`}
alt={title}
/>
</div>
<div className="blog-sm:px-6">
<div className="mb-6 text-sm">
<div
className={clsx(
"flex",
"justify-between",
"sm:flex-row flex-col",
)}
>
<div className="flex justify-center items-center gap-2"></div>
<div className="flex items-center gap-2 text-gray-600 dark:text-gray-400">
<Date date={date} formattedDate={formattedDate} />
{typeof readingTime !== "undefined" && (
<>
<span className="w-[4px] h-[4px] rounded-full bg-gray-600 dark:bg-gray-500"></span>
<ReadingTime readingTime={readingTime} />
</>
)}
</div>
</div>
<div className="m-6 mb-12">
<BannerRandom />
</div>
</div>
<h1 className="text-xl md:text-4xl" itemProp="headline">
{isBlogPostPage ? (
title
) : (
<Link itemProp="url" to={permalink}>
{title}
</Link>
)}
</h1>
<div
id={blogPostContainerID}
className="markdown"
itemProp="articleBody"
>
<MDXContent>{children}</MDXContent>
</div>
</div>
</BlogPostItemContainer>
);
};

View File

@@ -0,0 +1,9 @@
import React from "react";
export function Date({ date, formattedDate }) {
return (
<time dateTime={date} itemProp="datePublished">
{formattedDate}
</time>
);
}

View File

@@ -0,0 +1,3 @@
export * from "./date";
export * from "./reading-time";
export * from "./spacer";

View File

@@ -0,0 +1,27 @@
import React from "react";
import { usePluralForm } from "@docusaurus/theme-common";
import { translate } from "@docusaurus/Translate";
function useReadingTimePlural() {
const { selectMessage } = usePluralForm();
return (readingTimeFloat) => {
const readingTime = Math.ceil(readingTimeFloat);
return selectMessage(
readingTime,
translate(
{
id: "theme.blog.post.readingTime.plurals",
description:
'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',
message: "One min read|{readingTime} min read",
},
{ readingTime },
),
);
};
}
export function ReadingTime({ readingTime }) {
const readingTimePlural = useReadingTimePlural();
return <>{readingTimePlural(readingTime)}</>;
}

View File

@@ -0,0 +1,5 @@
import React from "react";
export function Spacer() {
return <>{" · "}</>;
}

View File

@@ -0,0 +1,31 @@
import React from "react";
import Link from "@docusaurus/Link";
const DiscordBanner = () => {
return (
<div className="flex flex-col md:flex-row justify-between items-center gap-4 md:gap-0 h-auto md:h-[150px] bg-[#5865F2] w-full rounded-2xl py-5 px-5 md:px-12">
<div className="flex items-center gap-16">
<img
className="hidden md:block"
src="/img/blog-static/discord-banner.png"
alt="Discord Logo"
/>
<div className="text-white font-montserrat font-bold max-w-md text-center md:text-left">
<h1 className="text-2xl uppercase leading-tight mb-0 font-montserrat">
Join to refine discord server
</h1>
<p className="mb-0 text-base">
to get help, share ideas, and discuss the latest news.
</p>
</div>
</div>
<Link to="https://discord.gg/refine">
<button className="bg-transparent text-white font-bold py-2 px-4 rounded-lg h-12 w-44 border-white cursor-pointer font-montserrat uppercase text-xl border-solid active:scale-[0.99]">
Join Us
</button>
</Link>
</div>
);
};
export default DiscordBanner;

View File

@@ -0,0 +1,108 @@
import React from "react";
import Link from "@docusaurus/Link";
import { useBlogPost } from "@docusaurus/theme-common/internal";
import BlogPostItemContainer from "@theme/BlogPostItem/Container";
import { Date } from "@site/src/components/blog/common";
import clsx from "clsx";
export const FeaturedBlogPostItem = () => {
const { metadata } = useBlogPost();
const {
permalink,
title,
date,
formattedDate,
frontMatter,
description,
tags,
} = metadata;
const author = metadata.authors[0];
return (
<BlogPostItemContainer>
<Link itemProp="url" to={permalink}>
<div className="not-prose relative m-0 h-40 hover:brightness-90 md:h-64">
<img
src={`https://refine-web.imgix.net${frontMatter.image?.replace(
"https://refine.ams3.cdn.digitaloceanspaces.com",
"",
)}?h=256`}
alt={title}
className="absolute inset-0 mt-0 h-full w-full rounded-[10px] object-cover"
loading="lazy"
/>
</div>
</Link>
<div className="px-4 py-4 md:px-6 md:py-6">
<div
className={clsx(
"mb-2 gap-1 md:mb-4 2xl:mb-6",
"flex flex-wrap items-center",
)}
>
{tags.map((tag) => (
<Link
className={clsx(
"text-xs",
"bg-gray-100 dark:bg-gray-700",
"text-gray-600 hover:text-gray-600 dark:text-gray-400 dark:hover:text-gray-400",
"no-underline",
"rounded",
"px-2 py-1",
)}
href={tag.permalink}
key={tag.permalink}
>
{tag.label}
</Link>
))}
</div>
<div className="mb-2 md:mb-4 2xl:mb-6">
<Link
itemProp="url"
to={permalink}
className="no-underline hover:no-underline"
rel="noopener dofollow"
>
<div
className={clsx(
"mb-2 md:mb-4 2xl:mb-6",
"text-gray-700 dark:text-gray-200",
"text-sm sm:text-2xl 2xl:text-[32px] 2xl:leading-10",
"font-lg",
"font-bold",
)}
>
{title}
</div>
</Link>
<div
className={clsx(
"line-clamp-3",
"text-gray-700 dark:text-gray-300",
"text-xs md:text-base 2xl:text-xl",
)}
>
{description}
</div>
</div>
<div className="flex items-center gap-2">
<span
className={clsx(
"text-gray-600 hover:text-gray-600",
"dark:text-gray-400 hover:dark:text-gray-400",
"text-xs 2xl:text-base",
"leading-6",
"no-underline",
)}
>
<Date date={date} formattedDate={formattedDate} />
</span>
</div>
</div>
</BlogPostItemContainer>
);
};

View File

@@ -0,0 +1,48 @@
import React from "react";
import { BlogPostProvider } from "@docusaurus/theme-common/internal";
import { FeaturedBlogPostItem } from "../featured-blog-post-item";
import clsx from "clsx";
export const FeaturedBlogPostItems = ({ items }) => {
return (
<div
className={clsx(
"py-10",
"px-4",
"max-w-[512px]",
"blog-md:px-7",
"blog-md:max-w-screen-blog-md",
"blog-2xl:px-0",
"blog-2xl:max-w-screen-blog-md",
"w-full",
"mx-auto",
"not-prose",
)}
>
<h2
className={clsx(
"m-0 p-0",
"blog-lg:mb-12 blog-md:mb-8 mb-10",
"text-xl blog-sm:text-4xl blog-lg:text-5xl",
"text-gray-900 dark:text-gray-0",
"px-0 blog-sm:px-6",
"font-semibold",
)}
>
Featured Posts
</h2>
<div className="grid grid-cols-1 blog-md:grid-cols-2 blog-lg:gap-12 gap-8">
{items.map(({ content: BlogPostContent }) => (
<BlogPostProvider
key={BlogPostContent.metadata.permalink}
content={BlogPostContent}
>
<FeaturedBlogPostItem />
</BlogPostProvider>
))}
</div>
</div>
);
};

View File

@@ -0,0 +1,74 @@
import React from "react";
import Link from "@docusaurus/Link";
import { CloudTipIcon, GithubIcon } from "../../landing/icons";
const token = "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";
const repo = "refine";
const org = "pankod";
const GithubBanner = () => {
const [githubStarCount, setGithubStarCount] = React.useState(0);
React.useEffect(() => {
(async () => {
const response = await fetch(
`https://api.github.com/repos/${org}/${repo}?access_token=${token}`,
{
method: "GET",
headers: {
"Content-Type": "application/json",
Authorization: `token ${token}`,
},
},
);
const json = await response.json();
setGithubStarCount(json.stargazers_count ?? 2000);
})();
}, []);
return (
<div className="flex flex-col md:flex-row justify-between items-center gap-4 md:gap-0 h-auto md:h-[150px] w-full rounded-2xl py-5 px-5 md:px-12 github-banner-bg">
<div className="flex items-center gap-16">
<img
className="hidden md:block"
src="/img/blog-static/github-banner-icon.png"
alt="Github Logo"
/>
<div className="font-montserrat max-w-md text-center md:text-left">
<h1 className="text-2xl uppercase leading-tight mb-0 font-montserrat font-bold">
Star us on github
</h1>
<p className="mb-0 text-base leading-tight">
<b>refine</b> is an{" "}
<b>open-source React-based framework</b>
for building <b>CRUD applications</b> without
constraints. Please show us your <b>support</b> with a
shining <b>GitHub star</b>.
</p>
</div>
</div>
{/* eslint-disable react/jsx-no-target-blank */}
<Link
to="https://github.com/refinedev/refine"
rel="noopener"
className="bg-[#211d21] no-underline rounded-xl h-[54px] flex gap-2 pl-3.5 py-2.5 pr-2.5 items-center"
>
<GithubIcon />
<div className="font-bold font-montserrat text-base text-white">
Star
</div>
<div className="flex items-start h-full">
<CloudTipIcon className="mt-2 -mr-px" />
<div className="cloud rounded-md bg-white text-[#211d21] h-full flex items-center justify-center px-1.5 font-montserrat font-bold text-base">
{`${githubStarCount}`.padStart(4, "0")}
</div>
</div>
</Link>
</div>
);
};
export default GithubBanner;

View File

@@ -0,0 +1,91 @@
import clsx from "clsx";
import React from "react";
export const ChevronLeft = (
props: React.SVGProps<SVGSVGElement>,
): JSX.Element => (
<svg
aria-hidden="true"
className="h-5 w-5"
fill="currentColor"
viewBox="0 0 20 20"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fillRule="evenodd"
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
clipRule="evenodd"
></path>
</svg>
);
export const ChevronRight = (
props: React.SVGProps<SVGSVGElement>,
): JSX.Element => (
<svg
aria-hidden="true"
className="h-5 w-5"
fill="currentColor"
viewBox="0 0 20 20"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
fillRule="evenodd"
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clipRule="evenodd"
></path>
</svg>
);
export const Github = (props: React.SVGProps<SVGSVGElement>): JSX.Element => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
fill="none"
{...props}
>
<path
fill="#fff"
fillRule="evenodd"
d="M12.058 0a11.894 11.894 0 0 0-7.814 2.929 12.37 12.37 0 0 0-4.088 7.404 12.523 12.523 0 0 0 1.588 8.344A12.094 12.094 0 0 0 8.25 23.98c.606.112.82-.273.82-.597V21.29c-3.364.747-4.073-1.655-4.073-1.655A3.285 3.285 0 0 0 3.66 17.83c-1.088-.755.088-.755.088-.755.382.055.745.196 1.064.417.32.22.584.511.777.85.164.304.384.571.65.787a2.523 2.523 0 0 0 2.855.241 2.631 2.631 0 0 1 .74-1.646c-2.677-.31-5.487-1.367-5.487-6.042a4.816 4.816 0 0 1 1.235-3.3A4.575 4.575 0 0 1 5.7 5.127s1.012-.333 3.311 1.261a11.156 11.156 0 0 1 6.034 0c2.3-1.593 3.305-1.261 3.305-1.261a4.55 4.55 0 0 1 .147 3.232 4.816 4.816 0 0 1 1.235 3.301c0 4.728-2.816 5.762-5.501 6.041.288.296.51.651.652 1.042.142.39.199.808.17 1.224v3.377c0 .4.213.71.827.59a12.1 12.1 0 0 0 6.414-5.322 12.524 12.524 0 0 0 1.548-8.29 12.37 12.37 0 0 0-4.047-7.36A11.897 11.897 0 0 0 12.058 0Z"
clipRule="evenodd"
/>
</svg>
);
export const Twitter = (props: React.SVGProps<SVGSVGElement>): JSX.Element => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
viewBox="0 0 50 50"
{...props}
className={clsx("dark:text-[#e7e9ea] text-[#0f1419]")}
>
<path
fillRule="evenodd"
d="M 5.9199219 6 L 20.582031 27.375 L 6.2304688 44 L 9.4101562 44 L 21.986328 29.421875 L 31.986328 44 L 44 44 L 28.681641 21.669922 L 42.199219 6 L 39.029297 6 L 27.275391 19.617188 L 17.933594 6 L 5.9199219 6 z M 9.7167969 8 L 16.880859 8 L 40.203125 42 L 33.039062 42 L 9.7167969 8 z"
clipRule="evenodd"
fill="currentColor"
/>
</svg>
);
export const Linkedin = (props: React.SVGProps<SVGSVGElement>): JSX.Element => (
<svg
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
fill="none"
{...props}
>
<rect width={24} height={24} fill="#0A66C2" rx={12} />
<path
fill="#fff"
d="M9.364 16.762H7.385V10.4h1.979v6.362ZM8.375 9.53a1.146 1.146 0 1 1 0-2.293 1.146 1.146 0 0 1 0 2.293Zm8.395 7.233h-1.977v-3.094c0-.738-.013-1.687-1.027-1.687-1.03 0-1.188.803-1.188 1.633v3.148h-1.974V10.4H12.5v.87h.027c.263-.5.908-1.028 1.871-1.028 2.003 0 2.372 1.318 2.372 3.031v3.49h-.001Z"
/>
</svg>
);

Some files were not shown because too many files have changed in this diff Show More