diff --git a/apps/docs/app/app.config.ts b/apps/docs/app/app.config.ts new file mode 100644 index 00000000..8023fece --- /dev/null +++ b/apps/docs/app/app.config.ts @@ -0,0 +1,28 @@ +export default defineAppConfig({ + docs: { + title: 'docs-please', + github: { + url: 'https://github.com/pleaseai/docs', + owner: 'pleaseai', + name: 'docs', + branch: 'main', + }, + }, + github: { + rootDir: 'apps/docs', + }, + ui: { + pageHero: { + slots: { + title: 'font-semibold sm:text-6xl', + container: '!pb-0', + }, + }, + pageCard: { + slots: { + container: 'lg:flex min-w-0', + wrapper: 'flex-none', + }, + }, + }, +}) diff --git a/apps/docs/app/components/content/ColorModeSwitch.vue b/apps/docs/app/components/content/ColorModeSwitch.vue index 01de3527..e0ccc8a8 100644 --- a/apps/docs/app/components/content/ColorModeSwitch.vue +++ b/apps/docs/app/components/content/ColorModeSwitch.vue @@ -3,28 +3,30 @@ import { SwitchRoot, SwitchThumb } from 'reka-ui' const colorMode = useColorMode() -const isLight = computed(() => colorMode.value === 'light') - -function toggleColorMode(checked: boolean) { - colorMode.preference = checked ? 'light' : 'dark' -} +// Single computed with getter/setter for clean two-way binding +const isLight = computed({ + get: () => colorMode.value === 'light', + set: (value: boolean) => { + colorMode.preference = value ? 'light' : 'dark' + }, +}) diff --git a/packages/layer/nuxt.config.ts b/packages/layer/nuxt.config.ts index 0f003119..28ee7c19 100644 --- a/packages/layer/nuxt.config.ts +++ b/packages/layer/nuxt.config.ts @@ -61,6 +61,7 @@ export default defineNuxtConfig({ 'tabs': 'Tabs', 'tabs-item': 'TabsItem', 'u-color-mode-image': 'UColorModeImage', + 'kbd': 'ProseKbd', }, }, }, diff --git a/packages/layer/nuxt.schema.ts b/packages/layer/nuxt.schema.ts index 5084de31..c8b19dec 100644 --- a/packages/layer/nuxt.schema.ts +++ b/packages/layer/nuxt.schema.ts @@ -29,6 +29,50 @@ export default defineNuxtSchema({ type: 'string', }, }, + header: { + $schema: { + title: 'Header Configuration', + description: 'Header configuration options', + }, + title: { + $default: '', + $schema: { + title: 'Header Title', + description: 'Title displayed in the header (defaults to site title)', + type: 'string', + }, + }, + logo: { + $schema: { + title: 'Logo Configuration', + description: 'Logo images for light and dark modes', + }, + light: { + $default: '', + $schema: { + title: 'Light Mode Logo', + description: 'Logo image for light mode', + type: 'string', + }, + }, + dark: { + $default: '', + $schema: { + title: 'Dark Mode Logo', + description: 'Logo image for dark mode', + type: 'string', + }, + }, + alt: { + $default: '', + $schema: { + title: 'Logo Alt Text', + description: 'Alt text for the logo image', + type: 'string', + }, + }, + }, + }, github: { $schema: { title: 'GitHub Configuration', diff --git a/packages/layer/package.json b/packages/layer/package.json index 27cd09a6..fb700980 100644 --- a/packages/layer/package.json +++ b/packages/layer/package.json @@ -42,12 +42,14 @@ "@nuxtjs/mdc": "^0.18.4", "@tabler/icons-vue": "^3.35.0", "@vueuse/core": "^14.1.0", + "@vueuse/integrations": "^14.1.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "debug": "^4.4.1", "defu": "^6.1.4", "eslint": "^9.39.1", "exsolve": "^1.0.8", + "fuse.js": "^7.1.0", "lucide-vue-next": "^0.555.0", "nuxt-og-image": "^5.1.12", "oxc-parser": "^0.99.0",