@alpaca-editor/core 1.0.3938 → 1.0.3941

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 (357) hide show
  1. package/dist/components/ActionButton.d.ts +1 -0
  2. package/dist/components/ActionButton.js +2 -2
  3. package/dist/components/ActionButton.js.map +1 -1
  4. package/dist/editor/ContentTree.js +12 -8
  5. package/dist/editor/ContentTree.js.map +1 -1
  6. package/dist/editor/ContextMenu.d.ts +1 -1
  7. package/dist/editor/ContextMenu.js +17 -3
  8. package/dist/editor/ContextMenu.js.map +1 -1
  9. package/dist/editor/FieldActionsOverlay.d.ts +18 -0
  10. package/dist/editor/FieldActionsOverlay.js +139 -0
  11. package/dist/editor/FieldActionsOverlay.js.map +1 -0
  12. package/dist/editor/FieldHistory.d.ts +2 -1
  13. package/dist/editor/FieldHistory.js +11 -8
  14. package/dist/editor/FieldHistory.js.map +1 -1
  15. package/dist/editor/FieldListField.js +14 -17
  16. package/dist/editor/FieldListField.js.map +1 -1
  17. package/dist/editor/PictureCropper.js +65 -23
  18. package/dist/editor/PictureCropper.js.map +1 -1
  19. package/dist/editor/PictureEditor.js +43 -3
  20. package/dist/editor/PictureEditor.js.map +1 -1
  21. package/dist/editor/Titlebar.js +19 -10
  22. package/dist/editor/Titlebar.js.map +1 -1
  23. package/dist/editor/ai/AiTerminal.js +27 -41
  24. package/dist/editor/ai/AiTerminal.js.map +1 -1
  25. package/dist/editor/ai/GhostWriter.js +21 -2
  26. package/dist/editor/ai/GhostWriter.js.map +1 -1
  27. package/dist/editor/client/EditorClient.js +48 -18
  28. package/dist/editor/client/EditorClient.js.map +1 -1
  29. package/dist/editor/client/editContext.d.ts +1 -1
  30. package/dist/editor/client/editContext.js.map +1 -1
  31. package/dist/editor/client/itemsRepository.js +126 -90
  32. package/dist/editor/client/itemsRepository.js.map +1 -1
  33. package/dist/editor/commands/componentCommands.js +7 -3
  34. package/dist/editor/commands/componentCommands.js.map +1 -1
  35. package/dist/editor/media-selector/MediaFolderBrowser.d.ts +5 -0
  36. package/dist/editor/media-selector/MediaFolderBrowser.js +77 -0
  37. package/dist/editor/media-selector/MediaFolderBrowser.js.map +1 -0
  38. package/dist/editor/media-selector/MediaSelector.js +1 -1
  39. package/dist/editor/media-selector/MediaSelector.js.map +1 -1
  40. package/dist/editor/media-selector/Thumbnails.js +2 -2
  41. package/dist/editor/media-selector/index.d.ts +8 -0
  42. package/dist/editor/media-selector/index.js +9 -0
  43. package/dist/editor/media-selector/index.js.map +1 -0
  44. package/dist/editor/menubar/BrowseHistory.js +3 -4
  45. package/dist/editor/menubar/BrowseHistory.js.map +1 -1
  46. package/dist/editor/menubar/PageSelector.js +62 -10
  47. package/dist/editor/menubar/PageSelector.js.map +1 -1
  48. package/dist/editor/page-editor-chrome/FieldActionIndicator.js +1 -1
  49. package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
  50. package/dist/editor/page-editor-chrome/useInlineAICompletion.js +37 -11
  51. package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -1
  52. package/dist/editor/page-viewer/PageViewerFrame.js +98 -2
  53. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  54. package/dist/editor/pageModel.d.ts +14 -0
  55. package/dist/editor/reviews/Comment.js +3 -2
  56. package/dist/editor/reviews/Comment.js.map +1 -1
  57. package/dist/editor/services/aiService.js +0 -1
  58. package/dist/editor/services/aiService.js.map +1 -1
  59. package/dist/editor/services/editService.d.ts +1 -1
  60. package/dist/editor/services/editService.js +2 -1
  61. package/dist/editor/services/editService.js.map +1 -1
  62. package/dist/editor/sidebar/ComponentTree.js +3 -4
  63. package/dist/editor/sidebar/ComponentTree.js.map +1 -1
  64. package/dist/editor/ui/Icons.js +1 -1
  65. package/dist/editor/ui/Icons.js.map +1 -1
  66. package/dist/editor/ui/ItemList.d.ts +16 -0
  67. package/dist/editor/ui/ItemList.js +19 -0
  68. package/dist/editor/ui/ItemList.js.map +1 -0
  69. package/dist/editor/ui/ItemSearch.js +2 -12
  70. package/dist/editor/ui/ItemSearch.js.map +1 -1
  71. package/dist/editor/ui/SimpleTabs.d.ts +1 -0
  72. package/dist/editor/ui/SimpleTabs.js +3 -3
  73. package/dist/editor/ui/SimpleTabs.js.map +1 -1
  74. package/dist/editor/ui/Splitter.js +61 -6
  75. package/dist/editor/ui/Splitter.js.map +1 -1
  76. package/dist/editor/views/MediaFolderEditView.d.ts +4 -0
  77. package/dist/editor/views/MediaFolderEditView.js +40 -0
  78. package/dist/editor/views/MediaFolderEditView.js.map +1 -0
  79. package/dist/editor/views/SingleEditView.js +9 -1
  80. package/dist/editor/views/SingleEditView.js.map +1 -1
  81. package/dist/revision.d.ts +2 -2
  82. package/dist/revision.js +2 -2
  83. package/dist/styles.css +64 -13
  84. package/package.json +8 -2
  85. package/.prettierrc +0 -3
  86. package/build.css +0 -3
  87. package/components.json +0 -21
  88. package/eslint.config.mjs +0 -4
  89. package/images/bg-shape-black.webp +0 -0
  90. package/images/wizard-bg.png +0 -0
  91. package/images/wizard-tour.png +0 -0
  92. package/images/wizard.png +0 -0
  93. package/src/client-components/api.ts +0 -6
  94. package/src/client-components/index.ts +0 -19
  95. package/src/components/ActionButton.tsx +0 -41
  96. package/src/components/Error.tsx +0 -57
  97. package/src/components/ui/CardConnector.tsx +0 -56
  98. package/src/components/ui/button.tsx +0 -62
  99. package/src/components/ui/card.tsx +0 -372
  100. package/src/components/ui/context-menu.tsx +0 -250
  101. package/src/config/config.tsx +0 -917
  102. package/src/config/types.ts +0 -286
  103. package/src/editor/ComponentInfo.tsx +0 -90
  104. package/src/editor/ConfirmationDialog.tsx +0 -103
  105. package/src/editor/ContentTree.tsx +0 -727
  106. package/src/editor/ContextMenu.tsx +0 -212
  107. package/src/editor/Editor.tsx +0 -90
  108. package/src/editor/EditorWarning.tsx +0 -34
  109. package/src/editor/EditorWarnings.tsx +0 -33
  110. package/src/editor/FieldEditorPopup.tsx +0 -65
  111. package/src/editor/FieldHistory.tsx +0 -74
  112. package/src/editor/FieldList.tsx +0 -190
  113. package/src/editor/FieldListField.tsx +0 -391
  114. package/src/editor/FieldListFieldWithFallbacks.tsx +0 -217
  115. package/src/editor/FloatingToolbar.tsx +0 -163
  116. package/src/editor/ImageEditor.tsx +0 -128
  117. package/src/editor/ItemInfo.tsx +0 -90
  118. package/src/editor/LinkEditorDialog.tsx +0 -196
  119. package/src/editor/MainLayout.tsx +0 -95
  120. package/src/editor/MobileLayout.tsx +0 -68
  121. package/src/editor/NewEditorClient.tsx +0 -11
  122. package/src/editor/PictureCropper.tsx +0 -503
  123. package/src/editor/PictureEditor.tsx +0 -212
  124. package/src/editor/PictureEditorDialog.tsx +0 -381
  125. package/src/editor/PublishDialog.ignore +0 -74
  126. package/src/editor/ScrollingContentTree.tsx +0 -67
  127. package/src/editor/Terminal.tsx +0 -227
  128. package/src/editor/Titlebar.tsx +0 -93
  129. package/src/editor/ai/AiPopup.tsx +0 -59
  130. package/src/editor/ai/AiResponseMessage.tsx +0 -106
  131. package/src/editor/ai/AiTerminal.tsx +0 -514
  132. package/src/editor/ai/AiToolCall.tsx +0 -61
  133. package/src/editor/ai/EditorAiTerminal.tsx +0 -20
  134. package/src/editor/ai/GhostWriter.tsx +0 -432
  135. package/src/editor/ai/aiPageModel.ts +0 -108
  136. package/src/editor/ai/editorAiContext.ts +0 -18
  137. package/src/editor/client/AboutDialog.tsx +0 -44
  138. package/src/editor/client/EditorClient.tsx +0 -2197
  139. package/src/editor/client/GenericDialog.tsx +0 -50
  140. package/src/editor/client/editContext.ts +0 -412
  141. package/src/editor/client/helpers.ts +0 -44
  142. package/src/editor/client/itemsRepository.ts +0 -538
  143. package/src/editor/client/operations.ts +0 -768
  144. package/src/editor/client/pageModelBuilder.ts +0 -219
  145. package/src/editor/commands/commands.ts +0 -22
  146. package/src/editor/commands/componentCommands.tsx +0 -424
  147. package/src/editor/commands/createVersionCommand.ts +0 -33
  148. package/src/editor/commands/deleteVersionCommand.ts +0 -71
  149. package/src/editor/commands/itemCommands.tsx +0 -351
  150. package/src/editor/commands/localizeItem/LocalizeItemDialog.tsx +0 -201
  151. package/src/editor/commands/localizeItem/LocalizeItemUtils.ts +0 -27
  152. package/src/editor/commands/undo.ts +0 -39
  153. package/src/editor/component-designer/ComponentDesigner.tsx +0 -70
  154. package/src/editor/component-designer/ComponentDesignerAiTerminal.tsx +0 -11
  155. package/src/editor/component-designer/ComponentDesignerMenu.tsx +0 -91
  156. package/src/editor/component-designer/ComponentEditor.tsx +0 -97
  157. package/src/editor/component-designer/ComponentRenderingCodeEditor.tsx +0 -31
  158. package/src/editor/component-designer/ComponentRenderingEditor.tsx +0 -104
  159. package/src/editor/component-designer/ComponentsDropdown.tsx +0 -39
  160. package/src/editor/component-designer/PlaceholdersEditor.tsx +0 -179
  161. package/src/editor/component-designer/RenderingsDropdown.tsx +0 -36
  162. package/src/editor/component-designer/TemplateEditor.tsx +0 -236
  163. package/src/editor/component-designer/aiContext.ts +0 -23
  164. package/src/editor/componentTreeHelper.tsx +0 -116
  165. package/src/editor/context-menu/CopyMoveMenu.tsx +0 -103
  166. package/src/editor/context-menu/InsertMenu.tsx +0 -347
  167. package/src/editor/control-center/About.tsx +0 -342
  168. package/src/editor/control-center/ControlCenterMenu.tsx +0 -76
  169. package/src/editor/control-center/IndexOverview.tsx +0 -50
  170. package/src/editor/control-center/IndexSettings.tsx +0 -266
  171. package/src/editor/control-center/Info.tsx +0 -104
  172. package/src/editor/control-center/QuotaInfo.tsx +0 -301
  173. package/src/editor/control-center/Status.tsx +0 -113
  174. package/src/editor/control-center/WebSocketMessages.tsx +0 -155
  175. package/src/editor/editor-warnings/ItemLocked.tsx +0 -63
  176. package/src/editor/editor-warnings/NoLanguageWriteAccess.tsx +0 -22
  177. package/src/editor/editor-warnings/NoWorkflowWriteAccess.tsx +0 -23
  178. package/src/editor/editor-warnings/NoWriteAccess.tsx +0 -16
  179. package/src/editor/editor-warnings/ValidationErrors.tsx +0 -54
  180. package/src/editor/field-types/AttachmentEditor.tsx +0 -9
  181. package/src/editor/field-types/CheckboxEditor.tsx +0 -47
  182. package/src/editor/field-types/DropLinkEditor.tsx +0 -80
  183. package/src/editor/field-types/DropListEditor.tsx +0 -84
  184. package/src/editor/field-types/ImageFieldEditor.tsx +0 -65
  185. package/src/editor/field-types/InternalLinkFieldEditor.tsx +0 -117
  186. package/src/editor/field-types/LinkFieldEditor.tsx +0 -85
  187. package/src/editor/field-types/MultiLineText.tsx +0 -82
  188. package/src/editor/field-types/PictureFieldEditor.tsx +0 -121
  189. package/src/editor/field-types/RawEditor.tsx +0 -53
  190. package/src/editor/field-types/ReactQuill.tsx +0 -580
  191. package/src/editor/field-types/RichTextEditor.tsx +0 -22
  192. package/src/editor/field-types/RichTextEditorComponent.tsx +0 -127
  193. package/src/editor/field-types/SingleLineText.tsx +0 -174
  194. package/src/editor/field-types/TreeListEditor.tsx +0 -261
  195. package/src/editor/fieldTypes.ts +0 -140
  196. package/src/editor/media-selector/AiImageSearch.tsx +0 -185
  197. package/src/editor/media-selector/AiImageSearchPrompt.tsx +0 -94
  198. package/src/editor/media-selector/MediaSelector.tsx +0 -42
  199. package/src/editor/media-selector/Preview.tsx +0 -14
  200. package/src/editor/media-selector/Thumbnails.tsx +0 -48
  201. package/src/editor/media-selector/TreeSelector.tsx +0 -292
  202. package/src/editor/media-selector/UploadZone.tsx +0 -137
  203. package/src/editor/menubar/ActionsMenu.tsx +0 -94
  204. package/src/editor/menubar/ActiveUsers.tsx +0 -17
  205. package/src/editor/menubar/ApproveAndPublish.tsx +0 -18
  206. package/src/editor/menubar/BrowseHistory.tsx +0 -37
  207. package/src/editor/menubar/ItemLanguageVersion.tsx +0 -76
  208. package/src/editor/menubar/LanguageSelector.tsx +0 -226
  209. package/src/editor/menubar/Menu.tsx +0 -83
  210. package/src/editor/menubar/NavButtons.tsx +0 -74
  211. package/src/editor/menubar/PageSelector.tsx +0 -141
  212. package/src/editor/menubar/PageViewerControls.tsx +0 -120
  213. package/src/editor/menubar/PreviewSecondaryControls.tsx +0 -18
  214. package/src/editor/menubar/SecondaryControls.tsx +0 -45
  215. package/src/editor/menubar/Separator.tsx +0 -12
  216. package/src/editor/menubar/SiteInfo.tsx +0 -53
  217. package/src/editor/menubar/User.tsx +0 -27
  218. package/src/editor/menubar/VersionSelector.tsx +0 -142
  219. package/src/editor/page-editor-chrome/CommentHighlighting.tsx +0 -307
  220. package/src/editor/page-editor-chrome/CommentHighlightings.tsx +0 -35
  221. package/src/editor/page-editor-chrome/FieldActionIndicator.tsx +0 -59
  222. package/src/editor/page-editor-chrome/FieldActionIndicators.tsx +0 -23
  223. package/src/editor/page-editor-chrome/FieldEditedIndicator.tsx +0 -64
  224. package/src/editor/page-editor-chrome/FieldEditedIndicators.tsx +0 -35
  225. package/src/editor/page-editor-chrome/FrameMenu.tsx +0 -338
  226. package/src/editor/page-editor-chrome/FrameMenus.tsx +0 -48
  227. package/src/editor/page-editor-chrome/InlineEditor.tsx +0 -765
  228. package/src/editor/page-editor-chrome/LockedFieldIndicator.tsx +0 -61
  229. package/src/editor/page-editor-chrome/NoLayout.tsx +0 -36
  230. package/src/editor/page-editor-chrome/PageEditorChrome.tsx +0 -122
  231. package/src/editor/page-editor-chrome/PictureEditorOverlay.tsx +0 -161
  232. package/src/editor/page-editor-chrome/PlaceholderDropZone.tsx +0 -169
  233. package/src/editor/page-editor-chrome/PlaceholderDropZones.tsx +0 -315
  234. package/src/editor/page-editor-chrome/SuggestionHighlighting.tsx +0 -300
  235. package/src/editor/page-editor-chrome/SuggestionHighlightings.tsx +0 -40
  236. package/src/editor/page-editor-chrome/useInlineAICompletion.tsx +0 -791
  237. package/src/editor/page-viewer/DeviceToolbar.tsx +0 -70
  238. package/src/editor/page-viewer/EditorForm.tsx +0 -258
  239. package/src/editor/page-viewer/MiniMap.tsx +0 -362
  240. package/src/editor/page-viewer/PageViewer.tsx +0 -169
  241. package/src/editor/page-viewer/PageViewerFrame.tsx +0 -879
  242. package/src/editor/page-viewer/pageModelSkeletonBuilder.ts +0 -412
  243. package/src/editor/page-viewer/pageViewContext.ts +0 -186
  244. package/src/editor/pageModel.ts +0 -208
  245. package/src/editor/picture-shared.tsx +0 -53
  246. package/src/editor/reviews/Comment.tsx +0 -308
  247. package/src/editor/reviews/Comments.tsx +0 -125
  248. package/src/editor/reviews/DiffView.tsx +0 -109
  249. package/src/editor/reviews/PreviewInfo.tsx +0 -35
  250. package/src/editor/reviews/Reviews.tsx +0 -280
  251. package/src/editor/reviews/SuggestedEdit.tsx +0 -316
  252. package/src/editor/reviews/reviewCommands.tsx +0 -47
  253. package/src/editor/reviews/useReviews.tsx +0 -70
  254. package/src/editor/services/aiService.ts +0 -174
  255. package/src/editor/services/componentDesignerService.ts +0 -151
  256. package/src/editor/services/contentService.ts +0 -180
  257. package/src/editor/services/editService.ts +0 -486
  258. package/src/editor/services/indexService.ts +0 -24
  259. package/src/editor/services/reviewsService.ts +0 -53
  260. package/src/editor/services/serviceHelper.ts +0 -95
  261. package/src/editor/services/suggestedEditsService.ts +0 -39
  262. package/src/editor/services/systemService.ts +0 -5
  263. package/src/editor/services/translationService.ts +0 -21
  264. package/src/editor/services-server/api.ts +0 -150
  265. package/src/editor/services-server/graphQL.ts +0 -106
  266. package/src/editor/sidebar/ComponentPalette.tsx +0 -161
  267. package/src/editor/sidebar/ComponentTree.tsx +0 -548
  268. package/src/editor/sidebar/ComponentTree2.tsxx +0 -490
  269. package/src/editor/sidebar/Debug.tsx +0 -111
  270. package/src/editor/sidebar/DictionaryEditor.tsx +0 -261
  271. package/src/editor/sidebar/EditHistory.tsx +0 -134
  272. package/src/editor/sidebar/GraphQL.tsx +0 -164
  273. package/src/editor/sidebar/Insert.tsx +0 -35
  274. package/src/editor/sidebar/MainContentTree.tsx +0 -102
  275. package/src/editor/sidebar/Performance.tsx +0 -53
  276. package/src/editor/sidebar/Sessions.tsx +0 -35
  277. package/src/editor/sidebar/Sidebar.tsx +0 -20
  278. package/src/editor/sidebar/SidebarView.tsx +0 -152
  279. package/src/editor/sidebar/Translations.tsx +0 -295
  280. package/src/editor/sidebar/Validation.tsx +0 -102
  281. package/src/editor/sidebar/ViewSelector.tsx +0 -60
  282. package/src/editor/sidebar/Workbox.tsx +0 -209
  283. package/src/editor/ui/CenteredMessage.tsx +0 -7
  284. package/src/editor/ui/CopyMoveTargetSelectorDialog.tsx +0 -81
  285. package/src/editor/ui/CopyToClipboardButton.tsx +0 -24
  286. package/src/editor/ui/DialogButtons.tsx +0 -11
  287. package/src/editor/ui/Icons.tsx +0 -708
  288. package/src/editor/ui/ItemNameDialogNew.tsx +0 -118
  289. package/src/editor/ui/ItemSearch.tsx +0 -190
  290. package/src/editor/ui/PerfectTree.tsx +0 -571
  291. package/src/editor/ui/Section.tsx +0 -35
  292. package/src/editor/ui/SimpleIconButton.tsx +0 -54
  293. package/src/editor/ui/SimpleMenu.tsx +0 -40
  294. package/src/editor/ui/SimpleTable.tsx +0 -60
  295. package/src/editor/ui/SimpleTabs.tsx +0 -55
  296. package/src/editor/ui/SimpleToolbar.tsx +0 -7
  297. package/src/editor/ui/Spinner.tsx +0 -9
  298. package/src/editor/ui/Splitter.tsx +0 -314
  299. package/src/editor/ui/StackedPanels.tsx +0 -134
  300. package/src/editor/ui/Toolbar.tsx +0 -7
  301. package/src/editor/utils/id-helper.ts +0 -3
  302. package/src/editor/utils/insertOptions.ts +0 -69
  303. package/src/editor/utils/itemutils.ts +0 -29
  304. package/src/editor/utils/useMemoDebug.ts +0 -28
  305. package/src/editor/utils.ts +0 -486
  306. package/src/editor/views/CompareView.tsx +0 -245
  307. package/src/editor/views/EditView.tsx +0 -27
  308. package/src/editor/views/ItemEditor.tsx +0 -58
  309. package/src/editor/views/SingleEditView.tsx +0 -46
  310. package/src/fonts/Geist-Black.woff2 +0 -0
  311. package/src/fonts/Geist-Bold.woff2 +0 -0
  312. package/src/fonts/Geist-ExtraBold.woff2 +0 -0
  313. package/src/fonts/Geist-ExtraLight.woff2 +0 -0
  314. package/src/fonts/Geist-Light.woff2 +0 -0
  315. package/src/fonts/Geist-Medium.woff2 +0 -0
  316. package/src/fonts/Geist-Regular.woff2 +0 -0
  317. package/src/fonts/Geist-SemiBold.woff2 +0 -0
  318. package/src/fonts/Geist-Thin.woff2 +0 -0
  319. package/src/fonts/Geist[wght].woff2 +0 -0
  320. package/src/fonts/index.ts +0 -10
  321. package/src/index.ts +0 -23
  322. package/src/lib/safelist.tsx +0 -16
  323. package/src/lib/utils.ts +0 -6
  324. package/src/page-wizard/PageWizard.tsx +0 -139
  325. package/src/page-wizard/WizardBox.tsx +0 -4
  326. package/src/page-wizard/WizardBoxConnector.tsx +0 -56
  327. package/src/page-wizard/WizardSteps.tsx +0 -458
  328. package/src/page-wizard/service.ts +0 -35
  329. package/src/page-wizard/startPageWizardCommand.ts +0 -26
  330. package/src/page-wizard/steps/BuildPageStep.tsx +0 -259
  331. package/src/page-wizard/steps/CollectStep.tsx +0 -296
  332. package/src/page-wizard/steps/ComponentTypesSelector.tsx +0 -454
  333. package/src/page-wizard/steps/Components.tsx +0 -193
  334. package/src/page-wizard/steps/ContentStep.tsx +0 -890
  335. package/src/page-wizard/steps/EditButton.tsx +0 -34
  336. package/src/page-wizard/steps/FieldEditor.tsx +0 -102
  337. package/src/page-wizard/steps/Generate.tsx +0 -60
  338. package/src/page-wizard/steps/ImagesStep.tsx +0 -382
  339. package/src/page-wizard/steps/LayoutStep.tsx +0 -227
  340. package/src/page-wizard/steps/MetaDataStep.tsx +0 -173
  341. package/src/page-wizard/steps/SelectStep.tsx +0 -281
  342. package/src/page-wizard/steps/schema.ts +0 -180
  343. package/src/page-wizard/steps/usePageCreator.ts +0 -325
  344. package/src/page-wizard/usePageWizard.ts +0 -79
  345. package/src/revision.ts +0 -2
  346. package/src/splash-screen/NewPage.tsx +0 -294
  347. package/src/splash-screen/OpenPage.tsx +0 -113
  348. package/src/splash-screen/RecentPages.tsx +0 -123
  349. package/src/splash-screen/SectionHeadline.tsx +0 -21
  350. package/src/splash-screen/SplashScreen.tsx +0 -195
  351. package/src/tour/Tour.tsx +0 -566
  352. package/src/tour/default-tour.tsx +0 -301
  353. package/src/tour/preview-tour.tsx +0 -128
  354. package/src/types.ts +0 -335
  355. package/styles.css +0 -765
  356. package/tsconfig.build.json +0 -31
  357. package/tsconfig.json +0 -14
