@alpaca-headless/alpaca-headless-nextjs 1.0.26 → 1.0.128

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 (238) hide show
  1. package/dist/cjs/client-components/ClientLink.js +36 -0
  2. package/dist/cjs/client-components/MultiComponentEditor.js +26 -0
  3. package/dist/cjs/client-components/index.js +19 -0
  4. package/dist/cjs/components/Link.js +1 -1
  5. package/dist/cjs/components/LinkEditor.js +47 -1
  6. package/dist/cjs/components/Picture.js +14 -12
  7. package/dist/cjs/components/PictureEditor.js +22 -18
  8. package/dist/cjs/components/Placeholder.js +51 -9
  9. package/dist/cjs/components/RichText.js +1 -1
  10. package/dist/cjs/components/RichTextEditor.js +17 -2
  11. package/dist/cjs/components/TextEditor.js +15 -3
  12. package/dist/cjs/components/Translate.js +1 -1
  13. package/dist/cjs/{editor → components}/TranslateEditor.js +5 -2
  14. package/dist/cjs/editor/AiPopup.js +33 -0
  15. package/dist/cjs/editor/AiTerminal.js +42 -18
  16. package/dist/cjs/editor/ComponentInfo.js +4 -3
  17. package/dist/cjs/editor/ComponentPalette.js +12 -68
  18. package/dist/cjs/editor/ComponentTree.js +76 -59
  19. package/dist/cjs/editor/ConfirmationDialog.js +31 -0
  20. package/dist/cjs/editor/ContentTree.js +144 -49
  21. package/dist/cjs/editor/Debug.js +12 -2
  22. package/dist/cjs/editor/DialogButtons.js +7 -0
  23. package/dist/cjs/editor/DictionaryEditor.js +14 -8
  24. package/dist/cjs/editor/EditFrame.js +88 -20
  25. package/dist/cjs/editor/EditHistory.js +17 -4
  26. package/dist/cjs/editor/Editor.js +1 -1
  27. package/dist/cjs/editor/EditorClient.js +506 -237
  28. package/dist/cjs/editor/EditorClientHost.js +2 -2
  29. package/dist/cjs/editor/FieldList.js +30 -43
  30. package/dist/cjs/editor/FieldListField.js +75 -0
  31. package/dist/cjs/editor/FloatingToolbar.js +92 -0
  32. package/dist/cjs/editor/GraphQL.js +4 -6
  33. package/dist/cjs/editor/ItemEditor.js +9 -0
  34. package/dist/cjs/editor/ItemInfo.js +17 -0
  35. package/dist/cjs/editor/ItemNameDialog.js +37 -0
  36. package/dist/cjs/editor/LanguageSelector.js +1 -1
  37. package/dist/cjs/editor/LinkEditorDialog.js +67 -0
  38. package/dist/cjs/editor/MainLayout.js +24 -0
  39. package/dist/cjs/editor/MediaSelector.js +44 -13
  40. package/dist/cjs/editor/PictureEditorDialog.js +93 -0
  41. package/dist/cjs/editor/PlaceholderDropZone.js +48 -9
  42. package/dist/cjs/editor/SidebarTabs.js +47 -0
  43. package/dist/cjs/editor/Terminal.js +21 -11
  44. package/dist/cjs/editor/Utils.js +43 -0
  45. package/dist/cjs/editor/VersionSelector.js +1 -1
  46. package/dist/cjs/editor/Workbox.js +41 -0
  47. package/dist/cjs/editor/componentCommands.js +141 -0
  48. package/dist/cjs/editor/contentService.js +45 -3
  49. package/dist/cjs/editor/editContext.js +9 -4
  50. package/dist/cjs/editor/editService.js +187 -3
  51. package/dist/cjs/editor/fieldTypes/CheckboxEditor.js +21 -0
  52. package/dist/cjs/editor/fieldTypes/InternalLinkFieldEditor.js +46 -0
  53. package/dist/cjs/editor/fieldTypes/LinkFieldEditor.js +55 -0
  54. package/dist/cjs/editor/fieldTypes/MultiLineText.js +25 -0
  55. package/dist/cjs/editor/fieldTypes/PictureFieldEditor.js +19 -0
  56. package/dist/cjs/editor/fieldTypes/RichTextEditor.js +9 -4
  57. package/dist/cjs/editor/fieldTypes/SingleLineText.js +12 -4
  58. package/dist/cjs/editor/fieldTypes/TreeListEditor.js +59 -0
  59. package/dist/cjs/editor/ui/Section.js +8 -0
  60. package/dist/cjs/loadRouteData.js +24 -14
  61. package/dist/cjs/middleware/authorization.js +52 -0
  62. package/dist/cjs/middleware/index.js +17 -0
  63. package/dist/editor.css +552 -74
  64. package/dist/primereact/resources/themes/arya-blue/theme.css +103 -91
  65. package/dist/primereact/resources/themes/arya-green/theme.css +103 -91
  66. package/dist/primereact/resources/themes/arya-orange/theme.css +103 -91
  67. package/dist/primereact/resources/themes/arya-purple/theme.css +103 -91
  68. package/dist/primereact/resources/themes/bootstrap4-dark-blue/theme.css +103 -91
  69. package/dist/primereact/resources/themes/bootstrap4-dark-purple/theme.css +103 -91
  70. package/dist/primereact/resources/themes/bootstrap4-light-blue/theme.css +102 -90
  71. package/dist/primereact/resources/themes/bootstrap4-light-purple/theme.css +102 -90
  72. package/dist/primereact/resources/themes/fluent-light/theme.css +103 -91
  73. package/dist/primereact/resources/themes/lara-dark-amber/fonts/Inter-italic.var.woff2 +0 -0
  74. package/dist/primereact/resources/themes/lara-dark-amber/fonts/Inter-roman.var.woff2 +0 -0
  75. package/dist/primereact/resources/themes/lara-dark-amber/theme.css +6049 -0
  76. package/dist/primereact/resources/themes/lara-dark-blue/theme.css +1006 -955
  77. package/dist/primereact/resources/themes/lara-dark-cyan/fonts/Inter-italic.var.woff2 +0 -0
  78. package/dist/primereact/resources/themes/lara-dark-cyan/fonts/Inter-roman.var.woff2 +0 -0
  79. package/dist/primereact/resources/themes/lara-dark-cyan/theme.css +6049 -0
  80. package/dist/primereact/resources/themes/lara-dark-green/fonts/Inter-italic.var.woff2 +0 -0
  81. package/dist/primereact/resources/themes/lara-dark-green/fonts/Inter-roman.var.woff2 +0 -0
  82. package/dist/primereact/resources/themes/lara-dark-green/theme.css +6049 -0
  83. package/dist/primereact/resources/themes/lara-dark-indigo/theme.css +1006 -955
  84. package/dist/primereact/resources/themes/lara-dark-pink/fonts/Inter-italic.var.woff2 +0 -0
  85. package/dist/primereact/resources/themes/lara-dark-pink/fonts/Inter-roman.var.woff2 +0 -0
  86. package/dist/primereact/resources/themes/lara-dark-pink/theme.css +6049 -0
  87. package/dist/primereact/resources/themes/lara-dark-purple/theme.css +1006 -955
  88. package/dist/primereact/resources/themes/lara-dark-teal/theme.css +1006 -955
  89. package/dist/primereact/resources/themes/lara-light-amber/fonts/Inter-italic.var.woff2 +0 -0
  90. package/dist/primereact/resources/themes/lara-light-amber/fonts/Inter-roman.var.woff2 +0 -0
  91. package/dist/primereact/resources/themes/lara-light-amber/theme.css +6041 -0
  92. package/dist/primereact/resources/themes/lara-light-blue/theme.css +842 -799
  93. package/dist/primereact/resources/themes/lara-light-cyan/fonts/Inter-italic.var.woff2 +0 -0
  94. package/dist/primereact/resources/themes/lara-light-cyan/fonts/Inter-roman.var.woff2 +0 -0
  95. package/dist/primereact/resources/themes/lara-light-cyan/theme.css +6041 -0
  96. package/dist/primereact/resources/themes/lara-light-green/fonts/Inter-italic.var.woff2 +0 -0
  97. package/dist/primereact/resources/themes/lara-light-green/fonts/Inter-roman.var.woff2 +0 -0
  98. package/dist/primereact/resources/themes/lara-light-green/theme.css +6041 -0
  99. package/dist/primereact/resources/themes/lara-light-indigo/theme.css +842 -799
  100. package/dist/primereact/resources/themes/lara-light-pink/fonts/Inter-italic.var.woff2 +0 -0
  101. package/dist/primereact/resources/themes/lara-light-pink/fonts/Inter-roman.var.woff2 +0 -0
  102. package/dist/primereact/resources/themes/lara-light-pink/theme.css +6041 -0
  103. package/dist/primereact/resources/themes/lara-light-purple/theme.css +842 -799
  104. package/dist/primereact/resources/themes/lara-light-teal/theme.css +1115 -1072
  105. package/dist/primereact/resources/themes/luna-amber/theme.css +103 -91
  106. package/dist/primereact/resources/themes/luna-blue/theme.css +103 -91
  107. package/dist/primereact/resources/themes/luna-green/theme.css +103 -91
  108. package/dist/primereact/resources/themes/luna-pink/theme.css +103 -91
  109. package/dist/primereact/resources/themes/md-dark-deeppurple/theme.css +147 -135
  110. package/dist/primereact/resources/themes/md-dark-indigo/theme.css +147 -135
  111. package/dist/primereact/resources/themes/md-light-deeppurple/theme.css +147 -135
  112. package/dist/primereact/resources/themes/md-light-indigo/theme.css +147 -135
  113. package/dist/primereact/resources/themes/mdc-dark-deeppurple/theme.css +147 -135
  114. package/dist/primereact/resources/themes/mdc-dark-indigo/theme.css +147 -135
  115. package/dist/primereact/resources/themes/mdc-light-deeppurple/theme.css +147 -135
  116. package/dist/primereact/resources/themes/mdc-light-indigo/theme.css +147 -135
  117. package/dist/primereact/resources/themes/mira/theme.css +108 -91
  118. package/dist/primereact/resources/themes/nano/theme.css +107 -91
  119. package/dist/primereact/resources/themes/nova/theme.css +103 -91
  120. package/dist/primereact/resources/themes/nova-accent/theme.css +103 -91
  121. package/dist/primereact/resources/themes/nova-alt/theme.css +103 -91
  122. package/dist/primereact/resources/themes/rhea/theme.css +103 -91
  123. package/dist/primereact/resources/themes/saga-blue/theme.css +103 -91
  124. package/dist/primereact/resources/themes/saga-green/theme.css +103 -91
  125. package/dist/primereact/resources/themes/saga-orange/theme.css +103 -91
  126. package/dist/primereact/resources/themes/saga-purple/theme.css +103 -91
  127. package/dist/primereact/resources/themes/soho-dark/theme.css +108 -91
  128. package/dist/primereact/resources/themes/soho-light/theme.css +108 -91
  129. package/dist/primereact/resources/themes/vela-blue/theme.css +103 -91
  130. package/dist/primereact/resources/themes/vela-green/theme.css +103 -91
  131. package/dist/primereact/resources/themes/vela-orange/theme.css +103 -91
  132. package/dist/primereact/resources/themes/vela-purple/theme.css +103 -91
  133. package/dist/primereact/resources/themes/viva-dark/theme.css +103 -91
  134. package/dist/primereact/resources/themes/viva-light/theme.css +103 -91
  135. package/package.json +29 -16
  136. package/tailwind.config.js +9 -2
  137. package/types/client-components/ClientLink.d.ts +6 -0
  138. package/types/client-components/MultiComponentEditor.d.ts +10 -0
  139. package/types/client-components/index.d.ts +2 -0
  140. package/types/components/Picture.d.ts +1 -0
  141. package/types/components/Placeholder.d.ts +16 -2
  142. package/types/components/RichTextEditor.d.ts +55 -55
  143. package/types/components/TextEditor.d.ts +54 -54
  144. package/types/editor/AiPopup.d.ts +10 -0
  145. package/types/editor/AiTerminal.d.ts +4 -3
  146. package/types/editor/ComponentPalette.d.ts +3 -4
  147. package/types/editor/ComponentTree.d.ts +1 -1
  148. package/types/editor/ConfirmationDialog.d.ts +19 -0
  149. package/types/editor/ContentTree.d.ts +7 -3
  150. package/types/editor/Debug.d.ts +1 -1
  151. package/types/editor/DialogButtons.d.ts +4 -0
  152. package/types/editor/DictionaryEditor.d.ts +3 -2
  153. package/types/editor/EditFrame.d.ts +4 -3
  154. package/types/editor/EditorClient.d.ts +4 -4
  155. package/types/editor/EditorClientHost.d.ts +4 -3
  156. package/types/editor/FieldListField.d.ts +4 -0
  157. package/types/editor/FloatingToolbar.d.ts +7 -0
  158. package/types/editor/ItemEditor.d.ts +4 -0
  159. package/types/editor/ItemInfo.d.ts +4 -0
  160. package/types/editor/ItemNameDialog.d.ts +10 -0
  161. package/types/editor/LinkEditorDialog.d.ts +15 -0
  162. package/types/editor/MainLayout.d.ts +6 -0
  163. package/types/editor/MediaSelector.d.ts +2 -1
  164. package/types/editor/PictureEditorDialog.d.ts +6 -0
  165. package/types/editor/SidebarTabs.d.ts +8 -0
  166. package/types/editor/Terminal.d.ts +3 -1
  167. package/types/editor/Utils.d.ts +3 -0
  168. package/types/editor/Workbox.d.ts +6 -0
  169. package/types/editor/componentCommands.d.ts +4 -0
  170. package/types/editor/contentService.d.ts +7 -1
  171. package/types/editor/editContext.d.ts +90 -19
  172. package/types/editor/editService.d.ts +9 -1
  173. package/types/editor/fieldTypes/CheckboxEditor.d.ts +4 -0
  174. package/types/editor/fieldTypes/InternalLinkFieldEditor.d.ts +4 -0
  175. package/types/editor/fieldTypes/LinkFieldEditor.d.ts +4 -0
  176. package/types/editor/fieldTypes/MultiLineText.d.ts +4 -0
  177. package/types/editor/fieldTypes/PictureFieldEditor.d.ts +4 -0
  178. package/types/editor/fieldTypes/TreeListEditor.d.ts +4 -0
  179. package/types/editor/ui/Section.d.ts +5 -0
  180. package/types/fieldTypes.d.ts +32 -17
  181. package/types/layoutData.d.ts +34 -9
  182. package/types/loadRouteData.d.ts +34 -5
  183. package/types/mediaProtection.d.ts +1 -0
  184. package/types/middleware/authorization.d.ts +2 -0
  185. package/types/middleware/index.d.ts +1 -0
  186. package/dist/cjs/editor/PageInfo.js +0 -12
  187. package/dist/esm/alpacaContext.js +0 -8
  188. package/dist/esm/components/Error.js +0 -10
  189. package/dist/esm/components/Image.js +0 -32
  190. package/dist/esm/components/Link.js +0 -29
  191. package/dist/esm/components/LinkEditor.js +0 -19
  192. package/dist/esm/components/Picture.js +0 -118
  193. package/dist/esm/components/PictureEditor.js +0 -41
  194. package/dist/esm/components/Placeholder.js +0 -69
  195. package/dist/esm/components/RichText.js +0 -40
  196. package/dist/esm/components/RichTextEditor.js +0 -52
  197. package/dist/esm/components/Slot.js +0 -5
  198. package/dist/esm/components/Text.js +0 -39
  199. package/dist/esm/components/TextEditor.js +0 -38
  200. package/dist/esm/components/Translate.js +0 -10
  201. package/dist/esm/components/index.js +0 -7
  202. package/dist/esm/editor/AiTerminal.js +0 -157
  203. package/dist/esm/editor/ComponentInfo.js +0 -10
  204. package/dist/esm/editor/ComponentPalette.js +0 -72
  205. package/dist/esm/editor/ComponentTree.js +0 -196
  206. package/dist/esm/editor/ContentTree.js +0 -117
  207. package/dist/esm/editor/Debug.js +0 -9
  208. package/dist/esm/editor/DictionaryEditor.js +0 -31
  209. package/dist/esm/editor/EditFrame.js +0 -57
  210. package/dist/esm/editor/EditHistory.js +0 -26
  211. package/dist/esm/editor/Editor.js +0 -23
  212. package/dist/esm/editor/EditorClient.js +0 -477
  213. package/dist/esm/editor/EditorClientHost.js +0 -7
  214. package/dist/esm/editor/FieldList.js +0 -60
  215. package/dist/esm/editor/GraphQL.js +0 -82
  216. package/dist/esm/editor/LanguageSelector.js +0 -17
  217. package/dist/esm/editor/MediaSelector.js +0 -54
  218. package/dist/esm/editor/PageInfo.js +0 -8
  219. package/dist/esm/editor/PlaceholderDropZone.js +0 -50
  220. package/dist/esm/editor/PlaceholderDropZoneHost.js +0 -7
  221. package/dist/esm/editor/Terminal.js +0 -47
  222. package/dist/esm/editor/TranslateEditor.js +0 -21
  223. package/dist/esm/editor/VersionSelector.js +0 -17
  224. package/dist/esm/editor/componentTreeHelper.js +0 -14
  225. package/dist/esm/editor/contentService.js +0 -31
  226. package/dist/esm/editor/editContext.js +0 -5
  227. package/dist/esm/editor/editService.js +0 -139
  228. package/dist/esm/editor/fieldTypes/RichTextEditor.js +0 -15
  229. package/dist/esm/editor/fieldTypes/SingleLineText.js +0 -13
  230. package/dist/esm/editor/index.js +0 -2
  231. package/dist/esm/fieldTypes.js +0 -1
  232. package/dist/esm/graphQLTypes.js +0 -1
  233. package/dist/esm/index.js +0 -7
  234. package/dist/esm/layoutData.js +0 -1
  235. package/dist/esm/loadRouteData.js +0 -123
  236. package/dist/esm/mediaProtection.js +0 -49
  237. package/types/editor/PageInfo.d.ts +0 -4
  238. /package/types/{editor → components}/TranslateEditor.d.ts +0 -0
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ export interface ItemNameDialogHandle {
3
+ show: (props: ItemNameDialogProps) => void;
4
+ }
5
+ export type ItemNameDialogProps = {
6
+ name?: string;
7
+ accept: (name: string) => void;
8
+ };
9
+ declare const ItemNameDialog: import("react").ForwardRefExoticComponent<import("react").RefAttributes<ItemNameDialogHandle>>;
10
+ export default ItemNameDialog;
@@ -0,0 +1,15 @@
1
+ export type Link = {
2
+ url?: string;
3
+ itemId?: string;
4
+ queryString?: string;
5
+ target?: string;
6
+ customTarget?: string;
7
+ type: string;
8
+ targetItemLongId?: string;
9
+ targetItemName?: string;
10
+ };
11
+ export declare function LinkEditorDialog({ linkValue, onCancel, onOk, }: {
12
+ linkValue: Link;
13
+ onOk: (link: Link) => void;
14
+ onCancel: () => void;
15
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from "react";
2
+ export default function MainLayout({ leftSidebar, content, rightSidebar, }: {
3
+ leftSidebar?: ReactNode;
4
+ content: ReactNode;
5
+ rightSidebar?: ReactNode;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,6 @@
1
- export declare const MediaSelector: ({ visible, onHide, onMediaSelected, }: {
1
+ export declare const MediaSelector: ({ visible, onHide, onMediaSelected, selectedIdPath, }: {
2
2
  visible: boolean;
3
3
  onHide: () => void;
4
4
  onMediaSelected: (mediaId: string) => void;
5
+ selectedIdPath?: string | undefined;
5
6
  }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { PictureField, PictureValue } from "..";
2
+ export declare function PictureEditorDialog({ field, onCancel, onOk, }: {
3
+ field: PictureField;
4
+ onOk: (link: PictureValue) => void;
5
+ onCancel: () => void;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { ComponentData, EditableDictionary, Page } from "..";
2
+ import { Item } from "..";
3
+ export default function SidebarTabs({ selectedComponent, page, dictionary, item, }: {
4
+ selectedComponent: ComponentData | null;
5
+ page: Page | null;
6
+ dictionary: EditableDictionary;
7
+ item?: Item;
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,6 @@
1
- export declare function Terminal({ commandHandler, onReset, }: {
1
+ /// <reference types="react" />
2
+ export declare function Terminal({ commandHandler, onReset, toolbar, }: {
2
3
  commandHandler: (text: string, callback: (text: string, finished: boolean) => void) => void;
3
4
  onReset: () => void;
5
+ toolbar?: React.ReactNode;
4
6
  }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ export declare function useEventListenerExt(eventName: string, handler: any, element: HTMLElement | Window): void;
3
+ export declare const useLocalStorage: <T>(storageKey: string, fallbackState: T) => [T, React.Dispatch<React.SetStateAction<T>>];
@@ -0,0 +1,6 @@
1
+ import { ItemDescriptor, Workbox } from "..";
2
+ export default function Workbox({ workbox, lockItem, executeWorkflowCommand, }: {
3
+ workbox: Workbox;
4
+ lockItem: (item: ItemDescriptor) => void;
5
+ executeWorkflowCommand: (item: ItemDescriptor, commandId: string) => void;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,4 @@
1
+ import { EditContextType } from "./editContext";
2
+ import { ComponentCommand, ComponentData, PlaceholderData } from "..";
3
+ export declare function getCommands(entities: (PlaceholderData | ComponentData)[], editContext: EditContextType): ComponentCommand[];
4
+ export declare function getComponentCommands(components: ComponentData[], editContext: EditContextType): ComponentCommand[];
@@ -1,3 +1,5 @@
1
+ import { ItemDescriptor } from ".";
2
+ import { Item } from "..";
1
3
  export type ItemTreeNodeData = {
2
4
  id: string;
3
5
  name: string;
@@ -10,5 +12,9 @@ export type ItemTreeNodeData = {
10
12
  resolution?: string;
11
13
  format?: string;
12
14
  created?: Date;
15
+ language: string;
16
+ version: number;
17
+ hasLayout: boolean;
13
18
  };
14
- export declare function getChildren(itemId: string, sessionId: string, templateIds?: string[]): Promise<ItemTreeNodeData[]>;
19
+ export declare function getChildren(itemId: string, sessionId: string, templateIds: string[] | undefined, includeEmbeddedItems: boolean): Promise<ItemTreeNodeData[]>;
20
+ export declare function getItem(page: ItemDescriptor, item: ItemDescriptor, sessionId: string): Promise<Item | undefined>;
@@ -1,16 +1,34 @@
1
1
  import React from "react";
2
2
  import { ToastMessage } from "primereact/toast";
3
- import { ComponentData, Dictionary, Field } from "../layoutData";
3
+ import { ComponentData, EditableDictionary, Field } from "../layoutData";
4
+ import { Page, PictureRawValue, PictureValue } from "..";
4
5
  export type DragObject = {
5
6
  type: "template" | "component" | "link-component";
6
7
  templateId: string;
7
- componentId?: string;
8
+ component?: ItemDescriptor;
9
+ };
10
+ export type CommandVisibilityScope = "editFrame" | "menu";
11
+ export type ComponentCommand = {
12
+ name: string;
13
+ label: string;
14
+ icon: string;
15
+ execute: () => void;
16
+ disabled: boolean;
17
+ visibilityScopes: CommandVisibilityScope[];
8
18
  };
9
19
  export type EditContextType = {
10
- removeComponent: (id: string, callback: (removed: boolean) => void) => void;
11
20
  showToast: (message: ToastMessage | ToastMessage[]) => void;
12
21
  sessionId: string;
13
- editField: (field: Field, value: string, noRefresh: boolean) => void;
22
+ getComponentCommands: (component: ComponentData[]) => ComponentCommand[];
23
+ selectMedia: ({ selectedIdPath, }: {
24
+ selectedIdPath: string;
25
+ }) => Promise<string | null>;
26
+ editField: (props: {
27
+ field: Field;
28
+ value?: string;
29
+ rawValue?: string | null;
30
+ refresh?: "none" | "immediate" | "delayed" | "waitForQuietPeriod";
31
+ }) => void;
14
32
  currentEditOperation?: EditOperation;
15
33
  selection: string[];
16
34
  setSelection: React.Dispatch<React.SetStateAction<string[]>>;
@@ -20,27 +38,49 @@ export type EditContextType = {
20
38
  dragObject?: DragObject;
21
39
  refreshCompletedFlag: boolean;
22
40
  updateContentEditingFields: boolean;
23
- dictionary: Dictionary;
24
- setDictionary: React.Dispatch<React.SetStateAction<Dictionary>>;
41
+ dictionary: EditableDictionary;
25
42
  unresolvedDictionaryKeys: string[];
26
43
  setUnresolvedDictionaryKeys: React.Dispatch<React.SetStateAction<string[]>>;
27
- openComponentPalette: () => void;
28
44
  getComponentById: (id: string) => ComponentData | null;
29
45
  droppedInPlaceholder: (placeholderKey: string, index: number) => void;
30
46
  getLiveField(field: Field): Field;
47
+ getLiveFieldIfExists(field: {
48
+ item: ItemDescriptor;
49
+ id: string;
50
+ }): Field | null;
31
51
  requestRefresh: (mode?: "immediate" | "delayed" | "waitForQuietPeriod") => void;
52
+ getPictureFieldValue: (field: Field, rawValue: PictureRawValue) => Promise<PictureValue | null>;
53
+ page: Page | null;
54
+ executeEditOperation: (operation: EditOperation) => void;
55
+ editorContainerRef: React.RefObject<HTMLDivElement>;
56
+ setScrollIntoView: React.Dispatch<React.SetStateAction<string | undefined>>;
57
+ scrollIntoView?: string;
58
+ focusedField?: Field;
59
+ setFocusedField: React.Dispatch<React.SetStateAction<Field | undefined>>;
60
+ zoom: number;
61
+ scroll: number;
62
+ fullscreen: boolean;
63
+ undo: (numOperations?: number) => void;
64
+ };
65
+ export type ItemDescriptor = {
66
+ id: string;
67
+ language: string;
68
+ version: number;
69
+ name?: string;
70
+ };
71
+ export type User = {
72
+ name: string;
32
73
  };
33
74
  export type EditOperation = {
34
- type: "edit-field" | "remove-component" | "move-component" | "add-component" | "link-component";
75
+ type: "edit-field" | "remove-component" | "move-component" | "add-component" | "synchronize-components" | "link-component";
35
76
  date: Date;
36
77
  noRefresh?: boolean;
37
78
  refreshAfterQuietPeriod?: boolean;
38
- pageItemId: string;
39
- pageItemLanguage: string;
40
- pageItemVersion: number;
79
+ pageItem: ItemDescriptor;
41
80
  id: string;
42
- user?: string;
81
+ user?: User;
43
82
  undone?: boolean;
83
+ isCommitted?: boolean;
44
84
  };
45
85
  export type EditFieldOperation = EditOperation & {
46
86
  type: "edit-field";
@@ -56,28 +96,59 @@ export type AddComponentOperation = EditOperation & {
56
96
  type: "add-component";
57
97
  templateId: string;
58
98
  language: string;
59
- parentItemId: string;
99
+ parent: ItemDescriptor;
60
100
  placeholderName: string;
61
101
  placeholderIndex: number;
62
- itemName?: string;
63
- componentId: string;
102
+ component: ItemDescriptor;
64
103
  };
65
104
  export type LinkComponentOperation = EditOperation & {
66
105
  type: "link-component";
67
106
  itemName?: string;
107
+ linkedComponentItem: ItemDescriptor;
68
108
  };
69
109
  export type MoveComponentOperation = EditOperation & {
70
110
  type: "move-component";
71
111
  language: string;
72
- parentItemId: string;
112
+ parent: ItemDescriptor;
73
113
  placeholderName: string;
74
114
  placeholderIndex: number;
75
- componentId: string;
115
+ component: ItemDescriptor;
76
116
  };
77
117
  export type RemoveComponentOperation = EditOperation & {
78
118
  type: "remove-component";
79
- componentId: string;
80
- componentName?: string;
119
+ components: ItemDescriptor[];
120
+ };
121
+ export type SynchronizeComponentsOperation = EditOperation & {
122
+ type: "synchronize-components";
123
+ placeholders: PlaceholderToSynchronize[];
124
+ delete: boolean;
125
+ itemsCreated?: ItemDescriptor[];
126
+ };
127
+ export type PlaceholderToSynchronize = {
128
+ name?: string;
129
+ item?: ItemDescriptor | null;
81
130
  };
82
131
  export declare const EditContextProvider: React.Provider<EditContextType | undefined>;
83
132
  export declare const useEditContext: () => EditContextType | undefined;
133
+ export type EditFrameButton = {
134
+ icon: string;
135
+ onClick: () => void;
136
+ tooltip: string;
137
+ };
138
+ export type EditFrameContextType = {
139
+ customButtons: EditFrameButton[];
140
+ setCustomButtons: React.Dispatch<React.SetStateAction<EditFrameButton[]>>;
141
+ componentId: string;
142
+ isSelected: boolean;
143
+ };
144
+ export declare const useEditFrameContext: () => EditFrameContextType | undefined;
145
+ export declare const EditFrameContextProvider: React.Provider<EditFrameContextType | undefined>;
146
+ export type FilterChildFunction = ({ component, index, }: {
147
+ component: ComponentData;
148
+ index: number;
149
+ }) => boolean;
150
+ export type EditFilterChildrenContextType = {
151
+ filterChildCallback?: FilterChildFunction;
152
+ };
153
+ export declare const useEditFilterChildrenContext: () => EditFilterChildrenContextType | undefined;
154
+ export declare const EditFilterChildrenContextProvider: React.Provider<EditFilterChildrenContextType | undefined>;
@@ -1,4 +1,6 @@
1
1
  import { EditOperation } from "./editContext";
2
+ import { Field, ItemDescriptor, PictureRawValue } from "..";
3
+ import { ItemTreeNodeData } from "./contentService";
2
4
  export declare let currentOperation: EditOperation | undefined;
3
5
  export declare function setCurrentOperation(operation: EditOperation): void;
4
6
  export type ExecutionResult = {
@@ -6,7 +8,13 @@ export type ExecutionResult = {
6
8
  summary?: string;
7
9
  details?: string;
8
10
  };
11
+ export declare function getPictureValue(field: Field, pictureRawValue: PictureRawValue, site: string, sessionId: string): Promise<any>;
9
12
  export declare function executeEditOperation(editOperation: EditOperation, sessionId: string): Promise<EditOperation | ExecutionResult>;
10
- export declare function executeUndo(sessionId: string): Promise<ExecutionResult>;
13
+ export declare function executeUndo(sessionId: string, numOperations?: number): Promise<ExecutionResult>;
14
+ export declare function lockItem(item: ItemDescriptor): Promise<ExecutionResult>;
15
+ export declare function executeWorkflowCommand(item: ItemDescriptor, commandId: string, comment: string): Promise<ExecutionResult>;
11
16
  export declare function executeRedo(sessionId: string): Promise<ExecutionResult>;
12
17
  export declare function commitChanges(sessionId: string): Promise<ExecutionResult>;
18
+ export declare function createVersion(page: ItemDescriptor, sessionId: string): Promise<ExecutionResult>;
19
+ export declare function loadInsertOptions(item: ItemDescriptor): Promise<ItemTreeNodeData[]>;
20
+ export declare function createItem(parent: ItemDescriptor, templateId: string, name: string): Promise<ExecutionResult>;
@@ -0,0 +1,4 @@
1
+ import { CheckboxField } from "../..";
2
+ export declare function CheckboxEditor({ field }: {
3
+ field: CheckboxField;
4
+ }): import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,4 @@
1
+ import { InternalLinkField } from "../..";
2
+ export declare function InternalLinkFieldEditor({ field, }: {
3
+ field: InternalLinkField;
4
+ }): import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,4 @@
1
+ import { LinkField } from "../..";
2
+ export declare function LinkFieldEditor({ field }: {
3
+ field: LinkField;
4
+ }): import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,4 @@
1
+ import { Field } from "../..";
2
+ export declare function MultiLineText({ field }: {
3
+ field: Field;
4
+ }): import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,4 @@
1
+ import { PictureField } from "@/fieldTypes";
2
+ export declare function PictureFieldEditor({ field }: {
3
+ field: PictureField;
4
+ }): import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,4 @@
1
+ import { TreeListField } from "../../fieldTypes";
2
+ export default function TreeListEditor({ field }: {
3
+ field: TreeListField;
4
+ }): import("react/jsx-runtime").JSX.Element | undefined;
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare function Section({ title, children, }: {
3
+ title: string;
4
+ children: React.ReactNode;
5
+ }): import("react/jsx-runtime").JSX.Element;
@@ -8,6 +8,9 @@ export type PictureField = Field & {
8
8
  export type LinkField = Field & {
9
9
  value: LinkValue;
10
10
  };
11
+ export type InternalLinkField = Field & {
12
+ value: LinkValue;
13
+ };
11
14
  export type PictureValue = {
12
15
  name: string;
13
16
  alt: string;
@@ -17,10 +20,18 @@ export type PictureValue = {
17
20
  export type PictureVariant = {
18
21
  name: string;
19
22
  src: string;
20
- videoUrl: string;
23
+ videoUrl?: string;
21
24
  width: number;
22
- mediaId: string;
23
25
  aspectRatioText?: string;
26
+ thumbSrc?: string;
27
+ idPath?: string;
28
+ };
29
+ export type PictureRawValue = {
30
+ variants: PictureRawVariant[];
31
+ };
32
+ export type PictureRawVariant = {
33
+ name: string;
34
+ mediaId: string;
24
35
  };
25
36
  export type ImageField = Field & {
26
37
  value: ImageValue | null;
@@ -31,6 +42,11 @@ export type ImageValue = {
31
42
  };
32
43
  export type LinkValue = {
33
44
  url: string;
45
+ type: "internal" | "external";
46
+ target: string;
47
+ targetItemLongId: string;
48
+ targetItemName: string;
49
+ queryString: string;
34
50
  };
35
51
  export interface KeyValuePair {
36
52
  key: string;
@@ -39,27 +55,26 @@ export interface KeyValuePair {
39
55
  export type EnhancedNameValueListField = {
40
56
  value: KeyValuePair[];
41
57
  };
42
- export interface MediaItemImageFields {
43
- alt: string;
44
- width: string;
45
- height: string;
46
- }
47
- export interface EnhancedTreeListFieldItem {
48
- url: string;
49
- fields: MediaItemImageFields | null;
50
- }
51
- export type EnhancedTreeListField = {
52
- value: EnhancedTreeListFieldItem[];
58
+ export type ReferencedItem = {
59
+ id: string;
60
+ name: string;
61
+ path: string;
62
+ };
63
+ export type TreeListField = Field & {
64
+ value: ReferencedItem[];
65
+ customEditorProperties: {
66
+ datasources: string[];
67
+ };
53
68
  };
54
- export type CheckboxField = {
69
+ export type CheckboxField = Field & {
55
70
  value: boolean;
56
71
  };
57
- export type DateField = {
72
+ export type DateField = Field & {
58
73
  value: DateFieldValue;
59
74
  };
60
- export type DateFieldValue = {
75
+ export type DateFieldValue = Field & {
61
76
  date: string;
62
77
  };
63
- export type NumberField = {
78
+ export type NumberField = Field & {
64
79
  value: number;
65
80
  };
@@ -1,22 +1,29 @@
1
+ import { ItemDescriptor } from "./editor";
2
+ import { TextField } from "./fieldTypes";
3
+ export type InsertOption = {
4
+ id: string;
5
+ name: string;
6
+ icon: string;
7
+ isComponent: boolean;
8
+ isHidden: any;
9
+ compatibleTemplates?: string[];
10
+ };
1
11
  export type PlaceholderData = {
2
12
  name: string;
3
13
  key: string;
4
14
  components: ComponentData[];
5
- insertOptions?: {
6
- id: string;
7
- name: string;
8
- icon: string;
9
- }[];
15
+ insertOptions?: InsertOption[];
16
+ canSynchronize?: boolean;
17
+ parentComponent?: ComponentData;
10
18
  };
11
19
  export type Field = {
12
20
  id: string;
13
21
  name: string;
14
- itemId: string;
15
- language: string;
16
- version: number;
22
+ item?: ItemDescriptor;
17
23
  path: string;
18
24
  type: string;
19
- containsFallbackValue?: boolean;
25
+ isFallback?: boolean;
26
+ isStandardValue?: boolean;
20
27
  value: unknown;
21
28
  rawValue?: string;
22
29
  jsonValue?: Field;
@@ -27,10 +34,18 @@ export type Field = {
27
34
  displayName?: string;
28
35
  sortOrder?: number;
29
36
  sectionSortOrder?: number;
37
+ customEditorProperties?: any;
38
+ canWrite?: boolean;
39
+ hasLock?: boolean;
40
+ canLock?: boolean;
41
+ lockedBy?: string;
30
42
  };
31
43
  export interface Fields {
32
44
  [name: string]: Field;
33
45
  }
46
+ export type Message = {
47
+ text: string;
48
+ };
34
49
  export type ComponentData = {
35
50
  name: string;
36
51
  id: string;
@@ -51,10 +66,17 @@ export type ComponentData = {
51
66
  editUrl: string;
52
67
  };
53
68
  linkedComponentItem: {
69
+ id: string;
54
70
  language: string;
55
71
  version: number;
56
72
  path: string;
57
73
  };
74
+ isRemoved?: boolean;
75
+ canSynchronize?: boolean;
76
+ isInheritedFromMasterLanguage?: boolean;
77
+ isRemovedFromMasterLanguage?: boolean;
78
+ visible?: boolean;
79
+ messages?: Message[];
58
80
  };
59
81
  export type LanguageVersions = {
60
82
  languageCode: string;
@@ -65,3 +87,6 @@ export type LanguageVersions = {
65
87
  export type Dictionary = {
66
88
  [key: string]: string;
67
89
  };
90
+ export type EditableDictionary = {
91
+ [key: string]: TextField;
92
+ };
@@ -1,4 +1,5 @@
1
1
  import { Fields, PlaceholderData } from "./layoutData";
2
+ import { ItemDescriptor } from "./editor";
2
3
  type Response = {
3
4
  type: "page" | "redirect" | "error" | "notfound";
4
5
  };
@@ -16,7 +17,19 @@ export type Version = {
16
17
  updated: Date;
17
18
  updatedBy: string;
18
19
  };
19
- export type Page = Response & {
20
+ export type Item = {
21
+ id: string;
22
+ language: string;
23
+ version: number;
24
+ name: string;
25
+ fields: any;
26
+ translations?: string[];
27
+ masterLanguages?: string[];
28
+ path: string;
29
+ templateId: string;
30
+ templateName: string;
31
+ };
32
+ export type Page = Response & Item & {
20
33
  type: "page";
21
34
  editing?: boolean;
22
35
  placeholders: PlaceholderData[];
@@ -24,10 +37,8 @@ export type Page = Response & {
24
37
  version: number;
25
38
  languages: Language[];
26
39
  versions: Version[];
27
- id: string;
28
- name: string;
29
- path: string;
30
40
  idPath: string;
41
+ previewUrl: string;
31
42
  meta: {
32
43
  title: string;
33
44
  description: string;
@@ -41,7 +52,25 @@ export type Page = Response & {
41
52
  "og:image": string;
42
53
  };
43
54
  fields: Fields;
44
- translations: string[];
55
+ workbox: Workbox;
56
+ };
57
+ export type WorkboxItem = {
58
+ item: ItemDescriptor;
59
+ lockedBy: string;
60
+ canLock: boolean;
61
+ hasLock: boolean;
62
+ publishStatus: string;
63
+ workflowState: string;
64
+ isFinalState: boolean;
65
+ isPublishable: boolean;
66
+ path: string;
67
+ commands: {
68
+ name: string;
69
+ id: string;
70
+ }[];
71
+ };
72
+ export type Workbox = {
73
+ items: WorkboxItem[];
45
74
  };
46
75
  export type Redirect = Response & {
47
76
  type: "redirect";
@@ -1,2 +1,3 @@
1
+ /// <reference types="node" />
1
2
  import "url";
2
3
  export declare function hashImageUrl(url: string): string;
@@ -0,0 +1,2 @@
1
+ import { NextRequest } from "next/server";
2
+ export declare function ensureAuthorized(request: NextRequest): Promise<Response | null>;
@@ -0,0 +1 @@
1
+ export * from "./authorization";
@@ -1,12 +0,0 @@
1
- "use strict";
2
- "use client";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.PageInfo = void 0;
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- function PageInfo({ page }) {
7
- var _a;
8
- if (!(page === null || page === void 0 ? void 0 : page.fields))
9
- return;
10
- return ((0, jsx_runtime_1.jsxs)("div", { className: "a-p-1", children: [(0, jsx_runtime_1.jsx)("h2", { className: "a-text-xl a-font-bold a-my-2", children: page.path }), (0, jsx_runtime_1.jsxs)("div", { className: "a-text-xs", children: ["ID: ", page.id] }), (0, jsx_runtime_1.jsxs)("div", { className: "a-text-xs", children: ["Language: ", page.language] }), (0, jsx_runtime_1.jsxs)("div", { className: "a-text-xs", children: ["Version: ", page.version] }), page.translations && ((0, jsx_runtime_1.jsxs)("div", { className: "a-text-xs", children: ["Languages: ", (_a = page.translations) === null || _a === void 0 ? void 0 : _a.join(", ")] }))] }));
11
- }
12
- exports.PageInfo = PageInfo;
@@ -1,8 +0,0 @@
1
- export function useAlpacaContext() {
2
- let context = globalThis.alpacaContext;
3
- if (!context) {
4
- context = {};
5
- globalThis.alpacaContext = context;
6
- }
7
- return context;
8
- }
@@ -1,10 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- export function ErrorFallback() {
4
- // Call resetErrorBoundary() to reset the error boundary and retry the render.
5
- return (_jsx("div", { role: "alert", children: _jsx("p", { children: "Something went wrong." }) }));
6
- }
7
- export function ErrorFallbackWithDetails({ error }) {
8
- // Call resetErrorBoundary() to reset the error boundary and retry the render.
9
- return (_jsxs("div", { role: "alert", children: [_jsx("p", { children: "Something went wrong:" }), _jsxs("pre", { style: { color: "red" }, children: [error.message, " ", error.stack] })] }));
10
- }
@@ -1,32 +0,0 @@
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
- // const addClassName = (otherAttrs: { [key: string]: unknown }): void => {
14
- // if (otherAttrs.class) {
15
- // // if any classes are defined properly already
16
- // if (otherAttrs.className) {
17
- // let className: string = otherAttrs.className as string;
18
- // className += ` ${otherAttrs.class}`;
19
- // otherAttrs.className = className;
20
- // } else {
21
- // otherAttrs.className = otherAttrs.class;
22
- // }
23
- // delete otherAttrs.class;
24
- // }
25
- // };
26
- export const Image = (_a) => {
27
- var { field } = _a, otherProps = __rest(_a, ["field"]);
28
- if (!field)
29
- return;
30
- const attrs = Object.assign(Object.assign({}, field.value), otherProps);
31
- return _jsx("img", Object.assign({}, attrs, { alt: "" }));
32
- };