@specverse/engines 4.1.28 → 4.2.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 (237) hide show
  1. package/assets/examples/manifests/frontend-only.yaml +3 -6
  2. package/assets/examples/manifests/fullstack-app.yaml +5 -7
  3. package/assets/examples/manifests/fullstack-monorepo.yaml +3 -6
  4. package/dist/inference/comprehensive-engine.d.ts.map +1 -1
  5. package/dist/inference/comprehensive-engine.js +3 -19
  6. package/dist/inference/comprehensive-engine.js.map +1 -1
  7. package/dist/inference/core/rule-engine.d.ts +31 -0
  8. package/dist/inference/core/rule-engine.d.ts.map +1 -1
  9. package/dist/inference/core/rule-engine.js +117 -33
  10. package/dist/inference/core/rule-engine.js.map +1 -1
  11. package/dist/inference/core/rule-file-types.d.ts +0 -2
  12. package/dist/inference/core/rule-file-types.d.ts.map +1 -1
  13. package/dist/inference/core/rule-file-types.js +3 -6
  14. package/dist/inference/core/rule-file-types.js.map +1 -1
  15. package/dist/inference/core/rule-loader.d.ts +5 -15
  16. package/dist/inference/core/rule-loader.d.ts.map +1 -1
  17. package/dist/inference/core/rule-loader.js +43 -132
  18. package/dist/inference/core/rule-loader.js.map +1 -1
  19. package/dist/inference/core/types.d.ts +0 -6
  20. package/dist/inference/core/types.d.ts.map +1 -1
  21. package/dist/inference/core/types.js +0 -4
  22. package/dist/inference/core/types.js.map +1 -1
  23. package/dist/inference/logical/generators/component-type-resolver.d.ts +0 -26
  24. package/dist/inference/logical/generators/component-type-resolver.d.ts.map +1 -1
  25. package/dist/inference/logical/generators/component-type-resolver.js +0 -19
  26. package/dist/inference/logical/generators/component-type-resolver.js.map +1 -1
  27. package/dist/inference/logical/generators/specialist-view-expander.d.ts +1 -17
  28. package/dist/inference/logical/generators/specialist-view-expander.d.ts.map +1 -1
  29. package/dist/inference/logical/generators/specialist-view-expander.js +0 -15
  30. package/dist/inference/logical/generators/specialist-view-expander.js.map +1 -1
  31. package/dist/inference/logical/generators/view-generator.d.ts +4 -14
  32. package/dist/inference/logical/generators/view-generator.d.ts.map +1 -1
  33. package/dist/inference/logical/generators/view-generator.js +6 -26
  34. package/dist/inference/logical/generators/view-generator.js.map +1 -1
  35. package/dist/inference/logical/index.d.ts +2 -2
  36. package/dist/inference/logical/index.d.ts.map +1 -1
  37. package/dist/inference/logical/logical-engine.d.ts.map +1 -1
  38. package/dist/inference/logical/logical-engine.js +17 -80
  39. package/dist/inference/logical/logical-engine.js.map +1 -1
  40. package/dist/inference/quint-transpiler.d.ts +5 -3
  41. package/dist/inference/quint-transpiler.d.ts.map +1 -1
  42. package/dist/inference/quint-transpiler.js +11 -6
  43. package/dist/inference/quint-transpiler.js.map +1 -1
  44. package/dist/libs/instance-factories/applications/templates/generic/main-generator.js +3 -3
  45. package/dist/libs/instance-factories/applications/templates/react/api-client-generator.js +16 -6
  46. package/dist/libs/instance-factories/applications/templates/react-starter/app-tsx-generator.js +110 -0
  47. package/dist/libs/instance-factories/applications/templates/react-starter/dashboard-body-composer.js +121 -0
  48. package/dist/libs/instance-factories/applications/templates/react-starter/detail-body-composer.js +78 -0
  49. package/dist/libs/instance-factories/applications/templates/react-starter/form-body-composer.js +190 -0
  50. package/dist/libs/instance-factories/applications/templates/react-starter/helpers-emitter.js +45 -0
  51. package/dist/libs/instance-factories/applications/templates/react-starter/html-to-jsx.js +192 -0
  52. package/dist/libs/instance-factories/applications/templates/react-starter/list-body-composer.js +46 -0
  53. package/dist/libs/instance-factories/applications/templates/react-starter/orchestrator.js +30 -0
  54. package/dist/libs/instance-factories/applications/templates/react-starter/package-json-generator.js +38 -0
  55. package/dist/libs/instance-factories/applications/templates/react-starter/regen-safety.js +89 -0
  56. package/dist/libs/instance-factories/applications/templates/react-starter/view-emitter.js +56 -0
  57. package/dist/libs/instance-factories/applications/templates/react-starter/views-generator.js +66 -0
  58. package/dist/libs/instance-factories/cli/templates/commander/command-generator.js +14 -11
  59. package/dist/libs/instance-factories/controllers/templates/fastify/server-generator.js +11 -3
  60. package/dist/libs/instance-factories/services/templates/prisma/controller-generator.js +27 -17
  61. package/dist/libs/instance-factories/shared/path-resolver.js +1 -1
  62. package/dist/realize/index.d.ts.map +1 -1
  63. package/dist/realize/index.js +15 -22
  64. package/dist/realize/index.js.map +1 -1
  65. package/dist/registry/utils/manifest-adapter.d.ts +8 -1
  66. package/dist/registry/utils/manifest-adapter.d.ts.map +1 -1
  67. package/dist/registry/utils/manifest-adapter.js +8 -1
  68. package/dist/registry/utils/manifest-adapter.js.map +1 -1
  69. package/libs/instance-factories/applications/react-app-starter.yaml +150 -0
  70. package/libs/instance-factories/applications/templates/generic/main-generator.ts +3 -3
  71. package/libs/instance-factories/applications/templates/react/api-client-generator.ts +16 -6
  72. package/libs/instance-factories/applications/templates/react-starter/README.md +211 -0
  73. package/libs/instance-factories/applications/templates/react-starter/__tests__/dashboard-body-composer.test.ts +153 -0
  74. package/libs/instance-factories/applications/templates/react-starter/__tests__/detail-body-composer.test.ts +145 -0
  75. package/libs/instance-factories/applications/templates/react-starter/__tests__/form-body-composer.test.ts +175 -0
  76. package/libs/instance-factories/applications/templates/react-starter/__tests__/helpers-emitter.test.ts +55 -0
  77. package/libs/instance-factories/applications/templates/react-starter/__tests__/html-to-jsx.test.ts +140 -0
  78. package/libs/instance-factories/applications/templates/react-starter/__tests__/list-body-composer.test.ts +146 -0
  79. package/libs/instance-factories/applications/templates/react-starter/__tests__/orchestrator.test.ts +163 -0
  80. package/libs/instance-factories/applications/templates/react-starter/__tests__/parity-p2-factory-imports.test.ts +116 -0
  81. package/libs/instance-factories/applications/templates/react-starter/__tests__/parity-p3-rendered-output.test.ts +183 -0
  82. package/libs/instance-factories/applications/templates/react-starter/__tests__/regen-safety.test.ts +144 -0
  83. package/libs/instance-factories/applications/templates/react-starter/__tests__/starter-generators.test.ts +114 -0
  84. package/libs/instance-factories/applications/templates/react-starter/__tests__/view-emitter.test.ts +107 -0
  85. package/libs/instance-factories/applications/templates/react-starter/__tests__/views-generator.test.ts +139 -0
  86. package/libs/instance-factories/applications/templates/react-starter/app-tsx-generator.ts +141 -0
  87. package/libs/instance-factories/applications/templates/react-starter/dashboard-body-composer.ts +174 -0
  88. package/libs/instance-factories/applications/templates/react-starter/detail-body-composer.ts +135 -0
  89. package/libs/instance-factories/applications/templates/react-starter/form-body-composer.ts +306 -0
  90. package/libs/instance-factories/applications/templates/react-starter/helpers-emitter.ts +60 -0
  91. package/libs/instance-factories/applications/templates/react-starter/html-to-jsx.ts +334 -0
  92. package/libs/instance-factories/applications/templates/react-starter/list-body-composer.ts +120 -0
  93. package/libs/instance-factories/applications/templates/react-starter/orchestrator.ts +80 -0
  94. package/libs/instance-factories/applications/templates/react-starter/package-json-generator.ts +57 -0
  95. package/libs/instance-factories/applications/templates/react-starter/regen-safety.ts +157 -0
  96. package/libs/instance-factories/applications/templates/react-starter/skeletons/dashboard.tsx.template +47 -0
  97. package/libs/instance-factories/applications/templates/react-starter/skeletons/detail.tsx.template +94 -0
  98. package/libs/instance-factories/applications/templates/react-starter/skeletons/form.tsx.template +114 -0
  99. package/libs/instance-factories/applications/templates/react-starter/skeletons/list.tsx.template +72 -0
  100. package/libs/instance-factories/applications/templates/react-starter/view-emitter.ts +151 -0
  101. package/libs/instance-factories/applications/templates/react-starter/views-generator.ts +137 -0
  102. package/libs/instance-factories/cli/templates/commander/command-generator.ts +14 -11
  103. package/libs/instance-factories/controllers/templates/fastify/server-generator.ts +11 -3
  104. package/libs/instance-factories/services/templates/prisma/controller-generator.ts +27 -17
  105. package/libs/instance-factories/shared/path-resolver.ts +8 -2
  106. package/package.json +3 -3
  107. package/dist/libs/instance-factories/applications/templates/react/_view-components-source.js +0 -530
  108. package/dist/libs/instance-factories/applications/templates/react/app-tsx-generator.js +0 -73
  109. package/dist/libs/instance-factories/applications/templates/react/field-helpers-generator.js +0 -99
  110. package/dist/libs/instance-factories/applications/templates/react/package-json-generator.js +0 -49
  111. package/dist/libs/instance-factories/applications/templates/react/pattern-adapter-generator.js +0 -156
  112. package/dist/libs/instance-factories/applications/templates/react/react-pattern-adapter.js +0 -935
  113. package/dist/libs/instance-factories/applications/templates/react/relationship-field-generator.js +0 -143
  114. package/dist/libs/instance-factories/applications/templates/react/tailwind-adapter-generator.js +0 -646
  115. package/dist/libs/instance-factories/applications/templates/react/tailwind-adapter-wrapper-generator.js +0 -65
  116. package/dist/libs/instance-factories/applications/templates/react/view-dashboard-generator.js +0 -143
  117. package/dist/libs/instance-factories/applications/templates/react/view-detail-generator.js +0 -143
  118. package/dist/libs/instance-factories/applications/templates/react/view-form-generator.js +0 -355
  119. package/dist/libs/instance-factories/applications/templates/react/view-list-generator.js +0 -91
  120. package/dist/libs/instance-factories/applications/templates/react/view-router-generator.js +0 -79
  121. package/dist/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.js.bak +0 -244
  122. package/dist/libs/instance-factories/views/index.js +0 -48
  123. package/dist/libs/instance-factories/views/templates/react/adapters/antd-adapter.js +0 -742
  124. package/dist/libs/instance-factories/views/templates/react/adapters/mui-adapter.js +0 -824
  125. package/dist/libs/instance-factories/views/templates/react/adapters/shadcn-adapter.js +0 -719
  126. package/dist/libs/instance-factories/views/templates/react/app-generator.js +0 -45
  127. package/dist/libs/instance-factories/views/templates/react/components-generator.js +0 -820
  128. package/dist/libs/instance-factories/views/templates/react/forms-generator.js +0 -275
  129. package/dist/libs/instance-factories/views/templates/react/frontend-package-json-generator.js +0 -46
  130. package/dist/libs/instance-factories/views/templates/react/hooks-generator.js +0 -81
  131. package/dist/libs/instance-factories/views/templates/react/index-css-generator.js +0 -9
  132. package/dist/libs/instance-factories/views/templates/react/index-html-generator.js +0 -23
  133. package/dist/libs/instance-factories/views/templates/react/main-tsx-generator.js +0 -21
  134. package/dist/libs/instance-factories/views/templates/react/react-component-generator.js +0 -299
  135. package/dist/libs/instance-factories/views/templates/react/router-generator.js +0 -136
  136. package/dist/libs/instance-factories/views/templates/react/router-generic-generator.js +0 -107
  137. package/dist/libs/instance-factories/views/templates/react/shared-utils-generator.js +0 -187
  138. package/dist/libs/instance-factories/views/templates/react/spec-json-generator.js +0 -7
  139. package/dist/libs/instance-factories/views/templates/react/types-generator.js +0 -56
  140. package/dist/libs/instance-factories/views/templates/react/views-metadata-generator.js +0 -27
  141. package/dist/libs/instance-factories/views/templates/react/vite-config-generator.js +0 -29
  142. package/dist/libs/instance-factories/views/templates/runtime/runtime-view-renderer.js +0 -261
  143. package/dist/libs/instance-factories/views/templates/shared/adapter-types.js +0 -34
  144. package/dist/libs/instance-factories/views/templates/shared/atomic-components-registry.js +0 -800
  145. package/dist/libs/instance-factories/views/templates/shared/base-generator.js +0 -305
  146. package/dist/libs/instance-factories/views/templates/shared/component-metadata.js +0 -517
  147. package/dist/libs/instance-factories/views/templates/shared/composite-pattern-types.js +0 -0
  148. package/dist/libs/instance-factories/views/templates/shared/composite-patterns.js +0 -445
  149. package/dist/libs/instance-factories/views/templates/shared/index.js +0 -80
  150. package/dist/libs/instance-factories/views/templates/shared/pattern-validator.js +0 -210
  151. package/dist/libs/instance-factories/views/templates/shared/property-mapper.js +0 -492
  152. package/dist/libs/instance-factories/views/templates/shared/syntax-mapper.js +0 -321
  153. package/dist/realize/index.js.bak +0 -758
  154. package/libs/instance-factories/applications/react-app.yaml +0 -186
  155. package/libs/instance-factories/applications/templates/react/_view-components-source.ts +0 -555
  156. package/libs/instance-factories/applications/templates/react/app-tsx-generator.ts +0 -94
  157. package/libs/instance-factories/applications/templates/react/field-helpers-generator.ts +0 -106
  158. package/libs/instance-factories/applications/templates/react/package-json-generator.ts +0 -57
  159. package/libs/instance-factories/applications/templates/react/pattern-adapter-generator.ts +0 -179
  160. package/libs/instance-factories/applications/templates/react/react-pattern-adapter.tsx +0 -1347
  161. package/libs/instance-factories/applications/templates/react/relationship-field-generator.ts +0 -150
  162. package/libs/instance-factories/applications/templates/react/tailwind-adapter-generator.ts +0 -704
  163. package/libs/instance-factories/applications/templates/react/tailwind-adapter-wrapper-generator.ts +0 -84
  164. package/libs/instance-factories/applications/templates/react/view-dashboard-generator.ts +0 -150
  165. package/libs/instance-factories/applications/templates/react/view-detail-generator.ts +0 -150
  166. package/libs/instance-factories/applications/templates/react/view-form-generator.ts +0 -362
  167. package/libs/instance-factories/applications/templates/react/view-list-generator.ts +0 -98
  168. package/libs/instance-factories/applications/templates/react/view-router-generator.ts +0 -89
  169. package/libs/instance-factories/views/README.md +0 -62
  170. package/libs/instance-factories/views/index.d.ts +0 -13
  171. package/libs/instance-factories/views/index.d.ts.map +0 -1
  172. package/libs/instance-factories/views/index.js +0 -18
  173. package/libs/instance-factories/views/index.js.map +0 -1
  174. package/libs/instance-factories/views/index.ts +0 -45
  175. package/libs/instance-factories/views/react-components.yaml +0 -129
  176. package/libs/instance-factories/views/templates/ARCHITECTURE.md +0 -198
  177. package/libs/instance-factories/views/templates/react/adapters/antd-adapter.ts +0 -869
  178. package/libs/instance-factories/views/templates/react/adapters/mui-adapter.ts +0 -953
  179. package/libs/instance-factories/views/templates/react/adapters/shadcn-adapter.ts +0 -806
  180. package/libs/instance-factories/views/templates/react/app-generator.ts +0 -55
  181. package/libs/instance-factories/views/templates/react/components-generator.ts +0 -938
  182. package/libs/instance-factories/views/templates/react/forms-generator.ts +0 -325
  183. package/libs/instance-factories/views/templates/react/frontend-package-json-generator.ts +0 -57
  184. package/libs/instance-factories/views/templates/react/hooks-generator.ts +0 -106
  185. package/libs/instance-factories/views/templates/react/index-css-generator.ts +0 -14
  186. package/libs/instance-factories/views/templates/react/index-html-generator.ts +0 -34
  187. package/libs/instance-factories/views/templates/react/main-tsx-generator.ts +0 -29
  188. package/libs/instance-factories/views/templates/react/react-component-generator.d.ts +0 -152
  189. package/libs/instance-factories/views/templates/react/react-component-generator.d.ts.map +0 -1
  190. package/libs/instance-factories/views/templates/react/react-component-generator.js +0 -398
  191. package/libs/instance-factories/views/templates/react/react-component-generator.js.map +0 -1
  192. package/libs/instance-factories/views/templates/react/react-component-generator.ts +0 -533
  193. package/libs/instance-factories/views/templates/react/router-generator.ts +0 -197
  194. package/libs/instance-factories/views/templates/react/router-generic-generator.ts +0 -132
  195. package/libs/instance-factories/views/templates/react/shared-utils-generator.ts +0 -196
  196. package/libs/instance-factories/views/templates/react/spec-json-generator.ts +0 -17
  197. package/libs/instance-factories/views/templates/react/types-generator.ts +0 -76
  198. package/libs/instance-factories/views/templates/react/views-metadata-generator.ts +0 -42
  199. package/libs/instance-factories/views/templates/react/vite-config-generator.ts +0 -38
  200. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.d.ts.map +0 -1
  201. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.js.map +0 -1
  202. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.ts +0 -474
  203. package/libs/instance-factories/views/templates/shared/__tests__/composite-patterns.test.ts +0 -242
  204. package/libs/instance-factories/views/templates/shared/adapter-types.d.ts +0 -77
  205. package/libs/instance-factories/views/templates/shared/adapter-types.d.ts.map +0 -1
  206. package/libs/instance-factories/views/templates/shared/adapter-types.js +0 -47
  207. package/libs/instance-factories/views/templates/shared/adapter-types.js.map +0 -1
  208. package/libs/instance-factories/views/templates/shared/adapter-types.ts +0 -142
  209. package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts +0 -63
  210. package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts.map +0 -1
  211. package/libs/instance-factories/views/templates/shared/atomic-components-registry.js +0 -822
  212. package/libs/instance-factories/views/templates/shared/atomic-components-registry.js.map +0 -1
  213. package/libs/instance-factories/views/templates/shared/atomic-components-registry.ts +0 -908
  214. package/libs/instance-factories/views/templates/shared/base-generator.d.ts +0 -247
  215. package/libs/instance-factories/views/templates/shared/base-generator.d.ts.map +0 -1
  216. package/libs/instance-factories/views/templates/shared/base-generator.js +0 -363
  217. package/libs/instance-factories/views/templates/shared/base-generator.js.map +0 -1
  218. package/libs/instance-factories/views/templates/shared/base-generator.ts +0 -608
  219. package/libs/instance-factories/views/templates/shared/component-metadata.d.ts +0 -254
  220. package/libs/instance-factories/views/templates/shared/component-metadata.d.ts.map +0 -1
  221. package/libs/instance-factories/views/templates/shared/component-metadata.js +0 -602
  222. package/libs/instance-factories/views/templates/shared/component-metadata.js.map +0 -1
  223. package/libs/instance-factories/views/templates/shared/component-metadata.ts +0 -803
  224. package/libs/instance-factories/views/templates/shared/composite-pattern-types.ts +0 -250
  225. package/libs/instance-factories/views/templates/shared/composite-patterns.ts +0 -535
  226. package/libs/instance-factories/views/templates/shared/index.ts +0 -68
  227. package/libs/instance-factories/views/templates/shared/pattern-validator.ts +0 -279
  228. package/libs/instance-factories/views/templates/shared/property-mapper.d.ts +0 -149
  229. package/libs/instance-factories/views/templates/shared/property-mapper.d.ts.map +0 -1
  230. package/libs/instance-factories/views/templates/shared/property-mapper.js +0 -580
  231. package/libs/instance-factories/views/templates/shared/property-mapper.js.map +0 -1
  232. package/libs/instance-factories/views/templates/shared/property-mapper.ts +0 -700
  233. package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts +0 -143
  234. package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts.map +0 -1
  235. package/libs/instance-factories/views/templates/shared/syntax-mapper.js +0 -420
  236. package/libs/instance-factories/views/templates/shared/syntax-mapper.js.map +0 -1
  237. package/libs/instance-factories/views/templates/shared/syntax-mapper.ts +0 -539
