@templatical/editor 0.10.4 → 0.11.1

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 (134) hide show
  1. package/dist/{AiChatSidebar-Djjqrmoh.js → AiChatSidebar-Cm5RM5Qh.js} +8 -8
  2. package/dist/{AiFeatureMenu-DR56EYbL.js → AiFeatureMenu-DBWcfcWl.js} +6 -6
  3. package/dist/{BlockIssueBadge-ySMhwDRR.js → BlockIssueBadge-BF4sdsr4.js} +4 -4
  4. package/dist/{CloudEditor-BLlRKq5D.js → CloudEditor-C6cSXtcP.js} +162 -160
  5. package/dist/{CollaboratorBar-BlXmZrIj.js → CollaboratorBar-B8-AQfG2.js} +3 -3
  6. package/dist/{CommentsSidebar-XcYtqAn8.js → CommentsSidebar-BQJzyCc6.js} +11 -11
  7. package/dist/{CountdownBlock-sAAv3BHE.js → CountdownBlock-D_AsF4F3.js} +1 -1
  8. package/dist/{CountdownToolbar-CUvqPILZ.js → CountdownToolbar-BGTkFky9.js} +2 -2
  9. package/dist/{DesignReferenceSidebar-B0Upq2MY.js → DesignReferenceSidebar-O3epZMXD.js} +6 -6
  10. package/dist/{IssuesPanel-BvcqQ0ec.js → IssuesPanel-CPBbR8yp.js} +7 -7
  11. package/dist/{ModuleBrowserModal-BdOB1Lbt.js → ModuleBrowserModal-B_tLzFAk.js} +9 -9
  12. package/dist/{ModulePreviewCanvas-BeglLfBF.js → ModulePreviewCanvas-B7pNpAHM.js} +2 -2
  13. package/dist/{NumberWithSuffix-Cb7HI_yW.js → NumberWithSuffix-eI9pPDWT.js} +1 -1
  14. package/dist/{ParagraphEditor-4Wrd3nnB.js → ParagraphEditor-DmA9K7dx.js} +27 -27
  15. package/dist/{RichTextEditorContent-D-uKzBDa.js → RichTextEditorContent-Dvn4woIt.js} +6 -6
  16. package/dist/{SaveModuleDialog-ueFhCVWN.js → SaveModuleDialog-B8ypoxdj.js} +6 -6
  17. package/dist/{SnapshotHistory-DNuw_gCY.js → SnapshotHistory-BTHd7CVP.js} +7 -7
  18. package/dist/{TemplateScoringPanel-bkIhEokb.js → TemplateScoringPanel-Bt5Rsgen.js} +12 -12
  19. package/dist/{TestEmailModal-Tg30-itu.js → TestEmailModal-CBIFMzK6.js} +4 -4
  20. package/dist/{TitleEditor-CY8QWbEw.js → TitleEditor-C9jDA5lI.js} +12 -12
  21. package/dist/{TplModal-D338Vv9U.js → TplModal-ND4fiqOS.js} +3 -3
  22. package/dist/{blockTypeIcons-CYoPwoH9.js → blockTypeIcons-Bn-_Smlm.js} +5 -5
  23. package/dist/bundle-stats.json +6 -6
  24. package/dist/cdn/chunks/{AiFeatureMenu-DRWRoPdh.js → AiFeatureMenu-BuSO0dXP.js} +8 -8
  25. package/dist/cdn/chunks/{AiFeatureMenu-DRWRoPdh.js.map → AiFeatureMenu-BuSO0dXP.js.map} +1 -1
  26. package/dist/cdn/chunks/{BlockIssueBadge-D2ApLp61.js → BlockIssueBadge-sv3IZ1Pb.js} +4 -4
  27. package/dist/cdn/chunks/{BlockIssueBadge-D2ApLp61.js.map → BlockIssueBadge-sv3IZ1Pb.js.map} +1 -1
  28. package/dist/cdn/chunks/{CloudEditor-gvOOuXac.js → CloudEditor-hxoqsTsq.js} +242 -240
  29. package/dist/cdn/chunks/CloudEditor-hxoqsTsq.js.map +1 -0
  30. package/dist/cdn/chunks/{CollaboratorBar-BZK3R383.js → CollaboratorBar-DFqsaNX0.js} +3 -3
  31. package/dist/cdn/chunks/{CollaboratorBar-BZK3R383.js.map → CollaboratorBar-DFqsaNX0.js.map} +1 -1
  32. package/dist/cdn/chunks/{CountdownBlock-DU5YmjFP.js → CountdownBlock-PpH3fxAX.js} +2 -2
  33. package/dist/cdn/chunks/{CountdownBlock-DU5YmjFP.js.map → CountdownBlock-PpH3fxAX.js.map} +1 -1
  34. package/dist/cdn/chunks/{CountdownToolbar-C1nlFm4e.js → CountdownToolbar-CZN92Bhz.js} +3 -3
  35. package/dist/cdn/chunks/{CountdownToolbar-C1nlFm4e.js.map → CountdownToolbar-CZN92Bhz.js.map} +1 -1
  36. package/dist/cdn/chunks/{IssuesPanel-R3M60NTk.js → IssuesPanel-wQjrnuyc.js} +7 -7
  37. package/dist/cdn/chunks/{IssuesPanel-R3M60NTk.js.map → IssuesPanel-wQjrnuyc.js.map} +1 -1
  38. package/dist/cdn/chunks/{ModuleBrowserModal-DMithQu8.js → ModuleBrowserModal-348wCgft.js} +8 -8
  39. package/dist/cdn/chunks/{ModuleBrowserModal-DMithQu8.js.map → ModuleBrowserModal-348wCgft.js.map} +1 -1
  40. package/dist/cdn/chunks/{ModulePreviewCanvas-BNKbV_c2.js → ModulePreviewCanvas-Cf6DUHml.js} +22 -22
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-BNKbV_c2.js.map → ModulePreviewCanvas-Cf6DUHml.js.map} +1 -1
  42. package/dist/cdn/chunks/{NumberWithSuffix-C5zNn3Oc.js → NumberWithSuffix-Deo8EOSz.js} +2 -2
  43. package/dist/cdn/chunks/{NumberWithSuffix-C5zNn3Oc.js.map → NumberWithSuffix-Deo8EOSz.js.map} +1 -1
  44. package/dist/cdn/chunks/{ParagraphEditor-H136qVNI.js → ParagraphEditor-Cbl_gBYM.js} +53 -53
  45. package/dist/cdn/chunks/{ParagraphEditor-H136qVNI.js.map → ParagraphEditor-Cbl_gBYM.js.map} +1 -1
  46. package/dist/cdn/chunks/{RichTextEditorContent-BxW6vSck.js → RichTextEditorContent-TBPzn3RC.js} +4 -4
  47. package/dist/cdn/chunks/{RichTextEditorContent-BxW6vSck.js.map → RichTextEditorContent-TBPzn3RC.js.map} +1 -1
  48. package/dist/cdn/chunks/{SaveModuleDialog-BaiynUWb.js → SaveModuleDialog-CxdYMutK.js} +4 -4
  49. package/dist/cdn/chunks/{SaveModuleDialog-BaiynUWb.js.map → SaveModuleDialog-CxdYMutK.js.map} +1 -1
  50. package/dist/cdn/chunks/{TitleEditor-BBsR46vE.js → TitleEditor--XulEf7R.js} +9 -9
  51. package/dist/cdn/chunks/{TitleEditor-BBsR46vE.js.map → TitleEditor--XulEf7R.js.map} +1 -1
  52. package/dist/cdn/chunks/{blockTypeIcons-CX05RINM.js → blockTypeIcons-BJND4L-A.js} +6 -6
  53. package/dist/cdn/chunks/{blockTypeIcons-CX05RINM.js.map → blockTypeIcons-BJND4L-A.js.map} +1 -1
  54. package/dist/{de-DIAGP7yH.js → cdn/chunks/de-BJMLpg_p.js} +6 -0
  55. package/dist/cdn/chunks/{de-DIAGP7yH.js.map → de-BJMLpg_p.js.map} +1 -1
  56. package/dist/{en-nqIW8Q9W.js → cdn/chunks/en-DFMMw7SL.js} +6 -0
  57. package/dist/cdn/chunks/{en-nqIW8Q9W.js.map → en-DFMMw7SL.js.map} +1 -1
  58. package/dist/cdn/chunks/{extensions-2LuW8PHB.js → extensions-BtWoLy6E.js} +28 -28
  59. package/dist/cdn/chunks/{extensions-2LuW8PHB.js.map → extensions-BtWoLy6E.js.map} +1 -1
  60. package/dist/cdn/chunks/{features-CxHQG9xr.js → features-mO5NzwnN.js} +657 -678
  61. package/dist/cdn/chunks/features-mO5NzwnN.js.map +1 -0
  62. package/dist/cdn/chunks/{icons-DrsFvnNP.js → icons-CuXm6XAT.js} +2 -2
  63. package/dist/cdn/chunks/{icons-DrsFvnNP.js.map → icons-CuXm6XAT.js.map} +1 -1
  64. package/dist/cdn/chunks/{media-library-CDXkfBa7.js → media-library-BtNzYUTi.js} +524 -524
  65. package/dist/cdn/chunks/{media-library-CDXkfBa7.js.map → media-library-BtNzYUTi.js.map} +1 -1
  66. package/dist/cdn/chunks/{pt-BR-DCNnLLx9.js → pt-BR-C-9aWLlR.js} +5 -1
  67. package/dist/cdn/chunks/{pt-BR-DCNnLLx9.js.map → pt-BR-C-9aWLlR.js.map} +1 -1
  68. package/dist/cdn/chunks/{quality-HR87TCZc.js → quality-YKe19zp8.js} +481 -481
  69. package/dist/cdn/chunks/{quality-HR87TCZc.js.map → quality-YKe19zp8.js.map} +1 -1
  70. package/dist/cdn/chunks/{renderer-Dh5WdraW.js → renderer-BcOaxCs6.js} +9 -9
  71. package/dist/cdn/chunks/{renderer-Dh5WdraW.js.map → renderer-BcOaxCs6.js.map} +1 -1
  72. package/dist/cdn/chunks/{src-fyYLC_tY.js → src-B_ZRmuit.js} +63 -63
  73. package/dist/cdn/chunks/{src-fyYLC_tY.js.map → src-B_ZRmuit.js.map} +1 -1
  74. package/dist/cdn/chunks/{styles-NhU45rEI.js → styles-DDBCCJ-l.js} +675 -626
  75. package/dist/cdn/chunks/styles-DDBCCJ-l.js.map +1 -0
  76. package/dist/cdn/chunks/{tiptap-CfnwT9a8.js → tiptap-BAwu9VcJ.js} +4454 -3328
  77. package/dist/cdn/chunks/tiptap-BAwu9VcJ.js.map +1 -0
  78. package/dist/cdn/editor.css +1 -1
  79. package/dist/cdn/editor.js +104 -102
  80. package/dist/cdn/editor.js.map +1 -1
  81. package/dist/{check-B4oiQEsJ.js → check-BsNM6BDs.js} +1 -1
  82. package/dist/{chevron-down-BrL7CDST.js → chevron-down-fcsZ5DU7.js} +1 -1
  83. package/dist/{circle-alert-Ddf06I0D.js → circle-alert-BZTbwc-B.js} +1 -1
  84. package/dist/{clock-CbIkIHL5.js → clock-B7iQRubC.js} +1 -1
  85. package/dist/{createLucideIcon-Bn5l6hkC.js → createLucideIcon-C_fetdGM.js} +2 -2
  86. package/dist/{cdn/chunks/de-DIAGP7yH.js → de-BJMLpg_p.js} +4 -2
  87. package/dist/{dist-BRvZBY6r.js → dist-B4NkMBYc.js} +2 -2
  88. package/dist/{dist-DDB4TfTY.js → dist-BLcYl_de.js} +2 -2
  89. package/dist/{dist-DS9NXb20.js → dist-BOHAk4zI.js} +2 -2
  90. package/dist/dist-BsB4nPJD.js +5 -0
  91. package/dist/{dist-B6B8IO1W.js → dist-ByBVNmRN.js} +2 -2
  92. package/dist/dist-CD3wbUoR.js +5 -0
  93. package/dist/{dist-DbGsZrPu.js → dist-Cwl7XXr4.js} +806 -601
  94. package/dist/{dist-BShwEwPy.js → dist-Dem8ODLh.js} +1512 -1501
  95. package/dist/{dist-BdIM5Jt8.js → dist-Dhs3W2WW.js} +2 -2
  96. package/dist/{dist-ZiEahccA.js → dist-XdF11ZkX.js} +2 -2
  97. package/dist/{dist-BhZo8-eC.js → dist-c2sj5PQ5.js} +2 -2
  98. package/dist/{dist-Ctv43HTN.js → dist-eVlXvuKI.js} +3 -3
  99. package/dist/{cdn/chunks/en-nqIW8Q9W.js → en-DFMMw7SL.js} +4 -2
  100. package/dist/extensions-B2lSGCA8.js +1720 -0
  101. package/dist/{image-up-D3KvvHLf.js → image-up-1xrPPJYH.js} +1 -1
  102. package/dist/index.d.ts +61 -0
  103. package/dist/{info-RwcI2EUD.js → info-ByAFxArD.js} +1 -1
  104. package/dist/keys-DsRdOmg3.js +10 -0
  105. package/dist/{list-checks-ruqK9lCo.js → list-checks-CKUP4UZU.js} +1 -1
  106. package/dist/{loader-circle-D4SXJ8eQ.js → loader-circle-BuxX338d.js} +1 -1
  107. package/dist/{message-circle-p9UiFyS7.js → message-circle-nLwqegRi.js} +1 -1
  108. package/dist/{pt-BR-DCNnLLx9.js → pt-BR-C-9aWLlR.js} +4 -0
  109. package/dist/{refresh-cw-C8HbO4hg.js → refresh-cw-DAkD6iDI.js} +1 -1
  110. package/dist/{scan-line-CmPIMm63.js → scan-line-DEELRJJ5.js} +1 -1
  111. package/dist/{send-DacXlri3.js → send-DCMgrNT4.js} +1 -1
  112. package/dist/{shield-check-BdrHnTnJ.js → shield-check-BFtVr_ov.js} +1 -1
  113. package/dist/{sparkles-tT7wcus5.js → sparkles-CeYIQ5RJ.js} +1 -1
  114. package/dist/style.css +1 -1
  115. package/dist/{styles-BmZWc8sc.js → styles-DZcQGzsN.js} +735 -686
  116. package/dist/templatical-editor.js +118 -116
  117. package/dist/{text-align-start-DaSSBZVi.js → text-align-start-BsmIoqLS.js} +1 -1
  118. package/dist/{trash-2-B0uIJOwX.js → trash-2-C2S4-CIH.js} +1 -1
  119. package/dist/{triangle-alert-FLQWRf-c.js → triangle-alert-DMdedF6W.js} +1 -1
  120. package/dist/{useCloudI18n-Lh0xWlQ4.js → useCloudI18n-BEuiZdzs.js} +1 -1
  121. package/dist/{useEditorCore-CMukR8kX.js → useEditorCore-D00QzW07.js} +742 -763
  122. package/dist/{useI18n-CNEz8RK7.js → useI18n-DNspT6uw.js} +1 -1
  123. package/dist/{useMergeTag-C54tabTK.js → useMergeTag-abutjUud.js} +1 -1
  124. package/dist/{usePopoverRoot-dvg2XFmj.js → usePopoverRoot-DG3mlvd1.js} +1 -1
  125. package/dist/{x-BROzFhGs.js → x-_9jw816B.js} +1 -1
  126. package/package.json +25 -25
  127. package/dist/cdn/chunks/CloudEditor-gvOOuXac.js.map +0 -1
  128. package/dist/cdn/chunks/features-CxHQG9xr.js.map +0 -1
  129. package/dist/cdn/chunks/styles-NhU45rEI.js.map +0 -1
  130. package/dist/cdn/chunks/tiptap-CfnwT9a8.js.map +0 -1
  131. package/dist/dist-BVKpiz3S.js +0 -5
  132. package/dist/dist-BzeOnbU8.js +0 -5
  133. package/dist/extensions-CqrSpX_i.js +0 -806
  134. package/dist/keys-DSm2p8zn.js +0 -10
