@specverse/runtime 4.1.0 → 4.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.
Files changed (93) hide show
  1. package/README.md +356 -0
  2. package/dist/runtime/views/core/atomic-components-registry.d.ts +63 -0
  3. package/dist/runtime/views/core/atomic-components-registry.d.ts.map +1 -0
  4. package/dist/runtime/views/core/atomic-components-registry.js +822 -0
  5. package/dist/runtime/views/core/atomic-components-registry.js.map +1 -0
  6. package/dist/runtime/views/core/composite-pattern-types.d.ts +171 -0
  7. package/dist/runtime/views/core/composite-pattern-types.d.ts.map +1 -0
  8. package/dist/runtime/views/core/composite-pattern-types.js +11 -0
  9. package/dist/runtime/views/core/composite-pattern-types.js.map +1 -0
  10. package/dist/runtime/views/core/composite-patterns.d.ts +67 -0
  11. package/dist/runtime/views/core/composite-patterns.d.ts.map +1 -0
  12. package/dist/runtime/views/core/composite-patterns.js +485 -0
  13. package/dist/runtime/views/core/composite-patterns.js.map +1 -0
  14. package/dist/runtime/views/core/entity-display.d.ts +28 -0
  15. package/dist/runtime/views/core/entity-display.d.ts.map +1 -1
  16. package/dist/runtime/views/core/entity-display.js +75 -0
  17. package/dist/runtime/views/core/entity-display.js.map +1 -1
  18. package/dist/runtime/views/core/index.d.ts +4 -1
  19. package/dist/runtime/views/core/index.d.ts.map +1 -1
  20. package/dist/runtime/views/core/index.js +5 -1
  21. package/dist/runtime/views/core/index.js.map +1 -1
  22. package/dist/runtime/views/core/pattern-engine.d.ts +2 -2
  23. package/dist/runtime/views/core/pattern-engine.d.ts.map +1 -1
  24. package/dist/runtime/views/core/pattern-engine.js.map +1 -1
  25. package/dist/runtime/views/core/types.d.ts +2 -0
  26. package/dist/runtime/views/core/types.d.ts.map +1 -1
  27. package/dist/runtime/views/index.d.ts +5 -2
  28. package/dist/runtime/views/index.d.ts.map +1 -1
  29. package/dist/runtime/views/index.js +5 -2
  30. package/dist/runtime/views/index.js.map +1 -1
  31. package/dist/runtime/views/react/components/DevShell.d.ts.map +1 -1
  32. package/dist/runtime/views/react/components/DevShell.js +6 -2
  33. package/dist/runtime/views/react/components/DevShell.js.map +1 -1
  34. package/dist/runtime/views/react/components/EntitySelect.d.ts +14 -0
  35. package/dist/runtime/views/react/components/EntitySelect.d.ts.map +1 -0
  36. package/dist/runtime/views/react/components/EntitySelect.js +29 -0
  37. package/dist/runtime/views/react/components/EntitySelect.js.map +1 -0
  38. package/dist/runtime/views/react/components/EventStream.d.ts +11 -0
  39. package/dist/runtime/views/react/components/EventStream.d.ts.map +1 -0
  40. package/dist/runtime/views/react/components/EventStream.js +49 -0
  41. package/dist/runtime/views/react/components/EventStream.js.map +1 -0
  42. package/dist/runtime/views/react/components/FieldInput.d.ts +23 -0
  43. package/dist/runtime/views/react/components/FieldInput.d.ts.map +1 -0
  44. package/dist/runtime/views/react/components/FieldInput.js +28 -0
  45. package/dist/runtime/views/react/components/FieldInput.js.map +1 -0
  46. package/dist/runtime/views/react/components/FormView.d.ts +21 -0
  47. package/dist/runtime/views/react/components/FormView.d.ts.map +1 -0
  48. package/dist/runtime/views/react/components/FormView.js +13 -0
  49. package/dist/runtime/views/react/components/FormView.js.map +1 -0
  50. package/dist/runtime/views/react/components/ModelManager.d.ts +6 -2
  51. package/dist/runtime/views/react/components/ModelManager.d.ts.map +1 -1
  52. package/dist/runtime/views/react/components/ModelManager.js +166 -61
  53. package/dist/runtime/views/react/components/ModelManager.js.map +1 -1
  54. package/dist/runtime/views/react/components/ModelSelector.d.ts.map +1 -1
  55. package/dist/runtime/views/react/components/ModelSelector.js +4 -1
  56. package/dist/runtime/views/react/components/ModelSelector.js.map +1 -1
  57. package/dist/runtime/views/react/components/OperationExecutor.d.ts +15 -0
  58. package/dist/runtime/views/react/components/OperationExecutor.d.ts.map +1 -0
  59. package/dist/runtime/views/react/components/OperationExecutor.js +86 -0
  60. package/dist/runtime/views/react/components/OperationExecutor.js.map +1 -0
  61. package/dist/runtime/views/react/components/OperationResultView.d.ts +10 -0
  62. package/dist/runtime/views/react/components/OperationResultView.d.ts.map +1 -0
  63. package/dist/runtime/views/react/components/OperationResultView.js +92 -0
  64. package/dist/runtime/views/react/components/OperationResultView.js.map +1 -0
  65. package/dist/runtime/views/react/components/OperationView.d.ts +21 -0
  66. package/dist/runtime/views/react/components/OperationView.d.ts.map +1 -0
  67. package/dist/runtime/views/react/components/OperationView.js +7 -0
  68. package/dist/runtime/views/react/components/OperationView.js.map +1 -0
  69. package/dist/runtime/views/react/components/RelationshipField.js +4 -4
  70. package/dist/runtime/views/react/components/RelationshipField.js.map +1 -1
  71. package/dist/runtime/views/react/components/RuntimeView.d.ts.map +1 -1
  72. package/dist/runtime/views/react/components/RuntimeView.js +93 -33
  73. package/dist/runtime/views/react/components/RuntimeView.js.map +1 -1
  74. package/dist/runtime/views/react/components/ViewRouter.d.ts +7 -1
  75. package/dist/runtime/views/react/components/ViewRouter.d.ts.map +1 -1
  76. package/dist/runtime/views/react/components/ViewRouter.js +57 -18
  77. package/dist/runtime/views/react/components/ViewRouter.js.map +1 -1
  78. package/dist/runtime/views/react/hooks/useEventStream.d.ts +29 -0
  79. package/dist/runtime/views/react/hooks/useEventStream.d.ts.map +1 -0
  80. package/dist/runtime/views/react/hooks/useEventStream.js +114 -0
  81. package/dist/runtime/views/react/hooks/useEventStream.js.map +1 -0
  82. package/dist/runtime/views/react/hooks/useResizableSidebar.d.ts.map +1 -1
  83. package/dist/runtime/views/react/hooks/useResizableSidebar.js +2 -0
  84. package/dist/runtime/views/react/hooks/useResizableSidebar.js.map +1 -1
  85. package/dist/runtime/views/react/index.d.ts +10 -1
  86. package/dist/runtime/views/react/index.d.ts.map +1 -1
  87. package/dist/runtime/views/react/index.js +11 -1
  88. package/dist/runtime/views/react/index.js.map +1 -1
  89. package/dist/runtime/views/react/react-pattern-adapter.d.ts +235 -0
  90. package/dist/runtime/views/react/react-pattern-adapter.d.ts.map +1 -0
  91. package/dist/runtime/views/react/react-pattern-adapter.js +1450 -0
  92. package/dist/runtime/views/react/react-pattern-adapter.js.map +1 -0
  93. package/package.json +1 -1
