@object-ui/types 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +19 -11
  2. package/dist/api-types.d.ts +7 -0
  3. package/dist/api-types.d.ts.map +1 -1
  4. package/dist/api-types.js +4 -6
  5. package/dist/app.d.ts +17 -0
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js +4 -3
  8. package/dist/base.d.ts +7 -0
  9. package/dist/base.d.ts.map +1 -1
  10. package/dist/base.js +4 -6
  11. package/dist/blocks.d.ts +332 -0
  12. package/dist/blocks.d.ts.map +1 -0
  13. package/dist/blocks.js +8 -0
  14. package/dist/complex.d.ts +68 -1
  15. package/dist/complex.d.ts.map +1 -1
  16. package/dist/complex.js +4 -5
  17. package/dist/crud.d.ts +181 -3
  18. package/dist/crud.d.ts.map +1 -1
  19. package/dist/crud.js +4 -6
  20. package/dist/data-display.d.ts +54 -2
  21. package/dist/data-display.d.ts.map +1 -1
  22. package/dist/data-display.js +4 -5
  23. package/dist/data-protocol.d.ts +1268 -0
  24. package/dist/data-protocol.d.ts.map +1 -0
  25. package/dist/data-protocol.js +8 -0
  26. package/dist/data.d.ts +22 -1
  27. package/dist/data.d.ts.map +1 -1
  28. package/dist/data.js +4 -6
  29. package/dist/disclosure.d.ts +70 -1
  30. package/dist/disclosure.d.ts.map +1 -1
  31. package/dist/disclosure.js +4 -5
  32. package/dist/feedback.d.ts +68 -1
  33. package/dist/feedback.d.ts.map +1 -1
  34. package/dist/feedback.js +4 -5
  35. package/dist/field-types.d.ts +728 -0
  36. package/dist/field-types.d.ts.map +1 -0
  37. package/dist/field-types.js +8 -0
  38. package/dist/form.d.ts +123 -1
  39. package/dist/form.d.ts.map +1 -1
  40. package/dist/form.js +4 -5
  41. package/dist/index.d.ts +48 -13
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +4 -37
  44. package/dist/layout.d.ts +66 -16
  45. package/dist/layout.d.ts.map +1 -1
  46. package/dist/layout.js +4 -6
  47. package/dist/navigation.d.ts +102 -2
  48. package/dist/navigation.d.ts.map +1 -1
  49. package/dist/navigation.js +4 -5
  50. package/dist/objectql.d.ts +491 -54
  51. package/dist/objectql.d.ts.map +1 -1
  52. package/dist/objectql.js +4 -6
  53. package/dist/overlay.d.ts +31 -1
  54. package/dist/overlay.d.ts.map +1 -1
  55. package/dist/overlay.js +4 -5
  56. package/dist/plugin-scope.d.ts +194 -0
  57. package/dist/plugin-scope.d.ts.map +1 -0
  58. package/dist/plugin-scope.js +8 -0
  59. package/dist/registry.d.ts +7 -0
  60. package/dist/registry.d.ts.map +1 -1
  61. package/dist/registry.js +7 -0
  62. package/dist/reports.d.ts +336 -0
  63. package/dist/reports.d.ts.map +1 -0
  64. package/dist/reports.js +8 -0
  65. package/dist/theme.d.ts +289 -0
  66. package/dist/theme.d.ts.map +1 -0
  67. package/dist/theme.js +8 -0
  68. package/dist/ui-action.d.ts +175 -0
  69. package/dist/ui-action.d.ts.map +1 -0
  70. package/dist/ui-action.js +8 -0
  71. package/dist/views.d.ts +417 -0
  72. package/dist/views.d.ts.map +1 -0
  73. package/dist/views.js +8 -0
  74. package/dist/zod/app.zod.d.ts +120 -0
  75. package/dist/zod/app.zod.d.ts.map +1 -0
  76. package/dist/zod/app.zod.js +60 -0
  77. package/dist/zod/base.zod.d.ts +202 -0
  78. package/dist/zod/base.zod.d.ts.map +1 -0
  79. package/dist/zod/base.zod.js +198 -0
  80. package/dist/zod/blocks.zod.d.ts +834 -0
  81. package/dist/zod/blocks.zod.d.ts.map +1 -0
  82. package/dist/zod/blocks.zod.js +145 -0
  83. package/dist/zod/complex.zod.d.ts +742 -0
  84. package/dist/zod/complex.zod.d.ts.map +1 -0
  85. package/dist/zod/complex.zod.js +233 -0
  86. package/dist/zod/crud.zod.d.ts +598 -0
  87. package/dist/zod/crud.zod.d.ts.map +1 -0
  88. package/dist/zod/crud.zod.js +230 -0
  89. package/dist/zod/data-display.zod.d.ts +996 -0
  90. package/dist/zod/data-display.zod.d.ts.map +1 -0
  91. package/dist/zod/data-display.zod.js +266 -0
  92. package/dist/zod/disclosure.zod.d.ts +267 -0
  93. package/dist/zod/disclosure.zod.d.ts.map +1 -0
  94. package/dist/zod/disclosure.zod.js +84 -0
  95. package/dist/zod/feedback.zod.d.ts +538 -0
  96. package/dist/zod/feedback.zod.d.ts.map +1 -0
  97. package/dist/zod/feedback.zod.js +127 -0
  98. package/dist/zod/form.zod.d.ts +1308 -0
  99. package/dist/zod/form.zod.d.ts.map +1 -0
  100. package/dist/zod/form.zod.js +406 -0
  101. package/dist/zod/index.zod.d.ts +4985 -0
  102. package/dist/zod/index.zod.d.ts.map +1 -0
  103. package/dist/zod/index.zod.js +183 -0
  104. package/dist/zod/layout.zod.d.ts +1048 -0
  105. package/dist/zod/layout.zod.d.ts.map +1 -0
  106. package/dist/zod/layout.zod.js +241 -0
  107. package/dist/zod/navigation.zod.d.ts +486 -0
  108. package/dist/zod/navigation.zod.d.ts.map +1 -0
  109. package/dist/zod/navigation.zod.js +142 -0
  110. package/dist/zod/objectql.zod.d.ts +1261 -0
  111. package/dist/zod/objectql.zod.d.ts.map +1 -0
  112. package/dist/zod/objectql.zod.js +248 -0
  113. package/dist/zod/overlay.zod.d.ts +691 -0
  114. package/dist/zod/overlay.zod.d.ts.map +1 -0
  115. package/dist/zod/overlay.zod.js +179 -0
  116. package/dist/zod/reports.zod.d.ts +1628 -0
  117. package/dist/zod/reports.zod.d.ts.map +1 -0
  118. package/dist/zod/reports.zod.js +152 -0
  119. package/dist/zod/theme.zod.d.ts +611 -0
  120. package/dist/zod/theme.zod.d.ts.map +1 -0
  121. package/dist/zod/theme.zod.js +130 -0
  122. package/dist/zod/views.zod.d.ts +675 -0
  123. package/dist/zod/views.zod.d.ts.map +1 -0
  124. package/dist/zod/views.zod.js +159 -0
  125. package/package.json +9 -1
  126. package/src/__tests__/namespace-exports.test.ts +80 -0
  127. package/src/__tests__/phase2-schemas.test.ts +639 -0
  128. package/src/api-types.ts +8 -0
  129. package/src/app.ts +20 -0
  130. package/src/base.ts +8 -0
  131. package/src/blocks.ts +405 -0
  132. package/src/complex.ts +69 -1
  133. package/src/crud.ts +185 -3
  134. package/src/data-display.ts +60 -2
  135. package/src/data-protocol.ts +1679 -0
  136. package/src/data.ts +21 -1
  137. package/src/disclosure.ts +74 -1
  138. package/src/feedback.ts +76 -2
  139. package/src/field-types.ts +846 -0
  140. package/src/form.ts +131 -1
  141. package/src/index.ts +305 -8
  142. package/src/layout.ts +70 -15
  143. package/src/navigation.ts +109 -2
  144. package/src/objectql.ts +563 -59
  145. package/src/overlay.ts +35 -1
  146. package/src/plugin-scope.ts +210 -0
  147. package/src/registry.ts +8 -0
  148. package/src/reports.ts +408 -0
  149. package/src/theme.ts +351 -0
  150. package/src/ui-action.ts +276 -0
  151. package/src/views.ts +429 -0
  152. package/src/zod/README.md +329 -0
  153. package/src/zod/app.zod.ts +72 -0
  154. package/src/zod/base.zod.ts +229 -0
  155. package/src/zod/blocks.zod.ts +170 -0
  156. package/src/zod/complex.zod.ts +258 -0
  157. package/src/zod/crud.zod.ts +259 -0
  158. package/src/zod/data-display.zod.ts +290 -0
  159. package/src/zod/disclosure.zod.ts +92 -0
  160. package/src/zod/feedback.zod.ts +138 -0
  161. package/src/zod/form.zod.ts +434 -0
  162. package/src/zod/index.zod.ts +425 -0
  163. package/src/zod/layout.zod.ts +262 -0
  164. package/src/zod/navigation.zod.ts +159 -0
  165. package/src/zod/objectql.zod.ts +268 -0
  166. package/src/zod/overlay.zod.ts +196 -0
  167. package/src/zod/reports.zod.ts +183 -0
  168. package/src/zod/theme.zod.ts +155 -0
  169. package/src/zod/views.zod.ts +182 -0
