@templatical/editor 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/{AiChatSidebar-B0-U5-sb.js → AiChatSidebar-BIKvYREk.js} +57 -56
  2. package/dist/{AiFeatureMenu-DxDwLS8B.js → AiFeatureMenu-QbD82crt.js} +23 -23
  3. package/dist/{BlockIssueBadge-C-EPqWsh.js → BlockIssueBadge-B3xVgMTh.js} +11 -11
  4. package/dist/CloudEditor-DptuSf7A.js +1234 -0
  5. package/dist/{CollaboratorBar-DgwjisX2.js → CollaboratorBar-DrA_K69w.js} +20 -20
  6. package/dist/{CommentsSidebar-CpRLN40c.js → CommentsSidebar-D_tSGvTX.js} +158 -157
  7. package/dist/CountdownBlock-apiYUhkQ.js +92 -0
  8. package/dist/CountdownToolbar-CS0axcjz.js +210 -0
  9. package/dist/{DesignReferenceSidebar-BgPDbOsl.js → DesignReferenceSidebar-DWYK9nTk.js} +58 -57
  10. package/dist/{IssuesPanel-I0z6k6-H.js → IssuesPanel-CR1MPaDE.js} +40 -40
  11. package/dist/{LoadingTrack-C7mGWPHS.js → LoadingTrack-DsecR8Rw.js} +1 -1
  12. package/dist/MergeTagSuggestion-CH2SUxBo.js +1327 -0
  13. package/dist/ModuleBrowserModal-D45rBj5C.js +202 -0
  14. package/dist/{ModulePreviewCanvas-Dni9kK4j.js → ModulePreviewCanvas-BiQ6B2-l.js} +29 -29
  15. package/dist/{NumberWithSuffix-D3fdj0iO.js → NumberWithSuffix-CrA6quxx.js} +143 -142
  16. package/dist/ParagraphEditor-1NaUJpZO.js +721 -0
  17. package/dist/{RichTextEditorContent-Q5altsx1.js → RichTextEditorContent-BqLHIZY7.js} +45 -44
  18. package/dist/{SaveModuleDialog-C38VqN2T.js → SaveModuleDialog-B0sPOTgO.js} +38 -37
  19. package/dist/{SnapshotHistory-ByloTpwh.js → SnapshotHistory-DslVzmSb.js} +34 -33
  20. package/dist/{TemplateScoringPanel-CUxiPtEf.js → TemplateScoringPanel-CZ62rGHz.js} +83 -82
  21. package/dist/{TestEmailModal-BvZBMBad.js → TestEmailModal-DWGniJVu.js} +22 -21
  22. package/dist/TitleEditor-D4t_gZZJ.js +193 -0
  23. package/dist/{TplModal-BYb-X5Bj.js → TplModal-Br2VG6cn.js} +14 -13
  24. package/dist/{blockTypeIcons-CyAom3iI.js → blockTypeIcons-CXhCS5WV.js} +5 -5
  25. package/dist/bundle-stats.json +8 -8
  26. package/dist/cdn/chunks/{AiFeatureMenu-BSoy-SoF.js → AiFeatureMenu-3Slo_LGA.js} +8 -8
  27. package/dist/cdn/chunks/{AiFeatureMenu-BSoy-SoF.js.map → AiFeatureMenu-3Slo_LGA.js.map} +1 -1
  28. package/dist/cdn/chunks/{BlockIssueBadge-BQDUuJxy.js → BlockIssueBadge-BxwEiiF3.js} +5 -5
  29. package/dist/cdn/chunks/{BlockIssueBadge-BQDUuJxy.js.map → BlockIssueBadge-BxwEiiF3.js.map} +1 -1
  30. package/dist/cdn/chunks/{CloudEditor-BZuzsQOZ.js → CloudEditor-DFIFWD9G.js} +163 -161
  31. package/dist/cdn/chunks/CloudEditor-DFIFWD9G.js.map +1 -0
  32. package/dist/cdn/chunks/{CollaboratorBar-DUpSrtDr.js → CollaboratorBar-Cu3vuN66.js} +4 -4
  33. package/dist/cdn/chunks/{CollaboratorBar-DUpSrtDr.js.map → CollaboratorBar-Cu3vuN66.js.map} +1 -1
  34. package/dist/cdn/chunks/{CountdownBlock-DChGTAsH.js → CountdownBlock-BEVAJQtQ.js} +3 -3
  35. package/dist/cdn/chunks/{CountdownBlock-DChGTAsH.js.map → CountdownBlock-BEVAJQtQ.js.map} +1 -1
  36. package/dist/cdn/chunks/{CountdownToolbar-C6gX2SJr.js → CountdownToolbar-CI2sQZv5.js} +4 -4
  37. package/dist/cdn/chunks/{CountdownToolbar-C6gX2SJr.js.map → CountdownToolbar-CI2sQZv5.js.map} +1 -1
  38. package/dist/cdn/chunks/{IssuesPanel-Bo1uhdSe.js → IssuesPanel-BdeDoTcn.js} +11 -11
  39. package/dist/cdn/chunks/{IssuesPanel-Bo1uhdSe.js.map → IssuesPanel-BdeDoTcn.js.map} +1 -1
  40. package/dist/cdn/chunks/MergeTagSuggestion-BsCAo4Co.js +213 -0
  41. package/dist/cdn/chunks/MergeTagSuggestion-BsCAo4Co.js.map +1 -0
  42. package/dist/cdn/chunks/{ModuleBrowserModal-a-tZRCcD.js → ModuleBrowserModal-Dz-I5zfj.js} +11 -8
  43. package/dist/cdn/chunks/{ModuleBrowserModal-a-tZRCcD.js.map → ModuleBrowserModal-Dz-I5zfj.js.map} +1 -1
  44. package/dist/cdn/chunks/{ModulePreviewCanvas-Bm6k0Op0.js → ModulePreviewCanvas-BfinyuAN.js} +21 -21
  45. package/dist/cdn/chunks/{ModulePreviewCanvas-Bm6k0Op0.js.map → ModulePreviewCanvas-BfinyuAN.js.map} +1 -1
  46. package/dist/cdn/chunks/{NumberWithSuffix-HTbuD3VJ.js → NumberWithSuffix-CDjEa08X.js} +4 -4
  47. package/dist/cdn/chunks/{NumberWithSuffix-HTbuD3VJ.js.map → NumberWithSuffix-CDjEa08X.js.map} +1 -1
  48. package/dist/cdn/chunks/{ParagraphEditor-pGrfSccu.js → ParagraphEditor-B3fG0vge.js} +130 -110
  49. package/dist/cdn/chunks/ParagraphEditor-B3fG0vge.js.map +1 -0
  50. package/dist/cdn/chunks/{RichTextEditorContent-D7XZix_1.js → RichTextEditorContent-C6YPCp9j.js} +4 -4
  51. package/dist/cdn/chunks/{RichTextEditorContent-D7XZix_1.js.map → RichTextEditorContent-C6YPCp9j.js.map} +1 -1
  52. package/dist/cdn/chunks/{SaveModuleDialog-C9PQ9x6j.js → SaveModuleDialog-C6UIIVAM.js} +6 -6
  53. package/dist/cdn/chunks/{SaveModuleDialog-C9PQ9x6j.js.map → SaveModuleDialog-C6UIIVAM.js.map} +1 -1
  54. package/dist/cdn/chunks/{TitleEditor-BvFbL16O.js → TitleEditor-BiZbLYF1.js} +62 -46
  55. package/dist/cdn/chunks/TitleEditor-BiZbLYF1.js.map +1 -0
  56. package/dist/cdn/chunks/blockTypeIcons-BernVG06.js +22 -0
  57. package/dist/cdn/chunks/{blockTypeIcons-Kd1MT0u8.js.map → blockTypeIcons-BernVG06.js.map} +1 -1
  58. package/dist/{de-C2wOXoxs.js → cdn/chunks/de-LsV0u1tP.js} +19 -1
  59. package/dist/cdn/chunks/de-LsV0u1tP.js.map +1 -0
  60. package/dist/cdn/chunks/{draggable-Bci-fq8y.js → draggable-kG-D5Xsm.js} +19 -10
  61. package/dist/cdn/chunks/draggable-kG-D5Xsm.js.map +1 -0
  62. package/dist/cdn/chunks/{en-dR7zfNC3.js → en-Bb8X1bOs.js} +18 -2
  63. package/dist/cdn/chunks/en-Bb8X1bOs.js.map +1 -0
  64. package/dist/cdn/chunks/extensions-Drp8UDc6.js +421 -0
  65. package/dist/cdn/chunks/extensions-Drp8UDc6.js.map +1 -0
  66. package/dist/cdn/chunks/{features-DU6lA8l1.js → features-Dpczf9Su.js} +1171 -994
  67. package/dist/cdn/chunks/features-Dpczf9Su.js.map +1 -0
  68. package/dist/cdn/chunks/{icons-BjHUZZyJ.js → icons-CuxnJiGQ.js} +170 -164
  69. package/dist/cdn/chunks/icons-CuxnJiGQ.js.map +1 -0
  70. package/dist/cdn/chunks/{liquid.browser-DKKBzRQu.js → liquid.browser-BJOEu6Cg.js} +693 -678
  71. package/dist/cdn/chunks/liquid.browser-BJOEu6Cg.js.map +1 -0
  72. package/dist/cdn/chunks/{media-library-Byelliig.js → media-library-CiYl_BO7.js} +556 -554
  73. package/dist/cdn/chunks/{media-library-Byelliig.js.map → media-library-CiYl_BO7.js.map} +1 -1
  74. package/dist/cdn/chunks/{pt-BR-BZ86xqK6.js → pt-BR-BwJY_cvb.js} +18 -2
  75. package/dist/cdn/chunks/pt-BR-BwJY_cvb.js.map +1 -0
  76. package/dist/cdn/chunks/{pusher-BICWUP2j.js → pusher-CIwiKF8H.js} +9 -6
  77. package/dist/cdn/chunks/{pusher-BICWUP2j.js.map → pusher-CIwiKF8H.js.map} +1 -1
  78. package/dist/cdn/chunks/quality-CNjGxBG0.js +2176 -0
  79. package/dist/cdn/chunks/{quality-DNnYAntR.js.map → quality-CNjGxBG0.js.map} +1 -1
  80. package/dist/cdn/chunks/{renderer-CZKO-Tav.js → renderer-CFkg8h-K.js} +40 -31
  81. package/dist/cdn/chunks/renderer-CFkg8h-K.js.map +1 -0
  82. package/dist/cdn/chunks/{src-DsqSXXjk.js → src-DRpKu4Dy.js} +11 -11
  83. package/dist/cdn/chunks/{src-DsqSXXjk.js.map → src-DRpKu4Dy.js.map} +1 -1
  84. package/dist/cdn/chunks/styles-B7wryV0l.js +3943 -0
  85. package/dist/cdn/chunks/styles-B7wryV0l.js.map +1 -0
  86. package/dist/cdn/chunks/{tiptap-CwScfbsM.js → tiptap-DF9PEiqH.js} +5429 -5373
  87. package/dist/cdn/chunks/tiptap-DF9PEiqH.js.map +1 -0
  88. package/dist/cdn/editor.css +1 -1
  89. package/dist/cdn/editor.js +117 -115
  90. package/dist/cdn/editor.js.map +1 -1
  91. package/dist/{check-BRzXxFHr.js → check-rl7ok6uJ.js} +1 -1
  92. package/dist/{chevron-down-DmEgzmYT.js → chevron-down-BKe__NOD.js} +1 -1
  93. package/dist/{circle-alert-BStvZr3O.js → circle-alert-C8xmpMsK.js} +1 -1
  94. package/dist/{clock-Blwp_1R6.js → clock-BW4JuDCN.js} +1 -1
  95. package/dist/{cloud-_olro76D.js → cloud-BQusL53H.js} +208 -208
  96. package/dist/createLucideIcon-Dx-EjR9r.js +43 -0
  97. package/dist/{cdn/chunks/de-C2wOXoxs.js → de-LsV0u1tP.js} +17 -3
  98. package/dist/{dist-BlG7k25W.js → dist-B5Sov3sS.js} +7 -7
  99. package/dist/dist-BEWiuOMi.js +251 -0
  100. package/dist/{dist-b7Ak-CuM.js → dist-BFmE-7hB.js} +2 -2
  101. package/dist/{dist-o73iaGqy.js → dist-BMoa33wT.js} +2 -2
  102. package/dist/{dist-BctFrpeA.js → dist-BibU4HNl.js} +74 -65
  103. package/dist/{dist-D6x1cQeh.js → dist-BsCGIDSt.js} +103 -102
  104. package/dist/dist-CNLKj9wa.js +5 -0
  105. package/dist/{dist-DULfKmTh.js → dist-CNXDNYQn.js} +729 -695
  106. package/dist/{dist-412xXefB.js → dist-COG3IdPK.js} +3 -3
  107. package/dist/{dist-Cz79qrLL.js → dist-CQZxDvFw.js} +3 -3
  108. package/dist/{dist-BwgjpLfr.js → dist-CRsjOQM-.js} +2 -2
  109. package/dist/dist-CTT6WYJ6.js +134 -0
  110. package/dist/dist-Cqa6aeAJ.js +5 -0
  111. package/dist/{dist-BCQZZUE9.js → dist-SXJJ2v41.js} +2 -2
  112. package/dist/{dist-DhKTdU52.js → dist-itdjZraK.js} +1445 -1420
  113. package/dist/{en-dR7zfNC3.js → en-Bb8X1bOs.js} +17 -1
  114. package/dist/extensions-DwaZAqm6.js +423 -0
  115. package/dist/{image-up-BFPbw_Zq.js → image-up-BwBCmQ4P.js} +1 -1
  116. package/dist/index.d.ts +17 -0
  117. package/dist/{info-B_qLEBN2.js → info-TCn7uWR5.js} +1 -1
  118. package/dist/keys-Cv8-8GsD.js +10 -0
  119. package/dist/{liquid.browser-CVjP5Mex.js → liquid.browser-DZLtv26k.js} +692 -677
  120. package/dist/{list-checks-CGg7JxPm.js → list-checks-CSrOWNgq.js} +1 -1
  121. package/dist/{loader-circle-CDF8eR_Q.js → loader-circle-BLmicnPG.js} +1 -1
  122. package/dist/{message-circle-C3cHsCJl.js → message-circle-C9hHMQCI.js} +1 -1
  123. package/dist/{pt-BR-BZ86xqK6.js → pt-BR-BwJY_cvb.js} +17 -1
  124. package/dist/{refresh-cw-Butml7Q4.js → refresh-cw-D1JQ1LNa.js} +1 -1
  125. package/dist/runtime-dom.esm-bundler-BzuoCyNp.js +523 -0
  126. package/dist/scan-line-DgijVq9y.js +31 -0
  127. package/dist/{send-k7npFJNO.js → send-DjPdq69F.js} +1 -1
  128. package/dist/{shield-check-CV6GbmCu.js → shield-check-Bqluu8FS.js} +1 -1
  129. package/dist/{sparkles-C965Xop4.js → sparkles-M4azPVSP.js} +1 -1
  130. package/dist/style.css +1 -1
  131. package/dist/styles-D7fQ7f_1.js +4164 -0
  132. package/dist/templatical-editor.js +155 -152
  133. package/dist/{text-align-start-Bxnps8fH.js → text-align-start-CMya5pCQ.js} +11 -11
  134. package/dist/{trash-2-DpGb7fIt.js → trash-2-C-81rkLS.js} +1 -1
  135. package/dist/{triangle-alert-BKYElAwz.js → triangle-alert-BuRWnynk.js} +1 -1
  136. package/dist/{upload-BF7sxd1_.js → upload-CWBIoLd4.js} +1 -1
  137. package/dist/{useAliveFlag-BinvbqQR.js → useAliveFlag-CECL_OUb.js} +1 -1
  138. package/dist/{useCloudI18n-L3H2XvdW.js → useCloudI18n-AKCy98qD.js} +2 -2
  139. package/dist/{useEditorCore-DKYZ7aKk.js → useEditorCore-vcWLdnjN.js} +1480 -1310
  140. package/dist/{useI18n-CTs_bP9d.js → useI18n-C-TDeJBt.js} +2 -2
  141. package/dist/{useMergeTag-e3RSY-s3.js → useMergeTag-DSrBY0-2.js} +6 -6
  142. package/dist/usePopoverRoot-DKUDnr55.js +8 -0
  143. package/dist/{vue.runtime.esm-bundler-B2k01iQh.js → vue.runtime.esm-bundler-l0XAqiyv.js} +639 -1151
  144. package/dist/{x-CGjkjdKK.js → x-CQSvXnGR.js} +1 -1
  145. package/package.json +27 -27
  146. package/dist/CloudEditor-DaEfipBn.js +0 -1230
  147. package/dist/CountdownBlock-DO9fziwf.js +0 -92
  148. package/dist/CountdownToolbar-BeII06yJ.js +0 -210
  149. package/dist/ModuleBrowserModal-DsZRr87F.js +0 -198
  150. package/dist/ParagraphEditor-CZ-cmhX3.js +0 -700
  151. package/dist/TitleEditor-DbNOcvhR.js +0 -177
  152. package/dist/cdn/chunks/CloudEditor-BZuzsQOZ.js.map +0 -1
  153. package/dist/cdn/chunks/ParagraphEditor-pGrfSccu.js.map +0 -1
  154. package/dist/cdn/chunks/TitleEditor-BvFbL16O.js.map +0 -1
  155. package/dist/cdn/chunks/blockTypeIcons-Kd1MT0u8.js +0 -22
  156. package/dist/cdn/chunks/de-C2wOXoxs.js.map +0 -1
  157. package/dist/cdn/chunks/draggable-Bci-fq8y.js.map +0 -1
  158. package/dist/cdn/chunks/en-dR7zfNC3.js.map +0 -1
  159. package/dist/cdn/chunks/extensions-CuUjSmuA.js +0 -605
  160. package/dist/cdn/chunks/extensions-CuUjSmuA.js.map +0 -1
  161. package/dist/cdn/chunks/features-DU6lA8l1.js.map +0 -1
  162. package/dist/cdn/chunks/icons-BjHUZZyJ.js.map +0 -1
  163. package/dist/cdn/chunks/liquid.browser-DKKBzRQu.js.map +0 -1
  164. package/dist/cdn/chunks/pt-BR-BZ86xqK6.js.map +0 -1
  165. package/dist/cdn/chunks/quality-DNnYAntR.js +0 -2176
  166. package/dist/cdn/chunks/renderer-CZKO-Tav.js.map +0 -1
  167. package/dist/cdn/chunks/styles-DiAdtiz9.js +0 -3428
  168. package/dist/cdn/chunks/styles-DiAdtiz9.js.map +0 -1
  169. package/dist/cdn/chunks/tiptap-CwScfbsM.js.map +0 -1
  170. package/dist/createLucideIcon-CmPAC-gt.js +0 -43
  171. package/dist/dist-BNEdeWub.js +0 -5
  172. package/dist/dist-Cgry6fNv.js +0 -382
  173. package/dist/dist-u0iIJH3V.js +0 -5
  174. package/dist/extensions-XPlNAKIL.js +0 -1720
  175. package/dist/keys-mFiJ5N0_.js +0 -10
  176. package/dist/scan-line-XYEqim_E.js +0 -25
  177. package/dist/styles-D0RCAWhB.js +0 -3647
  178. package/dist/usePopoverRoot-DVh7NY1q.js +0 -8
