@@ -0,0 +1,37 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
const COLOR_SCHEMA = z
|
||||
.string()
|
||||
.regex(/^#[0-9a-fA-F]{6}$/)
|
||||
.nullable()
|
||||
.optional();
|
||||
|
||||
const FONT_FAMILY_SCHEMA = z
|
||||
.enum([
|
||||
'MODERN_SANS',
|
||||
'BOOK_SANS',
|
||||
'ORGANIC_SANS',
|
||||
'GEOMETRIC_SANS',
|
||||
'HEAVY_SANS',
|
||||
'ROUNDED_SANS',
|
||||
'MODERN_SERIF',
|
||||
'BOOK_SERIF',
|
||||
'MONOSPACE',
|
||||
])
|
||||
.nullable()
|
||||
.optional();
|
||||
|
||||
const EmailLayoutPropsSchema = z.object({
|
||||
backdropColor: COLOR_SCHEMA,
|
||||
borderColor: COLOR_SCHEMA,
|
||||
borderRadius: z.number().optional().nullable(),
|
||||
canvasColor: COLOR_SCHEMA,
|
||||
textColor: COLOR_SCHEMA,
|
||||
fontFamily: FONT_FAMILY_SCHEMA,
|
||||
childrenIds: z.array(z.string()).optional().nullable(),
|
||||
outlook: z.boolean().optional().nullable(),
|
||||
});
|
||||
|
||||
export default EmailLayoutPropsSchema;
|
||||
|
||||
export type EmailLayoutProps = z.infer<typeof EmailLayoutPropsSchema>;
|
||||
Reference in New Issue
Block a user