package/src/form.ts CHANGED
@@ -1,3 +1,11 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+
1
9
  /**
2
10
  * @object-ui/types - Form Component Schemas
3
11
  *
@@ -932,6 +940,126 @@ export interface LabelSchema extends BaseSchema {
932
940
  htmlFor?: string;
933
941
  }
934
942
 
943
+ /**
944
+ * Combobox option
945
+ */
946
+ export interface ComboboxOption {
947
+ /**
948
+ * Option value
949
+ */
950
+ value: string;
951
+ /**
952
+ * Option label (displayed to user)
953
+ */
954
+ label: string;
955
+ /**
956
+ * Whether option is disabled
957
+ */
958
+ disabled?: boolean;
959
+ }
960
+
961
+ /**
962
+ * Combobox component (searchable select)
963
+ */
964
+ export interface ComboboxSchema extends BaseSchema {
965
+ type: 'combobox';
966
+ /**
967
+ * Field name for form submission
968
+ */
969
+ name?: string;
970
+ /**
971
+ * Combobox label
972
+ */
973
+ label?: string;
974
+ /**
975
+ * Placeholder text
976
+ */
977
+ placeholder?: string;
978
+ /**
979
+ * Combobox options
980
+ */
981
+ options?: ComboboxOption[];
982
+ /**
983
+ * Default selected value
984
+ */
985
+ defaultValue?: string;
986
+ /**
987
+ * Controlled value
988
+ */
989
+ value?: string;
990
+ /**
991
+ * Whether field is disabled
992
+ */
993
+ disabled?: boolean;
994
+ /**
995
+ * Help text or description
996
+ */
997
+ description?: string;
998
+ /**
999
+ * Error message
1000
+ */
1001
+ error?: string;
1002
+ /**
1003
+ * Change handler
1004
+ */
1005
+ onChange?: (value: string) => void;
1006
+ }
1007
+
1008
+ /**
1009
+ * Command menu item
1010
+ */
1011
+ export interface CommandItem {
1012
+ /**
1013
+ * Item value
1014
+ */
1015
+ value: string;
1016
+ /**
1017
+ * Item label (displayed to user)
1018
+ */
1019
+ label: string;
1020
+ /**
1021
+ * Item icon
1022
+ */
1023
+ icon?: string;
1024
+ }
1025
+
1026
+ /**
1027
+ * Command menu group
1028
+ */
1029
+ export interface CommandGroup {
1030
+ /**
1031
+ * Group heading
1032
+ */
1033
+ heading?: string;
1034
+ /**
1035
+ * Group items
1036
+ */
1037
+ items: CommandItem[];
1038
+ }
1039
+
1040
+ /**
1041
+ * Command component (command palette)
1042
+ */
1043
+ export interface CommandSchema extends BaseSchema {
1044
+ type: 'command';
1045
+ /**
1046
+ * Placeholder text
1047
+ */
1048
+ placeholder?: string;
1049
+ /**
1050
+ * Empty state text
1051
+ */
1052
+ emptyText?: string;
1053
+ /**
1054
+ * Command groups
1055
+ */
1056
+ groups?: CommandGroup[];
1057
+ /**
1058
+ * Change handler
1059
+ */
1060
+ onChange?: (value: string) => void;
1061
+ }
1062
+
935
1063
  /**
936
1064
  * Union type of all form schemas
937
1065
  */
