@templatical/editor 0.21.0 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/{AiFeatureMenu-CPdNpHpZ.js → AiFeatureMenu-CcqQDHzJ.js} +1 -1
  2. package/dist/{CloudEditor-3a7mqMhe.js → CloudEditor-Dnww6og-.js} +5 -5
  3. package/dist/{CollaboratorBar-Ds0YZWzV.js → CollaboratorBar-Bj4NZiie.js} +1 -1
  4. package/dist/CountdownBlock-J_Q9JRQM.js +91 -0
  5. package/dist/{ParagraphEditor-CkwBirNl.js → ParagraphEditor--_zWfxps.js} +1 -1
  6. package/dist/{SaveBlockDialog-Cc5BSUBx.js → SaveBlockDialog-CYIEHABH.js} +3 -3
  7. package/dist/{SavedBlockPreviewCanvas-ubttfmKr.js → SavedBlockPreviewCanvas-2-mzAnZE.js} +1 -1
  8. package/dist/{SavedBlocksBrowserModal-LkY_U3lY.js → SavedBlocksBrowserModal-D5V5yF_3.js} +4 -4
  9. package/dist/{SavedBlocksPanels-CET0zvH6.js → SavedBlocksPanels-Dff38YXu.js} +1 -1
  10. package/dist/{SavedBlocksPickBar-poGS4PoI.js → SavedBlocksPickBar-rB6iyji6.js} +1 -1
  11. package/dist/{SnapshotHistory-BvF5IXn1.js → SnapshotHistory-FtzDq8f0.js} +1 -1
  12. package/dist/{TestEmailModal-BRaM_eko.js → TestEmailModal-DL2O1H8M.js} +2 -2
  13. package/dist/{TitleEditor-Bhgzh-iQ.js → TitleEditor-CPda5lh-.js} +1 -1
  14. package/dist/{TplModal-BA-Zsg0O.js → TplModal-C7Koj5gM.js} +1 -1
  15. package/dist/{blockTypeIcons-B1-Yzp-a.js → blockTypeIcons-CgwECCut.js} +1 -1
  16. package/dist/bundle-stats.json +8 -8
  17. package/dist/cdn/chunks/AiChatSidebar-A1CuWGY0.js +203 -0
  18. package/dist/cdn/chunks/AiChatSidebar-A1CuWGY0.js.map +1 -0
  19. package/dist/cdn/chunks/{AiFeatureMenu--PdArSnv.js → AiFeatureMenu-Duwg413F.js} +9 -5
  20. package/dist/cdn/chunks/{AiFeatureMenu--PdArSnv.js.map → AiFeatureMenu-Duwg413F.js.map} +1 -1
  21. package/dist/cdn/chunks/{BlockIssueBadge-DMSd0SIl.js → BlockIssueBadge-Da4yR-mh.js} +7 -5
  22. package/dist/cdn/chunks/{BlockIssueBadge-DMSd0SIl.js.map → BlockIssueBadge-Da4yR-mh.js.map} +1 -1
  23. package/dist/cdn/chunks/{CloudEditor-DnTfI5GU.js → CloudEditor-B3hqbwfP.js} +179 -170
  24. package/dist/cdn/chunks/{CloudEditor-DnTfI5GU.js.map → CloudEditor-B3hqbwfP.js.map} +1 -1
  25. package/dist/cdn/chunks/{CollaboratorBar-CBqd7ldq.js → CollaboratorBar-BS3rJy6-.js} +7 -6
  26. package/dist/cdn/chunks/{CollaboratorBar-CBqd7ldq.js.map → CollaboratorBar-BS3rJy6-.js.map} +1 -1
  27. package/dist/cdn/chunks/{ColorPicker-DCdWP8YB.js → ColorPicker-DZSzZ5ZP.js} +107 -103
  28. package/dist/cdn/chunks/{ColorPicker-DCdWP8YB.js.map → ColorPicker-DZSzZ5ZP.js.map} +1 -1
  29. package/dist/cdn/chunks/CommentsSidebar-DHdRiGPX.js +412 -0
  30. package/dist/cdn/chunks/CommentsSidebar-DHdRiGPX.js.map +1 -0
  31. package/dist/cdn/chunks/CountdownBlock-Bffpoppw.js +93 -0
  32. package/dist/cdn/chunks/{CountdownBlock-BDnWMAME.js.map → CountdownBlock-Bffpoppw.js.map} +1 -1
  33. package/dist/cdn/chunks/{CountdownToolbar-BbLoo22S.js → CountdownToolbar-DAnmIZjq.js} +4 -4
  34. package/dist/cdn/chunks/{CountdownToolbar-BbLoo22S.js.map → CountdownToolbar-DAnmIZjq.js.map} +1 -1
  35. package/dist/cdn/chunks/DesignReferenceSidebar-Dre99DTH.js +223 -0
  36. package/dist/cdn/chunks/DesignReferenceSidebar-Dre99DTH.js.map +1 -0
  37. package/dist/cdn/chunks/{IssuesPanel-CfudrI3T.js → IssuesPanel-D80JedOj.js} +11 -10
  38. package/dist/cdn/chunks/{IssuesPanel-CfudrI3T.js.map → IssuesPanel-D80JedOj.js.map} +1 -1
  39. package/dist/cdn/chunks/LoadingTrack-D-CW2tUa.js +12 -0
  40. package/dist/cdn/chunks/LoadingTrack-D-CW2tUa.js.map +1 -0
  41. package/dist/cdn/chunks/{NumberWithSuffix-BmMx9_n_.js → NumberWithSuffix-CjlVNIEe.js} +2 -2
  42. package/dist/cdn/chunks/{NumberWithSuffix-BmMx9_n_.js.map → NumberWithSuffix-CjlVNIEe.js.map} +1 -1
  43. package/dist/cdn/chunks/{ParagraphEditor-DPCUSXpx.js → ParagraphEditor-CtaRa1vr.js} +73 -68
  44. package/dist/cdn/chunks/{ParagraphEditor-DPCUSXpx.js.map → ParagraphEditor-CtaRa1vr.js.map} +1 -1
  45. package/dist/cdn/chunks/{RichTextEditorContent-B8dOiv_D.js → RichTextEditorContent-BbdgJqWM.js} +9 -6
  46. package/dist/cdn/chunks/{RichTextEditorContent-B8dOiv_D.js.map → RichTextEditorContent-BbdgJqWM.js.map} +1 -1
  47. package/dist/cdn/chunks/{SaveBlockDialog-BY3SMnNV.js → SaveBlockDialog-Bb3fdUEZ.js} +30 -26
  48. package/dist/cdn/chunks/{SaveBlockDialog-BY3SMnNV.js.map → SaveBlockDialog-Bb3fdUEZ.js.map} +1 -1
  49. package/dist/cdn/chunks/{SavedBlockPreviewCanvas-LpaOcusq.js → SavedBlockPreviewCanvas-DZOMgNsz.js} +33 -32
  50. package/dist/cdn/chunks/{SavedBlockPreviewCanvas-LpaOcusq.js.map → SavedBlockPreviewCanvas-DZOMgNsz.js.map} +1 -1
  51. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CfIcmyzF.js → SavedBlocksBrowserModal-CeUWcPv0.js} +14 -10
  52. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CfIcmyzF.js.map → SavedBlocksBrowserModal-CeUWcPv0.js.map} +1 -1
  53. package/dist/cdn/chunks/{SavedBlocksPanels-kIowCfh_.js → SavedBlocksPanels-D-pA_wfk.js} +2 -2
  54. package/dist/cdn/chunks/{SavedBlocksPanels-kIowCfh_.js.map → SavedBlocksPanels-D-pA_wfk.js.map} +1 -1
  55. package/dist/cdn/chunks/{SavedBlocksPickBar-WSGe1GiZ.js → SavedBlocksPickBar-1rf1KpqS.js} +6 -4
  56. package/dist/cdn/chunks/{SavedBlocksPickBar-WSGe1GiZ.js.map → SavedBlocksPickBar-1rf1KpqS.js.map} +1 -1
  57. package/dist/cdn/chunks/SnapshotHistory-Bf1uovti.js +121 -0
  58. package/dist/cdn/chunks/SnapshotHistory-Bf1uovti.js.map +1 -0
  59. package/dist/cdn/chunks/TemplateScoringPanel-CTk8WwxU.js +231 -0
  60. package/dist/cdn/chunks/TemplateScoringPanel-CTk8WwxU.js.map +1 -0
  61. package/dist/cdn/chunks/TestEmailModal-BJTDxFHh.js +96 -0
  62. package/dist/cdn/chunks/TestEmailModal-BJTDxFHh.js.map +1 -0
  63. package/dist/cdn/chunks/{TitleEditor-iwd-O9sO.js → TitleEditor-BJ7LFykI.js} +15 -12
  64. package/dist/cdn/chunks/{TitleEditor-iwd-O9sO.js.map → TitleEditor-BJ7LFykI.js.map} +1 -1
  65. package/dist/cdn/chunks/TplModal-CH9RzKF7.js +50 -0
  66. package/dist/cdn/chunks/TplModal-CH9RzKF7.js.map +1 -0
  67. package/dist/cdn/chunks/_plugin-vue_export-helper-B3ysoDQm.js +8 -0
  68. package/dist/cdn/chunks/blockTypeIcons-etMMQoVv.js +21 -0
  69. package/dist/cdn/chunks/{blockTypeIcons-BYz0fgLz.js.map → blockTypeIcons-etMMQoVv.js.map} +1 -1
  70. package/dist/cdn/chunks/cloud-BJlbXGTJ.js +1787 -0
  71. package/dist/cdn/chunks/cloud-BJlbXGTJ.js.map +1 -0
  72. package/dist/cdn/chunks/dist-CiBEt0VR.js +163 -0
  73. package/dist/cdn/chunks/dist-CiBEt0VR.js.map +1 -0
  74. package/dist/cdn/chunks/dist-CxTt8FRE.js +403 -0
  75. package/dist/cdn/chunks/dist-CxTt8FRE.js.map +1 -0
  76. package/dist/cdn/chunks/{extensions-DeJh3E9b.js → extensions-ZX2oarW6.js} +17 -15
  77. package/dist/cdn/chunks/{extensions-DeJh3E9b.js.map → extensions-ZX2oarW6.js.map} +1 -1
  78. package/dist/cdn/chunks/formatRelativeTime-CtUU-QZ8.js +12 -0
  79. package/dist/cdn/chunks/formatRelativeTime-CtUU-QZ8.js.map +1 -0
  80. package/dist/cdn/chunks/htmlparser-CZa2V5cF.js +1008 -0
  81. package/dist/cdn/chunks/htmlparser-CZa2V5cF.js.map +1 -0
  82. package/dist/cdn/chunks/icons-CYWw8Xfp.js +1190 -0
  83. package/dist/cdn/chunks/icons-CYWw8Xfp.js.map +1 -0
  84. package/dist/cdn/chunks/keys-D7kUmfpE.js +12 -0
  85. package/dist/cdn/chunks/keys-D7kUmfpE.js.map +1 -0
  86. package/dist/cdn/chunks/src-BKI1x1k7.js +546 -0
  87. package/dist/cdn/chunks/src-BKI1x1k7.js.map +1 -0
  88. package/dist/cdn/chunks/src-CM0gCvAS.js +1176 -0
  89. package/dist/cdn/chunks/src-CM0gCvAS.js.map +1 -0
  90. package/dist/cdn/chunks/{media-library-mCCZieYO.js → src-D6F_3XkE.js} +1782 -1280
  91. package/dist/cdn/chunks/src-D6F_3XkE.js.map +1 -0
  92. package/dist/cdn/chunks/{renderer-Yg1XhsBN.js → src-DYji-wXB.js} +118 -134
  93. package/dist/cdn/chunks/src-DYji-wXB.js.map +1 -0
  94. package/dist/cdn/chunks/{styles-Bp5Jsu9J.js → styles-DMOEiSX9.js} +867 -859
  95. package/dist/cdn/chunks/styles-DMOEiSX9.js.map +1 -0
  96. package/dist/cdn/chunks/timeouts-Bmi_yePw.js +6 -0
  97. package/dist/cdn/chunks/timeouts-Bmi_yePw.js.map +1 -0
  98. package/dist/cdn/chunks/useAliveFlag-aanU8uqB.js +12 -0
  99. package/dist/cdn/chunks/useAliveFlag-aanU8uqB.js.map +1 -0
  100. package/dist/cdn/chunks/useCloudI18n-BjNENqkM.js +25 -0
  101. package/dist/cdn/chunks/useCloudI18n-BjNENqkM.js.map +1 -0
  102. package/dist/cdn/chunks/useEditorCore-BA6mspzD.js +3019 -0
  103. package/dist/cdn/chunks/useEditorCore-BA6mspzD.js.map +1 -0
  104. package/dist/cdn/chunks/useI18n-8Wd7G-cq.js +19 -0
  105. package/dist/cdn/chunks/useI18n-8Wd7G-cq.js.map +1 -0
  106. package/dist/cdn/chunks/useMergeTag-C7G31KV-.js +46 -0
  107. package/dist/cdn/chunks/useMergeTag-C7G31KV-.js.map +1 -0
  108. package/dist/cdn/chunks/usePopoverPosition-Bx0QewTv.js +61 -0
  109. package/dist/cdn/chunks/usePopoverPosition-Bx0QewTv.js.map +1 -0
  110. package/dist/cdn/editor.css +1 -1
  111. package/dist/cdn/editor.js +72 -69
  112. package/dist/cdn/editor.js.map +1 -1
  113. package/dist/style.css +1 -1
  114. package/dist/{styles-DIDAJdkj.js → styles-PcOPXvLO.js} +547 -549
  115. package/dist/templatical-editor.js +5 -5
  116. package/dist/{useEditorCore-Bd9CA4L_.js → useEditorCore-CT1slufs.js} +3 -3
  117. package/package.json +7 -7
  118. package/dist/CountdownBlock-BUHYIAe9.js +0 -92
  119. package/dist/cdn/chunks/CountdownBlock-BDnWMAME.js +0 -93
  120. package/dist/cdn/chunks/blockTypeIcons-BYz0fgLz.js +0 -22
  121. package/dist/cdn/chunks/features-pLfGJWIB.js +0 -7813
  122. package/dist/cdn/chunks/features-pLfGJWIB.js.map +0 -1
  123. package/dist/cdn/chunks/icons-FLemooQz.js +0 -690
  124. package/dist/cdn/chunks/icons-FLemooQz.js.map +0 -1
  125. package/dist/cdn/chunks/media-library-mCCZieYO.js.map +0 -1
  126. package/dist/cdn/chunks/quality-BRbHtAk1.js +0 -2180
  127. package/dist/cdn/chunks/quality-BRbHtAk1.js.map +0 -1
  128. package/dist/cdn/chunks/renderer-Yg1XhsBN.js.map +0 -1
  129. package/dist/cdn/chunks/src-BDJeYiVE.js +0 -509
  130. package/dist/cdn/chunks/src-BDJeYiVE.js.map +0 -1
  131. package/dist/cdn/chunks/styles-Bp5Jsu9J.js.map +0 -1
