@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,16 +0,0 @@
1
- import { EditorWarning } from "../EditorWarning";
2
- import { EditorWarningProps } from "../EditorWarnings";
3
- import { useEditContext } from "../client/editContext";
4
-
5
- export function NoWriteAccess({ item }: EditorWarningProps) {
6
- var editContext = useEditContext();
7
- if (!editContext) return;
8
- if (editContext.mode !== "edit") return;
9
- if (!item.canWriteItem) {
10
- return (
11
- <EditorWarning title="You dont have write access." severity="warning">
12
- <p>You can't edit this item because you don't have write access.</p>
13
- </EditorWarning>
14
- );
15
- }
16
- }
@@ -1,54 +0,0 @@
1
- import { EditorWarning } from "../EditorWarning";
2
- import { EditorWarningProps } from "../EditorWarnings";
3
-
4
- export function ValidationErrors({ item, editContext }: EditorWarningProps) {
5
- let validationResult = editContext.validationResult
6
- ?.find(
7
- (x) =>
8
- x.item.id === item.id &&
9
- x.item.language === item.language &&
10
- x.item.version === item.version
11
- )
12
- ?.results.filter((x) => x.itemId === item.id);
13
-
14
- if (!validationResult) {
15
- const pageResult = editContext.validationResult?.find(
16
- (x) => x.item.id === editContext?.page?.item.id
17
- );
18
-
19
- if (pageResult)
20
- validationResult = pageResult.results.filter((x) => x.itemId === item.id);
21
- }
22
-
23
- if (!validationResult?.length) return null;
24
- const fields = validationResult?.filter((x) => x.fieldId);
25
-
26
- return (
27
- <EditorWarning title="Validation" severity="warning">
28
- {validationResult
29
- ?.filter((x) => !x.fieldId)
30
- .map((x) => (
31
- <div key={x.validator}>{x.message}</div>
32
- ))}
33
- {fields?.length > 0 && (
34
- <div>
35
- The following fields have validation messages:{" "}
36
- {fields.map((x) => (
37
- <span
38
- className="cursor-pointer font-bold"
39
- key={x.validator + x.fieldId}
40
- onClick={() => {
41
- const field = Object.values(item.fields).find(
42
- (f) => f.id === x.fieldId
43
- );
44
- if (field) editContext.setFocusedField(field.descriptor, false);
45
- }}
46
- >
47
- {x.fieldName}
48
- </span>
49
- ))}
50
- </div>
51
- )}
52
- </EditorWarning>
53
- );
54
- }
@@ -1,9 +0,0 @@
1
- import { AttachmentField } from "../fieldTypes";
2
-
3
- export function AttachmentEditor({ field }: { field: AttachmentField }) {
4
- return (
5
- <div>
6
- <img src={field.value.src} />
7
- </div>
8
- );
9
- }
@@ -1,47 +0,0 @@
1
- "use client";
2
-
3
- import { useEditContext } from "../client/editContext";
4
-
5
- import { Checkbox } from "primereact/checkbox";
6
- import { useEffect, useState } from "react";
7
- import { ProgressSpinner } from "primereact/progressspinner";
8
- import { CheckboxField } from "../fieldTypes";
9
-
10
- export function CheckboxEditor({
11
- field,
12
- readOnly,
13
- }: {
14
- field: CheckboxField;
15
- readOnly?: boolean;
16
- }) {
17
- const editContext = useEditContext();
18
- const [isUpdating, setIsUpdating] = useState(false);
19
-
20
- useEffect(() => {
21
- setIsUpdating(false);
22
- }, [field]);
23
-
24
- if (!editContext) return;
25
- const fieldItem = field.descriptor.item;
26
- if (!fieldItem) return;
27
-
28
- if (isUpdating) {
29
- return <ProgressSpinner style={{ width: "18px", height: "18px" }} />;
30
- }
31
-
32
- return (
33
- <Checkbox
34
- key={fieldItem.id + field.id + fieldItem.language + fieldItem.version}
35
- checked={field.value}
36
- disabled={readOnly}
37
- onClick={() => {
38
- setIsUpdating(true);
39
- editContext.operations.editField({
40
- field: field.descriptor,
41
- rawValue: field.value ? "0" : "1",
42
- refresh: "immediate",
43
- });
44
- }}
45
- />
46
- );
47
- }
@@ -1,80 +0,0 @@
1
- "use client";
2
-
3
- import { Dropdown, DropdownChangeEvent } from "primereact/dropdown";
4
-
5
- import { useEditContext } from "../client/editContext";
6
- import { useEffect, useState } from "react";
7
-
8
- import { getLookupSources } from "../services/editService";
9
- import { InternalLinkField } from "../fieldTypes";
10
- import { ItemIdAndName } from "../pageModel";
11
- import { normalizeGuid } from "../utils";
12
-
13
- export function DropLinkEditor({
14
- field,
15
- readOnly,
16
- }: {
17
- field: InternalLinkField;
18
- readOnly?: boolean;
19
- }) {
20
- const editContext = useEditContext();
21
-
22
- const [lazyItems, setLazyItems] = useState<ItemIdAndName[]>([]);
23
- const [lazyLoading, setLazyLoading] = useState<boolean>(true);
24
-
25
- if (!field) return;
26
-
27
- if (!editContext) return;
28
-
29
- useEffect(() => {
30
- onLazyLoad();
31
- }, [
32
- field.descriptor.fieldId +
33
- field.descriptor.item.id +
34
- field.descriptor.item.language +
35
- field.descriptor.item.version,
36
- ]);
37
-
38
- const onLazyLoad = async () => {
39
- setLazyLoading(true);
40
- const options = await getLookupSources(field, editContext.sessionId);
41
- setLazyItems(options);
42
- setLazyLoading(false);
43
- };
44
-
45
- return (
46
- <Dropdown
47
- value={field.value?.targetItemId}
48
- disabled={readOnly}
49
- onChange={(e: DropdownChangeEvent) => {
50
- editContext?.operations.editField({
51
- field: field.descriptor,
52
- rawValue: normalizeGuid(e.value), // typeof e.value === "string" ? e.value : e.value.id, // This has changed in primereact
53
- });
54
- }}
55
- options={lazyItems}
56
- optionLabel="name"
57
- optionValue="id"
58
- placeholder="Select"
59
- className="md:w-14rem w-full"
60
- virtualScrollerOptions={{
61
- lazy: true,
62
- onLazyLoad: onLazyLoad,
63
- itemSize: 38,
64
- // showLoader: true,
65
- loading: lazyLoading,
66
- //delay: 250,
67
- // loadingTemplate: (options) => {
68
- // return (
69
- // <div
70
- // className="flex align-items-center p-2"
71
- // style={{ height: "38px" }}
72
- // >
73
- // <Skeleton width={options.even ? "60%" : "50%"} height="1rem" />
74
- // </div>
75
- // );
76
- // },
77
- }}
78
- />
79
- );
80
- }
@@ -1,84 +0,0 @@
1
- "use client";
2
-
3
- import { Dropdown, DropdownChangeEvent } from "primereact/dropdown";
4
-
5
- import { useEditContext } from "../client/editContext";
6
- import { useEffect, useState } from "react";
7
-
8
- import { getLookupSources } from "../services/editService";
9
- import { TextField } from "../fieldTypes";
10
- import { ItemIdAndName } from "../pageModel";
11
-
12
- export function DropListEditor({
13
- field,
14
- readOnly,
15
- }: {
16
- field: TextField;
17
- readOnly?: boolean;
18
- }) {
19
- const editContext = useEditContext();
20
-
21
- const [lazyItems, setLazyItems] = useState<ItemIdAndName[]>([]);
22
- const [lazyLoading, setLazyLoading] = useState<boolean>(true);
23
-
24
- if (!field) return;
25
-
26
- if (!editContext) return;
27
-
28
- useEffect(() => {
29
- onLazyLoad();
30
- }, [field.descriptor]);
31
-
32
- const onLazyLoad = async () => {
33
- setLazyLoading(true);
34
- const options = await getLookupSources(field, editContext.sessionId);
35
- if (field.value && !options.find((o) => o.name === field.value)) {
36
- console.log("Adding unknown option", field.value);
37
- options.unshift({
38
- id: "unknown",
39
- name: `[Unknown: ${field.value}]`,
40
- });
41
- }
42
- setLazyItems(options);
43
- setLazyLoading(false);
44
- };
45
-
46
- return (
47
- <Dropdown
48
- value={
49
- lazyItems.find((o) => o.name === field.value)?.name ||
50
- "[Unknown: " + field.value + "]"
51
- }
52
- disabled={readOnly}
53
- onChange={(e: DropdownChangeEvent) => {
54
- editContext?.operations.editField({
55
- field: field.descriptor,
56
- rawValue: e.value,
57
- });
58
- }}
59
- options={lazyItems}
60
- optionLabel="name"
61
- optionValue="name"
62
- placeholder="Select"
63
- className="w-full md:w-14rem"
64
- virtualScrollerOptions={{
65
- lazy: true,
66
- onLazyLoad: onLazyLoad,
67
- itemSize: 38,
68
- // showLoader: true,
69
- loading: lazyLoading,
70
- //delay: 250,
71
- // loadingTemplate: (options) => {
72
- // return (
73
- // <div
74
- // className="flex align-items-center p-2"
75
- // style={{ height: "38px" }}
76
- // >
77
- // <Skeleton width={options.even ? "60%" : "50%"} height="1rem" />
78
- // </div>
79
- // );
80
- // },
81
- }}
82
- />
83
- );
84
- }
@@ -1,65 +0,0 @@
1
- "use client";
2
-
3
- import { useEditContext } from "../client/editContext";
4
- import { InputText } from "primereact/inputtext";
5
- import { ImageField } from "../fieldTypes";
6
- import { useEffect, useState } from "react";
7
- import { ImageEditor } from "../ImageEditor";
8
-
9
- export function ImageFieldEditor({
10
- field,
11
- readOnly,
12
- }: {
13
- field: ImageField;
14
- readOnly?: boolean;
15
- }) {
16
- const editContext = useEditContext();
17
- const [altText, setAltText] = useState<string>("");
18
-
19
- if (!field || !editContext) return null;
20
-
21
- function updateAltText(rawValue: string, newAltText: string): string {
22
- const parser = new DOMParser();
23
- const xmlDoc = parser.parseFromString(rawValue, 'text/xml');
24
- const imageElement = xmlDoc.documentElement;
25
-
26
- imageElement.setAttribute('alt', newAltText);
27
-
28
- return new XMLSerializer().serializeToString(xmlDoc);
29
- }
30
-
31
- var item = field.descriptor.item;
32
-
33
- useEffect(() => {
34
- setAltText(field.value?.alt || "");
35
- }, [field.value?.alt]);
36
-
37
- return (
38
- <div>
39
- <div className="flex gap-2 h-full focus-shadow flex-wrap">
40
- <div className="h-48 w-48 border border-gray-300 relative cursor-pointer flex justify-center items-center">
41
- {!readOnly && <ImageEditor field={field} />}
42
- </div>
43
- </div>
44
- <div className="mt-2">
45
- <div className="mb-1">Alt Text</div>
46
- <InputText
47
- key={item!.id + field.id + item!.language + item!.version}
48
- value={altText}
49
- disabled={readOnly}
50
- className="p-2 focus-shadow text-sm"
51
- style={{ width: "100%" }}
52
- onChange={(e) => {
53
- setAltText(e.target.value);
54
- if (field.value) field.value.alt = e.target.value;
55
- editContext.operations.editField({
56
- field: field.descriptor,
57
- rawValue: updateAltText(field.rawValue || "", e.target.value),
58
- refresh: "waitForQuietPeriod",
59
- });
60
- }}
61
- />
62
- </div>
63
- </div>
64
- );
65
- }
@@ -1,117 +0,0 @@
1
- "use client";
2
-
3
- import { useEffect, useRef, useState } from "react";
4
-
5
- import { Link } from "../LinkEditorDialog";
6
- import { useEditContext } from "../client/editContext";
7
- import ContentTree from "../ContentTree";
8
-
9
- import { OverlayPanel } from "primereact/overlaypanel";
10
- import { InternalLinkField } from "../fieldTypes";
11
- import { getLookupSources } from "../services/editService";
12
- import { classNames } from "primereact/utils";
13
-
14
- export function InternalLinkFieldEditor({
15
- field,
16
- readOnly,
17
- }: {
18
- field: InternalLinkField;
19
- readOnly?: boolean;
20
- }) {
21
- const editContext = useEditContext();
22
-
23
- const [link, setLink] = useState<Link>();
24
- const [showTree, setShowTree] = useState(false);
25
- const [rootItemIds, setRootItemIds] = useState<string[]>([]);
26
-
27
- useEffect(() => {
28
- setLink({
29
- url: field.value.url,
30
- target: field.value.target,
31
- targetItemName: field.value.targetItemName,
32
- targetItemLongId: field.value.targetItemLongId,
33
- type: field.value.type,
34
- itemId: field.value.targetItemLongId?.split("/").pop(),
35
- queryString: field.value.queryString,
36
- });
37
- }, [field]);
38
-
39
- const overlayPanelRef = useRef<OverlayPanel>(null);
40
- const dropdownRef = useRef<HTMLDivElement>(null);
41
- const texboxRef = useRef<HTMLDivElement>(null);
42
-
43
- if (!editContext) return;
44
-
45
- const selection = [];
46
- if (link?.itemId) selection.push(link.itemId);
47
-
48
- useEffect(() => {
49
- const loadLookupSources = async () => {
50
- const datasources = await getLookupSources(field, editContext.sessionId);
51
-
52
- if (datasources.length > 0) {
53
- setRootItemIds(datasources.map((x) => x.id));
54
- } else setRootItemIds(["11111111-1111-1111-1111-111111111111"]);
55
- };
56
- loadLookupSources();
57
- }, [
58
- field.descriptor.fieldId +
59
- field.descriptor.item.id +
60
- field.descriptor.item.language +
61
- field.descriptor.item.version,
62
- ]);
63
-
64
- return (
65
- <>
66
- <div>
67
- <div
68
- ref={texboxRef}
69
- className={classNames(
70
- "justiy-between focus-shadow flex cursor-pointer justify-between border p-1.5 text-sm",
71
- readOnly ? "bg-gray-50" : "bg-white",
72
- )}
73
- onClick={(e) => {
74
- if (readOnly) return;
75
- overlayPanelRef.current?.toggle(null, texboxRef.current);
76
- setShowTree((show) => !show);
77
- e.preventDefault();
78
- }}
79
- >
80
- {link?.targetItemName ? (
81
- <span>{link.targetItemName}</span>
82
- ) : (
83
- <span>&nbsp;</span>
84
- )}
85
- {!readOnly && (
86
- <i
87
- className={`pi ${showTree ? "pi-angle-up" : "pi-angle-down"} `}
88
- ></i>
89
- )}
90
- </div>
91
- <div ref={dropdownRef} className="w-0"></div>
92
- </div>
93
- <OverlayPanel ref={overlayPanelRef}>
94
- <div
95
- className="h-64 resize overflow-auto border-x border-b p-2"
96
- style={{ width: `${texboxRef.current?.offsetWidth || 100}px` }}
97
- >
98
- <ContentTree
99
- language={editContext.contentEditorItem!.language}
100
- expandIdPath={link?.targetItemLongId}
101
- rootItemIds={rootItemIds}
102
- selectionMode="single"
103
- selectedItemIds={selection}
104
- onSelectionChange={(nodes) => {
105
- setShowTree(false);
106
- overlayPanelRef.current?.hide();
107
- editContext?.operations.editField({
108
- field: field.descriptor,
109
- rawValue: nodes[0]?.id,
110
- });
111
- }}
112
- />
113
- </div>
114
- </OverlayPanel>
115
- </>
116
- );
117
- }
@@ -1,85 +0,0 @@
1
- "use client";
2
-
3
- import { useEffect, useState } from "react";
4
-
5
- import { Link, LinkEditorDialog } from "../LinkEditorDialog";
6
- import { useEditContext } from "../client/editContext";
7
- import { LinkField } from "../fieldTypes";
8
- import { classNames } from "primereact/utils";
9
-
10
- export function LinkFieldEditor({
11
- field,
12
- readOnly,
13
- }: {
14
- field: LinkField;
15
- readOnly?: boolean;
16
- }) {
17
- const editContext = useEditContext();
18
- const [showDialog, setShowDialog] = useState(false);
19
- const [link, setLink] = useState<Link>();
20
- useEffect(() => {
21
- if (!field.value) return;
22
- setLink({
23
- url: field.value.url,
24
- target: field.value.target,
25
- targetItemLongId: field.value.targetItemLongId,
26
- type: field.value.type,
27
- itemId: field.value.targetItemLongId?.split("/").pop(),
28
- queryString: field.value.queryString,
29
- });
30
- }, [field]);
31
- if (!field.value) return;
32
-
33
- return (
34
- <>
35
- <div
36
- className={classNames(
37
- "focus-shadow flex justify-between border border-gray-300 p-2",
38
- readOnly ? "bg-gray-100" : "cursor-pointer bg-white",
39
- )}
40
- onClick={(e) => {
41
- if (readOnly) return;
42
- setShowDialog(true);
43
- e.preventDefault();
44
- }}
45
- >
46
- <div>{field.value.url}</div>
47
- <i className="pi pi-link"></i>
48
- </div>
49
- {showDialog && (
50
- <LinkEditorDialog
51
- linkValue={link || { type: "internal" }}
52
- onOk={(link) => {
53
- const xml =
54
- link.type == "internal"
55
- ? '<link linktype="internal" querystring="' +
56
- (link.queryString ?? "") +
57
- '" id="' +
58
- link.itemId +
59
- '" target="' +
60
- link.target +
61
- '" />'
62
- : '<link linktype="external" querystring="' +
63
- (link.queryString ?? "") +
64
- '" url="' +
65
- link.url +
66
- '" target="' +
67
- link.target +
68
- '" />';
69
-
70
- editContext?.operations.editField({
71
- field: field.descriptor,
72
- rawValue: xml,
73
- refresh: "immediate",
74
- });
75
-
76
- setShowDialog(false);
77
- }}
78
- onCancel={() => {
79
- setShowDialog(false);
80
- }}
81
- />
82
- )}
83
- </>
84
- );
85
- }
@@ -1,82 +0,0 @@
1
- "use client";
2
-
3
- import { InputTextarea } from "primereact/inputtextarea";
4
- import {
5
- useEditContext,
6
- useEditContextRef,
7
- useModifiedFieldsContext,
8
- } from "../client/editContext";
9
-
10
- import { useEffect, useRef, useState } from "react";
11
-
12
- import { Field } from "../pageModel";
13
-
14
- export function MultiLineText({
15
- field,
16
- readOnly,
17
- updateFieldValue,
18
- }: {
19
- field: Field;
20
- readOnly?: boolean;
21
- updateFieldValue: (value: string) => void;
22
- }) {
23
- const editContextRef = useEditContextRef();
24
- const editContext = useEditContext();
25
- const inputRef = useRef<HTMLTextAreaElement>(null);
26
-
27
- const fieldItem = field.descriptor.item;
28
- const [value, setValue] = useState(field.value as string);
29
-
30
- const modifiedFieldsContext = useModifiedFieldsContext();
31
- const modifiedField = modifiedFieldsContext?.modifiedFields.find(
32
- (x) =>
33
- x.fieldId === field.id &&
34
- x.item.id === fieldItem.id &&
35
- x.item.language === fieldItem.language &&
36
- x.item.version === fieldItem.version,
37
- );
38
-
39
- useEffect(() => {
40
- if (inputRef.current !== document.activeElement) {
41
- if (field.isHistoric) setValue(field.value as string);
42
- else setValue(modifiedField?.value ?? (field.value as string));
43
- }
44
- }, [field.value, modifiedFieldsContext?.modifiedFields]);
45
-
46
- if (!editContextRef.current) return;
47
-
48
- if (!fieldItem) return;
49
-
50
- useEffect(() => {
51
- setTimeout(() => {
52
- if (
53
- !editContextRef.current?.inlineEditingFieldElement &&
54
- editContextRef.current?.focusedField?.fieldId === field.id &&
55
- editContextRef.current?.focusedField?.item.id === fieldItem.id &&
56
- editContextRef.current?.focusedField?.item.language ===
57
- fieldItem.language &&
58
- editContextRef.current?.focusedField?.item.version === fieldItem.version
59
- ) {
60
- if (inputRef.current) {
61
- inputRef.current.focus();
62
- }
63
- }
64
- }, 500);
65
- }, [editContext?.focusedField]);
66
-
67
- return (
68
- <InputTextarea
69
- ref={inputRef}
70
- key={fieldItem.id + field.id + fieldItem.language + fieldItem.version}
71
- value={value}
72
- disabled={readOnly}
73
- className="focus-shadow p-2 text-sm"
74
- style={{ width: "100%" }}
75
- rows={12}
76
- onChange={(e) => {
77
- setValue(e.target.value);
78
- updateFieldValue(e.target.value as string);
79
- }}
80
- />
81
- );
82
- }