@templatical/editor 0.13.0 → 0.14.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 (153) hide show
  1. package/dist/{AiChatSidebar-B0-U5-sb.js → AiChatSidebar-J8iO_sX7.js} +14 -14
  2. package/dist/{AiFeatureMenu-DxDwLS8B.js → AiFeatureMenu-F2diEDgV.js} +10 -10
  3. package/dist/{BlockIssueBadge-C-EPqWsh.js → BlockIssueBadge-a-qlByxF.js} +5 -5
  4. package/dist/{CloudEditor-DaEfipBn.js → CloudEditor-CDjtwb4i.js} +236 -234
  5. package/dist/{CollaboratorBar-DgwjisX2.js → CollaboratorBar-B_EnJLtW.js} +4 -4
  6. package/dist/{CommentsSidebar-CpRLN40c.js → CommentsSidebar-DaP9BA_r.js} +18 -18
  7. package/dist/{CountdownBlock-DO9fziwf.js → CountdownBlock-DtAokAVw.js} +3 -3
  8. package/dist/{CountdownToolbar-BeII06yJ.js → CountdownToolbar-Dtqgwy0g.js} +3 -3
  9. package/dist/{DesignReferenceSidebar-BgPDbOsl.js → DesignReferenceSidebar-BHRlTqlT.js} +10 -10
  10. package/dist/{IssuesPanel-I0z6k6-H.js → IssuesPanel-u7ee3Wrl.js} +11 -11
  11. package/dist/{LoadingTrack-C7mGWPHS.js → LoadingTrack-CV3ID80N.js} +1 -1
  12. package/dist/ModuleBrowserModal-DOsdaS6s.js +201 -0
  13. package/dist/{ModulePreviewCanvas-Dni9kK4j.js → ModulePreviewCanvas-Cx4MOJ0X.js} +3 -3
  14. package/dist/{NumberWithSuffix-D3fdj0iO.js → NumberWithSuffix-D2mW_DhT.js} +4 -4
  15. package/dist/{ParagraphEditor-CZ-cmhX3.js → ParagraphEditor-DMzkVnST.js} +153 -133
  16. package/dist/{RichTextEditorContent-Q5altsx1.js → RichTextEditorContent-CRCxCwKf.js} +7 -7
  17. package/dist/{SaveModuleDialog-C38VqN2T.js → SaveModuleDialog-DuEKgumL.js} +8 -8
  18. package/dist/{SnapshotHistory-ByloTpwh.js → SnapshotHistory-CVgiNJtE.js} +12 -12
  19. package/dist/{TemplateScoringPanel-CUxiPtEf.js → TemplateScoringPanel-lm0_9nYi.js} +25 -25
  20. package/dist/{TestEmailModal-BvZBMBad.js → TestEmailModal-WBMdiW5S.js} +5 -5
  21. package/dist/{TitleEditor-DbNOcvhR.js → TitleEditor-eyT0h-Sa.js} +71 -55
  22. package/dist/{TplModal-BYb-X5Bj.js → TplModal-tjQ7OB0g.js} +4 -4
  23. package/dist/{blockTypeIcons-CyAom3iI.js → blockTypeIcons-DdB3uTKD.js} +5 -5
  24. package/dist/bundle-stats.json +6 -6
  25. package/dist/cdn/chunks/{AiFeatureMenu-BSoy-SoF.js → AiFeatureMenu-D7rB2SBs.js} +8 -8
  26. package/dist/cdn/chunks/{AiFeatureMenu-BSoy-SoF.js.map → AiFeatureMenu-D7rB2SBs.js.map} +1 -1
  27. package/dist/cdn/chunks/{BlockIssueBadge-BQDUuJxy.js → BlockIssueBadge-DHOe0pgx.js} +5 -5
  28. package/dist/cdn/chunks/{BlockIssueBadge-BQDUuJxy.js.map → BlockIssueBadge-DHOe0pgx.js.map} +1 -1
  29. package/dist/cdn/chunks/{CloudEditor-BZuzsQOZ.js → CloudEditor-DNed_Ym0.js} +208 -206
  30. package/dist/cdn/chunks/CloudEditor-DNed_Ym0.js.map +1 -0
  31. package/dist/cdn/chunks/{CollaboratorBar-DUpSrtDr.js → CollaboratorBar-sj_9Lee3.js} +4 -4
  32. package/dist/cdn/chunks/{CollaboratorBar-DUpSrtDr.js.map → CollaboratorBar-sj_9Lee3.js.map} +1 -1
  33. package/dist/cdn/chunks/{CountdownBlock-DChGTAsH.js → CountdownBlock-C1Ikjpn4.js} +3 -3
  34. package/dist/cdn/chunks/{CountdownBlock-DChGTAsH.js.map → CountdownBlock-C1Ikjpn4.js.map} +1 -1
  35. package/dist/cdn/chunks/{CountdownToolbar-C6gX2SJr.js → CountdownToolbar-j1G_X8rB.js} +4 -4
  36. package/dist/cdn/chunks/{CountdownToolbar-C6gX2SJr.js.map → CountdownToolbar-j1G_X8rB.js.map} +1 -1
  37. package/dist/cdn/chunks/{IssuesPanel-Bo1uhdSe.js → IssuesPanel-CTOf3PsH.js} +11 -11
  38. package/dist/cdn/chunks/{IssuesPanel-Bo1uhdSe.js.map → IssuesPanel-CTOf3PsH.js.map} +1 -1
  39. package/dist/cdn/chunks/{ModuleBrowserModal-a-tZRCcD.js → ModuleBrowserModal-DCh88-rr.js} +11 -8
  40. package/dist/cdn/chunks/{ModuleBrowserModal-a-tZRCcD.js.map → ModuleBrowserModal-DCh88-rr.js.map} +1 -1
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-Bm6k0Op0.js → ModulePreviewCanvas-DJqvTKmg.js} +21 -21
  42. package/dist/cdn/chunks/{ModulePreviewCanvas-Bm6k0Op0.js.map → ModulePreviewCanvas-DJqvTKmg.js.map} +1 -1
  43. package/dist/cdn/chunks/{NumberWithSuffix-HTbuD3VJ.js → NumberWithSuffix-Bu45XWSl.js} +5 -5
  44. package/dist/cdn/chunks/{NumberWithSuffix-HTbuD3VJ.js.map → NumberWithSuffix-Bu45XWSl.js.map} +1 -1
  45. package/dist/cdn/chunks/{ParagraphEditor-pGrfSccu.js → ParagraphEditor-DwZqLJp2.js} +130 -110
  46. package/dist/cdn/chunks/ParagraphEditor-DwZqLJp2.js.map +1 -0
  47. package/dist/cdn/chunks/{RichTextEditorContent-D7XZix_1.js → RichTextEditorContent-CIuZ-2DV.js} +4 -4
  48. package/dist/cdn/chunks/{RichTextEditorContent-D7XZix_1.js.map → RichTextEditorContent-CIuZ-2DV.js.map} +1 -1
  49. package/dist/cdn/chunks/{SaveModuleDialog-C9PQ9x6j.js → SaveModuleDialog-Bep0X2s_.js} +6 -6
  50. package/dist/cdn/chunks/{SaveModuleDialog-C9PQ9x6j.js.map → SaveModuleDialog-Bep0X2s_.js.map} +1 -1
  51. package/dist/cdn/chunks/{TitleEditor-BvFbL16O.js → TitleEditor-DO1-h3RY.js} +62 -46
  52. package/dist/cdn/chunks/TitleEditor-DO1-h3RY.js.map +1 -0
  53. package/dist/cdn/chunks/blockTypeIcons-8o24HVJu.js +22 -0
  54. package/dist/cdn/chunks/{blockTypeIcons-Kd1MT0u8.js.map → blockTypeIcons-8o24HVJu.js.map} +1 -1
  55. package/dist/{de-C2wOXoxs.js → cdn/chunks/de-LsV0u1tP.js} +19 -1
  56. package/dist/cdn/chunks/de-LsV0u1tP.js.map +1 -0
  57. package/dist/cdn/chunks/{draggable-Bci-fq8y.js → draggable-kPCz_3zM.js} +14 -5
  58. package/dist/cdn/chunks/{draggable-Bci-fq8y.js.map → draggable-kPCz_3zM.js.map} +1 -1
  59. package/dist/cdn/chunks/{en-dR7zfNC3.js → en-Bb8X1bOs.js} +18 -2
  60. package/dist/cdn/chunks/en-Bb8X1bOs.js.map +1 -0
  61. package/dist/cdn/chunks/{extensions-CuUjSmuA.js → extensions-iwBXnEwq.js} +16 -16
  62. package/dist/cdn/chunks/{extensions-CuUjSmuA.js.map → extensions-iwBXnEwq.js.map} +1 -1
  63. package/dist/cdn/chunks/{features-DU6lA8l1.js → features-CkTMVylx.js} +940 -812
  64. package/dist/cdn/chunks/features-CkTMVylx.js.map +1 -0
  65. package/dist/cdn/chunks/{icons-BjHUZZyJ.js → icons-9zjCuoJx.js} +158 -152
  66. package/dist/cdn/chunks/icons-9zjCuoJx.js.map +1 -0
  67. package/dist/cdn/chunks/liquid.browser-DKKBzRQu.js.map +1 -1
  68. package/dist/cdn/chunks/{media-library-Byelliig.js → media-library-DMRIPx4g.js} +552 -550
  69. package/dist/cdn/chunks/{media-library-Byelliig.js.map → media-library-DMRIPx4g.js.map} +1 -1
  70. package/dist/cdn/chunks/{pt-BR-BZ86xqK6.js → pt-BR-BwJY_cvb.js} +18 -2
  71. package/dist/cdn/chunks/pt-BR-BwJY_cvb.js.map +1 -0
  72. package/dist/cdn/chunks/{pusher-BICWUP2j.js → pusher-CdEqyLwF.js} +6 -3
  73. package/dist/cdn/chunks/{pusher-BICWUP2j.js.map → pusher-CdEqyLwF.js.map} +1 -1
  74. package/dist/cdn/chunks/quality-CyeUgs_c.js +2176 -0
  75. package/dist/cdn/chunks/{quality-DNnYAntR.js.map → quality-CyeUgs_c.js.map} +1 -1
  76. package/dist/cdn/chunks/{renderer-CZKO-Tav.js → renderer-BIKUEKDD.js} +39 -30
  77. package/dist/cdn/chunks/{renderer-CZKO-Tav.js.map → renderer-BIKUEKDD.js.map} +1 -1
  78. package/dist/cdn/chunks/{src-DsqSXXjk.js → src-pDy_imWG.js} +11 -11
  79. package/dist/cdn/chunks/{src-DsqSXXjk.js.map → src-pDy_imWG.js.map} +1 -1
  80. package/dist/cdn/chunks/{styles-DiAdtiz9.js → styles-D4Bd3SCx.js} +1197 -822
  81. package/dist/cdn/chunks/styles-D4Bd3SCx.js.map +1 -0
  82. package/dist/cdn/chunks/{tiptap-CwScfbsM.js → tiptap-BlLFFU3M.js} +2233 -2213
  83. package/dist/cdn/chunks/tiptap-BlLFFU3M.js.map +1 -0
  84. package/dist/cdn/editor.css +1 -1
  85. package/dist/cdn/editor.js +117 -115
  86. package/dist/cdn/editor.js.map +1 -1
  87. package/dist/{check-BRzXxFHr.js → check-CYJwFmjy.js} +1 -1
  88. package/dist/{chevron-down-DmEgzmYT.js → chevron-down-C5l-DzAA.js} +1 -1
  89. package/dist/{circle-alert-BStvZr3O.js → circle-alert-wf5HUFZY.js} +1 -1
  90. package/dist/{clock-Blwp_1R6.js → clock-Bj0bQw-K.js} +1 -1
  91. package/dist/{cloud-_olro76D.js → cloud-CoFDm9YA.js} +1 -1
  92. package/dist/{createLucideIcon-CmPAC-gt.js → createLucideIcon-Bad2kKE0.js} +4 -4
  93. package/dist/{cdn/chunks/de-C2wOXoxs.js → de-LsV0u1tP.js} +17 -3
  94. package/dist/{dist-BwgjpLfr.js → dist-34OcyoK1.js} +1 -1
  95. package/dist/{dist-Cz79qrLL.js → dist-B7w6xTU6.js} +1 -1
  96. package/dist/{dist-DULfKmTh.js → dist-BX3gGwL8.js} +5 -5
  97. package/dist/{dist-412xXefB.js → dist-Bn703mnA.js} +1 -1
  98. package/dist/{dist-u0iIJH3V.js → dist-CADDCv0o.js} +1 -1
  99. package/dist/{dist-BNEdeWub.js → dist-CGvz7vkq.js} +1 -1
  100. package/dist/{dist-BlG7k25W.js → dist-CLpPNKy9.js} +1 -1
  101. package/dist/{dist-BCQZZUE9.js → dist-ChMninLH.js} +1 -1
  102. package/dist/{dist-b7Ak-CuM.js → dist-CrQZ_af9.js} +1 -1
  103. package/dist/{dist-DhKTdU52.js → dist-CyjyYg52.js} +1426 -1406
  104. package/dist/{dist-D6x1cQeh.js → dist-Dd3ibRZm.js} +2 -2
  105. package/dist/{dist-Cgry6fNv.js → dist-DuCzdgDA.js} +1 -1
  106. package/dist/{dist-o73iaGqy.js → dist-U5vfDdYI.js} +1 -1
  107. package/dist/{en-dR7zfNC3.js → en-Bb8X1bOs.js} +17 -1
  108. package/dist/{extensions-XPlNAKIL.js → extensions-J439b7y7.js} +5 -5
  109. package/dist/{image-up-BFPbw_Zq.js → image-up-x8-WXfsx.js} +1 -1
  110. package/dist/index.d.ts +17 -0
  111. package/dist/{info-B_qLEBN2.js → info-RS_fGcGi.js} +1 -1
  112. package/dist/keys-DgYXDafq.js +10 -0
  113. package/dist/{list-checks-CGg7JxPm.js → list-checks-Bf7XdDyv.js} +1 -1
  114. package/dist/{loader-circle-CDF8eR_Q.js → loader-circle-CLZ0_FvW.js} +1 -1
  115. package/dist/{message-circle-C3cHsCJl.js → message-circle-B-1bN9ab.js} +1 -1
  116. package/dist/{pt-BR-BZ86xqK6.js → pt-BR-BwJY_cvb.js} +17 -1
  117. package/dist/{refresh-cw-Butml7Q4.js → refresh-cw-CWKWqJYG.js} +1 -1
  118. package/dist/scan-line-BtK5dEai.js +31 -0
  119. package/dist/{send-k7npFJNO.js → send-Cn1IUdzh.js} +1 -1
  120. package/dist/{shield-check-CV6GbmCu.js → shield-check-CrvMk4Ea.js} +1 -1
  121. package/dist/{sparkles-C965Xop4.js → sparkles-CgfjwvnG.js} +1 -1
  122. package/dist/style.css +1 -1
  123. package/dist/{styles-D0RCAWhB.js → styles-BUwDOWd3.js} +1221 -846
  124. package/dist/templatical-editor.js +95 -93
  125. package/dist/{text-align-start-Bxnps8fH.js → text-align-start-C3r_Rnvy.js} +1 -1
  126. package/dist/{trash-2-DpGb7fIt.js → trash-2-CjERg4x9.js} +1 -1
  127. package/dist/{triangle-alert-BKYElAwz.js → triangle-alert-Chkny574.js} +1 -1
  128. package/dist/{upload-BF7sxd1_.js → upload-e5kDRkPb.js} +1 -1
  129. package/dist/{useAliveFlag-BinvbqQR.js → useAliveFlag-cUQj9rmB.js} +1 -1
  130. package/dist/{useCloudI18n-L3H2XvdW.js → useCloudI18n-CYJKqXtI.js} +2 -2
  131. package/dist/{useEditorCore-DKYZ7aKk.js → useEditorCore-8JxXDOA4.js} +1031 -903
  132. package/dist/{useI18n-CTs_bP9d.js → useI18n-BWqM8i78.js} +2 -2
  133. package/dist/{useMergeTag-e3RSY-s3.js → useMergeTag-NHC4ylza.js} +3 -3
  134. package/dist/usePopoverRoot-B1sdY4es.js +8 -0
  135. package/dist/{vue.runtime.esm-bundler-B2k01iQh.js → vue.runtime.esm-bundler-BPa483TZ.js} +13 -4
  136. package/dist/{x-CGjkjdKK.js → x-DiPIbccg.js} +1 -1
  137. package/package.json +12 -12
  138. package/dist/ModuleBrowserModal-DsZRr87F.js +0 -198
  139. package/dist/cdn/chunks/CloudEditor-BZuzsQOZ.js.map +0 -1
  140. package/dist/cdn/chunks/ParagraphEditor-pGrfSccu.js.map +0 -1
  141. package/dist/cdn/chunks/TitleEditor-BvFbL16O.js.map +0 -1
  142. package/dist/cdn/chunks/blockTypeIcons-Kd1MT0u8.js +0 -22
  143. package/dist/cdn/chunks/de-C2wOXoxs.js.map +0 -1
  144. package/dist/cdn/chunks/en-dR7zfNC3.js.map +0 -1
  145. package/dist/cdn/chunks/features-DU6lA8l1.js.map +0 -1
  146. package/dist/cdn/chunks/icons-BjHUZZyJ.js.map +0 -1
  147. package/dist/cdn/chunks/pt-BR-BZ86xqK6.js.map +0 -1
  148. package/dist/cdn/chunks/quality-DNnYAntR.js +0 -2176
  149. package/dist/cdn/chunks/styles-DiAdtiz9.js.map +0 -1
  150. package/dist/cdn/chunks/tiptap-CwScfbsM.js.map +0 -1
  151. package/dist/keys-mFiJ5N0_.js +0 -10
  152. package/dist/scan-line-XYEqim_E.js +0 -25
  153. package/dist/usePopoverRoot-DVh7NY1q.js +0 -8
