@boxcc/maildeno-editor 0.4.13 → 0.4.14

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 (25) hide show
  1. package/README.md +1 -0
  2. package/dist/{HealthIndicator-4Iw6N-g_.js → HealthIndicator-BLID6Ty0.js} +2 -2
  3. package/dist/{HealthIndicator-ZohgzF2_.js → HealthIndicator-DfzqzPNw.js} +1 -1
  4. package/dist/{PreviewCanvas-QN4C68KA.js → PreviewCanvas-D3SpILsV.js} +3 -3
  5. package/dist/{PreviewCanvas-DzpLghCo.js → PreviewCanvas-PtW1UL1J.js} +3 -3
  6. package/dist/{RichTextEditor-CmM4XRFC.js → RichTextEditor-D6DQqbJg.js} +2 -2
  7. package/dist/{RichTextEditor-Cz1-_ZtA.js → RichTextEditor-DDEfKPZm.js} +3 -3
  8. package/dist/RowPreviewChildren-BGnilx-K.js +4 -0
  9. package/dist/RowPreviewChildren-CalQWx1C.js +4 -0
  10. package/dist/{RowPreviewRow-DPaSbxmB.js → RowPreviewRow-C2XAe5Xs.js} +1 -1
  11. package/dist/{RowPreviewRow-Dx4ExtSN.js → RowPreviewRow-DG4AdMrv.js} +1 -1
  12. package/dist/{SavedRowsPanel-DqSHB6Jk.js → SavedRowsPanel-2JBfYdxN.js} +37 -37
  13. package/dist/{SavedRowsPanel-DyXjSOEt.js → SavedRowsPanel-B6_VHQZm.js} +33 -33
  14. package/dist/components/features/emailBuilder/EmailEditor.vue.d.ts +1 -0
  15. package/dist/{element-B3gq8Xvd.js → element-DQw3HLit.js} +4689 -4649
  16. package/dist/element.js +1 -1
  17. package/dist/index.js +4213 -4173
  18. package/dist/init.d.ts +2 -0
  19. package/dist/init.js +31 -25
  20. package/dist/{useEmailBuilder-BR4wfai1.js → useEmailBuilder-2yCUzRx2.js} +470 -460
  21. package/dist/{useEmailBuilder-B19p-2yp.js → useEmailBuilder-D3uV7dwL.js} +833 -823
  22. package/dist/{useToast-DD11IxqP.js → useToast-D1GgDMqQ.js} +7 -7
  23. package/package.json +1 -1
  24. package/dist/RowPreviewChildren-BYaMZID3.js +0 -4
  25. package/dist/RowPreviewChildren-_A9gPQCs.js +0 -4
