@templatical/editor 0.5.1 → 0.6.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 (154) hide show
  1. package/dist/AccessibilityPanel-CvQGLdu6.js +108 -0
  2. package/dist/{AiChatSidebar-Cg206ewI.js → AiChatSidebar-Br9dhkIB.js} +17 -16
  3. package/dist/{AiFeatureMenu-D7Od4cI2.js → AiFeatureMenu-Ceewb3uB.js} +13 -13
  4. package/dist/BlockA11yBadge-CXDLqkcJ.js +34 -0
  5. package/dist/{CloudEditor-DG8fWnXI.js → CloudEditor-D_flODpm.js} +306 -217
  6. package/dist/{CollaboratorBar-BdXfCYAr.js → CollaboratorBar-BcSxXVY-.js} +4 -4
  7. package/dist/{CommentsSidebar-BAma2apG.js → CommentsSidebar-DceMRyIS.js} +26 -25
  8. package/dist/{CountdownBlock-Ce3RFNpM.js → CountdownBlock-BNSj1jvJ.js} +2 -2
  9. package/dist/{CountdownToolbar-Bo3Jaiky.js → CountdownToolbar-ClJr2GzL.js} +3 -3
  10. package/dist/{DesignReferenceSidebar-B8DDnLHQ.js → DesignReferenceSidebar-50qFipmW.js} +30 -29
  11. package/dist/{LoadingTrack-DhxulLPM.js → LoadingTrack-B0CWFHXQ.js} +1 -1
  12. package/dist/{ModuleBrowserModal-DpMInJoP.js → ModuleBrowserModal-BnSdG4DE.js} +10 -10
  13. package/dist/{ModulePreviewCanvas-MjIGlxVI.js → ModulePreviewCanvas-B78PuZdk.js} +2 -2
  14. package/dist/{NumberWithSuffix-BysfchFp.js → NumberWithSuffix-DkXUez9t.js} +3 -3
  15. package/dist/{ParagraphEditor-B5qZL5c2.js → ParagraphEditor-CPBYk2m3.js} +39 -38
  16. package/dist/{RichTextEditorContent-jxPxfbfZ.js → RichTextEditorContent-DYkIauIk.js} +4 -4
  17. package/dist/{SaveModuleDialog-BGFYMJby.js → SaveModuleDialog-Df__VToK.js} +7 -7
  18. package/dist/{SnapshotHistory-4aWE_-GM.js → SnapshotHistory-QBTbVrEK.js} +9 -9
  19. package/dist/{TemplateScoringPanel-BmAHdgLF.js → TemplateScoringPanel-4GTNHej5.js} +29 -27
  20. package/dist/{TestEmailModal-p-iH28wl.js → TestEmailModal-DaDMACHY.js} +4 -4
  21. package/dist/{TitleEditor-BHxJ6Oxd.js → TitleEditor-PHShl4tS.js} +10 -10
  22. package/dist/{TplModal-BiUCSfou.js → TplModal-DzlNkBYQ.js} +2 -2
  23. package/dist/_plugin-vue_export-helper-B0hnzhyu.js +8 -0
  24. package/dist/accessibility-e8JYu_zd.js +27 -0
  25. package/dist/{blockTypeIcons-8GJD96Tw.js → blockTypeIcons-D0wkSpP9.js} +2 -2
  26. package/dist/bundle-stats.json +8 -8
  27. package/dist/cdn/chunks/AccessibilityPanel-DmQIqpp1.js +97 -0
  28. package/dist/cdn/chunks/AccessibilityPanel-DmQIqpp1.js.map +1 -0
  29. package/dist/cdn/chunks/{AiFeatureMenu-DSXAYiMk.js → AiFeatureMenu-D0kJ0FMv.js} +5 -5
  30. package/dist/cdn/chunks/{AiFeatureMenu-DSXAYiMk.js.map → AiFeatureMenu-D0kJ0FMv.js.map} +1 -1
  31. package/dist/cdn/chunks/BlockA11yBadge-DWi7e6UQ.js +33 -0
  32. package/dist/cdn/chunks/BlockA11yBadge-DWi7e6UQ.js.map +1 -0
  33. package/dist/cdn/chunks/{CloudEditor-CRYF-bR3.js → CloudEditor-ulKjC0Ag.js} +253 -166
  34. package/dist/cdn/chunks/CloudEditor-ulKjC0Ag.js.map +1 -0
  35. package/dist/cdn/chunks/{CollaboratorBar-CTFgLtUt.js → CollaboratorBar-Bp9LwcWB.js} +6 -6
  36. package/dist/cdn/chunks/{CollaboratorBar-CTFgLtUt.js.map → CollaboratorBar-Bp9LwcWB.js.map} +1 -1
  37. package/dist/cdn/chunks/{CountdownBlock-BKg-e3Uo.js → CountdownBlock-XFPbUKXw.js} +2 -2
  38. package/dist/cdn/chunks/{CountdownBlock-BKg-e3Uo.js.map → CountdownBlock-XFPbUKXw.js.map} +1 -1
  39. package/dist/cdn/chunks/{CountdownToolbar-CPAOXOwI.js → CountdownToolbar-DndLWUgz.js} +3 -3
  40. package/dist/cdn/chunks/{CountdownToolbar-CPAOXOwI.js.map → CountdownToolbar-DndLWUgz.js.map} +1 -1
  41. package/dist/cdn/chunks/{ModuleBrowserModal-B70ZM4KG.js → ModuleBrowserModal-ClY6A8bi.js} +7 -7
  42. package/dist/cdn/chunks/{ModuleBrowserModal-B70ZM4KG.js.map → ModuleBrowserModal-ClY6A8bi.js.map} +1 -1
  43. package/dist/cdn/chunks/{ModulePreviewCanvas-VHhQwuFP.js → ModulePreviewCanvas-eQExlHRD.js} +18 -18
  44. package/dist/cdn/chunks/{ModulePreviewCanvas-VHhQwuFP.js.map → ModulePreviewCanvas-eQExlHRD.js.map} +1 -1
  45. package/dist/cdn/chunks/{NumberWithSuffix-DnqYqSKs.js → NumberWithSuffix-Cf5C9rpj.js} +4 -4
  46. package/dist/cdn/chunks/{NumberWithSuffix-DnqYqSKs.js.map → NumberWithSuffix-Cf5C9rpj.js.map} +1 -1
  47. package/dist/cdn/chunks/{ParagraphEditor-oVEaeerJ.js → ParagraphEditor-B5AvuetS.js} +53 -53
  48. package/dist/cdn/chunks/{ParagraphEditor-oVEaeerJ.js.map → ParagraphEditor-B5AvuetS.js.map} +1 -1
  49. package/dist/cdn/chunks/{RichTextEditorContent-CmOwLOeY.js → RichTextEditorContent-hCk4SA8U.js} +4 -4
  50. package/dist/cdn/chunks/{RichTextEditorContent-CmOwLOeY.js.map → RichTextEditorContent-hCk4SA8U.js.map} +1 -1
  51. package/dist/cdn/chunks/{SaveModuleDialog-B6kNizps.js → SaveModuleDialog-Borv00Kh.js} +3 -3
  52. package/dist/cdn/chunks/{SaveModuleDialog-B6kNizps.js.map → SaveModuleDialog-Borv00Kh.js.map} +1 -1
  53. package/dist/cdn/chunks/{TitleEditor-CvZe3neh.js → TitleEditor-BkzRNsEg.js} +12 -12
  54. package/dist/cdn/chunks/{TitleEditor-CvZe3neh.js.map → TitleEditor-BkzRNsEg.js.map} +1 -1
  55. package/dist/cdn/chunks/blockTypeIcons-Dlw0LR_y.js +22 -0
  56. package/dist/cdn/chunks/{blockTypeIcons-Bs9B-yft.js.map → blockTypeIcons-Dlw0LR_y.js.map} +1 -1
  57. package/dist/cdn/chunks/{de-CGu9U1iv.js → de-Ce-LbJ2J.js} +1 -1
  58. package/dist/cdn/chunks/{de-CGu9U1iv.js.map → de-Ce-LbJ2J.js.map} +1 -1
  59. package/dist/{de-DwLWZn6p.js → cdn/chunks/de-D8CnZxV9.js} +21 -1
  60. package/dist/cdn/chunks/de-D8CnZxV9.js.map +1 -0
  61. package/dist/{de-CbSb23fl.js → cdn/chunks/de-RQrZR56a.js} +8 -0
  62. package/dist/cdn/chunks/{de-Db6I9YdS.js.map → de-RQrZR56a.js.map} +1 -1
  63. package/dist/cdn/chunks/{emojiData-Vv_m5TSB.js → emojiData-EMFlj6FJ.js} +1 -1
  64. package/dist/cdn/chunks/{emojiData-Vv_m5TSB.js.map → emojiData-EMFlj6FJ.js.map} +1 -1
  65. package/dist/{en-BrlGVpmd.js → cdn/chunks/en-8FHaQv4V.js} +21 -1
  66. package/dist/cdn/chunks/en-8FHaQv4V.js.map +1 -0
  67. package/dist/{en-2fvenFu0.js → cdn/chunks/en-Bl1ecfRF.js} +8 -0
  68. package/dist/cdn/chunks/{en-BbqBJ2Q3.js.map → en-Bl1ecfRF.js.map} +1 -1
  69. package/dist/cdn/chunks/{en-C3WMCISl.js → en-DiCWK5fG.js} +1 -1
  70. package/dist/cdn/chunks/{en-C3WMCISl.js.map → en-DiCWK5fG.js.map} +1 -1
  71. package/dist/cdn/chunks/{extensions-D13MqxlW.js → extensions-Bseybosy.js} +37 -34
  72. package/dist/cdn/chunks/{extensions-D13MqxlW.js.map → extensions-Bseybosy.js.map} +1 -1
  73. package/dist/cdn/chunks/{features-BnG-dhzy.js → features-C256qERn.js} +816 -756
  74. package/dist/cdn/chunks/features-C256qERn.js.map +1 -0
  75. package/dist/cdn/chunks/{icons-B_185qj_.js → icons-BfGy6HC_.js} +99 -52
  76. package/dist/cdn/chunks/icons-BfGy6HC_.js.map +1 -0
  77. package/dist/cdn/chunks/{media-library-DxpFw4Tt.js → media-library-hjXJlR6s.js} +217 -217
  78. package/dist/cdn/chunks/{media-library-DxpFw4Tt.js.map → media-library-hjXJlR6s.js.map} +1 -1
  79. package/dist/cdn/chunks/quality-CqLOOUnE.js +1404 -0
  80. package/dist/cdn/chunks/quality-CqLOOUnE.js.map +1 -0
  81. package/dist/cdn/chunks/{readableTextColor-Cd_cgWO_.js → readableTextColor-DhoK4XiZ.js} +1 -1
  82. package/dist/cdn/chunks/{readableTextColor-Cd_cgWO_.js.map → readableTextColor-DhoK4XiZ.js.map} +1 -1
  83. package/dist/cdn/chunks/{dist-MGrg9tLo.js → renderer-Dbtez0lY.js} +178 -126
  84. package/dist/cdn/chunks/renderer-Dbtez0lY.js.map +1 -0
  85. package/dist/cdn/chunks/{src-Cw7KAyui.js → src-MOXq0pRK.js} +11 -11
  86. package/dist/cdn/chunks/{src-Cw7KAyui.js.map → src-MOXq0pRK.js.map} +1 -1
  87. package/dist/cdn/chunks/{styles-DYDpAUsJ.js → styles-COCYlkQY.js} +576 -484
  88. package/dist/cdn/chunks/styles-COCYlkQY.js.map +1 -0
  89. package/dist/cdn/chunks/{tiptap-CPAwPMop.js → tiptap-CX3vCeHQ.js} +2 -2
  90. package/dist/cdn/chunks/{tiptap-CPAwPMop.js.map → tiptap-CX3vCeHQ.js.map} +1 -1
  91. package/dist/cdn/editor.css +1 -1
  92. package/dist/cdn/editor.js +87 -86
  93. package/dist/cdn/editor.js.map +1 -1
  94. package/dist/{check-Om8IxvJb.js → check-Da05j8yl.js} +1 -1
  95. package/dist/{chevron-down-SG7QNtDl.js → chevron-down-R2uY34iD.js} +1 -1
  96. package/dist/{circle-alert-De74azaX.js → circle-alert-DZuGWPX-.js} +1 -1
  97. package/dist/{clock-Dr7rX_PG.js → clock-CRp2sIub.js} +1 -1
  98. package/dist/{cloud-B1NAFg44.js → cloud-WfWdqZVK.js} +1 -1
  99. package/dist/{_plugin-vue_export-helper-GRmvIR5A.js → createLucideIcon-C3pa2siy.js} +2 -6
  100. package/dist/{cdn/chunks/de-BSWt7lYu.js → de-Brqvgr43.js} +19 -3
  101. package/dist/{cdn/chunks/de-Db6I9YdS.js → de-DCaaCE5s.js} +6 -2
  102. package/dist/{dist-CuyhAnuE.js → dist-B1IR0bpH.js} +65 -53
  103. package/dist/{dist-QoJxR1uP.js → dist-BFawx6IS.js} +1 -1
  104. package/dist/{dist-H7npgW0s.js → dist-BaQIYPsn.js} +1 -1
  105. package/dist/{dist-C4m7p7Wb.js → dist-Cp0zXPAD.js} +1 -1
  106. package/dist/{dist--8ZUsIQD.js → dist-D6uC2xhi.js} +1 -1
  107. package/dist/{dist-BMMiVjHs.js → dist-D90y8dvT.js} +3 -3
  108. package/dist/{dist--e2w6FN-.js → dist-DDJIWTRY.js} +1 -1
  109. package/dist/{dist-e0ylhlSV.js → dist-DJmnUmW9.js} +2 -1
  110. package/dist/{dist-BOSn1353.js → dist-DjviJBCi.js} +1 -1
  111. package/dist/{dist-BsiDC2rP.js → dist-KoBJjK1G.js} +1 -1
  112. package/dist/{dist-BNZS_qhu.js → dist-aRzjfSRN.js} +1 -1
  113. package/dist/{dist-3AzSJz2x.js → dist-us-RpCWN.js} +1 -1
  114. package/dist/{dist-DPsMHsAW.js → dist-wzMIGj-D.js} +1 -1
  115. package/dist/{cdn/chunks/en-BbqBJ2Q3.js → en-DXCyK4-X.js} +6 -2
  116. package/dist/{cdn/chunks/en-9-vIGlc7.js → en-WDVp87TE.js} +19 -3
  117. package/dist/{extensions-Cmf6XVn9.js → extensions-CUcl9Ok4.js} +26 -23
  118. package/dist/{image-up-10kxuulB.js → image-up-MBZKKg9p.js} +1 -1
  119. package/dist/index.d.ts +23 -6
  120. package/dist/info-CJEC7piy.js +19 -0
  121. package/dist/{keys-BeW4IrXP.js → keys-ciNfSSGj.js} +3 -3
  122. package/dist/{loader-circle-IS16T05j.js → loader-circle-DsY5Yg33.js} +1 -1
  123. package/dist/{message-circle-3R472hDc.js → message-circle-yElBbR2C.js} +1 -1
  124. package/dist/{refresh-cw-CpmOfpPK.js → refresh-cw-CE_AGtn8.js} +3 -18
  125. package/dist/{scan-line-J_fzG2Wo.js → scan-line-D0vcUekt.js} +1 -1
  126. package/dist/{send-DRkFf4hP.js → send-DH4oDQqC.js} +1 -1
  127. package/dist/{shield-check-DtXk7JKN.js → shield-check-CfJgs2Hd.js} +1 -1
  128. package/dist/{sparkles-CD7TiNiC.js → sparkles-CvRXGqFs.js} +1 -1
  129. package/dist/style.css +1 -1
  130. package/dist/{styles-C-FrkTA9.js → styles-B58wYIn4.js} +589 -476
  131. package/dist/templatical-editor.js +90 -89
  132. package/dist/{text-align-start-B8M9hruh.js → text-align-start-BT9VUDxK.js} +1 -1
  133. package/dist/{trash-2-cEVwp-r_.js → trash-2-DbP2Y6t2.js} +1 -1
  134. package/dist/{triangle-alert-8CkexIzx.js → triangle-alert-aOXceTSe.js} +1 -1
  135. package/dist/{useCloudI18n-D0Fi0hBU.js → useCloudI18n-BuIwR6OE.js} +1 -1
  136. package/dist/{useEditorCore-D0uZbPKG.js → useEditorCore-Dz-qbVXX.js} +1709 -1661
  137. package/dist/{useI18n-Jp3X6Q0t.js → useI18n-lb2DHDiu.js} +1 -1
  138. package/dist/{useMergeTag-CEE4CG-D.js → useMergeTag-CBwKnnNB.js} +3 -3
  139. package/dist/{x-BNc1bVzp.js → x-u2oVmjN_.js} +1 -1
  140. package/package.json +10 -5
  141. package/dist/cdn/chunks/CloudEditor-CRYF-bR3.js.map +0 -1
  142. package/dist/cdn/chunks/blockTypeIcons-Bs9B-yft.js +0 -22
  143. package/dist/cdn/chunks/de-BSWt7lYu.js.map +0 -1
  144. package/dist/cdn/chunks/dist-MGrg9tLo.js.map +0 -1
  145. package/dist/cdn/chunks/en-9-vIGlc7.js.map +0 -1
  146. package/dist/cdn/chunks/features-BnG-dhzy.js.map +0 -1
  147. package/dist/cdn/chunks/icons-B_185qj_.js.map +0 -1
  148. package/dist/cdn/chunks/styles-DYDpAUsJ.js.map +0 -1
  149. /package/dist/{dist-CmrXHeJS.js → dist-iLBdeBDR.js} +0 -0
  150. /package/dist/{emojiData-DcYt1YZ3.js → emojiData-PQyVa4bU.js} +0 -0
  151. /package/dist/{formatRelativeTime-MungD2xr.js → formatRelativeTime-WvH3Au71.js} +0 -0
  152. /package/dist/{liquid.browser-BohVA1YU.js → liquid.browser-CdMv1BTn.js} +0 -0
  153. /package/dist/{readableTextColor-Uc7ntzXo.js → readableTextColor-CY3SiRnt.js} +0 -0
  154. /package/dist/{styleConstants-Beu6EmBc.js → styleConstants-fWzlIIwN.js} +0 -0
