@object-ui/types 0.3.1 → 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 (97) hide show
  1. package/dist/app.d.ts +10 -0
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/blocks.d.ts +332 -0
  4. package/dist/blocks.d.ts.map +1 -0
  5. package/dist/blocks.js +8 -0
  6. package/dist/crud.d.ts +174 -3
  7. package/dist/crud.d.ts.map +1 -1
  8. package/dist/data-protocol.d.ts +1268 -0
  9. package/dist/data-protocol.d.ts.map +1 -0
  10. package/dist/data-protocol.js +8 -0
  11. package/dist/data.d.ts +6 -1
  12. package/dist/data.d.ts.map +1 -1
  13. package/dist/field-types.d.ts +353 -11
  14. package/dist/field-types.d.ts.map +1 -1
  15. package/dist/index.d.ts +28 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/objectql.d.ts +8 -1
  18. package/dist/objectql.d.ts.map +1 -1
  19. package/dist/plugin-scope.d.ts +194 -0
  20. package/dist/plugin-scope.d.ts.map +1 -0
  21. package/dist/plugin-scope.js +8 -0
  22. package/dist/reports.d.ts +336 -0
  23. package/dist/reports.d.ts.map +1 -0
  24. package/dist/reports.js +8 -0
  25. package/dist/theme.d.ts +289 -0
  26. package/dist/theme.d.ts.map +1 -0
  27. package/dist/theme.js +8 -0
  28. package/dist/ui-action.d.ts +175 -0
  29. package/dist/ui-action.d.ts.map +1 -0
  30. package/dist/ui-action.js +8 -0
  31. package/dist/views.d.ts +417 -0
  32. package/dist/views.d.ts.map +1 -0
  33. package/dist/views.js +8 -0
  34. package/dist/zod/app.zod.d.ts +120 -0
  35. package/dist/zod/app.zod.d.ts.map +1 -0
  36. package/dist/zod/app.zod.js +60 -0
  37. package/dist/zod/blocks.zod.d.ts +834 -0
  38. package/dist/zod/blocks.zod.d.ts.map +1 -0
  39. package/dist/zod/blocks.zod.js +145 -0
  40. package/dist/zod/complex.zod.js +1 -1
  41. package/dist/zod/crud.zod.d.ts +598 -0
  42. package/dist/zod/crud.zod.d.ts.map +1 -0
  43. package/dist/zod/crud.zod.js +230 -0
  44. package/dist/zod/data-display.zod.js +1 -1
  45. package/dist/zod/disclosure.zod.js +1 -1
  46. package/dist/zod/feedback.zod.js +1 -1
  47. package/dist/zod/form.zod.js +1 -1
  48. package/dist/zod/index.zod.d.ts +1829 -18
  49. package/dist/zod/index.zod.d.ts.map +1 -1
  50. package/dist/zod/index.zod.js +96 -19
  51. package/dist/zod/layout.zod.d.ts +2 -2
  52. package/dist/zod/layout.zod.js +1 -1
  53. package/dist/zod/navigation.zod.js +1 -1
  54. package/dist/zod/objectql.zod.d.ts +10 -10
  55. package/dist/zod/objectql.zod.js +1 -1
  56. package/dist/zod/overlay.zod.js +1 -1
  57. package/dist/zod/reports.zod.d.ts +1628 -0
  58. package/dist/zod/reports.zod.d.ts.map +1 -0
  59. package/dist/zod/reports.zod.js +152 -0
  60. package/dist/zod/theme.zod.d.ts +611 -0
  61. package/dist/zod/theme.zod.d.ts.map +1 -0
  62. package/dist/zod/theme.zod.js +130 -0
  63. package/dist/zod/views.zod.d.ts +675 -0
  64. package/dist/zod/views.zod.d.ts.map +1 -0
  65. package/dist/zod/views.zod.js +159 -0
  66. package/package.json +2 -2
  67. package/src/__tests__/namespace-exports.test.ts +80 -0
  68. package/src/__tests__/phase2-schemas.test.ts +639 -0
  69. package/src/app.ts +12 -0
  70. package/src/blocks.ts +405 -0
  71. package/src/crud.ts +177 -3
  72. package/src/data-protocol.ts +1679 -0
  73. package/src/data.ts +3 -1
  74. package/src/field-types.ts +392 -11
  75. package/src/index.ts +214 -0
  76. package/src/objectql.ts +9 -1
  77. package/src/plugin-scope.ts +210 -0
  78. package/src/reports.ts +408 -0
  79. package/src/theme.ts +351 -0
  80. package/src/ui-action.ts +276 -0
  81. package/src/views.ts +429 -0
  82. package/src/zod/app.zod.ts +72 -0
  83. package/src/zod/blocks.zod.ts +170 -0
  84. package/src/zod/complex.zod.ts +1 -1
  85. package/src/zod/crud.zod.ts +259 -0
  86. package/src/zod/data-display.zod.ts +1 -1
  87. package/src/zod/disclosure.zod.ts +1 -1
  88. package/src/zod/feedback.zod.ts +1 -1
  89. package/src/zod/form.zod.ts +1 -1
  90. package/src/zod/index.zod.ts +167 -19
  91. package/src/zod/layout.zod.ts +1 -1
  92. package/src/zod/navigation.zod.ts +1 -1
  93. package/src/zod/objectql.zod.ts +1 -1
  94. package/src/zod/overlay.zod.ts +1 -1
  95. package/src/zod/reports.zod.ts +183 -0
  96. package/src/zod/theme.zod.ts +155 -0
  97. package/src/zod/views.zod.ts +182 -0