package/README.md CHANGED
@@ -78,6 +78,7 @@ export default function Editor() {
78
78
  | `element` | The underlying `<maildeno-editor>` DOM node. |
79
79
  | `on(event, fn)` / `off(event, fn)` | Subscribe to editor events. Currently `"save"`. Only fires if `onSave` was passed to `init()` at mount time — subscribing after the fact doesn't retroactively enable saving or reveal a button that was never rendered. |
80
80
  | `setTheme(theme)` | Re-theme live, any time after mount. |
81
+ | `setTemplateName(name)` | Update the name shown in the header and used for saves and exports. Pass `""` to clear it. |
81
82
  | `getHtml(mode?)` | Current template as an HTML email string, or `null` if empty. |
82
83
  | `getMjml(mode?)` | Current template as MJML. |
83
84
  | `getReactEmail(mode?)` | Current template as React Email `.tsx` source. |
@@ -1,6 +1,6 @@
1
1
  import { C as F, L as _, N as be, P as ye, T as ke, X as W, f as X, g as r, gt as A, h as O, l as H, mt as g, n as V, st as D, u as N, v as T, vt as Ie, y as b, yt as k, z as J } from "./vue.runtime.esm-bundler-D2AjRP90.js";
2
- import { H as Le, U as Ee, V as Ce, W as Ae } from "./element-B3gq8Xvd.js";
3
- import { n as we } from "./useEmailBuilder-BR4wfai1.js";
2
+ import { H as Le, U as Ee, V as Ce, W as Ae } from "./element-DQw3HLit.js";
3
+ import { n as we } from "./useEmailBuilder-2yCUzRx2.js";
4
4
  var Se = 60, Te = 40, Re = 500, Ne = 80, Ge = 60, $e = 80, ne = 398, Y = 30, re = 140, oe = 117, Me = 105, Oe = {
5
5
  heading: 317,
6
6
  paragraph: 337,
@@ -1,4 +1,4 @@
1
- import { n as be } from "./useEmailBuilder-B19p-2yp.js";
1
+ import { n as be } from "./useEmailBuilder-D3uV7dwL.js";
2
2
  import { n as ye, r as ke, t as Ie } from "./mergeTagDefinitions-Cler19nv.js";
3
3
  import { t as Le } from "./_plugin-vue_export-helper-Dj7HTbfw.js";
4
4
  import { Fragment as X, Transition as F, computed as O, createCommentVNode as T, createElementBlock as _, createElementVNode as r, createVNode as W, defineComponent as Ee, normalizeClass as A, normalizeStyle as Ce, onBeforeUnmount as Ae, onMounted as we, openBlock as b, ref as D, renderList as J, toDisplayString as k, unref as g, withCtx as V, withKeys as H, withModifiers as N } from "vue";
@@ -1,4 +1,4 @@
1
- import { C as O, n as X } from "./useEmailBuilder-B19p-2yp.js";
1
+ import { n as O, w as X } from "./useEmailBuilder-D3uV7dwL.js";
2
2
  import { o as z, r as C, t as q } from "./borderRadius-CkSa1lQ9.js";
3
3
  import { Fragment as $, computed as d, createBlock as V, createCommentVNode as I, createElementBlock as o, createElementVNode as p, createStaticVNode as ce, createTextVNode as ue, defineComponent as J, normalizeClass as ge, normalizeStyle as l, openBlock as i, renderList as _, resolveComponent as pe, resolveDynamicComponent as me, toDisplayString as P, unref as B, vShow as y, withDirectives as h } from "vue";
4
4
  var fe = ["innerHTML"], ve = ["innerHTML"], be = ["src", "alt"], xe = ["src", "alt"], ye = {
@@ -17,7 +17,7 @@ var fe = ["innerHTML"], ve = ["innerHTML"], be = ["src", "alt"], xe = ["src", "a
17
17
  depth: {}
18
18
  },
19
19
  setup(w) {
20
- const c = w, f = d(() => c.component.componentType ?? c.component.type), { visibilityPreviewContext: W } = X(), { evaluateVisibility: T } = O(), v = d(() => {
20
+ const c = w, f = d(() => c.component.componentType ?? c.component.type), { visibilityPreviewContext: W } = O(), { evaluateVisibility: T } = X(), v = d(() => {
21
21
  const e = f.value, r = e === "row" || e === "row-spacer" ? c.component.visibility : c.component.props?.visibility;
22
22
  return T(r, W.value);
23
23
  }), n = d(() => {
@@ -424,7 +424,7 @@ var fe = ["innerHTML"], ve = ["innerHTML"], be = ["src", "alt"], xe = ["src", "a
424
424
  forceMobile: { type: Boolean }
425
425
  },
426
426
  setup(w) {
427
- const c = w, { visibilityPreviewContext: f } = X(), { evaluateVisibility: W } = O(), T = d(() => c.canvas?.bodyBackgroundColor ?? "#f9fafb"), v = d(() => (c.rows ?? []).length > 0), n = d(() => {
427
+ const c = w, { visibilityPreviewContext: f } = O(), { evaluateVisibility: W } = X(), T = d(() => c.canvas?.bodyBackgroundColor ?? "#f9fafb"), v = d(() => (c.rows ?? []).length > 0), n = d(() => {
428
428
  const t = c.canvas?.width ?? 600;
429
429
  if (!c.forceMobile) return t;
430
430
  const s = c.canvas?.mobileBreakpoint ?? 600;
@@ -1,5 +1,5 @@
1
1
  import { H as ce, L as i, S as ue, T as O, V as ge, Z as y, _ as V, c as h, f as $, g as p, gt as pe, h as d, mt as B, v as I, vt as l, x as ve, y as a, yt as P, z as _ } from "./vue.runtime.esm-bundler-D2AjRP90.js";
2
- import { C as X, n as Z } from "./useEmailBuilder-BR4wfai1.js";
2
+ import { n as X, w as Z } from "./useEmailBuilder-2yCUzRx2.js";
3
3
  import { o as z, r as C, t as q } from "./borderRadius-CkSa1lQ9.js";
4
4
  var fe = ["innerHTML"], me = ["innerHTML"], be = ["src", "alt"], xe = ["src", "alt"], ye = {
5
5
  style: {
@@ -17,7 +17,7 @@ var fe = ["innerHTML"], me = ["innerHTML"], be = ["src", "alt"], xe = ["src", "a
17
17
  depth: {}
18
18
  },
19
19
  setup(w) {
20
- const c = w, f = d(() => c.component.componentType ?? c.component.type), { visibilityPreviewContext: H } = Z(), { evaluateVisibility: T } = X(), m = d(() => {
20
+ const c = w, f = d(() => c.component.componentType ?? c.component.type), { visibilityPreviewContext: H } = X(), { evaluateVisibility: T } = Z(), m = d(() => {
21
21
  const e = f.value, r = e === "row" || e === "row-spacer" ? c.component.visibility : c.component.props?.visibility;
22
22
  return T(r, H.value);
23
23
  }), n = d(() => {
@@ -424,7 +424,7 @@ var fe = ["innerHTML"], me = ["innerHTML"], be = ["src", "alt"], xe = ["src", "a
424
424
  forceMobile: { type: Boolean }
425
425
  },
426
426
  setup(w) {
427
- const c = w, { visibilityPreviewContext: f } = Z(), { evaluateVisibility: H } = X(), T = d(() => c.canvas?.bodyBackgroundColor ?? "#f9fafb"), m = d(() => (c.rows ?? []).length > 0), n = d(() => {
427
+ const c = w, { visibilityPreviewContext: f } = X(), { evaluateVisibility: H } = Z(), T = d(() => c.canvas?.bodyBackgroundColor ?? "#f9fafb"), m = d(() => (c.rows ?? []).length > 0), n = d(() => {
428
428
  const t = c.canvas?.width ?? 600;
429
429
  if (!c.forceMobile) return t;
430
430
  const s = c.canvas?.mobileBreakpoint ?? 600;
@@ -1,5 +1,5 @@
1
1
  import { I as Yi } from "./PopperContent-eLmz1Gjd.js";
2
- import { _ as Fc, n as _c } from "./useEmailBuilder-B19p-2yp.js";
2
+ import { n as Fc, v as _c } from "./useEmailBuilder-D3uV7dwL.js";
3
3
  import { A as J, C as Uo, D as jc, E as L, M as Kc, N as Uc, O as go, P as Wc, S as Kt, T as Cn, _ as ot, a as Sn, b as Wo, c as _, d as D, f as qc, g as Gc, h as qo, j as Jc, k as Xi, l as Y, m as Ct, n as Ls, o as Ps, p as Yc, r as Xc, s as O, t as Qc, u as G, v as _e, w as Xt, x as Ir, y as Qi } from "./Dialog-By0JLN8s.js";
4
4
  import { t as Zc } from "./_plugin-vue_export-helper-Dj7HTbfw.js";
5
5
  import { Fragment as ed, Teleport as Zi, computed as pt, createBlock as pn, createCommentVNode as ve, createElementBlock as be, createElementVNode as S, createVNode as et, customRef as td, defineComponent as st, getCurrentInstance as nd, h as Rr, markRaw as rd, nextTick as Go, normalizeClass as Be, normalizeStyle as ut, onBeforeUnmount as $r, onMounted as el, openBlock as ee, ref as W, renderList as od, shallowRef as sd, toDisplayString as Qt, unref as R, vModelText as id, vShow as Gr, watch as Me, watchEffect as ld, withCtx as Yn, withDirectives as Wn, withKeys as ad, withModifiers as hn } from "vue";
@@ -11600,7 +11600,7 @@ var ay = V.create({
11600
11600
  __name: "RichTextEditor",
11601
11601
  props: { component: {} },
11602
11602
  setup(e) {
11603
- const t = Ts.extend({ content: "inline*" }), n = e, r = Yi(), o = (b) => b ? /<ul>\s*<li>.*?<\/li>\s*<\/ul>/s.test(b) : !1, { mergeTagInsertQueue: s, updateComponent: i, mergeTagPreviewContext: l, mergeTagPreviewActive: a } = _c(), { googleFonts: c, loadGoogleFont: d } = Fc(), u = (b, v) => {
11603
+ const t = Ts.extend({ content: "inline*" }), n = e, r = Yi(), o = (b) => b ? /<ul>\s*<li>.*?<\/li>\s*<\/ul>/s.test(b) : !1, { mergeTagInsertQueue: s, updateComponent: i, mergeTagPreviewContext: l, mergeTagPreviewActive: a } = Fc(), { googleFonts: c, loadGoogleFont: d } = _c(), u = (b, v) => {
11604
11604
  if (a.value) {
11605
11605
  const A = b.trim().toLowerCase().replace(/\s+/g, "_"), j = l.value[A];
11606
11606
  if (j !== void 0 && j !== "") return j;
@@ -1,6 +1,6 @@
1
1
  import { $ as Fc, C as et, E as _c, K as Me, L as ee, M as Uo, N as Ir, O as Rr, P as Xi, T as ot, X as Xn, Z as Wn, _ as pn, c as Gr, f as jc, g as S, gt as Be, h as pt, l as Kc, lt as Uc, mt as R, p as Yi, q as Wc, rt as qc, s as Gc, st as W, u as hn, v as ve, vt as ut, y as be, yt as Yt, z as Jc } from "./vue.runtime.esm-bundler-D2AjRP90.js";
2
- import { A as Qt, B as Xc, C as st, D as $r, E as Wo, F as Qi, I as J, L as Yc, M as L, N as Qc, O as Kt, P as go, R as Zc, S as ed, T as Zi, V as td, _ as D, b as Ct, c as nd, d as Cn, f as Ls, g as G, h as X, j as Sn, k as qo, m as _, o as rd, p as O, s as Ps, v as od, w as _e, x as Go, y as sd, z as id } from "./element-B3gq8Xvd.js";
3
- import { _ as ld, n as ad } from "./useEmailBuilder-BR4wfai1.js";
2
+ import { A as Qt, B as Xc, C as st, D as $r, E as Wo, F as Qi, I as J, L as Yc, M as L, N as Qc, O as Kt, P as go, R as Zc, S as ed, T as Zi, V as td, _ as D, b as Ct, c as nd, d as Cn, f as Ls, g as G, h as X, j as Sn, k as qo, m as _, o as rd, p as O, s as Ps, v as od, w as _e, x as Go, y as sd, z as id } from "./element-DQw3HLit.js";
3
+ import { n as ld, v as ad } from "./useEmailBuilder-2yCUzRx2.js";
4
4
  import { I as el } from "./PopperContent-N2nAEFeH.js";
5
5
  var Is = Object.defineProperty, cd = (e, t) => {
6
6
  let n = {};
@@ -11599,7 +11599,7 @@ var ay = V.create({
11599
11599
  __name: "RichTextEditor",
11600
11600
  props: { component: {} },
11601
11601
  setup(e) {
11602
- const t = Ts.extend({ content: "inline*" }), n = e, r = el(), o = (b) => b ? /<ul>\s*<li>.*?<\/li>\s*<\/ul>/s.test(b) : !1, { mergeTagInsertQueue: s, updateComponent: i, mergeTagPreviewContext: l, mergeTagPreviewActive: a } = ad(), { googleFonts: c, loadGoogleFont: d } = ld(), u = (b, v) => {
11602
+ const t = Ts.extend({ content: "inline*" }), n = e, r = el(), o = (b) => b ? /<ul>\s*<li>.*?<\/li>\s*<\/ul>/s.test(b) : !1, { mergeTagInsertQueue: s, updateComponent: i, mergeTagPreviewContext: l, mergeTagPreviewActive: a } = ld(), { googleFonts: c, loadGoogleFont: d } = ad(), u = (b, v) => {
11603
11603
  if (a.value) {
11604
11604
  const A = b.trim().toLowerCase().replace(/\s+/g, "_"), j = l.value[A];
11605
11605
  if (j !== void 0 && j !== "") return j;
@@ -0,0 +1,4 @@
1
+ import { t as r } from "./SavedRowsPanel-B6_VHQZm.js";
2
+ export {
3
+ r as default
4
+ };
@@ -0,0 +1,4 @@
1
+ import { t as r } from "./SavedRowsPanel-2JBfYdxN.js";
2
+ export {
3
+ r as default
4
+ };
@@ -12,7 +12,7 @@ var I = {
12
12
  depth: {}
13
13
  },
14
14
  setup(n) {
15
- const f = P(() => import("./RowPreviewChildren-_A9gPQCs.js")), x = n;
15
+ const f = P(() => import("./RowPreviewChildren-BGnilx-K.js")), x = n;
16
16
  function g(e) {
17
17
  const r = e?.backgroundGradient;
18
18
  if (r?.useGradient === !0 && Array.isArray(r?.gradient?.colors) && r.gradient.colors.length >= 2) {
@@ -12,7 +12,7 @@ var z = {
12
12
  depth: {}
13
13
  },
14
14
  setup(n) {
15
- const f = C(() => import("./RowPreviewChildren-BYaMZID3.js")), w = n;
15
+ const f = C(() => import("./RowPreviewChildren-CalQWx1C.js")), w = n;
16
16
  function g(e) {
17
17
  const r = e?.backgroundGradient;
18
18
  if (r?.useGradient === !0 && Array.isArray(r?.gradient?.colors) && r.gradient.colors.length >= 2) {
@@ -1,14 +1,14 @@
1
- import { C as G, K as O, L as s, M as ge, N as xe, P as ne, S as V, T as K, X as Z, Z as he, _ as H, f as S, g as t, gt as Q, h as R, l as ee, mt as T, n as be, r as we, s as ye, st as b, u as M, v as W, vt as I, w as te, y as d, yt as z, z as j } from "./vue.runtime.esm-bundler-D2AjRP90.js";
2
- import { J as ke, K as _e, V as Ce, Y as Re, l as Se, q as $e, u as re } from "./element-B3gq8Xvd.js";
3
- import { R as Pe, U as Te, _ as Ie, n as De } from "./useEmailBuilder-BR4wfai1.js";
1
+ import { C as W, K as G, L as s, M as ge, N as xe, P as ne, S as V, T as K, X as Z, Z as he, _ as H, f as S, g as t, gt as Q, h as R, l as ee, mt as T, n as be, r as we, s as ye, st as b, u as F, v as O, vt as I, w as te, y as d, yt as M, z as j } from "./vue.runtime.esm-bundler-D2AjRP90.js";
2
+ import { J as ke, K as _e, V as Ce, Y as Re, l as Se, q as $e, u as re } from "./element-DQw3HLit.js";
3
+ import { W as Pe, n as Te, v as Ie, z as De } from "./useEmailBuilder-2yCUzRx2.js";
4
4
  import { o as oe, r as ae } from "./borderRadius-CkSa1lQ9.js";
5
- var Fe = {
5
+ var ze = {
6
6
  key: 1,
7
7
  style: {
8
8
  height: "4px",
9
9
  width: "100%"
10
10
  }
11
- }, Me = /* @__PURE__ */ K({
11
+ }, Fe = /* @__PURE__ */ K({
12
12
  __name: "RowPreviewChildren",
13
13
  props: {
14
14
  children: {},
@@ -16,7 +16,7 @@ var Fe = {
16
16
  depth: {}
17
17
  },
18
18
  setup(m) {
19
- const w = te(() => import("./RowPreviewRow-Dx4ExtSN.js")), k = te(() => import("./RowPreviewLegacyComponent-NECG3wpn.js"));
19
+ const w = te(() => import("./RowPreviewRow-DG4AdMrv.js")), k = te(() => import("./RowPreviewLegacyComponent-NECG3wpn.js"));
20
20
  function f(v) {
21
21
  const g = v?.backgroundGradient;
22
22
  if (g?.useGradient === !0 && Array.isArray(g?.gradient?.colors) && g.gradient.colors.length >= 2) {
@@ -56,9 +56,9 @@ var Fe = {
56
56
  key: 3,
57
57
  comp: c,
58
58
  scale: m.scale
59
- }, null, 8, ["comp", "scale"]))], 64)) : (s(), d("div", Fe))], 64))), 128));
59
+ }, null, 8, ["comp", "scale"]))], 64)) : (s(), d("div", ze))], 64))), 128));
60
60
  }
61
- }), ze = Me, je = {
61
+ }), Me = Fe, je = {
62
62
  key: 0,
63
63
  class: "w-full border border-dashed border-(--md-border) rounded",
64
64
  style: { "min-height": "10px" }
@@ -108,7 +108,7 @@ var Fe = {
108
108
  }
109
109
  for (const i of w.row.columns ?? []) r(i.children ?? i.components ?? []);
110
110
  };
111
- O(() => w.row, () => _(), {
111
+ G(() => w.row, () => _(), {
112
112
  deep: !0,
113
113
  immediate: !0
114
114
  }), ne(() => _());
@@ -130,10 +130,10 @@ var Fe = {
130
130
  top: "flex-start",
131
131
  middle: "center",
132
132
  bottom: "flex-end"
133
- }, u = r.width ?? 100, x = i?.columns?.length || 1, h = i?.gap ?? 0, y = x > 1 ? h * (x - 1) / x : 0, F = y > 0 ? `calc(${u}% - ${y}px)` : `${u}%`, C = {
134
- flex: `0 0 ${F}`,
135
- width: F,
136
- maxWidth: F,
133
+ }, u = r.width ?? 100, x = i?.columns?.length || 1, h = i?.gap ?? 0, y = x > 1 ? h * (x - 1) / x : 0, z = y > 0 ? `calc(${u}% - ${y}px)` : `${u}%`, C = {
134
+ flex: `0 0 ${z}`,
135
+ width: z,
136
+ maxWidth: z,
137
137
  boxSizing: "border-box",
138
138
  background: v(r),
139
139
  padding: `${r.padding?.top ?? 10}px ${r.padding?.right ?? 10}px ${r.padding?.bottom ?? 10}px ${r.padding?.left ?? 10}px`,
@@ -154,19 +154,19 @@ var Fe = {
154
154
  key: l.id,
155
155
  style: I($(l, m.row)),
156
156
  class: "overflow-hidden shrink-0"
157
- }, [G(ze, {
157
+ }, [W(Me, {
158
158
  children: l.children ?? l.components ?? [],
159
159
  scale: m.scale,
160
160
  depth: 0
161
- }, null, 8, ["children", "scale"]), (l.children ?? l.components ?? []).length === 0 ? (s(), d("div", je)) : W("", !0)], 4))), 128))], 4));
161
+ }, null, 8, ["children", "scale"]), (l.children ?? l.components ?? []).length === 0 ? (s(), d("div", je)) : O("", !0)], 4))), 128))], 4));
162
162
  }
163
163
  }), Ae = Be, Ee = {
164
164
  key: 0,
165
165
  class: "w-65 sticky top-16 h-[calc(100vh-5.25rem)] z-80"
166
- }, Le = { class: "bg-(--md-surface) flex flex-col h-full border-r border-(--md-border)/80" }, He = { class: "flex items-center justify-between px-3.5 py-3 shrink-0" }, Ne = { class: "relative group/close" }, Ve = { class: "px-3.5 pb-2 shrink-0" }, Ge = {
166
+ }, Le = { class: "bg-(--md-surface) flex flex-col h-full border-r border-(--md-border)/80" }, He = { class: "flex items-center justify-between px-3.5 py-3 shrink-0" }, Ne = { class: "relative group/close" }, Ve = { class: "px-3.5 pb-2 shrink-0" }, We = {
167
167
  key: 0,
168
168
  class: "flex items-center gap-1"
169
- }, Oe = ["aria-pressed", "onClick"], We = {
169
+ }, Ge = ["aria-pressed", "onClick"], Oe = {
170
170
  key: 1,
171
171
  class: "text-[11px] font-medium text-(--md-text-subtle)"
172
172
  }, Ke = { class: "flex-1 min-h-0 overflow-y-auto" }, Ue = {
@@ -187,7 +187,7 @@ var Fe = {
187
187
  }, ot = { class: "flex-1 text-[11px] font-medium text-(--md-text-muted) truncate" }, at = { class: "text-[10px] text-(--md-text-subtle) shrink-0 tabular-nums" }, st = 600, se = 25, nt = /* @__PURE__ */ K({
188
188
  __name: "SavedRowsPanel",
189
189
  setup(m) {
190
- const { isOpen: w, close: k } = Re(), f = $e(), p = _e(), v = Pe(), g = Se(), c = Te(), { rows: _, saveToHistoryImmediate: D } = De(), { startLayoutDrag: $, endLayoutDrag: r } = ke(), i = {
190
+ const { isOpen: w, close: k } = Re(), f = $e(), p = _e(), v = De(), g = Se(), c = Pe(), { rows: _, saveToHistoryImmediate: D } = Te(), { startLayoutDrag: $, endLayoutDrag: r } = ke(), i = {
191
191
  rows: p.systemRows,
192
192
  isFetching: p.isFetching,
193
193
  ensureFetched: () => p.fetchRows(),
@@ -206,11 +206,11 @@ var Fe = {
206
206
  remove: (o) => f.deleteProductRow(o),
207
207
  cloneForCanvas: (o) => f.cloneRowForCanvas(o)
208
208
  }, u = b("user"), x = R(() => p.isSupported.value && p.systemRows.value.length > 0);
209
- O(x, (o) => {
209
+ G(x, (o) => {
210
210
  !o && u.value === "system" && (u.value = "user");
211
211
  });
212
- const h = R(() => u.value === "system" && x.value ? i : l), y = R(() => u.value === "system"), F = R(() => !y.value && c.value.rename !== !1), C = R(() => !y.value && c.value.delete !== !1);
213
- O(w, async (o) => {
212
+ const h = R(() => u.value === "system" && x.value ? i : l), y = R(() => u.value === "system"), z = R(() => !y.value && c.value.rename !== !1), C = R(() => !y.value && c.value.delete !== !1);
213
+ G(w, async (o) => {
214
214
  o && await Promise.all([f.fetchRows(), p.fetchRows()]);
215
215
  }, { immediate: !0 });
216
216
  const ie = R(() => h.value.rows.value), N = b(null);
@@ -345,13 +345,13 @@ var Fe = {
345
345
  "stroke-linecap": "round",
346
346
  "stroke-linejoin": "round"
347
347
  }, [t("path", { d: "M18 6 6 18M6 6l12 12" })], -1)])]), e[7] || (e[7] = t("div", { class: "pointer-events-none absolute right-0 top-full mt-1.5 px-2 py-1 bg-(--md-tooltip-bg) text-(--md-tooltip-text) text-[10px] font-medium rounded-md whitespace-nowrap opacity-0 group-hover/close:opacity-100 -translate-y-0.5 group-hover/close:translate-y-0 transition-all duration-150 z-50 after:content-[''] after:absolute after:bottom-full after:right-2 after:border-4 after:border-transparent after:border-b-(--md-tooltip-bg)" }, " Close panel ", -1))])]),
348
- t("div", Ve, [x.value ? (s(), d("div", Ge, [(s(), d(S, null, j(["user", "system"], (a) => t("button", {
348
+ t("div", Ve, [x.value ? (s(), d("div", We, [(s(), d(S, null, j(["user", "system"], (a) => t("button", {
349
349
  key: a,
350
350
  type: "button",
351
351
  class: Q(["px-2 py-1 rounded-md text-[11px] font-medium transition-colors", u.value === a ? "bg-(--md-accent-bg) text-(--md-accent-text)" : "text-(--md-text-subtle) hover:text-(--md-text-muted) hover:bg-(--md-surface-muted)"]),
352
352
  "aria-pressed": u.value === a,
353
353
  onClick: (n) => u.value = a
354
- }, z(a === "user" ? "My Rows" : "Shared"), 11, Oe)), 64))])) : (s(), d("span", We, "My Rows"))]),
354
+ }, M(a === "user" ? "My Rows" : "Shared"), 11, Ge)), 64))])) : (s(), d("span", Oe, "My Rows"))]),
355
355
  t("div", Ke, [h.value.isFetching.value ? (s(), d("div", Ue, [(s(), d(S, null, j(3, (a) => t("div", {
356
356
  key: a,
357
357
  class: "rounded-lg border border-(--md-border) overflow-hidden"
@@ -372,7 +372,7 @@ var Fe = {
372
372
  V("then click "),
373
373
  t("span", { class: "text-(--md-row-selection-fg) font-medium" }, "Save"),
374
374
  V(" in the toolbar. ")
375
- ])], -1)])])) : (s(), d("div", Ye, [G(we, { name: "row-list" }, {
375
+ ])], -1)])])) : (s(), d("div", Ye, [W(we, { name: "row-list" }, {
376
376
  default: Z(() => [(s(!0), d(S, null, j(ie.value, (a) => (s(), d("div", {
377
377
  key: a.id,
378
378
  draggable: "true",
@@ -397,7 +397,7 @@ var Fe = {
397
397
  transformOrigin: "top left",
398
398
  transform: `scale(${Y(a.id)})`
399
399
  })
400
- }, [G(Ae, { row: a.row }, null, 8, ["row"])], 4), e[11] || (e[11] = t("div", { class: "absolute inset-0 bg-(--md-text)/0 group-hover:bg-(--md-text)/[0.03] transition-colors duration-150 flex items-center justify-center" }, [t("div", { class: "opacity-0 group-hover:opacity-100 transition-opacity duration-150 flex items-center gap-1.5 bg-(--md-surface)/90 backdrop-blur-sm border border-(--md-border) rounded-full px-2.5 py-1 shadow-sm" }, [t("svg", {
400
+ }, [W(Ae, { row: a.row }, null, 8, ["row"])], 4), e[11] || (e[11] = t("div", { class: "absolute inset-0 bg-(--md-text)/0 group-hover:bg-(--md-text)/[0.03] transition-colors duration-150 flex items-center justify-center" }, [t("div", { class: "opacity-0 group-hover:opacity-100 transition-opacity duration-150 flex items-center gap-1.5 bg-(--md-surface)/90 backdrop-blur-sm border border-(--md-border) rounded-full px-2.5 py-1 shadow-sm" }, [t("svg", {
401
401
  class: "w-3 h-3 text-(--md-text-subtle)",
402
402
  viewBox: "0 0 24 24",
403
403
  fill: "none",
@@ -405,9 +405,9 @@ var Fe = {
405
405
  "stroke-width": "2",
406
406
  "stroke-linecap": "round",
407
407
  "stroke-linejoin": "round"
408
- }, [t("path", { d: "M12 5v14M5 12l7-7 7 7" })]), t("span", { class: "text-[10px] font-medium text-(--md-text-muted)" }, "Click to insert")])], -1))], 4), F.value ? (s(), d("div", {
408
+ }, [t("path", { d: "M12 5v14M5 12l7-7 7 7" })]), t("span", { class: "text-[10px] font-medium text-(--md-text-muted)" }, "Click to insert")])], -1))], 4), z.value ? (s(), d("div", {
409
409
  key: 0,
410
- onClick: e[5] || (e[5] = M(() => {
410
+ onClick: e[5] || (e[5] = F(() => {
411
411
  }, ["stop"])),
412
412
  class: "flex items-center gap-1.5 px-2 py-1.5"
413
413
  }, [
@@ -449,25 +449,25 @@ var Fe = {
449
449
  ])], -1)),
450
450
  P.value !== a.id ? (s(), d("span", {
451
451
  key: 0,
452
- onDblclick: M((n) => fe(a), ["stop"]),
453
- onClick: e[1] || (e[1] = M(() => {
452
+ onDblclick: F((n) => fe(a), ["stop"]),
453
+ onClick: e[1] || (e[1] = F(() => {
454
454
  }, ["stop"])),
455
455
  class: "flex-1 text-[11px] font-medium text-(--md-text-muted) truncate cursor-text"
456
- }, z(a.name), 41, Xe)) : he((s(), d("input", {
456
+ }, M(a.name), 41, Xe)) : he((s(), d("input", {
457
457
  key: 1,
458
458
  "onUpdate:modelValue": e[2] || (e[2] = (n) => E.value = n),
459
459
  onBlur: (n) => J(a.id),
460
460
  onKeyup: [ee((n) => J(a.id), ["enter"]), e[3] || (e[3] = ee((n) => P.value = null, ["escape"]))],
461
- onClick: e[4] || (e[4] = M(() => {
461
+ onClick: e[4] || (e[4] = F(() => {
462
462
  }, ["stop"])),
463
463
  class: "flex-1 text-[11px] text-(--md-text) border border-(--md-row-selection) bg-(--md-row-selection-bg)/40 rounded-md px-1.5 py-0.5 focus:outline-none focus:border-(--md-row-selection)",
464
464
  ref_for: !0,
465
465
  ref_key: "renameInputRef",
466
466
  ref: L
467
467
  }, null, 40, Ze)), [[ye, E.value]]),
468
- t("span", Qe, z(X(a.createdAt)), 1),
468
+ t("span", Qe, M(X(a.createdAt)), 1),
469
469
  C.value ? (s(), d("div", et, [t("button", {
470
- onClick: M((n) => ve(a.id), ["stop"]),
470
+ onClick: F((n) => ve(a.id), ["stop"]),
471
471
  class: "hidden group-hover:flex items-center justify-center w-5 h-5 shrink-0 rounded-md text-(--md-text-subtle) hover:text-(--md-danger) hover:bg-(--md-danger-bg) transition-colors focus:outline-none"
472
472
  }, [...e[12] || (e[12] = [t("svg", {
473
473
  class: "w-3 h-3",
@@ -477,16 +477,16 @@ var Fe = {
477
477
  "stroke-width": "1.75",
478
478
  "stroke-linecap": "round",
479
479
  "stroke-linejoin": "round"
480
- }, [t("path", { d: "M3 6h18M8 6V4h8v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6" }), t("path", { d: "M10 11v6M14 11v6" })], -1)])], 8, tt), e[13] || (e[13] = t("div", { class: "pointer-events-none absolute bottom-full right-0 mb-1.5 px-2 py-1 bg-(--md-tooltip-bg) text-(--md-tooltip-text) text-[10px] font-medium rounded-md whitespace-nowrap opacity-0 group-hover/del:opacity-100 translate-y-0.5 group-hover/del:translate-y-0 transition-all duration-150 z-50 after:content-[''] after:absolute after:top-full after:right-2 after:border-4 after:border-transparent after:border-t-(--md-tooltip-bg)" }, " Remove ", -1))])) : W("", !0)
481
- ])) : (s(), d("div", rt, [t("span", ot, z(a.name), 1), t("span", at, z(X(a.createdAt)), 1)]))], 42, Je))), 128))]),
480
+ }, [t("path", { d: "M3 6h18M8 6V4h8v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6" }), t("path", { d: "M10 11v6M14 11v6" })], -1)])], 8, tt), e[13] || (e[13] = t("div", { class: "pointer-events-none absolute bottom-full right-0 mb-1.5 px-2 py-1 bg-(--md-tooltip-bg) text-(--md-tooltip-text) text-[10px] font-medium rounded-md whitespace-nowrap opacity-0 group-hover/del:opacity-100 translate-y-0.5 group-hover/del:translate-y-0 transition-all duration-150 z-50 after:content-[''] after:absolute after:top-full after:right-2 after:border-4 after:border-transparent after:border-t-(--md-tooltip-bg)" }, " Remove ", -1))])) : O("", !0)
481
+ ])) : (s(), d("div", rt, [t("span", ot, M(a.name), 1), t("span", at, M(X(a.createdAt)), 1)]))], 42, Je))), 128))]),
482
482
  _: 1
