@templatical/editor 0.6.4 → 0.6.6

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 (128) hide show
  1. package/dist/{AccessibilityPanel-CvQGLdu6.js → AccessibilityPanel-B2MT0M58.js} +34 -34
  2. package/dist/{AiChatSidebar-B3SJIKG_.js → AiChatSidebar-w5ek3Z76.js} +62 -62
  3. package/dist/{AiFeatureMenu-BLLKoOos.js → AiFeatureMenu-ChlAWywJ.js} +20 -20
  4. package/dist/{BlockA11yBadge-CXDLqkcJ.js → BlockA11yBadge-C0S6kPC4.js} +12 -12
  5. package/dist/{CloudEditor-nzrRhHIi.js → CloudEditor-DYYaScFe.js} +441 -441
  6. package/dist/{CollaboratorBar-DuPYW5iF.js → CollaboratorBar-Bo8vtPId.js} +20 -20
  7. package/dist/CommentsSidebar-BQROg36f.js +441 -0
  8. package/dist/{cdn/chunks/CountdownBlock-5YdT1uUu.js → CountdownBlock-Bxqe7zwL.js} +21 -22
  9. package/dist/CountdownToolbar-CpFAnjSo.js +210 -0
  10. package/dist/{DesignReferenceSidebar-B8V_F2yF.js → DesignReferenceSidebar-CfqpcWX6.js} +52 -52
  11. package/dist/{LoadingTrack-B0CWFHXQ.js → LoadingTrack-CFkDkjBb.js} +1 -1
  12. package/dist/{ModuleBrowserModal-DrUFMTDx.js → ModuleBrowserModal-CKhsaPnA.js} +79 -79
  13. package/dist/{ModulePreviewCanvas-CHdOwV_4.js → ModulePreviewCanvas-Cw9GeGus.js} +29 -29
  14. package/dist/{NumberWithSuffix-DkXUez9t.js → NumberWithSuffix-Dw8dN1Pt.js} +88 -88
  15. package/dist/{ParagraphEditor-D75wl3BX.js → ParagraphEditor-DjDiUzmv.js} +218 -218
  16. package/dist/{RichTextEditorContent-DYkIauIk.js → RichTextEditorContent-CK3Om7ES.js} +38 -38
  17. package/dist/{SaveModuleDialog-FZ9lxY7_.js → SaveModuleDialog-CSUPmfRP.js} +34 -34
  18. package/dist/{SnapshotHistory-BR3eV120.js → SnapshotHistory-DwX2fj6N.js} +33 -33
  19. package/dist/{TemplateScoringPanel-4GTNHej5.js → TemplateScoringPanel-BIAeCAEP.js} +82 -82
  20. package/dist/{TestEmailModal--ue5w9fT.js → TestEmailModal-CIlBvWWn.js} +30 -30
  21. package/dist/{TitleEditor-fStSADI-.js → TitleEditor-BCV5k6wj.js} +67 -67
  22. package/dist/{TplModal-BwSfxIHf.js → TplModal-C3Hq9b58.js} +14 -14
  23. package/dist/{accessibility-e8JYu_zd.js → accessibility-BgUEA-Ai.js} +1 -1
  24. package/dist/{blockTypeIcons-BcTrDjmH.js → blockTypeIcons-iUurP50H.js} +2 -2
  25. package/dist/bundle-stats.json +6 -6
  26. package/dist/cdn/chunks/{AccessibilityPanel-B6DOjojm.js → AccessibilityPanel-AQD2ygU6.js} +34 -34
  27. package/dist/cdn/chunks/{AccessibilityPanel-B6DOjojm.js.map → AccessibilityPanel-AQD2ygU6.js.map} +1 -1
  28. package/dist/cdn/chunks/{AiFeatureMenu-qEdB2fZJ.js → AiFeatureMenu-CDh9ifC8.js} +16 -16
  29. package/dist/cdn/chunks/{AiFeatureMenu-qEdB2fZJ.js.map → AiFeatureMenu-CDh9ifC8.js.map} +1 -1
  30. package/dist/cdn/chunks/{BlockA11yBadge-DcEZftf6.js → BlockA11yBadge-BxZr3s7T.js} +10 -10
  31. package/dist/cdn/chunks/{BlockA11yBadge-DcEZftf6.js.map → BlockA11yBadge-BxZr3s7T.js.map} +1 -1
  32. package/dist/cdn/chunks/{CloudEditor-dwzWDF_n.js → CloudEditor-Fg7pQ9IQ.js} +425 -425
  33. package/dist/cdn/chunks/{CloudEditor-dwzWDF_n.js.map → CloudEditor-Fg7pQ9IQ.js.map} +1 -1
  34. package/dist/cdn/chunks/{CollaboratorBar--nO7TX6b.js → CollaboratorBar-B5a8eBXN.js} +20 -20
  35. package/dist/cdn/chunks/{CollaboratorBar--nO7TX6b.js.map → CollaboratorBar-B5a8eBXN.js.map} +1 -1
  36. package/dist/cdn/chunks/CountdownBlock-BeHkO19t.js +93 -0
  37. package/dist/cdn/chunks/{CountdownBlock-5YdT1uUu.js.map → CountdownBlock-BeHkO19t.js.map} +1 -1
  38. package/dist/cdn/chunks/CountdownToolbar-8UfW0jb1.js +212 -0
  39. package/dist/cdn/chunks/{CountdownToolbar-DXPXrbAA.js.map → CountdownToolbar-8UfW0jb1.js.map} +1 -1
  40. package/dist/cdn/chunks/{ModuleBrowserModal-DxoPp81s.js → ModuleBrowserModal-BMUyAmmj.js} +43 -43
  41. package/dist/cdn/chunks/{ModuleBrowserModal-DxoPp81s.js.map → ModuleBrowserModal-BMUyAmmj.js.map} +1 -1
  42. package/dist/cdn/chunks/{ModulePreviewCanvas-CoLdb4ar.js → ModulePreviewCanvas-CxSc7Pvd.js} +23 -23
  43. package/dist/cdn/chunks/{ModulePreviewCanvas-CoLdb4ar.js.map → ModulePreviewCanvas-CxSc7Pvd.js.map} +1 -1
  44. package/dist/cdn/chunks/{NumberWithSuffix-CE3NrZhH.js → NumberWithSuffix-BSOUOUCL.js} +108 -108
  45. package/dist/cdn/chunks/{NumberWithSuffix-CE3NrZhH.js.map → NumberWithSuffix-BSOUOUCL.js.map} +1 -1
  46. package/dist/cdn/chunks/{ParagraphEditor-B6Ygu-Mq.js → ParagraphEditor-S1bpgxe5.js} +187 -187
  47. package/dist/cdn/chunks/{ParagraphEditor-B6Ygu-Mq.js.map → ParagraphEditor-S1bpgxe5.js.map} +1 -1
  48. package/dist/cdn/chunks/{RichTextEditorContent-DL_y2SrR.js → RichTextEditorContent-ByehRfEA.js} +33 -33
  49. package/dist/cdn/chunks/{RichTextEditorContent-DL_y2SrR.js.map → RichTextEditorContent-ByehRfEA.js.map} +1 -1
  50. package/dist/cdn/chunks/{SaveModuleDialog-B0TnO_o9.js → SaveModuleDialog-5CNMvgYL.js} +27 -27
  51. package/dist/cdn/chunks/{SaveModuleDialog-B0TnO_o9.js.map → SaveModuleDialog-5CNMvgYL.js.map} +1 -1
  52. package/dist/cdn/chunks/{TitleEditor-BHpfxvwy.js → TitleEditor-BASWPsCM.js} +66 -66
  53. package/dist/cdn/chunks/{TitleEditor-BHpfxvwy.js.map → TitleEditor-BASWPsCM.js.map} +1 -1
  54. package/dist/cdn/chunks/{blockTypeIcons-BzzY9_kA.js → blockTypeIcons-DfOffaYP.js} +3 -3
  55. package/dist/cdn/chunks/{blockTypeIcons-BzzY9_kA.js.map → blockTypeIcons-DfOffaYP.js.map} +1 -1
  56. package/dist/cdn/chunks/draggable-CNhyCGIO.js +4804 -0
  57. package/dist/cdn/chunks/draggable-CNhyCGIO.js.map +1 -0
  58. package/dist/cdn/chunks/{extensions-DIxF31tA.js → extensions-BJOV1jre.js} +95 -95
  59. package/dist/cdn/chunks/{extensions-DIxF31tA.js.map → extensions-BJOV1jre.js.map} +1 -1
  60. package/dist/cdn/chunks/{features-DEMb13KS.js → features-D6FoOm8v.js} +2272 -2269
  61. package/dist/cdn/chunks/features-D6FoOm8v.js.map +1 -0
  62. package/dist/cdn/chunks/{icons-CsLTcirh.js → icons-CpsjWPU-.js} +2 -2
  63. package/dist/cdn/chunks/{icons-CsLTcirh.js.map → icons-CpsjWPU-.js.map} +1 -1
  64. package/dist/cdn/chunks/{media-library-CVaNvhpM.js → media-library-CEd7Lqxk.js} +1397 -1397
  65. package/dist/cdn/chunks/{media-library-CVaNvhpM.js.map → media-library-CEd7Lqxk.js.map} +1 -1
  66. package/dist/cdn/chunks/{pusher-CDbNlZBE.js → pusher-bjpcqCZG.js} +2 -2
  67. package/dist/cdn/chunks/{pusher-CDbNlZBE.js.map → pusher-bjpcqCZG.js.map} +1 -1
  68. package/dist/cdn/chunks/{quality-BaBfc54_.js → quality-Bx1oORXQ.js} +3 -3
  69. package/dist/cdn/chunks/{quality-BaBfc54_.js.map → quality-Bx1oORXQ.js.map} +1 -1
  70. package/dist/cdn/chunks/{renderer-CUxvx7ro.js → renderer-CwxCisa-.js} +3 -3
  71. package/dist/cdn/chunks/{renderer-CUxvx7ro.js.map → renderer-CwxCisa-.js.map} +1 -1
  72. package/dist/{rolldown-runtime-BZGGJVDF.js → cdn/chunks/rolldown-runtime-C266TIVP.js} +5 -5
  73. package/dist/cdn/chunks/{src-CRaqN-p8.js → src-DDSInEkE.js} +171 -171
  74. package/dist/cdn/chunks/{src-CRaqN-p8.js.map → src-DDSInEkE.js.map} +1 -1
  75. package/dist/cdn/chunks/styles-B1uu-Cc9.js +2944 -0
  76. package/dist/cdn/chunks/styles-B1uu-Cc9.js.map +1 -0
  77. package/dist/cdn/chunks/{tiptap-ZhwKyFp7.js → tiptap-IyIsncxY.js} +45 -46
  78. package/dist/cdn/chunks/{tiptap-ZhwKyFp7.js.map → tiptap-IyIsncxY.js.map} +1 -1
  79. package/dist/cdn/editor.css +1 -1
  80. package/dist/cdn/editor.js +122 -122
  81. package/dist/cdn/editor.js.map +1 -1
  82. package/dist/{check-Da05j8yl.js → check-Bg5yrRmX.js} +1 -1
  83. package/dist/{chevron-down-R2uY34iD.js → chevron-down-tee-ghFi.js} +1 -1
  84. package/dist/{circle-alert-DZuGWPX-.js → circle-alert-C0L9pUQ4.js} +1 -1
  85. package/dist/{clock-CRp2sIub.js → clock-CDlEdqiP.js} +1 -1
  86. package/dist/{cloud-DEk_b4CR.js → cloud-a3VovHva.js} +145 -145
  87. package/dist/{createLucideIcon-C3pa2siy.js → createLucideIcon-Di4mqmGn.js} +9 -9
  88. package/dist/{dist-B1IR0bpH.js → dist-BzRLLpfq.js} +107 -107
  89. package/dist/{dist-BFawx6IS.js → dist-Pk4MhWMP.js} +35 -35
  90. package/dist/{extensions-CUcl9Ok4.js → extensions-BF39Siqk.js} +103 -103
  91. package/dist/{image-up-MBZKKg9p.js → image-up-1D_3XDdO.js} +1 -1
  92. package/dist/index.d.ts +8 -8
  93. package/dist/{info-CJEC7piy.js → info-DTGrc0Bx.js} +1 -1
  94. package/dist/{keys-ciNfSSGj.js → keys-Bqs_0du9.js} +1 -1
  95. package/dist/{loader-circle-DsY5Yg33.js → loader-circle-_9bP23op.js} +1 -1
  96. package/dist/{message-circle-yElBbR2C.js → message-circle-gzy2ZGJ3.js} +1 -1
  97. package/dist/{refresh-cw-CE_AGtn8.js → refresh-cw-BNAhAmtL.js} +1 -1
  98. package/dist/rolldown-runtime-CAFD8bLK.js +11 -0
  99. package/dist/{scan-line-D0vcUekt.js → scan-line-DUEg6DoT.js} +1 -1
  100. package/dist/{send-DH4oDQqC.js → send-BatIZC9a.js} +1 -1
  101. package/dist/{shield-check-CfJgs2Hd.js → shield-check-C5Gv2cM1.js} +1 -1
  102. package/dist/{sparkles-CvRXGqFs.js → sparkles-D1IGi_cC.js} +1 -1
  103. package/dist/style.css +1 -1
  104. package/dist/styles-BgmKdc2x.js +3173 -0
  105. package/dist/templatical-editor.js +99 -99
  106. package/dist/{text-align-start-BT9VUDxK.js → text-align-start-DG3aAH7Y.js} +1 -1
  107. package/dist/{trash-2-DbP2Y6t2.js → trash-2-424iqbpN.js} +1 -1
  108. package/dist/{triangle-alert-aOXceTSe.js → triangle-alert-DWQySIE2.js} +1 -1
  109. package/dist/{useCloudI18n-BuIwR6OE.js → useCloudI18n-CL_AwWwi.js} +4 -4
  110. package/dist/useEditorCore-CnXrv71D.js +3794 -0
  111. package/dist/{useI18n-lb2DHDiu.js → useI18n-CgmQftNf.js} +4 -4
  112. package/dist/{useMergeTag-CBwKnnNB.js → useMergeTag-vpwrZ9eQ.js} +3 -3
  113. package/dist/vue.runtime.esm-bundler-Bxqkjqhc.js +4300 -0
  114. package/dist/{x-u2oVmjN_.js → x-Dlaenqta.js} +1 -1
  115. package/package.json +8 -8
  116. package/dist/CommentsSidebar-B1pvJdqF.js +0 -441
  117. package/dist/CountdownBlock-BNSj1jvJ.js +0 -92
  118. package/dist/CountdownToolbar-ClJr2GzL.js +0 -210
  119. package/dist/cdn/chunks/CountdownToolbar-DXPXrbAA.js +0 -212
  120. package/dist/cdn/chunks/draggable-Bcb86AsV.js +0 -11572
  121. package/dist/cdn/chunks/draggable-Bcb86AsV.js.map +0 -1
  122. package/dist/cdn/chunks/features-DEMb13KS.js.map +0 -1
  123. package/dist/cdn/chunks/rolldown-runtime-BNuo_Jkg.js +0 -20
  124. package/dist/cdn/chunks/styles-BHJULjNR.js +0 -2947
  125. package/dist/cdn/chunks/styles-BHJULjNR.js.map +0 -1
  126. package/dist/styles-DEXEkBvg.js +0 -3176
  127. package/dist/useEditorCore-C6ost42Q.js +0 -9342
  128. package/dist/vue.runtime.esm-bundler-DpvJL-nX.js +0 -5775