@@ -1,25 +1,25 @@
1
1
  import { A as e, B as t, L as n, M as r, O as i, Q as a, X as o, _ as s, at as c, b as l, c as u, d, f, g as p, h as m, j as h, k as g, l as _, m as v, o as y, ot as b, p as x, q as S, rt as C, st as w, t as T, v as E, y as D, z as O } from "./vue.runtime.esm-bundler-mPytWZFh.js";
2
2
  import { t as k } from "./timeouts-Bmi_yePw.js";
3
3
  import { E as A, i as j } from "./dist-D6L_WdRL.js";
4
- import { P as M, S as N, t as ee } from "./useEditorCore-CMukR8kX.js";
4
+ import { C as M, F as N, b as ee, t as te } from "./useEditorCore-D00QzW07.js";
5
5
  import { c as P, t as F } from "./dist-cT52Hh9L.js";
6
- import { C as I, D as L, E as R, c as z, l as B, r as te, s as ne, t as V } from "./keys-DSm2p8zn.js";
7
- import { t as H } from "./useI18n-CNEz8RK7.js";
8
- import { t as U } from "./createLucideIcon-Bn5l6hkC.js";
9
- import { t as W } from "./check-B4oiQEsJ.js";
10
- import { t as G } from "./circle-alert-Ddf06I0D.js";
11
- import { a as K, c as re, d as ie, i as q, l as ae, n as oe, o as se, r as ce, s as le, t as ue, u as de } from "./styles-BmZWc8sc.js";
12
- import { t as fe } from "./clock-CbIkIHL5.js";
13
- import { t as J } from "./loader-circle-D4SXJ8eQ.js";
14
- import { t as Y } from "./message-circle-p9UiFyS7.js";
15
- import { t as X } from "./send-DacXlri3.js";
16
- import { t as Z } from "./sparkles-tT7wcus5.js";
17
- import { t as pe } from "./triangle-alert-FLQWRf-c.js";
18
- import { t as me } from "./_plugin-vue_export-helper-B3ysoDQm.js";
19
- import { n as Q } from "./useCloudI18n-Lh0xWlQ4.js";
6
+ import { C as I, D as L, O as R, c as z, l as B, r as ne, s as re, t as V } from "./keys-DsRdOmg3.js";
7
+ import { t as H } from "./useI18n-DNspT6uw.js";
8
+ import { t as U } from "./createLucideIcon-C_fetdGM.js";
9
+ import { t as W } from "./check-BsNM6BDs.js";
10
+ import { t as G } from "./circle-alert-BZTbwc-B.js";
11
+ import { a as K, c as ie, d as ae, f as oe, i as q, l as se, n as ce, o as le, r as ue, s as de, t as fe, u as pe } from "./styles-DZcQGzsN.js";
12
+ import { t as me } from "./clock-B7iQRubC.js";
13
+ import { t as J } from "./loader-circle-BuxX338d.js";
14
+ import { t as he } from "./message-circle-nLwqegRi.js";
15
+ import { t as Y } from "./send-DCMgrNT4.js";
16
+ import { t as X } from "./sparkles-CeYIQ5RJ.js";
17
+ import { t as Z } from "./triangle-alert-DMdedF6W.js";
18
+ import { t as ge } from "./_plugin-vue_export-helper-B3ysoDQm.js";
19
+ import { n as Q } from "./useCloudI18n-BEuiZdzs.js";
20
20
  import { d as $ } from "./styleConstants-lGobwiLH.js";
