From a6a3a581cd12b0a9ae6611b05bb66ffedb255b5c Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Thu, 24 Apr 2025 20:55:39 -0600 Subject: [PATCH 01/42] setup future data --- .../roadmap/_components/ReleaseCarousel.tsx | 22 ++++++++++++------- src/data/roadmap/releases.tsx | 14 ++++++++++++ 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/app/[locale]/roadmap/_components/ReleaseCarousel.tsx b/app/[locale]/roadmap/_components/ReleaseCarousel.tsx index cd782c3aa31..a813bc75318 100644 --- a/app/[locale]/roadmap/_components/ReleaseCarousel.tsx +++ b/app/[locale]/roadmap/_components/ReleaseCarousel.tsx @@ -15,9 +15,13 @@ import { import { cn } from "@/lib/utils/cn" -import { releasesData } from "@/data/roadmap/releases" +import { releasesDataWithFuture } from "@/data/roadmap/releases" const formatReleaseDate = (date: string) => { + if (date === "Future") { + return "Future" + } + if (/^\d{4}$/.test(date)) { return date } @@ -34,19 +38,19 @@ const findLatestReleaseIndex = () => { twoMonthsFromNow.setMonth(today.getMonth() + 2) // First try to find a release within the next 2 months - const upcomingReleaseIndex = releasesData.findIndex((release) => { + const upcomingReleaseIndex = releasesDataWithFuture.findIndex((release) => { const releaseDate = new Date(release.releaseDate) return releaseDate > today && releaseDate <= twoMonthsFromNow }) // If no upcoming release found, find the most recent release up to today if (upcomingReleaseIndex === -1) { - const pastReleases = releasesData.filter( + const pastReleases = releasesDataWithFuture.filter( (release) => new Date(release.releaseDate) <= today ) if (pastReleases.length > 0) { const mostRecentRelease = pastReleases[pastReleases.length - 1] - return releasesData.findIndex( + return releasesDataWithFuture.findIndex( (release) => release.releaseDate === mostRecentRelease.releaseDate ) } @@ -97,7 +101,7 @@ const ReleaseCarousel = () => { }} > - {releasesData.map((release, index) => { + {releasesDataWithFuture.map((release, index) => { const releaseDate = new Date(release.releaseDate) const nextRelease = releaseDate > todayDate && releaseDate <= twoMonthsFromNow @@ -176,7 +180,7 @@ const ReleaseCarousel = () => {
{ }} > - {releasesData.map((release) => ( + {releasesDataWithFuture.map((release) => ( { {release.releaseName}

- {formatReleaseDate(release.releaseDate)} + {release.releaseDate === "Future" + ? "Future" + : formatReleaseDate(release.releaseDate)}

diff --git a/src/data/roadmap/releases.tsx b/src/data/roadmap/releases.tsx index 5ce42dea64d..7942ed52c50 100644 --- a/src/data/roadmap/releases.tsx +++ b/src/data/roadmap/releases.tsx @@ -192,3 +192,17 @@ export const releasesData: Release[] = [ href: "https://eips.ethereum.org/EIPS/eip-7773", }, ] + +// TODO: Add future releases when implementing /roadmap/tracks +// const futureRelease: Release = { +// image: CommunityHeroImage, +// releaseName: "Future releases", +// releaseDate: "Future", +// content: [], +// href: "https://eips.ethereum.org/EIPS/eip-7773", +// } + +export const releasesDataWithFuture: Release[] = [ + ...releasesData, + // futureRelease, +] From dec12b2361b9be1c571b3cbae95f37fd914f7602 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Fri, 25 Apr 2025 08:04:22 -0600 Subject: [PATCH 02/42] fix sticky bug --- app/[locale]/roadmap/_components/roadmap.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/[locale]/roadmap/_components/roadmap.tsx b/app/[locale]/roadmap/_components/roadmap.tsx index 8ee2fb6637a..999fdc2890a 100644 --- a/app/[locale]/roadmap/_components/roadmap.tsx +++ b/app/[locale]/roadmap/_components/roadmap.tsx @@ -274,7 +274,7 @@ const RoadmapPage = () => {
-
+
Ethereum blocks Date: Mon, 28 Apr 2025 09:48:39 -0600 Subject: [PATCH 03/42] setup hero section --- .../roadmap/tracks/_components/tracks.tsx | 72 ++++++++++++++++++ app/[locale]/roadmap/tracks/page.tsx | 48 ++++++++++++ public/images/roadmap/roadmap-tracks-hero.png | Bin 0 -> 174505 bytes src/intl/en/page-roadmap-tracks.json | 5 ++ src/lib/utils/translations.ts | 4 + 5 files changed, 129 insertions(+) create mode 100644 app/[locale]/roadmap/tracks/_components/tracks.tsx create mode 100644 app/[locale]/roadmap/tracks/page.tsx create mode 100644 public/images/roadmap/roadmap-tracks-hero.png create mode 100644 src/intl/en/page-roadmap-tracks.json diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx new file mode 100644 index 00000000000..aa23f1df4fc --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -0,0 +1,72 @@ +"use client" + +import { motion } from "framer-motion" + +import BannerNotification from "@/components/Banners/BannerNotification" +import FeedbackCard from "@/components/FeedbackCard" +import { ContentHero } from "@/components/Hero" +import MainArticle from "@/components/MainArticle" +import { ButtonLink } from "@/components/ui/buttons/Button" + +import { cn } from "@/lib/utils/cn" + +import { useActiveHash } from "@/hooks/useActiveHash" +import { useTranslation } from "@/hooks/useTranslation" + +const RoadmapTracksPage = () => { + const { t } = useTranslation("page-roadmap-tracks") + const activeSection = useActiveHash( + [].map(({ key }) => key), + "0% 0% -70% 0%" + ).replace(/^#/, "") + + return ( + + +

+ Ethereum's development is community-driven and subject to change. +

+
+ + +
+
+ {t("page-roadmap-tracks-whats-on-this-page")} +
+ +
+ + +
+ ) +} + +export default RoadmapTracksPage diff --git a/app/[locale]/roadmap/tracks/page.tsx b/app/[locale]/roadmap/tracks/page.tsx new file mode 100644 index 00000000000..9cd112ffd57 --- /dev/null +++ b/app/[locale]/roadmap/tracks/page.tsx @@ -0,0 +1,48 @@ +import pick from "lodash.pick" +import { getTranslations } from "next-intl/server" + +import { Lang } from "@/lib/types" + +import I18nProvider from "@/components/I18nProvider" + +import { getMetadata } from "@/lib/utils/metadata" +import { getRequiredNamespacesForPage } from "@/lib/utils/translations" + +import RoadmapTracksPage from "./_components/tracks" + +import { loadMessages } from "@/i18n/loadMessages" + +const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => { + const { locale } = await params + + // Get i18n messages + const allMessages = await loadMessages(locale) + const requiredNamespaces = getRequiredNamespacesForPage("/roadmap/tracks") + const messages = pick(allMessages, requiredNamespaces) + + return ( + + + + ) +} + +export async function generateMetadata({ + params, +}: { + params: Promise<{ locale: string }> +}) { + const { locale } = await params + + const t = await getTranslations({ locale, namespace: "page-roadmap-tracks" }) + + return await getMetadata({ + locale, + slug: ["roadmap/tracks"], + title: t("page-roadmap-tracks-meta-title"), + description: t("page-roadmap-tracks-meta-description"), + image: "/images/roadmap/roadmap-tracks-hero.png", + }) +} + +export default Page diff --git a/public/images/roadmap/roadmap-tracks-hero.png b/public/images/roadmap/roadmap-tracks-hero.png new file mode 100644 index 0000000000000000000000000000000000000000..4066b6138bff98810df2a42ed25ec3411692401c GIT binary patch literal 174505 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%0A@Vnm6%Mvkrw}mRb;0Y{i9~OQF(98*eh6 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

GR*%MrWQd>8JYkIDfsr zN0k;i=bWWqdg_VC_+#le0~0Es)O93+M%72oi#W+xX5Kj~mR}-|%HUXVN|bX#r6tf* z!x3>TuIL{1mnX<%-Jb?jiZav}=BPjRrRFHKVyI|rabfo*E;7}@a2y7rXX4ao+(g#q z3j;bKQuP76_p}KIytcr)J&@c`Mt_eg)gr$#OovT|IwsDi+wZt<4z>7b8Ni-%@Pduo zw|CK49#zmj?65iXLu1Y^`-7+%uow%~(-Bo*LkQV@R4{JX=x-zFQn-Ky@VAfvEs3%1}0{)}Iq;QP*>7 z2_b`hlrmsXr5!uFmr{$5mI3VE-kt(@;ITdc+NjY!;)waQapN!O9T$CtKKk(=^XtsE z{Uur{W*?%}y0`Y`xEmh0!P7tIIvYjW_26FfXog1lP9aCj?_5KBI-lNs&PUFEn8wF* zHmXtf`RBjpKmTys9aJn@??bW$7HB^Y$VRE!NCO;4{d6Bk+GWa!QLhx)ab(>Wwn^k$ zis9X;peaq0sMiK%g6P&kS0v1M*OP9>LI}H1dqUXT? zr;U2-*|TTxP4Hcs-f=0<`YwI^S2>g_vR1m1{MXm-wOnC%R1 zH$b6K-FX_drBjmyLXEU*wY6->@5aw_8T#tA+vucueLr)YbH^?x_BTwAB2w-{beJxA-d zjg7P&XCO#WCw9HBtCb_=IHI|;4x$I|yOCOb{C{6&e(X$I3 { primaryNamespace = "page-roadmap" } + if (path.startsWith("/roadmap/tracks/")) { + primaryNamespace = "page-roadmap-tracks" + } + if (path.startsWith("/start/")) { requiredNamespaces = [...requiredNamespaces] } From cbe52f26d4e07508e27f1ae6cfca62dd8d41432b Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Mon, 28 Apr 2025 11:21:50 -0600 Subject: [PATCH 04/42] setup nav bar --- .../roadmap/tracks/_components/tracks.tsx | 9 ++-- .../roadmap/tracks/_components/useTracks.tsx | 53 +++++++++++++++++++ src/components/icons/roadmap/MergeIcon.tsx | 15 ++++++ src/components/icons/roadmap/PurgeIcon.tsx | 15 ++++++ src/components/icons/roadmap/ScourgeIcon.tsx | 15 ++++++ src/components/icons/roadmap/SplurgeIcon.tsx | 15 ++++++ src/components/icons/roadmap/SurgeIcon.tsx | 15 ++++++ src/components/icons/roadmap/VergeIcon.tsx | 15 ++++++ src/components/icons/roadmap/index.ts | 12 +++++ src/intl/en/page-roadmap-tracks.json | 8 ++- 10 files changed, 168 insertions(+), 4 deletions(-) create mode 100644 app/[locale]/roadmap/tracks/_components/useTracks.tsx create mode 100644 src/components/icons/roadmap/MergeIcon.tsx create mode 100644 src/components/icons/roadmap/PurgeIcon.tsx create mode 100644 src/components/icons/roadmap/ScourgeIcon.tsx create mode 100644 src/components/icons/roadmap/SplurgeIcon.tsx create mode 100644 src/components/icons/roadmap/SurgeIcon.tsx create mode 100644 src/components/icons/roadmap/VergeIcon.tsx diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index aa23f1df4fc..b1b01fc9fc6 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -10,18 +10,21 @@ import { ButtonLink } from "@/components/ui/buttons/Button" import { cn } from "@/lib/utils/cn" +import { useTracks } from "./useTracks" + import { useActiveHash } from "@/hooks/useActiveHash" import { useTranslation } from "@/hooks/useTranslation" const RoadmapTracksPage = () => { const { t } = useTranslation("page-roadmap-tracks") + const tracks = useTracks() const activeSection = useActiveHash( - [].map(({ key }) => key), + tracks.map(({ key }) => key), "0% 0% -70% 0%" ).replace(/^#/, "") return ( - +

Ethereum's development is community-driven and subject to change. @@ -40,7 +43,7 @@ const RoadmapTracksPage = () => { {t("page-roadmap-tracks-whats-on-this-page")}

+
+ {tracks.map(({ key, icon, contentData }) => ( +
+
+
+ + {cloneElement(icon as React.ReactElement, { + className: "w-full h-full", + })} + +
+

{contentData.title}

+
+
+
+

Goals:

+

{contentData.goalDescription}

+
+
+

Benefits:

+

{contentData.benefits}

+
+
+
+ ))} +
+ ) diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index f9ae3299851..7d01c9d8c7c 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -13,6 +13,12 @@ type Track = { key: string title: string icon: React.ReactNode + contentData: { + title: string + goalDescription: string + benefits: string[] + nodes: [] + } } export const useTracks = (): Track[] => { @@ -23,31 +29,67 @@ export const useTracks = (): Track[] => { key: "merge", title: t("page-roadmap-tracks-merge-title"), icon: , + contentData: { + title: t("page-roadmap-tracks-merge-content-title"), + goalDescription: t("page-roadmap-tracks-merge-goal-description"), + benefits: [], + nodes: [], + }, }, { key: "surge", title: t("page-roadmap-tracks-surge-title"), icon: , + contentData: { + title: t("page-roadmap-tracks-surge-content-title"), + goalDescription: t("page-roadmap-tracks-surge-goal-description"), + benefits: [], + nodes: [], + }, }, { key: "scourge", title: t("page-roadmap-tracks-scourge-title"), icon: , + contentData: { + title: t("page-roadmap-tracks-scourge-content-title"), + goalDescription: t("page-roadmap-tracks-scourge-goal-description"), + benefits: [], + nodes: [], + }, }, { key: "purge", title: t("page-roadmap-tracks-purge-title"), icon: , + contentData: { + title: t("page-roadmap-tracks-purge-content-title"), + goalDescription: t("page-roadmap-tracks-purge-goal-description"), + benefits: [], + nodes: [], + }, }, { key: "verge", title: t("page-roadmap-tracks-verge-title"), icon: , + contentData: { + title: t("page-roadmap-tracks-verge-content-title"), + goalDescription: t("page-roadmap-tracks-verge-goal-description"), + benefits: [], + nodes: [], + }, }, { key: "splurge", title: t("page-roadmap-tracks-splurge-title"), icon: , + contentData: { + title: t("page-roadmap-tracks-splurge-content-title"), + goalDescription: t("page-roadmap-tracks-splurge-goal-description"), + benefits: [], + nodes: [], + }, }, ] } diff --git a/src/intl/en/page-roadmap-tracks.json b/src/intl/en/page-roadmap-tracks.json index ae6d4c8eabc..fd44295dc4f 100644 --- a/src/intl/en/page-roadmap-tracks.json +++ b/src/intl/en/page-roadmap-tracks.json @@ -7,5 +7,17 @@ "page-roadmap-tracks-scourge-title": "Scourge", "page-roadmap-tracks-purge-title": "Purge", "page-roadmap-tracks-verge-title": "Verge", - "page-roadmap-tracks-splurge-title": "Splurge" + "page-roadmap-tracks-splurge-title": "Splurge", + "page-roadmap-tracks-merge-content-title": "The Merge", + "page-roadmap-tracks-merge-goal-description": "Join the old Ethereum system with the new energy-efficient one, while making Ethereum greener and ready for future upgrades.", + "page-roadmap-tracks-surge-content-title": "The Surge", + "page-roadmap-tracks-surge-goal-description": "Make Ethereum faster and cheaper to use by introducing ways to handle lots of transactions at once (using rollups and sharding).", + "page-roadmap-tracks-scourge-content-title": "The Scourge", + "page-roadmap-tracks-scourge-goal-description": "Keep Ethereum fair by stopping big groups or companies from controlling how transactions are processed or prioritised.", + "page-roadmap-tracks-purge-content-title": "The Purge", + "page-roadmap-tracks-purge-goal-description": "Get rid of unnecessary data and history on the network to keep Ethereum efficient and manageable over time.", + "page-roadmap-tracks-verge-content-title": "The Verge", + "page-roadmap-tracks-verge-goal-description": "Make Ethereum easier to use and run by simplifying how data is stored and processed, so more users can participate in securing the network.", + "page-roadmap-tracks-splurge-content-title": "The Splurge", + "page-roadmap-tracks-splurge-goal-description": "Add extra features and upgrades to make Ethereum as smooth, user-friendly, and powerful as possible." } From 388136c07dd639970e765b8de57f7301f1bf6e0f Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Mon, 28 Apr 2025 14:06:33 -0600 Subject: [PATCH 06/42] benefits content --- .../roadmap/tracks/_components/tracks.tsx | 18 +++++- .../roadmap/tracks/_components/useTracks.tsx | 55 ++++++++++++++++--- .../icons/roadmap/EnergyEfficiencyIcon.tsx | 15 +++++ .../icons/roadmap/GeneralImprovementsIcon.tsx | 15 +++++ .../icons/roadmap/GreenBlockchainIcon.tsx | 15 +++++ src/components/icons/roadmap/index.ts | 6 ++ src/intl/en/page-roadmap-tracks.json | 9 ++- 7 files changed, 124 insertions(+), 9 deletions(-) create mode 100644 src/components/icons/roadmap/EnergyEfficiencyIcon.tsx create mode 100644 src/components/icons/roadmap/GeneralImprovementsIcon.tsx create mode 100644 src/components/icons/roadmap/GreenBlockchainIcon.tsx diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 17bbdda2eb0..df15fb3a3bc 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -92,7 +92,23 @@ const RoadmapTracksPage = () => {

Benefits:

-

{contentData.benefits}

+
+ {contentData.benefits.map((benefit) => ( +
+
+ + {cloneElement(benefit.icon as React.ReactElement, { + className: "w-full h-full", + })} + +
+ {benefit.title} +
+ ))} +
diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 7d01c9d8c7c..20fab0bf229 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -1,4 +1,11 @@ import { + BetterUserExperienceIcon, + CheaperTransactionsIcon, + EnergyEfficiencyIcon, + ExtraSecurityIcon, + FutureProofingIcon, + GeneralImprovementsIcon, + GreenBlockchainIcon, MergeIcon, PurgeIcon, ScourgeIcon, @@ -16,7 +23,7 @@ type Track = { contentData: { title: string goalDescription: string - benefits: string[] + benefits: { icon: React.ReactNode; title: string }[] nodes: [] } } @@ -32,7 +39,16 @@ export const useTracks = (): Track[] => { contentData: { title: t("page-roadmap-tracks-merge-content-title"), goalDescription: t("page-roadmap-tracks-merge-goal-description"), - benefits: [], + benefits: [ + { + icon: , + title: t("page-roadmap-tracks-energy-efficiency"), + }, + { + icon: , + title: t("page-roadmap-tracks-green-blockchain"), + }, + ], nodes: [], }, }, @@ -43,7 +59,12 @@ export const useTracks = (): Track[] => { contentData: { title: t("page-roadmap-tracks-surge-content-title"), goalDescription: t("page-roadmap-tracks-surge-goal-description"), - benefits: [], + benefits: [ + { + icon: , + title: t("page-roadmap-tracks-cheaper-transactions"), + }, + ], nodes: [], }, }, @@ -54,7 +75,12 @@ export const useTracks = (): Track[] => { contentData: { title: t("page-roadmap-tracks-scourge-content-title"), goalDescription: t("page-roadmap-tracks-scourge-goal-description"), - benefits: [], + benefits: [ + { + icon: , + title: t("page-roadmap-tracks-extra-security"), + }, + ], nodes: [], }, }, @@ -65,7 +91,12 @@ export const useTracks = (): Track[] => { contentData: { title: t("page-roadmap-tracks-purge-content-title"), goalDescription: t("page-roadmap-tracks-purge-goal-description"), - benefits: [], + benefits: [ + { + icon: , + title: t("page-roadmap-tracks-future-proofing"), + }, + ], nodes: [], }, }, @@ -76,7 +107,12 @@ export const useTracks = (): Track[] => { contentData: { title: t("page-roadmap-tracks-verge-content-title"), goalDescription: t("page-roadmap-tracks-verge-goal-description"), - benefits: [], + benefits: [ + { + icon: , + title: t("page-roadmap-tracks-better-user-experience"), + }, + ], nodes: [], }, }, @@ -87,7 +123,12 @@ export const useTracks = (): Track[] => { contentData: { title: t("page-roadmap-tracks-splurge-content-title"), goalDescription: t("page-roadmap-tracks-splurge-goal-description"), - benefits: [], + benefits: [ + { + icon: , + title: t("page-roadmap-tracks-general-improvements"), + }, + ], nodes: [], }, }, diff --git a/src/components/icons/roadmap/EnergyEfficiencyIcon.tsx b/src/components/icons/roadmap/EnergyEfficiencyIcon.tsx new file mode 100644 index 00000000000..8f15ff3f3ef --- /dev/null +++ b/src/components/icons/roadmap/EnergyEfficiencyIcon.tsx @@ -0,0 +1,15 @@ +import { createIconBase } from "../icon-base" + +export const EnergyEfficiencyIcon = createIconBase({ + displayName: "EnergyEfficiencyIcon", + viewBox: "0 0 15 15", + className: "w-[15px] h-[15px]", + children: ( + <> + + + ), +}) diff --git a/src/components/icons/roadmap/GeneralImprovementsIcon.tsx b/src/components/icons/roadmap/GeneralImprovementsIcon.tsx new file mode 100644 index 00000000000..6a801d046f7 --- /dev/null +++ b/src/components/icons/roadmap/GeneralImprovementsIcon.tsx @@ -0,0 +1,15 @@ +import { createIconBase } from "../icon-base" + +export const GeneralImprovementsIcon = createIconBase({ + displayName: "GeneralImprovementsIcon", + viewBox: "0 0 15 15", + className: "w-[15px] h-[15px]", + children: ( + <> + + + ), +}) diff --git a/src/components/icons/roadmap/GreenBlockchainIcon.tsx b/src/components/icons/roadmap/GreenBlockchainIcon.tsx new file mode 100644 index 00000000000..0da54e35138 --- /dev/null +++ b/src/components/icons/roadmap/GreenBlockchainIcon.tsx @@ -0,0 +1,15 @@ +import { createIconBase } from "../icon-base" + +export const GreenBlockchainIcon = createIconBase({ + displayName: "GreenBlockchainIcon", + viewBox: "0 0 15 15", + className: "w-[15px] h-[15px]", + children: ( + <> + + + ), +}) diff --git a/src/components/icons/roadmap/index.ts b/src/components/icons/roadmap/index.ts index 9d16c141472..0f84e8260c0 100644 --- a/src/components/icons/roadmap/index.ts +++ b/src/components/icons/roadmap/index.ts @@ -2,8 +2,11 @@ import { AccountAbstractionIcon } from "./AccountAbstractionIcon" import { BetterUserExperienceIcon } from "./BetterUserExperienceIcon" import { CheaperTransactionsIcon } from "./CheaperTransactionsIcon" import { DankshardingIcon } from "./DankshardingIcon" +import { EnergyEfficiencyIcon } from "./EnergyEfficiencyIcon" import { ExtraSecurityIcon } from "./ExtraSecurityIcon" import { FutureProofingIcon } from "./FutureProofingIcon" +import { GeneralImprovementsIcon } from "./GeneralImprovementsIcon" +import { GreenBlockchainIcon } from "./GreenBlockchainIcon" import { MergeIcon } from "./MergeIcon" import { ProposerBuilderSeparationIcon } from "./ProposerBuilderSeparationIcon" import { PurgeIcon } from "./PurgeIcon" @@ -22,8 +25,11 @@ export { BetterUserExperienceIcon, CheaperTransactionsIcon, DankshardingIcon, + EnergyEfficiencyIcon, ExtraSecurityIcon, FutureProofingIcon, + GeneralImprovementsIcon, + GreenBlockchainIcon, MergeIcon, ProposerBuilderSeparationIcon, PurgeIcon, diff --git a/src/intl/en/page-roadmap-tracks.json b/src/intl/en/page-roadmap-tracks.json index fd44295dc4f..4900bdb8667 100644 --- a/src/intl/en/page-roadmap-tracks.json +++ b/src/intl/en/page-roadmap-tracks.json @@ -19,5 +19,12 @@ "page-roadmap-tracks-verge-content-title": "The Verge", "page-roadmap-tracks-verge-goal-description": "Make Ethereum easier to use and run by simplifying how data is stored and processed, so more users can participate in securing the network.", "page-roadmap-tracks-splurge-content-title": "The Splurge", - "page-roadmap-tracks-splurge-goal-description": "Add extra features and upgrades to make Ethereum as smooth, user-friendly, and powerful as possible." + "page-roadmap-tracks-splurge-goal-description": "Add extra features and upgrades to make Ethereum as smooth, user-friendly, and powerful as possible.", + "page-roadmap-tracks-energy-efficiency": "Energy efficiency", + "page-roadmap-tracks-green-blockchain": "Green blockchain", + "page-roadmap-tracks-cheaper-transactions": "Cheaper transactions", + "page-roadmap-tracks-extra-security": "Extra security", + "page-roadmap-tracks-future-proofing": "Future-proofing", + "page-roadmap-tracks-better-user-experience": "Better user experience", + "page-roadmap-tracks-general-improvements": "General improvements" } From 023d5cc220b951be79318b35fb79395fc7fae065 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Mon, 28 Apr 2025 14:08:04 -0600 Subject: [PATCH 07/42] fix spacing --- app/[locale]/roadmap/tracks/_components/tracks.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index df15fb3a3bc..f01e4245bd8 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -90,7 +90,7 @@ const RoadmapTracksPage = () => {

Goals:

{contentData.goalDescription}

-
+

Benefits:

{contentData.benefits.map((benefit) => ( From 02d920a1c6df9028b1983e04638fdf1e0962e4f5 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 29 Apr 2025 02:01:13 -0600 Subject: [PATCH 08/42] implement accordion --- .../roadmap/tracks/_components/tracks.tsx | 95 ++++++++++++------- 1 file changed, 60 insertions(+), 35 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index f01e4245bd8..06cf5ce2992 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -7,6 +7,12 @@ import BannerNotification from "@/components/Banners/BannerNotification" import FeedbackCard from "@/components/FeedbackCard" import { ContentHero } from "@/components/Hero" import MainArticle from "@/components/MainArticle" +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from "@/components/ui/accordion" import { ButtonLink } from "@/components/ui/buttons/Button" import { cn } from "@/lib/utils/cn" @@ -73,44 +79,63 @@ const RoadmapTracksPage = () => {
-
-
- - {cloneElement(icon as React.ReactElement, { - className: "w-full h-full", - })} - -
-

{contentData.title}

-
-
-
-

Goals:

-

{contentData.goalDescription}

-
-
-

Benefits:

-
- {contentData.benefits.map((benefit) => ( -
-
- - {cloneElement(benefit.icon as React.ReactElement, { - className: "w-full h-full", - })} - + + + +
+
+ + {cloneElement(icon as React.ReactElement, { + className: "w-full h-full", + })} + +
+

{contentData.title}

+
+
+
+

Goals:

+

{contentData.goalDescription}

+
+
+

Benefits:

+
+ {contentData.benefits.map((benefit) => ( +
+
+ + {cloneElement( + benefit.icon as React.ReactElement, + { + className: "w-full h-full", + } + )} + +
+ {benefit.title} +
+ ))}
- {benefit.title}
- ))} -
-
-
+
+ + +

Hello

+
+ +
))}
From 09234a867ee81a3d2394f42c31ff3ee8d04b71d2 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Wed, 30 Apr 2025 15:24:22 -0600 Subject: [PATCH 09/42] button, styling cleanup, default state --- .../roadmap/tracks/_components/tracks.tsx | 78 +++++++++++-------- src/components/ui/accordion.tsx | 2 +- 2 files changed, 46 insertions(+), 34 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 06cf5ce2992..02cecb04c92 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -1,6 +1,6 @@ "use client" -import { cloneElement } from "react" +import { cloneElement, useState } from "react" import { motion } from "framer-motion" import BannerNotification from "@/components/Banners/BannerNotification" @@ -25,6 +25,9 @@ import { useTranslation } from "@/hooks/useTranslation" const RoadmapTracksPage = () => { const { t } = useTranslation("page-roadmap-tracks") const tracks = useTracks() + const [openItems, setOpenItems] = useState(() => + tracks.map(({ key }) => key) + ) const activeSection = useActiveHash( tracks.map(({ key }) => key), "0% 0% -70% 0%" @@ -75,32 +78,34 @@ const RoadmapTracksPage = () => {
- {tracks.map(({ key, icon, contentData }) => ( -
- + {tracks.map(({ key, icon, contentData }) => ( + - - -
-
- - {cloneElement(icon as React.ReactElement, { - className: "w-full h-full", - })} - -
-

{contentData.title}

+ +
+
+ + {cloneElement(icon as React.ReactElement, { + className: "w-full h-full", + })} +
+

{contentData.title}

+
+

Goals:

@@ -130,14 +135,21 @@ const RoadmapTracksPage = () => {
-
- -

Hello

-
- - -
- ))} +
+
+ + {openItems.includes(key) ? "CLOSE -" : "OPEN +"} + +
+
+
+ + +

Hello

+
+ + ))} +
diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx index c81d7d2c305..7c6cb2bd48c 100644 --- a/src/components/ui/accordion.tsx +++ b/src/components/ui/accordion.tsx @@ -21,7 +21,7 @@ const AccordionTrigger = React.forwardRef< hideIcon?: boolean } >(({ className, children, hideIcon = false, ...props }, ref) => ( - + Date: Wed, 30 Apr 2025 15:45:17 -0600 Subject: [PATCH 10/42] content setup --- app/[locale]/roadmap/tracks/_components/tracks.tsx | 12 ++++++++++-- src/components/ui/accordion.tsx | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 02cecb04c92..a75849a143d 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -144,8 +144,16 @@ const RoadmapTracksPage = () => {
- -

Hello

+ +
+

Hello

+

Hello

+

Hello

+

Hello

+

Hello

+

Hello

+

Hello

+
))} diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx index 7c6cb2bd48c..e284379f1bb 100644 --- a/src/components/ui/accordion.tsx +++ b/src/components/ui/accordion.tsx @@ -47,7 +47,7 @@ const AccordionContent = React.forwardRef< >(({ className, children, ...props }, ref) => (
{children}
From 5d3ca0f67419d25f9e66e5672e6fccfa63c4f221 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Wed, 30 Apr 2025 16:26:55 -0600 Subject: [PATCH 11/42] setup ReactFlow nodes --- .../roadmap/tracks/_components/tracks.tsx | 17 +-- .../roadmap/tracks/_components/useTracks.tsx | 40 ++++-- package.json | 1 + yarn.lock | 114 +++++++++++++++++- 4 files changed, 153 insertions(+), 19 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index a75849a143d..10b52fb4cc0 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -2,6 +2,7 @@ import { cloneElement, useState } from "react" import { motion } from "framer-motion" +import { ReactFlow } from "@xyflow/react" import BannerNotification from "@/components/Banners/BannerNotification" import FeedbackCard from "@/components/FeedbackCard" @@ -19,6 +20,8 @@ import { cn } from "@/lib/utils/cn" import { useTracks } from "./useTracks" +import "@xyflow/react/dist/style.css" + import { useActiveHash } from "@/hooks/useActiveHash" import { useTranslation } from "@/hooks/useTranslation" @@ -145,14 +148,12 @@ const RoadmapTracksPage = () => {
-
-

Hello

-

Hello

-

Hello

-

Hello

-

Hello

-

Hello

-

Hello

+
+
diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 20fab0bf229..b3c59dec416 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -1,3 +1,5 @@ +import { Edge, Node } from "@xyflow/react" + import { BetterUserExperienceIcon, CheaperTransactionsIcon, @@ -16,6 +18,12 @@ import { import { useTranslation } from "@/hooks/useTranslation" +const initialNodes = [ + { id: "1", position: { x: 20, y: 20 }, data: { label: "1" } }, + { id: "2", position: { x: 20, y: 120 }, data: { label: "2" } }, +] +const initialEdges = [{ id: "e1-2", source: "1", target: "2" }] + type Track = { key: string title: string @@ -24,7 +32,7 @@ type Track = { title: string goalDescription: string benefits: { icon: React.ReactNode; title: string }[] - nodes: [] + nodes: { nodes: Node[]; edges: Edge[] } } } @@ -49,7 +57,10 @@ export const useTracks = (): Track[] => { title: t("page-roadmap-tracks-green-blockchain"), }, ], - nodes: [], + nodes: { + nodes: initialNodes, + edges: initialEdges, + }, }, }, { @@ -65,7 +76,10 @@ export const useTracks = (): Track[] => { title: t("page-roadmap-tracks-cheaper-transactions"), }, ], - nodes: [], + nodes: { + nodes: initialNodes, + edges: initialEdges, + }, }, }, { @@ -81,7 +95,10 @@ export const useTracks = (): Track[] => { title: t("page-roadmap-tracks-extra-security"), }, ], - nodes: [], + nodes: { + nodes: initialNodes, + edges: initialEdges, + }, }, }, { @@ -97,7 +114,10 @@ export const useTracks = (): Track[] => { title: t("page-roadmap-tracks-future-proofing"), }, ], - nodes: [], + nodes: { + nodes: initialNodes, + edges: initialEdges, + }, }, }, { @@ -113,7 +133,10 @@ export const useTracks = (): Track[] => { title: t("page-roadmap-tracks-better-user-experience"), }, ], - nodes: [], + nodes: { + nodes: initialNodes, + edges: initialEdges, + }, }, }, { @@ -129,7 +152,10 @@ export const useTracks = (): Track[] => { title: t("page-roadmap-tracks-general-improvements"), }, ], - nodes: [], + nodes: { + nodes: initialNodes, + edges: initialEdges, + }, }, }, ] diff --git a/package.json b/package.json index 15a66c9a9bb..ac32515e071 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "@socialgouv/matomo-next": "^1.8.0", "@tanstack/react-query": "^5.66.7", "@tanstack/react-table": "^8.19.3", + "@xyflow/react": "^12.6.0", "chart.js": "^4.4.2", "chartjs-plugin-datalabels": "^2.2.0", "class-variance-authority": "^0.7.0", diff --git a/yarn.lock b/yarn.lock index 0a2535d4268..811a4481ddc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5057,12 +5057,19 @@ resolved "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-3.1.3.tgz#368c961a18de721da8200e80bf3943fb53136af2" integrity sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A== +"@types/d3-drag@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@types/d3-drag/-/d3-drag-3.0.7.tgz#b13aba8b2442b4068c9a9e6d1d82f8bcea77fc02" + integrity sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ== + dependencies: + "@types/d3-selection" "*" + "@types/d3-ease@^3.0.0": version "3.0.2" resolved "https://registry.yarnpkg.com/@types/d3-ease/-/d3-ease-3.0.2.tgz#e28db1bfbfa617076f7770dd1d9a48eaa3b6c51b" integrity sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA== -"@types/d3-interpolate@^3.0.1": +"@types/d3-interpolate@*", "@types/d3-interpolate@^3.0.1": version "3.0.4" resolved "https://registry.yarnpkg.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz#412b90e84870285f2ff8a846c6eb60344f12a41c" integrity sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA== @@ -5081,6 +5088,11 @@ dependencies: "@types/d3-time" "*" +"@types/d3-selection@*", "@types/d3-selection@^3.0.10": + version "3.0.11" + resolved "https://registry.yarnpkg.com/@types/d3-selection/-/d3-selection-3.0.11.tgz#bd7a45fc0a8c3167a631675e61bc2ca2b058d4a3" + integrity sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w== + "@types/d3-shape@^3.1.0": version "3.1.6" resolved "https://registry.yarnpkg.com/@types/d3-shape/-/d3-shape-3.1.6.tgz#65d40d5a548f0a023821773e39012805e6e31a72" @@ -5098,6 +5110,21 @@ resolved "https://registry.yarnpkg.com/@types/d3-timer/-/d3-timer-3.0.2.tgz#70bbda77dc23aa727413e22e214afa3f0e852f70" integrity sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw== +"@types/d3-transition@^3.0.8": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@types/d3-transition/-/d3-transition-3.0.9.tgz#1136bc57e9ddb3c390dccc9b5ff3b7d2b8d94706" + integrity sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg== + dependencies: + "@types/d3-selection" "*" + +"@types/d3-zoom@^3.0.8": + version "3.0.8" + resolved "https://registry.yarnpkg.com/@types/d3-zoom/-/d3-zoom-3.0.8.tgz#dccb32d1c56b1e1c6e0f1180d994896f038bc40b" + integrity sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw== + dependencies: + "@types/d3-interpolate" "*" + "@types/d3-selection" "*" + "@types/debug@^4.0.0", "@types/debug@^4.1.7": version "4.1.12" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" @@ -6097,6 +6124,28 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== +"@xyflow/react@^12.6.0": + version "12.6.0" + resolved "https://registry.yarnpkg.com/@xyflow/react/-/react-12.6.0.tgz#df02d2f5b701739c14387d8f608182e67b7774e5" + integrity sha512-YzsSK4SlpC6e9Ki1g6O9B1UH7xvz/bzWF+tJ+vWDD8Am5xJmFn0jYnCEuqvzvH8dRKb1NFBmyuqEGqWN39xXsA== + dependencies: + "@xyflow/system" "0.0.57" + classcat "^5.0.3" + zustand "^4.4.0" + +"@xyflow/system@0.0.57": + version "0.0.57" + resolved "https://registry.yarnpkg.com/@xyflow/system/-/system-0.0.57.tgz#5e3980136b02f281b1c5962d6ae6792e524006c7" + integrity sha512-1YpBo0WgmZLR5wQw9Jvk3Tu0gISi/oYc4uSimrDuAsA/G2rGleulLrKkM59uuT/QU5m6DYC2VdBDAzjSNMGuBA== + dependencies: + "@types/d3-drag" "^3.0.7" + "@types/d3-selection" "^3.0.10" + "@types/d3-transition" "^3.0.8" + "@types/d3-zoom" "^3.0.8" + d3-drag "^3.0.0" + d3-selection "^3.0.0" + d3-zoom "^3.0.0" + "@yarnpkg/esbuild-plugin-pnp@^3.0.0-rc.10": version "3.0.0-rc.15" resolved "https://registry.yarnpkg.com/@yarnpkg/esbuild-plugin-pnp/-/esbuild-plugin-pnp-3.0.0-rc.15.tgz#4e40e7d2eb28825c9a35ab9d04c363931d7c0e67" @@ -7215,6 +7264,11 @@ class-variance-authority@^0.7.0: dependencies: clsx "2.0.0" +classcat@^5.0.3: + version "5.0.5" + resolved "https://registry.yarnpkg.com/classcat/-/classcat-5.0.5.tgz#8c209f359a93ac302404a10161b501eba9c09c77" + integrity sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w== + classnames@^2.2.5: version "2.5.1" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" @@ -7743,7 +7797,20 @@ csstype@^3.0.2, csstype@^3.0.7: resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== -d3-ease@^3.0.1: +"d3-dispatch@1 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-ease@1 - 3", d3-ease@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== @@ -7753,7 +7820,7 @@ d3-ease@^3.0.1: resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== -"d3-interpolate@1.2.0 - 3", d3-interpolate@^3.0.1: +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== @@ -7776,6 +7843,11 @@ d3-scale@^4.0.2: d3-time "2.1.1 - 3" d3-time-format "2 - 4" +"d3-selection@2 - 3", d3-selection@3, d3-selection@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + d3-shape@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" @@ -7797,11 +7869,33 @@ d3-shape@^3.1.0: dependencies: d3-array "2 - 3" -d3-timer@^3.0.1: +"d3-timer@1 - 3", d3-timer@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== +"d3-transition@2 - 3": + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" @@ -15597,6 +15691,11 @@ use-sync-external-store@1.4.0: resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz#adbc795d8eeb47029963016cefdf89dc799fcebc" integrity sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw== +use-sync-external-store@^1.2.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz#55122e2a3edd2a6c106174c27485e0fd59bcfca0" + integrity sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A== + usehooks-ts@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/usehooks-ts/-/usehooks-ts-3.1.0.tgz#156119f36efc85f1b1952616c02580f140950eca" @@ -16129,6 +16228,13 @@ zustand@5.0.0: resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.0.tgz#71f8aaecf185592a3ba2743d7516607361899da9" integrity sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ== +zustand@^4.4.0: + version "4.5.6" + resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.5.6.tgz#6857d52af44874a79fb3408c9473f78367255c96" + integrity sha512-ibr/n1hBzLLj5Y+yUcU7dYw8p6WnIVzdJbnX+1YpaScvZVF2ziugqHs+LAmHw4lWO9c/zRj+K1ncgWDQuthEdQ== + dependencies: + use-sync-external-store "^1.2.2" + zwitch@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" From 8b71de1c6b07648bc3c1cd69e1a8d83ec0bc4025 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Thu, 1 May 2025 17:08:53 -0600 Subject: [PATCH 12/42] POC for shipped nodes --- .../_components/CustomNodes/ShippedNodes.tsx | 88 +++++++++++++++++++ .../roadmap/tracks/_components/tracks.tsx | 6 ++ .../roadmap/tracks/_components/useTracks.tsx | 39 +++++++- 3 files changed, 129 insertions(+), 4 deletions(-) create mode 100644 app/[locale]/roadmap/tracks/_components/CustomNodes/ShippedNodes.tsx diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/ShippedNodes.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/ShippedNodes.tsx new file mode 100644 index 00000000000..06082aa3b30 --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/ShippedNodes.tsx @@ -0,0 +1,88 @@ +"use client" + +import { Handle, Position } from "@xyflow/react" + +type ShippedNodesProps = { + data: { + label: string + topNode: boolean + leftNode: boolean + rightNode: boolean + bottomNode: boolean + } +} + +const ShippedNodes = ({ data }: ShippedNodesProps) => { + const { topNode, leftNode, rightNode, bottomNode } = data + + return ( + <> + {topNode && ( + + )} + {leftNode && ( + + )} + {rightNode && ( + + )} + {bottomNode && ( + + )} +
+
+

{data.label}

+
+
+

SHIPPED

+
+
+ + ) +} + +export default ShippedNodes diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 10b52fb4cc0..054c52eaf90 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -18,6 +18,7 @@ import { ButtonLink } from "@/components/ui/buttons/Button" import { cn } from "@/lib/utils/cn" +import ShippedNodes from "./CustomNodes/ShippedNodes" import { useTracks } from "./useTracks" import "@xyflow/react/dist/style.css" @@ -25,6 +26,10 @@ import "@xyflow/react/dist/style.css" import { useActiveHash } from "@/hooks/useActiveHash" import { useTranslation } from "@/hooks/useTranslation" +const nodeTypes = { + shipped: ShippedNodes, +} + const RoadmapTracksPage = () => { const { t } = useTranslation("page-roadmap-tracks") const tracks = useTracks() @@ -153,6 +158,7 @@ const RoadmapTracksPage = () => { nodes={contentData.nodes.nodes} edges={contentData.nodes.edges} preventScrolling={false} + nodeTypes={nodeTypes} />
diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index b3c59dec416..8f5a31ce43d 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -1,4 +1,4 @@ -import { Edge, Node } from "@xyflow/react" +import { Edge, MarkerType, Node } from "@xyflow/react" import { BetterUserExperienceIcon, @@ -19,10 +19,41 @@ import { import { useTranslation } from "@/hooks/useTranslation" const initialNodes = [ - { id: "1", position: { x: 20, y: 20 }, data: { label: "1" } }, - { id: "2", position: { x: 20, y: 120 }, data: { label: "2" } }, + { + id: "1", + position: { x: 20, y: 20 }, + type: "shipped", + data: { + label: "Warmup fork (Altair)", + topNode: true, + leftNode: true, + rightNode: true, + bottomNode: true, + }, + }, + { + id: "2", + position: { x: 250, y: 180 }, + type: "shipped", + data: { + label: "2", + topNode: true, + leftNode: true, + rightNode: true, + bottomNode: true, + }, + }, +] +const initialEdges = [ + { + id: "e1-2", + source: "1", + target: "2", + type: "smoothstep", + markerEnd: { type: MarkerType.ArrowClosed, color: "hsla(var(--success))" }, + style: { stroke: "hsla(var(--success))" }, + }, ] -const initialEdges = [{ id: "e1-2", source: "1", target: "2" }] type Track = { key: string From dcc6531cc00480552a8849e150ea1fc52d056b30 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Fri, 2 May 2025 15:32:38 -0600 Subject: [PATCH 13/42] end goal node --- .../_components/CustomNodes/EndGoalNodes.tsx | 17 +++++++++++++++++ .../tracks/_components/CustomNodes/index.ts | 4 ++++ .../roadmap/tracks/_components/tracks.tsx | 14 +++++++++----- .../roadmap/tracks/_components/useTracks.tsx | 15 ++++++++++++++- 4 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNodes.tsx create mode 100644 app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNodes.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNodes.tsx new file mode 100644 index 00000000000..e09b4e8774f --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNodes.tsx @@ -0,0 +1,17 @@ +"use client" + +type EndGoalNodesProps = { + data: { + label: string + } +} + +const EndGoalNodes = ({ data }: EndGoalNodesProps) => { + return ( +
+

{data.label}

+
+ ) +} + +export default EndGoalNodes diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts new file mode 100644 index 00000000000..3c99724405a --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts @@ -0,0 +1,4 @@ +import EndGoalNodes from "./EndGoalNodes" +import ShippedNodes from "./ShippedNodes" + +export { EndGoalNodes, ShippedNodes } diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 054c52eaf90..98197724950 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -1,6 +1,6 @@ "use client" -import { cloneElement, useState } from "react" +import { cloneElement, useMemo, useState } from "react" import { motion } from "framer-motion" import { ReactFlow } from "@xyflow/react" @@ -18,6 +18,7 @@ import { ButtonLink } from "@/components/ui/buttons/Button" import { cn } from "@/lib/utils/cn" +import EndGoalNodes from "./CustomNodes/EndGoalNodes" import ShippedNodes from "./CustomNodes/ShippedNodes" import { useTracks } from "./useTracks" @@ -26,16 +27,19 @@ import "@xyflow/react/dist/style.css" import { useActiveHash } from "@/hooks/useActiveHash" import { useTranslation } from "@/hooks/useTranslation" -const nodeTypes = { - shipped: ShippedNodes, -} - const RoadmapTracksPage = () => { const { t } = useTranslation("page-roadmap-tracks") const tracks = useTracks() const [openItems, setOpenItems] = useState(() => tracks.map(({ key }) => key) ) + const nodeTypes = useMemo( + () => ({ + endGoal: EndGoalNodes, + shipped: ShippedNodes, + }), + [] + ) const activeSection = useActiveHash( tracks.map(({ key }) => key), "0% 0% -70% 0%" diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 8f5a31ce43d..41214ef5cba 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -43,6 +43,14 @@ const initialNodes = [ bottomNode: true, }, }, + { + id: "3", + position: { x: 20, y: 180 }, + type: "endGoal", + data: { + label: "Quantum-safe SNARKs (eg. STARKs)", + }, + }, ] const initialEdges = [ { @@ -50,7 +58,12 @@ const initialEdges = [ source: "1", target: "2", type: "smoothstep", - markerEnd: { type: MarkerType.ArrowClosed, color: "hsla(var(--success))" }, + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--success))", + width: 32, + height: 32, + }, style: { stroke: "hsla(var(--success))" }, }, ] From 0afbfd9bcec1669319b54c81065b22ea95522594 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Fri, 2 May 2025 15:42:35 -0600 Subject: [PATCH 14/42] style tweaking --- .../roadmap/tracks/_components/CustomNodes/EndGoalNodes.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNodes.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNodes.tsx index e09b4e8774f..95f0336b274 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNodes.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNodes.tsx @@ -8,8 +8,10 @@ type EndGoalNodesProps = { const EndGoalNodes = ({ data }: EndGoalNodesProps) => { return ( -
-

{data.label}

+
+

+ {data.label} +

) } From 88c88513f699c7c83d2d826fde6bcb5b0a860613 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Sun, 4 May 2025 13:54:54 -0600 Subject: [PATCH 15/42] refactor and task idea node --- .../{EndGoalNodes.tsx => EndGoalNode.tsx} | 6 +- .../_components/CustomNodes/TaskIdeaNode.tsx | 88 +++++++++++++++++++ .../{ShippedNodes.tsx => TaskShippedNode.tsx} | 8 +- .../tracks/_components/CustomNodes/index.ts | 7 +- .../roadmap/tracks/_components/tracks.tsx | 8 +- .../roadmap/tracks/_components/useTracks.tsx | 16 +++- 6 files changed, 117 insertions(+), 16 deletions(-) rename app/[locale]/roadmap/tracks/_components/CustomNodes/{EndGoalNodes.tsx => EndGoalNode.tsx} (74%) create mode 100644 app/[locale]/roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx rename app/[locale]/roadmap/tracks/_components/CustomNodes/{ShippedNodes.tsx => TaskShippedNode.tsx} (93%) diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNodes.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNode.tsx similarity index 74% rename from app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNodes.tsx rename to app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNode.tsx index 95f0336b274..9999e3b9cc5 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNodes.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNode.tsx @@ -1,12 +1,12 @@ "use client" -type EndGoalNodesProps = { +type EndGoalNodeProps = { data: { label: string } } -const EndGoalNodes = ({ data }: EndGoalNodesProps) => { +const EndGoalNode = ({ data }: EndGoalNodeProps) => { return (

@@ -16,4 +16,4 @@ const EndGoalNodes = ({ data }: EndGoalNodesProps) => { ) } -export default EndGoalNodes +export default EndGoalNode diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx new file mode 100644 index 00000000000..21529fee0d9 --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx @@ -0,0 +1,88 @@ +"use client" + +import { Handle, Position } from "@xyflow/react" + +type TaskIdeaNodeProps = { + data: { + label: string + topNode: boolean + leftNode: boolean + rightNode: boolean + bottomNode: boolean + } +} + +const TaskIdeaNode = ({ data }: TaskIdeaNodeProps) => { + const { topNode, leftNode, rightNode, bottomNode } = data + + return ( + <> + {topNode && ( + + )} + {leftNode && ( + + )} + {rightNode && ( + + )} + {bottomNode && ( + + )} +

+
+

{data.label}

+
+
+

IDEA

+
+
+ + ) +} + +export default TaskIdeaNode diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/ShippedNodes.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskShippedNode.tsx similarity index 93% rename from app/[locale]/roadmap/tracks/_components/CustomNodes/ShippedNodes.tsx rename to app/[locale]/roadmap/tracks/_components/CustomNodes/TaskShippedNode.tsx index 06082aa3b30..46d00729e94 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/ShippedNodes.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskShippedNode.tsx @@ -2,7 +2,7 @@ import { Handle, Position } from "@xyflow/react" -type ShippedNodesProps = { +type TaskShippedNodeProps = { data: { label: string topNode: boolean @@ -12,7 +12,7 @@ type ShippedNodesProps = { } } -const ShippedNodes = ({ data }: ShippedNodesProps) => { +const TaskShippedNode = ({ data }: TaskShippedNodeProps) => { const { topNode, leftNode, rightNode, bottomNode } = data return ( @@ -73,7 +73,7 @@ const ShippedNodes = ({ data }: ShippedNodesProps) => { isConnectableStart={true} /> )} -
+

{data.label}

@@ -85,4 +85,4 @@ const ShippedNodes = ({ data }: ShippedNodesProps) => { ) } -export default ShippedNodes +export default TaskShippedNode diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts index 3c99724405a..b2000e7d536 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts @@ -1,4 +1,5 @@ -import EndGoalNodes from "./EndGoalNodes" -import ShippedNodes from "./ShippedNodes" +import EndGoalNode from "./EndGoalNode" +import TaskIdeaNode from "./TaskIdeaNode" +import TaskShippedNode from "./TaskShippedNode" -export { EndGoalNodes, ShippedNodes } +export { EndGoalNode, TaskIdeaNode, TaskShippedNode } diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 98197724950..70f11092a6f 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -18,8 +18,7 @@ import { ButtonLink } from "@/components/ui/buttons/Button" import { cn } from "@/lib/utils/cn" -import EndGoalNodes from "./CustomNodes/EndGoalNodes" -import ShippedNodes from "./CustomNodes/ShippedNodes" +import { EndGoalNode, TaskIdeaNode, TaskShippedNode } from "./CustomNodes" import { useTracks } from "./useTracks" import "@xyflow/react/dist/style.css" @@ -35,8 +34,9 @@ const RoadmapTracksPage = () => { ) const nodeTypes = useMemo( () => ({ - endGoal: EndGoalNodes, - shipped: ShippedNodes, + endGoal: EndGoalNode, + taskShipped: TaskShippedNode, + taskIdea: TaskIdeaNode, }), [] ) diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 41214ef5cba..65444f4e6a4 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -22,7 +22,7 @@ const initialNodes = [ { id: "1", position: { x: 20, y: 20 }, - type: "shipped", + type: "taskShipped", data: { label: "Warmup fork (Altair)", topNode: true, @@ -34,7 +34,7 @@ const initialNodes = [ { id: "2", position: { x: 250, y: 180 }, - type: "shipped", + type: "taskShipped", data: { label: "2", topNode: true, @@ -51,6 +51,18 @@ const initialNodes = [ label: "Quantum-safe SNARKs (eg. STARKs)", }, }, + { + id: "4", + position: { x: 400, y: 20 }, + type: "taskIdea", + data: { + label: "SNARK for Verkle proofs", + topNode: true, + leftNode: true, + rightNode: true, + bottomNode: true, + }, + }, ] const initialEdges = [ { From 0e82222b07701d06fda963cad6b2de36eb51d752 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Sun, 4 May 2025 14:04:38 -0600 Subject: [PATCH 16/42] task research node --- .../CustomNodes/TaskResearchNode.tsx | 96 +++++++++++++++++++ .../tracks/_components/CustomNodes/index.ts | 3 +- .../roadmap/tracks/_components/tracks.tsx | 10 +- .../roadmap/tracks/_components/useTracks.tsx | 13 +++ 4 files changed, 119 insertions(+), 3 deletions(-) create mode 100644 app/[locale]/roadmap/tracks/_components/CustomNodes/TaskResearchNode.tsx diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskResearchNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskResearchNode.tsx new file mode 100644 index 00000000000..41cbe869dba --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskResearchNode.tsx @@ -0,0 +1,96 @@ +"use client" + +import { Handle, Position } from "@xyflow/react" + +type TaskResearchNodeProps = { + data: { + label: string + percentage: number + topNode: boolean + leftNode: boolean + rightNode: boolean + bottomNode: boolean + } +} + +const TaskResearchNode = ({ data }: TaskResearchNodeProps) => { + const { topNode, leftNode, rightNode, bottomNode, percentage } = data + + return ( + <> + {topNode && ( + + )} + {leftNode && ( + + )} + {rightNode && ( + + )} + {bottomNode && ( + + )} +
+ {/* Progress background */} +
+
+

{data.label}

+
+
+

RESEARCH

+
+
+ + ) +} + +export default TaskResearchNode diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts index b2000e7d536..2cf08cf4893 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts @@ -1,5 +1,6 @@ import EndGoalNode from "./EndGoalNode" import TaskIdeaNode from "./TaskIdeaNode" +import TaskResearchNode from "./TaskResearchNode" import TaskShippedNode from "./TaskShippedNode" -export { EndGoalNode, TaskIdeaNode, TaskShippedNode } +export { EndGoalNode, TaskIdeaNode, TaskResearchNode, TaskShippedNode } diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 70f11092a6f..1454fa1d482 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -18,7 +18,12 @@ import { ButtonLink } from "@/components/ui/buttons/Button" import { cn } from "@/lib/utils/cn" -import { EndGoalNode, TaskIdeaNode, TaskShippedNode } from "./CustomNodes" +import { + EndGoalNode, + TaskIdeaNode, + TaskResearchNode, + TaskShippedNode, +} from "./CustomNodes" import { useTracks } from "./useTracks" import "@xyflow/react/dist/style.css" @@ -35,8 +40,9 @@ const RoadmapTracksPage = () => { const nodeTypes = useMemo( () => ({ endGoal: EndGoalNode, - taskShipped: TaskShippedNode, taskIdea: TaskIdeaNode, + taskResearch: TaskResearchNode, + taskShipped: TaskShippedNode, }), [] ) diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 65444f4e6a4..09f66195740 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -63,6 +63,19 @@ const initialNodes = [ bottomNode: true, }, }, + { + id: "5", + position: { x: 600, y: 20 }, + type: "taskResearch", + data: { + label: "SNARK for Verkle proofs", + topNode: true, + leftNode: true, + rightNode: true, + bottomNode: true, + percentage: 80, + }, + }, ] const initialEdges = [ { From 8c35c87bbccba7f9894ea00ee24850059ba7cf6a Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Sun, 4 May 2025 14:13:24 -0600 Subject: [PATCH 17/42] cleanup --- .../roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx | 2 +- .../tracks/_components/CustomNodes/TaskResearchNode.tsx | 2 +- .../tracks/_components/CustomNodes/TaskShippedNode.tsx | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx index 21529fee0d9..a2f339c6609 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx @@ -75,7 +75,7 @@ const TaskIdeaNode = ({ data }: TaskIdeaNodeProps) => { )}
-

{data.label}

+

{data.label}

IDEA

diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskResearchNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskResearchNode.tsx index 41cbe869dba..0758c929fde 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskResearchNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskResearchNode.tsx @@ -83,7 +83,7 @@ const TaskResearchNode = ({ data }: TaskResearchNodeProps) => { }} />
-

{data.label}

+

{data.label}

RESEARCH

diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskShippedNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskShippedNode.tsx index 46d00729e94..604e084cd9a 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskShippedNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskShippedNode.tsx @@ -75,9 +75,9 @@ const TaskShippedNode = ({ data }: TaskShippedNodeProps) => { )}
-

{data.label}

+

{data.label}

-
+

SHIPPED

From ed846295958f2c4068d704d67e4ab2503f96abed Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Sun, 4 May 2025 14:16:47 -0600 Subject: [PATCH 18/42] sheduled and cleanup --- .../CustomNodes/TaskResearchNode.tsx | 4 + .../CustomNodes/TaskScheduledNode.tsx | 88 +++++++++++++++++++ .../tracks/_components/CustomNodes/index.ts | 9 +- .../roadmap/tracks/_components/tracks.tsx | 2 + .../roadmap/tracks/_components/useTracks.tsx | 12 +++ 5 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 app/[locale]/roadmap/tracks/_components/CustomNodes/TaskScheduledNode.tsx diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskResearchNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskResearchNode.tsx index 0758c929fde..57a95f4d27b 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskResearchNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskResearchNode.tsx @@ -27,6 +27,7 @@ const TaskResearchNode = ({ data }: TaskResearchNodeProps) => { height: "14px", border: "2px solid hsla(var(--primary))", backgroundColor: "hsla(var(--background))", + zIndex: 10, }} isConnectable={true} isConnectableEnd={true} @@ -41,6 +42,7 @@ const TaskResearchNode = ({ data }: TaskResearchNodeProps) => { height: "14px", border: "2px solid hsla(var(--primary))", backgroundColor: "hsla(var(--background))", + zIndex: 10, }} isConnectable={true} isConnectableEnd={true} @@ -55,6 +57,7 @@ const TaskResearchNode = ({ data }: TaskResearchNodeProps) => { height: "14px", border: "2px solid hsla(var(--primary))", backgroundColor: "hsla(var(--background))", + zIndex: 10, }} isConnectable={true} isConnectableStart={true} @@ -69,6 +72,7 @@ const TaskResearchNode = ({ data }: TaskResearchNodeProps) => { height: "14px", border: "2px solid hsla(var(--primary))", backgroundColor: "hsla(var(--background))", + zIndex: 10, }} isConnectable={true} isConnectableStart={true} diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskScheduledNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskScheduledNode.tsx new file mode 100644 index 00000000000..fd970d96d32 --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskScheduledNode.tsx @@ -0,0 +1,88 @@ +"use client" + +import { Handle, Position } from "@xyflow/react" + +type TaskScheduledNodeProps = { + data: { + label: string + topNode: boolean + leftNode: boolean + rightNode: boolean + bottomNode: boolean + } +} + +const TaskScheduledNode = ({ data }: TaskScheduledNodeProps) => { + const { topNode, leftNode, rightNode, bottomNode } = data + + return ( + <> + {topNode && ( + + )} + {leftNode && ( + + )} + {rightNode && ( + + )} + {bottomNode && ( + + )} +
+
+

{data.label}

+
+
+

SCHEDULED

+
+
+ + ) +} + +export default TaskScheduledNode diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts index 2cf08cf4893..db5bdfe211d 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts @@ -1,6 +1,13 @@ import EndGoalNode from "./EndGoalNode" import TaskIdeaNode from "./TaskIdeaNode" import TaskResearchNode from "./TaskResearchNode" +import TaskScheduledNode from "./TaskScheduledNode" import TaskShippedNode from "./TaskShippedNode" -export { EndGoalNode, TaskIdeaNode, TaskResearchNode, TaskShippedNode } +export { + EndGoalNode, + TaskIdeaNode, + TaskResearchNode, + TaskScheduledNode, + TaskShippedNode, +} diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 1454fa1d482..82d7e17c3b6 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -22,6 +22,7 @@ import { EndGoalNode, TaskIdeaNode, TaskResearchNode, + TaskScheduledNode, TaskShippedNode, } from "./CustomNodes" import { useTracks } from "./useTracks" @@ -42,6 +43,7 @@ const RoadmapTracksPage = () => { endGoal: EndGoalNode, taskIdea: TaskIdeaNode, taskResearch: TaskResearchNode, + taskScheduled: TaskScheduledNode, taskShipped: TaskShippedNode, }), [] diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 09f66195740..bac044aac83 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -76,6 +76,18 @@ const initialNodes = [ percentage: 80, }, }, + { + id: "6", + position: { x: 600, y: 200 }, + type: "taskScheduled", + data: { + label: "SNARK for Verkle proofs", + topNode: true, + leftNode: true, + rightNode: true, + bottomNode: true, + }, + }, ] const initialEdges = [ { From f4a5bf9ac2c59ab2c79aa542e23aa55109b161a0 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Sun, 4 May 2025 14:39:00 -0600 Subject: [PATCH 19/42] Feature scheduled node --- .../CustomNodes/FeatureResearchNode.tsx | 88 +++++++++++++++++++ .../CustomNodes/FeatureScheduledNode.tsx | 88 +++++++++++++++++++ .../tracks/_components/CustomNodes/index.ts | 4 + .../roadmap/tracks/_components/tracks.tsx | 4 + .../roadmap/tracks/_components/useTracks.tsx | 28 +++++- 5 files changed, 210 insertions(+), 2 deletions(-) create mode 100644 app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureResearchNode.tsx create mode 100644 app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureScheduledNode.tsx diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureResearchNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureResearchNode.tsx new file mode 100644 index 00000000000..dfc9a046def --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureResearchNode.tsx @@ -0,0 +1,88 @@ +"use client" + +import { Handle, Position } from "@xyflow/react" + +type FeatureResearchNodeProps = { + data: { + label: string + topNode: boolean + leftNode: boolean + rightNode: boolean + bottomNode: boolean + } +} + +const FeatureResearchNode = ({ data }: FeatureResearchNodeProps) => { + const { topNode, leftNode, rightNode, bottomNode } = data + + return ( + <> + {topNode && ( + + )} + {leftNode && ( + + )} + {rightNode && ( + + )} + {bottomNode && ( + + )} +
+
+

{data.label}

+
+
+

RESEARCH

+
+
+ + ) +} + +export default FeatureResearchNode diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureScheduledNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureScheduledNode.tsx new file mode 100644 index 00000000000..3b73be68687 --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureScheduledNode.tsx @@ -0,0 +1,88 @@ +"use client" + +import { Handle, Position } from "@xyflow/react" + +type FeatureScheduledNodeProps = { + data: { + label: string + topNode: boolean + leftNode: boolean + rightNode: boolean + bottomNode: boolean + } +} + +const FeatureScheduledNode = ({ data }: FeatureScheduledNodeProps) => { + const { topNode, leftNode, rightNode, bottomNode } = data + + return ( + <> + {topNode && ( + + )} + {leftNode && ( + + )} + {rightNode && ( + + )} + {bottomNode && ( + + )} +
+
+

{data.label}

+
+
+

SCHEDULED

+
+
+ + ) +} + +export default FeatureScheduledNode diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts index db5bdfe211d..d4cf3162280 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts @@ -1,4 +1,6 @@ import EndGoalNode from "./EndGoalNode" +import FeatureResearchNode from "./FeatureResearchNode" +import FeatureScheduledNode from "./FeatureScheduledNode" import TaskIdeaNode from "./TaskIdeaNode" import TaskResearchNode from "./TaskResearchNode" import TaskScheduledNode from "./TaskScheduledNode" @@ -6,6 +8,8 @@ import TaskShippedNode from "./TaskShippedNode" export { EndGoalNode, + FeatureResearchNode, + FeatureScheduledNode, TaskIdeaNode, TaskResearchNode, TaskScheduledNode, diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 82d7e17c3b6..b63fa510af6 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -20,6 +20,8 @@ import { cn } from "@/lib/utils/cn" import { EndGoalNode, + FeatureResearchNode, + FeatureScheduledNode, TaskIdeaNode, TaskResearchNode, TaskScheduledNode, @@ -41,6 +43,8 @@ const RoadmapTracksPage = () => { const nodeTypes = useMemo( () => ({ endGoal: EndGoalNode, + featureResearch: FeatureResearchNode, + featureScheduled: FeatureScheduledNode, taskIdea: TaskIdeaNode, taskResearch: TaskResearchNode, taskScheduled: TaskScheduledNode, diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index bac044aac83..72f34a54ddd 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -33,7 +33,7 @@ const initialNodes = [ }, { id: "2", - position: { x: 250, y: 180 }, + position: { x: 200, y: 125 }, type: "taskShipped", data: { label: "2", @@ -78,7 +78,7 @@ const initialNodes = [ }, { id: "6", - position: { x: 600, y: 200 }, + position: { x: 600, y: 135 }, type: "taskScheduled", data: { label: "SNARK for Verkle proofs", @@ -88,6 +88,30 @@ const initialNodes = [ bottomNode: true, }, }, + { + id: "7", + position: { x: 600, y: 250 }, + type: "featureResearch", + data: { + label: "SNARK for Verkle proofs", + topNode: true, + leftNode: true, + rightNode: true, + bottomNode: true, + }, + }, + { + id: "8", + position: { x: 400, y: 135 }, + type: "featureScheduled", + data: { + label: "SNARK for Verkle proofs", + topNode: true, + leftNode: true, + rightNode: true, + bottomNode: true, + }, + }, ] const initialEdges = [ { From 3e8d1f3203fb4d94091bf5e305f0709dcbaf5d6f Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Sun, 4 May 2025 15:17:56 -0600 Subject: [PATCH 20/42] feature shipped node --- .../CustomNodes/FeatureShippedNode.tsx | 88 +++++++++++++++++++ .../tracks/_components/CustomNodes/index.ts | 2 + .../roadmap/tracks/_components/tracks.tsx | 2 + .../roadmap/tracks/_components/useTracks.tsx | 12 +++ 4 files changed, 104 insertions(+) create mode 100644 app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureShippedNode.tsx diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureShippedNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureShippedNode.tsx new file mode 100644 index 00000000000..29bbbe636ed --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureShippedNode.tsx @@ -0,0 +1,88 @@ +"use client" + +import { Handle, Position } from "@xyflow/react" + +type FeatureShippedNodeProps = { + data: { + label: string + topNode: boolean + leftNode: boolean + rightNode: boolean + bottomNode: boolean + } +} + +const FeatureShippedNode = ({ data }: FeatureShippedNodeProps) => { + const { topNode, leftNode, rightNode, bottomNode } = data + + return ( + <> + {topNode && ( + + )} + {leftNode && ( + + )} + {rightNode && ( + + )} + {bottomNode && ( + + )} +
+
+

{data.label}

+
+
+

SHIPPED

+
+
+ + ) +} + +export default FeatureShippedNode diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts index d4cf3162280..4fbc3a90b53 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts @@ -1,6 +1,7 @@ import EndGoalNode from "./EndGoalNode" import FeatureResearchNode from "./FeatureResearchNode" import FeatureScheduledNode from "./FeatureScheduledNode" +import FeatureShippedNode from "./FeatureShippedNode" import TaskIdeaNode from "./TaskIdeaNode" import TaskResearchNode from "./TaskResearchNode" import TaskScheduledNode from "./TaskScheduledNode" @@ -10,6 +11,7 @@ export { EndGoalNode, FeatureResearchNode, FeatureScheduledNode, + FeatureShippedNode, TaskIdeaNode, TaskResearchNode, TaskScheduledNode, diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index b63fa510af6..1e0ffa73918 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -22,6 +22,7 @@ import { EndGoalNode, FeatureResearchNode, FeatureScheduledNode, + FeatureShippedNode, TaskIdeaNode, TaskResearchNode, TaskScheduledNode, @@ -45,6 +46,7 @@ const RoadmapTracksPage = () => { endGoal: EndGoalNode, featureResearch: FeatureResearchNode, featureScheduled: FeatureScheduledNode, + featureShipped: FeatureShippedNode, taskIdea: TaskIdeaNode, taskResearch: TaskResearchNode, taskScheduled: TaskScheduledNode, diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 72f34a54ddd..911de9e8a6c 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -112,6 +112,18 @@ const initialNodes = [ bottomNode: true, }, }, + { + id: "9", + position: { x: 400, y: 315 }, + type: "featureShipped", + data: { + label: "SNARK for Verkle proofs", + topNode: true, + leftNode: true, + rightNode: true, + bottomNode: true, + }, + }, ] const initialEdges = [ { From 3e743fc7d94476e217202660d1b67789c8ba7744 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Sun, 4 May 2025 16:18:42 -0600 Subject: [PATCH 21/42] group node tests --- .../_components/CustomNodes/GroupNode.tsx | 15 +++++++++++++++ .../tracks/_components/CustomNodes/index.ts | 2 ++ .../roadmap/tracks/_components/tracks.tsx | 2 ++ .../roadmap/tracks/_components/useTracks.tsx | 19 +++++++++++++++++++ 4 files changed, 38 insertions(+) create mode 100644 app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx new file mode 100644 index 00000000000..a54bb4d276b --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx @@ -0,0 +1,15 @@ +type GroupNodeProps = { + data: { + label: string + } +} + +const GroupNode = ({ data }: GroupNodeProps) => { + return ( +
+

{data.label}

+
+ ) +} + +export default GroupNode diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts index 4fbc3a90b53..751d639827a 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts @@ -2,6 +2,7 @@ import EndGoalNode from "./EndGoalNode" import FeatureResearchNode from "./FeatureResearchNode" import FeatureScheduledNode from "./FeatureScheduledNode" import FeatureShippedNode from "./FeatureShippedNode" +import GroupNode from "./GroupNode" import TaskIdeaNode from "./TaskIdeaNode" import TaskResearchNode from "./TaskResearchNode" import TaskScheduledNode from "./TaskScheduledNode" @@ -12,6 +13,7 @@ export { FeatureResearchNode, FeatureScheduledNode, FeatureShippedNode, + GroupNode, TaskIdeaNode, TaskResearchNode, TaskScheduledNode, diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 1e0ffa73918..cae6677ca52 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -23,6 +23,7 @@ import { FeatureResearchNode, FeatureScheduledNode, FeatureShippedNode, + GroupNode, TaskIdeaNode, TaskResearchNode, TaskScheduledNode, @@ -47,6 +48,7 @@ const RoadmapTracksPage = () => { featureResearch: FeatureResearchNode, featureScheduled: FeatureScheduledNode, featureShipped: FeatureShippedNode, + group: GroupNode, taskIdea: TaskIdeaNode, taskResearch: TaskResearchNode, taskScheduled: TaskScheduledNode, diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 911de9e8a6c..2ff83396ce5 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -19,6 +19,21 @@ import { import { useTranslation } from "@/hooks/useTranslation" const initialNodes = [ + { + id: "group-1", + position: { x: 20, y: 20 }, + style: { + width: 200, + height: 200, + border: "1px solid hsla(var(--primary))", + borderRadius: "10px", + backgroundColor: "#B38DF01A", + }, + type: "group", + data: { + label: "Group", + }, + }, { id: "1", position: { x: 20, y: 20 }, @@ -30,6 +45,8 @@ const initialNodes = [ rightNode: true, bottomNode: true, }, + parentNode: "group-1", + extent: "parent" as const, }, { id: "2", @@ -42,6 +59,8 @@ const initialNodes = [ rightNode: true, bottomNode: true, }, + parentNode: "group-1", + extent: "parent" as const, }, { id: "3", From b768f9d1094b94f6c8839c83a6dfa481dea5e0bb Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Sun, 4 May 2025 16:21:37 -0600 Subject: [PATCH 22/42] test --- .../_components/CustomNodes/GroupNode.tsx | 2 +- .../roadmap/tracks/_components/useTracks.tsx | 56 +++++++++---------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx index a54bb4d276b..b2efc43c10e 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx @@ -7,7 +7,7 @@ type GroupNodeProps = { const GroupNode = ({ data }: GroupNodeProps) => { return (
-

{data.label}

+

{data.label}

) } diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 2ff83396ce5..6c6c3d3d53b 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -34,34 +34,34 @@ const initialNodes = [ label: "Group", }, }, - { - id: "1", - position: { x: 20, y: 20 }, - type: "taskShipped", - data: { - label: "Warmup fork (Altair)", - topNode: true, - leftNode: true, - rightNode: true, - bottomNode: true, - }, - parentNode: "group-1", - extent: "parent" as const, - }, - { - id: "2", - position: { x: 200, y: 125 }, - type: "taskShipped", - data: { - label: "2", - topNode: true, - leftNode: true, - rightNode: true, - bottomNode: true, - }, - parentNode: "group-1", - extent: "parent" as const, - }, + // { + // id: "1", + // position: { x: 20, y: 20 }, + // type: "taskShipped", + // data: { + // label: "Warmup fork (Altair)", + // topNode: true, + // leftNode: true, + // rightNode: true, + // bottomNode: true, + // }, + // parentNode: "group-1", + // extent: "parent" as const, + // }, + // { + // id: "2", + // position: { x: 200, y: 125 }, + // type: "taskShipped", + // data: { + // label: "2", + // topNode: true, + // leftNode: true, + // rightNode: true, + // bottomNode: true, + // }, + // parentNode: "group-1", + // extent: "parent" as const, + // }, { id: "3", position: { x: 20, y: 180 }, From ef5796dcf87a1928d95ebc2faede612024674f20 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Sun, 4 May 2025 23:28:42 -0600 Subject: [PATCH 23/42] merge track --- .../CustomNodes/FeatureResearchNode.tsx | 6 +- .../CustomNodes/FeatureShippedNode.tsx | 2 +- .../TrackNodeSetups/MergeTrackNodes.ts | 202 ++++++++++++++++++ .../roadmap/tracks/_components/tracks.tsx | 1 + .../roadmap/tracks/_components/useTracks.tsx | 62 +++--- 5 files changed, 241 insertions(+), 32 deletions(-) create mode 100644 app/[locale]/roadmap/tracks/_components/TrackNodeSetups/MergeTrackNodes.ts diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureResearchNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureResearchNode.tsx index dfc9a046def..259f114c67d 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureResearchNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureResearchNode.tsx @@ -19,6 +19,7 @@ const FeatureResearchNode = ({ data }: FeatureResearchNodeProps) => { <> {topNode && ( { )} {leftNode && ( { )} {rightNode && ( { )} {bottomNode && ( { )}
-

{data.label}

+

{data.label}

SHIPPED

diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/MergeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/MergeTrackNodes.ts new file mode 100644 index 00000000000..d1078df3eb2 --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/MergeTrackNodes.ts @@ -0,0 +1,202 @@ +import { MarkerType } from "@xyflow/react" +import { Edge, Node } from "@xyflow/react" +const mergeNodes: Node[] = [ + { + id: "1", + position: { x: 20, y: 150 }, + type: "taskShipped", + data: { + label: "Beacon chain launch", + rightNode: true, + }, + }, + { + id: "2", + position: { x: 250, y: 150 }, + type: "taskShipped", + data: { + label: "Warmup fork (Altair)", + leftNode: true, + rightNode: true, + }, + }, + { + id: "3", + position: { x: 480, y: 123.5 }, + type: "featureShipped", + data: { + label: "Merge!\nNo more PoW", + leftNode: true, + rightNode: true, + }, + }, + { + id: "4", + position: { x: 720, y: 123.5 }, + type: "taskShipped", + data: { + label: "Distributed validators", + }, + }, + { + id: "5", + position: { x: 720, y: 250 }, + type: "taskShipped", + data: { + label: "Withdrawals", + leftNode: true, + }, + }, + { + id: "6", + position: { x: 950, y: 150 }, + type: "taskResearch", + data: { + label: "Per-slot participant selection", + rightNode: true, + percentage: 45, + }, + }, + { + id: "7", + position: { x: 950, y: 50 }, + type: "taskResearch", + data: { + label: "SSF specification", + rightNode: true, + percentage: 30, + }, + }, + { + id: "8", + position: { x: 950, y: 290 }, + type: "taskIdea", + data: { + label: "Implementation", + rightNode: true, + }, + }, + { + id: "9", + position: { x: 1175, y: 133.2 }, + type: "featureResearch", + data: { + label: "Single slot finality (SSF)", + topNode: true, + leftNode: true, + bottomNode: true, + }, + }, + { + id: "10", + position: { x: 1175, y: -30 }, + type: "taskResearch", + data: { + label: "Secret leader election", + percentage: 70, + }, + }, + { + id: "11", + position: { x: 1400, y: 250 }, + type: "taskResearch", + data: { + label: "Increase validator count", + percentage: 50, + }, + }, + { + id: "12", + position: { x: 1420, y: 70 }, + type: "endGoal", + data: { + label: "Increase validator count", + }, + }, +] + +const mergeEdges: Edge[] = [ + { + id: "e1-2", + source: "1", + target: "2", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--success))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--success))" }, + }, + { + id: "e2-3", + source: "2", + target: "3", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--success))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--success))" }, + }, + { + id: "e3-4", + source: "3", + target: "5", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--success))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--success))" }, + }, + { + id: "e6-9", + source: "6", + target: "9", + targetHandle: "left", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e7-9", + source: "7", + target: "9", + targetHandle: "top", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e8-9", + source: "8", + target: "9", + targetHandle: "bottom", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, +] + +export { mergeEdges, mergeNodes } diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index cae6677ca52..eea4773d8f5 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -179,6 +179,7 @@ const RoadmapTracksPage = () => { edges={contentData.nodes.edges} preventScrolling={false} nodeTypes={nodeTypes} + fitView />
diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 6c6c3d3d53b..397ee487c25 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -16,6 +16,8 @@ import { VergeIcon, } from "@/components/icons/roadmap" +import { mergeEdges, mergeNodes } from "./TrackNodeSetups/MergeTrackNodes" + import { useTranslation } from "@/hooks/useTranslation" const initialNodes = [ @@ -34,34 +36,34 @@ const initialNodes = [ label: "Group", }, }, - // { - // id: "1", - // position: { x: 20, y: 20 }, - // type: "taskShipped", - // data: { - // label: "Warmup fork (Altair)", - // topNode: true, - // leftNode: true, - // rightNode: true, - // bottomNode: true, - // }, - // parentNode: "group-1", - // extent: "parent" as const, - // }, - // { - // id: "2", - // position: { x: 200, y: 125 }, - // type: "taskShipped", - // data: { - // label: "2", - // topNode: true, - // leftNode: true, - // rightNode: true, - // bottomNode: true, - // }, - // parentNode: "group-1", - // extent: "parent" as const, - // }, + { + id: "1", + position: { x: 20, y: 20 }, + type: "taskShipped", + data: { + label: "Warmup fork (Altair)", + topNode: true, + leftNode: true, + rightNode: true, + bottomNode: true, + }, + parentNode: "group-1", + extent: "parent" as const, + }, + { + id: "2", + position: { x: 200, y: 125 }, + type: "taskShipped", + data: { + label: "2", + topNode: true, + leftNode: true, + rightNode: true, + bottomNode: true, + }, + parentNode: "group-1", + extent: "parent" as const, + }, { id: "3", position: { x: 20, y: 180 }, @@ -194,8 +196,8 @@ export const useTracks = (): Track[] => { }, ], nodes: { - nodes: initialNodes, - edges: initialEdges, + nodes: mergeNodes, + edges: mergeEdges, }, }, }, From 92965090167c7d916a905449c1461b2cb1d6d804 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Mon, 5 May 2025 10:43:47 -0600 Subject: [PATCH 24/42] Rollup node, track node, and surge chart --- .../CustomNodes/RollupStageNode.tsx | 52 +++++ .../_components/CustomNodes/TrackNode.tsx | 87 ++++++++ .../tracks/_components/CustomNodes/index.ts | 4 + .../TrackNodeSetups/SurgeTrackNodes.ts | 211 ++++++++++++++++++ .../roadmap/tracks/_components/tracks.tsx | 4 + .../roadmap/tracks/_components/useTracks.tsx | 5 +- 6 files changed, 361 insertions(+), 2 deletions(-) create mode 100644 app/[locale]/roadmap/tracks/_components/CustomNodes/RollupStageNode.tsx create mode 100644 app/[locale]/roadmap/tracks/_components/CustomNodes/TrackNode.tsx create mode 100644 app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SurgeTrackNodes.ts diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/RollupStageNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/RollupStageNode.tsx new file mode 100644 index 00000000000..66b3eb5fd63 --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/RollupStageNode.tsx @@ -0,0 +1,52 @@ +"use client" + +import { Handle, Position } from "@xyflow/react" + +type RollupStageNodeProps = { + data: { + label: string + stage: string + percentage: number + rightNode: boolean + } +} + +const RollupStageNode = ({ data }: RollupStageNodeProps) => { + const { rightNode, percentage, stage, label } = data + + return ( + <> + {rightNode && ( + + )} +
+
+
+

{label}

+
+
+

{stage}

+
+
+ + ) +} + +export default RollupStageNode diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/TrackNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/TrackNode.tsx new file mode 100644 index 00000000000..bab6115ebcd --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/TrackNode.tsx @@ -0,0 +1,87 @@ +"use client" + +import { Handle, Position } from "@xyflow/react" + +type TrackNodeProps = { + data: { + label: string + sublabel: string + topNode: boolean + leftNode: boolean + rightNode: boolean + bottomNode: boolean + } +} + +const TrackNode = ({ data }: TrackNodeProps) => { + const { topNode, leftNode, rightNode, bottomNode } = data + + return ( + <> + {topNode && ( + + )} + {leftNode && ( + + )} + {rightNode && ( + + )} + {bottomNode && ( + + )} +
+
+

{data.label}

+

{data.sublabel}

+
+
+ + ) +} + +export default TrackNode diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts index 751d639827a..6c1ec9db19e 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/index.ts @@ -3,10 +3,12 @@ import FeatureResearchNode from "./FeatureResearchNode" import FeatureScheduledNode from "./FeatureScheduledNode" import FeatureShippedNode from "./FeatureShippedNode" import GroupNode from "./GroupNode" +import RollupStageNode from "./RollupStageNode" import TaskIdeaNode from "./TaskIdeaNode" import TaskResearchNode from "./TaskResearchNode" import TaskScheduledNode from "./TaskScheduledNode" import TaskShippedNode from "./TaskShippedNode" +import TrackNode from "./TrackNode" export { EndGoalNode, @@ -14,8 +16,10 @@ export { FeatureScheduledNode, FeatureShippedNode, GroupNode, + RollupStageNode, TaskIdeaNode, TaskResearchNode, TaskScheduledNode, TaskShippedNode, + TrackNode, } diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SurgeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SurgeTrackNodes.ts new file mode 100644 index 00000000000..763636c0800 --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SurgeTrackNodes.ts @@ -0,0 +1,211 @@ +import { MarkerType } from "@xyflow/react" +import { Edge, Node } from "@xyflow/react" + +const surgeNodes: Node[] = [ + { + id: "1", + position: { x: 20, y: 150 }, + type: "taskShipped", + data: { + label: "EIP-4844 specification", + rightNode: true, + }, + }, + { + id: "2", + position: { x: 250, y: 150 }, + type: "taskShipped", + data: { + label: "EIP-4844 implementation", + leftNode: true, + rightNode: true, + }, + }, + { + id: "3", + position: { x: 480, y: 123.5 }, + type: "featureShipped", + data: { + label: "Basic rollup scaling", + leftNode: true, + bottomNode: true, + }, + }, + { + id: "4", + position: { x: 700, y: 100 }, + type: "taskResearch", + data: { + label: "peerDAS", + rightNode: true, + percentage: 65, + }, + }, + { + id: "5", + position: { x: 700, y: 200 }, + type: "taskResearch", + data: { + label: "Efficient DA self-healing", + rightNode: true, + percentage: 25, + }, + }, + { + id: "6", + position: { x: 940, y: 100 }, + type: "featureResearch", + data: { + label: "Full rollup scaling", + leftNode: true, + bottomNode: true, + }, + }, + { + id: "7", + position: { x: 1165, y: 100 }, + type: "endGoal", + data: { + label: "Q-safe, no setup commitments", + }, + }, + { + id: "8", + position: { x: 1150, y: 260 }, + type: "taskResearch", + data: { + label: "Improve cross-rollup standards + interop", + percentage: 25, + }, + }, + { + id: "9", + position: { x: 555, y: 320 }, + type: "rollupStage", + data: { + label: "Optimistic rollup fraud provers", + stage: "STAGE 0 & 1", + percentage: 65, + rightNode: true, + }, + }, + { + id: "10", + position: { x: 555, y: 380 }, + type: "rollupStage", + data: { + label: "ZK-EVMs", + stage: "STAGE 0", + percentage: 50, + rightNode: true, + }, + }, + { + id: "11", + position: { x: 1150, y: 440 }, + type: "track", + data: { + label: "The Verge", + sublabel: "SNARK for L1 EVM", + topNode: true, + }, + }, +] + +const surgeEdges: Edge[] = [ + { + id: "e1-2", + source: "1", + target: "2", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--success))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--success))" }, + }, + { + id: "e2-3", + source: "2", + target: "3", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--success))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--success))" }, + }, + { + id: "e4-6", + source: "4", + target: "6", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e5-6", + source: "5", + target: "6", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e9-6", + source: "9", + target: "6", + targetHandle: "bottom", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e10-6", + source: "10", + target: "6", + targetHandle: "bottom", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e10-11", + source: "10", + target: "11", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))", strokeDasharray: "5,5" }, + }, +] + +export { surgeEdges, surgeNodes } diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index eea4773d8f5..f4b4356dad7 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -24,10 +24,12 @@ import { FeatureScheduledNode, FeatureShippedNode, GroupNode, + RollupStageNode, TaskIdeaNode, TaskResearchNode, TaskScheduledNode, TaskShippedNode, + TrackNode, } from "./CustomNodes" import { useTracks } from "./useTracks" @@ -49,10 +51,12 @@ const RoadmapTracksPage = () => { featureScheduled: FeatureScheduledNode, featureShipped: FeatureShippedNode, group: GroupNode, + rollupStage: RollupStageNode, taskIdea: TaskIdeaNode, taskResearch: TaskResearchNode, taskScheduled: TaskScheduledNode, taskShipped: TaskShippedNode, + track: TrackNode, }), [] ) diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 397ee487c25..7047d882044 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -17,6 +17,7 @@ import { } from "@/components/icons/roadmap" import { mergeEdges, mergeNodes } from "./TrackNodeSetups/MergeTrackNodes" +import { surgeEdges, surgeNodes } from "./TrackNodeSetups/SurgeTrackNodes" import { useTranslation } from "@/hooks/useTranslation" @@ -215,8 +216,8 @@ export const useTracks = (): Track[] => { }, ], nodes: { - nodes: initialNodes, - edges: initialEdges, + nodes: surgeNodes, + edges: surgeEdges, }, }, }, From 4b5dc862b3ea270ec11a817fc9b6671bbcfd3ed8 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Mon, 5 May 2025 12:03:14 -0600 Subject: [PATCH 25/42] scourge nodes --- .../TrackNodeSetups/ScourgeTrackNodes.ts | 268 ++++++++++++++++++ .../roadmap/tracks/_components/useTracks.tsx | 5 +- 2 files changed, 271 insertions(+), 2 deletions(-) create mode 100644 app/[locale]/roadmap/tracks/_components/TrackNodeSetups/ScourgeTrackNodes.ts diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/ScourgeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/ScourgeTrackNodes.ts new file mode 100644 index 00000000000..9236575d392 --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/ScourgeTrackNodes.ts @@ -0,0 +1,268 @@ +import { MarkerType } from "@xyflow/react" +import { Edge, Node } from "@xyflow/react" + +const scourgeNodes: Node[] = [ + { + id: "group-1", + position: { x: 20, y: 20 }, + style: { + width: 1390, + height: 356, + border: "1px solid hsla(var(--primary))", + borderRadius: "10px", + backgroundColor: "#B38DF01A", + }, + type: "group", + data: { + label: "MEV Track", + }, + }, + { + id: "group-2", + position: { x: 300, y: 410 }, + style: { + width: 815, + height: 164, + border: "1px solid hsla(var(--primary))", + borderRadius: "10px", + backgroundColor: "#B38DF01A", + }, + type: "group", + data: { + label: "Staking economics / experience track", + }, + }, + { + id: "1", + position: { x: 40, y: 160 }, + type: "taskShipped", + data: { + label: "Extra-protocol MEV markets", + rightNode: true, + }, + parentId: "group-1", + extent: "parent" as const, + }, + { + id: "2", + position: { x: 270, y: 169.5 }, + type: "taskResearch", + data: { + label: "Explore ePBS", + leftNode: true, + rightNode: true, + percentage: 50, + }, + parentId: "group-1", + extent: "parent" as const, + }, + { + id: "3", + position: { x: 270, y: 70 }, + type: "taskResearch", + data: { + label: "Inclusion lists", + rightNode: true, + percentage: 90, + }, + parentId: "group-1", + extent: "parent" as const, + }, + { + id: "4", + position: { x: 500, y: 160 }, + type: "taskResearch", + data: { + label: "Explore MEV burn in ePBS", + leftNode: true, + rightNode: true, + percentage: 30, + }, + parentId: "group-1", + extent: "parent" as const, + }, + { + id: "5", + position: { x: 720, y: 20 }, + type: "taskResearch", + data: { + label: "Distributed block building", + rightNode: true, + percentage: 20, + }, + parentId: "group-1", + extent: "parent" as const, + }, + { + id: "6", + position: { x: 720, y: 240 }, + type: "taskResearch", + data: { + label: "Explore execution tickets", + rightNode: true, + percentage: 20, + }, + parentId: "group-1", + extent: "parent" as const, + }, + { + id: "7", + position: { x: 950, y: 80 }, + type: "featureResearch", + data: { + label: "Explore execution tickets", + leftNode: true, + percentage: 20, + }, + parentId: "group-1", + extent: "parent" as const, + }, + { + id: "8", + position: { x: 1175, y: 40 }, + type: "taskResearch", + data: { + label: "App-layer MEV minimization", + percentage: 20, + }, + parentId: "group-1", + extent: "parent" as const, + }, + { + id: "9", + position: { x: 1175, y: 200 }, + type: "taskResearch", + data: { + label: "Explore pre-confirmations", + percentage: 20, + }, + parentId: "group-1", + extent: "parent" as const, + }, + { + id: "10", + position: { x: 20, y: 45 }, + type: "taskScheduled", + data: { + label: "Raise max effective balance", + }, + parentId: "group-2", + extent: "parent" as const, + }, + { + id: "11", + position: { x: 220, y: 45 }, + type: "taskResearch", + data: { + label: "Improve node operator usability", + percentage: 80, + }, + parentId: "group-2", + extent: "parent" as const, + }, + { + id: "12", + position: { x: 420, y: 45 }, + type: "taskResearch", + data: { + label: "Explore total stake capping", + percentage: 20, + }, + parentId: "group-2", + extent: "parent" as const, + }, + { + id: "13", + position: { x: 620, y: 25 }, + type: "taskResearch", + data: { + label: "Explore solutions to liquid staking centralization", + percentage: 60, + }, + parentId: "group-2", + extent: "parent" as const, + }, +] + +const scourgeEdges: Edge[] = [ + { + id: "1-2", + source: "1", + target: "2", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--success))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--success))" }, + }, + { + id: "2-4", + source: "2", + target: "4", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "3-7", + source: "3", + target: "7", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "4-7", + source: "4", + target: "7", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "5-7", + source: "5", + target: "7", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "6-7", + source: "6", + target: "7", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, +] + +export { scourgeEdges, scourgeNodes } diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 7047d882044..392dbf90e78 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -17,6 +17,7 @@ import { } from "@/components/icons/roadmap" import { mergeEdges, mergeNodes } from "./TrackNodeSetups/MergeTrackNodes" +import { scourgeEdges, scourgeNodes } from "./TrackNodeSetups/ScourgeTrackNodes" import { surgeEdges, surgeNodes } from "./TrackNodeSetups/SurgeTrackNodes" import { useTranslation } from "@/hooks/useTranslation" @@ -235,8 +236,8 @@ export const useTracks = (): Track[] => { }, ], nodes: { - nodes: initialNodes, - edges: initialEdges, + nodes: scourgeNodes, + edges: scourgeEdges, }, }, }, From 5a914226477ccf005a4c2bcb890cdb23f2cd5135 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Mon, 5 May 2025 14:49:20 -0600 Subject: [PATCH 26/42] purge track nodes --- .../_components/CustomNodes/GroupNode.tsx | 31 +- .../_components/CustomNodes/TrackNode.tsx | 7 +- .../TrackNodeSetups/PurgeTrackNodes.ts | 290 ++++++++++++++++++ .../roadmap/tracks/_components/useTracks.tsx | 5 +- 4 files changed, 327 insertions(+), 6 deletions(-) create mode 100644 app/[locale]/roadmap/tracks/_components/TrackNodeSetups/PurgeTrackNodes.ts diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx index b2efc43c10e..ab85afedf48 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx @@ -1,3 +1,5 @@ +import { Handle, Position } from "@xyflow/react" + type GroupNodeProps = { data: { label: string @@ -6,9 +8,32 @@ type GroupNodeProps = { const GroupNode = ({ data }: GroupNodeProps) => { return ( -
-

{data.label}

-
+ <> +
+

{data.label}

+
+ + + ) } diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/TrackNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/TrackNode.tsx index bab6115ebcd..5b54f59d804 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/TrackNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/TrackNode.tsx @@ -20,6 +20,7 @@ const TrackNode = ({ data }: TrackNodeProps) => { <> {topNode && ( { )} {leftNode && ( { )} {rightNode && ( { )} {bottomNode && ( { backgroundColor: "hsla(var(--background))", }} isConnectable={true} + isConnectableEnd={true} isConnectableStart={true} /> )} diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/PurgeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/PurgeTrackNodes.ts new file mode 100644 index 00000000000..a8ded5bbeed --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/PurgeTrackNodes.ts @@ -0,0 +1,290 @@ +import { MarkerType } from "@xyflow/react" +import { Edge, Node } from "@xyflow/react" + +const purgeNodes: Node[] = [ + { + id: "1", + position: { x: 20, y: 20 }, + type: "track", + data: { + label: "The Verge", + sublabel: "Verkle trees", + bottomNode: true, + }, + }, + { + id: "group-1", + position: { x: 180, y: 140 }, + style: { + width: 616, + height: 164, + border: "1px solid hsla(var(--primary))", + borderRadius: "10px", + backgroundColor: "#B38DF01A", + }, + type: "group", + data: { + label: "EVM simplification track", + }, + }, + { + id: "2", + position: { x: 20, y: 50 }, + type: "taskShipped", + data: { + label: "Ban SELF-DESTRUCT", + }, + parentId: "group-1", + extent: "parent" as const, + }, + { + id: "3", + position: { x: 220, y: 50 }, + type: "taskResearch", + data: { + label: "Simplify gas mechanics", + percentage: 25, + }, + parentId: "group-1", + extent: "parent" as const, + }, + { + id: "4", + position: { x: 420, y: 50 }, + type: "taskResearch", + data: { + label: "Precompiles -> EVM impls", + percentage: 25, + }, + parentId: "group-1", + extent: "parent" as const, + }, + { + id: "5", + position: { x: 100, y: 350 }, + type: "taskShipped", + data: { + label: "EIP-4844 specification", + rightNode: true, + }, + }, + { + id: "6", + position: { x: 330, y: 350 }, + type: "taskResearch", + data: { + label: "EIP-4444 implementation", + leftNode: true, + rightNode: true, + percentage: 80, + }, + }, + { + id: "7", + position: { x: 600, y: 350 }, + type: "featureResearch", + data: { + label: "History expiry (EIP-4444)", + leftNode: true, + bottomNode: true, + }, + }, + { + id: "8", + position: { x: 330, y: 480 }, + type: "taskShipped", + data: { + label: "P2P history (eg. Portal)", + rightNode: true, + }, + }, + { + id: "9", + position: { x: 330, y: 600 }, + type: "taskShipped", + data: { + label: "Beacon chain fast sync", + rightNode: true, + }, + }, + { + id: "10", + position: { x: 100, y: 480 }, + type: "taskShipped", + data: { + label: "Eliminate most gas refunds", + }, + }, + { + id: "11", + position: { x: 800, y: 460 }, + type: "track", + data: { + label: "The Splurge", + sublabel: "Endgame EVM", + topNode: true, + }, + }, + { + id: "12", + position: { x: 1000, y: 200 }, + type: "taskResearch", + data: { + label: "Address space extension", + rightNode: true, + percentage: 20, + }, + }, + { + id: "13", + position: { x: 1220, y: 209.5 }, + type: "taskResearch", + data: { + label: "State expiry", + leftNode: true, + percentage: 20, + }, + }, + { + id: "14", + position: { x: 1000, y: 320 }, + type: "taskResearch", + data: { + label: "LOG reform", + percentage: 20, + }, + }, + { + id: "15", + position: { x: 1000, y: 420 }, + type: "taskResearch", + data: { + label: "Remove old Tx types", + rightNode: true, + percentage: 20, + }, + }, + { + id: "16", + position: { x: 1220, y: 420 }, + type: "taskResearch", + data: { + label: "Serialization harmonization", + leftNode: true, + percentage: 20, + }, + }, +] + +const purgeEdges: Edge[] = [ + { + id: "e-group-1-1", + source: "group-1", + sourceHandle: "left", + target: "1", + targetHandle: "bottom", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))", strokeDasharray: "5,5" }, + }, + { + id: "e5-6", + source: "5", + target: "6", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--success))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--success))" }, + }, + { + id: "e8-7", + source: "8", + target: "7", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--success))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--success))" }, + }, + { + id: "e6-7", + source: "6", + target: "7", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e9-7", + source: "9", + target: "7", + targetHandle: "bottom", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--success))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--success))" }, + }, + { + id: "e-group-1-11", + source: "group-1", + sourceHandle: "right", + target: "11", + targetHandle: "top", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))", strokeDasharray: "5,5" }, + }, + { + id: "e12-13", + source: "12", + target: "13", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e15-16", + source: "15", + target: "16", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, +] +export { purgeEdges, purgeNodes } diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index 392dbf90e78..cf97c7cdd28 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -17,6 +17,7 @@ import { } from "@/components/icons/roadmap" import { mergeEdges, mergeNodes } from "./TrackNodeSetups/MergeTrackNodes" +import { purgeEdges, purgeNodes } from "./TrackNodeSetups/PurgeTrackNodes" import { scourgeEdges, scourgeNodes } from "./TrackNodeSetups/ScourgeTrackNodes" import { surgeEdges, surgeNodes } from "./TrackNodeSetups/SurgeTrackNodes" @@ -255,8 +256,8 @@ export const useTracks = (): Track[] => { }, ], nodes: { - nodes: initialNodes, - edges: initialEdges, + nodes: purgeNodes, + edges: purgeEdges, }, }, }, From 9117463c604b109db28d9e87ae8a929c62979e72 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Mon, 5 May 2025 16:46:00 -0600 Subject: [PATCH 27/42] verge track nodes --- .../_components/CustomNodes/EndGoalNode.tsx | 30 +- .../CustomNodes/FeatureResearchNode.tsx | 17 + .../_components/CustomNodes/TaskIdeaNode.tsx | 1 + .../_components/CustomNodes/TrackNode.tsx | 3 +- .../TrackNodeSetups/VergeTrackNodes.ts | 324 ++++++++++++++++++ .../roadmap/tracks/_components/useTracks.tsx | 5 +- 6 files changed, 372 insertions(+), 8 deletions(-) create mode 100644 app/[locale]/roadmap/tracks/_components/TrackNodeSetups/VergeTrackNodes.ts diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNode.tsx index 9999e3b9cc5..e548f4688ae 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/EndGoalNode.tsx @@ -1,18 +1,38 @@ "use client" +import { Handle, Position } from "@xyflow/react" + type EndGoalNodeProps = { data: { label: string + leftNode?: boolean } } const EndGoalNode = ({ data }: EndGoalNodeProps) => { return ( -
-

- {data.label} -

-
+ <> + {data.leftNode && ( + + )} +
+

+ {data.label} +

+
+ ) } diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureResearchNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureResearchNode.tsx index 259f114c67d..99c99e30085 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureResearchNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureResearchNode.tsx @@ -29,6 +29,23 @@ const FeatureResearchNode = ({ data }: FeatureResearchNodeProps) => { backgroundColor: "hsla(var(--background))", }} isConnectable={true} + isConnectableStart={true} + isConnectableEnd={true} + /> + )} + {topNode && ( + )} diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx index a2f339c6609..fae6136b462 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskIdeaNode.tsx @@ -33,6 +33,7 @@ const TaskIdeaNode = ({ data }: TaskIdeaNodeProps) => { )} {leftNode && ( { {rightNode && ( { }} isConnectable={true} isConnectableStart={true} + isConnectableEnd={true} /> )} {bottomNode && ( diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/VergeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/VergeTrackNodes.ts new file mode 100644 index 00000000000..ca8a8eb1a6a --- /dev/null +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/VergeTrackNodes.ts @@ -0,0 +1,324 @@ +import { MarkerType } from "@xyflow/react" +import { Edge, Node } from "@xyflow/react" + +const vergeNodes: Node[] = [ + { + id: "1", + position: { x: 0, y: 400 }, + type: "taskShipped", + data: { + label: "Most serious EVM DoS issues solved", + }, + }, + { + id: "2", + position: { x: 220, y: 390 }, + type: "taskShipped", + data: { + label: "Basic light client support (sync committees)", + rightNode: true, + }, + }, + { + id: "3", + position: { x: 460, y: 400 }, + type: "taskResearch", + data: { + label: "SNARK-based light clients", + leftNode: true, + rightNode: true, + percentage: 80, + }, + }, + { + id: "4", + position: { x: 700, y: 390 }, + type: "taskIdea", + data: { + label: "SNARK for consensus state transition", + leftNode: true, + rightNode: true, + }, + }, + { + id: "5", + position: { x: 700, y: 248.5 }, + type: "taskIdea", + data: { + label: "SNARK for Verkle proofs", + leftNode: true, + rightNode: true, + }, + }, + { + id: "6", + position: { x: 460, y: 235 }, + type: "featureResearch", + data: { + label: "Verkle trees", + leftNode: true, + rightNode: true, + topNode: true, + }, + }, + { + id: "7", + position: { x: 220, y: 248.5 }, + type: "taskResearch", + data: { + label: "Transition spec + impl", + rightNode: true, + percentage: 80, + }, + }, + { + id: "8", + position: { x: 220, y: 100 }, + type: "taskResearch", + data: { + label: "Verkle trees spec + impl", + rightNode: true, + percentage: 80, + }, + }, + { + id: "9", + position: { x: 460, y: 100 }, + type: "taskResearch", + data: { + label: "Code chunking + gas cost update", + bottomNode: true, + percentage: 50, + }, + }, + { + id: "10", + position: { x: 700, y: 120 }, + type: "taskIdea", + data: { + label: "SNARK for L1 EVM", + rightNode: true, + }, + }, + { + id: "11", + position: { x: 950, y: 209 }, + type: "featureResearch", + data: { + label: "Fully SNARKed Ethereum", + rightNode: true, + leftNode: true, + topNode: true, + }, + }, + { + id: "12", + position: { x: 700, y: 0 }, + type: "track", + data: { + label: "The Scourge", + sublabel: "Improve operator 
node usability", + leftNode: true, + rightNode: true, + }, + }, + { + id: "13", + position: { x: 950, y: 430 }, + type: "taskResearch", + data: { + label: "SNARK / STARK ASICs", + percentage: 30, + }, + }, + { + id: "14", + position: { x: 1180, y: 80 }, + type: "taskIdea", + data: { + label: "Explore EVM verification precompile", + }, + }, + { + id: "15", + position: { x: 1200, y: 226 }, + type: "endGoal", + data: { + label: "Quantum-safe SNARKs (eg. STARKs)", + leftNode: true, + }, + }, +] + +const vergeEdges: Edge[] = [ + { + id: "e2-3", + source: "2", + target: "3", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--success))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--success))" }, + }, + { + id: "e3-4", + source: "3", + target: "4", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e7-6", + source: "7", + target: "6", + targetHandle: "left", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e8-6", + source: "8", + target: "6", + targetHandle: "left", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e9-6", + source: "9", + target: "6", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e10-11", + source: "10", + target: "11", + targetHandle: "left", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e5-11", + source: "5", + target: "11", + targetHandle: "left", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e4-11", + source: "4", + target: "11", + targetHandle: "left", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e11-12", + source: "11", + sourceHandle: "top-source", + target: "12", + targetHandle: "right", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))", strokeDasharray: "5,5" }, + }, + { + id: "e6-12", + source: "6", + sourceHandle: "right", + target: "12", + targetHandle: "left", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))", strokeDasharray: "5,5" }, + }, + { + id: "e6-5", + source: "6", + sourceHandle: "right", + target: "5", + targetHandle: "left", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, + { + id: "e11-15", + source: "11", + sourceHandle: "right", + target: "15", + type: "smoothstep", + markerEnd: { + type: MarkerType.Arrow, + color: "hsla(var(--primary))", + width: 32, + height: 32, + }, + style: { stroke: "hsla(var(--primary))" }, + }, +] + +export { vergeEdges, vergeNodes } diff --git a/app/[locale]/roadmap/tracks/_components/useTracks.tsx b/app/[locale]/roadmap/tracks/_components/useTracks.tsx index cf97c7cdd28..4abb713f404 100644 --- a/app/[locale]/roadmap/tracks/_components/useTracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/useTracks.tsx @@ -20,6 +20,7 @@ import { mergeEdges, mergeNodes } from "./TrackNodeSetups/MergeTrackNodes" import { purgeEdges, purgeNodes } from "./TrackNodeSetups/PurgeTrackNodes" import { scourgeEdges, scourgeNodes } from "./TrackNodeSetups/ScourgeTrackNodes" import { surgeEdges, surgeNodes } from "./TrackNodeSetups/SurgeTrackNodes" +import { vergeEdges, vergeNodes } from "./TrackNodeSetups/VergeTrackNodes" import { useTranslation } from "@/hooks/useTranslation" @@ -275,8 +276,8 @@ export const useTracks = (): Track[] => { }, ], nodes: { - nodes: initialNodes, - edges: initialEdges, + nodes: vergeNodes, + edges: vergeEdges, }, }, }, From 91b8867d4ff8d18419c9d43b2795db24a4460463 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Mon, 5 May 2025 23:12:33 -0600 Subject: [PATCH 28/42] splurge track nodes --- .../_components/CustomNodes/GroupNode.tsx | 12 + .../TrackNodeSetups/SplurgeTrackNodes.ts | 239 ++++++++++++++++++ .../roadmap/tracks/_components/useTracks.tsx | 149 +---------- 3 files changed, 255 insertions(+), 145 deletions(-) create mode 100644 app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SplurgeTrackNodes.ts diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx index ab85afedf48..e8bdee04c8c 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/GroupNode.tsx @@ -24,6 +24,18 @@ const GroupNode = ({ data }: GroupNodeProps) => { isConnectableStart={true} isConnectableEnd={true} /> + { }, ], nodes: { - nodes: initialNodes, - edges: initialEdges, + nodes: splurgeNodes, + edges: splurgeEdges, }, }, }, From 251530e0651ecb6f697276e9d280b517767b309f Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Mon, 5 May 2025 23:38:01 -0600 Subject: [PATCH 29/42] fix some bugs --- .../roadmap/tracks/_components/tracks.tsx | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index f4b4356dad7..de1ef1f4fac 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -80,10 +80,11 @@ const RoadmapTracksPage = () => { breadcrumbs={{ slug: "roadmap/tracks", startDepth: 1 }} /> -
-
- {t("page-roadmap-tracks-whats-on-this-page")} -
+
+ {t("page-roadmap-tracks-whats-on-this-page")} +
+ +
@@ -128,10 +129,11 @@ const RoadmapTracksPage = () => { className="w-full flex-col items-start gap-3 rounded-2xl hover:!text-inherit [&[data-state=open]]:!bg-transparent [&[data-state=open]]:!text-inherit [&[data-state=open]]:hover:!bg-background-highlight [&]:!p-4 [&]:hover:!bg-background-highlight sm:[&]:!p-6" >
-
- +
+ {cloneElement(icon as React.ReactElement, { - className: "w-full h-full", + className: "w-8 h-8", + style: { overflow: "visible" }, })}
@@ -184,6 +186,10 @@ const RoadmapTracksPage = () => { preventScrolling={false} nodeTypes={nodeTypes} fitView + nodesDraggable={false} + nodesConnectable={false} + panOnDrag={true} + proOptions={{ hideAttribution: true }} />
From 1a1cf934fd20e65dca78a369b2d13c3e43471972 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 6 May 2025 00:27:04 -0600 Subject: [PATCH 30/42] mock dialog --- .../roadmap/tracks/_components/tracks.tsx | 62 ++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index de1ef1f4fac..8e05c354db4 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -2,7 +2,8 @@ import { cloneElement, useMemo, useState } from "react" import { motion } from "framer-motion" -import { ReactFlow } from "@xyflow/react" +import isEqual from "lodash/isEqual" +import { Node, ReactFlow } from "@xyflow/react" import BannerNotification from "@/components/Banners/BannerNotification" import FeedbackCard from "@/components/FeedbackCard" @@ -15,6 +16,12 @@ import { AccordionTrigger, } from "@/components/ui/accordion" import { ButtonLink } from "@/components/ui/buttons/Button" +import { + Dialog, + DialogContent, + DialogHeader, + DialogTitle, +} from "@/components/ui/dialog" import { cn } from "@/lib/utils/cn" @@ -38,12 +45,25 @@ import "@xyflow/react/dist/style.css" import { useActiveHash } from "@/hooks/useActiveHash" import { useTranslation } from "@/hooks/useTranslation" +type NodeData = { + label?: string + description?: string + sublabel?: string + stage?: string + percentage?: number + topNode?: boolean + leftNode?: boolean + rightNode?: boolean + bottomNode?: boolean +} + const RoadmapTracksPage = () => { const { t } = useTranslation("page-roadmap-tracks") const tracks = useTracks() const [openItems, setOpenItems] = useState(() => tracks.map(({ key }) => key) ) + const [selectedNode, setSelectedNode] = useState | null>(null) const nodeTypes = useMemo( () => ({ endGoal: EndGoalNode, @@ -190,6 +210,16 @@ const RoadmapTracksPage = () => { nodesConnectable={false} panOnDrag={true} proOptions={{ hideAttribution: true }} + onNodeClick={(_, node) => { + if (isEqual(node, selectedNode)) { + setSelectedNode(null) + } else { + setSelectedNode({ + ...node, + data: node.data as NodeData, + }) + } + }} />
@@ -198,6 +228,36 @@ const RoadmapTracksPage = () => {
+ setSelectedNode(null)}> + + + {selectedNode?.data?.label} + +
+ {selectedNode?.data?.description && ( +

+ {selectedNode.data.description} +

+ )} + {selectedNode?.data?.sublabel && ( +

+ {selectedNode.data.sublabel} +

+ )} + {selectedNode?.data?.stage && ( +

+ Stage: {selectedNode.data.stage} +

+ )} + {selectedNode?.data?.percentage !== undefined && ( +

+ Progress: {selectedNode.data.percentage}% +

+ )} +
+
+
+ ) From 7872c6ceecb93987d8b4f037f71070c495e3bab3 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 6 May 2025 12:21:51 -0600 Subject: [PATCH 31/42] Refactor to popover instead --- .../roadmap/tracks/_components/tracks.tsx | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 8e05c354db4..89c3b2ad5c4 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -17,11 +17,10 @@ import { } from "@/components/ui/accordion" import { ButtonLink } from "@/components/ui/buttons/Button" import { - Dialog, - DialogContent, - DialogHeader, - DialogTitle, -} from "@/components/ui/dialog" + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover" import { cn } from "@/lib/utils/cn" @@ -228,12 +227,18 @@ const RoadmapTracksPage = () => {
- setSelectedNode(null)}> - - - {selectedNode?.data?.label} - -
+ + +
+ + +
+

{selectedNode?.data?.label}

{selectedNode?.data?.description && (

{selectedNode.data.description} @@ -255,8 +260,8 @@ const RoadmapTracksPage = () => {

)}
- -
+ + From 3a4a772f1d74f2924e88e8d105279eb27fa42c3a Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 6 May 2025 15:55:27 -0600 Subject: [PATCH 32/42] setup gradients and top section for popover --- .../TrackNodeSetups/MergeTrackNodes.ts | 12 ++ .../TrackNodeSetups/PurgeTrackNodes.ts | 16 +++ .../TrackNodeSetups/ScourgeTrackNodes.ts | 13 ++ .../TrackNodeSetups/SplurgeTrackNodes.ts | 14 ++ .../TrackNodeSetups/SurgeTrackNodes.ts | 11 ++ .../TrackNodeSetups/VergeTrackNodes.ts | 17 ++- .../roadmap/tracks/_components/tracks.tsx | 128 +++++++++++++++--- src/styles/semantic-tokens.css | 12 ++ tailwind.config.ts | 8 ++ 9 files changed, 208 insertions(+), 23 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/MergeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/MergeTrackNodes.ts index d1078df3eb2..01795f22354 100644 --- a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/MergeTrackNodes.ts +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/MergeTrackNodes.ts @@ -7,6 +7,7 @@ const mergeNodes: Node[] = [ type: "taskShipped", data: { label: "Beacon chain launch", + track: "Merge", rightNode: true, }, }, @@ -16,6 +17,7 @@ const mergeNodes: Node[] = [ type: "taskShipped", data: { label: "Warmup fork (Altair)", + track: "Merge", leftNode: true, rightNode: true, }, @@ -26,6 +28,7 @@ const mergeNodes: Node[] = [ type: "featureShipped", data: { label: "Merge!\nNo more PoW", + track: "Merge", leftNode: true, rightNode: true, }, @@ -36,6 +39,7 @@ const mergeNodes: Node[] = [ type: "taskShipped", data: { label: "Distributed validators", + track: "Merge", }, }, { @@ -44,6 +48,7 @@ const mergeNodes: Node[] = [ type: "taskShipped", data: { label: "Withdrawals", + track: "Merge", leftNode: true, }, }, @@ -53,6 +58,7 @@ const mergeNodes: Node[] = [ type: "taskResearch", data: { label: "Per-slot participant selection", + track: "Merge", rightNode: true, percentage: 45, }, @@ -63,6 +69,7 @@ const mergeNodes: Node[] = [ type: "taskResearch", data: { label: "SSF specification", + track: "Merge", rightNode: true, percentage: 30, }, @@ -73,6 +80,7 @@ const mergeNodes: Node[] = [ type: "taskIdea", data: { label: "Implementation", + track: "Merge", rightNode: true, }, }, @@ -82,6 +90,7 @@ const mergeNodes: Node[] = [ type: "featureResearch", data: { label: "Single slot finality (SSF)", + track: "Merge", topNode: true, leftNode: true, bottomNode: true, @@ -93,6 +102,7 @@ const mergeNodes: Node[] = [ type: "taskResearch", data: { label: "Secret leader election", + track: "Merge", percentage: 70, }, }, @@ -102,6 +112,7 @@ const mergeNodes: Node[] = [ type: "taskResearch", data: { label: "Increase validator count", + track: "Merge", percentage: 50, }, }, @@ -111,6 +122,7 @@ const mergeNodes: Node[] = [ type: "endGoal", data: { label: "Increase validator count", + track: "Merge", }, }, ] diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/PurgeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/PurgeTrackNodes.ts index a8ded5bbeed..ea9dd5572cd 100644 --- a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/PurgeTrackNodes.ts +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/PurgeTrackNodes.ts @@ -8,6 +8,7 @@ const purgeNodes: Node[] = [ type: "track", data: { label: "The Verge", + track: "Verge", sublabel: "Verkle trees", bottomNode: true, }, @@ -33,6 +34,7 @@ const purgeNodes: Node[] = [ type: "taskShipped", data: { label: "Ban SELF-DESTRUCT", + track: "Purge", }, parentId: "group-1", extent: "parent" as const, @@ -43,6 +45,7 @@ const purgeNodes: Node[] = [ type: "taskResearch", data: { label: "Simplify gas mechanics", + track: "Purge", percentage: 25, }, parentId: "group-1", @@ -54,6 +57,7 @@ const purgeNodes: Node[] = [ type: "taskResearch", data: { label: "Precompiles -> EVM impls", + track: "Purge", percentage: 25, }, parentId: "group-1", @@ -65,6 +69,7 @@ const purgeNodes: Node[] = [ type: "taskShipped", data: { label: "EIP-4844 specification", + track: "Purge", rightNode: true, }, }, @@ -74,6 +79,7 @@ const purgeNodes: Node[] = [ type: "taskResearch", data: { label: "EIP-4444 implementation", + track: "Purge", leftNode: true, rightNode: true, percentage: 80, @@ -85,6 +91,7 @@ const purgeNodes: Node[] = [ type: "featureResearch", data: { label: "History expiry (EIP-4444)", + track: "Purge", leftNode: true, bottomNode: true, }, @@ -95,6 +102,7 @@ const purgeNodes: Node[] = [ type: "taskShipped", data: { label: "P2P history (eg. Portal)", + track: "Purge", rightNode: true, }, }, @@ -104,6 +112,7 @@ const purgeNodes: Node[] = [ type: "taskShipped", data: { label: "Beacon chain fast sync", + track: "Purge", rightNode: true, }, }, @@ -113,6 +122,7 @@ const purgeNodes: Node[] = [ type: "taskShipped", data: { label: "Eliminate most gas refunds", + track: "Purge", }, }, { @@ -121,6 +131,7 @@ const purgeNodes: Node[] = [ type: "track", data: { label: "The Splurge", + track: "Splurge", sublabel: "Endgame EVM", topNode: true, }, @@ -131,6 +142,7 @@ const purgeNodes: Node[] = [ type: "taskResearch", data: { label: "Address space extension", + track: "Purge", rightNode: true, percentage: 20, }, @@ -141,6 +153,7 @@ const purgeNodes: Node[] = [ type: "taskResearch", data: { label: "State expiry", + track: "Purge", leftNode: true, percentage: 20, }, @@ -151,6 +164,7 @@ const purgeNodes: Node[] = [ type: "taskResearch", data: { label: "LOG reform", + track: "Purge", percentage: 20, }, }, @@ -160,6 +174,7 @@ const purgeNodes: Node[] = [ type: "taskResearch", data: { label: "Remove old Tx types", + track: "Purge", rightNode: true, percentage: 20, }, @@ -170,6 +185,7 @@ const purgeNodes: Node[] = [ type: "taskResearch", data: { label: "Serialization harmonization", + track: "Purge", leftNode: true, percentage: 20, }, diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/ScourgeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/ScourgeTrackNodes.ts index 9236575d392..9dde0a32ad2 100644 --- a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/ScourgeTrackNodes.ts +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/ScourgeTrackNodes.ts @@ -38,6 +38,7 @@ const scourgeNodes: Node[] = [ type: "taskShipped", data: { label: "Extra-protocol MEV markets", + track: "Scourge", rightNode: true, }, parentId: "group-1", @@ -49,6 +50,7 @@ const scourgeNodes: Node[] = [ type: "taskResearch", data: { label: "Explore ePBS", + track: "Scourge", leftNode: true, rightNode: true, percentage: 50, @@ -62,6 +64,7 @@ const scourgeNodes: Node[] = [ type: "taskResearch", data: { label: "Inclusion lists", + track: "Scourge", rightNode: true, percentage: 90, }, @@ -74,6 +77,7 @@ const scourgeNodes: Node[] = [ type: "taskResearch", data: { label: "Explore MEV burn in ePBS", + track: "Scourge", leftNode: true, rightNode: true, percentage: 30, @@ -87,6 +91,7 @@ const scourgeNodes: Node[] = [ type: "taskResearch", data: { label: "Distributed block building", + track: "Scourge", rightNode: true, percentage: 20, }, @@ -99,6 +104,7 @@ const scourgeNodes: Node[] = [ type: "taskResearch", data: { label: "Explore execution tickets", + track: "Scourge", rightNode: true, percentage: 20, }, @@ -111,6 +117,7 @@ const scourgeNodes: Node[] = [ type: "featureResearch", data: { label: "Explore execution tickets", + track: "Scourge", leftNode: true, percentage: 20, }, @@ -123,6 +130,7 @@ const scourgeNodes: Node[] = [ type: "taskResearch", data: { label: "App-layer MEV minimization", + track: "Scourge", percentage: 20, }, parentId: "group-1", @@ -134,6 +142,7 @@ const scourgeNodes: Node[] = [ type: "taskResearch", data: { label: "Explore pre-confirmations", + track: "Scourge", percentage: 20, }, parentId: "group-1", @@ -145,6 +154,7 @@ const scourgeNodes: Node[] = [ type: "taskScheduled", data: { label: "Raise max effective balance", + track: "Scourge", }, parentId: "group-2", extent: "parent" as const, @@ -155,6 +165,7 @@ const scourgeNodes: Node[] = [ type: "taskResearch", data: { label: "Improve node operator usability", + track: "Scourge", percentage: 80, }, parentId: "group-2", @@ -166,6 +177,7 @@ const scourgeNodes: Node[] = [ type: "taskResearch", data: { label: "Explore total stake capping", + track: "Scourge", percentage: 20, }, parentId: "group-2", @@ -177,6 +189,7 @@ const scourgeNodes: Node[] = [ type: "taskResearch", data: { label: "Explore solutions to liquid staking centralization", + track: "Scourge", percentage: 60, }, parentId: "group-2", diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SplurgeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SplurgeTrackNodes.ts index 3f0cfa75510..e8997fed75c 100644 --- a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SplurgeTrackNodes.ts +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SplurgeTrackNodes.ts @@ -24,6 +24,7 @@ const splurgeNodes: Node[] = [ type: "taskResearch", data: { label: "EOF", + track: "Splurge", percentage: 90, }, parentId: "group-1", @@ -35,6 +36,7 @@ const splurgeNodes: Node[] = [ type: "taskResearch", data: { label: "Big modular arithmetic", + track: "Splurge", percentage: 75, }, parentId: "group-1", @@ -46,6 +48,7 @@ const splurgeNodes: Node[] = [ type: "taskResearch", data: { label: "Futher EVM improvements", + track: "Splurge", percentage: 30, }, parentId: "group-1", @@ -57,6 +60,7 @@ const splurgeNodes: Node[] = [ type: "featureResearch", data: { label: "Endgame EVM", + track: "Splurge", leftNode: true, }, }, @@ -83,6 +87,7 @@ const splurgeNodes: Node[] = [ type: "taskShipped", data: { label: "ERC-4337 rollout", + track: "Splurge", rightNode: true, }, parentId: "group-2", @@ -94,6 +99,7 @@ const splurgeNodes: Node[] = [ type: "taskScheduled", data: { label: "Voluntary EOA conversion", + track: "Splurge", leftNode: true, rightNode: true, }, @@ -106,6 +112,7 @@ const splurgeNodes: Node[] = [ type: "taskScheduled", data: { label: "In-protocol enshrining", + track: "Splurge", leftNode: true, rightNode: true, }, @@ -118,6 +125,7 @@ const splurgeNodes: Node[] = [ type: "featureScheduled", data: { label: "Endgame account abstraction", + track: "Splurge", leftNode: true, }, }, @@ -127,6 +135,7 @@ const splurgeNodes: Node[] = [ type: "taskShipped", data: { label: "EIP-4337 specification", + track: "Splurge", rightNode: true, }, }, @@ -136,6 +145,7 @@ const splurgeNodes: Node[] = [ type: "taskResearch", data: { label: "Endgame EIP-1559", + track: "Splurge", leftNode: true, percentage: 30, }, @@ -146,6 +156,7 @@ const splurgeNodes: Node[] = [ type: "taskShipped", data: { label: "EIP-1559", + track: "Splurge", rightNode: true, }, }, @@ -155,6 +166,7 @@ const splurgeNodes: Node[] = [ type: "taskResearch", data: { label: "Explore delay-encrypted mempools", + track: "Splurge", percentage: 10, }, }, @@ -164,6 +176,7 @@ const splurgeNodes: Node[] = [ type: "taskResearch", data: { label: "VDFs", + track: "Splurge", percentage: 30, }, }, @@ -173,6 +186,7 @@ const splurgeNodes: Node[] = [ type: "taskResearch", data: { label: "Explore deep-crypto (eg. obfuscation)", + track: "Splurge", percentage: 10, }, }, diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SurgeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SurgeTrackNodes.ts index 763636c0800..4e128e0d383 100644 --- a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SurgeTrackNodes.ts +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SurgeTrackNodes.ts @@ -8,6 +8,7 @@ const surgeNodes: Node[] = [ type: "taskShipped", data: { label: "EIP-4844 specification", + track: "Surge", rightNode: true, }, }, @@ -17,6 +18,7 @@ const surgeNodes: Node[] = [ type: "taskShipped", data: { label: "EIP-4844 implementation", + track: "Surge", leftNode: true, rightNode: true, }, @@ -27,6 +29,7 @@ const surgeNodes: Node[] = [ type: "featureShipped", data: { label: "Basic rollup scaling", + track: "Surge", leftNode: true, bottomNode: true, }, @@ -37,6 +40,7 @@ const surgeNodes: Node[] = [ type: "taskResearch", data: { label: "peerDAS", + track: "Surge", rightNode: true, percentage: 65, }, @@ -47,6 +51,7 @@ const surgeNodes: Node[] = [ type: "taskResearch", data: { label: "Efficient DA self-healing", + track: "Surge", rightNode: true, percentage: 25, }, @@ -57,6 +62,7 @@ const surgeNodes: Node[] = [ type: "featureResearch", data: { label: "Full rollup scaling", + track: "Surge", leftNode: true, bottomNode: true, }, @@ -67,6 +73,7 @@ const surgeNodes: Node[] = [ type: "endGoal", data: { label: "Q-safe, no setup commitments", + track: "Surge", }, }, { @@ -75,6 +82,7 @@ const surgeNodes: Node[] = [ type: "taskResearch", data: { label: "Improve cross-rollup standards + interop", + track: "Surge", percentage: 25, }, }, @@ -85,6 +93,7 @@ const surgeNodes: Node[] = [ data: { label: "Optimistic rollup fraud provers", stage: "STAGE 0 & 1", + track: "Surge", percentage: 65, rightNode: true, }, @@ -96,6 +105,7 @@ const surgeNodes: Node[] = [ data: { label: "ZK-EVMs", stage: "STAGE 0", + track: "Surge", percentage: 50, rightNode: true, }, @@ -107,6 +117,7 @@ const surgeNodes: Node[] = [ data: { label: "The Verge", sublabel: "SNARK for L1 EVM", + track: "Verge", topNode: true, }, }, diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/VergeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/VergeTrackNodes.ts index ca8a8eb1a6a..394fc793e98 100644 --- a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/VergeTrackNodes.ts +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/VergeTrackNodes.ts @@ -8,6 +8,7 @@ const vergeNodes: Node[] = [ type: "taskShipped", data: { label: "Most serious EVM DoS issues solved", + track: "Verge", }, }, { @@ -16,6 +17,7 @@ const vergeNodes: Node[] = [ type: "taskShipped", data: { label: "Basic light client support (sync committees)", + track: "Verge", rightNode: true, }, }, @@ -25,6 +27,7 @@ const vergeNodes: Node[] = [ type: "taskResearch", data: { label: "SNARK-based light clients", + track: "Verge", leftNode: true, rightNode: true, percentage: 80, @@ -36,6 +39,7 @@ const vergeNodes: Node[] = [ type: "taskIdea", data: { label: "SNARK for consensus state transition", + track: "Verge", leftNode: true, rightNode: true, }, @@ -46,6 +50,7 @@ const vergeNodes: Node[] = [ type: "taskIdea", data: { label: "SNARK for Verkle proofs", + track: "Verge", leftNode: true, rightNode: true, }, @@ -56,6 +61,7 @@ const vergeNodes: Node[] = [ type: "featureResearch", data: { label: "Verkle trees", + track: "Verge", leftNode: true, rightNode: true, topNode: true, @@ -67,6 +73,7 @@ const vergeNodes: Node[] = [ type: "taskResearch", data: { label: "Transition spec + impl", + track: "Verge", rightNode: true, percentage: 80, }, @@ -77,6 +84,7 @@ const vergeNodes: Node[] = [ type: "taskResearch", data: { label: "Verkle trees spec + impl", + track: "Verge", rightNode: true, percentage: 80, }, @@ -87,6 +95,7 @@ const vergeNodes: Node[] = [ type: "taskResearch", data: { label: "Code chunking + gas cost update", + track: "Verge", bottomNode: true, percentage: 50, }, @@ -97,6 +106,7 @@ const vergeNodes: Node[] = [ type: "taskIdea", data: { label: "SNARK for L1 EVM", + track: "Verge", rightNode: true, }, }, @@ -106,6 +116,7 @@ const vergeNodes: Node[] = [ type: "featureResearch", data: { label: "Fully SNARKed Ethereum", + track: "Verge", rightNode: true, leftNode: true, topNode: true, @@ -117,7 +128,8 @@ const vergeNodes: Node[] = [ type: "track", data: { label: "The Scourge", - sublabel: "Improve operator 
node usability", + sublabel: "Improve operator node usability", + track: "Scourge", leftNode: true, rightNode: true, }, @@ -128,6 +140,7 @@ const vergeNodes: Node[] = [ type: "taskResearch", data: { label: "SNARK / STARK ASICs", + track: "Verge", percentage: 30, }, }, @@ -137,6 +150,7 @@ const vergeNodes: Node[] = [ type: "taskIdea", data: { label: "Explore EVM verification precompile", + track: "Verge", }, }, { @@ -145,6 +159,7 @@ const vergeNodes: Node[] = [ type: "endGoal", data: { label: "Quantum-safe SNARKs (eg. STARKs)", + track: "Verge", leftNode: true, }, }, diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 89c3b2ad5c4..a82ec5f8927 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -3,6 +3,7 @@ import { cloneElement, useMemo, useState } from "react" import { motion } from "framer-motion" import isEqual from "lodash/isEqual" +import { MdClose } from "react-icons/md" import { Node, ReactFlow } from "@xyflow/react" import BannerNotification from "@/components/Banners/BannerNotification" @@ -15,7 +16,7 @@ import { AccordionItem, AccordionTrigger, } from "@/components/ui/accordion" -import { ButtonLink } from "@/components/ui/buttons/Button" +import { Button, ButtonLink } from "@/components/ui/buttons/Button" import { Popover, PopoverContent, @@ -46,6 +47,7 @@ import { useTranslation } from "@/hooks/useTranslation" type NodeData = { label?: string + track?: string description?: string sublabel?: string stage?: string @@ -84,6 +86,69 @@ const RoadmapTracksPage = () => { "0% 0% -70% 0%" ).replace(/^#/, "") + const popoverConfig = { + endGoal: { + border: "border-primary", + background: "bg-primary-high-contrast-linear-gradient", + pillStyles: "bg-primary text-body-inverse", + pillText: "END GOAL", + }, + featureResearch: { + border: "border-border", + background: "bg-background-medium-linear-gradient", + pillStyles: "bg-background-medium", + pillText: "RESEARCH", + }, + featureScheduled: { + border: "border-warning", + background: "bg-warning-linear-gradient", + pillStyles: "bg-warning", + pillText: "SCHEDULED", + }, + featureShipped: { + border: "border-success", + background: "bg-success-linear-gradient", + pillStyles: "bg-success", + pillText: "SHIPPED", + }, + rollupStage: { + border: "border-primary-high-contrast", + background: "bg-primary-high-contrast-linear-gradient", + pillStyles: "bg-primary-high-contrast text-body-inverse", + pillText: "STAGE", + }, + taskIdea: { + border: "border-background-highlight", + background: "bg-background-high-linear-gradient", + pillStyles: "bg-background-high", + pillText: "IDEA", + }, + taskResearch: { + border: "border-border", + background: "bg-background-medium-linear-gradient", + pillStyles: "bg-background-medium", + pillText: "RESEARCH", + }, + taskScheduled: { + border: "border-warning", + background: "bg-warning-linear-gradient", + pillStyles: "bg-warning", + pillText: "SCHEDULED", + }, + taskShipped: { + border: "border-success", + background: "bg-success-linear-gradient", + pillStyles: "bg-success", + pillText: "SHIPPED", + }, + track: { + border: "border-primary", + background: "bg-primary-high-contrast-linear-gradient", + pillStyles: "bg-primary-high-contrast text-body-inverse", + pillText: "TRACK", + }, + } + return ( @@ -210,6 +275,8 @@ const RoadmapTracksPage = () => { panOnDrag={true} proOptions={{ hideAttribution: true }} onNodeClick={(_, node) => { + if (node.type === "group") return + if (isEqual(node, selectedNode)) { setSelectedNode(null) } else { @@ -232,33 +299,50 @@ const RoadmapTracksPage = () => {
-
-

{selectedNode?.data?.label}

- {selectedNode?.data?.description && ( -

- {selectedNode.data.description} -

- )} - {selectedNode?.data?.sublabel && ( -

- {selectedNode.data.sublabel} -

- )} - {selectedNode?.data?.stage && ( -

- Stage: {selectedNode.data.stage} -

+
- Progress: {selectedNode.data.percentage}% + > +
+ +
+
+ { + popoverConfig[selectedNode?.type as keyof typeof popoverConfig] + ?.pillText + } +
+
+

+ {selectedNode?.data.track}

- )} +

{selectedNode?.data.label}

+
+
diff --git a/src/styles/semantic-tokens.css b/src/styles/semantic-tokens.css index b8fb9a8be9f..5942ccc861f 100644 --- a/src/styles/semantic-tokens.css +++ b/src/styles/semantic-tokens.css @@ -89,6 +89,12 @@ --card-gradient-secondary: linear-gradient(95deg, rgba(211, 145, 242, 0.12) 0%, rgba(159, 43, 212, 0.12) 102.78%); --card-gradient-secondary-hover: linear-gradient(95deg, rgba(211, 145, 242, 0.2) 0%, rgba(159, 43, 212, 0.2) 102.78%); + --success-linear-gradient: linear-gradient(to bottom, hsla(var(--green-600), 0.10), hsla(var(--white), 1)); + --warning-linear-gradient: linear-gradient(to bottom, hsla(var(--yellow-300), 0.10), hsla(var(--white), 1)); + --background-medium-linear-gradient: linear-gradient(to bottom, hsla(var(--background-medium), 0.10), hsla(var(--white), 1)); + --background-high-linear-gradient: linear-gradient(to bottom, hsla(var(--background-high), 0.10), hsla(var(--white), 1)); + --primary-high-contrast-linear-gradient: linear-gradient(to bottom, hsla(var(--primary-high-contrast), 0.10), hsla(var(--white), 1)); + /* Shadows */ --shadow-color-a: hsla(var(--purple-800), 0.02); --shadow-color-b: hsla(var(--red-800), 0.04); @@ -204,6 +210,12 @@ --roadmap-card-gradient: linear-gradient(123deg, rgba(34, 34, 34, 0.20) 40.53%, rgba(174, 110, 203, 0.13) 104.05%); + --success-linear-gradient: linear-gradient(to bottom, hsla(var(--green-600), 0.10), hsla(var(--black), 1)); + --warning-linear-gradient: linear-gradient(to bottom, hsla(var(--yellow-300), 0.10), hsla(var(--black), 1)); + --background-medium-linear-gradient: linear-gradient(to bottom, hsla(var(--background-medium), 0.10), hsla(var(--black), 1)); + --background-high-linear-gradient: linear-gradient(to bottom, hsla(var(--background-high), 0.10), hsla(var(--black), 1)); + --primary-high-contrast-linear-gradient: linear-gradient(to bottom, hsla(var(--primary-high-contrast), 0.10), hsla(var(--black), 1)); + /* Shadows (dark mode adjustments) */ --shadow-color: hsla(var(--white), 0.04); --shadow-svg-button-link-1: -2px 2px 12px 1px var(--shadow-color); diff --git a/tailwind.config.ts b/tailwind.config.ts index 268a8425fa4..b6fe5beddcd 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -234,6 +234,14 @@ const config = { "card-gradient": "var(--card-gradient)", "card-gradient-secondary": "var(--card-gradient-secondary)", "card-gradient-secondary-hover": "var(--card-gradient-secondary-hover)", + "success-linear-gradient": "var(--success-linear-gradient)", + "warning-linear-gradient": "var(--warning-linear-gradient)", + "background-medium-linear-gradient": + "var(--background-medium-linear-gradient)", + "background-high-linear-gradient": + "var(--background-high-linear-gradient)", + "primary-high-contrast-linear-gradient": + "var(--primary-high-contrast-linear-gradient)", }, boxShadow: { "table-box": "var(--table-box-shadow)", From afd1726e492b015644a726b3c771ccce9e406d81 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 6 May 2025 19:06:37 -0600 Subject: [PATCH 33/42] popover body and todo list --- .../TrackNodeSetups/MergeTrackNodes.ts | 166 +++++++++++++ .../TrackNodeSetups/PurgeTrackNodes.ts | 218 ++++++++++++++++++ .../TrackNodeSetups/ScourgeTrackNodes.ts | 171 ++++++++++++++ .../TrackNodeSetups/SplurgeTrackNodes.ts | 188 +++++++++++++++ .../TrackNodeSetups/SurgeTrackNodes.ts | 149 ++++++++++++ .../TrackNodeSetups/VergeTrackNodes.ts | 199 ++++++++++++++++ .../roadmap/tracks/_components/tracks.tsx | 62 ++++- 7 files changed, 1150 insertions(+), 3 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/MergeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/MergeTrackNodes.ts index 01795f22354..c02727745fb 100644 --- a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/MergeTrackNodes.ts +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/MergeTrackNodes.ts @@ -9,6 +9,21 @@ const mergeNodes: Node[] = [ label: "Beacon chain launch", track: "Merge", rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -20,6 +35,21 @@ const mergeNodes: Node[] = [ track: "Merge", leftNode: true, rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -31,6 +61,21 @@ const mergeNodes: Node[] = [ track: "Merge", leftNode: true, rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -40,6 +85,21 @@ const mergeNodes: Node[] = [ data: { label: "Distributed validators", track: "Merge", + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -50,6 +110,21 @@ const mergeNodes: Node[] = [ label: "Withdrawals", track: "Merge", leftNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -61,6 +136,19 @@ const mergeNodes: Node[] = [ track: "Merge", rightNode: true, percentage: 45, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -72,6 +160,19 @@ const mergeNodes: Node[] = [ track: "Merge", rightNode: true, percentage: 30, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -82,6 +183,19 @@ const mergeNodes: Node[] = [ label: "Implementation", track: "Merge", rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -94,6 +208,19 @@ const mergeNodes: Node[] = [ topNode: true, leftNode: true, bottomNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -104,6 +231,19 @@ const mergeNodes: Node[] = [ label: "Secret leader election", track: "Merge", percentage: 70, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -114,6 +254,19 @@ const mergeNodes: Node[] = [ label: "Increase validator count", track: "Merge", percentage: 50, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -123,6 +276,19 @@ const mergeNodes: Node[] = [ data: { label: "Increase validator count", track: "Merge", + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, ] diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/PurgeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/PurgeTrackNodes.ts index ea9dd5572cd..5150d27ec84 100644 --- a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/PurgeTrackNodes.ts +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/PurgeTrackNodes.ts @@ -11,6 +11,19 @@ const purgeNodes: Node[] = [ track: "Verge", sublabel: "Verkle trees", bottomNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -35,6 +48,21 @@ const purgeNodes: Node[] = [ data: { label: "Ban SELF-DESTRUCT", track: "Purge", + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -47,6 +75,19 @@ const purgeNodes: Node[] = [ label: "Simplify gas mechanics", track: "Purge", percentage: 25, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -59,6 +100,19 @@ const purgeNodes: Node[] = [ label: "Precompiles -> EVM impls", track: "Purge", percentage: 25, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -71,6 +125,21 @@ const purgeNodes: Node[] = [ label: "EIP-4844 specification", track: "Purge", rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -83,6 +152,19 @@ const purgeNodes: Node[] = [ leftNode: true, rightNode: true, percentage: 80, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -94,6 +176,19 @@ const purgeNodes: Node[] = [ track: "Purge", leftNode: true, bottomNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -104,6 +199,21 @@ const purgeNodes: Node[] = [ label: "P2P history (eg. Portal)", track: "Purge", rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -114,6 +224,21 @@ const purgeNodes: Node[] = [ label: "Beacon chain fast sync", track: "Purge", rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -123,6 +248,21 @@ const purgeNodes: Node[] = [ data: { label: "Eliminate most gas refunds", track: "Purge", + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -134,6 +274,19 @@ const purgeNodes: Node[] = [ track: "Splurge", sublabel: "Endgame EVM", topNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -145,6 +298,19 @@ const purgeNodes: Node[] = [ track: "Purge", rightNode: true, percentage: 20, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -156,6 +322,19 @@ const purgeNodes: Node[] = [ track: "Purge", leftNode: true, percentage: 20, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -166,6 +345,19 @@ const purgeNodes: Node[] = [ label: "LOG reform", track: "Purge", percentage: 20, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -177,6 +369,19 @@ const purgeNodes: Node[] = [ track: "Purge", rightNode: true, percentage: 20, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -188,6 +393,19 @@ const purgeNodes: Node[] = [ track: "Purge", leftNode: true, percentage: 20, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, ] diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/ScourgeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/ScourgeTrackNodes.ts index 9dde0a32ad2..6913f92eb72 100644 --- a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/ScourgeTrackNodes.ts +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/ScourgeTrackNodes.ts @@ -40,6 +40,21 @@ const scourgeNodes: Node[] = [ label: "Extra-protocol MEV markets", track: "Scourge", rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -54,6 +69,19 @@ const scourgeNodes: Node[] = [ leftNode: true, rightNode: true, percentage: 50, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -67,6 +95,19 @@ const scourgeNodes: Node[] = [ track: "Scourge", rightNode: true, percentage: 90, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -81,6 +122,19 @@ const scourgeNodes: Node[] = [ leftNode: true, rightNode: true, percentage: 30, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -94,6 +148,19 @@ const scourgeNodes: Node[] = [ track: "Scourge", rightNode: true, percentage: 20, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -107,6 +174,19 @@ const scourgeNodes: Node[] = [ track: "Scourge", rightNode: true, percentage: 20, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -120,6 +200,19 @@ const scourgeNodes: Node[] = [ track: "Scourge", leftNode: true, percentage: 20, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -132,6 +225,19 @@ const scourgeNodes: Node[] = [ label: "App-layer MEV minimization", track: "Scourge", percentage: 20, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -144,6 +250,19 @@ const scourgeNodes: Node[] = [ label: "Explore pre-confirmations", track: "Scourge", percentage: 20, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -155,6 +274,19 @@ const scourgeNodes: Node[] = [ data: { label: "Raise max effective balance", track: "Scourge", + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-2", extent: "parent" as const, @@ -167,6 +299,19 @@ const scourgeNodes: Node[] = [ label: "Improve node operator usability", track: "Scourge", percentage: 80, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-2", extent: "parent" as const, @@ -179,6 +324,19 @@ const scourgeNodes: Node[] = [ label: "Explore total stake capping", track: "Scourge", percentage: 20, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-2", extent: "parent" as const, @@ -191,6 +349,19 @@ const scourgeNodes: Node[] = [ label: "Explore solutions to liquid staking centralization", track: "Scourge", percentage: 60, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-2", extent: "parent" as const, diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SplurgeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SplurgeTrackNodes.ts index e8997fed75c..59402bee969 100644 --- a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SplurgeTrackNodes.ts +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SplurgeTrackNodes.ts @@ -26,6 +26,19 @@ const splurgeNodes: Node[] = [ label: "EOF", track: "Splurge", percentage: 90, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -38,6 +51,19 @@ const splurgeNodes: Node[] = [ label: "Big modular arithmetic", track: "Splurge", percentage: 75, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -50,6 +76,19 @@ const splurgeNodes: Node[] = [ label: "Futher EVM improvements", track: "Splurge", percentage: 30, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-1", extent: "parent" as const, @@ -62,6 +101,19 @@ const splurgeNodes: Node[] = [ label: "Endgame EVM", track: "Splurge", leftNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -89,6 +141,21 @@ const splurgeNodes: Node[] = [ label: "ERC-4337 rollout", track: "Splurge", rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-2", extent: "parent" as const, @@ -102,6 +169,19 @@ const splurgeNodes: Node[] = [ track: "Splurge", leftNode: true, rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-2", extent: "parent" as const, @@ -115,6 +195,19 @@ const splurgeNodes: Node[] = [ track: "Splurge", leftNode: true, rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, parentId: "group-2", extent: "parent" as const, @@ -127,6 +220,19 @@ const splurgeNodes: Node[] = [ label: "Endgame account abstraction", track: "Splurge", leftNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -137,6 +243,21 @@ const splurgeNodes: Node[] = [ label: "EIP-4337 specification", track: "Splurge", rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -148,6 +269,19 @@ const splurgeNodes: Node[] = [ track: "Splurge", leftNode: true, percentage: 30, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -158,6 +292,21 @@ const splurgeNodes: Node[] = [ label: "EIP-1559", track: "Splurge", rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -168,6 +317,19 @@ const splurgeNodes: Node[] = [ label: "Explore delay-encrypted mempools", track: "Splurge", percentage: 10, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -178,6 +340,19 @@ const splurgeNodes: Node[] = [ label: "VDFs", track: "Splurge", percentage: 30, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -188,6 +363,19 @@ const splurgeNodes: Node[] = [ label: "Explore deep-crypto (eg. obfuscation)", track: "Splurge", percentage: 10, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, ] diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SurgeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SurgeTrackNodes.ts index 4e128e0d383..1d30a34a89a 100644 --- a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SurgeTrackNodes.ts +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/SurgeTrackNodes.ts @@ -10,6 +10,21 @@ const surgeNodes: Node[] = [ label: "EIP-4844 specification", track: "Surge", rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -21,6 +36,21 @@ const surgeNodes: Node[] = [ track: "Surge", leftNode: true, rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -32,6 +62,21 @@ const surgeNodes: Node[] = [ track: "Surge", leftNode: true, bottomNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -43,6 +88,19 @@ const surgeNodes: Node[] = [ track: "Surge", rightNode: true, percentage: 65, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -54,6 +112,19 @@ const surgeNodes: Node[] = [ track: "Surge", rightNode: true, percentage: 25, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -65,6 +136,19 @@ const surgeNodes: Node[] = [ track: "Surge", leftNode: true, bottomNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -74,6 +158,19 @@ const surgeNodes: Node[] = [ data: { label: "Q-safe, no setup commitments", track: "Surge", + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -84,6 +181,19 @@ const surgeNodes: Node[] = [ label: "Improve cross-rollup standards + interop", track: "Surge", percentage: 25, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -96,6 +206,19 @@ const surgeNodes: Node[] = [ track: "Surge", percentage: 65, rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -108,6 +231,19 @@ const surgeNodes: Node[] = [ track: "Surge", percentage: 50, rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -119,6 +255,19 @@ const surgeNodes: Node[] = [ sublabel: "SNARK for L1 EVM", track: "Verge", topNode: true, + description: ["TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, ] diff --git a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/VergeTrackNodes.ts b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/VergeTrackNodes.ts index 394fc793e98..d7d28620fb9 100644 --- a/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/VergeTrackNodes.ts +++ b/app/[locale]/roadmap/tracks/_components/TrackNodeSetups/VergeTrackNodes.ts @@ -9,6 +9,21 @@ const vergeNodes: Node[] = [ data: { label: "Most serious EVM DoS issues solved", track: "Verge", + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -19,6 +34,21 @@ const vergeNodes: Node[] = [ label: "Basic light client support (sync committees)", track: "Verge", rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + releaseLabel: "TODO", + releasePageURL: "/", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -31,6 +61,19 @@ const vergeNodes: Node[] = [ leftNode: true, rightNode: true, percentage: 80, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -42,6 +85,19 @@ const vergeNodes: Node[] = [ track: "Verge", leftNode: true, rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -53,6 +109,19 @@ const vergeNodes: Node[] = [ track: "Verge", leftNode: true, rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -65,6 +134,19 @@ const vergeNodes: Node[] = [ leftNode: true, rightNode: true, topNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -76,6 +158,19 @@ const vergeNodes: Node[] = [ track: "Verge", rightNode: true, percentage: 80, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -87,6 +182,19 @@ const vergeNodes: Node[] = [ track: "Verge", rightNode: true, percentage: 80, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -98,6 +206,19 @@ const vergeNodes: Node[] = [ track: "Verge", bottomNode: true, percentage: 50, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -108,6 +229,19 @@ const vergeNodes: Node[] = [ label: "SNARK for L1 EVM", track: "Verge", rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -120,6 +254,19 @@ const vergeNodes: Node[] = [ rightNode: true, leftNode: true, topNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -132,6 +279,19 @@ const vergeNodes: Node[] = [ track: "Scourge", leftNode: true, rightNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -142,6 +302,19 @@ const vergeNodes: Node[] = [ label: "SNARK / STARK ASICs", track: "Verge", percentage: 30, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -151,6 +324,19 @@ const vergeNodes: Node[] = [ data: { label: "Explore EVM verification precompile", track: "Verge", + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, { @@ -161,6 +347,19 @@ const vergeNodes: Node[] = [ label: "Quantum-safe SNARKs (eg. STARKs)", track: "Verge", leftNode: true, + description: ["TODO: Add description", "TODO: Add description"], + releaseDate: "TODO", + benefits: ["TODO: Add benefits", "TODO: Add benefits"], + furtherReading: [ + { + title: "TODO: Add title", + url: "/", + }, + { + title: "TODO: Add title", + url: "/", + }, + ], }, }, ] diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index a82ec5f8927..2e157750247 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -17,6 +17,7 @@ import { AccordionTrigger, } from "@/components/ui/accordion" import { Button, ButtonLink } from "@/components/ui/buttons/Button" +import Link from "@/components/ui/Link" import { Popover, PopoverContent, @@ -48,7 +49,8 @@ import { useTranslation } from "@/hooks/useTranslation" type NodeData = { label?: string track?: string - description?: string + description?: string[] + releaseDate?: string sublabel?: string stage?: string percentage?: number @@ -56,6 +58,13 @@ type NodeData = { leftNode?: boolean rightNode?: boolean bottomNode?: boolean + releaseLabel?: string + releasePageURL?: string + benefits?: string[] + furtherReading?: { + title: string + url: string + }[] } const RoadmapTracksPage = () => { @@ -300,7 +309,7 @@ const RoadmapTracksPage = () => { {

{selectedNode?.data.label}

-
+
+ {selectedNode?.data?.description?.map((description) => ( +

+ {description} +

+ ))} +
+
+
+
+

+ {popoverConfig[ + selectedNode?.type as keyof typeof popoverConfig + ]?.pillText === "SHIPPED" + ? "Shipped:" + : "Estimated release:"} +

+

{selectedNode?.data?.releaseDate}

+
+ {selectedNode?.data?.releaseLabel && ( +
+

Related upgrade:

+ + {selectedNode?.data?.releaseLabel} + +
+ )} +
+

Benefits:

+
    + {selectedNode?.data?.benefits?.map((benefit) => ( +
  • + {benefit} +
  • + ))} +
+
+
+

Further reading:

+
    + {selectedNode?.data?.furtherReading?.map((reading) => ( +
  • + {reading.title} +
  • + ))} +
+
+
From c2cdf24b27236d51f9c58853f71e1ec475d99efa Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 6 May 2025 22:46:54 -0600 Subject: [PATCH 34/42] percentage bar --- .../roadmap/tracks/_components/tracks.tsx | 224 +++++++++++------- 1 file changed, 143 insertions(+), 81 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 2e157750247..11a04f7a90b 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -158,6 +158,36 @@ const RoadmapTracksPage = () => { }, } + const progressBar = (track) => { + const nodes = track.nodes.nodes.filter( + (node) => + node.type !== "track" && + node.type !== "group" && + node.type !== "featureResearch" + ) + const completionPercentage = + nodes.reduce((acc, node) => { + if (node.type.includes("Shipped")) { + return acc + 100 + } + if (node.type.includes("Scheduled")) { + return acc + 100 + } + if (node.type.includes("Research")) { + return acc + node.data.percentage + } + return acc + }, 0) / nodes.length + + return { + percentage: Math.round(completionPercentage), + textColor: completionPercentage >= 50 ? "text-success" : "text-warning", + backgroundColor: + completionPercentage >= 50 ? "bg-success/20" : "bg-warning/20", + progressColor: completionPercentage >= 50 ? "bg-success" : "bg-warning", + } + } + return ( @@ -210,96 +240,128 @@ const RoadmapTracksPage = () => { onValueChange={setOpenItems} className="flex w-full flex-col items-start gap-4 px-0" > - {tracks.map(({ key, icon, contentData }) => ( - - { + const progressData = progressBar(contentData) + return ( + -
-
- - {cloneElement(icon as React.ReactElement, { - className: "w-8 h-8", - style: { overflow: "visible" }, - })} - -
-

{contentData.title}

-
-
-
-
-

Goals:

-

{contentData.goalDescription}

+ +
+
+ + {cloneElement(icon as React.ReactElement, { + className: "w-8 h-8", + style: { overflow: "visible" }, + })} +
-
-

Benefits:

-
- {contentData.benefits.map((benefit) => ( -
-
- - {cloneElement( - benefit.icon as React.ReactElement, - { - className: "w-full h-full", - } - )} - +

{contentData.title}

+
+
+
+
+

Goals:

+

{contentData.goalDescription}

+
+
+

Benefits:

+
+ {contentData.benefits.map((benefit) => ( +
+
+ + {cloneElement( + benefit.icon as React.ReactElement, + { + className: "w-full h-full", + } + )} + +
+ {benefit.title}
- {benefit.title} -
- ))} + ))} +
+
+
+
+
+
+ + {openItems.includes(key) ? "CLOSE -" : "OPEN +"} +
-
-
- - {openItems.includes(key) ? "CLOSE -" : "OPEN +"} - +
+
+

+ {progressData.percentage}% completed +

+
+
+
-
- - -
- { - if (node.type === "group") return + + +
+ { + if (node.type === "group") return - if (isEqual(node, selectedNode)) { - setSelectedNode(null) - } else { - setSelectedNode({ - ...node, - data: node.data as NodeData, - }) - } - }} - /> -
-
- - ))} + if (isEqual(node, selectedNode)) { + setSelectedNode(null) + } else { + setSelectedNode({ + ...node, + data: node.data as NodeData, + }) + } + }} + /> +
+
+ + ) + })}
From b3e114bc4d7c9f4e6b6b6efad1345b38d46b4409 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Tue, 6 May 2025 23:51:30 -0600 Subject: [PATCH 35/42] Explore ethereum roadmap section --- app/[locale]/roadmap/_components/roadmap.tsx | 33 +++++++++++++++++- .../images/roadmap/roadmap-tracks-image.png | Bin 0 -> 327782 bytes 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 public/images/roadmap/roadmap-tracks-image.png diff --git a/app/[locale]/roadmap/_components/roadmap.tsx b/app/[locale]/roadmap/_components/roadmap.tsx index b373eb20747..c74a02fcc7d 100644 --- a/app/[locale]/roadmap/_components/roadmap.tsx +++ b/app/[locale]/roadmap/_components/roadmap.tsx @@ -29,6 +29,7 @@ import { useTranslation } from "@/hooks/useTranslation" import ethBlocksImage from "@/public/images/developers-eth-blocks.png" import communityHeroImg from "@/public/images/heroes/community-hero.png" import roadmapHeroImg from "@/public/images/heroes/roadmap-hub-hero.jpg" +import roadmapTracksImage from "@/public/images/roadmap/roadmap-tracks-image.png" const RoadmapPage = () => { const { t } = useTranslation("page-roadmap") @@ -162,7 +163,7 @@ const RoadmapPage = () => { {changesComingItems.map((item) => (

{item.title}

@@ -179,6 +180,36 @@ const RoadmapPage = () => {
+
+
+
+ Ethereum roadmap +
+
+
+

Explore Ethereum's roadmap

+

+ Ethereum's future is shaped by everyone, not just one + person. +

+

+ In 2022, Vitalik Buterin shared a vision for what could come + next. Today, developers, researchers, and the community continue + to evolve Ethereum with their own ideas and proposals. +

+
+ + View the progress + +
+
+
+
+

Why does Ethereum need a roadmap?

diff --git a/public/images/roadmap/roadmap-tracks-image.png b/public/images/roadmap/roadmap-tracks-image.png new file mode 100644 index 0000000000000000000000000000000000000000..507c5f3c12e979936585fb2b28ac09f695caa52b GIT binary patch literal 327782 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 z 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�=Hke{q(D5kT};cN~h@6 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 Date: Wed, 7 May 2025 13:01:20 -0600 Subject: [PATCH 36/42] Add zoom in and out buttons, remove banner --- .../roadmap/tracks/_components/tracks.tsx | 48 +++++++++++++++---- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 11a04f7a90b..22fefb75a31 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -4,9 +4,14 @@ import { cloneElement, useMemo, useState } from "react" import { motion } from "framer-motion" import isEqual from "lodash/isEqual" import { MdClose } from "react-icons/md" -import { Node, ReactFlow } from "@xyflow/react" +import { + ControlButton, + Controls, + Node, + ReactFlow, + useReactFlow, +} from "@xyflow/react" -import BannerNotification from "@/components/Banners/BannerNotification" import FeedbackCard from "@/components/FeedbackCard" import { ContentHero } from "@/components/Hero" import MainArticle from "@/components/MainArticle" @@ -188,13 +193,35 @@ const RoadmapTracksPage = () => { } } + const CustomControls = () => { + const { zoomIn, zoomOut } = useReactFlow() + + return ( + + zoomOut()} + className="rounded-full border border-border bg-background p-2 shadow hover:bg-background-highlight active:bg-background-highlight" + > +

-

+
+ zoomIn()} + className="rounded-full border border-border bg-background p-2 shadow hover:bg-background-highlight active:bg-background-highlight" + > +

+

+
+
+ ) + } + return ( - -

- Ethereum's development is community-driven and subject to change. -

-
{

-
+
{openItems.includes(key) ? "CLOSE -" : "OPEN +"} @@ -339,7 +366,6 @@ const RoadmapTracksPage = () => { edges={contentData.nodes.edges} preventScrolling={false} nodeTypes={nodeTypes} - fitView nodesDraggable={false} nodesConnectable={false} panOnDrag={true} @@ -356,7 +382,9 @@ const RoadmapTracksPage = () => { }) } }} - /> + > + +
From 1a6f039aca1f596313b8353b8e8fa7ba80014566 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Thu, 8 May 2025 11:29:49 -0600 Subject: [PATCH 37/42] future releseases added --- .../roadmap/_components/ReleaseCarousel.tsx | 10 +++++-- src/data/roadmap/releases.tsx | 30 ++++++++++++------- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/app/[locale]/roadmap/_components/ReleaseCarousel.tsx b/app/[locale]/roadmap/_components/ReleaseCarousel.tsx index a6f4286df42..855fcfc2aab 100644 --- a/app/[locale]/roadmap/_components/ReleaseCarousel.tsx +++ b/app/[locale]/roadmap/_components/ReleaseCarousel.tsx @@ -172,7 +172,7 @@ const ReleaseCarousel = () => { ? index < findLatestReleaseIndex() ? "bg-primary" : "bg-primary-low-contrast" - : "bg-transparent" + : "border-2 border-dashed border-primary-low-contrast" )} />
@@ -181,7 +181,9 @@ const ReleaseCarousel = () => { {release.releaseName}

- {formatDate(release.releaseDate)} + {release.releaseDate === "Future" + ? "Future" + : formatDate(release.releaseDate)}

@@ -226,7 +228,9 @@ const ReleaseCarousel = () => { {release.releaseName}

- {formatDate(release.releaseDate)} + {release.releaseDate === "Future" + ? "Future" + : formatDate(release.releaseDate)}

diff --git a/src/data/roadmap/releases.tsx b/src/data/roadmap/releases.tsx index f7687acdca4..38a55714d82 100644 --- a/src/data/roadmap/releases.tsx +++ b/src/data/roadmap/releases.tsx @@ -6,6 +6,7 @@ import GuidesHubHeroImage from "@/public/images/heroes/guides-hub-hero.jpg" import Layer2HubHeroImage from "@/public/images/heroes/layer-2-hub-hero.jpg" import QuizzesHubHeroImage from "@/public/images/heroes/quizzes-hub-hero.png" import PectraImage from "@/public/images/roadmap/roadmap-pectra.png" +import RoadmapNodeImage from "@/public/images/roadmap/roadmap-tracks-image.png" interface Release { image: StaticImageData @@ -114,11 +115,14 @@ export const releasesData: Release[] = [ releaseDate: "2025-05-07", content: (
-

Enhance EOA wallets with smart contract functionality

+

+ Enhance EOA wallets with smart contract functionality +

  • Users can set their address to be represented by a code of an - existing smart contract and gain benefits such as transaction batching, transaction fee sponsorship or better recovery mechanisms + existing smart contract and gain benefits such as transaction + batching, transaction fee sponsorship or better recovery mechanisms

Increase the max effective balance

@@ -186,15 +190,21 @@ export const releasesData: Release[] = [ ] // TODO: Add future releases when implementing /roadmap/tracks -// const futureRelease: Release = { -// image: CommunityHeroImage, -// releaseName: "Future releases", -// releaseDate: "Future", -// content: [], -// href: "https://eips.ethereum.org/EIPS/eip-7773", -// } +const futureRelease: Release = { + image: RoadmapNodeImage, + releaseName: "Future releases", + releaseDate: "Future", + content: ( +
+

+ Ethereum's roadmap continues to be developed, with more to come! +

+
+ ), + href: "/roadmap/tracks", +} export const releasesDataWithFuture: Release[] = [ ...releasesData, - // futureRelease, + futureRelease, ] From e18a44d54fa1965a0fe7c62c87804c8ae5f6478f Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Thu, 8 May 2025 11:37:30 -0600 Subject: [PATCH 38/42] nav bar --- src/components/Nav/useNav.ts | 5 +++++ src/intl/en/common.json | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/components/Nav/useNav.ts b/src/components/Nav/useNav.ts index d611c109fe8..43c51e09fc7 100644 --- a/src/components/Nav/useNav.ts +++ b/src/components/Nav/useNav.ts @@ -427,6 +427,11 @@ export const useNav = () => { description: t("nav-roadmap-overview-description"), href: "/roadmap/", }, + { + label: t("nav-roadmap-tracks-label"), + description: t("nav-roadmap-tracks-description"), + href: "/roadmap/tracks/", + }, { label: t("nav-roadmap-security-label"), description: t("nav-roadmap-security-description"), diff --git a/src/intl/en/common.json b/src/intl/en/common.json index 4d304eacd50..fc994b6f749 100644 --- a/src/intl/en/common.json +++ b/src/intl/en/common.json @@ -311,6 +311,8 @@ "nav-roadmap-options": "Roadmap Options", "nav-roadmap-options-alt": "Roadmap options dropdown menu", "nav-roadmap-overview-description": "The future of Ethereum", + "nav-roadmap-tracks-label": "Roadmap tracks", + "nav-roadmap-tracks-description": "Visualize Ethereum's roadmap in a more detailed way", "nav-roadmap-scaling": "Scaling", "nav-roadmap-scaling-description": "Network updates to further reduce transaction costs and speed", "nav-roadmap-scaling-label": "Cheaper transactions", From e2e9b1968b7eaa174f59d3e37976e5295ded7172 Mon Sep 17 00:00:00 2001 From: Corwin Smith Date: Thu, 8 May 2025 12:49:38 -0600 Subject: [PATCH 39/42] change requests --- app/[locale]/roadmap/_components/roadmap.tsx | 2 +- .../CustomNodes/FeatureScheduledNode.tsx | 2 +- .../CustomNodes/TaskScheduledNode.tsx | 2 +- .../roadmap/tracks/_components/tracks.tsx | 20 +++++++++---------- .../roadmap/BetterUserExperienceIcon.tsx | 8 ++++---- .../icons/roadmap/CheaperTransactionsIcon.tsx | 6 +++--- .../icons/roadmap/ExtraSecurityIcon.tsx | 6 +++--- .../icons/roadmap/FutureProofingIcon.tsx | 8 ++++---- .../icons/roadmap/StakingWithdrawalsIcon.tsx | 2 +- 9 files changed, 27 insertions(+), 29 deletions(-) diff --git a/app/[locale]/roadmap/_components/roadmap.tsx b/app/[locale]/roadmap/_components/roadmap.tsx index c74a02fcc7d..1babca82204 100644 --- a/app/[locale]/roadmap/_components/roadmap.tsx +++ b/app/[locale]/roadmap/_components/roadmap.tsx @@ -167,7 +167,7 @@ const RoadmapPage = () => { >

{item.title}

-
+
{item.icon}
diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureScheduledNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureScheduledNode.tsx index 3b73be68687..6af70b50c64 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureScheduledNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/FeatureScheduledNode.tsx @@ -78,7 +78,7 @@ const FeatureScheduledNode = ({ data }: FeatureScheduledNodeProps) => {

{data.label}

-

SCHEDULED

+

SCHEDULED

diff --git a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskScheduledNode.tsx b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskScheduledNode.tsx index fd970d96d32..1677a1e04e7 100644 --- a/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskScheduledNode.tsx +++ b/app/[locale]/roadmap/tracks/_components/CustomNodes/TaskScheduledNode.tsx @@ -78,7 +78,7 @@ const TaskScheduledNode = ({ data }: TaskScheduledNodeProps) => {

{data.label}

-

SCHEDULED

+

SCHEDULED

diff --git a/app/[locale]/roadmap/tracks/_components/tracks.tsx b/app/[locale]/roadmap/tracks/_components/tracks.tsx index 22fefb75a31..4ab17a90385 100644 --- a/app/[locale]/roadmap/tracks/_components/tracks.tsx +++ b/app/[locale]/roadmap/tracks/_components/tracks.tsx @@ -49,7 +49,6 @@ import { useTracks } from "./useTracks" import "@xyflow/react/dist/style.css" import { useActiveHash } from "@/hooks/useActiveHash" -import { useTranslation } from "@/hooks/useTranslation" type NodeData = { label?: string @@ -73,7 +72,6 @@ type NodeData = { } const RoadmapTracksPage = () => { - const { t } = useTranslation("page-roadmap-tracks") const tracks = useTracks() const [openItems, setOpenItems] = useState(() => tracks.map(({ key }) => key) @@ -206,15 +204,15 @@ const RoadmapTracksPage = () => { > zoomOut()} - className="rounded-full border border-border bg-background p-2 shadow hover:bg-background-highlight active:bg-background-highlight" + className="rounded-full !border-r-0 !bg-background-highlight p-2 !shadow-none hover:!bg-background-low active:!bg-background-low" > -

-

+

-

zoomIn()} - className="rounded-full border border-border bg-background p-2 shadow hover:bg-background-highlight active:bg-background-highlight" + className="rounded-full !border-r-0 !bg-background-highlight p-2 !shadow-none hover:!bg-background-low active:!bg-background-low" > -

+

+

+

) @@ -230,12 +228,12 @@ const RoadmapTracksPage = () => { breadcrumbs={{ slug: "roadmap/tracks", startDepth: 1 }} /> -
- {t("page-roadmap-tracks-whats-on-this-page")} +
+ View the tracks
-
-