@templatical/editor 0.16.4 → 0.17.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 (120) hide show
  1. package/dist/{AiChatSidebar-CYAbVB2G.js → AiChatSidebar-LxCHMdcj.js} +1 -1
  2. package/dist/{AiFeatureMenu-BPCkrHAS.js → AiFeatureMenu-zwSmx9ZW.js} +3 -3
  3. package/dist/{BlockIssueBadge-BLytBabN.js → BlockIssueBadge-BQ1yB1me.js} +2 -2
  4. package/dist/{CloudEditor-v8ARYaFW.js → CloudEditor-5ahgKRX8.js} +11 -10
  5. package/dist/{CollaboratorBar-BQzKZ2zo.js → CollaboratorBar-6PtX-1AS.js} +2 -2
  6. package/dist/{ColorPicker-Cab6U2sH.js → ColorPicker-DfzDyNKe.js} +57 -58
  7. package/dist/{CommentsSidebar-C_XLBbo3.js → CommentsSidebar-Cl93TN96.js} +3 -3
  8. package/dist/{CountdownBlock-173fiO5Z.js → CountdownBlock-DbXfzwae.js} +1 -1
  9. package/dist/{CountdownToolbar-q3umZ7TZ.js → CountdownToolbar-BqaMWRyB.js} +3 -3
  10. package/dist/{DesignReferenceSidebar-Bh9uAZ4B.js → DesignReferenceSidebar-jVrdS8wW.js} +2 -2
  11. package/dist/{IssuesPanel-DltSuU6H.js → IssuesPanel-Bq3yXg6M.js} +2 -2
  12. package/dist/{MergeTagSuggestion-DrT3LiZ4.js → MergeTagSuggestion-jIpT_jmz.js} +7 -5
  13. package/dist/{ModuleBrowserModal-CzzChPmN.js → ModuleBrowserModal-B5IH3-1I.js} +7 -7
  14. package/dist/{ModulePreviewCanvas-C0Q2n3FL.js → ModulePreviewCanvas-CYOLWoZ9.js} +2 -2
  15. package/dist/{NumberWithSuffix-Bhm2ByHs.js → NumberWithSuffix-9FG7mNnn.js} +1 -1
  16. package/dist/{ParagraphEditor-BhsBi8p8.js → ParagraphEditor-duWYA6Vv.js} +38 -39
  17. package/dist/{RichTextEditorContent-ef0fdj6e.js → RichTextEditorContent-DCzmVeyb.js} +13 -13
  18. package/dist/{SaveModuleDialog-BNN3dcxD.js → SaveModuleDialog-BPUly5h3.js} +6 -6
  19. package/dist/{SnapshotHistory-tWvgMCe6.js → SnapshotHistory-CmwU3nlN.js} +4 -4
  20. package/dist/{TemplateScoringPanel-ZhObHWeb.js → TemplateScoringPanel-CMrfa9Rd.js} +3 -3
  21. package/dist/{TestEmailModal-EdwEcsrD.js → TestEmailModal-zfomMz9i.js} +3 -3
  22. package/dist/{TitleEditor-DdvRepBq.js → TitleEditor-v0gtezZE.js} +18 -18
  23. package/dist/{TplModal-Niu4Y96-.js → TplModal-eGFG7k-y.js} +4 -4
  24. package/dist/{blockTypeIcons-DHcYPMB8.js → blockTypeIcons-Dd0w4T0I.js} +1 -1
  25. package/dist/bundle-stats.json +7 -7
  26. package/dist/{ca-DI1ViqMa.js → ca-CSl--oWR.js} +1 -1
  27. package/dist/cdn/chunks/{AiFeatureMenu-AoUwsqor.js → AiFeatureMenu-CtXsam7G.js} +6 -6
  28. package/dist/cdn/chunks/{AiFeatureMenu-AoUwsqor.js.map → AiFeatureMenu-CtXsam7G.js.map} +1 -1
  29. package/dist/cdn/chunks/{BlockIssueBadge-DZU3CfEN.js → BlockIssueBadge-DR7cpDfQ.js} +4 -4
  30. package/dist/cdn/chunks/{BlockIssueBadge-DZU3CfEN.js.map → BlockIssueBadge-DR7cpDfQ.js.map} +1 -1
  31. package/dist/cdn/chunks/{CloudEditor-BrZLF_m1.js → CloudEditor-YC5y3AwC.js} +131 -130
  32. package/dist/cdn/chunks/CloudEditor-YC5y3AwC.js.map +1 -0
  33. package/dist/cdn/chunks/{CollaboratorBar-BAC56ez6.js → CollaboratorBar-BOD2j8Kl.js} +3 -3
  34. package/dist/cdn/chunks/{CollaboratorBar-BAC56ez6.js.map → CollaboratorBar-BOD2j8Kl.js.map} +1 -1
  35. package/dist/cdn/chunks/{ColorPicker-DLEoT419.js → ColorPicker-CPMWLHpa.js} +144 -144
  36. package/dist/cdn/chunks/ColorPicker-CPMWLHpa.js.map +1 -0
  37. package/dist/cdn/chunks/{CountdownBlock-BOF9aTXF.js → CountdownBlock-BmGqb7Zi.js} +4 -4
  38. package/dist/cdn/chunks/{CountdownBlock-BOF9aTXF.js.map → CountdownBlock-BmGqb7Zi.js.map} +1 -1
  39. package/dist/cdn/chunks/{CountdownToolbar-C9bQ5k4E.js → CountdownToolbar-BBwsdGbV.js} +4 -4
  40. package/dist/cdn/chunks/{CountdownToolbar-C9bQ5k4E.js.map → CountdownToolbar-BBwsdGbV.js.map} +1 -1
  41. package/dist/cdn/chunks/{IssuesPanel-CHwYahKK.js → IssuesPanel-G0z-j3JS.js} +7 -7
  42. package/dist/cdn/chunks/{IssuesPanel-CHwYahKK.js.map → IssuesPanel-G0z-j3JS.js.map} +1 -1
  43. package/dist/cdn/chunks/{MergeTagSuggestion-jesxS7An.js → MergeTagSuggestion-rpZ6Ol-i.js} +8 -6
  44. package/dist/cdn/chunks/MergeTagSuggestion-rpZ6Ol-i.js.map +1 -0
  45. package/dist/cdn/chunks/{ModuleBrowserModal-iSXXpAUk.js → ModuleBrowserModal-DiLTY0ec.js} +8 -8
  46. package/dist/cdn/chunks/{ModuleBrowserModal-iSXXpAUk.js.map → ModuleBrowserModal-DiLTY0ec.js.map} +1 -1
  47. package/dist/cdn/chunks/{ModulePreviewCanvas-DIy0MZj2.js → ModulePreviewCanvas-CdV5mEQ6.js} +32 -32
  48. package/dist/cdn/chunks/{ModulePreviewCanvas-DIy0MZj2.js.map → ModulePreviewCanvas-CdV5mEQ6.js.map} +1 -1
  49. package/dist/cdn/chunks/{NumberWithSuffix-vPdOG2lO.js → NumberWithSuffix-lqQlf0Uk.js} +2 -2
  50. package/dist/cdn/chunks/{NumberWithSuffix-vPdOG2lO.js.map → NumberWithSuffix-lqQlf0Uk.js.map} +1 -1
  51. package/dist/cdn/chunks/{ParagraphEditor-D7znI_X1.js → ParagraphEditor-BYoZfURd.js} +75 -75
  52. package/dist/cdn/chunks/ParagraphEditor-BYoZfURd.js.map +1 -0
  53. package/dist/cdn/chunks/{RichTextEditorContent-DVwGHbO6.js → RichTextEditorContent-BnPRnXxy.js} +6 -6
  54. package/dist/cdn/chunks/{RichTextEditorContent-DVwGHbO6.js.map → RichTextEditorContent-BnPRnXxy.js.map} +1 -1
  55. package/dist/cdn/chunks/{SaveModuleDialog-D2_qPtE9.js → SaveModuleDialog-C9hUeWyG.js} +20 -20
  56. package/dist/cdn/chunks/{SaveModuleDialog-D2_qPtE9.js.map → SaveModuleDialog-C9hUeWyG.js.map} +1 -1
  57. package/dist/cdn/chunks/{TitleEditor-CKjZ6Cgp.js → TitleEditor-wFvnU3Jr.js} +9 -9
  58. package/dist/cdn/chunks/TitleEditor-wFvnU3Jr.js.map +1 -0
  59. package/dist/cdn/chunks/{blockTypeIcons-BKecgdgr.js → blockTypeIcons-DNMvDz5B.js} +7 -7
  60. package/dist/cdn/chunks/{blockTypeIcons-BKecgdgr.js.map → blockTypeIcons-DNMvDz5B.js.map} +1 -1
  61. package/dist/cdn/chunks/{ca-DI1ViqMa.js → ca-CSl--oWR.js} +2 -2
  62. package/dist/cdn/chunks/ca-CSl--oWR.js.map +1 -0
  63. package/dist/cdn/chunks/{de-q9lTCMre.js → de-ZaffrKDP.js} +2 -2
  64. package/dist/cdn/chunks/de-ZaffrKDP.js.map +1 -0
  65. package/dist/cdn/chunks/{en-CR4LItrX.js → en-CHuXeJDt.js} +2 -2
  66. package/dist/cdn/chunks/en-CHuXeJDt.js.map +1 -0
  67. package/dist/cdn/chunks/{es-CEt-lrGd.js → es-CaC8VQjO.js} +2 -2
  68. package/dist/cdn/chunks/es-CaC8VQjO.js.map +1 -0
  69. package/dist/cdn/chunks/{extensions-OZTN_skA.js → extensions-DxcxIlwT.js} +29 -29
  70. package/dist/cdn/chunks/{extensions-OZTN_skA.js.map → extensions-DxcxIlwT.js.map} +1 -1
  71. package/dist/cdn/chunks/{features-Bo7H8WNI.js → features-B3qgDBHf.js} +727 -677
  72. package/dist/cdn/chunks/features-B3qgDBHf.js.map +1 -0
  73. package/dist/cdn/chunks/{icons-BrNSrnyT.js → icons-kiMqh99T.js} +2 -2
  74. package/dist/cdn/chunks/{icons-BrNSrnyT.js.map → icons-kiMqh99T.js.map} +1 -1
  75. package/dist/cdn/chunks/{media-library-Cec5DMR3.js → media-library-C5ogiZ4f.js} +451 -451
  76. package/dist/cdn/chunks/{media-library-Cec5DMR3.js.map → media-library-C5ogiZ4f.js.map} +1 -1
  77. package/dist/cdn/chunks/{pt-BR-DvBHY0AA.js → pt-BR-C74zfEWH.js} +2 -2
  78. package/dist/cdn/chunks/pt-BR-C74zfEWH.js.map +1 -0
  79. package/dist/cdn/chunks/{quality-Dd2iYgRf.js → quality-BftAn_AJ.js} +512 -512
  80. package/dist/cdn/chunks/{quality-Dd2iYgRf.js.map → quality-BftAn_AJ.js.map} +1 -1
  81. package/dist/cdn/chunks/{renderer-Br-qXdnQ.js → renderer-Cdlo4MVX.js} +16 -16
  82. package/dist/cdn/chunks/{renderer-Br-qXdnQ.js.map → renderer-Cdlo4MVX.js.map} +1 -1
  83. package/dist/cdn/chunks/{src-BH8PABpF.js → src-GBA8oUL2.js} +6 -6
  84. package/dist/cdn/chunks/{src-BH8PABpF.js.map → src-GBA8oUL2.js.map} +1 -1
  85. package/dist/cdn/chunks/{styles-nqo5BynI.js → styles-B6rdq9JB.js} +219 -219
  86. package/dist/cdn/chunks/styles-B6rdq9JB.js.map +1 -0
  87. package/dist/cdn/editor.css +1 -1
  88. package/dist/cdn/editor.js +53 -52
  89. package/dist/cdn/editor.js.map +1 -1
  90. package/dist/{de-q9lTCMre.js → de-ZaffrKDP.js} +1 -1
  91. package/dist/{en-CR4LItrX.js → en-CHuXeJDt.js} +1 -1
  92. package/dist/{es-CEt-lrGd.js → es-CaC8VQjO.js} +1 -1
  93. package/dist/{extensions-B2poxDIo.js → extensions-B4lu0KkE.js} +3 -3
  94. package/dist/index.d.ts +56 -0
  95. package/dist/keys-WVNarXg8.js +10 -0
  96. package/dist/{pt-BR-DvBHY0AA.js → pt-BR-C74zfEWH.js} +1 -1
  97. package/dist/style.css +1 -1
  98. package/dist/{styles-DN4J7w-C.js → styles-mBSbDYeX.js} +98 -98
  99. package/dist/templatical-editor.js +11 -10
  100. package/dist/{useCloudI18n-WbfVWq5k.js → useCloudI18n-CIKI0hCd.js} +1 -1
  101. package/dist/{useEditorCore-DBq2689h.js → useEditorCore-CaaHPKjm.js} +715 -684
  102. package/dist/{useI18n-eR1yVW0v.js → useI18n-0EU_JVe7.js} +1 -1
  103. package/dist/{useMergeTag-C3GfSktg.js → useMergeTag-C7v6MVah.js} +2 -2
  104. package/dist/usePopoverPosition-BDqqnMeo.js +281 -0
  105. package/package.json +7 -7
  106. package/dist/cdn/chunks/CloudEditor-BrZLF_m1.js.map +0 -1
  107. package/dist/cdn/chunks/ColorPicker-DLEoT419.js.map +0 -1
  108. package/dist/cdn/chunks/MergeTagSuggestion-jesxS7An.js.map +0 -1
  109. package/dist/cdn/chunks/ParagraphEditor-D7znI_X1.js.map +0 -1
  110. package/dist/cdn/chunks/TitleEditor-CKjZ6Cgp.js.map +0 -1
  111. package/dist/cdn/chunks/ca-DI1ViqMa.js.map +0 -1
  112. package/dist/cdn/chunks/de-q9lTCMre.js.map +0 -1
  113. package/dist/cdn/chunks/en-CR4LItrX.js.map +0 -1
  114. package/dist/cdn/chunks/es-CEt-lrGd.js.map +0 -1
  115. package/dist/cdn/chunks/features-Bo7H8WNI.js.map +0 -1
  116. package/dist/cdn/chunks/pt-BR-DvBHY0AA.js.map +0 -1
  117. package/dist/cdn/chunks/styles-nqo5BynI.js.map +0 -1
  118. package/dist/color-DhoxCSMv.js +0 -259
  119. package/dist/keys-BbDgCU6K.js +0 -10
  120. package/dist/usePopoverRoot-C1j0D7cc.js +0 -8
