@templatical/editor 0.8.4 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/{AiChatSidebar-CnRXeK77.js → AiChatSidebar-BUKj9n02.js} +5 -5
  2. package/dist/{AiFeatureMenu-BYDDrpj6.js → AiFeatureMenu-Co14YVJt.js} +3 -3
  3. package/dist/{BlockIssueBadge-DM-vXeD6.js → BlockIssueBadge-DThKKeub.js} +2 -2
  4. package/dist/{CloudEditor-B9a_K6Cm.js → CloudEditor-CAtw_sFC.js} +218 -217
  5. package/dist/{CollaboratorBar-HN4whzM-.js → CollaboratorBar-Bc6q0gB9.js} +2 -2
  6. package/dist/{CommentsSidebar-_llWQ4VT.js → CommentsSidebar-DiH4R4F0.js} +3 -3
  7. package/dist/{CountdownBlock-I99sC0C5.js → CountdownBlock-BTPefclD.js} +2 -2
  8. package/dist/{CountdownToolbar-BUhOUiQ9.js → CountdownToolbar-Dvr2icg-.js} +2 -2
  9. package/dist/{DesignReferenceSidebar-0GwjUn2V.js → DesignReferenceSidebar-BP32MgpS.js} +3 -3
  10. package/dist/{IssuesPanel-4MKZe8yP.js → IssuesPanel-B1LT91IX.js} +2 -2
  11. package/dist/{ModuleBrowserModal-DPZBsvqk.js → ModuleBrowserModal-CWegFoOA.js} +77 -85
  12. package/dist/{ModulePreviewCanvas-CK4j11-e.js → ModulePreviewCanvas-D9WUSSRT.js} +2 -2
  13. package/dist/{NumberWithSuffix-CxMFy_j3.js → NumberWithSuffix-CxUBW_V2.js} +2 -2
  14. package/dist/{ParagraphEditor-DBus_iHH.js → ParagraphEditor-DrAz2yot.js} +126 -126
  15. package/dist/{RichTextEditorContent-B_KCY6T1.js → RichTextEditorContent-gR169m1-.js} +4 -4
  16. package/dist/{SaveModuleDialog-DORRSbBo.js → SaveModuleDialog-DWidA0c9.js} +6 -6
  17. package/dist/{SnapshotHistory-DTMVEk03.js → SnapshotHistory-CIo2Jaw-.js} +4 -4
  18. package/dist/{TemplateScoringPanel-BIwEwFxD.js → TemplateScoringPanel-seBvvn8O.js} +2 -2
  19. package/dist/{TestEmailModal-DJmYp0Qi.js → TestEmailModal-BuCuWp3N.js} +3 -3
  20. package/dist/{TitleEditor-70d9AF1V.js → TitleEditor-BmW0uMl7.js} +67 -67
  21. package/dist/{TplModal-BEfwlvPC.js → TplModal-YFpBaiLj.js} +4 -4
  22. package/dist/{blockTypeIcons-2DRoPa3K.js → blockTypeIcons-DCkHXPhx.js} +19 -11
  23. package/dist/bundle-stats.json +8 -8
  24. package/dist/cdn/chunks/{AiFeatureMenu-CcuKnisc.js → AiFeatureMenu-Dayzk2H7.js} +2 -2
  25. package/dist/cdn/chunks/{AiFeatureMenu-CcuKnisc.js.map → AiFeatureMenu-Dayzk2H7.js.map} +1 -1
  26. package/dist/cdn/chunks/{BlockIssueBadge-Sr3is7Wr.js → BlockIssueBadge-D_US2wqo.js} +4 -4
  27. package/dist/cdn/chunks/{BlockIssueBadge-Sr3is7Wr.js.map → BlockIssueBadge-D_US2wqo.js.map} +1 -1
  28. package/dist/cdn/chunks/{CloudEditor-Bi10d2Gq.js → CloudEditor-CyJItWsK.js} +186 -185
  29. package/dist/cdn/chunks/{CloudEditor-Bi10d2Gq.js.map → CloudEditor-CyJItWsK.js.map} +1 -1
  30. package/dist/cdn/chunks/{CollaboratorBar-C0zeecvl.js → CollaboratorBar-C4CFs5EJ.js} +3 -3
  31. package/dist/cdn/chunks/{CollaboratorBar-C0zeecvl.js.map → CollaboratorBar-C4CFs5EJ.js.map} +1 -1
  32. package/dist/cdn/chunks/{CountdownBlock-CpSUUDDs.js → CountdownBlock-D6lCXhZA.js} +2 -2
  33. package/dist/cdn/chunks/{CountdownBlock-CpSUUDDs.js.map → CountdownBlock-D6lCXhZA.js.map} +1 -1
  34. package/dist/cdn/chunks/{CountdownToolbar-BBzdR-00.js → CountdownToolbar-BsGUxoRv.js} +3 -3
  35. package/dist/cdn/chunks/{CountdownToolbar-BBzdR-00.js.map → CountdownToolbar-BsGUxoRv.js.map} +1 -1
  36. package/dist/cdn/chunks/{IssuesPanel-Bthq6qoZ.js → IssuesPanel-DeHTmRDz.js} +5 -5
  37. package/dist/cdn/chunks/{IssuesPanel-Bthq6qoZ.js.map → IssuesPanel-DeHTmRDz.js.map} +1 -1
  38. package/dist/cdn/chunks/{ModuleBrowserModal-CFMd6M7E.js → ModuleBrowserModal-Cgjz4xAz.js} +8 -8
  39. package/dist/cdn/chunks/ModuleBrowserModal-Cgjz4xAz.js.map +1 -0
  40. package/dist/cdn/chunks/{ModulePreviewCanvas-BkcPcF5C.js → ModulePreviewCanvas-CeS9PsAA.js} +2 -2
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-BkcPcF5C.js.map → ModulePreviewCanvas-CeS9PsAA.js.map} +1 -1
  42. package/dist/cdn/chunks/{NumberWithSuffix-C2hH_ZIK.js → NumberWithSuffix-Bp-idLCc.js} +2 -2
  43. package/dist/cdn/chunks/{NumberWithSuffix-C2hH_ZIK.js.map → NumberWithSuffix-Bp-idLCc.js.map} +1 -1
  44. package/dist/cdn/chunks/{ParagraphEditor-BIWXLPfu.js → ParagraphEditor-fM9aFu8T.js} +116 -116
  45. package/dist/cdn/chunks/ParagraphEditor-fM9aFu8T.js.map +1 -0
  46. package/dist/cdn/chunks/{RichTextEditorContent-DU0gc4bi.js → RichTextEditorContent-DwNPE5H5.js} +4 -4
  47. package/dist/cdn/chunks/{RichTextEditorContent-DU0gc4bi.js.map → RichTextEditorContent-DwNPE5H5.js.map} +1 -1
  48. package/dist/cdn/chunks/{SaveModuleDialog-DR9EZlWe.js → SaveModuleDialog-BrtDXzIz.js} +4 -4
  49. package/dist/cdn/chunks/SaveModuleDialog-BrtDXzIz.js.map +1 -0
  50. package/dist/cdn/chunks/TitleEditor-D0rSnye0.js +175 -0
  51. package/dist/cdn/chunks/TitleEditor-D0rSnye0.js.map +1 -0
  52. package/dist/cdn/chunks/{blockTypeIcons-eVGGIdne.js → blockTypeIcons-YOEe5mDE.js} +3 -3
  53. package/dist/cdn/chunks/{blockTypeIcons-eVGGIdne.js.map → blockTypeIcons-YOEe5mDE.js.map} +1 -1
  54. package/dist/{de-ED7c5RpG.js → cdn/chunks/de-CATfXDKV.js} +14 -1
  55. package/dist/cdn/chunks/{de-ED7c5RpG.js.map → de-CATfXDKV.js.map} +1 -1
  56. package/dist/cdn/chunks/{en-ivilDUn0.js → en-CwCAgYL5.js} +13 -2
  57. package/dist/cdn/chunks/{en-ivilDUn0.js.map → en-CwCAgYL5.js.map} +1 -1
  58. package/dist/cdn/chunks/{extensions-CvCoOuWB.js → extensions-GYsbQFPr.js} +26 -23
  59. package/dist/cdn/chunks/extensions-GYsbQFPr.js.map +1 -0
  60. package/dist/cdn/chunks/{features-CUYy5kZQ.js → features-D-2kVhHY.js} +1264 -1188
  61. package/dist/cdn/chunks/features-D-2kVhHY.js.map +1 -0
  62. package/dist/cdn/chunks/{icons-C4zY5-I3.js → icons-fZoyKV_s.js} +2 -2
  63. package/dist/cdn/chunks/{icons-C4zY5-I3.js.map → icons-fZoyKV_s.js.map} +1 -1
  64. package/dist/cdn/chunks/{media-library-BNt3msId.js → media-library-CO2WOETY.js} +240 -240
  65. package/dist/cdn/chunks/{media-library-BNt3msId.js.map → media-library-CO2WOETY.js.map} +1 -1
  66. package/dist/{pt-BR-B5tm2iBl.js → cdn/chunks/pt-BR-D3Mg7AKe.js} +14 -1
  67. package/dist/cdn/chunks/{pt-BR-B5tm2iBl.js.map → pt-BR-D3Mg7AKe.js.map} +1 -1
  68. package/dist/cdn/chunks/{quality-BTPRPGB-.js → quality-BxPiS-wv.js} +603 -577
  69. package/dist/cdn/chunks/{quality-BTPRPGB-.js.map → quality-BxPiS-wv.js.map} +1 -1
  70. package/dist/cdn/chunks/{renderer-IOmuuZjJ.js → renderer-7z2t_bYQ.js} +142 -108
  71. package/dist/cdn/chunks/{renderer-IOmuuZjJ.js.map → renderer-7z2t_bYQ.js.map} +1 -1
  72. package/dist/cdn/chunks/{src-Dp0ZFQ4-.js → src-ftxPuuQh.js} +4 -4
  73. package/dist/cdn/chunks/{src-Dp0ZFQ4-.js.map → src-ftxPuuQh.js.map} +1 -1
  74. package/dist/cdn/chunks/{styles-DtgjgsBH.js → styles-o0HIrw9F.js} +877 -622
  75. package/dist/cdn/chunks/styles-o0HIrw9F.js.map +1 -0
  76. package/dist/cdn/chunks/{tiptap-BErAJEvo.js → tiptap-BBbH3IT9.js} +849 -725
  77. package/dist/cdn/chunks/tiptap-BBbH3IT9.js.map +1 -0
  78. package/dist/cdn/editor.css +1 -1
  79. package/dist/cdn/editor.js +102 -101
  80. package/dist/cdn/editor.js.map +1 -1
  81. package/dist/{cloud-Dz8Ay2FM.js → cloud-VxYMtfXC.js} +1 -1
  82. package/dist/{cdn/chunks/de-ED7c5RpG.js → de-CATfXDKV.js} +12 -3
  83. package/dist/{dist-BygsE-n3.js → dist-BDgf2G-V.js} +453 -314
  84. package/dist/{dist-BtDBsF3N.js → dist-BxP6TB0l.js} +2 -2
  85. package/dist/{dist-DWhP3Dp2.js → dist-BzuC8o3y.js} +1209 -1217
  86. package/dist/{dist-v-O2Subd.js → dist-C0jo8wtG.js} +2 -2
  87. package/dist/{dist-BTgujVMy.js → dist-C8wMh_gi.js} +2 -2
  88. package/dist/{dist-Cipw2HFH.js → dist-CIV3Brg-.js} +37 -4
  89. package/dist/{dist-HO0vjY5Z.js → dist-CNLAS2v2.js} +130 -124
  90. package/dist/{dist-BS5Oi67L.js → dist-CUpJmrjt.js} +2 -2
  91. package/dist/dist-D5lmdi1F.js +5 -0
  92. package/dist/{dist-T-ORzNfM.js → dist-D8C6jIXM.js} +168 -175
  93. package/dist/dist-DILjuzSv.js +5 -0
  94. package/dist/{dist-CDtcJMB2.js → dist-DXaxGLsw.js} +33 -33
  95. package/dist/{dist-DnGTaPRX.js → dist-DYO-w_Jf.js} +2 -2
  96. package/dist/{dist-CDZCyoRy.js → dist-UK-lbEBc.js} +2 -2
  97. package/dist/{en-ivilDUn0.js → en-CwCAgYL5.js} +12 -1
  98. package/dist/{extensions-BmGiz8Oo.js → extensions-Mj2-D8uK.js} +32 -29
  99. package/dist/{keys-B8K7Z7Ef.js → keys-BiQlvx51.js} +3 -3
  100. package/dist/{cdn/chunks/pt-BR-B5tm2iBl.js → pt-BR-D3Mg7AKe.js} +12 -3
  101. package/dist/style.css +1 -1
  102. package/dist/{styles-DFeOGKa_.js → styles-CJtcKmsx.js} +857 -601
  103. package/dist/templatical-editor.js +104 -103
  104. package/dist/{useCloudI18n-DFzVgYhJ.js → useCloudI18n-DKWJg6rJ.js} +1 -1
  105. package/dist/{useEditorCore-BXz-UXPd.js → useEditorCore-CEkf_VWX.js} +663 -633
  106. package/dist/{useI18n-CBbStVlD.js → useI18n-Besvmtxy.js} +1 -1
  107. package/dist/useMergeTag-WNzaCpXR.js +44 -0
  108. package/dist/{usePopoverRoot-62PlZQQ3.js → usePopoverRoot-CKt956u-.js} +1 -1
  109. package/package.json +21 -21
  110. package/dist/cdn/chunks/ModuleBrowserModal-CFMd6M7E.js.map +0 -1
  111. package/dist/cdn/chunks/ParagraphEditor-BIWXLPfu.js.map +0 -1
  112. package/dist/cdn/chunks/SaveModuleDialog-DR9EZlWe.js.map +0 -1
  113. package/dist/cdn/chunks/TitleEditor-DZcx2N4R.js +0 -175
  114. package/dist/cdn/chunks/TitleEditor-DZcx2N4R.js.map +0 -1
  115. package/dist/cdn/chunks/extensions-CvCoOuWB.js.map +0 -1
  116. package/dist/cdn/chunks/features-CUYy5kZQ.js.map +0 -1
  117. package/dist/cdn/chunks/styles-DtgjgsBH.js.map +0 -1
  118. package/dist/cdn/chunks/tiptap-BErAJEvo.js.map +0 -1
  119. package/dist/dist-BySzGkeC.js +0 -5
  120. package/dist/dist-D7JUZ2Kd.js +0 -5
  121. package/dist/useMergeTag-CS2bmWA0.js +0 -34
