@snowcone-app/canvas 0.12.1 → 0.13.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.
package/dist/advanced.mjs CHANGED
@@ -1,18 +1,19 @@
1
1
  import { D as te, I as q, r as re, v as ne, i as oe, e as ae } from "./validation-BpmNOvuY.js";
2
- import { j as it, k as lt, l as ct, B as dt, m as ut, n as mt, o as ft, p as ht, q as pt, s as gt, t as xt, w as bt, x as yt, y as vt, F as wt, z as St, G as Ct, H as Tt, J as Et, K as $t, L as kt, N as At, O as Ft, Q as Pt, R as Nt, S as Rt, T as Bt, U as Mt, V as Dt, W as zt, X as It, Y as Ot, Z as Lt, _ as Wt, $ as Kt, a0 as _t, a1 as Gt, a2 as Ut, a3 as jt, a4 as Jt, a5 as qt, a6 as Vt, a7 as Xt, a8 as Yt, a9 as Zt, aa as Ht, ab as Qt, ac as er, ad as tr, ae as rr, af as nr } from "./validation-BpmNOvuY.js";
2
+ import { j as it, k as lt, l as ct, B as dt, m as ut, n as mt, o as ft, p as ht, q as pt, s as xt, t as gt, w as bt, x as yt, y as vt, F as wt, z as St, G as Ct, H as Et, J as Tt, K as $t, L as kt, N as At, O as Ft, Q as Pt, R as Nt, S as Rt, T as Bt, U as Dt, V as Mt, W as It, X as zt, Y as Ot, Z as Lt, _ as Wt, $ as Kt, a0 as _t, a1 as Gt, a2 as Ut, a3 as jt, a4 as Jt, a5 as qt, a6 as Vt, a7 as Xt, a8 as Yt, a9 as Zt, aa as Ht, ab as Qt, ac as er, ad as tr, ae as rr, af as nr } from "./validation-BpmNOvuY.js";
3
3
  import { u as V } from "./ThemeContext-Cl1JPVLZ.js";
4
- import { E as ar, P as sr, T as ir, p as lr, s as cr, b as dr, c as ur, d as mr, e as fr, f as hr, g as pr, a as gr } from "./ThemeContext-Cl1JPVLZ.js";
4
+ import { E as ar, P as sr, T as ir, p as lr, s as cr, b as dr, c as ur, d as mr, e as fr, f as hr, g as pr, a as xr } from "./ThemeContext-Cl1JPVLZ.js";
5
5
  import { c as se, G as ie, F as le, g as ce, r as de, u as ue } from "./HybridHistoryManager-NL3zyEl4.js";
6
- import { A as br, B as yr, I as vr, P as wr, R as Sr, S as Cr, T as Tr, h as Er, a as $r, b as kr, i as Ar, d as Fr, e as Pr, f as Nr, j as Rr, k as Br, l as Mr, m as Dr, n as zr, o as Ir, p as Or, q as Lr, s as Wr, t as Kr, v as _r, w as Gr, x as Ur } from "./HybridHistoryManager-NL3zyEl4.js";
6
+ import { A as br, B as yr, I as vr, P as wr, R as Sr, S as Cr, T as Er, h as Tr, a as $r, b as kr, i as Ar, d as Fr, e as Pr, f as Nr, j as Rr, k as Br, l as Dr, m as Mr, n as Ir, o as zr, p as Or, q as Lr, s as Wr, t as Kr, v as _r, w as Gr, x as Ur } from "./HybridHistoryManager-NL3zyEl4.js";
7
7
  import { I as me } from "./ImportManager-eotl7r5d.js";
8
8
  import { i as Jr, a as qr, b as Vr, c as Xr, d as Yr } from "./ImportManager-eotl7r5d.js";
9
9
  import { useState as A, useCallback as y, useEffect as X, useMemo as Y, useRef as B, memo as fe } from "react";
10
10
  import { jsxs as b, jsx as s, Fragment as he } from "react/jsx-runtime";
11
- import { Tooltip as M, TooltipTrigger as D, Button as pe, TooltipContent as z, Popover as ge, PopoverTrigger as xe, PopoverContent as be } from "@snowcone-app/ui";
11
+ import { Tooltip as D, TooltipTrigger as M, Button as pe, TooltipContent as I, Popover as xe, PopoverTrigger as ge, PopoverContent as be } from "@snowcone-app/ui";
12
12
  import { Surface as Hr, surfaceVariants as Qr, useSurface as en } from "@snowcone-app/ui";
