@parhelia/core 0.1.12601 → 0.1.12612
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/editor/client/EditorShell.js +117 -26
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +12 -0
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/helpers.js +6 -11
- package/dist/editor/client/helpers.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js +12 -2
- package/dist/editor/menubar/toolbar-sections/ViewportControls.js.map +1 -1
- package/dist/editor/page-viewer/EditorFormHintPopover.d.ts +7 -0
- package/dist/editor/page-viewer/EditorFormHintPopover.js +55 -0
- package/dist/editor/page-viewer/EditorFormHintPopover.js.map +1 -0
- package/dist/editor/page-viewer/MiniMap.js +92 -5
- package/dist/editor/page-viewer/MiniMap.js.map +1 -1
- package/dist/editor/page-viewer/PageViewer.js +36 -94
- package/dist/editor/page-viewer/PageViewer.js.map +1 -1
- package/dist/editor/services/editService.js +27 -11
- package/dist/editor/services/editService.js.map +1 -1
- package/dist/editor/services/serviceHelper.js +62 -2
- package/dist/editor/services/serviceHelper.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/task-board/services/taskService.js +10 -3
- package/dist/task-board/services/taskService.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/package.json +1 -1
|
@@ -352,6 +352,18 @@ export type EditContextType = {
|
|
|
352
352
|
setComponentNavigatorOpenForSlot: (slotId: string | null, value: boolean | ((prev: boolean) => boolean)) => void;
|
|
353
353
|
showAgentsPanel: boolean;
|
|
354
354
|
setShowAgentsPanel: React.Dispatch<React.SetStateAction<boolean>>;
|
|
355
|
+
/** When true the editor form (right panel) is hidden. Persisted in user preferences. */
|
|
356
|
+
editorFormHidden: boolean;
|
|
357
|
+
setEditorFormHidden: (value: boolean) => void;
|
|
358
|
+
/** Whether the user has seen the one-time hint that explains how to re-open the form. */
|
|
359
|
+
editorFormHintSeen: boolean;
|
|
360
|
+
markEditorFormHintSeen: () => void;
|
|
361
|
+
/** Transient flag: the hint popover should be shown right now. */
|
|
362
|
+
editorFormHintVisible: boolean;
|
|
363
|
+
showEditorFormHint: () => void;
|
|
364
|
+
dismissEditorFormHint: () => void;
|
|
365
|
+
/** Ref registered by the toolbar toggle button; used to anchor the hint popover. */
|
|
366
|
+
editorFormToggleButtonRef: React.MutableRefObject<HTMLButtonElement | null>;
|
|
355
367
|
showMinimap: boolean;
|
|
356
368
|
setShowMinimap: React.Dispatch<React.SetStateAction<boolean>>;
|
|
357
369
|
showHelpTerminal: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editContext.js","sourceRoot":"","sources":["../../../src/editor/client/editContext.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,EAAE,EAGZ,UAAU,EACV,SAAS,EACT,MAAM,GACP,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"editContext.js","sourceRoot":"","sources":["../../../src/editor/client/editContext.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,EAAE,EAGZ,UAAU,EACV,SAAS,EACT,MAAM,GACP,MAAM,OAAO,CAAC;AAumBf,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAA8B,SAAS,CAAC,CAAC;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,WAAW,CAAC,QAAQ,CAAC;AAExD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAE5D,MAAM,UAAU,iBAAiB;IAC/B,MAAM,YAAY,GAAG,cAAc,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,OAAO,GAAG,YAAY,CAAC;IACpC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,UAAU,CAAC;AACpB,CAAC;AAyCD,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAE3C,SAAS,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,QAAQ,CAAC;AAEpE,mDAAmD;AACnD,MAAM,UAAU,uBAAuB;IACrC,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,OAAO,GAAG,YAAY,CAAC;IACpC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,UAAU,CAAC;AACpB,CAAC;AASD,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAE3C,SAAS,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AACxE,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,QAAQ,CAAC"}
|
|
@@ -18,17 +18,12 @@ export function handleErrorResult(result, ui, state) {
|
|
|
18
18
|
state.configuration.events.onUnauthorized();
|
|
19
19
|
return true;
|
|
20
20
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
});
|
|
28
|
-
ui.showErrorToast({
|
|
29
|
-
summary: result.summary || "Error",
|
|
30
|
-
details: result.details || "An error occurred",
|
|
31
|
-
});
|
|
21
|
+
// Session expired (e.g. timeout or logout in another tab). Let the
|
|
22
|
+
// EditorShell render a single, debounced "Your session has expired"
|
|
23
|
+
// toast with a Login action instead of a confirmation dialog.
|
|
24
|
+
window.dispatchEvent(new CustomEvent("parhelia:session-expired", {
|
|
25
|
+
detail: { reason: result.details || "unauthorized" },
|
|
26
|
+
}));
|
|
32
27
|
return true;
|
|
33
28
|
}
|
|
34
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/editor/client/helpers.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,iBAAiB,CAC/B,MAAgC,EAChC,EAGC,EACD,KAEC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAExC,EAAE,CAAC,cAAc,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;YAClC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,mBAAmB;SAC/C,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;YACzC,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,0BAA0B,EAAE;gBAC1C,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,IAAI,iBAAiB,EAAE;aACxD,CAAC,CACH,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC9C,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/editor/client/helpers.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,iBAAiB,CAC/B,MAAgC,EAChC,EAGC,EACD,KAEC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;QAExC,EAAE,CAAC,cAAc,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;YAClC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,mBAAmB;SAC/C,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;YACzC,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,0BAA0B,EAAE;gBAC1C,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,IAAI,iBAAiB,EAAE;aACxD,CAAC,CACH,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC9C,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mEAAmE;QACnE,oEAAoE;QACpE,8DAA8D;QAC9D,MAAM,CAAC,aAAa,CAClB,IAAI,WAAW,CAAC,0BAA0B,EAAE;YAC1C,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,IAAI,cAAc,EAAE;SACrD,CAAC,CACH,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -2,10 +2,11 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import { CompareIcon } from "../../ui/Icons";
|
|
3
3
|
import { useEditContext } from "../../client/editContext";
|
|
4
4
|
import { SimpleIconButton } from "../../ui/SimpleIconButton";
|
|
5
|
-
import { Monitor, Smartphone, Table, MessageSquareMore, Map, } from "lucide-react";
|
|
5
|
+
import { Monitor, Smartphone, Table, MessageSquareMore, Map, PanelRight, } from "lucide-react";
|
|
6
6
|
import { Separator } from "../Separator";
|
|
7
7
|
import { useEffect, useState } from "react";
|
|
8
8
|
import { DEVICE_CHANGE_EVENT } from "../../page-viewer/pageViewContext";
|
|
9
|
+
import { cn } from "../../../lib/utils";
|
|
9
10
|
export function ViewportControls() {
|
|
10
11
|
const editContext = useEditContext();
|
|
11
12
|
// Counter to force re-renders when device changes.
|
|
@@ -29,6 +30,9 @@ export function ViewportControls() {
|
|
|
29
30
|
const device = pageViewContext.device;
|
|
30
31
|
const setDevice = pageViewContext.setDevice;
|
|
31
32
|
const commentsCount = editContext.comments?.filter((x) => !x.isResolved).length || 0;
|
|
33
|
+
const canToggleEditorForm = editContext.workspaceId === "editor" &&
|
|
34
|
+
!!pageViewContext.page?.item?.hasLayout;
|
|
35
|
+
const editorFormVisible = !editContext.editorFormHidden;
|
|
32
36
|
return (_jsxs(_Fragment, { children: [_jsx(SimpleIconButton, { icon: _jsx(Monitor, { className: "h-6 w-6 p-1", strokeWidth: 1 }), label: "Desktop", size: "large", "data-testid": "desktop-viewport-button", selected: device === "desktop", onClick: () => setDevice("desktop") }), _jsx(SimpleIconButton, { icon: _jsx(Smartphone, { className: "h-6 w-6 p-1", strokeWidth: 1 }), label: "Mobile", size: "large", "data-testid": "mobile-viewport-button", selected: Boolean(device && device !== "desktop"), onClick: () => {
|
|
33
37
|
if (editContext.configuration.devices[0]) {
|
|
34
38
|
setDevice(editContext.configuration.devices[0].name);
|
|
@@ -40,7 +44,13 @@ export function ViewportControls() {
|
|
|
40
44
|
if (slotContext) {
|
|
41
45
|
slotContext.setCompareMode(!slotContext.compareMode);
|
|
42
46
|
}
|
|
43
|
-
} })), _jsx(Separator, { size: "large" }), " ", _jsx(SimpleIconButton, {
|
|
47
|
+
} })), _jsx(Separator, { size: "large" }), " ", canToggleEditorForm && (_jsx(SimpleIconButton, { ref: editContext.editorFormToggleButtonRef, icon: _jsx(PanelRight, { className: "h-6 w-6 rotate-180 p-1", strokeWidth: 1 }), label: editorFormVisible ? "Hide editor form" : "Show editor form", size: "large", "data-testid": "editor-form-toggle-button", selected: editorFormVisible, className: cn(editContext.editorFormHintVisible &&
|
|
48
|
+
"ring-theme-secondary animate-pulse ring-2 ring-offset-2"), onClick: () => {
|
|
49
|
+
editContext.setEditorFormHidden(editorFormVisible);
|
|
50
|
+
if (editContext.editorFormHintVisible) {
|
|
51
|
+
editContext.dismissEditorFormHint();
|
|
52
|
+
}
|
|
53
|
+
} })), _jsx(SimpleIconButton, { className: "relative", selected: !!editContext.showComments, icon: _jsx(MessageSquareMore, { className: "h-6 w-6 p-1", strokeWidth: 1 }), label: "Show comments", size: "large", "data-testid": "toggle-comments-button", onClick: () => {
|
|
44
54
|
const newShowComments = !editContext.showComments;
|
|
45
55
|
editContext.setShowComments(newShowComments);
|
|
46
56
|
// Open the feedback sidebar when enabling comments
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewportControls.js","sourceRoot":"","sources":["../../../../src/editor/menubar/toolbar-sections/ViewportControls.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,OAAO,EACP,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,GAAG,
|
|
1
|
+
{"version":3,"file":"ViewportControls.js","sourceRoot":"","sources":["../../../../src/editor/menubar/toolbar-sections/ViewportControls.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-time hint shown the first time the user closes the editor form.
|
|
3
|
+
* Anchors to the toolbar toggle button (registered via
|
|
4
|
+
* `editContext.editorFormToggleButtonRef`) and stays open until the user
|
|
5
|
+
* dismisses it.
|
|
6
|
+
*/
|
|
7
|
+
export declare function EditorFormHintPopover(): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useMemo, useState } from "react";
|
|
3
|
+
import { useEditContext } from "../client/editContext";
|
|
4
|
+
import { Popover, PopoverAnchor, PopoverContent, } from "../../components/ui/popover";
|
|
5
|
+
import { Button } from "../../components/ui/button";
|
|
6
|
+
/**
|
|
7
|
+
* One-time hint shown the first time the user closes the editor form.
|
|
8
|
+
* Anchors to the toolbar toggle button (registered via
|
|
9
|
+
* `editContext.editorFormToggleButtonRef`) and stays open until the user
|
|
10
|
+
* dismisses it.
|
|
11
|
+
*/
|
|
12
|
+
export function EditorFormHintPopover() {
|
|
13
|
+
const editContext = useEditContext();
|
|
14
|
+
const [anchorReady, setAnchorReady] = useState(false);
|
|
15
|
+
const virtualRef = useMemo(() => ({
|
|
16
|
+
get current() {
|
|
17
|
+
return editContext?.editorFormToggleButtonRef?.current ?? null;
|
|
18
|
+
},
|
|
19
|
+
}), [editContext?.editorFormToggleButtonRef]);
|
|
20
|
+
// Poll briefly after the hint is requested to wait for the toolbar button
|
|
21
|
+
// to mount (it only renders when a page with layout is active).
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (!editContext?.editorFormHintVisible) {
|
|
24
|
+
setAnchorReady(false);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
let cancelled = false;
|
|
28
|
+
const check = () => {
|
|
29
|
+
if (cancelled)
|
|
30
|
+
return;
|
|
31
|
+
if (editContext.editorFormToggleButtonRef?.current) {
|
|
32
|
+
setAnchorReady(true);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
requestAnimationFrame(check);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
check();
|
|
39
|
+
return () => {
|
|
40
|
+
cancelled = true;
|
|
41
|
+
};
|
|
42
|
+
}, [
|
|
43
|
+
editContext?.editorFormHintVisible,
|
|
44
|
+
editContext?.editorFormToggleButtonRef,
|
|
45
|
+
]);
|
|
46
|
+
if (!editContext)
|
|
47
|
+
return null;
|
|
48
|
+
const open = editContext.editorFormHintVisible && anchorReady;
|
|
49
|
+
return (_jsxs(Popover, { open: open, onOpenChange: (next) => {
|
|
50
|
+
if (!next) {
|
|
51
|
+
editContext.dismissEditorFormHint();
|
|
52
|
+
}
|
|
53
|
+
}, enableIframeClickDetection: false, children: [_jsx(PopoverAnchor, { virtualRef: virtualRef }), _jsx(PopoverContent, { side: "bottom", align: "end", sideOffset: 8, className: "w-80", "data-testid": "editor-form-hint-popover", children: _jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "text-sm font-semibold", children: "Editor form hidden" }), _jsx("p", { className: "text-sm text-gray-600", children: "You can bring the editor form back any time using this toolbar button." }), _jsx("div", { className: "flex justify-end pt-1", children: _jsx(Button, { size: "sm", onClick: () => editContext.dismissEditorFormHint(), "data-testid": "editor-form-hint-dismiss", children: "Got it" }) })] }) })] }));
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=EditorFormHintPopover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditorFormHintPopover.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/EditorFormHintPopover.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,OAAO,EACP,aAAa,EACb,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,CAAC;QACL,IAAI,OAAO;YACT,OAAO,WAAW,EAAE,yBAAyB,EAAE,OAAO,IAAI,IAAI,CAAC;QACjE,CAAC;KACF,CAAC,EACF,CAAC,WAAW,EAAE,yBAAyB,CAAC,CACzC,CAAC;IAEF,0EAA0E;IAC1E,gEAAgE;IAChE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,CAAC;YACxC,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,IAAI,SAAS;gBAAE,OAAO;YACtB,IAAI,WAAW,CAAC,yBAAyB,EAAE,OAAO,EAAE,CAAC;gBACnD,cAAc,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,qBAAqB,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC;QACF,KAAK,EAAE,CAAC;QAER,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE;QACD,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,yBAAyB;KACvC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,IAAI,GAAG,WAAW,CAAC,qBAAqB,IAAI,WAAW,CAAC;IAE9D,OAAO,CACL,MAAC,OAAO,IACN,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,WAAW,CAAC,qBAAqB,EAAE,CAAC;YACtC,CAAC;QACH,CAAC,EACD,0BAA0B,EAAE,KAAK,aAEjC,KAAC,aAAa,IAAC,UAAU,EAAE,UAAiB,GAAI,EAChD,KAAC,cAAc,IACb,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,KAAK,EACX,UAAU,EAAE,CAAC,EACb,SAAS,EAAC,MAAM,iBACJ,0BAA0B,YAEtC,eAAK,SAAS,EAAC,WAAW,aACxB,cAAK,SAAS,EAAC,uBAAuB,mCAAyB,EAC/D,YAAG,SAAS,EAAC,uBAAuB,uFAGhC,EACJ,cAAK,SAAS,EAAC,uBAAuB,YACpC,KAAC,MAAM,IACL,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,qBAAqB,EAAE,iBACtC,0BAA0B,uBAG/B,GACL,IACF,GACS,IACT,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -14,6 +14,8 @@ export function MiniMap({ deviceHeight, scroll, mainViewIframeRef, pageViewConte
|
|
|
14
14
|
const [minimapReady, setMinimapReady] = useState(false);
|
|
15
15
|
const [refreshScale, setRefreshScale] = useState(0);
|
|
16
16
|
const observerRef = useRef(null);
|
|
17
|
+
const resizeObserverRef = useRef(null);
|
|
18
|
+
const assetLoadHandlerRef = useRef(null);
|
|
17
19
|
const minimapContainerRef = useRef(null);
|
|
18
20
|
if (!mainViewIframeRef.current)
|
|
19
21
|
return null;
|
|
@@ -34,6 +36,7 @@ export function MiniMap({ deviceHeight, scroll, mainViewIframeRef, pageViewConte
|
|
|
34
36
|
const newScale = Math.min(scaleX, scaleY, 1);
|
|
35
37
|
updateScale(newScale);
|
|
36
38
|
setScale(newScale);
|
|
39
|
+
syncDimensions();
|
|
37
40
|
return newScale;
|
|
38
41
|
};
|
|
39
42
|
// Prevent scale/width feedback loop by tracking previous values
|
|
@@ -138,6 +141,12 @@ export function MiniMap({ deviceHeight, scroll, mainViewIframeRef, pageViewConte
|
|
|
138
141
|
if (!iframeRef.current)
|
|
139
142
|
return;
|
|
140
143
|
observerRef.current?.disconnect();
|
|
144
|
+
resizeObserverRef.current?.disconnect();
|
|
145
|
+
const sourceDoc = mainViewIframeRef.current.contentWindow.document;
|
|
146
|
+
if (assetLoadHandlerRef.current) {
|
|
147
|
+
sourceDoc.removeEventListener("load", assetLoadHandlerRef.current, true);
|
|
148
|
+
assetLoadHandlerRef.current = null;
|
|
149
|
+
}
|
|
141
150
|
mirrorIframeContent(mainViewIframeRef.current, iframeRef.current);
|
|
142
151
|
const observer = new MutationObserver((mutationsList) => {
|
|
143
152
|
const minimapDoc = iframeRef.current?.contentDocument;
|
|
@@ -186,6 +195,10 @@ export function MiniMap({ deviceHeight, scroll, mainViewIframeRef, pageViewConte
|
|
|
186
195
|
filteredNodes.forEach((targetNode) => {
|
|
187
196
|
updateCorrespondingNode(targetNode);
|
|
188
197
|
});
|
|
198
|
+
// Re-bake dimensions in the same tick as the structural sync so the
|
|
199
|
+
// source/destination tree pairing stays consistent — MutationObserver
|
|
200
|
+
// callbacks are microtasks, no other JS can run between the two.
|
|
201
|
+
syncDimensions();
|
|
189
202
|
setRefreshScale((x) => x + 1);
|
|
190
203
|
});
|
|
191
204
|
observer.observe(mainViewIframeRef.current.contentWindow.document, {
|
|
@@ -194,6 +207,21 @@ export function MiniMap({ deviceHeight, scroll, mainViewIframeRef, pageViewConte
|
|
|
194
207
|
characterData: true, // observe text changes
|
|
195
208
|
attributes: true, // observe attribute changes (like style or class)
|
|
196
209
|
});
|
|
210
|
+
// Catch async layout changes that don't trigger the MutationObserver:
|
|
211
|
+
// image/video metadata loading, web font swap-in, CSS animations
|
|
212
|
+
// settling, and iframe-size changes from device-mode toggles.
|
|
213
|
+
const ro = new ResizeObserver(() => {
|
|
214
|
+
syncDimensions();
|
|
215
|
+
});
|
|
216
|
+
ro.observe(sourceDoc.documentElement);
|
|
217
|
+
resizeObserverRef.current = ro;
|
|
218
|
+
const onAssetLoad = () => {
|
|
219
|
+
syncDimensions();
|
|
220
|
+
};
|
|
221
|
+
// <img>/<video>/<iframe> 'load' events don't bubble — capture phase
|
|
222
|
+
// catches them at the document root.
|
|
223
|
+
sourceDoc.addEventListener("load", onAssetLoad, true);
|
|
224
|
+
assetLoadHandlerRef.current = onAssetLoad;
|
|
197
225
|
setMinimapReady(true);
|
|
198
226
|
observerRef.current = observer;
|
|
199
227
|
};
|
|
@@ -206,6 +234,13 @@ export function MiniMap({ deviceHeight, scroll, mainViewIframeRef, pageViewConte
|
|
|
206
234
|
return () => {
|
|
207
235
|
observerRef.current?.disconnect();
|
|
208
236
|
observerRef.current = null;
|
|
237
|
+
resizeObserverRef.current?.disconnect();
|
|
238
|
+
resizeObserverRef.current = null;
|
|
239
|
+
const sourceDoc = mainViewIframeRef?.current?.contentWindow?.document ?? null;
|
|
240
|
+
if (sourceDoc && assetLoadHandlerRef.current) {
|
|
241
|
+
sourceDoc.removeEventListener("load", assetLoadHandlerRef.current, true);
|
|
242
|
+
}
|
|
243
|
+
assetLoadHandlerRef.current = null;
|
|
209
244
|
mainViewIframeRef?.current?.removeEventListener("load", handleLoad);
|
|
210
245
|
};
|
|
211
246
|
}, [mainViewIframeRef.current, iframeRef.current]);
|
|
@@ -246,7 +281,10 @@ export function MiniMap({ deviceHeight, scroll, mainViewIframeRef, pageViewConte
|
|
|
246
281
|
targetDoc.documentElement.innerHTML = sourceHtml;
|
|
247
282
|
targetDoc.documentElement.style.overflow = "hidden";
|
|
248
283
|
const targetHead = targetDoc.documentElement.querySelector("head");
|
|
249
|
-
// Inject CSS to constrain
|
|
284
|
+
// Inject CSS to constrain media elements in minimap. Width/height for
|
|
285
|
+
// <video> are now baked by syncDimensions() so we no longer need the
|
|
286
|
+
// viewport-unit (`max-height: 100vh`) hack that misresolved against the
|
|
287
|
+
// tall minimap iframe.
|
|
250
288
|
let style = targetHead?.querySelector("style[data-minimap-constraints]");
|
|
251
289
|
if (!style && targetHead) {
|
|
252
290
|
style = targetDoc.createElement("style");
|
|
@@ -256,16 +294,65 @@ export function MiniMap({ deviceHeight, scroll, mainViewIframeRef, pageViewConte
|
|
|
256
294
|
max-width: 100% !important;
|
|
257
295
|
height: auto !important;
|
|
258
296
|
}
|
|
259
|
-
video {
|
|
260
|
-
width: 100% !important;
|
|
261
|
-
max-height: 100vh !important;
|
|
262
|
-
}
|
|
263
297
|
`;
|
|
264
298
|
targetHead.appendChild(style);
|
|
265
299
|
}
|
|
266
300
|
}
|
|
301
|
+
syncDimensions();
|
|
267
302
|
setRefreshScale((x) => x + 1);
|
|
268
303
|
}
|
|
304
|
+
// Bake the main iframe's resolved layout (width/height per element, plus
|
|
305
|
+
// top/left for absolute/fixed elements) into the minimap clone as inline
|
|
306
|
+
// !important px styles. This neutralizes vh/vw drift between the two
|
|
307
|
+
// iframes (their layout viewports differ — main = deviceHeight, minimap =
|
|
308
|
+
// scrollHeight) and any other unit/calc/percentage that would resolve
|
|
309
|
+
// differently inside the minimap document.
|
|
310
|
+
function syncDimensions() {
|
|
311
|
+
const sourceDoc = mainViewIframeRef.current?.contentDocument;
|
|
312
|
+
const targetDoc = iframeRef.current?.contentDocument;
|
|
313
|
+
if (!sourceDoc?.body || !targetDoc?.body)
|
|
314
|
+
return;
|
|
315
|
+
const srcView = sourceDoc.defaultView;
|
|
316
|
+
if (!srcView)
|
|
317
|
+
return;
|
|
318
|
+
walkDimensions(sourceDoc.body, targetDoc.body, srcView);
|
|
319
|
+
}
|
|
320
|
+
function walkDimensions(src, dst, srcView) {
|
|
321
|
+
// We can't use `instanceof HTMLElement` here because src/dst live in
|
|
322
|
+
// different window realms (main iframe / minimap iframe) than this
|
|
323
|
+
// component, so each realm has its own HTMLElement constructor and the
|
|
324
|
+
// check would always be false. Use duck typing instead.
|
|
325
|
+
const srcEl = src;
|
|
326
|
+
const dstEl = dst;
|
|
327
|
+
const dstStyle = dstEl.style;
|
|
328
|
+
if (dstStyle && typeof srcEl.getBoundingClientRect === "function") {
|
|
329
|
+
const rect = srcEl.getBoundingClientRect();
|
|
330
|
+
if (rect.width > 0 || rect.height > 0) {
|
|
331
|
+
dstStyle.setProperty("width", `${rect.width}px`, "important");
|
|
332
|
+
dstStyle.setProperty("height", `${rect.height}px`, "important");
|
|
333
|
+
}
|
|
334
|
+
const cs = srcView.getComputedStyle(srcEl);
|
|
335
|
+
if (cs.position === "absolute" || cs.position === "fixed") {
|
|
336
|
+
const offsetParent = srcEl.offsetParent;
|
|
337
|
+
const parentRect = offsetParent?.getBoundingClientRect();
|
|
338
|
+
if (parentRect) {
|
|
339
|
+
dstStyle.setProperty("left", `${rect.left - parentRect.left}px`, "important");
|
|
340
|
+
dstStyle.setProperty("top", `${rect.top - parentRect.top}px`, "important");
|
|
341
|
+
dstStyle.removeProperty("right");
|
|
342
|
+
dstStyle.removeProperty("bottom");
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
// Walk children in lock-step. Bail at any divergent subtree — the
|
|
347
|
+
// MutationObserver path keeps structures aligned, so this is purely
|
|
348
|
+
// defensive.
|
|
349
|
+
const sChildren = src.children;
|
|
350
|
+
const dChildren = dst.children;
|
|
351
|
+
const len = Math.min(sChildren.length, dChildren.length);
|
|
352
|
+
for (let i = 0; i < len; i++) {
|
|
353
|
+
walkDimensions(sChildren[i], dChildren[i], srcView);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
269
356
|
const updateScale = (scale) => {
|
|
270
357
|
const scrollContainer = getScrollContainer();
|
|
271
358
|
if (!iframeRef.current || !scaleContainerRef.current)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiniMap.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/MiniMap.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MiniMap.js","sourceRoot":"","sources":["../../../src/editor/page-viewer/MiniMap.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,109 +2,41 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { EditorForm } from "./EditorForm";
|
|
3
3
|
import { PageViewerFrame } from "./PageViewerFrame";
|
|
4
4
|
import { ComponentTree } from "../sidebar/ComponentTree";
|
|
5
|
-
import { useCallback, useEffect,
|
|
5
|
+
import { useCallback, useEffect, useState } from "react";
|
|
6
6
|
import { SimpleIconButton } from "../ui/SimpleIconButton";
|
|
7
7
|
import { useEditContext, useFieldsEditContext } from "../client/editContext";
|
|
8
8
|
import { Layers, StepForward, X } from "lucide-react";
|
|
9
9
|
import { cn } from "../../lib/utils";
|
|
10
10
|
import { Splitter } from "../ui/Splitter";
|
|
11
|
-
import { getComponentById } from "../componentTreeHelper";
|
|
12
11
|
import { useSlotContext } from "../views/editorSlotContext";
|
|
13
12
|
import { localStorageService } from "../services/localStorageService";
|
|
14
13
|
export const SLOT_COMPONENT_NAVIGATOR_DEFAULT_WIDTH = 320;
|
|
14
|
+
const EDITOR_FORM_DEFAULT_WIDTH = 320;
|
|
15
15
|
export function PageViewer({ pageViewContext, showFormEditor, compareView, name, followEditsDefault, className, noMargins, slotCloseButton, }) {
|
|
16
16
|
const editContext = useEditContext();
|
|
17
17
|
const modifiedFieldsContext = useFieldsEditContext();
|
|
18
18
|
const slotContext = useSlotContext();
|
|
19
19
|
const [followEdits, setFollowEdits] = useState(followEditsDefault);
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
slotContext?.slotId || "no-slot",
|
|
27
|
-
selectionKey,
|
|
28
|
-
editContext?.insertMode ? "insert" : "browse",
|
|
29
|
-
].join("|");
|
|
30
|
-
}, [
|
|
31
|
-
editContext?.insertMode,
|
|
32
|
-
editContext?.selection,
|
|
33
|
-
slotContext?.slotId,
|
|
34
|
-
]);
|
|
20
|
+
const formHidden = editContext?.editorFormHidden ?? false;
|
|
21
|
+
// Insert mode always needs the form open so the user can pick a component or
|
|
22
|
+
// configure the new item, even when the user has hidden the panel. The
|
|
23
|
+
// preference itself is preserved, so the form returns to its hidden state as
|
|
24
|
+
// soon as insert mode ends.
|
|
25
|
+
const formEffectivelyHidden = formHidden && !editContext?.insertMode;
|
|
35
26
|
const collapseFormEditor = useCallback(() => {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
27
|
+
if (!editContext)
|
|
28
|
+
return;
|
|
29
|
+
editContext.setEditorFormHidden(true);
|
|
30
|
+
if (!editContext.editorFormHintSeen) {
|
|
31
|
+
editContext.showEditorFormHint();
|
|
32
|
+
}
|
|
33
|
+
}, [editContext]);
|
|
39
34
|
useEffect(() => {
|
|
40
|
-
//
|
|
35
|
+
// Clean up legacy per-slot collapse state from older PageViewer implementation.
|
|
41
36
|
localStorageService.removeAllMatchingKeys("editor.pageViewer.slot-");
|
|
42
37
|
}, []);
|
|
43
38
|
if (!pageViewContext)
|
|
44
39
|
return null;
|
|
45
|
-
useEffect(() => {
|
|
46
|
-
const wasActive = wasSlotActiveRef.current;
|
|
47
|
-
const isActive = !!slotContext?.isActive;
|
|
48
|
-
if (!wasActive && isActive) {
|
|
49
|
-
setDismissedAutoOpenToken(null);
|
|
50
|
-
setFormEditorCollapsed(false);
|
|
51
|
-
}
|
|
52
|
-
wasSlotActiveRef.current = isActive;
|
|
53
|
-
}, [slotContext?.isActive]);
|
|
54
|
-
useEffect(() => {
|
|
55
|
-
// Only open form editor automatically if this slot is active and the user
|
|
56
|
-
// hasn't manually dismissed it for the current selection/intent context.
|
|
57
|
-
if (!slotContext?.isActive) {
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
if (editContext?.activeEditorTab) {
|
|
61
|
-
setFormEditorCollapsed(false);
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
if (!editContext?.insertMode) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
if (dismissedAutoOpenToken === dismissContextToken) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
setFormEditorCollapsed(false);
|
|
71
|
-
}, [
|
|
72
|
-
dismissContextToken,
|
|
73
|
-
dismissedAutoOpenToken,
|
|
74
|
-
editContext?.activeEditorTab,
|
|
75
|
-
editContext?.insertMode,
|
|
76
|
-
slotContext?.isActive,
|
|
77
|
-
]);
|
|
78
|
-
useEffect(() => {
|
|
79
|
-
// Only reset collapsed state if:
|
|
80
|
-
// 1. This slot is active
|
|
81
|
-
// 2. The selection contains components relevant to THIS slot's page
|
|
82
|
-
if (!slotContext?.isActive) {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
const selection = editContext?.selection || [];
|
|
86
|
-
const page = pageViewContext?.page;
|
|
87
|
-
if (!page || selection.length === 0) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
// Check if any selected component exists in this page
|
|
91
|
-
const hasRelevantSelection = selection.some((componentId) => {
|
|
92
|
-
const component = getComponentById(componentId, page);
|
|
93
|
-
return !!component;
|
|
94
|
-
});
|
|
95
|
-
if (hasRelevantSelection) {
|
|
96
|
-
if (dismissedAutoOpenToken === dismissContextToken) {
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
setFormEditorCollapsed(false);
|
|
100
|
-
}
|
|
101
|
-
}, [
|
|
102
|
-
dismissContextToken,
|
|
103
|
-
dismissedAutoOpenToken,
|
|
104
|
-
editContext?.selection,
|
|
105
|
-
pageViewContext?.page,
|
|
106
|
-
slotContext?.isActive,
|
|
107
|
-
]);
|
|
108
40
|
useEffect(() => {
|
|
109
41
|
if (followEdits &&
|
|
110
42
|
modifiedFieldsContext?.recentEdits &&
|
|
@@ -144,16 +76,11 @@ export function PageViewer({ pageViewContext, showFormEditor, compareView, name,
|
|
|
144
76
|
(pageViewContext.page?.item?.hasLayout ?? treeItem?.hasLayout ?? false);
|
|
145
77
|
const hasOuterRightPanel = !!editContext?.showAgentsPanel ||
|
|
146
78
|
!!(editContext?.showHelpTerminal && editContext?.currentItemDescriptor);
|
|
147
|
-
//
|
|
79
|
+
// The form panel is rendered outside of the Splitter so we can animate its
|
|
80
|
+
// width when the user opens or closes it. The Splitter itself only handles
|
|
81
|
+
// the canvas + Component Navigator pair (which still need a draggable
|
|
82
|
+
// resize handle).
|
|
148
83
|
const panels = [];
|
|
149
|
-
if (showFormEditor && !formEditorCollapsed) {
|
|
150
|
-
panels.push({
|
|
151
|
-
name: "form",
|
|
152
|
-
defaultSize: 300,
|
|
153
|
-
collapsible: true,
|
|
154
|
-
content: (_jsx("div", { className: cn("h-full w-full", noMargins ? "py-2" : "py-2 pl-2", formEditorCollapsed && "hidden"), children: _jsxs("div", { className: "border-gray-3 flex h-full w-full flex-col rounded-md border bg-white", children: [_jsx("div", { className: "flex-1", children: _jsx(EditorForm, { pageViewContext: pageViewContext, readonly: editContext?.mode !== "edit", compareView: compareView || false, onCollapse: collapseFormEditor }) }), _jsxs("div", { className: "flex items-center justify-between gap-1 p-1", children: [_jsx("div", { className: "p-1 text-xs text-gray-500", children: editContext?.statusMessage }), _jsx("div", { className: "flex gap-1", children: _jsx(SimpleIconButton, { "data-testid": "followEditsButton", icon: _jsx(StepForward, { className: "h-4 w-4", strokeWidth: 1 }), selected: followEdits, label: "Follow", onClick: () => setFollowEdits((f) => !f) }) })] })] }) })),
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
84
|
panels.push({
|
|
158
85
|
name: "frame",
|
|
159
86
|
defaultSize: "auto",
|
|
@@ -170,6 +97,21 @@ export function PageViewer({ pageViewContext, showFormEditor, compareView, name,
|
|
|
170
97
|
content: (_jsx("div", { className: cn("h-full w-full py-2 pl-2", !hasOuterRightPanel && "pr-2"), children: _jsxs("div", { className: "border-gray-3 flex h-full w-full flex-col rounded-md border bg-white", "data-testid": "slot-component-navigator", children: [_jsxs("div", { className: "border-gray-3 flex items-center border-b p-1.5 text-xs text-gray-500 uppercase", children: [_jsx("div", { className: "mr-2", children: _jsx(Layers, { className: "h-4 w-4", strokeWidth: 1 }) }), _jsx("div", { className: "mr-auto truncate", children: "Component Navigator" }), _jsx(SimpleIconButton, { onClick: () => editContext?.setComponentNavigatorOpenForSlot?.(slotContext?.slotId ?? null, false), icon: _jsx(X, { className: "size-4" }), label: "Close", className: "ml-2" })] }), _jsx("div", { className: "min-h-0 flex-1 overflow-hidden", children: _jsx(ComponentTree, { pageViewContext: pageViewContext, itemDescriptor: treeItemDescriptor, item: treeItem, isLoading: treeIsLoading }) })] }) })),
|
|
171
98
|
});
|
|
172
99
|
}
|
|
173
|
-
|
|
100
|
+
const isVertical = !!editContext?.isMobile;
|
|
101
|
+
const formPanelOpen = showFormEditor && !formEffectivelyHidden;
|
|
102
|
+
const formPanelWidth = EDITOR_FORM_DEFAULT_WIDTH;
|
|
103
|
+
return (_jsxs("div", { className: cn("flex h-full w-full", isVertical ? "flex-col" : "flex-row", className), children: [showFormEditor && (_jsx("div", { "data-testid": "editor-form-slider", "aria-hidden": !formPanelOpen, className: cn("relative shrink-0 overflow-hidden", "transition-[width,height,opacity] duration-200 ease-in-out motion-reduce:transition-none"), style: isVertical
|
|
104
|
+
? {
|
|
105
|
+
width: "100%",
|
|
106
|
+
height: formPanelOpen ? formPanelWidth : 0,
|
|
107
|
+
opacity: formPanelOpen ? 1 : 0,
|
|
108
|
+
}
|
|
109
|
+
: {
|
|
110
|
+
height: "100%",
|
|
111
|
+
width: formPanelOpen ? formPanelWidth : 0,
|
|
112
|
+
opacity: formPanelOpen ? 1 : 0,
|
|
113
|
+
}, children: _jsx("div", { className: cn("h-full", noMargins ? "py-2" : "py-2 pl-2"), style: isVertical
|
|
114
|
+
? { width: "100%", height: formPanelWidth }
|
|
115
|
+
: { width: formPanelWidth, height: "100%" }, children: _jsxs("div", { className: "border-gray-3 flex h-full w-full flex-col rounded-md border bg-white", children: [_jsx("div", { className: "flex-1 min-h-0", children: _jsx(EditorForm, { pageViewContext: pageViewContext, readonly: editContext?.mode !== "edit", compareView: compareView || false, onCollapse: collapseFormEditor }) }), _jsxs("div", { className: "flex items-center justify-between gap-1 p-1", children: [_jsx("div", { className: "p-1 text-xs text-gray-500", children: editContext?.statusMessage }), _jsx("div", { className: "flex gap-1", children: _jsx(SimpleIconButton, { "data-testid": "followEditsButton", icon: _jsx(StepForward, { className: "h-4 w-4", strokeWidth: 1 }), selected: followEdits, label: "Follow", onClick: () => setFollowEdits((f) => !f) }) })] })] }) }) })), _jsx("div", { className: "min-w-0 min-h-0 flex-1", children: _jsx(Splitter, { panels: panels, splitterClassName: "bg-transparent -mr-2 md:w-[6px]", direction: isVertical ? "vertical" : "horizontal", localStorageKey: "editor.pageViewer.panels.v2" }) })] }));
|
|
174
116
|
}
|
|
175
117
|
//# sourceMappingURL=PageViewer.js.map
|