@@ -950,5 +1078,7 @@ export type FormComponentSchema =
950
1078
  | CalendarSchema
951
1079
  | InputOTPSchema
952
1080
  | FormSchema
953
- | LabelSchema;
1081
+ | LabelSchema
1082
+ | ComboboxSchema
1083
+ | CommandSchema;
954
1084
 
package/src/index.ts CHANGED
@@ -1,3 +1,11 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+
1
9
  /**
2
10
  * @object-ui/types
3
11
  *
@@ -75,6 +83,7 @@ export type {
75
83
  SeparatorSchema,
76
84
  ContainerSchema,
77
85
  FlexSchema,
86
+ StackSchema,
78
87
  GridSchema,
79
88
  CardSchema,
80
89
  TabsSchema,
@@ -82,6 +91,7 @@ export type {
82
91
  ScrollAreaSchema,
83
92
  ResizableSchema,
84
93
  ResizablePanel,
94
+ AspectRatioSchema,
85
95
  LayoutSchema,
86
96
  PageSchema,
87
97
  } from './layout';
@@ -99,15 +109,17 @@ export type {
99
109
  RadioGroupSchema,
100
110
  RadioOption,
101
111
  SwitchSchema,
102
- ToggleSchema,
103
112
  SliderSchema,
104
113
  FileUploadSchema,
105
114
  DatePickerSchema,
106
115
  CalendarSchema,
107
- InputOTPSchema,
108
116
  ValidationRule,
109
117
  FieldCondition,
110
118
  FormField,
119
+ ComboboxSchema,
120
+ CommandSchema,
121
+ InputOTPSchema,
122
+ ToggleSchema,
111
123
  FormSchema,
112
124
  LabelSchema,
113
125
  FormComponentSchema,
@@ -133,6 +145,7 @@ export type {
133
145
  ChartSchema,
134
146
  TimelineEvent,
135
147
  TimelineSchema,
148
+ KbdSchema,
136
149
  HtmlSchema,
137
150
  StatisticSchema,
138
151
  DataDisplaySchema,
@@ -142,10 +155,13 @@ export type {
142
155
  // Feedback Components - Status & Progress Indication
143
156
  // ============================================================================
144
157
  export type {
158
+ SpinnerSchema,
145
159
  LoadingSchema,
146
160
  ProgressSchema,
147
161
  SkeletonSchema,
148
162
  ToastSchema,
163
+ EmptySchema,
164
+ SonnerSchema,
149
165
  ToasterSchema,
150
166
  FeedbackSchema,
151
167
  } from './feedback';
@@ -155,6 +171,7 @@ export type {
155
171
  // ============================================================================
156
172
  export type {
157
173
  AccordionItem,
174
+ ToggleGroupSchema,
158
175
  AccordionSchema,
159
176
  CollapsibleSchema,
160
177
  DisclosureSchema,
@@ -174,6 +191,7 @@ export type {
174
191
  TooltipSchema,
175
192
  HoverCardSchema,
176
193
  MenuItem,
194
+ MenubarSchema,
177
195
  DropdownMenuSchema,
178
196
  ContextMenuSchema,
179
197
  OverlaySchema,
@@ -188,8 +206,10 @@ export type {
188
206
  SidebarSchema,
189
207
  BreadcrumbItem,
190
208
  BreadcrumbSchema,
191
- PaginationSchema,
209
+ ButtonGroupSchema,
210
+ NavigationMenuSchema,
192
211
  NavigationSchema,
212
+ PaginationSchema,
193
213
  } from './navigation';
194
214
 
195
215
  // ============================================================================
@@ -209,6 +229,9 @@ export type {
209
229
  FilterField,
210
230
  CarouselItem,
211
231
  CarouselSchema,
232
+ DashboardWidgetLayout,
233
+ DashboardWidgetSchema,
234
+ DashboardSchema,
212
235
  ChatMessage,
213
236
  ChatbotSchema,
214
237
  ComplexSchema,
@@ -247,11 +270,168 @@ export type {
247
270
  // ObjectQL Components - ObjectQL-specific components
248
271
  // ============================================================================
249
272
  export type {
250
- ObjectTableSchema,
273
+ // Schema types aligned with @objectstack/spec
274
+ HttpMethod,
275
+ HttpRequest,
276
+ ViewData,
277
+ ListColumn,
278
+ SelectionConfig,
279
+ PaginationConfig,
280
+ KanbanConfig,
281
+ CalendarConfig,
282
+ GanttConfig,
283
+ SortConfig,
284
+ // Component schemas
285
+ ObjectMapSchema,
286
+ ObjectGanttSchema,
287
+ ObjectCalendarSchema,
288
+ ObjectKanbanSchema,
289
+ ObjectChartSchema,
290
+ ListViewSchema,
291
+ ObjectGridSchema,
251
292
  ObjectFormSchema,
293
+ ObjectViewSchema,
252
294
  ObjectQLComponentSchema,
253
295
  } from './objectql';
254
296
 
297
+ // ============================================================================
298
+ // Field Types - ObjectQL Field Type System
299
+ // ============================================================================
300
+ export type {
301
+ BaseFieldMetadata,
302
+ VisibilityCondition,
303
+ ValidationFunction as FieldValidationFunction,
304
+ TextFieldMetadata,
305
+ TextareaFieldMetadata,
306
+ MarkdownFieldMetadata,
307
+ HtmlFieldMetadata,
308
+ NumberFieldMetadata,
309
+ CurrencyFieldMetadata,
310
+ PercentFieldMetadata,
311
+ BooleanFieldMetadata,
312
+ DateFieldMetadata,
313
+ DateTimeFieldMetadata,
314
+ TimeFieldMetadata,
315
+ SelectFieldMetadata,
316
+ SelectOptionMetadata,
317
+ EmailFieldMetadata,
318
+ PhoneFieldMetadata,
319
+ UrlFieldMetadata,
320
+ PasswordFieldMetadata,
321
+ FileFieldMetadata,
322
+ FileMetadata,
323
+ ImageFieldMetadata,
324
+ LocationFieldMetadata,
325
+ LookupFieldMetadata,
326
+ FormulaFieldMetadata,
327
+ SummaryFieldMetadata,
328
+ AutoNumberFieldMetadata,
329
+ UserFieldMetadata,
330
+ ObjectFieldMetadata,
331
+ VectorFieldMetadata,
332
+ GridFieldMetadata,
333
+ GridColumnDefinition,
334
+ ColorFieldMetadata,
335
+ CodeFieldMetadata,
336
+ AvatarFieldMetadata,
337
+ SignatureFieldMetadata,
338
+ QRCodeFieldMetadata,
339
+ AddressFieldMetadata,
340
+ GeolocationFieldMetadata,
341
+ SliderFieldMetadata,
342
+ RatingFieldMetadata,
343
+ MasterDetailFieldMetadata,
344
+ FieldMetadata,
345
+ ObjectTrigger,
346
+ ObjectPermission,
347
+ SharingRule,
348
+ ObjectSchemaMetadata,
349
+ ObjectIndex,
350
+ ObjectRelationship,
351
+ } from './field-types';
352
+
353
+ // ============================================================================
354
+ // Phase 3: Data Protocol Advanced Types
355
+ // ============================================================================
356
+ export type {
357
+ // Query AST (Phase 3.3)
358
+ QueryASTNodeType,
359
+ QueryASTNode,
360
+ SelectNode,
361
+ FromNode,
362
+ WhereNode,
363
+ JoinNode,
364
+ JoinStrategy,
365
+ GroupByNode,
366
+ OrderByNode,
367
+ LimitNode,
368
+ OffsetNode,
369
+ SubqueryNode,
370
+ AggregateNode,
371
+ WindowNode,
372
+ WindowFunction,
373
+ WindowFrame,
374
+ WindowFrameUnit,
375
+ WindowFrameBoundary,
376
+ FieldNode,
377
+ LiteralNode,
378
+ OperatorNode,
379
+ FunctionNode,
380
+ ComparisonOperator,
381
+ LogicalOperator,
382
+ QueryAST,
383
+ QuerySchema,
384
+ QuerySortConfig,
385
+ JoinConfig,
386
+ AggregationConfig,
387
+ WindowConfig,
388
+ // Filter Schema (Phase 3.4)
389
+ AdvancedFilterSchema,
390
+ AdvancedFilterCondition,
391
+ AdvancedFilterOperator,
392
+ DateRangeFilter,
393
+ DateRangePreset,
394
+ FilterBuilderConfig,
395
+ FilterFieldConfig,
396
+ // Validation Schema (Phase 3.5)
397
+ AdvancedValidationSchema,
398
+ AdvancedValidationRule,
399
+ ValidationRuleType,
400
+ ValidationFunction,
401
+ AsyncValidationFunction,
402
+ ValidationContext,
403
+ AdvancedValidationResult,
404
+ AdvancedValidationError,
405
+ // ObjectStack Spec v0.7.1 Validation
406
+ BaseValidation,
407
+ ScriptValidation,
408
+ UniquenessValidation,
409
+ StateMachineValidation,
410
+ CrossFieldValidation,
411
+ AsyncValidation,
412
+ ConditionalValidation,
413
+ FormatValidation,
414
+ RangeValidation,
415
+ ObjectValidationRule,
416
+ // Driver Interface (Phase 3.6)
417
+ DriverInterface,
418
+ ConnectionConfig,
419
+ DriverQueryResult,
420
+ BatchOperation,
421
+ BatchResult,
422
+ TransactionContext,
423
+ CacheManager,
424
+ ConnectionPool,
425
+ // Datasource Schema (Phase 3.7)
426
+ DatasourceSchema,
427
+ DatasourceType,
428
+ DatasourceMetric,
429
+ DatasourceAlert,
430
+ DatasourceManager,
431
+ HealthCheckResult,
432
+ DatasourceMetrics,
433
+ } from './data-protocol';
434
+
255
435
  // ============================================================================
256
436
  // API and Events - API Integration and Event Handling
257
437
  // ============================================================================
@@ -273,18 +453,83 @@ export type {
273
453
  // ============================================================================
274
454
 
275
455
  import type { BaseSchema, SchemaNode } from './base';
276
- import type { LayoutSchema } from './layout';
456
+ import type { LayoutSchema, PageSchema } from './layout';
277
457
  import type { FormComponentSchema } from './form';
278
458
  import type { DataDisplaySchema } from './data-display';
279
459
  import type { FeedbackSchema } from './feedback';
280
460
  import type { DisclosureSchema } from './disclosure';
281
461
  import type { OverlaySchema } from './overlay';
282
462
  import type { NavigationSchema } from './navigation';
283
- import type { ComplexSchema } from './complex';
463
+ import type { ComplexSchema, DashboardSchema } from './complex';
284
464
  import type { CRUDComponentSchema } from './crud';
285
- import type { ObjectQLComponentSchema } from './objectql';
465
+ import type { ObjectQLComponentSchema, ListViewSchema } from './objectql';
286
466
  import type { AppSchema } from './app';
287
467
 
468
+ // ============================================================================
469
+ // Phase 2 Schemas - New Additions
470
+ // ============================================================================
471
+ export type {
472
+ // Theme System
473
+ ThemeSchema,
474
+ ThemeDefinition,
475
+ ThemeMode,
476
+ ColorPalette,
477
+ Typography,
478
+ SpacingScale,
479
+ BorderRadius,
480
+ ThemeSwitcherSchema,
481
+ ThemePreviewSchema,
482
+ } from './theme';
483
+
484
+ export type {
485
+ // Report System
486
+ ReportSchema,
487
+ ReportExportFormat,
488
+ ReportScheduleFrequency,
489
+ ReportAggregationType,
490
+ ReportField,
491
+ ReportFilter,
492
+ ReportGroupBy,
493
+ ReportSection,
494
+ ReportSchedule,
495
+ ReportExportConfig,
496
+ ReportBuilderSchema,
497
+ ReportViewerSchema,
498
+ } from './reports';
499
+
500
+ export type {
501
+ // Block System
502
+ BlockSchema,
503
+ BlockMetadata,
504
+ BlockVariable,
505
+ BlockSlot,
506
+ BlockLibraryItem,
507
+ BlockLibrarySchema,
508
+ BlockEditorSchema,
509
+ BlockInstanceSchema,
510
+ ComponentSchema,
511
+ } from './blocks';
512
+
513
+ export type {
514
+ // View System Enhancements
515
+ ViewType,
516
+ DetailViewSchema,
517
+ DetailViewField,
518
+ DetailViewSection,
519
+ DetailViewTab,
520
+ ViewSwitcherSchema,
521
+ FilterUISchema,
522
+ SortUISchema,
523
+ ViewComponentSchema,
524
+ } from './views';
525
+
526
+ export type {
527
+ // Enhanced Action System (Phase 2)
528
+ ActionExecutionMode,
529
+ ActionCallback,
530
+ ActionCondition,
531
+ } from './crud';
532
+
288
533
  /**
289
534
  * Union of all component schemas.
290
535
  * Use this for generic component rendering where the type is determined at runtime.
@@ -293,6 +538,7 @@ export type AnySchema =
293
538
  | AppSchema
294
539
  | BaseSchema
295
540
  | LayoutSchema
541
+ | PageSchema
296
542
  | FormComponentSchema
297
543
  | DataDisplaySchema
298
544
  | FeedbackSchema
@@ -300,8 +546,10 @@ export type AnySchema =
300
546
  | OverlaySchema
301
547
  | NavigationSchema
302
548
  | ComplexSchema
549
+ | DashboardSchema
303
550
  | CRUDComponentSchema
304
- | ObjectQLComponentSchema;
551
+ | ObjectQLComponentSchema
552
+ | ListViewSchema;
305
553
 
306
554
  /**
307
555
  * Utility type to extract the schema type from a type string.
@@ -348,3 +596,52 @@ export type {
348
596
  SchemaRegistry,
349
597
  ComponentType,
350
598
  } from './registry';
599
+
600
+ // ============================================================================
601
+ // Plugin Scope Isolation - Section 3.3
602
+ // ============================================================================
603
+ export type {
604
+ PluginScope,
605
+ PluginScopeConfig,
606
+ ComponentMeta as PluginComponentMeta,
607
+ ComponentInput as PluginComponentInput,
608
+ PluginEventHandler,
609
+ } from './plugin-scope';
610
+
611
+ // ============================================================================
612
+ // UI Actions - Enhanced Action Schema (ObjectStack Spec v0.7.1)
613
+ // ============================================================================
614
+ /**
615
+ * Enhanced action schema with location-based placement, parameter collection,
616
+ * conditional visibility, and rich feedback mechanisms.
617
+ */
618
+ export type {
619
+ ActionLocation,
620
+ ActionComponent,
621
+ ActionType,
622
+ ActionParam,
623
+ ActionSchema as UIActionSchema,
624
+ ActionGroup,
625
+ ActionContext,
626
+ ActionResult,
627
+ ActionExecutor,
628
+ } from './ui-action';
629
+
630
+ // ============================================================================
631
+ // ObjectStack Protocol Namespaces - Protocol Re-exports
632
+ // ============================================================================
633
+ /**
634
+ * Re-export ObjectStack Protocol namespaces for convenience.
635
+ *
636
+ * This allows consumers to access the full ObjectStack protocol through
637
+ * @object-ui/types without needing to install @objectstack/spec separately.
638
+ *
639
+ * @example
640
+ * ```typescript
641
+ * import { Data, UI, System, AI, API } from '@object-ui/types';
642
+ *
643
+ * const field: Data.Field = { name: 'task_name', type: 'text' };
644
+ * const component: UI.Component = { type: 'button', label: 'Click me' };
645
+ * ```
646
+ */
647
+ export type { Data, UI, System, AI, API, Auth, Hub, Automation, Permission, Shared, QA } from '@objectstack/spec';
package/src/layout.ts CHANGED
@@ -1,3 +1,11 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+
1
9
  /**
2
10
  * @object-ui/types - Layout Component Schemas
3
11
  *
@@ -388,6 +396,60 @@ export interface ResizablePanel {
388
396
  content: SchemaNode | SchemaNode[];
389
397
  }
390
398
 
399
+ /**
400
+ * Aspect ratio component
401
+ */
402
+ export interface AspectRatioSchema extends BaseSchema {
403
+ type: 'aspect-ratio';
404
+ /**
405
+ * Aspect ratio (width / height)
406
+ * @default 16/9
407
+ */
408
+ ratio?: number;
409
+ /**
410
+ * Image URL to display
411
+ */
412
+ image?: string;
413
+ /**
414
+ * Image alt text
415
+ */
416
+ alt?: string;
417
+ /**
418
+ * Child components (alternative to image)
419
+ */
420
+ body?: SchemaNode | SchemaNode[];
421
+ /**
422
+ * Child components (alternative syntax)
423
+ */
424
+ children?: SchemaNode | SchemaNode[];
425
+ }
426
+
427
+ /**
428
+ * Page Region (Header, Sidebar, Main, etc)
429
+ */
430
+ export interface PageRegion {
431
+ /**
432
+ * Region name/id
433
+ */
434
+ name: string;
435
+ /**
436
+ * Region type
437
+ */
438
+ type?: 'header' | 'sidebar' | 'main' | 'footer' | 'aside';
439
+ /**
440
+ * Width (flex basis)
441
+ */
442
+ width?: string;
443
+ /**
444
+ * Components in this region
445
+ */
446
+ components: SchemaNode[];
447
+ /**
448
+ * CSS class
449
+ */
450
+ className?: string;
451
+ }
452
+
391
453
  /**
392
454
  * Page layout component
393
455
  * Top-level container for a page route
@@ -407,7 +469,12 @@ export interface PageSchema extends BaseSchema {
407
469
  */
408
470
  description?: string;
409
471
  /**
410
- * Main content array
472
+ * Page layout regions
473
+ * (Aligned with @objectstack/spec Page.regions)
474
+ */
475
+ regions?: PageRegion[];
476
+ /**
477
+ * Main content array (Legacy/Simple mode)
411
478
  */
412
479
  body?: SchemaNode[];
413
480
  /**
@@ -428,24 +495,12 @@ export type LayoutSchema =
428
495
  | SeparatorSchema
429
496
  | ContainerSchema
430
497
  | FlexSchema
498
+ | StackSchema
431
499
  | GridSchema
432
500
  | CardSchema
433
501
  | TabsSchema
434
502
  | ScrollAreaSchema
435
503
  | ResizableSchema
504
+ | AspectRatioSchema
436
505
  | PageSchema;
437
506
 
438
- /**
439
- * Page container component
440
- */
441
- export interface PageSchema extends BaseSchema {
442
- type: 'page';
443
- /**
444
- * Page title
445
- */
446
- title?: string;
447
- /**
448
- * Child components
449
- */
450
- children?: SchemaNode | SchemaNode[];
451
- }