@@ -1,13 +1,13 @@
1
1
  import { $ as e, B as t, F as n, H as r, M as i, N as a, P as o, S as s, U as c, X as l, _ as u, at as d, b as f, c as p, ct as m, d as h, g, h as _, j as v, lt as y, m as b, n as x, p as S, st as C, tt as w, u as T, v as E, x as D, y as O } from "./draggable-Bcb86AsV.js";
2
- import { $ as k, $t as A, At as j, Bt as M, C as N, Ct as P, D as F, Dt as I, Ft as ee, Jt as L, Mt as R, Nn as z, Nt as B, Rt as V, S as H, Y as U, Yt as W, _ as G, b as te, bn as K, c as ne, d as re, f as q, g as ie, h as ae, hn as J, ht as Y, k as oe, l as se, m as ce, mt as X, p as Z, qt as le, sn as Q, st as ue, tt as de, u as fe, ut as pe, v as me, wt as he, x as ge, y as _e, zt as ve } from "./features-BnG-dhzy.js";
3
- import { S as ye, x as be } from "./icons-B_185qj_.js";
4
- import { a as xe, i as Se, n as Ce, o as we, r as Te, s as Ee, t as De } from "./styles-DYDpAUsJ.js";
2
+ import { $ as k, Bt as A, C as j, D as M, Fn as N, Ft as P, Ht as F, Lt as ee, Nt as I, Ot as L, S as te, Sn as R, Tt as z, Vt as B, Xt as V, Y as ne, Yt as H, Zt as U, _ as W, _n as G, at as K, b as re, c as ie, ct as q, d as J, dt as Y, f as X, g as ae, gt as Z, h as oe, ht as se, jt as ce, k as le, l as ue, ln as Q, m as de, p as fe, tn as pe, tt as me, u as he, v as ge, wt as _e, x as ve, y as ye } from "./features-C256qERn.js";
3
+ import { C as be, S as xe } from "./icons-BfGy6HC_.js";
4
+ import { a as Se, c as Ce, i as we, n as Te, o as Ee, r as De, s as Oe, t as ke } from "./styles-COCYlkQY.js";
5
5
  import { d as $ } from "./styleConstants-DP1VOca8.js";
