@snowcone-app/canvas 0.37.1 → 0.38.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 (69) hide show
  1. package/ERROR_CONTRACT.md +39 -8
  2. package/STYLING_CONTRACT.md +24 -2
  3. package/dist/{CanvasRenderer-CTN4j-uO.js → CanvasRenderer-D-E5WWLm.js} +4 -4
  4. package/dist/{CanvasRenderer-CTN4j-uO.js.map → CanvasRenderer-D-E5WWLm.js.map} +1 -1
  5. package/dist/{CanvasStateV1-DLE5d1-d.js → CanvasStateV1-C9LQt2J0.js} +7 -7
  6. package/dist/{CanvasStateV1-DLE5d1-d.js.map → CanvasStateV1-C9LQt2J0.js.map} +1 -1
  7. package/dist/{ContextualToolbars-CG5Gmv_i.js → ContextualToolbars-C62As-xY.js} +202 -202
  8. package/dist/{ContextualToolbars-CG5Gmv_i.js.map → ContextualToolbars-C62As-xY.js.map} +1 -1
  9. package/dist/EditorCanvasImpl-BnxEbr2p.js +144 -0
  10. package/dist/EditorCanvasImpl-BnxEbr2p.js.map +1 -0
  11. package/dist/{ExportManager-CDX5_up8.js → ExportManager-BbBfO22S.js} +45 -45
  12. package/dist/{ExportManager-CDX5_up8.js.map → ExportManager-BbBfO22S.js.map} +1 -1
  13. package/dist/{FontAnalyzer-CEYA_6fY.js → FontAnalyzer-DWHS41ba.js} +128 -128
  14. package/dist/FontAnalyzer-DWHS41ba.js.map +1 -0
  15. package/dist/{ImagePanel-DLxIDKV-.js → ImagePanel-BaX0UE-L.js} +57 -57
  16. package/dist/{ImagePanel-DLxIDKV-.js.map → ImagePanel-BaX0UE-L.js.map} +1 -1
  17. package/dist/SnowconeCanvas-CWSPyqqj.js +1112 -0
  18. package/dist/SnowconeCanvas-CWSPyqqj.js.map +1 -0
  19. package/dist/advanced.mjs +138 -138
  20. package/dist/api/placement.d.ts +3 -0
  21. package/dist/components/editor/EditorPlacements.d.ts +19 -6
  22. package/dist/components/editor/RootInternals.d.ts +7 -0
  23. package/dist/components/editor/designStateStore.d.ts +18 -0
  24. package/dist/components/editor/index.d.ts +3 -1
  25. package/dist/components/editor/placementLinks.d.ts +52 -0
  26. package/dist/components/editor/usePlacements.d.ts +28 -4
  27. package/dist/components/embed-realtime/context.d.ts +20 -4
  28. package/dist/components/embed-realtime/usePieceGuideBundle.d.ts +1 -0
  29. package/dist/components/embed-realtime/validateEmbed.d.ts +6 -3
  30. package/dist/{custom-icons-D51KIAfz.js → custom-icons-o1U13Vcg.js} +14 -14
  31. package/dist/{custom-icons-D51KIAfz.js.map → custom-icons-o1U13Vcg.js.map} +1 -1
  32. package/dist/{design-builder-CqgTpp9B.js → design-builder-CoCtjIwj.js} +86 -86
  33. package/dist/{design-builder-CqgTpp9B.js.map → design-builder-CoCtjIwj.js.map} +1 -1
  34. package/dist/{embed-CLz3CTcX.js → embed-SOFUZlGB.js} +843 -729
  35. package/dist/embed-SOFUZlGB.js.map +1 -0
  36. package/dist/embed.mjs +28 -28
  37. package/dist/errors/editorError.d.ts +7 -2
  38. package/dist/{guards-DldCuuJq.js → guards-DMmhw_Ow.js} +4 -4
  39. package/dist/{guards-DldCuuJq.js.map → guards-DMmhw_Ow.js.map} +1 -1
  40. package/dist/index.mjs +21 -21
  41. package/dist/internals.mjs +108 -108
  42. package/dist/internals.mjs.map +1 -1
  43. package/dist/placement-Br5jI_-u.js +90 -0
  44. package/dist/placement-Br5jI_-u.js.map +1 -0
  45. package/dist/placement.d.ts +2 -0
  46. package/dist/placement.mjs +5 -0
  47. package/dist/placement.mjs.map +1 -0
  48. package/dist/template-fields-CBLHgW7G.js +556 -0
  49. package/dist/template-fields-CBLHgW7G.js.map +1 -0
  50. package/dist/testing.mjs +24 -24
  51. package/dist/{useCommands-CQi4Pyd2.js → useCommands-x8J7_Mzy.js} +262 -262
  52. package/dist/{useCommands-CQi4Pyd2.js.map → useCommands-x8J7_Mzy.js.map} +1 -1
  53. package/dist/usePieceGuideBundle-C7r06a_x.js +65 -0
  54. package/dist/usePieceGuideBundle-C7r06a_x.js.map +1 -0
  55. package/dist/{validation-THw5W6N_.js → validation-BG-V98h0.js} +846 -846
  56. package/dist/validation-BG-V98h0.js.map +1 -0
  57. package/example/package.json +1 -1
  58. package/package.json +7 -2
  59. package/dist/EditorCanvasImpl-BRdFWZA5.js +0 -81
  60. package/dist/EditorCanvasImpl-BRdFWZA5.js.map +0 -1
  61. package/dist/FontAnalyzer-CEYA_6fY.js.map +0 -1
  62. package/dist/SnowconeCanvas-BaFR8QXs.js +0 -1196
  63. package/dist/SnowconeCanvas-BaFR8QXs.js.map +0 -1
  64. package/dist/embed-CLz3CTcX.js.map +0 -1
  65. package/dist/template-fields-D8uOutD4.js +0 -505
  66. package/dist/template-fields-D8uOutD4.js.map +0 -1
  67. package/dist/usePieceGuideBundle-BUQKb0Ja.js +0 -61
  68. package/dist/usePieceGuideBundle-BUQKb0Ja.js.map +0 -1
  69. package/dist/validation-THw5W6N_.js.map +0 -1