@@ -1,8 +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 O } from "./draggable-D840DIZB.js";
2
- import { A as k, C as A, Cn as j, Ct as M, D as N, Kt as P, Mn as F, Nt as I, Pt as L, Q as R, Qt as z, Rt as B, S as V, Xt as H, Yt as U, Zn as W, _ as G, _n as K, b as q, c as ee, d as te, f as ne, g as re, gt as J, h as ie, in as Y, l as X, lt as Z, m as ae, mn as oe, nn as se, p as ce, pt as le, rt as ue, st as Q, tn as de, u as fe, ur as pe, v as me, wt as he, x as ge, y as _e, yt as ve } from "./features-pLfGJWIB.js";
3
- import { S as ye, x as be } from "./icons-FLemooQz.js";
4
- import { a as xe, c as Se, d as Ce, f as we, i as Te, l as Ee, n as De, o as Oe, p as ke, r as Ae, s as je, t as Me, u as Ne } from "./styles-Bp5Jsu9J.js";
5
- import { d as $ } from "./ColorPicker-DCdWP8YB.js";
2
+ import { t as k } from "./timeouts-Bmi_yePw.js";
3
+ import { F as A } from "./src-BKI1x1k7.js";
4
+ import { T as j, b as M, j as N, t as P } from "./useEditorCore-BA6mspzD.js";
5
+ import { _ as F } from "./dist-CiBEt0VR.js";
6
+ import { t as I } from "./dist-CxTt8FRE.js";
7
+ import { A as L, F as R, c as z, r as B, s as V, t as H, u as U } from "./keys-D7kUmfpE.js";
8
+ import { t as W } from "./useI18n-8Wd7G-cq.js";
9
+ import { At as G, Dt as K, F as ee, Ft as q, P as J, et as te, j as ne, rt as Y, u as re, w as ie } from "./icons-CYWw8Xfp.js";
10
+ import { t as ae } from "./_plugin-vue_export-helper-B3ysoDQm.js";
11
+ import { n as X } from "./useCloudI18n-BjNENqkM.js";
12
+ import { a as Z, c as oe, d as se, f as Q, i as ce, l as le, n as ue, o as de, p as fe, r as pe, s as me, t as he, u as ge } from "./styles-DMOEiSX9.js";
13
+ import { d as $ } from "./ColorPicker-DZSzZ5ZP.js";
14
+ import { S as _e, _ as ve, a as ye, c as be, d as xe, f as Se, h as Ce, i as we, l as Te, m as Ee, n as De, o as Oe, r as ke, s as Ae, t as je, u as Me, v as Ne } from "./cloud-BJlbXGTJ.js";
6
15
  //#region src/cloud/composables/useSnapshotPreview.ts