@@ -1,147 +1,147 @@
1
- import { $ as e, B as t, F as n, H as r, M as i, N as a, P as o, S as s, U as c, X as l, _ as u, at as d, b as f, c as p, ct as m, d as h, g, h as _, j as v, lt as y, m as b, n as x, p as S, st as C, tt as w, u as T, v as E, x as D, y as O } from "./draggable-Bcb86AsV.js";
2
- import { $ as k, Bt as A, C as j, D as M, Fn as N, Ft as P, Ht as F, Lt as ee, Nt as I, Ot as L, S as te, Sn as R, Tt as z, Vt as B, Xt as V, Y as ne, Yt as H, Zt as U, _ as W, _n as G, at as K, b as re, c as ie, ct as q, d as J, dt as Y, f as X, g as ae, gt as Z, h as oe, ht as se, jt as ce, k as le, l as ue, ln as Q, m as de, p as fe, tn as pe, tt as me, u as he, v as ge, wt as _e, x as ve, y as ye } from "./features-DEMb13KS.js";
3
- import { C as be, S as xe } from "./icons-CsLTcirh.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-BHJULjNR.js";
1
+ import { $ as e, A as t, H as n, J as r, M as i, N as a, P as o, V as s, Z as c, _ as l, at as u, b as d, f, g as p, h as m, j as h, l as g, m as _, n as v, ot as y, p as b, rt 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-CNhyCGIO.js";
2
+ import { $ as k, Bt as A, C as j, D as M, Fn as N, Ft as P, Ht as F, Lt as ee, Nt as I, Ot as L, S as te, Sn as R, Tt as z, Vt as B, Xt as V, Y as ne, Yt as H, Zt as U, _ as W, _n as G, at as K, b as re, c as ie, ct as q, d as J, dt as Y, f as X, g as ae, gt as Z, h as oe, ht as se, jt as ce, k as le, l as ue, ln as Q, m as de, p as fe, tn as pe, tt as me, u as he, v as ge, wt as _e, x as ve, y as ye } from "./features-D6FoOm8v.js";
3
+ import { C as be, S as xe } from "./icons-CpsjWPU-.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-B1uu-Cc9.js";
5
5
  import { d as $ } from "./styleConstants-DP1VOca8.js";
6
6
  //#region src/cloud/composables/useSnapshotPreview.ts
7
7
  function Ae(t) {
8
- let { authManager: n, editor: r, history: i, conditionPreview: a, autoSave: o, onError: s } = t, c = w(null), u = e(null), d = e(null), f = !1;
9
- l(() => {
10
- f = !0;
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
+ r(() => {
10
+ m = !0;
11
11
  });
12
- let p = S(() => u.value !== null), m = S(() => c.value?.snapshots.value ?? []), h = S(() => c.value?.isLoading.value ?? !1), g = S(() => c.value?.isRestoring.value ?? !1);
13
- function _() {
14
- r.state.template?.id && !c.value && (c.value = fe({
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
+ function y() {
14
+ i.state.template?.id && !u.value && (u.value = fe({
15
15
  authManager: n,
16
- templateId: r.state.template.id,
17
- onRestore: v,
18
- onError: s
19
- }), c.value.loadSnapshots());
16
+ templateId: i.state.template.id,
17
+ onRestore: b,
18
+ onError: l
19
+ }), u.value.loadSnapshots());
20
20
  }
21
- function v(e) {
22
- r.setContent(e.content, !1), i.clear(), a.reset();
21
+ function b(e) {
22
+ i.setContent(e.content, !1), a.clear(), o.reset();
23
23
  }
24
- async function y(e) {
25
- if (!f) {
26
- if (u.value) {
27
- u.value = e, r.setContent(e.content, !1);
24
+ async function x(e) {
25
+ if (!m) {
26
+ if (d.value) {
27
+ d.value = e, i.setContent(e.content, !1);
28
28
  return;
29
29
  }
30
- r.state.isDirty && r.hasTemplate() && (await r.createSnapshot(), f) || (d.value = structuredClone(r.content.value), o?.pause(), u.value = e, r.setContent(e.content, !1));
30
+ i.state.isDirty && i.hasTemplate() && (await i.createSnapshot(), m) || (p.value = structuredClone(i.content.value), s?.pause(), d.value = e, i.setContent(e.content, !1));
31
31
  }
32
32
  }
33
- async function b() {
34
- if (!(!u.value || !c.value)) try {
35
- if (await c.value.restoreSnapshot(u.value.id), f || (await c.value.loadSnapshots(), f)) return;
33
+ async function S() {
34
+ if (!(!d.value || !u.value)) try {
35
+ if (await u.value.restoreSnapshot(d.value.id), m || (await u.value.loadSnapshots(), m)) return;
36
36
  } finally {
37
- f || (u.value = null, d.value = null, o?.resume());
37
+ m || (d.value = null, p.value = null, s?.resume());
38
38
  }
39
39
  }
40
- function x() {
41
- !u.value || !d.value || (r.setContent(d.value, !1), u.value = null, d.value = null, o?.resume());
40
+ function C() {
41
+ !d.value || !p.value || (i.setContent(p.value, !1), d.value = null, p.value = null, s?.resume());
42
42
  }
43
- async function C() {
44
- f || c.value && await c.value.loadSnapshots();
43
+ async function w() {
44
+ m || u.value && await u.value.loadSnapshots();
45
45
  }
46
46
  return {
47
- snapshotHistoryInstance: c,
48
- previewingSnapshot: u,
49
- contentBeforePreview: d,
50
- isPreviewingSnapshot: p,
51
- snapshotHistorySnapshots: m,
52
- snapshotHistoryIsLoading: h,
53
- snapshotHistoryIsRestoring: g,
54
- initSnapshotHistory: _,
55
- handleRestore: v,
56
- handleSnapshotNavigate: y,
57
- confirmRestoreSnapshot: b,
58
- cancelPreview: x,
59
- loadSnapshotHistory: C
47
+ snapshotHistoryInstance: u,
48
+ previewingSnapshot: d,
49
+ contentBeforePreview: p,
50
+ isPreviewingSnapshot: h,
51
+ snapshotHistorySnapshots: g,
52
+ snapshotHistoryIsLoading: _,
53
+ snapshotHistoryIsRestoring: v,
54
+ initSnapshotHistory: y,
55
+ handleRestore: b,
56
+ handleSnapshotNavigate: x,
57
+ confirmRestoreSnapshot: S,
58
+ cancelPreview: C,
59
+ loadSnapshotHistory: w
60
60
  };
61
61
  }
62
62
  //#endregion
63
63
  //#region src/cloud/composables/useCloudPanelState.ts
64
64
  function je() {
65
- let t = e(null), n = S({
66
- get: () => t.value === "ai-chat",
67
- set: (e) => t.value = e ? "ai-chat" : null
68
- }), r = S({
69
- get: () => t.value === "scoring",
70
- set: (e) => t.value = e ? "scoring" : null
71
- }), i = S({
72
- get: () => t.value === "design-reference",
73
- set: (e) => t.value = e ? "design-reference" : null
74
- }), a = S({
75
- get: () => t.value === "comments",
76
- set: (e) => t.value = e ? "comments" : null
77
- }), o = e(!1), s = e(!1), c = e(void 0), l = e(!1), u = e(null), d = S(() => t.value !== null), f = S(() => {
78
- let e = t.value;
79
- return e === "ai-chat" || e === "design-reference" || e === "scoring" ? e : null;
80
- }), p = S(() => l.value || t.value === "ai-chat" || t.value === "design-reference" || t.value === "scoring");
81
- function m() {
65
+ let e = c(null), t = f({
66
+ get: () => e.value === "ai-chat",
67
+ set: (t) => e.value = t ? "ai-chat" : null
68
+ }), n = f({
69
+ get: () => e.value === "scoring",
70
+ set: (t) => e.value = t ? "scoring" : null
71
+ }), r = f({
72
+ get: () => e.value === "design-reference",
73
+ set: (t) => e.value = t ? "design-reference" : null
74
+ }), i = f({
75
+ get: () => e.value === "comments",
76
+ set: (t) => e.value = t ? "comments" : null
77
+ }), a = c(!1), o = c(!1), s = c(void 0), l = c(!1), u = c(null), d = f(() => e.value !== null), p = f(() => {
78
+ let t = e.value;
79
+ return t === "ai-chat" || t === "design-reference" || t === "scoring" ? t : null;
80
+ }), m = f(() => l.value || e.value === "ai-chat" || e.value === "design-reference" || e.value === "scoring");
81
+ function h() {
82
82
  l.value = !l.value;
83
83
  }
84
- function h(e) {
85
- l.value = !1, t.value = t.value === e ? null : e;
84
+ function g(t) {
85
+ l.value = !1, e.value = e.value === t ? null : t;
86
86
  }
87
87
  return pe(u, () => {
88
88
  l.value = !1;
89
89
  }), {
90
- activePanel: t,
91
- aiChatOpen: n,
92
- scoringPanelOpen: r,
93
- designReferenceOpen: i,
94
- commentsOpen: a,
95
- testEmailModalOpen: o,
96
- mediaLibraryOpen: s,
97
- mediaLibraryAccept: c,
90
+ activePanel: e,
91
+ aiChatOpen: t,
92
+ scoringPanelOpen: n,
93
+ designReferenceOpen: r,
94
+ commentsOpen: i,
95
+ testEmailModalOpen: a,
96
+ mediaLibraryOpen: o,
97
+ mediaLibraryAccept: s,
98
98
  aiMenuOpen: l,
99
99
  aiMenuRef: u,
100
100
  rightPanelOpen: d,
101
- activeAiFeature: f,
102
- aiButtonActive: p,
103
- toggleAiMenu: m,
104
- handleAiFeatureSelect: h
101
+ activeAiFeature: p,
102
+ aiButtonActive: m,
103
+ toggleAiMenu: h,
104
+ handleAiFeatureSelect: g
105
105
  };
106
106
  }
107
107
  //#endregion
108
108
  //#region src/cloud/composables/useCollabUndoWarning.ts
109
- function Me(t) {
110
- let { isCollaborationEnabled: n, getCollaboratorCount: r, canUndo: i } = t, a = e(!1), o = e(!1), { start: s } = Q(() => {
111
- o.value = !1;
109
+ function Me(e) {
110
+ let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = c(!1), a = c(!1), { start: o } = Q(() => {
111
+ a.value = !1;
112
112
  }, N, { immediate: !1 });
113
- function c() {
114
- a.value || !n.value || r() === 0 || !i.value || (a.value = !0, o.value = !0, s());
113
+ function s() {
114
+ i.value || !t.value || n() === 0 || !r.value || (i.value = !0, a.value = !0, o());
115
115
  }
116
116
  return {
117
- collabUndoWarningVisible: o,
118
- showCollabUndoWarning: c
117
+ collabUndoWarningVisible: a,
118
+ showCollabUndoWarning: s
119
119
  };
120
120
  }
121
121
  //#endregion
122
122
  //#region src/cloud/composables/useCloudFeatureFlags.ts
123
- function Ne(t) {
124
- let { planConfigInstance: n, aiConfig: r, editor: i } = t, a = S(() => n.hasFeature("ai_generation") && r.hasAnyMenuFeature.value), o = S(() => n.hasFeature("test_email")), s = S(() => !!i.state.template?.id), c = S(() => n.hasFeature("white_label")), l = S(() => n.config.value?.limits.max_templates ?? null), u = S(() => n.config.value?.template_count ?? 0), d = e(!1), f = e("idle"), p = e(""), { start: m } = Q(() => {
125
- f.value = "idle";
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 } = Q(() => {
125
+ p.value = "idle";
126
126
  }, 3e3, { immediate: !1 });
127
127
  return {
128
- canUseAiGeneration: a,
129
- canSendTestEmail: o,
130
- hasTemplateSaved: s,
131
- isWhiteLabeled: c,
128
+ canUseAiGeneration: i,
129
+ canSendTestEmail: a,
130
+ hasTemplateSaved: o,
131
+ isWhiteLabeled: s,
132
132
  templateLimit: l,
133
133
  templateCount: u,
134
134
  isSaveExporting: d,
135
- saveStatus: f,
136
- saveErrorMessage: p,
137
- startSaveStatusClear: m
135
+ saveStatus: p,
136
+ saveErrorMessage: m,
137
+ startSaveStatusClear: h
138
138
  };
139
139
  }
140
140
  //#endregion
141
141
  //#region src/cloud/composables/useCloudMediaLibrary.ts
142
142
  function Pe(e) {
143
- let { onRequestMedia: t, mediaLibraryOpen: n, mediaLibraryAccept: r } = e, i = null;
144
- async function a() {
143
+ let { onRequestMedia: t, mediaLibraryOpen: n, mediaLibraryAccept: i } = e, a = null;
144
+ async function o() {
145
145
  if (t) {
146
146
  let e = await t({ accept: ["images"] });
147
147
  return e ? {
@@ -149,118 +149,118 @@ function Pe(e) {
149
149
  alt: e.alt_text || void 0
150
150
  } : null;
151
151
  }
152
- return i &&= (i(null), null), r.value = ["images"], n.value = !0, new Promise((e) => {
153
- i = (t) => {
152
+ return a &&= (a(null), null), i.value = ["images"], n.value = !0, new Promise((e) => {
153
+ a = (t) => {
154
154
  e(t);
155
155
  };
156
156
  });
157
157
  }
158
- function o(e) {
159
- n.value = !1, i?.({
158
+ function s(e) {
159
+ n.value = !1, a?.({
160
160
  url: e.url,
161
161
  alt: e.alt_text || void 0
162
- }), i = null;
162
+ }), a = null;
163
163
  }
164
- function s() {
165
- n.value = !1, i?.(null), i = null;
164
+ function c() {
165
+ n.value = !1, a?.(null), a = null;
166
166
  }
167
- return l(() => {
168
- i &&= (i(null), null);
167
+ return r(() => {
168
+ a &&= (a(null), null);
169
169
  }), {
170
- handleRequestMedia: a,
171
- handleMediaSelect: o,
172
- handleMediaLibraryClose: s
170
+ handleRequestMedia: o,
171
+ handleMediaSelect: s,
172
+ handleMediaLibraryClose: c
173
173
  };
174
174
  }
175
175
  //#endregion
176
176
  //#region src/cloud/composables/useCloudInitialization.ts
177
- function Fe(n) {
178
- let { config: r, translations: i, fontsManager: a, emit: s, getCommentsSidebar: c } = n, l = e(!0), u = e(!1), d = e(null), f = !1, p = { value: null }, m = null, h = null, g = new M({
179
- ...r.auth,
180
- onError: r.onError
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 M({
179
+ ...t.auth,
180
+ onError: t.onError
181
181
  }), _ = he({
182
182
  authManager: g,
183
- onError: r.onError
184
- }), v = e(/* @__PURE__ */ new Map()), y = te({
183
+ onError: t.onError
184
+ }), v = c(/* @__PURE__ */ new Map()), y = te({
185
185
  authManager: g,
186
- defaultFontFamily: r.fonts?.defaultFont,
187
- templateDefaults: r.templateDefaults,
188
- onError: r.onError,
186
+ defaultFontFamily: t.fonts?.defaultFont,
187
+ templateDefaults: t.templateDefaults,
188
+ onError: t.onError,
189
189
  lockedBlocks: v
190
190
  }), b = oe({
191
191
  authManager: g,
192
- onError: r.onError
192
+ onError: t.onError
193
193
  });
194
- r.mcp?.enabled && ie({
194
+ t.mcp?.enabled && ie({
195
195
  editor: y,
196
196
  channel: b.channel,
197
- onOperation: r.mcp.onOperation
197
+ onOperation: t.mcp.onOperation
198
198
  });
199
199
  let x = null;
200
- r.collaboration?.enabled && (x = W({
200
+ t.collaboration?.enabled && (x = W({
201
201
  authManager: g,
202
202
  editor: y,
203
203
  channel: b.channel,
204
- onError: r.onError,
205
- onCollaboratorJoined: r.collaboration.onCollaboratorJoined,
206
- onCollaboratorLeft: r.collaboration.onCollaboratorLeft,
207
- onBlockLocked: r.collaboration.onBlockLocked,
208
- onBlockUnlocked: r.collaboration.onBlockUnlocked
209
- }), t(() => x.lockedBlocks.value, (e) => {
204
+ onError: t.onError,
205
+ onCollaboratorJoined: t.collaboration.onCollaboratorJoined,
206
+ onCollaboratorLeft: t.collaboration.onCollaboratorLeft,
207
+ onBlockLocked: t.collaboration.onBlockLocked,
208
+ onBlockUnlocked: t.collaboration.onBlockUnlocked
209
+ }), O(() => x.lockedBlocks.value, (e) => {
210
210
  v.value = e;
211
211
  }, { immediate: !0 }), ae(y, x));
212
- let C = S(() => !!r.collaboration?.enabled && _.hasFeature("collaboration")), w = le({
212
+ let S = f(() => !!t.collaboration?.enabled && _.hasFeature("collaboration")), C = le({
213
213
  editor: y,
214
214
  config: {
215
- uiTheme: r.uiTheme,
215
+ uiTheme: t.uiTheme,
216
216
  theme: void 0,
217
- blockDefaults: r.blockDefaults,
217
+ blockDefaults: t.blockDefaults,
218
218
  customBlocks: [],
219
- mergeTags: r.mergeTags,
220
- displayConditions: r.displayConditions,
219
+ mergeTags: t.mergeTags,
220
+ displayConditions: t.displayConditions,
221
221
  onRequestMedia: null,
222
- accessibility: Ce(r),
222
+ accessibility: Ce(t),
223
223
  onSave: () => {
224
224
  p.value?.().catch((e) => {
225
- r.onError?.(e);
225
+ t.onError?.(e);
226
226
  });
227
227
  }
228
228
  },
229
- translations: i,
230
- fontsManager: a,
229
+ translations: n,
230
+ fontsManager: r,
231
231
  historyOptions: x ? { isRemoteOperation: () => x._isProcessingRemoteOperation() } : void 0,
232
232
  autoSaveOptions: {
233
233
  onChange: async () => {
234
234
  y.hasTemplate() && (await y.createSnapshot(), m?.snapshotHistoryInstance.value?.loadSnapshots());
235
235
  },
236
- debounce: r.autoSaveDebounce ?? 5e3,
237
- enabled: () => r.autoSave !== !1 && _.hasFeature("auto_save")
236
+ debounce: t.autoSaveDebounce ?? 5e3,
237
+ enabled: () => t.autoSave !== !1 && _.hasFeature("auto_save")
238
238
  },
239
- themeExtraStyles: () => ({ "--tpl-drop-text": `"${i.canvas.dropHere}"` }),
239
+ themeExtraStyles: () => ({ "--tpl-drop-text": `"${n.canvas.dropHere}"` }),
240
240
  keyboardOptions: { onBeforeUndo: () => h?.showCollabUndoWarning() }
241
- }), T = Me({
242
- isCollaborationEnabled: C,
241
+ }), w = Me({
242
+ isCollaborationEnabled: S,
243
243
  getCollaboratorCount: () => x?.collaborators.value.length ?? 0,
244
- canUndo: w.history.canUndo
244
+ canUndo: C.history.canUndo
245
245
  });
246
- h = T;
247
- let E = Ae({
246
+ h = w;
247
+ let T = Ae({
248
248
  authManager: g,
249
249
  editor: y,
250
- history: w.history,
251
- conditionPreview: w.conditionPreview,
252
- autoSave: w.autoSave,
253
- onError: r.onError
250
+ history: C.history,
251
+ conditionPreview: C.conditionPreview,
252
+ autoSave: C.autoSave,
253
+ onError: t.onError
254
254
  });
255
- m = E;
256
- let D = je(), O = ve(r.ai), k = Ne({
255
+ m = T;
256
+ let E = je(), D = ve(t.ai), k = Ne({
257
257
  planConfigInstance: _,
258
- aiConfig: O,
258
+ aiConfig: D,
259
259
  editor: y
260
260
  }), j = Pe({
261
- onRequestMedia: r.onRequestMedia,
262
- mediaLibraryOpen: D.mediaLibraryOpen,
263
- mediaLibraryAccept: D.mediaLibraryAccept
261
+ onRequestMedia: t.onRequestMedia,
262
+ mediaLibraryOpen: E.mediaLibraryOpen,
263
+ mediaLibraryAccept: E.mediaLibraryAccept
264
264
  });
265
265
  ne({
266
266
  onBlockMove: y.moveBlock,
@@ -268,24 +268,24 @@ function Fe(n) {
268
268
  });
269
269
  let N = J({
270
270
  authManager: g,
271
- getFontsConfig: () => r.fonts,
271
+ getFontsConfig: () => t.fonts,
272
272
  canUseCustomFonts: () => _.hasFeature("custom_fonts")
273
273
  }), I = X({
274
274
  authManager: g,
275
275
  getTemplateId: () => y.state.template?.id ?? null,
276
276
  save: () => y.save(),
277
277
  exportHtml: (e) => N.exportHtml(e),
278
- onError: r.onError,
279
- isAuthReady: u,
280
- onBeforeTestEmail: r.onBeforeTestEmail
278
+ onError: t.onError,
279
+ isAuthReady: l,
280
+ onBeforeTestEmail: t.onBeforeTestEmail
281
281
  }), L = ye({
282
282
  authManager: g,
283
283
  getTemplateId: () => y.state.template?.id ?? null,
284
284
  getSocketId: () => b.getSocketId(),
285
- onComment: r.onComment,
286
- onError: r.onError,
287
- isAuthReady: u,
288
- hasCommentingFeature: () => r.commenting !== !1 && _.hasFeature("commenting")
285
+ onComment: t.onComment,
286
+ onError: t.onError,
287
+ isAuthReady: l,
288
+ hasCommentingFeature: () => t.commenting !== !1 && _.hasFeature("commenting")
289
289
  });
290
290
  ge({
291
291
  comments: L,
@@ -293,19 +293,19 @@ function Fe(n) {
293
293
  });
294
294
  let R = de({
295
295
  authManager: g,
296
- onError: r.onError
297
- }), z = e(!1), B = e(null), G = e(!1), K = re({
296
+ onError: t.onError
297
+ }), z = c(!1), B = c(null), G = c(!1), K = re({
298
298
  authManager: g,
299
299
  getTemplateId: () => y.state.template?.id ?? null
300
300
  });
301
301
  function q(e) {
302
- D.commentsOpen.value = !0, queueMicrotask(() => {
303
- c()?.filterByBlock(e);
302
+ E.commentsOpen.value = !0, queueMicrotask(() => {
303
+ o()?.filterByBlock(e);
304
304
  });
305
305
  }
306
- o(H, j.handleRequestMedia), o(ee, g), o(P, O), o(F, L), o(V, R), o(U, K), o(A, {
306
+ a(H, j.handleRequestMedia), a(ee, g), a(P, D), a(F, L), a(V, R), a(U, K), a(A, {
307
307
  plan: _,
308
- ai: O,
308
+ ai: D,
309
309
  comments: {
310
310
  getBlockCount: (e) => L.commentCountByBlock.value.get(e) ?? 0,
311
311
  openForBlock: q
@@ -317,50 +317,50 @@ function Fe(n) {
317
317
  openBrowser: () => {
318
318
  G.value = !0;
319
319
  },
320
- moduleCount: S(() => R.modules.value.length)
320
+ moduleCount: f(() => R.modules.value.length)
321
321
  }
322
322
  });
323
323
  function Y(e) {
324
- _.hasFeature("theme_customization") && (w.themeOverrides.value = e);
324
+ _.hasFeature("theme_customization") && (C.themeOverrides.value = e);
325
325
  }
326
326
  function Z(e) {
327
327
  y.setUiTheme(e);
328
328
  }
329
329
  async function se() {
330
- l.value = !0, d.value = null;
330
+ s.value = !0, u.value = null;
331
331
  try {
332
- if (await g.initialize(), f) return;
333
- u.value = !0;
332
+ if (await g.initialize(), d) return;
333
+ l.value = !0;
334
334
  let e = await ue({ authManager: g });
335
- if (f) return;
335
+ if (d) return;
336
336
  if (!e.api.ok) throw Error("Health check failed: API is not reachable");
337
337
  if (!e.auth.ok) throw Error(`Health check failed: authentication error${e.auth.error ? ` - ${e.auth.error}` : ""}`);
338
- if (e.websocket.ok || ce.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), f) return;
339
- a.setCustomFontsEnabled(_.hasFeature("custom_fonts")), r.customBlocks?.length && _.hasFeature("custom_blocks") && w.registerCustomBlocks(r.customBlocks), r.theme && _.hasFeature("theme_customization") && (w.themeOverrides.value = r.theme), r.modules !== !1 && _.hasFeature("saved_modules") && R.loadModules(), s("ready");
338
+ if (e.websocket.ok || ce.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), d) return;
339
+ 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") && R.loadModules(), i("ready");
340
340
  } catch (e) {
341
- if (f) return;
342
- let t = e instanceof Error ? e : Error("Initialization failed", { cause: e });
343
- d.value = t, r.onError?.(t);
341
+ if (d) return;
342
+ let n = e instanceof Error ? e : Error("Initialization failed", { cause: e });
343
+ u.value = n, t.onError?.(n);
344
344
  } finally {
345
- f || (l.value = !1);
345
+ d || (s.value = !1);
346
346
  }
347
347
  }
348
348
  function Q() {
349
- f = !0, a.cleanupFontLinks(), b.disconnect(), w.destroy(), r.onUnmount?.();
349
+ d = !0, r.cleanupFontLinks(), b.disconnect(), C.destroy(), t.onUnmount?.();
350
350
  }
351
351
  return {
352
- isInitializing: l,
353
- isAuthReady: u,
354
- initError: d,
355
- isDestroyed: () => f,
352
+ isInitializing: s,
353
+ isAuthReady: l,
354
+ initError: u,
355
+ isDestroyed: () => d,
356
356
  authManager: g,
357
357
  planConfigInstance: _,
358
358
  websocket: b,
359
359
  collaboration: x,
360
- isCollaborationEnabled: C,
360
+ isCollaborationEnabled: S,
361
361
  editor: y,
362
- core: w,
363
- aiConfig: O,
362
+ core: C,
363
+ aiConfig: D,
364
364
  featureFlags: k,
365
365
  mediaLib: j,
366
366
  exporter: N,
@@ -368,9 +368,9 @@ function Fe(n) {
368
368
  commentsInstance: L,
369
369
  savedModulesHeadless: R,
370
370
  scoringInstance: K,
371
- panelState: D,
372
- snapshotPreview: E,
373
- collabWarning: T,
371
+ panelState: E,
372
+ snapshotPreview: T,
373
+ collabWarning: w,
374
374
  showSaveModuleDialog: z,
375
375
  showModuleBrowserModal: G,
376
376
  saveModulePreSelectedBlockId: B,
@@ -446,30 +446,30 @@ function Le(e) {
446
446
  }
447
447
  //#endregion
448
448
  //#region src/cloud/composables/useCloudSaveGate.ts
449
- function Re(t) {
450
- let n = e(!1), r = null, i = S(() => t.planConfig.value?.accessibility?.blockOnError === !0), a = S(() => i.value ? t.issues.value.filter((e) => e.severity === "error") : []), o = S(() => a.value.length > 0);
451
- async function s(e) {
452
- return o.value ? (r = e, n.value = !0, !1) : (await e(), !0);
449
+ function Re(e) {
450
+ 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);
451
+ async function o(e) {
452
+ return a.value ? (n = e, t.value = !0, !1) : (await e(), !0);
453
453
  }
454
- async function c() {
455
- let e = r;
456
- r = null, n.value = !1, e && await e();
454
+ async function s() {
455
+ let e = n;
456
+ n = null, t.value = !1, e && await e();
457
457
  }
458
458
  function l() {
459
- r = null, n.value = !1;
459
+ n = null, t.value = !1;
460
460
  }
461
461
  return {
462
- shouldBlock: o,
463
- blockingIssues: a,
464
- modalOpen: n,
465
- tryRunSave: s,
466
- confirmAndSave: c,
462
+ shouldBlock: a,
463
+ blockingIssues: i,
464
+ modalOpen: t,
465
+ tryRunSave: o,
466
+ confirmAndSave: s,
467
467
  cancel: l
468
468
  };
469
469
  }
470
470
  //#endregion
471
471
  //#region src/cloud/components/CloudSaveGateModal.vue?vue&type=script&setup=true&lang.ts
472
- 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__ */ s({
472
+ 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({
473
473
  __name: "CloudSaveGateModal",
474
474
  props: {
475
475
  open: { type: Boolean },
@@ -477,41 +477,41 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
477
477
  },
478
478
  emits: ["cancel", "confirm"],
479
479
  setup(e, { emit: t }) {
480
- let i = t, { t: o } = k();
481
- return (t, s) => (a(), _(x, {
480
+ let n = t, { t: r } = k();
481
+ return (t, a) => (i(), _(v, {
482
482
  "enter-active-class": "tpl:transition-opacity tpl:duration-150",
483
483
  "leave-active-class": "tpl:transition-opacity tpl:duration-150",
484
484
  "enter-from-class": "tpl:opacity-0",
485
485
  "leave-to-class": "tpl:opacity-0"
486
486
  }, {
487
- default: r(() => [e.open ? (a(), u("div", {
487
+ default: s(() => [e.open ? (i(), p("div", {
488
488
  key: 0,
489
489
  role: "dialog",
490
490
  "aria-modal": "true",
491
- "aria-label": d(o).saveGate.title,
491
+ "aria-label": x(r).saveGate.title,
492
492
  class: "tpl:fixed tpl:inset-0 tpl:z-50 tpl:flex tpl:items-center tpl:justify-center tpl:bg-black/40 tpl:p-6",
493
- onClick: s[2] ||= T((e) => i("cancel"), ["self"])
493
+ onClick: a[2] ||= g((e) => n("cancel"), ["self"])
494
494
  }, [b("div", Be, [
495
- b("header", Ve, [f(d(K), {
495
+ b("header", Ve, [D(x(K), {
496
496
  size: 18,
497
497
  "stroke-width": 2,
498
498
  class: "tpl:text-[var(--tpl-warning)]"
499
- }), b("h2", He, y(d(o).saveGate.title), 1)]),
500
- b("p", Ue, y(d(o).saveGate.body), 1),
501
- b("ul", We, [(a(!0), u(h, null, n(e.issues, (e) => (a(), u("li", {
499
+ }), b("h2", He, C(x(r).saveGate.title), 1)]),
500
+ b("p", Ue, C(x(r).saveGate.body), 1),
501
+ b("ul", We, [(i(!0), p(w, null, o(e.issues, (e) => (i(), p("li", {
502
502
  key: `${e.ruleId}-${e.blockId ?? "template"}`,
503
503
  class: "tpl:flex tpl:flex-col tpl:gap-0.5 tpl:rounded tpl:px-2 tpl:py-1.5"
504
- }, [b("span", Ge, y(e.message), 1), b("span", Ke, y(e.ruleId), 1)]))), 128))]),
504
+ }, [b("span", Ge, C(e.message), 1), b("span", Ke, C(e.ruleId), 1)]))), 128))]),
505
505
  b("footer", qe, [b("button", {
506
506
  type: "button",
507
507
  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)]",
508
- onClick: s[0] ||= (e) => i("cancel")
509
- }, y(d(o).saveGate.cancel), 1), b("button", {
508
+ onClick: a[0] ||= (e) => n("cancel")
509
+ }, C(x(r).saveGate.cancel), 1), b("button", {
510
510
  type: "button",
511
511
  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",
512
- onClick: s[1] ||= (e) => i("confirm")
513
- }, y(d(o).saveGate.confirm), 1)])
514
- ])], 8, ze)) : g("", !0)]),
512
+ onClick: a[1] ||= (e) => n("confirm")
513
+ }, C(x(r).saveGate.confirm), 1)])
514
+ ])], 8, ze)) : m("", !0)]),
515
515
  _: 1
516
516
  }));
517
517
  }
@@ -541,7 +541,7 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
541
541
  }, at = ["aria-expanded"], ot = {
542
542
  key: 0,
543
543
  class: "tpl:absolute tpl:right-0 tpl:top-full tpl:z-50 tpl:mt-1 tpl:origin-top-right"
544
- }, st = ["disabled"], ct = ["disabled"], lt = /* @__PURE__ */ s({
544
+ }, st = ["disabled"], ct = ["disabled"], lt = /* @__PURE__ */ E({
545
545
  __name: "CloudHeader",
546
546
  props: {
547
547
  editor: {},
@@ -559,31 +559,31 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
559
559
  },
560
560
  emits: ["save"],
561
561
  setup(e) {
562
- let t = D(() => import("./CollaboratorBar--nO7TX6b.js")), n = D(() => import("./features-DEMb13KS.js").then((e) => e.r)), i = D(() => import("./AiFeatureMenu-qEdB2fZJ.js")), { t: o, format: s } = k();
563
- return (c, l) => (a(), u("header", Ye, [
564
- b("div", Xe, [e.featureFlags.templateLimit.value === null ? g("", !0) : (a(), u("span", Ze, y(d(s)(d(o).header.templatesUsed, {
562
+ let t = d(() => import("./CollaboratorBar-B5a8eBXN.js")), n = d(() => import("./features-D6FoOm8v.js").then((e) => e.r)), r = d(() => import("./AiFeatureMenu-CDh9ifC8.js")), { t: a, format: o } = k();
563
+ return (c, l) => (i(), p("header", Ye, [
564
+ b("div", Xe, [e.featureFlags.templateLimit.value === null ? m("", !0) : (i(), p("span", Ze, C(x(o)(x(a).header.templatesUsed, {
565
565
  used: e.featureFlags.templateCount.value,
566
566
  max: e.featureFlags.templateLimit.value
567
567
  })), 1))]),
568
568
  b("div", Qe, [
569
- f(we, {
569
+ D(we, {
570
570
  viewport: e.editor.state.viewport,
571
571
  onChange: e.editor.setViewport
572
572
  }, null, 8, ["viewport", "onChange"]),
573
- f(Te, {
573
+ D(Te, {
574
574
  "dark-mode": e.editor.state.darkMode,
575
575
  onChange: e.editor.setDarkMode
576
576
  }, null, 8, ["dark-mode", "onChange"]),
577
- f(De, {
577
+ D(De, {
578
578
  "preview-mode": e.editor.state.previewMode,
579
579
  onChange: e.editor.setPreviewMode
580
580
  }, null, 8, ["preview-mode", "onChange"]),
581
- e.collaboration && e.isCollaborationEnabled ? (a(), _(d(t), {
581
+ e.collaboration && e.isCollaborationEnabled ? (i(), _(x(t), {
582
582
  key: 0,
583
583
  collaborators: e.collaboration.collaborators.value,
584
584
  "is-connected": e.websocket.isConnected.value
585
- }, null, 8, ["collaborators", "is-connected"])) : g("", !0),
586
- e.snapshotPreview.snapshotHistoryInstance.value ? (a(), _(d(n), {
585
+ }, null, 8, ["collaborators", "is-connected"])) : m("", !0),
586
+ e.snapshotPreview.snapshotHistoryInstance.value ? (i(), _(x(n), {
587
587
  key: 1,
588
588
  snapshots: e.snapshotPreview.snapshotHistorySnapshots.value,
589
589
  "is-loading": e.snapshotPreview.snapshotHistoryIsLoading.value,
@@ -596,53 +596,53 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
596
596
  "is-restoring",
597
597
  "onLoad",
598
598
  "onNavigate"
599
- ])) : g("", !0)
599
+ ])) : m("", !0)
600
600
  ]),
601
601
  b("div", $e, [
602
- e.featureFlags.saveStatus.value === "error" ? (a(), u("div", {
602
+ e.featureFlags.saveStatus.value === "error" ? (i(), p("div", {
603
603
  key: 0,
604
604
  "aria-live": "assertive",
605
605
  class: "tpl-tooltip tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-danger)]",
606
606
  "data-tooltip": e.featureFlags.saveErrorMessage.value
607
- }, [f(d(z), {
607
+ }, [D(x(z), {
608
608
  size: 12,
609
609
  "stroke-width": 2.5
610
- }), O(" " + y(d(o).header.saveFailed), 1)], 8, et)) : e.featureFlags.saveStatus.value === "saved" ? (a(), u("div", tt, [f(d(L), {
610
+ }), T(" " + C(x(a).header.saveFailed), 1)], 8, et)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", tt, [D(x(L), {
611
611
  size: 12,
612
612
  "stroke-width": 2.5
613
- }), O(" " + y(d(o).header.saved), 1)])) : e.editor.state.isDirty ? (a(), u("div", nt, [l[4] ||= b("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), O(" " + y(d(o).header.unsaved), 1)])) : g("", !0),
614
- e.commentsInstance.isEnabled.value && e.featureFlags.hasTemplateSaved.value ? (a(), u("button", {
613
+ }), T(" " + C(x(a).header.saved), 1)])) : e.editor.state.isDirty ? (i(), p("div", nt, [l[4] ||= b("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), T(" " + C(x(a).header.unsaved), 1)])) : m("", !0),
614
+ e.commentsInstance.isEnabled.value && e.featureFlags.hasTemplateSaved.value ? (i(), p("button", {
615
615
  key: 3,
616
- "aria-label": e.commentsInstance.unresolvedCount.value > 0 ? `${d(o).comments.button} (${e.commentsInstance.unresolvedCount.value})` : d(o).comments.button,
616
+ "aria-label": e.commentsInstance.unresolvedCount.value > 0 ? `${x(a).comments.button} (${e.commentsInstance.unresolvedCount.value})` : x(a).comments.button,
617
617
  "aria-expanded": e.panelState.commentsOpen.value,
618
- class: C(d($)),
619
- style: m({
618
+ class: u(x($)),
619
+ style: y({
620
620
  backgroundColor: e.panelState.commentsOpen.value ? "var(--tpl-primary)" : "transparent",
621
621
  color: e.panelState.commentsOpen.value ? "var(--tpl-bg)" : "var(--tpl-primary)",
622
622
  borderColor: "var(--tpl-primary)"
623
623
  }),
624
624
  onClick: l[0] ||= (t) => e.panelState.commentsOpen.value = !e.panelState.commentsOpen.value
625
625
  }, [
626
- f(d(se), {
626
+ D(x(se), {
627
627
  size: 16,
628
628
  "stroke-width": 2
629
629
  }),
630
- O(" " + y(d(o).comments.button) + " ", 1),
631
- e.commentsInstance.unresolvedCount.value > 0 && !e.panelState.commentsOpen.value ? (a(), u("span", it, y(e.commentsInstance.unresolvedCount.value), 1)) : g("", !0)
632
- ], 14, rt)) : g("", !0),
633
- e.featureFlags.canUseAiGeneration.value && e.featureFlags.hasTemplateSaved.value ? (a(), u("div", {
630
+ T(" " + C(x(a).comments.button) + " ", 1),
631
+ e.commentsInstance.unresolvedCount.value > 0 && !e.panelState.commentsOpen.value ? (i(), p("span", it, C(e.commentsInstance.unresolvedCount.value), 1)) : m("", !0)
632
+ ], 14, rt)) : m("", !0),
633
+ e.featureFlags.canUseAiGeneration.value && e.featureFlags.hasTemplateSaved.value ? (i(), p("div", {
634
634
  key: 4,
635
635
  ref: (t) => e.panelState.aiMenuRef.value = t,
636
636
  class: "tpl:relative"
637
637
  }, [b("button", {
638
638
  "aria-expanded": e.panelState.aiMenuOpen.value,
639
- class: C(["tpl-ai-btn tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:px-4 tpl:py-2 tpl:text-sm tpl:font-semibold tpl:whitespace-nowrap tpl:transition-all tpl:duration-200", e.panelState.aiButtonActive.value ? "tpl-ai-btn--active" : "tpl-ai-btn--idle"]),
640
- onClick: l[1] ||= T((...t) => e.panelState.toggleAiMenu && e.panelState.toggleAiMenu(...t), ["stop"])
641
- }, [f(d(q), {
639
+ class: u(["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"]),
640
+ onClick: l[1] ||= g((...t) => e.panelState.toggleAiMenu && e.panelState.toggleAiMenu(...t), ["stop"])
641
+ }, [D(x(q), {
642
642
  size: 16,
643
643
  "stroke-width": 2,
644
644
  class: "tpl-ai-btn-icon"
645
- }), O(" " + y(d(o).aiChat.button), 1)], 10, at), f(x, {
645
+ }), T(" " + C(x(a).aiChat.button), 1)], 10, at), D(v, {
646
646
  "enter-active-class": "tpl:transition-all tpl:duration-150 tpl:ease-out",
647
647
  "enter-from-class": "tpl:scale-95 tpl:opacity-0",
648
648
  "enter-to-class": "tpl:scale-100 tpl:opacity-100",
@@ -650,15 +650,15 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
650
650
  "leave-from-class": "tpl:scale-100 tpl:opacity-100",
651
651
  "leave-to-class": "tpl:scale-95 tpl:opacity-0"
652
652
  }, {
653
- default: r(() => [e.panelState.aiMenuOpen.value ? (a(), u("div", ot, [f(d(i), {
653
+ default: s(() => [e.panelState.aiMenuOpen.value ? (i(), p("div", ot, [D(x(r), {
654
654
  "active-feature": e.panelState.activeAiFeature.value,
655
655
  onSelect: e.panelState.handleAiFeatureSelect
656
- }, null, 8, ["active-feature", "onSelect"])])) : g("", !0)]),
656
+ }, null, 8, ["active-feature", "onSelect"])])) : m("", !0)]),
657
657
  _: 1
658
- })], 512)) : g("", !0),
659
- e.testEmail.isEnabled.value && e.featureFlags.canSendTestEmail.value ? (a(), u("button", {
658
+ })], 512)) : m("", !0),
659
+ e.testEmail.isEnabled.value && e.featureFlags.canSendTestEmail.value ? (i(), p("button", {
660
660
  key: 5,
661
- class: C(d($)),
661
+ class: u(x($)),
662
662
  style: {
663
663
  "background-color": "transparent",
664
664
  color: "var(--tpl-primary)",
@@ -666,18 +666,18 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
666
666
  },
667
667
  disabled: e.testEmail.isSending.value || !e.featureFlags.hasTemplateSaved.value,
668
668
  onClick: l[2] ||= (t) => e.panelState.testEmailModalOpen.value = !0
669
- }, [e.testEmail.isSending.value ? (a(), _(d(Z), {
669
+ }, [e.testEmail.isSending.value ? (i(), _(x(Z), {
670
670
  key: 1,
671
671
  class: "tpl-spinner",
672
672
  size: 16,
673
673
  "stroke-width": 2
674
- })) : (a(), _(d(Y), {
674
+ })) : (i(), _(x(Y), {
675
675
  key: 0,
676
676
  size: 16,
677
677
  "stroke-width": 2
678
- })), O(" " + y(d(o).testEmail.button), 1)], 10, st)) : g("", !0),
678
+ })), T(" " + C(x(a).testEmail.button), 1)], 10, st)) : m("", !0),
679
679
  b("button", {
680
- class: C(d($)),
680
+ class: u(x($)),
681
681
  style: {
682
682
  "background-color": "transparent",
683
683
  color: "var(--tpl-primary)",
@@ -685,20 +685,20 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
685
685
  },
686
686
  disabled: e.isSaveDisabled,
687
687
  onClick: l[3] ||= (e) => c.$emit("save")
688
- }, [e.isSaving ? (a(), _(d(Z), {
688
+ }, [e.isSaving ? (i(), _(x(Z), {
689
689
  key: 1,
690
690
  class: "tpl-spinner",
691
691
  size: 16,
692
692
  "stroke-width": 2
693
- })) : (a(), _(d(xe), {
693
+ })) : (i(), _(x(xe), {
694
694
  key: 0,
695
695
  size: 16,
696
696
  "stroke-width": 2
697
- })), O(" " + y(e.isSaving ? d(o).header.saving : d(o).header.save), 1)], 10, ct)
697
+ })), T(" " + C(e.isSaving ? x(a).header.saving : x(a).header.save), 1)], 10, ct)
698
698
  ])
699
699
  ]));
700
700
  }
701
- }), ut = /* @__PURE__ */ s({
701
+ }), ut = /* @__PURE__ */ E({
702
702
  __name: "CloudPanels",
703
703
  props: {
704
704
  config: {},
@@ -720,79 +720,79 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
720
720
  "send-test-email",
721
721
  "module-insert"
722
722
  ],
723
- setup(t, { expose: n, emit: r }) {
724
- let i = D(() => import("./features-DEMb13KS.js").then((e) => e.s)), o = D(() => import("./features-DEMb13KS.js").then((e) => e.o)), s = D(() => import("./features-DEMb13KS.js").then((e) => e.a)), c = D(() => import("./features-DEMb13KS.js").then((e) => e.n)), l = D(() => import("./features-DEMb13KS.js").then((e) => e.t)), p = D(() => import("./SaveModuleDialog-B0TnO_o9.js")), m = D(() => import("./ModuleBrowserModal-DxoPp81s.js")), v = D(async () => {
723
+ setup(e, { expose: t, emit: n }) {
724
+ let r = d(() => import("./features-D6FoOm8v.js").then((e) => e.s)), a = d(() => import("./features-D6FoOm8v.js").then((e) => e.o)), o = d(() => import("./features-D6FoOm8v.js").then((e) => e.a)), s = d(() => import("./features-D6FoOm8v.js").then((e) => e.n)), l = d(() => import("./features-D6FoOm8v.js").then((e) => e.t)), u = d(() => import("./SaveModuleDialog-5CNMvgYL.js")), f = d(() => import("./ModuleBrowserModal-BMUyAmmj.js")), h = d(async () => {
725
725
  try {
726
- return (await import("./src-CRaqN-p8.js")).MediaLibraryModal;
726
+ return (await import("./src-DDSInEkE.js")).MediaLibraryModal;
727
727
  } catch {
728
728
  throw Error("[Templatical] Cloud media library requires the optional peer dependency '@templatical/media-library'. Please install it.");
729
729
  }
730
- }), y = r;
731
- function b(e, t, n) {
730
+ }), g = n;
731
+ function v(e, t, n) {
732
732
  t.history.record(), n.setContent(e), t.conditionPreview.reset();
733
733
  }
734
- function x(e, t) {
735
- y("module-insert", e, t);
734
+ function y(e, t) {
735
+ g("module-insert", e, t);
736
736
  }
737
- let S = e(null);
738
- function C(e) {
739
- S.value?.filterByBlock(e);
737
+ let b = c(null);
738
+ function S(e) {
739
+ b.value?.filterByBlock(e);
740
740
  }
741
- return n({ filterCommentsByBlock: C }), (e, n) => (a(), u(h, null, [
742
- f(d(i), {
743
- visible: t.panelState.aiChatOpen.value,
744
- "on-apply": (e) => b(e, t.core, t.editor),
745
- onClose: n[0] ||= (e) => t.panelState.aiChatOpen.value = !1
741
+ return t({ filterCommentsByBlock: S }), (t, n) => (i(), p(w, null, [
742
+ D(x(r), {
743
+ visible: e.panelState.aiChatOpen.value,
744
+ "on-apply": (t) => v(t, e.core, e.editor),
745
+ onClose: n[0] ||= (t) => e.panelState.aiChatOpen.value = !1
746
746
  }, null, 8, ["visible", "on-apply"]),
747
- f(d(c), {
748
- visible: t.panelState.scoringPanelOpen.value,
749
- onClose: n[1] ||= (e) => t.panelState.scoringPanelOpen.value = !1
747
+ D(x(s), {
748
+ visible: e.panelState.scoringPanelOpen.value,
749
+ onClose: n[1] ||= (t) => e.panelState.scoringPanelOpen.value = !1
750
750
  }, null, 8, ["visible"]),
751
- f(d(s), {
752
- visible: t.panelState.designReferenceOpen.value,
753
- "has-existing-blocks": t.editor.content.value.blocks.length > 0,
754
- onClose: n[2] ||= (e) => t.panelState.designReferenceOpen.value = !1,
755
- onApply: n[3] ||= (e) => b(e, t.core, t.editor)
751
+ D(x(o), {
752
+ visible: e.panelState.designReferenceOpen.value,
753
+ "has-existing-blocks": e.editor.content.value.blocks.length > 0,
754
+ onClose: n[2] ||= (t) => e.panelState.designReferenceOpen.value = !1,
755
+ onApply: n[3] ||= (t) => v(t, e.core, e.editor)
756
756
  }, null, 8, ["visible", "has-existing-blocks"]),
757
- f(d(o), {
757
+ D(x(a), {
758
758
  ref_key: "commentsSidebar",
759
- ref: S,
760
- visible: t.panelState.commentsOpen.value,
761
- onClose: n[4] ||= (e) => t.panelState.commentsOpen.value = !1
759
+ ref: b,
760
+ visible: e.panelState.commentsOpen.value,
761
+ onClose: n[4] ||= (t) => e.panelState.commentsOpen.value = !1
762
762
  }, null, 8, ["visible"]),
763
- f(d(l), {
764
- visible: t.panelState.testEmailModalOpen.value,
765
- "allowed-emails": t.testEmail.allowedEmails.value,
766
- "is-sending": t.testEmail.isSending.value,
767
- error: t.testEmail.error.value,
768
- onSend: n[5] ||= (e) => y("send-test-email", e),
769
- onClose: n[6] ||= (e) => t.panelState.testEmailModalOpen.value = !1
763
+ D(x(l), {
764
+ visible: e.panelState.testEmailModalOpen.value,
765
+ "allowed-emails": e.testEmail.allowedEmails.value,
766
+ "is-sending": e.testEmail.isSending.value,
767
+ error: e.testEmail.error.value,
768
+ onSend: n[5] ||= (e) => g("send-test-email", e),
769
+ onClose: n[6] ||= (t) => e.panelState.testEmailModalOpen.value = !1
770
770
  }, null, 8, [
771
771
  "visible",
772
772
  "allowed-emails",
773
773
  "is-sending",
774
774
  "error"
775
775
  ]),
776
- t.planConfigInstance.hasFeature("saved_modules") && t.config.modules !== !1 ? (a(), _(d(p), {
776
+ e.planConfigInstance.hasFeature("saved_modules") && e.config.modules !== !1 ? (i(), _(x(u), {
777
777
  key: 0,
778
- visible: t.showSaveModuleDialog,
779
- "pre-selected-block-id": t.saveModulePreSelectedBlockId,
778
+ visible: e.showSaveModuleDialog,
779
+ "pre-selected-block-id": e.saveModulePreSelectedBlockId,
780
780
  onClose: n[7] ||= (e) => {
781
- y("update:showSaveModuleDialog", !1), y("update:saveModulePreSelectedBlockId", null);
781
+ g("update:showSaveModuleDialog", !1), g("update:saveModulePreSelectedBlockId", null);
782
782
  },
783
- onSaved: n[8] ||= (e) => t.savedModulesHeadless.loadModules()
784
- }, null, 8, ["visible", "pre-selected-block-id"])) : g("", !0),
785
- t.planConfigInstance.hasFeature("saved_modules") && t.config.modules !== !1 ? (a(), _(d(m), {
783
+ onSaved: n[8] ||= (t) => e.savedModulesHeadless.loadModules()
784
+ }, null, 8, ["visible", "pre-selected-block-id"])) : m("", !0),
785
+ e.planConfigInstance.hasFeature("saved_modules") && e.config.modules !== !1 ? (i(), _(x(f), {
786
786
  key: 1,
787
- visible: t.showModuleBrowserModal,
788
- onClose: n[9] ||= (e) => y("update:showModuleBrowserModal", !1),
789
- onInsert: x
790
- }, null, 8, ["visible"])) : g("", !0),
791
- f(d(v), {
792
- visible: t.panelState.mediaLibraryOpen.value,
793
- accept: t.panelState.mediaLibraryAccept.value,
794
- onSelect: t.mediaLib.handleMediaSelect,
795
- onClose: t.mediaLib.handleMediaLibraryClose
787
+ visible: e.showModuleBrowserModal,
788
+ onClose: n[9] ||= (e) => g("update:showModuleBrowserModal", !1),
789
+ onInsert: y
790
+ }, null, 8, ["visible"])) : m("", !0),
791
+ D(x(h), {
792
+ visible: e.panelState.mediaLibraryOpen.value,
793
+ accept: e.panelState.mediaLibraryAccept.value,
794
+ onSelect: e.mediaLib.handleMediaSelect,
795
+ onClose: e.mediaLib.handleMediaLibraryClose
796
796
  }, null, 8, [
797
797
  "visible",
798
798
  "accept",
@@ -804,20 +804,20 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
804
804
  }), dt = {
805
805
  key: 0,
806
806
  class: "tpl-loading tpl:absolute tpl:inset-0 tpl:z-overlay tpl:flex tpl:flex-col tpl:bg-[var(--tpl-bg)]"
807
- }, 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__ */ s({
807
+ }, 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({
808
808
  __name: "CloudLoadingOverlay",
809
809
  props: { visible: { type: Boolean } },
810
810
  setup(e) {
811
- return (t, r) => e.visible ? (a(), u("div", dt, [r[1] ||= E("<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), b("div", ft, [b("div", pt, [(a(), u(h, null, n(5, (e) => b("div", {
811
+ 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), b("div", ft, [b("div", pt, [(i(), p(w, null, o(5, (e) => b("div", {
812
812
  key: e,
813
813
  class: "tpl-shimmer tpl:size-7 tpl:rounded-[var(--tpl-radius-sm)]"
814
- })), 64))]), r[0] ||= E("<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)])])) : g("", !0);
814
+ })), 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);
815
815
  }
816
816
  }), ht = {
817
817
  key: 0,
818
818
  role: "alert",
819
819
  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)]"
820
- }, 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__ */ s({
820
+ }, 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({
821
821
  __name: "CloudErrorOverlay",
822
822
  props: {
823
823
  error: {},
@@ -826,47 +826,47 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
826
826
  emits: ["retry"],
827
827
  setup(e, { emit: t }) {
828
828
  let n = t, { t: r } = k();
829
- function i(e) {
829
+ function a(e) {
830
830
  return "isUnauthorized" in e && e.isUnauthorized ? r.error.authFailed : "isNotFound" in e && e.isNotFound ? r.error.templateNotFound : r.error.defaultMessage;
831
831
  }
832
832
  function o(e) {
833
833
  return "isNotFound" in e && !!e.isNotFound;
834
834
  }
835
- return (t, s) => e.visible && e.error ? (a(), u("div", ht, [
836
- b("div", gt, [f(d(z), {
835
+ return (t, s) => e.visible && e.error ? (i(), p("div", ht, [
836
+ b("div", gt, [D(x(z), {
837
837
  size: 32,
838
838
  "stroke-width": 1.5,
839
839
  class: "tpl:text-[var(--tpl-danger)]"
840
840
  })]),
841
- b("div", _t, [b("h2", vt, y(d(r).error.title), 1), b("p", yt, y(i(e.error)), 1)]),
842
- o(e.error) ? g("", !0) : (a(), u("button", {
841
+ b("div", _t, [b("h2", vt, C(x(r).error.title), 1), b("p", yt, C(a(e.error)), 1)]),
842
+ o(e.error) ? m("", !0) : (i(), p("button", {
843
843
  key: 0,
844
844
  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)]",
845
845
  onClick: s[0] ||= (e) => n("retry")
846
- }, y(d(r).error.retry), 1))
847
- ])) : g("", !0);
846
+ }, C(x(r).error.retry), 1))
847
+ ])) : m("", !0);
848
848
  }
849
849
  }), xt = {
850
850
  key: 0,
851
851
  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)]"
852
- }, 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__ */ s({
852
+ }, 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({
853
853
  __name: "SnapshotPreviewBanner",
854
854
  props: { visible: { type: Boolean } },
855
855
  emits: ["cancel", "confirm"],
856
856
  setup(e, { emit: t }) {
857
857
  let n = t, { t: r } = k();
858
- return (t, i) => e.visible ? (a(), u("div", xt, [b("div", St, [f(d(_e), {
858
+ return (t, a) => e.visible ? (i(), p("div", xt, [b("div", St, [D(x(_e), {
859
859
  size: 18,
860
860
  "stroke-width": 2,
861
861
  class: "tpl:text-[var(--tpl-primary)]"
862
- }), b("span", null, y(d(r).snapshotPreview.message), 1)]), b("div", Ct, [b("button", {
862
+ }), b("span", null, C(x(r).snapshotPreview.message), 1)]), b("div", Ct, [b("button", {
863
863
  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)]",
864
864
  style: { "background-color": "transparent" },
865
- onClick: i[0] ||= (e) => n("cancel")
866
- }, y(d(r).snapshotPreview.cancel), 1), b("button", {
865
+ onClick: a[0] ||= (e) => n("cancel")
866
+ }, C(x(r).snapshotPreview.cancel), 1), b("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:hover:opacity-90 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
868
- onClick: i[1] ||= (e) => n("confirm")
869
- }, y(d(r).snapshotPreview.restore), 1)])])) : g("", !0);
868
+ onClick: a[1] ||= (e) => n("confirm")
869
+ }, C(x(r).snapshotPreview.restore), 1)])])) : m("", !0);
870
870
  }
871
871
  }), Tt = {
872
872
  key: 0,
@@ -878,14 +878,14 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
878
878
  color: "var(--tpl-text)",
879
879
  border: "1px solid var(--tpl-warning)"
880
880
  }
881
- }, Et = /* @__PURE__ */ s({
881
+ }, Et = /* @__PURE__ */ E({
882
882
  __name: "CollabUndoToast",
883
883
  props: { visible: { type: Boolean } },
884
884
  setup(e) {
885
885
  let { t } = I();
886
- return (n, r) => e.visible ? (a(), u("div", Tt, y(d(t).history.collabWarning), 1)) : g("", !0);
886
+ return (n, r) => e.visible ? (i(), p("div", Tt, C(x(t).history.collabWarning), 1)) : m("", !0);
887
887
  }
888
- }), 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__ */ me(/* @__PURE__ */ s({
888
+ }), 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__ */ me(/* @__PURE__ */ E({
889
889
  __name: "CloudEditor",
890
890
  props: {
891
891
  config: {},
@@ -894,16 +894,16 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
894
894
  fontsManager: {}
895
895
  },
896
896
  emits: ["ready"],
897
- setup(t, { expose: n, emit: s }) {
898
- let l = t;
899
- o(B, l.cloudTranslations);
900
- let h = s, S = e(null), w = Fe({
897
+ setup(e, { expose: r, emit: o }) {
898
+ let l = e;
899
+ a(B, l.cloudTranslations);
900
+ let d = o, f = c(null), g = Fe({
901
901
  config: l.config,
902
902
  translations: l.translations,
903
903
  fontsManager: l.fontsManager,
904
- emit: h,
905
- getCommentsSidebar: () => S.value ? { filterByBlock: S.value.filterCommentsByBlock } : null
906
- }), { isInitializing: T, isAuthReady: E, initError: D, planConfigInstance: k, websocket: A, collaboration: j, isCollaborationEnabled: M, editor: N, core: P, featureFlags: F, mediaLib: ee, exporter: I, testEmail: L, commentsInstance: te, savedModulesHeadless: R, panelState: z, snapshotPreview: V, collabWarning: ne, showSaveModuleDialog: H, showModuleBrowserModal: U, saveModulePreSelectedBlockId: W, setThemeOverrides: K, setUiTheme: re } = w;
904
+ emit: d,
905
+ getCommentsSidebar: () => f.value ? { filterByBlock: f.value.filterCommentsByBlock } : null
906
+ }), { isInitializing: w, isAuthReady: E, initError: O, planConfigInstance: k, websocket: A, collaboration: j, isCollaborationEnabled: M, editor: N, core: P, featureFlags: F, mediaLib: ee, exporter: I, testEmail: L, commentsInstance: te, savedModulesHeadless: R, panelState: z, snapshotPreview: V, collabWarning: ne, showSaveModuleDialog: H, showModuleBrowserModal: U, saveModulePreSelectedBlockId: W, setThemeOverrides: K, setUiTheme: re } = g;
907
907
  async function ie(e) {
908
908
  try {
909
909
  await L.sendTestEmail(e), z.testEmailModalOpen.value = !1;
@@ -925,19 +925,19 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
925
925
  core: P,
926
926
  exporter: I,
927
927
  featureFlags: F,
928
- isDestroyed: w.isDestroyed
928
+ isDestroyed: g.isDestroyed
929
929
  }), Y = Re({
930
- issues: P.accessibilityLint ? P.accessibilityLint.issues : e([]),
930
+ issues: P.accessibilityLint ? P.accessibilityLint.issues : c([]),
931
931
  planConfig: k.config
932
932
  });
933
933
  async function X() {
934
934
  await Y.tryRunSave(() => J.saveTemplate().catch((e) => l.config.onError?.(e)));
935
935
  }
936
- return w.onSaveHook.value = X, v(() => {
937
- w.initialize();
938
- }), i(() => {
939
- w.destroy();
940
- }), n({
936
+ return g.onSaveHook.value = X, t(() => {
937
+ g.initialize();
938
+ }), h(() => {
939
+ g.destroy();
940
+ }), r({
941
941
  getContent: () => N.content.value,
942
942
  setContent: (e) => N.setContent(e),
943
943
  setTheme: re,
@@ -946,12 +946,12 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
946
946
  load: J.loadTemplate,
947
947
  save: J.saveTemplate,
948
948
  sendTestEmail: L.sendTestEmail
949
- }), (e, n) => (a(), u("div", {
950
- class: C(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": d(N).state.darkMode }]),
951
- "data-tpl-theme": d(P).resolvedTheme.value,
952
- style: m(d(P).themeStyles.value)
949
+ }), (t, r) => (i(), p("div", {
950
+ class: u(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": x(N).state.darkMode }]),
951
+ "data-tpl-theme": x(P).resolvedTheme.value,
952
+ style: y(x(P).themeStyles.value)
953
953
  }, [
954
- f(x, {
954
+ D(v, {
955
955
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
956
956
  "enter-from-class": "tpl:opacity-100",
957
957
  "enter-to-class": "tpl:opacity-100",
@@ -959,10 +959,10 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
959
959
  "leave-from-class": "tpl:opacity-100",
960
960
  "leave-to-class": "tpl:opacity-0"
961
961
  }, {
962
- default: r(() => [f(mt, { visible: d(T) || d(N).state.isLoading }, null, 8, ["visible"])]),
962
+ default: s(() => [D(mt, { visible: x(w) || x(N).state.isLoading }, null, 8, ["visible"])]),
963
963
  _: 1
964
964
  }),
965
- f(x, {
965
+ D(v, {
966
966
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
967
967
  "enter-from-class": "tpl:opacity-0",
968
968
  "enter-to-class": "tpl:opacity-100",
@@ -970,10 +970,10 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
970
970
  "leave-from-class": "tpl:opacity-100",
971
971
  "leave-to-class": "tpl:opacity-0"
972
972
  }, {
973
- default: r(() => [f(bt, {
974
- error: d(D),
975
- visible: !!d(D) && !d(T),
976
- onRetry: d(w).initialize
973
+ default: s(() => [D(bt, {
974
+ error: x(O),
975
+ visible: !!x(O) && !x(w),
976
+ onRetry: x(g).initialize
977
977
  }, null, 8, [
978
978
  "error",
979
979
  "visible",
@@ -981,19 +981,19 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
981
981
  ])]),
982
982
  _: 1
983
983
  }),
984
- f(lt, {
985
- editor: d(N),
986
- core: d(P),
987
- "feature-flags": d(F),
988
- "panel-state": d(z),
989
- "snapshot-preview": d(V),
990
- "comments-instance": d(te),
991
- "test-email": d(L),
992
- websocket: d(A),
993
- collaboration: d(j),
994
- "is-collaboration-enabled": d(M),
995
- "is-saving": d(N).state.isSaving || d(F).isSaveExporting.value,
996
- "is-save-disabled": d(N).state.isSaving || d(F).isSaveExporting.value || !d(N).state.isDirty,
984
+ D(lt, {
985
+ editor: x(N),
986
+ core: x(P),
987
+ "feature-flags": x(F),
988
+ "panel-state": x(z),
989
+ "snapshot-preview": x(V),
990
+ "comments-instance": x(te),
991
+ "test-email": x(L),
992
+ websocket: x(A),
993
+ collaboration: x(j),
994
+ "is-collaboration-enabled": x(M),
995
+ "is-saving": x(N).state.isSaving || x(F).isSaveExporting.value,
996
+ "is-save-disabled": x(N).state.isSaving || x(F).isSaveExporting.value || !x(N).state.isDirty,
997
997
  onSave: X
998
998
  }, null, 8, [
999
999
  "editor",
@@ -1009,27 +1009,27 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1009
1009
  "is-saving",
1010
1010
  "is-save-disabled"
1011
1011
  ]),
1012
- f(Je, {
1013
- open: d(Y).modalOpen.value,
1014
- issues: d(Y).blockingIssues.value,
1015
- onCancel: d(Y).cancel,
1016
- onConfirm: d(Y).confirmAndSave
1012
+ D(Je, {
1013
+ open: x(Y).modalOpen.value,
1014
+ issues: x(Y).blockingIssues.value,
1015
+ onCancel: x(Y).cancel,
1016
+ onConfirm: x(Y).confirmAndSave
1017
1017
  }, null, 8, [
1018
1018
  "open",
1019
1019
  "issues",
1020
1020
  "onCancel",
1021
1021
  "onConfirm"
1022
1022
  ]),
1023
- f(wt, {
1024
- visible: d(V).isPreviewingSnapshot.value,
1025
- onCancel: d(V).cancelPreview,
1026
- onConfirm: d(V).confirmRestoreSnapshot
1023
+ D(wt, {
1024
+ visible: x(V).isPreviewingSnapshot.value,
1025
+ onCancel: x(V).cancelPreview,
1026
+ onConfirm: x(V).confirmRestoreSnapshot
1027
1027
  }, null, 8, [
1028
1028
  "visible",
1029
1029
  "onCancel",
1030
1030
  "onConfirm"
1031
1031
  ]),
1032
- f(x, {
1032
+ D(v, {
1033
1033
  "enter-active-class": "tpl:transition-all tpl:duration-200 tpl:ease-out",
1034
1034
  "enter-from-class": "tpl:translate-y-[-8px] tpl:opacity-0",
1035
1035
  "enter-to-class": "tpl:translate-y-0 tpl:opacity-100",
@@ -1037,18 +1037,18 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1037
1037
  "leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
1038
1038
  "leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
1039
1039
  }, {
1040
- default: r(() => [f(Et, { visible: d(ne).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1040
+ default: s(() => [D(Et, { visible: x(ne).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1041
1041
  _: 1
1042
1042
  }),
1043
- c(f(Ee, null, null, 512), [[p, !d(N).state.previewMode]]),
1043
+ n(D(Ee, null, null, 512), [[S, !x(N).state.previewMode]]),
1044
1044
  b("div", {
1045
- class: C(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [d(N).state.previewMode ? "tpl:left-0 tpl:right-0" : d(z).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", d(V).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1045
+ class: u(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [x(N).state.previewMode ? "tpl:left-0 tpl:right-0" : x(z).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", x(V).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1046
1046
  style: {
1047
1047
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
1048
1048
  "background-color": "var(--tpl-canvas-bg)"
1049
1049
  }
1050
- }, [b("div", Ot, [f(x, { name: "tpl-restore-btn" }, {
1051
- default: r(() => [d(P).conditionPreview.hasHiddenBlocks.value ? (a(), u("button", {
1050
+ }, [b("div", Ot, [D(v, { name: "tpl-restore-btn" }, {
1051
+ default: s(() => [x(P).conditionPreview.hasHiddenBlocks.value ? (i(), p("button", {
1052
1052
  key: 0,
1053
1053
  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",
1054
1054
  style: {
@@ -1057,22 +1057,22 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1057
1057
  "border-color": "var(--tpl-warning)",
1058
1058
  "backdrop-filter": "blur(8px)"
1059
1059
  },
1060
- onClick: n[0] ||= (e) => d(P).conditionPreview.reset()
1061
- }, [f(d(be), {
1060
+ onClick: r[0] ||= (e) => x(P).conditionPreview.reset()
1061
+ }, [D(x(be), {
1062
1062
  size: 13,
1063
1063
  "stroke-width": 2
1064
- }), O(" " + y(d(P).t.blockSettings.restoreHiddenBlocks), 1)])) : g("", !0)]),
1064
+ }), T(" " + C(x(P).t.blockSettings.restoreHiddenBlocks), 1)])) : m("", !0)]),
1065
1065
  _: 1
1066
- })]), b("main", kt, [f(Oe, {
1067
- viewport: d(N).state.viewport,
1068
- content: d(N).content.value,
1069
- "selected-block-id": d(N).state.selectedBlockId,
1070
- "dark-mode": d(N).state.darkMode,
1071
- "preview-mode": d(N).state.previewMode,
1072
- "locked-blocks": d(j)?.lockedBlocks.value ?? void 0,
1073
- onSelectBlock: d(N).selectBlock,
1074
- onOpenAiChat: n[1] ||= (e) => d(z).aiChatOpen.value = !0,
1075
- onOpenDesignReference: n[2] ||= (e) => d(z).designReferenceOpen.value = !0
1066
+ })]), b("main", kt, [D(Oe, {
1067
+ viewport: x(N).state.viewport,
1068
+ content: x(N).content.value,
1069
+ "selected-block-id": x(N).state.selectedBlockId,
1070
+ "dark-mode": x(N).state.darkMode,
1071
+ "preview-mode": x(N).state.previewMode,
1072
+ "locked-blocks": x(j)?.lockedBlocks.value ?? void 0,
1073
+ onSelectBlock: x(N).selectBlock,
1074
+ onOpenAiChat: r[1] ||= (e) => x(z).aiChatOpen.value = !0,
1075
+ onOpenDesignReference: r[2] ||= (e) => x(z).designReferenceOpen.value = !0
1076
1076
  }, null, 8, [
1077
1077
  "viewport",
1078
1078
  "content",
@@ -1082,49 +1082,49 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1082
1082
  "locked-blocks",
1083
1083
  "onSelectBlock"
1084
1084
  ])])], 2),
1085
- t.config.branding !== !1 && !d(F).isWhiteLabeled.value ? (a(), _(ke, {
1085
+ e.config.branding !== !1 && !x(F).isWhiteLabeled.value ? (i(), _(ke, {
1086
1086
  key: 0,
1087
- "position-class": [d(N).state.previewMode ? "tpl:left-0 tpl:right-0" : d(z).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1088
- }, null, 8, ["position-class"])) : g("", !0),
1087
+ "position-class": [x(N).state.previewMode ? "tpl:left-0 tpl:right-0" : x(z).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1088
+ }, null, 8, ["position-class"])) : m("", !0),
1089
1089
  b("div", {
1090
1090
  class: "tpl-sr-only",
1091
1091
  role: "status",
1092
1092
  "aria-live": "polite",
1093
1093
  "aria-atomic": "true",
1094
- "aria-label": d(P).t.landmarks.reorderAnnouncements
1095
- }, y(d(P).keyboardReorder.announcement.value), 9, At),
1096
- c(f(Se, {
1097
- "selected-block": d(N).selectedBlock.value,
1098
- settings: d(N).content.value.settings,
1099
- "shifted-left": d(z).rightPanelOpen.value,
1100
- onUpdateBlock: n[3] ||= (e) => d(N).updateBlock(d(N).selectedBlock.value.id, e),
1101
- onDeleteBlock: n[4] ||= (e) => d(P).blockActions.deleteBlock(d(N).selectedBlock.value.id),
1102
- onDuplicateBlock: n[5] ||= (e) => d(P).blockActions.duplicateBlock(d(N).selectedBlock.value),
1103
- onUpdateSettings: d(N).updateSettings
1094
+ "aria-label": x(P).t.landmarks.reorderAnnouncements
1095
+ }, C(x(P).keyboardReorder.announcement.value), 9, At),
1096
+ n(D(Se, {
1097
+ "selected-block": x(N).selectedBlock.value,
1098
+ settings: x(N).content.value.settings,
1099
+ "shifted-left": x(z).rightPanelOpen.value,
1100
+ onUpdateBlock: r[3] ||= (e) => x(N).updateBlock(x(N).selectedBlock.value.id, e),
1101
+ onDeleteBlock: r[4] ||= (e) => x(P).blockActions.deleteBlock(x(N).selectedBlock.value.id),
1102
+ onDuplicateBlock: r[5] ||= (e) => x(P).blockActions.duplicateBlock(x(N).selectedBlock.value),
1103
+ onUpdateSettings: x(N).updateSettings
1104
1104
  }, null, 8, [
1105
1105
  "selected-block",
1106
1106
  "settings",
1107
1107
  "shifted-left",
1108
1108
  "onUpdateSettings"
1109
- ]), [[p, !d(N).state.previewMode]]),
1110
- !d(T) && d(E) ? (a(), _(ut, {
1109
+ ]), [[S, !x(N).state.previewMode]]),
1110
+ !x(w) && x(E) ? (i(), _(ut, {
1111
1111
  key: 1,
1112
1112
  ref_key: "cloudPanelsRef",
1113
- ref: S,
1113
+ ref: f,
1114
1114
  config: l.config,
1115
- editor: d(N),
1116
- core: d(P),
1117
- "panel-state": d(z),
1118
- "plan-config-instance": d(k),
1119
- "test-email": d(L),
1120
- "media-lib": d(ee),
1121
- "saved-modules-headless": d(R),
1122
- "show-save-module-dialog": d(H),
1123
- "save-module-pre-selected-block-id": d(W),
1124
- "show-module-browser-modal": d(U),
1125
- "onUpdate:showSaveModuleDialog": n[6] ||= (e) => H.value = e,
1126
- "onUpdate:saveModulePreSelectedBlockId": n[7] ||= (e) => W.value = e,
1127
- "onUpdate:showModuleBrowserModal": n[8] ||= (e) => U.value = e,
1115
+ editor: x(N),
1116
+ core: x(P),
1117
+ "panel-state": x(z),
1118
+ "plan-config-instance": x(k),
1119
+ "test-email": x(L),
1120
+ "media-lib": x(ee),
1121
+ "saved-modules-headless": x(R),
1122
+ "show-save-module-dialog": x(H),
1123
+ "save-module-pre-selected-block-id": x(W),
1124
+ "show-module-browser-modal": x(U),
1125
+ "onUpdate:showSaveModuleDialog": r[6] ||= (e) => H.value = e,
1126
+ "onUpdate:saveModulePreSelectedBlockId": r[7] ||= (e) => W.value = e,
1127
+ "onUpdate:showModuleBrowserModal": r[8] ||= (e) => U.value = e,
1128
1128
  onSendTestEmail: ie,
1129
1129
  onModuleInsert: q
1130
1130
  }, null, 8, [
@@ -1139,11 +1139,11 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1139
1139
  "show-save-module-dialog",
1140
1140
  "save-module-pre-selected-block-id",
1141
1141
  "show-module-browser-modal"
1142
- ])) : g("", !0)
1142
+ ])) : m("", !0)
1143
1143
  ], 14, Dt));
1144
1144
  }
1145
1145
  }), [["__scopeId", "data-v-b332971f"]]);
1146
1146
  //#endregion
1147
1147
  export { jt as default };
1148
1148
 
1149
- //# sourceMappingURL=CloudEditor-dwzWDF_n.js.map
1149
+ //# sourceMappingURL=CloudEditor-Fg7pQ9IQ.js.map