@specverse/engines 4.1.30 → 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 (226) 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/react-starter/app-tsx-generator.js +110 -0
  45. package/dist/libs/instance-factories/applications/templates/react-starter/dashboard-body-composer.js +121 -0
  46. package/dist/libs/instance-factories/applications/templates/react-starter/detail-body-composer.js +78 -0
  47. package/dist/libs/instance-factories/applications/templates/react-starter/form-body-composer.js +190 -0
  48. package/dist/libs/instance-factories/applications/templates/react-starter/helpers-emitter.js +45 -0
  49. package/dist/libs/instance-factories/applications/templates/react-starter/html-to-jsx.js +192 -0
  50. package/dist/libs/instance-factories/applications/templates/react-starter/list-body-composer.js +46 -0
  51. package/dist/libs/instance-factories/applications/templates/react-starter/orchestrator.js +30 -0
  52. package/dist/libs/instance-factories/applications/templates/react-starter/package-json-generator.js +38 -0
  53. package/dist/libs/instance-factories/applications/templates/react-starter/regen-safety.js +89 -0
  54. package/dist/libs/instance-factories/applications/templates/react-starter/view-emitter.js +56 -0
  55. package/dist/libs/instance-factories/applications/templates/react-starter/views-generator.js +66 -0
  56. package/dist/libs/instance-factories/cli/templates/commander/command-generator.js +14 -11
  57. package/dist/realize/index.d.ts.map +1 -1
  58. package/dist/realize/index.js +15 -22
  59. package/dist/realize/index.js.map +1 -1
  60. package/dist/registry/utils/manifest-adapter.d.ts +8 -1
  61. package/dist/registry/utils/manifest-adapter.d.ts.map +1 -1
  62. package/dist/registry/utils/manifest-adapter.js +8 -1
  63. package/dist/registry/utils/manifest-adapter.js.map +1 -1
  64. package/libs/instance-factories/applications/react-app-starter.yaml +150 -0
  65. package/libs/instance-factories/applications/templates/react-starter/README.md +211 -0
  66. package/libs/instance-factories/applications/templates/react-starter/__tests__/dashboard-body-composer.test.ts +153 -0
  67. package/libs/instance-factories/applications/templates/react-starter/__tests__/detail-body-composer.test.ts +145 -0
  68. package/libs/instance-factories/applications/templates/react-starter/__tests__/form-body-composer.test.ts +175 -0
  69. package/libs/instance-factories/applications/templates/react-starter/__tests__/helpers-emitter.test.ts +55 -0
  70. package/libs/instance-factories/applications/templates/react-starter/__tests__/html-to-jsx.test.ts +140 -0
  71. package/libs/instance-factories/applications/templates/react-starter/__tests__/list-body-composer.test.ts +146 -0
  72. package/libs/instance-factories/applications/templates/react-starter/__tests__/orchestrator.test.ts +163 -0
  73. package/libs/instance-factories/applications/templates/react-starter/__tests__/parity-p2-factory-imports.test.ts +116 -0
  74. package/libs/instance-factories/applications/templates/react-starter/__tests__/parity-p3-rendered-output.test.ts +183 -0
  75. package/libs/instance-factories/applications/templates/react-starter/__tests__/regen-safety.test.ts +144 -0
  76. package/libs/instance-factories/applications/templates/react-starter/__tests__/starter-generators.test.ts +114 -0
  77. package/libs/instance-factories/applications/templates/react-starter/__tests__/view-emitter.test.ts +107 -0
  78. package/libs/instance-factories/applications/templates/react-starter/__tests__/views-generator.test.ts +139 -0
  79. package/libs/instance-factories/applications/templates/react-starter/app-tsx-generator.ts +141 -0
  80. package/libs/instance-factories/applications/templates/react-starter/dashboard-body-composer.ts +174 -0
  81. package/libs/instance-factories/applications/templates/react-starter/detail-body-composer.ts +135 -0
  82. package/libs/instance-factories/applications/templates/react-starter/form-body-composer.ts +306 -0
  83. package/libs/instance-factories/applications/templates/react-starter/helpers-emitter.ts +60 -0
  84. package/libs/instance-factories/applications/templates/react-starter/html-to-jsx.ts +334 -0
  85. package/libs/instance-factories/applications/templates/react-starter/list-body-composer.ts +120 -0
  86. package/libs/instance-factories/applications/templates/react-starter/orchestrator.ts +80 -0
  87. package/libs/instance-factories/applications/templates/react-starter/package-json-generator.ts +57 -0
  88. package/libs/instance-factories/applications/templates/react-starter/regen-safety.ts +157 -0
  89. package/libs/instance-factories/applications/templates/react-starter/skeletons/dashboard.tsx.template +47 -0
  90. package/libs/instance-factories/applications/templates/react-starter/skeletons/detail.tsx.template +94 -0
  91. package/libs/instance-factories/applications/templates/react-starter/skeletons/form.tsx.template +114 -0
  92. package/libs/instance-factories/applications/templates/react-starter/skeletons/list.tsx.template +72 -0
  93. package/libs/instance-factories/applications/templates/react-starter/view-emitter.ts +151 -0
  94. package/libs/instance-factories/applications/templates/react-starter/views-generator.ts +137 -0
  95. package/libs/instance-factories/cli/templates/commander/command-generator.ts +14 -11
  96. package/package.json +3 -3
  97. package/dist/libs/instance-factories/applications/templates/react/_view-components-source.js +0 -530
  98. package/dist/libs/instance-factories/applications/templates/react/app-tsx-generator.js +0 -73
  99. package/dist/libs/instance-factories/applications/templates/react/field-helpers-generator.js +0 -99
  100. package/dist/libs/instance-factories/applications/templates/react/package-json-generator.js +0 -49
  101. package/dist/libs/instance-factories/applications/templates/react/pattern-adapter-generator.js +0 -156
  102. package/dist/libs/instance-factories/applications/templates/react/react-pattern-adapter.js +0 -935
  103. package/dist/libs/instance-factories/applications/templates/react/relationship-field-generator.js +0 -143
  104. package/dist/libs/instance-factories/applications/templates/react/tailwind-adapter-generator.js +0 -646
  105. package/dist/libs/instance-factories/applications/templates/react/tailwind-adapter-wrapper-generator.js +0 -65
  106. package/dist/libs/instance-factories/applications/templates/react/view-dashboard-generator.js +0 -143
  107. package/dist/libs/instance-factories/applications/templates/react/view-detail-generator.js +0 -143
  108. package/dist/libs/instance-factories/applications/templates/react/view-form-generator.js +0 -355
  109. package/dist/libs/instance-factories/applications/templates/react/view-list-generator.js +0 -91
  110. package/dist/libs/instance-factories/applications/templates/react/view-router-generator.js +0 -79
  111. package/dist/libs/instance-factories/views/index.js +0 -48
  112. package/dist/libs/instance-factories/views/templates/react/adapters/antd-adapter.js +0 -742
  113. package/dist/libs/instance-factories/views/templates/react/adapters/mui-adapter.js +0 -824
  114. package/dist/libs/instance-factories/views/templates/react/adapters/shadcn-adapter.js +0 -719
  115. package/dist/libs/instance-factories/views/templates/react/app-generator.js +0 -45
  116. package/dist/libs/instance-factories/views/templates/react/components-generator.js +0 -820
  117. package/dist/libs/instance-factories/views/templates/react/forms-generator.js +0 -275
  118. package/dist/libs/instance-factories/views/templates/react/frontend-package-json-generator.js +0 -46
  119. package/dist/libs/instance-factories/views/templates/react/hooks-generator.js +0 -81
  120. package/dist/libs/instance-factories/views/templates/react/index-css-generator.js +0 -9
  121. package/dist/libs/instance-factories/views/templates/react/index-html-generator.js +0 -23
  122. package/dist/libs/instance-factories/views/templates/react/main-tsx-generator.js +0 -21
  123. package/dist/libs/instance-factories/views/templates/react/react-component-generator.js +0 -299
  124. package/dist/libs/instance-factories/views/templates/react/router-generator.js +0 -136
  125. package/dist/libs/instance-factories/views/templates/react/router-generic-generator.js +0 -107
  126. package/dist/libs/instance-factories/views/templates/react/shared-utils-generator.js +0 -187
  127. package/dist/libs/instance-factories/views/templates/react/spec-json-generator.js +0 -7
  128. package/dist/libs/instance-factories/views/templates/react/types-generator.js +0 -56
  129. package/dist/libs/instance-factories/views/templates/react/views-metadata-generator.js +0 -27
  130. package/dist/libs/instance-factories/views/templates/react/vite-config-generator.js +0 -29
  131. package/dist/libs/instance-factories/views/templates/runtime/runtime-view-renderer.js +0 -261
  132. package/dist/libs/instance-factories/views/templates/shared/adapter-types.js +0 -34
  133. package/dist/libs/instance-factories/views/templates/shared/atomic-components-registry.js +0 -800
  134. package/dist/libs/instance-factories/views/templates/shared/base-generator.js +0 -305
  135. package/dist/libs/instance-factories/views/templates/shared/component-metadata.js +0 -517
  136. package/dist/libs/instance-factories/views/templates/shared/composite-pattern-types.js +0 -0
  137. package/dist/libs/instance-factories/views/templates/shared/composite-patterns.js +0 -445
  138. package/dist/libs/instance-factories/views/templates/shared/index.js +0 -80
  139. package/dist/libs/instance-factories/views/templates/shared/pattern-validator.js +0 -210
  140. package/dist/libs/instance-factories/views/templates/shared/property-mapper.js +0 -492
  141. package/dist/libs/instance-factories/views/templates/shared/syntax-mapper.js +0 -321
  142. package/dist/realize/index.js.bak +0 -758
  143. package/libs/instance-factories/applications/react-app.yaml +0 -186
  144. package/libs/instance-factories/applications/templates/react/_view-components-source.ts +0 -555
  145. package/libs/instance-factories/applications/templates/react/app-tsx-generator.ts +0 -94
  146. package/libs/instance-factories/applications/templates/react/field-helpers-generator.ts +0 -106
  147. package/libs/instance-factories/applications/templates/react/package-json-generator.ts +0 -57
  148. package/libs/instance-factories/applications/templates/react/pattern-adapter-generator.ts +0 -179
  149. package/libs/instance-factories/applications/templates/react/react-pattern-adapter.tsx +0 -1347
  150. package/libs/instance-factories/applications/templates/react/relationship-field-generator.ts +0 -150
  151. package/libs/instance-factories/applications/templates/react/tailwind-adapter-generator.ts +0 -704
  152. package/libs/instance-factories/applications/templates/react/tailwind-adapter-wrapper-generator.ts +0 -84
  153. package/libs/instance-factories/applications/templates/react/view-dashboard-generator.ts +0 -150
  154. package/libs/instance-factories/applications/templates/react/view-detail-generator.ts +0 -150
  155. package/libs/instance-factories/applications/templates/react/view-form-generator.ts +0 -362
  156. package/libs/instance-factories/applications/templates/react/view-list-generator.ts +0 -98
  157. package/libs/instance-factories/applications/templates/react/view-router-generator.ts +0 -89
  158. package/libs/instance-factories/views/README.md +0 -62
  159. package/libs/instance-factories/views/index.d.ts +0 -13
  160. package/libs/instance-factories/views/index.d.ts.map +0 -1
  161. package/libs/instance-factories/views/index.js +0 -18
  162. package/libs/instance-factories/views/index.js.map +0 -1
  163. package/libs/instance-factories/views/index.ts +0 -45
  164. package/libs/instance-factories/views/react-components.yaml +0 -129
  165. package/libs/instance-factories/views/templates/ARCHITECTURE.md +0 -198
  166. package/libs/instance-factories/views/templates/react/adapters/antd-adapter.ts +0 -869
  167. package/libs/instance-factories/views/templates/react/adapters/mui-adapter.ts +0 -953
  168. package/libs/instance-factories/views/templates/react/adapters/shadcn-adapter.ts +0 -806
  169. package/libs/instance-factories/views/templates/react/app-generator.ts +0 -55
  170. package/libs/instance-factories/views/templates/react/components-generator.ts +0 -938
  171. package/libs/instance-factories/views/templates/react/forms-generator.ts +0 -325
  172. package/libs/instance-factories/views/templates/react/frontend-package-json-generator.ts +0 -57
  173. package/libs/instance-factories/views/templates/react/hooks-generator.ts +0 -106
  174. package/libs/instance-factories/views/templates/react/index-css-generator.ts +0 -14
  175. package/libs/instance-factories/views/templates/react/index-html-generator.ts +0 -34
  176. package/libs/instance-factories/views/templates/react/main-tsx-generator.ts +0 -29
  177. package/libs/instance-factories/views/templates/react/react-component-generator.d.ts +0 -152
  178. package/libs/instance-factories/views/templates/react/react-component-generator.d.ts.map +0 -1
  179. package/libs/instance-factories/views/templates/react/react-component-generator.js +0 -398
  180. package/libs/instance-factories/views/templates/react/react-component-generator.js.map +0 -1
  181. package/libs/instance-factories/views/templates/react/react-component-generator.ts +0 -533
  182. package/libs/instance-factories/views/templates/react/router-generator.ts +0 -197
  183. package/libs/instance-factories/views/templates/react/router-generic-generator.ts +0 -132
  184. package/libs/instance-factories/views/templates/react/shared-utils-generator.ts +0 -196
  185. package/libs/instance-factories/views/templates/react/spec-json-generator.ts +0 -17
  186. package/libs/instance-factories/views/templates/react/types-generator.ts +0 -76
  187. package/libs/instance-factories/views/templates/react/views-metadata-generator.ts +0 -42
  188. package/libs/instance-factories/views/templates/react/vite-config-generator.ts +0 -38
  189. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.d.ts.map +0 -1
  190. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.js.map +0 -1
  191. package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.ts +0 -474
  192. package/libs/instance-factories/views/templates/shared/__tests__/composite-patterns.test.ts +0 -242
  193. package/libs/instance-factories/views/templates/shared/adapter-types.d.ts +0 -77
  194. package/libs/instance-factories/views/templates/shared/adapter-types.d.ts.map +0 -1
  195. package/libs/instance-factories/views/templates/shared/adapter-types.js +0 -47
  196. package/libs/instance-factories/views/templates/shared/adapter-types.js.map +0 -1
  197. package/libs/instance-factories/views/templates/shared/adapter-types.ts +0 -142
  198. package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts +0 -63
  199. package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts.map +0 -1
  200. package/libs/instance-factories/views/templates/shared/atomic-components-registry.js +0 -822
  201. package/libs/instance-factories/views/templates/shared/atomic-components-registry.js.map +0 -1
  202. package/libs/instance-factories/views/templates/shared/atomic-components-registry.ts +0 -908
  203. package/libs/instance-factories/views/templates/shared/base-generator.d.ts +0 -247
  204. package/libs/instance-factories/views/templates/shared/base-generator.d.ts.map +0 -1
  205. package/libs/instance-factories/views/templates/shared/base-generator.js +0 -363
  206. package/libs/instance-factories/views/templates/shared/base-generator.js.map +0 -1
  207. package/libs/instance-factories/views/templates/shared/base-generator.ts +0 -608
  208. package/libs/instance-factories/views/templates/shared/component-metadata.d.ts +0 -254
  209. package/libs/instance-factories/views/templates/shared/component-metadata.d.ts.map +0 -1
  210. package/libs/instance-factories/views/templates/shared/component-metadata.js +0 -602
  211. package/libs/instance-factories/views/templates/shared/component-metadata.js.map +0 -1
  212. package/libs/instance-factories/views/templates/shared/component-metadata.ts +0 -803
  213. package/libs/instance-factories/views/templates/shared/composite-pattern-types.ts +0 -250
  214. package/libs/instance-factories/views/templates/shared/composite-patterns.ts +0 -535
  215. package/libs/instance-factories/views/templates/shared/index.ts +0 -68
  216. package/libs/instance-factories/views/templates/shared/pattern-validator.ts +0 -279
  217. package/libs/instance-factories/views/templates/shared/property-mapper.d.ts +0 -149
  218. package/libs/instance-factories/views/templates/shared/property-mapper.d.ts.map +0 -1
  219. package/libs/instance-factories/views/templates/shared/property-mapper.js +0 -580
  220. package/libs/instance-factories/views/templates/shared/property-mapper.js.map +0 -1
  221. package/libs/instance-factories/views/templates/shared/property-mapper.ts +0 -700
  222. package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts +0 -143
  223. package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts.map +0 -1
  224. package/libs/instance-factories/views/templates/shared/syntax-mapper.js +0 -420
  225. package/libs/instance-factories/views/templates/shared/syntax-mapper.js.map +0 -1
  226. 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