@alpaca-headless/alpaca-headless-nextjs 1.0.129 → 1.0.253

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 (401) hide show
  1. package/dist/editor.css +435 -49
  2. package/dist/esm/Editor.js +13 -0
  3. package/dist/esm/client-components/ClientLink.js +35 -0
  4. package/dist/{cjs/components → esm/client-components}/LinkEditor.js +22 -19
  5. package/dist/esm/client-components/MultiComponentEditor.js +22 -0
  6. package/dist/esm/client-components/index.js +4 -0
  7. package/dist/esm/components/Error.js +10 -0
  8. package/dist/{cjs → esm}/components/Image.js +5 -8
  9. package/dist/esm/components/Link.js +30 -0
  10. package/dist/esm/components/LinkPreview.js +30 -0
  11. package/dist/esm/components/LockedFieldIndicator.js +21 -0
  12. package/dist/esm/components/Picture.js +132 -0
  13. package/dist/esm/components/PictureEditor.js +77 -0
  14. package/dist/esm/components/PictureEditorWrapper.js +7 -0
  15. package/dist/esm/components/Placeholder.js +141 -0
  16. package/dist/esm/components/RichText.js +29 -0
  17. package/dist/esm/components/RichTextEditor.js +92 -0
  18. package/dist/esm/components/RichTextEditorWrapper.js +7 -0
  19. package/dist/esm/components/Slot.js +6 -0
  20. package/dist/esm/components/Text.js +28 -0
  21. package/dist/esm/components/TextEditor.js +78 -0
  22. package/dist/esm/components/TextEditorWrapper.js +19 -0
  23. package/dist/esm/components/Translate.js +9 -0
  24. package/dist/esm/components/TranslateEditor.js +24 -0
  25. package/dist/esm/components/TranslateEditorWrapper.js +7 -0
  26. package/dist/esm/components/index.js +7 -0
  27. package/dist/esm/components/picture-shared.js +26 -0
  28. package/dist/esm/editor/ComponentInfo.js +12 -0
  29. package/dist/esm/editor/ConfirmationDialog.js +29 -0
  30. package/dist/{cjs → esm}/editor/ContentTree.js +61 -46
  31. package/dist/esm/editor/ContextMenu.js +90 -0
  32. package/dist/esm/editor/DialogButtons.js +4 -0
  33. package/dist/esm/editor/DictionaryEditor.js +37 -0
  34. package/dist/esm/editor/EditFrame.js +115 -0
  35. package/dist/esm/editor/EditFrameWrapper.js +7 -0
  36. package/dist/esm/editor/EditorClient.js +889 -0
  37. package/dist/esm/editor/EditorClientHost.js +15 -0
  38. package/dist/esm/editor/EditorWarning.js +10 -0
  39. package/dist/esm/editor/EditorWarnings.js +13 -0
  40. package/dist/esm/editor/FieldEditorPopup.js +23 -0
  41. package/dist/esm/editor/FieldList.js +48 -0
  42. package/dist/esm/editor/FieldListField.js +86 -0
  43. package/dist/esm/editor/FieldListFieldWithFallbacks.js +79 -0
  44. package/dist/{cjs → esm}/editor/FloatingToolbar.js +20 -23
  45. package/dist/esm/editor/ItemInfo.js +14 -0
  46. package/dist/esm/editor/LinkEditorDialog.js +61 -0
  47. package/dist/esm/editor/MainLayout.js +18 -0
  48. package/dist/esm/editor/MediaSelector.js +85 -0
  49. package/dist/esm/editor/Outline.js +82 -0
  50. package/dist/esm/editor/PageViewer.js +41 -0
  51. package/dist/esm/editor/PictureEditorDialog.js +201 -0
  52. package/dist/esm/editor/PlaceholderDropZone.js +130 -0
  53. package/dist/esm/editor/PlaceholderDropZoneHost.js +7 -0
  54. package/dist/esm/editor/PreviewClient.js +6 -0
  55. package/dist/esm/editor/PreviewClientHost.js +7 -0
  56. package/dist/esm/editor/PreviewPanel.js +7 -0
  57. package/dist/esm/editor/PublishDialog.js +15 -0
  58. package/dist/esm/editor/Terminal.js +55 -0
  59. package/dist/esm/editor/ai/AiPopup.js +28 -0
  60. package/dist/esm/editor/ai/AiResponseMessage.js +20 -0
  61. package/dist/esm/editor/ai/AiTerminal.js +216 -0
  62. package/dist/esm/editor/ai/AiToolCall.js +15 -0
  63. package/dist/esm/editor/ai/EditorAiTerminal.js +5 -0
  64. package/dist/esm/editor/commands/commands.js +1 -0
  65. package/dist/esm/editor/commands/componentCommands.js +287 -0
  66. package/dist/esm/editor/commands/createVersionCommand.js +26 -0
  67. package/dist/esm/editor/commands/undo.js +22 -0
  68. package/dist/esm/editor/component-designer/ComponentDesigner.js +7 -0
  69. package/dist/esm/editor/component-designer/ComponentDesignerAiTerminal.js +5 -0
  70. package/dist/esm/editor/component-designer/ComponentDesignerMenu.js +39 -0
  71. package/dist/esm/editor/component-designer/ComponentPreview.js +20 -0
  72. package/dist/esm/editor/component-designer/ComponentRenderingEditor.js +38 -0
  73. package/dist/esm/editor/component-designer/ComponentSelectionTree.js +56 -0
  74. package/dist/esm/editor/component-designer/componentDesignerContext.js +22 -0
  75. package/dist/esm/editor/componentTreeHelper.js +20 -0
  76. package/dist/esm/editor/config/config.js +327 -0
  77. package/dist/esm/editor/config/types.js +1 -0
  78. package/dist/esm/editor/editContext.js +11 -0
  79. package/dist/esm/editor/editor-warnings/ItemLocked.js +40 -0
  80. package/dist/esm/editor/editor-warnings/ValidationErrors.js +22 -0
  81. package/dist/esm/editor/fieldTypes/CheckboxEditor.js +21 -0
  82. package/dist/esm/editor/fieldTypes/DropLinkEditor.js +50 -0
  83. package/dist/esm/editor/fieldTypes/InternalLinkFieldEditor.js +41 -0
  84. package/dist/{cjs → esm}/editor/fieldTypes/LinkFieldEditor.js +14 -16
  85. package/dist/esm/editor/fieldTypes/MultiLineText.js +25 -0
  86. package/dist/esm/editor/fieldTypes/PictureFieldEditor.js +33 -0
  87. package/dist/esm/editor/fieldTypes/RawEditor.js +26 -0
  88. package/dist/esm/editor/fieldTypes/RichTextEditor.js +7 -0
  89. package/dist/esm/editor/fieldTypes/RichTextEditorComponent.js +46 -0
  90. package/dist/esm/editor/fieldTypes/SingleLineText.js +23 -0
  91. package/dist/esm/editor/fieldTypes/TreeListEditor.js +57 -0
  92. package/dist/esm/editor/itemCommands.js +27 -0
  93. package/dist/esm/editor/menubar/BrowseHistory.js +39 -0
  94. package/dist/esm/editor/menubar/ItemLanguageVersion.js +20 -0
  95. package/dist/esm/editor/menubar/LanguageSelector.js +18 -0
  96. package/dist/esm/editor/menubar/Menu.js +105 -0
  97. package/dist/esm/editor/menubar/PageViewerControls.js +66 -0
  98. package/dist/esm/editor/menubar/VersionSelector.js +18 -0
  99. package/dist/esm/editor/previewContext.js +5 -0
  100. package/dist/esm/editor/services/aiService.js +20 -0
  101. package/dist/esm/editor/services/componentDesignerService.js +23 -0
  102. package/dist/esm/editor/services/contentService.js +56 -0
  103. package/dist/esm/editor/services/editService.js +394 -0
  104. package/dist/esm/editor/services/serviceHelper.js +45 -0
  105. package/dist/esm/editor/sidebar/ComponentPalette.js +42 -0
  106. package/dist/esm/editor/sidebar/ComponentTree.js +237 -0
  107. package/dist/esm/editor/sidebar/Debug.js +46 -0
  108. package/dist/esm/editor/sidebar/EditHistory.js +66 -0
  109. package/dist/esm/editor/sidebar/EditorForm.js +24 -0
  110. package/dist/esm/editor/sidebar/GraphQL.js +85 -0
  111. package/dist/esm/editor/sidebar/Insert.js +7 -0
  112. package/dist/esm/editor/sidebar/MainContentTree.js +38 -0
  113. package/dist/esm/editor/sidebar/Sessions.js +11 -0
  114. package/dist/esm/editor/sidebar/Sidebar.js +13 -0
  115. package/dist/esm/editor/sidebar/SidebarView.js +73 -0
  116. package/dist/esm/editor/sidebar/Workbox.js +77 -0
  117. package/dist/esm/editor/ui/CopyToClipboardButton.js +14 -0
  118. package/dist/esm/editor/ui/Icons.js +19 -0
  119. package/dist/esm/editor/ui/ItemNameDialog.js +33 -0
  120. package/dist/esm/editor/ui/Section.js +8 -0
  121. package/dist/esm/editor/utils/insertOptions.js +39 -0
  122. package/dist/esm/editor/utils.js +71 -0
  123. package/dist/esm/editor/views/ItemEditor.js +18 -0
  124. package/dist/esm/fieldTypes.js +1 -0
  125. package/dist/esm/graphQL.js +50 -0
  126. package/dist/esm/graphQLTypes.js +1 -0
  127. package/dist/esm/index.js +9 -0
  128. package/dist/{cjs → esm}/loadRouteData.js +19 -37
  129. package/dist/{cjs → esm}/mediaProtection.js +4 -11
  130. package/dist/esm/middleware/handleRequest.js +45 -0
  131. package/dist/esm/middleware/index.js +1 -0
  132. package/dist/esm/public.js +10 -0
  133. package/dist/esm/renderContext.js +49 -0
  134. package/dist/esm/renderings.js +87 -0
  135. package/dist/esm/servertypes.js +1 -0
  136. package/dist/esm/translate.js +7 -0
  137. package/dist/primereact/resources/themes/arya-blue/theme.css +854 -790
  138. package/dist/primereact/resources/themes/arya-green/theme.css +854 -790
  139. package/dist/primereact/resources/themes/arya-orange/theme.css +854 -790
  140. package/dist/primereact/resources/themes/arya-purple/theme.css +854 -790
  141. package/dist/primereact/resources/themes/bootstrap4-dark-blue/theme.css +678 -615
  142. package/dist/primereact/resources/themes/bootstrap4-dark-purple/theme.css +678 -615
  143. package/dist/primereact/resources/themes/bootstrap4-light-blue/theme.css +679 -616
  144. package/dist/primereact/resources/themes/bootstrap4-light-purple/theme.css +679 -616
  145. package/dist/primereact/resources/themes/fluent-light/theme.css +686 -638
  146. package/dist/primereact/resources/themes/lara-dark-amber/theme.css +679 -630
  147. package/dist/primereact/resources/themes/lara-dark-blue/theme.css +679 -630
  148. package/dist/primereact/resources/themes/lara-dark-cyan/theme.css +679 -630
  149. package/dist/primereact/resources/themes/lara-dark-green/theme.css +679 -630
  150. package/dist/primereact/resources/themes/lara-dark-indigo/theme.css +679 -630
  151. package/dist/primereact/resources/themes/lara-dark-pink/theme.css +679 -630
  152. package/dist/primereact/resources/themes/lara-dark-purple/theme.css +679 -630
  153. package/dist/primereact/resources/themes/lara-dark-teal/theme.css +679 -630
  154. package/dist/primereact/resources/themes/lara-light-amber/theme.css +776 -725
  155. package/dist/primereact/resources/themes/lara-light-blue/theme.css +1011 -960
  156. package/dist/primereact/resources/themes/lara-light-cyan/theme.css +776 -725
  157. package/dist/primereact/resources/themes/lara-light-green/theme.css +820 -769
  158. package/dist/primereact/resources/themes/lara-light-indigo/theme.css +1016 -965
  159. package/dist/primereact/resources/themes/lara-light-pink/theme.css +776 -725
  160. package/dist/primereact/resources/themes/lara-light-purple/theme.css +1016 -965
  161. package/dist/primereact/resources/themes/lara-light-teal/theme.css +776 -725
  162. package/dist/primereact/resources/themes/luna-amber/theme.css +950 -887
  163. package/dist/primereact/resources/themes/luna-blue/theme.css +950 -887
  164. package/dist/primereact/resources/themes/luna-green/theme.css +950 -887
  165. package/dist/primereact/resources/themes/luna-pink/theme.css +950 -887
  166. package/dist/primereact/resources/themes/md-dark-deeppurple/theme.css +918 -950
  167. package/dist/primereact/resources/themes/md-dark-indigo/theme.css +918 -950
  168. package/dist/primereact/resources/themes/md-light-deeppurple/theme.css +878 -910
  169. package/dist/primereact/resources/themes/md-light-indigo/theme.css +878 -910
  170. package/dist/primereact/resources/themes/mdc-dark-deeppurple/theme.css +918 -950
  171. package/dist/primereact/resources/themes/mdc-dark-indigo/theme.css +918 -950
  172. package/dist/primereact/resources/themes/mdc-light-deeppurple/theme.css +878 -910
  173. package/dist/primereact/resources/themes/mdc-light-indigo/theme.css +878 -910
  174. package/dist/primereact/resources/themes/mira/theme.css +1562 -1532
  175. package/dist/primereact/resources/themes/nano/theme.css +707 -641
  176. package/dist/primereact/resources/themes/nova/theme.css +705 -643
  177. package/dist/primereact/resources/themes/nova-accent/theme.css +701 -636
  178. package/dist/primereact/resources/themes/nova-alt/theme.css +705 -643
  179. package/dist/primereact/resources/themes/rhea/theme.css +876 -811
  180. package/dist/primereact/resources/themes/saga-blue/theme.css +896 -832
  181. package/dist/primereact/resources/themes/saga-green/theme.css +896 -832
  182. package/dist/primereact/resources/themes/saga-orange/theme.css +896 -832
  183. package/dist/primereact/resources/themes/saga-purple/theme.css +896 -832
  184. package/dist/primereact/resources/themes/soho-dark/theme.css +701 -643
  185. package/dist/primereact/resources/themes/soho-light/theme.css +690 -634
  186. package/dist/primereact/resources/themes/tailwind-light/theme.css +1370 -1306
  187. package/dist/primereact/resources/themes/vela-blue/theme.css +862 -798
  188. package/dist/primereact/resources/themes/vela-green/theme.css +862 -798
  189. package/dist/primereact/resources/themes/vela-orange/theme.css +862 -798
  190. package/dist/primereact/resources/themes/vela-purple/theme.css +862 -798
  191. package/dist/primereact/resources/themes/viva-dark/theme.css +655 -612
  192. package/dist/primereact/resources/themes/viva-light/theme.css +737 -694
  193. package/package.json +26 -22
  194. package/types/Editor.d.ts +9 -0
  195. package/types/{components → client-components}/LinkEditor.d.ts +1 -1
  196. package/types/client-components/MultiComponentEditor.d.ts +4 -2
  197. package/types/client-components/index.d.ts +3 -2
  198. package/types/components/Image.d.ts +3 -0
  199. package/types/components/Link.d.ts +4 -2
  200. package/types/components/LinkPreview.d.ts +6 -0
  201. package/types/components/LockedFieldIndicator.d.ts +6 -0
  202. package/types/components/Picture.d.ts +6 -7
  203. package/types/components/PictureEditorWrapper.d.ts +3 -0
  204. package/types/components/Placeholder.d.ts +12 -14
  205. package/types/components/RichText.d.ts +5 -2
  206. package/types/components/RichTextEditor.d.ts +3 -290
  207. package/types/components/RichTextEditorWrapper.d.ts +2 -0
  208. package/types/components/Slot.d.ts +5 -2
  209. package/types/components/Text.d.ts +5 -2
  210. package/types/components/TextEditor.d.ts +3 -290
  211. package/types/components/TextEditorWrapper.d.ts +4 -0
  212. package/types/components/Translate.d.ts +4 -1
  213. package/types/components/TranslateEditorWrapper.d.ts +3 -0
  214. package/types/components/picture-shared.d.ts +16 -0
  215. package/types/editor/ComponentInfo.d.ts +1 -1
  216. package/types/editor/ContentTree.d.ts +4 -3
  217. package/types/editor/ContextMenu.d.ts +14 -0
  218. package/types/editor/DictionaryEditor.d.ts +1 -4
  219. package/types/editor/EditFrameWrapper.d.ts +6 -0
  220. package/types/editor/EditorClient.d.ts +18 -7
  221. package/types/editor/EditorClientHost.d.ts +5 -6
  222. package/types/editor/EditorWarning.d.ts +6 -0
  223. package/types/editor/EditorWarnings.d.ts +9 -0
  224. package/types/editor/FieldEditorPopup.d.ts +10 -0
  225. package/types/editor/FieldList.d.ts +6 -2
  226. package/types/editor/FieldListField.d.ts +8 -2
  227. package/types/editor/FieldListFieldWithFallbacks.d.ts +8 -0
  228. package/types/editor/ItemInfo.d.ts +1 -1
  229. package/types/editor/Outline.d.ts +11 -0
  230. package/types/editor/PageViewer.d.ts +1 -0
  231. package/types/editor/PictureEditorDialog.d.ts +4 -2
  232. package/types/editor/PlaceholderDropZone.d.ts +3 -2
  233. package/types/editor/PlaceholderDropZoneHost.d.ts +3 -2
  234. package/types/editor/PreviewClient.d.ts +5 -0
  235. package/types/editor/PreviewClientHost.d.ts +4 -0
  236. package/types/editor/PreviewPanel.d.ts +1 -0
  237. package/types/editor/PublishDialog.d.ts +7 -0
  238. package/types/editor/Terminal.d.ts +6 -2
  239. package/types/editor/{AiPopup.d.ts → ai/AiPopup.d.ts} +2 -3
  240. package/types/editor/ai/AiResponseMessage.d.ts +7 -0
  241. package/types/editor/ai/AiTerminal.d.ts +4 -0
  242. package/types/editor/ai/AiToolCall.d.ts +9 -0
  243. package/types/editor/ai/EditorAiTerminal.d.ts +4 -0
  244. package/types/editor/commands/commands.d.ts +21 -0
  245. package/types/editor/commands/componentCommands.d.ts +5 -0
  246. package/types/editor/commands/createVersionCommand.d.ts +2 -0
  247. package/types/editor/commands/undo.d.ts +15 -0
  248. package/types/editor/component-designer/ComponentDesigner.d.ts +1 -0
  249. package/types/editor/component-designer/ComponentDesignerAiTerminal.d.ts +1 -0
  250. package/types/editor/component-designer/ComponentDesignerMenu.d.ts +1 -0
  251. package/types/editor/component-designer/ComponentPreview.d.ts +1 -0
  252. package/types/editor/component-designer/ComponentRenderingEditor.d.ts +2 -0
  253. package/types/editor/component-designer/ComponentSelectionTree.d.ts +1 -0
  254. package/types/editor/component-designer/componentDesignerContext.d.ts +14 -0
  255. package/types/editor/componentTreeHelper.d.ts +2 -1
  256. package/types/editor/config/config.d.ts +2 -0
  257. package/types/editor/config/types.d.ts +66 -0
  258. package/types/editor/editContext.d.ts +72 -93
  259. package/types/editor/editor-warnings/ItemLocked.d.ts +2 -0
  260. package/types/editor/editor-warnings/ValidationErrors.d.ts +2 -0
  261. package/types/editor/fieldTypes/CheckboxEditor.d.ts +3 -2
  262. package/types/editor/fieldTypes/DropLinkEditor.d.ts +5 -0
  263. package/types/editor/fieldTypes/InternalLinkFieldEditor.d.ts +3 -2
  264. package/types/editor/fieldTypes/LinkFieldEditor.d.ts +3 -2
  265. package/types/editor/fieldTypes/MultiLineText.d.ts +3 -2
  266. package/types/editor/fieldTypes/PictureFieldEditor.d.ts +2 -1
  267. package/types/editor/fieldTypes/RawEditor.d.ts +5 -0
  268. package/types/editor/fieldTypes/RichTextEditor.d.ts +4 -3
  269. package/types/editor/fieldTypes/RichTextEditorComponent.d.ts +5 -0
  270. package/types/editor/fieldTypes/SingleLineText.d.ts +3 -2
  271. package/types/editor/fieldTypes/TreeListEditor.d.ts +2 -1
  272. package/types/editor/itemCommands.d.ts +3 -0
  273. package/types/editor/menubar/BrowseHistory.d.ts +4 -0
  274. package/types/editor/menubar/ItemLanguageVersion.d.ts +1 -0
  275. package/types/editor/menubar/LanguageSelector.d.ts +5 -0
  276. package/types/editor/menubar/Menu.d.ts +1 -0
  277. package/types/editor/menubar/PageViewerControls.d.ts +1 -0
  278. package/types/editor/menubar/VersionSelector.d.ts +5 -0
  279. package/types/editor/previewContext.d.ts +4 -0
  280. package/types/editor/services/aiService.d.ts +8 -0
  281. package/types/editor/services/componentDesignerService.d.ts +2 -0
  282. package/types/editor/{contentService.d.ts → services/contentService.d.ts} +2 -3
  283. package/types/editor/services/editService.d.ts +23 -0
  284. package/types/editor/services/serviceHelper.d.ts +7 -0
  285. package/types/editor/sidebar/ComponentPalette.d.ts +1 -0
  286. package/types/editor/sidebar/ComponentTree.d.ts +1 -0
  287. package/types/editor/sidebar/Debug.d.ts +1 -0
  288. package/types/editor/sidebar/EditHistory.d.ts +1 -0
  289. package/types/editor/sidebar/EditorForm.d.ts +1 -0
  290. package/types/editor/sidebar/GraphQL.d.ts +1 -0
  291. package/types/editor/sidebar/Insert.d.ts +1 -0
  292. package/types/editor/sidebar/MainContentTree.d.ts +3 -0
  293. package/types/editor/sidebar/Sessions.d.ts +1 -0
  294. package/types/editor/sidebar/Sidebar.d.ts +4 -0
  295. package/types/editor/sidebar/SidebarView.d.ts +8 -0
  296. package/types/editor/sidebar/Workbox.d.ts +1 -0
  297. package/types/editor/ui/CopyToClipboardButton.d.ts +3 -0
  298. package/types/editor/ui/Icons.d.ts +16 -0
  299. package/types/editor/{ItemNameDialog.d.ts → ui/ItemNameDialog.d.ts} +1 -0
  300. package/types/editor/utils/insertOptions.d.ts +3 -0
  301. package/types/editor/utils.d.ts +8 -0
  302. package/types/editor/views/ItemEditor.d.ts +1 -0
  303. package/types/fieldTypes.d.ts +39 -11
  304. package/types/graphQL.d.ts +12 -0
  305. package/types/index.d.ts +7 -4
  306. package/types/loadRouteData.d.ts +8 -85
  307. package/types/middleware/handleRequest.d.ts +5 -0
  308. package/types/middleware/index.d.ts +1 -1
  309. package/types/public.d.ts +12 -0
  310. package/types/renderContext.d.ts +41 -0
  311. package/types/renderings.d.ts +7 -0
  312. package/types/servertypes.d.ts +308 -0
  313. package/types/translate.d.ts +2 -0
  314. package/dist/cjs/alpacaContext.js +0 -12
  315. package/dist/cjs/client-components/ClientLink.js +0 -36
  316. package/dist/cjs/client-components/MultiComponentEditor.js +0 -26
  317. package/dist/cjs/client-components/index.js +0 -19
  318. package/dist/cjs/components/Error.js +0 -15
  319. package/dist/cjs/components/Link.js +0 -36
  320. package/dist/cjs/components/Picture.js +0 -124
  321. package/dist/cjs/components/PictureEditor.js +0 -49
  322. package/dist/cjs/components/Placeholder.js +0 -118
  323. package/dist/cjs/components/RichText.js +0 -47
  324. package/dist/cjs/components/RichTextEditor.js +0 -94
  325. package/dist/cjs/components/Slot.js +0 -8
  326. package/dist/cjs/components/Text.js +0 -46
  327. package/dist/cjs/components/TextEditor.js +0 -77
  328. package/dist/cjs/components/Translate.js +0 -14
  329. package/dist/cjs/components/TranslateEditor.js +0 -28
  330. package/dist/cjs/components/index.js +0 -23
  331. package/dist/cjs/editor/AiPopup.js +0 -33
  332. package/dist/cjs/editor/AiTerminal.js +0 -185
  333. package/dist/cjs/editor/ComponentInfo.js +0 -15
  334. package/dist/cjs/editor/ComponentPalette.js +0 -23
  335. package/dist/cjs/editor/ComponentTree.js +0 -217
  336. package/dist/cjs/editor/ConfirmationDialog.js +0 -31
  337. package/dist/cjs/editor/Debug.js +0 -26
  338. package/dist/cjs/editor/DialogButtons.js +0 -7
  339. package/dist/cjs/editor/DictionaryEditor.js +0 -41
  340. package/dist/cjs/editor/EditFrame.js +0 -129
  341. package/dist/cjs/editor/EditHistory.js +0 -43
  342. package/dist/cjs/editor/Editor.js +0 -27
  343. package/dist/cjs/editor/EditorClient.js +0 -753
  344. package/dist/cjs/editor/EditorClientHost.js +0 -37
  345. package/dist/cjs/editor/FieldList.js +0 -51
  346. package/dist/cjs/editor/FieldListField.js +0 -75
  347. package/dist/cjs/editor/GraphQL.js +0 -87
  348. package/dist/cjs/editor/ItemEditor.js +0 -9
  349. package/dist/cjs/editor/ItemInfo.js +0 -17
  350. package/dist/cjs/editor/ItemNameDialog.js +0 -37
  351. package/dist/cjs/editor/LanguageSelector.js +0 -21
  352. package/dist/cjs/editor/LinkEditorDialog.js +0 -67
  353. package/dist/cjs/editor/MainLayout.js +0 -24
  354. package/dist/cjs/editor/MediaSelector.js +0 -92
  355. package/dist/cjs/editor/PictureEditorDialog.js +0 -93
  356. package/dist/cjs/editor/PlaceholderDropZone.js +0 -93
  357. package/dist/cjs/editor/PlaceholderDropZoneHost.js +0 -37
  358. package/dist/cjs/editor/SidebarTabs.js +0 -47
  359. package/dist/cjs/editor/Terminal.js +0 -61
  360. package/dist/cjs/editor/Utils.js +0 -43
  361. package/dist/cjs/editor/VersionSelector.js +0 -21
  362. package/dist/cjs/editor/Workbox.js +0 -41
  363. package/dist/cjs/editor/componentCommands.js +0 -141
  364. package/dist/cjs/editor/componentTreeHelper.js +0 -18
  365. package/dist/cjs/editor/contentService.js +0 -80
  366. package/dist/cjs/editor/editContext.js +0 -40
  367. package/dist/cjs/editor/editService.js +0 -334
  368. package/dist/cjs/editor/fieldTypes/CheckboxEditor.js +0 -21
  369. package/dist/cjs/editor/fieldTypes/InternalLinkFieldEditor.js +0 -46
  370. package/dist/cjs/editor/fieldTypes/MultiLineText.js +0 -25
  371. package/dist/cjs/editor/fieldTypes/PictureFieldEditor.js +0 -19
  372. package/dist/cjs/editor/fieldTypes/RichTextEditor.js +0 -24
  373. package/dist/cjs/editor/fieldTypes/SingleLineText.js +0 -25
  374. package/dist/cjs/editor/fieldTypes/TreeListEditor.js +0 -59
  375. package/dist/cjs/editor/index.js +0 -18
  376. package/dist/cjs/editor/ui/Section.js +0 -8
  377. package/dist/cjs/fieldTypes.js +0 -2
  378. package/dist/cjs/graphQLTypes.js +0 -2
  379. package/dist/cjs/index.js +0 -36
  380. package/dist/cjs/layoutData.js +0 -2
  381. package/dist/cjs/middleware/authorization.js +0 -52
  382. package/dist/cjs/middleware/index.js +0 -17
  383. package/types/alpacaContext.d.ts +0 -25
  384. package/types/editor/AiTerminal.d.ts +0 -5
  385. package/types/editor/ComponentPalette.d.ts +0 -6
  386. package/types/editor/ComponentTree.d.ts +0 -5
  387. package/types/editor/Debug.d.ts +0 -6
  388. package/types/editor/EditHistory.d.ts +0 -4
  389. package/types/editor/Editor.d.ts +0 -6
  390. package/types/editor/GraphQL.d.ts +0 -5
  391. package/types/editor/ItemEditor.d.ts +0 -4
  392. package/types/editor/LanguageSelector.d.ts +0 -5
  393. package/types/editor/SidebarTabs.d.ts +0 -8
  394. package/types/editor/Utils.d.ts +0 -3
  395. package/types/editor/VersionSelector.d.ts +0 -5
  396. package/types/editor/Workbox.d.ts +0 -6
  397. package/types/editor/componentCommands.d.ts +0 -4
  398. package/types/editor/editService.d.ts +0 -20
  399. package/types/editor/index.d.ts +0 -2
  400. package/types/layoutData.d.ts +0 -92
  401. package/types/middleware/authorization.d.ts +0 -2
