Files
supabase/apps/ui-library/registry.json
T
Ivan Vasilov 0990155ae7 feat: more fixes for UI library (#34355)
* Regenerate the registry files.

* Regenerate the llms.txt file.

* Set the supabase project for testing.

* Fix the registryBlock component.

* Various fixes.

* Add missing deps to satisfy TS build.

* Fix the tanstack client.

* Add a tanstack block for password-based auth.

* Fix the command URL.

* Fix the env vars in the React client.

* Add missing pages to the nextjs auth.

* Simplify the tanstack auth block.

* Add success state to the forgot-password form.

* Fix the v0 button. Add some more docs.

* Revert some changes.
2025-03-24 14:24:59 +01:00

553 lines
20 KiB
JSON

{
"$schema": "https://ui.shadcn.com/schema/registry.json",
"name": "Supabase UI Library",
"homepage": "https://supabase.com/ui",
"items": [
{
"name": "password-based-auth-nextjs",
"type": "registry:block",
"title": "Password Based Auth flow for Nextjs and Supabase",
"description": "Password Based Auth flow for Nextjs and Supabase",
"registryDependencies": ["button", "card", "input", "label"],
"dependencies": ["@supabase/ssr@latest"],
"files": [
{
"path": "registry/default/blocks/password-based-auth-nextjs/app/login/page.tsx",
"type": "registry:page",
"target": "app/login/page.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-nextjs/app/error/page.tsx",
"type": "registry:page",
"target": "app/auth/error/page.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-nextjs/app/protected/page.tsx",
"type": "registry:page",
"target": "app/protected/page.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-nextjs/app/confirm/route.ts",
"type": "registry:page",
"target": "app/auth/confirm/route.ts"
},
{
"path": "registry/default/blocks/password-based-auth-nextjs/components/login-form.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/password-based-auth-nextjs/middleware.ts",
"type": "registry:file",
"target": "middleware.ts"
},
{
"path": "registry/default/blocks/password-based-auth-nextjs/app/sign-up/page.tsx",
"type": "registry:page",
"target": "app/sign-up/page.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-nextjs/app/sign-up-success/page.tsx",
"type": "registry:page",
"target": "app/sign-up-success/page.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-nextjs/components/sign-up-form.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/password-based-auth-nextjs/app/forgot-password/page.tsx",
"type": "registry:page",
"target": "app/forgot-password/page.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-nextjs/app/update-password/page.tsx",
"type": "registry:page",
"target": "app/update-password/page.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-nextjs/components/forgot-password-form.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/password-based-auth-nextjs/components/update-password-form.tsx",
"type": "registry:component"
},
{
"path": "registry/default/clients/nextjs/lib/supabase/client.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/nextjs/lib/supabase/middleware.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/nextjs/lib/supabase/server.ts",
"type": "registry:lib"
}
]
},
{
"name": "password-based-auth-react",
"type": "registry:block",
"title": "Password Based Auth flow for React and Supabase",
"description": "Password Based Auth flow for React and Supabase",
"registryDependencies": ["button", "card", "input", "label"],
"files": [
{
"path": "registry/default/blocks/password-based-auth-react/components/login-form.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/password-based-auth-react/components/sign-up-form.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/password-based-auth-react/components/forgot-password-form.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/password-based-auth-react/components/update-password-form.tsx",
"type": "registry:component"
},
{
"path": "registry/default/clients/react/lib/supabase/client.ts",
"type": "registry:lib"
}
],
"dependencies": ["@supabase/supabase-js@latest"]
},
{
"name": "password-based-auth-tanstack",
"type": "registry:block",
"title": "Password Based Auth flow for tanstack and Supabase",
"description": "Password Based Auth flow for tanstack and Supabase",
"registryDependencies": ["button", "card", "input", "label"],
"dependencies": ["@supabase/ssr@latest", "@supabase/supabase-js@latest"],
"files": [
{
"path": "registry/default/blocks/password-based-auth-tanstack/routes/login.tsx",
"type": "registry:file",
"target": "routes/login.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/routes/auth/error.tsx",
"type": "registry:file",
"target": "routes/auth/error.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/routes/_protected.tsx",
"type": "registry:file",
"target": "routes/_protected.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/routes/_protected/info.tsx",
"type": "registry:file",
"target": "routes/_protected/info.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/routes/auth/confirm.ts",
"type": "registry:file",
"target": "routes/auth/confirm.ts"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/components/login-form.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/routes/sign-up.tsx",
"type": "registry:file",
"target": "routes/sign-up.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/routes/sign-up-success.tsx",
"type": "registry:file",
"target": "routes/sign-up-success.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/components/sign-up-form.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/routes/forgot-password.tsx",
"type": "registry:file",
"target": "routes/forgot-password.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/routes/update-password.tsx",
"type": "registry:file",
"target": "routes/update-password.tsx"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/components/forgot-password-form.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/components/update-password-form.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/password-based-auth-tanstack/lib/supabase/fetch-user-server-fn.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/tanstack/lib/supabase/client.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/tanstack/lib/supabase/server.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "dropzone-nextjs",
"type": "registry:component",
"title": "Dropzone (File Upload)",
"description": "Displays a control for easier uploading of files directly to Supabase Storage.",
"registryDependencies": ["button", "tooltip", "progress"],
"dependencies": ["react-dropzone", "lucide-react", "@supabase/ssr@latest"],
"files": [
{
"path": "registry/default/blocks/dropzone/components/dropzone.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/dropzone/hooks/use-supabase-upload.ts",
"type": "registry:hook"
},
{
"path": "registry/default/clients/nextjs/lib/supabase/client.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/nextjs/lib/supabase/middleware.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/nextjs/lib/supabase/server.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "dropzone-react",
"type": "registry:component",
"title": "Dropzone (File Upload)",
"description": "Displays a control for easier uploading of files directly to Supabase Storage.",
"registryDependencies": ["button", "tooltip", "progress"],
"dependencies": ["react-dropzone", "lucide-react", "@supabase/supabase-js@latest"],
"files": [
{
"path": "registry/default/blocks/dropzone/components/dropzone.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/dropzone/hooks/use-supabase-upload.ts",
"type": "registry:hook"
},
{
"path": "registry/default/clients/react/lib/supabase/client.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "dropzone-react-router",
"type": "registry:component",
"title": "Dropzone (File Upload)",
"description": "Displays a control for easier uploading of files directly to Supabase Storage.",
"registryDependencies": ["button", "tooltip", "progress"],
"dependencies": ["react-dropzone", "lucide-react", "@supabase/ssr@latest"],
"files": [
{
"path": "registry/default/blocks/dropzone/components/dropzone.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/dropzone/hooks/use-supabase-upload.ts",
"type": "registry:hook"
},
{
"path": "registry/default/clients/react-router/lib/supabase.client.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/react-router/lib/supabase.server.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "dropzone-tanstack",
"type": "registry:component",
"title": "Dropzone (File Upload)",
"description": "Displays a control for easier uploading of files directly to Supabase Storage.",
"registryDependencies": ["button", "tooltip", "progress"],
"dependencies": [
"react-dropzone",
"lucide-react",
"@supabase/ssr@latest",
"@supabase/supabase-js@latest"
],
"files": [
{
"path": "registry/default/blocks/dropzone/components/dropzone.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/dropzone/hooks/use-supabase-upload.ts",
"type": "registry:hook"
},
{
"path": "registry/default/clients/tanstack/lib/supabase/client.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/tanstack/lib/supabase/server.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "realtime-cursor-nextjs",
"type": "registry:component",
"title": "Realtime Cursor",
"description": "Component which renders realtime cursors from other users in a room.",
"registryDependencies": [],
"dependencies": ["lucide-react", "@supabase/ssr@latest"],
"files": [
{
"path": "registry/default/blocks/realtime-cursor/components/cursor.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/realtime-cursor/components/realtime-cursors.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/realtime-cursor/hooks/use-realtime-cursors.ts",
"type": "registry:hook"
},
{
"path": "registry/default/clients/nextjs/lib/supabase/client.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/nextjs/lib/supabase/middleware.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/nextjs/lib/supabase/server.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "realtime-cursor-react",
"type": "registry:component",
"title": "Realtime Cursor",
"description": "Component which renders realtime cursors from other users in a room.",
"registryDependencies": [],
"dependencies": ["lucide-react", "@supabase/supabase-js@latest"],
"files": [
{
"path": "registry/default/blocks/realtime-cursor/components/cursor.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/realtime-cursor/components/realtime-cursors.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/realtime-cursor/hooks/use-realtime-cursors.ts",
"type": "registry:hook"
},
{
"path": "registry/default/clients/react/lib/supabase/client.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "realtime-cursor-react-router",
"type": "registry:component",
"title": "Realtime Cursor",
"description": "Component which renders realtime cursors from other users in a room.",
"registryDependencies": [],
"dependencies": ["lucide-react", "@supabase/ssr@latest"],
"files": [
{
"path": "registry/default/blocks/realtime-cursor/components/cursor.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/realtime-cursor/components/realtime-cursors.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/realtime-cursor/hooks/use-realtime-cursors.ts",
"type": "registry:hook"
},
{
"path": "registry/default/clients/react-router/lib/supabase.client.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/react-router/lib/supabase.server.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "realtime-cursor-tanstack",
"type": "registry:component",
"title": "Realtime Cursor",
"description": "Component which renders realtime cursors from other users in a room.",
"registryDependencies": [],
"dependencies": ["lucide-react", "@supabase/ssr@latest", "@supabase/supabase-js@latest"],
"files": [
{
"path": "registry/default/blocks/realtime-cursor/components/cursor.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/realtime-cursor/components/realtime-cursors.tsx",
"type": "registry:component"
},
{
"path": "registry/default/blocks/realtime-cursor/hooks/use-realtime-cursors.ts",
"type": "registry:hook"
},
{
"path": "registry/default/clients/tanstack/lib/supabase/client.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/tanstack/lib/supabase/server.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "supabase-client-nextjs",
"type": "registry:lib",
"title": "Supabase Client for Next.js",
"description": "",
"registryDependencies": [],
"dependencies": ["@supabase/ssr@latest"],
"files": [
{
"path": "registry/default/clients/nextjs/lib/supabase/client.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/nextjs/lib/supabase/middleware.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/nextjs/lib/supabase/server.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "supabase-client-react",
"type": "registry:lib",
"title": "Supabase Client for React",
"description": "",
"registryDependencies": [],
"dependencies": ["@supabase/supabase-js@latest"],
"files": [
{
"path": "registry/default/clients/react/lib/supabase/client.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "supabase-client-react-router",
"type": "registry:lib",
"title": "Supabase Client for React Router",
"description": "",
"registryDependencies": [],
"dependencies": ["@supabase/ssr@latest"],
"files": [
{
"path": "registry/default/clients/react-router/lib/supabase.client.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/react-router/lib/supabase.server.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "supabase-client-tanstack",
"type": "registry:lib",
"title": "Supabase Client for Tanstack Start",
"description": "",
"registryDependencies": [],
"dependencies": ["@supabase/ssr@latest", "@supabase/supabase-js@latest"],
"files": [
{
"path": "registry/default/clients/tanstack/lib/supabase/client.ts",
"type": "registry:lib"
},
{
"path": "registry/default/clients/tanstack/lib/supabase/server.ts",
"type": "registry:lib"
}
]
},
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "ai-editor-rules",
"type": "registry:file",
"title": "Prompt rules for AI Editors",
"description": "Prompts for working with Supabase using AI-powered IDE tools",
"registryDependencies": [],
"dependencies": [],
"files": [
{
"path": "registry/default/ai-editor-rules/create-db-functions.md",
"type": "registry:file",
"target": ".rules/create-db-functions.md"
},
{
"path": "registry/default/ai-editor-rules/create-migration.md",
"type": "registry:file",
"target": ".rules/create-migration.md"
},
{
"path": "registry/default/ai-editor-rules/create-rls-policies.md",
"type": "registry:file",
"target": ".rules/create-rls-policies.md"
},
{
"path": "registry/default/ai-editor-rules/postgres-sql-style-guide.md",
"type": "registry:file",
"target": ".rules/postgres-sql-style-guide.md"
},
{
"path": "registry/default/ai-editor-rules/writing-supabase-edge-functions.md",
"type": "registry:file",
"target": ".rules/writing-supabase-edge-functions.md"
}
]
}
]
}