483
483
  })]))])
484
- ])])) : W("", !0)]),
484
+ ])])) : O("", !0)]),
485
485
  _: 1
486
486
  }));
487
487
  }
488
488
  }), ct = /* @__PURE__ */ Ce(nt, [["__scopeId", "data-v-ef885a8c"]]);
489
489
  export {
490
490
  ct as default,
491
- ze as t
491
+ Me as t
492
492
  };
@@ -1,15 +1,15 @@
1
- import { R as ge, U as xe, _ as be, n as he } from "./useEmailBuilder-B19p-2yp.js";
1
+ import { W as ge, n as xe, v as be, z as he } from "./useEmailBuilder-D3uV7dwL.js";
2
2
  import { o as X, r as Z } from "./borderRadius-CkSa1lQ9.js";
3
- import { d as we, i as ee, l as ye, p as ke, r as _e, s as Ce } from "./useToast-DD11IxqP.js";
3
+ import { d as we, i as ee, l as ye, p as ke, r as _e, s as Ce } from "./useToast-D1GgDMqQ.js";
4
4
  import { t as Re } from "./_plugin-vue_export-helper-Dj7HTbfw.js";
5
- import { Fragment as $, Transition as $e, TransitionGroup as Se, computed as R, createBlock as H, createCommentVNode as G, createElementBlock as d, createElementVNode as t, createTextVNode as V, createVNode as O, defineAsyncComponent as te, defineComponent as U, nextTick as Pe, normalizeClass as re, normalizeStyle as I, onBeforeUnmount as Ie, onMounted as se, openBlock as a, ref as h, renderList as z, toDisplayString as M, unref as T, vModelText as Te, watch as W, withCtx as oe, withDirectives as De, withKeys as ne, withModifiers as j } from "vue";
5
+ import { Fragment as $, Transition as $e, TransitionGroup as Se, computed as R, createBlock as H, createCommentVNode as W, createElementBlock as d, createElementVNode as t, createTextVNode as V, createVNode as G, defineAsyncComponent as te, defineComponent as U, nextTick as Pe, normalizeClass as re, normalizeStyle as I, onBeforeUnmount as Ie, onMounted as se, openBlock as a, ref as h, renderList as j, toDisplayString as z, unref as T, vModelText as Te, watch as O, withCtx as oe, withDirectives as De, withKeys as ne, withModifiers as M } from "vue";
6
6
  var Fe = {
7
7
  key: 1,
8
8
  style: {
9
9
  height: "4px",
10
10
  width: "100%"
11
11
  }
12
- }, Me = /* @__PURE__ */ U({
12
+ }, ze = /* @__PURE__ */ U({
13
13
  __name: "RowPreviewChildren",
14
14
  props: {
15
15
  children: {},
@@ -17,7 +17,7 @@ var Fe = {
17
17
  depth: {}
18
18
  },
19
19
  setup(m) {
20
- const w = te(() => import("./RowPreviewRow-DPaSbxmB.js")), k = te(() => import("./RowPreviewLegacyComponent-Df_1HTly.js"));
20
+ const w = te(() => import("./RowPreviewRow-C2XAe5Xs.js")), k = te(() => import("./RowPreviewLegacyComponent-Df_1HTly.js"));
21
21
  function f(v) {
22
22
  const g = v?.backgroundGradient;
23
23
  if (g?.useGradient === !0 && Array.isArray(g?.gradient?.colors) && g.gradient.colors.length >= 2) {
@@ -29,7 +29,7 @@ var Fe = {
29
29
  function p(v) {
30
30
  return v.height ?? v.props?.height ?? 8;
31
31
  }
32
- return (v, g) => (a(!0), d($, null, z(m.children, (c, _) => (a(), d($, { key: c.id }, [(m.depth ?? 0) < 5 ? (a(), d($, { key: 0 }, [c.type === "row" ? (a(), H(T(w), {
32
+ return (v, g) => (a(!0), d($, null, j(m.children, (c, _) => (a(), d($, { key: c.id }, [(m.depth ?? 0) < 5 ? (a(), d($, { key: 0 }, [c.type === "row" ? (a(), H(T(w), {
33
33
  key: 0,
34
34
  row: c,
35
35
  scale: m.scale,
@@ -59,7 +59,7 @@ var Fe = {
59
59
  scale: m.scale
60
60
  }, null, 8, ["comp", "scale"]))], 64)) : (a(), d("div", Fe))], 64))), 128));
61
61
  }
62
- }), je = Me, ze = {
62
+ }), Me = ze, je = {
63
63
  key: 0,
64
64
  class: "w-full border border-dashed border-(--md-border) rounded",
65
65
  style: { "min-height": "10px" }
@@ -109,7 +109,7 @@ var Fe = {
109
109
  }
110
110
  for (const i of w.row.columns ?? []) r(i.children ?? i.components ?? []);
111
111
  };
112
- W(() => w.row, () => _(), {
112
+ O(() => w.row, () => _(), {
113
113
  deep: !0,
114
114
  immediate: !0
115
115
  }), se(() => _());
@@ -151,23 +151,23 @@ var Fe = {
151
151
  return (r, i) => (a(), d("div", {
152
152
  style: I(D.value),
153
153
  class: "flex w-full pointer-events-none select-none"
154
- }, [(a(!0), d($, null, z(m.row.columns, (l) => (a(), d("div", {
154
+ }, [(a(!0), d($, null, j(m.row.columns, (l) => (a(), d("div", {
155
155
  key: l.id,
156
156
  style: I(S(l, m.row)),
157
157
  class: "overflow-hidden shrink-0"
158
- }, [O(je, {
158
+ }, [G(Me, {
159
159
  children: l.children ?? l.components ?? [],
160
160
  scale: m.scale,
161
161
  depth: 0
162
- }, null, 8, ["children", "scale"]), (l.children ?? l.components ?? []).length === 0 ? (a(), d("div", ze)) : G("", !0)], 4))), 128))], 4));
162
+ }, null, 8, ["children", "scale"]), (l.children ?? l.components ?? []).length === 0 ? (a(), d("div", je)) : W("", !0)], 4))), 128))], 4));
163
163
  }
164
164
  }), Ae = Ee, Be = {
165
165
  key: 0,
166
166
  class: "w-65 sticky top-16 h-[calc(100vh-5.25rem)] z-80"
167
- }, Le = { class: "bg-(--md-surface) flex flex-col h-full border-r border-(--md-border)/80" }, He = { class: "flex items-center justify-between px-3.5 py-3 shrink-0" }, Ne = { class: "relative group/close" }, Ve = { class: "px-3.5 pb-2 shrink-0" }, Ge = {
167
+ }, Le = { class: "bg-(--md-surface) flex flex-col h-full border-r border-(--md-border)/80" }, He = { class: "flex items-center justify-between px-3.5 py-3 shrink-0" }, Ne = { class: "relative group/close" }, Ve = { class: "px-3.5 pb-2 shrink-0" }, We = {
168
168
  key: 0,
169
169
  class: "flex items-center gap-1"
170
- }, Oe = ["aria-pressed", "onClick"], We = {
170
+ }, Ge = ["aria-pressed", "onClick"], Oe = {
171
171
  key: 1,
172
172
  class: "text-[11px] font-medium text-(--md-text-subtle)"
173
173
  }, Ue = { class: "flex-1 min-h-0 overflow-y-auto" }, Ke = {
@@ -188,7 +188,7 @@ var Fe = {
188
188
  }, ot = { class: "flex-1 text-[11px] font-medium text-(--md-text-muted) truncate" }, nt = { class: "text-[10px] text-(--md-text-subtle) shrink-0 tabular-nums" }, at = 600, ae = 25, st = /* @__PURE__ */ U({
189
189
  __name: "SavedRowsPanel",
190
190
  setup(m) {
191
- const { isOpen: w, close: k } = ke(), f = ye(), p = Ce(), v = ge(), g = _e(), c = xe(), { rows: _, saveToHistoryImmediate: D } = he(), { startLayoutDrag: S, endLayoutDrag: r } = we(), i = {
191
+ const { isOpen: w, close: k } = ke(), f = ye(), p = Ce(), v = he(), g = _e(), c = ge(), { rows: _, saveToHistoryImmediate: D } = xe(), { startLayoutDrag: S, endLayoutDrag: r } = we(), i = {
192
192
  rows: p.systemRows,
193
193
  isFetching: p.isFetching,
194
194
  ensureFetched: () => p.fetchRows(),
@@ -207,11 +207,11 @@ var Fe = {
207
207
  remove: (o) => f.deleteProductRow(o),
208
208
  cloneForCanvas: (o) => f.cloneRowForCanvas(o)
209
209
  }, u = h("user"), x = R(() => p.isSupported.value && p.systemRows.value.length > 0);
210
- W(x, (o) => {
210
+ O(x, (o) => {
211
211
  !o && u.value === "system" && (u.value = "user");
212
212
  });
213
213
  const b = R(() => u.value === "system" && x.value ? i : l), y = R(() => u.value === "system"), F = R(() => !y.value && c.value.rename !== !1), C = R(() => !y.value && c.value.delete !== !1);
214
- W(w, async (o) => {
214
+ O(w, async (o) => {
215
215
  o && await Promise.all([f.fetchRows(), p.fetchRows()]);
216
216
  }, { immediate: !0 });
217
217
  const ie = R(() => b.value.rows.value), N = h(null);
@@ -346,14 +346,14 @@ var Fe = {
346
346
  "stroke-linecap": "round",
347
347
  "stroke-linejoin": "round"
348
348
  }, [t("path", { d: "M18 6 6 18M6 6l12 12" })], -1)])]), e[7] || (e[7] = t("div", { class: "pointer-events-none absolute right-0 top-full mt-1.5 px-2 py-1 bg-(--md-tooltip-bg) text-(--md-tooltip-text) text-[10px] font-medium rounded-md whitespace-nowrap opacity-0 group-hover/close:opacity-100 -translate-y-0.5 group-hover/close:translate-y-0 transition-all duration-150 z-50 after:content-[''] after:absolute after:bottom-full after:right-2 after:border-4 after:border-transparent after:border-b-(--md-tooltip-bg)" }, " Close panel ", -1))])]),
349
- t("div", Ve, [x.value ? (a(), d("div", Ge, [(a(), d($, null, z(["user", "system"], (n) => t("button", {
349
+ t("div", Ve, [x.value ? (a(), d("div", We, [(a(), d($, null, j(["user", "system"], (n) => t("button", {
350
350
  key: n,
351
351
  type: "button",
352
352
  class: re(["px-2 py-1 rounded-md text-[11px] font-medium transition-colors", u.value === n ? "bg-(--md-accent-bg) text-(--md-accent-text)" : "text-(--md-text-subtle) hover:text-(--md-text-muted) hover:bg-(--md-surface-muted)"]),
353
353
  "aria-pressed": u.value === n,
354
354
  onClick: (s) => u.value = n
355
- }, M(n === "user" ? "My Rows" : "Shared"), 11, Oe)), 64))])) : (a(), d("span", We, "My Rows"))]),
356
- t("div", Ue, [b.value.isFetching.value ? (a(), d("div", Ke, [(a(), d($, null, z(3, (n) => t("div", {
355
+ }, z(n === "user" ? "My Rows" : "Shared"), 11, Ge)), 64))])) : (a(), d("span", Oe, "My Rows"))]),
356
+ t("div", Ue, [b.value.isFetching.value ? (a(), d("div", Ke, [(a(), d($, null, j(3, (n) => t("div", {
357
357
  key: n,
358
358
  class: "rounded-lg border border-(--md-border) overflow-hidden"
359
359
  }, [t("div", {
@@ -373,8 +373,8 @@ var Fe = {
373
373
  V("then click "),
374
374
  t("span", { class: "text-(--md-row-selection-fg) font-medium" }, "Save"),
375
375
  V(" in the toolbar. ")
376
- ])], -1)])])) : (a(), d("div", Ye, [O(Se, { name: "row-list" }, {
377
- default: oe(() => [(a(!0), d($, null, z(ie.value, (n) => (a(), d("div", {
376
+ ])], -1)])])) : (a(), d("div", Ye, [G(Se, { name: "row-list" }, {
377
+ default: oe(() => [(a(!0), d($, null, j(ie.value, (n) => (a(), d("div", {
378
378
  key: n.id,
379
379
  draggable: "true",
380
380
  class: re(["group relative rounded-lg border bg-(--md-surface) overflow-hidden transition-all duration-150 select-none cursor-grab active:cursor-grabbing", [N.value === n.id ? "ring-2 ring-(--md-row-selection) ring-offset-1 opacity-60 border-(--md-row-selection)" : "border-(--md-border)/80 hover:border-(--md-border-strong) hover:shadow-[0_2px_8px_rgba(0,0,0,0.07)]"]]),
@@ -398,7 +398,7 @@ var Fe = {
398
398
  transformOrigin: "top left",
399
399
  transform: `scale(${Y(n.id)})`
400
400
  })
401
- }, [O(Ae, { row: n.row }, null, 8, ["row"])], 4), e[11] || (e[11] = t("div", { class: "absolute inset-0 bg-(--md-text)/0 group-hover:bg-(--md-text)/[0.03] transition-colors duration-150 flex items-center justify-center" }, [t("div", { class: "opacity-0 group-hover:opacity-100 transition-opacity duration-150 flex items-center gap-1.5 bg-(--md-surface)/90 backdrop-blur-sm border border-(--md-border) rounded-full px-2.5 py-1 shadow-sm" }, [t("svg", {
401
+ }, [G(Ae, { row: n.row }, null, 8, ["row"])], 4), e[11] || (e[11] = t("div", { class: "absolute inset-0 bg-(--md-text)/0 group-hover:bg-(--md-text)/[0.03] transition-colors duration-150 flex items-center justify-center" }, [t("div", { class: "opacity-0 group-hover:opacity-100 transition-opacity duration-150 flex items-center gap-1.5 bg-(--md-surface)/90 backdrop-blur-sm border border-(--md-border) rounded-full px-2.5 py-1 shadow-sm" }, [t("svg", {
402
402
  class: "w-3 h-3 text-(--md-text-subtle)",
403
403
  viewBox: "0 0 24 24",
404
404
  fill: "none",
@@ -408,7 +408,7 @@ var Fe = {
408
408
  "stroke-linejoin": "round"
409
409
  }, [t("path", { d: "M12 5v14M5 12l7-7 7 7" })]), t("span", { class: "text-[10px] font-medium text-(--md-text-muted)" }, "Click to insert")])], -1))], 4), F.value ? (a(), d("div", {
410
410
  key: 0,
411
- onClick: e[5] || (e[5] = j(() => {
411
+ onClick: e[5] || (e[5] = M(() => {
412
412
  }, ["stop"])),
413
413
  class: "flex items-center gap-1.5 px-2 py-1.5"
414
414
  }, [
@@ -450,25 +450,25 @@ var Fe = {
450
450
  ])], -1)),
451
451
  P.value !== n.id ? (a(), d("span", {
452
452
  key: 0,
453
- onDblclick: j((s) => fe(n), ["stop"]),
454
- onClick: e[1] || (e[1] = j(() => {
453
+ onDblclick: M((s) => fe(n), ["stop"]),
454
+ onClick: e[1] || (e[1] = M(() => {
455
455
  }, ["stop"])),
456
456
  class: "flex-1 text-[11px] font-medium text-(--md-text-muted) truncate cursor-text"
457
- }, M(n.name), 41, Qe)) : De((a(), d("input", {
457
+ }, z(n.name), 41, Qe)) : De((a(), d("input", {
458
458
  key: 1,
459
459
  "onUpdate:modelValue": e[2] || (e[2] = (s) => B.value = s),
460
460
  onBlur: (s) => J(n.id),
461
461
  onKeyup: [ne((s) => J(n.id), ["enter"]), e[3] || (e[3] = ne((s) => P.value = null, ["escape"]))],
462
- onClick: e[4] || (e[4] = j(() => {
462
+ onClick: e[4] || (e[4] = M(() => {
463
463
  }, ["stop"])),
464
464
  class: "flex-1 text-[11px] text-(--md-text) border border-(--md-row-selection) bg-(--md-row-selection-bg)/40 rounded-md px-1.5 py-0.5 focus:outline-none focus:border-(--md-row-selection)",
465
465
  ref_for: !0,
466
466
  ref_key: "renameInputRef",
467
467
  ref: L
468
468
  }, null, 40, Xe)), [[Te, B.value]]),
469
- t("span", Ze, M(Q(n.createdAt)), 1),
469
+ t("span", Ze, z(Q(n.createdAt)), 1),
470
470
  C.value ? (a(), d("div", et, [t("button", {
471
- onClick: j((s) => ve(n.id), ["stop"]),
471
+ onClick: M((s) => ve(n.id), ["stop"]),
472
472
  class: "hidden group-hover:flex items-center justify-center w-5 h-5 shrink-0 rounded-md text-(--md-text-subtle) hover:text-(--md-danger) hover:bg-(--md-danger-bg) transition-colors focus:outline-none"
473
473
  }, [...e[12] || (e[12] = [t("svg", {
474
474
  class: "w-3 h-3",
@@ -478,16 +478,16 @@ var Fe = {
478
478
  "stroke-width": "1.75",
479
479
  "stroke-linecap": "round",
480
480
  "stroke-linejoin": "round"
481
- }, [t("path", { d: "M3 6h18M8 6V4h8v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6" }), t("path", { d: "M10 11v6M14 11v6" })], -1)])], 8, tt), e[13] || (e[13] = t("div", { class: "pointer-events-none absolute bottom-full right-0 mb-1.5 px-2 py-1 bg-(--md-tooltip-bg) text-(--md-tooltip-text) text-[10px] font-medium rounded-md whitespace-nowrap opacity-0 group-hover/del:opacity-100 translate-y-0.5 group-hover/del:translate-y-0 transition-all duration-150 z-50 after:content-[''] after:absolute after:top-full after:right-2 after:border-4 after:border-transparent after:border-t-(--md-tooltip-bg)" }, " Remove ", -1))])) : G("", !0)
482
- ])) : (a(), d("div", rt, [t("span", ot, M(n.name), 1), t("span", nt, M(Q(n.createdAt)), 1)]))], 42, Je))), 128))]),
481
+ }, [t("path", { d: "M3 6h18M8 6V4h8v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6" }), t("path", { d: "M10 11v6M14 11v6" })], -1)])], 8, tt), e[13] || (e[13] = t("div", { class: "pointer-events-none absolute bottom-full right-0 mb-1.5 px-2 py-1 bg-(--md-tooltip-bg) text-(--md-tooltip-text) text-[10px] font-medium rounded-md whitespace-nowrap opacity-0 group-hover/del:opacity-100 translate-y-0.5 group-hover/del:translate-y-0 transition-all duration-150 z-50 after:content-[''] after:absolute after:top-full after:right-2 after:border-4 after:border-transparent after:border-t-(--md-tooltip-bg)" }, " Remove ", -1))])) : W("", !0)
482
+ ])) : (a(), d("div", rt, [t("span", ot, z(n.name), 1), t("span", nt, z(Q(n.createdAt)), 1)]))], 42, Je))), 128))]),
483
483
  _: 1
484
484
  })]))])
485
- ])])) : G("", !0)]),
485
+ ])])) : W("", !0)]),
486
486
  _: 1
487
487
  }));
488
488
  }
489
489
  }), pt = /* @__PURE__ */ Re(st, [["__scopeId", "data-v-ef885a8c"]]);
490
490
  export {
491
491
  pt as default,
492
- je as t
492
+ Me as t
493
493
  };
@@ -145,6 +145,7 @@ type __VLS_Slots = {} & {
145
145
  assistant?: (props: typeof __VLS_80) => any;
146
146
  };
147
147
  declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {
148
+ setTemplateName: (name: string) => void;
148
149
  getHtml: (mode?: "prune" | "wrap") => string | null;
149
150
  getMjml: (mode?: "prune" | "wrap") => string | null;
150
151
  getReactEmail: (mode?: "prune" | "wrap") => string | null;