@widgetic/editor 4.0.5 → 4.0.7

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.
@@ -10,6 +10,7 @@
10
10
  resize: { width: number; height: number };
11
11
  mobileViewport: { width: number; height: number };
12
12
  desktopViewport: void;
13
+ fitToArea: void;
13
14
  iframeLoad: Event;
14
15
  iframeError: Event;
15
16
  retry: void;
@@ -192,6 +193,14 @@
192
193
  });
193
194
  }
194
195
 
196
+ /** Place the preview shell at an explicit stage coordinate (composition pair layout). */
197
+ export function setShellPosition(left: number, top: number): void {
198
+ previewShellLeft = left;
199
+ previewShellTop = top;
200
+ previewPositionReady = true;
201
+ console.log('[WidgetPreview] Set shell position', { left, top });
202
+ }
203
+
195
204
  function ensurePreviewPosition(): void {
196
205
  if (previewPositionReady) return;
197
206
  resetPreviewPosition();
@@ -282,7 +291,7 @@
282
291
  iframeEl.style.height = '';
283
292
  }
284
293
 
285
- /** Fill the available preview stage (e.g. desktop modal) */
294
+ /** Fill the available preview stage (e.g. desktop modal) and re-center. */
286
295
  export function fitToContainer(): void {
287
296
  const attemptFit = (attemptsLeft: number) => {
288
297
  const stageEl = resizeStageEl ?? contentContainerEl;
@@ -296,7 +305,11 @@
296
305
  resizeWidth = limits.maxWidth;
297
306
  resizeHeight = limits.maxHeight;
298
307
  dispatch('resize', { width: limits.maxWidth, height: limits.maxHeight });
299
- requestAnimationFrame(() => nudgeIframePaint());
308
+ previewPositionReady = false;
309
+ requestAnimationFrame(() => {
310
+ resetPreviewPosition();
311
+ nudgeIframePaint();
312
+ });
300
313
  };
301
314
  attemptFit(24);
302
315
  }
@@ -600,6 +613,7 @@
600
613
 
601
614
  function handleFitToAreaClick() {
602
615
  fitToContainer();
616
+ if (debugMode) console.debug('[WidgetPreview] Fit to area:', { width: resizeWidth, height: resizeHeight });
603
617
  dispatch('fitToArea');
604
618
  }
605
619
 
@@ -62,6 +62,7 @@ declare const WidgetPreview: $$__sveltets_2_IsomorphicComponent<{
62
62
  maxHeight: number;
63
63
  };
64
64
  resetPreviewPosition?: () => void;
65
+ setShellPosition?: (left: number, top: number) => void;
65
66
  nudgeIframePaint?: () => void;
66
67
  fitToContainer?: () => void;
67
68
  sendMessageToPreview?: (message: Record<string, unknown>) => void;
@@ -85,6 +86,7 @@ declare const WidgetPreview: $$__sveltets_2_IsomorphicComponent<{
85
86
  height: number;
86
87
  }>;
87
88
  desktopViewport: CustomEvent<void>;
89
+ fitToArea: CustomEvent<void>;
88
90
  iframeLoad: CustomEvent<Event>;
89
91
  iframeError: CustomEvent<Event>;
90
92
  retry: CustomEvent<void>;
@@ -99,6 +101,7 @@ declare const WidgetPreview: $$__sveltets_2_IsomorphicComponent<{
99
101
  maxHeight: number;
100
102
  };
101
103
  resetPreviewPosition: () => void;
104
+ setShellPosition: (left: number, top: number) => void;
102
105
  nudgeIframePaint: () => void;
103
106
  fitToContainer: () => void;
104
107
  sendMessageToPreview: (message: Record<string, unknown>) => void;