@zentto/studio-core 0.1.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.
- package/dist/__tests__/data-binding.test.d.ts +2 -0
- package/dist/__tests__/data-binding.test.d.ts.map +1 -0
- package/dist/__tests__/data-binding.test.js +86 -0
- package/dist/__tests__/data-binding.test.js.map +1 -0
- package/dist/__tests__/event-bus.test.d.ts +2 -0
- package/dist/__tests__/event-bus.test.d.ts.map +1 -0
- package/dist/__tests__/event-bus.test.js +70 -0
- package/dist/__tests__/event-bus.test.js.map +1 -0
- package/dist/__tests__/expression.test.d.ts +2 -0
- package/dist/__tests__/expression.test.d.ts.map +1 -0
- package/dist/__tests__/expression.test.js +173 -0
- package/dist/__tests__/expression.test.js.map +1 -0
- package/dist/__tests__/schema.test.d.ts +2 -0
- package/dist/__tests__/schema.test.d.ts.map +1 -0
- package/dist/__tests__/schema.test.js +91 -0
- package/dist/__tests__/schema.test.js.map +1 -0
- package/dist/__tests__/validation.test.d.ts +2 -0
- package/dist/__tests__/validation.test.d.ts.map +1 -0
- package/dist/__tests__/validation.test.js +70 -0
- package/dist/__tests__/validation.test.js.map +1 -0
- package/dist/app-types.d.ts +184 -0
- package/dist/app-types.d.ts.map +1 -0
- package/dist/app-types.js +4 -0
- package/dist/app-types.js.map +1 -0
- package/dist/data/data-source.d.ts +16 -0
- package/dist/data/data-source.d.ts.map +1 -0
- package/dist/data/data-source.js +139 -0
- package/dist/data/data-source.js.map +1 -0
- package/dist/data/data-transformer.d.ts +15 -0
- package/dist/data/data-transformer.d.ts.map +1 -0
- package/dist/data/data-transformer.js +58 -0
- package/dist/data/data-transformer.js.map +1 -0
- package/dist/engine/action-engine.d.ts +18 -0
- package/dist/engine/action-engine.d.ts.map +1 -0
- package/dist/engine/action-engine.js +97 -0
- package/dist/engine/action-engine.js.map +1 -0
- package/dist/engine/data-binding.d.ts +46 -0
- package/dist/engine/data-binding.d.ts.map +1 -0
- package/dist/engine/data-binding.js +198 -0
- package/dist/engine/data-binding.js.map +1 -0
- package/dist/engine/expression.d.ts +39 -0
- package/dist/engine/expression.d.ts.map +1 -0
- package/dist/engine/expression.js +630 -0
- package/dist/engine/expression.js.map +1 -0
- package/dist/engine/rule-engine.d.ts +23 -0
- package/dist/engine/rule-engine.d.ts.map +1 -0
- package/dist/engine/rule-engine.js +91 -0
- package/dist/engine/rule-engine.js.map +1 -0
- package/dist/engine/validation.d.ts +16 -0
- package/dist/engine/validation.d.ts.map +1 -0
- package/dist/engine/validation.js +116 -0
- package/dist/engine/validation.js.map +1 -0
- package/dist/events/event-bus.d.ts +16 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/event-bus.js +51 -0
- package/dist/events/event-bus.js.map +1 -0
- package/dist/i18n/en.d.ts +29 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +29 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/es.d.ts +29 -0
- package/dist/i18n/es.d.ts.map +1 -0
- package/dist/i18n/es.js +29 -0
- package/dist/i18n/es.js.map +1 -0
- package/dist/i18n/i18n.d.ts +14 -0
- package/dist/i18n/i18n.d.ts.map +1 -0
- package/dist/i18n/i18n.js +32 -0
- package/dist/i18n/i18n.js.map +1 -0
- package/dist/i18n/pt.d.ts +29 -0
- package/dist/i18n/pt.d.ts.map +1 -0
- package/dist/i18n/pt.js +29 -0
- package/dist/i18n/pt.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/grid-solver.d.ts +18 -0
- package/dist/layout/grid-solver.d.ts.map +1 -0
- package/dist/layout/grid-solver.js +72 -0
- package/dist/layout/grid-solver.js.map +1 -0
- package/dist/persistence/flavor-manager.d.ts +17 -0
- package/dist/persistence/flavor-manager.d.ts.map +1 -0
- package/dist/persistence/flavor-manager.js +63 -0
- package/dist/persistence/flavor-manager.js.map +1 -0
- package/dist/persistence/schema-store.d.ts +35 -0
- package/dist/persistence/schema-store.d.ts.map +1 -0
- package/dist/persistence/schema-store.js +142 -0
- package/dist/persistence/schema-store.js.map +1 -0
- package/dist/registry/field-registry.d.ts +12 -0
- package/dist/registry/field-registry.d.ts.map +1 -0
- package/dist/registry/field-registry.js +91 -0
- package/dist/registry/field-registry.js.map +1 -0
- package/dist/schema/studio-schema.d.ts +1196 -0
- package/dist/schema/studio-schema.d.ts.map +1 -0
- package/dist/schema/studio-schema.js +191 -0
- package/dist/schema/studio-schema.js.map +1 -0
- package/dist/templates/app-templates.d.ts +35 -0
- package/dist/templates/app-templates.d.ts.map +1 -0
- package/dist/templates/app-templates.js +306 -0
- package/dist/templates/app-templates.js.map +1 -0
- package/dist/types.d.ts +270 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio-schema.d.ts","sourceRoot":"","sources":["../../src/schema/studio-schema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe,kbAc1B,CAAC;AAgLH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchC,CAAC;AAIH,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE3C;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAE/C"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
// @zentto/studio-core — Zod schema validation for StudioSchema
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
// ─── Field Types ──────────────────────────────────────────────────
|
|
4
|
+
export const fieldTypeSchema = z.enum([
|
|
5
|
+
'text', 'textarea', 'number', 'currency', 'percentage',
|
|
6
|
+
'date', 'time', 'datetime',
|
|
7
|
+
'select', 'multiselect', 'radio', 'checkbox', 'switch',
|
|
8
|
+
'file', 'image',
|
|
9
|
+
'color', 'richtext', 'code', 'signature',
|
|
10
|
+
'qr-scanner', 'barcode-scanner',
|
|
11
|
+
'address', 'phone', 'email', 'url', 'password',
|
|
12
|
+
'slider', 'rating', 'tags',
|
|
13
|
+
'lookup',
|
|
14
|
+
'datagrid', 'report', 'chart',
|
|
15
|
+
'html', 'separator', 'heading', 'media',
|
|
16
|
+
'chips', 'treeview',
|
|
17
|
+
'custom',
|
|
18
|
+
]);
|
|
19
|
+
// ─── Validation Rules ─────────────────────────────────────────────
|
|
20
|
+
const validationRuleSchema = z.object({
|
|
21
|
+
type: z.enum(['required', 'min', 'max', 'minLength', 'maxLength', 'pattern', 'email', 'url', 'custom']),
|
|
22
|
+
value: z.unknown().optional(),
|
|
23
|
+
message: z.string().optional(),
|
|
24
|
+
expression: z.string().optional(),
|
|
25
|
+
});
|
|
26
|
+
// ─── Field Config ─────────────────────────────────────────────────
|
|
27
|
+
const fieldConfigSchema = z.object({
|
|
28
|
+
id: z.string().min(1),
|
|
29
|
+
type: fieldTypeSchema,
|
|
30
|
+
field: z.string().min(1),
|
|
31
|
+
label: z.string().optional(),
|
|
32
|
+
placeholder: z.string().optional(),
|
|
33
|
+
defaultValue: z.unknown().optional(),
|
|
34
|
+
required: z.boolean().optional(),
|
|
35
|
+
readOnly: z.boolean().optional(),
|
|
36
|
+
disabled: z.boolean().optional(),
|
|
37
|
+
hidden: z.boolean().optional(),
|
|
38
|
+
width: z.union([z.string(), z.number()]).optional(),
|
|
39
|
+
colSpan: z.number().int().min(1).optional(),
|
|
40
|
+
validation: z.array(validationRuleSchema).optional(),
|
|
41
|
+
visibilityRule: z.string().optional(),
|
|
42
|
+
computedValue: z.string().optional(),
|
|
43
|
+
style: z.record(z.string(), z.string()).optional(),
|
|
44
|
+
cssClass: z.string().optional(),
|
|
45
|
+
props: z.record(z.string(), z.unknown()).optional(),
|
|
46
|
+
i18nKey: z.string().optional(),
|
|
47
|
+
helpText: z.string().optional(),
|
|
48
|
+
});
|
|
49
|
+
// ─── Layout ───────────────────────────────────────────────────────
|
|
50
|
+
const responsiveBreakpointSchema = z.object({
|
|
51
|
+
maxWidth: z.number().positive(),
|
|
52
|
+
columns: z.number().int().min(1),
|
|
53
|
+
});
|
|
54
|
+
const layoutConfigSchema = z.object({
|
|
55
|
+
type: z.enum(['form', 'grid', 'tabs', 'wizard', 'accordion', 'dashboard', 'master-detail']),
|
|
56
|
+
columns: z.number().int().min(1).optional(),
|
|
57
|
+
gap: z.number().min(0).optional(),
|
|
58
|
+
labelPosition: z.enum(['top', 'left', 'inline']).optional(),
|
|
59
|
+
responsive: z.array(responsiveBreakpointSchema).optional(),
|
|
60
|
+
});
|
|
61
|
+
// ─── Sections ─────────────────────────────────────────────────────
|
|
62
|
+
const sectionSchema = z.object({
|
|
63
|
+
id: z.string().min(1),
|
|
64
|
+
title: z.string().optional(),
|
|
65
|
+
description: z.string().optional(),
|
|
66
|
+
icon: z.string().optional(),
|
|
67
|
+
fields: z.array(fieldConfigSchema),
|
|
68
|
+
collapsible: z.boolean().optional(),
|
|
69
|
+
collapsed: z.boolean().optional(),
|
|
70
|
+
columns: z.number().int().min(1).optional(),
|
|
71
|
+
visibilityRule: z.string().optional(),
|
|
72
|
+
validationRule: z.string().optional(),
|
|
73
|
+
});
|
|
74
|
+
// ─── Data Sources ─────────────────────────────────────────────────
|
|
75
|
+
const paginationConfigSchema = z.object({
|
|
76
|
+
type: z.enum(['offset', 'cursor']),
|
|
77
|
+
pageSize: z.number().int().positive(),
|
|
78
|
+
pageSizeParam: z.string().optional(),
|
|
79
|
+
pageParam: z.string().optional(),
|
|
80
|
+
cursorParam: z.string().optional(),
|
|
81
|
+
});
|
|
82
|
+
const dataSourceConfigSchema = z.object({
|
|
83
|
+
id: z.string().min(1),
|
|
84
|
+
name: z.string().min(1),
|
|
85
|
+
type: z.enum(['rest', 'graphql', 'static', 'computed']),
|
|
86
|
+
url: z.string().optional(),
|
|
87
|
+
method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']).optional(),
|
|
88
|
+
headers: z.record(z.string(), z.string()).optional(),
|
|
89
|
+
body: z.unknown().optional(),
|
|
90
|
+
transform: z.string().optional(),
|
|
91
|
+
autoFetch: z.boolean().optional(),
|
|
92
|
+
refreshInterval: z.number().int().positive().optional(),
|
|
93
|
+
dependsOn: z.array(z.string()).optional(),
|
|
94
|
+
pagination: paginationConfigSchema.optional(),
|
|
95
|
+
staticData: z.unknown().optional(),
|
|
96
|
+
});
|
|
97
|
+
// ─── Actions ──────────────────────────────────────────────────────
|
|
98
|
+
const actionConfigSchema = z.object({
|
|
99
|
+
id: z.string().min(1),
|
|
100
|
+
type: z.enum(['submit', 'apiCall', 'navigate', 'openModal', 'print', 'reset', 'custom']),
|
|
101
|
+
label: z.string().min(1),
|
|
102
|
+
icon: z.string().optional(),
|
|
103
|
+
variant: z.enum(['primary', 'secondary', 'danger', 'ghost']).optional(),
|
|
104
|
+
position: z.enum(['top', 'bottom', 'inline']).optional(),
|
|
105
|
+
disabled: z.boolean().optional(),
|
|
106
|
+
disabledRule: z.string().optional(),
|
|
107
|
+
confirmMessage: z.string().optional(),
|
|
108
|
+
url: z.string().optional(),
|
|
109
|
+
method: z.string().optional(),
|
|
110
|
+
headers: z.record(z.string(), z.string()).optional(),
|
|
111
|
+
navigateTo: z.string().optional(),
|
|
112
|
+
schemaId: z.string().optional(),
|
|
113
|
+
eventName: z.string().optional(),
|
|
114
|
+
successMessage: z.string().optional(),
|
|
115
|
+
errorMessage: z.string().optional(),
|
|
116
|
+
});
|
|
117
|
+
// ─── Rules ────────────────────────────────────────────────────────
|
|
118
|
+
const ruleActionSchema = z.object({
|
|
119
|
+
type: z.enum(['show', 'hide', 'enable', 'disable', 'setValue', 'setStyle', 'validate', 'setRequired']),
|
|
120
|
+
target: z.string().min(1),
|
|
121
|
+
value: z.unknown().optional(),
|
|
122
|
+
});
|
|
123
|
+
const ruleSchema = z.object({
|
|
124
|
+
id: z.string().min(1),
|
|
125
|
+
name: z.string().optional(),
|
|
126
|
+
condition: z.string().min(1),
|
|
127
|
+
actions: z.array(ruleActionSchema).min(1),
|
|
128
|
+
priority: z.number().int().optional(),
|
|
129
|
+
});
|
|
130
|
+
// ─── Permissions / Flavors ────────────────────────────────────────
|
|
131
|
+
const flavorOverrideSchema = z.object({
|
|
132
|
+
fieldId: z.string().min(1),
|
|
133
|
+
hidden: z.boolean().optional(),
|
|
134
|
+
readOnly: z.boolean().optional(),
|
|
135
|
+
disabled: z.boolean().optional(),
|
|
136
|
+
defaultValue: z.unknown().optional(),
|
|
137
|
+
label: z.string().optional(),
|
|
138
|
+
});
|
|
139
|
+
const flavorSchema = z.object({
|
|
140
|
+
id: z.string().min(1),
|
|
141
|
+
name: z.string().min(1),
|
|
142
|
+
description: z.string().optional(),
|
|
143
|
+
roles: z.array(z.string()).min(1),
|
|
144
|
+
overrides: z.array(flavorOverrideSchema),
|
|
145
|
+
});
|
|
146
|
+
const permissionConfigSchema = z.object({
|
|
147
|
+
flavors: z.array(flavorSchema),
|
|
148
|
+
defaultFlavorId: z.string().optional(),
|
|
149
|
+
});
|
|
150
|
+
// ─── Theme ────────────────────────────────────────────────────────
|
|
151
|
+
const themeConfigSchema = z.object({
|
|
152
|
+
mode: z.enum(['light', 'dark', 'auto']).optional(),
|
|
153
|
+
primaryColor: z.string().optional(),
|
|
154
|
+
accentColor: z.string().optional(),
|
|
155
|
+
borderRadius: z.number().min(0).optional(),
|
|
156
|
+
fontFamily: z.string().optional(),
|
|
157
|
+
fontSize: z.number().positive().optional(),
|
|
158
|
+
spacing: z.number().min(0).optional(),
|
|
159
|
+
tokens: z.record(z.string(), z.string()).optional(),
|
|
160
|
+
});
|
|
161
|
+
// ─── i18n ─────────────────────────────────────────────────────────
|
|
162
|
+
const i18nConfigSchema = z.object({
|
|
163
|
+
defaultLocale: z.string().min(2),
|
|
164
|
+
translations: z.record(z.string(), z.record(z.string(), z.string())).optional(),
|
|
165
|
+
});
|
|
166
|
+
// ─── StudioSchema (Root) ──────────────────────────────────────────
|
|
167
|
+
export const studioSchemaValidator = z.object({
|
|
168
|
+
id: z.string().min(1),
|
|
169
|
+
version: z.string().min(1),
|
|
170
|
+
title: z.string().min(1),
|
|
171
|
+
description: z.string().optional(),
|
|
172
|
+
layout: layoutConfigSchema,
|
|
173
|
+
theme: themeConfigSchema.optional(),
|
|
174
|
+
dataSources: z.array(dataSourceConfigSchema).optional(),
|
|
175
|
+
sections: z.array(sectionSchema).min(1),
|
|
176
|
+
actions: z.array(actionConfigSchema).optional(),
|
|
177
|
+
rules: z.array(ruleSchema).optional(),
|
|
178
|
+
permissions: permissionConfigSchema.optional(),
|
|
179
|
+
i18n: i18nConfigSchema.optional(),
|
|
180
|
+
meta: z.record(z.string(), z.unknown()).optional(),
|
|
181
|
+
});
|
|
182
|
+
// ─── Validation Functions ─────────────────────────────────────────
|
|
183
|
+
/** Validate a StudioSchema, returns parsed schema or throws ZodError */
|
|
184
|
+
export function validateSchema(data) {
|
|
185
|
+
return studioSchemaValidator.parse(data);
|
|
186
|
+
}
|
|
187
|
+
/** Safe validation — returns { success, data, error } */
|
|
188
|
+
export function safeValidateSchema(data) {
|
|
189
|
+
return studioSchemaValidator.safeParse(data);
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=studio-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio-schema.js","sourceRoot":"","sources":["../../src/schema/studio-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { AppConfig } from '../app-types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Blank app template — minimal starting point
|
|
4
|
+
*/
|
|
5
|
+
export declare const TEMPLATE_BLANK: AppConfig;
|
|
6
|
+
/**
|
|
7
|
+
* CRM template — customer management app
|
|
8
|
+
*/
|
|
9
|
+
export declare const TEMPLATE_CRM: AppConfig;
|
|
10
|
+
/**
|
|
11
|
+
* E-Commerce Admin template — product/order management
|
|
12
|
+
*/
|
|
13
|
+
export declare const TEMPLATE_ECOMMERCE: AppConfig;
|
|
14
|
+
/**
|
|
15
|
+
* HR/Nomina template — employee management
|
|
16
|
+
*/
|
|
17
|
+
export declare const TEMPLATE_HR: AppConfig;
|
|
18
|
+
/** All available templates */
|
|
19
|
+
export declare const APP_TEMPLATES: {
|
|
20
|
+
readonly blank: AppConfig;
|
|
21
|
+
readonly crm: AppConfig;
|
|
22
|
+
readonly ecommerce: AppConfig;
|
|
23
|
+
readonly hr: AppConfig;
|
|
24
|
+
};
|
|
25
|
+
export type AppTemplateId = keyof typeof APP_TEMPLATES;
|
|
26
|
+
/** Get a template by ID (returns a deep clone) */
|
|
27
|
+
export declare function getAppTemplate(id: AppTemplateId): AppConfig;
|
|
28
|
+
/** List available templates with metadata */
|
|
29
|
+
export declare function listAppTemplates(): {
|
|
30
|
+
id: string;
|
|
31
|
+
title: string;
|
|
32
|
+
description: string;
|
|
33
|
+
icon: string;
|
|
34
|
+
}[];
|
|
35
|
+
//# sourceMappingURL=app-templates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-templates.d.ts","sourceRoot":"","sources":["../../src/templates/app-templates.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAkB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,SAyF1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SA0DhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,SAsGzB,CAAC;AAEF,8BAA8B;AAC9B,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,aAAa,CAAC;AAEvD,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,EAAE,EAAE,aAAa,GAAG,SAAS,CAE3D;AAED,6CAA6C;AAC7C,wBAAgB,gBAAgB,IAAI;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAOrG"}
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
// @zentto/studio-core — Pre-built AppConfig templates
|
|
2
|
+
// Users can start from these and customize
|
|
3
|
+
/**
|
|
4
|
+
* Blank app template — minimal starting point
|
|
5
|
+
*/
|
|
6
|
+
export const TEMPLATE_BLANK = {
|
|
7
|
+
id: 'blank-app',
|
|
8
|
+
version: '1.0.0',
|
|
9
|
+
branding: {
|
|
10
|
+
title: 'Mi Aplicacion',
|
|
11
|
+
subtitle: '',
|
|
12
|
+
homeSegment: 'home',
|
|
13
|
+
sidebarStyle: 'dark',
|
|
14
|
+
},
|
|
15
|
+
navigation: [
|
|
16
|
+
{ segment: 'home', title: 'Inicio', icon: '🏠' },
|
|
17
|
+
],
|
|
18
|
+
pages: [
|
|
19
|
+
{
|
|
20
|
+
id: 'home', segment: 'home', title: 'Inicio',
|
|
21
|
+
content: 'empty',
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* CRM template — customer management app
|
|
27
|
+
*/
|
|
28
|
+
export const TEMPLATE_CRM = {
|
|
29
|
+
id: 'crm-app',
|
|
30
|
+
version: '1.0.0',
|
|
31
|
+
branding: {
|
|
32
|
+
title: 'CRM',
|
|
33
|
+
subtitle: 'Gestion de Clientes',
|
|
34
|
+
homeSegment: 'dashboard',
|
|
35
|
+
primaryColor: '#3498db',
|
|
36
|
+
sidebarStyle: 'dark',
|
|
37
|
+
},
|
|
38
|
+
user: { name: 'Usuario', roles: ['admin'] },
|
|
39
|
+
navigation: [
|
|
40
|
+
{ kind: 'header', title: 'CRM' },
|
|
41
|
+
{ segment: 'dashboard', title: 'Dashboard', icon: '📊' },
|
|
42
|
+
{ segment: 'contactos', title: 'Contactos', icon: '👥', badge: 0 },
|
|
43
|
+
{ segment: 'empresas', title: 'Empresas', icon: '🏢' },
|
|
44
|
+
{ segment: 'oportunidades', title: 'Oportunidades', icon: '💰' },
|
|
45
|
+
{ kind: 'divider' },
|
|
46
|
+
{ kind: 'header', title: 'ACTIVIDADES' },
|
|
47
|
+
{ segment: 'tareas', title: 'Tareas', icon: '✅' },
|
|
48
|
+
{ segment: 'calendario', title: 'Calendario', icon: '📅' },
|
|
49
|
+
{ segment: 'nuevo-contacto', title: 'Nuevo Contacto', icon: '➕' },
|
|
50
|
+
{ kind: 'divider' },
|
|
51
|
+
{ segment: 'reportes', title: 'Reportes', icon: '📈' },
|
|
52
|
+
{ segment: 'configuracion', title: 'Configuracion', icon: '⚙️' },
|
|
53
|
+
],
|
|
54
|
+
pages: [
|
|
55
|
+
{
|
|
56
|
+
id: 'dashboard', segment: 'dashboard', title: 'Dashboard', content: 'cards',
|
|
57
|
+
cardsConfig: {
|
|
58
|
+
columns: 4, variant: 'kpi',
|
|
59
|
+
items: [
|
|
60
|
+
{ id: 'k1', title: 'Contactos Totales', value: '—', trend: 'up', trendValue: '' },
|
|
61
|
+
{ id: 'k2', title: 'Oportunidades Abiertas', value: '—', trend: 'flat', trendValue: '' },
|
|
62
|
+
{ id: 'k3', title: 'Valor Pipeline', value: '—', trend: 'up', trendValue: '' },
|
|
63
|
+
{ id: 'k4', title: 'Tareas Pendientes', value: '—', trend: 'down', trendValue: '' },
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: 'contactos', segment: 'contactos', title: 'Contactos', content: 'datagrid',
|
|
69
|
+
gridConfig: {
|
|
70
|
+
columns: [
|
|
71
|
+
{ field: 'nombre', header: 'Nombre', width: 200 },
|
|
72
|
+
{ field: 'email', header: 'Email', width: 200 },
|
|
73
|
+
{ field: 'telefono', header: 'Telefono', width: 140 },
|
|
74
|
+
{ field: 'empresa', header: 'Empresa', width: 180 },
|
|
75
|
+
{ field: 'estado', header: 'Estado', width: 100, type: 'status', statusColors: { Activo: '#27ae60', Prospecto: '#f39c12', Inactivo: '#95a5a6' } },
|
|
76
|
+
],
|
|
77
|
+
dataSourceId: 'contactos',
|
|
78
|
+
enableToolbar: true, enableSearch: true,
|
|
79
|
+
},
|
|
80
|
+
actions: [{ id: 'nuevo', type: 'custom', label: 'Nuevo Contacto', variant: 'primary' }],
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
id: 'nuevo-contacto', segment: 'nuevo-contacto', title: 'Nuevo Contacto', content: 'schema',
|
|
84
|
+
schema: {
|
|
85
|
+
id: 'contact-form', version: '1.0', title: '',
|
|
86
|
+
layout: { type: 'grid', columns: 2, gap: 16 },
|
|
87
|
+
sections: [{
|
|
88
|
+
id: 'datos', title: 'Datos del Contacto',
|
|
89
|
+
fields: [
|
|
90
|
+
{ id: 'nombre', type: 'text', field: 'nombre', label: 'Nombre', required: true },
|
|
91
|
+
{ id: 'apellido', type: 'text', field: 'apellido', label: 'Apellido', required: true },
|
|
92
|
+
{ id: 'email', type: 'email', field: 'email', label: 'Email', required: true },
|
|
93
|
+
{ id: 'telefono', type: 'phone', field: 'telefono', label: 'Telefono' },
|
|
94
|
+
{ id: 'empresa', type: 'text', field: 'empresa', label: 'Empresa' },
|
|
95
|
+
{ id: 'cargo', type: 'text', field: 'cargo', label: 'Cargo' },
|
|
96
|
+
{ id: 'origen', type: 'select', field: 'origen', label: 'Origen', props: { options: [
|
|
97
|
+
{ value: 'web', label: 'Sitio Web' }, { value: 'referido', label: 'Referido' },
|
|
98
|
+
{ value: 'llamada', label: 'Llamada' }, { value: 'evento', label: 'Evento' },
|
|
99
|
+
] } },
|
|
100
|
+
{ id: 'prioridad', type: 'rating', field: 'prioridad', label: 'Prioridad', props: { mode: 'rating' } },
|
|
101
|
+
{ id: 'notas', type: 'textarea', field: 'notas', label: 'Notas', colSpan: 2 },
|
|
102
|
+
],
|
|
103
|
+
}],
|
|
104
|
+
actions: [
|
|
105
|
+
{ id: 'guardar', type: 'submit', label: 'Guardar Contacto', variant: 'primary' },
|
|
106
|
+
{ id: 'cancelar', type: 'reset', label: 'Cancelar', variant: 'secondary' },
|
|
107
|
+
],
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
{ id: 'empresas', segment: 'empresas', title: 'Empresas', content: 'empty' },
|
|
111
|
+
{ id: 'oportunidades', segment: 'oportunidades', title: 'Oportunidades', content: 'empty' },
|
|
112
|
+
{ id: 'tareas', segment: 'tareas', title: 'Tareas', content: 'empty' },
|
|
113
|
+
{ id: 'calendario', segment: 'calendario', title: 'Calendario', content: 'empty' },
|
|
114
|
+
{ id: 'reportes', segment: 'reportes', title: 'Reportes', content: 'empty' },
|
|
115
|
+
{ id: 'configuracion', segment: 'configuracion', title: 'Configuracion', content: 'empty' },
|
|
116
|
+
],
|
|
117
|
+
};
|
|
118
|
+
/**
|
|
119
|
+
* E-Commerce Admin template — product/order management
|
|
120
|
+
*/
|
|
121
|
+
export const TEMPLATE_ECOMMERCE = {
|
|
122
|
+
id: 'ecommerce-admin',
|
|
123
|
+
version: '1.0.0',
|
|
124
|
+
branding: {
|
|
125
|
+
title: 'E-Commerce',
|
|
126
|
+
subtitle: 'Admin Panel',
|
|
127
|
+
homeSegment: 'dashboard',
|
|
128
|
+
primaryColor: '#27ae60',
|
|
129
|
+
sidebarStyle: 'dark',
|
|
130
|
+
},
|
|
131
|
+
navigation: [
|
|
132
|
+
{ kind: 'header', title: 'TIENDA' },
|
|
133
|
+
{ segment: 'dashboard', title: 'Dashboard', icon: '📊' },
|
|
134
|
+
{ segment: 'productos', title: 'Productos', icon: '📦' },
|
|
135
|
+
{ segment: 'categorias', title: 'Categorias', icon: '🏷️' },
|
|
136
|
+
{ segment: 'pedidos', title: 'Pedidos', icon: '🛒', badge: 0 },
|
|
137
|
+
{ kind: 'header', title: 'CLIENTES' },
|
|
138
|
+
{ segment: 'clientes', title: 'Clientes', icon: '👥' },
|
|
139
|
+
{ segment: 'reviews', title: 'Reseñas', icon: '⭐' },
|
|
140
|
+
{ kind: 'divider' },
|
|
141
|
+
{ segment: 'reportes', title: 'Reportes', icon: '📈' },
|
|
142
|
+
{ segment: 'configuracion', title: 'Configuracion', icon: '⚙️' },
|
|
143
|
+
],
|
|
144
|
+
pages: [
|
|
145
|
+
{
|
|
146
|
+
id: 'dashboard', segment: 'dashboard', title: 'Dashboard', content: 'cards',
|
|
147
|
+
cardsConfig: {
|
|
148
|
+
columns: 4, variant: 'kpi',
|
|
149
|
+
items: [
|
|
150
|
+
{ id: 'k1', title: 'Ventas Hoy', value: '—' },
|
|
151
|
+
{ id: 'k2', title: 'Pedidos Nuevos', value: '—' },
|
|
152
|
+
{ id: 'k3', title: 'Productos Activos', value: '—' },
|
|
153
|
+
{ id: 'k4', title: 'Clientes', value: '—' },
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
id: 'productos', segment: 'productos', title: 'Productos', content: 'datagrid',
|
|
159
|
+
gridConfig: {
|
|
160
|
+
columns: [
|
|
161
|
+
{ field: 'sku', header: 'SKU', width: 100 },
|
|
162
|
+
{ field: 'nombre', header: 'Producto', width: 250 },
|
|
163
|
+
{ field: 'precio', header: 'Precio', width: 100, type: 'currency' },
|
|
164
|
+
{ field: 'stock', header: 'Stock', width: 80, type: 'number' },
|
|
165
|
+
{ field: 'estado', header: 'Estado', width: 100, type: 'status', statusColors: { Activo: '#27ae60', Borrador: '#95a5a6', Agotado: '#e74c3c' } },
|
|
166
|
+
],
|
|
167
|
+
dataSourceId: 'productos',
|
|
168
|
+
enableToolbar: true, enableSearch: true, enableExport: true,
|
|
169
|
+
},
|
|
170
|
+
actions: [{ id: 'nuevo', type: 'custom', label: 'Nuevo Producto', variant: 'primary' }],
|
|
171
|
+
},
|
|
172
|
+
{ id: 'categorias', segment: 'categorias', title: 'Categorias', content: 'empty' },
|
|
173
|
+
{ id: 'pedidos', segment: 'pedidos', title: 'Pedidos', content: 'empty' },
|
|
174
|
+
{ id: 'clientes', segment: 'clientes', title: 'Clientes', content: 'empty' },
|
|
175
|
+
{ id: 'reviews', segment: 'reviews', title: 'Reseñas', content: 'empty' },
|
|
176
|
+
{ id: 'reportes', segment: 'reportes', title: 'Reportes', content: 'empty' },
|
|
177
|
+
{ id: 'configuracion', segment: 'configuracion', title: 'Configuracion', content: 'empty' },
|
|
178
|
+
],
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* HR/Nomina template — employee management
|
|
182
|
+
*/
|
|
183
|
+
export const TEMPLATE_HR = {
|
|
184
|
+
id: 'hr-app',
|
|
185
|
+
version: '1.0.0',
|
|
186
|
+
branding: {
|
|
187
|
+
title: 'RRHH',
|
|
188
|
+
subtitle: 'Recursos Humanos',
|
|
189
|
+
homeSegment: 'dashboard',
|
|
190
|
+
primaryColor: '#9b59b6',
|
|
191
|
+
sidebarStyle: 'dark',
|
|
192
|
+
},
|
|
193
|
+
navigation: [
|
|
194
|
+
{ kind: 'header', title: 'RRHH' },
|
|
195
|
+
{ segment: 'dashboard', title: 'Dashboard', icon: '📊' },
|
|
196
|
+
{ segment: 'empleados', title: 'Empleados', icon: '👥' },
|
|
197
|
+
{ segment: 'nuevo-empleado', title: 'Nuevo Empleado', icon: '➕' },
|
|
198
|
+
{ segment: 'departamentos', title: 'Departamentos', icon: '🏢' },
|
|
199
|
+
{ kind: 'header', title: 'NOMINA' },
|
|
200
|
+
{ segment: 'nominas', title: 'Nominas', icon: '💰' },
|
|
201
|
+
{ segment: 'conceptos', title: 'Conceptos', icon: '📋' },
|
|
202
|
+
{ kind: 'divider' },
|
|
203
|
+
{ segment: 'vacaciones', title: 'Vacaciones', icon: '🏖️' },
|
|
204
|
+
{ segment: 'asistencia', title: 'Asistencia', icon: '🕐' },
|
|
205
|
+
{ segment: 'reportes', title: 'Reportes', icon: '📈' },
|
|
206
|
+
],
|
|
207
|
+
pages: [
|
|
208
|
+
{
|
|
209
|
+
id: 'dashboard', segment: 'dashboard', title: 'Dashboard', content: 'cards',
|
|
210
|
+
cardsConfig: {
|
|
211
|
+
columns: 4, variant: 'kpi',
|
|
212
|
+
items: [
|
|
213
|
+
{ id: 'k1', title: 'Empleados Activos', value: '—' },
|
|
214
|
+
{ id: 'k2', title: 'Nuevos este Mes', value: '—' },
|
|
215
|
+
{ id: 'k3', title: 'Nomina Mensual', value: '—' },
|
|
216
|
+
{ id: 'k4', title: 'Vacaciones Pendientes', value: '—' },
|
|
217
|
+
],
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
id: 'empleados', segment: 'empleados', title: 'Empleados', content: 'datagrid',
|
|
222
|
+
gridConfig: {
|
|
223
|
+
columns: [
|
|
224
|
+
{ field: 'codigo', header: 'Codigo', width: 80 },
|
|
225
|
+
{ field: 'nombre', header: 'Nombre', width: 200 },
|
|
226
|
+
{ field: 'cedula', header: 'Cedula', width: 120 },
|
|
227
|
+
{ field: 'departamento', header: 'Departamento', width: 150 },
|
|
228
|
+
{ field: 'cargo', header: 'Cargo', width: 150 },
|
|
229
|
+
{ field: 'salario', header: 'Salario', width: 120, type: 'currency' },
|
|
230
|
+
{ field: 'estado', header: 'Estado', width: 100, type: 'status', statusColors: { Activo: '#27ae60', Liquidado: '#e74c3c', Vacaciones: '#3498db' } },
|
|
231
|
+
],
|
|
232
|
+
dataSourceId: 'empleados',
|
|
233
|
+
enableToolbar: true, enableSearch: true, enableExport: true,
|
|
234
|
+
onRowClick: 'navigate', rowClickSegment: 'empleados',
|
|
235
|
+
},
|
|
236
|
+
actions: [{ id: 'nuevo', type: 'custom', label: 'Nuevo Empleado', variant: 'primary' }],
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
id: 'nuevo-empleado', segment: 'nuevo-empleado', title: 'Nuevo Empleado', content: 'schema',
|
|
240
|
+
schema: {
|
|
241
|
+
id: 'employee-form', version: '1.0', title: '',
|
|
242
|
+
layout: { type: 'grid', columns: 3, gap: 16 },
|
|
243
|
+
sections: [
|
|
244
|
+
{
|
|
245
|
+
id: 'personal', title: 'Datos Personales',
|
|
246
|
+
fields: [
|
|
247
|
+
{ id: 'nombre', type: 'text', field: 'nombre', label: 'Nombre', required: true },
|
|
248
|
+
{ id: 'apellido', type: 'text', field: 'apellido', label: 'Apellido', required: true },
|
|
249
|
+
{ id: 'cedula', type: 'text', field: 'cedula', label: 'Cedula', required: true },
|
|
250
|
+
{ id: 'fechaNac', type: 'date', field: 'fechaNacimiento', label: 'Fecha Nacimiento' },
|
|
251
|
+
{ id: 'genero', type: 'select', field: 'genero', label: 'Genero', props: { options: [{ value: 'M', label: 'Masculino' }, { value: 'F', label: 'Femenino' }] } },
|
|
252
|
+
{ id: 'email', type: 'email', field: 'email', label: 'Email' },
|
|
253
|
+
{ id: 'telefono', type: 'phone', field: 'telefono', label: 'Telefono' },
|
|
254
|
+
{ id: 'direccion', type: 'address', field: 'direccion', label: 'Direccion', colSpan: 2 },
|
|
255
|
+
],
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
id: 'laboral', title: 'Datos Laborales',
|
|
259
|
+
fields: [
|
|
260
|
+
{ id: 'fechaIngreso', type: 'date', field: 'fechaIngreso', label: 'Fecha Ingreso', required: true },
|
|
261
|
+
{ id: 'departamento', type: 'select', field: 'departamento', label: 'Departamento', required: true, props: { options: [] } },
|
|
262
|
+
{ id: 'cargo', type: 'text', field: 'cargo', label: 'Cargo', required: true },
|
|
263
|
+
{ id: 'salario', type: 'currency', field: 'salario', label: 'Salario', required: true },
|
|
264
|
+
{ id: 'tipoContrato', type: 'select', field: 'tipoContrato', label: 'Tipo Contrato', props: { options: [
|
|
265
|
+
{ value: 'indefinido', label: 'Indefinido' }, { value: 'temporal', label: 'Temporal' },
|
|
266
|
+
{ value: 'prueba', label: 'Periodo de Prueba' },
|
|
267
|
+
] } },
|
|
268
|
+
{ id: 'activo', type: 'switch', field: 'activo', label: 'Empleado Activo' },
|
|
269
|
+
],
|
|
270
|
+
},
|
|
271
|
+
],
|
|
272
|
+
actions: [
|
|
273
|
+
{ id: 'guardar', type: 'submit', label: 'Guardar Empleado', variant: 'primary' },
|
|
274
|
+
{ id: 'cancelar', type: 'reset', label: 'Cancelar', variant: 'secondary' },
|
|
275
|
+
],
|
|
276
|
+
},
|
|
277
|
+
},
|
|
278
|
+
{ id: 'departamentos', segment: 'departamentos', title: 'Departamentos', content: 'empty' },
|
|
279
|
+
{ id: 'nominas', segment: 'nominas', title: 'Nominas', content: 'empty' },
|
|
280
|
+
{ id: 'conceptos', segment: 'conceptos', title: 'Conceptos', content: 'empty' },
|
|
281
|
+
{ id: 'vacaciones', segment: 'vacaciones', title: 'Vacaciones', content: 'empty' },
|
|
282
|
+
{ id: 'asistencia', segment: 'asistencia', title: 'Asistencia', content: 'empty' },
|
|
283
|
+
{ id: 'reportes', segment: 'reportes', title: 'Reportes', content: 'empty' },
|
|
284
|
+
],
|
|
285
|
+
};
|
|
286
|
+
/** All available templates */
|
|
287
|
+
export const APP_TEMPLATES = {
|
|
288
|
+
blank: TEMPLATE_BLANK,
|
|
289
|
+
crm: TEMPLATE_CRM,
|
|
290
|
+
ecommerce: TEMPLATE_ECOMMERCE,
|
|
291
|
+
hr: TEMPLATE_HR,
|
|
292
|
+
};
|
|
293
|
+
/** Get a template by ID (returns a deep clone) */
|
|
294
|
+
export function getAppTemplate(id) {
|
|
295
|
+
return structuredClone(APP_TEMPLATES[id]);
|
|
296
|
+
}
|
|
297
|
+
/** List available templates with metadata */
|
|
298
|
+
export function listAppTemplates() {
|
|
299
|
+
return [
|
|
300
|
+
{ id: 'blank', title: 'En Blanco', description: 'Aplicacion vacia para empezar desde cero', icon: '📄' },
|
|
301
|
+
{ id: 'crm', title: 'CRM', description: 'Gestion de contactos, empresas y oportunidades', icon: '🤝' },
|
|
302
|
+
{ id: 'ecommerce', title: 'E-Commerce Admin', description: 'Panel de administracion de tienda online', icon: '🛒' },
|
|
303
|
+
{ id: 'hr', title: 'Recursos Humanos', description: 'Gestion de empleados, nomina y asistencia', icon: '👥' },
|
|
304
|
+
];
|
|
305
|
+
}
|
|
306
|
+
//# sourceMappingURL=app-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-templates.js","sourceRoot":"","sources":["../../src/templates/app-templates.ts"],"names":[],"mappings":"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"}
|