package/src/data.ts CHANGED
@@ -35,9 +35,11 @@ export interface QueryParams {
35
35
 
36
36
  /**
37
37
  * Sort order
38
+ * Can be a Map { field: 'asc' }, an Array of strings ['field', '-field'], or Array of sort objects
38
39
  * @example { createdAt: 'desc', name: 'asc' }
40
+ * @example ['name', '-createdAt']
39
41
  */
40
- $orderby?: Record<string, 'asc' | 'desc'>;
42
+ $orderby?: Record<string, 'asc' | 'desc'> | string[] | Array<{ field: string; order?: 'asc' | 'desc' }>;
41
43
 
42
44
  /**
43
45
  * Number of records to skip (for pagination)
@@ -67,11 +67,12 @@ export interface BaseFieldMetadata {
67
67
  defaultValue?: any;
68
68
 
69
69
  /**
70
- * Field permissions
70
+ * Field permissions (Phase 3.2.6)
71
71
  */
72
72
  permissions?: {
73
73
  read?: boolean;
74
74
  write?: boolean;
75
+ edit?: boolean;
75
76
  };
76
77
 
77
78
  /**
@@ -93,6 +94,22 @@ export interface BaseFieldMetadata {
93
94
  * Custom validation function or rules
94
95
  */
95
96
  validate?: ValidationFunction | ValidationRule;
97
+
98
+ /**
99
+ * Field dependencies (Phase 3.2.3)
100
+ * List of fields that this field depends on
101
+ */
102
+ depends_on?: string[];
103
+
104
+ /**
105
+ * Field index for database optimization
106
+ */
107
+ indexed?: boolean;
108
+
109
+ /**
110
+ * Field is unique constraint
111
+ */
112
+ unique?: boolean;
96
113
  }
97
114
 
98
115
  /**
@@ -339,21 +356,53 @@ export interface LookupFieldMetadata extends BaseFieldMetadata {
339
356
 
340
357
  /**
341
358
  * Formula field metadata (read-only computed field)
359
+ * Phase 3.2.4: Enhanced formula field with real-time computation
342
360
  */
343
361
  export interface FormulaFieldMetadata extends BaseFieldMetadata {
344
362
  type: 'formula';
363
+ /**
364
+ * Formula expression
365
+ * Supports JavaScript-like expressions with field references
366
+ * @example "${amount} * ${tax_rate}"
367
+ * @example "${firstName} + ' ' + ${lastName}"
368
+ */
345
369
  formula?: string;
346
- return_type?: string;
370
+ /**
371
+ * Return type of the formula
372
+ */
373
+ return_type?: 'text' | 'number' | 'boolean' | 'date' | 'datetime';
374
+ /**
375
+ * Whether to recompute on dependency changes
376
+ */
377
+ auto_compute?: boolean;
347
378
  }
348
379
 
349
380
  /**
350
381
  * Summary/Rollup field metadata (aggregation)
382
+ * Phase 3.2.5: Enhanced summary field implementation
351
383
  */
