@templatical/editor 0.6.3 → 0.6.5

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-uXTxJh06.js} +20 -20
  4. package/dist/{cdn/chunks/BlockA11yBadge-DcEZftf6.js → BlockA11yBadge-C0S6kPC4.js} +10 -9
  5. package/dist/{CloudEditor-BCz1ZTYC.js → CloudEditor-_GaYluN7.js} +446 -440
  6. package/dist/{CollaboratorBar-DuPYW5iF.js → CollaboratorBar-C4eXJkXW.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-EDKHLJtb.js} +79 -79
  13. package/dist/{ModulePreviewCanvas-CHdOwV_4.js → ModulePreviewCanvas-MQxat34K.js} +29 -29
  14. package/dist/{NumberWithSuffix-DkXUez9t.js → NumberWithSuffix-Dw8dN1Pt.js} +88 -88
  15. package/dist/{ParagraphEditor-D75wl3BX.js → ParagraphEditor-C8IP9HOZ.js} +218 -218
  16. package/dist/{RichTextEditorContent-DYkIauIk.js → RichTextEditorContent-CK3Om7ES.js} +38 -38
  17. package/dist/{SaveModuleDialog-FZ9lxY7_.js → SaveModuleDialog-Bgu0FVr6.js} +34 -34
  18. package/dist/{SnapshotHistory-BR3eV120.js → SnapshotHistory-aSULEKUJ.js} +33 -33
  19. package/dist/{TemplateScoringPanel-4GTNHej5.js → TemplateScoringPanel-BIAeCAEP.js} +82 -82
  20. package/dist/{TestEmailModal--ue5w9fT.js → TestEmailModal-wcbmmWCs.js} +30 -30
  21. package/dist/{TitleEditor-fStSADI-.js → TitleEditor-21D8_OUQ.js} +67 -67
  22. package/dist/{TplModal-BwSfxIHf.js → TplModal-CINtyB6Y.js} +14 -14
  23. package/dist/{accessibility-e8JYu_zd.js → accessibility-BgUEA-Ai.js} +1 -1
  24. package/dist/{blockTypeIcons-BcTrDjmH.js → blockTypeIcons-DKetBdJx.js} +2 -2
  25. package/dist/bundle-stats.json +6 -6
  26. package/dist/cdn/chunks/{AccessibilityPanel-B6DOjojm.js → AccessibilityPanel-BMSGhaNU.js} +34 -34
  27. package/dist/cdn/chunks/{AccessibilityPanel-B6DOjojm.js.map → AccessibilityPanel-BMSGhaNU.js.map} +1 -1
  28. package/dist/cdn/chunks/{AiFeatureMenu-qEdB2fZJ.js → AiFeatureMenu-hNba-JqQ.js} +16 -16
  29. package/dist/cdn/chunks/{AiFeatureMenu-qEdB2fZJ.js.map → AiFeatureMenu-hNba-JqQ.js.map} +1 -1
  30. package/dist/{BlockA11yBadge-CXDLqkcJ.js → cdn/chunks/BlockA11yBadge-BIR88CvN.js} +11 -12
  31. package/dist/cdn/chunks/{BlockA11yBadge-DcEZftf6.js.map → BlockA11yBadge-BIR88CvN.js.map} +1 -1
  32. package/dist/cdn/chunks/{CloudEditor-D2GsEC_n.js → CloudEditor-D2G2nNpQ.js} +429 -423
  33. package/dist/cdn/chunks/{CloudEditor-D2GsEC_n.js.map → CloudEditor-D2G2nNpQ.js.map} +1 -1
  34. package/dist/cdn/chunks/{CollaboratorBar--nO7TX6b.js → CollaboratorBar-Btzom8dY.js} +20 -20
  35. package/dist/cdn/chunks/{CollaboratorBar--nO7TX6b.js.map → CollaboratorBar-Btzom8dY.js.map} +1 -1
  36. package/dist/cdn/chunks/CountdownBlock-BJSAJlJ1.js +93 -0
  37. package/dist/cdn/chunks/{CountdownBlock-5YdT1uUu.js.map → CountdownBlock-BJSAJlJ1.js.map} +1 -1
  38. package/dist/cdn/chunks/CountdownToolbar-DbknNrIi.js +212 -0
  39. package/dist/cdn/chunks/{CountdownToolbar-DXPXrbAA.js.map → CountdownToolbar-DbknNrIi.js.map} +1 -1
  40. package/dist/cdn/chunks/{ModuleBrowserModal-DxoPp81s.js → ModuleBrowserModal-BvAuW8O5.js} +43 -43
  41. package/dist/cdn/chunks/{ModuleBrowserModal-DxoPp81s.js.map → ModuleBrowserModal-BvAuW8O5.js.map} +1 -1
  42. package/dist/cdn/chunks/{ModulePreviewCanvas-CoLdb4ar.js → ModulePreviewCanvas-CYtt0boo.js} +23 -23
  43. package/dist/cdn/chunks/{ModulePreviewCanvas-CoLdb4ar.js.map → ModulePreviewCanvas-CYtt0boo.js.map} +1 -1
  44. package/dist/cdn/chunks/{NumberWithSuffix-CE3NrZhH.js → NumberWithSuffix-CVfo9ztG.js} +108 -108
  45. package/dist/cdn/chunks/{NumberWithSuffix-CE3NrZhH.js.map → NumberWithSuffix-CVfo9ztG.js.map} +1 -1
  46. package/dist/cdn/chunks/{ParagraphEditor-B6Ygu-Mq.js → ParagraphEditor-DCo58JP8.js} +187 -187
  47. package/dist/cdn/chunks/{ParagraphEditor-B6Ygu-Mq.js.map → ParagraphEditor-DCo58JP8.js.map} +1 -1
  48. package/dist/cdn/chunks/{RichTextEditorContent-DL_y2SrR.js → RichTextEditorContent-BzCThv84.js} +33 -33
  49. package/dist/cdn/chunks/{RichTextEditorContent-DL_y2SrR.js.map → RichTextEditorContent-BzCThv84.js.map} +1 -1
  50. package/dist/cdn/chunks/{SaveModuleDialog-B0TnO_o9.js → SaveModuleDialog-S2Lix1LD.js} +27 -27
  51. package/dist/cdn/chunks/{SaveModuleDialog-B0TnO_o9.js.map → SaveModuleDialog-S2Lix1LD.js.map} +1 -1
  52. package/dist/cdn/chunks/{TitleEditor-BHpfxvwy.js → TitleEditor-CYzAMuUW.js} +66 -66
  53. package/dist/cdn/chunks/{TitleEditor-BHpfxvwy.js.map → TitleEditor-CYzAMuUW.js.map} +1 -1
  54. package/dist/cdn/chunks/{blockTypeIcons-BzzY9_kA.js → blockTypeIcons-DOzUHoor.js} +3 -3
  55. package/dist/cdn/chunks/{blockTypeIcons-BzzY9_kA.js.map → blockTypeIcons-DOzUHoor.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-wafZZ0-_.js} +95 -95
  59. package/dist/cdn/chunks/{extensions-DIxF31tA.js.map → extensions-wafZZ0-_.js.map} +1 -1
  60. package/dist/cdn/chunks/{features-DEMb13KS.js → features-B4tNvoi4.js} +2260 -2267
  61. package/dist/cdn/chunks/features-B4tNvoi4.js.map +1 -0
  62. package/dist/cdn/chunks/{icons-CsLTcirh.js → icons-B5nBFtvb.js} +2 -2
  63. package/dist/cdn/chunks/{icons-CsLTcirh.js.map → icons-B5nBFtvb.js.map} +1 -1
  64. package/dist/cdn/chunks/{media-library-CVaNvhpM.js → media-library-BLaoBxHe.js} +1397 -1397
  65. package/dist/cdn/chunks/{media-library-CVaNvhpM.js.map → media-library-BLaoBxHe.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-D920ZxXf.js} +3 -3
  69. package/dist/cdn/chunks/{quality-BaBfc54_.js.map → quality-D920ZxXf.js.map} +1 -1
  70. package/dist/cdn/chunks/{renderer-CUxvx7ro.js → renderer-Yk30CckU.js} +3 -3
  71. package/dist/cdn/chunks/{renderer-CUxvx7ro.js.map → renderer-Yk30CckU.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-kLJg7Y0m.js} +171 -171
  74. package/dist/cdn/chunks/{src-CRaqN-p8.js.map → src-kLJg7Y0m.js.map} +1 -1
  75. package/dist/cdn/chunks/styles-DrVLif14.js +2944 -0
  76. package/dist/cdn/chunks/styles-DrVLif14.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 +11 -11
  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-CwJQsnSp.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-DLd-5qMg.js +3784 -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-B4tNvoi4.js";
