From 3bd6d26759ba9f27962ffcbe52fc3605bebe73a4 Mon Sep 17 00:00:00 2001 From: Brian Love Date: Sat, 11 Apr 2026 10:22:24 -0700 Subject: [PATCH] =?UTF-8?q?fix(website):=20landing=20page=20polish=20?= =?UTF-8?q?=E2=80=94=20code=20padding,=20SDK=20comparison,=20embed=20frame?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Code blocks: reduce Shiki padding from 1.5rem to 16px/20px 2. Angular "Without" section: compare against @langchain/langgraph-sdk (generic JS SDK), not a nonexistent "Angular SDK". Updated pain points, headline, and comparison table to reflect reality (raw Client, manual BehaviorSubject→Signal wiring, React parity via agent()) 3. Embed frames: new EmbedFrame component with fullscreen expand button, mobile full-width via negative margins, 400px height 4. Replaced raw iframes in all 3 FeaturesGrid components Co-Authored-By: Claude Opus 4.6 --- .../src/components/landing/EmbedFrame.tsx | 109 ++++++++++++++++++ .../components/landing/HighlightedCode.tsx | 2 +- .../landing/angular/AngularComparison.tsx | 22 ++-- .../landing/angular/AngularFeaturesGrid.tsx | 15 +-- .../angular/AngularProblemSolution.tsx | 14 +-- .../chat-landing/ChatLandingFeaturesGrid.tsx | 15 +-- .../landing/render/RenderFeaturesGrid.tsx | 15 +-- 7 files changed, 146 insertions(+), 46 deletions(-) create mode 100644 apps/website/src/components/landing/EmbedFrame.tsx diff --git a/apps/website/src/components/landing/EmbedFrame.tsx b/apps/website/src/components/landing/EmbedFrame.tsx new file mode 100644 index 000000000..f0100d4ec --- /dev/null +++ b/apps/website/src/components/landing/EmbedFrame.tsx @@ -0,0 +1,109 @@ +'use client'; +import { useState } from 'react'; +import { tokens } from '@cacheplane/design-tokens'; + +interface EmbedFrameProps { + src: string; + title: string; + height?: number; +} + +function ExpandIcon() { + return ( + + + + ); +} + +function CloseIcon() { + return ( + + + + ); +} + +export function EmbedFrame({ src, title, height = 400 }: EmbedFrameProps) { + const [fullscreen, setFullscreen] = useState(false); + + if (fullscreen) { + return ( +
+
+ + {title} + + +
+