21
- import { _ as he, a as ge, c as _e, d as ve, f as ye, g as be, h as xe, l as Se, m as Ce, n as we, o as Te, p as Ee, r as De, s as Oe, t as ke, v as Ae, y as je } from "./cloud-Dom4EH5Z.js";
22
- var Me = U("save", [
21
+ import { _ as _e, a as ve, c as ye, d as be, f as xe, g as Se, h as Ce, l as we, m as Te, n as Ee, o as De, p as Oe, r as ke, s as Ae, t as je, v as Me, y as Ne } from "./cloud-Dom4EH5Z.js";
22
+ var Pe = U("save", [
23
23
  ["path", {
24
24
  d: "M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",
25
25
  key: "1c8476"
@@ -35,14 +35,14 @@ var Me = U("save", [
35
35
  ]);
36
36
  //#endregion
37
37
  //#region src/cloud/composables/useSnapshotPreview.ts
38
- function Ne(e) {
38
+ function Fe(e) {
39
39
  let { authManager: t, editor: n, history: r, conditionPreview: i, autoSave: s, onError: c } = e, l = a(null), u = o(null), f = o(null), p = !1;
40
40
  S(() => {
41
41
  p = !0;
42
42
  });
43
43
  let m = d(() => u.value !== null), h = d(() => l.value?.snapshots.value ?? []), g = d(() => l.value?.isLoading.value ?? !1), _ = d(() => l.value?.isRestoring.value ?? !1);
44
44
  function v() {
45
- n.state.template?.id && !l.value && (l.value = be({
45
+ n.state.template?.id && !l.value && (l.value = Se({
46
46
  authManager: t,
47
47
  templateId: n.state.template.id,
48
48
  onRestore: y,
@@ -94,7 +94,7 @@ function Ne(e) {
94
94
  }
95
95
  //#endregion
96
96
  //#region src/cloud/composables/useCloudPanelState.ts
97
- function Pe() {
97
+ function Ie() {
98
98
  let e = o(null), t = d({
99
99
  get: () => e.value === "ai-chat",
100
100
  set: (t) => e.value = t ? "ai-chat" : null
@@ -139,7 +139,7 @@ function Pe() {
139
139
  }
140
140
  //#endregion
141
141
  //#region src/cloud/composables/useCollabUndoWarning.ts
142
- function Fe(e) {
142
+ function Le(e) {
143
143
  let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = o(!1), a = o(!1), { start: s } = P(() => {
144
144
  a.value = !1;
145
145
  }, k, { immediate: !1 });
@@ -153,7 +153,7 @@ function Fe(e) {
153
153
  }
154
154
  //#endregion
155
155
  //#region src/cloud/composables/useCloudFeatureFlags.ts
156
- function Ie(e) {
156
+ function Re(e) {
157
157
  let { planConfigInstance: t, aiConfig: n, editor: r } = e, i = d(() => t.hasFeature("ai_generation") && n.hasAnyMenuFeature.value), a = d(() => t.hasFeature("test_email")), s = d(() => !!r.state.template?.id), c = d(() => t.hasFeature("white_label")), l = d(() => t.config.value?.limits.max_templates ?? null), u = d(() => t.config.value?.template_count ?? 0), f = o(!1), p = o("idle"), m = o(""), { start: h } = P(() => {
158
158
  p.value = "idle";
159
159
  }, 3e3, { immediate: !1 });
@@ -172,7 +172,7 @@ function Ie(e) {
172
172
  }
173
173
  //#endregion
174
174
  //#region src/cloud/composables/useCloudMediaLibrary.ts
175
- function Le(e) {
175
+ function ze(e) {
176
176
  let { onRequestMedia: t, mediaLibraryOpen: n, mediaLibraryAccept: r } = e, i = null;
177
177
  async function a() {
178
178
  if (t) {
@@ -207,30 +207,30 @@ function Le(e) {
207
207
  }
208
208
  //#endregion
209
209
  //#region src/cloud/composables/useCloudInitialization.ts
210
- function Re(e) {
211
- let { config: t, translations: r, fontsManager: i, emit: a, getCommentsSidebar: s } = e, c = o(!0), l = o(!1), u = o(null), f = !1, p = { value: null }, m = null, g = null, _ = new ke({
210
+ function Be(e) {
211
+ let { config: t, translations: r, fontsManager: i, emit: a, getCommentsSidebar: s } = e, c = o(!0), l = o(!1), u = o(null), f = !1, p = { value: null }, m = null, g = null, _ = new je({
212
212
  ...t.auth,
213
213
  onError: t.onError
214
- }), v = Ce({
214
+ }), v = Te({
215
215
  authManager: _,
216
216
  onError: t.onError
217
- }), y = o(/* @__PURE__ */ new Map()), b = ve({
217
+ }), y = o(/* @__PURE__ */ new Map()), b = be({
218
218
  authManager: _,
219
219
  defaultFontFamily: t.fonts?.defaultFont,
220
220
  templateDefaults: t.templateDefaults,
221
221
  onError: t.onError,
222
222
  lockedBlocks: y
223
- }), x = je({
223
+ }), x = Ne({
224
224
  authManager: _,
225
225
  onError: t.onError
226
226
  });
227
- t.mcp?.enabled && Ee({
227
+ t.mcp?.enabled && Oe({
228
228
  editor: b,
229
229
  channel: x.channel,
230
230
  onOperation: t.mcp.onOperation
231
231
  });
232
232
  let S = null;
233
- t.collaboration?.enabled && (S = Te({
233
+ t.collaboration?.enabled && (S = De({
234
234
  authManager: _,
235
235
  editor: b,
236
236
  channel: x.channel,
@@ -241,18 +241,19 @@ function Re(e) {
241
241
  onBlockUnlocked: t.collaboration.onBlockUnlocked
242
242
  }), n(() => S.lockedBlocks.value, (e) => {
243
243
  y.value = e;
244
- }, { immediate: !0 }), Oe(b, S));
245
- let C = d(() => !!t.collaboration?.enabled && v.hasFeature("collaboration")), w = ee({
244
+ }, { immediate: !0 }), Ae(b, S));
245
+ let C = d(() => !!t.collaboration?.enabled && v.hasFeature("collaboration")), w = te({
246
246
  editor: b,
247
247
  config: {
248
248
  uiTheme: t.uiTheme,
249
249
  theme: void 0,
250
250
  blockDefaults: t.blockDefaults,
251
251
  customBlocks: [],
252
+ paletteBlocks: t.paletteBlocks,
252
253
  mergeTags: t.mergeTags,
253
254
  displayConditions: t.displayConditions,
254
255
  onRequestMedia: null,
255
- lint: de(t),
256
+ lint: ae(t),
256
257
  onSave: () => {
257
258
  p.value?.().catch((e) => {
258
259
  t.onError?.(e);
@@ -273,13 +274,13 @@ function Re(e) {
273
274
  keyboardOptions: { onBeforeUndo: () => g?.showCollabUndoWarning() },
274
275
  editorRoot: e.editorRoot,
275
276
  containerEl: e.containerEl
276
- }), T = Fe({
277
+ }), T = Le({
277
278
  isCollaborationEnabled: C,
278
279
  getCollaboratorCount: () => S?.collaborators.value.length ?? 0,
279
280
  canUndo: w.history.canUndo
280
281
  });
281
282
  g = T;
282
- let E = Ne({
283
+ let E = Fe({
283
284
  authManager: _,
284
285
  editor: b,
285
286
  history: w.history,
@@ -288,24 +289,24 @@ function Re(e) {
288
289
  onError: t.onError
289
290
  });
290
291
  m = E;
291
- let D = Pe(), O = ge(t.ai), k = Ie({
292
+ let D = Ie(), O = ve(t.ai), k = Re({
292
293
  planConfigInstance: v,
293
294
  aiConfig: O,
294
295
  editor: b
295
- }), A = Le({
296
+ }), A = ze({
296
297
  onRequestMedia: t.onRequestMedia,
297
298
  mediaLibraryOpen: D.mediaLibraryOpen,
298
299
  mediaLibraryAccept: D.mediaLibraryAccept
299
300
  });
300
- N({
301
+ M({
301
302
  onBlockMove: b.moveBlock,
302
303
  onBlockAdd: b.addBlock
303
304
  });
304
- let j = ye({
305
+ let j = xe({
305
306
  authManager: _,
306
307
  getFontsConfig: () => t.fonts,
307
308
  canUseCustomFonts: () => v.hasFeature("custom_fonts")
308
- }), P = Ae({
309
+ }), ee = Me({
309
310
  authManager: _,
310
311
  getTemplateId: () => b.state.template?.id ?? null,
311
312
  save: () => b.save(),
@@ -313,7 +314,7 @@ function Re(e) {
313
314
  onError: t.onError,
314
315
  isAuthReady: l,
315
316
  onBeforeTestEmail: t.onBeforeTestEmail
316
- }), F = Se({
317
+ }), P = we({
317
318
  authManager: _,
318
319
  getTemplateId: () => b.state.template?.id ?? null,
319
320
  getSocketId: () => x.getSocketId(),
@@ -322,56 +323,56 @@ function Re(e) {
322
323
  isAuthReady: l,
323
324
  hasCommentingFeature: () => t.commenting !== !1 && v.hasFeature("commenting")
324
325
  });
325
- _e({
326
- comments: F,
326
+ ye({
327
+ comments: P,
327
328
  channel: x.channel
328
329
  });
329
- let z = xe({
330
+ let F = Ce({
330
331
  authManager: _,
331
332
  onError: t.onError
332
- }), H = o(!1), U = o(null), W = o(!1), G = he({
333
+ }), z = o(!1), H = o(null), U = o(!1), W = _e({
333
334
  authManager: _,
334
335
  getTemplateId: () => b.state.template?.id ?? null
335
336
  });
336
- function K(e) {
337
+ function G(e) {
337
338
  D.commentsOpen.value = !0, queueMicrotask(() => {
338
339
  s()?.filterByBlock(e);
339
340
  });
340
341
  }
341
- h(I, A.handleRequestMedia), h(te, _), h(V, O), h(B, F), h(R, z), h(L, G), h(ne, {
342
+ h(I, A.handleRequestMedia), h(ne, _), h(V, O), h(B, P), h(L, F), h(R, W), h(re, {
342
343
  plan: v,
343
344
  ai: O,
344
345
  comments: {
345
- getBlockCount: (e) => F.commentCountByBlock.value.get(e) ?? 0,
346
- openForBlock: K
346
+ getBlockCount: (e) => P.commentCountByBlock.value.get(e) ?? 0,
347
+ openForBlock: G
347
348
  },
348
349
  savedModules: {
349
350
  openSaveDialog: (e) => {
350
- U.value = e ?? null, H.value = !0;
351
+ H.value = e ?? null, z.value = !0;
351
352
  },
352
353
  openBrowser: () => {
353
- W.value = !0;
354
+ U.value = !0;
354
355
  },
355
- moduleCount: d(() => z.modules.value.length)
356
+ moduleCount: d(() => F.modules.value.length)
356
357
  }
357
358
  });
358
- function re(e) {
359
+ function K(e) {
359
360
  v.hasFeature("theme_customization") && (w.themeOverrides.value = e);
360
361
  }
361
362
  function ie(e) {
362
363
  b.setUiTheme(e);
363
364
  }
364
- async function q() {
365
+ async function oe() {
365
366
  c.value = !0, u.value = null;
366
367
  try {
367
368
  if (await _.initialize(), f) return;
368
369
  l.value = !0;
369
- let e = await we({ authManager: _ });
370
+ let e = await Ee({ authManager: _ });
370
371
  if (f) return;
371
372
  if (!e.api.ok) throw Error("Health check failed: API is not reachable");
372
373
  if (!e.auth.ok) throw Error(`Health check failed: authentication error${e.auth.error ? ` - ${e.auth.error}` : ""}`);
373
- if (e.websocket.ok || M.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await v.fetchConfig(), f) return;
374
- i.setCustomFontsEnabled(v.hasFeature("custom_fonts")), t.customBlocks?.length && v.hasFeature("custom_blocks") && w.registerCustomBlocks(t.customBlocks), t.theme && v.hasFeature("theme_customization") && (w.themeOverrides.value = t.theme), t.modules !== !1 && v.hasFeature("saved_modules") && z.loadModules(), a("ready");
374
+ if (e.websocket.ok || N.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await v.fetchConfig(), f) return;
375
+ i.setCustomFontsEnabled(v.hasFeature("custom_fonts")), t.customBlocks?.length && v.hasFeature("custom_blocks") && w.registerCustomBlocks(t.customBlocks), t.theme && v.hasFeature("theme_customization") && (w.themeOverrides.value = t.theme), t.modules !== !1 && v.hasFeature("saved_modules") && F.loadModules(), a("ready");
375
376
  } catch (e) {
376
377
  if (f) return;
377
378
  let n = e instanceof Error ? e : Error("Initialization failed", { cause: e });
@@ -380,7 +381,7 @@ function Re(e) {
380
381
  f || (c.value = !1);
381
382
  }
382
383
  }
383
- function ae() {
384
+ function q() {
384
385
  f = !0, i.cleanupFontLinks(), x.disconnect(), w.destroy(), t.onUnmount?.();
385
386
  }
386
387
  return {
@@ -399,27 +400,27 @@ function Re(e) {
399
400
  featureFlags: k,
400
401
  mediaLib: A,
401
402
  exporter: j,
402
- testEmail: P,
403
- commentsInstance: F,
404
- savedModulesHeadless: z,
405
- scoringInstance: G,
403
+ testEmail: ee,
404
+ commentsInstance: P,
405
+ savedModulesHeadless: F,
406
+ scoringInstance: W,
406
407
  panelState: D,
407
408
  snapshotPreview: E,
408
409
  collabWarning: T,
409
- showSaveModuleDialog: H,
410
- showModuleBrowserModal: W,
411
- saveModulePreSelectedBlockId: U,
410
+ showSaveModuleDialog: z,
411
+ showModuleBrowserModal: U,
412
+ saveModulePreSelectedBlockId: H,
412
413
  onSaveHook: p,
413
- initialize: q,
414
- destroy: ae,
415
- setThemeOverrides: re,
414
+ initialize: oe,
415
+ destroy: q,
416
+ setThemeOverrides: K,
416
417
  setUiTheme: ie,
417
- openCommentsForBlock: K
418
+ openCommentsForBlock: G
418
419
  };
419
420
  }
420
421
  //#endregion
421
422
  //#region src/utils/preRenderCustomBlocks.ts
422
- async function ze(e, t) {
423
+ async function Ve(e, t) {
423
424
  let n = async (e) => {
424
425
  if (A(e)) {
425
426
  let n = e;
@@ -438,10 +439,10 @@ async function ze(e, t) {
438
439
  }
439
440
  //#endregion
440
441
  //#region src/cloud/composables/useCloudLifecycle.ts
441
- function Be(e) {
442
+ function He(e) {
442
443
  let { config: t, editor: n, websocket: r, planConfigInstance: i, snapshotPreview: a, core: o, exporter: s, featureFlags: c, isDestroyed: l } = e;
443
444
  function u() {
444
- return De(i.config.value.websocket);
445
+ return ke(i.config.value.websocket);
445
446
  }
446
447
  async function d(e) {
447
448
  let i = await n.create(e);
@@ -454,7 +455,7 @@ function Be(e) {
454
455
  async function p() {
455
456
  c.isSaveExporting.value = !0, c.saveStatus.value = "idle";
456
457
  try {
457
- if (await ze(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
458
+ if (await Ve(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
458
459
  let e = await n.save();
459
460
  if (l()) throw Error("Component unmounted during save");
460
461
  a.initSnapshotHistory(), a.snapshotHistoryInstance.value?.loadSnapshots();
@@ -481,7 +482,7 @@ function Be(e) {
481
482
  }
482
483
  //#endregion
483
484
  //#region src/cloud/composables/useCloudSaveGate.ts
484
- function Ve(e) {
485
+ function Ue(e) {
485
486
  let t = o(!1), n = null, r = d(() => e.planConfig.value?.accessibility?.blockOnError === !0), i = d(() => r.value ? e.issues.value.filter((e) => e.severity === "error") : []), a = d(() => i.value.length > 0);
486
487
  async function s(e) {
487
488
  return a.value ? (n = e, t.value = !0, !1) : (await e(), !0);
@@ -504,7 +505,7 @@ function Ve(e) {
504
505
  }
505
506
  //#endregion
506
507
  //#region src/cloud/components/CloudSaveGateModal.vue?vue&type=script&setup=true&lang.ts
507
- var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl:max-w-md tpl:flex-col tpl:gap-4 tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:p-5 tpl:shadow-[var(--tpl-shadow-md)]" }, We = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Ge = { class: "tpl:m-0 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Ke = { class: "tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, qe = { class: "tpl:m-0 tpl:flex tpl:max-h-64 tpl:list-none tpl:flex-col tpl:gap-1.5 tpl:overflow-y-auto tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:p-2" }, Je = { class: "tpl:text-xs tpl:text-[var(--tpl-text)]" }, Ye = { class: "tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Xe = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, Ze = /* @__PURE__ */ l({
508
+ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl:max-w-md tpl:flex-col tpl:gap-4 tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:p-5 tpl:shadow-[var(--tpl-shadow-md)]" }, Ke = { class: "tpl:flex tpl:items-center tpl:gap-2" }, qe = { class: "tpl:m-0 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Je = { class: "tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ye = { class: "tpl:m-0 tpl:flex tpl:max-h-64 tpl:list-none tpl:flex-col tpl:gap-1.5 tpl:overflow-y-auto tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:p-2" }, Xe = { class: "tpl:text-xs tpl:text-[var(--tpl-text)]" }, Ze = { class: "tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Qe = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, $e = /* @__PURE__ */ l({
508
509
  __name: "CloudSaveGateModal",
509
510
  props: {
510
511
  open: { type: Boolean },
@@ -526,18 +527,18 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
526
527
  "aria-label": C(a).saveGate.title,
527
528
  class: "tpl:fixed tpl:inset-0 tpl:z-50 tpl:flex tpl:items-center tpl:justify-center tpl:bg-black/40 tpl:p-6",
528
529
  onClick: o[2] ||= u((e) => i("cancel"), ["self"])
529
- }, [f("div", Ue, [
530
- f("header", We, [E(C(pe), {
530
+ }, [f("div", Ge, [
531
+ f("header", Ke, [E(C(Z), {
531
532
  size: 18,
532
533
  "stroke-width": 2,
533
534
  class: "tpl:text-[var(--tpl-warning)]"
534
- }), f("h2", Ge, w(C(a).saveGate.title), 1)]),
535
- f("p", Ke, w(C(a).saveGate.body), 1),
536
- f("ul", qe, [(e(!0), m(_, null, r(t.issues, (t) => (e(), m("li", {
535
+ }), f("h2", qe, w(C(a).saveGate.title), 1)]),
536
+ f("p", Je, w(C(a).saveGate.body), 1),
537
+ f("ul", Ye, [(e(!0), m(_, null, r(t.issues, (t) => (e(), m("li", {
537
538
  key: `${t.ruleId}-${t.blockId ?? "template"}`,
538
539
  class: "tpl:flex tpl:flex-col tpl:gap-0.5 tpl:rounded tpl:px-2 tpl:py-1.5"
539
- }, [f("span", Je, w(t.message), 1), f("span", Ye, w(t.ruleId), 1)]))), 128))]),
540
- f("footer", Xe, [f("button", {
540
+ }, [f("span", Xe, w(t.message), 1), f("span", Ze, w(t.ruleId), 1)]))), 128))]),
541
+ f("footer", Qe, [f("button", {
541
542
  type: "button",
542
543
  class: "tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]",
543
544
  onClick: o[0] ||= (e) => i("cancel")
@@ -546,11 +547,11 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
546
547
  class: "tpl:rounded-md tpl:bg-[var(--tpl-danger)] tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:text-white",
547
548
  onClick: o[1] ||= (e) => i("confirm")
548
549
  }, w(C(a).saveGate.confirm), 1)])
549
- ])], 8, He)) : v("", !0)]),
550
+ ])], 8, We)) : v("", !0)]),
550
551
  _: 1
551
552
  }));
552
553
  }
553
- }), Qe = {
554
+ }), et = {
554
555
  class: "tpl-header tpl:absolute tpl:top-0 tpl:right-0 tpl:left-0 tpl:z-50 tpl:grid tpl:h-14 tpl:grid-cols-[1fr_auto_1fr] tpl:items-center tpl:px-4",
555
556
  style: {
556
557
  "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)",
@@ -559,24 +560,24 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
559
560
  "box-shadow": "var(--tpl-shadow-md)",
560
561
  "border-bottom": "1px solid var(--tpl-border)"
561
562
  }
562
- }, $e = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, et = {
563
+ }, tt = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, nt = {
563
564
  key: 0,
564
565
  class: "tpl:text-xs tpl:opacity-60 tpl:text-[var(--tpl-text-muted)]"
565
- }, tt = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, nt = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, rt = ["data-tooltip"], it = {
566
+ }, rt = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, it = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, at = ["data-tooltip"], ot = {
566
567
  key: 1,
567
568
  "aria-live": "polite",
568
569
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success)]"
569
- }, at = {
570
+ }, st = {
570
571
  key: 2,
571
572
  "aria-live": "polite",
572
573
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
573
- }, ot = ["aria-label", "aria-expanded"], st = {
574
+ }, ct = ["aria-label", "aria-expanded"], lt = {
574
575
  key: 0,
575
576
  class: "tpl:inline-flex tpl:size-4.5 tpl:items-center tpl:justify-center tpl:rounded-full tpl:text-[10px] tpl:font-semibold tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]"
576
- }, ct = ["aria-expanded"], lt = {
577
+ }, ut = ["aria-expanded"], dt = {
577
578
  key: 0,
578
579
  class: "tpl:absolute tpl:right-0 tpl:top-full tpl:z-50 tpl:mt-1 tpl:origin-top-right"
579
- }, ut = ["disabled"], dt = ["disabled"], ft = /* @__PURE__ */ l({
580
+ }, ft = ["disabled"], pt = ["disabled"], mt = /* @__PURE__ */ l({
580
581
  __name: "CloudHeader",
581
582
  props: {
582
583
  editor: {},
@@ -594,18 +595,18 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
594
595
  },
595
596
  emits: ["save"],
596
597
  setup(t) {
597
- let n = D(() => import("./CollaboratorBar-BlXmZrIj.js")), r = D(() => import("./SnapshotHistory-DNuw_gCY.js")), i = D(() => import("./AiFeatureMenu-DR56EYbL.js")), { t: a, format: o } = Q();
598
- return (l, d) => (e(), m("header", Qe, [
599
- f("div", $e, [t.featureFlags.templateLimit.value === null ? v("", !0) : (e(), m("span", et, w(C(o)(C(a).header.templatesUsed, {
598
+ let n = D(() => import("./CollaboratorBar-B8-AQfG2.js")), r = D(() => import("./SnapshotHistory-BTHd7CVP.js")), i = D(() => import("./AiFeatureMenu-DBWcfcWl.js")), { t: a, format: o } = Q();
599
+ return (l, d) => (e(), m("header", et, [
600
+ f("div", tt, [t.featureFlags.templateLimit.value === null ? v("", !0) : (e(), m("span", nt, w(C(o)(C(a).header.templatesUsed, {
600
601
  used: t.featureFlags.templateCount.value,
601
602
  max: t.featureFlags.templateLimit.value
602
603
  })), 1))]),
603
- f("div", tt, [
604
+ f("div", rt, [
604
605
  E(K, {
605
606
  viewport: t.editor.state.viewport,
606
607
  onChange: t.editor.setViewport
607
608
  }, null, 8, ["viewport", "onChange"]),
608
- E(ce, {
609
+ E(ue, {
609
610
  "dark-mode": t.editor.state.darkMode,
610
611
  onChange: t.editor.setDarkMode
611
612
  }, null, 8, ["dark-mode", "onChange"]),
@@ -633,7 +634,7 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
633
634
  "onNavigate"
634
635
  ])) : v("", !0)
635
636
  ]),
636
- f("div", nt, [
637
+ f("div", it, [
637
638
  t.featureFlags.saveStatus.value === "error" ? (e(), m("div", {
638
639
  key: 0,
639
640
  "aria-live": "assertive",
@@ -642,10 +643,10 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
642
643
  }, [E(C(G), {
643
644
  size: 12,
644
645
  "stroke-width": 2.5
645
- }), s(" " + w(C(a).header.saveFailed), 1)], 8, rt)) : t.featureFlags.saveStatus.value === "saved" ? (e(), m("div", it, [E(C(W), {
646
+ }), s(" " + w(C(a).header.saveFailed), 1)], 8, at)) : t.featureFlags.saveStatus.value === "saved" ? (e(), m("div", ot, [E(C(W), {
646
647
  size: 12,
647
648
  "stroke-width": 2.5
648
- }), s(" " + w(C(a).header.saved), 1)])) : t.editor.state.isDirty ? (e(), m("div", at, [d[4] ||= f("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), s(" " + w(C(a).header.unsaved), 1)])) : v("", !0),
649
+ }), s(" " + w(C(a).header.saved), 1)])) : t.editor.state.isDirty ? (e(), m("div", st, [d[4] ||= f("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), s(" " + w(C(a).header.unsaved), 1)])) : v("", !0),
649
650
  t.commentsInstance.isEnabled.value && t.featureFlags.hasTemplateSaved.value ? (e(), m("button", {
650
651
  key: 3,
651
652
  "aria-label": t.commentsInstance.unresolvedCount.value > 0 ? `${C(a).comments.button} (${t.commentsInstance.unresolvedCount.value})` : C(a).comments.button,
@@ -658,13 +659,13 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
658
659
  }),
659
660
  onClick: d[0] ||= (e) => t.panelState.commentsOpen.value = !t.panelState.commentsOpen.value
660
661
  }, [
661
- E(C(Y), {
662
+ E(C(he), {
662
663
  size: 16,
663
664
  "stroke-width": 2
664
665
  }),
665
666
  s(" " + w(C(a).comments.button) + " ", 1),
666
- t.commentsInstance.unresolvedCount.value > 0 && !t.panelState.commentsOpen.value ? (e(), m("span", st, w(t.commentsInstance.unresolvedCount.value), 1)) : v("", !0)
667
- ], 14, ot)) : v("", !0),
667
+ t.commentsInstance.unresolvedCount.value > 0 && !t.panelState.commentsOpen.value ? (e(), m("span", lt, w(t.commentsInstance.unresolvedCount.value), 1)) : v("", !0)
668
+ ], 14, ct)) : v("", !0),
668
669
  t.featureFlags.canUseAiGeneration.value && t.featureFlags.hasTemplateSaved.value ? (e(), m("div", {
669
670
  key: 4,
670
671
  ref: (e) => t.panelState.aiMenuRef.value = e,
@@ -673,11 +674,11 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
673
674
  "aria-expanded": t.panelState.aiMenuOpen.value,
674
675
  class: c(["tpl-ai-btn tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:px-4 tpl:py-2 tpl:text-sm tpl:font-semibold tpl:whitespace-nowrap tpl:transition-all tpl:duration-200", t.panelState.aiButtonActive.value ? "tpl-ai-btn--active" : "tpl-ai-btn--idle"]),
675
676
  onClick: d[1] ||= u((...e) => t.panelState.toggleAiMenu && t.panelState.toggleAiMenu(...e), ["stop"])
676
- }, [E(C(Z), {
677
+ }, [E(C(X), {
677
678
  size: 16,
678
679
  "stroke-width": 2,
679
680
  class: "tpl-ai-btn-icon"
680
- }), s(" " + w(C(a).aiChat.button), 1)], 10, ct), E(T, {
681
+ }), s(" " + w(C(a).aiChat.button), 1)], 10, ut), E(T, {
681
682
  "enter-active-class": "tpl:transition-all tpl:duration-150 tpl:ease-out",
682
683
  "enter-from-class": "tpl:scale-95 tpl:opacity-0",
683
684
  "enter-to-class": "tpl:scale-100 tpl:opacity-100",
@@ -685,7 +686,7 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
685
686
  "leave-from-class": "tpl:scale-100 tpl:opacity-100",
686
687
  "leave-to-class": "tpl:scale-95 tpl:opacity-0"
687
688
  }, {
688
- default: O(() => [t.panelState.aiMenuOpen.value ? (e(), m("div", lt, [E(C(i), {
689
+ default: O(() => [t.panelState.aiMenuOpen.value ? (e(), m("div", dt, [E(C(i), {
689
690
  "active-feature": t.panelState.activeAiFeature.value,
690
691
  onSelect: t.panelState.handleAiFeatureSelect
691
692
  }, null, 8, ["active-feature", "onSelect"])])) : v("", !0)]),
@@ -706,11 +707,11 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
706
707
  class: "tpl-spinner",
707
708
  size: 16,
708
709
  "stroke-width": 2
709
- })) : (e(), x(C(X), {
710
+ })) : (e(), x(C(Y), {
710
711
  key: 0,
711
712
  size: 16,
712
713
  "stroke-width": 2
713
- })), s(" " + w(C(a).testEmail.button), 1)], 10, ut)) : v("", !0),
714
+ })), s(" " + w(C(a).testEmail.button), 1)], 10, ft)) : v("", !0),
714
715
  f("button", {
715
716
  class: c(C($)),
716
717
  style: {
@@ -725,15 +726,15 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
725
726
  class: "tpl-spinner",
726
727
  size: 16,
727
728
  "stroke-width": 2
728
- })) : (e(), x(C(Me), {
729
+ })) : (e(), x(C(Pe), {
729
730
  key: 0,
730
731
  size: 16,
731
732
  "stroke-width": 2
732
- })), s(" " + w(t.isSaving ? C(a).header.saving : C(a).header.save), 1)], 10, dt)
733
+ })), s(" " + w(t.isSaving ? C(a).header.saving : C(a).header.save), 1)], 10, pt)
733
734
  ])
734
735
  ]));
735
736
  }
736
- }), pt = /* @__PURE__ */ l({
737
+ }), ht = /* @__PURE__ */ l({
737
738
  __name: "CloudPanels",
738
739
  props: {
739
740
  config: {},
@@ -756,7 +757,7 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
756
757
  "module-insert"
757
758
  ],
758
759
  setup(t, { expose: n, emit: r }) {
759
- let i = D(() => import("./AiChatSidebar-Djjqrmoh.js")), a = D(() => import("./CommentsSidebar-XcYtqAn8.js")), s = D(() => import("./DesignReferenceSidebar-B0Upq2MY.js")), c = D(() => import("./TemplateScoringPanel-bkIhEokb.js")), l = D(() => import("./TestEmailModal-Tg30-itu.js")), u = D(() => import("./SaveModuleDialog-ueFhCVWN.js")), d = D(() => import("./ModuleBrowserModal-BdOB1Lbt.js")), f = D(async () => {
760
+ let i = D(() => import("./AiChatSidebar-Cm5RM5Qh.js")), a = D(() => import("./CommentsSidebar-BQJzyCc6.js")), s = D(() => import("./DesignReferenceSidebar-O3epZMXD.js")), c = D(() => import("./TemplateScoringPanel-Bt5Rsgen.js")), l = D(() => import("./TestEmailModal-CBIFMzK6.js")), u = D(() => import("./SaveModuleDialog-B8ypoxdj.js")), d = D(() => import("./ModuleBrowserModal-B_tLzFAk.js")), f = D(async () => {
760
761
  try {
761
762
  return (await import("@templatical/media-library")).MediaLibraryModal;
762
763
  } catch {
@@ -838,23 +839,23 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
838
839
  ])
839
840
  ], 64));
840
841
  }
841
- }), mt = {
842
+ }), gt = {
842
843
  key: 0,
843
844
  class: "tpl-loading tpl:absolute tpl:inset-0 tpl:z-overlay tpl:flex tpl:flex-col tpl:bg-[var(--tpl-bg)]"
844
- }, ht = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, gt = { class: "tpl:flex tpl:w-12 tpl:shrink-0 tpl:flex-col tpl:items-center tpl:gap-4 tpl:py-5 tpl:border-r tpl:border-[var(--tpl-border)]" }, _t = /* @__PURE__ */ l({
845
+ }, _t = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, vt = { class: "tpl:flex tpl:w-12 tpl:shrink-0 tpl:flex-col tpl:items-center tpl:gap-4 tpl:py-5 tpl:border-r tpl:border-[var(--tpl-border)]" }, yt = /* @__PURE__ */ l({
845
846
  __name: "CloudLoadingOverlay",
846
847
  props: { visible: { type: Boolean } },
847
848
  setup(t) {
848
- return (n, i) => t.visible ? (e(), m("div", mt, [i[1] ||= p("<div class=\"tpl:flex tpl:h-14 tpl:shrink-0 tpl:items-center tpl:justify-between tpl:px-4 tpl:border-b tpl:border-[var(--tpl-border)]\"><div class=\"tpl-shimmer tpl:h-5 tpl:w-28 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl:flex tpl:gap-3\"><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div></div></div>", 1), f("div", ht, [f("div", gt, [(e(), m(_, null, r(5, (e) => f("div", {
849
+ return (n, i) => t.visible ? (e(), m("div", gt, [i[1] ||= p("<div class=\"tpl:flex tpl:h-14 tpl:shrink-0 tpl:items-center tpl:justify-between tpl:px-4 tpl:border-b tpl:border-[var(--tpl-border)]\"><div class=\"tpl-shimmer tpl:h-5 tpl:w-28 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl:flex tpl:gap-3\"><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div></div></div>", 1), f("div", _t, [f("div", vt, [(e(), m(_, null, r(5, (e) => f("div", {
849
850
  key: e,
850
851
  class: "tpl-shimmer tpl:size-7 tpl:rounded-[var(--tpl-radius-sm)]"
851
852
  })), 64))]), i[0] ||= p("<div class=\"tpl:flex tpl:flex-1 tpl:items-start tpl:justify-center tpl:overflow-auto tpl:p-8 tpl:bg-[var(--tpl-canvas-bg)]\"><div class=\"tpl:w-full tpl:max-w-[600px] tpl:rounded-[var(--tpl-radius)] tpl:p-6 tpl:bg-[var(--tpl-bg)] tpl:shadow-[var(--tpl-shadow-sm)]\"><div class=\"tpl:space-y-2 tpl:py-4\"><div class=\"tpl-shimmer tpl:h-3 tpl:w-3/4 tpl:rounded\"></div><div class=\"tpl-shimmer tpl:h-3 tpl:w-full tpl:rounded\"></div><div class=\"tpl-shimmer tpl:h-3 tpl:w-5/6 tpl:rounded\"></div></div><div class=\"tpl:py-4\"><div class=\"tpl-shimmer tpl:h-44 tpl:w-full tpl:rounded-[var(--tpl-radius-sm)]\"></div></div><div class=\"tpl:space-y-2 tpl:py-4\"><div class=\"tpl-shimmer tpl:h-3 tpl:w-full tpl:rounded\"></div><div class=\"tpl-shimmer tpl:h-3 tpl:w-2/3 tpl:rounded\"></div></div><div class=\"tpl:flex tpl:justify-center tpl:py-4\"><div class=\"tpl-shimmer tpl:h-10 tpl:w-36 tpl:rounded-[var(--tpl-radius-sm)]\"></div></div><div class=\"tpl:space-y-2 tpl:py-4\"><div class=\"tpl-shimmer tpl:mx-auto tpl:h-2.5 tpl:w-1/2 tpl:rounded\"></div><div class=\"tpl-shimmer tpl:mx-auto tpl:h-2.5 tpl:w-1/3 tpl:rounded\"></div></div></div></div><div class=\"tpl:flex tpl:w-[320px] tpl:shrink-0 tpl:flex-col tpl:gap-4 tpl:p-4 tpl:border-l tpl:border-[var(--tpl-border)]\"><div class=\"tpl-shimmer tpl:h-8 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl-shimmer tpl:h-32 tpl:rounded-[var(--tpl-radius)]\"></div><div class=\"tpl-shimmer tpl:h-32 tpl:rounded-[var(--tpl-radius)]\"></div></div>", 2)])])) : v("", !0);
852
853
  }
853
- }), vt = {
854
+ }), bt = {
854
855
  key: 0,
855
856
  role: "alert",
856
857
  class: "tpl-error tpl:absolute tpl:inset-0 tpl:z-overlay tpl:flex tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-6 tpl:px-8 tpl:bg-[var(--tpl-bg)]"
857
- }, yt = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, bt = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:text-center" }, xt = { class: "tpl:text-lg tpl:font-semibold tpl:text-[var(--tpl-text)]" }, St = { class: "tpl:max-w-md tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ct = /* @__PURE__ */ l({
858
+ }, xt = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, St = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:text-center" }, Ct = { class: "tpl:text-lg tpl:font-semibold tpl:text-[var(--tpl-text)]" }, wt = { class: "tpl:max-w-md tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Tt = /* @__PURE__ */ l({
858
859
  __name: "CloudErrorOverlay",
859
860
  props: {
860
861
  error: {},
@@ -869,13 +870,13 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
869
870
  function o(e) {
870
871
  return "isNotFound" in e && !!e.isNotFound;
871
872
  }
872
- return (n, s) => t.visible && t.error ? (e(), m("div", vt, [
873
- f("div", yt, [E(C(G), {
873
+ return (n, s) => t.visible && t.error ? (e(), m("div", bt, [
874
+ f("div", xt, [E(C(G), {
874
875
  size: 32,
875
876
  "stroke-width": 1.5,
876
877
  class: "tpl:text-[var(--tpl-danger)]"
877
878
  })]),
878
- f("div", bt, [f("h2", xt, w(C(i).error.title), 1), f("p", St, w(a(t.error)), 1)]),
879
+ f("div", St, [f("h2", Ct, w(C(i).error.title), 1), f("p", wt, w(a(t.error)), 1)]),
879
880
  o(t.error) ? v("", !0) : (e(), m("button", {
880
881
  key: 0,
881
882
  class: "tpl-btn tpl-btn-primary tpl:inline-flex tpl:items-center tpl:gap-2 tpl:rounded-md tpl:px-4 tpl:py-2.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
@@ -883,20 +884,20 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
883
884
  }, w(C(i).error.retry), 1))
884
885
  ])) : v("", !0);
885
886
  }
886
- }), wt = {
887
+ }), Et = {
887
888
  key: 0,
888
889
  class: "tpl-preview-banner tpl:absolute tpl:top-14 tpl:right-0 tpl:left-0 tpl:z-40 tpl:flex tpl:items-center tpl:justify-center tpl:gap-4 tpl:px-4 tpl:py-3 tpl:bg-[var(--tpl-primary-light)] tpl:border-b tpl:border-[var(--tpl-primary)]"
889
- }, Tt = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, Et = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Dt = /* @__PURE__ */ l({
890
+ }, Dt = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, Ot = { class: "tpl:flex tpl:items-center tpl:gap-2" }, kt = /* @__PURE__ */ l({
890
891
  __name: "SnapshotPreviewBanner",
891
892
  props: { visible: { type: Boolean } },
892
893
  emits: ["cancel", "confirm"],
893
894
  setup(t, { emit: n }) {
894
895
  let r = n, { t: i } = Q();
895
- return (n, a) => t.visible ? (e(), m("div", wt, [f("div", Tt, [E(C(fe), {
896
+ return (n, a) => t.visible ? (e(), m("div", Et, [f("div", Dt, [E(C(me), {
896
897
  size: 18,
897
898
  "stroke-width": 2,
898
899
  class: "tpl:text-[var(--tpl-primary)]"
899
- }), f("span", null, w(C(i).snapshotPreview.message), 1)]), f("div", Et, [f("button", {
900
+ }), f("span", null, w(C(i).snapshotPreview.message), 1)]), f("div", Ot, [f("button", {
900
901
  class: "tpl:rounded-md tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:transition-all tpl:duration-150 tpl:text-[var(--tpl-text-muted)] tpl:border tpl:border-[var(--tpl-border)]",
901
902
  style: { "background-color": "transparent" },
902
903
  onClick: a[0] ||= (e) => r("cancel")
@@ -905,7 +906,7 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
905
906
  onClick: a[1] ||= (e) => r("confirm")
906
907
  }, w(C(i).snapshotPreview.restore), 1)])])) : v("", !0);
907
908
  }
908
- }), Ot = {
909
+ }), At = {
909
910
  key: 0,
910
911
  role: "status",
911
912
  "aria-live": "polite",
@@ -915,14 +916,14 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
915
916
  color: "var(--tpl-text)",
916
917
  border: "1px solid var(--tpl-warning)"
917
918
  }
918
- }, kt = /* @__PURE__ */ l({
919
+ }, jt = /* @__PURE__ */ l({
919
920
  __name: "CollabUndoToast",
920
921
  props: { visible: { type: Boolean } },
921
922
  setup(t) {
922
923
  let { t: n } = H();
923
- return (r, i) => t.visible ? (e(), m("div", Ot, w(C(n).history.collabWarning), 1)) : v("", !0);
924
+ return (r, i) => t.visible ? (e(), m("div", At, w(C(n).history.collabWarning), 1)) : v("", !0);
924
925
  }
925
- }), At = ["data-tpl-theme"], jt = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, Mt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, Nt = ["aria-label"], Pt = /*#__PURE__*/ me(/* @__PURE__ */ l({
926
+ }), Mt = ["data-tpl-theme"], Nt = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, Pt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, Ft = ["aria-label"], It = /*#__PURE__*/ ge(/* @__PURE__ */ l({
926
927
  __name: "CloudEditor",
927
928
  props: {
928
929
  config: {},
@@ -935,7 +936,7 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
935
936
  setup(n, { expose: r, emit: a }) {
936
937
  let l = n;
937
938
  h(z, l.cloudTranslations);
938
- let u = a, d = o(null), p = o(null), _ = Re({
939
+ let u = a, d = o(null), p = o(null), _ = Be({
939
940
  config: l.config,
940
941
  translations: l.translations,
941
942
  fontsManager: l.fontsManager,
@@ -943,25 +944,25 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
943
944
  getCommentsSidebar: () => d.value ? { filterByBlock: d.value.filterCommentsByBlock } : null,
944
945
  editorRoot: l.shadowRoot,
945
946
  containerEl: p
946
- }), { isInitializing: S, isAuthReady: D, initError: k, planConfigInstance: A, websocket: M, collaboration: N, isCollaborationEnabled: ee, editor: P, core: F, featureFlags: I, mediaLib: L, exporter: R, testEmail: B, commentsInstance: te, savedModulesHeadless: ne, panelState: V, snapshotPreview: H, collabWarning: U, showSaveModuleDialog: W, showModuleBrowserModal: G, saveModulePreSelectedBlockId: K, setThemeOverrides: q, setUiTheme: ce } = _;
947
- async function de(e) {
947
+ }), { isInitializing: S, isAuthReady: D, initError: k, planConfigInstance: A, websocket: M, collaboration: N, isCollaborationEnabled: te, editor: P, core: F, featureFlags: I, mediaLib: L, exporter: R, testEmail: B, commentsInstance: ne, savedModulesHeadless: re, panelState: V, snapshotPreview: H, collabWarning: U, showSaveModuleDialog: W, showModuleBrowserModal: G, saveModulePreSelectedBlockId: K, setThemeOverrides: ae, setUiTheme: q } = _, { showNotice: ue } = ee(() => l.config.smallScreenNotice);
948
+ async function me(e) {
948
949
  try {
949
950
  await B.sendTestEmail(e), V.testEmailModalOpen.value = !1;
950
951
  } catch {}
951
952
  }
952
- async function fe() {
953
+ async function J() {
953
954
  try {
954
955
  await H.confirmRestoreSnapshot();
955
956
  } catch {}
956
957
  }
957
- function J(e, t) {
958
+ function he(e, t) {
958
959
  for (let n = 0; n < e.content.length; n++) {
959
960
  let r = j(e.content[n]), i = t === void 0 ? void 0 : t + n;
960
961
  P.addBlock(r, void 0, void 0, i);
961
962
  }
962
963
  G.value = !1;
963
964
  }
964
- let Y = Be({
965
+ let Y = He({
965
966
  config: l.config,
966
967
  editor: P,
967
968
  websocket: M,
@@ -971,7 +972,7 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
971
972
  exporter: R,
972
973
  featureFlags: I,
973
974
  isDestroyed: _.isDestroyed
974
- }), X = Ve({
975
+ }), X = Ue({
975
976
  issues: F.templateLint ? F.templateLint.issues : o([]),
976
977
  planConfig: A.config
977
978
  });
@@ -985,8 +986,8 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
985
986
  }), r({
986
987
  getContent: () => P.content.value,
987
988
  setContent: (e) => P.setContent(e),
988
- setTheme: ce,
989
- setThemeOverrides: q,
989
+ setTheme: q,
990
+ setThemeOverrides: ae,
990
991
  create: Y.createTemplate,
991
992
  load: Y.loadTemplate,
992
993
  save: Y.saveTemplate,
@@ -998,7 +999,7 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
998
999
  "data-tpl-theme": C(F).resolvedTheme.value,
999
1000
  style: b(C(F).themeStyles.value)
1000
1001
  }, [
1001
- E(re),
1002
+ E(se),
1002
1003
  E(T, {
1003
1004
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
1004
1005
  "enter-from-class": "tpl:opacity-100",
@@ -1007,7 +1008,7 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1007
1008
  "leave-from-class": "tpl:opacity-100",
1008
1009
  "leave-to-class": "tpl:opacity-0"
1009
1010
  }, {
1010
- default: O(() => [E(_t, { visible: C(S) || C(P).state.isLoading }, null, 8, ["visible"])]),
1011
+ default: O(() => [E(yt, { visible: C(S) || C(P).state.isLoading }, null, 8, ["visible"])]),
1011
1012
  _: 1
1012
1013
  }),
1013
1014
  E(T, {
@@ -1018,7 +1019,7 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1018
1019
  "leave-from-class": "tpl:opacity-100",
1019
1020
  "leave-to-class": "tpl:opacity-0"
1020
1021
  }, {
1021
- default: O(() => [E(Ct, {
1022
+ default: O(() => [E(Tt, {
1022
1023
  error: C(k),
1023
1024
  visible: !!C(k) && !C(S),
1024
1025
  onRetry: C(_).initialize
@@ -1029,17 +1030,17 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1029
1030
  ])]),
1030
1031
  _: 1
1031
1032
  }),
1032
- E(ft, {
1033
+ E(mt, {
1033
1034
  editor: C(P),
1034
1035
  core: C(F),
1035
1036
  "feature-flags": C(I),
1036
1037
  "panel-state": C(V),
1037
1038
  "snapshot-preview": C(H),
1038
- "comments-instance": C(te),
1039
+ "comments-instance": C(ne),
1039
1040
  "test-email": C(B),
1040
1041
  websocket: C(M),
1041
1042
  collaboration: C(N),
1042
- "is-collaboration-enabled": C(ee),
1043
+ "is-collaboration-enabled": C(te),
1043
1044
  "is-saving": C(P).state.isSaving || C(I).isSaveExporting.value,
1044
1045
  "is-save-disabled": C(P).state.isSaving || C(I).isSaveExporting.value || !C(P).state.isDirty,
1045
1046
  onSave: Z
@@ -1057,7 +1058,7 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1057
1058
  "is-saving",
1058
1059
  "is-save-disabled"
1059
1060
  ]),
1060
- E(Ze, {
1061
+ E($e, {
1061
1062
  open: C(X).modalOpen.value,
1062
1063
  issues: C(X).blockingIssues.value,
1063
1064
  onCancel: C(X).cancel,
@@ -1068,10 +1069,10 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1068
1069
  "onCancel",
1069
1070
  "onConfirm"
1070
1071
  ]),
1071
- E(Dt, {
1072
+ E(kt, {
1072
1073
  visible: C(H).isPreviewingSnapshot.value,
1073
1074
  onCancel: C(H).cancelPreview,
1074
- onConfirm: fe
1075
+ onConfirm: J
1075
1076
  }, null, 8, ["visible", "onCancel"]),
1076
1077
  E(T, {
1077
1078
  "enter-active-class": "tpl:transition-all tpl:duration-200 tpl:ease-out",
@@ -1081,17 +1082,17 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1081
1082
  "leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
1082
1083
  "leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
1083
1084
  }, {
1084
- default: O(() => [E(kt, { visible: C(U).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1085
+ default: O(() => [E(jt, { visible: C(U).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1085
1086
  _: 1
1086
1087
  }),
1087
- t(E(le, null, null, 512), [[y, !C(P).state.previewMode]]),
1088
+ t(E(ie, null, null, 512), [[y, !C(P).state.previewMode]]),
1088
1089
  f("div", {
1089
1090
  class: c(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [C(P).state.previewMode ? "tpl:left-0 tpl:right-0" : C(V).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", C(H).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1090
1091
  style: {
1091
1092
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
1092
1093
  "background-color": "var(--tpl-canvas-bg)"
1093
1094
  }
1094
- }, [f("div", jt, [E(T, { name: "tpl-restore-btn" }, {
1095
+ }, [f("div", Nt, [E(T, { name: "tpl-restore-btn" }, {
1095
1096
  default: O(() => [C(F).conditionPreview.hasHiddenBlocks.value ? (e(), m("button", {
1096
1097
  key: 0,
1097
1098
  class: "tpl:absolute tpl:left-1/2 tpl:top-2 tpl:-translate-x-1/2 tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded-full tpl:border tpl:px-3.5 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:whitespace-nowrap tpl:shadow-md tpl:hover:opacity-80",
@@ -1102,12 +1103,12 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1102
1103
  "backdrop-filter": "blur(8px)"
1103
1104
  },
1104
1105
  onClick: i[0] ||= (e) => C(F).conditionPreview.reset()
1105
- }, [E(C(ie), {
1106
+ }, [E(C(oe), {
1106
1107
  size: 13,
1107
1108
  "stroke-width": 2
1108
1109
  }), s(" " + w(C(F).t.blockSettings.restoreHiddenBlocks), 1)])) : v("", !0)]),
1109
1110
  _: 1
1110
- })]), f("main", Mt, [E(ae, {
1111
+ })]), f("main", Pt, [E(pe, {
1111
1112
  viewport: C(P).state.viewport,
1112
1113
  content: C(P).content.value,
1113
1114
  "selected-block-id": C(P).state.selectedBlockId,
@@ -1126,7 +1127,7 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1126
1127
  "locked-blocks",
1127
1128
  "onSelectBlock"
1128
1129
  ])])], 2),
1129
- n.config.branding !== !1 && !C(I).isWhiteLabeled.value ? (e(), x(oe, {
1130
+ n.config.branding !== !1 && !C(I).isWhiteLabeled.value ? (e(), x(ce, {
1130
1131
  key: 0,
1131
1132
  "position-class": [C(P).state.previewMode ? "tpl:left-0 tpl:right-0" : C(V).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1132
1133
  }, null, 8, ["position-class"])) : v("", !0),
@@ -1136,8 +1137,8 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1136
1137
  "aria-live": "polite",
1137
1138
  "aria-atomic": "true",
1138
1139
  "aria-label": C(F).t.landmarks.reorderAnnouncements
1139
- }, w(C(F).keyboardReorder.announcement.value), 9, Nt),
1140
- t(E(se, {
1140
+ }, w(C(F).keyboardReorder.announcement.value), 9, Ft),
1141
+ t(E(de, {
1141
1142
  "selected-block": C(P).selectedBlock.value,
1142
1143
  settings: C(P).content.value.settings,
1143
1144
  "shifted-left": C(V).rightPanelOpen.value,
@@ -1151,7 +1152,7 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1151
1152
  "shifted-left",
1152
1153
  "onUpdateSettings"
1153
1154
  ]), [[y, !C(P).state.previewMode]]),
1154
- !C(S) && C(D) ? (e(), x(pt, {
1155
+ !C(S) && C(D) ? (e(), x(ht, {
1155
1156
  key: 1,
1156
1157
  ref_key: "cloudPanelsRef",
1157
1158
  ref: d,
@@ -1162,15 +1163,15 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1162
1163
  "plan-config-instance": C(A),
1163
1164
  "test-email": C(B),
1164
1165
  "media-lib": C(L),
1165
- "saved-modules-headless": C(ne),
1166
+ "saved-modules-headless": C(re),
1166
1167
  "show-save-module-dialog": C(W),
1167
1168
  "save-module-pre-selected-block-id": C(K),
1168
1169
  "show-module-browser-modal": C(G),
1169
1170
  "onUpdate:showSaveModuleDialog": i[6] ||= (e) => W.value = e,
1170
1171
  "onUpdate:saveModulePreSelectedBlockId": i[7] ||= (e) => K.value = e,
1171
1172
  "onUpdate:showModuleBrowserModal": i[8] ||= (e) => G.value = e,
1172
- onSendTestEmail: de,
1173
- onModuleInsert: J
1173
+ onSendTestEmail: me,
1174
+ onModuleInsert: he
1174
1175
  }, null, 8, [
1175
1176
  "config",
1176
1177
  "editor",
@@ -1188,9 +1189,10 @@ var He = ["aria-label"], Ue = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1188
1189
  ref: (e) => C(F).popoverRoot.value = e,
1189
1190
  class: "tpl-popover-root"
1190
1191
  }, null, 512),
1191
- E(ue)
1192
- ], 14, At));
1192
+ E(fe),
1193
+ C(ue) ? (e(), x(le, { key: 2 })) : v("", !0)
1194
+ ], 14, Mt));
1193
1195
  }
1194
- }), [["__scopeId", "data-v-3a8bb0e8"]]);
1196
+ }), [["__scopeId", "data-v-df1ba3f4"]]);
1195
1197
  //#endregion
1196
- export { Pt as default };
1198
+ export { It as default };