/** * 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 * * Pure TypeScript type definitions for Object UI - The Protocol Layer. * * This package contains ZERO runtime dependencies and defines the complete * JSON schema protocol for the Object UI ecosystem. * * ## Philosophy * * Object UI follows a "Schema First" approach where: * 1. Types define the protocol (this package) * 2. Core implements the engine (@object-ui/core) * 3. React provides the framework bindings (@object-ui/react) * 4. Components provide the UI implementation (@object-ui/components) * * ## Design Principles * * - **Protocol Agnostic**: Works with any backend (REST, GraphQL, ObjectQL) * - **Framework Agnostic**: Types can be used with React, Vue, or vanilla JS * - **Zero Dependencies**: Pure TypeScript with no runtime dependencies * - **Tailwind Native**: Designed for Tailwind CSS styling via className * - **Type Safe**: Full TypeScript support with strict typing * * ## Usage * * ```typescript * import type { InputSchema, FormSchema, ButtonSchema } from '@object-ui/types'; * * const loginForm: FormSchema = { * type: 'form', * fields: [ * { name: 'email', type: 'input', inputType: 'email', required: true }, * { name: 'password', type: 'input', inputType: 'password', required: true } * ] * }; * ``` * * @packageDocumentation */ export type { AppSchema, AppAction, NavigationItem, NavigationItemType, NavigationArea, MenuItem as AppMenuItem, AppWizardStepId, AppWizardStep, BrandingConfig, ObjectSelection, AppWizardDraft, EditorMode, } from './app'; export { menuItemToNavigationItem, isValidAppName, wizardDraftToAppSchema } from './app'; export type { BaseSchema, SchemaNode, ComponentRendererProps, ComponentInput, ComponentMeta, ComponentConfig, HTMLAttributes, EventHandlers, StyleProps, } from './base'; export type { DivSchema, SpanSchema, TextSchema, ImageSchema, IconSchema, SeparatorSchema, ContainerSchema, FlexSchema, StackSchema, GridSchema, CardSchema, TabsSchema, TabItem, ScrollAreaSchema, ResizableSchema, ResizablePanel, AspectRatioSchema, LayoutSchema, PageSchema, PageSlotMap, PageType, PageRegion, PageRegionWidth, PageVariable, } from './layout'; export type { ButtonSchema, InputSchema, TextareaSchema, SelectSchema, SelectOption, CheckboxSchema, RadioGroupSchema, RadioOption, SwitchSchema, SliderSchema, FileUploadSchema, DatePickerSchema, CalendarSchema, ValidationRule, FieldCondition, FormField, ComboboxSchema, CommandSchema, InputOTPSchema, ToggleSchema, FormSchema, LabelSchema, FormComponentSchema, } from './form'; export type { AlertSchema, BadgeSchema, AvatarSchema, ListSchema, ListItem, TableColumn, TableSchema, DataTableSchema, MarkdownSchema, TreeNode, TreeViewSchema, ChartType, ChartSeries, ChartSchema, PivotAggregation, PivotTableSchema, DrillDownConfig, TimelineEvent, TimelineSchema, KbdSchema, HtmlSchema, StatisticSchema, DataDisplaySchema, } from './data-display'; export type { SpinnerSchema, LoadingSchema, ProgressSchema, SkeletonSchema, ToastSchema, EmptySchema, SonnerSchema, ToasterSchema, FeedbackSchema, } from './feedback'; export type { AccordionItem, ToggleGroupSchema, AccordionSchema, CollapsibleSchema, DisclosureSchema, } from './disclosure'; export type { OverlayPosition, OverlayAlignment, DialogSchema, AlertDialogSchema, SheetSchema, DrawerSchema, PopoverSchema, TooltipSchema, HoverCardSchema, MenuItem, MenubarSchema, DropdownMenuSchema, ContextMenuSchema, OverlaySchema, } from './overlay'; export type { NavLink, HeaderBarSchema, SidebarSchema, BreadcrumbItem, BreadcrumbSchema, ButtonGroupSchema, NavigationMenuSchema, NavigationSchema, PaginationSchema, } from './navigation'; export type { KanbanColumn, KanbanCard, KanbanSchema, CalendarViewMode, CalendarEvent, CalendarViewSchema, FilterOperator, FilterCondition, FilterGroup, FilterBuilderSchema, FilterField, CarouselItem, CarouselSchema, DashboardWidgetLayout, DashboardWidgetSchema, DashboardSchema, ChatMessage, ChatMessageSource, ChatToolInvocation, ChatbotSchema, FloatingChatbotConfig, ComplexSchema, } from './complex'; export type { QueryParams, QueryResult, DataSource, DataScope, DataContext, DataBinding, ValidationError, APIError, FileUploadResult, AggregateParams, AggregateResult, MutationEvent, ExportJobStatus, ExportJobFormat, CreateExportJobRequest, CreateExportJobResult, ExportJobProgressInfo, } from './data'; export type { ActionSchema, CRUDOperation, CRUDFilter, CRUDToolbar, CRUDPagination, CRUDSchema, DetailSchema, CRUDDialogSchema, CRUDComponentSchema, } from './crud'; export type { HttpMethod, HttpRequest, ViewData, ListColumn, SelectionConfig, PaginationConfig, KanbanConfig, CalendarConfig, GanttConfig, ListViewGalleryConfig, ListViewTimelineConfig, SortConfig, ObjectUIConditionalFormattingRule, SpecConditionalFormattingRule, ConditionalFormattingRule, ObjectMapSchema, ObjectGanttSchema, ObjectCalendarSchema, ObjectKanbanSchema, KanbanConditionalFormattingRule, ObjectChartSchema, ListViewSchema, ObjectGridSchema, ObjectFormSchema, ObjectFormSection, ObjectViewSchema, NamedListView, ViewNavigationConfig, ViewTabBarConfig, ObjectQLComponentSchema, BulkActionDef, BulkActionParam, BulkActionOperation, } from './objectql'; export type { RecordComponentAriaProps, RecordDetailsComponentProps, RecordHighlightsComponentProps, RecordRelatedListComponentProps, RecordActivityComponentProps, RecordChatterComponentProps, RecordPathComponentProps, } from './record-components'; export type { BaseFieldMetadata, VisibilityCondition, ValidationFunction as FieldValidationFunction, TextFieldMetadata, TextareaFieldMetadata, MarkdownFieldMetadata, HtmlFieldMetadata, NumberFieldMetadata, CurrencyFieldMetadata, PercentFieldMetadata, BooleanFieldMetadata, DateFieldMetadata, DateTimeFieldMetadata, TimeFieldMetadata, SelectFieldMetadata, SelectOptionMetadata, EmailFieldMetadata, PhoneFieldMetadata, UrlFieldMetadata, PasswordFieldMetadata, FileFieldMetadata, FileMetadata, ImageFieldMetadata, LocationFieldMetadata, LookupFieldMetadata, LookupColumnDef, LookupFilterDef, FormulaFieldMetadata, SummaryFieldMetadata, AutoNumberFieldMetadata, UserFieldMetadata, ObjectFieldMetadata, VectorFieldMetadata, GridFieldMetadata, GridColumnDefinition, ColorFieldMetadata, CodeFieldMetadata, AvatarFieldMetadata, SignatureFieldMetadata, QRCodeFieldMetadata, AddressFieldMetadata, GeolocationFieldMetadata, SliderFieldMetadata, RatingFieldMetadata, MasterDetailFieldMetadata, FieldMetadata, ObjectTrigger, ObjectPermission, SharingRule, ObjectSchemaMetadata, ObjectIndex, ObjectRelationship, } from './field-types'; export type { QueryASTNodeType, QueryASTNode, SelectNode, FromNode, WhereNode, JoinNode, JoinStrategy, GroupByNode, OrderByNode, LimitNode, OffsetNode, SubqueryNode, AggregateNode, WindowNode, WindowFunction, WindowFrame, WindowFrameUnit, WindowFrameBoundary, FieldNode, LiteralNode, OperatorNode, FunctionNode, ComparisonOperator, LogicalOperator, QueryAST, QuerySchema, QuerySortConfig, JoinConfig, AggregationConfig, WindowConfig, AdvancedFilterSchema, AdvancedFilterCondition, AdvancedFilterOperator, DateRangeFilter, DateRangePreset, FilterBuilderConfig, FilterFieldConfig, AdvancedValidationSchema, AdvancedValidationRule, ValidationRuleType, ValidationFunction, AsyncValidationFunction, ValidationContext, AdvancedValidationResult, AdvancedValidationError, BaseValidation, ScriptValidation, UniquenessValidation, StateMachineValidation, CrossFieldValidation, AsyncValidation, ConditionalValidation, FormatValidation, RangeValidation, ObjectValidationRule, DriverInterface, ConnectionConfig, DriverQueryResult, BatchOperation, BatchResult, TransactionContext, CacheManager, ConnectionPool, DatasourceSchema, DatasourceType, DatasourceMetric, DatasourceAlert, DatasourceManager, HealthCheckResult, DatasourceMetrics, } from './data-protocol'; export type { PermissionAction, PermissionEffect, RoleDefinition, ObjectLevelPermission, FieldLevelPermission, RowLevelPermission, PermissionCondition, ObjectPermissionConfig, SharingRuleConfig, PermissionCheckResult, PermissionContext, PermissionGuardConfig, } from './permissions'; export type { TenantIsolationStrategy, TenantStatus, TenantPlan, TenantConfig, TenantBranding, TenantLimits, TenantContext, TenantResolutionStrategy, TenantProviderConfig, TenantScopedQueryConfig, } from './tenant'; export type { BreakpointName, ResponsiveValue, ResponsiveConfig, MobileOverrides, PWAConfig, PWAIcon, CacheStrategy, OfflineConfig, OfflineRoute, GestureType, GestureConfig, GestureContext, MobileComponentConfig, } from './mobile'; export type { DesignerPosition, DesignerCanvasConfig, DesignerComponent, PageDesignerSchema, DesignerPaletteCategory, DesignerPaletteItem, DataModelEntity, DataModelField, DataModelRelationship, DataModelDesignerSchema, BPMNNodeType, BPMNNode, BPMNEdge, BPMNLane, ProcessDesignerSchema, ReportSectionType, ReportDesignerElement, ReportDesignerSection, ReportDesignerSchema, CollaborationPresence, CollaborationOperation, CollaborationConfig, ViewColumnConfig, UnifiedViewType, UnifiedViewConfig, DashboardColorVariant, DashboardWidgetType, DashboardWidgetConfig, DashboardConfig, ObjectDefinition, ObjectDefinitionRelationship, ObjectManagerSchema, DesignerFieldType, DesignerFieldOption, DesignerValidationRule, DesignerFieldDefinition, FieldDesignerSchema, } from './designer'; export { DASHBOARD_COLOR_VARIANTS, DASHBOARD_WIDGET_TYPES, } from './designer'; export type { HTTPMethod, APIRequest, APIConfig, EventHandler, EventableSchema, DataFetchConfig, DataFetchableSchema, ExpressionContext, ExpressionSchema, APISchema, } from './api-types'; import type { BaseSchema, SchemaNode } from './base'; import type { LayoutSchema, PageSchema } from './layout'; import type { FormComponentSchema } from './form'; import type { DataDisplaySchema } from './data-display'; import type { FeedbackSchema } from './feedback'; import type { DisclosureSchema } from './disclosure'; import type { OverlaySchema } from './overlay'; import type { NavigationSchema } from './navigation'; import type { ComplexSchema, DashboardSchema } from './complex'; import type { CRUDComponentSchema } from './crud'; import type { ObjectQLComponentSchema, ListViewSchema } from './objectql'; import type { AppSchema } from './app'; export type { Theme, ThemeSchema, ThemeMode, ColorPalette, Typography, Spacing, BorderRadius, Shadow, Breakpoints, Animation, ZIndex, ThemeLogo, ThemeSwitcherSchema, ThemePreviewSchema, ThemeDefinition, SpacingScale, } from './theme'; export type { ReportSchema, ReportType, ReportExportFormat, ReportScheduleFrequency, ReportAggregationType, ReportField, ReportFilter, ReportGroupBy, ReportSection, ReportSchedule, ReportExportConfig, ReportBuilderSchema, ReportViewerSchema, } from './reports'; export type { SpecReportInput, SpecReportColumn, SpecReportColumnInput, SpecReportGrouping, SpecReportGroupingInput, SpecReportChart, SpecReportChartInput, SpecReportTypeName, SpecReportAggregate, SpecReportDateGranularity, QLAggregationFunction, LegacyReportPresentationLike, JoinedReportBlock, JoinedSpecReport, } from './spec-report'; export { SpecReportSchema, SpecReportColumnSchema, SpecReportGroupingSchema, SpecReportChartSchema, SpecReportTypeEnum, SpecReport, mapAggregateToQL, specReportToPresentation, isSpecReport, isJoinedSpecReport, } from './spec-report'; export type { AIProvider, AIModelType, AIConfig, AIFieldSuggestion, AIFormAssistSchema, AIRecommendationItem, AIRecommendationsSchema, NLQueryResult, NLQuerySchema, AIInsightsSchema, } from './ai'; export type { BlockSchema, BlockMetadata, BlockVariable, BlockSlot, BlockLibraryItem, BlockLibrarySchema, BlockEditorSchema, BlockInstanceSchema, ComponentSchema, } from './blocks'; export type { ViewType, DetailViewSchema, DetailViewField, DetailViewSection, DetailViewTab, SectionGroup, HighlightField, ViewSwitcherSchema, FilterUISchema, SortUISchema, ViewComponentSchema, CommentEntry, MentionNotification, CommentSearchResult, ActivityEntry, FeedItemType, FeedItem, FieldChangeEntry, Mention, Reaction, RecordSubscription, } from './views'; export type { ActionExecutionMode, ActionCallback, ActionCondition, } from './crud'; /** * Union of all component schemas. * Use this for generic component rendering where the type is determined at runtime. */ export type AnySchema = AppSchema | BaseSchema | LayoutSchema | PageSchema | FormComponentSchema | DataDisplaySchema | FeedbackSchema | DisclosureSchema | OverlaySchema | NavigationSchema | ComplexSchema | DashboardSchema | CRUDComponentSchema | ObjectQLComponentSchema | ListViewSchema; /** * Utility type to extract the schema type from a type string. * Useful for type narrowing in renderers. * * @example * ```typescript * function renderComponent(schema: SchemaByType) { * // schema is now typed based on the type string * } * ``` */ export type SchemaByType = Extract; /** * Utility type to make all properties optional except the type. * Useful for partial schema definitions in editors. */ export type PartialSchema = { type: T['type']; } & Partial>; /** * Schema with required children (for container components). */ export type ContainerSchemaWithChildren = BaseSchema & { children: SchemaNode | SchemaNode[]; }; /** * Version information */ export declare const VERSION = "0.1.0"; /** * Schema version for compatibility checking */ export declare const SCHEMA_VERSION = "1.0.0"; export type { SchemaRegistry, ComponentType, } from './registry'; export type { PluginScope, PluginScopeConfig, AppPluginContext, AppMetadataPlugin, ComponentMeta as PluginComponentMeta, ComponentInput as PluginComponentInput, PluginEventHandler, } from './plugin-scope'; /** * Enhanced action schema with location-based placement, parameter collection, * conditional visibility, and rich feedback mechanisms. */ export type { ActionLocation, ActionComponent, ActionType, ActionParam, ActionSchema as UIActionSchema, ActionGroup, ActionContext, ActionResult, ActionExecutor, BatchOperationConfig, BatchOperationResult, TransactionIsolationLevel, TransactionConfig, TransactionResult, UndoRedoEntry, UndoRedoConfig, UndoRedoState, } from './ui-action'; export { ACTION_LOCATIONS, ActionLocationSchema } from './ui-action'; /** * Re-export ObjectStack Protocol namespaces for convenience. * * This allows consumers to access the full ObjectStack protocol through * @object-ui/types without needing to install @objectstack/spec separately. * * @example * ```typescript * import { Data, UI, System, AI, API, Kernel } from '@object-ui/types'; * * const field: Data.Field = { name: 'task_name', type: 'text' }; * const view: UI.ListView = { name: 'all', label: 'All Records', ... }; * ``` */ export type * as Data from '@objectstack/spec/data'; export type * as UI from '@objectstack/spec/ui'; export type * as System from '@objectstack/spec/system'; export type * as AI from '@objectstack/spec/ai'; export type * as API from '@objectstack/spec/api'; export type * as Cloud from '@objectstack/spec/cloud'; export type * as Automation from '@objectstack/spec/automation'; export type * as Shared from '@objectstack/spec/shared'; export type * as QA from '@objectstack/spec/qa'; export type * as Kernel from '@objectstack/spec/kernel'; export type * as Contracts from '@objectstack/spec/contracts'; export type * as Integration from '@objectstack/spec/integration'; export type * as Studio from '@objectstack/spec/studio'; export type * as Identity from '@objectstack/spec/identity'; export type * as Security from '@objectstack/spec/security'; /** * Re-export ObjectStack Protocol utility functions and top-level types. * * @example * ```typescript * import { defineStack } from '@object-ui/types'; * * export default defineStack({ * manifest: { id: 'com.example.app', version: '1.0.0', type: 'app', name: 'My App' }, * objects: [], * apps: [], * }); * ``` */ export { defineStack, ObjectStackSchema, ObjectStackDefinitionSchema, ObjectStackCapabilitiesSchema, ObjectOSCapabilitiesSchema, ObjectQLCapabilitiesSchema, ObjectUICapabilitiesSchema, } from '@objectstack/spec'; export type { PluginContext, ObjectStack, ObjectStackDefinition, ObjectStackCapabilities, ObjectOSCapabilities, ObjectQLCapabilities, ObjectUICapabilities, } from '@objectstack/spec'; export type { DndConfig, DndConfigSchema, DragItem, DragItemSchema, DropZone, DropZoneSchema, DragConstraint, DragConstraintSchema, DragHandle, DragHandleSchema, DropEffect, DropEffectSchema, } from '@objectstack/spec/ui'; export type { FocusManagement, FocusManagementSchema, FocusTrapConfig, FocusTrapConfigSchema, KeyboardNavigationConfig, KeyboardNavigationConfigSchema, KeyboardShortcut, KeyboardShortcutSchema, } from '@objectstack/spec/ui'; export type { ComponentAnimation, ComponentAnimationSchema, AnimationTrigger, AnimationTriggerSchema, MotionConfig, MotionConfigSchema, TransitionConfig, TransitionConfigSchema, TransitionPreset, TransitionPresetSchema, EasingFunction, EasingFunctionSchema, } from '@objectstack/spec/ui'; export type { Notification, NotificationSchema, NotificationConfig, NotificationConfigSchema, NotificationAction, NotificationActionSchema, NotificationPosition, NotificationPositionSchema, NotificationSeverity, NotificationSeveritySchema, NotificationType, NotificationTypeSchema, } from '@objectstack/spec/ui'; export type { GestureConfig as SpecGestureConfig, GestureConfigSchema as SpecGestureConfigSchema, GestureType as SpecGestureType, GestureTypeSchema as SpecGestureTypeSchema, SwipeGestureConfig, SwipeGestureConfigSchema, SwipeDirection, SwipeDirectionSchema, PinchGestureConfig, PinchGestureConfigSchema, LongPressGestureConfig, LongPressGestureConfigSchema, TouchInteraction, TouchInteractionSchema, TouchTargetConfig, TouchTargetConfigSchema, } from '@objectstack/spec/ui'; export type { OfflineConfig as SpecOfflineConfig, OfflineConfigSchema as SpecOfflineConfigSchema, OfflineCacheConfig, OfflineCacheConfigSchema, OfflineStrategy, OfflineStrategySchema, SyncConfig, SyncConfigSchema, ConflictResolution, ConflictResolutionSchema, PersistStorage, PersistStorageSchema, EvictionPolicy, EvictionPolicySchema, } from '@objectstack/spec/ui'; export type { ColumnSummary, ColumnSummarySchema, GalleryConfig, GalleryConfigSchema, GroupingConfig, GroupingConfigSchema, RowColorConfig, RowColorConfigSchema, RowHeight, RowHeightSchema, DensityMode, DensityModeSchema, TimelineConfig, TimelineConfigSchema, NavigationConfig, NavigationConfigSchema, ViewSharing, ViewSharingSchema, } from '@objectstack/spec/ui'; export type { Dashboard as SpecDashboard, DashboardSchema as SpecDashboardSchema, DashboardWidget as SpecDashboardWidget, DashboardWidgetSchema as SpecDashboardWidgetSchema, DashboardHeader as SpecDashboardHeader, DashboardHeaderSchema as SpecDashboardHeaderSchema, DashboardHeaderAction as SpecDashboardHeaderAction, DashboardHeaderActionSchema as SpecDashboardHeaderActionSchema, GlobalFilter as SpecGlobalFilter, GlobalFilterSchema as SpecGlobalFilterSchema, GlobalFilterOptionsFrom, GlobalFilterOptionsFromSchema, WidgetColorVariant, WidgetColorVariantSchema, } from '@objectstack/spec/ui'; export type { SharingConfig, SharingConfigSchema, EmbedConfig, EmbedConfigSchema, } from '@objectstack/spec/ui'; export type { AddRecordConfig, AddRecordConfigSchema, AppearanceConfig, AppearanceConfigSchema, UserActionsConfig, UserActionsConfigSchema, ViewTab, ViewTabSchema, } from '@objectstack/spec/ui'; export type { ViewFilterRule, ViewFilterRuleSchema, } from '@objectstack/spec/ui'; export type { FormView as SpecFormView, FormViewSchema as SpecFormViewSchema, FormSection as SpecFormSection, FormSectionSchema as SpecFormSectionSchema, FormField as SpecFormField, FormFieldSchema as SpecFormFieldSchema, } from '@objectstack/spec/ui'; export type { ListView as SpecListView, ListViewSchema as SpecListViewSchema, ListColumn as SpecListColumn, ListColumnSchema as SpecListColumnSchema, } from '@objectstack/spec/ui'; export type { RecordDetailsProps as SpecRecordDetailsProps, RecordHighlightsProps as SpecRecordHighlightsProps, RecordRelatedListProps as SpecRecordRelatedListProps, RecordActivityProps as SpecRecordActivityProps, RecordChatterProps as SpecRecordChatterProps, RecordPathProps as SpecRecordPathProps, } from '@objectstack/spec/ui'; export type { Page as SpecPage, PageSchema as SpecPageSchema, PageComponent as SpecPageComponent, PageComponentSchema as SpecPageComponentSchema, PageRegion as SpecPageRegion, PageRegionSchema as SpecPageRegionSchema, PageType as SpecPageType, PageTypeSchema as SpecPageTypeSchema, PageVariable as SpecPageVariable, PageVariableSchema as SpecPageVariableSchema, } from '@objectstack/spec/ui'; export type { PerformanceConfig, PerformanceConfigSchema, PageTransition, PageTransitionSchema, PageComponentType, } from '@objectstack/spec/ui'; export type { AriaProps, AriaPropsSchema, WcagContrastLevel, WcagContrastLevelSchema, } from '@objectstack/spec/ui'; export type { I18nLabel, I18nLabelSchema, I18nObject, I18nObjectSchema, LocaleConfig, LocaleConfigSchema, PluralRule, PluralRuleSchema, DateFormat, DateFormatSchema, NumberFormat, NumberFormatSchema, } from '@objectstack/spec/ui'; export type { ResponsiveConfig as SpecResponsiveConfig, ResponsiveConfigSchema as SpecResponsiveConfigSchema, BreakpointColumnMapSchema, BreakpointOrderMapSchema, BreakpointName as SpecBreakpointName, } from '@objectstack/spec/ui'; /** * Widget manifest and registry types for runtime widget registration, * plugin auto-discovery, and custom widget registry. */ export type { WidgetManifest, WidgetSource, WidgetSourceModule, WidgetSourceInline, WidgetSourceRegistry, WidgetInput, WidgetCapabilities, ResolvedWidget, WidgetRegistryEvent, WidgetRegistryListener, } from './widget'; //# sourceMappingURL=index.d.ts.map