7
16
  function Pe(t) {
8
17
  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;
@@ -11,7 +20,7 @@ function Pe(t) {
11
20
  });
12
21
  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
22
  function y() {
14
- i.state.template?.id && !u.value && (u.value = ce({
23
+ i.state.template?.id && !u.value && (u.value = Oe({
15
24
  authManager: n,
16
25
  templateId: i.state.template.id,
17
26
  onRestore: b,
@@ -86,7 +95,7 @@ function Fe() {
86
95
  function g(t) {
87
96
  l.value = !1, e.value = e.value === t ? null : t;
88
97
  }
89
- return j(u, () => {
98
+ return I(u, () => {
90
99
  l.value = !1;
91
100
  }), {
92
101
  activePanel: e,
@@ -111,7 +120,7 @@ function Fe() {
111
120
  function Ie(e) {
112
121
  let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = c(!1), a = c(!1), { start: o } = F(() => {
113
122
  a.value = !1;
114
- }, pe, { immediate: !1 });
123
+ }, k, { immediate: !1 });
115
124
  function s() {
116
125
  i.value || !t.value || n() === 0 || !r.value || (i.value = !0, a.value = !0, o());
117
126
  }
@@ -175,7 +184,7 @@ function Re(e) {
175
184
  let t = f(e);
176
185
  if (t) return s?.(t), null;
177
186
  try {
178
- let { MediaApiClient: t } = await import("./src-BDJeYiVE.js");
187
+ let { MediaApiClient: t } = await import("./src-D6F_3XkE.js");
179
188
  return l(await new t(a).uploadMedia(e));
180
189
  } catch (e) {
181
190
  return s?.(e), null;
@@ -204,29 +213,29 @@ function Re(e) {
204
213
  //#endregion
205
214
  //#region src/cloud/composables/useCloudInitialization.ts
206
215
  function ze(e) {
207
- 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 N({
216
+ 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 _e({
208
217
  ...t.auth,
209
218
  onError: t.onError
210
- }), _ = fe({
219
+ }), _ = ke({
211
220
  authManager: g,
212
221
  onError: t.onError
213
- }), v = c(/* @__PURE__ */ new Map()), y = V({
222
+ }), v = c(/* @__PURE__ */ new Map()), y = ve({
214
223
  authManager: g,
215
224
  defaultFontFamily: t.fonts?.defaultFont,
216
225
  templateDefaults: t.templateDefaults,
217
226
  onError: t.onError,
218
227
  lockedBlocks: v
219
- }), b = ie({
228
+ }), b = be({
220
229
  authManager: g,
221
230
  onError: t.onError
222
231
  });
223
- t.mcp?.enabled && ee({
232
+ t.mcp?.enabled && je({
224
233
  editor: y,
225
234
  channel: b.channel,
226
235
  onOperation: t.mcp.onOperation
227
236
  });
228
237
  let x = null;
229
- t.collaboration?.enabled && (x = G({
238
+ t.collaboration?.enabled && (x = Me({
230
239
  authManager: g,
231
240
  editor: y,
232
241
  channel: b.channel,
@@ -237,8 +246,8 @@ function ze(e) {
237
246
  onBlockUnlocked: t.collaboration.onBlockUnlocked
238
247
  }), O(() => x.lockedBlocks.value, (e) => {
239
248
  v.value = e;
240
- }, { immediate: !0 }), re(y, x));
241
- let S = f(() => !!t.collaboration?.enabled && _.hasFeature("collaboration")), C = k({
249
+ }, { immediate: !0 }), Te(y, x));
250
+ let S = f(() => !!t.collaboration?.enabled && _.hasFeature("collaboration")), C = P({
242
251
  editor: y,
243
252
  config: {
244
253
  uiTheme: t.uiTheme,
@@ -253,7 +262,7 @@ function ze(e) {
253
262
  logicTags: t.logicTags,
254
263
  displayConditions: t.displayConditions,
255
264
  onRequestMedia: null,
256
- lint: we(t),
265
+ lint: Q(t),
257
266
  onSave: () => {
258
267
  p.value?.().catch((e) => {
259
268
  t.onError?.(e);
@@ -289,11 +298,11 @@ function ze(e) {
289
298
  onError: t.onError
290
299
  });
291
300
  m = T;
292
- let E = Fe(), D = ge(t.ai), A = Le({
301
+ let E = Fe(), D = Ce(t.ai), k = Le({
293
302
  planConfigInstance: _,
294
303
  aiConfig: D,
295
304
  editor: y
296
- }), j = Re({
305
+ }), A = Re({
297
306
  onRequestMedia: t.onRequestMedia,
298
307
  mediaLibraryOpen: E.mediaLibraryOpen,
299
308
  mediaLibraryAccept: E.mediaLibraryAccept,
@@ -301,15 +310,15 @@ function ze(e) {
301
310
  getMediaConfig: () => _.config.value?.media ?? null,
302
311
  onError: t.onError
303
312
  });
304
- ue({
313
+ j({
305
314
  onBlockMove: y.moveBlock,
306
315
  onBlockAdd: y.addBlock
307
316
  });
308
- let M = te({
317
+ let M = we({
309
318
  authManager: g,
310
319
  getFontsConfig: () => t.fonts,
311
320
  canUseCustomFonts: () => _.hasFeature("custom_fonts")
312
- }), F = ne({
321
+ }), F = ye({
313
322
  authManager: g,
314
323
  getTemplateId: () => y.state.template?.id ?? null,
315
324
  save: () => y.save(),
@@ -317,7 +326,7 @@ function ze(e) {
317
326
  onError: t.onError,
318
327
  isAuthReady: l,
319
328
  onBeforeTestEmail: t.onBeforeTestEmail
320
- }), I = _e({
329
+ }), I = Se({
321
330
  authManager: g,
322
331
  getTemplateId: () => y.state.template?.id ?? null,
323
332
  getSocketId: () => b.getSocketId(),
@@ -326,49 +335,49 @@ function ze(e) {
326
335
  isAuthReady: l,
327
336
  hasCommentingFeature: () => t.commenting !== !1 && _.hasFeature("commenting")
328
337
  });
329
- me({
338
+ xe({
330
339
  comments: I,
331
340
  channel: b.channel
332
341
  });
333
- let L = ke({
334
- provider: ae(g),
342
+ let z = fe({
343
+ provider: Ae(g),
335
344
  editor: y,
336
345
  onError: t.onError,
337
346
  isAvailable: () => t.savedBlocks !== !1 && _.hasFeature("saved_modules")
338
- }), R = q({
347
+ }), W = Ee({
339
348
  authManager: g,
340
349
  getTemplateId: () => y.state.template?.id ?? null
341
350
  });
342
- function B(e) {
351
+ function G(e) {
343
352
  E.commentsOpen.value = !0, queueMicrotask(() => {
344
353
  o()?.filterByBlock(e);
345
354
  });
346
355
  }
347
- a(oe, j.handleRequestMedia), a(z, g), a(H, D), a(Y, I), a(K, R), a(de, {
356
+ a(L, A.handleRequestMedia), a(B, g), a(H, D), a(U, I), a(R, W), a(V, {
348
357
  plan: _,
349
358
  ai: D,
350
359
  comments: {
351
360
  getBlockCount: (e) => I.commentCountByBlock.value.get(e) ?? 0,
352
- openForBlock: B
361
+ openForBlock: G
353
362
  },
354
- savedBlocks: L.capability
363
+ savedBlocks: z.capability
355
364
  });
356
- function U(e) {
365
+ function K(e) {
357
366
  _.hasFeature("theme_customization") && (C.themeOverrides.value = e);
358
367
  }
359
- function W(e) {
368
+ function ee(e) {
360
369
  y.setUiTheme(e);
361
370
  }
362
- async function J() {
371
+ async function q() {
363
372
  s.value = !0, u.value = null;
364
373
  try {
365
374
  if (await g.initialize(), d) return;
366
375
  l.value = !0;
367
- let e = await X({ authManager: g });
376
+ let e = await De({ authManager: g });
368
377
  if (d) return;
369
378
  if (!e.api.ok) throw Error("Health check failed: API is not reachable");
370
379
  if (!e.auth.ok) throw Error(`Health check failed: authentication error${e.auth.error ? ` - ${e.auth.error}` : ""}`);
371
- if (e.websocket.ok || P.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), d) return;
380
+ if (e.websocket.ok || N.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), d) return;
372
381
  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), i("ready");
373
382
  } catch (e) {
374
383
  if (d) return;
@@ -378,7 +387,7 @@ function ze(e) {
378
387
  d || (s.value = !1);
379
388
  }
380
389
  }
381
- function Z() {
390
+ function J() {
382
391
  d = !0, r.cleanupFontLinks(), b.disconnect(), C.destroy(), t.onUnmount?.();
383
392
  }
384
393
  return {
@@ -394,29 +403,29 @@ function ze(e) {
394
403
  editor: y,
395
404
  core: C,
396
405
  aiConfig: D,
397
- featureFlags: A,
398
- mediaLib: j,
406
+ featureFlags: k,
407
+ mediaLib: A,
399
408
  exporter: M,
400
409
  testEmail: F,
401
410
  commentsInstance: I,
402
- savedBlocks: L,
403
- scoringInstance: R,
411
+ savedBlocks: z,
412
+ scoringInstance: W,
404
413
  panelState: E,
405
414
  snapshotPreview: T,
406
415
  collabWarning: w,
407
416
  onSaveHook: p,
408
- initialize: J,
409
- destroy: Z,
410
- setThemeOverrides: U,
411
- setUiTheme: W,
412
- openCommentsForBlock: B
417
+ initialize: q,
418
+ destroy: J,
419
+ setThemeOverrides: K,
420
+ setUiTheme: ee,
421
+ openCommentsForBlock: G
413
422
  };
414
423
  }
415
424
  //#endregion
416
425
  //#region src/utils/preRenderCustomBlocks.ts
417
426
  async function Be(e, t) {
418
427
  let n = async (e) => {
419
- if (W(e)) {
428
+ if (A(e)) {
420
429
  let n = e;
421
430
  try {
422
431
  n.renderedHtml = await t.renderCustomBlock(n);
@@ -436,7 +445,7 @@ async function Be(e, t) {
436
445
  function Ve(e) {
437
446
  let { config: t, editor: n, websocket: r, planConfigInstance: i, snapshotPreview: a, core: o, exporter: s, featureFlags: c, isDestroyed: l } = e;
438
447
  function u() {
439
- return A(i.config.value.websocket);
448
+ return Ne(i.config.value.websocket);
440
449
  }
441
450
  async function d(e) {
442
451
  let i = await n.create(e);
@@ -507,7 +516,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
507
516
  },
508
517
  emits: ["cancel", "confirm"],
509
518
  setup(e, { emit: t }) {
510
- let n = t, { t: r } = Q();
519
+ let n = t, { t: r } = X();
511
520
  return (t, a) => (i(), v(y, {
512
521
  "enter-active-class": "tpl:transition-opacity tpl:duration-150",
513
522
  "leave-active-class": "tpl:transition-opacity tpl:duration-150",
@@ -522,7 +531,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
522
531
  class: "tpl:fixed tpl:inset-0 tpl:z-50 tpl:flex tpl:items-center tpl:justify-center tpl:bg-black/40 tpl:p-6",
523
532
  onClick: a[2] ||= _((e) => n("cancel"), ["self"])
524
533
  }, [x("div", We, [
525
- x("header", Ge, [D(h(le), {
534
+ x("header", Ge, [D(h(re), {
526
535
  size: 18,
527
536
  "stroke-width": 2,
528
537
  class: "tpl:text-[var(--tpl-warning)]"
@@ -589,22 +598,22 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
589
598
  },
590
599
  emits: ["save"],
591
600
  setup(e) {
592
- let t = u(() => import("./CollaboratorBar-CBqd7ldq.js")), n = u(() => import("./features-pLfGJWIB.js").then((e) => e.r)), r = u(() => import("./AiFeatureMenu--PdArSnv.js")), { t: a, format: o } = Q();
601
+ let t = u(() => import("./CollaboratorBar-BS3rJy6-.js")), n = u(() => import("./SnapshotHistory-Bf1uovti.js")), r = u(() => import("./AiFeatureMenu-Duwg413F.js")), { t: a, format: o } = X();
593
602
  return (c, l) => (i(), p("header", $e, [
594
603
  x("div", et, [e.featureFlags.templateLimit.value === null ? m("", !0) : (i(), p("span", tt, d(h(o)(h(a).header.templatesUsed, {
595
604
  used: e.featureFlags.templateCount.value,
596
605
  max: e.featureFlags.templateLimit.value
597
606
  })), 1))]),
598
607
  x("div", nt, [
599
- D(Oe, {
608
+ D(de, {
600
609
  viewport: e.editor.state.viewport,
601
610
  onChange: e.editor.setViewport
602
611
  }, null, 8, ["viewport", "onChange"]),
603
- D(Te, {
612
+ D(ce, {
604
613
  "dark-mode": e.editor.state.darkMode,
605
614
  onChange: e.editor.setDarkMode
606
615
  }, null, 8, ["dark-mode", "onChange"]),
607
- D(xe, {
616
+ D(Z, {
608
617
  "preview-mode": e.editor.state.previewMode,
609
618
  onChange: e.editor.setPreviewMode
610
619
  }, null, 8, ["preview-mode", "onChange"]),
@@ -634,10 +643,10 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
634
643
  "aria-live": "assertive",
635
644
  class: "tpl-tooltip tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-danger)]",
636
645
  "data-tooltip": e.featureFlags.saveErrorMessage.value
637
- }, [D(h(L), {
646
+ }, [D(h(G), {
638
647
  size: 12,
639
648
  "stroke-width": 2.5
640
- }), T(" " + d(h(a).header.saveFailed), 1)], 8, it)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", at, [D(h(B), {
649
+ }), T(" " + d(h(a).header.saveFailed), 1)], 8, it)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", at, [D(h(q), {
641
650
  size: 12,
642
651
  "stroke-width": 2.5
643
652
  }), T(" " + d(h(a).header.saved), 1)])) : e.editor.state.isDirty ? (i(), p("div", ot, [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),
@@ -653,7 +662,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
653
662
  }),
654
663
  onClick: l[0] ||= (t) => e.panelState.commentsOpen.value = !e.panelState.commentsOpen.value
655
664
  }, [
656
- D(h(M), {
665
+ D(h(te), {
657
666
  size: 16,
658
667
  "stroke-width": 2
659
668
  }),
@@ -668,7 +677,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
668
677
  "aria-expanded": e.panelState.aiMenuOpen.value,
669
678
  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"]),
670
679
  onClick: l[1] ||= _((...t) => e.panelState.toggleAiMenu && e.panelState.toggleAiMenu(...t), ["stop"])
671
- }, [D(h(J), {
680
+ }, [D(h(ie), {
672
681
  size: 16,
673
682
  "stroke-width": 2,
674
683
  class: "tpl-ai-btn-icon"
@@ -696,12 +705,12 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
696
705
  },
697
706
  disabled: e.testEmail.isSending.value || !e.featureFlags.hasTemplateSaved.value,
698
707
  onClick: l[2] ||= (t) => e.panelState.testEmailModalOpen.value = !0
699
- }, [e.testEmail.isSending.value ? (i(), v(h(he), {
708
+ }, [e.testEmail.isSending.value ? (i(), v(h(Y), {
700
709
  key: 1,
701
710
  class: "tpl-spinner",
702
711
  size: 16,
703
712
  "stroke-width": 2
704
- })) : (i(), v(h(ve), {
713
+ })) : (i(), v(h(ne), {
705
714
  key: 0,
706
715
  size: 16,
707
716
  "stroke-width": 2
@@ -715,12 +724,12 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
715
724
  },
716
725
  disabled: e.isSaveDisabled,
717
726
  onClick: l[3] ||= (e) => c.$emit("save")
718
- }, [e.isSaving ? (i(), v(h(he), {
727
+ }, [e.isSaving ? (i(), v(h(Y), {
719
728
  key: 1,
720
729
  class: "tpl-spinner",
721
730
  size: 16,
722
731
  "stroke-width": 2
723
- })) : (i(), v(h(be), {
732
+ })) : (i(), v(h(J), {
724
733
  key: 0,
725
734
  size: 16,
726
735
  "stroke-width": 2
@@ -741,9 +750,9 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
741
750
  },
742
751
  emits: ["send-test-email"],
743
752
  setup(e, { expose: t, emit: n }) {
744
- let r = u(() => import("./features-pLfGJWIB.js").then((e) => e.s)), a = u(() => import("./features-pLfGJWIB.js").then((e) => e.a)), o = u(() => import("./features-pLfGJWIB.js").then((e) => e.i)), s = u(() => import("./features-pLfGJWIB.js").then((e) => e.n)), l = u(() => import("./features-pLfGJWIB.js").then((e) => e.t)), d = u(async () => {
753
+ let r = u(() => import("./AiChatSidebar-A1CuWGY0.js")), a = u(() => import("./CommentsSidebar-DHdRiGPX.js")), o = u(() => import("./DesignReferenceSidebar-Dre99DTH.js")), s = u(() => import("./TemplateScoringPanel-CTk8WwxU.js")), l = u(() => import("./TestEmailModal-BJTDxFHh.js")), d = u(async () => {
745
754
  try {
746
- return (await import("./src-BDJeYiVE.js")).MediaLibraryModal;
755
+ return (await import("./src-D6F_3XkE.js")).MediaLibraryModal;
747
756
  } catch {
748
757
  throw Error("[Templatical] Cloud media library requires the optional peer dependency '@templatical/media-library'. Please install it.");
749
758
  }
@@ -829,7 +838,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
829
838
  },
830
839
  emits: ["retry"],
831
840
  setup(e, { emit: t }) {
832
- let n = t, { t: r } = Q();
841
+ let n = t, { t: r } = X();
833
842
  function a(e) {
834
843
  return "isUnauthorized" in e && e.isUnauthorized ? r.error.authFailed : "isNotFound" in e && e.isNotFound ? r.error.templateNotFound : r.error.defaultMessage;
835
844
  }
@@ -837,7 +846,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
837
846
  return "isNotFound" in e && !!e.isNotFound;
838
847
  }
839
848
  return (t, s) => e.visible && e.error ? (i(), p("div", yt, [
840
- x("div", bt, [D(h(L), {
849
+ x("div", bt, [D(h(G), {
841
850
  size: 32,
842
851
  "stroke-width": 1.5,
843
852
  class: "tpl:text-[var(--tpl-danger)]"
@@ -858,8 +867,8 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
858
867
  props: { visible: { type: Boolean } },
859
868
  emits: ["cancel", "confirm"],
860
869
  setup(e, { emit: t }) {
861
- let n = t, { t: r } = Q();
862
- return (t, a) => e.visible ? (i(), p("div", Tt, [x("div", Et, [D(h(I), {
870
+ let n = t, { t: r } = X();
871
+ return (t, a) => e.visible ? (i(), p("div", Tt, [x("div", Et, [D(h(K), {
863
872
  size: 18,
864
873
  "stroke-width": 2,
865
874
  class: "tpl:text-[var(--tpl-primary)]"
@@ -886,10 +895,10 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
886
895
  __name: "CollabUndoToast",
887
896
  props: { visible: { type: Boolean } },
888
897
  setup(e) {
889
- let { t } = U();
898
+ let { t } = W();
890
899
  return (n, r) => e.visible ? (i(), p("div", kt, d(h(t).history.collabWarning), 1)) : m("", !0);
891
900
  }
892
- }), jt = ["data-tpl-theme"], Mt = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, Nt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, Pt = ["aria-label"], Ft = /*#__PURE__*/ Z(/* @__PURE__ */ E({
901
+ }), jt = ["data-tpl-theme"], Mt = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, Nt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, Pt = ["aria-label"], Ft = /*#__PURE__*/ ae(/* @__PURE__ */ E({
893
902
  __name: "CloudEditor",
894
903
  props: {
895
904
  config: {},
@@ -900,8 +909,8 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
900
909
  },
901
910
  emits: ["ready"],
902
911
  setup(e, { expose: r, emit: o }) {
903
- let l = u(() => import("./SavedBlocksPanels-kIowCfh_.js")), f = e;
904
- a(se, f.cloudTranslations);
912
+ let l = u(() => import("./SavedBlocksPanels-D-pA_wfk.js")), f = e;
913
+ a(z, f.cloudTranslations);
905
914
  let w = o, E = c(null), O = c(null), k = ze({
906
915
  config: f.config,
907
916
  translations: f.translations,
@@ -910,57 +919,57 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
910
919
  getCommentsSidebar: () => E.value ? { filterByBlock: E.value.filterCommentsByBlock } : null,
911
920
  editorRoot: f.shadowRoot,
912
921
  containerEl: O
913
- }), { isInitializing: A, isAuthReady: j, initError: M, planConfigInstance: N, websocket: P, collaboration: F, isCollaborationEnabled: I, editor: L, core: z, featureFlags: B, mediaLib: V, exporter: H, testEmail: U, commentsInstance: W, savedBlocks: G, panelState: K, snapshotPreview: q, collabWarning: ee, setThemeOverrides: te, setUiTheme: ne } = k, { showNotice: re } = R(() => f.config.smallScreenNotice);
914
- async function J(e) {
922
+ }), { isInitializing: A, isAuthReady: j, initError: N, planConfigInstance: P, websocket: F, collaboration: I, isCollaborationEnabled: L, editor: R, core: B, featureFlags: V, mediaLib: H, exporter: U, testEmail: W, commentsInstance: G, savedBlocks: K, panelState: q, snapshotPreview: J, collabWarning: te, setThemeOverrides: ne, setUiTheme: Y } = k, { showNotice: re } = M(() => f.config.smallScreenNotice);
923
+ async function ie(e) {
915
924
  try {
916
- await U.sendTestEmail(e), K.testEmailModalOpen.value = !1;
925
+ await W.sendTestEmail(e), q.testEmailModalOpen.value = !1;
917
926
  } catch {}
918
927
  }
919
- async function ie() {
928
+ async function ae() {
920
929
  try {
921
- await q.confirmRestoreSnapshot();
930
+ await J.confirmRestoreSnapshot();
922
931
  } catch {}
923
932
  }
924
- let Y = Ve({
933
+ let X = Ve({
925
934
  config: f.config,
926
- editor: L,
927
- websocket: P,
928
- planConfigInstance: N,
929
- snapshotPreview: q,
930
- core: z,
931
- exporter: H,
932
- featureFlags: B,
935
+ editor: R,
936
+ websocket: F,
937
+ planConfigInstance: P,
938
+ snapshotPreview: J,
939
+ core: B,
940
+ exporter: U,
941
+ featureFlags: V,
933
942
  isDestroyed: k.isDestroyed
934
- }), X = He({
935
- issues: z.templateLint ? z.templateLint.issues : c([]),
936
- planConfig: N.config
943
+ }), Z = He({
944
+ issues: B.templateLint ? B.templateLint.issues : c([]),
945
+ planConfig: P.config
937
946
  });
938
- async function Z() {
939
- await X.tryRunSave(() => Y.saveTemplate().catch((e) => f.config.onError?.(e)));
947
+ async function Q() {
948
+ await Z.tryRunSave(() => X.saveTemplate().catch((e) => f.config.onError?.(e)));
940
949
  }
941
- return k.onSaveHook.value = Z, t(() => {
950
+ return k.onSaveHook.value = Q, t(() => {
942
951
  k.initialize();
943
952
  }), g(() => {
944
953
  k.destroy();
945
954
  }), r({
946
- getContent: () => L.content.value,
947
- setContent: (e) => L.setContent(e),
948
- setTheme: ne,
949
- setThemeOverrides: te,
950
- create: Y.createTemplate,
951
- load: Y.loadTemplate,
952
- save: Y.saveTemplate,
953
- sendTestEmail: U.sendTestEmail
955
+ getContent: () => R.content.value,
956
+ setContent: (e) => R.setContent(e),
957
+ setTheme: Y,
958
+ setThemeOverrides: ne,
959
+ create: X.createTemplate,
960
+ load: X.loadTemplate,
961
+ save: X.saveTemplate,
962
+ sendTestEmail: W.sendTestEmail
954
963
  }), (t, r) => (i(), p("div", {
955
964
  ref_key: "rootEl",
956
965
  ref: O,
957
- class: b(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": h(L).state.darkMode }]),
958
- "data-tpl-theme": h(z).resolvedTheme.value,
959
- style: C(h(z).themeStyles.value),
966
+ class: b(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": h(R).state.darkMode }]),
967
+ "data-tpl-theme": h(B).resolvedTheme.value,
968
+ style: C(h(B).themeStyles.value),
960
969
  onDragover: r[6] ||= _(() => {}, ["prevent"]),
961
970
  onDrop: r[7] ||= _(() => {}, ["prevent"])
962
971
  }, [
963
- D(Ne),
972
+ D(ge),
964
973
  D(y, {
965
974
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
966
975
  "enter-from-class": "tpl:opacity-100",
@@ -969,7 +978,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
969
978
  "leave-from-class": "tpl:opacity-100",
970
979
  "leave-to-class": "tpl:opacity-0"
971
980
  }, {
972
- default: s(() => [D(vt, { visible: h(A) || h(L).state.isLoading }, null, 8, ["visible"])]),
981
+ default: s(() => [D(vt, { visible: h(A) || h(R).state.isLoading }, null, 8, ["visible"])]),
973
982
  _: 1
974
983
  }),
975
984
  D(y, {
@@ -981,8 +990,8 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
981
990
  "leave-to-class": "tpl:opacity-0"
982
991
  }, {
983
992
  default: s(() => [D(wt, {
984
- error: h(M),
985
- visible: !!h(M) && !h(A),
993
+ error: h(N),
994
+ visible: !!h(N) && !h(A),
986
995
  onRetry: h(k).initialize
987
996
  }, null, 8, [
988
997
  "error",
@@ -992,19 +1001,19 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
992
1001
  _: 1
993
1002
  }),
994
1003
  D(pt, {
995
- editor: h(L),
996
- core: h(z),
997
- "feature-flags": h(B),
998
- "panel-state": h(K),
999
- "snapshot-preview": h(q),
1000
- "comments-instance": h(W),
1001
- "test-email": h(U),
1002
- websocket: h(P),
1003
- collaboration: h(F),
1004
- "is-collaboration-enabled": h(I),
1005
- "is-saving": h(L).state.isSaving || h(B).isSaveExporting.value,
1006
- "is-save-disabled": h(L).state.isSaving || h(B).isSaveExporting.value || !h(L).state.isDirty,
1007
- onSave: Z
1004
+ editor: h(R),
1005
+ core: h(B),
1006
+ "feature-flags": h(V),
1007
+ "panel-state": h(q),
1008
+ "snapshot-preview": h(J),
1009
+ "comments-instance": h(G),
1010
+ "test-email": h(W),
1011
+ websocket: h(F),
1012
+ collaboration: h(I),
1013
+ "is-collaboration-enabled": h(L),
1014
+ "is-saving": h(R).state.isSaving || h(V).isSaveExporting.value,
1015
+ "is-save-disabled": h(R).state.isSaving || h(V).isSaveExporting.value || !h(R).state.isDirty,
1016
+ onSave: Q
1008
1017
  }, null, 8, [
1009
1018
  "editor",
1010
1019
  "core",
@@ -1020,10 +1029,10 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1020
1029
  "is-save-disabled"
1021
1030
  ]),
1022
1031
  D(Qe, {
1023
- open: h(X).modalOpen.value,
1024
- issues: h(X).blockingIssues.value,
1025
- onCancel: h(X).cancel,
1026
- onConfirm: h(X).confirmAndSave
1032
+ open: h(Z).modalOpen.value,
1033
+ issues: h(Z).blockingIssues.value,
1034
+ onCancel: h(Z).cancel,
1035
+ onConfirm: h(Z).confirmAndSave
1027
1036
  }, null, 8, [
1028
1037
  "open",
1029
1038
  "issues",
@@ -1031,9 +1040,9 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1031
1040
  "onConfirm"
1032
1041
  ]),
1033
1042
  D(Ot, {
1034
- visible: h(q).isPreviewingSnapshot.value,
1035
- onCancel: h(q).cancelPreview,
1036
- onConfirm: ie
1043
+ visible: h(J).isPreviewingSnapshot.value,
1044
+ onCancel: h(J).cancelPreview,
1045
+ onConfirm: ae
1037
1046
  }, null, 8, ["visible", "onCancel"]),
1038
1047
  D(y, {
1039
1048
  "enter-active-class": "tpl:transition-all tpl:duration-200 tpl:ease-out",
@@ -1043,18 +1052,18 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1043
1052
  "leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
1044
1053
  "leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
1045
1054
  }, {
1046
- default: s(() => [D(At, { visible: h(ee).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1055
+ default: s(() => [D(At, { visible: h(te).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1047
1056
  _: 1
1048
1057
  }),
1049
- n(D(Ee, null, null, 512), [[S, !h(L).state.previewMode]]),
1058
+ n(D(le, null, null, 512), [[S, !h(R).state.previewMode]]),
1050
1059
  x("div", {
1051
- class: b(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [h(L).state.previewMode ? "tpl:left-0 tpl:right-0" : h(K).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", h(q).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1060
+ class: b(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [h(R).state.previewMode ? "tpl:left-0 tpl:right-0" : h(q).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", h(J).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1052
1061
  style: {
1053
1062
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
1054
1063
  "background-color": "var(--tpl-canvas-bg)"
1055
1064
  }
1056
1065
  }, [x("div", Mt, [D(y, { name: "tpl-restore-btn" }, {
1057
- default: s(() => [h(z).conditionPreview.hasHiddenBlocks.value ? (i(), p("button", {
1066
+ default: s(() => [h(B).conditionPreview.hasHiddenBlocks.value ? (i(), p("button", {
1058
1067
  key: 0,
1059
1068
  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",
1060
1069
  style: {
@@ -1063,22 +1072,22 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1063
1072
  "border-color": "var(--tpl-warning)",
1064
1073
  "backdrop-filter": "blur(8px)"
1065
1074
  },
1066
- onClick: r[0] ||= (e) => h(z).conditionPreview.reset()
1067
- }, [D(h(ye), {
1075
+ onClick: r[0] ||= (e) => h(B).conditionPreview.reset()
1076
+ }, [D(h(ee), {
1068
1077
  size: 13,
1069
1078
  "stroke-width": 2
1070
- }), T(" " + d(h(z).t.blockSettings.restoreHiddenBlocks), 1)])) : m("", !0)]),
1079
+ }), T(" " + d(h(B).t.blockSettings.restoreHiddenBlocks), 1)])) : m("", !0)]),
1071
1080
  _: 1
1072
- })]), x("main", Nt, [D(Ce, {
1073
- viewport: h(L).state.viewport,
1074
- content: h(L).content.value,
1075
- "selected-block-id": h(L).state.selectedBlockId,
1076
- "dark-mode": h(L).state.darkMode,
1077
- "preview-mode": h(L).state.previewMode,
1078
- "locked-blocks": h(F)?.lockedBlocks.value ?? void 0,
1079
- onSelectBlock: h(L).selectBlock,
1080
- onOpenAiChat: r[1] ||= (e) => h(K).aiChatOpen.value = !0,
1081
- onOpenDesignReference: r[2] ||= (e) => h(K).designReferenceOpen.value = !0
1081
+ })]), x("main", Nt, [D(se, {
1082
+ viewport: h(R).state.viewport,
1083
+ content: h(R).content.value,
1084
+ "selected-block-id": h(R).state.selectedBlockId,
1085
+ "dark-mode": h(R).state.darkMode,
1086
+ "preview-mode": h(R).state.previewMode,
1087
+ "locked-blocks": h(I)?.lockedBlocks.value ?? void 0,
1088
+ onSelectBlock: h(R).selectBlock,
1089
+ onOpenAiChat: r[1] ||= (e) => h(q).aiChatOpen.value = !0,
1090
+ onOpenDesignReference: r[2] ||= (e) => h(q).designReferenceOpen.value = !0
1082
1091
  }, null, 8, [
1083
1092
  "viewport",
1084
1093
  "content",
@@ -1088,43 +1097,43 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1088
1097
  "locked-blocks",
1089
1098
  "onSelectBlock"
1090
1099
  ])])], 2),
1091
- e.config.branding !== !1 && !h(B).isWhiteLabeled.value ? (i(), v(Ae, {
1100
+ e.config.branding !== !1 && !h(V).isWhiteLabeled.value ? (i(), v(pe, {
1092
1101
  key: 0,
1093
- "position-class": [h(L).state.previewMode ? "tpl:left-0 tpl:right-0" : h(K).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1102
+ "position-class": [h(R).state.previewMode ? "tpl:left-0 tpl:right-0" : h(q).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1094
1103
  }, null, 8, ["position-class"])) : m("", !0),
1095
1104
  x("div", {
1096
1105
  class: "tpl-sr-only",
1097
1106
  role: "status",
1098
1107
  "aria-live": "polite",
1099
1108
  "aria-atomic": "true",
1100
- "aria-label": h(z).t.landmarks.reorderAnnouncements
1101
- }, d(h(z).keyboardReorder.announcement.value), 9, Pt),
1102
- n(D(Se, {
1103
- "selected-block": h(L).selectedBlock.value,
1104
- settings: h(L).content.value.settings,
1105
- "shifted-left": h(K).rightPanelOpen.value,
1106
- onUpdateBlock: r[3] ||= (e) => h(L).updateBlock(h(L).selectedBlock.value.id, e),
1107
- onDeleteBlock: r[4] ||= (e) => h(z).blockActions.deleteBlock(h(L).selectedBlock.value.id),
1108
- onDuplicateBlock: r[5] ||= (e) => h(z).blockActions.duplicateBlock(h(L).selectedBlock.value),
1109
- onUpdateSettings: h(L).updateSettings
1109
+ "aria-label": h(B).t.landmarks.reorderAnnouncements
1110
+ }, d(h(B).keyboardReorder.announcement.value), 9, Pt),
1111
+ n(D(oe, {
1112
+ "selected-block": h(R).selectedBlock.value,
1113
+ settings: h(R).content.value.settings,
1114
+ "shifted-left": h(q).rightPanelOpen.value,
1115
+ onUpdateBlock: r[3] ||= (e) => h(R).updateBlock(h(R).selectedBlock.value.id, e),
1116
+ onDeleteBlock: r[4] ||= (e) => h(B).blockActions.deleteBlock(h(R).selectedBlock.value.id),
1117
+ onDuplicateBlock: r[5] ||= (e) => h(B).blockActions.duplicateBlock(h(R).selectedBlock.value),
1118
+ onUpdateSettings: h(R).updateSettings
1110
1119
  }, null, 8, [
1111
1120
  "selected-block",
1112
1121
  "settings",
1113
1122
  "shifted-left",
1114
1123
  "onUpdateSettings"
1115
- ]), [[S, !h(L).state.previewMode]]),
1124
+ ]), [[S, !h(R).state.previewMode]]),
1116
1125
  !h(A) && h(j) ? (i(), v(mt, {
1117
1126
  key: 1,
1118
1127
  ref_key: "cloudPanelsRef",
1119
1128
  ref: E,
1120
1129
  config: f.config,
1121
- editor: h(L),
1122
- core: h(z),
1123
- "panel-state": h(K),
1124
- "plan-config-instance": h(N),
1125
- "test-email": h(U),
1126
- "media-lib": h(V),
1127
- onSendTestEmail: J
1130
+ editor: h(R),
1131
+ core: h(B),
1132
+ "panel-state": h(q),
1133
+ "plan-config-instance": h(P),
1134
+ "test-email": h(W),
1135
+ "media-lib": h(H),
1136
+ onSendTestEmail: ie
1128
1137
  }, null, 8, [
1129
1138
  "config",
1130
1139
  "editor",
@@ -1134,21 +1143,21 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1134
1143
  "test-email",
1135
1144
  "media-lib"
1136
1145
  ])) : m("", !0),
1137
- h(G).isAvailable.value ? (i(), v(h(l), {
1146
+ h(K).isAvailable.value ? (i(), v(h(l), {
1138
1147
  key: 2,
1139
- feature: h(G)
1148
+ feature: h(K)
1140
1149
  }, null, 8, ["feature"])) : m("", !0),
1141
1150
  x("div", {
1142
- ref: (e) => h(z).popoverRoot.value = e,
1151
+ ref: (e) => h(B).popoverRoot.value = e,
1143
1152
  class: "tpl-popover-root"
1144
1153
  }, null, 512),
1145
- D(De),
1146
- D(Me),
1147
- h(re) ? (i(), v(je, { key: 3 })) : m("", !0)
1154
+ D(ue),
1155
+ D(he),
1156
+ h(re) ? (i(), v(me, { key: 3 })) : m("", !0)
1148
1157
  ], 46, jt));
1149
1158
  }
1150
1159
  }), [["__scopeId", "data-v-04940787"]]);
1151
1160
  //#endregion
1152
1161
  export { Ft as default };
1153
1162
 
1154
- //# sourceMappingURL=CloudEditor-DnTfI5GU.js.map
1163
+ //# sourceMappingURL=CloudEditor-B3hqbwfP.js.map