@@ -1,25 +1,25 @@
1
- import { A as e, B as t, L as n, M as r, O as i, Q as a, X as o, _ as s, at as c, b as l, c as u, d, f, g as p, h as m, j as h, k as g, l as _, m as v, o as y, ot as b, p as x, q as S, rt as C, st as w, t as T, v as E, y as D, z as O } from "./vue.runtime.esm-bundler-B2k01iQh.js";
1
+ import { A as e, B as t, L as n, M as r, O as i, Q as a, X as o, _ as s, at as c, b as l, c as u, d, f, g as p, h as m, j as h, k as g, l as _, m as v, o as y, ot as b, p as x, q as S, rt as C, st as w, t as T, v as E, y as D, z as O } from "./vue.runtime.esm-bundler-BPa483TZ.js";
2
2
  import { t as k } from "./timeouts-Bmi_yePw.js";
3
3
  import { D as A, a as j } from "./dist-BctFrpeA.js";
4
- import { C as M, F as N, b as P, t as F } from "./useEditorCore-DKYZ7aKk.js";
5
- import { l as I, t as L } from "./dist-Cgry6fNv.js";
6
- import { C as R, D as z, O as ee, c as B, l as te, r as V, s as ne, t as re } from "./keys-mFiJ5N0_.js";
7
- import { t as H } from "./useI18n-CTs_bP9d.js";
8
- import { t as U } from "./createLucideIcon-CmPAC-gt.js";
9
- import { t as W } from "./circle-alert-BStvZr3O.js";
10
- import { t as G } from "./loader-circle-CDF8eR_Q.js";
11
- import { a as K, c as ie, d as q, f as ae, i as J, l as oe, n as se, o as ce, r as le, s as ue, t as de, u as fe } from "./styles-D0RCAWhB.js";
12
- import { t as pe } from "./sparkles-C965Xop4.js";
13
- import { t as me } from "./triangle-alert-BKYElAwz.js";
14
- import { t as he } from "./check-BRzXxFHr.js";
15
- import { t as ge } from "./clock-Blwp_1R6.js";
16
- import { t as Y } from "./message-circle-C3cHsCJl.js";
17
- import { t as X } from "./send-k7npFJNO.js";
4
+ import { I as M, b as ee, t as N, w as P } from "./useEditorCore-8JxXDOA4.js";
5
+ import { l as F, t as I } from "./dist-DuCzdgDA.js";
6
+ import { D as L, M as R, c as z, j as te, l as ne, r as B, s as re, t as ie } from "./keys-DgYXDafq.js";
7
+ import { t as V } from "./useI18n-BWqM8i78.js";
8
+ import { t as H } from "./createLucideIcon-Bad2kKE0.js";
9
+ import { t as U } from "./check-CYJwFmjy.js";
10
+ import { t as W } from "./circle-alert-wf5HUFZY.js";
11
+ import { a as G, c as ae, d as oe, f as K, i as q, l as se, n as ce, o as le, p as ue, r as de, s as fe, t as pe, u as me } from "./styles-BUwDOWd3.js";
12
+ import { t as he } from "./clock-Bj0bQw-K.js";
13
+ import { t as J } from "./loader-circle-CLZ0_FvW.js";
14
+ import { t as ge } from "./message-circle-B-1bN9ab.js";
15
+ import { t as _e } from "./send-Cn1IUdzh.js";
16
+ import { t as Y } from "./sparkles-CgfjwvnG.js";
17
+ import { t as X } from "./triangle-alert-Chkny574.js";
18
18
  import { t as Z } from "./_plugin-vue_export-helper-B3ysoDQm.js";