3
+ import { C as be, S as xe } from "./icons-B5nBFtvb.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-DrVLif14.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-Btzom8dY.js")), n = d(() => import("./features-B4tNvoi4.js").then((e) => e.r)), r = d(() => import("./AiFeatureMenu-hNba-JqQ.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,73 +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 () => (await import("./src-CRaqN-p8.js")).MediaLibraryModal), y = r;
725
- function b(e, t, n) {
723
+ setup(e, { expose: t, emit: n }) {
724
+ let r = d(() => import("./features-B4tNvoi4.js").then((e) => e.s)), a = d(() => import("./features-B4tNvoi4.js").then((e) => e.o)), o = d(() => import("./features-B4tNvoi4.js").then((e) => e.a)), s = d(() => import("./features-B4tNvoi4.js").then((e) => e.n)), l = d(() => import("./features-B4tNvoi4.js").then((e) => e.t)), u = d(() => import("./SaveModuleDialog-S2Lix1LD.js")), f = d(() => import("./ModuleBrowserModal-BvAuW8O5.js")), h = d(async () => {
725
+ try {
726
+ return (await import("./src-kLJg7Y0m.js")).MediaLibraryModal;
727
+ } catch {
728
+ throw Error("[Templatical] Cloud media library requires the optional peer dependency '@templatical/media-library'. Please install it.");
729
+ }
730
+ }), g = n;
731
+ function v(e, t, n) {
726
732
  t.history.record(), n.setContent(e), t.conditionPreview.reset();
727
733
  }
728
- function x(e, t) {
729
- y("module-insert", e, t);
734
+ function y(e, t) {
735
+ g("module-insert", e, t);
730
736
  }
731
- let S = e(null);
732
- function C(e) {
733
- S.value?.filterByBlock(e);
737
+ let b = c(null);
738
+ function S(e) {
739
+ b.value?.filterByBlock(e);
734
740
  }
735
- return n({ filterCommentsByBlock: C }), (e, n) => (a(), u(h, null, [
736
- f(d(i), {
737
- visible: t.panelState.aiChatOpen.value,
738
- "on-apply": (e) => b(e, t.core, t.editor),
739
- 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
740
746
  }, null, 8, ["visible", "on-apply"]),
741
- f(d(c), {
742
- visible: t.panelState.scoringPanelOpen.value,
743
- 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
744
750
  }, null, 8, ["visible"]),
745
- f(d(s), {
746
- visible: t.panelState.designReferenceOpen.value,
747
- "has-existing-blocks": t.editor.content.value.blocks.length > 0,
748
- onClose: n[2] ||= (e) => t.panelState.designReferenceOpen.value = !1,
749
- 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)
750
756
  }, null, 8, ["visible", "has-existing-blocks"]),
751
- f(d(o), {
757
+ D(x(a), {
752
758
  ref_key: "commentsSidebar",
753
- ref: S,
754
- visible: t.panelState.commentsOpen.value,
755
- 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
756
762
  }, null, 8, ["visible"]),
757
- f(d(l), {
758
- visible: t.panelState.testEmailModalOpen.value,
759
- "allowed-emails": t.testEmail.allowedEmails.value,
760
- "is-sending": t.testEmail.isSending.value,
761
- error: t.testEmail.error.value,
762
- onSend: n[5] ||= (e) => y("send-test-email", e),
763
- 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
764
770
  }, null, 8, [
765
771
  "visible",
766
772
  "allowed-emails",
767
773
  "is-sending",
768
774
  "error"
769
775
  ]),
770
- 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), {
771
777
  key: 0,
772
- visible: t.showSaveModuleDialog,
773
- "pre-selected-block-id": t.saveModulePreSelectedBlockId,
778
+ visible: e.showSaveModuleDialog,
779
+ "pre-selected-block-id": e.saveModulePreSelectedBlockId,
774
780
  onClose: n[7] ||= (e) => {
775
- y("update:showSaveModuleDialog", !1), y("update:saveModulePreSelectedBlockId", null);
781
+ g("update:showSaveModuleDialog", !1), g("update:saveModulePreSelectedBlockId", null);
776
782
  },
777
- onSaved: n[8] ||= (e) => t.savedModulesHeadless.loadModules()
778
- }, null, 8, ["visible", "pre-selected-block-id"])) : g("", !0),
779
- 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), {
780
786
  key: 1,
781
- visible: t.showModuleBrowserModal,
782
- onClose: n[9] ||= (e) => y("update:showModuleBrowserModal", !1),
783
- onInsert: x
784
- }, null, 8, ["visible"])) : g("", !0),
785
- f(d(v), {
786
- visible: t.panelState.mediaLibraryOpen.value,
787
- accept: t.panelState.mediaLibraryAccept.value,
788
- onSelect: t.mediaLib.handleMediaSelect,
789
- 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
790
796
  }, null, 8, [
791
797
  "visible",
792
798
  "accept",
@@ -798,20 +804,20 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
798
804
  }), dt = {
799
805
  key: 0,
800
806
  class: "tpl-loading tpl:absolute tpl:inset-0 tpl:z-overlay tpl:flex tpl:flex-col tpl:bg-[var(--tpl-bg)]"
801
- }, 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({
802
808
  __name: "CloudLoadingOverlay",
803
809
  props: { visible: { type: Boolean } },
804
810
  setup(e) {
805
- 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", {
806
812
  key: e,
807
813
  class: "tpl-shimmer tpl:size-7 tpl:rounded-[var(--tpl-radius-sm)]"
808
- })), 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);
809
815
  }
810
816
  }), ht = {
811
817
  key: 0,
812
818
  role: "alert",
813
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)]"
814
- }, 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({
815
821
  __name: "CloudErrorOverlay",
816
822
  props: {
817
823
  error: {},
@@ -820,47 +826,47 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
820
826
  emits: ["retry"],
821
827
  setup(e, { emit: t }) {
822
828
  let n = t, { t: r } = k();
823
- function i(e) {
829
+ function a(e) {
824
830
  return "isUnauthorized" in e && e.isUnauthorized ? r.error.authFailed : "isNotFound" in e && e.isNotFound ? r.error.templateNotFound : r.error.defaultMessage;
825
831
  }
826
832
  function o(e) {
827
833
  return "isNotFound" in e && !!e.isNotFound;
828
834
  }
829
- return (t, s) => e.visible && e.error ? (a(), u("div", ht, [
830
- 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), {
831
837
  size: 32,
832
838
  "stroke-width": 1.5,
833
839
  class: "tpl:text-[var(--tpl-danger)]"
834
840
  })]),
835
- b("div", _t, [b("h2", vt, y(d(r).error.title), 1), b("p", yt, y(i(e.error)), 1)]),
836
- 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", {
837
843
  key: 0,
838
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)]",
839
845
  onClick: s[0] ||= (e) => n("retry")
840
- }, y(d(r).error.retry), 1))
841
- ])) : g("", !0);
846
+ }, C(x(r).error.retry), 1))
847
+ ])) : m("", !0);
842
848
  }