@@ -1,5 +1,5 @@
1
1
  import { W as e, x as t } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
2
- import { F as n } from "./keys-BbDgCU6K.js";
2
+ import { I as n } from "./keys-WVNarXg8.js";
3
3
  //#region src/composables/useI18n.ts
4
4
  function r(r) {
5
5
  let i = r ?? t(n, null);
@@ -1,9 +1,9 @@
1
1
  import { Y as e, x as t } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
2
2
  import { A as n, T as r, r as i } from "./dist-DoRIUsfz.js";
3
- import { C as a, O as o, S as s, T as c, w as l } from "./keys-BbDgCU6K.js";
3
+ import { C as a, E as o, T as s, k as c, w as l } from "./keys-WVNarXg8.js";
4
4
  //#region src/composables/useMergeTag.ts
5
5
  function u() {
6
- let u = t(s, []), d = t(c, i.liquid), f = t(o, null), p = t(a, !0), m = t(l, null), h = e(!1);
6
+ let u = t(a, []), d = t(o, i.liquid), f = t(c, null), p = t(l, !0), m = t(s, null), h = e(!1);
7
7
  function g(e) {
8
8
  return n(e, d);
9
9
  }
@@ -0,0 +1,281 @@
1
+ import { E as e, I as t, L as n, Y as r, Z as i, b as a, et as o, nt as s, s as c, v as l, x as u } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
2
+ import { _ as d, a as f, d as p, i as m, l as h, n as g, o as _, r as v, s as y, t as b, u as x } from "./dist-DYv_Pttj.js";
3
+ import { j as S } from "./keys-WVNarXg8.js";
4
+ //#region ../../node_modules/.pnpm/@vueuse+core@14.3.0_vue@3.5.40_typescript@6.0.3_/node_modules/@vueuse/core/dist/index.js
5
+ var C = g ? window : void 0;
6
+ g && window.document, g && window.navigator, g && window.location;
7
+ function w(e) {
8
+ let t = o(e);
9
+ return t?.$el ?? t;
10
+ }
11
+ function T(...e) {
12
+ let t = (e, t, n, r) => (e.addEventListener(t, n, r), () => e.removeEventListener(t, n, r)), n = c(() => {
13
+ let t = h(o(e[0])).filter((e) => e != null);
14
+ return t.every((e) => typeof e != "string") ? t : void 0;
15
+ });
16
+ return d(() => [
17
+ n.value?.map((e) => w(e)) ?? [C].filter((e) => e != null),
18
+ h(o(n.value ? e[1] : e[0])),
19
+ h(s(n.value ? e[2] : e[1])),
20
+ o(n.value ? e[3] : e[2])
21
+ ], ([e, n, r, i], a, o) => {
22
+ if (!e?.length || !n?.length || !r?.length) return;
23
+ let s = m(i) ? { ...i } : i, c = e.flatMap((e) => n.flatMap((n) => r.map((r) => t(e, n, r, s))));
24
+ o(() => {
25
+ c.forEach((e) => e());
26
+ });
27
+ }, { flush: "post" });
28
+ }
29
+ var E = !1;
30
+ function D(e, t, n = {}) {
31
+ let { window: r = C, ignore: i = [], capture: a = !0, detectIframe: s = !1, controls: c = !1 } = n;
32
+ if (!r) return c ? {
33
+ stop: f,
34
+ cancel: f,
35
+ trigger: f
36
+ } : f;
37
+ if (v && !E) {
38
+ E = !0;
39
+ let e = { passive: !0 };
40
+ Array.from(r.document.body.children).forEach((t) => t.addEventListener("click", f, e)), r.document.documentElement.addEventListener("click", f, e);
41
+ }
42
+ let l = !0, u = (e) => o(i).some((t) => {
43
+ if (typeof t == "string") return Array.from(r.document.querySelectorAll(t)).some((t) => t === e.target || e.composedPath().includes(t));
44
+ {
45
+ let n = w(t);
46
+ return n && (e.target === n || e.composedPath().includes(n));
47
+ }
48
+ });
49
+ function d(e) {
50
+ let t = o(e);
51
+ return t && t.$.subTree.shapeFlag === 16;
52
+ }
53
+ function p(e, t) {
54
+ let n = o(e), r = n.$.subTree && n.$.subTree.children;
55
+ return r == null || !Array.isArray(r) ? !1 : r.some((e) => e.el === t.target || t.composedPath().includes(e.el));
56
+ }
57
+ let m = (n) => {
58
+ let r = w(e);
59
+ if (n.target != null && !(!(r instanceof Element) && d(e) && p(e, n)) && !(!r || r === n.target || n.composedPath().includes(r))) {
60
+ if ("detail" in n && n.detail === 0 && (l = !u(n)), !l) {
61
+ l = !0;
62
+ return;
63
+ }
64
+ t(n);
65
+ }
66
+ }, h = !1, g = [
67
+ T(r, "click", (e) => {
68
+ h || (h = !0, setTimeout(() => {
69
+ h = !1;
70
+ }, 0), m(e));
71
+ }, {
72
+ passive: !0,
73
+ capture: a
74
+ }),
75
+ T(r, "pointerdown", (t) => {
76
+ let n = w(e);
77
+ l = !u(t) && !!(n && !t.composedPath().includes(n));
78
+ }, { passive: !0 }),
79
+ s && T(r, "blur", (n) => {
80
+ setTimeout(() => {
81
+ let i = w(e), a = r.document.activeElement;
82
+ for (; a?.shadowRoot;) a = a.shadowRoot.activeElement;
83
+ a?.tagName === "IFRAME" && !i?.contains(r.document.activeElement) && t(n);
84
+ }, 0);
85
+ }, { passive: !0 })
86
+ ].filter(Boolean), _ = () => g.forEach((e) => e());
87
+ return c ? {
88
+ stop: _,
89
+ cancel: () => {
90
+ l = !1;
91
+ },
92
+ trigger: (e) => {
93
+ l = !0, m(e), l = !1;
94
+ }
95
+ } : _;
96
+ }
97
+ function O() {
98
+ let t = i(!1), n = l();
99
+ return n && e(() => {
100
+ t.value = !0;
101
+ }, n), t;
102
+ }
103
+ /* @__NO_SIDE_EFFECTS__ */
104
+ function k(e) {
105
+ let t = O();
106
+ return c(() => (t.value, !!e()));
107
+ }
108
+ function A(e, n, r = {}) {
109
+ let { window: i = C, ...a } = r, s, l = /* @__PURE__ */ k(() => i && "MutationObserver" in i), u = () => {
110
+ s &&= (s.disconnect(), void 0);
111
+ }, d = t(c(() => {
112
+ let t = h(o(e)).map(w).filter(_);
113
+ return new Set(t);
114
+ }), (e) => {
115
+ u(), l.value && e.size && (s = new MutationObserver(n), e.forEach((e) => s.observe(e, a)));
116
+ }, {
117
+ immediate: !0,
118
+ flush: "post"
119
+ }), f = () => s?.takeRecords(), m = () => {
120
+ d(), u();
121
+ };
122
+ return p(m), {
123
+ isSupported: l,
124
+ stop: m,
125
+ takeRecords: f
126
+ };
127
+ }
128
+ var j = Symbol("vueuse-ssr-width");
129
+ /* @__NO_SIDE_EFFECTS__ */
130
+ function M() {
131
+ let e = a() ? b(j, null) : null;
132
+ return typeof e == "number" ? e : void 0;
133
+ }
134
+ function N(e, t = {}) {
135
+ let { window: r = C, ssrWidth: a = /* @__PURE__ */ M() } = t, s = /* @__PURE__ */ k(() => r && "matchMedia" in r && typeof r.matchMedia == "function"), l = i(typeof a == "number"), u = i(), d = i(!1);
136
+ return n(() => {
137
+ if (l.value) {
138
+ l.value = !s.value, d.value = o(e).split(",").some((e) => {
139
+ let t = e.includes("not all"), n = e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/), r = e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/), i = !!(n || r);
140
+ return n && i && (i = a >= y(n[1])), r && i && (i = a <= y(r[1])), t ? !i : i;
141
+ });
142
+ return;
143
+ }
144
+ s.value && (u.value = r.matchMedia(o(e)), d.value = u.value.matches);
145
+ }), T(u, "change", (e) => {
146
+ d.value = e.matches;
147
+ }, { passive: !0 }), c(() => d.value);
148
+ }
149
+ function P(e, t = {}) {
150
+ let n = i(!1), r = i(null), a = 0, o = !0;
151
+ if (g) {
152
+ let i = typeof t == "function" ? { onDrop: t } : t, c = i.multiple ?? !0, l = i.preventDefaultForUnhandled ?? !1, u = (e) => {
153
+ let t = Array.from(e.dataTransfer?.files ?? []);
154
+ return t.length === 0 ? null : c ? t : [t[0]];
155
+ }, d = (e) => {
156
+ let t = s(i.dataTypes);
157
+ return typeof t == "function" ? t(e) : !t?.length || e.length !== 0 && e.every((e) => t.some((t) => e.includes(t)));
158
+ }, f = (e) => {
159
+ if (i.checkValidity) return i.checkValidity(e);
160
+ let t = d(Array.from(e ?? []).map((e) => e.type)), n = c || e.length <= 1;
161
+ return t && n;
162
+ }, p = () => /^(?:(?!chrome|android).)*safari/i.test(navigator.userAgent) && !("chrome" in window), m = (e, t) => {
163
+ let s = e.dataTransfer?.items;
164
+ if (o = (s && f(s)) ?? !1, l && e.preventDefault(), !p() && !o) {
165
+ e.dataTransfer && (e.dataTransfer.dropEffect = "none");
166
+ return;
167
+ }
168
+ e.preventDefault(), e.dataTransfer && (e.dataTransfer.dropEffect = "copy");
169
+ let c = u(e);
170
+ switch (t) {
171
+ case "enter":
172
+ var d;
173
+ a += 1, n.value = !0, (d = i.onEnter) == null || d.call(i, null, e);
174
+ break;
175
+ case "over":
176
+ var m;
177
+ (m = i.onOver) == null || m.call(i, null, e);
178
+ break;
179
+ case "leave":
180
+ var h;
181
+ --a, a === 0 && (n.value = !1), (h = i.onLeave) == null || h.call(i, null, e);
182
+ break;
183
+ case "drop":
184
+ if (a = 0, n.value = !1, o) {
185
+ var g;
186
+ r.value = c, (g = i.onDrop) == null || g.call(i, c, e);
187
+ }
188
+ break;
189
+ }
190
+ };
191
+ T(e, "dragenter", (e) => m(e, "enter")), T(e, "dragover", (e) => m(e, "over")), T(e, "dragleave", (e) => m(e, "leave")), T(e, "drop", (e) => m(e, "drop"));
192
+ }
193
+ return {
194
+ files: r,
195
+ isOverDropZone: n
196
+ };
197
+ }
198
+ function F(e, n, r = {}) {
199
+ let { window: i = C, ...a } = r, s, l = /* @__PURE__ */ k(() => i && "ResizeObserver" in i), u = () => {
200
+ s &&= (s.disconnect(), void 0);
201
+ }, d = t(c(() => {
202
+ let t = o(e);
203
+ return Array.isArray(t) ? t.map((e) => w(e)) : [w(t)];
204
+ }), (e) => {
205
+ if (u(), l.value && i) {
206
+ s = new ResizeObserver(n);
207
+ for (let t of e) t && s.observe(t, a);
208
+ }
209
+ }, {
210
+ immediate: !0,
211
+ flush: "post"
212
+ }), f = () => {
213
+ u(), d();
214
+ };
215
+ return p(f), {
216
+ isSupported: l,
217
+ stop: f
218
+ };
219
+ }
220
+ function I(e, n = {}) {
221
+ let { reset: r = !0, windowResize: a = !0, windowScroll: o = !0, immediate: s = !0, updateTiming: c = "sync" } = n, l = i(0), u = i(0), d = i(0), f = i(0), p = i(0), m = i(0), h = i(0), g = i(0);
222
+ function _() {
223
+ let t = w(e);
224
+ if (!t) {
225
+ r && (l.value = 0, u.value = 0, d.value = 0, f.value = 0, p.value = 0, m.value = 0, h.value = 0, g.value = 0);
226
+ return;
227
+ }
228
+ let n = t.getBoundingClientRect();
229
+ l.value = n.height, u.value = n.bottom, d.value = n.left, f.value = n.right, p.value = n.top, m.value = n.width, h.value = n.x, g.value = n.y;
230
+ }
231
+ function v() {
232
+ c === "sync" ? _() : c === "next-frame" && requestAnimationFrame(() => _());
233
+ }
234
+ return F(e, v), t(() => w(e), (e) => !e && v()), A(e, v, { attributeFilter: ["style", "class"] }), o && T("scroll", v, {
235
+ capture: !0,
236
+ passive: !0
237
+ }), a && T("resize", v, { passive: !0 }), x(() => {
238
+ s && v();
239
+ }), {
240
+ height: l,
241
+ bottom: u,
242
+ left: d,
243
+ right: f,
244
+ top: p,
245
+ width: m,
246
+ x: h,
247
+ y: g,
248
+ update: v
249
+ };
250
+ }
251
+ //#endregion
252
+ //#region src/utils/color.ts
253
+ function L(e) {
254
+ let t = /^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/i.exec(e.trim());
255
+ if (!t) return e;
256
+ let n = (e) => Number(e).toString(16).padStart(2, "0");
257
+ return `#${n(t[1])}${n(t[2])}${n(t[3])}`;
258
+ }
259
+ //#endregion
260
+ //#region src/composables/usePopoverRoot.ts
261
+ function R() {
262
+ return u(S, r(null));
263
+ }
264
+ //#endregion
265
+ //#region src/composables/usePopoverPosition.ts
266
+ function z() {
267
+ let e = R();
268
+ function t(t) {
269
+ let n = e.value?.getBoundingClientRect();
270
+ return n ? {
271
+ top: t.top - n.top,
272
+ left: t.left - n.left
273
+ } : {
274
+ top: t.top,
275
+ left: t.left
276
+ };
277
+ }
278
+ return { toLocal: t };
279
+ }
280
+ //#endregion
281
+ export { P as a, N as c, D as i, R as n, I as o, L as r, T as s, z as t };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@templatical/editor",
3
3
  "description": "Vue 3 visual drag-and-drop email editor powered by Templatical",
