mirror of
https://github.com/supabase/supabase.git
synced 2026-10-06 09:55:06 +03:00
* init site * add nav menu * add props table component * init all the examples • also includes moving a bunch of ./ui files to ./ui-patterns * update package • might need to remove some of these * Update rehype-component.ts * move nav * more changes * add new source information to contentlayer * fix copy buttons * add text-confirm. start new concept of "fragments" * move base path. add homepage. add theme selection * added colors * add form-item-layout * temporary fix code blocks in light mode. they currently don't switch theme to theme * start adding code themes * Update dark.json * update code block themes * fix animations * add cdmk search * export registry of icons in ./icons package * add comments * add icon copy stuff * Update icons.tsx * more docs * more docs. cleaned up colors and icons docs * Update theming.mdx * add more docs * update * add package * Update tailwind.config.js * update content * Update drawer-demo.tsx * Update aspect-ratio-demo.tsx * add new blocks * Update source-panel.tsx * Update source-panel.tsx * Update source-panel.tsx * add new source block * Update source-panel.tsx * Update _app.tsx * Update page.tsx * Delete layout-old.tsx * remove old themes * remove old ui registry * comment out nav items * Update package-lock.json * Update AssistantChatForm.tsx * move back * move again * update * Update index.tsx * Update package-lock.json * Update package-lock.json * Update package-lock.json * update package * udpate prettier * fix tag issues * Update package-lock.json * update to contentlayer2 * update package-lock.json * fix type errors * ignore spelling * Update avoid-typos.yml * Update avoid-typos.yml * Update package-lock.json * Use ui type definitions. * move tsconfig base stuff. fix content layer issue * Update package-lock.json * Update package-lock.json --------- Co-authored-by: Alaister Young <a@alaisteryoung.com> Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
69 lines
1.9 KiB
TypeScript
69 lines
1.9 KiB
TypeScript
import { z } from 'zod'
|
|
|
|
export const blockChunkSchema = z.object({
|
|
name: z.string(),
|
|
description: z.string(),
|
|
component: z.any(),
|
|
file: z.string(),
|
|
code: z.string().optional(),
|
|
container: z
|
|
.object({
|
|
className: z.string().nullish(),
|
|
})
|
|
.optional(),
|
|
})
|
|
|
|
const backendProviderValues = ['next-auth', 'supabase', 'auth0']
|
|
|
|
const isBackendProvider = (value: unknown): value is (typeof backendProviderValues)[number] =>
|
|
backendProviderValues.includes(value as string)
|
|
|
|
export const registryEntrySchema = z.object({
|
|
name: z.string(),
|
|
description: z.string().optional(),
|
|
dependencies: z.array(z.string()).optional(),
|
|
devDependencies: z.array(z.string()).optional(),
|
|
registryDependencies: z.array(z.string()).optional(),
|
|
files: z.array(z.string()),
|
|
source: z.string().optional(),
|
|
type: z.enum([
|
|
'components:ui',
|
|
'components:fragment',
|
|
'components:component',
|
|
'components:example',
|
|
'components:block',
|
|
'docs:example',
|
|
]),
|
|
category: z.string().optional(),
|
|
backendProviders: z.array(z.string()).optional(),
|
|
subcategory: z.string().optional(),
|
|
chunks: z.array(blockChunkSchema).optional(),
|
|
// Optional path of file that is exported from a package
|
|
optionalPath: z.string().optional(),
|
|
})
|
|
|
|
export const registrySchema = z.array(registryEntrySchema)
|
|
|
|
export type RegistryEntry = z.infer<typeof registryEntrySchema>
|
|
|
|
export type Registry = z.infer<typeof registrySchema>
|
|
|
|
export const blockSchema = registryEntrySchema.extend({
|
|
type: z.literal('components:block'),
|
|
style: z.enum(['default', 'new-york']),
|
|
component: z.any(),
|
|
container: z
|
|
.object({
|
|
height: z.string().optional(),
|
|
className: z.string().nullish(),
|
|
})
|
|
.optional(),
|
|
code: z.string(),
|
|
backendProvidersCode: z.any().optional(),
|
|
highlightedCode: z.string(),
|
|
})
|
|
|
|
export type Block = z.infer<typeof blockSchema>
|
|
|
|
export type BlockChunk = z.infer<typeof blockChunkSchema>
|