843
849
  }), xt = {
844
850
  key: 0,
845
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)]"
846
- }, 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({
847
853
  __name: "SnapshotPreviewBanner",
848
854
  props: { visible: { type: Boolean } },
849
855
  emits: ["cancel", "confirm"],
850
856
  setup(e, { emit: t }) {
851
857
  let n = t, { t: r } = k();
852
- 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), {
853
859
  size: 18,
854
860
  "stroke-width": 2,
855
861
  class: "tpl:text-[var(--tpl-primary)]"
856
- }), 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", {
857
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)]",
858
864
  style: { "background-color": "transparent" },
859
- onClick: i[0] ||= (e) => n("cancel")
860
- }, y(d(r).snapshotPreview.cancel), 1), b("button", {
865
+ onClick: a[0] ||= (e) => n("cancel")
866
+ }, C(x(r).snapshotPreview.cancel), 1), b("button", {
861
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)]",
862
- onClick: i[1] ||= (e) => n("confirm")
863
- }, y(d(r).snapshotPreview.restore), 1)])])) : g("", !0);
868
+ onClick: a[1] ||= (e) => n("confirm")
869
+ }, C(x(r).snapshotPreview.restore), 1)])])) : m("", !0);
864
870
  }
865
871
  }), Tt = {
866
872
  key: 0,
@@ -872,14 +878,14 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
872
878
  color: "var(--tpl-text)",
873
879
  border: "1px solid var(--tpl-warning)"
874
880
  }
