@templatical/editor 0.8.4 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/{AiChatSidebar-CnRXeK77.js → AiChatSidebar-BUKj9n02.js} +5 -5
  2. package/dist/{AiFeatureMenu-BYDDrpj6.js → AiFeatureMenu-Co14YVJt.js} +3 -3
  3. package/dist/{BlockIssueBadge-DM-vXeD6.js → BlockIssueBadge-DThKKeub.js} +2 -2
  4. package/dist/{CloudEditor-B9a_K6Cm.js → CloudEditor-CAtw_sFC.js} +218 -217
  5. package/dist/{CollaboratorBar-HN4whzM-.js → CollaboratorBar-Bc6q0gB9.js} +2 -2
  6. package/dist/{CommentsSidebar-_llWQ4VT.js → CommentsSidebar-DiH4R4F0.js} +3 -3
  7. package/dist/{CountdownBlock-I99sC0C5.js → CountdownBlock-BTPefclD.js} +2 -2
  8. package/dist/{CountdownToolbar-BUhOUiQ9.js → CountdownToolbar-Dvr2icg-.js} +2 -2
  9. package/dist/{DesignReferenceSidebar-0GwjUn2V.js → DesignReferenceSidebar-BP32MgpS.js} +3 -3
  10. package/dist/{IssuesPanel-4MKZe8yP.js → IssuesPanel-B1LT91IX.js} +2 -2
  11. package/dist/{ModuleBrowserModal-DPZBsvqk.js → ModuleBrowserModal-CWegFoOA.js} +77 -85
  12. package/dist/{ModulePreviewCanvas-CK4j11-e.js → ModulePreviewCanvas-D9WUSSRT.js} +2 -2
  13. package/dist/{NumberWithSuffix-CxMFy_j3.js → NumberWithSuffix-CxUBW_V2.js} +2 -2
  14. package/dist/{ParagraphEditor-DBus_iHH.js → ParagraphEditor-DrAz2yot.js} +126 -126
  15. package/dist/{RichTextEditorContent-B_KCY6T1.js → RichTextEditorContent-gR169m1-.js} +4 -4
  16. package/dist/{SaveModuleDialog-DORRSbBo.js → SaveModuleDialog-DWidA0c9.js} +6 -6
  17. package/dist/{SnapshotHistory-DTMVEk03.js → SnapshotHistory-CIo2Jaw-.js} +4 -4
  18. package/dist/{TemplateScoringPanel-BIwEwFxD.js → TemplateScoringPanel-seBvvn8O.js} +2 -2
  19. package/dist/{TestEmailModal-DJmYp0Qi.js → TestEmailModal-BuCuWp3N.js} +3 -3
  20. package/dist/{TitleEditor-70d9AF1V.js → TitleEditor-BmW0uMl7.js} +67 -67
  21. package/dist/{TplModal-BEfwlvPC.js → TplModal-YFpBaiLj.js} +4 -4
  22. package/dist/{blockTypeIcons-2DRoPa3K.js → blockTypeIcons-DCkHXPhx.js} +19 -11
  23. package/dist/bundle-stats.json +8 -8
  24. package/dist/cdn/chunks/{AiFeatureMenu-CcuKnisc.js → AiFeatureMenu-Dayzk2H7.js} +2 -2
  25. package/dist/cdn/chunks/{AiFeatureMenu-CcuKnisc.js.map → AiFeatureMenu-Dayzk2H7.js.map} +1 -1
  26. package/dist/cdn/chunks/{BlockIssueBadge-Sr3is7Wr.js → BlockIssueBadge-D_US2wqo.js} +4 -4
  27. package/dist/cdn/chunks/{BlockIssueBadge-Sr3is7Wr.js.map → BlockIssueBadge-D_US2wqo.js.map} +1 -1
  28. package/dist/cdn/chunks/{CloudEditor-Bi10d2Gq.js → CloudEditor-CyJItWsK.js} +186 -185
  29. package/dist/cdn/chunks/{CloudEditor-Bi10d2Gq.js.map → CloudEditor-CyJItWsK.js.map} +1 -1
  30. package/dist/cdn/chunks/{CollaboratorBar-C0zeecvl.js → CollaboratorBar-C4CFs5EJ.js} +3 -3
  31. package/dist/cdn/chunks/{CollaboratorBar-C0zeecvl.js.map → CollaboratorBar-C4CFs5EJ.js.map} +1 -1
  32. package/dist/cdn/chunks/{CountdownBlock-CpSUUDDs.js → CountdownBlock-D6lCXhZA.js} +2 -2
  33. package/dist/cdn/chunks/{CountdownBlock-CpSUUDDs.js.map → CountdownBlock-D6lCXhZA.js.map} +1 -1
  34. package/dist/cdn/chunks/{CountdownToolbar-BBzdR-00.js → CountdownToolbar-BsGUxoRv.js} +3 -3
  35. package/dist/cdn/chunks/{CountdownToolbar-BBzdR-00.js.map → CountdownToolbar-BsGUxoRv.js.map} +1 -1
  36. package/dist/cdn/chunks/{IssuesPanel-Bthq6qoZ.js → IssuesPanel-DeHTmRDz.js} +5 -5
  37. package/dist/cdn/chunks/{IssuesPanel-Bthq6qoZ.js.map → IssuesPanel-DeHTmRDz.js.map} +1 -1
  38. package/dist/cdn/chunks/{ModuleBrowserModal-CFMd6M7E.js → ModuleBrowserModal-Cgjz4xAz.js} +8 -8
  39. package/dist/cdn/chunks/ModuleBrowserModal-Cgjz4xAz.js.map +1 -0
  40. package/dist/cdn/chunks/{ModulePreviewCanvas-BkcPcF5C.js → ModulePreviewCanvas-CeS9PsAA.js} +2 -2
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-BkcPcF5C.js.map → ModulePreviewCanvas-CeS9PsAA.js.map} +1 -1
  42. package/dist/cdn/chunks/{NumberWithSuffix-C2hH_ZIK.js → NumberWithSuffix-Bp-idLCc.js} +2 -2
  43. package/dist/cdn/chunks/{NumberWithSuffix-C2hH_ZIK.js.map → NumberWithSuffix-Bp-idLCc.js.map} +1 -1
  44. package/dist/cdn/chunks/{ParagraphEditor-BIWXLPfu.js → ParagraphEditor-fM9aFu8T.js} +116 -116
  45. package/dist/cdn/chunks/ParagraphEditor-fM9aFu8T.js.map +1 -0
  46. package/dist/cdn/chunks/{RichTextEditorContent-DU0gc4bi.js → RichTextEditorContent-DwNPE5H5.js} +4 -4
  47. package/dist/cdn/chunks/{RichTextEditorContent-DU0gc4bi.js.map → RichTextEditorContent-DwNPE5H5.js.map} +1 -1
  48. package/dist/cdn/chunks/{SaveModuleDialog-DR9EZlWe.js → SaveModuleDialog-BrtDXzIz.js} +4 -4
  49. package/dist/cdn/chunks/SaveModuleDialog-BrtDXzIz.js.map +1 -0
  50. package/dist/cdn/chunks/TitleEditor-D0rSnye0.js +175 -0
  51. package/dist/cdn/chunks/TitleEditor-D0rSnye0.js.map +1 -0
  52. package/dist/cdn/chunks/{blockTypeIcons-eVGGIdne.js → blockTypeIcons-YOEe5mDE.js} +3 -3
  53. package/dist/cdn/chunks/{blockTypeIcons-eVGGIdne.js.map → blockTypeIcons-YOEe5mDE.js.map} +1 -1
  54. package/dist/{de-ED7c5RpG.js → cdn/chunks/de-CATfXDKV.js} +14 -1
  55. package/dist/cdn/chunks/{de-ED7c5RpG.js.map → de-CATfXDKV.js.map} +1 -1
  56. package/dist/cdn/chunks/{en-ivilDUn0.js → en-CwCAgYL5.js} +13 -2
  57. package/dist/cdn/chunks/{en-ivilDUn0.js.map → en-CwCAgYL5.js.map} +1 -1
  58. package/dist/cdn/chunks/{extensions-CvCoOuWB.js → extensions-GYsbQFPr.js} +26 -23
  59. package/dist/cdn/chunks/extensions-GYsbQFPr.js.map +1 -0
  60. package/dist/cdn/chunks/{features-CUYy5kZQ.js → features-D-2kVhHY.js} +1264 -1188
  61. package/dist/cdn/chunks/features-D-2kVhHY.js.map +1 -0
  62. package/dist/cdn/chunks/{icons-C4zY5-I3.js → icons-fZoyKV_s.js} +2 -2
  63. package/dist/cdn/chunks/{icons-C4zY5-I3.js.map → icons-fZoyKV_s.js.map} +1 -1
  64. package/dist/cdn/chunks/{media-library-BNt3msId.js → media-library-CO2WOETY.js} +240 -240
  65. package/dist/cdn/chunks/{media-library-BNt3msId.js.map → media-library-CO2WOETY.js.map} +1 -1
  66. package/dist/{pt-BR-B5tm2iBl.js → cdn/chunks/pt-BR-D3Mg7AKe.js} +14 -1
  67. package/dist/cdn/chunks/{pt-BR-B5tm2iBl.js.map → pt-BR-D3Mg7AKe.js.map} +1 -1
  68. package/dist/cdn/chunks/{quality-BTPRPGB-.js → quality-BxPiS-wv.js} +603 -577
  69. package/dist/cdn/chunks/{quality-BTPRPGB-.js.map → quality-BxPiS-wv.js.map} +1 -1
  70. package/dist/cdn/chunks/{renderer-IOmuuZjJ.js → renderer-7z2t_bYQ.js} +142 -108
  71. package/dist/cdn/chunks/{renderer-IOmuuZjJ.js.map → renderer-7z2t_bYQ.js.map} +1 -1
  72. package/dist/cdn/chunks/{src-Dp0ZFQ4-.js → src-ftxPuuQh.js} +4 -4
  73. package/dist/cdn/chunks/{src-Dp0ZFQ4-.js.map → src-ftxPuuQh.js.map} +1 -1
  74. package/dist/cdn/chunks/{styles-DtgjgsBH.js → styles-o0HIrw9F.js} +877 -622
  75. package/dist/cdn/chunks/styles-o0HIrw9F.js.map +1 -0
  76. package/dist/cdn/chunks/{tiptap-BErAJEvo.js → tiptap-BBbH3IT9.js} +849 -725
  77. package/dist/cdn/chunks/tiptap-BBbH3IT9.js.map +1 -0
  78. package/dist/cdn/editor.css +1 -1
  79. package/dist/cdn/editor.js +102 -101
  80. package/dist/cdn/editor.js.map +1 -1
  81. package/dist/{cloud-Dz8Ay2FM.js → cloud-VxYMtfXC.js} +1 -1
  82. package/dist/{cdn/chunks/de-ED7c5RpG.js → de-CATfXDKV.js} +12 -3
  83. package/dist/{dist-BygsE-n3.js → dist-BDgf2G-V.js} +453 -314
  84. package/dist/{dist-BtDBsF3N.js → dist-BxP6TB0l.js} +2 -2
  85. package/dist/{dist-DWhP3Dp2.js → dist-BzuC8o3y.js} +1209 -1217
  86. package/dist/{dist-v-O2Subd.js → dist-C0jo8wtG.js} +2 -2
  87. package/dist/{dist-BTgujVMy.js → dist-C8wMh_gi.js} +2 -2
  88. package/dist/{dist-Cipw2HFH.js → dist-CIV3Brg-.js} +37 -4
  89. package/dist/{dist-HO0vjY5Z.js → dist-CNLAS2v2.js} +130 -124
  90. package/dist/{dist-BS5Oi67L.js → dist-CUpJmrjt.js} +2 -2
  91. package/dist/dist-D5lmdi1F.js +5 -0
  92. package/dist/{dist-T-ORzNfM.js → dist-D8C6jIXM.js} +168 -175
  93. package/dist/dist-DILjuzSv.js +5 -0
  94. package/dist/{dist-CDtcJMB2.js → dist-DXaxGLsw.js} +33 -33
  95. package/dist/{dist-DnGTaPRX.js → dist-DYO-w_Jf.js} +2 -2
  96. package/dist/{dist-CDZCyoRy.js → dist-UK-lbEBc.js} +2 -2
  97. package/dist/{en-ivilDUn0.js → en-CwCAgYL5.js} +12 -1
  98. package/dist/{extensions-BmGiz8Oo.js → extensions-Mj2-D8uK.js} +32 -29
  99. package/dist/{keys-B8K7Z7Ef.js → keys-BiQlvx51.js} +3 -3
  100. package/dist/{cdn/chunks/pt-BR-B5tm2iBl.js → pt-BR-D3Mg7AKe.js} +12 -3
  101. package/dist/style.css +1 -1
  102. package/dist/{styles-DFeOGKa_.js → styles-CJtcKmsx.js} +857 -601
  103. package/dist/templatical-editor.js +104 -103
  104. package/dist/{useCloudI18n-DFzVgYhJ.js → useCloudI18n-DKWJg6rJ.js} +1 -1
  105. package/dist/{useEditorCore-BXz-UXPd.js → useEditorCore-CEkf_VWX.js} +663 -633
  106. package/dist/{useI18n-CBbStVlD.js → useI18n-Besvmtxy.js} +1 -1
  107. package/dist/useMergeTag-WNzaCpXR.js +44 -0
  108. package/dist/{usePopoverRoot-62PlZQQ3.js → usePopoverRoot-CKt956u-.js} +1 -1
  109. package/package.json +21 -21
  110. package/dist/cdn/chunks/ModuleBrowserModal-CFMd6M7E.js.map +0 -1
  111. package/dist/cdn/chunks/ParagraphEditor-BIWXLPfu.js.map +0 -1
  112. package/dist/cdn/chunks/SaveModuleDialog-DR9EZlWe.js.map +0 -1
  113. package/dist/cdn/chunks/TitleEditor-DZcx2N4R.js +0 -175
  114. package/dist/cdn/chunks/TitleEditor-DZcx2N4R.js.map +0 -1
  115. package/dist/cdn/chunks/extensions-CvCoOuWB.js.map +0 -1
  116. package/dist/cdn/chunks/features-CUYy5kZQ.js.map +0 -1
  117. package/dist/cdn/chunks/styles-DtgjgsBH.js.map +0 -1
  118. package/dist/cdn/chunks/tiptap-BErAJEvo.js.map +0 -1
  119. package/dist/dist-BySzGkeC.js +0 -5
  120. package/dist/dist-D7JUZ2Kd.js +0 -5
  121. package/dist/useMergeTag-CS2bmWA0.js +0 -34
