@alpaca-editor/core 1.0.0 → 1.0.3

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 (695) hide show
  1. package/build.css +3 -0
  2. package/components.json +21 -0
  3. package/dev.css +3 -0
  4. package/dist/client-components/api.d.ts +1 -0
  5. package/dist/client-components/api.js +4 -0
  6. package/dist/client-components/api.js.map +1 -0
  7. package/dist/client-components/index.d.ts +16 -0
  8. package/dist/client-components/index.js +17 -0
  9. package/dist/client-components/index.js.map +1 -0
  10. package/dist/components/ActionButton.d.ts +12 -0
  11. package/dist/components/ActionButton.js +6 -0
  12. package/dist/components/ActionButton.js.map +1 -0
  13. package/dist/components/Error.d.ts +9 -0
  14. package/dist/components/Error.js +24 -0
  15. package/dist/components/Error.js.map +1 -0
  16. package/dist/components/ui/button.d.ts +10 -0
  17. package/dist/components/ui/button.js +32 -0
  18. package/dist/components/ui/button.js.map +1 -0
  19. package/dist/config/config.d.ts +6 -0
  20. package/dist/config/config.js +647 -0
  21. package/dist/config/config.js.map +1 -0
  22. package/dist/config/types.d.ts +223 -0
  23. package/dist/config/types.js +2 -0
  24. package/dist/config/types.js.map +1 -0
  25. package/dist/editor/ComponentInfo.d.ts +4 -0
  26. package/dist/editor/ComponentInfo.js +29 -0
  27. package/dist/editor/ComponentInfo.js.map +1 -0
  28. package/dist/editor/ConfirmationDialog.d.ts +19 -0
  29. package/dist/editor/ConfirmationDialog.js +31 -0
  30. package/dist/editor/ConfirmationDialog.js.map +1 -0
  31. package/dist/editor/ContentTree.d.ts +35 -0
  32. package/dist/editor/ContentTree.js +404 -0
  33. package/dist/editor/ContentTree.js.map +1 -0
  34. package/dist/editor/ContextMenu.d.ts +13 -0
  35. package/dist/editor/ContextMenu.js +114 -0
  36. package/dist/editor/ContextMenu.js.map +1 -0
  37. package/dist/editor/Editor.d.ts +11 -0
  38. package/dist/editor/Editor.js +50 -0
  39. package/dist/editor/Editor.js.map +1 -0
  40. package/dist/editor/EditorWarning.d.ts +5 -0
  41. package/dist/editor/EditorWarning.js +11 -0
  42. package/dist/editor/EditorWarning.js.map +1 -0
  43. package/dist/editor/EditorWarnings.d.ts +9 -0
  44. package/dist/editor/EditorWarnings.js +19 -0
  45. package/dist/editor/EditorWarnings.js.map +1 -0
  46. package/dist/editor/FieldEditorPopup.d.ts +10 -0
  47. package/dist/editor/FieldEditorPopup.js +22 -0
  48. package/dist/editor/FieldEditorPopup.js.map +1 -0
  49. package/dist/editor/FieldHistory.d.ts +6 -0
  50. package/dist/editor/FieldHistory.js +38 -0
  51. package/dist/editor/FieldHistory.js.map +1 -0
  52. package/dist/editor/FieldList.d.ts +16 -0
  53. package/dist/editor/FieldList.js +58 -0
  54. package/dist/editor/FieldList.js.map +1 -0
  55. package/dist/editor/FieldListField.d.ts +14 -0
  56. package/dist/editor/FieldListField.js +161 -0
  57. package/dist/editor/FieldListField.js.map +1 -0
  58. package/dist/editor/FieldListFieldWithFallbacks.d.ts +10 -0
  59. package/dist/editor/FieldListFieldWithFallbacks.js +109 -0
  60. package/dist/editor/FieldListFieldWithFallbacks.js.map +1 -0
  61. package/dist/editor/FloatingToolbar.d.ts +7 -0
  62. package/dist/editor/FloatingToolbar.js +90 -0
  63. package/dist/editor/FloatingToolbar.js.map +1 -0
  64. package/dist/editor/ImageEditor.d.ts +5 -0
  65. package/dist/editor/ImageEditor.js +53 -0
  66. package/dist/editor/ImageEditor.js.map +1 -0
  67. package/dist/editor/InsertMenu.d.ts +8 -0
  68. package/dist/editor/InsertMenu.js +158 -0
  69. package/dist/editor/InsertMenu.js.map +1 -0
  70. package/dist/editor/ItemInfo.d.ts +4 -0
  71. package/dist/editor/ItemInfo.js +28 -0
  72. package/dist/editor/ItemInfo.js.map +1 -0
  73. package/dist/editor/LinkEditorDialog.d.ts +15 -0
  74. package/dist/editor/LinkEditorDialog.js +84 -0
  75. package/dist/editor/LinkEditorDialog.js.map +1 -0
  76. package/dist/editor/MainLayout.d.ts +9 -0
  77. package/dist/editor/MainLayout.js +41 -0
  78. package/dist/editor/MainLayout.js.map +1 -0
  79. package/dist/editor/NewEditorClient.d.ts +5 -0
  80. package/dist/editor/NewEditorClient.js +7 -0
  81. package/dist/editor/NewEditorClient.js.map +1 -0
  82. package/dist/editor/PictureCropper.d.ts +6 -0
  83. package/dist/editor/PictureCropper.js +327 -0
  84. package/dist/editor/PictureCropper.js.map +1 -0
  85. package/dist/editor/PictureEditor.d.ts +8 -0
  86. package/dist/editor/PictureEditor.js +102 -0
  87. package/dist/editor/PictureEditor.js.map +1 -0
  88. package/dist/editor/PictureEditorDialog.d.ts +8 -0
  89. package/dist/editor/PictureEditorDialog.js +189 -0
  90. package/dist/editor/PictureEditorDialog.js.map +1 -0
  91. package/dist/editor/ScrollingContentTree.d.ts +6 -0
  92. package/dist/editor/ScrollingContentTree.js +25 -0
  93. package/dist/editor/ScrollingContentTree.js.map +1 -0
  94. package/dist/editor/Terminal.d.ts +14 -0
  95. package/dist/editor/Terminal.js +107 -0
  96. package/dist/editor/Terminal.js.map +1 -0
  97. package/dist/editor/Titlebar.d.ts +1 -0
  98. package/dist/editor/Titlebar.js +9 -0
  99. package/dist/editor/Titlebar.js.map +1 -0
  100. package/dist/editor/ai/AiPopup.d.ts +10 -0
  101. package/dist/editor/ai/AiPopup.js +23 -0
  102. package/dist/editor/ai/AiPopup.js.map +1 -0
  103. package/dist/editor/ai/AiResponseMessage.d.ts +8 -0
  104. package/dist/editor/ai/AiResponseMessage.js +22 -0
  105. package/dist/editor/ai/AiResponseMessage.js.map +1 -0
  106. package/dist/editor/ai/AiTerminal.d.ts +34 -0
  107. package/dist/editor/ai/AiTerminal.js +236 -0
  108. package/dist/editor/ai/AiTerminal.js.map +1 -0
  109. package/dist/editor/ai/AiToolCall.d.ts +9 -0
  110. package/dist/editor/ai/AiToolCall.js +16 -0
  111. package/dist/editor/ai/AiToolCall.js.map +1 -0
  112. package/dist/editor/ai/EditorAiTerminal.d.ts +5 -0
  113. package/dist/editor/ai/EditorAiTerminal.js +7 -0
  114. package/dist/editor/ai/EditorAiTerminal.js.map +1 -0
  115. package/dist/editor/ai/editorAiContext.d.ts +11 -0
  116. package/dist/editor/ai/editorAiContext.js +12 -0
  117. package/dist/editor/ai/editorAiContext.js.map +1 -0
  118. package/dist/editor/client/DialogContext.d.ts +12 -0
  119. package/dist/editor/client/DialogContext.js +25 -0
  120. package/dist/editor/client/DialogContext.js.map +1 -0
  121. package/dist/editor/client/EditorClient.d.ts +26 -0
  122. package/dist/editor/client/EditorClient.js +1298 -0
  123. package/dist/editor/client/EditorClient.js.map +1 -0
  124. package/dist/editor/client/GenericDialog.d.ts +10 -0
  125. package/dist/editor/client/GenericDialog.js +25 -0
  126. package/dist/editor/client/GenericDialog.js.map +1 -0
  127. package/dist/editor/client/editContext.d.ts +199 -0
  128. package/dist/editor/client/editContext.js +20 -0
  129. package/dist/editor/client/editContext.js.map +1 -0
  130. package/dist/editor/client/helpers.d.ts +12 -0
  131. package/dist/editor/client/helpers.js +29 -0
  132. package/dist/editor/client/helpers.js.map +1 -0
  133. package/dist/editor/client/itemsRepository.d.ts +24 -0
  134. package/dist/editor/client/itemsRepository.js +253 -0
  135. package/dist/editor/client/itemsRepository.js.map +1 -0
  136. package/dist/editor/client/operations.d.ts +57 -0
  137. package/dist/editor/client/operations.js +393 -0
  138. package/dist/editor/client/operations.js.map +1 -0
  139. package/dist/editor/client/pageModelBuilder.d.ts +6 -0
  140. package/dist/editor/client/pageModelBuilder.js +127 -0
  141. package/dist/editor/client/pageModelBuilder.js.map +1 -0
  142. package/dist/editor/commands/commands.d.ts +19 -0
  143. package/dist/editor/commands/commands.js +2 -0
  144. package/dist/editor/commands/commands.js.map +1 -0
  145. package/dist/editor/commands/componentCommands.d.ts +13 -0
  146. package/dist/editor/commands/componentCommands.js +271 -0
  147. package/dist/editor/commands/componentCommands.js.map +1 -0
  148. package/dist/editor/commands/createVersionCommand.d.ts +4 -0
  149. package/dist/editor/commands/createVersionCommand.js +24 -0
  150. package/dist/editor/commands/createVersionCommand.js.map +1 -0
  151. package/dist/editor/commands/deleteVersionCommand.d.ts +4 -0
  152. package/dist/editor/commands/deleteVersionCommand.js +53 -0
  153. package/dist/editor/commands/deleteVersionCommand.js.map +1 -0
  154. package/dist/editor/commands/itemCommands.d.ts +17 -0
  155. package/dist/editor/commands/itemCommands.js +132 -0
  156. package/dist/editor/commands/itemCommands.js.map +1 -0
  157. package/dist/editor/commands/localizeItem/LocalizeItemDialog.d.ts +8 -0
  158. package/dist/editor/commands/localizeItem/LocalizeItemDialog.js +89 -0
  159. package/dist/editor/commands/localizeItem/LocalizeItemDialog.js.map +1 -0
  160. package/dist/editor/commands/undo.d.ts +15 -0
  161. package/dist/editor/commands/undo.js +29 -0
  162. package/dist/editor/commands/undo.js.map +1 -0
  163. package/dist/editor/component-designer/ComponentDesigner.d.ts +1 -0
  164. package/dist/editor/component-designer/ComponentDesigner.js +56 -0
  165. package/dist/editor/component-designer/ComponentDesigner.js.map +1 -0
  166. package/dist/editor/component-designer/ComponentDesignerAiTerminal.d.ts +1 -0
  167. package/dist/editor/component-designer/ComponentDesignerAiTerminal.js +7 -0
  168. package/dist/editor/component-designer/ComponentDesignerAiTerminal.js.map +1 -0
  169. package/dist/editor/component-designer/ComponentDesignerMenu.d.ts +1 -0
  170. package/dist/editor/component-designer/ComponentDesignerMenu.js +65 -0
  171. package/dist/editor/component-designer/ComponentDesignerMenu.js.map +1 -0
  172. package/dist/editor/component-designer/ComponentEditor.d.ts +4 -0
  173. package/dist/editor/component-designer/ComponentEditor.js +57 -0
  174. package/dist/editor/component-designer/ComponentEditor.js.map +1 -0
  175. package/dist/editor/component-designer/ComponentRenderingCodeEditor.d.ts +5 -0
  176. package/dist/editor/component-designer/ComponentRenderingCodeEditor.js +11 -0
  177. package/dist/editor/component-designer/ComponentRenderingCodeEditor.js.map +1 -0
  178. package/dist/editor/component-designer/ComponentRenderingEditor.d.ts +1 -0
  179. package/dist/editor/component-designer/ComponentRenderingEditor.js +69 -0
  180. package/dist/editor/component-designer/ComponentRenderingEditor.js.map +1 -0
  181. package/dist/editor/component-designer/ComponentsDropdown.d.ts +4 -0
  182. package/dist/editor/component-designer/ComponentsDropdown.js +20 -0
  183. package/dist/editor/component-designer/ComponentsDropdown.js.map +1 -0
  184. package/dist/editor/component-designer/PlaceholdersEditor.d.ts +4 -0
  185. package/dist/editor/component-designer/PlaceholdersEditor.js +68 -0
  186. package/dist/editor/component-designer/PlaceholdersEditor.js.map +1 -0
  187. package/dist/editor/component-designer/RenderingsDropdown.d.ts +1 -0
  188. package/dist/editor/component-designer/RenderingsDropdown.js +23 -0
  189. package/dist/editor/component-designer/RenderingsDropdown.js.map +1 -0
  190. package/dist/editor/component-designer/TemplateEditor.d.ts +1 -0
  191. package/dist/editor/component-designer/TemplateEditor.js +142 -0
  192. package/dist/editor/component-designer/TemplateEditor.js.map +1 -0
  193. package/dist/editor/component-designer/aiContext.d.ts +5 -0
  194. package/dist/editor/component-designer/aiContext.js +16 -0
  195. package/dist/editor/component-designer/aiContext.js.map +1 -0
  196. package/dist/editor/componentTreeHelper.d.ts +16 -0
  197. package/dist/editor/componentTreeHelper.js +87 -0
  198. package/dist/editor/componentTreeHelper.js.map +1 -0
  199. package/dist/editor/control-center/ControlCenterMenu.d.ts +1 -0
  200. package/dist/editor/control-center/ControlCenterMenu.js +57 -0
  201. package/dist/editor/control-center/ControlCenterMenu.js.map +1 -0
  202. package/dist/editor/control-center/IndexOverview.d.ts +1 -0
  203. package/dist/editor/control-center/IndexOverview.js +25 -0
  204. package/dist/editor/control-center/IndexOverview.js.map +1 -0
  205. package/dist/editor/control-center/IndexSettings.d.ts +5 -0
  206. package/dist/editor/control-center/IndexSettings.js +104 -0
  207. package/dist/editor/control-center/IndexSettings.js.map +1 -0
  208. package/dist/editor/control-center/Status.d.ts +1 -0
  209. package/dist/editor/control-center/Status.js +5 -0
  210. package/dist/editor/control-center/Status.js.map +1 -0
  211. package/dist/editor/editor-warnings/ItemLocked.d.ts +2 -0
  212. package/dist/editor/editor-warnings/ItemLocked.js +38 -0
  213. package/dist/editor/editor-warnings/ItemLocked.js.map +1 -0
  214. package/dist/editor/editor-warnings/NoLanguageWriteAccess.d.ts +2 -0
  215. package/dist/editor/editor-warnings/NoLanguageWriteAccess.js +14 -0
  216. package/dist/editor/editor-warnings/NoLanguageWriteAccess.js.map +1 -0
  217. package/dist/editor/editor-warnings/NoWorkflowWriteAccess.d.ts +2 -0
  218. package/dist/editor/editor-warnings/NoWorkflowWriteAccess.js +14 -0
  219. package/dist/editor/editor-warnings/NoWorkflowWriteAccess.js.map +1 -0
  220. package/dist/editor/editor-warnings/NoWriteAccess.d.ts +2 -0
  221. package/dist/editor/editor-warnings/NoWriteAccess.js +12 -0
  222. package/dist/editor/editor-warnings/NoWriteAccess.js.map +1 -0
  223. package/dist/editor/editor-warnings/ValidationErrors.d.ts +2 -0
  224. package/dist/editor/editor-warnings/ValidationErrors.js +25 -0
  225. package/dist/editor/editor-warnings/ValidationErrors.js.map +1 -0
  226. package/dist/editor/field-types/AttachmentEditor.d.ts +4 -0
  227. package/dist/editor/field-types/AttachmentEditor.js +5 -0
  228. package/dist/editor/field-types/AttachmentEditor.js.map +1 -0
  229. package/dist/editor/field-types/CheckboxEditor.d.ts +5 -0
  230. package/dist/editor/field-types/CheckboxEditor.js +30 -0
  231. package/dist/editor/field-types/CheckboxEditor.js.map +1 -0
  232. package/dist/editor/field-types/DropLinkEditor.d.ts +5 -0
  233. package/dist/editor/field-types/DropLinkEditor.js +49 -0
  234. package/dist/editor/field-types/DropLinkEditor.js.map +1 -0
  235. package/dist/editor/field-types/DropListEditor.d.ts +5 -0
  236. package/dist/editor/field-types/DropListEditor.js +56 -0
  237. package/dist/editor/field-types/DropListEditor.js.map +1 -0
  238. package/dist/editor/field-types/ImageFieldEditor.d.ts +5 -0
  239. package/dist/editor/field-types/ImageFieldEditor.js +34 -0
  240. package/dist/editor/field-types/ImageFieldEditor.js.map +1 -0
  241. package/dist/editor/field-types/InternalLinkFieldEditor.d.ts +5 -0
  242. package/dist/editor/field-types/InternalLinkFieldEditor.js +59 -0
  243. package/dist/editor/field-types/InternalLinkFieldEditor.js.map +1 -0
  244. package/dist/editor/field-types/LinkFieldEditor.d.ts +5 -0
  245. package/dist/editor/field-types/LinkFieldEditor.js +56 -0
  246. package/dist/editor/field-types/LinkFieldEditor.js.map +1 -0
  247. package/dist/editor/field-types/MultiLineText.d.ts +6 -0
  248. package/dist/editor/field-types/MultiLineText.js +33 -0
  249. package/dist/editor/field-types/MultiLineText.js.map +1 -0
  250. package/dist/editor/field-types/PictureFieldEditor.d.ts +5 -0
  251. package/dist/editor/field-types/PictureFieldEditor.js +57 -0
  252. package/dist/editor/field-types/PictureFieldEditor.js.map +1 -0
  253. package/dist/editor/field-types/RawEditor.d.ts +5 -0
  254. package/dist/editor/field-types/RawEditor.js +31 -0
  255. package/dist/editor/field-types/RawEditor.js.map +1 -0
  256. package/dist/editor/field-types/ReactQuill.d.ts +125 -0
  257. package/dist/editor/field-types/ReactQuill.js +385 -0
  258. package/dist/editor/field-types/ReactQuill.js.map +1 -0
  259. package/dist/editor/field-types/RichTextEditor.d.ts +5 -0
  260. package/dist/editor/field-types/RichTextEditor.js +8 -0
  261. package/dist/editor/field-types/RichTextEditor.js.map +1 -0
  262. package/dist/editor/field-types/RichTextEditorComponent.d.ts +6 -0
  263. package/dist/editor/field-types/RichTextEditorComponent.js +70 -0
  264. package/dist/editor/field-types/RichTextEditorComponent.js.map +1 -0
  265. package/dist/editor/field-types/SingleLineText.d.ts +6 -0
  266. package/dist/editor/field-types/SingleLineText.js +90 -0
  267. package/dist/editor/field-types/SingleLineText.js.map +1 -0
  268. package/dist/editor/field-types/TreeListEditor.d.ts +5 -0
  269. package/dist/editor/field-types/TreeListEditor.js +132 -0
  270. package/dist/editor/field-types/TreeListEditor.js.map +1 -0
  271. package/dist/editor/fieldTypes.d.ts +117 -0
  272. package/dist/editor/fieldTypes.js +2 -0
  273. package/dist/editor/fieldTypes.js.map +1 -0
  274. package/dist/editor/media-selector/AiImageSearch.d.ts +4 -0
  275. package/dist/editor/media-selector/AiImageSearch.js +105 -0
  276. package/dist/editor/media-selector/AiImageSearch.js.map +1 -0
  277. package/dist/editor/media-selector/AiImageSearchPrompt.d.ts +3 -0
  278. package/dist/editor/media-selector/AiImageSearchPrompt.js +56 -0
  279. package/dist/editor/media-selector/AiImageSearchPrompt.js.map +1 -0
  280. package/dist/editor/media-selector/MediaSelector.d.ts +9 -0
  281. package/dist/editor/media-selector/MediaSelector.js +8 -0
  282. package/dist/editor/media-selector/MediaSelector.js.map +1 -0
  283. package/dist/editor/media-selector/Preview.d.ts +4 -0
  284. package/dist/editor/media-selector/Preview.js +7 -0
  285. package/dist/editor/media-selector/Preview.js.map +1 -0
  286. package/dist/editor/media-selector/Thumbnails.d.ts +13 -0
  287. package/dist/editor/media-selector/Thumbnails.js +9 -0
  288. package/dist/editor/media-selector/Thumbnails.js.map +1 -0
  289. package/dist/editor/media-selector/TreeSelector.d.ts +7 -0
  290. package/dist/editor/media-selector/TreeSelector.js +165 -0
  291. package/dist/editor/media-selector/TreeSelector.js.map +1 -0
  292. package/dist/editor/media-selector/UploadZone.d.ts +4 -0
  293. package/dist/editor/media-selector/UploadZone.js +78 -0
  294. package/dist/editor/media-selector/UploadZone.js.map +1 -0
  295. package/dist/editor/menubar/ActionsMenu.d.ts +1 -0
  296. package/dist/editor/menubar/ActionsMenu.js +31 -0
  297. package/dist/editor/menubar/ActionsMenu.js.map +1 -0
  298. package/dist/editor/menubar/ActiveUsers.d.ts +1 -0
  299. package/dist/editor/menubar/ActiveUsers.js +11 -0
  300. package/dist/editor/menubar/ActiveUsers.js.map +1 -0
  301. package/dist/editor/menubar/ApproveAndPublish.d.ts +1 -0
  302. package/dist/editor/menubar/ApproveAndPublish.js +11 -0
  303. package/dist/editor/menubar/ApproveAndPublish.js.map +1 -0
  304. package/dist/editor/menubar/BrowseHistory.d.ts +6 -0
  305. package/dist/editor/menubar/BrowseHistory.js +12 -0
  306. package/dist/editor/menubar/BrowseHistory.js.map +1 -0
  307. package/dist/editor/menubar/ItemLanguageVersion.d.ts +1 -0
  308. package/dist/editor/menubar/ItemLanguageVersion.js +34 -0
  309. package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -0
  310. package/dist/editor/menubar/LanguageSelector.d.ts +9 -0
  311. package/dist/editor/menubar/LanguageSelector.js +31 -0
  312. package/dist/editor/menubar/LanguageSelector.js.map +1 -0
  313. package/dist/editor/menubar/Menu.d.ts +1 -0
  314. package/dist/editor/menubar/Menu.js +63 -0
  315. package/dist/editor/menubar/Menu.js.map +1 -0
  316. package/dist/editor/menubar/NavButtons.d.ts +1 -0
  317. package/dist/editor/menubar/NavButtons.js +41 -0
  318. package/dist/editor/menubar/NavButtons.js.map +1 -0
  319. package/dist/editor/menubar/PageSelector.d.ts +4 -0
  320. package/dist/editor/menubar/PageSelector.js +48 -0
  321. package/dist/editor/menubar/PageSelector.js.map +1 -0
  322. package/dist/editor/menubar/PageViewerControls.d.ts +1 -0
  323. package/dist/editor/menubar/PageViewerControls.js +35 -0
  324. package/dist/editor/menubar/PageViewerControls.js.map +1 -0
  325. package/dist/editor/menubar/Separator.d.ts +3 -0
  326. package/dist/editor/menubar/Separator.js +6 -0
  327. package/dist/editor/menubar/Separator.js.map +1 -0
  328. package/dist/editor/menubar/SiteInfo.d.ts +1 -0
  329. package/dist/editor/menubar/SiteInfo.js +24 -0
  330. package/dist/editor/menubar/SiteInfo.js.map +1 -0
  331. package/dist/editor/menubar/User.d.ts +4 -0
  332. package/dist/editor/menubar/User.js +16 -0
  333. package/dist/editor/menubar/User.js.map +1 -0
  334. package/dist/editor/menubar/VersionSelector.d.ts +9 -0
  335. package/dist/editor/menubar/VersionSelector.js +47 -0
  336. package/dist/editor/menubar/VersionSelector.js.map +1 -0
  337. package/dist/editor/page-editor-chrome/CommentHighlighting.d.ts +6 -0
  338. package/dist/editor/page-editor-chrome/CommentHighlighting.js +212 -0
  339. package/dist/editor/page-editor-chrome/CommentHighlighting.js.map +1 -0
  340. package/dist/editor/page-editor-chrome/CommentHighlightings.d.ts +4 -0
  341. package/dist/editor/page-editor-chrome/CommentHighlightings.js +15 -0
  342. package/dist/editor/page-editor-chrome/CommentHighlightings.js.map +1 -0
  343. package/dist/editor/page-editor-chrome/FieldActionIndicator.d.ts +4 -0
  344. package/dist/editor/page-editor-chrome/FieldActionIndicator.js +25 -0
  345. package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -0
  346. package/dist/editor/page-editor-chrome/FieldActionIndicators.d.ts +1 -0
  347. package/dist/editor/page-editor-chrome/FieldActionIndicators.js +13 -0
  348. package/dist/editor/page-editor-chrome/FieldActionIndicators.js.map +1 -0
  349. package/dist/editor/page-editor-chrome/FieldEditedIndicator.d.ts +8 -0
  350. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +25 -0
  351. package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -0
  352. package/dist/editor/page-editor-chrome/FieldEditedIndicators.d.ts +6 -0
  353. package/dist/editor/page-editor-chrome/FieldEditedIndicators.js +13 -0
  354. package/dist/editor/page-editor-chrome/FieldEditedIndicators.js.map +1 -0
  355. package/dist/editor/page-editor-chrome/FrameMenu.d.ts +7 -0
  356. package/dist/editor/page-editor-chrome/FrameMenu.js +176 -0
  357. package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -0
  358. package/dist/editor/page-editor-chrome/FrameMenus.d.ts +5 -0
  359. package/dist/editor/page-editor-chrome/FrameMenus.js +22 -0
  360. package/dist/editor/page-editor-chrome/FrameMenus.js.map +1 -0
  361. package/dist/editor/page-editor-chrome/InlineEditor.d.ts +5 -0
  362. package/dist/editor/page-editor-chrome/InlineEditor.js +99 -0
  363. package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -0
  364. package/dist/editor/page-editor-chrome/LockedFieldIndicator.d.ts +1 -0
  365. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +33 -0
  366. package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -0
  367. package/dist/editor/page-editor-chrome/NoLayout.d.ts +1 -0
  368. package/dist/editor/page-editor-chrome/NoLayout.js +19 -0
  369. package/dist/editor/page-editor-chrome/NoLayout.js.map +1 -0
  370. package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +6 -0
  371. package/dist/editor/page-editor-chrome/PageEditorChrome.js +63 -0
  372. package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -0
  373. package/dist/editor/page-editor-chrome/PictureEditorOverlay.d.ts +1 -0
  374. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +107 -0
  375. package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -0
  376. package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +14 -0
  377. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +80 -0
  378. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -0
  379. package/dist/editor/page-editor-chrome/PlaceholderDropZones.d.ts +5 -0
  380. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +145 -0
  381. package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -0
  382. package/dist/editor/page-viewer/DeviceToolbar.d.ts +6 -0
  383. package/dist/editor/page-viewer/DeviceToolbar.js +19 -0
  384. package/dist/editor/page-viewer/DeviceToolbar.js.map +1 -0
  385. package/dist/editor/page-viewer/EditorForm.d.ts +5 -0
  386. package/dist/editor/page-viewer/EditorForm.js +128 -0
  387. package/dist/editor/page-viewer/EditorForm.js.map +1 -0
  388. package/dist/editor/page-viewer/MiniMap.d.ts +9 -0
  389. package/dist/editor/page-viewer/MiniMap.js +222 -0
  390. package/dist/editor/page-viewer/MiniMap.js.map +1 -0
  391. package/dist/editor/page-viewer/PageViewer.d.ts +8 -0
  392. package/dist/editor/page-viewer/PageViewer.js +62 -0
  393. package/dist/editor/page-viewer/PageViewer.js.map +1 -0
  394. package/dist/editor/page-viewer/PageViewerFrame.d.ts +11 -0
  395. package/dist/editor/page-viewer/PageViewerFrame.js +690 -0
  396. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -0
  397. package/dist/editor/page-viewer/pageViewContext.d.ts +38 -0
  398. package/dist/editor/page-viewer/pageViewContext.js +115 -0
  399. package/dist/editor/page-viewer/pageViewContext.js.map +1 -0
  400. package/dist/editor/pageModel.d.ts +171 -0
  401. package/dist/editor/pageModel.js +2 -0
  402. package/dist/editor/pageModel.js.map +1 -0
  403. package/dist/editor/picture-shared.d.ts +16 -0
  404. package/dist/editor/picture-shared.js +25 -0
  405. package/dist/editor/picture-shared.js.map +1 -0
  406. package/dist/editor/reviews/Comment.d.ts +4 -0
  407. package/dist/editor/reviews/Comment.js +114 -0
  408. package/dist/editor/reviews/Comment.js.map +1 -0
  409. package/dist/editor/reviews/Comments.d.ts +1 -0
  410. package/dist/editor/reviews/Comments.js +22 -0
  411. package/dist/editor/reviews/Comments.js.map +1 -0
  412. package/dist/editor/reviews/PreviewInfo.d.ts +1 -0
  413. package/dist/editor/reviews/PreviewInfo.js +11 -0
  414. package/dist/editor/reviews/PreviewInfo.js.map +1 -0
  415. package/dist/editor/reviews/Reviews.d.ts +1 -0
  416. package/dist/editor/reviews/Reviews.js +160 -0
  417. package/dist/editor/reviews/Reviews.js.map +1 -0
  418. package/dist/editor/reviews/reviewCommands.d.ts +3 -0
  419. package/dist/editor/reviews/reviewCommands.js +42 -0
  420. package/dist/editor/reviews/reviewCommands.js.map +1 -0
  421. package/dist/editor/reviews/useReviews.d.ts +12 -0
  422. package/dist/editor/reviews/useReviews.js +43 -0
  423. package/dist/editor/reviews/useReviews.js.map +1 -0
  424. package/dist/editor/services/aiService.d.ts +34 -0
  425. package/dist/editor/services/aiService.js +95 -0
  426. package/dist/editor/services/aiService.js.map +1 -0
  427. package/dist/editor/services/componentDesignerService.d.ts +46 -0
  428. package/dist/editor/services/componentDesignerService.js +72 -0
  429. package/dist/editor/services/componentDesignerService.js.map +1 -0
  430. package/dist/editor/services/contentService.d.ts +34 -0
  431. package/dist/editor/services/contentService.js +92 -0
  432. package/dist/editor/services/contentService.js.map +1 -0
  433. package/dist/editor/services/editService.d.ts +34 -0
  434. package/dist/editor/services/editService.js +294 -0
  435. package/dist/editor/services/editService.js.map +1 -0
  436. package/dist/editor/services/indexService.d.ts +6 -0
  437. package/dist/editor/services/indexService.js +19 -0
  438. package/dist/editor/services/indexService.js.map +1 -0
  439. package/dist/editor/services/reviewsService.d.ts +12 -0
  440. package/dist/editor/services/reviewsService.js +32 -0
  441. package/dist/editor/services/reviewsService.js.map +1 -0
  442. package/dist/editor/services/serviceHelper.d.ts +9 -0
  443. package/dist/editor/services/serviceHelper.js +64 -0
  444. package/dist/editor/services/serviceHelper.js.map +1 -0
  445. package/dist/editor/services/systemService.d.ts +2 -0
  446. package/dist/editor/services/systemService.js +5 -0
  447. package/dist/editor/services/systemService.js.map +1 -0
  448. package/dist/editor/services/translationService.d.ts +11 -0
  449. package/dist/editor/services/translationService.js +11 -0
  450. package/dist/editor/services/translationService.js.map +1 -0
  451. package/dist/editor/services-server/api.d.ts +19 -0
  452. package/dist/editor/services-server/api.js +111 -0
  453. package/dist/editor/services-server/api.js.map +1 -0
  454. package/dist/editor/services-server/graphQL.d.ts +29 -0
  455. package/dist/editor/services-server/graphQL.js +53 -0
  456. package/dist/editor/services-server/graphQL.js.map +1 -0
  457. package/dist/editor/sidebar/ComponentPalette.d.ts +1 -0
  458. package/dist/editor/sidebar/ComponentPalette.js +53 -0
  459. package/dist/editor/sidebar/ComponentPalette.js.map +1 -0
  460. package/dist/editor/sidebar/ComponentTree.d.ts +1 -0
  461. package/dist/editor/sidebar/ComponentTree.js +360 -0
  462. package/dist/editor/sidebar/ComponentTree.js.map +1 -0
  463. package/dist/editor/sidebar/Debug.d.ts +1 -0
  464. package/dist/editor/sidebar/Debug.js +58 -0
  465. package/dist/editor/sidebar/Debug.js.map +1 -0
  466. package/dist/editor/sidebar/DictionaryEditor.d.ts +1 -0
  467. package/dist/editor/sidebar/DictionaryEditor.js +158 -0
  468. package/dist/editor/sidebar/DictionaryEditor.js.map +1 -0
  469. package/dist/editor/sidebar/EditHistory.d.ts +1 -0
  470. package/dist/editor/sidebar/EditHistory.js +72 -0
  471. package/dist/editor/sidebar/EditHistory.js.map +1 -0
  472. package/dist/editor/sidebar/GraphQL.d.ts +1 -0
  473. package/dist/editor/sidebar/GraphQL.js +113 -0
  474. package/dist/editor/sidebar/GraphQL.js.map +1 -0
  475. package/dist/editor/sidebar/Insert.d.ts +1 -0
  476. package/dist/editor/sidebar/Insert.js +22 -0
  477. package/dist/editor/sidebar/Insert.js.map +1 -0
  478. package/dist/editor/sidebar/MainContentTree.d.ts +4 -0
  479. package/dist/editor/sidebar/MainContentTree.js +49 -0
  480. package/dist/editor/sidebar/MainContentTree.js.map +1 -0
  481. package/dist/editor/sidebar/Performance.d.ts +1 -0
  482. package/dist/editor/sidebar/Performance.js +32 -0
  483. package/dist/editor/sidebar/Performance.js.map +1 -0
  484. package/dist/editor/sidebar/Sessions.d.ts +1 -0
  485. package/dist/editor/sidebar/Sessions.js +29 -0
  486. package/dist/editor/sidebar/Sessions.js.map +1 -0
  487. package/dist/editor/sidebar/Sidebar.d.ts +1 -0
  488. package/dist/editor/sidebar/Sidebar.js +13 -0
  489. package/dist/editor/sidebar/Sidebar.js.map +1 -0
  490. package/dist/editor/sidebar/SidebarView.d.ts +8 -0
  491. package/dist/editor/sidebar/SidebarView.js +74 -0
  492. package/dist/editor/sidebar/SidebarView.js.map +1 -0
  493. package/dist/editor/sidebar/Translations.d.ts +1 -0
  494. package/dist/editor/sidebar/Translations.js +158 -0
  495. package/dist/editor/sidebar/Translations.js.map +1 -0
  496. package/dist/editor/sidebar/Validation.d.ts +1 -0
  497. package/dist/editor/sidebar/Validation.js +50 -0
  498. package/dist/editor/sidebar/Validation.js.map +1 -0
  499. package/dist/editor/sidebar/ViewSelector.d.ts +1 -0
  500. package/dist/editor/sidebar/ViewSelector.js +13 -0
  501. package/dist/editor/sidebar/ViewSelector.js.map +1 -0
  502. package/dist/editor/sidebar/Workbox.d.ts +1 -0
  503. package/dist/editor/sidebar/Workbox.js +78 -0
  504. package/dist/editor/sidebar/Workbox.js.map +1 -0
  505. package/dist/editor/ui/CenteredMessage.d.ts +3 -0
  506. package/dist/editor/ui/CenteredMessage.js +5 -0
  507. package/dist/editor/ui/CenteredMessage.js.map +1 -0
  508. package/dist/editor/ui/CopyToClipboardButton.d.ts +3 -0
  509. package/dist/editor/ui/CopyToClipboardButton.js +15 -0
  510. package/dist/editor/ui/CopyToClipboardButton.js.map +1 -0
  511. package/dist/editor/ui/DialogButtons.d.ts +3 -0
  512. package/dist/editor/ui/DialogButtons.js +5 -0
  513. package/dist/editor/ui/DialogButtons.js.map +1 -0
  514. package/dist/editor/ui/Icons.d.ts +38 -0
  515. package/dist/editor/ui/Icons.js +56 -0
  516. package/dist/editor/ui/Icons.js.map +1 -0
  517. package/dist/editor/ui/ItemNameDialog.d.ts +11 -0
  518. package/dist/editor/ui/ItemNameDialog.js +40 -0
  519. package/dist/editor/ui/ItemNameDialog.js.map +1 -0
  520. package/dist/editor/ui/ItemNameDialogNew.d.ts +10 -0
  521. package/dist/editor/ui/ItemNameDialogNew.js +56 -0
  522. package/dist/editor/ui/ItemNameDialogNew.js.map +1 -0
  523. package/dist/editor/ui/ItemSearch.d.ts +23 -0
  524. package/dist/editor/ui/ItemSearch.js +90 -0
  525. package/dist/editor/ui/ItemSearch.js.map +1 -0
  526. package/dist/editor/ui/PerfectTree.d.ts +60 -0
  527. package/dist/editor/ui/PerfectTree.js +187 -0
  528. package/dist/editor/ui/PerfectTree.js.map +1 -0
  529. package/dist/editor/ui/Section.d.ts +4 -0
  530. package/dist/editor/ui/Section.js +10 -0
  531. package/dist/editor/ui/Section.js.map +1 -0
  532. package/dist/editor/ui/SimpleIconButton.d.ts +11 -0
  533. package/dist/editor/ui/SimpleIconButton.js +9 -0
  534. package/dist/editor/ui/SimpleIconButton.js.map +1 -0
  535. package/dist/editor/ui/SimpleMenu.d.ts +13 -0
  536. package/dist/editor/ui/SimpleMenu.js +7 -0
  537. package/dist/editor/ui/SimpleMenu.js.map +1 -0
  538. package/dist/editor/ui/SimpleTable.d.ts +14 -0
  539. package/dist/editor/ui/SimpleTable.js +9 -0
  540. package/dist/editor/ui/SimpleTable.js.map +1 -0
  541. package/dist/editor/ui/SimpleTabs.d.ts +12 -0
  542. package/dist/editor/ui/SimpleTabs.js +19 -0
  543. package/dist/editor/ui/SimpleTabs.js.map +1 -0
  544. package/dist/editor/ui/SimpleToolbar.d.ts +3 -0
  545. package/dist/editor/ui/SimpleToolbar.js +5 -0
  546. package/dist/editor/ui/SimpleToolbar.js.map +1 -0
  547. package/dist/editor/ui/Spinner.d.ts +3 -0
  548. package/dist/editor/ui/Spinner.js +5 -0
  549. package/dist/editor/ui/Spinner.js.map +1 -0
  550. package/dist/editor/ui/Splitter.d.ts +15 -0
  551. package/dist/editor/ui/Splitter.js +151 -0
  552. package/dist/editor/ui/Splitter.js.map +1 -0
  553. package/dist/editor/ui/StackedPanels.d.ts +5 -0
  554. package/dist/editor/ui/StackedPanels.js +67 -0
  555. package/dist/editor/ui/StackedPanels.js.map +1 -0
  556. package/dist/editor/ui/Toolbar.d.ts +3 -0
  557. package/dist/editor/ui/Toolbar.js +5 -0
  558. package/dist/editor/ui/Toolbar.js.map +1 -0
  559. package/dist/editor/utils/id-helper.d.ts +1 -0
  560. package/dist/editor/utils/id-helper.js +5 -0
  561. package/dist/editor/utils/id-helper.js.map +1 -0
  562. package/dist/editor/utils/insertOptions.d.ts +3 -0
  563. package/dist/editor/utils/insertOptions.js +43 -0
  564. package/dist/editor/utils/insertOptions.js.map +1 -0
  565. package/dist/editor/utils/itemutils.d.ts +3 -0
  566. package/dist/editor/utils/itemutils.js +22 -0
  567. package/dist/editor/utils/itemutils.js.map +1 -0
  568. package/dist/editor/utils/useMemoDebug.d.ts +1 -0
  569. package/dist/editor/utils/useMemoDebug.js +18 -0
  570. package/dist/editor/utils/useMemoDebug.js.map +1 -0
  571. package/dist/editor/utils.d.ts +44 -0
  572. package/dist/editor/utils.js +309 -0
  573. package/dist/editor/utils.js.map +1 -0
  574. package/dist/editor/views/CompareView.d.ts +1 -0
  575. package/dist/editor/views/CompareView.js +145 -0
  576. package/dist/editor/views/CompareView.js.map +1 -0
  577. package/dist/editor/views/EditView.d.ts +1 -0
  578. package/dist/editor/views/EditView.js +15 -0
  579. package/dist/editor/views/EditView.js.map +1 -0
  580. package/dist/editor/views/ItemEditor.d.ts +7 -0
  581. package/dist/editor/views/ItemEditor.js +22 -0
  582. package/dist/editor/views/ItemEditor.js.map +1 -0
  583. package/dist/editor/views/SingleEditView.d.ts +8 -0
  584. package/dist/editor/views/SingleEditView.js +23 -0
  585. package/dist/editor/views/SingleEditView.js.map +1 -0
  586. package/dist/images/bg-shape-black.webp +0 -0
  587. package/dist/index.d.ts +5 -0
  588. package/dist/index.js +5 -0
  589. package/dist/index.js.map +1 -0
  590. package/dist/lib/utils.d.ts +2 -0
  591. package/dist/lib/utils.js +6 -0
  592. package/dist/lib/utils.js.map +1 -0
  593. package/dist/page-wizard/PageWizard.d.ts +70 -0
  594. package/dist/page-wizard/PageWizard.js +60 -0
  595. package/dist/page-wizard/PageWizard.js.map +1 -0
  596. package/dist/page-wizard/SelectWizard.d.ts +7 -0
  597. package/dist/page-wizard/SelectWizard.js +41 -0
  598. package/dist/page-wizard/SelectWizard.js.map +1 -0
  599. package/dist/page-wizard/WizardSteps.d.ts +8 -0
  600. package/dist/page-wizard/WizardSteps.js +69 -0
  601. package/dist/page-wizard/WizardSteps.js.map +1 -0
  602. package/dist/page-wizard/service.d.ts +15 -0
  603. package/dist/page-wizard/service.js +22 -0
  604. package/dist/page-wizard/service.js.map +1 -0
  605. package/dist/page-wizard/startPageWizardCommand.d.ts +13 -0
  606. package/dist/page-wizard/startPageWizardCommand.js +21 -0
  607. package/dist/page-wizard/startPageWizardCommand.js.map +1 -0
  608. package/dist/page-wizard/steps/BuildPageStep.d.ts +2 -0
  609. package/dist/page-wizard/steps/BuildPageStep.js +133 -0
  610. package/dist/page-wizard/steps/BuildPageStep.js.map +1 -0
  611. package/dist/page-wizard/steps/CollectStep.d.ts +2 -0
  612. package/dist/page-wizard/steps/CollectStep.js +119 -0
  613. package/dist/page-wizard/steps/CollectStep.js.map +1 -0
  614. package/dist/page-wizard/steps/ComponentTypesSelector.d.ts +11 -0
  615. package/dist/page-wizard/steps/ComponentTypesSelector.js +209 -0
  616. package/dist/page-wizard/steps/ComponentTypesSelector.js.map +1 -0
  617. package/dist/page-wizard/steps/Components.d.ts +9 -0
  618. package/dist/page-wizard/steps/Components.js +89 -0
  619. package/dist/page-wizard/steps/Components.js.map +1 -0
  620. package/dist/page-wizard/steps/CreatePage.d.ts +12 -0
  621. package/dist/page-wizard/steps/CreatePage.js +140 -0
  622. package/dist/page-wizard/steps/CreatePage.js.map +1 -0
  623. package/dist/page-wizard/steps/CreatePageAndLayoutStep.d.ts +2 -0
  624. package/dist/page-wizard/steps/CreatePageAndLayoutStep.js +228 -0
  625. package/dist/page-wizard/steps/CreatePageAndLayoutStep.js.map +1 -0
  626. package/dist/page-wizard/steps/EditButton.d.ts +8 -0
  627. package/dist/page-wizard/steps/EditButton.js +5 -0
  628. package/dist/page-wizard/steps/EditButton.js.map +1 -0
  629. package/dist/page-wizard/steps/FieldEditor.d.ts +5 -0
  630. package/dist/page-wizard/steps/FieldEditor.js +28 -0
  631. package/dist/page-wizard/steps/FieldEditor.js.map +1 -0
  632. package/dist/page-wizard/steps/Generate.d.ts +5 -0
  633. package/dist/page-wizard/steps/Generate.js +10 -0
  634. package/dist/page-wizard/steps/Generate.js.map +1 -0
  635. package/dist/page-wizard/steps/ImagesStep.d.ts +2 -0
  636. package/dist/page-wizard/steps/ImagesStep.js +156 -0
  637. package/dist/page-wizard/steps/ImagesStep.js.map +1 -0
  638. package/dist/page-wizard/steps/LayoutStep.d.ts +2 -0
  639. package/dist/page-wizard/steps/LayoutStep.js +118 -0
  640. package/dist/page-wizard/steps/LayoutStep.js.map +1 -0
  641. package/dist/page-wizard/steps/SelectStep.d.ts +2 -0
  642. package/dist/page-wizard/steps/SelectStep.js +145 -0
  643. package/dist/page-wizard/steps/SelectStep.js.map +1 -0
  644. package/dist/page-wizard/steps/schema.d.ts +13 -0
  645. package/dist/page-wizard/steps/schema.js +137 -0
  646. package/dist/page-wizard/steps/schema.js.map +1 -0
  647. package/dist/page-wizard/steps/usePageCreator.d.ts +6 -0
  648. package/dist/page-wizard/steps/usePageCreator.js +192 -0
  649. package/dist/page-wizard/steps/usePageCreator.js.map +1 -0
  650. package/dist/splash-screen/NewPage.d.ts +3 -0
  651. package/dist/splash-screen/NewPage.js +129 -0
  652. package/dist/splash-screen/NewPage.js.map +1 -0
  653. package/dist/splash-screen/SectionHeadline.d.ts +4 -0
  654. package/dist/splash-screen/SectionHeadline.js +7 -0
  655. package/dist/splash-screen/SectionHeadline.js.map +1 -0
  656. package/dist/splash-screen/SplashScreen.d.ts +1 -0
  657. package/dist/splash-screen/SplashScreen.js +79 -0
  658. package/dist/splash-screen/SplashScreen.js.map +1 -0
  659. package/dist/styles.css +2739 -0
  660. package/dist/tour/Tour.d.ts +3 -0
  661. package/dist/tour/Tour.js +319 -0
  662. package/dist/tour/Tour.js.map +1 -0
  663. package/dist/tour/default-tour.d.ts +9 -0
  664. package/dist/tour/default-tour.js +229 -0
  665. package/dist/tour/default-tour.js.map +1 -0
  666. package/dist/tour/preview-tour.d.ts +2 -0
  667. package/dist/tour/preview-tour.js +91 -0
  668. package/dist/tour/preview-tour.js.map +1 -0
  669. package/dist/types.d.ts +259 -0
  670. package/dist/types.js +2 -0
  671. package/dist/types.js.map +1 -0
  672. package/package.json +12 -5
  673. package/src/components/ui/button.tsx +62 -0
  674. package/src/editor/Titlebar.tsx +2 -2
  675. package/src/editor/client/EditorClient.tsx +8 -9
  676. package/src/editor/menubar/ActionsMenu.tsx +1 -1
  677. package/src/editor/menubar/Menu.tsx +3 -3
  678. package/src/editor/menubar/VersionSelector.tsx +9 -10
  679. package/src/editor/page-editor-chrome/CommentHighlighting.tsx +8 -9
  680. package/src/editor/page-viewer/MiniMap.tsx +11 -11
  681. package/src/editor/reviews/Comment.tsx +38 -33
  682. package/src/editor/sidebar/ComponentTree.tsx +512 -512
  683. package/src/editor/sidebar/Insert.tsx +2 -2
  684. package/src/editor/sidebar/MainContentTree.tsx +1 -0
  685. package/src/editor/sidebar/Translations.tsx +12 -12
  686. package/src/editor/sidebar/ViewSelector.tsx +6 -7
  687. package/src/editor/ui/PerfectTree.tsx +2 -2
  688. package/src/editor/ui/SimpleTable.tsx +3 -6
  689. package/src/editor/utils.ts +32 -29
  690. package/src/index.ts +2 -0
  691. package/src/lib/utils.ts +6 -0
  692. package/src/splash-screen/SplashScreen.tsx +2 -2
  693. package/styles.css +124 -2
  694. package/tsconfig.build.json +23 -13
  695. package/tsconfig.json +3 -0
