@tpitre/story-ui 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/dist/cli/index.js +0 -0
  2. package/dist/cli/index.js.map +1 -0
  3. package/dist/cli/setup.js.map +1 -0
  4. package/dist/cloudflare-edge/src/mcp-session.js +462 -0
  5. package/dist/cloudflare-edge/src/types.js +4 -0
  6. package/dist/cloudflare-edge/src/worker.js +106 -0
  7. package/dist/cloudflare-pages/vite.config.js +14 -0
  8. package/dist/index.d.ts +13 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +12 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/mcp-server/index.js.map +1 -0
  13. package/dist/mcp-server/mcp-stdio-server.js.map +1 -0
  14. package/dist/mcp-server/routes/claude.js.map +1 -0
  15. package/dist/mcp-server/routes/components.js.map +1 -0
  16. package/dist/mcp-server/routes/generateStory.js.map +1 -0
  17. package/dist/mcp-server/routes/hybridStories.d.ts +18 -0
  18. package/dist/mcp-server/routes/hybridStories.d.ts.map +1 -0
  19. package/dist/mcp-server/routes/hybridStories.js +216 -0
  20. package/dist/mcp-server/routes/hybridStories.js.map +1 -0
  21. package/dist/mcp-server/routes/memoryStories.d.ts +26 -0
  22. package/dist/mcp-server/routes/memoryStories.d.ts.map +1 -0
  23. package/dist/mcp-server/routes/memoryStories.js +158 -0
  24. package/dist/mcp-server/routes/memoryStories.js.map +1 -0
  25. package/dist/mcp-server/routes/storySync.d.ts +26 -0
  26. package/dist/mcp-server/routes/storySync.d.ts.map +1 -0
  27. package/dist/mcp-server/routes/storySync.js +147 -0
  28. package/dist/mcp-server/routes/storySync.js.map +1 -0
  29. package/dist/mcp-server/routes/updateStory.js +246 -0
  30. package/dist/mcp-server/sessionManager.d.ts +50 -0
  31. package/dist/mcp-server/sessionManager.d.ts.map +1 -0
  32. package/dist/mcp-server/sessionManager.js +125 -0
  33. package/dist/mcp-server/sessionManager.js.map +1 -0
  34. package/dist/playground/components/AIAssistant/AIAssistant.d.ts +6 -0
  35. package/dist/playground/components/AIAssistant/AIAssistant.d.ts.map +1 -0
  36. package/dist/playground/components/AIAssistant/AIAssistant.js +109 -0
  37. package/dist/playground/components/AIAssistant/AIAssistant.js.map +1 -0
  38. package/dist/playground/components/AIAssistant/AIAssistant.module.css +166 -0
  39. package/dist/playground/components/Canvas/Canvas.d.ts +9 -0
  40. package/dist/playground/components/Canvas/Canvas.d.ts.map +1 -0
  41. package/dist/playground/components/Canvas/Canvas.js +58 -0
  42. package/dist/playground/components/Canvas/Canvas.js.map +1 -0
  43. package/dist/playground/components/Canvas/Canvas.module.css +189 -0
  44. package/dist/playground/components/Canvas/CanvasWithDnd.d.ts +9 -0
  45. package/dist/playground/components/Canvas/CanvasWithDnd.d.ts.map +1 -0
  46. package/dist/playground/components/Canvas/CanvasWithDnd.js +158 -0
  47. package/dist/playground/components/Canvas/CanvasWithDnd.js.map +1 -0
  48. package/dist/playground/components/Canvas/ComponentRenderer.d.ts +15 -0
  49. package/dist/playground/components/Canvas/ComponentRenderer.d.ts.map +1 -0
  50. package/dist/playground/components/Canvas/ComponentRenderer.js +177 -0
  51. package/dist/playground/components/Canvas/ComponentRenderer.js.map +1 -0
  52. package/dist/playground/components/Canvas/DraggableComponent.d.ts +15 -0
  53. package/dist/playground/components/Canvas/DraggableComponent.d.ts.map +1 -0
  54. package/dist/playground/components/Canvas/DraggableComponent.js +49 -0
  55. package/dist/playground/components/Canvas/DraggableComponent.js.map +1 -0
  56. package/dist/playground/components/Canvas/index.d.ts +9 -0
  57. package/dist/playground/components/Canvas/index.d.ts.map +1 -0
  58. package/dist/playground/components/Canvas/index.js +5 -0
  59. package/dist/playground/components/Canvas/index.js.map +1 -0
  60. package/dist/playground/components/CodeView/CodeView.d.ts +12 -0
  61. package/dist/playground/components/CodeView/CodeView.d.ts.map +1 -0
  62. package/dist/playground/components/CodeView/CodeView.js +77 -0
  63. package/dist/playground/components/CodeView/CodeView.js.map +1 -0
  64. package/dist/playground/components/CodeView/CodeView.module.css +178 -0
  65. package/dist/playground/components/ComponentPalette/ComponentPalette.d.ts +17 -0
  66. package/dist/playground/components/ComponentPalette/ComponentPalette.d.ts.map +1 -0
  67. package/dist/playground/components/ComponentPalette/ComponentPalette.js +138 -0
  68. package/dist/playground/components/ComponentPalette/ComponentPalette.js.map +1 -0
  69. package/dist/playground/components/ComponentPalette/ComponentPalette.module.css +217 -0
  70. package/dist/playground/components/ComponentPalette/index.d.ts +3 -0
  71. package/dist/playground/components/ComponentPalette/index.d.ts.map +1 -0
  72. package/dist/playground/components/ComponentPalette/index.js +2 -0
  73. package/dist/playground/components/ComponentPalette/index.js.map +1 -0
  74. package/dist/playground/components/DropZone/DropZone.d.ts +17 -0
  75. package/dist/playground/components/DropZone/DropZone.d.ts.map +1 -0
  76. package/dist/playground/components/DropZone/DropZone.js +73 -0
  77. package/dist/playground/components/DropZone/DropZone.js.map +1 -0
  78. package/dist/playground/components/DropZone/DropZone.module.css +86 -0
  79. package/dist/playground/components/ExportDialog/ExportDialog.d.ts +10 -0
  80. package/dist/playground/components/ExportDialog/ExportDialog.d.ts.map +1 -0
  81. package/dist/playground/components/ExportDialog/ExportDialog.js +57 -0
  82. package/dist/playground/components/ExportDialog/ExportDialog.js.map +1 -0
  83. package/dist/playground/components/ExportDialog/ExportDialog.module.css +328 -0
  84. package/dist/playground/components/LayoutHelpers/LayoutHelpers.d.ts +134 -0
  85. package/dist/playground/components/LayoutHelpers/LayoutHelpers.d.ts.map +1 -0
  86. package/dist/playground/components/LayoutHelpers/LayoutHelpers.js +254 -0
  87. package/dist/playground/components/LayoutHelpers/LayoutHelpers.js.map +1 -0
  88. package/dist/playground/components/LayoutHelpers/index.d.ts +3 -0
  89. package/dist/playground/components/LayoutHelpers/index.d.ts.map +1 -0
  90. package/dist/playground/components/LayoutHelpers/index.js +2 -0
  91. package/dist/playground/components/LayoutHelpers/index.js.map +1 -0
  92. package/dist/playground/components/Playground/Playground.d.ts +10 -0
  93. package/dist/playground/components/Playground/Playground.d.ts.map +1 -0
  94. package/dist/playground/components/Playground/Playground.js +128 -0
  95. package/dist/playground/components/Playground/Playground.js.map +1 -0
  96. package/dist/playground/components/Playground/Playground.module.css +308 -0
  97. package/dist/playground/components/PropertiesPanel/PropertiesPanel.d.ts +10 -0
  98. package/dist/playground/components/PropertiesPanel/PropertiesPanel.d.ts.map +1 -0
  99. package/dist/playground/components/PropertiesPanel/PropertiesPanel.js +150 -0
  100. package/dist/playground/components/PropertiesPanel/PropertiesPanel.js.map +1 -0
  101. package/dist/playground/components/PropertiesPanel/PropertiesPanel.module.css +155 -0
  102. package/dist/playground/components/PropertiesPanel/index.d.ts +3 -0
  103. package/dist/playground/components/PropertiesPanel/index.d.ts.map +1 -0
  104. package/dist/playground/components/PropertiesPanel/index.js +2 -0
  105. package/dist/playground/components/PropertiesPanel/index.js.map +1 -0
  106. package/dist/playground/components/PropertyEditors/BooleanEditor.d.ts +12 -0
  107. package/dist/playground/components/PropertyEditors/BooleanEditor.d.ts.map +1 -0
  108. package/dist/playground/components/PropertyEditors/BooleanEditor.js +14 -0
  109. package/dist/playground/components/PropertyEditors/BooleanEditor.js.map +1 -0
  110. package/dist/playground/components/PropertyEditors/ColorEditor.d.ts +12 -0
  111. package/dist/playground/components/PropertyEditors/ColorEditor.d.ts.map +1 -0
  112. package/dist/playground/components/PropertyEditors/ColorEditor.js +62 -0
  113. package/dist/playground/components/PropertyEditors/ColorEditor.js.map +1 -0
  114. package/dist/playground/components/PropertyEditors/IconEditor.d.ts +12 -0
  115. package/dist/playground/components/PropertyEditors/IconEditor.d.ts.map +1 -0
  116. package/dist/playground/components/PropertyEditors/IconEditor.js +123 -0
  117. package/dist/playground/components/PropertyEditors/IconEditor.js.map +1 -0
  118. package/dist/playground/components/PropertyEditors/NumberEditor.d.ts +15 -0
  119. package/dist/playground/components/PropertyEditors/NumberEditor.d.ts.map +1 -0
  120. package/dist/playground/components/PropertyEditors/NumberEditor.js +46 -0
  121. package/dist/playground/components/PropertyEditors/NumberEditor.js.map +1 -0
  122. package/dist/playground/components/PropertyEditors/PropertyEditors.module.css +432 -0
  123. package/dist/playground/components/PropertyEditors/SelectEditor.d.ts +19 -0
  124. package/dist/playground/components/PropertyEditors/SelectEditor.d.ts.map +1 -0
  125. package/dist/playground/components/PropertyEditors/SelectEditor.js +17 -0
  126. package/dist/playground/components/PropertyEditors/SelectEditor.js.map +1 -0
  127. package/dist/playground/components/PropertyEditors/SpacingEditor.d.ts +19 -0
  128. package/dist/playground/components/PropertyEditors/SpacingEditor.d.ts.map +1 -0
  129. package/dist/playground/components/PropertyEditors/SpacingEditor.js +162 -0
  130. package/dist/playground/components/PropertyEditors/SpacingEditor.js.map +1 -0
  131. package/dist/playground/components/PropertyEditors/SpacingEditor.module.css +214 -0
  132. package/dist/playground/components/PropertyEditors/TextEditor.d.ts +14 -0
  133. package/dist/playground/components/PropertyEditors/TextEditor.d.ts.map +1 -0
  134. package/dist/playground/components/PropertyEditors/TextEditor.js +38 -0
  135. package/dist/playground/components/PropertyEditors/TextEditor.js.map +1 -0
  136. package/dist/playground/components/PropertyEditors/TokenEditor.d.ts +23 -0
  137. package/dist/playground/components/PropertyEditors/TokenEditor.d.ts.map +1 -0
  138. package/dist/playground/components/PropertyEditors/TokenEditor.js +50 -0
  139. package/dist/playground/components/PropertyEditors/TokenEditor.js.map +1 -0
  140. package/dist/playground/components/PropertyEditors/index.d.ts +20 -0
  141. package/dist/playground/components/PropertyEditors/index.d.ts.map +1 -0
  142. package/dist/playground/components/PropertyEditors/index.js +12 -0
  143. package/dist/playground/components/PropertyEditors/index.js.map +1 -0
  144. package/dist/playground/components/TreeView/TreeView.d.ts +10 -0
  145. package/dist/playground/components/TreeView/TreeView.d.ts.map +1 -0
  146. package/dist/playground/components/TreeView/TreeView.js +146 -0
  147. package/dist/playground/components/TreeView/TreeView.js.map +1 -0
  148. package/dist/playground/components/TreeView/TreeView.module.css +214 -0
  149. package/dist/playground/components/TreeView/index.d.ts +3 -0
  150. package/dist/playground/components/TreeView/index.d.ts.map +1 -0
  151. package/dist/playground/components/TreeView/index.js +2 -0
  152. package/dist/playground/components/TreeView/index.js.map +1 -0
  153. package/dist/playground/config/propertyDefinitions.d.ts +73 -0
  154. package/dist/playground/config/propertyDefinitions.d.ts.map +1 -0
  155. package/dist/playground/config/propertyDefinitions.js +809 -0
  156. package/dist/playground/config/propertyDefinitions.js.map +1 -0
  157. package/dist/playground/hooks/useKeyboardShortcuts.d.ts +38 -0
  158. package/dist/playground/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  159. package/dist/playground/hooks/useKeyboardShortcuts.js +191 -0
  160. package/dist/playground/hooks/useKeyboardShortcuts.js.map +1 -0
  161. package/dist/playground/index.d.ts +21 -0
  162. package/dist/playground/index.d.ts.map +1 -0
  163. package/dist/playground/index.js +23 -0
  164. package/dist/playground/index.js.map +1 -0
  165. package/dist/playground/services/CodeGenerator.d.ts +73 -0
  166. package/dist/playground/services/CodeGenerator.d.ts.map +1 -0
  167. package/dist/playground/services/CodeGenerator.js +359 -0
  168. package/dist/playground/services/CodeGenerator.js.map +1 -0
  169. package/dist/playground/services/DragDropManager.d.ts +95 -0
  170. package/dist/playground/services/DragDropManager.d.ts.map +1 -0
  171. package/dist/playground/services/DragDropManager.js +408 -0
  172. package/dist/playground/services/DragDropManager.js.map +1 -0
  173. package/dist/playground/services/StoryParser.d.ts +73 -0
  174. package/dist/playground/services/StoryParser.d.ts.map +1 -0
  175. package/dist/playground/services/StoryParser.js +419 -0
  176. package/dist/playground/services/StoryParser.js.map +1 -0
  177. package/dist/playground/store/playgroundStore.d.ts +86 -0
  178. package/dist/playground/store/playgroundStore.d.ts.map +1 -0
  179. package/dist/playground/store/playgroundStore.js +337 -0
  180. package/dist/playground/store/playgroundStore.js.map +1 -0
  181. package/dist/playground/stories/PlaygroundDragDrop.stories.d.ts +13 -0
  182. package/dist/playground/stories/PlaygroundDragDrop.stories.d.ts.map +1 -0
  183. package/dist/playground/stories/PlaygroundDragDrop.stories.js +227 -0
  184. package/dist/playground/stories/PlaygroundDragDrop.stories.js.map +1 -0
  185. package/dist/playground/stories/PlaygroundPhase4.stories.d.ts +13 -0
  186. package/dist/playground/stories/PlaygroundPhase4.stories.d.ts.map +1 -0
  187. package/dist/playground/stories/PlaygroundPhase4.stories.js +334 -0
  188. package/dist/playground/stories/PlaygroundPhase4.stories.js.map +1 -0
  189. package/dist/playground/stories/PlaygroundPhase5.stories.d.ts +14 -0
  190. package/dist/playground/stories/PlaygroundPhase5.stories.d.ts.map +1 -0
  191. package/dist/playground/stories/PlaygroundPhase5.stories.js +512 -0
  192. package/dist/playground/stories/PlaygroundPhase5.stories.js.map +1 -0
  193. package/dist/playground/stories/PlaygroundProperties.stories.d.ts +13 -0
  194. package/dist/playground/stories/PlaygroundProperties.stories.d.ts.map +1 -0
  195. package/dist/playground/stories/PlaygroundProperties.stories.js +342 -0
  196. package/dist/playground/stories/PlaygroundProperties.stories.js.map +1 -0
  197. package/dist/playground/types/index.d.ts +251 -0
  198. package/dist/playground/types/index.d.ts.map +1 -0
  199. package/dist/playground/types/index.js +5 -0
  200. package/dist/playground/types/index.js.map +1 -0
  201. package/dist/scripts/verify-framework-adapters.js +105 -0
  202. package/dist/story-generator/componentBlacklist.js.map +1 -0
  203. package/dist/story-generator/componentDiscovery.js.map +1 -0
  204. package/dist/story-generator/configLoader.js.map +1 -0
  205. package/dist/story-generator/considerationsLoader.js.map +1 -0
  206. package/dist/story-generator/documentation-sources.js.map +1 -0
  207. package/dist/story-generator/documentationLoader.js.map +1 -0
  208. package/dist/story-generator/dynamicPackageDiscovery.js.map +1 -0
  209. package/dist/story-generator/enhancedComponentDiscovery.js.map +1 -0
  210. package/dist/story-generator/generateStory.js.map +1 -0
  211. package/dist/story-generator/gitignoreManager.js.map +1 -0
  212. package/dist/story-generator/inMemoryStoryService.d.ts +89 -0
  213. package/dist/story-generator/inMemoryStoryService.d.ts.map +1 -0
  214. package/dist/story-generator/inMemoryStoryService.js +128 -0
  215. package/dist/story-generator/inMemoryStoryService.js.map +1 -0
  216. package/dist/story-generator/logger.js.map +1 -0
  217. package/dist/story-generator/postProcessStory.js.map +1 -0
  218. package/dist/story-generator/postgresStoryService.d.ts +56 -0
  219. package/dist/story-generator/postgresStoryService.d.ts.map +1 -0
  220. package/dist/story-generator/postgresStoryService.js +240 -0
  221. package/dist/story-generator/productionGitignoreManager.d.ts +91 -0
  222. package/dist/story-generator/productionGitignoreManager.d.ts.map +1 -0
  223. package/dist/story-generator/productionGitignoreManager.js +340 -0
  224. package/dist/story-generator/productionGitignoreManager.js.map +1 -0
  225. package/dist/story-generator/promptGenerator.js.map +1 -0
  226. package/dist/story-generator/providerPresets.d.ts +54 -0
  227. package/dist/story-generator/providerPresets.d.ts.map +1 -0
  228. package/dist/story-generator/providerPresets.js +214 -0
  229. package/dist/story-generator/storyHistory.js.map +1 -0
  230. package/dist/story-generator/storyServiceFactory.d.ts +22 -0
  231. package/dist/story-generator/storyServiceFactory.d.ts.map +1 -0
  232. package/dist/story-generator/storyServiceFactory.js +97 -0
  233. package/dist/story-generator/storyServiceInterface.d.ts +85 -0
  234. package/dist/story-generator/storyServiceInterface.d.ts.map +1 -0
  235. package/dist/story-generator/storyServiceInterface.js +5 -0
  236. package/dist/story-generator/storySync.d.ts +68 -0
  237. package/dist/story-generator/storySync.d.ts.map +1 -0
  238. package/dist/story-generator/storySync.js +201 -0
  239. package/dist/story-generator/storySync.js.map +1 -0
  240. package/dist/story-generator/storyTracker.js.map +1 -0
  241. package/dist/story-generator/storyValidator.js.map +1 -0
  242. package/dist/story-generator/test_validation.d.ts +2 -0
  243. package/dist/story-generator/test_validation.d.ts.map +1 -0
  244. package/dist/story-generator/test_validation.js +51 -0
  245. package/dist/story-generator/universalDesignSystemAdapter.js.map +1 -0
  246. package/dist/story-generator/urlRedirectService.js.map +1 -0
  247. package/dist/story-generator/validateStory.js.map +1 -0
  248. package/dist/story-ui.config.js.map +1 -0
  249. package/dist/story-ui.config.loader.d.ts +36 -0
  250. package/dist/story-ui.config.loader.d.ts.map +1 -0
  251. package/dist/story-ui.config.loader.js +205 -0
  252. package/dist/story-ui.config.loader.js.map +1 -0
  253. package/dist/temp/package/templates/StoryUI/StoryUIPanel.js +807 -0
  254. package/dist/temp/package/templates/StoryUI/StoryUIPanel.stories.js +37 -0
  255. package/dist/temp/package/templates/StoryUI/index.js +2 -0
  256. package/dist/templates/StoryUI/StoryUIPanel.js.map +1 -0
  257. package/dist/templates/StoryUI/StoryUIPanel.stories.js.map +1 -0
  258. package/dist/templates/StoryUI/index.js.map +1 -0
  259. package/dist/templates/StoryUI/manager.d.ts +14 -0
  260. package/dist/templates/StoryUI/manager.d.ts.map +1 -0
  261. package/dist/templates/production-app/src/App.d.ts +10 -0
  262. package/dist/templates/production-app/src/App.d.ts.map +1 -0
  263. package/dist/templates/production-app/src/App.js +653 -0
  264. package/dist/templates/production-app/src/LivePreviewRenderer.d.ts +24 -0
  265. package/dist/templates/production-app/src/LivePreviewRenderer.d.ts.map +1 -0
  266. package/dist/templates/production-app/src/LivePreviewRenderer.js +199 -0
  267. package/dist/templates/production-app/src/componentRegistry.d.ts +20 -0
  268. package/dist/templates/production-app/src/componentRegistry.d.ts.map +1 -0
  269. package/dist/templates/production-app/src/componentRegistry.js +316 -0
  270. package/dist/templates/production-app/src/main.d.ts +9 -0
  271. package/dist/templates/production-app/src/main.d.ts.map +1 -0
  272. package/dist/templates/production-app/src/main.js +18 -0
  273. package/dist/templates/production-app/vite.config.d.ts +3 -0
  274. package/dist/templates/production-app/vite.config.d.ts.map +1 -0
  275. package/dist/templates/production-app/vite.config.js +71 -0
  276. package/dist/test-storybooks/angular-material-storybook/src/main.js +66 -0
  277. package/dist/test-storybooks/chakra-storybook/vite.config.js +6 -0
  278. package/dist/test-storybooks/mantine-storybook/vite.config.js +93 -0
  279. package/dist/test-storybooks/web-components-shoelace/vite.config.js +9 -0
  280. package/dist/tsconfig.tsbuildinfo +1 -0
  281. package/package.json +1 -1
