@templatical/editor 0.9.0 → 0.10.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 (105) hide show
  1. package/dist/{AiChatSidebar-BUKj9n02.js → AiChatSidebar-D30WPhbv.js} +2 -2
  2. package/dist/{AiFeatureMenu-Co14YVJt.js → AiFeatureMenu-B5CJX5zr.js} +3 -3
  3. package/dist/{BlockIssueBadge-DThKKeub.js → BlockIssueBadge-CkB4Yyz2.js} +2 -2
  4. package/dist/{CloudEditor-CAtw_sFC.js → CloudEditor-nT-R769W.js} +128 -127
  5. package/dist/{CollaboratorBar-Bc6q0gB9.js → CollaboratorBar-CwhlXODK.js} +2 -2
  6. package/dist/{CommentsSidebar-DiH4R4F0.js → CommentsSidebar-gpZMMI5w.js} +3 -3
  7. package/dist/{CountdownBlock-BTPefclD.js → CountdownBlock-BNvuXucv.js} +1 -1
  8. package/dist/{CountdownToolbar-Dvr2icg-.js → CountdownToolbar-Dl82DAmI.js} +2 -2
  9. package/dist/{DesignReferenceSidebar-BP32MgpS.js → DesignReferenceSidebar-Bs5AMxVd.js} +3 -3
  10. package/dist/{IssuesPanel-B1LT91IX.js → IssuesPanel-CqQa2BtU.js} +2 -2
  11. package/dist/{ModuleBrowserModal-CWegFoOA.js → ModuleBrowserModal-BWWgF0LC.js} +7 -7
  12. package/dist/{ModulePreviewCanvas-D9WUSSRT.js → ModulePreviewCanvas-D7Tk5HOt.js} +2 -2
  13. package/dist/{NumberWithSuffix-CxUBW_V2.js → NumberWithSuffix-DVy5HxMi.js} +1 -1
  14. package/dist/{ParagraphEditor-DrAz2yot.js → ParagraphEditor-DVSGdMOo.js} +7 -7
  15. package/dist/{RichTextEditorContent-gR169m1-.js → RichTextEditorContent-DN-fRjMa.js} +3 -3
  16. package/dist/{SaveModuleDialog-DWidA0c9.js → SaveModuleDialog-CkEYkyVD.js} +5 -5
  17. package/dist/{SnapshotHistory-CIo2Jaw-.js → SnapshotHistory-Nx9wrlbF.js} +3 -3
  18. package/dist/{TemplateScoringPanel-seBvvn8O.js → TemplateScoringPanel-BG9M-29t.js} +2 -2
  19. package/dist/{TestEmailModal-BuCuWp3N.js → TestEmailModal-CRjtEs6S.js} +3 -3
  20. package/dist/{TitleEditor-BmW0uMl7.js → TitleEditor-CvtV4pCA.js} +6 -6
  21. package/dist/{TplModal-YFpBaiLj.js → TplModal-BudEYVcJ.js} +3 -3
  22. package/dist/{blockTypeIcons-DCkHXPhx.js → blockTypeIcons-Dd-UvfnC.js} +1 -1
  23. package/dist/bundle-stats.json +6 -6
  24. package/dist/cdn/chunks/{AiFeatureMenu-Dayzk2H7.js → AiFeatureMenu-DKOv8VnB.js} +2 -2
  25. package/dist/cdn/chunks/{AiFeatureMenu-Dayzk2H7.js.map → AiFeatureMenu-DKOv8VnB.js.map} +1 -1
  26. package/dist/cdn/chunks/{BlockIssueBadge-D_US2wqo.js → BlockIssueBadge-DpiSTwM7.js} +4 -4
  27. package/dist/cdn/chunks/{BlockIssueBadge-D_US2wqo.js.map → BlockIssueBadge-DpiSTwM7.js.map} +1 -1
  28. package/dist/cdn/chunks/{CloudEditor-CyJItWsK.js → CloudEditor-xc_uOEgn.js} +169 -168
  29. package/dist/cdn/chunks/{CloudEditor-CyJItWsK.js.map → CloudEditor-xc_uOEgn.js.map} +1 -1
  30. package/dist/cdn/chunks/{CollaboratorBar-C4CFs5EJ.js → CollaboratorBar-VWfPri_h.js} +3 -3
  31. package/dist/cdn/chunks/{CollaboratorBar-C4CFs5EJ.js.map → CollaboratorBar-VWfPri_h.js.map} +1 -1
  32. package/dist/cdn/chunks/{CountdownBlock-D6lCXhZA.js → CountdownBlock-BKsCWboK.js} +2 -2
  33. package/dist/cdn/chunks/{CountdownBlock-D6lCXhZA.js.map → CountdownBlock-BKsCWboK.js.map} +1 -1
  34. package/dist/cdn/chunks/{CountdownToolbar-BsGUxoRv.js → CountdownToolbar-BLtECDNb.js} +3 -3
  35. package/dist/cdn/chunks/{CountdownToolbar-BsGUxoRv.js.map → CountdownToolbar-BLtECDNb.js.map} +1 -1
  36. package/dist/cdn/chunks/{IssuesPanel-DeHTmRDz.js → IssuesPanel-BW2piyvs.js} +8 -8
  37. package/dist/cdn/chunks/{IssuesPanel-DeHTmRDz.js.map → IssuesPanel-BW2piyvs.js.map} +1 -1
  38. package/dist/cdn/chunks/{ModuleBrowserModal-Cgjz4xAz.js → ModuleBrowserModal-TLlKpvjX.js} +8 -8
  39. package/dist/cdn/chunks/{ModuleBrowserModal-Cgjz4xAz.js.map → ModuleBrowserModal-TLlKpvjX.js.map} +1 -1
  40. package/dist/cdn/chunks/{ModulePreviewCanvas-CeS9PsAA.js → ModulePreviewCanvas-wu7y-vrh.js} +2 -2
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-CeS9PsAA.js.map → ModulePreviewCanvas-wu7y-vrh.js.map} +1 -1
  42. package/dist/cdn/chunks/{NumberWithSuffix-Bp-idLCc.js → NumberWithSuffix-DxoUtTMr.js} +2 -2
  43. package/dist/cdn/chunks/{NumberWithSuffix-Bp-idLCc.js.map → NumberWithSuffix-DxoUtTMr.js.map} +1 -1
  44. package/dist/cdn/chunks/{ParagraphEditor-fM9aFu8T.js → ParagraphEditor-DvxIO2LN.js} +33 -33
  45. package/dist/cdn/chunks/{ParagraphEditor-fM9aFu8T.js.map → ParagraphEditor-DvxIO2LN.js.map} +1 -1
  46. package/dist/cdn/chunks/{RichTextEditorContent-DwNPE5H5.js → RichTextEditorContent-Dm9GXJmo.js} +3 -3
  47. package/dist/cdn/chunks/{RichTextEditorContent-DwNPE5H5.js.map → RichTextEditorContent-Dm9GXJmo.js.map} +1 -1
  48. package/dist/cdn/chunks/{SaveModuleDialog-BrtDXzIz.js → SaveModuleDialog-BRAdVcYM.js} +4 -4
  49. package/dist/cdn/chunks/{SaveModuleDialog-BrtDXzIz.js.map → SaveModuleDialog-BRAdVcYM.js.map} +1 -1
  50. package/dist/cdn/chunks/{TitleEditor-D0rSnye0.js → TitleEditor-D3gPRd0x.js} +8 -8
  51. package/dist/cdn/chunks/{TitleEditor-D0rSnye0.js.map → TitleEditor-D3gPRd0x.js.map} +1 -1
  52. package/dist/cdn/chunks/blockTypeIcons-C2cm4RjU.js +22 -0
  53. package/dist/cdn/chunks/{blockTypeIcons-YOEe5mDE.js.map → blockTypeIcons-C2cm4RjU.js.map} +1 -1
  54. package/dist/{de-CATfXDKV.js → cdn/chunks/de-DIAGP7yH.js} +2 -6
  55. package/dist/cdn/chunks/de-DIAGP7yH.js.map +1 -0
  56. package/dist/{en-CwCAgYL5.js → cdn/chunks/en-nqIW8Q9W.js} +2 -6
  57. package/dist/cdn/chunks/en-nqIW8Q9W.js.map +1 -0
  58. package/dist/cdn/chunks/{extensions-GYsbQFPr.js → extensions-SS1ywPUR.js} +21 -21
  59. package/dist/cdn/chunks/{extensions-GYsbQFPr.js.map → extensions-SS1ywPUR.js.map} +1 -1
  60. package/dist/cdn/chunks/{features-D-2kVhHY.js → features-CwZTdcbt.js} +988 -967
  61. package/dist/cdn/chunks/features-CwZTdcbt.js.map +1 -0
  62. package/dist/cdn/chunks/{icons-fZoyKV_s.js → icons-CbNEr1kc.js} +11 -25
  63. package/dist/cdn/chunks/icons-CbNEr1kc.js.map +1 -0
  64. package/dist/cdn/chunks/{media-library-CO2WOETY.js → media-library-BRpHZOl7.js} +76 -76
  65. package/dist/cdn/chunks/{media-library-CO2WOETY.js.map → media-library-BRpHZOl7.js.map} +1 -1
  66. package/dist/{pt-BR-D3Mg7AKe.js → cdn/chunks/pt-BR-DCNnLLx9.js} +2 -6
  67. package/dist/cdn/chunks/pt-BR-DCNnLLx9.js.map +1 -0
  68. package/dist/cdn/chunks/{quality-BxPiS-wv.js → quality-BqJqIPRU.js} +494 -484
  69. package/dist/cdn/chunks/quality-BqJqIPRU.js.map +1 -0
  70. package/dist/cdn/chunks/{renderer-7z2t_bYQ.js → renderer-CGVYkdUi.js} +99 -82
  71. package/dist/cdn/chunks/renderer-CGVYkdUi.js.map +1 -0
  72. package/dist/cdn/chunks/{src-ftxPuuQh.js → src-CvzfrFlT.js} +8 -8
  73. package/dist/cdn/chunks/{src-ftxPuuQh.js.map → src-CvzfrFlT.js.map} +1 -1
  74. package/dist/cdn/chunks/{styles-o0HIrw9F.js → styles-2P5yvfsS.js} +1186 -1213
  75. package/dist/cdn/chunks/styles-2P5yvfsS.js.map +1 -0
  76. package/dist/cdn/editor.css +1 -1
  77. package/dist/cdn/editor.js +109 -100
  78. package/dist/cdn/editor.js.map +1 -1
  79. package/dist/{cloud-VxYMtfXC.js → cloud-BBC7bv8q.js} +1 -1
  80. package/dist/{cdn/chunks/de-CATfXDKV.js → de-DIAGP7yH.js} +0 -8
  81. package/dist/{dist-CIV3Brg-.js → dist-GAmhYvUK.js} +3 -5
  82. package/dist/{cdn/chunks/en-CwCAgYL5.js → en-nqIW8Q9W.js} +0 -8
  83. package/dist/{extensions-Mj2-D8uK.js → extensions-C87ZSllQ.js} +3 -3
  84. package/dist/index.d.ts +8 -0
  85. package/dist/keys-Vt3XipJl.js +10 -0
  86. package/dist/{cdn/chunks/pt-BR-D3Mg7AKe.js → pt-BR-DCNnLLx9.js} +0 -8
  87. package/dist/style.css +1 -1
  88. package/dist/{styles-CJtcKmsx.js → styles-DOjWbqA9.js} +1149 -1190
  89. package/dist/templatical-editor.js +116 -107
  90. package/dist/{useCloudI18n-DKWJg6rJ.js → useCloudI18n-sRfoQCZY.js} +1 -1
  91. package/dist/{useEditorCore-CEkf_VWX.js → useEditorCore-DxApq2hZ.js} +713 -690
  92. package/dist/{useI18n-Besvmtxy.js → useI18n-lF6hYgZu.js} +1 -1
  93. package/dist/{useMergeTag-WNzaCpXR.js → useMergeTag-CZVI7Xe5.js} +3 -3
  94. package/dist/{usePopoverRoot-CKt956u-.js → usePopoverRoot-p2BanBI7.js} +1 -1
  95. package/package.json +8 -8
  96. package/dist/cdn/chunks/blockTypeIcons-YOEe5mDE.js +0 -22
  97. package/dist/cdn/chunks/de-CATfXDKV.js.map +0 -1
  98. package/dist/cdn/chunks/en-CwCAgYL5.js.map +0 -1
  99. package/dist/cdn/chunks/features-D-2kVhHY.js.map +0 -1
  100. package/dist/cdn/chunks/icons-fZoyKV_s.js.map +0 -1
  101. package/dist/cdn/chunks/pt-BR-D3Mg7AKe.js.map +0 -1
  102. package/dist/cdn/chunks/quality-BxPiS-wv.js.map +0 -1
  103. package/dist/cdn/chunks/renderer-7z2t_bYQ.js.map +0 -1
  104. package/dist/cdn/chunks/styles-o0HIrw9F.js.map +0 -1
  105. package/dist/keys-BiQlvx51.js +0 -10
