diff --git a/website/package-lock.json b/website/package-lock.json index 1bc97fb9..c8d5513d 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -18,9 +18,9 @@ "@vercel/analytics": "^2.0.1", "@vercel/speed-insights": "^2.0.0", "codemirror": "^6.0.2", - "framer-motion": "^12.36.0", "fuse.js": "^7.1.0", "gray-matter": "^4.0.3", + "motion": "^12.36.0", "next": "16.1.7", "next-mdx-remote": "^6.0.0", "react": "19.2.3", @@ -4417,12 +4417,12 @@ "license": "MIT" }, "node_modules/framer-motion": { - "version": "12.36.0", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.36.0.tgz", - "integrity": "sha512-4PqYHAT7gev0ke0wos+PyrcFxI0HScjm3asgU8nSYa8YzJFuwgIvdj3/s3ZaxLq0bUSboIn19A2WS/MHwLCvfw==", + "version": "12.38.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.38.0.tgz", + "integrity": "sha512-rFYkY/pigbcswl1XQSb7q424kSTQ8q6eAC+YUsSKooHQYuLdzdHjrt6uxUC+PRAO++q5IS7+TamgIw1AphxR+g==", "license": "MIT", "dependencies": { - "motion-dom": "^12.36.0", + "motion-dom": "^12.38.0", "motion-utils": "^12.36.0", "tslib": "^2.4.0" }, @@ -6327,10 +6327,36 @@ "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==", "license": "MIT" }, + "node_modules/motion": { + "version": "12.38.0", + "resolved": "https://registry.npmjs.org/motion/-/motion-12.38.0.tgz", + "integrity": "sha512-uYfXzeHlgThchzwz5Te47dlv5JOUC7OB4rjJ/7XTUgtBZD8CchMN8qEJ4ZVsUmTyYA44zjV0fBwsiktRuFnn+w==", + "license": "MIT", + "dependencies": { + "framer-motion": "^12.38.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/motion-dom": { - "version": "12.36.0", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.36.0.tgz", - "integrity": "sha512-Ep1pq8P88rGJ75om8lTCA13zqd7ywPGwCqwuWwin6BKc0hMLkVfcS6qKlRqEo2+t0DwoUcgGJfXwaiFn4AOcQA==", + "version": "12.38.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.38.0.tgz", + "integrity": "sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==", "license": "MIT", "dependencies": { "motion-utils": "^12.36.0" diff --git a/website/package.json b/website/package.json index 697f875b..30c3d921 100644 --- a/website/package.json +++ b/website/package.json @@ -22,7 +22,7 @@ "@vercel/analytics": "^2.0.1", "@vercel/speed-insights": "^2.0.0", "codemirror": "^6.0.2", - "framer-motion": "^12.36.0", + "motion": "^12.36.0", "fuse.js": "^7.1.0", "gray-matter": "^4.0.3", "next": "16.1.7", diff --git a/website/src/app/benchmarks/BenchmarksContent.tsx b/website/src/app/benchmarks/BenchmarksContent.tsx index f847cfe6..80ac936a 100644 --- a/website/src/app/benchmarks/BenchmarksContent.tsx +++ b/website/src/app/benchmarks/BenchmarksContent.tsx @@ -1,6 +1,7 @@ 'use client'; import { useState } from 'react'; +import { motion, AnimatePresence } from 'motion/react'; import { FadeIn } from '@/components/ui/FadeIn'; import { GlassCard } from '@/components/ui/GlassCard'; import { Button } from '@/components/ui/Button'; @@ -41,22 +42,33 @@ function RawDataToggle({ id, children }: { id: string; children: React.ReactNode aria-expanded={open} aria-controls={`raw-data-${id}`} > - - + {open ? 'Hide' : 'View'} raw data - {open && ( -
- {children} -
- )} + + {open && ( + + {children} + + )} + ); } diff --git a/website/src/app/blog/BlogList.tsx b/website/src/app/blog/BlogList.tsx index 181f1099..e7e23198 100644 --- a/website/src/app/blog/BlogList.tsx +++ b/website/src/app/blog/BlogList.tsx @@ -1,7 +1,7 @@ 'use client'; import Link from 'next/link'; -import { motion } from 'framer-motion'; +import { motion } from 'motion/react'; import type { BlogPost } from '@/lib/blog'; export function BlogList({ posts }: { posts: BlogPost[] }) { diff --git a/website/src/app/docs/page.tsx b/website/src/app/docs/page.tsx index c124627e..0aaf9ad6 100644 --- a/website/src/app/docs/page.tsx +++ b/website/src/app/docs/page.tsx @@ -2,6 +2,7 @@ import type { Metadata } from 'next'; import Link from 'next/link'; import { DOCS_SIDEBAR } from '@/lib/constants'; import { DocsSearchTrigger } from '@/components/docs/DocsSearchTrigger'; +import { FadeIn } from '@/components/ui/FadeIn'; export const metadata: Metadata = { title: 'Documentation', @@ -43,30 +44,31 @@ export default function DocsPage() {
- {DOCS_SIDEBAR.map((group) => ( - -
- - - -
-

{group.category}

-

- {group.items.length} {group.items.length === 1 ? 'article' : 'articles'} -

- - + {DOCS_SIDEBAR.map((group, i) => ( + + +
+ + + +
+

{group.category}

+

+ {group.items.length} {group.items.length === 1 ? 'article' : 'articles'} +

+
    + {group.items.slice(0, 3).map((item) => ( +
  • {item.label}
  • + ))} + {group.items.length > 3 && ( +
  • +{group.items.length - 3} more
  • + )} +
+ +
))}
diff --git a/website/src/app/layout.tsx b/website/src/app/layout.tsx index c2597a7e..03ac377d 100644 --- a/website/src/app/layout.tsx +++ b/website/src/app/layout.tsx @@ -3,6 +3,7 @@ import { spaceGrotesk, inter, jetbrainsMono } from '@/lib/fonts'; import { Navbar } from '@/components/layout/Navbar'; import { Footer } from '@/components/layout/Footer'; import { ServiceWorkerRegister } from '@/components/ServiceWorkerRegister'; +import { ScrollProgressBar } from '@/components/ui/ScrollProgressBar'; import { Analytics } from '@vercel/analytics/next'; import { SpeedInsights } from '@vercel/speed-insights/next'; import './globals.css'; @@ -96,6 +97,7 @@ export default function RootLayout({ }), }} /> +
{children}