@tpitre/story-ui 2.7.1 → 2.8.1

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 (292) hide show
  1. package/README.md +40 -9
  2. package/dist/cli/deploy.d.ts +1 -1
  3. package/dist/cli/deploy.d.ts.map +1 -1
  4. package/dist/cli/deploy.js +5 -115
  5. package/dist/cli/index.js +0 -0
  6. package/dist/cli/setup.js +3 -3
  7. package/dist/templates/StoryUI/StoryUIPanel.d.ts.map +1 -1
  8. package/dist/templates/StoryUI/StoryUIPanel.js +30 -2
  9. package/package.json +1 -1
  10. package/templates/StoryUI/StoryUIPanel.tsx +35 -2
  11. package/dist/cli/index.js.map +0 -1
  12. package/dist/cli/setup.js.map +0 -1
  13. package/dist/cloudflare-edge/src/mcp-session.js +0 -462
  14. package/dist/cloudflare-edge/src/types.js +0 -4
  15. package/dist/cloudflare-edge/src/worker.js +0 -106
  16. package/dist/cloudflare-pages/vite.config.js +0 -14
  17. package/dist/index.d.ts +0 -13
  18. package/dist/index.d.ts.map +0 -1
  19. package/dist/index.js +0 -12
  20. package/dist/index.js.map +0 -1
  21. package/dist/mcp-server/index.js.map +0 -1
  22. package/dist/mcp-server/mcp-stdio-server.js.map +0 -1
  23. package/dist/mcp-server/routes/claude.js.map +0 -1
  24. package/dist/mcp-server/routes/components.js.map +0 -1
  25. package/dist/mcp-server/routes/generateStory.js.map +0 -1
  26. package/dist/mcp-server/routes/hybridStories.js.map +0 -1
  27. package/dist/mcp-server/routes/memoryStories.js.map +0 -1
  28. package/dist/mcp-server/routes/storySync.js.map +0 -1
  29. package/dist/mcp-server/routes/updateStory.js +0 -246
  30. package/dist/mcp-server/sessionManager.js.map +0 -1
  31. package/dist/playground/components/AIAssistant/AIAssistant.d.ts +0 -6
  32. package/dist/playground/components/AIAssistant/AIAssistant.d.ts.map +0 -1
  33. package/dist/playground/components/AIAssistant/AIAssistant.js +0 -109
  34. package/dist/playground/components/AIAssistant/AIAssistant.js.map +0 -1
  35. package/dist/playground/components/AIAssistant/AIAssistant.module.css +0 -166
  36. package/dist/playground/components/Canvas/Canvas.d.ts +0 -9
  37. package/dist/playground/components/Canvas/Canvas.d.ts.map +0 -1
  38. package/dist/playground/components/Canvas/Canvas.js +0 -58
  39. package/dist/playground/components/Canvas/Canvas.js.map +0 -1
  40. package/dist/playground/components/Canvas/Canvas.module.css +0 -189
  41. package/dist/playground/components/Canvas/CanvasWithDnd.d.ts +0 -9
  42. package/dist/playground/components/Canvas/CanvasWithDnd.d.ts.map +0 -1
  43. package/dist/playground/components/Canvas/CanvasWithDnd.js +0 -158
  44. package/dist/playground/components/Canvas/CanvasWithDnd.js.map +0 -1
  45. package/dist/playground/components/Canvas/ComponentRenderer.d.ts +0 -15
  46. package/dist/playground/components/Canvas/ComponentRenderer.d.ts.map +0 -1
  47. package/dist/playground/components/Canvas/ComponentRenderer.js +0 -177
  48. package/dist/playground/components/Canvas/ComponentRenderer.js.map +0 -1
  49. package/dist/playground/components/Canvas/DraggableComponent.d.ts +0 -15
  50. package/dist/playground/components/Canvas/DraggableComponent.d.ts.map +0 -1
  51. package/dist/playground/components/Canvas/DraggableComponent.js +0 -49
  52. package/dist/playground/components/Canvas/DraggableComponent.js.map +0 -1
  53. package/dist/playground/components/Canvas/index.d.ts +0 -9
  54. package/dist/playground/components/Canvas/index.d.ts.map +0 -1
  55. package/dist/playground/components/Canvas/index.js +0 -5
  56. package/dist/playground/components/Canvas/index.js.map +0 -1
  57. package/dist/playground/components/CodeView/CodeView.d.ts +0 -12
  58. package/dist/playground/components/CodeView/CodeView.d.ts.map +0 -1
  59. package/dist/playground/components/CodeView/CodeView.js +0 -77
  60. package/dist/playground/components/CodeView/CodeView.js.map +0 -1
  61. package/dist/playground/components/CodeView/CodeView.module.css +0 -178
  62. package/dist/playground/components/ComponentPalette/ComponentPalette.d.ts +0 -17
  63. package/dist/playground/components/ComponentPalette/ComponentPalette.d.ts.map +0 -1
  64. package/dist/playground/components/ComponentPalette/ComponentPalette.js +0 -138
  65. package/dist/playground/components/ComponentPalette/ComponentPalette.js.map +0 -1
  66. package/dist/playground/components/ComponentPalette/ComponentPalette.module.css +0 -217
  67. package/dist/playground/components/ComponentPalette/index.d.ts +0 -3
  68. package/dist/playground/components/ComponentPalette/index.d.ts.map +0 -1
  69. package/dist/playground/components/ComponentPalette/index.js +0 -2
  70. package/dist/playground/components/ComponentPalette/index.js.map +0 -1
  71. package/dist/playground/components/DropZone/DropZone.d.ts +0 -17
  72. package/dist/playground/components/DropZone/DropZone.d.ts.map +0 -1
  73. package/dist/playground/components/DropZone/DropZone.js +0 -73
  74. package/dist/playground/components/DropZone/DropZone.js.map +0 -1
  75. package/dist/playground/components/DropZone/DropZone.module.css +0 -86
  76. package/dist/playground/components/ExportDialog/ExportDialog.d.ts +0 -10
  77. package/dist/playground/components/ExportDialog/ExportDialog.d.ts.map +0 -1
  78. package/dist/playground/components/ExportDialog/ExportDialog.js +0 -57
  79. package/dist/playground/components/ExportDialog/ExportDialog.js.map +0 -1
  80. package/dist/playground/components/ExportDialog/ExportDialog.module.css +0 -328
  81. package/dist/playground/components/LayoutHelpers/LayoutHelpers.d.ts +0 -134
  82. package/dist/playground/components/LayoutHelpers/LayoutHelpers.d.ts.map +0 -1
  83. package/dist/playground/components/LayoutHelpers/LayoutHelpers.js +0 -254
  84. package/dist/playground/components/LayoutHelpers/LayoutHelpers.js.map +0 -1
  85. package/dist/playground/components/LayoutHelpers/index.d.ts +0 -3
  86. package/dist/playground/components/LayoutHelpers/index.d.ts.map +0 -1
  87. package/dist/playground/components/LayoutHelpers/index.js +0 -2
  88. package/dist/playground/components/LayoutHelpers/index.js.map +0 -1
  89. package/dist/playground/components/Playground/Playground.d.ts +0 -10
  90. package/dist/playground/components/Playground/Playground.d.ts.map +0 -1
  91. package/dist/playground/components/Playground/Playground.js +0 -128
  92. package/dist/playground/components/Playground/Playground.js.map +0 -1
  93. package/dist/playground/components/Playground/Playground.module.css +0 -308
  94. package/dist/playground/components/PropertiesPanel/PropertiesPanel.d.ts +0 -10
  95. package/dist/playground/components/PropertiesPanel/PropertiesPanel.d.ts.map +0 -1
  96. package/dist/playground/components/PropertiesPanel/PropertiesPanel.js +0 -150
  97. package/dist/playground/components/PropertiesPanel/PropertiesPanel.js.map +0 -1
  98. package/dist/playground/components/PropertiesPanel/PropertiesPanel.module.css +0 -155
  99. package/dist/playground/components/PropertiesPanel/index.d.ts +0 -3
  100. package/dist/playground/components/PropertiesPanel/index.d.ts.map +0 -1
  101. package/dist/playground/components/PropertiesPanel/index.js +0 -2
  102. package/dist/playground/components/PropertiesPanel/index.js.map +0 -1
  103. package/dist/playground/components/PropertyEditors/BooleanEditor.d.ts +0 -12
  104. package/dist/playground/components/PropertyEditors/BooleanEditor.d.ts.map +0 -1
  105. package/dist/playground/components/PropertyEditors/BooleanEditor.js +0 -14
  106. package/dist/playground/components/PropertyEditors/BooleanEditor.js.map +0 -1
  107. package/dist/playground/components/PropertyEditors/ColorEditor.d.ts +0 -12
  108. package/dist/playground/components/PropertyEditors/ColorEditor.d.ts.map +0 -1
  109. package/dist/playground/components/PropertyEditors/ColorEditor.js +0 -62
  110. package/dist/playground/components/PropertyEditors/ColorEditor.js.map +0 -1
  111. package/dist/playground/components/PropertyEditors/IconEditor.d.ts +0 -12
  112. package/dist/playground/components/PropertyEditors/IconEditor.d.ts.map +0 -1
  113. package/dist/playground/components/PropertyEditors/IconEditor.js +0 -123
  114. package/dist/playground/components/PropertyEditors/IconEditor.js.map +0 -1
  115. package/dist/playground/components/PropertyEditors/NumberEditor.d.ts +0 -15
  116. package/dist/playground/components/PropertyEditors/NumberEditor.d.ts.map +0 -1
  117. package/dist/playground/components/PropertyEditors/NumberEditor.js +0 -46
  118. package/dist/playground/components/PropertyEditors/NumberEditor.js.map +0 -1
  119. package/dist/playground/components/PropertyEditors/PropertyEditors.module.css +0 -432
  120. package/dist/playground/components/PropertyEditors/SelectEditor.d.ts +0 -19
  121. package/dist/playground/components/PropertyEditors/SelectEditor.d.ts.map +0 -1
  122. package/dist/playground/components/PropertyEditors/SelectEditor.js +0 -17
  123. package/dist/playground/components/PropertyEditors/SelectEditor.js.map +0 -1
  124. package/dist/playground/components/PropertyEditors/SpacingEditor.d.ts +0 -19
  125. package/dist/playground/components/PropertyEditors/SpacingEditor.d.ts.map +0 -1
  126. package/dist/playground/components/PropertyEditors/SpacingEditor.js +0 -162
  127. package/dist/playground/components/PropertyEditors/SpacingEditor.js.map +0 -1
  128. package/dist/playground/components/PropertyEditors/SpacingEditor.module.css +0 -214
  129. package/dist/playground/components/PropertyEditors/TextEditor.d.ts +0 -14
  130. package/dist/playground/components/PropertyEditors/TextEditor.d.ts.map +0 -1
  131. package/dist/playground/components/PropertyEditors/TextEditor.js +0 -38
  132. package/dist/playground/components/PropertyEditors/TextEditor.js.map +0 -1
  133. package/dist/playground/components/PropertyEditors/TokenEditor.d.ts +0 -23
  134. package/dist/playground/components/PropertyEditors/TokenEditor.d.ts.map +0 -1
  135. package/dist/playground/components/PropertyEditors/TokenEditor.js +0 -50
  136. package/dist/playground/components/PropertyEditors/TokenEditor.js.map +0 -1
  137. package/dist/playground/components/PropertyEditors/index.d.ts +0 -20
  138. package/dist/playground/components/PropertyEditors/index.d.ts.map +0 -1
  139. package/dist/playground/components/PropertyEditors/index.js +0 -12
  140. package/dist/playground/components/PropertyEditors/index.js.map +0 -1
  141. package/dist/playground/components/TreeView/TreeView.d.ts +0 -10
  142. package/dist/playground/components/TreeView/TreeView.d.ts.map +0 -1
  143. package/dist/playground/components/TreeView/TreeView.js +0 -146
  144. package/dist/playground/components/TreeView/TreeView.js.map +0 -1
  145. package/dist/playground/components/TreeView/TreeView.module.css +0 -214
  146. package/dist/playground/components/TreeView/index.d.ts +0 -3
  147. package/dist/playground/components/TreeView/index.d.ts.map +0 -1
  148. package/dist/playground/components/TreeView/index.js +0 -2
  149. package/dist/playground/components/TreeView/index.js.map +0 -1
  150. package/dist/playground/config/propertyDefinitions.d.ts +0 -73
  151. package/dist/playground/config/propertyDefinitions.d.ts.map +0 -1
  152. package/dist/playground/config/propertyDefinitions.js +0 -809
  153. package/dist/playground/config/propertyDefinitions.js.map +0 -1
  154. package/dist/playground/hooks/useKeyboardShortcuts.d.ts +0 -38
  155. package/dist/playground/hooks/useKeyboardShortcuts.d.ts.map +0 -1
  156. package/dist/playground/hooks/useKeyboardShortcuts.js +0 -191
  157. package/dist/playground/hooks/useKeyboardShortcuts.js.map +0 -1
  158. package/dist/playground/index.d.ts +0 -21
  159. package/dist/playground/index.d.ts.map +0 -1
  160. package/dist/playground/index.js +0 -23
  161. package/dist/playground/index.js.map +0 -1
  162. package/dist/playground/services/CodeGenerator.d.ts +0 -73
  163. package/dist/playground/services/CodeGenerator.d.ts.map +0 -1
  164. package/dist/playground/services/CodeGenerator.js +0 -359
  165. package/dist/playground/services/CodeGenerator.js.map +0 -1
  166. package/dist/playground/services/DragDropManager.d.ts +0 -95
  167. package/dist/playground/services/DragDropManager.d.ts.map +0 -1
  168. package/dist/playground/services/DragDropManager.js +0 -408
  169. package/dist/playground/services/DragDropManager.js.map +0 -1
  170. package/dist/playground/services/StoryParser.d.ts +0 -73
  171. package/dist/playground/services/StoryParser.d.ts.map +0 -1
  172. package/dist/playground/services/StoryParser.js +0 -419
  173. package/dist/playground/services/StoryParser.js.map +0 -1
  174. package/dist/playground/store/playgroundStore.d.ts +0 -86
  175. package/dist/playground/store/playgroundStore.d.ts.map +0 -1
  176. package/dist/playground/store/playgroundStore.js +0 -337
  177. package/dist/playground/store/playgroundStore.js.map +0 -1
  178. package/dist/playground/stories/PlaygroundDragDrop.stories.d.ts +0 -13
  179. package/dist/playground/stories/PlaygroundDragDrop.stories.d.ts.map +0 -1
  180. package/dist/playground/stories/PlaygroundDragDrop.stories.js +0 -227
  181. package/dist/playground/stories/PlaygroundDragDrop.stories.js.map +0 -1
  182. package/dist/playground/stories/PlaygroundPhase4.stories.d.ts +0 -13
  183. package/dist/playground/stories/PlaygroundPhase4.stories.d.ts.map +0 -1
  184. package/dist/playground/stories/PlaygroundPhase4.stories.js +0 -334
  185. package/dist/playground/stories/PlaygroundPhase4.stories.js.map +0 -1
  186. package/dist/playground/stories/PlaygroundPhase5.stories.d.ts +0 -14
  187. package/dist/playground/stories/PlaygroundPhase5.stories.d.ts.map +0 -1
  188. package/dist/playground/stories/PlaygroundPhase5.stories.js +0 -512
  189. package/dist/playground/stories/PlaygroundPhase5.stories.js.map +0 -1
  190. package/dist/playground/stories/PlaygroundProperties.stories.d.ts +0 -13
  191. package/dist/playground/stories/PlaygroundProperties.stories.d.ts.map +0 -1
  192. package/dist/playground/stories/PlaygroundProperties.stories.js +0 -342
  193. package/dist/playground/stories/PlaygroundProperties.stories.js.map +0 -1
  194. package/dist/playground/types/index.d.ts +0 -251
  195. package/dist/playground/types/index.d.ts.map +0 -1
  196. package/dist/playground/types/index.js +0 -5
  197. package/dist/playground/types/index.js.map +0 -1
  198. package/dist/scripts/verify-framework-adapters.js +0 -105
  199. package/dist/story-generator/componentBlacklist.js.map +0 -1
  200. package/dist/story-generator/componentDiscovery.js.map +0 -1
  201. package/dist/story-generator/configLoader.js.map +0 -1
  202. package/dist/story-generator/considerationsLoader.js.map +0 -1
  203. package/dist/story-generator/documentation-sources.js.map +0 -1
  204. package/dist/story-generator/documentationLoader.js.map +0 -1
  205. package/dist/story-generator/dynamicPackageDiscovery.js.map +0 -1
  206. package/dist/story-generator/enhancedComponentDiscovery.js.map +0 -1
  207. package/dist/story-generator/generateStory.js.map +0 -1
  208. package/dist/story-generator/gitignoreManager.js.map +0 -1
  209. package/dist/story-generator/inMemoryStoryService.js.map +0 -1
  210. package/dist/story-generator/logger.js.map +0 -1
  211. package/dist/story-generator/postProcessStory.js.map +0 -1
  212. package/dist/story-generator/productionGitignoreManager.js.map +0 -1
  213. package/dist/story-generator/promptGenerator.js.map +0 -1
  214. package/dist/story-generator/providerPresets.d.ts +0 -54
  215. package/dist/story-generator/providerPresets.d.ts.map +0 -1
  216. package/dist/story-generator/providerPresets.js +0 -214
  217. package/dist/story-generator/storyHistory.js.map +0 -1
  218. package/dist/story-generator/storySync.js.map +0 -1
  219. package/dist/story-generator/storyTracker.js.map +0 -1
  220. package/dist/story-generator/storyValidator.js.map +0 -1
  221. package/dist/story-generator/test_validation.d.ts +0 -2
  222. package/dist/story-generator/test_validation.d.ts.map +0 -1
  223. package/dist/story-generator/test_validation.js +0 -51
  224. package/dist/story-generator/universalDesignSystemAdapter.js.map +0 -1
  225. package/dist/story-generator/urlRedirectService.js.map +0 -1
  226. package/dist/story-generator/validateStory.js.map +0 -1
  227. package/dist/story-ui.config.js.map +0 -1
  228. package/dist/story-ui.config.loader.d.ts +0 -36
  229. package/dist/story-ui.config.loader.d.ts.map +0 -1
  230. package/dist/story-ui.config.loader.js +0 -205
  231. package/dist/story-ui.config.loader.js.map +0 -1
  232. package/dist/temp/package/templates/StoryUI/StoryUIPanel.js +0 -807
  233. package/dist/temp/package/templates/StoryUI/StoryUIPanel.stories.js +0 -37
  234. package/dist/temp/package/templates/StoryUI/index.js +0 -2
  235. package/dist/templates/StoryUI/StoryUIPanel.js.map +0 -1
  236. package/dist/templates/StoryUI/StoryUIPanel.stories.js.map +0 -1
  237. package/dist/templates/StoryUI/index.js.map +0 -1
  238. package/dist/templates/StoryUI/manager.d.ts +0 -14
  239. package/dist/templates/StoryUI/manager.d.ts.map +0 -1
  240. package/dist/templates/production-app/src/App.d.ts +0 -10
  241. package/dist/templates/production-app/src/App.d.ts.map +0 -1
  242. package/dist/templates/production-app/src/App.js +0 -653
  243. package/dist/templates/production-app/src/LivePreviewRenderer.d.ts +0 -24
  244. package/dist/templates/production-app/src/LivePreviewRenderer.d.ts.map +0 -1
  245. package/dist/templates/production-app/src/LivePreviewRenderer.js +0 -199
  246. package/dist/templates/production-app/src/componentRegistry.d.ts +0 -20
  247. package/dist/templates/production-app/src/componentRegistry.d.ts.map +0 -1
  248. package/dist/templates/production-app/src/componentRegistry.js +0 -316
  249. package/dist/templates/production-app/src/main.d.ts +0 -9
  250. package/dist/templates/production-app/src/main.d.ts.map +0 -1
  251. package/dist/templates/production-app/src/main.js +0 -18
  252. package/dist/templates/production-app/vite.config.d.ts +0 -3
  253. package/dist/templates/production-app/vite.config.d.ts.map +0 -1
  254. package/dist/templates/production-app/vite.config.js +0 -71
  255. package/dist/test-storybooks/angular-material-storybook/src/main.js +0 -66
  256. package/dist/test-storybooks/chakra-storybook/vite.config.js +0 -6
  257. package/dist/test-storybooks/mantine-storybook/vite.config.js +0 -93
  258. package/dist/test-storybooks/web-components-shoelace/vite.config.js +0 -9
  259. package/dist/tsconfig.tsbuildinfo +0 -1
  260. package/dist/visual-builder/components/Canvas/Canvas.js +0 -70
  261. package/dist/visual-builder/components/Canvas/ComponentRenderer.js +0 -545
  262. package/dist/visual-builder/components/CodeExporter/CodeExporter.js +0 -25
  263. package/dist/visual-builder/components/CodeExporter/codeGenerator.js +0 -99
  264. package/dist/visual-builder/components/ComponentPalette/ComponentPalette.js +0 -8
  265. package/dist/visual-builder/components/ComponentPalette/ComponentPaletteItem.js +0 -51
  266. package/dist/visual-builder/components/EmbeddedVisualBuilder.js +0 -107
  267. package/dist/visual-builder/components/PropertyEditor/PropertyEditor.js +0 -16
  268. package/dist/visual-builder/components/PropertyEditor/PropertyForm.js +0 -88
  269. package/dist/visual-builder/components/PropertyEditor/SpacingControl.js +0 -145
  270. package/dist/visual-builder/components/PropertyEditor/SpacingEditor.js +0 -32
  271. package/dist/visual-builder/components/StoryManager/SaveOnlyManager.js +0 -94
  272. package/dist/visual-builder/components/StoryManager/StoryManager.js +0 -68
  273. package/dist/visual-builder/components/StoryManager/index.js +0 -1
  274. package/dist/visual-builder/components/VisualBuilder.js +0 -256
  275. package/dist/visual-builder/config/componentRegistry.js +0 -1758
  276. package/dist/visual-builder/decorators/VisualBuilderDecorator.js +0 -184
  277. package/dist/visual-builder/example-integration.js +0 -59
  278. package/dist/visual-builder/example.js +0 -23
  279. package/dist/visual-builder/hooks/useDragAndDrop.js +0 -137
  280. package/dist/visual-builder/hooks/useSelection.js +0 -27
  281. package/dist/visual-builder/index.js +0 -7
  282. package/dist/visual-builder/store/visualBuilderStore.js +0 -305
  283. package/dist/visual-builder/types/index.js +0 -1
  284. package/dist/visual-builder/utils/__tests__/storyFileUpdater.test.js +0 -145
  285. package/dist/visual-builder/utils/aiParser.js +0 -336
  286. package/dist/visual-builder/utils/componentTreeUtils.js +0 -111
  287. package/dist/visual-builder/utils/parserValidation.js +0 -122
  288. package/dist/visual-builder/utils/storyFileManager.js +0 -73
  289. package/dist/visual-builder/utils/storyFileUpdater.js +0 -326
  290. package/dist/visual-builder/utils/storyNameExtraction.test.js +0 -211
  291. package/dist/visual-builder/utils/storyPersistence.js +0 -180
  292. package/dist/visual-builder/utils/storyToBuilder.js +0 -813
