@replohq/sandbox-runtime 1.16.2 → 1.18.0

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 (56) hide show
  1. package/ClientErrorBoundary.js +26 -0
  2. package/DocumentReadyBeacon.js +5 -1
  3. package/_vendor/replo-utils/lib/historyKeys.d.ts +2 -0
  4. package/_vendor/replo-utils/lib/historyKeys.mjs +18 -0
  5. package/_vendor/schemas/generated/selectModeIframeRpc.d.ts +43 -0
  6. package/_vendor/schemas/iframeRpcChannel.mjs +3 -541
  7. package/_vendor/schemas/previewHealthIframeRpc.d.ts +159 -0
  8. package/_vendor/schemas/previewHealthIframeRpc.mjs +123 -0
  9. package/_vendor/schemas/selectModeIframeRpc.d.ts +149 -3
  10. package/_vendor/schemas/selectModeIframeRpc.mjs +72 -2
  11. package/buildMetadata.js +3 -3
  12. package/chunk-KRA4LUIR.mjs +541 -0
  13. package/nextErrorFeed.d.ts +30 -0
  14. package/nextErrorFeed.js +64 -0
  15. package/package.json +5 -12
  16. package/previewHealth.d.ts +25 -0
  17. package/previewHealth.js +431 -0
  18. package/sandbox-runtime.js +0 -2
  19. package/select-mode/EditorSelection.js +5 -1
  20. package/select-mode/fast-refresh-relay.js +82 -3
  21. package/select-mode/fiber.d.ts +6 -0
  22. package/select-mode/fiber.js +33 -0
  23. package/select-mode/hooks/useParentMessaging.js +10 -3
  24. package/select-mode/hooks/useSelectionHover.js +2 -1
  25. package/select-mode/hooks/useSelectionInteractions.js +10 -0
  26. package/select-mode/iframeRpcChannel.d.ts +46 -2
  27. package/select-mode/iframeRpcChannel.js +7 -0
  28. package/select-mode/section-canvas/SectionCanvas.d.ts +7 -0
  29. package/select-mode/section-canvas/SectionCanvas.js +599 -0
  30. package/select-mode/section-canvas/optimisticSectionMove.d.ts +39 -0
  31. package/select-mode/section-canvas/optimisticSectionMove.js +172 -0
  32. package/select-mode/section-canvas/sectionCanvasControls.d.ts +3 -0
  33. package/select-mode/section-canvas/sectionCanvasControls.js +8 -0
  34. package/select-mode/section-canvas/sectionCanvasStore.d.ts +71 -0
  35. package/select-mode/section-canvas/sectionCanvasStore.js +275 -0
  36. package/select-mode/section-canvas/sectionElements.d.ts +16 -0
  37. package/select-mode/section-canvas/sectionElements.js +94 -0
  38. package/select-mode/section-canvas/sectionGhost.d.ts +5 -0
  39. package/select-mode/section-canvas/sectionGhost.js +23 -0
  40. package/select-mode/symbolicate.d.ts +2 -0
  41. package/select-mode/symbolicate.js +18 -1
  42. package/NextErrorReporter.d.ts +0 -1
  43. package/NextErrorReporter.js +0 -131
  44. package/_vendor/schemas/componentPreview.d.ts +0 -43
  45. package/_vendor/schemas/componentPreview.mjs +0 -79
  46. package/_vendor/schemas/generated/componentPreview.d.ts +0 -5
  47. package/_vendor/schemas/generated/componentPreview.mjs +0 -1
  48. package/_vendor/schemas/loaderKeys.d.ts +0 -69
  49. package/next/component-preview-client.d.ts +0 -8
  50. package/next/component-preview-client.js +0 -227
  51. package/next/component-preview-href.d.ts +0 -5
  52. package/next/component-preview-href.js +0 -13
  53. package/next/component-preview-props.d.ts +0 -8
  54. package/next/component-preview-props.js +0 -35
  55. package/next/component-preview.d.ts +0 -11
  56. package/next/component-preview.js +0 -83