352
384
  export interface SummaryFieldMetadata extends BaseFieldMetadata {
353
385
  type: 'summary';
386
+ /**
387
+ * Related object to summarize from
388
+ */
354
389
  summary_object?: string;
390
+ /**
391
+ * Field to aggregate in the related object
392
+ */
355
393
  summary_field?: string;
356
- summary_type?: 'count' | 'sum' | 'avg' | 'min' | 'max';
394
+ /**
395
+ * Aggregation type
396
+ */
397
+ summary_type?: 'count' | 'sum' | 'avg' | 'min' | 'max' | 'first' | 'last';
398
+ /**
399
+ * Filter condition for summarized records
400
+ */
401
+ summary_filter?: Record<string, any>;
402
+ /**
403
+ * Whether to auto-update on related record changes
404
+ */
405
+ auto_update?: boolean;
357
406
  }
358
407
 
359
408
  /**
@@ -383,18 +432,136 @@ export interface ObjectFieldMetadata extends BaseFieldMetadata {
383
432
 
384
433
  /**
385
434
  * Vector field metadata (embeddings)
435
+ * Phase 3.2.1: Complete vector field implementation
386
436
  */
387
437
  export interface VectorFieldMetadata extends BaseFieldMetadata {
388
438
  type: 'vector';
439
+ /**
440
+ * Vector dimensions (e.g., 768 for BERT, 1536 for OpenAI)
441
+ */
389
442
  dimensions?: number;
443
+ /**
444
+ * Distance metric for similarity search
445
+ */
446
+ distance_metric?: 'cosine' | 'euclidean' | 'dot_product';
447
+ /**
448
+ * Whether to index for similarity search
449
+ */
450
+ indexed?: boolean;
451
+ /**
452
+ * Normalization strategy
453
+ */
454
+ normalize?: boolean;
390
455
  }
391
456
 
392
457
  /**
393
458
  * Grid field metadata (sub-table)
459
+ * Phase 3.2.2: Complete grid field implementation
394
460
  */
395
461
  export interface GridFieldMetadata extends BaseFieldMetadata {
396
462
  type: 'grid';
397
- columns?: any[];
463
+ /**
464
+ * Column definitions for the grid
465
+ */
466
+ columns?: GridColumnDefinition[];
467
+ /**
468
+ * Minimum number of rows
469
+ */
470
+ min_rows?: number;
471
+ /**
472
+ * Maximum number of rows
473
+ */
474
+ max_rows?: number;
475
+ /**
476
+ * Whether to allow adding rows
477
+ */
478
+ allow_add?: boolean;
479
+ /**
480
+ * Whether to allow deleting rows
481
+ */
482
+ allow_delete?: boolean;
483
+ /**
484
+ * Whether to allow reordering rows
485
+ */
486
+ allow_reorder?: boolean;
487
+ }
488
+
489
+ /**
490
+ * Grid column definition
491
+ */
492
+ export interface GridColumnDefinition {
493
+ /**
494
+ * Column field name
495
+ */
496
+ name: string;
497
+ /**
498
+ * Column label
499
+ */
500
+ label?: string;
501
+ /**
502
+ * Field type
503
+ */
504
+ type: string;
505
+ /**
506
+ * Whether column is required
507
+ */
508
+ required?: boolean;
509
+ /**
510
+ * Default value for new rows
511
+ */
512
+ defaultValue?: any;
513
+ /**
514
+ * Column width
515
+ */
516
+ width?: number;
517
+ /**
518
+ * Validation rules
519
+ */
520
+ validate?: ValidationRule;
521
+ }
522
+
523
+ export interface ColorFieldMetadata extends BaseFieldMetadata {
524
+ type: 'color';
525
+ }
526
+
527
+ export interface CodeFieldMetadata extends BaseFieldMetadata {
528
+ type: 'code';
529
+ }
530
+
531
+ export interface AvatarFieldMetadata extends BaseFieldMetadata {
532
+ type: 'avatar';
533
+ }
534
+
535
+ export interface SignatureFieldMetadata extends BaseFieldMetadata {
536
+ type: 'signature';
537
+ }
538
+
539
+ export interface QRCodeFieldMetadata extends BaseFieldMetadata {
540
+ type: 'qrcode';
541
+ }
542
+
543
+ export interface AddressFieldMetadata extends BaseFieldMetadata {
544
+ type: 'address';
545
+ }
546
+
547
+ export interface GeolocationFieldMetadata extends BaseFieldMetadata {
548
+ type: 'geolocation';
549
+ }
550
+
551
+ export interface SliderFieldMetadata extends BaseFieldMetadata {
552
+ type: 'slider';
553
+ min?: number;
554
+ max?: number;
555
+ }
556
+
557
+ export interface RatingFieldMetadata extends BaseFieldMetadata {
558
+ type: 'rating';
559
+ max?: number;
560
+ }
561
+
562
+ export interface MasterDetailFieldMetadata extends BaseFieldMetadata {
563
+ type: 'master_detail';
564
+ reference_to?: string;
398
565
  }