4
- "version": "0.16.4",
4
+ "version": "0.17.0",
5
5
  "bugs": "https://github.com/templatical/sdk/issues",
6
6
  "devDependencies": {
7
7
  "@lucide/vue": "^1.25.0",
@@ -32,9 +32,9 @@
32
32
  "vue": "^3.5.40",
33
33
  "vue-draggable-plus": "^0.6.1",
34
34
  "vue-tsc": "^3.3.7",
35
- "@templatical/core": "0.16.4",
36
- "@templatical/quality": "0.16.4",
37
- "@templatical/types": "0.16.4"
35
+ "@templatical/core": "0.17.0",
36
+ "@templatical/quality": "0.17.0",
37
+ "@templatical/types": "0.17.0"
38
38
  },
39
39
  "exports": {
40
40
  ".": {
@@ -62,9 +62,9 @@
62
62
  "license": "SEE LICENSE IN LICENSE",
63
63
  "module": "./dist/templatical-editor.js",
64
64
  "peerDependencies": {
65
- "@templatical/media-library": "0.16.4",
66
- "@templatical/quality": "0.16.4",
67
- "@templatical/renderer": "0.16.4"
65
+ "@templatical/media-library": "0.17.0",
66
+ "@templatical/quality": "0.17.0",
67
+ "@templatical/renderer": "0.17.0"
68
68
  },
69
69
  "peerDependenciesMeta": {
70
70
  "@templatical/renderer": {