@revealui/core 0.10.2 → 0.11.1

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 (63) hide show
  1. package/README.md +4 -2
  2. package/dist/client/admin/components/DocumentForm.js +17 -6
  3. package/dist/client/richtext/RichTextEditor.d.ts +1 -1
  4. package/dist/client/richtext/RichTextEditor.d.ts.map +1 -1
  5. package/dist/client/richtext/RichTextEditor.js +15 -15
  6. package/dist/client/richtext/components/ImageNodeComponent.js +4 -4
  7. package/dist/collections/CollectionOperations.d.ts +5 -0
  8. package/dist/collections/CollectionOperations.d.ts.map +1 -1
  9. package/dist/collections/CollectionOperations.js +7 -0
  10. package/dist/collections/operations/create.d.ts.map +1 -1
  11. package/dist/collections/operations/create.js +20 -0
  12. package/dist/collections/operations/delete.d.ts.map +1 -1
  13. package/dist/collections/operations/delete.js +14 -0
  14. package/dist/collections/operations/drafts.d.ts +33 -0
  15. package/dist/collections/operations/drafts.d.ts.map +1 -0
  16. package/dist/collections/operations/drafts.js +43 -0
  17. package/dist/collections/operations/fieldValidation.d.ts +53 -0
  18. package/dist/collections/operations/fieldValidation.d.ts.map +1 -0
  19. package/dist/collections/operations/fieldValidation.js +89 -0
  20. package/dist/collections/operations/find.d.ts.map +1 -1
  21. package/dist/collections/operations/find.js +23 -5
  22. package/dist/collections/operations/findById.d.ts +1 -0
  23. package/dist/collections/operations/findById.d.ts.map +1 -1
  24. package/dist/collections/operations/findById.js +33 -21
  25. package/dist/collections/operations/snapshot.d.ts +30 -0
  26. package/dist/collections/operations/snapshot.d.ts.map +1 -0
  27. package/dist/collections/operations/snapshot.js +81 -0
  28. package/dist/collections/operations/update.d.ts.map +1 -1
  29. package/dist/collections/operations/update.js +21 -0
  30. package/dist/error-handling/error-boundary.d.ts.map +1 -1
  31. package/dist/error-handling/error-boundary.js +11 -7
  32. package/dist/error-handling/fallback-components.d.ts.map +1 -1
  33. package/dist/error-handling/fallback-components.js +68 -48
  34. package/dist/features.d.ts +0 -2
  35. package/dist/features.d.ts.map +1 -1
  36. package/dist/features.js +2 -5
  37. package/dist/generated/types/admin.d.ts +42 -35
  38. package/dist/generated/types/admin.d.ts.map +1 -1
  39. package/dist/instance/RevealUIInstance.d.ts.map +1 -1
  40. package/dist/instance/methods/findById.d.ts +2 -0
  41. package/dist/instance/methods/findById.d.ts.map +1 -1
  42. package/dist/license.d.ts +67 -1
  43. package/dist/license.d.ts.map +1 -1
  44. package/dist/license.js +184 -25
  45. package/dist/richtext/exports/client/rcc.d.ts.map +1 -1
  46. package/dist/richtext/exports/client/rcc.js +6 -1
  47. package/dist/richtext/exports/server/rsc.d.ts +15 -2
  48. package/dist/richtext/exports/server/rsc.d.ts.map +1 -1
  49. package/dist/richtext/exports/server/rsc.js +36 -6
  50. package/dist/storage/index.d.ts +4 -5
  51. package/dist/storage/index.d.ts.map +1 -1
  52. package/dist/storage/index.js +10 -13
  53. package/dist/storage/object-storage.d.ts +5 -5
  54. package/dist/storage/object-storage.js +5 -5
  55. package/dist/storage/types.d.ts +5 -12
  56. package/dist/storage/types.d.ts.map +1 -1
  57. package/dist/storage/types.js +4 -4
  58. package/dist/types/runtime.d.ts +51 -0
  59. package/dist/types/runtime.d.ts.map +1 -1
  60. package/package.json +22 -23
  61. package/dist/storage/vercel-blob-provider.d.ts +0 -28
  62. package/dist/storage/vercel-blob-provider.d.ts.map +0 -1
  63. package/dist/storage/vercel-blob-provider.js +0 -88