399
566
 
400
567
  /**
@@ -427,10 +594,118 @@ export type FieldMetadata =
427
594
  | UserFieldMetadata
428
595
  | ObjectFieldMetadata
429
596
  | VectorFieldMetadata
430
- | GridFieldMetadata;
597
+ | GridFieldMetadata
598
+ | ColorFieldMetadata
599
+ | CodeFieldMetadata
600
+ | AvatarFieldMetadata
601
+ | SignatureFieldMetadata
602
+ | QRCodeFieldMetadata
603
+ | AddressFieldMetadata
604
+ | GeolocationFieldMetadata
605
+ | SliderFieldMetadata
606
+ | RatingFieldMetadata
607
+ | MasterDetailFieldMetadata;
608
+
609
+ /**
610
+ * Object trigger configuration (Phase 3.1.3)
611
+ */
612
+ export interface ObjectTrigger {
613
+ /**
614
+ * Trigger name
615
+ */
616
+ name: string;
617
+ /**
618
+ * When to execute the trigger
619
+ */
620
+ when: 'before' | 'after';
621
+ /**
622
+ * Which operation triggers this
623
+ */
624
+ on: 'create' | 'update' | 'delete' | 'read';
625
+ /**
626
+ * Trigger condition (optional)
627
+ */
628
+ condition?: string;
629
+ /**
630
+ * Action to execute
631
+ */
632
+ action: 'validation' | 'workflow' | 'notification' | 'calculation' | 'custom';
633
+ /**
634
+ * Action configuration
635
+ */
636
+ config?: Record<string, any>;
637
+ }
638
+
639
+ /**
640
+ * Object permission configuration (Phase 3.1.4)
641
+ */
642
+ export interface ObjectPermission {
643
+ /**
644
+ * Permission profile name
645
+ */
646
+ profile?: string;
647
+ /**
648
+ * Role-based permissions
649
+ */
650
+ roles?: string[];
651
+ /**
652
+ * CRUD permissions
653
+ */
654
+ create?: boolean;
655
+ read?: boolean;
656
+ update?: boolean;
657
+ delete?: boolean;
658
+ /**
659
+ * Record-level permissions
660
+ */
661
+ record_level?: {
662
+ /**
663
+ * User can only access own records
664
+ */
665
+ own_records_only?: boolean;
666
+ /**
667
+ * Sharing rules
668
+ */
669
+ sharing_rules?: SharingRule[];
670
+ };
671
+ /**
672
+ * Field-level permissions
673
+ */
674
+ field_permissions?: Record<string, {
675
+ read?: boolean;
676
+ edit?: boolean;
677
+ }>;
678
+ }
679
+
680
+ /**
681
+ * Sharing rule configuration
682
+ */
683
+ export interface SharingRule {
684
+ /**
685
+ * Rule name
686
+ */
687
+ name: string;
688
+ /**
689
+ * Criteria for sharing
690
+ */
691
+ criteria?: Record<string, any>;
692
+ /**
693
+ * Access level granted
694
+ */
695
+ access_level: 'read' | 'edit' | 'full';
696
+ /**
697
+ * Share with users/roles
698
+ */
699
+ share_with?: {
700
+ users?: string[];
701
+ roles?: string[];
702
+ groups?: string[];
703
+ };
704
+ }
431
705
 
432
706
  /**
433
707
  * Object schema definition
708
+ * Phase 3.1: Enhanced with inheritance, triggers, permissions, and caching
434
709
  */
