@object-ui/types 0.3.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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +304 -0
  3. package/dist/api-types.d.ts +451 -0
  4. package/dist/api-types.d.ts.map +1 -0
  5. package/dist/api-types.js +10 -0
  6. package/dist/app.d.ts +120 -0
  7. package/dist/app.d.ts.map +1 -0
  8. package/dist/app.js +7 -0
  9. package/dist/base.d.ts +360 -0
  10. package/dist/base.d.ts.map +1 -0
  11. package/dist/base.js +10 -0
  12. package/dist/complex.d.ts +433 -0
  13. package/dist/complex.d.ts.map +1 -0
  14. package/dist/complex.js +9 -0
  15. package/dist/crud.d.ts +457 -0
  16. package/dist/crud.d.ts.map +1 -0
  17. package/dist/crud.js +10 -0
  18. package/dist/data-display.d.ts +599 -0
  19. package/dist/data-display.d.ts.map +1 -0
  20. package/dist/data-display.js +9 -0
  21. package/dist/data.d.ts +295 -0
  22. package/dist/data.d.ts.map +1 -0
  23. package/dist/data.js +10 -0
  24. package/dist/disclosure.d.ts +107 -0
  25. package/dist/disclosure.d.ts.map +1 -0
  26. package/dist/disclosure.js +9 -0
  27. package/dist/feedback.d.ts +159 -0
  28. package/dist/feedback.d.ts.map +1 -0
  29. package/dist/feedback.js +9 -0
  30. package/dist/form.d.ts +932 -0
  31. package/dist/form.d.ts.map +1 -0
  32. package/dist/form.js +9 -0
  33. package/dist/index.d.ts +108 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +48 -0
  36. package/dist/layout.d.ts +418 -0
  37. package/dist/layout.d.ts.map +1 -0
  38. package/dist/layout.js +10 -0
  39. package/dist/navigation.d.ts +224 -0
  40. package/dist/navigation.d.ts.map +1 -0
  41. package/dist/navigation.js +9 -0
  42. package/dist/objectql.d.ts +254 -0
  43. package/dist/objectql.d.ts.map +1 -0
  44. package/dist/objectql.js +10 -0
  45. package/dist/overlay.d.ts +396 -0
  46. package/dist/overlay.d.ts.map +1 -0
  47. package/dist/overlay.js +9 -0
  48. package/dist/registry.d.ts +85 -0
  49. package/dist/registry.d.ts.map +1 -0
  50. package/dist/registry.js +1 -0
  51. package/package.json +82 -0
  52. package/src/api-types.ts +464 -0
  53. package/src/app.ts +138 -0
  54. package/src/base.ts +416 -0
  55. package/src/complex.ts +465 -0
  56. package/src/crud.ts +467 -0
  57. package/src/data-display.ts +630 -0
  58. package/src/data.ts +341 -0
  59. package/src/disclosure.ts +113 -0
  60. package/src/feedback.ts +170 -0
  61. package/src/form.ts +954 -0
  62. package/src/index.ts +350 -0
  63. package/src/layout.ts +451 -0
  64. package/src/navigation.ts +235 -0
  65. package/src/objectql.ts +301 -0
  66. package/src/overlay.ts +418 -0
  67. package/src/registry.ts +182 -0
