/** * ObjectUI * Copyright (c) 2024-present ObjectStack Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ /** * @object-ui/types/zod - Complex Component Zod Validators * * Zod validation schemas for advanced/composite components. * Following @objectstack/spec UI specification format. * * @module zod/complex * @packageDocumentation */ import { z } from 'zod'; /** * Kanban Card Schema */ export declare const KanbanCardSchema: z.ZodObject<{ id: z.ZodString; title: z.ZodString; description: z.ZodOptional; labels: z.ZodOptional>; assignees: z.ZodOptional>; dueDate: z.ZodOptional>; priority: z.ZodOptional>; content: z.ZodOptional>, z.ZodArray>>]>>; data: z.ZodOptional; }, z.core.$strip>; /** * Kanban Column Schema */ export declare const KanbanColumnSchema: z.ZodObject<{ id: z.ZodString; title: z.ZodString; items: z.ZodArray; labels: z.ZodOptional>; assignees: z.ZodOptional>; dueDate: z.ZodOptional>; priority: z.ZodOptional>; content: z.ZodOptional>, z.ZodArray>>]>>; data: z.ZodOptional; }, z.core.$strip>>; color: z.ZodOptional; limit: z.ZodOptional; collapsed: z.ZodOptional; }, z.core.$strip>; /** * Kanban Schema - Kanban board component */ export declare const KanbanSchema: z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; placeholder: z.ZodOptional; className: z.ZodOptional; style: z.ZodOptional>>; data: z.ZodOptional; body: z.ZodOptional>, z.ZodArray>>]>>; children: z.ZodOptional>, z.ZodArray>>]>>; visible: z.ZodOptional; visibleOn: z.ZodOptional; hidden: z.ZodOptional; hiddenOn: z.ZodOptional; disabled: z.ZodOptional; disabledOn: z.ZodOptional; testId: z.ZodOptional; ariaLabel: z.ZodOptional; type: z.ZodLiteral<"kanban">; columns: z.ZodArray; labels: z.ZodOptional>; assignees: z.ZodOptional>; dueDate: z.ZodOptional>; priority: z.ZodOptional>; content: z.ZodOptional>, z.ZodArray>>]>>; data: z.ZodOptional; }, z.core.$strip>>; color: z.ZodOptional; limit: z.ZodOptional; collapsed: z.ZodOptional; }, z.core.$strip>>; draggable: z.ZodOptional; onCardMove: z.ZodOptional>; onCardClick: z.ZodOptional>; onColumnAdd: z.ZodOptional>; onCardAdd: z.ZodOptional>; }, z.core.$loose>; /** * Calendar View Mode */ export declare const CalendarViewModeSchema: z.ZodEnum<{ month: "month"; week: "week"; day: "day"; agenda: "agenda"; }>; /** * Calendar Event Schema */ export declare const CalendarEventSchema: z.ZodObject<{ id: z.ZodString; title: z.ZodString; description: z.ZodOptional; start: z.ZodUnion; end: z.ZodUnion; allDay: z.ZodOptional; color: z.ZodOptional; data: z.ZodOptional; }, z.core.$strip>; /** * Calendar View Schema - Calendar component */ export declare const CalendarViewSchema: z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; placeholder: z.ZodOptional; className: z.ZodOptional; style: z.ZodOptional>>; data: z.ZodOptional; body: z.ZodOptional>, z.ZodArray>>]>>; children: z.ZodOptional>, z.ZodArray>>]>>; visible: z.ZodOptional; visibleOn: z.ZodOptional; hidden: z.ZodOptional; hiddenOn: z.ZodOptional; disabled: z.ZodOptional; disabledOn: z.ZodOptional; testId: z.ZodOptional; ariaLabel: z.ZodOptional; type: z.ZodLiteral<"calendar-view">; events: z.ZodArray; start: z.ZodUnion; end: z.ZodUnion; allDay: z.ZodOptional; color: z.ZodOptional; data: z.ZodOptional; }, z.core.$strip>>; defaultView: z.ZodOptional>; view: z.ZodOptional>; defaultDate: z.ZodOptional>; date: z.ZodOptional>; views: z.ZodOptional>>; editable: z.ZodOptional; onEventClick: z.ZodOptional>; onEventCreate: z.ZodOptional>; onEventUpdate: z.ZodOptional>; onDateChange: z.ZodOptional>; onViewChange: z.ZodOptional>; }, z.core.$loose>; /** * Filter Operator Enum */ export declare const FilterOperatorSchema: z.ZodEnum<{ equals: "equals"; not_equals: "not_equals"; contains: "contains"; not_contains: "not_contains"; starts_with: "starts_with"; ends_with: "ends_with"; greater_than: "greater_than"; less_than: "less_than"; greater_than_or_equal: "greater_than_or_equal"; less_than_or_equal: "less_than_or_equal"; in: "in"; not_in: "not_in"; is_null: "is_null"; is_not_null: "is_not_null"; }>; /** * Filter Condition Schema */ export declare const FilterConditionSchema: z.ZodType; /** * Filter Group Schema */ export declare const FilterGroupSchema: z.ZodType; /** * Filter Field Schema */ export declare const FilterFieldSchema: z.ZodObject<{ name: z.ZodString; label: z.ZodString; type: z.ZodEnum<{ string: "string"; number: "number"; boolean: "boolean"; date: "date"; select: "select"; }>; operators: z.ZodOptional>>; options: z.ZodOptional>>; }, z.core.$strip>; /** * Filter Builder Schema - Filter builder component */ export declare const FilterBuilderSchema: z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; placeholder: z.ZodOptional; className: z.ZodOptional; style: z.ZodOptional>>; data: z.ZodOptional; body: z.ZodOptional>, z.ZodArray>>]>>; children: z.ZodOptional>, z.ZodArray>>]>>; visible: z.ZodOptional; visibleOn: z.ZodOptional; hidden: z.ZodOptional; hiddenOn: z.ZodOptional; disabled: z.ZodOptional; disabledOn: z.ZodOptional; testId: z.ZodOptional; ariaLabel: z.ZodOptional; type: z.ZodLiteral<"filter-builder">; fields: z.ZodArray; operators: z.ZodOptional>>; options: z.ZodOptional>>; }, z.core.$strip>>; defaultValue: z.ZodOptional>, z.ZodType>]>>; value: z.ZodOptional>, z.ZodType>]>>; onChange: z.ZodOptional>; allowGroups: z.ZodOptional; maxDepth: z.ZodOptional; }, z.core.$loose>; /** * Carousel Item Schema */ export declare const CarouselItemSchema: z.ZodObject<{ id: z.ZodOptional; content: z.ZodUnion>, z.ZodArray>>]>; }, z.core.$strip>; /** * Carousel Schema - Carousel component */ export declare const CarouselSchema: z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; placeholder: z.ZodOptional; className: z.ZodOptional; style: z.ZodOptional>>; data: z.ZodOptional; body: z.ZodOptional>, z.ZodArray>>]>>; children: z.ZodOptional>, z.ZodArray>>]>>; visible: z.ZodOptional; visibleOn: z.ZodOptional; hidden: z.ZodOptional; hiddenOn: z.ZodOptional; disabled: z.ZodOptional; disabledOn: z.ZodOptional; testId: z.ZodOptional; ariaLabel: z.ZodOptional; type: z.ZodLiteral<"carousel">; items: z.ZodArray; content: z.ZodUnion>, z.ZodArray>>]>; }, z.core.$strip>>; autoPlay: z.ZodOptional; showArrows: z.ZodOptional; showDots: z.ZodOptional; loop: z.ZodOptional; itemsPerView: z.ZodOptional; gap: z.ZodOptional; onSlideChange: z.ZodOptional>; }, z.core.$loose>; /** * Chat Message Schema */ export declare const ChatToolInvocationSchema: z.ZodObject<{ toolCallId: z.ZodString; toolName: z.ZodString; args: z.ZodOptional; result: z.ZodOptional; errorText: z.ZodOptional; state: z.ZodOptional>; }, z.core.$strip>; export declare const ChatMessageSourceSchema: z.ZodObject<{ id: z.ZodOptional; title: z.ZodOptional; url: z.ZodString; }, z.core.$strip>; export declare const ChatMessageSchema: z.ZodObject<{ id: z.ZodString; role: z.ZodEnum<{ user: "user"; assistant: "assistant"; system: "system"; tool: "tool"; }>; content: z.ZodString; timestamp: z.ZodOptional>; metadata: z.ZodOptional>; streaming: z.ZodOptional; toolInvocations: z.ZodOptional; result: z.ZodOptional; errorText: z.ZodOptional; state: z.ZodOptional>; }, z.core.$strip>>>; reasoning: z.ZodOptional; sources: z.ZodOptional; title: z.ZodOptional; url: z.ZodString; }, z.core.$strip>>>; traceId: z.ZodOptional; }, z.core.$strip>; /** * Chatbot Schema - Chatbot component */ export declare const ChatbotSchema: z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; className: z.ZodOptional; style: z.ZodOptional>>; data: z.ZodOptional; children: z.ZodOptional>, z.ZodArray>>]>>; visible: z.ZodOptional; visibleOn: z.ZodOptional; hidden: z.ZodOptional; hiddenOn: z.ZodOptional; disabled: z.ZodOptional; disabledOn: z.ZodOptional; testId: z.ZodOptional; ariaLabel: z.ZodOptional; type: z.ZodLiteral<"chatbot">; messages: z.ZodArray; content: z.ZodString; timestamp: z.ZodOptional>; metadata: z.ZodOptional>; streaming: z.ZodOptional; toolInvocations: z.ZodOptional; result: z.ZodOptional; errorText: z.ZodOptional; state: z.ZodOptional>; }, z.core.$strip>>>; reasoning: z.ZodOptional; sources: z.ZodOptional; title: z.ZodOptional; url: z.ZodString; }, z.core.$strip>>>; traceId: z.ZodOptional; }, z.core.$strip>>; placeholder: z.ZodOptional; loading: z.ZodOptional; onSendMessage: z.ZodOptional>; showAvatars: z.ZodOptional; userAvatar: z.ZodOptional; assistantAvatar: z.ZodOptional; markdown: z.ZodOptional; processVisibility: z.ZodOptional>; height: z.ZodOptional>; api: z.ZodOptional; conversationId: z.ZodOptional; systemPrompt: z.ZodOptional; model: z.ZodOptional; streamingEnabled: z.ZodOptional; headers: z.ZodOptional>; body: z.ZodOptional>; maxToolRoundtrips: z.ZodOptional; onError: z.ZodOptional>; }, z.core.$loose>; /** * Dashboard Widget Layout Schema */ export declare const DashboardWidgetLayoutSchema: z.ZodObject<{ x: z.ZodNumber; y: z.ZodNumber; w: z.ZodNumber; h: z.ZodNumber; }, z.core.$strip>; /** * Dashboard Widget Schema * * Supports two formats: * 1. Component format (legacy): `{ id, component: { type, ... }, layout }` * 2. Shorthand format (@objectstack/spec): `{ type: 'metric'|'bar'|…, options: {…}, layout }` */ export declare const DashboardWidgetSchema: z.ZodObject<{ id: z.ZodOptional; title: z.ZodOptional; component: z.ZodOptional>>; layout: z.ZodOptional>; type: z.ZodOptional; options: z.ZodOptional; }, z.core.$strip>; /** * Dashboard Schema - Dashboard component */ export declare const DashboardSchema: z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; placeholder: z.ZodOptional; className: z.ZodOptional; style: z.ZodOptional>>; data: z.ZodOptional; body: z.ZodOptional>, z.ZodArray>>]>>; children: z.ZodOptional>, z.ZodArray>>]>>; visible: z.ZodOptional; visibleOn: z.ZodOptional; hidden: z.ZodOptional; hiddenOn: z.ZodOptional; disabled: z.ZodOptional; disabledOn: z.ZodOptional; testId: z.ZodOptional; ariaLabel: z.ZodOptional; type: z.ZodLiteral<"dashboard">; columns: z.ZodOptional; gap: z.ZodOptional; widgets: z.ZodArray; title: z.ZodOptional; component: z.ZodOptional>>; layout: z.ZodOptional>; type: z.ZodOptional; options: z.ZodOptional; }, z.core.$strip>>; }, z.core.$loose>; /** * Dashboard Widget Config Schema (for DashboardConfigPanel) */ export declare const DashboardWidgetConfigSchema: z.ZodObject<{ id: z.ZodString; title: z.ZodOptional; description: z.ZodOptional; type: z.ZodOptional>; object: z.ZodOptional; filter: z.ZodOptional>; categoryField: z.ZodOptional; valueField: z.ZodOptional; aggregate: z.ZodOptional; chartConfig: z.ZodOptional; colorVariant: z.ZodOptional>; layout: z.ZodOptional>; actionUrl: z.ZodOptional; }, z.core.$strip>; /** * Dashboard Config Schema — Zod validator for DashboardConfigPanel data model. * * Validates the unified dashboard configuration used by create/edit workflows. */ export declare const DashboardConfigSchema: z.ZodObject<{ id: z.ZodOptional; title: z.ZodOptional; description: z.ZodOptional; columns: z.ZodOptional; gap: z.ZodOptional; refreshInterval: z.ZodOptional; widgets: z.ZodOptional; description: z.ZodOptional; type: z.ZodOptional>; object: z.ZodOptional; filter: z.ZodOptional>; categoryField: z.ZodOptional; valueField: z.ZodOptional; aggregate: z.ZodOptional; chartConfig: z.ZodOptional; colorVariant: z.ZodOptional>; layout: z.ZodOptional>; actionUrl: z.ZodOptional; }, z.core.$strip>>>; globalFilters: z.ZodOptional>; dateRange: z.ZodOptional; field: z.ZodOptional; presets: z.ZodOptional>; }, z.core.$strip>>; userFilters: z.ZodOptional; type: z.ZodOptional; }, z.core.$strip>>>; showHeader: z.ZodOptional; showFilters: z.ZodOptional; showDateRange: z.ZodOptional; headerActions: z.ZodOptional; icon: z.ZodOptional; variant: z.ZodOptional; }, z.core.$strip>>>; aria: z.ZodOptional; description: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; /** * Complex Schema Union - All complex component schemas */ export declare const ComplexSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; placeholder: z.ZodOptional; className: z.ZodOptional; style: z.ZodOptional>>; data: z.ZodOptional; body: z.ZodOptional>, z.ZodArray>>]>>; children: z.ZodOptional>, z.ZodArray>>]>>; visible: z.ZodOptional; visibleOn: z.ZodOptional; hidden: z.ZodOptional; hiddenOn: z.ZodOptional; disabled: z.ZodOptional; disabledOn: z.ZodOptional; testId: z.ZodOptional; ariaLabel: z.ZodOptional; type: z.ZodLiteral<"kanban">; columns: z.ZodArray; labels: z.ZodOptional>; assignees: z.ZodOptional>; dueDate: z.ZodOptional>; priority: z.ZodOptional>; content: z.ZodOptional>, z.ZodArray>>]>>; data: z.ZodOptional; }, z.core.$strip>>; color: z.ZodOptional; limit: z.ZodOptional; collapsed: z.ZodOptional; }, z.core.$strip>>; draggable: z.ZodOptional; onCardMove: z.ZodOptional>; onCardClick: z.ZodOptional>; onColumnAdd: z.ZodOptional>; onCardAdd: z.ZodOptional>; }, z.core.$loose>, z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; placeholder: z.ZodOptional; className: z.ZodOptional; style: z.ZodOptional>>; data: z.ZodOptional; body: z.ZodOptional>, z.ZodArray>>]>>; children: z.ZodOptional>, z.ZodArray>>]>>; visible: z.ZodOptional; visibleOn: z.ZodOptional; hidden: z.ZodOptional; hiddenOn: z.ZodOptional; disabled: z.ZodOptional; disabledOn: z.ZodOptional; testId: z.ZodOptional; ariaLabel: z.ZodOptional; type: z.ZodLiteral<"calendar-view">; events: z.ZodArray; start: z.ZodUnion; end: z.ZodUnion; allDay: z.ZodOptional; color: z.ZodOptional; data: z.ZodOptional; }, z.core.$strip>>; defaultView: z.ZodOptional>; view: z.ZodOptional>; defaultDate: z.ZodOptional>; date: z.ZodOptional>; views: z.ZodOptional>>; editable: z.ZodOptional; onEventClick: z.ZodOptional>; onEventCreate: z.ZodOptional>; onEventUpdate: z.ZodOptional>; onDateChange: z.ZodOptional>; onViewChange: z.ZodOptional>; }, z.core.$loose>, z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; placeholder: z.ZodOptional; className: z.ZodOptional; style: z.ZodOptional>>; data: z.ZodOptional; body: z.ZodOptional>, z.ZodArray>>]>>; children: z.ZodOptional>, z.ZodArray>>]>>; visible: z.ZodOptional; visibleOn: z.ZodOptional; hidden: z.ZodOptional; hiddenOn: z.ZodOptional; disabled: z.ZodOptional; disabledOn: z.ZodOptional; testId: z.ZodOptional; ariaLabel: z.ZodOptional; type: z.ZodLiteral<"filter-builder">; fields: z.ZodArray; operators: z.ZodOptional>>; options: z.ZodOptional>>; }, z.core.$strip>>; defaultValue: z.ZodOptional>, z.ZodType>]>>; value: z.ZodOptional>, z.ZodType>]>>; onChange: z.ZodOptional>; allowGroups: z.ZodOptional; maxDepth: z.ZodOptional; }, z.core.$loose>, z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; placeholder: z.ZodOptional; className: z.ZodOptional; style: z.ZodOptional>>; data: z.ZodOptional; body: z.ZodOptional>, z.ZodArray>>]>>; children: z.ZodOptional>, z.ZodArray>>]>>; visible: z.ZodOptional; visibleOn: z.ZodOptional; hidden: z.ZodOptional; hiddenOn: z.ZodOptional; disabled: z.ZodOptional; disabledOn: z.ZodOptional; testId: z.ZodOptional; ariaLabel: z.ZodOptional; type: z.ZodLiteral<"carousel">; items: z.ZodArray; content: z.ZodUnion>, z.ZodArray>>]>; }, z.core.$strip>>; autoPlay: z.ZodOptional; showArrows: z.ZodOptional; showDots: z.ZodOptional; loop: z.ZodOptional; itemsPerView: z.ZodOptional; gap: z.ZodOptional; onSlideChange: z.ZodOptional>; }, z.core.$loose>, z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; className: z.ZodOptional; style: z.ZodOptional>>; data: z.ZodOptional; children: z.ZodOptional>, z.ZodArray>>]>>; visible: z.ZodOptional; visibleOn: z.ZodOptional; hidden: z.ZodOptional; hiddenOn: z.ZodOptional; disabled: z.ZodOptional; disabledOn: z.ZodOptional; testId: z.ZodOptional; ariaLabel: z.ZodOptional; type: z.ZodLiteral<"chatbot">; messages: z.ZodArray; content: z.ZodString; timestamp: z.ZodOptional>; metadata: z.ZodOptional>; streaming: z.ZodOptional; toolInvocations: z.ZodOptional; result: z.ZodOptional; errorText: z.ZodOptional; state: z.ZodOptional>; }, z.core.$strip>>>; reasoning: z.ZodOptional; sources: z.ZodOptional; title: z.ZodOptional; url: z.ZodString; }, z.core.$strip>>>; traceId: z.ZodOptional; }, z.core.$strip>>; placeholder: z.ZodOptional; loading: z.ZodOptional; onSendMessage: z.ZodOptional>; showAvatars: z.ZodOptional; userAvatar: z.ZodOptional; assistantAvatar: z.ZodOptional; markdown: z.ZodOptional; processVisibility: z.ZodOptional>; height: z.ZodOptional>; api: z.ZodOptional; conversationId: z.ZodOptional; systemPrompt: z.ZodOptional; model: z.ZodOptional; streamingEnabled: z.ZodOptional; headers: z.ZodOptional>; body: z.ZodOptional>; maxToolRoundtrips: z.ZodOptional; onError: z.ZodOptional>; }, z.core.$loose>, z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: z.ZodOptional; description: z.ZodOptional; placeholder: z.ZodOptional; className: z.ZodOptional; style: z.ZodOptional>>; data: z.ZodOptional; body: z.ZodOptional>, z.ZodArray>>]>>; children: z.ZodOptional>, z.ZodArray>>]>>; visible: z.ZodOptional; visibleOn: z.ZodOptional; hidden: z.ZodOptional; hiddenOn: z.ZodOptional; disabled: z.ZodOptional; disabledOn: z.ZodOptional; testId: z.ZodOptional; ariaLabel: z.ZodOptional; type: z.ZodLiteral<"dashboard">; columns: z.ZodOptional; gap: z.ZodOptional; widgets: z.ZodArray; title: z.ZodOptional; component: z.ZodOptional>>; layout: z.ZodOptional>; type: z.ZodOptional; options: z.ZodOptional; }, z.core.$strip>>; }, z.core.$loose>], "type">; //# sourceMappingURL=complex.zod.d.ts.map