From 04c62332b17936f81a2b4346c8aaf22b4b9034d2 Mon Sep 17 00:00:00 2001 From: Mackie Date: Wed, 3 Jun 2026 15:48:31 +0800 Subject: [PATCH] newformat --- src/blocks/BentoRow/Component.tsx | 97 +++++++++++++++ src/blocks/BentoRow/config.ts | 50 ++++++++ src/blocks/Contact/Component.tsx | 84 +++++++++++++ src/blocks/Contact/config.ts | 37 ++++++ src/blocks/RenderBlocks.tsx | 8 ++ src/blocks/Showcase/Component.tsx | 170 +++++++++++++------------- src/blocks/StatsStrip/Component.tsx | 31 +++++ src/blocks/StatsStrip/config.ts | 19 +++ src/blocks/ToolStack/Component.tsx | 30 +++++ src/blocks/ToolStack/config.ts | 21 ++++ src/collections/Pages/index.ts | 8 ++ src/heros/RenderHero.tsx | 3 +- src/heros/SplitHero/index.tsx | 99 ++++++++++++++++ src/heros/config.ts | 68 +++++++++++ src/payload-types.ts | 177 +++++++++++++++++++++++++++- src/utilities/mergeOpenGraph.ts | 8 +- 16 files changed, 820 insertions(+), 90 deletions(-) create mode 100644 src/blocks/BentoRow/Component.tsx create mode 100644 src/blocks/BentoRow/config.ts create mode 100644 src/blocks/Contact/Component.tsx create mode 100644 src/blocks/Contact/config.ts create mode 100644 src/blocks/StatsStrip/Component.tsx create mode 100644 src/blocks/StatsStrip/config.ts create mode 100644 src/blocks/ToolStack/Component.tsx create mode 100644 src/blocks/ToolStack/config.ts create mode 100644 src/heros/SplitHero/index.tsx diff --git a/src/blocks/BentoRow/Component.tsx b/src/blocks/BentoRow/Component.tsx new file mode 100644 index 0000000..3ce1a3e --- /dev/null +++ b/src/blocks/BentoRow/Component.tsx @@ -0,0 +1,97 @@ +import React from 'react' + +type Skill = { + icon: string + title: string + tags: string +} + +type BentoRowBlockProps = { + aboutHeading?: string + aboutText?: string + aboutCta?: { label?: string; url?: string; newTab?: boolean } + skillsHeading?: string + skills?: Skill[] +} + +export function BentoRowBlock({ + aboutHeading, + aboutText, + aboutCta, + skillsHeading, + skills, +}: BentoRowBlockProps) { + return ( +
+
+ +
+
+ {aboutHeading && ( +

+ {aboutHeading} +

+ )} + {aboutText && ( +

+ {aboutText} +

+ )} +
+ {aboutCta?.label && aboutCta?.url && ( + + href={aboutCta.url} + target={aboutCta.newTab ? '_blank' : '_self'} + rel="noopener noreferrer" + className="self-start flex items-center gap-2 text-xs text-foreground/50 border border-foreground/10 rounded-lg px-4 py-2 hover:text-foreground/80 hover:bg-muted transition-colors" + > +