@@ -0,0 +1,308 @@
1
+ /* Playground main styles */
2
+
3
+ .playground {
4
+ display: flex;
5
+ flex-direction: column;
6
+ height: 100vh;
7
+ background: #f9fafb;
8
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
9
+ }
10
+
11
+ /* Header */
12
+ .header {
13
+ display: flex;
14
+ align-items: center;
15
+ justify-content: space-between;
16
+ height: 56px;
17
+ padding: 0 20px;
18
+ background: white;
19
+ border-bottom: 1px solid #e5e7eb;
20
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
21
+ }
22
+
23
+ .headerLeft,
24
+ .headerCenter,
25
+ .headerRight {
26
+ display: flex;
27
+ align-items: center;
28
+ gap: 16px;
29
+ }
30
+
31
+ .headerLeft {
32
+ flex: 1;
33
+ }
34
+
35
+ .headerCenter {
36
+ flex: 0 0 auto;
37
+ }
38
+
39
+ .headerRight {
40
+ flex: 1;
41
+ justify-content: flex-end;
42
+ gap: 12px;
43
+ }
44
+
45
+ .exportButton {
46
+ padding: 8px 16px;
47
+ background: #3b82f6;
48
+ color: white;
49
+ border: none;
50
+ border-radius: 6px;
51
+ font-size: 14px;
52
+ font-weight: 500;
53
+ cursor: pointer;
54
+ transition: background 0.2s;
55
+ }
56
+
57
+ .exportButton:hover {
58
+ background: #2563eb;
59
+ }
60
+
61
+ .logo {
62
+ margin: 0;
63
+ font-size: 18px;
64
+ font-weight: 600;
65
+ background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
66
+ -webkit-background-clip: text;
67
+ -webkit-text-fill-color: transparent;
68
+ }
69
+
70
+ .modeToggle {
71
+ display: flex;
72
+ background: #f3f4f6;
73
+ border-radius: 8px;
74
+ padding: 2px;
75
+ }
76
+
77
+ .modeButton {
78
+ padding: 6px 12px;
79
+ border: none;
80
+ background: transparent;
81
+ color: #6b7280;
82
+ font-size: 14px;
83
+ font-weight: 500;
84
+ cursor: pointer;
85
+ border-radius: 6px;
86
+ transition: all 0.2s;
87
+ font-family: inherit;
88
+ }
89
+
90
+ .modeButton.active {
91
+ background: white;
92
+ color: #1f2937;
93
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
94
+ }
95
+
96
+ .zoomControls {
97
+ display: flex;
98
+ align-items: center;
99
+ gap: 8px;
100
+ background: #f3f4f6;
101
+ border-radius: 8px;
102
+ padding: 4px;
103
+ }
104
+
105
+ .zoomButton {
106
+ width: 28px;
107
+ height: 28px;
108
+ border: none;
109
+ background: white;
110
+ border-radius: 4px;
111
+ font-size: 18px;
112
+ cursor: pointer;
113
+ transition: all 0.2s;
114
+ display: flex;
115
+ align-items: center;
116
+ justify-content: center;
117
+ font-family: inherit;
118
+ }
119
+
120
+ .zoomButton:hover:not(:disabled) {
121
+ background: #e5e7eb;
122
+ }
123
+
124
+ .zoomButton:disabled {
125
+ opacity: 0.5;
126
+ cursor: not-allowed;
127
+ }
128
+
129
+ .zoomValue {
130
+ min-width: 50px;
131
+ text-align: center;
132
+ font-size: 14px;
133
+ color: #4b5563;
134
+ }
135
+
136
+ /* Main Layout */
137
+ .main {
138
+ flex: 1;
139
+ display: flex;
140
+ overflow: hidden;
141
+ }
142
+
143
+ /* Sidebar */
144
+ .sidebar {
145
+ width: 280px;
146
+ background: white;
147
+ border-right: 1px solid #e5e7eb;
148
+ display: flex;
149
+ flex-direction: column;
150
+ }
151
+
152
+ .sidebarTabs {
153
+ display: flex;
154
+ border-bottom: 1px solid #e5e7eb;
155
+ background: #f9fafb;
156
+ }
157
+
158
+ .tab {
159
+ flex: 1;
160
+ padding: 12px;
161
+ border: none;
162
+ background: transparent;
163
+ color: #6b7280;
164
+ font-size: 14px;
165
+ font-weight: 500;
166
+ cursor: pointer;
167
+ transition: all 0.2s;
168
+ border-bottom: 2px solid transparent;
169
+ font-family: inherit;
170
+ }
171
+
172
+ .tab:hover {
173
+ color: #4b5563;
174
+ background: #f3f4f6;
175
+ }
176
+
177
+ .activeTab {
178
+ color: #3b82f6;
179
+ border-bottom-color: #3b82f6;
180
+ background: white;
181
+ }
182
+
183
+ .sidebarContent {
184
+ flex: 1;
185
+ overflow-y: auto;
186
+ }
187
+
188
+ /* Canvas Container */
189
+ .canvasContainer {
190
+ flex: 1;
191
+ position: relative;
192
+ overflow: hidden;
193
+ }
194
+
195
+ /* Properties Panel */
196
+ .propertiesPanel {
197
+ width: 320px;
198
+ background: white;
199
+ border-left: 1px solid #e5e7eb;
200
+ display: flex;
201
+ flex-direction: column;
202
+ }
203
+
204
+ .propertiesHeader {
205
+ display: flex;
206
+ align-items: center;
207
+ justify-content: space-between;
208
+ padding: 16px;
209
+ border-bottom: 1px solid #e5e7eb;
210
+ background: #f9fafb;
211
+ }
212
+
213
+ .propertiesTitle {
214
+ margin: 0;
215
+ font-size: 14px;
216
+ font-weight: 600;
217
+ color: #1f2937;
218
+ display: flex;
219
+ align-items: center;
220
+ gap: 8px;
221
+ }
222
+
223
+ .componentIcon {
224
+ font-size: 16px;
225
+ }
226
+
227
+ .closeButton {
228
+ width: 24px;
229
+ height: 24px;
230
+ border: none;
231
+ background: transparent;
232
+ color: #6b7280;
233
+ font-size: 16px;
234
+ cursor: pointer;
235
+ border-radius: 4px;
236
+ transition: all 0.2s;
237
+ display: flex;
238
+ align-items: center;
239
+ justify-content: center;
240
+ font-family: inherit;
241
+ }
242
+
243
+ .closeButton:hover {
244
+ background: #e5e7eb;
245
+ color: #1f2937;
246
+ }
247
+
248
+ .propertiesContent {
249
+ flex: 1;
250
+ padding: 16px;
251
+ overflow-y: auto;
252
+ }
253
+
254
+ .emptyProperties {
255
+ color: #9ca3af;
256
+ text-align: center;
257
+ padding: 32px 16px;
258
+ font-size: 14px;
259
+ }
260
+
261
+ /* Status Bar */
262
+ .statusBar {
263
+ display: flex;
264
+ align-items: center;
265
+ gap: 24px;
266
+ height: 32px;
267
+ padding: 0 20px;
268
+ background: white;
269
+ border-top: 1px solid #e5e7eb;
270
+ font-size: 12px;
271
+ color: #6b7280;
272
+ }
273
+
274
+ .statusItem {
275
+ display: flex;
276
+ align-items: center;
277
+ gap: 4px;
278
+ }
279
+
280
+ /* Placeholders */
281
+ .placeholder {
282
+ padding: 32px;
283
+ text-align: center;
284
+ color: #9ca3af;
285
+ font-size: 14px;
286
+ background: #f9fafb;
287
+ border-radius: 8px;
288
+ margin: 16px;
289
+ }
290
+
291
+ /* Drag and Drop */
292
+ .dragGhost {
293
+ pointer-events: none;
294
+ opacity: 0.8;
295
+ transform: rotate(5deg);
296
+ z-index: 1000;
297
+ }
298
+
299
+ .newComponentGhost {
300
+ padding: 12px 16px;
301
+ background: #3b82f6;
302
+ color: white;
303
+ border-radius: 6px;
304
+ font-size: 14px;
305
+ font-weight: 500;
306
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
307
+ border: 2px solid #60a5fa;
308
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * PropertiesPanel - Main panel for editing component properties
3
+ */
4
+ import React from 'react';
5
+ export interface PropertiesPanelProps {
6
+ componentId?: string;
7
+ onClose?: () => void;
8
+ }
9
+ export declare const PropertiesPanel: React.FC<PropertiesPanelProps>;
10
+ //# sourceMappingURL=PropertiesPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertiesPanel.d.ts","sourceRoot":"","sources":["../../../../playground/components/PropertiesPanel/PropertiesPanel.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA+B,MAAM,OAAO,CAAC;AAqBpD,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAoCD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqS1D,CAAC"}
@@ -0,0 +1,150 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * PropertiesPanel - Main panel for editing component properties
4
+ */
5
+ import { useCallback, useMemo } from 'react';
6
+ import { usePlaygroundStore } from '../../store/playgroundStore';
7
+ import { SpacingEditor } from '../PropertyEditors/SpacingEditor';
8
+ import { TextEditor } from '../PropertyEditors/TextEditor';
9
+ import { NumberEditor } from '../PropertyEditors/NumberEditor';
10
+ import { SelectEditor } from '../PropertyEditors/SelectEditor';
11
+ import { BooleanEditor } from '../PropertyEditors/BooleanEditor';
12
+ import { ColorEditor } from '../PropertyEditors/ColorEditor';
13
+ import { TokenEditor, SPACING_TOKENS, SIZE_TOKENS } from '../PropertyEditors/TokenEditor';
14
+ import { IconEditor } from '../PropertyEditors/IconEditor';
15
+ import { getPropertyType, getSelectOptions, getNumberConstraints, getPropertyDefinition, shouldUseEditor } from '../../config/propertyDefinitions';
16
+ import styles from './PropertiesPanel.module.css';
17
+ // Common style properties grouped by category
18
+ const STYLE_GROUPS = {
19
+ spacing: {
20
+ label: 'Spacing',
21
+ properties: ['margin', 'padding']
22
+ },
23
+ layout: {
24
+ label: 'Layout',
25
+ properties: ['display', 'flexDirection', 'justifyContent', 'alignItems', 'gap', 'flexWrap']
26
+ },
27
+ sizing: {
28
+ label: 'Size',
29
+ properties: ['width', 'height', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight']
30
+ },
31
+ typography: {
32
+ label: 'Typography',
33
+ properties: ['fontSize', 'fontWeight', 'fontFamily', 'lineHeight', 'textAlign', 'color']
34
+ },
35
+ background: {
36
+ label: 'Background',
37
+ properties: ['background', 'backgroundColor', 'backgroundImage']
38
+ },
39
+ border: {
40
+ label: 'Border',
41
+ properties: ['border', 'borderRadius', 'borderColor', 'borderWidth', 'borderStyle']
42
+ },
43
+ effects: {
44
+ label: 'Effects',
45
+ properties: ['opacity', 'boxShadow', 'transform', 'transition']
46
+ }
47
+ };
48
+ export const PropertiesPanel = ({ componentId, onClose }) => {
49
+ const { components, updateComponent, selectedIds } = usePlaygroundStore();
50
+ // Get the component to edit
51
+ const component = useMemo(() => {
52
+ const id = componentId || (selectedIds.size === 1 ? Array.from(selectedIds)[0] : null);
53
+ return id ? components.get(id) : null;
54
+ }, [componentId, selectedIds, components]);
55
+ const handleStyleChange = useCallback((property, value) => {
56
+ if (!component)
57
+ return;
58
+ updateComponent(component.id, {
59
+ style: {
60
+ ...component.style,
61
+ [property]: value
62
+ }
63
+ });
64
+ }, [component, updateComponent]);
65
+ const handlePropChange = useCallback((property, value) => {
66
+ if (!component)
67
+ return;
68
+ updateComponent(component.id, {
69
+ props: {
70
+ ...component.props,
71
+ [property]: value
72
+ }
73
+ });
74
+ }, [component, updateComponent]);
75
+ const handleTextContentChange = useCallback((value) => {
76
+ if (!component)
77
+ return;
78
+ updateComponent(component.id, {
79
+ textContent: value
80
+ });
81
+ }, [component, updateComponent]);
82
+ const renderPropertyEditor = (propName, value, isStyle = false) => {
83
+ const componentType = component?.type;
84
+ const type = getPropertyType(propName, value, componentType);
85
+ const onChange = isStyle ?
86
+ (val) => handleStyleChange(propName, val) :
87
+ (val) => handlePropChange(propName, val);
88
+ // Create unique key that includes component ID to force re-render when component changes
89
+ const editorKey = `${component?.id}-${propName}-${isStyle ? 'style' : 'prop'}`;
90
+ // Get property definition for enhanced options
91
+ const propDef = componentType ? getPropertyDefinition(componentType, propName) : null;
92
+ switch (type) {
93
+ case 'spacing':
94
+ // Check if it should use TokenEditor for spacing values
95
+ if (shouldUseEditor(propName, 'spacing') && (propName === 'gap' || propName.includes('gap'))) {
96
+ return (_jsx(TokenEditor, { value: value, onChange: onChange, label: propDef?.label || propName, tokens: SPACING_TOKENS, unit: "px" }, editorKey));
97
+ }
98
+ return (_jsx(SpacingEditor, { value: value, onChange: onChange, property: propName, label: propDef?.label || propName }, editorKey));
99
+ case 'color':
100
+ return (_jsx(ColorEditor, { value: value, onChange: onChange, label: propDef?.label || propName }, editorKey));
101
+ case 'number':
102
+ const numberConstraints = getNumberConstraints(propName);
103
+ return (_jsx(NumberEditor, { value: typeof value === 'string' ? parseFloat(value) : value, onChange: onChange, label: propDef?.label || propName, min: numberConstraints.min, max: numberConstraints.max, step: numberConstraints.step, unit: numberConstraints.unit }, editorKey));
104
+ case 'boolean':
105
+ return (_jsx(BooleanEditor, { value: value, onChange: onChange, label: propDef?.label || propName, description: propDef?.description }, editorKey));
106
+ case 'select':
107
+ const selectOptions = getSelectOptions(propName, componentType);
108
+ // Use TokenEditor for size properties
109
+ if (propName === 'size' && selectOptions.length <= 3) {
110
+ return (_jsx(TokenEditor, { value: value, onChange: onChange, label: propDef?.label || propName, tokens: SIZE_TOKENS, allowCustom: false }, editorKey));
111
+ }
112
+ return (_jsx(SelectEditor, { value: value, onChange: onChange, options: selectOptions, label: propDef?.label || propName, placeholder: `Select ${propName}...` }, editorKey));
113
+ case 'icon':
114
+ return (_jsx(IconEditor, { value: value, onChange: onChange, label: propDef?.label || propName, placeholder: `Select ${propName}...` }, editorKey));
115
+ default:
116
+ return (_jsx(TextEditor, { value: value, onChange: onChange, label: propDef?.label || propName, placeholder: propDef?.description }, editorKey));
117
+ }
118
+ };
119
+ if (!component) {
120
+ return (_jsx("div", { className: styles.panel, children: _jsx("div", { className: styles.emptyState, children: _jsx("p", { children: "Select a component to edit its properties" }) }) }));
121
+ }
122
+ return (_jsxs("div", { className: styles.panel, children: [_jsxs("div", { className: styles.header, children: [_jsxs("div", { className: styles.componentInfo, children: [_jsx("span", { className: styles.componentType, children: component.type }), component.displayName && (_jsx("span", { className: styles.componentName, children: component.displayName }))] }), onClose && (_jsx("button", { className: styles.closeButton, onClick: onClose, children: "\u2715" }))] }), _jsxs("div", { className: styles.content, children: [component.textContent !== undefined && (_jsxs("div", { className: styles.section, children: [_jsx("h3", { className: styles.sectionTitle, children: "Content" }), _jsx(TextEditor, { value: component.textContent, onChange: handleTextContentChange, label: "Text", multiline: true }, `${component.id}-textContent`)] })), _jsxs("div", { className: styles.section, children: [_jsx("h3", { className: styles.sectionTitle, children: "Styles" }), _jsxs("div", { className: styles.group, children: [_jsx("h4", { className: styles.groupTitle, children: "Spacing" }), _jsx(SpacingEditor, { value: component.style?.margin, onChange: (val) => handleStyleChange('margin', val), property: "margin", label: "Margin" }, `${component.id}-margin`), _jsx(SpacingEditor, { value: component.style?.padding, onChange: (val) => handleStyleChange('padding', val), property: "padding", label: "Padding" }, `${component.id}-padding`)] }), Object.entries(STYLE_GROUPS).map(([groupKey, group]) => {
123
+ if (groupKey === 'spacing')
124
+ return null; // Already rendered above
125
+ const relevantProps = group.properties.filter(prop => {
126
+ const styleProp = prop;
127
+ return component.style?.[styleProp] !== undefined || groupKey === 'layout';
128
+ });
129
+ if (relevantProps.length === 0)
130
+ return null;
131
+ return (_jsxs("div", { className: styles.group, children: [_jsx("h4", { className: styles.groupTitle, children: group.label }), relevantProps.map(prop => {
132
+ const styleProp = prop;
133
+ return renderPropertyEditor(prop, component.style?.[styleProp], true);
134
+ })] }, groupKey));
135
+ })] }), component.props && Object.keys(component.props).length > 0 && (_jsxs("div", { className: styles.section, children: [_jsx("h3", { className: styles.sectionTitle, children: "Properties" }), Object.entries(component.props).map(([propName, value]) => {
136
+ // Skip style prop as it's handled separately
137
+ if (propName === 'style')
138
+ return null;
139
+ return renderPropertyEditor(propName, value, false);
140
+ })] })), _jsxs("div", { className: styles.quickActions, children: [_jsx("button", { className: styles.actionButton, onClick: () => {
141
+ updateComponent(component.id, {
142
+ style: {}
143
+ });
144
+ }, children: "Reset Styles" }), _jsx("button", { className: styles.actionButton, onClick: () => {
145
+ updateComponent(component.id, {
146
+ hidden: !component.hidden
147
+ });
148
+ }, children: component.hidden ? 'Show' : 'Hide' })] })] })] }));
149
+ };
150
+ //# sourceMappingURL=PropertiesPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertiesPanel.js","sourceRoot":"","sources":["../../../../playground/components/PropertiesPanel/PropertiesPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ /* PropertiesPanel styles */
2
+
3
+ .panel {
4
+ width: 100%;
5
+ height: 100%;
6
+ background: white;
7
+ display: flex;
8
+ flex-direction: column;
9
+ overflow: hidden;
10
+ }
11
+
12
+ .header {
13
+ padding: 12px 16px;
14
+ border-bottom: 1px solid #e5e7eb;
15
+ display: flex;
16
+ justify-content: space-between;
17
+ align-items: center;
18
+ background: #f9fafb;
19
+ }
20
+
21
+ .componentInfo {
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: 2px;
25
+ }
26
+
27
+ .componentType {
28
+ font-size: 14px;
29
+ font-weight: 600;
30
+ color: #374151;
31
+ }
32
+
33
+ .componentName {
34
+ font-size: 12px;
35
+ color: #6b7280;
36
+ }
37
+
38
+ .closeButton {
39
+ width: 24px;
40
+ height: 24px;
41
+ padding: 0;
42
+ background: transparent;
43
+ border: none;
44
+ border-radius: 4px;
45
+ color: #6b7280;
46
+ cursor: pointer;
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ transition: all 0.2s;
51
+ }
52
+
53
+ .closeButton:hover {
54
+ background: #e5e7eb;
55
+ color: #374151;
56
+ }
57
+
58
+ .content {
59
+ flex: 1;
60
+ overflow-y: auto;
61
+ padding: 16px;
62
+ }
63
+
64
+ .section {
65
+ margin-bottom: 24px;
66
+ }
67
+
68
+ .sectionTitle {
69
+ font-size: 13px;
70
+ font-weight: 600;
71
+ color: #111827;
72
+ margin-bottom: 12px;
73
+ text-transform: uppercase;
74
+ letter-spacing: 0.5px;
75
+ }
76
+
77
+ .group {
78
+ margin-bottom: 20px;
79
+ padding: 12px;
80
+ background: #f9fafb;
81
+ border-radius: 8px;
82
+ border: 1px solid #f3f4f6;
83
+ }
84
+
85
+ .groupTitle {
86
+ font-size: 12px;
87
+ font-weight: 500;
88
+ color: #6b7280;
89
+ margin-bottom: 12px;
90
+ text-transform: uppercase;
91
+ letter-spacing: 0.3px;
92
+ }
93
+
94
+ .emptyState {
95
+ display: flex;
96
+ flex-direction: column;
97
+ align-items: center;
98
+ justify-content: center;
99
+ height: 100%;
100
+ padding: 32px;
101
+ text-align: center;
102
+ }
103
+
104
+ .emptyState p {
105
+ color: #6b7280;
106
+ font-size: 13px;
107
+ }
108
+
109
+ .quickActions {
110
+ display: flex;
111
+ gap: 8px;
112
+ padding-top: 16px;
113
+ border-top: 1px solid #e5e7eb;
114
+ }
115
+
116
+ .actionButton {
117
+ flex: 1;
118
+ padding: 8px 12px;
119
+ background: white;
120
+ border: 1px solid #e5e7eb;
121
+ border-radius: 6px;
122
+ font-size: 12px;
123
+ font-weight: 500;
124
+ color: #6b7280;
125
+ cursor: pointer;
126
+ transition: all 0.2s;
127
+ }
128
+
129
+ .actionButton:hover {
130
+ background: #f3f4f6;
131
+ border-color: #d1d5db;
132
+ color: #374151;
133
+ }
134
+
135
+ .actionButton:active {
136
+ background: #e5e7eb;
137
+ }
138
+
139
+ /* Scrollbar styling */
140
+ .content::-webkit-scrollbar {
141
+ width: 6px;
142
+ }
143
+
144
+ .content::-webkit-scrollbar-track {
145
+ background: #f9fafb;
146
+ }
147
+
148
+ .content::-webkit-scrollbar-thumb {
149
+ background: #d1d5db;
150
+ border-radius: 3px;
151
+ }
152
+
153
+ .content::-webkit-scrollbar-thumb:hover {
154
+ background: #9ca3af;
155
+ }
@@ -0,0 +1,3 @@
1
+ export { PropertiesPanel } from './PropertiesPanel';
2
+ export type { PropertiesPanelProps } from './PropertiesPanel';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../playground/components/PropertiesPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { PropertiesPanel } from './PropertiesPanel';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../playground/components/PropertiesPanel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * BooleanEditor - Toggle switch for boolean properties using MUI Switch
3
+ */
4
+ import React from 'react';
5
+ export interface BooleanEditorProps {
6
+ value?: boolean;
7
+ onChange: (value: boolean) => void;
8
+ label?: string;
9
+ description?: string;
10
+ }
11
+ export declare const BooleanEditor: React.FC<BooleanEditorProps>;
12
+ //# sourceMappingURL=BooleanEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BooleanEditor.d.ts","sourceRoot":"","sources":["../../../../playground/components/PropertyEditors/BooleanEditor.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAsB,MAAM,OAAO,CAAC;AAI3C,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAiCtD,CAAC"}