@templatical/editor 0.0.6 → 0.1.1

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 (159) hide show
  1. package/LICENSE +56 -0
  2. package/README.md +69 -0
  3. package/dist/{AiChatSidebar-CNhSl_ty.js → AiChatSidebar-DgAjDWO1.js} +68 -68
  4. package/dist/{AiFeatureMenu-BFVsjUJY.js → AiFeatureMenu-j6oaiRVi.js} +25 -25
  5. package/dist/{CloudEditor-Bz5Xkxej.js → CloudEditor-yCOkIkZ-.js} +428 -437
  6. package/dist/{CollaboratorBar-D2Gu5Xj2.js → CollaboratorBar-CWVdp2Y6.js} +23 -23
  7. package/dist/CommentsSidebar-CSPHhbQH.js +439 -0
  8. package/dist/CountdownBlock-DK6P_RaQ.js +92 -0
  9. package/dist/CountdownToolbar-Dv-Sz4ui.js +210 -0
  10. package/dist/{DesignReferenceSidebar-u2tKSQK0.js → DesignReferenceSidebar-D7zfvux6.js} +58 -58
  11. package/dist/LoadingTrack-Cdz2SSq9.js +10 -0
  12. package/dist/ModuleBrowserModal-BLYuCZht.js +205 -0
  13. package/dist/ModulePreviewCanvas-CHYqP6K3.js +106 -0
  14. package/dist/NumberWithSuffix-D-5-AZc3.js +424 -0
  15. package/dist/{ParagraphEditor-CYrzYJO5.js → ParagraphEditor-DivLBNWv.js} +237 -236
  16. package/dist/{RichTextEditorContent-BeqlWlWB.js → RichTextEditorContent-G1lXgVJR.js} +42 -42
  17. package/dist/{SaveModuleDialog-Kde6X13X.js → SaveModuleDialog-DGVfiOmE.js} +29 -29
  18. package/dist/{SnapshotHistory-B3EfIcLW.js → SnapshotHistory-DM__MqSu.js} +38 -38
  19. package/dist/{TemplateScoringPanel-D2vCRGgx.js → TemplateScoringPanel-CW13Tlol.js} +80 -80
  20. package/dist/{TestEmailModal-Egk0DFDf.js → TestEmailModal-B8bYqWCY.js} +28 -28
  21. package/dist/TitleEditor-4Jrp3C4m.js +167 -0
  22. package/dist/{TplModal-BCruYWks.js → TplModal-BkoIz0oz.js} +14 -14
  23. package/dist/{_plugin-vue_export-helper-5TQrnOhO.js → _plugin-vue_export-helper-OO6pH1Dh.js} +11 -11
  24. package/dist/{blockTypeIcons-rW4BUUNC.js → blockTypeIcons-4AS3CvXn.js} +2 -2
  25. package/dist/cdn/chunks/{AiFeatureMenu-Dcbshcfu.js → AiFeatureMenu-BcHyzTQy.js} +4 -4
  26. package/dist/cdn/chunks/{AiFeatureMenu-Dcbshcfu.js.map → AiFeatureMenu-BcHyzTQy.js.map} +1 -1
  27. package/dist/cdn/chunks/{CloudEditor-Bca3RyBW.js → CloudEditor-TaEZq-YW.js} +179 -188
  28. package/dist/cdn/chunks/CloudEditor-TaEZq-YW.js.map +1 -0
  29. package/dist/cdn/chunks/{CollaboratorBar-sToKJfHi.js → CollaboratorBar-DbC5-3If.js} +4 -4
  30. package/dist/cdn/chunks/{CollaboratorBar-sToKJfHi.js.map → CollaboratorBar-DbC5-3If.js.map} +1 -1
  31. package/dist/cdn/chunks/CountdownBlock-CfPmCQ7j.js +93 -0
  32. package/dist/cdn/chunks/CountdownBlock-CfPmCQ7j.js.map +1 -0
  33. package/dist/cdn/chunks/CountdownToolbar-CB0EVxwN.js +212 -0
  34. package/dist/cdn/chunks/CountdownToolbar-CB0EVxwN.js.map +1 -0
  35. package/dist/cdn/chunks/{ModuleBrowserModal-BNhwXbWw.js → ModuleBrowserModal-Df2fp9dj.js} +7 -7
  36. package/dist/cdn/chunks/{ModuleBrowserModal-BNhwXbWw.js.map → ModuleBrowserModal-Df2fp9dj.js.map} +1 -1
  37. package/dist/cdn/chunks/{ModulePreviewCanvas-DylUylPU.js → ModulePreviewCanvas-Dw1OCpvV.js} +19 -19
  38. package/dist/cdn/chunks/{ModulePreviewCanvas-DylUylPU.js.map → ModulePreviewCanvas-Dw1OCpvV.js.map} +1 -1
  39. package/dist/cdn/chunks/NumberWithSuffix-BU6ycXyG.js +425 -0
  40. package/dist/cdn/chunks/NumberWithSuffix-BU6ycXyG.js.map +1 -0
  41. package/dist/cdn/chunks/{ParagraphEditor-BBw90y_p.js → ParagraphEditor-BMRNg_BX.js} +37 -37
  42. package/dist/cdn/chunks/{ParagraphEditor-BBw90y_p.js.map → ParagraphEditor-BMRNg_BX.js.map} +1 -1
  43. package/dist/cdn/chunks/{RichTextEditorContent-DvyIO3nR.js → RichTextEditorContent-BKYY1YMZ.js} +5 -5
  44. package/dist/cdn/chunks/{RichTextEditorContent-DvyIO3nR.js.map → RichTextEditorContent-BKYY1YMZ.js.map} +1 -1
  45. package/dist/cdn/chunks/{SaveModuleDialog-DvbSHvhF.js → SaveModuleDialog-D977Tg7t.js} +5 -5
  46. package/dist/cdn/chunks/{SaveModuleDialog-DvbSHvhF.js.map → SaveModuleDialog-D977Tg7t.js.map} +1 -1
  47. package/dist/cdn/chunks/{TitleEditor-tS3mgoVr.js → TitleEditor-q9IzNy38.js} +11 -11
  48. package/dist/cdn/chunks/{TitleEditor-tS3mgoVr.js.map → TitleEditor-q9IzNy38.js.map} +1 -1
  49. package/dist/cdn/chunks/{blockTypeIcons-DbnbyEQE.js → blockTypeIcons-L0fRc3qs.js} +3 -3
  50. package/dist/cdn/chunks/{blockTypeIcons-DbnbyEQE.js.map → blockTypeIcons-L0fRc3qs.js.map} +1 -1
  51. package/dist/cdn/chunks/{de-CgUR_S5I.js → de-3exf7MYE.js} +1 -1
  52. package/dist/cdn/chunks/{de-CgUR_S5I.js.map → de-3exf7MYE.js.map} +1 -1
  53. package/dist/cdn/chunks/{de-D8oDPhBD.js → de-C8LxVUsb.js} +1 -1
  54. package/dist/cdn/chunks/{de-D8oDPhBD.js.map → de-C8LxVUsb.js.map} +1 -1
  55. package/dist/cdn/chunks/{dist-BUmN5e4r.js → dist-D5g00M8N.js} +6 -2
  56. package/dist/cdn/chunks/dist-D5g00M8N.js.map +1 -0
  57. package/dist/cdn/chunks/{draggable-m78lz0gI.js → draggable-Bcb86AsV.js} +5 -5
  58. package/dist/cdn/chunks/draggable-Bcb86AsV.js.map +1 -0
  59. package/dist/cdn/chunks/{emojiData-CNNgvDqx.js → emojiData-DUHzsh4j.js} +1 -1
  60. package/dist/cdn/chunks/{emojiData-CNNgvDqx.js.map → emojiData-DUHzsh4j.js.map} +1 -1
  61. package/dist/cdn/chunks/{en-HseRPPeK.js → en-BoEycuqw.js} +1 -1
  62. package/dist/cdn/chunks/{en-HseRPPeK.js.map → en-BoEycuqw.js.map} +1 -1
  63. package/dist/cdn/chunks/{en-BBmfBDqY.js → en-KNPUKxYp.js} +1 -1
  64. package/dist/cdn/chunks/{en-BBmfBDqY.js.map → en-KNPUKxYp.js.map} +1 -1
  65. package/dist/cdn/chunks/{extensions-ClpY3m0W.js → extensions-BZ1POyiv.js} +11 -11
  66. package/dist/cdn/chunks/{extensions-ClpY3m0W.js.map → extensions-BZ1POyiv.js.map} +1 -1
  67. package/dist/cdn/chunks/{features-B5dGxWLi.js → features-Ccqmm6-M.js} +549 -627
  68. package/dist/cdn/chunks/features-Ccqmm6-M.js.map +1 -0
  69. package/dist/cdn/chunks/{icons-hflTyPmb.js → icons-x53__2GC.js} +8 -8
  70. package/dist/cdn/chunks/icons-x53__2GC.js.map +1 -0
  71. package/dist/cdn/chunks/{liquid.browser-BxyRVCKv.js → liquid.browser-CEMn-ZqL.js} +2 -2
  72. package/dist/cdn/chunks/liquid.browser-CEMn-ZqL.js.map +1 -0
  73. package/dist/cdn/chunks/{media-library-Dgy-V-JA.js → media-library-DUoQk-w7.js} +97 -97
  74. package/dist/cdn/chunks/media-library-DUoQk-w7.js.map +1 -0
  75. package/dist/cdn/chunks/{pusher-D-m2WSdL.js → pusher-DwSQn6BA.js} +2 -2
  76. package/dist/cdn/chunks/pusher-DwSQn6BA.js.map +1 -0
  77. package/dist/cdn/chunks/{src-TDwMmqm0.js → src-DskCIAr8.js} +8 -8
  78. package/dist/cdn/chunks/{src-TDwMmqm0.js.map → src-DskCIAr8.js.map} +1 -1
  79. package/dist/cdn/chunks/{styleConstants-DFe3I4Op.js → styleConstants-DP1VOca8.js} +1 -1
  80. package/dist/cdn/chunks/{styleConstants-DFe3I4Op.js.map → styleConstants-DP1VOca8.js.map} +1 -1
  81. package/dist/cdn/chunks/{styles-hCOCOR6K.js → styles-BIlpNe52.js} +622 -1238
  82. package/dist/cdn/chunks/styles-BIlpNe52.js.map +1 -0
  83. package/dist/cdn/chunks/{tiptap-C28NLMX8.js → tiptap-hPC_BgDO.js} +850 -826
  84. package/dist/cdn/chunks/tiptap-hPC_BgDO.js.map +1 -0
  85. package/dist/cdn/editor.css +1 -1
  86. package/dist/cdn/editor.js +92 -97
  87. package/dist/cdn/editor.js.map +1 -1
  88. package/dist/{check-B5S-C0bz.js → check-Bff5NzCh.js} +1 -1
  89. package/dist/{chevron-down-CjsV1T0W.js → chevron-down-Bbv4SJwx.js} +1 -1
  90. package/dist/{circle-alert-CVTmJHKW.js → circle-alert-Dpr8MgkR.js} +1 -1
  91. package/dist/{clock-CAjdSHBy.js → clock-raVPKfl4.js} +1 -1
  92. package/dist/{dist-DJrDTuRr.js → dist-BHgEdO-M.js} +1001 -983
  93. package/dist/dist-BibwE8Y0.js +5 -0
  94. package/dist/{dist-DPM-DFvh.js → dist-BnlZ_HwX.js} +340 -340
  95. package/dist/{dist-BTtKPcd2.js → dist-C9yhcxsf.js} +2 -2
  96. package/dist/{dist-COguaIvm.js → dist-CGffNO8z.js} +2 -2
  97. package/dist/dist-CfGpCUSx.js +5 -0
  98. package/dist/{dist-COOFiBFV.js → dist-Chd-H2S3.js} +5 -5
  99. package/dist/{dist-DfqLGwSF.js → dist-Cq0OFLMj.js} +2 -2
  100. package/dist/{dist-B4LTlrAn.js → dist-D42og5Sc.js} +191 -185
  101. package/dist/{dist-CBr-qhie.js → dist-Owxo48fF.js} +2 -2
  102. package/dist/{dist-Crqkuf-w.js → dist-UZ8UzVZ-.js} +15 -15
  103. package/dist/dist-n0PkFNGl.js +314 -0
  104. package/dist/{dist-DHYuVJ_7.js → dist-skgH9dyo.js} +2 -2
  105. package/dist/{extensions-C6xp_B7K.js → extensions-DQKaICBH.js} +81 -81
  106. package/dist/{image-up-vZa1Txr-.js → image-up-B1AEiHCh.js} +1 -1
  107. package/dist/index.d.ts +17 -6
  108. package/dist/{keys-C0MQRs8d.js → keys-CIw9mUI2.js} +1 -1
  109. package/dist/{liquid.browser-C02owkex.js → liquid.browser-Bm53dnK1.js} +1 -1
  110. package/dist/{loader-circle-DilFjHSk.js → loader-circle-BYeKJ3to.js} +1 -1
  111. package/dist/{message-circle-Dpcnc2oa.js → message-circle-PhNlI7e7.js} +1 -1
  112. package/dist/{refresh-cw-4r7rkHHX.js → refresh-cw-DhDYRBDd.js} +1 -1
  113. package/dist/{rolldown-runtime-gEudmnaM.js → rolldown-runtime-BZGGJVDF.js} +2 -5
  114. package/dist/{scan-line-684IxPQ0.js → scan-line-Bw8bauvt.js} +1 -1
  115. package/dist/{send-ChDw64yL.js → send-CJPSzbLO.js} +1 -1
  116. package/dist/{shield-check-9dhLdyST.js → shield-check-DdEvVYMH.js} +1 -1
  117. package/dist/{sparkles-Co9fkDcv.js → sparkles-DT_27AYs.js} +1 -1
  118. package/dist/style.css +2 -0
  119. package/dist/{styleConstants-RV3eYwkD.js → styleConstants-Dqz9z3aa.js} +6 -45
  120. package/dist/styles-tcwlvlEB.js +2942 -0
  121. package/dist/templatical-editor.js +114 -119
  122. package/dist/text-align-start-4Hx15GUf.js +43 -0
  123. package/dist/{trash-2-CZkMtjeC.js → trash-2-BY-xp5hg.js} +1 -1
  124. package/dist/{triangle-alert-Dvt51agD.js → triangle-alert-DG72vdb2.js} +1 -1
  125. package/dist/useEditorCore-DMH2QpUL.js +8946 -0
  126. package/dist/{useI18n-D6m7ZUgY.js → useI18n-B8CN2iWs.js} +4 -4
  127. package/dist/{useMergeTag-CSXcnFBc.js → useMergeTag-Dz_Dx2Jz.js} +3 -3
  128. package/dist/vue.runtime.esm-bundler-DryoQb-v.js +5775 -0
  129. package/dist/{x-CU2XZOkQ.js → x-D-7GkO6Z.js} +1 -1
  130. package/package.json +31 -15
  131. package/dist/CommentsSidebar-CTeEAZTj.js +0 -439
  132. package/dist/LoadingTrack--aUassFH.js +0 -10
  133. package/dist/ModuleBrowserModal-DNxODPlX.js +0 -205
  134. package/dist/ModulePreviewCanvas-DnGe1Y-2.js +0 -106
  135. package/dist/TitleEditor-DwUpo4gF.js +0 -167
  136. package/dist/cdn/chunks/CloudEditor-Bca3RyBW.js.map +0 -1
  137. package/dist/cdn/chunks/dist-BUmN5e4r.js.map +0 -1
  138. package/dist/cdn/chunks/draggable-m78lz0gI.js.map +0 -1
  139. package/dist/cdn/chunks/features-B5dGxWLi.js.map +0 -1
  140. package/dist/cdn/chunks/icons-hflTyPmb.js.map +0 -1
  141. package/dist/cdn/chunks/liquid.browser-BxyRVCKv.js.map +0 -1
  142. package/dist/cdn/chunks/media-library-Dgy-V-JA.js.map +0 -1
  143. package/dist/cdn/chunks/pusher-D-m2WSdL.js.map +0 -1
  144. package/dist/cdn/chunks/styles-hCOCOR6K.js.map +0 -1
  145. package/dist/cdn/chunks/tiptap-C28NLMX8.js.map +0 -1
  146. package/dist/dist-Ac4o1O4a.js +0 -314
  147. package/dist/dist-DEJZ9iAU.js +0 -5
  148. package/dist/dist-DmVOCJjI.js +0 -5
  149. package/dist/styles-nvxFh6L6.js +0 -3557
  150. package/dist/templatical-editor.css +0 -2
  151. package/dist/templatical-editor.umd.cjs +0 -178
  152. package/dist/useEditorCore-ColJh1ST.js +0 -5695
  153. /package/dist/cdn/chunks/{_rolldown_dynamic_import_helper-DMEI4TQ3.js → _rolldown_dynamic_import_helper-BRcA6nWq.js} +0 -0
  154. /package/dist/{de-Dh8ON-dm.js → de-CN0xu_Tp.js} +0 -0
  155. /package/dist/{emojiData-Qc8mH_zW.js → emojiData-CwKEDxVf.js} +0 -0
  156. /package/dist/{en-C7IShRSD.js → en-DXvHkaUF.js} +0 -0
  157. /package/dist/{formatRelativeTime-D8f6NR7i.js → formatRelativeTime-BSpx5DHC.js} +0 -0
  158. /package/dist/{readableTextColor-B809bF5J.js → readableTextColor-CYCxm1jQ.js} +0 -0
  159. /package/dist/{timeouts-CmBrLeZA.js → timeouts-BSGxjuUF.js} +0 -0
