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: 'neutral', required: ['slate', 'gray', 'zinc', 'neutral', 'stone', '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: 'zinc', 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', }), }, }), }, }), },})
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: 'neutral',
required: ['slate', 'gray', 'zinc', 'neutral', 'stone', '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: 'zinc',
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',
}),
},
}),
},
}),
},
})