@templatical/editor 0.9.1 → 0.10.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 (148) hide show
  1. package/dist/{AiChatSidebar-BUKj9n02.js → AiChatSidebar-Dz5bH1z3.js} +13 -13
  2. package/dist/{AiFeatureMenu-Co14YVJt.js → AiFeatureMenu-D2Xn0jFx.js} +7 -7
  3. package/dist/{BlockIssueBadge-DThKKeub.js → BlockIssueBadge-CnqD1cGo.js} +5 -5
  4. package/dist/{CloudEditor-DHB1FoQD.js → CloudEditor-BizZwsfD.js} +237 -233
  5. package/dist/{CollaboratorBar-Bc6q0gB9.js → CollaboratorBar-Bn2JDu6l.js} +4 -4
  6. package/dist/{CommentsSidebar-DiH4R4F0.js → CommentsSidebar-BAG6rdVC.js} +12 -12
  7. package/dist/{CountdownBlock-BTPefclD.js → CountdownBlock-B_Hr9Bm9.js} +3 -3
  8. package/dist/{CountdownToolbar-Dvr2icg-.js → CountdownToolbar-DaqDLKLk.js} +3 -3
  9. package/dist/{DesignReferenceSidebar-BP32MgpS.js → DesignReferenceSidebar-I9LWjvrj.js} +9 -9
  10. package/dist/{IssuesPanel-B1LT91IX.js → IssuesPanel-B32Ifp4x.js} +8 -8
  11. package/dist/{LoadingTrack-xCOLUR3o.js → LoadingTrack-UTqOUN4O.js} +1 -1
  12. package/dist/{ModuleBrowserModal-CWegFoOA.js → ModuleBrowserModal-DodRped1.js} +10 -10
  13. package/dist/{ModulePreviewCanvas-D9WUSSRT.js → ModulePreviewCanvas-DhcnddJF.js} +3 -3
  14. package/dist/{NumberWithSuffix-CxUBW_V2.js → NumberWithSuffix-DB7GyyCI.js} +3 -3
  15. package/dist/{ParagraphEditor-DrAz2yot.js → ParagraphEditor-pJA9BHAL.js} +26 -26
  16. package/dist/{RichTextEditorContent-gR169m1-.js → RichTextEditorContent-dTGSUff_.js} +6 -6
  17. package/dist/{SaveModuleDialog-DWidA0c9.js → SaveModuleDialog-D634e99d.js} +7 -7
  18. package/dist/{SnapshotHistory-CIo2Jaw-.js → SnapshotHistory-m_nGAHlb.js} +9 -9
  19. package/dist/{TemplateScoringPanel-seBvvn8O.js → TemplateScoringPanel-BOQh9neV.js} +14 -14
  20. package/dist/{TestEmailModal-BuCuWp3N.js → TestEmailModal-DOcwoKkc.js} +5 -5
  21. package/dist/{TitleEditor-BmW0uMl7.js → TitleEditor-t6JMWamY.js} +12 -12
  22. package/dist/{TplModal-YFpBaiLj.js → TplModal-BAtbfDB0.js} +4 -4
  23. package/dist/{blockTypeIcons-DCkHXPhx.js → blockTypeIcons-C4lXx3Au.js} +2 -2
  24. package/dist/bundle-stats.json +6 -6
  25. package/dist/cdn/chunks/{AiFeatureMenu-Dayzk2H7.js → AiFeatureMenu-BeOyHAoZ.js} +3 -3
  26. package/dist/cdn/chunks/{AiFeatureMenu-Dayzk2H7.js.map → AiFeatureMenu-BeOyHAoZ.js.map} +1 -1
  27. package/dist/cdn/chunks/{BlockIssueBadge-D_US2wqo.js → BlockIssueBadge-C6YilQdl.js} +5 -5
  28. package/dist/cdn/chunks/{BlockIssueBadge-D_US2wqo.js.map → BlockIssueBadge-C6YilQdl.js.map} +1 -1
  29. package/dist/cdn/chunks/{CloudEditor-CrZk-OwQ.js → CloudEditor-DEA37rdW.js} +178 -174
  30. package/dist/cdn/chunks/CloudEditor-DEA37rdW.js.map +1 -0
  31. package/dist/cdn/chunks/{CollaboratorBar-C4CFs5EJ.js → CollaboratorBar-CKW7jOW4.js} +4 -4
  32. package/dist/cdn/chunks/{CollaboratorBar-C4CFs5EJ.js.map → CollaboratorBar-CKW7jOW4.js.map} +1 -1
  33. package/dist/cdn/chunks/{CountdownBlock-D6lCXhZA.js → CountdownBlock-DU9ga9Ki.js} +3 -3
  34. package/dist/cdn/chunks/{CountdownBlock-D6lCXhZA.js.map → CountdownBlock-DU9ga9Ki.js.map} +1 -1
  35. package/dist/cdn/chunks/{CountdownToolbar-BsGUxoRv.js → CountdownToolbar-BHWsxth7.js} +4 -4
  36. package/dist/cdn/chunks/{CountdownToolbar-BsGUxoRv.js.map → CountdownToolbar-BHWsxth7.js.map} +1 -1
  37. package/dist/cdn/chunks/{IssuesPanel-DeHTmRDz.js → IssuesPanel-BkYhij39.js} +9 -9
  38. package/dist/cdn/chunks/{IssuesPanel-DeHTmRDz.js.map → IssuesPanel-BkYhij39.js.map} +1 -1
  39. package/dist/cdn/chunks/{ModuleBrowserModal-Cgjz4xAz.js → ModuleBrowserModal-D51w942J.js} +9 -9
  40. package/dist/cdn/chunks/{ModuleBrowserModal-Cgjz4xAz.js.map → ModuleBrowserModal-D51w942J.js.map} +1 -1
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-CeS9PsAA.js → ModulePreviewCanvas-BqTqcKHS.js} +3 -3
  42. package/dist/cdn/chunks/{ModulePreviewCanvas-CeS9PsAA.js.map → ModulePreviewCanvas-BqTqcKHS.js.map} +1 -1
  43. package/dist/cdn/chunks/{NumberWithSuffix-Bp-idLCc.js → NumberWithSuffix-DuUcF2zG.js} +3 -3
  44. package/dist/cdn/chunks/{NumberWithSuffix-Bp-idLCc.js.map → NumberWithSuffix-DuUcF2zG.js.map} +1 -1
  45. package/dist/cdn/chunks/{ParagraphEditor-fM9aFu8T.js → ParagraphEditor-Bqjn3ZNm.js} +45 -45
  46. package/dist/cdn/chunks/{ParagraphEditor-fM9aFu8T.js.map → ParagraphEditor-Bqjn3ZNm.js.map} +1 -1
  47. package/dist/cdn/chunks/{RichTextEditorContent-DwNPE5H5.js → RichTextEditorContent-mIkkb5EK.js} +4 -4
  48. package/dist/cdn/chunks/{RichTextEditorContent-DwNPE5H5.js.map → RichTextEditorContent-mIkkb5EK.js.map} +1 -1
  49. package/dist/cdn/chunks/{SaveModuleDialog-BrtDXzIz.js → SaveModuleDialog-Felfmkcj.js} +5 -5
  50. package/dist/cdn/chunks/{SaveModuleDialog-BrtDXzIz.js.map → SaveModuleDialog-Felfmkcj.js.map} +1 -1
  51. package/dist/cdn/chunks/{TitleEditor-D0rSnye0.js → TitleEditor-Dcldr8D6.js} +12 -12
  52. package/dist/cdn/chunks/{TitleEditor-D0rSnye0.js.map → TitleEditor-Dcldr8D6.js.map} +1 -1
  53. package/dist/cdn/chunks/blockTypeIcons-D05Wqf5u.js +22 -0
  54. package/dist/cdn/chunks/{blockTypeIcons-YOEe5mDE.js.map → blockTypeIcons-D05Wqf5u.js.map} +1 -1
  55. package/dist/{de-CATfXDKV.js → cdn/chunks/de-DIAGP7yH.js} +2 -6
  56. package/dist/cdn/chunks/de-DIAGP7yH.js.map +1 -0
  57. package/dist/cdn/chunks/{draggable-BwWMFq33.js → draggable-J_1CPXYc.js} +1254 -1253
  58. package/dist/cdn/chunks/draggable-J_1CPXYc.js.map +1 -0
  59. package/dist/{en-CwCAgYL5.js → cdn/chunks/en-nqIW8Q9W.js} +2 -6
  60. package/dist/cdn/chunks/en-nqIW8Q9W.js.map +1 -0
  61. package/dist/cdn/chunks/{extensions-GYsbQFPr.js → extensions-CNmpC18A.js} +127 -124
  62. package/dist/cdn/chunks/{extensions-GYsbQFPr.js.map → extensions-CNmpC18A.js.map} +1 -1
  63. package/dist/cdn/chunks/{features-D-2kVhHY.js → features-_ar9QbVv.js} +1006 -979
  64. package/dist/cdn/chunks/features-_ar9QbVv.js.map +1 -0
  65. package/dist/cdn/chunks/{icons-fZoyKV_s.js → icons-CnwCLJX-.js} +19 -33
  66. package/dist/cdn/chunks/icons-CnwCLJX-.js.map +1 -0
  67. package/dist/cdn/chunks/{media-library-CO2WOETY.js → media-library-9jyt7Bf9.js} +83 -79
  68. package/dist/cdn/chunks/media-library-9jyt7Bf9.js.map +1 -0
  69. package/dist/{pt-BR-D3Mg7AKe.js → cdn/chunks/pt-BR-DCNnLLx9.js} +2 -6
  70. package/dist/cdn/chunks/pt-BR-DCNnLLx9.js.map +1 -0
  71. package/dist/cdn/chunks/{quality-BxPiS-wv.js → quality-CO9mj_RH.js} +494 -484
  72. package/dist/cdn/chunks/quality-CO9mj_RH.js.map +1 -0
  73. package/dist/cdn/chunks/{renderer-CfHPFI5v.js → renderer-m6XTCWCL.js} +135 -117
  74. package/dist/cdn/chunks/renderer-m6XTCWCL.js.map +1 -0
  75. package/dist/cdn/chunks/{src-ftxPuuQh.js → src-DfMSYqvE.js} +9 -9
  76. package/dist/cdn/chunks/{src-ftxPuuQh.js.map → src-DfMSYqvE.js.map} +1 -1
  77. package/dist/cdn/chunks/{styles-CVUvPdKD.js → styles-1uFWdD5T.js} +1045 -1074
  78. package/dist/cdn/chunks/styles-1uFWdD5T.js.map +1 -0
  79. package/dist/cdn/chunks/{tiptap-BBbH3IT9.js → tiptap-CJbIm_hE.js} +5 -5
  80. package/dist/cdn/chunks/{tiptap-BBbH3IT9.js.map → tiptap-CJbIm_hE.js.map} +1 -1
  81. package/dist/cdn/editor.css +1 -1
  82. package/dist/cdn/editor.js +109 -100
  83. package/dist/cdn/editor.js.map +1 -1
  84. package/dist/{check-ChQyfxJ3.js → check-Bs6_uQpm.js} +1 -1
  85. package/dist/{chevron-down-DJjo0jSV.js → chevron-down-so1rnGwF.js} +1 -1
  86. package/dist/{circle-alert-CPH6l3Lc.js → circle-alert-CrKv0AuW.js} +1 -1
  87. package/dist/{clock-DHl_BIkU.js → clock-Cpx6GYpa.js} +1 -1
  88. package/dist/{cloud-VxYMtfXC.js → cloud-bHhCNRZa.js} +80 -74
  89. package/dist/{createLucideIcon-XgXOJ05E.js → createLucideIcon-DFBxEm5K.js} +3 -3
  90. package/dist/{cdn/chunks/de-CATfXDKV.js → de-DIAGP7yH.js} +0 -8
  91. package/dist/{dist-C0jo8wtG.js → dist-0RguD1vS.js} +1 -1
  92. package/dist/{dist-CNLAS2v2.js → dist-2-A7SaKm.js} +3 -3
  93. package/dist/{dist-UK-lbEBc.js → dist-74n2Mqc6.js} +1 -1
  94. package/dist/{dist-BzuC8o3y.js → dist-B3CcePtK.js} +3 -3
  95. package/dist/{dist-D8C6jIXM.js → dist-BejBMbBX.js} +3 -3
  96. package/dist/{dist-CIV3Brg-.js → dist-BufRk8ZY.js} +4 -6
  97. package/dist/{dist-DILjuzSv.js → dist-Bvje_Tqb.js} +1 -1
  98. package/dist/{dist-BDgf2G-V.js → dist-BxHa6kIT.js} +3 -3
  99. package/dist/{dist-CUpJmrjt.js → dist-CIK3BYgh.js} +1 -1
  100. package/dist/{dist-C8wMh_gi.js → dist-CMkZaqX1.js} +1 -1
  101. package/dist/{dist-BxP6TB0l.js → dist-CoaWXQ7N.js} +1 -1
  102. package/dist/{dist-D5lmdi1F.js → dist-D1YvgM6p.js} +1 -1
  103. package/dist/{dist-DYO-w_Jf.js → dist-DJ5YJLXn.js} +1 -1
  104. package/dist/{dist-DXaxGLsw.js → dist-DwEpKyry.js} +1 -1
  105. package/dist/{cdn/chunks/en-CwCAgYL5.js → en-nqIW8Q9W.js} +0 -8
  106. package/dist/{extensions-Mj2-D8uK.js → extensions-C810eSzv.js} +107 -104
  107. package/dist/{image-up-CPBCOMit.js → image-up-kMLE5GsI.js} +1 -1
  108. package/dist/index.d.ts +8 -0
  109. package/dist/{info-DIY9mguM.js → info-xqRxLfNz.js} +1 -1
  110. package/dist/keys-BoYBr3PU.js +10 -0
  111. package/dist/{list-checks-CSCyu3fH.js → list-checks-C81htkBJ.js} +1 -1
  112. package/dist/{loader-circle-Rz_4vJLH.js → loader-circle-C6cZPIum.js} +1 -1
  113. package/dist/{message-circle-D-umK_MU.js → message-circle-dqOBRe07.js} +1 -1
  114. package/dist/{cdn/chunks/pt-BR-D3Mg7AKe.js → pt-BR-DCNnLLx9.js} +0 -8
  115. package/dist/{refresh-cw-CvWF4jfR.js → refresh-cw-DCjNd6o0.js} +1 -1
  116. package/dist/{scan-line-wanvAFDr.js → scan-line-DXz0nZVJ.js} +1 -1
  117. package/dist/{send-BhbhbIFT.js → send-C4uH_WaI.js} +1 -1
  118. package/dist/{shield-check-CXPPMWth.js → shield-check-B3U68ssA.js} +1 -1
  119. package/dist/{sparkles-CrUN0KWY.js → sparkles-CsDweGUy.js} +1 -1
  120. package/dist/style.css +1 -1
  121. package/dist/{styles-CxwIlb7Y.js → styles-CBlNpqL9.js} +1031 -1074
  122. package/dist/templatical-editor.js +116 -107
  123. package/dist/{text-align-end-Bkq8oBrD.js → text-align-start-BkKQePFp.js} +11 -11
  124. package/dist/{trash-2-BpY5BCLT.js → trash-2-BIOkaEz1.js} +1 -1
  125. package/dist/{triangle-alert-MwJBKR2e.js → triangle-alert-Bbgu6uUG.js} +1 -1
  126. package/dist/{useAliveFlag-BLyG8L4d.js → useAliveFlag-Bc99FWyR.js} +1 -1
  127. package/dist/{useCloudI18n-DKWJg6rJ.js → useCloudI18n-DiwsLi6z.js} +2 -2
  128. package/dist/{useEditorCore-CEkf_VWX.js → useEditorCore-7c1QpPlw.js} +717 -694
  129. package/dist/{useI18n-Besvmtxy.js → useI18n-DskZMfRJ.js} +2 -2
  130. package/dist/{useMergeTag-WNzaCpXR.js → useMergeTag-Co4xYwG6.js} +4 -4
  131. package/dist/usePopoverRoot-DYH_gX8o.js +8 -0
  132. package/dist/{vue.runtime.esm-bundler-BDSGA5hA.js → vue.runtime.esm-bundler-D0Hg03Ub.js} +1289 -1288
  133. package/dist/{x-rcnxRG8Y.js → x-DWU6NCuE.js} +1 -1
  134. package/package.json +10 -10
  135. package/dist/cdn/chunks/CloudEditor-CrZk-OwQ.js.map +0 -1
  136. package/dist/cdn/chunks/blockTypeIcons-YOEe5mDE.js +0 -22
  137. package/dist/cdn/chunks/de-CATfXDKV.js.map +0 -1
  138. package/dist/cdn/chunks/draggable-BwWMFq33.js.map +0 -1
  139. package/dist/cdn/chunks/en-CwCAgYL5.js.map +0 -1
  140. package/dist/cdn/chunks/features-D-2kVhHY.js.map +0 -1
  141. package/dist/cdn/chunks/icons-fZoyKV_s.js.map +0 -1
  142. package/dist/cdn/chunks/media-library-CO2WOETY.js.map +0 -1
  143. package/dist/cdn/chunks/pt-BR-D3Mg7AKe.js.map +0 -1
  144. package/dist/cdn/chunks/quality-BxPiS-wv.js.map +0 -1
  145. package/dist/cdn/chunks/renderer-CfHPFI5v.js.map +0 -1
  146. package/dist/cdn/chunks/styles-CVUvPdKD.js.map +0 -1
  147. package/dist/keys-BiQlvx51.js +0 -10
  148. package/dist/usePopoverRoot-CKt956u-.js +0 -8
