// @ts-check
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
import sitemap from '@astrojs/sitemap';
import { fileURLToPath } from 'node:url';

// https://astro.build/config
export default defineConfig({
  site: 'https://kb.anhonesthost.com',
  vite: {
    resolve: {
      alias: {
        // `~` resolves to /src so partial imports are depth-independent:
        //   import SignIn from '~/content/partials/signing-in.mdx';
        '~': fileURLToPath(new URL('./src', import.meta.url)),
      },
    },
  },
  integrations: [
    starlight({
      title: 'AnHonestHost KB',
      description: 'Customer documentation for WHP and other AnHonestHost services.',
      components: {
        // Inline-SVG brand mark + "Knowledge Base" label.
        // Inlining lets the SVG's currentColor follow the active theme.
        SiteTitle: './src/components/SiteTitle.astro',
      },
      customCss: [
        '@fontsource-variable/inter',
        '@fontsource-variable/jetbrains-mono',
        './src/styles/anhh-tokens.css',
      ],
      editLink: {
        baseUrl: 'https://repo.anhonesthost.net/cloud-hosting-platform/kb-anhonesthost/_edit/main/',
      },
      sidebar: [
        {
          label: 'WHP',
          items: [
            {
              label: 'Getting started',
              items: [{ autogenerate: { directory: 'whp/getting-started' } }],
            },
            {
              label: 'How-to guides',
              items: [{ autogenerate: { directory: 'whp/how-to' } }],
            },
            {
              label: 'Reference',
              items: [{ autogenerate: { directory: 'whp/reference' } }],
            },
            {
              label: 'Add-ons',
              items: [{ autogenerate: { directory: 'whp/add-ons' } }],
            },
            {
              label: 'Admin',
              badge: { text: 'Draft', variant: 'caution' },
              items: [{ autogenerate: { directory: 'whp/admin' } }],
            },
          ],
        },
        // Future products only appear once they have content.
      ],
      pagefind: true,
      lastUpdated: true,
    }),
    sitemap(),
  ],
});