435
710
  export interface ObjectSchemaMetadata {
436
711
  /**
@@ -454,12 +729,118 @@ export interface ObjectSchemaMetadata {
454
729
  fields: Record<string, FieldMetadata>;
455
730
 
456
731
  /**
457
- * Permissions
732
+ * Permissions (Phase 3.1.4: Enhanced permissions)
458
733
  */
459
- permissions?: {
460
- create?: boolean;
461
- read?: boolean;
462
- update?: boolean;
463
- delete?: boolean;
734
+ permissions?: ObjectPermission;
735
+
736
+ /**
737
+ * Parent object to inherit from (Phase 3.1.2)
738
+ */
739
+ extends?: string;
740
+
741
+ /**
742
+ * Triggers configuration (Phase 3.1.3)
743
+ */
744
+ triggers?: ObjectTrigger[];
745
+
746
+ /**
747
+ * Primary key field
748
+ */
749
+ primary_key?: string;
750
+
751
+ /**
752
+ * Indexes for optimization
753
+ */
754
+ indexes?: ObjectIndex[];
755
+
756
+ /**
757
+ * Relationships with other objects
758
+ */
759
+ relationships?: ObjectRelationship[];
760
+
761
+ /**
762
+ * Record naming pattern
763
+ */
764
+ name_field?: string;
765
+
766
+ /**
767
+ * Soft delete configuration
768
+ */
769
+ soft_delete?: boolean;
770
+
771
+ /**
772
+ * Audit trail configuration
773
+ */
774
+ audit_trail?: boolean;
775
+
776
+ /**
777
+ * Schema version
778
+ */
779
+ version?: string;
780
+
781
+ /**
782
+ * Cache configuration (Phase 3.1.5)
783
+ */
784
+ cache?: {
785
+ /**
786
+ * Enable metadata caching
787
+ */
788
+ enabled?: boolean;
789
+ /**
790
+ * Cache TTL in seconds
791
+ */
792
+ ttl?: number;
793
+ /**
794
+ * Cache invalidation strategy
795
+ */
796
+ invalidation?: 'time' | 'event' | 'manual';
464
797
  };
465
798
  }
799
+
800
+ /**
801
+ * Object index configuration
802
+ */
803
+ export interface ObjectIndex {
804
+ /**
805
+ * Index name
806
+ */
807
+ name: string;
808
+ /**
809
+ * Fields to index
810
+ */
811
+ fields: string[];
812
+ /**
813
+ * Whether index is unique
814
+ */
815
+ unique?: boolean;
816
+ /**
817
+ * Index type
818
+ */
819
+ type?: 'btree' | 'hash' | 'gist' | 'gin';
820
+ }
821
+
822
+ /**
823
+ * Object relationship configuration
824
+ */
825
+ export interface ObjectRelationship {
826
+ /**
827
+ * Relationship name
828
+ */
829
+ name: string;
830
+ /**
831
+ * Related object
832
+ */
833
+ object: string;
834
+ /**
835
+ * Relationship type
836
+ */
837
+ type: 'one-to-one' | 'one-to-many' | 'many-to-one' | 'many-to-many';
838
+ /**
839
+ * Foreign key field
840
+ */
841
+ foreign_key?: string;
842
+ /**
843
+ * Cascade delete
844
+ */
845
+ cascade_delete?: boolean;
846
+ }
package/src/index.ts CHANGED
@@ -299,6 +299,8 @@ export type {
299
299
  // ============================================================================
300
300
  export type {
301
301
  BaseFieldMetadata,
302
+ VisibilityCondition,
303
+ ValidationFunction as FieldValidationFunction,
302
304
  TextFieldMetadata,
303
305
  TextareaFieldMetadata,
304
306
  MarkdownFieldMetadata,
@@ -328,10 +330,108 @@ export type {
328
330
  ObjectFieldMetadata,
329
331
  VectorFieldMetadata,
330
332
  GridFieldMetadata,
333
+ GridColumnDefinition,
334
+ ColorFieldMetadata,
335
+ CodeFieldMetadata,
336
+ AvatarFieldMetadata,
337
+ SignatureFieldMetadata,
338
+ QRCodeFieldMetadata,
339
+ AddressFieldMetadata,
340
+ GeolocationFieldMetadata,
341
+ SliderFieldMetadata,
342
+ RatingFieldMetadata,
343
+ MasterDetailFieldMetadata,
331
344
  FieldMetadata,
345
+ ObjectTrigger,
346
+ ObjectPermission,
347
+ SharingRule,
332
348
  ObjectSchemaMetadata,
349
+ ObjectIndex,
350
+ ObjectRelationship,
333
351
  } from './field-types';
334
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
+
335
435
  // ============================================================================
336
436
  // API and Events - API Integration and Event Handling
337
437
  // ============================================================================
@@ -365,6 +465,71 @@ import type { CRUDComponentSchema } from './crud';
365
465
  import type { ObjectQLComponentSchema, ListViewSchema } from './objectql';
366
466
  import type { AppSchema } from './app';
367
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
+
368
533
  /**
369
534
  * Union of all component schemas.
370
535
  * Use this for generic component rendering where the type is determined at runtime.
@@ -431,3 +596,52 @@ export type {
431
596
  SchemaRegistry,
432
597
  ComponentType,
433
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';