@snowcone-app/canvas 0.28.0 → 0.30.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 (84) hide show
  1. package/ERROR_CONTRACT.md +13 -0
  2. package/dist/{CanvasRenderer-B_3GISlW.js → CanvasRenderer-BEf0hXeF.js} +1083 -1071
  3. package/dist/CanvasRenderer-BEf0hXeF.js.map +1 -0
  4. package/dist/{CanvasStateV1-kL09wsAn.js → CanvasStateV1-BDSyYo4A.js} +872 -844
  5. package/dist/{CanvasStateV1-kL09wsAn.js.map → CanvasStateV1-BDSyYo4A.js.map} +1 -1
  6. package/dist/ContextualToolbars-C3D_6sep.js +5960 -0
  7. package/dist/ContextualToolbars-C3D_6sep.js.map +1 -0
  8. package/dist/{EditorCanvasImpl-CrI9C_xM.js → EditorCanvasImpl-DXeBz2CX.js} +8 -8
  9. package/dist/{EditorCanvasImpl-CrI9C_xM.js.map → EditorCanvasImpl-DXeBz2CX.js.map} +1 -1
  10. package/dist/{ExportManager-J2xK86uq.js → ExportManager-DUdis6se.js} +1307 -970
  11. package/dist/ExportManager-DUdis6se.js.map +1 -0
  12. package/dist/{FontAnalyzer-PE6nysqE.js → FontAnalyzer-DKG5JK0x.js} +1419 -1342
  13. package/dist/FontAnalyzer-DKG5JK0x.js.map +1 -0
  14. package/dist/{ImagePanel-CmQCxBGm.js → ImagePanel-CBgGqmVV.js} +53 -53
  15. package/dist/{ImagePanel-CmQCxBGm.js.map → ImagePanel-CBgGqmVV.js.map} +1 -1
  16. package/dist/SnowconeCanvas-BWPBngvI.js +1192 -0
  17. package/dist/SnowconeCanvas-BWPBngvI.js.map +1 -0
  18. package/dist/{UnifiedFontService-BJzoqfBF.js → UnifiedFontService-Co9tQ59z.js} +869 -826
  19. package/dist/UnifiedFontService-Co9tQ59z.js.map +1 -0
  20. package/dist/advanced.mjs +14 -14
  21. package/dist/api/embed.d.ts +2 -0
  22. package/dist/api/stable.d.ts +2 -0
  23. package/dist/components/CanvasContextMenu.d.ts +15 -0
  24. package/dist/components/CanvasEditor/hooks/useCanvasInteraction.d.ts +27 -0
  25. package/dist/components/CanvasEditor.d.ts +8 -0
  26. package/dist/components/embed/SnowconeCanvas.d.ts +13 -0
  27. package/dist/components/embed/kernel.d.ts +8 -0
  28. package/dist/components/toolbars/SecondaryPanels.d.ts +11 -0
  29. package/dist/components/ui/icons.d.ts +2 -0
  30. package/dist/contexts/CanvasServicesContext.d.ts +17 -0
  31. package/dist/contexts/EditorContext.d.ts +7 -0
  32. package/dist/core/TextElement.d.ts +13 -0
  33. package/dist/core/TextMetrics.d.ts +17 -3
  34. package/dist/core/rich-text-layout.d.ts +2 -0
  35. package/dist/core/text-spacing.d.ts +74 -0
  36. package/dist/{custom-icons-BWiUGqD6.js → custom-icons-BIaRovwG.js} +2 -2
  37. package/dist/{custom-icons-BWiUGqD6.js.map → custom-icons-BIaRovwG.js.map} +1 -1
  38. package/dist/{design-builder-bquxIHct.js → design-builder-JYLO_Hyi.js} +2 -2
  39. package/dist/{design-builder-bquxIHct.js.map → design-builder-JYLO_Hyi.js.map} +1 -1
  40. package/dist/{editorErrors-8uDRMhow.js → editorErrors-WzaNxU1Y.js} +181 -194
  41. package/dist/editorErrors-WzaNxU1Y.js.map +1 -0
  42. package/dist/{embed-L3oRIgsj.js → embed-Csez1hui.js} +113 -112
  43. package/dist/{embed-L3oRIgsj.js.map → embed-Csez1hui.js.map} +1 -1
  44. package/dist/embed.mjs +51 -45
  45. package/dist/embed.mjs.map +1 -1
  46. package/dist/errors/editorError.d.ts +8 -0
  47. package/dist/{guards-BlbhM5MX.js → guards-BSoX73yg.js} +2 -2
  48. package/dist/{guards-BlbhM5MX.js.map → guards-BSoX73yg.js.map} +1 -1
  49. package/dist/hooks/useKeyboardShortcuts.d.ts +15 -2
  50. package/dist/hooks/useLayers.d.ts +2 -0
  51. package/dist/hooks/useTextToolbar.d.ts +8 -0
  52. package/dist/index.mjs +42 -37
  53. package/dist/index.mjs.map +1 -1
  54. package/dist/internals.mjs +47 -47
  55. package/dist/rendering/renderer-types.d.ts +4 -0
  56. package/dist/rendering/rich-text-renderer.d.ts +4 -0
  57. package/dist/rendering/text-renderer.d.ts +4 -1
  58. package/dist/state/CanvasStateV1.d.ts +34 -3
  59. package/dist/state/index.d.ts +2 -2
  60. package/dist/{template-fields-ai7vnW8g.js → template-fields-DYPW7bVU.js} +40 -40
  61. package/dist/{template-fields-ai7vnW8g.js.map → template-fields-DYPW7bVU.js.map} +1 -1
  62. package/dist/testing.mjs +13 -13
  63. package/dist/types/index.d.ts +26 -0
  64. package/dist/{usePieceGuideBundle-CMe5br2a.js → usePieceGuideBundle-CRLY2iQa.js} +2 -2
  65. package/dist/{usePieceGuideBundle-CMe5br2a.js.map → usePieceGuideBundle-CRLY2iQa.js.map} +1 -1
  66. package/dist/utils/custom-fonts.d.ts +99 -0
  67. package/dist/utils/featureApplied.d.ts +6 -0
  68. package/dist/validation-BGEl9rrE.js +8686 -0
  69. package/dist/validation-BGEl9rrE.js.map +1 -0
  70. package/dist/workers/export-protocol.d.ts +13 -0
  71. package/dist/workers/export-worker.bundle.string.d.ts +1 -1
  72. package/example/package.json +1 -1
  73. package/package.json +1 -1
  74. package/dist/CanvasRenderer-B_3GISlW.js.map +0 -1
  75. package/dist/ContextualToolbars-C69oYLdw.js +0 -5771
  76. package/dist/ContextualToolbars-C69oYLdw.js.map +0 -1
  77. package/dist/ExportManager-J2xK86uq.js.map +0 -1
  78. package/dist/FontAnalyzer-PE6nysqE.js.map +0 -1
  79. package/dist/SnowconeCanvas-CQiFVR0X.js +0 -1173
  80. package/dist/SnowconeCanvas-CQiFVR0X.js.map +0 -1
  81. package/dist/UnifiedFontService-BJzoqfBF.js.map +0 -1
  82. package/dist/editorErrors-8uDRMhow.js.map +0 -1
  83. package/dist/validation-B8kIYutI.js +0 -8397
  84. package/dist/validation-B8kIYutI.js.map +0 -1
