mirror of
https://github.com/zoo-apps/ZIPs.git
synced 2026-10-30 14:57:22 +00:00
81 lines
2.9 KiB
TypeScript
81 lines
2.9 KiB
TypeScript
import './global.css';
|
|
import { RootProvider } from '@hanzo/docs/ui/provider/base';
|
|
import { NextProvider } from '@hanzo/docs/core/framework/next';
|
|
import type { ReactNode } from 'react';
|
|
import { SearchDialog } from '@/components/search-dialog';
|
|
|
|
export const metadata = {
|
|
title: {
|
|
default: 'Zoo Improvement Proposals (ZIPs) - Decentralized AI & Conservation Standards',
|
|
template: '%s | ZIPs',
|
|
},
|
|
description: 'Standards and improvement proposals for the Zoo ecosystem - community-driven governance for decentralized AI, wildlife conservation, and open science.',
|
|
keywords: ['Zoo', 'ZIPs', 'proposals', 'governance', 'AI', 'DeFi', 'NFT', 'conservation', 'DeSci'],
|
|
authors: [{ name: 'Zoo Labs Foundation' }],
|
|
metadataBase: new URL('https://zips.zoo.ngo'),
|
|
openGraph: {
|
|
title: 'Zoo Improvement Proposals (ZIPs) - Decentralized AI & Conservation Standards',
|
|
description: 'Explore the technical foundations of the Zoo ecosystem - standards for decentralized AI, wildlife conservation, open science, and community governance.',
|
|
type: 'website',
|
|
siteName: 'Zoo Improvement Proposals',
|
|
images: [
|
|
{
|
|
url: '/og.png',
|
|
width: 1200,
|
|
height: 630,
|
|
alt: 'Zoo Improvement Proposals - Decentralized AI & Conservation Standards',
|
|
},
|
|
],
|
|
},
|
|
twitter: {
|
|
card: 'summary_large_image',
|
|
title: 'Zoo Improvement Proposals (ZIPs) - Decentralized AI & Conservation Standards',
|
|
description: 'Standards for the Zoo ecosystem - decentralized AI, conservation, DeFi, and more.',
|
|
images: ['/twitter.png'],
|
|
},
|
|
};
|
|
|
|
export default function Layout({ children }: { children: ReactNode }) {
|
|
return (
|
|
<html lang="en" suppressHydrationWarning>
|
|
<head>
|
|
{/* Prevent flash - respect system preference or stored preference */}
|
|
<script
|
|
dangerouslySetInnerHTML={{
|
|
__html: `
|
|
(function() {
|
|
const stored = localStorage.getItem('zoo-zips-theme');
|
|
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
if (stored === 'dark' || (stored !== 'light' && prefersDark)) {
|
|
document.documentElement.classList.add('dark');
|
|
} else {
|
|
document.documentElement.classList.remove('dark');
|
|
}
|
|
})();
|
|
`,
|
|
}}
|
|
/>
|
|
</head>
|
|
<body className="min-h-svh bg-background font-sans antialiased">
|
|
<NextProvider>
|
|
<RootProvider
|
|
search={{
|
|
enabled: false,
|
|
}}
|
|
theme={{
|
|
enabled: true,
|
|
defaultTheme: 'system',
|
|
storageKey: 'zoo-zips-theme',
|
|
}}
|
|
>
|
|
<SearchDialog />
|
|
<div className="relative flex min-h-svh flex-col bg-background">
|
|
{children}
|
|
</div>
|
|
</RootProvider>
|
|
</NextProvider>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|