@@ -0,0 +1,451 @@
1
+ /**
2
+ * @object-ui/types - API and Event Schemas
3
+ *
4
+ * Type definitions for API integration and event handling.
5
+ * These schemas enable dynamic API calls and event-driven interactions.
6
+ *
7
+ * @module api
8
+ * @packageDocumentation
9
+ */
10
+ import type { BaseSchema } from './base';
11
+ /**
12
+ * HTTP Method types
13
+ */
14
+ export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
15
+ /**
16
+ * API request configuration
17
+ */
18
+ export interface APIRequest {
19
+ /**
20
+ * API endpoint URL
21
+ * Supports variable substitution: "/api/users/${userId}"
22
+ */
23
+ url: string;
24
+ /**
25
+ * HTTP method
26
+ * @default 'GET'
27
+ */
28
+ method?: HTTPMethod;
29
+ /**
30
+ * Request headers
31
+ */
32
+ headers?: Record<string, string>;
33
+ /**
34
+ * Request body data
35
+ * For POST, PUT, PATCH requests
36
+ */
37
+ data?: any;
38
+ /**
39
+ * Query parameters
40
+ */
41
+ params?: Record<string, any>;
42
+ /**
43
+ * Request timeout in milliseconds
44
+ */
45
+ timeout?: number;
46
+ /**
47
+ * Whether to send credentials (cookies)
48
+ * @default false
49
+ */
50
+ withCredentials?: boolean;
51
+ /**
52
+ * Data transformation function
53
+ * Transform request data before sending
54
+ */
55
+ transformRequest?: string;
56
+ /**
57
+ * Response transformation function
58
+ * Transform response data after receiving
59
+ */
60
+ transformResponse?: string;
61
+ }
62
+ /**
63
+ * API configuration for components
64
+ */
65
+ export interface APIConfig {
66
+ /**
67
+ * API request configuration
68
+ */
69
+ request?: APIRequest;
70
+ /**
71
+ * Success handler
72
+ * JavaScript expression or function name
73
+ */
74
+ onSuccess?: string;
75
+ /**
76
+ * Error handler
77
+ * JavaScript expression or function name
78
+ */
79
+ onError?: string;
80
+ /**
81
+ * Loading indicator
82
+ * Whether to show loading state during request
83
+ * @default true
84
+ */
85
+ showLoading?: boolean;
86
+ /**
87
+ * Success message to display
88
+ */
89
+ successMessage?: string;
90
+ /**
91
+ * Error message to display
92
+ */
93
+ errorMessage?: string;
94
+ /**
95
+ * Whether to reload data after success
96
+ * @default false
97
+ */
98
+ reload?: boolean;
99
+ /**
100
+ * Whether to redirect after success
101
+ */
102
+ redirect?: string;
103
+ /**
104
+ * Whether to close dialog/modal after success
105
+ * @default false
106
+ */
107
+ close?: boolean;
108
+ /**
109
+ * Retry configuration
110
+ */
111
+ retry?: {
112
+ /**
113
+ * Maximum retry attempts
114
+ */
115
+ maxAttempts?: number;
116
+ /**
117
+ * Delay between retries in milliseconds
118
+ */
119
+ delay?: number;
120
+ /**
121
+ * HTTP status codes to retry
122
+ */
123
+ retryOn?: number[];
124
+ };
125
+ /**
126
+ * Cache configuration
127
+ */
128
+ cache?: {
129
+ /**
130
+ * Cache key
131
+ */
132
+ key?: string;
133
+ /**
134
+ * Cache duration in milliseconds
135
+ */
136
+ duration?: number;
137
+ /**
138
+ * Whether to use stale cache while revalidating
139
+ */
140
+ staleWhileRevalidate?: boolean;
141
+ };
142
+ }
143
+ /**
144
+ * Event handler configuration
145
+ */
146
+ export interface EventHandler {
147
+ /**
148
+ * Event type
149
+ */
150
+ event: string;
151
+ /**
152
+ * Handler type
153
+ */
154
+ type: 'action' | 'api' | 'script' | 'navigation' | 'dialog' | 'toast' | 'custom';
155
+ /**
156
+ * Action configuration (for type: 'action')
157
+ */
158
+ action?: {
159
+ /**
160
+ * Action name/identifier
161
+ */
162
+ name: string;
163
+ /**
164
+ * Action parameters
165
+ */
166
+ params?: Record<string, any>;
167
+ };
168
+ /**
169
+ * API configuration (for type: 'api')
170
+ */
171
+ api?: APIConfig;
172
+ /**
173
+ * Script to execute (for type: 'script')
174
+ * JavaScript code as string
175
+ */
176
+ script?: string;
177
+ /**
178
+ * Navigation target (for type: 'navigation')
179
+ */
180
+ navigate?: {
181
+ /**
182
+ * Target URL or route
183
+ */
184
+ to: string;
185
+ /**
186
+ * Navigation type
187
+ */
188
+ type?: 'push' | 'replace' | 'reload';
189
+ /**
190
+ * Query parameters
191
+ */
192
+ params?: Record<string, any>;
193
+ /**
194
+ * Open in new window/tab
195
+ */
196
+ external?: boolean;
197
+ };
198
+ /**
199
+ * Dialog configuration (for type: 'dialog')
200
+ */
201
+ dialog?: {
202
+ /**
203
+ * Dialog type
204
+ */
205
+ type: 'alert' | 'confirm' | 'prompt' | 'modal';
206
+ /**
207
+ * Dialog title
208
+ */
209
+ title?: string;
210
+ /**
211
+ * Dialog content
212
+ */
213
+ content?: string | BaseSchema;
214
+ /**
215
+ * Dialog actions
216
+ */
217
+ actions?: Array<{
218
+ label: string;
219
+ handler?: EventHandler;
220
+ }>;
221
+ };
222
+ /**
223
+ * Toast configuration (for type: 'toast')
224
+ */
225
+ toast?: {
226
+ /**
227
+ * Toast type
228
+ */
229
+ type: 'success' | 'error' | 'warning' | 'info';
230
+ /**
231
+ * Toast message
232
+ */
233
+ message: string;
234
+ /**
235
+ * Toast duration in milliseconds
236
+ */
237
+ duration?: number;
238
+ };
239
+ /**
240
+ * Condition for executing handler
241
+ * JavaScript expression
242
+ */
243
+ condition?: string;
244
+ /**
245
+ * Whether to prevent default event behavior
246
+ */
247
+ preventDefault?: boolean;
248
+ /**
249
+ * Whether to stop event propagation
250
+ */
251
+ stopPropagation?: boolean;
252
+ /**
253
+ * Debounce delay in milliseconds
254
+ */
255
+ debounce?: number;
256
+ /**
257
+ * Throttle delay in milliseconds
258
+ */
259
+ throttle?: number;
260
+ }
261
+ /**
262
+ * Component with event handlers
263
+ */
264
+ export interface EventableSchema extends BaseSchema {
265
+ /**
266
+ * Event handlers configuration
267
+ */
268
+ events?: EventHandler[];
269
+ /**
270
+ * Click handler
271
+ */
272
+ onClick?: EventHandler | string;
273
+ /**
274
+ * Change handler
275
+ */
276
+ onChange?: EventHandler | string;
277
+ /**
278
+ * Submit handler
279
+ */
280
+ onSubmit?: EventHandler | string;
281
+ /**
282
+ * Focus handler
283
+ */
284
+ onFocus?: EventHandler | string;
285
+ /**
286
+ * Blur handler
287
+ */
288
+ onBlur?: EventHandler | string;
289
+ /**
290
+ * Mouse enter handler
291
+ */
292
+ onMouseEnter?: EventHandler | string;
293
+ /**
294
+ * Mouse leave handler
295
+ */
296
+ onMouseLeave?: EventHandler | string;
297
+ /**
298
+ * Key down handler
299
+ */
300
+ onKeyDown?: EventHandler | string;
301
+ /**
302
+ * Key up handler
303
+ */
304
+ onKeyUp?: EventHandler | string;
305
+ }
306
+ /**
307
+ * Data fetching configuration
308
+ */
309
+ export interface DataFetchConfig {
310
+ /**
311
+ * Data source API
312
+ */
313
+ api: string | APIRequest;
314
+ /**
315
+ * Whether to fetch on mount
316
+ * @default true
317
+ */
318
+ fetchOnMount?: boolean;
319
+ /**
320
+ * Polling interval in milliseconds
321
+ * If set, data will be refetched at this interval
322
+ */
323
+ pollInterval?: number;
324
+ /**
325
+ * Dependencies for refetching
326
+ * Array of variable names to watch
327
+ */
328
+ dependencies?: string[];
329
+ /**
330
+ * Default data before fetch completes
331
+ */
332
+ defaultData?: any;
333
+ /**
334
+ * Transform function for fetched data
335
+ * JavaScript expression or function name
336
+ */
337
+ transform?: string;
338
+ /**
339
+ * Filter function for data
340
+ * JavaScript expression or function name
341
+ */
342
+ filter?: string;
343
+ /**
344
+ * Sort configuration
345
+ */
346
+ sort?: {
347
+ /**
348
+ * Field to sort by
349
+ */
350
+ field: string;
351
+ /**
352
+ * Sort order
353
+ */
354
+ order: 'asc' | 'desc';
355
+ };
356
+ /**
357
+ * Pagination configuration
358
+ */
359
+ pagination?: {
360
+ /**
361
+ * Current page
362
+ */
363
+ page?: number;
364
+ /**
365
+ * Page size
366
+ */
367
+ pageSize?: number;
368
+ /**
369
+ * Whether pagination is enabled
370
+ */
371
+ enabled?: boolean;
372
+ };
373
+ }
374
+ /**
375
+ * Component with data fetching
376
+ */
377
+ export interface DataFetchableSchema extends BaseSchema {
378
+ /**
379
+ * Data fetching configuration
380
+ */
381
+ dataSource?: DataFetchConfig;
382
+ /**
383
+ * Loading state
384
+ */
385
+ loading?: boolean;
386
+ /**
387
+ * Error state
388
+ */
389
+ error?: string | null;
390
+ /**
391
+ * Fetched data
392
+ */
393
+ data?: any;
394
+ }
395
+ /**
396
+ * Expression evaluation context
397
+ */
398
+ export interface ExpressionContext {
399
+ /**
400
+ * Current component data
401
+ */
402
+ data?: any;
403
+ /**
404
+ * Global application state
405
+ */
406
+ state?: any;
407
+ /**
408
+ * Form values (when in form context)
409
+ */
410
+ form?: any;
411
+ /**
412
+ * Current user information
413
+ */
414
+ user?: any;
415
+ /**
416
+ * Environment variables
417
+ */
418
+ env?: Record<string, any>;
419
+ /**
420
+ * Utility functions
421
+ */
422
+ utils?: Record<string, (...args: any[]) => any>;
423
+ }
424
+ /**
425
+ * Expression schema for dynamic values
426
+ */
427
+ export interface ExpressionSchema {
428
+ /**
429
+ * Expression type
430
+ */
431
+ type: 'expression';
432
+ /**
433
+ * Expression string
434
+ * Supports ${} syntax for variable interpolation
435
+ */
436
+ value: string;
437
+ /**
438
+ * Default value if expression fails
439
+ */
440
+ defaultValue?: any;
441
+ /**
442
+ * Whether to watch and re-evaluate on context changes
443
+ * @default true
444
+ */
445
+ reactive?: boolean;
446
+ }
447
+ /**
448
+ * Union type of all API schemas
449
+ */
450
+ export type APISchema = EventableSchema | DataFetchableSchema | ExpressionSchema;
451
+ //# sourceMappingURL=api-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-types.d.ts","sourceRoot":"","sources":["../src/api-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @object-ui/types - API and Event Schemas
3
+ *
4
+ * Type definitions for API integration and event handling.
5
+ * These schemas enable dynamic API calls and event-driven interactions.
6
+ *
7
+ * @module api
8
+ * @packageDocumentation
9
+ */
10
+ export {};
package/dist/app.d.ts ADDED
@@ -0,0 +1,120 @@
1
+ /**
2
+ * @object-ui/types - Application Schema
3
+ *
4
+ * Defines the metadata structure for a complete application, including
5
+ * global layout, navigation menus, and routing configuration.
6
+ */
7
+ import type { BaseSchema } from './base';
8
+ /**
9
+ * Top-level Application Configuration (app.json)
10
+ */
11
+ export interface AppSchema extends BaseSchema {
12
+ type: 'app';
13
+ /**
14
+ * Application Name (System ID)
15
+ */
16
+ name?: string;
17
+ /**
18
+ * Display Title
19
+ */
20
+ title?: string;
21
+ /**
22
+ * Application Description
23
+ */
24
+ description?: string;
25
+ /**
26
+ * Logo URL or Icon name
27
+ */
28
+ logo?: string;
29
+ /**
30
+ * Favicon URL
31
+ */
32
+ favicon?: string;
33
+ /**
34
+ * Global Layout Strategy
35
+ * - sidebar: Standard admin layout with left sidebar
36
+ * - header: Top navigation bar only
37
+ * - empty: No layout, pages are responsible for their own structure
38
+ * @default "sidebar"
39
+ */
40
+ layout?: 'sidebar' | 'header' | 'empty';
41
+ /**
42
+ * Global Navigation Menu
43
+ */
44
+ menu?: MenuItem[];
45
+ /**
46
+ * Global Actions (User Profile, Settings, etc)
47
+ */
48
+ actions?: AppAction[];
49
+ }
50
+ /**
51
+ * Navigation Menu Item
52
+ */
53
+ export interface MenuItem {
54
+ /**
55
+ * Item Type
56
+ */
57
+ type?: 'item' | 'group' | 'separator';
58
+ /**
59
+ * Display Label
60
+ */
61
+ label?: string;
62
+ /**
63
+ * Icon Name (Lucide)
64
+ */
65
+ icon?: string;
66
+ /**
67
+ * Target Path (Route)
68
+ */
69
+ path?: string;
70
+ /**
71
+ * External Link
72
+ */
73
+ href?: string;
74
+ /**
75
+ * Child Items (Submenu)
76
+ */
77
+ children?: MenuItem[];
78
+ /**
79
+ * Badge / Count
80
+ */
81
+ badge?: string | number;
82
+ /**
83
+ * Visibility Condition
84
+ */
85
+ hidden?: boolean | string;
86
+ }
87
+ /**
88
+ * Application Header/Toolbar Action
89
+ */
90
+ export interface AppAction {
91
+ type: 'button' | 'dropdown' | 'user';
92
+ label?: string;
93
+ icon?: string;
94
+ onClick?: string;
95
+ /**
96
+ * User Avatar URL (for type='user')
97
+ */
98
+ avatar?: string;
99
+ /**
100
+ * Additional description (e.g. email for user)
101
+ */
102
+ description?: string;
103
+ /**
104
+ * Dropdown Menu Items (for type='dropdown' or 'user')
105
+ */
106
+ items?: MenuItem[];
107
+ /**
108
+ * Keyboard shortcut
109
+ */
110
+ shortcut?: string;
111
+ /**
112
+ * Button variant
113
+ */
114
+ variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';
115
+ /**
116
+ * Button size
117
+ */
118
+ size?: 'default' | 'sm' | 'lg' | 'icon';
119
+ }
120
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,IAAI,EAAE,KAAK,CAAC;IAEZ;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAExC;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;IAEtC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;IACjF;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;CACzC"}
package/dist/app.js ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @object-ui/types - Application Schema
3
+ *
4
+ * Defines the metadata structure for a complete application, including
5
+ * global layout, navigation menus, and routing configuration.
6
+ */
7
+ export {};