@@ -1,17 +1,17 @@
1
- import { $ as e, A as t, H as n, J as r, M as i, N as a, P as o, V as s, Z as c, _ as l, b as u, ct as d, f, g as p, h as m, it as h, j as g, l as _, m as v, n as y, ot as b, p as x, s as S, st as C, u as w, v as T, x as E, y as D, z as O } from "./draggable-Bci-fq8y.js";
2
- import { $t as ee, A as k, At as A, Dt as j, E as M, Ht as te, It as N, Lt as P, Ot as F, Pt as ne, Q as re, S as I, Tn as L, Ut as R, Wn as z, Wt as ie, Y as B, _ as V, b as H, c as ae, d as U, f as W, ft as G, g as oe, gn as K, gt as q, h as se, it as J, jn as Y, jt as X, kt as Z, l as Q, m as ce, nn as le, nt as $, p as ue, s as de, sn as fe, tn as pe, u as me, v as he, wt as ge, x as _e, y as ve, zt as ye } from "./features-DU6lA8l1.js";
3
- import { _ as be, v as xe } from "./icons-BjHUZZyJ.js";
4
- import { a as Se, c as Ce, d as we, i as Te, l as Ee, n as De, o as Oe, r as ke, s as Ae, t as je, u as Me } from "./styles-DiAdtiz9.js";
5
- import { d as Ne } from "./styleConstants-lGobwiLH.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, b as u, ct as d, f, g as p, h as m, it as h, j as g, l as _, m as v, n as y, ot as b, p as x, s as S, st as C, u as w, v as T, x as E, y as D, z as O } from "./draggable-kG-D5Xsm.js";
2
+ import { $ as ee, A as k, An as te, Bt as A, E as j, Ft as M, Gt as ne, In as N, Lt as P, Mt as F, Ot as I, Rt as re, S as L, Ut as ie, Wt as R, Y as z, Yn as B, _ as V, at as H, b as ae, bt as U, c as W, d as G, f as K, ft as q, g as oe, h as se, ht as J, in as ce, kt as Y, l as X, lt as Z, m as le, p as ue, rn as de, rt as Q, s as fe, tn as pe, u as me, un as he, v as ge, x as _e, y as ve, yn as ye, yt as be } from "./features-Dpczf9Su.js";
3
+ import { S as xe, x as Se } from "./icons-CuxnJiGQ.js";
4
+ import { a as Ce, c as we, d as Te, f as Ee, i as De, l as Oe, n as ke, o as Ae, r as je, s as Me, t as Ne, u as Pe } from "./styles-B7wryV0l.js";
5
+ import { d as $ } from "./styleConstants-lGobwiLH.js";
6
6
  //#region src/cloud/composables/useSnapshotPreview.ts