package/dist/advanced.mjs CHANGED
@@ -1,26 +1,26 @@
1
- import { D as te, T as M, i as D, B as re, I as q, j as I, k as ne, e as se } from "./useCommands-CQi4Pyd2.js";
2
- import { l as at, L as it, M as ct, m as lt, S as dt, n as ut, s as mt, o as ft } from "./useCommands-CQi4Pyd2.js";
3
- import { r as oe, v as ae } from "./validation-THw5W6N_.js";
4
- import { a as pt, b as xt, c as gt, d as bt, D as yt, e as vt, f as wt, G as St, K as Ct, g as Tt, L as Et, S as $t, T as kt, Z as At, h as Ft, i as Pt, j as Nt, k as Rt, l as Bt, m as Mt, n as Dt, u as It, o as zt, p as Ot } from "./validation-THw5W6N_.js";
5
- import { ImagePanel as Wt } from "./ImagePanel-DLxIDKV-.js";
6
- import { P as ie, a as ce, b as le } from "./ContextualToolbars-CG5Gmv_i.js";
7
- import { A as Gt, B as _t, c as Ut, C as jt, d as Jt, e as qt, F as Zt, f as Vt, I as Xt, g as Yt, M as Ht, h as Qt, S as er, T as tr, i as rr, j as nr, k as sr, U as or, l as ar, u as ir, m as cr } from "./ContextualToolbars-CG5Gmv_i.js";
8
- import { u as Z } from "./design-builder-CqgTpp9B.js";
9
- import { E as dr, P as ur, p as mr, b as fr, c as hr, e as pr, f as xr, g as gr, h as br, a as yr } from "./design-builder-CqgTpp9B.js";
1
+ import { p as te, T as M, q as D, B as re, I as J, r as I, s as ne, e as se } from "./useCommands-x8J7_Mzy.js";
2
+ import { t as ot, L as it, M as ct, v as lt, S as dt, w as ut, x as mt, u as ft } from "./useCommands-x8J7_Mzy.js";
3
+ import { r as ae, v as oe } from "./validation-BG-V98h0.js";
4
+ import { d as pt, e as xt, f as gt, h as bt, D as yt, b as vt, c as wt, G as St, i as Ct, K as Tt, L as Et, S as $t, T as kt, Z as At, j as Ft, g as Pt, k as Nt, l as Bt, a as Rt, m as Mt, n as Dt, u as It, o as zt, p as Ot } from "./validation-BG-V98h0.js";
5
+ import { ImagePanel as Wt } from "./ImagePanel-BaX0UE-L.js";
6
+ import { P as ie, b as ce, c as le } from "./ContextualToolbars-C62As-xY.js";
7
+ import { A as Gt, B as _t, d as Ut, e as jt, C as qt, a as Jt, F as Zt, f as Vt, I as Xt, g as Yt, M as Ht, h as Qt, S as er, T as tr, i as rr, j as nr, k as sr, U as ar, l as or, u as ir, m as cr } from "./ContextualToolbars-C62As-xY.js";
8
+ import { b as Z } from "./design-builder-CoCtjIwj.js";
9
+ import { E as dr, P as ur, p as mr, j as fr, a as hr, u as pr, k as xr, c as gr, m as br, d as yr } from "./design-builder-CoCtjIwj.js";
10
10
  import { T as wr, u as Sr } from "./ThemeContext-Rjz25x9X.js";
11
- import { c as de, G as ue, F as me, g as fe, r as he, u as pe } from "./FontAnalyzer-CEYA_6fY.js";
12
- import { A as Tr, B as Er, I as $r, P as kr, R as Ar, S as Fr, T as Pr, h as Nr, a as Rr, b as Br, i as Mr, d as Dr, e as Ir, f as zr, j as Or, k as Lr, l as Wr, m as Kr, n as Gr, o as _r, p as Ur, q as jr, s as Jr, t as qr, v as Zr, w as Vr, x as Xr } from "./FontAnalyzer-CEYA_6fY.js";
13
- import { i as Hr, a as Qr, b as en, c as tn, d as rn } from "./guards-DldCuuJq.js";
14
- import { useState as A, useCallback as y, useEffect as V, useMemo as X, useRef as B, memo as xe } from "react";
15
- import { I as ge } from "./ExportManager-CDX5_up8.js";
11
+ import { c as de, G as ue, ap as me, q as fe, aq as he, ar as pe } from "./FontAnalyzer-DWHS41ba.js";
12
+ import { A as Tr, as as Er, I as $r, P as kr, at as Ar, S as Fr, T as Pr, au as Nr, av as Br, aw as Rr, ax as Mr, ay as Dr, az as Ir, aA as zr, aB as Or, aC as Lr, aD as Wr, aE as Kr, aF as Gr, aG as _r, aH as Ur, aI as jr, aJ as qr, aK as Jr, aL as Zr, aM as Vr, aN as Xr } from "./FontAnalyzer-DWHS41ba.js";
13
+ import { a as Hr, i as Qr, b as en, c as tn, d as rn } from "./guards-DMmhw_Ow.js";
14
+ import { useState as A, useCallback as y, useEffect as V, useMemo as X, useRef as R, memo as xe } from "react";
15
+ import { I as ge } from "./ExportManager-BbBfO22S.js";
16
16
  import { e as be, c as ye } from "./compose-DtQL_oit.js";
