mirror of
https://github.com/supabase/supabase.git
synced 2026-05-07 09:20:21 -04:00
Regenerate the registry files.
This commit is contained in:
@@ -1,297 +1,215 @@
|
||||
|
||||
// @ts-nocheck
|
||||
// This file is autogenerated by scripts/build-registry.ts
|
||||
// Do not edit this file directly.
|
||||
import * as React from 'react'
|
||||
import * as React from "react"
|
||||
|
||||
export const Index: Record<string, any> = {
|
||||
default: {
|
||||
'password-based-auth-nextjs': {
|
||||
name: 'password-based-auth-nextjs',
|
||||
type: 'registry:block',
|
||||
registryDependencies: ['button', 'card', 'input', 'label'],
|
||||
component: React.lazy(
|
||||
() => import('@/registry/default/blocks/password-based-auth-nextjs/app/login/page.tsx')
|
||||
),
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/blocks/password-based-auth-nextjs/app/login/page.tsx',
|
||||
'registry/default/blocks/password-based-auth-nextjs/app/error/page.tsx',
|
||||
'registry/default/blocks/password-based-auth-nextjs/app/protected/page.tsx',
|
||||
'registry/default/blocks/password-based-auth-nextjs/app/confirm/route.ts',
|
||||
'registry/default/blocks/password-based-auth-nextjs/components/login-form.tsx',
|
||||
'registry/default/blocks/password-based-auth-nextjs/middleware.ts',
|
||||
'registry/default/blocks/password-based-auth-nextjs/app/sign-up/page.tsx',
|
||||
'registry/default/blocks/password-based-auth-nextjs/app/sign-up-success/page.tsx',
|
||||
'registry/default/blocks/password-based-auth-nextjs/components/sign-up-form.tsx',
|
||||
'registry/default/blocks/password-based-auth-nextjs/app/forgot-password/page.tsx',
|
||||
'registry/default/blocks/password-based-auth-nextjs/app/update-password/page.tsx',
|
||||
'registry/default/blocks/password-based-auth-nextjs/components/forgot-password-form.tsx',
|
||||
'registry/default/blocks/password-based-auth-nextjs/components/update-password-form.tsx',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'password-based-auth-react': {
|
||||
name: 'password-based-auth-react',
|
||||
type: 'registry:block',
|
||||
registryDependencies: ['button', 'card', 'input', 'label'],
|
||||
component: React.lazy(
|
||||
() =>
|
||||
import('@/registry/default/blocks/password-based-auth-react/components/login-form.tsx')
|
||||
),
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/blocks/password-based-auth-react/components/login-form.tsx',
|
||||
'registry/default/blocks/password-based-auth-react/components/sign-up-form.tsx',
|
||||
'registry/default/blocks/password-based-auth-react/components/forgot-password-form.tsx',
|
||||
'registry/default/blocks/password-based-auth-react/components/update-password-form.tsx',
|
||||
'registry/default/clients/react/lib/supabase/client.ts',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'dropzone-nextjs': {
|
||||
name: 'dropzone-nextjs',
|
||||
type: 'registry:component',
|
||||
registryDependencies: ['button', 'tooltip', 'progress'],
|
||||
component: React.lazy(
|
||||
() => import('@/registry/default/blocks/dropzone/components/dropzone.tsx')
|
||||
),
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/blocks/dropzone/components/dropzone.tsx',
|
||||
'registry/default/blocks/dropzone/hooks/use-supabase-upload.ts',
|
||||
'registry/default/clients/nextjs/lib/supabase/client.ts',
|
||||
'registry/default/clients/nextjs/lib/supabase/middleware.ts',
|
||||
'registry/default/clients/nextjs/lib/supabase/server.ts',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'dropzone-react': {
|
||||
name: 'dropzone-react',
|
||||
type: 'registry:component',
|
||||
registryDependencies: ['button', 'tooltip', 'progress'],
|
||||
component: React.lazy(
|
||||
() => import('@/registry/default/blocks/dropzone/components/dropzone.tsx')
|
||||
),
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/blocks/dropzone/components/dropzone.tsx',
|
||||
'registry/default/blocks/dropzone/hooks/use-supabase-upload.ts',
|
||||
'registry/default/clients/react/lib/supabase/client.ts',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'dropzone-react-router': {
|
||||
name: 'dropzone-react-router',
|
||||
type: 'registry:component',
|
||||
registryDependencies: ['button', 'tooltip', 'progress'],
|
||||
component: React.lazy(
|
||||
() => import('@/registry/default/blocks/dropzone/components/dropzone.tsx')
|
||||
),
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/blocks/dropzone/components/dropzone.tsx',
|
||||
'registry/default/blocks/dropzone/hooks/use-supabase-upload.ts',
|
||||
'registry/default/clients/react-router/lib/supabase.client.ts',
|
||||
'registry/default/clients/react-router/lib/supabase.server.ts',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'dropzone-tanstack': {
|
||||
name: 'dropzone-tanstack',
|
||||
type: 'registry:component',
|
||||
registryDependencies: ['button', 'tooltip', 'progress'],
|
||||
component: React.lazy(
|
||||
() => import('@/registry/default/blocks/dropzone/components/dropzone.tsx')
|
||||
),
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/blocks/dropzone/components/dropzone.tsx',
|
||||
'registry/default/blocks/dropzone/hooks/use-supabase-upload.ts',
|
||||
'registry/default/clients/tanstack/lib/supabase/client.ts',
|
||||
'registry/default/clients/tanstack/lib/supabase/server.ts',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'realtime-cursor-nextjs': {
|
||||
name: 'realtime-cursor-nextjs',
|
||||
type: 'registry:component',
|
||||
"default": {
|
||||
|
||||
"password-based-auth-nextjs": {
|
||||
name: "password-based-auth-nextjs",
|
||||
type: "registry:block",
|
||||
registryDependencies: ["button","card","input","label"],
|
||||
component: React.lazy(() => import("@/registry/default/blocks/password-based-auth-nextjs/app/login/page.tsx")),
|
||||
source: "",
|
||||
files: ["registry/default/blocks/password-based-auth-nextjs/app/login/page.tsx","registry/default/blocks/password-based-auth-nextjs/app/error/page.tsx","registry/default/blocks/password-based-auth-nextjs/app/protected/page.tsx","registry/default/blocks/password-based-auth-nextjs/app/confirm/route.ts","registry/default/blocks/password-based-auth-nextjs/components/login-form.tsx","registry/default/blocks/password-based-auth-nextjs/middleware.ts","registry/default/blocks/password-based-auth-nextjs/app/sign-up/page.tsx","registry/default/blocks/password-based-auth-nextjs/app/sign-up-success/page.tsx","registry/default/blocks/password-based-auth-nextjs/components/sign-up-form.tsx","registry/default/blocks/password-based-auth-nextjs/app/forgot-password/page.tsx","registry/default/blocks/password-based-auth-nextjs/app/update-password/page.tsx","registry/default/blocks/password-based-auth-nextjs/components/forgot-password-form.tsx","registry/default/blocks/password-based-auth-nextjs/components/update-password-form.tsx","registry/default/clients/nextjs/lib/supabase/client.ts","registry/default/clients/nextjs/lib/supabase/middleware.ts","registry/default/clients/nextjs/lib/supabase/server.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"password-based-auth-react": {
|
||||
name: "password-based-auth-react",
|
||||
type: "registry:block",
|
||||
registryDependencies: ["button","card","input","label"],
|
||||
component: React.lazy(() => import("@/registry/default/blocks/password-based-auth-react/components/login-form.tsx")),
|
||||
source: "",
|
||||
files: ["registry/default/blocks/password-based-auth-react/components/login-form.tsx","registry/default/blocks/password-based-auth-react/components/sign-up-form.tsx","registry/default/blocks/password-based-auth-react/components/forgot-password-form.tsx","registry/default/blocks/password-based-auth-react/components/update-password-form.tsx","registry/default/clients/react/lib/supabase/client.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"dropzone-nextjs": {
|
||||
name: "dropzone-nextjs",
|
||||
type: "registry:component",
|
||||
registryDependencies: ["button","tooltip","progress"],
|
||||
component: React.lazy(() => import("@/registry/default/blocks/dropzone/components/dropzone.tsx")),
|
||||
source: "",
|
||||
files: ["registry/default/blocks/dropzone/components/dropzone.tsx","registry/default/blocks/dropzone/hooks/use-supabase-upload.ts","registry/default/clients/nextjs/lib/supabase/client.ts","registry/default/clients/nextjs/lib/supabase/middleware.ts","registry/default/clients/nextjs/lib/supabase/server.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"dropzone-react": {
|
||||
name: "dropzone-react",
|
||||
type: "registry:component",
|
||||
registryDependencies: ["button","tooltip","progress"],
|
||||
component: React.lazy(() => import("@/registry/default/blocks/dropzone/components/dropzone.tsx")),
|
||||
source: "",
|
||||
files: ["registry/default/blocks/dropzone/components/dropzone.tsx","registry/default/blocks/dropzone/hooks/use-supabase-upload.ts","registry/default/clients/react/lib/supabase/client.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"dropzone-react-router": {
|
||||
name: "dropzone-react-router",
|
||||
type: "registry:component",
|
||||
registryDependencies: ["button","tooltip","progress"],
|
||||
component: React.lazy(() => import("@/registry/default/blocks/dropzone/components/dropzone.tsx")),
|
||||
source: "",
|
||||
files: ["registry/default/blocks/dropzone/components/dropzone.tsx","registry/default/blocks/dropzone/hooks/use-supabase-upload.ts","registry/default/clients/react-router/lib/supabase.client.ts","registry/default/clients/react-router/lib/supabase.server.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"dropzone-tanstack": {
|
||||
name: "dropzone-tanstack",
|
||||
type: "registry:component",
|
||||
registryDependencies: ["button","tooltip","progress"],
|
||||
component: React.lazy(() => import("@/registry/default/blocks/dropzone/components/dropzone.tsx")),
|
||||
source: "",
|
||||
files: ["registry/default/blocks/dropzone/components/dropzone.tsx","registry/default/blocks/dropzone/hooks/use-supabase-upload.ts","registry/default/clients/tanstack/lib/supabase/client.ts","registry/default/clients/tanstack/lib/supabase/server.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"realtime-cursor-nextjs": {
|
||||
name: "realtime-cursor-nextjs",
|
||||
type: "registry:component",
|
||||
registryDependencies: [],
|
||||
component: React.lazy(
|
||||
() => import('@/registry/default/blocks/realtime-cursor/components/cursor.tsx')
|
||||
),
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/blocks/realtime-cursor/components/cursor.tsx',
|
||||
'registry/default/blocks/realtime-cursor/components/realtime-cursors.tsx',
|
||||
'registry/default/blocks/realtime-cursor/hooks/use-realtime-cursors.ts',
|
||||
'registry/default/clients/nextjs/lib/supabase/client.ts',
|
||||
'registry/default/clients/nextjs/lib/supabase/middleware.ts',
|
||||
'registry/default/clients/nextjs/lib/supabase/server.ts',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'realtime-cursor-react': {
|
||||
name: 'realtime-cursor-react',
|
||||
type: 'registry:component',
|
||||
component: React.lazy(() => import("@/registry/default/blocks/realtime-cursor/components/cursor.tsx")),
|
||||
source: "",
|
||||
files: ["registry/default/blocks/realtime-cursor/components/cursor.tsx","registry/default/blocks/realtime-cursor/components/realtime-cursors.tsx","registry/default/blocks/realtime-cursor/hooks/use-realtime-cursors.ts","registry/default/clients/nextjs/lib/supabase/client.ts","registry/default/clients/nextjs/lib/supabase/middleware.ts","registry/default/clients/nextjs/lib/supabase/server.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"realtime-cursor-react": {
|
||||
name: "realtime-cursor-react",
|
||||
type: "registry:component",
|
||||
registryDependencies: [],
|
||||
component: React.lazy(
|
||||
() => import('@/registry/default/blocks/realtime-cursor/components/cursor.tsx')
|
||||
),
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/blocks/realtime-cursor/components/cursor.tsx',
|
||||
'registry/default/blocks/realtime-cursor/components/realtime-cursors.tsx',
|
||||
'registry/default/blocks/realtime-cursor/hooks/use-realtime-cursors.ts',
|
||||
'registry/default/clients/react/lib/supabase/client.ts',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'realtime-cursor-react-router': {
|
||||
name: 'realtime-cursor-react-router',
|
||||
type: 'registry:component',
|
||||
component: React.lazy(() => import("@/registry/default/blocks/realtime-cursor/components/cursor.tsx")),
|
||||
source: "",
|
||||
files: ["registry/default/blocks/realtime-cursor/components/cursor.tsx","registry/default/blocks/realtime-cursor/components/realtime-cursors.tsx","registry/default/blocks/realtime-cursor/hooks/use-realtime-cursors.ts","registry/default/clients/react/lib/supabase/client.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"realtime-cursor-react-router": {
|
||||
name: "realtime-cursor-react-router",
|
||||
type: "registry:component",
|
||||
registryDependencies: [],
|
||||
component: React.lazy(
|
||||
() => import('@/registry/default/blocks/realtime-cursor/components/cursor.tsx')
|
||||
),
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/blocks/realtime-cursor/components/cursor.tsx',
|
||||
'registry/default/blocks/realtime-cursor/components/realtime-cursors.tsx',
|
||||
'registry/default/blocks/realtime-cursor/hooks/use-realtime-cursors.ts',
|
||||
'registry/default/clients/react-router/lib/supabase.client.ts',
|
||||
'registry/default/clients/react-router/lib/supabase.server.ts',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'realtime-cursor-tanstack': {
|
||||
name: 'realtime-cursor-tanstack',
|
||||
type: 'registry:component',
|
||||
component: React.lazy(() => import("@/registry/default/blocks/realtime-cursor/components/cursor.tsx")),
|
||||
source: "",
|
||||
files: ["registry/default/blocks/realtime-cursor/components/cursor.tsx","registry/default/blocks/realtime-cursor/components/realtime-cursors.tsx","registry/default/blocks/realtime-cursor/hooks/use-realtime-cursors.ts","registry/default/clients/react-router/lib/supabase.client.ts","registry/default/clients/react-router/lib/supabase.server.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"realtime-cursor-tanstack": {
|
||||
name: "realtime-cursor-tanstack",
|
||||
type: "registry:component",
|
||||
registryDependencies: [],
|
||||
component: React.lazy(
|
||||
() => import('@/registry/default/blocks/realtime-cursor/components/cursor.tsx')
|
||||
),
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/blocks/realtime-cursor/components/cursor.tsx',
|
||||
'registry/default/blocks/realtime-cursor/components/realtime-cursors.tsx',
|
||||
'registry/default/blocks/realtime-cursor/hooks/use-realtime-cursors.ts',
|
||||
'registry/default/clients/tanstack/lib/supabase/client.ts',
|
||||
'registry/default/clients/tanstack/lib/supabase/server.ts',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'supabase-client-nextjs': {
|
||||
name: 'supabase-client-nextjs',
|
||||
type: 'registry:lib',
|
||||
component: React.lazy(() => import("@/registry/default/blocks/realtime-cursor/components/cursor.tsx")),
|
||||
source: "",
|
||||
files: ["registry/default/blocks/realtime-cursor/components/cursor.tsx","registry/default/blocks/realtime-cursor/components/realtime-cursors.tsx","registry/default/blocks/realtime-cursor/hooks/use-realtime-cursors.ts","registry/default/clients/tanstack/lib/supabase/client.ts","registry/default/clients/tanstack/lib/supabase/server.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"supabase-client-nextjs": {
|
||||
name: "supabase-client-nextjs",
|
||||
type: "registry:lib",
|
||||
registryDependencies: [],
|
||||
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/clients/nextjs/lib/supabase/client.ts',
|
||||
'registry/default/clients/nextjs/lib/supabase/middleware.ts',
|
||||
'registry/default/clients/nextjs/lib/supabase/server.ts',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'supabase-client-react': {
|
||||
name: 'supabase-client-react',
|
||||
type: 'registry:lib',
|
||||
|
||||
source: "",
|
||||
files: ["registry/default/clients/nextjs/lib/supabase/client.ts","registry/default/clients/nextjs/lib/supabase/middleware.ts","registry/default/clients/nextjs/lib/supabase/server.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"supabase-client-react": {
|
||||
name: "supabase-client-react",
|
||||
type: "registry:lib",
|
||||
registryDependencies: [],
|
||||
|
||||
source: '',
|
||||
files: ['registry/default/clients/react/lib/supabase/client.ts'],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'supabase-client-react-router': {
|
||||
name: 'supabase-client-react-router',
|
||||
type: 'registry:lib',
|
||||
|
||||
source: "",
|
||||
files: ["registry/default/clients/react/lib/supabase/client.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"supabase-client-react-router": {
|
||||
name: "supabase-client-react-router",
|
||||
type: "registry:lib",
|
||||
registryDependencies: [],
|
||||
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/clients/react-router/lib/supabase.client.ts',
|
||||
'registry/default/clients/react-router/lib/supabase.server.ts',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'supabase-client-tanstack': {
|
||||
name: 'supabase-client-tanstack',
|
||||
type: 'registry:lib',
|
||||
|
||||
source: "",
|
||||
files: ["registry/default/clients/react-router/lib/supabase.client.ts","registry/default/clients/react-router/lib/supabase.server.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"supabase-client-tanstack": {
|
||||
name: "supabase-client-tanstack",
|
||||
type: "registry:lib",
|
||||
registryDependencies: [],
|
||||
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/clients/tanstack/lib/supabase/client.ts',
|
||||
'registry/default/clients/tanstack/lib/supabase/server.ts',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'ai-editor-rules': {
|
||||
name: 'ai-editor-rules',
|
||||
type: 'registry:file',
|
||||
|
||||
source: "",
|
||||
files: ["registry/default/clients/tanstack/lib/supabase/client.ts","registry/default/clients/tanstack/lib/supabase/server.ts"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"ai-editor-rules": {
|
||||
name: "ai-editor-rules",
|
||||
type: "registry:file",
|
||||
registryDependencies: [],
|
||||
|
||||
source: '',
|
||||
files: [
|
||||
'registry/default/ai-editor-rules/create-db-functions.md',
|
||||
'registry/default/ai-editor-rules/create-migration.md',
|
||||
'registry/default/ai-editor-rules/create-rls-policies.md',
|
||||
'registry/default/ai-editor-rules/postgres-sql-style-guide.md',
|
||||
'registry/default/ai-editor-rules/writing-supabase-edge-functions.md',
|
||||
],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'dropzone-demo': {
|
||||
name: 'dropzone-demo',
|
||||
type: 'registry:example',
|
||||
|
||||
source: "",
|
||||
files: ["registry/default/ai-editor-rules/create-db-functions.md","registry/default/ai-editor-rules/create-migration.md","registry/default/ai-editor-rules/create-rls-policies.md","registry/default/ai-editor-rules/postgres-sql-style-guide.md","registry/default/ai-editor-rules/writing-supabase-edge-functions.md"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"dropzone-demo": {
|
||||
name: "dropzone-demo",
|
||||
type: "registry:example",
|
||||
registryDependencies: [],
|
||||
component: React.lazy(() => import('@/registry/default/examples/dropzone-demo.tsx')),
|
||||
source: '',
|
||||
files: ['registry/default/examples/dropzone-demo.tsx'],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
'realtime-cursor-demo': {
|
||||
name: 'realtime-cursor-demo',
|
||||
type: 'registry:example',
|
||||
component: React.lazy(() => import("@/registry/default/examples/dropzone-demo.tsx")),
|
||||
source: "",
|
||||
files: ["registry/default/examples/dropzone-demo.tsx"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
,
|
||||
"realtime-cursor-demo": {
|
||||
name: "realtime-cursor-demo",
|
||||
type: "registry:example",
|
||||
registryDependencies: [],
|
||||
component: React.lazy(() => import('@/registry/default/examples/realtime-cursor-demo.tsx')),
|
||||
source: '',
|
||||
files: ['registry/default/examples/realtime-cursor-demo.tsx'],
|
||||
category: 'undefined',
|
||||
subcategory: 'undefined',
|
||||
chunks: [],
|
||||
},
|
||||
component: React.lazy(() => import("@/registry/default/examples/realtime-cursor-demo.tsx")),
|
||||
source: "",
|
||||
files: ["registry/default/examples/realtime-cursor-demo.tsx"],
|
||||
category: "undefined",
|
||||
subcategory: "undefined",
|
||||
chunks: []
|
||||
}
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
},
|
||||
{
|
||||
"path": "registry/default/clients/react/lib/supabase/client.ts",
|
||||
"content": "import { createClient as createSupabaseClient } from '@supabase/supabase-js'\n\nexport function createClient() {\n return createSupabaseClient(\n process.env.NEXT_PUBLIC_SUPABASE_URL!,\n process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!\n )\n}\n",
|
||||
"content": "import { createClient as createSupabaseClient } from '@supabase/supabase-js'\n\nexport function createClient() {\n return createSupabaseClient(\n process.env.VITE_PUBLIC_SUPABASE_URL!,\n process.env.VITE_PUBLIC_SUPABASE_ANON_KEY!\n )\n}\n",
|
||||
"type": "registry:lib"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
"dependencies": [
|
||||
"react-dropzone",
|
||||
"lucide-react",
|
||||
"@supabase/ssr@latest"
|
||||
"@supabase/ssr@latest",
|
||||
"@supabase/supabase-js@latest"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"button",
|
||||
|
||||
@@ -87,6 +87,21 @@
|
||||
"path": "registry/default/blocks/password-based-auth-nextjs/components/update-password-form.tsx",
|
||||
"content": "'use client'\n\nimport { cn } from '@/lib/utils'\nimport { createClient } from '@/registry/default/clients/nextjs/lib/supabase/client'\nimport { Button } from '@/registry/default/components/ui/button'\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@/registry/default/components/ui/card'\nimport { Input } from '@/registry/default/components/ui/input'\nimport { Label } from '@/registry/default/components/ui/label'\nimport { useRouter } from 'next/navigation'\nimport { useState } from 'react'\n\nexport function UpdatePasswordForm({ className, ...props }: React.ComponentPropsWithoutRef<'div'>) {\n const [password, setPassword] = useState('')\n const [error, setError] = useState<string | null>(null)\n const [isLoading, setIsLoading] = useState(false)\n const router = useRouter()\n const supabase = createClient()\n\n const handleForgotPassword = async (e: React.FormEvent) => {\n e.preventDefault()\n setIsLoading(true)\n setError(null)\n\n try {\n const { error } = await supabase.auth.updateUser({ password })\n if (error) throw error\n // Update this route to redirect to an authenticated route. The user already has an active session.\n router.push('/protected')\n } catch (error: unknown) {\n setError(error instanceof Error ? error.message : 'An error occurred')\n } finally {\n setIsLoading(false)\n }\n }\n\n return (\n <div className={cn('flex flex-col gap-6', className)} {...props}>\n <Card>\n <CardHeader>\n <CardTitle className=\"text-2xl\">Reset Your Password</CardTitle>\n <CardDescription>Please enter your new password below.</CardDescription>\n </CardHeader>\n <CardContent>\n <form onSubmit={handleForgotPassword}>\n <div className=\"flex flex-col gap-6\">\n <div className=\"grid gap-2\">\n <Label htmlFor=\"password\">New password</Label>\n <Input\n id=\"password\"\n type=\"password\"\n placeholder=\"New password\"\n required\n value={password}\n onChange={(e) => setPassword(e.target.value)}\n />\n </div>\n {error && <p className=\"text-sm text-red-500\">{error}</p>}\n <Button type=\"submit\" className=\"w-full\" disabled={isLoading}>\n {isLoading ? 'Saving...' : 'Save new password'}\n </Button>\n </div>\n <div className=\"mt-4 text-center text-sm\">\n Already have an account?{' '}\n <a href=\"/login\" className=\"underline underline-offset-4\">\n Login\n </a>\n </div>\n </form>\n </CardContent>\n </Card>\n </div>\n )\n}\n",
|
||||
"type": "registry:component"
|
||||
},
|
||||
{
|
||||
"path": "registry/default/clients/nextjs/lib/supabase/client.ts",
|
||||
"content": "import { createBrowserClient } from '@supabase/ssr'\n\nexport function createClient() {\n return createBrowserClient(\n process.env.NEXT_PUBLIC_SUPABASE_URL!,\n process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!\n )\n}\n",
|
||||
"type": "registry:lib"
|
||||
},
|
||||
{
|
||||
"path": "registry/default/clients/nextjs/lib/supabase/middleware.ts",
|
||||
"content": "import { createServerClient } from '@supabase/ssr'\nimport { NextResponse, type NextRequest } from 'next/server'\n\nexport async function updateSession(request: NextRequest) {\n let supabaseResponse = NextResponse.next({\n request,\n })\n\n const supabase = createServerClient(\n process.env.NEXT_PUBLIC_SUPABASE_URL!,\n process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,\n {\n cookies: {\n getAll() {\n return request.cookies.getAll()\n },\n setAll(cookiesToSet) {\n cookiesToSet.forEach(({ name, value }) => request.cookies.set(name, value))\n supabaseResponse = NextResponse.next({\n request,\n })\n cookiesToSet.forEach(({ name, value, options }) =>\n supabaseResponse.cookies.set(name, value, options)\n )\n },\n },\n }\n )\n\n // Do not run code between createServerClient and\n // supabase.auth.getUser(). A simple mistake could make it very hard to debug\n // issues with users being randomly logged out.\n\n // IMPORTANT: DO NOT REMOVE auth.getUser()\n\n const {\n data: { user },\n } = await supabase.auth.getUser()\n\n if (\n !user &&\n !request.nextUrl.pathname.startsWith('/login') &&\n !request.nextUrl.pathname.startsWith('/auth')\n ) {\n // no user, potentially respond by redirecting the user to the login page\n const url = request.nextUrl.clone()\n url.pathname = '/login'\n return NextResponse.redirect(url)\n }\n\n // IMPORTANT: You *must* return the supabaseResponse object as it is.\n // If you're creating a new response object with NextResponse.next() make sure to:\n // 1. Pass the request in it, like so:\n // const myNewResponse = NextResponse.next({ request })\n // 2. Copy over the cookies, like so:\n // myNewResponse.cookies.setAll(supabaseResponse.cookies.getAll())\n // 3. Change the myNewResponse object to fit your needs, but avoid changing\n // the cookies!\n // 4. Finally:\n // return myNewResponse\n // If this is not done, you may be causing the browser and server to go out\n // of sync and terminate the user's session prematurely!\n\n return supabaseResponse\n}\n",
|
||||
"type": "registry:lib"
|
||||
},
|
||||
{
|
||||
"path": "registry/default/clients/nextjs/lib/supabase/server.ts",
|
||||
"content": "import { createServerClient } from '@supabase/ssr'\nimport { cookies } from 'next/headers'\n\nexport async function createClient() {\n const cookieStore = await cookies()\n\n return createServerClient(\n process.env.NEXT_PUBLIC_SUPABASE_URL!,\n process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,\n {\n cookies: {\n getAll() {\n return cookieStore.getAll()\n },\n setAll(cookiesToSet) {\n try {\n cookiesToSet.forEach(({ name, value, options }) =>\n cookieStore.set(name, value, options)\n )\n } catch {\n // The `setAll` method was called from a Server Component.\n // This can be ignored if you have middleware refreshing\n // user sessions.\n }\n },\n },\n }\n )\n}\n",
|
||||
"type": "registry:lib"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -36,7 +36,7 @@
|
||||
},
|
||||
{
|
||||
"path": "registry/default/clients/react/lib/supabase/client.ts",
|
||||
"content": "import { createClient as createSupabaseClient } from '@supabase/supabase-js'\n\nexport function createClient() {\n return createSupabaseClient(\n process.env.NEXT_PUBLIC_SUPABASE_URL!,\n process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!\n )\n}\n",
|
||||
"content": "import { createClient as createSupabaseClient } from '@supabase/supabase-js'\n\nexport function createClient() {\n return createSupabaseClient(\n process.env.VITE_PUBLIC_SUPABASE_URL!,\n process.env.VITE_PUBLIC_SUPABASE_ANON_KEY!\n )\n}\n",
|
||||
"type": "registry:lib"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
},
|
||||
{
|
||||
"path": "registry/default/clients/react/lib/supabase/client.ts",
|
||||
"content": "import { createClient as createSupabaseClient } from '@supabase/supabase-js'\n\nexport function createClient() {\n return createSupabaseClient(\n process.env.NEXT_PUBLIC_SUPABASE_URL!,\n process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!\n )\n}\n",
|
||||
"content": "import { createClient as createSupabaseClient } from '@supabase/supabase-js'\n\nexport function createClient() {\n return createSupabaseClient(\n process.env.VITE_PUBLIC_SUPABASE_URL!,\n process.env.VITE_PUBLIC_SUPABASE_ANON_KEY!\n )\n}\n",
|
||||
"type": "registry:lib"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
"description": "Component which renders realtime cursors from other users in a room.",
|
||||
"dependencies": [
|
||||
"lucide-react",
|
||||
"@supabase/ssr@latest"
|
||||
"@supabase/ssr@latest",
|
||||
"@supabase/supabase-js@latest"
|
||||
],
|
||||
"registryDependencies": [],
|
||||
"files": [
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"files": [
|
||||
{
|
||||
"path": "registry/default/clients/react/lib/supabase/client.ts",
|
||||
"content": "import { createClient as createSupabaseClient } from '@supabase/supabase-js'\n\nexport function createClient() {\n return createSupabaseClient(\n process.env.NEXT_PUBLIC_SUPABASE_URL!,\n process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!\n )\n}\n",
|
||||
"content": "import { createClient as createSupabaseClient } from '@supabase/supabase-js'\n\nexport function createClient() {\n return createSupabaseClient(\n process.env.VITE_PUBLIC_SUPABASE_URL!,\n process.env.VITE_PUBLIC_SUPABASE_ANON_KEY!\n )\n}\n",
|
||||
"type": "registry:lib"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
"title": "Supabase Client for Tanstack Start",
|
||||
"description": "",
|
||||
"dependencies": [
|
||||
"@supabase/ssr@latest"
|
||||
"@supabase/ssr@latest",
|
||||
"@supabase/supabase-js@latest"
|
||||
],
|
||||
"registryDependencies": [],
|
||||
"files": [
|
||||
|
||||
@@ -71,6 +71,18 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -192,7 +204,12 @@
|
||||
"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"],
|
||||
"dependencies": [
|
||||
"react-dropzone",
|
||||
"lucide-react",
|
||||
"@supabase/ssr@latest",
|
||||
"@supabase/supabase-js@latest"
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"path": "registry/default/blocks/dropzone/components/dropzone.tsx",
|
||||
@@ -312,7 +329,7 @@
|
||||
"title": "Realtime Cursor",
|
||||
"description": "Component which renders realtime cursors from other users in a room.",
|
||||
"registryDependencies": [],
|
||||
"dependencies": ["lucide-react", "@supabase/ssr@latest"],
|
||||
"dependencies": ["lucide-react", "@supabase/ssr@latest", "@supabase/supabase-js@latest"],
|
||||
"files": [
|
||||
{
|
||||
"path": "registry/default/blocks/realtime-cursor/components/cursor.tsx",
|
||||
@@ -400,7 +417,7 @@
|
||||
"title": "Supabase Client for Tanstack Start",
|
||||
"description": "",
|
||||
"registryDependencies": [],
|
||||
"dependencies": ["@supabase/ssr@latest"],
|
||||
"dependencies": ["@supabase/ssr@latest", "@supabase/supabase-js@latest"],
|
||||
"files": [
|
||||
{
|
||||
"path": "registry/default/clients/tanstack/lib/supabase/client.ts",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { type Registry } from 'shadcn/registry'
|
||||
import { type Registry, type RegistryItem } from 'shadcn/registry'
|
||||
import { clients } from './clients'
|
||||
import dropzone from './default/blocks/dropzone/registry-item.json' assert { type: 'json' }
|
||||
import passwordBasedAuthNextjs from './default/blocks/password-based-auth-nextjs/registry-item.json' assert { type: 'json' }
|
||||
@@ -18,9 +18,11 @@ const combine = (component: Registry['items'][number]) => {
|
||||
})
|
||||
}
|
||||
|
||||
const nextjsClient = clients.find((client) => client.name === 'supabase-client-nextjs')
|
||||
const reactClient = clients.find((client) => client.name === 'supabase-client-react')
|
||||
export const blocks = [
|
||||
passwordBasedAuthNextjs,
|
||||
passwordBasedAuthReact,
|
||||
...combine(dropzone as Registry['items'][number]),
|
||||
...combine(realtimeCursor as Registry['items'][number]),
|
||||
registryItemAppend(passwordBasedAuthNextjs as RegistryItem, [nextjsClient!]),
|
||||
registryItemAppend(passwordBasedAuthReact as RegistryItem, [reactClient!]),
|
||||
...combine(dropzone as RegistryItem),
|
||||
...combine(realtimeCursor as RegistryItem),
|
||||
] as Registry['items']
|
||||
|
||||
@@ -2,7 +2,7 @@ import { createClient as createSupabaseClient } from '@supabase/supabase-js'
|
||||
|
||||
export function createClient() {
|
||||
return createSupabaseClient(
|
||||
process.env.NEXT_PUBLIC_SUPABASE_URL!,
|
||||
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
|
||||
process.env.VITE_PUBLIC_SUPABASE_URL!,
|
||||
process.env.VITE_PUBLIC_SUPABASE_ANON_KEY!
|
||||
)
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"title": "Supabase Client for Tanstack Start",
|
||||
"description": "",
|
||||
"registryDependencies": [],
|
||||
"dependencies": ["@supabase/ssr@latest"],
|
||||
"dependencies": ["@supabase/ssr@latest", "@supabase/supabase-js@latest"],
|
||||
"files": [
|
||||
{
|
||||
"path": "registry/default/clients/tanstack/lib/supabase/client.ts",
|
||||
|
||||
Reference in New Issue
Block a user