Files
hanzo.ai/components/models/guest.tsx
zeekay 11265a21fd Highlight every code sample with shiki in the code theme
Code on hanzo.ai was plain monospace: 285 blocks across 200 pages, one of
them hand-inked in four greys. components/code now renders each sample
at build with shiki and @hanzo/ui's codeTheme (Dracula dark, GitHub
Light light), every colour written as light-dark() so the page's
color-scheme picks it, on the theme's own ground. The page ships the
coloured spans and no highlighter; e2e/gates/code.spec.ts holds both.

A client page that shows code is split into a server page.tsx that owns
the sample and a client view.tsx that takes the highlighted node:
ProductLanding's code.source, the blockchain pages' codeExamples, the
models kit Sample, the guest-key card, realtime, analytics, payments,
sdks and the rest. Transcripts, agent prompts and ASCII diagrams are not
code and keep their markup.

Takes @hanzo/ui 8.27.83 for codeTheme and @hanzo/design 0.5.35 with it,
regenerates app/gui.css for the new theme keys, and lowers the raw-colour
allowance to 58: the samples' literal inks are gone.
2026-10-05 01:31:58 -07:00

21 lines
761 B
TypeScript

import { Code } from '@/components/code'
import { GuestKeyBanner } from './GuestKeyBanner'
/**
* The guest-key card, with its request highlighted where the page is built
* (components/code). A server component: the four model pages render it, and
* the card's copy control stays the client's.
*/
export function GuestKey({ model = 'zen-free', title }: { model?: string; title?: string }) {
const command = `curl https://api.hanzo.ai/v1/chat/completions \\
-H "Authorization: Bearer guest_temp_key" \\
-d '{"model": "${model}", "messages": [{"role": "user", "content": "hello"}]}'`
return (
<GuestKeyBanner
title={title}
command={command}
sample={<Code lang="bash" code={command} fontSize="$1" px={16} py={12} />}
/>
)
}