From dda0b526ac2a528d2857328b267d2c2eb06f1ee1 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Wed, 4 Feb 2026 21:36:24 -0330 Subject: [PATCH] Feat/learn (#41566) wip ## Summary by CodeRabbit # Release Notes * **New Features** * Added a new Learn application offering foundational Supabase courses with interactive documentation * Courses include Architecture, Authentication, Data Fundamentals, Security, Storage, Realtime, and Edge Functions * Chapter tracking and progress indicators for course completions * Responsive sidebar navigation with search/command menu * Theme switching support (light, dark, classic dark modes) * Mobile-friendly course interface --------- Co-authored-by: Alan Daniel Co-authored-by: Claude Sonnet 4.5 --- apps/learn/.gitignore | 38 ++ apps/learn/README.md | 54 ++ apps/learn/app/(app)/[...slug]/page.tsx | 158 +++++ apps/learn/app/(app)/layout.tsx | 31 + apps/learn/app/(app)/page.tsx | 136 ++++ apps/learn/app/(app)/telemetry-wrapper.tsx | 16 + apps/learn/app/Providers.tsx | 26 + apps/learn/app/SonnerToast.tsx | 9 + apps/learn/app/favicon.ico | Bin 0 -> 25931 bytes apps/learn/app/layout.tsx | 60 ++ apps/learn/components/callout.tsx | 17 + apps/learn/components/chapter-completion.tsx | 147 +++++ apps/learn/components/command-copy-button.tsx | 77 +++ apps/learn/components/command-menu.tsx | 112 ++++ apps/learn/components/command.tsx | 102 +++ apps/learn/components/copy-button.tsx | 40 ++ apps/learn/components/course-hero.tsx | 68 ++ apps/learn/components/explore-more.tsx | 110 ++++ apps/learn/components/mdx-components.tsx | 186 ++++++ apps/learn/components/mobile-menu-sheet.tsx | 18 + apps/learn/components/next-up.tsx | 38 ++ .../learn/components/side-navigation-item.tsx | 168 +++++ apps/learn/components/side-navigation.tsx | 162 +++++ apps/learn/components/sidebar.tsx | 36 ++ apps/learn/components/site-footer.tsx | 29 + apps/learn/components/tanstack-beta.tsx | 29 + .../components/theme-switcher-dropdown.tsx | 91 +++ apps/learn/components/toc.tsx | 107 ++++ apps/learn/components/use-local-storage.tsx | 47 ++ apps/learn/components/what-will-i-learn.tsx | 138 ++++ apps/learn/config/docs.ts | 74 +++ .../content/foundations/architecture.mdx | 179 ++++++ .../content/foundations/authentication.mdx | 125 ++++ .../content/foundations/data-fundamentals.mdx | 144 +++++ .../content/foundations/edge-functions.mdx | 7 + apps/learn/content/foundations/index.mdx | 69 ++ .../content/foundations/introduction.mdx | 79 +++ apps/learn/content/foundations/quickstart.mdx | 77 +++ apps/learn/content/foundations/realtime.mdx | 7 + apps/learn/content/foundations/security.mdx | 112 ++++ apps/learn/content/foundations/storage.mdx | 7 + apps/learn/content/foundations/vector.mdx | 7 + .../content/internal/foundations/grafana.mdx | 8 + .../content/internal/foundations/realtime.mdx | 7 + apps/learn/content/platform/platform-kit.mdx | 103 +++ apps/learn/contentlayer.config.js | 254 ++++++++ apps/learn/context/framework-context.tsx | 46 ++ apps/learn/context/mobile-menu-context.tsx | 36 ++ apps/learn/eslint.config.cjs | 4 + apps/learn/hooks/use-config.ts | 22 + apps/learn/hooks/use-mobile-menu.ts | 35 + apps/learn/hooks/use-mounted.ts | 11 + apps/learn/lib/constants.ts | 1 + apps/learn/lib/get-current-chapter.ts | 36 ++ apps/learn/lib/get-internal-content.ts | 44 ++ apps/learn/lib/get-next-page.ts | 82 +++ apps/learn/lib/merge-internal-content.ts | 85 +++ apps/learn/lib/telemetry.ts | 19 + apps/learn/lib/themes/supabase-2.json | 207 ++++++ apps/learn/lib/toc.ts | 79 +++ apps/learn/lib/utils.ts | 7 + apps/learn/next.config.mjs | 27 + apps/learn/package.json | 116 ++++ apps/learn/postcss.config.cjs | 5 + .../public/favicon/android-icon-144x144.png | Bin 0 -> 1968 bytes .../public/favicon/android-icon-192x192.png | Bin 0 -> 2622 bytes .../public/favicon/android-icon-36x36.png | Bin 0 -> 624 bytes .../public/favicon/android-icon-48x48.png | Bin 0 -> 800 bytes .../public/favicon/android-icon-72x72.png | Bin 0 -> 1033 bytes .../public/favicon/android-icon-96x96.png | Bin 0 -> 1330 bytes .../public/favicon/apple-icon-114x114.png | Bin 0 -> 1525 bytes .../public/favicon/apple-icon-120x120.png | Bin 0 -> 1557 bytes .../public/favicon/apple-icon-144x144.png | Bin 0 -> 1968 bytes .../public/favicon/apple-icon-152x152.png | Bin 0 -> 2091 bytes .../public/favicon/apple-icon-180x180.png | Bin 0 -> 2481 bytes .../learn/public/favicon/apple-icon-57x57.png | Bin 0 -> 840 bytes .../learn/public/favicon/apple-icon-60x60.png | Bin 0 -> 913 bytes .../learn/public/favicon/apple-icon-72x72.png | Bin 0 -> 1033 bytes .../learn/public/favicon/apple-icon-76x76.png | Bin 0 -> 1083 bytes .../public/favicon/apple-icon-precomposed.png | Bin 0 -> 2622 bytes apps/learn/public/favicon/apple-icon.png | Bin 0 -> 2622 bytes apps/learn/public/favicon/browserconfig.xml | 2 + apps/learn/public/favicon/favicon-128.png | Bin 0 -> 1978 bytes apps/learn/public/favicon/favicon-16x16.png | Bin 0 -> 341 bytes apps/learn/public/favicon/favicon-180x180.png | Bin 0 -> 2481 bytes apps/learn/public/favicon/favicon-196x196.png | Bin 0 -> 3032 bytes apps/learn/public/favicon/favicon-32x32.png | Bin 0 -> 568 bytes apps/learn/public/favicon/favicon-48x48.png | Bin 0 -> 4769 bytes apps/learn/public/favicon/favicon-96x96.png | Bin 0 -> 1330 bytes apps/learn/public/favicon/favicon.ico | Bin 0 -> 1150 bytes apps/learn/public/favicon/manifest.json | 46 ++ apps/learn/public/favicon/ms-icon-144x144.png | Bin 0 -> 1968 bytes apps/learn/public/favicon/ms-icon-150x150.png | Bin 0 -> 3404 bytes apps/learn/public/favicon/ms-icon-310x310.png | Bin 0 -> 8773 bytes apps/learn/public/favicon/ms-icon-70x70.png | Bin 0 -> 1022 bytes .../atoms-illustration--dark.svg | 100 +++ .../atoms-illustration--deep-dark.svg | 100 +++ .../atoms-illustration--light.svg | 100 +++ .../design-system-marks--dark.svg | 61 ++ .../design-system-marks--deep-dark.svg | 61 ++ .../design-system-marks--light.svg | 61 ++ .../fragments-illustration--dark.svg | 104 +++ .../fragments-illustration--deep-dark.svg | 104 +++ .../fragments-illustration--light.svg | 104 +++ apps/learn/public/img/smart-office.png | Bin 0 -> 313194 bytes apps/learn/public/img/supabase-og-image.png | Bin 0 -> 195614 bytes apps/learn/public/img/themes/dark.svg | 39 ++ apps/learn/public/img/themes/deep-dark.svg | 39 ++ apps/learn/public/img/themes/light.svg | 39 ++ apps/learn/public/img/themes/system.svg | 62 ++ apps/learn/public/llms.txt | 87 +++ apps/learn/public/next.svg | 1 + apps/learn/public/vercel.svg | 1 + apps/learn/scripts/build-llms-txt.ts | 106 ++++ apps/learn/scripts/sync-internal-content.mts | 78 +++ apps/learn/styles/code-block-variables.css | 35 + apps/learn/styles/globals.css | 199 ++++++ apps/learn/styles/mdx.css | 81 +++ apps/learn/tailwind.config.js | 70 ++ apps/learn/tsconfig.base.json | 20 + apps/learn/tsconfig.json | 40 ++ apps/learn/tsconfig.scripts.json | 13 + apps/learn/types/nav.ts | 24 + pnpm-lock.yaml | 596 ++++++++++-------- 124 files changed, 6478 insertions(+), 266 deletions(-) create mode 100644 apps/learn/.gitignore create mode 100644 apps/learn/README.md create mode 100644 apps/learn/app/(app)/[...slug]/page.tsx create mode 100644 apps/learn/app/(app)/layout.tsx create mode 100644 apps/learn/app/(app)/page.tsx create mode 100644 apps/learn/app/(app)/telemetry-wrapper.tsx create mode 100644 apps/learn/app/Providers.tsx create mode 100644 apps/learn/app/SonnerToast.tsx create mode 100644 apps/learn/app/favicon.ico create mode 100644 apps/learn/app/layout.tsx create mode 100644 apps/learn/components/callout.tsx create mode 100644 apps/learn/components/chapter-completion.tsx create mode 100644 apps/learn/components/command-copy-button.tsx create mode 100644 apps/learn/components/command-menu.tsx create mode 100644 apps/learn/components/command.tsx create mode 100644 apps/learn/components/copy-button.tsx create mode 100644 apps/learn/components/course-hero.tsx create mode 100644 apps/learn/components/explore-more.tsx create mode 100644 apps/learn/components/mdx-components.tsx create mode 100644 apps/learn/components/mobile-menu-sheet.tsx create mode 100644 apps/learn/components/next-up.tsx create mode 100644 apps/learn/components/side-navigation-item.tsx create mode 100644 apps/learn/components/side-navigation.tsx create mode 100644 apps/learn/components/sidebar.tsx create mode 100644 apps/learn/components/site-footer.tsx create mode 100644 apps/learn/components/tanstack-beta.tsx create mode 100644 apps/learn/components/theme-switcher-dropdown.tsx create mode 100644 apps/learn/components/toc.tsx create mode 100644 apps/learn/components/use-local-storage.tsx create mode 100644 apps/learn/components/what-will-i-learn.tsx create mode 100644 apps/learn/config/docs.ts create mode 100644 apps/learn/content/foundations/architecture.mdx create mode 100644 apps/learn/content/foundations/authentication.mdx create mode 100644 apps/learn/content/foundations/data-fundamentals.mdx create mode 100644 apps/learn/content/foundations/edge-functions.mdx create mode 100644 apps/learn/content/foundations/index.mdx create mode 100644 apps/learn/content/foundations/introduction.mdx create mode 100644 apps/learn/content/foundations/quickstart.mdx create mode 100644 apps/learn/content/foundations/realtime.mdx create mode 100644 apps/learn/content/foundations/security.mdx create mode 100644 apps/learn/content/foundations/storage.mdx create mode 100644 apps/learn/content/foundations/vector.mdx create mode 100644 apps/learn/content/internal/foundations/grafana.mdx create mode 100644 apps/learn/content/internal/foundations/realtime.mdx create mode 100644 apps/learn/content/platform/platform-kit.mdx create mode 100644 apps/learn/contentlayer.config.js create mode 100644 apps/learn/context/framework-context.tsx create mode 100644 apps/learn/context/mobile-menu-context.tsx create mode 100644 apps/learn/eslint.config.cjs create mode 100644 apps/learn/hooks/use-config.ts create mode 100644 apps/learn/hooks/use-mobile-menu.ts create mode 100644 apps/learn/hooks/use-mounted.ts create mode 100644 apps/learn/lib/constants.ts create mode 100644 apps/learn/lib/get-current-chapter.ts create mode 100644 apps/learn/lib/get-internal-content.ts create mode 100644 apps/learn/lib/get-next-page.ts create mode 100644 apps/learn/lib/merge-internal-content.ts create mode 100644 apps/learn/lib/telemetry.ts create mode 100644 apps/learn/lib/themes/supabase-2.json create mode 100644 apps/learn/lib/toc.ts create mode 100644 apps/learn/lib/utils.ts create mode 100644 apps/learn/next.config.mjs create mode 100644 apps/learn/package.json create mode 100644 apps/learn/postcss.config.cjs create mode 100644 apps/learn/public/favicon/android-icon-144x144.png create mode 100644 apps/learn/public/favicon/android-icon-192x192.png create mode 100644 apps/learn/public/favicon/android-icon-36x36.png create mode 100644 apps/learn/public/favicon/android-icon-48x48.png create mode 100644 apps/learn/public/favicon/android-icon-72x72.png create mode 100644 apps/learn/public/favicon/android-icon-96x96.png create mode 100644 apps/learn/public/favicon/apple-icon-114x114.png create mode 100644 apps/learn/public/favicon/apple-icon-120x120.png create mode 100644 apps/learn/public/favicon/apple-icon-144x144.png create mode 100644 apps/learn/public/favicon/apple-icon-152x152.png create mode 100644 apps/learn/public/favicon/apple-icon-180x180.png create mode 100644 apps/learn/public/favicon/apple-icon-57x57.png create mode 100644 apps/learn/public/favicon/apple-icon-60x60.png create mode 100644 apps/learn/public/favicon/apple-icon-72x72.png create mode 100644 apps/learn/public/favicon/apple-icon-76x76.png create mode 100644 apps/learn/public/favicon/apple-icon-precomposed.png create mode 100644 apps/learn/public/favicon/apple-icon.png create mode 100644 apps/learn/public/favicon/browserconfig.xml create mode 100644 apps/learn/public/favicon/favicon-128.png create mode 100644 apps/learn/public/favicon/favicon-16x16.png create mode 100644 apps/learn/public/favicon/favicon-180x180.png create mode 100644 apps/learn/public/favicon/favicon-196x196.png create mode 100644 apps/learn/public/favicon/favicon-32x32.png create mode 100644 apps/learn/public/favicon/favicon-48x48.png create mode 100644 apps/learn/public/favicon/favicon-96x96.png create mode 100644 apps/learn/public/favicon/favicon.ico create mode 100644 apps/learn/public/favicon/manifest.json create mode 100644 apps/learn/public/favicon/ms-icon-144x144.png create mode 100644 apps/learn/public/favicon/ms-icon-150x150.png create mode 100644 apps/learn/public/favicon/ms-icon-310x310.png create mode 100644 apps/learn/public/favicon/ms-icon-70x70.png create mode 100644 apps/learn/public/img/design-system-marks/atoms-illustration--dark.svg create mode 100644 apps/learn/public/img/design-system-marks/atoms-illustration--deep-dark.svg create mode 100644 apps/learn/public/img/design-system-marks/atoms-illustration--light.svg create mode 100644 apps/learn/public/img/design-system-marks/design-system-marks--dark.svg create mode 100644 apps/learn/public/img/design-system-marks/design-system-marks--deep-dark.svg create mode 100644 apps/learn/public/img/design-system-marks/design-system-marks--light.svg create mode 100644 apps/learn/public/img/design-system-marks/fragments-illustration--dark.svg create mode 100644 apps/learn/public/img/design-system-marks/fragments-illustration--deep-dark.svg create mode 100644 apps/learn/public/img/design-system-marks/fragments-illustration--light.svg create mode 100644 apps/learn/public/img/smart-office.png create mode 100644 apps/learn/public/img/supabase-og-image.png create mode 100644 apps/learn/public/img/themes/dark.svg create mode 100644 apps/learn/public/img/themes/deep-dark.svg create mode 100644 apps/learn/public/img/themes/light.svg create mode 100644 apps/learn/public/img/themes/system.svg create mode 100644 apps/learn/public/llms.txt create mode 100644 apps/learn/public/next.svg create mode 100644 apps/learn/public/vercel.svg create mode 100644 apps/learn/scripts/build-llms-txt.ts create mode 100644 apps/learn/scripts/sync-internal-content.mts create mode 100644 apps/learn/styles/code-block-variables.css create mode 100644 apps/learn/styles/globals.css create mode 100644 apps/learn/styles/mdx.css create mode 100644 apps/learn/tailwind.config.js create mode 100644 apps/learn/tsconfig.base.json create mode 100644 apps/learn/tsconfig.json create mode 100644 apps/learn/tsconfig.scripts.json create mode 100644 apps/learn/types/nav.ts diff --git a/apps/learn/.gitignore b/apps/learn/.gitignore new file mode 100644 index 00000000000..57c2e5aba20 --- /dev/null +++ b/apps/learn/.gitignore @@ -0,0 +1,38 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +.contentlayer \ No newline at end of file diff --git a/apps/learn/README.md b/apps/learn/README.md new file mode 100644 index 00000000000..04cb9c788f9 --- /dev/null +++ b/apps/learn/README.md @@ -0,0 +1,54 @@ +Plan: +Course 1: Supabase Foundations Learn the basics of Supabase: database, auth, and RLS. 5 chapters. + +- + +Course 2: Project: Smart Office 15 Build a realtime room-booking dashboard using Supabase. 15 chapters. +Course 3: Supabase Internals: Performance & Scaling. Learn how to profile queries, tune indexes, and scale Postgres with Supabase. 20 chapters. +Course 4: Supabase Internals: Debugging & Operations. Understand how to diagnose slow queries, use read replicas, and manage production workloads. 20 chapters. + +——— +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. + +## Supabase types + +To regenerate the Supabase database types, run + +``` +supabase gen types --local > registry/default/fixtures/database.types.ts +``` diff --git a/apps/learn/app/(app)/[...slug]/page.tsx b/apps/learn/app/(app)/[...slug]/page.tsx new file mode 100644 index 00000000000..7eabcd2ead1 --- /dev/null +++ b/apps/learn/app/(app)/[...slug]/page.tsx @@ -0,0 +1,158 @@ +import { metadata as mainMetadata } from '@/app/layout' +import { ChapterCompletion } from '@/components/chapter-completion' +import { CourseHero } from '@/components/course-hero' +import { ExploreMore } from '@/components/explore-more' +import { Mdx } from '@/components/mdx-components' +import { NextUp } from '@/components/next-up' +import { DashboardTableOfContents } from '@/components/toc' +import { getTableOfContents } from '@/lib/toc' +import { getCurrentChapter } from '@/lib/get-current-chapter' +import { getNextPage } from '@/lib/get-next-page' +import { absoluteUrl, cn } from '@/lib/utils' +import '@/styles/code-block-variables.css' +import '@/styles/mdx.css' +import { allDocs } from 'contentlayer/generated' +import { ChevronRight } from 'lucide-react' +import type { Metadata } from 'next' +import { notFound } from 'next/navigation' +import Balancer from 'react-wrap-balancer' +import { ScrollArea } from 'ui' + +interface DocPageProps { + params: Promise<{ + slug: string[] + }> +} + +async function getDocFromParams({ params }: { params: { slug: string[] } }) { + const slug = params.slug?.join('/') || '' + const doc = allDocs.find((doc) => doc.slugAsParams === slug) + + if (!doc) { + return null + } + + return doc +} + +export async function generateMetadata(props: DocPageProps): Promise { + const params = await props.params + const doc = await getDocFromParams({ params }) + // get page params so we can check if it's the introduction page + const slugSegments = doc?.slugAsParams.split('/') + const isIntroductionPage = slugSegments?.[slugSegments.length - 1] === 'introduction' + + if (!doc) { + return {} + } + + const metadata: Metadata = { + ...mainMetadata, + title: doc.title, + description: doc.description, + openGraph: { + ...(mainMetadata.openGraph || {}), + title: doc.title, + description: doc.description, + type: 'article', + url: absoluteUrl(doc.slug), + }, + } + return metadata +} + +export async function generateStaticParams(): Promise<{ slug: string[] }[]> { + return allDocs.map((doc) => ({ + slug: doc.slugAsParams.split('/'), + })) +} + +export default async function DocPage(props: DocPageProps) { + const params = await props.params + const doc = await getDocFromParams({ params }) + + if (!doc) { + notFound() + } + + const toc = await getTableOfContents(doc.body.raw) + const nextPage = getNextPage(doc.slugAsParams) + const currentChapter = getCurrentChapter(doc.slugAsParams) + const slugSegments = doc.slugAsParams.split('/') + const isIntroductionPage = slugSegments[slugSegments.length - 1] === 'introduction' + + const exploreItems = ( + doc as { + explore?: Array<{ title: string; link: string; itemType?: string; description?: string }> + } + ).explore + + return ( +
+ {isIntroductionPage && doc.courseHero && ( + + )} + +
+
+
+
Learn
+ +
{doc.title}
+
+
+
+

{doc.title}

+ {doc.description && ( +

+ {doc.description} +

+ )} +
+
+
+ +
+ {exploreItems && exploreItems.length > 0 && } + {currentChapter && nextPage && ( + + )} + {nextPage && ( +
+ +
+ )} +
+ {doc.toc && ( +
+
+ +
+ +
+
+
+
+ )} +
+
+ ) +} diff --git a/apps/learn/app/(app)/layout.tsx b/apps/learn/app/(app)/layout.tsx new file mode 100644 index 00000000000..6092ea6114c --- /dev/null +++ b/apps/learn/app/(app)/layout.tsx @@ -0,0 +1,31 @@ +import { Sidebar } from '@/components/sidebar' +import { SiteFooter } from '@/components/site-footer' +import { TelemetryWrapper } from './telemetry-wrapper' + +interface AppLayoutProps { + children: React.ReactNode +} + +export default function AppLayout({ children }: AppLayoutProps) { + return ( + <> + {/* main container */} +
+ {/* main content */} +
+ {/* {children} */} +
+
+ +
+
{children}
+
+
+
+
+
+ + + + ) +} diff --git a/apps/learn/app/(app)/page.tsx b/apps/learn/app/(app)/page.tsx new file mode 100644 index 00000000000..d2fae7dd40f --- /dev/null +++ b/apps/learn/app/(app)/page.tsx @@ -0,0 +1,136 @@ +import { WhatWillILearn } from '@/components/what-will-i-learn' +import Link from 'next/link' +import { Activity, BookOpen, Database, Gauge, Wrench } from 'lucide-react' +import { Badge, Button, Card, CardDescription, CardHeader } from 'ui' + +// Horizontal grid line component +const HorizontalGridLine = () =>
+ +export const dynamic = 'force-dynamic' +export const revalidate = 0 + +export default function Home() { + const courses = [ + { + id: 1, + title: 'Supabase Foundations', + description: 'Learn the basics of Supabase: database, auth, and RLS.', + chapters: 5, + icon: Database, + level: 'Beginner', + }, + { + id: 2, + title: 'Project: Smart Office', + description: 'Build a realtime room-booking dashboard using Supabase.', + chapters: 15, + icon: Activity, + level: 'Intermediate', + }, + { + id: 3, + title: 'Supabase Internals: Performance & Scaling', + description: 'Learn how to profile queries, tune indexes, and scale Postgres with Supabase.', + chapters: 20, + icon: Gauge, + level: 'Advanced', + }, + { + id: 4, + title: 'Supabase Internals: Debugging & Operations', + description: + 'Understand how to diagnose slow queries, use read replicas, and manage production workloads.', + chapters: 20, + icon: Wrench, + level: 'Advanced', + }, + ] + return ( +
+
+ {/* Component Showcase with Grid */} +
+ {/* Grid Container */} +
+ {/* Grid Lines - Vertical (Columns) */} + {Array.from({ length: 13 }).map((_, i) => ( +
+ ))} + + {/* Grid Content */} +
+ {/* Heading Section */} +
+
+
+

+ Learn Supabase +

+

+ Learn how to build your own projects with Supabase. Our courses and projects + help you get started no matter your skill level, teaching you how to build + production-ready apps. +

+
+
+ +
+

Courses

+ +
+ {courses.map((course) => { + const Icon = course.icon + return ( + + +
+
+ +
+
+
+

{course.title}

+ + {course.level} + +
+ + {course.description} + +
+
+ + + {course.chapters} chapters + +
+ +
+
+
+
+
+ ) + })} +
+
+
+ +
+
+
+
+
+
+
+ ) +} diff --git a/apps/learn/app/(app)/telemetry-wrapper.tsx b/apps/learn/app/(app)/telemetry-wrapper.tsx new file mode 100644 index 00000000000..124d9c5477a --- /dev/null +++ b/apps/learn/app/(app)/telemetry-wrapper.tsx @@ -0,0 +1,16 @@ +'use client' + +import { API_URL } from '@/lib/constants' +import { IS_PLATFORM, PageTelemetry } from 'common' +import { useConsentToast } from 'ui-patterns/consent' + +export const TelemetryWrapper = () => { + const { hasAcceptedConsent } = useConsentToast() + return ( + + ) +} diff --git a/apps/learn/app/Providers.tsx b/apps/learn/app/Providers.tsx new file mode 100644 index 00000000000..24d7eac1223 --- /dev/null +++ b/apps/learn/app/Providers.tsx @@ -0,0 +1,26 @@ +'use client' + +import { Provider as JotaiProvider } from 'jotai' +import { ThemeProvider as NextThemesProvider } from 'next-themes' +import { ThemeProviderProps } from 'next-themes/dist/types' + +import { FrameworkProvider } from '@/context/framework-context' +import { MobileMenuProvider } from '@/context/mobile-menu-context' +import { AuthProvider } from 'common' +import { TooltipProvider } from 'ui' + +export function ThemeProvider({ children, ...props }: ThemeProviderProps) { + return ( + + + + + + {children} + + + + + + ) +} diff --git a/apps/learn/app/SonnerToast.tsx b/apps/learn/app/SonnerToast.tsx new file mode 100644 index 00000000000..819a8890e9d --- /dev/null +++ b/apps/learn/app/SonnerToast.tsx @@ -0,0 +1,9 @@ +'use client' + +import { useConfig } from '@/hooks/use-config' +import { SonnerToaster as Toaster } from 'ui' + +export function SonnerToaster() { + const [config] = useConfig() + return +} diff --git a/apps/learn/app/favicon.ico b/apps/learn/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/apps/learn/app/layout.tsx b/apps/learn/app/layout.tsx new file mode 100644 index 00000000000..8903f15159d --- /dev/null +++ b/apps/learn/app/layout.tsx @@ -0,0 +1,60 @@ +import type { Metadata } from 'next' + +import '@/styles/globals.css' +import { API_URL } from '@/lib/constants' +import { FeatureFlagProvider, TelemetryTagManager } from 'common' +import { genFaviconData } from 'common/MetaFavicons/app-router' +import { Inter } from 'next/font/google' +import { ThemeProvider } from './Providers' +import { SonnerToaster } from './SonnerToast' + +const inter = Inter({ subsets: ['latin'] }) + +const BASE_PATH = process.env.NEXT_PUBLIC_BASE_PATH ?? '' + +export const metadata: Metadata = { + applicationName: 'Learn Supabase', + title: 'Learn Supabase', + description: 'Learn Supabase.', + metadataBase: new URL('https://supabase.com/learn'), + icons: genFaviconData(BASE_PATH), + openGraph: { + type: 'article', + authors: 'Supabase', + url: `${BASE_PATH}`, + images: `${BASE_PATH}/img/supabase-og-image.png`, + publishedTime: new Date().toISOString(), + modifiedTime: new Date().toISOString(), + }, + twitter: { + card: 'summary_large_image', + site: '@supabase', + creator: '@supabase', + images: `${BASE_PATH}/img/supabase-og-image.png`, + }, +} + +interface RootLayoutProps { + children: React.ReactNode +} + +export default async function Layout({ children }: RootLayoutProps) { + return ( + + + + + + + {children} + + + + + + ) +} diff --git a/apps/learn/components/callout.tsx b/apps/learn/components/callout.tsx new file mode 100644 index 00000000000..63ed3afc9b8 --- /dev/null +++ b/apps/learn/components/callout.tsx @@ -0,0 +1,17 @@ +import { Alert_Shadcn_, AlertDescription_Shadcn_, AlertTitle_Shadcn_ } from 'ui' + +interface CalloutProps { + icon?: string + title?: string + children?: React.ReactNode +} + +export function Callout({ title, children, icon, ...props }: CalloutProps) { + return ( + + {icon && {icon}} + {title && {title}} + {children} + + ) +} diff --git a/apps/learn/components/chapter-completion.tsx b/apps/learn/components/chapter-completion.tsx new file mode 100644 index 00000000000..d214849cd89 --- /dev/null +++ b/apps/learn/components/chapter-completion.tsx @@ -0,0 +1,147 @@ +'use client' + +import { Check } from 'lucide-react' +import { useEffect, useRef, useState } from 'react' +import { useLocalStorage } from './use-local-storage' + +interface ChapterCompletionProps { + chapterNumber: number + completionMessage?: string +} + +export function ChapterCompletion({ chapterNumber, completionMessage }: ChapterCompletionProps) { + const [completedChapters, setCompletedChapters] = useLocalStorage( + 'completed-chapters', + [] + ) + const [isCompleted, setIsCompleted] = useState(false) + const [isVisible, setIsVisible] = useState(false) + const containerRef = useRef(null) + const timerRef = useRef(null) + + // Check if chapter is already completed on mount + useEffect(() => { + if (completedChapters.includes(chapterNumber)) { + setIsCompleted(true) + } + }, [chapterNumber, completedChapters]) + + useEffect(() => { + const container = containerRef.current + if (!container) return + + const observer = new IntersectionObserver( + (entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + setIsVisible(true) + } else { + setIsVisible(false) + // Reset timer if user scrolls away + if (timerRef.current) { + clearTimeout(timerRef.current) + timerRef.current = null + } + } + }) + }, + { + threshold: 0.5, // Trigger when 50% of the component is visible + rootMargin: '0px', + } + ) + + observer.observe(container) + + return () => { + observer.disconnect() + if (timerRef.current) { + clearTimeout(timerRef.current) + } + } + }, []) + + useEffect(() => { + if (isVisible && !isCompleted) { + // Start timer when component becomes visible + timerRef.current = setTimeout(() => { + setIsCompleted(true) + // Save to local storage + if (!completedChapters.includes(chapterNumber)) { + setCompletedChapters([...completedChapters, chapterNumber]) + } + }, 5000) // 5 seconds + } else if (!isVisible && timerRef.current) { + // Clear timer if user scrolls away before completion + clearTimeout(timerRef.current) + timerRef.current = null + } + + return () => { + if (timerRef.current) { + clearTimeout(timerRef.current) + } + } + }, [isVisible, isCompleted, chapterNumber, completedChapters, setCompletedChapters]) + + return ( +
+
+ {/* Large circle with chapter number */} +
+
+ + {chapterNumber} + +
+ + {/* Small checkmark circle overlapping bottom-right */} +
+ +
+
+
+ {/* Completion text */} +

+ You've completed Chapter {chapterNumber} +

+ + {completionMessage && ( +

+ {completionMessage} +

+ )} +
+
+
+ ) +} diff --git a/apps/learn/components/command-copy-button.tsx b/apps/learn/components/command-copy-button.tsx new file mode 100644 index 00000000000..8aa85d40fc5 --- /dev/null +++ b/apps/learn/components/command-copy-button.tsx @@ -0,0 +1,77 @@ +'use client' + +import { Check, Copy } from 'lucide-react' +import { useEffect, useState } from 'react' + +import { useSendTelemetryEvent } from 'lib/telemetry' +import { Button_Shadcn_ } from 'ui' + +export function CommandCopyButton({ command }: { command: string }) { + const [copied, setCopied] = useState(false) + const sendTelemetryEvent = useSendTelemetryEvent() + + useEffect(() => { + if (copied) { + const timeout = setTimeout(() => setCopied(false), 2000) + return () => clearTimeout(timeout) + } + }, [copied]) + + const parseCommandForTelemetry = (cmd: string) => { + // Extract framework from URL (e.g., 'nextjs' from 'password-based-auth-nextjs.json') + const frameworkMatch = cmd.match(/ui\/r\/.*?-(nextjs|react|react-router|tanstack)\.json/) + + // if the block doesn't have a framework defined (like infinite query), default to react + const framework = frameworkMatch + ? (frameworkMatch[1] as 'nextjs' | 'react-router' | 'tanstack' | 'react') + : 'react' + + // Extract package manager from command prefix (npx, pnpm, yarn, bun) + const packageManager = cmd.startsWith('npx') + ? ('npm' as const) + : cmd.startsWith('pnpm') + ? ('pnpm' as const) + : cmd.startsWith('yarn') + ? ('yarn' as const) + : cmd.startsWith('bun') + ? ('bun' as const) + : ('npm' as const) + + // Extract template title from URL (e.g., 'password-based-auth' from 'password-based-auth-nextjs.json') + const titleMatch = cmd.match(/\/ui\/r\/(.*?)\.json/) + const title = (titleMatch ? titleMatch[1] : '').replaceAll(`-${framework}`, '') + + return { + framework, + packageManager, + title, + } + } + + return ( + { + // Copy command to clipboard + navigator.clipboard.writeText(command) + setCopied(true) + + // Parse command and send telemetry event + const { framework, packageManager, title } = parseCommandForTelemetry(command) + + sendTelemetryEvent({ + action: 'supabase_ui_command_copy_button_clicked', + properties: { + templateTitle: title, + command: command, + framework, + packageManager, + }, + }) + }} + > + {copied ? : } + + ) +} diff --git a/apps/learn/components/command-menu.tsx b/apps/learn/components/command-menu.tsx new file mode 100644 index 00000000000..d764ce7e38f --- /dev/null +++ b/apps/learn/components/command-menu.tsx @@ -0,0 +1,112 @@ +'use client' + +import { CircleIcon, LaptopIcon, MoonIcon, SunIcon } from 'lucide-react' +import { useTheme } from 'next-themes' +import { useRouter } from 'next/navigation' +import * as React from 'react' + +import { COMMAND_ITEMS } from '@/config/docs' +import { cn } from '@/lib/utils' +import { + Button, + CommandDialog, + CommandEmpty_Shadcn_, + CommandGroup_Shadcn_, + CommandInput_Shadcn_, + CommandItem_Shadcn_, + CommandList_Shadcn_, + CommandSeparator_Shadcn_, + DialogProps, +} from 'ui' + +export function CommandMenu({ ...props }: DialogProps) { + const router = useRouter() + const [open, setOpen] = React.useState(false) + const { setTheme } = useTheme() + + React.useEffect(() => { + const down = (e: KeyboardEvent) => { + if ((e.key === 'k' && (e.metaKey || e.ctrlKey)) || e.key === '/') { + if ( + (e.target instanceof HTMLElement && e.target.isContentEditable) || + e.target instanceof HTMLInputElement || + e.target instanceof HTMLTextAreaElement || + e.target instanceof HTMLSelectElement + ) { + return + } + + e.preventDefault() + setOpen((open) => !open) + } + } + + document.addEventListener('keydown', down) + return () => document.removeEventListener('keydown', down) + }, []) + + const runCommand = React.useCallback((command: () => unknown) => { + setOpen(false) + command() + }, []) + + return ( + <> + + + + + No results found. + + {COMMAND_ITEMS.map((navItem) => ( + runCommand(() => router.push(navItem.href as string))} + > +
+ +
+ {navItem.label} +
+ ))} +
+ + + runCommand(() => setTheme('light'))}> + + Light + + runCommand(() => setTheme('dark'))}> + + Dark + + runCommand(() => setTheme('classic-dark'))}> + + Classic dark + + runCommand(() => setTheme('system'))}> + + System + + +
+
+ + ) +} diff --git a/apps/learn/components/command.tsx b/apps/learn/components/command.tsx new file mode 100644 index 00000000000..c3c5ce6240d --- /dev/null +++ b/apps/learn/components/command.tsx @@ -0,0 +1,102 @@ +'use client' + +import { motion } from 'framer-motion' +import { Tabs_Shadcn_, TabsContent_Shadcn_, TabsList_Shadcn_, TabsTrigger_Shadcn_ } from 'ui' +import { CommandCopyButton } from './command-copy-button' +import { useLocalStorage } from './use-local-storage' + +interface CommandCopyProps { + name: string + highlight?: boolean + // For Vue, we need to use the `shadcn-vue` package instead of `shadcn` + framework?: 'react' | 'vue' +} + +type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun' + +const LOCAL_STORAGE_KEY = 'package-manager-copy-command' + +const getBaseUrl = () => { + if (process.env.NEXT_PUBLIC_VERCEL_TARGET_ENV === 'production') { + // we have a special alias for the production environment, added in https://github.com/shadcn-ui/ui/pull/8161 + return `@supabase` + } else if (process.env.NEXT_PUBLIC_VERCEL_TARGET_ENV === 'preview') { + return `https://${process.env.NEXT_PUBLIC_VERCEL_BRANCH_URL}` + } else { + return 'http://localhost:3004' + } +} + +const getComponentPath = (name: string) => { + if (process.env.NEXT_PUBLIC_VERCEL_TARGET_ENV === 'production') { + return `/${name}` + } else { + return `${process.env.NEXT_PUBLIC_BASE_PATH ?? ''}/r/${name}.json` + } +} + +export function Command({ name, highlight, framework = 'react' }: CommandCopyProps) { + const [value, setValue] = useLocalStorage(LOCAL_STORAGE_KEY, 'npm') + + const baseUrl = getBaseUrl() + const componentPath = getComponentPath(name) + + const commands: Record = + framework === 'vue' + ? { + npm: `npx shadcn-vue@latest add ${baseUrl}${componentPath}`, + pnpm: `pnpm dlx shadcn-vue@latest add ${baseUrl}${componentPath}`, + yarn: `yarn dlx shadcn-vue@latest add ${baseUrl}${componentPath}`, + bun: `bunx --bun shadcn-vue@latest add ${baseUrl}${componentPath}`, + } + : { + npm: `npx shadcn@latest add ${baseUrl}${componentPath}`, + pnpm: `pnpm dlx shadcn@latest add ${baseUrl}${componentPath}`, + yarn: `yarn dlx shadcn@latest add ${baseUrl}${componentPath}`, + bun: `bunx --bun shadcn@latest add ${baseUrl}${componentPath}`, + } + + return ( + +
+ {highlight && ( + + )} + +
+ + {(Object.keys(commands) as PackageManager[]).map((manager) => ( + + {manager} + + ))} + + + {(Object.keys(commands) as PackageManager[]).map((manager) => ( + +
+
+ $ + {commands[manager]} +
+
+ +
+
+
+ ))} +
+
+
+ ) +} diff --git a/apps/learn/components/copy-button.tsx b/apps/learn/components/copy-button.tsx new file mode 100644 index 00000000000..f2e84e2429e --- /dev/null +++ b/apps/learn/components/copy-button.tsx @@ -0,0 +1,40 @@ +'use client' + +import { Check, Copy } from 'lucide-react' +import * as React from 'react' + +import { Button, cn, copyToClipboard } from 'ui' + +interface CopyButtonProps extends React.HTMLAttributes { + value: string + src?: string +} + +export function CopyButton({ value, className, src, ...props }: CopyButtonProps) { + const [hasCopied, setHasCopied] = React.useState(false) + + React.useEffect(() => { + setTimeout(() => { + setHasCopied(false) + }, 2000) + }, [hasCopied]) + + return ( + + ) +} diff --git a/apps/learn/components/course-hero.tsx b/apps/learn/components/course-hero.tsx new file mode 100644 index 00000000000..2b30e227ab7 --- /dev/null +++ b/apps/learn/components/course-hero.tsx @@ -0,0 +1,68 @@ +import { BookA, Clock, GraduationCap } from 'lucide-react' + +interface CourseHeroProps { + title: string + subtitle: string + description: string + stats?: { + label: string + icon: React.ReactNode + accent: string + }[] + instructors?: { + name: string + icon: React.ReactNode + accent: string + }[] +} + +export function CourseHero({ title, subtitle, description, instructors }: CourseHeroProps) { + return ( +
+ {/* Chapter label */} +
+ + + Chapter Introduction + +
+ +

+ {title} +

+ +

+ Learn the foundations of Supabase, the Postgres development platform. +

+ +

+ In this short course, you'll explore how Supabase brings together Database, Auth, + Storage, Edge Functions, and Realtime into a unified developer platform. +

+ + {/* Course metadata */} +
+
+
+ +
+ 5 Chapters +
+ +
+
+ +
+ ~1 hour +
+ +
+
+ +
+ Beginner +
+
+
+ ) +} diff --git a/apps/learn/components/explore-more.tsx b/apps/learn/components/explore-more.tsx new file mode 100644 index 00000000000..4145774bb3c --- /dev/null +++ b/apps/learn/components/explore-more.tsx @@ -0,0 +1,110 @@ +import Link from 'next/link' +import { BookOpen, Code, Users, ExternalLink, BookA } from 'lucide-react' +import { IconYoutubeSolid } from 'ui' + +interface ExploreItem { + title: string + link: string + itemType?: string + description?: string +} + +interface ExploreMoreProps { + items: ExploreItem[] +} + +// Icon mapping based on itemType +function getIcon(itemType?: string) { + if (!itemType) return BookOpen + const lowerType = itemType.toLowerCase() + if (lowerType === 'doc' || lowerType === 'documentation') { + return BookA + } + if (lowerType === 'reference' || lowerType === 'api') { + return Code + } + if (lowerType === 'community' || lowerType === 'forum') { + return Users + } + if (lowerType === 'video' || lowerType === 'tutorial') { + return IconYoutubeSolid + } + return BookA // default icon +} + +// Default descriptions based on itemType +function getDescription(itemType?: string): string { + if (!itemType) return 'Learn more about this topic' + const lowerType = itemType.toLowerCase() + if (lowerType === 'doc' || lowerType === 'documentation') { + return 'Complete guides and references' + } + if (lowerType === 'reference' || lowerType === 'api') { + return 'Detailed API documentation' + } + if (lowerType === 'community' || lowerType === 'forum') { + return 'Get help from the community' + } + if (lowerType === 'video' || lowerType === 'tutorial') { + return 'Watch video tutorials and guides' + } + return 'Learn more about this topic' +} + +export function ExploreMore({ items }: ExploreMoreProps) { + if (!items || items.length === 0) { + return null + } + + return ( +
+
+