@@ -0,0 +1,29 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import "server-only";
14
+ import React from "react";
15
+ import { RichTextEditorWrapper } from "./RichTextEditorWrapper";
16
+ export function RichText(_a) {
17
+ var { field, tag, editable, context } = _a, props = __rest(_a, ["field", "tag", "editable", "context"]);
18
+ if (!field)
19
+ return;
20
+ if (field.jsonValue) {
21
+ field = field.jsonValue;
22
+ }
23
+ const internalProps = Object.assign(Object.assign({}, props), { dangerouslySetInnerHTML: {
24
+ __html: field.value,
25
+ } });
26
+ if (context.isEditing)
27
+ return (_jsx(RichTextEditorWrapper, Object.assign({ field: field, tag: tag }, props)));
28
+ return React.createElement(tag || "div", Object.assign(props, internalProps));
29
+ }
@@ -0,0 +1,92 @@
1
+ "use client";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import React, { useEffect, useState, useMemo, useCallback, useRef, } from "react";
15
+ import { useEditContext } from "../editor/editContext";
16
+ import { isFieldActionExecuting } from "../editor/utils";
17
+ import { getFieldContextMenu } from "../editor/ContextMenu";
18
+ import { LockedFieldIndicator } from "./LockedFieldIndicator";
19
+ export function RichTextEditor(_a) {
20
+ var _b, _c, _d, _e;
21
+ var { field, tag } = _a, props = __rest(_a, ["field", "tag"]);
22
+ const editContext = useEditContext();
23
+ const [value, setValue] = useState("");
24
+ const [editedValue, setEditedValue] = useState();
25
+ const ref = useRef(null);
26
+ if (!editContext)
27
+ return;
28
+ const { updateContentEditingFields } = editContext;
29
+ const liveField = editContext.getLiveField(field);
30
+ useEffect(() => {
31
+ if (!liveField)
32
+ return;
33
+ if (editedValue != liveField.value &&
34
+ "<p>" + editedValue + "</p>" != liveField.value) {
35
+ // console.log(
36
+ // "editedValue:" + editedValue + " liveField.value " + liveField.value
37
+ // );
38
+ setValue(liveField.value);
39
+ }
40
+ }, [liveField === null || liveField === void 0 ? void 0 : liveField.value]);
41
+ useEffect(() => {
42
+ if (!liveField)
43
+ return;
44
+ setValue(liveField.value); // Otherwise react would not update the field after the refresh
45
+ }, [updateContentEditingFields]);
46
+ useEffect(() => {
47
+ if (liveField) {
48
+ setValue(field.value);
49
+ liveField.value = field.value;
50
+ }
51
+ editContext.registerAsRenderedField(field);
52
+ }, [field]);
53
+ const setFieldValue = (val) => {
54
+ if (val != editedValue) {
55
+ setEditedValue(val);
56
+ if (editContext)
57
+ editContext.editField({ field, value: val, refresh: "none" });
58
+ }
59
+ };
60
+ const eventHandler = useCallback((e) => {
61
+ setFieldValue(e.currentTarget.innerHTML);
62
+ }, [editContext.editField]);
63
+ let className = (_b = props.className) !== null && _b !== void 0 ? _b : "";
64
+ className += " a-cursor-text";
65
+ if (isFieldActionExecuting(field, editContext))
66
+ className += " a-executing-action a-focus-shadow ";
67
+ const isLocked = (((_c = liveField._editor) === null || _c === void 0 ? void 0 : _c.lockedBy) &&
68
+ ((_e = (_d = liveField._editor) === null || _d === void 0 ? void 0 : _d.lockedBy) === null || _e === void 0 ? void 0 : _e.sessionId) != editContext.sessionId) ||
69
+ false;
70
+ const onContextMenu = getFieldContextMenu(field, editContext, []);
71
+ return useMemo(() => {
72
+ var _a, _b;
73
+ const properies = Object.assign(Object.assign({}, props), { className, contentEditable: ((_a = field._editor) === null || _a === void 0 ? void 0 : _a.canWrite) && !isLocked, suppressContentEditableWarning: true, onInput: eventHandler, placeholder: "[" + ((_b = field._editor) === null || _b === void 0 ? void 0 : _b.name) + "]", dangerouslySetInnerHTML: {
74
+ __html: value,
75
+ }, onFocus: () => {
76
+ var _a;
77
+ editContext.setFocusedField((_a = field._editor) === null || _a === void 0 ? void 0 : _a.descriptor, true);
78
+ }, onBlur: () => {
79
+ editContext.setFocusedField(undefined, false);
80
+ }, onClick: () => {
81
+ var _a, _b, _c;
82
+ if (!((_a = field._editor) === null || _a === void 0 ? void 0 : _a.canWrite) || !((_b = field._editor) === null || _b === void 0 ? void 0 : _b.hasLock))
83
+ editContext.setFocusedField((_c = field._editor) === null || _c === void 0 ? void 0 : _c.descriptor, true);
84
+ }, onContextMenu,
85
+ ref });
86
+ const element = React.createElement(tag || "div", properies);
87
+ if (isLocked) {
88
+ return (_jsxs(_Fragment, { children: [_jsx(LockedFieldIndicator, { field: liveField, elementRef: ref }), " ", element] }));
89
+ }
90
+ return element;
91
+ }, [value, className, isLocked, ref]);
92
+ }
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import dynamic from "next/dynamic";
4
+ const RichTextEditor = dynamic(() => import("./RichTextEditor").then((dnd) => dnd.RichTextEditor), { ssr: false });
5
+ export function RichTextEditorWrapper(props) {
6
+ return _jsx(RichTextEditor, Object.assign({}, props));
7
+ }
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import "server-only";
3
+ import { Placeholder } from "./Placeholder";
4
+ export default function Section({ component, context, }) {
5
+ return (_jsx(_Fragment, { children: _jsx(Placeholder, { name: "ph-slot-content", content: component, context: context }) }));
6
+ }
@@ -0,0 +1,28 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import "server-only";
14
+ import React from "react";
15
+ import { TextEditorWrapper } from "./TextEditorWrapper";
16
+ export function Text(_a) {
17
+ var { field, tag, editable, context } = _a, props = __rest(_a, ["field", "tag", "editable", "context"]);
18
+ if (!field)
19
+ return;
20
+ if (field.jsonValue) {
21
+ field = field.jsonValue;
22
+ }
23
+ if (context.isEditing) {
24
+ return (_jsx("div", { children: _jsx(TextEditorWrapper, Object.assign({ field: field, tag: tag }, props)) }));
25
+ }
26
+ else
27
+ return React.createElement(tag || "div", props, field.value);
28
+ }
@@ -0,0 +1,78 @@
1
+ "use client";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import React, { useEffect, useRef, useState } from "react";
15
+ import { useEditContext } from "../editor/editContext";
16
+ import { isFieldActionExecuting } from "../editor/utils";
17
+ import { getFieldContextMenu } from "../editor/ContextMenu";
18
+ import { LockedFieldIndicator } from "./LockedFieldIndicator";
19
+ export function TextEditor(_a) {
20
+ var _b, _c, _d, _e, _f, _g;
21
+ var { field, tag } = _a, props = __rest(_a, ["field", "tag"]);
22
+ const editContext = useEditContext();
23
+ const [value, setValue] = useState("");
24
+ const [editedValue, setEditedValue] = useState();
25
+ const ref = useRef(null);
26
+ if (!editContext)
27
+ return;
28
+ const { updateContentEditingFields } = editContext;
29
+ const liveField = editContext.getLiveField(field);
30
+ useEffect(() => {
31
+ if (!liveField)
32
+ return;
33
+ if (editedValue != liveField.value)
34
+ setValue(liveField.value);
35
+ }, [liveField === null || liveField === void 0 ? void 0 : liveField.value]);
36
+ useEffect(() => {
37
+ if (liveField) {
38
+ setValue(field.value);
39
+ liveField.value = field.value;
40
+ }
41
+ editContext.registerAsRenderedField(field);
42
+ }, [field]);
43
+ useEffect(() => {
44
+ if (!liveField)
45
+ return;
46
+ setValue(liveField.value); // Otherwise react would not update the field after the refresh
47
+ }, [updateContentEditingFields]);
48
+ let className = (_b = props.className) !== null && _b !== void 0 ? _b : "";
49
+ className += " a-cursor-text";
50
+ if (isFieldActionExecuting(field, editContext)) {
51
+ className += " a-executing-action a-focus-shadow ";
52
+ }
53
+ const onContextMenu = getFieldContextMenu(field, editContext, []);
54
+ const isLocked = (((_c = liveField._editor) === null || _c === void 0 ? void 0 : _c.lockedBy) &&
55
+ ((_e = (_d = liveField._editor) === null || _d === void 0 ? void 0 : _d.lockedBy) === null || _e === void 0 ? void 0 : _e.sessionId) != editContext.sessionId) ||
56
+ false;
57
+ const properies = Object.assign(Object.assign({}, props), { className, contentEditable: ((_f = field._editor) === null || _f === void 0 ? void 0 : _f.canWrite) && !isLocked, suppressContentEditableWarning: true, onInput: (e) => setFieldValue(e.currentTarget.textContent), placeholder: "[" + ((_g = field._editor) === null || _g === void 0 ? void 0 : _g.name) + "]", onFocus: () => {
58
+ var _a;
59
+ editContext.setFocusedField((_a = field._editor) === null || _a === void 0 ? void 0 : _a.descriptor, true);
60
+ }, onBlur: () => {
61
+ editContext.setFocusedField(undefined, false);
62
+ }, onClick: () => {
63
+ var _a, _b, _c;
64
+ if (!((_a = field._editor) === null || _a === void 0 ? void 0 : _a.canWrite) || !((_b = field._editor) === null || _b === void 0 ? void 0 : _b.hasLock))
65
+ editContext.setFocusedField((_c = field._editor) === null || _c === void 0 ? void 0 : _c.descriptor, true);
66
+ }, ref,
67
+ onContextMenu });
68
+ const setFieldValue = (val) => {
69
+ setEditedValue(val);
70
+ if (editContext)
71
+ editContext.editField({ field, value: val, refresh: "none" });
72
+ };
73
+ const element = React.createElement(tag || "div", properies, value);
74
+ if (isLocked) {
75
+ return (_jsxs(_Fragment, { children: [_jsx(LockedFieldIndicator, { elementRef: ref, field: liveField }), " ", element] }));
76
+ }
77
+ return element;
78
+ }
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import dynamic from "next/dynamic";
15
+ const TextEditor = dynamic(() => import("./TextEditor").then((dnd) => dnd.TextEditor), { ssr: false });
16
+ export function TextEditorWrapper(_a) {
17
+ var { field, tag } = _a, props = __rest(_a, ["field", "tag"]);
18
+ return _jsx(TextEditor, Object.assign({ field: field, tag: tag }, props));
19
+ }
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import "server-only";
3
+ import { TranslateEditorWrapper } from "./TranslateEditorWrapper";
4
+ export function Translate({ text, context, }) {
5
+ const dictionary = context.dictionary;
6
+ if (context.isEditing)
7
+ return _jsx(TranslateEditorWrapper, { text: text });
8
+ return dictionary[text] || text;
9
+ }
@@ -0,0 +1,24 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useEffect } from "react";
4
+ import { useEditContext } from "../editor/editContext";
5
+ import { TextEditor } from "./TextEditor";
6
+ export function TranslateEditor({ text }) {
7
+ const context = useEditContext();
8
+ if (!context || !context.dictionary)
9
+ return text;
10
+ const dictionary = context.dictionary;
11
+ useEffect(() => {
12
+ if (Object.keys(dictionary).indexOf(text) < 0 &&
13
+ context.unresolvedDictionaryKeys.indexOf(text) < 0) {
14
+ context.setUnresolvedDictionaryKeys([
15
+ ...context.unresolvedDictionaryKeys,
16
+ text,
17
+ ]);
18
+ }
19
+ }, []);
20
+ if (dictionary[text]) {
21
+ return _jsx(TextEditor, { field: dictionary[text] });
22
+ }
23
+ return (_jsx("span", { className: "a-p-1 a-ring-2 a-ring-red-500", onClick: () => console.log("create dictionary entry"), children: text }));
24
+ }
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import dynamic from "next/dynamic";
4
+ const TranslateEditor = dynamic(() => import("./TranslateEditor").then((dnd) => dnd.TranslateEditor), { ssr: false });
5
+ export function TranslateEditorWrapper({ text }) {
6
+ return _jsx(TranslateEditor, { text: text });
7
+ }
@@ -0,0 +1,7 @@
1
+ export * from "./Placeholder";
2
+ export * from "./Text";
3
+ export * from "./Picture";
4
+ export * from "./RichText";
5
+ export * from "./Image";
6
+ export * from "./Link";
7
+ export * from "./Translate";
@@ -0,0 +1,26 @@
1
+ export function getRenderedPictureVariant(params, variants) {
2
+ var _a, _b;
3
+ const variantName = (_a = params.variant) !== null && _a !== void 0 ? _a : "auto";
4
+ const variant = variantName.toLocaleLowerCase() === "auto" && params.aspectRatio
5
+ ? getBestMatchingVariant(variants, params.aspectRatio)
6
+ : (_b = variants.find((v) => v.name.toLowerCase() == variantName.toLowerCase())) !== null && _b !== void 0 ? _b : variants[0];
7
+ return variant;
8
+ }
9
+ export function getBestMatchingVariant(variants, aspectRatio) {
10
+ var _a;
11
+ if (!aspectRatio)
12
+ return ((_a = variants.find((v) => v.name.toLowerCase() == "default")) !== null && _a !== void 0 ? _a : variants[0]);
13
+ let minDistance = 1000000;
14
+ let bestMatch = undefined;
15
+ for (let i = 0; i < variants.length; i++) {
16
+ const variant = variants[i];
17
+ if (!variant.src)
18
+ continue;
19
+ const distance = Math.abs(aspectRatio - variant.aspectRatio);
20
+ if (distance < minDistance) {
21
+ minDistance = distance;
22
+ bestMatch = variant;
23
+ }
24
+ }
25
+ return bestMatch !== null && bestMatch !== void 0 ? bestMatch : variants[0];
26
+ }
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { CopyToClipboardButton } from "./ui/CopyToClipboardButton";
4
+ import { Section } from "./ui/Section";
5
+ export function ComponentInfo({ component, }) {
6
+ var _a;
7
+ if (!(component === null || component === void 0 ? void 0 : component.fields))
8
+ return;
9
+ const hostingPageItem = component._editor.hostingPageItem ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "a-font-bold", children: "Source:" }), _jsxs("div", { children: [component._editor.hostingPageItem.path, " (ID:", " ", component._editor.hostingPageItem.id, ")"] })] })) : null;
10
+ const linkedComponent = component._editor.linkedComponentItem ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "a-font-bold", children: "Source:" }), _jsxs("div", { children: [component._editor.linkedComponentItem.path, " (", component._editor.linkedComponentItem.id, ")"] })] })) : null;
11
+ return (_jsxs("div", { children: [_jsx("h2", { className: "a-py-3 a-px-3 a-text-l a-font-bold a-my-2", children: component.name }), _jsx(Section, { title: "Info", children: _jsxs("div", { className: "a-grid a-grid-cols-[min-content_1fr] a-gap-3 a-text-xs a-bg-gray-100", children: [_jsx("div", { className: "a-font-bold", children: "ID:" }), _jsxs("div", { children: [component.id, " ", _jsx(CopyToClipboardButton, { text: component.id })] }), _jsx("div", { className: "a-font-bold", children: "Template" }), _jsxs("div", { children: [component.componentType, " (", component.templateId, _jsx(CopyToClipboardButton, { text: component.templateId }), ")"] }), _jsx("div", { className: "a-font-bold", children: "Languages" }), _jsx("div", { children: (_a = component._editor.translations) === null || _a === void 0 ? void 0 : _a.join(", ") }), hostingPageItem, linkedComponent] }) })] }));
12
+ }
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, forwardRef, useImperativeHandle } from "react";
3
+ import { Dialog } from "primereact/dialog";
4
+ import { Button } from "primereact/button";
5
+ const ConfirmationDialog = forwardRef((_props, ref) => {
6
+ const [visible, setVisible] = useState(false);
7
+ const [props, setProps] = useState();
8
+ useImperativeHandle(ref, () => ({
9
+ confirm: (props) => {
10
+ setVisible(true);
11
+ setProps(props);
12
+ },
13
+ }));
14
+ const handleAccept = () => {
15
+ props === null || props === void 0 ? void 0 : props.accept();
16
+ setVisible(false);
17
+ };
18
+ const handleReject = () => {
19
+ if (props === null || props === void 0 ? void 0 : props.reject)
20
+ props.reject();
21
+ setVisible(false);
22
+ };
23
+ const handleCancel = () => {
24
+ setVisible(false);
25
+ };
26
+ const dialogFooter = (_jsxs("div", { children: [_jsx(Button, { label: (props === null || props === void 0 ? void 0 : props.acceptLabel) || "Yes", icon: (props === null || props === void 0 ? void 0 : props.acceptIcon) || "pi pi-check", onClick: handleAccept, className: "p-button-text" }), (props === null || props === void 0 ? void 0 : props.rejectLabel) && (_jsx(Button, { label: props === null || props === void 0 ? void 0 : props.rejectLabel, icon: (props === null || props === void 0 ? void 0 : props.rejectIcon) || "pi pi-times", onClick: handleReject, className: "p-button-text" })), (props === null || props === void 0 ? void 0 : props.showCancel) && (_jsx(Button, { label: "Cancel", icon: "pi pi-ban", onClick: handleCancel, className: "p-button-text" }))] }));
27
+ return (_jsx(Dialog, { header: (props === null || props === void 0 ? void 0 : props.header) || "Confirm", visible: visible, style: { width: "50vw" }, footer: dialogFooter, onHide: handleCancel, children: _jsxs("div", { className: "a-pt-3 a-flex a-items-center a-gap-2", children: [(props === null || props === void 0 ? void 0 : props.icon) && _jsx("i", { className: props.icon + " a-text-3xl" }), props === null || props === void 0 ? void 0 : props.message] }) }));
28
+ });
29
+ export default ConfirmationDialog;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  "use client";
3
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -9,29 +8,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
10
9
  });
