@supernovaio/prototyping-tooling 0.9.0 → 0.9.2

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.
@@ -25,6 +25,8 @@ export declare class AnnotationOverlay {
25
25
  activate(): void;
26
26
  /** Deactivates annotation mode and cleans up overlays. */
27
27
  deactivate(): void;
28
+ /** Selects a dot by ID — highlights its elements and applies selected style. Called from the parent. */
29
+ selectDot(annotationId: string): void;
28
30
  /** Removes a single annotation dot by ID. */
29
31
  removeDot(annotationId: string): void;
30
32
  /** Removes all annotation dots from the overlay. */
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationOverlay.d.ts","sourceRoot":"","sources":["../../../src/client/annotation/AnnotationOverlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnnotationOverlay.d.ts","sourceRoot":"","sources":["../../../src/client/annotation/AnnotationOverlay.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type RestoreAnnotationData } from "../../shared/events.js";
1
2
  import type { ForgeClientOptions } from "./types.js";
2
3
  /**
3
4
  * Core client-side orchestrator that runs inside the child iframe.
@@ -22,6 +23,8 @@ export declare class ForgeClient {
22
23
  static getInstance(options?: ForgeClientOptions): ForgeClient;
23
24
  /** Enables or disables annotation mode. Useful for console-driven testing without a host. */
24
25
  enableAnnotationMode(enabled: boolean): void;
26
+ /** Restores annotation dots from data. Activates annotation mode if not already active. */
27
+ restoreAnnotations(annotations: RestoreAnnotationData[]): void;
25
28
  private setupMessageListener;
26
29
  private setSelectMode;
27
30
  private setDesignMode;