7
- function Pe(t) {
7
+ function Fe(t) {
8
8
  let { authManager: n, editor: i, history: a, conditionPreview: o, autoSave: s, onError: l } = t, u = e(null), d = c(null), p = c(null), m = !1;
9
9
  r(() => {
10
10
  m = !0;
11
11
  });
12
12
  let h = f(() => d.value !== null), g = f(() => u.value?.snapshots.value ?? []), _ = f(() => u.value?.isLoading.value ?? !1), v = f(() => u.value?.isRestoring.value ?? !1);
13
13
  function y() {
14
- i.state.template?.id && !u.value && (u.value = W({
14
+ i.state.template?.id && !u.value && (u.value = K({
15
15
  authManager: n,
16
16
  templateId: i.state.template.id,
17
17
  onRestore: b,
@@ -63,7 +63,7 @@ function Pe(t) {
63
63
  }
64
64
  //#endregion
65
65
  //#region src/cloud/composables/useCloudPanelState.ts
66
- function Fe() {
66
+ function Ie() {
67
67
  let e = c(null), t = f({
68
68
  get: () => e.value === "ai-chat",
69
69
  set: (t) => e.value = t ? "ai-chat" : null
@@ -86,7 +86,7 @@ function Fe() {
86
86
  function g(t) {
87
87
  l.value = !1, e.value = e.value === t ? null : t;
88
88
  }
89
- return fe(u, () => {
89
+ return he(u, () => {
90
90
  l.value = !1;
91
91
  }), {
92
92
  activePanel: e,
@@ -108,10 +108,10 @@ function Fe() {
108
108
  }
109
109
  //#endregion
110
110
  //#region src/cloud/composables/useCollabUndoWarning.ts
111
- function Ie(e) {
112
- let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = c(!1), a = c(!1), { start: o } = K(() => {
111
+ function Le(e) {
112
+ let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = c(!1), a = c(!1), { start: o } = ye(() => {
113
113
  a.value = !1;
114
- }, z, { immediate: !1 });
114
+ }, B, { immediate: !1 });
115
115
  function s() {
116
116
  i.value || !t.value || n() === 0 || !r.value || (i.value = !0, a.value = !0, o());
117
117
  }
@@ -122,8 +122,8 @@ function Ie(e) {
122
122
  }
123
123
  //#endregion
124
124
  //#region src/cloud/composables/useCloudFeatureFlags.ts
125
- function Le(e) {
126
- 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 } = K(() => {
125
+ function Re(e) {
126
+ 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 } = ye(() => {
127
127
  p.value = "idle";
128
128
  }, 3e3, { immediate: !1 });
129
129
  return {
@@ -141,7 +141,7 @@ function Le(e) {
141
141
  }
142
142
  //#endregion
143
143
  //#region src/cloud/composables/useCloudMediaLibrary.ts
144
- function Re(e) {
144
+ function ze(e) {
145
145
  let { onRequestMedia: t, mediaLibraryOpen: n, mediaLibraryAccept: i, authManager: a, getMediaConfig: o, onError: s } = e, c = null;
146
146
  function l(e) {
147
147
  return {
@@ -175,7 +175,7 @@ function Re(e) {
175
175
  let t = f(e);
176
176
  if (t) return s?.(t), null;
177
177
  try {
178
- let { MediaApiClient: t } = await import("./src-DsqSXXjk.js");
178
+ let { MediaApiClient: t } = await import("./src-DRpKu4Dy.js");
179
179
  return l(await new t(a).uploadMedia(e));
180
180
  } catch (e) {
181
181
  return s?.(e), null;
@@ -203,11 +203,11 @@ function Re(e) {
203
203
  }
204
204
  //#endregion
205
205
  //#region src/cloud/composables/useCloudInitialization.ts
206
- function ze(e) {
207
- let { config: t, translations: n, fontsManager: r, emit: i, getCommentsSidebar: o } = e, s = c(!0), l = c(!1), u = c(null), d = !1, p = { value: null }, m = null, h = null, g = new M({
206
+ function Be(e) {
207
+ let { config: t, translations: n, fontsManager: r, emit: i, getCommentsSidebar: o } = e, s = c(!0), l = c(!1), u = c(null), d = !1, p = { value: null }, m = null, h = null, g = new j({
208
208
  ...t.auth,
209
209
  onError: t.onError
210
- }), _ = Q({
210
+ }), _ = X({
211
211
  authManager: g,
212
212
  onError: t.onError
213
213
  }), v = c(/* @__PURE__ */ new Map()), y = _e({
@@ -216,11 +216,11 @@ function ze(e) {
216
216
  templateDefaults: t.templateDefaults,
217
217
  onError: t.onError,
218
218
  lockedBlocks: v
219
- }), b = ce({
219
+ }), b = le({
220
220
  authManager: g,
221
221
  onError: t.onError
222
222
  });
223
- t.mcp?.enabled && de({
223
+ t.mcp?.enabled && fe({
224
224
  editor: y,
225
225
  channel: b.channel,
226
226
  onOperation: t.mcp.onOperation
@@ -247,9 +247,10 @@ function ze(e) {
247
247
  customBlocks: [],
248
248
  paletteBlocks: t.paletteBlocks,
249
249
  mergeTags: t.mergeTags,
250
+ logicTags: t.logicTags,
250
251
  displayConditions: t.displayConditions,
251
252
  onRequestMedia: null,
252
- lint: we(t),
253
+ lint: Ee(t),
253
254
  onSave: () => {
254
255
  p.value?.().catch((e) => {
255
256
  t.onError?.(e);
@@ -270,13 +271,13 @@ function ze(e) {
270
271
  keyboardOptions: { onBeforeUndo: () => h?.showCollabUndoWarning() },
271
272
  editorRoot: e.editorRoot,
272
273
  containerEl: e.containerEl
273
- }), w = Ie({
274
+ }), w = Le({
274
275
  isCollaborationEnabled: S,
275
276
  getCollaboratorCount: () => x?.collaborators.value.length ?? 0,
276
277
  canUndo: C.history.canUndo
277
278
  });
278
279
  h = w;
279
- let T = Pe({
280
+ let T = Fe({
280
281
  authManager: g,
281
282
  editor: y,
282
283
  history: C.history,
@@ -285,11 +286,11 @@ function ze(e) {
285
286
  onError: t.onError
286
287
  });
287
288
  m = T;
288
- let E = Fe(), D = H(t.ai), A = Le({
289
+ let E = Ie(), D = ae(t.ai), te = Re({
289
290
  planConfigInstance: _,
290
291
  aiConfig: D,
291
292
  editor: y
292
- }), j = Re({
293
+ }), N = ze({
293
294
  onRequestMedia: t.onRequestMedia,
294
295
  mediaLibraryOpen: E.mediaLibraryOpen,
295
296
  mediaLibraryAccept: E.mediaLibraryAccept,
@@ -297,23 +298,23 @@ function ze(e) {
297
298
  getMediaConfig: () => _.config.value?.media ?? null,
298
299
  onError: t.onError
299
300
  });
300
- re({
301
+ ee({
301
302
  onBlockMove: y.moveBlock,
302
303
  onBlockAdd: y.addBlock
303
304
  });
304
- let N = me({
305
+ let P = me({
305
306
  authManager: g,
306
307
  getFontsConfig: () => t.fonts,
307
308
  canUseCustomFonts: () => _.hasFeature("custom_fonts")
308
- }), F = U({
309
+ }), F = G({
309
310
  authManager: g,
310
311
  getTemplateId: () => y.state.template?.id ?? null,
311
312
  save: () => y.save(),
312
- exportHtml: (e) => N.exportHtml(e),
313
+ exportHtml: (e) => P.exportHtml(e),
313
314
  onError: t.onError,
314
315
  isAuthReady: l,
315
316
  onBeforeTestEmail: t.onBeforeTestEmail
316
- }), I = he({
317
+ }), I = ge({
317
318
  authManager: g,
318
319
  getTemplateId: () => y.state.template?.id ?? null,
319
320
  getSocketId: () => b.getSocketId(),
@@ -329,21 +330,21 @@ function ze(e) {
329
330
  let L = ue({
330
331
  authManager: g,
331
332
  onError: t.onError
332
- }), R = c(!1), z = c(null), B = c(!1), W = ve({
333
+ }), R = c(!1), z = c(null), B = c(!1), H = ve({
333
334
  authManager: g,
334
335
  getTemplateId: () => y.state.template?.id ?? null
335
336
  });
336
- function G(e) {
337
+ function U(e) {
337
338
  E.commentsOpen.value = !0, queueMicrotask(() => {
338
339
  o()?.filterByBlock(e);
339
340
  });
340
341
  }
341
- a(ee, j.handleRequestMedia), a(ye, g), a(P, D), a(ie, I), a(pe, L), a(le, W), a(te, {
342
+ a(pe, N.handleRequestMedia), a(A, g), a(re, D), a(ne, I), a(de, L), a(ce, H), a(ie, {
342
343
  plan: _,
343
344
  ai: D,
344
345
  comments: {
345
346
  getBlockCount: (e) => I.commentCountByBlock.value.get(e) ?? 0,
346
- openForBlock: G
347
+ openForBlock: U
347
348
  },
348
349
  savedModules: {
349
350
  openSaveDialog: (e) => {
@@ -366,11 +367,11 @@ function ze(e) {
366
367
  try {
367
368
  if (await g.initialize(), d) return;
368
369
  l.value = !0;
369
- let e = await ae({ authManager: g });
370
+ let e = await W({ authManager: g });
370
371
  if (d) return;
371
372
  if (!e.api.ok) throw Error("Health check failed: API is not reachable");
372
373
  if (!e.auth.ok) throw Error(`Health check failed: authentication error${e.auth.error ? ` - ${e.auth.error}` : ""}`);
373
- if (e.websocket.ok || ne.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), d) return;
374
+ if (e.websocket.ok || M.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), d) return;
374
375
  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") && L.loadModules(), i("ready");
375
376
  } catch (e) {
376
377
  if (d) return;
@@ -396,13 +397,13 @@ function ze(e) {
396
397
  editor: y,
397
398
  core: C,
398
399
  aiConfig: D,
399
- featureFlags: A,
400
- mediaLib: j,
401
- exporter: N,
400
+ featureFlags: te,
401
+ mediaLib: N,
402
+ exporter: P,
402
403
  testEmail: F,
403
404
  commentsInstance: I,
404
405
  savedModulesHeadless: L,
405
- scoringInstance: W,
406
+ scoringInstance: H,
406
407
  panelState: E,
407
408
  snapshotPreview: T,
408
409
  collabWarning: w,
@@ -414,14 +415,14 @@ function ze(e) {
414
415
  destroy: Y,
415
416
  setThemeOverrides: K,
416
417
  setUiTheme: q,
417
- openCommentsForBlock: G
418
+ openCommentsForBlock: U
418
419
  };
419
420
  }
420
421
  //#endregion
421
422
  //#region src/utils/preRenderCustomBlocks.ts
422
- async function Be(e, t) {
423
+ async function Ve(e, t) {
423
424
  let n = async (e) => {
424
- if (Y(e)) {
425
+ if (N(e)) {
425
426
  let n = e;
426
427
  try {
427
428
  n.renderedHtml = await t.renderCustomBlock(n);
@@ -438,10 +439,10 @@ async function Be(e, t) {
438
439
  }
439
440
  //#endregion
440
441
  //#region src/cloud/composables/useCloudLifecycle.ts
441
- function Ve(e) {
442
+ function He(e) {
442
443
  let { config: t, editor: n, websocket: r, planConfigInstance: i, snapshotPreview: a, core: o, exporter: s, featureFlags: c, isDestroyed: l } = e;
443
444
  function u() {
444
- return I(i.config.value.websocket);
445
+ return L(i.config.value.websocket);
445
446
  }
446
447
  async function d(e) {
447
448
  let i = await n.create(e);
@@ -454,7 +455,7 @@ function Ve(e) {
454
455
  async function p() {
455
456
  c.isSaveExporting.value = !0, c.saveStatus.value = "idle";
456
457
  try {
457
- if (await Be(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
458
+ if (await Ve(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
458
459
  let e = await n.save();
459
460
  if (l()) throw Error("Component unmounted during save");
460
461
  a.initSnapshotHistory(), a.snapshotHistoryInstance.value?.loadSnapshots();
@@ -481,7 +482,7 @@ function Ve(e) {
481
482
  }
482
483
  //#endregion
483
484
  //#region src/cloud/composables/useCloudSaveGate.ts
484
- function He(e) {
485
+ function Ue(e) {
485
486
  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);
486
487
  async function o(e) {
487
488
  return a.value ? (n = e, t.value = !0, !1) : (await e(), !0);
@@ -504,7 +505,7 @@ function He(e) {
504
505
  }
505
506
  //#endregion
506
507
  //#region src/cloud/components/CloudSaveGateModal.vue?vue&type=script&setup=true&lang.ts
507
- var Ue = ["aria-label"], We = { 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)]" }, Ge = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Ke = { class: "tpl:m-0 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-text)]" }, qe = { class: "tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Je = { 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" }, Ye = { class: "tpl:text-xs tpl:text-[var(--tpl-text)]" }, Xe = { class: "tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Ze = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, Qe = /* @__PURE__ */ E({
508
+ var We = ["aria-label"], Ge = { 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)]" }, Ke = { class: "tpl:flex tpl:items-center tpl:gap-2" }, qe = { class: "tpl:m-0 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Je = { class: "tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ye = { 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" }, Xe = { class: "tpl:text-xs tpl:text-[var(--tpl-text)]" }, Ze = { class: "tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Qe = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, $e = /* @__PURE__ */ E({
508
509
  __name: "CloudSaveGateModal",
509
510
  props: {
510
511
  open: { type: Boolean },
@@ -512,7 +513,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
512
513
  },
513
514
  emits: ["cancel", "confirm"],
514
515
  setup(e, { emit: t }) {
515
- let n = t, { t: r } = $();
516
+ let n = t, { t: r } = Q();
516
517
  return (t, a) => (i(), v(y, {
517
518
  "enter-active-class": "tpl:transition-opacity tpl:duration-150",
518
519
  "leave-active-class": "tpl:transition-opacity tpl:duration-150",
@@ -526,18 +527,18 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
526
527
  "aria-label": h(r).saveGate.title,
527
528
  class: "tpl:fixed tpl:inset-0 tpl:z-50 tpl:flex tpl:items-center tpl:justify-center tpl:bg-black/40 tpl:p-6",
528
529
  onClick: a[2] ||= _((e) => n("cancel"), ["self"])
529
- }, [x("div", We, [
530
- x("header", Ge, [D(h(F), {
530
+ }, [x("div", Ge, [
531
+ x("header", Ke, [D(h(Z), {
531
532
  size: 18,
532
533
  "stroke-width": 2,
533
534
  class: "tpl:text-[var(--tpl-warning)]"
534
- }), x("h2", Ke, d(h(r).saveGate.title), 1)]),
535
- x("p", qe, d(h(r).saveGate.body), 1),
536
- x("ul", Je, [(i(!0), p(w, null, o(e.issues, (e) => (i(), p("li", {
535
+ }), x("h2", qe, d(h(r).saveGate.title), 1)]),
536
+ x("p", Je, d(h(r).saveGate.body), 1),
537
+ x("ul", Ye, [(i(!0), p(w, null, o(e.issues, (e) => (i(), p("li", {
537
538
  key: `${e.ruleId}-${e.blockId ?? "template"}`,
538
539
  class: "tpl:flex tpl:flex-col tpl:gap-0.5 tpl:rounded tpl:px-2 tpl:py-1.5"
539
- }, [x("span", Ye, d(e.message), 1), x("span", Xe, d(e.ruleId), 1)]))), 128))]),
540
- x("footer", Ze, [x("button", {
540
+ }, [x("span", Xe, d(e.message), 1), x("span", Ze, d(e.ruleId), 1)]))), 128))]),
541
+ x("footer", Qe, [x("button", {
541
542
  type: "button",
542
543
  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)]",
543
544
  onClick: a[0] ||= (e) => n("cancel")
@@ -546,11 +547,11 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
546
547
  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",
547
548
  onClick: a[1] ||= (e) => n("confirm")
548
549
  }, d(h(r).saveGate.confirm), 1)])
549
- ])], 8, Ue)) : m("", !0)]),
550
+ ])], 8, We)) : m("", !0)]),
550
551
  _: 1
551
552
  }));
552
553
  }
553
- }), $e = {
554
+ }), et = {
554
555
  class: "tpl-header tpl:absolute tpl:top-0 tpl:right-0 tpl:left-0 tpl:z-50 tpl:grid tpl:h-14 tpl:grid-cols-[1fr_auto_1fr] tpl:items-center tpl:px-4",
555
556
  style: {
556
557
  "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)",
@@ -559,24 +560,24 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
559
560
  "box-shadow": "var(--tpl-shadow-md)",
560
561
  "border-bottom": "1px solid var(--tpl-border)"
561
562
  }
562
- }, et = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, tt = {
563
+ }, tt = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, nt = {
563
564
  key: 0,
564
565
  class: "tpl:text-xs tpl:opacity-60 tpl:text-[var(--tpl-text-muted)]"
565
- }, nt = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, rt = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, it = ["data-tooltip"], at = {
566
+ }, rt = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, it = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, at = ["data-tooltip"], ot = {
566
567
  key: 1,
567
568
  "aria-live": "polite",
568
569
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success)]"
569
- }, ot = {
570
+ }, st = {
570
571
  key: 2,
571
572
  "aria-live": "polite",
572
573
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
573
- }, st = ["aria-label", "aria-expanded"], ct = {
574
+ }, ct = ["aria-label", "aria-expanded"], lt = {
574
575
  key: 0,
575
576
  class: "tpl:inline-flex tpl:size-4.5 tpl:items-center tpl:justify-center tpl:rounded-full tpl:text-[10px] tpl:font-semibold tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]"
576
- }, lt = ["aria-expanded"], ut = {
577
+ }, ut = ["aria-expanded"], dt = {
577
578
  key: 0,
578
579
  class: "tpl:absolute tpl:right-0 tpl:top-full tpl:z-50 tpl:mt-1 tpl:origin-top-right"
579
- }, dt = ["disabled"], ft = ["disabled"], pt = /* @__PURE__ */ E({
580
+ }, ft = ["disabled"], pt = ["disabled"], mt = /* @__PURE__ */ E({
580
581
  __name: "CloudHeader",
581
582
  props: {
582
583
  editor: {},
@@ -594,22 +595,22 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
594
595
  },
595
596
  emits: ["save"],
596
597
  setup(e) {
597
- let t = u(() => import("./CollaboratorBar-DUpSrtDr.js")), n = u(() => import("./features-DU6lA8l1.js").then((e) => e.r)), r = u(() => import("./AiFeatureMenu-BSoy-SoF.js")), { t: a, format: o } = $();
598
- return (c, l) => (i(), p("header", $e, [
599
- x("div", et, [e.featureFlags.templateLimit.value === null ? m("", !0) : (i(), p("span", tt, d(h(o)(h(a).header.templatesUsed, {
598
+ let t = u(() => import("./CollaboratorBar-Cu3vuN66.js")), n = u(() => import("./features-Dpczf9Su.js").then((e) => e.r)), r = u(() => import("./AiFeatureMenu-3Slo_LGA.js")), { t: a, format: o } = Q();
599
+ return (c, l) => (i(), p("header", et, [
600
+ x("div", tt, [e.featureFlags.templateLimit.value === null ? m("", !0) : (i(), p("span", nt, d(h(o)(h(a).header.templatesUsed, {
600
601
  used: e.featureFlags.templateCount.value,
601
602
  max: e.featureFlags.templateLimit.value
602
603
  })), 1))]),
603
- x("div", nt, [
604
- D(Se, {
604
+ x("div", rt, [
605
+ D(Ae, {
605
606
  viewport: e.editor.state.viewport,
606
607
  onChange: e.editor.setViewport
607
608
  }, null, 8, ["viewport", "onChange"]),
608
- D(ke, {
609
+ D(De, {
609
610
  "dark-mode": e.editor.state.darkMode,
610
611
  onChange: e.editor.setDarkMode
611
612
  }, null, 8, ["dark-mode", "onChange"]),
612
- D(Te, {
613
+ D(Ce, {
613
614
  "preview-mode": e.editor.state.previewMode,
614
615
  onChange: e.editor.setPreviewMode
615
616
  }, null, 8, ["preview-mode", "onChange"]),
@@ -633,24 +634,24 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
633
634
  "onNavigate"
634
635
  ])) : m("", !0)
635
636
  ]),
636
- x("div", rt, [
637
+ x("div", it, [
637
638
  e.featureFlags.saveStatus.value === "error" ? (i(), p("div", {
638
639
  key: 0,
639
640
  "aria-live": "assertive",
640
641
  class: "tpl-tooltip tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-danger)]",
641
642
  "data-tooltip": e.featureFlags.saveErrorMessage.value
642
- }, [D(h(X), {
643
+ }, [D(h(Y), {
643
644
  size: 12,
644
645
  "stroke-width": 2.5
645
- }), T(" " + d(h(a).header.saveFailed), 1)], 8, it)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", at, [D(h(j), {
646
+ }), T(" " + d(h(a).header.saveFailed), 1)], 8, at)) : e.featureFlags.saveStatus.value === "saved" ? (i(), p("div", ot, [D(h(F), {
646
647
  size: 12,
647
648
  "stroke-width": 2.5
648
- }), T(" " + d(h(a).header.saved), 1)])) : e.editor.state.isDirty ? (i(), p("div", ot, [l[4] ||= x("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), T(" " + d(h(a).header.unsaved), 1)])) : m("", !0),
649
+ }), T(" " + d(h(a).header.saved), 1)])) : e.editor.state.isDirty ? (i(), p("div", st, [l[4] ||= x("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), T(" " + d(h(a).header.unsaved), 1)])) : m("", !0),
649
650
  e.commentsInstance.isEnabled.value && e.featureFlags.hasTemplateSaved.value ? (i(), p("button", {
650
651
  key: 3,
651
652
  "aria-label": e.commentsInstance.unresolvedCount.value > 0 ? `${h(a).comments.button} (${e.commentsInstance.unresolvedCount.value})` : h(a).comments.button,
652
653
  "aria-expanded": e.panelState.commentsOpen.value,
653
- class: b(h(Ne)),
654
+ class: b(h($)),
654
655
  style: C({
655
656
  backgroundColor: e.panelState.commentsOpen.value ? "var(--tpl-primary)" : "transparent",
656
657
  color: e.panelState.commentsOpen.value ? "var(--tpl-bg)" : "var(--tpl-primary)",
@@ -658,13 +659,13 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
658
659
  }),
659
660
  onClick: l[0] ||= (t) => e.panelState.commentsOpen.value = !e.panelState.commentsOpen.value
660
661
  }, [
661
- D(h(q), {
662
+ D(h(be), {
662
663
  size: 16,
663
664
  "stroke-width": 2
664
665
  }),
665
666
  T(" " + d(h(a).comments.button) + " ", 1),
666
- e.commentsInstance.unresolvedCount.value > 0 && !e.panelState.commentsOpen.value ? (i(), p("span", ct, d(e.commentsInstance.unresolvedCount.value), 1)) : m("", !0)
667
- ], 14, st)) : m("", !0),
667
+ e.commentsInstance.unresolvedCount.value > 0 && !e.panelState.commentsOpen.value ? (i(), p("span", lt, d(e.commentsInstance.unresolvedCount.value), 1)) : m("", !0)
668
+ ], 14, ct)) : m("", !0),
668
669
  e.featureFlags.canUseAiGeneration.value && e.featureFlags.hasTemplateSaved.value ? (i(), p("div", {
669
670
  key: 4,
670
671
  ref: (t) => e.panelState.aiMenuRef.value = t,
@@ -673,11 +674,11 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
673
674
  "aria-expanded": e.panelState.aiMenuOpen.value,
674
675
  class: b(["tpl-ai-btn tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:px-4 tpl:py-2 tpl:text-sm tpl:font-semibold tpl:whitespace-nowrap tpl:transition-all tpl:duration-200", e.panelState.aiButtonActive.value ? "tpl-ai-btn--active" : "tpl-ai-btn--idle"]),
675
676
  onClick: l[1] ||= _((...t) => e.panelState.toggleAiMenu && e.panelState.toggleAiMenu(...t), ["stop"])
676
- }, [D(h(Z), {
677
+ }, [D(h(q), {
677
678
  size: 16,
678
679
  "stroke-width": 2,
679
680
  class: "tpl-ai-btn-icon"
680
- }), T(" " + d(h(a).aiChat.button), 1)], 10, lt), D(y, {
681
+ }), T(" " + d(h(a).aiChat.button), 1)], 10, ut), D(y, {
681
682
  "enter-active-class": "tpl:transition-all tpl:duration-150 tpl:ease-out",
682
683
  "enter-from-class": "tpl:scale-95 tpl:opacity-0",
683
684
  "enter-to-class": "tpl:scale-100 tpl:opacity-100",
@@ -685,7 +686,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
685
686
  "leave-from-class": "tpl:scale-100 tpl:opacity-100",
686
687
  "leave-to-class": "tpl:scale-95 tpl:opacity-0"
687
688
  }, {
688
- default: s(() => [e.panelState.aiMenuOpen.value ? (i(), p("div", ut, [D(h(r), {
689
+ default: s(() => [e.panelState.aiMenuOpen.value ? (i(), p("div", dt, [D(h(r), {
689
690
  "active-feature": e.panelState.activeAiFeature.value,
690
691
  onSelect: e.panelState.handleAiFeatureSelect
691
692
  }, null, 8, ["active-feature", "onSelect"])])) : m("", !0)]),
@@ -693,7 +694,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
693
694
  })], 512)) : m("", !0),
694
695
  e.testEmail.isEnabled.value && e.featureFlags.canSendTestEmail.value ? (i(), p("button", {
695
696
  key: 5,
696
- class: b(h(Ne)),
697
+ class: b(h($)),
697
698
  style: {
698
699
  "background-color": "transparent",
699
700
  color: "var(--tpl-primary)",
@@ -701,18 +702,18 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
701
702
  },
702
703
  disabled: e.testEmail.isSending.value || !e.featureFlags.hasTemplateSaved.value,
703
704
  onClick: l[2] ||= (t) => e.panelState.testEmailModalOpen.value = !0
704
- }, [e.testEmail.isSending.value ? (i(), v(h(A), {
705
+ }, [e.testEmail.isSending.value ? (i(), v(h(U), {
705
706
  key: 1,
706
707
  class: "tpl-spinner",
707
708
  size: 16,
708
709
  "stroke-width": 2
709
- })) : (i(), v(h(G), {
710
+ })) : (i(), v(h(J), {
710
711
  key: 0,
711
712
  size: 16,
712
713
  "stroke-width": 2
713
- })), T(" " + d(h(a).testEmail.button), 1)], 10, dt)) : m("", !0),
714
+ })), T(" " + d(h(a).testEmail.button), 1)], 10, ft)) : m("", !0),
714
715
  x("button", {
715
- class: b(h(Ne)),
716
+ class: b(h($)),
716
717
  style: {
717
718
  "background-color": "transparent",
718
719
  color: "var(--tpl-primary)",
@@ -720,20 +721,20 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
720
721
  },
721
722
  disabled: e.isSaveDisabled,
722
723
  onClick: l[3] ||= (e) => c.$emit("save")
723
- }, [e.isSaving ? (i(), v(h(A), {
724
+ }, [e.isSaving ? (i(), v(h(U), {
724
725
  key: 1,
725
726
  class: "tpl-spinner",
726
727
  size: 16,
727
728
  "stroke-width": 2
728
- })) : (i(), v(h(be), {
729
+ })) : (i(), v(h(Se), {
729
730
  key: 0,
730
731
  size: 16,
731
732
  "stroke-width": 2
732
- })), T(" " + d(e.isSaving ? h(a).header.saving : h(a).header.save), 1)], 10, ft)
733
+ })), T(" " + d(e.isSaving ? h(a).header.saving : h(a).header.save), 1)], 10, pt)
733
734
  ])
734
735
  ]));
735
736
  }
736
- }), mt = /* @__PURE__ */ E({
737
+ }), ht = /* @__PURE__ */ E({
737
738
  __name: "CloudPanels",
738
739
  props: {
739
740
  config: {},
@@ -756,9 +757,9 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
756
757
  "module-insert"
757
758
  ],
758
759
  setup(e, { expose: t, emit: n }) {
759
- let r = u(() => import("./features-DU6lA8l1.js").then((e) => e.o)), a = u(() => import("./features-DU6lA8l1.js").then((e) => e.a)), o = u(() => import("./features-DU6lA8l1.js").then((e) => e.i)), s = u(() => import("./features-DU6lA8l1.js").then((e) => e.n)), l = u(() => import("./features-DU6lA8l1.js").then((e) => e.t)), d = u(() => import("./SaveModuleDialog-C9PQ9x6j.js")), f = u(() => import("./ModuleBrowserModal-a-tZRCcD.js")), g = u(async () => {
760
+ let r = u(() => import("./features-Dpczf9Su.js").then((e) => e.o)), a = u(() => import("./features-Dpczf9Su.js").then((e) => e.a)), o = u(() => import("./features-Dpczf9Su.js").then((e) => e.i)), s = u(() => import("./features-Dpczf9Su.js").then((e) => e.n)), l = u(() => import("./features-Dpczf9Su.js").then((e) => e.t)), d = u(() => import("./SaveModuleDialog-C6UIIVAM.js")), f = u(() => import("./ModuleBrowserModal-Dz-I5zfj.js")), g = u(async () => {
760
761
  try {
761
- return (await import("./src-DsqSXXjk.js")).MediaLibraryModal;
762
+ return (await import("./src-DRpKu4Dy.js")).MediaLibraryModal;
762
763
  } catch {
763
764
  throw Error("[Templatical] Cloud media library requires the optional peer dependency '@templatical/media-library'. Please install it.");
764
765
  }
@@ -838,23 +839,23 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
838
839
  ])
839
840
  ], 64));
840
841
  }
841
- }), ht = {
842
+ }), gt = {
842
843
  key: 0,
843
844
  class: "tpl-loading tpl:absolute tpl:inset-0 tpl:z-overlay tpl:flex tpl:flex-col tpl:bg-[var(--tpl-bg)]"
844
- }, gt = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, _t = { 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)]" }, vt = /* @__PURE__ */ E({
845
+ }, _t = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, vt = { 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)]" }, yt = /* @__PURE__ */ E({
845
846
  __name: "CloudLoadingOverlay",
846
847
  props: { visible: { type: Boolean } },
847
848
  setup(e) {
848
- return (t, n) => e.visible ? (i(), p("div", ht, [n[1] ||= l("<div class=\"tpl:flex tpl:h-14 tpl:shrink-0 tpl:items-center tpl:justify-between tpl:px-4 tpl:border-b tpl:border-[var(--tpl-border)]\"><div class=\"tpl-shimmer tpl:h-5 tpl:w-28 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl:flex tpl:gap-3\"><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div></div></div>", 1), x("div", gt, [x("div", _t, [(i(), p(w, null, o(5, (e) => x("div", {
849
+ return (t, n) => e.visible ? (i(), p("div", gt, [n[1] ||= l("<div class=\"tpl:flex tpl:h-14 tpl:shrink-0 tpl:items-center tpl:justify-between tpl:px-4 tpl:border-b tpl:border-[var(--tpl-border)]\"><div class=\"tpl-shimmer tpl:h-5 tpl:w-28 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl:flex tpl:gap-3\"><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div></div></div>", 1), x("div", _t, [x("div", vt, [(i(), p(w, null, o(5, (e) => x("div", {
849
850
  key: e,
850
851
  class: "tpl-shimmer tpl:size-7 tpl:rounded-[var(--tpl-radius-sm)]"
851
852
  })), 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);
852
853
  }
853
- }), yt = {
854
+ }), bt = {
854
855
  key: 0,
855
856
  role: "alert",
856
857
  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)]"
857
- }, bt = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, xt = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:text-center" }, St = { class: "tpl:text-lg tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Ct = { class: "tpl:max-w-md tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, wt = /* @__PURE__ */ E({
858
+ }, xt = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, St = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:text-center" }, Ct = { class: "tpl:text-lg tpl:font-semibold tpl:text-[var(--tpl-text)]" }, wt = { class: "tpl:max-w-md tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Tt = /* @__PURE__ */ E({
858
859
  __name: "CloudErrorOverlay",
859
860
  props: {
860
861
  error: {},
@@ -862,20 +863,20 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
862
863
  },
863
864
  emits: ["retry"],
864
865
  setup(e, { emit: t }) {
865
- let n = t, { t: r } = $();
866
+ let n = t, { t: r } = Q();
866
867
  function a(e) {
867
868
  return "isUnauthorized" in e && e.isUnauthorized ? r.error.authFailed : "isNotFound" in e && e.isNotFound ? r.error.templateNotFound : r.error.defaultMessage;
868
869
  }
869
870
  function o(e) {
870
871
  return "isNotFound" in e && !!e.isNotFound;
871
872
  }
872
- return (t, s) => e.visible && e.error ? (i(), p("div", yt, [
873
- x("div", bt, [D(h(X), {
873
+ return (t, s) => e.visible && e.error ? (i(), p("div", bt, [
874
+ x("div", xt, [D(h(Y), {
874
875
  size: 32,
875
876
  "stroke-width": 1.5,
876
877
  class: "tpl:text-[var(--tpl-danger)]"
877
878
  })]),
878
- x("div", xt, [x("h2", St, d(h(r).error.title), 1), x("p", Ct, d(a(e.error)), 1)]),
879
+ x("div", St, [x("h2", Ct, d(h(r).error.title), 1), x("p", wt, d(a(e.error)), 1)]),
879
880
  o(e.error) ? m("", !0) : (i(), p("button", {
880
881
  key: 0,
881
882
  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)]",
@@ -883,20 +884,20 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
883
884
  }, d(h(r).error.retry), 1))
884
885
  ])) : m("", !0);
885
886
  }
886
- }), Tt = {
887
+ }), Et = {
887
888
  key: 0,
888
889
  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)]"
889
- }, Et = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, Dt = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Ot = /* @__PURE__ */ E({
890
+ }, Dt = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, Ot = { class: "tpl:flex tpl:items-center tpl:gap-2" }, kt = /* @__PURE__ */ E({
890
891
  __name: "SnapshotPreviewBanner",
891
892
  props: { visible: { type: Boolean } },
892
893
  emits: ["cancel", "confirm"],
893
894
  setup(e, { emit: t }) {
894
- let n = t, { t: r } = $();
895
- return (t, a) => e.visible ? (i(), p("div", Tt, [x("div", Et, [D(h(ge), {
895
+ let n = t, { t: r } = Q();
896
+ return (t, a) => e.visible ? (i(), p("div", Et, [x("div", Dt, [D(h(I), {
896
897
  size: 18,
897
898
  "stroke-width": 2,
898
899
  class: "tpl:text-[var(--tpl-primary)]"
899
- }), x("span", null, d(h(r).snapshotPreview.message), 1)]), x("div", Dt, [x("button", {
900
+ }), x("span", null, d(h(r).snapshotPreview.message), 1)]), x("div", Ot, [x("button", {
900
901
  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)]",
901
902
  style: { "background-color": "transparent" },
902
903
  onClick: a[0] ||= (e) => n("cancel")
@@ -905,7 +906,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
905
906
  onClick: a[1] ||= (e) => n("confirm")
906
907
  }, d(h(r).snapshotPreview.restore), 1)])])) : m("", !0);
907
908
  }
908
- }), kt = {
909
+ }), At = {
909
910
  key: 0,
910
911
  role: "status",
911
912
  "aria-live": "polite",
@@ -915,14 +916,14 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
915
916
  color: "var(--tpl-text)",
916
917
  border: "1px solid var(--tpl-warning)"
917
918
  }
918
- }, At = /* @__PURE__ */ E({
919
+ }, jt = /* @__PURE__ */ E({
919
920
  __name: "CollabUndoToast",
920
921
  props: { visible: { type: Boolean } },
921
922
  setup(e) {
922
- let { t } = N();
923
- return (n, r) => e.visible ? (i(), p("div", kt, d(h(t).history.collabWarning), 1)) : m("", !0);
923
+ let { t } = P();
924
+ return (n, r) => e.visible ? (i(), p("div", At, d(h(t).history.collabWarning), 1)) : m("", !0);
924
925
  }
925
- }), jt = ["data-tpl-theme"], Mt = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, Nt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, Pt = ["aria-label"], Ft = /*#__PURE__*/ J(/* @__PURE__ */ E({
926
+ }), Mt = ["data-tpl-theme"], Nt = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, Pt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, Ft = ["aria-label"], It = /*#__PURE__*/ H(/* @__PURE__ */ E({
926
927
  __name: "CloudEditor",
927
928
  props: {
928
929
  config: {},
@@ -935,7 +936,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
935
936
  setup(e, { expose: r, emit: o }) {
936
937
  let l = e;
937
938
  a(R, l.cloudTranslations);
938
- let u = o, f = c(null), w = c(null), E = ze({
939
+ let u = o, f = c(null), w = c(null), E = Be({
939
940
  config: l.config,
940
941
  translations: l.translations,
941
942
  fontsManager: l.fontsManager,
@@ -943,10 +944,10 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
943
944
  getCommentsSidebar: () => f.value ? { filterByBlock: f.value.filterCommentsByBlock } : null,
944
945
  editorRoot: l.shadowRoot,
945
946
  containerEl: w
946
- }), { isInitializing: O, isAuthReady: ee, initError: k, planConfigInstance: A, websocket: j, collaboration: M, isCollaborationEnabled: te, editor: N, core: P, featureFlags: F, mediaLib: ne, exporter: re, testEmail: I, commentsInstance: z, savedModulesHeadless: ie, panelState: V, snapshotPreview: H, collabWarning: ae, showSaveModuleDialog: U, showModuleBrowserModal: W, saveModulePreSelectedBlockId: G, setThemeOverrides: oe, setUiTheme: K } = E, { showNotice: q } = B(() => l.config.smallScreenNotice);
947
+ }), { isInitializing: O, isAuthReady: ee, initError: k, planConfigInstance: A, websocket: j, collaboration: M, isCollaborationEnabled: ne, editor: N, core: P, featureFlags: F, mediaLib: I, exporter: re, testEmail: L, commentsInstance: ie, savedModulesHeadless: B, panelState: V, snapshotPreview: H, collabWarning: ae, showSaveModuleDialog: U, showModuleBrowserModal: W, saveModulePreSelectedBlockId: G, setThemeOverrides: K, setUiTheme: q } = E, { showNotice: oe } = z(() => l.config.smallScreenNotice);
947
948
  async function se(e) {
948
949
  try {
949
- await I.sendTestEmail(e), V.testEmailModalOpen.value = !1;
950
+ await L.sendTestEmail(e), V.testEmailModalOpen.value = !1;
950
951
  } catch {}
951
952
  }
952
953
  async function J() {
@@ -954,14 +955,14 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
954
955
  await H.confirmRestoreSnapshot();
955
956
  } catch {}
956
957
  }
957
- function Y(e, t) {
958
+ function ce(e, t) {
958
959
  for (let n = 0; n < e.content.length; n++) {
959
- let r = L(e.content[n]), i = t === void 0 ? void 0 : t + n;
960
+ let r = te(e.content[n]), i = t === void 0 ? void 0 : t + n;
960
961
  N.addBlock(r, void 0, void 0, i);
961
962
  }
962
963
  W.value = !1;
963
964
  }
964
- let X = Ve({
965
+ let Y = He({
965
966
  config: l.config,
966
967
  editor: N,
967
968
  websocket: j,
@@ -971,26 +972,26 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
971
972
  exporter: re,
972
973
  featureFlags: F,
973
974
  isDestroyed: E.isDestroyed
974
- }), Z = He({
975
+ }), X = Ue({
975
976
  issues: P.templateLint ? P.templateLint.issues : c([]),
976
977
  planConfig: A.config
977
978
  });
978
- async function Q() {
979
- await Z.tryRunSave(() => X.saveTemplate().catch((e) => l.config.onError?.(e)));
979
+ async function Z() {
980
+ await X.tryRunSave(() => Y.saveTemplate().catch((e) => l.config.onError?.(e)));
980
981
  }
981
- return E.onSaveHook.value = Q, t(() => {
982
+ return E.onSaveHook.value = Z, t(() => {
982
983
  E.initialize();
983
984
  }), g(() => {
984
985
  E.destroy();
985
986
  }), r({
986
987
  getContent: () => N.content.value,
987
988
  setContent: (e) => N.setContent(e),
988
- setTheme: K,
989
- setThemeOverrides: oe,
990
- create: X.createTemplate,
991
- load: X.loadTemplate,
992
- save: X.saveTemplate,
993
- sendTestEmail: I.sendTestEmail
989
+ setTheme: q,
990
+ setThemeOverrides: K,
991
+ create: Y.createTemplate,
992
+ load: Y.loadTemplate,
993
+ save: Y.saveTemplate,
994
+ sendTestEmail: L.sendTestEmail
994
995
  }), (t, r) => (i(), p("div", {
995
996
  ref_key: "rootEl",
996
997
  ref: w,
@@ -1000,7 +1001,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1000
1001
  onDragover: r[9] ||= _(() => {}, ["prevent"]),
1001
1002
  onDrop: r[10] ||= _(() => {}, ["prevent"])
1002
1003
  }, [
1003
- D(Ee),
1004
+ D(Pe),
1004
1005
  D(y, {
1005
1006
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
1006
1007
  "enter-from-class": "tpl:opacity-100",
@@ -1009,7 +1010,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1009
1010
  "leave-from-class": "tpl:opacity-100",
1010
1011
  "leave-to-class": "tpl:opacity-0"
1011
1012
  }, {
1012
- default: s(() => [D(vt, { visible: h(O) || h(N).state.isLoading }, null, 8, ["visible"])]),
1013
+ default: s(() => [D(yt, { visible: h(O) || h(N).state.isLoading }, null, 8, ["visible"])]),
1013
1014
  _: 1
1014
1015
  }),
1015
1016
  D(y, {
@@ -1020,7 +1021,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1020
1021
  "leave-from-class": "tpl:opacity-100",
1021
1022
  "leave-to-class": "tpl:opacity-0"
1022
1023
  }, {
1023
- default: s(() => [D(wt, {
1024
+ default: s(() => [D(Tt, {
1024
1025
  error: h(k),
1025
1026
  visible: !!h(k) && !h(O),
1026
1027
  onRetry: h(E).initialize
@@ -1031,20 +1032,20 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1031
1032
  ])]),
1032
1033
  _: 1
1033
1034
  }),
1034
- D(pt, {
1035
+ D(mt, {
1035
1036
  editor: h(N),
1036
1037
  core: h(P),
1037
1038
  "feature-flags": h(F),
1038
1039
  "panel-state": h(V),
1039
1040
  "snapshot-preview": h(H),
1040
- "comments-instance": h(z),
1041
- "test-email": h(I),
1041
+ "comments-instance": h(ie),
1042
+ "test-email": h(L),
1042
1043
  websocket: h(j),
1043
1044
  collaboration: h(M),
1044
- "is-collaboration-enabled": h(te),
1045
+ "is-collaboration-enabled": h(ne),
1045
1046
  "is-saving": h(N).state.isSaving || h(F).isSaveExporting.value,
1046
1047
  "is-save-disabled": h(N).state.isSaving || h(F).isSaveExporting.value || !h(N).state.isDirty,
1047
- onSave: Q
1048
+ onSave: Z
1048
1049
  }, null, 8, [
1049
1050
  "editor",
1050
1051
  "core",
@@ -1059,18 +1060,18 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1059
1060
  "is-saving",
1060
1061
  "is-save-disabled"
1061
1062
  ]),
1062
- D(Qe, {
1063
- open: h(Z).modalOpen.value,
1064
- issues: h(Z).blockingIssues.value,
1065
- onCancel: h(Z).cancel,
1066
- onConfirm: h(Z).confirmAndSave
1063
+ D($e, {
1064
+ open: h(X).modalOpen.value,
1065
+ issues: h(X).blockingIssues.value,
1066
+ onCancel: h(X).cancel,
1067
+ onConfirm: h(X).confirmAndSave
1067
1068
  }, null, 8, [
1068
1069
  "open",
1069
1070
  "issues",
1070
1071
  "onCancel",
1071
1072
  "onConfirm"
1072
1073
  ]),
1073
- D(Ot, {
1074
+ D(kt, {
1074
1075
  visible: h(H).isPreviewingSnapshot.value,
1075
1076
  onCancel: h(H).cancelPreview,
1076
1077
  onConfirm: J
@@ -1083,17 +1084,17 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1083
1084
  "leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
1084
1085
  "leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
1085
1086
  }, {
1086
- default: s(() => [D(At, { visible: h(ae).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1087
+ default: s(() => [D(jt, { visible: h(ae).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1087
1088
  _: 1
1088
1089
  }),
1089
- n(D(Ce, null, null, 512), [[S, !h(N).state.previewMode]]),
1090
+ n(D(Oe, null, null, 512), [[S, !h(N).state.previewMode]]),
1090
1091
  x("div", {
1091
1092
  class: b(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [h(N).state.previewMode ? "tpl:left-0 tpl:right-0" : h(V).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", h(H).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1092
1093
  style: {
1093
1094
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
1094
1095
  "background-color": "var(--tpl-canvas-bg)"
1095
1096
  }
1096
- }, [x("div", Mt, [D(y, { name: "tpl-restore-btn" }, {
1097
+ }, [x("div", Nt, [D(y, { name: "tpl-restore-btn" }, {
1097
1098
  default: s(() => [h(P).conditionPreview.hasHiddenBlocks.value ? (i(), p("button", {
1098
1099
  key: 0,
1099
1100
  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",
@@ -1109,7 +1110,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1109
1110
  "stroke-width": 2
1110
1111
  }), T(" " + d(h(P).t.blockSettings.restoreHiddenBlocks), 1)])) : m("", !0)]),
1111
1112
  _: 1
1112
- })]), x("main", Nt, [D(Me, {
1113
+ })]), x("main", Pt, [D(Te, {
1113
1114
  viewport: h(N).state.viewport,
1114
1115
  content: h(N).content.value,
1115
1116
  "selected-block-id": h(N).state.selectedBlockId,
@@ -1128,7 +1129,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1128
1129
  "locked-blocks",
1129
1130
  "onSelectBlock"
1130
1131
  ])])], 2),
1131
- e.config.branding !== !1 && !h(F).isWhiteLabeled.value ? (i(), v(De, {
1132
+ e.config.branding !== !1 && !h(F).isWhiteLabeled.value ? (i(), v(je, {
1132
1133
  key: 0,
1133
1134
  "position-class": [h(N).state.previewMode ? "tpl:left-0 tpl:right-0" : h(V).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1134
1135
  }, null, 8, ["position-class"])) : m("", !0),
@@ -1138,8 +1139,8 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1138
1139
  "aria-live": "polite",
1139
1140
  "aria-atomic": "true",
1140
1141
  "aria-label": h(P).t.landmarks.reorderAnnouncements
1141
- }, d(h(P).keyboardReorder.announcement.value), 9, Pt),
1142
- n(D(Ae, {
1142
+ }, d(h(P).keyboardReorder.announcement.value), 9, Ft),
1143
+ n(D(we, {
1143
1144
  "selected-block": h(N).selectedBlock.value,
1144
1145
  settings: h(N).content.value.settings,
1145
1146
  "shifted-left": h(V).rightPanelOpen.value,
@@ -1153,7 +1154,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1153
1154
  "shifted-left",
1154
1155
  "onUpdateSettings"
1155
1156
  ]), [[S, !h(N).state.previewMode]]),
1156
- !h(O) && h(ee) ? (i(), v(mt, {
1157
+ !h(O) && h(ee) ? (i(), v(ht, {
1157
1158
  key: 1,
1158
1159
  ref_key: "cloudPanelsRef",
1159
1160
  ref: f,
@@ -1162,9 +1163,9 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1162
1163
  core: h(P),
1163
1164
  "panel-state": h(V),
1164
1165
  "plan-config-instance": h(A),
1165
- "test-email": h(I),
1166
- "media-lib": h(ne),
1167
- "saved-modules-headless": h(ie),
1166
+ "test-email": h(L),
1167
+ "media-lib": h(I),
1168
+ "saved-modules-headless": h(B),
1168
1169
  "show-save-module-dialog": h(U),
1169
1170
  "save-module-pre-selected-block-id": h(G),
1170
1171
  "show-module-browser-modal": h(W),
@@ -1172,7 +1173,7 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1172
1173
  "onUpdate:saveModulePreSelectedBlockId": r[7] ||= (e) => G.value = e,
1173
1174
  "onUpdate:showModuleBrowserModal": r[8] ||= (e) => W.value = e,
1174
1175
  onSendTestEmail: se,
1175
- onModuleInsert: Y
1176
+ onModuleInsert: ce
1176
1177
  }, null, 8, [
1177
1178
  "config",
1178
1179
  "editor",
@@ -1190,12 +1191,13 @@ var Ue = ["aria-label"], We = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1190
1191
  ref: (e) => h(P).popoverRoot.value = e,
1191
1192
  class: "tpl-popover-root"
1192
1193
  }, null, 512),
1193
- D(je),
1194
- h(q) ? (i(), v(Oe, { key: 2 })) : m("", !0)
1195
- ], 46, jt));
1194
+ D(ke),
1195
+ D(Ne),
1196
+ h(oe) ? (i(), v(Me, { key: 2 })) : m("", !0)
1197
+ ], 46, Mt));
1196
1198
  }
1197
- }), [["__scopeId", "data-v-8c4fa160"]]);
1199
+ }), [["__scopeId", "data-v-3fc6c906"]]);
1198
1200
  //#endregion
1199
- export { Ft as default };
1201
+ export { It as default };
1200
1202
 
1201
- //# sourceMappingURL=CloudEditor-BZuzsQOZ.js.map
1203
+ //# sourceMappingURL=CloudEditor-DFIFWD9G.js.map