@@ -1,17 +1,17 @@
1
- import { $ as e, A as t, H as n, J as r, M as i, N as a, P as o, V as s, Z as c, _ as l, b as u, ct as d, f, g as p, h as m, it as h, j as g, l as _, m as v, n as y, ot as b, p as x, s as S, st as C, u as w, v as T, x as E, y as D, z as ee } from "./draggable-BwWMFq33.js";
2
- import { $t as O, A as k, At as A, Dt as j, E as M, En as N, Et as P, Ft as F, Ht as I, It as te, Nt as ne, Qt as L, Rt as re, S as R, Ut as z, Vt as B, Z as ie, Zt as V, _ as H, _t as U, b as W, c as G, d as K, f as q, g as J, h as Y, in as X, l as ae, m as oe, p as se, pn as Z, pt as ce, rt as le, s as ue, st as de, tt as Q, u as fe, ut as pe, v as me, vt as he, x as ge, xn as _e, y as ve, zn as ye } from "./features-D-2kVhHY.js";
3
- import { C as be, S as xe } from "./icons-fZoyKV_s.js";
4
- import { a as Se, c as Ce, i as we, l as Te, n as Ee, o as De, r as Oe, s as ke, t as Ae } from "./styles-CVUvPdKD.js";
1
+ import { $ as e, A as t, H as n, J as r, M as i, N as a, P as o, V as s, Z as c, _ as l, b as u, ct as d, f, g as p, h as m, it as h, j as g, l as _, m as v, n as y, ot as b, p as x, s as S, st as C, u as w, v as T, x as E, y as D, z as ee } from "./draggable-J_1CPXYc.js";
2
+ import { $t as O, A as k, At as A, Bn as j, Dn as M, Dt as N, E as P, Et as F, Ft as I, Ht as L, It as R, Nt as z, Qt as B, Rt as te, S as V, Sn as H, Ut as U, Vt as ne, Z as W, _ as G, _t as K, an as q, b as re, c as ie, d as ae, en as oe, f as J, g as Y, h as X, l as se, m as ce, mn as Z, p as le, pt as ue, rt as de, s as fe, st as pe, tt as Q, u as me, ut as he, v as ge, vt as _e, x as ve, y as ye } from "./features-_ar9QbVv.js";
3
+ import { S as be, x as xe } from "./icons-CnwCLJX-.js";
4
+ import { a as Se, c as Ce, i as we, l as Te, n as Ee, o as De, r as Oe, s as ke, t as Ae, u as je } from "./styles-1uFWdD5T.js";
5
5
  import { d as $ } from "./styleConstants-lGobwiLH.js";