11
10
  };
12
- var __importDefault = (this && this.__importDefault) || function (mod) {
13
- return (mod && mod.__esModule) ? mod : { "default": mod };
14
- };
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- const jsx_runtime_1 = require("react/jsx-runtime");
17
- const progressspinner_1 = require("primereact/progressspinner");
18
- const __1 = require("..");
19
- const tree_1 = require("primereact/tree");
20
- const react_1 = require("react");
21
- const contentService_1 = require("./contentService");
22
- const contextmenu_1 = require("primereact/contextmenu");
23
- const editService_1 = require("./editService");
24
- const ItemNameDialog_1 = __importDefault(require("./ItemNameDialog"));
25
- function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionMode, selectedItemIds, rootItemId, onSelectionChange, filter, templateIds, className, includeEmbeddedItems, onDoubleClick, secondarySelectedItemId, }) {
26
- const [treeNodes, setTreeNodes] = (0, react_1.useState)([]);
27
- const [selectedKeys, setSelectedKeys] = (0, react_1.useState)();
28
- const [expandedKeys, setExpandedKeys] = (0, react_1.useState)();
29
- const treeContainerRef = (0, react_1.useRef)(null);
30
- const editContext = (0, __1.useEditContext)();
31
- const [selectedNodeScrolledIntoView, setSelectedNodeScrolledIntoView] = (0, react_1.useState)(false);
32
- const cm = (0, react_1.useRef)(null);
33
- const [menu, setMenu] = (0, react_1.useState)([]);
34
- const itemNameDialogRef = (0, react_1.useRef)(null);
11
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
12
+ import { ProgressSpinner } from "primereact/progressspinner";
13
+ import { useEditContext } from "./editContext";
14
+ import { Tree, } from "primereact/tree";
15
+ import { useEffect, useRef, useState } from "react";
16
+ import { getChildren } from "./services/contentService";
17
+ import { ContextMenu } from "primereact/contextmenu";
18
+ import { createItem, loadInsertOptions } from "./services/editService";
19
+ import ItemNameDialog from "./ui/ItemNameDialog";
20
+ import { getDeleteItemCommand } from "./itemCommands";
21
+ export default function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionMode, selectedItemIds, rootItemId, onSelectionChange, filter, templateIds, className, includeEmbeddedItems, onDoubleClick, secondarySelectedItemId, selectPagesOnly, }) {
22
+ const [treeNodes, setTreeNodes] = useState([]);
23
+ const [selectedKeys, setSelectedKeys] = useState();
24
+ const [expandedKeys, setExpandedKeys] = useState();
25
+ const treeContainerRef = useRef(null);
26
+ const editContext = useEditContext();
27
+ const [selectedNodeScrolledIntoView, setSelectedNodeScrolledIntoView] = useState(false);
28
+ const cm = useRef(null);
29
+ const [menu, setMenu] = useState([]);
30
+ const itemNameDialogRef = useRef(null);
35
31
  const loadOnExpand = (event) => __awaiter(this, void 0, void 0, function* () {
36
32
  const node = event.node;
37
33
  yield loadChildren(node);
@@ -40,7 +36,7 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
40
36
  return __awaiter(this, void 0, void 0, function* () {
41
37
  if (!node.children) {
42
38
  node.loading = true;
43
- const nodes = yield loadNodeChildren(node.key);
39
+ const nodes = yield loadNodeChildren(node);
44
40
  node.children = nodes;
45
41
  let value = [...treeNodes];
46
42
  setTreeNodes(value);
@@ -52,10 +48,10 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
52
48
  node.children = undefined;
53
49
  loadChildren(node);
54
50
  }
55
- const loadNodeChildren = (id) => __awaiter(this, void 0, void 0, function* () {
51
+ const loadNodeChildren = (node) => __awaiter(this, void 0, void 0, function* () {
56
52
  if (!editContext)
57
53
  return [];
58
- let children = yield (0, contentService_1.getChildren)(id, editContext.sessionId, templateIds, includeEmbeddedItems !== null && includeEmbeddedItems !== void 0 ? includeEmbeddedItems : false);
54
+ let children = yield getChildren(node.key, editContext.sessionId, templateIds, includeEmbeddedItems !== null && includeEmbeddedItems !== void 0 ? includeEmbeddedItems : false);
59
55
  if (filter)
60
56
  children = filter(children);
61
57
  return children.map((x) => ({
@@ -63,11 +59,13 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
63
59
  label: x.name,
64
60
  iconUrl: x.icon,
65
61
  isDraggable: isDraggable && isDraggable(x),
62
+ selectable: !selectPagesOnly || x.hasLayout,
66
63
  data: x,
67
64
  leaf: !x.hasChildren,
65
+ parent: node,
68
66
  }));
69
67
  });
70
- (0, react_1.useEffect)(() => {
68
+ useEffect(() => {
71
69
  const newExpandedKeys = getExpandedKeys();
72
70
  setExpandedKeys(newExpandedKeys);
73
71
  preLoadNodes(newExpandedKeys);
@@ -87,7 +85,7 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
87
85
  }
88
86
  function preLoadNodes(expandedKeys) {
89
87
  return __awaiter(this, void 0, void 0, function* () {
90
- const rootNodes = yield loadNodeChildren(rootItemId);
88
+ const rootNodes = yield loadNodeChildren({ key: rootItemId });
91
89
  yield doPreloadNodes(expandedKeys, rootNodes);
92
90
  setExpandedKeys(Object.assign({}, expandedKeys));
93
91
  setTreeNodes([...rootNodes]);
@@ -97,7 +95,7 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
97
95
  return __awaiter(this, void 0, void 0, function* () {
98
96
  for (let i = 0; i < treeNodes.length; i++) {
99
97
  if (expandedKeys[treeNodes[i].key]) {
100
- const children = yield loadNodeChildren(treeNodes[i].key);
98
+ const children = yield loadNodeChildren(treeNodes[i]);
101
99
  treeNodes[i].children = children;
102
100
  yield doPreloadNodes(expandedKeys, children);
103
101
  }
@@ -115,13 +113,18 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
115
113
  });
116
114
  }
117
115
  const nodeTemplate = (node, options) => {
118
- let label = (0, jsx_runtime_1.jsx)("span", { children: node.label });
116
+ let label = _jsx("span", { children: node.label });
119
117
  if (node.url) {
120
- label = ((0, jsx_runtime_1.jsx)("a", { onDragStart: (e) => e.preventDefault(), href: node.url, className: "a-text-primary hover:a-underline a-font-semibold", children: node.label }));
118
+ label = (_jsx("a", { onDragStart: (e) => e.preventDefault(), href: node.url, className: "a-text-primary hover:a-underline a-font-semibold", children: node.label }));
121
119
  }
122
- return ((0, jsx_runtime_1.jsxs)("span", { onDragStart: (event) => {
120
+ const getNodeCursor = (node) => {
121
+ if (node.isDraggable)
122
+ return "a-cursor-grab";
123
+ return "";
124
+ };
125
+ return (_jsxs("span", { onDragStart: (event) => {
123
126
  handleDragStart(event, node.data);
124
- }, onDragEnd: handleDragEnd, draggable: node.isDraggable, className: `a-flex a-items-center a-gap-2 ${node.isDraggable ? "a-cursor-grab" : ""} ${options.className} ${node.data.id == secondarySelectedItemId ? "a-selected-secondary" : ""}`, children: [(0, jsx_runtime_1.jsx)("img", { src: node.iconUrl, style: { height: "20px" }, width: "20", height: "20", onDragStart: (e) => e.preventDefault() }), label, node.loading && ((0, jsx_runtime_1.jsx)(progressspinner_1.ProgressSpinner, { style: { width: "20px", height: "20px" } }))] }));
127
+ }, onDragEnd: handleDragEnd, draggable: node.isDraggable, className: `a-flex a-items-center a-gap-2 ${getNodeCursor(node)} ${options.className} ${node.data.id == secondarySelectedItemId ? "a-selected-secondary" : ""}`, children: [_jsx("img", { src: node.iconUrl, style: { height: "16px" }, width: "16", height: "16", onDragStart: (e) => e.preventDefault() }), label, node.loading && (_jsx(ProgressSpinner, { style: { width: "20px", height: "20px" } }))] }));
125
128
  };
126
129
  function handleDragStart(event, item) {
127
130
  if (dragStart)
@@ -132,7 +135,7 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
132
135
  if (dragEnd)
133
136
  dragEnd();
134
137
  }
135
- (0, react_1.useEffect)(() => {
138
+ useEffect(() => {
136
139
  const newSelectedKeys = {};
137
140
  selectedItemIds === null || selectedItemIds === void 0 ? void 0 : selectedItemIds.forEach((x) => {
138
141
  if (x.startsWith("{") && x.endsWith("}") && x.length > 2)
@@ -146,7 +149,7 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
146
149
  else
147
150
  setSelectedKeys(newSelectedKeys);
148
151
  }, [selectedItemIds]);
149
- (0, react_1.useEffect)(() => {
152
+ useEffect(() => {
150
153
  const scrollNodeIntoView = () => {
151
154
  if (!treeContainerRef.current)
152
155
  return;
@@ -167,16 +170,16 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
167
170
  var _a;
168
171
  (_a = itemNameDialogRef.current) === null || _a === void 0 ? void 0 : _a.show({
169
172
  accept: (name) => __awaiter(this, void 0, void 0, function* () {
170
- yield (0, editService_1.createItem)(parent, templateId, name);
173
+ yield createItem(parent, templateId, name);
171
174
  editContext === null || editContext === void 0 ? void 0 : editContext.requestRefresh("immediate");
172
175
  node.expanded = true;
173
176
  refreshNode(node);
174
177
  }),
175
178
  });
176
179
  }
177
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ItemNameDialog_1.default, { ref: itemNameDialogRef }), (0, jsx_runtime_1.jsx)(contextmenu_1.ContextMenu, { model: menu, ref: cm, className: "a-text-sm" }), (0, jsx_runtime_1.jsx)("div", { className: className, onDragEnterCapture: (ev) => ev.stopPropagation(), onDragOverCapture: (ev) => ev.stopPropagation(), onDragLeaveCapture: (ev) => ev.stopPropagation(), ref: treeContainerRef, children: (0, jsx_runtime_1.jsx)(tree_1.Tree, { value: treeNodes, expandedKeys: expandedKeys, onToggle: (e) => setExpandedKeys(e.value), nodeTemplate: nodeTemplate,
180
+ return (_jsxs(_Fragment, { children: [_jsx(ItemNameDialog, { ref: itemNameDialogRef }), _jsx(ContextMenu, { model: menu, ref: cm, className: "a-text-sm" }), _jsx("div", { className: className, onDragEnterCapture: (ev) => ev.stopPropagation(), onDragOverCapture: (ev) => ev.stopPropagation(), onDragLeaveCapture: (ev) => ev.stopPropagation(), ref: treeContainerRef, children: _jsx(Tree, { value: treeNodes, expandedKeys: expandedKeys, onToggle: (e) => setExpandedKeys(e.value), nodeTemplate: nodeTemplate,
178
181
  //dragdropScope={isDraggable ? "alpaca" : undefined}
179
- className: "a-w-full a-h-full alpaca-no-border a-p-0 a-text-xs", onExpand: loadOnExpand, selectionMode: selectionMode, pt: { container: { className: "a-h-full" } }, onNodeDoubleClick: (e) => {
182
+ className: "a-w-full a-h-full alpaca-no-border a-p-0 a-text-xs", onExpand: loadOnExpand, selectionMode: selectionMode == "none" ? undefined : selectionMode, pt: { container: { className: "a-h-full" } }, onNodeDoubleClick: (e) => {
180
183
  onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e.node.data);
181
184
  }, onSelectionChange: (ev) => {
182
185
  if (onSelectionChange && selectionMode == "multiple") {
@@ -190,26 +193,38 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
190
193
  onSelectionChange(nodeDictionary[ev.value].data);
191
194
  }
192
195
  }, selectionKeys: selectedKeys, onContextMenu: (e) => __awaiter(this, void 0, void 0, function* () {
193
- var _a;
196
+ var _a, _b;
194
197
  e.originalEvent.preventDefault();
195
198
  const item = e.node.data;
196
- var insertOptions = yield (0, editService_1.loadInsertOptions)(item);
197
- setMenu([
199
+ const insertOptions = yield loadInsertOptions(item);
200
+ const contextMenuItems = [
198
201
  {
199
202
  label: "Insert",
200
203
  disabled: insertOptions.length == 0,
204
+ icon: "pi pi-plus",
201
205
  items: insertOptions.length === 0
202
206
  ? undefined
203
207
  : insertOptions.map((x) => ({
204
208
  label: x.name,
205
- icon: ((0, jsx_runtime_1.jsx)("img", { className: "p-menuitem-icon", src: x.icon, style: { height: "16px" }, width: "16", height: "16", onDragStart: (e) => e.preventDefault() })),
209
+ icon: (_jsx("img", { className: "p-menuitem-icon", src: x.icon, style: { height: "16px" }, width: "16", height: "16", onDragStart: (e) => e.preventDefault() })),
206
210
  command: () => {
207
211
  insertItem(e.node, item, x.id);
208
212
  },
209
213
  })),
210
214
  },
211
- ]);
212
- (_a = cm.current) === null || _a === void 0 ? void 0 : _a.show(e.originalEvent);
215
+ {
216
+ label: "Delete",
217
+ icon: "pi pi-trash",
218
+ command: getDeleteItemCommand(item, editContext, () => {
219
+ const parent = e.node.parent;
220
+ if (parent) {
221
+ refreshNode(parent);
222
+ }
223
+ }),
224
+ disabled: item.id == ((_a = editContext === null || editContext === void 0 ? void 0 : editContext.page) === null || _a === void 0 ? void 0 : _a.id),
225
+ },
226
+ ];
227
+ setMenu(contextMenuItems);
228
+ (_b = cm.current) === null || _b === void 0 ? void 0 : _b.show(e.originalEvent);
213
229
  }) }) })] }));
214
230
  }
215
- exports.default = ContentTree;