diff --git a/_data/pages/grant.yml b/_data/pages/grant.yml new file mode 100644 index 0000000000..a272b0bb02 --- /dev/null +++ b/_data/pages/grant.yml @@ -0,0 +1,149 @@ +id: 80c9a40d-ac4c-4bee-8c78-dd83667a1a97 +title: Grant +template: landing +parent_page: /ecosystem/ +breadcrumbs: false +page_last_updated: true +blocks: + - type: hero + variant: seed_grant_program + buttonUrl: "" + title: Seed Grant Program + description: "" + darkTextColor: true + - type: card_display + title: Application Process + button: Apply Now + buttonLink: https://starknet.questbook.app/proposal_form/?grantId=661667585afea0acb56c9f08&chainId=10&newTab=true + card_display_items: + - title: Application + description: "Applicants will submit proposals via an Questbook application form + provided by the Starknet Foundation team. " + - title: Internal Evaluation + description: " Each application will be assessed by members of the Starknet + Foundation and Starkware team based on criteria such as potential + impact, innovation, milestones, community engagement & track record, + and embeddedness with the Starknet ecosystem." + - title: Results + description: We plan to communicate decisions on your application within an + approximate two week timeframe. + - title: Onboarding + description: "Upon signing a grant agreement and completing KYC, the Starknet + Foundation will send funds. " + - title: Grant Deliverables + description: "After completion of the work, the Foundation will assess results + and share deliverables (blog post, video, AMA) with the team. " + - type: container + blocks: + - type: flex_layout + heading_variant: sm + blocks: + - type: markdown + body: >- + The grants will be awarded to individuals and teams demonstrating + promising results in building applications on Starknet, using any + combination of the following criteria: + + * Prior development experience on Starknet. + + * Active involvement in the Starknet community, indicated by participation in a Starknet hackathon, builder program, or another entry-level initiative. + + * Willing to submit a demo or links to a proof of concept or MVP. + + * Planning on using or building upon existing Starknet tools and integrations. + + + **All applicants will be required to provide a clear roadmap detailing how the grant will be used within the next three months.** + + heading: Who Can Apply? + xl: 1 + lg: 1 + md: 1 + base: 1 + max_width: 1062 + - type: container + blocks: + - type: flex_layout + heading_variant: sm + blocks: + - type: markdown + body: >- + Projects currently affiliated with the Starknet Foundation’s Developer Partnership are not eligible to participate in the Seed Grants Program. + Ineligible applications include anything related to: + + * Gambling + + * Drugs + + * Firearms + + * Illicit trade + + * Money laundering + + * Any criminal activity + + heading: Who is Not Eligible + base: 1 + md: 1 + lg: 1 + xl: 1 + max_width: 1062 + - type: card_list + randomize: false + title: Apply Now! + reverse: true + showIcons: false + card_list_items: + - title: Seed Grant Program Application Form + description: Application Form + image: /assets/sn-symbol-gradient.png + website_url: "https://starknet.questbook.app/proposal_form/?grantId=661667585af\ + ea0acb56c9f08&chainId=10&newTab=true " + - type: container + blocks: + - type: accordion + heading: FAQs + blocks: + - label: What is the Seed Grants Program? + body: "* The Seed Grants Program offers teams developing on Starknet grants of + up to $25,000 to foster the growth of the Starknet ecosystem" + - label: Who can apply? + body: >- + The grants will be awarded to individuals and teams demonstrating + promising results in building applications on Starknet, using any + combination of the following criteria: + * Prior development experience on Starknet. + * Active involvement in the Starknet community, indicated by participation in a Starknet hackathon, builder program, or another entry-level initiative. + * Willing to submit a demo or links to a proof of concept or MVP. + * Planning on using or building upon existing Starknet tools and integrations. + All applicants will be required to provide an explanation detailing how the grant will be used within the next three months. + Please note that projects currently affiliated with the Starknet Foundation’s Developer Partnership are not eligible to participate in the Seed Grants Program. + - label: What currency are grants paid in? + body: Grants are paid out in USDC. + - label: How long will it take to receive a response on my application? + body: You should receive a response around \[two weeks] after submission. + - label: What types of projects do you provide grants to? + body: Any project building on Starknet can be eligible for a grant. There is no + specific industry vertical targeted and the program is open to all + types of submissions. + - label: Who is reviewing grant applications? + body: Starknet Foundation and Starkware team members will be reviewing the + applications. + - label: Is my application confidential? + body: Applications will not be made public and will only be shared amongst the + Starknet Foundation and Starkware team. + - label: Will I hear back if my request is rejected? + body: Yes — you will hear back if your application is not accepted. + - label: Are there application deadlines? + body: No – you can apply for Seed Grants on an ongoing basis. Applications will + be reviewed in rounds. + - label: How can I apply for a grant? + body: Please apply via this link, where you will be asked to fill out several + questions. + - label: How will the reviewers evaluate my application? + body: Your application will undergo evaluation by members of the Starknet + Foundation and Starkware team, focusing on factors such as impact, + innovation, community engagement, track record, and other relevant + criteria. + max_width: 1062 diff --git a/_data/settings/main-menu.yml b/_data/settings/main-menu.yml index c972a4f464..63c47a254f 100644 --- a/_data/settings/main-menu.yml +++ b/_data/settings/main-menu.yml @@ -45,6 +45,8 @@ items: - page: 9308fd57-e090-4ca9-9581-d9aeb8a3187c - custom_title: Security & audits custom_internal_link: "" + - custom_title: Grants Program + custom_internal_link: ecosystem/grant page: af68f1f8-b2a3-49e2-bec0-f36165cc331f - custom_external_link: https://status.starknet.io/ custom_icon: "" diff --git a/public/assets/ecosystem/seed_grant_program.svg b/public/assets/ecosystem/seed_grant_program.svg new file mode 100644 index 0000000000..0404e9a56d --- /dev/null +++ b/public/assets/ecosystem/seed_grant_program.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workspaces/cms-config/src/blocks.ts b/workspaces/cms-config/src/blocks.ts index bb077a138b..19a2832dcc 100644 --- a/workspaces/cms-config/src/blocks.ts +++ b/workspaces/cms-config/src/blocks.ts @@ -249,6 +249,28 @@ export const cardListItem = [ }, ] satisfies CmsField[]; +export const cardDisplayItem = [ + { + label: "Title", + name: "title", + widget: "string", + crowdin: true, + }, + { + label: "Description", + name: "description", + widget: "string", + crowdin: false, + }, + { + label: "Image", + required: false, + name: "image", + widget: "image", + crowdin: false, + }, +] satisfies CmsField[]; + const videoChapterFields = [ { crowdin: true, @@ -494,6 +516,20 @@ export const blocks = [ widget: "string", crowdin: true, }, + { + label: "reverse", + name: "reverse", + required: false, + widget: "boolean", + crowdin: true, + }, + { + label: "show icons", + name: "showIcons", + required: false, + widget: "boolean", + crowdin: true, + }, { name: "randomize", label: "Randomize", @@ -513,6 +549,44 @@ export const blocks = [ }, ], }, + { + name: "card_display", + label: "Cards display", + widget: "object", + fields: [ + { + label: "Title", + name: "title", + required: false, + widget: "string", + crowdin: true, + }, + { + label: "button", + name: "button", + required: false, + widget: "string", + crowdin: true, + }, + { + label: "button link", + name: "buttonLink", + required: false, + widget: "string", + crowdin: true, + }, + { + label: "Card display items", + name: "card_display_items", + widget: "list", + fields: cardDisplayItem, + crowdin: true, + required: true, + index_file: "", + meta: true, + }, + ], + }, { name: "hero", label: "Hero", @@ -523,6 +597,12 @@ export const blocks = [ widget: "string", crowdin: true, }, + { + name: "darkTextColor", + widget: "boolean", + required: false, + crowdin: true, + }, { name: "description", widget: "string", @@ -542,6 +622,7 @@ export const blocks = [ "community", "nodes_and_services", "security", + "seed_grant_program", ], default: "learn", }, diff --git a/workspaces/cms-data/src/pages.ts b/workspaces/cms-data/src/pages.ts index f29c8c230c..2e19aef0cd 100644 --- a/workspaces/cms-data/src/pages.ts +++ b/workspaces/cms-data/src/pages.ts @@ -66,6 +66,17 @@ export interface ListCardItems { type: string; } +export interface DisplayCardItems { + title: + | "Application" + | "Internal Evaluation" + | "Results" + | "Onboarding" + | "Grant Deliverables"; + description: string; + image?: string; +} + export interface ListCardItemsBlock { readonly type: "card_list"; readonly title: string; @@ -73,6 +84,17 @@ export interface ListCardItemsBlock { readonly noOfItems: number; readonly description: string; randomize?: boolean; + reverse?: boolean; + showIcons?: boolean; +} +export interface DisplayCardItemsBlock { + readonly type: "card_display"; + readonly title: string; + readonly card_display_items: DisplayCardItems[]; + readonly noOfItems: number; + readonly button: string; + readonly buttonLink: string; + randomize?: boolean; } export interface LinkListItem { @@ -115,6 +137,7 @@ export interface PageHeaderBlock { export interface HeroBlock { readonly type: "hero"; + readonly darkTextColor?: boolean; readonly title: string; readonly description: string; readonly variant?: @@ -202,6 +225,7 @@ export type Block = | AccordionBlock | OrderedBlock | ListCardItemsBlock + | DisplayCardItemsBlock | AmbassadorsListBlock | VideoSectionBlock | NewsletterBlock; diff --git a/workspaces/website/src/blocks/Block.tsx b/workspaces/website/src/blocks/Block.tsx index 431aaebca3..5a795449b1 100644 --- a/workspaces/website/src/blocks/Block.tsx +++ b/workspaces/website/src/blocks/Block.tsx @@ -22,6 +22,7 @@ import VideoSectionBlock from "./VideoSectionBlock"; import { NewsletterCard } from "@ui/Card/NewsletterCard"; import { YoutubePlayer } from "@ui/YoutubePlayer/YoutubePlayer"; import NavbarStickyBanner from "../pages/(components)/NavbarStickyBanner/NavbarStickyBanner"; +import DisplayCardItems from "./DisplayCardItems"; export enum BlockPlacements { DEFAULT = "DEFAULT", @@ -168,6 +169,7 @@ export function Block({ buttonText={block.buttonText} buttonUrl={block.buttonUrl} leftBoxMaxWidth={block.leftBoxMaxWidth} + darkTextColor={block.darkTextColor} /> ); @@ -188,6 +190,15 @@ export function Block({ }} /> ); + case "card_display": + return ( + + ); case "video_section": return ; } diff --git a/workspaces/website/src/blocks/DisplayCardItems.tsx b/workspaces/website/src/blocks/DisplayCardItems.tsx new file mode 100644 index 0000000000..ac98267c1e --- /dev/null +++ b/workspaces/website/src/blocks/DisplayCardItems.tsx @@ -0,0 +1,89 @@ +import { Box, Flex, Container, LinkBox, Link, List } from "@chakra-ui/react"; +import { Heading } from "@ui/Typography/Heading"; +import { slugify } from "@starknet-io/cms-utils/src/index"; +import type { DisplayCardItems } from "@starknet-io/cms-data/src/pages"; +import { DisplayCard } from "@ui/Card/DisplayCard"; +interface Props extends LocaleProps { + title: string; + button?: string; + buttonLink?: string; + card_display_items: DisplayCardItems[]; + randomize?: boolean; +} + +export default function DisplayCardItems({ + params: { locale }, + title, + button, + buttonLink, + card_display_items, +}: Props): JSX.Element { + return ( + + + + {title && ( + + {title} + + )} + {button && ( + + {button} → + + )} + + + {card_display_items?.map(({ title, description }, i) => { + return ( + + ); + })} + + + + ); +} diff --git a/workspaces/website/src/blocks/ListCardItems.tsx b/workspaces/website/src/blocks/ListCardItems.tsx index b87a26f02e..da498b1688 100644 --- a/workspaces/website/src/blocks/ListCardItems.tsx +++ b/workspaces/website/src/blocks/ListCardItems.tsx @@ -6,41 +6,56 @@ import { slugify } from "@starknet-io/cms-utils/src/index"; import type { ListCardItems } from "@starknet-io/cms-data/src/pages"; interface Props extends LocaleProps { - title: string, - description?: string, - card_list_items: ListCardItems[], - randomize?: boolean + title: string; + description?: string; + reverse?: boolean; + showIcons?: boolean; + card_list_items: ListCardItems[]; + randomize?: boolean; } export default function ListCardItems({ params: { locale }, title, description, - card_list_items -}: -Props): JSX.Element { + reverse, + showIcons, + card_list_items, +}: Props): JSX.Element { return ( - {title && {title}} - {description && {description}} + {title && ( + + {title} + + )} + {description && ( + + {description} + + )} - {card_list_items?.map(({ - start_date_time, - type, - website_url, - ...card - }, i) => { - return ( - - ); - })} + {card_list_items?.map( + ({ start_date_time, type, website_url, ...card }, i) => { + return ( + + ); + } + )} diff --git a/workspaces/website/src/components/Card/DisplayCard.tsx b/workspaces/website/src/components/Card/DisplayCard.tsx new file mode 100644 index 0000000000..10dcc5a424 --- /dev/null +++ b/workspaces/website/src/components/Card/DisplayCard.tsx @@ -0,0 +1,92 @@ +import { Box, Stack, BoxProps, Text, Circle } from "@chakra-ui/react"; +import { Application } from "@ui/Icons/DisplayCardIcons/Application"; +import { GrantDeliverables } from "@ui/Icons/DisplayCardIcons/GrantDeliverables"; +import { InternalEvaluation } from "@ui/Icons/DisplayCardIcons/InternalEvaluation"; +import { Onboarding } from "@ui/Icons/DisplayCardIcons/Onboarding"; +import { Results } from "@ui/Icons/DisplayCardIcons/Results"; +import { Heading } from "@ui/Typography/Heading"; + +type Props = { + readonly title: + | "Application" + | "Internal Evaluation" + | "Results" + | "Onboarding" + | "Grant Deliverables"; + readonly description?: string; + readonly index: number; +} & BoxProps; + +const images = { + Application: , + "Internal Evaluation": , + Results: , + Onboarding: , + "Grant Deliverables": , +}; + +export const DisplayCard = (props: Props) => { + return ( + + + + + {images[props?.title]} + + + + + + {props.index} + + + {props.title} + + + {props.description} + + + + ); +}; diff --git a/workspaces/website/src/components/Card/ListCard.tsx b/workspaces/website/src/components/Card/ListCard.tsx index 789c8364af..01cdb68f96 100644 --- a/workspaces/website/src/components/Card/ListCard.tsx +++ b/workspaces/website/src/components/Card/ListCard.tsx @@ -10,6 +10,7 @@ import { Img, LinkBox, LinkOverlay, + Flex, } from "@chakra-ui/react"; import { Heading } from "@ui/Typography/Heading"; import { Text } from "@ui/Typography/Text"; @@ -31,6 +32,8 @@ type Props = { readonly location?: string; readonly image?: string; readonly href: string; + readonly reverse?: boolean; + readonly showIcons?: boolean; readonly city?: string; readonly country?: string; readonly twitter?: string; @@ -45,26 +48,39 @@ type Props = { }; } & BoxProps; -export const ListCard = (props: Props) => { - const cloudflareImage = `https://www.starknet.io/cdn-cgi/image/width=80px,height=auto,format=auto${props.image}`; - const isProd = import.meta.env.VITE_ALGOLIA_INDEX === "production"; - +export const ListCard = ({ + reverse = false, + showIcons = true, + title, + startDateTime, + description, + location, + image, + href, + city, + country, + twitter, + discord, + variant, + type_list, + type, + recap, +}: Props) => { + const cloudflareImage = `https://www.starknet.io/cdn-cgi/image/width=80px,height=auto,format=auto${image}`; + const isProd = import.meta.env.VITE_ALGOLIA_INDEX === "production"; + return ( - + { spacing={{ base: "3", md: "6" }} align="center" > - {props.image && - - - - } + {image && ( + + + + + + )} - {props.startDateTime && ( + {startDateTime && ( - {props.startDateTime} - {props.city && ( + {startDateTime} + {city && ( · )} - {/* {props.city} */} - {props.city && ` ${props.city}, `} - {props.country && props.country} + {city && ` ${city}, `} + {country && country} )} - - + - {props.title} - - - {/* */} - - - - - - {props.description} - - {/* {props.variant === "event" && ( - - - - )} */} - {props.type_list ? ( - - {props.type_list.map((tag) => ( - - - {tag.type !== "ios" ? titleCase(tag.type) : "iOS"} - - - ))} - - ) : ( - props.type && ( - - {props.location && ( - - {titleCase(props.location)} - - )} - {props.type - .filter((element) => element !== "") - .map((tag) => ( - - {titleCase(tag)} - - ))} - - ) - )} - - - {props.href && - props.variant !== "event" && - props.variant !== "job" && ( - - - - )} - {props.twitter && ( - + {title} + + - - )} - {props.discord && ( - - - - )} - - {props.recap?.link && ( - + {description} + + + {showIcons && ( + <> + {type_list ? ( + + {type_list.map((tag) => ( + + + {tag.type !== "ios" ? titleCase(tag.type) : "iOS"} + + + ))} + + ) : ( + type && ( + + {location && ( + {titleCase(location)} + )} + {type + .filter((element) => element !== "") + .map((tag) => ( + + {titleCase(tag)} + + ))} + + ) + )} + + + {href && variant !== "event" && variant !== "job" && ( + + + + )} + {twitter && ( + + + + )} + {discord && ( + + + + )} + + {recap?.link && ( + + )} + )} diff --git a/workspaces/website/src/components/HeroImage/HeroImage.tsx b/workspaces/website/src/components/HeroImage/HeroImage.tsx index 3bb41dfe82..56174fc333 100644 --- a/workspaces/website/src/components/HeroImage/HeroImage.tsx +++ b/workspaces/website/src/components/HeroImage/HeroImage.tsx @@ -16,6 +16,7 @@ import React from "react"; type Props = { title: string; description: string | React.ReactNode; + darkTextColor?: boolean; variant?: | "wallets" | "block_explorers" @@ -26,7 +27,8 @@ type Props = { | "community" | "nodes_and_services" | "security" - | "roadmap"; + | "roadmap" + | "seed_grant_program"; buttonText?: string; buttonUrl?: string; onButtonClick?: () => void; @@ -49,7 +51,7 @@ const heroStyles: Record = { "linear(258.76deg, hero-gradient-dapps-a 3.96%, hero-gradient-dapps-b 254.34%)", arrowGradient: "linear(95.36deg, #EC796B 1.31%, #D672EF 169.4%)", arrowOpacity: "0.2", - arrowTipColor: "#D672EF" + arrowTipColor: "#D672EF", }, block_explorers: { img: "/assets/ecosystem/blockexplorers.svg", @@ -57,7 +59,7 @@ const heroStyles: Record = { "linear(258.76deg, hero-gradient-block-explorers-a 3.96%, hero-gradient-block-explorers-b 254.34%)", arrowGradient: "linear(95.36deg, #EC796B 1.31%, #D672EF 169.4%)", arrowOpacity: "0.2", - arrowTipColor: "#D672EF" + arrowTipColor: "#D672EF", }, bridges: { img: "/assets/ecosystem/bridges.svg", @@ -65,7 +67,14 @@ const heroStyles: Record = { "linear(258.76deg, hero-gradient-bridges-on-ramps-a 3.96%, hero-gradient-bridges-on-ramps-b 254.34%)", arrowGradient: "linear(95.36deg, #EC796B 1.31%, #D672EF 169.4%)", arrowOpacity: "0.2", - arrowTipColor: "#D672EF" + arrowTipColor: "#D672EF", + }, + seed_grant_program: { + img: "/assets/ecosystem/seed_grant_program.svg", + gradient: "linear(258.76deg,#CDCDE8, #DEFAFF)", + arrowGradient: "linear(95.36deg, #7CB3B9 1.31%, #658DAA 169.4%)", + arrowOpacity: "0.2", + arrowTipColor: "#D672EF", }, wallets: { img: "/assets/ecosystem/wallets.svg", @@ -73,7 +82,7 @@ const heroStyles: Record = { "linear(258.76deg, hero-gradient-wallets-a 3.96%, hero-gradient-wallets-b 254.34%)", arrowGradient: "linear(95.36deg, #EC796B 1.31%, #D672EF 169.4%)", arrowOpacity: "0.2", - arrowTipColor: "#D672EF" + arrowTipColor: "#D672EF", }, learn: { img: "/assets/ecosystem/learn.svg", @@ -81,7 +90,7 @@ const heroStyles: Record = { "linear(258.76deg, hero-gradient-learn-a 3.96%, hero-gradient-learn-b 254.34%)", arrowGradient: "linear(95.36deg, #EC796B 1.31%, #D672EF 169.4%)", arrowOpacity: "0.2", - arrowTipColor: "#D672EF" + arrowTipColor: "#D672EF", }, build: { img: "/assets/ecosystem/developer.svg", @@ -89,7 +98,7 @@ const heroStyles: Record = { "linear(258.76deg, hero-gradient-developer-a 3.96%, hero-gradient-developer-b 254.34%)", arrowGradient: "linear(95.36deg, #EC796B 1.31%, #D672EF 169.4%)", arrowOpacity: "0.2", - arrowTipColor: "#D672EF" + arrowTipColor: "#D672EF", }, community: { img: "/assets/ecosystem/community.svg", @@ -97,7 +106,7 @@ const heroStyles: Record = { "linear(258.76deg, hero-gradient-community-a 3.96%, hero-gradient-community-b 254.34%)", arrowGradient: "linear(95.36deg, #EC796B 1.31%, #D672EF 169.4%)", arrowOpacity: "0.2", - arrowTipColor: "#D672EF" + arrowTipColor: "#D672EF", }, nodes_and_services: { img: "/assets/ecosystem/nodes_and_services.svg", @@ -105,7 +114,7 @@ const heroStyles: Record = { "linear-gradient(258.76deg, hero-gradient-nodes-and-services-a 3.96%, hero-gradient-nodes-and-services-b 254.34%)", arrowGradient: "linear(95.36deg, #EC796B 1.31%, #D672EF 169.4%)", arrowOpacity: "0.2", - arrowTipColor: "#D672EF" + arrowTipColor: "#D672EF", }, roadmap: { img: "/assets/ecosystem/roadmap.svg", @@ -113,15 +122,15 @@ const heroStyles: Record = { arrowGradient: "linear(45deg, #82BDBD 100%, #4F6D87 100%)", backgroundBlendMode: "multiply, multiply, multiply, normal", arrowOpacity: "1", - arrowTipColor: "#82BDBD" + arrowTipColor: "#82BDBD", }, security: { img: "/assets/ecosystem/security.svg", gradient: "linear(262.88deg, hero-gradient-security-a 21.62%, hero-gradient-security-b 100.38%)", arrowGradient: "linear(250.04deg, #5B5F68 57.45%, #81D2FF 119.39%)", - arrowTipColor: "#5B5F68" - } + arrowTipColor: "#5B5F68", + }, }; export const HeroImage = ({ @@ -132,14 +141,21 @@ export const HeroImage = ({ buttonUrl, onButtonClick, leftBoxMaxWidth, + darkTextColor = false, }: Props) => { return ( @@ -253,7 +267,7 @@ export const HeroImage = ({ height: 0, borderTop: "2px solid transparent", borderBottom: "2px solid transparent", - borderLeft: `5px solid ${heroStyles[variant].arrowTipColor}` + borderLeft: `5px solid ${heroStyles[variant].arrowTipColor}`, }} /> @@ -262,6 +276,9 @@ export const HeroImage = ({ as="h1" color="heading-navy-fg" variant="h2" + _dark={{ + color: darkTextColor ? "#0C0C4F" : "white", + }} size={useBreakpointValue({ base: "md", md: "lg" })} > {title} @@ -274,9 +291,7 @@ export const HeroImage = ({ {description} {!!buttonText && ( - + - */} diff --git a/workspaces/website/src/components/Icons/DisplayCardIcons/Application.tsx b/workspaces/website/src/components/Icons/DisplayCardIcons/Application.tsx new file mode 100644 index 0000000000..06ef3d2345 --- /dev/null +++ b/workspaces/website/src/components/Icons/DisplayCardIcons/Application.tsx @@ -0,0 +1,175 @@ +import { HTMLChakraProps } from "@chakra-ui/react"; + +type Props = HTMLChakraProps<"svg">; + +export const Application = ({}: Props) => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; diff --git a/workspaces/website/src/components/Icons/DisplayCardIcons/GrantDeliverables.tsx b/workspaces/website/src/components/Icons/DisplayCardIcons/GrantDeliverables.tsx new file mode 100644 index 0000000000..b7aa776d24 --- /dev/null +++ b/workspaces/website/src/components/Icons/DisplayCardIcons/GrantDeliverables.tsx @@ -0,0 +1,134 @@ +import { HTMLChakraProps } from "@chakra-ui/react"; + +type Props = HTMLChakraProps<"svg">; + +export const GrantDeliverables = ({}: Props) => { + return ( + + + + + + + + + + + + + + + + + + + + + + + + ); +}; diff --git a/workspaces/website/src/components/Icons/DisplayCardIcons/InternalEvaluation.tsx b/workspaces/website/src/components/Icons/DisplayCardIcons/InternalEvaluation.tsx new file mode 100644 index 0000000000..ccfa9cfe22 --- /dev/null +++ b/workspaces/website/src/components/Icons/DisplayCardIcons/InternalEvaluation.tsx @@ -0,0 +1,96 @@ +import { HTMLChakraProps } from "@chakra-ui/react"; + +type Props = HTMLChakraProps<"svg">; + +export const InternalEvaluation = ({}: Props) => { + return ( + + + + + + + + + + + + + + + + + + + + + + + ); +}; diff --git a/workspaces/website/src/components/Icons/DisplayCardIcons/Onboarding.tsx b/workspaces/website/src/components/Icons/DisplayCardIcons/Onboarding.tsx new file mode 100644 index 0000000000..396f64bb6d --- /dev/null +++ b/workspaces/website/src/components/Icons/DisplayCardIcons/Onboarding.tsx @@ -0,0 +1,32 @@ +import { HTMLChakraProps } from "@chakra-ui/react"; + +type Props = HTMLChakraProps<"svg">; + +export const Onboarding = ({}: Props) => { + return ( + + + + + + ); +}; diff --git a/workspaces/website/src/components/Icons/DisplayCardIcons/Results.tsx b/workspaces/website/src/components/Icons/DisplayCardIcons/Results.tsx new file mode 100644 index 0000000000..574d36273d --- /dev/null +++ b/workspaces/website/src/components/Icons/DisplayCardIcons/Results.tsx @@ -0,0 +1,40 @@ +import { HTMLChakraProps } from "@chakra-ui/react"; + +type Props = HTMLChakraProps<"svg">; + +export const Results = ({}: Props) => { + return ( + + + + + + + + ); +};