mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
Pages from /machines to /risk, the model pages, and the kits they are made of
(page-kit, ProductLanding, LayerPage, Stack, the models kit, band's Head) mark
authored copy where it is written and draw it in the reader's language. A server
page marks a literal phrase('…') or wraps it in <T>; a client page calls t. The
kits translate a string prop through useSay (components/marketing/say), so a
page passes phrase('…') and markup passes as written. An arrow that points
turns over right to left (data-i18n-mirror).
Rebased on main: the fold-based heroes (Fold, PageHero, MachinesHero, the
product and layer pages) keep main's structure and copy, with their label,
title and lede marked phrase. /platform is main's CloudLanding; the deleted
/platform/layers and the old referral components stay deleted.
Claude-Session: https://claude.ai/code/session_015XYKLjZtDTJEnMo4eK3AFH
27 lines
878 B
TypeScript
27 lines
878 B
TypeScript
import { YStack } from '@/components/ui'
|
|
import { Eyebrow } from '@hanzo/ui/marketing'
|
|
import { PartnerLogoRow } from '@/components/shared'
|
|
import { backerLogos } from '@/lib/constants/partner-logos'
|
|
import { phrase } from '@hanzo/i18n'
|
|
import { T } from '@hanzo/i18n/react'
|
|
|
|
/**
|
|
* Who backs Hanzo: Techstars and every partner that backed it with investment
|
|
* or credits, one row (lib/constants/partner-logos.ts). The marks invert on
|
|
* the dark theme only, so they stay legible when a reader picks light.
|
|
*/
|
|
const ROWS = [{ label: phrase('Backed by'), logos: backerLogos }]
|
|
|
|
export function Trust() {
|
|
return (
|
|
<YStack gap={24}>
|
|
{ROWS.map((row) => (
|
|
<div key={row.label}>
|
|
<Eyebrow mb={16}><T>{row.label}</T></Eyebrow>
|
|
<PartnerLogoRow logos={row.logos} justify="flex-start" invert="dark" />
|
|
</div>
|
|
))}
|
|
</YStack>
|
|
)
|
|
}
|