-
+
)}
{entry.params && entry.params.length > 0 && (
-
-
Parameters
+
)}
{entry.returns && (
-
-
Returns
-
{entry.returns.type}
+
+
Returns
+ {entry.returns.type}
)}
{entry.properties && entry.properties.length > 0 && (
-
-
Properties
+
)}
{entry.methods && entry.methods.length > 0 && (
-
-
Methods
+
+
Methods
{entry.methods.map((m) => (
-
-
{m.signature}
- {m.description &&
{m.description}
}
+
+
{m.signature}
+ {m.description &&
{m.description}
}
{m.params && m.params.length > 0 &&
}
))}
@@ -124,10 +107,10 @@ export function ApiDocRenderer({ entry }: { entry: ApiDocEntry }) {
{entry.examples && entry.examples.length > 0 && (
-
Examples
+
Examples
{entry.examples.map((ex, i) => (
-
-
+
+
{ex.replace(/^```\w*\n?/, '').replace(/\n?```$/, '')}
diff --git a/apps/website/src/components/docs/ApiRefTable.tsx b/apps/website/src/components/docs/ApiRefTable.tsx
index 5ff3b5cef..bc2839fa4 100644
--- a/apps/website/src/components/docs/ApiRefTable.tsx
+++ b/apps/website/src/components/docs/ApiRefTable.tsx
@@ -1,5 +1,3 @@
-import { tokens } from '@threadplane/design-tokens';
-
export interface ApiEntry {
name: string;
type: string;
@@ -13,34 +11,26 @@ export function ApiRefTable({ entries }: { entries: ApiEntry[] }) {
{entries.map((entry) => (
+ className="p-6 rounded-lg api-ref-card">
+ className="font-mono font-bold text-base api-ref-name">
{entry.name}
+ className="font-mono text-xs api-ref-type">
{entry.type}
-
{entry.description}
+
{entry.description}
{entry.params && entry.params.length > 0 && (
-
+
-
+
{['Parameter', 'Type', 'Description'].map((h) => (
|
+ className="text-left py-2 font-mono uppercase api-ref-table-head">
{h}
|
))}
@@ -48,10 +38,10 @@ export function ApiRefTable({ entries }: { entries: ApiEntry[] }) {
{entry.params.map((p) => (
-
- | {p.name} |
- {p.type} |
- {p.desc} |
+
+ | {p.name} |
+ {p.type} |
+ {p.desc} |
))}
diff --git a/apps/website/src/components/docs/ArchFlowDiagram.tsx b/apps/website/src/components/docs/ArchFlowDiagram.tsx
index 4f993844b..81ff98261 100644
--- a/apps/website/src/components/docs/ArchFlowDiagram.tsx
+++ b/apps/website/src/components/docs/ArchFlowDiagram.tsx
@@ -1,6 +1,5 @@
'use client';
import { useState, useEffect, useRef } from 'react';
-import { tokens } from '@threadplane/design-tokens';
interface LogEntry {
time: string;
@@ -23,11 +22,11 @@ const SCENARIO: { delay: number; chatBubble?: { role: 'user' | 'assistant'; text
{ delay: 6000, log: { time: '2.12s', source: 'angular', message: 'Template re-rendered (OnPush) — 1 component' } },
];
-const SOURCE_COLORS: Record = {
- angular: { bg: 'rgba(221,0,49,0.08)', text: '#c62828', label: 'ANGULAR' },
- transport: { bg: 'rgba(100,80,200,0.08)', text: '#5e35b1', label: 'TRANSPORT' },
- langgraph: { bg: 'rgba(0,64,144,0.08)', text: '#004090', label: 'LANGGRAPH' },
- signal: { bg: 'rgba(16,185,129,0.08)', text: '#059669', label: 'SIGNAL' },
+const SOURCE_LABEL: Record = {
+ angular: 'ANGULAR',
+ transport: 'TRANSPORT',
+ langgraph: 'LANGGRAPH',
+ signal: 'SIGNAL',
};
export function ArchFlowDiagram() {
@@ -73,58 +72,32 @@ export function ArchFlowDiagram() {
}, [cycle]);
return (
-
+
{/* Header bar */}
-
-
-
-
-
+
+
-
injectAgent() — live architecture flow
-
localhost:4200
+
injectAgent() — live architecture flow
+
localhost:4200
-
+
{/* Left: Chat simulation */}
-
-
Chat Interface
+
+
Chat Interface
-
+
{bubbles.map((b, i) => (
-
+
{b.role === 'assistant' && (
-
AI
+
AI
)}
-
+
{b.text}
- {b.streaming && ▊}
+ {b.streaming && ▊}
))}
@@ -132,37 +105,22 @@ export function ArchFlowDiagram() {
{/* Right: Console log */}
-
-
Developer Console
+
+
Developer Console
- {logs.map((log, i) => {
- const sc = SOURCE_COLORS[log.source];
- return (
-
- {log.time}
- {sc.label}
- {log.message}
-
- );
- })}
+ {logs.map((log, i) => (
+
+ {log.time}
+ {SOURCE_LABEL[log.source]}
+ {log.message}
+
+ ))}
{logs.length === 0 && (
-
Waiting for interaction...
+
Waiting for interaction...
)}
-
-
);
}
diff --git a/apps/website/src/components/docs/CopyButton.tsx b/apps/website/src/components/docs/CopyButton.tsx
index 0c7124b18..8c70b64ef 100644
--- a/apps/website/src/components/docs/CopyButton.tsx
+++ b/apps/website/src/components/docs/CopyButton.tsx
@@ -1,6 +1,5 @@
'use client';
import { useState } from 'react';
-import { tokens } from '@threadplane/design-tokens';
import { analyticsEvents } from '../../lib/analytics/events';
import { track } from '../../lib/analytics/client';
@@ -48,21 +47,8 @@ export function CopyButton({ text }: Props) {
type="button"
onClick={handleClick}
aria-label={copied ? 'Copied' : 'Copy install command'}
- style={{
- display: 'inline-flex',
- alignItems: 'center',
- justifyContent: 'center',
- width: 28,
- height: 28,
- flex: '0 0 auto',
- padding: 0,
- border: `1px solid ${tokens.surfaces.border}`,
- borderRadius: tokens.radius.sm,
- background: tokens.surfaces.surface,
- color: copied ? tokens.colors.accent : tokens.colors.textMuted,
- cursor: 'pointer',
- transition: 'color 0.15s, border-color 0.15s, background 0.15s',
- }}
+ className="docs-copy-button"
+ data-copied={copied || undefined}
>
{copied ?
:
}
diff --git a/apps/website/src/components/docs/CopyPromptButton.tsx b/apps/website/src/components/docs/CopyPromptButton.tsx
index 4cfaf8415..31703d699 100644
--- a/apps/website/src/components/docs/CopyPromptButton.tsx
+++ b/apps/website/src/components/docs/CopyPromptButton.tsx
@@ -1,6 +1,5 @@
'use client';
import { useState } from 'react';
-import { tokens } from '@threadplane/design-tokens';
import { analyticsEvents } from '../../lib/analytics/events';
import { track } from '../../lib/analytics/client';
@@ -27,35 +26,13 @@ export function CopyPromptButton({ prompt, variant = 'docs', label }: Props) {
}
};
- const isHero = variant === 'hero';
-
return (
diff --git a/apps/website/src/components/docs/DocsBreadcrumb.tsx b/apps/website/src/components/docs/DocsBreadcrumb.tsx
index 1f7e08ee0..9c0993e24 100644
--- a/apps/website/src/components/docs/DocsBreadcrumb.tsx
+++ b/apps/website/src/components/docs/DocsBreadcrumb.tsx
@@ -1,5 +1,4 @@
import Link from 'next/link';
-import { tokens } from '@threadplane/design-tokens';
import { getLibraryConfig, libraryIntroPath, type LibraryId } from '../../lib/docs-config';
interface Props {
@@ -18,34 +17,22 @@ export function DocsBreadcrumb({ library, section, slug: _slug, title }: Props)
const libraryTitle = libConfig?.title ?? library;
const sectionTitle = libConfig?.sections.find((s) => s.id === section)?.title ?? humanize(section);
- const crumb: React.CSSProperties = {
- fontFamily: tokens.typography.fontSans,
- fontSize: 13,
- lineHeight: 1.5,
- color: tokens.colors.textMuted,
- textDecoration: 'none',
- };
- const sep: React.CSSProperties = {
- margin: '0 8px',
- color: tokens.colors.textMuted,
- };
-
return (
-