@dotdo/do 0.1.1 → 0.1.2
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.
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +1 -1
- package/dist/types/mdxui.d.ts +48 -1941
- package/dist/types/mdxui.d.ts.map +1 -1
- package/dist/types/mdxui.js +4 -744
- package/dist/types/mdxui.js.map +1 -1
- package/package.json +11 -1
package/dist/types/mdxui.js
CHANGED
|
@@ -1,751 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MDXUI Type Re-exports
|
|
2
|
+
* MDXUI Type Re-exports
|
|
3
3
|
*
|
|
4
4
|
* DO entities ARE the props for MDXUI components.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Key insight: Instead of reinventing types, we reuse MDXUI's
|
|
8
|
-
* well-designed, feature-based composition patterns.
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
* ```typescript
|
|
12
|
-
* import { AppPropsSchema, SitePropsSchema, DashboardPropsSchema } from 'do/types/mdxui'
|
|
13
|
-
* ```
|
|
5
|
+
* mdxui is the source of truth - we re-export from there.
|
|
14
6
|
*
|
|
15
7
|
* @see https://mdxui.dev for component documentation
|
|
16
8
|
*/
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
// In production, import directly from 'mdxui' or 'mdxui/app', 'mdxui/site'.
|
|
20
|
-
// These local definitions ensure DO types align with MDXUI expectations.
|
|
21
|
-
// =============================================================================
|
|
22
|
-
import { z } from 'zod';
|
|
23
|
-
export const NavItemSchema = z.object({
|
|
24
|
-
label: z.string(),
|
|
25
|
-
href: z.string(),
|
|
26
|
-
icon: z.string().optional(),
|
|
27
|
-
description: z.string().optional(),
|
|
28
|
-
children: z.lazy(() => z.array(NavItemSchema)).optional(),
|
|
29
|
-
});
|
|
30
|
-
/**
|
|
31
|
-
* Theme mode options
|
|
32
|
-
*/
|
|
33
|
-
export const ThemeModeSchema = z.enum(['light', 'dark', 'system']);
|
|
34
|
-
/**
|
|
35
|
-
* Action configuration for behavior props
|
|
36
|
-
*/
|
|
37
|
-
export const ActionConfigSchema = z.object({
|
|
38
|
-
kind: z.literal('config').optional(),
|
|
39
|
-
href: z.string(),
|
|
40
|
-
onClick: z.function().optional(),
|
|
41
|
-
target: z.enum(['_blank', '_self']).optional(),
|
|
42
|
-
});
|
|
43
|
-
/**
|
|
44
|
-
* Action prop - string shorthand or full config
|
|
45
|
-
*/
|
|
46
|
-
export const ActionPropSchema = z.union([z.string(), ActionConfigSchema]);
|
|
47
|
-
/**
|
|
48
|
-
* Standard actions object for primary/secondary CTAs
|
|
49
|
-
*/
|
|
50
|
-
export const ActionsPropsSchema = z.object({
|
|
51
|
-
primary: ActionPropSchema.optional(),
|
|
52
|
-
secondary: ActionPropSchema.optional(),
|
|
53
|
-
});
|
|
54
|
-
// =============================================================================
|
|
55
|
-
// App Schemas (from mdxui/app)
|
|
56
|
-
// =============================================================================
|
|
57
|
-
/**
|
|
58
|
-
* Base App schema - foundation for all app types
|
|
59
|
-
*/
|
|
60
|
-
export const BaseAppSchema = z.object({
|
|
61
|
-
name: z.string().describe('Display name of the application'),
|
|
62
|
-
description: z.string().optional().describe('Brief description of the application'),
|
|
63
|
-
defaultViews: z.array(z.string()).optional().describe('Default views/pages to include'),
|
|
64
|
-
defaultPanels: z.array(z.string()).optional().describe('Default panels/widgets to display'),
|
|
65
|
-
navigation: z.array(NavItemSchema).optional().describe('Navigation items for sidebar'),
|
|
66
|
-
shell: z
|
|
67
|
-
.object({
|
|
68
|
-
sidebar: z.boolean().default(true),
|
|
69
|
-
header: z.boolean().default(true),
|
|
70
|
-
sidebarCollapsed: z.boolean().default(false),
|
|
71
|
-
})
|
|
72
|
-
.optional(),
|
|
73
|
-
theme: z
|
|
74
|
-
.object({
|
|
75
|
-
preset: z.string().optional(),
|
|
76
|
-
mode: ThemeModeSchema.optional(),
|
|
77
|
-
custom: z.record(z.string(), z.string()).optional(),
|
|
78
|
-
})
|
|
79
|
-
.optional(),
|
|
80
|
-
});
|
|
81
|
-
/**
|
|
82
|
-
* Auth provider options
|
|
83
|
-
*/
|
|
84
|
-
export const AuthProviderSchema = z.enum(['workos', 'clerk', 'auth0', 'custom']);
|
|
85
|
-
/**
|
|
86
|
-
* App root container props
|
|
87
|
-
*/
|
|
88
|
-
export const AppPropsSchema = z.object({
|
|
89
|
-
name: z.string(),
|
|
90
|
-
auth: z
|
|
91
|
-
.object({
|
|
92
|
-
provider: AuthProviderSchema,
|
|
93
|
-
clientId: z.string().optional(),
|
|
94
|
-
loginUrl: z.string().optional(),
|
|
95
|
-
redirectUri: z.string().optional(),
|
|
96
|
-
})
|
|
97
|
-
.optional(),
|
|
98
|
-
children: z.any().optional(),
|
|
99
|
-
});
|
|
100
|
-
/**
|
|
101
|
-
* Shell props - app layout
|
|
102
|
-
*/
|
|
103
|
-
export const ShellPropsSchema = z.object({
|
|
104
|
-
sidebar: z.boolean().default(true),
|
|
105
|
-
header: z.boolean().default(true),
|
|
106
|
-
sidebarCollapsed: z.boolean().default(false),
|
|
107
|
-
children: z.any().optional(),
|
|
108
|
-
});
|
|
109
|
-
/**
|
|
110
|
-
* Dashboard props
|
|
111
|
-
*/
|
|
112
|
-
export const DashboardPropsSchema = z.object({
|
|
113
|
-
title: z.string().optional(),
|
|
114
|
-
metrics: z
|
|
115
|
-
.array(z.object({
|
|
116
|
-
label: z.string(),
|
|
117
|
-
value: z.union([z.string(), z.number()]),
|
|
118
|
-
change: z.number().optional(),
|
|
119
|
-
trend: z.enum(['up', 'down', 'neutral']).optional(),
|
|
120
|
-
}))
|
|
121
|
-
.optional(),
|
|
122
|
-
children: z.any().optional(),
|
|
123
|
-
});
|
|
124
|
-
/**
|
|
125
|
-
* Dashboard identity/auth configuration
|
|
126
|
-
*/
|
|
127
|
-
export const DashboardIdentitySchema = z.object({
|
|
128
|
-
clientId: z.string(),
|
|
129
|
-
apiHostname: z.string().optional(),
|
|
130
|
-
devMode: z.boolean().default(false),
|
|
131
|
-
redirectUri: z.string().optional(),
|
|
132
|
-
useMockWidgets: z.boolean().default(false),
|
|
133
|
-
required: z.boolean().default(true),
|
|
134
|
-
onUnauthenticated: z.enum(['redirect', 'landing', 'allow']).default('landing'),
|
|
135
|
-
});
|
|
136
|
-
/**
|
|
137
|
-
* Dashboard branding
|
|
138
|
-
*/
|
|
139
|
-
export const DashboardBrandingSchema = z.object({
|
|
140
|
-
name: z.string().optional(),
|
|
141
|
-
logo: z.any().optional(),
|
|
142
|
-
});
|
|
143
|
-
/**
|
|
144
|
-
* Dashboard routes toggle
|
|
145
|
-
*/
|
|
146
|
-
export const DashboardRoutesSchema = z.object({
|
|
147
|
-
overview: z.boolean().default(true),
|
|
148
|
-
requests: z.boolean().default(true),
|
|
149
|
-
keys: z.boolean().default(true),
|
|
150
|
-
team: z.boolean().default(true),
|
|
151
|
-
billing: z.boolean().default(true),
|
|
152
|
-
settings: z.boolean().default(true),
|
|
153
|
-
webhooks: z.boolean().default(false),
|
|
154
|
-
database: z.boolean().default(false),
|
|
155
|
-
integrations: z.boolean().default(false),
|
|
156
|
-
vault: z.boolean().default(false),
|
|
157
|
-
});
|
|
158
|
-
/**
|
|
159
|
-
* Custom route schema
|
|
160
|
-
*/
|
|
161
|
-
export const CustomRouteSchema = z.object({
|
|
162
|
-
path: z.string(),
|
|
163
|
-
label: z.string(),
|
|
164
|
-
icon: z.string().optional(),
|
|
165
|
-
element: z.any(),
|
|
166
|
-
group: z.enum(['main', 'secondary', 'admin']).default('main'),
|
|
167
|
-
order: z.number().optional(),
|
|
168
|
-
index: z.boolean().optional(),
|
|
169
|
-
});
|
|
170
|
-
/**
|
|
171
|
-
* Developer Dashboard props
|
|
172
|
-
*/
|
|
173
|
-
export const DeveloperDashboardPropsSchema = z.object({
|
|
174
|
-
basePath: z.string().default('/'),
|
|
175
|
-
branding: DashboardBrandingSchema.optional(),
|
|
176
|
-
routes: DashboardRoutesSchema.optional(),
|
|
177
|
-
customRoutes: z.array(CustomRouteSchema).optional(),
|
|
178
|
-
theme: z
|
|
179
|
-
.object({
|
|
180
|
-
preset: z.string().optional(),
|
|
181
|
-
mode: ThemeModeSchema.optional(),
|
|
182
|
-
custom: z.record(z.string(), z.string()).optional(),
|
|
183
|
-
})
|
|
184
|
-
.optional(),
|
|
185
|
-
identity: DashboardIdentitySchema.optional(),
|
|
186
|
-
devToken: z.string().optional(),
|
|
187
|
-
debug: z.boolean().optional(),
|
|
188
|
-
});
|
|
189
|
-
// =============================================================================
|
|
190
|
-
// Site Schemas (from mdxui/site)
|
|
191
|
-
// =============================================================================
|
|
192
|
-
/**
|
|
193
|
-
* Site root container props
|
|
194
|
-
*/
|
|
195
|
-
export const SitePropsSchema = z.object({
|
|
196
|
-
name: z.string(),
|
|
197
|
-
domain: z.string().optional(),
|
|
198
|
-
theme: ThemeModeSchema.default('system'),
|
|
199
|
-
children: z.any(),
|
|
200
|
-
});
|
|
201
|
-
/**
|
|
202
|
-
* Header props
|
|
203
|
-
*/
|
|
204
|
-
export const HeaderPropsSchema = z.object({
|
|
205
|
-
logo: z.any(),
|
|
206
|
-
nav: z.array(NavItemSchema),
|
|
207
|
-
callToAction: z.string().optional(),
|
|
208
|
-
actions: ActionsPropsSchema.optional(),
|
|
209
|
-
LinkComponent: z.any().optional(),
|
|
210
|
-
});
|
|
211
|
-
/**
|
|
212
|
-
* Footer link group
|
|
213
|
-
*/
|
|
214
|
-
export const FooterLinkGroupSchema = z.object({
|
|
215
|
-
title: z.string(),
|
|
216
|
-
links: z.array(z.object({
|
|
217
|
-
label: z.string(),
|
|
218
|
-
href: z.string(),
|
|
219
|
-
})),
|
|
220
|
-
});
|
|
221
|
-
/**
|
|
222
|
-
* Footer props
|
|
223
|
-
*/
|
|
224
|
-
export const FooterPropsSchema = z.object({
|
|
225
|
-
logo: z.any(),
|
|
226
|
-
links: z.array(FooterLinkGroupSchema),
|
|
227
|
-
social: z
|
|
228
|
-
.array(z.object({
|
|
229
|
-
platform: z.string(),
|
|
230
|
-
href: z.string(),
|
|
231
|
-
icon: z.any().optional(),
|
|
232
|
-
}))
|
|
233
|
-
.optional(),
|
|
234
|
-
copyright: z.string().optional(),
|
|
235
|
-
newsletter: z
|
|
236
|
-
.object({
|
|
237
|
-
headline: z.string(),
|
|
238
|
-
subheadline: z.string(),
|
|
239
|
-
})
|
|
240
|
-
.optional(),
|
|
241
|
-
});
|
|
242
|
-
/**
|
|
243
|
-
* Landing page props
|
|
244
|
-
*/
|
|
245
|
-
export const LandingPagePropsSchema = z.object({
|
|
246
|
-
children: z.any(),
|
|
247
|
-
});
|
|
248
|
-
/**
|
|
249
|
-
* Generic page props
|
|
250
|
-
*/
|
|
251
|
-
export const PagePropsSchema = z.object({
|
|
252
|
-
title: z.string().optional(),
|
|
253
|
-
description: z.string().optional(),
|
|
254
|
-
children: z.any(),
|
|
255
|
-
});
|
|
256
|
-
// =============================================================================
|
|
257
|
-
// Section Schemas (from mdxui/site/props/sections)
|
|
258
|
-
// =============================================================================
|
|
259
|
-
/**
|
|
260
|
-
* Hero section props
|
|
261
|
-
*/
|
|
262
|
-
export const HeroPropsSchema = z.object({
|
|
263
|
-
title: z.string().describe('Main hero headline'),
|
|
264
|
-
subtitle: z.string().optional().describe('Supporting subheadline'),
|
|
265
|
-
badge: z.string().optional().describe('Badge or tag above headline'),
|
|
266
|
-
callToAction: z.string().describe('Primary button text'),
|
|
267
|
-
secondaryCallToAction: z.string().optional().describe('Secondary button text'),
|
|
268
|
-
variant: z.enum(['default', 'centered', 'split', 'code-below', 'video-beside', 'image-split']).default('default'),
|
|
269
|
-
image: z.string().optional(),
|
|
270
|
-
video: z.string().optional(),
|
|
271
|
-
screenshot: z.string().optional(),
|
|
272
|
-
code: z
|
|
273
|
-
.object({
|
|
274
|
-
language: z.string(),
|
|
275
|
-
code: z.string(),
|
|
276
|
-
})
|
|
277
|
-
.optional(),
|
|
278
|
-
actions: ActionsPropsSchema.optional(),
|
|
279
|
-
});
|
|
280
|
-
/**
|
|
281
|
-
* Feature item schema
|
|
282
|
-
*/
|
|
283
|
-
export const FeatureItemSchema = z.object({
|
|
284
|
-
title: z.string().describe('Feature name or title'),
|
|
285
|
-
description: z.string().describe('Feature description'),
|
|
286
|
-
icon: z.any().optional(),
|
|
287
|
-
actions: z.object({ link: ActionPropSchema.optional() }).optional(),
|
|
288
|
-
});
|
|
289
|
-
/**
|
|
290
|
-
* Features section props
|
|
291
|
-
*/
|
|
292
|
-
export const FeaturesPropsSchema = z.object({
|
|
293
|
-
title: z.string().optional(),
|
|
294
|
-
description: z.string().optional(),
|
|
295
|
-
features: z.array(FeatureItemSchema),
|
|
296
|
-
variant: z.enum(['grid', 'list', 'bento']).default('grid'),
|
|
297
|
-
columns: z.number().default(3),
|
|
298
|
-
});
|
|
299
|
-
/**
|
|
300
|
-
* Pricing tier schema
|
|
301
|
-
*/
|
|
302
|
-
export const PricingTierSchema = z.object({
|
|
303
|
-
name: z.string().describe('Tier name like "Starter", "Pro", "Enterprise"'),
|
|
304
|
-
price: z.string().describe('Price display string'),
|
|
305
|
-
description: z.string().optional(),
|
|
306
|
-
features: z.array(z.string()),
|
|
307
|
-
callToAction: z.string(),
|
|
308
|
-
highlighted: z.boolean().default(false),
|
|
309
|
-
actions: ActionsPropsSchema.optional(),
|
|
310
|
-
});
|
|
311
|
-
/**
|
|
312
|
-
* Pricing section props
|
|
313
|
-
*/
|
|
314
|
-
export const PricingPropsSchema = z.object({
|
|
315
|
-
title: z.string().optional(),
|
|
316
|
-
description: z.string().optional(),
|
|
317
|
-
tiers: z.array(PricingTierSchema),
|
|
318
|
-
showToggle: z.boolean().default(false),
|
|
319
|
-
variant: z.enum(['cards', 'comparison-table', 'toggle']).default('cards'),
|
|
320
|
-
});
|
|
321
|
-
/**
|
|
322
|
-
* Testimonial schema
|
|
323
|
-
*/
|
|
324
|
-
export const TestimonialSchema = z.object({
|
|
325
|
-
quote: z.string(),
|
|
326
|
-
author: z.string(),
|
|
327
|
-
title: z.string().optional(),
|
|
328
|
-
company: z.string().optional(),
|
|
329
|
-
avatar: z.string().optional(),
|
|
330
|
-
});
|
|
331
|
-
/**
|
|
332
|
-
* Testimonials section props
|
|
333
|
-
*/
|
|
334
|
-
export const TestimonialsPropsSchema = z.object({
|
|
335
|
-
title: z.string().optional(),
|
|
336
|
-
testimonials: z.array(TestimonialSchema),
|
|
337
|
-
variant: z.enum(['grid', 'carousel', 'masonry']).default('grid'),
|
|
338
|
-
});
|
|
339
|
-
/**
|
|
340
|
-
* FAQ item schema
|
|
341
|
-
*/
|
|
342
|
-
export const FAQItemSchema = z.object({
|
|
343
|
-
question: z.string(),
|
|
344
|
-
answer: z.string(),
|
|
345
|
-
});
|
|
346
|
-
/**
|
|
347
|
-
* FAQ section props
|
|
348
|
-
*/
|
|
349
|
-
export const FAQPropsSchema = z.object({
|
|
350
|
-
title: z.string().optional(),
|
|
351
|
-
items: z.array(FAQItemSchema),
|
|
352
|
-
variant: z.enum(['accordion', 'grid', 'list']).default('accordion'),
|
|
353
|
-
});
|
|
354
|
-
/**
|
|
355
|
-
* CTA section props
|
|
356
|
-
*/
|
|
357
|
-
export const CTASectionPropsSchema = z.object({
|
|
358
|
-
title: z.string(),
|
|
359
|
-
description: z.string().optional(),
|
|
360
|
-
callToAction: z.string(),
|
|
361
|
-
secondaryCallToAction: z.string().optional(),
|
|
362
|
-
variant: z.enum(['simple', 'split', 'centered']).default('centered'),
|
|
363
|
-
actions: ActionsPropsSchema.optional(),
|
|
364
|
-
});
|
|
365
|
-
/**
|
|
366
|
-
* Stat item schema
|
|
367
|
-
*/
|
|
368
|
-
export const StatItemSchema = z.object({
|
|
369
|
-
label: z.string(),
|
|
370
|
-
value: z.union([z.string(), z.number()]),
|
|
371
|
-
description: z.string().optional(),
|
|
372
|
-
});
|
|
373
|
-
/**
|
|
374
|
-
* Stats section props
|
|
375
|
-
*/
|
|
376
|
-
export const StatsPropsSchema = z.object({
|
|
377
|
-
title: z.string().optional(),
|
|
378
|
-
description: z.string().optional(),
|
|
379
|
-
stats: z.array(StatItemSchema),
|
|
380
|
-
variant: z.enum(['simple', 'with-description', 'with-graph']).default('simple'),
|
|
381
|
-
});
|
|
382
|
-
/**
|
|
383
|
-
* Team member schema
|
|
384
|
-
*/
|
|
385
|
-
export const TeamMemberSchema = z.object({
|
|
386
|
-
name: z.string(),
|
|
387
|
-
role: z.string(),
|
|
388
|
-
bio: z.string().optional(),
|
|
389
|
-
avatar: z.string().optional(),
|
|
390
|
-
social: z.record(z.string(), z.string()).optional(),
|
|
391
|
-
});
|
|
392
|
-
/**
|
|
393
|
-
* Team section props
|
|
394
|
-
*/
|
|
395
|
-
export const TeamSectionPropsSchema = z.object({
|
|
396
|
-
title: z.string().optional(),
|
|
397
|
-
description: z.string().optional(),
|
|
398
|
-
members: z.array(TeamMemberSchema),
|
|
399
|
-
variant: z.enum(['grid', 'list', 'cards']).default('grid'),
|
|
400
|
-
columns: z.number().default(3),
|
|
401
|
-
});
|
|
402
|
-
/**
|
|
403
|
-
* Logo item schema
|
|
404
|
-
*/
|
|
405
|
-
export const LogoItemSchema = z.object({
|
|
406
|
-
name: z.string(),
|
|
407
|
-
src: z.string(),
|
|
408
|
-
href: z.string().optional(),
|
|
409
|
-
});
|
|
410
|
-
/**
|
|
411
|
-
* Logos section props
|
|
412
|
-
*/
|
|
413
|
-
export const LogosPropsSchema = z.object({
|
|
414
|
-
title: z.string().optional(),
|
|
415
|
-
logos: z.array(LogoItemSchema),
|
|
416
|
-
variant: z.enum(['simple', 'cards', 'carousel']).default('simple'),
|
|
417
|
-
});
|
|
418
|
-
// =============================================================================
|
|
419
|
-
// App Type Schemas (18 app types from mdxui)
|
|
420
|
-
// =============================================================================
|
|
421
|
-
/**
|
|
422
|
-
* Dashboard app configuration
|
|
423
|
-
*/
|
|
424
|
-
export const DashboardAppSchema = BaseAppSchema.extend({
|
|
425
|
-
config: z
|
|
426
|
-
.object({
|
|
427
|
-
metrics: z.array(z.string()).default(['revenue', 'users', 'growth', 'retention']),
|
|
428
|
-
defaultPeriod: z.enum(['hour', 'day', 'week', 'month', 'quarter', 'year']).default('month'),
|
|
429
|
-
realtime: z.boolean().default(false),
|
|
430
|
-
charts: z.array(z.string()).optional(),
|
|
431
|
-
})
|
|
432
|
-
.optional(),
|
|
433
|
-
});
|
|
434
|
-
/**
|
|
435
|
-
* Developer app configuration
|
|
436
|
-
*/
|
|
437
|
-
export const DeveloperAppSchema = BaseAppSchema.extend({
|
|
438
|
-
config: z
|
|
439
|
-
.object({
|
|
440
|
-
showAPIKeys: z.boolean().default(true),
|
|
441
|
-
showWebhooks: z.boolean().default(true),
|
|
442
|
-
showUsage: z.boolean().default(true),
|
|
443
|
-
showLogs: z.boolean().default(true),
|
|
444
|
-
showDocs: z.boolean().default(true),
|
|
445
|
-
apiBaseUrl: z.string().optional(),
|
|
446
|
-
apiVersions: z.array(z.string()).optional(),
|
|
447
|
-
})
|
|
448
|
-
.optional(),
|
|
449
|
-
});
|
|
450
|
-
/**
|
|
451
|
-
* Admin app configuration
|
|
452
|
-
*/
|
|
453
|
-
export const AdminAppSchema = BaseAppSchema.extend({
|
|
454
|
-
config: z
|
|
455
|
-
.object({
|
|
456
|
-
collections: z.array(z.string()).default(['users', 'roles', 'permissions']),
|
|
457
|
-
showUsers: z.boolean().default(true),
|
|
458
|
-
showRoles: z.boolean().default(true),
|
|
459
|
-
showAuditLogs: z.boolean().default(true),
|
|
460
|
-
showSettings: z.boolean().default(true),
|
|
461
|
-
enableBulkOps: z.boolean().default(true),
|
|
462
|
-
})
|
|
463
|
-
.optional(),
|
|
464
|
-
});
|
|
465
|
-
/**
|
|
466
|
-
* SaaS app configuration
|
|
467
|
-
*/
|
|
468
|
-
export const SaaSAppSchema = BaseAppSchema.extend({
|
|
469
|
-
config: z
|
|
470
|
-
.object({
|
|
471
|
-
multiTenant: z.boolean().default(true),
|
|
472
|
-
showWorkspaceSwitcher: z.boolean().default(true),
|
|
473
|
-
showBilling: z.boolean().default(true),
|
|
474
|
-
showTeam: z.boolean().default(true),
|
|
475
|
-
showIntegrations: z.boolean().default(true),
|
|
476
|
-
pricingTiers: z.array(z.string()).optional(),
|
|
477
|
-
features: z.record(z.string(), z.boolean()).optional(),
|
|
478
|
-
})
|
|
479
|
-
.optional(),
|
|
480
|
-
});
|
|
481
|
-
/**
|
|
482
|
-
* Data app configuration
|
|
483
|
-
*/
|
|
484
|
-
export const DataAppSchema = BaseAppSchema.extend({
|
|
485
|
-
config: z
|
|
486
|
-
.object({
|
|
487
|
-
showDatasets: z.boolean().default(true),
|
|
488
|
-
showSources: z.boolean().default(true),
|
|
489
|
-
showPipelines: z.boolean().default(true),
|
|
490
|
-
showQueryExplorer: z.boolean().default(true),
|
|
491
|
-
showQuality: z.boolean().default(true),
|
|
492
|
-
sourceTypes: z.array(z.string()).optional(),
|
|
493
|
-
maxDatasetSize: z.string().optional(),
|
|
494
|
-
})
|
|
495
|
-
.optional(),
|
|
496
|
-
});
|
|
497
|
-
/**
|
|
498
|
-
* Headless app configuration
|
|
499
|
-
*/
|
|
500
|
-
export const HeadlessAppSchema = BaseAppSchema.extend({
|
|
501
|
-
config: z
|
|
502
|
-
.object({
|
|
503
|
-
showMCPServers: z.boolean().default(true),
|
|
504
|
-
showAgents: z.boolean().default(true),
|
|
505
|
-
showPlayground: z.boolean().default(true),
|
|
506
|
-
showSchema: z.boolean().default(true),
|
|
507
|
-
graphqlEndpoint: z.string().optional(),
|
|
508
|
-
restEndpoint: z.string().optional(),
|
|
509
|
-
protocols: z.array(z.enum(['rest', 'graphql', 'grpc', 'websocket'])).optional(),
|
|
510
|
-
})
|
|
511
|
-
.optional(),
|
|
512
|
-
});
|
|
513
|
-
/**
|
|
514
|
-
* CRM app configuration
|
|
515
|
-
*/
|
|
516
|
-
export const CRMAppSchema = BaseAppSchema.extend({
|
|
517
|
-
config: z
|
|
518
|
-
.object({
|
|
519
|
-
showContacts: z.boolean().default(true),
|
|
520
|
-
showCompanies: z.boolean().default(true),
|
|
521
|
-
showDeals: z.boolean().default(true),
|
|
522
|
-
showPipeline: z.boolean().default(true),
|
|
523
|
-
showActivities: z.boolean().default(true),
|
|
524
|
-
showEmail: z.boolean().default(false),
|
|
525
|
-
pipelineStages: z.array(z.string()).optional(),
|
|
526
|
-
currency: z.string().default('USD'),
|
|
527
|
-
})
|
|
528
|
-
.optional(),
|
|
529
|
-
});
|
|
530
|
-
/**
|
|
531
|
-
* Booking app configuration
|
|
532
|
-
*/
|
|
533
|
-
export const BookingAppSchema = BaseAppSchema.extend({
|
|
534
|
-
config: z
|
|
535
|
-
.object({
|
|
536
|
-
showCalendar: z.boolean().default(true),
|
|
537
|
-
showAppointments: z.boolean().default(true),
|
|
538
|
-
showAvailability: z.boolean().default(true),
|
|
539
|
-
showBookingPages: z.boolean().default(true),
|
|
540
|
-
enableReminders: z.boolean().default(true),
|
|
541
|
-
enableWaitingList: z.boolean().default(false),
|
|
542
|
-
durationOptions: z.array(z.number()).default([15, 30, 45, 60]),
|
|
543
|
-
timezone: z.string().optional(),
|
|
544
|
-
})
|
|
545
|
-
.optional(),
|
|
546
|
-
});
|
|
547
|
-
/**
|
|
548
|
-
* Support app configuration
|
|
549
|
-
*/
|
|
550
|
-
export const SupportAppSchema = BaseAppSchema.extend({
|
|
551
|
-
config: z
|
|
552
|
-
.object({
|
|
553
|
-
showInbox: z.boolean().default(true),
|
|
554
|
-
showTickets: z.boolean().default(true),
|
|
555
|
-
showKnowledgeBase: z.boolean().default(true),
|
|
556
|
-
showLiveChat: z.boolean().default(false),
|
|
557
|
-
showCustomers: z.boolean().default(true),
|
|
558
|
-
ticketStatuses: z.array(z.string()).default(['open', 'pending', 'resolved', 'closed']),
|
|
559
|
-
ticketPriorities: z.array(z.string()).default(['low', 'medium', 'high', 'urgent']),
|
|
560
|
-
enableSLA: z.boolean().default(false),
|
|
561
|
-
})
|
|
562
|
-
.optional(),
|
|
563
|
-
});
|
|
564
|
-
/**
|
|
565
|
-
* Agency app configuration
|
|
566
|
-
*/
|
|
567
|
-
export const AgencyAppSchema = BaseAppSchema.extend({
|
|
568
|
-
config: z
|
|
569
|
-
.object({
|
|
570
|
-
showClients: z.boolean().default(true),
|
|
571
|
-
showProjects: z.boolean().default(true),
|
|
572
|
-
showTasks: z.boolean().default(true),
|
|
573
|
-
showTimeTracking: z.boolean().default(true),
|
|
574
|
-
showInvoicing: z.boolean().default(true),
|
|
575
|
-
showProposals: z.boolean().default(false),
|
|
576
|
-
projectStatuses: z.array(z.string()).default(['planning', 'active', 'on-hold', 'completed']),
|
|
577
|
-
timeTrackingMethod: z.enum(['manual', 'timer', 'both']).default('both'),
|
|
578
|
-
})
|
|
579
|
-
.optional(),
|
|
580
|
-
});
|
|
581
|
-
/**
|
|
582
|
-
* Ops app configuration
|
|
583
|
-
*/
|
|
584
|
-
export const OpsAppSchema = BaseAppSchema.extend({
|
|
585
|
-
config: z
|
|
586
|
-
.object({
|
|
587
|
-
showIncidents: z.boolean().default(true),
|
|
588
|
-
showMonitoring: z.boolean().default(true),
|
|
589
|
-
showOnCall: z.boolean().default(true),
|
|
590
|
-
showStatusPage: z.boolean().default(true),
|
|
591
|
-
showPostmortems: z.boolean().default(false),
|
|
592
|
-
severityLevels: z.array(z.string()).default(['sev1', 'sev2', 'sev3', 'sev4']),
|
|
593
|
-
alertChannels: z.array(z.string()).optional(),
|
|
594
|
-
enableAutoEscalation: z.boolean().default(true),
|
|
595
|
-
})
|
|
596
|
-
.optional(),
|
|
597
|
-
});
|
|
598
|
-
/**
|
|
599
|
-
* Agent app configuration
|
|
600
|
-
*/
|
|
601
|
-
export const AgentAppSchema = BaseAppSchema.extend({
|
|
602
|
-
config: z
|
|
603
|
-
.object({
|
|
604
|
-
showAgents: z.boolean().default(true),
|
|
605
|
-
showMCPTools: z.boolean().default(true),
|
|
606
|
-
showPrompts: z.boolean().default(true),
|
|
607
|
-
showRuns: z.boolean().default(true),
|
|
608
|
-
showTrainingData: z.boolean().default(false),
|
|
609
|
-
modelProviders: z.array(z.string()).optional(),
|
|
610
|
-
agentTypes: z.array(z.string()).optional(),
|
|
611
|
-
enablePlayground: z.boolean().default(true),
|
|
612
|
-
})
|
|
613
|
-
.optional(),
|
|
614
|
-
});
|
|
615
|
-
/**
|
|
616
|
-
* Workflow app configuration
|
|
617
|
-
*/
|
|
618
|
-
export const WorkflowAppSchema = BaseAppSchema.extend({
|
|
619
|
-
config: z
|
|
620
|
-
.object({
|
|
621
|
-
showWorkflows: z.boolean().default(true),
|
|
622
|
-
showBuilder: z.boolean().default(true),
|
|
623
|
-
showRuns: z.boolean().default(true),
|
|
624
|
-
showIntegrations: z.boolean().default(true),
|
|
625
|
-
showTemplates: z.boolean().default(true),
|
|
626
|
-
triggers: z.array(z.string()).optional(),
|
|
627
|
-
actions: z.array(z.string()).optional(),
|
|
628
|
-
enableVisualBuilder: z.boolean().default(true),
|
|
629
|
-
})
|
|
630
|
-
.optional(),
|
|
631
|
-
});
|
|
632
|
-
/**
|
|
633
|
-
* Infra app configuration
|
|
634
|
-
*/
|
|
635
|
-
export const InfraAppSchema = BaseAppSchema.extend({
|
|
636
|
-
config: z
|
|
637
|
-
.object({
|
|
638
|
-
showCompute: z.boolean().default(true),
|
|
639
|
-
showStorage: z.boolean().default(true),
|
|
640
|
-
showNetwork: z.boolean().default(true),
|
|
641
|
-
showDatabases: z.boolean().default(true),
|
|
642
|
-
showMonitoring: z.boolean().default(true),
|
|
643
|
-
showCosts: z.boolean().default(true),
|
|
644
|
-
cloudProviders: z.array(z.string()).optional(),
|
|
645
|
-
enableIaC: z.boolean().default(false),
|
|
646
|
-
})
|
|
647
|
-
.optional(),
|
|
648
|
-
});
|
|
649
|
-
/**
|
|
650
|
-
* Platform app configuration
|
|
651
|
-
*/
|
|
652
|
-
export const PlatformAppSchema = BaseAppSchema.extend({
|
|
653
|
-
config: z
|
|
654
|
-
.object({
|
|
655
|
-
showApps: z.boolean().default(true),
|
|
656
|
-
showDeployments: z.boolean().default(true),
|
|
657
|
-
showEnvironments: z.boolean().default(true),
|
|
658
|
-
showServices: z.boolean().default(true),
|
|
659
|
-
showPipelines: z.boolean().default(true),
|
|
660
|
-
showObservability: z.boolean().default(true),
|
|
661
|
-
environments: z.array(z.string()).default(['development', 'staging', 'production']),
|
|
662
|
-
enableGitOps: z.boolean().default(false),
|
|
663
|
-
})
|
|
664
|
-
.optional(),
|
|
665
|
-
});
|
|
666
|
-
/**
|
|
667
|
-
* Client Portal app configuration
|
|
668
|
-
*/
|
|
669
|
-
export const ClientPortalAppSchema = BaseAppSchema.extend({
|
|
670
|
-
config: z
|
|
671
|
-
.object({
|
|
672
|
-
showProjects: z.boolean().default(true),
|
|
673
|
-
showInvoices: z.boolean().default(true),
|
|
674
|
-
showDeliverables: z.boolean().default(true),
|
|
675
|
-
showMessages: z.boolean().default(true),
|
|
676
|
-
showSupport: z.boolean().default(false),
|
|
677
|
-
enableFeedback: z.boolean().default(true),
|
|
678
|
-
enableUploads: z.boolean().default(true),
|
|
679
|
-
customBranding: z.boolean().default(true),
|
|
680
|
-
})
|
|
681
|
-
.optional(),
|
|
682
|
-
});
|
|
683
|
-
/**
|
|
684
|
-
* VibeCode app configuration
|
|
685
|
-
*/
|
|
686
|
-
export const VibeCodeAppSchema = BaseAppSchema.extend({
|
|
687
|
-
config: z
|
|
688
|
-
.object({
|
|
689
|
-
showChat: z.boolean().default(true),
|
|
690
|
-
showPreview: z.boolean().default(true),
|
|
691
|
-
showCode: z.boolean().default(true),
|
|
692
|
-
defaultLayout: z.enum(['horizontal', 'vertical', 'grid']).default('horizontal'),
|
|
693
|
-
enableAIGeneration: z.boolean().default(true),
|
|
694
|
-
enableLivePreview: z.boolean().default(true),
|
|
695
|
-
languages: z.array(z.string()).optional(),
|
|
696
|
-
editorThemes: z.array(z.string()).optional(),
|
|
697
|
-
})
|
|
698
|
-
.optional(),
|
|
699
|
-
});
|
|
700
|
-
/**
|
|
701
|
-
* Mail app configuration
|
|
702
|
-
*/
|
|
703
|
-
export const MailAppSchema = BaseAppSchema.extend({
|
|
704
|
-
config: z
|
|
705
|
-
.object({
|
|
706
|
-
showInbox: z.boolean().default(true),
|
|
707
|
-
showSent: z.boolean().default(true),
|
|
708
|
-
showDrafts: z.boolean().default(true),
|
|
709
|
-
showSpam: z.boolean().default(true),
|
|
710
|
-
showTrash: z.boolean().default(true),
|
|
711
|
-
showArchive: z.boolean().default(true),
|
|
712
|
-
showStarred: z.boolean().default(true),
|
|
713
|
-
showSnoozed: z.boolean().default(true),
|
|
714
|
-
showScheduled: z.boolean().default(true),
|
|
715
|
-
enableAICompose: z.boolean().default(true),
|
|
716
|
-
enableAIReply: z.boolean().default(true),
|
|
717
|
-
enableAISummarize: z.boolean().default(true),
|
|
718
|
-
enableThreading: z.boolean().default(true),
|
|
719
|
-
enableLabels: z.boolean().default(true),
|
|
720
|
-
enableSnooze: z.boolean().default(true),
|
|
721
|
-
enableScheduling: z.boolean().default(true),
|
|
722
|
-
folders: z.array(z.string()).default(['inbox', 'sent', 'drafts', 'spam', 'trash', 'archive']),
|
|
723
|
-
maxAttachmentSize: z.number().optional(),
|
|
724
|
-
providers: z.array(z.string()).optional(),
|
|
725
|
-
})
|
|
726
|
-
.optional(),
|
|
727
|
-
});
|
|
728
|
-
// =============================================================================
|
|
729
|
-
// Union of all app type schemas
|
|
730
|
-
// =============================================================================
|
|
731
|
-
export const AppTypeSchema = z.union([
|
|
732
|
-
DashboardAppSchema,
|
|
733
|
-
DeveloperAppSchema,
|
|
734
|
-
AdminAppSchema,
|
|
735
|
-
SaaSAppSchema,
|
|
736
|
-
DataAppSchema,
|
|
737
|
-
HeadlessAppSchema,
|
|
738
|
-
CRMAppSchema,
|
|
739
|
-
BookingAppSchema,
|
|
740
|
-
SupportAppSchema,
|
|
741
|
-
AgencyAppSchema,
|
|
742
|
-
OpsAppSchema,
|
|
743
|
-
AgentAppSchema,
|
|
744
|
-
WorkflowAppSchema,
|
|
745
|
-
InfraAppSchema,
|
|
746
|
-
PlatformAppSchema,
|
|
747
|
-
ClientPortalAppSchema,
|
|
748
|
-
VibeCodeAppSchema,
|
|
749
|
-
MailAppSchema,
|
|
750
|
-
]);
|
|
9
|
+
// Re-export everything from mdxui main
|
|
10
|
+
export * from 'mdxui';
|
|
751
11
|
//# sourceMappingURL=mdxui.js.map
|