6
6
  //#region src/cloud/composables/useSnapshotPreview.ts
7
- function Oe(t) {
7
+ function Ae(t) {
8
8
  let { authManager: n, editor: r, history: i, conditionPreview: a, autoSave: o, onError: s } = t, c = w(null), l = e(null), u = e(null), d = S(() => l.value !== null), f = S(() => c.value?.snapshots.value ?? []), p = S(() => c.value?.isLoading.value ?? !1), m = S(() => c.value?.isRestoring.value ?? !1);
9
9
  function h() {
10
- r.state.template?.id && !c.value && (c.value = Z({
10
+ r.state.template?.id && !c.value && (c.value = fe({
11
11
  authManager: n,
12
12
  templateId: r.state.template.id,
13
13
  onRestore: g,
@@ -55,7 +55,7 @@ function Oe(t) {
55
55
  }
56
56
  //#endregion
57
57
  //#region src/cloud/composables/useCloudPanelState.ts
58
- function ke() {
58
+ function je() {
59
59
  let t = e(null), n = S({
60
60
  get: () => t.value === "ai-chat",
61
61
  set: (e) => t.value = e ? "ai-chat" : null
@@ -78,7 +78,7 @@ function ke() {
78
78
  function h(e) {
79
79
  l.value = !1, t.value = t.value === e ? null : e;
80
80
  }
81
- return A(u, () => {
81
+ return pe(u, () => {
82
82
  l.value = !1;
83
83
  }), {
84
84
  activePanel: t,
@@ -100,10 +100,10 @@ function ke() {
100
100
  }
101
101
  //#endregion
102
102
  //#region src/cloud/composables/useCollabUndoWarning.ts
103
- function Ae(t) {
103
+ function Me(t) {
104
104
  let { isCollaborationEnabled: n, getCollaboratorCount: r, canUndo: i } = t, a = e(!1), o = e(!1), { start: s } = Q(() => {
105
105
  o.value = !1;
106
- }, z, { immediate: !1 });
106
+ }, N, { immediate: !1 });
107
107
  function c() {
108
108
  a.value || !n.value || r() === 0 || !i.value || (a.value = !0, o.value = !0, s());
109
109
  }
@@ -114,7 +114,7 @@ function Ae(t) {
114
114
  }
115
115
  //#endregion
116
116
  //#region src/cloud/composables/useCloudFeatureFlags.ts
117
- function je(t) {
117
+ function Ne(t) {
118
118
  let { planConfigInstance: n, aiConfig: r, editor: i } = t, a = S(() => n.hasFeature("ai_generation") && r.hasAnyMenuFeature.value), o = S(() => n.hasFeature("test_email")), s = S(() => !!i.state.template?.id), c = S(() => n.hasFeature("white_label")), l = S(() => n.config.value?.limits.max_templates ?? null), u = S(() => n.config.value?.template_count ?? 0), d = e(!1), f = e("idle"), p = e(""), { start: m } = Q(() => {
119
119
  f.value = "idle";
120
120
  }, 3e3, { immediate: !1 });
@@ -133,7 +133,7 @@ function je(t) {
133
133
  }
134
134
  //#endregion
135
135
  //#region src/cloud/composables/useCloudMediaLibrary.ts
136
- function Me(e) {
136
+ function Pe(e) {
137
137
  let { onRequestMedia: t, mediaLibraryOpen: n, mediaLibraryAccept: r } = e, i = null;
138
138
  async function a() {
139
139
  if (t) {
@@ -168,30 +168,30 @@ function Me(e) {
168
168
  }
169
169
  //#endregion
170
170
  //#region src/cloud/composables/useCloudInitialization.ts
171
- function Ne(n) {
172
- let { config: r, translations: i, fontsManager: a, emit: s, getCommentsSidebar: c } = n, l = e(!0), u = e(!1), d = e(null), f = !1, p = { value: null }, m = null, h = null, g = new F({
171
+ function Fe(n) {
172
+ let { config: r, translations: i, fontsManager: a, emit: s, getCommentsSidebar: c } = n, l = e(!0), u = e(!1), d = e(null), f = !1, p = { value: null }, m = null, h = null, g = new M({
173
173
  ...r.auth,
174
174
  onError: r.onError
175
- }), _ = fe({
175
+ }), _ = he({
176
176
  authManager: g,
177
177
  onError: r.onError
178
- }), v = e(/* @__PURE__ */ new Map()), y = H({
178
+ }), v = e(/* @__PURE__ */ new Map()), y = te({
179
179
  authManager: g,
180
180
  defaultFontFamily: r.fonts?.defaultFont,
181
181
  templateDefaults: r.templateDefaults,
182
182
  onError: r.onError,
183
183
  lockedBlocks: v
184
- }), b = ae({
184
+ }), b = oe({
185
185
  authManager: g,
186
186
  onError: r.onError
187
187
  });
188
- r.mcp?.enabled && ne({
188
+ r.mcp?.enabled && ie({
189
189
  editor: y,
190
190
  channel: b.channel,
191
191
  onOperation: r.mcp.onOperation
192
192
  });
193
193
  let x = null;
194
- r.collaboration?.enabled && (x = G({
194
+ r.collaboration?.enabled && (x = W({
195
195
  authManager: g,
196
196
  editor: y,
197
197
  channel: b.channel,
@@ -202,8 +202,8 @@ function Ne(n) {
202
202
  onBlockUnlocked: r.collaboration.onBlockUnlocked
203
203
  }), t(() => x.lockedBlocks.value, (e) => {
204
204
  v.value = e;
205
- }, { immediate: !0 }), ie(y, x));
206
- let C = S(() => !!r.collaboration?.enabled && _.hasFeature("collaboration")), w = oe({
205
+ }, { immediate: !0 }), ae(y, x));
206
+ let C = S(() => !!r.collaboration?.enabled && _.hasFeature("collaboration")), w = le({
207
207
  editor: y,
208
208
  config: {
209
209
  uiTheme: r.uiTheme,
@@ -213,6 +213,7 @@ function Ne(n) {
213
213
  mergeTags: r.mergeTags,
214
214
  displayConditions: r.displayConditions,
215
215
  onRequestMedia: null,
216
+ accessibility: Ce(r),
216
217
  onSave: () => {
217
218
  p.value?.().catch((e) => {
218
219
  r.onError?.(e);
@@ -231,13 +232,13 @@ function Ne(n) {
231
232
  },
232
233
  themeExtraStyles: () => ({ "--tpl-drop-text": `"${i.canvas.dropHere}"` }),
233
234
  keyboardOptions: { onBeforeUndo: () => h?.showCollabUndoWarning() }
234
- }), T = Ae({
235
+ }), T = Me({
235
236
  isCollaborationEnabled: C,
236
237
  getCollaboratorCount: () => x?.collaborators.value.length ?? 0,
237
238
  canUndo: w.history.canUndo
238
239
  });
239
240
  h = T;
240
- let E = Oe({
241
+ let E = Ae({
241
242
  authManager: g,
242
243
  editor: y,
243
244
  history: w.history,
@@ -246,24 +247,24 @@ function Ne(n) {
246
247
  onError: r.onError
247
248
  });
248
249
  m = E;
249
- let D = ke(), O = ge(r.ai), k = je({
250
+ let D = je(), O = ve(r.ai), k = Ne({
250
251
  planConfigInstance: _,
251
252
  aiConfig: O,
252
253
  editor: y
253
- }), A = Me({
254
+ }), j = Pe({
254
255
  onRequestMedia: r.onRequestMedia,
255
256
  mediaLibraryOpen: D.mediaLibraryOpen,
256
257
  mediaLibraryAccept: D.mediaLibraryAccept
257
258
  });
258
- U({
259
+ ne({
259
260
  onBlockMove: y.moveBlock,
260
261
  onBlockAdd: y.addBlock
261
262
  });
262
- let N = re({
263
+ let N = J({
263
264
  authManager: g,
264
265
  getFontsConfig: () => r.fonts,
265
266
  canUseCustomFonts: () => _.hasFeature("custom_fonts")
266
- }), P = q({
267
+ }), I = X({
267
268
  authManager: g,
268
269
  getTemplateId: () => y.state.template?.id ?? null,
269
270
  save: () => y.save(),
@@ -271,7 +272,7 @@ function Ne(n) {
271
272
  onError: r.onError,
272
273
  isAuthReady: u,
273
274
  onBeforeTestEmail: r.onBeforeTestEmail
274
- }), I = _e({
275
+ }), L = ye({
275
276
  authManager: g,
276
277
  getTemplateId: () => y.state.template?.id ?? null,
277
278
  getSocketId: () => b.getSocketId(),
@@ -280,55 +281,55 @@ function Ne(n) {
280
281
  isAuthReady: u,
281
282
  hasCommentingFeature: () => r.commenting !== !1 && _.hasFeature("commenting")
282
283
  });
283
- me({
284
- comments: I,
284
+ ge({
285
+ comments: L,
285
286
  channel: b.channel
286
287
  });
287
- let R = ce({
288
+ let R = de({
288
289
  authManager: g,
289
290
  onError: r.onError
290
- }), z = e(!1), K = e(null), J = e(!1), Y = te({
291
+ }), z = e(!1), B = e(null), G = e(!1), K = re({
291
292
  authManager: g,
292
293
  getTemplateId: () => y.state.template?.id ?? null
293
294
  });
294
- function X(e) {
295
+ function q(e) {
295
296
  D.commentsOpen.value = !0, queueMicrotask(() => {
296
297
  c()?.filterByBlock(e);
297
298
  });
298
299
  }
299
- o(le, A.handleRequestMedia), o(ee, g), o(B, O), o(M, I), o(L, R), o(W, Y), o(V, {
300
+ o(H, j.handleRequestMedia), o(ee, g), o(P, O), o(F, L), o(V, R), o(U, K), o(A, {
300
301
  plan: _,
301
302
  ai: O,
302
303
  comments: {
303
- getBlockCount: (e) => I.commentCountByBlock.value.get(e) ?? 0,
304
- openForBlock: X
304
+ getBlockCount: (e) => L.commentCountByBlock.value.get(e) ?? 0,
305
+ openForBlock: q
305
306
  },
306
307
  savedModules: {
307
308
  openSaveDialog: (e) => {
308
- K.value = e ?? null, z.value = !0;
309
+ B.value = e ?? null, z.value = !0;
309
310
  },
310
311
  openBrowser: () => {
311
- J.value = !0;
312
+ G.value = !0;
312
313
  },
313
314
  moduleCount: S(() => R.modules.value.length)
314
315
  }
315
316
  });
316
- function Z(e) {
317
+ function Y(e) {
317
318
  _.hasFeature("theme_customization") && (w.themeOverrides.value = e);
318
319
  }
319
- function Q(e) {
320
+ function Z(e) {
320
321
  y.setUiTheme(e);
321
322
  }
322
- async function ue() {
323
+ async function se() {
323
324
  l.value = !0, d.value = null;
324
325
  try {
325
326
  if (await g.initialize(), f) return;
326
327
  u.value = !0;
327
- let e = await se({ authManager: g });
328
+ let e = await ue({ authManager: g });
328
329
  if (f) return;
329
330
  if (!e.api.ok) throw Error("Health check failed: API is not reachable");
330
331
  if (!e.auth.ok) throw Error(`Health check failed: authentication error${e.auth.error ? ` - ${e.auth.error}` : ""}`);
331
- if (e.websocket.ok || j.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), f) return;
332
+ if (e.websocket.ok || ce.warn("WebSocket health check failed:", e.websocket.error ?? "unknown error", "-- real-time features will be disabled."), await _.fetchConfig(), f) return;
332
333
  a.setCustomFontsEnabled(_.hasFeature("custom_fonts")), r.customBlocks?.length && _.hasFeature("custom_blocks") && w.registerCustomBlocks(r.customBlocks), r.theme && _.hasFeature("theme_customization") && (w.themeOverrides.value = r.theme), r.modules !== !1 && _.hasFeature("saved_modules") && R.loadModules(), s("ready");
333
334
  } catch (e) {
334
335
  if (f) return;
@@ -338,7 +339,7 @@ function Ne(n) {
338
339
  f || (l.value = !1);
339
340
  }
340
341
  }
341
- function de() {
342
+ function Q() {
342
343
  f = !0, a.cleanupFontLinks(), b.disconnect(), w.destroy(), r.onUnmount?.();
343
344
  }
344
345
  return {
@@ -355,31 +356,31 @@ function Ne(n) {
355
356
  core: w,
356
357
  aiConfig: O,
357
358
  featureFlags: k,
358
- mediaLib: A,
359
+ mediaLib: j,
359
360
  exporter: N,
360
- testEmail: P,
361
- commentsInstance: I,
361
+ testEmail: I,
362
+ commentsInstance: L,
362
363
  savedModulesHeadless: R,
363
- scoringInstance: Y,
364
+ scoringInstance: K,
364
365
  panelState: D,
365
366
  snapshotPreview: E,
366
367
  collabWarning: T,
367
368
  showSaveModuleDialog: z,
368
- showModuleBrowserModal: J,
369
- saveModulePreSelectedBlockId: K,
369
+ showModuleBrowserModal: G,
370
+ saveModulePreSelectedBlockId: B,
370
371
  onSaveHook: p,
371
- initialize: ue,
372
- destroy: de,
373
- setThemeOverrides: Z,
374
- setUiTheme: Q,
375
- openCommentsForBlock: X
372
+ initialize: se,
373
+ destroy: Q,
374
+ setThemeOverrides: Y,
375
+ setUiTheme: Z,
376
+ openCommentsForBlock: q
376
377
  };
377
378
  }
378
379
  //#endregion
379
380
  //#region src/utils/preRenderCustomBlocks.ts
380
- async function Pe(e, t) {
381
+ async function Ie(e, t) {
381
382
  let n = async (e) => {
382
- if (K(e)) {
383
+ if (R(e)) {
383
384
  let n = e;
384
385
  try {
385
386
  n.renderedHtml = await t.renderCustomBlock(n);
@@ -396,10 +397,10 @@ async function Pe(e, t) {
396
397
  }
397
398
  //#endregion
398
399
  //#region src/cloud/composables/useCloudLifecycle.ts
399
- function Fe(e) {
400
+ function Le(e) {
400
401
  let { config: t, editor: n, websocket: r, planConfigInstance: i, snapshotPreview: a, core: o, exporter: s, featureFlags: c, isDestroyed: l } = e;
401
402
  function u() {
402
- return N(i.config.value.websocket);
403
+ return j(i.config.value.websocket);
403
404
  }
404
405
  async function d(e) {
405
406
  let i = await n.create(e);
@@ -412,7 +413,7 @@ function Fe(e) {
412
413
  async function p() {
413
414
  c.isSaveExporting.value = !0, c.saveStatus.value = "idle";
414
415
  try {
415
- if (await Pe(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
416
+ if (await Ie(n.content.value, o.registry), l()) throw Error("Component unmounted during save");
416
417
  let e = await n.save();
417
418
  if (l()) throw Error("Component unmounted during save");
418
419
  a.initSnapshotHistory(), a.snapshotHistoryInstance.value?.loadSnapshots();
@@ -438,8 +439,77 @@ function Fe(e) {
438
439
  };
439
440
  }
440
441
  //#endregion
441
- //#region src/cloud/components/CloudHeader.vue?vue&type=script&setup=true&lang.ts
442
- var Ie = {
442
+ //#region src/cloud/composables/useCloudSaveGate.ts
443
+ function Re(t) {
444
+ let n = e(!1), r = null, i = S(() => t.planConfig.value?.accessibility?.blockOnError === !0), a = S(() => i.value ? t.issues.value.filter((e) => e.severity === "error") : []), o = S(() => a.value.length > 0);
445
+ async function s(e) {
446
+ return o.value ? (r = e, n.value = !0, !1) : (await e(), !0);
447
+ }
448
+ async function c() {
449
+ let e = r;
450
+ r = null, n.value = !1, e && await e();
451
+ }
452
+ function l() {
453
+ r = null, n.value = !1;
454
+ }
455
+ return {
456
+ shouldBlock: o,
457
+ blockingIssues: a,
458
+ modalOpen: n,
459
+ tryRunSave: s,
460
+ confirmAndSave: c,
461
+ cancel: l
462
+ };
463
+ }
464
+ //#endregion
465
+ //#region src/cloud/components/CloudSaveGateModal.vue?vue&type=script&setup=true&lang.ts
466
+ var ze = ["aria-label"], Be = { class: "tpl:flex tpl:max-h-[80vh] tpl:w-full tpl:max-w-md tpl:flex-col tpl:gap-4 tpl:rounded-lg tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:p-5 tpl:shadow-[var(--tpl-shadow-md)]" }, Ve = { class: "tpl:flex tpl:items-center tpl:gap-2" }, He = { class: "tpl:m-0 tpl:text-base tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Ue = { class: "tpl:m-0 tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, We = { class: "tpl:m-0 tpl:flex tpl:max-h-64 tpl:list-none tpl:flex-col tpl:gap-1.5 tpl:overflow-y-auto tpl:rounded-md tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:p-2" }, Ge = { class: "tpl:text-xs tpl:text-[var(--tpl-text)]" }, Ke = { class: "tpl:font-mono tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, qe = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, Je = /* @__PURE__ */ s({
467
+ __name: "CloudSaveGateModal",
468
+ props: {
469
+ open: { type: Boolean },
470
+ issues: {}
471
+ },
472
+ emits: ["cancel", "confirm"],
473
+ setup(e, { emit: t }) {
474
+ let i = t, { t: o } = k();
475
+ return (t, s) => (a(), _(x, {
476
+ "enter-active-class": "tpl:transition-opacity tpl:duration-150",
477
+ "leave-active-class": "tpl:transition-opacity tpl:duration-150",
478
+ "enter-from-class": "tpl:opacity-0",
479
+ "leave-to-class": "tpl:opacity-0"
480
+ }, {
481
+ default: r(() => [e.open ? (a(), u("div", {
482
+ key: 0,
483
+ role: "dialog",
484
+ "aria-modal": "true",
485
+ "aria-label": d(o).saveGate.title,
486
+ class: "tpl:fixed tpl:inset-0 tpl:z-50 tpl:flex tpl:items-center tpl:justify-center tpl:bg-black/40 tpl:p-6",
487
+ onClick: s[2] ||= T((e) => i("cancel"), ["self"])
488
+ }, [b("div", Be, [
489
+ b("header", Ve, [f(d(K), {
490
+ size: 18,
491
+ "stroke-width": 2,
492
+ class: "tpl:text-[var(--tpl-warning)]"
493
+ }), b("h2", He, y(d(o).saveGate.title), 1)]),
494
+ b("p", Ue, y(d(o).saveGate.body), 1),
495
+ b("ul", We, [(a(!0), u(h, null, n(e.issues, (e) => (a(), u("li", {
496
+ key: `${e.ruleId}-${e.blockId ?? "template"}`,
497
+ class: "tpl:flex tpl:flex-col tpl:gap-0.5 tpl:rounded tpl:px-2 tpl:py-1.5"
498
+ }, [b("span", Ge, y(e.message), 1), b("span", Ke, y(e.ruleId), 1)]))), 128))]),
499
+ b("footer", qe, [b("button", {
500
+ type: "button",
501
+ 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)]",
502
+ onClick: s[0] ||= (e) => i("cancel")
503
+ }, y(d(o).saveGate.cancel), 1), b("button", {
504
+ type: "button",
505
+ 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",
506
+ onClick: s[1] ||= (e) => i("confirm")
507
+ }, y(d(o).saveGate.confirm), 1)])
508
+ ])], 8, ze)) : g("", !0)]),
509
+ _: 1
510
+ }));
511
+ }
512
+ }), Ye = {
443
513
  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",
444
514
  style: {
445
515
  "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)",
@@ -448,24 +518,24 @@ var Ie = {
448
518
  "box-shadow": "var(--tpl-shadow-md)",
449
519
  "border-bottom": "1px solid var(--tpl-border)"
450
520
  }
451
- }, Le = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, Re = {
521
+ }, Xe = { class: "tpl-header-left tpl:flex tpl:min-w-[200px] tpl:items-center tpl:gap-3" }, Ze = {
452
522
  key: 0,
453
523
  class: "tpl:text-xs tpl:opacity-60 tpl:text-[var(--tpl-text-muted)]"
454
- }, ze = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, Be = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, Ve = ["data-tooltip"], He = {
524
+ }, Qe = { class: "tpl-header-center tpl:flex tpl:items-center tpl:justify-center tpl:gap-10" }, $e = { class: "tpl-header-right tpl:flex tpl:min-w-[200px] tpl:items-center tpl:justify-end tpl:gap-3" }, et = ["data-tooltip"], tt = {
455
525
  key: 1,
456
526
  "aria-live": "polite",
457
527
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success)]"
458
- }, Ue = {
528
+ }, nt = {
459
529
  key: 2,
460
530
  "aria-live": "polite",
461
531
  class: "tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
462
- }, We = ["aria-label", "aria-expanded"], Ge = {
532
+ }, rt = ["aria-label", "aria-expanded"], it = {
463
533
  key: 0,
464
534
  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)]"
465
- }, Ke = ["aria-expanded"], qe = {
535
+ }, at = ["aria-expanded"], ot = {
466
536
  key: 0,
467
537
  class: "tpl:absolute tpl:right-0 tpl:top-full tpl:z-50 tpl:mt-1 tpl:origin-top-right"
468
- }, Je = ["disabled"], Ye = ["disabled"], Xe = /* @__PURE__ */ s({
538
+ }, st = ["disabled"], ct = ["disabled"], lt = /* @__PURE__ */ s({
469
539
  __name: "CloudHeader",
470
540
  props: {
471
541
  editor: {},
@@ -483,22 +553,22 @@ var Ie = {
483
553
  },
484
554
  emits: ["save"],
485
555
  setup(e) {
486
- let t = D(() => import("./CollaboratorBar-CTFgLtUt.js")), n = D(() => import("./features-BnG-dhzy.js").then((e) => e.r)), i = D(() => import("./AiFeatureMenu-DSXAYiMk.js")), { t: o, format: s } = k();
487
- return (c, l) => (a(), u("header", Ie, [
488
- b("div", Le, [e.featureFlags.templateLimit.value === null ? g("", !0) : (a(), u("span", Re, y(d(s)(d(o).header.templatesUsed, {
556
+ let t = D(() => import("./CollaboratorBar-Bp9LwcWB.js")), n = D(() => import("./features-C256qERn.js").then((e) => e.r)), i = D(() => import("./AiFeatureMenu-D0kJ0FMv.js")), { t: o, format: s } = k();
557
+ return (c, l) => (a(), u("header", Ye, [
558
+ b("div", Xe, [e.featureFlags.templateLimit.value === null ? g("", !0) : (a(), u("span", Ze, y(d(s)(d(o).header.templatesUsed, {
489
559
  used: e.featureFlags.templateCount.value,
490
560
  max: e.featureFlags.templateLimit.value
491
561
  })), 1))]),
492
- b("div", ze, [
493
- f(Se, {
562
+ b("div", Qe, [
563
+ f(we, {
494
564
  viewport: e.editor.state.viewport,
495
565
  onChange: e.editor.setViewport
496
566
  }, null, 8, ["viewport", "onChange"]),
497
- f(Ce, {
567
+ f(Te, {
498
568
  "dark-mode": e.editor.state.darkMode,
499
569
  onChange: e.editor.setDarkMode
500
570
  }, null, 8, ["dark-mode", "onChange"]),
501
- f(Te, {
571
+ f(De, {
502
572
  "preview-mode": e.editor.state.previewMode,
503
573
  onChange: e.editor.setPreviewMode
504
574
  }, null, 8, ["preview-mode", "onChange"]),
@@ -522,19 +592,19 @@ var Ie = {
522
592
  "onNavigate"
523
593
  ])) : g("", !0)
524
594
  ]),
525
- b("div", Be, [
595
+ b("div", $e, [
526
596
  e.featureFlags.saveStatus.value === "error" ? (a(), u("div", {
527
597
  key: 0,
528
598
  "aria-live": "assertive",
529
599
  class: "tpl-tooltip tpl-status tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-danger)]",
530
600
  "data-tooltip": e.featureFlags.saveErrorMessage.value
531
- }, [f(d(he), {
601
+ }, [f(d(z), {
532
602
  size: 12,
533
603
  "stroke-width": 2.5
534
- }), O(" " + y(d(o).header.saveFailed), 1)], 8, Ve)) : e.featureFlags.saveStatus.value === "saved" ? (a(), u("div", He, [f(d(I), {
604
+ }), O(" " + y(d(o).header.saveFailed), 1)], 8, et)) : e.featureFlags.saveStatus.value === "saved" ? (a(), u("div", tt, [f(d(L), {
535
605
  size: 12,
536
606
  "stroke-width": 2.5
537
- }), O(" " + y(d(o).header.saved), 1)])) : e.editor.state.isDirty ? (a(), u("div", Ue, [l[4] ||= b("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), O(" " + y(d(o).header.unsaved), 1)])) : g("", !0),
607
+ }), O(" " + y(d(o).header.saved), 1)])) : e.editor.state.isDirty ? (a(), u("div", nt, [l[4] ||= b("span", { class: "tpl-pulse tpl:size-1.5 tpl:rounded-full tpl:bg-[var(--tpl-primary)]" }, null, -1), O(" " + y(d(o).header.unsaved), 1)])) : g("", !0),
538
608
  e.commentsInstance.isEnabled.value && e.featureFlags.hasTemplateSaved.value ? (a(), u("button", {
539
609
  key: 3,
540
610
  "aria-label": e.commentsInstance.unresolvedCount.value > 0 ? `${d(o).comments.button} (${e.commentsInstance.unresolvedCount.value})` : d(o).comments.button,
@@ -547,13 +617,13 @@ var Ie = {
547
617
  }),
548
618
  onClick: l[0] ||= (t) => e.panelState.commentsOpen.value = !e.panelState.commentsOpen.value
549
619
  }, [
550
- f(d(X), {
620
+ f(d(se), {
551
621
  size: 16,
552
622
  "stroke-width": 2
553
623
  }),
554
624
  O(" " + y(d(o).comments.button) + " ", 1),
555
- e.commentsInstance.unresolvedCount.value > 0 && !e.panelState.commentsOpen.value ? (a(), u("span", Ge, y(e.commentsInstance.unresolvedCount.value), 1)) : g("", !0)
556
- ], 14, We)) : g("", !0),
625
+ e.commentsInstance.unresolvedCount.value > 0 && !e.panelState.commentsOpen.value ? (a(), u("span", it, y(e.commentsInstance.unresolvedCount.value), 1)) : g("", !0)
626
+ ], 14, rt)) : g("", !0),
557
627
  e.featureFlags.canUseAiGeneration.value && e.featureFlags.hasTemplateSaved.value ? (a(), u("div", {
558
628
  key: 4,
559
629
  ref: (t) => e.panelState.aiMenuRef.value = t,
@@ -562,11 +632,11 @@ var Ie = {
562
632
  "aria-expanded": e.panelState.aiMenuOpen.value,
563
633
  class: C(["tpl-ai-btn tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:px-4 tpl:py-2 tpl:text-sm tpl:font-semibold tpl:whitespace-nowrap tpl:transition-all tpl:duration-200", e.panelState.aiButtonActive.value ? "tpl-ai-btn--active" : "tpl-ai-btn--idle"]),
564
634
  onClick: l[1] ||= T((...t) => e.panelState.toggleAiMenu && e.panelState.toggleAiMenu(...t), ["stop"])
565
- }, [f(d(ue), {
635
+ }, [f(d(q), {
566
636
  size: 16,
567
637
  "stroke-width": 2,
568
638
  class: "tpl-ai-btn-icon"
569
- }), O(" " + y(d(o).aiChat.button), 1)], 10, Ke), f(x, {
639
+ }), O(" " + y(d(o).aiChat.button), 1)], 10, at), f(x, {
570
640
  "enter-active-class": "tpl:transition-all tpl:duration-150 tpl:ease-out",
571
641
  "enter-from-class": "tpl:scale-95 tpl:opacity-0",
572
642
  "enter-to-class": "tpl:scale-100 tpl:opacity-100",
@@ -574,7 +644,7 @@ var Ie = {
574
644
  "leave-from-class": "tpl:scale-100 tpl:opacity-100",
575
645
  "leave-to-class": "tpl:scale-95 tpl:opacity-0"
576
646
  }, {
577
- default: r(() => [e.panelState.aiMenuOpen.value ? (a(), u("div", qe, [f(d(i), {
647
+ default: r(() => [e.panelState.aiMenuOpen.value ? (a(), u("div", ot, [f(d(i), {
578
648
  "active-feature": e.panelState.activeAiFeature.value,
579
649
  onSelect: e.panelState.handleAiFeatureSelect
580
650
  }, null, 8, ["active-feature", "onSelect"])])) : g("", !0)]),
@@ -590,16 +660,16 @@ var Ie = {
590
660
  },
591
661
  disabled: e.testEmail.isSending.value || !e.featureFlags.hasTemplateSaved.value,
592
662
  onClick: l[2] ||= (t) => e.panelState.testEmailModalOpen.value = !0
593
- }, [e.testEmail.isSending.value ? (a(), _(d(Y), {
663
+ }, [e.testEmail.isSending.value ? (a(), _(d(Z), {
594
664
  key: 1,
595
665
  class: "tpl-spinner",
596
666
  size: 16,
597
667
  "stroke-width": 2
598
- })) : (a(), _(d(pe), {
668
+ })) : (a(), _(d(Y), {
599
669
  key: 0,
600
670
  size: 16,
601
671
  "stroke-width": 2
602
- })), O(" " + y(d(o).testEmail.button), 1)], 10, Je)) : g("", !0),
672
+ })), O(" " + y(d(o).testEmail.button), 1)], 10, st)) : g("", !0),
603
673
  b("button", {
604
674
  class: C(d($)),
605
675
  style: {
@@ -609,20 +679,20 @@ var Ie = {
609
679
  },
610
680
  disabled: e.isSaveDisabled,
611
681
  onClick: l[3] ||= (e) => c.$emit("save")
612
- }, [e.isSaving ? (a(), _(d(Y), {
682
+ }, [e.isSaving ? (a(), _(d(Z), {
613
683
  key: 1,
614
684
  class: "tpl-spinner",
615
685
  size: 16,
616
686
  "stroke-width": 2
617
- })) : (a(), _(d(be), {
687
+ })) : (a(), _(d(xe), {
618
688
  key: 0,
619
689
  size: 16,
620
690
  "stroke-width": 2
621
- })), O(" " + y(e.isSaving ? d(o).header.saving : d(o).header.save), 1)], 10, Ye)
691
+ })), O(" " + y(e.isSaving ? d(o).header.saving : d(o).header.save), 1)], 10, ct)
622
692
  ])
623
693
  ]));
624
694
  }
625
- }), Ze = /* @__PURE__ */ s({
695
+ }), ut = /* @__PURE__ */ s({
626
696
  __name: "CloudPanels",
627
697
  props: {
628
698
  config: {},
@@ -645,7 +715,7 @@ var Ie = {
645
715
  "module-insert"
646
716
  ],
647
717
  setup(t, { expose: n, emit: r }) {
648
- let i = D(() => import("./features-BnG-dhzy.js").then((e) => e.s)), o = D(() => import("./features-BnG-dhzy.js").then((e) => e.o)), s = D(() => import("./features-BnG-dhzy.js").then((e) => e.a)), c = D(() => import("./features-BnG-dhzy.js").then((e) => e.n)), l = D(() => import("./features-BnG-dhzy.js").then((e) => e.t)), p = D(() => import("./SaveModuleDialog-B6kNizps.js")), m = D(() => import("./ModuleBrowserModal-B70ZM4KG.js")), v = D(async () => (await import("./src-Cw7KAyui.js")).MediaLibraryModal), y = r;
718
+ let i = D(() => import("./features-C256qERn.js").then((e) => e.s)), o = D(() => import("./features-C256qERn.js").then((e) => e.o)), s = D(() => import("./features-C256qERn.js").then((e) => e.a)), c = D(() => import("./features-C256qERn.js").then((e) => e.n)), l = D(() => import("./features-C256qERn.js").then((e) => e.t)), p = D(() => import("./SaveModuleDialog-Borv00Kh.js")), m = D(() => import("./ModuleBrowserModal-ClY6A8bi.js")), v = D(async () => (await import("./src-MOXq0pRK.js")).MediaLibraryModal), y = r;
649
719
  function b(e, t, n) {
650
720
  t.history.record(), n.setContent(e), t.conditionPreview.reset();
651
721
  }
@@ -719,23 +789,23 @@ var Ie = {
719
789
  ])
720
790
  ], 64));
721
791
  }
722
- }), Qe = {
792
+ }), dt = {
723
793
  key: 0,
724
794
  class: "tpl-loading tpl:absolute tpl:inset-0 tpl:z-overlay tpl:flex tpl:flex-col tpl:bg-[var(--tpl-bg)]"
725
- }, $e = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, et = { 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)]" }, tt = /* @__PURE__ */ s({
795
+ }, ft = { class: "tpl:flex tpl:flex-1 tpl:overflow-hidden" }, pt = { class: "tpl:flex tpl:w-12 tpl:shrink-0 tpl:flex-col tpl:items-center tpl:gap-4 tpl:py-5 tpl:border-r tpl:border-[var(--tpl-border)]" }, mt = /* @__PURE__ */ s({
726
796
  __name: "CloudLoadingOverlay",
727
797
  props: { visible: { type: Boolean } },
728
798
  setup(e) {
729
- return (t, r) => e.visible ? (a(), u("div", Qe, [r[1] ||= E("<div class=\"tpl:flex tpl:h-14 tpl:shrink-0 tpl:items-center tpl:justify-between tpl:px-4 tpl:border-b tpl:border-[var(--tpl-border)]\"><div class=\"tpl-shimmer tpl:h-5 tpl:w-28 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl:flex tpl:gap-3\"><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div></div></div>", 1), b("div", $e, [b("div", et, [(a(), u(h, null, n(5, (e) => b("div", {
799
+ return (t, r) => e.visible ? (a(), u("div", dt, [r[1] ||= E("<div class=\"tpl:flex tpl:h-14 tpl:shrink-0 tpl:items-center tpl:justify-between tpl:px-4 tpl:border-b tpl:border-[var(--tpl-border)]\"><div class=\"tpl-shimmer tpl:h-5 tpl:w-28 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl:flex tpl:gap-3\"><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl-shimmer tpl:h-8 tpl:w-20 tpl:rounded-[var(--tpl-radius-sm)]\"></div></div></div>", 1), b("div", ft, [b("div", pt, [(a(), u(h, null, n(5, (e) => b("div", {
730
800
  key: e,
731
801
  class: "tpl-shimmer tpl:size-7 tpl:rounded-[var(--tpl-radius-sm)]"
732
802
  })), 64))]), r[0] ||= E("<div class=\"tpl:flex tpl:flex-1 tpl:items-start tpl:justify-center tpl:overflow-auto tpl:p-8 tpl:bg-[var(--tpl-canvas-bg)]\"><div class=\"tpl:w-full tpl:max-w-[600px] tpl:rounded-[var(--tpl-radius)] tpl:p-6 tpl:bg-[var(--tpl-bg)] tpl:shadow-[var(--tpl-shadow-sm)]\"><div class=\"tpl:space-y-2 tpl:py-4\"><div class=\"tpl-shimmer tpl:h-3 tpl:w-3/4 tpl:rounded\"></div><div class=\"tpl-shimmer tpl:h-3 tpl:w-full tpl:rounded\"></div><div class=\"tpl-shimmer tpl:h-3 tpl:w-5/6 tpl:rounded\"></div></div><div class=\"tpl:py-4\"><div class=\"tpl-shimmer tpl:h-44 tpl:w-full tpl:rounded-[var(--tpl-radius-sm)]\"></div></div><div class=\"tpl:space-y-2 tpl:py-4\"><div class=\"tpl-shimmer tpl:h-3 tpl:w-full tpl:rounded\"></div><div class=\"tpl-shimmer tpl:h-3 tpl:w-2/3 tpl:rounded\"></div></div><div class=\"tpl:flex tpl:justify-center tpl:py-4\"><div class=\"tpl-shimmer tpl:h-10 tpl:w-36 tpl:rounded-[var(--tpl-radius-sm)]\"></div></div><div class=\"tpl:space-y-2 tpl:py-4\"><div class=\"tpl-shimmer tpl:mx-auto tpl:h-2.5 tpl:w-1/2 tpl:rounded\"></div><div class=\"tpl-shimmer tpl:mx-auto tpl:h-2.5 tpl:w-1/3 tpl:rounded\"></div></div></div></div><div class=\"tpl:flex tpl:w-[320px] tpl:shrink-0 tpl:flex-col tpl:gap-4 tpl:p-4 tpl:border-l tpl:border-[var(--tpl-border)]\"><div class=\"tpl-shimmer tpl:h-8 tpl:rounded-[var(--tpl-radius-sm)]\"></div><div class=\"tpl-shimmer tpl:h-32 tpl:rounded-[var(--tpl-radius)]\"></div><div class=\"tpl-shimmer tpl:h-32 tpl:rounded-[var(--tpl-radius)]\"></div></div>", 2)])])) : g("", !0);
733
803
  }
734
- }), nt = {
804
+ }), ht = {
735
805
  key: 0,
736
806
  role: "alert",
737
807
  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)]"
738
- }, rt = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, it = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:text-center" }, at = { class: "tpl:text-lg tpl:font-semibold tpl:text-[var(--tpl-text)]" }, ot = { class: "tpl:max-w-md tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, st = /* @__PURE__ */ s({
808
+ }, gt = { class: "tpl:flex tpl:size-16 tpl:items-center tpl:justify-center tpl:rounded-full tpl:bg-[var(--tpl-danger-light)]" }, _t = { class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:text-center" }, vt = { class: "tpl:text-lg tpl:font-semibold tpl:text-[var(--tpl-text)]" }, yt = { class: "tpl:max-w-md tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, bt = /* @__PURE__ */ s({
739
809
  __name: "CloudErrorOverlay",
740
810
  props: {
741
811
  error: {},
@@ -750,13 +820,13 @@ var Ie = {
750
820
  function o(e) {
751
821
  return "isNotFound" in e && !!e.isNotFound;
752
822
  }
753
- return (t, s) => e.visible && e.error ? (a(), u("div", nt, [
754
- b("div", rt, [f(d(he), {
823
+ return (t, s) => e.visible && e.error ? (a(), u("div", ht, [
824
+ b("div", gt, [f(d(z), {
755
825
  size: 32,
756
826
  "stroke-width": 1.5,
757
827
  class: "tpl:text-[var(--tpl-danger)]"
758
828
  })]),
759
- b("div", it, [b("h2", at, y(d(r).error.title), 1), b("p", ot, y(i(e.error)), 1)]),
829
+ b("div", _t, [b("h2", vt, y(d(r).error.title), 1), b("p", yt, y(i(e.error)), 1)]),
760
830
  o(e.error) ? g("", !0) : (a(), u("button", {
761
831
  key: 0,
762
832
  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)]",
@@ -764,20 +834,20 @@ var Ie = {
764
834
  }, y(d(r).error.retry), 1))
765
835
  ])) : g("", !0);
766
836
  }
767
- }), ct = {
837
+ }), xt = {
768
838
  key: 0,
769
839
  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)]"
770
- }, lt = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, ut = { class: "tpl:flex tpl:items-center tpl:gap-2" }, dt = /* @__PURE__ */ s({
840
+ }, St = { class: "tpl:flex tpl:items-center tpl:gap-2 tpl:text-sm tpl:text-[var(--tpl-text)]" }, Ct = { class: "tpl:flex tpl:items-center tpl:gap-2" }, wt = /* @__PURE__ */ s({
771
841
  __name: "SnapshotPreviewBanner",
772
842
  props: { visible: { type: Boolean } },
773
843
  emits: ["cancel", "confirm"],
774
844
  setup(e, { emit: t }) {
775
845
  let n = t, { t: r } = k();
776
- return (t, i) => e.visible ? (a(), u("div", ct, [b("div", lt, [f(d(P), {
846
+ return (t, i) => e.visible ? (a(), u("div", xt, [b("div", St, [f(d(_e), {
777
847
  size: 18,
778
848
  "stroke-width": 2,
779
849
  class: "tpl:text-[var(--tpl-primary)]"
780
- }), b("span", null, y(d(r).snapshotPreview.message), 1)]), b("div", ut, [b("button", {
850
+ }), b("span", null, y(d(r).snapshotPreview.message), 1)]), b("div", Ct, [b("button", {
781
851
  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)]",
782
852
  style: { "background-color": "transparent" },
783
853
  onClick: i[0] ||= (e) => n("cancel")
@@ -786,7 +856,7 @@ var Ie = {
786
856
  onClick: i[1] ||= (e) => n("confirm")
787
857
  }, y(d(r).snapshotPreview.restore), 1)])])) : g("", !0);
788
858
  }
789
- }), ft = {
859
+ }), Tt = {
790
860
  key: 0,
791
861
  role: "status",
792
862
  "aria-live": "polite",
@@ -796,14 +866,14 @@ var Ie = {
796
866
  color: "var(--tpl-text)",
797
867
  border: "1px solid var(--tpl-warning)"
798
868
  }
799
- }, pt = /* @__PURE__ */ s({
869
+ }, Et = /* @__PURE__ */ s({
800
870
  __name: "CollabUndoToast",
801
871
  props: { visible: { type: Boolean } },
802
872
  setup(e) {
803
- let { t } = R();
804
- return (n, r) => e.visible ? (a(), u("div", ft, y(d(t).history.collabWarning), 1)) : g("", !0);
873
+ let { t } = I();
874
+ return (n, r) => e.visible ? (a(), u("div", Tt, y(d(t).history.collabWarning), 1)) : g("", !0);
805
875
  }
806
- }), mt = ["data-tpl-theme"], ht = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, gt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, _t = ["aria-label"], vt = /* @__PURE__ */ de(/* @__PURE__ */ s({
876
+ }), Dt = ["data-tpl-theme"], Ot = { class: "tpl:sticky tpl:top-0 tpl:z-40 tpl:h-0" }, kt = { class: "tpl-main tpl:flex tpl:justify-center tpl:p-8" }, At = ["aria-label"], jt = /* @__PURE__ */ me(/* @__PURE__ */ s({
807
877
  __name: "CloudEditor",
808
878
  props: {
809
879
  config: {},
@@ -814,49 +884,55 @@ var Ie = {
814
884
  emits: ["ready"],
815
885
  setup(t, { expose: n, emit: s }) {
816
886
  let l = t;
817
- o(ve, l.cloudTranslations);
818
- let h = s, S = e(null), w = Ne({
887
+ o(B, l.cloudTranslations);
888
+ let h = s, S = e(null), w = Fe({
819
889
  config: l.config,
820
890
  translations: l.translations,
821
891
  fontsManager: l.fontsManager,
822
892
  emit: h,
823
893
  getCommentsSidebar: () => S.value ? { filterByBlock: S.value.filterCommentsByBlock } : null
824
- }), { isInitializing: T, isAuthReady: E, initError: D, planConfigInstance: k, websocket: A, collaboration: j, isCollaborationEnabled: M, editor: N, core: P, featureFlags: F, mediaLib: I, exporter: ee, testEmail: L, commentsInstance: R, savedModulesHeadless: z, panelState: B, snapshotPreview: V, collabWarning: H, showSaveModuleDialog: U, showModuleBrowserModal: W, saveModulePreSelectedBlockId: G, setThemeOverrides: te, setUiTheme: K } = w;
825
- async function ne(e) {
894
+ }), { isInitializing: T, isAuthReady: E, initError: D, planConfigInstance: k, websocket: A, collaboration: j, isCollaborationEnabled: M, editor: N, core: P, featureFlags: F, mediaLib: ee, exporter: I, testEmail: L, commentsInstance: te, savedModulesHeadless: R, panelState: z, snapshotPreview: V, collabWarning: ne, showSaveModuleDialog: H, showModuleBrowserModal: U, saveModulePreSelectedBlockId: W, setThemeOverrides: K, setUiTheme: re } = w;
895
+ async function ie(e) {
826
896
  try {
827
- await L.sendTestEmail(e), B.testEmailModalOpen.value = !1;
897
+ await L.sendTestEmail(e), z.testEmailModalOpen.value = !1;
828
898
  } catch {}
829
899
  }
830
- function re(e, t) {
900
+ function q(e, t) {
831
901
  for (let n = 0; n < e.content.length; n++) {
832
- let r = J(e.content[n]), i = t === void 0 ? void 0 : t + n;
902
+ let r = G(e.content[n]), i = t === void 0 ? void 0 : t + n;
833
903
  N.addBlock(r, void 0, void 0, i);
834
904
  }
835
- W.value = !1;
905
+ U.value = !1;
836
906
  }
837
- let q = Fe({
907
+ let J = Le({
838
908
  config: l.config,
839
909
  editor: N,
840
910
  websocket: A,
841
911
  planConfigInstance: k,
842
912
  snapshotPreview: V,
843
913
  core: P,
844
- exporter: ee,
914
+ exporter: I,
845
915
  featureFlags: F,
846
916
  isDestroyed: w.isDestroyed
917
+ }), Y = Re({
918
+ issues: P.accessibilityLint ? P.accessibilityLint.issues : e([]),
919
+ planConfig: k.config
847
920
  });
848
- return w.onSaveHook.value = q.saveTemplate, v(() => {
921
+ async function X() {
922
+ await Y.tryRunSave(() => J.saveTemplate().catch((e) => l.config.onError?.(e)));
923
+ }
924
+ return w.onSaveHook.value = X, v(() => {
849
925
  w.initialize();
850
926
  }), i(() => {
851
927
  w.destroy();
852
928
  }), n({
853
929
  getContent: () => N.content.value,
854
930
  setContent: (e) => N.setContent(e),
855
- setTheme: K,
856
- setThemeOverrides: te,
857
- create: q.createTemplate,
858
- load: q.loadTemplate,
859
- save: q.saveTemplate,
931
+ setTheme: re,
932
+ setThemeOverrides: K,
933
+ create: J.createTemplate,
934
+ load: J.loadTemplate,
935
+ save: J.saveTemplate,
860
936
  sendTestEmail: L.sendTestEmail
861
937
  }), (e, n) => (a(), u("div", {
862
938
  class: C(["tpl tpl:relative tpl:h-full tpl:overflow-hidden", { "tpl:dark": d(N).state.darkMode }]),
@@ -871,7 +947,7 @@ var Ie = {
871
947
  "leave-from-class": "tpl:opacity-100",
872
948
  "leave-to-class": "tpl:opacity-0"
873
949
  }, {
874
- default: r(() => [f(tt, { visible: d(T) || d(N).state.isLoading }, null, 8, ["visible"])]),
950
+ default: r(() => [f(mt, { visible: d(T) || d(N).state.isLoading }, null, 8, ["visible"])]),
875
951
  _: 1
876
952
  }),
877
953
  f(x, {
@@ -882,7 +958,7 @@ var Ie = {
882
958
  "leave-from-class": "tpl:opacity-100",
883
959
  "leave-to-class": "tpl:opacity-0"
884
960
  }, {
885
- default: r(() => [f(st, {
961
+ default: r(() => [f(bt, {
886
962
  error: d(D),
887
963
  visible: !!d(D) && !d(T),
888
964
  onRetry: d(w).initialize
@@ -893,20 +969,20 @@ var Ie = {
893
969
  ])]),
894
970
  _: 1
895
971
  }),
896
- f(Xe, {
972
+ f(lt, {
897
973
  editor: d(N),
898
974
  core: d(P),
899
975
  "feature-flags": d(F),
900
- "panel-state": d(B),
976
+ "panel-state": d(z),
901
977
  "snapshot-preview": d(V),
902
- "comments-instance": d(R),
978
+ "comments-instance": d(te),
903
979
  "test-email": d(L),
904
980
  websocket: d(A),
905
981
  collaboration: d(j),
906
982
  "is-collaboration-enabled": d(M),
907
983
  "is-saving": d(N).state.isSaving || d(F).isSaveExporting.value,
908
984
  "is-save-disabled": d(N).state.isSaving || d(F).isSaveExporting.value || !d(N).state.isDirty,
909
- onSave: n[0] ||= (e) => d(q).saveTemplate().catch((e) => l.config.onError?.(e))
985
+ onSave: X
910
986
  }, null, 8, [
911
987
  "editor",
912
988
  "core",
@@ -921,7 +997,18 @@ var Ie = {
921
997
  "is-saving",
922
998
  "is-save-disabled"
923
999
  ]),
924
- f(dt, {
1000
+ f(Je, {
1001
+ open: d(Y).modalOpen.value,
1002
+ issues: d(Y).blockingIssues.value,
1003
+ onCancel: d(Y).cancel,
1004
+ onConfirm: d(Y).confirmAndSave
1005
+ }, null, 8, [
1006
+ "open",
1007
+ "issues",
1008
+ "onCancel",
1009
+ "onConfirm"
1010
+ ]),
1011
+ f(wt, {
925
1012
  visible: d(V).isPreviewingSnapshot.value,
926
1013
  onCancel: d(V).cancelPreview,
927
1014
  onConfirm: d(V).confirmRestoreSnapshot
@@ -938,17 +1025,17 @@ var Ie = {
938
1025
  "leave-from-class": "tpl:translate-y-0 tpl:opacity-100",
939
1026
  "leave-to-class": "tpl:translate-y-[-8px] tpl:opacity-0"
940
1027
  }, {
941
- default: r(() => [f(pt, { visible: d(H).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
1028
+ default: r(() => [f(Et, { visible: d(ne).collabUndoWarningVisible.value }, null, 8, ["visible"])]),
942
1029
  _: 1
943
1030
  }),
944
- c(f(we, null, null, 512), [[p, !d(N).state.previewMode]]),
1031
+ c(f(Ee, null, null, 512), [[p, !d(N).state.previewMode]]),
945
1032
  b("div", {
946
- class: C(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [d(N).state.previewMode ? "tpl:left-0 tpl:right-0" : d(B).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", d(V).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
1033
+ class: C(["tpl-body tpl:absolute tpl:bottom-0 tpl:overflow-auto", [d(N).state.previewMode ? "tpl:left-0 tpl:right-0" : d(z).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]", d(V).isPreviewingSnapshot.value ? "tpl:top-[104px]" : "tpl:top-14"]]),
947
1034
  style: {
948
1035
  transition: "all 300ms cubic-bezier(0.34, 1.56, 0.64, 1)",
949
1036
  "background-color": "var(--tpl-canvas-bg)"
950
1037
  }
951
- }, [b("div", ht, [f(x, { name: "tpl-restore-btn" }, {
1038
+ }, [b("div", Ot, [f(x, { name: "tpl-restore-btn" }, {
952
1039
  default: r(() => [d(P).conditionPreview.hasHiddenBlocks.value ? (a(), u("button", {
953
1040
  key: 0,
954
1041
  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",
@@ -958,13 +1045,13 @@ var Ie = {
958
1045
  "border-color": "var(--tpl-warning)",
959
1046
  "backdrop-filter": "blur(8px)"
960
1047
  },
961
- onClick: n[1] ||= (e) => d(P).conditionPreview.reset()
962
- }, [f(d(ye), {
1048
+ onClick: n[0] ||= (e) => d(P).conditionPreview.reset()
1049
+ }, [f(d(be), {
963
1050
  size: 13,
964
1051
  "stroke-width": 2
965
1052
  }), O(" " + y(d(P).t.blockSettings.restoreHiddenBlocks), 1)])) : g("", !0)]),
966
1053
  _: 1
967
- })]), b("main", gt, [f(Ee, {
1054
+ })]), b("main", kt, [f(Oe, {
968
1055
  viewport: d(N).state.viewport,
969
1056
  content: d(N).content.value,
970
1057
  "selected-block-id": d(N).state.selectedBlockId,
@@ -972,8 +1059,8 @@ var Ie = {
972
1059
  "preview-mode": d(N).state.previewMode,
973
1060
  "locked-blocks": d(j)?.lockedBlocks.value ?? void 0,
974
1061
  onSelectBlock: d(N).selectBlock,
975
- onOpenAiChat: n[2] ||= (e) => d(B).aiChatOpen.value = !0,
976
- onOpenDesignReference: n[3] ||= (e) => d(B).designReferenceOpen.value = !0
1062
+ onOpenAiChat: n[1] ||= (e) => d(z).aiChatOpen.value = !0,
1063
+ onOpenDesignReference: n[2] ||= (e) => d(z).designReferenceOpen.value = !0
977
1064
  }, null, 8, [
978
1065
  "viewport",
979
1066
  "content",
@@ -983,9 +1070,9 @@ var Ie = {
983
1070
  "locked-blocks",
984
1071
  "onSelectBlock"
985
1072
  ])])], 2),
986
- t.config.branding !== !1 && !d(F).isWhiteLabeled.value ? (a(), _(De, {
1073
+ t.config.branding !== !1 && !d(F).isWhiteLabeled.value ? (a(), _(ke, {
987
1074
  key: 0,
988
- "position-class": [d(N).state.previewMode ? "tpl:left-0 tpl:right-0" : d(B).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
1075
+ "position-class": [d(N).state.previewMode ? "tpl:left-0 tpl:right-0" : d(z).rightPanelOpen.value ? "tpl:left-12 tpl:right-[680px]" : "tpl:left-12 tpl:right-[320px]"]
989
1076
  }, null, 8, ["position-class"])) : g("", !0),
990
1077
  b("div", {
991
1078
  class: "tpl-sr-only",
@@ -993,14 +1080,14 @@ var Ie = {
993
1080
  "aria-live": "polite",
994
1081
  "aria-atomic": "true",
995
1082
  "aria-label": d(P).t.landmarks.reorderAnnouncements
996
- }, y(d(P).keyboardReorder.announcement.value), 9, _t),
997
- c(f(xe, {
1083
+ }, y(d(P).keyboardReorder.announcement.value), 9, At),
1084
+ c(f(Se, {
998
1085
  "selected-block": d(N).selectedBlock.value,
999
1086
  settings: d(N).content.value.settings,
1000
- "shifted-left": d(B).rightPanelOpen.value,
1001
- onUpdateBlock: n[4] ||= (e) => d(N).updateBlock(d(N).selectedBlock.value.id, e),
1002
- onDeleteBlock: n[5] ||= (e) => d(P).blockActions.deleteBlock(d(N).selectedBlock.value.id),
1003
- onDuplicateBlock: n[6] ||= (e) => d(P).blockActions.duplicateBlock(d(N).selectedBlock.value),
1087
+ "shifted-left": d(z).rightPanelOpen.value,
1088
+ onUpdateBlock: n[3] ||= (e) => d(N).updateBlock(d(N).selectedBlock.value.id, e),
1089
+ onDeleteBlock: n[4] ||= (e) => d(P).blockActions.deleteBlock(d(N).selectedBlock.value.id),
1090
+ onDuplicateBlock: n[5] ||= (e) => d(P).blockActions.duplicateBlock(d(N).selectedBlock.value),
1004
1091
  onUpdateSettings: d(N).updateSettings
1005
1092
  }, null, 8, [
1006
1093
  "selected-block",
@@ -1008,26 +1095,26 @@ var Ie = {
1008
1095
  "shifted-left",
1009
1096
  "onUpdateSettings"
1010
1097
  ]), [[p, !d(N).state.previewMode]]),
1011
- !d(T) && d(E) ? (a(), _(Ze, {
1098
+ !d(T) && d(E) ? (a(), _(ut, {
1012
1099
  key: 1,
1013
1100
  ref_key: "cloudPanelsRef",
1014
1101
  ref: S,
1015
1102
  config: l.config,
1016
1103
  editor: d(N),
1017
1104
  core: d(P),
1018
- "panel-state": d(B),
1105
+ "panel-state": d(z),
1019
1106
  "plan-config-instance": d(k),
1020
1107
  "test-email": d(L),
1021
- "media-lib": d(I),
1022
- "saved-modules-headless": d(z),
1023
- "show-save-module-dialog": d(U),
1024
- "save-module-pre-selected-block-id": d(G),
1025
- "show-module-browser-modal": d(W),
1026
- "onUpdate:showSaveModuleDialog": n[7] ||= (e) => U.value = e,
1027
- "onUpdate:saveModulePreSelectedBlockId": n[8] ||= (e) => G.value = e,
1028
- "onUpdate:showModuleBrowserModal": n[9] ||= (e) => W.value = e,
1029
- onSendTestEmail: ne,
1030
- onModuleInsert: re
1108
+ "media-lib": d(ee),
1109
+ "saved-modules-headless": d(R),
1110
+ "show-save-module-dialog": d(H),
1111
+ "save-module-pre-selected-block-id": d(W),
1112
+ "show-module-browser-modal": d(U),
1113
+ "onUpdate:showSaveModuleDialog": n[6] ||= (e) => H.value = e,
1114
+ "onUpdate:saveModulePreSelectedBlockId": n[7] ||= (e) => W.value = e,
1115
+ "onUpdate:showModuleBrowserModal": n[8] ||= (e) => U.value = e,
1116
+ onSendTestEmail: ie,
1117
+ onModuleInsert: q
1031
1118
  }, null, 8, [
1032
1119
  "config",
1033
1120
  "editor",
@@ -1041,10 +1128,10 @@ var Ie = {
1041
1128
  "save-module-pre-selected-block-id",
1042
1129
  "show-module-browser-modal"
1043
1130
  ])) : g("", !0)
1044
- ], 14, mt));
1131
+ ], 14, Dt));
1045
1132
  }
1046
- }), [["__scopeId", "data-v-4a2ee70b"]]);
1133
+ }), [["__scopeId", "data-v-b332971f"]]);
1047
1134
  //#endregion
1048
- export { vt as default };
1135
+ export { jt as default };
1049
1136
 
1050
- //# sourceMappingURL=CloudEditor-CRYF-bR3.js.map
1137
+ //# sourceMappingURL=CloudEditor-ulKjC0Ag.js.map