/** * Available field types for the style editor. */ export type StyleEditorFieldType = 'input' | 'dropdown' | 'radio' | 'checkboxGroup'; /** * Available input types for input fields in the style editor. */ export type StyleEditorFieldInputType = 'text' | 'number'; /** * Base option object with label and value properties. */ export interface StyleEditorOptionObject { label: string; value: string; } /** * Extended option object for radio fields with optional image support. */ export interface StyleEditorRadioOptionObject extends StyleEditorOptionObject { imageURL?: string; } /** * Option type for dropdown fields. */ export type StyleEditorOption = StyleEditorOptionObject; /** * Option type for radio fields (supports optional image). */ export type StyleEditorRadioOption = StyleEditorRadioOptionObject; /** * Checkbox option with a key identifier instead of value. */ export interface StyleEditorCheckboxOption { label: string; key: string; } /** * Configuration object for normalized field schemas sent to UVE. */ export interface StyleEditorFieldSchemaConfig { inputType?: StyleEditorFieldInputType; placeholder?: string; options?: StyleEditorRadioOptionObject[]; columns?: 1 | 2; } /** * Normalized field schema sent to UVE. */ export interface StyleEditorFieldSchema { id: string; type: StyleEditorFieldType; label: string; config: StyleEditorFieldSchemaConfig; } /** * Normalized section schema sent to UVE. */ export interface StyleEditorSectionSchema { title: string; fields: StyleEditorFieldSchema[]; } /** * Complete normalized form schema sent to UVE. * This is the output format after processing a style editor form definition. */ export interface StyleEditorFormSchema { contentType: string; sections: StyleEditorSectionSchema[]; }