@next-library/theme 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +44 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +0 -2
- package/dist/client.js.map +1 -1
- package/dist/components/layout/documentation-layout.d.ts +10 -0
- package/dist/components/layout/documentation-layout.d.ts.map +1 -0
- package/dist/components/layout/footer.d.ts +14 -0
- package/dist/components/layout/footer.d.ts.map +1 -0
- package/dist/components/layout/left-sidebar.d.ts +8 -0
- package/dist/components/layout/left-sidebar.d.ts.map +1 -0
- package/dist/components/layout/navigation-bar.d.ts +11 -0
- package/dist/components/layout/navigation-bar.d.ts.map +1 -0
- package/dist/components/layout/right-sidebar.d.ts +8 -0
- package/dist/components/layout/right-sidebar.d.ts.map +1 -0
- package/dist/components/layout/utils.d.ts +3 -0
- package/dist/components/layout/utils.d.ts.map +1 -0
- package/dist/components/markdown/copy-page-button.d.ts +22 -0
- package/dist/components/markdown/copy-page-button.d.ts.map +1 -0
- package/dist/components/markdown/fallback-locale-warning.d.ts +16 -0
- package/dist/components/markdown/fallback-locale-warning.d.ts.map +1 -0
- package/dist/components/markdown/markdown-renderer.d.ts +7 -0
- package/dist/components/markdown/markdown-renderer.d.ts.map +1 -0
- package/dist/components/markdown/page-header.d.ts +18 -0
- package/dist/components/markdown/page-header.d.ts.map +1 -0
- package/dist/components/navigation/main/breadcrumbs.d.ts +9 -0
- package/dist/components/navigation/main/breadcrumbs.d.ts.map +1 -0
- package/dist/components/navigation/main/folder-cards.d.ts +7 -0
- package/dist/components/navigation/main/folder-cards.d.ts.map +1 -0
- package/dist/components/navigation/navbar/banner.d.ts +9 -0
- package/dist/components/navigation/navbar/banner.d.ts.map +1 -0
- package/dist/components/navigation/navbar/github-link.d.ts +8 -0
- package/dist/components/navigation/navbar/github-link.d.ts.map +1 -0
- package/dist/components/navigation/navbar/github-star.d.ts +6 -0
- package/dist/components/navigation/navbar/github-star.d.ts.map +1 -0
- package/dist/components/navigation/navbar/language-switcher.d.ts +12 -0
- package/dist/components/navigation/navbar/language-switcher.d.ts.map +1 -0
- package/dist/components/navigation/navbar/logo.d.ts +9 -0
- package/dist/components/navigation/navbar/logo.d.ts.map +1 -0
- package/dist/components/navigation/navbar/mobile-menu.d.ts +12 -0
- package/dist/components/navigation/navbar/mobile-menu.d.ts.map +1 -0
- package/dist/components/navigation/navbar/search-bar.d.ts +8 -0
- package/dist/components/navigation/navbar/search-bar.d.ts.map +1 -0
- package/dist/components/navigation/navbar/theme-switcher.d.ts +2 -0
- package/dist/components/navigation/navbar/theme-switcher.d.ts.map +1 -0
- package/dist/components/navigation/navbar/top-categories.d.ts +12 -0
- package/dist/components/navigation/navbar/top-categories.d.ts.map +1 -0
- package/dist/components/navigation/sidebar-left/level-elevator.d.ts +7 -0
- package/dist/components/navigation/sidebar-left/level-elevator.d.ts.map +1 -0
- package/dist/components/navigation/sidebar-left/parent.d.ts +9 -0
- package/dist/components/navigation/sidebar-left/parent.d.ts.map +1 -0
- package/dist/components/navigation/sidebar-left/sidebar.d.ts +13 -0
- package/dist/components/navigation/sidebar-left/sidebar.d.ts.map +1 -0
- package/dist/components/navigation/sidebar-left/toolbox.d.ts +23 -0
- package/dist/components/navigation/sidebar-left/toolbox.d.ts.map +1 -0
- package/dist/components/navigation/sidebar-right/github-contributors.d.ts +19 -0
- package/dist/components/navigation/sidebar-right/github-contributors.d.ts.map +1 -0
- package/dist/components/navigation/sidebar-right/table-of-contents.d.ts +12 -0
- package/dist/components/navigation/sidebar-right/table-of-contents.d.ts.map +1 -0
- package/dist/components/seo/structured-data.d.ts +10 -0
- package/dist/components/seo/structured-data.d.ts.map +1 -0
- package/dist/components/tracking/cookie-banner.d.ts +17 -0
- package/dist/components/tracking/cookie-banner.d.ts.map +1 -0
- package/dist/components/ui/anchor-link-handler.d.ts +7 -0
- package/dist/components/ui/anchor-link-handler.d.ts.map +1 -0
- package/dist/components/ui/avatar.d.ts +7 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb-toggle.d.ts +11 -0
- package/dist/components/ui/breadcrumb-toggle.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +12 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/card.d.ts +9 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/collapsible.d.ts +7 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/drawer.d.ts +14 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +26 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/select.d.ts +16 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/separator.d.ts +5 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/sheet.d.ts +14 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sidebar.d.ts +70 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -0
- package/dist/components/ui/skeleton.d.ts +4 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/sticky-banner.d.ts +12 -0
- package/dist/components/ui/sticky-banner.d.ts.map +1 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/hooks/use-media-query.d.ts +2 -0
- package/dist/hooks/use-media-query.d.ts.map +1 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/translations/hooks.d.ts +14 -0
- package/dist/lib/translations/hooks.d.ts.map +1 -0
- package/dist/lib/translations/index.d.ts +55 -0
- package/dist/lib/translations/index.d.ts.map +1 -0
- package/dist/lib/translations/locale-names.d.ts +10 -0
- package/dist/lib/translations/locale-names.d.ts.map +1 -0
- package/dist/server.d.ts +15 -0
- package/dist/server.d.ts.map +1 -0
- package/package.json +4 -4
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/layout/navigation-bar.tsx","../src/components/layout/footer.tsx","../src/components/layout/documentation-layout.tsx","../src/lib/translations/index.ts","../src/components/navigation/sidebar-left/parent.tsx","../src/components/layout/utils.ts","../src/components/navigation/sidebar-left/level-elevator.tsx","../src/components/navigation/sidebar-left/toolbox.tsx","../src/components/layout/left-sidebar.tsx","../src/components/layout/right-sidebar.tsx","../src/components/markdown/page-header.tsx","../src/lib/translations/locale-names.ts","../src/components/markdown/fallback-locale-warning.tsx","../src/components/seo/structured-data.tsx","../src/components/ui/sticky-banner.tsx","../src/components/navigation/navbar/banner.tsx","../src/components/navigation/navbar/logo.tsx","../src/components/navigation/navbar/top-categories.tsx","../src/components/ui/input.tsx","../src/components/navigation/navbar/search-bar.tsx","../src/components/navigation/navbar/theme-switcher.tsx","../src/components/ui/button.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/navigation/navbar/language-switcher.tsx","../src/components/ui/drawer.tsx","../src/hooks/use-mobile.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/components/ui/sidebar.tsx","../src/components/ui/collapsible.tsx","../src/components/navigation/sidebar-left/sidebar.tsx","../src/components/navigation/navbar/mobile-menu.tsx","../src/components/navigation/navbar/github-star.tsx","../src/components/navigation/navbar/github-link.tsx","../src/components/navigation/sidebar-right/table-of-contents.tsx","../src/components/ui/avatar.tsx","../src/components/navigation/sidebar-right/github-contributors.tsx","../src/components/ui/breadcrumb.tsx","../src/hooks/use-media-query.tsx","../src/components/ui/breadcrumb-toggle.tsx","../src/components/navigation/main/breadcrumbs.tsx","../src/components/ui/card.tsx","../src/components/navigation/main/folder-cards.tsx","../src/components/markdown/markdown-renderer.tsx","../src/components/markdown/copy-page-button.tsx","../src/components/tracking/cookie-banner.tsx","../src/components/ui/select.tsx","../src/components/ui/anchor-link-handler.tsx"],"names":["jsx","jsxs","React","Link","getDirection","getConfig","translations","Fragment","Banner","Logo","Image","TopCategories","SearchBar","useState","ThemeSwitcher","React6","LanguageSwitcher","DrawerPrimitive","React7","Separator","open","Slot","cva","CollapsibleTrigger","CollapsibleContent","SidebarNavigation","ChevronRight","MobileMenu","GithubStar","useEffect","GithubLink","TableOfContents","GithubContributors","React10","React11","useCallback","Home","React12","React13","CopyPageButton","ExternalLinkIcon","CookieBanner","ChevronDownIcon","CheckIcon"],"mappings":"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","file":"index.js","sourcesContent":["import React, { Suspense } from 'react';\nimport {\n Logo,\n TopCategories,\n ThemeSwitcher,\n LanguageSwitcher,\n GithubStar,\n GithubLink,\n SearchBar,\n MobileMenu,\n} from '@next-library/theme/client';\nimport { getTopCategories, getDirection, getSupportedLocales, getConfig, getLocaleConfig, type Locale } from '@next-library/core';\nimport type { PageData } from '@next-library/core';\n\ninterface NavigationBarProps {\n language?: Locale;\n className?: string;\n pageData?: PageData;\n websiteTitle?: string;\n}\n\nexport function NavigationBar({\n language = 'en',\n className = '',\n pageData,\n websiteTitle\n}: NavigationBarProps) {\n const categories = getTopCategories(language);\n const direction = getDirection(language);\n // Get available locales from content tree (server-side only)\n const availableLocales = typeof window === 'undefined' ? getSupportedLocales() : [];\n // Get locale configs for display names (server-side only)\n const localeConfigs = typeof window === 'undefined'\n ? availableLocales.map(locale => ({\n code: locale,\n nativeName: getLocaleConfig(locale)?.nativeName || locale.toUpperCase(),\n }))\n : undefined;\n\n // Get GitHub repo URL from config (server-side only)\n let repoUrl: string | undefined;\n if (typeof window === 'undefined') {\n try {\n const config = getConfig();\n if (config?.github?.user && config?.github?.repo) {\n repoUrl = `https://github.com/${config.github.user}/${config.github.repo}`;\n }\n } catch {\n // Config not available, try environment variables as fallback\n }\n\n // Fallback to environment variables if config is not available\n if (!repoUrl) {\n const githubUser = process.env.NEXT_PUBLIC_GITHUB_USER?.trim().replace(/^['\"]|['\"]$/g, '');\n const githubRepo = process.env.NEXT_PUBLIC_GITHUB_REPO?.trim().replace(/^['\"]|['\"]$/g, '');\n if (githubUser && githubRepo) {\n repoUrl = `https://github.com/${githubUser}/${githubRepo}`;\n }\n }\n }\n\n return (\n <nav\n className={`py-3 sticky top-0 z-10 bg-background lg:w-[95vw] px-4 lg:px-0 lg:mx-auto ${className}`}\n role=\"navigation\"\n aria-label=\"Main navigation\"\n dir={direction}\n >\n <div className=\"flex items-center justify-between\">\n <Logo language={language} title={websiteTitle} />\n\n <div className=\"flex items-center gap-2 md:gap-3\">\n <div>\n <TopCategories categories={categories} />\n </div>\n <Suspense fallback={<div className=\"w-[200px] h-[40px]\"></div>}>\n <SearchBar language={language} />\n </Suspense>\n <GithubLink language={language} repoUrl={repoUrl} />\n <ThemeSwitcher />\n <LanguageSwitcher availableLocales={availableLocales} localeConfigs={localeConfigs} />\n <MobileMenu pageData={pageData} />\n <div className=\"h-5 m-auto mx-1 hidden md:flex\">\n <GithubStar repoUrl={repoUrl} />\n </div>\n </div>\n </div>\n </nav>\n );\n}\n\n","import Link from 'next/link';\nimport React from 'react';\nimport Image from 'next/image';\n\ninterface DocumentationFooterProps {\n organizationName?: string;\n organizationLogo?: string;\n buildByText?: string;\n buildByLinks?: Array<{\n name: string;\n url: string;\n logo?: string;\n }>;\n}\n\nexport function DocumentationFooter({ \n organizationName,\n organizationLogo,\n buildByText = 'Build by:',\n buildByLinks = []\n}: DocumentationFooterProps) {\n return (\n <footer className=\"border-t h-16\">\n <div className=\"flex items-center sm:justify-between justify-center sm:gap-0 gap-4 h-full text-muted-foreground text-sm flex-wrap sm:py-0 py-3 max-sm:px-4 w-[95vw] mx-auto\">\n <div className=\"flex flex-row xitems-center gap-2\">\n <p className=\"text-center\">{buildByText}</p>\n {buildByLinks.map((link, index) => (\n <React.Fragment key={link.url}>\n {link.logo && (\n <Image\n className=\"h-4 w-auto ml-1\"\n src={link.logo}\n alt={`${link.name} logo`}\n width={20}\n height={20}\n />\n )}\n <Link className=\"underline underline-offset-2\" href={link.url}>\n {link.name}\n </Link>\n {index < buildByLinks.length - 1 && <p>&</p>}\n </React.Fragment>\n ))}\n </div>\n\n <div className=\"gap-4 items-center hidden md:flex\">\n <FooterButtons />\n </div>\n </div>\n </footer>\n );\n}\n\nexport function FooterButtons() {\n return <></>;\n}\n\n","import React from 'react';\nimport { NavigationBar } from './navigation-bar';\nimport { DocumentationFooter } from './footer';\nimport { Banner, CookieBanner } from '@next-library/theme/client';\nimport { getDirection, getConfig, type Locale } from '@next-library/core';\n\nexport interface DocumentationLayoutProps {\n children: React.ReactNode;\n language?: Locale;\n bannerMessage?: React.ReactNode | null;\n websiteTitle?: string | undefined;\n}\n\nexport function DocumentationLayout(props: DocumentationLayoutProps) {\n const { \n children, \n language = 'en',\n bannerMessage = null,\n websiteTitle = undefined\n } = props;\n const direction = getDirection(language);\n \n // Get website title from config if not provided\n let title = websiteTitle;\n if (!title && typeof window === 'undefined') {\n try {\n const config = getConfig();\n title = config?.website?.title;\n } catch {\n // Config not available\n }\n }\n \n // Fallback to environment variable\n if (!title && typeof window === 'undefined') {\n title = process.env.NEXT_PUBLIC_WEBSITE_TITLE?.trim().replace(/^['\"]|['\"]$/g, '');\n }\n\n return (\n <div className=\"bg-background flex flex-col\" dir={direction}>\n {bannerMessage && (\n <Banner language={language}>\n {bannerMessage}\n </Banner>\n )}\n <NavigationBar language={language} className=\"hidden lg:block\" websiteTitle={title} />\n {children}\n <DocumentationFooter />\n <CookieBanner locale={language} />\n </div>\n );\n}\n\n","/**\n * Translation system for theme components\n * \n * This module provides translations for all user-facing text in theme components.\n * Components can use these translations based on the locale prop.\n */\n\nimport type { Locale } from '@next-library/core';\n\n/**\n * Translation keys for all theme components\n */\nexport interface ThemeTranslations {\n // CopyPageButton\n copyPage: string;\n copied: string;\n openInChatGPT: string;\n openInClaude: string;\n askAboutThisPage: string;\n copyPageDescription: string;\n askQuestionsDescription: string;\n chatGPTPrefix: string;\n \n // TableOfContents\n tableOfContents: string;\n \n // GithubContributors\n contributors: string;\n \n // Toolbox\n goToDocsHome: string;\n goBackTo: string;\n goToPreviousPage: string;\n goToNextPage: string;\n noPreviousPage: string;\n noNextPage: string;\n \n // CookieBanner\n cookieConsent: string;\n cookieDescription: string;\n cookieLearnMore: string;\n accept: string;\n decline: string;\n \n // Breadcrumbs\n goToHomePage: string;\n \n // Parent\n home: string;\n \n // AnchorLinkHandler\n linkCopied: string;\n copyLinkToSection: string;\n \n // SearchBar\n search: string;\n searchPlaceholder: string;\n \n // StickyBanner\n closeBanner: string;\n \n // FallbackLocaleWarning\n fallbackLocaleWarning?: string;\n}\n\n/**\n * English translations (default)\n */\nconst en: ThemeTranslations = {\n copyPage: 'Copy page',\n copied: 'Copied!',\n openInChatGPT: 'Open in ChatGPT',\n openInClaude: 'Open in Claude',\n askAboutThisPage: 'Ask about this page in ChatGPT',\n copyPageDescription: 'Copy page as Markdown for LLMs',\n askQuestionsDescription: 'Ask questions about this page',\n chatGPTPrefix: 'This page came from',\n tableOfContents: 'Table of Contents',\n contributors: 'Contributors',\n goToDocsHome: 'Go to docs home',\n goBackTo: 'Go back to',\n goToPreviousPage: 'Go to previous page',\n goToNextPage: 'Go to next page',\n noPreviousPage: 'No previous page',\n noNextPage: 'No next page',\n cookieConsent: 'Cookie Consent',\n cookieDescription: 'We use cookies to enhance your experience.',\n cookieLearnMore: 'Learn more',\n accept: 'Accept',\n decline: 'Decline',\n goToHomePage: 'Go to home page',\n home: 'Home',\n linkCopied: 'Link copied!',\n copyLinkToSection: 'Copy link to section',\n search: 'Search',\n searchPlaceholder: 'Search',\n closeBanner: 'Close banner',\n fallbackLocaleWarning: \"This content is shown in {fallbackLocaleName} as it's not available in {requestedLocaleName}.\",\n};\n\n/**\n * French translations\n */\nconst fr: ThemeTranslations = {\n copyPage: 'Copier la page',\n copied: 'Copié !',\n openInChatGPT: 'Ouvrir dans ChatGPT',\n openInClaude: 'Ouvrir dans Claude',\n askAboutThisPage: 'Poser une question sur cette page dans ChatGPT',\n copyPageDescription: 'Copier la page au format Markdown pour les LLM',\n askQuestionsDescription: 'Poser des questions sur cette page',\n chatGPTPrefix: 'Cette page provient de',\n tableOfContents: 'Table des matières',\n contributors: 'Contributeurs',\n goToDocsHome: 'Aller à l\\'accueil de la documentation',\n goBackTo: 'Retour à',\n goToPreviousPage: 'Page précédente',\n goToNextPage: 'Page suivante',\n noPreviousPage: 'Aucune page précédente',\n noNextPage: 'Aucune page suivante',\n cookieConsent: 'Consentement aux cookies',\n cookieDescription: 'Nous utilisons des cookies pour améliorer votre expérience.',\n cookieLearnMore: 'En savoir plus',\n accept: 'Accepter',\n decline: 'Refuser',\n goToHomePage: 'Aller à la page d\\'accueil',\n home: 'Accueil',\n linkCopied: 'Lien copié !',\n copyLinkToSection: 'Copier le lien vers la section',\n search: 'Rechercher',\n searchPlaceholder: 'Rechercher',\n closeBanner: 'Fermer la bannière',\n fallbackLocaleWarning: \"Ce contenu est affiché en {fallbackLocaleName} car il n'est pas disponible en {requestedLocaleName}.\",\n};\n\n/**\n * German translations\n */\nconst de: ThemeTranslations = {\n copyPage: 'Seite kopieren',\n copied: 'Kopiert!',\n openInChatGPT: 'In ChatGPT öffnen',\n openInClaude: 'In Claude öffnen',\n askAboutThisPage: 'Fragen Sie ChatGPT zu dieser Seite',\n copyPageDescription: 'Seite als Markdown für LLMs kopieren',\n askQuestionsDescription: 'Fragen zu dieser Seite stellen',\n chatGPTPrefix: 'Diese Seite stammt von',\n tableOfContents: 'Inhaltsverzeichnis',\n contributors: 'Mitwirkende',\n goToDocsHome: 'Zur Dokumentations-Startseite',\n goBackTo: 'Zurück zu',\n goToPreviousPage: 'Vorherige Seite',\n goToNextPage: 'Nächste Seite',\n noPreviousPage: 'Keine vorherige Seite',\n noNextPage: 'Keine nächste Seite',\n cookieConsent: 'Cookie-Zustimmung',\n cookieDescription: 'Wir verwenden Cookies, um Ihr Erlebnis zu verbessern.',\n cookieLearnMore: 'Mehr erfahren',\n accept: 'Akzeptieren',\n decline: 'Ablehnen',\n goToHomePage: 'Zur Startseite',\n home: 'Startseite',\n linkCopied: 'Link kopiert!',\n copyLinkToSection: 'Link zum Abschnitt kopieren',\n search: 'Suchen',\n searchPlaceholder: 'Suchen',\n closeBanner: 'Banner schließen',\n fallbackLocaleWarning: 'Dieser Inhalt wird in {fallbackLocaleName} angezeigt, da er in {requestedLocaleName} nicht verfügbar ist.',\n};\n\n/**\n * Spanish translations\n */\nconst es: ThemeTranslations = {\n copyPage: 'Copiar página',\n copied: '¡Copiado!',\n openInChatGPT: 'Abrir en ChatGPT',\n openInClaude: 'Abrir en Claude',\n askAboutThisPage: 'Preguntar sobre esta página en ChatGPT',\n copyPageDescription: 'Copiar página como Markdown para LLMs',\n askQuestionsDescription: 'Hacer preguntas sobre esta página',\n chatGPTPrefix: 'Esta página proviene de',\n tableOfContents: 'Tabla de contenidos',\n contributors: 'Colaboradores',\n goToDocsHome: 'Ir al inicio de la documentación',\n goBackTo: 'Volver a',\n goToPreviousPage: 'Página anterior',\n goToNextPage: 'Página siguiente',\n noPreviousPage: 'No hay página anterior',\n noNextPage: 'No hay página siguiente',\n cookieConsent: 'Consentimiento de cookies',\n cookieDescription: 'Utilizamos cookies para mejorar su experiencia.',\n cookieLearnMore: 'Saber más',\n accept: 'Aceptar',\n decline: 'Rechazar',\n goToHomePage: 'Ir a la página de inicio',\n home: 'Inicio',\n linkCopied: '¡Enlace copiado!',\n copyLinkToSection: 'Copiar enlace a la sección',\n search: 'Buscar',\n searchPlaceholder: 'Buscar',\n closeBanner: 'Cerrar banner',\n fallbackLocaleWarning: 'Este contenido se muestra en {fallbackLocaleName} ya que no está disponible en {requestedLocaleName}.',\n};\n\n/**\n * Arabic translations (RTL)\n */\nconst ar: ThemeTranslations = {\n copyPage: 'نسخ الصفحة',\n copied: 'تم النسخ!',\n openInChatGPT: 'فتح في ChatGPT',\n openInClaude: 'فتح في Claude',\n askAboutThisPage: 'اسأل عن هذه الصفحة في ChatGPT',\n copyPageDescription: 'نسخ الصفحة كـ Markdown للـ LLMs',\n askQuestionsDescription: 'اطرح أسئلة حول هذه الصفحة',\n chatGPTPrefix: 'هذه الصفحة جاءت من',\n tableOfContents: 'جدول المحتويات',\n contributors: 'المساهمون',\n goToDocsHome: 'الانتقال إلى الصفحة الرئيسية للوثائق',\n goBackTo: 'العودة إلى',\n goToPreviousPage: 'الصفحة السابقة',\n goToNextPage: 'الصفحة التالية',\n noPreviousPage: 'لا توجد صفحة سابقة',\n noNextPage: 'لا توجد صفحة تالية',\n cookieConsent: 'موافقة ملفات تعريف الارتباط',\n cookieDescription: 'نستخدم ملفات تعريف الارتباط لتحسين تجربتك.',\n cookieLearnMore: 'معرفة المزيد',\n accept: 'قبول',\n decline: 'رفض',\n goToHomePage: 'الانتقال إلى الصفحة الرئيسية',\n home: 'الرئيسية',\n linkCopied: 'تم نسخ الرابط!',\n copyLinkToSection: 'نسخ الرابط إلى القسم',\n search: 'بحث',\n searchPlaceholder: 'بحث',\n closeBanner: 'إغلاق الشعار',\n fallbackLocaleWarning: 'يتم عرض هذا المحتوى بـ {fallbackLocaleName} لأنه غير متاح بـ {requestedLocaleName}.',\n};\n\n/**\n * Chinese translations\n */\nconst zh: ThemeTranslations = {\n copyPage: '复制页面',\n copied: '已复制!',\n openInChatGPT: '在 ChatGPT 中打开',\n openInClaude: '在 Claude 中打开',\n askAboutThisPage: '在 ChatGPT 中询问此页面',\n copyPageDescription: '将页面复制为 Markdown 格式供 LLM 使用',\n askQuestionsDescription: '询问有关此页面的问题',\n chatGPTPrefix: '此页面来自',\n tableOfContents: '目录',\n contributors: '贡献者',\n goToDocsHome: '前往文档首页',\n goBackTo: '返回',\n goToPreviousPage: '上一页',\n goToNextPage: '下一页',\n noPreviousPage: '没有上一页',\n noNextPage: '没有下一页',\n cookieConsent: 'Cookie 同意',\n cookieDescription: '我们使用 Cookie 来改善您的体验。',\n cookieLearnMore: '了解更多',\n accept: '接受',\n decline: '拒绝',\n goToHomePage: '前往首页',\n home: '首页',\n linkCopied: '链接已复制!',\n copyLinkToSection: '复制章节链接',\n search: '搜索',\n searchPlaceholder: '搜索',\n closeBanner: '关闭横幅',\n fallbackLocaleWarning: '此内容以 {fallbackLocaleName} 显示,因为 {requestedLocaleName} 不可用。',\n};\n\n/**\n * Japanese translations\n */\nconst ja: ThemeTranslations = {\n copyPage: 'ページをコピー',\n copied: 'コピーしました!',\n openInChatGPT: 'ChatGPT で開く',\n openInClaude: 'Claude で開く',\n askAboutThisPage: 'ChatGPT でこのページについて質問する',\n copyPageDescription: 'ページを LLM 用の Markdown としてコピー',\n askQuestionsDescription: 'このページについて質問する',\n chatGPTPrefix: 'このページは',\n tableOfContents: '目次',\n contributors: '貢献者',\n goToDocsHome: 'ドキュメントホームへ',\n goBackTo: '戻る',\n goToPreviousPage: '前のページ',\n goToNextPage: '次のページ',\n noPreviousPage: '前のページなし',\n noNextPage: '次のページなし',\n cookieConsent: 'Cookie 同意',\n cookieDescription: '体験を向上させるために Cookie を使用しています。',\n cookieLearnMore: '詳細を見る',\n accept: '同意',\n decline: '拒否',\n goToHomePage: 'ホームページへ',\n home: 'ホーム',\n linkCopied: 'リンクをコピーしました!',\n copyLinkToSection: 'セクションへのリンクをコピー',\n search: '検索',\n searchPlaceholder: '検索',\n closeBanner: 'バナーを閉じる',\n fallbackLocaleWarning: 'このコンテンツは {requestedLocaleName} で利用できないため、{fallbackLocaleName} で表示されています。',\n};\n\n/**\n * Korean translations\n */\nconst ko: ThemeTranslations = {\n copyPage: '페이지 복사',\n copied: '복사됨!',\n openInChatGPT: 'ChatGPT에서 열기',\n openInClaude: 'Claude에서 열기',\n askAboutThisPage: 'ChatGPT에서 이 페이지에 대해 질문하기',\n copyPageDescription: '페이지를 LLM용 Markdown으로 복사',\n askQuestionsDescription: '이 페이지에 대해 질문하기',\n chatGPTPrefix: '이 페이지는',\n tableOfContents: '목차',\n contributors: '기여자',\n goToDocsHome: '문서 홈으로 이동',\n goBackTo: '돌아가기',\n goToPreviousPage: '이전 페이지',\n goToNextPage: '다음 페이지',\n noPreviousPage: '이전 페이지 없음',\n noNextPage: '다음 페이지 없음',\n cookieConsent: '쿠키 동의',\n cookieDescription: '경험을 향상시키기 위해 쿠키를 사용합니다.',\n cookieLearnMore: '자세히 알아보기',\n accept: '수락',\n decline: '거부',\n goToHomePage: '홈페이지로 이동',\n home: '홈',\n linkCopied: '링크 복사됨!',\n copyLinkToSection: '섹션 링크 복사',\n search: '검색',\n searchPlaceholder: '검색',\n closeBanner: '배너 닫기',\n fallbackLocaleWarning: '이 콘텐츠는 {requestedLocaleName}에서 사용할 수 없어 {fallbackLocaleName}로 표시됩니다.',\n};\n\n/**\n * Portuguese translations\n */\nconst pt: ThemeTranslations = {\n copyPage: 'Copiar página',\n copied: 'Copiado!',\n openInChatGPT: 'Abrir no ChatGPT',\n openInClaude: 'Abrir no Claude',\n askAboutThisPage: 'Perguntar sobre esta página no ChatGPT',\n copyPageDescription: 'Copiar página como Markdown para LLMs',\n askQuestionsDescription: 'Fazer perguntas sobre esta página',\n chatGPTPrefix: 'Esta página veio de',\n tableOfContents: 'Índice',\n contributors: 'Contribuidores',\n goToDocsHome: 'Ir para a página inicial da documentação',\n goBackTo: 'Voltar para',\n goToPreviousPage: 'Página anterior',\n goToNextPage: 'Próxima página',\n noPreviousPage: 'Sem página anterior',\n noNextPage: 'Sem próxima página',\n cookieConsent: 'Consentimento de Cookies',\n cookieDescription: 'Usamos cookies para melhorar sua experiência.',\n cookieLearnMore: 'Saiba mais',\n accept: 'Aceitar',\n decline: 'Recusar',\n goToHomePage: 'Ir para a página inicial',\n home: 'Início',\n linkCopied: 'Link copiado!',\n copyLinkToSection: 'Copiar link para a seção',\n search: 'Pesquisar',\n searchPlaceholder: 'Pesquisar',\n closeBanner: 'Fechar banner',\n fallbackLocaleWarning: 'Este conteúdo é exibido em {fallbackLocaleName} pois não está disponível em {requestedLocaleName}.',\n};\n\n/**\n * Italian translations\n */\nconst it: ThemeTranslations = {\n copyPage: 'Copia pagina',\n copied: 'Copiato!',\n openInChatGPT: 'Apri in ChatGPT',\n openInClaude: 'Apri in Claude',\n askAboutThisPage: 'Chiedi informazioni su questa pagina in ChatGPT',\n copyPageDescription: 'Copia pagina come Markdown per LLM',\n askQuestionsDescription: 'Fai domande su questa pagina',\n chatGPTPrefix: 'Questa pagina proviene da',\n tableOfContents: 'Indice',\n contributors: 'Collaboratori',\n goToDocsHome: 'Vai alla home della documentazione',\n goBackTo: 'Torna a',\n goToPreviousPage: 'Pagina precedente',\n goToNextPage: 'Pagina successiva',\n noPreviousPage: 'Nessuna pagina precedente',\n noNextPage: 'Nessuna pagina successiva',\n cookieConsent: 'Consenso ai Cookie',\n cookieDescription: 'Utilizziamo i cookie per migliorare la tua esperienza.',\n cookieLearnMore: 'Scopri di più',\n accept: 'Accetta',\n decline: 'Rifiuta',\n goToHomePage: 'Vai alla home',\n home: 'Home',\n linkCopied: 'Link copiato!',\n copyLinkToSection: 'Copia link alla sezione',\n search: 'Cerca',\n searchPlaceholder: 'Cerca',\n closeBanner: 'Chiudi banner',\n fallbackLocaleWarning: 'Questo contenuto è mostrato in {fallbackLocaleName} poiché non è disponibile in {requestedLocaleName}.',\n};\n\n/**\n * Russian translations\n */\nconst ru: ThemeTranslations = {\n copyPage: 'Копировать страницу',\n copied: 'Скопировано!',\n openInChatGPT: 'Открыть в ChatGPT',\n openInClaude: 'Открыть в Claude',\n askAboutThisPage: 'Спросить об этой странице в ChatGPT',\n copyPageDescription: 'Скопировать страницу как Markdown для LLM',\n askQuestionsDescription: 'Задать вопросы об этой странице',\n chatGPTPrefix: 'Эта страница взята с',\n tableOfContents: 'Содержание',\n contributors: 'Участники',\n goToDocsHome: 'Перейти на главную документации',\n goBackTo: 'Вернуться к',\n goToPreviousPage: 'Предыдущая страница',\n goToNextPage: 'Следующая страница',\n noPreviousPage: 'Нет предыдущей страницы',\n noNextPage: 'Нет следующей страницы',\n cookieConsent: 'Согласие на Cookie',\n cookieDescription: 'Мы используем cookie для улучшения вашего опыта.',\n cookieLearnMore: 'Узнать больше',\n accept: 'Принять',\n decline: 'Отклонить',\n goToHomePage: 'Перейти на главную',\n home: 'Главная',\n linkCopied: 'Ссылка скопирована!',\n copyLinkToSection: 'Копировать ссылку на раздел',\n search: 'Поиск',\n searchPlaceholder: 'Поиск',\n closeBanner: 'Закрыть баннер',\n fallbackLocaleWarning: 'Этот контент отображается на {fallbackLocaleName}, так как он недоступен на {requestedLocaleName}.',\n};\n\n/**\n * Dutch translations\n */\nconst nl: ThemeTranslations = {\n copyPage: 'Pagina kopiëren',\n copied: 'Gekopieerd!',\n openInChatGPT: 'Openen in ChatGPT',\n openInClaude: 'Openen in Claude',\n askAboutThisPage: 'Vraag over deze pagina in ChatGPT',\n copyPageDescription: 'Pagina kopiëren als Markdown voor LLMs',\n askQuestionsDescription: 'Vragen stellen over deze pagina',\n chatGPTPrefix: 'Deze pagina komt van',\n tableOfContents: 'Inhoudsopgave',\n contributors: 'Bijdragers',\n goToDocsHome: 'Naar documentatie startpagina',\n goBackTo: 'Terug naar',\n goToPreviousPage: 'Vorige pagina',\n goToNextPage: 'Volgende pagina',\n noPreviousPage: 'Geen vorige pagina',\n noNextPage: 'Geen volgende pagina',\n cookieConsent: 'Cookie Toestemming',\n cookieDescription: 'We gebruiken cookies om uw ervaring te verbeteren.',\n cookieLearnMore: 'Meer informatie',\n accept: 'Accepteren',\n decline: 'Weigeren',\n goToHomePage: 'Naar startpagina',\n home: 'Startpagina',\n linkCopied: 'Link gekopieerd!',\n copyLinkToSection: 'Link naar sectie kopiëren',\n search: 'Zoeken',\n searchPlaceholder: 'Zoeken',\n closeBanner: 'Banner sluiten',\n fallbackLocaleWarning: 'Deze inhoud wordt weergegeven in {fallbackLocaleName} omdat deze niet beschikbaar is in {requestedLocaleName}.',\n};\n\n/**\n * Swedish translations\n */\nconst sv: ThemeTranslations = {\n copyPage: 'Kopiera sida',\n copied: 'Kopierad!',\n openInChatGPT: 'Öppna i ChatGPT',\n openInClaude: 'Öppna i Claude',\n askAboutThisPage: 'Fråga om denna sida i ChatGPT',\n copyPageDescription: 'Kopiera sida som Markdown för LLMs',\n askQuestionsDescription: 'Ställa frågor om denna sida',\n chatGPTPrefix: 'Denna sida kommer från',\n tableOfContents: 'Innehållsförteckning',\n contributors: 'Bidragsgivare',\n goToDocsHome: 'Gå till dokumentationsstartsidan',\n goBackTo: 'Tillbaka till',\n goToPreviousPage: 'Föregående sida',\n goToNextPage: 'Nästa sida',\n noPreviousPage: 'Ingen föregående sida',\n noNextPage: 'Ingen nästa sida',\n cookieConsent: 'Cookie-medgivande',\n cookieDescription: 'Vi använder cookies för att förbättra din upplevelse.',\n cookieLearnMore: 'Läs mer',\n accept: 'Acceptera',\n decline: 'Avvisa',\n goToHomePage: 'Gå till startsidan',\n home: 'Hem',\n linkCopied: 'Länk kopierad!',\n copyLinkToSection: 'Kopiera länk till avsnitt',\n search: 'Sök',\n searchPlaceholder: 'Sök',\n closeBanner: 'Stäng banner',\n fallbackLocaleWarning: 'Detta innehåll visas på {fallbackLocaleName} eftersom det inte är tillgängligt på {requestedLocaleName}.',\n};\n\n/**\n * Norwegian translations\n */\nconst no: ThemeTranslations = {\n copyPage: 'Kopier side',\n copied: 'Kopiert!',\n openInChatGPT: 'Åpne i ChatGPT',\n openInClaude: 'Åpne i Claude',\n askAboutThisPage: 'Spør om denne siden i ChatGPT',\n copyPageDescription: 'Kopier side som Markdown for LLMs',\n askQuestionsDescription: 'Stille spørsmål om denne siden',\n chatGPTPrefix: 'Denne siden kommer fra',\n tableOfContents: 'Innholdsfortegnelse',\n contributors: 'Bidragsytere',\n goToDocsHome: 'Gå til dokumentasjonsforsiden',\n goBackTo: 'Tilbake til',\n goToPreviousPage: 'Forrige side',\n goToNextPage: 'Neste side',\n noPreviousPage: 'Ingen forrige side',\n noNextPage: 'Ingen neste side',\n cookieConsent: 'Cookie-samtykke',\n cookieDescription: 'Vi bruker informasjonskapsler for å forbedre opplevelsen din.',\n cookieLearnMore: 'Finn ut mer',\n accept: 'Godta',\n decline: 'Avslå',\n goToHomePage: 'Gå til forsiden',\n home: 'Hjem',\n linkCopied: 'Lenke kopiert!',\n copyLinkToSection: 'Kopier lenke til seksjon',\n search: 'Søk',\n searchPlaceholder: 'Søk',\n closeBanner: 'Lukk banner',\n fallbackLocaleWarning: 'Dette innholdet vises på {fallbackLocaleName} fordi det ikke er tilgjengelig på {requestedLocaleName}.',\n};\n\n/**\n * Danish translations\n */\nconst da: ThemeTranslations = {\n copyPage: 'Kopier side',\n copied: 'Kopieret!',\n openInChatGPT: 'Åbn i ChatGPT',\n openInClaude: 'Åbn i Claude',\n askAboutThisPage: 'Spørg om denne side i ChatGPT',\n copyPageDescription: 'Kopier side som Markdown til LLMs',\n askQuestionsDescription: 'Stille spørgsmål om denne side',\n chatGPTPrefix: 'Denne side kommer fra',\n tableOfContents: 'Indholdsfortegnelse',\n contributors: 'Bidragydere',\n goToDocsHome: 'Gå til dokumentationsforsiden',\n goBackTo: 'Tilbage til',\n goToPreviousPage: 'Forrige side',\n goToNextPage: 'Næste side',\n noPreviousPage: 'Ingen forrige side',\n noNextPage: 'Ingen næste side',\n cookieConsent: 'Cookie-samtykke',\n cookieDescription: 'Vi bruger cookies til at forbedre din oplevelse.',\n cookieLearnMore: 'Læs mere',\n accept: 'Accepter',\n decline: 'Afvis',\n goToHomePage: 'Gå til forsiden',\n home: 'Hjem',\n linkCopied: 'Link kopieret!',\n copyLinkToSection: 'Kopier link til sektion',\n search: 'Søg',\n searchPlaceholder: 'Søg',\n closeBanner: 'Luk banner',\n fallbackLocaleWarning: 'Dette indhold vises på {fallbackLocaleName}, fordi det ikke er tilgængeligt på {requestedLocaleName}.',\n};\n\n/**\n * Finnish translations\n */\nconst fi: ThemeTranslations = {\n copyPage: 'Kopioi sivu',\n copied: 'Kopioitu!',\n openInChatGPT: 'Avaa ChatGPT:ssä',\n openInClaude: 'Avaa Claude:ssa',\n askAboutThisPage: 'Kysy tästä sivusta ChatGPT:ssä',\n copyPageDescription: 'Kopioi sivu Markdown-muodossa LLM:ille',\n askQuestionsDescription: 'Kysy kysymyksiä tästä sivusta',\n chatGPTPrefix: 'Tämä sivu tulee',\n tableOfContents: 'Sisällysluettelo',\n contributors: 'Osallistujat',\n goToDocsHome: 'Siirry dokumentaation etusivulle',\n goBackTo: 'Takaisin',\n goToPreviousPage: 'Edellinen sivu',\n goToNextPage: 'Seuraava sivu',\n noPreviousPage: 'Ei edellistä sivua',\n noNextPage: 'Ei seuraavaa sivua',\n cookieConsent: 'Evästeiden suostumus',\n cookieDescription: 'Käytämme evästeitä parantaaksemme kokemustasi.',\n cookieLearnMore: 'Lue lisää',\n accept: 'Hyväksy',\n decline: 'Hylkää',\n goToHomePage: 'Siirry etusivulle',\n home: 'Koti',\n linkCopied: 'Linkki kopioitu!',\n copyLinkToSection: 'Kopioi linkki osioon',\n search: 'Hae',\n searchPlaceholder: 'Hae',\n closeBanner: 'Sulje banneri',\n fallbackLocaleWarning: 'Tämä sisältö näytetään {fallbackLocaleName}ksi, koska se ei ole saatavilla {requestedLocaleName}ksi.',\n};\n\n/**\n * Polish translations\n */\nconst pl: ThemeTranslations = {\n copyPage: 'Kopiuj stronę',\n copied: 'Skopiowano!',\n openInChatGPT: 'Otwórz w ChatGPT',\n openInClaude: 'Otwórz w Claude',\n askAboutThisPage: 'Zapytaj o tę stronę w ChatGPT',\n copyPageDescription: 'Skopiuj stronę jako Markdown dla LLM',\n askQuestionsDescription: 'Zadawaj pytania dotyczące tej strony',\n chatGPTPrefix: 'Ta strona pochodzi z',\n tableOfContents: 'Spis treści',\n contributors: 'Współtwórcy',\n goToDocsHome: 'Przejdź do strony głównej dokumentacji',\n goBackTo: 'Wróć do',\n goToPreviousPage: 'Poprzednia strona',\n goToNextPage: 'Następna strona',\n noPreviousPage: 'Brak poprzedniej strony',\n noNextPage: 'Brak następnej strony',\n cookieConsent: 'Zgoda na pliki cookie',\n cookieDescription: 'Używamy plików cookie, aby poprawić Twoje wrażenia.',\n cookieLearnMore: 'Dowiedz się więcej',\n accept: 'Zaakceptuj',\n decline: 'Odrzuć',\n goToHomePage: 'Przejdź do strony głównej',\n home: 'Strona główna',\n linkCopied: 'Link skopiowany!',\n copyLinkToSection: 'Kopiuj link do sekcji',\n search: 'Szukaj',\n searchPlaceholder: 'Szukaj',\n closeBanner: 'Zamknij baner',\n fallbackLocaleWarning: 'Ta zawartość jest wyświetlana w {fallbackLocaleName}, ponieważ nie jest dostępna w {requestedLocaleName}.',\n};\n\n/**\n * Turkish translations\n */\nconst tr: ThemeTranslations = {\n copyPage: 'Sayfayı kopyala',\n copied: 'Kopyalandı!',\n openInChatGPT: 'ChatGPT\\'te Aç',\n openInClaude: 'Claude\\'da Aç',\n askAboutThisPage: 'ChatGPT\\'te bu sayfa hakkında sor',\n copyPageDescription: 'Sayfayı LLM\\'ler için Markdown olarak kopyala',\n askQuestionsDescription: 'Bu sayfa hakkında sorular sor',\n chatGPTPrefix: 'Bu sayfa',\n tableOfContents: 'İçindekiler',\n contributors: 'Katkıda Bulunanlar',\n goToDocsHome: 'Dokümantasyon ana sayfasına git',\n goBackTo: 'Geri dön',\n goToPreviousPage: 'Önceki sayfa',\n goToNextPage: 'Sonraki sayfa',\n noPreviousPage: 'Önceki sayfa yok',\n noNextPage: 'Sonraki sayfa yok',\n cookieConsent: 'Çerez Onayı',\n cookieDescription: 'Deneyiminizi geliştirmek için çerezler kullanıyoruz.',\n cookieLearnMore: 'Daha fazla bilgi',\n accept: 'Kabul Et',\n decline: 'Reddet',\n goToHomePage: 'Ana sayfaya git',\n home: 'Ana Sayfa',\n linkCopied: 'Bağlantı kopyalandı!',\n copyLinkToSection: 'Bölüme bağlantı kopyala',\n search: 'Ara',\n searchPlaceholder: 'Ara',\n closeBanner: \"Banner'ı kapat\",\n fallbackLocaleWarning: 'Bu içerik {requestedLocaleName} dilinde mevcut olmadığı için {fallbackLocaleName} dilinde gösterilmektedir.',\n};\n\n/**\n * Hebrew translations (RTL)\n */\nconst he: ThemeTranslations = {\n copyPage: 'העתק עמוד',\n copied: 'הועתק!',\n openInChatGPT: 'פתח ב-ChatGPT',\n openInClaude: 'פתח ב-Claude',\n askAboutThisPage: 'שאל על דף זה ב-ChatGPT',\n copyPageDescription: 'העתק דף כ-Markdown עבור LLMs',\n askQuestionsDescription: 'שאל שאלות על דף זה',\n chatGPTPrefix: 'דף זה הגיע מ',\n tableOfContents: 'תוכן עניינים',\n contributors: 'תורמים',\n goToDocsHome: 'עבור לדף הבית של התיעוד',\n goBackTo: 'חזור ל',\n goToPreviousPage: 'עמוד קודם',\n goToNextPage: 'עמוד הבא',\n noPreviousPage: 'אין עמוד קודם',\n noNextPage: 'אין עמוד הבא',\n cookieConsent: 'הסכמה לעוגיות',\n cookieDescription: 'אנו משתמשים בעוגיות כדי לשפר את החוויה שלך.',\n cookieLearnMore: 'למד עוד',\n accept: 'מקבל',\n decline: 'דוחה',\n goToHomePage: 'עבור לדף הבית',\n home: 'בית',\n linkCopied: 'קישור הועתק!',\n copyLinkToSection: 'העתק קישור לסעיף',\n search: 'חפש',\n searchPlaceholder: 'חפש',\n closeBanner: 'סגור באנר',\n fallbackLocaleWarning: 'תוכן זה מוצג ב-{fallbackLocaleName} מכיוון שהוא אינו זמין ב-{requestedLocaleName}.',\n};\n\n/**\n * Hindi translations\n */\nconst hi: ThemeTranslations = {\n copyPage: 'पृष्ठ कॉपी करें',\n copied: 'कॉपी किया गया!',\n openInChatGPT: 'ChatGPT में खोलें',\n openInClaude: 'Claude में खोलें',\n askAboutThisPage: 'ChatGPT में इस पृष्ठ के बारे में पूछें',\n copyPageDescription: 'पृष्ठ को LLM के लिए Markdown के रूप में कॉपी करें',\n askQuestionsDescription: 'इस पृष्ठ के बारे में प्रश्न पूछें',\n chatGPTPrefix: 'यह पृष्ठ',\n tableOfContents: 'विषय सूची',\n contributors: 'योगदानकर्ता',\n goToDocsHome: 'दस्तावेज़ होम पर जाएं',\n goBackTo: 'वापस जाएं',\n goToPreviousPage: 'पिछला पृष्ठ',\n goToNextPage: 'अगला पृष्ठ',\n noPreviousPage: 'कोई पिछला पृष्ठ नहीं',\n noNextPage: 'कोई अगला पृष्ठ नहीं',\n cookieConsent: 'कुकी सहमति',\n cookieDescription: 'हम आपके अनुभव को बेहतर बनाने के लिए कुकीज़ का उपयोग करते हैं।',\n cookieLearnMore: 'और जानें',\n accept: 'स्वीकार करें',\n decline: 'अस्वीकार करें',\n goToHomePage: 'होम पेज पर जाएं',\n home: 'होम',\n linkCopied: 'लिंक कॉपी किया गया!',\n copyLinkToSection: 'अनुभाग के लिए लिंक कॉपी करें',\n search: 'खोजें',\n searchPlaceholder: 'खोजें',\n closeBanner: 'बैनर बंद करें',\n fallbackLocaleWarning: 'यह सामग्री {fallbackLocaleName} में दिखाई जा रही है क्योंकि यह {requestedLocaleName} में उपलब्ध नहीं है।',\n};\n\n/**\n * Translation map for all supported locales\n */\nconst translations: Record<Locale, ThemeTranslations> = {\n en,\n fr,\n de,\n es,\n ar,\n zh,\n ja,\n ko,\n pt,\n it,\n ru,\n nl,\n sv,\n no,\n da,\n fi,\n pl,\n tr,\n he,\n hi,\n};\n\n/**\n * Get translations for a specific locale\n * Falls back to English if locale is not found\n */\nexport function getTranslations(locale: Locale = 'en'): ThemeTranslations {\n return translations[locale] || translations.en;\n}\n\n/**\n * Get a specific translation key for a locale\n */\nexport function getTranslation(\n locale: Locale,\n key: keyof ThemeTranslations\n): string {\n const t = getTranslations(locale);\n return t[key] ?? '';\n}\n\n/**\n * Type-safe translation key helper\n */\nexport type TranslationKey = keyof ThemeTranslations;\n\n","import React from 'react';\nimport { getTranslations } from '../../../lib/translations';\nimport type { SidebarNode, Locale } from '@next-library/core';\n\ninterface ParentProps {\n parent: SidebarNode | null;\n currentPath?: string;\n locale?: Locale;\n}\n\nexport function Parent({ parent, currentPath, locale = 'en' }: ParentProps) {\n const isActive = parent && currentPath && parent.websitePath === `/${currentPath}`;\n const translations = getTranslations(locale);\n\n return (\n <div\n className={`flex flex-row items-center gap-2 text-wrap rounded-lg border shadow-sm p-4 truncate \n ${isActive\n ? 'dark:border-blue-400 border-blue-600 bg-blue-50 dark:bg-blue-900/20'\n : 'bg-gradient-to-b from-muted/10 to-muted/50 border-border'\n }`}\n >\n <p className=\"font-medium text-lg\">\n {parent?.title || translations.home}\n </p>\n </div>\n );\n}\n\n","import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\n","'use client';\n\nimport { cn } from '../../layout/utils';\n\ninterface LevelElevatorProps {\n currentLevel: number;\n className?: string;\n}\n\nexport function LevelElevator({ currentLevel, className }: LevelElevatorProps) {\n return (\n <div className={cn('flex flex-col items-center py-2', className)}>\n <div className=\"relative w-8 h-8 overflow-hidden bg-foreground rounded-md border border-foreground shadow-sm\">\n <div className=\"absolute inset-0 flex items-center justify-center text-background text-sm font-bold\">\n {currentLevel}\n </div>\n </div>\n </div>\n );\n}\n\n","import { cn } from '../../layout/utils';\nimport { LevelElevator } from './level-elevator';\nimport Link from 'next/link';\nimport { Home, FolderUp, ChevronLeft, ChevronRight } from 'lucide-react';\nimport { getTranslations } from '../../../lib/translations';\nimport type { Locale, SidebarNode, FlatContentMapItem } from '@next-library/core';\n\ninterface ToolboxTranslations {\n goToDocsHome?: string;\n goBackTo?: string;\n goToPreviousPage?: string;\n goToNextPage?: string;\n noPreviousPage?: string;\n noNextPage?: string;\n}\n\ninterface ToolboxProps {\n currentLevel: number;\n className?: string;\n parent: SidebarNode | null;\n grandparent: SidebarNode | null;\n previousPage: FlatContentMapItem | null;\n nextPage: FlatContentMapItem | null;\n lang: Locale;\n path: string;\n translations?: ToolboxTranslations;\n}\n\nexport function Toolbox({\n currentLevel,\n className,\n parent,\n grandparent,\n previousPage,\n nextPage,\n lang,\n path,\n translations = {},\n}: ToolboxProps) {\n const defaultTranslations = getTranslations(lang);\n const {\n goToDocsHome = defaultTranslations.goToDocsHome,\n goBackTo = defaultTranslations.goBackTo,\n goToPreviousPage = defaultTranslations.goToPreviousPage,\n goToNextPage = defaultTranslations.goToNextPage,\n noPreviousPage = defaultTranslations.noPreviousPage,\n noNextPage = defaultTranslations.noNextPage,\n } = translations;\n\n return (\n <div\n className={cn(\n 'flex items-center justify-between rounded-lg border border-border bg-muted/50 shadow-sm px-4',\n className\n )}\n >\n <LevelElevator currentLevel={currentLevel} />\n\n <div className=\"h-4 w-px bg-border\" />\n\n <Link\n href={`/${lang}/docs`}\n className=\"flex items-center justify-center h-7 w-7 rounded-md transition-all duration-200 text-muted-foreground hover:text-foreground hover:bg-background hover:scale-110\"\n title={goToDocsHome}\n aria-label={goToDocsHome}\n >\n <Home className=\"h-4 w-4\" />\n </Link>\n\n <div className=\"h-4 w-px bg-border\" />\n\n {(() => {\n // If we have a grandparent and the current path matches the parent's path, go to grandparent\n if (grandparent && grandparent.websitePath && parent && path === parent.websitePath?.replace(`/${lang}/docs/`, '')) {\n return (\n <Link\n href={grandparent.websitePath}\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground hover:text-foreground hover:bg-background hover:scale-110 transition-all duration-200\"\n title={`${goBackTo} ${grandparent.title}`}\n aria-label={`${goBackTo} ${grandparent.title}`}\n >\n <FolderUp className=\"h-4 w-4\" />\n </Link>\n );\n }\n\n // If we have a parent and current level > 1, go to parent\n else if (parent && parent.websitePath && path !== parent.websitePath?.replace(`/${lang}/docs/`, '')) {\n return (\n <Link\n href={parent.websitePath}\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground hover:text-foreground hover:bg-background hover:scale-110 transition-all duration-200\"\n title={`${goBackTo} ${parent?.title}`}\n aria-label={`${goBackTo} ${parent?.title}`}\n >\n <FolderUp className=\"h-4 w-4\" />\n </Link>\n );\n }\n\n // Default: go to documentation home\n return (\n <Link\n href={`/${lang}/docs`}\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground hover:text-foreground hover:bg-background hover:scale-110 transition-all duration-200\"\n title={goToDocsHome}\n aria-label={goToDocsHome}\n >\n <FolderUp className=\"h-4 w-4\" />\n </Link>\n );\n })()}\n\n <div className=\"h-4 w-px bg-border\" />\n\n {previousPage ? (\n <Link\n href={previousPage.websitePath || '#'}\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground hover:text-foreground hover:bg-background hover:scale-110 transition-all duration-200\"\n title={`${goToPreviousPage}: ${previousPage.title}`}\n aria-label={`${goToPreviousPage}: ${previousPage.title}`}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </Link>\n ) : (\n <div\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground/30 cursor-not-allowed\"\n title={noPreviousPage}\n aria-label={noPreviousPage}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </div>\n )}\n\n {nextPage ? (\n <Link\n href={nextPage.websitePath || '#'}\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground hover:text-foreground hover:bg-background hover:scale-110 transition-all duration-200\"\n title={`${goToNextPage}: ${nextPage.title}`}\n aria-label={`${goToNextPage}: ${nextPage.title}`}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Link>\n ) : (\n <div\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground/30 cursor-not-allowed\"\n title={noNextPage}\n aria-label={noNextPage}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { SidebarNavigation } from '@next-library/theme/client';\nimport { Parent } from '../navigation/sidebar-left/parent';\nimport { Toolbox } from '../navigation/sidebar-left/toolbox';\nimport type { PageData } from '@next-library/core';\nimport { cn } from './utils';\n\ninterface LeftSidebarProps {\n data: PageData;\n className?: string;\n}\n\nexport function LeftSidebar({ data, className }: LeftSidebarProps) {\n const { sidebar, navigation, computed } = data;\n\n return (\n <aside className={cn('md:flex hidden flex-col gap-4', className)} id=\"sidebar-left\">\n <Parent parent={sidebar.parent} currentPath={`${computed.lang}/docs/${computed.path}`} locale={computed.lang} />\n <Toolbox\n currentLevel={sidebar.currentLevel}\n parent={sidebar.parent}\n grandparent={sidebar.grandparent}\n previousPage={navigation.previous}\n nextPage={navigation.next}\n lang={computed.lang}\n path={computed.path}\n />\n <SidebarNavigation\n nodes={sidebar.items}\n currentPath={`/${computed.lang}/docs/${computed.path}`}\n language={computed.lang}\n />\n </aside>\n );\n}\n\n","import React from 'react';\nimport { GithubContributors, TableOfContents } from '@next-library/theme/client';\nimport type { PageData } from '@next-library/core';\nimport { cn } from './utils';\n\ninterface RightSidebarProps {\n data: PageData;\n className?: string;\n}\n\nexport function RightSidebar({ data, className }: RightSidebarProps) {\n const { rightSidebar, computed } = data;\n const lang = computed.lang;\n\n return (\n <aside className={cn('md:flex hidden flex-col gap-4', className)} id=\"sidebar-right\">\n {/* Contributors */}\n <GithubContributors\n contributors={rightSidebar.contributors}\n githubPath={rightSidebar.githubPath}\n locale={lang}\n />\n {/* Table of Contents */}\n <TableOfContents toc={rightSidebar.toc} lang={lang} />\n </aside>\n );\n}\n\n","import React from 'react';\nimport { CopyPageButton } from '@next-library/theme/client';\nimport type { Locale } from '@next-library/core';\n\ninterface CopyPageButtonTranslations {\n copyPage?: string;\n copied?: string;\n}\n\ninterface PageHeaderProps {\n title: string;\n markdown: string;\n pageUrl?: string;\n websiteTitle?: string;\n className?: string;\n locale?: Locale;\n translations?: CopyPageButtonTranslations;\n showCopyButton?: boolean;\n}\n\nexport function PageHeader({\n title,\n markdown,\n pageUrl,\n websiteTitle,\n className = '',\n locale = 'en',\n translations,\n showCopyButton = true,\n}: PageHeaderProps) {\n return (\n <div className={`flex flex-col gap-2 lg:gap-4 pb-8 font-bold prose prose-md max-w-none dark:prose-invert ${className}`}>\n {showCopyButton && (\n <CopyPageButton\n sourceCode={markdown}\n pageUrl={pageUrl}\n websiteTitle={websiteTitle}\n className=\"self-end hidden lg:flex\"\n locale={locale}\n translations={translations}\n />\n )}\n <h1 className=\"\">{title}</h1>\n </div>\n );\n}\n\n","/**\n * Locale name translations\n * Maps locale codes to their names in different languages\n */\n\nimport type { Locale } from '@next-library/core';\n\n/**\n * Locale names in English (used as fallback)\n */\nconst localeNamesEn: Record<Locale, string> = {\n en: 'English',\n fr: 'French',\n de: 'German',\n es: 'Spanish',\n ar: 'Arabic',\n zh: 'Chinese',\n ja: 'Japanese',\n ko: 'Korean',\n pt: 'Portuguese',\n it: 'Italian',\n ru: 'Russian',\n nl: 'Dutch',\n sv: 'Swedish',\n no: 'Norwegian',\n da: 'Danish',\n fi: 'Finnish',\n pl: 'Polish',\n tr: 'Turkish',\n he: 'Hebrew',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in French\n */\nconst localeNamesFr: Record<Locale, string> = {\n en: 'Anglais',\n fr: 'Français',\n de: 'Allemand',\n es: 'Espagnol',\n ar: 'Arabe',\n zh: 'Chinois',\n ja: 'Japonais',\n ko: 'Coréen',\n pt: 'Portugais',\n it: 'Italien',\n ru: 'Russe',\n nl: 'Néerlandais',\n sv: 'Suédois',\n no: 'Norvégien',\n da: 'Danois',\n fi: 'Finlandais',\n pl: 'Polonais',\n tr: 'Turc',\n he: 'Hébreu',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in German\n */\nconst localeNamesDe: Record<Locale, string> = {\n en: 'Englisch',\n fr: 'Französisch',\n de: 'Deutsch',\n es: 'Spanisch',\n ar: 'Arabisch',\n zh: 'Chinesisch',\n ja: 'Japanisch',\n ko: 'Koreanisch',\n pt: 'Portugiesisch',\n it: 'Italienisch',\n ru: 'Russisch',\n nl: 'Niederländisch',\n sv: 'Schwedisch',\n no: 'Norwegisch',\n da: 'Dänisch',\n fi: 'Finnisch',\n pl: 'Polnisch',\n tr: 'Türkisch',\n he: 'Hebräisch',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Spanish\n */\nconst localeNamesEs: Record<Locale, string> = {\n en: 'Inglés',\n fr: 'Francés',\n de: 'Alemán',\n es: 'Español',\n ar: 'Árabe',\n zh: 'Chino',\n ja: 'Japonés',\n ko: 'Coreano',\n pt: 'Portugués',\n it: 'Italiano',\n ru: 'Ruso',\n nl: 'Neerlandés',\n sv: 'Sueco',\n no: 'Noruego',\n da: 'Danés',\n fi: 'Finlandés',\n pl: 'Polaco',\n tr: 'Turco',\n he: 'Hebreo',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Arabic\n */\nconst localeNamesAr: Record<Locale, string> = {\n en: 'الإنجليزية',\n fr: 'الفرنسية',\n de: 'الألمانية',\n es: 'الإسبانية',\n ar: 'العربية',\n zh: 'الصينية',\n ja: 'اليابانية',\n ko: 'الكورية',\n pt: 'البرتغالية',\n it: 'الإيطالية',\n ru: 'الروسية',\n nl: 'الهولندية',\n sv: 'السويدية',\n no: 'النرويجية',\n da: 'الدنماركية',\n fi: 'الفنلندية',\n pl: 'البولندية',\n tr: 'التركية',\n he: 'العبرية',\n hi: 'الهندية',\n};\n\n/**\n * Locale names in Chinese\n */\nconst localeNamesZh: Record<Locale, string> = {\n en: '英语',\n fr: '法语',\n de: '德语',\n es: '西班牙语',\n ar: '阿拉伯语',\n zh: '中文',\n ja: '日语',\n ko: '韩语',\n pt: '葡萄牙语',\n it: '意大利语',\n ru: '俄语',\n nl: '荷兰语',\n sv: '瑞典语',\n no: '挪威语',\n da: '丹麦语',\n fi: '芬兰语',\n pl: '波兰语',\n tr: '土耳其语',\n he: '希伯来语',\n hi: '印地语',\n};\n\n/**\n * Locale names in Japanese\n */\nconst localeNamesJa: Record<Locale, string> = {\n en: '英語',\n fr: 'フランス語',\n de: 'ドイツ語',\n es: 'スペイン語',\n ar: 'アラビア語',\n zh: '中国語',\n ja: '日本語',\n ko: '韓国語',\n pt: 'ポルトガル語',\n it: 'イタリア語',\n ru: 'ロシア語',\n nl: 'オランダ語',\n sv: 'スウェーデン語',\n no: 'ノルウェー語',\n da: 'デンマーク語',\n fi: 'フィンランド語',\n pl: 'ポーランド語',\n tr: 'トルコ語',\n he: 'ヘブライ語',\n hi: 'ヒンディー語',\n};\n\n/**\n * Locale names in Korean\n */\nconst localeNamesKo: Record<Locale, string> = {\n en: '영어',\n fr: '프랑스어',\n de: '독일어',\n es: '스페인어',\n ar: '아랍어',\n zh: '중국어',\n ja: '일본어',\n ko: '한국어',\n pt: '포르투갈어',\n it: '이탈리아어',\n ru: '러시아어',\n nl: '네덜란드어',\n sv: '스웨덴어',\n no: '노르웨이어',\n da: '덴마크어',\n fi: '핀란드어',\n pl: '폴란드어',\n tr: '터키어',\n he: '히브리어',\n hi: '힌디어',\n};\n\n/**\n * Locale names in Portuguese\n */\nconst localeNamesPt: Record<Locale, string> = {\n en: 'Inglês',\n fr: 'Francês',\n de: 'Alemão',\n es: 'Espanhol',\n ar: 'Árabe',\n zh: 'Chinês',\n ja: 'Japonês',\n ko: 'Coreano',\n pt: 'Português',\n it: 'Italiano',\n ru: 'Russo',\n nl: 'Holandês',\n sv: 'Sueco',\n no: 'Norueguês',\n da: 'Dinamarquês',\n fi: 'Finlandês',\n pl: 'Polonês',\n tr: 'Turco',\n he: 'Hebraico',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Italian\n */\nconst localeNamesIt: Record<Locale, string> = {\n en: 'Inglese',\n fr: 'Francese',\n de: 'Tedesco',\n es: 'Spagnolo',\n ar: 'Arabo',\n zh: 'Cinese',\n ja: 'Giapponese',\n ko: 'Coreano',\n pt: 'Portoghese',\n it: 'Italiano',\n ru: 'Russo',\n nl: 'Olandese',\n sv: 'Svedese',\n no: 'Norvegese',\n da: 'Danese',\n fi: 'Finlandese',\n pl: 'Polacco',\n tr: 'Turco',\n he: 'Ebraico',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Russian\n */\nconst localeNamesRu: Record<Locale, string> = {\n en: 'Английский',\n fr: 'Французский',\n de: 'Немецкий',\n es: 'Испанский',\n ar: 'Арабский',\n zh: 'Китайский',\n ja: 'Японский',\n ko: 'Корейский',\n pt: 'Португальский',\n it: 'Итальянский',\n ru: 'Русский',\n nl: 'Голландский',\n sv: 'Шведский',\n no: 'Норвежский',\n da: 'Датский',\n fi: 'Финский',\n pl: 'Польский',\n tr: 'Турецкий',\n he: 'Иврит',\n hi: 'Хинди',\n};\n\n/**\n * Locale names in Dutch\n */\nconst localeNamesNl: Record<Locale, string> = {\n en: 'Engels',\n fr: 'Frans',\n de: 'Duits',\n es: 'Spaans',\n ar: 'Arabisch',\n zh: 'Chinees',\n ja: 'Japans',\n ko: 'Koreaans',\n pt: 'Portugees',\n it: 'Italiaans',\n ru: 'Russisch',\n nl: 'Nederlands',\n sv: 'Zweeds',\n no: 'Noors',\n da: 'Deens',\n fi: 'Fins',\n pl: 'Pools',\n tr: 'Turks',\n he: 'Hebreeuws',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Swedish\n */\nconst localeNamesSv: Record<Locale, string> = {\n en: 'Engelska',\n fr: 'Franska',\n de: 'Tyska',\n es: 'Spanska',\n ar: 'Arabiska',\n zh: 'Kinesiska',\n ja: 'Japanska',\n ko: 'Koreanska',\n pt: 'Portugisiska',\n it: 'Italienska',\n ru: 'Ryska',\n nl: 'Nederländska',\n sv: 'Svenska',\n no: 'Norska',\n da: 'Danska',\n fi: 'Finska',\n pl: 'Polska',\n tr: 'Turkiska',\n he: 'Hebreiska',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Norwegian\n */\nconst localeNamesNo: Record<Locale, string> = {\n en: 'Engelsk',\n fr: 'Fransk',\n de: 'Tysk',\n es: 'Spansk',\n ar: 'Arabisk',\n zh: 'Kinesisk',\n ja: 'Japansk',\n ko: 'Koreansk',\n pt: 'Portugisisk',\n it: 'Italiensk',\n ru: 'Russisk',\n nl: 'Nederlandsk',\n sv: 'Svensk',\n no: 'Norsk',\n da: 'Dansk',\n fi: 'Finsk',\n pl: 'Polsk',\n tr: 'Tyrkisk',\n he: 'Hebraisk',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Danish\n */\nconst localeNamesDa: Record<Locale, string> = {\n en: 'Engelsk',\n fr: 'Fransk',\n de: 'Tysk',\n es: 'Spansk',\n ar: 'Arabisk',\n zh: 'Kinesisk',\n ja: 'Japansk',\n ko: 'Koreansk',\n pt: 'Portugisisk',\n it: 'Italiensk',\n ru: 'Russisk',\n nl: 'Hollandsk',\n sv: 'Svensk',\n no: 'Norsk',\n da: 'Dansk',\n fi: 'Finsk',\n pl: 'Polsk',\n tr: 'Tyrkisk',\n he: 'Hebraisk',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Finnish\n */\nconst localeNamesFi: Record<Locale, string> = {\n en: 'Englanti',\n fr: 'Ranska',\n de: 'Saksa',\n es: 'Espanja',\n ar: 'Arabia',\n zh: 'Kiina',\n ja: 'Japani',\n ko: 'Korea',\n pt: 'Portugali',\n it: 'Italia',\n ru: 'Venäjä',\n nl: 'Hollanti',\n sv: 'Ruotsi',\n no: 'Norja',\n da: 'Tanska',\n fi: 'Suomi',\n pl: 'Puola',\n tr: 'Turkki',\n he: 'Heprea',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Polish\n */\nconst localeNamesPl: Record<Locale, string> = {\n en: 'Angielski',\n fr: 'Francuski',\n de: 'Niemiecki',\n es: 'Hiszpański',\n ar: 'Arabski',\n zh: 'Chiński',\n ja: 'Japoński',\n ko: 'Koreański',\n pt: 'Portugalski',\n it: 'Włoski',\n ru: 'Rosyjski',\n nl: 'Holenderski',\n sv: 'Szwedzki',\n no: 'Norweski',\n da: 'Duński',\n fi: 'Fiński',\n pl: 'Polski',\n tr: 'Turecki',\n he: 'Hebrajski',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Turkish\n */\nconst localeNamesTr: Record<Locale, string> = {\n en: 'İngilizce',\n fr: 'Fransızca',\n de: 'Almanca',\n es: 'İspanyolca',\n ar: 'Arapça',\n zh: 'Çince',\n ja: 'Japonca',\n ko: 'Korece',\n pt: 'Portekizce',\n it: 'İtalyanca',\n ru: 'Rusça',\n nl: 'Felemenkçe',\n sv: 'İsveççe',\n no: 'Norveççe',\n da: 'Danca',\n fi: 'Fince',\n pl: 'Lehçe',\n tr: 'Türkçe',\n he: 'İbranice',\n hi: 'Hintçe',\n};\n\n/**\n * Locale names in Hebrew\n */\nconst localeNamesHe: Record<Locale, string> = {\n en: 'אנגלית',\n fr: 'צרפתית',\n de: 'גרמנית',\n es: 'ספרדית',\n ar: 'ערבית',\n zh: 'סינית',\n ja: 'יפנית',\n ko: 'קוריאנית',\n pt: 'פורטוגזית',\n it: 'איטלקית',\n ru: 'רוסית',\n nl: 'הולנדית',\n sv: 'שוודית',\n no: 'נורווגית',\n da: 'דנית',\n fi: 'פינית',\n pl: 'פולנית',\n tr: 'טורקית',\n he: 'עברית',\n hi: 'הינדי',\n};\n\n/**\n * Locale names in Hindi\n */\nconst localeNamesHi: Record<Locale, string> = {\n en: 'अंग्रेजी',\n fr: 'फ्रेंच',\n de: 'जर्मन',\n es: 'स्पेनिश',\n ar: 'अरबी',\n zh: 'चीनी',\n ja: 'जापानी',\n ko: 'कोरियाई',\n pt: 'पुर्तगाली',\n it: 'इतालवी',\n ru: 'रूसी',\n nl: 'डच',\n sv: 'स्वीडिश',\n no: 'नॉर्वेजियन',\n da: 'डेनिश',\n fi: 'फिनिश',\n pl: 'पोलिश',\n tr: 'तुर्की',\n he: 'हिब्रू',\n hi: 'हिन्दी',\n};\n\n/**\n * Map of locale names by target language\n */\nconst localeNamesByLanguage: Record<Locale, Record<Locale, string>> = {\n en: localeNamesEn,\n fr: localeNamesFr,\n de: localeNamesDe,\n es: localeNamesEs,\n ar: localeNamesAr,\n zh: localeNamesZh,\n ja: localeNamesJa,\n ko: localeNamesKo,\n pt: localeNamesPt,\n it: localeNamesIt,\n ru: localeNamesRu,\n nl: localeNamesNl,\n sv: localeNamesSv,\n no: localeNamesNo,\n da: localeNamesDa,\n fi: localeNamesFi,\n pl: localeNamesPl,\n tr: localeNamesTr,\n he: localeNamesHe,\n hi: localeNamesHi,\n};\n\n/**\n * Get the name of a locale in a specific target language\n */\nexport function getLocaleNameInLanguage(locale: Locale, targetLanguage: Locale): string {\n const names = localeNamesByLanguage[targetLanguage] || localeNamesEn;\n return names[locale] || locale;\n}\n\n","import React from 'react';\nimport { AlertTriangle } from 'lucide-react';\nimport { getTranslations } from '../../lib/translations';\nimport { getLocaleNameInLanguage } from '../../lib/translations/locale-names';\nimport { cn } from '../layout/utils';\nimport type { Locale } from '@next-library/core';\n\ninterface FallbackLocaleWarningProps {\n locale: Locale;\n fallbackLocale?: Locale;\n className?: string;\n translations?: {\n message?: string;\n };\n}\n\n/**\n * Warning banner displayed when content is shown from a fallback locale\n * because it's not available in the requested locale.\n */\nexport function FallbackLocaleWarning({\n locale,\n fallbackLocale = 'en',\n className,\n translations = {},\n}: FallbackLocaleWarningProps) {\n const defaultTranslations = getTranslations(locale);\n const { message } = translations;\n\n // Get locale names translated to the warning message language\n // The warning is shown in the requested locale's language\n const requestedLocaleName = getLocaleNameInLanguage(locale, locale).toLowerCase();\n const fallbackLocaleName = getLocaleNameInLanguage(fallbackLocale, locale).toLowerCase();\n\n // Use custom message if provided, otherwise use default translation with locale names\n const warningMessage =\n message ||\n (defaultTranslations.fallbackLocaleWarning\n ? defaultTranslations.fallbackLocaleWarning\n .replace('{requestedLocaleName}', requestedLocaleName)\n .replace('{fallbackLocaleName}', fallbackLocaleName)\n : `This content is shown in ${fallbackLocaleName} (fallback) as it's not available in ${requestedLocaleName}.`);\n\n return (\n <div\n className={cn(\n 'mb-4 p-3 bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg',\n className\n )}\n role=\"alert\"\n aria-live=\"polite\"\n >\n <div className=\"flex items-center gap-2\">\n <AlertTriangle\n className=\"h-5 w-5 text-yellow-600 dark:text-yellow-400 flex-shrink-0\"\n aria-hidden=\"true\"\n />\n <span className=\"text-sm text-yellow-800 dark:text-yellow-200\">\n {warningMessage}\n </span>\n </div>\n </div>\n );\n}\n\n","import React from 'react';\n\ninterface StructuredDataProps {\n data: object | object[];\n}\n\n/**\n * Component to inject structured data (JSON-LD) into the page\n * Multiple schemas can be passed as an array\n */\nexport function StructuredData({ data }: StructuredDataProps) {\n const schemas = Array.isArray(data) ? data : [data];\n\n return (\n <>\n {schemas.map((schema, index) => (\n <script\n key={index}\n type=\"application/ld+json\"\n dangerouslySetInnerHTML={{\n __html: JSON.stringify(schema, null, 2),\n }}\n />\n ))}\n </>\n );\n}\n\n","'use client';\n\nimport React, { SVGProps, useState } from 'react';\nimport { motion, useMotionValueEvent, useScroll } from 'motion/react';\nimport { cn } from '../layout/utils';\nimport { getTranslations } from '../../lib/translations';\nimport type { Locale } from '@next-library/core';\n\ninterface StickyBannerProps {\n className?: string;\n children: React.ReactNode;\n hideOnScroll?: boolean;\n locale?: Locale;\n closeLabel?: string;\n}\n\nexport function StickyBanner({\n className,\n children,\n hideOnScroll = false,\n locale = 'en',\n closeLabel,\n}: StickyBannerProps) {\n const [open, setOpen] = useState(true);\n const { scrollY } = useScroll();\n const translations = getTranslations(locale);\n const ariaLabel = closeLabel || translations.closeBanner;\n\n useMotionValueEvent(scrollY, 'change', (latest) => {\n if (hideOnScroll && latest > 16) {\n setOpen(false);\n } else {\n setOpen(true);\n }\n });\n\n return (\n <motion.div\n className={cn(\n 'sticky inset-x-0 top-0 z-40 flex min-h-12 w-full items-center justify-center bg-transparent px-4 py-1',\n className\n )}\n initial={{\n y: -100,\n opacity: 0,\n }}\n animate={{\n y: open ? 0 : -100,\n opacity: open ? 1 : 0,\n }}\n transition={{\n duration: 0.3,\n ease: 'easeInOut',\n }}\n >\n {children}\n\n <motion.button\n initial={{\n scale: 0,\n }}\n animate={{\n scale: 1,\n }}\n className=\"absolute top-1/2 right-2 -translate-y-1/2 cursor-pointer\"\n onClick={() => setOpen(!open)}\n aria-label={ariaLabel}\n >\n <CloseIcon className=\"h-5 w-5 text-white\" aria-hidden=\"true\" />\n </motion.button>\n </motion.div>\n );\n}\n\nconst CloseIcon = (props: SVGProps<SVGSVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M18 6l-12 12\" />\n <path d=\"M6 6l12 12\" />\n </svg>\n );\n};\n","'use client';\n\nimport React from 'react';\nimport { StickyBanner } from '../../ui/sticky-banner';\nimport type { Locale } from '@next-library/core';\n\ninterface BannerProps {\n children: React.ReactNode;\n language?: Locale;\n}\n\nexport default function Banner({ children, language = 'en' }: BannerProps) {\n return (\n <StickyBanner\n className=\"bg-gradient-to-b from-blue-500 to-blue-600 text-center py-2 lg:py-0\"\n hideOnScroll\n locale={language}\n >\n <p className=\"mx-0 max-w-[90%] text-white drop-shadow-md\">{children}</p>\n </StickyBanner>\n );\n}\n\n","'use client';\n\nimport React from 'react';\nimport Link from 'next/link';\nimport Image from 'next/image';\nimport { getTranslations } from '../../../lib/translations';\nimport type { Locale } from '@next-library/core';\n\ninterface LogoProps {\n className?: string;\n language?: Locale;\n title?: string;\n}\n\nexport function Logo({ className = '', language = 'en', title = '' }: LogoProps) {\n const translations = getTranslations(language);\n \n return (\n <Link\n href={`/${language}`}\n className={` font-bold hidden lg:flex text-lg hover:opacity-80 transition-opacity ${className}`}\n aria-label={translations.goToHomePage}\n >\n {/* Simple text logo - can be replaced with SVG/image later */}\n <div className=\"flex items-center gap-2\">\n <Image src=\"/logo.png\" alt={`${title} logo`} width={20} height={20} />\n <span\n className=\"items-center hidden xl:flex select-none text-md font-bold\"\n title={`${title} logo`}\n >\n {title}\n </span>\n </div>\n </Link>\n );\n}\n\n","'use client';\n\nimport React from 'react';\nimport Link from 'next/link';\n\ninterface Category {\n title: string;\n path: string;\n}\n\ninterface TopCategoriesProps {\n categories: Category[];\n className?: string;\n}\n\nexport function TopCategories({ categories, className = '' }: TopCategoriesProps) {\n if (categories.length === 0) {\n return null;\n }\n\n return (\n <nav\n className={`hidden md:flex items-center space-x-6 mr-2 ${className}`}\n aria-label=\"Top navigation categories\"\n >\n {categories.map((category) => (\n <Link\n key={category.path}\n href={category.path}\n className=\"text-sm text-gray-700 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition-colors\"\n >\n {category.title}\n </Link>\n ))}\n </nav>\n );\n}\n\n// Mobile version for responsive design\nexport function MobileTopCategories({ categories, className = '' }: TopCategoriesProps) {\n const [isOpen, setIsOpen] = React.useState(false);\n\n if (categories.length === 0) {\n return null;\n }\n\n return (\n <div className={`md:hidden ${className}`}>\n <button\n onClick={() => setIsOpen(!isOpen)}\n className=\"flex items-center space-x-1 px-3 py-2 text-sm font-medium text-gray-700 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition-colors\"\n aria-label=\"Toggle navigation menu\"\n aria-expanded={isOpen}\n >\n <span>Menu</span>\n <svg\n className={`h-4 w-4 transition-transform ${isOpen ? 'rotate-180' : ''}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n </button>\n\n {isOpen && (\n <>\n {/* Backdrop */}\n <div className=\"fixed inset-0 z-10\" onClick={() => setIsOpen(false)} />\n\n {/* Mobile menu */}\n <div className=\"absolute top-full left-0 mt-1 w-48 bg-white dark:bg-gray-800 rounded-md shadow-lg ring-1 ring-black ring-opacity-5 z-20\">\n <div className=\"py-1\" role=\"menu\">\n {categories.map((category) => (\n <Link\n key={category.path}\n href={category.path}\n className=\"block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-700 transition-colors\"\n role=\"menuitem\"\n onClick={() => setIsOpen(false)}\n >\n {category.title}\n </Link>\n ))}\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n\n","import * as React from 'react';\nimport { cn } from '../layout/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n\n","'use client';\n\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport { useRouter, usePathname } from 'next/navigation';\nimport { Search, Loader2, X } from 'lucide-react';\nimport type { ContentSearchResult } from '@next-library/core';\nimport { getTranslations } from '../../../lib/translations';\nimport { Input } from '../../ui/input';\nimport { cn } from '../../layout/utils';\nimport type { Locale } from '@next-library/core';\n\nconst INPUTS = new Set(['INPUT', 'SELECT', 'BUTTON', 'TEXTAREA']);\n\ninterface SearchBarProps {\n language?: Locale;\n className?: string;\n}\n\nexport function SearchBar({ language = 'en', className }: SearchBarProps) {\n const router = useRouter();\n const pathname = usePathname();\n const translations = getTranslations(language);\n const [query, setQuery] = useState('');\n const [results, setResults] = useState<ContentSearchResult[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n const [isMac, setIsMac] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(-1);\n const inputRef = useRef<HTMLInputElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const resultsRef = useRef<HTMLDivElement>(null);\n\n // Detect if running on Mac (client-side only)\n useEffect(() => {\n setIsMac(typeof navigator !== 'undefined' && navigator.userAgent.includes('Mac'));\n }, []);\n\n // Debounced search via API route\n useEffect(() => {\n if (!query.trim()) {\n setResults([]);\n setIsLoading(false);\n return;\n }\n\n setIsLoading(true);\n const timeoutId = setTimeout(async () => {\n try {\n // Always include language parameter (defaults to 'en' if not provided)\n const searchParams = new URLSearchParams({\n q: query,\n lang: language || 'en',\n });\n\n const response = await fetch(`/api/search?${searchParams.toString()}`);\n if (!response.ok) {\n throw new Error('Search request failed');\n }\n\n const data = await response.json();\n setResults(data.results || []);\n setIsLoading(false);\n setSelectedIndex(-1);\n } catch (error) {\n console.error('Search error:', error);\n setResults([]);\n setIsLoading(false);\n }\n }, 200);\n\n return () => clearTimeout(timeoutId);\n }, [query, language]);\n\n // Keyboard shortcuts (Cmd/Ctrl+K and /)\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n const el = document.activeElement;\n if (!el || INPUTS.has(el.tagName) || (el as HTMLElement).isContentEditable) {\n return;\n }\n\n // Handle / to open search\n if (event.key === '/' && !event.shiftKey) {\n event.preventDefault();\n inputRef.current?.focus({ preventScroll: true });\n setIsOpen(true);\n }\n\n // Handle Cmd/Ctrl+K to open search\n if (event.key === 'k' && !event.shiftKey && (isMac ? event.metaKey : event.ctrlKey)) {\n event.preventDefault();\n inputRef.current?.focus({ preventScroll: true });\n setIsOpen(true);\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [isMac]);\n\n // Handle keyboard navigation in results\n useEffect(() => {\n if (!isOpen || results.length === 0) return;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n setSelectedIndex((prev) => (prev < results.length - 1 ? prev + 1 : prev));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n setSelectedIndex((prev) => (prev > 0 ? prev - 1 : -1));\n } else if (event.key === 'Enter' && selectedIndex >= 0) {\n event.preventDefault();\n handleSelectResult(results[selectedIndex]);\n } else if (event.key === 'Escape') {\n event.preventDefault();\n setIsOpen(false);\n inputRef.current?.blur();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [isOpen, results, selectedIndex]);\n\n // Close results when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n // Scroll selected item into view\n useEffect(() => {\n if (selectedIndex >= 0 && resultsRef.current) {\n const selectedElement = resultsRef.current.children[selectedIndex] as HTMLElement;\n if (selectedElement) {\n selectedElement.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n }\n }\n }, [selectedIndex]);\n\n const handleSelectResult = useCallback(\n (result: ContentSearchResult) => {\n // Build the URL path\n const url = `/${result.language}/docs/${result.path}`;\n\n // Close search and navigate\n setIsOpen(false);\n setQuery('');\n setResults([]);\n inputRef.current?.blur();\n\n router.push(url);\n },\n [router]\n );\n\n const handleClear = useCallback(() => {\n setQuery('');\n setResults([]);\n inputRef.current?.focus();\n }, []);\n\n const handleFocus = useCallback(() => {\n setIsOpen(true);\n }, []);\n\n const handleBlur = useCallback(() => {\n // Delay to allow click on results to register\n setTimeout(() => {\n setIsOpen(false);\n }, 200);\n }, []);\n\n const showResults = isOpen && (query.trim().length > 0 || results.length > 0);\n\n return (\n <div className={cn('relative', className)} ref={containerRef}>\n {/* Search Input */}\n <div className=\"relative\">\n <div className=\"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\">\n {isLoading ? (\n <Loader2 className=\"h-4 w-4 text-muted-foreground animate-spin\" aria-hidden=\"true\" />\n ) : (\n <Search className=\"h-4 w-4 text-muted-foreground\" aria-hidden=\"true\" />\n )}\n </div>\n <Input\n ref={inputRef}\n type=\"text\"\n spellCheck={false}\n autoComplete=\"off\"\n className=\"pl-10 pr-20 min-w-[200px] max-w-[300px]\"\n placeholder={translations.searchPlaceholder}\n aria-label={translations.search}\n value={query}\n onChange={(e) => {\n setQuery(e.target.value);\n setIsOpen(true);\n }}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n <div className=\"absolute inset-y-0 right-0 pr-3 flex items-center justify-center w-12\">\n {query ? (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors\"\n aria-label=\"Clear search\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n ) : (\n <div className=\"pointer-events-none flex items-center justify-center\">\n <kbd className=\"hidden md:inline-flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100\">\n {isMac ? '⌘' : 'Ctrl'}+K\n </kbd>\n </div>\n )}\n </div>\n </div>\n\n {/* Search Results */}\n {showResults && (\n <div\n className=\"absolute top-full left-0 mt-2 w-full max-w-[500px] max-h-[400px] overflow-y-auto overflow-x-hidden bg-popover border rounded-md shadow-lg z-50\"\n ref={resultsRef}\n >\n {isLoading ? (\n <div className=\"p-4 text-center text-sm text-muted-foreground\">\n {translations.search}...\n </div>\n ) : results.length === 0 ? (\n <div className=\"p-4 text-center text-sm text-muted-foreground\">\n No results found\n </div>\n ) : (\n <div className=\"p-1\">\n {results.map((result, index) => (\n <button\n key={`${result.language}-${result.path}`}\n type=\"button\"\n onClick={() => handleSelectResult(result)}\n className={cn(\n 'w-full text-left px-3 py-2 rounded-sm hover:bg-accent hover:text-accent-foreground transition-colors',\n selectedIndex === index && 'bg-accent text-accent-foreground'\n )}\n >\n <div className=\"font-medium text-sm\">{result.title}</div>\n {result.description && (\n <div className=\"text-xs text-muted-foreground mt-1 line-clamp-2\">\n {result.description}\n </div>\n )}\n </button>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n","'use client';\n\nimport React from 'react';\nimport { useTheme } from 'next-themes';\n\nexport function ThemeSwitcher() {\n const { resolvedTheme, setTheme } = useTheme();\n const otherTheme = resolvedTheme === 'dark' ? 'light' : 'dark';\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n return (\n <button\n type=\"button\"\n className=\"flex h-9 w-9 items-center rounded-full justify-center transition-colors\"\n aria-label={mounted ? `Switch to ${otherTheme} theme` : 'Toggle theme'}\n onClick={() => setTheme(otherTheme)}\n >\n <SunIcon className=\"h-6 w-6 stroke-current dark:hidden\" />\n <MoonIcon className=\"hidden h-6 w-6 stroke-current dark:block\" />\n </button>\n );\n}\n\nfunction SunIcon(props: React.ComponentPropsWithoutRef<'svg'>) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\" {...props}>\n <path d=\"M12.5 10a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Z\" />\n <path\n strokeLinecap=\"round\"\n d=\"M10 5.5v-1M13.182 6.818l.707-.707M14.5 10h1M13.182 13.182l.707.707M10 15.5v-1M6.11 13.889l.708-.707M4.5 10h1M6.11 6.111l.708.707\"\n />\n </svg>\n );\n}\n\nfunction MoonIcon(props: React.ComponentPropsWithoutRef<'svg'>) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\" {...props}>\n <path d=\"M15.224 11.724a5.5 5.5 0 0 1-6.949-6.949 5.5 5.5 0 1 0 6.949 6.949Z\" />\n </svg>\n );\n}\n\n","'use client';\n\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../layout/utils';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-10 px-4 py-2',\n sm: 'h-9 rounded-md px-3',\n lg: 'h-11 rounded-md px-8',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />\n );\n }\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n\n","'use client';\n\nimport * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\nimport { cn } from '../layout/utils';\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive! [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn('px-2 py-1.5 text-sm font-medium data-inset:pl-8', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-inset:pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n","'use client';\n\nimport React from 'react';\nimport { useLocale } from '@next-library/core/hooks';\nimport { Button } from '../../ui/button';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '../../ui/dropdown-menu';\nimport { LanguagesIcon } from 'lucide-react';\n\ninterface LocaleOption {\n code: string;\n nativeName: string;\n}\n\ninterface LanguageSwitcherProps {\n className?: string;\n availableLocales?: string[];\n localeConfigs?: LocaleOption[];\n}\n\nexport function LanguageSwitcher({\n className = '',\n availableLocales: propLocales,\n localeConfigs\n}: LanguageSwitcherProps) {\n const { locale, availableLocales: hookLocales, changeLocale, isLoading } = useLocale();\n // Use prop locales if provided (from server), otherwise use hook locales\n const availableLocales = propLocales && propLocales.length > 0 ? propLocales : hookLocales;\n\n if (isLoading) {\n return (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className={`flex h-9 w-9 items-center rounded-full justify-center ${className}`}\n >\n <LanguagesIcon className=\"h-4 w-4\" data-testid=\"globe-icon\" />\n </Button>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"flex h-9 w-9 items-center rounded-full justify-center\"\n aria-label=\"Select language\"\n aria-haspopup=\"true\"\n >\n <LanguagesIcon className=\"h-4 w-4\" data-testid=\"globe-icon\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"dark:bg-black\">\n {availableLocales.map((availableLocale) => {\n // Use locale config from server if provided, otherwise fallback to locale code\n const localeConfig = localeConfigs?.find(config => config.code === availableLocale);\n const nativeName = localeConfig?.nativeName || availableLocale.toUpperCase();\n const isActive = availableLocale === locale;\n\n return (\n <DropdownMenuItem\n key={availableLocale}\n onClick={() => changeLocale(availableLocale)}\n className={`${isActive ? 'bg-accent text-accent-foreground' : ''}`}\n >\n {nativeName}\n </DropdownMenuItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\n","'use client';\n\nimport { cn } from '../layout/utils';\nimport * as React from 'react';\nimport { Drawer as DrawerPrimitive } from 'vaul';\n\nfunction Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />;\n}\n\nfunction DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n 'group/drawer-content bg-background fixed z-50 flex h-auto flex-col',\n 'data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b',\n 'data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t',\n 'data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm',\n 'data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm',\n className\n )}\n {...props}\n >\n <div className=\"bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n 'flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn('text-foreground font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n\n","'use client';\n\nimport * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener('change', onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener('change', onChange);\n }, []);\n\n return !!isMobile;\n}\n\n","'use client';\n\nimport * as React from 'react';\nimport * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport { cn } from '../layout/utils';\n\nfunction Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n\n","'use client';\n\nimport * as React from 'react';\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\nimport { cn } from '../layout/utils';\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger({ ...props }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({ ...props }: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nfunction SheetPortal({ ...props }: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SheetContent({\n className,\n children,\n side = 'right',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left';\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n side === 'right' &&\n 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',\n side === 'left' &&\n 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm',\n side === 'top' &&\n 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b',\n side === 'bottom' &&\n 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t',\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none\">\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn('flex flex-col gap-1.5 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn('text-foreground font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n\n","import * as React from 'react';\nimport { cn } from '../layout/utils';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn('bg-accent animate-pulse', className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n\n","'use client';\n\nimport * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport { cn } from '../layout/utils';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance',\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n\n","'use client';\n\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { PanelLeftIcon } from 'lucide-react';\n\nimport { useIsMobile } from '../../hooks/use-mobile';\nimport { cn } from '../layout/utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex w-full',\n className\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n 'bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)'\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('size-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex',\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col',\n 'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('bg-background h-8 w-full shadow-none', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('bg-sidebar-border mx-2 w-auto', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border ml-3 flex min-w-0 translate-x-px flex-col gap-1 border-l pl-3 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n}) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n\n","'use client';\n\nimport * as React from 'react';\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\n\nfunction Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return <CollapsiblePrimitive.CollapsibleTrigger data-slot=\"collapsible-trigger\" {...props} />;\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return <CollapsiblePrimitive.CollapsibleContent data-slot=\"collapsible-content\" {...props} />;\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n\n","'use client';\n\nimport {\n SidebarContent,\n SidebarMenu,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarProvider,\n} from '../../ui/sidebar';\nimport type { SidebarNode } from '@next-library/core';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../ui/collapsible';\nimport {\n ChevronRight,\n ChevronDown,\n FolderOpenIcon,\n FolderClosedIcon,\n FileTextIcon,\n} from 'lucide-react';\nimport Link from 'next/link';\nimport type { Locale } from '@next-library/core';\n\ninterface SidebarNavigationProps {\n nodes: SidebarNode[];\n currentPath?: string;\n language?: Locale;\n translations?: {\n toggleFolder?: string;\n };\n}\n\n// Helper function to check if a node is the current active page\nfunction isActiveNode(node: SidebarNode, currentPath?: string): boolean {\n if (!currentPath || !node.websitePath) return false;\n\n // Normalize paths for comparison\n const nodePath = node.websitePath.replace(/\\/$/, ''); // Remove trailing slash\n const normalizedCurrentPath = currentPath.replace(/\\/$/, ''); // Remove trailing slash\n\n return nodePath === normalizedCurrentPath;\n}\n\n// Helper function to check if any child is active (for parent highlighting)\nfunction hasActiveChild(node: SidebarNode, currentPath?: string): boolean {\n if (!currentPath || !node.children) return false;\n\n return Object.values(node.children).some(\n (child) => isActiveNode(child, currentPath) || hasActiveChild(child, currentPath)\n );\n}\n\nexport function SidebarNavigation({\n nodes,\n currentPath,\n language = 'en',\n translations = {},\n}: SidebarNavigationProps) {\n const { toggleFolder = 'Toggle folder' } = translations;\n\n return (\n <SidebarProvider>\n <SidebarContent className=\"overflow-hidden p-1\">\n {nodes.map((node) => {\n if (!node.websitePath) return null;\n \n const isActive = isActiveNode(node, currentPath);\n const hasActiveChildNode = hasActiveChild(node, currentPath);\n\n return node.children && Object.keys(node.children).length > 0 ? (\n <Collapsible key={node.websitePath} className=\"group/collapsible\">\n <SidebarMenu key={`menu-${node.websitePath}`}>\n <SidebarMenuItem key={node.websitePath}>\n <div className=\"flex flex-nowrap items-center gap-2\">\n <Link\n href={node.websitePath}\n className={`flex flex-nowrap items-center gap-2 flex-auto p-2 rounded-md hover:bg-neutral-100 dark:hover:bg-neutral-900 ${isActive\n ? 'bg-blue-50 dark:bg-blue-900/20 dark:border-blue-400 border-blue-600'\n : hasActiveChildNode\n ? 'bg-blue-50/50 dark:bg-blue-900/10'\n : ''\n }`}\n >\n <div className=\"flex-none\">\n <FolderOpenIcon className=\"h-4 w-4 group-data-[state=closed]/collapsible:hidden\" />\n <FolderClosedIcon className=\"h-4 w-4 group-data-[state=open]/collapsible:hidden\" />\n </div>\n <span className={`flex-auto ${isActive ? 'font-medium' : ''}`}>\n {node.title}\n </span>\n </Link>\n <CollapsibleTrigger\n className=\"p-2 rounded-md hover:bg-neutral-100 dark:hover:bg-neutral-900 self-end\"\n aria-label={`${toggleFolder}: ${node.title}`}\n >\n <ChevronRight\n className=\"h-4 w-4 group-data-[state=open]/collapsible:hidden\"\n aria-hidden=\"true\"\n />\n <ChevronDown\n className=\"h-4 w-4 group-data-[state=closed]/collapsible:hidden\"\n aria-hidden=\"true\"\n />\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent>\n <SidebarMenuSub>\n {Object.entries(node.children || {}).map(([, child]) => {\n if (!child.websitePath) return null;\n \n const isChildActive = isActiveNode(child, currentPath);\n return (\n <SidebarMenuItem key={child.websitePath}>\n <Link\n href={child.websitePath}\n className={`flex items-center gap-2 p-2 rounded-md hover:bg-neutral-100 dark:hover:bg-neutral-900 ${isChildActive\n ? 'bg-blue-50 dark:bg-blue-900/20 border dark:border-blue-400 border-blue-600 font-medium'\n : ''\n }`}\n >\n {child.children && Object.keys(child.children).length > 0 ? (\n <FolderClosedIcon className=\"h-4 w-4 flex-none\" />\n ) : (\n <FileTextIcon className=\"h-4 w-4 flex-none\" />\n )}\n <span className=\"\">{child.title}</span>\n </Link>\n </SidebarMenuItem>\n );\n })}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </SidebarMenu>\n </Collapsible>\n ) : (\n <SidebarMenu key={`menu-${node.websitePath}`}>\n <SidebarMenuItem key={node.websitePath}>\n <Link\n href={node.websitePath}\n className={`flex items-center gap-2 p-2 rounded-md hover:bg-neutral-100 dark:hover:bg-neutral-900 ${isActive\n ? 'bg-blue-50 dark:bg-blue-900/20 dark:border-blue-400 border border-blue-600 font-medium'\n : ''\n }`}\n >\n <FileTextIcon className=\"h-4 w-4 flex-none\" />\n <span className=\"\">{node.title}</span>\n </Link>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n })}\n </SidebarContent>\n </SidebarProvider>\n );\n}\n","'use client';\n\nimport { Menu } from 'lucide-react';\nimport { Button } from '../../ui/button';\nimport {\n Drawer,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerDescription,\n DrawerTrigger,\n} from '../../ui/drawer';\nimport { Parent } from '../sidebar-left/parent';\nimport { Toolbox } from '../sidebar-left/toolbox';\nimport { SidebarNavigation } from '../sidebar-left/sidebar';\nimport type { PageData, Locale } from '@next-library/core';\n\ninterface MobileMenuProps {\n pageData?: PageData;\n translations?: {\n openMobileMenu?: string;\n navigation?: string;\n mobileMenuDescription?: string;\n };\n}\n\nexport function MobileMenu({ pageData, translations = {} }: MobileMenuProps) {\n if (!pageData) {\n return null;\n }\n\n const {\n openMobileMenu = 'Open mobile menu',\n navigation = 'Navigation',\n mobileMenuDescription = 'Mobile navigation menu',\n } = translations;\n\n const { sidebar, navigation: nav, computed } = pageData;\n\n return (\n <div className=\"lg:hidden\">\n <Drawer direction=\"right\">\n <DrawerTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-9 w-9\">\n <Menu className=\"h-4 w-4\" />\n <span className=\"sr-only\">{openMobileMenu}</span>\n </Button>\n </DrawerTrigger>\n <DrawerContent className=\"h-full w-[85vw] sm:w-[400px]\">\n <DrawerHeader className=\"sr-only\">\n <DrawerTitle>{navigation}</DrawerTitle>\n <DrawerDescription>{mobileMenuDescription}</DrawerDescription>\n </DrawerHeader>\n <div className=\"flex flex-col gap-4 p-4 overflow-y-auto\">\n <Parent\n parent={sidebar.parent}\n currentPath={`${computed.lang}/docs/${computed.path}`}\n />\n <Toolbox\n currentLevel={sidebar.currentLevel}\n parent={sidebar.parent}\n grandparent={sidebar.grandparent}\n previousPage={nav.previous}\n nextPage={nav.next}\n lang={computed.lang}\n path={computed.path}\n />\n <SidebarNavigation\n nodes={sidebar.items}\n currentPath={`/${computed.lang}/docs/${computed.path}`}\n language={computed.lang}\n />\n </div>\n </DrawerContent>\n </Drawer>\n </div>\n );\n}\n\n","'use client';\n\nimport React, { useEffect, useState } from 'react';\nimport GitHubButton from 'react-github-btn';\nimport { Skeleton } from '../../ui/skeleton';\n\ninterface GithubStarProps {\n repoUrl?: string;\n}\n\nexport function GithubStar({ repoUrl }: GithubStarProps) {\n const [isVisible, setIsVisible] = useState(false);\n\n useEffect(() => {\n // Hide the button initially to prevent showing \"Star\" before the count loads\n // Show it after a delay to allow GitHub's script to load and render the count\n // This gives enough time for the async GitHub API call to complete\n const timer = setTimeout(() => {\n setIsVisible(true);\n }, 500);\n\n return () => clearTimeout(timer);\n }, []);\n\n if (!repoUrl) {\n return null;\n }\n\n return (\n <div className=\"h-5 relative flex items-center\">\n {!isVisible && (\n <Skeleton className=\"w-16 h-5 rounded-xs\" />\n )}\n <div\n className={isVisible ? 'opacity-100' : 'opacity-0'}\n style={{\n transition: 'opacity 0.3s ease-in',\n pointerEvents: isVisible ? 'auto' : 'none',\n minHeight: '20px', // Prevent layout shift\n }}\n >\n <GitHubButton\n href={repoUrl}\n data-color-scheme=\"no-preference: dark-high-contrast; light: light; dark: dark-high-contrast;\"\n data-icon=\"octicon-star\"\n data-show-count=\"true\"\n aria-label=\"Star on GitHub\"\n >\n Star\n </GitHubButton>\n </div>\n </div>\n );\n}\n\n","import Link from 'next/link';\nimport { GithubIcon } from 'lucide-react';\nimport { buttonVariants } from '../../ui/button';\nimport type { Locale } from '@next-library/core';\n\ninterface GithubLinkProps {\n language?: Locale;\n repoUrl?: string;\n}\n\nexport function GithubLink({ language = 'en', repoUrl }: GithubLinkProps) {\n if (!repoUrl) {\n return null;\n }\n\n // Build URL based on language\n let url = repoUrl;\n if (language !== 'en') {\n // Add language-specific path for non-English locales\n url = `${repoUrl}/tree/main/i18n/${language}`;\n }\n\n return (\n <Link\n href={url}\n className={buttonVariants({ variant: 'ghost', size: 'icon' })}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"View source on GitHub\"\n >\n <GithubIcon />\n </Link>\n );\n}\n\n","'use client';\n\nimport React from 'react';\nimport { cn } from '../../layout/utils';\nimport { getTranslations } from '../../../lib/translations';\nimport type { Locale, TableOfContentsItem } from '@next-library/core';\n\ninterface TableOfContentsProps {\n toc: TableOfContentsItem[];\n className?: string;\n lang: Locale;\n translations?: {\n tableOfContents?: string;\n };\n}\n\n// Individual TOC item component\nfunction TOCItem({\n item,\n level = 0,\n path = '',\n}: {\n item: TableOfContentsItem;\n level?: number;\n path?: string;\n}) {\n // Create a unique path for this item\n const uniquePath = path ? `${path}/${item.id}` : item.id;\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault();\n const element = document.getElementById(item.id);\n if (element) {\n // Get the navbar height to add offset\n const navbar = document.querySelector('nav') || document.querySelector('[data-navbar]');\n const navbarHeight = navbar ? navbar.offsetHeight : 80; // fallback to 80px\n\n // Calculate the position with offset\n const elementPosition = element.offsetTop - navbarHeight - 20; // 20px additional padding\n\n window.scrollTo({\n top: elementPosition,\n behavior: 'smooth',\n });\n }\n };\n\n return (\n <li className={cn('text-sm', level === 0 ? 'font-medium' : 'font-normal')}>\n <a\n href={`#${item.id}`}\n className={cn(\n 'text-neutral-700 hover:text-neutral-300 dark:text-neutral-300 block py-1',\n 'hover:bg-neutral-100 dark:hover:bg-neutral-900 rounded px-2',\n ''\n )}\n onClick={handleClick}\n >\n {item.text}\n </a>\n {item.children && item.children.length > 0 && (\n <ul className={cn('pl-4 space-y-1 mt-1', level === 0 ? 'list-none' : 'list-disc ml-4')}>\n {item.children.map((child: TableOfContentsItem) => (\n <TOCItem\n key={`${uniquePath}/${child.id}`}\n item={child}\n level={level + 1}\n path={uniquePath}\n />\n ))}\n </ul>\n )}\n </li>\n );\n}\n\n// Main TableOfContents component\nexport function TableOfContents({ toc, className, lang, translations = {} }: TableOfContentsProps) {\n const defaultTranslations = getTranslations(lang);\n const { tableOfContents: tocLabel = defaultTranslations.tableOfContents } = translations;\n\n // Don't render if no TOC\n if (!toc || toc.length === 0) {\n return null;\n }\n\n return (\n <div className={className}>\n <h3 className=\"font-medium text-sm mb-2\">{tocLabel}</h3>\n <nav>\n <ul className=\"space-y-1 list-none\">\n {toc.map((item) => (\n <TOCItem key={item.id} item={item} />\n ))}\n </ul>\n </nav>\n </div>\n );\n}\n","'use client';\n\nimport * as React from 'react';\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport { cn } from '../layout/utils';\n\nfunction Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', className)}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('aspect-square size-full object-cover', className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('bg-muted flex size-full items-center justify-center rounded-full', className)}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback };\n\n","import React from 'react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../../ui/avatar';\nimport Link from 'next/link';\nimport { getTranslations } from '../../../lib/translations';\nimport type { Contributor } from '@next-library/core';\nimport type { Locale } from '@next-library/core';\n\ninterface GithubContributorsProps {\n contributors: Contributor[];\n githubPath?: string;\n locale: Locale;\n translations?: {\n contributors?: string;\n };\n}\n\n/**\n * Optimize GitHub avatar URL by appending size parameter\n * GitHub supports &s=64 for 64x64 pixel images (perfect for avatars)\n * Documentation: https://docs.github.com/en/rest/users/users#get-a-user\n */\nexport function optimizeAvatarUrl(url: string): string {\n if (url && url.includes('avatars.githubusercontent.com')) {\n // Check if already has size parameter\n if (!url.includes('&s=') && !url.includes('?s=')) {\n return `${url}&s=64`;\n }\n }\n return url;\n}\n\nexport function GithubContributors({\n contributors,\n githubPath,\n locale,\n translations = {},\n}: GithubContributorsProps) {\n const defaultTranslations = getTranslations(locale);\n const { contributors: contributorsLabel = defaultTranslations.contributors } = translations;\n\n // Don't render if no contributors\n if (contributors.length === 0) {\n return null;\n }\n\n return (\n <div className=\"w-full\">\n <h3 className=\"font-medium text-sm mb-2\">{contributorsLabel}</h3>\n <div className=\"isolate flex -space-x-2 overflow-hidden pl-1\">\n {contributors.slice(0, 8).map((contributor, index) => (\n <Link\n key={contributor.username}\n href={contributor.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`relative inline-block z-${90 - index * 10}`}\n >\n <Avatar className=\"w-10 h-10\">\n <AvatarImage\n src={optimizeAvatarUrl(contributor.image)}\n alt={contributor.username}\n className=\"object-cover\"\n />\n <AvatarFallback>{contributor.username[0]}</AvatarFallback>\n </Avatar>\n </Link>\n ))}\n {contributors.length > 8 && (\n <Link\n key=\"8+\"\n href={`https://github.com/${githubPath || ''}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`relative inline-block z-0`}\n >\n <Avatar className=\"w-10 h-10\">\n <AvatarImage color=\"white\" />\n <AvatarFallback>\n <span className=\"font-bold\">+{contributors.length - 8}</span>\n </AvatarFallback>\n </Avatar>\n </Link>\n )}\n </div>\n </div>\n );\n}\n","import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport { cn } from '../layout/utils';\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<'nav'>) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />;\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n 'text-muted-foreground flex items-center gap-1.5 text-sm sm:gap-2.5',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn('inline-flex items-center gap-1.5', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n data-slot=\"breadcrumb-link\"\n className={cn('hover:text-foreground transition-colors', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('text-foreground font-normal', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:size-3.5', className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex size-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n\n","'use client';\n\nimport * as React from 'react';\n\nexport function useMediaQuery(query: string) {\n const [value, setValue] = React.useState(false);\n\n React.useEffect(() => {\n function onChange(event: MediaQueryListEvent) {\n setValue(event.matches);\n }\n\n const result = matchMedia(query);\n result.addEventListener('change', onChange);\n setValue(result.matches);\n\n return () => result.removeEventListener('change', onChange);\n }, [query]);\n\n return value;\n}\n\n","'use client';\n\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport { useMediaQuery } from '../../hooks/use-media-query';\nimport { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink } from './breadcrumb';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from './dropdown-menu';\nimport {\n Drawer,\n DrawerContent,\n DrawerFooter,\n DrawerClose,\n DrawerTrigger,\n} from './drawer';\nimport { Button } from './button';\nimport Link from 'next/link';\n\nexport interface BreadcrumbItemType {\n href?: string;\n label: string;\n isCurrentPage?: boolean;\n}\n\nexport interface BreadcrumbToggleProps {\n overflowItems: BreadcrumbItemType[];\n className?: string;\n}\n\nexport function BreadcrumbToggle({ overflowItems, className }: BreadcrumbToggleProps) {\n const [open, setOpen] = React.useState(false);\n const isDesktop = useMediaQuery('(min-width: 768px)');\n\n const handleOverflowItemClick = useCallback(() => {\n setOpen(false);\n }, []);\n\n if (overflowItems.length === 0) {\n return null;\n }\n\n return (\n <BreadcrumbItem className={className}>\n {isDesktop ? (\n <DropdownMenu open={open} onOpenChange={setOpen}>\n <DropdownMenuTrigger\n className=\"flex items-center gap-1\"\n aria-label=\"Show more breadcrumb items\"\n >\n <BreadcrumbEllipsis className=\"size-4\" />\n <span className=\"sr-only\">Toggle menu</span>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" className=\"bg-white dark:bg-black\">\n {overflowItems.map((item, index) => (\n <DropdownMenuItem key={index} onClick={handleOverflowItemClick}>\n <BreadcrumbLink asChild>\n <Link\n href={item.href || '#'}\n className=\"w-full\"\n aria-label={`Navigate to ${item.label}`}\n >\n {item.label}\n </Link>\n </BreadcrumbLink>\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n ) : (\n <Drawer open={open} onOpenChange={setOpen}>\n <DrawerTrigger aria-label=\"Show more breadcrumb items\">\n <BreadcrumbEllipsis className=\"h-4 w-4\" />\n </DrawerTrigger>\n <DrawerContent>\n <div className=\"grid gap-1 p-4 overflow-y-auto\">\n {overflowItems.map((item, index) => (\n <Link\n key={index}\n href={item.href || '#'}\n className=\"py-2 px-3 text-sm rounded-md hover:bg-muted transition-colors\"\n onClick={handleOverflowItemClick}\n aria-label={`Navigate to ${item.label}`}\n >\n {item.label}\n </Link>\n ))}\n </div>\n <DrawerFooter className=\"pt-4\">\n <DrawerClose asChild>\n <Button variant=\"outline\">Close</Button>\n </DrawerClose>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n )}\n </BreadcrumbItem>\n );\n}\n\n","'use client';\n\nimport * as React from 'react';\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbSeparator,\n} from '../../ui/breadcrumb';\nimport { BreadcrumbToggle } from '../../ui/breadcrumb-toggle';\nimport { getTranslations } from '../../../lib/translations';\nimport type { PageData, Locale } from '@next-library/core';\nimport { Home } from 'lucide-react';\nimport Link from 'next/link';\n\nexport interface BreadcrumbsProps {\n data: PageData;\n isLoading?: boolean;\n className?: string;\n locale?: Locale;\n}\n\nexport function Breadcrumbs({ data, isLoading = false, className, locale = 'en' }: BreadcrumbsProps) {\n const { navigation } = data;\n const breadcrumbs = navigation.breadcrumbs;\n const translations = getTranslations(locale);\n\n if (breadcrumbs.length === 1) {\n return null;\n }\n\n if (isLoading) {\n return (\n <Breadcrumb className={className} id=\"breadcrumbs\">\n <BreadcrumbList>\n <BreadcrumbItem>\n <div className=\"h-4 w-4 bg-muted animate-pulse rounded\" />\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <div className=\"h-4 w-20 bg-muted animate-pulse rounded\" />\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n );\n }\n\n // Handle responsive overflow\n const ITEMS_TO_DISPLAY = 3;\n const hasOverflow = breadcrumbs.length > ITEMS_TO_DISPLAY;\n // Overflow items are everything between Home (index 0) and the last 2 items\n const overflowItems = hasOverflow ? breadcrumbs.slice(1, -2) : [];\n // Visible items are the last 2 items (excluding Home which is shown separately)\n const visibleItems = hasOverflow ? breadcrumbs.slice(-2) : breadcrumbs.slice(1);\n\n return (\n <Breadcrumb className={className} id=\"breadcrumbs\">\n <BreadcrumbList>\n {/* Home Icon - Always visible */}\n <BreadcrumbItem>\n <BreadcrumbLink asChild>\n <Link href={breadcrumbs[0]?.href || '#'} aria-label={translations.goToHomePage}>\n <Home className=\"h-4 w-4\" />\n </Link>\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n\n {/* Overflow Menu */}\n {hasOverflow && (\n <>\n <BreadcrumbToggle overflowItems={overflowItems} />\n <BreadcrumbSeparator />\n </>\n )}\n\n {/* Visible Breadcrumb Items */}\n {visibleItems.map((item, index) => {\n const isLast = index === visibleItems.length - 1;\n return (\n <React.Fragment key={index}>\n <BreadcrumbItem>\n <BreadcrumbLink asChild className={!isLast ? 'whitespace-nowrap' : 'line-clamp-1'}>\n <Link href={item.href || '#'} aria-label={`Navigate to ${item.label}`}>\n {item.label}\n </Link>\n </BreadcrumbLink>\n </BreadcrumbItem>\n {index < visibleItems.length - 1 && <BreadcrumbSeparator />}\n </React.Fragment>\n );\n })}\n </BreadcrumbList>\n </Breadcrumb>\n );\n}\n\n","import * as React from 'react';\nimport { cn } from '../layout/utils';\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('rounded-lg border bg-card text-card-foreground shadow-sm', className)}\n {...props}\n />\n )\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n )\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn('text-2xl font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n));\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n )\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n )\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n\n","import React from 'react';\nimport Link from 'next/link';\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from '../../ui/card';\nimport { ExternalLinkIcon } from 'lucide-react';\nimport type { SidebarNode } from '@next-library/core';\n\ninterface FolderCardsProps {\n nodes: SidebarNode[];\n}\n\nexport function FolderCards({ nodes }: FolderCardsProps) {\n return (\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {nodes.map((node) => (\n <Card\n key={node.websitePath}\n className=\"hover:bg-accent transition-colors border relative group\"\n >\n <Link href={node.websitePath || ''} className=\"block h-full\">\n <CardHeader className=\"pb-3\">\n <div className=\"flex items-start justify-between gap-2\">\n <CardTitle className=\"text-base font-medium leading-tight pr-6\">\n {node.title}\n </CardTitle>\n <ExternalLinkIcon className=\"size-4 text-muted-foreground shrink-0 absolute top-4 right-4\" />\n </div>\n </CardHeader>\n {(() => {\n const description = node.frontmatter?.description;\n return description && typeof description === 'string' ? (\n <CardContent className=\"pt-0\">\n <CardDescription className=\"text-sm text-muted-foreground\">\n {description}\n </CardDescription>\n </CardContent>\n ) : null;\n })()}\n </Link>\n </Card>\n ))}\n </div>\n );\n}\n\n","'use client';\n\nimport ReactMarkdown from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport remarkLint from 'remark-lint';\nimport remarkFrontmatter from 'remark-frontmatter';\nimport rehypeSanitize from 'rehype-sanitize';\nimport rehypeSlug from 'rehype-slug';\nimport rehypeCallouts from 'rehype-callouts';\nimport rehypeExternalLinks from 'rehype-external-links';\nimport rehypeMathJax from 'rehype-mathjax';\nimport rehypeHighlight from 'rehype-highlight';\nimport rehypeAutolinkHeadings from 'rehype-autolink-headings';\n\ninterface MarkdownRendererProps {\n markdown: string;\n className?: string;\n}\n\nexport function MarkdownRenderer({ markdown, className = '' }: MarkdownRendererProps) {\n return (\n <article className={`prose prose-md max-w-none dark:prose-invert ${className}`}>\n <ReactMarkdown\n remarkPlugins={[\n remarkLint as any,\n remarkGfm,\n remarkFrontmatter\n ]}\n rehypePlugins={[\n rehypeSanitize,\n rehypeSlug,\n rehypeAutolinkHeadings,\n rehypeCallouts,\n rehypeExternalLinks,\n rehypeMathJax,\n rehypeHighlight,\n ]}\n components={{\n h1: () => null,\n }}\n >\n {markdown}\n </ReactMarkdown>\n </article>\n );\n}\n\n","'use client';\n\nimport { useEffect, useState } from 'react';\nimport { CopyIcon, ChevronDownIcon, ExternalLinkIcon } from 'lucide-react';\nimport { Button } from '../ui/button';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '../ui/dropdown-menu';\nimport { cn } from '../layout/utils';\nimport { getTranslations } from '../../lib/translations';\nimport type { Locale } from '@next-library/core';\n\n// ChatGPT Icon Component\nfunction ChatGPTIcon({ className }: { className?: string }) {\n return (\n <svg\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path d=\"M11.2475 18.25C10.6975 18.25 10.175 18.1455 9.67999 17.9365C9.18499 17.7275 8.74499 17.436 8.35999 17.062C7.94199 17.205 7.50749 17.2765 7.05649 17.2765C6.31949 17.2765 5.63749 17.095 5.01049 16.732C4.38349 16.369 3.87749 15.874 3.49249 15.247C3.11849 14.62 2.93149 13.9215 2.93149 13.1515C2.93149 12.8325 2.97549 12.486 3.06349 12.112C2.62349 11.705 2.28249 11.2375 2.04049 10.7095C1.79849 10.1705 1.67749 9.6095 1.67749 9.0265C1.67749 8.4325 1.80399 7.8605 2.05699 7.3105C2.30999 6.7605 2.66199 6.2875 3.11299 5.8915C3.57499 5.4845 4.10849 5.204 4.71349 5.05C4.83449 4.423 5.08749 3.862 5.47249 3.367C5.86849 2.861 6.35249 2.465 6.92449 2.179C7.49649 1.893 8.10699 1.75 8.75599 1.75C9.30599 1.75 9.82849 1.8545 10.3235 2.0635C10.8185 2.2725 11.2585 2.564 11.6435 2.938C12.0615 2.795 12.496 2.7235 12.947 2.7235C13.684 2.7235 14.366 2.905 14.993 3.268C15.62 3.631 16.1205 4.126 16.4945 4.753C16.8795 5.38 17.072 6.0785 17.072 6.8485C17.072 7.1675 17.028 7.514 16.94 7.888C17.38 8.295 17.721 8.768 17.963 9.307C18.205 9.835 18.326 10.3905 18.326 10.9735C18.326 11.5675 18.1995 12.1395 17.9465 12.6895C17.6935 13.2395 17.336 13.718 16.874 14.125C16.423 14.521 15.895 14.796 15.29 14.95C15.169 15.577 14.9105 16.138 14.5145 16.633C14.1295 17.139 13.651 17.535 13.079 17.821C12.507 18.107 11.8965 18.25 11.2475 18.25ZM7.17199 16.1875C7.72199 16.1875 8.20049 16.072 8.60749 15.841L11.7095 14.059C11.8195 13.982 11.8745 13.8775 11.8745 13.7455V12.3265L7.88149 14.62C7.63949 14.763 7.39749 14.763 7.15549 14.62L4.03699 12.8215C4.03699 12.8545 4.03149 12.893 4.02049 12.937C4.02049 12.981 4.02049 13.047 4.02049 13.135C4.02049 13.696 4.15249 14.213 4.41649 14.686C4.69149 15.148 5.07099 15.511 5.55499 15.775C6.03899 16.05 6.57799 16.1875 7.17199 16.1875ZM7.33699 13.498C7.40299 13.531 7.46349 13.5475 7.51849 13.5475C7.57349 13.5475 7.62849 13.531 7.68349 13.498L8.92099 12.7885L4.94449 10.4785C4.70249 10.3355 4.58149 10.121 4.58149 9.835V6.2545C4.03149 6.4965 3.59149 6.8705 3.26149 7.3765C2.93149 7.8715 2.76649 8.4215 2.76649 9.0265C2.76649 9.5655 2.90399 10.0825 3.17899 10.5775C3.45399 11.0725 3.81149 11.4465 4.25149 11.6995L7.33699 13.498ZM11.2475 17.161C11.8305 17.161 12.3585 17.029 12.8315 16.765C13.3045 16.501 13.6785 16.138 13.9535 15.676C14.2285 15.214 14.366 14.697 14.366 14.125V10.561C14.366 10.429 14.311 10.33 14.201 10.264L12.947 9.538V14.1415C12.947 14.4275 12.826 14.642 12.584 14.785L9.46549 16.5835C10.0045 16.9685 10.5985 17.161 11.2475 17.161ZM11.8745 11.122V8.878L10.01 7.822L8.12899 8.878V11.122L10.01 12.178L11.8745 11.122ZM7.05649 5.8585C7.05649 5.5725 7.17749 5.358 7.41949 5.215L10.538 3.4165C9.99899 3.0315 9.40499 2.839 8.75599 2.839C8.17299 2.839 7.64499 2.971 7.17199 3.235C6.69899 3.499 6.32499 3.862 6.04999 4.324C5.78599 4.786 5.65399 5.303 5.65399 5.875V9.4225C5.65399 9.5545 5.70899 9.659 5.81899 9.736L7.05649 10.462V5.8585ZM15.4385 13.7455C15.9885 13.5035 16.423 13.1295 16.742 12.6235C17.072 12.1175 17.237 11.5675 17.237 10.9735C17.237 10.4345 17.0995 9.9175 16.8245 9.4225C16.5495 8.9275 16.192 8.5535 15.752 8.3005L12.6665 6.5185C12.6005 6.4745 12.54 6.458 12.485 6.469C12.43 6.469 12.375 6.4855 12.32 6.5185L11.0825 7.2115L15.0755 9.538C15.1965 9.604 15.2845 9.692 15.3395 9.802C15.4055 9.901 15.4385 10.022 15.4385 10.165V13.7455ZM12.122 5.3635C12.364 5.2095 12.606 5.2095 12.848 5.3635L15.983 7.195C15.983 7.118 15.983 7.019 15.983 6.898C15.983 6.37 15.851 5.8695 15.587 5.3965C15.334 4.9125 14.9655 4.5275 14.4815 4.2415C14.0085 3.9555 13.4585 3.8125 12.8315 3.8125C12.2815 3.8125 11.803 3.928 11.396 4.159L8.29399 5.941C8.18399 6.018 8.12899 6.1225 8.12899 6.2545V7.6735L12.122 5.3635Z\" />\n </svg>\n );\n}\n\n// Claude Icon Component\nfunction ClaudeIcon({ className }: { className?: string }) {\n return (\n <svg\n viewBox=\"0 0 100 101\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path d=\"M96.0000 40.0000 L99.5002 42.0000 L99.5002 43.5000 L98.5000 47.0000 L56.0000 57.0000 L52.0040 47.0708 L96.0000 40.0000 M96.0000 40.0000 \" />\n <path d=\"M80.1032 10.5903 L84.9968 11.6171 L86.2958 13.2179 L87.5346 17.0540 L87.0213 19.5007 L58.5000 58.5000 L49.0000 49.0000 L75.3008 14.4873 L80.1032 10.5903 M80.1032 10.5903 \" />\n <path d=\"M55.5002 4.5000 L58.5005 2.5000 L61.0002 3.5000 L63.5002 7.0000 L56.6511 48.1620 L52.0005 45.0000 L50.0005 39.5000 L53.5003 8.5000 L55.5002 4.5000 M55.5002 4.5000 \" />\n <path d=\"M23.4253 5.1588 L26.5075 1.2217 L28.5175 0.7632 L32.5063 1.3458 L34.4748 2.8868 L48.8202 34.6902 L54.0089 49.8008 L47.9378 53.1760 L24.8009 11.1886 L23.4253 5.1588 M23.4253 5.1588 \" />\n <path d=\"M8.4990 27.0019 L7.4999 23.0001 L10.5003 19.5001 L14.0003 20.0001 L15.0003 20.0001 L36.0000 35.5000 L42.5000 40.5000 L51.5000 47.5000 L46.5000 56.0000 L42.0002 52.5000 L39.0001 49.5000 L10.0000 29.0001 L8.4990 27.0019 M8.4990 27.0019 \" />\n <path d=\"M2.5003 53.0000 L0.2370 50.5000 L0.2373 48.2759 L2.5003 47.5000 L28.0000 49.0000 L53.0000 51.0000 L52.1885 55.9782 L4.5000 53.5000 L2.5003 53.0000 M2.5003 53.0000 \" />\n <path d=\"M17.5002 79.0264 L12.5005 79.0264 L10.5124 76.7369 L10.5124 74.0000 L19.0005 68.0000 L53.5082 46.0337 L57.0005 52.0000 L17.5002 79.0264 M17.5002 79.0264 \" />\n <path d=\"M27.0004 92.9999 L25.0003 93.4999 L22.0003 91.9999 L22.5004 89.4999 L52.0003 50.5000 L56.0004 55.9999 L34.0003 85.0000 L27.0004 92.9999 M27.0004 92.9999 \" />\n <path d=\"M51.9998 98.0000 L50.5002 100.0000 L47.5002 101.0000 L45.0001 99.0000 L43.5000 96.0000 L51.0003 55.4999 L55.5001 55.9999 L51.9998 98.0000 M51.9998 98.0000 \" />\n <path d=\"M77.5007 86.9997 L77.5007 90.9997 L77.0006 92.4997 L75.0004 93.4997 L71.5006 93.0339 L47.4669 57.2642 L56.9998 50.0002 L64.9994 64.5004 L65.7507 69.7497 L77.5007 86.9997 M77.5007 86.9997 \" />\n <path d=\"M89.0008 80.9991 L89.5008 83.4991 L88.0008 85.4991 L86.5007 84.9991 L78.0007 78.9991 L65.0007 67.4991 L55.0007 60.4991 L58.0000 51.0000 L62.9999 54.0001 L66.0007 59.4991 L89.0008 80.9991 M89.0008 80.9991 \" />\n <path d=\"M82.5003 55.5000 L95.0003 56.5000 L98.0003 58.5000 L100.0000 61.5000 L100.0000 63.6587 L94.5003 66.0000 L66.5005 59.0000 L55.0003 58.5000 L58.0000 48.0000 L66.0005 54.0000 L82.5003 55.5000 M82.5003 55.5000 \" />\n </svg>\n );\n}\n\ninterface CopyPageButtonTranslations {\n copyPage?: string;\n copied?: string;\n openInChatGPT?: string;\n openInClaude?: string;\n askAboutThisPage?: string;\n copyPageDescription?: string;\n askQuestionsDescription?: string;\n chatGPTPrefix?: string;\n}\n\ninterface CopyPageButtonProps {\n sourceCode: string;\n pageUrl?: string;\n websiteTitle?: string;\n className?: string;\n locale?: Locale;\n translations?: CopyPageButtonTranslations;\n}\n\nexport function CopyPageButton({\n sourceCode,\n pageUrl,\n websiteTitle,\n className,\n locale = 'en',\n translations = {},\n}: CopyPageButtonProps) {\n const [isCopied, setCopied] = useState(false);\n\n // Get default translations for locale, allow overrides via props\n const defaultTranslations = getTranslations(locale);\n const {\n copyPage = defaultTranslations.copyPage,\n copied = defaultTranslations.copied,\n openInChatGPT = defaultTranslations.openInChatGPT,\n openInClaude = defaultTranslations.openInClaude,\n askAboutThisPage = defaultTranslations.askAboutThisPage,\n copyPageDescription = defaultTranslations.copyPageDescription,\n askQuestionsDescription = defaultTranslations.askQuestionsDescription,\n chatGPTPrefix = defaultTranslations.chatGPTPrefix,\n } = translations;\n\n useEffect(() => {\n if (!isCopied) return;\n const timerId = setTimeout(() => {\n setCopied(false);\n }, 1000);\n\n return () => {\n clearTimeout(timerId);\n };\n }, [isCopied]);\n\n function handleCopy() {\n navigator.clipboard.writeText(sourceCode);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n\n function handleOpenInChatGPT() {\n if (!pageUrl) return;\n \n // Ensure pageUrl is a full URL\n const fullPageUrl = pageUrl.startsWith('http') ? pageUrl : `https://${pageUrl.replace(/^\\/+/, '')}`;\n \n // Build the message with prefix and page content\n const titlePart = websiteTitle ? `${websiteTitle} - ` : '';\n const prefix = `${chatGPTPrefix} ${titlePart}${fullPageUrl} please read it to answer my questions.\\n\\n`;\n const fullMessage = prefix + sourceCode;\n \n // Encode the message for URL\n const encodedMessage = encodeURIComponent(fullMessage);\n \n // Create ChatGPT URL\n const chatGPTUrl = `https://chatgpt.com/?q=${encodedMessage}`;\n \n // Open in new tab\n window.open(chatGPTUrl, '_blank', 'noopener,noreferrer');\n }\n\n function handleOpenInClaude() {\n if (!pageUrl) return;\n \n // Ensure pageUrl is a full URL\n const fullPageUrl = pageUrl.startsWith('http') ? pageUrl : `https://${pageUrl.replace(/^\\/+/, '')}`;\n \n // Build the message with prefix and page content\n const titlePart = websiteTitle ? `${websiteTitle} - ` : '';\n const prefix = `${chatGPTPrefix} ${titlePart}${fullPageUrl} please read it to answer my questions.\\n\\n`;\n const fullMessage = prefix + sourceCode;\n \n // Encode the message for URL\n const encodedMessage = encodeURIComponent(fullMessage);\n \n // Create Claude URL (Anthropic's Claude Web)\n const claudeUrl = `https://claude.ai/new?q=${encodedMessage}`;\n \n // Open in new tab\n window.open(claudeUrl, '_blank', 'noopener,noreferrer');\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className={cn(\n 'flex gap-2 text-sm font-medium items-center',\n isCopied && 'opacity-70',\n className\n )}\n >\n <CopyIcon width=\"16\" />\n {isCopied ? copied : copyPage}\n <ChevronDownIcon width=\"14\" className=\"opacity-50\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"min-w-[200px]\">\n <DropdownMenuItem onClick={handleCopy}>\n <CopyIcon width=\"16\" className=\"mr-2\" />\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium\">{copyPage}</span>\n <span className=\"text-xs text-muted-foreground\">{copyPageDescription}</span>\n </div>\n </DropdownMenuItem>\n {pageUrl && (\n <>\n <DropdownMenuItem onClick={handleOpenInChatGPT}>\n <div className=\"flex items-center gap-2\">\n <ChatGPTIcon className=\"w-4 h-4 shrink-0\" />\n <div className=\"flex flex-col flex-1\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-sm font-medium\">{openInChatGPT}</span>\n <ExternalLinkIcon width=\"12\" className=\"text-muted-foreground shrink-0\" />\n </div>\n <span className=\"text-xs text-muted-foreground\">{askQuestionsDescription}</span>\n </div>\n </div>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={handleOpenInClaude}>\n <div className=\"flex items-center gap-2\">\n <ClaudeIcon className=\"w-4 h-4 shrink-0\" />\n <div className=\"flex flex-col flex-1\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-sm font-medium\">{openInClaude}</span>\n <ExternalLinkIcon width=\"12\" className=\"text-muted-foreground shrink-0\" />\n </div>\n <span className=\"text-xs text-muted-foreground\">{askQuestionsDescription}</span>\n </div>\n </div>\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","'use client';\n\nimport { CookieIcon } from 'lucide-react';\nimport { useEffect, useState } from 'react';\nimport { Button } from '../ui/button';\nimport { getTranslations } from '../../lib/translations';\n// @vercel/analytics is optional - only track if available\nfunction track(event: string, data?: Record<string, any>) {\n if (typeof window !== 'undefined') {\n try {\n // Dynamic import to avoid build errors if @vercel/analytics is not installed\n // @ts-ignore - optional dependency\n import('@vercel/analytics').then(({ track: trackFn }) => {\n trackFn(event, data);\n }).catch(() => {\n // @vercel/analytics not installed, tracking will be no-op\n });\n } catch {\n // Ignore errors\n }\n }\n}\nimport { cn } from '../layout/utils';\nimport Link from 'next/link';\nimport type { Locale } from '@next-library/core';\n\ninterface CookieBannerProps {\n locale: Locale;\n variant?: 'default' | 'small';\n onAcceptCallback?: () => void;\n onDeclineCallback?: () => void;\n translations?: {\n title?: string;\n description?: string;\n learnMore?: string;\n accept?: string;\n decline?: string;\n };\n}\n\nexport function CookieBanner({\n locale,\n variant = 'default',\n onAcceptCallback = () => {},\n onDeclineCallback = () => {},\n translations = {},\n}: CookieBannerProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [hide, setHide] = useState(false);\n\n const defaultTranslations = getTranslations(locale);\n const {\n title = defaultTranslations.cookieConsent,\n description = defaultTranslations.cookieDescription,\n learnMore = defaultTranslations.cookieLearnMore,\n accept: acceptText = defaultTranslations.accept,\n decline: declineText = defaultTranslations.decline,\n } = translations;\n\n const handleAccept = () => {\n setIsOpen(false);\n localStorage.setItem('cookieConsent', 'true');\n setTimeout(() => {\n setHide(true);\n }, 700);\n onAcceptCallback();\n };\n\n const handleDecline = () => {\n setIsOpen(false);\n localStorage.setItem('cookieConsent', 'false');\n setTimeout(() => {\n setHide(true);\n }, 700);\n onDeclineCallback();\n };\n\n useEffect(() => {\n try {\n const consent = localStorage.getItem('cookieConsent');\n if (consent === 'true' || consent === 'false') {\n setIsOpen(false);\n setHide(true);\n } else {\n setIsOpen(true);\n }\n } catch (e) {\n console.error('Error reading cookie consent:', e);\n setIsOpen(true);\n }\n }, []);\n\n return variant !== 'small' ? (\n <div\n className={cn(\n 'fixed z-[200] bottom-0 left-0 right-0 sm:right-0 sm:left-auto sm:bottom-4 w-full sm:max-w-md duration-700',\n !isOpen\n ? 'transition-[opacity,transform] translate-y-8 opacity-0'\n : 'transition-[opacity,transform] translate-y-0 opacity-100',\n hide && 'hidden'\n )}\n >\n <div className=\"rounded-md m-3 border border-border shadow-lg bg-background\">\n <div className=\"flex flex-col\">\n <div className=\"border-b border-border h-14 flex items-center justify-between p-4\">\n <h1 className=\"text-lg font-medium\">{title}</h1>\n <CookieIcon className=\"h-[1.2rem] w-[1.2rem]\" />\n </div>\n <div className=\"p-4\">\n <p className=\"text-sm font-normal text-start mb-2\">\n {description}{' '}\n <Link href={`/${locale}/privacy`} className=\"text-xs underline ml-1\">\n {learnMore}\n </Link>\n </p>\n </div>\n <div className=\"flex justify-around gap-2 p-4 py-5 border-t border-border dark:bg-background/20\">\n <Button onClick={handleAccept} className=\"flex-1\">\n {acceptText}\n </Button>\n <Button onClick={handleDecline} className=\"flex-1\" variant=\"secondary\">\n {declineText}\n </Button>\n </div>\n </div>\n </div>\n </div>\n ) : (\n <div\n className={cn(\n 'fixed z-[200] bottom-0 left-0 right-0 sm:right-4 sm:left-auto sm:bottom-4 w-full sm:max-w-md duration-700',\n !isOpen\n ? 'transition-[opacity,transform] translate-y-8 opacity-0'\n : 'transition-[opacity,transform] translate-y-0 opacity-100',\n hide && 'hidden'\n )}\n >\n <div className=\"m-3 bg-background border border-border rounded-lg\">\n <div className=\"flex items-center justify-between p-3\">\n <h1 className=\"text-lg font-medium\">{title}</h1>\n <CookieIcon className=\"h-[1.2rem] w-[1.2rem]\" />\n </div>\n <div className=\"p-3 -mt-2\">\n <p className=\"text-sm text-left text-muted-foreground\">\n {description}{' '}\n <Link href={`/${locale}/privacy`} className=\"underline\">\n {learnMore}\n </Link>\n </p>\n </div>\n <div className=\"p-3 flex items-center gap-2 mt-2 border-t\">\n <Button\n className=\"w-full h-9 rounded-full\"\n onClick={() => {\n track('Accept Cookie Banner');\n handleAccept();\n }}\n >\n {acceptText}\n </Button>\n <Button\n className=\"w-full h-9 rounded-full\"\n variant=\"outline\"\n onClick={() => {\n track('Decline Cookie Banner');\n handleDecline();\n }}\n >\n {declineText}\n </Button>\n </div>\n </div>\n </div>\n );\n}\n\n","'use client';\n\nimport * as React from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\nimport { cn } from '../layout/utils';\n\nfunction Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n align = 'center',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('text-muted-foreground px-2 py-1.5 text-xs', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('bg-border pointer-events-none -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n\n","'use client';\n\nimport { useEffect } from 'react';\nimport { getTranslations } from '../../lib/translations';\nimport type { Locale } from '@next-library/core';\n\ninterface AnchorLinkHandlerProps {\n locale?: Locale;\n}\n\nexport function AnchorLinkHandler({ locale = 'en' }: AnchorLinkHandlerProps) {\n const translations = getTranslations(locale);\n\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const anchor = target.closest('a[href^=\"#\"]');\n\n if (anchor && anchor.classList.contains('inline-flex')) {\n e.preventDefault();\n e.stopPropagation();\n\n const href = anchor.getAttribute('href');\n if (href) {\n const fullUrl = window.location.origin + window.location.pathname + href;\n\n navigator.clipboard\n .writeText(fullUrl)\n .then(() => {\n // Show feedback\n const originalTitle = anchor.getAttribute('title');\n anchor.setAttribute('title', translations.linkCopied);\n\n // Visual feedback - briefly change the icon color\n const icon = anchor.querySelector('svg');\n if (icon) {\n icon.classList.add('text-green-500');\n setTimeout(() => {\n icon.classList.remove('text-green-500');\n }, 1000);\n }\n\n setTimeout(() => {\n anchor.setAttribute('title', originalTitle || translations.copyLinkToSection);\n }, 2000);\n })\n .catch((err) => {\n console.error('Failed to copy link:', err);\n // Fallback for older browsers\n try {\n const textArea = document.createElement('textarea');\n textArea.value = fullUrl;\n document.body.appendChild(textArea);\n textArea.select();\n document.execCommand('copy');\n document.body.removeChild(textArea);\n } catch (fallbackErr) {\n console.error('Fallback copy failed:', fallbackErr);\n }\n });\n }\n }\n };\n\n // Add event listener\n document.addEventListener('click', handleClick);\n\n // Cleanup\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, []);\n\n return null; // This component doesn't render anything\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/layout/navigation-bar.tsx","../src/components/layout/footer.tsx","../src/components/layout/documentation-layout.tsx","../src/lib/translations/index.ts","../src/components/navigation/sidebar-left/parent.tsx","../src/components/layout/utils.ts","../src/components/navigation/sidebar-left/level-elevator.tsx","../src/components/navigation/sidebar-left/toolbox.tsx","../src/components/layout/left-sidebar.tsx","../src/components/layout/right-sidebar.tsx","../src/components/markdown/page-header.tsx","../src/lib/translations/locale-names.ts","../src/components/markdown/fallback-locale-warning.tsx","../src/components/seo/structured-data.tsx","../src/components/ui/sticky-banner.tsx","../src/components/navigation/navbar/banner.tsx","../src/components/navigation/navbar/logo.tsx","../src/components/navigation/navbar/top-categories.tsx","../src/components/ui/input.tsx","../src/components/navigation/navbar/search-bar.tsx","../src/components/navigation/navbar/theme-switcher.tsx","../src/components/ui/button.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/navigation/navbar/language-switcher.tsx","../src/components/ui/drawer.tsx","../src/hooks/use-mobile.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/components/ui/sidebar.tsx","../src/components/ui/collapsible.tsx","../src/components/navigation/sidebar-left/sidebar.tsx","../src/components/navigation/navbar/mobile-menu.tsx","../src/components/navigation/navbar/github-star.tsx","../src/components/navigation/navbar/github-link.tsx","../src/components/navigation/sidebar-right/table-of-contents.tsx","../src/components/ui/avatar.tsx","../src/components/navigation/sidebar-right/github-contributors.tsx","../src/components/ui/breadcrumb.tsx","../src/hooks/use-media-query.tsx","../src/components/ui/breadcrumb-toggle.tsx","../src/components/navigation/main/breadcrumbs.tsx","../src/components/ui/card.tsx","../src/components/navigation/main/folder-cards.tsx","../src/components/markdown/markdown-renderer.tsx","../src/components/markdown/copy-page-button.tsx","../src/components/tracking/cookie-banner.tsx","../src/components/ui/select.tsx","../src/components/ui/anchor-link-handler.tsx"],"names":["jsx","jsxs","React","Link","getDirection","getConfig","translations","Fragment","Banner","Logo","Image","TopCategories","SearchBar","useState","ThemeSwitcher","React6","LanguageSwitcher","DrawerPrimitive","React7","Separator","open","Slot","cva","CollapsibleTrigger","CollapsibleContent","SidebarNavigation","ChevronRight","MobileMenu","GithubStar","useEffect","GithubLink","TableOfContents","GithubContributors","React10","React11","useCallback","Home","React12","React13","CopyPageButton","ExternalLinkIcon","CookieBanner","ChevronDownIcon","CheckIcon"],"mappings":"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","file":"index.js","sourcesContent":["import React, { Suspense } from 'react';\nimport {\n Logo,\n TopCategories,\n ThemeSwitcher,\n LanguageSwitcher,\n GithubStar,\n GithubLink,\n SearchBar,\n MobileMenu,\n} from '@next-library/theme/client';\nimport { getTopCategories, getDirection, getSupportedLocales, getConfig, getLocaleConfig, type Locale } from '@next-library/core';\nimport type { PageData } from '@next-library/core';\n\ninterface NavigationBarProps {\n language?: Locale;\n className?: string;\n pageData?: PageData;\n websiteTitle?: string;\n}\n\nexport function NavigationBar({\n language = 'en',\n className = '',\n pageData,\n websiteTitle\n}: NavigationBarProps) {\n const categories = getTopCategories(language);\n const direction = getDirection(language);\n // Get available locales from content tree (server-side only)\n const availableLocales = typeof window === 'undefined' ? getSupportedLocales() : [];\n // Get locale configs for display names (server-side only)\n const localeConfigs = typeof window === 'undefined'\n ? availableLocales.map(locale => ({\n code: locale,\n nativeName: getLocaleConfig(locale)?.nativeName || locale.toUpperCase(),\n }))\n : undefined;\n\n // Get GitHub repo URL from config (server-side only)\n let repoUrl: string | undefined;\n if (typeof window === 'undefined') {\n try {\n const config = getConfig();\n if (config?.github?.user && config?.github?.repo) {\n repoUrl = `https://github.com/${config.github.user}/${config.github.repo}`;\n }\n } catch {\n // Config not available, try environment variables as fallback\n }\n\n // Fallback to environment variables if config is not available\n if (!repoUrl) {\n const githubUser = process.env.NEXT_PUBLIC_GITHUB_USER?.trim().replace(/^['\"]|['\"]$/g, '');\n const githubRepo = process.env.NEXT_PUBLIC_GITHUB_REPO?.trim().replace(/^['\"]|['\"]$/g, '');\n if (githubUser && githubRepo) {\n repoUrl = `https://github.com/${githubUser}/${githubRepo}`;\n }\n }\n }\n\n return (\n <nav\n className={`py-3 sticky top-0 z-10 bg-background lg:w-[95vw] px-4 lg:px-0 lg:mx-auto ${className}`}\n role=\"navigation\"\n aria-label=\"Main navigation\"\n dir={direction}\n >\n <div className=\"flex items-center justify-between\">\n <Logo language={language} title={websiteTitle} />\n\n <div className=\"flex items-center gap-2 md:gap-3\">\n <div>\n <TopCategories categories={categories} />\n </div>\n <Suspense fallback={<div className=\"w-[200px] h-[40px]\"></div>}>\n <SearchBar language={language} />\n </Suspense>\n <GithubLink language={language} repoUrl={repoUrl} />\n <ThemeSwitcher />\n <LanguageSwitcher availableLocales={availableLocales} localeConfigs={localeConfigs} />\n <MobileMenu pageData={pageData} />\n <div className=\"h-5 m-auto mx-1 hidden md:flex\">\n <GithubStar repoUrl={repoUrl} />\n </div>\n </div>\n </div>\n </nav>\n );\n}\n\n","import Link from 'next/link';\nimport React from 'react';\nimport Image from 'next/image';\n\ninterface DocumentationFooterProps {\n organizationName?: string;\n organizationLogo?: string;\n buildByText?: string;\n buildByLinks?: Array<{\n name: string;\n url: string;\n logo?: string;\n }>;\n}\n\nexport function DocumentationFooter({ \n organizationName,\n organizationLogo,\n buildByText = 'Build by:',\n buildByLinks = []\n}: DocumentationFooterProps) {\n return (\n <footer className=\"border-t h-16\">\n <div className=\"flex items-center sm:justify-between justify-center sm:gap-0 gap-4 h-full text-muted-foreground text-sm flex-wrap sm:py-0 py-3 max-sm:px-4 w-[95vw] mx-auto\">\n <div className=\"flex flex-row xitems-center gap-2\">\n <p className=\"text-center\">{buildByText}</p>\n {buildByLinks.map((link, index) => (\n <React.Fragment key={link.url}>\n {link.logo && (\n <Image\n className=\"h-4 w-auto ml-1\"\n src={link.logo}\n alt={`${link.name} logo`}\n width={20}\n height={20}\n />\n )}\n <Link className=\"underline underline-offset-2\" href={link.url}>\n {link.name}\n </Link>\n {index < buildByLinks.length - 1 && <p>&</p>}\n </React.Fragment>\n ))}\n </div>\n\n <div className=\"gap-4 items-center hidden md:flex\">\n <FooterButtons />\n </div>\n </div>\n </footer>\n );\n}\n\nexport function FooterButtons() {\n return <></>;\n}\n\n","import React from 'react';\nimport { NavigationBar } from './navigation-bar';\nimport { DocumentationFooter } from './footer';\nimport { Banner, CookieBanner } from '@next-library/theme/client';\nimport { getDirection, getConfig, type Locale } from '@next-library/core';\n\nexport interface DocumentationLayoutProps {\n children: React.ReactNode;\n language?: Locale;\n bannerMessage?: React.ReactNode | null;\n websiteTitle?: string | undefined;\n}\n\nexport function DocumentationLayout(props: DocumentationLayoutProps) {\n const { \n children, \n language = 'en',\n bannerMessage = null,\n websiteTitle = undefined\n } = props;\n const direction = getDirection(language);\n \n // Get website title from config if not provided\n let title = websiteTitle;\n if (!title && typeof window === 'undefined') {\n try {\n const config = getConfig();\n title = config?.website?.title;\n } catch {\n // Config not available\n }\n }\n \n // Fallback to environment variable\n if (!title && typeof window === 'undefined') {\n title = process.env.NEXT_PUBLIC_WEBSITE_TITLE?.trim().replace(/^['\"]|['\"]$/g, '');\n }\n\n return (\n <div className=\"bg-background flex flex-col\" dir={direction}>\n {bannerMessage && (\n <Banner language={language}>\n {bannerMessage}\n </Banner>\n )}\n <NavigationBar language={language} className=\"hidden lg:block\" websiteTitle={title} />\n {children}\n <DocumentationFooter />\n <CookieBanner locale={language} />\n </div>\n );\n}\n\n","/**\n * Translation system for theme components\n * \n * This module provides translations for all user-facing text in theme components.\n * Components can use these translations based on the locale prop.\n */\n\nimport type { Locale } from '@next-library/core';\n\n/**\n * Translation keys for all theme components\n */\nexport interface ThemeTranslations {\n // CopyPageButton\n copyPage: string;\n copied: string;\n openInChatGPT: string;\n openInClaude: string;\n askAboutThisPage: string;\n copyPageDescription: string;\n askQuestionsDescription: string;\n chatGPTPrefix: string;\n \n // TableOfContents\n tableOfContents: string;\n \n // GithubContributors\n contributors: string;\n \n // Toolbox\n goToDocsHome: string;\n goBackTo: string;\n goToPreviousPage: string;\n goToNextPage: string;\n noPreviousPage: string;\n noNextPage: string;\n \n // CookieBanner\n cookieConsent: string;\n cookieDescription: string;\n cookieLearnMore: string;\n accept: string;\n decline: string;\n \n // Breadcrumbs\n goToHomePage: string;\n \n // Parent\n home: string;\n \n // AnchorLinkHandler\n linkCopied: string;\n copyLinkToSection: string;\n \n // SearchBar\n search: string;\n searchPlaceholder: string;\n \n // StickyBanner\n closeBanner: string;\n \n // FallbackLocaleWarning\n fallbackLocaleWarning?: string;\n}\n\n/**\n * English translations (default)\n */\nconst en: ThemeTranslations = {\n copyPage: 'Copy page',\n copied: 'Copied!',\n openInChatGPT: 'Open in ChatGPT',\n openInClaude: 'Open in Claude',\n askAboutThisPage: 'Ask about this page in ChatGPT',\n copyPageDescription: 'Copy page as Markdown for LLMs',\n askQuestionsDescription: 'Ask questions about this page',\n chatGPTPrefix: 'This page came from',\n tableOfContents: 'Table of Contents',\n contributors: 'Contributors',\n goToDocsHome: 'Go to docs home',\n goBackTo: 'Go back to',\n goToPreviousPage: 'Go to previous page',\n goToNextPage: 'Go to next page',\n noPreviousPage: 'No previous page',\n noNextPage: 'No next page',\n cookieConsent: 'Cookie Consent',\n cookieDescription: 'We use cookies to enhance your experience.',\n cookieLearnMore: 'Learn more',\n accept: 'Accept',\n decline: 'Decline',\n goToHomePage: 'Go to home page',\n home: 'Home',\n linkCopied: 'Link copied!',\n copyLinkToSection: 'Copy link to section',\n search: 'Search',\n searchPlaceholder: 'Search',\n closeBanner: 'Close banner',\n fallbackLocaleWarning: \"This content is shown in {fallbackLocaleName} as it's not available in {requestedLocaleName}.\",\n};\n\n/**\n * French translations\n */\nconst fr: ThemeTranslations = {\n copyPage: 'Copier la page',\n copied: 'Copié !',\n openInChatGPT: 'Ouvrir dans ChatGPT',\n openInClaude: 'Ouvrir dans Claude',\n askAboutThisPage: 'Poser une question sur cette page dans ChatGPT',\n copyPageDescription: 'Copier la page au format Markdown pour les LLM',\n askQuestionsDescription: 'Poser des questions sur cette page',\n chatGPTPrefix: 'Cette page provient de',\n tableOfContents: 'Table des matières',\n contributors: 'Contributeurs',\n goToDocsHome: 'Aller à l\\'accueil de la documentation',\n goBackTo: 'Retour à',\n goToPreviousPage: 'Page précédente',\n goToNextPage: 'Page suivante',\n noPreviousPage: 'Aucune page précédente',\n noNextPage: 'Aucune page suivante',\n cookieConsent: 'Consentement aux cookies',\n cookieDescription: 'Nous utilisons des cookies pour améliorer votre expérience.',\n cookieLearnMore: 'En savoir plus',\n accept: 'Accepter',\n decline: 'Refuser',\n goToHomePage: 'Aller à la page d\\'accueil',\n home: 'Accueil',\n linkCopied: 'Lien copié !',\n copyLinkToSection: 'Copier le lien vers la section',\n search: 'Rechercher',\n searchPlaceholder: 'Rechercher',\n closeBanner: 'Fermer la bannière',\n fallbackLocaleWarning: \"Ce contenu est affiché en {fallbackLocaleName} car il n'est pas disponible en {requestedLocaleName}.\",\n};\n\n/**\n * German translations\n */\nconst de: ThemeTranslations = {\n copyPage: 'Seite kopieren',\n copied: 'Kopiert!',\n openInChatGPT: 'In ChatGPT öffnen',\n openInClaude: 'In Claude öffnen',\n askAboutThisPage: 'Fragen Sie ChatGPT zu dieser Seite',\n copyPageDescription: 'Seite als Markdown für LLMs kopieren',\n askQuestionsDescription: 'Fragen zu dieser Seite stellen',\n chatGPTPrefix: 'Diese Seite stammt von',\n tableOfContents: 'Inhaltsverzeichnis',\n contributors: 'Mitwirkende',\n goToDocsHome: 'Zur Dokumentations-Startseite',\n goBackTo: 'Zurück zu',\n goToPreviousPage: 'Vorherige Seite',\n goToNextPage: 'Nächste Seite',\n noPreviousPage: 'Keine vorherige Seite',\n noNextPage: 'Keine nächste Seite',\n cookieConsent: 'Cookie-Zustimmung',\n cookieDescription: 'Wir verwenden Cookies, um Ihr Erlebnis zu verbessern.',\n cookieLearnMore: 'Mehr erfahren',\n accept: 'Akzeptieren',\n decline: 'Ablehnen',\n goToHomePage: 'Zur Startseite',\n home: 'Startseite',\n linkCopied: 'Link kopiert!',\n copyLinkToSection: 'Link zum Abschnitt kopieren',\n search: 'Suchen',\n searchPlaceholder: 'Suchen',\n closeBanner: 'Banner schließen',\n fallbackLocaleWarning: 'Dieser Inhalt wird in {fallbackLocaleName} angezeigt, da er in {requestedLocaleName} nicht verfügbar ist.',\n};\n\n/**\n * Spanish translations\n */\nconst es: ThemeTranslations = {\n copyPage: 'Copiar página',\n copied: '¡Copiado!',\n openInChatGPT: 'Abrir en ChatGPT',\n openInClaude: 'Abrir en Claude',\n askAboutThisPage: 'Preguntar sobre esta página en ChatGPT',\n copyPageDescription: 'Copiar página como Markdown para LLMs',\n askQuestionsDescription: 'Hacer preguntas sobre esta página',\n chatGPTPrefix: 'Esta página proviene de',\n tableOfContents: 'Tabla de contenidos',\n contributors: 'Colaboradores',\n goToDocsHome: 'Ir al inicio de la documentación',\n goBackTo: 'Volver a',\n goToPreviousPage: 'Página anterior',\n goToNextPage: 'Página siguiente',\n noPreviousPage: 'No hay página anterior',\n noNextPage: 'No hay página siguiente',\n cookieConsent: 'Consentimiento de cookies',\n cookieDescription: 'Utilizamos cookies para mejorar su experiencia.',\n cookieLearnMore: 'Saber más',\n accept: 'Aceptar',\n decline: 'Rechazar',\n goToHomePage: 'Ir a la página de inicio',\n home: 'Inicio',\n linkCopied: '¡Enlace copiado!',\n copyLinkToSection: 'Copiar enlace a la sección',\n search: 'Buscar',\n searchPlaceholder: 'Buscar',\n closeBanner: 'Cerrar banner',\n fallbackLocaleWarning: 'Este contenido se muestra en {fallbackLocaleName} ya que no está disponible en {requestedLocaleName}.',\n};\n\n/**\n * Arabic translations (RTL)\n */\nconst ar: ThemeTranslations = {\n copyPage: 'نسخ الصفحة',\n copied: 'تم النسخ!',\n openInChatGPT: 'فتح في ChatGPT',\n openInClaude: 'فتح في Claude',\n askAboutThisPage: 'اسأل عن هذه الصفحة في ChatGPT',\n copyPageDescription: 'نسخ الصفحة كـ Markdown للـ LLMs',\n askQuestionsDescription: 'اطرح أسئلة حول هذه الصفحة',\n chatGPTPrefix: 'هذه الصفحة جاءت من',\n tableOfContents: 'جدول المحتويات',\n contributors: 'المساهمون',\n goToDocsHome: 'الانتقال إلى الصفحة الرئيسية للوثائق',\n goBackTo: 'العودة إلى',\n goToPreviousPage: 'الصفحة السابقة',\n goToNextPage: 'الصفحة التالية',\n noPreviousPage: 'لا توجد صفحة سابقة',\n noNextPage: 'لا توجد صفحة تالية',\n cookieConsent: 'موافقة ملفات تعريف الارتباط',\n cookieDescription: 'نستخدم ملفات تعريف الارتباط لتحسين تجربتك.',\n cookieLearnMore: 'معرفة المزيد',\n accept: 'قبول',\n decline: 'رفض',\n goToHomePage: 'الانتقال إلى الصفحة الرئيسية',\n home: 'الرئيسية',\n linkCopied: 'تم نسخ الرابط!',\n copyLinkToSection: 'نسخ الرابط إلى القسم',\n search: 'بحث',\n searchPlaceholder: 'بحث',\n closeBanner: 'إغلاق الشعار',\n fallbackLocaleWarning: 'يتم عرض هذا المحتوى بـ {fallbackLocaleName} لأنه غير متاح بـ {requestedLocaleName}.',\n};\n\n/**\n * Chinese translations\n */\nconst zh: ThemeTranslations = {\n copyPage: '复制页面',\n copied: '已复制!',\n openInChatGPT: '在 ChatGPT 中打开',\n openInClaude: '在 Claude 中打开',\n askAboutThisPage: '在 ChatGPT 中询问此页面',\n copyPageDescription: '将页面复制为 Markdown 格式供 LLM 使用',\n askQuestionsDescription: '询问有关此页面的问题',\n chatGPTPrefix: '此页面来自',\n tableOfContents: '目录',\n contributors: '贡献者',\n goToDocsHome: '前往文档首页',\n goBackTo: '返回',\n goToPreviousPage: '上一页',\n goToNextPage: '下一页',\n noPreviousPage: '没有上一页',\n noNextPage: '没有下一页',\n cookieConsent: 'Cookie 同意',\n cookieDescription: '我们使用 Cookie 来改善您的体验。',\n cookieLearnMore: '了解更多',\n accept: '接受',\n decline: '拒绝',\n goToHomePage: '前往首页',\n home: '首页',\n linkCopied: '链接已复制!',\n copyLinkToSection: '复制章节链接',\n search: '搜索',\n searchPlaceholder: '搜索',\n closeBanner: '关闭横幅',\n fallbackLocaleWarning: '此内容以 {fallbackLocaleName} 显示,因为 {requestedLocaleName} 不可用。',\n};\n\n/**\n * Japanese translations\n */\nconst ja: ThemeTranslations = {\n copyPage: 'ページをコピー',\n copied: 'コピーしました!',\n openInChatGPT: 'ChatGPT で開く',\n openInClaude: 'Claude で開く',\n askAboutThisPage: 'ChatGPT でこのページについて質問する',\n copyPageDescription: 'ページを LLM 用の Markdown としてコピー',\n askQuestionsDescription: 'このページについて質問する',\n chatGPTPrefix: 'このページは',\n tableOfContents: '目次',\n contributors: '貢献者',\n goToDocsHome: 'ドキュメントホームへ',\n goBackTo: '戻る',\n goToPreviousPage: '前のページ',\n goToNextPage: '次のページ',\n noPreviousPage: '前のページなし',\n noNextPage: '次のページなし',\n cookieConsent: 'Cookie 同意',\n cookieDescription: '体験を向上させるために Cookie を使用しています。',\n cookieLearnMore: '詳細を見る',\n accept: '同意',\n decline: '拒否',\n goToHomePage: 'ホームページへ',\n home: 'ホーム',\n linkCopied: 'リンクをコピーしました!',\n copyLinkToSection: 'セクションへのリンクをコピー',\n search: '検索',\n searchPlaceholder: '検索',\n closeBanner: 'バナーを閉じる',\n fallbackLocaleWarning: 'このコンテンツは {requestedLocaleName} で利用できないため、{fallbackLocaleName} で表示されています。',\n};\n\n/**\n * Korean translations\n */\nconst ko: ThemeTranslations = {\n copyPage: '페이지 복사',\n copied: '복사됨!',\n openInChatGPT: 'ChatGPT에서 열기',\n openInClaude: 'Claude에서 열기',\n askAboutThisPage: 'ChatGPT에서 이 페이지에 대해 질문하기',\n copyPageDescription: '페이지를 LLM용 Markdown으로 복사',\n askQuestionsDescription: '이 페이지에 대해 질문하기',\n chatGPTPrefix: '이 페이지는',\n tableOfContents: '목차',\n contributors: '기여자',\n goToDocsHome: '문서 홈으로 이동',\n goBackTo: '돌아가기',\n goToPreviousPage: '이전 페이지',\n goToNextPage: '다음 페이지',\n noPreviousPage: '이전 페이지 없음',\n noNextPage: '다음 페이지 없음',\n cookieConsent: '쿠키 동의',\n cookieDescription: '경험을 향상시키기 위해 쿠키를 사용합니다.',\n cookieLearnMore: '자세히 알아보기',\n accept: '수락',\n decline: '거부',\n goToHomePage: '홈페이지로 이동',\n home: '홈',\n linkCopied: '링크 복사됨!',\n copyLinkToSection: '섹션 링크 복사',\n search: '검색',\n searchPlaceholder: '검색',\n closeBanner: '배너 닫기',\n fallbackLocaleWarning: '이 콘텐츠는 {requestedLocaleName}에서 사용할 수 없어 {fallbackLocaleName}로 표시됩니다.',\n};\n\n/**\n * Portuguese translations\n */\nconst pt: ThemeTranslations = {\n copyPage: 'Copiar página',\n copied: 'Copiado!',\n openInChatGPT: 'Abrir no ChatGPT',\n openInClaude: 'Abrir no Claude',\n askAboutThisPage: 'Perguntar sobre esta página no ChatGPT',\n copyPageDescription: 'Copiar página como Markdown para LLMs',\n askQuestionsDescription: 'Fazer perguntas sobre esta página',\n chatGPTPrefix: 'Esta página veio de',\n tableOfContents: 'Índice',\n contributors: 'Contribuidores',\n goToDocsHome: 'Ir para a página inicial da documentação',\n goBackTo: 'Voltar para',\n goToPreviousPage: 'Página anterior',\n goToNextPage: 'Próxima página',\n noPreviousPage: 'Sem página anterior',\n noNextPage: 'Sem próxima página',\n cookieConsent: 'Consentimento de Cookies',\n cookieDescription: 'Usamos cookies para melhorar sua experiência.',\n cookieLearnMore: 'Saiba mais',\n accept: 'Aceitar',\n decline: 'Recusar',\n goToHomePage: 'Ir para a página inicial',\n home: 'Início',\n linkCopied: 'Link copiado!',\n copyLinkToSection: 'Copiar link para a seção',\n search: 'Pesquisar',\n searchPlaceholder: 'Pesquisar',\n closeBanner: 'Fechar banner',\n fallbackLocaleWarning: 'Este conteúdo é exibido em {fallbackLocaleName} pois não está disponível em {requestedLocaleName}.',\n};\n\n/**\n * Italian translations\n */\nconst it: ThemeTranslations = {\n copyPage: 'Copia pagina',\n copied: 'Copiato!',\n openInChatGPT: 'Apri in ChatGPT',\n openInClaude: 'Apri in Claude',\n askAboutThisPage: 'Chiedi informazioni su questa pagina in ChatGPT',\n copyPageDescription: 'Copia pagina come Markdown per LLM',\n askQuestionsDescription: 'Fai domande su questa pagina',\n chatGPTPrefix: 'Questa pagina proviene da',\n tableOfContents: 'Indice',\n contributors: 'Collaboratori',\n goToDocsHome: 'Vai alla home della documentazione',\n goBackTo: 'Torna a',\n goToPreviousPage: 'Pagina precedente',\n goToNextPage: 'Pagina successiva',\n noPreviousPage: 'Nessuna pagina precedente',\n noNextPage: 'Nessuna pagina successiva',\n cookieConsent: 'Consenso ai Cookie',\n cookieDescription: 'Utilizziamo i cookie per migliorare la tua esperienza.',\n cookieLearnMore: 'Scopri di più',\n accept: 'Accetta',\n decline: 'Rifiuta',\n goToHomePage: 'Vai alla home',\n home: 'Home',\n linkCopied: 'Link copiato!',\n copyLinkToSection: 'Copia link alla sezione',\n search: 'Cerca',\n searchPlaceholder: 'Cerca',\n closeBanner: 'Chiudi banner',\n fallbackLocaleWarning: 'Questo contenuto è mostrato in {fallbackLocaleName} poiché non è disponibile in {requestedLocaleName}.',\n};\n\n/**\n * Russian translations\n */\nconst ru: ThemeTranslations = {\n copyPage: 'Копировать страницу',\n copied: 'Скопировано!',\n openInChatGPT: 'Открыть в ChatGPT',\n openInClaude: 'Открыть в Claude',\n askAboutThisPage: 'Спросить об этой странице в ChatGPT',\n copyPageDescription: 'Скопировать страницу как Markdown для LLM',\n askQuestionsDescription: 'Задать вопросы об этой странице',\n chatGPTPrefix: 'Эта страница взята с',\n tableOfContents: 'Содержание',\n contributors: 'Участники',\n goToDocsHome: 'Перейти на главную документации',\n goBackTo: 'Вернуться к',\n goToPreviousPage: 'Предыдущая страница',\n goToNextPage: 'Следующая страница',\n noPreviousPage: 'Нет предыдущей страницы',\n noNextPage: 'Нет следующей страницы',\n cookieConsent: 'Согласие на Cookie',\n cookieDescription: 'Мы используем cookie для улучшения вашего опыта.',\n cookieLearnMore: 'Узнать больше',\n accept: 'Принять',\n decline: 'Отклонить',\n goToHomePage: 'Перейти на главную',\n home: 'Главная',\n linkCopied: 'Ссылка скопирована!',\n copyLinkToSection: 'Копировать ссылку на раздел',\n search: 'Поиск',\n searchPlaceholder: 'Поиск',\n closeBanner: 'Закрыть баннер',\n fallbackLocaleWarning: 'Этот контент отображается на {fallbackLocaleName}, так как он недоступен на {requestedLocaleName}.',\n};\n\n/**\n * Dutch translations\n */\nconst nl: ThemeTranslations = {\n copyPage: 'Pagina kopiëren',\n copied: 'Gekopieerd!',\n openInChatGPT: 'Openen in ChatGPT',\n openInClaude: 'Openen in Claude',\n askAboutThisPage: 'Vraag over deze pagina in ChatGPT',\n copyPageDescription: 'Pagina kopiëren als Markdown voor LLMs',\n askQuestionsDescription: 'Vragen stellen over deze pagina',\n chatGPTPrefix: 'Deze pagina komt van',\n tableOfContents: 'Inhoudsopgave',\n contributors: 'Bijdragers',\n goToDocsHome: 'Naar documentatie startpagina',\n goBackTo: 'Terug naar',\n goToPreviousPage: 'Vorige pagina',\n goToNextPage: 'Volgende pagina',\n noPreviousPage: 'Geen vorige pagina',\n noNextPage: 'Geen volgende pagina',\n cookieConsent: 'Cookie Toestemming',\n cookieDescription: 'We gebruiken cookies om uw ervaring te verbeteren.',\n cookieLearnMore: 'Meer informatie',\n accept: 'Accepteren',\n decline: 'Weigeren',\n goToHomePage: 'Naar startpagina',\n home: 'Startpagina',\n linkCopied: 'Link gekopieerd!',\n copyLinkToSection: 'Link naar sectie kopiëren',\n search: 'Zoeken',\n searchPlaceholder: 'Zoeken',\n closeBanner: 'Banner sluiten',\n fallbackLocaleWarning: 'Deze inhoud wordt weergegeven in {fallbackLocaleName} omdat deze niet beschikbaar is in {requestedLocaleName}.',\n};\n\n/**\n * Swedish translations\n */\nconst sv: ThemeTranslations = {\n copyPage: 'Kopiera sida',\n copied: 'Kopierad!',\n openInChatGPT: 'Öppna i ChatGPT',\n openInClaude: 'Öppna i Claude',\n askAboutThisPage: 'Fråga om denna sida i ChatGPT',\n copyPageDescription: 'Kopiera sida som Markdown för LLMs',\n askQuestionsDescription: 'Ställa frågor om denna sida',\n chatGPTPrefix: 'Denna sida kommer från',\n tableOfContents: 'Innehållsförteckning',\n contributors: 'Bidragsgivare',\n goToDocsHome: 'Gå till dokumentationsstartsidan',\n goBackTo: 'Tillbaka till',\n goToPreviousPage: 'Föregående sida',\n goToNextPage: 'Nästa sida',\n noPreviousPage: 'Ingen föregående sida',\n noNextPage: 'Ingen nästa sida',\n cookieConsent: 'Cookie-medgivande',\n cookieDescription: 'Vi använder cookies för att förbättra din upplevelse.',\n cookieLearnMore: 'Läs mer',\n accept: 'Acceptera',\n decline: 'Avvisa',\n goToHomePage: 'Gå till startsidan',\n home: 'Hem',\n linkCopied: 'Länk kopierad!',\n copyLinkToSection: 'Kopiera länk till avsnitt',\n search: 'Sök',\n searchPlaceholder: 'Sök',\n closeBanner: 'Stäng banner',\n fallbackLocaleWarning: 'Detta innehåll visas på {fallbackLocaleName} eftersom det inte är tillgängligt på {requestedLocaleName}.',\n};\n\n/**\n * Norwegian translations\n */\nconst no: ThemeTranslations = {\n copyPage: 'Kopier side',\n copied: 'Kopiert!',\n openInChatGPT: 'Åpne i ChatGPT',\n openInClaude: 'Åpne i Claude',\n askAboutThisPage: 'Spør om denne siden i ChatGPT',\n copyPageDescription: 'Kopier side som Markdown for LLMs',\n askQuestionsDescription: 'Stille spørsmål om denne siden',\n chatGPTPrefix: 'Denne siden kommer fra',\n tableOfContents: 'Innholdsfortegnelse',\n contributors: 'Bidragsytere',\n goToDocsHome: 'Gå til dokumentasjonsforsiden',\n goBackTo: 'Tilbake til',\n goToPreviousPage: 'Forrige side',\n goToNextPage: 'Neste side',\n noPreviousPage: 'Ingen forrige side',\n noNextPage: 'Ingen neste side',\n cookieConsent: 'Cookie-samtykke',\n cookieDescription: 'Vi bruker informasjonskapsler for å forbedre opplevelsen din.',\n cookieLearnMore: 'Finn ut mer',\n accept: 'Godta',\n decline: 'Avslå',\n goToHomePage: 'Gå til forsiden',\n home: 'Hjem',\n linkCopied: 'Lenke kopiert!',\n copyLinkToSection: 'Kopier lenke til seksjon',\n search: 'Søk',\n searchPlaceholder: 'Søk',\n closeBanner: 'Lukk banner',\n fallbackLocaleWarning: 'Dette innholdet vises på {fallbackLocaleName} fordi det ikke er tilgjengelig på {requestedLocaleName}.',\n};\n\n/**\n * Danish translations\n */\nconst da: ThemeTranslations = {\n copyPage: 'Kopier side',\n copied: 'Kopieret!',\n openInChatGPT: 'Åbn i ChatGPT',\n openInClaude: 'Åbn i Claude',\n askAboutThisPage: 'Spørg om denne side i ChatGPT',\n copyPageDescription: 'Kopier side som Markdown til LLMs',\n askQuestionsDescription: 'Stille spørgsmål om denne side',\n chatGPTPrefix: 'Denne side kommer fra',\n tableOfContents: 'Indholdsfortegnelse',\n contributors: 'Bidragydere',\n goToDocsHome: 'Gå til dokumentationsforsiden',\n goBackTo: 'Tilbage til',\n goToPreviousPage: 'Forrige side',\n goToNextPage: 'Næste side',\n noPreviousPage: 'Ingen forrige side',\n noNextPage: 'Ingen næste side',\n cookieConsent: 'Cookie-samtykke',\n cookieDescription: 'Vi bruger cookies til at forbedre din oplevelse.',\n cookieLearnMore: 'Læs mere',\n accept: 'Accepter',\n decline: 'Afvis',\n goToHomePage: 'Gå til forsiden',\n home: 'Hjem',\n linkCopied: 'Link kopieret!',\n copyLinkToSection: 'Kopier link til sektion',\n search: 'Søg',\n searchPlaceholder: 'Søg',\n closeBanner: 'Luk banner',\n fallbackLocaleWarning: 'Dette indhold vises på {fallbackLocaleName}, fordi det ikke er tilgængeligt på {requestedLocaleName}.',\n};\n\n/**\n * Finnish translations\n */\nconst fi: ThemeTranslations = {\n copyPage: 'Kopioi sivu',\n copied: 'Kopioitu!',\n openInChatGPT: 'Avaa ChatGPT:ssä',\n openInClaude: 'Avaa Claude:ssa',\n askAboutThisPage: 'Kysy tästä sivusta ChatGPT:ssä',\n copyPageDescription: 'Kopioi sivu Markdown-muodossa LLM:ille',\n askQuestionsDescription: 'Kysy kysymyksiä tästä sivusta',\n chatGPTPrefix: 'Tämä sivu tulee',\n tableOfContents: 'Sisällysluettelo',\n contributors: 'Osallistujat',\n goToDocsHome: 'Siirry dokumentaation etusivulle',\n goBackTo: 'Takaisin',\n goToPreviousPage: 'Edellinen sivu',\n goToNextPage: 'Seuraava sivu',\n noPreviousPage: 'Ei edellistä sivua',\n noNextPage: 'Ei seuraavaa sivua',\n cookieConsent: 'Evästeiden suostumus',\n cookieDescription: 'Käytämme evästeitä parantaaksemme kokemustasi.',\n cookieLearnMore: 'Lue lisää',\n accept: 'Hyväksy',\n decline: 'Hylkää',\n goToHomePage: 'Siirry etusivulle',\n home: 'Koti',\n linkCopied: 'Linkki kopioitu!',\n copyLinkToSection: 'Kopioi linkki osioon',\n search: 'Hae',\n searchPlaceholder: 'Hae',\n closeBanner: 'Sulje banneri',\n fallbackLocaleWarning: 'Tämä sisältö näytetään {fallbackLocaleName}ksi, koska se ei ole saatavilla {requestedLocaleName}ksi.',\n};\n\n/**\n * Polish translations\n */\nconst pl: ThemeTranslations = {\n copyPage: 'Kopiuj stronę',\n copied: 'Skopiowano!',\n openInChatGPT: 'Otwórz w ChatGPT',\n openInClaude: 'Otwórz w Claude',\n askAboutThisPage: 'Zapytaj o tę stronę w ChatGPT',\n copyPageDescription: 'Skopiuj stronę jako Markdown dla LLM',\n askQuestionsDescription: 'Zadawaj pytania dotyczące tej strony',\n chatGPTPrefix: 'Ta strona pochodzi z',\n tableOfContents: 'Spis treści',\n contributors: 'Współtwórcy',\n goToDocsHome: 'Przejdź do strony głównej dokumentacji',\n goBackTo: 'Wróć do',\n goToPreviousPage: 'Poprzednia strona',\n goToNextPage: 'Następna strona',\n noPreviousPage: 'Brak poprzedniej strony',\n noNextPage: 'Brak następnej strony',\n cookieConsent: 'Zgoda na pliki cookie',\n cookieDescription: 'Używamy plików cookie, aby poprawić Twoje wrażenia.',\n cookieLearnMore: 'Dowiedz się więcej',\n accept: 'Zaakceptuj',\n decline: 'Odrzuć',\n goToHomePage: 'Przejdź do strony głównej',\n home: 'Strona główna',\n linkCopied: 'Link skopiowany!',\n copyLinkToSection: 'Kopiuj link do sekcji',\n search: 'Szukaj',\n searchPlaceholder: 'Szukaj',\n closeBanner: 'Zamknij baner',\n fallbackLocaleWarning: 'Ta zawartość jest wyświetlana w {fallbackLocaleName}, ponieważ nie jest dostępna w {requestedLocaleName}.',\n};\n\n/**\n * Turkish translations\n */\nconst tr: ThemeTranslations = {\n copyPage: 'Sayfayı kopyala',\n copied: 'Kopyalandı!',\n openInChatGPT: 'ChatGPT\\'te Aç',\n openInClaude: 'Claude\\'da Aç',\n askAboutThisPage: 'ChatGPT\\'te bu sayfa hakkında sor',\n copyPageDescription: 'Sayfayı LLM\\'ler için Markdown olarak kopyala',\n askQuestionsDescription: 'Bu sayfa hakkında sorular sor',\n chatGPTPrefix: 'Bu sayfa',\n tableOfContents: 'İçindekiler',\n contributors: 'Katkıda Bulunanlar',\n goToDocsHome: 'Dokümantasyon ana sayfasına git',\n goBackTo: 'Geri dön',\n goToPreviousPage: 'Önceki sayfa',\n goToNextPage: 'Sonraki sayfa',\n noPreviousPage: 'Önceki sayfa yok',\n noNextPage: 'Sonraki sayfa yok',\n cookieConsent: 'Çerez Onayı',\n cookieDescription: 'Deneyiminizi geliştirmek için çerezler kullanıyoruz.',\n cookieLearnMore: 'Daha fazla bilgi',\n accept: 'Kabul Et',\n decline: 'Reddet',\n goToHomePage: 'Ana sayfaya git',\n home: 'Ana Sayfa',\n linkCopied: 'Bağlantı kopyalandı!',\n copyLinkToSection: 'Bölüme bağlantı kopyala',\n search: 'Ara',\n searchPlaceholder: 'Ara',\n closeBanner: \"Banner'ı kapat\",\n fallbackLocaleWarning: 'Bu içerik {requestedLocaleName} dilinde mevcut olmadığı için {fallbackLocaleName} dilinde gösterilmektedir.',\n};\n\n/**\n * Hebrew translations (RTL)\n */\nconst he: ThemeTranslations = {\n copyPage: 'העתק עמוד',\n copied: 'הועתק!',\n openInChatGPT: 'פתח ב-ChatGPT',\n openInClaude: 'פתח ב-Claude',\n askAboutThisPage: 'שאל על דף זה ב-ChatGPT',\n copyPageDescription: 'העתק דף כ-Markdown עבור LLMs',\n askQuestionsDescription: 'שאל שאלות על דף זה',\n chatGPTPrefix: 'דף זה הגיע מ',\n tableOfContents: 'תוכן עניינים',\n contributors: 'תורמים',\n goToDocsHome: 'עבור לדף הבית של התיעוד',\n goBackTo: 'חזור ל',\n goToPreviousPage: 'עמוד קודם',\n goToNextPage: 'עמוד הבא',\n noPreviousPage: 'אין עמוד קודם',\n noNextPage: 'אין עמוד הבא',\n cookieConsent: 'הסכמה לעוגיות',\n cookieDescription: 'אנו משתמשים בעוגיות כדי לשפר את החוויה שלך.',\n cookieLearnMore: 'למד עוד',\n accept: 'מקבל',\n decline: 'דוחה',\n goToHomePage: 'עבור לדף הבית',\n home: 'בית',\n linkCopied: 'קישור הועתק!',\n copyLinkToSection: 'העתק קישור לסעיף',\n search: 'חפש',\n searchPlaceholder: 'חפש',\n closeBanner: 'סגור באנר',\n fallbackLocaleWarning: 'תוכן זה מוצג ב-{fallbackLocaleName} מכיוון שהוא אינו זמין ב-{requestedLocaleName}.',\n};\n\n/**\n * Hindi translations\n */\nconst hi: ThemeTranslations = {\n copyPage: 'पृष्ठ कॉपी करें',\n copied: 'कॉपी किया गया!',\n openInChatGPT: 'ChatGPT में खोलें',\n openInClaude: 'Claude में खोलें',\n askAboutThisPage: 'ChatGPT में इस पृष्ठ के बारे में पूछें',\n copyPageDescription: 'पृष्ठ को LLM के लिए Markdown के रूप में कॉपी करें',\n askQuestionsDescription: 'इस पृष्ठ के बारे में प्रश्न पूछें',\n chatGPTPrefix: 'यह पृष्ठ',\n tableOfContents: 'विषय सूची',\n contributors: 'योगदानकर्ता',\n goToDocsHome: 'दस्तावेज़ होम पर जाएं',\n goBackTo: 'वापस जाएं',\n goToPreviousPage: 'पिछला पृष्ठ',\n goToNextPage: 'अगला पृष्ठ',\n noPreviousPage: 'कोई पिछला पृष्ठ नहीं',\n noNextPage: 'कोई अगला पृष्ठ नहीं',\n cookieConsent: 'कुकी सहमति',\n cookieDescription: 'हम आपके अनुभव को बेहतर बनाने के लिए कुकीज़ का उपयोग करते हैं।',\n cookieLearnMore: 'और जानें',\n accept: 'स्वीकार करें',\n decline: 'अस्वीकार करें',\n goToHomePage: 'होम पेज पर जाएं',\n home: 'होम',\n linkCopied: 'लिंक कॉपी किया गया!',\n copyLinkToSection: 'अनुभाग के लिए लिंक कॉपी करें',\n search: 'खोजें',\n searchPlaceholder: 'खोजें',\n closeBanner: 'बैनर बंद करें',\n fallbackLocaleWarning: 'यह सामग्री {fallbackLocaleName} में दिखाई जा रही है क्योंकि यह {requestedLocaleName} में उपलब्ध नहीं है।',\n};\n\n/**\n * Translation map for all supported locales\n */\nconst translations: Record<Locale, ThemeTranslations> = {\n en,\n fr,\n de,\n es,\n ar,\n zh,\n ja,\n ko,\n pt,\n it,\n ru,\n nl,\n sv,\n no,\n da,\n fi,\n pl,\n tr,\n he,\n hi,\n};\n\n/**\n * Get translations for a specific locale\n * Falls back to English if locale is not found\n */\nexport function getTranslations(locale: Locale = 'en'): ThemeTranslations {\n return translations[locale] || translations.en;\n}\n\n/**\n * Get a specific translation key for a locale\n */\nexport function getTranslation(\n locale: Locale,\n key: keyof ThemeTranslations\n): string {\n const t = getTranslations(locale);\n return t[key] ?? '';\n}\n\n/**\n * Type-safe translation key helper\n */\nexport type TranslationKey = keyof ThemeTranslations;\n\n","import React from 'react';\nimport { getTranslations } from '../../../lib/translations';\nimport type { SidebarNode, Locale } from '@next-library/core';\n\ninterface ParentProps {\n parent: SidebarNode | null;\n currentPath?: string;\n locale?: Locale;\n}\n\nexport function Parent({ parent, currentPath, locale = 'en' }: ParentProps) {\n const isActive = parent && currentPath && parent.websitePath === `/${currentPath}`;\n const translations = getTranslations(locale);\n\n return (\n <div\n className={`flex flex-row items-center gap-2 text-wrap rounded-lg border shadow-sm p-4 truncate \n ${isActive\n ? 'dark:border-blue-400 border-blue-600 bg-blue-50 dark:bg-blue-900/20'\n : 'bg-gradient-to-b from-muted/10 to-muted/50 border-border'\n }`}\n >\n <p className=\"font-medium text-lg\">\n {parent?.title || translations.home}\n </p>\n </div>\n );\n}\n\n","import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\n","'use client';\n\nimport { cn } from '../../layout/utils';\n\ninterface LevelElevatorProps {\n currentLevel: number;\n className?: string;\n}\n\nexport function LevelElevator({ currentLevel, className }: LevelElevatorProps) {\n return (\n <div className={cn('flex flex-col items-center py-2', className)}>\n <div className=\"relative w-8 h-8 overflow-hidden bg-foreground rounded-md border border-foreground shadow-sm\">\n <div className=\"absolute inset-0 flex items-center justify-center text-background text-sm font-bold\">\n {currentLevel}\n </div>\n </div>\n </div>\n );\n}\n\n","import { cn } from '../../layout/utils';\nimport { LevelElevator } from './level-elevator';\nimport Link from 'next/link';\nimport { Home, FolderUp, ChevronLeft, ChevronRight } from 'lucide-react';\nimport { getTranslations } from '../../../lib/translations';\nimport type { Locale, SidebarNode, FlatContentMapItem } from '@next-library/core';\n\ninterface ToolboxTranslations {\n goToDocsHome?: string;\n goBackTo?: string;\n goToPreviousPage?: string;\n goToNextPage?: string;\n noPreviousPage?: string;\n noNextPage?: string;\n}\n\ninterface ToolboxProps {\n currentLevel: number;\n className?: string;\n parent: SidebarNode | null;\n grandparent: SidebarNode | null;\n previousPage: FlatContentMapItem | null;\n nextPage: FlatContentMapItem | null;\n lang: Locale;\n path: string;\n translations?: ToolboxTranslations;\n}\n\nexport function Toolbox({\n currentLevel,\n className,\n parent,\n grandparent,\n previousPage,\n nextPage,\n lang,\n path,\n translations = {},\n}: ToolboxProps) {\n const defaultTranslations = getTranslations(lang);\n const {\n goToDocsHome = defaultTranslations.goToDocsHome,\n goBackTo = defaultTranslations.goBackTo,\n goToPreviousPage = defaultTranslations.goToPreviousPage,\n goToNextPage = defaultTranslations.goToNextPage,\n noPreviousPage = defaultTranslations.noPreviousPage,\n noNextPage = defaultTranslations.noNextPage,\n } = translations;\n\n return (\n <div\n className={cn(\n 'flex items-center justify-between rounded-lg border border-border bg-muted/50 shadow-sm px-4',\n className\n )}\n >\n <LevelElevator currentLevel={currentLevel} />\n\n <div className=\"h-4 w-px bg-border\" />\n\n <Link\n href={`/${lang}/docs`}\n className=\"flex items-center justify-center h-7 w-7 rounded-md transition-all duration-200 text-muted-foreground hover:text-foreground hover:bg-background hover:scale-110\"\n title={goToDocsHome}\n aria-label={goToDocsHome}\n >\n <Home className=\"h-4 w-4\" />\n </Link>\n\n <div className=\"h-4 w-px bg-border\" />\n\n {(() => {\n // If we have a grandparent and the current path matches the parent's path, go to grandparent\n if (grandparent && grandparent.websitePath && parent && path === parent.websitePath?.replace(`/${lang}/docs/`, '')) {\n return (\n <Link\n href={grandparent.websitePath}\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground hover:text-foreground hover:bg-background hover:scale-110 transition-all duration-200\"\n title={`${goBackTo} ${grandparent.title}`}\n aria-label={`${goBackTo} ${grandparent.title}`}\n >\n <FolderUp className=\"h-4 w-4\" />\n </Link>\n );\n }\n\n // If we have a parent and current level > 1, go to parent\n else if (parent && parent.websitePath && path !== parent.websitePath?.replace(`/${lang}/docs/`, '')) {\n return (\n <Link\n href={parent.websitePath}\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground hover:text-foreground hover:bg-background hover:scale-110 transition-all duration-200\"\n title={`${goBackTo} ${parent?.title}`}\n aria-label={`${goBackTo} ${parent?.title}`}\n >\n <FolderUp className=\"h-4 w-4\" />\n </Link>\n );\n }\n\n // Default: go to documentation home\n return (\n <Link\n href={`/${lang}/docs`}\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground hover:text-foreground hover:bg-background hover:scale-110 transition-all duration-200\"\n title={goToDocsHome}\n aria-label={goToDocsHome}\n >\n <FolderUp className=\"h-4 w-4\" />\n </Link>\n );\n })()}\n\n <div className=\"h-4 w-px bg-border\" />\n\n {previousPage ? (\n <Link\n href={previousPage.websitePath || '#'}\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground hover:text-foreground hover:bg-background hover:scale-110 transition-all duration-200\"\n title={`${goToPreviousPage}: ${previousPage.title}`}\n aria-label={`${goToPreviousPage}: ${previousPage.title}`}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </Link>\n ) : (\n <div\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground/30 cursor-not-allowed\"\n title={noPreviousPage}\n aria-label={noPreviousPage}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </div>\n )}\n\n {nextPage ? (\n <Link\n href={nextPage.websitePath || '#'}\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground hover:text-foreground hover:bg-background hover:scale-110 transition-all duration-200\"\n title={`${goToNextPage}: ${nextPage.title}`}\n aria-label={`${goToNextPage}: ${nextPage.title}`}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Link>\n ) : (\n <div\n className=\"flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground/30 cursor-not-allowed\"\n title={noNextPage}\n aria-label={noNextPage}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </div>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { SidebarNavigation } from '@next-library/theme/client';\nimport { Parent } from '../navigation/sidebar-left/parent';\nimport { Toolbox } from '../navigation/sidebar-left/toolbox';\nimport type { PageData } from '@next-library/core';\nimport { cn } from './utils';\n\ninterface LeftSidebarProps {\n data: PageData;\n className?: string;\n}\n\nexport function LeftSidebar({ data, className }: LeftSidebarProps) {\n const { sidebar, navigation, computed } = data;\n\n return (\n <aside className={cn('md:flex hidden flex-col gap-4', className)} id=\"sidebar-left\">\n <Parent parent={sidebar.parent} currentPath={`${computed.lang}/docs/${computed.path}`} locale={computed.lang} />\n <Toolbox\n currentLevel={sidebar.currentLevel}\n parent={sidebar.parent}\n grandparent={sidebar.grandparent}\n previousPage={navigation.previous}\n nextPage={navigation.next}\n lang={computed.lang}\n path={computed.path}\n />\n <SidebarNavigation\n nodes={sidebar.items}\n currentPath={`/${computed.lang}/docs/${computed.path}`}\n language={computed.lang}\n />\n </aside>\n );\n}\n\n","import React from 'react';\nimport { GithubContributors, TableOfContents } from '@next-library/theme/client';\nimport type { PageData } from '@next-library/core';\nimport { cn } from './utils';\n\ninterface RightSidebarProps {\n data: PageData;\n className?: string;\n}\n\nexport function RightSidebar({ data, className }: RightSidebarProps) {\n const { rightSidebar, computed } = data;\n const lang = computed.lang;\n\n return (\n <aside className={cn('md:flex hidden flex-col gap-4', className)} id=\"sidebar-right\">\n {/* Contributors */}\n <GithubContributors\n contributors={rightSidebar.contributors}\n githubPath={rightSidebar.githubPath}\n locale={lang}\n />\n {/* Table of Contents */}\n <TableOfContents toc={rightSidebar.toc} lang={lang} />\n </aside>\n );\n}\n\n","import React from 'react';\nimport { CopyPageButton } from '@next-library/theme/client';\nimport type { Locale } from '@next-library/core';\n\ninterface CopyPageButtonTranslations {\n copyPage?: string;\n copied?: string;\n}\n\ninterface PageHeaderProps {\n title: string;\n markdown: string;\n pageUrl?: string;\n websiteTitle?: string;\n className?: string;\n locale?: Locale;\n translations?: CopyPageButtonTranslations;\n showCopyButton?: boolean;\n}\n\nexport function PageHeader({\n title,\n markdown,\n pageUrl,\n websiteTitle,\n className = '',\n locale = 'en',\n translations,\n showCopyButton = true,\n}: PageHeaderProps) {\n return (\n <div className={`flex flex-col gap-2 lg:gap-4 pb-8 font-bold prose prose-md max-w-none dark:prose-invert ${className}`}>\n {showCopyButton && (\n <CopyPageButton\n sourceCode={markdown}\n pageUrl={pageUrl}\n websiteTitle={websiteTitle}\n className=\"self-end hidden lg:flex\"\n locale={locale}\n translations={translations}\n />\n )}\n <h1 className=\"\">{title}</h1>\n </div>\n );\n}\n\n","/**\n * Locale name translations\n * Maps locale codes to their names in different languages\n */\n\nimport type { Locale } from '@next-library/core';\n\n/**\n * Locale names in English (used as fallback)\n */\nconst localeNamesEn: Record<Locale, string> = {\n en: 'English',\n fr: 'French',\n de: 'German',\n es: 'Spanish',\n ar: 'Arabic',\n zh: 'Chinese',\n ja: 'Japanese',\n ko: 'Korean',\n pt: 'Portuguese',\n it: 'Italian',\n ru: 'Russian',\n nl: 'Dutch',\n sv: 'Swedish',\n no: 'Norwegian',\n da: 'Danish',\n fi: 'Finnish',\n pl: 'Polish',\n tr: 'Turkish',\n he: 'Hebrew',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in French\n */\nconst localeNamesFr: Record<Locale, string> = {\n en: 'Anglais',\n fr: 'Français',\n de: 'Allemand',\n es: 'Espagnol',\n ar: 'Arabe',\n zh: 'Chinois',\n ja: 'Japonais',\n ko: 'Coréen',\n pt: 'Portugais',\n it: 'Italien',\n ru: 'Russe',\n nl: 'Néerlandais',\n sv: 'Suédois',\n no: 'Norvégien',\n da: 'Danois',\n fi: 'Finlandais',\n pl: 'Polonais',\n tr: 'Turc',\n he: 'Hébreu',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in German\n */\nconst localeNamesDe: Record<Locale, string> = {\n en: 'Englisch',\n fr: 'Französisch',\n de: 'Deutsch',\n es: 'Spanisch',\n ar: 'Arabisch',\n zh: 'Chinesisch',\n ja: 'Japanisch',\n ko: 'Koreanisch',\n pt: 'Portugiesisch',\n it: 'Italienisch',\n ru: 'Russisch',\n nl: 'Niederländisch',\n sv: 'Schwedisch',\n no: 'Norwegisch',\n da: 'Dänisch',\n fi: 'Finnisch',\n pl: 'Polnisch',\n tr: 'Türkisch',\n he: 'Hebräisch',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Spanish\n */\nconst localeNamesEs: Record<Locale, string> = {\n en: 'Inglés',\n fr: 'Francés',\n de: 'Alemán',\n es: 'Español',\n ar: 'Árabe',\n zh: 'Chino',\n ja: 'Japonés',\n ko: 'Coreano',\n pt: 'Portugués',\n it: 'Italiano',\n ru: 'Ruso',\n nl: 'Neerlandés',\n sv: 'Sueco',\n no: 'Noruego',\n da: 'Danés',\n fi: 'Finlandés',\n pl: 'Polaco',\n tr: 'Turco',\n he: 'Hebreo',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Arabic\n */\nconst localeNamesAr: Record<Locale, string> = {\n en: 'الإنجليزية',\n fr: 'الفرنسية',\n de: 'الألمانية',\n es: 'الإسبانية',\n ar: 'العربية',\n zh: 'الصينية',\n ja: 'اليابانية',\n ko: 'الكورية',\n pt: 'البرتغالية',\n it: 'الإيطالية',\n ru: 'الروسية',\n nl: 'الهولندية',\n sv: 'السويدية',\n no: 'النرويجية',\n da: 'الدنماركية',\n fi: 'الفنلندية',\n pl: 'البولندية',\n tr: 'التركية',\n he: 'العبرية',\n hi: 'الهندية',\n};\n\n/**\n * Locale names in Chinese\n */\nconst localeNamesZh: Record<Locale, string> = {\n en: '英语',\n fr: '法语',\n de: '德语',\n es: '西班牙语',\n ar: '阿拉伯语',\n zh: '中文',\n ja: '日语',\n ko: '韩语',\n pt: '葡萄牙语',\n it: '意大利语',\n ru: '俄语',\n nl: '荷兰语',\n sv: '瑞典语',\n no: '挪威语',\n da: '丹麦语',\n fi: '芬兰语',\n pl: '波兰语',\n tr: '土耳其语',\n he: '希伯来语',\n hi: '印地语',\n};\n\n/**\n * Locale names in Japanese\n */\nconst localeNamesJa: Record<Locale, string> = {\n en: '英語',\n fr: 'フランス語',\n de: 'ドイツ語',\n es: 'スペイン語',\n ar: 'アラビア語',\n zh: '中国語',\n ja: '日本語',\n ko: '韓国語',\n pt: 'ポルトガル語',\n it: 'イタリア語',\n ru: 'ロシア語',\n nl: 'オランダ語',\n sv: 'スウェーデン語',\n no: 'ノルウェー語',\n da: 'デンマーク語',\n fi: 'フィンランド語',\n pl: 'ポーランド語',\n tr: 'トルコ語',\n he: 'ヘブライ語',\n hi: 'ヒンディー語',\n};\n\n/**\n * Locale names in Korean\n */\nconst localeNamesKo: Record<Locale, string> = {\n en: '영어',\n fr: '프랑스어',\n de: '독일어',\n es: '스페인어',\n ar: '아랍어',\n zh: '중국어',\n ja: '일본어',\n ko: '한국어',\n pt: '포르투갈어',\n it: '이탈리아어',\n ru: '러시아어',\n nl: '네덜란드어',\n sv: '스웨덴어',\n no: '노르웨이어',\n da: '덴마크어',\n fi: '핀란드어',\n pl: '폴란드어',\n tr: '터키어',\n he: '히브리어',\n hi: '힌디어',\n};\n\n/**\n * Locale names in Portuguese\n */\nconst localeNamesPt: Record<Locale, string> = {\n en: 'Inglês',\n fr: 'Francês',\n de: 'Alemão',\n es: 'Espanhol',\n ar: 'Árabe',\n zh: 'Chinês',\n ja: 'Japonês',\n ko: 'Coreano',\n pt: 'Português',\n it: 'Italiano',\n ru: 'Russo',\n nl: 'Holandês',\n sv: 'Sueco',\n no: 'Norueguês',\n da: 'Dinamarquês',\n fi: 'Finlandês',\n pl: 'Polonês',\n tr: 'Turco',\n he: 'Hebraico',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Italian\n */\nconst localeNamesIt: Record<Locale, string> = {\n en: 'Inglese',\n fr: 'Francese',\n de: 'Tedesco',\n es: 'Spagnolo',\n ar: 'Arabo',\n zh: 'Cinese',\n ja: 'Giapponese',\n ko: 'Coreano',\n pt: 'Portoghese',\n it: 'Italiano',\n ru: 'Russo',\n nl: 'Olandese',\n sv: 'Svedese',\n no: 'Norvegese',\n da: 'Danese',\n fi: 'Finlandese',\n pl: 'Polacco',\n tr: 'Turco',\n he: 'Ebraico',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Russian\n */\nconst localeNamesRu: Record<Locale, string> = {\n en: 'Английский',\n fr: 'Французский',\n de: 'Немецкий',\n es: 'Испанский',\n ar: 'Арабский',\n zh: 'Китайский',\n ja: 'Японский',\n ko: 'Корейский',\n pt: 'Португальский',\n it: 'Итальянский',\n ru: 'Русский',\n nl: 'Голландский',\n sv: 'Шведский',\n no: 'Норвежский',\n da: 'Датский',\n fi: 'Финский',\n pl: 'Польский',\n tr: 'Турецкий',\n he: 'Иврит',\n hi: 'Хинди',\n};\n\n/**\n * Locale names in Dutch\n */\nconst localeNamesNl: Record<Locale, string> = {\n en: 'Engels',\n fr: 'Frans',\n de: 'Duits',\n es: 'Spaans',\n ar: 'Arabisch',\n zh: 'Chinees',\n ja: 'Japans',\n ko: 'Koreaans',\n pt: 'Portugees',\n it: 'Italiaans',\n ru: 'Russisch',\n nl: 'Nederlands',\n sv: 'Zweeds',\n no: 'Noors',\n da: 'Deens',\n fi: 'Fins',\n pl: 'Pools',\n tr: 'Turks',\n he: 'Hebreeuws',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Swedish\n */\nconst localeNamesSv: Record<Locale, string> = {\n en: 'Engelska',\n fr: 'Franska',\n de: 'Tyska',\n es: 'Spanska',\n ar: 'Arabiska',\n zh: 'Kinesiska',\n ja: 'Japanska',\n ko: 'Koreanska',\n pt: 'Portugisiska',\n it: 'Italienska',\n ru: 'Ryska',\n nl: 'Nederländska',\n sv: 'Svenska',\n no: 'Norska',\n da: 'Danska',\n fi: 'Finska',\n pl: 'Polska',\n tr: 'Turkiska',\n he: 'Hebreiska',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Norwegian\n */\nconst localeNamesNo: Record<Locale, string> = {\n en: 'Engelsk',\n fr: 'Fransk',\n de: 'Tysk',\n es: 'Spansk',\n ar: 'Arabisk',\n zh: 'Kinesisk',\n ja: 'Japansk',\n ko: 'Koreansk',\n pt: 'Portugisisk',\n it: 'Italiensk',\n ru: 'Russisk',\n nl: 'Nederlandsk',\n sv: 'Svensk',\n no: 'Norsk',\n da: 'Dansk',\n fi: 'Finsk',\n pl: 'Polsk',\n tr: 'Tyrkisk',\n he: 'Hebraisk',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Danish\n */\nconst localeNamesDa: Record<Locale, string> = {\n en: 'Engelsk',\n fr: 'Fransk',\n de: 'Tysk',\n es: 'Spansk',\n ar: 'Arabisk',\n zh: 'Kinesisk',\n ja: 'Japansk',\n ko: 'Koreansk',\n pt: 'Portugisisk',\n it: 'Italiensk',\n ru: 'Russisk',\n nl: 'Hollandsk',\n sv: 'Svensk',\n no: 'Norsk',\n da: 'Dansk',\n fi: 'Finsk',\n pl: 'Polsk',\n tr: 'Tyrkisk',\n he: 'Hebraisk',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Finnish\n */\nconst localeNamesFi: Record<Locale, string> = {\n en: 'Englanti',\n fr: 'Ranska',\n de: 'Saksa',\n es: 'Espanja',\n ar: 'Arabia',\n zh: 'Kiina',\n ja: 'Japani',\n ko: 'Korea',\n pt: 'Portugali',\n it: 'Italia',\n ru: 'Venäjä',\n nl: 'Hollanti',\n sv: 'Ruotsi',\n no: 'Norja',\n da: 'Tanska',\n fi: 'Suomi',\n pl: 'Puola',\n tr: 'Turkki',\n he: 'Heprea',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Polish\n */\nconst localeNamesPl: Record<Locale, string> = {\n en: 'Angielski',\n fr: 'Francuski',\n de: 'Niemiecki',\n es: 'Hiszpański',\n ar: 'Arabski',\n zh: 'Chiński',\n ja: 'Japoński',\n ko: 'Koreański',\n pt: 'Portugalski',\n it: 'Włoski',\n ru: 'Rosyjski',\n nl: 'Holenderski',\n sv: 'Szwedzki',\n no: 'Norweski',\n da: 'Duński',\n fi: 'Fiński',\n pl: 'Polski',\n tr: 'Turecki',\n he: 'Hebrajski',\n hi: 'Hindi',\n};\n\n/**\n * Locale names in Turkish\n */\nconst localeNamesTr: Record<Locale, string> = {\n en: 'İngilizce',\n fr: 'Fransızca',\n de: 'Almanca',\n es: 'İspanyolca',\n ar: 'Arapça',\n zh: 'Çince',\n ja: 'Japonca',\n ko: 'Korece',\n pt: 'Portekizce',\n it: 'İtalyanca',\n ru: 'Rusça',\n nl: 'Felemenkçe',\n sv: 'İsveççe',\n no: 'Norveççe',\n da: 'Danca',\n fi: 'Fince',\n pl: 'Lehçe',\n tr: 'Türkçe',\n he: 'İbranice',\n hi: 'Hintçe',\n};\n\n/**\n * Locale names in Hebrew\n */\nconst localeNamesHe: Record<Locale, string> = {\n en: 'אנגלית',\n fr: 'צרפתית',\n de: 'גרמנית',\n es: 'ספרדית',\n ar: 'ערבית',\n zh: 'סינית',\n ja: 'יפנית',\n ko: 'קוריאנית',\n pt: 'פורטוגזית',\n it: 'איטלקית',\n ru: 'רוסית',\n nl: 'הולנדית',\n sv: 'שוודית',\n no: 'נורווגית',\n da: 'דנית',\n fi: 'פינית',\n pl: 'פולנית',\n tr: 'טורקית',\n he: 'עברית',\n hi: 'הינדי',\n};\n\n/**\n * Locale names in Hindi\n */\nconst localeNamesHi: Record<Locale, string> = {\n en: 'अंग्रेजी',\n fr: 'फ्रेंच',\n de: 'जर्मन',\n es: 'स्पेनिश',\n ar: 'अरबी',\n zh: 'चीनी',\n ja: 'जापानी',\n ko: 'कोरियाई',\n pt: 'पुर्तगाली',\n it: 'इतालवी',\n ru: 'रूसी',\n nl: 'डच',\n sv: 'स्वीडिश',\n no: 'नॉर्वेजियन',\n da: 'डेनिश',\n fi: 'फिनिश',\n pl: 'पोलिश',\n tr: 'तुर्की',\n he: 'हिब्रू',\n hi: 'हिन्दी',\n};\n\n/**\n * Map of locale names by target language\n */\nconst localeNamesByLanguage: Record<Locale, Record<Locale, string>> = {\n en: localeNamesEn,\n fr: localeNamesFr,\n de: localeNamesDe,\n es: localeNamesEs,\n ar: localeNamesAr,\n zh: localeNamesZh,\n ja: localeNamesJa,\n ko: localeNamesKo,\n pt: localeNamesPt,\n it: localeNamesIt,\n ru: localeNamesRu,\n nl: localeNamesNl,\n sv: localeNamesSv,\n no: localeNamesNo,\n da: localeNamesDa,\n fi: localeNamesFi,\n pl: localeNamesPl,\n tr: localeNamesTr,\n he: localeNamesHe,\n hi: localeNamesHi,\n};\n\n/**\n * Get the name of a locale in a specific target language\n */\nexport function getLocaleNameInLanguage(locale: Locale, targetLanguage: Locale): string {\n const names = localeNamesByLanguage[targetLanguage] || localeNamesEn;\n return names[locale] || locale;\n}\n\n","import React from 'react';\nimport { AlertTriangle } from 'lucide-react';\nimport { getTranslations } from '../../lib/translations';\nimport { getLocaleNameInLanguage } from '../../lib/translations/locale-names';\nimport { cn } from '../layout/utils';\nimport type { Locale } from '@next-library/core';\n\ninterface FallbackLocaleWarningProps {\n locale: Locale;\n fallbackLocale?: Locale;\n className?: string;\n translations?: {\n message?: string;\n };\n}\n\n/**\n * Warning banner displayed when content is shown from a fallback locale\n * because it's not available in the requested locale.\n */\nexport function FallbackLocaleWarning({\n locale,\n fallbackLocale = 'en',\n className,\n translations = {},\n}: FallbackLocaleWarningProps) {\n const defaultTranslations = getTranslations(locale);\n const { message } = translations;\n\n // Get locale names translated to the warning message language\n // The warning is shown in the requested locale's language\n const requestedLocaleName = getLocaleNameInLanguage(locale, locale).toLowerCase();\n const fallbackLocaleName = getLocaleNameInLanguage(fallbackLocale, locale).toLowerCase();\n\n // Use custom message if provided, otherwise use default translation with locale names\n const warningMessage =\n message ||\n (defaultTranslations.fallbackLocaleWarning\n ? defaultTranslations.fallbackLocaleWarning\n .replace('{requestedLocaleName}', requestedLocaleName)\n .replace('{fallbackLocaleName}', fallbackLocaleName)\n : `This content is shown in ${fallbackLocaleName} (fallback) as it's not available in ${requestedLocaleName}.`);\n\n return (\n <div\n className={cn(\n 'mb-4 p-3 bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg',\n className\n )}\n role=\"alert\"\n aria-live=\"polite\"\n >\n <div className=\"flex items-center gap-2\">\n <AlertTriangle\n className=\"h-5 w-5 text-yellow-600 dark:text-yellow-400 flex-shrink-0\"\n aria-hidden=\"true\"\n />\n <span className=\"text-sm text-yellow-800 dark:text-yellow-200\">\n {warningMessage}\n </span>\n </div>\n </div>\n );\n}\n\n","import React from 'react';\n\ninterface StructuredDataProps {\n data: object | object[];\n}\n\n/**\n * Component to inject structured data (JSON-LD) into the page\n * Multiple schemas can be passed as an array\n */\nexport function StructuredData({ data }: StructuredDataProps) {\n const schemas = Array.isArray(data) ? data : [data];\n\n return (\n <>\n {schemas.map((schema, index) => (\n <script\n key={index}\n type=\"application/ld+json\"\n dangerouslySetInnerHTML={{\n __html: JSON.stringify(schema, null, 2),\n }}\n />\n ))}\n </>\n );\n}\n\n","'use client';\n\nimport React, { SVGProps, useState } from 'react';\nimport { motion, useMotionValueEvent, useScroll } from 'motion/react';\nimport { cn } from '../layout/utils';\nimport { getTranslations } from '../../lib/translations';\nimport type { Locale } from '@next-library/core';\n\ninterface StickyBannerProps {\n className?: string;\n children: React.ReactNode;\n hideOnScroll?: boolean;\n locale?: Locale;\n closeLabel?: string;\n}\n\nexport function StickyBanner({\n className,\n children,\n hideOnScroll = false,\n locale = 'en',\n closeLabel,\n}: StickyBannerProps) {\n const [open, setOpen] = useState(true);\n const { scrollY } = useScroll();\n const translations = getTranslations(locale);\n const ariaLabel = closeLabel || translations.closeBanner;\n\n useMotionValueEvent(scrollY, 'change', (latest) => {\n if (hideOnScroll && latest > 16) {\n setOpen(false);\n } else {\n setOpen(true);\n }\n });\n\n return (\n <motion.div\n className={cn(\n 'sticky inset-x-0 top-0 z-40 flex min-h-12 w-full items-center justify-center bg-transparent px-4 py-1',\n className\n )}\n initial={{\n y: -100,\n opacity: 0,\n }}\n animate={{\n y: open ? 0 : -100,\n opacity: open ? 1 : 0,\n }}\n transition={{\n duration: 0.3,\n ease: 'easeInOut',\n }}\n >\n {children}\n\n <motion.button\n initial={{\n scale: 0,\n }}\n animate={{\n scale: 1,\n }}\n className=\"absolute top-1/2 right-2 -translate-y-1/2 cursor-pointer\"\n onClick={() => setOpen(!open)}\n aria-label={ariaLabel}\n >\n <CloseIcon className=\"h-5 w-5 text-white\" aria-hidden=\"true\" />\n </motion.button>\n </motion.div>\n );\n}\n\nconst CloseIcon = (props: SVGProps<SVGSVGElement>) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M18 6l-12 12\" />\n <path d=\"M6 6l12 12\" />\n </svg>\n );\n};\n","'use client';\n\nimport React from 'react';\nimport { StickyBanner } from '../../ui/sticky-banner';\nimport type { Locale } from '@next-library/core';\n\ninterface BannerProps {\n children: React.ReactNode;\n language?: Locale;\n}\n\nexport default function Banner({ children, language = 'en' }: BannerProps) {\n return (\n <StickyBanner\n className=\"bg-gradient-to-b from-blue-500 to-blue-600 text-center py-2 lg:py-0\"\n hideOnScroll\n locale={language}\n >\n <p className=\"mx-0 max-w-[90%] text-white drop-shadow-md\">{children}</p>\n </StickyBanner>\n );\n}\n\n","'use client';\n\nimport React from 'react';\nimport Link from 'next/link';\nimport Image from 'next/image';\nimport { getTranslations } from '../../../lib/translations';\nimport type { Locale } from '@next-library/core';\n\ninterface LogoProps {\n className?: string;\n language?: Locale;\n title?: string;\n}\n\nexport function Logo({ className = '', language = 'en', title = '' }: LogoProps) {\n const translations = getTranslations(language);\n \n return (\n <Link\n href={`/${language}`}\n className={` font-bold hidden lg:flex text-lg hover:opacity-80 transition-opacity ${className}`}\n aria-label={translations.goToHomePage}\n >\n {/* Simple text logo - can be replaced with SVG/image later */}\n <div className=\"flex items-center gap-2\">\n <Image src=\"/logo.png\" alt={`${title} logo`} width={20} height={20} />\n <span\n className=\"items-center hidden xl:flex select-none text-md font-bold\"\n title={`${title} logo`}\n >\n {title}\n </span>\n </div>\n </Link>\n );\n}\n\n","'use client';\n\nimport React from 'react';\nimport Link from 'next/link';\n\ninterface Category {\n title: string;\n path: string;\n}\n\ninterface TopCategoriesProps {\n categories: Category[];\n className?: string;\n}\n\nexport function TopCategories({ categories, className = '' }: TopCategoriesProps) {\n if (categories.length === 0) {\n return null;\n }\n\n return (\n <nav\n className={`hidden md:flex items-center space-x-6 mr-2 ${className}`}\n aria-label=\"Top navigation categories\"\n >\n {categories.map((category) => (\n <Link\n key={category.path}\n href={category.path}\n className=\"text-sm text-gray-700 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition-colors\"\n >\n {category.title}\n </Link>\n ))}\n </nav>\n );\n}\n\n// Mobile version for responsive design\nexport function MobileTopCategories({ categories, className = '' }: TopCategoriesProps) {\n const [isOpen, setIsOpen] = React.useState(false);\n\n if (categories.length === 0) {\n return null;\n }\n\n return (\n <div className={`md:hidden ${className}`}>\n <button\n onClick={() => setIsOpen(!isOpen)}\n className=\"flex items-center space-x-1 px-3 py-2 text-sm font-medium text-gray-700 hover:text-gray-900 dark:text-gray-300 dark:hover:text-white transition-colors\"\n aria-label=\"Toggle navigation menu\"\n aria-expanded={isOpen}\n >\n <span>Menu</span>\n <svg\n className={`h-4 w-4 transition-transform ${isOpen ? 'rotate-180' : ''}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n </button>\n\n {isOpen && (\n <>\n {/* Backdrop */}\n <div className=\"fixed inset-0 z-10\" onClick={() => setIsOpen(false)} />\n\n {/* Mobile menu */}\n <div className=\"absolute top-full left-0 mt-1 w-48 bg-white dark:bg-gray-800 rounded-md shadow-lg ring-1 ring-black ring-opacity-5 z-20\">\n <div className=\"py-1\" role=\"menu\">\n {categories.map((category) => (\n <Link\n key={category.path}\n href={category.path}\n className=\"block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-700 transition-colors\"\n role=\"menuitem\"\n onClick={() => setIsOpen(false)}\n >\n {category.title}\n </Link>\n ))}\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n\n","import * as React from 'react';\nimport { cn } from '../layout/utils';\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n\n","'use client';\n\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport { useRouter, usePathname } from 'next/navigation';\nimport { Search, Loader2, X } from 'lucide-react';\nimport type { ContentSearchResult } from '@next-library/core';\nimport { getTranslations } from '../../../lib/translations';\nimport { Input } from '../../ui/input';\nimport { cn } from '../../layout/utils';\nimport type { Locale } from '@next-library/core';\n\nconst INPUTS = new Set(['INPUT', 'SELECT', 'BUTTON', 'TEXTAREA']);\n\ninterface SearchBarProps {\n language?: Locale;\n className?: string;\n}\n\nexport function SearchBar({ language = 'en', className }: SearchBarProps) {\n const router = useRouter();\n const pathname = usePathname();\n const translations = getTranslations(language);\n const [query, setQuery] = useState('');\n const [results, setResults] = useState<ContentSearchResult[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [isOpen, setIsOpen] = useState(false);\n const [isMac, setIsMac] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(-1);\n const inputRef = useRef<HTMLInputElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const resultsRef = useRef<HTMLDivElement>(null);\n\n // Detect if running on Mac (client-side only)\n useEffect(() => {\n setIsMac(typeof navigator !== 'undefined' && navigator.userAgent.includes('Mac'));\n }, []);\n\n // Debounced search via API route\n useEffect(() => {\n if (!query.trim()) {\n setResults([]);\n setIsLoading(false);\n return;\n }\n\n setIsLoading(true);\n const timeoutId = setTimeout(async () => {\n try {\n // Always include language parameter (defaults to 'en' if not provided)\n const searchParams = new URLSearchParams({\n q: query,\n lang: language || 'en',\n });\n\n const response = await fetch(`/api/search?${searchParams.toString()}`);\n if (!response.ok) {\n throw new Error('Search request failed');\n }\n\n const data = await response.json();\n setResults(data.results || []);\n setIsLoading(false);\n setSelectedIndex(-1);\n } catch (error) {\n console.error('Search error:', error);\n setResults([]);\n setIsLoading(false);\n }\n }, 200);\n\n return () => clearTimeout(timeoutId);\n }, [query, language]);\n\n // Keyboard shortcuts (Cmd/Ctrl+K and /)\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n const el = document.activeElement;\n if (!el || INPUTS.has(el.tagName) || (el as HTMLElement).isContentEditable) {\n return;\n }\n\n // Handle / to open search\n if (event.key === '/' && !event.shiftKey) {\n event.preventDefault();\n inputRef.current?.focus({ preventScroll: true });\n setIsOpen(true);\n }\n\n // Handle Cmd/Ctrl+K to open search\n if (event.key === 'k' && !event.shiftKey && (isMac ? event.metaKey : event.ctrlKey)) {\n event.preventDefault();\n inputRef.current?.focus({ preventScroll: true });\n setIsOpen(true);\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [isMac]);\n\n // Handle keyboard navigation in results\n useEffect(() => {\n if (!isOpen || results.length === 0) return;\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n setSelectedIndex((prev) => (prev < results.length - 1 ? prev + 1 : prev));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n setSelectedIndex((prev) => (prev > 0 ? prev - 1 : -1));\n } else if (event.key === 'Enter' && selectedIndex >= 0) {\n event.preventDefault();\n handleSelectResult(results[selectedIndex]);\n } else if (event.key === 'Escape') {\n event.preventDefault();\n setIsOpen(false);\n inputRef.current?.blur();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [isOpen, results, selectedIndex]);\n\n // Close results when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n // Scroll selected item into view\n useEffect(() => {\n if (selectedIndex >= 0 && resultsRef.current) {\n const selectedElement = resultsRef.current.children[selectedIndex] as HTMLElement;\n if (selectedElement) {\n selectedElement.scrollIntoView({ block: 'nearest', behavior: 'smooth' });\n }\n }\n }, [selectedIndex]);\n\n const handleSelectResult = useCallback(\n (result: ContentSearchResult) => {\n // Build the URL path\n const url = `/${result.language}/docs/${result.path}`;\n\n // Close search and navigate\n setIsOpen(false);\n setQuery('');\n setResults([]);\n inputRef.current?.blur();\n\n router.push(url);\n },\n [router]\n );\n\n const handleClear = useCallback(() => {\n setQuery('');\n setResults([]);\n inputRef.current?.focus();\n }, []);\n\n const handleFocus = useCallback(() => {\n setIsOpen(true);\n }, []);\n\n const handleBlur = useCallback(() => {\n // Delay to allow click on results to register\n setTimeout(() => {\n setIsOpen(false);\n }, 200);\n }, []);\n\n const showResults = isOpen && (query.trim().length > 0 || results.length > 0);\n\n return (\n <div className={cn('relative', className)} ref={containerRef}>\n {/* Search Input */}\n <div className=\"relative\">\n <div className=\"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\">\n {isLoading ? (\n <Loader2 className=\"h-4 w-4 text-muted-foreground animate-spin\" aria-hidden=\"true\" />\n ) : (\n <Search className=\"h-4 w-4 text-muted-foreground\" aria-hidden=\"true\" />\n )}\n </div>\n <Input\n ref={inputRef}\n type=\"text\"\n spellCheck={false}\n autoComplete=\"off\"\n className=\"pl-10 pr-20 min-w-[200px] max-w-[300px]\"\n placeholder={translations.searchPlaceholder}\n aria-label={translations.search}\n value={query}\n onChange={(e) => {\n setQuery(e.target.value);\n setIsOpen(true);\n }}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n <div className=\"absolute inset-y-0 right-0 pr-3 flex items-center justify-center w-12\">\n {query ? (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors\"\n aria-label=\"Clear search\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n ) : (\n <div className=\"pointer-events-none flex items-center justify-center\">\n <kbd className=\"hidden md:inline-flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100\">\n {isMac ? '⌘' : 'Ctrl'}+K\n </kbd>\n </div>\n )}\n </div>\n </div>\n\n {/* Search Results */}\n {showResults && (\n <div\n className=\"absolute top-full left-0 mt-2 w-full max-w-[500px] max-h-[400px] overflow-y-auto overflow-x-hidden bg-popover border rounded-md shadow-lg z-50\"\n ref={resultsRef}\n >\n {isLoading ? (\n <div className=\"p-4 text-center text-sm text-muted-foreground\">\n {translations.search}...\n </div>\n ) : results.length === 0 ? (\n <div className=\"p-4 text-center text-sm text-muted-foreground\">\n No results found\n </div>\n ) : (\n <div className=\"p-1\">\n {results.map((result, index) => (\n <button\n key={`${result.language}-${result.path}`}\n type=\"button\"\n onClick={() => handleSelectResult(result)}\n className={cn(\n 'w-full text-left px-3 py-2 rounded-sm hover:bg-accent hover:text-accent-foreground transition-colors',\n selectedIndex === index && 'bg-accent text-accent-foreground'\n )}\n >\n <div className=\"font-medium text-sm\">{result.title}</div>\n {result.description && (\n <div className=\"text-xs text-muted-foreground mt-1 line-clamp-2\">\n {result.description}\n </div>\n )}\n </button>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n","'use client';\n\nimport React from 'react';\nimport { useTheme } from 'next-themes';\n\nexport function ThemeSwitcher() {\n const { resolvedTheme, setTheme } = useTheme();\n const otherTheme = resolvedTheme === 'dark' ? 'light' : 'dark';\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n return (\n <button\n type=\"button\"\n className=\"flex h-9 w-9 items-center rounded-full justify-center transition-colors\"\n aria-label={mounted ? `Switch to ${otherTheme} theme` : 'Toggle theme'}\n onClick={() => setTheme(otherTheme)}\n >\n <SunIcon className=\"h-6 w-6 stroke-current dark:hidden\" />\n <MoonIcon className=\"hidden h-6 w-6 stroke-current dark:block\" />\n </button>\n );\n}\n\nfunction SunIcon(props: React.ComponentPropsWithoutRef<'svg'>) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\" {...props}>\n <path d=\"M12.5 10a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Z\" />\n <path\n strokeLinecap=\"round\"\n d=\"M10 5.5v-1M13.182 6.818l.707-.707M14.5 10h1M13.182 13.182l.707.707M10 15.5v-1M6.11 13.889l.708-.707M4.5 10h1M6.11 6.111l.708.707\"\n />\n </svg>\n );\n}\n\nfunction MoonIcon(props: React.ComponentPropsWithoutRef<'svg'>) {\n return (\n <svg viewBox=\"0 0 20 20\" fill=\"none\" aria-hidden=\"true\" {...props}>\n <path d=\"M15.224 11.724a5.5 5.5 0 0 1-6.949-6.949 5.5 5.5 0 1 0 6.949 6.949Z\" />\n </svg>\n );\n}\n\n","'use client';\n\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../layout/utils';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-10 px-4 py-2',\n sm: 'h-9 rounded-md px-3',\n lg: 'h-11 rounded-md px-8',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />\n );\n }\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n\n","'use client';\n\nimport * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\nimport { cn } from '../layout/utils';\n\nfunction DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return <DropdownMenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive! [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return <DropdownMenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />;\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn('px-2 py-1.5 text-sm font-medium data-inset:pl-8', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-inset:pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n","'use client';\n\nimport React from 'react';\nimport { useLocale } from '@next-library/core/hooks';\nimport { Button } from '../../ui/button';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '../../ui/dropdown-menu';\nimport { LanguagesIcon } from 'lucide-react';\n\ninterface LocaleOption {\n code: string;\n nativeName: string;\n}\n\ninterface LanguageSwitcherProps {\n className?: string;\n availableLocales?: string[];\n localeConfigs?: LocaleOption[];\n}\n\nexport function LanguageSwitcher({\n className = '',\n availableLocales: propLocales,\n localeConfigs\n}: LanguageSwitcherProps) {\n const { locale, availableLocales: hookLocales, changeLocale, isLoading } = useLocale();\n // Use prop locales if provided (from server), otherwise use hook locales\n const availableLocales = propLocales && propLocales.length > 0 ? propLocales : hookLocales;\n\n if (isLoading) {\n return (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className={`flex h-9 w-9 items-center rounded-full justify-center ${className}`}\n >\n <LanguagesIcon className=\"h-4 w-4\" data-testid=\"globe-icon\" />\n </Button>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"flex h-9 w-9 items-center rounded-full justify-center\"\n aria-label=\"Select language\"\n aria-haspopup=\"true\"\n >\n <LanguagesIcon className=\"h-4 w-4\" data-testid=\"globe-icon\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"dark:bg-black\">\n {availableLocales.map((availableLocale) => {\n // Use locale config from server if provided, otherwise fallback to locale code\n const localeConfig = localeConfigs?.find(config => config.code === availableLocale);\n const nativeName = localeConfig?.nativeName || availableLocale.toUpperCase();\n const isActive = availableLocale === locale;\n\n return (\n <DropdownMenuItem\n key={availableLocale}\n onClick={() => changeLocale(availableLocale)}\n className={`${isActive ? 'bg-accent text-accent-foreground' : ''}`}\n >\n {nativeName}\n </DropdownMenuItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\n","'use client';\n\nimport { cn } from '../layout/utils';\nimport * as React from 'react';\nimport { Drawer as DrawerPrimitive } from 'vaul';\n\nfunction Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />;\n}\n\nfunction DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n 'group/drawer-content bg-background fixed z-50 flex h-auto flex-col',\n 'data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b',\n 'data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t',\n 'data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=right]:sm:max-w-sm',\n 'data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=left]:sm:max-w-sm',\n className\n )}\n {...props}\n >\n <div className=\"bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n 'flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn('text-foreground font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n\n","'use client';\n\nimport * as React from 'react';\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener('change', onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener('change', onChange);\n }, []);\n\n return !!isMobile;\n}\n\n","'use client';\n\nimport * as React from 'react';\nimport * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport { cn } from '../layout/utils';\n\nfunction Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n\n","'use client';\n\nimport * as React from 'react';\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\nimport { cn } from '../layout/utils';\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger({ ...props }: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({ ...props }: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nfunction SheetPortal({ ...props }: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SheetContent({\n className,\n children,\n side = 'right',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left';\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n side === 'right' &&\n 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',\n side === 'left' &&\n 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm',\n side === 'top' &&\n 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b',\n side === 'bottom' &&\n 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t',\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none\">\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn('flex flex-col gap-1.5 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn('text-foreground font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n\n","import * as React from 'react';\nimport { cn } from '../layout/utils';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn('bg-accent animate-pulse', className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n\n","'use client';\n\nimport * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport { cn } from '../layout/utils';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance',\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n\n","'use client';\n\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { PanelLeftIcon } from 'lucide-react';\n\nimport { useIsMobile } from '../../hooks/use-mobile';\nimport { cn } from '../layout/utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex w-full',\n className\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n 'bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)'\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('size-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex',\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col',\n 'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('bg-background h-8 w-full shadow-none', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('bg-sidebar-border mx-2 w-auto', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border ml-3 flex min-w-0 translate-x-px flex-col gap-1 border-l pl-3 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n}) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n\n","'use client';\n\nimport * as React from 'react';\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\n\nfunction Collapsible({ ...props }: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return <CollapsiblePrimitive.CollapsibleTrigger data-slot=\"collapsible-trigger\" {...props} />;\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return <CollapsiblePrimitive.CollapsibleContent data-slot=\"collapsible-content\" {...props} />;\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n\n","'use client';\n\nimport {\n SidebarContent,\n SidebarMenu,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarProvider,\n} from '../../ui/sidebar';\nimport type { SidebarNode } from '@next-library/core';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../ui/collapsible';\nimport {\n ChevronRight,\n ChevronDown,\n FolderOpenIcon,\n FolderClosedIcon,\n FileTextIcon,\n} from 'lucide-react';\nimport Link from 'next/link';\nimport type { Locale } from '@next-library/core';\n\ninterface SidebarNavigationProps {\n nodes: SidebarNode[];\n currentPath?: string;\n language?: Locale;\n translations?: {\n toggleFolder?: string;\n };\n}\n\n// Helper function to check if a node is the current active page\nfunction isActiveNode(node: SidebarNode, currentPath?: string): boolean {\n if (!currentPath || !node.websitePath) return false;\n\n // Normalize paths for comparison\n const nodePath = node.websitePath.replace(/\\/$/, ''); // Remove trailing slash\n const normalizedCurrentPath = currentPath.replace(/\\/$/, ''); // Remove trailing slash\n\n return nodePath === normalizedCurrentPath;\n}\n\n// Helper function to check if any child is active (for parent highlighting)\nfunction hasActiveChild(node: SidebarNode, currentPath?: string): boolean {\n if (!currentPath || !node.children) return false;\n\n return Object.values(node.children).some(\n (child) => isActiveNode(child, currentPath) || hasActiveChild(child, currentPath)\n );\n}\n\nexport function SidebarNavigation({\n nodes,\n currentPath,\n language = 'en',\n translations = {},\n}: SidebarNavigationProps) {\n const { toggleFolder = 'Toggle folder' } = translations;\n\n return (\n <SidebarProvider>\n <SidebarContent className=\"overflow-hidden p-1\">\n {nodes.map((node) => {\n if (!node.websitePath) return null;\n \n const isActive = isActiveNode(node, currentPath);\n const hasActiveChildNode = hasActiveChild(node, currentPath);\n\n return node.children && Object.keys(node.children).length > 0 ? (\n <Collapsible key={node.websitePath} className=\"group/collapsible\">\n <SidebarMenu key={`menu-${node.websitePath}`}>\n <SidebarMenuItem key={node.websitePath}>\n <div className=\"flex flex-nowrap items-center gap-2\">\n <Link\n href={node.websitePath}\n className={`flex flex-nowrap items-center gap-2 flex-auto p-2 rounded-md hover:bg-neutral-100 dark:hover:bg-neutral-900 ${isActive\n ? 'bg-blue-50 dark:bg-blue-900/20 dark:border-blue-400 border-blue-600'\n : hasActiveChildNode\n ? 'bg-blue-50/50 dark:bg-blue-900/10'\n : ''\n }`}\n >\n <div className=\"flex-none\">\n <FolderOpenIcon className=\"h-4 w-4 group-data-[state=closed]/collapsible:hidden\" />\n <FolderClosedIcon className=\"h-4 w-4 group-data-[state=open]/collapsible:hidden\" />\n </div>\n <span className={`flex-auto ${isActive ? 'font-medium' : ''}`}>\n {node.title}\n </span>\n </Link>\n <CollapsibleTrigger\n className=\"p-2 rounded-md hover:bg-neutral-100 dark:hover:bg-neutral-900 self-end\"\n aria-label={`${toggleFolder}: ${node.title}`}\n >\n <ChevronRight\n className=\"h-4 w-4 group-data-[state=open]/collapsible:hidden\"\n aria-hidden=\"true\"\n />\n <ChevronDown\n className=\"h-4 w-4 group-data-[state=closed]/collapsible:hidden\"\n aria-hidden=\"true\"\n />\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent>\n <SidebarMenuSub>\n {Object.entries(node.children || {}).map(([, child]) => {\n if (!child.websitePath) return null;\n \n const isChildActive = isActiveNode(child, currentPath);\n return (\n <SidebarMenuItem key={child.websitePath}>\n <Link\n href={child.websitePath}\n className={`flex items-center gap-2 p-2 rounded-md hover:bg-neutral-100 dark:hover:bg-neutral-900 ${isChildActive\n ? 'bg-blue-50 dark:bg-blue-900/20 border dark:border-blue-400 border-blue-600 font-medium'\n : ''\n }`}\n >\n {child.children && Object.keys(child.children).length > 0 ? (\n <FolderClosedIcon className=\"h-4 w-4 flex-none\" />\n ) : (\n <FileTextIcon className=\"h-4 w-4 flex-none\" />\n )}\n <span className=\"\">{child.title}</span>\n </Link>\n </SidebarMenuItem>\n );\n })}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </SidebarMenu>\n </Collapsible>\n ) : (\n <SidebarMenu key={`menu-${node.websitePath}`}>\n <SidebarMenuItem key={node.websitePath}>\n <Link\n href={node.websitePath}\n className={`flex items-center gap-2 p-2 rounded-md hover:bg-neutral-100 dark:hover:bg-neutral-900 ${isActive\n ? 'bg-blue-50 dark:bg-blue-900/20 dark:border-blue-400 border border-blue-600 font-medium'\n : ''\n }`}\n >\n <FileTextIcon className=\"h-4 w-4 flex-none\" />\n <span className=\"\">{node.title}</span>\n </Link>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n })}\n </SidebarContent>\n </SidebarProvider>\n );\n}\n","'use client';\n\nimport { Menu } from 'lucide-react';\nimport { Button } from '../../ui/button';\nimport {\n Drawer,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerDescription,\n DrawerTrigger,\n} from '../../ui/drawer';\nimport { Parent } from '../sidebar-left/parent';\nimport { Toolbox } from '../sidebar-left/toolbox';\nimport { SidebarNavigation } from '../sidebar-left/sidebar';\nimport type { PageData, Locale } from '@next-library/core';\n\ninterface MobileMenuProps {\n pageData?: PageData;\n translations?: {\n openMobileMenu?: string;\n navigation?: string;\n mobileMenuDescription?: string;\n };\n}\n\nexport function MobileMenu({ pageData, translations = {} }: MobileMenuProps) {\n if (!pageData) {\n return null;\n }\n\n const {\n openMobileMenu = 'Open mobile menu',\n navigation = 'Navigation',\n mobileMenuDescription = 'Mobile navigation menu',\n } = translations;\n\n const { sidebar, navigation: nav, computed } = pageData;\n\n return (\n <div className=\"lg:hidden\">\n <Drawer direction=\"right\">\n <DrawerTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"h-9 w-9\">\n <Menu className=\"h-4 w-4\" />\n <span className=\"sr-only\">{openMobileMenu}</span>\n </Button>\n </DrawerTrigger>\n <DrawerContent className=\"h-full w-[85vw] sm:w-[400px]\">\n <DrawerHeader className=\"sr-only\">\n <DrawerTitle>{navigation}</DrawerTitle>\n <DrawerDescription>{mobileMenuDescription}</DrawerDescription>\n </DrawerHeader>\n <div className=\"flex flex-col gap-4 p-4 overflow-y-auto\">\n <Parent\n parent={sidebar.parent}\n currentPath={`${computed.lang}/docs/${computed.path}`}\n />\n <Toolbox\n currentLevel={sidebar.currentLevel}\n parent={sidebar.parent}\n grandparent={sidebar.grandparent}\n previousPage={nav.previous}\n nextPage={nav.next}\n lang={computed.lang}\n path={computed.path}\n />\n <SidebarNavigation\n nodes={sidebar.items}\n currentPath={`/${computed.lang}/docs/${computed.path}`}\n language={computed.lang}\n />\n </div>\n </DrawerContent>\n </Drawer>\n </div>\n );\n}\n\n","'use client';\n\nimport React, { useEffect, useState } from 'react';\nimport GitHubButton from 'react-github-btn';\nimport { Skeleton } from '../../ui/skeleton';\n\ninterface GithubStarProps {\n repoUrl?: string;\n}\n\nexport function GithubStar({ repoUrl }: GithubStarProps) {\n const [isVisible, setIsVisible] = useState(false);\n\n useEffect(() => {\n // Hide the button initially to prevent showing \"Star\" before the count loads\n // Show it after a delay to allow GitHub's script to load and render the count\n // This gives enough time for the async GitHub API call to complete\n const timer = setTimeout(() => {\n setIsVisible(true);\n }, 500);\n\n return () => clearTimeout(timer);\n }, []);\n\n if (!repoUrl) {\n return null;\n }\n\n return (\n <div className=\"h-5 relative flex items-center\">\n {!isVisible && (\n <Skeleton className=\"w-16 h-5 rounded-xs\" />\n )}\n <div\n className={isVisible ? 'opacity-100' : 'opacity-0'}\n style={{\n transition: 'opacity 0.3s ease-in',\n pointerEvents: isVisible ? 'auto' : 'none',\n minHeight: '20px', // Prevent layout shift\n }}\n >\n <GitHubButton\n href={repoUrl}\n data-color-scheme=\"no-preference: dark-high-contrast; light: light; dark: dark-high-contrast;\"\n data-icon=\"octicon-star\"\n data-show-count=\"true\"\n aria-label=\"Star on GitHub\"\n >\n Star\n </GitHubButton>\n </div>\n </div>\n );\n}\n\n","import Link from 'next/link';\nimport { GithubIcon } from 'lucide-react';\nimport { buttonVariants } from '../../ui/button';\nimport type { Locale } from '@next-library/core';\n\ninterface GithubLinkProps {\n language?: Locale;\n repoUrl?: string;\n}\n\nexport function GithubLink({ language = 'en', repoUrl }: GithubLinkProps) {\n if (!repoUrl) {\n return null;\n }\n\n // Build URL based on language\n let url = repoUrl;\n if (language !== 'en') {\n // Add language-specific path for non-English locales\n url = `${repoUrl}/tree/main/i18n/${language}`;\n }\n\n return (\n <Link\n href={url}\n className={buttonVariants({ variant: 'ghost', size: 'icon' })}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label=\"View source on GitHub\"\n >\n <GithubIcon />\n </Link>\n );\n}\n\n","'use client';\n\nimport React from 'react';\nimport { cn } from '../../layout/utils';\nimport { getTranslations } from '../../../lib/translations';\nimport type { Locale, TableOfContentsItem } from '@next-library/core';\n\ninterface TableOfContentsProps {\n toc: TableOfContentsItem[];\n className?: string;\n lang: Locale;\n translations?: {\n tableOfContents?: string;\n };\n}\n\n// Individual TOC item component\nfunction TOCItem({\n item,\n level = 0,\n path = '',\n}: {\n item: TableOfContentsItem;\n level?: number;\n path?: string;\n}) {\n // Create a unique path for this item\n const uniquePath = path ? `${path}/${item.id}` : item.id;\n\n const handleClick = (e: React.MouseEvent<HTMLAnchorElement>) => {\n e.preventDefault();\n const element = document.getElementById(item.id);\n if (element) {\n // Get the navbar height to add offset\n const navbar = document.querySelector('nav') || document.querySelector('[data-navbar]');\n const navbarHeight = navbar ? navbar.offsetHeight : 80; // fallback to 80px\n\n // Calculate the position with offset\n const elementPosition = element.offsetTop - navbarHeight - 20; // 20px additional padding\n\n window.scrollTo({\n top: elementPosition,\n behavior: 'smooth',\n });\n }\n };\n\n return (\n <li className={cn('text-sm', level === 0 ? 'font-medium' : 'font-normal')}>\n <a\n href={`#${item.id}`}\n className={cn(\n 'text-neutral-700 hover:text-neutral-300 dark:text-neutral-300 block py-1',\n 'hover:bg-neutral-100 dark:hover:bg-neutral-900 rounded px-2',\n ''\n )}\n onClick={handleClick}\n >\n {item.text}\n </a>\n {item.children && item.children.length > 0 && (\n <ul className={cn('pl-4 space-y-1 mt-1', level === 0 ? 'list-none' : 'list-disc ml-4')}>\n {item.children.map((child: TableOfContentsItem) => (\n <TOCItem\n key={`${uniquePath}/${child.id}`}\n item={child}\n level={level + 1}\n path={uniquePath}\n />\n ))}\n </ul>\n )}\n </li>\n );\n}\n\n// Main TableOfContents component\nexport function TableOfContents({ toc, className, lang, translations = {} }: TableOfContentsProps) {\n const defaultTranslations = getTranslations(lang);\n const { tableOfContents: tocLabel = defaultTranslations.tableOfContents } = translations;\n\n // Don't render if no TOC\n if (!toc || toc.length === 0) {\n return null;\n }\n\n return (\n <div className={className}>\n <h3 className=\"font-medium text-sm mb-2\">{tocLabel}</h3>\n <nav>\n <ul className=\"space-y-1 list-none\">\n {toc.map((item) => (\n <TOCItem key={item.id} item={item} />\n ))}\n </ul>\n </nav>\n </div>\n );\n}\n","'use client';\n\nimport * as React from 'react';\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport { cn } from '../layout/utils';\n\nfunction Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', className)}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('aspect-square size-full object-cover', className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('bg-muted flex size-full items-center justify-center rounded-full', className)}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback };\n\n","import React from 'react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../../ui/avatar';\nimport Link from 'next/link';\nimport { getTranslations } from '../../../lib/translations';\nimport type { Contributor } from '@next-library/core';\nimport type { Locale } from '@next-library/core';\n\ninterface GithubContributorsProps {\n contributors: Contributor[];\n githubPath?: string;\n locale: Locale;\n translations?: {\n contributors?: string;\n };\n}\n\n/**\n * Optimize GitHub avatar URL by appending size parameter\n * GitHub supports &s=64 for 64x64 pixel images (perfect for avatars)\n * Documentation: https://docs.github.com/en/rest/users/users#get-a-user\n */\nexport function optimizeAvatarUrl(url: string): string {\n if (url && url.includes('avatars.githubusercontent.com')) {\n // Check if already has size parameter\n if (!url.includes('&s=') && !url.includes('?s=')) {\n return `${url}&s=64`;\n }\n }\n return url;\n}\n\nexport function GithubContributors({\n contributors,\n githubPath,\n locale,\n translations = {},\n}: GithubContributorsProps) {\n const defaultTranslations = getTranslations(locale);\n const { contributors: contributorsLabel = defaultTranslations.contributors } = translations;\n\n // Don't render if no contributors\n if (contributors.length === 0) {\n return null;\n }\n\n return (\n <div className=\"w-full\">\n <h3 className=\"font-medium text-sm mb-2\">{contributorsLabel}</h3>\n <div className=\"isolate flex -space-x-2 overflow-hidden pl-1\">\n {contributors.slice(0, 8).map((contributor, index) => (\n <Link\n key={contributor.username}\n href={contributor.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`relative inline-block z-${90 - index * 10}`}\n >\n <Avatar className=\"w-10 h-10\">\n <AvatarImage\n src={optimizeAvatarUrl(contributor.image)}\n alt={contributor.username}\n className=\"object-cover\"\n />\n <AvatarFallback>{contributor.username[0]}</AvatarFallback>\n </Avatar>\n </Link>\n ))}\n {contributors.length > 8 && (\n <Link\n key=\"8+\"\n href={`https://github.com/${githubPath || ''}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`relative inline-block z-0`}\n >\n <Avatar className=\"w-10 h-10\">\n <AvatarImage color=\"white\" />\n <AvatarFallback>\n <span className=\"font-bold\">+{contributors.length - 8}</span>\n </AvatarFallback>\n </Avatar>\n </Link>\n )}\n </div>\n </div>\n );\n}\n","import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport { cn } from '../layout/utils';\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<'nav'>) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />;\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<'ol'>) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n 'text-muted-foreground flex items-center gap-1.5 text-sm sm:gap-2.5',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn('inline-flex items-center gap-1.5', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n data-slot=\"breadcrumb-link\"\n className={cn('hover:text-foreground transition-colors', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('text-foreground font-normal', className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('[&>svg]:size-3.5', className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex size-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n\n","'use client';\n\nimport * as React from 'react';\n\nexport function useMediaQuery(query: string) {\n const [value, setValue] = React.useState(false);\n\n React.useEffect(() => {\n function onChange(event: MediaQueryListEvent) {\n setValue(event.matches);\n }\n\n const result = matchMedia(query);\n result.addEventListener('change', onChange);\n setValue(result.matches);\n\n return () => result.removeEventListener('change', onChange);\n }, [query]);\n\n return value;\n}\n\n","'use client';\n\nimport * as React from 'react';\nimport { useCallback } from 'react';\nimport { useMediaQuery } from '../../hooks/use-media-query';\nimport { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink } from './breadcrumb';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from './dropdown-menu';\nimport {\n Drawer,\n DrawerContent,\n DrawerFooter,\n DrawerClose,\n DrawerTrigger,\n} from './drawer';\nimport { Button } from './button';\nimport Link from 'next/link';\n\nexport interface BreadcrumbItemType {\n href?: string;\n label: string;\n isCurrentPage?: boolean;\n}\n\nexport interface BreadcrumbToggleProps {\n overflowItems: BreadcrumbItemType[];\n className?: string;\n}\n\nexport function BreadcrumbToggle({ overflowItems, className }: BreadcrumbToggleProps) {\n const [open, setOpen] = React.useState(false);\n const isDesktop = useMediaQuery('(min-width: 768px)');\n\n const handleOverflowItemClick = useCallback(() => {\n setOpen(false);\n }, []);\n\n if (overflowItems.length === 0) {\n return null;\n }\n\n return (\n <BreadcrumbItem className={className}>\n {isDesktop ? (\n <DropdownMenu open={open} onOpenChange={setOpen}>\n <DropdownMenuTrigger\n className=\"flex items-center gap-1\"\n aria-label=\"Show more breadcrumb items\"\n >\n <BreadcrumbEllipsis className=\"size-4\" />\n <span className=\"sr-only\">Toggle menu</span>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" className=\"bg-white dark:bg-black\">\n {overflowItems.map((item, index) => (\n <DropdownMenuItem key={index} onClick={handleOverflowItemClick}>\n <BreadcrumbLink asChild>\n <Link\n href={item.href || '#'}\n className=\"w-full\"\n aria-label={`Navigate to ${item.label}`}\n >\n {item.label}\n </Link>\n </BreadcrumbLink>\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n ) : (\n <Drawer open={open} onOpenChange={setOpen}>\n <DrawerTrigger aria-label=\"Show more breadcrumb items\">\n <BreadcrumbEllipsis className=\"h-4 w-4\" />\n </DrawerTrigger>\n <DrawerContent>\n <div className=\"grid gap-1 p-4 overflow-y-auto\">\n {overflowItems.map((item, index) => (\n <Link\n key={index}\n href={item.href || '#'}\n className=\"py-2 px-3 text-sm rounded-md hover:bg-muted transition-colors\"\n onClick={handleOverflowItemClick}\n aria-label={`Navigate to ${item.label}`}\n >\n {item.label}\n </Link>\n ))}\n </div>\n <DrawerFooter className=\"pt-4\">\n <DrawerClose asChild>\n <Button variant=\"outline\">Close</Button>\n </DrawerClose>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n )}\n </BreadcrumbItem>\n );\n}\n\n","'use client';\n\nimport * as React from 'react';\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbSeparator,\n} from '../../ui/breadcrumb';\nimport { BreadcrumbToggle } from '../../ui/breadcrumb-toggle';\nimport { getTranslations } from '../../../lib/translations';\nimport type { PageData, Locale } from '@next-library/core';\nimport { Home } from 'lucide-react';\nimport Link from 'next/link';\n\nexport interface BreadcrumbsProps {\n data: PageData;\n isLoading?: boolean;\n className?: string;\n locale?: Locale;\n}\n\nexport function Breadcrumbs({ data, isLoading = false, className, locale = 'en' }: BreadcrumbsProps) {\n const { navigation } = data;\n const breadcrumbs = navigation.breadcrumbs;\n const translations = getTranslations(locale);\n\n if (breadcrumbs.length === 1) {\n return null;\n }\n\n if (isLoading) {\n return (\n <Breadcrumb className={className} id=\"breadcrumbs\">\n <BreadcrumbList>\n <BreadcrumbItem>\n <div className=\"h-4 w-4 bg-muted animate-pulse rounded\" />\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <div className=\"h-4 w-20 bg-muted animate-pulse rounded\" />\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n );\n }\n\n // Handle responsive overflow\n const ITEMS_TO_DISPLAY = 3;\n const hasOverflow = breadcrumbs.length > ITEMS_TO_DISPLAY;\n // Overflow items are everything between Home (index 0) and the last 2 items\n const overflowItems = hasOverflow ? breadcrumbs.slice(1, -2) : [];\n // Visible items are the last 2 items (excluding Home which is shown separately)\n const visibleItems = hasOverflow ? breadcrumbs.slice(-2) : breadcrumbs.slice(1);\n\n return (\n <Breadcrumb className={className} id=\"breadcrumbs\">\n <BreadcrumbList>\n {/* Home Icon - Always visible */}\n <BreadcrumbItem>\n <BreadcrumbLink asChild>\n <Link href={breadcrumbs[0]?.href || '#'} aria-label={translations.goToHomePage}>\n <Home className=\"h-4 w-4\" />\n </Link>\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n\n {/* Overflow Menu */}\n {hasOverflow && (\n <>\n <BreadcrumbToggle overflowItems={overflowItems} />\n <BreadcrumbSeparator />\n </>\n )}\n\n {/* Visible Breadcrumb Items */}\n {visibleItems.map((item, index) => {\n const isLast = index === visibleItems.length - 1;\n return (\n <React.Fragment key={index}>\n <BreadcrumbItem>\n <BreadcrumbLink asChild className={!isLast ? 'whitespace-nowrap' : 'line-clamp-1'}>\n <Link href={item.href || '#'} aria-label={`Navigate to ${item.label}`}>\n {item.label}\n </Link>\n </BreadcrumbLink>\n </BreadcrumbItem>\n {index < visibleItems.length - 1 && <BreadcrumbSeparator />}\n </React.Fragment>\n );\n })}\n </BreadcrumbList>\n </Breadcrumb>\n );\n}\n\n","import * as React from 'react';\nimport { cn } from '../layout/utils';\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('rounded-lg border bg-card text-card-foreground shadow-sm', className)}\n {...props}\n />\n )\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n )\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn('text-2xl font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n));\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n )\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n )\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n\n","import React from 'react';\nimport Link from 'next/link';\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from '../../ui/card';\nimport { ExternalLinkIcon } from 'lucide-react';\nimport type { SidebarNode } from '@next-library/core';\n\ninterface FolderCardsProps {\n nodes: SidebarNode[];\n}\n\nexport function FolderCards({ nodes }: FolderCardsProps) {\n return (\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n {nodes.map((node) => (\n <Card\n key={node.websitePath}\n className=\"hover:bg-accent transition-colors border relative group\"\n >\n <Link href={node.websitePath || ''} className=\"block h-full\">\n <CardHeader className=\"pb-3\">\n <div className=\"flex items-start justify-between gap-2\">\n <CardTitle className=\"text-base font-medium leading-tight pr-6\">\n {node.title}\n </CardTitle>\n <ExternalLinkIcon className=\"size-4 text-muted-foreground shrink-0 absolute top-4 right-4\" />\n </div>\n </CardHeader>\n {(() => {\n const description = node.frontmatter?.description;\n return description && typeof description === 'string' ? (\n <CardContent className=\"pt-0\">\n <CardDescription className=\"text-sm text-muted-foreground\">\n {description}\n </CardDescription>\n </CardContent>\n ) : null;\n })()}\n </Link>\n </Card>\n ))}\n </div>\n );\n}\n\n","'use client';\n\nimport ReactMarkdown from 'react-markdown';\nimport remarkGfm from 'remark-gfm';\nimport remarkLint from 'remark-lint';\nimport remarkFrontmatter from 'remark-frontmatter';\nimport rehypeSanitize from 'rehype-sanitize';\nimport rehypeSlug from 'rehype-slug';\nimport rehypeCallouts from 'rehype-callouts';\nimport rehypeExternalLinks from 'rehype-external-links';\nimport rehypeHighlight from 'rehype-highlight';\nimport rehypeAutolinkHeadings from 'rehype-autolink-headings';\n\ninterface MarkdownRendererProps {\n markdown: string;\n className?: string;\n}\n\nexport function MarkdownRenderer({ markdown, className = '' }: MarkdownRendererProps) {\n return (\n <article className={`prose prose-md max-w-none dark:prose-invert ${className}`}>\n <ReactMarkdown\n remarkPlugins={[\n remarkLint as any,\n remarkGfm,\n remarkFrontmatter\n ]}\n rehypePlugins={[\n rehypeSanitize,\n rehypeSlug,\n rehypeAutolinkHeadings,\n rehypeCallouts,\n rehypeExternalLinks,\n rehypeHighlight,\n ]}\n components={{\n h1: () => null,\n }}\n >\n {markdown}\n </ReactMarkdown>\n </article>\n );\n}\n\n","'use client';\n\nimport { useEffect, useState } from 'react';\nimport { CopyIcon, ChevronDownIcon, ExternalLinkIcon } from 'lucide-react';\nimport { Button } from '../ui/button';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '../ui/dropdown-menu';\nimport { cn } from '../layout/utils';\nimport { getTranslations } from '../../lib/translations';\nimport type { Locale } from '@next-library/core';\n\n// ChatGPT Icon Component\nfunction ChatGPTIcon({ className }: { className?: string }) {\n return (\n <svg\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path d=\"M11.2475 18.25C10.6975 18.25 10.175 18.1455 9.67999 17.9365C9.18499 17.7275 8.74499 17.436 8.35999 17.062C7.94199 17.205 7.50749 17.2765 7.05649 17.2765C6.31949 17.2765 5.63749 17.095 5.01049 16.732C4.38349 16.369 3.87749 15.874 3.49249 15.247C3.11849 14.62 2.93149 13.9215 2.93149 13.1515C2.93149 12.8325 2.97549 12.486 3.06349 12.112C2.62349 11.705 2.28249 11.2375 2.04049 10.7095C1.79849 10.1705 1.67749 9.6095 1.67749 9.0265C1.67749 8.4325 1.80399 7.8605 2.05699 7.3105C2.30999 6.7605 2.66199 6.2875 3.11299 5.8915C3.57499 5.4845 4.10849 5.204 4.71349 5.05C4.83449 4.423 5.08749 3.862 5.47249 3.367C5.86849 2.861 6.35249 2.465 6.92449 2.179C7.49649 1.893 8.10699 1.75 8.75599 1.75C9.30599 1.75 9.82849 1.8545 10.3235 2.0635C10.8185 2.2725 11.2585 2.564 11.6435 2.938C12.0615 2.795 12.496 2.7235 12.947 2.7235C13.684 2.7235 14.366 2.905 14.993 3.268C15.62 3.631 16.1205 4.126 16.4945 4.753C16.8795 5.38 17.072 6.0785 17.072 6.8485C17.072 7.1675 17.028 7.514 16.94 7.888C17.38 8.295 17.721 8.768 17.963 9.307C18.205 9.835 18.326 10.3905 18.326 10.9735C18.326 11.5675 18.1995 12.1395 17.9465 12.6895C17.6935 13.2395 17.336 13.718 16.874 14.125C16.423 14.521 15.895 14.796 15.29 14.95C15.169 15.577 14.9105 16.138 14.5145 16.633C14.1295 17.139 13.651 17.535 13.079 17.821C12.507 18.107 11.8965 18.25 11.2475 18.25ZM7.17199 16.1875C7.72199 16.1875 8.20049 16.072 8.60749 15.841L11.7095 14.059C11.8195 13.982 11.8745 13.8775 11.8745 13.7455V12.3265L7.88149 14.62C7.63949 14.763 7.39749 14.763 7.15549 14.62L4.03699 12.8215C4.03699 12.8545 4.03149 12.893 4.02049 12.937C4.02049 12.981 4.02049 13.047 4.02049 13.135C4.02049 13.696 4.15249 14.213 4.41649 14.686C4.69149 15.148 5.07099 15.511 5.55499 15.775C6.03899 16.05 6.57799 16.1875 7.17199 16.1875ZM7.33699 13.498C7.40299 13.531 7.46349 13.5475 7.51849 13.5475C7.57349 13.5475 7.62849 13.531 7.68349 13.498L8.92099 12.7885L4.94449 10.4785C4.70249 10.3355 4.58149 10.121 4.58149 9.835V6.2545C4.03149 6.4965 3.59149 6.8705 3.26149 7.3765C2.93149 7.8715 2.76649 8.4215 2.76649 9.0265C2.76649 9.5655 2.90399 10.0825 3.17899 10.5775C3.45399 11.0725 3.81149 11.4465 4.25149 11.6995L7.33699 13.498ZM11.2475 17.161C11.8305 17.161 12.3585 17.029 12.8315 16.765C13.3045 16.501 13.6785 16.138 13.9535 15.676C14.2285 15.214 14.366 14.697 14.366 14.125V10.561C14.366 10.429 14.311 10.33 14.201 10.264L12.947 9.538V14.1415C12.947 14.4275 12.826 14.642 12.584 14.785L9.46549 16.5835C10.0045 16.9685 10.5985 17.161 11.2475 17.161ZM11.8745 11.122V8.878L10.01 7.822L8.12899 8.878V11.122L10.01 12.178L11.8745 11.122ZM7.05649 5.8585C7.05649 5.5725 7.17749 5.358 7.41949 5.215L10.538 3.4165C9.99899 3.0315 9.40499 2.839 8.75599 2.839C8.17299 2.839 7.64499 2.971 7.17199 3.235C6.69899 3.499 6.32499 3.862 6.04999 4.324C5.78599 4.786 5.65399 5.303 5.65399 5.875V9.4225C5.65399 9.5545 5.70899 9.659 5.81899 9.736L7.05649 10.462V5.8585ZM15.4385 13.7455C15.9885 13.5035 16.423 13.1295 16.742 12.6235C17.072 12.1175 17.237 11.5675 17.237 10.9735C17.237 10.4345 17.0995 9.9175 16.8245 9.4225C16.5495 8.9275 16.192 8.5535 15.752 8.3005L12.6665 6.5185C12.6005 6.4745 12.54 6.458 12.485 6.469C12.43 6.469 12.375 6.4855 12.32 6.5185L11.0825 7.2115L15.0755 9.538C15.1965 9.604 15.2845 9.692 15.3395 9.802C15.4055 9.901 15.4385 10.022 15.4385 10.165V13.7455ZM12.122 5.3635C12.364 5.2095 12.606 5.2095 12.848 5.3635L15.983 7.195C15.983 7.118 15.983 7.019 15.983 6.898C15.983 6.37 15.851 5.8695 15.587 5.3965C15.334 4.9125 14.9655 4.5275 14.4815 4.2415C14.0085 3.9555 13.4585 3.8125 12.8315 3.8125C12.2815 3.8125 11.803 3.928 11.396 4.159L8.29399 5.941C8.18399 6.018 8.12899 6.1225 8.12899 6.2545V7.6735L12.122 5.3635Z\" />\n </svg>\n );\n}\n\n// Claude Icon Component\nfunction ClaudeIcon({ className }: { className?: string }) {\n return (\n <svg\n viewBox=\"0 0 100 101\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <path d=\"M96.0000 40.0000 L99.5002 42.0000 L99.5002 43.5000 L98.5000 47.0000 L56.0000 57.0000 L52.0040 47.0708 L96.0000 40.0000 M96.0000 40.0000 \" />\n <path d=\"M80.1032 10.5903 L84.9968 11.6171 L86.2958 13.2179 L87.5346 17.0540 L87.0213 19.5007 L58.5000 58.5000 L49.0000 49.0000 L75.3008 14.4873 L80.1032 10.5903 M80.1032 10.5903 \" />\n <path d=\"M55.5002 4.5000 L58.5005 2.5000 L61.0002 3.5000 L63.5002 7.0000 L56.6511 48.1620 L52.0005 45.0000 L50.0005 39.5000 L53.5003 8.5000 L55.5002 4.5000 M55.5002 4.5000 \" />\n <path d=\"M23.4253 5.1588 L26.5075 1.2217 L28.5175 0.7632 L32.5063 1.3458 L34.4748 2.8868 L48.8202 34.6902 L54.0089 49.8008 L47.9378 53.1760 L24.8009 11.1886 L23.4253 5.1588 M23.4253 5.1588 \" />\n <path d=\"M8.4990 27.0019 L7.4999 23.0001 L10.5003 19.5001 L14.0003 20.0001 L15.0003 20.0001 L36.0000 35.5000 L42.5000 40.5000 L51.5000 47.5000 L46.5000 56.0000 L42.0002 52.5000 L39.0001 49.5000 L10.0000 29.0001 L8.4990 27.0019 M8.4990 27.0019 \" />\n <path d=\"M2.5003 53.0000 L0.2370 50.5000 L0.2373 48.2759 L2.5003 47.5000 L28.0000 49.0000 L53.0000 51.0000 L52.1885 55.9782 L4.5000 53.5000 L2.5003 53.0000 M2.5003 53.0000 \" />\n <path d=\"M17.5002 79.0264 L12.5005 79.0264 L10.5124 76.7369 L10.5124 74.0000 L19.0005 68.0000 L53.5082 46.0337 L57.0005 52.0000 L17.5002 79.0264 M17.5002 79.0264 \" />\n <path d=\"M27.0004 92.9999 L25.0003 93.4999 L22.0003 91.9999 L22.5004 89.4999 L52.0003 50.5000 L56.0004 55.9999 L34.0003 85.0000 L27.0004 92.9999 M27.0004 92.9999 \" />\n <path d=\"M51.9998 98.0000 L50.5002 100.0000 L47.5002 101.0000 L45.0001 99.0000 L43.5000 96.0000 L51.0003 55.4999 L55.5001 55.9999 L51.9998 98.0000 M51.9998 98.0000 \" />\n <path d=\"M77.5007 86.9997 L77.5007 90.9997 L77.0006 92.4997 L75.0004 93.4997 L71.5006 93.0339 L47.4669 57.2642 L56.9998 50.0002 L64.9994 64.5004 L65.7507 69.7497 L77.5007 86.9997 M77.5007 86.9997 \" />\n <path d=\"M89.0008 80.9991 L89.5008 83.4991 L88.0008 85.4991 L86.5007 84.9991 L78.0007 78.9991 L65.0007 67.4991 L55.0007 60.4991 L58.0000 51.0000 L62.9999 54.0001 L66.0007 59.4991 L89.0008 80.9991 M89.0008 80.9991 \" />\n <path d=\"M82.5003 55.5000 L95.0003 56.5000 L98.0003 58.5000 L100.0000 61.5000 L100.0000 63.6587 L94.5003 66.0000 L66.5005 59.0000 L55.0003 58.5000 L58.0000 48.0000 L66.0005 54.0000 L82.5003 55.5000 M82.5003 55.5000 \" />\n </svg>\n );\n}\n\ninterface CopyPageButtonTranslations {\n copyPage?: string;\n copied?: string;\n openInChatGPT?: string;\n openInClaude?: string;\n askAboutThisPage?: string;\n copyPageDescription?: string;\n askQuestionsDescription?: string;\n chatGPTPrefix?: string;\n}\n\ninterface CopyPageButtonProps {\n sourceCode: string;\n pageUrl?: string;\n websiteTitle?: string;\n className?: string;\n locale?: Locale;\n translations?: CopyPageButtonTranslations;\n}\n\nexport function CopyPageButton({\n sourceCode,\n pageUrl,\n websiteTitle,\n className,\n locale = 'en',\n translations = {},\n}: CopyPageButtonProps) {\n const [isCopied, setCopied] = useState(false);\n\n // Get default translations for locale, allow overrides via props\n const defaultTranslations = getTranslations(locale);\n const {\n copyPage = defaultTranslations.copyPage,\n copied = defaultTranslations.copied,\n openInChatGPT = defaultTranslations.openInChatGPT,\n openInClaude = defaultTranslations.openInClaude,\n askAboutThisPage = defaultTranslations.askAboutThisPage,\n copyPageDescription = defaultTranslations.copyPageDescription,\n askQuestionsDescription = defaultTranslations.askQuestionsDescription,\n chatGPTPrefix = defaultTranslations.chatGPTPrefix,\n } = translations;\n\n useEffect(() => {\n if (!isCopied) return;\n const timerId = setTimeout(() => {\n setCopied(false);\n }, 1000);\n\n return () => {\n clearTimeout(timerId);\n };\n }, [isCopied]);\n\n function handleCopy() {\n navigator.clipboard.writeText(sourceCode);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n }\n\n function handleOpenInChatGPT() {\n if (!pageUrl) return;\n \n // Ensure pageUrl is a full URL\n const fullPageUrl = pageUrl.startsWith('http') ? pageUrl : `https://${pageUrl.replace(/^\\/+/, '')}`;\n \n // Build the message with prefix and page content\n const titlePart = websiteTitle ? `${websiteTitle} - ` : '';\n const prefix = `${chatGPTPrefix} ${titlePart}${fullPageUrl} please read it to answer my questions.\\n\\n`;\n const fullMessage = prefix + sourceCode;\n \n // Encode the message for URL\n const encodedMessage = encodeURIComponent(fullMessage);\n \n // Create ChatGPT URL\n const chatGPTUrl = `https://chatgpt.com/?q=${encodedMessage}`;\n \n // Open in new tab\n window.open(chatGPTUrl, '_blank', 'noopener,noreferrer');\n }\n\n function handleOpenInClaude() {\n if (!pageUrl) return;\n \n // Ensure pageUrl is a full URL\n const fullPageUrl = pageUrl.startsWith('http') ? pageUrl : `https://${pageUrl.replace(/^\\/+/, '')}`;\n \n // Build the message with prefix and page content\n const titlePart = websiteTitle ? `${websiteTitle} - ` : '';\n const prefix = `${chatGPTPrefix} ${titlePart}${fullPageUrl} please read it to answer my questions.\\n\\n`;\n const fullMessage = prefix + sourceCode;\n \n // Encode the message for URL\n const encodedMessage = encodeURIComponent(fullMessage);\n \n // Create Claude URL (Anthropic's Claude Web)\n const claudeUrl = `https://claude.ai/new?q=${encodedMessage}`;\n \n // Open in new tab\n window.open(claudeUrl, '_blank', 'noopener,noreferrer');\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className={cn(\n 'flex gap-2 text-sm font-medium items-center',\n isCopied && 'opacity-70',\n className\n )}\n >\n <CopyIcon width=\"16\" />\n {isCopied ? copied : copyPage}\n <ChevronDownIcon width=\"14\" className=\"opacity-50\" />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"min-w-[200px]\">\n <DropdownMenuItem onClick={handleCopy}>\n <CopyIcon width=\"16\" className=\"mr-2\" />\n <div className=\"flex flex-col\">\n <span className=\"text-sm font-medium\">{copyPage}</span>\n <span className=\"text-xs text-muted-foreground\">{copyPageDescription}</span>\n </div>\n </DropdownMenuItem>\n {pageUrl && (\n <>\n <DropdownMenuItem onClick={handleOpenInChatGPT}>\n <div className=\"flex items-center gap-2\">\n <ChatGPTIcon className=\"w-4 h-4 shrink-0\" />\n <div className=\"flex flex-col flex-1\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-sm font-medium\">{openInChatGPT}</span>\n <ExternalLinkIcon width=\"12\" className=\"text-muted-foreground shrink-0\" />\n </div>\n <span className=\"text-xs text-muted-foreground\">{askQuestionsDescription}</span>\n </div>\n </div>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={handleOpenInClaude}>\n <div className=\"flex items-center gap-2\">\n <ClaudeIcon className=\"w-4 h-4 shrink-0\" />\n <div className=\"flex flex-col flex-1\">\n <div className=\"flex items-center gap-1.5\">\n <span className=\"text-sm font-medium\">{openInClaude}</span>\n <ExternalLinkIcon width=\"12\" className=\"text-muted-foreground shrink-0\" />\n </div>\n <span className=\"text-xs text-muted-foreground\">{askQuestionsDescription}</span>\n </div>\n </div>\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","'use client';\n\nimport { CookieIcon } from 'lucide-react';\nimport { useEffect, useState } from 'react';\nimport { Button } from '../ui/button';\nimport { getTranslations } from '../../lib/translations';\n// @vercel/analytics is optional - only track if available\nfunction track(event: string, data?: Record<string, any>) {\n if (typeof window !== 'undefined') {\n try {\n // Dynamic import to avoid build errors if @vercel/analytics is not installed\n // @ts-ignore - optional dependency\n import('@vercel/analytics').then(({ track: trackFn }) => {\n trackFn(event, data);\n }).catch(() => {\n // @vercel/analytics not installed, tracking will be no-op\n });\n } catch {\n // Ignore errors\n }\n }\n}\nimport { cn } from '../layout/utils';\nimport Link from 'next/link';\nimport type { Locale } from '@next-library/core';\n\ninterface CookieBannerProps {\n locale: Locale;\n variant?: 'default' | 'small';\n onAcceptCallback?: () => void;\n onDeclineCallback?: () => void;\n translations?: {\n title?: string;\n description?: string;\n learnMore?: string;\n accept?: string;\n decline?: string;\n };\n}\n\nexport function CookieBanner({\n locale,\n variant = 'default',\n onAcceptCallback = () => {},\n onDeclineCallback = () => {},\n translations = {},\n}: CookieBannerProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [hide, setHide] = useState(false);\n\n const defaultTranslations = getTranslations(locale);\n const {\n title = defaultTranslations.cookieConsent,\n description = defaultTranslations.cookieDescription,\n learnMore = defaultTranslations.cookieLearnMore,\n accept: acceptText = defaultTranslations.accept,\n decline: declineText = defaultTranslations.decline,\n } = translations;\n\n const handleAccept = () => {\n setIsOpen(false);\n localStorage.setItem('cookieConsent', 'true');\n setTimeout(() => {\n setHide(true);\n }, 700);\n onAcceptCallback();\n };\n\n const handleDecline = () => {\n setIsOpen(false);\n localStorage.setItem('cookieConsent', 'false');\n setTimeout(() => {\n setHide(true);\n }, 700);\n onDeclineCallback();\n };\n\n useEffect(() => {\n try {\n const consent = localStorage.getItem('cookieConsent');\n if (consent === 'true' || consent === 'false') {\n setIsOpen(false);\n setHide(true);\n } else {\n setIsOpen(true);\n }\n } catch (e) {\n console.error('Error reading cookie consent:', e);\n setIsOpen(true);\n }\n }, []);\n\n return variant !== 'small' ? (\n <div\n className={cn(\n 'fixed z-[200] bottom-0 left-0 right-0 sm:right-0 sm:left-auto sm:bottom-4 w-full sm:max-w-md duration-700',\n !isOpen\n ? 'transition-[opacity,transform] translate-y-8 opacity-0'\n : 'transition-[opacity,transform] translate-y-0 opacity-100',\n hide && 'hidden'\n )}\n >\n <div className=\"rounded-md m-3 border border-border shadow-lg bg-background\">\n <div className=\"flex flex-col\">\n <div className=\"border-b border-border h-14 flex items-center justify-between p-4\">\n <h1 className=\"text-lg font-medium\">{title}</h1>\n <CookieIcon className=\"h-[1.2rem] w-[1.2rem]\" />\n </div>\n <div className=\"p-4\">\n <p className=\"text-sm font-normal text-start mb-2\">\n {description}{' '}\n <Link href={`/${locale}/privacy`} className=\"text-xs underline ml-1\">\n {learnMore}\n </Link>\n </p>\n </div>\n <div className=\"flex justify-around gap-2 p-4 py-5 border-t border-border dark:bg-background/20\">\n <Button onClick={handleAccept} className=\"flex-1\">\n {acceptText}\n </Button>\n <Button onClick={handleDecline} className=\"flex-1\" variant=\"secondary\">\n {declineText}\n </Button>\n </div>\n </div>\n </div>\n </div>\n ) : (\n <div\n className={cn(\n 'fixed z-[200] bottom-0 left-0 right-0 sm:right-4 sm:left-auto sm:bottom-4 w-full sm:max-w-md duration-700',\n !isOpen\n ? 'transition-[opacity,transform] translate-y-8 opacity-0'\n : 'transition-[opacity,transform] translate-y-0 opacity-100',\n hide && 'hidden'\n )}\n >\n <div className=\"m-3 bg-background border border-border rounded-lg\">\n <div className=\"flex items-center justify-between p-3\">\n <h1 className=\"text-lg font-medium\">{title}</h1>\n <CookieIcon className=\"h-[1.2rem] w-[1.2rem]\" />\n </div>\n <div className=\"p-3 -mt-2\">\n <p className=\"text-sm text-left text-muted-foreground\">\n {description}{' '}\n <Link href={`/${locale}/privacy`} className=\"underline\">\n {learnMore}\n </Link>\n </p>\n </div>\n <div className=\"p-3 flex items-center gap-2 mt-2 border-t\">\n <Button\n className=\"w-full h-9 rounded-full\"\n onClick={() => {\n track('Accept Cookie Banner');\n handleAccept();\n }}\n >\n {acceptText}\n </Button>\n <Button\n className=\"w-full h-9 rounded-full\"\n variant=\"outline\"\n onClick={() => {\n track('Decline Cookie Banner');\n handleDecline();\n }}\n >\n {declineText}\n </Button>\n </div>\n </div>\n </div>\n );\n}\n\n","'use client';\n\nimport * as React from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\nimport { cn } from '../layout/utils';\n\nfunction Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({ ...props }: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n align = 'center',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className\n )}\n position={position}\n align={align}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('text-muted-foreground px-2 py-1.5 text-xs', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('bg-border pointer-events-none -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn('flex cursor-default items-center justify-center py-1', className)}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n\n","'use client';\n\nimport { useEffect } from 'react';\nimport { getTranslations } from '../../lib/translations';\nimport type { Locale } from '@next-library/core';\n\ninterface AnchorLinkHandlerProps {\n locale?: Locale;\n}\n\nexport function AnchorLinkHandler({ locale = 'en' }: AnchorLinkHandlerProps) {\n const translations = getTranslations(locale);\n\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n const target = e.target as HTMLElement;\n const anchor = target.closest('a[href^=\"#\"]');\n\n if (anchor && anchor.classList.contains('inline-flex')) {\n e.preventDefault();\n e.stopPropagation();\n\n const href = anchor.getAttribute('href');\n if (href) {\n const fullUrl = window.location.origin + window.location.pathname + href;\n\n navigator.clipboard\n .writeText(fullUrl)\n .then(() => {\n // Show feedback\n const originalTitle = anchor.getAttribute('title');\n anchor.setAttribute('title', translations.linkCopied);\n\n // Visual feedback - briefly change the icon color\n const icon = anchor.querySelector('svg');\n if (icon) {\n icon.classList.add('text-green-500');\n setTimeout(() => {\n icon.classList.remove('text-green-500');\n }, 1000);\n }\n\n setTimeout(() => {\n anchor.setAttribute('title', originalTitle || translations.copyLinkToSection);\n }, 2000);\n })\n .catch((err) => {\n console.error('Failed to copy link:', err);\n // Fallback for older browsers\n try {\n const textArea = document.createElement('textarea');\n textArea.value = fullUrl;\n document.body.appendChild(textArea);\n textArea.select();\n document.execCommand('copy');\n document.body.removeChild(textArea);\n } catch (fallbackErr) {\n console.error('Fallback copy failed:', fallbackErr);\n }\n });\n }\n }\n };\n\n // Add event listener\n document.addEventListener('click', handleClick);\n\n // Cleanup\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, []);\n\n return null; // This component doesn't render anything\n}\n\n"]}
|