@object-ui/types 0.3.1 → 2.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 (141) 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 +10 -0
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/blocks.d.ts +332 -0
  8. package/dist/blocks.d.ts.map +1 -0
  9. package/dist/blocks.js +8 -0
  10. package/dist/crud.d.ts +177 -3
  11. package/dist/crud.d.ts.map +1 -1
  12. package/dist/data-display.d.ts +35 -0
  13. package/dist/data-display.d.ts.map +1 -1
  14. package/dist/data-protocol.d.ts +1268 -0
  15. package/dist/data-protocol.d.ts.map +1 -0
  16. package/dist/data-protocol.js +8 -0
  17. package/dist/data.d.ts +74 -1
  18. package/dist/data.d.ts.map +1 -1
  19. package/dist/designer.d.ts +473 -0
  20. package/dist/designer.d.ts.map +1 -0
  21. package/dist/designer.js +8 -0
  22. package/dist/field-types.d.ts +353 -11
  23. package/dist/field-types.d.ts.map +1 -1
  24. package/dist/form.d.ts +35 -1
  25. package/dist/form.d.ts.map +1 -1
  26. package/dist/index.d.ts +58 -4
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +18 -0
  29. package/dist/layout.d.ts +63 -8
  30. package/dist/layout.d.ts.map +1 -1
  31. package/dist/mobile.d.ts +186 -0
  32. package/dist/mobile.d.ts.map +1 -0
  33. package/dist/mobile.js +8 -0
  34. package/dist/objectql.d.ts +337 -89
  35. package/dist/objectql.d.ts.map +1 -1
  36. package/dist/permissions.d.ts +150 -0
  37. package/dist/permissions.d.ts.map +1 -0
  38. package/dist/permissions.js +8 -0
  39. package/dist/plugin-scope.d.ts +194 -0
  40. package/dist/plugin-scope.d.ts.map +1 -0
  41. package/dist/plugin-scope.js +8 -0
  42. package/dist/reports.d.ts +336 -0
  43. package/dist/reports.d.ts.map +1 -0
  44. package/dist/reports.js +8 -0
  45. package/dist/tenant.d.ts +138 -0
  46. package/dist/tenant.d.ts.map +1 -0
  47. package/dist/tenant.js +8 -0
  48. package/dist/theme.d.ts +180 -0
  49. package/dist/theme.d.ts.map +1 -0
  50. package/dist/theme.js +8 -0
  51. package/dist/ui-action.d.ts +290 -0
  52. package/dist/ui-action.d.ts.map +1 -0
  53. package/dist/ui-action.js +8 -0
  54. package/dist/views.d.ts +427 -0
  55. package/dist/views.d.ts.map +1 -0
  56. package/dist/views.js +8 -0
  57. package/dist/widget.d.ts +181 -0
  58. package/dist/widget.d.ts.map +1 -0
  59. package/dist/widget.js +8 -0
  60. package/dist/workflow.d.ts +340 -0
  61. package/dist/workflow.d.ts.map +1 -0
  62. package/dist/workflow.js +8 -0
  63. package/dist/zod/app.zod.d.ts +120 -0
  64. package/dist/zod/app.zod.d.ts.map +1 -0
  65. package/dist/zod/app.zod.js +60 -0
  66. package/dist/zod/blocks.zod.d.ts +834 -0
  67. package/dist/zod/blocks.zod.d.ts.map +1 -0
  68. package/dist/zod/blocks.zod.js +145 -0
  69. package/dist/zod/complex.zod.d.ts +4 -4
  70. package/dist/zod/complex.zod.js +1 -1
  71. package/dist/zod/crud.zod.d.ts +598 -0
  72. package/dist/zod/crud.zod.d.ts.map +1 -0
  73. package/dist/zod/crud.zod.js +230 -0
  74. package/dist/zod/data-display.zod.js +1 -1
  75. package/dist/zod/disclosure.zod.js +1 -1
  76. package/dist/zod/feedback.zod.d.ts +10 -10
  77. package/dist/zod/feedback.zod.js +1 -1
  78. package/dist/zod/form.zod.d.ts +4 -4
  79. package/dist/zod/form.zod.js +1 -1
  80. package/dist/zod/index.zod.d.ts +2032 -30
  81. package/dist/zod/index.zod.d.ts.map +1 -1
  82. package/dist/zod/index.zod.js +96 -19
  83. package/dist/zod/layout.zod.d.ts +134 -2
  84. package/dist/zod/layout.zod.d.ts.map +1 -1
  85. package/dist/zod/layout.zod.js +35 -1
  86. package/dist/zod/navigation.zod.js +1 -1
  87. package/dist/zod/objectql.zod.d.ts +34 -18
  88. package/dist/zod/objectql.zod.d.ts.map +1 -1
  89. package/dist/zod/objectql.zod.js +9 -1
  90. package/dist/zod/overlay.zod.js +1 -1
  91. package/dist/zod/reports.zod.d.ts +1628 -0
  92. package/dist/zod/reports.zod.d.ts.map +1 -0
  93. package/dist/zod/reports.zod.js +152 -0
  94. package/dist/zod/theme.zod.d.ts +1292 -0
  95. package/dist/zod/theme.zod.d.ts.map +1 -0
  96. package/dist/zod/theme.zod.js +260 -0
  97. package/dist/zod/views.zod.d.ts +675 -0
  98. package/dist/zod/views.zod.d.ts.map +1 -0
  99. package/dist/zod/views.zod.js +159 -0
  100. package/package.json +3 -2
  101. package/src/__tests__/namespace-exports.test.ts +36 -0
  102. package/src/__tests__/phase2-schemas.test.ts +634 -0
  103. package/src/ai.ts +454 -0
  104. package/src/app.ts +12 -0
  105. package/src/blocks.ts +405 -0
  106. package/src/crud.ts +180 -3
  107. package/src/data-display.ts +31 -0
  108. package/src/data-protocol.ts +1679 -0
  109. package/src/data.ts +84 -1
  110. package/src/designer.ts +509 -0
  111. package/src/field-types.ts +392 -11
  112. package/src/form.ts +35 -1
  113. package/src/index.ts +426 -0
  114. package/src/layout.ts +66 -8
  115. package/src/mobile.ts +205 -0
  116. package/src/objectql.ts +412 -94
  117. package/src/permissions.ts +166 -0
  118. package/src/plugin-scope.ts +210 -0
  119. package/src/reports.ts +408 -0
  120. package/src/tenant.ts +153 -0
  121. package/src/theme.ts +238 -0
  122. package/src/ui-action.ts +415 -0
  123. package/src/views.ts +436 -0
  124. package/src/widget.ts +197 -0
  125. package/src/workflow.ts +409 -0
  126. package/src/zod/app.zod.ts +72 -0
  127. package/src/zod/blocks.zod.ts +170 -0
  128. package/src/zod/complex.zod.ts +1 -1
  129. package/src/zod/crud.zod.ts +259 -0
  130. package/src/zod/data-display.zod.ts +1 -1
  131. package/src/zod/disclosure.zod.ts +1 -1
  132. package/src/zod/feedback.zod.ts +1 -1
  133. package/src/zod/form.zod.ts +1 -1
  134. package/src/zod/index.zod.ts +178 -19
  135. package/src/zod/layout.zod.ts +39 -1
  136. package/src/zod/navigation.zod.ts +1 -1
  137. package/src/zod/objectql.zod.ts +9 -1
  138. package/src/zod/overlay.zod.ts +1 -1
  139. package/src/zod/reports.zod.ts +183 -0
  140. package/src/zod/theme.zod.ts +296 -0
  141. package/src/zod/views.zod.ts +182 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../src/reports.ts"],"names":[],"mappings":"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"}