@@ -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-BDSGA5hA.js";
2
2
  import { t as k } from "./timeouts-Bmi_yePw.js";
3
- import { E as A, i as j } from "./dist-Cipw2HFH.js";
4
- import { P as M, S as N, t as ee } from "./useEditorCore-BXz-UXPd.js";
5
- import { s as P, t as F } from "./dist-HO0vjY5Z.js";
6
- import { T as I, c as L, l as te, r as ne, s as R, t as re, w as z, x as B } from "./keys-B8K7Z7Ef.js";
7
- import { t as V } from "./useI18n-CBbStVlD.js";
8
- import { t as H } from "./createLucideIcon-XgXOJ05E.js";
9
- import { t as U } from "./check-ChQyfxJ3.js";
10
- import { t as W } from "./circle-alert-CPH6l3Lc.js";
11
- import { a as G, c as K, i as q, l as ie, n as J, o as ae, r as oe, s as se, t as ce } from "./styles-DFeOGKa_.js";
12
- import { t as le } from "./clock-DHl_BIkU.js";
3
+ import { E as A, i as j } from "./dist-CIV3Brg-.js";
4
+ import { P as M, S as N, t as P } from "./useEditorCore-CEkf_VWX.js";
5
+ import { c as F, t as I } from "./dist-CNLAS2v2.js";
6
+ import { E as L, S as R, T as z, c as B, l as V, r as ee, s as te, t as H } from "./keys-BiQlvx51.js";
7
+ import { t as U } from "./useI18n-Besvmtxy.js";
8
+ import { t as W } from "./createLucideIcon-XgXOJ05E.js";
9
+ import { t as G } from "./check-ChQyfxJ3.js";
10
+ import { t as K } from "./circle-alert-CPH6l3Lc.js";
11
+ import { a as q, c as ne, i as J, l as re, n as ie, o as ae, r as oe, s as se, t as ce, u as le } from "./styles-CJtcKmsx.js";
12
+ import { t as ue } from "./clock-DHl_BIkU.js";
13
13
  import { t as Y } from "./loader-circle-Rz_4vJLH.js";
