import { z } from 'zod' import { optionBaseSchema, blockBaseSchema } from '../baseSchemas' import { InputBlockType } from './enums' export const fileInputOptionsSchema = optionBaseSchema.and( z.object({ isRequired: z.boolean().optional(), isMultipleAllowed: z.boolean(), labels: z.object({ placeholder: z.string(), button: z.string(), clear: z.string().optional(), skip: z.string().optional(), }), sizeLimit: z.number().optional(), }) ) export const fileInputStepSchema = blockBaseSchema.and( z.object({ type: z.literal(InputBlockType.FILE), options: fileInputOptionsSchema, }) ) export const defaultFileInputOptions = { isRequired: true, isMultipleAllowed: false, labels: { placeholder: ` Click to upload or drag and drop
(size limit: 10MB)`, button: 'Upload', clear: 'Clear', skip: 'Skip', }, } satisfies FileInputOptions export type FileInputBlock = z.infer export type FileInputOptions = z.infer