/** * 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 - CRUD Component Zod Validators * * Zod validation schemas for CRUD operations. * Following @objectstack/spec UI specification format. * * Enhanced in Phase 2 with ajax, confirm, dialog actions, chaining, and conditional execution. * * @module zod/crud * @packageDocumentation */ import { z } from 'zod'; /** * Action Execution Mode Schema */ export declare const ActionExecutionModeSchema: z.ZodEnum<{ sequential: "sequential"; parallel: "parallel"; }>; /** * Action Callback Schema */ export declare const ActionCallbackSchema: z.ZodObject<{ type: z.ZodEnum<{ custom: "custom"; dialog: "dialog"; toast: "toast"; reload: "reload"; message: "message"; redirect: "redirect"; ajax: "ajax"; }>; message: z.ZodOptional; url: z.ZodOptional; api: z.ZodOptional; method: z.ZodOptional>; dialog: z.ZodOptional>>; handler: z.ZodOptional; }, z.core.$strip>; /** * Action Condition Schema */ export declare const ActionConditionSchema: z.ZodType; /** * Action Schema - Enhanced with Phase 2 features */ export declare const ActionSchema: z.ZodType; /** * CRUD Operation Schema */ export declare const CRUDOperationSchema: z.ZodObject<{ type: z.ZodEnum<{ custom: "custom"; read: "read"; create: "create"; update: "update"; delete: "delete"; export: "export"; import: "import"; }>; label: z.ZodOptional; icon: z.ZodOptional; enabled: z.ZodDefault>; api: z.ZodOptional; method: z.ZodOptional>; confirmText: z.ZodOptional; successMessage: z.ZodOptional; visibleOn: z.ZodOptional; disabledOn: z.ZodOptional; }, z.core.$strip>; /** * CRUD Filter Schema */ export declare const CRUDFilterSchema: z.ZodObject<{ name: z.ZodString; label: z.ZodOptional; type: z.ZodOptional>; operator: z.ZodDefault>>; options: z.ZodOptional; }, z.core.$strip>>>; placeholder: z.ZodOptional; defaultValue: z.ZodOptional; }, z.core.$strip>; /** * CRUD Toolbar Schema */ export declare const CRUDToolbarSchema: z.ZodObject<{ showCreate: z.ZodDefault>; showRefresh: z.ZodDefault>; showExport: z.ZodDefault>; showImport: z.ZodDefault>; showFilter: z.ZodDefault>; showSearch: z.ZodDefault>; actions: z.ZodOptional>>>; }, z.core.$strip>; /** * CRUD Pagination Schema */ export declare const CRUDPaginationSchema: z.ZodObject<{ enabled: z.ZodDefault>; pageSize: z.ZodDefault>; pageSizeOptions: z.ZodDefault>>; showTotal: z.ZodDefault>; showSizeChanger: z.ZodDefault>; }, z.core.$strip>; /** * CRUD Schema */ export declare const CRUDSchema: 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<"crud">; title: z.ZodOptional; resource: z.ZodOptional; api: z.ZodOptional; columns: z.ZodArray; fields: z.ZodOptional>; operations: z.ZodOptional; label: z.ZodOptional; icon: z.ZodOptional; enabled: z.ZodDefault>; api: z.ZodOptional; method: z.ZodOptional>; confirmText: z.ZodOptional; successMessage: z.ZodOptional; visibleOn: z.ZodOptional; disabledOn: z.ZodOptional; }, z.core.$strip>]>>>; toolbar: z.ZodOptional>; showRefresh: z.ZodDefault>; showExport: z.ZodDefault>; showImport: z.ZodDefault>; showFilter: z.ZodDefault>; showSearch: z.ZodDefault>; actions: z.ZodOptional>>>; }, z.core.$strip>>; filters: z.ZodOptional; type: z.ZodOptional>; operator: z.ZodDefault>>; options: z.ZodOptional; }, z.core.$strip>>>; placeholder: z.ZodOptional; defaultValue: z.ZodOptional; }, z.core.$strip>>>; pagination: z.ZodOptional>; pageSize: z.ZodDefault>; pageSizeOptions: z.ZodDefault>>; showTotal: z.ZodDefault>; showSizeChanger: z.ZodDefault>; }, z.core.$strip>>; defaultSort: z.ZodOptional; defaultSortOrder: z.ZodDefault>>; selectable: z.ZodOptional]>>; batchActions: z.ZodOptional>>>; rowActions: z.ZodOptional>>>; emptyState: z.ZodOptional>>; loading: z.ZodDefault>; loadingComponent: z.ZodOptional>>; mode: z.ZodDefault>>; gridColumns: z.ZodDefault>; cardTemplate: z.ZodOptional>>; kanbanColumns: z.ZodOptional; }, z.core.$strip>>>; kanbanGroupField: z.ZodOptional; }, z.core.$loose>; /** * Detail Schema */ export declare const DetailSchema: 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<"detail">; title: z.ZodOptional; api: z.ZodOptional; resourceId: z.ZodOptional>; groups: z.ZodOptional; description: z.ZodOptional; fields: z.ZodArray; type: z.ZodOptional>; format: z.ZodOptional; render: z.ZodOptional>>; }, z.core.$strip>>; }, z.core.$strip>>>; actions: z.ZodOptional>>>; tabs: z.ZodOptional>, z.ZodArray>>]>; }, z.core.$strip>>>; showBack: z.ZodDefault>; onBack: z.ZodOptional; loading: z.ZodDefault>; }, z.core.$loose>; /** * CRUD Dialog Schema */ export declare const CRUDDialogSchema: z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: 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<"crud-dialog">; title: z.ZodOptional; description: z.ZodOptional; content: z.ZodOptional>, z.ZodArray>>]>>; size: z.ZodDefault>>; actions: z.ZodOptional>>>; open: z.ZodOptional; onClose: z.ZodOptional; closeOnOutsideClick: z.ZodDefault>; closeOnEscape: z.ZodDefault>; showClose: z.ZodDefault>; }, z.core.$loose>; /** * Union of all CRUD schemas */ export declare const CRUDComponentSchema: z.ZodUnion>, 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<"crud">; title: z.ZodOptional; resource: z.ZodOptional; api: z.ZodOptional; columns: z.ZodArray; fields: z.ZodOptional>; operations: z.ZodOptional; label: z.ZodOptional; icon: z.ZodOptional; enabled: z.ZodDefault>; api: z.ZodOptional; method: z.ZodOptional>; confirmText: z.ZodOptional; successMessage: z.ZodOptional; visibleOn: z.ZodOptional; disabledOn: z.ZodOptional; }, z.core.$strip>]>>>; toolbar: z.ZodOptional>; showRefresh: z.ZodDefault>; showExport: z.ZodDefault>; showImport: z.ZodDefault>; showFilter: z.ZodDefault>; showSearch: z.ZodDefault>; actions: z.ZodOptional>>>; }, z.core.$strip>>; filters: z.ZodOptional; type: z.ZodOptional>; operator: z.ZodDefault>>; options: z.ZodOptional; }, z.core.$strip>>>; placeholder: z.ZodOptional; defaultValue: z.ZodOptional; }, z.core.$strip>>>; pagination: z.ZodOptional>; pageSize: z.ZodDefault>; pageSizeOptions: z.ZodDefault>>; showTotal: z.ZodDefault>; showSizeChanger: z.ZodDefault>; }, z.core.$strip>>; defaultSort: z.ZodOptional; defaultSortOrder: z.ZodDefault>>; selectable: z.ZodOptional]>>; batchActions: z.ZodOptional>>>; rowActions: z.ZodOptional>>>; emptyState: z.ZodOptional>>; loading: z.ZodDefault>; loadingComponent: z.ZodOptional>>; mode: z.ZodDefault>>; gridColumns: z.ZodDefault>; cardTemplate: z.ZodOptional>>; kanbanColumns: z.ZodOptional; }, z.core.$strip>>>; kanbanGroupField: 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<"detail">; title: z.ZodOptional; api: z.ZodOptional; resourceId: z.ZodOptional>; groups: z.ZodOptional; description: z.ZodOptional; fields: z.ZodArray; type: z.ZodOptional>; format: z.ZodOptional; render: z.ZodOptional>>; }, z.core.$strip>>; }, z.core.$strip>>>; actions: z.ZodOptional>>>; tabs: z.ZodOptional>, z.ZodArray>>]>; }, z.core.$strip>>>; showBack: z.ZodDefault>; onBack: z.ZodOptional; loading: z.ZodDefault>; }, z.core.$loose>, z.ZodObject<{ id: z.ZodOptional; name: z.ZodOptional; label: 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<"crud-dialog">; title: z.ZodOptional; description: z.ZodOptional; content: z.ZodOptional>, z.ZodArray>>]>>; size: z.ZodDefault>>; actions: z.ZodOptional>>>; open: z.ZodOptional; onClose: z.ZodOptional; closeOnOutsideClick: z.ZodDefault>; closeOnEscape: z.ZodDefault>; showClose: z.ZodDefault>; }, z.core.$loose>]>; /** * Export type inference helpers */ export type ActionExecutionModeSchemaType = z.infer; export type ActionCallbackSchemaType = z.infer; export type ActionConditionSchemaType = z.infer; export type ActionSchemaType = z.infer; export type CRUDOperationSchemaType = z.infer; export type CRUDFilterSchemaType = z.infer; export type CRUDToolbarSchemaType = z.infer; export type CRUDPaginationSchemaType = z.infer; export type CRUDSchemaType = z.infer; export type DetailSchemaType = z.infer; export type CRUDDialogSchemaType = z.infer; //# sourceMappingURL=crud.zod.d.ts.map