@object-ui/types 0.5.0 → 3.0.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 (127) hide show
  1. package/README.md +1 -1
  2. package/dist/ai.d.ts +376 -0
  3. package/dist/ai.d.ts.map +1 -0
  4. package/dist/ai.js +8 -0
  5. package/dist/app.d.ts +2 -2
  6. package/dist/complex.d.ts +2 -0
  7. package/dist/complex.d.ts.map +1 -1
  8. package/dist/crud.d.ts +3 -0
  9. package/dist/crud.d.ts.map +1 -1
  10. package/dist/data-display.d.ts +40 -0
  11. package/dist/data-display.d.ts.map +1 -1
  12. package/dist/data-protocol.d.ts +19 -19
  13. package/dist/data.d.ts +77 -0
  14. package/dist/data.d.ts.map +1 -1
  15. package/dist/designer.d.ts +473 -0
  16. package/dist/designer.d.ts.map +1 -0
  17. package/dist/designer.js +8 -0
  18. package/dist/form.d.ts +35 -1
  19. package/dist/form.d.ts.map +1 -1
  20. package/dist/index.d.ts +46 -8
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +18 -0
  23. package/dist/layout.d.ts +63 -8
  24. package/dist/layout.d.ts.map +1 -1
  25. package/dist/mobile.d.ts +186 -0
  26. package/dist/mobile.d.ts.map +1 -0
  27. package/dist/mobile.js +8 -0
  28. package/dist/objectql.d.ts +341 -88
  29. package/dist/objectql.d.ts.map +1 -1
  30. package/dist/permissions.d.ts +150 -0
  31. package/dist/permissions.d.ts.map +1 -0
  32. package/dist/permissions.js +8 -0
  33. package/dist/tenant.d.ts +138 -0
  34. package/dist/tenant.d.ts.map +1 -0
  35. package/dist/tenant.js +8 -0
  36. package/dist/theme.d.ts +115 -224
  37. package/dist/theme.d.ts.map +1 -1
  38. package/dist/ui-action.d.ts +126 -11
  39. package/dist/ui-action.d.ts.map +1 -1
  40. package/dist/views.d.ts +20 -0
  41. package/dist/views.d.ts.map +1 -1
  42. package/dist/widget.d.ts +181 -0
  43. package/dist/widget.d.ts.map +1 -0
  44. package/dist/widget.js +8 -0
  45. package/dist/workflow.d.ts +340 -0
  46. package/dist/workflow.d.ts.map +1 -0
  47. package/dist/workflow.js +8 -0
  48. package/dist/zod/blocks.zod.d.ts +2 -2
  49. package/dist/zod/blocks.zod.d.ts.map +1 -1
  50. package/dist/zod/blocks.zod.js +1 -1
  51. package/dist/zod/complex.zod.d.ts +6 -6
  52. package/dist/zod/complex.zod.d.ts.map +1 -1
  53. package/dist/zod/complex.zod.js +1 -1
  54. package/dist/zod/crud.zod.d.ts +5 -5
  55. package/dist/zod/data-display.zod.d.ts +2 -2
  56. package/dist/zod/data-display.zod.d.ts.map +1 -1
  57. package/dist/zod/data-display.zod.js +1 -1
  58. package/dist/zod/disclosure.zod.d.ts +2 -2
  59. package/dist/zod/disclosure.zod.d.ts.map +1 -1
  60. package/dist/zod/disclosure.zod.js +1 -1
  61. package/dist/zod/feedback.zod.d.ts +12 -12
  62. package/dist/zod/feedback.zod.d.ts.map +1 -1
  63. package/dist/zod/feedback.zod.js +1 -1
  64. package/dist/zod/form.zod.d.ts +6 -6
  65. package/dist/zod/form.zod.d.ts.map +1 -1
  66. package/dist/zod/form.zod.js +1 -1
  67. package/dist/zod/index.zod.d.ts +337 -146
  68. package/dist/zod/index.zod.d.ts.map +1 -1
  69. package/dist/zod/index.zod.js +4 -4
  70. package/dist/zod/layout.zod.d.ts +134 -2
  71. package/dist/zod/layout.zod.d.ts.map +1 -1
  72. package/dist/zod/layout.zod.js +35 -1
  73. package/dist/zod/navigation.zod.d.ts +2 -2
  74. package/dist/zod/navigation.zod.d.ts.map +1 -1
  75. package/dist/zod/navigation.zod.js +1 -1
  76. package/dist/zod/objectql.zod.d.ts +32 -16
  77. package/dist/zod/objectql.zod.d.ts.map +1 -1
  78. package/dist/zod/objectql.zod.js +8 -0
  79. package/dist/zod/overlay.zod.d.ts +2 -2
  80. package/dist/zod/overlay.zod.d.ts.map +1 -1
  81. package/dist/zod/overlay.zod.js +1 -1
  82. package/dist/zod/reports.zod.d.ts +19 -19
  83. package/dist/zod/reports.zod.d.ts.map +1 -1
  84. package/dist/zod/reports.zod.js +1 -1
  85. package/dist/zod/theme.zod.d.ts +948 -267
  86. package/dist/zod/theme.zod.d.ts.map +1 -1
  87. package/dist/zod/theme.zod.js +175 -45
  88. package/dist/zod/views.zod.d.ts +22 -22
  89. package/dist/zod/views.zod.d.ts.map +1 -1
  90. package/dist/zod/views.zod.js +1 -1
  91. package/package.json +3 -2
  92. package/src/__tests__/namespace-exports.test.ts +23 -68
  93. package/src/__tests__/phase2-schemas.test.ts +8 -13
  94. package/src/ai.ts +454 -0
  95. package/src/app.ts +2 -2
  96. package/src/complex.ts +2 -0
  97. package/src/crud.ts +3 -0
  98. package/src/data-display.ts +36 -0
  99. package/src/data-protocol.ts +19 -19
  100. package/src/data.ts +91 -0
  101. package/src/designer.ts +509 -0
  102. package/src/form.ts +35 -1
  103. package/src/index.ts +397 -8
  104. package/src/layout.ts +66 -8
  105. package/src/mobile.ts +205 -0
  106. package/src/objectql.ts +419 -93
  107. package/src/permissions.ts +166 -0
  108. package/src/tenant.ts +153 -0
  109. package/src/theme.ts +147 -260
  110. package/src/ui-action.ts +166 -27
  111. package/src/views.ts +17 -0
  112. package/src/widget.ts +197 -0
  113. package/src/workflow.ts +409 -0
  114. package/src/zod/blocks.zod.ts +1 -1
  115. package/src/zod/complex.zod.ts +1 -1
  116. package/src/zod/data-display.zod.ts +1 -1
  117. package/src/zod/disclosure.zod.ts +1 -1
  118. package/src/zod/feedback.zod.ts +1 -1
  119. package/src/zod/form.zod.ts +1 -1
  120. package/src/zod/index.zod.ts +14 -3
  121. package/src/zod/layout.zod.ts +39 -1
  122. package/src/zod/navigation.zod.ts +1 -1
  123. package/src/zod/objectql.zod.ts +8 -0
  124. package/src/zod/overlay.zod.ts +1 -1
  125. package/src/zod/reports.zod.ts +1 -1
  126. package/src/zod/theme.zod.ts +189 -48
  127. package/src/zod/views.zod.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"theme.zod.d.ts","sourceRoot":"","sources":["../../src/zod/theme.zod.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;iBAmB7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;iBAQ3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;iBAM7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;EAA6D,CAAC;AAE1F;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAO7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAI/B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACxE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AACpE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACxE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACxE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAClE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAC1D,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC1E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"theme.zod.d.ts","sourceRoot":"","sources":["../../src/zod/theme.zod.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  * @object-ui/types/zod - Theme Schema Zod Validators
10
10
  *
11
11
  * Zod validation schemas for theme configuration.
12
- * Following @objectstack/spec UI specification format.
12
+ * Aligned with @objectstack/spec UI specification.
13
13
  *
14
14
  * @module zod/theme
15
15
  * @packageDocumentation
@@ -18,78 +18,198 @@ import { z } from 'zod';
18
18
  import { BaseSchema } from './base.zod.js';
19
19
  /**
20
20
  * Color Palette Schema
21
+ * Mirrors @objectstack/spec/ui ColorPaletteSchema.
21
22
  */
22
23
  export const ColorPaletteSchema = z.object({
23
- primary: z.string().optional().describe('Primary brand color'),
24
+ primary: z.string().describe('Primary brand color'),
24
25
  secondary: z.string().optional().describe('Secondary color'),
25
26
  accent: z.string().optional().describe('Accent color'),
26
- background: z.string().optional().describe('Background color'),
27
- foreground: z.string().optional().describe('Foreground/text color'),
28
- muted: z.string().optional().describe('Muted color'),
29
- mutedForeground: z.string().optional().describe('Muted foreground color'),
30
- border: z.string().optional().describe('Border color'),
31
- input: z.string().optional().describe('Input border color'),
32
- ring: z.string().optional().describe('Ring/focus color'),
33
27
  success: z.string().optional().describe('Success color'),
34
28
  warning: z.string().optional().describe('Warning color'),
35
- destructive: z.string().optional().describe('Error/destructive color'),
36
- info: z.string().optional().describe('Info color'),
37
- card: z.string().optional().describe('Card background color'),
38
- cardForeground: z.string().optional().describe('Card foreground color'),
39
- popover: z.string().optional().describe('Popover background color'),
40
- popoverForeground: z.string().optional().describe('Popover foreground color'),
29
+ error: z.string().optional().describe('Error color'),
30
+ info: z.string().optional().describe('Informational color'),
31
+ background: z.string().optional().describe('Background color'),
32
+ surface: z.string().optional().describe('Surface/card background color'),
33
+ text: z.string().optional().describe('Primary text color'),
34
+ textSecondary: z.string().optional().describe('Secondary text color'),
35
+ border: z.string().optional().describe('Border color'),
36
+ disabled: z.string().optional().describe('Disabled state color'),
37
+ primaryLight: z.string().optional().describe('Lighter primary variant'),
38
+ primaryDark: z.string().optional().describe('Darker primary variant'),
39
+ secondaryLight: z.string().optional().describe('Lighter secondary variant'),
40
+ secondaryDark: z.string().optional().describe('Darker secondary variant'),
41
41
  });
42
42
  /**
43
43
  * Typography Schema
44
+ * Mirrors @objectstack/spec/ui TypographySchema.
44
45
  */
45
46
  export const TypographySchema = z.object({
46
- fontSans: z.array(z.string()).optional().describe('Font family for sans-serif text'),
47
- fontSerif: z.array(z.string()).optional().describe('Font family for serif text'),
48
- fontMono: z.array(z.string()).optional().describe('Font family for monospace text'),
49
- fontSize: z.number().optional().describe('Base font size (in rem)'),
50
- lineHeight: z.number().optional().describe('Line height'),
51
- headingWeight: z.number().optional().describe('Font weight for headings'),
52
- bodyWeight: z.number().optional().describe('Font weight for body text'),
47
+ fontFamily: z.object({
48
+ base: z.string().optional().describe('Base body font family'),
49
+ heading: z.string().optional().describe('Heading font family'),
50
+ mono: z.string().optional().describe('Monospace font family'),
51
+ }).optional().describe('Font family definitions'),
52
+ fontSize: z.object({
53
+ xs: z.string().optional(),
54
+ sm: z.string().optional(),
55
+ base: z.string().optional(),
56
+ lg: z.string().optional(),
57
+ xl: z.string().optional(),
58
+ '2xl': z.string().optional(),
59
+ '3xl': z.string().optional(),
60
+ '4xl': z.string().optional(),
61
+ }).optional().describe('Font size scale'),
62
+ fontWeight: z.object({
63
+ light: z.number().optional(),
64
+ normal: z.number().optional(),
65
+ medium: z.number().optional(),
66
+ semibold: z.number().optional(),
67
+ bold: z.number().optional(),
68
+ }).optional().describe('Font weight scale'),
69
+ lineHeight: z.object({
70
+ tight: z.string().optional(),
71
+ normal: z.string().optional(),
72
+ relaxed: z.string().optional(),
73
+ loose: z.string().optional(),
74
+ }).optional().describe('Line height scale'),
75
+ letterSpacing: z.object({
76
+ tighter: z.string().optional(),
77
+ tight: z.string().optional(),
78
+ normal: z.string().optional(),
79
+ wide: z.string().optional(),
80
+ wider: z.string().optional(),
81
+ }).optional().describe('Letter spacing scale'),
53
82
  });
54
83
  /**
55
84
  * Spacing Scale Schema
85
+ * Mirrors @objectstack/spec/ui SpacingSchema.
56
86
  */
57
- export const SpacingScaleSchema = z.object({
58
- base: z.number().optional().describe('Base spacing unit (in rem)'),
59
- scale: z.record(z.string(), z.string()).optional().describe('Custom spacing values'),
87
+ export const SpacingSchema = z.object({
88
+ '0': z.string().optional(),
89
+ '1': z.string().optional(),
90
+ '2': z.string().optional(),
91
+ '3': z.string().optional(),
92
+ '4': z.string().optional(),
93
+ '5': z.string().optional(),
94
+ '6': z.string().optional(),
95
+ '8': z.string().optional(),
96
+ '10': z.string().optional(),
97
+ '12': z.string().optional(),
98
+ '16': z.string().optional(),
99
+ '20': z.string().optional(),
100
+ '24': z.string().optional(),
60
101
  });
61
102
  /**
62
103
  * Border Radius Schema
104
+ * Mirrors @objectstack/spec/ui BorderRadiusSchema.
63
105
  */
64
106
  export const BorderRadiusSchema = z.object({
65
- sm: z.string().optional().describe('Small radius'),
66
- default: z.string().optional().describe('Default radius'),
67
- md: z.string().optional().describe('Medium radius'),
68
- lg: z.string().optional().describe('Large radius'),
69
- xl: z.string().optional().describe('Extra large radius'),
107
+ none: z.string().optional(),
108
+ sm: z.string().optional(),
109
+ base: z.string().optional(),
110
+ md: z.string().optional(),
111
+ lg: z.string().optional(),
112
+ xl: z.string().optional(),
113
+ '2xl': z.string().optional(),
114
+ full: z.string().optional(),
115
+ });
116
+ /**
117
+ * Shadow Schema
118
+ * Mirrors @objectstack/spec/ui ShadowSchema.
119
+ */
120
+ export const ShadowSchema = z.object({
121
+ none: z.string().optional(),
122
+ sm: z.string().optional(),
123
+ base: z.string().optional(),
124
+ md: z.string().optional(),
125
+ lg: z.string().optional(),
126
+ xl: z.string().optional(),
127
+ '2xl': z.string().optional(),
128
+ inner: z.string().optional(),
129
+ });
130
+ /**
131
+ * Breakpoints Schema
132
+ * Mirrors @objectstack/spec/ui BreakpointsSchema.
133
+ */
134
+ export const BreakpointsSchema = z.object({
135
+ xs: z.string().optional(),
136
+ sm: z.string().optional(),
137
+ md: z.string().optional(),
138
+ lg: z.string().optional(),
139
+ xl: z.string().optional(),
140
+ '2xl': z.string().optional(),
141
+ });
142
+ /**
143
+ * Animation Schema
144
+ * Mirrors @objectstack/spec/ui AnimationSchema.
145
+ */
146
+ export const AnimationSchema = z.object({
147
+ duration: z.object({
148
+ fast: z.string().optional(),
149
+ base: z.string().optional(),
150
+ slow: z.string().optional(),
151
+ }).optional().describe('Duration presets'),
152
+ timing: z.object({
153
+ linear: z.string().optional(),
154
+ ease: z.string().optional(),
155
+ easeIn: z.string().optional(),
156
+ easeOut: z.string().optional(),
157
+ easeInOut: z.string().optional(),
158
+ }).optional().describe('Timing function presets'),
159
+ });
160
+ /**
161
+ * Z-Index Schema
162
+ * Mirrors @objectstack/spec/ui ZIndexSchema.
163
+ */
164
+ export const ZIndexSchema = z.object({
165
+ base: z.number().optional(),
166
+ dropdown: z.number().optional(),
167
+ sticky: z.number().optional(),
168
+ fixed: z.number().optional(),
169
+ modalBackdrop: z.number().optional(),
170
+ modal: z.number().optional(),
171
+ popover: z.number().optional(),
172
+ tooltip: z.number().optional(),
70
173
  });
71
174
  /**
72
175
  * Theme Mode Schema
176
+ * Mirrors @objectstack/spec/ui ThemeMode.
73
177
  */
74
- export const ThemeModeSchema = z.enum(['light', 'dark', 'system']).describe('Theme mode');
178
+ export const ThemeModeSchema = z.enum(['light', 'dark', 'auto']).describe('Theme mode');
179
+ /**
180
+ * Theme Logo Schema
181
+ * Mirrors the inline logo object in @objectstack/spec ThemeSchema.
182
+ */
183
+ export const ThemeLogoSchema = z.object({
184
+ light: z.string().optional().describe('Logo URL for light mode'),
185
+ dark: z.string().optional().describe('Logo URL for dark mode'),
186
+ favicon: z.string().optional().describe('Favicon URL'),
187
+ });
75
188
  /**
76
189
  * Theme Definition Schema
190
+ * Mirrors @objectstack/spec/ui ThemeSchema.
77
191
  */
78
192
  export const ThemeDefinitionSchema = z.object({
79
- name: z.string().describe('Theme name/identifier'),
80
- label: z.string().optional().describe('Theme display label'),
81
- light: ColorPaletteSchema.optional().describe('Light mode color palette'),
82
- dark: ColorPaletteSchema.optional().describe('Dark mode color palette'),
83
- typography: TypographySchema.optional().describe('Typography configuration'),
84
- spacing: SpacingScaleSchema.optional().describe('Spacing scale configuration'),
85
- radius: BorderRadiusSchema.optional().describe('Border radius configuration'),
86
- cssVariables: z.record(z.string(), z.string()).optional().describe('Custom CSS variables'),
87
- tailwind: z.record(z.string(), z.any()).optional().describe('Tailwind configuration overrides'),
193
+ name: z.string().describe('Theme identifier'),
194
+ label: z.string().describe('Display label'),
195
+ description: z.string().optional().describe('Human-readable description'),
196
+ mode: ThemeModeSchema.default('auto').describe('Theme mode'),
197
+ colors: ColorPaletteSchema.describe('Semantic color palette'),
198
+ typography: TypographySchema.optional().describe('Typography design tokens'),
199
+ spacing: SpacingSchema.optional().describe('Spacing scale'),
200
+ borderRadius: BorderRadiusSchema.optional().describe('Border radius scale'),
201
+ shadows: ShadowSchema.optional().describe('Shadow scale'),
202
+ breakpoints: BreakpointsSchema.optional().describe('Responsive breakpoints'),
203
+ animation: AnimationSchema.optional().describe('Animation presets'),
204
+ zIndex: ZIndexSchema.optional().describe('Z-index layering'),
205
+ customVars: z.record(z.string(), z.string()).optional().describe('Custom CSS variables'),
206
+ logo: ThemeLogoSchema.optional().describe('Logo/branding assets'),
207
+ extends: z.string().optional().describe('Extend another theme by name'),
88
208
  });
89
209
  /**
90
- * Theme Schema
210
+ * Theme Component Schema (ObjectUI rendering)
91
211
  */
92
- export const ThemeSchema = BaseSchema.extend({
212
+ export const ThemeComponentSchema = BaseSchema.extend({
93
213
  type: z.literal('theme'),
94
214
  mode: ThemeModeSchema.optional().describe('Current theme mode'),
95
215
  themes: z.array(ThemeDefinitionSchema).optional().describe('Available themes'),
@@ -121,10 +241,20 @@ export const ThemePreviewSchema = BaseSchema.extend({
121
241
  showComponents: z.boolean().optional().describe('Show component samples'),
122
242
  });
123
243
  /**
124
- * Union of all theme schemas
244
+ * Legacy alias use ThemeComponentSchema
245
+ * @deprecated
246
+ */
247
+ export const ThemeSchema = ThemeComponentSchema;
248
+ /**
249
+ * Union of all theme component schemas (for AnyComponentSchema union).
125
250
  */
126
- export const ThemeComponentSchema = z.union([
127
- ThemeSchema,
251
+ export const ThemeUnionSchema = z.discriminatedUnion('type', [
252
+ ThemeComponentSchema,
128
253
  ThemeSwitcherSchema,
129
254
  ThemePreviewSchema,
130
255
  ]);
256
+ /**
257
+ * Legacy alias — use SpacingSchema
258
+ * @deprecated
259
+ */
260
+ export const SpacingScaleSchema = SpacingSchema;
@@ -19,11 +19,11 @@ import { z } from 'zod';
19
19
  * View Type Schema
20
20
  */
21
21
  export declare const ViewTypeSchema: z.ZodEnum<{
22
+ list: "list";
23
+ grid: "grid";
22
24
  kanban: "kanban";
23
25
  calendar: "calendar";
24
- list: "list";
25
26
  timeline: "timeline";
26
- grid: "grid";
27
27
  detail: "detail";
28
28
  map: "map";
29
29
  }>;
@@ -125,9 +125,9 @@ export declare const DetailViewSchema: z.ZodObject<{
125
125
  objectName: z.ZodOptional<z.ZodString>;
126
126
  data: z.ZodOptional<z.ZodAny>;
127
127
  layout: z.ZodOptional<z.ZodEnum<{
128
+ grid: "grid";
128
129
  horizontal: "horizontal";
129
130
  vertical: "vertical";
130
- grid: "grid";
131
131
  }>>;
132
132
  columns: z.ZodOptional<z.ZodNumber>;
133
133
  sections: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -206,8 +206,8 @@ export declare const DetailViewSchema: z.ZodObject<{
206
206
  title: z.ZodString;
207
207
  type: z.ZodEnum<{
208
208
  list: "list";
209
- table: "table";
210
209
  grid: "grid";
210
+ table: "table";
211
211
  }>;
212
212
  api: z.ZodOptional<z.ZodString>;
213
213
  data: z.ZodOptional<z.ZodArray<z.ZodAny>>;
@@ -240,11 +240,11 @@ export declare const ViewSwitcherSchema: z.ZodObject<{
240
240
  type: z.ZodLiteral<"view-switcher">;
241
241
  views: z.ZodArray<z.ZodObject<{
242
242
  type: z.ZodEnum<{
243
+ list: "list";
244
+ grid: "grid";
243
245
  kanban: "kanban";
244
246
  calendar: "calendar";
245
- list: "list";
246
247
  timeline: "timeline";
247
- grid: "grid";
248
248
  detail: "detail";
249
249
  map: "map";
250
250
  }>;
@@ -253,20 +253,20 @@ export declare const ViewSwitcherSchema: z.ZodObject<{
253
253
  schema: z.ZodOptional<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>;
254
254
  }, z.core.$strip>>;
255
255
  defaultView: z.ZodOptional<z.ZodEnum<{
256
+ list: "list";
257
+ grid: "grid";
256
258
  kanban: "kanban";
257
259
  calendar: "calendar";
258
- list: "list";
259
260
  timeline: "timeline";
260
- grid: "grid";
261
261
  detail: "detail";
262
262
  map: "map";
263
263
  }>>;
264
264
  activeView: z.ZodOptional<z.ZodEnum<{
265
+ list: "list";
266
+ grid: "grid";
265
267
  kanban: "kanban";
266
268
  calendar: "calendar";
267
- list: "list";
268
269
  timeline: "timeline";
269
- grid: "grid";
270
270
  detail: "detail";
271
271
  map: "map";
272
272
  }>>;
@@ -339,8 +339,8 @@ export declare const FilterUISchema: z.ZodObject<{
339
339
  showClear: z.ZodOptional<z.ZodBoolean>;
340
340
  showApply: z.ZodOptional<z.ZodBoolean>;
341
341
  layout: z.ZodOptional<z.ZodEnum<{
342
- inline: "inline";
343
342
  drawer: "drawer";
343
+ inline: "inline";
344
344
  popover: "popover";
345
345
  }>>;
346
346
  }, z.core.$loose>;
@@ -388,7 +388,7 @@ export declare const SortUISchema: z.ZodObject<{
388
388
  /**
389
389
  * Union of all view schemas
390
390
  */
391
- export declare const ViewComponentSchema: z.ZodUnion<readonly [z.ZodObject<{
391
+ export declare const ViewComponentSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
392
392
  id: z.ZodOptional<z.ZodString>;
393
393
  name: z.ZodOptional<z.ZodString>;
394
394
  label: z.ZodOptional<z.ZodString>;
@@ -413,9 +413,9 @@ export declare const ViewComponentSchema: z.ZodUnion<readonly [z.ZodObject<{
413
413
  objectName: z.ZodOptional<z.ZodString>;
414
414
  data: z.ZodOptional<z.ZodAny>;
415
415
  layout: z.ZodOptional<z.ZodEnum<{
416
+ grid: "grid";
416
417
  horizontal: "horizontal";
417
418
  vertical: "vertical";
418
- grid: "grid";
419
419
  }>>;
420
420
  columns: z.ZodOptional<z.ZodNumber>;
421
421
  sections: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -494,8 +494,8 @@ export declare const ViewComponentSchema: z.ZodUnion<readonly [z.ZodObject<{
494
494
  title: z.ZodString;
495
495
  type: z.ZodEnum<{
496
496
  list: "list";
497
- table: "table";
498
497
  grid: "grid";
498
+ table: "table";
499
499
  }>;
500
500
  api: z.ZodOptional<z.ZodString>;
501
501
  data: z.ZodOptional<z.ZodArray<z.ZodAny>>;
@@ -524,11 +524,11 @@ export declare const ViewComponentSchema: z.ZodUnion<readonly [z.ZodObject<{
524
524
  type: z.ZodLiteral<"view-switcher">;
525
525
  views: z.ZodArray<z.ZodObject<{
526
526
  type: z.ZodEnum<{
527
+ list: "list";
528
+ grid: "grid";
527
529
  kanban: "kanban";
528
530
  calendar: "calendar";
529
- list: "list";
530
531
  timeline: "timeline";
531
- grid: "grid";
532
532
  detail: "detail";
533
533
  map: "map";
534
534
  }>;
@@ -537,20 +537,20 @@ export declare const ViewComponentSchema: z.ZodUnion<readonly [z.ZodObject<{
537
537
  schema: z.ZodOptional<z.ZodType<any, unknown, z.core.$ZodTypeInternals<any, unknown>>>;
538
538
  }, z.core.$strip>>;
539
539
  defaultView: z.ZodOptional<z.ZodEnum<{
540
+ list: "list";
541
+ grid: "grid";
540
542
  kanban: "kanban";
541
543
  calendar: "calendar";
542
- list: "list";
543
544
  timeline: "timeline";
544
- grid: "grid";
545
545
  detail: "detail";
546
546
  map: "map";
547
547
  }>>;
548
548
  activeView: z.ZodOptional<z.ZodEnum<{
549
+ list: "list";
550
+ grid: "grid";
549
551
  kanban: "kanban";
550
552
  calendar: "calendar";
551
- list: "list";
552
553
  timeline: "timeline";
553
- grid: "grid";
554
554
  detail: "detail";
555
555
  map: "map";
556
556
  }>>;
@@ -619,8 +619,8 @@ export declare const ViewComponentSchema: z.ZodUnion<readonly [z.ZodObject<{
619
619
  showClear: z.ZodOptional<z.ZodBoolean>;
620
620
  showApply: z.ZodOptional<z.ZodBoolean>;
621
621
  layout: z.ZodOptional<z.ZodEnum<{
622
- inline: "inline";
623
622
  drawer: "drawer";
623
+ inline: "inline";
624
624
  popover: "popover";
625
625
  }>>;
626
626
  }, z.core.$loose>, z.ZodObject<{
@@ -660,7 +660,7 @@ export declare const ViewComponentSchema: z.ZodUnion<readonly [z.ZodObject<{
660
660
  dropdown: "dropdown";
661
661
  buttons: "buttons";
662
662
  }>>;
663
- }, z.core.$loose>]>;
663
+ }, z.core.$loose>], "type">;
664
664
  /**
665
665
  * Export type inference helpers
666
666
  */
@@ -1 +1 @@
1
- {"version":3,"file":"views.zod.d.ts","sourceRoot":"","sources":["../../src/zod/views.zod.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;EAAoG,CAAC;AAEhI;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;iBAUhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;iBAO9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+B3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAe7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAezB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAavB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAK9B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAChE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC9E,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAClF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AACpE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACxE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"views.zod.d.ts","sourceRoot":"","sources":["../../src/zod/views.zod.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;EAAoG,CAAC;AAEhI;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;iBAUhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;iBAO9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+B3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAe7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAezB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAavB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAK9B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAChE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC9E,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAClF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AACpE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACxE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -151,7 +151,7 @@ export const SortUISchema = BaseSchema.extend({
151
151
  /**
152
152
  * Union of all view schemas
153
153
  */
154
- export const ViewComponentSchema = z.union([
154
+ export const ViewComponentSchema = z.discriminatedUnion('type', [
155
155
  DetailViewSchema,
156
156
  ViewSwitcherSchema,
157
157
  FilterUISchema,
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "@object-ui/types",
3
- "version": "0.5.0",
3
+ "version": "3.0.0",
4
4
  "description": "Pure TypeScript type definitions for Object UI - The Protocol Layer",
5
5
  "type": "module",
6
+ "sideEffects": false,
6
7
  "main": "./dist/index.js",
7
8
  "module": "./dist/index.js",
8
9
  "types": "./dist/index.d.ts",
@@ -75,7 +76,7 @@
75
76
  "directory": "packages/types"
76
77
  },
77
78
  "dependencies": {
78
- "@objectstack/spec": "^0.9.1",
79
+ "@objectstack/spec": "^3.0.2",
79
80
  "zod": "^4.3.6"
80
81
  },
81
82
  "devDependencies": {
@@ -1,80 +1,35 @@
1
1
  /**
2
- * Test to verify ObjectStack Spec v0.6.1 namespace exports
2
+ * Test to verify ObjectStack Spec v3.0.0 namespace exports
3
3
  */
4
4
  import { describe, it, expect } from 'vitest';
5
- import type { Data, UI, System, AI, API, Auth, Hub, Automation, Permission, Shared } from '../index';
6
5
 
7
- describe('ObjectStack Spec v0.6.1 Namespace Exports', () => {
8
- it('should export Data namespace', () => {
9
- // Type check only - this verifies the namespace is exported
10
- const field: Data.Field = {
11
- name: 'test',
12
- type: 'text',
13
- label: 'Test Field',
14
- };
15
- expect(field.name).toBe('test');
6
+ describe('ObjectStack Spec v3.0.0 Namespace Exports', () => {
7
+ it('should export Data namespace', async () => {
8
+ const types = await import('../index');
9
+ // Data namespace should exist and have content
10
+ expect(types).toHaveProperty('defineStack');
16
11
  });
17
12
 
18
- it('should export UI namespace', () => {
19
- // Type check only - verify UI namespace exists
20
- type UITest = UI.Component | undefined;
21
- const uiComponent: UITest = undefined;
22
- expect(uiComponent).toBeUndefined();
13
+ it('should export UI types via spec', async () => {
14
+ // Verify that types can be imported from @object-ui/types
15
+ const types = await import('../index');
16
+ // defineStack should be exported
17
+ expect(typeof types.defineStack).toBe('function');
23
18
  });
24
19
 
25
- it('should export System namespace', () => {
26
- // Type check only - verify System namespace exists
27
- type SystemTest = System.Environment | undefined;
28
- const systemEnv: SystemTest = undefined;
29
- expect(systemEnv).toBeUndefined();
20
+ it('should export ObjectStack schemas', async () => {
21
+ const types = await import('../index');
22
+ // ObjectStack capability schemas should be exported
23
+ expect(types.ObjectStackSchema).toBeDefined();
24
+ expect(types.ObjectStackDefinitionSchema).toBeDefined();
25
+ expect(types.ObjectStackCapabilitiesSchema).toBeDefined();
26
+ expect(types.ObjectOSCapabilitiesSchema).toBeDefined();
27
+ expect(types.ObjectQLCapabilitiesSchema).toBeDefined();
28
+ expect(types.ObjectUICapabilitiesSchema).toBeDefined();
30
29
  });
31
30
 
32
- it('should export AI namespace', () => {
33
- // Type check only - verify AI namespace exists
34
- type AITest = AI.Model | undefined;
35
- const aiModel: AITest = undefined;
36
- expect(aiModel).toBeUndefined();
37
- });
38
-
39
- it('should export API namespace', () => {
40
- // Type check only - verify API namespace exists
41
- type APITest = API.Endpoint | undefined;
42
- const apiEndpoint: APITest = undefined;
43
- expect(apiEndpoint).toBeUndefined();
44
- });
45
-
46
- it('should export Auth namespace', () => {
47
- // Type check only - verify Auth namespace exists
48
- type AuthTest = Auth.User | undefined;
49
- const authUser: AuthTest = undefined;
50
- expect(authUser).toBeUndefined();
51
- });
52
-
53
- it('should export Hub namespace', () => {
54
- // Type check only - verify Hub namespace exists
55
- type HubTest = Hub.Tenant | undefined;
56
- const hubTenant: HubTest = undefined;
57
- expect(hubTenant).toBeUndefined();
58
- });
59
-
60
- it('should export Automation namespace', () => {
61
- // Type check only - verify Automation namespace exists
62
- type AutomationTest = Automation.Workflow | undefined;
63
- const workflow: AutomationTest = undefined;
64
- expect(workflow).toBeUndefined();
65
- });
66
-
67
- it('should export Permission namespace', () => {
68
- // Type check only - verify Permission namespace exists
69
- type PermissionTest = Permission.PermissionSet | undefined;
70
- const permissionSet: PermissionTest = undefined;
71
- expect(permissionSet).toBeUndefined();
72
- });
73
-
74
- it('should export Shared namespace', () => {
75
- // Type check only - verify Shared namespace exists
76
- type SharedTest = Shared.ObjectId | undefined;
77
- const objectId: SharedTest = undefined;
78
- expect(objectId).toBeUndefined();
31
+ it('should export VERSION constant', async () => {
32
+ const types = await import('../index');
33
+ expect(types.VERSION).toBeDefined();
79
34
  });
80
35
  });
@@ -120,25 +120,20 @@ describe('Phase 2: ThemeSchema Zod Validation', () => {
120
120
  {
121
121
  name: 'professional',
122
122
  label: 'Professional',
123
- light: {
123
+ mode: 'auto',
124
+ colors: {
124
125
  primary: '#3b82f6',
125
126
  secondary: '#64748b',
126
127
  background: '#ffffff',
127
- foreground: '#0f172a',
128
- },
129
- dark: {
130
- primary: '#60a5fa',
131
- secondary: '#94a3b8',
132
- background: '#0f172a',
133
- foreground: '#f1f5f9',
128
+ text: '#0f172a',
134
129
  },
135
130
  typography: {
136
- fontSans: ['Inter', 'sans-serif'],
137
- fontSize: 16,
138
- lineHeight: 1.5,
131
+ fontFamily: { base: 'Inter, sans-serif' },
132
+ fontSize: { base: '1rem' },
133
+ lineHeight: { normal: '1.5' },
139
134
  },
140
- radius: {
141
- default: '0.5rem',
135
+ borderRadius: {
136
+ base: '0.5rem',
142
137
  lg: '1rem',
143
138
  },
144
139
  },