13
13
  import "clsx";
14
14
  import "tailwind-merge";
15
15
  import { e as ye, c as ve } from "./compose-DtQL_oit.js";
16
+ import { P as rn, p as nn, u as on } from "./usePieceGuideBundle-Cyl695jv.js";
16
17
  const Oe = ({
17
18
  title: e,
18
19
  icon: t,
@@ -175,8 +176,8 @@ const Ke = ({ label: e, icon: t, checked: r, onChange: a, disabled: n = !1, clas
175
176
  {
176
177
  isOpen: e,
177
178
  onToggle: t,
178
- trigger: r || /* @__PURE__ */ b(M, { delayDuration: 0, children: [
179
- /* @__PURE__ */ s(D, { asChild: !0, children: /* @__PURE__ */ s(
179
+ trigger: r || /* @__PURE__ */ b(D, { delayDuration: 0, children: [
180
+ /* @__PURE__ */ s(M, { asChild: !0, children: /* @__PURE__ */ s(
180
181
  pe,
181
182
  {
182
183
  variant: "ghost",
@@ -187,7 +188,7 @@ const Ke = ({ label: e, icon: t, checked: r, onChange: a, disabled: n = !1, clas
187
188
  children: /* @__PURE__ */ s(q, { icon: "lucide:ellipsis-vertical", className: "size-6" })
188
189
  }
189
190
  ) }),
190
- /* @__PURE__ */ s(z, { children: /* @__PURE__ */ s("p", { children: "More" }) })
191
+ /* @__PURE__ */ s(I, { children: /* @__PURE__ */ s("p", { children: "More" }) })
191
192
  ] }),
192
193
  position: "bottom",
193
194
  align: "end",
@@ -253,10 +254,10 @@ function Je() {
253
254
  const l = typeof d == "string" ? JSON.parse(d) : d;
254
255
  if (!l.artboards || !Array.isArray(l.artboards))
255
256
  throw new Error("Invalid document format: missing artboards array");
256
- const g = JSON.stringify(l), S = new Blob([g], { type: "application/json" }), C = new File([S], "project.json", { type: "application/json" }), x = await me.importFromJSON(C);
257
- if (!x.success || !x.artboards || !x.elements)
258
- throw new Error(x.error || "Failed to import project");
259
- e(x.artboards, x.elements, x.activeArtboardId || null), i(l);
257
+ const x = JSON.stringify(l), S = new Blob([x], { type: "application/json" }), C = new File([S], "project.json", { type: "application/json" }), g = await me.importFromJSON(C);
258
+ if (!g.success || !g.artboards || !g.elements)
259
+ throw new Error(g.error || "Failed to import project");
260
+ e(g.artboards, g.elements, g.activeArtboardId || null), i(l);
260
261
  const u = l.artboards.reduce((p, k) => {
261
262
  var v;
262
263
  return p + (((v = k.elements) == null ? void 0 : v.length) || 0);
@@ -291,15 +292,15 @@ function Je() {
291
292
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
292
293
  appVersion: "1.0.0"
293
294
  },
294
- artboards: d.artboards.map((g, S) => ({
295
+ artboards: d.artboards.map((x, S) => ({
295
296
  id: `artboard-${Date.now()}-${S}`,
296
- name: g.name,
297
+ name: x.name,
297
298
  x: 0,
298
299
  y: 0,
299
- width: g.width,
300
- height: g.height,
301
- backgroundColor: g.backgroundColor,
302
- elements: g.elements || []
300
+ width: x.width,
301
+ height: x.height,
302
+ backgroundColor: x.backgroundColor,
303
+ elements: x.elements || []
303
304
  })),
304
305
  activeArtboardId: null
305
306
  // First artboard will be active by default
@@ -339,10 +340,10 @@ function qe(e) {
339
340
  }, [r, a] = A(() => typeof window < "u" ? window.innerWidth : U.lg);
340
341
  X(() => {
341
342
  if (typeof window > "u") return;
342
- const g = () => {
343
+ const x = () => {
343
344
  a(window.innerWidth);
344
345
  };
345
- return window.addEventListener("resize", g), () => window.removeEventListener("resize", g);
346
+ return window.addEventListener("resize", x), () => window.removeEventListener("resize", x);
346
347
  }, []);
347
348
  const n = Y(
348
349
  () => we(r, t),
@@ -357,12 +358,12 @@ function qe(e) {
357
358
  isLg: c,
358
359
  isXl: f,
359
360
  isXxl: w,
360
- isAtLeast: (g) => {
361
- const S = h.indexOf(n), C = h.indexOf(g);
361
+ isAtLeast: (x) => {
362
+ const S = h.indexOf(n), C = h.indexOf(x);
362
363
  return S >= C;
363
364
  },
364
- isAtMost: (g) => {
365
- const S = h.indexOf(n), C = h.indexOf(g);
365
+ isAtMost: (x) => {
366
+ const S = h.indexOf(n), C = h.indexOf(x);
366
367
  return S <= C;
367
368
  }
368
369
  };
@@ -392,13 +393,13 @@ function Ve() {
392
393
  }, [f, w, h]), l = y(() => {
393
394
  const u = performance.now(), p = u - m.current;
394
395
  m.current = u, n.current.push(p), n.current.length > 60 && n.current.shift(), n.current.length % 30 === 0 && d(), r && (c.current = requestAnimationFrame(l));
395
- }, [r, d]), g = y(() => {
396
+ }, [r, d]), x = y(() => {
396
397
  a(!0), m.current = performance.now(), c.current = requestAnimationFrame(l);
397
398
  }, [l]), S = y(() => {
398
399
  a(!1), c.current !== null && (cancelAnimationFrame(c.current), c.current = null);
399
400
  }, []), C = y(() => {
400
401
  n.current = [], o.current = [], i.current = [], t(j);
401
- }, []), x = y(() => `
402
+ }, []), g = y(() => `
402
403
  Performance Report
403
404
  ==================
404
405
  FPS: ${e.fps.toFixed(1)}
@@ -413,10 +414,10 @@ Avg Export Time: ${e.avgExportTime.toFixed(2)}ms
413
414
  c.current !== null && cancelAnimationFrame(c.current);
414
415
  }, []), {
415
416
  metrics: e,
416
- startProfiling: g,
417
+ startProfiling: x,
417
418
  stopProfiling: S,
418
419
  clearMetrics: C,
419
- getReport: x,
420
+ getReport: g,
420
421
  isProfiling: r
421
422
  };
422
423
  }
@@ -432,23 +433,23 @@ function Ye(e) {
432
433
  onDropIntoGroupAtPosition: n,
433
434
  findElement: o,
434
435
  findParentGroup: i
435
- } = e, [m, c] = A(null), [f, w] = A(null), [h, d] = A(null), l = y((x, u) => {
436
- x.dataTransfer.effectAllowed = "move", requestAnimationFrame(() => {
436
+ } = e, [m, c] = A(null), [f, w] = A(null), [h, d] = A(null), l = y((g, u) => {
437
+ g.dataTransfer.effectAllowed = "move", requestAnimationFrame(() => {
437
438
  c(u);
438
439
  });
439
- }, []), g = y(
440
- (x, u) => {
441
- x.preventDefault(), x.dataTransfer.dropEffect = "move";
442
- const p = x.currentTarget.getBoundingClientRect(), v = x.clientY - p.top, F = p.height, I = (o == null ? void 0 : o(u)) instanceof ie;
440
+ }, []), x = y(
441
+ (g, u) => {
442
+ g.preventDefault(), g.dataTransfer.dropEffect = "move";
443
+ const p = g.currentTarget.getBoundingClientRect(), v = g.clientY - p.top, F = p.height, z = (o == null ? void 0 : o(u)) instanceof ie;
443
444
  let $;
444
- I ? v < F * 0.25 ? $ = "before" : v > F * 0.75 ? $ = "after" : $ = "into" : v < F * 0.4 ? $ = "before" : v > F * 0.6 ? $ = "after" : $ = v < F / 2 ? "before" : "after", w(u), d($);
445
+ z ? v < F * 0.25 ? $ = "before" : v > F * 0.75 ? $ = "after" : $ = "into" : v < F * 0.4 ? $ = "before" : v > F * 0.6 ? $ = "after" : $ = v < F / 2 ? "before" : "after", w(u), d($);
445
446
  },
446
447
  [o]
447
448
  ), S = y(() => {
448
449
  c(null), w(null), d(null);
449
450
  }, []), C = y(
450
- (x, u) => {
451
- if (x.preventDefault(), !m || m === u || !h) {
451
+ (g, u) => {
452
+ if (g.preventDefault(), !m || m === u || !h) {
452
453
  S();
453
454
  return;
454
455
  }
@@ -477,7 +478,7 @@ function Ye(e) {
477
478
  dropPosition: h,
478
479
  handlers: {
479
480
  onDragStart: l,
480
- onDragOver: g,
481
+ onDragOver: x,
481
482
  onDrop: C,
482
483
  onDragEnd: S
483
484
  }
@@ -513,8 +514,8 @@ const Se = fe(({ value: e, onChange: t, fontSizes: r, isOpen: a, onToggle: n })
513
514
  const o = (i) => {
514
515
  t(i), n(!1);
515
516
  };
516
- return /* @__PURE__ */ b(ge, { open: a, onOpenChange: n, children: [
517
- /* @__PURE__ */ s(xe, { asChild: !0, children: /* @__PURE__ */ s("button", { className: "toolbar-btn", "aria-label": "Font size", children: /* @__PURE__ */ s(q, { icon: "radix-icons:font-size", className: "size-5" }) }) }),
517
+ return /* @__PURE__ */ b(xe, { open: a, onOpenChange: n, children: [
518
+ /* @__PURE__ */ s(ge, { asChild: !0, children: /* @__PURE__ */ s("button", { className: "toolbar-btn", "aria-label": "Font size", children: /* @__PURE__ */ s(q, { icon: "radix-icons:font-size", className: "size-5" }) }) }),
518
519
  /* @__PURE__ */ s(be, { className: "w-[120px] max-h-[300px] overflow-y-auto p-1", maxZIndex: !0, children: /* @__PURE__ */ s("div", { className: "flex flex-col gap-0.5", children: r.map((i) => /* @__PURE__ */ s(
519
520
  "button",
520
521
  {
@@ -530,12 +531,12 @@ Se.displayName = "FontSizeDropdown";
530
531
  function He({ toolbar: e }) {
531
532
  const { fontSize: t, handleFontSizeIncrement: r, handleFontSizeChange: a } = e, [n, o] = A(!1);
532
533
  return /* @__PURE__ */ b("div", { className: "toolbar-group", children: [
533
- /* @__PURE__ */ b(M, { delayDuration: 300, children: [
534
- /* @__PURE__ */ s(D, { asChild: !0, children: /* @__PURE__ */ s("button", { className: "toolbar-btn-sm", onClick: () => r(-1), children: "-" }) }),
535
- /* @__PURE__ */ s(z, { children: "Decrease Font Size" })
534
+ /* @__PURE__ */ b(D, { delayDuration: 300, children: [
535
+ /* @__PURE__ */ s(M, { asChild: !0, children: /* @__PURE__ */ s("button", { className: "toolbar-btn-sm", onClick: () => r(-1), children: "-" }) }),
536
+ /* @__PURE__ */ s(I, { children: "Decrease Font Size" })
536
537
  ] }),
537
- /* @__PURE__ */ b(M, { delayDuration: 300, children: [
538
- /* @__PURE__ */ s(D, { asChild: !0, children: /* @__PURE__ */ b("div", { style: { position: "relative" }, children: [
538
+ /* @__PURE__ */ b(D, { delayDuration: 300, children: [
539
+ /* @__PURE__ */ s(M, { asChild: !0, children: /* @__PURE__ */ b("div", { style: { position: "relative" }, children: [
539
540
  /* @__PURE__ */ s(
540
541
  "button",
541
542
  {
@@ -575,11 +576,11 @@ function He({ toolbar: e }) {
575
576
  }
576
577
  )
577
578
  ] }) }),
578
- /* @__PURE__ */ s(z, { children: "Font Size" })
579
+ /* @__PURE__ */ s(I, { children: "Font Size" })
579
580
  ] }),
580
- /* @__PURE__ */ b(M, { delayDuration: 300, children: [
581
- /* @__PURE__ */ s(D, { asChild: !0, children: /* @__PURE__ */ s("button", { className: "toolbar-btn-sm", onClick: () => r(1), children: "+" }) }),
582
- /* @__PURE__ */ s(z, { children: "Increase Font Size" })
581
+ /* @__PURE__ */ b(D, { delayDuration: 300, children: [
582
+ /* @__PURE__ */ s(M, { asChild: !0, children: /* @__PURE__ */ s("button", { className: "toolbar-btn-sm", onClick: () => r(1), children: "+" }) }),
583
+ /* @__PURE__ */ s(I, { children: "Increase Font Size" })
583
584
  ] })
584
585
  ] });
585
586
  }
@@ -700,9 +701,9 @@ class Ce {
700
701
  return ((r = this.listeners.get(t)) == null ? void 0 : r.size) ?? 0;
701
702
  }
702
703
  }
703
- const Te = new Ce();
704
+ const Ee = new Ce();
704
705
  function nt() {
705
- return Te;
706
+ return Ee;
706
707
  }
707
708
  const W = {
708
709
  bleedFill: "#ffffff",
@@ -757,7 +758,7 @@ const W = {
757
758
  // pin via `style.labelFontSize`.
758
759
  labelFontSize: 14,
759
760
  labelFontFamily: "ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif"
760
- }, Ee = {
761
+ }, Te = {
761
762
  // SVG `dominant-baseline` has no "baseline" keyword; "alphabetic" is the
762
763
  // bottom/baseline alignment (and React's typed union enforces this).
763
764
  tl: { textAnchor: "start", dominantBaseline: "hanging" },
@@ -882,10 +883,10 @@ function ot({
882
883
  className: m,
883
884
  style: { pointerEvents: "none", width: "100%", height: "100%" },
884
885
  children: /* @__PURE__ */ s("g", { transform: `translate(${r} ${r})`, children: a.map((d) => {
885
- const l = n == null ? void 0 : n[d.id], g = (l == null ? void 0 : l.zones) ?? [], S = (l == null ? void 0 : l.labels) ?? [], C = d.rotation ?? 0, x = C === 90 || C === 270, u = x ? d.height : d.width, p = x ? d.width : d.height, k = $e(l, u, p), v = ke(l, d, u, p), F = `translate(${d.x} ${d.y})`;
886
+ const l = n == null ? void 0 : n[d.id], x = (l == null ? void 0 : l.zones) ?? [], S = (l == null ? void 0 : l.labels) ?? [], C = d.rotation ?? 0, g = C === 90 || C === 270, u = g ? d.height : d.width, p = g ? d.width : d.height, k = $e(l, u, p), v = ke(l, d, u, p), F = `translate(${d.x} ${d.y})`;
886
887
  let N = "";
887
888
  C === 90 ? N = `translate(${d.width} 0) rotate(90)` : C === 180 ? N = `translate(${d.width} ${d.height}) rotate(180)` : C === 270 && (N = `translate(0 ${d.height}) rotate(270)`);
888
- const I = N ? `${F} ${N}` : F, $ = c.safeAreaWashCornerRadius < 0 ? Math.round(Math.min(u, p) * 0.02) : c.safeAreaWashCornerRadius, P = l != null && l.boundary && (l.boundary.kind === "rect" || l.boundary.kind === "roundedRect") ? l.boundary : null, O = P ? P.kind === "rect" && $ > 0 ? {
889
+ const z = N ? `${F} ${N}` : F, $ = c.safeAreaWashCornerRadius < 0 ? Math.round(Math.min(u, p) * 0.02) : c.safeAreaWashCornerRadius, P = l != null && l.boundary && (l.boundary.kind === "rect" || l.boundary.kind === "roundedRect") ? l.boundary : null, O = P ? P.kind === "rect" && $ > 0 ? {
889
890
  kind: "roundedRect",
890
891
  x: P.x,
891
892
  y: P.y,
@@ -914,7 +915,7 @@ function ot({
914
915
  width: u,
915
916
  height: p
916
917
  }, H = O.kind === "rect" || O.kind === "roundedRect";
917
- return /* @__PURE__ */ b("g", { transform: I, children: [
918
+ return /* @__PURE__ */ b("g", { transform: z, children: [
918
919
  f.safeArea && H && /* @__PURE__ */ b(he, { children: [
919
920
  /* @__PURE__ */ b("defs", { children: [
920
921
  /* @__PURE__ */ s(
@@ -979,25 +980,25 @@ function ot({
979
980
  }
980
981
  )
981
982
  ] }),
982
- f.zones && g.filter((T) => T.kind !== "dieCut").map((T, R) => /* @__PURE__ */ s("g", { children: K(T.path, {
983
- fill: c.zoneFill[T.kind],
984
- stroke: c.zoneStroke[T.kind],
983
+ f.zones && x.filter((E) => E.kind !== "dieCut").map((E, R) => /* @__PURE__ */ s("g", { children: K(E.path, {
984
+ fill: c.zoneFill[E.kind],
985
+ stroke: c.zoneStroke[E.kind],
985
986
  strokeWidth: 1.5,
986
- strokeDasharray: T.kind === "wrap" ? "4 3" : void 0,
987
+ strokeDasharray: E.kind === "wrap" ? "4 3" : void 0,
987
988
  vectorEffect: "non-scaling-stroke"
988
989
  }) }, `zone-${R}`)),
989
- f.zones && g.filter((T) => T.kind === "dieCut").map((T, R) => {
990
- const E = T.path;
991
- if (E.kind !== "rect" && E.kind !== "roundedRect")
990
+ f.zones && x.filter((E) => E.kind === "dieCut").map((E, R) => {
991
+ const T = E.path;
992
+ if (T.kind !== "rect" && T.kind !== "roundedRect")
992
993
  return null;
993
- const Q = E.kind === "roundedRect" ? E.rx ?? E.ry ?? 0 : 0, ee = E.kind === "roundedRect" ? E.ry ?? E.rx ?? 0 : 0;
994
+ const Q = T.kind === "roundedRect" ? T.rx ?? T.ry ?? 0 : 0, ee = T.kind === "roundedRect" ? T.ry ?? T.rx ?? 0 : 0;
994
995
  return /* @__PURE__ */ s(
995
996
  "foreignObject",
996
997
  {
997
- x: E.x,
998
- y: E.y,
999
- width: E.width,
1000
- height: E.height,
998
+ x: T.x,
999
+ y: T.y,
1000
+ width: T.width,
1001
+ height: T.height,
1001
1002
  children: /* @__PURE__ */ s(
1002
1003
  "div",
1003
1004
  {
@@ -1036,15 +1037,15 @@ function ot({
1036
1037
  strokeDasharray: c.safeAreaDashArray,
1037
1038
  vectorEffect: "non-scaling-stroke"
1038
1039
  }),
1039
- f.labels && S.map((T, R) => {
1040
- const E = Ee[T.anchor ?? "c"];
1040
+ f.labels && S.map((E, R) => {
1041
+ const T = Te[E.anchor ?? "c"];
1041
1042
  return /* @__PURE__ */ s(
1042
1043
  "text",
1043
1044
  {
1044
- x: T.x,
1045
- y: T.y,
1046
- textAnchor: E.textAnchor,
1047
- dominantBaseline: E.dominantBaseline,
1045
+ x: E.x,
1046
+ y: E.y,
1047
+ textAnchor: T.textAnchor,
1048
+ dominantBaseline: T.dominantBaseline,
1048
1049
  fontSize: c.labelFontSize,
1049
1050
  fontFamily: c.labelFontFamily,
1050
1051
  fill: c.labelColor,
@@ -1052,7 +1053,7 @@ function ot({
1052
1053
  stroke: "#ffffff",
1053
1054
  strokeWidth: Math.max(2, c.labelFontSize * 0.25),
1054
1055
  strokeLinejoin: "round",
1055
- children: T.text
1056
+ children: E.text
1056
1057
  },
1057
1058
  `label-${R}`
1058
1059
  );
@@ -1078,8 +1079,8 @@ export {
1078
1079
  ht as ColorPickerDropdown,
1079
1080
  pt as ContextualToolbars,
1080
1081
  Le as ControlGroup,
1081
- gt as CropPanel,
1082
- xt as DEFAULT_AUTO_EXPORT_CONFIG,
1082
+ xt as CropPanel,
1083
+ gt as DEFAULT_AUTO_EXPORT_CONFIG,
1083
1084
  te as Dropdown,
1084
1085
  bt as DropdownMenu,
1085
1086
  ar as EditorProvider,
@@ -1092,8 +1093,8 @@ export {
1092
1093
  Ct as GlyphPanel,
1093
1094
  ie as GroupElement,
1094
1095
  vr as ImageElement,
1095
- Tt as ImagePanel,
1096
- Et as ImageToolbar,
1096
+ Et as ImagePanel,
1097
+ Tt as ImageToolbar,
1097
1098
  $t as ItalicButton,
1098
1099
  kt as KIT_PRESETS,
1099
1100
  At as KitProvider,
@@ -1102,20 +1103,21 @@ export {
1102
1103
  Nt as MenuButton,
1103
1104
  Rt as MenuItem,
1104
1105
  Bt as MoreMenu,
1106
+ rn as PIECE_GUIDES_API_BASE,
1105
1107
  sr as PRESERVE_SELECTION_ATTR,
1106
1108
  Oe as Panel,
1107
1109
  wr as PathElement,
1108
- Mt as PathToolbar,
1110
+ Dt as PathToolbar,
1109
1111
  Sr as RichText,
1110
1112
  Ge as SecondaryToolbar,
1111
1113
  Cr as ShapeElement,
1112
- Dt as ShapeToolbar,
1113
- zt as ShapeTypeDrawer,
1114
- It as Spinner,
1114
+ Mt as ShapeToolbar,
1115
+ It as ShapeTypeDrawer,
1116
+ zt as Spinner,
1115
1117
  Hr as Surface,
1116
1118
  _e as Switch,
1117
1119
  Ot as TextAlignButton,
1118
- Tr as TextElement,
1120
+ Er as TextElement,
1119
1121
  Lt as TextMoreMenu,
1120
1122
  Wt as TextToolbar,
1121
1123
  ir as ThemeProvider,
@@ -1126,12 +1128,12 @@ export {
1126
1128
  Ut as UppercaseButton,
1127
1129
  ot as VisualGuideOverlay,
1128
1130
  jt as ZoomControls,
1129
- Te as canvasEventBus,
1131
+ Ee as canvasEventBus,
1130
1132
  Jt as getAllSections,
1131
1133
  tt as getCustomElementTypes,
1132
1134
  qt as getSection,
1133
1135
  Vt as getSectionIds,
1134
- Er as hasDistressEffect,
1136
+ Tr as hasDistressEffect,
1135
1137
  $r as hasMasks,
1136
1138
  kr as hasStroke,
1137
1139
  Ar as isArchTransform,
@@ -1141,11 +1143,11 @@ export {
1141
1143
  Rr as isCustomTransform,
1142
1144
  Br as isFlagTransform,
1143
1145
  Jr as isGroupElement,
1144
- Mr as isGroupElementConfig,
1145
- Dr as isGroupTransform,
1146
+ Dr as isGroupElementConfig,
1147
+ Mr as isGroupTransform,
1146
1148
  qr as isImageElement,
1147
- zr as isImageElementConfig,
1148
- Ir as isImageTransform,
1149
+ Ir as isImageElementConfig,
1150
+ zr as isImageTransform,
1149
1151
  Or as isKnockout,
1150
1152
  Vr as isPathElement,
1151
1153
  Lr as isPathElementConfig,
@@ -1158,6 +1160,7 @@ export {
1158
1160
  Gr as isTextElementConfig,
1159
1161
  Ur as isWaveTransform,
1160
1162
  je as loadKitFromJSON,
1163
+ nn as pieceGuidesForArtboard,
1161
1164
  lr as preserveSelectionProps,
1162
1165
  Xt as registerBuiltinSections,
1163
1166
  Yt as registerBuiltinSectionsSync,
@@ -1181,12 +1184,13 @@ export {
1181
1184
  rr as useLayerPreview,
1182
1185
  Ze as useLayerSelection,
1183
1186
  Ve as usePerformance,
1187
+ on as usePieceGuideBundle,
1184
1188
  Je as useProjectLoader,
1185
1189
  fr as useSelectionContext,
1186
1190
  en as useSurface,
1187
1191
  nr as useTextToolbar,
1188
1192
  hr as useTheme,
1189
1193
  pr as useToolStateContext,
1190
- gr as useViewportContext
1194
+ xr as useViewportContext
1191
1195
  };
1192
1196
  //# sourceMappingURL=advanced.mjs.map