@@ -1,338 +0,0 @@
1
- import { useEffect, useRef, useState } from "react";
2
-
3
- import { EditButton, useEditContext, EditorMode } from "../client/editContext";
4
- import { Rect, findComponentRect } from "../utils";
5
- import { useThrottledCallback } from "use-debounce";
6
- import { Component } from "../pageModel";
7
- import { PageViewContext } from "../page-viewer/pageViewContext";
8
- import { ArrowUpFromDot } from "lucide-react";
9
- import { cn } from "../../lib/utils";
10
-
11
- import { ComponentCommand } from "../commands/componentCommands";
12
-
13
- export function FrameMenu({
14
- component,
15
- compareView,
16
- pageViewContext,
17
- }: {
18
- component: Component;
19
- compareView: boolean;
20
- pageViewContext: PageViewContext;
21
- }) {
22
- const editContext = useEditContext();
23
- const resizeObserverRef = useRef<ResizeObserver | null>(null);
24
- const mutationObserverRef = useRef<MutationObserver | null>(null);
25
- const headerRef = useRef<HTMLDivElement>(null);
26
- const [commands, setCommands] = useState<ComponentCommand[]>([]);
27
-
28
- const [componentRect, setComponentRect] = useState<Rect>();
29
- const [isHeaderWiderThanComponent, setIsHeaderWiderThanComponent] =
30
- useState(false);
31
-
32
- const updatePosition = () => {
33
- if (!component || !editContext || !pageViewContext) return;
34
-
35
- const iframe = pageViewContext.editorIframeRef.current;
36
-
37
- if (!iframe) return;
38
-
39
- const resetSelection = () => {
40
- setComponentRect(undefined);
41
- };
42
-
43
- const componentRect = findComponentRect(iframe, component)?.rect;
44
-
45
- if (!componentRect) {
46
- resetSelection();
47
- return;
48
- }
49
-
50
- setComponentRect(componentRect);
51
- };
52
-
53
- const updatePositionThrottled = useThrottledCallback(updatePosition, 30);
54
-
55
- // Effect to handle changes in the observed element
56
- useEffect(() => {
57
- if (component) {
58
- const iframe = pageViewContext!.editorIframeRef.current;
59
- if (!iframe) return;
60
-
61
- mutationObserverRef.current = new MutationObserver(() => {
62
- updatePosition();
63
- });
64
-
65
- if (!iframe.contentDocument) return;
66
-
67
- mutationObserverRef.current.observe(iframe.contentDocument, {
68
- childList: true, // observe direct children changes
69
- subtree: true, // observe all descendants changes
70
- characterData: true, // observe text changes
71
- //attributes: true, // observe attribute changes (like style or class)
72
- });
73
- // Create a new ResizeObserver instance
74
- resizeObserverRef.current = new ResizeObserver(() => {
75
- updatePosition();
76
- });
77
-
78
- const scrollContainer =
79
- iframe.contentWindow?.document.scrollingElement ||
80
- iframe.contentWindow?.document.body;
81
-
82
- scrollContainer?.addEventListener("scroll", updatePositionThrottled);
83
- iframe.contentWindow?.addEventListener("scroll", updatePositionThrottled);
84
-
85
- const componentRect = findComponentRect(iframe, component);
86
-
87
- if (!componentRect) {
88
- updatePosition();
89
- return;
90
- }
91
-
92
- componentRect.elements.forEach((componentElement) => {
93
- resizeObserverRef.current!.observe(componentElement);
94
- });
95
- }
96
-
97
- return () => {
98
- if (mutationObserverRef.current) {
99
- mutationObserverRef.current.disconnect();
100
- mutationObserverRef.current = null;
101
- }
102
- if (resizeObserverRef.current) {
103
- resizeObserverRef.current.disconnect();
104
- resizeObserverRef.current = null;
105
- }
106
- };
107
- }, [component]);
108
-
109
- // Effect to measure header width and compare with componentRect
110
- useEffect(() => {
111
- if (!headerRef.current || !componentRect) return;
112
-
113
- const headerResizeObserver = new ResizeObserver((entries) => {
114
- for (const entry of entries) {
115
- const headerWidth = entry.contentRect.width;
116
- setIsHeaderWiderThanComponent(headerWidth > componentRect.width);
117
- }
118
- });
119
-
120
- headerResizeObserver.observe(headerRef.current);
121
-
122
- return () => {
123
- headerResizeObserver.disconnect();
124
- };
125
- }, [componentRect]);
126
-
127
- useEffect(() => {
128
- setTimeout(() => {
129
- updatePosition();
130
- }, 100);
131
- }, [
132
- pageViewContext?.scroll,
133
- pageViewContext?.viewport,
134
- pageViewContext?.device,
135
- pageViewContext?.fullscreen,
136
- pageViewContext?.zoom,
137
- ]);
138
-
139
- if (!component || !editContext) return null;
140
-
141
- // const commands = editContext.getComponentCommands([component]);
142
-
143
- useEffect(() => {
144
- async function loadCommands() {
145
- const commands = await editContext!.getComponentCommands([component]);
146
- setCommands(commands);
147
- }
148
- loadCommands();
149
- }, [component]);
150
-
151
- const isDraggable =
152
- component.canBeMoved &&
153
- editContext.mode === "edit" &&
154
- !component.layoutId &&
155
- pageViewContext.page?.item.canWriteItem;
156
- false;
157
-
158
- const commandButtons = commands
159
- .filter(
160
- (x) =>
161
- !editContext.isCommandDisabled({ command: x }) &&
162
- x.visibilityScopes.indexOf("editFrame") >= 0,
163
- )
164
- .map((x) => ({
165
- id: x.id + "_button",
166
- icon: x.icon,
167
- label: x.label,
168
- onClick: (ev: any) => {
169
- ev.stopPropagation();
170
- ev.preventDefault();
171
- editContext.executeCommand({
172
- command: x,
173
- event: ev,
174
- });
175
- },
176
- }));
177
-
178
- const customButtons: EditButton[] = []; // TODO
179
-
180
- const buttons = [...customButtons, ...commandButtons];
181
-
182
- function handleDragStart(event: React.DragEvent<HTMLDivElement>): void {
183
- if (!component?.datasourceItem) return;
184
- event.dataTransfer.setData("componentId", component.id);
185
- setTimeout(() => {
186
- if (!component?.datasourceItem) return;
187
- editContext!.dragStart({
188
- type: "component",
189
- typeId: component.typeId,
190
- templateId: component.datasourceItem?.templateId,
191
- name: component.name,
192
- component: {
193
- id: component.id,
194
- language: pageViewContext.page!.item.language,
195
- version: pageViewContext.page!.item.version,
196
- },
197
- });
198
- }, 50);
199
-
200
- event.stopPropagation();
201
- }
202
-
203
- function handleDragEnd(): void {
204
- editContext!.dragEnd();
205
- }
206
-
207
- const isShared = component.isShared;
208
- const isReadonly = editContext.mode === "preview" || compareView;
209
- const isLayout = component.layoutId;
210
-
211
- function getColor() {
212
- if (isReadonly) return "readonly";
213
- if (editContext?.mode === "suggestions") return "suggestions";
214
- if (isShared) return "shared";
215
- if (isLayout) return "layout";
216
- if (component.canBeMoved) return "default";
217
- return "nonMovable";
218
- }
219
- const color = getColor();
220
-
221
- const colorVariants = {
222
- shared: "border-orange-400",
223
- readonly: "border-gray-400",
224
- layout: "border-purple-400",
225
- default: "border-sky-400",
226
- nonMovable: "border-red-400",
227
- suggestions: "border-teal-400",
228
- };
229
-
230
- const bgColorVariants = {
231
- shared: "bg-orange-400",
232
- readonly: "bg-gray-400",
233
- layout: "bg-purple-400",
234
- default: "bg-sky-400",
235
- nonMovable: "bg-red-400",
236
- suggestions: "bg-teal-400",
237
- };
238
-
239
- // Calculate initial estimation for the header width
240
- const estimatedHeaderWidth = buttons.length * 30 + component.name.length * 8; // Approximate width calculation
241
- const initialIsHeaderWiderThanComponent =
242
- estimatedHeaderWidth > (componentRect?.width || 0);
243
-
244
- useEffect(() => {
245
- setIsHeaderWiderThanComponent(initialIsHeaderWiderThanComponent);
246
- }, [initialIsHeaderWiderThanComponent]);
247
-
248
- const isMultiSelected = editContext.selection.length > 1;
249
- if (!componentRect) return null;
250
-
251
- return (
252
- <>
253
- <div
254
- className={cn(
255
- "pointer-events-none absolute inset-0 rounded-b-sm border-2",
256
- colorVariants[color],
257
- "tour-frame-menu opacity-50 hover:opacity-100",
258
- !isMultiSelected && isHeaderWiderThanComponent && "border-t-0",
259
- !isMultiSelected && !isHeaderWiderThanComponent && "rounded-tl-sm",
260
- isMultiSelected && "rounded-t-sm",
261
- )}
262
- style={{
263
- left: componentRect.x,
264
- top: componentRect.y,
265
- width: componentRect.width,
266
- height: componentRect.height,
267
- zIndex: 8,
268
- }}
269
- data-testid="frame-menu"
270
- >
271
- {!isMultiSelected && (
272
- <div
273
- ref={headerRef}
274
- className={
275
- `editframe-menu pointer-events-auto absolute z-1000 flex items-center pr-4 text-base text-white ${bgColorVariants[color]} ` +
276
- (componentRect.y - 36 < 0 ? "rounded-bl-lg" : "rounded-t-lg") +
277
- (isHeaderWiderThanComponent ? " rounded-bl-lg" : "")
278
- }
279
- style={{
280
- right: "-2px",
281
- top: componentRect.y - 36 < 0 ? "0" : undefined,
282
- bottom:
283
- componentRect.y - 36 >= 0
284
- ? componentRect.height - 2
285
- : undefined,
286
- zIndex: 800,
287
- height: "36px",
288
- }}
289
- >
290
- <div
291
- draggable={isDraggable}
292
- onDragStart={handleDragStart}
293
- onDragEnd={handleDragEnd}
294
- className={`group flex items-center gap-1 pr-2 pl-3 text-sm text-nowrap ${
295
- isDraggable ? "cursor-move" : "cursor-default"
296
- } `}
297
- >
298
- {component.name}
299
- {component.parentPlaceholder?.parentComponent && (
300
- <span
301
- className="cursor-pointer opacity-0 transition-opacity group-hover:opacity-100"
302
- onClick={() => {
303
- editContext.select([
304
- component.parentPlaceholder?.parentComponent.id || "",
305
- ]);
306
- }}
307
- >
308
- <ArrowUpFromDot height={14} width={14} />
309
- </span>
310
- )}
311
- </div>
312
- {editContext.mode === "edit" && (
313
- <div className="flex items-center gap-2.5 text-sm">
314
- {buttons.map((b, i) => (
315
- <div
316
- className="cursor-pointer hover:text-gray-200"
317
- title={b.label}
318
- key={i}
319
- onClick={(ev) => {
320
- ev.stopPropagation();
321
- b.onClick(ev);
322
- }}
323
- >
324
- {typeof b.icon === "string" ? (
325
- <i className={b.icon + " cursor-pointer text-sm"} />
326
- ) : (
327
- b.icon
328
- )}
329
- </div>
330
- ))}
331
- </div>
332
- )}
333
- </div>
334
- )}
335
- </div>
336
- </>
337
- );
338
- }
@@ -1,48 +0,0 @@
1
- import { useEffect, useState } from "react";
2
- import { findComponent } from "../componentTreeHelper";
3
- import { useEditContext, EditorMode } from "../client/editContext";
4
- import { PageViewContext } from "../page-viewer/pageViewContext";
5
- import { FrameMenu } from "./FrameMenu";
6
- import { Component } from "../pageModel";
7
- export function FrameMenus({
8
- compareView,
9
- pageViewContext,
10
- }: {
11
- compareView: boolean;
12
- pageViewContext: PageViewContext;
13
- }) {
14
- const editContext = useEditContext();
15
- const selection = editContext?.selection;
16
-
17
- const [components, setComponents] = useState<Component[]>([]);
18
-
19
- useEffect(() => {
20
- if (!pageViewContext.page) return;
21
-
22
- const comps: Component[] = selection
23
- ? selection
24
- .map((id) =>
25
- findComponent(
26
- id,
27
- pageViewContext.page?.rootComponent.placeholders || [],
28
- ),
29
- )
30
- .filter((c): c is NonNullable<typeof c> => c !== undefined)
31
- : [];
32
-
33
- setComponents(comps);
34
- }, [selection, pageViewContext.page]);
35
-
36
- return (
37
- <>
38
- {components.map((c) => (
39
- <FrameMenu
40
- key={c.id}
41
- component={c}
42
- compareView={compareView}
43
- pageViewContext={pageViewContext}
44
- />
45
- ))}{" "}
46
- </>
47
- );
48
- }