@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,15 @@
1
+ "use client";
2
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
3
+ import dynamic from "next/dynamic";
4
+ import { configuration } from "./config/config";
5
+ const EditorClient = dynamic(() => import("./EditorClient").then((dnd) => dnd.EditorClient), { ssr: false });
6
+ export function EditorClientHost({ context, clientBuilder, children, }) {
7
+ const ClientBuilder = clientBuilder;
8
+ const buildClient = (configuration) => {
9
+ return (_jsx(EditorClient, { context: context, configuration: configuration, children: _jsx(_Fragment, { children: children }) }));
10
+ };
11
+ if (!ClientBuilder)
12
+ return buildClient(configuration);
13
+ else
14
+ return (_jsx(ClientBuilder, { configuration: configuration, buildClient: buildClient }));
15
+ }
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { classNames } from "primereact/utils";
3
+ export function EditorWarning({ title, severity = "warning", children, }) {
4
+ const background = severity === "info"
5
+ ? "a-bg-blue-100"
6
+ : severity === "error"
7
+ ? "a-bg-red-100"
8
+ : "a-bg-yellow-100";
9
+ return (_jsxs("div", { className: classNames(background, "a-p-2 a-text-sm a-text-gray-500 a-border-b a-border-yellow-300"), children: [_jsx("div", { className: "a-font-bold", children: title }), _jsx("div", { className: "a-text-xs", children: children })] }));
10
+ }
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { useEditContext } from "./editContext";
4
+ export function EditorWarnings({ item: Item, }) {
5
+ var context = useEditContext();
6
+ if (!context)
7
+ return;
8
+ return (_jsx("div", { children: context.configuration.editorWarnings.map((x, i) => React.createElement(x, {
9
+ item: Item,
10
+ key: "warning" + i,
11
+ editContext: context,
12
+ })) }));
13
+ }
@@ -0,0 +1,23 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { OverlayPanel } from "primereact/overlaypanel";
4
+ import { forwardRef, useImperativeHandle, useRef, useState, } from "react";
5
+ import { FieldList } from "./FieldList";
6
+ export const FieldEditorPopup = forwardRef((_, ref) => {
7
+ const overlayRef = useRef(null);
8
+ const [fields, setFields] = useState();
9
+ const [sections, setSections] = useState([]);
10
+ useImperativeHandle(ref, () => ({
11
+ show: (fields, sections, ev) => {
12
+ var _a;
13
+ setFields(fields);
14
+ setSections(sections);
15
+ (_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.toggle(ev);
16
+ },
17
+ close: () => {
18
+ var _a;
19
+ (_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.hide();
20
+ },
21
+ }));
22
+ return (_jsx(OverlayPanel, { ref: overlayRef, children: _jsxs("div", { className: "a-w-96 a-h-96 a-flex a-flex-col a-gap-2 a-overflow-auto", onClick: (ev) => ev.stopPropagation(), children: [_jsx("div", { className: "a-flex a-justify-end", children: _jsx("i", { className: "pi pi-times a-cursor-pointer", onClick: () => { var _a; return (_a = overlayRef === null || overlayRef === void 0 ? void 0 : overlayRef.current) === null || _a === void 0 ? void 0 : _a.hide(); } }) }), fields && (_jsx(FieldList, { fields: fields, sections: sections, validators: [] }))] }) }));
23
+ });
@@ -0,0 +1,48 @@
1
+ "use client";
2
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
3
+ import { useEffect, useState } from "react";
4
+ import { Section } from "./ui/Section";
5
+ import { useEditContext } from "./editContext";
6
+ import { FieldListFieldWithFallbacks } from "./FieldListFieldWithFallbacks";
7
+ export function FieldList({ fields, sections, validators, filter, simplified, }) {
8
+ const editContext = useEditContext();
9
+ const [liveFields, setLiveFields] = useState();
10
+ if (!editContext)
11
+ return;
12
+ if (!fields)
13
+ return;
14
+ let fieldsArray = Array.isArray(fields)
15
+ ? fields
16
+ : Object.values(fields);
17
+ if (filter)
18
+ fieldsArray = fieldsArray.filter(filter);
19
+ useEffect(() => {
20
+ if (!editContext)
21
+ return;
22
+ setLiveFields(fieldsArray.map((x) => x._editor.type === "rich text" || x._editor.type === "text"
23
+ ? editContext.getLiveField(x)
24
+ : x));
25
+ }, [fields]);
26
+ if (!liveFields)
27
+ return _jsx(_Fragment, {});
28
+ const sectionsGrouping = liveFields.reduce((acc, value) => {
29
+ var _a, _b, _c;
30
+ // Group initialization
31
+ if (!acc[((_a = value._editor) === null || _a === void 0 ? void 0 : _a.section) || "Default"]) {
32
+ acc[((_b = value._editor) === null || _b === void 0 ? void 0 : _b.section) || "Default"] = [];
33
+ }
34
+ // Grouping
35
+ acc[((_c = value._editor) === null || _c === void 0 ? void 0 : _c.section) || "Default"].push(value);
36
+ return acc;
37
+ }, {});
38
+ const sectionList = Object.values(sectionsGrouping);
39
+ sectionList.sort((a, b) => a[0]._editor.sectionSortOrder - b[0]._editor.sectionSortOrder);
40
+ function getSectionFields(fields) {
41
+ fields.sort((a, b) => a.sortOrder - b.sortOrder);
42
+ return fields.map((field) => (_jsx(FieldListFieldWithFallbacks, { field: field, simplified: simplified, validators: validators.filter((x) => x.fieldId === field.id) }, field.id)));
43
+ }
44
+ return (_jsx("div", { className: "a-h-fill-available", children: sectionList
45
+ .map((x) => { var _a; return (_a = x[0]._editor) === null || _a === void 0 ? void 0 : _a.section; })
46
+ .filter((x) => !sections || sections.includes(x))
47
+ .map((section) => simplified ? (getSectionFields(sectionsGrouping[section])) : (_jsx(Section, { title: section, children: getSectionFields(sectionsGrouping[section]) }, section))) }));
48
+ }
@@ -0,0 +1,86 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
+ import { Tooltip } from "primereact/tooltip";
12
+ import { useEditContext } from "./editContext";
13
+ import { useRef, useState } from "react";
14
+ import { WizardIcon } from "./ui/Icons";
15
+ import { OverlayPanel } from "primereact/overlaypanel";
16
+ export default function FieldListField({ field, validators, simplified, title, isFocusedField, showFallbackButton, }) {
17
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
18
+ const editContext = useEditContext();
19
+ if (!editContext)
20
+ return;
21
+ const fieldItem = field._editor.descriptor.item;
22
+ const [showRawValue, setShowRawValue] = useState(false);
23
+ const generatorsOverlay = useRef(null);
24
+ const liveField = editContext.getLiveField(field);
25
+ function editButtonClicked(x) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ editContext === null || editContext === void 0 ? void 0 : editContext.triggerFieldAction(field, x);
28
+ });
29
+ }
30
+ let classNames = " a-flex a-items-stretch";
31
+ if (isFocusedField)
32
+ classNames += " a-focused-field ";
33
+ let validationBarClassNames = undefined;
34
+ if (validators.find((x) => x.result > 1))
35
+ validationBarClassNames = " a-pl-2 a-border-l-4 a-border-red-500";
36
+ const executingAction = editContext.activeFieldActions.find((x) => {
37
+ var _a, _b, _c, _d, _e, _f;
38
+ return x.field.id == field.id &&
39
+ ((_b = (_a = x.field._editor) === null || _a === void 0 ? void 0 : _a.descriptor.item) === null || _b === void 0 ? void 0 : _b.id) == fieldItem.id &&
40
+ ((_d = (_c = x.field._editor) === null || _c === void 0 ? void 0 : _c.descriptor.item) === null || _d === void 0 ? void 0 : _d.language) == fieldItem.language &&
41
+ ((_f = (_e = x.field._editor) === null || _e === void 0 ? void 0 : _e.descriptor.item) === null || _f === void 0 ? void 0 : _f.version) == fieldItem.version;
42
+ });
43
+ if ((executingAction === null || executingAction === void 0 ? void 0 : executingAction.state) == "running")
44
+ classNames += " a-executing-action ";
45
+ const isLocked = (((_a = liveField._editor) === null || _a === void 0 ? void 0 : _a.lockedBy) &&
46
+ ((_c = (_b = liveField._editor) === null || _b === void 0 ? void 0 : _b.lockedBy) === null || _c === void 0 ? void 0 : _c.sessionId) != editContext.sessionId) ||
47
+ false;
48
+ const isReadOnly = !((_d = field._editor) === null || _d === void 0 ? void 0 : _d.canWrite) || isLocked;
49
+ const renderButtons = () => {
50
+ var _a, _b, _c, _d;
51
+ if (((_b = (_a = field._editor) === null || _a === void 0 ? void 0 : _a.buttons) === null || _b === void 0 ? void 0 : _b.length) || 0 > 0)
52
+ return (_jsxs(_Fragment, { children: [(!executingAction || executingAction.state !== "running") && (_jsx("div", { className: "a-w-4 a-h-4 a-ml-auto a-cursor-pointer", onClick: (e) => {
53
+ var _a;
54
+ (_a = generatorsOverlay.current) === null || _a === void 0 ? void 0 : _a.toggle(e);
55
+ e.preventDefault();
56
+ e.stopPropagation();
57
+ }, children: _jsx(WizardIcon, {}) })), executingAction && executingAction.state === "running" && (_jsxs("div", { className: "a-ml-auto a-text-xs", children: [_jsx("i", { className: "pi pi-spin pi-spinner a-text-xs a-flex a-items-center" }), " ", executingAction === null || executingAction === void 0 ? void 0 : executingAction.actionButton.label] })), _jsx(OverlayPanel, { ref: generatorsOverlay, className: "a-p-1", children: (_d = (_c = field._editor) === null || _c === void 0 ? void 0 : _c.buttons) === null || _d === void 0 ? void 0 : _d.map((x) => (_jsxs("button", { className: "a-text-xs a-p-1 a-block hover:a-text-gray-400", onClick: () => {
58
+ var _a;
59
+ editButtonClicked(x);
60
+ (_a = generatorsOverlay.current) === null || _a === void 0 ? void 0 : _a.hide();
61
+ }, children: [x.icon && _jsx("i", { className: x.icon + " a-mr-2 a-text-xs" }), x.label] }, x.id))) })] }));
62
+ return null;
63
+ };
64
+ return (_jsxs("div", { className: classNames, children: [validationBarClassNames && (_jsxs(_Fragment, { children: [_jsx("div", { className: validationBarClassNames, id: "validation_" + field.id }), _jsx(Tooltip, { target: "#validation_" + field.id, children: validators
65
+ .filter((x) => x.result > 1)
66
+ .map((x) => (_jsx("div", { children: x.message }, x.validator))) })] })), _jsxs("div", { className: "a-flex-1", children: [_jsxs("div", { className: "a-flex a-justify-between", children: [_jsx("label", { className: "a-font-bold a-block a-mb-1 a-text-sm", children: title || ((_e = field._editor) === null || _e === void 0 ? void 0 : _e.name) }), _jsxs("div", { className: "a-flex a-gap-2", children: [renderButtons(), isLocked && (_jsxs("div", { className: "a-text-xs a-bg-pink-400 a-text-white a-p-1", children: ["locked by ", (_g = (_f = liveField._editor) === null || _f === void 0 ? void 0 : _f.lockedBy) === null || _g === void 0 ? void 0 : _g.user.name] }))] })] }), isFocusedField && (_jsxs("div", { className: "a-flex a-gap-3 a-gap-y-1 a-flex-wrap", children: [!((_h = field._editor) === null || _h === void 0 ? void 0 : _h.isFallback) &&
67
+ ((_j = liveField._editor) === null || _j === void 0 ? void 0 : _j.rawValue) !== null ? (_jsxs("button", { className: "a-text-xs a-p-0 ", onClick: () => {
68
+ editContext === null || editContext === void 0 ? void 0 : editContext.editField({ field: field, rawValue: null });
69
+ }, children: ["Reset", " "] })) : (showFallbackButton), !simplified && (_jsxs("button", { className: "a-text-xs a-p-0", onClick: () => {
70
+ setShowRawValue(!showRawValue);
71
+ }, children: [_jsx("i", { className: "a-text-xs pi " +
72
+ (showRawValue ? "pi-check-square" : "pi-stop") }), " ", "Raw"] }))] })), (executingAction === null || executingAction === void 0 ? void 0 : executingAction.message) && (_jsx("div", { className: "a-text-xs a-p-0 a-mt-1 a-mb-1", children: executingAction === null || executingAction === void 0 ? void 0 : executingAction.message })), _jsx("div", { className: "a-text-xs a-p-0 a-mt-1", children: getFieldEditor(liveField, showRawValue, isReadOnly, editContext.configuration) })] })] }, field.id +
73
+ "_" +
74
+ fieldItem.id +
75
+ "_" +
76
+ fieldItem.language +
77
+ "_" +
78
+ fieldItem.version));
79
+ }
80
+ function getFieldEditor(field, showRawValue, isReadOnly, configuration) {
81
+ let fieldType = showRawValue ? "raw" : field._editor.type;
82
+ var typeConfig = configuration.fieldTypes[fieldType];
83
+ if (!typeConfig)
84
+ typeConfig = configuration.fieldTypes["single-line text"];
85
+ return _jsx(typeConfig.editor, { field: field, readOnly: isReadOnly });
86
+ }
@@ -0,0 +1,79 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
+ import { useEffect, useRef, useState } from "react";
12
+ import FieldListField from "./FieldListField";
13
+ import { useEditContext } from "./editContext";
14
+ import { loadFallbackChain } from "./services/editService";
15
+ export function FieldListFieldWithFallbacks({ field, validators, simplified, title, }) {
16
+ var _a;
17
+ const [showFallback, setShowFallback] = useState(false);
18
+ const [fallbackChain, setFallbackChain] = useState();
19
+ const ref = useRef(null);
20
+ const editContext = useEditContext();
21
+ if (!editContext)
22
+ return;
23
+ const liveField = editContext.getLiveField(field);
24
+ function isEditFieldOp(op) {
25
+ return (op === null || op === void 0 ? void 0 : op.type) === "edit-field";
26
+ }
27
+ function loadFallback(init) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ const chain = yield loadFallbackChain(field._editor.descriptor);
30
+ const liveChain = chain.map((x) => editContext.getLiveField(x));
31
+ const currentEditOp = editContext.currentEditOperation;
32
+ liveChain.forEach((x, i) => {
33
+ if (init ||
34
+ !isEditFieldOp(currentEditOp) ||
35
+ currentEditOp.fieldId !== x.id ||
36
+ currentEditOp.item.id !== x._editor.descriptor.item.id ||
37
+ currentEditOp.item.language !== x._editor.descriptor.item.language) {
38
+ x._editor = chain[i]._editor;
39
+ x.value = chain[i].value;
40
+ x.jsonValue = chain[i].jsonValue;
41
+ }
42
+ });
43
+ setFallbackChain(liveChain);
44
+ });
45
+ }
46
+ const fieldItem = field._editor.descriptor.item;
47
+ const isFocusedField = ((_a = editContext === null || editContext === void 0 ? void 0 : editContext.focusedField) === null || _a === void 0 ? void 0 : _a.fieldId) === field.id &&
48
+ editContext.focusedField.item.id === fieldItem.id &&
49
+ editContext.focusedField.item.language === fieldItem.language;
50
+ useEffect(() => {
51
+ var _a;
52
+ if (ref.current && isFocusedField) {
53
+ ref.current.scrollIntoView({
54
+ behavior: "smooth",
55
+ block: "center",
56
+ inline: "center",
57
+ });
58
+ if ((_a = liveField._editor) === null || _a === void 0 ? void 0 : _a.isFallback) {
59
+ loadFallback(true);
60
+ }
61
+ }
62
+ }, [editContext.focusedField]);
63
+ useEffect(() => {
64
+ var _a;
65
+ if (((_a = liveField._editor) === null || _a === void 0 ? void 0 : _a.isFallback) && isFocusedField) {
66
+ loadFallback(false);
67
+ }
68
+ }, [editContext.editOperationExecutedFlag, editContext.refreshCompletedFlag]);
69
+ const showFallbackButton = (_jsxs("button", { className: "a-text-xs a-p-0", onClick: () => setShowFallback(!showFallback), children: [_jsx("i", { className: "a-text-xs pi " + (showFallback ? "pi-check-square" : "pi-stop") }), " ", "Fallback"] }));
70
+ return (_jsxs("div", { ref: ref, className: "[&:not(:first-child)]:a-mt-5", onClick: () => {
71
+ var _a;
72
+ editContext.setFocusedField((_a = field._editor) === null || _a === void 0 ? void 0 : _a.descriptor, true);
73
+ }, children: [_jsx(FieldListField, { field: field, validators: validators, simplified: simplified, title: title, isFocusedField: isFocusedField, showFallbackButton: showFallbackButton }), liveField._editor.isFallback && isFocusedField && showFallback && (_jsx(_Fragment, { children: fallbackChain &&
74
+ fallbackChain.slice(1).map((x, i) => {
75
+ var _a, _b;
76
+ return (_jsxs("div", { className: "a-ml-3", children: [_jsx("div", { className: "a-text-center", children: _jsx("i", { className: "pi pi-arrow-up a-text-xl a-font-bold a-text-blue-300 a-fallback-arrow-animation a-relative a-top-3" }) }), _jsx(FieldListField, { field: x, validators: validators, simplified: true, isFocusedField: true, title: _jsxs("div", { className: "a-text-xs", children: [(_a = x._editor) === null || _a === void 0 ? void 0 : _a.name, " (", x._editor.descriptor.item.language, ")", x._editor.descriptor.item.id !=
77
+ ((_b = liveField._editor) === null || _b === void 0 ? void 0 : _b.descriptor.item.id) && (_jsxs("span", { className: "a-text-gray-400", children: ["- Item: ", x._editor.descriptor.item.id] }))] }) }, i)] }, i));
78
+ }) }))] }, field.id));
79
+ }
@@ -1,19 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const jsx_runtime_1 = require("react/jsx-runtime");
4
- const react_1 = require("react");
5
- function FloatingToolbar({ children, onPin, height, width, }) {
6
- const [position, setPosition] = (0, react_1.useState)({ x: 0, y: 95 });
7
- const [size, setSize] = (0, react_1.useState)({ width: 400, height: 70 });
8
- const [dragging, setDragging] = (0, react_1.useState)(false);
9
- const [resizing, setResizing] = (0, react_1.useState)(false);
10
- const [offset, setOffset] = (0, react_1.useState)({ x: 0, y: 0 });
11
- const [hidden, setHidden] = (0, react_1.useState)(false);
12
- (0, react_1.useEffect)(() => {
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useState } from "react";
3
+ export default function FloatingToolbar({ children, onPin, height, width, }) {
4
+ const [position, setPosition] = useState({ x: 0, y: 95 });
5
+ const [size, setSize] = useState({ width: 400, height: 70 });
6
+ const [dragging, setDragging] = useState(false);
7
+ const [resizing, setResizing] = useState(false);
8
+ const [offset, setOffset] = useState({ x: 0, y: 0 });
9
+ const [hidden, setHidden] = useState(false);
10
+ useEffect(() => {
13
11
  console.log("WIDTH: ", width, "Height: ", height);
14
12
  setSize({ width: width || 400, height: height || 70 });
15
13
  }, []);
16
- const handleMouseDown = (0, react_1.useCallback)((e) => {
14
+ const handleMouseDown = useCallback((e) => {
17
15
  // Start dragging and calculate the offset from the mouse to the sidebar top-left corner
18
16
  setDragging(true);
19
17
  setOffset({
@@ -21,7 +19,7 @@ function FloatingToolbar({ children, onPin, height, width, }) {
21
19
  y: e.clientY - position.y,
22
20
  });
23
21
  }, [position]);
24
- const handleMouseMove = (0, react_1.useCallback)((e) => {
22
+ const handleMouseMove = useCallback((e) => {
25
23
  if (dragging) {
26
24
  // Update the position state based on mouse movement, adjusted by the initial offset
27
25
  setPosition({
@@ -30,11 +28,11 @@ function FloatingToolbar({ children, onPin, height, width, }) {
30
28
  });
31
29
  }
32
30
  }, [dragging, offset]);
33
- const handleMouseUp = (0, react_1.useCallback)(() => {
31
+ const handleMouseUp = useCallback(() => {
34
32
  // Stop dragging
35
33
  setDragging(false);
36
34
  }, []);
37
- const handleResizeMouseDown = (0, react_1.useCallback)((e) => {
35
+ const handleResizeMouseDown = useCallback((e) => {
38
36
  e.preventDefault();
39
37
  setResizing(true);
40
38
  setOffset({
@@ -42,7 +40,7 @@ function FloatingToolbar({ children, onPin, height, width, }) {
42
40
  y: e.clientY,
43
41
  });
44
42
  }, []);
45
- const handleResizeMouseMove = (0, react_1.useCallback)((e) => {
43
+ const handleResizeMouseMove = useCallback((e) => {
46
44
  if (resizing) {
47
45
  const newWidth = size.width + (e.clientX - offset.x);
48
46
  const newHeight = size.height + (e.clientY - offset.y);
@@ -56,10 +54,10 @@ function FloatingToolbar({ children, onPin, height, width, }) {
56
54
  });
57
55
  }
58
56
  }, [resizing, offset, size]);
59
- const handleResizeMouseUp = (0, react_1.useCallback)(() => {
57
+ const handleResizeMouseUp = useCallback(() => {
60
58
  setResizing(false);
61
59
  }, []);
62
- (0, react_1.useEffect)(() => {
60
+ useEffect(() => {
63
61
  if (resizing) {
64
62
  document.addEventListener("mousemove", handleResizeMouseMove);
65
63
  document.addEventListener("mouseup", handleResizeMouseUp);
@@ -70,7 +68,7 @@ function FloatingToolbar({ children, onPin, height, width, }) {
70
68
  };
71
69
  }, [resizing, handleResizeMouseMove, handleResizeMouseUp]);
72
70
  // Add event listeners to the document when the sidebar is being dragged
73
- (0, react_1.useEffect)(() => {
71
+ useEffect(() => {
74
72
  if (dragging) {
75
73
  document.addEventListener("mousemove", handleMouseMove);
76
74
  document.addEventListener("mouseup", handleMouseUp);
@@ -81,12 +79,11 @@ function FloatingToolbar({ children, onPin, height, width, }) {
81
79
  document.removeEventListener("mouseup", handleMouseUp);
82
80
  };
83
81
  }, [dragging, handleMouseMove, handleMouseUp]);
84
- return ((0, jsx_runtime_1.jsxs)("div", { className: "a-border a-border-gray-200 a-drop-shadow a-z-10 a-flex a-flex-col", onMouseMove: handleMouseMove, onMouseUp: handleMouseUp, style: {
82
+ return (_jsxs("div", { className: "a-border a-border-gray-200 a-drop-shadow a-z-10 a-flex a-flex-col", onMouseMove: handleMouseMove, onMouseUp: handleMouseUp, style: {
85
83
  left: `${position.x}px`,
86
84
  top: `${position.y}px`,
87
85
  position: "absolute", // Use 'fixed' or 'absolute' depending on your layout needs
88
86
  height: `${hidden ? 30 : size.height}px`,
89
87
  width: `${size.width}px`,
90
- }, children: [(0, jsx_runtime_1.jsxs)("div", { className: "a-bg-gray-100 a-w-full a-flex a-justify-between a-items-between a-p-2 a-text-sm", style: { cursor: "move", userSelect: "none" }, onMouseDown: handleMouseDown, children: ["Toolbar", (0, jsx_runtime_1.jsxs)("div", { className: "a-flex a-gap-2", children: [hidden && ((0, jsx_runtime_1.jsx)("div", { className: "a-border-2 a-border-gray-800 a-w-4 a-h-4 a-cusor-pointer", onClick: () => setHidden(false) })), !hidden && ((0, jsx_runtime_1.jsx)("div", { className: "a-border-b-2 a-border-gray-800 a-w-4 a-h-4 a-cusor-pointer", onClick: () => setHidden(true) })), onPin && ((0, jsx_runtime_1.jsx)("i", { className: "pi pi-arrow-down-left a-cursor-pointer", onClick: onPin }))] })] }), (0, jsx_runtime_1.jsx)("div", { className: "a-flex-1", children: !hidden && children }), (0, jsx_runtime_1.jsx)("div", { className: "a-h-4 a-bg-gray-100" }), (0, jsx_runtime_1.jsx)("div", { className: "a-cursor-nwse-resize a-w-4 a-h-4 a-absolute -a-bottom-1 -a-right-2 a-text-gray-500", onMouseDown: handleResizeMouseDown, children: (0, jsx_runtime_1.jsx)("i", { className: "pi pi-sort-down -a-rotate-45 a-w-4 a-h-4" }) })] }));
88
+ }, children: [_jsxs("div", { className: "a-bg-gray-100 a-w-full a-flex a-justify-between a-items-between a-p-2 a-text-sm", style: { cursor: "move", userSelect: "none" }, onMouseDown: handleMouseDown, children: ["Toolbar", _jsxs("div", { className: "a-flex a-gap-2", children: [hidden && (_jsx("div", { className: "a-border-2 a-border-gray-800 a-w-4 a-h-4 a-cusor-pointer", onClick: () => setHidden(false) })), !hidden && (_jsx("div", { className: "a-border-b-2 a-border-gray-800 a-w-4 a-h-4 a-cusor-pointer", onClick: () => setHidden(true) })), onPin && (_jsx("i", { className: "pi pi-arrow-down-left a-cursor-pointer", onClick: onPin }))] })] }), _jsx("div", { className: "a-flex-1", children: !hidden && children }), _jsx("div", { className: "a-h-4 a-bg-gray-100" }), _jsx("div", { className: "a-cursor-nwse-resize a-w-4 a-h-4 a-absolute -a-bottom-1 -a-right-2 a-text-gray-500", onMouseDown: handleResizeMouseDown, children: _jsx("i", { className: "pi pi-sort-down -a-rotate-45 a-w-4 a-h-4" }) })] }));
91
89
  }
92
- exports.default = FloatingToolbar;
@@ -0,0 +1,14 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { CopyToClipboardButton } from "./ui/CopyToClipboardButton";
4
+ import { Section } from "./ui/Section";
5
+ export function ItemInfo({ item }) {
6
+ var _a, _b, _c, _d, _e;
7
+ if (!(item === null || item === void 0 ? void 0 : item.fields))
8
+ return;
9
+ function formatRow(label, value) {
10
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: "a-font-bold", children: label }), _jsx("div", { children: value })] }));
11
+ }
12
+ return (_jsxs("div", { children: [_jsx("h2", { className: "a-py-3 a-px-3 a-text-l a-font-bold a-my-2", children: item.name }), _jsx(Section, { title: "Info", children: _jsxs("div", { className: "a-grid a-grid-cols-[min-content_1fr] a-gap-3 a-text-xs", children: [_jsx("div", { className: "a-font-bold", children: "ID:" }), _jsxs("div", { children: [item.id, " ", _jsx(CopyToClipboardButton, { text: item.id })] }), _jsx("div", { className: "a-font-bold", children: "Path:" }), _jsx("div", { children: (_a = item._editor) === null || _a === void 0 ? void 0 : _a.path }), _jsx("div", { className: "a-font-bold", children: "Language:" }), _jsx("div", { children: item.language }), _jsx("div", { className: "a-font-bold", children: "Version:" }), _jsx("div", { children: item.version }), _jsx("div", { className: "a-font-bold", children: "Template:" }), _jsxs("div", { children: [item.templateName, " (", item.templateId, " ", _jsx(CopyToClipboardButton, { text: item.templateId }), ")"] }), ((_b = item._editor) === null || _b === void 0 ? void 0 : _b.masterLanguages) &&
13
+ formatRow("Master languages", (_c = item._editor) === null || _c === void 0 ? void 0 : _c.masterLanguages.join(", ")), ((_d = item._editor) === null || _d === void 0 ? void 0 : _d.translations) && (_jsxs("div", { className: "a-text-xs", children: ["Languages: ", (_e = item._editor.translations) === null || _e === void 0 ? void 0 : _e.join(", ")] }))] }) })] }));
14
+ }
@@ -0,0 +1,61 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Dialog } from "primereact/dialog";
3
+ import { TabPanel, TabView } from "primereact/tabview";
4
+ import ContentTree from "./ContentTree";
5
+ import { InputText } from "primereact/inputtext";
6
+ import { useEffect, useState } from "react";
7
+ import { Dropdown } from "primereact/dropdown";
8
+ import { Divider } from "primereact/divider";
9
+ import { Button } from "primereact/button";
10
+ export function LinkEditorDialog({ linkValue, onCancel, onOk, }) {
11
+ const [url, setUrl] = useState();
12
+ const [targetWindow, setTargetWindow] = useState();
13
+ const [customTarget, setCustomTarget] = useState();
14
+ const [queryString, setQueryString] = useState();
15
+ const [activeTabIndex, setActiveTabIndex] = useState();
16
+ const [selectedItemId, setSelectedItemId] = useState("");
17
+ useEffect(() => {
18
+ setUrl(linkValue.url);
19
+ setTargetWindow(linkValue.target);
20
+ if (linkValue.type == "external")
21
+ setActiveTabIndex(1);
22
+ else
23
+ setActiveTabIndex(0);
24
+ if (linkValue.target && linkValue.target != "_blank") {
25
+ setTargetWindow("custom");
26
+ setCustomTarget(linkValue.target);
27
+ }
28
+ if (linkValue.itemId)
29
+ setSelectedItemId(linkValue.itemId);
30
+ if (linkValue.queryString)
31
+ setQueryString(linkValue.queryString);
32
+ }, [linkValue]);
33
+ const targetWindows = [
34
+ { name: "Active browser", code: "" },
35
+ { name: "New browser", code: "_blank" },
36
+ { name: "Custom", code: "custom" },
37
+ ];
38
+ function getTargetWindow() {
39
+ if (targetWindow == "custom")
40
+ return customTarget;
41
+ return targetWindow;
42
+ }
43
+ return (_jsx(Dialog, { style: { width: "50%", height: "50%" }, onHide: onCancel, header: "Select link target", visible: true, children: _jsxs("div", { className: "a-flex a-flex-col a-h-full", children: [_jsxs(TabView, { onTabChange: (e) => setActiveTabIndex(e.index), activeIndex: activeTabIndex, className: "a-flex-1 a-mb-3", pt: { panelContainer: { className: "a-h-full" } }, children: [_jsx(TabPanel, { header: "Internal", className: "a-relative a-h-[calc(100%-25px)] a-p-0 ", children: _jsx("div", { className: "a-overflow-auto a-absolute a-inset-0", children: _jsx(ContentTree, { className: "a-h-full", expandIdPath: linkValue.targetItemLongId ||
44
+ "0DE95AE4-41AB-4D01-9EB0-67441B7C2450", selectedItemIds: [selectedItemId], selectionMode: "single", rootItemId: "0DE95AE4-41AB-4D01-9EB0-67441B7C2450", onSelectionChange: (selection) => {
45
+ setSelectedItemId(selection.id);
46
+ } }) }) }), _jsxs(TabPanel, { header: "External", children: [_jsx("label", { className: "a-block a-text-sm", children: "Url:" }), _jsx(InputText, { value: url || "", onChange: (e) => {
47
+ setUrl(e.target.value);
48
+ }, className: "a-w-full a-text-sm" })] })] }), _jsx(Divider, {}), _jsx("label", { className: "a-text-sm", children: "QueryString" }), _jsx(InputText, { value: queryString, onChange: (e) => setQueryString(e.target.value), className: "a-text-sm" }), _jsx("label", { className: "a-text-sm", children: "Window" }), _jsx(Dropdown, { options: targetWindows, optionLabel: "name", optionValue: "code", value: targetWindow, onChange: (e) => setTargetWindow(e.value), className: "a-text-sm" }), targetWindow === "custom" && (_jsxs("div", { className: "a-m-2", children: [_jsx("label", { className: "a-block a-text-sm", children: "Custom:" }), _jsx(InputText, { value: customTarget || "", onChange: (e) => {
49
+ setCustomTarget(e.target.value);
50
+ }, className: "a-text-sm" })] })), _jsx(Divider, {}), _jsxs("div", { className: "a-flex a-justify-end a-gap-3 a-mt-3", children: [_jsx(Button, { onClick: () => {
51
+ console.log(activeTabIndex);
52
+ onOk({
53
+ url,
54
+ target: getTargetWindow(),
55
+ customTarget: customTarget,
56
+ itemId: selectedItemId,
57
+ queryString: queryString,
58
+ type: activeTabIndex === 1 ? "external" : "internal",
59
+ });
60
+ }, children: "Select" }), _jsx(Button, { onClick: onCancel, children: "Cancel" })] })] }) }));
61
+ }
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Splitter, SplitterPanel } from "primereact/splitter";
3
+ import { useState } from "react";
4
+ import FloatingToolbar from "./FloatingToolbar";
5
+ import React from "react";
6
+ export default function MainLayout({ leftSidebar, content, rightSidebar, }) {
7
+ var _a, _b;
8
+ const panels = [];
9
+ const [floatingLeftSidebar, setFloatingLeftSidebar] = useState(false);
10
+ const leftSidebarRef = React.useRef(null);
11
+ if (leftSidebar && !floatingLeftSidebar)
12
+ panels.push(_jsx(SplitterPanel, { size: 15, className: "a-overflow-hidden a-relative", children: _jsx("div", { className: "a-w-full a-h-full", ref: leftSidebarRef, children: leftSidebar }) }, "left"));
13
+ panels.push(_jsx(SplitterPanel, { size: 60, className: "alpaca-editor-content a-relative ", children: content }, "center"));
14
+ if (rightSidebar)
15
+ panels.push(_jsx(SplitterPanel, { size: 15, children: rightSidebar }, "right"));
16
+ return (_jsxs(_Fragment, { children: [_jsx(Splitter, { className: "a-border-none", children: panels }, (leftSidebar ? "left" : "no-left") +
17
+ (rightSidebar ? "right" : "no-right")), leftSidebar && floatingLeftSidebar && (_jsx(FloatingToolbar, { onPin: () => setFloatingLeftSidebar(false), height: (((_a = leftSidebarRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight) || 300) - 70, width: ((_b = leftSidebarRef.current) === null || _b === void 0 ? void 0 : _b.clientWidth) || 300, children: leftSidebar }))] }));
18
+ }
@@ -0,0 +1,85 @@
1
+ "use client";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ import ContentTree from "./ContentTree";
13
+ import { Splitter, SplitterPanel } from "primereact/splitter";
14
+ import { useEffect, useState } from "react";
15
+ import { getChildren } from "./services/contentService";
16
+ import { useEditContext } from "./editContext";
17
+ import { Button } from "primereact/button";
18
+ import { Dialog } from "primereact/dialog";
19
+ import { FileUpload } from "primereact/fileupload";
20
+ import { classNames } from "primereact/utils";
21
+ import DialogButtons from "./DialogButtons";
22
+ export const MediaSelector = ({ visible, onHide, onMediaSelected, selectedIdPath, }) => {
23
+ const [selectedFolderId, setSelectedFolderId] = useState();
24
+ const [images, setImages] = useState();
25
+ const [selectedImage, setSelectedImage] = useState();
26
+ const [selectedImageId, setSelectedImageId] = useState();
27
+ const selection = selectedFolderId ? [selectedFolderId] : [];
28
+ const editContext = useEditContext();
29
+ useEffect(() => {
30
+ if (selectedIdPath) {
31
+ const path = selectedIdPath.split("/");
32
+ if (path.length > 1) {
33
+ setSelectedFolderId(path[path.length - 2]);
34
+ setSelectedImageId(path[path.length - 1].toLowerCase().substring(1, 37));
35
+ }
36
+ }
37
+ }, [selectedIdPath, visible]);
38
+ useEffect(() => {
39
+ loadThumbnailsAndSelectImage();
40
+ }, [selectedFolderId]);
41
+ function loadThumbnailsAndSelectImage() {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ setSelectedImage(undefined);
44
+ setImages([]);
45
+ const images = yield loadThumbnails(selectedFolderId);
46
+ if (selectedImageId)
47
+ setSelectedImage(images === null || images === void 0 ? void 0 : images.find((x) => x.id === selectedImageId));
48
+ });
49
+ }
50
+ function loadThumbnails(selectedFolderId) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ if (!selectedFolderId)
53
+ setImages([]);
54
+ else {
55
+ const children = yield getChildren(selectedFolderId, editContext.sessionId, [
56
+ "C97BA923-8009-4858-BDD5-D8BE5FCCECF7",
57
+ "F1828A2C-7E5D-4BBD-98CA-320474871548",
58
+ ], false);
59
+ setImages(children);
60
+ return children;
61
+ }
62
+ });
63
+ }
64
+ return (_jsx(Dialog, { style: { width: "80%", height: "80%" }, visible: visible, onHide: onHide, header: "Select image", children: _jsxs("div", { className: "a-flex a-flex-col a-h-full", children: [_jsxs(Splitter, { className: "a-flex-1 a-border-0", children: [_jsx(SplitterPanel, { size: 35, className: "alpaca-overflow-scroll", children: _jsxs(Splitter, { layout: "vertical", children: [_jsx(SplitterPanel, { size: 70, className: "a-relative", children: _jsx("div", { className: "a-absolute a-inset-0 a-overflow-auto a-p-2", children: _jsx(ContentTree, { rootItemId: "3D6658D8-A0BF-4E75-B3E2-D050FABCF4E1", selectionMode: "single", selectedItemIds: selection, templateIds: ["FE5DD826-48C6-436D-B87A-7C4210C7413B"], expandIdPath: selectedIdPath !== null && selectedIdPath !== void 0 ? selectedIdPath : "3D6658D8-A0BF-4E75-B3E2-D050FABCF4E1", onSelectionChange: (selection) => {
65
+ const selectedNode = selection;
66
+ if (selectedNode)
67
+ setSelectedFolderId(selectedNode.id);
68
+ else
69
+ setSelectedFolderId(undefined);
70
+ } }) }) }), _jsx(SplitterPanel, { className: "a-flex a-justify-center a-align-center", children: _jsx("div", { className: "a-p-3 a-m-2 a-border a-w-full a-flex a-justify-center a-align-center", children: _jsx("img", { src: selectedImage === null || selectedImage === void 0 ? void 0 : selectedImage.previewUrl, className: "a-object-contain", fetchPriority: "high" }) }) })] }) }), _jsx(SplitterPanel, { className: "a-relative", children: _jsx("div", { className: "a-flex a-flex-wrap a-content-start a-items-start a-gap-2 a-absolute a-inset-0 a-overflow-auto a-p-2", children: images === null || images === void 0 ? void 0 : images.map((t) => {
71
+ return (_jsxs("div", { className: classNames((selectedImage === null || selectedImage === void 0 ? void 0 : selectedImage.id) == t.id ? "a-shadow-md" : "", "a-w-24 a-flex a-flex-col a-justify-between hover:a-shadow-md a-cursor-pointer a-p-1"), onDoubleClick: () => {
72
+ onMediaSelected(t.id);
73
+ onHide();
74
+ }, onClick: () => setSelectedImage(t), children: [_jsx("div", { className: "a-h-24 a-w-24 a-flex a-justify-center a-items-center", children: _jsx("img", { src: t.imageUrl }) }), _jsx("div", { className: "a-text-xs a-break-all", children: t.name })] }, t.id));
75
+ }) }) })] }), _jsxs(DialogButtons, { children: [_jsx(FileUpload, { mode: "basic",
76
+ // disabled={electedFolderId}
77
+ auto: true, chooseLabel: "Upload", accept: "image/*", url: "/alpaca/headless/editor/upload?folder=" + selection[0], onUpload: ({ xhr }) => __awaiter(void 0, void 0, void 0, function* () {
78
+ const response = JSON.parse(xhr.responseText);
79
+ const thumbs = yield loadThumbnails(selectedFolderId);
80
+ setSelectedImage(thumbs === null || thumbs === void 0 ? void 0 : thumbs.find((x) => x.id === response.id));
81
+ }) }), _jsx(Button, { disabled: !selectedImage, onClick: () => {
82
+ onMediaSelected(selectedImage.id);
83
+ onHide();
84
+ }, children: "Select" }), _jsx(Button, { onClick: () => onHide(), children: "Cancel" })] })] }) }));
85
+ };