@@ -1,12 +1,12 @@
1
1
  import { jsx as e, jsxs as c, Fragment as K } from "react/jsx-runtime";
2
- import * as Je from "react";
3
- import Be, { useMemo as Ze, useState as r, useRef as U, useEffect as Z, useCallback as ae } from "react";
4
- import { u as Ke, e as Oe } from "./editorErrors-8uDRMhow.js";
5
- import { n as es, z as ss, d as cs, K as ts, I as v, J as re, B as _, u as rs, C as as } from "./UnifiedFontService-BJzoqfBF.js";
6
- import { c as ns, I as os } from "./FontAnalyzer-PE6nysqE.js";
7
- import { T as k, S as Te, a as xe, I as ye, L as be } from "./custom-icons-BWiUGqD6.js";
8
- import { a as ls } from "./guards-BlbhM5MX.js";
9
- const De = Je.forwardRef(
2
+ import * as Ze from "react";
3
+ import Be, { useMemo as Je, useState as r, useRef as U, useEffect as J, useCallback as ae } from "react";
4
+ import { u as Ke, e as Oe } from "./editorErrors-WzaNxU1Y.js";
5
+ import { n as es, z as ss, d as cs, K as ts, I as v, A as re, B as _, u as rs, C as as } from "./UnifiedFontService-Co9tQ59z.js";
6
+ import { c as ns, I as os } from "./FontAnalyzer-DKG5JK0x.js";
7
+ import { T as k, S as Te, a as xe, I as ye, L as be } from "./custom-icons-BIaRovwG.js";
8
+ import { a as ls } from "./guards-BSoX73yg.js";
9
+ const De = Ze.forwardRef(
10
10
  ({ className: d, isInvalid: t, disabled: N, readOnly: E, required: u, variant: n, ...x }, l) => {
11
11
  const i = es(), m = n ?? (i.variant === "default" ? "filled" : "default");
12
12
  return /* @__PURE__ */ e(
@@ -47,11 +47,11 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
47
47
  x || N(t);
48
48
  }, Q = (g) => {
49
49
  if (!w.current) return "top";
50
- const y = w.current.getBoundingClientRect(), L = g.clientX - y.left, M = g.clientY - y.top, A = y.width, se = y.height, T = {
51
- top: M,
52
- bottom: se - M,
53
- left: L,
54
- right: A - L
50
+ const y = w.current.getBoundingClientRect(), A = g.clientX - y.left, L = g.clientY - y.top, M = y.width, se = y.height, T = {
51
+ top: L,
52
+ bottom: se - L,
53
+ left: A,
54
+ right: M - A
55
55
  }, $ = Math.min(T.top, T.bottom, T.left, T.right);
56
56
  return $ === T.top ? "top" : $ === T.bottom ? "bottom" : $ === T.left ? "left" : "right";
57
57
  }, W = (g) => {
@@ -260,7 +260,7 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
260
260
  currentImageUrl: E,
261
261
  placement: u = "bottom"
262
262
  }) => {
263
- const { imageSearch: n, generate: x, vectors: l, removeBackground: i } = cs(), m = Ze(
263
+ const { imageSearch: n, generate: x, vectors: l, removeBackground: i } = cs(), m = Je(
264
264
  () => [
265
265
  ...n ? ["search"] : [],
266
266
  "url",
@@ -268,13 +268,13 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
268
268
  ...x ? ["ai"] : []
269
269
  ],
270
270
  [n, l, x]
271
- ), [h, C] = r(""), [w, V] = r(""), [S, R] = r([]), [f, Y] = r(!1), [Q, W] = r(null), [b, B] = r(m[0]), [O, ee] = r(1), [D, F] = r(!0), [j, P] = r("masonry"), [g, y] = r(""), [L, M] = r([]), [A, se] = r(!1), [T, $] = r(null), [ce, ne] = r(null), [z, G] = r(!0), [o, q] = r("grid"), [X, de] = r(""), [oe, le] = r(!1), [Ee, ve] = r(null), [J, Ne] = r(null), [ue, me] = r(!1), [fe, he] = r(null), ke = U(null), Ce = U(null), Re = U(null);
272
- Z(() => {
271
+ ), [h, C] = r(""), [w, V] = r(""), [S, R] = r([]), [f, Y] = r(!1), [Q, W] = r(null), [b, B] = r(m[0]), [O, ee] = r(1), [D, F] = r(!0), [j, P] = r("masonry"), [g, y] = r(""), [A, L] = r([]), [M, se] = r(!1), [T, $] = r(null), [ce, ne] = r(null), [z, G] = r(!0), [o, q] = r("grid"), [X, de] = r(""), [oe, le] = r(!1), [Ee, ve] = r(null), [Z, Ne] = r(null), [ue, me] = r(!1), [fe, he] = r(null), ke = U(null), Ce = U(null), Re = U(null);
272
+ J(() => {
273
273
  m.includes(b) || B(m[0]);
274
- }, [m, b]), Z(() => {
274
+ }, [m, b]), J(() => {
275
275
  d && E && (V(E), B("url"));
276
- }, [d, E]), Z(() => {
277
- d || (C(""), V(""), R([]), W(null), ee(1), F(!0), y(""), M([]), $(null), ne(null), G(!0));
276
+ }, [d, E]), J(() => {
277
+ d || (C(""), V(""), R([]), W(null), ee(1), F(!0), y(""), L([]), $(null), ne(null), G(!0));
278
278
  }, [d]);
279
279
  const ge = ae(
280
280
  async (s, a, p) => {
@@ -292,7 +292,7 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
292
292
  },
293
293
  [n]
294
294
  );
295
- Z(() => {
295
+ J(() => {
296
296
  d && !h && b === "search" && S.length === 0 && n && ge("", 1, !1);
297
297
  }, [d, b, n]);
298
298
  const je = (s) => {
@@ -300,7 +300,7 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
300
300
  }, Se = ae(() => {
301
301
  f || !D || ge(h, O + 1, !0);
302
302
  }, [f, D, h, O, ge]);
303
- Z(() => {
303
+ J(() => {
304
304
  const s = ke.current;
305
305
  if (!s || !d || b !== "search") return;
306
306
  const a = new IntersectionObserver(
@@ -325,7 +325,7 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
325
325
  se(!0), $(null);
326
326
  try {
327
327
  const { results: p, nextPage: I } = await l.search({ query: s, nextPage: a ?? null });
328
- M(a ? (H) => {
328
+ L(a ? (H) => {
329
329
  const we = new Set(H.map((te) => te.id));
330
330
  return [...H, ...p.filter((te) => !we.has(te.id))];
331
331
  } : p), ne(I), G(I !== null);
@@ -338,20 +338,20 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
338
338
  },
339
339
  [l]
340
340
  );
341
- Z(() => {
342
- d && !g && b === "vector" && L.length === 0 && l && pe("");
341
+ J(() => {
342
+ d && !g && b === "vector" && A.length === 0 && l && pe("");
343
343
  }, [d, b, l]);
344
344
  const Ge = (s) => {
345
345
  s.preventDefault(), pe(g);
346
- }, Le = ae(() => {
347
- A || !z || !ce || pe(g, ce);
348
- }, [A, z, ce, g, pe]);
349
- Z(() => {
346
+ }, Ae = ae(() => {
347
+ M || !z || !ce || pe(g, ce);
348
+ }, [M, z, ce, g, pe]);
349
+ J(() => {
350
350
  const s = Ce.current;
351
351
  if (!s || !d || b !== "vector") return;
352
352
  const a = new IntersectionObserver(
353
353
  (p) => {
354
- p[0].isIntersecting && z && !A && Le();
354
+ p[0].isIntersecting && z && !M && Ae();
355
355
  },
356
356
  {
357
357
  root: null,
@@ -362,11 +362,11 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
362
362
  return a.observe(s), () => {
363
363
  a.disconnect();
364
364
  };
365
- }, [d, b, z, A, Le]);
366
- const Me = (s) => {
365
+ }, [d, b, z, M, Ae]);
366
+ const Le = (s) => {
367
367
  const a = s.selectUrl || s.urls.svg || s.urls.png;
368
368
  a && (N(a), t(!1));
369
- }, Ae = (s) => {
369
+ }, Me = (s) => {
370
370
  var a;
371
371
  try {
372
372
  Promise.resolve((a = n == null ? void 0 : n.trackSelect) == null ? void 0 : a.call(n, s)).catch(() => {
@@ -427,12 +427,12 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
427
427
  }
428
428
  }
429
429
  }, Qe = () => {
430
- J && (N(J), t(!1));
430
+ Z && (N(Z), t(!1));
431
431
  }, We = async () => {
432
- if (!(!i || !J)) {
432
+ if (!(!i || !Z)) {
433
433
  me(!0), he(null);
434
434
  try {
435
- const s = await i(J);
435
+ const s = await i(Z);
436
436
  Ne(s);
437
437
  } catch (s) {
438
438
  he(Ve), ie.error("Error removing background:", s);
@@ -563,7 +563,7 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
563
563
  gridAutoRows: u === "bottom" ? "200px" : "120px",
564
564
  gap: ms
565
565
  },
566
- children: S.map((s, a) => /* @__PURE__ */ e("div", { className: qe(s, a), children: /* @__PURE__ */ e(Pe, { image: s, onImageSelect: Ae, fixedHeight: !0 }) }, s.id))
566
+ children: S.map((s, a) => /* @__PURE__ */ e("div", { className: qe(s, a), children: /* @__PURE__ */ e(Pe, { image: s, onImageSelect: Me, fixedHeight: !0 }) }, s.id))
567
567
  }
568
568
  )
569
569
  ) : (
@@ -577,7 +577,7 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
577
577
  gridTemplateColumns: u === "bottom" ? "repeat(auto-fill, minmax(150px, 1fr))" : "repeat(auto-fill, minmax(120px, 1fr))",
578
578
  gap: Ie
579
579
  },
580
- children: S.map((s) => /* @__PURE__ */ e("div", { style: { aspectRatio: "1 / 1" }, children: /* @__PURE__ */ e(Pe, { image: s, onImageSelect: Ae, fixedHeight: !0 }) }, s.id))
580
+ children: S.map((s) => /* @__PURE__ */ e("div", { style: { aspectRatio: "1 / 1" }, children: /* @__PURE__ */ e(Pe, { image: s, onImageSelect: Me, fixedHeight: !0 }) }, s.id))
581
581
  }
582
582
  )
583
583
  ),
@@ -721,7 +721,7 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
721
721
  "data-testid": "vector-search-input"
722
722
  }
723
723
  ) }),
724
- /* @__PURE__ */ e(_, { type: "submit", size: "icon", variant: "secondary", disabled: A, "aria-label": "Search", children: /* @__PURE__ */ e(v, { icon: re.search, className: "sc:size-5" }) }),
724
+ /* @__PURE__ */ e(_, { type: "submit", size: "icon", variant: "secondary", disabled: M, "aria-label": "Search", children: /* @__PURE__ */ e(v, { icon: re.search, className: "sc:size-5" }) }),
725
725
  /* @__PURE__ */ e(
726
726
  _,
727
727
  {
@@ -734,8 +734,8 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
734
734
  )
735
735
  ] }),
736
736
  T && /* @__PURE__ */ e("div", { className: "sc:border-danger sc:bg-danger/10 sc:text-danger sc:mx-6 sc:mb-3 sc:rounded-2xl sc:border-2 sc:px-4 sc:py-3 sc:text-sm", children: T }),
737
- A && L.length === 0 && /* @__PURE__ */ e("div", { className: "sc:text-muted sc:px-6 sc:py-8 sc:text-center sc:text-sm", children: "Loading vectors..." }),
738
- L.length > 0 && /* @__PURE__ */ c("div", { className: "sc:mx-6 sc:overflow-hidden sc:rounded-t-2xl", children: [
737
+ M && A.length === 0 && /* @__PURE__ */ e("div", { className: "sc:text-muted sc:px-6 sc:py-8 sc:text-center sc:text-sm", children: "Loading vectors..." }),
738
+ A.length > 0 && /* @__PURE__ */ c("div", { className: "sc:mx-6 sc:overflow-hidden sc:rounded-t-2xl", children: [
739
739
  o === "masonry" ? (
740
740
  /* CSS Grid Masonry */
741
741
  /* @__PURE__ */ e(
@@ -748,7 +748,7 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
748
748
  gridAutoRows: u === "bottom" ? "150px" : "120px",
749
749
  gap: Ie
750
750
  },
751
- children: L.map((s) => /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(Ue, { vector: s, onVectorSelect: Me, fixedHeight: !0 }) }, s.id))
751
+ children: A.map((s) => /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(Ue, { vector: s, onVectorSelect: Le, fixedHeight: !0 }) }, s.id))
752
752
  }
753
753
  )
754
754
  ) : (
@@ -762,15 +762,15 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
762
762
  gridTemplateColumns: u === "bottom" ? "repeat(auto-fill, minmax(120px, 1fr))" : "repeat(auto-fill, minmax(100px, 1fr))",
763
763
  gap: Ie
764
764
  },
765
- children: L.map((s) => /* @__PURE__ */ e("div", { style: { aspectRatio: "1 / 1" }, children: /* @__PURE__ */ e(Ue, { vector: s, onVectorSelect: Me, fixedHeight: !0 }) }, s.id))
765
+ children: A.map((s) => /* @__PURE__ */ e("div", { style: { aspectRatio: "1 / 1" }, children: /* @__PURE__ */ e(Ue, { vector: s, onVectorSelect: Le, fixedHeight: !0 }) }, s.id))
766
766
  }
767
767
  )
768
768
  ),
769
769
  z && /* @__PURE__ */ e("div", { ref: Ce, className: "sc:h-px" }),
770
- A && /* @__PURE__ */ e("div", { className: "sc:text-muted sc:py-4 sc:text-center sc:text-sm", children: "Loading more..." }),
771
- !z && !A && /* @__PURE__ */ e("div", { className: "sc:text-muted sc:py-6 sc:text-center sc:text-sm", children: "No more vectors" })
770
+ M && /* @__PURE__ */ e("div", { className: "sc:text-muted sc:py-4 sc:text-center sc:text-sm", children: "Loading more..." }),
771
+ !z && !M && /* @__PURE__ */ e("div", { className: "sc:text-muted sc:py-6 sc:text-center sc:text-sm", children: "No more vectors" })
772
772
  ] }),
773
- !A && L.length === 0 && g && /* @__PURE__ */ c("div", { className: "sc:text-muted sc:px-6 sc:py-12 sc:text-center sc:text-sm", children: [
773
+ !M && A.length === 0 && g && /* @__PURE__ */ c("div", { className: "sc:text-muted sc:px-6 sc:py-12 sc:text-center sc:text-sm", children: [
774
774
  'No vectors found for "',
775
775
  g,
776
776
  '"'
@@ -812,12 +812,12 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
812
812
  )
813
813
  ] }),
814
814
  Ee && /* @__PURE__ */ e("div", { className: "sc:border-danger sc:bg-danger/10 sc:text-danger sc:rounded-2xl sc:border-2 sc:px-4 sc:py-3 sc:text-sm", children: Ee }),
815
- J && /* @__PURE__ */ c("div", { className: "sc:flex sc:flex-col sc:gap-4 sc:rounded-2xl sc:border sc:border-divider sc:bg-muted/40 sc:p-6", children: [
815
+ Z && /* @__PURE__ */ c("div", { className: "sc:flex sc:flex-col sc:gap-4 sc:rounded-2xl sc:border sc:border-divider sc:bg-muted/40 sc:p-6", children: [
816
816
  /* @__PURE__ */ e("div", { className: "sc:flex sc:items-center sc:justify-between", children: /* @__PURE__ */ e(be, { className: "sc:text-muted sc:text-xs sc:uppercase sc:tracking-wide", children: "Generated Image" }) }),
817
817
  /* @__PURE__ */ e("div", { className: "sc:flex sc:w-fit sc:items-center sc:justify-center sc:overflow-hidden sc:rounded-lg sc:bg-white/50 sc:dark:bg-black/50", style: { maxHeight: "500px", maxWidth: "100%" }, children: /* @__PURE__ */ e(
818
818
  "img",
819
819
  {
820
- src: J,
820
+ src: Z,
821
821
  alt: X,
822
822
  className: "sc:max-h-full sc:max-w-full sc:object-contain"
823
823
  }
@@ -831,7 +831,7 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
831
831
  _,
832
832
  {
833
833
  onClick: We,
834
- disabled: ue || !J,
834
+ disabled: ue || !Z,
835
835
  variant: "secondary",
836
836
  size: "sm",
837
837
  className: "sc:w-full sc:gap-2",
@@ -898,9 +898,9 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
898
898
  alert("Please create or select an artboard first");
899
899
  return;
900
900
  }
901
- const L = `element-${Date.now()}`, M = h.getActiveArtboard(), A = M ? M.x + M.width / 2 : window.innerWidth / 2, se = M ? M.y + M.height / 2 : window.innerHeight / 2, T = ((ne = m.current) == null ? void 0 : ne.getZoom()) || 1, $ = new os({
902
- id: L,
903
- x: A,
901
+ const A = `element-${Date.now()}`, L = h.getActiveArtboard(), M = L ? L.x + L.width / 2 : window.innerWidth / 2, se = L ? L.y + L.height / 2 : window.innerHeight / 2, T = ((ne = m.current) == null ? void 0 : ne.getZoom()) || 1, $ = new os({
902
+ id: A,
903
+ x: M,
904
904
  y: se,
905
905
  imageUrl: P,
906
906
  transformData: {
@@ -912,7 +912,7 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
912
912
  i((o) => o.map((q) => q.id === G.id ? G : q));
913
913
  }
914
914
  });
915
- h.addElementToArtboard(L, R), C($, R, y || void 0), S(L), N && N($);
915
+ h.addElementToArtboard(A, R), C($, R, y || void 0), S(A), N && N($);
916
916
  },
917
917
  [
918
918
  b,
@@ -948,4 +948,4 @@ const ms = "1px", Ie = "1px", Pe = Be.memo(function({ image: t, onImageSelect: N
948
948
  export {
949
949
  ws as ImagePanel
950
950
  };
951
- //# sourceMappingURL=ImagePanel-CmQCxBGm.js.map
951
+ //# sourceMappingURL=ImagePanel-CBgGqmVV.js.map