@@ -1,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 { A as O, At as k, C as A, Dt as j, Et as M, Ft as N, Ht as P, It as F, Ln as I, Nt as L, O as te, Qt as R, Rt as ne, S as re, Ut as z, Vt as B, Xt as ie, Z as V, Zt as H, _ as U, _t as W, b as ae, d as oe, dn as G, f as K, g as q, h as J, l as se, m as Y, p as ce, pt as X, rn as Z, rt as le, st as ue, tt as Q, u as de, ut as fe, v as pe, vt as me, w as he, wn as ge, x as _e, y as ve, yn as ye } from "./features-CUYy5kZQ.js";
3
- import { C as be, S as xe } from "./icons-C4zY5-I3.js";
4
- import { a as Se, c as Ce, i as we, n as Te, o as Ee, r as De, s as Oe, t as ke } from "./styles-DtgjgsBH.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";
5
5
  import { d as $ } from "./styleConstants-lGobwiLH.js";
6
6
  //#region src/cloud/composables/useSnapshotPreview.ts
7
- function Ae(t) {
7
+ function je(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 = Y({
14
+ i.state.template?.id && !u.value && (u.value = q({
15
15
  authManager: n,
16
16
  templateId: i.state.template.id,
17
17
  onRestore: b,
@@ -61,7 +61,7 @@ function Ae(t) {
61
61
  }
62
62
  //#endregion
63
63
  //#region src/cloud/composables/useCloudPanelState.ts
64
- function je() {
64
+ function Me() {
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 je() {
84
84
  function g(t) {
85
85
  l.value = !1, e.value = e.value === t ? null : t;
86
86
  }
87
- return Z(u, () => {
87
+ return X(u, () => {
88
88
  l.value = !1;
89
89
  }), {
90
90
  activePanel: e,
@@ -106,10 +106,10 @@ function je() {
106
106
  }
107
107
  //#endregion
108
108
  //#region src/cloud/composables/useCollabUndoWarning.ts
109
- function Me(e) {
110
- let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = c(!1), a = c(!1), { start: o } = G(() => {
109
+ function Ne(e) {
110
+ let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = c(!1), a = c(!1), { start: o } = Z(() => {
111
111
  a.value = !1;
112
- }, I, { immediate: !1 });
112
+ }, ye, { 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,8 +120,8 @@ function Me(e) {
120
120
  }
121
121
  //#endregion
122
122
  //#region src/cloud/composables/useCloudFeatureFlags.ts
123
- function Ne(e) {
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 } = G(() => {
123
+ function Pe(e) {
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 });
127
127
  return {
@@ -139,7 +139,7 @@ function Ne(e) {
139
139
  }
140
140
  //#endregion
141
141
  //#region src/cloud/composables/useCloudMediaLibrary.ts
142
- function Pe(e) {
142
+ function Fe(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 Pe(e) {
174
174
  }
175
175
  //#endregion
176
176
  //#region src/cloud/composables/useCloudInitialization.ts
177
- function Fe(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 te({
177
+ function Ie(e) {
178
+ let { config: t, translations: n, fontsManager: r, emit: i, getCommentsSidebar: o } = e, s = c(!0), l = c(!1), u = c(null), d = !1, p = { value: null }, m = null, h = null, g = new M({
179
179
  ...t.auth,
180
180
  onError: t.onError
181
- }), _ = oe({
181
+ }), _ = ae({
182
182
  authManager: g,
183
183
  onError: t.onError
184
- }), v = c(/* @__PURE__ */ new Map()), y = A({
184
+ }), v = c(/* @__PURE__ */ new Map()), y = ge({
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 = q({
190
+ }), b = oe({
191
191
  authManager: g,
192
192
  onError: t.onError
193
193
  });
194
- t.mcp?.enabled && se({
194
+ t.mcp?.enabled && ue({
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 = pe({
200
+ t.collaboration?.enabled && (x = J({
201
201
  authManager: g,
202
202
  editor: y,
203
203
  channel: b.channel,
@@ -208,8 +208,8 @@ function Fe(e) {
208
208
  onBlockUnlocked: t.collaboration.onBlockUnlocked
209
209
  }), ee(() => x.lockedBlocks.value, (e) => {
210
210
  v.value = e;
211
- }, { immediate: !0 }), U(y, x));
212
- let S = f(() => !!t.collaboration?.enabled && _.hasFeature("collaboration")), C = O({
211
+ }, { immediate: !0 }), Y(y, x));
212
+ let S = f(() => !!t.collaboration?.enabled && _.hasFeature("collaboration")), C = k({
213
213
  editor: y,
214
214
  config: {
215
215
  uiTheme: t.uiTheme,
@@ -219,7 +219,7 @@ function Fe(e) {
219
219
  mergeTags: t.mergeTags,
220
220
  displayConditions: t.displayConditions,
221
221
  onRequestMedia: null,
222
- lint: Ce(t),
222
+ lint: Te(t),
223
223
  onSave: () => {
224
224
  p.value?.().catch((e) => {
225
225
  t.onError?.(e);
@@ -240,13 +240,13 @@ function Fe(e) {
240
240
  keyboardOptions: { onBeforeUndo: () => h?.showCollabUndoWarning() },
241
241
  editorRoot: e.editorRoot,
242
242
  containerEl: e.containerEl
243
- }), w = Me({
243
+ }), w = Ne({
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 = Ae({
249
+ let T = je({
250
250
  authManager: g,
251
251
  editor: y,
252
252
  history: C.history,
@@ -255,32 +255,32 @@ function Fe(e) {
255
255
  onError: t.onError
256
256
  });
257
257
  m = T;
258
- let E = je(), D = re(t.ai), k = Ne({
258
+ let E = Me(), D = W(t.ai), A = Pe({
259
259
  planConfigInstance: _,
260
260
  aiConfig: D,
261
261
  editor: y
262
- }), j = Pe({
262
+ }), j = Fe({
263
263
  onRequestMedia: t.onRequestMedia,
264
264
  mediaLibraryOpen: E.mediaLibraryOpen,
265
265
  mediaLibraryAccept: E.mediaLibraryAccept
266
266
  });
267
- V({
267
+ ie({
268
268
  onBlockMove: y.moveBlock,
269
269
  onBlockAdd: y.addBlock
270
270
  });
271
- let M = K({
271
+ let N = fe({
272
272
  authManager: g,
273
273
  getFontsConfig: () => t.fonts,
274
274
  canUseCustomFonts: () => _.hasFeature("custom_fonts")
275
- }), N = ce({
275
+ }), P = K({
276
276
  authManager: g,
277
277
  getTemplateId: () => y.state.template?.id ?? null,
278
278
  save: () => y.save(),
279
- exportHtml: (e) => M.exportHtml(e),
279
+ exportHtml: (e) => N.exportHtml(e),
280
280
  onError: t.onError,
281
281
  isAuthReady: l,
282
282
  onBeforeTestEmail: t.onBeforeTestEmail
283
- }), P = ae({
283
+ }), F = me({
284
284
  authManager: g,
285
285
  getTemplateId: () => y.state.template?.id ?? null,
286
286
  getSocketId: () => b.getSocketId(),
@@ -289,14 +289,14 @@ function Fe(e) {
289
289
  isAuthReady: l,
290
290
  hasCommentingFeature: () => t.commenting !== !1 && _.hasFeature("commenting")
291
291
  });
292
- ve({
293
- comments: P,
292
+ H({
293
+ comments: F,
294
294
  channel: b.channel
295
295
  });
296
- let I = J({
296
+ let I = se({
297
297
  authManager: g,
298
298
  onError: t.onError
299
- }), W = c(!1), G = c(null), Y = c(!1), X = _e({
299
+ }), R = c(!1), U = c(null), q = c(!1), X = ve({
300
300
  authManager: g,
301
301
  getTemplateId: () => y.state.template?.id ?? null
302
302
  });
@@ -305,39 +305,39 @@ function Fe(e) {
305
305
  o()?.filterByBlock(e);
306
306
  });
307
307
  }
308
- a(ie, j.handleRequestMedia), a(ne, g), a(F, D), a(z, P), a(H, I), a(R, X), a(B, {
308
+ a(V, j.handleRequestMedia), a(re, g), a(te, D), a(z, F), a(L, I), a(O, X), a(B, {
309
309
  plan: _,
310
310
  ai: D,
311
311
  comments: {
312
- getBlockCount: (e) => P.commentCountByBlock.value.get(e) ?? 0,
312
+ getBlockCount: (e) => F.commentCountByBlock.value.get(e) ?? 0,
313
313
  openForBlock: Z
314
314
  },
315
315
  savedModules: {
316
316
  openSaveDialog: (e) => {
317
- G.value = e ?? null, W.value = !0;
317
+ U.value = e ?? null, R.value = !0;
318
318
  },
319
319
  openBrowser: () => {
320
- Y.value = !0;
320
+ q.value = !0;
321
321
  },
322
322
  moduleCount: f(() => I.modules.value.length)
323
323
  }
324
324
  });
325
- function le(e) {
325
+ function ce(e) {
326
326
  _.hasFeature("theme_customization") && (C.themeOverrides.value = e);
327
327
  }
328
- function ue(e) {
328
+ function le(e) {
329
329
  y.setUiTheme(e);
330
330
  }
331
- async function Q() {
331
+ async function de() {
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 de({ authManager: g });
336
+ let e = await G({ 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 || L.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 || ne.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 Fe(e) {
347
347
  d || (s.value = !1);
348
348
  }
349
349
  }
350
- function fe() {
350
+ function Q() {
351
351
  d = !0, r.cleanupFontLinks(), b.disconnect(), C.destroy(), t.onUnmount?.();
352
352
  }
353
353
  return {
@@ -363,32 +363,32 @@ function Fe(e) {
363
363
  editor: y,
364
364
  core: C,
365
365
  aiConfig: D,
366
- featureFlags: k,
366
+ featureFlags: A,
367
367
  mediaLib: j,
368
- exporter: M,
369
- testEmail: N,
370
- commentsInstance: P,
368
+ exporter: N,
369
+ testEmail: P,
370
+ commentsInstance: F,
371
371
  savedModulesHeadless: I,
372
372
  scoringInstance: X,
373
373
  panelState: E,
374
374
  snapshotPreview: T,
375
375
  collabWarning: w,
376
- showSaveModuleDialog: W,
377
- showModuleBrowserModal: Y,
378
- saveModulePreSelectedBlockId: G,
376
+ showSaveModuleDialog: R,
377
+ showModuleBrowserModal: q,
378
+ saveModulePreSelectedBlockId: U,
379
379
  onSaveHook: p,
380
- initialize: Q,
381
- destroy: fe,
382
- setThemeOverrides: le,
383
- setUiTheme: ue,
380
+ initialize: de,
381
+ destroy: Q,
382
+ setThemeOverrides: ce,
383
+ setUiTheme: le,
384
384
  openCommentsForBlock: Z
385
385
  };
386
386
  }
387
387
  //#endregion
388
388
  //#region src/utils/preRenderCustomBlocks.ts
389
- async function Ie(e, t) {
389
+ async function Le(e, t) {
390
390
  let n = async (e) => {
391
- if (ge(e)) {
391
+ if (N(e)) {
392
392
  let n = e;
393
393
  try {
394
394
  n.renderedHtml = await t.renderCustomBlock(n);
@@ -405,10 +405,10 @@ async function Ie(e, t) {
405
405
  }
406
406
  //#endregion
407
407
  //#region src/cloud/composables/useCloudLifecycle.ts
408
- function Le(e) {
408
+ function Re(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 he(i.config.value.websocket);
411
+ return R(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 Le(e) {
421
421
  async function p() {
422
422
  c.isSaveExporting.value = !0, c.saveStatus.value = "idle";
423
423
  try {
424
- if (await Ie(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
424
+ if (await Le(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 Le(e) {
448
448
  }
449
449
  //#endregion
450
450
  //#region src/cloud/composables/useCloudSaveGate.ts
451
- function Re(e) {
451
+ function ze(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 Re(e) {
471
471
  }
472
472
  //#endregion
473
473
  //#region src/cloud/components/CloudSaveGateModal.vue?vue&type=script&setup=true&lang.ts
474
- var ze = ["aria-label"], Be = { 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)]" }, Ve = { class: "tpl:flex tpl:items-center tpl:gap-2" }, He = { class: "tpl:m-0 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Ue = { class: "tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, We = { 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" }, Ge = { class: "tpl:text-xs tpl:text-[var(--tpl-text)]" }, Ke = { class: "tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, qe = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, Je = /* @__PURE__ */ E({
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({
475
475
  __name: "CloudSaveGateModal",
476
476
  props: {
477
477
  open: { type: Boolean },
@@ -493,18 +493,18 @@ var ze = ["aria-label"], Be = { 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", Be, [
497
- x("header", Ve, [D(h(ue), {
496
+ }, [x("div", Ve, [
497
+ x("header", He, [D(h(de), {
498
498
  size: 18,
499
499
  "stroke-width": 2,
500
500
  class: "tpl:text-[var(--tpl-warning)]"
501
- }), x("h2", He, d(h(r).saveGate.title), 1)]),
502
- x("p", Ue, d(h(r).saveGate.body), 1),
503
- x("ul", We, [(i(!0), p(w, null, o(e.issues, (e) => (i(), p("li", {
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", {
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", Ge, d(e.message), 1), x("span", Ke, d(e.ruleId), 1)]))), 128))]),
507
- x("footer", qe, [x("button", {
506
+ }, [x("span", Ke, d(e.message), 1), x("span", qe, d(e.ruleId), 1)]))), 128))]),
507
+ x("footer", Je, [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 ze = ["aria-label"], Be = { 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, ze)) : m("", !0)]),
516
+ ])], 8, Be)) : m("", !0)]),
517
517
  _: 1
518
518
  }));
519
519
  }
520
- }), Ye = {
520
+ }), Xe = {
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 ze = ["aria-label"], Be = { 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
- }, Xe = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, Ze = {
529
+ }, Ze = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, Qe = {
530
530
  key: 0,
531
531
  class: "tpl:text-xs tpl:opacity-60 tpl:text-[var(--tpl-text-muted)]"
532
- }, Qe = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, $e = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, et = ["data-tooltip"], tt = {
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 = {
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
- }, nt = {
536
+ }, rt = {
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
- }, rt = ["aria-label", "aria-expanded"], it = {
540
+ }, it = ["aria-label", "aria-expanded"], at = {
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
- }, at = ["aria-expanded"], ot = {
543
+ }, ot = ["aria-expanded"], st = {
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
- }, st = ["disabled"], ct = ["disabled"], lt = /* @__PURE__ */ E({
546
+ }, ct = ["disabled"], lt = ["disabled"], ut = /* @__PURE__ */ E({
547
547
  __name: "CloudHeader",
548
548
  props: {
549
549
  editor: {},
@@ -561,22 +561,22 @@ var ze = ["aria-label"], Be = { 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-C0zeecvl.js")), n = u(() => import("./features-CUYy5kZQ.js").then((e) => e.r)), r = u(() => import("./AiFeatureMenu-CcuKnisc.js")), { t: a, format: o } = Q();
565
- return (c, l) => (i(), p("header", Ye, [
566
- x("div", Xe, [e.featureFlags.templateLimit.value === null ? m("", !0) : (i(), p("span", Ze, d(h(o)(h(a).header.templatesUsed, {
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, {
567
567
  used: e.featureFlags.templateCount.value,
568
568
  max: e.featureFlags.templateLimit.value
569
569
  })), 1))]),
570
- x("div", Qe, [
571
- D(we, {
570
+ x("div", $e, [
571
+ D(Se, {
572
572
  viewport: e.editor.state.viewport,
573
573
  onChange: e.editor.setViewport
574
574
  }, null, 8, ["viewport", "onChange"]),
575
- D(Te, {
575
+ D(Oe, {
576
576
  "dark-mode": e.editor.state.darkMode,
577
577
  onChange: e.editor.setDarkMode
578
578
  }, null, 8, ["dark-mode", "onChange"]),
579
- D(De, {
579
+ D(we, {
580
580
  "preview-mode": e.editor.state.previewMode,
581
581
  onChange: e.editor.setPreviewMode
582
582
  }, null, 8, ["preview-mode", "onChange"]),
@@ -600,7 +600,7 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
600
600
  "onNavigate"
601
601
  ])) : m("", !0)
602
602
  ]),
603
- x("div", $e, [
603
+ x("div", et, [
604
604
  e.featureFlags.saveStatus.value === "error" ? (i(), p("div", {
605
605
  key: 0,
606
606
  "aria-live": "assertive",
@@ -609,10 +609,10 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
609
609
  }, [D(h(j), {
610
610
  size: 12,
611
611
  "stroke-width": 2.5
612
- }), T(" " + d(h(a).header.saveFailed), 1)], 8, et)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", tt, [D(h(k), {
612
+ }), T(" " + d(h(a).header.saveFailed), 1)], 8, tt)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", nt, [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", nt, [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", 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),
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 ze = ["aria-label"], Be = { 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(W), {
628
+ D(h(U), {
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", it, d(e.commentsInstance.unresolvedCount.value), 1)) : m("", !0)
634
- ], 14, rt)) : m("", !0),
633
+ e.commentsInstance.unresolvedCount.value > 0 && !e.panelState.commentsOpen.value ? (i(), p("span", at, d(e.commentsInstance.unresolvedCount.value), 1)) : m("", !0)
634
+ ], 14, it)) : m("", !0),
635
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 ze = ["aria-label"], Be = { 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(fe), {
643
+ }, [D(h(pe), {
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, at), D(y, {
647
+ }), T(" " + d(h(a).aiChat.button), 1)], 10, ot), 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 ze = ["aria-label"], Be = { 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", ot, [D(h(r), {
655
+ default: s(() => [e.panelState.aiMenuOpen.value ? (i(), p("div", st, [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 ze = ["aria-label"], Be = { 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(me), {
671
+ }, [e.testEmail.isSending.value ? (i(), v(h(he), {
672
672
  key: 1,
673
673
  class: "tpl-spinner",
674
674
  size: 16,
675
675
  "stroke-width": 2
676
- })) : (i(), v(h(X), {
676
+ })) : (i(), v(h(ce), {
677
677
  key: 0,
678
678
  size: 16,
679
679
  "stroke-width": 2
680
- })), T(" " + d(h(a).testEmail.button), 1)], 10, st)) : m("", !0),
680
+ })), T(" " + d(h(a).testEmail.button), 1)], 10, ct)) : m("", !0),
681
681
  x("button", {
682
682
  class: b(h($)),
683
683
  style: {
@@ -687,7 +687,7 @@ var ze = ["aria-label"], Be = { 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(me), {
690
+ }, [e.isSaving ? (i(), v(h(he), {
691
691
  key: 1,
692
692
  class: "tpl-spinner",
693
693
  size: 16,
@@ -696,11 +696,11 @@ var ze = ["aria-label"], Be = { 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, ct)
699
+ })), T(" " + d(e.isSaving ? h(a).header.saving : h(a).header.save), 1)], 10, lt)
700
700
  ])
701
701
  ]));
702
702
  }
703
- }), ut = /* @__PURE__ */ E({
703
+ }), dt = /* @__PURE__ */ E({
704
704
  __name: "CloudPanels",
705
705
  props: {
706
706
  config: {},
@@ -723,9 +723,9 @@ var ze = ["aria-label"], Be = { 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-CUYy5kZQ.js").then((e) => e.c)), a = u(() => import("./features-CUYy5kZQ.js").then((e) => e.s)), o = u(() => import("./features-CUYy5kZQ.js").then((e) => e.o)), s = u(() => import("./features-CUYy5kZQ.js").then((e) => e.n)), l = u(() => import("./features-CUYy5kZQ.js").then((e) => e.t)), d = u(() => import("./SaveModuleDialog-DR9EZlWe.js")), f = u(() => import("./ModuleBrowserModal-CFMd6M7E.js")), g = u(async () => {
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 () => {
727
727
  try {
728
- return (await import("./src-Dp0ZFQ4-.js")).MediaLibraryModal;
728
+ return (await import("./src-ftxPuuQh.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 ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
805
805
  ])
806
806
  ], 64));
807
807
  }
808
- }), dt = {
808
+ }), ft = {
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
- }, ft = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, pt = { 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)]" }, mt = /* @__PURE__ */ E({
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({
812
812
  __name: "CloudLoadingOverlay",
813
813
  props: { visible: { type: Boolean } },
814
814
  setup(e) {
815
- return (t, n) => e.visible ? (i(), p("div", dt, [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", ft, [x("div", pt, [(i(), p(w, null, o(5, (e) => x("div", {
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", {
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
- }), ht = {
820
+ }), gt = {
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
- }, gt = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, _t = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:text-center" }, vt = { class: "tpl:text-lg tpl:font-semibold tpl:text-[var(--tpl-text)]" }, yt = { class: "tpl:max-w-md tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, bt = /* @__PURE__ */ E({
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({
825
825
  __name: "CloudErrorOverlay",
826
826
  props: {
827
827
  error: {},
@@ -836,13 +836,13 @@ var ze = ["aria-label"], Be = { 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", ht, [
840
- x("div", gt, [D(h(j), {
839
+ return (t, s) => e.visible && e.error ? (i(), p("div", gt, [
840
+ x("div", _t, [D(h(j), {
841
841
  size: 32,
842
842
  "stroke-width": 1.5,
843
843
  class: "tpl:text-[var(--tpl-danger)]"
844
844
  })]),
845
- x("div", _t, [x("h2", vt, d(h(r).error.title), 1), x("p", yt, d(a(e.error)), 1)]),
845
+ x("div", vt, [x("h2", yt, d(h(r).error.title), 1), x("p", bt, 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 ze = ["aria-label"], Be = { 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
- }), xt = {
853
+ }), St = {
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
- }, St = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, Ct = { class: "tpl:flex tpl:items-center tpl:gap-2" }, wt = /* @__PURE__ */ E({
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({
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", xt, [x("div", St, [D(h(M), {
862
+ return (t, a) => e.visible ? (i(), p("div", St, [x("div", Ct, [D(h(P), {
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", Ct, [x("button", {
866
+ }), x("span", null, d(h(r).snapshotPreview.message), 1)]), x("div", wt, [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 ze = ["aria-label"], Be = { 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
- }), Tt = {
875
+ }), Et = {
876
876
  key: 0,
877
877
  role: "status",
878
878
  "aria-live": "polite",
@@ -882,14 +882,14 @@ var ze = ["aria-label"], Be = { 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
- }, Et = /* @__PURE__ */ E({
885
+ }, Dt = /* @__PURE__ */ E({
886
886
  __name: "CollabUndoToast",
887
887
  props: { visible: { type: Boolean } },
888
888
  setup(e) {
889
- let { t } = N();
890
- return (n, r) => e.visible ? (i(), p("div", Tt, d(h(t).history.collabWarning), 1)) : m("", !0);
889
+ let { t } = F();
890
+ return (n, r) => e.visible ? (i(), p("div", Et, d(h(t).history.collabWarning), 1)) : m("", !0);
891
891
  }
892
- }), Dt = ["data-tpl-theme"], Ot = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, kt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, At = ["aria-label"], jt = /* @__PURE__ */ le(/* @__PURE__ */ E({
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({
893
893
  __name: "CloudEditor",
894
894
  props: {
895
895
  config: {},
@@ -901,8 +901,8 @@ var ze = ["aria-label"], Be = { 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(P, l.cloudTranslations);
905
- let u = o, f = c(null), _ = c(null), w = Fe({
904
+ a(I, l.cloudTranslations);
905
+ let u = o, f = c(null), _ = c(null), w = Ie({
906
906
  config: l.config,
907
907
  translations: l.translations,
908
908
  fontsManager: l.fontsManager,
@@ -910,55 +910,55 @@ var ze = ["aria-label"], Be = { 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: F, featureFlags: I, mediaLib: L, exporter: te, testEmail: R, commentsInstance: ne, savedModulesHeadless: re, panelState: z, snapshotPreview: B, collabWarning: ie, showSaveModuleDialog: V, showModuleBrowserModal: H, saveModulePreSelectedBlockId: U, setThemeOverrides: W, setUiTheme: ae } = w;
914
- async function oe(e) {
913
+ }), { isInitializing: E, isAuthReady: ee, initError: O, planConfigInstance: k, websocket: A, collaboration: j, isCollaborationEnabled: M, editor: N, core: P, featureFlags: F, mediaLib: te, exporter: ne, testEmail: L, commentsInstance: re, savedModulesHeadless: R, panelState: z, snapshotPreview: B, collabWarning: ie, showSaveModuleDialog: V, showModuleBrowserModal: H, saveModulePreSelectedBlockId: U, setThemeOverrides: W, setUiTheme: G } = w;
914
+ async function K(e) {
915
915
  try {
916
- await R.sendTestEmail(e), z.testEmailModalOpen.value = !1;
916
+ await L.sendTestEmail(e), z.testEmailModalOpen.value = !1;
917
917
  } catch {}
918
918
  }
919
- function G(e, t) {
919
+ function q(e, t) {
920
920
  for (let n = 0; n < e.content.length; n++) {
921
- let r = ye(e.content[n]), i = t === void 0 ? void 0 : t + n;
921
+ let r = _e(e.content[n]), i = t === void 0 ? void 0 : t + n;
922
922
  N.addBlock(r, void 0, void 0, i);
923
923
  }
924
924
  H.value = !1;
925
925
  }
926
- let K = Le({
926
+ let J = Re({
927
927
  config: l.config,
928
928
  editor: N,
929
929
  websocket: A,
930
930
  planConfigInstance: k,
931
931
  snapshotPreview: B,
932
- core: F,
933
- exporter: te,
934
- featureFlags: I,
932
+ core: P,
933
+ exporter: ne,
934
+ featureFlags: F,
935
935
  isDestroyed: w.isDestroyed
936
- }), q = Re({
937
- issues: F.templateLint ? F.templateLint.issues : c([]),
936
+ }), Y = ze({
937
+ issues: P.templateLint ? P.templateLint.issues : c([]),
938
938
  planConfig: k.config
939
939
  });
940
- async function J() {
941
- await q.tryRunSave(() => K.saveTemplate().catch((e) => l.config.onError?.(e)));
940
+ async function X() {
941
+ await Y.tryRunSave(() => J.saveTemplate().catch((e) => l.config.onError?.(e)));
942
942
  }
943
- return w.onSaveHook.value = J, t(() => {
943
+ return w.onSaveHook.value = X, t(() => {
944
944
  w.initialize();
945
945
  }), g(() => {
946
946
  w.destroy();
947
947
  }), r({
948
948
  getContent: () => N.content.value,
949
949
  setContent: (e) => N.setContent(e),
950
- setTheme: ae,
950
+ setTheme: G,
951
951
  setThemeOverrides: W,
952
- create: K.createTemplate,
953
- load: K.loadTemplate,
954
- save: K.saveTemplate,
955
- sendTestEmail: R.sendTestEmail
952
+ create: J.createTemplate,
953
+ load: J.loadTemplate,
954
+ save: J.saveTemplate,
955
+ sendTestEmail: L.sendTestEmail
956
956
  }), (t, r) => (i(), p("div", {
957
957
  ref_key: "rootEl",
958
958
  ref: _,
959
959
  class: b(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": h(N).state.darkMode }]),
960
- "data-tpl-theme": h(F).resolvedTheme.value,
961
- style: C(h(F).themeStyles.value)
960
+ "data-tpl-theme": h(P).resolvedTheme.value,
961
+ style: C(h(P).themeStyles.value)
962
962
  }, [
963
963
  D(y, {
964
964
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
@@ -968,7 +968,7 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
968
968
  "leave-from-class": "tpl:opacity-100",
969
969
  "leave-to-class": "tpl:opacity-0"
970
970
  }, {
971
- default: s(() => [D(mt, { visible: h(E) || h(N).state.isLoading }, null, 8, ["visible"])]),
971
+ default: s(() => [D(ht, { visible: h(E) || h(N).state.isLoading }, null, 8, ["visible"])]),
972
972
  _: 1
973
973
  }),
974
974
  D(y, {
@@ -979,7 +979,7 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
979
979
  "leave-from-class": "tpl:opacity-100",
980
980
  "leave-to-class": "tpl:opacity-0"
981
981
  }, {
982
- default: s(() => [D(bt, {
982
+ default: s(() => [D(xt, {
983
983
  error: h(O),
984
984
  visible: !!h(O) && !h(E),
985
985
  onRetry: h(w).initialize
@@ -990,20 +990,20 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
990
990
  ])]),
991
991
  _: 1
992
992
  }),
993
- D(lt, {
993
+ D(ut, {
994
994
  editor: h(N),
995
- core: h(F),
996
- "feature-flags": h(I),
995
+ core: h(P),
996
+ "feature-flags": h(F),
997
997
  "panel-state": h(z),
998
998
  "snapshot-preview": h(B),
999
- "comments-instance": h(ne),
1000
- "test-email": h(R),
999
+ "comments-instance": h(re),
1000
+ "test-email": h(L),
1001
1001
  websocket: h(A),
1002
1002
  collaboration: h(j),
1003
1003
  "is-collaboration-enabled": h(M),
1004
- "is-saving": h(N).state.isSaving || h(I).isSaveExporting.value,
1005
- "is-save-disabled": h(N).state.isSaving || h(I).isSaveExporting.value || !h(N).state.isDirty,
1006
- onSave: J
1004
+ "is-saving": h(N).state.isSaving || h(F).isSaveExporting.value,
1005
+ "is-save-disabled": h(N).state.isSaving || h(F).isSaveExporting.value || !h(N).state.isDirty,
1006
+ onSave: X
1007
1007
  }, null, 8, [
1008
1008
  "editor",
1009
1009
  "core",
@@ -1018,18 +1018,18 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1018
1018
  "is-saving",
1019
1019
  "is-save-disabled"
1020
1020
  ]),
1021
- D(Je, {
1022
- open: h(q).modalOpen.value,
1023
- issues: h(q).blockingIssues.value,
1024
- onCancel: h(q).cancel,
1025
- onConfirm: h(q).confirmAndSave
1021
+ D(Ye, {
1022
+ open: h(Y).modalOpen.value,
1023
+ issues: h(Y).blockingIssues.value,
1024
+ onCancel: h(Y).cancel,
1025
+ onConfirm: h(Y).confirmAndSave
1026
1026
  }, null, 8, [
1027
1027
  "open",
1028
1028
  "issues",
1029
1029
  "onCancel",
1030
1030
  "onConfirm"
1031
1031
  ]),
1032
- D(wt, {
1032
+ D(Tt, {
1033
1033
  visible: h(B).isPreviewingSnapshot.value,
1034
1034
  onCancel: h(B).cancelPreview,
1035
1035
  onConfirm: h(B).confirmRestoreSnapshot
@@ -1046,18 +1046,18 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1046
1046
  "leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
1047
1047
  "leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
1048
1048
  }, {
1049
- default: s(() => [D(Et, { visible: h(ie).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1049
+ default: s(() => [D(Dt, { visible: h(ie).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1050
1050
  _: 1
1051
1051
  }),
1052
- n(D(Ee, null, null, 512), [[S, !h(N).state.previewMode]]),
1052
+ n(D(ke, null, null, 512), [[S, !h(N).state.previewMode]]),
1053
1053
  x("div", {
1054
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
1055
  style: {
1056
1056
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
1057
1057
  "background-color": "var(--tpl-canvas-bg)"
1058
1058
  }
1059
- }, [x("div", Ot, [D(y, { name: "tpl-restore-btn" }, {
1060
- default: s(() => [h(F).conditionPreview.hasHiddenBlocks.value ? (i(), p("button", {
1059
+ }, [x("div", kt, [D(y, { name: "tpl-restore-btn" }, {
1060
+ default: s(() => [h(P).conditionPreview.hasHiddenBlocks.value ? (i(), p("button", {
1061
1061
  key: 0,
1062
1062
  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",
1063
1063
  style: {
@@ -1066,13 +1066,13 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1066
1066
  "border-color": "var(--tpl-warning)",
1067
1067
  "backdrop-filter": "blur(8px)"
1068
1068
  },
1069
- onClick: r[0] ||= (e) => h(F).conditionPreview.reset()
1069
+ onClick: r[0] ||= (e) => h(P).conditionPreview.reset()
1070
1070
  }, [D(h(be), {
1071
1071
  size: 13,
1072
1072
  "stroke-width": 2
1073
- }), T(" " + d(h(F).t.blockSettings.restoreHiddenBlocks), 1)])) : m("", !0)]),
1073
+ }), T(" " + d(h(P).t.blockSettings.restoreHiddenBlocks), 1)])) : m("", !0)]),
1074
1074
  _: 1
1075
- })]), x("main", kt, [D(Oe, {
1075
+ })]), x("main", At, [D(Ce, {
1076
1076
  viewport: h(N).state.viewport,
1077
1077
  content: h(N).content.value,
1078
1078
  "selected-block-id": h(N).state.selectedBlockId,
@@ -1091,7 +1091,7 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1091
1091
  "locked-blocks",
1092
1092
  "onSelectBlock"
1093
1093
  ])])], 2),
1094
- e.config.branding !== !1 && !h(I).isWhiteLabeled.value ? (i(), v(ke, {
1094
+ e.config.branding !== !1 && !h(F).isWhiteLabeled.value ? (i(), v(Ee, {
1095
1095
  key: 0,
1096
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
1097
  }, null, 8, ["position-class"])) : m("", !0),
@@ -1100,15 +1100,15 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1100
1100
  role: "status",
1101
1101
  "aria-live": "polite",
1102
1102
  "aria-atomic": "true",
1103
- "aria-label": h(F).t.landmarks.reorderAnnouncements
1104
- }, d(h(F).keyboardReorder.announcement.value), 9, At),
1105
- n(D(Se, {
1103
+ "aria-label": h(P).t.landmarks.reorderAnnouncements
1104
+ }, d(h(P).keyboardReorder.announcement.value), 9, jt),
1105
+ n(D(De, {
1106
1106
  "selected-block": h(N).selectedBlock.value,
1107
1107
  settings: h(N).content.value.settings,
1108
1108
  "shifted-left": h(z).rightPanelOpen.value,
1109
1109
  onUpdateBlock: r[3] ||= (e) => h(N).updateBlock(h(N).selectedBlock.value.id, e),
1110
- onDeleteBlock: r[4] ||= (e) => h(F).blockActions.deleteBlock(h(N).selectedBlock.value.id),
1111
- onDuplicateBlock: r[5] ||= (e) => h(F).blockActions.duplicateBlock(h(N).selectedBlock.value),
1110
+ onDeleteBlock: r[4] ||= (e) => h(P).blockActions.deleteBlock(h(N).selectedBlock.value.id),
1111
+ onDuplicateBlock: r[5] ||= (e) => h(P).blockActions.duplicateBlock(h(N).selectedBlock.value),
1112
1112
  onUpdateSettings: h(N).updateSettings
1113
1113
  }, null, 8, [
1114
1114
  "selected-block",
@@ -1116,26 +1116,26 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1116
1116
  "shifted-left",
1117
1117
  "onUpdateSettings"
1118
1118
  ]), [[S, !h(N).state.previewMode]]),
1119
- !h(E) && h(ee) ? (i(), v(ut, {
1119
+ !h(E) && h(ee) ? (i(), v(dt, {
1120
1120
  key: 1,
1121
1121
  ref_key: "cloudPanelsRef",
1122
1122
  ref: f,
1123
1123
  config: l.config,
1124
1124
  editor: h(N),
1125
- core: h(F),
1125
+ core: h(P),
1126
1126
  "panel-state": h(z),
1127
1127
  "plan-config-instance": h(k),
1128
- "test-email": h(R),
1129
- "media-lib": h(L),
1130
- "saved-modules-headless": h(re),
1128
+ "test-email": h(L),
1129
+ "media-lib": h(te),
1130
+ "saved-modules-headless": h(R),
1131
1131
  "show-save-module-dialog": h(V),
1132
1132
  "save-module-pre-selected-block-id": h(U),
1133
1133
  "show-module-browser-modal": h(H),
1134
1134
  "onUpdate:showSaveModuleDialog": r[6] ||= (e) => V.value = e,
1135
1135
  "onUpdate:saveModulePreSelectedBlockId": r[7] ||= (e) => U.value = e,
1136
1136
  "onUpdate:showModuleBrowserModal": r[8] ||= (e) => H.value = e,
1137
- onSendTestEmail: oe,
1138
- onModuleInsert: G
1137
+ onSendTestEmail: K,
1138
+ onModuleInsert: q
1139
1139
  }, null, 8, [
1140
1140
  "config",
1141
1141
  "editor",
@@ -1150,13 +1150,14 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1150
1150
  "show-module-browser-modal"
1151
1151
  ])) : m("", !0),
1152
1152
  x("div", {
1153
- ref: (e) => h(F).popoverRoot.value = e,
1153
+ ref: (e) => h(P).popoverRoot.value = e,
1154
1154
  class: "tpl-popover-root"
1155
- }, null, 512)
1156
- ], 14, Dt));
1155
+ }, null, 512),
1156
+ D(Ae)
1157
+ ], 14, Ot));
1157
1158
  }
1158
- }), [["__scopeId", "data-v-05f1a843"]]);
1159
+ }), [["__scopeId", "data-v-3f0f5cfa"]]);
1159
1160
  //#endregion
1160
- export { jt as default };
1161
+ export { Mt as default };
1161
1162
 
1162
- //# sourceMappingURL=CloudEditor-Bi10d2Gq.js.map
1163
+ //# sourceMappingURL=CloudEditor-CyJItWsK.js.map