@@ -1,17 +1,17 @@
1
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-o0HIrw9F.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 te, Nt as R, Qt as z, Rt as B, 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 J, f as Y, g as X, h as oe, 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-CwZTdcbt.js";
3
+ import { S as be, x as xe } from "./icons-CbNEr1kc.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-2P5yvfsS.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 = Y({
15
15
  authManager: n,
16
16
  templateId: i.state.template.id,
17
17
  onRestore: b,
@@ -61,7 +61,7 @@ function je(t) {
61
61
  }
62
62
  //#endregion
63
63
  //#region src/cloud/composables/useCloudPanelState.ts
64
- function Me() {
64
+ function Ne() {
65
65
  let e = c(null), t = f({
66
66
  get: () => e.value === "ai-chat",
67
67
  set: (t) => e.value = t ? "ai-chat" : null
@@ -84,7 +84,7 @@ function Me() {
84
84
  function g(t) {
85
85
  l.value = !1, e.value = e.value === t ? null : t;
86
86
  }
87
- return X(u, () => {
87
+ return q(u, () => {
88
88
  l.value = !1;
89
89
  }), {
90
90
  activePanel: e,
@@ -106,10 +106,10 @@ function Me() {
106
106
  }
107
107
  //#endregion
108
108
  //#region src/cloud/composables/useCollabUndoWarning.ts
109
- function Ne(e) {
109
+ function Pe(e) {
110
110
  let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = c(!1), a = c(!1), { start: o } = Z(() => {
111
111
  a.value = !1;
112
- }, ye, { immediate: !1 });
112
+ }, j, { immediate: !1 });
113
113
  function s() {
114
114
  i.value || !t.value || n() === 0 || !r.value || (i.value = !0, a.value = !0, o());
115
115
  }
@@ -120,7 +120,7 @@ function Ne(e) {
120
120
  }
121
121
  //#endregion
122
122
  //#region src/cloud/composables/useCloudFeatureFlags.ts
123
- function Pe(e) {
123
+ function Fe(e) {
124
124
  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
125
  p.value = "idle";
126
126
  }, 3e3, { immediate: !1 });
@@ -139,7 +139,7 @@ function Pe(e) {
139
139
  }
140
140
  //#endregion
141
141
  //#region src/cloud/composables/useCloudMediaLibrary.ts
142
- function Fe(e) {
142
+ function Ie(e) {
143
143
  let { onRequestMedia: t, mediaLibraryOpen: n, mediaLibraryAccept: i } = e, a = null;
144
144
  async function o() {
145
145
  if (t) {
@@ -174,30 +174,30 @@ function Fe(e) {
174
174
  }
175
175
  //#endregion
176
176
  //#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({
177
+ function Le(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 P({
179
179
  ...t.auth,
180
180
  onError: t.onError
181
- }), _ = ae({
181
+ }), _ = se({
182
182
  authManager: g,
183
183
  onError: t.onError
184
- }), v = c(/* @__PURE__ */ new Map()), y = ge({
184
+ }), v = c(/* @__PURE__ */ new Map()), y = ve({
185
185
  authManager: g,
186
186
  defaultFontFamily: t.fonts?.defaultFont,
187
187
  templateDefaults: t.templateDefaults,
188
188
  onError: t.onError,
189
189
  lockedBlocks: v
190
- }), b = oe({
190
+ }), b = ce({
191
191
  authManager: g,
192
192
  onError: t.onError
193
193
  });
194
- t.mcp?.enabled && ue({
194
+ t.mcp?.enabled && fe({
195
195
  editor: y,
196
196
  channel: b.channel,
197
197
  onOperation: t.mcp.onOperation
198
198
  });
199
199
  let x = null;
200
- t.collaboration?.enabled && (x = J({
200
+ t.collaboration?.enabled && (x = X({
201
201
  authManager: g,
202
202
  editor: y,
203
203
  channel: b.channel,
@@ -208,7 +208,7 @@ function Ie(e) {
208
208
  onBlockUnlocked: t.collaboration.onBlockUnlocked
209
209
  }), ee(() => x.lockedBlocks.value, (e) => {
210
210
  v.value = e;
211
- }, { immediate: !0 }), Y(y, x));
211
+ }, { immediate: !0 }), oe(y, x));
212
212
  let S = f(() => !!t.collaboration?.enabled && _.hasFeature("collaboration")), C = k({
213
213
  editor: y,
214
214
  config: {
@@ -219,7 +219,7 @@ function Ie(e) {
219
219
  mergeTags: t.mergeTags,
220
220
  displayConditions: t.displayConditions,
221
221
  onRequestMedia: null,
222
- lint: Te(t),
222
+ lint: je(t),
223
223
  onSave: () => {
224
224
  p.value?.().catch((e) => {
225
225
  t.onError?.(e);
@@ -240,13 +240,13 @@ function Ie(e) {
240
240
  keyboardOptions: { onBeforeUndo: () => h?.showCollabUndoWarning() },
241
241
  editorRoot: e.editorRoot,
242
242
  containerEl: e.containerEl
243
- }), w = Ne({
243
+ }), w = Pe({
244
244
  isCollaborationEnabled: S,
245
245
  getCollaboratorCount: () => x?.collaborators.value.length ?? 0,
246
246
  canUndo: C.history.canUndo
247
247
  });
248
248
  h = w;
249
- let T = je({
249
+ let T = Me({
250
250
  authManager: g,
251
251
  editor: y,
252
252
  history: C.history,
@@ -255,32 +255,32 @@ function Ie(e) {
255
255
  onError: t.onError
256
256
  });
257
257
  m = T;
258
- let E = Me(), D = W(t.ai), A = Pe({
258
+ let E = Ne(), D = re(t.ai), A = Fe({
259
259
  planConfigInstance: _,
260
260
  aiConfig: D,
261
261
  editor: y
262
- }), j = Fe({
262
+ }), j = Ie({
263
263
  onRequestMedia: t.onRequestMedia,
264
264
  mediaLibraryOpen: E.mediaLibraryOpen,
265
265
  mediaLibraryAccept: E.mediaLibraryAccept
266
266
  });
267
- ie({
267
+ W({
268
268
  onBlockMove: y.moveBlock,
269
269
  onBlockAdd: y.addBlock
270
270
  });
271
- let N = fe({
271
+ let M = me({
272
272
  authManager: g,
273
273
  getFontsConfig: () => t.fonts,
274
274
  canUseCustomFonts: () => _.hasFeature("custom_fonts")
275
- }), P = K({
275
+ }), N = ae({
276
276
  authManager: g,
277
277
  getTemplateId: () => y.state.template?.id ?? null,
278
278
  save: () => y.save(),
279
- exportHtml: (e) => N.exportHtml(e),
279
+ exportHtml: (e) => M.exportHtml(e),
280
280
  onError: t.onError,
281
281
  isAuthReady: l,
282
282
  onBeforeTestEmail: t.onBeforeTestEmail
283
- }), F = me({
283
+ }), F = ge({
284
284
  authManager: g,
285
285
  getTemplateId: () => y.state.template?.id ?? null,
286
286
  getSocketId: () => b.getSocketId(),
@@ -289,55 +289,55 @@ function Ie(e) {
289
289
  isAuthReady: l,
290
290
  hasCommentingFeature: () => t.commenting !== !1 && _.hasFeature("commenting")
291
291
  });
292
- H({
292
+ G({
293
293
  comments: F,
294
294
  channel: b.channel
295
295
  });
296
- let I = se({
296
+ let I = le({
297
297
  authManager: g,
298
298
  onError: t.onError
299
- }), R = c(!1), U = c(null), q = c(!1), X = ve({
299
+ }), L = c(!1), V = c(null), H = c(!1), K = ye({
300
300
  authManager: g,
301
301
  getTemplateId: () => y.state.template?.id ?? null
302
302
  });
303
- function Z(e) {
303
+ function q(e) {
304
304
  E.commentsOpen.value = !0, queueMicrotask(() => {
305
305
  o()?.filterByBlock(e);
306
306
  });
307
307
  }
308
- a(V, j.handleRequestMedia), a(re, g), a(te, D), a(z, F), a(L, I), a(O, X), a(B, {
308
+ a(z, j.handleRequestMedia), a(B, g), a(te, D), a(U, F), a(O, I), a(J, K), a(ne, {
309
309
  plan: _,
310
310
  ai: D,
311
311
  comments: {
312
312
  getBlockCount: (e) => F.commentCountByBlock.value.get(e) ?? 0,
313
- openForBlock: Z
313
+ openForBlock: q
314
314
  },
315
315
  savedModules: {
316
316
  openSaveDialog: (e) => {
317
- U.value = e ?? null, R.value = !0;
317
+ V.value = e ?? null, L.value = !0;
318
318
  },
319
319
  openBrowser: () => {
320
- q.value = !0;
320
+ H.value = !0;
321
321
  },
322
322
  moduleCount: f(() => I.modules.value.length)
323
323
  }
324
324
  });
325
- function ce(e) {
325
+ function Y(e) {
326
326
  _.hasFeature("theme_customization") && (C.themeOverrides.value = e);
327
327
  }
328
- function le(e) {
328
+ function Z(e) {
329
329
  y.setUiTheme(e);
330
330
  }
331
- async function de() {
331
+ async function ue() {
332
332
  s.value = !0, u.value = null;
333
333
  try {
334
334
  if (await g.initialize(), d) return;
335
335
  l.value = !0;
336
- let e = await G({ authManager: g });
336
+ let e = await ie({ authManager: g });
337
337
  if (d) return;
338
338
  if (!e.api.ok) throw Error("Health check failed: API is not reachable");
339
339
  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;
340
+ if (e.websocket.ok || R.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), d) return;
341
341
  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
342
  } catch (e) {
343
343
  if (d) return;
@@ -347,7 +347,7 @@ function Ie(e) {
347
347
  d || (s.value = !1);
348
348
  }
349
349
  }
350
- function Q() {
350
+ function de() {
351
351
  d = !0, r.cleanupFontLinks(), b.disconnect(), C.destroy(), t.onUnmount?.();
352
352
  }
353
353
  return {
@@ -365,30 +365,30 @@ function Ie(e) {
365
365
  aiConfig: D,
366
366
  featureFlags: A,
367
367
  mediaLib: j,
368
- exporter: N,
369
- testEmail: P,
368
+ exporter: M,
369
+ testEmail: N,
370
370
  commentsInstance: F,
371
371
  savedModulesHeadless: I,
372
- scoringInstance: X,
372
+ scoringInstance: K,
373
373
  panelState: E,
374
374
  snapshotPreview: T,
375
375
  collabWarning: w,
376
- showSaveModuleDialog: R,
377
- showModuleBrowserModal: q,
378
- saveModulePreSelectedBlockId: U,
376
+ showSaveModuleDialog: L,
377
+ showModuleBrowserModal: H,
378
+ saveModulePreSelectedBlockId: V,
379
379
  onSaveHook: p,
380
- initialize: de,
381
- destroy: Q,
382
- setThemeOverrides: ce,
383
- setUiTheme: le,
384
- openCommentsForBlock: Z
380
+ initialize: ue,
381
+ destroy: de,
382
+ setThemeOverrides: Y,
383
+ setUiTheme: Z,
384
+ openCommentsForBlock: q
385
385
  };
386
386
  }
387
387
  //#endregion
388
388
  //#region src/utils/preRenderCustomBlocks.ts
389
- async function Le(e, t) {
389
+ async function Re(e, t) {
390
390
  let n = async (e) => {
391
- if (N(e)) {
391
+ if (M(e)) {
392
392
  let n = e;
393
393
  try {
394
394
  n.renderedHtml = await t.renderCustomBlock(n);
@@ -405,10 +405,10 @@ async function Le(e, t) {
405
405
  }
406
406
  //#endregion
407
407
  //#region src/cloud/composables/useCloudLifecycle.ts
408
- function Re(e) {
408
+ function ze(e) {
409
409
  let { config: t, editor: n, websocket: r, planConfigInstance: i, snapshotPreview: a, core: o, exporter: s, featureFlags: c, isDestroyed: l } = e;
410
410
  function u() {
411
- return R(i.config.value.websocket);
411
+ return V(i.config.value.websocket);
412
412
  }
413
413
  async function d(e) {
414
414
  let i = await n.create(e);
@@ -421,7 +421,7 @@ function Re(e) {
421
421
  async function p() {
422
422
  c.isSaveExporting.value = !0, c.saveStatus.value = "idle";
423
423
  try {
424
- if (await Le(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
424
+ if (await Re(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
425
425
  let e = await n.save();
426
426
  if (l()) throw Error("Component unmounted during save");
427
427
  a.initSnapshotHistory(), a.snapshotHistoryInstance.value?.loadSnapshots();
@@ -448,7 +448,7 @@ function Re(e) {
448
448
  }
449
449
  //#endregion
450
450
  //#region src/cloud/composables/useCloudSaveGate.ts
451
- function ze(e) {
451
+ function Be(e) {
452
452
  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
453
  async function o(e) {
454
454
  return a.value ? (n = e, t.value = !0, !1) : (await e(), !0);
@@ -471,7 +471,7 @@ function ze(e) {
471
471
  }
472
472
  //#endregion
473
473
  //#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({
474
+ 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
475
  __name: "CloudSaveGateModal",
476
476
  props: {
477
477
  open: { type: Boolean },
@@ -493,18 +493,18 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
493
493
  "aria-label": h(r).saveGate.title,
494
494
  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
495
  onClick: a[2] ||= _((e) => n("cancel"), ["self"])
496
- }, [x("div", Ve, [
497
- x("header", He, [D(h(de), {
496
+ }, [x("div", He, [
497
+ x("header", Ue, [D(h(pe), {
498
498
  size: 18,
499
499
  "stroke-width": 2,
500
500
  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", {
501
+ }), x("h2", We, d(h(r).saveGate.title), 1)]),
502
+ x("p", Ge, d(h(r).saveGate.body), 1),
503
+ x("ul", Ke, [(i(!0), p(w, null, o(e.issues, (e) => (i(), p("li", {
504
504
  key: `${e.ruleId}-${e.blockId ?? "template"}`,
505
505
  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", {
506
+ }, [x("span", qe, d(e.message), 1), x("span", Je, d(e.ruleId), 1)]))), 128))]),
507
+ x("footer", Ye, [x("button", {
508
508
  type: "button",
509
509
  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
510
  onClick: a[0] ||= (e) => n("cancel")
@@ -513,11 +513,11 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
513
513
  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
514
  onClick: a[1] ||= (e) => n("confirm")
515
515
  }, d(h(r).saveGate.confirm), 1)])
516
- ])], 8, Be)) : m("", !0)]),
516
+ ])], 8, Ve)) : m("", !0)]),
517
517
  _: 1
518
518
  }));
519
519
  }
520
- }), Xe = {
520
+ }), Ze = {
521
521
  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
522
  style: {
523
523
  "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)",
@@ -526,24 +526,24 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
526
526
  "box-shadow": "var(--tpl-shadow-md)",
527
527
  "border-bottom": "1px solid var(--tpl-border)"
528
528
  }
529
- }, Ze = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, Qe = {
529
+ }, Qe = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, $e = {
530
530
  key: 0,
531
531
  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 = {
532
+ }, 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
533
  key: 1,
534
534
  "aria-live": "polite",
535
535
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success)]"
536
- }, rt = {
536
+ }, it = {
537
537
  key: 2,
538
538
  "aria-live": "polite",
539
539
  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 = {
540
+ }, at = ["aria-label", "aria-expanded"], ot = {
541
541
  key: 0,
542
542
  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 = {
543
+ }, st = ["aria-expanded"], ct = {
544
544
  key: 0,
545
545
  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({
546
+ }, lt = ["disabled"], ut = ["disabled"], dt = /* @__PURE__ */ E({
547
547
  __name: "CloudHeader",
548
548
  props: {
549
549
  editor: {},
@@ -561,13 +561,13 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
561
561
  },
562
562
  emits: ["save"],
563
563
  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, {
564
+ let t = u(() => import("./CollaboratorBar-VWfPri_h.js")), n = u(() => import("./features-CwZTdcbt.js").then((e) => e.r)), r = u(() => import("./AiFeatureMenu-DKOv8VnB.js")), { t: a, format: o } = Q();
565
+ return (c, l) => (i(), p("header", Ze, [
566
+ x("div", Qe, [e.featureFlags.templateLimit.value === null ? m("", !0) : (i(), p("span", $e, d(h(o)(h(a).header.templatesUsed, {
567
567
  used: e.featureFlags.templateCount.value,
568
568
  max: e.featureFlags.templateLimit.value
569
569
  })), 1))]),
570
- x("div", $e, [
570
+ x("div", et, [
571
571
  D(Se, {
572
572
  viewport: e.editor.state.viewport,
573
573
  onChange: e.editor.setViewport
@@ -600,19 +600,19 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
600
600
  "onNavigate"
601
601
  ])) : m("", !0)
602
602
  ]),
603
- x("div", et, [
603
+ x("div", tt, [
604
604
  e.featureFlags.saveStatus.value === "error" ? (i(), p("div", {
605
605
  key: 0,
606
606
  "aria-live": "assertive",
607
607
  class: "tpl-tooltip tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-danger)]",
608
608
  "data-tooltip": e.featureFlags.saveErrorMessage.value
609
- }, [D(h(j), {
609
+ }, [D(h(N), {
610
610
  size: 12,
611
611
  "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), {
612
+ }), T(" " + d(h(a).header.saveFailed), 1)], 8, nt)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", rt, [D(h(A), {
613
613
  size: 12,
614
614
  "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),
615
+ }), 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
616
  e.commentsInstance.isEnabled.value && e.featureFlags.hasTemplateSaved.value ? (i(), p("button", {
617
617
  key: 3,
618
618
  "aria-label": e.commentsInstance.unresolvedCount.value > 0 ? `${h(a).comments.button} (${e.commentsInstance.unresolvedCount.value})` : h(a).comments.button,
@@ -625,13 +625,13 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
625
625
  }),
626
626
  onClick: l[0] ||= (t) => e.panelState.commentsOpen.value = !e.panelState.commentsOpen.value
627
627
  }, [
628
- D(h(U), {
628
+ D(h(K), {
629
629
  size: 16,
630
630
  "stroke-width": 2
631
631
  }),
632
632
  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),
633
+ e.commentsInstance.unresolvedCount.value > 0 && !e.panelState.commentsOpen.value ? (i(), p("span", ot, d(e.commentsInstance.unresolvedCount.value), 1)) : m("", !0)
634
+ ], 14, at)) : m("", !0),
635
635
  e.featureFlags.canUseAiGeneration.value && e.featureFlags.hasTemplateSaved.value ? (i(), p("div", {
636
636
  key: 4,
637
637
  ref: (t) => e.panelState.aiMenuRef.value = t,
@@ -640,11 +640,11 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
640
640
  "aria-expanded": e.panelState.aiMenuOpen.value,
641
641
  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
642
  onClick: l[1] ||= _((...t) => e.panelState.toggleAiMenu && e.panelState.toggleAiMenu(...t), ["stop"])
643
- }, [D(h(pe), {
643
+ }, [D(h(he), {
644
644
  size: 16,
645
645
  "stroke-width": 2,
646
646
  class: "tpl-ai-btn-icon"
647
- }), T(" " + d(h(a).aiChat.button), 1)], 10, ot), D(y, {
647
+ }), T(" " + d(h(a).aiChat.button), 1)], 10, st), D(y, {
648
648
  "enter-active-class": "tpl:transition-all tpl:duration-150 tpl:ease-out",
649
649
  "enter-from-class": "tpl:scale-95 tpl:opacity-0",
650
650
  "enter-to-class": "tpl:scale-100 tpl:opacity-100",
@@ -652,7 +652,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
652
652
  "leave-from-class": "tpl:scale-100 tpl:opacity-100",
653
653
  "leave-to-class": "tpl:scale-95 tpl:opacity-0"
654
654
  }, {
655
- default: s(() => [e.panelState.aiMenuOpen.value ? (i(), p("div", st, [D(h(r), {
655
+ default: s(() => [e.panelState.aiMenuOpen.value ? (i(), p("div", ct, [D(h(r), {
656
656
  "active-feature": e.panelState.activeAiFeature.value,
657
657
  onSelect: e.panelState.handleAiFeatureSelect
658
658
  }, null, 8, ["active-feature", "onSelect"])])) : m("", !0)]),
@@ -668,16 +668,16 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
668
668
  },
669
669
  disabled: e.testEmail.isSending.value || !e.featureFlags.hasTemplateSaved.value,
670
670
  onClick: l[2] ||= (t) => e.panelState.testEmailModalOpen.value = !0
671
- }, [e.testEmail.isSending.value ? (i(), v(h(he), {
671
+ }, [e.testEmail.isSending.value ? (i(), v(h(_e), {
672
672
  key: 1,
673
673
  class: "tpl-spinner",
674
674
  size: 16,
675
675
  "stroke-width": 2
676
- })) : (i(), v(h(ce), {
676
+ })) : (i(), v(h(ue), {
677
677
  key: 0,
678
678
  size: 16,
679
679
  "stroke-width": 2
680
- })), T(" " + d(h(a).testEmail.button), 1)], 10, ct)) : m("", !0),
680
+ })), T(" " + d(h(a).testEmail.button), 1)], 10, lt)) : m("", !0),
681
681
  x("button", {
682
682
  class: b(h($)),
683
683
  style: {
@@ -687,7 +687,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
687
687
  },
688
688
  disabled: e.isSaveDisabled,
689
689
  onClick: l[3] ||= (e) => c.$emit("save")
690
- }, [e.isSaving ? (i(), v(h(he), {
690
+ }, [e.isSaving ? (i(), v(h(_e), {
691
691
  key: 1,
692
692
  class: "tpl-spinner",
693
693
  size: 16,
@@ -696,11 +696,11 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
696
696
  key: 0,
697
697
  size: 16,
698
698
  "stroke-width": 2
699
- })), T(" " + d(e.isSaving ? h(a).header.saving : h(a).header.save), 1)], 10, lt)
699
+ })), T(" " + d(e.isSaving ? h(a).header.saving : h(a).header.save), 1)], 10, ut)
700
700
  ])
701
701
  ]));
702
702
  }
703
- }), dt = /* @__PURE__ */ E({
703
+ }), ft = /* @__PURE__ */ E({
704
704
  __name: "CloudPanels",
705
705
  props: {
706
706
  config: {},
@@ -723,9 +723,9 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
723
723
  "module-insert"
724
724
  ],
725
725
  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 () => {
726
+ let r = u(() => import("./features-CwZTdcbt.js").then((e) => e.o)), a = u(() => import("./features-CwZTdcbt.js").then((e) => e.a)), o = u(() => import("./features-CwZTdcbt.js").then((e) => e.i)), s = u(() => import("./features-CwZTdcbt.js").then((e) => e.n)), l = u(() => import("./features-CwZTdcbt.js").then((e) => e.t)), d = u(() => import("./SaveModuleDialog-BRAdVcYM.js")), f = u(() => import("./ModuleBrowserModal-TLlKpvjX.js")), g = u(async () => {
727
727
  try {
728
- return (await import("./src-ftxPuuQh.js")).MediaLibraryModal;
728
+ return (await import("./src-CvzfrFlT.js")).MediaLibraryModal;
729
729
  } catch {
730
730
  throw Error("[Templatical] Cloud media library requires the optional peer dependency '@templatical/media-library'. Please install it.");
731
731
  }
@@ -805,23 +805,23 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
805
805
  ])
806
806
  ], 64));
807
807
  }
808
- }), ft = {
808
+ }), pt = {
809
809
  key: 0,
810
810
  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({
811
+ }, 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
812
  __name: "CloudLoadingOverlay",
813
813
  props: { visible: { type: Boolean } },
814
814
  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", {
815
+ 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
816
  key: e,
817
817
  class: "tpl-shimmer tpl:size-7 tpl:rounded-[var(--tpl-radius-sm)]"
818
818
  })), 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
819
  }
820
- }), gt = {
820
+ }), _t = {
821
821
  key: 0,
822
822
  role: "alert",
823
823
  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({
824
+ }, 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
825
  __name: "CloudErrorOverlay",
826
826
  props: {
827
827
  error: {},
@@ -836,13 +836,13 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
836
836
  function o(e) {
837
837
  return "isNotFound" in e && !!e.isNotFound;
838
838
  }
839
- return (t, s) => e.visible && e.error ? (i(), p("div", gt, [
840
- x("div", _t, [D(h(j), {
839
+ return (t, s) => e.visible && e.error ? (i(), p("div", _t, [
840
+ x("div", vt, [D(h(N), {
841
841
  size: 32,
842
842
  "stroke-width": 1.5,
843
843
  class: "tpl:text-[var(--tpl-danger)]"
844
844
  })]),
845
- x("div", vt, [x("h2", yt, d(h(r).error.title), 1), x("p", bt, d(a(e.error)), 1)]),
845
+ x("div", yt, [x("h2", bt, d(h(r).error.title), 1), x("p", xt, d(a(e.error)), 1)]),
846
846
  o(e.error) ? m("", !0) : (i(), p("button", {
847
847
  key: 0,
848
848
  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 +850,20 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
850
850
  }, d(h(r).error.retry), 1))
851
851
  ])) : m("", !0);
852
852
  }
853
- }), St = {
853
+ }), Ct = {
854
854
  key: 0,
855
855
  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({
856
+ }, 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
857
  __name: "SnapshotPreviewBanner",
858
858
  props: { visible: { type: Boolean } },
859
859
  emits: ["cancel", "confirm"],
860
860
  setup(e, { emit: t }) {
861
861
  let n = t, { t: r } = Q();
862
- return (t, a) => e.visible ? (i(), p("div", St, [x("div", Ct, [D(h(P), {
862
+ return (t, a) => e.visible ? (i(), p("div", Ct, [x("div", wt, [D(h(F), {
863
863
  size: 18,
864
864
  "stroke-width": 2,
865
865
  class: "tpl:text-[var(--tpl-primary)]"
866
- }), x("span", null, d(h(r).snapshotPreview.message), 1)]), x("div", wt, [x("button", {
866
+ }), x("span", null, d(h(r).snapshotPreview.message), 1)]), x("div", Tt, [x("button", {
867
867
  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
868
  style: { "background-color": "transparent" },
869
869
  onClick: a[0] ||= (e) => n("cancel")
@@ -872,7 +872,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
872
872
  onClick: a[1] ||= (e) => n("confirm")
873
873
  }, d(h(r).snapshotPreview.restore), 1)])])) : m("", !0);
874
874
  }
875
- }), Et = {
875
+ }), Dt = {
876
876
  key: 0,
877
877
  role: "status",
878
878
  "aria-live": "polite",
@@ -882,14 +882,14 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
882
882
  color: "var(--tpl-text)",
883
883
  border: "1px solid var(--tpl-warning)"
884
884
  }
885
- }, Dt = /* @__PURE__ */ E({
885
+ }, Ot = /* @__PURE__ */ E({
886
886
  __name: "CollabUndoToast",
887
887
  props: { visible: { type: Boolean } },
888
888
  setup(e) {
889
- let { t } = F();
890
- return (n, r) => e.visible ? (i(), p("div", Et, d(h(t).history.collabWarning), 1)) : m("", !0);
889
+ let { t } = I();
890
+ return (n, r) => e.visible ? (i(), p("div", Dt, d(h(t).history.collabWarning), 1)) : m("", !0);
891
891
  }
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({
892
+ }), 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
893
  __name: "CloudEditor",
894
894
  props: {
895
895
  config: {},
@@ -901,8 +901,8 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
901
901
  emits: ["ready"],
902
902
  setup(e, { expose: r, emit: o }) {
903
903
  let l = e;
904
- a(I, l.cloudTranslations);
905
- let u = o, f = c(null), _ = c(null), w = Ie({
904
+ a(L, l.cloudTranslations);
905
+ let u = o, f = c(null), _ = c(null), w = Le({
906
906
  config: l.config,
907
907
  translations: l.translations,
908
908
  fontsManager: l.fontsManager,
@@ -910,30 +910,30 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
910
910
  getCommentsSidebar: () => f.value ? { filterByBlock: f.value.filterCommentsByBlock } : null,
911
911
  editorRoot: l.shadowRoot,
912
912
  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) {
913
+ }), { isInitializing: E, isAuthReady: ee, initError: O, planConfigInstance: k, websocket: A, collaboration: j, isCollaborationEnabled: M, editor: N, core: P, featureFlags: F, mediaLib: I, exporter: te, testEmail: R, commentsInstance: z, savedModulesHeadless: B, panelState: V, snapshotPreview: U, collabWarning: ne, showSaveModuleDialog: W, showModuleBrowserModal: G, saveModulePreSelectedBlockId: K, setThemeOverrides: q, setUiTheme: re } = w;
914
+ async function ie(e) {
915
915
  try {
916
- await L.sendTestEmail(e), z.testEmailModalOpen.value = !1;
916
+ await R.sendTestEmail(e), V.testEmailModalOpen.value = !1;
917
917
  } catch {}
918
918
  }
919
- function q(e, t) {
919
+ function ae(e, t) {
920
920
  for (let n = 0; n < e.content.length; n++) {
921
- let r = _e(e.content[n]), i = t === void 0 ? void 0 : t + n;
921
+ let r = H(e.content[n]), i = t === void 0 ? void 0 : t + n;
922
922
  N.addBlock(r, void 0, void 0, i);
923
923
  }
924
- H.value = !1;
924
+ G.value = !1;
925
925
  }
926
- let J = Re({
926
+ let J = ze({
927
927
  config: l.config,
928
928
  editor: N,
929
929
  websocket: A,
930
930
  planConfigInstance: k,
931
- snapshotPreview: B,
931
+ snapshotPreview: U,
932
932
  core: P,
933
- exporter: ne,
933
+ exporter: te,
934
934
  featureFlags: F,
935
935
  isDestroyed: w.isDestroyed
936
- }), Y = ze({
936
+ }), Y = Be({
937
937
  issues: P.templateLint ? P.templateLint.issues : c([]),
938
938
  planConfig: k.config
939
939
  });
@@ -947,12 +947,12 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
947
947
  }), r({
948
948
  getContent: () => N.content.value,
949
949
  setContent: (e) => N.setContent(e),
950
- setTheme: G,
951
- setThemeOverrides: W,
950
+ setTheme: re,
951
+ setThemeOverrides: q,
952
952
  create: J.createTemplate,
953
953
  load: J.loadTemplate,
954
954
  save: J.saveTemplate,
955
- sendTestEmail: L.sendTestEmail
955
+ sendTestEmail: R.sendTestEmail
956
956
  }), (t, r) => (i(), p("div", {
957
957
  ref_key: "rootEl",
958
958
  ref: _,
@@ -960,6 +960,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
960
960
  "data-tpl-theme": h(P).resolvedTheme.value,
961
961
  style: C(h(P).themeStyles.value)
962
962
  }, [
963
+ D(Ce),
963
964
  D(y, {
964
965
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
965
966
  "enter-from-class": "tpl:opacity-100",
@@ -968,7 +969,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
968
969
  "leave-from-class": "tpl:opacity-100",
969
970
  "leave-to-class": "tpl:opacity-0"
970
971
  }, {
971
- default: s(() => [D(ht, { visible: h(E) || h(N).state.isLoading }, null, 8, ["visible"])]),
972
+ default: s(() => [D(gt, { visible: h(E) || h(N).state.isLoading }, null, 8, ["visible"])]),
972
973
  _: 1
973
974
  }),
974
975
  D(y, {
@@ -979,7 +980,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
979
980
  "leave-from-class": "tpl:opacity-100",
980
981
  "leave-to-class": "tpl:opacity-0"
981
982
  }, {
982
- default: s(() => [D(xt, {
983
+ default: s(() => [D(St, {
983
984
  error: h(O),
984
985
  visible: !!h(O) && !h(E),
985
986
  onRetry: h(w).initialize
@@ -990,14 +991,14 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
990
991
  ])]),
991
992
  _: 1
992
993
  }),
993
- D(ut, {
994
+ D(dt, {
994
995
  editor: h(N),
995
996
  core: h(P),
996
997
  "feature-flags": h(F),
997
- "panel-state": h(z),
998
- "snapshot-preview": h(B),
999
- "comments-instance": h(re),
1000
- "test-email": h(L),
998
+ "panel-state": h(V),
999
+ "snapshot-preview": h(U),
1000
+ "comments-instance": h(z),
1001
+ "test-email": h(R),
1001
1002
  websocket: h(A),
1002
1003
  collaboration: h(j),
1003
1004
  "is-collaboration-enabled": h(M),
@@ -1018,7 +1019,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1018
1019
  "is-saving",
1019
1020
  "is-save-disabled"
1020
1021
  ]),
1021
- D(Ye, {
1022
+ D(Xe, {
1022
1023
  open: h(Y).modalOpen.value,
1023
1024
  issues: h(Y).blockingIssues.value,
1024
1025
  onCancel: h(Y).cancel,
@@ -1029,10 +1030,10 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1029
1030
  "onCancel",
1030
1031
  "onConfirm"
1031
1032
  ]),
1032
- D(Tt, {
1033
- visible: h(B).isPreviewingSnapshot.value,
1034
- onCancel: h(B).cancelPreview,
1035
- onConfirm: h(B).confirmRestoreSnapshot
1033
+ D(Et, {
1034
+ visible: h(U).isPreviewingSnapshot.value,
1035
+ onCancel: h(U).cancelPreview,
1036
+ onConfirm: h(U).confirmRestoreSnapshot
1036
1037
  }, null, 8, [
1037
1038
  "visible",
1038
1039
  "onCancel",
@@ -1046,17 +1047,17 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1046
1047
  "leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
1047
1048
  "leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
1048
1049
  }, {
1049
- default: s(() => [D(Dt, { visible: h(ie).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1050
+ default: s(() => [D(Ot, { visible: h(ne).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1050
1051
  _: 1
1051
1052
  }),
1052
1053
  n(D(ke, null, null, 512), [[S, !h(N).state.previewMode]]),
1053
1054
  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"]]),
1055
+ 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
1056
  style: {
1056
1057
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
1057
1058
  "background-color": "var(--tpl-canvas-bg)"
1058
1059
  }
1059
- }, [x("div", kt, [D(y, { name: "tpl-restore-btn" }, {
1060
+ }, [x("div", At, [D(y, { name: "tpl-restore-btn" }, {
1060
1061
  default: s(() => [h(P).conditionPreview.hasHiddenBlocks.value ? (i(), p("button", {
1061
1062
  key: 0,
1062
1063
  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 +1073,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1072
1073
  "stroke-width": 2
1073
1074
  }), T(" " + d(h(P).t.blockSettings.restoreHiddenBlocks), 1)])) : m("", !0)]),
1074
1075
  _: 1
1075
- })]), x("main", At, [D(Ce, {
1076
+ })]), x("main", jt, [D(Te, {
1076
1077
  viewport: h(N).state.viewport,
1077
1078
  content: h(N).content.value,
1078
1079
  "selected-block-id": h(N).state.selectedBlockId,
@@ -1080,8 +1081,8 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1080
1081
  "preview-mode": h(N).state.previewMode,
1081
1082
  "locked-blocks": h(j)?.lockedBlocks.value ?? void 0,
1082
1083
  onSelectBlock: h(N).selectBlock,
1083
- onOpenAiChat: r[1] ||= (e) => h(z).aiChatOpen.value = !0,
1084
- onOpenDesignReference: r[2] ||= (e) => h(z).designReferenceOpen.value = !0
1084
+ onOpenAiChat: r[1] ||= (e) => h(V).aiChatOpen.value = !0,
1085
+ onOpenDesignReference: r[2] ||= (e) => h(V).designReferenceOpen.value = !0
1085
1086
  }, null, 8, [
1086
1087
  "viewport",
1087
1088
  "content",
@@ -1093,7 +1094,7 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1093
1094
  ])])], 2),
1094
1095
  e.config.branding !== !1 && !h(F).isWhiteLabeled.value ? (i(), v(Ee, {
1095
1096
  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]"]
1097
+ "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
1098
  }, null, 8, ["position-class"])) : m("", !0),
1098
1099
  x("div", {
1099
1100
  class: "tpl-sr-only",
@@ -1101,11 +1102,11 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1101
1102
  "aria-live": "polite",
1102
1103
  "aria-atomic": "true",
1103
1104
  "aria-label": h(P).t.landmarks.reorderAnnouncements
1104
- }, d(h(P).keyboardReorder.announcement.value), 9, jt),
1105
+ }, d(h(P).keyboardReorder.announcement.value), 9, Mt),
1105
1106
  n(D(De, {
1106
1107
  "selected-block": h(N).selectedBlock.value,
1107
1108
  settings: h(N).content.value.settings,
1108
- "shifted-left": h(z).rightPanelOpen.value,
1109
+ "shifted-left": h(V).rightPanelOpen.value,
1109
1110
  onUpdateBlock: r[3] ||= (e) => h(N).updateBlock(h(N).selectedBlock.value.id, e),
1110
1111
  onDeleteBlock: r[4] ||= (e) => h(P).blockActions.deleteBlock(h(N).selectedBlock.value.id),
1111
1112
  onDuplicateBlock: r[5] ||= (e) => h(P).blockActions.duplicateBlock(h(N).selectedBlock.value),
@@ -1116,26 +1117,26 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1116
1117
  "shifted-left",
1117
1118
  "onUpdateSettings"
1118
1119
  ]), [[S, !h(N).state.previewMode]]),
1119
- !h(E) && h(ee) ? (i(), v(dt, {
1120
+ !h(E) && h(ee) ? (i(), v(ft, {
1120
1121
  key: 1,
1121
1122
  ref_key: "cloudPanelsRef",
1122
1123
  ref: f,
1123
1124
  config: l.config,
1124
1125
  editor: h(N),
1125
1126
  core: h(P),
1126
- "panel-state": h(z),
1127
+ "panel-state": h(V),
1127
1128
  "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
1129
+ "test-email": h(R),
1130
+ "media-lib": h(I),
1131
+ "saved-modules-headless": h(B),
1132
+ "show-save-module-dialog": h(W),
1133
+ "save-module-pre-selected-block-id": h(K),
1134
+ "show-module-browser-modal": h(G),
1135
+ "onUpdate:showSaveModuleDialog": r[6] ||= (e) => W.value = e,
1136
+ "onUpdate:saveModulePreSelectedBlockId": r[7] ||= (e) => K.value = e,
1137
+ "onUpdate:showModuleBrowserModal": r[8] ||= (e) => G.value = e,
1138
+ onSendTestEmail: ie,
1139
+ onModuleInsert: ae
1139
1140
  }, null, 8, [
1140
1141
  "config",
1141
1142
  "editor",
@@ -1154,10 +1155,10 @@ var Be = ["aria-label"], Ve = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1154
1155
  class: "tpl-popover-root"
1155
1156
  }, null, 512),
1156
1157
  D(Ae)
1157
- ], 14, Ot));
1158
+ ], 14, kt));
1158
1159
  }
1159
- }), [["__scopeId", "data-v-3f0f5cfa"]]);
1160
+ }), [["__scopeId", "data-v-ae54dc42"]]);
1160
1161
  //#endregion
1161
- export { Mt as default };
1162
+ export { Nt as default };
1162
1163
 
1163
- //# sourceMappingURL=CloudEditor-CyJItWsK.js.map
1164
+ //# sourceMappingURL=CloudEditor-xc_uOEgn.js.map