@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/data.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 - Data Source Types
3
11
  *
@@ -27,9 +35,11 @@ export interface QueryParams {
27
35
 
28
36
  /**
29
37
  * Sort order
38
+ * Can be a Map { field: 'asc' }, an Array of strings ['field', '-field'], or Array of sort objects
30
39
  * @example { createdAt: 'desc', name: 'asc' }
40
+ * @example ['name', '-createdAt']
31
41
  */
32
- $orderby?: Record<string, 'asc' | 'desc'>;
42
+ $orderby?: Record<string, 'asc' | 'desc'> | string[] | Array<{ field: string; order?: 'asc' | 'desc' }>;
33
43
 
34
44
  /**
35
45
  * Number of records to skip (for pagination)
@@ -185,6 +195,16 @@ export interface DataSource<T = any> {
185
195
  * @returns Promise resolving to operation result
186
196
  */
187
197
  bulk?(resource: string, operation: 'create' | 'update' | 'delete', data: Partial<T>[]): Promise<T[]>;
198
+
199
+ /**
200
+ * Get object schema/metadata.
201
+ * Used by ObjectQL-aware components to auto-generate UI from object metadata.
202
+ * Required for all DataSource implementations to support schema-aware components.
203
+ *
204
+ * @param objectName - Object name
205
+ * @returns Promise resolving to the object schema
206
+ */
207
+ getObjectSchema(objectName: string): Promise<any>;
188
208
  }
189
209
 
190
210
  /**
package/src/disclosure.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 - Disclosure Component Schemas
3
11
  *
@@ -105,9 +113,74 @@ export interface CollapsibleSchema extends BaseSchema {
105
113
  onOpenChange?: (open: boolean) => void;
106
114
  }
107
115
 
116
+ /**
117
+ * Toggle group item
118
+ */
119
+ export interface ToggleGroupItem {
120
+ /**
121
+ * Item value
122
+ */
123
+ value: string;
124
+ /**
125
+ * Item label
126
+ */
127
+ label: string;
128
+ /**
129
+ * Item icon
130
+ */
131
+ icon?: string;
132
+ /**
133
+ * Whether item is disabled
134
+ */
135
+ disabled?: boolean;
136
+ }
137
+
138
+ /**
139
+ * Toggle group component
140
+ */
141
+ export interface ToggleGroupSchema extends BaseSchema {
142
+ type: 'toggle-group';
143
+ /**
144
+ * Toggle group selection mode
145
+ * @default 'single'
146
+ */
147
+ selectionType?: 'single' | 'multiple';
148
+ /**
149
+ * Toggle group variant
150
+ * @default 'default'
151
+ */
152
+ variant?: 'default' | 'outline';
153
+ /**
154
+ * Toggle group size
155
+ * @default 'default'
156
+ */
157
+ size?: 'default' | 'sm' | 'lg';
158
+ /**
159
+ * Toggle group items
160
+ */
161
+ items?: ToggleGroupItem[];
162
+ /**
163
+ * Default selected value(s)
164
+ */
165
+ defaultValue?: string | string[];
166
+ /**
167
+ * Controlled selected value(s)
168
+ */
169
+ value?: string | string[];
170
+ /**
171
+ * Whether toggle group is disabled
172
+ */
173
+ disabled?: boolean;
174
+ /**
175
+ * Change handler
176
+ */
177
+ onValueChange?: (value: string | string[]) => void;
178
+ }
179
+
108
180
  /**
109
181
  * Union type of all disclosure schemas
110
182
  */
111
183
  export type DisclosureSchema =
112
184
  | AccordionSchema
113
- | CollapsibleSchema;
185
+ | CollapsibleSchema
186
+ | ToggleGroupSchema;
package/src/feedback.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 - Feedback Component Schemas
3
11
  *
@@ -7,7 +15,7 @@
7
15
  * @packageDocumentation
8
16
  */
9
17
 
10
- import type { BaseSchema, SchemaNode } from './base';
18
+ import type { BaseSchema } from './base';
11
19
 
12
20
  /**
13
21
  * Loading/Spinner component
@@ -159,6 +167,69 @@ export interface ToasterSchema extends BaseSchema {
159
167
  limit?: number;
160
168
  }
161
169
 
170
+ /**
171
+ * Spinner component
172
+ */
173
+ export interface SpinnerSchema extends BaseSchema {
174
+ type: 'spinner';
175
+ /**
176
+ * Spinner size
177
+ * @default 'md'
178
+ */
179
+ size?: 'sm' | 'md' | 'lg' | 'xl';
180
+ }
181
+
182
+ /**
183
+ * Empty state component
184
+ */
185
+ export interface EmptySchema extends BaseSchema {
186
+ type: 'empty';
187
+ /**
188
+ * Empty state title
189
+ */
190
+ title?: string;
191
+ /**
192
+ * Empty state description
193
+ */
194
+ description?: string;
195
+ /**
196
+ * Icon to display
197
+ */
198
+ icon?: string;
199
+ }
200
+
201
+ /**
202
+ * Sonner toast component (using sonner library)
203
+ */
204
+ export interface SonnerSchema extends BaseSchema {
205
+ type: 'sonner';
206
+ /**
207
+ * Toast message/title
208
+ */
209
+ message?: string;
210
+ /**
211
+ * Toast title (alias for message)
212
+ */
213
+ title?: string;
214
+ /**
215
+ * Toast description
216
+ */
217
+ description?: string;
218
+ /**
219
+ * Toast variant
220
+ * @default 'default'
221
+ */
222
+ variant?: 'default' | 'success' | 'error' | 'warning' | 'info';
223
+ /**
224
+ * Button label to trigger toast
225
+ */
226
+ buttonLabel?: string;
227
+ /**
228
+ * Button variant
229
+ */
230
+ buttonVariant?: 'default' | 'secondary' | 'destructive' | 'outline' | 'ghost' | 'link';
231
+ }
232
+
162
233
  /**
163
234
  * Union type of all feedback schemas
164
235
  */
@@ -167,4 +238,7 @@ export type FeedbackSchema =
167
238
  | ProgressSchema
168
239
  | SkeletonSchema
169
240
  | ToastSchema
170
- | ToasterSchema;
241
+ | ToasterSchema
242
+ | SpinnerSchema
243
+ | EmptySchema
244
+ | SonnerSchema;