diff --git a/content/2.0.0/wiki/index.md b/content/2.0.0/wiki/index.md index e04b424..1fbde78 100644 --- a/content/2.0.0/wiki/index.md +++ b/content/2.0.0/wiki/index.md @@ -1,5 +1,5 @@
- Charts Library Logo + Charts Library Logo
# Charts 2.0.0 diff --git a/content/2.0.1/wiki/index.md b/content/2.0.1/wiki/index.md index 5ad94b9..354c3d8 100644 --- a/content/2.0.1/wiki/index.md +++ b/content/2.0.1/wiki/index.md @@ -1,5 +1,5 @@
- Charts Library Logo + Charts Library Logo
# Charts 2.0.1 diff --git a/content/2.1.0/wiki/index.md b/content/2.1.0/wiki/index.md index acb0553..69534ea 100644 --- a/content/2.1.0/wiki/index.md +++ b/content/2.1.0/wiki/index.md @@ -1,5 +1,5 @@
- Charts Library Logo + Charts Library Logo
# Charts 2.1.0 diff --git a/content/2.2.0/wiki/index.md b/content/2.2.0/wiki/index.md index 01ea3f7..4755870 100644 --- a/content/2.2.0/wiki/index.md +++ b/content/2.2.0/wiki/index.md @@ -1,5 +1,5 @@
- Charts Library Logo + Charts Library Logo
# Charts 2.2.0 diff --git a/content/snapshot/wiki/index.md b/content/snapshot/wiki/index.md index 555ad8f..5ea5161 100644 --- a/content/snapshot/wiki/index.md +++ b/content/snapshot/wiki/index.md @@ -1,5 +1,5 @@
- Charts Library Logo + Charts Library Logo
# Charts {{versionLabel}} diff --git a/docs-app/app/[version]/agent/page.tsx b/docs-app/app/[version]/agent/page.tsx index 804db1b..9c17762 100644 --- a/docs-app/app/[version]/agent/page.tsx +++ b/docs-app/app/[version]/agent/page.tsx @@ -17,7 +17,7 @@ export async function generateMetadata({ params }: AgentPromptPageProps): Promis export default async function AgentPromptPage({ params }: AgentPromptPageProps) { const { version } = await params; return ( -
+
); diff --git a/docs-app/app/[version]/api/page.tsx b/docs-app/app/[version]/api/page.tsx index 091a8c6..d026738 100644 --- a/docs-app/app/[version]/api/page.tsx +++ b/docs-app/app/[version]/api/page.tsx @@ -25,7 +25,7 @@ export default async function ApiPage({ params }: ApiPageProps) { const apiUrl = getVersionApiIndexUrl(version); return ( -
+

API Reference

+

Privacy Policy

Last updated: February 10, 2026 diff --git a/docs-app/app/thanks/ThanksContent.tsx b/docs-app/app/thanks/ThanksContent.tsx new file mode 100644 index 0000000..67c215a --- /dev/null +++ b/docs-app/app/thanks/ThanksContent.tsx @@ -0,0 +1,196 @@ +import { thanksData } from './data'; + +interface Brand { + name: string; + url: string; + avatar: string; + role: string; +} + +interface ThanksItem { + name: string; + description: string; + url: string; + license?: string; + avatar?: string; +} + +interface ThanksSection { + title: string; + items: ThanksItem[]; +} + +interface ProjectThanks { + name: string; + url: string; + description: string; + sections: ThanksSection[]; +} + +interface ThanksData { + brands: Brand[]; + projects: ProjectThanks[]; +} + +interface AvatarSource { + url: string; + avatar?: string; +} + +const { brands, projects } = thanksData as ThanksData; + +const DOMAIN_AVATAR_MAP: Record = { + 'kotlinlang.org': 'JetBrains', + 'www.jetbrains.com': 'JetBrains', + 'ktor.io': 'ktorio', + 'insert-koin.io': 'InsertKoinIO', + 'gradle.org': 'gradle', + 'central.sonatype.com': 'sonatype', + 'eslint.org': 'eslint', + 'react.dev': 'facebook', + 'nextjs.org': 'vercel', + 'vercel.com': 'vercel', + 'www.typescriptlang.org': 'microsoft', + 'clarity.microsoft.com': 'microsoft', + 'developer.android.com': 'android', + 'foojay.io': 'foojayio', + 'junit.org': 'junit-team', + 'aws.amazon.com': 'aws', + 'rsms.me': 'rsms', + 'mdxjs.com': 'mdx-js', +}; + +function getItemAvatar(item: AvatarSource): string | undefined { + if (item.avatar) return item.avatar; + + const ghMatch = item.url.match(/^https?:\/\/github\.com\/([^/]+)/i); + if (ghMatch) { + return `https://avatars.githubusercontent.com/${ghMatch[1]}?s=48`; + } + + try { + const host = new URL(item.url).hostname; + const org = DOMAIN_AVATAR_MAP[host]; + if (org) { + return `https://avatars.githubusercontent.com/${org}?s=48`; + } + } catch { + return undefined; + } + + return undefined; +} + +export function ThanksContent() { + return ( + <> +

Built With

+

+ Charts is built using a set of tools, frameworks, and services. +

+ +
+ + {projects.map((project) => ( +
+

+ + + {project.name} + +

+

{project.description}

+ + {project.sections.map((section) => ( +
+

{section.title}

+
    + {section.items.map((item, index) => { + const avatar = getItemAvatar(item); + + return ( +
  • + {avatar ? ( + + ) : null} + + + + {item.name} + + {' — '} + {item.description} + {item.license ? ( + + {' '} + ({item.license}) + + ) : null} + +
  • + ); + })} +
+
+ ))} +
+ ))} + +
+ +

+ If you notice a missing attribution or have questions about how a + third-party project is used, please{' '} + + open an issue + + . +

+ + ); +} diff --git a/docs-app/app/thanks/data/brands.json b/docs-app/app/thanks/data/brands.json new file mode 100644 index 0000000..0de4a89 --- /dev/null +++ b/docs-app/app/thanks/data/brands.json @@ -0,0 +1,56 @@ +[ + { + "name": "JetBrains", + "url": "https://www.jetbrains.com/", + "avatar": "https://avatars.githubusercontent.com/JetBrains?s=96", + "role": "Kotlin, Compose, Dokka, Ktor" + }, + { + "name": "GitHub", + "url": "https://github.com/HDCharts/charts", + "avatar": "https://avatars.githubusercontent.com/github?s=96", + "role": "Source & CI/CD" + }, + { + "name": "Gradle", + "url": "https://gradle.org/", + "avatar": "https://avatars.githubusercontent.com/gradle?s=96", + "role": "Build system" + }, + { + "name": "Maven Central", + "url": "https://central.sonatype.com/", + "avatar": "https://avatars.githubusercontent.com/sonatype?s=96", + "role": "Library publishing" + }, + { + "name": "AWS", + "url": "https://aws.amazon.com/", + "avatar": "https://avatars.githubusercontent.com/aws?s=96", + "role": "S3, CloudFront" + }, + { + "name": "Vercel", + "url": "https://vercel.com/", + "avatar": "https://avatars.githubusercontent.com/vercel?s=96", + "role": "Hosting, Next.js, Analytics" + }, + { + "name": "Microsoft", + "url": "https://www.microsoft.com/", + "avatar": "https://avatars.githubusercontent.com/microsoft?s=96", + "role": "TypeScript, Clarity" + }, + { + "name": "React", + "url": "https://react.dev/", + "avatar": "https://avatars.githubusercontent.com/facebook?s=96", + "role": "Component runtime" + }, + { + "name": "Google", + "url": "https://developer.android.com/", + "avatar": "https://avatars.githubusercontent.com/google?s=96", + "role": "Android, KSP" + } +] diff --git a/docs-app/app/thanks/data/charts-demo.json b/docs-app/app/thanks/data/charts-demo.json new file mode 100644 index 0000000..3428955 --- /dev/null +++ b/docs-app/app/thanks/data/charts-demo.json @@ -0,0 +1,85 @@ +{ + "name": "charts-demo", + "url": "https://github.com/HDCharts/charts/tree/main/app", + "description": "Multiplatform demo app showcasing Charts across Android, iOS, Desktop, and Web.", + "sections": [ + { + "title": "Frameworks & Platforms", + "items": [ + { + "name": "Kotlin Multiplatform", + "description": "Cross-platform Kotlin compilation targeting Android, iOS, Desktop, and Web.", + "url": "https://kotlinlang.org/docs/multiplatform.html" + }, + { + "name": "Jetpack Compose", + "description": "Declarative UI toolkit for Android.", + "url": "https://developer.android.com/jetpack/compose" + }, + { + "name": "JetBrains Compose Multiplatform", + "description": "Compose UI framework targeting Android, iOS, Desktop, and Web.", + "url": "https://www.jetbrains.com/compose-multiplatform/" + } + ] + }, + { + "title": "Libraries", + "items": [ + { + "name": "AndroidX Lifecycle Runtime Compose", + "description": "Lifecycle-aware APIs for Compose runtime integration.", + "url": "https://developer.android.com/jetpack/androidx/releases/lifecycle", + "license": "Apache-2.0" + }, + { + "name": "AndroidX Lifecycle ViewModel Compose", + "description": "Compose integration for ViewModel state handling.", + "url": "https://developer.android.com/jetpack/androidx/releases/lifecycle", + "license": "Apache-2.0" + }, + { + "name": "AndroidX Navigation Compose", + "description": "Navigation framework for Compose applications.", + "url": "https://developer.android.com/jetpack/androidx/releases/navigation", + "license": "Apache-2.0" + }, + { + "name": "Koin", + "description": "Lightweight dependency injection framework for Kotlin.", + "url": "https://insert-koin.io/", + "license": "Apache-2.0" + }, + { + "name": "KotlinX Immutable Collections", + "description": "Persistent immutable collection implementations for Kotlin.", + "url": "https://github.com/Kotlin/kotlinx.collections.immutable", + "license": "Apache-2.0" + }, + { + "name": "KotlinX Coroutines Swing", + "description": "Coroutines integration for Swing/desktop dispatchers.", + "url": "https://github.com/Kotlin/kotlinx.coroutines", + "license": "Apache-2.0" + } + ] + }, + { + "title": "Build & Tooling", + "items": [ + { + "name": "Gradle", + "description": "Build automation tool used for compiling and packaging.", + "url": "https://gradle.org/", + "license": "Apache-2.0" + }, + { + "name": "BuildConfig for Gradle", + "description": "Gradle plugin for generating BuildConfig constants.", + "url": "https://github.com/gmazzo/gradle-buildconfig-plugin", + "license": "Apache-2.0" + } + ] + } + ] +} diff --git a/docs-app/app/thanks/data/charts-docs.json b/docs-app/app/thanks/data/charts-docs.json new file mode 100644 index 0000000..d720c24 --- /dev/null +++ b/docs-app/app/thanks/data/charts-docs.json @@ -0,0 +1,114 @@ +{ + "name": "charts-docs", + "url": "https://github.com/HDCharts/charts-docs", + "description": "Documentation website built with Next.js and deployed on Vercel.", + "sections": [ + { + "title": "Core Stack", + "items": [ + { + "name": "Next.js", + "description": "React framework for production-grade web applications.", + "url": "https://nextjs.org/", + "license": "MIT" + }, + { + "name": "React", + "description": "JavaScript library for building user interfaces.", + "url": "https://react.dev/", + "license": "MIT" + }, + { + "name": "TypeScript", + "description": "Typed superset of JavaScript that compiles to plain JavaScript.", + "url": "https://www.typescriptlang.org/", + "license": "Apache-2.0" + } + ] + }, + { + "title": "Content & Libraries", + "items": [ + { + "name": "@next/mdx", + "description": "Next.js integration for MDX-based content pages and docs rendering.", + "url": "https://nextjs.org/docs/app/guides/mdx", + "license": "MIT" + }, + { + "name": "@mdx-js/react", + "description": "React bindings used to render MDX content with custom components.", + "url": "https://mdxjs.com/packages/react/", + "license": "MIT" + }, + { + "name": "@mdx-js/loader", + "description": "Webpack loader used by the MDX pipeline for content compilation.", + "url": "https://mdxjs.com/packages/loader/", + "license": "MIT" + }, + { + "name": "gray-matter", + "description": "Parses YAML front-matter from markdown and content files.", + "url": "https://github.com/jonschlinkert/gray-matter", + "license": "MIT" + }, + { + "name": "react-syntax-highlighter", + "description": "Syntax highlighting component for React with multiple themes.", + "url": "https://github.com/react-syntax-highlighter/react-syntax-highlighter", + "license": "MIT" + }, + { + "name": "remark-gfm", + "description": "Plugin to support GitHub Flavored Markdown in remark.", + "url": "https://github.com/remarkjs/remark-gfm", + "license": "MIT" + } + ] + }, + { + "title": "Services & Infrastructure", + "items": [ + { + "name": "Vercel", + "description": "Cloud platform for frontend deployment and hosting.", + "url": "https://vercel.com/" + }, + { + "name": "Microsoft Clarity", + "description": "Free user behavior analytics with session recordings and heatmaps.", + "url": "https://clarity.microsoft.com/" + }, + { + "name": "AWS (S3 + CloudFront)", + "description": "Object storage and CDN used to host and distribute documentation assets globally.", + "url": "https://aws.amazon.com/" + } + ] + }, + { + "title": "Fonts & Tooling", + "items": [ + { + "name": "Inter", + "description": "Sans-serif typeface designed for computer screens.", + "url": "https://rsms.me/inter/", + "license": "OFL-1.1" + }, + { + "name": "JetBrains Mono", + "description": "Monospaced typeface for developers by JetBrains.", + "url": "https://www.jetbrains.com/lp/mono/", + "license": "OFL-1.1" + }, + { + "name": "ESLint", + "description": "Pluggable JavaScript and TypeScript linter.", + "url": "https://eslint.org/", + "license": "MIT" + } + ] + } + ] +} diff --git a/docs-app/app/thanks/data/charts-gif-recorder.json b/docs-app/app/thanks/data/charts-gif-recorder.json new file mode 100644 index 0000000..f7293c3 --- /dev/null +++ b/docs-app/app/thanks/data/charts-gif-recorder.json @@ -0,0 +1,117 @@ +{ + "name": "charts-gif-recorder", + "url": "https://github.com/HDCharts/charts-gif-recorder", + "description": "Gradle plugin for recording animated GIFs of Compose UI components.", + "sections": [ + { + "title": "Frameworks & SDKs", + "items": [ + { + "name": "Kotlin", + "description": "Programming language for the JVM and Android.", + "url": "https://kotlinlang.org/" + }, + { + "name": "Android Compose UI", + "description": "Declarative UI toolkit for Android.", + "url": "https://developer.android.com/jetpack/compose" + }, + { + "name": "Android Gradle Plugin", + "description": "Official Gradle plugin for Android builds.", + "url": "https://developer.android.com/build" + } + ] + }, + { + "title": "Libraries", + "items": [ + { + "name": "AndroidX Core KTX", + "description": "Kotlin extensions for Android framework APIs.", + "url": "https://developer.android.com/jetpack/androidx/releases/core", + "license": "Apache-2.0" + }, + { + "name": "AndroidX Lifecycle", + "description": "Lifecycle-aware components for managing Android lifecycle.", + "url": "https://developer.android.com/jetpack/androidx/releases/lifecycle", + "license": "Apache-2.0" + }, + { + "name": "KSP (Kotlin Symbol Processing)", + "description": "Code generation API for Kotlin by Google.", + "url": "https://github.com/google/ksp", + "license": "Apache-2.0" + }, + { + "name": "KotlinPoet", + "description": "Kotlin API for generating .kt source files by Square.", + "url": "https://github.com/square/kotlinpoet", + "license": "Apache-2.0" + } + ] + }, + { + "title": "Build & Publishing Tools", + "items": [ + { + "name": "Gradle", + "description": "Build automation tool used for compiling and publishing.", + "url": "https://gradle.org/", + "license": "Apache-2.0" + }, + { + "name": "Dokka", + "description": "API documentation engine for Kotlin.", + "url": "https://github.com/Kotlin/dokka", + "license": "Apache-2.0" + }, + { + "name": "Vanniktech Maven Publish", + "description": "Gradle plugin to simplify Maven Central publishing.", + "url": "https://github.com/vanniktech/gradle-maven-publish-plugin", + "license": "Apache-2.0" + }, + { + "name": "ktlint", + "description": "Kotlin linter and formatter with built-in rules.", + "url": "https://github.com/pinterest/ktlint", + "license": "MIT" + } + ] + }, + { + "title": "Testing", + "items": [ + { + "name": "JUnit", + "description": "Framework for writing and running repeatable tests.", + "url": "https://junit.org/junit4/", + "license": "EPL-1.0" + }, + { + "name": "AndroidX Test", + "description": "Android testing framework with Espresso for UI testing.", + "url": "https://developer.android.com/training/testing", + "license": "Apache-2.0" + } + ] + }, + { + "title": "Infrastructure & Services", + "items": [ + { + "name": "Maven Central", + "description": "Repository for distributing JVM libraries and Gradle plugins.", + "url": "https://central.sonatype.com/" + }, + { + "name": "foojay.io", + "description": "JVM toolchain discovery and provisioning for Gradle builds.", + "url": "https://foojay.io/" + } + ] + } + ] +} diff --git a/docs-app/app/thanks/data/charts-playground.json b/docs-app/app/thanks/data/charts-playground.json new file mode 100644 index 0000000..73943b4 --- /dev/null +++ b/docs-app/app/thanks/data/charts-playground.json @@ -0,0 +1,78 @@ +{ + "name": "charts-playground", + "url": "https://github.com/HDCharts/charts-playground", + "description": "Interactive playground for experimenting with Charts in a browser.", + "sections": [ + { + "title": "Frameworks", + "items": [ + { + "name": "Kotlin Multiplatform", + "description": "Cross-platform Kotlin compilation targeting multiple platforms.", + "url": "https://kotlinlang.org/docs/multiplatform.html" + }, + { + "name": "JetBrains Compose Multiplatform", + "description": "Compose UI framework targeting Android, iOS, Desktop, and Web.", + "url": "https://www.jetbrains.com/compose-multiplatform/" + } + ] + }, + { + "title": "Libraries", + "items": [ + { + "name": "Ktor", + "description": "Asynchronous HTTP client and server framework for Kotlin.", + "url": "https://ktor.io/", + "license": "Apache-2.0" + }, + { + "name": "AndroidX Lifecycle", + "description": "Lifecycle-aware components for managing Android lifecycle.", + "url": "https://developer.android.com/jetpack/androidx/releases/lifecycle", + "license": "Apache-2.0" + }, + { + "name": "KotlinX Serialization", + "description": "Kotlin multi-format serialization library.", + "url": "https://github.com/Kotlin/kotlinx.serialization", + "license": "Apache-2.0" + } + ] + }, + { + "title": "Build & Quality Tools", + "items": [ + { + "name": "Gradle", + "description": "Build automation tool used for compiling and publishing.", + "url": "https://gradle.org/", + "license": "Apache-2.0" + }, + { + "name": "ktlint", + "description": "Kotlin linter and formatter with built-in rules.", + "url": "https://github.com/pinterest/ktlint", + "license": "MIT" + }, + { + "name": "BuildConfig for Gradle", + "description": "Gradle plugin for generating BuildConfig constants.", + "url": "https://github.com/gmazzo/gradle-buildconfig-plugin", + "license": "Apache-2.0" + } + ] + }, + { + "title": "Infrastructure & Services", + "items": [ + { + "name": "AWS (S3 + CloudFront)", + "description": "Object storage and CDN for hosting and globally serving the playground web app.", + "url": "https://aws.amazon.com/" + } + ] + } + ] +} diff --git a/docs-app/app/thanks/data/charts.json b/docs-app/app/thanks/data/charts.json new file mode 100644 index 0000000..c2f1284 --- /dev/null +++ b/docs-app/app/thanks/data/charts.json @@ -0,0 +1,95 @@ +{ + "name": "charts", + "url": "https://github.com/HDCharts/charts", + "description": "The core Kotlin Multiplatform charting library published to Maven Central.", + "sections": [ + { + "title": "Languages & Frameworks", + "items": [ + { + "name": "Kotlin Multiplatform", + "description": "Kotlin framework for sharing code across Android, iOS, Desktop, and Web.", + "url": "https://kotlinlang.org/docs/multiplatform.html" + }, + { + "name": "JetBrains Compose Multiplatform", + "description": "Compose UI framework targeting Android, iOS, Desktop, and Web.", + "url": "https://www.jetbrains.com/compose-multiplatform/" + } + ] + }, + { + "title": "Libraries", + "items": [ + { + "name": "KotlinX Coroutines", + "description": "Library for writing asynchronous code using coroutines.", + "url": "https://github.com/Kotlin/kotlinx.coroutines", + "license": "Apache-2.0" + }, + { + "name": "KotlinX Immutable Collections", + "description": "Persistent immutable collection implementations for Kotlin.", + "url": "https://github.com/Kotlin/kotlinx.collections.immutable", + "license": "Apache-2.0" + }, + { + "name": "Koin", + "description": "Lightweight dependency injection framework for Kotlin.", + "url": "https://insert-koin.io/", + "license": "Apache-2.0" + } + ] + }, + { + "title": "Build & Documentation Tools", + "items": [ + { + "name": "Gradle", + "description": "Build automation tool used for compiling and publishing.", + "url": "https://gradle.org/", + "license": "Apache-2.0" + }, + { + "name": "Dokka", + "description": "API documentation engine for Kotlin.", + "url": "https://github.com/Kotlin/dokka", + "license": "Apache-2.0" + }, + { + "name": "ktlint", + "description": "Kotlin linter and formatter with built-in rules.", + "url": "https://github.com/pinterest/ktlint", + "license": "MIT" + }, + { + "name": "Vanniktech Maven Publish", + "description": "Gradle plugin to simplify Maven Central publishing.", + "url": "https://github.com/vanniktech/gradle-maven-publish-plugin", + "license": "Apache-2.0" + }, + { + "name": "Gradle japicmp Plugin", + "description": "Binary/source API compatibility checks used in release and CI workflows.", + "url": "https://github.com/melix/japicmp-gradle-plugin", + "license": "Apache-2.0" + } + ] + }, + { + "title": "Infrastructure & Services", + "items": [ + { + "name": "Maven Central", + "description": "Repository for hosting and distributing JVM libraries.", + "url": "https://central.sonatype.com/" + }, + { + "name": "foojay.io", + "description": "JVM toolchain discovery and provisioning for Gradle builds.", + "url": "https://foojay.io/" + } + ] + } + ] +} diff --git a/docs-app/app/thanks/data/index.ts b/docs-app/app/thanks/data/index.ts new file mode 100644 index 0000000..cb8c79a --- /dev/null +++ b/docs-app/app/thanks/data/index.ts @@ -0,0 +1,17 @@ +import brands from './brands.json'; +import charts from './charts.json'; +import chartsDemo from './charts-demo.json'; +import chartsDocs from './charts-docs.json'; +import chartsPlayground from './charts-playground.json'; +import chartsGifRecorder from './charts-gif-recorder.json'; + +export const thanksData = { + brands, + projects: [ + charts, + chartsDemo, + chartsDocs, + chartsPlayground, + chartsGifRecorder, + ], +}; diff --git a/docs-app/app/thanks/layout.tsx b/docs-app/app/thanks/layout.tsx new file mode 100644 index 0000000..6412ad7 --- /dev/null +++ b/docs-app/app/thanks/layout.tsx @@ -0,0 +1,23 @@ +import { Header, Sidebar } from '@/components'; +import { getAllVersions, getVersions, getVersion } from '@/lib/versions'; +import { getNavigation } from '@/lib/content'; + +export default async function ThanksLayout({ + children, +}: { + children: React.ReactNode; +}) { + const defaultVersion = getVersion('snapshot') ?? getVersions()[0]; + const versions = getVersions(); + const navigation = getNavigation(defaultVersion.id); + + return ( +
+
+ +
+ {children} +
+
+ ); +} \ No newline at end of file diff --git a/docs-app/app/thanks/page.tsx b/docs-app/app/thanks/page.tsx new file mode 100644 index 0000000..69bb308 --- /dev/null +++ b/docs-app/app/thanks/page.tsx @@ -0,0 +1,16 @@ +import type { Metadata } from 'next'; +import { ThanksContent } from './ThanksContent'; + +export const metadata: Metadata = { + title: 'Thanks | Charts', + description: + 'Third-party services, libraries, and tools used across the Charts project.', +}; + +export default function ThanksPage() { + return ( +
+ +
+ ); +} diff --git a/docs-app/components/Sidebar.tsx b/docs-app/components/Sidebar.tsx index 54a72e1..806f5eb 100644 --- a/docs-app/components/Sidebar.tsx +++ b/docs-app/components/Sidebar.tsx @@ -14,6 +14,7 @@ import { MigrationIcon, OverviewIcon, PlaygroundIcon, + ThanksIcon, } from '@/components/icons/SidebarIcons'; interface SidebarProps { @@ -62,6 +63,7 @@ export function Sidebar({ navigation, version }: SidebarProps) { const [mobileNavPath, setMobileNavPath] = useState(null); const isMobileNavOpen = mobileNavPath === pathname; const demoUrl = getVersionDemoUrl(version); + const thanksPath = '/thanks'; useEffect(() => { if (typeof window === 'undefined') { @@ -216,6 +218,14 @@ export function Sidebar({ navigation, version }: SidebarProps) { + + + Thanks +
diff --git a/docs-app/components/icons/SidebarIcons.tsx b/docs-app/components/icons/SidebarIcons.tsx index 1380f4f..4f14ee3 100644 --- a/docs-app/components/icons/SidebarIcons.tsx +++ b/docs-app/components/icons/SidebarIcons.tsx @@ -197,6 +197,33 @@ export function PlaygroundIcon(props: IconProps) { ); } +export function ThanksIcon(props: IconProps) { + return ( + + + + + + + + ); +} + export function ExternalLinkIcon(props: IconProps) { return (