@@ -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,138 @@
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 - Multi-Tenancy Types
10
+ *
11
+ * Type definitions for multi-tenant architecture support including
12
+ * tenant isolation, scoped queries, and custom branding.
13
+ *
14
+ * @module tenant
15
+ * @packageDocumentation
16
+ */
17
+ import type { Theme } from './theme';
18
+ /** Tenant isolation strategy */
19
+ export type TenantIsolationStrategy = 'database' | 'schema' | 'row' | 'hybrid';
20
+ /** Tenant status */
21
+ export type TenantStatus = 'active' | 'suspended' | 'pending' | 'archived';
22
+ /** Tenant plan/tier */
23
+ export type TenantPlan = 'free' | 'starter' | 'professional' | 'enterprise' | 'custom';
24
+ /** Tenant definition */
25
+ export interface TenantConfig {
26
+ /** Unique tenant identifier */
27
+ id: string;
28
+ /** Tenant display name */
29
+ name: string;
30
+ /** Tenant slug (URL-friendly identifier) */
31
+ slug: string;
32
+ /** Tenant status */
33
+ status: TenantStatus;
34
+ /** Subscription plan */
35
+ plan?: TenantPlan;
36
+ /** Tenant domain (for custom domain support) */
37
+ domain?: string;
38
+ /** Data isolation strategy */
39
+ isolation: TenantIsolationStrategy;
40
+ /** Custom branding */
41
+ branding?: TenantBranding;
42
+ /** Feature flags */
43
+ features?: Record<string, boolean>;
44
+ /** Usage limits */
45
+ limits?: TenantLimits;
46
+ /** Tenant metadata */
47
+ metadata?: Record<string, unknown>;
48
+ /** Created timestamp */
49
+ createdAt?: string;
50
+ /** Updated timestamp */
51
+ updatedAt?: string;
52
+ }
53
+ /** Tenant branding configuration */
54
+ export interface TenantBranding {
55
+ /** Company logo URL */
56
+ logo?: string;
57
+ /** Favicon URL */
58
+ favicon?: string;
59
+ /** Primary brand color */
60
+ primaryColor?: string;
61
+ /** Secondary brand color */
62
+ secondaryColor?: string;
63
+ /** Custom theme override */
64
+ theme?: Partial<Theme>;
65
+ /** Custom CSS */
66
+ customCSS?: string;
67
+ /** Company name displayed in UI */
68
+ companyName?: string;
69
+ /** Support email */
70
+ supportEmail?: string;
71
+ /** Custom login page background */
72
+ loginBackground?: string;
73
+ /** Email templates branding */
74
+ emailBranding?: {
75
+ headerLogo?: string;
76
+ footerText?: string;
77
+ primaryColor?: string;
78
+ };
79
+ }
80
+ /** Tenant usage limits */
81
+ export interface TenantLimits {
82
+ /** Maximum number of users */
83
+ maxUsers?: number;
84
+ /** Maximum storage in bytes */
85
+ maxStorage?: number;
86
+ /** Maximum API calls per day */
87
+ maxAPICallsPerDay?: number;
88
+ /** Maximum objects/tables */
89
+ maxObjects?: number;
90
+ /** Maximum records per object */
91
+ maxRecordsPerObject?: number;
92
+ /** Maximum file upload size in bytes */
93
+ maxFileSize?: number;
94
+ }
95
+ /** Tenant context for runtime use */
96
+ export interface TenantContext {
97
+ /** Current tenant configuration */
98
+ tenant: TenantConfig;
99
+ /** Whether the user is a tenant admin */
100
+ isTenantAdmin: boolean;
101
+ /** Resolved branding (merged with defaults) */
102
+ branding: TenantBranding;
103
+ /** Active feature flags */
104
+ features: Record<string, boolean>;
105
+ }
106
+ /** Tenant resolution strategy */
107
+ export type TenantResolutionStrategy = 'subdomain' | 'path' | 'header' | 'query' | 'cookie' | 'custom';
108
+ /** Tenant provider configuration */
109
+ export interface TenantProviderConfig {
110
+ /** How to resolve tenant from request */
111
+ resolution: TenantResolutionStrategy;
112
+ /** Custom resolution function name */
113
+ customResolver?: string;
114
+ /** Header name for 'header' strategy */
115
+ headerName?: string;
116
+ /** Query parameter name for 'query' strategy */
117
+ queryParam?: string;
118
+ /** Cookie name for 'cookie' strategy */
119
+ cookieName?: string;
120
+ /** Default tenant ID for fallback */
121
+ defaultTenantId?: string;
122
+ /** Enable tenant caching */
123
+ caching?: boolean;
124
+ /** Cache TTL in seconds */
125
+ cacheTTL?: number;
126
+ }
127
+ /** Scoped query configuration for tenant isolation */
128
+ export interface TenantScopedQueryConfig {
129
+ /** Tenant ID field name in records */
130
+ tenantField: string;
131
+ /** Whether to auto-inject tenant filter */
132
+ autoFilter: boolean;
133
+ /** Objects excluded from tenant scoping */
134
+ excludedObjects?: string[];
135
+ /** Whether to enforce tenant scope on writes */
136
+ enforceOnWrite: boolean;
137
+ }
138
+ //# sourceMappingURL=tenant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.d.ts","sourceRoot":"","sources":["../src/tenant.ts"],"names":[],"mappings":"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"}
package/dist/tenant.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,180 @@
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 aligned with @objectstack/spec.
12
+ * Provides the complete design token system: colors, typography,
13
+ * spacing, borders, shadows, breakpoints, animation, z-index.
14
+ *
15
+ * @module theme
16
+ * @packageDocumentation
17
+ */
18
+ import type { BaseSchema } from './base';
19
+ /**
20
+ * Color Palette Definition
21
+ * Canonical definition from @objectstack/spec/ui.
22
+ */
23
+ export type { ColorPalette } from '@objectstack/spec/ui';
24
+ /**
25
+ * Typography Configuration
26
+ * Canonical definition from @objectstack/spec/ui.
27
+ */
28
+ export type { Typography } from '@objectstack/spec/ui';
29
+ /**
30
+ * Spacing Scale Configuration
31
+ * Canonical definition from @objectstack/spec/ui.
32
+ */
33
+ export type { Spacing } from '@objectstack/spec/ui';
34
+ /**
35
+ * Border Radius Configuration
36
+ * Canonical definition from @objectstack/spec/ui.
37
+ */
38
+ export type { BorderRadius } from '@objectstack/spec/ui';
39
+ /**
40
+ * Shadow Configuration
41
+ * Canonical definition from @objectstack/spec/ui.
42
+ */
43
+ export type { Shadow } from '@objectstack/spec/ui';
44
+ /**
45
+ * Responsive Breakpoints Configuration
46
+ * Canonical definition from @objectstack/spec/ui.
47
+ */
48
+ export type { Breakpoints } from '@objectstack/spec/ui';
49
+ /**
50
+ * Animation Configuration
51
+ * Canonical definition from @objectstack/spec/ui.
52
+ */
53
+ export type { Animation } from '@objectstack/spec/ui';
54
+ /**
55
+ * Z-Index Layer Configuration
56
+ * Canonical definition from @objectstack/spec/ui.
57
+ */
58
+ export type { ZIndex } from '@objectstack/spec/ui';
59
+ /**
60
+ * Theme Mode
61
+ * Canonical definition from @objectstack/spec/ui.
62
+ */
63
+ export type { ThemeMode } from '@objectstack/spec/ui';
64
+ import type { ColorPalette, Typography, Spacing, BorderRadius, Shadow, Breakpoints, Animation, ZIndex, ThemeMode } from '@objectstack/spec/ui';
65
+ /**
66
+ * Logo / Branding Assets
67
+ * ObjectUI-specific convenience type matching the inline logo object
68
+ * in @objectstack/spec ThemeSchema.
69
+ */
70
+ export interface ThemeLogo {
71
+ /** Logo URL for light mode */
72
+ light?: string;
73
+ /** Logo URL for dark mode */
74
+ dark?: string;
75
+ /** Favicon URL */
76
+ favicon?: string;
77
+ }
78
+ /**
79
+ * Complete Theme Definition
80
+ * Compatible with @objectstack/spec Theme (input shape).
81
+ *
82
+ * Note: The spec's z.infer<Theme> has `mode` required (via ZodDefault).
83
+ * ObjectUI uses the input shape where `mode` is optional (defaults to 'auto').
84
+ *
85
+ * This is the canonical JSON shape for a theme.
86
+ * It can be serialized, stored, and applied at runtime via ThemeProvider.
87
+ */
88
+ export interface Theme {
89
+ /** Theme identifier (required) */
90
+ name: string;
91
+ /** Display label (required) */
92
+ label: string;
93
+ /** Human-readable description */
94
+ description?: string;
95
+ /** Theme mode: light, dark, or auto (default: 'auto') */
96
+ mode?: ThemeMode;
97
+ /** Semantic color palette (primary is required) */
98
+ colors: ColorPalette;
99
+ /** Typography design tokens */
100
+ typography?: Typography;
101
+ /** Spacing scale */
102
+ spacing?: Spacing;
103
+ /** Border radius scale */
104
+ borderRadius?: BorderRadius;
105
+ /** Shadow scale */
106
+ shadows?: Shadow;
107
+ /** Responsive breakpoint definitions */
108
+ breakpoints?: Breakpoints;
109
+ /** Animation duration and timing */
110
+ animation?: Animation;
111
+ /** Z-index layering system */
112
+ zIndex?: ZIndex;
113
+ /** Arbitrary CSS custom properties */
114
+ customVars?: Record<string, string>;
115
+ /** Logo/branding assets */
116
+ logo?: ThemeLogo;
117
+ /** Extend another theme by name */
118
+ extends?: string;
119
+ }
120
+ /**
121
+ * Theme Component Schema
122
+ *
123
+ * Used by SchemaRenderer to render a theme manager component.
124
+ */
125
+ export interface ThemeSchema extends BaseSchema {
126
+ type: 'theme';
127
+ /** Current theme mode */
128
+ mode?: ThemeMode;
129
+ /** Available themes */
130
+ themes?: Theme[];
131
+ /** Active theme name */
132
+ activeTheme?: string;
133
+ /** Allow user theme switching */
134
+ allowSwitching?: boolean;
135
+ /** Persist theme preference to storage */
136
+ persistPreference?: boolean;
137
+ /** Storage key for persisting theme */
138
+ storageKey?: string;
139
+ }
140
+ /**
141
+ * Theme Switcher Component Schema
142
+ */
143
+ export interface ThemeSwitcherSchema extends BaseSchema {
144
+ type: 'theme-switcher';
145
+ /** Switcher variant */
146
+ variant?: 'dropdown' | 'toggle' | 'buttons';
147
+ /** Show mode selector (light/dark) */
148
+ showMode?: boolean;
149
+ /** Show theme selector */
150
+ showThemes?: boolean;
151
+ /** Icon for light mode */
152
+ lightIcon?: string;
153
+ /** Icon for dark mode */
154
+ darkIcon?: string;
155
+ }
156
+ /**
157
+ * Theme Preview Component Schema
158
+ */
159
+ export interface ThemePreviewSchema extends BaseSchema {
160
+ type: 'theme-preview';
161
+ /** Theme to preview */
162
+ theme?: Theme;
163
+ /** Preview mode */
164
+ mode?: ThemeMode;
165
+ /** Show color palette */
166
+ showColors?: boolean;
167
+ /** Show typography samples */
168
+ showTypography?: boolean;
169
+ /** Show component samples */
170
+ showComponents?: boolean;
171
+ }
172
+ /**
173
+ * @deprecated Use `Theme` instead. Kept for backward compatibility.
174
+ */
175
+ export type ThemeDefinition = Theme;
176
+ /**
177
+ * @deprecated Use `Spacing` instead. Kept for backward compatibility.
178
+ */
179
+ export type SpacingScale = Spacing;
180
+ //# 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,290 @@
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 v2.0.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
+ * Action placement locations
22
+ * Canonical definition from @objectstack/spec/ui ActionSchema.locations.
23
+ */
24
+ export type ActionLocation = 'list_toolbar' | 'list_item' | 'record_header' | 'record_more' | 'record_related' | 'global_nav';
25
+ /**
26
+ * Visual component type for actions
27
+ * Canonical definition from @objectstack/spec/ui ActionSchema.component.
28
+ */
29
+ export type ActionComponent = 'action:button' | 'action:icon' | 'action:menu' | 'action:group';
30
+ /**
31
+ * Action execution type
32
+ * Canonical definition from @objectstack/spec/ui ActionSchema.type.
33
+ */
34
+ export type ActionType = 'script' | 'url' | 'modal' | 'flow' | 'api';
35
+ /**
36
+ * Field type for action parameters
37
+ * Subset of field types commonly used in action parameter collection UIs.
38
+ * Aligned with the field types available in @objectstack/spec ActionParamSchema.
39
+ */
40
+ export type ActionParamFieldType = 'text' | 'textarea' | 'number' | 'boolean' | 'date' | 'datetime' | 'time' | 'select' | 'email' | 'phone' | 'url' | 'password' | 'file' | 'color' | 'slider' | 'rating';
41
+ /**
42
+ * Action parameter definition (ObjectStack Spec v2.0.1)
43
+ */
44
+ export interface ActionParam {
45
+ /** Parameter name (snake_case) */
46
+ name: string;
47
+ /** Display label */
48
+ label: string;
49
+ /** Field type for input */
50
+ type: ActionParamFieldType;
51
+ /** Whether parameter is required */
52
+ required?: boolean;
53
+ /** Options for select/picklist types */
54
+ options?: Array<{
55
+ label: string;
56
+ value: string;
57
+ }>;
58
+ /** Default value */
59
+ defaultValue?: unknown;
60
+ /** Help text */
61
+ helpText?: string;
62
+ /** Placeholder text */
63
+ placeholder?: string;
64
+ /** Validation expression */
65
+ validation?: string;
66
+ }
67
+ /**
68
+ * Enhanced Action Schema (ObjectStack Spec v2.0.1)
69
+ *
70
+ * This is the primary action schema that should be used for all new implementations.
71
+ * The legacy ActionSchema in crud.ts is maintained for backward compatibility.
72
+ */
73
+ export interface ActionSchema {
74
+ /** Unique action identifier (snake_case) */
75
+ name: string;
76
+ /** Display label */
77
+ label: string;
78
+ /** Optional icon (Lucide icon name) */
79
+ icon?: string;
80
+ /** Where to show this action (defaults to ['record_header']) */
81
+ locations?: ActionLocation[];
82
+ /** Visual component type (defaults to 'action:button') */
83
+ component?: ActionComponent;
84
+ /** Action execution type */
85
+ type: ActionType;
86
+ /** Target for the action (URL, script name, etc.) */
87
+ target?: string;
88
+ /** Script to execute (for type: 'script') */
89
+ execute?: string;
90
+ /** API endpoint (for type: 'api') */
91
+ endpoint?: string;
92
+ /** HTTP method (for type: 'api') */
93
+ method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
94
+ /** Input parameters to collect before execution */
95
+ params?: ActionParam[];
96
+ /** Confirmation text to show before execution */
97
+ confirmText?: string;
98
+ /** Success message to show after execution */
99
+ successMessage?: string;
100
+ /** Error message to show on failure */
101
+ errorMessage?: string;
102
+ /** Whether to refresh data after execution */
103
+ refreshAfter?: boolean;
104
+ /** Toast notification configuration */
105
+ toast?: {
106
+ /** Show toast on success */
107
+ showOnSuccess?: boolean;
108
+ /** Show toast on error */
109
+ showOnError?: boolean;
110
+ /** Toast duration in milliseconds */
111
+ duration?: number;
112
+ };
113
+ /** Expression controlling visibility (e.g., "status === 'draft'") */
114
+ visible?: string;
115
+ /** Expression controlling enabled state (e.g., "hasPermission('edit')") */
116
+ enabled?: string;
117
+ /** Button variant */
118
+ variant?: 'default' | 'primary' | 'secondary' | 'destructive' | 'outline' | 'ghost';
119
+ /** Button size */
120
+ size?: 'sm' | 'md' | 'lg';
121
+ /** Custom CSS class */
122
+ className?: string;
123
+ /** Action description */
124
+ description?: string;
125
+ /** Permission required to execute */
126
+ permission?: string;
127
+ /** Tags for categorization */
128
+ tags?: string[];
129
+ }
130
+ /**
131
+ * Action group for organizing related actions
132
+ */
133
+ export interface ActionGroup {
134
+ /** Group name */
135
+ name: string;
136
+ /** Display label */
137
+ label: string;
138
+ /** Optional icon */
139
+ icon?: string;
140
+ /** Actions in this group */
141
+ actions: ActionSchema[];
142
+ /** Group visibility condition */
143
+ visible?: string;
144
+ /** Display as dropdown or inline */
145
+ display?: 'dropdown' | 'inline';
146
+ }
147
+ /**
148
+ * Action execution context
149
+ */
150
+ export interface ActionContext {
151
+ /** Current record data */
152
+ record?: Record<string, any>;
153
+ /** Selected records (for list actions) */
154
+ selectedRecords?: Record<string, any>[];
155
+ /** Current user */
156
+ user?: Record<string, any>;
157
+ /** Additional context data */
158
+ [key: string]: any;
159
+ }
160
+ /**
161
+ * Action execution result
162
+ */
163
+ export interface ActionResult {
164
+ /** Whether action succeeded */
165
+ success: boolean;
166
+ /** Result data */
167
+ data?: any;
168
+ /** Error message if failed */
169
+ error?: string;
170
+ /** Whether to refresh data */
171
+ refresh?: boolean;
172
+ /** Whether to close dialog/modal */
173
+ close?: boolean;
174
+ }
175
+ /**
176
+ * Action executor function type
177
+ */
178
+ export type ActionExecutor = (action: ActionSchema, context: ActionContext, params?: Record<string, any>) => Promise<ActionResult>;
179
+ /** Batch operation configuration */
180
+ export interface BatchOperationConfig {
181
+ /** Operation name */
182
+ name: string;
183
+ /** Display label */
184
+ label: string;
185
+ /** Target action to execute on each record */
186
+ action: string;
187
+ /** Whether to run in parallel */
188
+ parallel?: boolean;
189
+ /** Maximum concurrent operations */
190
+ concurrency?: number;
191
+ /** Whether to continue on error */
192
+ continueOnError?: boolean;
193
+ /** Progress callback expression */
194
+ onProgress?: string;
195
+ /** Completion callback expression */
196
+ onComplete?: string;
197
+ }
198
+ /** Batch operation result */
199
+ export interface BatchOperationResult {
200
+ /** Total items processed */
201
+ total: number;
202
+ /** Successfully processed count */
203
+ succeeded: number;
204
+ /** Failed count */
205
+ failed: number;
206
+ /** Individual results */
207
+ results: Array<{
208
+ recordId: string;
209
+ success: boolean;
210
+ error?: string;
211
+ }>;
212
+ }
213
+ /** Transaction isolation level */
214
+ export type TransactionIsolationLevel = 'read-uncommitted' | 'read-committed' | 'repeatable-read' | 'serializable';
215
+ /** Transaction configuration */
216
+ export interface TransactionConfig {
217
+ /** Transaction name for identification */
218
+ name?: string;
219
+ /** Isolation level */
220
+ isolation?: TransactionIsolationLevel;
221
+ /** Timeout in milliseconds */
222
+ timeout?: number;
223
+ /** Actions to execute within the transaction */
224
+ actions: ActionSchema[];
225
+ /** Rollback action on failure */
226
+ rollbackAction?: string;
227
+ /** Whether to auto-retry on conflict */
228
+ retryOnConflict?: boolean;
229
+ /** Maximum retry attempts */
230
+ maxRetries?: number;
231
+ }
232
+ /** Transaction result */
233
+ export interface TransactionResult {
234
+ /** Whether all actions succeeded */
235
+ success: boolean;
236
+ /** Transaction ID */
237
+ transactionId: string;
238
+ /** Individual action results */
239
+ actionResults: ActionResult[];
240
+ /** Error if transaction failed */
241
+ error?: string;
242
+ /** Whether the transaction was rolled back */
243
+ rolledBack?: boolean;
244
+ }
245
+ /** Undo/redo operation entry */
246
+ export interface UndoRedoEntry {
247
+ /** Entry identifier */
248
+ id: string;
249
+ /** Action that was performed */
250
+ action: string;
251
+ /** Description of the action */
252
+ description: string;
253
+ /** Timestamp */
254
+ timestamp: string;
255
+ /** Data before the action (for undo) */
256
+ previousState: Record<string, unknown>;
257
+ /** Data after the action (for redo) */
258
+ nextState: Record<string, unknown>;
259
+ /** Target object */
260
+ object?: string;
261
+ /** Target record ID */
262
+ recordId?: string;
263
+ }
264
+ /** Undo/redo configuration */
265
+ export interface UndoRedoConfig {
266
+ /** Enable undo/redo */
267
+ enabled: boolean;
268
+ /** Maximum history size */
269
+ maxHistorySize?: number;
270
+ /** Actions that support undo */
271
+ undoableActions?: string[];
272
+ /** Whether to group rapid changes */
273
+ groupChanges?: boolean;
274
+ /** Group timeout in milliseconds */
275
+ groupTimeout?: number;
276
+ }
277
+ /** Undo/redo state */
278
+ export interface UndoRedoState {
279
+ /** Whether undo is available */
280
+ canUndo: boolean;
281
+ /** Whether redo is available */
282
+ canRedo: boolean;
283
+ /** Undo stack */
284
+ undoStack: UndoRedoEntry[];
285
+ /** Redo stack */
286
+ redoStack: UndoRedoEntry[];
287
+ /** Current position in history */
288
+ currentIndex: number;
289
+ }
290
+ //# 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":"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"}
@@ -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 {};