@@ -1,22 +1,22 @@
1
- import { t as e } from "./timeouts-CmBrLeZA.js";
2
- import { s as t, t as n } from "./dist-Ac4o1O4a.js";
3
- import { b as r, c as i, r as a, s as o, t as s, v as c, x as l } from "./keys-C0MQRs8d.js";
4
- import { t as u } from "./useI18n-D6m7ZUgY.js";
5
- import { F as d, S as f, t as p } from "./useEditorCore-ColJh1ST.js";
6
- import { n as m, t as h } from "./_plugin-vue_export-helper-5TQrnOhO.js";
7
- import { t as g } from "./check-B5S-C0bz.js";
8
- import { t as _ } from "./circle-alert-CVTmJHKW.js";
9
- import { a as v, c as y, i as b, n as x, o as S, r as C, s as w, t as T } from "./styles-nvxFh6L6.js";
10
- import { t as E } from "./clock-CAjdSHBy.js";
11
- import { t as D } from "./loader-circle-DilFjHSk.js";
12
- import { t as O } from "./message-circle-Dpcnc2oa.js";
13
- import { t as k } from "./send-ChDw64yL.js";
14
- import { t as A } from "./sparkles-Co9fkDcv.js";
15
- import { d as j } from "./styleConstants-RV3eYwkD.js";
16
- import { Fragment as M, Transition as N, computed as P, createBlock as F, createCommentVNode as I, createElementBlock as L, createElementVNode as R, createStaticVNode as z, createTextVNode as B, createVNode as V, defineAsyncComponent as H, defineComponent as U, normalizeClass as W, normalizeStyle as G, onMounted as K, onScopeDispose as q, onUnmounted as ee, openBlock as J, provide as Y, ref as X, renderList as te, shallowRef as ne, toDisplayString as Z, unref as Q, vShow as re, watch as ie, withCtx as $, withDirectives as ae, withModifiers as oe } from "vue";
1
+ import { A as e, Ct as t, H as n, M as r, N as i, Ot as a, P as o, S as s, V as c, Y as l, Z as u, _ as d, b as f, c as p, d as m, g as h, h as g, j as _, m as v, p as y, q as b, t as x, tt as S, u as C, v as w, wt as T, x as E, y as D, z as O } from "./vue.runtime.esm-bundler-DryoQb-v.js";
2
+ import { t as k } from "./timeouts-BSGxjuUF.js";
3
+ import { s as A, t as j } from "./dist-n0PkFNGl.js";
4
+ import { b as M, c as N, r as P, s as ee, t as F, v as I, x as L } from "./keys-CIw9mUI2.js";
5
+ import { t as R } from "./useI18n-B8CN2iWs.js";
6
+ import { P as z, S as B, t as V } from "./useEditorCore-DMH2QpUL.js";
7
+ import { n as H, t as U } from "./_plugin-vue_export-helper-OO6pH1Dh.js";
8
+ import { t as W } from "./check-Bff5NzCh.js";
9
+ import { t as G } from "./circle-alert-Dpr8MgkR.js";
10
+ import { a as K, c as q, i as J, n as Y, o as X, r as Z, s as te, t as ne } from "./styles-tcwlvlEB.js";
11
+ import { t as Q } from "./clock-raVPKfl4.js";
12
+ import { t as re } from "./loader-circle-BYeKJ3to.js";
13
+ import { t as ie } from "./message-circle-PhNlI7e7.js";
14
+ import { t as ae } from "./send-CJPSzbLO.js";
15
+ import { t as oe } from "./sparkles-DT_27AYs.js";
16
+ import { d as $ } from "./styleConstants-Dqz9z3aa.js";
17
17
  import { cloneBlock as se, isCustomBlock as ce } from "@templatical/types";
18
18
  import { AuthManager as le, performHealthCheck as ue, resolveWebSocketConfig as de, useAiConfig as fe, useCollaboration as pe, useCollaborationBroadcast as me, useCommentListener as he, useComments as ge, useEditor as _e, useExport as ve, useMcpListener as ye, usePlanConfig as be, useSavedModules as xe, useSnapshotHistory as Se, useTemplateScoring as Ce, useTestEmail as we, useWebSocket as Te } from "@templatical/core/cloud";