6
6
  //#region src/cloud/composables/useSnapshotPreview.ts
7
- function je(t) {
7
+ function Me(t) {
8
8
  let { authManager: n, editor: i, history: a, conditionPreview: o, autoSave: s, onError: l } = t, u = e(null), d = c(null), p = c(null), m = !1;
9
9
  r(() => {
10
10
  m = !0;
11
11
  });
12
12
  let h = f(() => d.value !== null), g = f(() => u.value?.snapshots.value ?? []), _ = f(() => u.value?.isLoading.value ?? !1), v = f(() => u.value?.isRestoring.value ?? !1);
13
13
  function y() {
14
- i.state.template?.id && !u.value && (u.value = q({
14
+ i.state.template?.id && !u.value && (u.value = J({
15
15
  authManager: n,
16
16
  templateId: i.state.template.id,
17
17
  onRestore: b,
@@ -33,6 +33,8 @@ function je(t) {
33
33
  async function S() {
34
34
  if (!(!d.value || !u.value)) try {
35
35
  if (await u.value.restoreSnapshot(d.value.id), m || (await u.value.loadSnapshots(), m)) return;
36
+ } catch (e) {
37
+ throw !m && p.value && i.setContent(p.value, !1), e;
36
38
  } finally {
37
39
  m || (d.value = null, p.value = null, s?.resume());
38
40
  }
@@ -61,7 +63,7 @@ function je(t) {
61
63
  }
62
64
  //#endregion
63
65
  //#region src/cloud/composables/useCloudPanelState.ts
64
- function Me() {
66
+ function Ne() {
65
67
  let e = c(null), t = f({
66
68
  get: () => e.value === "ai-chat",
67
69
  set: (t) => e.value = t ? "ai-chat" : null
@@ -84,7 +86,7 @@ function Me() {
84
86
  function g(t) {
85
87
  l.value = !1, e.value = e.value === t ? null : t;
86
88
  }
87
- return X(u, () => {
89
+ return q(u, () => {
88
90
  l.value = !1;
89
91
  }), {
90
92
  activePanel: e,
@@ -106,10 +108,10 @@ function Me() {
106
108
  }
107
109
  //#endregion
108
110
  //#region src/cloud/composables/useCollabUndoWarning.ts
109
- function Ne(e) {
111
+ function Pe(e) {
110
112
  let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = c(!1), a = c(!1), { start: o } = Z(() => {
111
113
  a.value = !1;
112
- }, ye, { immediate: !1 });
114
+ }, j, { immediate: !1 });
113
115
  function s() {
114
116
  i.value || !t.value || n() === 0 || !r.value || (i.value = !0, a.value = !0, o());
115
117
  }
@@ -120,7 +122,7 @@ function Ne(e) {
120
122
  }
121
123
  //#endregion
122
124
  //#region src/cloud/composables/useCloudFeatureFlags.ts
123
- function Pe(e) {
125
+ function Fe(e) {
124
126
  let { planConfigInstance: t, aiConfig: n, editor: r } = e, i = f(() => t.hasFeature("ai_generation") && n.hasAnyMenuFeature.value), a = f(() => t.hasFeature("test_email")), o = f(() => !!r.state.template?.id), s = f(() => t.hasFeature("white_label")), l = f(() => t.config.value?.limits.max_templates ?? null), u = f(() => t.config.value?.template_count ?? 0), d = c(!1), p = c("idle"), m = c(""), { start: h } = Z(() => {
125
127
  p.value = "idle";
126
128
  }, 3e3, { immediate: !1 });
@@ -139,7 +141,7 @@ function Pe(e) {
139
141
  }
140
142
  //#endregion
141
143
  //#region src/cloud/composables/useCloudMediaLibrary.ts
142
- function Fe(e) {
144
+ function Ie(e) {
143
145
  let { onRequestMedia: t, mediaLibraryOpen: n, mediaLibraryAccept: i } = e, a = null;
144
146
  async function o() {
145
147
  if (t) {
@@ -174,30 +176,30 @@ function Fe(e) {
174
176
  }
175
177
  //#endregion
176
178
  //#region src/cloud/composables/useCloudInitialization.ts
177
- function Ie(e) {
178
- let { config: t, translations: n, fontsManager: r, emit: i, getCommentsSidebar: o } = e, s = c(!0), l = c(!1), u = c(null), d = !1, p = { value: null }, m = null, h = null, g = new M({
179
+ function Le(e) {
180
+ let { config: t, translations: n, fontsManager: r, emit: i, getCommentsSidebar: o } = e, s = c(!0), l = c(!1), u = c(null), d = !1, p = { value: null }, m = null, h = null, g = new P({
179
181
  ...t.auth,
180
182
  onError: t.onError
181
- }), _ = ae({
183
+ }), _ = se({
182
184
  authManager: g,
183
185
  onError: t.onError
184
- }), v = c(/* @__PURE__ */ new Map()), y = ge({
186
+ }), v = c(/* @__PURE__ */ new Map()), y = ve({
185
187
  authManager: g,
186
188
  defaultFontFamily: t.fonts?.defaultFont,
187
189
  templateDefaults: t.templateDefaults,
188
190
  onError: t.onError,
189
191
  lockedBlocks: v
190
- }), b = oe({
192
+ }), b = ce({
191
193
  authManager: g,
192
194
  onError: t.onError
193
195
  });
194
- t.mcp?.enabled && ue({
196
+ t.mcp?.enabled && fe({
195
197
  editor: y,
196
198
  channel: b.channel,
197
199
  onOperation: t.mcp.onOperation
198
200
  });
199
201
  let x = null;
200
- t.collaboration?.enabled && (x = J({
202
+ t.collaboration?.enabled && (x = Y({
201
203
  authManager: g,
202
204
  editor: y,
203
205
  channel: b.channel,
@@ -208,7 +210,7 @@ function Ie(e) {
208
210
  onBlockUnlocked: t.collaboration.onBlockUnlocked
209
211
  }), ee(() => x.lockedBlocks.value, (e) => {
210
212
  v.value = e;
211
- }, { immediate: !0 }), Y(y, x));
213
+ }, { immediate: !0 }), X(y, x));
212
214
  let S = f(() => !!t.collaboration?.enabled && _.hasFeature("collaboration")), C = k({
213
215
  editor: y,
214
216
  config: {
@@ -219,7 +221,7 @@ function Ie(e) {
219
221
  mergeTags: t.mergeTags,
220
222
  displayConditions: t.displayConditions,
221
223
  onRequestMedia: null,
222
- lint: Te(t),
224
+ lint: je(t),
223
225
  onSave: () => {
224
226
  p.value?.().catch((e) => {
225
227
  t.onError?.(e);
@@ -240,13 +242,13 @@ function Ie(e) {
240
242
  keyboardOptions: { onBeforeUndo: () => h?.showCollabUndoWarning() },
241
243
  editorRoot: e.editorRoot,
242
244
  containerEl: e.containerEl
243
- }), w = Ne({
245
+ }), w = Pe({
244
246
  isCollaborationEnabled: S,
245
247
  getCollaboratorCount: () => x?.collaborators.value.length ?? 0,
246
248
  canUndo: C.history.canUndo
247
249
  });
248
250
  h = w;
249
- let T = je({
251
+ let T = Me({
250
252
  authManager: g,
251
253
  editor: y,
252
254
  history: C.history,
@@ -255,32 +257,32 @@ function Ie(e) {
255
257
  onError: t.onError
256
258
  });
257
259
  m = T;
258
- let E = Me(), D = W(t.ai), A = Pe({
260
+ let E = Ne(), D = re(t.ai), A = Fe({
259
261
  planConfigInstance: _,
260
262
  aiConfig: D,
261
263
  editor: y
262
- }), j = Fe({
264
+ }), j = Ie({
263
265
  onRequestMedia: t.onRequestMedia,
264
266
  mediaLibraryOpen: E.mediaLibraryOpen,
265
267
  mediaLibraryAccept: E.mediaLibraryAccept
266
268
  });
267
- ie({
269
+ W({
268
270
  onBlockMove: y.moveBlock,
269
271
  onBlockAdd: y.addBlock
270
272
  });
271
- let N = fe({
273
+ let M = me({
272
274
  authManager: g,
273
275
  getFontsConfig: () => t.fonts,
274
276
  canUseCustomFonts: () => _.hasFeature("custom_fonts")
275
- }), P = K({
277
+ }), N = ae({
276
278
  authManager: g,
277
279
  getTemplateId: () => y.state.template?.id ?? null,
278
280
  save: () => y.save(),
279
- exportHtml: (e) => N.exportHtml(e),
281
+ exportHtml: (e) => M.exportHtml(e),
280
282
  onError: t.onError,
281
283
  isAuthReady: l,
282
284
  onBeforeTestEmail: t.onBeforeTestEmail
283
- }), F = me({
285
+ }), F = ge({
284
286
  authManager: g,
285
287
  getTemplateId: () => y.state.template?.id ?? null,
286
288
  getSocketId: () => b.getSocketId(),
@@ -289,55 +291,55 @@ function Ie(e) {
289
291
  isAuthReady: l,
290
292
  hasCommentingFeature: () => t.commenting !== !1 && _.hasFeature("commenting")
291
293
  });
292
- H({
294
+ G({
293
295
  comments: F,
294
296
  channel: b.channel
295
297
  });
296
- let I = se({
298
+ let I = le({
297
299
  authManager: g,
298
300
  onError: t.onError
299
- }), R = c(!1), U = c(null), q = c(!1), X = ve({
301
+ }), L = c(!1), V = c(null), H = c(!1), K = ye({
300
302
  authManager: g,
301
303
  getTemplateId: () => y.state.template?.id ?? null
302
304
  });
303
- function Z(e) {
305
+ function q(e) {
304
306
  E.commentsOpen.value = !0, queueMicrotask(() => {
305
307
  o()?.filterByBlock(e);
306
308
  });
307
309
  }
308
- a(V, j.handleRequestMedia), a(re, g), a(te, D), a(z, F), a(L, I), a(O, X), a(B, {
310
+ a(B, j.handleRequestMedia), a(te, g), a(R, D), a(U, F), a(O, I), a(oe, K), a(ne, {
309
311
  plan: _,
310
312
  ai: D,
311
313
  comments: {
312
314
  getBlockCount: (e) => F.commentCountByBlock.value.get(e) ?? 0,
313
- openForBlock: Z
315
+ openForBlock: q
314
316
  },
315
317
  savedModules: {
316
318
  openSaveDialog: (e) => {
317
- U.value = e ?? null, R.value = !0;
319
+ V.value = e ?? null, L.value = !0;
318
320
  },
319
321
  openBrowser: () => {
320
- q.value = !0;
322
+ H.value = !0;
321
323
  },
322
324
  moduleCount: f(() => I.modules.value.length)
323
325
  }
324
326
  });
325
- function ce(e) {
327
+ function J(e) {
326
328
  _.hasFeature("theme_customization") && (C.themeOverrides.value = e);
327
329
  }
328
- function le(e) {
330
+ function Z(e) {
329
331
  y.setUiTheme(e);
330
332
  }
331
- async function de() {
333
+ async function ue() {
332
334
  s.value = !0, u.value = null;
333
335
  try {
334
336
  if (await g.initialize(), d) return;
335
337
  l.value = !0;
336
- let e = await G({ authManager: g });
338
+ let e = await ie({ authManager: g });
337
339
  if (d) return;
338
340
  if (!e.api.ok) throw Error("Health check failed: API is not reachable");
339
341
  if (!e.auth.ok) throw Error(`Health check failed: authentication error${e.auth.error ? ` - ${e.auth.error}` : ""}`);
340
- if (e.websocket.ok || ne.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), d) return;
342
+ if (e.websocket.ok || z.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), d) return;
341
343
  r.setCustomFontsEnabled(_.hasFeature("custom_fonts")), t.customBlocks?.length && _.hasFeature("custom_blocks") && C.registerCustomBlocks(t.customBlocks), t.theme && _.hasFeature("theme_customization") && (C.themeOverrides.value = t.theme), t.modules !== !1 && _.hasFeature("saved_modules") && I.loadModules(), i("ready");
342
344
  } catch (e) {
343
345
  if (d) return;
@@ -347,7 +349,7 @@ function Ie(e) {
347
349
  d || (s.value = !1);
348
350
  }
349
351
  }
350
- function Q() {
352
+ function de() {
351
353
  d = !0, r.cleanupFontLinks(), b.disconnect(), C.destroy(), t.onUnmount?.();
352
354
  }
353
355
  return {
@@ -365,30 +367,30 @@ function Ie(e) {
365
367
  aiConfig: D,
366
368
  featureFlags: A,
367
369
  mediaLib: j,
368
- exporter: N,
369
- testEmail: P,
370
+ exporter: M,
371
+ testEmail: N,
370
372
  commentsInstance: F,
371
373
  savedModulesHeadless: I,
372
- scoringInstance: X,
374
+ scoringInstance: K,
373
375
  panelState: E,
374
376
  snapshotPreview: T,
375
377
  collabWarning: w,
376
- showSaveModuleDialog: R,
377
- showModuleBrowserModal: q,
378
- saveModulePreSelectedBlockId: U,
378
+ showSaveModuleDialog: L,
379
+ showModuleBrowserModal: H,
380
+ saveModulePreSelectedBlockId: V,
379
381
  onSaveHook: p,
380
- initialize: de,
381
- destroy: Q,
382
- setThemeOverrides: ce,
383
- setUiTheme: le,
384
- openCommentsForBlock: Z
382
+ initialize: ue,
383
+ destroy: de,
384
+ setThemeOverrides: J,
385
+ setUiTheme: Z,
386
+ openCommentsForBlock: q
385
387
  };
386
388
  }
387
389
  //#endregion
388
390
  //#region src/utils/preRenderCustomBlocks.ts
389
- async function Le(e, t) {
391
+ async function Re(e, t) {
390
392
  let n = async (e) => {
391
- if (N(e)) {
393
+ if (M(e)) {
392
394
  let n = e;
393
395
  try {
394
396
  n.renderedHtml = await t.renderCustomBlock(n);
@@ -405,10 +407,10 @@ async function Le(e, t) {
405
407
  }
406
408
  //#endregion
407
409
  //#region src/cloud/composables/useCloudLifecycle.ts
408
- function Re(e) {
410
+ function ze(e) {
409
411
  let { config: t, editor: n, websocket: r, planConfigInstance: i, snapshotPreview: a, core: o, exporter: s, featureFlags: c, isDestroyed: l } = e;
410
412
  function u() {
411
- return R(i.config.value.websocket);
413
+ return V(i.config.value.websocket);
412
414
  }
413
415
  async function d(e) {
414
416
  let i = await n.create(e);
@@ -421,7 +423,7 @@ function Re(e) {
421
423
  async function p() {
422
424
  c.isSaveExporting.value = !0, c.saveStatus.value = "idle";
423
425
  try {
424
- if (await Le(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
426
+ if (await Re(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
425
427
  let e = await n.save();
426
428
  if (l()) throw Error("Component unmounted during save");
427
429
  a.initSnapshotHistory(), a.snapshotHistoryInstance.value?.loadSnapshots();
@@ -448,7 +450,7 @@ function Re(e) {
448
450
  }
449
451
  //#endregion
450
452
  //#region src/cloud/composables/useCloudSaveGate.ts
451
- function ze(e) {
453
+ function Be(e) {
452
454
  let t = c(!1), n = null, r = f(() => e.planConfig.value?.accessibility?.blockOnError === !0), i = f(() => r.value ? e.issues.value.filter((e) => e.severity === "error") : []), a = f(() => i.value.length > 0);
453
455
  async function o(e) {
454
456
  return a.value ? (n = e, t.value = !0, !1) : (await e(), !0);
@@ -471,7 +473,7 @@ function ze(e) {
471
473
  }
472
474
  //#endregion
473
475
  //#region src/cloud/components/CloudSaveGateModal.vue?vue&type=script&setup=true&lang.ts
474
- var Be = ["aria-label"], Ve = { 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)]" }, He = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Ue = { class: "tpl:m-0 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-text)]" }, We = { class: "tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ge = { 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" }, Ke = { class: "tpl:text-xs tpl:text-[var(--tpl-text)]" }, qe = { class: "tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Je = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, Ye = /* @__PURE__ */ E({
476
+ var Ve = ["aria-label"], He = { 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)]" }, Ue = { class: "tpl:flex tpl:items-center tpl:gap-2" }, We = { class: "tpl:m-0 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Ge = { class: "tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ke = { 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" }, qe = { class: "tpl:text-xs tpl:text-[var(--tpl-text)]" }, Je = { class: "tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Ye = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, Xe = /* @__PURE__ */ E({
475
477
  __name: "CloudSaveGateModal",
476
478
  props: {
477
479
  open: { type: Boolean },
@@ -493,18 +495,18 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
493
495
  "aria-label": h(r).saveGate.title,
494
496
  class: "tpl:fixed tpl:inset-0 tpl:z-50 tpl:flex tpl:items-center tpl:justify-center tpl:bg-black/40 tpl:p-6",
495
497
  onClick: a[2] ||= _((e) => n("cancel"), ["self"])
496
- }, [x("div", Ve, [
497
- x("header", He, [D(h(de), {
498
+ }, [x("div", He, [
499
+ x("header", Ue, [D(h(pe), {
498
500
  size: 18,
499
501
  "stroke-width": 2,
500
502
  class: "tpl:text-[var(--tpl-warning)]"
501
- }), x("h2", Ue, d(h(r).saveGate.title), 1)]),
502
- x("p", We, d(h(r).saveGate.body), 1),
503
- x("ul", Ge, [(i(!0), p(w, null, o(e.issues, (e) => (i(), p("li", {
503
+ }), x("h2", We, d(h(r).saveGate.title), 1)]),
504
+ x("p", Ge, d(h(r).saveGate.body), 1),
505
+ x("ul", Ke, [(i(!0), p(w, null, o(e.issues, (e) => (i(), p("li", {
504
506
  key: `${e.ruleId}-${e.blockId ?? "template"}`,
505
507
  class: "tpl:flex tpl:flex-col tpl:gap-0.5 tpl:rounded tpl:px-2 tpl:py-1.5"
506
- }, [x("span", Ke, d(e.message), 1), x("span", qe, d(e.ruleId), 1)]))), 128))]),
507
- x("footer", Je, [x("button", {
508
+ }, [x("span", qe, d(e.message), 1), x("span", Je, d(e.ruleId), 1)]))), 128))]),
509
+ x("footer", Ye, [x("button", {
508
510
  type: "button",
509
511
  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)]",
510
512
  onClick: a[0] ||= (e) => n("cancel")
@@ -513,11 +515,11 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
513
515
  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",
514
516
  onClick: a[1] ||= (e) => n("confirm")
515
517
  }, d(h(r).saveGate.confirm), 1)])
516
- ])], 8, Be)) : m("", !0)]),
518
+ ])], 8, Ve)) : m("", !0)]),
517
519
  _: 1
518
520
  }));
519
521
  }
520
- }), Xe = {
522
+ }), Ze = {
521
523
  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",
522
524
  style: {
523
525
  "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)",
@@ -526,24 +528,24 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
526
528
  "box-shadow": "var(--tpl-shadow-md)",
527
529
  "border-bottom": "1px solid var(--tpl-border)"
528
530
  }
529
- }, Ze = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, Qe = {
531
+ }, Qe = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, $e = {
530
532
  key: 0,
531
533
  class: "tpl:text-xs tpl:opacity-60 tpl:text-[var(--tpl-text-muted)]"
532
- }, $e = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, et = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, tt = ["data-tooltip"], nt = {
534
+ }, et = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, tt = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, nt = ["data-tooltip"], rt = {
533
535
  key: 1,
534
536
  "aria-live": "polite",
535
537
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success)]"
536
- }, rt = {
538
+ }, it = {
537
539
  key: 2,
538
540
  "aria-live": "polite",
539
541
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
540
- }, it = ["aria-label", "aria-expanded"], at = {
542
+ }, at = ["aria-label", "aria-expanded"], ot = {
541
543
  key: 0,
542
544
  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)]"
543
- }, ot = ["aria-expanded"], st = {
545
+ }, st = ["aria-expanded"], ct = {
544
546
  key: 0,
545
547
  class: "tpl:absolute tpl:right-0 tpl:top-full tpl:z-50 tpl:mt-1 tpl:origin-top-right"
546
- }, ct = ["disabled"], lt = ["disabled"], ut = /* @__PURE__ */ E({
548
+ }, lt = ["disabled"], ut = ["disabled"], dt = /* @__PURE__ */ E({
547
549
  __name: "CloudHeader",
548
550
  props: {
549
551
  editor: {},
@@ -561,13 +563,13 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
561
563
  },
562
564
  emits: ["save"],
563
565
  setup(e) {
564
- let t = u(() => import("./CollaboratorBar-C4CFs5EJ.js")), n = u(() => import("./features-D-2kVhHY.js").then((e) => e.r)), r = u(() => import("./AiFeatureMenu-Dayzk2H7.js")), { t: a, format: o } = Q();
565
- return (c, l) => (i(), p("header", Xe, [
566
- x("div", Ze, [e.featureFlags.templateLimit.value === null ? m("", !0) : (i(), p("span", Qe, d(h(o)(h(a).header.templatesUsed, {
566
+ let t = u(() => import("./CollaboratorBar-CKW7jOW4.js")), n = u(() => import("./features-_ar9QbVv.js").then((e) => e.r)), r = u(() => import("./AiFeatureMenu-BeOyHAoZ.js")), { t: a, format: o } = Q();
567
+ return (c, l) => (i(), p("header", Ze, [
568
+ x("div", Qe, [e.featureFlags.templateLimit.value === null ? m("", !0) : (i(), p("span", $e, d(h(o)(h(a).header.templatesUsed, {
567
569
  used: e.featureFlags.templateCount.value,
568
570
  max: e.featureFlags.templateLimit.value
569
571
  })), 1))]),
570
- x("div", $e, [
572
+ x("div", et, [
571
573
  D(Se, {
572
574
  viewport: e.editor.state.viewport,
573
575
  onChange: e.editor.setViewport
@@ -600,19 +602,19 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
600
602
  "onNavigate"
601
603
  ])) : m("", !0)
602
604
  ]),
603
- x("div", et, [
605
+ x("div", tt, [
604
606
  e.featureFlags.saveStatus.value === "error" ? (i(), p("div", {
605
607
  key: 0,
606
608
  "aria-live": "assertive",
607
609
  class: "tpl-tooltip tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-danger)]",
608
610
  "data-tooltip": e.featureFlags.saveErrorMessage.value
609
- }, [D(h(j), {
611
+ }, [D(h(N), {
610
612
  size: 12,
611
613
  "stroke-width": 2.5
612
- }), T(" " + d(h(a).header.saveFailed), 1)], 8, tt)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", nt, [D(h(A), {
614
+ }), T(" " + d(h(a).header.saveFailed), 1)], 8, nt)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", rt, [D(h(A), {
613
615
  size: 12,
614
616
  "stroke-width": 2.5
615
- }), T(" " + d(h(a).header.saved), 1)])) : e.editor.state.isDirty ? (i(), p("div", rt, [l[4] ||= x("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), T(" " + d(h(a).header.unsaved), 1)])) : m("", !0),
617
+ }), T(" " + d(h(a).header.saved), 1)])) : e.editor.state.isDirty ? (i(), p("div", it, [l[4] ||= x("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), T(" " + d(h(a).header.unsaved), 1)])) : m("", !0),
616
618
  e.commentsInstance.isEnabled.value && e.featureFlags.hasTemplateSaved.value ? (i(), p("button", {
617
619
  key: 3,
618
620
  "aria-label": e.commentsInstance.unresolvedCount.value > 0 ? `${h(a).comments.button} (${e.commentsInstance.unresolvedCount.value})` : h(a).comments.button,
@@ -625,13 +627,13 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
625
627
  }),
626
628
  onClick: l[0] ||= (t) => e.panelState.commentsOpen.value = !e.panelState.commentsOpen.value
627
629
  }, [
628
- D(h(U), {
630
+ D(h(K), {
629
631
  size: 16,
630
632
  "stroke-width": 2
631
633
  }),
632
634
  T(" " + d(h(a).comments.button) + " ", 1),
633
- e.commentsInstance.unresolvedCount.value > 0 && !e.panelState.commentsOpen.value ? (i(), p("span", at, d(e.commentsInstance.unresolvedCount.value), 1)) : m("", !0)
634
- ], 14, it)) : m("", !0),
635
+ e.commentsInstance.unresolvedCount.value > 0 && !e.panelState.commentsOpen.value ? (i(), p("span", ot, d(e.commentsInstance.unresolvedCount.value), 1)) : m("", !0)
636
+ ], 14, at)) : m("", !0),
635
637
  e.featureFlags.canUseAiGeneration.value && e.featureFlags.hasTemplateSaved.value ? (i(), p("div", {
636
638
  key: 4,
637
639
  ref: (t) => e.panelState.aiMenuRef.value = t,
@@ -640,11 +642,11 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
640
642
  "aria-expanded": e.panelState.aiMenuOpen.value,
641
643
  class: b(["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", e.panelState.aiButtonActive.value ? "tpl-ai-btn--active" : "tpl-ai-btn--idle"]),
642
644
  onClick: l[1] ||= _((...t) => e.panelState.toggleAiMenu && e.panelState.toggleAiMenu(...t), ["stop"])
643
- }, [D(h(pe), {
645
+ }, [D(h(he), {
644
646
  size: 16,
645
647
  "stroke-width": 2,
646
648
  class: "tpl-ai-btn-icon"
647
- }), T(" " + d(h(a).aiChat.button), 1)], 10, ot), D(y, {
649
+ }), T(" " + d(h(a).aiChat.button), 1)], 10, st), D(y, {
648
650
  "enter-active-class": "tpl:transition-all tpl:duration-150 tpl:ease-out",
649
651
  "enter-from-class": "tpl:scale-95 tpl:opacity-0",
650
652
  "enter-to-class": "tpl:scale-100 tpl:opacity-100",
@@ -652,7 +654,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
652
654
  "leave-from-class": "tpl:scale-100 tpl:opacity-100",
653
655
  "leave-to-class": "tpl:scale-95 tpl:opacity-0"
654
656
  }, {
655
- default: s(() => [e.panelState.aiMenuOpen.value ? (i(), p("div", st, [D(h(r), {
657
+ default: s(() => [e.panelState.aiMenuOpen.value ? (i(), p("div", ct, [D(h(r), {
656
658
  "active-feature": e.panelState.activeAiFeature.value,
657
659
  onSelect: e.panelState.handleAiFeatureSelect
658
660
  }, null, 8, ["active-feature", "onSelect"])])) : m("", !0)]),
@@ -668,16 +670,16 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
668
670
  },
669
671
  disabled: e.testEmail.isSending.value || !e.featureFlags.hasTemplateSaved.value,
670
672
  onClick: l[2] ||= (t) => e.panelState.testEmailModalOpen.value = !0
671
- }, [e.testEmail.isSending.value ? (i(), v(h(he), {
673
+ }, [e.testEmail.isSending.value ? (i(), v(h(_e), {
672
674
  key: 1,
673
675
  class: "tpl-spinner",
674
676
  size: 16,
675
677
  "stroke-width": 2
676
- })) : (i(), v(h(ce), {
678
+ })) : (i(), v(h(ue), {
677
679
  key: 0,
678
680
  size: 16,
679
681
  "stroke-width": 2
680
- })), T(" " + d(h(a).testEmail.button), 1)], 10, ct)) : m("", !0),
682
+ })), T(" " + d(h(a).testEmail.button), 1)], 10, lt)) : m("", !0),
681
683
  x("button", {
682
684
  class: b(h($)),
683
685
  style: {
@@ -687,7 +689,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
687
689
  },
688
690
  disabled: e.isSaveDisabled,
689
691
  onClick: l[3] ||= (e) => c.$emit("save")
690
- }, [e.isSaving ? (i(), v(h(he), {
692
+ }, [e.isSaving ? (i(), v(h(_e), {
691
693
  key: 1,
692
694
  class: "tpl-spinner",
693
695
  size: 16,
@@ -696,11 +698,11 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
696
698
  key: 0,
697
699
  size: 16,
698
700
  "stroke-width": 2
699
- })), T(" " + d(e.isSaving ? h(a).header.saving : h(a).header.save), 1)], 10, lt)
701
+ })), T(" " + d(e.isSaving ? h(a).header.saving : h(a).header.save), 1)], 10, ut)
700
702
  ])
701
703
  ]));
702
704
  }
703
- }), dt = /* @__PURE__ */ E({
705
+ }), ft = /* @__PURE__ */ E({
704
706
  __name: "CloudPanels",
705
707
  props: {
706
708
  config: {},
@@ -723,9 +725,9 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
723
725
  "module-insert"
724
726
  ],
725
727
  setup(e, { expose: t, emit: n }) {
726
- let r = u(() => import("./features-D-2kVhHY.js").then((e) => e.o)), a = u(() => import("./features-D-2kVhHY.js").then((e) => e.a)), o = u(() => import("./features-D-2kVhHY.js").then((e) => e.i)), s = u(() => import("./features-D-2kVhHY.js").then((e) => e.n)), l = u(() => import("./features-D-2kVhHY.js").then((e) => e.t)), d = u(() => import("./SaveModuleDialog-BrtDXzIz.js")), f = u(() => import("./ModuleBrowserModal-Cgjz4xAz.js")), g = u(async () => {
728
+ let r = u(() => import("./features-_ar9QbVv.js").then((e) => e.o)), a = u(() => import("./features-_ar9QbVv.js").then((e) => e.a)), o = u(() => import("./features-_ar9QbVv.js").then((e) => e.i)), s = u(() => import("./features-_ar9QbVv.js").then((e) => e.n)), l = u(() => import("./features-_ar9QbVv.js").then((e) => e.t)), d = u(() => import("./SaveModuleDialog-Felfmkcj.js")), f = u(() => import("./ModuleBrowserModal-D51w942J.js")), g = u(async () => {
727
729
  try {
728
- return (await import("./src-ftxPuuQh.js")).MediaLibraryModal;
730
+ return (await import("./src-DfMSYqvE.js")).MediaLibraryModal;
729
731
  } catch {
730
732
  throw Error("[Templatical] Cloud media library requires the optional peer dependency '@templatical/media-library'. Please install it.");
731
733
  }
@@ -805,23 +807,23 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
805
807
  ])
806
808
  ], 64));
807
809
  }
808
- }), ft = {
810
+ }), pt = {
809
811
  key: 0,
810
812
  class: "tpl-loading tpl:absolute tpl:inset-0 tpl:z-overlay tpl:flex tpl:flex-col tpl:bg-[var(--tpl-bg)]"
811
- }, pt = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, mt = { 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)]" }, ht = /* @__PURE__ */ E({
813
+ }, mt = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, ht = { 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)]" }, gt = /* @__PURE__ */ E({
812
814
  __name: "CloudLoadingOverlay",
813
815
  props: { visible: { type: Boolean } },
814
816
  setup(e) {
815
- return (t, n) => e.visible ? (i(), p("div", ft, [n[1] ||= l("<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), x("div", pt, [x("div", mt, [(i(), p(w, null, o(5, (e) => x("div", {
817
+ return (t, n) => e.visible ? (i(), p("div", pt, [n[1] ||= l("<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), x("div", mt, [x("div", ht, [(i(), p(w, null, o(5, (e) => x("div", {
816
818
  key: e,
817
819
  class: "tpl-shimmer tpl:size-7 tpl:rounded-[var(--tpl-radius-sm)]"
818
820
  })), 64))]), n[0] ||= l("<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)])])) : m("", !0);
819
821
  }
820
- }), gt = {
822
+ }), _t = {
821
823
  key: 0,
822
824
  role: "alert",
823
825
  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)]"
824
- }, _t = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, vt = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:text-center" }, yt = { class: "tpl:text-lg tpl:font-semibold tpl:text-[var(--tpl-text)]" }, bt = { class: "tpl:max-w-md tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, xt = /* @__PURE__ */ E({
826
+ }, vt = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, yt = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:text-center" }, bt = { class: "tpl:text-lg tpl:font-semibold tpl:text-[var(--tpl-text)]" }, xt = { class: "tpl:max-w-md tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, St = /* @__PURE__ */ E({
825
827
  __name: "CloudErrorOverlay",
826
828
  props: {
827
829
  error: {},
@@ -836,13 +838,13 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
836
838
  function o(e) {
837
839
  return "isNotFound" in e && !!e.isNotFound;
838
840
  }
839
- return (t, s) => e.visible && e.error ? (i(), p("div", gt, [
840
- x("div", _t, [D(h(j), {
841
+ return (t, s) => e.visible && e.error ? (i(), p("div", _t, [
842
+ x("div", vt, [D(h(N), {
841
843
  size: 32,
842
844
  "stroke-width": 1.5,
843
845
  class: "tpl:text-[var(--tpl-danger)]"
844
846
  })]),
845
- x("div", vt, [x("h2", yt, d(h(r).error.title), 1), x("p", bt, d(a(e.error)), 1)]),
847
+ x("div", yt, [x("h2", bt, d(h(r).error.title), 1), x("p", xt, d(a(e.error)), 1)]),
846
848
  o(e.error) ? m("", !0) : (i(), p("button", {
847
849
  key: 0,
848
850
  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)]",
@@ -850,20 +852,20 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
850
852
  }, d(h(r).error.retry), 1))
851
853
  ])) : m("", !0);
852
854
  }
853
- }), St = {
855
+ }), Ct = {
854
856
  key: 0,
855
857
  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)]"
856
- }, Ct = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, wt = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Tt = /* @__PURE__ */ E({
858
+ }, wt = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, Tt = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Et = /* @__PURE__ */ E({
857
859
  __name: "SnapshotPreviewBanner",
858
860
  props: { visible: { type: Boolean } },
859
861
  emits: ["cancel", "confirm"],
860
862
  setup(e, { emit: t }) {
861
863
  let n = t, { t: r } = Q();
862
- return (t, a) => e.visible ? (i(), p("div", St, [x("div", Ct, [D(h(P), {
864
+ return (t, a) => e.visible ? (i(), p("div", Ct, [x("div", wt, [D(h(F), {
863
865
  size: 18,
864
866
  "stroke-width": 2,
865
867
  class: "tpl:text-[var(--tpl-primary)]"
866
- }), x("span", null, d(h(r).snapshotPreview.message), 1)]), x("div", wt, [x("button", {
868
+ }), x("span", null, d(h(r).snapshotPreview.message), 1)]), x("div", Tt, [x("button", {
867
869
  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)]",
868
870
  style: { "background-color": "transparent" },
869
871
  onClick: a[0] ||= (e) => n("cancel")
@@ -872,7 +874,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
872
874
  onClick: a[1] ||= (e) => n("confirm")
873
875
  }, d(h(r).snapshotPreview.restore), 1)])])) : m("", !0);
874
876
  }
875
- }), Et = {
877
+ }), Dt = {
876
878
  key: 0,
877
879
  role: "status",
878
880
  "aria-live": "polite",
@@ -882,14 +884,14 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
882
884
  color: "var(--tpl-text)",
883
885
  border: "1px solid var(--tpl-warning)"
884
886
  }
885
- }, Dt = /* @__PURE__ */ E({
887
+ }, Ot = /* @__PURE__ */ E({
886
888
  __name: "CollabUndoToast",
887
889
  props: { visible: { type: Boolean } },
888
890
  setup(e) {
889
- let { t } = F();
890
- return (n, r) => e.visible ? (i(), p("div", Et, d(h(t).history.collabWarning), 1)) : m("", !0);
891
+ let { t } = I();
892
+ return (n, r) => e.visible ? (i(), p("div", Dt, d(h(t).history.collabWarning), 1)) : m("", !0);
891
893
  }
892
- }), Ot = ["data-tpl-theme"], kt = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, At = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, jt = ["aria-label"], Mt = /* @__PURE__ */ le(/* @__PURE__ */ E({
894
+ }), kt = ["data-tpl-theme"], At = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, jt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, Mt = ["aria-label"], Nt = /* @__PURE__ */ de(/* @__PURE__ */ E({
893
895
  __name: "CloudEditor",
894
896
  props: {
895
897
  config: {},
@@ -901,8 +903,8 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
901
903
  emits: ["ready"],
902
904
  setup(e, { expose: r, emit: o }) {
903
905
  let l = e;
904
- a(I, l.cloudTranslations);
905
- let u = o, f = c(null), _ = c(null), w = Ie({
906
+ a(L, l.cloudTranslations);
907
+ let u = o, f = c(null), _ = c(null), w = Le({
906
908
  config: l.config,
907
909
  translations: l.translations,
908
910
  fontsManager: l.fontsManager,
@@ -910,30 +912,35 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
910
912
  getCommentsSidebar: () => f.value ? { filterByBlock: f.value.filterCommentsByBlock } : null,
911
913
  editorRoot: l.shadowRoot,
912
914
  containerEl: _
913
- }), { isInitializing: E, isAuthReady: ee, initError: O, planConfigInstance: k, websocket: A, collaboration: j, isCollaborationEnabled: M, editor: N, core: P, featureFlags: F, mediaLib: te, exporter: ne, testEmail: L, commentsInstance: re, savedModulesHeadless: R, panelState: z, snapshotPreview: B, collabWarning: ie, showSaveModuleDialog: V, showModuleBrowserModal: H, saveModulePreSelectedBlockId: U, setThemeOverrides: W, setUiTheme: G } = w;
914
- async function K(e) {
915
+ }), { isInitializing: E, isAuthReady: ee, initError: O, planConfigInstance: k, websocket: A, collaboration: j, isCollaborationEnabled: M, editor: N, core: P, featureFlags: F, mediaLib: I, exporter: R, testEmail: z, commentsInstance: B, savedModulesHeadless: te, panelState: V, snapshotPreview: U, collabWarning: ne, showSaveModuleDialog: W, showModuleBrowserModal: G, saveModulePreSelectedBlockId: K, setThemeOverrides: q, setUiTheme: re } = w;
916
+ async function ie(e) {
917
+ try {
918
+ await z.sendTestEmail(e), V.testEmailModalOpen.value = !1;
919
+ } catch {}
920
+ }
921
+ async function ae() {
915
922
  try {
916
- await L.sendTestEmail(e), z.testEmailModalOpen.value = !1;
923
+ await U.confirmRestoreSnapshot();
917
924
  } catch {}
918
925
  }
919
- function q(e, t) {
926
+ function oe(e, t) {
920
927
  for (let n = 0; n < e.content.length; n++) {
921
- let r = _e(e.content[n]), i = t === void 0 ? void 0 : t + n;
928
+ let r = H(e.content[n]), i = t === void 0 ? void 0 : t + n;
922
929
  N.addBlock(r, void 0, void 0, i);
923
930
  }
924
- H.value = !1;
931
+ G.value = !1;
925
932
  }
926
- let J = Re({
933
+ let J = ze({
927
934
  config: l.config,
928
935
  editor: N,
929
936
  websocket: A,
930
937
  planConfigInstance: k,
931
- snapshotPreview: B,
938
+ snapshotPreview: U,
932
939
  core: P,
933
- exporter: ne,
940
+ exporter: R,
934
941
  featureFlags: F,
935
942
  isDestroyed: w.isDestroyed
936
- }), Y = ze({
943
+ }), Y = Be({
937
944
  issues: P.templateLint ? P.templateLint.issues : c([]),
938
945
  planConfig: k.config
939
946
  });
@@ -947,12 +954,12 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
947
954
  }), r({
948
955
  getContent: () => N.content.value,
949
956
  setContent: (e) => N.setContent(e),
950
- setTheme: G,
951
- setThemeOverrides: W,
957
+ setTheme: re,
958
+ setThemeOverrides: q,
952
959
  create: J.createTemplate,
953
960
  load: J.loadTemplate,
954
961
  save: J.saveTemplate,
955
- sendTestEmail: L.sendTestEmail
962
+ sendTestEmail: z.sendTestEmail
956
963
  }), (t, r) => (i(), p("div", {
957
964
  ref_key: "rootEl",
958
965
  ref: _,
@@ -960,6 +967,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
960
967
  "data-tpl-theme": h(P).resolvedTheme.value,
961
968
  style: C(h(P).themeStyles.value)
962
969
  }, [
970
+ D(Ce),
963
971
  D(y, {
964
972
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
965
973
  "enter-from-class": "tpl:opacity-100",
@@ -968,7 +976,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
968
976
  "leave-from-class": "tpl:opacity-100",
969
977
  "leave-to-class": "tpl:opacity-0"
970
978
  }, {
971
- default: s(() => [D(ht, { visible: h(E) || h(N).state.isLoading }, null, 8, ["visible"])]),
979
+ default: s(() => [D(gt, { visible: h(E) || h(N).state.isLoading }, null, 8, ["visible"])]),
972
980
  _: 1
973
981
  }),
974
982
  D(y, {
@@ -979,7 +987,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
979
987
  "leave-from-class": "tpl:opacity-100",
980
988
  "leave-to-class": "tpl:opacity-0"
981
989
  }, {
982
- default: s(() => [D(xt, {
990
+ default: s(() => [D(St, {
983
991
  error: h(O),
984
992
  visible: !!h(O) && !h(E),
985
993
  onRetry: h(w).initialize
@@ -990,14 +998,14 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
990
998
  ])]),
991
999
  _: 1
992
1000
  }),
993
- D(ut, {
1001
+ D(dt, {
994
1002
  editor: h(N),
995
1003
  core: h(P),
996
1004
  "feature-flags": h(F),
997
- "panel-state": h(z),
998
- "snapshot-preview": h(B),
999
- "comments-instance": h(re),
1000
- "test-email": h(L),
1005
+ "panel-state": h(V),
1006
+ "snapshot-preview": h(U),
1007
+ "comments-instance": h(B),
1008
+ "test-email": h(z),
1001
1009
  websocket: h(A),
1002
1010
  collaboration: h(j),
1003
1011
  "is-collaboration-enabled": h(M),
@@ -1018,7 +1026,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1018
1026
  "is-saving",
1019
1027
  "is-save-disabled"
1020
1028
  ]),
1021
- D(Ye, {
1029
+ D(Xe, {
1022
1030
  open: h(Y).modalOpen.value,
1023
1031
  issues: h(Y).blockingIssues.value,
1024
1032
  onCancel: h(Y).cancel,
@@ -1029,15 +1037,11 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1029
1037
  "onCancel",
1030
1038
  "onConfirm"
1031
1039
  ]),
1032
- D(Tt, {
1033
- visible: h(B).isPreviewingSnapshot.value,
1034
- onCancel: h(B).cancelPreview,
1035
- onConfirm: h(B).confirmRestoreSnapshot
1036
- }, null, 8, [
1037
- "visible",
1038
- "onCancel",
1039
- "onConfirm"
1040
- ]),
1040
+ D(Et, {
1041
+ visible: h(U).isPreviewingSnapshot.value,
1042
+ onCancel: h(U).cancelPreview,
1043
+ onConfirm: ae
1044
+ }, null, 8, ["visible", "onCancel"]),
1041
1045
  D(y, {
1042
1046
  "enter-active-class": "tpl:transition-all tpl:duration-200 tpl:ease-out",
1043
1047
  "enter-from-class": "tpl:translate-y-[-8px] tpl:opacity-0",
@@ -1046,17 +1050,17 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1046
1050
  "leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
1047
1051
  "leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
1048
1052
  }, {
1049
- default: s(() => [D(Dt, { visible: h(ie).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1053
+ default: s(() => [D(Ot, { visible: h(ne).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1050
1054
  _: 1
1051
1055
  }),
1052
1056
  n(D(ke, null, null, 512), [[S, !h(N).state.previewMode]]),
1053
1057
  x("div", {
1054
- class: b(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [h(N).state.previewMode ? "tpl:left-0 tpl:right-0" : h(z).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", h(B).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1058
+ class: b(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [h(N).state.previewMode ? "tpl:left-0 tpl:right-0" : h(V).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", h(U).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1055
1059
  style: {
1056
1060
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
1057
1061
  "background-color": "var(--tpl-canvas-bg)"
1058
1062
  }
1059
- }, [x("div", kt, [D(y, { name: "tpl-restore-btn" }, {
1063
+ }, [x("div", At, [D(y, { name: "tpl-restore-btn" }, {
1060
1064
  default: s(() => [h(P).conditionPreview.hasHiddenBlocks.value ? (i(), p("button", {
1061
1065
  key: 0,
1062
1066
  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",
@@ -1072,7 +1076,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1072
1076
  "stroke-width": 2
1073
1077
  }), T(" " + d(h(P).t.blockSettings.restoreHiddenBlocks), 1)])) : m("", !0)]),
1074
1078
  _: 1
1075
- })]), x("main", At, [D(Ce, {
1079
+ })]), x("main", jt, [D(Te, {
1076
1080
  viewport: h(N).state.viewport,
1077
1081
  content: h(N).content.value,
1078
1082
  "selected-block-id": h(N).state.selectedBlockId,
@@ -1080,8 +1084,8 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1080
1084
  "preview-mode": h(N).state.previewMode,
1081
1085
  "locked-blocks": h(j)?.lockedBlocks.value ?? void 0,
1082
1086
  onSelectBlock: h(N).selectBlock,
1083
- onOpenAiChat: r[1] ||= (e) => h(z).aiChatOpen.value = !0,
1084
- onOpenDesignReference: r[2] ||= (e) => h(z).designReferenceOpen.value = !0
1087
+ onOpenAiChat: r[1] ||= (e) => h(V).aiChatOpen.value = !0,
1088
+ onOpenDesignReference: r[2] ||= (e) => h(V).designReferenceOpen.value = !0
1085
1089
  }, null, 8, [
1086
1090
  "viewport",
1087
1091
  "content",
@@ -1093,7 +1097,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1093
1097
  ])])], 2),
1094
1098
  e.config.branding !== !1 && !h(F).isWhiteLabeled.value ? (i(), v(Ee, {
1095
1099
  key: 0,
1096
- "position-class": [h(N).state.previewMode ? "tpl:left-0 tpl:right-0" : h(z).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1100
+ "position-class": [h(N).state.previewMode ? "tpl:left-0 tpl:right-0" : h(V).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1097
1101
  }, null, 8, ["position-class"])) : m("", !0),
1098
1102
  x("div", {
1099
1103
  class: "tpl-sr-only",
@@ -1101,11 +1105,11 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1101
1105
  "aria-live": "polite",
1102
1106
  "aria-atomic": "true",
1103
1107
  "aria-label": h(P).t.landmarks.reorderAnnouncements
1104
- }, d(h(P).keyboardReorder.announcement.value), 9, jt),
1108
+ }, d(h(P).keyboardReorder.announcement.value), 9, Mt),
1105
1109
  n(D(De, {
1106
1110
  "selected-block": h(N).selectedBlock.value,
1107
1111
  settings: h(N).content.value.settings,
1108
- "shifted-left": h(z).rightPanelOpen.value,
1112
+ "shifted-left": h(V).rightPanelOpen.value,
1109
1113
  onUpdateBlock: r[3] ||= (e) => h(N).updateBlock(h(N).selectedBlock.value.id, e),
1110
1114
  onDeleteBlock: r[4] ||= (e) => h(P).blockActions.deleteBlock(h(N).selectedBlock.value.id),
1111
1115
  onDuplicateBlock: r[5] ||= (e) => h(P).blockActions.duplicateBlock(h(N).selectedBlock.value),
@@ -1116,26 +1120,26 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1116
1120
  "shifted-left",
1117
1121
  "onUpdateSettings"
1118
1122
  ]), [[S, !h(N).state.previewMode]]),
1119
- !h(E) && h(ee) ? (i(), v(dt, {
1123
+ !h(E) && h(ee) ? (i(), v(ft, {
1120
1124
  key: 1,
1121
1125
  ref_key: "cloudPanelsRef",
1122
1126
  ref: f,
1123
1127
  config: l.config,
1124
1128
  editor: h(N),
1125
1129
  core: h(P),
1126
- "panel-state": h(z),
1130
+ "panel-state": h(V),
1127
1131
  "plan-config-instance": h(k),
1128
- "test-email": h(L),
1129
- "media-lib": h(te),
1130
- "saved-modules-headless": h(R),
1131
- "show-save-module-dialog": h(V),
1132
- "save-module-pre-selected-block-id": h(U),
1133
- "show-module-browser-modal": h(H),
1134
- "onUpdate:showSaveModuleDialog": r[6] ||= (e) => V.value = e,
1135
- "onUpdate:saveModulePreSelectedBlockId": r[7] ||= (e) => U.value = e,
1136
- "onUpdate:showModuleBrowserModal": r[8] ||= (e) => H.value = e,
1137
- onSendTestEmail: K,
1138
- onModuleInsert: q
1132
+ "test-email": h(z),
1133
+ "media-lib": h(I),
1134
+ "saved-modules-headless": h(te),
1135
+ "show-save-module-dialog": h(W),
1136
+ "save-module-pre-selected-block-id": h(K),
1137
+ "show-module-browser-modal": h(G),
1138
+ "onUpdate:showSaveModuleDialog": r[6] ||= (e) => W.value = e,
1139
+ "onUpdate:saveModulePreSelectedBlockId": r[7] ||= (e) => K.value = e,
1140
+ "onUpdate:showModuleBrowserModal": r[8] ||= (e) => G.value = e,
1141
+ onSendTestEmail: ie,
1142
+ onModuleInsert: oe
1139
1143
  }, null, 8, [
1140
1144
  "config",
1141
1145
  "editor",
@@ -1154,10 +1158,10 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1154
1158
  class: "tpl-popover-root"
1155
1159
  }, null, 512),
1156
1160
  D(Ae)
1157
- ], 14, Ot));
1161
+ ], 14, kt));
1158
1162
  }
1159
- }), [["__scopeId", "data-v-3f0f5cfa"]]);
1163
+ }), [["__scopeId", "data-v-3a8bb0e8"]]);
1160
1164
  //#endregion
1161
- export { Mt as default };
1165
+ export { Nt as default };
1162
1166
 
1163
- //# sourceMappingURL=CloudEditor-CrZk-OwQ.js.map
1167
+ //# sourceMappingURL=CloudEditor-DEA37rdW.js.map