+ Explore More +

+
+ {items.map((item, index) => { + const isExternal = item.link.startsWith('http://') || item.link.startsWith('https://') + const Icon = getIcon(item.itemType) + const description = item.description || getDescription(item.itemType) + + const cardContent = ( +
+
+ +
+
+ +
+

{item.title}

+

{description}

+
+
+
+ ) + + if (isExternal) { + return ( + + {cardContent} + + ) + } + + return ( + + {cardContent} + + ) + })} +
+
+
+ ) +} diff --git a/apps/learn/components/mdx-components.tsx b/apps/learn/components/mdx-components.tsx new file mode 100644 index 00000000000..d71686970ef --- /dev/null +++ b/apps/learn/components/mdx-components.tsx @@ -0,0 +1,186 @@ +import { useMDXComponent } from 'next-contentlayer2/hooks' +import Link from 'next/link' + +import { + Accordion_Shadcn_ as Accordion, + AccordionContent_Shadcn_ as AccordionContent, + AccordionItem_Shadcn_ as AccordionItem, + AccordionTrigger_Shadcn_ as AccordionTrigger, + cn, +} from 'ui' +import { Callout } from './callout' +import { CopyButton } from './copy-button' +import TanStackBeta from './tanstack-beta' + +const components = { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, + h1: ({ className, ...props }: React.HTMLAttributes) => ( +

+ ), + h2: ({ className, ...props }: React.HTMLAttributes) => ( +

+ ), + h3: ({ className, ...props }: React.HTMLAttributes) => ( +

+ ), + h4: ({ className, ...props }: React.HTMLAttributes) => ( +

+ ), + h5: ({ className, ...props }: React.HTMLAttributes) => ( +
+ ), + h6: ({ className, ...props }: React.HTMLAttributes) => ( +
+ ), + a: ({ className, ...props }: React.HTMLAttributes) => ( + + ), + p: ({ className, ...props }: React.HTMLAttributes) => ( +

+ ), + ul: ({ className, ...props }: React.HTMLAttributes) => ( +

    + ), + ol: ({ className, ...props }: React.HTMLAttributes) => ( +
      + ), + li: ({ className, ...props }: React.HTMLAttributes) => ( +
    1. + ), + blockquote: ({ className, ...props }: React.HTMLAttributes) => ( +
      + ), + img: ({ className, alt, ...props }: React.ImgHTMLAttributes) => ( + // eslint-disable-next-line @next/next/no-img-element + {alt} + ), + hr: ({ ...props }: React.HTMLAttributes) => ( +
      + ), + table: ({ className, ...props }: React.HTMLAttributes) => ( +
      + + + ), + tr: ({ className, ...props }: React.HTMLAttributes) => ( + + ), + th: ({ className, ...props }: React.HTMLAttributes) => ( + Mc~O>3(E7x_gat;*N0+3S`99J1DL5d$T3b<h9 z{uYl(Nh#tuGlI6(l}Jd4*A)Et-%=99K)5)??P#W`Sx&b@gw*!e|FtOr2KY7D`#dbU z{a>h$g#H~8hHxUUl_YM2Om>-o{y$veX}y(bk^}AN|J9r~6B1nfCQLVlLKop@QYQnr z{nk?Ozy4mhbhX1{MQxWu>chQ@XGOrVkLwWJ^!og{U1{1|M>vuqs&zpRKUr| zAn&Eiy?+`5D!GpSZ#hbs9}Lg_?ivSfe2D4{qbqrfiVSxIaMKHzbNV6)z? zCtkA`7z*dZ{jZk(`AR>P|H#P5uYqm-5{j`B;)>QeMxjPZ0bgfj0Eq z1^11Gc42*-Uim!1=`Od>D?gOhU5%E>4@u!q-^FU`7k~Hl_0r==5 z?Qu#>X}fIYYk{D&$Pm}laik!dEr?O{D~dLmztBY8CT76}ATwGy#p}jryWp9l#*VghzV;=Yfs$yZjN4blHlf~gg zTuelTOVhYDEr@_fiKabdMl!}#;Ro0KCPqvOR~6UhYoo61qJ*no09CO9g96#2;lZ2_ z89+E?=#pkW7Y@pypd?eb)mo(nzEe&Q(X~TAr@h(ouM|bkXR=UZ*`{RWkB+QbO;e9QBViO8qEf!3I;s#~E~#j0hP2ize$a>x zldz^Y^cXaieE_JFiE;6Qe!f|!j;splkL~Lc!P?R-sL>URCVb&Kbg)gmJLNlo%O;cY zlSMqLx3RrP7Wv?`aPNP4`t2Tp6%0$p(i@F*hGuj`L9-{D8R{Dk~K7hX=&>1O$nE@_!WG|+jy5- zX}sB*Qyn(+MP85ruIl)vrUqvy+_}nq?8Zw_pN(S_68h7~MqDolbaBBx`uk~dl90?2 zg~AT`Dje&hkB5ig3(EvGe}2K6D{Khw<)6<0Ukb?;>3dYvu0jk9jBgq57SdiZH(kRW z_1IBLtCRjxnnXtkJiSCmqFQr(l>wY4YN~CFK+=;U+MYIEH`j%+#pf2)&&dhC%{L|W zDrUxqQd3b$6TNFF{zGJjzk>#b`1ODEwy~)t-0}~=c55UfCqx7@a9K>yx;Wel7i$|z zFu><}lBK)^zXnAid?+B{C;y$9m{t~-lGiNHsr^k@T*PM=Vq+T~7EusZZR~kc1^%{N zf67%=l!q(!@Ux)xnnTg+QT@xgc+^?*DO&SWwLEj1j(Kre5rf+g!qdf?=tK@3`mX+8 zM!C#9JbIojF2|pnw_#_6`edRp#2OL`ep-GTj>7do8Svw(-tV}$pK_$i$w)}Fwm<3Z zNs;;dajI3hV8(51= z!!P!mi5xy=|V{zD8?&x(Lo1I9Z8(NkvywdV1xL@S#;;28qT--~t~3V&=R{{)w3 zKqKe`>SOOpOWBIH{n2S+t(Cm?S8v_>ltom_`!jvA_azc7`)^K#Maamcj;9^q?!O%tMPOmp8-gt9e+Vdn8asWrz}qZwC0d4VbcxtHlAwK0Of z6B0bCAy30B#UcqK==%BsOAc_^7a=sBop=44%86Hce|Nkx_jXA3I_Y>~neb8gdaG$j zl9+0C)0c`ubvcUEO=cFB#9Fh`zvGOpi}t%0C#!B9PD3dqaxak-{DWn}XHR9ixYXQh zJcmceB5+3_Y0!Q5=ZvGl(cuct`5Fp} zzAOaFCded#VA@vm?V{{jjma<25HFOLUU`j)?dX>T{fG4{=UsL2JX9y~9Mo{)!8T>F zm*1`@T8daCoP~814YDf~z*f3`S*>|N=;3_eo^MTZz0Io9@duj#Q+ooCkV%-<(_OoZ z-i{L-f9as5op!Gwe8YN7`wZ>Nl$~CK88V7KL6D&fxzQ7;70L;4Boh=H7AAk7qQs%+ zI2rUB-6-|t>fCpd2X@ad3Yl1cd)9Vq_Khepyz-hdfDrWISU&W8rifrP?VcF~3mZO2 zG+2|2emZpsRrU)Bts-x>7+(W9_ug{EyVq}tUqQi^eNg_x5hsr9hBfbmHP9`n2|bGb z9f3vX6K6+-cus@9ZxEySm4WBpBFWCncg+}K$Vvg^h zNemu9+I3H?4~}d6ahmXH1E%XJ-2kv;33p6PPsseUKEKSsdCsuHB|?PJ8uF(cP304q z-keB^PPeFXZRSgmznf1AsvWmpRX+6n-_5i99t*gk@K}+wXX}R#Z;+b&gg08f+a-zjk;AT`0NP1qY z*jnz

      V#&tb6E=iHWeHk@GrX{! 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 literal 0 HcmV?d00001 diff --git a/apps/learn/public/img/supabase-og-image.png b/apps/learn/public/img/supabase-og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..cba27d698598a2fd1a93e52bf0fadb8d8d57f147 GIT binary patch literal 195614 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 ur;g)D)jPzHMC>QZiNW0;Pc6T2NRDCd=wh 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 z�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 Y$$5^E + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/img/themes/deep-dark.svg b/apps/learn/public/img/themes/deep-dark.svg new file mode 100644 index 00000000000..05bab64b78d --- /dev/null +++ b/apps/learn/public/img/themes/deep-dark.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/img/themes/light.svg b/apps/learn/public/img/themes/light.svg new file mode 100644 index 00000000000..0ef07743552 --- /dev/null +++ b/apps/learn/public/img/themes/light.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/img/themes/system.svg b/apps/learn/public/img/themes/system.svg new file mode 100644 index 00000000000..386cd717702 --- /dev/null +++ b/apps/learn/public/img/themes/system.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/llms.txt b/apps/learn/public/llms.txt new file mode 100644 index 00000000000..bea8b27be06 --- /dev/null +++ b/apps/learn/public/llms.txt @@ -0,0 +1,87 @@ +# Supabase UI Library +Last updated: 2025-10-15T07:54:48.550Z + +## Overview +Library of components for your project. The components integrate with Supabase and are shadcn compatible. + +## Docs +- [Prompts](https://supabase.com/ui/docs/ai-editors-rules/prompts) + - Rules for AI Code Editors for Supabase +- [FAQ](https://supabase.com/ui/docs/getting-started/faq) + - Frequently asked questions +- [Introduction](https://supabase.com/ui/docs/getting-started/introduction) + - A flexible, open-source, React-based UI component library built on shadcn/ui, designed to simplify Supabase-powered projects with pre-built Auth, Storage, and Realtime features. +- [Quick Start](https://supabase.com/ui/docs/getting-started/quickstart) + - Install shadcn/ui and use the components in your project +- [Infinite Query Hook](https://supabase.com/ui/docs/infinite-query-hook) + - React hook for infinite lists, fetching data from Supabase. +- [Supabase Client Libraries](https://supabase.com/ui/docs/nextjs/client) + - Supabase client for Next.js +- [Current User Avatar](https://supabase.com/ui/docs/nextjs/current-user-avatar) + - Supabase Auth-aware avatar +- [Dropzone (File Upload)](https://supabase.com/ui/docs/nextjs/dropzone) + - Displays a control for easier uploading of files directly to Supabase Storage +- [Password-based Authentication](https://supabase.com/ui/docs/nextjs/password-based-auth) + - Password-based authentication block for Next.js +- [Realtime Avatar Stack](https://supabase.com/ui/docs/nextjs/realtime-avatar-stack) + - Avatar stack in realtime +- [Realtime Chat](https://supabase.com/ui/docs/nextjs/realtime-chat) + - Real-time chat component for collaborative applications +- [Realtime Cursor](https://supabase.com/ui/docs/nextjs/realtime-cursor) + - Real-time cursor sharing for collaborative applications +- [Social Authentication](https://supabase.com/ui/docs/nextjs/social-auth) + - Social authentication block for Next.js +- [Supabase Client Libraries](https://supabase.com/ui/docs/nuxtjs/client) + - Supabase client for Nuxt.js +- [Platform Kit](https://supabase.com/ui/docs/platform/platform-kit) + - The easiest way to build platforms on top of Supabase +- [Supabase Client Libraries](https://supabase.com/ui/docs/react-router/client) + - Supabase client for React Router +- [Current User Avatar](https://supabase.com/ui/docs/react-router/current-user-avatar) + - Supabase Auth-aware avatar +- [Dropzone (File Upload)](https://supabase.com/ui/docs/react-router/dropzone) + - Displays a control for easier uploading of files directly to Supabase Storage +- [Password-based Authentication](https://supabase.com/ui/docs/react-router/password-based-auth) + - Password-based authentication block for React Router +- [Realtime Avatar Stack](https://supabase.com/ui/docs/react-router/realtime-avatar-stack) + - Avatar stack in realtime +- [Realtime Chat](https://supabase.com/ui/docs/react-router/realtime-chat) + - Real-time chat component for collaborative applications +- [Realtime Cursor](https://supabase.com/ui/docs/react-router/realtime-cursor) + - Real-time cursor sharing for collaborative applications +- [Social Authentication](https://supabase.com/ui/docs/react-router/social-auth) + - Social authentication block for React Router +- [Supabase Client Libraries](https://supabase.com/ui/docs/react/client) + - Supabase client for React Single Page Applications +- [Current User Avatar](https://supabase.com/ui/docs/react/current-user-avatar) + - Supabase Auth-aware avatar +- [Dropzone (File Upload)](https://supabase.com/ui/docs/react/dropzone) + - Displays a control for easier uploading of files directly to Supabase Storage +- [Password-based Authentication](https://supabase.com/ui/docs/react/password-based-auth) + - Password-based authentication block for React Single Page Applications +- [Realtime Avatar Stack](https://supabase.com/ui/docs/react/realtime-avatar-stack) + - Avatar stack in realtime +- [Realtime Chat](https://supabase.com/ui/docs/react/realtime-chat) + - Real-time chat component for collaborative applications +- [Realtime Cursor](https://supabase.com/ui/docs/react/realtime-cursor) + - Real-time cursor sharing for collaborative applications +- [Social Authentication](https://supabase.com/ui/docs/react/social-auth) + - Social authentication block for React Single Page Applications +- [Supabase Client Libraries](https://supabase.com/ui/docs/tanstack/client) + - Supabase client for TanStack Start +- [Current User Avatar](https://supabase.com/ui/docs/tanstack/current-user-avatar) + - Supabase Auth-aware avatar +- [Dropzone (File Upload)](https://supabase.com/ui/docs/tanstack/dropzone) + - Displays a control for easier uploading of files directly to Supabase Storage +- [Password-based Authentication](https://supabase.com/ui/docs/tanstack/password-based-auth) + - Password-based authentication block for TanStack Start +- [Realtime Avatar Stack](https://supabase.com/ui/docs/tanstack/realtime-avatar-stack) + - Avatar stack in realtime +- [Realtime Chat](https://supabase.com/ui/docs/tanstack/realtime-chat) + - Real-time chat component for collaborative applications +- [Realtime Cursor](https://supabase.com/ui/docs/tanstack/realtime-cursor) + - Real-time cursor sharing for collaborative applications +- [Social Authentication](https://supabase.com/ui/docs/tanstack/social-auth) + - Social authentication block for Tanstack Start +- [Supabase Client Libraries](https://supabase.com/ui/docs/vue/client) + - Supabase client for Vue Single Page Applications diff --git a/apps/learn/public/next.svg b/apps/learn/public/next.svg new file mode 100644 index 00000000000..5174b28c565 --- /dev/null +++ b/apps/learn/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/learn/public/vercel.svg b/apps/learn/public/vercel.svg new file mode 100644 index 00000000000..d2f84222734 --- /dev/null +++ b/apps/learn/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/learn/scripts/build-llms-txt.ts b/apps/learn/scripts/build-llms-txt.ts new file mode 100644 index 00000000000..19e4721f7b8 --- /dev/null +++ b/apps/learn/scripts/build-llms-txt.ts @@ -0,0 +1,106 @@ +import fs from 'fs' +import path from 'path' + +const BASE_URL = 'https://supabase.com/ui/docs' + +interface DocMeta { + title: string + description?: string + path: string +} + +console.log('🤖 Building llms.txt') + +// Function to extract frontmatter from MDX files +function extractFrontmatter(content: string): { title?: string; description?: string } { + const frontmatterRegex = /---\n([\s\S]*?)\n---/ + const match = content.match(frontmatterRegex) + if (!match) return {} + + const frontmatter = match[1] + const titleMatch = frontmatter.match(/title:\s*(.*)/) + const descriptionMatch = frontmatter.match(/description:\s*(.*)/) + + return { + title: titleMatch?.[1], + description: descriptionMatch?.[1], + } +} + +// Function to recursively get all MDX files +function getMdxFiles(dir: string): string[] { + const files: string[] = [] + const entries = fs.readdirSync(dir, { withFileTypes: true }) + + for (const entry of entries) { + const fullPath = path.join(dir, entry.name) + if (entry.isDirectory()) { + files.push(...getMdxFiles(fullPath)) + } else if (entry.name.endsWith('.mdx')) { + files.push(fullPath) + } + } + + return files +} + +// Function to get all MDX files and their metadata +function getDocFiles(): DocMeta[] { + const docsDir = path.join(process.cwd(), 'content') + const mdxFiles = getMdxFiles(docsDir).sort((a, b) => a.localeCompare(b)) + + const docs: DocMeta[] = [] + + for (const fullPath of mdxFiles) { + console.log(fullPath) + const content = fs.readFileSync(fullPath, 'utf-8') + const { title, description } = extractFrontmatter(content) + + if (title) { + // Get relative path and convert to URL path + const relativePath = path.relative(docsDir, fullPath) + const urlPath = relativePath + .replace(/\.mdx$/, '') + .replace(/\/index$/, '') + .replace(/\\/g, '/') + + docs.push({ + title, + description, + path: urlPath, + }) + } + } + + return docs +} + +// Generate the llms.txt content +const docs = getDocFiles() +let content = `# Learn Supabase +Last updated: ${new Date().toISOString()} + +## Overview +Library of components for your project. The components integrate with Supabase and are shadcn compatible. + +## Docs +` + +// Add documentation links +for (const doc of docs) { + const url = `${BASE_URL}/${doc.path}` + content += `- [${doc.title}](${url})` + if (doc.description) { + content += `\n - ${doc.description}` + } + content += '\n' +} + +// Write the file +const publicDir = path.join(process.cwd(), 'public') +if (!fs.existsSync(publicDir)) { + fs.mkdirSync(publicDir, { recursive: true }) +} + +fs.writeFileSync(path.join(publicDir, 'llms.txt'), content) +console.log('✅ Generated llms.txt in public directory') diff --git a/apps/learn/scripts/sync-internal-content.mts b/apps/learn/scripts/sync-internal-content.mts new file mode 100644 index 00000000000..2ca486c2fe5 --- /dev/null +++ b/apps/learn/scripts/sync-internal-content.mts @@ -0,0 +1,78 @@ +import { config } from 'dotenv' +import { existsSync, rmSync, mkdirSync, renameSync } from 'node:fs' +import { execSync } from 'node:child_process' +import path from 'node:path' + +const envLocalPath = path.resolve(process.cwd(), '.env.local') +if (existsSync(envLocalPath)) { + config({ path: envLocalPath }) +} + +const repo = process.env.INTERNAL_CONTENT_REPO +const token = process.env.INTERNAL_CONTENT_GITHUB_TOKEN +const branch = process.env.INTERNAL_CONTENT_BRANCH || 'main' + +const targetDir = path.resolve(process.cwd(), 'content/internal') +const tmpDir = path.resolve(process.cwd(), '.tmp-internal-content') + +if (!token) { + console.log('INTERNAL_CONTENT_GITHUB_TOKEN not set; skipping internal content sync.') + process.exit(0) +} + +if (!repo) { + console.error('INTERNAL_CONTENT_REPO not set; cannot sync internal content.') + process.exit(1) +} + +const repoUrl = `https://${token}@github.com/${repo}.git` +const safeRepo = `https://github.com/${repo}.git` + +// Run command with output captured to prevent token leakage +const run = (cmd: string) => { + try { + const output = execSync(cmd, { stdio: 'pipe', encoding: 'utf-8' }) + return output + } catch (error: any) { + // Sanitize error messages by replacing token with [REDACTED] + const sanitizedMessage = error.message?.replace(new RegExp(token, 'g'), '[REDACTED]') ?? 'Unknown error' + const sanitizedStderr = error.stderr?.toString().replace(new RegExp(token, 'g'), '[REDACTED]') ?? '' + const sanitizedStdout = error.stdout?.toString().replace(new RegExp(token, 'g'), '[REDACTED]') ?? '' + + const sanitizedError = new Error(sanitizedMessage) + ;(sanitizedError as any).stderr = sanitizedStderr + ;(sanitizedError as any).stdout = sanitizedStdout + ;(sanitizedError as any).status = error.status + throw sanitizedError + } +} + +try { + // Clean up any existing content + rmSync(targetDir, { recursive: true, force: true }) + rmSync(tmpDir, { recursive: true, force: true }) + + // Clone to temp directory (using token URL but errors will be sanitized) + console.log(`Cloning ${safeRepo} branch ${branch}...`) + run(`git clone --depth 1 --branch ${branch} ${repoUrl} ${tmpDir}`) + + // Remove git folder so targetDir is not a git repo + rmSync(path.join(tmpDir, '.git'), { recursive: true, force: true }) + + // Ensure parent directory exists + mkdirSync(path.dirname(targetDir), { recursive: true }) + + // Move temp folder into place (Node, not shell) + renameSync(tmpDir, targetDir) + + console.log('Internal content synced successfully') +} catch (e: any) { + // Sanitize error message to prevent token leakage + const sanitizedMessage = (e?.message ?? String(e)).replace(new RegExp(token, 'g'), '[REDACTED]') + console.error('Failed to sync internal content:', sanitizedMessage) + if (e?.stderr) { + console.error('Error details:', e.stderr) + } + rmSync(tmpDir, { recursive: true, force: true }) + process.exit(1) +} diff --git a/apps/learn/styles/code-block-variables.css b/apps/learn/styles/code-block-variables.css new file mode 100644 index 00000000000..d4a7fe54297 --- /dev/null +++ b/apps/learn/styles/code-block-variables.css @@ -0,0 +1,35 @@ +[data-theme='dark'], +[data-theme='deep-dark'], +.dark, +.deep-dark { + --code-token-keyword: #bda4ff; + --code-foreground: #ffffff; + --code-token-constant: #3ecf8e; + --code-token-string: #ffcda1; + --code-token-comment: #7e7e7e; + --code-token-parameter: #ffffff; + --code-token-function: #3ecf8e; + --code-token-string-expression: #ffcda1; + --code-token-punctuation: #ffffff; + --code-token-link: #ffffff; + --code-token-number: #ffffff; + --code-token-property: #3ecf8e; + --code-highlight-color: #232323; +} + +[data-theme='light'], +.light { + --code-token-keyword: #6b35dc; + --code-foreground: hsl(var(--foreground-light) / 1); + --code-token-constant: #15593b; + --code-token-string: #f1a10d; + --code-token-comment: #7e7e7e; + --code-token-parameter: hsl(var(--foreground-light) / 1); + --code-token-function: #15593b; + --code-token-string-expression: #f1a10d; + --code-token-punctuation: hsl(var(--foreground-light) / 1); + --code-token-link: hsl(var(--foreground-light) / 1); + --code-token-number: hsl(var(--foreground-light) / 1); + --code-token-property: #15593b; + --code-highlight-color: #1c1c1c; +} diff --git a/apps/learn/styles/globals.css b/apps/learn/styles/globals.css new file mode 100644 index 00000000000..2a468622963 --- /dev/null +++ b/apps/learn/styles/globals.css @@ -0,0 +1,199 @@ +@import './../../../packages/ui/build/css/source/global.css'; +@import './../../../packages/ui/build/css/themes/dark.css'; +@import './../../../packages/ui/build/css/themes/classic-dark.css'; +@import './../../../packages/ui/build/css/themes/light.css'; + +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 224 71.4% 4.1%; + --card: 0 0% 100%; + --card-foreground: 224 71.4% 4.1%; + --popover: 0 0% 100%; + --popover-foreground: 224 71.4% 4.1%; + --primary: 220.9 39.3% 11%; + --primary-foreground: 210 20% 98%; + --secondary: 220 14.3% 95.9%; + --secondary-foreground: 220.9 39.3% 11%; + --muted: 220 14.3% 95.9%; + --muted-foreground: 220 8.9% 46.1%; + --accent: 220 14.3% 95.9%; + --accent-foreground: 220.9 39.3% 11%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 84.2% 60.2%; + --border: 220 13% 91%; + --input: 220 13% 91%; + --ring: 220 13% 70.8%; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + --radius: 0.625rem; + --sidebar: 210 20% 98.5%; + --sidebar-foreground: 224 71.4% 4.1%; + --sidebar-primary: 220.9 39.3% 11%; + --sidebar-primary-foreground: 210 20% 98%; + --sidebar-accent: 220 14.3% 95.9%; + --sidebar-accent-foreground: 220.9 39.3% 11%; + --sidebar-border: 220 13% 91%; + --sidebar-ring: 220 13% 70.8%; + } + + .dark { + --background: 224 71.4% 4.1%; + --foreground: 210 20% 98%; + --card: 224 71.4% 4.1%; + --card-foreground: 210 20% 98%; + --popover: 224 71.4% 4.1%; + --popover-foreground: 210 20% 98%; + --primary: 210 20% 98%; + --primary-foreground: 220.9 39.3% 11%; + --secondary: 215 27.9% 16.9%; + --secondary-foreground: 210 20% 98%; + --muted: 215 27.9% 16.9%; + --muted-foreground: 217.9 10.6% 64.9%; + --accent: 215 27.9% 16.9%; + --accent-foreground: 210 20% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 84.2% 60.2%; + --border: 215 27.9% 16.9%; + --input: 215 27.9% 16.9%; + --ring: 217.9 10.6% 55.6%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; + --sidebar: 220.9 39.3% 11%; + --sidebar-foreground: 210 20% 98%; + --sidebar-primary: 220 70% 50%; + --sidebar-primary-foreground: 210 20% 98%; + --sidebar-accent: 215 27.9% 16.9%; + --sidebar-accent-foreground: 210 20% 98%; + --sidebar-border: 215 27.9% 16.9%; + --sidebar-ring: 220 13% 43.9%; + } +} + +@layer base { + * { + @apply border-border; + } + html { + @apply scroll-smooth; + } + body { + @apply bg text-foreground; + /* font-feature-settings: "rlig" 1, "calt" 1; */ + font-synthesis-weight: none; + text-rendering: optimizeLegibility; + } +} + +@layer utilities { + .step { + counter-increment: step; + } + + .step:before { + @apply absolute w-9 h-9 bg-muted rounded-full font-mono font-medium text-center text-base inline-flex items-center justify-center -indent-px border-4 border-background; + @apply ml-[-50px] mt-[-4px]; + content: counter(step); + } + + .chunk-container { + @apply shadow-none; + } + + .chunk-container::after { + content: ''; + @apply absolute -inset-4 shadow-xl rounded-xl border; + } +} + +@media (max-width: 640px) { + .container { + @apply px-4; + } +} + +.preview { + --background: 0 0% 100%; + --foreground: 0 0% 14.5%; + --card: 0 0% 100%; + --card-foreground: 0 0% 14.5%; + --popover: 0 0% 100%; + --popover-foreground: 0 0% 14.5%; + --primary: 0 0% 20.5%; + --primary-foreground: 0 0% 98.5%; + --secondary: 0 0% 97%; + --secondary-foreground: 0 0% 20.5%; + --muted: 0 0% 97%; + --muted-foreground: 0 0% 55.6%; + --accent: 0 0% 97%; + --accent-foreground: 0 0% 20.5%; + --destructive: 27.3 24.5% 57.7%; + --destructive-foreground: 27.3 24.5% 57.7%; + --border: 0 0% 92.2%; + --input: 0 0% 92.2%; + --ring: 0 0% 70.8%; + --chart-1: 41.1 22.2% 64.6%; + --chart-2: 184.7 11.8% 60%; + --chart-3: 227.4 7% 39.8%; + --chart-4: 84.4 18.9% 82.8%; + --chart-5: 70.1 18.8% 76.9%; + --radius: 0.625rem; + --sidebar: 0 0% 98.5%; + --sidebar-foreground: 0 0% 14.5%; + --sidebar-primary: 0 0% 20.5%; + --sidebar-primary-foreground: 0 0% 98.5%; + --sidebar-accent: 0 0% 97%; + --sidebar-accent-foreground: 0 0% 20.5%; + --sidebar-border: 0 0% 92.2%; + --sidebar-ring: 0 0% 70.8%; +} + +[data-theme='dark'] .preview, +[data-theme='classic-dark'] .preview { + --background: 0 0% 14.5%; + --foreground: 0 0% 98.5%; + --card: 0 0% 0%; + --card-foreground: 0 0% 98.5%; + --popover: 0 0% 14.5%; + --popover-foreground: 0 0% 98.5%; + --primary: 0 0% 98.5%; + --primary-foreground: 0 0% 20.5%; + --secondary: 0 0% 26.9%; + --secondary-foreground: 0 0% 98.5%; + --muted: 0 0% 26.9%; + --muted-foreground: 0 0% 70.8%; + --accent: 0 0% 26.9%; + --accent-foreground: 0 0% 98.5%; + --destructive: 25.7 14.1% 39.6%; + --destructive-foreground: 25.3 23.7% 63.7%; + --border: 0 0% 26.9%; + --input: 0 0% 26.9%; + --ring: 0 0% 55.6%; + --chart-1: 264.4 24.3% 48.8%; + --chart-2: 162.5 17% 69.6%; + --chart-3: 70.1 18.8% 76.9%; + --chart-4: 303.9 26.5% 62.7%; + --chart-5: 16.4 24.6% 64.5%; + --sidebar: 0 0% 20.5%; + --sidebar-foreground: 0 0% 98.5%; + --sidebar-primary: 264.4 24.3% 48.8%; + --sidebar-primary-foreground: 0 0% 98.5%; + --sidebar-accent: 0 0% 26.9%; + --sidebar-accent-foreground: 0 0% 98.5%; + --sidebar-border: 0 0% 26.9%; + --sidebar-ring: 0 0% 43.9%; +} + +.preview * { + @apply border-border outline-ring/50; +} diff --git a/apps/learn/styles/mdx.css b/apps/learn/styles/mdx.css new file mode 100644 index 00000000000..66ebc271c5c --- /dev/null +++ b/apps/learn/styles/mdx.css @@ -0,0 +1,81 @@ +.dark [data-theme='light'] { + display: none; +} + +.dark [data-theme='dark'] { + display: block; +} + +[data-rehype-pretty-code-fragment] { + @apply relative text-white; +} + +[data-rehype-pretty-code-fragment] code { + @apply grid min-w-full break-words rounded-none border-0 bg-transparent p-0; + counter-reset: line; + box-decoration-break: clone; +} + +[data-rehype-pretty-code-fragment] .line { + @apply px-4 min-h-[1rem] py-0.5 w-full inline-block; +} + +[data-rehype-pretty-code-fragment] [data-line-numbers] .line { + @apply px-2; +} + +[data-rehype-pretty-code-fragment] [data-line-numbers] > .line::before { + @apply text-foreground-muted text-xs; + counter-increment: line; + content: counter(line); + display: inline-block; + width: 1.8rem; + margin-right: 1.4rem; + text-align: right; +} + +[data-rehype-pretty-code-fragment] .line--highlighted { + @apply relative bg-surface-200 dark:bg-surface-100; +} + +[data-rehype-pretty-code-fragment] .line--highlighted { + @apply border-foreground-muted border-l-2; +} + +[data-rehype-pretty-code-fragment] .line-highlighted span { + @apply relative; +} + +[data-rehype-pretty-code-fragment] .word--highlighted { + @apply rounded-md bg-zinc-700/50 border-zinc-700/70 p-1; +} + +.dark [data-rehype-pretty-code-fragment] .word--highlighted { + @apply bg-zinc-900; +} + +[data-rehype-pretty-code-title] { + @apply mt-2 pt-6 px-4 text-sm font-medium; +} + +[data-rehype-pretty-code-title] + pre { + @apply mt-2; +} + +.mdx > .steps:first-child > h3:first-child { + @apply mt-0; +} + +.steps > h3 { + @apply mt-8 mb-4 text-base font-semibold; +} + +/* .preview-grid-background { + position: absolute; + inset: 0; + height: 100%; + width: 100%; + background-image: linear-gradient(to right, #80808012 1px, transparent 1px), + linear-gradient(to bottom, #80808012 1px, transparent 1px); + background-size: 24px 24px; +} */ diff --git a/apps/learn/tailwind.config.js b/apps/learn/tailwind.config.js new file mode 100644 index 00000000000..9b80c0ac1c4 --- /dev/null +++ b/apps/learn/tailwind.config.js @@ -0,0 +1,70 @@ +const config = require('config/tailwind.config') + +module.exports = config({ + darkMode: ['class'], + content: [ + './app/**/*.{js,ts,jsx,tsx}', + './components/**/*.{js,ts,jsx,tsx}', + './registry/**/*.{js,ts,jsx,tsx}', + // purge styles from grid library + // + './../../packages/ui/src/**/*.{tsx,ts,js}', + './../../packages/ui-patterns/src/**/*.{tsx,ts,js}', + ], + theme: { + extend: { + maxWidth: { + site: '128rem', + }, + // The following variables are needed for the shadcn components in the examples to work. They're not clashing + // with the variables in the ui package. + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)', + }, + colors: { + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))', + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))', + }, + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))', + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))', + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))', + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))', + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))', + }, + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + chart: { + 1: 'hsl(var(--chart-1))', + 2: 'hsl(var(--chart-2))', + 3: 'hsl(var(--chart-3))', + 4: 'hsl(var(--chart-4))', + 5: 'hsl(var(--chart-5))', + }, + }, + }, + }, +}) diff --git a/apps/learn/tsconfig.base.json b/apps/learn/tsconfig.base.json new file mode 100644 index 00000000000..d72a9f3a278 --- /dev/null +++ b/apps/learn/tsconfig.base.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Default", + "compilerOptions": { + "composite": false, + "declaration": true, + "declarationMap": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "inlineSources": false, + "isolatedModules": true, + "moduleResolution": "node", + "noUnusedLocals": false, + "noUnusedParameters": false, + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true + }, + "exclude": ["node_modules"] +} diff --git a/apps/learn/tsconfig.json b/apps/learn/tsconfig.json new file mode 100644 index 00000000000..9e21bf5ea57 --- /dev/null +++ b/apps/learn/tsconfig.json @@ -0,0 +1,40 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "tsconfig/base.json", + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "incremental": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "baseUrl": ".", + "paths": { + "@/*": ["./*"], + "@ui/*": ["./../../packages/ui/src/*"], // handle ui package paths + "contentlayer/generated": ["./.contentlayer/generated"] + }, + "plugins": [ + { + "name": "next" + } + ] + }, + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + ".contentlayer/generated", + "./../../packages/ui/src/**/*.d.ts" + ], + "exclude": ["node_modules", "./scripts/build-registry.mts"] +} diff --git a/apps/learn/tsconfig.scripts.json b/apps/learn/tsconfig.scripts.json new file mode 100644 index 00000000000..7d81d8fcb5f --- /dev/null +++ b/apps/learn/tsconfig.scripts.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "es6", + "module": "ESNext", + "moduleResolution": "node", + "esModuleInterop": true, + "isolatedModules": false + }, + "include": [".contentlayer/generated", "scripts/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/apps/learn/types/nav.ts b/apps/learn/types/nav.ts new file mode 100644 index 00000000000..3a4616d7ea9 --- /dev/null +++ b/apps/learn/types/nav.ts @@ -0,0 +1,24 @@ +type supportedFrameworks = 'nextjs' | 'react-router' | 'tanstack' | 'react' | 'vue' | 'nuxtjs' +export interface NavItem { + title: string + href?: string + disabled?: boolean + external?: boolean + new?: boolean + icon?: any // to do: clean up later | keyof typeof Icons + label?: string + supportedFrameworks?: supportedFrameworks[] + requiresAuth?: boolean +} + +export interface NavItemWithChildren extends NavItem { + items?: NavItemWithChildren[] +} + +export interface MainNavItem extends NavItem {} + +export interface SidebarNavItem extends NavItemWithChildren {} + +export interface SidebarNavGroup extends NavItem { + items: (SidebarNavItem & { commandItemLabel: string })[] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ea00fcb037d..faa4dd2006c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -773,6 +773,292 @@ importers: specifier: 'catalog:' version: 3.2.4(@types/node@22.13.14)(@vitest/ui@3.2.4)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.11.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1) + apps/learn: + dependencies: + '@hookform/resolvers': + specifier: ^3.1.1 + version: 3.3.1(react-hook-form@7.47.0(react@18.3.1)) + '@monaco-editor/react': + specifier: ^4.6.0 + version: 4.7.0(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-accordion': + specifier: '*' + version: 1.2.12(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-alert-dialog': + specifier: '*' + version: 1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-aspect-ratio': + specifier: '*' + version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-avatar': + specifier: '*' + version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-checkbox': + specifier: '*' + version: 1.3.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collapsible': + specifier: '*' + version: 1.1.12(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-context-menu': + specifier: '*' + version: 2.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': + specifier: '*' + version: 1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dropdown-menu': + specifier: '*' + version: 2.1.16(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-hover-card': + specifier: '*' + version: 1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-label': + specifier: '*' + version: 2.1.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-menubar': + specifier: '*' + version: 1.1.16(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-navigation-menu': + specifier: '*' + version: 1.2.14(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popover': + specifier: '*' + version: 1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-progress': + specifier: '*' + version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-radio-group': + specifier: '*' + version: 1.3.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-scroll-area': + specifier: '*' + version: 1.2.10(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': + specifier: '*' + version: 2.2.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': + specifier: '*' + version: 1.1.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slider': + specifier: '*' + version: 1.3.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': + specifier: '*' + version: 1.2.4(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-switch': + specifier: '*' + version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tabs': + specifier: '*' + version: 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toast': + specifier: '*' + version: 1.2.14(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle': + specifier: '*' + version: 1.1.10(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle-group': + specifier: '*' + version: 1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tooltip': + specifier: '*' + version: 1.2.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-router/fs-routes': + specifier: ^7.4.0 + version: 7.4.0(@react-router/dev@7.9.6(@types/node@22.13.14)(@vitejs/plugin-rsc@0.5.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@7.1.11(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1)))(babel-plugin-macros@3.1.0)(jiti@2.5.1)(react-router@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(typescript@5.9.2)(vite@7.1.11(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1))(yaml@2.8.1))(typescript@5.9.2) + '@supabase/postgrest-js': + specifier: 'catalog:' + version: 2.94.1 + '@supabase/supa-mdx-lint': + specifier: 0.2.6-alpha + version: 0.2.6-alpha + '@supabase/vue-blocks': + specifier: workspace:* + version: link:../../blocks/vue + '@tanstack/react-query': + specifier: ^5.83.0 + version: 5.83.0(react@18.3.1) + axios: + specifier: ^1.12.0 + version: 1.12.2 + class-variance-authority: + specifier: '*' + version: 0.6.1 + cmdk: + specifier: ^1.0.0 + version: 1.1.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + common: + specifier: workspace:* + version: link:../../packages/common + common-tags: + specifier: ^1.8.2 + version: 1.8.2 + contentlayer2: + specifier: 0.4.6 + version: 0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) + eslint-config-supabase: + specifier: workspace:* + version: link:../../packages/eslint-config-supabase + framer-motion: + specifier: ^11.0.3 + version: 11.11.17(@emotion/is-prop-valid@1.2.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + icons: + specifier: workspace:* + version: link:../../packages/icons + jotai: + specifier: ^2.8.0 + version: 2.8.1(@types/react@18.3.3)(react@18.3.1) + lucide-react: + specifier: '*' + version: 0.511.0(react@18.3.1) + next: + specifier: 'catalog:' + version: 15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + next-contentlayer2: + specifier: 0.4.6 + version: 0.4.6(contentlayer2@0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.25.2)(markdown-wasm@1.2.0)(next@15.5.10(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.56.1)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1) + next-themes: + specifier: ^0.3.0 + version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + openai: + specifier: ^5.9.0 + version: 5.9.0(ws@8.18.3)(zod@3.25.76) + openapi-fetch: + specifier: 0.12.4 + version: 0.12.4 + react: + specifier: 'catalog:' + version: 18.3.1 + react-docgen: + specifier: ^7.0.3 + version: 7.1.1(supports-color@8.1.1) + react-dom: + specifier: 'catalog:' + version: 18.3.1(react@18.3.1) + react-hook-form: + specifier: ^7.45.0 + version: 7.47.0(react@18.3.1) + react-markdown: + specifier: ^10.1.0 + version: 10.1.0(@types/react@18.3.3)(react@18.3.1)(supports-color@8.1.1) + react-wrap-balancer: + specifier: ^1.1.0 + version: 1.1.0(react@18.3.1) + recharts: + specifier: ^2.8.0 + version: 2.15.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rehype-autolink-headings: + specifier: ^7.1.0 + version: 7.1.0 + rehype-pretty-code: + specifier: ^0.9.0 + version: 0.9.11(shiki@1.6.0) + rehype-slug: + specifier: ^6.0.0 + version: 6.0.0 + remark: + specifier: ^14.0.3 + version: 14.0.3(supports-color@8.1.1) + remark-code-import: + specifier: ^1.2.0 + version: 1.2.0 + remark-gfm: + specifier: ^4.0.0 + version: 4.0.1(supports-color@8.1.1) + sonner: + specifier: ^1.5.0 + version: 1.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + ui: + specifier: workspace:* + version: link:../../packages/ui + ui-patterns: + specifier: workspace:* + version: link:../../packages/ui-patterns + unist-util-visit: + specifier: ^5.0.0 + version: 5.0.0 + vaul: + specifier: ^0.9.6 + version: 0.9.9(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + zod: + specifier: 'catalog:' + version: 3.25.76 + devDependencies: + '@react-router/dev': + specifier: ^7.1.5 + version: 7.9.6(@types/node@22.13.14)(@vitejs/plugin-rsc@0.5.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@7.1.11(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1)))(babel-plugin-macros@3.1.0)(jiti@2.5.1)(react-router@7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(typescript@5.9.2)(vite@7.1.11(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1))(yaml@2.8.1) + '@shikijs/compat': + specifier: ^1.1.7 + version: 1.6.0 + '@supabase/ssr': + specifier: ^0.7.0 + version: 0.7.0(@supabase/supabase-js@2.94.1) + '@supabase/supabase-js': + specifier: 'catalog:' + version: 2.94.1 + '@tanstack/react-router': + specifier: ^1.114.27 + version: 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-start': + specifier: ^1.114.25 + version: 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.2(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(pg@8.16.3))(ioredis@5.7.0(supports-color@8.1.1))(jiti@2.5.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(vite@7.1.11(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.8.1) + '@types/common-tags': + specifier: ^1.8.4 + version: 1.8.4 + '@types/lodash': + specifier: ^4.17.16 + version: 4.17.16 + '@types/react': + specifier: 'catalog:' + version: 18.3.3 + '@types/react-dom': + specifier: 'catalog:' + version: 18.3.0 + config: + specifier: workspace:^ + version: link:../../packages/config + dotenv: + specifier: ^17.2.3 + version: 17.2.3 + lodash: + specifier: ^4.17.23 + version: 4.17.23 + mdast-util-toc: + specifier: ^6.1.1 + version: 6.1.1 + postcss: + specifier: ^8.5.3 + version: 8.5.6 + react-dropzone: + specifier: ^14.3.8 + version: 14.3.8(react@18.3.1) + react-router: + specifier: ^7.5.2 + version: 7.12.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rimraf: + specifier: ^4.1.3 + version: 4.4.1 + shadcn: + specifier: ^3.0.0 + version: 3.3.1(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(supports-color@8.1.1)(typescript@5.9.2) + shiki: + specifier: ^1.1.7 + version: 1.6.0 + tailwindcss: + specifier: 'catalog:' + version: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)) + tsconfig: + specifier: workspace:* + version: link:../../packages/tsconfig + tsx: + specifier: 'catalog:' + version: 4.20.3 + typescript: + specifier: 'catalog:' + version: 5.9.2 + vite: + specifier: 'catalog:' + version: 7.1.11(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1) + apps/studio: dependencies: '@ai-sdk/amazon-bedrock': @@ -6574,19 +6860,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dialog@1.1.11': - resolution: {integrity: sha512-yI7S1ipkP5/+99qhSI6nthfo/tR6bL6Zgxi/+1UO6qPa6UeM6nlafWcQ65vB4rU2XjgjMfMhI3k9Y5MztA62VQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-dialog@1.1.15': resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} peerDependencies: @@ -6600,19 +6873,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dialog@1.1.7': - resolution: {integrity: sha512-EIdma8C0C/I6kL6sO02avaCRqi3fmWJpxH6mqbVScorW6nNktzKJT/le7VPho3o/7wCsyRg3z0+Q+Obr0Gy/VQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-direction@1.0.1': resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: @@ -6696,19 +6956,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dismissable-layer@1.1.6': - resolution: {integrity: sha512-7gpgMT2gyKym9Jz2ZhlRXSg2y6cNQIK8d/cqBZ0RBCaps8pFryCWXiUKI+uHGFrhMrbGUP7U6PWgiXzIxoyF3Q==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-dismissable-layer@1.1.7': resolution: {integrity: sha512-j5+WBUdhccJsmH5/H0K6RncjDtoALSEr6jbkaZu+bjw6hOPOhHycr6vEUujl+HBK8kjUfWcoCJXxP6e4lUlMZw==} peerDependencies: @@ -6722,19 +6969,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dropdown-menu@2.0.6': - resolution: {integrity: sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-dropdown-menu@2.1.12': resolution: {integrity: sha512-VJoMs+BWWE7YhzEQyVwvF9n22Eiyr83HotCVrMQzla/OwRovXCgah7AcaEr4hMNj4gJxSdtIbcHGvmJXOoJVHA==} peerDependencies: @@ -6823,19 +7057,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-focus-scope@1.1.3': - resolution: {integrity: sha512-4XaDlq0bPt7oJwR+0k0clCiCO/7lO7NKZTAaJBYxDNQT/vj4ig0/UvctrRscZaFREpRvUTkpKR96ov1e6jptQg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-focus-scope@1.1.4': resolution: {integrity: sha512-r2annK27lIW5w9Ho5NyQgqs0MmgZSTIKXWpVCJaLC1q2kZrZkcqnmHkCHMEmv8XLvsLlurKMPT+kbKkRkm/xVA==} peerDependencies: @@ -7162,19 +7383,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-portal@1.1.5': - resolution: {integrity: sha512-ps/67ZqsFm+Mb6lSPJpfhRLrVL2i2fntgCmGMqqth4eaGUf+knAuuRtWVJrNjUhExgmdRqftSgzpf0DF0n6yXA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-portal@1.1.6': resolution: {integrity: sha512-XmsIl2z1n/TsYFLIdYam2rmFwf9OC/Sh2avkbmVMDuBZIe7hSpM0cYnWPAo7nHOVx8zTuwDZGByfcqLdnzp3Vw==} peerDependencies: @@ -7240,19 +7448,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-presence@1.1.3': - resolution: {integrity: sha512-IrVLIhskYhH3nLvtcBLQFZr61tBG7wx7O3kEmdzcYwRGAEBmBicGGL7ATzNgruYJ3xBTbuzEEq9OXJM3PAX3tA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-presence@1.1.4': resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==} peerDependencies: @@ -7671,19 +7866,6 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-tooltip@1.0.7': - resolution: {integrity: sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-tooltip@1.1.8': resolution: {integrity: sha512-YAA2cu48EkJZdAMHC0dqo9kialOcRStbtiY4nJPaht7Ptrhcvpo+eDChaM6BIs8kL6a8Z5l5poiqLnXcNduOkA==} peerDependencies: @@ -7755,15 +7937,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-controllable-state@1.1.1': - resolution: {integrity: sha512-YnEXIy8/ga01Y1PN0VfaNH//MhA91JlEGVBDxDzROqwrAtG5Yr2QGEPz8A/rJA3C7ZAHryOYGaUv8fLSW2H/mg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@radix-ui/react-use-controllable-state@1.2.2': resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: @@ -9391,6 +9564,9 @@ packages: '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/doctrine@0.0.9': + resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} + '@types/estree-jsx@1.0.1': resolution: {integrity: sha512-sHyakZlAezNFxmYRo0fopDZW+XvK6ipeZkkp5EAOLjdPfZp8VjZBJ67vSRI99RSCAoqXVmXOHS4fnWoxpuGQtQ==} @@ -11747,6 +11923,10 @@ packages: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -11800,8 +11980,8 @@ packages: resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} engines: {node: '>=12'} - dotenv@17.2.2: - resolution: {integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==} + dotenv@17.2.3: + resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==} engines: {node: '>=12'} dotty@0.1.2: @@ -12975,7 +13155,7 @@ packages: glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + deprecated: Glob versions prior to v9 are no longer supported glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -16866,6 +17046,10 @@ packages: '@types/react': optional: true + react-docgen@7.1.1: + resolution: {integrity: sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==} + engines: {node: '>=16.14.0'} + react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -19779,11 +19963,6 @@ packages: peerDependencies: zod: ^3.24.1 - zod-to-json-schema@3.24.6: - resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==} - peerDependencies: - zod: ^3.24.1 - zod-to-json-schema@3.25.0: resolution: {integrity: sha512-HvWtU2UG41LALjajJrML6uQejQhNJx+JBO9IflpSja4R03iNWfKXrj6W2h7ljuLyc1nKS+9yDyL/9tD1U/yBnQ==} peerDependencies: @@ -21047,7 +21226,7 @@ snapshots: '@bsmnt/scrollytelling@0.3.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(gsap@3.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-portal': 1.1.9(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.3(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-slot': 1.2.4(@types/react@18.3.3)(react@18.3.1) gsap: 3.13.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -21373,7 +21552,7 @@ snapshots: '@dotenvx/dotenvx@1.51.0': dependencies: commander: 11.1.0 - dotenv: 17.2.2 + dotenv: 17.2.3 eciesjs: 0.4.15 execa: 5.1.1 fdir: 6.5.0(picomatch@4.0.3) @@ -21814,9 +21993,9 @@ snapshots: dependencies: '@graphiql/toolkit': 0.9.1(@types/node@22.13.14)(graphql-ws@5.14.1(graphql@16.11.0))(graphql@16.11.0) '@headlessui/react': 1.7.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-dialog': 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-dropdown-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-tooltip': 1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dropdown-menu': 2.1.16(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tooltip': 1.2.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-visually-hidden': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/codemirror': 5.60.10 clsx: 1.2.1 @@ -25142,28 +25321,6 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - '@radix-ui/react-dialog@1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-portal': 1.1.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.3)(react@18.3.1) - aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.3(@types/react@18.3.3)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - '@radix-ui/react-dialog@1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.3 @@ -25186,28 +25343,6 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - '@radix-ui/react-dialog@1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.1.2(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-portal': 1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.2.0(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.1(@types/react@18.3.3)(react@18.3.1) - aria-hidden: 1.2.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.6.3(@types/react@18.3.3)(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - '@radix-ui/react-direction@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 @@ -25287,19 +25422,6 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - '@radix-ui/react-dismissable-layer@1.1.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - '@radix-ui/react-dismissable-layer@1.1.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -25313,22 +25435,6 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - '@radix-ui/react-dropdown-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-menu': 2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - '@radix-ui/react-dropdown-menu@2.1.12(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -25407,17 +25513,6 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-scope@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - '@radix-ui/react-focus-scope@1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.3)(react@18.3.1) @@ -25844,16 +25939,6 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - '@radix-ui/react-portal@1.1.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-primitive': 2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -25905,16 +25990,6 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - '@radix-ui/react-presence@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - '@radix-ui/react-presence@1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.3)(react@18.3.1) @@ -26382,27 +26457,6 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - '@radix-ui/react-tooltip@1.0.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.0.2(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.3)(react@18.3.1) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.3 - '@types/react-dom': 18.3.0 - '@radix-ui/react-tooltip@1.1.8(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/primitive': 1.1.1 @@ -26477,13 +26531,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 - '@radix-ui/react-use-controllable-state@1.1.1(@types/react@18.3.3)(react@18.3.1)': - dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@18.3.3)(react@18.3.1) - react: 18.3.1 - optionalDependencies: - '@types/react': 18.3.3 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.3)(react@18.3.1)': dependencies: '@radix-ui/react-use-effect-event': 0.0.2(@types/react@18.3.3)(react@18.3.1) @@ -28840,6 +28887,8 @@ snapshots: '@types/deep-eql@4.0.2': {} + '@types/doctrine@0.0.9': {} + '@types/estree-jsx@1.0.1': dependencies: '@types/estree': 1.0.5 @@ -30318,7 +30367,7 @@ snapshots: chokidar: 4.0.3 confbox: 0.2.2 defu: 6.1.4 - dotenv: 17.2.2 + dotenv: 17.2.3 exsolve: 1.0.7 giget: 2.0.0 jiti: 2.5.1 @@ -31565,6 +31614,10 @@ snapshots: dependencies: esutils: 2.0.3 + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + dom-accessibility-api@0.5.16: {} dom-accessibility-api@0.6.3: {} @@ -31618,7 +31671,7 @@ snapshots: dotenv@16.5.0: {} - dotenv@17.2.2: {} + dotenv@17.2.3: {} dotty@0.1.2: {} @@ -38015,6 +38068,21 @@ snapshots: '@types/node': 22.13.14 '@types/react': 18.3.3 + react-docgen@7.1.1(supports-color@8.1.1): + dependencies: + '@babel/core': 7.28.4(supports-color@8.1.1) + '@babel/traverse': 7.28.4(supports-color@8.1.1) + '@babel/types': 7.28.4 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.6 + '@types/doctrine': 0.0.9 + '@types/resolve': 1.20.6 + doctrine: 3.0.0 + resolve: 1.22.10 + strip-indent: 4.0.0 + transitivePeerDependencies: + - supports-color + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 @@ -39188,7 +39256,7 @@ snapshots: ts-morph: 26.0.0 tsconfig-paths: 4.2.0 zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) + zod-to-json-schema: 3.25.0(zod@3.25.76) transitivePeerDependencies: - '@cfworker/json-schema' - '@types/node' @@ -40881,7 +40949,7 @@ snapshots: vaul@0.9.9(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@radix-ui/react-dialog': 1.1.11(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -41596,10 +41664,6 @@ snapshots: dependencies: zod: 3.25.76 - zod-to-json-schema@3.24.6(zod@3.25.76): - dependencies: - zod: 3.25.76 - zod-to-json-schema@3.25.0(zod@3.25.76): dependencies: zod: 3.25.76

      + ), + td: ({ className, ...props }: React.HTMLAttributes) => ( + + ), + pre: ({ + className, + __rawString__, + __withMeta__, + __src__, + ...props + }: React.HTMLAttributes & { + __rawString__?: string + __withMeta__?: boolean + __src__?: string + }) => { + return ( +
      +
      +        {__rawString__ && (
      +          
      +        )}
      +      
      + ) + }, + code: ({ className, ...props }: React.HTMLAttributes) => ( + + ), + Callout, + CopyButton, + TanStackBeta, + Card: ({ className, ...props }: React.HTMLAttributes) => ( +
      + ), + LinkedCard: ({ className, ...props }: React.ComponentProps) => ( + + ), +} + +interface MdxProps { + code: string +} + +export function Mdx({ code }: MdxProps) { + const Component = useMDXComponent(code, { + style: 'default', + }) + + return ( +
      + +
      + ) +} diff --git a/apps/learn/components/mobile-menu-sheet.tsx b/apps/learn/components/mobile-menu-sheet.tsx new file mode 100644 index 00000000000..4e7c3cc0190 --- /dev/null +++ b/apps/learn/components/mobile-menu-sheet.tsx @@ -0,0 +1,18 @@ +'use client' + +import { useMobileMenu } from '@/hooks/use-mobile-menu' +import { Sheet } from 'ui' + +interface MobileMenuSheetProps { + children: React.ReactNode +} + +export function MobileMenuSheet({ children }: MobileMenuSheetProps) { + const { open, setOpen } = useMobileMenu() + + return ( + + {children} + + ) +} diff --git a/apps/learn/components/next-up.tsx b/apps/learn/components/next-up.tsx new file mode 100644 index 00000000000..b05ee51b4bf --- /dev/null +++ b/apps/learn/components/next-up.tsx @@ -0,0 +1,38 @@ +import Link from 'next/link' +import { ArrowRight } from 'lucide-react' +import { Button } from 'ui' + +interface NextUpProps { + title: string + description: string + href: string + chapterNumber?: number +} + +export function NextUp({ title, description, href, chapterNumber }: NextUpProps) { + return ( +
      +
      +
      +

      Next Up

      +

      + {chapterNumber && {chapterNumber}: } + {title} +

      +

      {description}

      +
      + + + +
      +
      +
      +
      + ) +} diff --git a/apps/learn/components/side-navigation-item.tsx b/apps/learn/components/side-navigation-item.tsx new file mode 100644 index 00000000000..619f4ae6bb1 --- /dev/null +++ b/apps/learn/components/side-navigation-item.tsx @@ -0,0 +1,168 @@ +'use client' + +import Link, { LinkProps } from 'next/link' +import { usePathname } from 'next/navigation' +import React, { useState, useEffect } from 'react' +import { ChevronRight, Lock } from 'lucide-react' + +import { useMobileMenu } from '@/hooks/use-mobile-menu' +import { SidebarNavItem } from '@/types/nav' +import { Badge, cn } from 'ui' + +// We extend: +// 1. LinkProps - for Next.js Link component props (prefetch, etc) +// 2. AnchorHTMLAttributes - for standard HTML anchor props (className, etc) +// We omit href from both since we compute it internally from item.href +interface NavigationItemProps + extends Omit, + Omit, 'href'> { + item: SidebarNavItem + onClick?: (e: React.MouseEvent) => void + level?: number + internalPaths?: string[] + isLoggedIn?: boolean +} + +const NavigationItem: React.FC = ({ + item, + onClick, + level = 0, + internalPaths, + isLoggedIn = true, + ...props +}) => { + const { setOpen } = useMobileMenu() + const pathname = usePathname() + const [isOpen, setIsOpen] = useState(false) + + const pathParts = pathname.split('/') + const slug = pathParts[pathParts.length - 1] + + const hasChildren = item.items && item.items.length > 0 + + // Check if internal content exists for this item and user is logged in + const hasInternal = item.href && internalPaths?.includes(item.href) && isLoggedIn + + // Auto-expand if any child is active + useEffect(() => { + if (hasChildren) { + const hasActiveChild = item.items?.some((child) => { + return pathname === child.href + }) + if (hasActiveChild) { + setIsOpen(true) + } + } + }, [hasChildren, item.items, pathname]) + + // Use item.href if available, otherwise build from slug + let href = item.href + if (!href && slug) { + href = `/docs/${slug}` + } + + // Determine if this link represents the current page + const isActive = pathname === href + + const handleLinkClick = (e: React.MouseEvent) => { + // Close the mobile menu when navigating + setOpen(false) + + // Call the onClick prop if it exists + if (onClick) { + onClick(e) + } + } + + const handleButtonClick = (e: React.MouseEvent) => { + e.preventDefault() + setIsOpen(!isOpen) + } + + const itemClasses = cn( + 'flex text-sm rounded-md transition-colors', + level === 0 ? 'px-3 py-2' : 'px-3 py-1.5', + isActive + ? 'bg-surface-200 text-foreground' + : hasChildren && isOpen + ? 'bg-surface-100 text-foreground' + : 'text-foreground-lighter hover:bg-surface-100 hover:text-foreground' + ) + + return ( +
    2. + {hasChildren ? ( + <> + + {isOpen && ( +
        + {item.items?.map((childItem, i) => ( + + ))} +
      + )} + + ) : ( + <> + + + {item.title} + {item.new && ( + + NEW + + )} + + + {hasInternal && ( + + + + {item.title} (Internal) + + + )} + + )} +
    3. + ) +} + +NavigationItem.displayName = 'NavigationItem' + +export default NavigationItem diff --git a/apps/learn/components/side-navigation.tsx b/apps/learn/components/side-navigation.tsx new file mode 100644 index 00000000000..83c393b68d9 --- /dev/null +++ b/apps/learn/components/side-navigation.tsx @@ -0,0 +1,162 @@ +'use client' + +import Link from 'next/link' +import { useIsLoggedIn, useUser, logOut } from 'common' +import { AuthenticatedDropdownMenu, type menuItem } from 'ui-patterns' +import { LogOut, Settings, UserIcon } from 'lucide-react' +import { useRouter } from 'next/navigation' + +import NavigationItem from '@/components/side-navigation-item' +import { courses } from '@/config/docs' +import { mergeInternalContentIntoSections } from '@/lib/merge-internal-content' +import { SidebarNavItem } from '@/types/nav' +import { CommandMenu } from './command-menu' +import { ThemeSwitcherDropdown } from './theme-switcher-dropdown' + +interface SideNavigationProps { + internalPaths: string[] +} + +function SideNavigation({ internalPaths }: SideNavigationProps) { + const isLoggedIn = useIsLoggedIn() + const user = useUser() + const router = useRouter() + + // First, merge orphaned internal content into their respective sections + // Note: All content is visible to everyone. Auth is only for saving progress. + const coursesWithInternalContent = { + ...courses, + items: mergeInternalContentIntoSections(courses.items, internalPaths), + } + + // User menu for authenticated dropdown + const userMenu: menuItem[][] = [ + [ + { + label: user?.email ?? "You're logged in", + type: 'text', + icon: UserIcon, + }, + { + label: 'Account Preferences', + icon: Settings, + href: 'https://supabase.com/dashboard/account/me', + }, + ], + [ + { + label: 'Logout', + type: 'button', + icon: LogOut, + onClick: async () => { + await logOut() + router.refresh() + }, + }, + ], + ] + + return ( + + ) +} + +export default SideNavigation diff --git a/apps/learn/components/sidebar.tsx b/apps/learn/components/sidebar.tsx new file mode 100644 index 00000000000..7b6e4c93fdd --- /dev/null +++ b/apps/learn/components/sidebar.tsx @@ -0,0 +1,36 @@ +import { Menu } from 'lucide-react' + +import SideNavigation from '@/components/side-navigation' +import { getInternalContentPaths } from '@/lib/get-internal-content' +import { Button, ScrollArea, SheetContent, SheetTrigger } from 'ui' +import { MobileMenuSheet } from './mobile-menu-sheet' +import { ThemeSwitcherDropdown } from './theme-switcher-dropdown' + +export function Sidebar() { + // Get internal content paths on server side + const internalPaths = Array.from(getInternalContentPaths()) + + return ( + <> +
      + + +
      + + + + ) +} diff --git a/apps/learn/components/site-footer.tsx b/apps/learn/components/site-footer.tsx new file mode 100644 index 00000000000..d44c37194ef --- /dev/null +++ b/apps/learn/components/site-footer.tsx @@ -0,0 +1,29 @@ +export function SiteFooter() { + return ( + + ) +} diff --git a/apps/learn/components/tanstack-beta.tsx b/apps/learn/components/tanstack-beta.tsx new file mode 100644 index 00000000000..84c68949adb --- /dev/null +++ b/apps/learn/components/tanstack-beta.tsx @@ -0,0 +1,29 @@ +import { TriangleAlert } from 'lucide-react' +import { Callout } from './callout' + +export default function TanStackBeta() { + return ( +
      + +
      +
      + + Heads up: TanStack Start is in beta. +
      + We're excited to support TanStack Start in our UI library! But since it's still + in beta, things may change quickly — expect breaking changes and some rough edges. + We'll do our best to keep up and make integration with Supabase as smooth as + possible. If you run into issues, have a look at the TanStack docs. + + TanStack Quickstart guide + +
      +
      +
      + ) +} diff --git a/apps/learn/components/theme-switcher-dropdown.tsx b/apps/learn/components/theme-switcher-dropdown.tsx new file mode 100644 index 00000000000..e52a515d143 --- /dev/null +++ b/apps/learn/components/theme-switcher-dropdown.tsx @@ -0,0 +1,91 @@ +'use client' + +import { Moon, Sun } from 'lucide-react' +import { useTheme } from 'next-themes' +import { useEffect, useState } from 'react' + +import { + Button, + DropdownMenu, + DropdownMenuContent, + DropdownMenuLabel, + DropdownMenuRadioGroup, + DropdownMenuRadioItem, + DropdownMenuSeparator, + DropdownMenuTrigger, + RadioGroup_Shadcn_, + Theme, + singleThemes, +} from 'ui' + +const ThemeSwitcherDropdown = () => { + const [mounted, setMounted] = useState(false) + const { theme, setTheme, resolvedTheme } = useTheme() + + /** + * Avoid Hydration Mismatch + * https://github.com/pacocoursey/next-themes?tab=readme-ov-file#avoid-hydration-mismatch + */ + // useEffect only runs on the client, so now we can safely show the UI + useEffect(() => { + setMounted(true) + }, []) + + if (!mounted) { + return null + } + + function SingleThemeSelection() { + return ( +
      + +
      + ) + } + + const iconClasses = 'text-foreground-light group-data-[state=open]:text-foreground' + + return ( + <> + + + + + + Theme + + setTheme(themeValue)} + > + {singleThemes.map((theme: Theme) => ( + + {theme.name} + + ))} + + + + + ) +} + +export { ThemeSwitcherDropdown } diff --git a/apps/learn/components/toc.tsx b/apps/learn/components/toc.tsx new file mode 100644 index 00000000000..d796b845180 --- /dev/null +++ b/apps/learn/components/toc.tsx @@ -0,0 +1,107 @@ +// @ts-nocheck +'use client' + +import * as React from 'react' + +import { TableOfContents } from '@/lib/toc' +import { cn } from '@/lib/utils' +import { useMounted } from '@/hooks/use-mounted' + +interface TocProps { + toc: TableOfContents +} + +export function DashboardTableOfContents({ toc }: TocProps) { + const itemIds = React.useMemo( + () => + toc.items + ? toc.items + .flatMap((item) => [item.url, item?.items?.map((item) => item.url)]) + .flat() + .filter(Boolean) + .map((id) => id?.split('#')[1]) + : [], + [toc] + ) + const activeHeading = useActiveItem(itemIds) + const mounted = useMounted() + + if (!toc?.items || !mounted) { + return null + } + + return ( +
      +

      On This Page

      + +
      + ) +} + +function useActiveItem(itemIds: string[]) { + const [activeId, setActiveId] = React.useState(null) + + React.useEffect(() => { + const observer = new IntersectionObserver( + (entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + setActiveId(entry.target.id) + } + }) + }, + { rootMargin: `0% 0% -80% 0%` } + ) + + itemIds?.forEach((id) => { + const element = document.getElementById(id) + if (element) { + observer.observe(element) + } + }) + + return () => { + itemIds?.forEach((id) => { + const element = document.getElementById(id) + if (element) { + observer.unobserve(element) + } + }) + } + }, [itemIds]) + + return activeId +} + +interface TreeProps { + tree: TableOfContents + level?: number + activeItem?: string +} + +function Tree({ tree, level = 1, activeItem }: TreeProps) { + return tree?.items?.length && level < 3 ? ( +
        + {tree.items.map((item, index) => { + return ( +
      • + + {item.title} + + {item.items?.length ? ( + + ) : null} +
      • + ) + })} +
      + ) : null +} diff --git a/apps/learn/components/use-local-storage.tsx b/apps/learn/components/use-local-storage.tsx new file mode 100644 index 00000000000..0ef31e76346 --- /dev/null +++ b/apps/learn/components/use-local-storage.tsx @@ -0,0 +1,47 @@ +// Reference: https://usehooks.com/useLocalStorage/ + +import { useCallback, useState } from 'react' + +export function useLocalStorage(key: string, initialValue: T) { + // State to store our value + // Pass initial state function to useState so logic is only executed once + const [storedValue, setStoredValue] = useState(() => { + if (typeof window === 'undefined') { + return initialValue + } + + try { + // Get from local storage by key + const item = window.localStorage.getItem(key) + // Parse stored json or if none return initialValue + return item ? JSON.parse(item) : initialValue + } catch (error) { + // If error also return initialValue + console.log(error) + return initialValue + } + }) + + // Return a wrapped version of useState's setter function that ... + // ... persists the new value to localStorage. + const setValue = useCallback( + (value: T | ((val: T) => T)) => { + try { + // Allow value to be a function so we have same API as useState + const valueToStore = value instanceof Function ? value(storedValue) : value + // Save state + setStoredValue(valueToStore) + // Save to local storage + if (typeof window !== 'undefined') { + window.localStorage.setItem(key, JSON.stringify(valueToStore)) + } + } catch (error) { + // A more advanced implementation would handle the error case + console.log(error) + } + }, + [key, storedValue] + ) + + return [storedValue, setValue] as const +} diff --git a/apps/learn/components/what-will-i-learn.tsx b/apps/learn/components/what-will-i-learn.tsx new file mode 100644 index 00000000000..4be8a0522c2 --- /dev/null +++ b/apps/learn/components/what-will-i-learn.tsx @@ -0,0 +1,138 @@ +import { + BarChart3, + CalendarRange, + Database, + History, + Lock, + Network, + Rocket, + Timer, +} from 'lucide-react' +import Image from 'next/image' +import { Card, CardDescription, CardHeader, CardTitle } from 'ui' + +const learningTracks = [ + { + icon: Database, + title: 'Model and manage your data', + description: 'Design relational schemas, automate migrations, and keep your project tidy.', + takeaways: [ + 'set up tables, relationships, and seed data', + 'work with realtime subscriptions and triggers', + 'version and deploy database changes safely', + ], + }, + { + icon: Lock, + title: 'Secure every request', + description: 'Master authentication and Row Level Security to keep data scoped correctly.', + takeaways: [ + 'configure supabase auth providers', + 'write row level security policies with confidence', + 'audit, monitor, and debug access issues fast', + ], + }, + { + icon: Network, + title: 'Go realtime by default', + description: 'Stream updates into your UI with channels, presence, and edge functions.', + takeaways: [ + 'broadcast updates with realtime channels', + 'listen for database changes from the client', + 'connect edge functions to your realtime flows', + ], + }, + { + icon: Rocket, + title: 'Deploy production-grade apps', + description: 'Integrate storage, vector search, and observability for resilient launches.', + takeaways: [ + 'serve files securely from supabase storage', + 'index and query embeddings for ai features', + 'monitor performance and scale without surprises', + ], + }, +] + +export function WhatWillILearn() { + return ( +
      +
      +

      What will I learn?

      + +

      + In the fundamental courses, you'll learn all the basics: +

      +
      + +
      + {learningTracks.map((track) => { + const Icon = track.icon + return ( + + + + + {track.title} + + + {track.description} + + + + ) + })} +
      +
      +

      Smart Office project

      +

      + In the Smart Office project, you'll learn how to build a full-featured Dashboard: +

      +
      +
      + Smart Office project dashboard screenshot +
      +
      +
        +
      • + + + + Real-time room monitoring that tracks live occupancy, sensor readings +
      • +
      • + + + + Booking management with live status filters, calendar integrations. +
      • +
      • + + + + + Advanced analytics that surface 30+ days of utilization trends and patterns. + +
      • +
      • + + + + + Detect capacity issues, open facilities tasks, and track resolution SLAs without + leaving the app. + +
      • +
      +
      +
      +
      +
      + ) +} diff --git a/apps/learn/config/docs.ts b/apps/learn/config/docs.ts new file mode 100644 index 00000000000..f65e051d378 --- /dev/null +++ b/apps/learn/config/docs.ts @@ -0,0 +1,74 @@ +import { SidebarNavGroup } from 'types/nav' + +export const courses: SidebarNavGroup = { + title: 'Courses', + items: [ + { + title: 'Foundations', + href: '/foundations', + items: [ + // ✅ Always visible (no requiresAuth) + { + title: 'Introduction', + href: '/foundations/introduction', + }, + { + title: 'Architecture', + href: '/foundations/architecture', + }, + { + title: 'Data Fundamentals', + href: '/foundations/data-fundamentals', + }, + { + title: 'Authentication', + href: '/foundations/authentication', + }, + { + title: 'Security', + href: '/foundations/security', + }, + { + title: 'Realtime', + href: '/foundations/realtime', + }, + { + title: 'Storage', + href: '/foundations/storage', + }, + { + title: 'Edge Functions', + href: '/foundations/edge-functions', + }, + + { + title: 'Vector Search', + href: '/foundations/vector', + }, + ], + commandItemLabel: 'Foundations', + }, + { + title: 'Project: Smart Office', + href: '/projects/smart-office', + commandItemLabel: 'Project: Smart Office', + }, + { + title: 'Performance & Scaling', + href: '/internals/performance-scaling', + commandItemLabel: 'Supabase Internals: Performance & Scaling', + }, + { + title: 'Debugging & Operations', + href: '/internals/debugging-operations', + commandItemLabel: 'Supabase Internals: Debugging & Operations', + }, + ], +} + +export const COMMAND_ITEMS = [ + ...courses.items.map((item) => ({ + label: item.commandItemLabel, + href: item.href, + })), +] diff --git a/apps/learn/content/foundations/architecture.mdx b/apps/learn/content/foundations/architecture.mdx new file mode 100644 index 00000000000..160e7a8bc5a --- /dev/null +++ b/apps/learn/content/foundations/architecture.mdx @@ -0,0 +1,179 @@ +--- +title: Architecture +description: Learn how Supabase's core products work together. +chapterNumber: 1 + +explore: + - title: Supabase Docs + link: https://supabase.com/docs/guides/database/overview + itemType: doc + - title: Postgres for Beginners + link: https://www.postgresqltutorial.com/ + itemType: doc +--- + +This page explains how Supabase is structured and how its main services work +together. Supabase is built on top of a powerful open source database called +Postgres, but it includes much more than a database. Around Postgres, +Supabase adds services for authentication, serverless functions, file storage, realtime updates, AI-powered search, and easy APIs to access it — all designed to work easily together. + +The goal is to give you a complete backend that feels consistent and connected, +so you can focus on building your app instead of wiring together separate tools. + +--- + +## The mental model + +At the center of Supabase is Postgres. Every other part connects to it. + +```text +Clients (web, mobile, scripts) + | + v + API layer (REST via PostgREST, GraphQL) + | + v + Postgres <---- Realtime (listens for changes) + | ^ + | | + v | + Storage | Auth (manages users) + | | Edge Functions (runs code) + v | Vector Search (pgvector) + Files + URLs Studio, CLI, Policies (RLS) +``` + +You interact with Supabase mainly through the API layer or the client libraries. +The API talks to Postgres, and Postgres enforces security rules that you define. +All the other services stay in sync because they share the same database. + +--- + +## The main components + +### Database (Postgres) + +Your data lives in Postgres tables. You can design tables, columns, and +relationships using SQL or the visual editor in Supabase Studio. Supabase +manages backups, scaling, and migrations for you. + +**Why this matters:** Postgres is a full relational database with features like +foreign keys, indexes, and extensions. Supabase gives you these tools without +the usual setup. + +--- + +### API layer (REST and GraphQL) + +Supabase automatically exposes your tables as APIs using PostgREST (for REST) +and PostGraphile (for GraphQL). You can read, insert, update, and delete rows +with simple HTTP requests. You can also expose your own SQL functions as custom +endpoints. + +**Why this matters:** You can connect any frontend or script directly to your +database without building a separate API server. + +--- + +### Auth (users and tokens) + +Auth manages users and issues tokens that identify them. When someone signs in, +their token is sent with every request, and Postgres uses that identity to apply +the right access rules. + +**Why this matters:** Authentication is built into your database layer, so you +don't need an external service to handle sign-ups or sessions. + +--- + +### Row Level Security (RLS) and policies + +RLS lets you write SQL rules that decide who can read or modify each row in your +tables. These policies apply everywhere — through REST, GraphQL, or Realtime. + +**Why this matters:** Security lives directly in the database. You define it +once, and it's enforced across every API call. + +--- + +### Storage (files and buckets) + +Storage provides an S3-style interface for storing files such as images, videos, +and documents. File metadata lives in Postgres, so you can apply the same access +policies you use for your data. + +**Why this matters:** File access and data access follow the same security rules, +which keeps your system consistent and simple. + +--- + +### Realtime + +Realtime listens to changes in Postgres and sends them to connected clients over +WebSocket. You can subscribe to table events and see updates as they happen. + +**Why this matters:** You can build collaborative or live-updating interfaces +without managing your own socket server. + +--- + +### Edge Functions + +Edge Functions let you run server-side JavaScript or TypeScript using Deno. +They're good for webhooks, background tasks, and any logic that shouldn't run +on the client. + +**Why this matters:** You can write custom backend logic without maintaining a +full server or worrying about scaling. + +--- + +### Vector Search + +The pgvector extension adds support for storing and searching **embeddings** — +numerical representations of text, images, or other data. This allows you to +search by meaning, not just by keywords. + +**Why this matters:** You can add AI-style semantic search or recommendations +directly to your database. + +--- + +### Studio and CLI + +Supabase Studio is the web dashboard for managing your project: running SQL, +browsing data, editing policies, and managing users. The CLI is for local +development and migrations, so your schema can live alongside your code. + +**Why this matters:** You can move smoothly between GUI and code, keeping your +database versioned and reproducible. + +--- + +## How everything connects + +When your app makes a request, it goes through a simple path: + +1. The client calls a Supabase API endpoint, sending a project key and (usually) + a user token. +2. The API turns that request into a SQL query. +3. Postgres runs the query and applies any RLS policies. +4. The API returns the results as JSON. +5. If there are changes, Realtime broadcasts them to any connected clients that + are allowed to see them. + +Edge Functions can follow the same pattern — they can call the APIs or connect +directly to Postgres when they need more control. + +--- + +## Why this architecture helps + +- **Everything shares one source of truth:** Postgres is at the center. +- **Security is consistent:** RLS policies apply across every service. +- **No separate backend required:** APIs are generated automatically from you database. +- **You can grow gradually:** Start with just a table, add realtime, storage, or functions later. +- **It's just Postgres:** You can use standard SQL, extensions, and tools. + +Supabase gives you the power of Postgres with the convenience of a fully +integrated backend platform. diff --git a/apps/learn/content/foundations/authentication.mdx b/apps/learn/content/foundations/authentication.mdx new file mode 100644 index 00000000000..7c2935d5a76 --- /dev/null +++ b/apps/learn/content/foundations/authentication.mdx @@ -0,0 +1,125 @@ +--- +title: Authentication +description: Learn how to manage users, and how signed-in requests connect to the database. +chapterNumber: 3 +--- + +Most applications need to know who is using them. Authentication is how we identify +a user and attach their actions to their own data. Supabase Authentication works closely with the database, so each request carries the user's identity. + +Authentication in Supabase is handled by the Supabase Auth service. It manages creating accounts, signing in, and identifying the user on each request. + +--- + +## Users + +A user in Supabase has an id and some optional profile information (such as +email, phone number, name, etc.). When someone signs up, Supabase creates a new user record and assigns +them a unique identifier. + +You do not need to create or manage the users table yourself. Supabase stores it +internally and keeps it updated. + +Example of the kind of data Supabase stores for a user: + +```text +id: 74d23f1b-1c94-3e7b-4d6a-9fa71e2a3c4ba987 +email: maria@example.com +created_at: 2025-01-12 09:44:21 +updated_at: 2025-01-12 09:44:21 +last_sign_in_at: 2025-01-12 09:44:21 +``` + +You can reference this user id in your tables when you want to link data to a +specific user. + +For example, you can associate notes with a user by storing the user's id in the note table. + +```text +| id | user_id | content | created_at | +|----|--------------------------------------|------------------|----------------------| +| 1 | 9f1b1c94-3e7b-4d6a-9fa7-1e2a3c4ba987 | Buy groceries | 2025-01-10 14:22:11 | +| 2 | 9f1b1c94-3e7b-4d6a-9fa7-1e2a3c4ba987 | Call the dentist | 2025-01-10 15:08:54 | +``` + +--- + +## Tokens and identity + +When a user signs in, Supabase returns a token. This token proves who the user +is. This token is stored locally (usually in memory or local +storage) and automatically included in each API request. + +Inside the database, this token becomes the value returned by `auth.uid()`. +This lets security policies decide which data belongs to which user. + +For example: + +```text +select auth.uid(); +``` + +returns the id of the signed-in user who made the request. + +--- + +## Sign up and sign in + +Supabase Auth supports several sign-in methods: + +- Email and password +- Magic links (sign in by clicking a link in an email) +- Social providers (Google, GitHub, etc.) +- Phone number (SMS) + +For now, we will use email and password, since it is the simplest starting point. + +--- + +## Where authentication connects to data + +Authentication tells us who the user is. But it does not decide what they are +allowed to access. To handle that part, we use a Postgres feature called Row Level Security (RLS). + +RLS lets the database check each row before returning it. The database uses the +user's id to decide whether that row should be visible or changeable. This means +the rules for access live inside the database itself, not in the application +code. + +From our previous notes example, RLS would allow a user to select only their own notes, but not the notes of other users. + +So the flow looks like this: + +```text +| id | user_id | content | created_at | +|----|--------------------------------------|------------------|----------------------| +| 1 | 9f1b1c94-3e7b-4d6a-9fa7-1e2a3c4ba987 | Buy groceries | 2025-01-10 14:22:11 | +| 2 | 9f1b1c94-3e7b-4d6a-9fa7-1e2a3c4ba987 | Call the dentist | 2025-01-10 15:08:54 | +``` + +```text +User signs in +↓ +Supabase gives the client a user token +↓ +Client sends token with API requests +↓ +Postgres receives token and sets auth.uid() +↓ +RLS policies use auth.uid() to enforce access rules +``` + +Authentication says who the user is. +RLS decides what they are allowed to do. + +--- + +## What we learned + +- Supabase Auth manages user accounts and sign-in. +- Each user has a unique id that you can reference in your tables. +- When a user signs in, Supabase provides a token. +- The token tells the database who the user is through `auth.uid()`. +- Authentication by itself does not control access. RLS does that part. + +Understanding this identity flow is important before we begin writing policies. diff --git a/apps/learn/content/foundations/data-fundamentals.mdx b/apps/learn/content/foundations/data-fundamentals.mdx new file mode 100644 index 00000000000..e355449f432 --- /dev/null +++ b/apps/learn/content/foundations/data-fundamentals.mdx @@ -0,0 +1,144 @@ +--- +title: Data Fundamentals +description: 'Learn how data is structured in Postgres: tables, rows, columns, and keys.' +chapterNumber: 2 + +explore: + - title: Supabase Docs + link: https://supabase.com/docs/guides/database/overview + itemType: doc + - title: Postgres for Beginners + link: https://www.postgresqltutorial.com/ + itemType: reference +--- + +Before we store any information in Supabase, we need to understand how data is +organized in Postgres. Supabase uses Postgres as its database, which means data +is arranged in a structured and predictable way. This helps keep your app +organized, consistent, and easy to query. + +The core ideas are simple: you create tables to hold related data, and each +table has rows (records) and columns (fields). Once you understand that pattern, +you can model almost anything. + +--- + +## Tables, rows, and columns + +A table is like a spreadsheet. It has: + +- **Columns**: the fields that define what kind of data the table stores +- **Rows**: the individual entries in the table + +Imagine a table for storing notes: + +```text +| id | content | created_at | +|----|------------------|----------------------| +| 1 | Buy groceries | 2025-01-10 14:22:11 | +| 2 | Call the dentist | 2025-01-10 15:08:54 | +``` + +- Each **row** is a single note. +- Each **column** represents one piece of information about the note. + +--- + +## Data types + +Every column has a data type. This describes the kind of value that can be +stored there. + +Some common data types: + +```text +| Data type | Example value | Meaning | +| ----------- | ---------------- | ----------------------------- | +| text | Hello world | A string of characters | +| integer | 42 | A number without decimals | +| boolean | true | Yes/no or on/off values | +| timestamptz | 2025-01-10 14:22 | Date and time (with timezone) | +| json | {"name": "John"} | A JSON object | +``` + +Choosing correct types makes your data easier to work with and protects you from +unexpected values. + +--- + +## Primary keys + +Most tables include a primary key. This is a column that uniquely identifies each +row. In many Supabase projects, this column is named `id` and uses a type called +`uuid`, which automatically generates a unique value. + +You create this column in the table definition like this: + +```text +id uuid primary key default gen_random_uuid() +``` + +You generally don't need to think about it after setting it up. It simply gives +each record a stable identity. + +--- + +## Relationships between tables + +You can link tables together using foreign keys. This is how you express things +like: + +- A user has many notes +- A project has many tasks +- A team has many members + +For example: + +```text +| id | user_id | content | created_at | +|----|--------------------------------------|------------------|----------------------| +| 1 | 9f1b1c94-3e7b-4d6a-9fa7-1e2a3c4ba987 | Buy groceries | 2025-01-10 14:22:11 | +| 2 | 9f1b1c94-3e7b-4d6a-9fa7-1e2a3c4ba987 | Call the dentist | 2025-01-10 15:08:54 | +``` + +Here, `user_id` refers to a row in a `users` table. This means the note belongs +to that user, and we can see that this user has two notes. + +Relationships let you organize data without repeating information. + +--- + +## Why relational data is useful in practice + +Relational data is really useful in practice because it allows you to: + +- Keep data valid with constraints
      + _Example: no duplicate emails._ + +- Link records safely with foreign keys
      + _Example: delete a user and their notes in one action._ + +- Express real permissions with RLS
      + _Example: users can read their own notes; admins can read all._ + +- Query exactly what you need with table joins
      + _Example: fetch notes with the author's email._ + +--- + +## What we learned + +A database in Supabase is made up of tables. +Each table has: + +- columns (which describe the type of information stored) +- rows (the individual pieces of data in that table) + +You can relate tables to each other using foreign keys. +This lets you model real situations, such as: + +- a user has many notes +- a team has many members +- a project has many tasks + +Thinking in tables, rows, and relationships is the foundation of working with data in Supabase. diff --git a/apps/learn/content/foundations/edge-functions.mdx b/apps/learn/content/foundations/edge-functions.mdx new file mode 100644 index 00000000000..add8c13d7d2 --- /dev/null +++ b/apps/learn/content/foundations/edge-functions.mdx @@ -0,0 +1,7 @@ +--- +title: Edge Functions +description: 'Learn how to run custom backend logic close to your users, using Deno and the Supabase serverless runtime.' +chapterNumber: 6 +--- + +Soon... diff --git a/apps/learn/content/foundations/index.mdx b/apps/learn/content/foundations/index.mdx new file mode 100644 index 00000000000..11b9e1111ab --- /dev/null +++ b/apps/learn/content/foundations/index.mdx @@ -0,0 +1,69 @@ +--- +title: Supabase Foundations +description: Learn the foundations of Supabase, the Postgres development platform. +courseHero: + title: Supabase Foundations + subtitle: Learn the foundations of Supabase, the Postgres development platform. + description: In this short course, you'll explore how Supabase brings together **Database**, **Auth**, **Storage**, **Edge Functions**, and **Realtime** into a unified developer platform. + instructors: + - name: Jane Doe + gradientFrom: '#00c3ff' + gradientTo: '#ffff1c' + - name: John Doe + gradientFrom: '#ff00ea' +--- + +In this short course, you'll explore how Supabase brings together **Database**, **Auth**, **Storage**, **Edge Functions**, and **Realtime** into a unified developer platform. + +By the end, you'll understand how each piece of Supabase fits together, how to persist and protect your data, and how to start confidently building your own applications. + +## What you'll learn + +- **Architecture**: how Supabase's core products work together. +- **Data fundamentals**: create tables, insert and retrieve data, and explore our generated APIs. +- **Authentication**: create and sign in users, and make secure requests. +- **Security**: enable Row Level Security (RLS) and write policies to protect your data. +- **Storage**: upload and serve files using buckets. +- **Edge Functions**: run custom backend logic close to your users, using Deno and Supabase's serverless runtime. +- **Vector search**: store and query embeddings for AI-powered search and recommendations. + +--- + +## Prerequisites + +- A [Supabase account](https://supabase.com/) (free) +- Basic familiarity with a terminal to run queries. + +--- + +## Course outline + +The course is split into 7 chapters, each approximately 10 minutes long. + +1. **What is Supabase?** + Get an overview of Supabase's architecture and core products. Create your first project and make a simple API call. +2. **Your First Table** + Create a Postgres table in Supabase, insert data, and query it through the REST API. +3. **Authentication Basics** + Add users, sign them in, and understand how Supabase secures your APIs with JWTs. +4. **Secure Your Data with Row-Level Security** + Enable Row-Level Security and write policies to ensure users only access their own data. +5. **Storage** + Store files in Supabase Storage and upload and serve files from your buckets. +6. **Edge Functions** + Deploy simple functions to run backend logic close to your users using Deno. +7. **Vector Search** + Store and query embeddings for AI-powered search and recommendations using Supabase Vector. + +--- + +## Before you begin + +Create a new project at [supabase.com](https://supabase.com), open the **Supabase Dashboard**, and grab your **API URL** and **anon key** from the [Connect dialog](https://supabase.com/dashboard/project/_/settings/api?showConnect=true&connectTab=frameworks). +You'll use them throughout the course to send real requests to your database and APIs. + +--- + +## Duration + +Approx. **1 hour** — a fast, hands-on introduction to the Supabase platform. diff --git a/apps/learn/content/foundations/introduction.mdx b/apps/learn/content/foundations/introduction.mdx new file mode 100644 index 00000000000..4c378e9efe5 --- /dev/null +++ b/apps/learn/content/foundations/introduction.mdx @@ -0,0 +1,79 @@ +--- +title: Supabase Foundations +description: Learn the foundations of Supabase, the Postgres development platform. + +explore: + - title: Supabase Docs + link: https://supabase.com/docs + itemType: doc + +courseHero: + title: Supabase Foundations + subtitle: Learn the foundations of Supabase, the Postgres development platform. + description: In this short course, you'll explore how Supabase brings together **Database**, **Auth**, **Storage**, **Edge Functions**, and **Realtime** into a unified developer platform. + stats: + - label: 5 Chapters + icon: book-open + accent: emerald + - label: ~1 hour + icon: clock + accent: blue + - label: Beginner + icon: zap + accent: amber +--- + +In this short course, you'll explore how Supabase brings together **Database**, **Auth**, **Storage**, **Edge Functions**, and **Realtime** into a unified developer platform. + +By the end, you'll understand how each piece of Supabase fits together, how to persist and protect your data, and how to start confidently building your own applications. + +## What you'll learn + +- **Architecture**: how Supabase's core products work together. +- **Data fundamentals**: create tables, insert and retrieve data, and explore our generated APIs. +- **Authentication**: create and sign in users, and make secure requests. +- **Security**: enable Row Level Security (RLS) and write policies to protect your data. +- **Storage**: upload and serve files using buckets. +- **Edge Functions**: run custom backend logic close to your users, using Deno and Supabase's serverless runtime. +- **Vector search**: store and query embeddings for AI-powered search and recommendations. + +--- + +## Prerequisites + +- A [Supabase account](https://supabase.com/) (free) +- Basic familiarity with a terminal to run queries. + +--- + +## Course outline + +The course is split into 7 chapters, each approximately 10 minutes long. + +1. **What is Supabase?** + Get an overview of Supabase's architecture and core products. Create your first project and make a simple API call. +2. **Your First Table** + Create a Postgres table in Supabase, insert data, and query it through the REST API. +3. **Authentication Basics** + Add users, sign them in, and understand how Supabase secures your APIs with JWTs. +4. **Secure Your Data with Row-Level Security** + Enable Row-Level Security and write policies to ensure users only access their own data. +5. **Storage** + Store files in Supabase Storage and upload and serve files from your buckets. +6. **Edge Functions** + Deploy simple functions to run backend logic close to your users using Deno. +7. **Vector Search** + Store and query embeddings for AI-powered search and recommendations using Supabase Vector. + +--- + +## Before you begin + +Create a new project at [supabase.com](https://supabase.com), open the **Supabase Dashboard**, and grab your **API URL** and **anon key** from the [Connect dialog](https://supabase.com/dashboard/project/_/settings/api?showConnect=true&connectTab=frameworks). +You'll use them throughout the course to send real requests to your database and APIs. + +--- + +## Duration + +Approx. **1 hour** — a fast, hands-on introduction to the Supabase platform. diff --git a/apps/learn/content/foundations/quickstart.mdx b/apps/learn/content/foundations/quickstart.mdx new file mode 100644 index 00000000000..e33c066d63f --- /dev/null +++ b/apps/learn/content/foundations/quickstart.mdx @@ -0,0 +1,77 @@ +--- +title: Quick Start +description: Install shadcn/ui and use the components in your project +--- + +## Set up shadcn/ui + +Start by installing [shadcn/ui](https://ui.shadcn.com/) in your project. Use the appropriate setup guide linked below for your framework of choice. + +If you're already using a recent version of shadcn/ui in your existing project, you can skip this step—this library should work with your current setup. However, if you encounter issues, try deleting your existing `components.json` file and follow one of the guides to reset your setup. + +
      + + + Next.js + + +

      Next.js

      +
      +

      + `$``npx create-next-app -e with-supabase` +

      + +
      +
      + + + + +

      React Router

      +
      + + + + +

      TanStack Start

      +
      + + + React SPA + + +

      React SPA

      +
      +
      + + + +When you've finished setting up shadcn/ui, you can start exploring the components in the sidebar + +## Troubleshooting + +If you encounter issues, try deleting your existing `components.json` file and follow one of the guides to reset your setup. + +For issues and questions about specific frameworks, see the [FAQs](/ui/docs/getting-started/faq) diff --git a/apps/learn/content/foundations/realtime.mdx b/apps/learn/content/foundations/realtime.mdx new file mode 100644 index 00000000000..2ec81c00f5b --- /dev/null +++ b/apps/learn/content/foundations/realtime.mdx @@ -0,0 +1,7 @@ +--- +title: Realtime +description: 'Learn how to build real-time applications with Supabase.' +chapterNumber: 6 +--- + +Soon... diff --git a/apps/learn/content/foundations/security.mdx b/apps/learn/content/foundations/security.mdx new file mode 100644 index 00000000000..2dd21f181b6 --- /dev/null +++ b/apps/learn/content/foundations/security.mdx @@ -0,0 +1,112 @@ +--- +title: Security +description: Learn how Supabase uses Row Level Security (RLS) to control which data each user can access. +chapterNumber: 4 +explore: + - title: Supabase Docs + link: https://supabase.com/docs/guides/database/postgres/row-level-security + itemType: doc + - title: RLS and Policies + link: https://www.youtube.com/watch?v=WAa3a-HxLVs + itemType: video +--- + +Authentication tells us who the user is. But we still need to decide what data +each user is allowed to see or change. Supabase handles this using a Postgres +feature called Row Level Security (RLS). + +RLS lets the database check each row before returning it. For every request, the +database asks: _should this user be allowed to access this row?_ + +Here is an example of a table with some notes: + +```text ++--------------------------------------------------------------------------+ +| user_id | content | created_at | ++---------+------------------+---------------------------------------------+ +| 1 | Buy groceries | 2025-01-10 14:22:11 | ← belongs to user Alice +| 2 | Call the dentist | 2025-01-10 15:08:54 | ← belongs to user Bob ++--------------------------------------------------------------------------+ +``` + +Because this check happens in the database, the rules can be applied to every request: +REST, GraphQL, Realtime, and Edge Functions all follow the same security +behavior. There is no separate code path to maintain. + +--- + +## Enabling RLS + +RLS is turned off by default so you can design your tables first. Once you are +ready to secure a table, you turn it on via the Dashboard or via SQL: + +```text +ALTER TABLE users ENABLE ROW LEVEL SECURITY; +``` + +Enabling RLS does not allow any access. It simply tells Postgres that row access +must now follow policies. + +At this point, your table becomes locked down. No one can read or write data +until you add policies. + +--- + +## Policies + +A policy is a rule that describes who can do what. Policies are written in SQL, +but we will use very small, readable examples. + +Example: Allow a signed-in user to see only their own rows. + +```text +create policy "Users can view their own notes" +on notes +for select +using (user_id = auth.uid()); +``` + +Explanation: + +- `for select` means the policy applies to reading rows +- `auth.uid()` is the id of the signed-in user +- The user is only allowed to read rows where the `user_id` matches theirs + +This gives us personal data isolation without writing any backend code. + +--- + +## A mental model for policies + +Think of policies as sentences: +`Allow X to do Y when Z is true.` + +For example: + +```text +Allow a user to read a note when they created it. +Allow a user to update a note when they created it. +Allow a user to delete an item when they own the project it belongs to. +Allow an admin to do everything. +``` + +Policies describe access in plain language. +SQL just expresses the rule. + +In a typical app, a table may have one policy or several. Each policy represents +a small piece of business logic — who can do what and under what conditions. +Together, they form the full access rules for that table. + +--- + +## What we learned + +- Authentication identifies the user. +- RLS decides what data that user can access. +- RLS is a Postgres feature that checks every row before returning it. +- When RLS is enabled, access is blocked until policies are added. +- Policies describe who can read or write data and under what conditions. +- `auth.uid()` gives you the id of the signed-in user, which is used in policy + conditions. + +Understanding RLS is the foundation of secure Supabase applications. diff --git a/apps/learn/content/foundations/storage.mdx b/apps/learn/content/foundations/storage.mdx new file mode 100644 index 00000000000..c27587a9081 --- /dev/null +++ b/apps/learn/content/foundations/storage.mdx @@ -0,0 +1,7 @@ +--- +title: Storage +description: 'Learn how to store files in Supabase using buckets.' +chapterNumber: 5 +--- + +Soon... diff --git a/apps/learn/content/foundations/vector.mdx b/apps/learn/content/foundations/vector.mdx new file mode 100644 index 00000000000..2e8e5a93919 --- /dev/null +++ b/apps/learn/content/foundations/vector.mdx @@ -0,0 +1,7 @@ +--- +title: Vector Search +description: 'Learn how to store and query embeddings for AI-powered search and recommendations.' +chapterNumber: 8 +--- + +Soon... diff --git a/apps/learn/content/internal/foundations/grafana.mdx b/apps/learn/content/internal/foundations/grafana.mdx new file mode 100644 index 00000000000..b756b9a1350 --- /dev/null +++ b/apps/learn/content/internal/foundations/grafana.mdx @@ -0,0 +1,8 @@ +--- +title: Grafana +description: 'Learn how to use Grafana' +chapterNumber: 8 +--- + +This is an internal guide for Grafana. +It doesn't have an external equivalent. diff --git a/apps/learn/content/internal/foundations/realtime.mdx b/apps/learn/content/internal/foundations/realtime.mdx new file mode 100644 index 00000000000..82de849b829 --- /dev/null +++ b/apps/learn/content/internal/foundations/realtime.mdx @@ -0,0 +1,7 @@ +--- +title: Realtime +description: 'Learn how to build real-time applications with Supabase.' +chapterNumber: 6 +--- + +This is the internal realtime guide. diff --git a/apps/learn/content/platform/platform-kit.mdx b/apps/learn/content/platform/platform-kit.mdx new file mode 100644 index 00000000000..85ec55eb21c --- /dev/null +++ b/apps/learn/content/platform/platform-kit.mdx @@ -0,0 +1,103 @@ +--- +title: Platform Kit +description: The easiest way to build platforms on top of Supabase +--- + + + +## Installation + +See the [Supabase Platform Kit documentation](https://supabase.com/docs) for installation instructions. + +## Introduction + +The Platform Kit is a collection of customizable API's, hooks and components you can use to provide an embedded Supabase experience within your own platform. It comes in the form of a single dialog that enables the management of database, authentication, storage, users, secrets, logs, and performance monitoring. + +**Features** + +- Database, Auth, Storage, User, Secrets, Logs, and Performance management +- Responsive dialog/drawer interface (desktop & mobile) +- API proxy for Management API +- AI-powered SQL generation (optional) +- Customize to your liking + +## Who is it for + +Anyone who is providing Postgres databases to their users. + +## Usage + +Embed the manager dialog in your app and manage its state: + +```tsx +import { useState } from 'react' +import { useMobile } from '@/hooks/use-mobile' +import { Button } from '@/components/ui/button' +import SupabaseManagerDialog from '@/components/supabase-manager' + +export default function Example() { + const [open, setOpen] = useState(false) + const projectRef = 'your-project-ref' // Replace with your actual project ref + const isMobile = useMobile() + + return ( + <> + + + + ) +} +``` + +## Quick Start + +1. **Set up environment variables:** in your `.env.local` file: + + ```bash + SUPABASE_MANAGEMENT_API_TOKEN=your-personal-access-token + NEXT_PUBLIC_ENABLE_AI_QUERIES=true + OPENAI_API_KEY=your-openai-api-key + ``` + +2. **Add project-level authentication checks** in your API proxy at `app/api/supabase-proxy/[...path]/route.ts` as well as your ai/sql route at `app/api/ai/sql/route.ts` to ensure only authorized users can access their own project resources. + +3. **Add a Toaster for notifications:** + Place the following component at the root of your app (e.g., in your `layout.tsx` or `App.tsx`) to enable toast notifications: + + ```tsx + import { Toaster } from '@/components/ui/sonner' + + export default function RootLayout({ children }) { + return ( + + + +
      {children}
      + + + + ) + } + ``` + +That's it! The default setup uses your Supabase personal access token for the Management API. + +## Security + +- Never expose your Management API token to the client +- Always implement authentication and permission checks in your proxy + +## Further reading + +- [Supabase Management API](https://supabase.com/docs/reference/api/introduction) diff --git a/apps/learn/contentlayer.config.js b/apps/learn/contentlayer.config.js new file mode 100644 index 00000000000..e031de9fc25 --- /dev/null +++ b/apps/learn/contentlayer.config.js @@ -0,0 +1,254 @@ +import { getHighlighter, loadTheme } from '@shikijs/compat' +import { defineDocumentType, defineNestedType, makeSource } from 'contentlayer2/source-files' +import path from 'path' +import rehypeAutolinkHeadings from 'rehype-autolink-headings' +import rehypePrettyCode from 'rehype-pretty-code' +import rehypeSlug from 'rehype-slug' +import { codeImport } from 'remark-code-import' +import remarkGfm from 'remark-gfm' +import { visit } from 'unist-util-visit' + +/** @type {import('contentlayer2/source-files').ComputedFields} */ +const computedFields = { + slug: { + type: 'string', + resolve: (doc) => `/${doc._raw.flattenedPath}`, + }, + slugAsParams: { + type: 'string', + resolve: (doc) => doc._raw.flattenedPath, + }, +} + +const LinksProperties = defineNestedType(() => ({ + name: 'LinksProperties', + fields: { + doc: { + type: 'string', + }, + api: { + type: 'string', + }, + }, +})) + +const ExploreItem = defineNestedType(() => ({ + name: 'ExploreItem', + fields: { + title: { + type: 'string', + required: true, + }, + link: { + type: 'string', + required: true, + }, + itemType: { + type: 'string', + required: false, + }, + description: { + type: 'string', + required: false, + }, + }, +})) + +const CourseHero = defineNestedType(() => ({ + name: 'CourseHero', + fields: { + title: { + type: 'string', + required: true, + }, + subtitle: { + type: 'string', + required: true, + }, + description: { + type: 'string', + required: true, + }, + }, +})) + +const NestedProperties = defineNestedType(() => ({ + name: 'NestedProperties', + fields: { + radix: { + type: 'boolean', + }, + shadcn: { + type: 'boolean', + }, + vaul: { + type: 'boolean', + }, + inputOtp: { + type: 'boolean', + }, + reactAccessibleTreeview: { + type: 'boolean', + }, + }, +})) + +export const Doc = defineDocumentType(() => ({ + name: 'Doc', + filePathPattern: `**/*.mdx`, + contentType: 'mdx', + fields: { + title: { + type: 'string', + required: true, + }, + description: { + type: 'string', + required: true, + }, + published: { + type: 'boolean', + default: true, + }, + links: { + type: 'nested', + of: LinksProperties, + }, + featured: { + type: 'boolean', + default: false, + required: false, + }, + component: { + type: 'boolean', + default: false, + required: false, + }, + fragment: { + type: 'boolean', + default: false, + required: false, + }, + toc: { + type: 'boolean', + default: true, + required: false, + }, + chapterNumber: { + type: 'number', + required: false, + }, + explore: { + type: 'list', + of: ExploreItem, + required: false, + }, + courseHero: { + type: 'nested', + of: CourseHero, + required: false, + }, + source: { + type: 'nested', + of: NestedProperties, + }, + }, + computedFields, +})) + +export default makeSource({ + contentDirPath: './content', + documentTypes: [Doc], + mdx: { + remarkPlugins: [remarkGfm, codeImport], + rehypePlugins: [ + rehypeSlug, + () => (tree) => { + visit(tree, (node) => { + if (node?.type === 'element' && node?.tagName === 'pre') { + const [codeEl] = node.children + if (codeEl.tagName !== 'code') { + return + } + + if (codeEl.data?.meta) { + // Extract event from meta and pass it down the tree. + const regex = /event="([^"]*)"/ + const match = codeEl.data?.meta.match(regex) + if (match) { + node.__event__ = match ? match[1] : null + codeEl.data.meta = codeEl.data.meta.replace(regex, '') + } + } + + node.__rawString__ = codeEl.children?.[0].value + node.__src__ = node.properties?.__src__ + node.__style__ = node.properties?.__style__ + } + }) + }, + [ + rehypePrettyCode, + // rehypePrettyCodeOptions, + { + getHighlighter: async () => { + const theme = await loadTheme(path.join(process.cwd(), '/lib/themes/supabase-2.json')) + return await getHighlighter({ theme }) + }, + onVisitLine(node) { + // Prevent lines from collapsing in `display: grid` mode, and allow empty + // lines to be copy/pasted + if (node.children.length === 0) { + node.children = [{ type: 'text', value: ' ' }] + } + }, + onVisitHighlightedLine(node) { + node.properties.className.push('line--highlighted') + }, + onVisitHighlightedWord(node) { + node.properties.className = ['word--highlighted'] + }, + }, + ], + () => (tree) => { + visit(tree, (node) => { + if (node?.type === 'element' && node?.tagName === 'div') { + if (!('data-rehype-pretty-code-fragment' in node.properties)) { + return + } + + const preElement = node.children.at(-1) + if (preElement.tagName !== 'pre') { + return + } + + preElement.properties['__withMeta__'] = node.children.at(0).tagName === 'div' + preElement.properties['__rawString__'] = node.__rawString__ + + if (node.__src__) { + preElement.properties['__src__'] = node.__src__ + } + + if (node.__event__) { + preElement.properties['__event__'] = node.__event__ + } + + if (node.__style__) { + preElement.properties['__style__'] = node.__style__ + } + } + }) + }, + // rehypeNpmCommand, + [ + rehypeAutolinkHeadings, + { + properties: { + className: ['subheading-anchor'], + ariaLabel: 'Link to section', + }, + }, + ], + ], + }, +}) diff --git a/apps/learn/context/framework-context.tsx b/apps/learn/context/framework-context.tsx new file mode 100644 index 00000000000..9854b2d8a56 --- /dev/null +++ b/apps/learn/context/framework-context.tsx @@ -0,0 +1,46 @@ +'use client' + +import { createContext, useContext, useEffect, useState } from 'react' + +type Course = 'foundations' | 'smart-office' | 'performance-scaling' | 'debugging-operations' +type CourseContextType = { + course: Course + setCourse: (course: Course) => void +} + +const CourseContext = createContext(undefined) + +export function FrameworkProvider({ children }: { children: React.ReactNode }) { + const [course, setCourseState] = useState('foundations') + + // Initialize from localStorage on mount (client-side only) + useEffect(() => { + const storedCourse = localStorage.getItem('preferredCourse') + const validCourses: Course[] = [ + 'foundations', + 'smart-office', + 'performance-scaling', + 'debugging-operations', + ] + if (storedCourse && validCourses.includes(storedCourse as Course)) { + setCourseState(storedCourse as Course) + } + }, []) + + // Update localStorage when framework changes + const setCourse = (newCourse: Course) => { + setCourseState(newCourse) + localStorage.setItem('preferredCourse', newCourse) + } + + return {children} +} + +// Custom hook to use the framework context +export function useCourse() { + const context = useContext(CourseContext) + if (context === undefined) { + throw new Error('useCourse must be used within a CourseProvider') + } + return context +} diff --git a/apps/learn/context/mobile-menu-context.tsx b/apps/learn/context/mobile-menu-context.tsx new file mode 100644 index 00000000000..f584ee3f80b --- /dev/null +++ b/apps/learn/context/mobile-menu-context.tsx @@ -0,0 +1,36 @@ +'use client' + +import React, { ReactNode, useState, useCallback } from 'react' +import { MobileMenuContext, MobileMenuContextType } from '@/hooks/use-mobile-menu' + +interface MobileMenuProviderProps { + children: ReactNode +} + +/** + * Provider component for mobile menu state + * Wraps children with context that provides mobile menu state and controls + */ +export function MobileMenuProvider({ children }: MobileMenuProviderProps) { + const [open, setOpen] = useState(false) + + // Use useCallback for stable function references + const handleSetOpen = useCallback((value: boolean) => { + setOpen(value) + }, []) + + const toggle = useCallback(() => { + setOpen((prev) => { + return !prev + }) + }, []) + + // Memoize the context value to prevent unnecessary re-renders + const value: MobileMenuContextType = { + open, + setOpen: handleSetOpen, + toggle, + } + + return {children} +} diff --git a/apps/learn/eslint.config.cjs b/apps/learn/eslint.config.cjs new file mode 100644 index 00000000000..fec3ac9b3ab --- /dev/null +++ b/apps/learn/eslint.config.cjs @@ -0,0 +1,4 @@ +const { defineConfig } = require('eslint/config') +const supabaseConfig = require('eslint-config-supabase/next') + +module.exports = defineConfig([supabaseConfig]) diff --git a/apps/learn/hooks/use-config.ts b/apps/learn/hooks/use-config.ts new file mode 100644 index 00000000000..f1c4f10923c --- /dev/null +++ b/apps/learn/hooks/use-config.ts @@ -0,0 +1,22 @@ +import { useAtom } from 'jotai' +import { atomWithStorage } from 'jotai/utils' +import { ComponentProps } from 'react' +import { SonnerToaster } from 'ui' + +type Config = { + style: string + radius: number + sonnerPosition: ComponentProps['position'] + sonnerExpand: boolean +} + +const configAtom = atomWithStorage('config', { + style: 'default', + radius: 0.5, + sonnerPosition: 'bottom-right', + sonnerExpand: false, +}) + +export function useConfig() { + return useAtom(configAtom) +} diff --git a/apps/learn/hooks/use-mobile-menu.ts b/apps/learn/hooks/use-mobile-menu.ts new file mode 100644 index 00000000000..1126e372f9e --- /dev/null +++ b/apps/learn/hooks/use-mobile-menu.ts @@ -0,0 +1,35 @@ +'use client' + +import { createContext, useContext } from 'react' + +/** + * Context type for mobile menu state and controls + */ +export interface MobileMenuContextType { + /** Current state of the mobile menu */ + open: boolean + /** Function to set the mobile menu state */ + setOpen: (open: boolean) => void + /** Function to toggle the mobile menu state */ + toggle: () => void +} + +// Create context with null as default value to indicate it's not provided +export const MobileMenuContext = createContext(null) + +/** + * Hook to access the mobile menu state and controls + * Must be used within a MobileMenuProvider + */ +export function useMobileMenu(): MobileMenuContextType { + const context = useContext(MobileMenuContext) + + if (context === null) { + throw new Error( + 'useMobileMenu must be used within a MobileMenuProvider. ' + + 'Ensure your component is wrapped with MobileMenuProvider.' + ) + } + + return context +} diff --git a/apps/learn/hooks/use-mounted.ts b/apps/learn/hooks/use-mounted.ts new file mode 100644 index 00000000000..13256dce0c1 --- /dev/null +++ b/apps/learn/hooks/use-mounted.ts @@ -0,0 +1,11 @@ +import * as React from 'react' + +export function useMounted() { + const [mounted, setMounted] = React.useState(false) + + React.useEffect(() => { + setMounted(true) + }, []) + + return mounted +} diff --git a/apps/learn/lib/constants.ts b/apps/learn/lib/constants.ts new file mode 100644 index 00000000000..9b2dc13741b --- /dev/null +++ b/apps/learn/lib/constants.ts @@ -0,0 +1 @@ +export const API_URL = process.env.NEXT_PUBLIC_API_URL! diff --git a/apps/learn/lib/get-current-chapter.ts b/apps/learn/lib/get-current-chapter.ts new file mode 100644 index 00000000000..a8d99bf2cf8 --- /dev/null +++ b/apps/learn/lib/get-current-chapter.ts @@ -0,0 +1,36 @@ +import { allDocs } from 'contentlayer/generated' +import { normalizeSlug } from './get-next-page' + +/** + * Gets the current chapter number from a doc + */ +export function getCurrentChapter( + slug: string +): { chapterNumber?: number; completionMessage?: string } | null { + const normalizedSlug = normalizeSlug(slug) + const doc = allDocs.find((doc) => normalizeSlug(doc.slugAsParams) === normalizedSlug) + + if (!doc) { + return null + } + + // Get chapterNumber from frontmatter first, then fallback to parsing from title + let chapterNumber: number | undefined = (doc as any)?.chapterNumber + if (!chapterNumber) { + // Try to extract chapter number from title (e.g., "2: CSS Styling" -> 2) + const chapterMatch = doc.title.match(/^(\d+):/) + chapterNumber = chapterMatch ? parseInt(chapterMatch[1], 10) : undefined + } + + if (!chapterNumber) { + return null + } + + // Use description as completion message, or generate a default one + const completionMessage = doc.description || undefined + + return { + chapterNumber, + completionMessage, + } +} diff --git a/apps/learn/lib/get-internal-content.ts b/apps/learn/lib/get-internal-content.ts new file mode 100644 index 00000000000..cc9e16cb13a --- /dev/null +++ b/apps/learn/lib/get-internal-content.ts @@ -0,0 +1,44 @@ +import { existsSync, readdirSync, statSync } from 'fs' +import path from 'path' + +/** + * Get all internal content file paths recursively + * Returns a Set of paths like '/foundations/realtime', '/foundations/grafana' + */ +export function getInternalContentPaths(): Set { + const internalDir = path.join(process.cwd(), 'content/internal') + const paths = new Set() + + if (!existsSync(internalDir)) { + return paths + } + + function scanDirectory(dir: string, prefix: string = '') { + const entries = readdirSync(dir) + + for (const entry of entries) { + const fullPath = path.join(dir, entry) + const stat = statSync(fullPath) + + if (stat.isDirectory()) { + // Recursively scan subdirectories + scanDirectory(fullPath, prefix ? `${prefix}/${entry}` : entry) + } else if (entry.endsWith('.mdx') || entry.endsWith('.md')) { + // Remove file extension to get the path + const filename = entry.replace(/\.(mdx|md)$/, '') + const contentPath = prefix ? `/${prefix}/${filename}` : `/${filename}` + paths.add(contentPath) + } + } + } + + scanDirectory(internalDir) + return paths +} + +/** + * Check if internal content exists for a given href + */ +export function hasInternalContent(href: string, internalPaths: Set): boolean { + return internalPaths.has(href) +} diff --git a/apps/learn/lib/get-next-page.ts b/apps/learn/lib/get-next-page.ts new file mode 100644 index 00000000000..4eda18f71cd --- /dev/null +++ b/apps/learn/lib/get-next-page.ts @@ -0,0 +1,82 @@ +import { allDocs } from 'contentlayer/generated' +import { courses } from '@/config/docs' +import { SidebarNavItem } from '@/types/nav' + +/** + * Flattens the navigation structure to get all pages in order + * Only includes items that have an href (leaf nodes) + */ +function flattenNavItems(items: SidebarNavItem[]): SidebarNavItem[] { + const result: SidebarNavItem[] = [] + + for (const item of items) { + if (item.items && item.items.length > 0) { + // Recursively process children first + result.push(...flattenNavItems(item.items)) + } else if (item.href) { + // Only add items with href (leaf nodes) + result.push(item) + } + } + + return result +} + +/** + * Normalizes a slug/href for comparison + */ +export function normalizeSlug(slug: string): string { + return slug.replace(/^\//, '').toLowerCase() +} + +/** + * Gets the next page in the navigation structure based on the current page slug + */ +export function getNextPage( + currentSlug: string +): { title: string; href: string; description?: string; chapterNumber?: number } | null { + // Flatten all navigation items + const allPages = flattenNavItems(courses.items) + + // Normalize the current slug for comparison + const normalizedCurrentSlug = normalizeSlug(currentSlug) + + // Find the current page index + const currentIndex = allPages.findIndex((page) => { + if (!page.href) return false + const pageSlug = normalizeSlug(page.href) + return pageSlug === normalizedCurrentSlug + }) + + // If current page not found or it's the last page, return null + if (currentIndex === -1 || currentIndex === allPages.length - 1) { + return null + } + + // Get the next page + const nextPage = allPages[currentIndex + 1] + if (!nextPage || !nextPage.href) { + return null + } + + // Try to get description and chapterNumber from the doc + const nextPageSlug = normalizeSlug(nextPage.href) + const doc = allDocs.find((doc) => normalizeSlug(doc.slugAsParams) === nextPageSlug) + const description = doc?.description || nextPage.title + + // Get chapterNumber from frontmatter first, then fallback to parsing from title + // Using type assertion since contentlayer types may need regeneration + let chapterNumber: number | undefined = (doc as any)?.chapterNumber + if (!chapterNumber) { + // Try to extract chapter number from title (e.g., "2: CSS Styling" -> 2) + const chapterMatch = nextPage.title.match(/^(\d+):/) + chapterNumber = chapterMatch ? parseInt(chapterMatch[1], 10) : undefined + } + + return { + title: nextPage.title, + href: nextPage.href, + description, + chapterNumber, + } +} diff --git a/apps/learn/lib/merge-internal-content.ts b/apps/learn/lib/merge-internal-content.ts new file mode 100644 index 00000000000..cb99f7ae916 --- /dev/null +++ b/apps/learn/lib/merge-internal-content.ts @@ -0,0 +1,85 @@ +import { SidebarNavItem } from '@/types/nav' + +/** + * Get all hrefs from navigation items (only direct children, not nested) + */ +function getNavHrefsInSection(items?: SidebarNavItem[]): Set { + const hrefs = new Set() + if (!items) return hrefs + + items.forEach((item) => { + if (item.href) { + hrefs.add(item.href) + } + }) + + return hrefs +} + +/** + * Merge orphaned internal content into their respective parent sections + * For example, if /internal/foundations/grafana exists but /foundations/grafana doesn't, + * it will be added to the end of the Foundations section + */ +export function mergeInternalContentIntoSections( + navItems: SidebarNavItem[], + internalPaths: string[] +): SidebarNavItem[] { + return navItems.map((parentItem) => { + // If this item doesn't have children, return as is + if (!parentItem.items) return parentItem + + // Get the section path (e.g., "/foundations" from parent href) + const parentPath = parentItem.href + if (!parentPath) return parentItem + + // Get all existing hrefs in this section + const existingHrefs = getNavHrefsInSection(parentItem.items) + + // Find orphaned internal items that belong to this section + const orphanedItems: SidebarNavItem[] = [] + + internalPaths.forEach((internalPath) => { + // Check if this internal path belongs to this parent section + // e.g., /foundations/grafana belongs to /foundations + if (internalPath.startsWith(parentPath + '/')) { + // Check if there's no corresponding public item + const publicPath = internalPath // e.g., /foundations/grafana + if (!existingHrefs.has(publicPath)) { + // Extract the title from the path + const pathParts = internalPath.split('/').filter(Boolean) + const fileName = pathParts[pathParts.length - 1] + + // Convert kebab-case to Title Case + const title = fileName + .split('-') + .map((word) => word.charAt(0).toUpperCase() + word.slice(1)) + .join(' ') + + orphanedItems.push({ + title, + href: `/internal${internalPath}`, + requiresAuth: true, + }) + } + } + }) + + // If there are orphaned items, add them to the end of this section with a heading + if (orphanedItems.length > 0) { + // Create a separator item for "Internal Resources" + const internalResourcesHeading: SidebarNavItem = { + title: 'Internal Resources', + href: undefined, + items: orphanedItems.sort((a, b) => a.title.localeCompare(b.title)), + } + + return { + ...parentItem, + items: [...parentItem.items, internalResourcesHeading], + } + } + + return parentItem + }) +} diff --git a/apps/learn/lib/telemetry.ts b/apps/learn/lib/telemetry.ts new file mode 100644 index 00000000000..804549688cc --- /dev/null +++ b/apps/learn/lib/telemetry.ts @@ -0,0 +1,19 @@ +'use client' + +import { usePathname } from 'next/navigation' +import { useCallback } from 'react' + +import { sendTelemetryEvent } from 'common' +import { TelemetryEvent } from 'common/telemetry-constants' +import { API_URL } from 'lib/constants' + +export function useSendTelemetryEvent() { + const pathname = usePathname() + + return useCallback( + (event: TelemetryEvent) => { + return sendTelemetryEvent(API_URL, event, pathname) + }, + [pathname] + ) +} diff --git a/apps/learn/lib/themes/supabase-2.json b/apps/learn/lib/themes/supabase-2.json new file mode 100644 index 00000000000..d4120e118a2 --- /dev/null +++ b/apps/learn/lib/themes/supabase-2.json @@ -0,0 +1,207 @@ +{ + "name": "Supabase Theme", + "displayName": "Supabase Theme", + "semanticHighlighting": true, + "colors": { + "editor.background": "var(--background-surface-75) / 0.75", + "editor.foreground": "var(--code-foreground)", + "editor.lineHighlightBackground": "var(--code-highlight-color)", + "editorCursor.foreground": "var(--code-foreground)", + "editorWhitespace.foreground": "var(--code-foreground)", + "editorIndentGuide.background": "var(--code-foreground)", + "editor.selectionBackground": "var(--code-highlight-color)", + "editor.selectionHighlightBackground": "var(--code-highlight-color)" + }, + "tokenColors": [ + { + "scope": ["comment", "punctuation.definition.comment", "string.comment"], + "settings": { + "foreground": "var(--code-token-comment)", + "fontStyle": "italic" + } + }, + { + "scope": ["constant", "entity.name.constant", "variable.other.constant"], + "settings": { + "foreground": "var(--code-token-constant)" + } + }, + { + "scope": ["entity", "entity.name", "entity.name.type", "support.type"], + "settings": { + "foreground": "var(--code-token-function)" + } + }, + { + "scope": ["variable", "support.variable", "variable.parameter"], + "settings": { + "foreground": "var(--code-token-parameter)" + } + }, + { + "scope": ["keyword", "storage.type", "storage.modifier", "keyword.control"], + "settings": { + "foreground": "var(--code-token-keyword)" + } + }, + { + "scope": ["string", "constant.other.symbol", "constant.other.key", "string.quoted"], + "settings": { + "foreground": "var(--code-token-string)" + } + }, + { + "scope": ["support.function", "entity.name.function"], + "settings": { + "foreground": "var(--code-token-function)" + } + }, + { + "scope": ["punctuation", "punctuation.separator", "meta.brace", "punctuation.definition"], + "settings": { + "foreground": "var(--code-token-punctuation)" + } + }, + { + "scope": ["meta.tag", "declaration.tag", "markup.deleted"], + "settings": { + "foreground": "var(--code-token-function)" + } + }, + { + "scope": ["markup.inserted"], + "settings": { + "foreground": "var(--code-token-string)" + } + }, + { + "scope": ["markup.changed"], + "settings": { + "foreground": "var(--code-token-string-expression)" + } + }, + { + "scope": ["invalid", "invalid.deprecated"], + "settings": { + "foreground": "var(--code-foreground)", + "background": "var(--code-token-comment)" + } + }, + { + "scope": ["support.type.property-name"], + "settings": { + "foreground": "var(--code-token-property)" + } + }, + { + "scope": ["entity.other.attribute-name"], + "settings": { + "foreground": "var(--code-token-property)" + } + }, + { + "scope": ["meta.object-literal.key"], + "settings": { + "foreground": "var(--code-token-property)" + } + }, + { + "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], + "settings": { + "foreground": "var(--code-token-property)" + } + }, + { + "scope": ["storage", "storage.type", "storage.modifier"], + "settings": { + "foreground": "var(--code-token-keyword)" + } + }, + { + "scope": ["support.class"], + "settings": { + "foreground": "var(--code-token-function)" + } + }, + { + "scope": ["constant.language"], + "settings": { + "foreground": "var(--code-token-constant)" + } + }, + { + "scope": ["meta.embedded"], + "settings": { + "foreground": "var(--code-token-string-expression)" + } + }, + { + "scope": ["meta.function-call"], + "settings": { + "foreground": "var(--code-token-function)" + } + }, + { + "scope": ["meta.method-call"], + "settings": { + "foreground": "var(--code-token-function)" + } + }, + { + "scope": ["meta.return-type"], + "settings": { + "foreground": "var(--code-token-keyword)" + } + }, + { + "scope": [ + "meta.import", + "meta.import.js", + "meta.import.ts", + "meta.import.tsx", + "meta.import.jsx", + "string.quoted.single.js", + "string.quoted.double.js", + "string.quoted.single.ts", + "string.quoted.double.ts", + "string.quoted.single.tsx", + "string.quoted.double.tsx", + "string.quoted.single.jsx", + "string.quoted.double.jsx" + ], + "settings": { + "foreground": "var(--code-token-string-expression)" + } + }, + { + "scope": ["meta.var.expr"], + "settings": { + "foreground": "var(--code-token-variable)" + } + }, + { + "scope": ["meta.block"], + "settings": { + "foreground": "var(--code-foreground)" + } + }, + { + "scope": ["meta.delimiter.period"], + "settings": { + "foreground": "var(--code-foreground)" + } + }, + { + "scope": ["meta.brace.round"], + "settings": { + "foreground": "var(--code-foreground)" + } + }, + { + "scope": ["meta.paren.expr"], + "settings": { + "foreground": "var(--code-foreground)" + } + } + ] +} diff --git a/apps/learn/lib/toc.ts b/apps/learn/lib/toc.ts new file mode 100644 index 00000000000..c11d0b83031 --- /dev/null +++ b/apps/learn/lib/toc.ts @@ -0,0 +1,79 @@ +// @ts-nocheck +// TODO: I'll fix this later. + +import { toc } from 'mdast-util-toc' +import { remark } from 'remark' +import { visit } from 'unist-util-visit' + +const textTypes = ['text', 'emphasis', 'strong', 'inlineCode'] + +function flattenNode(node) { + const p = [] + visit(node, (node) => { + if (!textTypes.includes(node.type)) return + p.push(node.value) + }) + return p.join(``) +} + +interface Item { + title: string + url: string + items?: Item[] +} + +interface Items { + items?: Item[] +} + +function getItems(node, current): Items { + if (!node) { + return {} + } + + if (node.type === 'paragraph') { + visit(node, (item) => { + if (item.type === 'link') { + current.url = item.url + current.title = flattenNode(node) + } + + if (item.type === 'text') { + current.title = flattenNode(node) + } + }) + + return current + } + + if (node.type === 'list') { + current.items = node.children.map((i) => getItems(i, {})) + + return current + } else if (node.type === 'listItem') { + const heading = getItems(node.children[0], {}) + + if (node.children.length > 1) { + getItems(node.children[1], heading) + } + + return heading + } + + return {} +} + +const getToc = () => (node, file) => { + const table = toc(node) + const items = getItems(table.map, {}) + + file.data = items +} + +export type TableOfContents = Items + +export async function getTableOfContents(content: string): Promise { + const result = await remark().use(getToc).process(content) + + return result.data +} diff --git a/apps/learn/lib/utils.ts b/apps/learn/lib/utils.ts new file mode 100644 index 00000000000..6edcf90fba7 --- /dev/null +++ b/apps/learn/lib/utils.ts @@ -0,0 +1,7 @@ +import { cn as uiCN } from 'ui' + +export const cn = uiCN + +export function absoluteUrl(path: string) { + return `${process.env.NEXT_PUBLIC_APP_URL}${path}` +} diff --git a/apps/learn/next.config.mjs b/apps/learn/next.config.mjs new file mode 100644 index 00000000000..44a9a34c9ec --- /dev/null +++ b/apps/learn/next.config.mjs @@ -0,0 +1,27 @@ +import { withContentlayer } from 'next-contentlayer2' + +/** @type {import('next').NextConfig} */ +const nextConfig = { + transpilePackages: ['ui', 'common', 'shared-data', 'icons', 'tsconfig'], + basePath: process.env.NEXT_PUBLIC_BASE_PATH, + async redirects() { + return [ + ...(process.env.NEXT_PUBLIC_BASE_PATH?.length + ? [ + { + source: '/', + destination: process.env.NEXT_PUBLIC_BASE_PATH, + basePath: false, + permanent: false, + }, + ] + : []), + ] + }, + eslint: { + // We are already running linting via GH action, this will skip linting during production build on Vercel + ignoreDuringBuilds: true, + }, +} + +export default withContentlayer(nextConfig) diff --git a/apps/learn/package.json b/apps/learn/package.json new file mode 100644 index 00000000000..12a90d61f9d --- /dev/null +++ b/apps/learn/package.json @@ -0,0 +1,116 @@ +{ + "name": "learn", + "version": "0.1.0", + "private": true, + "type": "module", + "scripts": { + "preinstall": "npx only-allow pnpm", + "dev": "next dev --port 3007", + "build": "pnpm run content:build && next build --turbopack", + "internal:sync": "tsx --tsconfig ./tsconfig.scripts.json ./scripts/sync-internal-content.mts", + "start": "next start", + "lint": "eslint .", + "lint:mdx": "supa-mdx-lint content --config ../../supa-mdx-lint.config.toml", + "content:build": "contentlayer2 build", + "clean": "rimraf node_modules .next .turbo", + "typecheck": "contentlayer2 build && tsc --noEmit -p tsconfig.json" + }, + "dependencies": { + "@hookform/resolvers": "^3.1.1", + "@monaco-editor/react": "^4.6.0", + "@radix-ui/react-accordion": "*", + "@radix-ui/react-alert-dialog": "*", + "@radix-ui/react-aspect-ratio": "*", + "@radix-ui/react-avatar": "*", + "@radix-ui/react-checkbox": "*", + "@radix-ui/react-collapsible": "*", + "@radix-ui/react-context-menu": "*", + "@radix-ui/react-dialog": "*", + "@radix-ui/react-dropdown-menu": "*", + "@radix-ui/react-hover-card": "*", + "@radix-ui/react-label": "*", + "@radix-ui/react-menubar": "*", + "@radix-ui/react-navigation-menu": "*", + "@radix-ui/react-popover": "*", + "@radix-ui/react-progress": "*", + "@radix-ui/react-radio-group": "*", + "@radix-ui/react-scroll-area": "*", + "@radix-ui/react-select": "*", + "@radix-ui/react-separator": "*", + "@radix-ui/react-slider": "*", + "@radix-ui/react-slot": "*", + "@radix-ui/react-switch": "*", + "@radix-ui/react-tabs": "*", + "@radix-ui/react-toast": "*", + "@radix-ui/react-toggle": "*", + "@radix-ui/react-toggle-group": "*", + "@radix-ui/react-tooltip": "*", + "@react-router/fs-routes": "^7.4.0", + "@supabase/postgrest-js": "catalog:", + "@supabase/supa-mdx-lint": "0.2.6-alpha", + "@supabase/vue-blocks": "workspace:*", + "@tanstack/react-query": "^5.83.0", + "axios": "^1.12.0", + "class-variance-authority": "*", + "cmdk": "^1.0.0", + "common": "workspace:*", + "common-tags": "^1.8.2", + "contentlayer2": "0.4.6", + "eslint-config-supabase": "workspace:*", + "framer-motion": "^11.0.3", + "icons": "workspace:*", + "jotai": "^2.8.0", + "lucide-react": "*", + "next": "catalog:", + "next-contentlayer2": "0.4.6", + "next-themes": "^0.3.0", + "openai": "^5.9.0", + "openapi-fetch": "0.12.4", + "react": "catalog:", + "react-docgen": "^7.0.3", + "react-dom": "catalog:", + "react-hook-form": "^7.45.0", + "react-markdown": "^10.1.0", + "react-wrap-balancer": "^1.1.0", + "recharts": "^2.8.0", + "rehype-autolink-headings": "^7.1.0", + "rehype-pretty-code": "^0.9.0", + "rehype-slug": "^6.0.0", + "remark": "^14.0.3", + "remark-code-import": "^1.2.0", + "remark-gfm": "^4.0.0", + "sonner": "^1.5.0", + "ui": "workspace:*", + "ui-patterns": "workspace:*", + "unist-util-visit": "^5.0.0", + "vaul": "^0.9.6", + "zod": "catalog:" + }, + "devDependencies": { + "@react-router/dev": "^7.1.5", + "@shikijs/compat": "^1.1.7", + "@supabase/ssr": "^0.7.0", + "@supabase/supabase-js": "catalog:", + "@tanstack/react-router": "^1.114.27", + "@tanstack/react-start": "^1.114.25", + "@types/common-tags": "^1.8.4", + "@types/lodash": "^4.17.16", + "@types/react": "catalog:", + "@types/react-dom": "catalog:", + "config": "workspace:^", + "dotenv": "^17.2.3", + "lodash": "^4.17.21", + "mdast-util-toc": "^6.1.1", + "postcss": "^8.5.3", + "react-dropzone": "^14.3.8", + "react-router": "^7.5.2", + "rimraf": "^4.1.3", + "shadcn": "^3.0.0", + "shiki": "^1.1.7", + "tailwindcss": "catalog:", + "tsconfig": "workspace:*", + "tsx": "catalog:", + "typescript": "catalog:", + "vite": "catalog:" + } +} diff --git a/apps/learn/postcss.config.cjs b/apps/learn/postcss.config.cjs new file mode 100644 index 00000000000..08a01d4d167 --- /dev/null +++ b/apps/learn/postcss.config.cjs @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + tailwindcss: {}, + }, +} diff --git a/apps/learn/public/favicon/android-icon-144x144.png b/apps/learn/public/favicon/android-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..144190d197673d6d534fe8df78bd7269eedcbe08 GIT binary patch literal 1968 zcmah~do&Y@AK$~Ytzj6ASi_P?tre0@8)J68cEfe)!LQ5BqjU@9Rc01ajCsplD79<- zbZf2dP-N}rwM-Y4XDu}3IpkTc&hOvfIlu2Y-{<+9@ArJZ=X=ig8pDgG0XKvL000fT z8};a>&-t!U@TTo7*2x3_fW{0DUzg2P@Bax3h5Db6|JFA)Hgt7$CnqPTr>E!V=f}s# z*VosTO6BP2=FMg~lF4MRU%!6%@L^3&4WG|%ZEdx+wQXo<5R1hEfuO3Y3X8>JFqr1%W~o&A;>8Q0 zP>4pOB@)T==g&nVQDtRiU0vPNr%$b{tSl@na5x;1NGvHSxpnInl}e>hD0z8#`}gn9 z$jCT%?i`E73JMBhFc{g{+41r5Mn*=Vp`mm--PP4KEG*2=&(GiAzv{|X{qGBkIqKyD zSe_daJ(#HHrkoD2F*h+p(w?~?E!9^H0RVMtI+fxZ*Ecl~?*9>wQV&)eXpS|9)fI}M zE#{AQn_{ms`5zoRHZ}~LkDY;chX=}X4oKEc$fKj8^Nwl0ywlRL6f2M-zD3CNKd%mD z)2;irw-@fjr|$_Uw0m;zP~Ao4koDS&3$RUa#cGp1jfeb%y#*HvxRa(ChX6G znq-lg510m$fgna+TM;R9kg?L zW6MduABvPLQ+<2Yiq?SF%|XQn`)pxV?SWLrZAm06VhUN~PD+dotVOk5FuJamly1hz zQQ8*?x?O}RjJb}jA_|vgnKMau!^k^_^~gp_R!t1p0Hny3!EA;*ydCl3y*Co6$j8rQ zYM=(w96*4|G1%0~n?CK?9&=pjhR4&msa8eG)L%RU5ChL;K_SUfZ8 z`$dh)sU&|qvNZ&e$`CX=6LOk-nt0Bf#A-7B?hdv$!U30QUA0gK;}ws*fPADuSpJ@0 zu|%#mi!09m3wU|5ovUoLPW>%q`HI09MB&})M%i{-Lp$+h+9iik{XELt_SCbS8mpXx zU#dTp^dU)>kPGjNvQijANp9+d&-Ta3_sN8o^ZwLEbl3;>NcsJkKd)oPseb#AL6N4x z2;ch@Ronxd)(}!l3i4zfU%c^p4s7GKz_jElJyaQ5XP~8hsNn}tG$b^8f$1e2#xz8v zB&8DYnup(jYwNkT)Q5^)aJGEq9)X}45gN-hQmWM1TMvrw7;~-$q^)1L)df5(!JLN} zw?R}_7KrJ)4*YU9S+@sxcqJ^Zf;>SAs&#F|LX#6{rNPI~EYE@Lo8kF!jhIv#O)<_y zqY8-odq8u}a)n%VAIr>4t<8$geW{&AlY(4EKrn1Pk~Q@0K)U5?lN>rXWeL@Yvym1<; zLz*DXWY$NnlOT)>mE{8U;C)Ps7_z7_M4rgwwZf?o zU%m#((M9es`AokeU6Zeio{3MKF6?%Ojre@2e|t=9@`VA^b9M}sJ5#z`}_LjA7%?d}aWX1vh@|^Uf7bWi|#CY?w0O&4W)EcK?)<2E@ed7QC literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/android-icon-192x192.png b/apps/learn/public/favicon/android-icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..c4f30c5f922d284794cb5d40dac8ada4c64f385a GIT binary patch literal 2622 zcmYjTc|6o>7k_>;BaAeJ2-%9VjBH7y84byr5H2n9QVfcTsVMW~4yH?Jo2yrro0}!B zrJ^n}gPQEykPxy9HH^k?=AC=rKkhxB&vTx0&hvfF`9A0Q=iG5|wv|LHq5%Msb|SMFaT`?tu*$ownzkNN-8fBb)00)aqyi^Ji3{rYum zY;1mherjrJWMpJ%X=!vlB}#O1qFqgnwqMrDkhUzSy`EvmzSHHn~{-GR8*v-q*Pc~ zSYKaHr_;5ywXs-iK|w)IPL76#28l#+b90N1jy5tfN=iziQmMAKws<^VQ&W>nCWnNC z`1<<#`1p8wdLB7)Brq`0-{0TK$?4v`dlU-gQlgozu#fT)uFh^?bZM*Rnz@M1_)OES zEAl%GbDus+zHq+&vOFCCvHNz`R_-?jzGYtaQM8hcmw)z&ZEP&jEo&uX-KB6x^F+WQ zQ&|Ir=$*lvf)V4vPbb7%<`Xg!mn7Qf9!GONkJ{0V=N?m5-}_Q9vu3;>m|Ep!+_<7n z=k(H!A5T-xaNxc^`2r4uQ<4AkkS@0->ih?OW148Ji=gu)RuFS_TELUzMQwd#3$`_8 zU!YHiGABm*VsGc)i@F7M^4m~X>(=s7S0i{5vztZS)uJtS627^J%vLwpViydn_Y1D2 ziJp9Do7Ge*<@J`XkM~99NdGtuR1tcrZw1Ius~0sLW&(gHhH!_sze;SL-7|Gwqcf^b zQlnFGVqH3rcMWiUi{gcey{Q7&=MtSFGbWLcx4V3fL}w653Rat*R0ittvKlGIW+Hg% zhp}Z3e&rXFSOT!V5tUl_V(oqd%2{(^Z<3~F5`yI34$?BzJbv)I`^A(YHP7)k&)sf- z-#6ug%|%7=I@K*{5G|}WAyOv}x%#*+4QgDGO4yDsxn$@MTnCtG&`F(al%(3x_Xhre zYY>lZZh+K&l~6DOM=~0OV4ju`jAr!tA~$J%jbIl2pWee#U;zD}E<+RukB{Asca0WS zm_a{a<_I-%H+(cfn2Ge7ru4O}0dmw$K63;rmx%_hpH9VXlk!w(1QQo!3ER|uRs9QQ znyQYZ>2CK2LGeK)nFv3%WzdXfpH<34-i zT$!TN$)=Tk43)cW9c{PQYRoJQYZWihsF&*NR&sA?tsAmZr&Z-p%Ych!8^IG4&m~3$ zKQbidJU2T_A)lXrx&A@j>8uV{_)*2g1n0gZQw4rV4r>7>@HRef_tpoGoxx51C5~w_ zU|&Uch-A*6f*bzkKb*PQcYcBP9bj^~;qhgnX`bo3Anq>$!Yt0SMIbthQ&!F#GqwkJ z{7Jh@pO{1Vn7dR;{X{LJXV-<(8gLoSo(Wa#81c>TQT+)GL%pz%EmDK~-RX}FjaCo8y7X{~^0 z)J>KIp>PwJ1rBqf=@D@~D$fzrb_HaoTwZ`kYMW$_5xn0CDn2c625Ex^l~9=1bx^E> z^pa2`ih+Yhmd7WEh{4W{pS6%?$~~e|Y!MiPx@4nQYCtxrx~aF`(OV1Rhr2+WH(1}v z5+{ec^W|7tKr*KeWIc42I*2hG7hgYnNfb{_LRE^U86R?K!(n~VIZtwupHXrAeY8DH z%hYc{I(?lukped1!Fz-SAnmRrLv+)-$dGb#<`2j#dZznO^_+X-5K7(fFOviJ)S z>x1kQOLf{2X0OEtSegYcNH1C-p*0F~ZUb8;ia#FSua6IL4#s-}*3J|U2Ze*G?qYrz zeEZZq(tXPfK1CE~7)u&fP^Tq*_B9O71Ptgi<=-l>AGp-=94XxCF!NCLf

      M0#?eqx_>%mfA*peUeaKcd2s8iVkpU&* z!zUq$--wt@d)$j*Ls_eo=&d5z*T|%$7TI5i? z$V`R=pglbJk^Pm&zAwWc0(jK9k)d-kwnA=rX`0(|wP0nP;VGYE6A4v;%shR3(kvnZ zGIv_Q1&Q)=NquiR>vzfU3r*zKU zMvHoF?$1Z9RdAlYO7QjWtk+NSV2rX=>OrQJmdjQ!>Z(<5?6ebX+`hy z08_v0RvabHtrfM~&hTo!kI()+8AL4D&F)!PUq_rJST120%JUp%Ru3Du>i0>|I=_M; X>F+18Y}>fP0S4IFI9rz-_l^4>>w~{S literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/android-icon-36x36.png b/apps/learn/public/favicon/android-icon-36x36.png new file mode 100644 index 0000000000000000000000000000000000000000..aed5d2b3063f659bbd9bd87d3b93815c0940cdb7 GIT binary patch literal 624 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k3?#4J%UA`ZP6qgdxQe0zpfIw)|NsAmgoH#y zL_U4`Bu_Q{hcXV0FMlau@Y{riUxA6~q8@$lipd-v`gIB;O^ z-o2)#raC%0fByXW^5x6p$B%E_x^?*Q;ceTtty#0i)zwv9U0q2@>F3X%w{PFxwQJYB zdGo@;!h(W=UcGwt?Afy`SFUW_xN*je8IvYWDlILIi;Ihjit_OAkd~G{b?VgdBZ-VsGCk(4ME-jj!7t6rF=Hg#zV?+Nt-b3G4^%Y1Y$~hIQ8XHP4OyUup+8Z#%N$$`y zk)n&&Z+9$e>AcX+oB6n-@j^^{`jSOjG42{B4|X1W^I7Bc=bMT39UpX^o=W|5iHrMu z#(WB6=XKS6Zae0D(?4SSl%{)Sf@mH^2 zJ%0T7?%lgLZrr$b?b_9=R}UXPtf;6cEiL{1`}eI|w`yu?s;jI2`Sa)E#f!Uk?OL~P z-Rjk=)6&vHLPDIKoec~Oe*XOV<;$1z=g*%!dGhGdqf3`A?dSQpmm<)&0wqCy!G9PI zNaSZV|KK0u3qQ?p%tO*-pg35O;$nxAcWyh(# z*LN&UKmFVOT-Tc;fikJjit0YUY?#5wvGkT}pMi_VyO_mOE*$clr|4|N>a|69*@PZ9 zy}A_*enhwU5z>w_}6sN(Mo@uhBfW?`43Nv=FfVn9jxCQByDCTvxq;ReeLe6i(ZMY{mD}$`;qlSp`cKL zKz+UFk;lGw-#3{*J>Kv>djiYa-~T`F-1a3+oK4W0X^~+=%CkIsx%~SgzNhCqe$eV; zoL@DeCw{$t^|tR}464nW*YkcopRn^y=qc663tQckQss|$`}-f^5evQDoxa5UZ|RJE zm(QL1apLm&s2G9s8Ta<&c9bYoDEa;0d!Ur%*^I(pqS0bMx^2@n9^6Wee9&v@+_YU( z#QetO^>0s!&Zt*zWZUHMPeJ9yj>1Okr#!sx)~##iOwYLRV)nN%1CxY@FY1JiOeS;+ zEN4@Df~cM1AV{`I~jRCcJs6y7WJT)6`WOsYk2A QfHBYD>FVdQ&MBb@067nAqyPW_ literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/android-icon-72x72.png b/apps/learn/public/favicon/android-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..10d2bbaaa869919a486f49867950a7f0c94dbaf1 GIT binary patch literal 1033 zcmV+k1or!hP)ged`^z`)OczAehY-~0*HmRwpp`oFUj*fnQerIQAJv}{xgM(XJ zTTDz$K|w)MQc^lPIx#UZr>Ccsl$1q9MPaY9ApigX40KXXQvkF3^yl6@6SQAmQfTsP zdH?_dzez+vR9M5+*lBZ`P!tAWToTmWdt4w2sDOyLAsSrcmKe?6_W%E!vKTGJ>J0Zz zr+q&=&%AQr4jje}n~5dkC{p6dSej+_xsD|eK@zEJ-?_O$gt@x$`Zx};Q8=h4UCz2S&Z!uZqR2z;V2J0fLVP{w>+5<4n|UbKGfYN+n-*pd98uAP9wz zvJmv}_%P9ZhnMrkY(d~8EG>gj_$UiQlW!CK?&xF-T+aE`EC_{taKYxoq@RrgLMe<;NNfHROSorIdMGwLhy zu~5kbbOxH?QxOKuvFo^nypiRwu(Z%QXv>|1jB#hA@l{#$|5;9wz7NkoYqjPnh^xDU zcM6FmfA(0f!FdRFYBm>2q0wmfc||^4>dqQ2J^j#oy$!`4jI=)Q6!LFIsru?Um!7q7 z?(a11SSVNALc|v>2XYF1&A#w#p~z65KhAzJN6{hvSV+Bx$WTo^%$}?701-fn;@^yd z@(zdus`|4plvYHq$1Sz$&ptaF5<;@<-HeYtLKv42d!%fg>`jxot>SH zjg9v9_EM?T)6=u7t7~Xzh|A^DXtdhe+KP&boSdBO?ChYRpxD@0A0HnMhjZh`jkvft zGMO9}7DgZt3JVL_Y<6;TG9Hg#d10Szm;jv~6%h^AOtl&XhfVZNe6E_h)RR;hg+KxT ze-RoIc$7M!sXiP1-peNEikdn3Tgl^x*q*j>=D7sRz*y<2IlbNke|95;=J%;|%7Uad zayuvYRqHH{da~SqVyYL8$2c!tnHyE731(C?oM-u`Ih${8*AVFDXoguNp;`a;7Q~$Z z>u=v$b#c)V{i}4AB>mv)4%#)4p-Q_nXu%s0*Pp?|N>@kU1@k_&m|5I2J9!@A_GBZZ zw$}aysuQ(zDSYMjM@@*Z-Vu;yOwVMnD~Vtb!%toq^8t+3aO) zQ0NHVmAf-wD^pJEcTOHMVH`)gD)%tkA&Vp6*p8YWBr+j5%O$5+4B~(4dgJOVt~Jf! zzcTDOrJFtLpS|gy*U2}hv#4#>#0S_m__dUxTC_;*Q&;vWoIpDjwhbPo4GYK06<32n zLuGjA(g*m(Obtn-5cel6oO9{|X`-3#m4e*}Eqm;+WUXeny>qR>gI={&YpoqkMJTbt z`;?^q_W0Fqxz%EKRk=5)O3?ZeX-$AnuU^T;Nsx>Z+9NxOd!jq<_>Vs;S(|w$B!!lS zwo=9UFXM^;+a}n(L=v`L|)Ro)w^UwX`GJIO+%^p3B@)Zq;-0>ty?5TzA%+j05z#s>-C%g~ft6Gp6y z8dSM2T#NHa-<50bCup@yP5BkrOR8Vg(516edrQY5G7aAsa0q$;rG6>f{qgFtSMBiP z)9@d59%l?v12ZRTQ)QG*;mc24Z#_pfWY|)EAx%Y}X&^->a&LQ7r{50{2ZyHQCD2Iu zMau;Dl5=uiS~!#fvDYu;vsU<#&@erVq-()5L!cqvZFN4b>>2Kk@saQF9 zB=1;3D$%=15#M2M^vwoU&GUB!BfDS_Ys@<{rpgilW~3jSWJ7ES3hBp{Sw4;<0+H*p z;0~gU=)lPKkif2SKbdrZkKx4J7^DdicVGrpSBZtg96T3UN1wPEBNzo^>3f9@fq>Q6 zo}uG#m*|iKjDBQ;zHT0KrDucw>FeJMLB_NZ{he7B6|9fK*E&$7-9~ZY&5_iTLX7gOVO(eU{obbmxheGrBDA46DVb^rhX literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/apple-icon-114x114.png b/apps/learn/public/favicon/apple-icon-114x114.png new file mode 100644 index 0000000000000000000000000000000000000000..396cee8516afe835bfb140b475f610245b6b68b2 GIT binary patch literal 1525 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 Hu0mjf)w1ib literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/apple-icon-144x144.png b/apps/learn/public/favicon/apple-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..144190d197673d6d534fe8df78bd7269eedcbe08 GIT binary patch literal 1968 zcmah~do&Y@AK$~Ytzj6ASi_P?tre0@8)J68cEfe)!LQ5BqjU@9Rc01ajCsplD79<- zbZf2dP-N}rwM-Y4XDu}3IpkTc&hOvfIlu2Y-{<+9@ArJZ=X=ig8pDgG0XKvL000fT z8};a>&-t!U@TTo7*2x3_fW{0DUzg2P@Bax3h5Db6|JFA)Hgt7$CnqPTr>E!V=f}s# z*VosTO6BP2=FMg~lF4MRU%!6%@L^3&4WG|%ZEdx+wQXo<5R1hEfuO3Y3X8>JFqr1%W~o&A;>8Q0 zP>4pOB@)T==g&nVQDtRiU0vPNr%$b{tSl@na5x;1NGvHSxpnInl}e>hD0z8#`}gn9 z$jCT%?i`E73JMBhFc{g{+41r5Mn*=Vp`mm--PP4KEG*2=&(GiAzv{|X{qGBkIqKyD zSe_daJ(#HHrkoD2F*h+p(w?~?E!9^H0RVMtI+fxZ*Ecl~?*9>wQV&)eXpS|9)fI}M zE#{AQn_{ms`5zoRHZ}~LkDY;chX=}X4oKEc$fKj8^Nwl0ywlRL6f2M-zD3CNKd%mD z)2;irw-@fjr|$_Uw0m;zP~Ao4koDS&3$RUa#cGp1jfeb%y#*HvxRa(ChX6G znq-lg510m$fgna+TM;R9kg?L zW6MduABvPLQ+<2Yiq?SF%|XQn`)pxV?SWLrZAm06VhUN~PD+dotVOk5FuJamly1hz zQQ8*?x?O}RjJb}jA_|vgnKMau!^k^_^~gp_R!t1p0Hny3!EA;*ydCl3y*Co6$j8rQ zYM=(w96*4|G1%0~n?CK?9&=pjhR4&msa8eG)L%RU5ChL;K_SUfZ8 z`$dh)sU&|qvNZ&e$`CX=6LOk-nt0Bf#A-7B?hdv$!U30QUA0gK;}ws*fPADuSpJ@0 zu|%#mi!09m3wU|5ovUoLPW>%q`HI09MB&})M%i{-Lp$+h+9iik{XELt_SCbS8mpXx zU#dTp^dU)>kPGjNvQijANp9+d&-Ta3_sN8o^ZwLEbl3;>NcsJkKd)oPseb#AL6N4x z2;ch@Ronxd)(}!l3i4zfU%c^p4s7GKz_jElJyaQ5XP~8hsNn}tG$b^8f$1e2#xz8v zB&8DYnup(jYwNkT)Q5^)aJGEq9)X}45gN-hQmWM1TMvrw7;~-$q^)1L)df5(!JLN} zw?R}_7KrJ)4*YU9S+@sxcqJ^Zf;>SAs&#F|LX#6{rNPI~EYE@Lo8kF!jhIv#O)<_y zqY8-odq8u}a)n%VAIr>4t<8$geW{&AlY(4EKrn1Pk~Q@0K)U5?lN>rXWeL@Yvym1<; zLz*DXWY$NnlOT)>mE{8U;C)Ps7_z7_M4rgwwZf?o zU%m#((M9es`AokeU6Zeio{3MKF6?%Ojre@2e|t=9@`VA^b9M}sJ5#z`}_LjA7%?d}aWX1vh@|^Uf7bWi|#CY?w0O&4W)EcK?)<2E@ed7QC literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/apple-icon-152x152.png b/apps/learn/public/favicon/apple-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..cb261b8bba09fbbae67a0821fe974a6c592ce156 GIT binary patch literal 2091 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 O0AXyfs0M`pz5fEg=dTO^ literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/apple-icon-57x57.png b/apps/learn/public/favicon/apple-icon-57x57.png new file mode 100644 index 0000000000000000000000000000000000000000..278a7a87bee75d0858229c20ad29a08711c79e8e GIT binary patch literal 840 zcmV-O1GoH%P)gwwD_V(uH=G4^G-rnBa+}zsQ+Sk|D`}_Os?CkUN^YQWV;Nal+`1t7P=*`W| z&(F`FpPwHeALZrc$H&LNzrSB!U%|n_ySux%xVW;iva74BsHmu$r`zc) zW{2g{ra!7V-FEBh;=HOCB-Pd|&2bM%c&XEU*}1)GHm+-?kw3My3Kd@=R>DT7d+FUB z6ib>#t!1o)_a@!XY`2nIUf{Q8l3HJGgAWD+CcMWm4mAuQL= zyu(%$rR$Pdxw4|N?8BnrPukw(#XH2ybv`Pkc~v(HWhtE0*N5H&xi3b3X#V=q{GP0j z;o#dRPwsPjwQIXcaq-)G3z0_NWFef?ax%le1B~>~!%+;;^N}q;NaZc-0bY^C@3iQ_V)7f^6Kj9&(F`StgQ6(^ertdBqSuYwYB~I{odZ* z)z#I+#KhUz+04w$$H&LAva*7Lf_Zs)@$vEQ?(Wyu*V59`!NI}0y1HCkT>AR@>FMdd zzP_)oub!TsAt50f8ygoF7ySJE$;rv5r>CQ%qi$|)85tRlj*ez#W?^ArMMXt5H8ma{ z9?{X!x3{;Glapg(V^UI5OG`^VJw2G1m~wJ*adC05PAx_y2QV&Mb%dIFhS)d1? ztT=khkz(d*F2;^y9J(O?B?dGFRt)-P`2cJf_MSd}sbUQ5kp)<+oLx;T)wx=?*97I;NVm2rP^8biK>gW-p2)3-v7SL8c##n&e> z7^7Jjmzw=Sqh6J=LZRJqi+Kl5#raX3oPvlTIOC@zo2 z@XuH?&G}PD`de%sH|q1xmh1Ck)h)iy@uc|a;b_BnY-Llyw2H+lDHer-TP*$v*w9u@ z-?r&M>|VE8ld^8Hl2YvR7Xw1kOQg6Wy89$+&l8~eR}tK)`OB434M4Qm-zV981VoGd zVy#FPniA(rl3ScpL0xFJoZD2uQxz3-I$?^kly5v3|=wCd4lrP`E^r n&3;Qged`^z`)OczAehY-~0*HmRwpp`oFUj*fnQerIQAJv}{xgM(XJ zTTDz$K|w)MQc^lPIx#UZr>Ccsl$1q9MPaY9ApigX40KXXQvkF3^yl6@6SQAmQfTsP zdH?_dzez+vR9M5+*lBZ`P!tAWToTmWdt4w2sDOyLAsSrcmKe?6_W%E!vKTGJ>J0Zz zr+q&=&%AQr4jje}n~5dkC{p6dSej+_xsD|eK@zEJ-?_O$gt@x$`Zx};Q8=h4UCz2S&Z!uZqR2z;V2J0fLVP{w>+5<4n|UbKGfYN+n-*pd98uAP9wz zvJmv}_%P9ZhnMrkY(d~8EG>gj_$UiQlW!CK?&xF-T+aE`EC_{taKYxoq@RrgLMe<;NNfHROSorIdMGwLhy zu~5kbbOxH?QxOKuvFo^nypiRwu(Z%QXv>|1jB#hA@l{#$|5;9wz7NkoYqjPnh^xDU zcM6FmfA(0f!FdRFYBm>2q0wmfc||^4>dqQ2J^j#oy$!`4jI=)Q6!LFIsru?Um!7q7 z?(a11SSVNALc|v>2XYF1&A#w#p~z65KhAzJN6{hvSV+Bx$WTo^%$}?701-fn;@^yd z@(zdus`|4plvYHq$1Sz$&ptaF5<;@<-HeYtLk5Oh*bQvl@E zl8YU?1@-hjEV@2C2d;9weE?cYv>+TBE5_OGaGRHtQMran7tZ_l@)shuuO1W3f9->%u7$ z;mFR5O|MIW5-02CvJ<4(UDA~W3$wT-8$pXrvf^P@=^PI`mk45hv28#GK*B&DwU8oSLN*CCJ92W(QcQlhFc%dc#TF)XQb7LcJFc=5vL9B1SNM?oop>46?%h97Dcj&=HOMUZD#KXH{zM)Kx zVS4f~=F2hbzL+tKndhSNrUUs&Ghf0y6!A#R96u{o=01LIX3Al#!L00FvFiHdhb|8f zz5!KZFLJL~WCG+A2J&P+@N%gqG^5z(_$$f?zH^@e$Xv*4vRF(RPx(>Ix0H`y#{f+Y#`xzt zU|{taE9NZ#LBRBZ->;O`K!h`r2hUe*h(iqv*;Nih}?E002ovPDHLkV1jpI B06zc# literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/apple-icon-precomposed.png b/apps/learn/public/favicon/apple-icon-precomposed.png new file mode 100644 index 0000000000000000000000000000000000000000..c4f30c5f922d284794cb5d40dac8ada4c64f385a GIT binary patch literal 2622 zcmYjTc|6o>7k_>;BaAeJ2-%9VjBH7y84byr5H2n9QVfcTsVMW~4yH?Jo2yrro0}!B zrJ^n}gPQEykPxy9HH^k?=AC=rKkhxB&vTx0&hvfF`9A0Q=iG5|wv|LHq5%Msb|SMFaT`?tu*$ownzkNN-8fBb)00)aqyi^Ji3{rYum zY;1mherjrJWMpJ%X=!vlB}#O1qFqgnwqMrDkhUzSy`EvmzSHHn~{-GR8*v-q*Pc~ zSYKaHr_;5ywXs-iK|w)IPL76#28l#+b90N1jy5tfN=iziQmMAKws<^VQ&W>nCWnNC z`1<<#`1p8wdLB7)Brq`0-{0TK$?4v`dlU-gQlgozu#fT)uFh^?bZM*Rnz@M1_)OES zEAl%GbDus+zHq+&vOFCCvHNz`R_-?jzGYtaQM8hcmw)z&ZEP&jEo&uX-KB6x^F+WQ zQ&|Ir=$*lvf)V4vPbb7%<`Xg!mn7Qf9!GONkJ{0V=N?m5-}_Q9vu3;>m|Ep!+_<7n z=k(H!A5T-xaNxc^`2r4uQ<4AkkS@0->ih?OW148Ji=gu)RuFS_TELUzMQwd#3$`_8 zU!YHiGABm*VsGc)i@F7M^4m~X>(=s7S0i{5vztZS)uJtS627^J%vLwpViydn_Y1D2 ziJp9Do7Ge*<@J`XkM~99NdGtuR1tcrZw1Ius~0sLW&(gHhH!_sze;SL-7|Gwqcf^b zQlnFGVqH3rcMWiUi{gcey{Q7&=MtSFGbWLcx4V3fL}w653Rat*R0ittvKlGIW+Hg% zhp}Z3e&rXFSOT!V5tUl_V(oqd%2{(^Z<3~F5`yI34$?BzJbv)I`^A(YHP7)k&)sf- z-#6ug%|%7=I@K*{5G|}WAyOv}x%#*+4QgDGO4yDsxn$@MTnCtG&`F(al%(3x_Xhre zYY>lZZh+K&l~6DOM=~0OV4ju`jAr!tA~$J%jbIl2pWee#U;zD}E<+RukB{Asca0WS zm_a{a<_I-%H+(cfn2Ge7ru4O}0dmw$K63;rmx%_hpH9VXlk!w(1QQo!3ER|uRs9QQ znyQYZ>2CK2LGeK)nFv3%WzdXfpH<34-i zT$!TN$)=Tk43)cW9c{PQYRoJQYZWihsF&*NR&sA?tsAmZr&Z-p%Ych!8^IG4&m~3$ zKQbidJU2T_A)lXrx&A@j>8uV{_)*2g1n0gZQw4rV4r>7>@HRef_tpoGoxx51C5~w_ zU|&Uch-A*6f*bzkKb*PQcYcBP9bj^~;qhgnX`bo3Anq>$!Yt0SMIbthQ&!F#GqwkJ z{7Jh@pO{1Vn7dR;{X{LJXV-<(8gLoSo(Wa#81c>TQT+)GL%pz%EmDK~-RX}FjaCo8y7X{~^0 z)J>KIp>PwJ1rBqf=@D@~D$fzrb_HaoTwZ`kYMW$_5xn0CDn2c625Ex^l~9=1bx^E> z^pa2`ih+Yhmd7WEh{4W{pS6%?$~~e|Y!MiPx@4nQYCtxrx~aF`(OV1Rhr2+WH(1}v z5+{ec^W|7tKr*KeWIc42I*2hG7hgYnNfb{_LRE^U86R?K!(n~VIZtwupHXrAeY8DH z%hYc{I(?lukped1!Fz-SAnmRrLv+)-$dGb#<`2j#dZznO^_+X-5K7(fFOviJ)S z>x1kQOLf{2X0OEtSegYcNH1C-p*0F~ZUb8;ia#FSua6IL4#s-}*3J|U2Ze*G?qYrz zeEZZq(tXPfK1CE~7)u&fP^Tq*_B9O71Ptgi<=-l>AGp-=94XxCF!NCLf

      M0#?eqx_>%mfA*peUeaKcd2s8iVkpU&* z!zUq$--wt@d)$j*Ls_eo=&d5z*T|%$7TI5i? z$V`R=pglbJk^Pm&zAwWc0(jK9k)d-kwnA=rX`0(|wP0nP;VGYE6A4v;%shR3(kvnZ zGIv_Q1&Q)=NquiR>vzfU3r*zKU zMvHoF?$1Z9RdAlYO7QjWtk+NSV2rX=>OrQJmdjQ!>Z(<5?6ebX+`hy z08_v0RvabHtrfM~&hTo!kI()+8AL4D&F)!PUq_rJST120%JUp%Ru3Du>i0>|I=_M; X>F+18Y}>fP0S4IFI9rz-_l^4>>w~{S literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/apple-icon.png b/apps/learn/public/favicon/apple-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c4f30c5f922d284794cb5d40dac8ada4c64f385a GIT binary patch literal 2622 zcmYjTc|6o>7k_>;BaAeJ2-%9VjBH7y84byr5H2n9QVfcTsVMW~4yH?Jo2yrro0}!B zrJ^n}gPQEykPxy9HH^k?=AC=rKkhxB&vTx0&hvfF`9A0Q=iG5|wv|LHq5%Msb|SMFaT`?tu*$ownzkNN-8fBb)00)aqyi^Ji3{rYum zY;1mherjrJWMpJ%X=!vlB}#O1qFqgnwqMrDkhUzSy`EvmzSHHn~{-GR8*v-q*Pc~ zSYKaHr_;5ywXs-iK|w)IPL76#28l#+b90N1jy5tfN=iziQmMAKws<^VQ&W>nCWnNC z`1<<#`1p8wdLB7)Brq`0-{0TK$?4v`dlU-gQlgozu#fT)uFh^?bZM*Rnz@M1_)OES zEAl%GbDus+zHq+&vOFCCvHNz`R_-?jzGYtaQM8hcmw)z&ZEP&jEo&uX-KB6x^F+WQ zQ&|Ir=$*lvf)V4vPbb7%<`Xg!mn7Qf9!GONkJ{0V=N?m5-}_Q9vu3;>m|Ep!+_<7n z=k(H!A5T-xaNxc^`2r4uQ<4AkkS@0->ih?OW148Ji=gu)RuFS_TELUzMQwd#3$`_8 zU!YHiGABm*VsGc)i@F7M^4m~X>(=s7S0i{5vztZS)uJtS627^J%vLwpViydn_Y1D2 ziJp9Do7Ge*<@J`XkM~99NdGtuR1tcrZw1Ius~0sLW&(gHhH!_sze;SL-7|Gwqcf^b zQlnFGVqH3rcMWiUi{gcey{Q7&=MtSFGbWLcx4V3fL}w653Rat*R0ittvKlGIW+Hg% zhp}Z3e&rXFSOT!V5tUl_V(oqd%2{(^Z<3~F5`yI34$?BzJbv)I`^A(YHP7)k&)sf- z-#6ug%|%7=I@K*{5G|}WAyOv}x%#*+4QgDGO4yDsxn$@MTnCtG&`F(al%(3x_Xhre zYY>lZZh+K&l~6DOM=~0OV4ju`jAr!tA~$J%jbIl2pWee#U;zD}E<+RukB{Asca0WS zm_a{a<_I-%H+(cfn2Ge7ru4O}0dmw$K63;rmx%_hpH9VXlk!w(1QQo!3ER|uRs9QQ znyQYZ>2CK2LGeK)nFv3%WzdXfpH<34-i zT$!TN$)=Tk43)cW9c{PQYRoJQYZWihsF&*NR&sA?tsAmZr&Z-p%Ych!8^IG4&m~3$ zKQbidJU2T_A)lXrx&A@j>8uV{_)*2g1n0gZQw4rV4r>7>@HRef_tpoGoxx51C5~w_ zU|&Uch-A*6f*bzkKb*PQcYcBP9bj^~;qhgnX`bo3Anq>$!Yt0SMIbthQ&!F#GqwkJ z{7Jh@pO{1Vn7dR;{X{LJXV-<(8gLoSo(Wa#81c>TQT+)GL%pz%EmDK~-RX}FjaCo8y7X{~^0 z)J>KIp>PwJ1rBqf=@D@~D$fzrb_HaoTwZ`kYMW$_5xn0CDn2c625Ex^l~9=1bx^E> z^pa2`ih+Yhmd7WEh{4W{pS6%?$~~e|Y!MiPx@4nQYCtxrx~aF`(OV1Rhr2+WH(1}v z5+{ec^W|7tKr*KeWIc42I*2hG7hgYnNfb{_LRE^U86R?K!(n~VIZtwupHXrAeY8DH z%hYc{I(?lukped1!Fz-SAnmRrLv+)-$dGb#<`2j#dZznO^_+X-5K7(fFOviJ)S z>x1kQOLf{2X0OEtSegYcNH1C-p*0F~ZUb8;ia#FSua6IL4#s-}*3J|U2Ze*G?qYrz zeEZZq(tXPfK1CE~7)u&fP^Tq*_B9O71Ptgi<=-l>AGp-=94XxCF!NCLf

      M0#?eqx_>%mfA*peUeaKcd2s8iVkpU&* z!zUq$--wt@d)$j*Ls_eo=&d5z*T|%$7TI5i? z$V`R=pglbJk^Pm&zAwWc0(jK9k)d-kwnA=rX`0(|wP0nP;VGYE6A4v;%shR3(kvnZ zGIv_Q1&Q)=NquiR>vzfU3r*zKU zMvHoF?$1Z9RdAlYO7QjWtk+NSV2rX=>OrQJmdjQ!>Z(<5?6ebX+`hy z08_v0RvabHtrfM~&hTo!kI()+8AL4D&F)!PUq_rJST120%JUp%Ru3Du>i0>|I=_M; X>F+18Y}>fP0S4IFI9rz-_l^4>>w~{S literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/browserconfig.xml b/apps/learn/public/favicon/browserconfig.xml new file mode 100644 index 00000000000..1a8136def88 --- /dev/null +++ b/apps/learn/public/favicon/browserconfig.xml @@ -0,0 +1,2 @@ + +#ffffff \ No newline at end of file diff --git a/apps/learn/public/favicon/favicon-128.png b/apps/learn/public/favicon/favicon-128.png new file mode 100644 index 0000000000000000000000000000000000000000..4fab8e34978e7315d09c1a652e2a578e8d071d0f GIT binary patch literal 1978 zcmV;r2SxaaP)C0003pP)t-s92^_~ z000^q8XO!P92^`O85tWJ8yp-Q8yg!O92^}T9UL4S92^`R92^@P8yg!N8X6iJ8X6iJ z8XFrM8yg!M8X6lL8yp-Q78Vv99321u{{R30A0Hp&gwp|=;7hv z-QC^p?(XvP^55Uz_xJbo^z(?(9jwh8W$HA*Votm z{r&m*`343C0s;d2`}?-Gwh#~yu&}VJtE&_g6v4s4_V)J0#l_3Z%fG+B&CSin$H%j? zv%|x~sHmt74Gq1$y}G)(xVX5brKO^xqMn|f$;ru^o1476ysfRRcXxM`l$3;ognoX0 zJ3BjZadB*HY-MF-B_$=8n3zLDLntUHii(PlkB?hhTT)U|EiElDFfh9IR!{%{02y>r zPE+RqF!k#OnBAWF)y%@cqK$}HDkvKiTijcf3f+SM00tgOL_t(|+U=W(R@y)mhAFOX zt!=g2+&i);YtRTm2oeEzMFqtT_uB3KU!jvl!(u~1&oDhbelPHUxpVK#=wW;>9{KQo z^v!1L>TXMfhi)8X(lj91Ty}@_i=~_Way*s6A{W6-zX8vsBeOZ zM49l75uuFvd_*Y2zF{I1pT`P33p@+7Ly23s2+(qwx>MjHKsBsZQFdX#M?k8o&Bgh1 zO_fLw_y|xLi@;bcS9{cej{wbL0}RfQIK!y|cnT&b1%)`mML@y@u&9X;knn2~EJ^|d zB)OUffdaIQdmvDN4ZuAJ6~Jp~VMWc7Kfp(T;suBlkP0*^Qb3Xm84xJI2A~E41*n4O z&_PiiqyYW^kpdF_S`{fk3)&nA6p%EmKsN{61?&N6z!U5ZNPtqj1fc@B03rq06(lB7 zK$6u(c$!MJOj_V0KsDTkKd>_Z0jl6P5Gg>6D@eafpb$#`PC&woWd{L7*+4ZY7+?ok z+P{EeUqPNEa(#WpxV*ePWi*@3bH@Gsw{K@>XSa<;)j#yGUfbO*t!y)oy~^6w`lcx| zGaC%Wl8HP(TvDaJ1gL_i;7H)?_E66+o#^?;8!Vs2FV3gpGl8(4znaLiVr;5fe**X& zoSD77ZOz|d-`|pN6d=Ex1Gq-14*>~(Ccv3+qtW*LM^^q^U^W;v3Si{Jj;eSUkYp_a zJqR8)%=NeGujjM%*YjHhauB65^(sKCxC6Zf4(0HUPZ|)#|JPibd=DS^m79uNNTNQUItS_1FUv z-hmr|-5P5^md^&@h}D15$Y%oW1%M0p0`?Weoj~a^f8F|iy#V2;F@uR^^BifSLc9rR zY6e^hluG6XU~NE=I1}h9z&4htHv#<)>WUaU2=08d!;2m zWeT*;AQK3EMXGocpfZWN6ew<+8_=ei&jbRUGkBqI!yW}xDdtk(plIf27Fh$@1u%~R zqXjRK5YGad7I!Idy#JWb1m?PD@XWdpd2PZ5xFWG}Y;J%|K<@x!6Ee<0J)a3wuu4fE z0)<~L1u7eMex$ntBAP1ocPqwIcLHk_Bi|~3wFyNZHlf5%q@*tan#Cr#Ah)%{29OoN z60nW|^CkrF-Ol$~0b0h3S{Qn=zLm+CE0AI>XygaY0_1aWib~%Cgi^$ty9H%OGPfP ze7=|#)Q3Y;|H`vp@eiNHKmBI-CkOfXecb<$+wuH=%*UP2?a%*z1BVN+${@NdApigX M07*qoM6N<$g5DE-!2kdN literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/favicon-16x16.png b/apps/learn/public/favicon/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..7d05a72096bbbe8116810db30032c3b81c7db140 GIT binary patch literal 341 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 O0AXyfs0M`pz5fEg=dTO^ literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/favicon-196x196.png b/apps/learn/public/favicon/favicon-196x196.png new file mode 100644 index 0000000000000000000000000000000000000000..1e0258526ae9c517ff687e2db4bce3d01e9e6041 GIT binary patch literal 3032 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 sY= z@ZrO&SFcW9o5pC-X^UQpZdBI|+e5s@JW)`~IA z+vvSa{)XA}noMWrhG!eIH*NoZ@AKSQ5&L}$CTMLqXJlF^8@b9ZhS@@LP1e4bN~PV literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/favicon-48x48.png b/apps/learn/public/favicon/favicon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..40377a51b54a7a27eeca15f66335f59b370e8085 GIT binary patch literal 4769 zcmaJ@c|278+dh`EWXl@D7%7!y42sEaFtRqbA*wNkEVDEQGq$uSC5*CU%~qC>BwMyb zcA`iqJ6XrR)2rwA^!(mG-se4^&pGG&z0ZAJ_jNDlbIt<`Geb^x5q1CoIE@f+C z`(!w2;^v7307`$dr7!BqhM?xq2A11Kw{P)voaZe7 zES1OF#ABDv^B6$i<>A$C2nl7k;TJfXgs`r^-NTMZ4joOEDRb3%7-}D8?V!3KF_`r> z(2qVpzw>pcaw=(Rw}aZr9ekAcWYlE3JD`RPQHS+OM4BV&o2!Bu1rWo`AfCzAI@d!D z0I}w{hgxoeGPSwg4y!7zXoB9bup$fhKvYCVrsl7*J^W z#+e<61^`cLfG!xw?UGuIX{1lyHB4H<*04go$9C>po+H6S=%SGElRsWJk3;(YB)AQPrkNO#R}&Q)Sa z8G-?*ZH;M4+16qhK)hnQkA>EHkWk*%)x z`>I;Bsmbw?NtY>4`f5Y^zQ-Z~tSPxPv|ss%ks07I>!kNzotWrlA~rG>SD*)j~tnoc1o*)jD>0bQW_x)hXt)4Jl!Ag zTLf+-XvgQ*X587kfyVn3AS0$)nRONM8&gvIjUhMpB2IUWD!+D+6?nLWdQfHoHf^Mq zBctGw%`v0A(>I|@60v)1PkcFnynE)gW+g0dTRm%o78n@AxKQ0bfOgP|+#``AQ2>vt zGL*Uj08eVRBDK#l0PS&^V*pV3^O!?+w2;Y1Rsevf-a1pL!@}{NKd+W6>AhHGtq>#n zFkGACM6EiH?&0y^!VV9GnT74&}cDZfGK9GUn*IM>!&-mgPwN zYT*vr+q8iu5cJ{h!%9QN=vzgXn7%N2YnNwBh&=q5>eWS7=5`E@P50;$DHhiVE=kYo zGXCjJ1_B>OV1m08xm+H7LpwaWuYc_UO5|jtAZ7xkViT!?5ksB#5fH6SLDN}JFop&5 z&9Pp&%Twohn?^H4nV|HtrRSuIc`I0L+3ws`tUCpMl5Jir?Z>-SPjQ01rlAb-PA*7_ zOQuL)ImN|y^$FqxSM%d>Gj>U78r0~Bkq2S`A(v^HsoBlrmSl2rmWFHoG0s{PoCk`F zDy4DL%pdPGe;6<2hc$$bny{sxKxRhsUR1$qO)x)y2GxyE&Arr~lk$Z%Hx%~F-UyfK zW1(PqKZj4*J3+cVQBbcnQ!btYI_dDYHai8M4J$|xGPfg!h_2uBa z$9bm_;UpvMA?z=lb*xlaA>QQ0q0e#gO;(VvP|CMr9h@Eha!hhsa<6;c^Ih_T^3V7C^;h>h&6DN@ z=V$xr-o#|>WZC337!J1K%~o-);!;IO#ejF`jOJ&|EOnY~t!0gC`g@n*8g4aXO=yPR zOYf364^d`4M-%o`RK+Z|(J((fp1PHFE#4i;KH7S{BC7s+Mwd~>sj`y`_g%+SC_iZzYh$a`v|X+yPHv-z55)ax)SJB#bJ^|TPRP2@;~ zCAOAi=O^aZ`y}Fq_(%C8Pj{bQv&8o+&h5^z&n3(qo>yB(uS>7v);q=8j`NE3ULaox zAd$V>d_0Mjvza5xA9Ct*K1|!Xin^wGC9kLmy)dS=^2YhZ30dN@9%kX6`L)JOh%8ie zzx}+Hk@zlgF#j9w%l9^ohQOCQrt*oR&5j>5=sK&58>rD6ZDYw{N-Hzezfo(hI>g4b)#Au4?ta2Gi8QZg)&GX@1mXeCGG;e)WrL@Q_BeR8VhFd=SfS z%Fc!D*1gEhni1-<;F8&)YYguhCK#%2iQIa_ON|nKTrRa@Y6I{6k=Oa{#y2^&=%nbR3?!#pZ1LHzkW!gabCa3AG=H`LsTK`zbFm4?9XgT z9l0$SP(>@WC@Xx^S4Od08V1+szY~-SvlQ}`S9C;HI8)pfy8~OVw-&|jS&X8P*30hH z!Q}|#o$lw)_0Hb5RgTGtZf?aFtlF1j1kf?g)^zu{p362j&j`g_%_HVz7i<<9lueG> znqBP)Sfk?l`+r<4ZJD1%%x2Ew^ET{iUR|tm*Xj9mZ;>-!bSZp7^eXP+4|1BH`&vYM zaeGTUlL}g8{&HJM-oSF&xr}wcX)X<9n|1pc7X&oO1KeP|U-z;5YokdX3cEf7C^W-vc zsTyfj^q-G1lEtow8CIA63Zg5HVZ0kvB5hMrlVvoPw#IKi8Ow6cN=Y`;()bcTNZl~m zjrVZ80E60Q}&~OeZD`^ZP;emBV`~J9+@m5 zA<8LIwd~ySWF)I7i?6dK$mSPy*6Zce(B9~daVKiGZ}G@hSZ7TEHD`rHf0^?N)+p5| zQQ1M&SbDLW-!TwKFQZosHC9Q)%j|0JTdZ_#V;ZwQnQv%L1?=xCY}{Sh309Lndhk~% zOx8z{EeS4UUo;5|=r|LcuplEG+7*k$qMfNXnz8Btz$D{lg(9O&O<))TP9FW+N1lQs z9-sk0U5i3QV?3~AkQ3I`4X**FzpDX*+?+MQwkoC&Q=%UBx*NiegthcDv%>g!VAPz! zTACnr3haOYhb5yy6r3mC3r5iZ|HTVCSpPOFfI)w`kUccO{}F{UwE*c6NLY}XJVXuy zfj~g#)#Me=D`KGMUC>UlASeV1Re-1}D4vspLSafOFl9y1-v{_0Aj#PUhJ+jZ9qwSK z0lrQq6JZJpzP`TlzDn{0lB9PuAoyw~5AI;fcf1x-{?l!yGz>W`zT>HqJF!~Ns!MMh%( ztM~sT_OhZ9u?k467r~o^Iq02>)bCJ4m>vm>CKE_j1cK+ELRwrWkO^Mb2}BT7SsntC zF-2qC@V_mm|ALsB!i?}D20yB58F#VQ<#QTW~4|JCb1rh@_cz5Hi*4>tddKNf#5^Q42}h9gp*0swQZ z5nRWL(*MQI7@=f)Y!Av89$8-+V)a}=NS}O4p8370@eL1wG!XJkOJq+t`@;)e;YVJF zf-X8~HWMp1uO zw&x_Y2-Qn6%ZlsVIFr?(uC#sIlR})i`FyeQyiGf`N(Qq2N}$^3aUi$8QSbRIcQfgb z+PyuEI%95b?sX|*V4x`uhbykGHVX_4G&(gRBPVCt#9YPeI-WhKBkJhAXnM5deQyRaLT|pPwcHrJe!mUio7W21L6 z2AcoyG$XBHd6|?DA1_%lQnCLX=>9`-dZJX{vAEzOC3}$gHTa=T~*e&;&g%cAZ!8576-=5F)v_xazf~qk-ih zB9V5G8^@ZV-`kRsYD3PA{x>C9EcSsC!r{slcG04uB5+Eh1`FhjMbhM?i-?HGLp%2+ zO#{0Y_u_3(Mp$fIoS~GIRJv-*7bR0bi|p@jtfHc#tfnTsQV*Xgb13+w4A)NS`egX{ zac@R;b|{HNBIC;O>}Yu9l~;vqn{}uOLG7c5MD&&Tk z9vMlC$8qZoV;9U#OlX}`8H0m^_4!TOjJ*t+HAO|s8d>4|8msd&GrV+083g>?qW~YD zl25x45nM}VvSFYP#utAo@;7HI>fHn`qfn_uMNmZ^-a-)VnRYfz4mlY#Pr2S zJff%P`&pazk&a+X7G`rZGk7%QtA#hlyTHh?@FD~``<63@@yXZk-%WRRc3#vrR)Li& z%B8*RU#ilqHj~4{IThX73xtv43=T{XABD-ODNMn_>2QEGwb@#DlHpPR%uFuIPzpEd zxOzg45jbgyFaTn_U0n?`I|detR5lExELn%s5C<>cmw^FeS65fM;D>Hziz9%zT4X2( z2gj#{g#ub9Ty8bF*+h~D<>0`dQB_%K;^E)UKs-mCr0yU%WE53^iZ*zP$$;NOr_+~zFa_l#1`C-^+K rp-@ZF>?Y(`62`cjVUeKv42d!%fg>`jxot>SH zjg9v9_EM?T)6=u7t7~Xzh|A^DXtdhe+KP&boSdBO?ChYRpxD@0A0HnMhjZh`jkvft zGMO9}7DgZt3JVL_Y<6;TG9Hg#d10Szm;jv~6%h^AOtl&XhfVZNe6E_h)RR;hg+KxT ze-RoIc$7M!sXiP1-peNEikdn3Tgl^x*q*j>=D7sRz*y<2IlbNke|95;=J%;|%7Uad zayuvYRqHH{da~SqVyYL8$2c!tnHyE731(C?oM-u`Ih${8*AVFDXoguNp;`a;7Q~$Z z>u=v$b#c)V{i}4AB>mv)4%#)4p-Q_nXu%s0*Pp?|N>@kU1@k_&m|5I2J9!@A_GBZZ zw$}aysuQ(zDSYMjM@@*Z-Vu;yOwVMnD~Vtb!%toq^8t+3aO) zQ0NHVmAf-wD^pJEcTOHMVH`)gD)%tkA&Vp6*p8YWBr+j5%O$5+4B~(4dgJOVt~Jf! zzcTDOrJFtLpS|gy*U2}hv#4#>#0S_m__dUxTC_;*Q&;vWoIpDjwhbPo4GYK06<32n zLuGjA(g*m(Obtn-5cel6oO9{|X`-3#m4e*}Eqm;+WUXeny>qR>gI={&YpoqkMJTbt z`;?^q_W0Fqxz%EKRk=5)O3?ZeX-$AnuU^T;Nsx>Z+9NxOd!jq<_>Vs;S(|w$B!!lS zwo=9UFXM^;+a}n(L=v`L|)Ro)w^UwX`GJIO+%^p3B@)Zq;-0>ty?5TzA%+j05z#s>-C%g~ft6Gp6y z8dSM2T#NHa-<50bCup@yP5BkrOR8Vg(516edrQY5G7aAsa0q$;rG6>f{qgFtSMBiP z)9@d59%l?v12ZRTQ)QG*;mc24Z#_pfWY|)EAx%Y}X&^->a&LQ7r{50{2ZyHQCD2Iu zMau;Dl5=uiS~!#fvDYu;vsU<#&@erVq-()5L!cqvZFN4b>>2Kk@saQF9 zB=1;3D$%=15#M2M^vwoU&GUB!BfDS_Ys@<{rpgilW~3jSWJ7ES3hBp{Sw4;<0+H*p z;0~gU=)lPKkif2SKbdrZkKx4J7^DdicVGrpSBZtg96T3UN1wPEBNzo^>3f9@fq>Q6 zo}uG#m*|iKjDBQ;zHT0KrDucw>FeJMLB_NZ{he7B6|9fK*E&$7-9~ZY&5_iTLX7gOVO(eU{obbmxheGrBDA46DVb^rhX literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/favicon.ico b/apps/learn/public/favicon/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..343ad561d7124831f651e4a8146f1f04bbf129b2 GIT binary patch literal 1150 zcmbtUyNbd<6rF|bwhXX zAC)Aag`ib9J9peHS&6RhCY+hfojK>;Im3jpC;oaojJGm-e`f5BF{W_v5RaVWykm^d zy}q0w#=HrILLVF^2Ob1*h-*B^bLP3pl_Uw#Xw

      ?(bkQh*&I!R;z_vE(gEge>a!* zL;PeiiOFPw!C-()CWAmAa8rYF_2#ndiqLiQD;y3ZpUByVllHM{kskpIr!HPY$yujh8D qLwQtHMYr2^-RtH0YhyZZ^7Y#MSN!T7xb)aXhq(W`zxIFNul*&-t!U@TTo7*2x3_fW{0DUzg2P@Bax3h5Db6|JFA)Hgt7$CnqPTr>E!V=f}s# z*VosTO6BP2=FMg~lF4MRU%!6%@L^3&4WG|%ZEdx+wQXo<5R1hEfuO3Y3X8>JFqr1%W~o&A;>8Q0 zP>4pOB@)T==g&nVQDtRiU0vPNr%$b{tSl@na5x;1NGvHSxpnInl}e>hD0z8#`}gn9 z$jCT%?i`E73JMBhFc{g{+41r5Mn*=Vp`mm--PP4KEG*2=&(GiAzv{|X{qGBkIqKyD zSe_daJ(#HHrkoD2F*h+p(w?~?E!9^H0RVMtI+fxZ*Ecl~?*9>wQV&)eXpS|9)fI}M zE#{AQn_{ms`5zoRHZ}~LkDY;chX=}X4oKEc$fKj8^Nwl0ywlRL6f2M-zD3CNKd%mD z)2;irw-@fjr|$_Uw0m;zP~Ao4koDS&3$RUa#cGp1jfeb%y#*HvxRa(ChX6G znq-lg510m$fgna+TM;R9kg?L zW6MduABvPLQ+<2Yiq?SF%|XQn`)pxV?SWLrZAm06VhUN~PD+dotVOk5FuJamly1hz zQQ8*?x?O}RjJb}jA_|vgnKMau!^k^_^~gp_R!t1p0Hny3!EA;*ydCl3y*Co6$j8rQ zYM=(w96*4|G1%0~n?CK?9&=pjhR4&msa8eG)L%RU5ChL;K_SUfZ8 z`$dh)sU&|qvNZ&e$`CX=6LOk-nt0Bf#A-7B?hdv$!U30QUA0gK;}ws*fPADuSpJ@0 zu|%#mi!09m3wU|5ovUoLPW>%q`HI09MB&})M%i{-Lp$+h+9iik{XELt_SCbS8mpXx zU#dTp^dU)>kPGjNvQijANp9+d&-Ta3_sN8o^ZwLEbl3;>NcsJkKd)oPseb#AL6N4x z2;ch@Ronxd)(}!l3i4zfU%c^p4s7GKz_jElJyaQ5XP~8hsNn}tG$b^8f$1e2#xz8v zB&8DYnup(jYwNkT)Q5^)aJGEq9)X}45gN-hQmWM1TMvrw7;~-$q^)1L)df5(!JLN} zw?R}_7KrJ)4*YU9S+@sxcqJ^Zf;>SAs&#F|LX#6{rNPI~EYE@Lo8kF!jhIv#O)<_y zqY8-odq8u}a)n%VAIr>4t<8$geW{&AlY(4EKrn1Pk~Q@0K)U5?lN>rXWeL@Yvym1<; zLz*DXWY$NnlOT)>mE{8U;C)Ps7_z7_M4rgwwZf?o zU%m#((M9es`AokeU6Zeio{3MKF6?%Ojre@2e|t=9@`VA^b9M}sJ5#z`}_LjA7%?d}aWX1vh@|^Uf7bWi|#CY?w0O&4W)EcK?)<2E@ed7QC literal 0 HcmV?d00001 diff --git a/apps/learn/public/favicon/ms-icon-150x150.png b/apps/learn/public/favicon/ms-icon-150x150.png new file mode 100644 index 0000000000000000000000000000000000000000..bbdf205047c3cbdd698c15b9e5e1a21333d1fbb2 GIT binary patch literal 3404 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 literal 0 HcmV?d00001 diff --git a/apps/learn/public/img/design-system-marks/atoms-illustration--dark.svg b/apps/learn/public/img/design-system-marks/atoms-illustration--dark.svg new file mode 100644 index 00000000000..fae400998e3 --- /dev/null +++ b/apps/learn/public/img/design-system-marks/atoms-illustration--dark.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/img/design-system-marks/atoms-illustration--deep-dark.svg b/apps/learn/public/img/design-system-marks/atoms-illustration--deep-dark.svg new file mode 100644 index 00000000000..fae400998e3 --- /dev/null +++ b/apps/learn/public/img/design-system-marks/atoms-illustration--deep-dark.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/img/design-system-marks/atoms-illustration--light.svg b/apps/learn/public/img/design-system-marks/atoms-illustration--light.svg new file mode 100644 index 00000000000..a2189389763 --- /dev/null +++ b/apps/learn/public/img/design-system-marks/atoms-illustration--light.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/img/design-system-marks/design-system-marks--dark.svg b/apps/learn/public/img/design-system-marks/design-system-marks--dark.svg new file mode 100644 index 00000000000..928eafbfc38 --- /dev/null +++ b/apps/learn/public/img/design-system-marks/design-system-marks--dark.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/img/design-system-marks/design-system-marks--deep-dark.svg b/apps/learn/public/img/design-system-marks/design-system-marks--deep-dark.svg new file mode 100644 index 00000000000..928eafbfc38 --- /dev/null +++ b/apps/learn/public/img/design-system-marks/design-system-marks--deep-dark.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/img/design-system-marks/design-system-marks--light.svg b/apps/learn/public/img/design-system-marks/design-system-marks--light.svg new file mode 100644 index 00000000000..26fff33c64f --- /dev/null +++ b/apps/learn/public/img/design-system-marks/design-system-marks--light.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/img/design-system-marks/fragments-illustration--dark.svg b/apps/learn/public/img/design-system-marks/fragments-illustration--dark.svg new file mode 100644 index 00000000000..01331d3d8de --- /dev/null +++ b/apps/learn/public/img/design-system-marks/fragments-illustration--dark.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/img/design-system-marks/fragments-illustration--deep-dark.svg b/apps/learn/public/img/design-system-marks/fragments-illustration--deep-dark.svg new file mode 100644 index 00000000000..01331d3d8de --- /dev/null +++ b/apps/learn/public/img/design-system-marks/fragments-illustration--deep-dark.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/img/design-system-marks/fragments-illustration--light.svg b/apps/learn/public/img/design-system-marks/fragments-illustration--light.svg new file mode 100644 index 00000000000..e65e5c2e91a --- /dev/null +++ b/apps/learn/public/img/design-system-marks/fragments-illustration--light.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/learn/public/img/smart-office.png b/apps/learn/public/img/smart-office.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a684ec6bde828bbf45bbf0d3655f93d2950c6d GIT binary patch literal 313194 zcmaI81$ZPok~L~<+ikl|ZDwYdnVGT8TxMowrZzLPyUlH8W@ct)X6EO+JF`1;cm7xP z<(EpO6p|v9suL$d6)N{b4E`(DR}c^ocnNV~1rQMM!_UJ4`paj|TyS;V=Ly0@Kt=!r zq$(QrRS)v>n!rF@K?VfGoeTuTHxLBm`7_J+vyu}%2*|N62nc5i2nf1uMzcKk=Z!!k zH3?%G84#+^G&Be#C^886XA1Q53j&G-@|U#F6o@1!_Wz_6Kq>xF1`Grw*bD^XA7wN? z&wqWyKaaoa{P!6=2lRg>=79aPH27f-`2VCW{;GznO0oZWg0U4>cK`u_MfvLh1xd@m z_>`t@rljVmCL_&hU}Ht6XK15uMCWQ{`&TUxZdcCFq?M7Q9)YWsrL_a6D-Y3smEinL z|CJ3OBKWT&jut#bYBF*JLN@kB1gv!Qbo4~LUkL~Zxa|#%ITeIO|55$(iigP5(b1L@ z0B~_}p>tuPv#~b;FmP~i0O%P3jEuCOC1@SotR3}SX{{ZI|69mE

      )&7}%THI-1#7 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%0AIKv^`#w{rBk&8s2&2>+6in zg)$A8&%yo;G!Fdgo0OL3E(qT&y{092p+ZSoYCRs^fx9iiD0s64@{wdnWpo@DAt_

      Ej$nfIEyw?AprE(l2NKqS&dNQ%k@8~*mEq* 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%0Ash%zGW}Mm@pS$ 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

      D)YE&y8XggFHJ{ndo)YQy&^{}wOQ`s)6)q0 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