@@ -0,0 +1,156 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { ScrollingContentTree } from "../../editor/ScrollingContentTree";
4
+ import { Splitter } from "../../editor/ui/Splitter";
5
+ import { useEditContext } from "../../editor/client/editContext";
6
+ import { executePrompt, executeSearch } from "../../editor/services/aiService";
7
+ import { createWizardAiContext } from "../service";
8
+ import { ActionButton } from "../../components/ActionButton";
9
+ import { classNames } from "primereact/utils";
10
+ import { Button } from "primereact/button";
11
+ import { Dialog } from "primereact/dialog";
12
+ export const ImagesStep = (props) => {
13
+ const mediaRootId = "3D6658D8-A0BF-4E75-B3E2-D050FABCF4E1";
14
+ const [selectedFolderId, setSelectedFolderId] = useState(mediaRootId);
15
+ const [isLoading, setIsLoading] = useState(false);
16
+ const [error, setError] = useState(null);
17
+ const editContext = useEditContext();
18
+ const propName = props.step.propertyName || "images";
19
+ const [showFolderDialog, setShowFolderDialog] = useState(false);
20
+ const [selectedFolder, setSelectedFolder] = useState();
21
+ useEffect(() => {
22
+ if (props.data[propName]?.length > 0) {
23
+ props.setStepCompleted(true);
24
+ }
25
+ }, [props.data]);
26
+ const findMatchingImages = async () => {
27
+ setIsLoading(true);
28
+ setError(null);
29
+ props.setData((prevData) => ({
30
+ ...prevData,
31
+ [propName]: [],
32
+ }));
33
+ try {
34
+ // First, ask AI for keywords based on the content
35
+ const aiPromptResult = await executePrompt([
36
+ {
37
+ content: `You are an AI assistant for building a web page. You will later have to create images for the page.
38
+ Please anaylze the provided data and suggest a number of images and specific keywords per image. The keywords will be used to find matching images in the image library.
39
+ Response JSON format: { images: Image[] } type Image = { title: string, keywords: string[] }
40
+ Input data: ${JSON.stringify(props.data)}
41
+ Instructions: ${props.step.instructions}`,
42
+ name: "system",
43
+ role: "system",
44
+ },
45
+ ], editContext, createWizardAiContext, [""], true, undefined, "o3-mini-low");
46
+ const images = JSON.parse(aiPromptResult.content).images;
47
+ // Create an array of promises for all search operations
48
+ const searchPromises = images.map(async (image) => {
49
+ const searchResult = await executeSearch({
50
+ query: image.keywords.join(" "),
51
+ rootItemIds: selectedFolderId ? [selectedFolderId] : undefined,
52
+ editContext: editContext,
53
+ maxResults: 6,
54
+ index: "media",
55
+ skipValidation: true,
56
+ });
57
+ if (searchResult.type === "success") {
58
+ const thumbnails = searchResult.data.map((thumbnail) => ({
59
+ name: thumbnail.name,
60
+ id: thumbnail.id,
61
+ thumbUrl: thumbnail.thumbUrl,
62
+ description: thumbnail.description,
63
+ }));
64
+ props.setInternalState((state) => ({
65
+ ...state,
66
+ thumbnails: [
67
+ ...(state.thumbnails || []),
68
+ ...thumbnails.filter((newThumb) => !(state.thumbnails || []).some((existingThumb) => existingThumb.id === newThumb.id)),
69
+ ],
70
+ }));
71
+ props.setData((prevData) => ({
72
+ ...prevData,
73
+ [propName]: [
74
+ ...(prevData[propName] || []),
75
+ {
76
+ ...image,
77
+ options: thumbnails,
78
+ },
79
+ ],
80
+ }));
81
+ }
82
+ else {
83
+ setError(`Error searching for images: ${searchResult.response.statusText}`);
84
+ }
85
+ });
86
+ // Wait for all search operations to complete
87
+ await Promise.all(searchPromises);
88
+ }
89
+ catch (err) {
90
+ setError(`Error finding matching images: ${err instanceof Error ? err.message : String(err)}`);
91
+ console.error("Error in findMatchingImages:", err);
92
+ }
93
+ finally {
94
+ setIsLoading(false);
95
+ }
96
+ };
97
+ useEffect(() => {
98
+ const loadFolder = async () => {
99
+ if (selectedFolderId) {
100
+ const item = await editContext?.itemsRepository.getItem({
101
+ id: selectedFolderId,
102
+ language: "en",
103
+ version: 1,
104
+ });
105
+ console.log("ITEM", item);
106
+ setSelectedFolder(item);
107
+ }
108
+ };
109
+ loadFolder();
110
+ }, [selectedFolderId]);
111
+ console.log("FOLDER", selectedFolder, selectedFolderId);
112
+ const panels = [
113
+ {
114
+ name: "Settings",
115
+ defaultSize: 400,
116
+ content: (_jsxs("div", { className: "flex h-full flex-col gap-2 pr-6 pb-4", children: [_jsxs("div", { className: "relative mb-2 rounded-md border border-gray-400 bg-white p-4", children: [_jsx("div", { className: "mb-2 text-sm font-bold text-gray-800", children: "Image library folder" }), selectedFolder && (_jsx("div", { className: "mb-2 text-sm text-gray-500", children: selectedFolder.path })), _jsx(Button, { label: "Change Folder", onClick: () => {
117
+ setShowFolderDialog(true);
118
+ } }), _jsx(Dialog, { header: "Select Folder", visible: showFolderDialog, onHide: () => {
119
+ setShowFolderDialog(false);
120
+ }, style: { width: "50vw", height: "50vh" }, children: _jsx("div", { className: "relative flex h-full flex-col", children: _jsx(ScrollingContentTree, { rootItemId: mediaRootId, onSelectionChange: (selection) => {
121
+ const selectedNode = selection[0];
122
+ if (selectedNode)
123
+ setSelectedFolderId(selectedNode.id);
124
+ else
125
+ setSelectedFolderId(mediaRootId);
126
+ setShowFolderDialog(false);
127
+ } }) }) })] }), _jsx(ActionButton, { onClick: findMatchingImages, isLoading: isLoading, disabled: isLoading, loadingText: "Searching...", children: "Find Matching Images" })] })),
128
+ },
129
+ {
130
+ name: "Images",
131
+ defaultSize: "auto",
132
+ content: (_jsx("div", { className: "absolute inset-0 overflow-auto", children: _jsx("div", { className: "flex flex-col gap-4 p-4 pt-0", children: _jsxs("div", { className: "flex items-center gap-4", children: [error && _jsx("div", { className: "text-red-500", children: error }), props.data[propName]?.length > 0 && (_jsx("div", { className: "flex flex-col gap-4", children: props.data[propName]?.map((image, index) => (_jsxs("span", { className: classNames("rounded border border-gray-400 bg-white p-4 text-sm", index % 2 === 0
133
+ ? "animate-fadeRight"
134
+ : "animate-fadeLeft"), children: [_jsx("div", { className: "mb-3 text-lg", children: image.title }), _jsx("div", { className: "flex flex-wrap gap-5", children: image.options?.map((option, thumbnailIndex) => (_jsxs("div", { className: "relative flex h-28 w-28 cursor-pointer items-center justify-center border border-gray-400", onClick: () => {
135
+ props.setData((prevData) => ({
136
+ ...prevData,
137
+ [propName]: prevData[propName].map((img, imgIndex) => ({
138
+ ...img,
139
+ options: imgIndex !== index
140
+ ? img.options
141
+ : img.options?.map((option, optionIndex) => optionIndex === thumbnailIndex
142
+ ? {
143
+ ...option,
144
+ selected: !option.selected,
145
+ }
146
+ : option),
147
+ })),
148
+ }));
149
+ }, children: [_jsx("img", { src: option.thumbUrl, alt: option.name }, thumbnailIndex), _jsx("div", { className: classNames("peer ring-offset-background focus-visible:ring-ring pointer-events-none absolute right-1 bottom-1 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50", option.selected
150
+ ? "text-canvas-pink border-canvas-pink bg-white"
151
+ : ""), children: option.selected && (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M20 6 9 17l-5-5" }) })) })] }, thumbnailIndex))) })] }, index))) }))] }) }) })),
152
+ },
153
+ ];
154
+ return _jsx(Splitter, { panels: panels });
155
+ };
156
+ //# sourceMappingURL=ImagesStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImagesStep.js","sourceRoot":"","sources":["../../../src/page-wizard/steps/ImagesStep.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { StepComponentProps } from "../../config/types";
2
+ export declare function LayoutStep({ wizard, step, data, setData, setStepCompleted, internalState, setInternalState, }: StepComponentProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,118 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { useEditContext } from "../../editor/client/editContext";
4
+ import { executePrompt } from "../../editor/services/aiService";
5
+ import { createWizardAiContext } from "../service";
6
+ import { Components } from "./Components";
7
+ import { Splitter } from "../../editor/ui/Splitter";
8
+ import { convertPageSchemaToWizardComponents } from "./schema";
9
+ import { ActionButton } from "../../components/ActionButton";
10
+ import { ComponentTypeSelector } from "./ComponentTypesSelector";
11
+ export function LayoutStep({ wizard, step, data, setData, setStepCompleted, internalState, setInternalState, }) {
12
+ const editContext = useEditContext();
13
+ const abortController = new AbortController();
14
+ const localAbortController = abortController || new AbortController();
15
+ const [isLoading, setIsLoading] = useState(false);
16
+ const [message, setMessage] = useState();
17
+ const [selectedComponentTypes, setSelectedComponentTypes] = useState([]);
18
+ const [customInstructions, setCustomInstructions] = useState();
19
+ if (!editContext) {
20
+ return null;
21
+ }
22
+ useEffect(() => {
23
+ if (data.pageModel?.components?.length) {
24
+ setStepCompleted(!isLoading);
25
+ }
26
+ }, [data.pageModel, isLoading]);
27
+ useEffect(() => {
28
+ setCustomInstructions(step.instructions);
29
+ }, []);
30
+ const createLayout = async () => {
31
+ try {
32
+ setIsLoading(true);
33
+ // Parse schema if it's a string
34
+ const schema = typeof wizard.schema === "string"
35
+ ? JSON.parse(wizard.schema)
36
+ : wizard.schema;
37
+ // Filter the schema based on selected component types and placeholders
38
+ const filteredSchema = convertPageSchemaToWizardComponents(schema, selectedComponentTypes);
39
+ const result = await executePrompt([
40
+ {
41
+ content: `${customInstructions?.trim()} Reply with a json object of type PageModel = { name: string; metaDescription: string; components: Component[]; message: string; };
42
+ Component = { name: string, type: string; fields: Field[]; placeholder?: string; children?: Component[]; };
43
+ Field = { name: string; value: string; type: string; };
44
+ Generate a descriptive name for each component including the topic.
45
+ Only use component types that are in the page schema. Also suggest a page name following default sitecore item naming conventions (no underscores, no white space, no umlaute, no special characters, hyphens are allowed) and the page meta description.
46
+ Component types: ${JSON.stringify(filteredSchema)} Root level component types ${filteredSchema
47
+ .filter((c) => c.allowedOnRoot)
48
+ .map((c) => c.type)
49
+ .join(", ")}
50
+ Tell the user your reasoning in the message field.
51
+ Fill image ids into picture / image fields.
52
+ Input data: ${JSON.stringify(data)}`,
53
+ name: "system",
54
+ role: "system",
55
+ },
56
+ ], editContext, createWizardAiContext, [""], true, { signal: localAbortController.signal }, "o3-mini-low", (response) => {
57
+ try {
58
+ const newLayout = JSON.parse(response.content);
59
+ if (newLayout) {
60
+ setData((prev) => ({
61
+ ...prev,
62
+ pageModel: newLayout,
63
+ }));
64
+ }
65
+ setMessage(newLayout.message);
66
+ }
67
+ catch (parseError) { }
68
+ });
69
+ const pageModel = JSON.parse(result.content);
70
+ setData({
71
+ ...data,
72
+ pageModel: JSON.parse(result.content),
73
+ customInstructions,
74
+ });
75
+ setMessage(pageModel.message);
76
+ }
77
+ catch (error) {
78
+ console.error(error);
79
+ }
80
+ finally {
81
+ setIsLoading(false);
82
+ }
83
+ };
84
+ // Toggle placeholder selection
85
+ // Regenerate layout with current selected component types and placeholders
86
+ const regenerateLayout = () => {
87
+ createLayout();
88
+ };
89
+ useEffect(() => {
90
+ if (!selectedComponentTypes.length)
91
+ return;
92
+ // Only set custom instructions if they're not already set or if step.instructions has changed
93
+ if (customInstructions !== step.instructions) {
94
+ setCustomInstructions(step.instructions);
95
+ }
96
+ }, [step.instructions, selectedComponentTypes]);
97
+ // Custom instructions panel
98
+ const customInstructionsPanel = () => {
99
+ return (_jsxs("div", { className: "mb-4", children: [_jsx("h3", { className: "text-sm font-bold", children: "Instructions" }), _jsx("div", { className: "mb-3 text-xs text-gray-500", children: "Provide guidance for the AI when generating your layout" }), _jsx("textarea", { value: customInstructions, onChange: (e) => setCustomInstructions(e.target.value), placeholder: "Example: Make it modern and minimalist. Focus on images. Include a hero section at the top.", className: "w-full px-3 py-2 border border-gray-300 rounded text-sm focus:outline-none focus:ring-1 focus:ring-blue-500 h-48", disabled: isLoading })] }));
100
+ };
101
+ const settingsPanel = {
102
+ name: "Settings",
103
+ collapsible: false,
104
+ defaultSize: 450,
105
+ content: (_jsxs("div", { className: "absolute inset-0 overflow-auto flex flex-col h-full pr-4", children: [customInstructionsPanel(), _jsx(ComponentTypeSelector, { selectedComponentTypes: selectedComponentTypes, setSelectedComponentTypes: setSelectedComponentTypes, schema: wizard.schema, data: data, setData: setData, step: step }), _jsxs("div", { className: "flex gap-2", children: [_jsx(ActionButton, { onClick: regenerateLayout, disabled: isLoading || selectedComponentTypes.length === 0, isLoading: isLoading, loadingText: "Working", className: "flex-1", children: data.pageModel ? "Regenerate Layout" : "Generate Layout" }), isLoading && (_jsxs("button", { onClick: () => {
106
+ localAbortController.abort();
107
+ setIsLoading(false);
108
+ }, className: "bg-red-500 text-white px-2 py-1 rounded text-xs hover:bg-red-600 flex items-center gap-1", children: [_jsx("span", { className: "pi pi-times" }), "Abort"] }))] }), _jsx("div", { className: "text-xs text-gray-500 p-2", children: message })] })),
109
+ };
110
+ const layoutPanel = {
111
+ name: "Layout",
112
+ defaultSize: "auto",
113
+ collapsible: false,
114
+ content: (_jsx("div", { className: "absolute inset-2 flex flex-col justify-center items-center text-gray-600", children: _jsx(Components, { pageModel: data.pageModel, onComponentRemoved: () => setData({ ...data }), onFieldEdited: () => setData({ ...data }), thumbnails: internalState.thumbnails, setInternalState: setInternalState }) })),
115
+ };
116
+ return (_jsx(Splitter, { panels: [settingsPanel, layoutPanel], localStorageKey: "editor.page-wizard.layout" }));
117
+ }
118
+ //# sourceMappingURL=LayoutStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutStep.js","sourceRoot":"","sources":["../../../src/page-wizard/steps/LayoutStep.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { StepComponentProps } from "../../config/types";
2
+ export declare function SelectStep({ step, data, setData, setStepCompleted, internalState, setInternalState, }: StepComponentProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,145 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from "react";
3
+ import { useEditContext } from "../../editor/client/editContext";
4
+ import { executePrompt } from "../../editor/services/aiService";
5
+ import { createWizardAiContext } from "../service";
6
+ import { classNames } from "primereact/utils";
7
+ import { Splitter } from "../../editor/ui/Splitter";
8
+ import { InputTextarea } from "primereact/inputtextarea";
9
+ import { ActionButton } from "../../components/ActionButton";
10
+ import Generate from "./Generate";
11
+ export function SelectStep({ step, data, setData, setStepCompleted, internalState, setInternalState, }) {
12
+ const editContext = useEditContext();
13
+ const [options, setOptions] = useState([]);
14
+ const [loading, setLoading] = useState(false);
15
+ const [error, setError] = useState(null);
16
+ const [selectedOptions, setSelectedOptions] = useState([]);
17
+ const [instructions, setInstructions] = useState(step.instructions);
18
+ // Get the property name from the step or use "choice" as default
19
+ const propertyName = step.propertyName || "selectedOptions";
20
+ useEffect(() => {
21
+ if (data[propertyName]?.length) {
22
+ setStepCompleted(true);
23
+ }
24
+ }, [data]);
25
+ // Initialize the property in data
26
+ useEffect(() => {
27
+ if (!data[propertyName]) {
28
+ setData((prevData) => ({
29
+ ...prevData,
30
+ [propertyName]: [],
31
+ }));
32
+ }
33
+ }, [propertyName, setData]);
34
+ const generateOptions = async () => {
35
+ if (!editContext)
36
+ return;
37
+ setLoading(true);
38
+ setError(null);
39
+ try {
40
+ // Create a prompt based on step instructions and data
41
+ const prompt = `${instructions}\n\nCurrent data: ${JSON.stringify(data, null, 2)}`;
42
+ // Call the executePrompt function with the prompt
43
+ const result = await executePrompt([
44
+ {
45
+ content: `You are a helpful assistant that generates options for a wizard select step.
46
+ Generate a JSON array of options based on the instructions and current data.
47
+ ONLY respond with a valid JSON array without any explanation or additional text.
48
+ JSON format: {options: {title: string, description: string}[] }`,
49
+ name: "system",
50
+ role: "system",
51
+ },
52
+ {
53
+ content: prompt,
54
+ name: "user",
55
+ role: "user",
56
+ },
57
+ ], editContext, createWizardAiContext, [""], true, undefined, step.aiModel || "o3-mini-low");
58
+ // Parse the result and set options
59
+ if (result && result.content) {
60
+ try {
61
+ const generatedOptions = JSON.parse(result.content);
62
+ for (let i = 0; i < generatedOptions.options.length; i++) {
63
+ generatedOptions.options[i].id = i.toString();
64
+ }
65
+ setOptions(generatedOptions.options);
66
+ setInternalState((state) => ({
67
+ ...state,
68
+ [step.id + "options"]: generatedOptions.options,
69
+ }));
70
+ }
71
+ catch (parseError) {
72
+ console.error("Error parsing options:", parseError);
73
+ setError("Failed to parse options. The response was not in the expected format.");
74
+ }
75
+ }
76
+ else {
77
+ setError("No options were generated. Please try again.");
78
+ }
79
+ }
80
+ catch (err) {
81
+ setError("Failed to generate options. Please try again.");
82
+ console.error("Error generating options:", err);
83
+ }
84
+ finally {
85
+ setLoading(false);
86
+ }
87
+ };
88
+ // Generate options on component mount
89
+ useEffect(() => {
90
+ if (internalState[step.id + "options"]?.length > 0) {
91
+ setOptions(internalState[step.id + "options"]);
92
+ return;
93
+ }
94
+ generateOptions();
95
+ }, [editContext, step.instructions, internalState]);
96
+ // Sync data[propertyName] with selectedOptions state
97
+ useEffect(() => {
98
+ const currentSelections = data[propertyName] || [];
99
+ setSelectedOptions(currentSelections.map((option) => option.id));
100
+ }, [data, propertyName]);
101
+ // Handle option selection
102
+ const handleOptionSelect = (option) => {
103
+ setData((prevData) => {
104
+ const currentData = [
105
+ ...(prevData[propertyName] || []),
106
+ ];
107
+ const isSelected = currentData.some((o) => o.id === option.id);
108
+ let updatedData;
109
+ if (isSelected) {
110
+ // Remove option if already selected
111
+ updatedData = currentData.filter((o) => o.id !== option.id);
112
+ }
113
+ else {
114
+ // Add option if not selected
115
+ updatedData = [...currentData, option];
116
+ }
117
+ return {
118
+ ...prevData,
119
+ [propertyName]: updatedData,
120
+ };
121
+ });
122
+ };
123
+ if (error) {
124
+ return (_jsxs("div", { className: "text-red-500 p-4", children: [error, _jsx("button", { className: "ml-4 px-2 py-1 bg-blue-500 text-white rounded", onClick: () => window.location.reload(), children: "Retry" })] }));
125
+ }
126
+ const optionsPanel = {
127
+ name: "options",
128
+ defaultSize: "auto",
129
+ content: (_jsxs("div", { className: "p-4 h-full", children: [loading && (_jsx("div", { className: "flex items-center justify-center h-full", children: _jsx(Generate, { title: "Generating options..." }) })), !loading && (_jsx("div", { children: options.length === 0 ? (_jsx("div", { className: "text-gray-500 p-4", children: "No options available. Try refreshing the page." })) : (options.map((option, index) => {
130
+ const isSelected = selectedOptions.includes(option.id);
131
+ return (_jsxs("div", { className: classNames("mb-3 flex items-center p-3 rounded bg-white border-2", index % 2 === 0
132
+ ? "animate-fadeRight"
133
+ : "animate-fadeLeft", isSelected
134
+ ? "text-canvas-pink border-canvas-pink"
135
+ : "text-gray-600 border-gray-300"), onClick: () => handleOptionSelect(option), children: [_jsxs("div", { className: "flex flex-col flex-1 cursor-pointer", children: [_jsx("div", { className: "font-medium", children: option.title }), _jsx("div", { className: "text-xs text-gray-600", children: option.description })] }), isSelected && (_jsx("div", { className: "text-canvas-pink ml-2", children: "\u2713" }))] }, option.id));
136
+ })) }))] })),
137
+ };
138
+ const settingsPanel = {
139
+ name: "settings",
140
+ defaultSize: 400,
141
+ content: (_jsxs("div", { className: "flex flex-col gap-2 pr-6", children: [_jsx("h3", { className: "text-sm font-bold", children: "Instructions" }), _jsx(InputTextarea, { className: "h-48 text-sm", value: instructions, onChange: (e) => setInstructions(e.target.value), placeholder: "Enter instructions for the options" }), _jsx(ActionButton, { onClick: generateOptions, isLoading: loading, disabled: loading, loadingText: "Thinking...", children: "Regenerate Options" })] })),
142
+ };
143
+ return _jsx(Splitter, { panels: [settingsPanel, optionsPanel] });
144
+ }
145
+ //# sourceMappingURL=SelectStep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectStep.js","sourceRoot":"","sources":["../../../src/page-wizard/steps/SelectStep.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { WizardSchemaComponent, PageSchema } from "../PageWizard";
2
+ export declare function convertPageSchemaToWizardComponents(pageSchema: PageSchema, whitelist: string[]): WizardSchemaComponent[];
3
+ /**
4
+ * Finds a placeholder (by its name) where a child component of type `childComponentType`
5
+ * can be placed inside a parent of type `parentComponentType`. For a parentComponentType
6
+ * equal to "root" (case‑insensitive), the function searches among top‑level placeholders.
7
+ *
8
+ * @param schema - The PageSchema (an array of SchemaPlaceholders).
9
+ * @param parentComponentType - The type of the parent component, or "root" to indicate top‑level.
10
+ * @param childComponentType - The type of the child component to place.
11
+ * @returns The name of a valid placeholder or undefined if none is found.
12
+ */
13
+ export declare function getPlaceholder(schema: PageSchema, parentComponentType: string, childComponentType: string): string | undefined;
@@ -0,0 +1,137 @@
1
+ export function convertPageSchemaToWizardComponents(pageSchema, whitelist) {
2
+ const componentMap = new Map();
3
+ /**
4
+ * Recursively processes a SchemaComponent.
5
+ *
6
+ * @param component - The current SchemaComponent to process.
7
+ * @param parentPlaceholder - The name of the placeholder where the component appears.
8
+ * @param isRoot - True if the component is at the root level.
9
+ * @param parentAccumulator - The accumulator of the parent component (if the parent is allowed).
10
+ */
11
+ function processComponent(component, parentPlaceholder, isRoot, parentAccumulator) {
12
+ const isAllowed = whitelist.includes(component.type);
13
+ let currentAccumulator = undefined;
14
+ if (isAllowed) {
15
+ // If a parent accumulator exists (and is allowed), record the child's type as a valid child type.
16
+ if (parentAccumulator) {
17
+ parentAccumulator.validChildComponentTypes.add(component.type);
18
+ }
19
+ if (componentMap.has(component.typeId)) {
20
+ currentAccumulator = componentMap.get(component.typeId);
21
+ currentAccumulator.validParentPlaceholders.add(parentPlaceholder);
22
+ // Mark as allowed on root if encountered at the root level in any instance.
23
+ if (isRoot) {
24
+ currentAccumulator.allowedOnRoot = true;
25
+ }
26
+ }
27
+ else {
28
+ currentAccumulator = {
29
+ name: component.typeId, // using typeId as the wizard component name
30
+ type: component.type,
31
+ fields: component.fields.map((field) => ({
32
+ name: field.name,
33
+ type: field.type,
34
+ })),
35
+ validParentPlaceholders: new Set([parentPlaceholder]),
36
+ validChildComponentTypes: new Set(),
37
+ allowedOnRoot: isRoot,
38
+ };
39
+ componentMap.set(component.typeId, currentAccumulator);
40
+ }
41
+ }
42
+ // Process child components regardless of whether the current component is allowed.
43
+ for (const placeholder of component.placeholders) {
44
+ for (const child of placeholder.components) {
45
+ processComponent(child, placeholder.name, false, currentAccumulator);
46
+ }
47
+ }
48
+ }
49
+ // Process each top-level component in the PageSchema.
50
+ for (const placeholder of pageSchema) {
51
+ for (const component of placeholder.components) {
52
+ processComponent(component, placeholder.name, true);
53
+ }
54
+ }
55
+ // Convert accumulators to final WizardSchemaComponent objects.
56
+ const wizardComponents = [];
57
+ for (const acc of componentMap.values()) {
58
+ const wizardComponent = {
59
+ type: acc.type,
60
+ fields: acc.fields,
61
+ allowedChildrenComponentTypes: Array.from(acc.validChildComponentTypes),
62
+ allowedOnRoot: acc.allowedOnRoot,
63
+ };
64
+ // Only include validParentPlaceholders if there is more than one.
65
+ if (acc.validParentPlaceholders.size > 1) {
66
+ wizardComponent.availableParentPlaceholders = Array.from(acc.validParentPlaceholders);
67
+ }
68
+ wizardComponents.push(wizardComponent);
69
+ }
70
+ return wizardComponents;
71
+ }
72
+ /**
73
+ * Finds a placeholder (by its name) where a child component of type `childComponentType`
74
+ * can be placed inside a parent of type `parentComponentType`. For a parentComponentType
75
+ * equal to "root" (case‑insensitive), the function searches among top‑level placeholders.
76
+ *
77
+ * @param schema - The PageSchema (an array of SchemaPlaceholders).
78
+ * @param parentComponentType - The type of the parent component, or "root" to indicate top‑level.
79
+ * @param childComponentType - The type of the child component to place.
80
+ * @returns The name of a valid placeholder or undefined if none is found.
81
+ */
82
+ export function getPlaceholder(schema, parentComponentType, childComponentType) {
83
+ // Check for the special case where we want to place at the root level.
84
+ if (parentComponentType.toLowerCase() === "root") {
85
+ // First, look for a top-level placeholder that already contains a component
86
+ // of the given childComponentType.
87
+ for (const topPlaceholder of schema) {
88
+ if (topPlaceholder.components.some((c) => c.type === childComponentType)) {
89
+ return topPlaceholder.name;
90
+ }
91
+ }
92
+ // If not found, return the first top-level placeholder that is empty.
93
+ for (const topPlaceholder of schema) {
94
+ if (topPlaceholder.components.length === 0) {
95
+ return topPlaceholder.name;
96
+ }
97
+ }
98
+ return undefined;
99
+ }
100
+ // Recursive helper to search through nested SchemaComponents.
101
+ function searchComponents(components) {
102
+ for (const component of components) {
103
+ // If this component matches the desired parent type, check its placeholders.
104
+ if (component.type === parentComponentType) {
105
+ // First, try to find a placeholder that already has a child of the desired type.
106
+ for (const placeholder of component.placeholders) {
107
+ if (placeholder.components.some((child) => child.type === childComponentType)) {
108
+ return placeholder.name;
109
+ }
110
+ }
111
+ // Otherwise, pick an empty placeholder.
112
+ for (const placeholder of component.placeholders) {
113
+ if (placeholder.components.length === 0) {
114
+ return placeholder.name;
115
+ }
116
+ }
117
+ }
118
+ // Recurse into any placeholders in the current component.
119
+ for (const placeholder of component.placeholders) {
120
+ const result = searchComponents(placeholder.components);
121
+ if (result) {
122
+ return result;
123
+ }
124
+ }
125
+ }
126
+ return undefined;
127
+ }
128
+ // Search through all top-level placeholders' components.
129
+ for (const topPlaceholder of schema) {
130
+ const result = searchComponents(topPlaceholder.components);
131
+ if (result) {
132
+ return result;
133
+ }
134
+ }
135
+ return undefined;
136
+ }
137
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/page-wizard/steps/schema.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,mCAAmC,CACjD,UAAsB,EACtB,SAAmB;IAEnB,MAAM,YAAY,GAAG,IAAI,GAAG,EAA4C,CAAC;IAEzE;;;;;;;OAOG;IACH,SAAS,gBAAgB,CACvB,SAA0B,EAC1B,iBAAyB,EACzB,MAAe,EACf,iBAAoD;QAEpD,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,kBAAkB,GACpB,SAAS,CAAC;QAEZ,IAAI,SAAS,EAAE,CAAC;YACd,kGAAkG;YAClG,IAAI,iBAAiB,EAAE,CAAC;gBACtB,iBAAiB,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjE,CAAC;YAED,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAE,CAAC;gBACzD,kBAAkB,CAAC,uBAAuB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBAClE,4EAA4E;gBAC5E,IAAI,MAAM,EAAE,CAAC;oBACX,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,kBAAkB,GAAG;oBACnB,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,4CAA4C;oBACpE,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBACvC,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;qBACjB,CAAC,CAAC;oBACH,uBAAuB,EAAE,IAAI,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;oBACrD,wBAAwB,EAAE,IAAI,GAAG,EAAU;oBAC3C,aAAa,EAAE,MAAM;iBACtB,CAAC;gBACF,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QACD,mFAAmF;QACnF,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YACjD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;gBAC3C,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,KAAK,MAAM,WAAW,IAAI,UAAU,EAAE,CAAC;QACrC,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;YAC/C,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,MAAM,gBAAgB,GAA4B,EAAE,CAAC;IACrD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,MAAM,eAAe,GAA0B;YAC7C,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,6BAA6B,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC;YACvE,aAAa,EAAE,GAAG,CAAC,aAAa;SACjC,CAAC;QACF,kEAAkE;QAClE,IAAI,GAAG,CAAC,uBAAuB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACzC,eAAe,CAAC,2BAA2B,GAAG,KAAK,CAAC,IAAI,CACtD,GAAG,CAAC,uBAAuB,CAC5B,CAAC;QACJ,CAAC;QACD,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAkB,EAClB,mBAA2B,EAC3B,kBAA0B;IAE1B,uEAAuE;IACvE,IAAI,mBAAmB,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QACjD,4EAA4E;QAC5E,mCAAmC;QACnC,KAAK,MAAM,cAAc,IAAI,MAAM,EAAE,CAAC;YACpC,IACE,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,EACpE,CAAC;gBACD,OAAO,cAAc,CAAC,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,sEAAsE;QACtE,KAAK,MAAM,cAAc,IAAI,MAAM,EAAE,CAAC;YACpC,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3C,OAAO,cAAc,CAAC,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8DAA8D;IAC9D,SAAS,gBAAgB,CAAC,UAA6B;QACrD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,6EAA6E;YAC7E,IAAI,SAAS,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAC3C,iFAAiF;gBACjF,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;oBACjD,IACE,WAAW,CAAC,UAAU,CAAC,IAAI,CACzB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAC7C,EACD,CAAC;wBACD,OAAO,WAAW,CAAC,IAAI,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBACD,wCAAwC;gBACxC,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;oBACjD,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACxC,OAAO,WAAW,CAAC,IAAI,CAAC;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,0DAA0D;YAC1D,KAAK,MAAM,WAAW,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;gBACjD,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBACxD,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,yDAAyD;IACzD,KAAK,MAAM,cAAc,IAAI,MAAM,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}