diff --git a/apps/docs/app/page.tsx b/apps/docs/app/page.tsx index ee6dd551ad76c..44fa2d0b76ec4 100644 --- a/apps/docs/app/page.tsx +++ b/apps/docs/app/page.tsx @@ -187,6 +187,13 @@ const additionalResources = [ icon: 'integrations', href: '/guides/integrations', }, + { + title: 'Supabase UI', + description: 'A collection of pre-built Supabase components to speed up your project.', + icon: 'ui', + href: 'https://supabase.com/ui', + external: true, + }, ] const HomePage = () => ( @@ -303,6 +310,7 @@ const HomePage = () => ( href={resource.href} className="col-span-12 md:col-span-6 lg:col-span-3" passHref + target={resource.external ? '_blank' : undefined} > {resource.description} diff --git a/apps/docs/components/Navigation/Navigation.commands.tsx b/apps/docs/components/Navigation/Navigation.commands.tsx index 2ab00c9e48788..2a97ee8fc8cd2 100644 --- a/apps/docs/components/Navigation/Navigation.commands.tsx +++ b/apps/docs/components/Navigation/Navigation.commands.tsx @@ -151,6 +151,12 @@ const navCommands = [ icon: () => , enabled: isFeatureEnabled('integrations:partners'), }, + { + id: 'nav-ui', + name: 'Go to Supabase UI Library', + route: 'https://supabase.com/ui', + icon: () => , + }, ] satisfies Array const filteredNavCommands = navCommands.filter((command) => command.enabled !== false) diff --git a/apps/docs/components/Navigation/NavigationMenu/MenuIconPicker.tsx b/apps/docs/components/Navigation/NavigationMenu/MenuIconPicker.tsx index 2594209642a66..2a17390edf195 100644 --- a/apps/docs/components/Navigation/NavigationMenu/MenuIconPicker.tsx +++ b/apps/docs/components/Navigation/NavigationMenu/MenuIconPicker.tsx @@ -30,6 +30,7 @@ import { IconSecurity, IconSupport, IconTroubleshooting, + IconUI, } from './MenuIcons' function getMenuIcon(menuKey: string, width: number = 16, height: number = 16, className?: string) { @@ -102,6 +103,8 @@ function getMenuIcon(menuKey: string, width: number = 16, height: number = 16, c return case 'queues': return + case 'ui': + return default: return } diff --git a/apps/docs/components/Navigation/NavigationMenu/MenuIcons.tsx b/apps/docs/components/Navigation/NavigationMenu/MenuIcons.tsx index 1eaed4adbe780..7306d2c55a286 100644 --- a/apps/docs/components/Navigation/NavigationMenu/MenuIcons.tsx +++ b/apps/docs/components/Navigation/NavigationMenu/MenuIcons.tsx @@ -666,3 +666,31 @@ export function IconTroubleshooting({ width = 16, height = 16, className }: Home ) } + +export function IconUI({ width = 16, height = 16, className }: HomeMenuIcon) { + return ( + + + + + + ) +} diff --git a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts index 25b3102707d38..2612788b20470 100644 --- a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts +++ b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts @@ -261,6 +261,12 @@ export const GLOBAL_MENU_ITEMS: GlobalMenuItems = [ href: '/reference/api/introduction' as `/${string}`, level: 'reference_javascript', }, + { + label: 'UI Library', + icon: 'ui', + href: 'https://supabase.com/ui' as `/${string}`, + level: 'ui', + }, ], [ { label: 'Data API' }, diff --git a/apps/studio/components/interfaces/Home/ClientLibrary.tsx b/apps/studio/components/interfaces/Home/ClientLibrary.tsx index 529bd0ff11f3f..cb2d14d4515de 100644 --- a/apps/studio/components/interfaces/Home/ClientLibrary.tsx +++ b/apps/studio/components/interfaces/Home/ClientLibrary.tsx @@ -7,7 +7,7 @@ interface ClientLibraryProps { language: string officialSupport?: boolean docsUrl?: string - gitUrl: string + gitUrl?: string altIconName?: string } @@ -50,11 +50,13 @@ const ClientLibrary = ({ )} - - - + {gitUrl && ( + + + + )} diff --git a/apps/studio/hooks/custom-content/CustomContent.types.ts b/apps/studio/hooks/custom-content/CustomContent.types.ts index 7fbe87e074151..a84484def9c99 100644 --- a/apps/studio/hooks/custom-content/CustomContent.types.ts +++ b/apps/studio/hooks/custom-content/CustomContent.types.ts @@ -15,7 +15,7 @@ export type CustomContentTypes = { officialSupport: boolean releaseState?: string docsUrl: string - gitUrl: string + gitUrl?: string altIconName?: string }[] projectHomepageExampleProjects: { diff --git a/apps/studio/hooks/custom-content/custom-content.schema.json b/apps/studio/hooks/custom-content/custom-content.schema.json index 5569c4d71fa51..af9bd62d2720a 100644 --- a/apps/studio/hooks/custom-content/custom-content.schema.json +++ b/apps/studio/hooks/custom-content/custom-content.schema.json @@ -44,7 +44,7 @@ "gitUrl": { "type": "string" }, "altIconName": { "type": "string" } }, - "required": ["language", "officialSupport", "docsUrl", "gitUrl"] + "required": ["language", "officialSupport", "docsUrl"] } }, "project_homepage:example_projects": {