import { field, group } from '@nuxt/content/preview' export default defineNuxtSchema({ appConfig: { ui: group({ title: 'UI', description: 'UI Customization.', icon: 'i-lucide-palette', fields: { colors: group({ title: 'Colors', description: 'Manage main colors of your application', icon: 'i-lucide-palette', fields: { primary: field({ type: 'string', title: 'Primary', description: 'Primary color of your UI.', icon: 'i-lucide-palette', default: 'green', required: ['red', 'orange', 'amber', 'yellow', 'lime', 'green', 'emerald', 'teal', 'cyan', 'sky', 'blue', 'indigo', 'violet', 'purple', 'fuchsia', 'pink', 'rose'], }), neutral: field({ type: 'string', title: 'Neutral', description: 'Neutral color of your UI.', icon: 'i-lucide-palette', default: 'slate', required: ['slate', 'gray', 'zinc', 'neutral', 'stone'], }), }, }), icons: group({ title: 'Icons', description: 'Manage icons used in the application.', icon: 'i-lucide-settings', fields: { search: field({ type: 'icon', title: 'Search Bar', description: 'Icon to display in the search bar.', icon: 'i-lucide-search', default: 'i-lucide-search', }), dark: field({ type: 'icon', title: 'Dark mode', description: 'Icon of color mode button for dark mode.', icon: 'i-lucide-moon', default: 'i-lucide-moon', }), light: field({ type: 'icon', title: 'Light mode', description: 'Icon of color mode button for light mode.', icon: 'i-lucide-sun', default: 'i-lucide-sun', }), external: field({ type: 'icon', title: 'External Link', description: 'Icon for external link.', icon: 'i-lucide-external-link', default: 'i-lucide-external-link', }), chevron: field({ type: 'icon', title: 'Chevron', description: 'Icon for chevron.', icon: 'i-lucide-chevron-down', default: 'i-lucide-chevron-down', }), hash: field({ type: 'icon', title: 'Hash', description: 'Icon for hash anchors.', icon: 'i-lucide-hash', default: 'i-lucide-hash', }), }, }), }, }), seo: group({ title: 'SEO', description: 'SEO configuration.', icon: 'i-lucide-search', fields: { title: field({ type: 'string', title: 'Title', description: 'Title to display in the header.', icon: 'i-lucide-type', default: '', }), description: field({ type: 'string', title: 'Description', description: 'Description to display in the header.', icon: 'i-lucide-type', default: '', }), }, }), header: group({ title: 'Header', description: 'Header configuration.', icon: 'i-lucide-layout', fields: { title: field({ type: 'string', title: 'Title', description: 'Title to display in the header.', icon: 'i-lucide-type', default: '', }), logo: group({ title: 'Logo', description: 'Header logo configuration.', icon: 'i-lucide-image', fields: { light: field({ type: 'media', title: 'Light Mode Logo', description: 'Pick an image from your gallery.', icon: 'i-lucide-sun', default: '', }), dark: field({ type: 'media', title: 'Dark Mode Logo', description: 'Pick an image from your gallery.', icon: 'i-lucide-moon', default: '', }), alt: field({ type: 'string', title: 'Alt', description: 'Alt to display for accessibility.', icon: 'i-lucide-text', default: '', }), wordmark: group({ title: 'Wordmark', description: 'Wordmark (text logo) configuration for brand assets.', icon: 'i-lucide-type', fields: { light: field({ type: 'media', title: 'Light Mode Wordmark', description: 'Wordmark image for light mode.', icon: 'i-lucide-sun', default: '', }), dark: field({ type: 'media', title: 'Dark Mode Wordmark', description: 'Wordmark image for dark mode.', icon: 'i-lucide-moon', default: '', }), }, }), class: field({ type: 'string', title: 'Class', description: 'Additional CSS classes to apply to the logo image.', icon: 'i-lucide-paintbrush', default: '', }), display: field({ type: 'string', title: 'Display', description: 'Which logo variant to show in the header: "logo" for the icon or "wordmark" for the full wordmark.', icon: 'i-lucide-layout', default: 'logo', }), favicon: field({ type: 'media', title: 'Favicon', description: 'Path to the favicon file for brand asset downloads.', icon: 'i-lucide-app-window', default: '/favicon.ico', }), brandAssetsUrl: field({ type: 'string', title: 'Brand Assets URL', description: 'Link to the full brand assets page (shown in the logo context menu).', icon: 'i-lucide-palette', default: '', }), }, }), }, }), navigation: group({ title: 'Navigation', description: 'Navigation configuration.', icon: 'i-lucide-navigation', fields: { sub: field({ type: 'string', title: 'Sub Navigation', description: 'Enable sub-navigation for multi-section docs. Use "header" for a secondary tab bar below the header, or "aside" for section anchors at the top of the sidebar.', icon: 'i-lucide-layout-panel-left', default: '', }), }, }), socials: field({ type: 'object', title: 'Social Networks', description: 'Social links configuration.', icon: 'i-lucide-network', default: {}, }), toc: group({ title: 'Table of contents', description: 'TOC configuration.', icon: 'i-lucide-list', fields: { title: field({ type: 'string', title: 'Title', description: 'Title of the table of contents.', icon: 'i-lucide-heading', default: 'On this page', }), bottom: group({ title: 'Bottom', description: 'Bottom section of the table of contents.', icon: 'i-lucide-list', fields: { title: field({ type: 'string', title: 'Title', description: 'Title of the bottom section.', icon: 'i-lucide-heading', default: 'Community', }), links: field({ type: 'array', title: 'Links', description: 'Links to display in the bottom section.', icon: 'i-lucide-link', default: [], }), }, }), }, }), github: group({ title: 'GitHub', description: 'GitHub configuration.', icon: 'i-simple-icons-github', fields: { url: field({ type: 'string', title: 'URL', description: 'GitHub URL.', icon: 'i-simple-icons-github', default: '', }), branch: field({ type: 'string', title: 'Branch', description: 'GitHub branch.', icon: 'i-lucide-git-branch', default: 'main', }), rootDir: field({ type: 'string', title: 'Root Directory', description: 'Root directory of the GitHub repository.', icon: 'i-lucide-folder', default: '', }), }, }), docus: group({ title: 'Docus', description: 'Docus configuration.', icon: 'i-lucide-settings', fields: { locale: field({ type: 'string', title: 'Locale', description: 'Default locale for single-language documentation.', icon: 'i-lucide-languages', default: 'en', }), colorMode: field({ type: 'string', title: 'Color Mode', description: 'Force a specific color mode. Leave empty for system preference with toggle.', icon: 'i-lucide-monitor', default: '', required: ['', 'light', 'dark'], }), shortcuts: group({ title: 'Shortcuts', description: 'Keyboard shortcuts configuration.', icon: 'i-lucide-keyboard', fields: { toggleColorMode: field({ type: 'string', title: 'Toggle Color Mode', description: 'Shortcut to toggle light and dark mode (e.g., d, meta_d). Leave empty to disable.', icon: 'i-lucide-keyboard', default: 'd', }), }, }), }, }), search: group({ title: 'Search', description: 'Search configuration.', icon: 'i-lucide-search', fields: { fts: field({ type: 'boolean', title: 'Full-Text Search', description: 'Use SQLite FTS5 full-text search instead of Fuse.js. Requires @nuxt/content v3.14+.', icon: 'i-lucide-database', default: false, }), }, }), assistant: group({ title: 'Assistant', description: 'Assistant configuration.', icon: 'i-custom-ai', fields: { floatingInput: field({ type: 'boolean', title: 'Floating Input', description: 'Show the floating input at the bottom of documentation pages.', icon: 'i-lucide-message-circle', default: true, }), explainWithAi: field({ type: 'boolean', title: 'Explain with AI', description: 'Show the "Explain with AI" button in the documentation sidebar.', icon: 'i-lucide-brain', default: true, }), faqQuestions: field({ type: 'array', title: 'FAQ Questions', description: 'List of FAQ questions. Can be an array of strings or an array of categories with questions.', icon: 'i-lucide-help-circle', default: [], }), shortcuts: group({ title: 'Shortcuts', description: 'Keyboard shortcuts configuration.', icon: 'i-lucide-keyboard', fields: { focusInput: field({ type: 'string', title: 'Focus Input', description: 'Shortcut to focus the floating input (e.g., meta_i, ctrl_k).', icon: 'i-lucide-keyboard', default: 'meta_i', }), }, }), icons: group({ title: 'Icons', description: 'Icons configuration.', icon: 'i-lucide-settings', fields: { trigger: field({ type: 'icon', title: 'Trigger', description: 'Icon for the AI chat trigger button and slideover header.', icon: 'i-lucide-sparkles', default: 'i-lucide-sparkles', }), explain: field({ type: 'icon', title: 'Explain', description: 'Icon for the "Explain with AI" button.', icon: 'i-lucide-brain', default: 'i-lucide-brain', }), }, }), }, }), }, })