@alpaca-editor/core 1.0.3812 → 1.0.3815
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.
- package/dist/components/ui/context-menu.d.ts +25 -0
- package/dist/components/ui/context-menu.js +51 -0
- package/dist/components/ui/context-menu.js.map +1 -0
- package/dist/config/config.js +3 -2
- package/dist/config/config.js.map +1 -1
- package/dist/config/types.d.ts +4 -2
- package/dist/editor/ComponentInfo.js +1 -1
- package/dist/editor/ComponentInfo.js.map +1 -1
- package/dist/editor/ConfirmationDialog.d.ts +1 -1
- package/dist/editor/ContextMenu.d.ts +1 -1
- package/dist/editor/ContextMenu.js +24 -9
- package/dist/editor/ContextMenu.js.map +1 -1
- package/dist/editor/ImageEditor.js +2 -2
- package/dist/editor/ImageEditor.js.map +1 -1
- package/dist/editor/ItemInfo.js +2 -2
- package/dist/editor/ItemInfo.js.map +1 -1
- package/dist/editor/MainLayout.js +3 -3
- package/dist/editor/MainLayout.js.map +1 -1
- package/dist/editor/Titlebar.js +1 -1
- package/dist/editor/Titlebar.js.map +1 -1
- package/dist/editor/ai/AiTerminal.js +19 -12
- package/dist/editor/ai/AiTerminal.js.map +1 -1
- package/dist/editor/client/EditorClient.js +19 -4
- package/dist/editor/client/EditorClient.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +1 -1
- package/dist/editor/client/operations.js +15 -14
- package/dist/editor/client/operations.js.map +1 -1
- package/dist/editor/client/pageModelBuilder.js +8 -5
- package/dist/editor/client/pageModelBuilder.js.map +1 -1
- package/dist/editor/commands/componentCommands.js +15 -13
- package/dist/editor/commands/componentCommands.js.map +1 -1
- package/dist/editor/componentTreeHelper.js +3 -3
- package/dist/editor/componentTreeHelper.js.map +1 -1
- package/dist/editor/control-center/ControlCenterMenu.js +3 -3
- package/dist/editor/control-center/ControlCenterMenu.js.map +1 -1
- package/dist/editor/field-types/TreeListEditor.js +4 -4
- package/dist/editor/field-types/TreeListEditor.js.map +1 -1
- package/dist/editor/page-editor-chrome/FrameMenu.js +52 -14
- package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +5 -5
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +114 -45
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.d.ts +0 -1
- package/dist/editor/page-viewer/PageViewerFrame.js +119 -215
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/page-viewer/pageModelBuilder.d.ts +3 -0
- package/dist/editor/page-viewer/pageModelBuilder.js +299 -0
- package/dist/editor/page-viewer/pageModelBuilder.js.map +1 -0
- package/dist/editor/pageModel.d.ts +5 -0
- package/dist/editor/sidebar/ComponentPalette.js +30 -30
- package/dist/editor/sidebar/ComponentPalette.js.map +1 -1
- package/dist/editor/sidebar/ComponentTree.js +7 -6
- package/dist/editor/sidebar/ComponentTree.js.map +1 -1
- package/dist/editor/sidebar/MainContentTree.js +1 -1
- package/dist/editor/sidebar/MainContentTree.js.map +1 -1
- package/dist/editor/sidebar/SidebarView.js +3 -3
- package/dist/editor/sidebar/SidebarView.js.map +1 -1
- package/dist/editor/ui/CopyToClipboardButton.js +2 -1
- package/dist/editor/ui/CopyToClipboardButton.js.map +1 -1
- package/dist/editor/ui/Icons.d.ts +0 -1
- package/dist/editor/ui/Icons.js +0 -3
- package/dist/editor/ui/Icons.js.map +1 -1
- package/dist/editor/ui/Section.js +1 -1
- package/dist/editor/ui/Section.js.map +1 -1
- package/dist/editor/ui/SimpleMenu.d.ts +1 -8
- package/dist/editor/ui/SimpleMenu.js +1 -1
- package/dist/editor/ui/SimpleMenu.js.map +1 -1
- package/dist/editor/utils.d.ts +2 -2
- package/dist/editor/utils.js +57 -9
- package/dist/editor/utils.js.map +1 -1
- package/dist/lib/safelist.js +1 -1
- package/dist/lib/safelist.js.map +1 -1
- package/dist/splash-screen/SplashScreen.js +0 -1
- package/dist/splash-screen/SplashScreen.js.map +1 -1
- package/dist/styles.css +242 -59
- package/dist/types.d.ts +2 -2
- package/package.json +3 -2
- package/src/components/ui/context-menu.tsx +250 -0
- package/src/config/config.tsx +2 -2
- package/src/config/types.ts +4 -2
- package/src/editor/ComponentInfo.tsx +3 -5
- package/src/editor/ConfirmationDialog.tsx +1 -1
- package/src/editor/ContextMenu.tsx +68 -19
- package/src/editor/ImageEditor.tsx +2 -2
- package/src/editor/ItemInfo.tsx +4 -4
- package/src/editor/MainLayout.tsx +3 -4
- package/src/editor/Titlebar.tsx +1 -1
- package/src/editor/ai/AiTerminal.tsx +31 -24
- package/src/editor/client/EditorClient.tsx +23 -6
- package/src/editor/client/editContext.ts +1 -1
- package/src/editor/client/operations.ts +16 -14
- package/src/editor/client/pageModelBuilder.ts +26 -18
- package/src/editor/commands/componentCommands.tsx +58 -39
- package/src/editor/componentTreeHelper.tsx +3 -2
- package/src/editor/control-center/ControlCenterMenu.tsx +4 -4
- package/src/editor/field-types/TreeListEditor.tsx +11 -11
- package/src/editor/page-editor-chrome/FrameMenu.tsx +81 -17
- package/src/editor/page-editor-chrome/InlineEditor.tsx +5 -5
- package/src/editor/page-editor-chrome/PlaceholderDropZone.tsx +12 -15
- package/src/editor/page-editor-chrome/PlaceholderDropZones.tsx +159 -68
- package/src/editor/page-viewer/PageViewerFrame.tsx +131 -300
- package/src/editor/page-viewer/pageModelBuilder.ts +412 -0
- package/src/editor/pageModel.ts +5 -0
- package/src/editor/sidebar/ComponentPalette.tsx +108 -106
- package/src/editor/sidebar/ComponentTree.tsx +10 -5
- package/src/editor/sidebar/MainContentTree.tsx +1 -1
- package/src/editor/sidebar/SidebarView.tsx +9 -9
- package/src/editor/ui/CopyToClipboardButton.tsx +2 -1
- package/src/editor/ui/Icons.tsx +0 -18
- package/src/editor/ui/Section.tsx +4 -4
- package/src/editor/ui/SimpleMenu.tsx +5 -13
- package/src/editor/utils.ts +74 -17
- package/src/lib/safelist.tsx +2 -0
- package/src/splash-screen/SplashScreen.tsx +0 -1
- package/src/types.ts +2 -4
- package/styles.css +58 -17
|
@@ -17,25 +17,31 @@ export function PlaceholderDropZones({ scale, iframe, size, }) {
|
|
|
17
17
|
(!editContext?.dragObject && !editContext.selectedForInsertion) ||
|
|
18
18
|
!placeholders)
|
|
19
19
|
return null;
|
|
20
|
-
const matchingPlaceholders = placeholders.filter((x) =>
|
|
21
|
-
x.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
const matchingPlaceholders = placeholders.filter((x) => {
|
|
21
|
+
// x.parentComponent?.id === editContext.selectedForInsertion ||
|
|
22
|
+
const matchingInsertOptions = x.insertOptions?.find((y) =>
|
|
23
|
+
// y.typeId === editContext.selectedForInsertion ||
|
|
24
|
+
y.typeId === editContext.dragObject?.typeId);
|
|
25
|
+
return matchingInsertOptions !== undefined;
|
|
26
|
+
});
|
|
27
|
+
console.log("matching placeholders: ", matchingPlaceholders, editContext.selectedForInsertion, editContext.dragObject);
|
|
27
28
|
if (!iframe)
|
|
28
29
|
return;
|
|
29
30
|
const zones = [];
|
|
30
31
|
const scrollHeight = editContext.pageView.editorIframeRef?.current?.contentWindow?.document
|
|
31
32
|
.documentElement.scrollHeight || 0;
|
|
32
33
|
matchingPlaceholders.forEach((placeholder) => {
|
|
33
|
-
|
|
34
|
+
let placeholderElement = iframe.contentWindow?.document.body.querySelector("[data-placeholder-start='" + placeholder.key + "']");
|
|
35
|
+
if (!placeholderElement && placeholder.components.length > 0) {
|
|
36
|
+
placeholderElement = placeholder.components[0]?.firstDOMElement;
|
|
37
|
+
}
|
|
34
38
|
if (!placeholderElement)
|
|
35
39
|
return;
|
|
36
40
|
const prev = getPreviousElement(placeholderElement);
|
|
37
41
|
const nextOrParent = getNextElement(placeholderElement) || placeholderElement.parentElement;
|
|
38
|
-
|
|
42
|
+
let orientation = placeholderElement?.getAttribute("data-orientation");
|
|
43
|
+
if (!orientation)
|
|
44
|
+
orientation = detectOrientation(placeholderElement, placeholder.components);
|
|
39
45
|
const rect = (prev ?? nextOrParent).getBoundingClientRect();
|
|
40
46
|
const zoom = pageViewContext.zoom;
|
|
41
47
|
const position = orientation === "horizontal"
|
|
@@ -70,42 +76,63 @@ export function PlaceholderDropZones({ scale, iframe, size, }) {
|
|
|
70
76
|
anchor,
|
|
71
77
|
description,
|
|
72
78
|
});
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
79
|
+
placeholder.components.forEach((component) => {
|
|
80
|
+
const componentRect = findComponentRect(iframe, component);
|
|
81
|
+
if (!componentRect)
|
|
82
|
+
return;
|
|
83
|
+
const position = getPositionFromRect(componentRect.rect, pageViewContext.zoom, orientation);
|
|
84
|
+
index++;
|
|
85
|
+
zones.push({
|
|
86
|
+
placeholder,
|
|
87
|
+
position,
|
|
88
|
+
index,
|
|
89
|
+
anchor: orientation === "horizontal" ? "right" : "bottom",
|
|
90
|
+
element: componentRect.elements[componentRect.elements.length - 1],
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
// let nextElement = placeholderElement?.nextElementSibling;
|
|
94
|
+
// while (nextElement) {
|
|
95
|
+
// nextElement = nextElement?.nextElementSibling;
|
|
96
|
+
// if (nextElement) {
|
|
97
|
+
// if (
|
|
98
|
+
// nextElement.getAttribute("data-placeholder-end") === placeholder.key
|
|
99
|
+
// ) {
|
|
100
|
+
// break;
|
|
101
|
+
// }
|
|
102
|
+
// if (nextElement.getAttribute("data-component-end")) {
|
|
103
|
+
// const componentRect = findComponentRect(
|
|
104
|
+
// iframe,
|
|
105
|
+
// (nextElement.getAttribute("data-component-end") ||
|
|
106
|
+
// nextElement.getAttribute("data-dropzone"))!,
|
|
107
|
+
// );
|
|
108
|
+
// if (!componentRect) continue;
|
|
109
|
+
// const position = getPositionFromRect(
|
|
110
|
+
// componentRect.rect,
|
|
111
|
+
// pageViewContext.zoom,
|
|
112
|
+
// orientation,
|
|
113
|
+
// );
|
|
114
|
+
// index++;
|
|
115
|
+
// zones.push({
|
|
116
|
+
// placeholder,
|
|
117
|
+
// position,
|
|
118
|
+
// index,
|
|
119
|
+
// anchor: orientation === "horizontal" ? "right" : "bottom",
|
|
120
|
+
// element: componentRect.elements[componentRect.elements.length - 1]!,
|
|
121
|
+
// });
|
|
122
|
+
// } else if (nextElement.getAttribute("data-dropzone")) {
|
|
123
|
+
// const rect = nextElement.getBoundingClientRect();
|
|
124
|
+
// const position = getPositionFromRect(rect, pageViewContext.zoom);
|
|
125
|
+
// index++;
|
|
126
|
+
// zones.push({
|
|
127
|
+
// placeholder,
|
|
128
|
+
// position,
|
|
129
|
+
// index,
|
|
130
|
+
// anchor: orientation === "horizontal" ? "left" : "top",
|
|
131
|
+
// element: nextElement,
|
|
132
|
+
// });
|
|
133
|
+
// }
|
|
134
|
+
// }
|
|
135
|
+
// }
|
|
109
136
|
});
|
|
110
137
|
return zones.map((zone, index) => {
|
|
111
138
|
const x = Math.min(pageViewContext.viewport.width - 20, Math.max(20, zone.position.x * (scale || 1)));
|
|
@@ -142,4 +169,46 @@ function getPositionFromRect(rect, zoom, orientation) {
|
|
|
142
169
|
};
|
|
143
170
|
return position;
|
|
144
171
|
}
|
|
172
|
+
function detectOrientation(placeholderElement, components) {
|
|
173
|
+
// Check parent element for flex/grid direction
|
|
174
|
+
const parentElement = placeholderElement.parentElement;
|
|
175
|
+
if (parentElement) {
|
|
176
|
+
const parentStyle = window.getComputedStyle(parentElement);
|
|
177
|
+
const display = parentStyle.getPropertyValue("display");
|
|
178
|
+
// Check for flex direction
|
|
179
|
+
if (display === "flex" || display === "inline-flex") {
|
|
180
|
+
const flexDirection = parentStyle.getPropertyValue("flex-direction");
|
|
181
|
+
if (flexDirection === "row" || flexDirection === "row-reverse") {
|
|
182
|
+
return "horizontal";
|
|
183
|
+
}
|
|
184
|
+
if (flexDirection === "column" || flexDirection === "column-reverse") {
|
|
185
|
+
return "vertical";
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// Check for grid layout
|
|
189
|
+
if (display === "grid" || display === "inline-grid") {
|
|
190
|
+
const gridAutoFlow = parentStyle.getPropertyValue("grid-auto-flow");
|
|
191
|
+
if (gridAutoFlow.includes("column")) {
|
|
192
|
+
return "horizontal";
|
|
193
|
+
}
|
|
194
|
+
if (gridAutoFlow.includes("row")) {
|
|
195
|
+
return "vertical";
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// Analyze sibling positions if available
|
|
200
|
+
if (components.length > 1) {
|
|
201
|
+
const prevRect = components[0]?.firstDOMElement?.getBoundingClientRect();
|
|
202
|
+
const nextRect = components[1]?.firstDOMElement?.getBoundingClientRect();
|
|
203
|
+
if (!prevRect || !nextRect)
|
|
204
|
+
return "horizontal";
|
|
205
|
+
// Compare the position differences
|
|
206
|
+
const horizontalDiff = Math.abs(nextRect.x - prevRect.x);
|
|
207
|
+
const verticalDiff = Math.abs(nextRect.y - prevRect.y);
|
|
208
|
+
// If horizontal difference is greater, it's likely a horizontal layout
|
|
209
|
+
return horizontalDiff > verticalDiff ? "horizontal" : "vertical";
|
|
210
|
+
}
|
|
211
|
+
// Default to vertical if we can't determine
|
|
212
|
+
return "vertical";
|
|
213
|
+
}
|
|
145
214
|
//# sourceMappingURL=PlaceholderDropZones.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaceholderDropZones.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/PlaceholderDropZones.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,MAAM,UAAU,oBAAoB,CAAC,EACnC,KAAK,EACL,MAAM,EACN,IAAI,GAKL;IACC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,eAAe,GAAG,WAAW,EAAE,QAAQ,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,IAAI;YAAE,OAAO;QACnC,eAAe,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAK,CAAC,CAAC,CAAC;IAC7D,CAAC,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;IAE5B,IACE,CAAC,eAAe;QAChB,CAAC,CAAC,WAAW,EAAE,UAAU,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC;QAC/D,CAAC,YAAY;QAEb,OAAO,IAAI,CAAC;IAEd,MAAM,oBAAoB,GAAG,YAAY,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"PlaceholderDropZones.js","sourceRoot":"","sources":["../../../src/editor/page-editor-chrome/PlaceholderDropZones.tsx"],"names":[],"mappings":"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"}
|