Files
zeekayandHanzo Dev 954d41e603 Retire Cloud and Team as products of their own
The platform is what they were, so the menus name it once and the column
under it lists what the platform actually offers.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-07 22:57:40 -07:00

230 lines
6.7 KiB
TypeScript

import { packages, route } from './packages'
export const docsRoutes = [
// top area - always visible, no accordion
{
section: 'core',
pages: [
{ title: 'Introduction', route: '/docs/intro/introduction' },
{ title: 'Installation', route: '/docs/intro/installation' },
{ title: 'Design system', route: '/docs/intro/design-system' },
{ title: 'CLI', route: '/docs/guides/cli' },
{
title: 'Releases',
route: 'https://github.com/hanzoai/gui/releases',
},
],
},
// Configuration section
{
section: 'core',
title: 'Configuration',
pages: [
{ title: 'Configuration', route: '/docs/core/configuration' },
{ title: 'Config v5', route: '/docs/core/config-v5' },
{ title: 'Tokens', route: '/docs/core/tokens' },
{ title: 'Themes', route: '/docs/intro/themes' },
],
},
// Styling section
{
section: 'core',
title: 'Styling',
pages: [
{ title: 'Styling', route: '/docs/intro/styles' },
{ title: 'styled()', route: '/docs/core/styled' },
{ title: 'Variants', route: '/docs/core/variants' },
{ title: 'createStyledContext', route: '/docs/core/create-styled-context' },
],
},
// Components section
{
section: 'core',
title: 'Components',
pages: [
{ title: 'Props', route: '/docs/intro/props' },
{ title: 'View & Text', route: '/docs/core/view-and-text' },
{ title: 'Theme', route: '/docs/core/theme' },
{ title: 'FontLanguage', route: '/docs/core/font-language' },
],
},
// Hooks section
{
section: 'core',
title: 'Hooks',
pages: [
{ title: 'useMedia', route: '/docs/core/use-media' },
{ title: 'useTheme', route: '/docs/core/use-theme' },
],
},
// Animations section
{
title: 'Animations',
section: 'core',
pages: [
{ title: 'Overview', route: '/docs/core/animations' },
{ title: 'AnimatePresence', route: '/docs/core/animate-presence' },
{ title: 'Animation Drivers', route: '/docs/core/animation-drivers' },
],
},
// Compiler section
{
section: 'core',
title: 'Compiler',
pages: [
{ title: 'Installation', route: '/docs/intro/compiler-install' },
{ title: 'Benchmarks', route: '/docs/intro/benchmarks' },
{ title: 'Background', route: '/docs/intro/why-a-compiler' },
],
},
// Bundlers section
{
title: 'Bundlers',
section: 'core',
pages: [
{ title: 'Next.js', route: '/docs/guides/next-js' },
{ title: 'Expo', route: '/docs/guides/expo' },
{ title: 'Vite', route: '/docs/guides/vite' },
{ title: 'One', route: '/docs/guides/one' },
{ title: 'Metro', route: '/docs/guides/metro' },
],
},
// Guides section
{
title: 'Guides',
section: 'core',
pages: [
{ title: 'Upgrading from v1 to v2', route: '/docs/guides/how-to-upgrade' },
{ title: 'Custom UI Package', route: '/docs/guides/design-systems' },
{ title: 'Creating Custom Themes', route: '/docs/guides/theme-builder' },
{
title: 'How to Build a Button',
route: '/docs/guides/how-to-build-a-button',
},
{ title: 'Developing', route: '/docs/guides/developing' },
{ title: 'create-gui', route: '/docs/guides/create-gui-app' },
{ title: 'Server Rendering', route: '/docs/core/server-rendering' },
{ title: 'Extras', route: '/docs/core/exports' },
],
},
// API reference — one page per package, read from what each one ships
{
section: 'core',
title: 'API reference',
pages: [
{ title: 'How it is made', route: '/docs/intro/api-reference' },
{ title: 'Packages', route: '/api' },
...packages.map((name) => ({ title: name, route: route(name) })),
],
},
// UI:
{
section: 'ui',
// title: 'hanzogui',
pages: [
{ title: 'Install', route: '/ui/intro' },
{ title: 'Stacks', route: '/ui/stacks' },
{ title: 'Grid', route: '/ui/grid' },
{ title: 'Headings', route: '/ui/headings' },
{ title: 'Text', route: '/ui/text' },
{ title: 'Native', route: '/ui/native' },
{ title: 'Z-Index', route: '/ui/z-index' },
],
},
{
section: 'ui',
label: 'Forms',
pages: [
{ title: 'Button', route: '/ui/button' },
{ title: 'Checkbox', route: '/ui/checkbox' },
{ title: 'Form', route: '/ui/form' },
{ title: 'Input & TextArea', route: '/ui/inputs' },
{ title: 'Label', route: '/ui/label' },
{ title: 'Progress', route: '/ui/progress' },
{ title: 'RadioGroup', route: '/ui/radio-group' },
{ title: 'Select', route: '/ui/select' },
{ title: 'Slider', route: '/ui/slider' },
{ title: 'Switch', route: '/ui/switch' },
{ title: 'ToggleGroup', route: '/ui/toggle-group' },
],
},
{
section: 'ui',
label: 'Menus',
pages: [
{ title: 'Menu', route: '/ui/menu' },
{ title: 'ContextMenu', route: '/ui/context-menu' },
],
},
{
section: 'ui',
label: 'Panels',
pages: [
{ title: 'Accordion', route: '/ui/accordion' },
{ title: 'AlertDialog', route: '/ui/alert-dialog' },
{ title: 'Dialog', route: '/ui/dialog' },
{ title: 'Popover', route: '/ui/popover' },
{ title: 'Sheet', route: '/ui/sheet' },
{ title: 'Tabs', route: '/ui/tabs' },
{ title: 'Tooltip', route: '/ui/tooltip' },
{ title: 'Toast', route: '/ui/toast' },
{ title: 'Toast v2', route: '/ui/toast-2' },
],
},
{
section: 'ui',
label: 'Content',
pages: [
{ title: 'Avatar', route: '/ui/avatar' },
{ title: 'Image', route: '/ui/image' },
{ title: 'ListItem', route: '/ui/list-item' },
],
},
{
section: 'ui',
label: 'Functional',
pages: [
{ title: 'Anchor', route: '/ui/anchor' },
{ title: 'FocusScope', route: '/ui/focus-scope' },
{ title: 'Group', route: '/ui/group' },
{ title: 'HTML Elements', route: '/ui/html-elements' },
{ title: 'Portal', route: '/ui/portal' },
{ title: 'RovingFocusGroup', route: '/ui/roving-focus' },
{ title: 'ScrollView', route: '/ui/scroll-view' },
{ title: 'Unspaced', route: '/ui/unspaced' },
{ title: 'VisuallyHidden', route: '/ui/visually-hidden' },
],
},
{
label: 'Visual',
section: 'ui',
pages: [
{ title: 'LinearGradient', route: '/ui/linear-gradient' },
{ title: 'Lucide Icons', route: '/ui/lucide-icons' },
{ title: 'Separator', route: '/ui/separator' },
{ title: 'Spinner', route: '/ui/spinner' },
{ title: 'Square & Circle', route: '/ui/shapes' },
],
},
]
export const allDocsRoutes = docsRoutes.flatMap((x) => x.pages || [])
export const allNotPending = allDocsRoutes.filter((x) => !x['pending'])