@@ -20,6 +20,7 @@ import {
20
20
  unionElementPageRects
21
21
  } from "../interactions/selectionGeometry";
22
22
  import { isTextEditableElement } from "../isTextEditableElement";
23
+ import { isSectionCanvasControl } from "../section-canvas/sectionCanvasControls";
23
24
  import { isSelectionStillCurrent } from "../selectionPublish";
24
25
  import {
25
26
  getConnectedSelectedElement,
@@ -172,6 +173,9 @@ function useSelectionInteractions() {
172
173
  );
173
174
  };
174
175
  const handlePointerDown = (event) => {
176
+ if (isSectionCanvasControl(event.target)) {
177
+ return;
178
+ }
175
179
  if (event.button !== 0) {
176
180
  return;
177
181
  }
@@ -362,6 +366,9 @@ function useSelectionInteractions() {
362
366
  });
363
367
  };
364
368
  const handlePointerUp = (event) => {
369
+ if (isSectionCanvasControl(event.target)) {
370
+ return;
371
+ }
365
372
  if (event.button !== 0) {
366
373
  return;
367
374
  }
@@ -419,6 +426,9 @@ function useSelectionInteractions() {
419
426
  });
420
427
  };
421
428
  const handleClick = (event) => {
429
+ if (isSectionCanvasControl(event.target)) {
430
+ return;
431
+ }
422
432
  if (editingElementRef?.current && event.target instanceof Node && editingElementRef.current.contains(event.target)) {
423
433
  return;
424
434
  }
@@ -2,11 +2,54 @@ import type { SelectedElement } from "../_vendor/schemas/generated/selectMode";
2
2
  import type { IframeRpcChannelInputHandlers, IframeRpcChannelRemote } from "../_vendor/schemas/iframeRpcChannel";
3
3
  import { previewIframeToWebsiteBuilderMethodConfig, websiteBuilderToPreviewIframeMethodConfig } from "../_vendor/schemas/selectModeIframeRpc";
4
4
  export type WebsiteBuilderRpcRemote = IframeRpcChannelRemote<typeof previewIframeToWebsiteBuilderMethodConfig>;
5
- type SelectModeParentMessagingHandlers = Omit<IframeRpcChannelInputHandlers<typeof websiteBuilderToPreviewIframeMethodConfig>, "symbolicateSelectedElement" | "navigateToRoute">;
5
+ type SelectModeParentMessagingHandlers = Omit<IframeRpcChannelInputHandlers<typeof websiteBuilderToPreviewIframeMethodConfig>, "symbolicateSelectedElement" | "navigateToRoute" | "setSectionCanvas" | "settleSectionMove">;
6
6
  export declare function setNavigateToRouteHandler(handler: ((input: {
7
7
  pathname: string;
8
8
  }) => void) | null): void;
9
9
  export declare function getSelectModeIframeRpcChannel(): import("../_vendor/schemas/iframeRpcChannel").IframeRpcChannel<{
10
+ sectionCanvasRequest: {
11
+ inputSchema: import("zod").ZodObject<{
12
+ request: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
13
+ type: import("zod").ZodLiteral<"insert">;
14
+ at: import("zod").ZodNumber;
15
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
16
+ type: import("zod").ZodLiteral<"move">;
17
+ moveId: import("zod").ZodString;
18
+ index: import("zod").ZodNumber;
19
+ to: import("zod").ZodNumber;
20
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
21
+ type: import("zod").ZodLiteral<"remove">;
22
+ index: import("zod").ZodNumber;
23
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
24
+ type: import("zod").ZodLiteral<"undo">;
25
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
26
+ type: import("zod").ZodLiteral<"redo">;
27
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
28
+ type: import("zod").ZodLiteral<"cancelInsert">;
29
+ }, import("zod/v4/core").$strip>], "type">;
30
+ }, import("zod/v4/core").$strip>;
31
+ outputSchema: import("zod").ZodVoid;
32
+ };
33
+ sectionCanvasLayoutChanged: {
34
+ inputSchema: import("zod").ZodObject<{
35
+ sections: import("zod").ZodArray<import("zod").ZodObject<{
36
+ index: import("zod").ZodNumber;
37
+ startLine: import("zod").ZodNumber;
38
+ endLine: import("zod").ZodNumber;
39
+ rect: import("zod").ZodObject<{
40
+ x: import("zod").ZodNumber;
41
+ y: import("zod").ZodNumber;
42
+ left: import("zod").ZodNumber;
43
+ top: import("zod").ZodNumber;
44
+ right: import("zod").ZodNumber;
45
+ bottom: import("zod").ZodNumber;
46
+ width: import("zod").ZodNumber;
47
+ height: import("zod").ZodNumber;
48
+ }, import("zod/v4/core").$strip>;
49
+ }, import("zod/v4/core").$strip>>;
50
+ }, import("zod/v4/core").$strip>;
51
+ outputSchema: import("zod").ZodVoid;
52
+ };
10
53
  requestInlineTextEdit: {
11
54
  inputSchema: import("zod").ZodObject<{
12
55
  editId: import("zod").ZodString;
@@ -105,6 +148,7 @@ export declare function getSelectModeIframeRpcChannel(): import("../_vendor/sche
105
148
  branch: import("zod").ZodNullable<import("zod").ZodString>;
106
149
  commit: import("zod").ZodNullable<import("zod").ZodString>;
107
150
  builtAt: import("zod").ZodNullable<import("zod").ZodString>;
151
+ capabilities: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
108
152
  }, import("zod/v4/core").$strip>;
109
153
  outputSchema: import("zod").ZodVoid;
110
154
  };
@@ -411,9 +455,9 @@ export declare function getSelectModeIframeRpcChannel(): import("../_vendor/sche
411
455
  inputSchema: import("zod").ZodObject<{
412
456
  feedback: import("zod").ZodNullable<import("zod").ZodObject<{
413
457
  status: import("zod").ZodEnum<{
458
+ failed: "failed";
414
459
  pending: "pending";
415
460
  unavailable: "unavailable";
416
- failed: "failed";
417
461
  }>;
418
462
  rect: import("zod").ZodObject<{
419
463
  x: import("zod").ZodNumber;
@@ -8,6 +8,7 @@ import {
8
8
  SELECT_MODE_IFRAME_RPC_CHANNEL_VERSION,
9
9
  websiteBuilderToPreviewIframeMethodConfig
10
10
  } from "../_vendor/schemas/selectModeIframeRpc.mjs";
11
+ import { sectionCanvasStore } from "./section-canvas/sectionCanvasStore";
11
12
  import { symbolicateSelectedElement } from "./symbolicate";
12
13
  let messagingHandlers = null;
13
14
  let navigateToRouteHandler = null;
@@ -54,6 +55,12 @@ function createSelectModeIframeRpcChannel() {
54
55
  formatCommand: (input) => {
55
56
  messagingHandlers?.formatCommand(input);
56
57
  },
58
+ setSectionCanvas: ({ canvas }) => {
59
+ sectionCanvasStore.getState().actions.setCanvas(canvas);
60
+ },
61
+ settleSectionMove: (input) => {
62
+ sectionCanvasStore.getState().actions.settleMove(input);
63
+ },
57
64
  symbolicateSelectedElement: (element) => {
58
65
  return symbolicateSelectedElement(element);
59
66
  },
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Section controls drawn on the preview, after Squarespace's editor: the hovered or selected section
3
+ * gets a bold outline with an "Add Section" pill on each edge, a grip that drags it to a new place
4
+ * (with a picture of it and a drop line), and a trash button. Every edit is a request to the
5
+ * Website Builder, which owns the source.
6
+ */
7
+ export declare function SectionCanvas(): import("react").ReactPortal | null;