@@ -0,0 +1,485 @@
1
+ /**
2
+ * Composite View Patterns Registry
3
+ *
4
+ * Tech-independent definitions for composite view patterns.
5
+ * These patterns describe high-level view structures that can be rendered
6
+ * by any framework adapter (React, Vue, Svelte, Angular, etc.)
7
+ *
8
+ * NO FRAMEWORK DEPENDENCIES - Pure TypeScript definitions only.
9
+ */
10
+ /**
11
+ * FormView Pattern
12
+ *
13
+ * A data entry view for creating or updating entities.
14
+ * Generates forms with validation, field rendering, and submission handling.
15
+ */
16
+ export const FORM_VIEW_PATTERN = {
17
+ // Identity
18
+ id: 'form-view',
19
+ name: 'FormView',
20
+ version: '1.0.0',
21
+ description: 'Data entry form for creating or updating entities with validation and field rendering',
22
+ // Metadata
23
+ category: 'data-entry',
24
+ tags: ['form', 'crud', 'data-entry', 'validation', 'create', 'update'],
25
+ // Composition
26
+ requiredAtomicComponents: [
27
+ 'form',
28
+ 'input',
29
+ 'button'
30
+ ],
31
+ optionalAtomicComponents: [
32
+ 'select',
33
+ 'textarea',
34
+ 'checkbox',
35
+ 'radio',
36
+ 'label',
37
+ 'error-message',
38
+ 'fieldset',
39
+ 'legend'
40
+ ],
41
+ // Layout
42
+ layoutStrategy: {
43
+ type: 'single-column',
44
+ responsive: true,
45
+ sections: [
46
+ {
47
+ id: 'fields',
48
+ title: 'Form Fields',
49
+ layout: {
50
+ type: 'single-column',
51
+ gap: 'medium'
52
+ }
53
+ },
54
+ {
55
+ id: 'actions',
56
+ title: 'Actions',
57
+ layout: {
58
+ type: 'flex',
59
+ gap: 'small'
60
+ }
61
+ }
62
+ ]
63
+ },
64
+ // Data Bindings
65
+ dataBindings: {
66
+ source: 'controller',
67
+ operations: [
68
+ {
69
+ operation: 'create',
70
+ returns: 'entity',
71
+ optimistic: false,
72
+ cache: { enabled: false }
73
+ },
74
+ {
75
+ operation: 'update',
76
+ params: ['id'],
77
+ returns: 'entity',
78
+ optimistic: true,
79
+ cache: { enabled: false }
80
+ },
81
+ {
82
+ operation: 'validate',
83
+ returns: 'validation-result',
84
+ optimistic: false,
85
+ cache: { enabled: false }
86
+ }
87
+ ],
88
+ relationships: []
89
+ },
90
+ // Behavior
91
+ supportedOperations: ['create', 'update', 'validate'],
92
+ eventHandlers: [
93
+ {
94
+ event: 'submit',
95
+ operation: 'create',
96
+ validate: true
97
+ },
98
+ {
99
+ event: 'submit',
100
+ operation: 'update',
101
+ validate: true
102
+ },
103
+ {
104
+ event: 'blur',
105
+ operation: 'validate',
106
+ validate: false
107
+ }
108
+ ],
109
+ // State Management
110
+ state: {
111
+ fields: ['formData', 'errors', 'touched', 'isSubmitting'],
112
+ persistence: 'none'
113
+ }
114
+ };
115
+ /**
116
+ * ListView Pattern
117
+ *
118
+ * A data display view for showing collections of entities.
119
+ * Supports table, list, card, and kanban display modes with filtering and pagination.
120
+ */
121
+ export const LIST_VIEW_PATTERN = {
122
+ // Identity
123
+ id: 'list-view',
124
+ name: 'ListView',
125
+ version: '1.0.0',
126
+ description: 'Data display for collections with filtering, sorting, and pagination support',
127
+ // Metadata
128
+ category: 'data-display',
129
+ tags: ['list', 'table', 'collection', 'data-display', 'pagination', 'filtering'],
130
+ // Composition
131
+ requiredAtomicComponents: [
132
+ 'table',
133
+ 'list'
134
+ ],
135
+ optionalAtomicComponents: [
136
+ 'card',
137
+ 'badge',
138
+ 'button',
139
+ 'input',
140
+ 'select',
141
+ 'pagination',
142
+ 'search',
143
+ 'filter'
144
+ ],
145
+ // Layout
146
+ layoutStrategy: {
147
+ type: 'flex',
148
+ responsive: true,
149
+ direction: 'column',
150
+ sections: [
151
+ {
152
+ id: 'toolbar',
153
+ title: 'Toolbar',
154
+ fields: ['search', 'filters', 'actions'],
155
+ layout: {
156
+ type: 'flex',
157
+ gap: 'medium'
158
+ }
159
+ },
160
+ {
161
+ id: 'content',
162
+ title: 'Content',
163
+ layout: {
164
+ type: 'single-column'
165
+ }
166
+ },
167
+ {
168
+ id: 'pagination',
169
+ title: 'Pagination',
170
+ layout: {
171
+ type: 'flex',
172
+ gap: 'small'
173
+ }
174
+ }
175
+ ]
176
+ },
177
+ // Data Bindings
178
+ dataBindings: {
179
+ source: 'controller',
180
+ operations: [
181
+ {
182
+ operation: 'retrieve_many',
183
+ returns: 'entity-array',
184
+ optimistic: false,
185
+ cache: {
186
+ enabled: true,
187
+ ttl: 300,
188
+ key: 'list-{modelName}-{filters}'
189
+ }
190
+ }
191
+ ],
192
+ relationships: []
193
+ },
194
+ // Behavior
195
+ supportedOperations: ['retrieve_many'],
196
+ eventHandlers: [
197
+ {
198
+ event: 'search',
199
+ operation: 'retrieve_many',
200
+ validate: false
201
+ },
202
+ {
203
+ event: 'filter',
204
+ operation: 'retrieve_many',
205
+ validate: false
206
+ },
207
+ {
208
+ event: 'sort',
209
+ operation: 'retrieve_many',
210
+ validate: false
211
+ },
212
+ {
213
+ event: 'paginate',
214
+ operation: 'retrieve_many',
215
+ validate: false
216
+ }
217
+ ],
218
+ // State Management
219
+ state: {
220
+ fields: ['entities', 'filters', 'sort', 'pagination', 'loading'],
221
+ persistence: 'session'
222
+ }
223
+ };
224
+ /**
225
+ * DetailView Pattern
226
+ *
227
+ * A data display view for showing a single entity with all its attributes.
228
+ * Supports editing, deleting, and navigating to related entities.
229
+ */
230
+ export const DETAIL_VIEW_PATTERN = {
231
+ // Identity
232
+ id: 'detail-view',
233
+ name: 'DetailView',
234
+ version: '1.0.0',
235
+ description: 'Single entity detail display with edit and delete actions',
236
+ // Metadata
237
+ category: 'data-display',
238
+ tags: ['detail', 'view', 'entity', 'display', 'read-only'],
239
+ // Composition
240
+ requiredAtomicComponents: [
241
+ 'card',
242
+ 'container'
243
+ ],
244
+ optionalAtomicComponents: [
245
+ 'badge',
246
+ 'button',
247
+ 'tabs',
248
+ 'card',
249
+ 'list',
250
+ 'table'
251
+ ],
252
+ // Layout
253
+ layoutStrategy: {
254
+ type: 'single-column',
255
+ responsive: true,
256
+ sections: [
257
+ {
258
+ id: 'header',
259
+ title: 'Header',
260
+ fields: ['title', 'status', 'actions'],
261
+ layout: {
262
+ type: 'flex',
263
+ gap: 'medium'
264
+ }
265
+ },
266
+ {
267
+ id: 'main',
268
+ title: 'Main Content',
269
+ layout: {
270
+ type: 'two-column',
271
+ columns: 2,
272
+ gap: 'large'
273
+ }
274
+ },
275
+ {
276
+ id: 'relationships',
277
+ title: 'Related Data',
278
+ layout: {
279
+ type: 'grid',
280
+ columns: 2,
281
+ gap: 'medium'
282
+ }
283
+ }
284
+ ]
285
+ },
286
+ // Data Bindings
287
+ dataBindings: {
288
+ source: 'controller',
289
+ operations: [
290
+ {
291
+ operation: 'retrieve',
292
+ params: ['id'],
293
+ returns: 'entity',
294
+ optimistic: false,
295
+ cache: {
296
+ enabled: true,
297
+ ttl: 300,
298
+ key: 'detail-{modelName}-{id}'
299
+ }
300
+ },
301
+ {
302
+ operation: 'update',
303
+ params: ['id'],
304
+ returns: 'entity',
305
+ optimistic: true,
306
+ cache: { enabled: false }
307
+ },
308
+ {
309
+ operation: 'delete',
310
+ params: ['id'],
311
+ returns: 'void',
312
+ optimistic: false,
313
+ cache: { enabled: false }
314
+ }
315
+ ],
316
+ relationships: []
317
+ },
318
+ // Behavior
319
+ supportedOperations: ['retrieve', 'update', 'delete'],
320
+ eventHandlers: [
321
+ {
322
+ event: 'edit',
323
+ operation: 'update',
324
+ validate: true
325
+ },
326
+ {
327
+ event: 'delete',
328
+ operation: 'delete',
329
+ validate: false,
330
+ confirm: {
331
+ title: 'Confirm Delete',
332
+ message: 'Are you sure you want to delete this item?'
333
+ }
334
+ }
335
+ ],
336
+ // State Management
337
+ state: {
338
+ fields: ['entity', 'loading', 'error', 'editMode'],
339
+ persistence: 'none'
340
+ }
341
+ };
342
+ /**
343
+ * DashboardView Pattern
344
+ *
345
+ * A multi-section dashboard for displaying aggregated data, metrics, and summaries.
346
+ * Supports customizable grid layouts with various widget types.
347
+ */
348
+ export const DASHBOARD_VIEW_PATTERN = {
349
+ // Identity
350
+ id: 'dashboard-view',
351
+ name: 'DashboardView',
352
+ version: '1.0.0',
353
+ description: 'Multi-section dashboard with metrics, charts, and data summaries',
354
+ // Metadata
355
+ category: 'dashboard',
356
+ tags: ['dashboard', 'overview', 'metrics', 'analytics', 'summary'],
357
+ // Composition
358
+ requiredAtomicComponents: [
359
+ 'grid',
360
+ 'card'
361
+ ],
362
+ optionalAtomicComponents: [
363
+ 'chart',
364
+ 'metric',
365
+ 'table',
366
+ 'list',
367
+ 'badge',
368
+ 'progress',
369
+ 'stat'
370
+ ],
371
+ // Layout
372
+ layoutStrategy: {
373
+ type: 'grid',
374
+ responsive: true,
375
+ columns: 12,
376
+ sections: [
377
+ {
378
+ id: 'metrics',
379
+ title: 'Key Metrics',
380
+ layout: {
381
+ type: 'grid',
382
+ columns: 4,
383
+ gap: 'medium'
384
+ }
385
+ },
386
+ {
387
+ id: 'charts',
388
+ title: 'Charts',
389
+ layout: {
390
+ type: 'grid',
391
+ columns: 2,
392
+ gap: 'large'
393
+ }
394
+ },
395
+ {
396
+ id: 'recent-activity',
397
+ title: 'Recent Activity',
398
+ layout: {
399
+ type: 'single-column',
400
+ gap: 'small'
401
+ }
402
+ }
403
+ ]
404
+ },
405
+ // Data Bindings
406
+ dataBindings: {
407
+ source: 'service',
408
+ operations: [
409
+ {
410
+ operation: 'retrieve_many',
411
+ returns: 'entity-array',
412
+ optimistic: false,
413
+ cache: {
414
+ enabled: true,
415
+ ttl: 600,
416
+ key: 'dashboard-{component}'
417
+ }
418
+ }
419
+ ],
420
+ relationships: []
421
+ },
422
+ // Behavior
423
+ supportedOperations: ['retrieve_many'],
424
+ eventHandlers: [
425
+ {
426
+ event: 'refresh',
427
+ operation: 'retrieve_many',
428
+ validate: false
429
+ }
430
+ ],
431
+ // State Management
432
+ state: {
433
+ fields: ['metrics', 'charts', 'recentActivity', 'loading', 'lastUpdate'],
434
+ persistence: 'session'
435
+ },
436
+ // Customization
437
+ customization: {
438
+ allowedOverrides: ['layoutStrategy', 'sections', 'metrics'],
439
+ requiredOverrides: []
440
+ }
441
+ };
442
+ /**
443
+ * Composite Patterns Registry
444
+ *
445
+ * Central registry of all composite view patterns available in SpecVerse.
446
+ * Framework adapters and instance factories use this registry to generate
447
+ * framework-specific implementations.
448
+ */
449
+ export const COMPOSITE_VIEW_PATTERNS = {
450
+ 'form-view': FORM_VIEW_PATTERN,
451
+ 'list-view': LIST_VIEW_PATTERN,
452
+ 'detail-view': DETAIL_VIEW_PATTERN,
453
+ 'dashboard-view': DASHBOARD_VIEW_PATTERN
454
+ };
455
+ /**
456
+ * Get a pattern by ID
457
+ */
458
+ export function getPattern(id) {
459
+ return COMPOSITE_VIEW_PATTERNS[id];
460
+ }
461
+ /**
462
+ * Get all patterns by category
463
+ */
464
+ export function getPatternsByCategory(category) {
465
+ return Object.values(COMPOSITE_VIEW_PATTERNS).filter(pattern => pattern.category === category);
466
+ }
467
+ /**
468
+ * Get all patterns by tag
469
+ */
470
+ export function getPatternsByTag(tag) {
471
+ return Object.values(COMPOSITE_VIEW_PATTERNS).filter(pattern => pattern.tags.includes(tag));
472
+ }
473
+ /**
474
+ * Get all pattern IDs
475
+ */
476
+ export function getPatternIds() {
477
+ return Object.keys(COMPOSITE_VIEW_PATTERNS);
478
+ }
479
+ /**
480
+ * Check if a pattern exists
481
+ */
482
+ export function hasPattern(id) {
483
+ return id in COMPOSITE_VIEW_PATTERNS;
484
+ }
485
+ //# sourceMappingURL=composite-patterns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite-patterns.js","sourceRoot":"","sources":["../../../../src/runtime/views/core/composite-patterns.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,34 @@
18
18
  * 6. Truncated ID as last resort