@@ -1,822 +0,0 @@
1
- /**
2
- * Atomic Components Registry
3
- *
4
- * Defines all 49 atomic component types from SpecVerse v3.4.0 schema.
5
- * Each type has metadata about its purpose, properties, and usage patterns.
6
- *
7
- * This registry is framework-agnostic. UI library adapters (shadcn, MUI, etc.)
8
- * implement these types using their specific components.
9
- */
10
- /**
11
- * Complete registry of all 49 atomic component types
12
- */
13
- export const ATOMIC_COMPONENTS_REGISTRY = {
14
- // =========================================================================
15
- // DATA DISPLAY (9 types)
16
- // =========================================================================
17
- table: {
18
- type: 'table',
19
- name: 'Table',
20
- category: 'data-display',
21
- description: 'Tabular data display with rows, columns, sorting, and pagination',
22
- properties: ['columns', 'sortable', 'filterable', 'pagination', 'compact', 'selectable', 'exportable'],
23
- canHaveChildren: false,
24
- example: `
25
- taskTable:
26
- type: table
27
- model: Task
28
- columns: [title, status, priority, assignee, dueDate]
29
- features: [sorting, filtering, pagination]
30
- `
31
- },
32
- list: {
33
- type: 'list',
34
- name: 'List',
35
- category: 'data-display',
36
- description: 'Vertical list of items, often with avatars or icons',
37
- properties: ['items', 'itemTemplate', 'dividers', 'dense', 'interactive'],
38
- canHaveChildren: true,
39
- example: `
40
- userList:
41
- type: list
42
- model: User
43
- properties:
44
- dense: true
45
- dividers: true
46
- `
47
- },
48
- grid: {
49
- type: 'grid',
50
- name: 'Grid',
51
- category: 'data-display',
52
- description: 'Grid layout for cards or items',
53
- properties: ['columns', 'gap', 'responsive', 'itemsPerRow'],
54
- canHaveChildren: true,
55
- example: `
56
- projectGrid:
57
- type: grid
58
- properties:
59
- columns: 3
60
- gap: medium
61
- responsive: true
62
- `
63
- },
64
- card: {
65
- type: 'card',
66
- name: 'Card',
67
- category: 'data-display',
68
- description: 'Container with optional header, content, and actions',
69
- properties: ['title', 'subtitle', 'variant', 'elevation', 'clickable', 'hoverable', 'compact', 'showTrend', 'metric'],
70
- canHaveChildren: true,
71
- example: `
72
- budgetCard:
73
- type: card
74
- properties:
75
- variant: metric
76
- showTrend: true
77
- metric: budget
78
- `
79
- },
80
- chart: {
81
- type: 'chart',
82
- name: 'Chart',
83
- category: 'data-display',
84
- description: 'Data visualization (line, bar, pie, etc.)',
85
- properties: ['chartType', 'data', 'responsive', 'showLegend', 'interactive', 'exportable'],
86
- canHaveChildren: false,
87
- example: `
88
- trendChart:
89
- type: chart
90
- properties:
91
- chartType: trend
92
- responsive: true
93
- showLegend: true
94
- `
95
- },
96
- tree: {
97
- type: 'tree',
98
- name: 'Tree',
99
- category: 'data-display',
100
- description: 'Hierarchical tree structure',
101
- properties: ['data', 'expandable', 'selectable', 'checkboxes', 'defaultExpanded'],
102
- canHaveChildren: false,
103
- example: `
104
- categoryTree:
105
- type: tree
106
- properties:
107
- expandable: true
108
- defaultExpanded: false
109
- `
110
- },
111
- timeline: {
112
- type: 'timeline',
113
- name: 'Timeline',
114
- category: 'data-display',
115
- description: 'Chronological event timeline',
116
- properties: ['orientation', 'showDateMarkers', 'showDuration', 'showUser'],
117
- canHaveChildren: true,
118
- example: `
119
- activityTimeline:
120
- type: timeline
121
- properties:
122
- orientation: vertical
123
- showDateMarkers: true
124
- `
125
- },
126
- avatar: {
127
- type: 'avatar',
128
- name: 'Avatar',
129
- category: 'data-display',
130
- description: 'User avatar or profile image',
131
- properties: ['src', 'alt', 'size', 'shape', 'initials', 'badge'],
132
- canHaveChildren: false,
133
- example: `
134
- userAvatar:
135
- type: avatar
136
- properties:
137
- size: medium
138
- shape: circle
139
- `
140
- },
141
- image: {
142
- type: 'image',
143
- name: 'Image',
144
- category: 'data-display',
145
- description: 'Image display with optional caption',
146
- properties: ['src', 'alt', 'width', 'height', 'objectFit', 'caption', 'lazy'],
147
- canHaveChildren: false,
148
- example: `
149
- projectImage:
150
- type: image
151
- properties:
152
- objectFit: cover
153
- lazy: true
154
- `
155
- },
156
- // =========================================================================
157
- // FORMS & INPUTS (11 types)
158
- // =========================================================================
159
- form: {
160
- type: 'form',
161
- name: 'Form',
162
- category: 'forms-inputs',
163
- description: 'Form container with validation and submission',
164
- properties: ['onSubmit', 'validation', 'autoSave', 'showValidation', 'layout'],
165
- canHaveChildren: true,
166
- example: `
167
- taskForm:
168
- type: form
169
- properties:
170
- autoSave: false
171
- showValidation: true
172
- `
173
- },
174
- input: {
175
- type: 'input',
176
- name: 'Input',
177
- category: 'forms-inputs',
178
- description: 'Text input field',
179
- properties: ['label', 'placeholder', 'required', 'type', 'disabled', 'error', 'helperText', 'icon', 'multiline'],
180
- canHaveChildren: false,
181
- example: `
182
- titleInput:
183
- type: input
184
- properties:
185
- label: "Title"
186
- placeholder: "Enter task title"
187
- required: true
188
- `
189
- },
190
- textarea: {
191
- type: 'textarea',
192
- name: 'Textarea',
193
- category: 'forms-inputs',
194
- description: 'Multi-line text input',
195
- properties: ['label', 'placeholder', 'rows', 'required', 'maxLength', 'resize'],
196
- canHaveChildren: false,
197
- example: `
198
- descriptionInput:
199
- type: textarea
200
- properties:
201
- label: "Description"
202
- rows: 4
203
- `
204
- },
205
- select: {
206
- type: 'select',
207
- name: 'Select',
208
- category: 'forms-inputs',
209
- description: 'Dropdown selection',
210
- properties: ['label', 'options', 'required', 'multiple', 'placeholder', 'searchable'],
211
- canHaveChildren: false,
212
- example: `
213
- statusSelect:
214
- type: select
215
- properties:
216
- label: "Status"
217
- options: [todo, in_progress, done]
218
- required: true
219
- `
220
- },
221
- checkbox: {
222
- type: 'checkbox',
223
- name: 'Checkbox',
224
- category: 'forms-inputs',
225
- description: 'Checkbox for boolean values',
226
- properties: ['label', 'checked', 'disabled', 'indeterminate'],
227
- canHaveChildren: false,
228
- example: `
229
- completedCheckbox:
230
- type: checkbox
231
- properties:
232
- label: "Completed"
233
- `
234
- },
235
- radio: {
236
- type: 'radio',
237
- name: 'Radio',
238
- category: 'forms-inputs',
239
- description: 'Radio button group',
240
- properties: ['label', 'options', 'orientation', 'required'],
241
- canHaveChildren: false,
242
- example: `
243
- priorityRadio:
244
- type: radio
245
- properties:
246
- label: "Priority"
247
- options: [low, medium, high]
248
- orientation: horizontal
249
- `
250
- },
251
- slider: {
252
- type: 'slider',
253
- name: 'Slider',
254
- category: 'forms-inputs',
255
- description: 'Slider for numeric ranges',
256
- properties: ['label', 'min', 'max', 'step', 'value', 'marks', 'showValue'],
257
- canHaveChildren: false,
258
- example: `
259
- progressSlider:
260
- type: slider
261
- properties:
262
- label: "Progress"
263
- min: 0
264
- max: 100
265
- showValue: true
266
- `
267
- },
268
- switch: {
269
- type: 'switch',
270
- name: 'Switch',
271
- category: 'forms-inputs',
272
- description: 'Toggle switch for boolean values',
273
- properties: ['label', 'checked', 'disabled', 'size'],
274
- canHaveChildren: false,
275
- example: `
276
- notificationsSwitch:
277
- type: switch
278
- properties:
279
- label: "Enable Notifications"
280
- `
281
- },
282
- autocomplete: {
283
- type: 'autocomplete',
284
- name: 'Autocomplete',
285
- category: 'forms-inputs',
286
- description: 'Searchable dropdown with autocomplete',
287
- properties: ['label', 'options', 'multiple', 'searchable', 'placeholder', 'limit', 'freeSolo'],
288
- canHaveChildren: false,
289
- example: `
290
- assigneeSelect:
291
- type: autocomplete
292
- model: User
293
- properties:
294
- label: "Assignee"
295
- searchable: true
296
- `
297
- },
298
- datepicker: {
299
- type: 'datepicker',
300
- name: 'DatePicker',
301
- category: 'forms-inputs',
302
- description: 'Date selection input',
303
- properties: ['label', 'format', 'minDate', 'maxDate', 'required', 'showTime', 'range'],
304
- canHaveChildren: false,
305
- example: `
306
- dueDatePicker:
307
- type: datepicker
308
- properties:
309
- label: "Due Date"
310
- format: "MM/DD/YYYY"
311
- `
312
- },
313
- timepicker: {
314
- type: 'timepicker',
315
- name: 'TimePicker',
316
- category: 'forms-inputs',
317
- description: 'Time selection input',
318
- properties: ['label', 'format', 'required', 'step', 'use24Hour'],
319
- canHaveChildren: false,
320
- example: `
321
- meetingTime:
322
- type: timepicker
323
- properties:
324
- label: "Meeting Time"
325
- use24Hour: false
326
- `
327
- },
328
- // =========================================================================
329
- // ACTIONS (5 types)
330
- // =========================================================================
331
- button: {
332
- type: 'button',
333
- name: 'Button',
334
- category: 'actions',
335
- description: 'Clickable button',
336
- properties: ['label', 'variant', 'size', 'disabled', 'loading', 'icon', 'onClick', 'type'],
337
- canHaveChildren: false,
338
- example: `
339
- submitButton:
340
- type: button
341
- properties:
342
- label: "Submit"
343
- variant: primary
344
- type: submit
345
- `
346
- },
347
- 'button-group': {
348
- type: 'button-group',
349
- name: 'ButtonGroup',
350
- category: 'actions',
351
- description: 'Group of related buttons',
352
- properties: ['orientation', 'variant', 'size', 'buttons'],
353
- canHaveChildren: true,
354
- example: `
355
- actions:
356
- type: button-group
357
- properties:
358
- orientation: horizontal
359
- uiComponents:
360
- editButton: { type: button }
361
- deleteButton: { type: button }
362
- `
363
- },
364
- link: {
365
- type: 'link',
366
- name: 'Link',
367
- category: 'actions',
368
- description: 'Hyperlink or navigation link',
369
- properties: ['href', 'label', 'external', 'underline', 'color'],
370
- canHaveChildren: false,
371
- example: `
372
- viewDetails:
373
- type: link
374
- properties:
375
- label: "View Details"
376
- href: "/tasks/:id"
377
- `
378
- },
379
- icon: {
380
- type: 'icon',
381
- name: 'Icon',
382
- category: 'actions',
383
- description: 'Icon display',
384
- properties: ['name', 'size', 'color', 'clickable', 'tooltip'],
385
- canHaveChildren: false,
386
- example: `
387
- deleteIcon:
388
- type: icon
389
- properties:
390
- name: "trash"
391
- color: danger
392
- `
393
- },
394
- menu: {
395
- type: 'menu',
396
- name: 'Menu',
397
- category: 'actions',
398
- description: 'Dropdown menu with actions',
399
- properties: ['items', 'trigger', 'placement'],
400
- canHaveChildren: true,
401
- example: `
402
- contextMenu:
403
- type: menu
404
- properties:
405
- trigger: click
406
- placement: bottom-start
407
- `
408
- },
409
- // =========================================================================
410
- // OVERLAYS & FEEDBACK (9 types)
411
- // =========================================================================
412
- modal: {
413
- type: 'modal',
414
- name: 'Modal',
415
- category: 'overlays-feedback',
416
- description: 'Modal dialog overlay',
417
- properties: ['title', 'size', 'closeOnBackdrop', 'closeButton', 'footer'],
418
- canHaveChildren: true,
419
- example: `
420
- confirmDialog:
421
- type: modal
422
- properties:
423
- title: "Confirm Deletion"
424
- size: small
425
- closeOnBackdrop: false
426
- `
427
- },
428
- dialog: {
429
- type: 'dialog',
430
- name: 'Dialog',
431
- category: 'overlays-feedback',
432
- description: 'Dialog box (similar to modal, often simpler)',
433
- properties: ['title', 'message', 'actions', 'variant'],
434
- canHaveChildren: true,
435
- example: `
436
- alertDialog:
437
- type: dialog
438
- properties:
439
- title: "Alert"
440
- variant: warning
441
- `
442
- },
443
- drawer: {
444
- type: 'drawer',
445
- name: 'Drawer',
446
- category: 'overlays-feedback',
447
- description: 'Slide-out panel from edge',
448
- properties: ['position', 'width', 'closeOnBackdrop', 'persistent'],
449
- canHaveChildren: true,
450
- example: `
451
- filterDrawer:
452
- type: drawer
453
- properties:
454
- position: right
455
- width: 400
456
- `
457
- },
458
- popover: {
459
- type: 'popover',
460
- name: 'Popover',
461
- category: 'overlays-feedback',
462
- description: 'Floating content container',
463
- properties: ['trigger', 'placement', 'arrow', 'offset'],
464
- canHaveChildren: true,
465
- example: `
466
- helpPopover:
467
- type: popover
468
- properties:
469
- trigger: hover
470
- placement: top
471
- `
472
- },
473
- tooltip: {
474
- type: 'tooltip',
475
- name: 'Tooltip',
476
- category: 'overlays-feedback',
477
- description: 'Brief informational tooltip',
478
- properties: ['content', 'placement', 'arrow', 'delay'],
479
- canHaveChildren: false,
480
- example: `
481
- infoTooltip:
482
- type: tooltip
483
- properties:
484
- content: "Additional information"
485
- placement: top
486
- `
487
- },
488
- alert: {
489
- type: 'alert',
490
- name: 'Alert',
491
- category: 'overlays-feedback',
492
- description: 'Alert or notification message',
493
- properties: ['variant', 'title', 'message', 'closable', 'icon'],
494
- canHaveChildren: false,
495
- example: `
496
- successAlert:
497
- type: alert
498
- properties:
499
- variant: success
500
- message: "Task created successfully"
501
- `
502
- },
503
- snackbar: {
504
- type: 'snackbar',
505
- name: 'Snackbar',
506
- category: 'overlays-feedback',
507
- description: 'Temporary notification (toast)',
508
- properties: ['message', 'duration', 'position', 'action', 'variant'],
509
- canHaveChildren: false,
510
- example: `
511
- notification:
512
- type: snackbar
513
- properties:
514
- message: "Changes saved"
515
- duration: 3000
516
- position: bottom-right
517
- `
518
- },
519
- badge: {
520
- type: 'badge',
521
- name: 'Badge',
522
- category: 'overlays-feedback',
523
- description: 'Small status indicator or count',
524
- properties: ['content', 'variant', 'position', 'max', 'dot'],
525
- canHaveChildren: false,
526
- example: `
527
- notificationBadge:
528
- type: badge
529
- properties:
530
- content: 5
531
- variant: error
532
- `
533
- },
534
- spinner: {
535
- type: 'spinner',
536
- name: 'Spinner',
537
- category: 'overlays-feedback',
538
- description: 'Loading spinner',
539
- properties: ['size', 'color', 'thickness'],
540
- canHaveChildren: false,
541
- example: `
542
- loadingSpinner:
543
- type: spinner
544
- properties:
545
- size: medium
546
- `
547
- },
548
- // =========================================================================
549
- // NAVIGATION (5 types)
550
- // =========================================================================
551
- tabs: {
552
- type: 'tabs',
553
- name: 'Tabs',
554
- category: 'navigation',
555
- description: 'Tabbed navigation',
556
- properties: ['orientation', 'variant', 'sections', 'showProgress'],
557
- canHaveChildren: true,
558
- example: `
559
- profileTabs:
560
- type: tabs
561
- properties:
562
- sections: [about, activity, settings]
563
- `
564
- },
565
- breadcrumb: {
566
- type: 'breadcrumb',
567
- name: 'Breadcrumb',
568
- category: 'navigation',
569
- description: 'Breadcrumb navigation trail',
570
- properties: ['items', 'separator', 'maxItems'],
571
- canHaveChildren: false,
572
- example: `
573
- pageBreadcrumb:
574
- type: breadcrumb
575
- properties:
576
- separator: "/"
577
- `
578
- },
579
- navbar: {
580
- type: 'navbar',
581
- name: 'Navbar',
582
- category: 'navigation',
583
- description: 'Top navigation bar',
584
- properties: ['brand', 'items', 'sticky', 'transparent'],
585
- canHaveChildren: true,
586
- example: `
587
- mainNav:
588
- type: navbar
589
- properties:
590
- sticky: true
591
- `
592
- },
593
- sidebar: {
594
- type: 'sidebar',
595
- name: 'Sidebar',
596
- category: 'navigation',
597
- description: 'Side navigation menu',
598
- properties: ['items', 'collapsible', 'width', 'position'],
599
- canHaveChildren: true,
600
- example: `
601
- appSidebar:
602
- type: sidebar
603
- properties:
604
- collapsible: true
605
- position: left
606
- `
607
- },
608
- pagination: {
609
- type: 'pagination',
610
- name: 'Pagination',
611
- category: 'navigation',
612
- description: 'Page navigation controls',
613
- properties: ['pageSize', 'total', 'showSizeChanger', 'showTotal'],
614
- canHaveChildren: false,
615
- example: `
616
- tablePagination:
617
- type: pagination
618
- properties:
619
- pageSize: 25
620
- showSizeChanger: true
621
- `
622
- },
623
- // =========================================================================
624
- // LAYOUT (6 types)
625
- // =========================================================================
626
- accordion: {
627
- type: 'accordion',
628
- name: 'Accordion',
629
- category: 'layout',
630
- description: 'Expandable/collapsible sections',
631
- properties: ['allowMultiple', 'defaultExpanded', 'variant'],
632
- canHaveChildren: true,
633
- example: `
634
- faqAccordion:
635
- type: accordion
636
- properties:
637
- allowMultiple: false
638
- `
639
- },
640
- carousel: {
641
- type: 'carousel',
642
- name: 'Carousel',
643
- category: 'layout',
644
- description: 'Slideshow of items',
645
- properties: ['autoplay', 'interval', 'showArrows', 'showDots', 'infinite'],
646
- canHaveChildren: true,
647
- example: `
648
- imageCarousel:
649
- type: carousel
650
- properties:
651
- autoplay: true
652
- interval: 5000
653
- `
654
- },
655
- container: {
656
- type: 'container',
657
- name: 'Container',
658
- category: 'layout',
659
- description: 'Generic layout container',
660
- properties: ['layout', 'gap', 'padding', 'alignment', 'scrollable', 'renderType', 'allowDrop'],
661
- canHaveChildren: true,
662
- example: `
663
- boardContainer:
664
- type: container
665
- properties:
666
- layout: horizontal
667
- scrollable: true
668
- `
669
- },
670
- divider: {
671
- type: 'divider',
672
- name: 'Divider',
673
- category: 'layout',
674
- description: 'Visual separator',
675
- properties: ['orientation', 'variant', 'spacing'],
676
- canHaveChildren: false,
677
- example: `
678
- sectionDivider:
679
- type: divider
680
- properties:
681
- orientation: horizontal
682
- `
683
- },
684
- header: {
685
- type: 'header',
686
- name: 'Header',
687
- category: 'layout',
688
- description: 'Header section',
689
- properties: ['title', 'subtitle', 'showAvatar', 'showCover', 'actions'],
690
- canHaveChildren: true,
691
- example: `
692
- pageHeader:
693
- type: header
694
- properties:
695
- title: "Dashboard"
696
- `
697
- },
698
- footer: {
699
- type: 'footer',
700
- name: 'Footer',
701
- category: 'layout',
702
- description: 'Footer section',
703
- properties: ['content', 'links', 'copyright', 'sticky'],
704
- canHaveChildren: true,
705
- example: `
706
- pageFooter:
707
- type: footer
708
- properties:
709
- copyright: "2025 Company"
710
- `
711
- },
712
- // =========================================================================
713
- // PROGRESS (2 types)
714
- // =========================================================================
715
- 'progress-bar': {
716
- type: 'progress-bar',
717
- name: 'ProgressBar',
718
- category: 'progress',
719
- description: 'Linear progress indicator',
720
- properties: ['value', 'max', 'label', 'variant', 'animated'],
721
- canHaveChildren: false,
722
- example: `
723
- taskProgress:
724
- type: progress-bar
725
- properties:
726
- value: 75
727
- max: 100
728
- label: true
729
- `
730
- },
731
- 'progress-circle': {
732
- type: 'progress-circle',
733
- name: 'ProgressCircle',
734
- category: 'progress',
735
- description: 'Circular progress indicator',
736
- properties: ['value', 'max', 'size', 'thickness', 'label'],
737
- canHaveChildren: false,
738
- example: `
739
- completionProgress:
740
- type: progress-circle
741
- properties:
742
- value: 75
743
- size: large
744
- `
745
- },
746
- // =========================================================================
747
- // SPECIALIZED (2 types)
748
- // =========================================================================
749
- searchBar: {
750
- type: 'searchBar',
751
- name: 'SearchBar',
752
- category: 'specialized',
753
- description: 'Search input with icon and actions',
754
- properties: ['placeholder', 'onSearch', 'showClear', 'autofocus'],
755
- canHaveChildren: false,
756
- example: `
757
- taskSearch:
758
- type: searchBar
759
- properties:
760
- placeholder: "Search tasks..."
761
- showClear: true
762
- `
763
- },
764
- filterPanel: {
765
- type: 'filterPanel',
766
- name: 'FilterPanel',
767
- category: 'specialized',
768
- description: 'Panel with multiple filter controls',
769
- properties: ['position', 'collapsible', 'advanced', 'showDateRange', 'showCategories', 'showActivityTypes'],
770
- canHaveChildren: true,
771
- example: `
772
- dataFilters:
773
- type: filterPanel
774
- properties:
775
- position: top
776
- collapsible: true
777
- advanced: true
778
- `
779
- },
780
- };
781
- /**
782
- * Get component definition by type
783
- */
784
- export function getComponentDefinition(type) {
785
- return ATOMIC_COMPONENTS_REGISTRY[type];
786
- }
787
- /**
788
- * Get all components in a category
789
- */
790
- export function getComponentsByCategory(category) {
791
- return Object.values(ATOMIC_COMPONENTS_REGISTRY).filter(comp => comp.category === category);
792
- }
793
- /**
794
- * Validate if a component type exists
795
- */
796
- export function isValidComponentType(type) {
797
- return type in ATOMIC_COMPONENTS_REGISTRY;
798
- }
799
- /**
800
- * Get all component types as array
801
- */
802
- export function getAllComponentTypes() {
803
- return Object.keys(ATOMIC_COMPONENTS_REGISTRY);
804
- }
805
- /**
806
- * Component categories summary
807
- */
808
- export const COMPONENT_CATEGORIES = {
809
- 'data-display': 9,
810
- 'forms-inputs': 11,
811
- 'actions': 5,
812
- 'overlays-feedback': 9,
813
- 'navigation': 5,
814
- 'layout': 6,
815
- 'progress': 2,
816
- 'specialized': 2,
817
- };
818
- /**
819
- * Total count: 49 atomic components
820
- */
821
- export const TOTAL_COMPONENT_COUNT = 49;
822
- //# sourceMappingURL=atomic-components-registry.js.map