@@ -1,1758 +0,0 @@
1
- // Mantine spacing tokens
2
- const SPACING_OPTIONS = ['0', 'xs', 'sm', 'md', 'lg', 'xl', 'auto'];
3
- // Common spacing properties for all components
4
- export const SPACING_PROPERTIES = [
5
- // Margin properties
6
- {
7
- name: 'm',
8
- type: 'select',
9
- defaultValue: undefined,
10
- options: SPACING_OPTIONS,
11
- description: 'Margin on all sides',
12
- category: 'spacing'
13
- },
14
- {
15
- name: 'mt',
16
- type: 'select',
17
- defaultValue: undefined,
18
- options: SPACING_OPTIONS,
19
- description: 'Margin top',
20
- category: 'spacing'
21
- },
22
- {
23
- name: 'mr',
24
- type: 'select',
25
- defaultValue: undefined,
26
- options: SPACING_OPTIONS,
27
- description: 'Margin right',
28
- category: 'spacing'
29
- },
30
- {
31
- name: 'mb',
32
- type: 'select',
33
- defaultValue: undefined,
34
- options: SPACING_OPTIONS,
35
- description: 'Margin bottom',
36
- category: 'spacing'
37
- },
38
- {
39
- name: 'ml',
40
- type: 'select',
41
- defaultValue: undefined,
42
- options: SPACING_OPTIONS,
43
- description: 'Margin left',
44
- category: 'spacing'
45
- },
46
- {
47
- name: 'mx',
48
- type: 'select',
49
- defaultValue: undefined,
50
- options: SPACING_OPTIONS,
51
- description: 'Margin horizontal (left and right)',
52
- category: 'spacing'
53
- },
54
- {
55
- name: 'my',
56
- type: 'select',
57
- defaultValue: undefined,
58
- options: SPACING_OPTIONS,
59
- description: 'Margin vertical (top and bottom)',
60
- category: 'spacing'
61
- },
62
- // Padding properties
63
- {
64
- name: 'p',
65
- type: 'select',
66
- defaultValue: undefined,
67
- options: SPACING_OPTIONS,
68
- description: 'Padding on all sides',
69
- category: 'spacing'
70
- },
71
- {
72
- name: 'pt',
73
- type: 'select',
74
- defaultValue: undefined,
75
- options: SPACING_OPTIONS,
76
- description: 'Padding top',
77
- category: 'spacing'
78
- },
79
- {
80
- name: 'pr',
81
- type: 'select',
82
- defaultValue: undefined,
83
- options: SPACING_OPTIONS,
84
- description: 'Padding right',
85
- category: 'spacing'
86
- },
87
- {
88
- name: 'pb',
89
- type: 'select',
90
- defaultValue: undefined,
91
- options: SPACING_OPTIONS,
92
- description: 'Padding bottom',
93
- category: 'spacing'
94
- },
95
- {
96
- name: 'pl',
97
- type: 'select',
98
- defaultValue: undefined,
99
- options: SPACING_OPTIONS,
100
- description: 'Padding left',
101
- category: 'spacing'
102
- },
103
- {
104
- name: 'px',
105
- type: 'select',
106
- defaultValue: undefined,
107
- options: SPACING_OPTIONS,
108
- description: 'Padding horizontal (left and right)',
109
- category: 'spacing'
110
- },
111
- {
112
- name: 'py',
113
- type: 'select',
114
- defaultValue: undefined,
115
- options: SPACING_OPTIONS,
116
- description: 'Padding vertical (top and bottom)',
117
- category: 'spacing'
118
- }
119
- ];
120
- // Helper function to add spacing properties to a component
121
- const addSpacingProperties = (properties) => {
122
- return [...properties, ...SPACING_PROPERTIES];
123
- };
124
- export const MANTINE_COMPONENTS = [
125
- {
126
- type: 'Button',
127
- displayName: 'Button',
128
- category: 'Inputs',
129
- defaultProps: {
130
- variant: 'filled',
131
- size: 'sm',
132
- children: 'Click me'
133
- },
134
- properties: addSpacingProperties([
135
- {
136
- name: 'children',
137
- type: 'string',
138
- defaultValue: 'Click me',
139
- description: 'Button text content',
140
- category: 'content'
141
- },
142
- {
143
- name: 'variant',
144
- type: 'select',
145
- defaultValue: 'filled',
146
- options: ['filled', 'outline', 'light', 'default', 'subtle'],
147
- description: 'Button visual style',
148
- category: 'appearance'
149
- },
150
- {
151
- name: 'size',
152
- type: 'select',
153
- defaultValue: 'sm',
154
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
155
- description: 'Button size',
156
- category: 'appearance'
157
- },
158
- {
159
- name: 'color',
160
- type: 'select',
161
- defaultValue: 'blue',
162
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
163
- description: 'Button color theme',
164
- category: 'appearance'
165
- },
166
- {
167
- name: 'disabled',
168
- type: 'boolean',
169
- defaultValue: false,
170
- description: 'Disable button interaction',
171
- category: 'behavior'
172
- },
173
- {
174
- name: 'fullWidth',
175
- type: 'boolean',
176
- defaultValue: false,
177
- description: 'Make button full width',
178
- category: 'appearance'
179
- }
180
- ])
181
- },
182
- {
183
- type: 'TextInput',
184
- displayName: 'Text Input',
185
- category: 'Inputs',
186
- defaultProps: {
187
- placeholder: 'Enter text...',
188
- size: 'sm'
189
- },
190
- properties: addSpacingProperties([
191
- {
192
- name: 'placeholder',
193
- type: 'string',
194
- defaultValue: 'Enter text...',
195
- description: 'Placeholder text',
196
- category: 'content'
197
- },
198
- {
199
- name: 'label',
200
- type: 'string',
201
- defaultValue: '',
202
- description: 'Input label',
203
- category: 'content'
204
- },
205
- {
206
- name: 'size',
207
- type: 'select',
208
- defaultValue: 'sm',
209
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
210
- description: 'Input size',
211
- category: 'appearance'
212
- },
213
- {
214
- name: 'disabled',
215
- type: 'boolean',
216
- defaultValue: false,
217
- description: 'Disable input',
218
- category: 'behavior'
219
- }
220
- ])
221
- },
222
- {
223
- type: 'Text',
224
- displayName: 'Text',
225
- category: 'Typography',
226
- defaultProps: {
227
- children: 'Sample text',
228
- size: 'sm'
229
- },
230
- properties: addSpacingProperties([
231
- {
232
- name: 'children',
233
- type: 'string',
234
- defaultValue: 'Sample text',
235
- description: 'Text content',
236
- category: 'content'
237
- },
238
- {
239
- name: 'size',
240
- type: 'select',
241
- defaultValue: 'sm',
242
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
243
- description: 'Text size',
244
- category: 'appearance'
245
- },
246
- {
247
- name: 'weight',
248
- type: 'select',
249
- defaultValue: 'normal',
250
- options: ['normal', 'bold', 'lighter'],
251
- description: 'Font weight',
252
- category: 'appearance'
253
- },
254
- {
255
- name: 'color',
256
- type: 'string',
257
- defaultValue: '',
258
- description: 'Text color',
259
- category: 'appearance'
260
- }
261
- ])
262
- },
263
- {
264
- type: 'Title',
265
- displayName: 'Title',
266
- category: 'Typography',
267
- defaultProps: {
268
- children: 'Page Title',
269
- order: 1
270
- },
271
- properties: addSpacingProperties([
272
- {
273
- name: 'children',
274
- type: 'string',
275
- defaultValue: 'Page Title',
276
- description: 'Title text',
277
- category: 'content'
278
- },
279
- {
280
- name: 'order',
281
- type: 'select',
282
- defaultValue: 1,
283
- options: ['1', '2', '3', '4', '5', '6'],
284
- description: 'Heading level (h1-h6)',
285
- category: 'appearance'
286
- },
287
- {
288
- name: 'color',
289
- type: 'string',
290
- defaultValue: '',
291
- description: 'Title color',
292
- category: 'appearance'
293
- }
294
- ])
295
- },
296
- {
297
- type: 'Container',
298
- displayName: 'Container',
299
- category: 'Layout',
300
- defaultProps: {
301
- size: 'md',
302
- children: []
303
- },
304
- properties: addSpacingProperties([
305
- {
306
- name: 'size',
307
- type: 'select',
308
- defaultValue: 'md',
309
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
310
- description: 'Container max width',
311
- category: 'appearance'
312
- },
313
- {
314
- name: 'fluid',
315
- type: 'boolean',
316
- defaultValue: false,
317
- description: 'Full width container',
318
- category: 'behavior'
319
- }
320
- ])
321
- },
322
- {
323
- type: 'Group',
324
- displayName: 'Group',
325
- category: 'Layout',
326
- defaultProps: {
327
- justify: 'flex-start',
328
- align: 'center',
329
- children: []
330
- },
331
- properties: addSpacingProperties([
332
- {
333
- name: 'justify',
334
- type: 'select',
335
- defaultValue: 'flex-start',
336
- options: ['flex-start', 'center', 'flex-end', 'space-between', 'space-around'],
337
- description: 'Horizontal alignment',
338
- category: 'appearance'
339
- },
340
- {
341
- name: 'align',
342
- type: 'select',
343
- defaultValue: 'center',
344
- options: ['flex-start', 'center', 'flex-end', 'stretch'],
345
- description: 'Vertical alignment',
346
- category: 'appearance'
347
- },
348
- {
349
- name: 'gap',
350
- type: 'select',
351
- defaultValue: 'md',
352
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
353
- description: 'Gap between items',
354
- category: 'spacing'
355
- }
356
- ])
357
- },
358
- {
359
- type: 'Stack',
360
- displayName: 'Stack',
361
- category: 'Layout',
362
- defaultProps: {
363
- gap: 'md',
364
- children: []
365
- },
366
- properties: addSpacingProperties([
367
- {
368
- name: 'gap',
369
- type: 'select',
370
- defaultValue: 'md',
371
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
372
- description: 'Gap between items',
373
- category: 'spacing'
374
- },
375
- {
376
- name: 'align',
377
- type: 'select',
378
- defaultValue: 'stretch',
379
- options: ['flex-start', 'center', 'flex-end', 'stretch'],
380
- description: 'Horizontal alignment',
381
- category: 'appearance'
382
- }
383
- ])
384
- },
385
- {
386
- type: 'Card',
387
- displayName: 'Card',
388
- category: 'Layout',
389
- defaultProps: {
390
- shadow: 'sm',
391
- padding: 'lg',
392
- radius: 'md',
393
- withBorder: true,
394
- children: []
395
- },
396
- properties: addSpacingProperties([
397
- {
398
- name: 'shadow',
399
- type: 'select',
400
- defaultValue: 'sm',
401
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
402
- description: 'Card shadow',
403
- category: 'appearance'
404
- },
405
- {
406
- name: 'padding',
407
- type: 'select',
408
- defaultValue: 'lg',
409
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
410
- description: 'Card padding',
411
- category: 'spacing'
412
- },
413
- {
414
- name: 'radius',
415
- type: 'select',
416
- defaultValue: 'md',
417
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
418
- description: 'Border radius',
419
- category: 'appearance'
420
- },
421
- {
422
- name: 'withBorder',
423
- type: 'boolean',
424
- defaultValue: true,
425
- description: 'Show border',
426
- category: 'appearance'
427
- }
428
- ])
429
- },
430
- {
431
- type: 'CardSection',
432
- displayName: 'Card Section',
433
- category: 'Layout',
434
- defaultProps: {
435
- children: []
436
- },
437
- properties: addSpacingProperties([
438
- {
439
- name: 'withBorder',
440
- type: 'boolean',
441
- defaultValue: false,
442
- description: 'Show border around section',
443
- category: 'appearance'
444
- },
445
- {
446
- name: 'inheritPadding',
447
- type: 'boolean',
448
- defaultValue: false,
449
- description: 'Inherit card padding',
450
- category: 'appearance'
451
- }
452
- ])
453
- },
454
- {
455
- type: 'Badge',
456
- displayName: 'Badge',
457
- category: 'Display',
458
- defaultProps: {
459
- children: 'New',
460
- variant: 'filled',
461
- color: 'blue',
462
- size: 'sm'
463
- },
464
- properties: addSpacingProperties([
465
- {
466
- name: 'children',
467
- type: 'string',
468
- defaultValue: 'New',
469
- description: 'Badge text content',
470
- category: 'content'
471
- },
472
- {
473
- name: 'variant',
474
- type: 'select',
475
- defaultValue: 'filled',
476
- options: ['filled', 'light', 'outline', 'dot'],
477
- description: 'Badge variant',
478
- category: 'appearance'
479
- },
480
- {
481
- name: 'color',
482
- type: 'select',
483
- defaultValue: 'blue',
484
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
485
- description: 'Badge color',
486
- category: 'appearance'
487
- },
488
- {
489
- name: 'size',
490
- type: 'select',
491
- defaultValue: 'sm',
492
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
493
- description: 'Badge size',
494
- category: 'appearance'
495
- }
496
- ])
497
- },
498
- {
499
- type: 'Anchor',
500
- displayName: 'Link',
501
- category: 'Navigation',
502
- defaultProps: {
503
- children: 'Link text',
504
- href: '#',
505
- size: 'sm'
506
- },
507
- properties: addSpacingProperties([
508
- {
509
- name: 'children',
510
- type: 'string',
511
- defaultValue: 'Link text',
512
- description: 'Link text content',
513
- category: 'content'
514
- },
515
- {
516
- name: 'href',
517
- type: 'string',
518
- defaultValue: '#',
519
- description: 'Link URL',
520
- category: 'behavior'
521
- },
522
- {
523
- name: 'size',
524
- type: 'select',
525
- defaultValue: 'sm',
526
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
527
- description: 'Link size',
528
- category: 'appearance'
529
- },
530
- {
531
- name: 'underline',
532
- type: 'select',
533
- defaultValue: 'hover',
534
- options: ['always', 'hover', 'never'],
535
- description: 'Underline style',
536
- category: 'appearance'
537
- }
538
- ])
539
- },
540
- {
541
- type: 'Image',
542
- displayName: 'Image',
543
- category: 'Media',
544
- defaultProps: {
545
- src: 'https://images.unsplash.com/photo-1511216335778-7cb8f49fa7a3?w=400&h=300&fit=crop',
546
- alt: 'Sample image',
547
- radius: 'sm',
548
- aspectRatio: '16:9',
549
- fit: 'cover'
550
- },
551
- properties: addSpacingProperties([
552
- {
553
- name: 'src',
554
- type: 'string',
555
- defaultValue: 'https://images.unsplash.com/photo-1511216335778-7cb8f49fa7a3?w=400&h=300&fit=crop',
556
- description: 'Image source URL',
557
- category: 'content'
558
- },
559
- {
560
- name: 'alt',
561
- type: 'string',
562
- defaultValue: 'Sample image',
563
- description: 'Image alt text',
564
- category: 'content'
565
- },
566
- {
567
- name: 'radius',
568
- type: 'select',
569
- defaultValue: 'sm',
570
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
571
- description: 'Image border radius',
572
- category: 'appearance'
573
- },
574
- {
575
- name: 'aspectRatio',
576
- type: 'select',
577
- defaultValue: '16:9',
578
- options: ['16:9', '4:3', '1:1', '3:2', '21:9'],
579
- description: 'Image aspect ratio',
580
- category: 'appearance'
581
- },
582
- {
583
- name: 'fit',
584
- type: 'select',
585
- defaultValue: 'cover',
586
- options: ['contain', 'cover', 'fill', 'none', 'scale-down'],
587
- description: 'How the image fits within its container',
588
- category: 'appearance'
589
- }
590
- ])
591
- },
592
- {
593
- type: 'Divider',
594
- displayName: 'Divider',
595
- category: 'Layout',
596
- defaultProps: {
597
- size: 'xs',
598
- orientation: 'horizontal'
599
- },
600
- properties: addSpacingProperties([
601
- {
602
- name: 'size',
603
- type: 'select',
604
- defaultValue: 'xs',
605
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
606
- description: 'Divider thickness',
607
- category: 'appearance'
608
- },
609
- {
610
- name: 'orientation',
611
- type: 'select',
612
- defaultValue: 'horizontal',
613
- options: ['horizontal', 'vertical'],
614
- description: 'Divider orientation',
615
- category: 'appearance'
616
- },
617
- {
618
- name: 'label',
619
- type: 'string',
620
- defaultValue: '',
621
- description: 'Divider label (optional)',
622
- category: 'content'
623
- },
624
- {
625
- name: 'labelPosition',
626
- type: 'select',
627
- defaultValue: 'center',
628
- options: ['left', 'center', 'right'],
629
- description: 'Label position',
630
- category: 'appearance'
631
- }
632
- ])
633
- },
634
- {
635
- type: 'Paper',
636
- displayName: 'Paper',
637
- category: 'Layout',
638
- defaultProps: {
639
- shadow: 'xs',
640
- radius: 'md',
641
- p: 'md',
642
- withBorder: false,
643
- children: []
644
- },
645
- properties: addSpacingProperties([
646
- {
647
- name: 'shadow',
648
- type: 'select',
649
- defaultValue: 'xs',
650
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
651
- description: 'Paper shadow',
652
- category: 'appearance'
653
- },
654
- {
655
- name: 'radius',
656
- type: 'select',
657
- defaultValue: 'md',
658
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
659
- description: 'Border radius',
660
- category: 'appearance'
661
- },
662
- {
663
- name: 'p',
664
- type: 'select',
665
- defaultValue: 'md',
666
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
667
- description: 'Padding',
668
- category: 'spacing'
669
- },
670
- {
671
- name: 'withBorder',
672
- type: 'boolean',
673
- defaultValue: false,
674
- description: 'Show border',
675
- category: 'appearance'
676
- }
677
- ])
678
- },
679
- {
680
- type: 'Alert',
681
- displayName: 'Alert',
682
- category: 'Feedback',
683
- defaultProps: {
684
- title: 'Alert title',
685
- children: 'This is an alert message',
686
- color: 'blue',
687
- variant: 'light'
688
- },
689
- properties: addSpacingProperties([
690
- {
691
- name: 'title',
692
- type: 'string',
693
- defaultValue: 'Alert title',
694
- description: 'Alert title',
695
- category: 'content'
696
- },
697
- {
698
- name: 'children',
699
- type: 'string',
700
- defaultValue: 'This is an alert message',
701
- description: 'Alert message content',
702
- category: 'content'
703
- },
704
- {
705
- name: 'color',
706
- type: 'select',
707
- defaultValue: 'blue',
708
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
709
- description: 'Alert color',
710
- category: 'appearance'
711
- },
712
- {
713
- name: 'variant',
714
- type: 'select',
715
- defaultValue: 'light',
716
- options: ['filled', 'light', 'outline'],
717
- description: 'Alert variant',
718
- category: 'appearance'
719
- }
720
- ])
721
- },
722
- // Additional Input Components
723
- {
724
- type: 'PasswordInput',
725
- displayName: 'Password Input',
726
- category: 'Inputs',
727
- defaultProps: {
728
- placeholder: 'Enter password...',
729
- size: 'sm'
730
- },
731
- properties: addSpacingProperties([
732
- {
733
- name: 'placeholder',
734
- type: 'string',
735
- defaultValue: 'Enter password...',
736
- description: 'Placeholder text',
737
- category: 'content'
738
- },
739
- {
740
- name: 'label',
741
- type: 'string',
742
- defaultValue: '',
743
- description: 'Input label',
744
- category: 'content'
745
- },
746
- {
747
- name: 'size',
748
- type: 'select',
749
- defaultValue: 'sm',
750
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
751
- description: 'Input size',
752
- category: 'appearance'
753
- },
754
- {
755
- name: 'visible',
756
- type: 'boolean',
757
- defaultValue: false,
758
- description: 'Show password',
759
- category: 'behavior'
760
- },
761
- {
762
- name: 'disabled',
763
- type: 'boolean',
764
- defaultValue: false,
765
- description: 'Disable input',
766
- category: 'behavior'
767
- }
768
- ])
769
- },
770
- {
771
- type: 'Textarea',
772
- displayName: 'Textarea',
773
- category: 'Inputs',
774
- defaultProps: {
775
- placeholder: 'Enter text...',
776
- size: 'sm',
777
- rows: 4
778
- },
779
- properties: addSpacingProperties([
780
- {
781
- name: 'placeholder',
782
- type: 'string',
783
- defaultValue: 'Enter text...',
784
- description: 'Placeholder text',
785
- category: 'content'
786
- },
787
- {
788
- name: 'label',
789
- type: 'string',
790
- defaultValue: '',
791
- description: 'Input label',
792
- category: 'content'
793
- },
794
- {
795
- name: 'size',
796
- type: 'select',
797
- defaultValue: 'sm',
798
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
799
- description: 'Input size',
800
- category: 'appearance'
801
- },
802
- {
803
- name: 'rows',
804
- type: 'number',
805
- defaultValue: 4,
806
- description: 'Number of rows',
807
- category: 'appearance'
808
- },
809
- {
810
- name: 'autosize',
811
- type: 'boolean',
812
- defaultValue: false,
813
- description: 'Auto resize height',
814
- category: 'behavior'
815
- },
816
- {
817
- name: 'disabled',
818
- type: 'boolean',
819
- defaultValue: false,
820
- description: 'Disable input',
821
- category: 'behavior'
822
- }
823
- ])
824
- },
825
- {
826
- type: 'Select',
827
- displayName: 'Select',
828
- category: 'Inputs',
829
- defaultProps: {
830
- placeholder: 'Select option...',
831
- size: 'sm',
832
- data: ['Option 1', 'Option 2', 'Option 3']
833
- },
834
- properties: addSpacingProperties([
835
- {
836
- name: 'placeholder',
837
- type: 'string',
838
- defaultValue: 'Select option...',
839
- description: 'Placeholder text',
840
- category: 'content'
841
- },
842
- {
843
- name: 'label',
844
- type: 'string',
845
- defaultValue: '',
846
- description: 'Input label',
847
- category: 'content'
848
- },
849
- {
850
- name: 'size',
851
- type: 'select',
852
- defaultValue: 'sm',
853
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
854
- description: 'Input size',
855
- category: 'appearance'
856
- },
857
- {
858
- name: 'searchable',
859
- type: 'boolean',
860
- defaultValue: false,
861
- description: 'Enable search',
862
- category: 'behavior'
863
- },
864
- {
865
- name: 'clearable',
866
- type: 'boolean',
867
- defaultValue: false,
868
- description: 'Show clear button',
869
- category: 'behavior'
870
- },
871
- {
872
- name: 'disabled',
873
- type: 'boolean',
874
- defaultValue: false,
875
- description: 'Disable input',
876
- category: 'behavior'
877
- }
878
- ])
879
- },
880
- {
881
- type: 'MultiSelect',
882
- displayName: 'Multi Select',
883
- category: 'Inputs',
884
- defaultProps: {
885
- placeholder: 'Select options...',
886
- size: 'sm',
887
- data: ['Option 1', 'Option 2', 'Option 3']
888
- },
889
- properties: addSpacingProperties([
890
- {
891
- name: 'placeholder',
892
- type: 'string',
893
- defaultValue: 'Select options...',
894
- description: 'Placeholder text',
895
- category: 'content'
896
- },
897
- {
898
- name: 'label',
899
- type: 'string',
900
- defaultValue: '',
901
- description: 'Input label',
902
- category: 'content'
903
- },
904
- {
905
- name: 'size',
906
- type: 'select',
907
- defaultValue: 'sm',
908
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
909
- description: 'Input size',
910
- category: 'appearance'
911
- },
912
- {
913
- name: 'searchable',
914
- type: 'boolean',
915
- defaultValue: true,
916
- description: 'Enable search',
917
- category: 'behavior'
918
- },
919
- {
920
- name: 'clearable',
921
- type: 'boolean',
922
- defaultValue: true,
923
- description: 'Show clear button',
924
- category: 'behavior'
925
- },
926
- {
927
- name: 'disabled',
928
- type: 'boolean',
929
- defaultValue: false,
930
- description: 'Disable input',
931
- category: 'behavior'
932
- }
933
- ])
934
- },
935
- {
936
- type: 'NumberInput',
937
- displayName: 'Number Input',
938
- category: 'Inputs',
939
- defaultProps: {
940
- placeholder: 'Enter number...',
941
- size: 'sm'
942
- },
943
- properties: addSpacingProperties([
944
- {
945
- name: 'placeholder',
946
- type: 'string',
947
- defaultValue: 'Enter number...',
948
- description: 'Placeholder text',
949
- category: 'content'
950
- },
951
- {
952
- name: 'label',
953
- type: 'string',
954
- defaultValue: '',
955
- description: 'Input label',
956
- category: 'content'
957
- },
958
- {
959
- name: 'size',
960
- type: 'select',
961
- defaultValue: 'sm',
962
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
963
- description: 'Input size',
964
- category: 'appearance'
965
- },
966
- {
967
- name: 'min',
968
- type: 'number',
969
- defaultValue: undefined,
970
- description: 'Minimum value',
971
- category: 'behavior'
972
- },
973
- {
974
- name: 'max',
975
- type: 'number',
976
- defaultValue: undefined,
977
- description: 'Maximum value',
978
- category: 'behavior'
979
- },
980
- {
981
- name: 'step',
982
- type: 'number',
983
- defaultValue: 1,
984
- description: 'Step value',
985
- category: 'behavior'
986
- },
987
- {
988
- name: 'disabled',
989
- type: 'boolean',
990
- defaultValue: false,
991
- description: 'Disable input',
992
- category: 'behavior'
993
- }
994
- ])
995
- },
996
- {
997
- type: 'Checkbox',
998
- displayName: 'Checkbox',
999
- category: 'Inputs',
1000
- defaultProps: {
1001
- label: 'Checkbox label',
1002
- size: 'sm'
1003
- },
1004
- properties: addSpacingProperties([
1005
- {
1006
- name: 'label',
1007
- type: 'string',
1008
- defaultValue: 'Checkbox label',
1009
- description: 'Checkbox label',
1010
- category: 'content'
1011
- },
1012
- {
1013
- name: 'size',
1014
- type: 'select',
1015
- defaultValue: 'sm',
1016
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
1017
- description: 'Checkbox size',
1018
- category: 'appearance'
1019
- },
1020
- {
1021
- name: 'color',
1022
- type: 'select',
1023
- defaultValue: 'blue',
1024
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
1025
- description: 'Checkbox color',
1026
- category: 'appearance'
1027
- },
1028
- {
1029
- name: 'indeterminate',
1030
- type: 'boolean',
1031
- defaultValue: false,
1032
- description: 'Indeterminate state',
1033
- category: 'behavior'
1034
- },
1035
- {
1036
- name: 'disabled',
1037
- type: 'boolean',
1038
- defaultValue: false,
1039
- description: 'Disable checkbox',
1040
- category: 'behavior'
1041
- }
1042
- ])
1043
- },
1044
- {
1045
- type: 'Radio',
1046
- displayName: 'Radio',
1047
- category: 'Inputs',
1048
- defaultProps: {
1049
- label: 'Radio label',
1050
- size: 'sm'
1051
- },
1052
- properties: addSpacingProperties([
1053
- {
1054
- name: 'label',
1055
- type: 'string',
1056
- defaultValue: 'Radio label',
1057
- description: 'Radio label',
1058
- category: 'content'
1059
- },
1060
- {
1061
- name: 'size',
1062
- type: 'select',
1063
- defaultValue: 'sm',
1064
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
1065
- description: 'Radio size',
1066
- category: 'appearance'
1067
- },
1068
- {
1069
- name: 'color',
1070
- type: 'select',
1071
- defaultValue: 'blue',
1072
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
1073
- description: 'Radio color',
1074
- category: 'appearance'
1075
- },
1076
- {
1077
- name: 'disabled',
1078
- type: 'boolean',
1079
- defaultValue: false,
1080
- description: 'Disable radio',
1081
- category: 'behavior'
1082
- }
1083
- ])
1084
- },
1085
- {
1086
- type: 'Switch',
1087
- displayName: 'Switch',
1088
- category: 'Inputs',
1089
- defaultProps: {
1090
- label: 'Switch label',
1091
- size: 'sm'
1092
- },
1093
- properties: addSpacingProperties([
1094
- {
1095
- name: 'label',
1096
- type: 'string',
1097
- defaultValue: 'Switch label',
1098
- description: 'Switch label',
1099
- category: 'content'
1100
- },
1101
- {
1102
- name: 'size',
1103
- type: 'select',
1104
- defaultValue: 'sm',
1105
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
1106
- description: 'Switch size',
1107
- category: 'appearance'
1108
- },
1109
- {
1110
- name: 'color',
1111
- type: 'select',
1112
- defaultValue: 'blue',
1113
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
1114
- description: 'Switch color',
1115
- category: 'appearance'
1116
- },
1117
- {
1118
- name: 'disabled',
1119
- type: 'boolean',
1120
- defaultValue: false,
1121
- description: 'Disable switch',
1122
- category: 'behavior'
1123
- }
1124
- ])
1125
- },
1126
- // Layout Components
1127
- {
1128
- type: 'Box',
1129
- displayName: 'Box',
1130
- category: 'Layout',
1131
- defaultProps: {
1132
- children: []
1133
- },
1134
- properties: addSpacingProperties([
1135
- {
1136
- name: 'bg',
1137
- type: 'string',
1138
- defaultValue: '',
1139
- description: 'Background color',
1140
- category: 'appearance'
1141
- },
1142
- {
1143
- name: 'c',
1144
- type: 'string',
1145
- defaultValue: '',
1146
- description: 'Text color',
1147
- category: 'appearance'
1148
- }
1149
- ])
1150
- },
1151
- {
1152
- type: 'Flex',
1153
- displayName: 'Flex',
1154
- category: 'Layout',
1155
- defaultProps: {
1156
- direction: 'row',
1157
- justify: 'flex-start',
1158
- align: 'stretch',
1159
- children: []
1160
- },
1161
- properties: addSpacingProperties([
1162
- {
1163
- name: 'direction',
1164
- type: 'select',
1165
- defaultValue: 'row',
1166
- options: ['row', 'column', 'row-reverse', 'column-reverse'],
1167
- description: 'Flex direction',
1168
- category: 'appearance'
1169
- },
1170
- {
1171
- name: 'justify',
1172
- type: 'select',
1173
- defaultValue: 'flex-start',
1174
- options: ['flex-start', 'center', 'flex-end', 'space-between', 'space-around', 'space-evenly'],
1175
- description: 'Justify content',
1176
- category: 'appearance'
1177
- },
1178
- {
1179
- name: 'align',
1180
- type: 'select',
1181
- defaultValue: 'stretch',
1182
- options: ['stretch', 'flex-start', 'center', 'flex-end', 'baseline'],
1183
- description: 'Align items',
1184
- category: 'appearance'
1185
- },
1186
- {
1187
- name: 'wrap',
1188
- type: 'select',
1189
- defaultValue: 'nowrap',
1190
- options: ['nowrap', 'wrap', 'wrap-reverse'],
1191
- description: 'Flex wrap',
1192
- category: 'appearance'
1193
- },
1194
- {
1195
- name: 'gap',
1196
- type: 'select',
1197
- defaultValue: undefined,
1198
- options: SPACING_OPTIONS,
1199
- description: 'Gap between items',
1200
- category: 'spacing'
1201
- }
1202
- ])
1203
- },
1204
- {
1205
- type: 'Grid',
1206
- displayName: 'Grid',
1207
- category: 'Layout',
1208
- defaultProps: {
1209
- children: []
1210
- },
1211
- properties: addSpacingProperties([
1212
- {
1213
- name: 'columns',
1214
- type: 'number',
1215
- defaultValue: 12,
1216
- description: 'Number of columns',
1217
- category: 'appearance'
1218
- },
1219
- {
1220
- name: 'gutter',
1221
- type: 'select',
1222
- defaultValue: 'md',
1223
- options: SPACING_OPTIONS,
1224
- description: 'Gutter size',
1225
- category: 'spacing'
1226
- },
1227
- {
1228
- name: 'grow',
1229
- type: 'boolean',
1230
- defaultValue: false,
1231
- description: 'Allow columns to grow',
1232
- category: 'behavior'
1233
- }
1234
- ])
1235
- },
1236
- {
1237
- type: 'GridCol',
1238
- displayName: 'Grid Column',
1239
- category: 'Layout',
1240
- defaultProps: {
1241
- span: 12,
1242
- children: []
1243
- },
1244
- properties: addSpacingProperties([
1245
- {
1246
- name: 'span',
1247
- type: 'number',
1248
- defaultValue: 12,
1249
- description: 'Column span',
1250
- category: 'appearance'
1251
- },
1252
- {
1253
- name: 'offset',
1254
- type: 'number',
1255
- defaultValue: 0,
1256
- description: 'Column offset',
1257
- category: 'appearance'
1258
- }
1259
- ])
1260
- },
1261
- {
1262
- type: 'SimpleGrid',
1263
- displayName: 'Simple Grid',
1264
- category: 'Layout',
1265
- defaultProps: {
1266
- cols: 2,
1267
- children: []
1268
- },
1269
- properties: addSpacingProperties([
1270
- {
1271
- name: 'cols',
1272
- type: 'number',
1273
- defaultValue: 2,
1274
- description: 'Number of columns',
1275
- category: 'appearance'
1276
- },
1277
- {
1278
- name: 'spacing',
1279
- type: 'select',
1280
- defaultValue: 'md',
1281
- options: SPACING_OPTIONS,
1282
- description: 'Spacing between items',
1283
- category: 'spacing'
1284
- },
1285
- {
1286
- name: 'verticalSpacing',
1287
- type: 'select',
1288
- defaultValue: undefined,
1289
- options: SPACING_OPTIONS,
1290
- description: 'Vertical spacing',
1291
- category: 'spacing'
1292
- }
1293
- ])
1294
- },
1295
- // Typography Components
1296
- {
1297
- type: 'Code',
1298
- displayName: 'Code',
1299
- category: 'Typography',
1300
- defaultProps: {
1301
- children: 'console.log("Hello world")'
1302
- },
1303
- properties: addSpacingProperties([
1304
- {
1305
- name: 'children',
1306
- type: 'string',
1307
- defaultValue: 'console.log("Hello world")',
1308
- description: 'Code content',
1309
- category: 'content'
1310
- },
1311
- {
1312
- name: 'color',
1313
- type: 'select',
1314
- defaultValue: 'blue',
1315
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
1316
- description: 'Code color',
1317
- category: 'appearance'
1318
- },
1319
- {
1320
- name: 'block',
1321
- type: 'boolean',
1322
- defaultValue: false,
1323
- description: 'Display as block',
1324
- category: 'appearance'
1325
- }
1326
- ])
1327
- },
1328
- {
1329
- type: 'Mark',
1330
- displayName: 'Highlight',
1331
- category: 'Typography',
1332
- defaultProps: {
1333
- children: 'Highlighted text'
1334
- },
1335
- properties: addSpacingProperties([
1336
- {
1337
- name: 'children',
1338
- type: 'string',
1339
- defaultValue: 'Highlighted text',
1340
- description: 'Text to highlight',
1341
- category: 'content'
1342
- },
1343
- {
1344
- name: 'color',
1345
- type: 'select',
1346
- defaultValue: 'yellow',
1347
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
1348
- description: 'Highlight color',
1349
- category: 'appearance'
1350
- }
1351
- ])
1352
- },
1353
- {
1354
- type: 'Blockquote',
1355
- displayName: 'Blockquote',
1356
- category: 'Typography',
1357
- defaultProps: {
1358
- children: 'This is a blockquote',
1359
- cite: '- Author'
1360
- },
1361
- properties: addSpacingProperties([
1362
- {
1363
- name: 'children',
1364
- type: 'string',
1365
- defaultValue: 'This is a blockquote',
1366
- description: 'Quote content',
1367
- category: 'content'
1368
- },
1369
- {
1370
- name: 'cite',
1371
- type: 'string',
1372
- defaultValue: '- Author',
1373
- description: 'Citation',
1374
- category: 'content'
1375
- },
1376
- {
1377
- name: 'color',
1378
- type: 'select',
1379
- defaultValue: 'blue',
1380
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
1381
- description: 'Quote color',
1382
- category: 'appearance'
1383
- }
1384
- ])
1385
- },
1386
- // Display Components
1387
- {
1388
- type: 'Avatar',
1389
- displayName: 'Avatar',
1390
- category: 'Display',
1391
- defaultProps: {
1392
- size: 'md',
1393
- radius: 'xl'
1394
- },
1395
- properties: addSpacingProperties([
1396
- {
1397
- name: 'src',
1398
- type: 'string',
1399
- defaultValue: '',
1400
- description: 'Avatar image URL',
1401
- category: 'content'
1402
- },
1403
- {
1404
- name: 'alt',
1405
- type: 'string',
1406
- defaultValue: '',
1407
- description: 'Alt text',
1408
- category: 'content'
1409
- },
1410
- {
1411
- name: 'size',
1412
- type: 'select',
1413
- defaultValue: 'md',
1414
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
1415
- description: 'Avatar size',
1416
- category: 'appearance'
1417
- },
1418
- {
1419
- name: 'radius',
1420
- type: 'select',
1421
- defaultValue: 'xl',
1422
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
1423
- description: 'Border radius',
1424
- category: 'appearance'
1425
- },
1426
- {
1427
- name: 'color',
1428
- type: 'select',
1429
- defaultValue: 'blue',
1430
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
1431
- description: 'Avatar color',
1432
- category: 'appearance'
1433
- }
1434
- ])
1435
- },
1436
- {
1437
- type: 'Indicator',
1438
- displayName: 'Indicator',
1439
- category: 'Display',
1440
- defaultProps: {
1441
- children: 'Content with indicator',
1442
- label: '5'
1443
- },
1444
- properties: addSpacingProperties([
1445
- {
1446
- name: 'children',
1447
- type: 'string',
1448
- defaultValue: 'Content with indicator',
1449
- description: 'Content to wrap',
1450
- category: 'content'
1451
- },
1452
- {
1453
- name: 'label',
1454
- type: 'string',
1455
- defaultValue: '5',
1456
- description: 'Indicator label',
1457
- category: 'content'
1458
- },
1459
- {
1460
- name: 'size',
1461
- type: 'select',
1462
- defaultValue: 'md',
1463
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
1464
- description: 'Indicator size',
1465
- category: 'appearance'
1466
- },
1467
- {
1468
- name: 'color',
1469
- type: 'select',
1470
- defaultValue: 'red',
1471
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
1472
- description: 'Indicator color',
1473
- category: 'appearance'
1474
- },
1475
- {
1476
- name: 'position',
1477
- type: 'select',
1478
- defaultValue: 'top-end',
1479
- options: ['top-start', 'top-end', 'bottom-start', 'bottom-end'],
1480
- description: 'Indicator position',
1481
- category: 'appearance'
1482
- }
1483
- ])
1484
- },
1485
- // Navigation Components
1486
- {
1487
- type: 'Breadcrumbs',
1488
- displayName: 'Breadcrumbs',
1489
- category: 'Navigation',
1490
- defaultProps: {
1491
- children: ['Home', 'Products', 'Current Page']
1492
- },
1493
- properties: addSpacingProperties([
1494
- {
1495
- name: 'separator',
1496
- type: 'string',
1497
- defaultValue: '/',
1498
- description: 'Separator character',
1499
- category: 'appearance'
1500
- }
1501
- ])
1502
- },
1503
- {
1504
- type: 'Tabs',
1505
- displayName: 'Tabs',
1506
- category: 'Navigation',
1507
- defaultProps: {
1508
- defaultValue: 'tab1',
1509
- children: []
1510
- },
1511
- properties: addSpacingProperties([
1512
- {
1513
- name: 'variant',
1514
- type: 'select',
1515
- defaultValue: 'default',
1516
- options: ['default', 'outline', 'pills'],
1517
- description: 'Tabs variant',
1518
- category: 'appearance'
1519
- },
1520
- {
1521
- name: 'color',
1522
- type: 'select',
1523
- defaultValue: 'blue',
1524
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
1525
- description: 'Tabs color',
1526
- category: 'appearance'
1527
- },
1528
- {
1529
- name: 'orientation',
1530
- type: 'select',
1531
- defaultValue: 'horizontal',
1532
- options: ['horizontal', 'vertical'],
1533
- description: 'Tabs orientation',
1534
- category: 'appearance'
1535
- }
1536
- ])
1537
- },
1538
- // Feedback Components
1539
- {
1540
- type: 'Loader',
1541
- displayName: 'Loader',
1542
- category: 'Feedback',
1543
- defaultProps: {
1544
- size: 'md'
1545
- },
1546
- properties: addSpacingProperties([
1547
- {
1548
- name: 'size',
1549
- type: 'select',
1550
- defaultValue: 'md',
1551
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
1552
- description: 'Loader size',
1553
- category: 'appearance'
1554
- },
1555
- {
1556
- name: 'color',
1557
- type: 'select',
1558
- defaultValue: 'blue',
1559
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
1560
- description: 'Loader color',
1561
- category: 'appearance'
1562
- },
1563
- {
1564
- name: 'variant',
1565
- type: 'select',
1566
- defaultValue: 'oval',
1567
- options: ['oval', 'bars', 'dots'],
1568
- description: 'Loader variant',
1569
- category: 'appearance'
1570
- }
1571
- ])
1572
- },
1573
- {
1574
- type: 'Progress',
1575
- displayName: 'Progress',
1576
- category: 'Feedback',
1577
- defaultProps: {
1578
- value: 50,
1579
- size: 'md'
1580
- },
1581
- properties: addSpacingProperties([
1582
- {
1583
- name: 'value',
1584
- type: 'number',
1585
- defaultValue: 50,
1586
- description: 'Progress value (0-100)',
1587
- category: 'content'
1588
- },
1589
- {
1590
- name: 'size',
1591
- type: 'select',
1592
- defaultValue: 'md',
1593
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
1594
- description: 'Progress size',
1595
- category: 'appearance'
1596
- },
1597
- {
1598
- name: 'color',
1599
- type: 'select',
1600
- defaultValue: 'blue',
1601
- options: ['blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
1602
- description: 'Progress color',
1603
- category: 'appearance'
1604
- },
1605
- {
1606
- name: 'radius',
1607
- type: 'select',
1608
- defaultValue: 'sm',
1609
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
1610
- description: 'Border radius',
1611
- category: 'appearance'
1612
- },
1613
- {
1614
- name: 'striped',
1615
- type: 'boolean',
1616
- defaultValue: false,
1617
- description: 'Striped appearance',
1618
- category: 'appearance'
1619
- },
1620
- {
1621
- name: 'animated',
1622
- type: 'boolean',
1623
- defaultValue: false,
1624
- description: 'Animated stripes',
1625
- category: 'appearance'
1626
- }
1627
- ])
1628
- },
1629
- {
1630
- type: 'RingProgress',
1631
- displayName: 'Ring Progress',
1632
- category: 'Feedback',
1633
- defaultProps: {
1634
- size: 120,
1635
- thickness: 12,
1636
- sections: [{ value: 40, color: 'blue' }]
1637
- },
1638
- properties: addSpacingProperties([
1639
- {
1640
- name: 'size',
1641
- type: 'number',
1642
- defaultValue: 120,
1643
- description: 'Ring size in pixels',
1644
- category: 'appearance'
1645
- },
1646
- {
1647
- name: 'thickness',
1648
- type: 'number',
1649
- defaultValue: 12,
1650
- description: 'Ring thickness',
1651
- category: 'appearance'
1652
- },
1653
- {
1654
- name: 'label',
1655
- type: 'string',
1656
- defaultValue: '',
1657
- description: 'Center label',
1658
- category: 'content'
1659
- }
1660
- ])
1661
- },
1662
- // Overlay Components
1663
- {
1664
- type: 'Tooltip',
1665
- displayName: 'Tooltip',
1666
- category: 'Overlays',
1667
- defaultProps: {
1668
- label: 'Tooltip content',
1669
- children: 'Hover me'
1670
- },
1671
- properties: addSpacingProperties([
1672
- {
1673
- name: 'label',
1674
- type: 'string',
1675
- defaultValue: 'Tooltip content',
1676
- description: 'Tooltip text',
1677
- category: 'content'
1678
- },
1679
- {
1680
- name: 'children',
1681
- type: 'string',
1682
- defaultValue: 'Hover me',
1683
- description: 'Element to wrap',
1684
- category: 'content'
1685
- },
1686
- {
1687
- name: 'position',
1688
- type: 'select',
1689
- defaultValue: 'top',
1690
- options: ['top', 'bottom', 'left', 'right'],
1691
- description: 'Tooltip position',
1692
- category: 'appearance'
1693
- },
1694
- {
1695
- name: 'color',
1696
- type: 'select',
1697
- defaultValue: 'dark',
1698
- options: ['dark', 'blue', 'red', 'green', 'yellow', 'orange', 'purple', 'pink', 'gray'],
1699
- description: 'Tooltip color',
1700
- category: 'appearance'
1701
- }
1702
- ])
1703
- },
1704
- {
1705
- type: 'Popover',
1706
- displayName: 'Popover',
1707
- category: 'Overlays',
1708
- defaultProps: {
1709
- children: 'Click me'
1710
- },
1711
- properties: addSpacingProperties([
1712
- {
1713
- name: 'children',
1714
- type: 'string',
1715
- defaultValue: 'Click me',
1716
- description: 'Trigger element',
1717
- category: 'content'
1718
- },
1719
- {
1720
- name: 'position',
1721
- type: 'select',
1722
- defaultValue: 'bottom',
1723
- options: ['top', 'bottom', 'left', 'right'],
1724
- description: 'Popover position',
1725
- category: 'appearance'
1726
- },
1727
- {
1728
- name: 'width',
1729
- type: 'number',
1730
- defaultValue: 260,
1731
- description: 'Popover width',
1732
- category: 'appearance'
1733
- },
1734
- {
1735
- name: 'shadow',
1736
- type: 'select',
1737
- defaultValue: 'md',
1738
- options: ['xs', 'sm', 'md', 'lg', 'xl'],
1739
- description: 'Popover shadow',
1740
- category: 'appearance'
1741
- }
1742
- ])
1743
- }
1744
- ];
1745
- export const getComponentConfig = (type) => {
1746
- return MANTINE_COMPONENTS.find(comp => comp.type === type);
1747
- };
1748
- export const getComponentsByCategory = () => {
1749
- return MANTINE_COMPONENTS.reduce((acc, component) => {
1750
- if (!acc[component.category]) {
1751
- acc[component.category] = [];
1752
- }
1753
- acc[component.category].push(component);
1754
- return acc;
1755
- }, {});
1756
- };
1757
- // List of container components that can accept children
1758
- export const CONTAINER_COMPONENTS = ['Container', 'Group', 'Stack', 'Card', 'CardSection', 'Paper', 'Box', 'Flex', 'Grid', 'GridCol', 'SimpleGrid', 'Tabs', 'Indicator', 'Tooltip', 'Popover'];