@alpaca-editor/core 1.0.4170 → 1.0.4172

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 (88) hide show
  1. package/dist/components/ui/context-menu.js +47 -3
  2. package/dist/components/ui/context-menu.js.map +1 -1
  3. package/dist/config/config.d.ts +1 -2
  4. package/dist/config/config.js +47 -7
  5. package/dist/config/config.js.map +1 -1
  6. package/dist/config/types.d.ts +1 -1
  7. package/dist/editor/ItemInfo.js +8 -2
  8. package/dist/editor/ItemInfo.js.map +1 -1
  9. package/dist/editor/PictureEditor.js +2 -4
  10. package/dist/editor/PictureEditor.js.map +1 -1
  11. package/dist/editor/ai/AgentCostDisplay.js +4 -4
  12. package/dist/editor/ai/AgentCostDisplay.js.map +1 -1
  13. package/dist/editor/ai/AgentTerminal.d.ts +2 -1
  14. package/dist/editor/ai/AgentTerminal.js +960 -529
  15. package/dist/editor/ai/AgentTerminal.js.map +1 -1
  16. package/dist/editor/ai/Agents.js +56 -14
  17. package/dist/editor/ai/Agents.js.map +1 -1
  18. package/dist/editor/ai/ToolCallDisplay.js +4 -2
  19. package/dist/editor/ai/ToolCallDisplay.js.map +1 -1
  20. package/dist/editor/ai/useAgentStatus.js +14 -9
  21. package/dist/editor/ai/useAgentStatus.js.map +1 -1
  22. package/dist/editor/client/EditorShell.js +46 -21
  23. package/dist/editor/client/EditorShell.js.map +1 -1
  24. package/dist/editor/client/hooks/useSocketMessageHandler.js +12 -0
  25. package/dist/editor/client/hooks/useSocketMessageHandler.js.map +1 -1
  26. package/dist/editor/commands/itemCommands.d.ts +1 -0
  27. package/dist/editor/commands/itemCommands.js +52 -1
  28. package/dist/editor/commands/itemCommands.js.map +1 -1
  29. package/dist/editor/control-center/WebSocketMessages.js +4 -1
  30. package/dist/editor/control-center/WebSocketMessages.js.map +1 -1
  31. package/dist/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.js +4 -0
  32. package/dist/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.js.map +1 -1
  33. package/dist/editor/field-types/AttachmentEditor.d.ts +7 -2
  34. package/dist/editor/field-types/AttachmentEditor.js +74 -3
  35. package/dist/editor/field-types/AttachmentEditor.js.map +1 -1
  36. package/dist/editor/fieldTypes.d.ts +4 -0
  37. package/dist/editor/menubar/toolbar-sections/UtilityControls.js +1 -1
  38. package/dist/editor/menubar/toolbar-sections/UtilityControls.js.map +1 -1
  39. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +14 -4
  40. package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
  41. package/dist/editor/page-viewer/PageViewerFrame.js +17 -7
  42. package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
  43. package/dist/editor/services/agentService.d.ts +1 -1
  44. package/dist/editor/services/agentService.js +11 -2
  45. package/dist/editor/services/agentService.js.map +1 -1
  46. package/dist/editor/services/editService.d.ts +1 -0
  47. package/dist/editor/services/editService.js +6 -0
  48. package/dist/editor/services/editService.js.map +1 -1
  49. package/dist/editor/ui/SimpleIconButton.js +1 -1
  50. package/dist/editor/ui/SimpleIconButton.js.map +1 -1
  51. package/dist/editor/ui/TemplateSelectorDialog.d.ts +8 -0
  52. package/dist/editor/ui/TemplateSelectorDialog.js +61 -0
  53. package/dist/editor/ui/TemplateSelectorDialog.js.map +1 -0
  54. package/dist/index.d.ts +2 -2
  55. package/dist/index.js +2 -2
  56. package/dist/index.js.map +1 -1
  57. package/dist/revision.d.ts +2 -2
  58. package/dist/revision.js +2 -2
  59. package/dist/styles.css +13 -0
  60. package/dist/types.d.ts +7 -1
  61. package/package.json +1 -1
  62. package/src/components/ui/context-menu.tsx +58 -3
  63. package/src/config/config.tsx +51 -7
  64. package/src/config/types.ts +8 -2
  65. package/src/editor/ItemInfo.tsx +15 -1
  66. package/src/editor/PictureEditor.tsx +21 -23
  67. package/src/editor/ai/AgentCostDisplay.tsx +28 -6
  68. package/src/editor/ai/AgentTerminal.tsx +628 -155
  69. package/src/editor/ai/Agents.tsx +62 -12
  70. package/src/editor/ai/ToolCallDisplay.tsx +2 -5
  71. package/src/editor/ai/useAgentStatus.ts +18 -9
  72. package/src/editor/client/EditorShell.tsx +68 -32
  73. package/src/editor/client/hooks/useSocketMessageHandler.ts +28 -13
  74. package/src/editor/commands/itemCommands.tsx +76 -0
  75. package/src/editor/control-center/WebSocketMessages.tsx +4 -1
  76. package/src/editor/control-center/setup-steps/AiSetupStep/tools/GenerateToolsSection.tsx +5 -0
  77. package/src/editor/field-types/AttachmentEditor.tsx +148 -3
  78. package/src/editor/fieldTypes.ts +4 -0
  79. package/src/editor/menubar/toolbar-sections/UtilityControls.tsx +1 -1
  80. package/src/editor/page-editor-chrome/PlaceholderDropZone.tsx +12 -4
  81. package/src/editor/page-viewer/PageViewerFrame.tsx +15 -6
  82. package/src/editor/services/agentService.ts +11 -1
  83. package/src/editor/services/editService.ts +15 -0
  84. package/src/editor/ui/SimpleIconButton.tsx +1 -0
  85. package/src/editor/ui/TemplateSelectorDialog.tsx +129 -0
  86. package/src/index.ts +3 -3
  87. package/src/revision.ts +2 -2
  88. package/src/types.ts +9 -1
