From 6efc737df19e847ab8467e82fe3a38bea4e17ff5 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Thu, 11 Jun 2026 14:45:41 -0700 Subject: [PATCH 1/2] New homepage editor Co-authored-by: Cursor --- .../(diffs)/_components/WorkerPoolContext.tsx | 1 + .../app/(diffs)/_home/AgentDemoSection.tsx | 37 ++ apps/docs/app/(diffs)/_home/AgentUi.tsx | 382 ++++++++++++++++++ apps/docs/app/(diffs)/_home/Home.tsx | 29 ++ apps/docs/app/(diffs)/_home/agent-ui.css | 274 +++++++++++++ .../app/(diffs)/_home/mockData.generated.ts | 74 ++++ apps/docs/app/(diffs)/_home/mockData.ts | 70 ++++ apps/docs/components/Hero.tsx | 2 +- apps/docs/lib/product-config.ts | 4 +- apps/docs/scripts/generate-aui-mock-data.ts | 138 +++++++ packages/trees/src/model/publicTypes.ts | 11 + packages/trees/src/render/FileTreeView.tsx | 11 + 12 files changed, 1030 insertions(+), 3 deletions(-) create mode 100644 apps/docs/app/(diffs)/_home/AgentDemoSection.tsx create mode 100644 apps/docs/app/(diffs)/_home/AgentUi.tsx create mode 100644 apps/docs/app/(diffs)/_home/agent-ui.css create mode 100644 apps/docs/app/(diffs)/_home/mockData.generated.ts create mode 100644 apps/docs/app/(diffs)/_home/mockData.ts create mode 100644 apps/docs/scripts/generate-aui-mock-data.ts diff --git a/apps/docs/app/(diffs)/_components/WorkerPoolContext.tsx b/apps/docs/app/(diffs)/_components/WorkerPoolContext.tsx index e71160e44..16bb6445f 100644 --- a/apps/docs/app/(diffs)/_components/WorkerPoolContext.tsx +++ b/apps/docs/app/(diffs)/_components/WorkerPoolContext.tsx @@ -60,6 +60,7 @@ const HighlighterOptions: WorkerInitializationRenderOptions = { 'cpp', 'css', 'go', + 'markdown', 'python', 'rust', 'sh', diff --git a/apps/docs/app/(diffs)/_home/AgentDemoSection.tsx b/apps/docs/app/(diffs)/_home/AgentDemoSection.tsx new file mode 100644 index 000000000..d4f8c26b3 --- /dev/null +++ b/apps/docs/app/(diffs)/_home/AgentDemoSection.tsx @@ -0,0 +1,37 @@ +import { AgentUi } from './AgentUi'; +import { FeatureHeader } from '@/components/FeatureHeader'; + +interface AgentDemoSectionProps { + // Server-rendered, already-highlighted diff HTML keyed by file path. Built in + // Home.tsx so the embedded card paints highlighted on first load and hydrates + // without an SSR/client mismatch. + prerenderedDiffs: Record; +} + +// Homepage embed of the agent-review surface: a single-file, diff-only card. +// Always dark (the snapshot is prerendered dark and matching it avoids theme +// flashing), so there's no light/dark toggle. It reuses the homepage's shared +// worker pool for highlighting. +export function AgentDemoSection({ prerenderedDiffs }: AgentDemoSectionProps) { + return ( +
+ + Enable edit mode in any File or FileDiff{' '} + component with the EditorProvider. Includes support for + selection management, auto-indention, undo history, find-in-file, + lint markers, and more. Pairs nicely with @pierre/trees{' '} + for AUI style + experiences. + + } + /> + + +
+ ); +} diff --git a/apps/docs/app/(diffs)/_home/AgentUi.tsx b/apps/docs/app/(diffs)/_home/AgentUi.tsx new file mode 100644 index 000000000..581a47aac --- /dev/null +++ b/apps/docs/app/(diffs)/_home/AgentUi.tsx @@ -0,0 +1,382 @@ +'use client'; + +import { DEFAULT_THEMES } from '@pierre/diffs'; +import { Editor } from '@pierre/diffs/editor'; +import { EditorProvider, FileDiff } from '@pierre/diffs/react'; +import { IconArrow, IconChevronSm, IconSparkle } from '@pierre/icons'; +import { FileTree, type FileTreeRowDecoration } from '@pierre/trees'; +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; + +import './agent-ui.css'; +import { + AUI_SESSIONS, + type AuiChangedFile, + type AuiSession, + getFileDiff, + getSessionDirectoryPaths, + getSessionGitStatus, + getSessionPaths, +} from './mockData'; + +// The editor's stylesheet flattens every line number to one neutral colour +// (`--diffs-editor-line-number-fg`) and is injected as an unlayered