17
- import { jsxs as b, jsx as a, Fragment as ve } from "react/jsx-runtime";
18
- import { P as sn, p as on, u as an } from "./usePieceGuideBundle-BUQKb0Ja.js";
17
+ import { jsxs as b, jsx as o, Fragment as ve } from "react/jsx-runtime";
18
+ import { P as sn, p as an, u as on } from "./usePieceGuideBundle-C7r06a_x.js";
19
19
  const ze = ({
20
20
  title: e,
21
21
  icon: t,
22
22
  children: r,
23
- enableable: o = !1,
23
+ enableable: a = !1,
24
24
  enabled: n = !1,
25
25
  onEnabledChange: s,
26
26
  collapsible: i = !1,
@@ -28,7 +28,7 @@ const ze = ({
28
28
  onExpandChange: l,
29
29
  className: f = ""
30
30
  }) => {
31
- const w = o ? n && m : i ? m : !0, h = o && n || i, d = () => {
31
+ const w = a ? n && m : i ? m : !0, h = a && n || i, d = () => {
32
32
  s && s(!n);
33
33
  }, c = () => {
34
34
  l && l(!m);
@@ -36,7 +36,7 @@ const ze = ({
36
36
  return /* @__PURE__ */ b("div", { className: `sc:rounded-xl sc:border sc:border-border-primary sc:bg-bg-secondary sc:p-xl ${f}`, children: [
37
37
  /* @__PURE__ */ b("div", { className: "sc:flex sc:items-center sc:justify-between", children: [
38
38
  /* @__PURE__ */ b("div", { className: "sc:flex sc:items-center sc:gap-md", children: [
39
- o && /* @__PURE__ */ a("label", { className: "sc:flex sc:cursor-pointer sc:items-center", children: /* @__PURE__ */ a(
39
+ a && /* @__PURE__ */ o("label", { className: "sc:flex sc:cursor-pointer sc:items-center", children: /* @__PURE__ */ o(
40
40
  "input",
41
41
  {
42
42
  type: "checkbox",
@@ -46,11 +46,11 @@ const ze = ({
46
46
  }
47
47
  ) }),
48
48
  /* @__PURE__ */ b("div", { className: "sc:flex sc:items-center sc:gap-md", children: [
49
- t && /* @__PURE__ */ a("span", { className: "sc:flex sc:items-center sc:text-text-secondary", children: t }),
50
- /* @__PURE__ */ a("h3", { className: "sc:text-xl sc:font-semibold sc:text-text-primary", children: e })
49
+ t && /* @__PURE__ */ o("span", { className: "sc:flex sc:items-center sc:text-text-secondary", children: t }),
50
+ /* @__PURE__ */ o("h3", { className: "sc:text-xl sc:font-semibold sc:text-text-primary", children: e })
51
51
  ] })
52
52
  ] }),
53
- h && /* @__PURE__ */ a(
53
+ h && /* @__PURE__ */ o(
54
54
  "button",
55
55
  {
56
56
  onClick: c,
@@ -60,29 +60,29 @@ const ze = ({
60
60
  }
61
61
  )
62
62
  ] }),
63
- w && /* @__PURE__ */ a("div", { className: "sc:mt-xl sc:flex sc:flex-col sc:gap-xl", children: r })
63
+ w && /* @__PURE__ */ o("div", { className: "sc:mt-xl sc:flex sc:flex-col sc:gap-xl", children: r })
64
64
  ] });
65
65
  }, Oe = ({
66
66
  label: e,
67
67
  labelSuffix: t,
68
68
  children: r,
69
- inline: o = !1,
69
+ inline: a = !1,
70
70
  className: n = ""
71
- }) => /* @__PURE__ */ b("div", { className: `sc:flex ${o ? "sc:items-center sc:justify-between" : "sc:flex-col"} sc:gap-sm ${n}`, children: [
71
+ }) => /* @__PURE__ */ b("div", { className: `sc:flex ${a ? "sc:items-center sc:justify-between" : "sc:flex-col"} sc:gap-sm ${n}`, children: [
72
72
  /* @__PURE__ */ b("label", { className: "sc:flex sc:items-center sc:justify-between sc:text-base sc:font-medium sc:text-text-secondary", children: [
73
- /* @__PURE__ */ a("span", { children: e }),
74
- t && /* @__PURE__ */ a("span", { className: "sc:font-semibold sc:text-accent-primary", children: t })
73
+ /* @__PURE__ */ o("span", { children: e }),
74
+ t && /* @__PURE__ */ o("span", { className: "sc:font-semibold sc:text-accent-primary", children: t })
75
75
  ] }),
76
- /* @__PURE__ */ a("div", { className: o ? "sc:flex-shrink-0" : "", children: r })
76
+ /* @__PURE__ */ o("div", { className: a ? "sc:flex-shrink-0" : "", children: r })
77
77
  ] });
78
78
  function Le({
79
79
  options: e,
80
80
  value: t,
81
81
  onChange: r,
82
- fullWidth: o = !0,
82
+ fullWidth: a = !0,
83
83
  className: n = ""
84
84
  }) {
85
- return /* @__PURE__ */ a("div", { className: `sc:flex sc:gap-sm ${n}`, children: e.map((s) => {
85
+ return /* @__PURE__ */ o("div", { className: `sc:flex sc:gap-sm ${n}`, children: e.map((s) => {
86
86
  const i = s.value === t;
87
87
  return /* @__PURE__ */ b(
88
88
  "button",
@@ -90,26 +90,26 @@ function Le({
90
90
  onClick: () => !s.disabled && r(s.value),
91
91
  disabled: s.disabled,
92
92
  title: s.tooltip,
93
- className: ` ${o ? "sc:flex-1" : ""} sc:flex sc:items-center sc:justify-center sc:gap-xs sc:rounded-lg sc:border sc:px-md sc:py-sm sc:text-base sc:font-medium sc:transition-all sc:duration-fast ${i ? "sc:border-accent-primary sc:bg-accent-primary sc:text-text-on-accent" : "sc:border-border-primary sc:bg-bg-tertiary sc:text-text-secondary sc:hover:border-border-secondary sc:hover:bg-bg-hover sc:hover:text-text-primary"} ${s.disabled ? "sc:cursor-not-allowed sc:opacity-disabled" : "sc:cursor-pointer"} `,
93
+ className: ` ${a ? "sc:flex-1" : ""} sc:flex sc:items-center sc:justify-center sc:gap-xs sc:rounded-lg sc:border sc:px-md sc:py-sm sc:text-base sc:font-medium sc:transition-all sc:duration-fast ${i ? "sc:border-accent-primary sc:bg-accent-primary sc:text-text-on-accent" : "sc:border-border-primary sc:bg-bg-tertiary sc:text-text-secondary sc:hover:border-border-secondary sc:hover:bg-bg-hover sc:hover:text-text-primary"} ${s.disabled ? "sc:cursor-not-allowed sc:opacity-disabled" : "sc:cursor-pointer"} `,
94
94
  children: [
95
- s.icon && /* @__PURE__ */ a("span", { className: "sc:flex sc:items-center", children: s.icon }),
96
- /* @__PURE__ */ a("span", { children: s.label })
95
+ s.icon && /* @__PURE__ */ o("span", { className: "sc:flex sc:items-center", children: s.icon }),
96
+ /* @__PURE__ */ o("span", { children: s.label })
97
97
  ]
98
98
  },
99
99
  String(s.value)
100
100
  );
101
101
  }) });
102
102
  }
103
- const We = ({ label: e, icon: t, checked: r, onChange: o, disabled: n = !1, className: s = "" }) => {
103
+ const We = ({ label: e, icon: t, checked: r, onChange: a, disabled: n = !1, className: s = "" }) => {
104
104
  const i = (m) => {
105
- o(m.target.checked);
105
+ a(m.target.checked);
106
106
  };
107
107
  return /* @__PURE__ */ b(
108
108
  "label",
109
109
  {
110
110
  className: `sc:flex sc:cursor-pointer sc:items-center sc:gap-md ${n ? "sc:cursor-not-allowed sc:opacity-disabled" : ""} ${s}`,
111
111
  children: [
112
- /* @__PURE__ */ a(
112
+ /* @__PURE__ */ o(
113
113
  "input",
114
114
  {
115
115
  type: "checkbox",
@@ -120,8 +120,8 @@ const We = ({ label: e, icon: t, checked: r, onChange: o, disabled: n = !1, clas
120
120
  }
121
121
  ),
122
122
  /* @__PURE__ */ b("span", { className: "sc:flex sc:items-center sc:gap-sm sc:text-base sc:font-medium sc:text-text-primary", children: [
123
- t && /* @__PURE__ */ a("span", { className: "sc:flex sc:items-center sc:text-text-secondary", children: t }),
124
- /* @__PURE__ */ a("span", { children: e })
123
+ t && /* @__PURE__ */ o("span", { className: "sc:flex sc:items-center sc:text-text-secondary", children: t }),
124
+ /* @__PURE__ */ o("span", { children: e })
125
125
  ] })
126
126
  ]
127
127
  }
@@ -130,28 +130,28 @@ const We = ({ label: e, icon: t, checked: r, onChange: o, disabled: n = !1, clas
130
130
  checked: e,
131
131
  onChange: t,
132
132
  label: r,
133
- disabled: o = !1,
133
+ disabled: a = !1,
134
134
  className: n = ""
135
135
  }) => {
136
136
  const s = () => {
137
- o || t(!e);
137
+ a || t(!e);
138
138
  };
139
139
  return /* @__PURE__ */ b(
140
140
  "label",
141
141
  {
142
- className: `sc:flex sc:items-center sc:gap-md sc:cursor-pointer sc:select-none ${o ? "sc:opacity-50 sc:cursor-not-allowed" : ""} ${n}`.trim(),
142
+ className: `sc:flex sc:items-center sc:gap-md sc:cursor-pointer sc:select-none ${a ? "sc:opacity-50 sc:cursor-not-allowed" : ""} ${n}`.trim(),
143
143
  children: [
144
- /* @__PURE__ */ a(
144
+ /* @__PURE__ */ o(
145
145
  "input",
146
146
  {
147
147
  type: "checkbox",
148
148
  checked: e,
149
149
  onChange: s,
150
- disabled: o,
150
+ disabled: a,
151
151
  className: "sc:absolute sc:opacity-0 sc:w-0 sc:h-0 sc:peer"
152
152
  }
153
153
  ),
154
- /* @__PURE__ */ a(
154
+ /* @__PURE__ */ o(
155
155
  "span",
156
156
  {
157
157
  className: `
@@ -164,7 +164,7 @@ const We = ({ label: e, icon: t, checked: r, onChange: o, disabled: n = !1, clas
164
164
  `.trim()
165
165
  }
166
166
  ),
167
- r && /* @__PURE__ */ a("span", { className: "sc:text-md sc:text-text-primary sc:font-medium", children: r })
167
+ r && /* @__PURE__ */ o("span", { className: "sc:text-md sc:text-text-primary sc:font-medium", children: r })
168
168
  ]
169
169
  }
170
170
  );
@@ -172,14 +172,14 @@ const We = ({ label: e, icon: t, checked: r, onChange: o, disabled: n = !1, clas
172
172
  isOpen: e,
173
173
  onToggle: t,
174
174
  trigger: r,
175
- children: o
176
- }) => /* @__PURE__ */ a(
175
+ children: a
176
+ }) => /* @__PURE__ */ o(
177
177
  te,
178
178
  {
179
179
  isOpen: e,
180
180
  onToggle: t,
181
181
  trigger: r || /* @__PURE__ */ b(M, { delayDuration: 0, children: [
182
- /* @__PURE__ */ a(D, { asChild: !0, children: /* @__PURE__ */ a(
182
+ /* @__PURE__ */ o(D, { asChild: !0, children: /* @__PURE__ */ o(
183
183
  re,
184
184
  {
185
185
  variant: "ghost",
@@ -187,15 +187,15 @@ const We = ({ label: e, icon: t, checked: r, onChange: o, disabled: n = !1, clas
187
187
  onClick: (s) => {
188
188
  s.stopPropagation(), t(!e);
189
189
  },
190
- children: /* @__PURE__ */ a(q, { icon: "lucide:ellipsis-vertical", className: "sc:size-6" })
190
+ children: /* @__PURE__ */ o(J, { icon: "lucide:ellipsis-vertical", className: "sc:size-6" })
191
191
  }
192
192
  ) }),
193
- /* @__PURE__ */ a(I, { children: /* @__PURE__ */ a("p", { children: "More" }) })
193
+ /* @__PURE__ */ o(I, { children: /* @__PURE__ */ o("p", { children: "More" }) })
194
194
  ] }),
195
195
  position: "bottom",
196
196
  align: "end",
197
197
  offset: 4,
198
- children: /* @__PURE__ */ a("div", { className: "sc:flex sc:items-center sc:gap-sm sc:bg-bg-primary sc:border sc:border-border-primary sc:rounded-xl sc:px-xl sc:py-md sc:shadow-sm sc:h-[52px]", children: o })
198
+ children: /* @__PURE__ */ o("div", { className: "sc:flex sc:items-center sc:gap-sm sc:bg-bg-primary sc:border sc:border-border-primary sc:rounded-xl sc:px-xl sc:py-md sc:shadow-sm sc:h-[52px]", children: a })
199
199
  }
200
200
  );
201
201
  function _e(e) {
@@ -230,18 +230,18 @@ function Ue(e) {
230
230
  e.capabilities && (t.capabilities = e.capabilities), e.behavior && (t.behavior = e.behavior), e.layout && (t.layout = e.layout), e.style && (t.style = e.style), e.content && (t.content = e.content);
231
231
  let r;
232
232
  if (e.extends) {
233
- const n = oe(e.extends);
233
+ const n = ae(e.extends);
234
234
  r = be(n, { name: e.name, ...t });
235
235
  } else
236
236
  r = ye({ name: e.name, ...t });
237
- const o = ae(r);
238
- if (o.warnings.length > 0)
239
- for (const n of o.warnings)
237
+ const a = oe(r);
238
+ if (a.warnings.length > 0)
239
+ for (const n of a.warnings)
240
240
  console.warn(`[loadKitFromJSON] Warning: ${n}`);
241
- if (!o.valid)
241
+ if (!a.valid)
242
242
  throw new Error(
243
243
  `[loadKitFromJSON] Kit "${e.name}" failed validation:
244
- ${o.errors.join(`
244
+ ${a.errors.join(`
245
245
  `)}`
246
246
  );
247
247
  return r;
@@ -250,7 +250,7 @@ const L = de("useProjectLoader");
250
250
  function je() {
251
251
  const {
252
252
  handleLoadWorkspace: e
253
- } = Z(), [t, r] = A(!1), [o, n] = A(null), [s, i] = A(null), [m, l] = A(null), f = y(async (d) => {
253
+ } = Z(), [t, r] = A(!1), [a, n] = A(null), [s, i] = A(null), [m, l] = A(null), f = y(async (d) => {
254
254
  r(!0), n(null);
255
255
  try {
256
256
  const c = typeof d == "string" ? JSON.parse(d) : d;
@@ -319,7 +319,7 @@ function je() {
319
319
  loadFromFile: w,
320
320
  loadTemplate: h,
321
321
  isLoading: t,
322
- loadError: o,
322
+ loadError: a,
323
323
  currentProject: s,
324
324
  projectMetadata: m
325
325
  };
@@ -335,15 +335,15 @@ const U = {
335
335
  function we(e, t) {
336
336
  return e >= t.xxl ? "xxl" : e >= t.xl ? "xl" : e >= t.lg ? "lg" : e >= t.md ? "md" : e >= t.sm ? "sm" : "xs";
337
337
  }
338
- function Je(e) {
338
+ function qe(e) {
339
339
  const t = {
340
340
  ...U,
341
341
  ...e
342
- }, [r, o] = A(() => typeof window < "u" ? window.innerWidth : U.lg);
342
+ }, [r, a] = A(() => typeof window < "u" ? window.innerWidth : U.lg);
343
343
  V(() => {
344
344
  if (typeof window > "u") return;
345
345
  const x = () => {
346
- o(window.innerWidth);
346
+ a(window.innerWidth);
347
347
  };
348
348
  return window.addEventListener("resize", x), () => window.removeEventListener("resize", x);
349
349
  }, []);
@@ -379,8 +379,8 @@ const j = {
379
379
  exportCount: 0,
380
380
  avgExportTime: 0
381
381
  };
382
- function qe() {
383
- const [e, t] = A(j), [r, o] = A(!1), n = B([]), s = B([]), i = B([]), m = B(performance.now()), l = B(null), f = y((u) => u.length === 0 ? 0 : 1e3 / (u.reduce((k, v) => k + v, 0) / u.length), []), w = y((u) => u.length === 0 ? 0 : u.reduce((p, k) => p + k, 0) / u.length, []), h = y(() => "memory" in performance && performance.memory ? performance.memory.usedJSHeapSize / (1024 * 1024) : 0, []), d = y(() => {
382
+ function Je() {
383
+ const [e, t] = A(j), [r, a] = A(!1), n = R([]), s = R([]), i = R([]), m = R(performance.now()), l = R(null), f = y((u) => u.length === 0 ? 0 : 1e3 / (u.reduce((k, v) => k + v, 0) / u.length), []), w = y((u) => u.length === 0 ? 0 : u.reduce((p, k) => p + k, 0) / u.length, []), h = y(() => "memory" in performance && performance.memory ? performance.memory.usedJSHeapSize / (1024 * 1024) : 0, []), d = y(() => {
384
384
  const u = {
385
385
  fps: f(n.current),
386
386
  avgRenderTime: w(s.current),
@@ -396,9 +396,9 @@ function qe() {
396
396
  const u = performance.now(), p = u - m.current;
397
397
  m.current = u, n.current.push(p), n.current.length > 60 && n.current.shift(), n.current.length % 30 === 0 && d(), r && (l.current = requestAnimationFrame(c));
398
398
  }, [r, d]), x = y(() => {
399
- o(!0), m.current = performance.now(), l.current = requestAnimationFrame(c);
399
+ a(!0), m.current = performance.now(), l.current = requestAnimationFrame(c);
400
400
  }, [c]), S = y(() => {
401
- o(!1), l.current !== null && (cancelAnimationFrame(l.current), l.current = null);
401
+ a(!1), l.current !== null && (cancelAnimationFrame(l.current), l.current = null);
402
402
  }, []), C = y(() => {
403
403
  n.current = [], s.current = [], i.current = [], t(j);
404
404
  }, []), g = y(() => `
@@ -431,7 +431,7 @@ function Ve(e) {
431
431
  const {
432
432
  onReorder: t,
433
433
  onGroupReorder: r,
434
- onDropIntoGroup: o,
434
+ onDropIntoGroup: a,
435
435
  onDropIntoGroupAtPosition: n,
436
436
  findElement: s,
437
437
  findParentGroup: i
@@ -456,7 +456,7 @@ function Ve(e) {
456
456
  return;
457
457
  }
458
458
  if (h === "into")
459
- o && o(m, u);
459
+ a && a(m, u);
460
460
  else {
461
461
  const p = i == null ? void 0 : i(m), k = i == null ? void 0 : i(u), v = h === "before" ? "after" : "before";
462
462
  p && k && p.id === k.id ? r && r(m, u, v, p.id) : !p && k && n ? n(m, k.id, u, v) : t(m, u, v);
@@ -468,7 +468,7 @@ function Ve(e) {
468
468
  h,
469
469
  t,
470
470
  r,
471
- o,
471
+ a,
472
472
  n,
473
473
  i,
474
474
  S
@@ -487,7 +487,7 @@ function Ve(e) {
487
487
  };
488
488
  }
489
489
  function Xe(e) {
490
- const { selectedId: t, multiSelection: r, onSelectionChange: o, onMultiSelectionChange: n } = e, s = y(
490
+ const { selectedId: t, multiSelection: r, onSelectionChange: a, onMultiSelectionChange: n } = e, s = y(
491
491
  (m) => m === t || r.includes(m),
492
492
  [t, r]
493
493
  ), i = y(
@@ -497,28 +497,28 @@ function Xe(e) {
497
497
  if (r.length > 0)
498
498
  if (f) {
499
499
  const h = r.filter((d) => d !== l);
500
- h.length === 1 ? (n([]), o(h[0])) : h.length === 0 ? (n([]), o(null)) : n(h);
500
+ h.length === 1 ? (n([]), a(h[0])) : h.length === 0 ? (n([]), a(null)) : n(h);
501
501
  } else
502
502
  n([...r, l]);
503
503
  else {
504
504
  if (w)
505
505
  return;
506
- t !== null ? (n([t, l]), o(null)) : o(l);
506
+ t !== null ? (n([t, l]), a(null)) : a(l);
507
507
  }
508
508
  } else
509
- o(l), n([]);
509
+ a(l), n([]);
510
510
  },
511
- [t, r, o, n]
511
+ [t, r, a, n]
512
512
  );
513
513
  return { isSelected: s, handleClick: i };
514
514
  }
515
- const Se = xe(({ value: e, onChange: t, fontSizes: r, isOpen: o, onToggle: n }) => {
515
+ const Se = xe(({ value: e, onChange: t, fontSizes: r, isOpen: a, onToggle: n }) => {
516
516
  const s = (i) => {
517
517
  t(i), n(!1);
518
518
  };
519
- return /* @__PURE__ */ b(ie, { open: o, onOpenChange: n, children: [
520
- /* @__PURE__ */ a(ce, { asChild: !0, children: /* @__PURE__ */ a("button", { className: "sc-toolbar-btn", "aria-label": "Font size", children: /* @__PURE__ */ a(q, { icon: "radix-icons:font-size", className: "sc:size-5" }) }) }),
521
- /* @__PURE__ */ a(le, { className: "sc:w-[120px] sc:max-h-[300px] sc:overflow-y-auto sc:p-1", maxZIndex: !0, children: /* @__PURE__ */ a("div", { className: "sc:flex sc:flex-col sc:gap-0.5", children: r.map((i) => /* @__PURE__ */ a(
519
+ return /* @__PURE__ */ b(ie, { open: a, onOpenChange: n, children: [
520
+ /* @__PURE__ */ o(ce, { asChild: !0, children: /* @__PURE__ */ o("button", { className: "sc-toolbar-btn", "aria-label": "Font size", children: /* @__PURE__ */ o(J, { icon: "radix-icons:font-size", className: "sc:size-5" }) }) }),
521
+ /* @__PURE__ */ o(le, { className: "sc:w-[120px] sc:max-h-[300px] sc:overflow-y-auto sc:p-1", maxZIndex: !0, children: /* @__PURE__ */ o("div", { className: "sc:flex sc:flex-col sc:gap-0.5", children: r.map((i) => /* @__PURE__ */ o(
522
522
  "button",
523
523
  {
524
524
  onClick: () => s(i),
@@ -531,15 +531,15 @@ const Se = xe(({ value: e, onChange: t, fontSizes: r, isOpen: o, onToggle: n })
531
531
  });
532
532
  Se.displayName = "FontSizeDropdown";
533
533
  function Ye({ toolbar: e }) {
534
- const { fontSize: t, handleFontSizeIncrement: r, handleFontSizeChange: o } = e, [n, s] = A(!1);
534
+ const { fontSize: t, handleFontSizeIncrement: r, handleFontSizeChange: a } = e, [n, s] = A(!1);
535
535
  return /* @__PURE__ */ b("div", { className: "sc-toolbar-group", children: [
536
536
  /* @__PURE__ */ b(M, { delayDuration: 300, children: [
537
- /* @__PURE__ */ a(D, { asChild: !0, children: /* @__PURE__ */ a("button", { className: "sc-toolbar-btn-sm", onClick: () => r(-1), children: "-" }) }),
538
- /* @__PURE__ */ a(I, { children: "Decrease Font Size" })
537
+ /* @__PURE__ */ o(D, { asChild: !0, children: /* @__PURE__ */ o("button", { className: "sc-toolbar-btn-sm", onClick: () => r(-1), children: "-" }) }),
538
+ /* @__PURE__ */ o(I, { children: "Decrease Font Size" })
539
539
  ] }),
540
540
  /* @__PURE__ */ b(M, { delayDuration: 300, children: [
541
- /* @__PURE__ */ a(D, { asChild: !0, children: /* @__PURE__ */ b("div", { style: { position: "relative" }, children: [
542
- /* @__PURE__ */ a(
541
+ /* @__PURE__ */ o(D, { asChild: !0, children: /* @__PURE__ */ b("div", { style: { position: "relative" }, children: [
542
+ /* @__PURE__ */ o(
543
543
  "button",
544
544
  {
545
545
  className: "sc-toolbar-font-size-display",
@@ -549,7 +549,7 @@ function Ye({ toolbar: e }) {
549
549
  children: t
550
550
  }
551
551
  ),
552
- n && /* @__PURE__ */ a(
552
+ n && /* @__PURE__ */ o(
553
553
  "div",
554
554
  {
555
555
  className: "font-dropdown",
@@ -564,12 +564,12 @@ function Ye({ toolbar: e }) {
564
564
  }, 0);
565
565
  }
566
566
  },
567
- children: me.map((i) => /* @__PURE__ */ a(
567
+ children: me.map((i) => /* @__PURE__ */ o(
568
568
  "button",
569
569
  {
570
570
  className: `font-dropdown-option ${t === i ? "selected" : ""}`,
571
571
  onClick: () => {
572
- o(i), s(!1);
572
+ a(i), s(!1);
573
573
  },
574
574
  children: i
575
575
  },
@@ -578,11 +578,11 @@ function Ye({ toolbar: e }) {
578
578
  }
579
579
  )
580
580
  ] }) }),
581
- /* @__PURE__ */ a(I, { children: "Font Size" })
581
+ /* @__PURE__ */ o(I, { children: "Font Size" })
582
582
  ] }),
583
583
  /* @__PURE__ */ b(M, { delayDuration: 300, children: [
584
- /* @__PURE__ */ a(D, { asChild: !0, children: /* @__PURE__ */ a("button", { className: "sc-toolbar-btn-sm", onClick: () => r(1), children: "+" }) }),
585
- /* @__PURE__ */ a(I, { children: "Increase Font Size" })
584
+ /* @__PURE__ */ o(D, { asChild: !0, children: /* @__PURE__ */ o("button", { className: "sc-toolbar-btn-sm", onClick: () => r(1), children: "+" }) }),
585
+ /* @__PURE__ */ o(I, { children: "Increase Font Size" })
586
586
  ] })
587
587
  ] });
588
588
  }
@@ -628,9 +628,9 @@ class Ce {
628
628
  * @returns An unsubscribe function -- call it to remove this handler
629
629
  */
630
630
  on(t, r) {
631
- let o = this.listeners.get(t);
632
- return o || (o = /* @__PURE__ */ new Set(), this.listeners.set(t, o)), o.add(r), () => {
633
- o.delete(r), o.size === 0 && this.listeners.delete(t);
631
+ let a = this.listeners.get(t);
632
+ return a || (a = /* @__PURE__ */ new Set(), this.listeners.set(t, a)), a.add(r), () => {
633
+ a.delete(r), a.size === 0 && this.listeners.delete(t);
634
634
  };
635
635
  }
636
636
  /**
@@ -645,9 +645,9 @@ class Ce {
645
645
  * @returns An unsubscribe function
646
646
  */
647
647
  once(t, r) {
648
- const o = (s) => {
648
+ const a = (s) => {
649
649
  n(), r(s);
650
- }, n = this.on(t, o);
650
+ }, n = this.on(t, a);
651
651
  return n;
652
652
  }
653
653
  // -----------------------------------------------------------------------
@@ -663,9 +663,9 @@ class Ce {
663
663
  * @param data - The payload to pass to each handler
664
664
  */
665
665
  emit(t, r) {
666
- const o = this.listeners.get(t);
667
- if (o)
668
- for (const n of [...o])
666
+ const a = this.listeners.get(t);
667
+ if (a)
668
+ for (const n of [...a])
669
669
  try {
670
670
  n(r);
671
671
  } catch (s) {
@@ -774,7 +774,7 @@ const W = {
774
774
  br: { textAnchor: "end", dominantBaseline: "alphabetic" }
775
775
  };
776
776
  function K(e, t) {
777
- return e.kind === "rect" ? /* @__PURE__ */ a(
777
+ return e.kind === "rect" ? /* @__PURE__ */ o(
778
778
  "rect",
779
779
  {
780
780
  x: e.x,
@@ -783,7 +783,7 @@ function K(e, t) {
783
783
  height: e.height,
784
784
  ...t
785
785
  }
786
- ) : e.kind === "roundedRect" ? /* @__PURE__ */ a(
786
+ ) : e.kind === "roundedRect" ? /* @__PURE__ */ o(
787
787
  "rect",
788
788
  {
789
789
  x: e.x,
@@ -794,7 +794,7 @@ function K(e, t) {
794
794
  ry: e.ry,
795
795
  ...t
796
796
  }
797
- ) : /* @__PURE__ */ a(
797
+ ) : /* @__PURE__ */ o(
798
798
  "path",
799
799
  {
800
800
  d: e.d,
@@ -811,16 +811,16 @@ function $e(e, t, r) {
811
811
  height: r
812
812
  };
813
813
  }
814
- function J(e) {
814
+ function q(e) {
815
815
  if (e.kind === "rect")
816
816
  return `M ${e.x} ${e.y} h ${e.width} v ${e.height} h ${-e.width} Z`;
817
817
  if (e.kind === "roundedRect") {
818
818
  const t = e.rx ?? e.ry ?? 0, r = e.ry ?? e.rx ?? 0;
819
819
  if (t <= 0 && r <= 0)
820
820
  return `M ${e.x} ${e.y} h ${e.width} v ${e.height} h ${-e.width} Z`;
821
- const { x: o, y: n, width: s, height: i } = e;
821
+ const { x: a, y: n, width: s, height: i } = e;
822
822
  return [
823
- `M ${o + t} ${n}`,
823
+ `M ${a + t} ${n}`,
824
824
  `h ${s - 2 * t}`,
825
825
  `a ${t} ${r} 0 0 1 ${t} ${r}`,
826
826
  `v ${i - 2 * r}`,
@@ -834,7 +834,7 @@ function J(e) {
834
834
  }
835
835
  return e.d;
836
836
  }
837
- function ke(e, t, r, o) {
837
+ function ke(e, t, r, a) {
838
838
  if (e != null && e.safeArea) return e.safeArea;
839
839
  if (t.safeAreaInsetPx && t.safeAreaInsetPx > 0) {
840
840
  const n = t.safeAreaInsetPx;
@@ -843,7 +843,7 @@ function ke(e, t, r, o) {
843
843
  x: n,
844
844
  y: n,
845
845
  width: Math.max(0, r - n * 2),
846
- height: Math.max(0, o - n * 2)
846
+ height: Math.max(0, a - n * 2)
847
847
  };
848
848
  }
849
849
  return null;
@@ -852,7 +852,7 @@ function nt({
852
852
  artboardWidth: e,
853
853
  artboardHeight: t,
854
854
  canvasPadding: r = 0,
855
- pieces: o,
855
+ pieces: a,
856
856
  pieceGuides: n,
857
857
  show: s,
858
858
  style: i,
@@ -876,7 +876,7 @@ function nt({
876
876
  safeArea: (s == null ? void 0 : s.safeArea) ?? !0,
877
877
  labels: (s == null ? void 0 : s.labels) ?? !0
878
878
  }, w = e + r * 2, h = t + r * 2;
879
- return /* @__PURE__ */ a(
879
+ return /* @__PURE__ */ o(
880
880
  "svg",
881
881
  {
882
882
  xmlns: "http://www.w3.org/2000/svg",
@@ -884,7 +884,7 @@ function nt({
884
884
  preserveAspectRatio: "xMidYMid meet",
885
885
  className: m,
886
886
  style: { pointerEvents: "none", width: "100%", height: "100%" },
887
- children: /* @__PURE__ */ a("g", { transform: `translate(${r} ${r})`, children: o.map((d) => {
887
+ children: /* @__PURE__ */ o("g", { transform: `translate(${r} ${r})`, children: a.map((d) => {
888
888
  const c = n == null ? void 0 : n[d.id], x = (c == null ? void 0 : c.zones) ?? [], S = (c == null ? void 0 : c.labels) ?? [], C = d.rotation ?? 0, g = C === 90 || C === 270, u = g ? d.height : d.width, p = g ? d.width : d.height, k = $e(c, u, p), v = ke(c, d, u, p), F = `translate(${d.x} ${d.y})`;
889
889
  let N = "";
890
890
  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)`);
@@ -920,7 +920,7 @@ function nt({
920
920
  return /* @__PURE__ */ b("g", { transform: z, children: [
921
921
  f.safeArea && H && /* @__PURE__ */ b(ve, { children: [
922
922
  /* @__PURE__ */ b("defs", { children: [
923
- /* @__PURE__ */ a(
923
+ /* @__PURE__ */ o(
924
924
  "filter",
925
925
  {
926
926
  id: _,
@@ -928,7 +928,7 @@ function nt({
928
928
  y: "-20%",
929
929
  width: "140%",
930
930
  height: "140%",
931
- children: /* @__PURE__ */ a(
931
+ children: /* @__PURE__ */ o(
932
932
  "feGaussianBlur",
933
933
  {
934
934
  in: "SourceGraphic",
@@ -949,7 +949,7 @@ function nt({
949
949
  )
950
950
  }
951
951
  ),
952
- /* @__PURE__ */ a("clipPath", { id: `piece-clip-${d.id}`, children: /* @__PURE__ */ a(
952
+ /* @__PURE__ */ o("clipPath", { id: `piece-clip-${d.id}`, children: /* @__PURE__ */ o(
953
953
  "rect",
954
954
  {
955
955
  x: 0,
@@ -959,15 +959,15 @@ function nt({
959
959
  }
960
960
  ) })
961
961
  ] }),
962
- /* @__PURE__ */ a(
962
+ /* @__PURE__ */ o(
963
963
  "g",
964
964
  {
965
965
  clipPath: `url(#piece-clip-${d.id})`,
966
966
  filter: `url(#${_})`,
967
- children: /* @__PURE__ */ a(
967
+ children: /* @__PURE__ */ o(
968
968
  "path",
969
969
  {
970
- d: `${J(Y)} ${J(O)}`,
970
+ d: `${q(Y)} ${q(O)}`,
971
971
  style: {
972
972
  // Honor `style.bleedFill` / `style.bleedOpacity`
973
973
  // overrides — previously hardcoded, which silently
@@ -982,26 +982,26 @@ function nt({
982
982
  }
983
983
  )
984
984
  ] }),
985
- f.zones && x.filter((T) => T.kind !== "dieCut").map((T, R) => /* @__PURE__ */ a("g", { children: K(T.path, {
985
+ f.zones && x.filter((T) => T.kind !== "dieCut").map((T, B) => /* @__PURE__ */ o("g", { children: K(T.path, {
986
986
  fill: l.zoneFill[T.kind],
987
987
  stroke: l.zoneStroke[T.kind],
988
988
  strokeWidth: 1.5,
989
989
  strokeDasharray: T.kind === "wrap" ? "4 3" : void 0,
990
990
  vectorEffect: "non-scaling-stroke"
991
- }) }, `zone-${R}`)),
992
- f.zones && x.filter((T) => T.kind === "dieCut").map((T, R) => {
991
+ }) }, `zone-${B}`)),
992
+ f.zones && x.filter((T) => T.kind === "dieCut").map((T, B) => {
993
993
  const E = T.path;
994
994
  if (E.kind !== "rect" && E.kind !== "roundedRect")
995
995
  return null;
996
996
  const Q = E.kind === "roundedRect" ? E.rx ?? E.ry ?? 0 : 0, ee = E.kind === "roundedRect" ? E.ry ?? E.rx ?? 0 : 0;
997
- return /* @__PURE__ */ a(
997
+ return /* @__PURE__ */ o(
998
998
  "foreignObject",
999
999
  {
1000
1000
  x: E.x,
1001
1001
  y: E.y,
1002
1002
  width: E.width,
1003
1003
  height: E.height,
1004
- children: /* @__PURE__ */ a(
1004
+ children: /* @__PURE__ */ o(
1005
1005
  "div",
1006
1006
  {
1007
1007
  xmlns: "http://www.w3.org/1999/xhtml",
@@ -1023,7 +1023,7 @@ function nt({
1023
1023
  }
1024
1024
  )
1025
1025
  },
1026
- `diecut-${R}`
1026
+ `diecut-${B}`
1027
1027
  );
1028
1028
  }),
1029
1029
  f.boundary && l.boundaryStroke && K(k, {
@@ -1039,9 +1039,9 @@ function nt({
1039
1039
  strokeDasharray: l.safeAreaDashArray,
1040
1040
  vectorEffect: "non-scaling-stroke"
1041
1041
  }),
1042
- f.labels && S.map((T, R) => {
1042
+ f.labels && S.map((T, B) => {
1043
1043
  const E = Ee[T.anchor ?? "c"];
1044
- return /* @__PURE__ */ a(
1044
+ return /* @__PURE__ */ o(
1045
1045
  "text",
1046
1046
  {
1047
1047
  x: T.x,
@@ -1057,7 +1057,7 @@ function nt({
1057
1057
  strokeLinejoin: "round",
1058
1058
  children: T.text
1059
1059
  },
1060
- `label-${R}`
1060
+ `label-${B}`
1061
1061
  );
1062
1062
  })
1063
1063
  ] }, d.id);
@@ -1079,12 +1079,12 @@ export {
1079
1079
  Ce as CanvasEventBus,
1080
1080
  bt as CanvasSkeleton,
1081
1081
  jt as ColorPickerDropdown,
1082
- Jt as ContextualToolbars,
1082
+ qt as ContextualToolbars,
1083
1083
  Oe as ControlGroup,
1084
- qt as CropPanel,
1084
+ Jt as CropPanel,
1085
1085
  yt as DEFAULT_AUTO_EXPORT_CONFIG,
1086
1086
  te as Dropdown,
1087
- at as DropdownMenu,
1087
+ ot as DropdownMenu,
1088
1088
  dr as EditorProvider,
1089
1089
  vt as EffectsPanel,
1090
1090
  wt as ExportPanel,
@@ -1126,8 +1126,8 @@ export {
1126
1126
  We as Toggle,
1127
1127
  kt as ToolbarSkeleton,
1128
1128
  sr as TransformControlPanel,
1129
- or as UnderlineButton,
1130
- ar as UppercaseButton,
1129
+ ar as UnderlineButton,
1130
+ or as UppercaseButton,
1131
1131
  nt as VisualGuideOverlay,
1132
1132
  At as ZoomControls,
1133
1133
  Te as canvasEventBus,
@@ -1136,8 +1136,8 @@ export {
1136
1136
  Pt as getSection,
1137
1137
  Nt as getSectionIds,
1138
1138
  Nr as hasDistressEffect,
1139
- Rr as hasMasks,
1140
- Br as hasStroke,
1139
+ Br as hasMasks,
1140
+ Rr as hasStroke,
1141
1141
  Mr as isArchTransform,
1142
1142
  Dr as isCircleElementConfig,
1143
1143
  Ir as isCircleTransform,
@@ -1153,19 +1153,19 @@ export {
1153
1153
  Ur as isKnockout,
1154
1154
  en as isPathElement,
1155
1155
  jr as isPathElementConfig,
1156
- Jr as isPathTransform,
1156
+ qr as isPathTransform,
1157
1157
  tt as isRegisteredElementType,
1158
1158
  tn as isShapeElement,
1159
- qr as isShapeElementConfig,
1159
+ Jr as isShapeElementConfig,
1160
1160
  Zr as isShapeTransform,
1161
1161
  rn as isTextElement,
1162
1162
  Vr as isTextElementConfig,
1163
1163
  Xr as isWaveTransform,
1164
1164
  Ue as loadKitFromJSON,
1165
- on as pieceGuidesForArtboard,
1165
+ an as pieceGuidesForArtboard,
1166
1166
  mr as preserveSelectionProps,
1167
- Rt as registerBuiltinSections,
1168
- Bt as registerBuiltinSectionsSync,
1167
+ Bt as registerBuiltinSections,
1168
+ Rt as registerBuiltinSectionsSync,
1169
1169
  He as registerElementType,
1170
1170
  Mt as registerSection,
1171
1171
  Dt as renderPieceGuides,
@@ -1174,7 +1174,7 @@ export {
1174
1174
  mt as surfaceVariants,
1175
1175
  Qe as unregisterElementType,
1176
1176
  It as unregisterSection,
1177
- Je as useBreakpoint,
1177
+ qe as useBreakpoint,
1178
1178
  rt as useCanvasEvents,
1179
1179
  zt as useCapabilities,
1180
1180
  hr as useCommandContext,
@@ -1185,8 +1185,8 @@ export {
1185
1185
  Ve as useLayerDragDrop,
1186
1186
  ir as useLayerPreview,
1187
1187
  Xe as useLayerSelection,
1188
- qe as usePerformance,
1189
- an as usePieceGuideBundle,
1188
+ Je as usePerformance,
1189
+ on as usePieceGuideBundle,
1190
1190
  je as useProjectLoader,
1191
1191
  gr as useSelectionContext,
1192
1192
  ft as useSurface,