/** * 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 - Application Schema Zod Validators * * Zod validation schemas for top-level application configuration. * Following @objectstack/spec UI specification format. * * @module zod/app * @packageDocumentation */ import { z } from 'zod'; /** * Navigation Item Type enum */ export declare const NavigationItemTypeSchema: z.ZodEnum<{ object: "object"; action: "action"; dashboard: "dashboard"; page: "page"; report: "report"; url: "url"; group: "group"; separator: "separator"; }>; /** * Navigation Item Schema — unified model aligned with @objectstack/spec. */ export declare const NavigationItemSchema: z.ZodType; /** * Navigation Area Schema — business-domain partition of navigation. */ export declare const NavigationAreaSchema: z.ZodObject<{ id: z.ZodString; label: z.ZodString; icon: z.ZodOptional; navigation: z.ZodArray>>; visible: z.ZodOptional>; requiredPermissions: z.ZodOptional>; }, z.core.$strip>; /** * Menu Item Schema - Navigation menu item * @deprecated Use NavigationItemSchema instead. */ export declare const MenuItemSchema: z.ZodType; /** * App Action Schema - Application header/toolbar action */ export declare const AppActionSchema: z.ZodObject<{ type: z.ZodEnum<{ button: "button"; dropdown: "dropdown"; user: "user"; }>; label: z.ZodOptional; icon: z.ZodOptional; onClick: z.ZodOptional; avatar: z.ZodOptional; description: z.ZodOptional; items: z.ZodOptional>>>; shortcut: z.ZodOptional; variant: z.ZodOptional>; size: z.ZodOptional>; }, z.core.$strip>; /** * App Context Selector Schema — sidebar/topbar scope dropdown whose * selected value is injected into nav items as a `{}` template var. * Mirrors `@objectstack/spec` `AppContextSelectorSchema`. */ export declare const AppContextSelectorSchema: z.ZodObject<{ id: z.ZodString; label: z.ZodUnion]>; icon: z.ZodOptional; optionsSource: z.ZodObject<{ endpoint: z.ZodString; valueKey: z.ZodDefault>; labelKey: z.ZodDefault>; filter: z.ZodOptional>>; value: z.ZodUnion]>; }, z.core.$strip>>>; }, z.core.$strip>; includeAll: z.ZodDefault>; allValue: z.ZodDefault>; persist: z.ZodDefault>>; placement: z.ZodDefault>>; }, z.core.$strip>; /** * App Schema - Top-level application configuration */ export declare const AppSchema: z.ZodObject<{ id: 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<"app">; name: z.ZodOptional; title: z.ZodOptional; description: z.ZodOptional; logo: z.ZodOptional; favicon: z.ZodOptional; layout: z.ZodDefault>>; menu: z.ZodOptional>>>; navigation: z.ZodOptional>>>; areas: z.ZodOptional; navigation: z.ZodArray>>; visible: z.ZodOptional>; requiredPermissions: z.ZodOptional>; }, z.core.$strip>>>; contextSelectors: z.ZodOptional]>; icon: z.ZodOptional; optionsSource: z.ZodObject<{ endpoint: z.ZodString; valueKey: z.ZodDefault>; labelKey: z.ZodDefault>; filter: z.ZodOptional>>; value: z.ZodUnion]>; }, z.core.$strip>>>; }, z.core.$strip>; includeAll: z.ZodDefault>; allValue: z.ZodDefault>; persist: z.ZodDefault>>; placement: z.ZodDefault>>; }, z.core.$strip>>>; actions: z.ZodOptional; label: z.ZodOptional; icon: z.ZodOptional; onClick: z.ZodOptional; avatar: z.ZodOptional; description: z.ZodOptional; items: z.ZodOptional>>>; shortcut: z.ZodOptional; variant: z.ZodOptional>; size: z.ZodOptional>; }, z.core.$strip>>>; }, z.core.$loose>; /** * Export type inference helpers */ export type NavigationItemSchemaType = z.infer; export type NavigationAreaSchemaType = z.infer; export type MenuItemSchemaType = z.infer; export type AppActionSchemaType = z.infer; export type AppSchemaType = z.infer; //# sourceMappingURL=app.zod.d.ts.map