875
- }, Et = /* @__PURE__ */ s({
881
+ }, Et = /* @__PURE__ */ E({
876
882
  __name: "CollabUndoToast",
877
883
  props: { visible: { type: Boolean } },
878
884
  setup(e) {
879
885
  let { t } = I();
880
- 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);
881
887
  }
882
- }), 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({
883
889
  __name: "CloudEditor",
884
890
  props: {
885
891
  config: {},
@@ -888,16 +894,16 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
888
894
  fontsManager: {}
889
895
  },
890
896
  emits: ["ready"],
891
- setup(t, { expose: n, emit: s }) {
892
- let l = t;
893
- o(B, l.cloudTranslations);
894
- 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({
895
901
  config: l.config,
896
902
  translations: l.translations,
897
903
  fontsManager: l.fontsManager,
898
- emit: h,
899
- getCommentsSidebar: () => S.value ? { filterByBlock: S.value.filterCommentsByBlock } : null
900
- }), { 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;
901
907
  async function ie(e) {
902
908
  try {
903
909
  await L.sendTestEmail(e), z.testEmailModalOpen.value = !1;
@@ -919,19 +925,19 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
919
925
  core: P,
920
926
  exporter: I,
921
927
  featureFlags: F,
922
- isDestroyed: w.isDestroyed
928
+ isDestroyed: g.isDestroyed
923
929
  }), Y = Re({
924
- issues: P.accessibilityLint ? P.accessibilityLint.issues : e([]),
930
+ issues: P.accessibilityLint ? P.accessibilityLint.issues : c([]),
925
931
  planConfig: k.config
926
932
  });
927
933
  async function X() {
928
934
  await Y.tryRunSave(() => J.saveTemplate().catch((e) => l.config.onError?.(e)));
929
935
  }
930
- return w.onSaveHook.value = X, v(() => {
931
- w.initialize();
932
- }), i(() => {
933
- w.destroy();
934
- }), n({
936
+ return g.onSaveHook.value = X, t(() => {
937
+ g.initialize();
938
+ }), h(() => {
939
+ g.destroy();
940
+ }), r({
935
941
  getContent: () => N.content.value,
936
942
  setContent: (e) => N.setContent(e),
937
943
  setTheme: re,
@@ -940,12 +946,12 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
940
946
  load: J.loadTemplate,
941
947
  save: J.saveTemplate,
942
948
  sendTestEmail: L.sendTestEmail
943
- }), (e, n) => (a(), u("div", {
944
- class: C(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": d(N).state.darkMode }]),
945
- "data-tpl-theme": d(P).resolvedTheme.value,
946
- 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)
947
953
  }, [
948
- f(x, {
954
+ D(v, {
949
955
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
950
956
  "enter-from-class": "tpl:opacity-100",
951
957
  "enter-to-class": "tpl:opacity-100",
@@ -953,10 +959,10 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
953
959
  "leave-from-class": "tpl:opacity-100",
954
960
  "leave-to-class": "tpl:opacity-0"
955
961
  }, {
956
- 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"])]),
957
963
  _: 1
958
964
  }),
959
- f(x, {
965
+ D(v, {
960
966
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
961
967
  "enter-from-class": "tpl:opacity-0",
962
968
  "enter-to-class": "tpl:opacity-100",
@@ -964,10 +970,10 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
964
970
  "leave-from-class": "tpl:opacity-100",
965
971
  "leave-to-class": "tpl:opacity-0"
966
972
  }, {
967
- default: r(() => [f(bt, {
968
- error: d(D),
969
- visible: !!d(D) && !d(T),
970
- onRetry: d(w).initialize
973
+ default: s(() => [D(bt, {
974
+ error: x(O),
975
+ visible: !!x(O) && !x(w),
976
+ onRetry: x(g).initialize
971
977
  }, null, 8, [
972
978
  "error",
973
979
  "visible",
@@ -975,19 +981,19 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
975
981
  ])]),
976
982
  _: 1
977
983
  }),
978
- f(lt, {
979
- editor: d(N),
980
- core: d(P),
981
- "feature-flags": d(F),
982
- "panel-state": d(z),
983
- "snapshot-preview": d(V),
984
- "comments-instance": d(te),
985
- "test-email": d(L),
986
- websocket: d(A),
987
- collaboration: d(j),
988
- "is-collaboration-enabled": d(M),
989
- "is-saving": d(N).state.isSaving || d(F).isSaveExporting.value,
990
- "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,
991
997
  onSave: X
992
998
  }, null, 8, [
993
999
  "editor",
@@ -1003,27 +1009,27 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1003
1009
  "is-saving",
1004
1010
  "is-save-disabled"
1005
1011
  ]),
1006
- f(Je, {
1007
- open: d(Y).modalOpen.value,
1008
- issues: d(Y).blockingIssues.value,
1009
- onCancel: d(Y).cancel,
1010
- 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
1011
1017
  }, null, 8, [
1012
1018
  "open",
1013
1019
  "issues",
1014
1020
  "onCancel",
1015
1021
  "onConfirm"
1016
1022
  ]),
1017
- f(wt, {
1018
- visible: d(V).isPreviewingSnapshot.value,
1019
- onCancel: d(V).cancelPreview,
1020
- onConfirm: d(V).confirmRestoreSnapshot
1023
+ D(wt, {
1024
+ visible: x(V).isPreviewingSnapshot.value,
1025
+ onCancel: x(V).cancelPreview,
1026
+ onConfirm: x(V).confirmRestoreSnapshot
1021
1027
  }, null, 8, [
1022
1028
  "visible",
1023
1029
  "onCancel",
1024
1030
  "onConfirm"
1025
1031
  ]),
1026
- f(x, {
1032
+ D(v, {
1027
1033
  "enter-active-class": "tpl:transition-all tpl:duration-200 tpl:ease-out",
1028
1034
  "enter-from-class": "tpl:translate-y-[-8px] tpl:opacity-0",
1029
1035
  "enter-to-class": "tpl:translate-y-0 tpl:opacity-100",
@@ -1031,18 +1037,18 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1031
1037
  "leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
1032
1038
  "leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
1033
1039
  }, {
1034
- 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"])]),
1035
1041
  _: 1
1036
1042
  }),
1037
- c(f(Ee, null, null, 512), [[p, !d(N).state.previewMode]]),
1043
+ n(D(Ee, null, null, 512), [[S, !x(N).state.previewMode]]),
1038
1044
  b("div", {
1039
- 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"]]),
1040
1046
  style: {
1041
1047
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
1042
1048
  "background-color": "var(--tpl-canvas-bg)"
1043
1049
  }
1044
- }, [b("div", Ot, [f(x, { name: "tpl-restore-btn" }, {
1045
- 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", {
1046
1052
  key: 0,
1047
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",
1048
1054
  style: {
@@ -1051,22 +1057,22 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1051
1057
  "border-color": "var(--tpl-warning)",
1052
1058
  "backdrop-filter": "blur(8px)"
1053
1059
  },
1054
- onClick: n[0] ||= (e) => d(P).conditionPreview.reset()
1055
- }, [f(d(be), {
1060
+ onClick: r[0] ||= (e) => x(P).conditionPreview.reset()
1061
+ }, [D(x(be), {
1056
1062
  size: 13,
1057
1063
  "stroke-width": 2
1058
- }), O(" " + y(d(P).t.blockSettings.restoreHiddenBlocks), 1)])) : g("", !0)]),
1064
+ }), T(" " + C(x(P).t.blockSettings.restoreHiddenBlocks), 1)])) : m("", !0)]),
1059
1065
  _: 1
1060
- })]), b("main", kt, [f(Oe, {
1061
- viewport: d(N).state.viewport,
1062
- content: d(N).content.value,
1063
- "selected-block-id": d(N).state.selectedBlockId,
1064
- "dark-mode": d(N).state.darkMode,
1065
- "preview-mode": d(N).state.previewMode,
1066
- "locked-blocks": d(j)?.lockedBlocks.value ?? void 0,
1067
- onSelectBlock: d(N).selectBlock,
1068
- onOpenAiChat: n[1] ||= (e) => d(z).aiChatOpen.value = !0,
1069
- 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
1070
1076
  }, null, 8, [
1071
1077
  "viewport",
1072
1078
  "content",
@@ -1076,49 +1082,49 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1076
1082
  "locked-blocks",
1077
1083
  "onSelectBlock"
1078
1084
  ])])], 2),
1079
- t.config.branding !== !1 && !d(F).isWhiteLabeled.value ? (a(), _(ke, {
1085
+ e.config.branding !== !1 && !x(F).isWhiteLabeled.value ? (i(), _(ke, {
1080
1086
  key: 0,
1081
- "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]"]
1082
- }, 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),
1083
1089
  b("div", {
1084
1090
  class: "tpl-sr-only",
1085
1091
  role: "status",
1086
1092
  "aria-live": "polite",
1087
1093
  "aria-atomic": "true",
1088
- "aria-label": d(P).t.landmarks.reorderAnnouncements
1089
- }, y(d(P).keyboardReorder.announcement.value), 9, At),
1090
- c(f(Se, {
1091
- "selected-block": d(N).selectedBlock.value,
1092
- settings: d(N).content.value.settings,
1093
- "shifted-left": d(z).rightPanelOpen.value,
1094
- onUpdateBlock: n[3] ||= (e) => d(N).updateBlock(d(N).selectedBlock.value.id, e),
1095
- onDeleteBlock: n[4] ||= (e) => d(P).blockActions.deleteBlock(d(N).selectedBlock.value.id),
1096
- onDuplicateBlock: n[5] ||= (e) => d(P).blockActions.duplicateBlock(d(N).selectedBlock.value),
1097
- 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
1098
1104
  }, null, 8, [
1099
1105
  "selected-block",
1100
1106
  "settings",
1101
1107
  "shifted-left",
1102
1108
  "onUpdateSettings"
1103
- ]), [[p, !d(N).state.previewMode]]),
1104
- !d(T) && d(E) ? (a(), _(ut, {
1109
+ ]), [[S, !x(N).state.previewMode]]),
1110
+ !x(w) && x(E) ? (i(), _(ut, {
1105
1111
  key: 1,
1106
1112
  ref_key: "cloudPanelsRef",
1107
- ref: S,
1113
+ ref: f,
1108
1114
  config: l.config,
1109
- editor: d(N),
1110
- core: d(P),
1111
- "panel-state": d(z),
1112
- "plan-config-instance": d(k),
1113
- "test-email": d(L),
1114
- "media-lib": d(ee),
1115
- "saved-modules-headless": d(R),
1116
- "show-save-module-dialog": d(H),
1117
- "save-module-pre-selected-block-id": d(W),
1118
- "show-module-browser-modal": d(U),
1119
- "onUpdate:showSaveModuleDialog": n[6] ||= (e) => H.value = e,
1120
- "onUpdate:saveModulePreSelectedBlockId": n[7] ||= (e) => W.value = e,
1121
- "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,
1122
1128
  onSendTestEmail: ie,
1123
1129
  onModuleInsert: q
1124
1130
  }, null, 8, [
@@ -1133,11 +1139,11 @@ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1133
1139
  "show-save-module-dialog",
1134
1140
  "save-module-pre-selected-block-id",
1135
1141
  "show-module-browser-modal"
1136
- ])) : g("", !0)
1142
+ ])) : m("", !0)
1137
1143
  ], 14, Dt));
1138
1144
  }
1139
1145
  }), [["__scopeId", "data-v-b332971f"]]);
1140
1146
  //#endregion
1141
1147
  export { jt as default };
1142
1148
 
1143
- //# sourceMappingURL=CloudEditor-D2GsEC_n.js.map
1149
+ //# sourceMappingURL=CloudEditor-D2G2nNpQ.js.map