19
- var Ee = m("save", [
19
+ var Ee = H("save", [
20
20
  ["path", {
21
21
  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",
22
22
  key: "1c8476"
@@ -33,91 +33,91 @@ var Ee = m("save", [
33
33
  //#endregion
34
34
  //#region src/cloud/composables/useSnapshotPreview.ts
35
35
  function De(e) {
36
- let { authManager: t, editor: n, history: r, conditionPreview: i, autoSave: a, onError: o } = e, s = ne(null), c = X(null), l = X(null), u = P(() => c.value !== null), d = P(() => s.value?.snapshots.value ?? []), f = P(() => s.value?.isLoading.value ?? !1), p = P(() => s.value?.isRestoring.value ?? !1);
37
- function m() {
36
+ let { authManager: t, editor: n, history: r, conditionPreview: i, autoSave: a, onError: o } = e, s = u(null), c = l(null), d = l(null), f = y(() => c.value !== null), p = y(() => s.value?.snapshots.value ?? []), m = y(() => s.value?.isLoading.value ?? !1), h = y(() => s.value?.isRestoring.value ?? !1);
37
+ function g() {
38
38
  n.state.template?.id && !s.value && (s.value = Se({
39
39
  authManager: t,
40
40
  templateId: n.state.template.id,
41
- onRestore: h,
41
+ onRestore: _,
42
42
  onError: o
43
43
  }), s.value.loadSnapshots());
44
44
  }
45
- function h(e) {
45
+ function _(e) {
46
46
  n.setContent(e.content, !1), r.clear(), i.reset();
47
47
  }
48
- async function g(e) {
48
+ async function v(e) {
49
49
  if (c.value) {
50
50
  c.value = e, n.setContent(e.content, !1);
51
51
  return;
52
52
  }
53
- n.state.isDirty && n.hasTemplate() && await n.createSnapshot(), l.value = structuredClone(n.content.value), a?.pause(), c.value = e, n.setContent(e.content, !1);
53
+ n.state.isDirty && n.hasTemplate() && await n.createSnapshot(), d.value = structuredClone(n.content.value), a?.pause(), c.value = e, n.setContent(e.content, !1);
54
54
  }
55
- async function _() {
55
+ async function b() {
56
56
  if (!(!c.value || !s.value)) try {
57
57
  await s.value.restoreSnapshot(c.value.id), await s.value.loadSnapshots();
58
58
  } finally {
59
- c.value = null, l.value = null, a?.resume();
59
+ c.value = null, d.value = null, a?.resume();
60
60
  }
61
61
  }
62
- function v() {
63
- !c.value || !l.value || (n.setContent(l.value, !1), c.value = null, l.value = null, a?.resume());
62
+ function x() {
63
+ !c.value || !d.value || (n.setContent(d.value, !1), c.value = null, d.value = null, a?.resume());
64
64
  }
65
- async function y() {
65
+ async function S() {
66
66
  s.value && await s.value.loadSnapshots();
67
67
  }
68
68
  return {
69
69
  snapshotHistoryInstance: s,
70
70
  previewingSnapshot: c,
71
- contentBeforePreview: l,
72
- isPreviewingSnapshot: u,
73
- snapshotHistorySnapshots: d,
74
- snapshotHistoryIsLoading: f,
75
- snapshotHistoryIsRestoring: p,
76
- initSnapshotHistory: m,
77
- handleRestore: h,
78
- handleSnapshotNavigate: g,
79
- confirmRestoreSnapshot: _,
80
- cancelPreview: v,
81
- loadSnapshotHistory: y
71
+ contentBeforePreview: d,
72
+ isPreviewingSnapshot: f,
73
+ snapshotHistorySnapshots: p,
74
+ snapshotHistoryIsLoading: m,
75
+ snapshotHistoryIsRestoring: h,
76
+ initSnapshotHistory: g,
77
+ handleRestore: _,
78
+ handleSnapshotNavigate: v,
79
+ confirmRestoreSnapshot: b,
80
+ cancelPreview: x,
81
+ loadSnapshotHistory: S
82
82
  };
83
83
  }
84
84
  //#endregion
85
85
  //#region src/cloud/composables/useCloudPanelState.ts
86
86
  function Oe() {
87
- let e = X(null), t = P({
87
+ let e = l(null), t = y({
88
88
  get: () => e.value === "ai-chat",
89
89
  set: (t) => e.value = t ? "ai-chat" : null
90
- }), r = P({
90
+ }), n = y({
91
91
  get: () => e.value === "scoring",
92
92
  set: (t) => e.value = t ? "scoring" : null
93
- }), i = P({
93
+ }), r = y({
94
94
  get: () => e.value === "design-reference",
95
95
  set: (t) => e.value = t ? "design-reference" : null
96
- }), a = P({
96
+ }), i = y({
97
97
  get: () => e.value === "comments",
98
98
  set: (t) => e.value = t ? "comments" : null
99
- }), o = X(!1), s = X(!1), c = X(void 0), l = X(!1), u = X(null), d = P(() => e.value !== null), f = P(() => {
99
+ }), a = l(!1), o = l(!1), s = l(void 0), c = l(!1), u = l(null), d = y(() => e.value !== null), f = y(() => {
100
100
  let t = e.value;
101
101
  return t === "ai-chat" || t === "design-reference" || t === "scoring" ? t : null;
102
- }), p = P(() => l.value || e.value === "ai-chat" || e.value === "design-reference" || e.value === "scoring");
102
+ }), p = y(() => c.value || e.value === "ai-chat" || e.value === "design-reference" || e.value === "scoring");
103
103
  function m() {
104
- l.value = !l.value;
104
+ c.value = !c.value;
105
105
  }
106
106
  function h(t) {
107
- l.value = !1, e.value = e.value === t ? null : t;
107
+ c.value = !1, e.value = e.value === t ? null : t;
108
108
  }
109
- return n(u, () => {
110
- l.value = !1;
109
+ return j(u, () => {
110
+ c.value = !1;
111
111
  }), {
112
112
  activePanel: e,
113
113
  aiChatOpen: t,
114
- scoringPanelOpen: r,
115
- designReferenceOpen: i,
116
- commentsOpen: a,
117
- testEmailModalOpen: o,
118
- mediaLibraryOpen: s,
119
- mediaLibraryAccept: c,
120
- aiMenuOpen: l,
114
+ scoringPanelOpen: n,
115
+ designReferenceOpen: r,
116
+ commentsOpen: i,
117
+ testEmailModalOpen: a,
118
+ mediaLibraryOpen: o,
119
+ mediaLibraryAccept: s,
120
+ aiMenuOpen: c,
121
121
  aiMenuRef: u,
122
122
  rightPanelOpen: d,
123
123
  activeAiFeature: f,
@@ -128,30 +128,30 @@ function Oe() {
128
128
  }
129
129
  //#endregion
130
130
  //#region src/cloud/composables/useCollabUndoWarning.ts
131
- function ke(n) {
132
- let { isCollaborationEnabled: r, getCollaboratorCount: i, canUndo: a } = n, o = X(!1), s = X(!1), { start: c } = t(() => {
133
- s.value = !1;
134
- }, e, { immediate: !1 });
135
- function l() {
136
- o.value || !r.value || i() === 0 || !a.value || (o.value = !0, s.value = !0, c());
131
+ function ke(e) {
132
+ let { isCollaborationEnabled: t, getCollaboratorCount: n, canUndo: r } = e, i = l(!1), a = l(!1), { start: o } = A(() => {
133
+ a.value = !1;
134
+ }, k, { immediate: !1 });
135
+ function s() {
136
+ i.value || !t.value || n() === 0 || !r.value || (i.value = !0, a.value = !0, o());
137
137
  }
138
138
  return {
139
- collabUndoWarningVisible: s,
140
- showCollabUndoWarning: l
139
+ collabUndoWarningVisible: a,
140
+ showCollabUndoWarning: s
141
141
  };
142
142
  }
143
143
  //#endregion
144
144
  //#region src/cloud/composables/useCloudFeatureFlags.ts
145
145
  function Ae(e) {
146
- let { planConfigInstance: n, aiConfig: r, editor: i } = e, a = P(() => n.hasFeature("ai_generation") && r.hasAnyMenuFeature.value), o = P(() => n.hasFeature("test_email")), s = P(() => !!i.state.template?.id), c = P(() => n.hasFeature("white_label")), l = P(() => n.config.value?.limits.max_templates ?? null), u = P(() => n.config.value?.template_count ?? 0), d = X(!1), f = X("idle"), p = X(""), { start: m } = t(() => {
146
+ let { planConfigInstance: t, aiConfig: n, editor: r } = e, i = y(() => t.hasFeature("ai_generation") && n.hasAnyMenuFeature.value), a = y(() => t.hasFeature("test_email")), o = y(() => !!r.state.template?.id), s = y(() => t.hasFeature("white_label")), c = y(() => t.config.value?.limits.max_templates ?? null), u = y(() => t.config.value?.template_count ?? 0), d = l(!1), f = l("idle"), p = l(""), { start: m } = A(() => {
147
147
  f.value = "idle";
148
148
  }, 3e3, { immediate: !1 });
149
149
  return {
150
- canUseAiGeneration: a,
151
- canSendTestEmail: o,
152
- hasTemplateSaved: s,
153
- isWhiteLabeled: c,
154
- templateLimit: l,
150
+ canUseAiGeneration: i,
151
+ canSendTestEmail: a,
152
+ hasTemplateSaved: o,
153
+ isWhiteLabeled: s,
154
+ templateLimit: c,
155
155
  templateCount: u,
156
156
  isSaveExporting: d,
157
157
  saveStatus: f,
@@ -186,7 +186,7 @@ function je(e) {
186
186
  function s() {
187
187
  n.value = !1, i?.(null), i = null;
188
188
  }
189
- return q(() => {
189
+ return b(() => {
190
190
  i &&= (i(null), null);
191
191
  }), {
192
192
  handleRequestMedia: a,
@@ -197,42 +197,42 @@ function je(e) {
197
197
  //#endregion
198
198
  //#region src/cloud/composables/useCloudInitialization.ts
199
199
  function Me(e) {
200
- let { config: t, translations: n, fontsManager: u, emit: m, getCommentsSidebar: h } = e, g = X(!0), _ = X(!1), v = X(null), y = !1, b = { value: null }, x = null, S = null, C = new le({
200
+ let { config: t, translations: n, fontsManager: r, emit: a, getCommentsSidebar: o } = e, s = l(!0), c = l(!1), u = l(null), d = !1, f = { value: null }, p = null, m = null, h = new le({
201
201
  ...t.auth,
202
202
  onError: t.onError
203
- }), w = be({
204
- authManager: C,
203
+ }), g = be({
204
+ authManager: h,
205
205
  onError: t.onError
206
- }), T = X(/* @__PURE__ */ new Map()), E = _e({
207
- authManager: C,
206
+ }), _ = l(/* @__PURE__ */ new Map()), v = _e({
207
+ authManager: h,
208
208
  defaultFontFamily: t.fonts?.defaultFont,
209
209
  templateDefaults: t.templateDefaults,
210
210
  onError: t.onError,
211
- lockedBlocks: T
212
- }), D = Te({
213
- authManager: C,
211
+ lockedBlocks: _
212
+ }), b = Te({
213
+ authManager: h,
214
214
  onError: t.onError
215
215
  });
216
216
  t.mcp?.enabled && ye({
217
- editor: E,
218
- channel: D.channel,
217
+ editor: v,
218
+ channel: b.channel,
219
219
  onOperation: t.mcp.onOperation
220
220
  });
221
- let O = null;
222
- t.collaboration?.enabled && (O = pe({
223
- authManager: C,
224
- editor: E,
225
- channel: D.channel,
221
+ let x = null;
222
+ t.collaboration?.enabled && (x = pe({
223
+ authManager: h,
224
+ editor: v,
225
+ channel: b.channel,
226
226
  onError: t.onError,
227
227
  onCollaboratorJoined: t.collaboration.onCollaboratorJoined,
228
228
  onCollaboratorLeft: t.collaboration.onCollaboratorLeft,
229
229
  onBlockLocked: t.collaboration.onBlockLocked,
230
230
  onBlockUnlocked: t.collaboration.onBlockUnlocked
231
- }), ie(() => O.lockedBlocks.value, (e) => {
232
- T.value = e;
233
- }, { immediate: !0 }), me(E, O));
234
- let k = P(() => !!t.collaboration?.enabled && w.hasFeature("collaboration")), A = p({
235
- editor: E,
231
+ }), O(() => x.lockedBlocks.value, (e) => {
232
+ _.value = e;
233
+ }, { immediate: !0 }), me(v, x));
234
+ let S = y(() => !!t.collaboration?.enabled && g.hasFeature("collaboration")), C = V({
235
+ editor: v,
236
236
  config: {
237
237
  uiTheme: t.uiTheme,
238
238
  theme: void 0,
@@ -242,165 +242,165 @@ function Me(e) {
242
242
  displayConditions: t.displayConditions,
243
243
  onRequestMedia: null,
244
244
  onSave: () => {
245
- b.value?.().catch((e) => {
245
+ f.value?.().catch((e) => {
246
246
  t.onError?.(e);
247
247
  });
248
248
  }
249
249
  },
250
250
  translations: n,
251
- fontsManager: u,
252
- historyOptions: O ? { isRemoteOperation: () => O._isProcessingRemoteOperation() } : void 0,
251
+ fontsManager: r,
252
+ historyOptions: x ? { isRemoteOperation: () => x._isProcessingRemoteOperation() } : void 0,
253
253
  autoSaveOptions: {
254
254
  onChange: async () => {
255
- E.hasTemplate() && (await E.createSnapshot(), x?.snapshotHistoryInstance.value?.loadSnapshots());
255
+ v.hasTemplate() && (await v.createSnapshot(), p?.snapshotHistoryInstance.value?.loadSnapshots());
256
256
  },
257
257
  debounce: t.autoSaveDebounce ?? 5e3,
258
- enabled: () => t.autoSave !== !1 && w.hasFeature("auto_save")
258
+ enabled: () => t.autoSave !== !1 && g.hasFeature("auto_save")
259
259
  },
260
260
  themeExtraStyles: () => ({ "--tpl-drop-text": `"${n.canvas.dropHere}"` }),
261
- keyboardOptions: { onBeforeUndo: () => S?.showCollabUndoWarning() }
262
- }), j = ke({
263
- isCollaborationEnabled: k,
264
- getCollaboratorCount: () => O?.collaborators.value.length ?? 0,
265
- canUndo: A.history.canUndo
261
+ keyboardOptions: { onBeforeUndo: () => m?.showCollabUndoWarning() }
262
+ }), w = ke({
263
+ isCollaborationEnabled: S,
264
+ getCollaboratorCount: () => x?.collaborators.value.length ?? 0,
265
+ canUndo: C.history.canUndo
266
266
  });
267
- S = j;
268
- let M = De({
269
- authManager: C,
270
- editor: E,
271
- history: A.history,
272
- conditionPreview: A.conditionPreview,
273
- autoSave: A.autoSave,
267
+ m = w;
268
+ let T = De({
269
+ authManager: h,
270
+ editor: v,
271
+ history: C.history,
272
+ conditionPreview: C.conditionPreview,
273
+ autoSave: C.autoSave,
274
274
  onError: t.onError
275
275
  });
276
- x = M;
277
- let N = Oe(), F = fe(t.ai), I = Ae({
278
- planConfigInstance: w,
279
- aiConfig: F,
280
- editor: E
281
- }), L = je({
276
+ p = T;
277
+ let E = Oe(), D = fe(t.ai), k = Ae({
278
+ planConfigInstance: g,
279
+ aiConfig: D,
280
+ editor: v
281
+ }), A = je({
282
282
  onRequestMedia: t.onRequestMedia,
283
- mediaLibraryOpen: N.mediaLibraryOpen,
284
- mediaLibraryAccept: N.mediaLibraryAccept
283
+ mediaLibraryOpen: E.mediaLibraryOpen,
284
+ mediaLibraryAccept: E.mediaLibraryAccept
285
285
  });
286
- f({
287
- onBlockMove: E.moveBlock,
288
- onBlockAdd: E.addBlock
286
+ B({
287
+ onBlockMove: v.moveBlock,
288
+ onBlockAdd: v.addBlock
289
289
  });
290
- let R = ve({
291
- authManager: C,
290
+ let j = ve({
291
+ authManager: h,
292
292
  getFontsConfig: () => t.fonts,
293
- canUseCustomFonts: () => w.hasFeature("custom_fonts")
294
- }), z = we({
295
- authManager: C,
296
- getTemplateId: () => E.state.template?.id ?? null,
297
- save: () => E.save(),
298
- exportHtml: (e) => R.exportHtml(e),
293
+ canUseCustomFonts: () => g.hasFeature("custom_fonts")
294
+ }), R = we({
295
+ authManager: h,
296
+ getTemplateId: () => v.state.template?.id ?? null,
297
+ save: () => v.save(),
298
+ exportHtml: (e) => j.exportHtml(e),
299
299
  onError: t.onError,
300
- isAuthReady: _,
300
+ isAuthReady: c,
301
301
  onBeforeTestEmail: t.onBeforeTestEmail
302
- }), B = ge({
303
- authManager: C,
304
- getTemplateId: () => E.state.template?.id ?? null,
305
- getSocketId: () => D.getSocketId(),
302
+ }), H = ge({
303
+ authManager: h,
304
+ getTemplateId: () => v.state.template?.id ?? null,
305
+ getSocketId: () => b.getSocketId(),
306
306
  onComment: t.onComment,
307
307
  onError: t.onError,
308
- isAuthReady: _,
309
- hasCommentingFeature: () => t.commenting !== !1 && w.hasFeature("commenting")
308
+ isAuthReady: c,
309
+ hasCommentingFeature: () => t.commenting !== !1 && g.hasFeature("commenting")
310
310
  });
311
311
  he({
312
- comments: B,
313
- channel: D.channel
312
+ comments: H,
313
+ channel: b.channel
314
314
  });
315
- let V = xe({
316
- authManager: C,
315
+ let U = xe({
316
+ authManager: h,
317
317
  onError: t.onError
318
- }), H = X(!1), U = X(null), W = X(!1), G = Ce({
319
- authManager: C,
320
- getTemplateId: () => E.state.template?.id ?? null
318
+ }), W = l(!1), G = l(null), K = l(!1), q = Ce({
319
+ authManager: h,
320
+ getTemplateId: () => v.state.template?.id ?? null
321
321
  });
322
- function K(e) {
323
- N.commentsOpen.value = !0, queueMicrotask(() => {
324
- h()?.filterByBlock(e);
322
+ function J(e) {
323
+ E.commentsOpen.value = !0, queueMicrotask(() => {
324
+ o()?.filterByBlock(e);
325
325
  });
326
326
  }
327
- Y(c, L.handleRequestMedia), Y(a, C), Y(s, F), Y(i, B), Y(r, V), Y(l, G), Y(o, {
328
- plan: w,
329
- ai: F,
327
+ i(I, A.handleRequestMedia), i(P, h), i(F, D), i(N, H), i(M, U), i(L, q), i(ee, {
328
+ plan: g,
329
+ ai: D,
330
330
  comments: {
331
- getBlockCount: (e) => B.commentCountByBlock.value.get(e) ?? 0,
332
- openForBlock: K
331
+ getBlockCount: (e) => H.commentCountByBlock.value.get(e) ?? 0,
332
+ openForBlock: J
333
333
  },
334
334
  savedModules: {
335
335
  openSaveDialog: (e) => {
336
- U.value = e ?? null, H.value = !0;
336
+ G.value = e ?? null, W.value = !0;
337
337
  },
338
338
  openBrowser: () => {
339
- W.value = !0;
339
+ K.value = !0;
340
340
  },
341
- moduleCount: P(() => V.modules.value.length)
341
+ moduleCount: y(() => U.modules.value.length)
342
342
  }
343
343
  });
344
- function q(e) {
345
- w.hasFeature("theme_customization") && (A.themeOverrides.value = e);
344
+ function Y(e) {
345
+ g.hasFeature("theme_customization") && (C.themeOverrides.value = e);
346
346
  }
347
- function ee(e) {
348
- E.setUiTheme(e);
347
+ function X(e) {
348
+ v.setUiTheme(e);
349
349
  }
350
- async function J() {
351
- g.value = !0, v.value = null;
350
+ async function Z() {
351
+ s.value = !0, u.value = null;
352
352
  try {
353
- if (await C.initialize(), y) return;
354
- _.value = !0;
355
- let e = await ue({ authManager: C });
356
- if (y) return;
353
+ if (await h.initialize(), d) return;
354
+ c.value = !0;
355
+ let e = await ue({ authManager: h });
356
+ if (d) return;
357
357
  if (!e.api.ok) throw Error("Health check failed: API is not reachable");
358
358
  if (!e.auth.ok) throw Error(`Health check failed: authentication error${e.auth.error ? ` - ${e.auth.error}` : ""}`);
359
- if (e.websocket.ok || d.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await w.fetchConfig(), y) return;
360
- u.setCustomFontsEnabled(w.hasFeature("custom_fonts")), t.customBlocks?.length && w.hasFeature("custom_blocks") && A.registerCustomBlocks(t.customBlocks), t.theme && w.hasFeature("theme_customization") && (A.themeOverrides.value = t.theme), t.modules !== !1 && w.hasFeature("saved_modules") && V.loadModules(), m("ready");
359
+ if (e.websocket.ok || z.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await g.fetchConfig(), d) return;
360
+ r.setCustomFontsEnabled(g.hasFeature("custom_fonts")), t.customBlocks?.length && g.hasFeature("custom_blocks") && C.registerCustomBlocks(t.customBlocks), t.theme && g.hasFeature("theme_customization") && (C.themeOverrides.value = t.theme), t.modules !== !1 && g.hasFeature("saved_modules") && U.loadModules(), a("ready");
361
361
  } catch (e) {
362
- if (y) return;
362
+ if (d) return;
363
363
  let n = e instanceof Error ? e : Error("Initialization failed", { cause: e });
364
- v.value = n, t.onError?.(n);
364
+ u.value = n, t.onError?.(n);
365
365
  } finally {
366
- y || (g.value = !1);
366
+ d || (s.value = !1);
367
367
  }
368
368
  }
369
369
  function te() {
370
- y = !0, u.cleanupFontLinks(), D.disconnect(), A.destroy(), t.onUnmount?.();
370
+ d = !0, r.cleanupFontLinks(), b.disconnect(), C.destroy(), t.onUnmount?.();
371
371
  }
372
372
  return {
373
- isInitializing: g,
374
- isAuthReady: _,
375
- initError: v,
376
- isDestroyed: () => y,
377
- authManager: C,
378
- planConfigInstance: w,
379
- websocket: D,
380
- collaboration: O,
381
- isCollaborationEnabled: k,
382
- editor: E,
383
- core: A,
384
- aiConfig: F,
385
- featureFlags: I,
386
- mediaLib: L,
387
- exporter: R,
388
- testEmail: z,
389
- commentsInstance: B,
390
- savedModulesHeadless: V,
391
- scoringInstance: G,
392
- panelState: N,
393
- snapshotPreview: M,
394
- collabWarning: j,
395
- showSaveModuleDialog: H,
396
- showModuleBrowserModal: W,
397
- saveModulePreSelectedBlockId: U,
398
- onSaveHook: b,
399
- initialize: J,
373
+ isInitializing: s,
374
+ isAuthReady: c,
375
+ initError: u,
376
+ isDestroyed: () => d,
377
+ authManager: h,
378
+ planConfigInstance: g,
379
+ websocket: b,
380
+ collaboration: x,
381
+ isCollaborationEnabled: S,
382
+ editor: v,
383
+ core: C,
384
+ aiConfig: D,
385
+ featureFlags: k,
386
+ mediaLib: A,
387
+ exporter: j,
388
+ testEmail: R,
389
+ commentsInstance: H,
390
+ savedModulesHeadless: U,
391
+ scoringInstance: q,
392
+ panelState: E,
393
+ snapshotPreview: T,
394
+ collabWarning: w,
395
+ showSaveModuleDialog: W,
396
+ showModuleBrowserModal: K,
397
+ saveModulePreSelectedBlockId: G,
398
+ onSaveHook: f,
399
+ initialize: Z,
400
400
  destroy: te,
401
- setThemeOverrides: q,
402
- setUiTheme: ee,
403
- openCommentsForBlock: K
401
+ setThemeOverrides: Y,
402
+ setUiTheme: X,
403
+ openCommentsForBlock: J
404
404
  };
405
405
  }
406
406
  //#endregion
@@ -478,30 +478,26 @@ var Fe = {
478
478
  }
479
479
  }, Ie = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, Le = {
480
480
  key: 0,
481
- class: "tpl-logo tpl:flex tpl:items-center tpl:gap-2.5 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
482
- }, Re = ["src"], ze = { style: { "letter-spacing": "-0.01em" } }, Be = {
483
- key: 1,
484
481
  class: "tpl:text-xs tpl:opacity-60 tpl:text-[var(--tpl-text-muted)]"
485
- }, Ve = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, He = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, Ue = ["data-tooltip"], We = {
482
+ }, Re = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, ze = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, Be = ["data-tooltip"], Ve = {
486
483
  key: 1,
487
484
  "aria-live": "polite",
488
485
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success)]"
489
- }, Ge = {
486
+ }, He = {
490
487
  key: 2,
491
488
  "aria-live": "polite",
492
489
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
493
- }, Ke = ["aria-label", "aria-expanded"], qe = {
490
+ }, Ue = ["aria-label", "aria-expanded"], We = {
494
491
  key: 0,
495
492
  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)]"
496
- }, Je = ["aria-expanded"], Ye = {
493
+ }, Ge = ["aria-expanded"], Ke = {
497
494
  key: 0,
498
495
  class: "tpl:absolute tpl:right-0 tpl:top-full tpl:z-50 tpl:mt-1 tpl:origin-top-right"
499
- }, Xe = ["disabled"], Ze = ["disabled"], Qe = /* @__PURE__ */ U({
496
+ }, qe = ["disabled"], Je = ["disabled"], Ye = /* @__PURE__ */ s({
500
497
  __name: "CloudHeader",
501
498
  props: {
502
499
  editor: {},
503
500
  core: {},
504
- authManager: {},
505
501
  featureFlags: {},
506
502
  panelState: {},
507
503
  snapshotPreview: {},
@@ -515,37 +511,31 @@ var Fe = {
515
511
  },
516
512
  emits: ["save"],
517
513
  setup(e) {
518
- let t = H(() => import("./CollaboratorBar-D2Gu5Xj2.js")), n = H(() => import("./SnapshotHistory-B3EfIcLW.js")), r = H(() => import("./AiFeatureMenu-BFVsjUJY.js"));
519
- return (i, a) => (J(), L("header", Fe, [
520
- R("div", Ie, [e.featureFlags.isWhiteLabeled.value ? I("", !0) : (J(), L("div", Le, [R("img", {
521
- src: e.authManager.resolveUrl("/logo.svg"),
522
- alt: "Templatical",
523
- width: "24",
524
- height: "24",
525
- class: "tpl:shrink-0"
526
- }, null, 8, Re), R("span", ze, Z(e.core.t.header.title), 1)])), e.featureFlags.templateLimit.value === null ? I("", !0) : (J(), L("span", Be, Z(e.core.format(e.core.t.header.templatesUsed, {
514
+ let n = E(() => import("./CollaboratorBar-CWVdp2Y6.js")), i = E(() => import("./SnapshotHistory-DM__MqSu.js")), o = E(() => import("./AiFeatureMenu-j6oaiRVi.js"));
515
+ return (s, l) => (r(), d("header", Fe, [
516
+ v("div", Ie, [e.featureFlags.templateLimit.value === null ? h("", !0) : (r(), d("span", Le, a(e.core.format(e.core.t.header.templatesUsed, {
527
517
  used: e.featureFlags.templateCount.value,
528
518
  max: e.featureFlags.templateLimit.value
529
519
  })), 1))]),
530
- R("div", Ve, [
531
- V(b, {
520
+ v("div", Re, [
521
+ f(J, {
532
522
  viewport: e.editor.state.viewport,
533
523
  onChange: e.editor.setViewport
534
524
  }, null, 8, ["viewport", "onChange"]),
535
- V(x, {
525
+ f(Y, {
536
526
  "dark-mode": e.editor.state.darkMode,
537
527
  onChange: e.editor.setDarkMode
538
528
  }, null, 8, ["dark-mode", "onChange"]),
539
- V(C, {
529
+ f(Z, {
540
530
  "preview-mode": e.editor.state.previewMode,
541
531
  onChange: e.editor.setPreviewMode
542
532
  }, null, 8, ["preview-mode", "onChange"]),
543
- e.collaboration && e.isCollaborationEnabled ? (J(), F(Q(t), {
533
+ e.collaboration && e.isCollaborationEnabled ? (r(), g(S(n), {
544
534
  key: 0,
545
535
  collaborators: e.collaboration.collaborators.value,
546
536
  "is-connected": e.websocket.isConnected.value
547
- }, null, 8, ["collaborators", "is-connected"])) : I("", !0),
548
- e.snapshotPreview.snapshotHistoryInstance.value ? (J(), F(Q(n), {
537
+ }, null, 8, ["collaborators", "is-connected"])) : h("", !0),
538
+ e.snapshotPreview.snapshotHistoryInstance.value ? (r(), g(S(i), {
549
539
  key: 1,
550
540
  snapshots: e.snapshotPreview.snapshotHistorySnapshots.value,
551
541
  "is-loading": e.snapshotPreview.snapshotHistoryIsLoading.value,
@@ -558,53 +548,53 @@ var Fe = {
558
548
  "is-restoring",
559
549
  "onLoad",
560
550
  "onNavigate"
561
- ])) : I("", !0)
551
+ ])) : h("", !0)
562
552
  ]),
563
- R("div", He, [
564
- e.featureFlags.saveStatus.value === "error" ? (J(), L("div", {
553
+ v("div", ze, [
554
+ e.featureFlags.saveStatus.value === "error" ? (r(), d("div", {
565
555
  key: 0,
566
556
  "aria-live": "assertive",
567
557
  class: "tpl-tooltip tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-danger)]",
568
558
  "data-tooltip": e.featureFlags.saveErrorMessage.value
569
- }, [V(Q(_), {
559
+ }, [f(S(G), {
570
560
  size: 12,
571
561
  "stroke-width": 2.5
572
- }), B(" " + Z(e.core.t.header.saveFailed), 1)], 8, Ue)) : e.featureFlags.saveStatus.value === "saved" ? (J(), L("div", We, [V(Q(g), {
562
+ }), D(" " + a(e.core.t.header.saveFailed), 1)], 8, Be)) : e.featureFlags.saveStatus.value === "saved" ? (r(), d("div", Ve, [f(S(W), {
573
563
  size: 12,
574
564
  "stroke-width": 2.5
575
- }), B(" " + Z(e.core.t.header.saved), 1)])) : e.editor.state.isDirty ? (J(), L("div", Ge, [a[4] ||= R("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), B(" " + Z(e.core.t.header.unsaved), 1)])) : I("", !0),
576
- e.commentsInstance.isEnabled.value && e.featureFlags.hasTemplateSaved.value ? (J(), L("button", {
565
+ }), D(" " + a(e.core.t.header.saved), 1)])) : e.editor.state.isDirty ? (r(), d("div", He, [l[4] ||= v("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), D(" " + a(e.core.t.header.unsaved), 1)])) : h("", !0),
566
+ e.commentsInstance.isEnabled.value && e.featureFlags.hasTemplateSaved.value ? (r(), d("button", {
577
567
  key: 3,
578
568
  "aria-label": e.commentsInstance.unresolvedCount.value > 0 ? `${e.core.t.comments.button} (${e.commentsInstance.unresolvedCount.value})` : e.core.t.comments.button,
579
569
  "aria-expanded": e.panelState.commentsOpen.value,
580
- class: W(Q(j)),
581
- style: G({
570
+ class: t(S($)),
571
+ style: T({
582
572
  backgroundColor: e.panelState.commentsOpen.value ? "var(--tpl-primary)" : "transparent",
583
573
  color: e.panelState.commentsOpen.value ? "var(--tpl-bg)" : "var(--tpl-primary)",
584
574
  borderColor: "var(--tpl-primary)"
585
575
  }),
586
- onClick: a[0] ||= (t) => e.panelState.commentsOpen.value = !e.panelState.commentsOpen.value
576
+ onClick: l[0] ||= (t) => e.panelState.commentsOpen.value = !e.panelState.commentsOpen.value
587
577
  }, [
588
- V(Q(O), {
578
+ f(S(ie), {
589
579
  size: 16,
590
580
  "stroke-width": 2
591
581
  }),
592
- B(" " + Z(e.core.t.comments.button) + " ", 1),
593
- e.commentsInstance.unresolvedCount.value > 0 && !e.panelState.commentsOpen.value ? (J(), L("span", qe, Z(e.commentsInstance.unresolvedCount.value), 1)) : I("", !0)
594
- ], 14, Ke)) : I("", !0),
595
- e.featureFlags.canUseAiGeneration.value && e.featureFlags.hasTemplateSaved.value ? (J(), L("div", {
582
+ D(" " + a(e.core.t.comments.button) + " ", 1),
583
+ e.commentsInstance.unresolvedCount.value > 0 && !e.panelState.commentsOpen.value ? (r(), d("span", We, a(e.commentsInstance.unresolvedCount.value), 1)) : h("", !0)
584
+ ], 14, Ue)) : h("", !0),
585
+ e.featureFlags.canUseAiGeneration.value && e.featureFlags.hasTemplateSaved.value ? (r(), d("div", {
596
586
  key: 4,
597
587
  ref: (t) => e.panelState.aiMenuRef.value = t,
598
588
  class: "tpl:relative"
599
- }, [R("button", {
589
+ }, [v("button", {
600
590
  "aria-expanded": e.panelState.aiMenuOpen.value,
601
- class: W(["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"]),
602
- onClick: a[1] ||= oe((...t) => e.panelState.toggleAiMenu && e.panelState.toggleAiMenu(...t), ["stop"])
603
- }, [V(Q(A), {
591
+ class: t(["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"]),
592
+ onClick: l[1] ||= C((...t) => e.panelState.toggleAiMenu && e.panelState.toggleAiMenu(...t), ["stop"])
593
+ }, [f(S(oe), {
604
594
  size: 16,
605
595
  "stroke-width": 2,
606
596
  class: "tpl-ai-btn-icon"
607
- }), B(" " + Z(e.core.t.aiChat.button), 1)], 10, Je), V(N, {
597
+ }), D(" " + a(e.core.t.aiChat.button), 1)], 10, Ge), f(x, {
608
598
  "enter-active-class": "tpl:transition-all tpl:duration-150 tpl:ease-out",
609
599
  "enter-from-class": "tpl:scale-95 tpl:opacity-0",
610
600
  "enter-to-class": "tpl:scale-100 tpl:opacity-100",
@@ -612,55 +602,55 @@ var Fe = {
612
602
  "leave-from-class": "tpl:scale-100 tpl:opacity-100",
613
603
  "leave-to-class": "tpl:scale-95 tpl:opacity-0"
614
604
  }, {
615
- default: $(() => [e.panelState.aiMenuOpen.value ? (J(), L("div", Ye, [V(Q(r), {
605
+ default: c(() => [e.panelState.aiMenuOpen.value ? (r(), d("div", Ke, [f(S(o), {
616
606
  "active-feature": e.panelState.activeAiFeature.value,
617
607
  onSelect: e.panelState.handleAiFeatureSelect
618
- }, null, 8, ["active-feature", "onSelect"])])) : I("", !0)]),
608
+ }, null, 8, ["active-feature", "onSelect"])])) : h("", !0)]),
619
609
  _: 1
620
- })], 512)) : I("", !0),
621
- e.testEmail.isEnabled.value && e.featureFlags.canSendTestEmail.value ? (J(), L("button", {
610
+ })], 512)) : h("", !0),
611
+ e.testEmail.isEnabled.value && e.featureFlags.canSendTestEmail.value ? (r(), d("button", {
622
612
  key: 5,
623
- class: W(Q(j)),
613
+ class: t(S($)),
624
614
  style: {
625
615
  "background-color": "transparent",
626
616
  color: "var(--tpl-primary)",
627
617
  "border-color": "var(--tpl-primary)"
628
618
  },
629
619
  disabled: e.testEmail.isSending.value || !e.featureFlags.hasTemplateSaved.value,
630
- onClick: a[2] ||= (t) => e.panelState.testEmailModalOpen.value = !0
631
- }, [e.testEmail.isSending.value ? (J(), F(Q(D), {
620
+ onClick: l[2] ||= (t) => e.panelState.testEmailModalOpen.value = !0
621
+ }, [e.testEmail.isSending.value ? (r(), g(S(re), {
632
622
  key: 1,
633
623
  class: "tpl-spinner",
634
624
  size: 16,
635
625
  "stroke-width": 2
636
- })) : (J(), F(Q(k), {
626
+ })) : (r(), g(S(ae), {
637
627
  key: 0,
638
628
  size: 16,
639
629
  "stroke-width": 2
640
- })), B(" " + Z(e.core.t.testEmail.button), 1)], 10, Xe)) : I("", !0),
641
- R("button", {
642
- class: W(Q(j)),
630
+ })), D(" " + a(e.core.t.testEmail.button), 1)], 10, qe)) : h("", !0),
631
+ v("button", {
632
+ class: t(S($)),
643
633
  style: {
644
634
  "background-color": "transparent",
645
635
  color: "var(--tpl-primary)",
646
636
  "border-color": "var(--tpl-primary)"
647
637
  },
648
638
  disabled: e.isSaveDisabled,
649
- onClick: a[3] ||= (e) => i.$emit("save")
650
- }, [e.isSaving ? (J(), F(Q(D), {
639
+ onClick: l[3] ||= (e) => s.$emit("save")
640
+ }, [e.isSaving ? (r(), g(S(re), {
651
641
  key: 1,
652
642
  class: "tpl-spinner",
653
643
  size: 16,
654
644
  "stroke-width": 2
655
- })) : (J(), F(Q(Ee), {
645
+ })) : (r(), g(S(Ee), {
656
646
  key: 0,
657
647
  size: 16,
658
648
  "stroke-width": 2
659
- })), B(" " + Z(e.isSaving ? e.core.t.header.saving : e.core.t.header.save), 1)], 10, Ze)
649
+ })), D(" " + a(e.isSaving ? e.core.t.header.saving : e.core.t.header.save), 1)], 10, Je)
660
650
  ])
661
651
  ]));
662
652
  }
663
- }), $e = /* @__PURE__ */ U({
653
+ }), Xe = /* @__PURE__ */ s({
664
654
  __name: "CloudPanels",
665
655
  props: {
666
656
  config: {},
@@ -683,42 +673,45 @@ var Fe = {
683
673
  "module-insert"
684
674
  ],
685
675
  setup(e, { expose: t, emit: n }) {
686
- let r = H(() => import("./AiChatSidebar-CNhSl_ty.js")), i = H(() => import("./CommentsSidebar-CTeEAZTj.js")), a = H(() => import("./DesignReferenceSidebar-u2tKSQK0.js")), o = H(() => import("./TemplateScoringPanel-D2vCRGgx.js")), s = H(() => import("./TestEmailModal-Egk0DFDf.js")), c = H(() => import("./SaveModuleDialog-Kde6X13X.js")), l = H(() => import("./ModuleBrowserModal-DNxODPlX.js")), u = H(async () => (await import("@templatical/media-library")).MediaLibraryModal), d = n;
687
- function f(e, t, n) {
676
+ let i = E(() => import("./AiChatSidebar-DgAjDWO1.js")), a = E(() => import("./CommentsSidebar-CSPHhbQH.js")), o = E(() => import("./DesignReferenceSidebar-D7zfvux6.js")), s = E(() => import("./TemplateScoringPanel-CW13Tlol.js")), c = E(() => import("./TestEmailModal-B8bYqWCY.js")), u = E(() => import("./SaveModuleDialog-DGVfiOmE.js")), p = E(() => import("./ModuleBrowserModal-BLYuCZht.js")), _ = E(async () => (await import("@templatical/media-library")).MediaLibraryModal), v = n;
677
+ function y(e, t, n) {
688
678
  t.history.record(), n.setContent(e), t.conditionPreview.reset();
689
679
  }
690
- let p = X(null);
691
- function m(e) {
692
- p.value?.filterByBlock(e);
680
+ function b(e, t) {
681
+ v("module-insert", e, t);
693
682
  }
694
- return t({ filterCommentsByBlock: m }), (t, n) => (J(), L(M, null, [
695
- V(Q(r), {
683
+ let x = l(null);
684
+ function C(e) {
685
+ x.value?.filterByBlock(e);
686
+ }
687
+ return t({ filterCommentsByBlock: C }), (t, n) => (r(), d(m, null, [
688
+ f(S(i), {
696
689
  visible: e.panelState.aiChatOpen.value,
697
- "on-apply": (t) => f(t, e.core, e.editor),
690
+ "on-apply": (t) => y(t, e.core, e.editor),
698
691
  onClose: n[0] ||= (t) => e.panelState.aiChatOpen.value = !1
699
692
  }, null, 8, ["visible", "on-apply"]),
700
- V(Q(o), {
693
+ f(S(s), {
701
694
  visible: e.panelState.scoringPanelOpen.value,
702
695
  onClose: n[1] ||= (t) => e.panelState.scoringPanelOpen.value = !1
703
696
  }, null, 8, ["visible"]),
704
- V(Q(a), {
697
+ f(S(o), {
705
698
  visible: e.panelState.designReferenceOpen.value,
706
699
  "has-existing-blocks": e.editor.content.value.blocks.length > 0,
707
700
  onClose: n[2] ||= (t) => e.panelState.designReferenceOpen.value = !1,
708
- onApply: n[3] ||= (t) => f(t, e.core, e.editor)
701
+ onApply: n[3] ||= (t) => y(t, e.core, e.editor)
709
702
  }, null, 8, ["visible", "has-existing-blocks"]),
710
- V(Q(i), {
703
+ f(S(a), {
711
704
  ref_key: "commentsSidebar",
712
- ref: p,
705
+ ref: x,
713
706
  visible: e.panelState.commentsOpen.value,
714
707
  onClose: n[4] ||= (t) => e.panelState.commentsOpen.value = !1
715
708
  }, null, 8, ["visible"]),
716
- V(Q(s), {
709
+ f(S(c), {
717
710
  visible: e.panelState.testEmailModalOpen.value,
718
711
  "allowed-emails": e.testEmail.allowedEmails.value,
719
712
  "is-sending": e.testEmail.isSending.value,
720
713
  error: e.testEmail.error.value,
721
- onSend: n[5] ||= (e) => d("send-test-email", e),
714
+ onSend: n[5] ||= (e) => v("send-test-email", e),
722
715
  onClose: n[6] ||= (t) => e.panelState.testEmailModalOpen.value = !1
723
716
  }, null, 8, [
724
717
  "visible",
@@ -726,22 +719,22 @@ var Fe = {
726
719
  "is-sending",
727
720
  "error"
728
721
  ]),
729
- e.planConfigInstance.hasFeature("saved_modules") && e.config.modules !== !1 ? (J(), F(Q(c), {
722
+ e.planConfigInstance.hasFeature("saved_modules") && e.config.modules !== !1 ? (r(), g(S(u), {
730
723
  key: 0,
731
724
  visible: e.showSaveModuleDialog,
732
725
  "pre-selected-block-id": e.saveModulePreSelectedBlockId,
733
726
  onClose: n[7] ||= (e) => {
734
- d("update:showSaveModuleDialog", !1), d("update:saveModulePreSelectedBlockId", null);
727
+ v("update:showSaveModuleDialog", !1), v("update:saveModulePreSelectedBlockId", null);
735
728
  },
736
729
  onSaved: n[8] ||= (t) => e.savedModulesHeadless.loadModules()
737
- }, null, 8, ["visible", "pre-selected-block-id"])) : I("", !0),
738
- e.planConfigInstance.hasFeature("saved_modules") && e.config.modules !== !1 ? (J(), F(Q(l), {
730
+ }, null, 8, ["visible", "pre-selected-block-id"])) : h("", !0),
731
+ e.planConfigInstance.hasFeature("saved_modules") && e.config.modules !== !1 ? (r(), g(S(p), {
739
732
  key: 1,
740
733
  visible: e.showModuleBrowserModal,
741
- onClose: n[9] ||= (e) => d("update:showModuleBrowserModal", !1),
742
- onInsert: n[10] ||= (e, t) => d("module-insert", e, t)
743
- }, null, 8, ["visible"])) : I("", !0),
744
- V(Q(u), {
734
+ onClose: n[9] ||= (e) => v("update:showModuleBrowserModal", !1),
735
+ onInsert: b
736
+ }, null, 8, ["visible"])) : h("", !0),
737
+ f(S(_), {
745
738
  visible: e.panelState.mediaLibraryOpen.value,
746
739
  accept: e.panelState.mediaLibraryAccept.value,
747
740
  onSelect: e.mediaLib.handleMediaSelect,
@@ -754,23 +747,23 @@ var Fe = {
754
747
  ])
755
748
  ], 64));
756
749
  }
757
- }), et = {
750
+ }), Ze = {
758
751
  key: 0,
759
752
  class: "tpl-loading tpl:absolute tpl:inset-0 tpl:z-overlay tpl:flex tpl:flex-col tpl:bg-[var(--tpl-bg)]"
760
- }, tt = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, nt = { 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)]" }, rt = /* @__PURE__ */ U({
753
+ }, Qe = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, $e = { 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)]" }, et = /* @__PURE__ */ s({
761
754
  __name: "CloudLoadingOverlay",
762
755
  props: { visible: { type: Boolean } },
763
756
  setup(e) {
764
- return (t, n) => e.visible ? (J(), L("div", et, [n[1] ||= z("<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), R("div", tt, [R("div", nt, [(J(), L(M, null, te(5, (e) => R("div", {
757
+ return (t, n) => e.visible ? (r(), d("div", Ze, [n[1] ||= w("<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), v("div", Qe, [v("div", $e, [(r(), d(m, null, o(5, (e) => v("div", {
765
758
  key: e,
766
759
  class: "tpl-shimmer tpl:size-7 tpl:rounded-[var(--tpl-radius-sm)]"
767
- })), 64))]), n[0] ||= z("<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)])])) : I("", !0);
760
+ })), 64))]), n[0] ||= w("<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)])])) : h("", !0);
768
761
  }
769
- }), it = {
762
+ }), tt = {
770
763
  key: 0,
771
764
  role: "alert",
772
765
  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)]"
773
- }, at = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, ot = { 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)]" }, lt = /* @__PURE__ */ U({
766
+ }, nt = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, rt = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:text-center" }, it = { class: "tpl:text-lg tpl:font-semibold tpl:text-[var(--tpl-text)]" }, at = { class: "tpl:max-w-md tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, ot = /* @__PURE__ */ s({
774
767
  __name: "CloudErrorOverlay",
775
768
  props: {
776
769
  error: {},
@@ -778,50 +771,50 @@ var Fe = {
778
771
  },
779
772
  emits: ["retry"],
780
773
  setup(e, { emit: t }) {
781
- let n = t, { t: r } = u();
782
- function i(e) {
783
- return "isUnauthorized" in e && e.isUnauthorized ? r.error.authFailed : "isNotFound" in e && e.isNotFound ? r.error.templateNotFound : r.error.defaultMessage;
774
+ let n = t, { t: i } = R();
775
+ function o(e) {
776
+ return "isUnauthorized" in e && e.isUnauthorized ? i.error.authFailed : "isNotFound" in e && e.isNotFound ? i.error.templateNotFound : i.error.defaultMessage;
784
777
  }
785
- function a(e) {
778
+ function s(e) {
786
779
  return "isNotFound" in e && !!e.isNotFound;
787
780
  }
788
- return (t, o) => e.visible && e.error ? (J(), L("div", it, [
789
- R("div", at, [V(Q(_), {
781
+ return (t, c) => e.visible && e.error ? (r(), d("div", tt, [
782
+ v("div", nt, [f(S(G), {
790
783
  size: 32,
791
784
  "stroke-width": 1.5,
792
785
  class: "tpl:text-[var(--tpl-danger)]"
793
786
  })]),
794
- R("div", ot, [R("h2", st, Z(Q(r).error.title), 1), R("p", ct, Z(i(e.error)), 1)]),
795
- a(e.error) ? I("", !0) : (J(), L("button", {
787
+ v("div", rt, [v("h2", it, a(S(i).error.title), 1), v("p", at, a(o(e.error)), 1)]),
788
+ s(e.error) ? h("", !0) : (r(), d("button", {
796
789
  key: 0,
797
790
  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)]",
798
- onClick: o[0] ||= (e) => n("retry")
799
- }, Z(Q(r).error.retry), 1))
800
- ])) : I("", !0);
791
+ onClick: c[0] ||= (e) => n("retry")
792
+ }, a(S(i).error.retry), 1))
793
+ ])) : h("", !0);
801
794
  }
802
- }), ut = {
795
+ }), st = {
803
796
  key: 0,
804
797
  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)]"
805
- }, dt = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, ft = { class: "tpl:flex tpl:items-center tpl:gap-2" }, pt = /* @__PURE__ */ U({
798
+ }, ct = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, lt = { class: "tpl:flex tpl:items-center tpl:gap-2" }, ut = /* @__PURE__ */ s({
806
799
  __name: "SnapshotPreviewBanner",
807
800
  props: { visible: { type: Boolean } },
808
801
  emits: ["cancel", "confirm"],
809
802
  setup(e, { emit: t }) {
810
- let n = t, { t: r } = u();
811
- return (t, i) => e.visible ? (J(), L("div", ut, [R("div", dt, [V(Q(E), {
803
+ let n = t, { t: i } = R();
804
+ return (t, o) => e.visible ? (r(), d("div", st, [v("div", ct, [f(S(Q), {
812
805
  size: 18,
813
806
  "stroke-width": 2,
814
807
  class: "tpl:text-[var(--tpl-primary)]"
815
- }), R("span", null, Z(Q(r).snapshotPreview.message), 1)]), R("div", ft, [R("button", {
808
+ }), v("span", null, a(S(i).snapshotPreview.message), 1)]), v("div", lt, [v("button", {
816
809
  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)]",
817
810
  style: { "background-color": "transparent" },
818
- onClick: i[0] ||= (e) => n("cancel")
819
- }, Z(Q(r).snapshotPreview.cancel), 1), R("button", {
811
+ onClick: o[0] ||= (e) => n("cancel")
812
+ }, a(S(i).snapshotPreview.cancel), 1), v("button", {
820
813
  class: "tpl:rounded-md tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
821
- onClick: i[1] ||= (e) => n("confirm")
822
- }, Z(Q(r).snapshotPreview.restore), 1)])])) : I("", !0);
814
+ onClick: o[1] ||= (e) => n("confirm")
815
+ }, a(S(i).snapshotPreview.restore), 1)])])) : h("", !0);
823
816
  }
824
- }), mt = {
817
+ }), dt = {
825
818
  key: 0,
826
819
  role: "status",
827
820
  "aria-live": "polite",
@@ -831,14 +824,14 @@ var Fe = {
831
824
  color: "var(--tpl-text)",
832
825
  border: "1px solid var(--tpl-warning)"
833
826
  }
834
- }, ht = /* @__PURE__ */ U({
827
+ }, ft = /* @__PURE__ */ s({
835
828
  __name: "CollabUndoToast",
836
829
  props: { visible: { type: Boolean } },
837
830
  setup(e) {
838
- let { t } = u();
839
- return (n, r) => e.visible ? (J(), L("div", mt, Z(Q(t).history.collabWarning), 1)) : I("", !0);
831
+ let { t } = R();
832
+ return (n, i) => e.visible ? (r(), d("div", dt, a(S(t).history.collabWarning), 1)) : h("", !0);
840
833
  }
841
- }), gt = ["data-tpl-theme"], _t = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, vt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, yt = ["aria-label"], bt = /* @__PURE__ */ h(/* @__PURE__ */ U({
834
+ }), pt = ["data-tpl-theme"], mt = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, ht = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, gt = ["aria-label"], _t = /* @__PURE__ */ U(/* @__PURE__ */ s({
842
835
  __name: "CloudEditor",
843
836
  props: {
844
837
  config: {},
@@ -846,56 +839,56 @@ var Fe = {
846
839
  fontsManager: {}
847
840
  },
848
841
  emits: ["ready"],
849
- setup(e, { expose: t, emit: n }) {
850
- let r = e, i = n, a = X(null), o = Me({
851
- config: r.config,
852
- translations: r.translations,
853
- fontsManager: r.fontsManager,
854
- emit: i,
855
- getCommentsSidebar: () => a.value ? { filterByBlock: a.value.filterCommentsByBlock } : null
856
- }), { isInitializing: s, isAuthReady: c, initError: l, authManager: u, planConfigInstance: d, websocket: f, collaboration: p, isCollaborationEnabled: m, editor: h, core: g, featureFlags: _, mediaLib: b, exporter: x, testEmail: C, commentsInstance: E, savedModulesHeadless: D, panelState: O, snapshotPreview: k, collabWarning: A, showSaveModuleDialog: j, showModuleBrowserModal: M, saveModulePreSelectedBlockId: P, setThemeOverrides: z, setUiTheme: H } = o;
857
- async function U(e) {
842
+ setup(i, { expose: o, emit: s }) {
843
+ let u = i, m = s, y = l(null), b = Me({
844
+ config: u.config,
845
+ translations: u.translations,
846
+ fontsManager: u.fontsManager,
847
+ emit: m,
848
+ getCommentsSidebar: () => y.value ? { filterByBlock: y.value.filterCommentsByBlock } : null
849
+ }), { isInitializing: C, isAuthReady: w, initError: E, planConfigInstance: O, websocket: k, collaboration: A, isCollaborationEnabled: j, editor: M, core: N, featureFlags: P, mediaLib: ee, exporter: F, testEmail: I, commentsInstance: L, savedModulesHeadless: R, panelState: z, snapshotPreview: B, collabWarning: V, showSaveModuleDialog: H, showModuleBrowserModal: U, saveModulePreSelectedBlockId: W, setThemeOverrides: G, setUiTheme: J } = b;
850
+ async function Y(e) {
858
851
  try {
859
- await C.sendTestEmail(e), O.testEmailModalOpen.value = !1;
852
+ await I.sendTestEmail(e), z.testEmailModalOpen.value = !1;
860
853
  } catch {}
861
854
  }
862
- function q(e, t) {
855
+ function Z(e, t) {
863
856
  for (let n = 0; n < e.content.length; n++) {
864
857
  let r = se(e.content[n]), i = t === void 0 ? void 0 : t + n;
865
- h.addBlock(r, void 0, void 0, i);
858
+ M.addBlock(r, void 0, void 0, i);
866
859
  }
867
- M.value = !1;
860
+ U.value = !1;
868
861
  }
869
- let Y = Pe({
870
- config: r.config,
871
- editor: h,
872
- websocket: f,
873
- planConfigInstance: d,
874
- snapshotPreview: k,
875
- core: g,
876
- exporter: x,
877
- featureFlags: _,
878
- isDestroyed: o.isDestroyed
862
+ let Q = Pe({
863
+ config: u.config,
864
+ editor: M,
865
+ websocket: k,
866
+ planConfigInstance: O,
867
+ snapshotPreview: B,
868
+ core: N,
869
+ exporter: F,
870
+ featureFlags: P,
871
+ isDestroyed: b.isDestroyed
879
872
  });
880
- return o.onSaveHook.value = Y.saveTemplate, K(() => {
881
- o.initialize();
882
- }), ee(() => {
883
- o.destroy();
884
- }), t({
885
- getContent: () => h.content.value,
886
- setContent: (e) => h.setContent(e),
887
- setTheme: H,
888
- setThemeOverrides: z,
889
- create: Y.createTemplate,
890
- load: Y.loadTemplate,
891
- save: Y.saveTemplate,
892
- sendTestEmail: C.sendTestEmail
893
- }), (e, t) => (J(), L("div", {
894
- class: W(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": Q(h).state.darkMode }]),
895
- "data-tpl-theme": Q(g).resolvedTheme.value,
896
- style: G(Q(g).themeStyles.value)
873
+ return b.onSaveHook.value = Q.saveTemplate, e(() => {
874
+ b.initialize();
875
+ }), _(() => {
876
+ b.destroy();
877
+ }), o({
878
+ getContent: () => M.content.value,
879
+ setContent: (e) => M.setContent(e),
880
+ setTheme: J,
881
+ setThemeOverrides: G,
882
+ create: Q.createTemplate,
883
+ load: Q.loadTemplate,
884
+ save: Q.saveTemplate,
885
+ sendTestEmail: I.sendTestEmail
886
+ }), (e, o) => (r(), d("div", {
887
+ class: t(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": S(M).state.darkMode }]),
888
+ "data-tpl-theme": S(N).resolvedTheme.value,
889
+ style: T(S(N).themeStyles.value)
897
890
  }, [
898
- V(N, {
891
+ f(x, {
899
892
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
900
893
  "enter-from-class": "tpl:opacity-100",
901
894
  "enter-to-class": "tpl:opacity-100",
@@ -903,10 +896,10 @@ var Fe = {
903
896
  "leave-from-class": "tpl:opacity-100",
904
897
  "leave-to-class": "tpl:opacity-0"
905
898
  }, {
906
- default: $(() => [V(rt, { visible: Q(s) || Q(h).state.isLoading }, null, 8, ["visible"])]),
899
+ default: c(() => [f(et, { visible: S(C) || S(M).state.isLoading }, null, 8, ["visible"])]),
907
900
  _: 1
908
901
  }),
909
- V(N, {
902
+ f(x, {
910
903
  "enter-active-class": "tpl:transition-opacity tpl:duration-200",
911
904
  "enter-from-class": "tpl:opacity-0",
912
905
  "enter-to-class": "tpl:opacity-100",
@@ -914,10 +907,10 @@ var Fe = {
914
907
  "leave-from-class": "tpl:opacity-100",
915
908
  "leave-to-class": "tpl:opacity-0"
916
909
  }, {
917
- default: $(() => [V(lt, {
918
- error: Q(l),
919
- visible: !!Q(l) && !Q(s),
920
- onRetry: Q(o).initialize
910
+ default: c(() => [f(ot, {
911
+ error: S(E),
912
+ visible: !!S(E) && !S(C),
913
+ onRetry: S(b).initialize
921
914
  }, null, 8, [
922
915
  "error",
923
916
  "visible",
@@ -925,25 +918,23 @@ var Fe = {
925
918
  ])]),
926
919
  _: 1
927
920
  }),
928
- V(Qe, {
929
- editor: Q(h),
930
- core: Q(g),
931
- "auth-manager": Q(u),
932
- "feature-flags": Q(_),
933
- "panel-state": Q(O),
934
- "snapshot-preview": Q(k),
935
- "comments-instance": Q(E),
936
- "test-email": Q(C),
937
- websocket: Q(f),
938
- collaboration: Q(p),
939
- "is-collaboration-enabled": Q(m),
940
- "is-saving": Q(h).state.isSaving || Q(_).isSaveExporting.value,
941
- "is-save-disabled": Q(h).state.isSaving || Q(_).isSaveExporting.value || !Q(h).state.isDirty,
942
- onSave: t[0] ||= (e) => Q(Y).saveTemplate().catch((e) => r.config.onError?.(e))
921
+ f(Ye, {
922
+ editor: S(M),
923
+ core: S(N),
924
+ "feature-flags": S(P),
925
+ "panel-state": S(z),
926
+ "snapshot-preview": S(B),
927
+ "comments-instance": S(L),
928
+ "test-email": S(I),
929
+ websocket: S(k),
930
+ collaboration: S(A),
931
+ "is-collaboration-enabled": S(j),
932
+ "is-saving": S(M).state.isSaving || S(P).isSaveExporting.value,
933
+ "is-save-disabled": S(M).state.isSaving || S(P).isSaveExporting.value || !S(M).state.isDirty,
934
+ onSave: o[0] ||= (e) => S(Q).saveTemplate().catch((e) => u.config.onError?.(e))
943
935
  }, null, 8, [
944
936
  "editor",
945
937
  "core",
946
- "auth-manager",
947
938
  "feature-flags",
948
939
  "panel-state",
949
940
  "snapshot-preview",
@@ -955,16 +946,16 @@ var Fe = {
955
946
  "is-saving",
956
947
  "is-save-disabled"
957
948
  ]),
958
- V(pt, {
959
- visible: Q(k).isPreviewingSnapshot.value,
960
- onCancel: Q(k).cancelPreview,
961
- onConfirm: Q(k).confirmRestoreSnapshot
949
+ f(ut, {
950
+ visible: S(B).isPreviewingSnapshot.value,
951
+ onCancel: S(B).cancelPreview,
952
+ onConfirm: S(B).confirmRestoreSnapshot
962
953
  }, null, 8, [
963
954
  "visible",
964
955
  "onCancel",
965
956
  "onConfirm"
966
957
  ]),
967
- V(N, {
958
+ f(x, {
968
959
  "enter-active-class": "tpl:transition-all tpl:duration-200 tpl:ease-out",
969
960
  "enter-from-class": "tpl:translate-y-[-8px] tpl:opacity-0",
970
961
  "enter-to-class": "tpl:translate-y-0 tpl:opacity-100",
@@ -972,18 +963,18 @@ var Fe = {
972
963
  "leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
973
964
  "leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
974
965
  }, {
975
- default: $(() => [V(ht, { visible: Q(A).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
966
+ default: c(() => [f(ft, { visible: S(V).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
976
967
  _: 1
977
968
  }),
978
- ae(V(S, null, null, 512), [[re, !Q(h).state.previewMode]]),
979
- R("div", {
980
- class: W(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [Q(h).state.previewMode ? "tpl:left-0 tpl:right-0" : Q(O).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", Q(k).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
969
+ n(f(X, null, null, 512), [[p, !S(M).state.previewMode]]),
970
+ v("div", {
971
+ class: t(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [S(M).state.previewMode ? "tpl:left-0 tpl:right-0" : S(z).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", S(B).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
981
972
  style: {
982
973
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
983
974
  "background-color": "var(--tpl-canvas-bg)"
984
975
  }
985
- }, [R("div", _t, [V(N, { name: "tpl-restore-btn" }, {
986
- default: $(() => [Q(g).conditionPreview.hasHiddenBlocks.value ? (J(), L("button", {
976
+ }, [v("div", mt, [f(x, { name: "tpl-restore-btn" }, {
977
+ default: c(() => [S(N).conditionPreview.hasHiddenBlocks.value ? (r(), d("button", {
987
978
  key: 0,
988
979
  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",
989
980
  style: {
@@ -992,22 +983,22 @@ var Fe = {
992
983
  "border-color": "var(--tpl-warning)",
993
984
  "backdrop-filter": "blur(8px)"
994
985
  },
995
- onClick: t[1] ||= (e) => Q(g).conditionPreview.reset()
996
- }, [V(Q(y), {
986
+ onClick: o[1] ||= (e) => S(N).conditionPreview.reset()
987
+ }, [f(S(q), {
997
988
  size: 13,
998
989
  "stroke-width": 2
999
- }), B(" " + Z(Q(g).t.blockSettings.restoreHiddenBlocks), 1)])) : I("", !0)]),
990
+ }), D(" " + a(S(N).t.blockSettings.restoreHiddenBlocks), 1)])) : h("", !0)]),
1000
991
  _: 1
1001
- })]), R("main", vt, [V(w, {
1002
- viewport: Q(h).state.viewport,
1003
- content: Q(h).content.value,
1004
- "selected-block-id": Q(h).state.selectedBlockId,
1005
- "dark-mode": Q(h).state.darkMode,
1006
- "preview-mode": Q(h).state.previewMode,
1007
- "locked-blocks": Q(p)?.lockedBlocks.value ?? void 0,
1008
- onSelectBlock: Q(h).selectBlock,
1009
- onOpenAiChat: t[2] ||= (e) => Q(O).aiChatOpen.value = !0,
1010
- onOpenDesignReference: t[3] ||= (e) => Q(O).designReferenceOpen.value = !0
992
+ })]), v("main", ht, [f(te, {
993
+ viewport: S(M).state.viewport,
994
+ content: S(M).content.value,
995
+ "selected-block-id": S(M).state.selectedBlockId,
996
+ "dark-mode": S(M).state.darkMode,
997
+ "preview-mode": S(M).state.previewMode,
998
+ "locked-blocks": S(A)?.lockedBlocks.value ?? void 0,
999
+ onSelectBlock: S(M).selectBlock,
1000
+ onOpenAiChat: o[2] ||= (e) => S(z).aiChatOpen.value = !0,
1001
+ onOpenDesignReference: o[3] ||= (e) => S(z).designReferenceOpen.value = !0
1011
1002
  }, null, 8, [
1012
1003
  "viewport",
1013
1004
  "content",
@@ -1017,51 +1008,51 @@ var Fe = {
1017
1008
  "locked-blocks",
1018
1009
  "onSelectBlock"
1019
1010
  ])])], 2),
1020
- Q(_).isWhiteLabeled.value ? I("", !0) : (J(), F(T, {
1011
+ i.config.branding !== !1 && !S(P).isWhiteLabeled.value ? (r(), g(ne, {
1021
1012
  key: 0,
1022
- "position-class": [Q(h).state.previewMode ? "tpl:left-0 tpl:right-0" : Q(O).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1023
- }, null, 8, ["position-class"])),
1024
- R("div", {
1013
+ "position-class": [S(M).state.previewMode ? "tpl:left-0 tpl:right-0" : S(z).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1014
+ }, null, 8, ["position-class"])) : h("", !0),
1015
+ v("div", {
1025
1016
  class: "tpl-sr-only",
1026
1017
  role: "status",
1027
1018
  "aria-live": "polite",
1028
1019
  "aria-atomic": "true",
1029
- "aria-label": Q(g).t.landmarks.reorderAnnouncements
1030
- }, Z(Q(g).keyboardReorder.announcement.value), 9, yt),
1031
- ae(V(v, {
1032
- "selected-block": Q(h).selectedBlock.value,
1033
- settings: Q(h).content.value.settings,
1034
- "shifted-left": Q(O).rightPanelOpen.value,
1035
- onUpdateBlock: t[4] ||= (e) => Q(h).updateBlock(Q(h).selectedBlock.value.id, e),
1036
- onDeleteBlock: t[5] ||= (e) => Q(g).blockActions.deleteBlock(Q(h).selectedBlock.value.id),
1037
- onDuplicateBlock: t[6] ||= (e) => Q(g).blockActions.duplicateBlock(Q(h).selectedBlock.value),
1038
- onUpdateSettings: Q(h).updateSettings
1020
+ "aria-label": S(N).t.landmarks.reorderAnnouncements
1021
+ }, a(S(N).keyboardReorder.announcement.value), 9, gt),
1022
+ n(f(K, {
1023
+ "selected-block": S(M).selectedBlock.value,
1024
+ settings: S(M).content.value.settings,
1025
+ "shifted-left": S(z).rightPanelOpen.value,
1026
+ onUpdateBlock: o[4] ||= (e) => S(M).updateBlock(S(M).selectedBlock.value.id, e),
1027
+ onDeleteBlock: o[5] ||= (e) => S(N).blockActions.deleteBlock(S(M).selectedBlock.value.id),
1028
+ onDuplicateBlock: o[6] ||= (e) => S(N).blockActions.duplicateBlock(S(M).selectedBlock.value),
1029
+ onUpdateSettings: S(M).updateSettings
1039
1030
  }, null, 8, [
1040
1031
  "selected-block",
1041
1032
  "settings",
1042
1033
  "shifted-left",
1043
1034
  "onUpdateSettings"
1044
- ]), [[re, !Q(h).state.previewMode]]),
1045
- !Q(s) && Q(c) ? (J(), F($e, {
1035
+ ]), [[p, !S(M).state.previewMode]]),
1036
+ !S(C) && S(w) ? (r(), g(Xe, {
1046
1037
  key: 1,
1047
1038
  ref_key: "cloudPanelsRef",
1048
- ref: a,
1049
- config: r.config,
1050
- editor: Q(h),
1051
- core: Q(g),
1052
- "panel-state": Q(O),
1053
- "plan-config-instance": Q(d),
1054
- "test-email": Q(C),
1055
- "media-lib": Q(b),
1056
- "saved-modules-headless": Q(D),
1057
- "show-save-module-dialog": Q(j),
1058
- "save-module-pre-selected-block-id": Q(P),
1059
- "show-module-browser-modal": Q(M),
1060
- "onUpdate:showSaveModuleDialog": t[7] ||= (e) => j.value = e,
1061
- "onUpdate:saveModulePreSelectedBlockId": t[8] ||= (e) => P.value = e,
1062
- "onUpdate:showModuleBrowserModal": t[9] ||= (e) => M.value = e,
1063
- onSendTestEmail: U,
1064
- onModuleInsert: q
1039
+ ref: y,
1040
+ config: u.config,
1041
+ editor: S(M),
1042
+ core: S(N),
1043
+ "panel-state": S(z),
1044
+ "plan-config-instance": S(O),
1045
+ "test-email": S(I),
1046
+ "media-lib": S(ee),
1047
+ "saved-modules-headless": S(R),
1048
+ "show-save-module-dialog": S(H),
1049
+ "save-module-pre-selected-block-id": S(W),
1050
+ "show-module-browser-modal": S(U),
1051
+ "onUpdate:showSaveModuleDialog": o[7] ||= (e) => H.value = e,
1052
+ "onUpdate:saveModulePreSelectedBlockId": o[8] ||= (e) => W.value = e,
1053
+ "onUpdate:showModuleBrowserModal": o[9] ||= (e) => U.value = e,
1054
+ onSendTestEmail: Y,
1055
+ onModuleInsert: Z
1065
1056
  }, null, 8, [
1066
1057
  "config",
1067
1058
  "editor",
@@ -1074,9 +1065,9 @@ var Fe = {
1074
1065
  "show-save-module-dialog",
1075
1066
  "save-module-pre-selected-block-id",
1076
1067
  "show-module-browser-modal"
1077
- ])) : I("", !0)
1078
- ], 14, gt));
1068
+ ])) : h("", !0)
1069
+ ], 14, pt));
1079
1070
  }
1080
- }), [["__scopeId", "data-v-45bdd3b1"]]);
1071
+ }), [["__scopeId", "data-v-48e2c2ee"]]);
1081
1072
  //#endregion
1082
- export { bt as default };
1073
+ export { _t as default };