@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complex.zod.d.ts","sourceRoot":"","sources":["../../src/zod/complex.zod.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;iBAU3B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;iBAO7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQvB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;EAA6C,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;iBAS9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAc7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAe/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAMhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAK5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAS5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAQ9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAUzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;iBAM5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAWxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;;;iBAKtC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;iBAKhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK1B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAOxB,CAAC"}
@@ -0,0 +1,233 @@
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
+ /**
9
+ * @object-ui/types/zod - Complex Component Zod Validators
10
+ *
11
+ * Zod validation schemas for advanced/composite components.
12
+ * Following @objectstack/spec UI specification format.
13
+ *
14
+ * @module zod/complex
15
+ * @packageDocumentation
16
+ */
17
+ import { z } from 'zod';
18
+ import { BaseSchema, SchemaNodeSchema } from './base.zod.js';
19
+ /**
20
+ * Kanban Card Schema
21
+ */
22
+ export const KanbanCardSchema = z.object({
23
+ id: z.string().describe('Card ID'),
24
+ title: z.string().describe('Card title'),
25
+ description: z.string().optional().describe('Card description'),
26
+ labels: z.array(z.string()).optional().describe('Card labels'),
27
+ assignees: z.array(z.string()).optional().describe('Card assignees'),
28
+ dueDate: z.union([z.string(), z.date()]).optional().describe('Due date'),
29
+ priority: z.enum(['low', 'medium', 'high', 'critical']).optional().describe('Card priority'),
30
+ content: z.union([SchemaNodeSchema, z.array(SchemaNodeSchema)]).optional().describe('Custom content'),
31
+ data: z.any().optional().describe('Custom card data'),
32
+ });
33
+ /**
34
+ * Kanban Column Schema
35
+ */
36
+ export const KanbanColumnSchema = z.object({
37
+ id: z.string().describe('Column ID'),
38
+ title: z.string().describe('Column title'),
39
+ items: z.array(KanbanCardSchema).describe('Column cards'),
40
+ color: z.string().optional().describe('Column color'),
41
+ limit: z.number().optional().describe('Card limit'),
42
+ collapsed: z.boolean().optional().describe('Whether column is collapsed'),
43
+ });
44
+ /**
45
+ * Kanban Schema - Kanban board component
46
+ */
47
+ export const KanbanSchema = BaseSchema.extend({
48
+ type: z.literal('kanban'),
49
+ columns: z.array(KanbanColumnSchema).describe('Kanban columns'),
50
+ draggable: z.boolean().optional().describe('Whether cards are draggable'),
51
+ onCardMove: z.function().optional().describe('Card move handler'),
52
+ onCardClick: z.function().optional().describe('Card click handler'),
53
+ onColumnAdd: z.function().optional().describe('Column add handler'),
54
+ onCardAdd: z.function().optional().describe('Card add handler'),
55
+ });
56
+ /**
57
+ * Calendar View Mode
58
+ */
59
+ export const CalendarViewModeSchema = z.enum(['month', 'week', 'day', 'agenda']);
60
+ /**
61
+ * Calendar Event Schema
62
+ */
63
+ export const CalendarEventSchema = z.object({
64
+ id: z.string().describe('Event ID'),
65
+ title: z.string().describe('Event title'),
66
+ description: z.string().optional().describe('Event description'),
67
+ start: z.union([z.string(), z.date()]).describe('Event start time'),
68
+ end: z.union([z.string(), z.date()]).describe('Event end time'),
69
+ allDay: z.boolean().optional().describe('Whether event is all-day'),
70
+ color: z.string().optional().describe('Event color'),
71
+ data: z.any().optional().describe('Custom event data'),
72
+ });
73
+ /**
74
+ * Calendar View Schema - Calendar component
75
+ */
76
+ export const CalendarViewSchema = BaseSchema.extend({
77
+ type: z.literal('calendar-view'),
78
+ events: z.array(CalendarEventSchema).describe('Calendar events'),
79
+ defaultView: CalendarViewModeSchema.optional().describe('Default view mode'),
80
+ view: CalendarViewModeSchema.optional().describe('Controlled view mode'),
81
+ defaultDate: z.union([z.string(), z.date()]).optional().describe('Default date'),
82
+ date: z.union([z.string(), z.date()]).optional().describe('Controlled date'),
83
+ views: z.array(CalendarViewModeSchema).optional().describe('Available views'),
84
+ editable: z.boolean().optional().describe('Whether events are editable'),
85
+ onEventClick: z.function().optional().describe('Event click handler'),
86
+ onEventCreate: z.function().optional().describe('Event create handler'),
87
+ onEventUpdate: z.function().optional().describe('Event update handler'),
88
+ onDateChange: z.function().optional().describe('Date change handler'),
89
+ onViewChange: z.function().optional().describe('View change handler'),
90
+ });
91
+ /**
92
+ * Filter Operator Enum
93
+ */
94
+ export const FilterOperatorSchema = z.enum([
95
+ 'equals',
96
+ 'not_equals',
97
+ 'contains',
98
+ 'not_contains',
99
+ 'starts_with',
100
+ 'ends_with',
101
+ 'greater_than',
102
+ 'greater_than_or_equal',
103
+ 'less_than',
104
+ 'less_than_or_equal',
105
+ 'in',
106
+ 'not_in',
107
+ 'is_null',
108
+ 'is_not_null',
109
+ ]);
110
+ /**
111
+ * Filter Condition Schema
112
+ */
113
+ export const FilterConditionSchema = z.lazy(() => z.object({
114
+ field: z.string().describe('Field name'),
115
+ operator: FilterOperatorSchema.describe('Filter operator'),
116
+ value: z.any().optional().describe('Filter value'),
117
+ }));
118
+ /**
119
+ * Filter Group Schema
120
+ */
121
+ export const FilterGroupSchema = z.lazy(() => z.object({
122
+ operator: z.enum(['and', 'or']).describe('Group operator'),
123
+ conditions: z.array(z.union([FilterConditionSchema, FilterGroupSchema])).describe('Conditions or sub-groups'),
124
+ }));
125
+ /**
126
+ * Filter Field Schema
127
+ */
128
+ export const FilterFieldSchema = z.object({
129
+ name: z.string().describe('Field name'),
130
+ label: z.string().describe('Field label'),
131
+ type: z.enum(['string', 'number', 'date', 'boolean', 'select']).describe('Field type'),
132
+ operators: z.array(FilterOperatorSchema).optional().describe('Available operators'),
133
+ options: z.array(z.object({
134
+ label: z.string(),
135
+ value: z.any(),
136
+ })).optional().describe('Options for select type'),
137
+ });
138
+ /**
139
+ * Filter Builder Schema - Filter builder component
140
+ */
141
+ export const FilterBuilderSchema = BaseSchema.extend({
142
+ type: z.literal('filter-builder'),
143
+ fields: z.array(FilterFieldSchema).describe('Available filter fields'),
144
+ defaultValue: z.union([FilterConditionSchema, FilterGroupSchema]).optional().describe('Default filter value'),
145
+ value: z.union([FilterConditionSchema, FilterGroupSchema]).optional().describe('Controlled filter value'),
146
+ onChange: z.function().optional().describe('Change handler'),
147
+ allowGroups: z.boolean().optional().describe('Allow grouped conditions'),
148
+ maxDepth: z.number().optional().describe('Maximum nesting depth'),
149
+ });
150
+ /**
151
+ * Carousel Item Schema
152
+ */
153
+ export const CarouselItemSchema = z.object({
154
+ id: z.string().optional().describe('Item ID'),
155
+ content: z.union([SchemaNodeSchema, z.array(SchemaNodeSchema)]).describe('Item content'),
156
+ });
157
+ /**
158
+ * Carousel Schema - Carousel component
159
+ */
160
+ export const CarouselSchema = BaseSchema.extend({
161
+ type: z.literal('carousel'),
162
+ items: z.array(CarouselItemSchema).describe('Carousel items'),
163
+ autoPlay: z.number().optional().describe('Auto-play interval (ms)'),
164
+ showArrows: z.boolean().optional().describe('Show navigation arrows'),
165
+ showDots: z.boolean().optional().describe('Show navigation dots'),
166
+ loop: z.boolean().optional().describe('Enable infinite loop'),
167
+ itemsPerView: z.number().optional().describe('Items per view'),
168
+ gap: z.number().optional().describe('Gap between items'),
169
+ onSlideChange: z.function().optional().describe('Slide change handler'),
170
+ });
171
+ /**
172
+ * Chat Message Schema
173
+ */
174
+ export const ChatMessageSchema = z.object({
175
+ id: z.string().describe('Message ID'),
176
+ role: z.enum(['user', 'assistant', 'system']).describe('Message role'),
177
+ content: z.string().describe('Message content'),
178
+ timestamp: z.union([z.string(), z.date()]).optional().describe('Message timestamp'),
179
+ metadata: z.record(z.string(), z.any()).optional().describe('Custom metadata'),
180
+ });
181
+ /**
182
+ * Chatbot Schema - Chatbot component
183
+ */
184
+ export const ChatbotSchema = BaseSchema.extend({
185
+ type: z.literal('chatbot'),
186
+ messages: z.array(ChatMessageSchema).describe('Chat messages'),
187
+ placeholder: z.string().optional().describe('Input placeholder'),
188
+ loading: z.boolean().optional().describe('Whether chat is loading'),
189
+ onSendMessage: z.function().optional().describe('Send message handler'),
190
+ showAvatars: z.boolean().optional().describe('Show user avatars'),
191
+ userAvatar: z.string().optional().describe('User avatar URL'),
192
+ assistantAvatar: z.string().optional().describe('Assistant avatar URL'),
193
+ markdown: z.boolean().optional().describe('Enable markdown rendering'),
194
+ height: z.union([z.string(), z.number()]).optional().describe('Chatbot height'),
195
+ });
196
+ /**
197
+ * Dashboard Widget Layout Schema
198
+ */
199
+ export const DashboardWidgetLayoutSchema = z.object({
200
+ x: z.number().describe('Grid x position'),
201
+ y: z.number().describe('Grid y position'),
202
+ w: z.number().describe('Grid width'),
203
+ h: z.number().describe('Grid height'),
204
+ });
205
+ /**
206
+ * Dashboard Widget Schema
207
+ */
208
+ export const DashboardWidgetSchema = z.object({
209
+ id: z.string().describe('Widget ID'),
210
+ title: z.string().optional().describe('Widget Title'),
211
+ component: SchemaNodeSchema.describe('Widget Component'),
212
+ layout: DashboardWidgetLayoutSchema.optional().describe('Widget Layout'),
213
+ });
214
+ /**
215
+ * Dashboard Schema - Dashboard component
216
+ */
217
+ export const DashboardSchema = BaseSchema.extend({
218
+ type: z.literal('dashboard'),
219
+ columns: z.number().optional().describe('Number of columns'),
220
+ gap: z.number().optional().describe('Grid gap'),
221
+ widgets: z.array(DashboardWidgetSchema).describe('Dashboard widgets'),
222
+ });
223
+ /**
224
+ * Complex Schema Union - All complex component schemas
225
+ */
226
+ export const ComplexSchema = z.union([
227
+ KanbanSchema,
228
+ CalendarViewSchema,
229
+ FilterBuilderSchema,
230
+ CarouselSchema,
231
+ ChatbotSchema,
232
+ DashboardSchema,
233
+ ]);