mirror of
https://github.com/hanzoai/store.git
synced 2026-10-30 14:54:46 +00:00
main moved the store off GitHub Pages onto the Sites plane and added the one Hanzo telemetry client while this convergence was in flight. The two are orthogonal — deployment and styling — so main's decision is taken whole. Three files needed a hand: app/layout.tsx — keep main's <Analytics> wrapping <Providers>, keep this branch's `dark` on <html>, and keep <body> bare: `antialiased bg-background text-foreground` were Tailwind utilities, and globals.css states all three on `html, body` directly now. LLM.md — main appended "How it ships" to the document this branch had already replaced. Carried it in as its own section rather than dropping it, renumbered the rest, and folded in the telemetry note. package.json — @hanzo/event ^0.3.11 added to the converged dependency set. One thing did NOT survive contact: the CSS check ran from `postbuild`, and deploy.yml runs `npm run build`. Shipping a static export would have started downloading a browser, and would have failed outright on a runner without one. It is now `npm run css-check`, invoked by ci.yml's build job — which installs chromium for it — so building compiles and CI verifies. deploy.yml is untouched. Verified on the merged tree, cold: npm ci through the repo's own .npmrc (pkg.hanzo.ai, now serving 8.0.47) with a throwaway cache, exit 0. typecheck clean, 209 pages exported, css-check 227/227, e2e 21/21. At 390 and 1280 across home, an app record and a document: Geist and Geist Mono both loaded, body rgb(20,20,20) on rgb(255,255,255) at 18.42:1, zero serif fallbacks, no sideways scroll, and all 632 buttons at 32/36/40 with minHeight equal to the box and none clipped. Co-authored-by: Hanzo Dev <[email protected]>
35 lines
1.3 KiB
TypeScript
35 lines
1.3 KiB
TypeScript
import type { Metadata } from 'next'
|
|
import { Analytics } from '@/components/analytics'
|
|
import { Providers } from './providers'
|
|
// RainbowKit first, globals second: the store's token bindings are the ones
|
|
// that must win.
|
|
import '@rainbow-me/rainbowkit/styles.css'
|
|
import './globals.css'
|
|
|
|
export const metadata: Metadata = {
|
|
title: 'Hanzo AI Store',
|
|
description:
|
|
'Boost your AI agents with ready-to-go, tailor-made automations for seamless tech integration',
|
|
}
|
|
|
|
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
// `dark` on <html> is what the @hanzo/ui token sheet keys its dark palette
|
|
// off; `GuiProvider defaultTheme="dark"` is the same fact for the component
|
|
// layer. The store has no theme switcher and its wallet modal is dark by
|
|
// design, so the theme is stated, not negotiated.
|
|
//
|
|
// <body> carries no classes: `antialiased bg-background text-foreground` were
|
|
// Tailwind utilities, and globals.css now states all three on `html, body`
|
|
// directly. Telemetry wraps the providers so a pageview is recorded even if
|
|
// something inside them throws.
|
|
return (
|
|
<html lang="en" className="dark" suppressHydrationWarning>
|
|
<body>
|
|
<Analytics>
|
|
<Providers>{children}</Providers>
|
|
</Analytics>
|
|
</body>
|
|
</html>
|
|
)
|
|
}
|