@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
@@ -0,0 +1,289 @@
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 - Theme Schema
10
+ *
11
+ * Defines theme configuration for dynamic theme switching and customization.
12
+ */
13
+ import type { BaseSchema } from './base';
14
+ /**
15
+ * Color Palette Definition
16
+ */
17
+ export interface ColorPalette {
18
+ /**
19
+ * Primary brand color
20
+ */
21
+ primary?: string;
22
+ /**
23
+ * Secondary color
24
+ */
25
+ secondary?: string;
26
+ /**
27
+ * Accent color
28
+ */
29
+ accent?: string;
30
+ /**
31
+ * Background color
32
+ */
33
+ background?: string;
34
+ /**
35
+ * Foreground/text color
36
+ */
37
+ foreground?: string;
38
+ /**
39
+ * Muted color (for less prominent elements)
40
+ */
41
+ muted?: string;
42
+ /**
43
+ * Muted foreground color
44
+ */
45
+ mutedForeground?: string;
46
+ /**
47
+ * Border color
48
+ */
49
+ border?: string;
50
+ /**
51
+ * Input border color
52
+ */
53
+ input?: string;
54
+ /**
55
+ * Ring/focus color
56
+ */
57
+ ring?: string;
58
+ /**
59
+ * Success color
60
+ */
61
+ success?: string;
62
+ /**
63
+ * Warning color
64
+ */
65
+ warning?: string;
66
+ /**
67
+ * Error/destructive color
68
+ */
69
+ destructive?: string;
70
+ /**
71
+ * Info color
72
+ */
73
+ info?: string;
74
+ /**
75
+ * Card background color
76
+ */
77
+ card?: string;
78
+ /**
79
+ * Card foreground color
80
+ */
81
+ cardForeground?: string;
82
+ /**
83
+ * Popover background color
84
+ */
85
+ popover?: string;
86
+ /**
87
+ * Popover foreground color
88
+ */
89
+ popoverForeground?: string;
90
+ }
91
+ /**
92
+ * Typography Configuration
93
+ */
94
+ export interface Typography {
95
+ /**
96
+ * Font family for sans-serif text
97
+ */
98
+ fontSans?: string[];
99
+ /**
100
+ * Font family for serif text
101
+ */
102
+ fontSerif?: string[];
103
+ /**
104
+ * Font family for monospace text
105
+ */
106
+ fontMono?: string[];
107
+ /**
108
+ * Base font size (in rem)
109
+ */
110
+ fontSize?: number;
111
+ /**
112
+ * Line height
113
+ */
114
+ lineHeight?: number;
115
+ /**
116
+ * Font weight for headings
117
+ */
118
+ headingWeight?: number;
119
+ /**
120
+ * Font weight for body text
121
+ */
122
+ bodyWeight?: number;
123
+ }
124
+ /**
125
+ * Spacing Scale Configuration
126
+ */
127
+ export interface SpacingScale {
128
+ /**
129
+ * Base spacing unit (in rem)
130
+ */
131
+ base?: number;
132
+ /**
133
+ * Custom spacing values
134
+ */
135
+ scale?: Record<string, string>;
136
+ }
137
+ /**
138
+ * Border Radius Configuration
139
+ */
140
+ export interface BorderRadius {
141
+ /**
142
+ * Small radius
143
+ */
144
+ sm?: string;
145
+ /**
146
+ * Default radius
147
+ */
148
+ default?: string;
149
+ /**
150
+ * Medium radius
151
+ */
152
+ md?: string;
153
+ /**
154
+ * Large radius
155
+ */
156
+ lg?: string;
157
+ /**
158
+ * Extra large radius
159
+ */
160
+ xl?: string;
161
+ }
162
+ /**
163
+ * Theme Mode
164
+ */
165
+ export type ThemeMode = 'light' | 'dark' | 'system';
166
+ /**
167
+ * Complete Theme Definition
168
+ */
169
+ export interface ThemeDefinition {
170
+ /**
171
+ * Theme name/identifier
172
+ */
173
+ name: string;
174
+ /**
175
+ * Theme display label
176
+ */
177
+ label?: string;
178
+ /**
179
+ * Light mode color palette
180
+ */
181
+ light?: ColorPalette;
182
+ /**
183
+ * Dark mode color palette
184
+ */
185
+ dark?: ColorPalette;
186
+ /**
187
+ * Typography configuration
188
+ */
189
+ typography?: Typography;
190
+ /**
191
+ * Spacing scale configuration
192
+ */
193
+ spacing?: SpacingScale;
194
+ /**
195
+ * Border radius configuration
196
+ */
197
+ radius?: BorderRadius;
198
+ /**
199
+ * Custom CSS variables
200
+ */
201
+ cssVariables?: Record<string, string>;
202
+ /**
203
+ * Tailwind configuration overrides
204
+ */
205
+ tailwind?: Record<string, any>;
206
+ }
207
+ /**
208
+ * Theme Schema - Theme configuration and switching
209
+ */
210
+ export interface ThemeSchema extends BaseSchema {
211
+ type: 'theme';
212
+ /**
213
+ * Current theme mode
214
+ */
215
+ mode?: ThemeMode;
216
+ /**
217
+ * Available themes
218
+ */
219
+ themes?: ThemeDefinition[];
220
+ /**
221
+ * Active theme name
222
+ */
223
+ activeTheme?: string;
224
+ /**
225
+ * Allow user theme switching
226
+ */
227
+ allowSwitching?: boolean;
228
+ /**
229
+ * Persist theme preference
230
+ */
231
+ persistPreference?: boolean;
232
+ /**
233
+ * Storage key for persisting theme
234
+ */
235
+ storageKey?: string;
236
+ }
237
+ /**
238
+ * Theme Switcher Component Schema
239
+ */
240
+ export interface ThemeSwitcherSchema extends BaseSchema {
241
+ type: 'theme-switcher';
242
+ /**
243
+ * Switcher variant
244
+ */
245
+ variant?: 'dropdown' | 'toggle' | 'buttons';
246
+ /**
247
+ * Show mode selector (light/dark)
248
+ */
249
+ showMode?: boolean;
250
+ /**
251
+ * Show theme selector
252
+ */
253
+ showThemes?: boolean;
254
+ /**
255
+ * Icon for light mode
256
+ */
257
+ lightIcon?: string;
258
+ /**
259
+ * Icon for dark mode
260
+ */
261
+ darkIcon?: string;
262
+ }
263
+ /**
264
+ * Theme Preview Component Schema
265
+ */
266
+ export interface ThemePreviewSchema extends BaseSchema {
267
+ type: 'theme-preview';
268
+ /**
269
+ * Theme to preview
270
+ */
271
+ theme?: ThemeDefinition;
272
+ /**
273
+ * Preview mode
274
+ */
275
+ mode?: ThemeMode;
276
+ /**
277
+ * Show color palette
278
+ */
279
+ showColors?: boolean;
280
+ /**
281
+ * Show typography samples
282
+ */
283
+ showTypography?: boolean;
284
+ /**
285
+ * Show component samples
286
+ */
287
+ showComponents?: boolean;
288
+ }
289
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
package/dist/theme.js ADDED
@@ -0,0 +1,8 @@
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
+ export {};
@@ -0,0 +1,175 @@
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 - UI Action Schema
10
+ *
11
+ * ObjectStack Spec v0.7.1 compliant action schema with enhanced capabilities:
12
+ * - Location-based action placement
13
+ * - Parameter collection
14
+ * - Conditional visibility and enablement
15
+ * - Rich feedback mechanisms
16
+ *
17
+ * @module ui-action
18
+ * @packageDocumentation
19
+ */
20
+ /**
21
+ * Field type for action parameters
22
+ * Simplified type definition for parameter inputs
23
+ */
24
+ export type ActionParamFieldType = 'text' | 'textarea' | 'number' | 'boolean' | 'date' | 'datetime' | 'time' | 'select' | 'email' | 'phone' | 'url' | 'password' | 'file' | 'color' | 'slider' | 'rating';
25
+ /**
26
+ * Action placement locations (ObjectStack Spec v0.7.1)
27
+ */
28
+ export type ActionLocation = 'list_toolbar' | 'list_item' | 'record_header' | 'record_more' | 'record_related' | 'global_nav';
29
+ /**
30
+ * Visual component type for actions (ObjectStack Spec v0.7.1)
31
+ */
32
+ export type ActionComponent = 'action:button' | 'action:icon' | 'action:menu' | 'action:group';
33
+ /**
34
+ * Action execution type (ObjectStack Spec v0.7.1)
35
+ */
36
+ export type ActionType = 'script' | 'url' | 'modal' | 'flow' | 'api';
37
+ /**
38
+ * Action parameter definition (ObjectStack Spec v0.7.1)
39
+ */
40
+ export interface ActionParam {
41
+ /** Parameter name (snake_case) */
42
+ name: string;
43
+ /** Display label */
44
+ label: string;
45
+ /** Field type for input */
46
+ type: ActionParamFieldType;
47
+ /** Whether parameter is required */
48
+ required?: boolean;
49
+ /** Options for select/picklist types */
50
+ options?: Array<{
51
+ label: string;
52
+ value: string;
53
+ }>;
54
+ /** Default value */
55
+ defaultValue?: unknown;
56
+ /** Help text */
57
+ helpText?: string;
58
+ /** Placeholder text */
59
+ placeholder?: string;
60
+ /** Validation expression */
61
+ validation?: string;
62
+ }
63
+ /**
64
+ * Enhanced Action Schema (ObjectStack Spec v0.7.1)
65
+ *
66
+ * This is the primary action schema that should be used for all new implementations.
67
+ * The legacy ActionSchema in crud.ts is maintained for backward compatibility.
68
+ */
69
+ export interface ActionSchema {
70
+ /** Unique action identifier (snake_case) */
71
+ name: string;
72
+ /** Display label */
73
+ label: string;
74
+ /** Optional icon (Lucide icon name) */
75
+ icon?: string;
76
+ /** Where to show this action (defaults to ['record_header']) */
77
+ locations?: ActionLocation[];
78
+ /** Visual component type (defaults to 'action:button') */
79
+ component?: ActionComponent;
80
+ /** Action execution type */
81
+ type: ActionType;
82
+ /** Target for the action (URL, script name, etc.) */
83
+ target?: string;
84
+ /** Script to execute (for type: 'script') */
85
+ execute?: string;
86
+ /** API endpoint (for type: 'api') */
87
+ endpoint?: string;
88
+ /** HTTP method (for type: 'api') */
89
+ method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
90
+ /** Input parameters to collect before execution */
91
+ params?: ActionParam[];
92
+ /** Confirmation text to show before execution */
93
+ confirmText?: string;
94
+ /** Success message to show after execution */
95
+ successMessage?: string;
96
+ /** Error message to show on failure */
97
+ errorMessage?: string;
98
+ /** Whether to refresh data after execution */
99
+ refreshAfter?: boolean;
100
+ /** Toast notification configuration */
101
+ toast?: {
102
+ /** Show toast on success */
103
+ showOnSuccess?: boolean;
104
+ /** Show toast on error */
105
+ showOnError?: boolean;
106
+ /** Toast duration in milliseconds */
107
+ duration?: number;
108
+ };
109
+ /** Expression controlling visibility (e.g., "status === 'draft'") */
110
+ visible?: string;
111
+ /** Expression controlling enabled state (e.g., "hasPermission('edit')") */
112
+ enabled?: string;
113
+ /** Button variant */
114
+ variant?: 'default' | 'primary' | 'secondary' | 'destructive' | 'outline' | 'ghost';
115
+ /** Button size */
116
+ size?: 'sm' | 'md' | 'lg';
117
+ /** Custom CSS class */
118
+ className?: string;
119
+ /** Action description */
120
+ description?: string;
121
+ /** Permission required to execute */
122
+ permission?: string;
123
+ /** Tags for categorization */
124
+ tags?: string[];
125
+ }
126
+ /**
127
+ * Action group for organizing related actions
128
+ */
129
+ export interface ActionGroup {
130
+ /** Group name */
131
+ name: string;
132
+ /** Display label */
133
+ label: string;
134
+ /** Optional icon */
135
+ icon?: string;
136
+ /** Actions in this group */
137
+ actions: ActionSchema[];
138
+ /** Group visibility condition */
139
+ visible?: string;
140
+ /** Display as dropdown or inline */
141
+ display?: 'dropdown' | 'inline';
142
+ }
143
+ /**
144
+ * Action execution context
145
+ */
146
+ export interface ActionContext {
147
+ /** Current record data */
148
+ record?: Record<string, any>;
149
+ /** Selected records (for list actions) */
150
+ selectedRecords?: Record<string, any>[];
151
+ /** Current user */
152
+ user?: Record<string, any>;
153
+ /** Additional context data */
154
+ [key: string]: any;
155
+ }
156
+ /**
157
+ * Action execution result
158
+ */
159
+ export interface ActionResult {
160
+ /** Whether action succeeded */
161
+ success: boolean;
162
+ /** Result data */
163
+ data?: any;
164
+ /** Error message if failed */
165
+ error?: string;
166
+ /** Whether to refresh data */
167
+ refresh?: boolean;
168
+ /** Whether to close dialog/modal */
169
+ close?: boolean;
170
+ }
171
+ /**
172
+ * Action executor function type
173
+ */
174
+ export type ActionExecutor = (action: ActionSchema, context: ActionContext, params?: Record<string, any>) => Promise<ActionResult>;
175
+ //# sourceMappingURL=ui-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-action.d.ts","sourceRoot":"","sources":["../src/ui-action.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;GAWG;AAEH;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,UAAU,GACV,QAAQ,GACR,SAAS,GACT,MAAM,GACN,UAAU,GACV,MAAM,GACN,QAAQ,GACR,OAAO,GACP,OAAO,GACP,KAAK,GACL,UAAU,GACV,MAAM,GACN,OAAO,GACP,QAAQ,GACR,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,WAAW,GACX,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,aAAa,GACb,aAAa,GACb,cAAc,CAAC;AAEnB;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,KAAK,GACL,OAAO,GACP,MAAM,GACN,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IAEb,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,2BAA2B;IAC3B,IAAI,EAAE,oBAAoB,CAAC;IAE3B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,wCAAwC;IACxC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAElD,oBAAoB;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IAEb,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IAId,gEAAgE;IAChE,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAE7B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,eAAe,CAAC;IAI5B,4BAA4B;IAC5B,IAAI,EAAE,UAAU,CAAC;IAEjB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oCAAoC;IACpC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IAIrD,mDAAmD;IACnD,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IAIvB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,uCAAuC;IACvC,KAAK,CAAC,EAAE;QACN,4BAA4B;QAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB,0BAA0B;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;QAEtB,qCAAqC;QACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAIF,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,qBAAqB;IACrB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;IAEpF,kBAAkB;IAClB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAE1B,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,4BAA4B;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,oCAAoC;IACpC,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE7B,0CAA0C;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAExC,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE3B,8BAA8B;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,OAAO,EAAE,OAAO,CAAC;IAEjB,kBAAkB;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC;IAEX,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,8BAA8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAC3B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,aAAa,EACtB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACzB,OAAO,CAAC,YAAY,CAAC,CAAC"}
@@ -0,0 +1,8 @@
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
+ export {};