@@ -1 +1 @@
1
- {"version":3,"file":"ForgeClient.d.ts","sourceRoot":"","sources":["../../../src/client/general/ForgeClient.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAClD,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,OAAO,CAAC,CAAwB;IAExC,OAAO;IA4BP,4EAA4E;IAC5E,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW;IAO7D,6FAA6F;IAC7F,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAM5C,OAAO,CAAC,oBAAoB;IAgE5B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,yBAAyB;CAkBlC"}
1
+ {"version":3,"file":"ForgeClient.d.ts","sourceRoot":"","sources":["../../../src/client/general/ForgeClient.ts"],"names":[],"mappings":"AACA,OAAO,EAA+C,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAOhH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2B;IAClD,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,OAAO,CAAC,CAAwB;IAExC,OAAO;IA4BP,4EAA4E;IAC5E,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW;IAO7D,6FAA6F;IAC7F,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI5C,2FAA2F;IAC3F,kBAAkB,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAS9D,OAAO,CAAC,oBAAoB;IAmE5B,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,uBAAuB;IAkB/B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,yBAAyB;CAkBlC"}
@@ -3,7 +3,7 @@
3
3
  * Matches elements by `data-forge-id`, or falls back to source position.
4
4
  * Returns the updated source string, or the original source if no changes were made.
5
5
  */
6
- export declare function updateSourceAST(source: string, forgeId: string, propName: string, newValue: any, fallbackSourcePos?: string | null): string;
6
+ export declare function updateSourceAST(source: string, forgeId: string, propName: string, newValue: any, fallbackSourcePos?: string | null): Promise<string>;
7
7
  /**
8
8
  * Fetches source code from the dev server's read-source endpoint.
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SourceCodeUpdater.d.ts","sourceRoot":"","sources":["../../../src/client/general/SourceCodeUpdater.ts"],"names":[],"mappings":"AA8CA;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,GAAG,EACb,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,GAChC,MAAM,CAqDR;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW1E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYpF"}
1
+ {"version":3,"file":"SourceCodeUpdater.d.ts","sourceRoot":"","sources":["../../../src/client/general/SourceCodeUpdater.ts"],"names":[],"mappings":"AA2DA;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,GAAG,EACb,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,GAChC,OAAO,CAAC,MAAM,CAAC,CAuDjB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW1E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYpF"}
package/dist/client.js CHANGED
@@ -1,8 +1,5 @@
1
- import { b as F, c as $, R as X, d as Y, Z as S, C as f, B as L, e as G, M as C, P as B, i as W, a as V, T as j } from "./constants-BXKWBfHg.js";
1
+ import { b as $, c as X, R as Y, d as G, Z as S, C as f, B as w, e as B, M as C, P as W, i as V, a as j, T as U } from "./constants-BXKWBfHg.js";
2
2
  import { d as c } from "./debug-CLzmqn3R.js";
3
- import { parse as U } from "@babel/parser";
4
- import x from "@babel/traverse";
5
- import _ from "@babel/generator";
6
3
  class z {
7
4
  registry = /* @__PURE__ */ new Map();
8
5
  register(e, t) {
@@ -26,7 +23,7 @@ class z {
26
23
  return !t && n[e] && (t = this.registry.get(n[e])), t ? Object.entries(t.props).filter(([o, i]) => i.editable).map(([o, i]) => ({ name: o, type: i.type, options: i.options, default: i.default, editable: i.editable, label: i.label })) : [];
27
24
  }
28
25
  }
29
- function w(a) {
26
+ function P(a) {
30
27
  if (a.id)
31
28
  return `//*[@id="${a.id}"]`;
32
29
  const e = [];
@@ -43,35 +40,35 @@ function w(a) {
43
40
  }
44
41
  const d = { FunctionComponent: 0, ClassComponent: 1, IndeterminateComponent: 2, HostRoot: 3, HostPortal: 4, HostComponent: 5, HostText: 6, Fragment: 7, Mode: 8, ContextConsumer: 9, ContextProvider: 10, ForwardRef: 11, Profiler: 12, SuspenseComponent: 13, MemoComponent: 14, SimpleMemoComponent: 15, LazyComponent: 16, IncompleteClassComponent: 17, DehydratedFragment: 18, SuspenseListComponent: 19, ScopeComponent: 21, OffscreenComponent: 22, LegacyHiddenComponent: 23, CacheComponent: 24, TracingMarkerComponent: 25, HostHoistable: 26, HostSingleton: 27, IncompleteFunctionComponent: 28, Throw: 29, ViewTransitionComponent: 30, ActivityComponent: 31 }, K = /* @__PURE__ */ new Set(["Component", "PureComponent", "Fragment", "Suspense", "Profiler", "StrictMode", "Routes", "Route", "Outlet", "Root", "ErrorBoundaryHandler", "HotReload", "Hot"]), J = [/Boundary$/, /BoundaryHandler$/, /Provider$/, /Consumer$/, /^(Inner|Outer)/, /Router$/, /^Client(Page|Segment|Root)/, /^Server(Root|Component|Render)/, /^RSC/, /Context$/, /^Hot(Reload)?$/, /^(Dev|React)(Overlay|Tools|Root)/, /Overlay$/, /Handler$/, /^With[A-Z]/, /Wrapper$/, /^Root$/];
45
42
  let O = null;
46
- function D(a) {
43
+ function N(a) {
47
44
  const e = (t) => t.some((n) => n.startsWith("__reactFiber$") || n.startsWith("__reactInternalInstance$") || n.startsWith("__reactProps$"));
48
45
  return e(Object.keys(a)) || e(Object.getOwnPropertyNames(a));
49
46
  }
50
47
  function q() {
51
48
  if (O !== null) return O;
52
49
  if (typeof document > "u") return !1;
53
- if (document.body && D(document.body))
50
+ if (document.body && N(document.body))
54
51
  return c("client", "Detected React on document.body"), O = !0, !0;
55
- for (const e of X) {
52
+ for (const e of Y) {
56
53
  const t = document.querySelector(e);
57
54
  if (t) {
58
- if (D(t))
55
+ if (N(t))
59
56
  return c("client", "Detected React on", e), O = !0, !0;
60
57
  for (const n of t.children)
61
- if (D(n))
58
+ if (N(n))
62
59
  return c("client", "Detected React on child of", e), O = !0, !0;
63
60
  }
64
61
  }
65
62
  if (document.body) {
66
63
  for (const e of document.body.children)
67
- if (D(e))
64
+ if (N(e))
68
65
  return c("client", "Detected React on body child:", e.tagName), O = !0, !0;
69
66
  }
70
67
  const a = document.querySelectorAll("*");
71
68
  for (const e of a) {
72
- if (D(e))
69
+ if (N(e))
73
70
  return c("client", "Detected React on deep scan:", e.tagName), O = !0, !0;
74
- if (a.length > Y) break;
71
+ if (a.length > G) break;
75
72
  }
76
73
  return c("client", "React NOT detected on page"), O = !1, !1;
77
74
  }
@@ -133,7 +130,7 @@ function ee(a) {
133
130
  function te(a) {
134
131
  return !(K.has(a) || J.some((e) => e.test(a)));
135
132
  }
136
- function ne(a, e = F, t = $) {
133
+ function ne(a, e = $, t = X) {
137
134
  if (!q())
138
135
  return c("client", "isReactPage() = false"), { path: null, components: [] };
139
136
  const n = [];
@@ -149,16 +146,16 @@ function ne(a, e = F, t = $) {
149
146
  return n.length === 0 ? { path: null, components: [] } : { path: n.slice().reverse().map((i) => `<${i}>`).join(" "), components: n };
150
147
  }
151
148
  let I = null, E = null;
152
- function N(a, e, t, n = "solid") {
149
+ function M(a, e, t, n = "solid") {
153
150
  const o = document.createElement("div");
154
151
  return Object.assign(o.style, { position: "fixed", left: `${a.left}px`, top: `${a.top}px`, width: `${a.width}px`, height: `${a.height}px`, border: `1px ${n} ${e}`, backgroundColor: t, pointerEvents: "none", zIndex: S.HOVER_OVERLAY, borderRadius: "2px" }), o;
155
152
  }
156
153
  function oe(a) {
157
- M();
154
+ R();
158
155
  const e = a.getBoundingClientRect();
159
- I = N(e, f.SELECT_OVERLAY_BORDER, f.SELECT_OVERLAY_BG), I.className = "forge-overlay", document.body.appendChild(I);
156
+ I = M(e, f.SELECT_OVERLAY_BORDER, f.SELECT_OVERLAY_BG), I.className = "forge-overlay", document.body.appendChild(I);
160
157
  }
161
- function M() {
158
+ function R() {
162
159
  I && (I.remove(), I = null);
163
160
  }
164
161
  function ie() {
@@ -171,7 +168,7 @@ let re = 0;
171
168
  function ae() {
172
169
  return `ann-${Date.now()}-${++re}`;
173
170
  }
174
- class R {
171
+ class D {
175
172
  active = !1;
176
173
  messenger;
177
174
  hoverOverlay = null;
@@ -196,6 +193,10 @@ class R {
196
193
  deactivate() {
197
194
  this.active && (this.active = !1, c("annotation", "Annotation mode deactivated"), this.removeHoverOverlay(), this.clearAnnotationHighlights(), this.removeHitTestOverlay(), this.removeDragRect(), this.removeListeners(), this.setMarkersVisible(!1), document.body.style.cursor = "");
198
195
  }
196
+ selectDot(e) {
197
+ const t = this.dots.get(e);
198
+ t && (this.removeHoverOverlay(), this.hoverSuppressed = !0, this.highlightAnnotationElements(t));
199
+ }
199
200
  removeDot(e) {
200
201
  const t = this.dots.get(e);
201
202
  t && (t.element.remove(), this.dots.delete(e)), this.hoverSuppressed = !1;
@@ -245,7 +246,7 @@ class R {
245
246
  showHoverOverlay(e, t, n) {
246
247
  this.hoverOverlay && (this.hoverOverlay.remove(), this.hoverOverlay = null);
247
248
  const o = e.getBoundingClientRect(), i = t === f.ANNOTATION_MULTI ? f.ANNOTATION_MULTI_BG : f.ANNOTATION_SINGLE_BG;
248
- this.hoverOverlay = N(o, t, i, "solid"), this.hoverOverlay.style.transition = "all 0.05s ease", this.hoverOverlay.className = "forge-annotation-hover", document.body.appendChild(this.hoverOverlay), this.showComponentTooltip(n || e, o);
249
+ this.hoverOverlay = M(o, t, i, "solid"), this.hoverOverlay.style.transition = "all 0.05s ease", this.hoverOverlay.className = "forge-annotation-hover", document.body.appendChild(this.hoverOverlay), this.showComponentTooltip(n || e, o);
249
250
  }
250
251
  removeHoverOverlay() {
251
252
  this.hoverOverlay && (this.hoverOverlay.remove(), this.hoverOverlay = null), this.removeComponentTooltip();
@@ -280,12 +281,12 @@ class R {
280
281
  if (i) {
281
282
  const s = i.getBoundingClientRect();
282
283
  n.push(s);
283
- const r = N(s, f.ANNOTATION_SINGLE, f.ANNOTATION_SINGLE_BG, "solid");
284
+ const r = M(s, f.ANNOTATION_SINGLE, f.ANNOTATION_SINGLE_BG, "solid");
284
285
  r.className = "forge-annotation-highlight", document.body.appendChild(r), this.annotationHighlights.push(r);
285
286
  }
286
287
  }
287
288
  if (t && n.length > 1) {
288
- const o = Math.min(...n.map((h) => h.left)), i = Math.min(...n.map((h) => h.top)), s = Math.max(...n.map((h) => h.right)), r = Math.max(...n.map((h) => h.bottom)), l = new DOMRect(o, i, s - o, r - i), u = N(l, f.ANNOTATION_SINGLE, "transparent", "dashed");
289
+ const o = Math.min(...n.map((h) => h.left)), i = Math.min(...n.map((h) => h.top)), s = Math.max(...n.map((h) => h.right)), r = Math.max(...n.map((h) => h.bottom)), l = new DOMRect(o, i, s - o, r - i), u = M(l, f.ANNOTATION_SINGLE, "transparent", "dashed");
289
290
  u.className = "forge-annotation-bounding-rect", document.body.appendChild(u), this.annotationHighlights.push(u);
290
291
  }
291
292
  }
@@ -343,7 +344,7 @@ class R {
343
344
  showDragHighlights(e) {
344
345
  this.clearDragHighlights();
345
346
  for (const t of e) {
346
- const n = t.getBoundingClientRect(), o = N(n, f.ANNOTATION_MULTI, f.ANNOTATION_MULTI_BG, "solid");
347
+ const n = t.getBoundingClientRect(), o = M(n, f.ANNOTATION_MULTI, f.ANNOTATION_MULTI_BG, "solid");
347
348
  o.className = "forge-annotation-drag-highlight", document.body.appendChild(o), this.dragHighlights.push(o);
348
349
  }
349
350
  }
@@ -352,12 +353,12 @@ class R {
352
353
  this.dragHighlights = [];
353
354
  }
354
355
  createDot(e, t, n, o, i, s = []) {
355
- const r = this.getAnchorRect(s), l = e - 2, u = t - L - 2, h = r && r.width > 0 && r.height > 0 ? { rx: (l - r.left) / r.width, ry: (u - r.top) / r.height } : { rx: 0, ry: 0 };
356
+ const r = this.getAnchorRect(s), l = e - 2, u = t - w - 2, h = r && r.width > 0 && r.height > 0 ? { rx: (l - r.left) / r.width, ry: (u - r.top) / r.height } : { rx: 0, ry: 0 };
356
357
  this.createDotAtPosition(l, u, n, o, i, s, h);
357
358
  }
358
359
  createDotAtPosition(e, t, n, o, i, s, r) {
359
360
  const l = document.createElement("div");
360
- Object.assign(l.style, { position: "fixed", left: `${e}px`, top: `${t}px`, minWidth: `${G}px`, height: `${L}px`, borderRadius: "50% 50% 50% 0", backgroundColor: "#FFFFFF", border: "1px solid #1A58D0", cursor: "pointer", zIndex: S.ANNOTATION_DOT, transition: "transform 0.15s ease", display: this.markersVisible ? "flex" : "none", alignItems: "center", justifyContent: "center", padding: "0 4px", fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif", fontSize: "11px", fontWeight: "700", color: "#1A58D0", lineHeight: "1", userSelect: "none" }), l.textContent = String(i), l.className = "forge-annotation-dot", l.dataset.annotationId = o, l.addEventListener("mouseenter", () => {
361
+ Object.assign(l.style, { position: "fixed", left: `${e}px`, top: `${t}px`, minWidth: `${B}px`, height: `${w}px`, borderRadius: "50% 50% 50% 0", backgroundColor: "#FFFFFF", border: "1px solid #1A58D0", cursor: "pointer", zIndex: S.ANNOTATION_DOT, transition: "transform 0.15s ease", display: this.markersVisible ? "flex" : "none", alignItems: "center", justifyContent: "center", padding: "0 4px", fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif", fontSize: "11px", fontWeight: "700", color: "#1A58D0", lineHeight: "1", userSelect: "none" }), l.textContent = String(i), l.className = "forge-annotation-dot", l.dataset.annotationId = o, l.addEventListener("mouseenter", () => {
361
362
  l.style.transform = "scale(1.05)", this.removeHoverOverlay(), this.hoverSuppressed = !0;
362
363
  }), l.addEventListener("mouseleave", () => {
363
364
  l.style.transform = "scale(1)";
@@ -443,7 +444,7 @@ class R {
443
444
  }
444
445
  if (e.buttons === 1) {
445
446
  const n = e.clientX - this.dragStartX, o = e.clientY - this.dragStartY;
446
- if (Math.abs(n) > R.DRAG_THRESHOLD || Math.abs(o) > R.DRAG_THRESHOLD) {
447
+ if (Math.abs(n) > D.DRAG_THRESHOLD || Math.abs(o) > D.DRAG_THRESHOLD) {
447
448
  this.isDragging = !0;
448
449
  return;
449
450
  }
@@ -501,11 +502,11 @@ class R {
501
502
  const v = g.getAttribute("data-forge-id") || void 0;
502
503
  let b;
503
504
  if (v) {
504
- const P = document.querySelectorAll(`[data-forge-id="${v}"]`);
505
- P.length > 1 && (b = Array.from(P).indexOf(g));
505
+ const H = document.querySelectorAll(`[data-forge-id="${v}"]`);
506
+ H.length > 1 && (b = Array.from(H).indexOf(g));
506
507
  }
507
- return { elementTag: g.tagName.toLowerCase(), xpath: w(g), componentName: g.getAttribute("data-component") || void 0, componentPath: this.getComponentPath(g) || void 0, forgeId: v, forgeIdIndex: b, sourcePos: g.getAttribute("data-source-pos") || void 0 };
508
- }), r = s.map((g) => ({ xpath: g.xpath, forgeId: g.forgeId, forgeIdIndex: g.forgeIdIndex })), l = this.getAnchorRect(r), u = n - 2, h = o - L - 2, m = l && l.width > 0 && l.height > 0 ? { x: (u - l.left) / l.width, y: (h - l.top) / l.height } : { x: 0, y: 0 };
508
+ return { elementTag: g.tagName.toLowerCase(), xpath: P(g), componentName: g.getAttribute("data-component") || void 0, componentPath: this.getComponentPath(g) || void 0, forgeId: v, forgeIdIndex: b, sourcePos: g.getAttribute("data-source-pos") || void 0 };
509
+ }), r = s.map((g) => ({ xpath: g.xpath, forgeId: g.forgeId, forgeIdIndex: g.forgeIdIndex })), l = this.getAnchorRect(r), u = n - 2, h = o - w - 2, m = l && l.width > 0 && l.height > 0 ? { x: (u - l.left) / l.width, y: (h - l.top) / l.height } : { x: 0, y: 0 };
509
510
  this.pendingAnnotations.set(i, { dotX: n, dotY: o, mode: t, locators: r }), this.clearDragHighlights(), this.highlightLocators(r, t === "multi");
510
511
  const p = s[0], y = { id: i, dotX: n, dotY: o, anchorOffset: m, mode: t, elements: s, xpaths: s.map((g) => g.xpath), elementTag: p.elementTag, componentName: p.componentName, componentPath: p.componentPath, forgeId: p.forgeId, sourcePos: p.sourcePos };
511
512
  c("annotation", "Annotation created (pending):", y), this.messenger.send({ type: "ANNOTATION_CREATED", annotation: y, origin: C });
@@ -535,7 +536,7 @@ class le {
535
536
  this.hitTestOverlay && (this.hitTestOverlay.removeEventListener("mousemove", this.handleMouseOver), this.hitTestOverlay.removeEventListener("mouseout", this.handleMouseOut), this.hitTestOverlay.removeEventListener("click", this.handleClick)), document.removeEventListener("scroll", this.handleScroll, !0), se(), this.hitTestOverlay = null;
536
537
  }
537
538
  clearHover() {
538
- this.hoveredElement = null, M();
539
+ this.hoveredElement = null, R();
539
540
  }
540
541
  findTopmostElementWithSameId(e) {
541
542
  const t = e.getAttribute("data-forge-id");
@@ -549,7 +550,7 @@ class le {
549
550
  return o;
550
551
  }
551
552
  handleSelectModeClick(e) {
552
- const t = w(e);
553
+ const t = P(e);
553
554
  c("client", "Element clicked, XPath:", t), this.messenger.send({ type: "XPATH_REPORT", xpath: t, origin: C }), this.messenger.send({ type: "SELECT_MODE_DISABLED", origin: C });
554
555
  }
555
556
  handleMouseOver = (e) => {
@@ -565,54 +566,64 @@ class le {
565
566
  };
566
567
  handleMouseOut = (e) => {
567
568
  if (!this.callbacks.getSelectMode() && !this.callbacks.getDesignMode()) return;
568
- e.target === this.hoveredElement && (this.hoveredElement = null, M());
569
+ e.target === this.hoveredElement && (this.hoveredElement = null, R());
569
570
  };
570
571
  handleClick = (e) => {
571
572
  if (!this.callbacks.getSelectMode() && !this.callbacks.getDesignMode()) return;
572
573
  e.preventDefault(), e.stopPropagation(), this.hitTestOverlay && (this.hitTestOverlay.style.pointerEvents = "none");
573
574
  const t = document.elementFromPoint(e.clientX, e.clientY);
574
- this.hitTestOverlay && (this.hitTestOverlay.style.pointerEvents = "auto"), t && t !== document.body && t !== document.documentElement && (this.callbacks.getSelectMode() && this.callbacks.onSelectClick(t), this.callbacks.getDesignMode() && (M(), this.hoveredElement = null, this.callbacks.onDesignClick(t)));
575
+ this.hitTestOverlay && (this.hitTestOverlay.style.pointerEvents = "auto"), t && t !== document.body && t !== document.documentElement && (this.callbacks.getSelectMode() && this.callbacks.onSelectClick(t), this.callbacks.getDesignMode() && (R(), this.hoveredElement = null, this.callbacks.onDesignClick(t)));
575
576
  };
576
577
  handleScroll = () => {
577
- (this.callbacks.getSelectMode() || this.callbacks.getDesignMode()) && (this.hoveredElement = null, M());
578
+ (this.callbacks.getSelectMode() || this.callbacks.getDesignMode()) && (this.hoveredElement = null, R());
578
579
  };
579
580
  }
580
- const ce = typeof x == "function" ? x : x.default, he = typeof _ == "function" ? _ : _.default;
581
- function H(a) {
581
+ let L = null, x = null, _ = null;
582
+ async function ce() {
583
+ if (L && x && _) return;
584
+ const [a, e, t] = await Promise.all([import("@babel/parser"), import("@babel/traverse"), import("@babel/generator")]);
585
+ L = a.parse;
586
+ const n = e.default;
587
+ x = typeof n == "function" ? n : n.default;
588
+ const o = t.default;
589
+ _ = typeof o == "function" ? o : o.default;
590
+ }
591
+ function k(a) {
582
592
  return typeof a == "boolean" ? { type: "JSXExpressionContainer", expression: { type: "BooleanLiteral", value: a, loc: null }, loc: null } : typeof a == "number" ? { type: "JSXExpressionContainer", expression: { type: "NumericLiteral", value: a, loc: null }, loc: null } : { type: "StringLiteral", value: String(a), loc: null };
583
593
  }
584
- function k(a, e, t) {
594
+ function F(a, e, t) {
585
595
  const n = a.node.attributes.find((o) => o.type === "JSXAttribute" && o.name.type === "JSXIdentifier" && o.name.name === e);
586
- return n && n.type === "JSXAttribute" ? (n.value = H(t), !0) : (a.node.attributes.push({ type: "JSXAttribute", name: { type: "JSXIdentifier", name: e }, value: H(t), loc: null }), !0);
596
+ return n && n.type === "JSXAttribute" ? (n.value = k(t), !0) : (a.node.attributes.push({ type: "JSXAttribute", name: { type: "JSXIdentifier", name: e }, value: k(t), loc: null }), !0);
587
597
  }
588
- function de(a, e, t, n, o) {
598
+ async function he(a, e, t, n, o) {
589
599
  try {
590
- const i = U(a, { sourceType: "module", plugins: ["jsx", "typescript"] });
600
+ if (await ce(), !L || !x || !_) return a;
601
+ const i = L(a, { sourceType: "module", plugins: ["jsx", "typescript"] });
591
602
  let s = !1;
592
603
  const r = /* @__PURE__ */ new Map();
593
- if (ce(i, { JSXOpeningElement(l) {
604
+ if (x(i, { JSXOpeningElement(l) {
594
605
  if (l.node.name.type !== "JSXIdentifier") return;
595
606
  const u = l.node.loc;
596
607
  if (!u) return;
597
608
  const h = `${u.start.line}:${u.start.column}`;
598
609
  r.set(h, l);
599
610
  const m = l.node.attributes.find((p) => p.type === "JSXAttribute" && p.name.type === "JSXIdentifier" && p.name.name === "data-forge-id" && p.value?.type === "StringLiteral");
600
- m && m.type === "JSXAttribute" && m.value.value === e && (s = k(l, t, n));
611
+ m && m.type === "JSXAttribute" && m.value.value === e && (s = F(l, t, n));
601
612
  } }), !s && o) {
602
613
  const l = o.split(":");
603
614
  if (l.length >= 5) {
604
615
  const u = `${l[l.length - 4]}:${l[l.length - 3]}`, h = r.get(u);
605
- h && (s = k(h, t, n));
616
+ h && (s = F(h, t, n));
606
617
  }
607
618
  }
608
619
  if (s)
609
- return he(i, {}, a).code;
620
+ return _(i, {}, a).code;
610
621
  } catch (i) {
611
622
  c("client", "Failed to parse/update AST:", i);
612
623
  }
613
624
  return a;
614
625
  }
615
- async function ue(a) {
626
+ async function de(a) {
616
627
  try {
617
628
  const e = await fetch(`/__forge-read-source?path=${a}`);
618
629
  if (e.ok)
@@ -623,14 +634,14 @@ async function ue(a) {
623
634
  }
624
635
  return null;
625
636
  }
626
- async function ge(a, e) {
637
+ async function ue(a, e) {
627
638
  try {
628
639
  return await fetch("/__forge-update-source", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ filePath: a, source: e }) }), !0;
629
640
  } catch (t) {
630
641
  return c("client", "Failed to write source:", t), !1;
631
642
  }
632
643
  }
633
- class me {
644
+ class ge {
634
645
  messenger;
635
646
  componentRegistry;
636
647
  selectController;
@@ -653,7 +664,7 @@ class me {
653
664
  }
654
665
  const n = this.selectController.findTopmostElementWithSameId(e), o = n.getAttribute("data-component"), i = n.getAttribute("data-source-pos"), s = o || n.tagName.toLowerCase();
655
666
  this.clearSelection(), this.selectedElement = n, this.applyHighlight(n);
656
- const r = n.textContent?.trim() || "", l = n.tagName.toLowerCase(), u = w(n), h = this.componentRegistry.getEditableProps(s), m = this.extractPropValues(n, h);
667
+ const r = n.textContent?.trim() || "", l = n.tagName.toLowerCase(), u = P(n), h = this.componentRegistry.getEditableProps(s), m = this.extractPropValues(n, h);
657
668
  c("client", "Element selected in design mode:", { forgeId: t, sourcePos: i, text: r, type: l, componentName: s, editableProps: h, propValues: m }), this.messenger.send({ type: "ELEMENT_SELECTED", forgeId: t, sourcePos: i || void 0, text: r, elementType: l, xpath: u, componentName: s, editableProps: h, propValues: m, origin: C });
658
669
  }
659
670
  updateText(e, t) {
@@ -677,11 +688,11 @@ class me {
677
688
  }
678
689
  const r = s.slice(0, -4).join(":");
679
690
  c("client", `Updating property ${t} = ${n} for ${e} in ${r}`), this.sourceCache.delete(r);
680
- const l = await ue(r);
691
+ const l = await de(r);
681
692
  if (!l) return;
682
693
  this.sourceCache.set(r, l);
683
- const u = this.selectedElement?.getAttribute("data-source-pos") ?? null, h = de(l, e, t, n, u);
684
- h !== l ? (this.sourceCache.set(r, h), c("client", `Updated source for ${r}`), await ge(r, h) && (c("client", `Source written to disk and HMR triggered for ${r}`), this.messenger.send({ type: "SOURCE_UPDATED", forgeId: e, source: h, filePath: r, origin: C }))) : c("client", `No source changes detected for ${r}`);
694
+ const u = this.selectedElement?.getAttribute("data-source-pos") ?? null, h = await he(l, e, t, n, u);
695
+ h !== l ? (this.sourceCache.set(r, h), c("client", `Updated source for ${r}`), await ue(r, h) && (c("client", `Source written to disk and HMR triggered for ${r}`), this.messenger.send({ type: "SOURCE_UPDATED", forgeId: e, source: h, filePath: r, origin: C }))) : c("client", `No source changes detected for ${r}`);
685
696
  }
686
697
  applyHighlight(e) {
687
698
  e.style.outline = `3px solid ${f.DESIGN_SELECTION_OUTLINE}`, e.style.outlineOffset = "2px";
@@ -723,7 +734,7 @@ class A {
723
734
  designController;
724
735
  onError;
725
736
  constructor(e) {
726
- this.onError = e?.onError, c("client", "ForgeClient initialized"), this.messenger = new B(), this.componentRegistry = new z(), this.selectController = new le(this.messenger, { getSelectMode: () => this.selectMode, getDesignMode: () => this.designMode, getHoverDisabled: () => this.hoverDisabled, getSelectedDesignElement: () => this.designController.getSelectedElement(), onSelectClick: (t) => this.handleSelectClick(t), onDesignClick: (t) => this.handleDesignClick(t) }), this.designController = new me(this.messenger, this.componentRegistry, this.selectController), this.setupMessageListener(), this.sendReady(), this.setupForgeIdPropagation(), window.__forgeClient = this;
737
+ this.onError = e?.onError, c("client", "ForgeClient initialized"), this.messenger = new W(), this.componentRegistry = new z(), this.selectController = new le(this.messenger, { getSelectMode: () => this.selectMode, getDesignMode: () => this.designMode, getHoverDisabled: () => this.hoverDisabled, getSelectedDesignElement: () => this.designController.getSelectedElement(), onSelectClick: (t) => this.handleSelectClick(t), onDesignClick: (t) => this.handleDesignClick(t) }), this.designController = new ge(this.messenger, this.componentRegistry, this.selectController), this.setupMessageListener(), this.sendReady(), this.setupForgeIdPropagation(), window.__forgeClient = this;
727
738
  }
728
739
  static getInstance(e) {
729
740
  return A.instance || (A.instance = new A(e)), A.instance;
@@ -731,11 +742,14 @@ class A {
731
742
  enableAnnotationMode(e) {
732
743
  this.setAnnotationMode(e);
733
744
  }
745
+ restoreAnnotations(e) {
746
+ this.annotationOverlay || (this.annotationOverlay = new D(this.messenger)), this.annotationOverlay.restoreDots(e);
747
+ }
734
748
  setupMessageListener() {
735
749
  c("client", "Setting up message listener..."), this.messenger.onMessage((e) => {
736
- if (W(e.data) || !e.data || typeof e.data != "object" || !("origin" in e.data)) return;
750
+ if (V(e.data) || !e.data || typeof e.data != "object" || !("origin" in e.data)) return;
737
751
  const t = e.data;
738
- if (t.origin === V) {
752
+ if (t.origin === j) {
739
753
  c("client", "Received message from host:", t);
740
754
  try {
741
755
  switch (t.type) {
@@ -760,6 +774,9 @@ class A {
760
774
  case "ANNOTATION_KEEP":
761
775
  this.annotationOverlay?.confirmDot(t.annotationId, t.order);
762
776
  break;
777
+ case "SELECT_ANNOTATION":
778
+ this.annotationOverlay?.selectDot(t.annotationId);
779
+ break;
763
780
  case "ANNOTATION_UPDATE_ORDERS":
764
781
  this.annotationOverlay?.updateOrders(t.orders);
765
782
  break;
@@ -770,7 +787,7 @@ class A {
770
787
  this.annotationOverlay?.toggleMarkers();
771
788
  break;
772
789
  case "RESTORE_ANNOTATIONS":
773
- this.annotationOverlay || (this.annotationOverlay = new R(this.messenger)), this.annotationOverlay.restoreDots(t.annotations);
790
+ this.annotationOverlay || (this.annotationOverlay = new D(this.messenger)), this.annotationOverlay.restoreDots(t.annotations);
774
791
  break;
775
792
  case "PING":
776
793
  c("client", "Received PING");
@@ -789,7 +806,7 @@ class A {
789
806
  this.designMode !== e && (c("client", `Setting design mode to: ${e}`), this.designMode = e, e ? (this.selectController.enableListeners(), this.hoverDisabled = !1, document.body.style.cursor = "crosshair") : (this.selectController.disableListeners(), this.hoverDisabled = !1, document.body.style.cursor = "", this.selectController.clearHover()));
790
807
  }
791
808
  setAnnotationMode(e) {
792
- e ? (this.annotationOverlay || (this.annotationOverlay = new R(this.messenger)), this.setSelectMode(!1), this.setDesignMode(!1), this.annotationOverlay.activate()) : this.annotationOverlay?.deactivate();
809
+ e ? (this.annotationOverlay || (this.annotationOverlay = new D(this.messenger)), this.setSelectMode(!1), this.setDesignMode(!1), this.annotationOverlay.activate()) : this.annotationOverlay?.deactivate();
793
810
  }
794
811
  handleSelectClick(e) {
795
812
  this.selectController.handleSelectModeClick(e), this.setSelectMode(!1);
@@ -800,7 +817,7 @@ class A {
800
817
  sendReady() {
801
818
  c("client", "Scheduling CHILD_READY message..."), setTimeout(() => {
802
819
  c("client", "Sending CHILD_READY message to parent"), this.messenger.send({ type: "CHILD_READY", origin: C });
803
- }, j.CHILD_READY_DELAY);
820
+ }, U.CHILD_READY_DELAY);
804
821
  }
805
822
  setupForgeIdPropagation() {
806
823
  const e = () => {
@@ -832,5 +849,5 @@ class A {
832
849
  A.getInstance();
833
850
  export {
834
851
  A as ForgeClient,
835
- B as ParentMessenger
852
+ W as ParentMessenger
836
853
  };
@@ -30,6 +30,8 @@ export declare class ForgeHost {
30
30
  enableAnnotationMode(enabled: boolean): void;
31
31
  /** Deletes an annotation in the child iframe. */
32
32
  deleteAnnotation(annotationId: string): void;
33
+ /** Selects an annotation dot in the child — highlights its elements and applies selected style. */
34
+ selectAnnotation(annotationId: string): void;
33
35
  /** Confirms and numbers an annotation in the child iframe. */
34
36
  keepAnnotation(annotationId: string, order: number): void;
35
37
  /** Sends updated order numbers for all annotation badges. */
@@ -1 +1 @@
1
- {"version":3,"file":"ForgeHost.d.ts","sourceRoot":"","sources":["../../src/host/ForgeHost.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuB,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAI9D;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,aAAa,CAA6C;IAClE,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,iBAAiB,CAAyC;gBAEtD,MAAM,EAAE,iBAAiB;IAMrC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA6C9B,OAAO,CAAC,gBAAgB;IA4ExB,+DAA+D;IAC/D,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQxC,iEAAiE;IACjE,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQxC,mDAAmD;IACnD,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ5C,iDAAiD;IACjD,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAK5C,8DAA8D;IAC9D,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzD,6DAA6D;IAC7D,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAK5D,gEAAgE;IAChE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAOtD,mEAAmE;IACnE,aAAa,IAAI,IAAI;IAKrB,2EAA2E;IAC3E,kBAAkB,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAK9D,6DAA6D;IAC7D,eAAe,IAAI,IAAI;IAOvB,+DAA+D;IAC/D,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,IAAI;IAOzE,0DAA0D;IAC1D,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAOnE,mEAAmE;IACnE,EAAE,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAU5E,OAAO,CAAC,IAAI;IASZ,6CAA6C;IAC7C,SAAS,IAAI,gBAAgB;IAI7B,iEAAiE;IACjE,UAAU,IAAI,IAAI;CAanB"}
1
+ {"version":3,"file":"ForgeHost.d.ts","sourceRoot":"","sources":["../../src/host/ForgeHost.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuB,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAI9D;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,aAAa,CAA6C;IAClE,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,iBAAiB,CAAyC;gBAEtD,MAAM,EAAE,iBAAiB;IAMrC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA6C9B,OAAO,CAAC,gBAAgB;IA4ExB,+DAA+D;IAC/D,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQxC,iEAAiE;IACjE,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQxC,mDAAmD;IACnD,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ5C,iDAAiD;IACjD,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAK5C,mGAAmG;IACnG,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAK5C,8DAA8D;IAC9D,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzD,6DAA6D;IAC7D,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAK5D,gEAAgE;IAChE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAOtD,mEAAmE;IACnE,aAAa,IAAI,IAAI;IAKrB,2EAA2E;IAC3E,kBAAkB,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAK9D,6DAA6D;IAC7D,eAAe,IAAI,IAAI;IAOvB,+DAA+D;IAC/D,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,IAAI;IAOzE,0DAA0D;IAC1D,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAOnE,mEAAmE;IACnE,EAAE,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAU5E,OAAO,CAAC,IAAI;IASZ,6CAA6C;IAC7C,SAAS,IAAI,gBAAgB;IAI7B,iEAAiE;IACjE,UAAU,IAAI,IAAI;CAanB"}
package/dist/host.js CHANGED
@@ -87,6 +87,9 @@ class p {
87
87
  deleteAnnotation(e) {
88
88
  !this.messenger || this.status !== "connected" || this.messenger.send({ type: "ANNOTATION_DELETED", annotationId: e, origin: o });
89
89
  }
90
+ selectAnnotation(e) {
91
+ !this.messenger || this.status !== "connected" || this.messenger.send({ type: "SELECT_ANNOTATION", annotationId: e, origin: o });
92
+ }
90
93
  keepAnnotation(e, n) {
91
94
  !this.messenger || this.status !== "connected" || this.messenger.send({ type: "ANNOTATION_KEEP", annotationId: e, order: n, origin: o });
92
95
  }
@@ -22,6 +22,10 @@ export type HostToClientMessage = {
22
22
  type: "ANNOTATION_DELETED";
23
23
  annotationId: string;
24
24
  origin: typeof MESSAGE_ORIGIN_HOST;
25
+ } | {
26
+ type: "SELECT_ANNOTATION";
27
+ annotationId: string;
28
+ origin: typeof MESSAGE_ORIGIN_HOST;
25
29
  } | {
26
30
  type: "ANNOTATION_UPDATE_ORDERS";
27
31
  orders: Record<string, number>;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/shared/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/shared/events.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supernovaio/prototyping-tooling",
3
- "version": "0.9.0",
3
+ "version": "0.9.2",
4
4
  "description": "Prototyping Tooling — iframe communication bridge for design-to-code workflows",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -53,17 +53,27 @@
53
53
  "vite": "^7.1.12"
54
54
  },
55
55
  "peerDependencies": {
56
- "react": "^18.0.0 || ^19.0.0"
56
+ "react": "^18.0.0 || ^19.0.0",
57
+ "@babel/generator": "^7.0.0",
58
+ "@babel/parser": "^7.0.0",
59
+ "@babel/traverse": "^7.0.0",
60
+ "@babel/types": "^7.0.0"
57
61
  },
58
62
  "peerDependenciesMeta": {
59
63
  "react": {
60
64
  "optional": true
65
+ },
66
+ "@babel/generator": {
67
+ "optional": true
68
+ },
69
+ "@babel/parser": {
70
+ "optional": true
71
+ },
72
+ "@babel/traverse": {
73
+ "optional": true
74
+ },
75
+ "@babel/types": {
76
+ "optional": true
61
77
  }
62
- },
63
- "dependencies": {
64
- "@babel/generator": "^7.28.5",
65
- "@babel/parser": "^7.28.5",
66
- "@babel/traverse": "^7.28.5",
67
- "@babel/types": "^7.28.5"
68
78
  }
69
- }
79
+ }