19
19
  */
20
20
  export declare function getEntityDisplayName(entity: any, allEntities?: Record<string, any[]>): string;
21
+ /**
22
+ * Get the canonical entity ID (UUID preferred, falls back to internal ID).
23
+ * Use this everywhere instead of raw entity.id to ensure consistency
24
+ * across app-demo (internal IDs) and realized projects (Prisma UUIDs).
25
+ */
26
+ export declare function getEntityId(entity: any): string;
27
+ /**
28
+ * Find an entity in a list by UUID (or internal ID fallback).
29
+ */
30
+ export declare function findEntityById(entities: any[], id: string): any | undefined;
31
+ /**
32
+ * Format a value for display in table cells and views.
33
+ * Handles null, boolean, dates, arrays, nested objects.
34
+ * Single source of truth — use this instead of per-component formatters.
35
+ */
36
+ export declare function formatDisplayValue(value: any): string;
37
+ /**
38
+ * Format a DateTime value for an HTML datetime-local input.
39
+ */
40
+ export declare function formatDateTimeForInput(value: any): string;
41
+ /**
42
+ * Format a Date value for an HTML date input.
43
+ */
44
+ export declare function formatDateForInput(value: any): string;
45
+ /**
46
+ * Get the foreign key field name for a relationship.
47
+ */
48
+ export declare function getForeignKeyName(relName: string, relDef?: any): string;
21
49
  /**
22
50
  * Humanize a field name for display.
23
51
  * Converts camelCase/snake_case to human-readable format.
@@ -1 +1 @@
1
- {"version":3,"file":"entity-display.d.ts","sourceRoot":"","sources":["../../../../src/runtime/views/core/entity-display.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,EACX,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAM,GACtC,MAAM,CAiGR;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO3D"}
1
+ {"version":3,"file":"entity-display.d.ts","sourceRoot":"","sources":["../../../../src/runtime/views/core/entity-display.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,EACX,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAM,GACtC,MAAM,CAiGR;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAG3E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAerD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAGzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAGrD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,MAAM,CAEvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAO3D"}
@@ -103,6 +103,81 @@ export function getEntityDisplayName(entity, allEntities = {}) {
103
103
  }
104
104
  return entity.id || 'Unknown';
105
105
  }
106
+ /**
107
+ * Get the canonical entity ID (UUID preferred, falls back to internal ID).
108
+ * Use this everywhere instead of raw entity.id to ensure consistency
109
+ * across app-demo (internal IDs) and realized projects (Prisma UUIDs).
110
+ */
111
+ export function getEntityId(entity) {
112
+ return entity?.data?.id || entity?.id || '';
113
+ }
114
+ /**
115
+ * Find an entity in a list by UUID (or internal ID fallback).
116
+ */
117
+ export function findEntityById(entities, id) {
118
+ if (!id || !entities?.length)
119
+ return undefined;
120
+ return entities.find((e) => getEntityId(e) === id);
121
+ }
122
+ /**
123
+ * Format a value for display in table cells and views.
124
+ * Handles null, boolean, dates, arrays, nested objects.
125
+ * Single source of truth — use this instead of per-component formatters.
126
+ */
127
+ export function formatDisplayValue(value) {
128
+ if (value === null || value === undefined)
129
+ return '-';
130
+ if (typeof value === 'boolean')
131
+ return value ? 'Yes' : 'No';
132
+ if (value instanceof Date)
133
+ return value.toLocaleString();
134
+ if (typeof value === 'string' && value.match(/^\d{4}-\d{2}-\d{2}T/)) {
135
+ return new Date(value).toLocaleString();
136
+ }
137
+ if (Array.isArray(value))
138
+ return `[${value.length} items]`;
139
+ if (typeof value === 'object') {
140
+ const keys = Object.keys(value);
141
+ if (keys.length === 0)
142
+ return '{}';
143
+ if (keys.length <= 5)
144
+ return keys.map(k => `${k}: ${formatDisplayValue(value[k])}`).join(', ');
145
+ return `{${keys.length} fields}`;
146
+ }
147
+ return String(value);
148
+ }
149
+ /**
150
+ * Format a DateTime value for an HTML datetime-local input.
151
+ */
152
+ export function formatDateTimeForInput(value) {
153
+ if (!value)
154
+ return '';
155
+ try {
156
+ return new Date(value).toISOString().slice(0, 16);
157
+ }
158
+ catch {
159
+ return '';
160
+ }
161
+ }
162
+ /**
163
+ * Format a Date value for an HTML date input.
164
+ */
165
+ export function formatDateForInput(value) {
166
+ if (!value)
167
+ return '';
168
+ try {
169
+ return new Date(value).toISOString().slice(0, 10);
170
+ }
171
+ catch {
172
+ return '';
173
+ }
174
+ }
175
+ /**
176
+ * Get the foreign key field name for a relationship.
177
+ */
178
+ export function getForeignKeyName(relName, relDef) {
179
+ return relDef?.foreignKey || `${relName}Id`;
180
+ }
106
181
  /**
107
182
  * Humanize a field name for display.
108
183
  * Converts camelCase/snake_case to human-readable format.
@@ -1 +1 @@
1
- {"version":3,"file":"entity-display.js","sourceRoot":"","sources":["../../../../src/runtime/views/core/entity-display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-display.js","sourceRoot":"","sources":["../../../../src/runtime/views/core/entity-display.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  export * from './entity-display.js';
2
2
  export * from './field-classification.js';
3
- export * from './pattern-engine.js';
3
+ export * from './composite-pattern-types.js';
4
+ export * from './composite-patterns.js';
5
+ export * from './atomic-components-registry.js';
6
+ export { detectPattern, inferFieldsFromSchema, inferFieldsFromModel, CURVED_PROTOCOL_MAPPING, type PatternDetectionResult, type ProtocolMapping, } from './pattern-engine.js';
4
7
  export * from './types.js';
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/views/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/views/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAEhD,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -1,5 +1,9 @@
1
1
  export * from './entity-display.js';
2
2
  export * from './field-classification.js';
3
- export * from './pattern-engine.js';
3
+ export * from './composite-pattern-types.js';
4
+ export * from './composite-patterns.js';
5
+ export * from './atomic-components-registry.js';
6
+ // pattern-engine re-exports CURVEDOperation from composite-pattern-types, so import selectively
7
+ export { detectPattern, inferFieldsFromSchema, inferFieldsFromModel, CURVED_PROTOCOL_MAPPING, } from './pattern-engine.js';
4
8
  export * from './types.js';
5
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/views/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/views/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,gGAAgG;AAChG,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,GAGxB,MAAM,qBAAqB,CAAC;AAC7B,cAAc,YAAY,CAAC"}