@@ -1 +1 @@
1
- {"version":3,"file":"editService.js","sourceRoot":"","sources":["../../../src/editor/services/editService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editService.js","sourceRoot":"","sources":["../../../src/editor/services/editService.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Tooltip, TooltipContent, TooltipTrigger, } from "../../components/ui/to
3
3
  import { cn } from "../../lib/utils";
4
4
  import { forwardRef } from "react";
5
5
  export const SimpleIconButton = forwardRef(({ onClick, className, icon, label, disabled, size, id, selected, children, showTooltip, "data-testid": dataTestId, ...props }, ref) => {
6
- const buttonElement = (_jsxs("button", { ref: ref, id: id, disabled: disabled, "data-testid": dataTestId, className: cn(typeof icon === "string" ? icon + " p-[6px]" : "p-[4px]", "rounded-full", disabled ? "cursor-default" : "hover:bg-gray-5 cursor-pointer", className, disabled && "opacity-40", size === "large" ? "text-lg" : "text-xs", selected ? "bg-theme-secondary-light text-theme-secondary" : ""), onClick: (ev) => {
6
+ const buttonElement = (_jsxs("button", { ref: ref, id: id, disabled: disabled, "data-testid": dataTestId, "aria-label": label, className: cn(typeof icon === "string" ? icon + " p-[6px]" : "p-[4px]", "rounded-full", disabled ? "cursor-default" : "hover:bg-gray-5 cursor-pointer", className, disabled && "opacity-40", size === "large" ? "text-lg" : "text-xs", selected ? "bg-theme-secondary-light text-theme-secondary" : ""), onClick: (ev) => {
7
7
  onClick(ev);
8
8
  }, ...props, children: [typeof icon !== "string" && icon, " ", children] }));
9
9
  if (showTooltip === false) {
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleIconButton.js","sourceRoot":"","sources":["../../../src/editor/ui/SimpleIconButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,cAAc,EAEd,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAqB,UAAU,EAAE,MAAM,OAAO,CAAC;AAEtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAgBxC,CACE,EACE,OAAO,EACP,SAAS,EACT,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,aAAa,EAAE,UAAU,EACzB,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,aAAa,GAAG,CACpB,kBACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,iBACL,UAAU,EACvB,SAAS,EAAE,EAAE,CACX,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,EACxD,cAAc,EAEd,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gCAAgC,EAC9D,SAAS,EACT,QAAQ,IAAI,YAAY,EACxB,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACxC,QAAQ,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,EAAE,CAChE,EACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;YACd,OAAO,CAAC,EAAE,CAAC,CAAC;QACd,CAAC,KACG,KAAK,aAER,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,OAAG,QAAQ,IACrC,CACV,CAAC;IAEF,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO,CACL,MAAC,OAAO,IAAC,aAAa,EAAE,GAAG,aACzB,KAAC,cAAc,IAAC,OAAO,kBAAE,aAAa,GAAkB,EACxD,KAAC,cAAc,cAAE,KAAK,GAAkB,IAChC,CACX,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC"}
1
+ {"version":3,"file":"SimpleIconButton.js","sourceRoot":"","sources":["../../../src/editor/ui/SimpleIconButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,cAAc,EAEd,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAqB,UAAU,EAAE,MAAM,OAAO,CAAC;AAEtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAgBxC,CACE,EACE,OAAO,EACP,SAAS,EACT,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,EAAE,EACF,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,aAAa,EAAE,UAAU,EACzB,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,aAAa,GAAG,CACpB,kBACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,iBACL,UAAU,gBACX,KAAK,EACjB,SAAS,EAAE,EAAE,CACX,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,EACxD,cAAc,EAEd,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gCAAgC,EAC9D,SAAS,EACT,QAAQ,IAAI,YAAY,EACxB,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACxC,QAAQ,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,EAAE,CAChE,EACD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE;YACd,OAAO,CAAC,EAAE,CAAC,CAAC;QACd,CAAC,KACG,KAAK,aAER,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,OAAG,QAAQ,IACrC,CACV,CAAC;IAEF,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,OAAO,CACL,MAAC,OAAO,IAAC,aAAa,EAAE,GAAG,aACzB,KAAC,cAAc,IAAC,OAAO,kBAAE,aAAa,GAAkB,EACxD,KAAC,cAAc,cAAE,KAAK,GAAkB,IAChC,CACX,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { FullItem, ItemDescriptor } from "../pageModel";
2
+ import { DialogProps } from "../client/editContext";
3
+ import { EditContextType } from "../client/editContext";
4
+ export type TemplateSelectorDialogProps = {
5
+ currentItem: FullItem;
6
+ editContext: EditContextType;
7
+ };
8
+ export declare function TemplateSelectorDialog(props: TemplateSelectorDialogProps & DialogProps<ItemDescriptor>): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,61 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button } from "../../components/ui/button";
3
+ import { useState } from "react";
4
+ import { Dialog, DialogContent, DialogHeader, DialogTitle, } from "../../components/ui/dialog";
5
+ import DialogButtons from "./DialogButtons";
6
+ import ContentTree from "../ContentTree";
7
+ import ItemSearch from "./ItemSearch";
8
+ const TEMPLATES_ROOT_ID = "{3C1715FE-6A13-4FCF-845F-DE308BA9741D}"; // /sitecore/templates
9
+ const TEMPLATE_TEMPLATE_ID = "AB86861A-6030-46C5-B394-E8F99E8B87DB"; // Template item template ID
10
+ // Helper function to normalize GUID for comparison (removes braces and converts to uppercase)
11
+ const normalizeGuid = (guid) => {
12
+ if (!guid)
13
+ return "";
14
+ return guid.replace(/[{}]/g, "").toUpperCase();
15
+ };
16
+ export function TemplateSelectorDialog(props) {
17
+ if (!props)
18
+ return null;
19
+ const [selectedItem, setSelectedItem] = useState();
20
+ const handleOk = () => {
21
+ props.onClose?.(selectedItem ?? null);
22
+ };
23
+ const handleCancel = () => {
24
+ props.onClose?.(null);
25
+ };
26
+ const handleItemSelected = async (item) => {
27
+ // Verify it's a valid template before selecting
28
+ const fullItem = await props.editContext.itemsRepository.getItem(item);
29
+ if (normalizeGuid(fullItem?.templateId) === TEMPLATE_TEMPLATE_ID) {
30
+ setSelectedItem({
31
+ id: item.id,
32
+ version: 0,
33
+ language: "en",
34
+ });
35
+ }
36
+ };
37
+ return (_jsx(Dialog, { open: true, onOpenChange: (open) => {
38
+ if (!open) {
39
+ props.onClose?.(null);
40
+ }
41
+ }, children: _jsxs(DialogContent, { style: { width: "70vw", height: "90vh" }, children: [_jsx(DialogHeader, { children: _jsx(DialogTitle, { children: "Select Template" }) }), _jsxs("div", { className: "flex h-full flex-1 flex-col", children: [_jsx("div", { className: "mb-3", children: _jsx(ItemSearch, { rootItemIds: [TEMPLATES_ROOT_ID], itemSelected: handleItemSelected, language: props.currentItem.language, autoFocus: true }) }), _jsx("div", { className: "relative flex-1 overflow-auto", children: _jsx(ContentTree, { language: props.currentItem.language, rootItemIds: [TEMPLATES_ROOT_ID], selectedItemIds: selectedItem?.id ? [selectedItem.id] : [], selectionMode: "single", className: "h-full p-1", onSelectionChange: async (node) => {
42
+ if (!node[0]) {
43
+ setSelectedItem(null);
44
+ }
45
+ else {
46
+ const item = await props.editContext.itemsRepository.getItem(node[0]);
47
+ // Only allow selection of actual templates, not template folders
48
+ if (normalizeGuid(item?.templateId) === TEMPLATE_TEMPLATE_ID) {
49
+ setSelectedItem({
50
+ id: node[0].id,
51
+ version: 0,
52
+ language: "en",
53
+ });
54
+ }
55
+ else {
56
+ setSelectedItem(null);
57
+ }
58
+ }
59
+ }, hideRootNodes: true }) }), _jsxs(DialogButtons, { children: [_jsx(Button, { onClick: handleCancel, variant: "ghost", children: "Cancel" }), _jsx(Button, { onClick: handleOk, variant: "default", disabled: !selectedItem, children: "Change Template" })] })] })] }) }));
60
+ }
61
+ //# sourceMappingURL=TemplateSelectorDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateSelectorDialog.js","sourceRoot":"","sources":["../../../src/editor/ui/TemplateSelectorDialog.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export * from "./config/types";
2
2
  export * from "./types";
3
3
  export { useEditorSettings, useItemNameValidation, } from "./editor/hooks/useEditorSettings";
4
4
  export { Editor } from "./editor/Editor";
5
- export { configureForUser, defaultPictureVariantButtons } from "./config/config";
5
+ export { configureForUser } from "./config/config";
6
6
  export type { DialogProps } from "./editor/client/editContext";
7
7
  export { useEditContext } from "./editor/client/editContext";
8
8
  export type { LocalizeItemCommand, LocalizeItemCommandContext, LocalizeItemCommandData, } from "./editor/commands/itemCommands";
@@ -10,7 +10,7 @@ export { requestTranslation } from "./editor/services/translationService";
10
10
  export { defaultTranslateAll } from "./editor/commands/localizeItem/LocalizeItemUtils";
11
11
  export { Card } from "./components/ui/card";
12
12
  export { Button } from "./components/ui/button";
13
- export { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogClose } from "./components/ui/dialog";
13
+ export { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogClose, } from "./components/ui/dialog";
14
14
  export { Input } from "./components/ui/input";
15
15
  export { Select } from "./components/ui/select";
16
16
  export { TabView, TabPanel } from "./components/ui/tabs";
package/dist/index.js CHANGED
@@ -2,13 +2,13 @@ export * from "./config/types";
2
2
  export * from "./types";
3
3
  export { useEditorSettings, useItemNameValidation, } from "./editor/hooks/useEditorSettings";
4
4
  export { Editor } from "./editor/Editor";
5
- export { configureForUser, defaultPictureVariantButtons } from "./config/config";
5
+ export { configureForUser } from "./config/config";
6
6
  export { useEditContext } from "./editor/client/editContext";
7
7
  export { requestTranslation } from "./editor/services/translationService";
8
8
  export { defaultTranslateAll } from "./editor/commands/localizeItem/LocalizeItemUtils";
9
9
  export { Card } from "./components/ui/card";
10
10
  export { Button } from "./components/ui/button";
11
- export { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogClose } from "./components/ui/dialog";
11
+ export { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogClose, } from "./components/ui/dialog";
12
12
  export { Input } from "./components/ui/input";
13
13
  export { Select } from "./components/ui/select";
14
14
  export { TabView, TabPanel } from "./components/ui/tabs";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAGjF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAQ7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAEvF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,MAAM,EACN,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAKpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAQ7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAEvF,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,MAAM,EACN,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAKpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const version = "1.0.4170";
2
- export declare const buildDate = "2025-10-17 01:45:57";
1
+ export declare const version = "1.0.4172";
2
+ export declare const buildDate = "2025-10-17 14:01:33";
package/dist/revision.js CHANGED
@@ -1,3 +1,3 @@
1
- export const version = "1.0.4170";
2
- export const buildDate = "2025-10-17 01:45:57";
1
+ export const version = "1.0.4172";
2
+ export const buildDate = "2025-10-17 14:01:33";
3
3
  //# sourceMappingURL=revision.js.map
package/dist/styles.css CHANGED
@@ -101,6 +101,7 @@
101
101
  --color-white: #fff;
102
102
  --spacing: 0.25rem;
103
103
  --breakpoint-xl: 80rem;
104
+ --container-xs: 20rem;
104
105
  --container-md: 28rem;
105
106
  --container-lg: 32rem;
106
107
  --container-xl: 36rem;
@@ -790,6 +791,9 @@
790
791
  .min-h-16 {
791
792
  min-height: calc(var(--spacing) * 16);
792
793
  }
794
+ .min-h-24 {
795
+ min-height: calc(var(--spacing) * 24);
796
+ }
793
797
  .min-h-\[60px\] {
794
798
  min-height: 60px;
795
799
  }
@@ -988,6 +992,9 @@
988
992
  .max-w-xl {
989
993
  max-width: var(--container-xl);
990
994
  }
995
+ .max-w-xs {
996
+ max-width: var(--container-xs);
997
+ }
991
998
  .min-w-0 {
992
999
  min-width: calc(var(--spacing) * 0);
993
1000
  }
@@ -2053,6 +2060,9 @@
2053
2060
  .object-scale-down {
2054
2061
  object-fit: scale-down;
2055
2062
  }
2063
+ .\!p-0 {
2064
+ padding: calc(var(--spacing) * 0) !important;
2065
+ }
2056
2066
  .p-0 {
2057
2067
  padding: calc(var(--spacing) * 0);
2058
2068
  }
@@ -2585,6 +2595,9 @@
2585
2595
  .opacity-75 {
2586
2596
  opacity: 75%;
2587
2597
  }
2598
+ .opacity-80 {
2599
+ opacity: 80%;
2600
+ }
2588
2601
  .opacity-90 {
2589
2602
  opacity: 90%;
2590
2603
  }
package/dist/types.d.ts CHANGED
@@ -55,7 +55,7 @@ export type EditSession = {
55
55
  color: string;
56
56
  };
57
57
  export type EditOperation = {
58
- type: "edit-field" | "remove-component" | "move-component" | "add-component" | "synchronize-components" | "link-component" | "duplicate-components" | "rename-item";
58
+ type: "edit-field" | "remove-component" | "move-component" | "add-component" | "synchronize-components" | "link-component" | "duplicate-components" | "rename-item" | "change-template";
59
59
  date: string;
60
60
  id: string;
61
61
  user?: User;
@@ -73,6 +73,12 @@ export type RenameItemOperation = EditOperation & {
73
73
  newName: string;
74
74
  oldName?: string;
75
75
  };
76
+ export type ChangeTemplateOperation = EditOperation & {
77
+ type: "change-template";
78
+ itemId: string;
79
+ newTemplateId: string;
80
+ oldTemplateId?: string;
81
+ };
76
82
  export type EditFieldOperation = EditOperation & {
77
83
  type: "edit-field";
78
84
  itemId: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alpaca-editor/core",
3
- "version": "1.0.4170",
3
+ "version": "1.0.4172",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -165,8 +165,15 @@ function ContextMenuContent({
165
165
  const { isOpen, position, close, registerContainer, unregisterContainer } =
166
166
  useContextMenuRoot();
167
167
 
168
+ const [adjustedPosition, setAdjustedPosition] = React.useState<{
169
+ left: number;
170
+ top: number;
171
+ } | null>(null);
172
+ const menuRef = React.useRef<HTMLDivElement | null>(null);
173
+
168
174
  const contentRefCallback = React.useCallback(
169
175
  (el: HTMLDivElement | null) => {
176
+ menuRef.current = el;
170
177
  if (el) {
171
178
  registerContainer(el);
172
179
  }
@@ -174,11 +181,55 @@ function ContextMenuContent({
174
181
  [registerContainer],
175
182
  );
176
183
 
184
+ // Calculate adjusted position based on viewport bounds
185
+ React.useEffect(() => {
186
+ if (!isOpen || !position || !menuRef.current) {
187
+ setAdjustedPosition(null);
188
+ return;
189
+ }
190
+
191
+ const OFFSET = 1;
192
+ const menuRect = menuRef.current.getBoundingClientRect();
193
+ const viewportWidth = window.innerWidth;
194
+ const viewportHeight = window.innerHeight;
195
+
196
+ let left = position.x + OFFSET;
197
+ let top = position.y + OFFSET;
198
+
199
+ // Check if menu would overflow bottom of viewport
200
+ if (top + menuRect.height > viewportHeight) {
201
+ // Position above the click point
202
+ top = position.y - menuRect.height - OFFSET;
203
+ // Ensure it doesn't go above the viewport
204
+ if (top < 0) {
205
+ top = Math.max(0, viewportHeight - menuRect.height);
206
+ }
207
+ }
208
+
209
+ // Check if menu would overflow right edge of viewport
210
+ if (left + menuRect.width > viewportWidth) {
211
+ // Position to the left of the click point
212
+ left = position.x - menuRect.width - OFFSET;
213
+ // Ensure it doesn't go off the left edge
214
+ if (left < 0) {
215
+ left = Math.max(0, viewportWidth - menuRect.width);
216
+ }
217
+ }
218
+
219
+ setAdjustedPosition({ left, top });
220
+ }, [isOpen, position, children]);
221
+
177
222
  if (!isOpen || !position) return null;
178
223
 
179
224
  const OFFSET = 1;
180
- const left = position.x + OFFSET;
181
- const top = position.y + OFFSET;
225
+ const defaultLeft = position.x + OFFSET;
226
+ const defaultTop = position.y + OFFSET;
227
+
228
+ // Use adjusted position if available, otherwise use default
229
+ const finalPosition = adjustedPosition || {
230
+ left: defaultLeft,
231
+ top: defaultTop,
232
+ };
182
233
 
183
234
  const node = (
184
235
  <div
@@ -189,7 +240,11 @@ function ContextMenuContent({
189
240
  "bg-popover text-popover-foreground z-50 min-w-[8rem] overflow-visible rounded-md border font-light shadow-md",
190
241
  className,
191
242
  )}
192
- style={{ position: "fixed", left, top }}
243
+ style={{
244
+ position: "fixed",
245
+ left: finalPosition.left,
246
+ top: finalPosition.top,
247
+ }}
193
248
  onKeyDownCapture={(e) => {
194
249
  if (e.key === "Escape") {
195
250
  e.stopPropagation();
@@ -178,7 +178,7 @@ const openTargetActionButton: ClientFieldButton = {
178
178
  const selectImageButton: ClientFieldButton = {
179
179
  label: "Select",
180
180
  icon: (<ImageIcon strokeWidth={1} size={16} />) as React.ReactNode,
181
- showInMenu: false, // Primary action - appears outside menu
181
+ isPimaryAction: true, // Primary action - appears outside menu but show nontheless in the menu
182
182
  clientAction: async (props) => {
183
183
  const { field, editContext, variantName, variantData } = props as any;
184
184
  if (!variantName) return;
@@ -318,12 +318,47 @@ const cropVariantButton: ClientFieldButton = {
318
318
  description: "Crop the image variant",
319
319
  };
320
320
 
321
- export const defaultPictureVariantButtons: ClientFieldButton[] = [
322
- selectImageButton,
323
- selectVideoButton,
324
- cropVariantButton,
325
- resetVariantButton,
326
- ];
321
+ const openPictureMediaItemButton: ClientFieldButton = {
322
+ label: "Open media item",
323
+ icon: (<ExternalLink strokeWidth={1} size={16} />) as React.ReactNode,
324
+ visible: ({ variantData }) => !!variantData?.mediaId,
325
+ clientAction: (props) => {
326
+ const { field, editContext, variantData } = props as any;
327
+ const mediaId = variantData?.mediaId;
328
+
329
+ if (mediaId) {
330
+ editContext.loadItem({
331
+ id: mediaId,
332
+ language: field.descriptor.item.language,
333
+ version: 0,
334
+ });
335
+ }
336
+ },
337
+ isGenerator: false,
338
+ id: "open-picture-media-item",
339
+ description: "Opens the media item in the content editor",
340
+ };
341
+
342
+ const openImageMediaItemButton: ClientFieldButton = {
343
+ label: "Open media item",
344
+ icon: (<ExternalLink strokeWidth={1} size={16} />) as React.ReactNode,
345
+ clientAction: ({ field, editContext }) => {
346
+ // Extract mediaId from XML rawValue: <image mediaid="{GUID}" />
347
+ const rawValue = field.rawValue || "";
348
+ const mediaIdMatch = rawValue.match(/mediaid="[{]?([0-9a-fA-F-]+)[}]?"/i);
349
+
350
+ if (mediaIdMatch && mediaIdMatch[1]) {
351
+ editContext.loadItem({
352
+ id: mediaIdMatch[1],
353
+ language: field.descriptor.item.language,
354
+ version: 0,
355
+ });
356
+ }
357
+ },
358
+ isGenerator: false,
359
+ id: "open-image-media-item",
360
+ description: "Opens the media item in the content editor",
361
+ };
327
362
 
328
363
  const pageEditorRightSidebar = {
329
364
  title: "COMPONENT NAVIGATOR & HISTORY",
@@ -371,6 +406,14 @@ const guidListPaste: FieldTypePasteConfig = {
371
406
  };
372
407
 
373
408
  export const getConfiguration = (): EditorConfiguration => {
409
+ const defaultPictureVariantButtons: ClientFieldButton[] = [
410
+ selectImageButton,
411
+ selectVideoButton,
412
+ cropVariantButton,
413
+ openPictureMediaItemButton,
414
+ resetVariantButton,
415
+ ];
416
+
374
417
  // Check if fullscreen query parameter is set
375
418
  const isFullscreenMode =
376
419
  typeof window !== "undefined" &&
@@ -451,6 +494,7 @@ export const getConfiguration = (): EditorConfiguration => {
451
494
  },
452
495
  image: {
453
496
  editor: ImageFieldEditor,
497
+ buttons: [openImageMediaItemButton],
454
498
  },
455
499
  droplink: {
456
500
  editor: DropLinkEditor,
@@ -34,7 +34,7 @@ export type ClientFieldButton = FieldButton & {
34
34
  clientAction?: FieldAction;
35
35
  visible?: VisibleFunction;
36
36
  componentAction?: string;
37
- showInMenu?: boolean; // If false, button appears as primary action outside menu. Default: true
37
+ isPimaryAction?: boolean; // If false, button appears as primary action outside menu. Default: true
38
38
  };
39
39
 
40
40
  export type FieldAction = ({
@@ -279,7 +279,13 @@ export type TourStep = {
279
279
  extendFocus?: number;
280
280
  prepareAction?: () => Promise<void>;
281
281
  action?: () => Promise<void>;
282
- bubblePosition?: "left" | "right" | "bottom" | "top-right" | "bottom-right" | "top-left";
282
+ bubblePosition?:
283
+ | "left"
284
+ | "right"
285
+ | "bottom"
286
+ | "top-right"
287
+ | "bottom-right"
288
+ | "top-left";
283
289
  flipArrow?: boolean;
284
290
  waitForUserInput?: () => Promise<string | void>;
285
291
  buttons?: TourButton[];
@@ -1,11 +1,12 @@
1
1
  "use client";
2
2
 
3
- import { Pencil } from "lucide-react";
3
+ import { Pencil, RefreshCw } from "lucide-react";
4
4
  import { useEditContext } from "./client/editContext";
5
5
  import { FullItem } from "./pageModel";
6
6
  import { CopyButton } from "../components/ui/copy-button";
7
7
  import { Section } from "./ui/Section";
8
8
  import { SimpleIconButton } from "./ui/SimpleIconButton";
9
+ import { changeTemplateCommand } from "./commands/itemCommands";
9
10
 
10
11
  export function ItemInfo({ item }: { item: FullItem | null }) {
11
12
  if (!item?.fields) return;
@@ -74,6 +75,19 @@ export function ItemInfo({ item }: { item: FullItem | null }) {
74
75
  {item.templateName} ({item.templateId}){" "}
75
76
  </span>
76
77
  <CopyButton textToCopy={item.templateId} iconOnly />
78
+ {item.canWriteItem && (
79
+ <SimpleIconButton
80
+ onClick={() => {
81
+ editContext?.executeCommand({
82
+ command: changeTemplateCommand,
83
+ data: { items: [item] },
84
+ });
85
+ }}
86
+ icon={<RefreshCw size={14} strokeWidth={1} />}
87
+ label="Change Template"
88
+ className="!p-0"
89
+ />
90
+ )}
77
91
  </div>
78
92
 
79
93
  {item.masterLanguages &&
@@ -10,7 +10,7 @@ import {
10
10
  } from "./FieldActionsOverlay";
11
11
  import { ImageEditButton, MenuAction } from "./ImageEditButton";
12
12
  import { MagicEditImageIcon } from "./ui/Icons";
13
- import { ImagePlus, ExternalLink, Settings, Zap } from "lucide-react";
13
+ import { Settings, Zap } from "lucide-react";
14
14
 
15
15
  export function PictureEditor({
16
16
  field,
@@ -135,7 +135,7 @@ export function PictureEditor({
135
135
 
136
136
  // Separate primary actions (outside menu) and menu actions
137
137
  const primaryActions: MenuAction[] = visibleVariantButtons
138
- .filter((button) => (button as any).showInMenu === false)
138
+ .filter((button) => (button as any).isPimaryAction)
139
139
  .map((button) => ({
140
140
  id: button.id,
141
141
  label: button.label,
@@ -160,28 +160,26 @@ export function PictureEditor({
160
160
  // Build actions for the dropdown menu (only buttons with showInMenu !== false)
161
161
  const menuActions: MenuAction[] = [
162
162
  // Variant buttons that should appear in menu
163
- ...visibleVariantButtons
164
- .filter((button) => (button as any).showInMenu !== false)
165
- .map((button) => ({
166
- id: button.id,
167
- label: button.label,
168
- icon: renderIcon(button.icon, button.isGenerator),
169
- onClick: (e?: React.MouseEvent) => {
170
- const clientButton = button as any;
171
- // Handle component actions (like crop)
172
- if (clientButton.componentAction === "open-cropper") {
173
- setShowCropper(true);
174
- return;
175
- }
163
+ ...visibleVariantButtons.map((button) => ({
164
+ id: button.id,
165
+ label: button.label,
166
+ icon: renderIcon(button.icon, button.isGenerator),
167
+ onClick: (e?: React.MouseEvent) => {
168
+ const clientButton = button as any;
169
+ // Handle component actions (like crop)
170
+ if (clientButton.componentAction === "open-cropper") {
171
+ setShowCropper(true);
172
+ return;
173
+ }
176
174
 
177
- if (button.parameters && button.parameters.length > 0) {
178
- fieldActionsOverlay.current?.show(e, button);
179
- } else {
180
- handleVariantButtonClick(button);
181
- }
182
- },
183
- parameters: button.parameters,
184
- })),
175
+ if (button.parameters && button.parameters.length > 0) {
176
+ fieldActionsOverlay.current?.show(e, button);
177
+ } else {
178
+ handleVariantButtonClick(button);
179
+ }
180
+ },
181
+ parameters: button.parameters,
182
+ })),
185
183
  // Field-level buttons from server
186
184
  ...fieldButtons.map((button) => ({
187
185
  id: button.id,