@specverse/engines 4.1.5 → 4.1.7

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