19
- import { n as Q } from "./useCloudI18n-L3H2XvdW.js";
19
+ import { n as Q } from "./useCloudI18n-CYJKqXtI.js";
20
20
  import { d as $ } from "./styleConstants-lGobwiLH.js";
21
- import { _ as _e, a as ve, c as ye, d as be, f as xe, g as Se, h as Ce, l as we, m as Te, n as Ee, o as De, p as Oe, r as ke, s as Ae, t as je, v as Me, y as Ne } from "./cloud-_olro76D.js";
22
- var Pe = U("save", [
21
+ import { _ as ve, a as ye, c as be, d as xe, f as Se, g as Ce, h as we, l as Te, m as Ee, n as De, o as Oe, p as ke, r as Ae, s as je, t as Me, v as Ne, y as Pe } from "./cloud-CoFDm9YA.js";
22
+ var Fe = H("save", [
23
23
  ["path", {
24
24
  d: "M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",
25
25
  key: "1c8476"
@@ -35,14 +35,14 @@ var Pe = U("save", [
35
35
  ]);
36
36
  //#endregion
37
37
  //#region src/cloud/composables/useSnapshotPreview.ts
38
- function Fe(e) {
38
+ function Ie(e) {
39
39
  let { authManager: t, editor: n, history: r, conditionPreview: i, autoSave: s, onError: c } = e, l = a(null), u = o(null), f = o(null), p = !1;
40
40
  S(() => {
41
41
  p = !0;
42
42
  });
43
43
  let m = d(() => u.value !== null), h = d(() => l.value?.snapshots.value ?? []), g = d(() => l.value?.isLoading.value ?? !1), _ = d(() => l.value?.isRestoring.value ?? !1);
44
44
  function v() {
45
- n.state.template?.id && !l.value && (l.value = Se({
45
+ n.state.template?.id && !l.value && (l.value = Ce({
46
46
  authManager: t,
47
47
  templateId: n.state.template.id,
48
48
  onRestore: y,
@@ -94,7 +94,7 @@ function Fe(e) {
94
94
  }
95
95
  //#endregion
96
96
  //#region src/cloud/composables/useCloudPanelState.ts
97
- function Ie() {
97
+ function Le() {
98
98
  let e = o(null), t = d({
99
99
  get: () => e.value === "ai-chat",
100
100
  set: (t) => e.value = t ? "ai-chat" : null
@@ -117,7 +117,7 @@ function Ie() {
117
117
  function g(t) {
118
118
  l.value = !1, e.value = e.value === t ? null : t;
119
119
  }
120
- return L(u, () => {
120
+ return I(u, () => {
121
121
  l.value = !1;
122
122
  }), {
123
123
  activePanel: e,
@@ -139,8 +139,8 @@ function Ie() {
139
139
  }
140
140
  //#endregion
141
141
  //#region src/cloud/composables/useCollabUndoWarning.ts
142
- function Le(e) {
143
- let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = o(!1), a = o(!1), { start: s } = I(() => {
142
+ function Re(e) {
143
+ let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = o(!1), a = o(!1), { start: s } = F(() => {
144
144
  a.value = !1;
145
145
  }, k, { immediate: !1 });
146
146
  function c() {
@@ -153,8 +153,8 @@ function Le(e) {
153
153
  }
154
154
  //#endregion
155
155
  //#region src/cloud/composables/useCloudFeatureFlags.ts
156
- function Re(e) {
157
- let { planConfigInstance: t, aiConfig: n, editor: r } = e, i = d(() => t.hasFeature("ai_generation") && n.hasAnyMenuFeature.value), a = d(() => t.hasFeature("test_email")), s = d(() => !!r.state.template?.id), c = d(() => t.hasFeature("white_label")), l = d(() => t.config.value?.limits.max_templates ?? null), u = d(() => t.config.value?.template_count ?? 0), f = o(!1), p = o("idle"), m = o(""), { start: h } = I(() => {
156
+ function ze(e) {
157
+ let { planConfigInstance: t, aiConfig: n, editor: r } = e, i = d(() => t.hasFeature("ai_generation") && n.hasAnyMenuFeature.value), a = d(() => t.hasFeature("test_email")), s = d(() => !!r.state.template?.id), c = d(() => t.hasFeature("white_label")), l = d(() => t.config.value?.limits.max_templates ?? null), u = d(() => t.config.value?.template_count ?? 0), f = o(!1), p = o("idle"), m = o(""), { start: h } = F(() => {
158
158
  p.value = "idle";
159
159
  }, 3e3, { immediate: !1 });
160
160
  return {
@@ -172,7 +172,7 @@ function Re(e) {
172
172
  }
173
173
  //#endregion
174
174
  //#region src/cloud/composables/useCloudMediaLibrary.ts
175
- function ze(e) {
175
+ function Be(e) {
176
176
  let { onRequestMedia: t, mediaLibraryOpen: n, mediaLibraryAccept: r, authManager: i, getMediaConfig: a, onError: o } = e, s = null;
177
177
  function c(e) {
178
178
  return {
@@ -234,30 +234,30 @@ function ze(e) {
234
234
  }
235
235
  //#endregion
236
236
  //#region src/cloud/composables/useCloudInitialization.ts
237
- function Be(e) {
238
- let { config: t, translations: r, fontsManager: i, emit: a, getCommentsSidebar: s } = e, c = o(!0), l = o(!1), u = o(null), f = !1, p = { value: null }, m = null, g = null, _ = new je({
237
+ function Ve(e) {
238
+ let { config: t, translations: r, fontsManager: i, emit: a, getCommentsSidebar: s } = e, c = o(!0), l = o(!1), u = o(null), f = !1, p = { value: null }, m = null, g = null, _ = new Me({
239
239
  ...t.auth,
240
240
  onError: t.onError
241
- }), v = Te({
241
+ }), v = Ee({
242
242
  authManager: _,
243
243
  onError: t.onError
244
- }), y = o(/* @__PURE__ */ new Map()), b = be({
244
+ }), y = o(/* @__PURE__ */ new Map()), b = xe({
245
245
  authManager: _,
246
246
  defaultFontFamily: t.fonts?.defaultFont,
247
247
  templateDefaults: t.templateDefaults,
248
248
  onError: t.onError,
249
249
  lockedBlocks: y
250
- }), x = Ne({
250
+ }), x = Pe({
251
251
  authManager: _,
252
252
  onError: t.onError
253
253
  });
254
- t.mcp?.enabled && Oe({
254
+ t.mcp?.enabled && ke({
255
255
  editor: b,
256
256
  channel: x.channel,
257
257
  onOperation: t.mcp.onOperation
258
258
  });
259
259
  let S = null;
260
- t.collaboration?.enabled && (S = De({
260
+ t.collaboration?.enabled && (S = Oe({
261
261
  authManager: _,
262
262
  editor: b,
263
263
  channel: x.channel,
@@ -268,8 +268,8 @@ function Be(e) {
268
268
  onBlockUnlocked: t.collaboration.onBlockUnlocked
269
269
  }), n(() => S.lockedBlocks.value, (e) => {
270
270
  y.value = e;
271
- }, { immediate: !0 }), Ae(b, S));
272
- let C = d(() => !!t.collaboration?.enabled && v.hasFeature("collaboration")), w = F({
271
+ }, { immediate: !0 }), je(b, S));
272
+ let C = d(() => !!t.collaboration?.enabled && v.hasFeature("collaboration")), w = N({
273
273
  editor: b,
274
274
  config: {
275
275
  uiTheme: t.uiTheme,
@@ -278,9 +278,10 @@ function Be(e) {
278
278
  customBlocks: [],
279
279
  paletteBlocks: t.paletteBlocks,
280
280
  mergeTags: t.mergeTags,
281
+ logicTags: t.logicTags,
281
282
  displayConditions: t.displayConditions,
282
283
  onRequestMedia: null,
283
- lint: q(t),
284
+ lint: K(t),
284
285
  onSave: () => {
285
286
  p.value?.().catch((e) => {
286
287
  t.onError?.(e);
@@ -301,13 +302,13 @@ function Be(e) {
301
302
  keyboardOptions: { onBeforeUndo: () => g?.showCollabUndoWarning() },
302
303
  editorRoot: e.editorRoot,
303
304
  containerEl: e.containerEl
304
- }), T = Le({
305
+ }), T = Re({
305
306
  isCollaborationEnabled: C,
306
307
  getCollaboratorCount: () => S?.collaborators.value.length ?? 0,
307
308
  canUndo: w.history.canUndo
308
309
  });
309
310
  g = T;
310
- let E = Fe({
311
+ let E = Ie({
311
312
  authManager: _,
312
313
  editor: b,
313
314
  history: w.history,
@@ -316,11 +317,11 @@ function Be(e) {
316
317
  onError: t.onError
317
318
  });
318
319
  m = E;
319
- let D = Ie(), O = ve(t.ai), k = Re({
320
+ let D = Le(), O = ye(t.ai), k = ze({
320
321
  planConfigInstance: v,
321
322
  aiConfig: O,
322
323
  editor: b
323
- }), A = ze({
324
+ }), A = Be({
324
325
  onRequestMedia: t.onRequestMedia,
325
326
  mediaLibraryOpen: D.mediaLibraryOpen,
326
327
  mediaLibraryAccept: D.mediaLibraryAccept,
@@ -328,15 +329,15 @@ function Be(e) {
328
329
  getMediaConfig: () => v.config.value?.media ?? null,
329
330
  onError: t.onError
330
331
  });
331
- M({
332
+ P({
332
333
  onBlockMove: b.moveBlock,
333
334
  onBlockAdd: b.addBlock
334
335
  });
335
- let j = xe({
336
+ let j = Se({
336
337
  authManager: _,
337
338
  getFontsConfig: () => t.fonts,
338
339
  canUseCustomFonts: () => v.hasFeature("custom_fonts")
339
- }), P = Me({
340
+ }), ee = Ne({
340
341
  authManager: _,
341
342
  getTemplateId: () => b.state.template?.id ?? null,
342
343
  save: () => b.save(),
@@ -344,7 +345,7 @@ function Be(e) {
344
345
  onError: t.onError,
345
346
  isAuthReady: l,
346
347
  onBeforeTestEmail: t.onBeforeTestEmail
347
- }), I = we({
348
+ }), F = Te({
348
349
  authManager: _,
349
350
  getTemplateId: () => b.state.template?.id ?? null,
350
351
  getSocketId: () => x.getSocketId(),
@@ -353,56 +354,56 @@ function Be(e) {
353
354
  isAuthReady: l,
354
355
  hasCommentingFeature: () => t.commenting !== !1 && v.hasFeature("commenting")
355
356
  });
356
- ye({
357
- comments: I,
357
+ be({
358
+ comments: F,
358
359
  channel: x.channel
359
360
  });
360
- let L = Ce({
361
+ let I = we({
361
362
  authManager: _,
362
363
  onError: t.onError
363
- }), B = o(!1), H = o(null), U = o(!1), W = _e({
364
+ }), z = o(!1), V = o(null), H = o(!1), U = ve({
364
365
  authManager: _,
365
366
  getTemplateId: () => b.state.template?.id ?? null
366
367
  });
367
- function G(e) {
368
+ function W(e) {
368
369
  D.commentsOpen.value = !0, queueMicrotask(() => {
369
370
  s()?.filterByBlock(e);
370
371
  });
371
372
  }
372
- h(R, A.handleRequestMedia), h(V, _), h(re, O), h(te, I), h(z, L), h(ee, W), h(ne, {
373
+ h(L, A.handleRequestMedia), h(B, _), h(ie, O), h(ne, F), h(te, I), h(R, U), h(re, {
373
374
  plan: v,
374
375
  ai: O,
375
376
  comments: {
376
- getBlockCount: (e) => I.commentCountByBlock.value.get(e) ?? 0,
377
- openForBlock: G
377
+ getBlockCount: (e) => F.commentCountByBlock.value.get(e) ?? 0,
378
+ openForBlock: W
378
379
  },
379
380
  savedModules: {
380
381
  openSaveDialog: (e) => {
381
- H.value = e ?? null, B.value = !0;
382
+ V.value = e ?? null, z.value = !0;
382
383
  },
383
384
  openBrowser: () => {
384
- U.value = !0;
385
+ H.value = !0;
385
386
  },
386
- moduleCount: d(() => L.modules.value.length)
387
+ moduleCount: d(() => I.modules.value.length)
387
388
  }
388
389
  });
389
- function K(e) {
390
+ function G(e) {
390
391
  v.hasFeature("theme_customization") && (w.themeOverrides.value = e);
391
392
  }
392
- function ie(e) {
393
+ function ae(e) {
393
394
  b.setUiTheme(e);
394
395
  }
395
- async function ae() {
396
+ async function oe() {
396
397
  c.value = !0, u.value = null;
397
398
  try {
398
399
  if (await _.initialize(), f) return;
399
400
  l.value = !0;
400
- let e = await Ee({ authManager: _ });
401
+ let e = await De({ authManager: _ });
401
402
  if (f) return;
402
403
  if (!e.api.ok) throw Error("Health check failed: API is not reachable");
403
404
  if (!e.auth.ok) throw Error(`Health check failed: authentication error${e.auth.error ? ` - ${e.auth.error}` : ""}`);
404
- if (e.websocket.ok || N.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await v.fetchConfig(), f) return;
405
- i.setCustomFontsEnabled(v.hasFeature("custom_fonts")), t.customBlocks?.length && v.hasFeature("custom_blocks") && w.registerCustomBlocks(t.customBlocks), t.theme && v.hasFeature("theme_customization") && (w.themeOverrides.value = t.theme), t.modules !== !1 && v.hasFeature("saved_modules") && L.loadModules(), a("ready");
405
+ if (e.websocket.ok || M.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await v.fetchConfig(), f) return;
406
+ i.setCustomFontsEnabled(v.hasFeature("custom_fonts")), t.customBlocks?.length && v.hasFeature("custom_blocks") && w.registerCustomBlocks(t.customBlocks), t.theme && v.hasFeature("theme_customization") && (w.themeOverrides.value = t.theme), t.modules !== !1 && v.hasFeature("saved_modules") && I.loadModules(), a("ready");
406
407
  } catch (e) {
407
408
  if (f) return;
408
409
  let n = e instanceof Error ? e : Error("Initialization failed", { cause: e });
@@ -411,7 +412,7 @@ function Be(e) {
411
412
  f || (c.value = !1);
412
413
  }
413
414
  }
414
- function J() {
415
+ function q() {
415
416
  f = !0, i.cleanupFontLinks(), x.disconnect(), w.destroy(), t.onUnmount?.();
416
417
  }
417
418
  return {
@@ -430,27 +431,27 @@ function Be(e) {
430
431
  featureFlags: k,
431
432
  mediaLib: A,
432
433
  exporter: j,
433
- testEmail: P,
434
- commentsInstance: I,
435
- savedModulesHeadless: L,
436
- scoringInstance: W,
434
+ testEmail: ee,
435
+ commentsInstance: F,
436
+ savedModulesHeadless: I,
437
+ scoringInstance: U,
437
438
  panelState: D,
438
439
  snapshotPreview: E,
439
440
  collabWarning: T,
440
- showSaveModuleDialog: B,
441
- showModuleBrowserModal: U,
442
- saveModulePreSelectedBlockId: H,
441
+ showSaveModuleDialog: z,
442
+ showModuleBrowserModal: H,
443
+ saveModulePreSelectedBlockId: V,
443
444
  onSaveHook: p,
444
- initialize: ae,
445
- destroy: J,
446
- setThemeOverrides: K,
447
- setUiTheme: ie,
448
- openCommentsForBlock: G
445
+ initialize: oe,
446
+ destroy: q,
447
+ setThemeOverrides: G,
448
+ setUiTheme: ae,
449
+ openCommentsForBlock: W
449
450
  };
450
451
  }
451
452
  //#endregion
452
453
  //#region src/utils/preRenderCustomBlocks.ts
453
- async function Ve(e, t) {
454
+ async function He(e, t) {
454
455
  let n = async (e) => {
455
456
  if (A(e)) {
456
457
  let n = e;
@@ -469,10 +470,10 @@ async function Ve(e, t) {
469
470
  }
470
471
  //#endregion
471
472
  //#region src/cloud/composables/useCloudLifecycle.ts
472
- function He(e) {
473
+ function Ue(e) {
473
474
  let { config: t, editor: n, websocket: r, planConfigInstance: i, snapshotPreview: a, core: o, exporter: s, featureFlags: c, isDestroyed: l } = e;
474
475
  function u() {
475
- return ke(i.config.value.websocket);
476
+ return Ae(i.config.value.websocket);
476
477
  }
477
478
  async function d(e) {
478
479
  let i = await n.create(e);
@@ -485,7 +486,7 @@ function He(e) {
485
486
  async function p() {
486
487
  c.isSaveExporting.value = !0, c.saveStatus.value = "idle";
487
488
  try {
488
- if (await Ve(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
489
+ if (await He(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
489
490
  let e = await n.save();
490
491
  if (l()) throw Error("Component unmounted during save");
491
492
  a.initSnapshotHistory(), a.snapshotHistoryInstance.value?.loadSnapshots();
@@ -512,7 +513,7 @@ function He(e) {
512
513
  }
513
514
  //#endregion
514
515
  //#region src/cloud/composables/useCloudSaveGate.ts
515
- function Ue(e) {
516
+ function We(e) {
516
517
  let t = o(!1), n = null, r = d(() => e.planConfig.value?.accessibility?.blockOnError === !0), i = d(() => r.value ? e.issues.value.filter((e) => e.severity === "error") : []), a = d(() => i.value.length > 0);
517
518
  async function s(e) {
518
519
  return a.value ? (n = e, t.value = !0, !1) : (await e(), !0);
@@ -535,7 +536,7 @@ function Ue(e) {
535
536
  }
536
537
  //#endregion
537
538
  //#region src/cloud/components/CloudSaveGateModal.vue?vue&type=script&setup=true&lang.ts
538
- 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__ */ l({
539
+ var Ge = ["aria-label"], Ke = { 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)]" }, qe = { class: "tpl:flex tpl:items-center tpl:gap-2" }, Je = { class: "tpl:m-0 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Ye = { class: "tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Xe = { 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" }, Ze = { class: "tpl:text-xs tpl:text-[var(--tpl-text)]" }, Qe = { class: "tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, $e = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, et = /* @__PURE__ */ l({
539
540
  __name: "CloudSaveGateModal",
540
541
  props: {
541
542
  open: { type: Boolean },
@@ -557,18 +558,18 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
557
558
  "aria-label": C(a).saveGate.title,
558
559
  class: "tpl:fixed tpl:inset-0 tpl:z-50 tpl:flex tpl:items-center tpl:justify-center tpl:bg-black/40 tpl:p-6",
559
560
  onClick: o[2] ||= u((e) => i("cancel"), ["self"])
560
- }, [f("div", Ge, [
561
- f("header", Ke, [E(C(me), {
561
+ }, [f("div", Ke, [
562
+ f("header", qe, [E(C(X), {
562
563
  size: 18,
563
564
  "stroke-width": 2,
564
565
  class: "tpl:text-[var(--tpl-warning)]"
565
- }), f("h2", qe, w(C(a).saveGate.title), 1)]),
566
- f("p", Je, w(C(a).saveGate.body), 1),
567
- f("ul", Ye, [(e(!0), m(_, null, r(t.issues, (t) => (e(), m("li", {
566
+ }), f("h2", Je, w(C(a).saveGate.title), 1)]),
567
+ f("p", Ye, w(C(a).saveGate.body), 1),
568
+ f("ul", Xe, [(e(!0), m(_, null, r(t.issues, (t) => (e(), m("li", {
568
569
  key: `${t.ruleId}-${t.blockId ?? "template"}`,
569
570
  class: "tpl:flex tpl:flex-col tpl:gap-0.5 tpl:rounded tpl:px-2 tpl:py-1.5"
570
- }, [f("span", Xe, w(t.message), 1), f("span", Ze, w(t.ruleId), 1)]))), 128))]),
571
- f("footer", Qe, [f("button", {
571
+ }, [f("span", Ze, w(t.message), 1), f("span", Qe, w(t.ruleId), 1)]))), 128))]),
572
+ f("footer", $e, [f("button", {
572
573
  type: "button",
573
574
  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)]",
574
575
  onClick: o[0] ||= (e) => i("cancel")
@@ -577,11 +578,11 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
577
578
  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",
578
579
  onClick: o[1] ||= (e) => i("confirm")
579
580
  }, w(C(a).saveGate.confirm), 1)])
580
- ])], 8, We)) : v("", !0)]),
581
+ ])], 8, Ge)) : v("", !0)]),
581
582
  _: 1
582
583
  }));
583
584
  }
584
- }), et = {
585
+ }), tt = {
585
586
  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",
586
587
  style: {
587
588
  "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)",
@@ -590,24 +591,24 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
590
591
  "box-shadow": "var(--tpl-shadow-md)",
591
592
  "border-bottom": "1px solid var(--tpl-border)"
592
593
  }
593
- }, tt = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, nt = {
594
+ }, nt = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, rt = {
594
595
  key: 0,
595
596
  class: "tpl:text-xs tpl:opacity-60 tpl:text-[var(--tpl-text-muted)]"
596
- }, 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 = {
597
+ }, it = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, at = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, ot = ["data-tooltip"], st = {
597
598
  key: 1,
598
599
  "aria-live": "polite",
599
600
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success)]"
600
- }, st = {
601
+ }, ct = {
601
602
  key: 2,
602
603
  "aria-live": "polite",
603
604
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
604
- }, ct = ["aria-label", "aria-expanded"], lt = {
605
+ }, lt = ["aria-label", "aria-expanded"], ut = {
605
606
  key: 0,
606
607
  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)]"
607
- }, ut = ["aria-expanded"], dt = {
608
+ }, dt = ["aria-expanded"], ft = {
608
609
  key: 0,
609
610
  class: "tpl:absolute tpl:right-0 tpl:top-full tpl:z-50 tpl:mt-1 tpl:origin-top-right"
610
- }, ft = ["disabled"], pt = ["disabled"], mt = /* @__PURE__ */ l({
611
+ }, pt = ["disabled"], mt = ["disabled"], ht = /* @__PURE__ */ l({
611
612
  __name: "CloudHeader",
612
613
  props: {
613
614
  editor: {},
@@ -625,22 +626,22 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
625
626
  },
626
627
  emits: ["save"],
627
628
  setup(t) {
628
- let n = D(() => import("./CollaboratorBar-DgwjisX2.js")), r = D(() => import("./SnapshotHistory-ByloTpwh.js")), i = D(() => import("./AiFeatureMenu-DxDwLS8B.js")), { t: a, format: o } = Q();
629
- return (l, d) => (e(), m("header", et, [
630
- f("div", tt, [t.featureFlags.templateLimit.value === null ? v("", !0) : (e(), m("span", nt, w(C(o)(C(a).header.templatesUsed, {
629
+ let n = D(() => import("./CollaboratorBar-B_EnJLtW.js")), r = D(() => import("./SnapshotHistory-CVgiNJtE.js")), i = D(() => import("./AiFeatureMenu-F2diEDgV.js")), { t: a, format: o } = Q();
630
+ return (l, d) => (e(), m("header", tt, [
631
+ f("div", nt, [t.featureFlags.templateLimit.value === null ? v("", !0) : (e(), m("span", rt, w(C(o)(C(a).header.templatesUsed, {
631
632
  used: t.featureFlags.templateCount.value,
632
633
  max: t.featureFlags.templateLimit.value
633
634
  })), 1))]),
634
- f("div", rt, [
635
- E(K, {
635
+ f("div", it, [
636
+ E(le, {
636
637
  viewport: t.editor.state.viewport,
637
638
  onChange: t.editor.setViewport
638
639
  }, null, 8, ["viewport", "onChange"]),
639
- E(le, {
640
+ E(q, {
640
641
  "dark-mode": t.editor.state.darkMode,
641
642
  onChange: t.editor.setDarkMode
642
643
  }, null, 8, ["dark-mode", "onChange"]),
643
- E(J, {
644
+ E(G, {
644
645
  "preview-mode": t.editor.state.previewMode,
645
646
  onChange: t.editor.setPreviewMode
646
647
  }, null, 8, ["preview-mode", "onChange"]),
@@ -664,7 +665,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
664
665
  "onNavigate"
665
666
  ])) : v("", !0)
666
667
  ]),
667
- f("div", it, [
668
+ f("div", at, [
668
669
  t.featureFlags.saveStatus.value === "error" ? (e(), m("div", {
669
670
  key: 0,
670
671
  "aria-live": "assertive",
@@ -673,10 +674,10 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
673
674
  }, [E(C(W), {
674
675
  size: 12,
675
676
  "stroke-width": 2.5
676
- }), s(" " + w(C(a).header.saveFailed), 1)], 8, at)) : t.featureFlags.saveStatus.value === "saved" ? (e(), m("div", ot, [E(C(he), {
677
+ }), s(" " + w(C(a).header.saveFailed), 1)], 8, ot)) : t.featureFlags.saveStatus.value === "saved" ? (e(), m("div", st, [E(C(U), {
677
678
  size: 12,
678
679
  "stroke-width": 2.5
679
- }), s(" " + w(C(a).header.saved), 1)])) : t.editor.state.isDirty ? (e(), m("div", st, [d[4] ||= f("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), s(" " + w(C(a).header.unsaved), 1)])) : v("", !0),
680
+ }), s(" " + w(C(a).header.saved), 1)])) : t.editor.state.isDirty ? (e(), m("div", ct, [d[4] ||= f("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), s(" " + w(C(a).header.unsaved), 1)])) : v("", !0),
680
681
  t.commentsInstance.isEnabled.value && t.featureFlags.hasTemplateSaved.value ? (e(), m("button", {
681
682
  key: 3,
682
683
  "aria-label": t.commentsInstance.unresolvedCount.value > 0 ? `${C(a).comments.button} (${t.commentsInstance.unresolvedCount.value})` : C(a).comments.button,
@@ -689,13 +690,13 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
689
690
  }),
690
691
  onClick: d[0] ||= (e) => t.panelState.commentsOpen.value = !t.panelState.commentsOpen.value
691
692
  }, [
692
- E(C(Y), {
693
+ E(C(ge), {
693
694
  size: 16,
694
695
  "stroke-width": 2
695
696
  }),
696
697
  s(" " + w(C(a).comments.button) + " ", 1),
697
- t.commentsInstance.unresolvedCount.value > 0 && !t.panelState.commentsOpen.value ? (e(), m("span", lt, w(t.commentsInstance.unresolvedCount.value), 1)) : v("", !0)
698
- ], 14, ct)) : v("", !0),
698
+ t.commentsInstance.unresolvedCount.value > 0 && !t.panelState.commentsOpen.value ? (e(), m("span", ut, w(t.commentsInstance.unresolvedCount.value), 1)) : v("", !0)
699
+ ], 14, lt)) : v("", !0),
699
700
  t.featureFlags.canUseAiGeneration.value && t.featureFlags.hasTemplateSaved.value ? (e(), m("div", {
700
701
  key: 4,
701
702
  ref: (e) => t.panelState.aiMenuRef.value = e,
@@ -704,11 +705,11 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
704
705
  "aria-expanded": t.panelState.aiMenuOpen.value,
705
706
  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", t.panelState.aiButtonActive.value ? "tpl-ai-btn--active" : "tpl-ai-btn--idle"]),
706
707
  onClick: d[1] ||= u((...e) => t.panelState.toggleAiMenu && t.panelState.toggleAiMenu(...e), ["stop"])
707
- }, [E(C(pe), {
708
+ }, [E(C(Y), {
708
709
  size: 16,
709
710
  "stroke-width": 2,
710
711
  class: "tpl-ai-btn-icon"
711
- }), s(" " + w(C(a).aiChat.button), 1)], 10, ut), E(T, {
712
+ }), s(" " + w(C(a).aiChat.button), 1)], 10, dt), E(T, {
712
713
  "enter-active-class": "tpl:transition-all tpl:duration-150 tpl:ease-out",
713
714
  "enter-from-class": "tpl:scale-95 tpl:opacity-0",
714
715
  "enter-to-class": "tpl:scale-100 tpl:opacity-100",
@@ -716,7 +717,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
716
717
  "leave-from-class": "tpl:scale-100 tpl:opacity-100",
717
718
  "leave-to-class": "tpl:scale-95 tpl:opacity-0"
718
719
  }, {
719
- default: O(() => [t.panelState.aiMenuOpen.value ? (e(), m("div", dt, [E(C(i), {
720
+ default: O(() => [t.panelState.aiMenuOpen.value ? (e(), m("div", ft, [E(C(i), {
720
721
  "active-feature": t.panelState.activeAiFeature.value,
721
722
  onSelect: t.panelState.handleAiFeatureSelect
722
723
  }, null, 8, ["active-feature", "onSelect"])])) : v("", !0)]),
@@ -732,16 +733,16 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
732
733
  },
733
734
  disabled: t.testEmail.isSending.value || !t.featureFlags.hasTemplateSaved.value,
734
735
  onClick: d[2] ||= (e) => t.panelState.testEmailModalOpen.value = !0
735
- }, [t.testEmail.isSending.value ? (e(), x(C(G), {
736
+ }, [t.testEmail.isSending.value ? (e(), x(C(J), {
736
737
  key: 1,
737
738
  class: "tpl-spinner",
738
739
  size: 16,
739
740
  "stroke-width": 2
740
- })) : (e(), x(C(X), {
741
+ })) : (e(), x(C(_e), {
741
742
  key: 0,
742
743
  size: 16,
743
744
  "stroke-width": 2
744
- })), s(" " + w(C(a).testEmail.button), 1)], 10, ft)) : v("", !0),
745
+ })), s(" " + w(C(a).testEmail.button), 1)], 10, pt)) : v("", !0),
745
746
  f("button", {
746
747
  class: c(C($)),
747
748
  style: {
@@ -751,20 +752,20 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
751
752
  },
752
753
  disabled: t.isSaveDisabled,
753
754
  onClick: d[3] ||= (e) => l.$emit("save")
754
- }, [t.isSaving ? (e(), x(C(G), {
755
+ }, [t.isSaving ? (e(), x(C(J), {
755
756
  key: 1,
756
757
  class: "tpl-spinner",
757
758
  size: 16,
758
759
  "stroke-width": 2
759
- })) : (e(), x(C(Pe), {
760
+ })) : (e(), x(C(Fe), {
760
761
  key: 0,
761
762
  size: 16,
762
763
  "stroke-width": 2
763
- })), s(" " + w(t.isSaving ? C(a).header.saving : C(a).header.save), 1)], 10, pt)
764
+ })), s(" " + w(t.isSaving ? C(a).header.saving : C(a).header.save), 1)], 10, mt)
764
765
  ])
765
766
  ]));
766
767
  }
767
- }), ht = /* @__PURE__ */ l({
768
+ }), gt = /* @__PURE__ */ l({
768
769
  __name: "CloudPanels",
769
770
  props: {
770
771
  config: {},
@@ -787,7 +788,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
787
788
  "module-insert"
788
789
  ],
789
790
  setup(t, { expose: n, emit: r }) {
790
- let i = D(() => import("./AiChatSidebar-B0-U5-sb.js")), a = D(() => import("./CommentsSidebar-CpRLN40c.js")), s = D(() => import("./DesignReferenceSidebar-BgPDbOsl.js")), c = D(() => import("./TemplateScoringPanel-CUxiPtEf.js")), l = D(() => import("./TestEmailModal-BvZBMBad.js")), u = D(() => import("./SaveModuleDialog-C38VqN2T.js")), d = D(() => import("./ModuleBrowserModal-DsZRr87F.js")), f = D(async () => {
791
+ let i = D(() => import("./AiChatSidebar-J8iO_sX7.js")), a = D(() => import("./CommentsSidebar-DaP9BA_r.js")), s = D(() => import("./DesignReferenceSidebar-BHRlTqlT.js")), c = D(() => import("./TemplateScoringPanel-lm0_9nYi.js")), l = D(() => import("./TestEmailModal-WBMdiW5S.js")), u = D(() => import("./SaveModuleDialog-DuEKgumL.js")), d = D(() => import("./ModuleBrowserModal-DOsdaS6s.js")), f = D(async () => {
791
792
  try {
792
793
  return (await import("@templatical/media-library")).MediaLibraryModal;
793
794
  } catch {
@@ -869,23 +870,23 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
869
870
  ])
870
871
  ], 64));
871
872
  }
872
- }), gt = {
873
+ }), _t = {
873
874
  key: 0,
874
875
  class: "tpl-loading tpl:absolute tpl:inset-0 tpl:z-overlay tpl:flex tpl:flex-col tpl:bg-[var(--tpl-bg)]"
875
- }, _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__ */ l({
876
+ }, vt = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, yt = { 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)]" }, bt = /* @__PURE__ */ l({
876
877
  __name: "CloudLoadingOverlay",
877
878
  props: { visible: { type: Boolean } },
878
879
  setup(t) {
879
- return (n, i) => t.visible ? (e(), m("div", gt, [i[1] ||= p("<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), f("div", _t, [f("div", vt, [(e(), m(_, null, r(5, (e) => f("div", {
880
+ return (n, i) => t.visible ? (e(), m("div", _t, [i[1] ||= p("<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), f("div", vt, [f("div", yt, [(e(), m(_, null, r(5, (e) => f("div", {
880
881
  key: e,
881
882
  class: "tpl-shimmer tpl:size-7 tpl:rounded-[var(--tpl-radius-sm)]"
882
883
  })), 64))]), i[0] ||= p("<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)])])) : v("", !0);
883
884
  }
884
- }), bt = {
885
+ }), xt = {
885
886
  key: 0,
886
887
  role: "alert",
887
888
  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)]"
888
- }, 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__ */ l({
889
+ }, St = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, Ct = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:text-center" }, wt = { class: "tpl:text-lg tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Tt = { class: "tpl:max-w-md tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Et = /* @__PURE__ */ l({
889
890
  __name: "CloudErrorOverlay",
890
891
  props: {
891
892
  error: {},
@@ -900,13 +901,13 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
900
901
  function o(e) {
901
902
  return "isNotFound" in e && !!e.isNotFound;
902
903
  }
903
- return (n, s) => t.visible && t.error ? (e(), m("div", bt, [
904
- f("div", xt, [E(C(W), {
904
+ return (n, s) => t.visible && t.error ? (e(), m("div", xt, [
905
+ f("div", St, [E(C(W), {
905
906
  size: 32,
906
907
  "stroke-width": 1.5,
907
908
  class: "tpl:text-[var(--tpl-danger)]"
908
909
  })]),
909
- f("div", St, [f("h2", Ct, w(C(i).error.title), 1), f("p", wt, w(a(t.error)), 1)]),
910
+ f("div", Ct, [f("h2", wt, w(C(i).error.title), 1), f("p", Tt, w(a(t.error)), 1)]),
910
911
  o(t.error) ? v("", !0) : (e(), m("button", {
911
912
  key: 0,
912
913
  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)]",
@@ -914,20 +915,20 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
914
915
  }, w(C(i).error.retry), 1))
915
916
  ])) : v("", !0);
916
917
  }
917
- }), Et = {
918
+ }), Dt = {
918
919
  key: 0,
919
920
  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)]"
920
- }, 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__ */ l({
921
+ }, Ot = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, kt = { class: "tpl:flex tpl:items-center tpl:gap-2" }, At = /* @__PURE__ */ l({
921
922
  __name: "SnapshotPreviewBanner",
922
923
  props: { visible: { type: Boolean } },
923
924
  emits: ["cancel", "confirm"],
924
925
  setup(t, { emit: n }) {
925
926
  let r = n, { t: i } = Q();
926
- return (n, a) => t.visible ? (e(), m("div", Et, [f("div", Dt, [E(C(ge), {
927
+ return (n, a) => t.visible ? (e(), m("div", Dt, [f("div", Ot, [E(C(he), {
927
928
  size: 18,
928
929
  "stroke-width": 2,
929
930
  class: "tpl:text-[var(--tpl-primary)]"
930
- }), f("span", null, w(C(i).snapshotPreview.message), 1)]), f("div", Ot, [f("button", {
931
+ }), f("span", null, w(C(i).snapshotPreview.message), 1)]), f("div", kt, [f("button", {
931
932
  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)]",
932
933
  style: { "background-color": "transparent" },
933
934
  onClick: a[0] ||= (e) => r("cancel")
@@ -936,7 +937,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
936
937
  onClick: a[1] ||= (e) => r("confirm")
937
938
  }, w(C(i).snapshotPreview.restore), 1)])])) : v("", !0);
938
939
  }
939
- }), At = {
940
+ }), jt = {
940
941
  key: 0,
941
942
  role: "status",
942
943
  "aria-live": "polite",
@@ -946,14 +947,14 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
946
947
  color: "var(--tpl-text)",
947
948
  border: "1px solid var(--tpl-warning)"
948
949
  }
949
- }, jt = /* @__PURE__ */ l({
950
+ }, Mt = /* @__PURE__ */ l({
950
951
  __name: "CollabUndoToast",
951
952
  props: { visible: { type: Boolean } },
952
953
  setup(t) {
953
- let { t: n } = H();
954
- return (r, i) => t.visible ? (e(), m("div", At, w(C(n).history.collabWarning), 1)) : v("", !0);
954
+ let { t: n } = V();
955
+ return (r, i) => t.visible ? (e(), m("div", jt, w(C(n).history.collabWarning), 1)) : v("", !0);
955
956
  }
956
- }), 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__*/ Z(/* @__PURE__ */ l({
957
+ }), Nt = ["data-tpl-theme"], Pt = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, Ft = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, It = ["aria-label"], Lt = /*#__PURE__*/ Z(/* @__PURE__ */ l({
957
958
  __name: "CloudEditor",
958
959
  props: {
959
960
  config: {},
@@ -965,8 +966,8 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
965
966
  emits: ["ready"],
966
967
  setup(n, { expose: r, emit: a }) {
967
968
  let l = n;
968
- h(B, l.cloudTranslations);
969
- let d = a, p = o(null), _ = o(null), S = Be({
969
+ h(z, l.cloudTranslations);
970
+ let d = a, p = o(null), _ = o(null), S = Ve({
970
971
  config: l.config,
971
972
  translations: l.translations,
972
973
  fontsManager: l.fontsManager,
@@ -974,36 +975,36 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
974
975
  getCommentsSidebar: () => p.value ? { filterByBlock: p.value.filterCommentsByBlock } : null,
975
976
  editorRoot: l.shadowRoot,
976
977
  containerEl: _
977
- }), { isInitializing: D, isAuthReady: k, initError: A, planConfigInstance: M, websocket: N, collaboration: F, isCollaborationEnabled: I, editor: L, core: R, featureFlags: z, mediaLib: ee, exporter: te, testEmail: V, commentsInstance: ne, savedModulesHeadless: re, panelState: H, snapshotPreview: U, collabWarning: W, showSaveModuleDialog: G, showModuleBrowserModal: K, saveModulePreSelectedBlockId: q, setThemeOverrides: J, setUiTheme: le } = S, { showNotice: pe } = P(() => l.config.smallScreenNotice);
978
- async function me(e) {
978
+ }), { isInitializing: D, isAuthReady: k, initError: A, planConfigInstance: M, websocket: N, collaboration: P, isCollaborationEnabled: F, editor: I, core: L, featureFlags: R, mediaLib: te, exporter: ne, testEmail: B, commentsInstance: re, savedModulesHeadless: ie, panelState: V, snapshotPreview: H, collabWarning: U, showSaveModuleDialog: W, showModuleBrowserModal: G, saveModulePreSelectedBlockId: K, setThemeOverrides: q, setUiTheme: le } = S, { showNotice: he } = ee(() => l.config.smallScreenNotice);
979
+ async function J(e) {
979
980
  try {
980
- await V.sendTestEmail(e), H.testEmailModalOpen.value = !1;
981
+ await B.sendTestEmail(e), V.testEmailModalOpen.value = !1;
981
982
  } catch {}
982
983
  }
983
- async function he() {
984
+ async function ge() {
984
985
  try {
985
- await U.confirmRestoreSnapshot();
986
+ await H.confirmRestoreSnapshot();
986
987
  } catch {}
987
988
  }
988
- function ge(e, t) {
989
+ function _e(e, t) {
989
990
  for (let n = 0; n < e.content.length; n++) {
990
991
  let r = j(e.content[n]), i = t === void 0 ? void 0 : t + n;
991
- L.addBlock(r, void 0, void 0, i);
992
+ I.addBlock(r, void 0, void 0, i);
992
993
  }
993
- K.value = !1;
994
+ G.value = !1;
994
995
  }
995
- let Y = He({
996
+ let Y = Ue({
996
997
  config: l.config,
997
- editor: L,
998
+ editor: I,
998
999
  websocket: N,
999
1000
  planConfigInstance: M,
1000
- snapshotPreview: U,
1001
- core: R,
1002
- exporter: te,
1003
- featureFlags: z,
1001
+ snapshotPreview: H,
1002
+ core: L,
1003
+ exporter: ne,
1004
+ featureFlags: R,
1004
1005
  isDestroyed: S.isDestroyed
1005
- }), X = Ue({
1006
- issues: R.templateLint ? R.templateLint.issues : o([]),
1006
+ }), X = We({
1007
+ issues: L.templateLint ? L.templateLint.issues : o([]),
1007
1008
  planConfig: M.config
1008
1009
  });
1009
1010
  async function Z() {
@@ -1014,24 +1015,24 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1014
1015
  }), g(() => {
1015
1016
  S.destroy();
1016
1017
  }), r({
1017
- getContent: () => L.content.value,
1018
- setContent: (e) => L.setContent(e),
1018
+ getContent: () => I.content.value,
1019
+ setContent: (e) => I.setContent(e),
1019
1020
  setTheme: le,
1020
- setThemeOverrides: J,
1021
+ setThemeOverrides: q,
1021
1022
  create: Y.createTemplate,
1022
1023
  load: Y.loadTemplate,
1023
1024
  save: Y.saveTemplate,
1024
- sendTestEmail: V.sendTestEmail
1025
+ sendTestEmail: B.sendTestEmail
1025
1026
  }), (r, i) => (e(), m("div", {
1026
1027
  ref_key: "rootEl",
1027
1028
  ref: _,
1028
- class: c(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": C(L).state.darkMode }]),
1029
- "data-tpl-theme": C(R).resolvedTheme.value,
1030
- style: b(C(R).themeStyles.value),
1029
+ class: c(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": C(I).state.darkMode }]),
1030
+ "data-tpl-theme": C(L).resolvedTheme.value,
1031
+ style: b(C(L).themeStyles.value),
1031
1032
  onDragover: i[9] ||= u(() => {}, ["prevent"]),
1032
1033
  onDrop: i[10] ||= u(() => {}, ["prevent"])
1033
1034
  }, [
1034
- E(oe),
1035
+ E(me),
1035
1036
  E(T, {
1036
1037
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
1037
1038
  "enter-from-class": "tpl:opacity-100",
@@ -1040,7 +1041,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1040
1041
  "leave-from-class": "tpl:opacity-100",
1041
1042
  "leave-to-class": "tpl:opacity-0"
1042
1043
  }, {
1043
- default: O(() => [E(yt, { visible: C(D) || C(L).state.isLoading }, null, 8, ["visible"])]),
1044
+ default: O(() => [E(bt, { visible: C(D) || C(I).state.isLoading }, null, 8, ["visible"])]),
1044
1045
  _: 1
1045
1046
  }),
1046
1047
  E(T, {
@@ -1051,7 +1052,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1051
1052
  "leave-from-class": "tpl:opacity-100",
1052
1053
  "leave-to-class": "tpl:opacity-0"
1053
1054
  }, {
1054
- default: O(() => [E(Tt, {
1055
+ default: O(() => [E(Et, {
1055
1056
  error: C(A),
1056
1057
  visible: !!C(A) && !C(D),
1057
1058
  onRetry: C(S).initialize
@@ -1062,19 +1063,19 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1062
1063
  ])]),
1063
1064
  _: 1
1064
1065
  }),
1065
- E(mt, {
1066
- editor: C(L),
1067
- core: C(R),
1068
- "feature-flags": C(z),
1069
- "panel-state": C(H),
1070
- "snapshot-preview": C(U),
1071
- "comments-instance": C(ne),
1072
- "test-email": C(V),
1066
+ E(ht, {
1067
+ editor: C(I),
1068
+ core: C(L),
1069
+ "feature-flags": C(R),
1070
+ "panel-state": C(V),
1071
+ "snapshot-preview": C(H),
1072
+ "comments-instance": C(re),
1073
+ "test-email": C(B),
1073
1074
  websocket: C(N),
1074
- collaboration: C(F),
1075
- "is-collaboration-enabled": C(I),
1076
- "is-saving": C(L).state.isSaving || C(z).isSaveExporting.value,
1077
- "is-save-disabled": C(L).state.isSaving || C(z).isSaveExporting.value || !C(L).state.isDirty,
1075
+ collaboration: C(P),
1076
+ "is-collaboration-enabled": C(F),
1077
+ "is-saving": C(I).state.isSaving || C(R).isSaveExporting.value,
1078
+ "is-save-disabled": C(I).state.isSaving || C(R).isSaveExporting.value || !C(I).state.isDirty,
1078
1079
  onSave: Z
1079
1080
  }, null, 8, [
1080
1081
  "editor",
@@ -1090,7 +1091,7 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1090
1091
  "is-saving",
1091
1092
  "is-save-disabled"
1092
1093
  ]),
1093
- E($e, {
1094
+ E(et, {
1094
1095
  open: C(X).modalOpen.value,
1095
1096
  issues: C(X).blockingIssues.value,
1096
1097
  onCancel: C(X).cancel,
@@ -1101,10 +1102,10 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1101
1102
  "onCancel",
1102
1103
  "onConfirm"
1103
1104
  ]),
1104
- E(kt, {
1105
- visible: C(U).isPreviewingSnapshot.value,
1106
- onCancel: C(U).cancelPreview,
1107
- onConfirm: he
1105
+ E(At, {
1106
+ visible: C(H).isPreviewingSnapshot.value,
1107
+ onCancel: C(H).cancelPreview,
1108
+ onConfirm: ge
1108
1109
  }, null, 8, ["visible", "onCancel"]),
1109
1110
  E(T, {
1110
1111
  "enter-active-class": "tpl:transition-all tpl:duration-200 tpl:ease-out",
@@ -1114,18 +1115,18 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1114
1115
  "leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
1115
1116
  "leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
1116
1117
  }, {
1117
- default: O(() => [E(jt, { visible: C(W).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1118
+ default: O(() => [E(Mt, { visible: C(U).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1118
1119
  _: 1
1119
1120
  }),
1120
- t(E(ie, null, null, 512), [[y, !C(L).state.previewMode]]),
1121
+ t(E(se, null, null, 512), [[y, !C(I).state.previewMode]]),
1121
1122
  f("div", {
1122
- class: c(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [C(L).state.previewMode ? "tpl:left-0 tpl:right-0" : C(H).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", C(U).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1123
+ class: c(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [C(I).state.previewMode ? "tpl:left-0 tpl:right-0" : C(V).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", C(H).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1123
1124
  style: {
1124
1125
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
1125
1126
  "background-color": "var(--tpl-canvas-bg)"
1126
1127
  }
1127
- }, [f("div", Nt, [E(T, { name: "tpl-restore-btn" }, {
1128
- default: O(() => [C(R).conditionPreview.hasHiddenBlocks.value ? (e(), m("button", {
1128
+ }, [f("div", Pt, [E(T, { name: "tpl-restore-btn" }, {
1129
+ default: O(() => [C(L).conditionPreview.hasHiddenBlocks.value ? (e(), m("button", {
1129
1130
  key: 0,
1130
1131
  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",
1131
1132
  style: {
@@ -1134,22 +1135,22 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1134
1135
  "border-color": "var(--tpl-warning)",
1135
1136
  "backdrop-filter": "blur(8px)"
1136
1137
  },
1137
- onClick: i[0] ||= (e) => C(R).conditionPreview.reset()
1138
- }, [E(C(ae), {
1138
+ onClick: i[0] ||= (e) => C(L).conditionPreview.reset()
1139
+ }, [E(C(ue), {
1139
1140
  size: 13,
1140
1141
  "stroke-width": 2
1141
- }), s(" " + w(C(R).t.blockSettings.restoreHiddenBlocks), 1)])) : v("", !0)]),
1142
+ }), s(" " + w(C(L).t.blockSettings.restoreHiddenBlocks), 1)])) : v("", !0)]),
1142
1143
  _: 1
1143
- })]), f("main", Pt, [E(fe, {
1144
- viewport: C(L).state.viewport,
1145
- content: C(L).content.value,
1146
- "selected-block-id": C(L).state.selectedBlockId,
1147
- "dark-mode": C(L).state.darkMode,
1148
- "preview-mode": C(L).state.previewMode,
1149
- "locked-blocks": C(F)?.lockedBlocks.value ?? void 0,
1150
- onSelectBlock: C(L).selectBlock,
1151
- onOpenAiChat: i[1] ||= (e) => C(H).aiChatOpen.value = !0,
1152
- onOpenDesignReference: i[2] ||= (e) => C(H).designReferenceOpen.value = !0
1144
+ })]), f("main", Ft, [E(oe, {
1145
+ viewport: C(I).state.viewport,
1146
+ content: C(I).content.value,
1147
+ "selected-block-id": C(I).state.selectedBlockId,
1148
+ "dark-mode": C(I).state.darkMode,
1149
+ "preview-mode": C(I).state.previewMode,
1150
+ "locked-blocks": C(P)?.lockedBlocks.value ?? void 0,
1151
+ onSelectBlock: C(I).selectBlock,
1152
+ onOpenAiChat: i[1] ||= (e) => C(V).aiChatOpen.value = !0,
1153
+ onOpenDesignReference: i[2] ||= (e) => C(V).designReferenceOpen.value = !0
1153
1154
  }, null, 8, [
1154
1155
  "viewport",
1155
1156
  "content",
@@ -1159,51 +1160,51 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1159
1160
  "locked-blocks",
1160
1161
  "onSelectBlock"
1161
1162
  ])])], 2),
1162
- n.config.branding !== !1 && !C(z).isWhiteLabeled.value ? (e(), x(se, {
1163
+ n.config.branding !== !1 && !C(R).isWhiteLabeled.value ? (e(), x(de, {
1163
1164
  key: 0,
1164
- "position-class": [C(L).state.previewMode ? "tpl:left-0 tpl:right-0" : C(H).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1165
+ "position-class": [C(I).state.previewMode ? "tpl:left-0 tpl:right-0" : C(V).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1165
1166
  }, null, 8, ["position-class"])) : v("", !0),
1166
1167
  f("div", {
1167
1168
  class: "tpl-sr-only",
1168
1169
  role: "status",
1169
1170
  "aria-live": "polite",
1170
1171
  "aria-atomic": "true",
1171
- "aria-label": C(R).t.landmarks.reorderAnnouncements
1172
- }, w(C(R).keyboardReorder.announcement.value), 9, Ft),
1173
- t(E(ue, {
1174
- "selected-block": C(L).selectedBlock.value,
1175
- settings: C(L).content.value.settings,
1176
- "shifted-left": C(H).rightPanelOpen.value,
1177
- onUpdateBlock: i[3] ||= (e) => C(L).updateBlock(C(L).selectedBlock.value.id, e),
1178
- onDeleteBlock: i[4] ||= (e) => C(R).blockActions.deleteBlock(C(L).selectedBlock.value.id),
1179
- onDuplicateBlock: i[5] ||= (e) => C(R).blockActions.duplicateBlock(C(L).selectedBlock.value),
1180
- onUpdateSettings: C(L).updateSettings
1172
+ "aria-label": C(L).t.landmarks.reorderAnnouncements
1173
+ }, w(C(L).keyboardReorder.announcement.value), 9, It),
1174
+ t(E(ae, {
1175
+ "selected-block": C(I).selectedBlock.value,
1176
+ settings: C(I).content.value.settings,
1177
+ "shifted-left": C(V).rightPanelOpen.value,
1178
+ onUpdateBlock: i[3] ||= (e) => C(I).updateBlock(C(I).selectedBlock.value.id, e),
1179
+ onDeleteBlock: i[4] ||= (e) => C(L).blockActions.deleteBlock(C(I).selectedBlock.value.id),
1180
+ onDuplicateBlock: i[5] ||= (e) => C(L).blockActions.duplicateBlock(C(I).selectedBlock.value),
1181
+ onUpdateSettings: C(I).updateSettings
1181
1182
  }, null, 8, [
1182
1183
  "selected-block",
1183
1184
  "settings",
1184
1185
  "shifted-left",
1185
1186
  "onUpdateSettings"
1186
- ]), [[y, !C(L).state.previewMode]]),
1187
- !C(D) && C(k) ? (e(), x(ht, {
1187
+ ]), [[y, !C(I).state.previewMode]]),
1188
+ !C(D) && C(k) ? (e(), x(gt, {
1188
1189
  key: 1,
1189
1190
  ref_key: "cloudPanelsRef",
1190
1191
  ref: p,
1191
1192
  config: l.config,
1192
- editor: C(L),
1193
- core: C(R),
1194
- "panel-state": C(H),
1193
+ editor: C(I),
1194
+ core: C(L),
1195
+ "panel-state": C(V),
1195
1196
  "plan-config-instance": C(M),
1196
- "test-email": C(V),
1197
- "media-lib": C(ee),
1198
- "saved-modules-headless": C(re),
1199
- "show-save-module-dialog": C(G),
1200
- "save-module-pre-selected-block-id": C(q),
1201
- "show-module-browser-modal": C(K),
1202
- "onUpdate:showSaveModuleDialog": i[6] ||= (e) => G.value = e,
1203
- "onUpdate:saveModulePreSelectedBlockId": i[7] ||= (e) => q.value = e,
1204
- "onUpdate:showModuleBrowserModal": i[8] ||= (e) => K.value = e,
1205
- onSendTestEmail: me,
1206
- onModuleInsert: ge
1197
+ "test-email": C(B),
1198
+ "media-lib": C(te),
1199
+ "saved-modules-headless": C(ie),
1200
+ "show-save-module-dialog": C(W),
1201
+ "save-module-pre-selected-block-id": C(K),
1202
+ "show-module-browser-modal": C(G),
1203
+ "onUpdate:showSaveModuleDialog": i[6] ||= (e) => W.value = e,
1204
+ "onUpdate:saveModulePreSelectedBlockId": i[7] ||= (e) => K.value = e,
1205
+ "onUpdate:showModuleBrowserModal": i[8] ||= (e) => G.value = e,
1206
+ onSendTestEmail: J,
1207
+ onModuleInsert: _e
1207
1208
  }, null, 8, [
1208
1209
  "config",
1209
1210
  "editor",
@@ -1218,13 +1219,14 @@ var We = ["aria-label"], Ge = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl
1218
1219
  "show-module-browser-modal"
1219
1220
  ])) : v("", !0),
1220
1221
  f("div", {
1221
- ref: (e) => C(R).popoverRoot.value = e,
1222
+ ref: (e) => C(L).popoverRoot.value = e,
1222
1223
  class: "tpl-popover-root"
1223
1224
  }, null, 512),
1224
- E(de),
1225
- C(pe) ? (e(), x(ce, { key: 2 })) : v("", !0)
1226
- ], 46, Mt));
1225
+ E(ce),
1226
+ E(pe),
1227
+ C(he) ? (e(), x(fe, { key: 2 })) : v("", !0)
1228
+ ], 46, Nt));
1227
1229
  }
1228
- }), [["__scopeId", "data-v-8c4fa160"]]);
1230
+ }), [["__scopeId", "data-v-3fc6c906"]]);
1229
1231
  //#endregion
1230
- export { It as default };
1232
+ export { Lt as default };