@@ -13,15 +13,15 @@ export function ErrorFallback({ error, onRetry, onDismiss, title = 'Something we
13
13
  if (compact) {
14
14
  return (_jsxs("div", { style: {
15
15
  padding: '12px',
16
- backgroundColor: '#fee',
17
- border: '1px solid #fcc',
16
+ backgroundColor: 'var(--rvui-error-subtle, #fee)',
17
+ border: '1px solid var(--rvui-error, #fcc)',
18
18
  borderRadius: '4px',
19
- color: '#c00',
19
+ color: 'var(--rvui-error, #c00)',
20
20
  }, children: [_jsx("strong", { children: title }), message && _jsx("p", { style: { margin: '4px 0 0 0', fontSize: '14px' }, children: message }), onRetry && (_jsx("button", { type: "button", onClick: onRetry, style: {
21
21
  marginTop: '8px',
22
22
  padding: '4px 12px',
23
23
  fontSize: '12px',
24
- backgroundColor: '#c00',
24
+ backgroundColor: 'var(--rvui-error, #c00)',
25
25
  color: '#fff',
26
26
  border: 'none',
27
27
  borderRadius: '4px',
@@ -32,28 +32,28 @@ export function ErrorFallback({ error, onRetry, onDismiss, title = 'Something we
32
32
  padding: '24px',
33
33
  maxWidth: '600px',
34
34
  margin: '40px auto',
35
- backgroundColor: '#fff',
36
- border: '2px solid #f44336',
35
+ backgroundColor: 'var(--rvui-surface-0, #fff)',
36
+ border: '2px solid var(--rvui-error, #f44336)',
37
37
  borderRadius: '8px',
38
38
  boxShadow: '0 2px 8px rgba(0,0,0,0.1)',
39
- }, children: [_jsx("h2", { style: { color: '#f44336', marginTop: 0 }, children: title }), _jsx("p", { style: { color: '#666', lineHeight: 1.6 }, children: message || 'An unexpected error occurred. Please try again.' }), showDetails && error && (_jsxs("details", { style: { marginTop: '16px' }, children: [_jsx("summary", { style: {
39
+ }, children: [_jsx("h2", { style: { color: 'var(--rvui-error, #f44336)', marginTop: 0 }, children: title }), _jsx("p", { style: { color: 'var(--rvui-text-2, #666)', lineHeight: 1.6 }, children: message || 'An unexpected error occurred. Please try again.' }), showDetails && error && (_jsxs("details", { style: { marginTop: '16px' }, children: [_jsx("summary", { style: {
40
40
  cursor: 'pointer',
41
41
  fontWeight: 'bold',
42
- color: '#333',
42
+ color: 'var(--rvui-text-1, #333)',
43
43
  padding: '8px',
44
- backgroundColor: '#f5f5f5',
44
+ backgroundColor: 'var(--rvui-surface-2, #f5f5f5)',
45
45
  borderRadius: '4px',
46
46
  }, children: "Error details" }), _jsxs("pre", { style: {
47
47
  marginTop: '8px',
48
48
  padding: '12px',
49
- backgroundColor: '#f5f5f5',
49
+ backgroundColor: 'var(--rvui-surface-2, #f5f5f5)',
50
50
  borderRadius: '4px',
51
51
  overflow: 'auto',
52
52
  fontSize: '12px',
53
- color: '#c00',
53
+ color: 'var(--rvui-error, #c00)',
54
54
  }, children: [error.name, ": ", error.message, error.stack && `\n\n${error.stack}`] })] })), _jsxs("div", { style: { marginTop: '24px', display: 'flex', gap: '12px' }, children: [onRetry && (_jsx("button", { type: "button", onClick: onRetry, style: {
55
55
  padding: '10px 20px',
56
- backgroundColor: '#2196f3',
56
+ backgroundColor: 'var(--rvui-brand, #2196f3)',
57
57
  color: '#fff',
58
58
  border: 'none',
59
59
  borderRadius: '4px',
@@ -61,9 +61,9 @@ export function ErrorFallback({ error, onRetry, onDismiss, title = 'Something we
61
61
  fontWeight: 'bold',
62
62
  }, children: "Try Again" })), onDismiss && (_jsx("button", { type: "button", onClick: onDismiss, style: {
63
63
  padding: '10px 20px',
64
- backgroundColor: '#fff',
65
- color: '#666',
66
- border: '1px solid #ddd',
64
+ backgroundColor: 'var(--rvui-surface-0, #fff)',
65
+ color: 'var(--rvui-text-2, #666)',
66
+ border: '1px solid var(--rvui-border, #ddd)',
67
67
  borderRadius: '4px',
68
68
  cursor: 'pointer',
69
69
  }, children: "Dismiss" }))] })] }));
@@ -77,10 +77,10 @@ export function NetworkErrorFallback({ onRetry, message = 'Unable to connect to
77
77
  textAlign: 'center',
78
78
  maxWidth: '400px',
79
79
  margin: '40px auto',
80
- }, children: [_jsx("div", { style: { fontSize: '48px', marginBottom: '16px' }, children: "\uD83D\uDCE1" }), _jsx("h3", { style: { color: '#333', marginTop: 0 }, children: "Connection Error" }), _jsx("p", { style: { color: '#666', lineHeight: 1.6 }, children: message }), onRetry && (_jsx("button", { type: "button", onClick: onRetry, style: {
80
+ }, children: [_jsx("div", { style: { fontSize: '48px', marginBottom: '16px' }, children: "\uD83D\uDCE1" }), _jsx("h3", { style: { color: 'var(--rvui-text-1, #333)', marginTop: 0 }, children: "Connection Error" }), _jsx("p", { style: { color: 'var(--rvui-text-2, #666)', lineHeight: 1.6 }, children: message }), onRetry && (_jsx("button", { type: "button", onClick: onRetry, style: {
81
81
  marginTop: '16px',
82
82
  padding: '10px 20px',
83
- backgroundColor: '#2196f3',
83
+ backgroundColor: 'var(--rvui-brand, #2196f3)',
84
84
  color: '#fff',
85
85
  border: 'none',
86
86
  borderRadius: '4px',
@@ -97,10 +97,10 @@ export function NotFoundFallback({ title = 'Page Not Found', message = 'The page
97
97
  textAlign: 'center',
98
98
  maxWidth: '400px',
99
99
  margin: '40px auto',
100
- }, children: [_jsx("div", { style: { fontSize: '72px', marginBottom: '16px' }, children: "404" }), _jsx("h2", { style: { color: '#333', marginTop: 0 }, children: title }), _jsx("p", { style: { color: '#666', lineHeight: 1.6 }, children: message }), onGoHome && (_jsx("button", { type: "button", onClick: onGoHome, style: {
100
+ }, children: [_jsx("div", { style: { fontSize: '72px', marginBottom: '16px' }, children: "404" }), _jsx("h2", { style: { color: 'var(--rvui-text-1, #333)', marginTop: 0 }, children: title }), _jsx("p", { style: { color: 'var(--rvui-text-2, #666)', lineHeight: 1.6 }, children: message }), onGoHome && (_jsx("button", { type: "button", onClick: onGoHome, style: {
101
101
  marginTop: '16px',
102
102
  padding: '10px 20px',
103
- backgroundColor: '#2196f3',
103
+ backgroundColor: 'var(--rvui-brand, #2196f3)',
104
104
  color: '#fff',
105
105
  border: 'none',
106
106
  borderRadius: '4px',
@@ -135,11 +135,11 @@ export function LoadingFallback({ message = 'Loading...', timeout, onTimeout, })
135
135
  width: '40px',
136
136
  height: '40px',
137
137
  margin: '0 auto 16px',
138
- border: '4px solid #f3f3f3',
139
- borderTop: '4px solid #2196f3',
138
+ border: '4px solid var(--rvui-surface-2, #f3f3f3)',
139
+ borderTop: '4px solid var(--rvui-brand, #2196f3)',
140
140
  borderRadius: '50%',
141
141
  animation: 'spin 1s linear infinite',
142
- } }), _jsx("p", { style: { color: '#666' }, children: message }), _jsx("style", { children: `
142
+ } }), _jsx("p", { style: { color: 'var(--rvui-text-2, #666)' }, children: message }), _jsx("style", { children: `
143
143
  @keyframes spin {
144
144
  0% { transform: rotate(0deg); }
145
145
  100% { transform: rotate(360deg); }
@@ -152,10 +152,10 @@ export function LoadingFallback({ message = 'Loading...', timeout, onTimeout, })
152
152
  export function OfflineFallback({ message = 'You are currently offline. Some features may be unavailable.', children, }) {
153
153
  return (_jsxs("div", { children: [_jsxs("div", { style: {
154
154
  padding: '12px 16px',
155
- backgroundColor: '#fff3cd',
156
- borderBottom: '1px solid #ffc107',
155
+ backgroundColor: 'var(--rvui-warning-subtle, #fff3cd)',
156
+ borderBottom: '1px solid var(--rvui-warning, #ffc107)',
157
157
  textAlign: 'center',
158
- color: '#856404',
158
+ color: 'var(--rvui-warning-text, #856404)',
159
159
  }, children: [_jsx("strong", { children: "\u26A0\uFE0F Offline Mode" }), _jsx("span", { style: { marginLeft: '8px', fontSize: '14px' }, children: message })] }), children] }));
160
160
  }
161
161
  /**
@@ -168,10 +168,10 @@ export function DegradedServiceFallback({ serviceName, message, children, }) {
168
168
  : 'Some services are experiencing issues. Functionality may be limited.');
169
169
  return (_jsxs("div", { children: [_jsxs("div", { style: {
170
170
  padding: '12px 16px',
171
- backgroundColor: '#fff3cd',
172
- borderBottom: '1px solid #ffc107',
171
+ backgroundColor: 'var(--rvui-warning-subtle, #fff3cd)',
172
+ borderBottom: '1px solid var(--rvui-warning, #ffc107)',
173
173
  textAlign: 'center',
174
- color: '#856404',
174
+ color: 'var(--rvui-warning-text, #856404)',
175
175
  }, children: [_jsx("strong", { children: "\u26A0\uFE0F Service Degraded" }), _jsx("span", { style: { marginLeft: '8px', fontSize: '14px' }, children: displayMessage })] }), children] }));
176
176
  }
177
177
  /**
@@ -183,7 +183,7 @@ export function MaintenanceFallback({ title = 'Under Maintenance', message = 'We
183
183
  textAlign: 'center',
184
184
  maxWidth: '500px',
185
185
  margin: '40px auto',
186
- }, children: [_jsx("div", { style: { fontSize: '64px', marginBottom: '24px' }, children: "\uD83D\uDD27" }), _jsx("h1", { style: { color: '#333', marginTop: 0 }, children: title }), _jsx("p", { style: { color: '#666', lineHeight: 1.6, fontSize: '16px' }, children: message }), estimatedTime && (_jsxs("p", { style: { color: '#999', marginTop: '16px' }, children: ["Estimated completion: ", estimatedTime] }))] }));
186
+ }, children: [_jsx("div", { style: { fontSize: '64px', marginBottom: '24px' }, children: "\uD83D\uDD27" }), _jsx("h1", { style: { color: 'var(--rvui-text-1, #333)', marginTop: 0 }, children: title }), _jsx("p", { style: { color: 'var(--rvui-text-2, #666)', lineHeight: 1.6, fontSize: '16px' }, children: message }), estimatedTime && (_jsxs("p", { style: { color: 'var(--rvui-text-2, #999)', marginTop: '16px' }, children: ["Estimated completion: ", estimatedTime] }))] }));
187
187
  }
188
188
  /**
189
189
  * Permission denied fallback
@@ -194,9 +194,9 @@ export function PermissionDeniedFallback({ message = 'You do not have permission
194
194
  textAlign: 'center',
195
195
  maxWidth: '400px',
196
196
  margin: '40px auto',
197
- }, children: [_jsx("div", { style: { fontSize: '64px', marginBottom: '16px' }, children: "\uD83D\uDD12" }), _jsx("h2", { style: { color: '#333', marginTop: 0 }, children: "Access Denied" }), _jsx("p", { style: { color: '#666', lineHeight: 1.6 }, children: message }), _jsxs("div", { style: { marginTop: '24px', display: 'flex', gap: '12px', justifyContent: 'center' }, children: [onRequestAccess && (_jsx("button", { type: "button", onClick: onRequestAccess, style: {
197
+ }, children: [_jsx("div", { style: { fontSize: '64px', marginBottom: '16px' }, children: "\uD83D\uDD12" }), _jsx("h2", { style: { color: 'var(--rvui-text-1, #333)', marginTop: 0 }, children: "Access Denied" }), _jsx("p", { style: { color: 'var(--rvui-text-2, #666)', lineHeight: 1.6 }, children: message }), _jsxs("div", { style: { marginTop: '24px', display: 'flex', gap: '12px', justifyContent: 'center' }, children: [onRequestAccess && (_jsx("button", { type: "button", onClick: onRequestAccess, style: {
198
198
  padding: '10px 20px',
199
- backgroundColor: '#2196f3',
199
+ backgroundColor: 'var(--rvui-brand, #2196f3)',
200
200
  color: '#fff',
201
201
  border: 'none',
202
202
  borderRadius: '4px',
@@ -204,9 +204,9 @@ export function PermissionDeniedFallback({ message = 'You do not have permission
204
204
  fontWeight: 'bold',
205
205
  }, children: "Request Access" })), onGoBack && (_jsx("button", { type: "button", onClick: onGoBack, style: {
206
206
  padding: '10px 20px',
207
- backgroundColor: '#fff',
208
- color: '#666',
209
- border: '1px solid #ddd',
207
+ backgroundColor: 'var(--rvui-surface-0, #fff)',
208
+ color: 'var(--rvui-text-2, #666)',
209
+ border: '1px solid var(--rvui-border, #ddd)',
210
210
  borderRadius: '4px',
211
211
  cursor: 'pointer',
212
212
  }, children: "Go Back" }))] })] }));
@@ -264,7 +264,7 @@ export function FeatureUnavailableFallback({ featureName, message, }) {
264
264
  textAlign: 'center',
265
265
  maxWidth: '400px',
266
266
  margin: '40px auto',
267
- }, children: [_jsx("div", { style: { fontSize: '48px', marginBottom: '16px' }, children: "\uD83D\uDEA7" }), _jsx("h3", { style: { color: '#333', marginTop: 0 }, children: "Feature Unavailable" }), _jsx("p", { style: { color: '#666', lineHeight: 1.6 }, children: message || `The "${featureName}" feature is currently unavailable.` })] }));
267
+ }, children: [_jsx("div", { style: { fontSize: '48px', marginBottom: '16px' }, children: "\uD83D\uDEA7" }), _jsx("h3", { style: { color: 'var(--rvui-text-1, #333)', marginTop: 0 }, children: "Feature Unavailable" }), _jsx("p", { style: { color: 'var(--rvui-text-2, #666)', lineHeight: 1.6 }, children: message || `The "${featureName}" feature is currently unavailable.` })] }));
268
268
  }
269
269
  /**
270
270
  * Inline error message
@@ -272,17 +272,17 @@ export function FeatureUnavailableFallback({ featureName, message, }) {
272
272
  export function InlineError({ message, onDismiss, }) {
273
273
  return (_jsxs("div", { role: "alert", style: {
274
274
  padding: '12px 16px',
275
- backgroundColor: '#fee',
276
- border: '1px solid #fcc',
275
+ backgroundColor: 'var(--rvui-error-subtle, #fee)',
276
+ border: '1px solid var(--rvui-error, #fcc)',
277
277
  borderRadius: '4px',
278
- color: '#c00',
278
+ color: 'var(--rvui-error, #c00)',
279
279
  display: 'flex',
280
280
  alignItems: 'center',
281
281
  justifyContent: 'space-between',
282
282
  }, children: [_jsxs("span", { style: { display: 'flex', alignItems: 'center' }, children: [_jsx("span", { style: { marginRight: '8px' }, children: "\u26A0\uFE0F" }), message] }), onDismiss && (_jsx("button", { type: "button", onClick: onDismiss, style: {
283
283
  background: 'none',
284
284
  border: 'none',
285
- color: '#c00',
285
+ color: 'var(--rvui-error, #c00)',
286
286
  cursor: 'pointer',
287
287
  fontSize: '18px',
288
288
  padding: '0 4px',
@@ -294,17 +294,17 @@ export function InlineError({ message, onDismiss, }) {
294
294
  export function SuccessMessage({ message, onDismiss, }) {
295
295
  return (_jsxs("output", { style: {
296
296
  padding: '12px 16px',
297
- backgroundColor: '#efe',
298
- border: '1px solid #cec',
297
+ backgroundColor: 'var(--rvui-success-subtle, #efe)',
298
+ border: '1px solid var(--rvui-success, #cec)',
299
299
  borderRadius: '4px',
300
- color: '#060',
300
+ color: 'var(--rvui-success, #060)',
301
301
  display: 'flex',
302
302
  alignItems: 'center',
303
303
  justifyContent: 'space-between',
304
304
  }, children: [_jsxs("span", { style: { display: 'flex', alignItems: 'center' }, children: [_jsx("span", { style: { marginRight: '8px' }, children: "\u2713" }), message] }), onDismiss && (_jsx("button", { type: "button", onClick: onDismiss, style: {
305
305
  background: 'none',
306
306
  border: 'none',
307
- color: '#060',
307
+ color: 'var(--rvui-success, #060)',
308
308
  cursor: 'pointer',
309
309
  fontSize: '18px',
310
310
  padding: '0 4px',
@@ -322,10 +322,30 @@ export function Toast({ type = 'info', message, duration = 5000, onDismiss, }) {
322
322
  return undefined;
323
323
  }, [duration, onDismiss]);
324
324
  const colors = {
325
- success: { bg: '#efe', border: '#cec', text: '#060', icon: '✓' },
326
- error: { bg: '#fee', border: '#fcc', text: '#c00', icon: '✗' },
327
- warning: { bg: '#fff3cd', border: '#ffc107', text: '#856404', icon: '!' },
328
- info: { bg: '#e7f3ff', border: '#2196f3', text: '#0c5393', icon: 'i' },
325
+ success: {
326
+ bg: 'var(--rvui-success-subtle, #efe)',
327
+ border: 'var(--rvui-success, #cec)',
328
+ text: 'var(--rvui-success, #060)',
329
+ icon: '✓',
330
+ },
331
+ error: {
332
+ bg: 'var(--rvui-error-subtle, #fee)',
333
+ border: 'var(--rvui-error, #fcc)',
334
+ text: 'var(--rvui-error, #c00)',
335
+ icon: '✗',
336
+ },
337
+ warning: {
338
+ bg: 'var(--rvui-warning-subtle, #fff3cd)',
339
+ border: 'var(--rvui-warning, #ffc107)',
340
+ text: 'var(--rvui-warning-text, #856404)',
341
+ icon: '!',
342
+ },
343
+ info: {
344
+ bg: 'var(--rvui-info-subtle, #e7f3ff)',
345
+ border: 'var(--rvui-brand, #2196f3)',
346
+ text: 'var(--rvui-brand, #0c5393)',
347
+ icon: 'i',
348
+ },
329
349
  };
330
350
  const color = colors[type];
331
351
  return (_jsxs("div", { style: {
@@ -360,7 +380,7 @@ export function Skeleton({ width = '100%', height = '20px', borderRadius = '4px'
360
380
  width,
361
381
  height,
362
382
  borderRadius,
363
- backgroundColor: '#e0e0e0',
383
+ backgroundColor: 'var(--rvui-surface-2, #e0e0e0)',
364
384
  animation: 'pulse 1.5s ease-in-out infinite',
365
385
  }, children: _jsx("style", { children: `
366
386
  @keyframes pulse {
@@ -25,8 +25,6 @@ export interface FeatureFlags {
25
25
  multiTenant: boolean;
26
26
  /** White-label admin dashboard (planned - not yet implemented) */
27
27
  whiteLabel: boolean;
28
- /** SSO/SAML authentication (planned - not yet implemented) */
29
- sso: boolean;
30
28
  /** Open-model inference configuration - snaps, Ollama, harness (Max+) */
31
29
  aiInference: boolean;
32
30
  /** Audit logging and compliance trail */
@@ -1 +1 @@
1
- {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../src/features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5D,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,sGAAsG;IACtG,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,EAAE,EAAE,OAAO,CAAC;IACZ,sFAAsF;IACtF,QAAQ,EAAE,OAAO,CAAC;IAClB,6BAA6B;IAC7B,GAAG,EAAE,OAAO,CAAC;IACb,yCAAyC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,oEAAoE;IACpE,UAAU,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,GAAG,EAAE,OAAO,CAAC;IACb,2EAA2E;IAC3E,WAAW,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,YAAY,EAAE,OAAO,CAAC;IACtB,2BAA2B;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,iGAAiG;IACjG,YAAY,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,aAAa,EAAE,OAAO,CAAC;IACvB,qEAAqE;IACrE,cAAc,EAAE,OAAO,CAAC;CACzB;AA0BD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,IAAI,YAAY,CAY1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,YAAY,GAAG,OAAO,CAMrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAmBlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,YAAY,GAAG,WAAW,CAExE;AAED;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../src/features.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5D,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,sGAAsG;IACtG,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,EAAE,EAAE,OAAO,CAAC;IACZ,sFAAsF;IACtF,QAAQ,EAAE,OAAO,CAAC;IAClB,6BAA6B;IAC7B,GAAG,EAAE,OAAO,CAAC;IACb,yCAAyC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,oEAAoE;IACpE,UAAU,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,WAAW,EAAE,OAAO,CAAC;IACrB,yCAAyC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,YAAY,EAAE,OAAO,CAAC;IACtB,2BAA2B;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,wCAAwC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,iGAAiG;IACjG,YAAY,EAAE,OAAO,CAAC;IACtB,yEAAyE;IACzE,aAAa,EAAE,OAAO,CAAC;IACvB,qEAAqE;IACrE,cAAc,EAAE,OAAO,CAAC;CACzB;AAyBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,IAAI,YAAY,CAW1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,YAAY,GAAG,OAAO,CAMrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CAkBlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,YAAY,GAAG,WAAW,CAExE;AAED;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
package/dist/features.js CHANGED
@@ -23,11 +23,10 @@ const featureTierMap = {
23
23
  aiInference: 'max',
24
24
  auditLog: 'max',
25
25
  multiTenant: 'enterprise',
26
- // NOTE: whiteLabel and sso are planned but not yet implemented.
26
+ // NOTE: whiteLabel is planned but not yet implemented.
27
27
  // Forced to false below in getFeatures/getFeaturesForTier/isFeatureEnabled
28
28
  // to avoid advertising features that don't exist. Re-enable when implemented.
29
29
  whiteLabel: 'enterprise',
30
- sso: 'enterprise',
31
30
  vaultDesktop: 'pro',
32
31
  vaultRotation: 'pro',
33
32
  devkitProfiles: 'max',
@@ -52,7 +51,6 @@ export function getFeatures() {
52
51
  }
53
52
  // Planned but not yet implemented - force false to avoid false advertising
54
53
  flags.whiteLabel = false;
55
- flags.sso = false;
56
54
  return flags;
57
55
  }
58
56
  /**
@@ -69,7 +67,7 @@ export function getFeatures() {
69
67
  */
70
68
  export function isFeatureEnabled(feature) {
71
69
  // Planned but not yet implemented - always return false
72
- if (feature === 'whiteLabel' || feature === 'sso')
70
+ if (feature === 'whiteLabel')
73
71
  return false;
74
72
  const requiredTier = featureTierMap[feature];
75
73
  return isLicensed(requiredTier);
@@ -90,7 +88,6 @@ export function getFeaturesForTier(tier) {
90
88
  }
91
89
  // Planned but not yet implemented - force false to avoid false advertising
92
90
  flags.whiteLabel = false;
93
- flags.sso = false;
94
91
  return flags;
95
92
  }
96
93
  /**
@@ -152,41 +152,8 @@ export interface Tenant {
152
152
  export interface Page {
153
153
  id: number;
154
154
  title: string;
155
- hero: {
156
- type: 'none' | 'highImpact' | 'mediumImpact' | 'lowImpact';
157
- richText?: {
158
- root: {
159
- type: string;
160
- children: {
161
- type: string;
162
- version: number;
163
- [key: string]: unknown;
164
- }[];
165
- direction: ('ltr' | 'rtl') | null;
166
- format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
167
- indent: number;
168
- version: number;
169
- };
170
- [key: string]: unknown;
171
- } | null;
172
- links?: {
173
- link: {
174
- type?: ('reference' | 'custom') | null;
175
- newTab?: boolean | null;
176
- reference?: {
177
- relationTo: 'pages';
178
- value: number | Page;
179
- } | null;
180
- url?: string | null;
181
- label: string;
182
- appearance?: ('default' | 'outline') | null;
183
- };
184
- id?: string | null;
185
- }[] | null;
186
- media?: (number | null) | Media;
187
- };
188
- layout: (CallToActionBlock | ContentBlock | MediaBlock | ArchiveBlock | FormBlock | CodeBlock | BannerBlock)[];
189
- meta?: {
155
+ blocks: (HeroBlock | CallToActionBlock | ContentBlock | MediaBlock | ArchiveBlock | FormBlock | CodeBlock | BannerBlock)[];
156
+ seo?: {
190
157
  image?: (number | null) | Media;
191
158
  title?: string | null;
192
159
  description?: string | null;
@@ -198,6 +165,46 @@ export interface Page {
198
165
  createdAt: string;
199
166
  _status?: ('draft' | 'published') | null;
200
167
  }
168
+ /**
169
+ * This interface was referenced by `Config`'s JSON-Schema
170
+ * via the `definition` "HeroBlock".
171
+ */
172
+ export interface HeroBlock {
173
+ type: 'none' | 'highImpact' | 'mediumImpact' | 'lowImpact';
174
+ richText?: {
175
+ root: {
176
+ type: string;
177
+ children: {
178
+ type: string;
179
+ version: number;
180
+ [key: string]: unknown;
181
+ }[];
182
+ direction: ('ltr' | 'rtl') | null;
183
+ format: 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';
184
+ indent: number;
185
+ version: number;
186
+ };
187
+ [key: string]: unknown;
188
+ } | null;
189
+ links?: {
190
+ link: {
191
+ type?: ('reference' | 'custom') | null;
192
+ newTab?: boolean | null;
193
+ reference?: {
194
+ relationTo: 'pages';
195
+ value: number | Page;
196
+ } | null;
197
+ url?: string | null;
198
+ label: string;
199
+ appearance?: ('default' | 'outline') | null;
200
+ };
201
+ id?: string | null;
202
+ }[] | null;
203
+ media?: (number | null) | Media;
204
+ id?: string | null;
205
+ blockName?: string | null;
206
+ blockType: 'hero';
207
+ }
201
208
  /**
202
209
  * This interface was referenced by `Config`'s JSON-Schema
203
210
  * via the `definition` "media".