14
14
  import { t as X } from "./message-circle-D-umK_MU.js";
15
15
  import { t as Z } from "./send-BhbhbIFT.js";
16
- import { t as ue } from "./sparkles-CrUN0KWY.js";
17
- import { t as de } from "./triangle-alert-MwJBKR2e.js";
18
- import { t as fe } from "./_plugin-vue_export-helper-B3ysoDQm.js";
19
- import { n as Q } from "./useCloudI18n-DFzVgYhJ.js";
16
+ import { t as de } from "./sparkles-CrUN0KWY.js";
17
+ import { t as fe } from "./triangle-alert-MwJBKR2e.js";
18
+ import { t as pe } from "./_plugin-vue_export-helper-B3ysoDQm.js";
19
+ import { n as Q } from "./useCloudI18n-DKWJg6rJ.js";
20
20
  import { d as $ } from "./styleConstants-lGobwiLH.js";
21
- import { _ as pe, a as me, c as he, d as ge, f as _e, g as ve, h as ye, l as be, m as xe, n as Se, o as Ce, p as we, r as Te, s as Ee, t as De, v as Oe, y as ke } from "./cloud-Dz8Ay2FM.js";
22
- var Ae = H("save", [
21
+ import { _ as me, a as he, c as ge, d as _e, f as ve, g as ye, h as be, l as xe, m as Se, n as Ce, o as we, p as Te, r as Ee, s as De, t as Oe, v as ke, y as Ae } from "./cloud-VxYMtfXC.js";
22
+ var je = W("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 Ae = H("save", [
35
35
  ]);
36
36
  //#endregion
37
37
  //#region src/cloud/composables/useSnapshotPreview.ts
38
- function je(e) {
38
+ function Me(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 = ve({
45
+ n.state.template?.id && !l.value && (l.value = ye({
46
46
  authManager: t,
47
47
  templateId: n.state.template.id,
48
48
  onRestore: y,
@@ -92,7 +92,7 @@ function je(e) {
92
92
  }
93
93
  //#endregion
94
94
  //#region src/cloud/composables/useCloudPanelState.ts
95
- function Me() {
95
+ function Ne() {
96
96
  let e = o(null), t = d({
97
97
  get: () => e.value === "ai-chat",
98
98
  set: (t) => e.value = t ? "ai-chat" : null
@@ -115,7 +115,7 @@ function Me() {
115
115
  function g(t) {
116
116
  l.value = !1, e.value = e.value === t ? null : t;
117
117
  }
118
- return F(u, () => {
118
+ return I(u, () => {
119
119
  l.value = !1;
120
120
  }), {
121
121
  activePanel: e,
@@ -137,8 +137,8 @@ function Me() {
137
137
  }
138
138
  //#endregion
139
139
  //#region src/cloud/composables/useCollabUndoWarning.ts
140
- function Ne(e) {
141
- let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = o(!1), a = o(!1), { start: s } = P(() => {
140
+ function Pe(e) {
141
+ let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = o(!1), a = o(!1), { start: s } = F(() => {
142
142
  a.value = !1;
143
143
  }, k, { immediate: !1 });
144
144
  function c() {
@@ -151,8 +151,8 @@ function Ne(e) {
151
151
  }
152
152
  //#endregion
153
153
  //#region src/cloud/composables/useCloudFeatureFlags.ts
154
- function Pe(e) {
155
- 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(() => {
154
+ function Fe(e) {
155
+ 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 } = F(() => {
156
156
  p.value = "idle";
157
157
  }, 3e3, { immediate: !1 });
158
158
  return {
@@ -170,7 +170,7 @@ function Pe(e) {
170
170
  }
171
171
  //#endregion
172
172
  //#region src/cloud/composables/useCloudMediaLibrary.ts
173
- function Fe(e) {
173
+ function Ie(e) {
174
174
  let { onRequestMedia: t, mediaLibraryOpen: n, mediaLibraryAccept: r } = e, i = null;
175
175
  async function a() {
176
176
  if (t) {
@@ -205,30 +205,30 @@ function Fe(e) {
205
205
  }
206
206
  //#endregion
207
207
  //#region src/cloud/composables/useCloudInitialization.ts
208
- function Ie(e) {
209
- 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 De({
208
+ function Le(e) {
209
+ 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 Oe({
210
210
  ...t.auth,
211
211
  onError: t.onError
212
- }), v = xe({
212
+ }), v = Se({
213
213
  authManager: _,
214
214
  onError: t.onError
215
- }), y = o(/* @__PURE__ */ new Map()), b = ge({
215
+ }), y = o(/* @__PURE__ */ new Map()), b = _e({
216
216
  authManager: _,
217
217
  defaultFontFamily: t.fonts?.defaultFont,
218
218
  templateDefaults: t.templateDefaults,
219
219
  onError: t.onError,
220
220
  lockedBlocks: y
221
- }), x = ke({
221
+ }), x = Ae({
222
222
  authManager: _,
223
223
  onError: t.onError
224
224
  });
225
- t.mcp?.enabled && we({
225
+ t.mcp?.enabled && Te({
226
226
  editor: b,
227
227
  channel: x.channel,
228
228
  onOperation: t.mcp.onOperation
229
229
  });
230
230
  let S = null;
231
- t.collaboration?.enabled && (S = Ce({
231
+ t.collaboration?.enabled && (S = we({
232
232
  authManager: _,
233
233
  editor: b,
234
234
  channel: x.channel,
@@ -239,8 +239,8 @@ function Ie(e) {
239
239
  onBlockUnlocked: t.collaboration.onBlockUnlocked
240
240
  }), n(() => S.lockedBlocks.value, (e) => {
241
241
  y.value = e;
242
- }, { immediate: !0 }), Ee(b, S));
243
- let C = d(() => !!t.collaboration?.enabled && v.hasFeature("collaboration")), w = ee({
242
+ }, { immediate: !0 }), De(b, S));
243
+ let C = d(() => !!t.collaboration?.enabled && v.hasFeature("collaboration")), w = P({
244
244
  editor: b,
245
245
  config: {
246
246
  uiTheme: t.uiTheme,
@@ -250,7 +250,7 @@ function Ie(e) {
250
250
  mergeTags: t.mergeTags,
251
251
  displayConditions: t.displayConditions,
252
252
  onRequestMedia: null,
253
- lint: K(t),
253
+ lint: re(t),
254
254
  onSave: () => {
255
255
  p.value?.().catch((e) => {
256
256
  t.onError?.(e);
@@ -271,13 +271,13 @@ function Ie(e) {
271
271
  keyboardOptions: { onBeforeUndo: () => g?.showCollabUndoWarning() },
272
272
  editorRoot: e.editorRoot,
273
273
  containerEl: e.containerEl
274
- }), T = Ne({
274
+ }), T = Pe({
275
275
  isCollaborationEnabled: C,
276
276
  getCollaboratorCount: () => S?.collaborators.value.length ?? 0,
277
277
  canUndo: w.history.canUndo
278
278
  });
279
279
  g = T;
280
- let E = je({
280
+ let E = Me({
281
281
  authManager: _,
282
282
  editor: b,
283
283
  history: w.history,
@@ -286,11 +286,11 @@ function Ie(e) {
286
286
  onError: t.onError
287
287
  });
288
288
  m = E;
289
- let D = Me(), O = me(t.ai), k = Pe({
289
+ let D = Ne(), O = he(t.ai), k = Fe({
290
290
  planConfigInstance: v,
291
291
  aiConfig: O,
292
292
  editor: b
293
- }), A = Fe({
293
+ }), A = Ie({
294
294
  onRequestMedia: t.onRequestMedia,
295
295
  mediaLibraryOpen: D.mediaLibraryOpen,
296
296
  mediaLibraryAccept: D.mediaLibraryAccept
@@ -299,11 +299,11 @@ function Ie(e) {
299
299
  onBlockMove: b.moveBlock,
300
300
  onBlockAdd: b.addBlock
301
301
  });
302
- let j = _e({
302
+ let j = ve({
303
303
  authManager: _,
304
304
  getFontsConfig: () => t.fonts,
305
305
  canUseCustomFonts: () => v.hasFeature("custom_fonts")
306
- }), P = Oe({
306
+ }), F = ke({
307
307
  authManager: _,
308
308
  getTemplateId: () => b.state.template?.id ?? null,
309
309
  save: () => b.save(),
@@ -311,7 +311,7 @@ function Ie(e) {
311
311
  onError: t.onError,
312
312
  isAuthReady: l,
313
313
  onBeforeTestEmail: t.onBeforeTestEmail
314
- }), F = be({
314
+ }), I = xe({
315
315
  authManager: _,
316
316
  getTemplateId: () => b.state.template?.id ?? null,
317
317
  getSocketId: () => x.getSocketId(),
@@ -320,56 +320,56 @@ function Ie(e) {
320
320
  isAuthReady: l,
321
321
  hasCommentingFeature: () => t.commenting !== !1 && v.hasFeature("commenting")
322
322
  });
323
- he({
324
- comments: F,
323
+ ge({
324
+ comments: I,
325
325
  channel: x.channel
326
326
  });
327
- let L = ye({
327
+ let B = be({
328
328
  authManager: _,
329
329
  onError: t.onError
330
- }), V = o(!1), H = o(null), U = o(!1), W = pe({
330
+ }), U = o(!1), W = o(null), G = o(!1), K = me({
331
331
  authManager: _,
332
332
  getTemplateId: () => b.state.template?.id ?? null
333
333
  });
334
- function G(e) {
334
+ function q(e) {
335
335
  D.commentsOpen.value = !0, queueMicrotask(() => {
336
336
  s()?.filterByBlock(e);
337
337
  });
338
338
  }
339
- h(B, A.handleRequestMedia), h(ne, _), h(re, O), h(te, F), h(z, L), h(I, W), h(R, {
339
+ h(R, A.handleRequestMedia), h(ee, _), h(H, O), h(V, I), h(z, B), h(L, K), h(te, {
340
340
  plan: v,
341
341
  ai: O,
342
342
  comments: {
343
- getBlockCount: (e) => F.commentCountByBlock.value.get(e) ?? 0,
344
- openForBlock: G
343
+ getBlockCount: (e) => I.commentCountByBlock.value.get(e) ?? 0,
344
+ openForBlock: q
345
345
  },
346
346
  savedModules: {
347
347
  openSaveDialog: (e) => {
348
- H.value = e ?? null, V.value = !0;
348
+ W.value = e ?? null, U.value = !0;
349
349
  },
350
350
  openBrowser: () => {
351
- U.value = !0;
351
+ G.value = !0;
352
352
  },
353
- moduleCount: d(() => L.modules.value.length)
353
+ moduleCount: d(() => B.modules.value.length)
354
354
  }
355
355
  });
356
- function q(e) {
356
+ function ne(e) {
357
357
  v.hasFeature("theme_customization") && (w.themeOverrides.value = e);
358
358
  }
359
- function ie(e) {
359
+ function J(e) {
360
360
  b.setUiTheme(e);
361
361
  }
362
- async function J() {
362
+ async function ie() {
363
363
  c.value = !0, u.value = null;
364
364
  try {
365
365
  if (await _.initialize(), f) return;
366
366
  l.value = !0;
367
- let e = await Se({ authManager: _ });
367
+ let e = await Ce({ authManager: _ });
368
368
  if (f) return;
369
369
  if (!e.api.ok) throw Error("Health check failed: API is not reachable");
370
370
  if (!e.auth.ok) throw Error(`Health check failed: authentication error${e.auth.error ? ` - ${e.auth.error}` : ""}`);
371
371
  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;
372
- 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") && L.loadModules(), a("ready");
372
+ 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") && B.loadModules(), a("ready");
373
373
  } catch (e) {
374
374
  if (f) return;
375
375
  let n = e instanceof Error ? e : Error("Initialization failed", { cause: e });
@@ -397,27 +397,27 @@ function Ie(e) {
397
397
  featureFlags: k,
398
398
  mediaLib: A,
399
399
  exporter: j,
400
- testEmail: P,
401
- commentsInstance: F,
402
- savedModulesHeadless: L,
403
- scoringInstance: W,
400
+ testEmail: F,
401
+ commentsInstance: I,
402
+ savedModulesHeadless: B,
403
+ scoringInstance: K,
404
404
  panelState: D,
405
405
  snapshotPreview: E,
406
406
  collabWarning: T,
407
- showSaveModuleDialog: V,
408
- showModuleBrowserModal: U,
409
- saveModulePreSelectedBlockId: H,
407
+ showSaveModuleDialog: U,
408
+ showModuleBrowserModal: G,
409
+ saveModulePreSelectedBlockId: W,
410
410
  onSaveHook: p,
411
- initialize: J,
411
+ initialize: ie,
412
412
  destroy: ae,
413
- setThemeOverrides: q,
414
- setUiTheme: ie,
415
- openCommentsForBlock: G
413
+ setThemeOverrides: ne,
414
+ setUiTheme: J,
415
+ openCommentsForBlock: q
416
416
  };
417
417
  }
418
418
  //#endregion
419
419
  //#region src/utils/preRenderCustomBlocks.ts
420
- async function Le(e, t) {
420
+ async function Re(e, t) {
421
421
  let n = async (e) => {
422
422
  if (A(e)) {
423
423
  let n = e;
@@ -436,10 +436,10 @@ async function Le(e, t) {
436
436
  }
437
437
  //#endregion
438
438
  //#region src/cloud/composables/useCloudLifecycle.ts
439
- function Re(e) {
439
+ function ze(e) {
440
440
  let { config: t, editor: n, websocket: r, planConfigInstance: i, snapshotPreview: a, core: o, exporter: s, featureFlags: c, isDestroyed: l } = e;
441
441
  function u() {
442
- return Te(i.config.value.websocket);
442
+ return Ee(i.config.value.websocket);
443
443
  }
444
444
  async function d(e) {
445
445
  let i = await n.create(e);
@@ -452,7 +452,7 @@ function Re(e) {
452
452
  async function p() {
453
453
  c.isSaveExporting.value = !0, c.saveStatus.value = "idle";
454
454
  try {
455
- if (await Le(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
455
+ if (await Re(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
456
456
  let e = await n.save();
457
457
  if (l()) throw Error("Component unmounted during save");
458
458
  a.initSnapshotHistory(), a.snapshotHistoryInstance.value?.loadSnapshots();
@@ -479,7 +479,7 @@ function Re(e) {
479
479
  }
480
480
  //#endregion
481
481
  //#region src/cloud/composables/useCloudSaveGate.ts
482
- function ze(e) {
482
+ function Be(e) {
483
483
  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);
484
484
  async function s(e) {
485
485
  return a.value ? (n = e, t.value = !0, !1) : (await e(), !0);
@@ -502,7 +502,7 @@ function ze(e) {
502
502
  }
503
503
  //#endregion
504
504
  //#region src/cloud/components/CloudSaveGateModal.vue?vue&type=script&setup=true&lang.ts
505
- 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__ */ l({
505
+ 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__ */ l({
506
506
  __name: "CloudSaveGateModal",
507
507
  props: {
508
508
  open: { type: Boolean },
@@ -524,18 +524,18 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
524
524
  "aria-label": C(a).saveGate.title,
525
525
  class: "tpl:fixed tpl:inset-0 tpl:z-50 tpl:flex tpl:items-center tpl:justify-center tpl:bg-black/40 tpl:p-6",
526
526
  onClick: o[2] ||= u((e) => i("cancel"), ["self"])
527
- }, [f("div", Ve, [
528
- f("header", He, [E(C(de), {
527
+ }, [f("div", He, [
528
+ f("header", Ue, [E(C(fe), {
529
529
  size: 18,
530
530
  "stroke-width": 2,
531
531
  class: "tpl:text-[var(--tpl-warning)]"
532
- }), f("h2", Ue, w(C(a).saveGate.title), 1)]),
533
- f("p", We, w(C(a).saveGate.body), 1),
534
- f("ul", Ge, [(e(!0), m(_, null, r(t.issues, (t) => (e(), m("li", {
532
+ }), f("h2", We, w(C(a).saveGate.title), 1)]),
533
+ f("p", Ge, w(C(a).saveGate.body), 1),
534
+ f("ul", Ke, [(e(!0), m(_, null, r(t.issues, (t) => (e(), m("li", {
535
535
  key: `${t.ruleId}-${t.blockId ?? "template"}`,
536
536
  class: "tpl:flex tpl:flex-col tpl:gap-0.5 tpl:rounded tpl:px-2 tpl:py-1.5"
537
- }, [f("span", Ke, w(t.message), 1), f("span", qe, w(t.ruleId), 1)]))), 128))]),
538
- f("footer", Je, [f("button", {
537
+ }, [f("span", qe, w(t.message), 1), f("span", Je, w(t.ruleId), 1)]))), 128))]),
538
+ f("footer", Ye, [f("button", {
539
539
  type: "button",
540
540
  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)]",
541
541
  onClick: o[0] ||= (e) => i("cancel")
@@ -544,11 +544,11 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
544
544
  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",
545
545
  onClick: o[1] ||= (e) => i("confirm")
546
546
  }, w(C(a).saveGate.confirm), 1)])
547
- ])], 8, Be)) : v("", !0)]),
547
+ ])], 8, Ve)) : v("", !0)]),
548
548
  _: 1
549
549
  }));
550
550
  }
551
- }), Xe = {
551
+ }), Ze = {
552
552
  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",
553
553
  style: {
554
554
  "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)",
@@ -557,24 +557,24 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
557
557
  "box-shadow": "var(--tpl-shadow-md)",
558
558
  "border-bottom": "1px solid var(--tpl-border)"
559
559
  }
560
- }, Ze = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, Qe = {
560
+ }, Qe = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, $e = {
561
561
  key: 0,
562
562
  class: "tpl:text-xs tpl:opacity-60 tpl:text-[var(--tpl-text-muted)]"
563
- }, $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 = {
563
+ }, 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 = {
564
564
  key: 1,
565
565
  "aria-live": "polite",
566
566
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success)]"
567
- }, rt = {
567
+ }, it = {
568
568
  key: 2,
569
569
  "aria-live": "polite",
570
570
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
571
- }, it = ["aria-label", "aria-expanded"], at = {
571
+ }, at = ["aria-label", "aria-expanded"], ot = {
572
572
  key: 0,
573
573
  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)]"
574
- }, ot = ["aria-expanded"], st = {
574
+ }, st = ["aria-expanded"], ct = {
575
575
  key: 0,
576
576
  class: "tpl:absolute tpl:right-0 tpl:top-full tpl:z-50 tpl:mt-1 tpl:origin-top-right"
577
- }, ct = ["disabled"], lt = ["disabled"], ut = /* @__PURE__ */ l({
577
+ }, lt = ["disabled"], ut = ["disabled"], dt = /* @__PURE__ */ l({
578
578
  __name: "CloudHeader",
579
579
  props: {
580
580
  editor: {},
@@ -592,22 +592,22 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
592
592
  },
593
593
  emits: ["save"],
594
594
  setup(t) {
595
- let n = D(() => import("./CollaboratorBar-HN4whzM-.js")), r = D(() => import("./SnapshotHistory-DTMVEk03.js")), i = D(() => import("./AiFeatureMenu-BYDDrpj6.js")), { t: a, format: o } = Q();
596
- return (l, d) => (e(), m("header", Xe, [
597
- f("div", Ze, [t.featureFlags.templateLimit.value === null ? v("", !0) : (e(), m("span", Qe, w(C(o)(C(a).header.templatesUsed, {
595
+ let n = D(() => import("./CollaboratorBar-Bc6q0gB9.js")), r = D(() => import("./SnapshotHistory-CIo2Jaw-.js")), i = D(() => import("./AiFeatureMenu-Co14YVJt.js")), { t: a, format: o } = Q();
596
+ return (l, d) => (e(), m("header", Ze, [
597
+ f("div", Qe, [t.featureFlags.templateLimit.value === null ? v("", !0) : (e(), m("span", $e, w(C(o)(C(a).header.templatesUsed, {
598
598
  used: t.featureFlags.templateCount.value,
599
599
  max: t.featureFlags.templateLimit.value
600
600
  })), 1))]),
601
- f("div", $e, [
601
+ f("div", et, [
602
602
  E(q, {
603
603
  viewport: t.editor.state.viewport,
604
604
  onChange: t.editor.setViewport
605
605
  }, null, 8, ["viewport", "onChange"]),
606
- E(J, {
606
+ E(oe, {
607
607
  "dark-mode": t.editor.state.darkMode,
608
608
  onChange: t.editor.setDarkMode
609
609
  }, null, 8, ["dark-mode", "onChange"]),
610
- E(oe, {
610
+ E(J, {
611
611
  "preview-mode": t.editor.state.previewMode,
612
612
  onChange: t.editor.setPreviewMode
613
613
  }, null, 8, ["preview-mode", "onChange"]),
@@ -631,19 +631,19 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
631
631
  "onNavigate"
632
632
  ])) : v("", !0)
633
633
  ]),
634
- f("div", et, [
634
+ f("div", tt, [
635
635
  t.featureFlags.saveStatus.value === "error" ? (e(), m("div", {
636
636
  key: 0,
637
637
  "aria-live": "assertive",
638
638
  class: "tpl-tooltip tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-danger)]",
639
639
  "data-tooltip": t.featureFlags.saveErrorMessage.value
640
- }, [E(C(W), {
640
+ }, [E(C(K), {
641
641
  size: 12,
642
642
  "stroke-width": 2.5
643
- }), s(" " + w(C(a).header.saveFailed), 1)], 8, tt)) : t.featureFlags.saveStatus.value === "saved" ? (e(), m("div", nt, [E(C(U), {
643
+ }), s(" " + w(C(a).header.saveFailed), 1)], 8, nt)) : t.featureFlags.saveStatus.value === "saved" ? (e(), m("div", rt, [E(C(G), {
644
644
  size: 12,
645
645
  "stroke-width": 2.5
646
- }), s(" " + w(C(a).header.saved), 1)])) : t.editor.state.isDirty ? (e(), m("div", rt, [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),
646
+ }), s(" " + w(C(a).header.saved), 1)])) : t.editor.state.isDirty ? (e(), m("div", it, [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),
647
647
  t.commentsInstance.isEnabled.value && t.featureFlags.hasTemplateSaved.value ? (e(), m("button", {
648
648
  key: 3,
649
649
  "aria-label": t.commentsInstance.unresolvedCount.value > 0 ? `${C(a).comments.button} (${t.commentsInstance.unresolvedCount.value})` : C(a).comments.button,
@@ -661,8 +661,8 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
661
661
  "stroke-width": 2
662
662
  }),
663
663
  s(" " + w(C(a).comments.button) + " ", 1),
664
- t.commentsInstance.unresolvedCount.value > 0 && !t.panelState.commentsOpen.value ? (e(), m("span", at, w(t.commentsInstance.unresolvedCount.value), 1)) : v("", !0)
665
- ], 14, it)) : v("", !0),
664
+ t.commentsInstance.unresolvedCount.value > 0 && !t.panelState.commentsOpen.value ? (e(), m("span", ot, w(t.commentsInstance.unresolvedCount.value), 1)) : v("", !0)
665
+ ], 14, at)) : v("", !0),
666
666
  t.featureFlags.canUseAiGeneration.value && t.featureFlags.hasTemplateSaved.value ? (e(), m("div", {
667
667
  key: 4,
668
668
  ref: (e) => t.panelState.aiMenuRef.value = e,
@@ -671,11 +671,11 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
671
671
  "aria-expanded": t.panelState.aiMenuOpen.value,
672
672
  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"]),
673
673
  onClick: d[1] ||= u((...e) => t.panelState.toggleAiMenu && t.panelState.toggleAiMenu(...e), ["stop"])
674
- }, [E(C(ue), {
674
+ }, [E(C(de), {
675
675
  size: 16,
676
676
  "stroke-width": 2,
677
677
  class: "tpl-ai-btn-icon"
678
- }), s(" " + w(C(a).aiChat.button), 1)], 10, ot), E(T, {
678
+ }), s(" " + w(C(a).aiChat.button), 1)], 10, st), E(T, {
679
679
  "enter-active-class": "tpl:transition-all tpl:duration-150 tpl:ease-out",
680
680
  "enter-from-class": "tpl:scale-95 tpl:opacity-0",
681
681
  "enter-to-class": "tpl:scale-100 tpl:opacity-100",
@@ -683,7 +683,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
683
683
  "leave-from-class": "tpl:scale-100 tpl:opacity-100",
684
684
  "leave-to-class": "tpl:scale-95 tpl:opacity-0"
685
685
  }, {
686
- default: O(() => [t.panelState.aiMenuOpen.value ? (e(), m("div", st, [E(C(i), {
686
+ default: O(() => [t.panelState.aiMenuOpen.value ? (e(), m("div", ct, [E(C(i), {
687
687
  "active-feature": t.panelState.activeAiFeature.value,
688
688
  onSelect: t.panelState.handleAiFeatureSelect
689
689
  }, null, 8, ["active-feature", "onSelect"])])) : v("", !0)]),
@@ -708,7 +708,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
708
708
  key: 0,
709
709
  size: 16,
710
710
  "stroke-width": 2
711
- })), s(" " + w(C(a).testEmail.button), 1)], 10, ct)) : v("", !0),
711
+ })), s(" " + w(C(a).testEmail.button), 1)], 10, lt)) : v("", !0),
712
712
  f("button", {
713
713
  class: c(C($)),
714
714
  style: {
@@ -723,15 +723,15 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
723
723
  class: "tpl-spinner",
724
724
  size: 16,
725
725
  "stroke-width": 2
726
- })) : (e(), x(C(Ae), {
726
+ })) : (e(), x(C(je), {
727
727
  key: 0,
728
728
  size: 16,
729
729
  "stroke-width": 2
730
- })), s(" " + w(t.isSaving ? C(a).header.saving : C(a).header.save), 1)], 10, lt)
730
+ })), s(" " + w(t.isSaving ? C(a).header.saving : C(a).header.save), 1)], 10, ut)
731
731
  ])
732
732
  ]));
733
733
  }
734
- }), dt = /* @__PURE__ */ l({
734
+ }), ft = /* @__PURE__ */ l({
735
735
  __name: "CloudPanels",
736
736
  props: {
737
737
  config: {},
@@ -754,7 +754,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
754
754
  "module-insert"
755
755
  ],
756
756
  setup(t, { expose: n, emit: r }) {
757
- let i = D(() => import("./AiChatSidebar-CnRXeK77.js")), a = D(() => import("./CommentsSidebar-_llWQ4VT.js")), s = D(() => import("./DesignReferenceSidebar-0GwjUn2V.js")), c = D(() => import("./TemplateScoringPanel-BIwEwFxD.js")), l = D(() => import("./TestEmailModal-DJmYp0Qi.js")), u = D(() => import("./SaveModuleDialog-DORRSbBo.js")), d = D(() => import("./ModuleBrowserModal-DPZBsvqk.js")), f = D(async () => {
757
+ let i = D(() => import("./AiChatSidebar-BUKj9n02.js")), a = D(() => import("./CommentsSidebar-DiH4R4F0.js")), s = D(() => import("./DesignReferenceSidebar-BP32MgpS.js")), c = D(() => import("./TemplateScoringPanel-seBvvn8O.js")), l = D(() => import("./TestEmailModal-BuCuWp3N.js")), u = D(() => import("./SaveModuleDialog-DWidA0c9.js")), d = D(() => import("./ModuleBrowserModal-CWegFoOA.js")), f = D(async () => {
758
758
  try {
759
759
  return (await import("@templatical/media-library")).MediaLibraryModal;
760
760
  } catch {
@@ -836,23 +836,23 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
836
836
  ])
837
837
  ], 64));
838
838
  }
839
- }), ft = {
839
+ }), pt = {
840
840
  key: 0,
841
841
  class: "tpl-loading tpl:absolute tpl:inset-0 tpl:z-overlay tpl:flex tpl:flex-col tpl:bg-[var(--tpl-bg)]"
842
- }, 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__ */ l({
842
+ }, 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__ */ l({
843
843
  __name: "CloudLoadingOverlay",
844
844
  props: { visible: { type: Boolean } },
845
845
  setup(t) {
846
- return (n, i) => t.visible ? (e(), m("div", ft, [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", pt, [f("div", mt, [(e(), m(_, null, r(5, (e) => f("div", {
846
+ return (n, i) => t.visible ? (e(), m("div", pt, [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", mt, [f("div", ht, [(e(), m(_, null, r(5, (e) => f("div", {
847
847
  key: e,
848
848
  class: "tpl-shimmer tpl:size-7 tpl:rounded-[var(--tpl-radius-sm)]"
849
849
  })), 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);
850
850
  }
851
- }), gt = {
851
+ }), _t = {
852
852
  key: 0,
853
853
  role: "alert",
854
854
  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)]"
855
- }, _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__ */ l({
855
+ }, 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__ */ l({
856
856
  __name: "CloudErrorOverlay",
857
857
  props: {
858
858
  error: {},
@@ -867,13 +867,13 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
867
867
  function o(e) {
868
868
  return "isNotFound" in e && !!e.isNotFound;
869
869
  }
870
- return (n, s) => t.visible && t.error ? (e(), m("div", gt, [
871
- f("div", _t, [E(C(W), {
870
+ return (n, s) => t.visible && t.error ? (e(), m("div", _t, [
871
+ f("div", vt, [E(C(K), {
872
872
  size: 32,
873
873
  "stroke-width": 1.5,
874
874
  class: "tpl:text-[var(--tpl-danger)]"
875
875
  })]),
876
- f("div", vt, [f("h2", yt, w(C(i).error.title), 1), f("p", bt, w(a(t.error)), 1)]),
876
+ f("div", yt, [f("h2", bt, w(C(i).error.title), 1), f("p", xt, w(a(t.error)), 1)]),
877
877
  o(t.error) ? v("", !0) : (e(), m("button", {
878
878
  key: 0,
879
879
  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)]",
@@ -881,20 +881,20 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
881
881
  }, w(C(i).error.retry), 1))
882
882
  ])) : v("", !0);
883
883
  }
884
- }), St = {
884
+ }), Ct = {
885
885
  key: 0,
886
886
  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)]"
887
- }, 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__ */ l({
887
+ }, 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__ */ l({
888
888
  __name: "SnapshotPreviewBanner",
889
889
  props: { visible: { type: Boolean } },
890
890
  emits: ["cancel", "confirm"],
891
891
  setup(t, { emit: n }) {
892
892
  let r = n, { t: i } = Q();
893
- return (n, a) => t.visible ? (e(), m("div", St, [f("div", Ct, [E(C(le), {
893
+ return (n, a) => t.visible ? (e(), m("div", Ct, [f("div", wt, [E(C(ue), {
894
894
  size: 18,
895
895
  "stroke-width": 2,
896
896
  class: "tpl:text-[var(--tpl-primary)]"
897
- }), f("span", null, w(C(i).snapshotPreview.message), 1)]), f("div", wt, [f("button", {
897
+ }), f("span", null, w(C(i).snapshotPreview.message), 1)]), f("div", Tt, [f("button", {
898
898
  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)]",
899
899
  style: { "background-color": "transparent" },
900
900
  onClick: a[0] ||= (e) => r("cancel")
@@ -903,7 +903,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
903
903
  onClick: a[1] ||= (e) => r("confirm")
904
904
  }, w(C(i).snapshotPreview.restore), 1)])])) : v("", !0);
905
905
  }
906
- }), Et = {
906
+ }), Dt = {
907
907
  key: 0,
908
908
  role: "status",
909
909
  "aria-live": "polite",
@@ -913,14 +913,14 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
913
913
  color: "var(--tpl-text)",
914
914
  border: "1px solid var(--tpl-warning)"
915
915
  }
916
- }, Dt = /* @__PURE__ */ l({
916
+ }, Ot = /* @__PURE__ */ l({
917
917
  __name: "CollabUndoToast",
918
918
  props: { visible: { type: Boolean } },
919
919
  setup(t) {
920
- let { t: n } = V();
921
- return (r, i) => t.visible ? (e(), m("div", Et, w(C(n).history.collabWarning), 1)) : v("", !0);
920
+ let { t: n } = U();
921
+ return (r, i) => t.visible ? (e(), m("div", Dt, w(C(n).history.collabWarning), 1)) : v("", !0);
922
922
  }
923
- }), 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__ */ fe(/* @__PURE__ */ l({
923
+ }), 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__ */ pe(/* @__PURE__ */ l({
924
924
  __name: "CloudEditor",
925
925
  props: {
926
926
  config: {},
@@ -932,8 +932,8 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
932
932
  emits: ["ready"],
933
933
  setup(n, { expose: r, emit: a }) {
934
934
  let l = n;
935
- h(L, l.cloudTranslations);
936
- let u = a, d = o(null), p = o(null), _ = Ie({
935
+ h(B, l.cloudTranslations);
936
+ let u = a, d = o(null), p = o(null), _ = Le({
937
937
  config: l.config,
938
938
  translations: l.translations,
939
939
  fontsManager: l.fontsManager,
@@ -941,31 +941,31 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
941
941
  getCommentsSidebar: () => d.value ? { filterByBlock: d.value.filterCommentsByBlock } : null,
942
942
  editorRoot: l.shadowRoot,
943
943
  containerEl: p
944
- }), { isInitializing: S, isAuthReady: D, initError: k, planConfigInstance: A, websocket: M, collaboration: N, isCollaborationEnabled: ee, editor: P, core: F, featureFlags: I, mediaLib: te, exporter: ne, testEmail: R, commentsInstance: re, savedModulesHeadless: z, panelState: B, snapshotPreview: V, collabWarning: H, showSaveModuleDialog: U, showModuleBrowserModal: W, saveModulePreSelectedBlockId: K, setThemeOverrides: q, setUiTheme: J } = _;
944
+ }), { isInitializing: S, isAuthReady: D, initError: k, planConfigInstance: A, websocket: M, collaboration: N, isCollaborationEnabled: P, editor: F, core: I, featureFlags: L, mediaLib: R, exporter: z, testEmail: V, commentsInstance: ee, savedModulesHeadless: te, panelState: H, snapshotPreview: U, collabWarning: W, showSaveModuleDialog: G, showModuleBrowserModal: K, saveModulePreSelectedBlockId: q, setThemeOverrides: J, setUiTheme: re } = _;
945
945
  async function oe(e) {
946
946
  try {
947
- await R.sendTestEmail(e), B.testEmailModalOpen.value = !1;
947
+ await V.sendTestEmail(e), H.testEmailModalOpen.value = !1;
948
948
  } catch {}
949
949
  }
950
- function le(e, t) {
950
+ function ue(e, t) {
951
951
  for (let n = 0; n < e.content.length; n++) {
952
952
  let r = j(e.content[n]), i = t === void 0 ? void 0 : t + n;
953
- P.addBlock(r, void 0, void 0, i);
953
+ F.addBlock(r, void 0, void 0, i);
954
954
  }
955
- W.value = !1;
955
+ K.value = !1;
956
956
  }
957
- let Y = Re({
957
+ let Y = ze({
958
958
  config: l.config,
959
- editor: P,
959
+ editor: F,
960
960
  websocket: M,
961
961
  planConfigInstance: A,
962
- snapshotPreview: V,
963
- core: F,
964
- exporter: ne,
965
- featureFlags: I,
962
+ snapshotPreview: U,
963
+ core: I,
964
+ exporter: z,
965
+ featureFlags: L,
966
966
  isDestroyed: _.isDestroyed
967
- }), X = ze({
968
- issues: F.templateLint ? F.templateLint.issues : o([]),
967
+ }), X = Be({
968
+ issues: I.templateLint ? I.templateLint.issues : o([]),
969
969
  planConfig: A.config
970
970
  });
971
971
  async function Z() {
@@ -976,20 +976,20 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
976
976
  }), g(() => {
977
977
  _.destroy();
978
978
  }), r({
979
- getContent: () => P.content.value,
980
- setContent: (e) => P.setContent(e),
981
- setTheme: J,
982
- setThemeOverrides: q,
979
+ getContent: () => F.content.value,
980
+ setContent: (e) => F.setContent(e),
981
+ setTheme: re,
982
+ setThemeOverrides: J,
983
983
  create: Y.createTemplate,
984
984
  load: Y.loadTemplate,
985
985
  save: Y.saveTemplate,
986
- sendTestEmail: R.sendTestEmail
986
+ sendTestEmail: V.sendTestEmail
987
987
  }), (r, i) => (e(), m("div", {
988
988
  ref_key: "rootEl",
989
989
  ref: p,
990
- class: c(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": C(P).state.darkMode }]),
991
- "data-tpl-theme": C(F).resolvedTheme.value,
992
- style: b(C(F).themeStyles.value)
990
+ class: c(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": C(F).state.darkMode }]),
991
+ "data-tpl-theme": C(I).resolvedTheme.value,
992
+ style: b(C(I).themeStyles.value)
993
993
  }, [
994
994
  E(T, {
995
995
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
@@ -999,7 +999,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
999
999
  "leave-from-class": "tpl:opacity-100",
1000
1000
  "leave-to-class": "tpl:opacity-0"
1001
1001
  }, {
1002
- default: O(() => [E(ht, { visible: C(S) || C(P).state.isLoading }, null, 8, ["visible"])]),
1002
+ default: O(() => [E(gt, { visible: C(S) || C(F).state.isLoading }, null, 8, ["visible"])]),
1003
1003
  _: 1
1004
1004
  }),
1005
1005
  E(T, {
@@ -1010,7 +1010,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1010
1010
  "leave-from-class": "tpl:opacity-100",
1011
1011
  "leave-to-class": "tpl:opacity-0"
1012
1012
  }, {
1013
- default: O(() => [E(xt, {
1013
+ default: O(() => [E(St, {
1014
1014
  error: C(k),
1015
1015
  visible: !!C(k) && !C(S),
1016
1016
  onRetry: C(_).initialize
@@ -1021,19 +1021,19 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1021
1021
  ])]),
1022
1022
  _: 1
1023
1023
  }),
1024
- E(ut, {
1025
- editor: C(P),
1026
- core: C(F),
1027
- "feature-flags": C(I),
1028
- "panel-state": C(B),
1029
- "snapshot-preview": C(V),
1030
- "comments-instance": C(re),
1031
- "test-email": C(R),
1024
+ E(dt, {
1025
+ editor: C(F),
1026
+ core: C(I),
1027
+ "feature-flags": C(L),
1028
+ "panel-state": C(H),
1029
+ "snapshot-preview": C(U),
1030
+ "comments-instance": C(ee),
1031
+ "test-email": C(V),
1032
1032
  websocket: C(M),
1033
1033
  collaboration: C(N),
1034
- "is-collaboration-enabled": C(ee),
1035
- "is-saving": C(P).state.isSaving || C(I).isSaveExporting.value,
1036
- "is-save-disabled": C(P).state.isSaving || C(I).isSaveExporting.value || !C(P).state.isDirty,
1034
+ "is-collaboration-enabled": C(P),
1035
+ "is-saving": C(F).state.isSaving || C(L).isSaveExporting.value,
1036
+ "is-save-disabled": C(F).state.isSaving || C(L).isSaveExporting.value || !C(F).state.isDirty,
1037
1037
  onSave: Z
1038
1038
  }, null, 8, [
1039
1039
  "editor",
@@ -1049,7 +1049,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1049
1049
  "is-saving",
1050
1050
  "is-save-disabled"
1051
1051
  ]),
1052
- E(Ye, {
1052
+ E(Xe, {
1053
1053
  open: C(X).modalOpen.value,
1054
1054
  issues: C(X).blockingIssues.value,
1055
1055
  onCancel: C(X).cancel,
@@ -1060,10 +1060,10 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1060
1060
  "onCancel",
1061
1061
  "onConfirm"
1062
1062
  ]),
1063
- E(Tt, {
1064
- visible: C(V).isPreviewingSnapshot.value,
1065
- onCancel: C(V).cancelPreview,
1066
- onConfirm: C(V).confirmRestoreSnapshot
1063
+ E(Et, {
1064
+ visible: C(U).isPreviewingSnapshot.value,
1065
+ onCancel: C(U).cancelPreview,
1066
+ onConfirm: C(U).confirmRestoreSnapshot
1067
1067
  }, null, 8, [
1068
1068
  "visible",
1069
1069
  "onCancel",
@@ -1077,18 +1077,18 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1077
1077
  "leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
1078
1078
  "leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
1079
1079
  }, {
1080
- default: O(() => [E(Dt, { visible: C(H).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1080
+ default: O(() => [E(Ot, { visible: C(W).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1081
1081
  _: 1
1082
1082
  }),
1083
- t(E(ae, null, null, 512), [[y, !C(P).state.previewMode]]),
1083
+ t(E(se, null, null, 512), [[y, !C(F).state.previewMode]]),
1084
1084
  f("div", {
1085
- class: c(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [C(P).state.previewMode ? "tpl:left-0 tpl:right-0" : C(B).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", C(V).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1085
+ class: c(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [C(F).state.previewMode ? "tpl:left-0 tpl:right-0" : C(H).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", C(U).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1086
1086
  style: {
1087
1087
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
1088
1088
  "background-color": "var(--tpl-canvas-bg)"
1089
1089
  }
1090
- }, [f("div", kt, [E(T, { name: "tpl-restore-btn" }, {
1091
- default: O(() => [C(F).conditionPreview.hasHiddenBlocks.value ? (e(), m("button", {
1090
+ }, [f("div", At, [E(T, { name: "tpl-restore-btn" }, {
1091
+ default: O(() => [C(I).conditionPreview.hasHiddenBlocks.value ? (e(), m("button", {
1092
1092
  key: 0,
1093
1093
  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",
1094
1094
  style: {
@@ -1097,22 +1097,22 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1097
1097
  "border-color": "var(--tpl-warning)",
1098
1098
  "backdrop-filter": "blur(8px)"
1099
1099
  },
1100
- onClick: i[0] ||= (e) => C(F).conditionPreview.reset()
1101
- }, [E(C(ie), {
1100
+ onClick: i[0] ||= (e) => C(I).conditionPreview.reset()
1101
+ }, [E(C(le), {
1102
1102
  size: 13,
1103
1103
  "stroke-width": 2
1104
- }), s(" " + w(C(F).t.blockSettings.restoreHiddenBlocks), 1)])) : v("", !0)]),
1104
+ }), s(" " + w(C(I).t.blockSettings.restoreHiddenBlocks), 1)])) : v("", !0)]),
1105
1105
  _: 1
1106
- })]), f("main", At, [E(se, {
1107
- viewport: C(P).state.viewport,
1108
- content: C(P).content.value,
1109
- "selected-block-id": C(P).state.selectedBlockId,
1110
- "dark-mode": C(P).state.darkMode,
1111
- "preview-mode": C(P).state.previewMode,
1106
+ })]), f("main", jt, [E(ne, {
1107
+ viewport: C(F).state.viewport,
1108
+ content: C(F).content.value,
1109
+ "selected-block-id": C(F).state.selectedBlockId,
1110
+ "dark-mode": C(F).state.darkMode,
1111
+ "preview-mode": C(F).state.previewMode,
1112
1112
  "locked-blocks": C(N)?.lockedBlocks.value ?? void 0,
1113
- onSelectBlock: C(P).selectBlock,
1114
- onOpenAiChat: i[1] ||= (e) => C(B).aiChatOpen.value = !0,
1115
- onOpenDesignReference: i[2] ||= (e) => C(B).designReferenceOpen.value = !0
1113
+ onSelectBlock: C(F).selectBlock,
1114
+ onOpenAiChat: i[1] ||= (e) => C(H).aiChatOpen.value = !0,
1115
+ onOpenDesignReference: i[2] ||= (e) => C(H).designReferenceOpen.value = !0
1116
1116
  }, null, 8, [
1117
1117
  "viewport",
1118
1118
  "content",
@@ -1122,51 +1122,51 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1122
1122
  "locked-blocks",
1123
1123
  "onSelectBlock"
1124
1124
  ])])], 2),
1125
- n.config.branding !== !1 && !C(I).isWhiteLabeled.value ? (e(), x(ce, {
1125
+ n.config.branding !== !1 && !C(L).isWhiteLabeled.value ? (e(), x(ie, {
1126
1126
  key: 0,
1127
- "position-class": [C(P).state.previewMode ? "tpl:left-0 tpl:right-0" : C(B).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1127
+ "position-class": [C(F).state.previewMode ? "tpl:left-0 tpl:right-0" : C(H).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1128
1128
  }, null, 8, ["position-class"])) : v("", !0),
1129
1129
  f("div", {
1130
1130
  class: "tpl-sr-only",
1131
1131
  role: "status",
1132
1132
  "aria-live": "polite",
1133
1133
  "aria-atomic": "true",
1134
- "aria-label": C(F).t.landmarks.reorderAnnouncements
1135
- }, w(C(F).keyboardReorder.announcement.value), 9, jt),
1136
- t(E(G, {
1137
- "selected-block": C(P).selectedBlock.value,
1138
- settings: C(P).content.value.settings,
1139
- "shifted-left": C(B).rightPanelOpen.value,
1140
- onUpdateBlock: i[3] ||= (e) => C(P).updateBlock(C(P).selectedBlock.value.id, e),
1141
- onDeleteBlock: i[4] ||= (e) => C(F).blockActions.deleteBlock(C(P).selectedBlock.value.id),
1142
- onDuplicateBlock: i[5] ||= (e) => C(F).blockActions.duplicateBlock(C(P).selectedBlock.value),
1143
- onUpdateSettings: C(P).updateSettings
1134
+ "aria-label": C(I).t.landmarks.reorderAnnouncements
1135
+ }, w(C(I).keyboardReorder.announcement.value), 9, Mt),
1136
+ t(E(ae, {
1137
+ "selected-block": C(F).selectedBlock.value,
1138
+ settings: C(F).content.value.settings,
1139
+ "shifted-left": C(H).rightPanelOpen.value,
1140
+ onUpdateBlock: i[3] ||= (e) => C(F).updateBlock(C(F).selectedBlock.value.id, e),
1141
+ onDeleteBlock: i[4] ||= (e) => C(I).blockActions.deleteBlock(C(F).selectedBlock.value.id),
1142
+ onDuplicateBlock: i[5] ||= (e) => C(I).blockActions.duplicateBlock(C(F).selectedBlock.value),
1143
+ onUpdateSettings: C(F).updateSettings
1144
1144
  }, null, 8, [
1145
1145
  "selected-block",
1146
1146
  "settings",
1147
1147
  "shifted-left",
1148
1148
  "onUpdateSettings"
1149
- ]), [[y, !C(P).state.previewMode]]),
1150
- !C(S) && C(D) ? (e(), x(dt, {
1149
+ ]), [[y, !C(F).state.previewMode]]),
1150
+ !C(S) && C(D) ? (e(), x(ft, {
1151
1151
  key: 1,
1152
1152
  ref_key: "cloudPanelsRef",
1153
1153
  ref: d,
1154
1154
  config: l.config,
1155
- editor: C(P),
1156
- core: C(F),
1157
- "panel-state": C(B),
1155
+ editor: C(F),
1156
+ core: C(I),
1157
+ "panel-state": C(H),
1158
1158
  "plan-config-instance": C(A),
1159
- "test-email": C(R),
1160
- "media-lib": C(te),
1161
- "saved-modules-headless": C(z),
1162
- "show-save-module-dialog": C(U),
1163
- "save-module-pre-selected-block-id": C(K),
1164
- "show-module-browser-modal": C(W),
1165
- "onUpdate:showSaveModuleDialog": i[6] ||= (e) => U.value = e,
1166
- "onUpdate:saveModulePreSelectedBlockId": i[7] ||= (e) => K.value = e,
1167
- "onUpdate:showModuleBrowserModal": i[8] ||= (e) => W.value = e,
1159
+ "test-email": C(V),
1160
+ "media-lib": C(R),
1161
+ "saved-modules-headless": C(te),
1162
+ "show-save-module-dialog": C(G),
1163
+ "save-module-pre-selected-block-id": C(q),
1164
+ "show-module-browser-modal": C(K),
1165
+ "onUpdate:showSaveModuleDialog": i[6] ||= (e) => G.value = e,
1166
+ "onUpdate:saveModulePreSelectedBlockId": i[7] ||= (e) => q.value = e,
1167
+ "onUpdate:showModuleBrowserModal": i[8] ||= (e) => K.value = e,
1168
1168
  onSendTestEmail: oe,
1169
- onModuleInsert: le
1169
+ onModuleInsert: ue
1170
1170
  }, null, 8, [
1171
1171
  "config",
1172
1172
  "editor",
@@ -1181,11 +1181,12 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1181
1181
  "show-module-browser-modal"
1182
1182
  ])) : v("", !0),
1183
1183
  f("div", {
1184
- ref: (e) => C(F).popoverRoot.value = e,
1184
+ ref: (e) => C(I).popoverRoot.value = e,
1185
1185
  class: "tpl-popover-root"
1186
- }, null, 512)
1187
- ], 14, Ot));
1186
+ }, null, 512),
1187
+ E(ce)
1188
+ ], 14, kt));
1188
1189
  }
1189
- }), [["__scopeId", "data-v-05f1a843"]]);
1190
+ }), [["__scopeId", "data-v-3f0f5cfa"]]);
1190
1191
  //#endregion
1191
- export { Mt as default };
1192
+ export { Nt as default };