@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.
Files changed (105) hide show
  1. package/dist/__tests__/data-binding.test.d.ts +2 -0
  2. package/dist/__tests__/data-binding.test.d.ts.map +1 -0
  3. package/dist/__tests__/data-binding.test.js +86 -0
  4. package/dist/__tests__/data-binding.test.js.map +1 -0
  5. package/dist/__tests__/event-bus.test.d.ts +2 -0
  6. package/dist/__tests__/event-bus.test.d.ts.map +1 -0
  7. package/dist/__tests__/event-bus.test.js +70 -0
  8. package/dist/__tests__/event-bus.test.js.map +1 -0
  9. package/dist/__tests__/expression.test.d.ts +2 -0
  10. package/dist/__tests__/expression.test.d.ts.map +1 -0
  11. package/dist/__tests__/expression.test.js +173 -0
  12. package/dist/__tests__/expression.test.js.map +1 -0
  13. package/dist/__tests__/schema.test.d.ts +2 -0
  14. package/dist/__tests__/schema.test.d.ts.map +1 -0
  15. package/dist/__tests__/schema.test.js +91 -0
  16. package/dist/__tests__/schema.test.js.map +1 -0
  17. package/dist/__tests__/validation.test.d.ts +2 -0
  18. package/dist/__tests__/validation.test.d.ts.map +1 -0
  19. package/dist/__tests__/validation.test.js +70 -0
  20. package/dist/__tests__/validation.test.js.map +1 -0
  21. package/dist/app-types.d.ts +184 -0
  22. package/dist/app-types.d.ts.map +1 -0
  23. package/dist/app-types.js +4 -0
  24. package/dist/app-types.js.map +1 -0
  25. package/dist/data/data-source.d.ts +16 -0
  26. package/dist/data/data-source.d.ts.map +1 -0
  27. package/dist/data/data-source.js +139 -0
  28. package/dist/data/data-source.js.map +1 -0
  29. package/dist/data/data-transformer.d.ts +15 -0
  30. package/dist/data/data-transformer.d.ts.map +1 -0
  31. package/dist/data/data-transformer.js +58 -0
  32. package/dist/data/data-transformer.js.map +1 -0
  33. package/dist/engine/action-engine.d.ts +18 -0
  34. package/dist/engine/action-engine.d.ts.map +1 -0
  35. package/dist/engine/action-engine.js +97 -0
  36. package/dist/engine/action-engine.js.map +1 -0
  37. package/dist/engine/data-binding.d.ts +46 -0
  38. package/dist/engine/data-binding.d.ts.map +1 -0
  39. package/dist/engine/data-binding.js +198 -0
  40. package/dist/engine/data-binding.js.map +1 -0
  41. package/dist/engine/expression.d.ts +39 -0
  42. package/dist/engine/expression.d.ts.map +1 -0
  43. package/dist/engine/expression.js +630 -0
  44. package/dist/engine/expression.js.map +1 -0
  45. package/dist/engine/rule-engine.d.ts +23 -0
  46. package/dist/engine/rule-engine.d.ts.map +1 -0
  47. package/dist/engine/rule-engine.js +91 -0
  48. package/dist/engine/rule-engine.js.map +1 -0
  49. package/dist/engine/validation.d.ts +16 -0
  50. package/dist/engine/validation.d.ts.map +1 -0
  51. package/dist/engine/validation.js +116 -0
  52. package/dist/engine/validation.js.map +1 -0
  53. package/dist/events/event-bus.d.ts +16 -0
  54. package/dist/events/event-bus.d.ts.map +1 -0
  55. package/dist/events/event-bus.js +51 -0
  56. package/dist/events/event-bus.js.map +1 -0
  57. package/dist/i18n/en.d.ts +29 -0
  58. package/dist/i18n/en.d.ts.map +1 -0
  59. package/dist/i18n/en.js +29 -0
  60. package/dist/i18n/en.js.map +1 -0
  61. package/dist/i18n/es.d.ts +29 -0
  62. package/dist/i18n/es.d.ts.map +1 -0
  63. package/dist/i18n/es.js +29 -0
  64. package/dist/i18n/es.js.map +1 -0
  65. package/dist/i18n/i18n.d.ts +14 -0
  66. package/dist/i18n/i18n.d.ts.map +1 -0
  67. package/dist/i18n/i18n.js +32 -0
  68. package/dist/i18n/i18n.js.map +1 -0
  69. package/dist/i18n/pt.d.ts +29 -0
  70. package/dist/i18n/pt.d.ts.map +1 -0
  71. package/dist/i18n/pt.js +29 -0
  72. package/dist/i18n/pt.js.map +1 -0
  73. package/dist/index.d.ts +24 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +31 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/layout/grid-solver.d.ts +18 -0
  78. package/dist/layout/grid-solver.d.ts.map +1 -0
  79. package/dist/layout/grid-solver.js +72 -0
  80. package/dist/layout/grid-solver.js.map +1 -0
  81. package/dist/persistence/flavor-manager.d.ts +17 -0
  82. package/dist/persistence/flavor-manager.d.ts.map +1 -0
  83. package/dist/persistence/flavor-manager.js +63 -0
  84. package/dist/persistence/flavor-manager.js.map +1 -0
  85. package/dist/persistence/schema-store.d.ts +35 -0
  86. package/dist/persistence/schema-store.d.ts.map +1 -0
  87. package/dist/persistence/schema-store.js +142 -0
  88. package/dist/persistence/schema-store.js.map +1 -0
  89. package/dist/registry/field-registry.d.ts +12 -0
  90. package/dist/registry/field-registry.d.ts.map +1 -0
  91. package/dist/registry/field-registry.js +91 -0
  92. package/dist/registry/field-registry.js.map +1 -0
  93. package/dist/schema/studio-schema.d.ts +1196 -0
  94. package/dist/schema/studio-schema.d.ts.map +1 -0
  95. package/dist/schema/studio-schema.js +191 -0
  96. package/dist/schema/studio-schema.js.map +1 -0
  97. package/dist/templates/app-templates.d.ts +35 -0
  98. package/dist/templates/app-templates.d.ts.map +1 -0
  99. package/dist/templates/app-templates.js +306 -0
  100. package/dist/templates/app-templates.js.map +1 -0
  101. package/dist/types.d.ts +270 -0
  102. package/dist/types.d.ts.map +1 -0
  103. package/dist/types.js +4 -0
  104. package/dist/types.js.map +1 -0
  105. 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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"}