From e334ad7aab5af145af306181261b69895c59e5bd Mon Sep 17 00:00:00 2001 From: tolvitty Date: Fri, 13 Feb 2026 20:33:54 +0100 Subject: [PATCH] feat: add conditional logic types (ConditionOperator, ConditionRule, FieldConditions) Co-Authored-By: Claude Opus 4.6 --- src/types.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/types.ts b/src/types.ts index c381a7b..cc607ac 100644 --- a/src/types.ts +++ b/src/types.ts @@ -17,6 +17,31 @@ export type FieldType = | 'color' | 'time'; +// --------------------------------------------------------------------------- +// Conditional Logic +// --------------------------------------------------------------------------- + +export type ConditionOperator = + | 'equals' + | 'not_equals' + | 'contains' + | 'not_contains' + | 'is_empty' + | 'is_not_empty' + | 'greater_than' + | 'less_than'; + +export interface ConditionRule { + fieldId: string; + operator: ConditionOperator; + value?: unknown; +} + +export interface FieldConditions { + logic: 'and' | 'or'; + rules: ConditionRule[]; +} + export interface FormField { id: string; label: string; @@ -34,6 +59,8 @@ export interface FormField { max?: number; /** For slider: step increment. */ step?: number; + /** Conditional visibility rules. If undefined, field is always visible. */ + conditions?: FieldConditions; } // ---------------------------------------------------------------------------