@templatical/editor 0.10.3 → 0.11.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 (134) hide show
  1. package/dist/{AiChatSidebar-BMwpZx-6.js → AiChatSidebar-Cm5RM5Qh.js} +13 -13
  2. package/dist/{AiFeatureMenu-BqLi9Kh7.js → AiFeatureMenu-D4D2Sqfk.js} +7 -7
  3. package/dist/{BlockIssueBadge-3kNs6WoD.js → BlockIssueBadge-BF4sdsr4.js} +5 -5
  4. package/dist/{CloudEditor-DbyKnqbS.js → CloudEditor-CLwyq3kf.js} +21 -20
  5. package/dist/{CollaboratorBar-BXLwod21.js → CollaboratorBar-DjX-o5Pi.js} +4 -4
  6. package/dist/{CommentsSidebar-jFZj_CTo.js → CommentsSidebar-BQJzyCc6.js} +12 -12
  7. package/dist/{CountdownBlock-S-SCyVye.js → CountdownBlock-D_AsF4F3.js} +3 -3
  8. package/dist/{CountdownToolbar-Ckdo-3P-.js → CountdownToolbar-BGTkFky9.js} +3 -3
  9. package/dist/{DesignReferenceSidebar-B9QNPZNV.js → DesignReferenceSidebar-O3epZMXD.js} +9 -9
  10. package/dist/{IssuesPanel-_E_fbSM8.js → IssuesPanel-CPBbR8yp.js} +8 -8
  11. package/dist/{LoadingTrack-BZ5KJyZ_.js → LoadingTrack-e67FA0NP.js} +1 -1
  12. package/dist/{ModuleBrowserModal-Dy3fU2UD.js → ModuleBrowserModal-CVS4Sf7H.js} +10 -10
  13. package/dist/{ModulePreviewCanvas-Cutg3m7U.js → ModulePreviewCanvas-C10YXsL_.js} +3 -3
  14. package/dist/{NumberWithSuffix-BHDXHMpo.js → NumberWithSuffix-eI9pPDWT.js} +3 -3
  15. package/dist/{ParagraphEditor-DkLmn3Nf.js → ParagraphEditor-BKoqcKIt.js} +24 -24
  16. package/dist/{RichTextEditorContent-COijbaWp.js → RichTextEditorContent-Dvn4woIt.js} +7 -7
  17. package/dist/{SaveModuleDialog-C6cmHTRI.js → SaveModuleDialog-BMuIjxVn.js} +7 -7
  18. package/dist/{SnapshotHistory-DcLZlAhz.js → SnapshotHistory-DZ5_W7e4.js} +9 -9
  19. package/dist/{TemplateScoringPanel-Dhf_Qgr7.js → TemplateScoringPanel-Bt5Rsgen.js} +14 -14
  20. package/dist/{TestEmailModal-iRqNzKLT.js → TestEmailModal-EjpH-F-W.js} +5 -5
  21. package/dist/{TitleEditor-B-Adnssr.js → TitleEditor-Rv1deuV7.js} +13 -13
  22. package/dist/{TplModal-BlqH7CdL.js → TplModal-DSmCQIm4.js} +4 -4
  23. package/dist/{blockTypeIcons-upTll6yr.js → blockTypeIcons-OhEkQhYj.js} +2 -2
  24. package/dist/bundle-stats.json +6 -6
  25. package/dist/cdn/chunks/{AiFeatureMenu-DwZWx_da.js → AiFeatureMenu-Dm9CL3u0.js} +5 -5
  26. package/dist/cdn/chunks/{AiFeatureMenu-DwZWx_da.js.map → AiFeatureMenu-Dm9CL3u0.js.map} +1 -1
  27. package/dist/cdn/chunks/{BlockIssueBadge-ClwC6oSs.js → BlockIssueBadge-DjnFAeWq.js} +5 -5
  28. package/dist/cdn/chunks/{BlockIssueBadge-ClwC6oSs.js.map → BlockIssueBadge-DjnFAeWq.js.map} +1 -1
  29. package/dist/cdn/chunks/{CloudEditor-BCfQOcnm.js → CloudEditor-XSmLmdgp.js} +158 -157
  30. package/dist/cdn/chunks/CloudEditor-XSmLmdgp.js.map +1 -0
  31. package/dist/cdn/chunks/{CollaboratorBar-yz1eW4cW.js → CollaboratorBar-BfoGJhns.js} +4 -4
  32. package/dist/cdn/chunks/{CollaboratorBar-yz1eW4cW.js.map → CollaboratorBar-BfoGJhns.js.map} +1 -1
  33. package/dist/cdn/chunks/{CountdownBlock-CXQnTPVs.js → CountdownBlock-GRio55a1.js} +3 -3
  34. package/dist/cdn/chunks/{CountdownBlock-CXQnTPVs.js.map → CountdownBlock-GRio55a1.js.map} +1 -1
  35. package/dist/cdn/chunks/{CountdownToolbar-TQGPjSz_.js → CountdownToolbar-Cd1oEopw.js} +4 -4
  36. package/dist/cdn/chunks/{CountdownToolbar-TQGPjSz_.js.map → CountdownToolbar-Cd1oEopw.js.map} +1 -1
  37. package/dist/cdn/chunks/{IssuesPanel-CTCK-R67.js → IssuesPanel-C-BiFQDQ.js} +6 -6
  38. package/dist/cdn/chunks/{IssuesPanel-CTCK-R67.js.map → IssuesPanel-C-BiFQDQ.js.map} +1 -1
  39. package/dist/cdn/chunks/{ModuleBrowserModal-CFpBtFiA.js → ModuleBrowserModal-Dj7gRT4Q.js} +9 -9
  40. package/dist/cdn/chunks/{ModuleBrowserModal-CFpBtFiA.js.map → ModuleBrowserModal-Dj7gRT4Q.js.map} +1 -1
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-DhAubE2o.js → ModulePreviewCanvas-hwdveKb0.js} +3 -3
  42. package/dist/cdn/chunks/{ModulePreviewCanvas-DhAubE2o.js.map → ModulePreviewCanvas-hwdveKb0.js.map} +1 -1
  43. package/dist/cdn/chunks/{NumberWithSuffix-DUwFMc_M.js → NumberWithSuffix-bE_6cfiA.js} +3 -3
  44. package/dist/cdn/chunks/{NumberWithSuffix-DUwFMc_M.js.map → NumberWithSuffix-bE_6cfiA.js.map} +1 -1
  45. package/dist/cdn/chunks/{ParagraphEditor-B3az9xuj.js → ParagraphEditor-y1kGJRBX.js} +49 -49
  46. package/dist/cdn/chunks/{ParagraphEditor-B3az9xuj.js.map → ParagraphEditor-y1kGJRBX.js.map} +1 -1
  47. package/dist/cdn/chunks/{RichTextEditorContent-DtcHHUSO.js → RichTextEditorContent-DPy9D4hc.js} +4 -4
  48. package/dist/cdn/chunks/{RichTextEditorContent-DtcHHUSO.js.map → RichTextEditorContent-DPy9D4hc.js.map} +1 -1
  49. package/dist/cdn/chunks/{SaveModuleDialog-Da8g2aeD.js → SaveModuleDialog-CPu5e2VG.js} +5 -5
  50. package/dist/cdn/chunks/{SaveModuleDialog-Da8g2aeD.js.map → SaveModuleDialog-CPu5e2VG.js.map} +1 -1
  51. package/dist/cdn/chunks/{TitleEditor-jxOFe6Q6.js → TitleEditor-CMzzOPye.js} +10 -10
  52. package/dist/cdn/chunks/{TitleEditor-jxOFe6Q6.js.map → TitleEditor-CMzzOPye.js.map} +1 -1
  53. package/dist/cdn/chunks/{blockTypeIcons-Cxjz4oHg.js → blockTypeIcons-BC5qpvuV.js} +3 -3
  54. package/dist/cdn/chunks/{blockTypeIcons-Cxjz4oHg.js.map → blockTypeIcons-BC5qpvuV.js.map} +1 -1
  55. package/dist/cdn/chunks/{draggable-BTGr7_-X.js → draggable-iAb7QVJo.js} +30 -23
  56. package/dist/cdn/chunks/draggable-iAb7QVJo.js.map +1 -0
  57. package/dist/cdn/chunks/{extensions-2tEgrD-f.js → extensions-DH7ESsaz.js} +23 -23
  58. package/dist/cdn/chunks/{extensions-2tEgrD-f.js.map → extensions-DH7ESsaz.js.map} +1 -1
  59. package/dist/cdn/chunks/{features-C3H2u-FV.js → features-DmUOSthI.js} +654 -683
  60. package/dist/cdn/chunks/features-DmUOSthI.js.map +1 -0
  61. package/dist/cdn/chunks/{icons-DClusKFv.js → icons-DguD4x_X.js} +2 -2
  62. package/dist/cdn/chunks/{icons-DClusKFv.js.map → icons-DguD4x_X.js.map} +1 -1
  63. package/dist/cdn/chunks/{media-library-8bD3x0mc.js → media-library-ClQUPxRM.js} +73 -73
  64. package/dist/cdn/chunks/{media-library-8bD3x0mc.js.map → media-library-ClQUPxRM.js.map} +1 -1
  65. package/dist/cdn/chunks/{quality-Dqwx7TdN.js → quality-CIw_7cXv.js} +479 -479
  66. package/dist/cdn/chunks/{quality-Dqwx7TdN.js.map → quality-CIw_7cXv.js.map} +1 -1
  67. package/dist/cdn/chunks/{renderer-DwmyVTa2.js → renderer-Bx8I7_Rb.js} +19 -19
  68. package/dist/cdn/chunks/{renderer-DwmyVTa2.js.map → renderer-Bx8I7_Rb.js.map} +1 -1
  69. package/dist/cdn/chunks/{src-C2v-Zix_.js → src-C-GlM149.js} +5 -5
  70. package/dist/cdn/chunks/{src-C2v-Zix_.js.map → src-C-GlM149.js.map} +1 -1
  71. package/dist/cdn/chunks/{styles-CwetU6QM.js → styles-CfqCvq0Z.js} +667 -636
  72. package/dist/cdn/chunks/styles-CfqCvq0Z.js.map +1 -0
  73. package/dist/cdn/chunks/{tiptap-P5abGB13.js → tiptap-BAwu9VcJ.js} +4913 -3752
  74. package/dist/cdn/chunks/tiptap-BAwu9VcJ.js.map +1 -0
  75. package/dist/cdn/editor.css +1 -1
  76. package/dist/cdn/editor.js +12 -11
  77. package/dist/cdn/editor.js.map +1 -1
  78. package/dist/{check-KooI2jyS.js → check-BsNM6BDs.js} +1 -1
  79. package/dist/{chevron-down-mnlFgueW.js → chevron-down-fcsZ5DU7.js} +1 -1
  80. package/dist/{circle-alert-D89_hB8j.js → circle-alert-BZTbwc-B.js} +1 -1
  81. package/dist/{clock-BaadyUrg.js → clock-B7iQRubC.js} +1 -1
  82. package/dist/{cloud-D-FScaHx.js → cloud-Dom4EH5Z.js} +1 -1
  83. package/dist/{createLucideIcon-D-6fpD2L.js → createLucideIcon-C_fetdGM.js} +3 -3
  84. package/dist/{dist-DaajG7Fo.js → dist-B4NkMBYc.js} +2 -2
  85. package/dist/{dist-b52vYHb5.js → dist-BLcYl_de.js} +2 -2
  86. package/dist/{dist-XA2i70J5.js → dist-BOHAk4zI.js} +2 -2
  87. package/dist/dist-BsB4nPJD.js +5 -0
  88. package/dist/{dist-Drp5bNAu.js → dist-ByBVNmRN.js} +2 -2
  89. package/dist/dist-CD3wbUoR.js +5 -0
  90. package/dist/{dist-CjULgTep.js → dist-Cwl7XXr4.js} +806 -601
  91. package/dist/{dist-zInT3Lf6.js → dist-Dem8ODLh.js} +2783 -2737
  92. package/dist/{dist-C1WcikEF.js → dist-Dhs3W2WW.js} +2 -2
  93. package/dist/{dist-sqf7pq5q.js → dist-XdF11ZkX.js} +2 -2
  94. package/dist/{dist-Dnqx5UF3.js → dist-c2sj5PQ5.js} +3 -3
  95. package/dist/{dist-cl33Ip6W.js → dist-cT52Hh9L.js} +3 -3
  96. package/dist/{dist-BttO3Zdx.js → dist-eVlXvuKI.js} +3 -3
  97. package/dist/extensions-B2lSGCA8.js +1720 -0
  98. package/dist/{image-up-DjwfAom6.js → image-up-1xrPPJYH.js} +1 -1
  99. package/dist/index.d.ts +29 -0
  100. package/dist/{info-Db3HlTr8.js → info-ByAFxArD.js} +1 -1
  101. package/dist/keys-DsRdOmg3.js +10 -0
  102. package/dist/{list-checks-BlAB0X8a.js → list-checks-CKUP4UZU.js} +1 -1
  103. package/dist/{loader-circle-EVqyIxjU.js → loader-circle-BuxX338d.js} +1 -1
  104. package/dist/{message-circle-BuI5pBVG.js → message-circle-nLwqegRi.js} +1 -1
  105. package/dist/{refresh-cw-C2vM_6zQ.js → refresh-cw-DAkD6iDI.js} +1 -1
  106. package/dist/{scan-line-AUIh_SHI.js → scan-line-DEELRJJ5.js} +1 -1
  107. package/dist/{send-nrbwF7xg.js → send-DCMgrNT4.js} +1 -1
  108. package/dist/{shield-check-B55Ozmva.js → shield-check-BFtVr_ov.js} +1 -1
  109. package/dist/{sparkles-oh1NUSFq.js → sparkles-CeYIQ5RJ.js} +1 -1
  110. package/dist/style.css +1 -1
  111. package/dist/{styles-DMh_bHK0.js → styles-D_ztiOsh.js} +770 -739
  112. package/dist/templatical-editor.js +7 -6
  113. package/dist/{text-align-start-B2MqzZwU.js → text-align-start-BsmIoqLS.js} +1 -1
  114. package/dist/{trash-2-DH8RBwAx.js → trash-2-C2S4-CIH.js} +1 -1
  115. package/dist/{triangle-alert-BQHjCt3B.js → triangle-alert-DMdedF6W.js} +1 -1
  116. package/dist/{useAliveFlag-B_b9ubwD.js → useAliveFlag-DlVvpZxc.js} +1 -1
  117. package/dist/{useCloudI18n-BHCrmQgj.js → useCloudI18n-BEuiZdzs.js} +2 -2
  118. package/dist/{useEditorCore-wBmdLj66.js → useEditorCore-tZGAVvNz.js} +655 -684
  119. package/dist/{useI18n-Bb9-ha9X.js → useI18n-DNspT6uw.js} +2 -2
  120. package/dist/{useMergeTag-HykzEtBn.js → useMergeTag-abutjUud.js} +2 -2
  121. package/dist/usePopoverRoot-DG3mlvd1.js +8 -0
  122. package/dist/{vue.runtime.esm-bundler-MzYCkFSH.js → vue.runtime.esm-bundler-mPytWZFh.js} +32 -25
  123. package/dist/{x-DgCCENgP.js → x-_9jw816B.js} +1 -1
  124. package/package.json +25 -25
  125. package/dist/cdn/chunks/CloudEditor-BCfQOcnm.js.map +0 -1
  126. package/dist/cdn/chunks/draggable-BTGr7_-X.js.map +0 -1
  127. package/dist/cdn/chunks/features-C3H2u-FV.js.map +0 -1
  128. package/dist/cdn/chunks/styles-CwetU6QM.js.map +0 -1
  129. package/dist/cdn/chunks/tiptap-P5abGB13.js.map +0 -1
  130. package/dist/dist-Df4eV6Zi.js +0 -5
  131. package/dist/dist-WJ1fVd5b.js +0 -5
  132. package/dist/extensions-DA-w1gVg.js +0 -806
  133. package/dist/keys-BjmL5YCT.js +0 -10
  134. package/dist/usePopoverRoot-BZDkRRry.js +0 -8
@@ -1,5 +1,5 @@
1
1
  import { n as e, r as t } from "./rolldown-runtime-Dqa2HsxW.js";
2
- import { $ as n, A as r, B as i, C as a, F as o, G as s, H as c, J as l, K as u, L as d, M as f, N as p, O as m, P as h, Q as g, S as _, T as v, U as y, V as b, X as x, Y as S, Z as C, a as w, at as ee, b as T, c as E, ct as D, d as te, et as ne, f as O, g as k, h as A, it as j, k as re, l as M, m as N, n as ie, nt as P, o as ae, ot as F, p as I, rt as oe, s as se, st as L, t as ce, u as R, v as z, w as le, x as B, y as V, z as H } from "./draggable-BTGr7_-X.js";
2
+ import { $ as n, A as r, B as i, C as a, F as o, G as s, H as c, J as l, K as u, L as d, M as f, N as p, O as m, P as h, Q as g, S as _, T as v, U as y, V as b, X as x, Y as S, Z as C, a as w, at as ee, b as T, c as E, ct as D, d as te, et as ne, f as O, g as k, h as A, it as j, k as re, l as M, m as N, n as ie, nt as P, o as ae, ot as F, p as I, rt as oe, s as se, st as L, t as ce, u as R, v as z, w as le, x as B, y as V, z as H } from "./draggable-iAb7QVJo.js";
3
3
  //#region src/constants/timeouts.ts
4
4
  var ue = 3e4, de = 4e3, fe = 5e3, pe = {
5
5
  1: 36,
@@ -831,7 +831,7 @@ function Ft(e, t) {
831
831
  };
832
832
  }
833
833
  //#endregion
834
- //#region ../../node_modules/.pnpm/@vueuse+shared@14.3.0_vue@3.5.35_typescript@6.0.3_/node_modules/@vueuse/shared/dist/index.js
834
+ //#region ../../node_modules/.pnpm/@vueuse+shared@14.3.0_vue@3.5.38_typescript@6.0.3_/node_modules/@vueuse/shared/dist/index.js
835
835
  function It(e, t) {
836
836
  return s() ? (l(e, t), !0) : !1;
837
837
  }
@@ -990,7 +990,7 @@ function un(e, t, n) {
990
990
  });
991
991
  }
992
992
  //#endregion
993
- //#region ../../node_modules/.pnpm/@vueuse+core@14.3.0_vue@3.5.35_typescript@6.0.3_/node_modules/@vueuse/core/dist/index.js
993
+ //#region ../../node_modules/.pnpm/@vueuse+core@14.3.0_vue@3.5.38_typescript@6.0.3_/node_modules/@vueuse/core/dist/index.js
994
994
  var dn = Bt ? window : void 0, fn = Bt ? window.document : void 0, pn = Bt ? window.navigator : void 0;
995
995
  function K(e) {
996
996
  let t = P(e);
@@ -1408,7 +1408,7 @@ function Pn() {
1408
1408
  }
1409
1409
  //#endregion
1410
1410
  //#region src/keys.ts
1411
- var Fn = Symbol("translations"), In = Symbol("editor"), Ln = Symbol("history"), Rn = Symbol("blockActions"), zn = Symbol("conditionPreview"), Bn = Symbol("fontsManager"), Vn = Symbol("themeStyles"), Hn = Symbol("tplUiTheme"), Un = Symbol("blockDefaults"), Wn = Symbol("blockRegistry"), Gn = Symbol("customBlockDefinitions"), Kn = Symbol("customBlockStylesheets"), qn = Symbol("mergeTags"), Jn = Symbol("mergeTagSyntax"), Yn = Symbol("onRequestMergeTag"), Xn = Symbol("mergeTagAutocomplete"), Zn = Symbol("mergeTagPicker"), Qn = Symbol("onRequestMedia"), $n = Symbol("displayConditions"), er = Symbol("allowCustomConditions"), tr = Symbol("capabilities"), nr = Symbol("keyboardReorder"), rr = Symbol("templateLint"), ir = Symbol("editorRoot"), ar = Symbol("popoverRoot"), or = Symbol("authManager"), sr = Symbol("aiConfig"), cr = Symbol("comments"), lr = Symbol("savedModulesHeadless"), ur = Symbol("scoring"), dr = Symbol("cloudTranslations");
1411
+ var Fn = Symbol("translations"), In = Symbol("editor"), Ln = Symbol("history"), Rn = Symbol("blockActions"), zn = Symbol("conditionPreview"), Bn = Symbol("fontsManager"), Vn = Symbol("themeStyles"), Hn = Symbol("tplUiTheme"), Un = Symbol("blockDefaults"), Wn = Symbol("blockRegistry"), Gn = Symbol("customBlockDefinitions"), Kn = Symbol("paletteBlocks"), qn = Symbol("customBlockStylesheets"), Jn = Symbol("mergeTags"), Yn = Symbol("mergeTagSyntax"), Xn = Symbol("onRequestMergeTag"), Zn = Symbol("mergeTagAutocomplete"), Qn = Symbol("mergeTagPicker"), $n = Symbol("onRequestMedia"), er = Symbol("displayConditions"), tr = Symbol("allowCustomConditions"), nr = Symbol("capabilities"), rr = Symbol("keyboardReorder"), ir = Symbol("templateLint"), ar = Symbol("editorRoot"), or = Symbol("popoverRoot"), sr = Symbol("authManager"), cr = Symbol("aiConfig"), lr = Symbol("comments"), ur = Symbol("savedModulesHeadless"), dr = Symbol("scoring"), fr = Symbol("cloudTranslations");
1412
1412
  function J(e, t) {
1413
1413
  let n = v(e, null);
1414
1414
  if (n == null) throw Error(`${t} requires a provider for ${e.description ?? "unknown key"}. Ensure it is a descendant of Editor or CloudEditor.`);
@@ -1416,7 +1416,7 @@ function J(e, t) {
1416
1416
  }
1417
1417
  //#endregion
1418
1418
  //#region src/composables/useMergeTagPicker.ts
1419
- function fr() {
1419
+ function pr() {
1420
1420
  let e = C(!1), t = C([]), n = null;
1421
1421
  function r(r) {
1422
1422
  if (n) {
@@ -1446,15 +1446,15 @@ function fr() {
1446
1446
  }
1447
1447
  //#endregion
1448
1448
  //#region src/composables/useTemplateLint.ts
1449
- function pr(e) {
1449
+ function mr(e) {
1450
1450
  return e ? e.disabled === !0 ? !0 : e.accessibility === !1 && e.structure === !1 && e.links === !1 : !1;
1451
1451
  }
1452
- function mr(e) {
1453
- let t = C([]), r = C(!1), i = C(!1), a = n(null), o = pr(e.options), s = null, c = !1;
1452
+ function hr(e) {
1453
+ let t = C([]), r = C(!1), i = C(!1), a = n(null), o = mr(e.options), s = null, c = !1;
1454
1454
  o || l();
1455
1455
  async function l() {
1456
1456
  try {
1457
- let t = await import("./quality-Dqwx7TdN.js").then((e) => e.t);
1457
+ let t = await import("./quality-CIw_7cXv.js").then((e) => e.t);
1458
1458
  if (c) return;
1459
1459
  a.value = { lintTemplate: t.lintTemplate }, r.value = !0, u(), s = ln(e.content, u, {
1460
1460
  debounce: e.debounce ?? 500,
@@ -1505,12 +1505,12 @@ function Y(e) {
1505
1505
  }
1506
1506
  //#endregion
1507
1507
  //#region src/utils/blockTypeLabels.ts
1508
- function hr(e, t) {
1508
+ function gr(e, t) {
1509
1509
  return t.blocks[e] ?? e;
1510
1510
  }
1511
1511
  //#endregion
1512
1512
  //#region src/composables/useKeyboardReorder.ts
1513
- function gr(e, t) {
1513
+ function _r(e, t) {
1514
1514
  let n = C(null), r = C(""), i = null;
1515
1515
  function a(t) {
1516
1516
  let n = e.content.value.blocks, r = n.findIndex((e) => e.id === t);
@@ -1537,7 +1537,7 @@ function gr(e, t) {
1537
1537
  let r = a(n);
1538
1538
  if (!r) return "";
1539
1539
  let i = (r.sectionId ? s(r.sectionId, r.columnIndex ?? 0) : e.content.value.blocks)?.[r.index];
1540
- return i ? hr(i.type, t.t) : "";
1540
+ return i ? gr(i.type, t.t) : "";
1541
1541
  }
1542
1542
  function s(t, n) {
1543
1543
  return e.content.value.blocks.find((e) => e.id === t && e.type === "section")?.children[n] ?? null;
@@ -1606,13 +1606,13 @@ function gr(e, t) {
1606
1606
  }
1607
1607
  //#endregion
1608
1608
  //#region src/composables/useUiTheme.ts
1609
- function _r(e) {
1609
+ function vr(e) {
1610
1610
  let t = xn("(prefers-color-scheme: dark)");
1611
1611
  return { resolvedTheme: O(() => e.value === "auto" ? t.value ? "dark" : "light" : e.value) };
1612
1612
  }
1613
1613
  //#endregion
1614
1614
  //#region src/composables/useThemeStyles.ts
1615
- var vr = {
1615
+ var yr = {
1616
1616
  bg: "--tpl-bg",
1617
1617
  bgElevated: "--tpl-bg-elevated",
1618
1618
  bgHover: "--tpl-bg-hover",
@@ -1636,10 +1636,10 @@ var vr = {
1636
1636
  dangerLight: "--tpl-danger-light",
1637
1637
  canvasBg: "--tpl-canvas-bg"
1638
1638
  };
1639
- function yr({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1639
+ function br({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1640
1640
  return { themeStyles: O(() => {
1641
1641
  let r = {}, i = e.value, a = t.value === "dark" ? i.dark : i;
1642
- if (a) for (let [e, t] of Object.entries(vr)) {
1642
+ if (a) for (let [e, t] of Object.entries(yr)) {
1643
1643
  let n = a[e];
1644
1644
  n && (r[t] = n);
1645
1645
  }
@@ -1648,27 +1648,27 @@ function yr({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1648
1648
  }
1649
1649
  //#endregion
1650
1650
  //#region src/utils/logger.ts
1651
- var br = "[Templatical]";
1652
- function xr() {
1651
+ var xr = "[Templatical]";
1652
+ function Sr() {
1653
1653
  return typeof process < "u" && !0;
1654
1654
  }
1655
- var Sr = {
1655
+ var Cr = {
1656
1656
  warn(...e) {
1657
- console.warn(br, ...e);
1657
+ console.warn(xr, ...e);
1658
1658
  },
1659
1659
  error(...e) {
1660
- console.error(br, ...e);
1660
+ console.error(xr, ...e);
1661
1661
  },
1662
1662
  debug(...e) {
1663
- xr() || console.debug(br, ...e);
1663
+ Sr() || console.debug(xr, ...e);
1664
1664
  },
1665
1665
  info(...e) {
1666
- xr() || console.info(br, ...e);
1666
+ Sr() || console.info(xr, ...e);
1667
1667
  }
1668
1668
  };
1669
1669
  //#endregion
1670
1670
  //#region src/composables/useBlockRegistry.ts
1671
- function Cr() {
1671
+ function wr() {
1672
1672
  let e = n(/* @__PURE__ */ new Map());
1673
1673
  function t(t, n) {
1674
1674
  e.value.set(t, n), oe(e);
@@ -1678,13 +1678,6 @@ function Cr() {
1678
1678
  e.value.set(r, {
1679
1679
  component: n,
1680
1680
  createBlock: () => ot(t),
1681
- sidebarItem: {
1682
- type: r,
1683
- label: t.name,
1684
- icon: t.icon,
1685
- description: t.description,
1686
- isCustom: !0
1687
- },
1688
1681
  definition: t
1689
1682
  }), oe(e);
1690
1683
  }
@@ -1698,21 +1691,16 @@ function Cr() {
1698
1691
  function a(t) {
1699
1692
  return e.value.get(t)?.createBlock();
1700
1693
  }
1701
- function o() {
1702
- let t = [], n = [];
1703
- for (let r of e.value.values()) r.sidebarItem.isCustom ? n.push(r.sidebarItem) : t.push(r.sidebarItem);
1704
- return [...t, ...n];
1705
- }
1706
- function s(t) {
1694
+ function o(t) {
1707
1695
  let n = `custom:${t}`;
1708
1696
  return e.value.get(n)?.definition;
1709
1697
  }
1710
- function c(e) {
1698
+ function s(e) {
1711
1699
  return `<div style="color: var(--tpl-text-muted); padding: 16px; text-align: center; border: 1px dashed var(--tpl-border); border-radius: var(--tpl-radius-sm); font-family: var(--tpl-font-family); font-size: 14px;">${e}</div>`;
1712
1700
  }
1713
- async function l(e) {
1714
- let t = s(e.customType);
1715
- if (!t) return c("Block definition not found");
1701
+ async function c(e) {
1702
+ let t = o(e.customType);
1703
+ if (!t) return s("Block definition not found");
1716
1704
  try {
1717
1705
  let { Liquid: n } = await import("./liquid.browser-DUDc3U21.js");
1718
1706
  return await new n({
@@ -1720,10 +1708,10 @@ function Cr() {
1720
1708
  strictFilters: !1
1721
1709
  }).parseAndRender(t.template, e.fieldValues);
1722
1710
  } catch (t) {
1723
- return Sr.error(`Failed to render custom block "${e.customType}":`, t), c(`Render error: ${e.customType}`);
1711
+ return Cr.error(`Failed to render custom block "${e.customType}":`, t), s(`Render error: ${e.customType}`);
1724
1712
  }
1725
1713
  }
1726
- function u(t) {
1714
+ function l(t) {
1727
1715
  return e.value.has(t);
1728
1716
  }
1729
1717
  return {
@@ -1731,17 +1719,16 @@ function Cr() {
1731
1719
  registerCustom: r,
1732
1720
  getComponent: i,
1733
1721
  createBlock: a,
1734
- getSidebarItems: o,
1735
- getDefinition: s,
1736
- renderCustomBlock: l,
1737
- isRegistered: u
1722
+ getDefinition: o,
1723
+ renderCustomBlock: c,
1724
+ isRegistered: l
1738
1725
  };
1739
1726
  }
1740
1727
  //#endregion
1741
1728
  //#region src/composables/useCustomBlockStylesheets.ts
1742
- function wr(e, t) {
1729
+ function Tr(e, t) {
1743
1730
  return O(() => {
1744
- let n = Tr(e.value.blocks);
1731
+ let n = Er(e.value.blocks);
1745
1732
  if (n.size === 0) return [];
1746
1733
  let r = /* @__PURE__ */ new Set(), i = [];
1747
1734
  for (let e of n) {
@@ -1753,11 +1740,11 @@ function wr(e, t) {
1753
1740
  return i;
1754
1741
  });
1755
1742
  }
1756
- function Tr(e) {
1743
+ function Er(e) {
1757
1744
  let t = /* @__PURE__ */ new Set();
1758
- return Er(e, t), t;
1745
+ return Dr(e, t), t;
1759
1746
  }
1760
- function Er(e, t) {
1747
+ function Dr(e, t) {
1761
1748
  for (let n of e) {
1762
1749
  if (Ee(n)) {
1763
1750
  t.add(n.customType);
@@ -1766,96 +1753,78 @@ function Er(e, t) {
1766
1753
  if (n.type === "section") {
1767
1754
  let e = n.children;
1768
1755
  if (!e) continue;
1769
- for (let n of e) Er(n, t);
1756
+ for (let n of e) Dr(n, t);
1770
1757
  }
1771
1758
  }
1772
1759
  }
1773
1760
  //#endregion
1774
1761
  //#region src/utils/registerBuiltInBlocks.ts
1775
- var Dr = [
1762
+ var Or = [
1776
1763
  {
1777
1764
  type: "section",
1778
- label: "Section",
1779
1765
  createBlock: Xe
1780
1766
  },
1781
1767
  {
1782
1768
  type: "title",
1783
- label: "Title",
1784
1769
  createBlock: Ge
1785
1770
  },
1786
1771
  {
1787
1772
  type: "paragraph",
1788
- label: "Paragraph",
1789
1773
  createBlock: Ke
1790
1774
  },
1791
1775
  {
1792
1776
  type: "image",
1793
- label: "Image",
1794
1777
  createBlock: qe
1795
1778
  },
1796
1779
  {
1797
1780
  type: "button",
1798
- label: "Button",
1799
1781
  createBlock: Je
1800
1782
  },
1801
1783
  {
1802
1784
  type: "divider",
1803
- label: "Divider",
1804
1785
  createBlock: Ye
1805
1786
  },
1806
1787
  {
1807
1788
  type: "video",
1808
- label: "Video",
1809
1789
  createBlock: Ze
1810
1790
  },
1811
1791
  {
1812
1792
  type: "social",
1813
- label: "Social",
1814
1793
  createBlock: Qe
1815
1794
  },
1816
1795
  {
1817
1796
  type: "menu",
1818
- label: "Menu",
1819
1797
  createBlock: tt
1820
1798
  },
1821
1799
  {
1822
1800
  type: "table",
1823
- label: "Table",
1824
1801
  createBlock: rt
1825
1802
  },
1826
1803
  {
1827
1804
  type: "spacer",
1828
- label: "Spacer",
1829
1805
  createBlock: $e
1830
1806
  },
1831
1807
  {
1832
1808
  type: "html",
1833
- label: "HTML",
1834
1809
  createBlock: et
1835
1810
  },
1836
1811
  {
1837
1812
  type: "countdown",
1838
- label: "Countdown",
1839
1813
  createBlock: it
1840
1814
  }
1841
1815
  ];
1842
- function Or(e, t) {
1843
- for (let n of Dr) {
1816
+ function kr(e, t) {
1817
+ for (let n of Or) {
1844
1818
  let r = t[n.type];
1845
1819
  r && e.registerBuiltIn(n.type, {
1846
1820
  component: r,
1847
- createBlock: n.createBlock,
1848
- sidebarItem: {
1849
- type: n.type,
1850
- label: n.label,
1851
- isCustom: !1
1852
- }
1821
+ createBlock: n.createBlock
1853
1822
  });
1854
1823
  }
1855
1824
  }
1856
1825
  //#endregion
1857
1826
  //#region src/utils/keyboardShortcuts.ts
1858
- function kr(e) {
1827
+ function Ar(e) {
1859
1828
  for (let t of e.composedPath()) {
1860
1829
  if (!(t instanceof HTMLElement)) continue;
1861
1830
  if (t.isContentEditable) return !0;
@@ -1864,14 +1833,14 @@ function kr(e) {
1864
1833
  }
1865
1834
  return !1;
1866
1835
  }
1867
- function Ar(e, t) {
1836
+ function jr(e, t) {
1868
1837
  let n = e.metaKey || e.ctrlKey;
1869
1838
  if (n && e.key.toLowerCase() === "s") {
1870
1839
  e.preventDefault(), t.onSave?.();
1871
1840
  return;
1872
1841
  }
1873
1842
  if (n && e.key.toLowerCase() === "z") {
1874
- if (kr(e)) return;
1843
+ if (Ar(e)) return;
1875
1844
  e.preventDefault(), e.shiftKey ? t.history.redo() : (t.onBeforeUndo?.(), t.history.undo());
1876
1845
  return;
1877
1846
  }
@@ -1879,11 +1848,11 @@ function Ar(e, t) {
1879
1848
  t.selectBlock(null);
1880
1849
  return;
1881
1850
  }
1882
- (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !kr(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
1851
+ (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !Ar(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
1883
1852
  }
1884
1853
  //#endregion
1885
1854
  //#region src/components/blocks/ButtonBlock.vue?vue&type=script&setup=true&lang.ts
1886
- var jr = { class: "tpl:text-center" }, Mr = ["href"], Nr = /* @__PURE__ */ B({
1855
+ var Mr = { class: "tpl:text-center" }, Nr = ["href"], Pr = /* @__PURE__ */ B({
1887
1856
  __name: "ButtonBlock",
1888
1857
  props: {
1889
1858
  block: {},
@@ -1904,17 +1873,17 @@ var jr = { class: "tpl:text-center" }, Mr = ["href"], Nr = /* @__PURE__ */ B({
1904
1873
  };
1905
1874
  return t.block.fontFamily && (e.fontFamily = t.block.fontFamily), e;
1906
1875
  });
1907
- return (t, r) => (f(), k("div", jr, [I("a", {
1876
+ return (t, r) => (f(), k("div", Mr, [I("a", {
1908
1877
  href: e.block.url || "#",
1909
1878
  style: L(n.value),
1910
1879
  class: "tpl:cursor-default",
1911
1880
  onClick: r[0] ||= M(() => {}, ["prevent"])
1912
- }, D(e.block.text), 13, Mr)]));
1881
+ }, D(e.block.text), 13, Nr)]));
1913
1882
  }
1914
- }), Pr = (e) => e === "", Fr = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), Ir = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Lr = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), Rr = (e) => {
1915
- let t = Lr(e);
1883
+ }), Fr = (e) => e === "", Ir = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), Lr = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Rr = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), zr = (e) => {
1884
+ let t = Rr(e);
1916
1885
  return t.charAt(0).toUpperCase() + t.slice(1);
1917
- }, zr = {
1886
+ }, Br = {
1918
1887
  xmlns: "http://www.w3.org/2000/svg",
1919
1888
  width: 24,
1920
1889
  height: 24,
@@ -1924,35 +1893,35 @@ var jr = { class: "tpl:text-center" }, Mr = ["href"], Nr = /* @__PURE__ */ B({
1924
1893
  "stroke-width": 2,
1925
1894
  "stroke-linecap": "round",
1926
1895
  "stroke-linejoin": "round"
1927
- }, Br = Symbol("lucide-icons");
1928
- function Vr() {
1929
- return v(Br, {});
1896
+ }, Vr = Symbol("lucide-icons");
1897
+ function Hr() {
1898
+ return v(Vr, {});
1930
1899
  }
1931
1900
  //#endregion
1932
- //#region ../../node_modules/.pnpm/@lucide+vue@1.17.0_vue@3.5.35_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/Icon.mjs
1933
- var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width": r, strokeWidth: i, "stroke-width": o, size: s, color: c, ...l }, { slots: u }) => {
1934
- let { size: d, color: f, strokeWidth: p = 2, absoluteStrokeWidth: m = !1, class: h = "" } = Vr(), g = O(() => {
1935
- let e = Pr(n) || Pr(r) || n === !0 || r === !0 || m === !0, t = i || o || p || zr["stroke-width"];
1936
- return e ? Number(t) * 24 / Number(s ?? d ?? zr.width) : t;
1901
+ //#region ../../node_modules/.pnpm/@lucide+vue@1.21.0_vue@3.5.38_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/Icon.mjs
1902
+ var Ur = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width": r, strokeWidth: i, "stroke-width": o, size: s, color: c, ...l }, { slots: u }) => {
1903
+ let { size: d, color: f, strokeWidth: p = 2, absoluteStrokeWidth: m = !1, class: h = "" } = Hr(), g = O(() => {
1904
+ let e = Fr(n) || Fr(r) || n === !0 || r === !0 || m === !0, t = i || o || p || Br["stroke-width"];
1905
+ return e ? Number(t) * 24 / Number(s ?? d ?? Br.width) : t;
1937
1906
  });
1938
1907
  return a("svg", {
1939
- ...zr,
1908
+ ...Br,
1940
1909
  ...l,
1941
- width: s ?? d ?? zr.width,
1942
- height: s ?? d ?? zr.height,
1943
- stroke: c ?? f ?? zr.stroke,
1910
+ width: s ?? d ?? Br.width,
1911
+ height: s ?? d ?? Br.height,
1912
+ stroke: c ?? f ?? Br.stroke,
1944
1913
  "stroke-width": g.value,
1945
- class: Fr("lucide", h, ...e ? [`lucide-${Ir(Rr(e))}-icon`, `lucide-${Ir(e)}`] : ["lucide-icon"])
1914
+ class: Ir("lucide", h, ...e ? [`lucide-${Lr(zr(e))}-icon`, `lucide-${Lr(e)}`] : ["lucide-icon"])
1946
1915
  }, [...t.map((e) => a(...e)), ...u.default ? [u.default()] : []]);
1947
- }, X = (e, t) => (n, { slots: r, attrs: i }) => a(Hr, {
1916
+ }, X = (e, t) => (n, { slots: r, attrs: i }) => a(Ur, {
1948
1917
  ...i,
1949
1918
  ...n,
1950
1919
  iconNode: t,
1951
1920
  name: e
1952
- }, r.default ? { default: r.default } : void 0), Ur = X("bookmark", [["path", {
1921
+ }, r.default ? { default: r.default } : void 0), Wr = X("bookmark", [["path", {
1953
1922
  d: "M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z",
1954
1923
  key: "oz39mx"
1955
- }]]), Wr = X("box", [
1924
+ }]]), Gr = X("box", [
1956
1925
  ["path", {
1957
1926
  d: "M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",
1958
1927
  key: "hh9hay"
@@ -1965,22 +1934,22 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
1965
1934
  d: "M12 22V12",
1966
1935
  key: "d0xqtd"
1967
1936
  }]
1968
- ]), Gr = X("check", [["path", {
1937
+ ]), Kr = X("check", [["path", {
1969
1938
  d: "M20 6 9 17l-5-5",
1970
1939
  key: "1gmf2c"
1971
- }]]), Kr = X("chevron-down", [["path", {
1940
+ }]]), qr = X("chevron-down", [["path", {
1972
1941
  d: "m6 9 6 6 6-6",
1973
1942
  key: "qrunsl"
1974
- }]]), qr = X("chevron-left", [["path", {
1943
+ }]]), Jr = X("chevron-left", [["path", {
1975
1944
  d: "m15 18-6-6 6-6",
1976
1945
  key: "1wnfg3"
1977
- }]]), Jr = X("chevron-right", [["path", {
1946
+ }]]), Yr = X("chevron-right", [["path", {
1978
1947
  d: "m9 18 6-6-6-6",
1979
1948
  key: "mthhwq"
1980
- }]]), Yr = X("chevron-up", [["path", {
1949
+ }]]), Xr = X("chevron-up", [["path", {
1981
1950
  d: "m18 15-6-6-6 6",
1982
1951
  key: "153udz"
1983
- }]]), Xr = X("circle-alert", [
1952
+ }]]), Zr = X("circle-alert", [
1984
1953
  ["circle", {
1985
1954
  cx: "12",
1986
1955
  cy: "12",
@@ -2001,7 +1970,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2001
1970
  y2: "16",
2002
1971
  key: "4dfq90"
2003
1972
  }]
2004
- ]), Zr = X("circle-check", [["circle", {
1973
+ ]), Qr = X("circle-check", [["circle", {
2005
1974
  cx: "12",
2006
1975
  cy: "12",
2007
1976
  r: "10",
@@ -2009,7 +1978,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2009
1978
  }], ["path", {
2010
1979
  d: "m9 12 2 2 4-4",
2011
1980
  key: "dzmm74"
2012
- }]]), Qr = X("clock", [["circle", {
1981
+ }]]), $r = X("clock", [["circle", {
2013
1982
  cx: "12",
2014
1983
  cy: "12",
2015
1984
  r: "10",
@@ -2017,13 +1986,13 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2017
1986
  }], ["path", {
2018
1987
  d: "M12 6v6l4 2",
2019
1988
  key: "mmk7yg"
2020
- }]]), $r = X("code", [["path", {
1989
+ }]]), ei = X("code", [["path", {
2021
1990
  d: "m16 18 6-6-6-6",
2022
1991
  key: "eg8j8"
2023
1992
  }], ["path", {
2024
1993
  d: "m8 6-6 6 6 6",
2025
1994
  key: "ppft3o"
2026
- }]]), ei = X("copy", [["rect", {
1995
+ }]]), ti = X("copy", [["rect", {
2027
1996
  width: "14",
2028
1997
  height: "14",
2029
1998
  x: "8",
@@ -2034,7 +2003,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2034
2003
  }], ["path", {
2035
2004
  d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",
2036
2005
  key: "zix9uf"
2037
- }]]), ti = X("eye-off", [
2006
+ }]]), ni = X("eye-off", [
2038
2007
  ["path", {
2039
2008
  d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
2040
2009
  key: "ct8e1f"
@@ -2051,7 +2020,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2051
2020
  d: "m2 2 20 20",
2052
2021
  key: "1ooewy"
2053
2022
  }]
2054
- ]), ni = X("eye", [["path", {
2023
+ ]), ri = X("eye", [["path", {
2055
2024
  d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",
2056
2025
  key: "1nclc0"
2057
2026
  }], ["circle", {
@@ -2059,7 +2028,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2059
2028
  cy: "12",
2060
2029
  r: "3",
2061
2030
  key: "1v7zrd"
2062
- }]]), ri = X("file-image", [
2031
+ }]]), ii = X("file-image", [
2063
2032
  ["path", {
2064
2033
  d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
2065
2034
  key: "1oefj6"
@@ -2078,7 +2047,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2078
2047
  d: "m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",
2079
2048
  key: "wt3hpn"
2080
2049
  }]
2081
- ]), ii = X("file-text", [
2050
+ ]), ai = X("file-text", [
2082
2051
  ["path", {
2083
2052
  d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
2084
2053
  key: "1oefj6"
@@ -2099,10 +2068,10 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2099
2068
  d: "M16 17H8",
2100
2069
  key: "z1uh3a"
2101
2070
  }]
2102
- ]), ai = X("funnel", [["path", {
2071
+ ]), oi = X("funnel", [["path", {
2103
2072
  d: "M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",
2104
2073
  key: "sc7q7i"
2105
- }]]), oi = X("grip-vertical", [
2074
+ }]]), si = X("grip-vertical", [
2106
2075
  ["circle", {
2107
2076
  cx: "9",
2108
2077
  cy: "12",
@@ -2139,7 +2108,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2139
2108
  r: "1",
2140
2109
  key: "f4zoj3"
2141
2110
  }]
2142
- ]), si = X("image-up", [
2111
+ ]), ci = X("image-up", [
2143
2112
  ["path", {
2144
2113
  d: "M10.3 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10l-3.1-3.1a2 2 0 0 0-2.814.014L6 21",
2145
2114
  key: "9csbqa"
@@ -2158,7 +2127,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2158
2127
  r: "2",
2159
2128
  key: "af1f0g"
2160
2129
  }]
2161
- ]), ci = X("image", [
2130
+ ]), li = X("image", [
2162
2131
  ["rect", {
2163
2132
  width: "18",
2164
2133
  height: "18",
@@ -2178,7 +2147,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2178
2147
  d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",
2179
2148
  key: "1xmnt7"
2180
2149
  }]
2181
- ]), li = X("info", [
2150
+ ]), ui = X("info", [
2182
2151
  ["circle", {
2183
2152
  cx: "12",
2184
2153
  cy: "12",
@@ -2193,31 +2162,31 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2193
2162
  d: "M12 8h.01",
2194
2163
  key: "e9boi3"
2195
2164
  }]
2196
- ]), ui = X("loader-circle", [["path", {
2165
+ ]), di = X("loader-circle", [["path", {
2197
2166
  d: "M21 12a9 9 0 1 1-6.219-8.56",
2198
2167
  key: "13zald"
2199
- }]]), di = X("message-circle", [["path", {
2168
+ }]]), fi = X("message-circle", [["path", {
2200
2169
  d: "M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",
2201
2170
  key: "1sd12s"
2202
- }]]), fi = X("navigation", [["polygon", {
2171
+ }]]), pi = X("navigation", [["polygon", {
2203
2172
  points: "3 11 22 2 13 21 11 13 3 11",
2204
2173
  key: "1ltx0t"
2205
- }]]), pi = X("pencil", [["path", {
2174
+ }]]), mi = X("pencil", [["path", {
2206
2175
  d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
2207
2176
  key: "1a8usu"
2208
2177
  }], ["path", {
2209
2178
  d: "m15 5 4 4",
2210
2179
  key: "1mk7zo"
2211
- }]]), mi = X("puzzle", [["path", {
2180
+ }]]), hi = X("puzzle", [["path", {
2212
2181
  d: "M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",
2213
2182
  key: "w46dr5"
2214
- }]]), hi = X("redo-2", [["path", {
2183
+ }]]), gi = X("redo-2", [["path", {
2215
2184
  d: "m15 14 5-5-5-5",
2216
2185
  key: "12vg1m"
2217
2186
  }], ["path", {
2218
2187
  d: "M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",
2219
2188
  key: "6uklza"
2220
- }]]), gi = X("refresh-cw", [
2189
+ }]]), _i = X("refresh-cw", [
2221
2190
  ["path", {
2222
2191
  d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",
2223
2192
  key: "v9h5vc"
@@ -2234,19 +2203,19 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2234
2203
  d: "M8 16H3v5",
2235
2204
  key: "1cv678"
2236
2205
  }]
2237
- ]), _i = X("reply", [["path", {
2206
+ ]), vi = X("reply", [["path", {
2238
2207
  d: "M20 18v-2a4 4 0 0 0-4-4H4",
2239
2208
  key: "5vmcpk"
2240
2209
  }], ["path", {
2241
2210
  d: "m9 17-5-5 5-5",
2242
2211
  key: "nvlc11"
2243
- }]]), vi = X("send", [["path", {
2212
+ }]]), yi = X("send", [["path", {
2244
2213
  d: "M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",
2245
2214
  key: "1ffxy3"
2246
2215
  }], ["path", {
2247
2216
  d: "m21.854 2.147-10.94 10.939",
2248
2217
  key: "12cjpa"
2249
- }]]), yi = X("share-2", [
2218
+ }]]), bi = X("share-2", [
2250
2219
  ["circle", {
2251
2220
  cx: "18",
2252
2221
  cy: "5",
@@ -2279,13 +2248,13 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2279
2248
  y2: "10.49",
2280
2249
  key: "1n3mei"
2281
2250
  }]
2282
- ]), bi = X("shield-check", [["path", {
2251
+ ]), xi = X("shield-check", [["path", {
2283
2252
  d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
2284
2253
  key: "oel41y"
2285
2254
  }], ["path", {
2286
2255
  d: "m9 12 2 2 4-4",
2287
2256
  key: "dzmm74"
2288
- }]]), xi = X("shield-x", [
2257
+ }]]), Si = X("shield-x", [
2289
2258
  ["path", {
2290
2259
  d: "M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",
2291
2260
  key: "oel41y"
@@ -2298,7 +2267,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2298
2267
  d: "m9.5 9.5 5 5",
2299
2268
  key: "18nt4w"
2300
2269
  }]
2301
- ]), Si = X("sparkles", [
2270
+ ]), Ci = X("sparkles", [
2302
2271
  ["path", {
2303
2272
  d: "M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",
2304
2273
  key: "1s2grr"
@@ -2317,7 +2286,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2317
2286
  r: "2",
2318
2287
  key: "6kqj1y"
2319
2288
  }]
2320
- ]), Ci = X("table", [
2289
+ ]), wi = X("table", [
2321
2290
  ["path", {
2322
2291
  d: "M12 3v18",
2323
2292
  key: "108xh3"
@@ -2338,7 +2307,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2338
2307
  d: "M3 15h18",
2339
2308
  key: "5xshup"
2340
2309
  }]
2341
- ]), wi = X("trash-2", [
2310
+ ]), Ti = X("trash-2", [
2342
2311
  ["path", {
2343
2312
  d: "M10 11v6",
2344
2313
  key: "nco0om"
@@ -2359,7 +2328,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2359
2328
  d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",
2360
2329
  key: "e791ji"
2361
2330
  }]
2362
- ]), Ti = X("triangle-alert", [
2331
+ ]), Ei = X("triangle-alert", [
2363
2332
  ["path", {
2364
2333
  d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
2365
2334
  key: "wmoenq"
@@ -2372,13 +2341,13 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2372
2341
  d: "M12 17h.01",
2373
2342
  key: "p32p05"
2374
2343
  }]
2375
- ]), Ei = X("undo-2", [["path", {
2344
+ ]), Di = X("undo-2", [["path", {
2376
2345
  d: "M9 14 4 9l5-5",
2377
2346
  key: "102s5s"
2378
2347
  }], ["path", {
2379
2348
  d: "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",
2380
2349
  key: "f3b9sd"
2381
- }]]), Di = X("upload", [
2350
+ }]]), Oi = X("upload", [
2382
2351
  ["path", {
2383
2352
  d: "M12 3v12",
2384
2353
  key: "1x0j5s"
@@ -2391,7 +2360,7 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2391
2360
  d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",
2392
2361
  key: "ih7n3h"
2393
2362
  }]
2394
- ]), Oi = X("video", [["path", {
2363
+ ]), ki = X("video", [["path", {
2395
2364
  d: "m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",
2396
2365
  key: "ftymec"
2397
2366
  }], ["rect", {
@@ -2401,20 +2370,20 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2401
2370
  height: "12",
2402
2371
  rx: "2",
2403
2372
  key: "158x01"
2404
- }]]), ki = X("x", [["path", {
2373
+ }]]), Ai = X("x", [["path", {
2405
2374
  d: "M18 6 6 18",
2406
2375
  key: "1bl5f8"
2407
2376
  }], ["path", {
2408
2377
  d: "m6 6 12 12",
2409
2378
  key: "d8bk6v"
2410
- }]]), Ai = X("zap", [["path", {
2379
+ }]]), ji = X("zap", [["path", {
2411
2380
  d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
2412
2381
  key: "1xq2db"
2413
- }]]), ji = ["innerHTML"], Mi = [
2382
+ }]]), Mi = ["innerHTML"], Ni = [
2414
2383
  "src",
2415
2384
  "width",
2416
2385
  "height"
2417
- ], Ni = /* @__PURE__ */ B({
2386
+ ], Pi = /* @__PURE__ */ B({
2418
2387
  __name: "CustomBlockIcon",
2419
2388
  props: {
2420
2389
  icon: {},
@@ -2430,40 +2399,40 @@ var Hr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2430
2399
  height: `${n.value}px`
2431
2400
  }),
2432
2401
  innerHTML: e.icon
2433
- }, null, 12, ji)) : i.value ? (f(), k("img", {
2402
+ }, null, 12, Mi)) : i.value ? (f(), k("img", {
2434
2403
  key: 1,
2435
2404
  src: e.icon,
2436
2405
  width: n.value,
2437
2406
  height: n.value,
2438
2407
  class: "tpl:inline-block",
2439
2408
  alt: ""
2440
- }, null, 8, Mi)) : (f(), N(j(Wr), {
2409
+ }, null, 8, Ni)) : (f(), N(j(Gr), {
2441
2410
  key: 2,
2442
2411
  size: n.value,
2443
2412
  "stroke-width": 1.5
2444
2413
  }, null, 8, ["size"]));
2445
2414
  }
2446
- }), Pi = (e, t) => {
2415
+ }), Fi = (e, t) => {
2447
2416
  let n = e.__vccOpts || e;
2448
2417
  for (let [e, r] of t) n[e] = r;
2449
2418
  return n;
2450
- }, Fi = {}, Ii = { class: "tpl-loading-track" };
2451
- function Li(e, t) {
2452
- return f(), k("div", Ii);
2419
+ }, Ii = {}, Li = { class: "tpl-loading-track" };
2420
+ function Ri(e, t) {
2421
+ return f(), k("div", Li);
2453
2422
  }
2454
- var Ri = /*#__PURE__*/ Pi(Fi, [["render", Li], ["__scopeId", "data-v-1ed538ec"]]);
2423
+ var zi = /*#__PURE__*/ Fi(Ii, [["render", Ri], ["__scopeId", "data-v-1ed538ec"]]);
2455
2424
  //#endregion
2456
2425
  //#region src/composables/useEditorRoot.ts
2457
- function zi() {
2458
- return v(ir, document) ?? document;
2426
+ function Bi() {
2427
+ return v(ar, document) ?? document;
2459
2428
  }
2460
2429
  //#endregion
2461
2430
  //#region src/composables/useFocusTrap.ts
2462
- var Bi = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
2463
- function Vi(e, t) {
2464
- let n = zi(), r = null, i = null, a = null;
2431
+ var Vi = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
2432
+ function Hi(e, t) {
2433
+ let n = Bi(), r = null, i = null, a = null;
2465
2434
  function o() {
2466
- return e.value ? Array.from(e.value.querySelectorAll(Bi)).filter((e) => e.offsetParent !== null) : [];
2435
+ return e.value ? Array.from(e.value.querySelectorAll(Vi)).filter((e) => e.offsetParent !== null) : [];
2467
2436
  }
2468
2437
  function s(e) {
2469
2438
  if (e.key !== "Tab") return;
@@ -2493,18 +2462,18 @@ function Vi(e, t) {
2493
2462
  }
2494
2463
  //#endregion
2495
2464
  //#region src/composables/useCloudI18n.ts
2496
- function Hi(e, t) {
2465
+ function Ui(e, t) {
2497
2466
  return e.replace(/\{(\w+)\}/g, (e, n) => n in t ? String(t[n]) : `{${n}}`);
2498
2467
  }
2499
- function Ui(e) {
2500
- let t = e ?? v(dr, null);
2468
+ function Wi(e) {
2469
+ let t = e ?? v(fr, null);
2501
2470
  return {
2502
2471
  t: t ? u(t) ? t.value : t : null,
2503
- format: Hi
2472
+ format: Ui
2504
2473
  };
2505
2474
  }
2506
- function Wi(e) {
2507
- let { t, format: n } = Ui(e);
2475
+ function Gi(e) {
2476
+ let { t, format: n } = Wi(e);
2508
2477
  if (!t) throw Error("useCloudI18nStrict() requires a cloud translations provider. Ensure the component is a descendant of CloudEditor.");
2509
2478
  return {
2510
2479
  t,
@@ -2513,8 +2482,8 @@ function Wi(e) {
2513
2482
  }
2514
2483
  //#endregion
2515
2484
  //#region src/composables/useMergeTag.ts
2516
- function Gi() {
2517
- let e = v(qn, []), t = v(Jn, ut.liquid), n = v(Yn, null), r = v(Xn, !0), i = v(Zn, null), a = C(!1);
2485
+ function Ki() {
2486
+ let e = v(Jn, []), t = v(Yn, ut.liquid), n = v(Xn, null), r = v(Zn, !0), i = v(Qn, null), a = C(!1);
2518
2487
  function o(e) {
2519
2488
  return ht(e, t);
2520
2489
  }
@@ -2553,7 +2522,7 @@ function Gi() {
2553
2522
  }
2554
2523
  //#endregion
2555
2524
  //#region src/composables/useEmoji.ts
2556
- function Ki() {
2525
+ function qi() {
2557
2526
  let [e, t] = cn(!1), r = n([]), i = !1;
2558
2527
  l(() => {
2559
2528
  i = !0;
@@ -2579,7 +2548,7 @@ function Ki() {
2579
2548
  }
2580
2549
  //#endregion
2581
2550
  //#region src/composables/useDragDrop.ts
2582
- function qi(e) {
2551
+ function Ji(e) {
2583
2552
  let { onBlockMove: t, onBlockAdd: n } = e, r = C(!1), i = C(null), a = C(null);
2584
2553
  function o(e) {
2585
2554
  r.value = !0, i.value = e;
@@ -2629,7 +2598,7 @@ function qi(e) {
2629
2598
  }
2630
2599
  //#endregion
2631
2600
  //#region src/composables/useFonts.ts
2632
- var Ji = [
2601
+ var Yi = [
2633
2602
  {
2634
2603
  value: "Arial",
2635
2604
  label: "Arial"
@@ -2658,7 +2627,7 @@ var Ji = [
2658
2627
  value: "Courier New",
2659
2628
  label: "Courier New"
2660
2629
  }
2661
- ], Yi = {
2630
+ ], Xi = {
2662
2631
  arial: "Arial, sans-serif",
2663
2632
  helvetica: "Helvetica, sans-serif",
2664
2633
  georgia: "Georgia, serif",
@@ -2666,14 +2635,14 @@ var Ji = [
2666
2635
  verdana: "Verdana, sans-serif",
2667
2636
  "trebuchet ms": "'Trebuchet MS', sans-serif",
2668
2637
  "courier new": "'Courier New', monospace"
2669
- }, Xi = "Arial, sans-serif";
2670
- function Zi(e) {
2671
- let t = C(e?.customFonts ?? []), n = C(!0), r = C(!1), i = O(() => e?.defaultFallback ?? Xi);
2638
+ }, Zi = "Arial, sans-serif";
2639
+ function Qi(e) {
2640
+ let t = C(e?.customFonts ?? []), n = C(!0), r = C(!1), i = O(() => e?.defaultFallback ?? Zi);
2672
2641
  function a(e) {
2673
2642
  n.value = e;
2674
2643
  }
2675
2644
  let o = O(() => {
2676
- let e = [...Ji];
2645
+ let e = [...Yi];
2677
2646
  if (!n.value) return e.sort((e, t) => e.label.localeCompare(t.label));
2678
2647
  let r = t.value.map((e) => ({
2679
2648
  value: e.name,
@@ -2686,23 +2655,23 @@ function Zi(e) {
2686
2655
  return o.value.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
2687
2656
  }
2688
2657
  function u(e) {
2689
- return Ji.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
2658
+ return Yi.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
2690
2659
  }
2691
2660
  function d() {
2692
2661
  if (e?.defaultFont) {
2693
- if (!n.value && !u(e.defaultFont)) return Xi;
2662
+ if (!n.value && !u(e.defaultFont)) return Zi;
2694
2663
  if (c(e.defaultFont)) {
2695
2664
  let t = o.value.find((t) => t.label.toLowerCase() === e.defaultFont.toLowerCase() || t.value.toLowerCase().startsWith(e.defaultFont.toLowerCase()));
2696
2665
  if (t) return t.value;
2697
2666
  }
2698
2667
  }
2699
- return Xi;
2668
+ return Zi;
2700
2669
  }
2701
2670
  let f = O(() => d());
2702
2671
  function p(e) {
2703
2672
  if (!e) return i.value;
2704
2673
  let n = t.value.find((t) => t.name.toLowerCase() === e.toLowerCase());
2705
- return n ? `'${n.name}', ${n.fallback ?? i.value}` : Yi[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
2674
+ return n ? `'${n.name}', ${n.fallback ?? i.value}` : Xi[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
2706
2675
  }
2707
2676
  let m = [], h = !1;
2708
2677
  async function g() {
@@ -2718,7 +2687,7 @@ function Zi(e) {
2718
2687
  t.onload = () => n(), t.onerror = () => r(/* @__PURE__ */ Error(`Failed to load font: ${e.name}`)), document.head.appendChild(t);
2719
2688
  });
2720
2689
  } catch (t) {
2721
- Sr.warn(`Failed to load custom font "${e.name}":`, t);
2690
+ Cr.warn(`Failed to load custom font "${e.name}":`, t);
2722
2691
  }
2723
2692
  });
2724
2693
  await Promise.allSettled(e), !h && (r.value = !0);
@@ -2745,9 +2714,9 @@ function Zi(e) {
2745
2714
  }
2746
2715
  //#endregion
2747
2716
  //#region src/composables/useRichTextLinkDialog.ts
2748
- function Qi(e) {
2717
+ function $i(e) {
2749
2718
  let t = C(!1), n = C(""), r = C(null);
2750
- Vi(r, t);
2719
+ Hi(r, t);
2751
2720
  function i() {
2752
2721
  n.value = e.value?.getAttributes("link").href || "", t.value = !0;
2753
2722
  }
@@ -2798,8 +2767,8 @@ function Qi(e) {
2798
2767
  }
2799
2768
  //#endregion
2800
2769
  //#region src/composables/useRichTextEditor.ts
2801
- function $i(e) {
2802
- let t = v(In, null), { mergeTags: r, canRequestMergeTag: i, isRequesting: a, requestMergeTag: o, syntax: s, autocomplete: c } = Gi(), l = v(Fn, null), d = (u(l) ? l.value : l)?.mergeTag?.suggestionEmpty ?? "No matching merge tags", f = ft(s), p = n(null), { showLinkDialog: m, linkUrl: h, linkDialogRef: g, openLinkDialog: _, insertLink: y, removeLink: b, closeLinkDialog: x, handleLinkKeydown: S } = Qi(p), { start: w, stop: ee } = sn(() => p.value?.commands.focus("end"), 0, { immediate: !1 }), T = n(null), E = C(!0), D = C(null), te = !1;
2770
+ function ea(e) {
2771
+ let t = v(In, null), { mergeTags: r, canRequestMergeTag: i, isRequesting: a, requestMergeTag: o, syntax: s, autocomplete: c } = Ki(), l = v(Fn, null), d = (u(l) ? l.value : l)?.mergeTag?.suggestionEmpty ?? "No matching merge tags", f = ft(s), p = n(null), { showLinkDialog: m, linkUrl: h, linkDialogRef: g, openLinkDialog: _, insertLink: y, removeLink: b, closeLinkDialog: x, handleLinkKeydown: S } = $i(p), { start: w, stop: ee } = sn(() => p.value?.commands.focus("end"), 0, { immediate: !1 }), T = n(null), E = C(!0), D = C(null), te = !1;
2803
2772
  async function ne() {
2804
2773
  D.value = null, E.value = !0;
2805
2774
  try {
@@ -2829,7 +2798,7 @@ function $i(e) {
2829
2798
  p.value = l, E.value = !1, w();
2830
2799
  } catch (t) {
2831
2800
  if (te) return;
2832
- Sr.error(`[${e.editorName ?? "RichTextEditor"}] Failed to initialize TipTap editor:`, t), D.value = t instanceof Error ? t.message : "Failed to load editor", E.value = !1;
2801
+ Cr.error(`[${e.editorName ?? "RichTextEditor"}] Failed to initialize TipTap editor:`, t), D.value = t instanceof Error ? t.message : "Failed to load editor", E.value = !1;
2833
2802
  }
2834
2803
  }
2835
2804
  function O() {
@@ -2877,20 +2846,20 @@ function $i(e) {
2877
2846
  }
2878
2847
  //#endregion
2879
2848
  //#region src/components/blocks/CustomBlock.vue?vue&type=script&setup=true&lang.ts
2880
- var ea = { class: "tpl:w-full" }, ta = {
2849
+ var ta = { class: "tpl:w-full" }, na = {
2881
2850
  key: 0,
2882
2851
  class: "tpl:flex tpl:min-h-[80px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:border-[var(--tpl-warning)] tpl:bg-[var(--tpl-warning-light)]"
2883
- }, na = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, ra = {
2852
+ }, ra = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, ia = {
2884
2853
  key: 1,
2885
2854
  class: "tpl:flex tpl:min-h-[80px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:border-[var(--tpl-danger)] tpl:bg-[var(--tpl-danger-light)]"
2886
- }, ia = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, aa = {
2855
+ }, aa = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, oa = {
2887
2856
  key: 2,
2888
2857
  class: "tpl:relative"
2889
- }, oa = ["innerHTML"], sa = {
2858
+ }, sa = ["innerHTML"], ca = {
2890
2859
  key: 0,
2891
2860
  class: "tpl:absolute tpl:inset-0 tpl:flex tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:rounded tpl:backdrop-blur-[2px]",
2892
2861
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)" }
2893
- }, ca = /* @__PURE__ */ B({
2862
+ }, la = /* @__PURE__ */ B({
2894
2863
  __name: "CustomBlock",
2895
2864
  props: {
2896
2865
  block: {},
@@ -2924,10 +2893,10 @@ var ea = { class: "tpl:w-full" }, ta = {
2924
2893
  g();
2925
2894
  }), H(() => n.block.fieldValues, () => {
2926
2895
  _();
2927
- }, { deep: !0 }), (e, t) => (f(), k("div", ea, [u.value ? c.value ? (f(), k("div", ra, [V(j(Ti), {
2896
+ }, { deep: !0 }), (e, t) => (f(), k("div", ta, [u.value ? c.value ? (f(), k("div", ia, [V(j(Ei), {
2928
2897
  size: 24,
2929
2898
  class: "tpl:text-[var(--tpl-danger)]"
2930
- }), I("span", ia, D(j(a).customBlocks.renderError), 1)])) : (f(), k("div", aa, [I("div", { innerHTML: s.value }, null, 8, oa), j(h) && j(m) ? (f(), k("div", sa, [j(d) ? (f(), N(Ri, {
2899
+ }), I("span", aa, D(j(a).customBlocks.renderError), 1)])) : (f(), k("div", oa, [I("div", { innerHTML: s.value }, null, 8, sa), j(h) && j(m) ? (f(), k("div", ca, [j(d) ? (f(), N(zi, {
2931
2900
  key: 1,
2932
2901
  class: "tpl:w-48"
2933
2902
  })) : (f(), k("button", {
@@ -2935,16 +2904,16 @@ var ea = { class: "tpl:w-full" }, ta = {
2935
2904
  type: "button",
2936
2905
  class: "tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2 tpl:text-sm tpl:font-semibold tpl:shadow-sm tpl:transition-all tpl:duration-150 hover:tpl:border-[var(--tpl-primary)] hover:tpl:shadow-md tpl:bg-[var(--tpl-primary-light)] tpl:text-[var(--tpl-primary-hover)]",
2937
2906
  onClick: t[0] ||= M((...e) => j(p) && j(p)(...e), ["stop"])
2938
- }, [l.value?.icon ? (f(), N(Ni, {
2907
+ }, [l.value?.icon ? (f(), N(Pi, {
2939
2908
  key: 0,
2940
2909
  icon: l.value.icon,
2941
2910
  size: 16
2942
- }, null, 8, ["icon"])) : A("", !0), z(" " + D(l.value?.dataSource?.label || j(a).customBlocks.dataSource.fetchButton), 1)]))])) : A("", !0)])) : (f(), k("div", ta, [V(j(mi), {
2911
+ }, null, 8, ["icon"])) : A("", !0), z(" " + D(l.value?.dataSource?.label || j(a).customBlocks.dataSource.fetchButton), 1)]))])) : A("", !0)])) : (f(), k("div", na, [V(j(hi), {
2943
2912
  size: 24,
2944
2913
  class: "tpl:text-[var(--tpl-warning)]"
2945
- }), I("span", na, D(j(a).customBlocks.definitionNotFound), 1)]))]));
2914
+ }), I("span", ra, D(j(a).customBlocks.definitionNotFound), 1)]))]));
2946
2915
  }
2947
- }), la = { class: "tpl:w-full" }, ua = /* @__PURE__ */ B({
2916
+ }), ua = { class: "tpl:w-full" }, da = /* @__PURE__ */ B({
2948
2917
  __name: "DividerBlock",
2949
2918
  props: {
2950
2919
  block: {},
@@ -2956,18 +2925,18 @@ var ea = { class: "tpl:w-full" }, ta = {
2956
2925
  width: t.block.width === "full" ? "100%" : `${t.block.width}px`,
2957
2926
  margin: t.block.width === "full" ? "0" : "0 auto"
2958
2927
  }));
2959
- return (e, t) => (f(), k("div", la, [I("hr", {
2928
+ return (e, t) => (f(), k("div", ua, [I("hr", {
2960
2929
  class: "tpl:m-0 tpl:border-none",
2961
2930
  style: L(n.value)
2962
2931
  }, null, 4)]));
2963
2932
  }
2964
- }), da = { class: "tpl:w-full" }, fa = { class: "tpl:flex tpl:min-h-[80px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)]" }, pa = {
2933
+ }), fa = { class: "tpl:w-full" }, pa = { class: "tpl:flex tpl:min-h-[80px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)]" }, ma = {
2965
2934
  key: 0,
2966
2935
  class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]"
2967
- }, ma = {
2936
+ }, ha = {
2968
2937
  key: 1,
2969
2938
  class: "tpl:text-sm tpl:text-[var(--tpl-text-dim)]"
2970
- }, ha = /* @__PURE__ */ B({
2939
+ }, ga = /* @__PURE__ */ B({
2971
2940
  __name: "HtmlBlock",
2972
2941
  props: {
2973
2942
  block: {},
@@ -2975,15 +2944,15 @@ var ea = { class: "tpl:w-full" }, ta = {
2975
2944
  },
2976
2945
  setup(e) {
2977
2946
  let t = e, { t: n } = Y(), r = O(() => t.block.content.trim().length > 0);
2978
- return (e, t) => (f(), k("div", da, [I("div", fa, [V(j($r), {
2947
+ return (e, t) => (f(), k("div", fa, [I("div", pa, [V(j(ei), {
2979
2948
  size: 24,
2980
2949
  class: "tpl:text-[var(--tpl-text-dim)]"
2981
- }), r.value ? (f(), k("span", pa, D(j(n).html.preview), 1)) : (f(), k("span", ma, D(j(n).html.empty), 1))])]));
2950
+ }), r.value ? (f(), k("span", ma, D(j(n).html.preview), 1)) : (f(), k("span", ha, D(j(n).html.empty), 1))])]));
2982
2951
  }
2983
2952
  });
2984
2953
  //#endregion
2985
2954
  //#region src/composables/useAliveFlag.ts
2986
- function ga() {
2955
+ function _a() {
2987
2956
  let e = { alive: !0 };
2988
2957
  return re(() => {
2989
2958
  e.alive = !1;
@@ -2991,13 +2960,13 @@ function ga() {
2991
2960
  }
2992
2961
  //#endregion
2993
2962
  //#region src/components/blocks/ImageBlock.vue?vue&type=script&setup=true&lang.ts
2994
- var _a = ["href"], va = ["src", "alt"], ya = ["src", "alt"], ba = {
2963
+ var va = ["href"], ya = ["src", "alt"], ba = ["src", "alt"], xa = {
2995
2964
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
2996
2965
  style: { opacity: "0.7" }
2997
- }, xa = ["href"], Sa = ["src", "alt"], Ca = ["src", "alt"], wa = {
2966
+ }, Sa = ["href"], Ca = ["src", "alt"], wa = ["src", "alt"], Ta = {
2998
2967
  key: 3,
2999
2968
  class: "tpl:flex tpl:min-h-[100px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-sm tpl:border-[var(--tpl-border-light)] tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-dim)]"
3000
- }, Ta = ["aria-label"], Ea = { key: 1 }, Da = /* @__PURE__ */ B({
2969
+ }, Ea = ["aria-label"], Da = { key: 1 }, Oa = /* @__PURE__ */ B({
3001
2970
  __name: "ImageBlock",
3002
2971
  props: {
3003
2972
  block: {},
@@ -3005,7 +2974,7 @@ var _a = ["href"], va = ["src", "alt"], ya = ["src", "alt"], ba = {
3005
2974
  },
3006
2975
  emits: ["update"],
3007
2976
  setup(e, { emit: t }) {
3008
- let n = e, r = t, { t: i } = Y(), { syntax: a } = Gi(), o = v(Qn, null), s = O(() => !!o), c = ga();
2977
+ let n = e, r = t, { t: i } = Y(), { syntax: a } = Ki(), o = v($n, null), s = O(() => !!o), c = _a();
3009
2978
  async function l() {
3010
2979
  let e = await o?.({ accept: ["images"] });
3011
2980
  if (c.alive && e) {
@@ -3038,22 +3007,22 @@ var _a = ["href"], va = ["src", "alt"], ya = ["src", "alt"], ba = {
3038
3007
  src: e.block.placeholderUrl,
3039
3008
  alt: e.block.alt || j(i).image.altTextPlaceholder,
3040
3009
  style: L(d.value)
3041
- }, null, 12, va)], 8, _a)) : (f(), k("img", {
3010
+ }, null, 12, ya)], 8, va)) : (f(), k("img", {
3042
3011
  key: 1,
3043
3012
  class: "tpl:border-0",
3044
3013
  src: e.block.placeholderUrl,
3045
3014
  alt: e.block.alt,
3046
3015
  style: L(d.value)
3047
- }, null, 12, ya))], 64)) : e.block.src && p.value ? (f(), k("div", {
3016
+ }, null, 12, ba))], 64)) : e.block.src && p.value ? (f(), k("div", {
3048
3017
  key: 1,
3049
3018
  class: "tpl:!flex tpl:min-h-[120px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-center tpl:bg-[var(--tpl-bg-elevated)]",
3050
3019
  style: L([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, d.value])
3051
- }, [V(j(ci), {
3020
+ }, [V(j(li), {
3052
3021
  size: 32,
3053
3022
  "stroke-width": 1.5,
3054
3023
  class: "tpl:text-[var(--tpl-primary)]",
3055
3024
  style: { opacity: "0.5" }
3056
- }), I("span", ba, D(e.block.src), 1)], 4)) : e.block.src ? (f(), k(R, { key: 2 }, [e.block.linkUrl ? (f(), k("a", {
3025
+ }), I("span", xa, D(e.block.src), 1)], 4)) : e.block.src ? (f(), k(R, { key: 2 }, [e.block.linkUrl ? (f(), k("a", {
3057
3026
  key: 0,
3058
3027
  href: e.block.linkUrl,
3059
3028
  target: "_blank",
@@ -3065,26 +3034,26 @@ var _a = ["href"], va = ["src", "alt"], ya = ["src", "alt"], ba = {
3065
3034
  src: e.block.src,
3066
3035
  alt: e.block.alt || j(i).image.altTextPlaceholder,
3067
3036
  style: L(d.value)
3068
- }, null, 12, Sa)], 8, xa)) : (f(), k("img", {
3037
+ }, null, 12, Ca)], 8, Sa)) : (f(), k("img", {
3069
3038
  key: 1,
3070
3039
  class: "tpl:border-0",
3071
3040
  src: e.block.src,
3072
3041
  alt: e.block.alt,
3073
3042
  style: L(d.value)
3074
- }, null, 12, Ca))], 64)) : (f(), k("div", wa, [s.value ? (f(), k("button", {
3043
+ }, null, 12, wa))], 64)) : (f(), k("div", Ta, [s.value ? (f(), k("button", {
3075
3044
  key: 0,
3076
3045
  "aria-label": j(i).image.browseMedia,
3077
3046
  class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:rounded-md tpl:border tpl:px-3 tpl:py-2 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-150 tpl:cursor-pointer tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-primary)] tpl:bg-[var(--tpl-bg)]",
3078
3047
  onClick: M(l, ["stop"])
3079
- }, [V(j(ci), {
3048
+ }, [V(j(li), {
3080
3049
  size: 14,
3081
3050
  "stroke-width": 1.5
3082
- }), z(" " + D(j(i).image.browseMedia), 1)], 8, Ta)) : (f(), k("span", Ea, D(j(i).image.clickToAdd), 1))]))], 4));
3051
+ }), z(" " + D(j(i).image.browseMedia), 1)], 8, Ea)) : (f(), k("span", Da, D(j(i).image.clickToAdd), 1))]))], 4));
3083
3052
  }
3084
- }), Oa = { class: "tpl:w-full" }, ka = ["href"], Aa = {
3053
+ }), ka = { class: "tpl:w-full" }, Aa = ["href"], ja = {
3085
3054
  key: 1,
3086
3055
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:text-sm tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text-dim)]"
3087
- }, ja = /* @__PURE__ */ B({
3056
+ }, Ma = /* @__PURE__ */ B({
3088
3057
  __name: "MenuBlock",
3089
3058
  props: {
3090
3059
  block: {},
@@ -3103,7 +3072,7 @@ var _a = ["href"], va = ["src", "alt"], ya = ["src", "alt"], ba = {
3103
3072
  function a(e) {
3104
3073
  return e || t.block.linkColor || t.block.color;
3105
3074
  }
3106
- return (t, o) => (f(), k("div", Oa, [i.value ? (f(), k("div", {
3075
+ return (t, o) => (f(), k("div", ka, [i.value ? (f(), k("div", {
3107
3076
  key: 0,
3108
3077
  style: L(r.value)
3109
3078
  }, [(f(!0), k(R, null, h(e.block.items, (t, n) => (f(), k(R, { key: t.id }, [I("a", {
@@ -3115,15 +3084,15 @@ var _a = ["href"], va = ["src", "alt"], ya = ["src", "alt"], ba = {
3115
3084
  textDecoration: t.underline ? "underline" : "none"
3116
3085
  }),
3117
3086
  onClick: o[0] ||= M(() => {}, ["prevent"])
3118
- }, D(t.text || "..."), 13, ka), n < e.block.items.length - 1 ? (f(), k("span", {
3087
+ }, D(t.text || "..."), 13, Aa), n < e.block.items.length - 1 ? (f(), k("span", {
3119
3088
  key: 0,
3120
3089
  style: L({
3121
3090
  color: e.block.separatorColor,
3122
3091
  padding: `0 ${e.block.spacing}px`
3123
3092
  })
3124
- }, D(e.block.separator), 5)) : A("", !0)], 64))), 128))], 4)) : (f(), k("div", Aa, [V(j(fi), { size: 16 }), I("span", null, D(j(n).menu.addLinks), 1)]))]));
3093
+ }, D(e.block.separator), 5)) : A("", !0)], 64))), 128))], 4)) : (f(), k("div", ja, [V(j(pi), { size: 16 }), I("span", null, D(j(n).menu.addLinks), 1)]))]));
3125
3094
  }
3126
- }), Ma = new Set([
3095
+ }), Na = new Set([
3127
3096
  "http",
3128
3097
  "https",
3129
3098
  "mailto",
@@ -3133,7 +3102,7 @@ var _a = ["href"], va = ["src", "alt"], ya = ["src", "alt"], ba = {
3133
3102
  "sms",
3134
3103
  "xmpp",
3135
3104
  "cid"
3136
- ]), Na = new Set([
3105
+ ]), Pa = new Set([
3137
3106
  "SCRIPT",
3138
3107
  "STYLE",
3139
3108
  "IFRAME",
@@ -3143,7 +3112,7 @@ var _a = ["href"], va = ["src", "alt"], ya = ["src", "alt"], ba = {
3143
3112
  "META",
3144
3113
  "BASE",
3145
3114
  "FORM"
3146
- ]), Pa = new Set([
3115
+ ]), Fa = new Set([
3147
3116
  "href",
3148
3117
  "xlink:href",
3149
3118
  "formaction",
@@ -3152,16 +3121,16 @@ var _a = ["href"], va = ["src", "alt"], ya = ["src", "alt"], ba = {
3152
3121
  "background",
3153
3122
  "poster"
3154
3123
  ]);
3155
- function Fa(e, t) {
3124
+ function Ia(e, t) {
3156
3125
  let n = e.replace(/[\t\n\r]/g, "").replace(/^[\u0000-\u0020]+/, "").trimEnd();
3157
3126
  if (!n || n.startsWith("#")) return !0;
3158
3127
  let r = /^([a-z][a-z0-9+.-]*):/i.exec(n);
3159
3128
  if (!r) return !0;
3160
3129
  let i = r[1].toLowerCase();
3161
- return Ma.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
3130
+ return Na.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
3162
3131
  }
3163
- function Ia(e) {
3164
- if (Na.has(e.tagName)) {
3132
+ function La(e) {
3133
+ if (Pa.has(e.tagName)) {
3165
3134
  e.remove();
3166
3135
  return;
3167
3136
  }
@@ -3173,29 +3142,29 @@ function Ia(e) {
3173
3142
  e.removeAttribute(n);
3174
3143
  continue;
3175
3144
  }
3176
- if (Pa.has(t)) {
3177
- Fa(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
3145
+ if (Fa.has(t)) {
3146
+ Ia(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
3178
3147
  continue;
3179
3148
  }
3180
3149
  if (t === "src") {
3181
- Fa(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
3150
+ Ia(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
3182
3151
  continue;
3183
3152
  }
3184
3153
  t === "srcdoc" && e.removeAttribute(n);
3185
3154
  }
3186
3155
  let n = Array.from(e.children);
3187
- for (let e of n) Ia(e);
3156
+ for (let e of n) La(e);
3188
3157
  }
3189
- function La(e) {
3158
+ function Ra(e) {
3190
3159
  if (typeof DOMParser > "u") return e;
3191
3160
  let t = new DOMParser().parseFromString(`<!doctype html><body>${e}</body>`, "text/html").body, n = Array.from(t.children);
3192
- for (let e of n) Ia(e);
3161
+ for (let e of n) La(e);
3193
3162
  return t.innerHTML;
3194
3163
  }
3195
3164
  //#endregion
3196
3165
  //#region src/composables/useEditableTextBlock.ts
3197
- function Ra(e) {
3198
- let t = v(qn, []), { syntax: n } = Gi(), r = O(() => La(xt(_t(e(), t), n))), i = C(!1), a = C(null), { top: o, left: s } = En(a), c = O(() => ({
3166
+ function za(e) {
3167
+ let t = v(Jn, []), { syntax: n } = Ki(), r = O(() => Ra(xt(_t(e(), t), n))), i = C(!1), a = C(null), { top: o, left: s } = En(a), c = O(() => ({
3199
3168
  top: o.value - 8,
3200
3169
  left: s.value
3201
3170
  }));
@@ -3216,14 +3185,14 @@ function Ra(e) {
3216
3185
  }
3217
3186
  //#endregion
3218
3187
  //#region src/components/blocks/ParagraphBlock.vue?vue&type=script&setup=true&lang.ts
3219
- var za = ["innerHTML"], Ba = /* @__PURE__ */ B({
3188
+ var Ba = ["innerHTML"], Va = /* @__PURE__ */ B({
3220
3189
  __name: "ParagraphBlock",
3221
3190
  props: {
3222
3191
  block: {},
3223
3192
  viewport: {}
3224
3193
  },
3225
3194
  setup(e) {
3226
- let t = e, n = T(() => import("./ParagraphEditor-B3az9xuj.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = Ra(() => t.block.content);
3195
+ let t = e, n = T(() => import("./ParagraphEditor-y1kGJRBX.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = za(() => t.block.content);
3227
3196
  return (t, l) => (f(), k("div", {
3228
3197
  ref_key: "blockRef",
3229
3198
  ref: i,
@@ -3242,19 +3211,19 @@ var za = ["innerHTML"], Ba = /* @__PURE__ */ B({
3242
3211
  key: 1,
3243
3212
  class: "tpl-text-content tpl:outline-none [&_a]:tpl:underline [&_li]:tpl:my-1 [&_ol]:tpl:my-2 [&_ol]:tpl:pl-6 [&_p]:tpl:m-0 [&_p]:tpl:mb-2 [&_p:last-child]:tpl:mb-0 [&_s]:tpl:line-through [&_sub]:tpl:align-sub [&_sub]:tpl:text-[0.75em] [&_sup]:tpl:align-super [&_sup]:tpl:text-[0.75em] [&_ul]:tpl:my-2 [&_ul]:tpl:pl-6",
3244
3213
  innerHTML: j(o)
3245
- }, null, 8, za))], 544));
3214
+ }, null, 8, Ba))], 544));
3246
3215
  }
3247
3216
  });
3248
3217
  //#endregion
3249
3218
  //#region src/utils/blockComponentResolver.ts
3250
- function Va(e, t, n) {
3219
+ function Ha(e, t, n) {
3251
3220
  if (t) {
3252
3221
  let n = t.getComponent(e);
3253
3222
  if (n) return n;
3254
3223
  }
3255
3224
  return n[e.type] ?? null;
3256
3225
  }
3257
- function Ha(e) {
3226
+ function Ua(e) {
3258
3227
  let { padding: t, backgroundColor: n } = e.styles;
3259
3228
  return {
3260
3229
  padding: `${t.top}px ${t.right}px ${t.bottom}px ${t.left}px`,
@@ -3263,20 +3232,20 @@ function Ha(e) {
3263
3232
  }
3264
3233
  //#endregion
3265
3234
  //#region src/components/blocks/BlockWrapper.vue?vue&type=script&setup=true&lang.ts
3266
- var Ua = ["data-block-id", "data-block-type"], Wa = ["aria-label"], Ga = [
3235
+ var Wa = ["data-block-id", "data-block-type"], Ga = ["aria-label"], Ka = [
3267
3236
  "aria-label",
3268
3237
  "aria-pressed",
3269
3238
  "title"
3270
- ], Ka = ["aria-label", "title"], qa = ["aria-label", "title"], Ja = ["aria-label", "title"], Ya = {
3239
+ ], qa = ["aria-label", "title"], Ja = ["aria-label", "title"], Ya = ["aria-label", "title"], Xa = {
3271
3240
  key: 1,
3272
3241
  class: "tpl-block-hidden-overlay tpl:pointer-events-none tpl:absolute tpl:inset-0 tpl:z-[5] tpl:flex tpl:items-center tpl:justify-center tpl:rounded-sm"
3273
- }, Xa = { class: "tpl:flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-2 tpl:py-1 tpl:text-[10px] tpl:font-medium tpl:bg-[var(--tpl-bg-elevated)] tpl:text-[var(--tpl-text-muted)] tpl:shadow-[var(--tpl-shadow-sm)]" }, Za = {
3242
+ }, Za = { class: "tpl:flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-2 tpl:py-1 tpl:text-[10px] tpl:font-medium tpl:bg-[var(--tpl-bg-elevated)] tpl:text-[var(--tpl-text-muted)] tpl:shadow-[var(--tpl-shadow-sm)]" }, Qa = {
3274
3243
  key: 2,
3275
3244
  class: "tpl:absolute tpl:-left-1 tpl:top-1/2 tpl:z-[5] tpl:-translate-x-full tpl:-translate-y-1/2"
3276
- }, Qa = ["aria-label", "title"], $a = {
3245
+ }, $a = ["aria-label", "title"], eo = {
3277
3246
  key: 3,
3278
3247
  class: "tpl:absolute tpl:-right-1 tpl:-top-1 tpl:z-[5] tpl:translate-x-full"
3279
- }, eo = ["aria-label"], to = /*#__PURE__*/ Pi(/* @__PURE__ */ B({
3248
+ }, to = ["aria-label"], no = /*#__PURE__*/ Fi(/* @__PURE__ */ B({
3280
3249
  __name: "BlockWrapper",
3281
3250
  props: {
3282
3251
  block: {},
@@ -3286,7 +3255,7 @@ var Ua = ["data-block-id", "data-block-type"], Wa = ["aria-label"], Ga = [
3286
3255
  },
3287
3256
  emits: ["select"],
3288
3257
  setup(e, { emit: t }) {
3289
- let n = T(() => import("./BlockIssueBadge-ClwC6oSs.js")), r = e, i = t, { t: a, format: s } = Y(), c = v(nr, null), l = C(null), u = O(() => c?.liftedBlockId.value === r.block.id), d = O(() => u.value ? s(a.blockActions.dragLifted, { block: r.block.type }) : a.blockActions.drag);
3258
+ let n = T(() => import("./BlockIssueBadge-DjnFAeWq.js")), r = e, i = t, { t: a, format: s } = Y(), c = v(rr, null), l = C(null), u = O(() => c?.liftedBlockId.value === r.block.id), d = O(() => u.value ? s(a.blockActions.dragLifted, { block: r.block.type }) : a.blockActions.drag);
3290
3259
  async function p() {
3291
3260
  await m(), l.value?.focus();
3292
3261
  }
@@ -3312,8 +3281,8 @@ var Ua = ["data-block-id", "data-block-type"], Wa = ["aria-label"], Ga = [
3312
3281
  let g = O(() => !r.viewport || !r.block.visibility ? !1 : r.block.visibility[r.viewport] === !1), _ = O(() => r.previewMode === !0 && g.value), y = O(() => r.viewport ? {
3313
3282
  desktop: a.viewport.desktop,
3314
3283
  mobile: a.viewport.mobile
3315
- }[r.viewport] ?? r.viewport : ""), b = O(() => !!r.block.displayCondition), x = v(Rn, null), S = v(zn, null), w = v(tr, {}), ee = O(() => !!w.savedModules), E = O(() => w.comments?.getBlockCount(r.block.id) ?? 0), te = O(() => {
3316
- let e = Ha(r.block);
3284
+ }[r.viewport] ?? r.viewport : ""), b = O(() => !!r.block.displayCondition), x = v(Rn, null), S = v(zn, null), w = v(nr, {}), ee = O(() => !!w.savedModules), E = O(() => w.comments?.getBlockCount(r.block.id) ?? 0), te = O(() => {
3285
+ let e = Ua(r.block);
3317
3286
  return {
3318
3287
  padding: e.padding,
3319
3288
  backgroundColor: e.backgroundColor
@@ -3361,90 +3330,90 @@ var Ua = ["data-block-id", "data-block-type"], Wa = ["aria-label"], Ga = [
3361
3330
  "aria-keyshortcuts": "Space Enter ArrowUp ArrowDown Escape",
3362
3331
  title: j(a).blockActions.drag,
3363
3332
  onKeydown: h
3364
- }, [V(j(oi), {
3333
+ }, [V(j(si), {
3365
3334
  size: 14,
3366
3335
  "stroke-width": 1.5
3367
- })], 40, Ga),
3336
+ })], 40, Ka),
3368
3337
  I("button", {
3369
3338
  class: "tpl-block-action-btn tpl:flex tpl:size-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-sm tpl:border-none tpl:transition-colors tpl:duration-150",
3370
3339
  "aria-label": j(a).blockActions.duplicate,
3371
3340
  title: j(a).blockActions.duplicate,
3372
3341
  onClick: M(N, ["stop"])
3373
- }, [V(j(ei), {
3342
+ }, [V(j(ti), {
3374
3343
  size: 14,
3375
3344
  "stroke-width": 1.5
3376
- })], 8, Ka),
3345
+ })], 8, qa),
3377
3346
  ee.value ? (f(), k("button", {
3378
3347
  key: 0,
3379
3348
  class: "tpl-block-action-btn tpl:flex tpl:size-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-sm tpl:border-none tpl:transition-colors tpl:duration-150",
3380
3349
  "aria-label": j(a).blockActions.saveAsModule,
3381
3350
  title: j(a).blockActions.saveAsModule,
3382
3351
  onClick: M(ie, ["stop"])
3383
- }, [V(j(Ur), {
3352
+ }, [V(j(Wr), {
3384
3353
  size: 14,
3385
3354
  "stroke-width": 1.5
3386
- })], 8, qa)) : A("", !0),
3355
+ })], 8, Ja)) : A("", !0),
3387
3356
  I("button", {
3388
3357
  class: "tpl-block-action-btn tpl-block-delete-btn tpl:flex tpl:size-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-sm tpl:border-none tpl:transition-colors tpl:duration-150",
3389
3358
  "aria-label": j(a).blockActions.delete,
3390
3359
  title: j(a).blockActions.delete,
3391
3360
  onClick: M(re, ["stop"])
3392
- }, [V(j(wi), {
3361
+ }, [V(j(Ti), {
3393
3362
  size: 14,
3394
3363
  "stroke-width": 1.5
3395
- })], 8, Ja)
3396
- ], 8, Wa)) : A("", !0),
3397
- g.value ? (f(), k("div", Ya, [I("span", Xa, [V(j(ti), {
3364
+ })], 8, Ya)
3365
+ ], 8, Ga)) : A("", !0),
3366
+ g.value ? (f(), k("div", Xa, [I("span", Za, [V(j(ni), {
3398
3367
  size: 12,
3399
3368
  "stroke-width": 1.5
3400
3369
  }), z(" " + D(j(s)(j(a).blockActions.hiddenOnViewport, { viewport: y.value })), 1)])])) : A("", !0),
3401
- b.value && !g.value ? (f(), k("div", Za, [I("button", {
3370
+ b.value && !g.value ? (f(), k("div", Qa, [I("button", {
3402
3371
  class: "tpl-condition-toggle tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1 tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-bg-elevated)] tpl:text-[var(--tpl-primary)] tpl:border tpl:border-[var(--tpl-border)]",
3403
3372
  "aria-label": j(a).blockActions.conditionToggle,
3404
3373
  title: e.block.displayCondition?.label,
3405
3374
  onClick: M(P, ["stop"])
3406
- }, [V(j(ai), {
3375
+ }, [V(j(oi), {
3407
3376
  size: 12,
3408
3377
  "stroke-width": 2
3409
- })], 8, Qa)])) : A("", !0),
3410
- E.value > 0 && !g.value ? (f(), k("div", $a, [I("button", {
3378
+ })], 8, $a)])) : A("", !0),
3379
+ E.value > 0 && !g.value ? (f(), k("div", eo, [I("button", {
3411
3380
  class: "tpl-comment-indicator tpl:flex tpl:min-h-6 tpl:min-w-6 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-0.5 tpl:rounded-full tpl:border-none tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-semibold tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-primary-light)] tpl:text-[var(--tpl-primary)]",
3412
3381
  "aria-label": j(s)(j(a).blockActions.comments, { count: String(E.value) }),
3413
3382
  onClick: r[0] ||= M((t) => j(w).comments?.openForBlock(e.block.id), ["stop"])
3414
- }, [V(j(di), {
3383
+ }, [V(j(fi), {
3415
3384
  size: 12,
3416
3385
  "stroke-width": 2.5
3417
- }), z(" " + D(E.value), 1)], 8, eo)])) : A("", !0),
3386
+ }), z(" " + D(E.value), 1)], 8, to)])) : A("", !0),
3418
3387
  I("div", {
3419
3388
  class: "tpl-block-content",
3420
3389
  style: L(te.value)
3421
3390
  }, [o(t.$slots, "default", {}, void 0, !0)], 4)
3422
- ], 10, Ua));
3391
+ ], 10, Wa));
3423
3392
  }
3424
3393
  }), [["__scopeId", "data-v-4a48371d"]]);
3425
3394
  //#endregion
3426
3395
  //#region src/utils/unwrapParagraph.ts
3427
- function no(e) {
3396
+ function ro(e) {
3428
3397
  let t = e.match(/^\s*<p\b[^>]*>([\s\S]*)<\/p>\s*$/);
3429
3398
  return !t || /<\/p>\s*<p\b/i.test(t[1]) ? e : t[1];
3430
3399
  }
3431
3400
  //#endregion
3432
3401
  //#region src/components/blocks/TitleBlock.vue
3433
- var ro = /* @__PURE__ */ B({
3402
+ var io = /* @__PURE__ */ B({
3434
3403
  __name: "TitleBlock",
3435
3404
  props: {
3436
3405
  block: {},
3437
3406
  viewport: {}
3438
3407
  },
3439
3408
  setup(e) {
3440
- let t = e, n = T(() => import("./TitleEditor-jxOFe6Q6.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = Ra(() => t.block.content), l = O(() => {
3409
+ let t = e, n = T(() => import("./TitleEditor-CMzzOPye.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = za(() => t.block.content), l = O(() => {
3441
3410
  let e = {
3442
3411
  fontSize: `${pe[t.block.level]}px`,
3443
3412
  color: t.block.color,
3444
3413
  textAlign: t.block.textAlign
3445
3414
  };
3446
3415
  return t.block.fontFamily && (e.fontFamily = t.block.fontFamily), e;
3447
- }), u = O(() => `h${t.block.level}`), p = O(() => no(o.value));
3416
+ }), u = O(() => `h${t.block.level}`), p = O(() => ro(o.value));
3448
3417
  return (t, o) => (f(), k("div", {
3449
3418
  ref_key: "blockRef",
3450
3419
  ref: i,
@@ -3467,11 +3436,11 @@ var ro = /* @__PURE__ */ B({
3467
3436
  innerHTML: p.value
3468
3437
  }, null, 8, ["innerHTML"]))], 36));
3469
3438
  }
3470
- }), io = { class: "tpl:w-full" }, ao = { class: "tpl:flex tpl:gap-0" }, oo = {
3439
+ }), ao = { class: "tpl:w-full" }, oo = { class: "tpl:flex tpl:gap-0" }, so = {
3471
3440
  key: 0,
3472
3441
  "data-testid": "section-drop-hint",
3473
3442
  class: "tpl:pointer-events-none tpl:absolute tpl:inset-0 tpl:flex tpl:items-center tpl:justify-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
3474
- }, so = /* @__PURE__ */ B({
3443
+ }, co = /* @__PURE__ */ B({
3475
3444
  __name: "SectionBlock",
3476
3445
  props: {
3477
3446
  block: {},
@@ -3479,12 +3448,12 @@ var ro = /* @__PURE__ */ B({
3479
3448
  },
3480
3449
  setup(e) {
3481
3450
  let t = {
3482
- title: ro,
3483
- paragraph: Ba,
3484
- image: Da,
3485
- button: Nr,
3486
- divider: ua,
3487
- custom: ca
3451
+ title: io,
3452
+ paragraph: Va,
3453
+ image: Oa,
3454
+ button: Pr,
3455
+ divider: da,
3456
+ custom: la
3488
3457
  }, n = e, { t: r } = Y(), i = J(In, "SectionBlock"), a = v(zn, null), o = v(Wn, null), s = O(() => {
3489
3458
  switch (n.block.columns) {
3490
3459
  case "2": return ["50%", "50%"];
@@ -3511,7 +3480,7 @@ var ro = /* @__PURE__ */ B({
3511
3480
  a[e] = r, i.updateBlock(n.block.id, { children: a });
3512
3481
  }
3513
3482
  function m(e) {
3514
- return Va(e, o, t);
3483
+ return Ha(e, o, t);
3515
3484
  }
3516
3485
  function g(e, t) {
3517
3486
  e.type === "custom" && i.updateBlock(e.id, {
@@ -3519,7 +3488,7 @@ var ro = /* @__PURE__ */ B({
3519
3488
  dataSourceFetched: t.dataSourceFetched
3520
3489
  });
3521
3490
  }
3522
- return (t, n) => (f(), k("div", io, [I("div", ao, [(f(!0), k(R, null, h(l.value, (t, n) => (f(), k("div", {
3491
+ return (t, n) => (f(), k("div", ao, [I("div", oo, [(f(!0), k(R, null, h(l.value, (t, n) => (f(), k("div", {
3523
3492
  key: n,
3524
3493
  class: F(["tpl:relative tpl:min-h-[60px] tpl:rounded", u(n).length === 0 ? "tpl:border tpl:border-dashed tpl:border-[var(--tpl-border)]" : ""]),
3525
3494
  style: L({ width: s.value[n] })
@@ -3541,7 +3510,7 @@ var ro = /* @__PURE__ */ B({
3541
3510
  class: "tpl:min-h-[60px]",
3542
3511
  "onUpdate:modelValue": (e) => p(n, e)
3543
3512
  }, {
3544
- default: b(() => [(f(!0), k(R, null, h(u(n), (t) => c((f(), k("div", { key: t.id }, [V(to, {
3513
+ default: b(() => [(f(!0), k(R, null, h(u(n), (t) => c((f(), k("div", { key: t.id }, [V(no, {
3545
3514
  block: t,
3546
3515
  "is-selected": j(i).state.selectedBlockId === t.id,
3547
3516
  viewport: e.viewport,
@@ -3551,11 +3520,13 @@ var ro = /* @__PURE__ */ B({
3551
3520
  default: b(() => [(f(), N(d(m(t)), {
3552
3521
  block: t,
3553
3522
  viewport: e.viewport,
3554
- onFetchData: (e) => g(t, e)
3523
+ onFetchData: (e) => g(t, e),
3524
+ onUpdate: (e) => j(i).updateBlock(t.id, e)
3555
3525
  }, null, 40, [
3556
3526
  "block",
3557
3527
  "viewport",
3558
- "onFetchData"
3528
+ "onFetchData",
3529
+ "onUpdate"
3559
3530
  ]))]),
3560
3531
  _: 2
3561
3532
  }, 1032, [
@@ -3570,9 +3541,9 @@ var ro = /* @__PURE__ */ B({
3570
3541
  "model-value",
3571
3542
  "group",
3572
3543
  "onUpdate:modelValue"
3573
- ]), u(n).length === 0 ? (f(), k("div", oo, [I("span", null, D(j(r).section.dropHere), 1)])) : A("", !0)], 6))), 128))])]));
3544
+ ]), u(n).length === 0 ? (f(), k("div", so, [I("span", null, D(j(r).section.dropHere), 1)])) : A("", !0)], 6))), 128))])]));
3574
3545
  }
3575
- }), co = {
3546
+ }), lo = {
3576
3547
  facebook: {
3577
3548
  name: "Facebook",
3578
3549
  color: "#1877F2",
@@ -3653,11 +3624,11 @@ var ro = /* @__PURE__ */ B({
3653
3624
  color: "#1769FF",
3654
3625
  path: "M22 7h-7V5h7v2zm1.726 10c-.442 1.297-2.029 3-5.101 3-3.074 0-5.564-1.729-5.564-5.675 0-3.91 2.325-5.92 5.466-5.92 3.082 0 4.964 1.782 5.375 4.426.078.506.109 1.188.095 2.14H15.97c.13 3.211 3.483 3.312 4.588 2.029h3.168zm-7.686-4h4.965c-.105-1.547-1.136-2.219-2.477-2.219-1.466 0-2.277.768-2.488 2.219zm-9.574 6.988H0V5.021h6.953c5.476.081 5.58 5.444 2.72 6.906 3.461 1.26 3.577 8.061-3.207 8.061zM3 11h3.584c2.508 0 2.906-3-.312-3H3v3zm3.391 3H3v3.016h3.341c3.055 0 2.868-3.016.05-3.016z"
3655
3626
  }
3656
- }, lo = {
3627
+ }, uo = {
3657
3628
  small: 24,
3658
3629
  medium: 32,
3659
3630
  large: 48
3660
- }, uo = [
3631
+ }, fo = [
3661
3632
  "facebook",
3662
3633
  "twitter",
3663
3634
  "instagram",
@@ -3674,11 +3645,11 @@ var ro = /* @__PURE__ */ B({
3674
3645
  "github",
3675
3646
  "dribbble",
3676
3647
  "behance"
3677
- ], fo = [
3648
+ ], po = [
3678
3649
  "width",
3679
3650
  "height",
3680
3651
  "fill"
3681
- ], po = ["d"], mo = /* @__PURE__ */ B({
3652
+ ], mo = ["d"], ho = /* @__PURE__ */ B({
3682
3653
  __name: "SocialIconSvg",
3683
3654
  props: {
3684
3655
  platform: {},
@@ -3686,7 +3657,7 @@ var ro = /* @__PURE__ */ B({
3686
3657
  iconSize: {}
3687
3658
  },
3688
3659
  setup(e) {
3689
- let t = e, n = O(() => co[t.platform]), r = O(() => lo[t.iconSize]), i = O(() => {
3660
+ let t = e, n = O(() => lo[t.platform]), r = O(() => uo[t.iconSize]), i = O(() => {
3690
3661
  let e = {
3691
3662
  display: "inline-flex",
3692
3663
  alignItems: "center",
@@ -3730,12 +3701,12 @@ var ro = /* @__PURE__ */ B({
3730
3701
  viewBox: "0 0 24 24",
3731
3702
  fill: o.value,
3732
3703
  xmlns: "http://www.w3.org/2000/svg"
3733
- }, [I("path", { d: n.value.path }, null, 8, po)], 8, fo))], 4));
3704
+ }, [I("path", { d: n.value.path }, null, 8, mo)], 8, po))], 4));
3734
3705
  }
3735
- }), ho = { class: "tpl:w-full" }, go = ["href"], _o = {
3706
+ }), go = { class: "tpl:w-full" }, _o = ["href"], vo = {
3736
3707
  key: 1,
3737
3708
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:text-sm tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text-dim)]"
3738
- }, vo = /* @__PURE__ */ B({
3709
+ }, yo = /* @__PURE__ */ B({
3739
3710
  __name: "SocialIconsBlock",
3740
3711
  props: {
3741
3712
  block: {},
@@ -3748,7 +3719,7 @@ var ro = /* @__PURE__ */ B({
3748
3719
  gap: `${t.block.spacing}px`,
3749
3720
  justifyContent: t.block.align === "left" ? "flex-start" : t.block.align === "right" ? "flex-end" : "center"
3750
3721
  })), i = O(() => t.block.icons.length > 0);
3751
- return (t, a) => (f(), k("div", ho, [i.value ? (f(), k("div", {
3722
+ return (t, a) => (f(), k("div", go, [i.value ? (f(), k("div", {
3752
3723
  key: 0,
3753
3724
  style: L(r.value)
3754
3725
  }, [(f(!0), k(R, null, h(e.block.icons, (t) => (f(), k("a", {
@@ -3756,7 +3727,7 @@ var ro = /* @__PURE__ */ B({
3756
3727
  href: t.url || "#",
3757
3728
  class: "tpl:cursor-default",
3758
3729
  onClick: a[0] ||= M(() => {}, ["prevent"])
3759
- }, [V(mo, {
3730
+ }, [V(ho, {
3760
3731
  platform: t.platform,
3761
3732
  "icon-style": e.block.iconStyle,
3762
3733
  "icon-size": e.block.iconSize
@@ -3764,16 +3735,16 @@ var ro = /* @__PURE__ */ B({
3764
3735
  "platform",
3765
3736
  "icon-style",
3766
3737
  "icon-size"
3767
- ])], 8, go))), 128))], 4)) : (f(), k("div", _o, [V(j(yi), { size: 16 }), I("span", null, D(j(n).social.addIcons), 1)]))]));
3738
+ ])], 8, _o))), 128))], 4)) : (f(), k("div", vo, [V(j(bi), { size: 16 }), I("span", null, D(j(n).social.addIcons), 1)]))]));
3768
3739
  }
3769
- }), yo = { class: "tpl:w-full" }, bo = {
3740
+ }), bo = { class: "tpl:w-full" }, xo = {
3770
3741
  key: 0,
3771
3742
  class: "tpl:absolute tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-medium",
3772
3743
  style: {
3773
3744
  "background-color": "var(--tpl-bg-hover)",
3774
3745
  color: "var(--tpl-text-dim)"
3775
3746
  }
3776
- }, xo = /* @__PURE__ */ B({
3747
+ }, So = /* @__PURE__ */ B({
3777
3748
  __name: "SpacerBlock",
3778
3749
  props: {
3779
3750
  block: {},
@@ -3785,23 +3756,23 @@ var ro = /* @__PURE__ */ B({
3785
3756
  minHeight: `${t.block.height}px`,
3786
3757
  ...n.state.previewMode ? {} : { borderColor: "var(--tpl-border)" }
3787
3758
  }));
3788
- return (t, i) => (f(), k("div", yo, [I("div", {
3759
+ return (t, i) => (f(), k("div", bo, [I("div", {
3789
3760
  style: L(r.value),
3790
3761
  class: F(["tpl:relative tpl:flex tpl:items-center tpl:justify-center", { "tpl:border-y tpl:border-dashed": !j(n).state.previewMode }])
3791
- }, [j(n).state.previewMode ? A("", !0) : (f(), k("span", bo, D(e.block.height) + "px ", 1))], 6)]));
3762
+ }, [j(n).state.previewMode ? A("", !0) : (f(), k("span", xo, D(e.block.height) + "px ", 1))], 6)]));
3792
3763
  }
3793
- }), So = { class: "tpl:w-full" }, Co = { key: 0 }, wo = [
3764
+ }), Co = { class: "tpl:w-full" }, wo = { key: 0 }, To = [
3794
3765
  "aria-label",
3795
3766
  "data-placeholder",
3796
3767
  "onBlur"
3797
- ], To = [
3768
+ ], Eo = [
3798
3769
  "aria-label",
3799
3770
  "data-placeholder",
3800
3771
  "onBlur"
3801
- ], Eo = {
3772
+ ], Do = {
3802
3773
  key: 1,
3803
3774
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:text-sm tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text-dim)]"
3804
- }, Do = /*#__PURE__*/ Pi(/* @__PURE__ */ B({
3775
+ }, Oo = /*#__PURE__*/ Fi(/* @__PURE__ */ B({
3805
3776
  __name: "TableBlock",
3806
3777
  props: {
3807
3778
  block: {},
@@ -3844,11 +3815,11 @@ var ro = /* @__PURE__ */ B({
3844
3815
  } : n);
3845
3816
  i.updateBlock(n.block.id, { rows: o });
3846
3817
  }
3847
- return (e, n) => (f(), k("div", So, [a.value ? (f(), k("table", {
3818
+ return (e, n) => (f(), k("div", Co, [a.value ? (f(), k("table", {
3848
3819
  key: 0,
3849
3820
  style: L(o.value),
3850
3821
  class: "tpl-table-editable"
3851
- }, [u.value ? (f(), k("thead", Co, [I("tr", null, [(f(!0), k(R, null, h(u.value.cells, (e) => c((f(), k("th", {
3822
+ }, [u.value ? (f(), k("thead", wo, [I("tr", null, [(f(!0), k(R, null, h(u.value.cells, (e) => c((f(), k("th", {
3852
3823
  key: e.id,
3853
3824
  style: L(l.value),
3854
3825
  "aria-label": j(r).table.cellPlaceholder,
@@ -3857,7 +3828,7 @@ var ro = /* @__PURE__ */ B({
3857
3828
  onBlur: (t) => m(u.value.id, e.id, t),
3858
3829
  onKeydown: n[0] ||= E(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
3859
3830
  onClick: M(p, ["stop"])
3860
- }, null, 44, wo)), [[t, e.content]])), 128))])])) : A("", !0), I("tbody", null, [(f(!0), k(R, null, h(d.value, (e) => (f(), k("tr", { key: e.id }, [(f(!0), k(R, null, h(e.cells, (i) => c((f(), k("td", {
3831
+ }, null, 44, To)), [[t, e.content]])), 128))])])) : A("", !0), I("tbody", null, [(f(!0), k(R, null, h(d.value, (e) => (f(), k("tr", { key: e.id }, [(f(!0), k(R, null, h(e.cells, (i) => c((f(), k("td", {
3861
3832
  key: i.id,
3862
3833
  style: L(s.value),
3863
3834
  "aria-label": j(r).table.cellPlaceholder,
@@ -3866,9 +3837,9 @@ var ro = /* @__PURE__ */ B({
3866
3837
  onBlur: (t) => m(e.id, i.id, t),
3867
3838
  onKeydown: n[1] ||= E(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
3868
3839
  onClick: M(p, ["stop"])
3869
- }, null, 44, To)), [[t, i.content]])), 128))]))), 128))])], 4)) : (f(), k("div", Eo, [V(j(Ci), { size: 16 }), I("span", null, D(j(r).table.empty), 1)]))]));
3840
+ }, null, 44, Eo)), [[t, i.content]])), 128))]))), 128))])], 4)) : (f(), k("div", Do, [V(j(wi), { size: 16 }), I("span", null, D(j(r).table.empty), 1)]))]));
3870
3841
  }
3871
- }), [["__scopeId", "data-v-de1a7c76"]]), Oo = /* @__PURE__ */ B({
3842
+ }), [["__scopeId", "data-v-de1a7c76"]]), ko = /* @__PURE__ */ B({
3872
3843
  __name: "VideoPlayButton",
3873
3844
  props: { hoverEffect: {
3874
3845
  type: Boolean,
@@ -3886,7 +3857,7 @@ var ro = /* @__PURE__ */ B({
3886
3857
  });
3887
3858
  //#endregion
3888
3859
  //#region src/utils/videoThumbnail.ts
3889
- function ko(e) {
3860
+ function Ao(e) {
3890
3861
  if (!e) return {
3891
3862
  platform: "unknown",
3892
3863
  videoId: null,
@@ -3918,25 +3889,25 @@ function ko(e) {
3918
3889
  thumbnailUrl: null
3919
3890
  };
3920
3891
  }
3921
- function Ao(e, t) {
3922
- return t || ko(e).thumbnailUrl;
3892
+ function jo(e, t) {
3893
+ return t || Ao(e).thumbnailUrl;
3923
3894
  }
3924
3895
  //#endregion
3925
3896
  //#region src/components/blocks/VideoBlock.vue?vue&type=script&setup=true&lang.ts
3926
- var jo = ["src", "alt"], Mo = {
3897
+ var Mo = ["src", "alt"], No = {
3927
3898
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
3928
3899
  style: { opacity: "0.7" }
3929
- }, No = ["href"], Po = ["src", "alt"], Fo = ["src", "alt"], Io = {
3900
+ }, Po = ["href"], Fo = ["src", "alt"], Io = ["src", "alt"], Lo = {
3930
3901
  key: 3,
3931
3902
  class: "tpl:flex tpl:min-h-[150px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-sm tpl:border-[var(--tpl-border-light)] tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-dim)]"
3932
- }, Lo = /* @__PURE__ */ B({
3903
+ }, Ro = /* @__PURE__ */ B({
3933
3904
  __name: "VideoBlock",
3934
3905
  props: {
3935
3906
  block: {},
3936
3907
  viewport: {}
3937
3908
  },
3938
3909
  setup(e) {
3939
- let t = e, { t: n } = Y(), { syntax: r } = Gi(), i = O(() => vt(t.block.url, r) || vt(t.block.thumbnailUrl, r)), a = O(() => i.value ? null : Ao(t.block.url, t.block.thumbnailUrl)), o = O(() => ({ textAlign: t.block.align })), s = O(() => {
3910
+ let t = e, { t: n } = Y(), { syntax: r } = Ki(), i = O(() => vt(t.block.url, r) || vt(t.block.thumbnailUrl, r)), a = O(() => i.value ? null : jo(t.block.url, t.block.thumbnailUrl)), o = O(() => ({ textAlign: t.block.align })), s = O(() => {
3940
3911
  let e = t.block.align;
3941
3912
  return {
3942
3913
  maxWidth: "100%",
@@ -3957,16 +3928,16 @@ var jo = ["src", "alt"], Mo = {
3957
3928
  class: "tpl:w-full tpl:border-0",
3958
3929
  src: e.block.placeholderUrl,
3959
3930
  alt: e.block.alt
3960
- }, null, 8, jo), V(Oo)], 4)) : i.value ? (f(), k("div", {
3931
+ }, null, 8, Mo), V(ko)], 4)) : i.value ? (f(), k("div", {
3961
3932
  key: 1,
3962
3933
  class: "tpl:relative tpl:!flex tpl:min-h-[150px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-center tpl:bg-[var(--tpl-bg-elevated)]",
3963
3934
  style: L([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, s.value])
3964
- }, [V(j(Oi), {
3935
+ }, [V(j(ki), {
3965
3936
  size: 36,
3966
3937
  "stroke-width": 1.5,
3967
3938
  class: "tpl:text-[var(--tpl-primary)]",
3968
3939
  style: { opacity: "0.5" }
3969
- }), I("span", Mo, D(c.value), 1)], 4)) : a.value ? (f(), k(R, { key: 2 }, [e.block.url ? (f(), k("a", {
3940
+ }), I("span", No, D(c.value), 1)], 4)) : a.value ? (f(), k(R, { key: 2 }, [e.block.url ? (f(), k("a", {
3970
3941
  key: 0,
3971
3942
  href: e.block.url,
3972
3943
  target: "_blank",
@@ -3978,7 +3949,7 @@ var jo = ["src", "alt"], Mo = {
3978
3949
  class: "tpl:w-full tpl:border-0",
3979
3950
  src: a.value,
3980
3951
  alt: e.block.alt
3981
- }, null, 8, Po), V(Oo, { "hover-effect": "" })], 12, No)) : (f(), k("div", {
3952
+ }, null, 8, Fo), V(ko, { "hover-effect": "" })], 12, Po)) : (f(), k("div", {
3982
3953
  key: 1,
3983
3954
  class: "tpl:relative tpl:inline-block",
3984
3955
  style: L(s.value)
@@ -3986,31 +3957,31 @@ var jo = ["src", "alt"], Mo = {
3986
3957
  class: "tpl:w-full tpl:border-0",
3987
3958
  src: a.value,
3988
3959
  alt: e.block.alt
3989
- }, null, 8, Fo), V(Oo)], 4))], 64)) : (f(), k("div", Io, [V(j(Oi), {
3960
+ }, null, 8, Io), V(ko)], 4))], 64)) : (f(), k("div", Lo, [V(j(ki), {
3990
3961
  size: 40,
3991
3962
  "stroke-width": 1.5,
3992
3963
  class: "tpl:text-[var(--tpl-border-light)]"
3993
3964
  }), I("span", null, D(j(n).video.addVideo), 1)]))], 4));
3994
3965
  }
3995
- }), Ro = {
3996
- section: so,
3997
- title: ro,
3998
- paragraph: Ba,
3999
- image: Da,
4000
- button: Nr,
4001
- divider: ua,
4002
- video: Lo,
4003
- social: vo,
4004
- menu: ja,
4005
- table: Do,
4006
- spacer: xo,
4007
- html: ha,
4008
- countdown: T(() => import("./CountdownBlock-CXQnTPVs.js").then((e) => e.n))
3966
+ }), zo = {
3967
+ section: co,
3968
+ title: io,
3969
+ paragraph: Va,
3970
+ image: Oa,
3971
+ button: Pr,
3972
+ divider: da,
3973
+ video: Ro,
3974
+ social: yo,
3975
+ menu: Ma,
3976
+ table: Oo,
3977
+ spacer: So,
3978
+ html: ga,
3979
+ countdown: T(() => import("./CountdownBlock-GRio55a1.js").then((e) => e.n))
4009
3980
  };
4010
- function zo(e) {
3981
+ function Bo(e) {
4011
3982
  let { editor: t, config: n, translations: r, fontsManager: i } = e, { t: a, format: o } = Y(r);
4012
3983
  t.setUiTheme(n.uiTheme ?? "auto");
4013
- let { resolvedTheme: c } = _r(O(() => t.state.uiTheme)), u = C(n.theme ?? {}), { themeStyles: d } = yr({
3984
+ let { resolvedTheme: c } = vr(O(() => t.state.uiTheme)), u = C(n.theme ?? {}), { themeStyles: d } = br({
4014
3985
  themeOverrides: u,
4015
3986
  resolvedTheme: c,
4016
3987
  extraStyles: e.themeExtraStyles
@@ -4035,13 +4006,13 @@ function zo(e) {
4035
4006
  g && (_ = H(f.isNavigating, (e) => {
4036
4007
  e ? g.pause() : g.resume();
4037
4008
  }));
4038
- let v = gr(t, {
4009
+ let v = _r(t, {
4039
4010
  t: a,
4040
4011
  format: o
4041
- }), y = Cr();
4042
- if (Or(y, Ro), n.customBlocks?.length) for (let e of n.customBlocks) y.registerCustom(e, ca);
4012
+ }), y = wr();
4013
+ if (kr(y, zo), n.customBlocks?.length) for (let e of n.customBlocks) y.registerCustom(e, la);
4043
4014
  function b(e) {
4044
- for (let t of e) y.registerCustom(t, ca);
4015
+ for (let t of e) y.registerCustom(t, la);
4045
4016
  }
4046
4017
  let x = Pn();
4047
4018
  if (s() && l(x.dispose), e.containerEl) {
@@ -4052,7 +4023,7 @@ function zo(e) {
4052
4023
  }, { capture: !0 });
4053
4024
  }
4054
4025
  function S(r) {
4055
- x.isActive() && Ar(r, {
4026
+ x.isActive() && jr(r, {
4056
4027
  history: f,
4057
4028
  selectBlock: (e) => t.selectBlock(e),
4058
4029
  getSelectedBlockId: () => t.state.selectedBlockId,
@@ -4063,17 +4034,17 @@ function zo(e) {
4063
4034
  }
4064
4035
  q(document, "keydown", S);
4065
4036
  let w = C(null);
4066
- p(ir, e.editorRoot ?? document), p(ar, w), p(Fn, r), p(In, t), p(Ln, f), p(Rn, m), p(zn, h), p(Bn, i), p(Vn, d), p(Hn, c), p(Un, n.blockDefaults), p(Wn, y), p(Gn, n.customBlocks ?? []), p(Kn, wr(t.content, y));
4037
+ p(ar, e.editorRoot ?? document), p(or, w), p(Fn, r), p(In, t), p(Ln, f), p(Rn, m), p(zn, h), p(Bn, i), p(Vn, d), p(Hn, c), p(Un, n.blockDefaults), p(Wn, y), p(Gn, n.customBlocks ?? []), p(Kn, n.paletteBlocks), p(qn, Tr(t.content, y));
4067
4038
  let ee = pt(n.mergeTags?.syntax);
4068
- p(qn, n.mergeTags?.tags ?? []), p(Jn, ee), p(Yn, n.mergeTags?.onRequest ?? null), p(Xn, n.mergeTags?.autocomplete !== !1), p(Zn, fr()), p(Qn, n.onRequestMedia ?? null), p($n, n.displayConditions?.conditions ?? []), p(er, n.displayConditions?.allowCustom ?? !1), p(tr, e.capabilities ?? {}), p(nr, v);
4069
- let T = pr(n.lint) ? null : mr({
4039
+ p(Jn, n.mergeTags?.tags ?? []), p(Yn, ee), p(Xn, n.mergeTags?.onRequest ?? null), p(Zn, n.mergeTags?.autocomplete !== !1), p(Qn, pr()), p($n, n.onRequestMedia ?? null), p(er, n.displayConditions?.conditions ?? []), p(tr, n.displayConditions?.allowCustom ?? !1), p(nr, e.capabilities ?? {}), p(rr, v);
4040
+ let T = mr(n.lint) ? null : hr({
4070
4041
  content: t.content,
4071
4042
  options: n.lint ?? {},
4072
4043
  updateBlock: t.updateBlock,
4073
4044
  updateSettings: t.updateSettings,
4074
4045
  removeBlock: t.removeBlock
4075
4046
  });
4076
- p(rr, T);
4047
+ p(ir, T);
4077
4048
  function E() {
4078
4049
  _?.(), T?.destroy(), g?.destroy(), f.destroy();
4079
4050
  }
@@ -4097,19 +4068,19 @@ function zo(e) {
4097
4068
  }
4098
4069
  //#endregion
4099
4070
  //#region src/composables/usePopoverRoot.ts
4100
- function Bo() {
4101
- return v(ar, C(null));
4071
+ function Vo() {
4072
+ return v(or, C(null));
4102
4073
  }
4103
4074
  //#endregion
4104
4075
  //#region src/components/TplModal.vue?vue&type=script&setup=true&lang.ts
4105
- var Vo = ["data-tpl-theme"], Ho = /* @__PURE__ */ B({
4076
+ var Ho = ["data-tpl-theme"], Uo = /* @__PURE__ */ B({
4106
4077
  __name: "TplModal",
4107
4078
  props: { visible: { type: Boolean } },
4108
4079
  emits: ["close", "keydown"],
4109
4080
  setup(e, { emit: t }) {
4110
4081
  let n = e, r = t, i = C(null);
4111
- Vi(i, O(() => n.visible));
4112
- let a = v(Hn), s = Bo();
4082
+ Hi(i, O(() => n.visible));
4083
+ let a = v(Hn), s = Vo();
4113
4084
  function c(e) {
4114
4085
  e.key === "Escape" && r("close"), r("keydown", e);
4115
4086
  }
@@ -4138,11 +4109,11 @@ var Vo = ["data-tpl-theme"], Ho = /* @__PURE__ */ B({
4138
4109
  }, [I("div", {
4139
4110
  ref_key: "dialogRef",
4140
4111
  ref: i
4141
- }, [o(t.$slots, "default")], 512)], 40, Vo)) : A("", !0)]),
4112
+ }, [o(t.$slots, "default")], 512)], 40, Ho)) : A("", !0)]),
4142
4113
  _: 3
4143
4114
  })], 8, ["to"])) : A("", !0);
4144
4115
  }
4145
- }), Uo = class e {
4116
+ }), Wo = class e {
4146
4117
  static DEFAULT_BASE_URL = "https://templatical.com";
4147
4118
  accessToken = null;
4148
4119
  expiresAt = null;
@@ -4243,8 +4214,8 @@ var Vo = ["data-tpl-theme"], Ho = /* @__PURE__ */ B({
4243
4214
  return a.status === 401 && (a = await i(await this.refreshToken())), a;
4244
4215
  }
4245
4216
  };
4246
- function Wo(e, t) {
4247
- return e.mode === "direct" ? new Uo({
4217
+ function Go(e, t) {
4218
+ return e.mode === "direct" ? new Wo({
4248
4219
  url: `${(e.baseUrl ?? "https://templatical.com").replace(/\/$/, "")}/api/v1/auth/token`,
4249
4220
  baseUrl: e.baseUrl,
4250
4221
  requestOptions: {
@@ -4258,7 +4229,7 @@ function Wo(e, t) {
4258
4229
  }
4259
4230
  },
4260
4231
  onError: t
4261
- }) : new Uo({
4232
+ }) : new Wo({
4262
4233
  url: e.url,
4263
4234
  baseUrl: e.baseUrl,
4264
4235
  requestOptions: e.requestOptions,
@@ -4270,16 +4241,16 @@ function Wo(e, t) {
4270
4241
  function Z(e, t) {
4271
4242
  return e.replace(/\{(\w+)\}/g, (e, n) => encodeURIComponent(t[n] ?? ""));
4272
4243
  }
4273
- var Go = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${Go}/templates/{template}`, Ko = `${Q}/ai`, qo = `${Go}/media`, Jo = `${qo}/folders`, Yo = `${Go}/saved-modules`, $ = {
4244
+ var Ko = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${Ko}/templates/{template}`, qo = `${Q}/ai`, Jo = `${Ko}/media`, Yo = `${Jo}/folders`, Xo = `${Ko}/saved-modules`, $ = {
4274
4245
  health: "/api/v1/health",
4275
- "projects.config": `${Go}/config`,
4276
- "broadcasting.auth": `${Go}/broadcasting/auth`,
4277
- "templates.store": `${Go}/templates`,
4246
+ "projects.config": `${Ko}/config`,
4247
+ "broadcasting.auth": `${Ko}/broadcasting/auth`,
4248
+ "templates.store": `${Ko}/templates`,
4278
4249
  "templates.show": `${Q}`,
4279
4250
  "templates.update": `${Q}`,
4280
4251
  "templates.destroy": `${Q}`,
4281
4252
  "templates.export": `${Q}/export`,
4282
- "templates.importFromBeefree": `${Go}/templates/import/from-beefree`,
4253
+ "templates.importFromBeefree": `${Ko}/templates/import/from-beefree`,
4283
4254
  "templates.sendTestEmail": `${Q}/send-test-email`,
4284
4255
  "snapshots.index": `${Q}/snapshots`,
4285
4256
  "snapshots.store": `${Q}/snapshots`,
@@ -4290,31 +4261,31 @@ var Go = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${Go}/templates/{te
4290
4261
  "comments.update": `${Q}/comments/{comment}`,
4291
4262
  "comments.destroy": `${Q}/comments/{comment}`,
4292
4263
  "comments.resolve": `${Q}/comments/{comment}/resolve`,
4293
- "ai.generate": `${Ko}/generate`,
4294
- "ai.conversationMessages": `${Ko}/conversation-messages`,
4295
- "ai.suggestions": `${Ko}/suggestions`,
4296
- "ai.rewriteText": `${Ko}/rewrite-text`,
4297
- "ai.score": `${Ko}/score`,
4298
- "ai.fixFinding": `${Ko}/fix-finding`,
4299
- "ai.generateFromDesign": `${Ko}/generate-from-design`,
4300
- "media.upload": `${qo}/upload`,
4301
- "media.browse": `${qo}/browse`,
4302
- "media.delete": `${qo}/delete`,
4303
- "media.move": `${qo}/move`,
4304
- "media.update": `${qo}/{media}`,
4305
- "media.replace": `${qo}/{media}/replace`,
4306
- "media.checkUsage": `${qo}/check-usage`,
4307
- "media.frequentlyUsed": `${qo}/frequently-used`,
4308
- "media.importFromUrl": `${qo}/import-from-url`,
4309
- "folders.index": `${Jo}`,
4310
- "folders.store": `${Jo}`,
4311
- "folders.update": `${Jo}/{mediaFolder}`,
4312
- "folders.destroy": `${Jo}/{mediaFolder}`,
4313
- "savedModules.index": `${Yo}`,
4314
- "savedModules.store": `${Yo}`,
4315
- "savedModules.update": `${Yo}/{savedModule}`,
4316
- "savedModules.destroy": `${Yo}/{savedModule}`
4317
- }, Xo = class {
4264
+ "ai.generate": `${qo}/generate`,
4265
+ "ai.conversationMessages": `${qo}/conversation-messages`,
4266
+ "ai.suggestions": `${qo}/suggestions`,
4267
+ "ai.rewriteText": `${qo}/rewrite-text`,
4268
+ "ai.score": `${qo}/score`,
4269
+ "ai.fixFinding": `${qo}/fix-finding`,
4270
+ "ai.generateFromDesign": `${qo}/generate-from-design`,
4271
+ "media.upload": `${Jo}/upload`,
4272
+ "media.browse": `${Jo}/browse`,
4273
+ "media.delete": `${Jo}/delete`,
4274
+ "media.move": `${Jo}/move`,
4275
+ "media.update": `${Jo}/{media}`,
4276
+ "media.replace": `${Jo}/{media}/replace`,
4277
+ "media.checkUsage": `${Jo}/check-usage`,
4278
+ "media.frequentlyUsed": `${Jo}/frequently-used`,
4279
+ "media.importFromUrl": `${Jo}/import-from-url`,
4280
+ "folders.index": `${Yo}`,
4281
+ "folders.store": `${Yo}`,
4282
+ "folders.update": `${Yo}/{mediaFolder}`,
4283
+ "folders.destroy": `${Yo}/{mediaFolder}`,
4284
+ "savedModules.index": `${Xo}`,
4285
+ "savedModules.store": `${Xo}`,
4286
+ "savedModules.update": `${Xo}/{savedModule}`,
4287
+ "savedModules.destroy": `${Xo}/{savedModule}`
4288
+ }, Zo = class {
4318
4289
  authManager;
4319
4290
  constructor(e) {
4320
4291
  this.authManager = e;
@@ -4500,14 +4471,14 @@ var Go = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${Go}/templates/{te
4500
4471
  };
4501
4472
  //#endregion
4502
4473
  //#region ../core/src/cloud/websocket-client.ts
4503
- function Zo(e) {
4474
+ function Qo(e) {
4504
4475
  return {
4505
4476
  host: e.host,
4506
4477
  port: e.port,
4507
4478
  appKey: e.app_key
4508
4479
  };
4509
4480
  }
4510
- var Qo = class {
4481
+ var $o = class {
4511
4482
  pusher = null;
4512
4483
  authManager;
4513
4484
  config;
@@ -4574,7 +4545,7 @@ var Qo = class {
4574
4545
  };
4575
4546
  //#endregion
4576
4547
  //#region ../core/src/cloud/mcp-operation-handler.ts
4577
- function $o(e, t) {
4548
+ function es(e, t) {
4578
4549
  let { operation: n, data: r } = t;
4579
4550
  switch (n) {
4580
4551
  case "add_block":
@@ -4602,11 +4573,11 @@ function $o(e, t) {
4602
4573
  }
4603
4574
  //#endregion
4604
4575
  //#region ../core/src/cloud/editor.ts
4605
- function es(e) {
4576
+ function ts(e) {
4606
4577
  return e === "1" ? 1 : e === "3" ? 3 : 2;
4607
4578
  }
4608
- function ts(e) {
4609
- let t = new Xo(e.authManager), n = S({
4579
+ function ns(e) {
4580
+ let t = new Zo(e.authManager), n = S({
4610
4581
  template: null,
4611
4582
  content: Ue(e.defaultFontFamily, e.templateDefaults),
4612
4583
  selectedBlockId: null,
@@ -4712,7 +4683,7 @@ function ts(e) {
4712
4683
  let l;
4713
4684
  if (r) {
4714
4685
  let e = o(n.content.blocks, r);
4715
- if (!e || e.type !== "section" || i < 0 || i >= es(e.columns)) return;
4686
+ if (!e || e.type !== "section" || i < 0 || i >= ts(e.columns)) return;
4716
4687
  e.children[i] = e.children[i] || [], l = e.children[i];
4717
4688
  } else l = n.content.blocks;
4718
4689
  let [u] = a.blocks.splice(c, 1);
@@ -4804,11 +4775,11 @@ function ts(e) {
4804
4775
  }
4805
4776
  //#endregion
4806
4777
  //#region ../core/src/cloud/ai-chat.ts
4807
- var ns = 0;
4808
- function rs() {
4809
- return `msg_${Date.now()}_${++ns}`;
4778
+ var rs = 0;
4779
+ function is() {
4780
+ return `msg_${Date.now()}_${++rs}`;
4810
4781
  }
4811
- function is(e) {
4782
+ function as(e) {
4812
4783
  let { authManager: t, getTemplateId: n, onApply: r, onError: i } = e, a = C([]), o = C(!1), s = C(!1), c = C(null), l = C(null), u = C(null), d = C(null), f = C(null), p = C(null), m = C(!1), h = C([]), g = C(!1);
4813
4784
  function _(e, t) {
4814
4785
  let n = a.value.findIndex((t) => t.id === e);
@@ -4902,14 +4873,14 @@ function is(e) {
4902
4873
  let v = n();
4903
4874
  if (!v) throw Error("Template must be saved before using AI generation");
4904
4875
  o.value = !0, c.value = null, l.value = null, h.value = [];
4905
- let y = rs();
4876
+ let y = is();
4906
4877
  a.value = [...a.value, {
4907
4878
  id: y,
4908
4879
  role: "user",
4909
4880
  content: e,
4910
4881
  timestamp: Date.now()
4911
4882
  }];
4912
- let b = rs();
4883
+ let b = is();
4913
4884
  a.value = [...a.value, {
4914
4885
  id: b,
4915
4886
  role: "assistant",
@@ -5000,7 +4971,7 @@ function is(e) {
5000
4971
  }
5001
4972
  //#endregion
5002
4973
  //#region ../core/src/cloud/ai-config.ts
5003
- function as(e) {
4974
+ function os(e) {
5004
4975
  function t(t) {
5005
4976
  return e === !1 ? !1 : e?.[t] !== !1;
5006
4977
  }
@@ -5011,7 +4982,7 @@ function as(e) {
5011
4982
  }
5012
4983
  //#endregion
5013
4984
  //#region ../core/src/cloud/template-scoring.ts
5014
- function os(e) {
4985
+ function ss(e) {
5015
4986
  let { authManager: t, getTemplateId: n } = e, r = C(!1), i = C(null), a = C(null), o = C(null), s = C(""), c = C(null);
5016
4987
  async function l(e, o) {
5017
4988
  let s = n();
@@ -5156,7 +5127,7 @@ function os(e) {
5156
5127
  }
5157
5128
  //#endregion
5158
5129
  //#region ../core/src/cloud/design-reference.ts
5159
- function ss(e) {
5130
+ function cs(e) {
5160
5131
  let { authManager: t, getTemplateId: n, onApply: r, onError: i } = e, a = C(!1), o = C(null);
5161
5132
  async function s(e) {
5162
5133
  let s = n();
@@ -5219,8 +5190,8 @@ function ss(e) {
5219
5190
  }
5220
5191
  //#endregion
5221
5192
  //#region ../core/src/cloud/comments.ts
5222
- function cs(e) {
5223
- let { authManager: t, getTemplateId: n, getSocketId: r, onComment: i, onError: a, hasCommentingFeature: o } = e, s = new Xo(t), c = C([]), l = C(!1), u = C(!1), d = O(() => (o?.() ?? !1) && t.userConfig !== null), f = O(() => {
5193
+ function ls(e) {
5194
+ let { authManager: t, getTemplateId: n, getSocketId: r, onComment: i, onError: a, hasCommentingFeature: o } = e, s = new Zo(t), c = C([]), l = C(!1), u = C(!1), d = O(() => (o?.() ?? !1) && t.userConfig !== null), f = O(() => {
5224
5195
  let e = 0;
5225
5196
  for (let t of c.value) e += 1 + (t.replies?.length ?? 0);
5226
5197
  return e;
@@ -5419,17 +5390,17 @@ function cs(e) {
5419
5390
  }
5420
5391
  //#endregion
5421
5392
  //#region ../core/src/cloud/comment-listener.ts
5422
- function ls(e) {
5393
+ function us(e) {
5423
5394
  let { comments: t, channel: n } = e;
5424
5395
  H(n, (e, n) => {
5425
5396
  n && n.unbind("comment-broadcast"), e && e.bind("comment-broadcast", (e) => {
5426
- us(t, e);
5397
+ ds(t, e);
5427
5398
  });
5428
5399
  }), l(() => {
5429
5400
  n.value?.unbind("comment-broadcast");
5430
5401
  });
5431
5402
  }
5432
- function us(e, t) {
5403
+ function ds(e, t) {
5433
5404
  switch (t.action) {
5434
5405
  case "comment_created":
5435
5406
  e.applyRemoteCreate(t.comment);
@@ -5448,7 +5419,7 @@ function us(e, t) {
5448
5419
  }
5449
5420
  //#endregion
5450
5421
  //#region ../core/src/cloud/collaboration.ts
5451
- var ds = [
5422
+ var fs = [
5452
5423
  "pusher:member_added",
5453
5424
  "pusher:member_removed",
5454
5425
  "client-block_locked",
@@ -5456,10 +5427,10 @@ var ds = [
5456
5427
  "client-operation",
5457
5428
  "mcp-operation"
5458
5429
  ];
5459
- function fs(e) {
5460
- for (let t of ds) e.unbind(t);
5430
+ function ps(e) {
5431
+ for (let t of fs) e.unbind(t);
5461
5432
  }
5462
- var ps = [
5433
+ var ms = [
5463
5434
  "#3b82f6",
5464
5435
  "#ef4444",
5465
5436
  "#10b981",
@@ -5471,10 +5442,10 @@ var ps = [
5471
5442
  "#6366f1",
5472
5443
  "#14b8a6"
5473
5444
  ];
5474
- function ms(e) {
5445
+ function hs(e) {
5475
5446
  let { authManager: t, editor: n, channel: r } = e, i = C([]), a = C(/* @__PURE__ */ new Map()), o = 0, s = !1, c = O(() => t.userConfig?.id ?? "");
5476
5447
  function u() {
5477
- let e = ps[o % ps.length];
5448
+ let e = ms[o % ms.length];
5478
5449
  return o++, e;
5479
5450
  }
5480
5451
  function d(e) {
@@ -5516,7 +5487,7 @@ function ms(e) {
5516
5487
  function h(e) {
5517
5488
  s = !0;
5518
5489
  try {
5519
- $o(n, e);
5490
+ es(n, e);
5520
5491
  } finally {
5521
5492
  s = !1;
5522
5493
  }
@@ -5536,7 +5507,7 @@ function ms(e) {
5536
5507
  return H(() => n.state.selectedBlockId, (e, t) => {
5537
5508
  s || (t && v(t), e && _(e));
5538
5509
  }), H(r, (t, n) => {
5539
- if (n && fs(n), !t) {
5510
+ if (n && ps(n), !t) {
5540
5511
  i.value = [], a.value = /* @__PURE__ */ new Map(), o = 0;
5541
5512
  return;
5542
5513
  }
@@ -5568,7 +5539,7 @@ function ms(e) {
5568
5539
  h(e);
5569
5540
  });
5570
5541
  }), l(() => {
5571
- r.value && fs(r.value);
5542
+ r.value && ps(r.value);
5572
5543
  }), {
5573
5544
  collaborators: i,
5574
5545
  lockedBlocks: a,
@@ -5578,7 +5549,7 @@ function ms(e) {
5578
5549
  }
5579
5550
  //#endregion
5580
5551
  //#region ../core/src/cloud/collaboration-broadcast.ts
5581
- function hs(e, t) {
5552
+ function gs(e, t) {
5582
5553
  let n = e.addBlock, r = e.updateBlock, i = e.removeBlock, a = e.moveBlock, o = e.updateSettings, s = e.setContent;
5583
5554
  e.addBlock = (e, r, i, a) => {
5584
5555
  n(e, r, i, a), t._broadcastOperation({
@@ -5633,11 +5604,11 @@ function hs(e, t) {
5633
5604
  }
5634
5605
  //#endregion
5635
5606
  //#region ../core/src/cloud/web-socket.ts
5636
- function gs(e) {
5607
+ function _s(e) {
5637
5608
  let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = null, o = null;
5638
5609
  async function s(e, s) {
5639
5610
  if (a) return;
5640
- a = new Qo({
5611
+ a = new $o({
5641
5612
  authManager: t,
5642
5613
  config: s,
5643
5614
  onError: n
@@ -5665,8 +5636,8 @@ function gs(e) {
5665
5636
  }
5666
5637
  //#endregion
5667
5638
  //#region ../core/src/cloud/saved-modules.ts
5668
- function _s(e) {
5669
- let t = new Xo(e.authManager), n = C([]), r = C(!1);
5639
+ function vs(e) {
5640
+ let t = new Zo(e.authManager), n = C([]), r = C(!1);
5670
5641
  async function i(i) {
5671
5642
  r.value = !0;
5672
5643
  try {
@@ -5714,8 +5685,8 @@ function _s(e) {
5714
5685
  }
5715
5686
  //#endregion
5716
5687
  //#region ../core/src/cloud/snapshots.ts
5717
- function vs(e) {
5718
- let t = new Xo(e.authManager), n = C([]), r = C(!1), i = C(!1);
5688
+ function ys(e) {
5689
+ let t = new Zo(e.authManager), n = C([]), r = C(!1), i = C(!1);
5719
5690
  async function a() {
5720
5691
  r.value = !0;
5721
5692
  try {
@@ -5747,8 +5718,8 @@ function vs(e) {
5747
5718
  }
5748
5719
  //#endregion
5749
5720
  //#region ../core/src/cloud/test-email.ts
5750
- function ys(e) {
5751
- let { authManager: t, getTemplateId: n, save: r, exportHtml: i, onError: a, isAuthReady: o, onBeforeTestEmail: s } = e, c = new Xo(t), l = C(!1), u = C(null), d = C(null);
5721
+ function bs(e) {
5722
+ let { authManager: t, getTemplateId: n, save: r, exportHtml: i, onError: a, isAuthReady: o, onBeforeTestEmail: s } = e, c = new Zo(t), l = C(!1), u = C(null), d = C(null);
5752
5723
  o && H(o, (e) => {
5753
5724
  e && (d.value = t.testEmailConfig);
5754
5725
  }, { immediate: !0 });
@@ -5784,8 +5755,8 @@ function ys(e) {
5784
5755
  }
5785
5756
  //#endregion
5786
5757
  //#region ../core/src/cloud/export.ts
5787
- function bs(e) {
5788
- let { authManager: t, getFontsConfig: n, canUseCustomFonts: r } = e, i = new Xo(t);
5758
+ function xs(e) {
5759
+ let { authManager: t, getFontsConfig: n, canUseCustomFonts: r } = e, i = new Zo(t);
5789
5760
  function a() {
5790
5761
  let e = n?.();
5791
5762
  return {
@@ -5811,8 +5782,8 @@ function bs(e) {
5811
5782
  }
5812
5783
  //#endregion
5813
5784
  //#region ../core/src/cloud/plan-config.ts
5814
- function xs(e) {
5815
- let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = new Xo(t), o = O(() => r.value?.features ?? null);
5785
+ function Ss(e) {
5786
+ let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = new Zo(t), o = O(() => r.value?.features ?? null);
5816
5787
  function s(e) {
5817
5788
  return r.value?.features[e] ?? !1;
5818
5789
  }
@@ -5838,11 +5809,11 @@ function xs(e) {
5838
5809
  }
5839
5810
  //#endregion
5840
5811
  //#region ../core/src/cloud/health-check.ts
5841
- var Ss = 5e3;
5842
- function Cs(e) {
5812
+ var Cs = 5e3;
5813
+ function ws(e) {
5843
5814
  return e.authManager ? e.authManager.resolveUrl($.health) : `${(e.baseUrl ?? "https://templatical.com").replace(/\/$/, "")}${$.health}`;
5844
5815
  }
5845
- async function ws(e, t) {
5816
+ async function Ts(e, t) {
5846
5817
  let n = performance.now();
5847
5818
  try {
5848
5819
  let r = t ? await t.authenticatedFetch($.health, {
@@ -5894,7 +5865,7 @@ async function ws(e, t) {
5894
5865
  };
5895
5866
  }
5896
5867
  }
5897
- async function Ts(e) {
5868
+ async function Es(e) {
5898
5869
  if (!e?.host || !e?.app_key) return {
5899
5870
  ok: !1,
5900
5871
  error: "WebSocket configuration not available"
@@ -5910,7 +5881,7 @@ async function Ts(e) {
5910
5881
  ok: !1,
5911
5882
  error: "WebSocket connection timed out"
5912
5883
  });
5913
- }, Ss);
5884
+ }, Cs);
5914
5885
  try {
5915
5886
  n = new WebSocket(t);
5916
5887
  } catch (t) {
@@ -5930,8 +5901,8 @@ async function Ts(e) {
5930
5901
  };
5931
5902
  });
5932
5903
  }
5933
- async function Es(e = {}) {
5934
- let t = await ws(Cs(e), e.authManager), n = await Ts(t.wsConfig);
5904
+ async function Ds(e = {}) {
5905
+ let t = await Ts(ws(e), e.authManager), n = await Es(t.wsConfig);
5935
5906
  return {
5936
5907
  api: t.api,
5937
5908
  websocket: n,
@@ -5941,29 +5912,29 @@ async function Es(e = {}) {
5941
5912
  }
5942
5913
  //#endregion
5943
5914
  //#region ../core/src/cloud/mcp-listener.ts
5944
- function Ds(e) {
5915
+ function Os(e) {
5945
5916
  let { editor: t, channel: n, onOperation: r } = e;
5946
5917
  H(n, (e, n) => {
5947
5918
  n && n.unbind("mcp-operation"), e && e.bind("mcp-operation", (e) => {
5948
- $o(t, e), r?.(e);
5919
+ es(t, e), r?.(e);
5949
5920
  });
5950
5921
  });
5951
5922
  }
5952
5923
  //#endregion
5953
5924
  //#region src/cloud/components/AiChatSidebar.vue?vue&type=script&setup=true&lang.ts
5954
- var Os = {
5925
+ var ks = {
5955
5926
  key: 0,
5956
5927
  class: "tpl-ai-sidebar tpl:absolute tpl:top-14 tpl:right-0 tpl:bottom-0 tpl:z-panel tpl:flex tpl:w-[360px] tpl:flex-col tpl:border-l tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)]"
5957
- }, ks = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, As = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, js = { class: "tpl:flex tpl:items-center tpl:gap-1" }, Ms = ["title"], Ns = { class: "tpl:relative tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col" }, Ps = {
5928
+ }, As = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, js = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, Ms = { class: "tpl:flex tpl:items-center tpl:gap-1" }, Ns = ["title"], Ps = { class: "tpl:relative tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col" }, Fs = {
5958
5929
  key: 0,
5959
5930
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
5960
- }, Fs = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Is = {
5931
+ }, Is = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ls = {
5961
5932
  key: 1,
5962
5933
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
5963
- }, Ls = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Rs = {
5934
+ }, Rs = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, zs = {
5964
5935
  key: 2,
5965
5936
  class: "tpl:flex tpl:flex-col tpl:gap-4"
5966
- }, zs = {
5937
+ }, Bs = {
5967
5938
  key: 0,
5968
5939
  class: "tpl:self-end tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3.5 tpl:py-2.5 tpl:text-sm",
5969
5940
  style: {
@@ -5972,10 +5943,10 @@ var Os = {
5972
5943
  "max-width": "85%",
5973
5944
  "box-shadow": "var(--tpl-shadow)"
5974
5945
  }
5975
- }, Bs = {
5946
+ }, Vs = {
5976
5947
  key: 1,
5977
5948
  class: "tpl:flex tpl:flex-col tpl:gap-2"
5978
- }, Vs = {
5949
+ }, Hs = {
5979
5950
  key: 1,
5980
5951
  class: "tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3.5 tpl:py-2.5 tpl:text-sm tpl:whitespace-pre-wrap",
5981
5952
  style: {
@@ -5984,21 +5955,21 @@ var Os = {
5984
5955
  color: "var(--tpl-text)",
5985
5956
  "box-shadow": "var(--tpl-shadow)"
5986
5957
  }
5987
- }, Hs = {
5958
+ }, Us = {
5988
5959
  key: 0,
5989
5960
  class: "tpl:mx-3 tpl:mb-2 tpl:flex tpl:items-start tpl:gap-2 tpl:rounded-lg tpl:px-3 tpl:py-2 tpl:text-xs",
5990
5961
  style: {
5991
5962
  "background-color": "var(--tpl-danger-light)",
5992
5963
  color: "var(--tpl-danger)"
5993
5964
  }
5994
- }, Us = {
5965
+ }, Ws = {
5995
5966
  key: 1,
5996
5967
  class: "tpl:absolute tpl:right-0 tpl:bottom-0 tpl:left-0 tpl:z-10 tpl:px-3 tpl:pb-3",
5997
5968
  style: {
5998
5969
  "background-color": "color-mix(\n in srgb,\n var(--tpl-bg) 50%,\n transparent\n )",
5999
5970
  "backdrop-filter": "blur(2px)"
6000
5971
  }
6001
- }, Ws = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, Gs = ["onClick"], Ks = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, qs = { class: "tpl-ai-input-wrapper tpl:flex tpl:items-end tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:border tpl:px-3 tpl:py-2 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, Js = ["placeholder", "disabled"], Ys = ["disabled"], Xs = { class: "tpl:m-0 tpl:px-1 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Zs = /*@__PURE__*/ B({
5972
+ }, Gs = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, Ks = ["onClick"], qs = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, Js = { class: "tpl-ai-input-wrapper tpl:flex tpl:items-end tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:border tpl:px-3 tpl:py-2 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, Ys = ["placeholder", "disabled"], Xs = ["disabled"], Zs = { class: "tpl:m-0 tpl:px-1 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Qs = /*@__PURE__*/ B({
6002
5973
  __name: "AiChatSidebar",
6003
5974
  props: {
6004
5975
  visible: { type: Boolean },
@@ -6006,7 +5977,7 @@ var Os = {
6006
5977
  },
6007
5978
  emits: ["close"],
6008
5979
  setup(e, { emit: t }) {
6009
- let n = e, r = t, i = J(dr, "AiChatSidebar"), a = J(In, "AiChatSidebar"), o = J(or, "AiChatSidebar"), s = v(qn, []), l = ga(), u = is({
5980
+ let n = e, r = t, i = J(fr, "AiChatSidebar"), a = J(In, "AiChatSidebar"), o = J(sr, "AiChatSidebar"), s = v(Jn, []), l = _a(), u = as({
6010
5981
  authManager: o,
6011
5982
  getTemplateId: () => a.state.template?.id ?? null,
6012
5983
  onApply: n.onApply,
@@ -6053,42 +6024,42 @@ var Os = {
6053
6024
  "leave-from-class": "tpl:translate-x-0",
6054
6025
  "leave-to-class": "tpl:translate-x-full"
6055
6026
  }, {
6056
- default: b(() => [e.visible ? (f(), k("div", Os, [
6057
- I("div", ks, [I("div", As, [V(j(Si), {
6027
+ default: b(() => [e.visible ? (f(), k("div", ks, [
6028
+ I("div", As, [I("div", js, [V(j(Ci), {
6058
6029
  size: 13,
6059
6030
  "stroke-width": 2
6060
- }), I("span", null, D(j(i).aiChat.title), 1)]), I("div", js, [(j(u).messages.value?.length ?? 0) > 0 ? (f(), k("button", {
6031
+ }), I("span", null, D(j(i).aiChat.title), 1)]), I("div", Ms, [(j(u).messages.value?.length ?? 0) > 0 ? (f(), k("button", {
6061
6032
  key: 0,
6062
6033
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6063
6034
  title: j(i).aiChat.clear,
6064
6035
  onClick: n[0] ||= (e) => j(u).clearChat()
6065
- }, [V(j(wi), {
6036
+ }, [V(j(Ti), {
6066
6037
  size: 14,
6067
6038
  "stroke-width": 2
6068
- })], 8, Ms)) : A("", !0), I("button", {
6039
+ })], 8, Ns)) : A("", !0), I("button", {
6069
6040
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6070
6041
  onClick: n[1] ||= (e) => r("close")
6071
- }, [V(j(ki), {
6042
+ }, [V(j(Ai), {
6072
6043
  size: 14,
6073
6044
  "stroke-width": 2
6074
6045
  })])])]),
6075
- I("div", Ns, [
6046
+ I("div", Ps, [
6076
6047
  I("div", {
6077
6048
  ref_key: "messagesContainer",
6078
6049
  ref: p,
6079
6050
  class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4"
6080
- }, [j(u).isLoadingHistory.value ? (f(), k("div", Ps, [V(j(ui), {
6051
+ }, [j(u).isLoadingHistory.value ? (f(), k("div", Fs, [V(j(di), {
6081
6052
  class: "tpl-spinner tpl:text-[var(--tpl-text-muted)]",
6082
6053
  size: 24,
6083
6054
  "stroke-width": 2
6084
- }), I("p", Fs, D(j(i).aiChat.loadingHistory), 1)])) : (j(u).messages.value?.length ?? 0) === 0 ? (f(), k("div", Is, [V(j(Si), {
6055
+ }), I("p", Is, D(j(i).aiChat.loadingHistory), 1)])) : (j(u).messages.value?.length ?? 0) === 0 ? (f(), k("div", Ls, [V(j(Ci), {
6085
6056
  size: 32,
6086
6057
  "stroke-width": 1.5,
6087
6058
  class: "tpl:text-[var(--tpl-text-dim)]"
6088
- }), I("p", Ls, D(j(i).aiChat.placeholder), 1)])) : (f(), k("div", Rs, [(f(!0), k(R, null, h(j(u).messages.value, (e, t) => (f(), k("div", {
6059
+ }), I("p", Rs, D(j(i).aiChat.placeholder), 1)])) : (f(), k("div", zs, [(f(!0), k(R, null, h(j(u).messages.value, (e, t) => (f(), k("div", {
6089
6060
  key: e.id,
6090
6061
  class: "tpl:flex tpl:flex-col tpl:gap-2"
6091
- }, [e.role === "user" ? (f(), k("div", zs, D(e.content), 1)) : (f(), k("div", Bs, [!T(e.content) && j(u).isGenerating.value && t === (j(u).messages.value?.length ?? 0) - 1 ? (f(), N(Ri, { key: 0 })) : (f(), k("div", Vs, D(T(e.content) || j(i).aiChat.applied), 1)), e.id === j(u).lastApplyMessageId.value && !j(u).isGenerating.value ? (f(), k("button", {
6062
+ }, [e.role === "user" ? (f(), k("div", Bs, D(e.content), 1)) : (f(), k("div", Vs, [!T(e.content) && j(u).isGenerating.value && t === (j(u).messages.value?.length ?? 0) - 1 ? (f(), N(zi, { key: 0 })) : (f(), k("div", Hs, D(T(e.content) || j(i).aiChat.applied), 1)), e.id === j(u).lastApplyMessageId.value && !j(u).isGenerating.value ? (f(), k("button", {
6092
6063
  key: 2,
6093
6064
  class: "tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:self-start tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-150",
6094
6065
  style: {
@@ -6097,19 +6068,19 @@ var Os = {
6097
6068
  "background-color": "transparent"
6098
6069
  },
6099
6070
  onClick: n[2] ||= (e) => j(u).toggleLastRevert()
6100
- }, [j(u).isLastChangeReverted.value ? (f(), k(R, { key: 0 }, [V(j(hi), {
6071
+ }, [j(u).isLastChangeReverted.value ? (f(), k(R, { key: 0 }, [V(j(gi), {
6101
6072
  size: 12,
6102
6073
  "stroke-width": 2
6103
- }), z(" " + D(j(i).aiChat.reapply), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Ei), {
6074
+ }), z(" " + D(j(i).aiChat.reapply), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Di), {
6104
6075
  size: 12,
6105
6076
  "stroke-width": 2
6106
6077
  }), z(" " + D(j(i).aiChat.revert), 1)], 64))])) : A("", !0)]))]))), 128))]))], 512),
6107
- j(u).error.value ? (f(), k("div", Hs, [V(j(Xr), {
6078
+ j(u).error.value ? (f(), k("div", Us, [V(j(Zr), {
6108
6079
  size: 14,
6109
6080
  "stroke-width": 2,
6110
6081
  class: "tpl:mt-0.5 tpl:shrink-0"
6111
6082
  }), I("span", null, D(j(u).error.value === "ai_apply_failed" ? j(i).aiChat.applyFailed : j(i).aiChat.error), 1)])) : A("", !0),
6112
- (j(u).suggestions.value?.length ?? 0) > 0 ? (f(), k("div", Us, [I("div", Ws, [(f(!0), k(R, null, h(j(u).suggestions.value ?? [], (e, t) => (f(), k("button", {
6083
+ (j(u).suggestions.value?.length ?? 0) > 0 ? (f(), k("div", Ws, [I("div", Gs, [(f(!0), k(R, null, h(j(u).suggestions.value ?? [], (e, t) => (f(), k("button", {
6113
6084
  key: t,
6114
6085
  class: F(["tpl-suggestion-btn tpl:cursor-pointer tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:px-3 tpl:py-2 tpl:text-left tpl:text-xs tpl:leading-snug tpl:transition-all tpl:duration-300 tpl:ease-out", (j(u).suggestions.value?.length ?? 0) - 1 - t < _.value ? "tpl:translate-y-0 tpl:opacity-100" : "tpl:pointer-events-none tpl:-translate-y-2 tpl:opacity-0"]),
6115
6086
  style: {
@@ -6119,104 +6090,104 @@ var Os = {
6119
6090
  "box-shadow": "var(--tpl-shadow)"
6120
6091
  },
6121
6092
  onClick: (t) => E(e)
6122
- }, D(e), 11, Gs))), 128))])])) : A("", !0)
6093
+ }, D(e), 11, Ks))), 128))])])) : A("", !0)
6123
6094
  ]),
6124
- I("div", Ks, [I("div", qs, [c(I("textarea", {
6095
+ I("div", qs, [I("div", Js, [c(I("textarea", {
6125
6096
  "onUpdate:modelValue": n[3] ||= (e) => d.value = e,
6126
6097
  class: "tpl:max-h-32 tpl:min-h-[64px] tpl:flex-1 tpl:resize-none tpl:border-none tpl:bg-transparent tpl:font-sans tpl:text-sm tpl:outline-none tpl:text-[var(--tpl-text)]",
6127
6098
  placeholder: j(i).aiChat.inputPlaceholder,
6128
6099
  disabled: j(u).isGenerating.value,
6129
6100
  rows: "3",
6130
6101
  onKeydown: te
6131
- }, null, 40, Js), [[ae, d.value]]), I("button", {
6102
+ }, null, 40, Ys), [[ae, d.value]]), I("button", {
6132
6103
  class: "tpl-ai-send-btn tpl:flex tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-all tpl:duration-150 tpl:disabled:opacity-40 tpl:text-[var(--tpl-primary)]",
6133
6104
  disabled: !d.value.trim() || j(u).isGenerating.value,
6134
6105
  onClick: ee
6135
- }, [V(j(vi), {
6106
+ }, [V(j(yi), {
6136
6107
  size: 16,
6137
6108
  "stroke-width": 2
6138
- })], 8, Ys)]), I("p", Xs, D(j(i).aiMenu.disclaimer), 1)])
6109
+ })], 8, Xs)]), I("p", Zs, D(j(i).aiMenu.disclaimer), 1)])
6139
6110
  ])) : A("", !0)]),
6140
6111
  _: 1
6141
6112
  }));
6142
6113
  }
6143
- }), Qs = /* @__PURE__ */ e({ default: () => $s }), $s = /*#__PURE__*/ Pi(Zs, [["__scopeId", "data-v-a55e4bff"]]), ec = 6e4, tc = 36e5, nc = 864e5;
6144
- function rc(e, t, n, r) {
6114
+ }), $s = /* @__PURE__ */ e({ default: () => ec }), ec = /*#__PURE__*/ Fi(Qs, [["__scopeId", "data-v-a55e4bff"]]), tc = 6e4, nc = 36e5, rc = 864e5;
6115
+ function ic(e, t, n, r) {
6145
6116
  let i = new Date(e).getTime();
6146
6117
  if (Number.isNaN(i)) return null;
6147
6118
  let a = Date.now() - i;
6148
6119
  if (a < -6e4) return null;
6149
- let o = Math.floor(a / ec), s = Math.floor(a / tc), c = Math.floor(a / nc);
6120
+ let o = Math.floor(a / tc), s = Math.floor(a / nc), c = Math.floor(a / rc);
6150
6121
  return o < 1 ? t.justNow : o < 60 ? n ? n(t.minutesAgo, { minutes: o }) : t.minutesAgo.replace("{minutes}", String(o)) : s < 24 ? n ? n(t.hoursAgo, { hours: s }) : t.hoursAgo.replace("{hours}", String(s)) : r !== void 0 && c >= r ? null : n ? n(t.daysAgo, { days: c }) : t.daysAgo.replace("{days}", String(c));
6151
6122
  }
6152
6123
  //#endregion
6153
6124
  //#region src/cloud/components/CommentsSidebar.vue?vue&type=script&setup=true&lang.ts
6154
- var ic = {
6125
+ var ac = {
6155
6126
  key: 0,
6156
6127
  class: "tpl-comments-sidebar tpl:absolute tpl:top-14 tpl:right-0 tpl:bottom-0 tpl:z-panel tpl:flex tpl:w-[360px] tpl:flex-col tpl:border-l tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)]"
6157
- }, ac = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, oc = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]" }, sc = {
6128
+ }, oc = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, sc = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]" }, cc = {
6158
6129
  key: 0,
6159
6130
  class: "tpl:ml-1 tpl:inline-flex tpl:size-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)]"
6160
- }, cc = { class: "tpl:flex tpl:gap-1 tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2" }, lc = { class: "tpl:flex-1 tpl:overflow-y-auto" }, uc = {
6131
+ }, lc = { class: "tpl:flex tpl:gap-1 tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2" }, uc = { class: "tpl:flex-1 tpl:overflow-y-auto" }, dc = {
6161
6132
  key: 0,
6162
6133
  class: "tpl:flex tpl:h-full tpl:items-center tpl:justify-center"
6163
- }, dc = {
6134
+ }, fc = {
6164
6135
  key: 1,
6165
6136
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:px-6 tpl:text-center"
6166
- }, fc = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, pc = {
6137
+ }, pc = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, mc = {
6167
6138
  key: 2,
6168
6139
  class: "tpl:flex tpl:flex-col tpl:gap-3 tpl:p-3"
6169
- }, mc = { class: "tpl-comment-card tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-3" }, hc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, gc = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, _c = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, vc = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, yc = {
6140
+ }, hc = { class: "tpl-comment-card tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-3" }, gc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, _c = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, vc = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, yc = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, bc = {
6170
6141
  key: 0,
6171
6142
  class: "tpl:text-[10px] tpl:italic tpl:text-[var(--tpl-text-dim)]"
6172
- }, bc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, xc = ["title", "onClick"], Sc = ["title", "onClick"], Cc = ["title", "onClick"], wc = {
6143
+ }, xc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, Sc = ["title", "onClick"], Cc = ["title", "onClick"], wc = ["title", "onClick"], Tc = {
6173
6144
  key: 0,
6174
6145
  class: "tpl:mt-1 tpl:flex tpl:items-center tpl:gap-1 tpl:text-[10px] tpl:text-[var(--tpl-primary)]"
6175
- }, Tc = {
6146
+ }, Ec = {
6176
6147
  key: 0,
6177
6148
  class: "tpl:mt-1 tpl:inline-flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:bg-[var(--tpl-warning-light)] tpl:text-[var(--tpl-warning)]"
6178
- }, Ec = ["onClick"], Dc = {
6149
+ }, Dc = ["onClick"], Oc = {
6179
6150
  key: 2,
6180
6151
  class: "tpl:mt-2"
6181
- }, Oc = ["onKeydown"], kc = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, Ac = ["disabled", "onClick"], jc = {
6152
+ }, kc = ["onKeydown"], Ac = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, jc = ["disabled", "onClick"], Mc = {
6182
6153
  key: 3,
6183
6154
  class: "tpl:mt-1.5 tpl:text-xs tpl:leading-relaxed tpl:whitespace-pre-wrap tpl:text-[var(--tpl-text)]"
6184
- }, Mc = {
6155
+ }, Nc = {
6185
6156
  key: 4,
6186
6157
  class: "tpl:mt-2 tpl:flex tpl:items-center tpl:gap-2 tpl:rounded-md tpl:px-2.5 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-danger-light)] tpl:text-[var(--tpl-danger)]"
6187
- }, Nc = { class: "tpl:flex-1" }, Pc = ["onClick"], Fc = {
6158
+ }, Pc = { class: "tpl:flex-1" }, Fc = ["onClick"], Ic = {
6188
6159
  key: 5,
6189
6160
  class: "tpl:mt-2 tpl:flex tpl:items-center tpl:gap-2"
6190
- }, Ic = ["title", "onClick"], Lc = ["onClick"], Rc = {
6161
+ }, Lc = ["title", "onClick"], Rc = ["onClick"], zc = {
6191
6162
  key: 0,
6192
6163
  class: "tpl-comment-replies tpl:ml-5 tpl:pl-3 tpl:pt-2"
6193
- }, zc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, Bc = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, Vc = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Hc = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Uc = {
6164
+ }, Bc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, Vc = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, Hc = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Uc = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Wc = {
6194
6165
  key: 0,
6195
6166
  class: "tpl:text-[10px] tpl:italic tpl:text-[var(--tpl-text-dim)]"
6196
- }, Wc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, Gc = ["title", "onClick"], Kc = ["title", "onClick"], qc = {
6167
+ }, Gc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, Kc = ["title", "onClick"], qc = ["title", "onClick"], Jc = {
6197
6168
  key: 0,
6198
6169
  class: "tpl:mt-1.5"
6199
- }, Jc = ["onKeydown"], Yc = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, Xc = ["disabled", "onClick"], Zc = {
6170
+ }, Yc = ["onKeydown"], Xc = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, Zc = ["disabled", "onClick"], Qc = {
6200
6171
  key: 1,
6201
6172
  class: "tpl:mt-1 tpl:text-xs tpl:leading-relaxed tpl:whitespace-pre-wrap tpl:text-[var(--tpl-text)]"
6202
- }, Qc = {
6173
+ }, $c = {
6203
6174
  key: 2,
6204
6175
  class: "tpl:mt-2 tpl:flex tpl:items-center tpl:gap-2 tpl:rounded-md tpl:px-2.5 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-danger-light)] tpl:text-[var(--tpl-danger)]"
6205
- }, $c = { class: "tpl:flex-1" }, el = ["onClick"], tl = {
6176
+ }, el = { class: "tpl:flex-1" }, tl = ["onClick"], nl = {
6206
6177
  key: 0,
6207
6178
  class: "tpl-comment-replies tpl:ml-5 tpl:pl-3 tpl:pt-2"
6208
- }, nl = { class: "tpl:flex tpl:items-end tpl:gap-2" }, rl = ["placeholder", "onKeydown"], il = { class: "tpl:flex tpl:shrink-0 tpl:flex-col tpl:gap-1" }, al = ["disabled", "onClick"], ol = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, sl = {
6179
+ }, rl = { class: "tpl:flex tpl:items-end tpl:gap-2" }, il = ["placeholder", "onKeydown"], al = { class: "tpl:flex tpl:shrink-0 tpl:flex-col tpl:gap-1" }, ol = ["disabled", "onClick"], sl = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, cl = {
6209
6180
  key: 0,
6210
6181
  class: "tpl:flex tpl:min-h-[68px] tpl:items-center tpl:rounded-md tpl:px-3 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-warning-light)] tpl:text-[var(--tpl-warning)]"
6211
- }, cl = {
6182
+ }, ll = {
6212
6183
  key: 1,
6213
6184
  class: "tpl-comments-input-wrapper tpl:flex tpl:min-h-[68px] tpl:items-end tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:border tpl:px-3 tpl:py-2 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]"
6214
- }, ll = ["placeholder", "disabled"], ul = ["disabled"], dl = /*@__PURE__*/ B({
6185
+ }, ul = ["placeholder", "disabled"], dl = ["disabled"], fl = /*@__PURE__*/ B({
6215
6186
  __name: "CommentsSidebar",
6216
6187
  props: { visible: { type: Boolean } },
6217
6188
  emits: ["close", "filterBlock"],
6218
6189
  setup(e, { expose: t, emit: n }) {
6219
- let r = e, i = n, { format: a } = Y(), { t: o } = Wi(), s = J(In, "CommentsSidebar"), l = J(or, "CommentsSidebar"), u = J(cr, "CommentsSidebar"), d = C("unresolved"), p = C(null), g = C(""), _ = C(null), v = C(""), y = C(null), x = C(""), S = C(/* @__PURE__ */ new Set()), w = C(null), ee = C(null), T = O(() => l.userConfig?.id ?? null), E = O(() => {
6190
+ let r = e, i = n, { format: a } = Y(), { t: o } = Gi(), s = J(In, "CommentsSidebar"), l = J(sr, "CommentsSidebar"), u = J(lr, "CommentsSidebar"), d = C("unresolved"), p = C(null), g = C(""), _ = C(null), v = C(""), y = C(null), x = C(""), S = C(/* @__PURE__ */ new Set()), w = C(null), ee = C(null), T = O(() => l.userConfig?.id ?? null), E = O(() => {
6220
6191
  let e = /* @__PURE__ */ new Set();
6221
6192
  for (let t of s.content.value.blocks) if (e.add(t.id), t.type === "section") for (let n of t.children) for (let t of n) e.add(t.id);
6222
6193
  return e;
@@ -6284,7 +6255,7 @@ var ic = {
6284
6255
  return e.author_identifier === T.value;
6285
6256
  }
6286
6257
  function ve(e) {
6287
- return rc(e, o.snapshotHistory) ?? e;
6258
+ return ic(e, o.snapshotHistory) ?? e;
6288
6259
  }
6289
6260
  function ye(e) {
6290
6261
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), fe());
@@ -6311,22 +6282,22 @@ var ic = {
6311
6282
  "leave-from-class": "tpl:translate-x-0",
6312
6283
  "leave-to-class": "tpl:translate-x-full"
6313
6284
  }, {
6314
- default: b(() => [e.visible ? (f(), k("div", ic, [
6315
- I("div", ac, [I("div", oc, [
6316
- V(j(di), {
6285
+ default: b(() => [e.visible ? (f(), k("div", ac, [
6286
+ I("div", oc, [I("div", sc, [
6287
+ V(j(fi), {
6317
6288
  size: 13,
6318
6289
  "stroke-width": 2
6319
6290
  }),
6320
6291
  I("span", null, D(j(o).comments.title), 1),
6321
- j(u).unresolvedCount.value > 0 ? (f(), k("span", sc, D(j(u).unresolvedCount.value), 1)) : A("", !0)
6292
+ j(u).unresolvedCount.value > 0 ? (f(), k("span", cc, D(j(u).unresolvedCount.value), 1)) : A("", !0)
6322
6293
  ]), I("button", {
6323
6294
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6324
6295
  onClick: n[0] ||= (e) => i("close")
6325
- }, [V(j(ki), {
6296
+ }, [V(j(Ai), {
6326
6297
  size: 14,
6327
6298
  "stroke-width": 2
6328
6299
  })])]),
6329
- I("div", cc, [
6300
+ I("div", lc, [
6330
6301
  I("button", {
6331
6302
  class: F(["tpl-comment-filter tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:transition-colors tpl:duration-150", d.value === "unresolved" ? "tpl-comment-filter--active" : ""]),
6332
6303
  onClick: n[1] ||= (e) => M("unresolved")
@@ -6341,156 +6312,156 @@ var ic = {
6341
6312
  onClick: n[3] ||= (e) => M("block", j(s).state.selectedBlockId ?? void 0)
6342
6313
  }, D(j(o).comments.filterBlock), 3)) : A("", !0)
6343
6314
  ]),
6344
- I("div", lc, [j(u).isLoading.value ? (f(), k("div", uc, [V(j(ui), {
6315
+ I("div", uc, [j(u).isLoading.value ? (f(), k("div", dc, [V(j(di), {
6345
6316
  class: "tpl-spinner tpl:text-[var(--tpl-text-muted)]",
6346
6317
  size: 24,
6347
6318
  "stroke-width": 2
6348
- })])) : re.value.length === 0 ? (f(), k("div", dc, [V(j(di), {
6319
+ })])) : re.value.length === 0 ? (f(), k("div", fc, [V(j(fi), {
6349
6320
  size: 32,
6350
6321
  "stroke-width": 1.5,
6351
6322
  class: "tpl:text-[var(--tpl-text-dim)]"
6352
- }), I("p", fc, D(d.value === "all" ? j(o).comments.noCommentsHint : j(o).comments.noComments), 1)])) : (f(), k("div", pc, [(f(!0), k(R, null, h(re.value, (e) => (f(), k("div", {
6323
+ }), I("p", pc, D(d.value === "all" ? j(o).comments.noCommentsHint : j(o).comments.noComments), 1)])) : (f(), k("div", mc, [(f(!0), k(R, null, h(re.value, (e) => (f(), k("div", {
6353
6324
  key: e.id,
6354
6325
  class: "tpl-comment-thread"
6355
6326
  }, [
6356
- I("div", mc, [
6357
- I("div", hc, [I("div", gc, [
6358
- I("span", _c, D(_e(e) ? j(o).comments.ownedByYou : e.author_name), 1),
6359
- I("span", vc, D(ve(e.created_at)), 1),
6360
- e.updated_at === e.created_at ? A("", !0) : (f(), k("span", yc, " (" + D(j(o).comments.edited) + ") ", 1))
6361
- ]), I("div", bc, [
6327
+ I("div", hc, [
6328
+ I("div", gc, [I("div", _c, [
6329
+ I("span", vc, D(_e(e) ? j(o).comments.ownedByYou : e.author_name), 1),
6330
+ I("span", yc, D(ve(e.created_at)), 1),
6331
+ e.updated_at === e.created_at ? A("", !0) : (f(), k("span", bc, " (" + D(j(o).comments.edited) + ") ", 1))
6332
+ ]), I("div", xc, [
6362
6333
  I("button", {
6363
6334
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6364
6335
  title: e.resolved_at ? j(o).comments.unresolve : j(o).comments.resolve,
6365
6336
  onClick: (t) => ge(e.id)
6366
- }, [V(j(Zr), {
6337
+ }, [V(j(Qr), {
6367
6338
  size: 13,
6368
6339
  "stroke-width": 2,
6369
6340
  class: "tpl-resolve-icon",
6370
6341
  style: L({ color: e.resolved_at ? "var(--tpl-primary)" : void 0 })
6371
- }, null, 8, ["style"])], 8, xc),
6342
+ }, null, 8, ["style"])], 8, Sc),
6372
6343
  _e(e) ? (f(), k("button", {
6373
6344
  key: 0,
6374
6345
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6375
6346
  title: j(o).comments.edit,
6376
6347
  onClick: (t) => le(e)
6377
- }, [V(j(pi), {
6348
+ }, [V(j(mi), {
6378
6349
  size: 12,
6379
6350
  "stroke-width": 2
6380
- })], 8, Sc)) : A("", !0),
6351
+ })], 8, Cc)) : A("", !0),
6381
6352
  _e(e) ? (f(), k("button", {
6382
6353
  key: 1,
6383
6354
  class: "tpl-comment-action tpl-comment-delete tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6384
6355
  title: j(o).comments.delete,
6385
6356
  onClick: (t) => ue(e.id)
6386
- }, [V(j(wi), {
6357
+ }, [V(j(Ti), {
6387
6358
  size: 12,
6388
6359
  "stroke-width": 2
6389
- })], 8, Cc)) : A("", !0)
6360
+ })], 8, wc)) : A("", !0)
6390
6361
  ])]),
6391
6362
  V(ie, { name: "tpl-resolve" }, {
6392
- default: b(() => [e.resolved_at ? (f(), k("div", wc, [V(j(Gr), {
6363
+ default: b(() => [e.resolved_at ? (f(), k("div", Tc, [V(j(Kr), {
6393
6364
  size: 10,
6394
6365
  "stroke-width": 2.5
6395
6366
  }), I("span", null, D(j(a)(j(o).comments.resolvedBy, { name: e.resolved_by_name ?? "" })), 1)])) : A("", !0)]),
6396
6367
  _: 2
6397
6368
  }, 1024),
6398
- e.block_id && te(e.block_id) ? (f(), k("span", Tc, D(j(o).comments.missingBlock), 1)) : e.block_id ? (f(), k("button", {
6369
+ e.block_id && te(e.block_id) ? (f(), k("span", Ec, D(j(o).comments.missingBlock), 1)) : e.block_id ? (f(), k("button", {
6399
6370
  key: 1,
6400
6371
  class: "tpl:mt-1 tpl:inline-flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-muted)]",
6401
6372
  onClick: (t) => j(s).selectBlock(e.block_id ?? "")
6402
- }, " Block ", 8, Ec)) : A("", !0),
6403
- y.value === e.id ? (f(), k("div", Dc, [c(I("textarea", {
6373
+ }, " Block ", 8, Dc)) : A("", !0),
6374
+ y.value === e.id ? (f(), k("div", Oc, [c(I("textarea", {
6404
6375
  "onUpdate:modelValue": n[4] ||= (e) => x.value = e,
6405
6376
  class: "tpl:w-full tpl:resize-none tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-2 tpl:font-sans tpl:text-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
6406
6377
  rows: "3",
6407
6378
  onKeydown: (t) => xe(t, e.id)
6408
- }, null, 40, Oc), [[ae, x.value]]), I("div", kc, [I("button", {
6379
+ }, null, 40, kc), [[ae, x.value]]), I("div", Ac, [I("button", {
6409
6380
  class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
6410
6381
  disabled: !x.value.trim() || j(u).isSubmitting.value,
6411
6382
  onClick: (t) => me(e.id)
6412
- }, D(j(o).comments.save), 9, Ac), I("button", {
6383
+ }, D(j(o).comments.save), 9, jc), I("button", {
6413
6384
  class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6414
6385
  onClick: n[5] ||= (e) => B()
6415
- }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", jc, D(e.body), 1)),
6416
- w.value === e.id ? (f(), k("div", Mc, [
6417
- I("span", Nc, D(j(o).comments.deleteConfirm), 1),
6386
+ }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", Mc, D(e.body), 1)),
6387
+ w.value === e.id ? (f(), k("div", Nc, [
6388
+ I("span", Pc, D(j(o).comments.deleteConfirm), 1),
6418
6389
  I("button", {
6419
6390
  class: "tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-xs tpl:font-medium tpl:bg-[var(--tpl-danger)] tpl:text-[var(--tpl-bg)]",
6420
6391
  onClick: (t) => he(e.id)
6421
- }, D(j(o).comments.delete), 9, Pc),
6392
+ }, D(j(o).comments.delete), 9, Fc),
6422
6393
  I("button", {
6423
6394
  class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6424
6395
  onClick: n[6] ||= (e) => de()
6425
6396
  }, D(j(o).comments.cancel), 1)
6426
6397
  ])) : A("", !0),
6427
- y.value !== e.id && w.value !== e.id ? (f(), k("div", Fc, [I("button", {
6398
+ y.value !== e.id && w.value !== e.id ? (f(), k("div", Ic, [I("button", {
6428
6399
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6429
6400
  title: j(o).comments.reply,
6430
6401
  onClick: (t) => se(e.id)
6431
- }, [V(j(_i), {
6402
+ }, [V(j(vi), {
6432
6403
  size: 13,
6433
6404
  "stroke-width": 2,
6434
6405
  class: "tpl:text-[var(--tpl-primary)]"
6435
- })], 8, Ic), (e.replies?.length ?? 0) > 0 ? (f(), k("button", {
6406
+ })], 8, Lc), (e.replies?.length ?? 0) > 0 ? (f(), k("button", {
6436
6407
  key: 0,
6437
6408
  class: "tpl:flex tpl:items-center tpl:gap-0.5 tpl:text-[11px] tpl:font-medium tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6438
6409
  onClick: (t) => oe(e.id)
6439
- }, [S.value.has(e.id) ? (f(), N(j(Yr), {
6410
+ }, [S.value.has(e.id) ? (f(), N(j(Xr), {
6440
6411
  key: 0,
6441
6412
  size: 11,
6442
6413
  "stroke-width": 2
6443
- })) : (f(), N(j(Kr), {
6414
+ })) : (f(), N(j(qr), {
6444
6415
  key: 1,
6445
6416
  size: 11,
6446
6417
  "stroke-width": 2
6447
- })), z(" " + D((e.replies?.length ?? 0) === 1 ? j(a)(j(o).comments.replyOne, { count: String(e.replies?.length ?? 0) }) : j(a)(j(o).comments.replyMany, { count: String(e.replies?.length ?? 0) })), 1)], 8, Lc)) : A("", !0)])) : A("", !0)
6418
+ })), z(" " + D((e.replies?.length ?? 0) === 1 ? j(a)(j(o).comments.replyOne, { count: String(e.replies?.length ?? 0) }) : j(a)(j(o).comments.replyMany, { count: String(e.replies?.length ?? 0) })), 1)], 8, Rc)) : A("", !0)])) : A("", !0)
6448
6419
  ]),
6449
6420
  V(ie, { name: "tpl-replies" }, {
6450
- default: b(() => [S.value.has(e.id) && (e.replies?.length ?? 0) > 0 ? (f(), k("div", Rc, [(f(!0), k(R, null, h(e.replies, (t, r) => (f(), k("div", {
6421
+ default: b(() => [S.value.has(e.id) && (e.replies?.length ?? 0) > 0 ? (f(), k("div", zc, [(f(!0), k(R, null, h(e.replies, (t, r) => (f(), k("div", {
6451
6422
  key: t.id,
6452
6423
  class: F(["tpl-comment-reply-card tpl:relative tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-2.5", r < (e.replies?.length ?? 0) - 1 ? "tpl:mb-2" : ""])
6453
6424
  }, [
6454
- I("div", zc, [I("div", Bc, [
6455
- I("span", Vc, D(_e(t) ? j(o).comments.ownedByYou : t.author_name), 1),
6456
- I("span", Hc, D(ve(t.created_at)), 1),
6457
- t.updated_at === t.created_at ? A("", !0) : (f(), k("span", Uc, " (" + D(j(o).comments.edited) + ") ", 1))
6458
- ]), I("div", Wc, [_e(t) ? (f(), k("button", {
6425
+ I("div", Bc, [I("div", Vc, [
6426
+ I("span", Hc, D(_e(t) ? j(o).comments.ownedByYou : t.author_name), 1),
6427
+ I("span", Uc, D(ve(t.created_at)), 1),
6428
+ t.updated_at === t.created_at ? A("", !0) : (f(), k("span", Wc, " (" + D(j(o).comments.edited) + ") ", 1))
6429
+ ]), I("div", Gc, [_e(t) ? (f(), k("button", {
6459
6430
  key: 0,
6460
6431
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6461
6432
  title: j(o).comments.edit,
6462
6433
  onClick: (e) => le(t)
6463
- }, [V(j(pi), {
6434
+ }, [V(j(mi), {
6464
6435
  size: 11,
6465
6436
  "stroke-width": 2
6466
- })], 8, Gc)) : A("", !0), _e(t) ? (f(), k("button", {
6437
+ })], 8, Kc)) : A("", !0), _e(t) ? (f(), k("button", {
6467
6438
  key: 1,
6468
6439
  class: "tpl-comment-action tpl-comment-delete tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6469
6440
  title: j(o).comments.delete,
6470
6441
  onClick: (e) => ue(t.id)
6471
- }, [V(j(wi), {
6442
+ }, [V(j(Ti), {
6472
6443
  size: 11,
6473
6444
  "stroke-width": 2
6474
- })], 8, Kc)) : A("", !0)])]),
6475
- y.value === t.id ? (f(), k("div", qc, [c(I("textarea", {
6445
+ })], 8, qc)) : A("", !0)])]),
6446
+ y.value === t.id ? (f(), k("div", Jc, [c(I("textarea", {
6476
6447
  "onUpdate:modelValue": n[7] ||= (e) => x.value = e,
6477
6448
  class: "tpl:w-full tpl:resize-none tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-2 tpl:font-sans tpl:text-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
6478
6449
  rows: "2",
6479
6450
  onKeydown: (e) => xe(e, t.id)
6480
- }, null, 40, Jc), [[ae, x.value]]), I("div", Yc, [I("button", {
6451
+ }, null, 40, Yc), [[ae, x.value]]), I("div", Xc, [I("button", {
6481
6452
  class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
6482
6453
  disabled: !x.value.trim() || j(u).isSubmitting.value,
6483
6454
  onClick: (e) => me(t.id)
6484
- }, D(j(o).comments.save), 9, Xc), I("button", {
6455
+ }, D(j(o).comments.save), 9, Zc), I("button", {
6485
6456
  class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6486
6457
  onClick: n[8] ||= (e) => B()
6487
- }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", Zc, D(t.body), 1)),
6488
- w.value === t.id ? (f(), k("div", Qc, [
6489
- I("span", $c, D(j(o).comments.deleteConfirm), 1),
6458
+ }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", Qc, D(t.body), 1)),
6459
+ w.value === t.id ? (f(), k("div", $c, [
6460
+ I("span", el, D(j(o).comments.deleteConfirm), 1),
6490
6461
  I("button", {
6491
6462
  class: "tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-xs tpl:font-medium tpl:bg-[var(--tpl-danger)] tpl:text-[var(--tpl-bg)]",
6492
6463
  onClick: (e) => he(t.id)
6493
- }, D(j(o).comments.delete), 9, el),
6464
+ }, D(j(o).comments.delete), 9, tl),
6494
6465
  I("button", {
6495
6466
  class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6496
6467
  onClick: n[9] ||= (e) => de()
@@ -6500,30 +6471,30 @@ var ic = {
6500
6471
  _: 2
6501
6472
  }, 1024),
6502
6473
  V(ie, { name: "tpl-replies" }, {
6503
- default: b(() => [_.value === e.id ? (f(), k("div", tl, [I("div", nl, [c(I("textarea", {
6474
+ default: b(() => [_.value === e.id ? (f(), k("div", nl, [I("div", rl, [c(I("textarea", {
6504
6475
  "onUpdate:modelValue": n[10] ||= (e) => v.value = e,
6505
6476
  class: "tpl:flex-1 tpl:resize-none tpl:rounded-md tpl:border tpl:px-2.5 tpl:py-2 tpl:font-sans tpl:text-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
6506
6477
  placeholder: j(o).comments.replyPlaceholder,
6507
6478
  rows: "2",
6508
6479
  onKeydown: (t) => be(t, e.id)
6509
- }, null, 40, rl), [[ae, v.value]]), I("div", il, [I("button", {
6480
+ }, null, 40, il), [[ae, v.value]]), I("div", al, [I("button", {
6510
6481
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-colors tpl:duration-150 tpl:disabled:opacity-40 tpl:text-[var(--tpl-primary)]",
6511
6482
  disabled: !v.value.trim() || j(u).isSubmitting.value,
6512
6483
  onClick: (t) => pe(e.id)
6513
- }, [V(j(vi), {
6484
+ }, [V(j(yi), {
6514
6485
  size: 14,
6515
6486
  "stroke-width": 2
6516
- })], 8, al), I("button", {
6487
+ })], 8, ol), I("button", {
6517
6488
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6518
6489
  onClick: n[11] ||= (e) => ce()
6519
- }, [V(j(ki), {
6490
+ }, [V(j(Ai), {
6520
6491
  size: 14,
6521
6492
  "stroke-width": 2
6522
6493
  })])])])])) : A("", !0)]),
6523
6494
  _: 2
6524
6495
  }, 1024)
6525
6496
  ]))), 128))]))]),
6526
- I("div", ol, [ne.value ? (f(), k("div", sl, D(j(o).comments.saveTemplateFirst), 1)) : (f(), k("div", cl, [c(I("textarea", {
6497
+ I("div", sl, [ne.value ? (f(), k("div", cl, D(j(o).comments.saveTemplateFirst), 1)) : (f(), k("div", ll, [c(I("textarea", {
6527
6498
  ref_key: "newCommentInput",
6528
6499
  ref: ee,
6529
6500
  "onUpdate:modelValue": n[12] ||= (e) => g.value = e,
@@ -6532,46 +6503,46 @@ var ic = {
6532
6503
  disabled: j(u).isSubmitting.value,
6533
6504
  rows: "2",
6534
6505
  onKeydown: ye
6535
- }, null, 40, ll), [[ae, g.value]]), I("button", {
6506
+ }, null, 40, ul), [[ae, g.value]]), I("button", {
6536
6507
  class: "tpl-comments-send-btn tpl:flex tpl:shrink-0 tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1.5 tpl:transition-all tpl:duration-150 tpl:disabled:opacity-40 tpl:text-[var(--tpl-primary)]",
6537
6508
  disabled: !g.value.trim() || j(u).isSubmitting.value,
6538
6509
  onClick: fe
6539
- }, [j(u).isSubmitting.value ? (f(), N(j(ui), {
6510
+ }, [j(u).isSubmitting.value ? (f(), N(j(di), {
6540
6511
  key: 0,
6541
6512
  class: "tpl-spinner",
6542
6513
  size: 16,
6543
6514
  "stroke-width": 2
6544
- })) : (f(), N(j(vi), {
6515
+ })) : (f(), N(j(yi), {
6545
6516
  key: 1,
6546
6517
  size: 16,
6547
6518
  "stroke-width": 2
6548
- }))], 8, ul)]))])
6519
+ }))], 8, dl)]))])
6549
6520
  ])) : A("", !0)]),
6550
6521
  _: 1
6551
6522
  }));
6552
6523
  }
6553
- }), fl = /* @__PURE__ */ e({ default: () => pl }), pl = /*#__PURE__*/ Pi(dl, [["__scopeId", "data-v-d204f573"]]), ml = {
6524
+ }), pl = /* @__PURE__ */ e({ default: () => ml }), ml = /*#__PURE__*/ Fi(fl, [["__scopeId", "data-v-d204f573"]]), hl = {
6554
6525
  key: 0,
6555
6526
  class: "tpl-design-sidebar tpl:absolute tpl:top-14 tpl:right-0 tpl:bottom-0 tpl:z-panel tpl:flex tpl:w-[360px] tpl:flex-col tpl:border-l tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)]"
6556
- }, hl = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, gl = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, _l = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, vl = {
6527
+ }, gl = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, _l = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, vl = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, yl = {
6557
6528
  key: 0,
6558
6529
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6559
- }, yl = { class: "tpl:flex tpl:w-full tpl:flex-col tpl:items-center tpl:gap-3" }, bl = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, xl = {
6530
+ }, bl = { class: "tpl:flex tpl:w-full tpl:flex-col tpl:items-center tpl:gap-3" }, xl = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Sl = {
6560
6531
  key: 1,
6561
6532
  class: "tpl:flex tpl:flex-col tpl:gap-4"
6562
- }, Sl = { class: "tpl:flex tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, Cl = {
6533
+ }, Cl = { class: "tpl:flex tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, wl = {
6563
6534
  key: 0,
6564
6535
  class: "tpl:flex tpl:flex-col tpl:gap-2"
6565
- }, wl = { class: "tpl:relative tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, Tl = ["src", "alt"], El = {
6536
+ }, Tl = { class: "tpl:relative tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, El = ["src", "alt"], Dl = {
6566
6537
  key: 1,
6567
6538
  class: "tpl:flex tpl:h-32 tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2"
6568
- }, Dl = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Ol = { class: "tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, kl = { class: "tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Al = ["accept"], jl = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, Ml = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Nl = ["placeholder"], Pl = {
6539
+ }, Ol = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, kl = { class: "tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Al = { class: "tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, jl = ["accept"], Ml = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, Nl = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Pl = ["placeholder"], Fl = {
6569
6540
  key: 0,
6570
6541
  class: "tpl:flex tpl:flex-col tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:px-3 tpl:py-3 tpl:bg-[var(--tpl-warning-light)] tpl:border tpl:border-[var(--tpl-warning)]"
6571
- }, Fl = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, Il = { class: "tpl:flex tpl:gap-2" }, Ll = {
6542
+ }, Il = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, Ll = { class: "tpl:flex tpl:gap-2" }, Rl = {
6572
6543
  key: 1,
6573
6544
  class: "tpl:flex tpl:items-start tpl:gap-2 tpl:rounded-lg tpl:px-3 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-danger-light)] tpl:text-[var(--tpl-danger)]"
6574
- }, Rl = ["disabled"], zl = { class: "tpl:m-0 tpl:pt-1 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Bl = /*@__PURE__*/ B({
6545
+ }, zl = ["disabled"], Bl = { class: "tpl:m-0 tpl:pt-1 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Vl = /*@__PURE__*/ B({
6575
6546
  __name: "DesignReferenceSidebar",
6576
6547
  props: {
6577
6548
  visible: { type: Boolean },
@@ -6579,8 +6550,8 @@ var ic = {
6579
6550
  },
6580
6551
  emits: ["close", "apply"],
6581
6552
  setup(e, { emit: t }) {
6582
- let n = e, r = t, { t: i } = Wi(), a = J(In, "DesignReferenceSidebar"), o = ss({
6583
- authManager: J(or, "DesignReferenceSidebar"),
6553
+ let n = e, r = t, { t: i } = Gi(), a = J(In, "DesignReferenceSidebar"), o = cs({
6554
+ authManager: J(sr, "DesignReferenceSidebar"),
6584
6555
  getTemplateId: () => a.state.template?.id ?? null,
6585
6556
  onApply: (e) => r("apply", e)
6586
6557
  }), s = C(null), l = C("image"), u = C(null), d = C(""), p = C(null), m = C(!1), h = C(!1), g = O(() => o.isGenerating.value ? !1 : u.value !== null);
@@ -6651,17 +6622,17 @@ var ic = {
6651
6622
  "leave-from-class": "tpl:translate-x-0",
6652
6623
  "leave-to-class": "tpl:translate-x-full"
6653
6624
  }, {
6654
- default: b(() => [e.visible ? (f(), k("div", ml, [I("div", hl, [I("div", gl, [V(j(si), {
6625
+ default: b(() => [e.visible ? (f(), k("div", hl, [I("div", gl, [I("div", _l, [V(j(ci), {
6655
6626
  size: 13,
6656
6627
  "stroke-width": 2
6657
6628
  }), I("span", null, D(j(i).designReference.title), 1)]), I("button", {
6658
6629
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6659
6630
  onClick: n[0] ||= (e) => r("close")
6660
- }, [V(j(ki), {
6631
+ }, [V(j(Ai), {
6661
6632
  size: 14,
6662
6633
  "stroke-width": 2
6663
- })])]), I("div", _l, [j(o).isGenerating.value ? (f(), k("div", vl, [I("div", yl, [V(Ri), I("p", bl, D(j(i).designReference.generating), 1)])])) : (f(), k("div", xl, [
6664
- I("div", Sl, [I("button", {
6634
+ })])]), I("div", vl, [j(o).isGenerating.value ? (f(), k("div", yl, [I("div", bl, [V(zi), I("p", xl, D(j(i).designReference.generating), 1)])])) : (f(), k("div", Sl, [
6635
+ I("div", Cl, [I("button", {
6665
6636
  class: "tpl:flex tpl:flex-1 tpl:items-center tpl:justify-center tpl:gap-1.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:px-2 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-150",
6666
6637
  style: L({
6667
6638
  backgroundColor: l.value === "image" ? "var(--tpl-bg)" : "transparent",
@@ -6669,7 +6640,7 @@ var ic = {
6669
6640
  boxShadow: l.value === "image" ? "var(--tpl-shadow)" : "none"
6670
6641
  }),
6671
6642
  onClick: n[1] ||= (e) => _("image")
6672
- }, [V(j(ri), {
6643
+ }, [V(j(ii), {
6673
6644
  size: 12,
6674
6645
  "stroke-width": 2
6675
6646
  }), z(" " + D(j(i).designReference.uploadImage), 1)], 4), I("button", {
@@ -6680,23 +6651,23 @@ var ic = {
6680
6651
  boxShadow: l.value === "pdf" ? "var(--tpl-shadow)" : "none"
6681
6652
  }),
6682
6653
  onClick: n[2] ||= (e) => _("pdf")
6683
- }, [V(j(ii), {
6654
+ }, [V(j(ai), {
6684
6655
  size: 12,
6685
6656
  "stroke-width": 2
6686
6657
  }), z(" " + D(j(i).designReference.uploadPdf), 1)], 4)]),
6687
- I("div", null, [u.value ? (f(), k("div", Cl, [I("div", wl, [p.value ? (f(), k("img", {
6658
+ I("div", null, [u.value ? (f(), k("div", wl, [I("div", Tl, [p.value ? (f(), k("img", {
6688
6659
  key: 0,
6689
6660
  src: p.value,
6690
6661
  alt: u.value.name,
6691
6662
  class: "tpl:h-auto tpl:max-h-48 tpl:w-full tpl:object-contain"
6692
- }, null, 8, Tl)) : (f(), k("div", El, [V(j(ii), {
6663
+ }, null, 8, El)) : (f(), k("div", Dl, [V(j(ai), {
6693
6664
  size: 32,
6694
6665
  "stroke-width": 1.5,
6695
6666
  class: "tpl:text-[var(--tpl-text-dim)]"
6696
- }), I("span", Dl, D(u.value.name), 1)])), I("button", {
6667
+ }), I("span", Ol, D(u.value.name), 1)])), I("button", {
6697
6668
  class: "tpl:absolute tpl:top-2 tpl:right-2 tpl:rounded-full tpl:p-1 tpl:transition-colors tpl:duration-150 tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text-muted)] tpl:shadow-[var(--tpl-shadow)]",
6698
6669
  onClick: x
6699
- }, [V(j(ki), {
6670
+ }, [V(j(Ai), {
6700
6671
  size: 12,
6701
6672
  "stroke-width": 2
6702
6673
  })])])])) : (f(), k("div", {
@@ -6711,13 +6682,13 @@ var ic = {
6711
6682
  onDragleave: w,
6712
6683
  onDrop: ee
6713
6684
  }, [
6714
- V(j(Di), {
6685
+ V(j(Oi), {
6715
6686
  size: 24,
6716
6687
  "stroke-width": 1.5,
6717
6688
  class: "tpl:text-[var(--tpl-text-dim)]"
6718
6689
  }),
6719
- I("span", Ol, D(j(i).designReference.dropHint), 1),
6720
- I("span", kl, D(l.value === "image" ? j(i).designReference.acceptedImages : j(i).designReference.acceptedPdf), 1)
6690
+ I("span", kl, D(j(i).designReference.dropHint), 1),
6691
+ I("span", Al, D(l.value === "image" ? j(i).designReference.acceptedImages : j(i).designReference.acceptedPdf), 1)
6721
6692
  ], 36)), I("input", {
6722
6693
  ref_key: "fileInput",
6723
6694
  ref: s,
@@ -6725,14 +6696,14 @@ var ic = {
6725
6696
  class: "tpl:hidden",
6726
6697
  accept: l.value === "image" ? "image/png,image/jpeg,image/webp" : "application/pdf",
6727
6698
  onChange: v
6728
- }, null, 40, Al)]),
6729
- I("div", jl, [I("label", Ml, D(j(i).designReference.promptLabel), 1), c(I("textarea", {
6699
+ }, null, 40, jl)]),
6700
+ I("div", Ml, [I("label", Nl, D(j(i).designReference.promptLabel), 1), c(I("textarea", {
6730
6701
  "onUpdate:modelValue": n[4] ||= (e) => d.value = e,
6731
6702
  class: F(["tpl:min-h-[72px] tpl:w-full tpl:resize-none tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:px-3 tpl:py-2 tpl:font-sans tpl:text-sm tpl:outline-none tpl:transition-colors tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)]", ["tpl-design-prompt-input"]]),
6732
6703
  placeholder: j(i).designReference.promptPlaceholder,
6733
6704
  rows: "3"
6734
- }, null, 8, Nl), [[ae, d.value]])]),
6735
- m.value ? (f(), k("div", Pl, [I("p", Fl, D(j(i).designReference.replaceWarning), 1), I("div", Il, [I("button", {
6705
+ }, null, 8, Pl), [[ae, d.value]])]),
6706
+ m.value ? (f(), k("div", Fl, [I("p", Il, D(j(i).designReference.replaceWarning), 1), I("div", Ll, [I("button", {
6736
6707
  class: "tpl:flex-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-150 tpl:text-[var(--tpl-text-muted)] tpl:border tpl:border-[var(--tpl-border)]",
6737
6708
  style: { "background-color": "transparent" },
6738
6709
  onClick: E
@@ -6740,7 +6711,7 @@ var ic = {
6740
6711
  class: "tpl:flex-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
6741
6712
  onClick: T
6742
6713
  }, D(j(i).designReference.replaceConfirm), 1)])])) : A("", !0),
6743
- j(o).error.value ? (f(), k("div", Ll, [V(j(Xr), {
6714
+ j(o).error.value ? (f(), k("div", Rl, [V(j(Zr), {
6744
6715
  size: 14,
6745
6716
  "stroke-width": 2,
6746
6717
  class: "tpl:mt-0.5 tpl:shrink-0"
@@ -6750,35 +6721,35 @@ var ic = {
6750
6721
  class: "tpl:flex tpl:w-full tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded-[var(--tpl-radius-sm)] tpl:px-4 tpl:py-2.5 tpl:text-sm tpl:font-medium tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:disabled:cursor-not-allowed tpl:disabled:opacity-50 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
6751
6722
  disabled: !g.value,
6752
6723
  onClick: T
6753
- }, [V(j(si), {
6724
+ }, [V(j(ci), {
6754
6725
  size: 16,
6755
6726
  "stroke-width": 2
6756
- }), z(" " + D(j(i).designReference.generate), 1)], 8, Rl)),
6757
- I("p", zl, D(j(i).aiMenu.disclaimer), 1)
6727
+ }), z(" " + D(j(i).designReference.generate), 1)], 8, zl)),
6728
+ I("p", Bl, D(j(i).aiMenu.disclaimer), 1)
6758
6729
  ]))])])) : A("", !0)]),
6759
6730
  _: 1
6760
6731
  }));
6761
6732
  }
6762
- }), Vl = /* @__PURE__ */ e({ default: () => Hl }), Hl = /*#__PURE__*/ Pi(Bl, [["__scopeId", "data-v-bdbf8d0d"]]), Ul = ["disabled", "title"], Wl = ["title"], Gl = {
6733
+ }), Hl = /* @__PURE__ */ e({ default: () => Ul }), Ul = /*#__PURE__*/ Fi(Vl, [["__scopeId", "data-v-bdbf8d0d"]]), Wl = ["disabled", "title"], Gl = ["title"], Kl = {
6763
6734
  key: 0,
6764
6735
  class: "tpl-scale-in tpl:absolute tpl:top-full tpl:left-1/2 tpl:z-50 tpl:mt-2 tpl:w-72 tpl:-translate-x-1/2 tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:bg-[var(--tpl-bg-elevated)] tpl:border tpl:border-[var(--tpl-border)] tpl:shadow-[var(--tpl-shadow-lg)]",
6765
6736
  style: {
6766
6737
  "backdrop-filter": "blur(8px)",
6767
6738
  "-webkit-backdrop-filter": "blur(8px)"
6768
6739
  }
6769
- }, Kl = { class: "tpl:border-b tpl:px-3 tpl:py-2 tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)] tpl:border-[var(--tpl-border)]" }, ql = {
6740
+ }, ql = { class: "tpl:border-b tpl:px-3 tpl:py-2 tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)] tpl:border-[var(--tpl-border)]" }, Jl = {
6770
6741
  key: 0,
6771
6742
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:py-8"
6772
- }, Jl = {
6743
+ }, Yl = {
6773
6744
  key: 1,
6774
6745
  class: "tpl:px-3 tpl:py-6 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
6775
- }, Yl = {
6746
+ }, Xl = {
6776
6747
  key: 2,
6777
6748
  class: "tpl:max-h-64 tpl:overflow-y-auto"
6778
- }, Xl = ["disabled", "onClick"], Zl = { class: "tpl:flex tpl:flex-col tpl:gap-0.5" }, Ql = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, $l = {
6749
+ }, Zl = ["disabled", "onClick"], Ql = { class: "tpl:flex tpl:flex-col tpl:gap-0.5" }, $l = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, eu = {
6779
6750
  key: 0,
6780
6751
  class: "tpl:rounded tpl:px-1 tpl:py-0.5 tpl:text-[10px] tpl:font-normal tpl:bg-[var(--tpl-bg-active)] tpl:text-[var(--tpl-text-muted)]"
6781
- }, eu = ["disabled", "title"], tu = /*@__PURE__*/ B({
6752
+ }, tu = ["disabled", "title"], nu = /*@__PURE__*/ B({
6782
6753
  __name: "SnapshotHistory",
6783
6754
  props: {
6784
6755
  snapshots: {},
@@ -6787,7 +6758,7 @@ var ic = {
6787
6758
  },
6788
6759
  emits: ["load", "navigate"],
6789
6760
  setup(e, { emit: t }) {
6790
- let n = e, r = t, { format: i } = Y(), { t: a } = Wi(), o = C(!1), s = C(null), c = C(-1);
6761
+ let n = e, r = t, { format: i } = Y(), { t: a } = Gi(), o = C(!1), s = C(null), c = C(-1);
6791
6762
  H(() => n.snapshots.length, () => {
6792
6763
  c.value = -1;
6793
6764
  });
@@ -6806,7 +6777,7 @@ var ic = {
6806
6777
  t !== -1 && (c.value = t, r("navigate", n.snapshots[t])), o.value = !1;
6807
6778
  }
6808
6779
  function _(e) {
6809
- let t = rc(e, a.snapshotHistory, i, 7);
6780
+ let t = ic(e, a.snapshotHistory, i, 7);
6810
6781
  return t === null ? new Date(e).toLocaleDateString(void 0, {
6811
6782
  month: "short",
6812
6783
  day: "numeric",
@@ -6826,34 +6797,34 @@ var ic = {
6826
6797
  disabled: !u.value,
6827
6798
  title: j(a).snapshotHistory.olderSnapshot,
6828
6799
  onClick: M(p, ["stop"])
6829
- }, [V(j(qr), {
6800
+ }, [V(j(Jr), {
6830
6801
  size: 14,
6831
6802
  "stroke-width": 2
6832
- })], 8, Ul),
6803
+ })], 8, Wl),
6833
6804
  I("button", {
6834
6805
  class: "tpl:flex tpl:h-7 tpl:shrink-0 tpl:cursor-pointer tpl:items-center tpl:gap-0.5 tpl:rounded-[var(--tpl-radius-sm)] tpl:border-none tpl:bg-transparent tpl:px-1.5 tpl:transition-colors tpl:duration-150 hover:tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-muted)]",
6835
6806
  title: j(a).snapshotHistory.tooltip,
6836
6807
  onClick: M(m, ["stop"])
6837
- }, [V(j(Qr), {
6808
+ }, [V(j($r), {
6838
6809
  size: 16,
6839
6810
  "stroke-width": 1.5
6840
- }), V(j(Kr), {
6811
+ }), V(j(qr), {
6841
6812
  class: F(["tpl:transition-transform tpl:duration-150", { "tpl:rotate-180": o.value }]),
6842
6813
  size: 10,
6843
6814
  "stroke-width": 2
6844
- }, null, 8, ["class"])], 8, Wl),
6815
+ }, null, 8, ["class"])], 8, Gl),
6845
6816
  V(ie, { name: "tpl-dropdown" }, {
6846
- default: b(() => [o.value ? (f(), k("div", Gl, [I("div", Kl, D(j(a).snapshotHistory.dropdownTitle), 1), e.isLoading ? (f(), k("div", ql, [V(j(ui), {
6817
+ default: b(() => [o.value ? (f(), k("div", Kl, [I("div", ql, D(j(a).snapshotHistory.dropdownTitle), 1), e.isLoading ? (f(), k("div", Jl, [V(j(di), {
6847
6818
  class: "tpl:animate-spin tpl:text-[var(--tpl-primary)]",
6848
6819
  size: 20,
6849
6820
  "stroke-width": 2
6850
- })])) : e.snapshots.length === 0 ? (f(), k("div", Jl, D(j(a).snapshotHistory.noSnapshots), 1)) : (f(), k("div", Yl, [(f(!0), k(R, null, h(e.snapshots, (t) => (f(), k("button", {
6821
+ })])) : e.snapshots.length === 0 ? (f(), k("div", Yl, D(j(a).snapshotHistory.noSnapshots), 1)) : (f(), k("div", Xl, [(f(!0), k(R, null, h(e.snapshots, (t) => (f(), k("button", {
6851
6822
  key: t.id,
6852
6823
  class: "tpl:flex tpl:w-full tpl:cursor-pointer tpl:items-center tpl:border-b tpl:border-b-[var(--tpl-border-light)] tpl:border-l-2 tpl:border-l-transparent tpl:px-3 tpl:py-2.5 tpl:text-left tpl:transition-all tpl:duration-150 last:tpl:border-b-0 hover:tpl:border-l-[var(--tpl-primary)] hover:tpl:bg-[var(--tpl-bg-hover)]",
6853
6824
  style: { "background-color": "transparent" },
6854
6825
  disabled: e.isRestoring,
6855
6826
  onClick: (e) => g(t.id)
6856
- }, [I("div", Zl, [I("div", Ql, [I("span", null, D(_(t.created_at)), 1), t.is_autosave ? (f(), k("span", $l, D(j(a).snapshotHistory.auto), 1)) : A("", !0)])])], 8, Xl))), 128))]))])) : A("", !0)]),
6827
+ }, [I("div", Ql, [I("div", $l, [I("span", null, D(_(t.created_at)), 1), t.is_autosave ? (f(), k("span", eu, D(j(a).snapshotHistory.auto), 1)) : A("", !0)])])], 8, Zl))), 128))]))])) : A("", !0)]),
6857
6828
  _: 1
6858
6829
  }),
6859
6830
  I("button", {
@@ -6861,74 +6832,74 @@ var ic = {
6861
6832
  disabled: !l.value,
6862
6833
  title: j(a).snapshotHistory.newerSnapshot,
6863
6834
  onClick: M(d, ["stop"])
6864
- }, [V(j(Jr), {
6835
+ }, [V(j(Yr), {
6865
6836
  size: 14,
6866
6837
  "stroke-width": 2
6867
- })], 8, eu)
6838
+ })], 8, tu)
6868
6839
  ], 512));
6869
6840
  }
6870
- }), nu = /* @__PURE__ */ e({ default: () => ru }), ru = tu;
6841
+ }), ru = /* @__PURE__ */ e({ default: () => iu }), iu = nu;
6871
6842
  //#endregion
6872
6843
  //#region src/cloud/utils/scoringStyles.ts
6873
- function iu(e) {
6844
+ function au(e) {
6874
6845
  return e >= 80 ? "var(--tpl-success)" : e >= 60 ? "var(--tpl-warning)" : "var(--tpl-danger)";
6875
6846
  }
6876
- function au(e) {
6847
+ function ou(e) {
6877
6848
  return e >= 80 ? "var(--tpl-success-light)" : e >= 60 ? "var(--tpl-warning-light)" : "var(--tpl-danger-light)";
6878
6849
  }
6879
- function ou(e) {
6850
+ function su(e) {
6880
6851
  return e === "high" ? "var(--tpl-danger)" : e === "medium" ? "var(--tpl-warning)" : "var(--tpl-text-muted)";
6881
6852
  }
6882
- function su(e) {
6853
+ function cu(e) {
6883
6854
  return e === "high" ? "var(--tpl-danger-light)" : e === "medium" ? "var(--tpl-warning-light)" : "var(--tpl-bg-hover)";
6884
6855
  }
6885
6856
  //#endregion
6886
6857
  //#region src/cloud/components/TemplateScoringPanel.vue?vue&type=script&setup=true&lang.ts
6887
- var cu = {
6858
+ var lu = {
6888
6859
  key: 0,
6889
6860
  class: "tpl-scoring-panel tpl:absolute tpl:top-14 tpl:right-0 tpl:bottom-0 tpl:z-panel tpl:flex tpl:w-[360px] tpl:flex-col tpl:border-l tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)]"
6890
- }, lu = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, uu = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, du = { class: "tpl:flex tpl:items-center tpl:gap-1" }, fu = ["title"], pu = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, mu = {
6861
+ }, uu = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, du = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, fu = { class: "tpl:flex tpl:items-center tpl:gap-1" }, pu = ["title"], mu = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, hu = {
6891
6862
  key: 0,
6892
6863
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6893
- }, hu = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, gu = {
6864
+ }, gu = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, _u = {
6894
6865
  key: 1,
6895
6866
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6896
- }, _u = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, vu = {
6867
+ }, vu = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, yu = {
6897
6868
  key: 2,
6898
6869
  class: "tpl:flex tpl:flex-col tpl:gap-4"
6899
- }, yu = { class: "tpl:text-xs tpl:font-medium tpl:uppercase tpl:tracking-wider tpl:text-[var(--tpl-text-muted)]" }, bu = {
6870
+ }, bu = { class: "tpl:text-xs tpl:font-medium tpl:uppercase tpl:tracking-wider tpl:text-[var(--tpl-text-muted)]" }, xu = {
6900
6871
  key: 0,
6901
6872
  class: "tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
6902
- }, xu = {
6873
+ }, Su = {
6903
6874
  key: 0,
6904
6875
  class: "tpl:flex tpl:items-start tpl:gap-2 tpl:rounded-lg tpl:px-3 tpl:py-2 tpl:text-xs tpl:bg-[var(--tpl-danger-light)] tpl:text-[var(--tpl-danger)]"
6905
- }, Su = ["onClick"], Cu = { class: "tpl:flex-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, wu = {
6876
+ }, Cu = ["onClick"], wu = { class: "tpl:flex-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, Tu = {
6906
6877
  key: 0,
6907
6878
  class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]"
6908
- }, Tu = {
6879
+ }, Eu = {
6909
6880
  key: 0,
6910
6881
  class: "tpl:border-t tpl:border-[var(--tpl-border)]"
6911
- }, Eu = {
6882
+ }, Du = {
6912
6883
  key: 0,
6913
6884
  class: "tpl:px-3 tpl:py-3 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
6914
- }, Du = { class: "tpl:flex tpl:items-start tpl:gap-2" }, Ou = { class: "tpl:flex-1 tpl:min-w-0" }, ku = { class: "tpl:flex tpl:items-start tpl:gap-1.5" }, Au = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, ju = {
6885
+ }, Ou = { class: "tpl:flex tpl:items-start tpl:gap-2" }, ku = { class: "tpl:flex-1 tpl:min-w-0" }, Au = { class: "tpl:flex tpl:items-start tpl:gap-1.5" }, ju = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, Mu = {
6915
6886
  key: 0,
6916
6887
  class: "tpl:mt-1 tpl:text-[11px] tpl:leading-snug tpl:text-[var(--tpl-text-dim)]"
6917
- }, Mu = {
6888
+ }, Nu = {
6918
6889
  key: 1,
6919
6890
  class: "tpl:mt-2 tpl:flex tpl:justify-center"
6920
- }, Nu = ["disabled", "onClick"], Pu = {
6891
+ }, Pu = ["disabled", "onClick"], Fu = {
6921
6892
  key: 0,
6922
6893
  class: "tpl:mt-1.5 tpl:text-[11px] tpl:text-[var(--tpl-danger)]"
6923
- }, Fu = {
6894
+ }, Iu = {
6924
6895
  key: 3,
6925
6896
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6926
- }, Iu = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Lu = { class: "tpl:m-0 tpl:px-4 tpl:pb-2 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Ru = /*@__PURE__*/ B({
6897
+ }, Lu = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ru = { class: "tpl:m-0 tpl:px-4 tpl:pb-2 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, zu = /*@__PURE__*/ B({
6927
6898
  __name: "TemplateScoringPanel",
6928
6899
  props: { visible: { type: Boolean } },
6929
6900
  emits: ["close"],
6930
6901
  setup(e, { emit: t }) {
6931
- let n = e, r = t, { t: i } = Wi(), a = J(In, "TemplateScoringPanel"), o = J(ur, "TemplateScoringPanel"), s = v(qn, []), c = C({
6902
+ let n = e, r = t, { t: i } = Gi(), a = J(In, "TemplateScoringPanel"), o = J(dr, "TemplateScoringPanel"), s = v(Jn, []), c = C({
6932
6903
  spam: !0,
6933
6904
  readability: !0,
6934
6905
  accessibility: !0,
@@ -6943,10 +6914,10 @@ var cu = {
6943
6914
  "accessibility",
6944
6915
  "bestPractices"
6945
6916
  ], p = {
6946
- spam: xi,
6947
- readability: ni,
6948
- accessibility: Si,
6949
- bestPractices: Ai
6917
+ spam: Si,
6918
+ readability: ri,
6919
+ accessibility: Ci,
6920
+ bestPractices: ji
6950
6921
  };
6951
6922
  function m() {
6952
6923
  o.score(a.content.value, s);
@@ -6974,50 +6945,50 @@ var cu = {
6974
6945
  "leave-from-class": "tpl:translate-x-0",
6975
6946
  "leave-to-class": "tpl:translate-x-full"
6976
6947
  }, {
6977
- default: b(() => [e.visible ? (f(), k("div", cu, [I("div", lu, [I("div", uu, [V(j(bi), {
6948
+ default: b(() => [e.visible ? (f(), k("div", lu, [I("div", uu, [I("div", du, [V(j(xi), {
6978
6949
  size: 13,
6979
6950
  "stroke-width": 2
6980
- }), I("span", null, D(j(i).scoring.title), 1)]), I("div", du, [j(o).scoringResult.value && !j(o).isScoring.value ? (f(), k("button", {
6951
+ }), I("span", null, D(j(i).scoring.title), 1)]), I("div", fu, [j(o).scoringResult.value && !j(o).isScoring.value ? (f(), k("button", {
6981
6952
  key: 0,
6982
6953
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6983
6954
  title: j(i).scoring.rescore,
6984
6955
  onClick: n[0] ||= (e) => m()
6985
- }, [V(j(gi), {
6956
+ }, [V(j(_i), {
6986
6957
  size: 14,
6987
6958
  "stroke-width": 2
6988
- })], 8, fu)) : A("", !0), I("button", {
6959
+ })], 8, pu)) : A("", !0), I("button", {
6989
6960
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6990
6961
  onClick: n[1] ||= (e) => r("close")
6991
- }, [V(j(ki), {
6962
+ }, [V(j(Ai), {
6992
6963
  size: 14,
6993
6964
  "stroke-width": 2
6994
- })])])]), I("div", pu, [j(o).isScoring.value ? (f(), k("div", mu, [I("p", hu, D(j(i).scoring.scoring), 1), V(Ri, { class: "tpl:w-3/4" })])) : j(o).error.value && !j(o).scoringResult.value ? (f(), k("div", gu, [
6995
- V(j(Xr), {
6965
+ })])])]), I("div", mu, [j(o).isScoring.value ? (f(), k("div", hu, [I("p", gu, D(j(i).scoring.scoring), 1), V(zi, { class: "tpl:w-3/4" })])) : j(o).error.value && !j(o).scoringResult.value ? (f(), k("div", _u, [
6966
+ V(j(Zr), {
6996
6967
  size: 32,
6997
6968
  "stroke-width": 1.5,
6998
6969
  class: "tpl:text-[var(--tpl-danger)]"
6999
6970
  }),
7000
- I("p", _u, D(j(i).scoring.error), 1),
6971
+ I("p", vu, D(j(i).scoring.error), 1),
7001
6972
  I("button", {
7002
6973
  class: "tpl:mt-2 tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded-md tpl:border tpl:px-3 tpl:py-1.5 tpl:text-xs tpl:font-medium tpl:transition-all tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text-muted)]",
7003
6974
  onClick: n[2] ||= (e) => m()
7004
- }, [V(j(gi), {
6975
+ }, [V(j(_i), {
7005
6976
  size: 12,
7006
6977
  "stroke-width": 2
7007
6978
  }), z(" " + D(j(i).scoring.rescore), 1)])
7008
- ])) : j(o).scoringResult.value ? (f(), k("div", vu, [
6979
+ ])) : j(o).scoringResult.value ? (f(), k("div", yu, [
7009
6980
  I("div", {
7010
6981
  class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:p-5",
7011
- style: L({ backgroundColor: j(au)(j(o).scoringResult.value.score) })
6982
+ style: L({ backgroundColor: j(ou)(j(o).scoringResult.value.score) })
7012
6983
  }, [
7013
6984
  I("span", {
7014
6985
  class: "tpl:text-4xl tpl:font-bold tpl:tabular-nums",
7015
- style: L({ color: j(iu)(j(o).scoringResult.value.score) })
6986
+ style: L({ color: j(au)(j(o).scoringResult.value.score) })
7016
6987
  }, D(j(o).scoringResult.value.score), 5),
7017
- I("span", yu, D(j(i).scoring.overallScore), 1),
7018
- _() > 0 ? (f(), k("span", bu, D(_()) + " " + D(j(i).scoring.findings), 1)) : A("", !0)
6988
+ I("span", bu, D(j(i).scoring.overallScore), 1),
6989
+ _() > 0 ? (f(), k("span", xu, D(_()) + " " + D(j(i).scoring.findings), 1)) : A("", !0)
7019
6990
  ], 4),
7020
- j(o).fixError.value ? (f(), k("div", xu, [V(j(Xr), {
6991
+ j(o).fixError.value ? (f(), k("div", Su, [V(j(Zr), {
7021
6992
  size: 14,
7022
6993
  "stroke-width": 2,
7023
6994
  class: "tpl:mt-0.5 tpl:shrink-0"
@@ -7032,74 +7003,74 @@ var cu = {
7032
7003
  (f(), N(d(p[e]), {
7033
7004
  size: 14,
7034
7005
  "stroke-width": 2,
7035
- style: L({ color: j(iu)(j(o).scoringResult.value.categories[e].score) })
7006
+ style: L({ color: j(au)(j(o).scoringResult.value.categories[e].score) })
7036
7007
  }, null, 8, ["style"])),
7037
- I("span", Cu, D(j(i).scoring.categories[e]), 1),
7008
+ I("span", wu, D(j(i).scoring.categories[e]), 1),
7038
7009
  I("span", {
7039
7010
  class: "tpl:rounded-full tpl:px-2 tpl:py-0.5 tpl:text-xs tpl:font-semibold tpl:tabular-nums",
7040
7011
  style: L({
7041
- color: j(iu)(j(o).scoringResult.value.categories[e].score),
7042
- backgroundColor: j(au)(j(o).scoringResult.value.categories[e].score)
7012
+ color: j(au)(j(o).scoringResult.value.categories[e].score),
7013
+ backgroundColor: j(ou)(j(o).scoringResult.value.categories[e].score)
7043
7014
  })
7044
7015
  }, D(j(o).scoringResult.value.categories[e].score), 5),
7045
- j(o).scoringResult.value.categories[e].findings.length > 0 ? (f(), k("span", wu, D(j(o).scoringResult.value.categories[e].findings.length), 1)) : A("", !0),
7046
- V(j(Kr), {
7016
+ j(o).scoringResult.value.categories[e].findings.length > 0 ? (f(), k("span", Tu, D(j(o).scoringResult.value.categories[e].findings.length), 1)) : A("", !0),
7017
+ V(j(qr), {
7047
7018
  size: 12,
7048
7019
  "stroke-width": 2,
7049
7020
  class: F(["tpl:transition-transform tpl:duration-200 tpl:text-[var(--tpl-text-dim)]", c.value[e] ? "tpl:rotate-0" : "tpl:-rotate-90"])
7050
7021
  }, null, 8, ["class"])
7051
- ], 8, Su), c.value[e] ? (f(), k("div", Tu, [j(o).scoringResult.value.categories[e].findings.length === 0 ? (f(), k("div", Eu, D(j(i).scoring.noFindings), 1)) : A("", !0), (f(!0), k(R, null, h(j(o).scoringResult.value.categories[e].findings, (e) => (f(), k("div", {
7022
+ ], 8, Cu), c.value[e] ? (f(), k("div", Eu, [j(o).scoringResult.value.categories[e].findings.length === 0 ? (f(), k("div", Du, D(j(i).scoring.noFindings), 1)) : A("", !0), (f(!0), k(R, null, h(j(o).scoringResult.value.categories[e].findings, (e) => (f(), k("div", {
7052
7023
  key: e.id,
7053
7024
  class: "tpl:border-t tpl:px-3 tpl:py-2.5 first:tpl:border-t-0 tpl:border-[var(--tpl-border-light)]"
7054
- }, [I("div", Du, [(f(), N(d(j(e.severity === "high" ? Xr : e.severity === "medium" ? Ti : li)), {
7025
+ }, [I("div", Ou, [(f(), N(d(j(e.severity === "high" ? Zr : e.severity === "medium" ? Ei : ui)), {
7055
7026
  size: 13,
7056
7027
  "stroke-width": 2,
7057
7028
  class: "tpl:mt-0.5 tpl:shrink-0",
7058
- style: L({ color: j(ou)(e.severity) })
7059
- }, null, 8, ["style"])), I("div", Ou, [
7060
- I("div", ku, [I("span", {
7029
+ style: L({ color: j(su)(e.severity) })
7030
+ }, null, 8, ["style"])), I("div", ku, [
7031
+ I("div", Au, [I("span", {
7061
7032
  class: "tpl:mt-0.5 tpl:shrink-0 tpl:rounded tpl:px-1 tpl:py-px tpl:text-[10px] tpl:font-medium tpl:leading-tight",
7062
7033
  style: L({
7063
- color: j(ou)(e.severity),
7064
- backgroundColor: j(su)(e.severity)
7034
+ color: j(su)(e.severity),
7035
+ backgroundColor: j(cu)(e.severity)
7065
7036
  })
7066
- }, D(j(i).scoring.severity[e.severity]), 5), I("span", Au, D(e.message), 1)]),
7067
- e.suggestion ? (f(), k("p", ju, D(e.suggestion), 1)) : A("", !0),
7068
- e.blockId ? (f(), k("div", Mu, [I("button", {
7037
+ }, D(j(i).scoring.severity[e.severity]), 5), I("span", ju, D(e.message), 1)]),
7038
+ e.suggestion ? (f(), k("p", Mu, D(e.suggestion), 1)) : A("", !0),
7039
+ e.blockId ? (f(), k("div", Nu, [I("button", {
7069
7040
  class: "tpl-scoring-fix-btn tpl:inline-flex tpl:items-center tpl:gap-1.5 tpl:rounded tpl:border tpl:px-3 tpl:py-1.5 tpl:text-[11px] tpl:font-medium tpl:transition-all tpl:duration-150 tpl:disabled:opacity-50 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-primary)]",
7070
7041
  style: { "background-color": "transparent" },
7071
7042
  disabled: j(o).fixingFindingId.value !== null,
7072
7043
  onClick: (t) => g(e)
7073
- }, [j(o).fixingFindingId.value === e.id ? (f(), N(j(ui), {
7044
+ }, [j(o).fixingFindingId.value === e.id ? (f(), N(j(di), {
7074
7045
  key: 0,
7075
7046
  class: "tpl-spinner",
7076
7047
  size: 11,
7077
7048
  "stroke-width": 2
7078
- })) : (f(), N(j(Si), {
7049
+ })) : (f(), N(j(Ci), {
7079
7050
  key: 1,
7080
7051
  size: 11,
7081
7052
  "stroke-width": 2
7082
- })), z(" " + D(j(o).fixingFindingId.value === e.id ? j(i).scoring.fixing : j(i).scoring.fix), 1)], 8, Nu), j(o).fixError.value ? (f(), k("p", Pu, D(j(o).fixError.value), 1)) : A("", !0)])) : A("", !0)
7053
+ })), z(" " + D(j(o).fixingFindingId.value === e.id ? j(i).scoring.fixing : j(i).scoring.fix), 1)], 8, Pu), j(o).fixError.value ? (f(), k("p", Fu, D(j(o).fixError.value), 1)) : A("", !0)])) : A("", !0)
7083
7054
  ])])]))), 128))])) : A("", !0)])), 64))
7084
- ])) : (f(), k("div", Fu, [V(j(bi), {
7055
+ ])) : (f(), k("div", Iu, [V(j(xi), {
7085
7056
  size: 32,
7086
7057
  "stroke-width": 1.5,
7087
7058
  class: "tpl:text-[var(--tpl-text-dim)]"
7088
- }), I("p", Iu, D(j(i).scoring.emptyState), 1)])), I("p", Lu, D(j(i).aiMenu.disclaimer), 1)])])) : A("", !0)]),
7059
+ }), I("p", Lu, D(j(i).scoring.emptyState), 1)])), I("p", Ru, D(j(i).aiMenu.disclaimer), 1)])])) : A("", !0)]),
7089
7060
  _: 1
7090
7061
  }));
7091
7062
  }
7092
- }), zu = /* @__PURE__ */ e({ default: () => Bu }), Bu = /*#__PURE__*/ Pi(Ru, [["__scopeId", "data-v-3a059e8d"]]), Vu = ["aria-busy"], Hu = {
7063
+ }), Bu = /* @__PURE__ */ e({ default: () => Vu }), Vu = /*#__PURE__*/ Fi(zu, [["__scopeId", "data-v-3a059e8d"]]), Hu = ["aria-busy"], Uu = {
7093
7064
  id: "tpl-test-email-title",
7094
7065
  class: "tpl:mb-4 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
7095
- }, Uu = { class: "tpl:mb-3" }, Wu = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Gu = ["value"], Ku = ["disabled"], qu = ["value"], Ju = {
7066
+ }, Wu = { class: "tpl:mb-3" }, Gu = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Ku = ["value"], qu = ["disabled"], Ju = ["value"], Yu = {
7096
7067
  key: 0,
7097
7068
  role: "alert",
7098
7069
  class: "tpl:mb-3 tpl:text-xs tpl:text-[var(--tpl-danger)]"
7099
- }, Yu = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, Xu = ["disabled"], Zu = ["disabled"], Qu = {
7070
+ }, Xu = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, Zu = ["disabled"], Qu = ["disabled"], $u = {
7100
7071
  key: 0,
7101
7072
  class: "tpl:flex tpl:items-center tpl:gap-1.5"
7102
- }, $u = { key: 1 }, ed = /*@__PURE__*/ B({
7073
+ }, ed = { key: 1 }, td = /*@__PURE__*/ B({
7103
7074
  __name: "TestEmailModal",
7104
7075
  props: {
7105
7076
  visible: { type: Boolean },
@@ -7109,7 +7080,7 @@ var cu = {
7109
7080
  },
7110
7081
  emits: ["send", "close"],
7111
7082
  setup(e, { emit: t }) {
7112
- let n = e, r = t, { t: i } = Wi(), a = C("");
7083
+ let n = e, r = t, { t: i } = Gi(), a = C("");
7113
7084
  H(() => n.visible, (e) => {
7114
7085
  e && (a.value = n.allowedEmails[0] ?? "");
7115
7086
  });
@@ -7122,7 +7093,7 @@ var cu = {
7122
7093
  function l(e) {
7123
7094
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), o()), e.key === "Escape" && s();
7124
7095
  }
7125
- return (t, n) => (f(), N(Ho, {
7096
+ return (t, n) => (f(), N(Uo, {
7126
7097
  visible: e.visible,
7127
7098
  onClose: s,
7128
7099
  onKeydown: l
@@ -7138,14 +7109,14 @@ var cu = {
7138
7109
  "box-shadow": "var(--tpl-shadow-xl)"
7139
7110
  }
7140
7111
  }, [
7141
- I("h3", Hu, D(j(i).testEmail.title), 1),
7142
- I("div", Uu, [I("label", Wu, D(j(i).testEmail.recipientLabel), 1), e.allowedEmails.length === 1 ? (f(), k("input", {
7112
+ I("h3", Uu, D(j(i).testEmail.title), 1),
7113
+ I("div", Wu, [I("label", Gu, D(j(i).testEmail.recipientLabel), 1), e.allowedEmails.length === 1 ? (f(), k("input", {
7143
7114
  key: 0,
7144
7115
  type: "text",
7145
7116
  value: a.value,
7146
7117
  disabled: "",
7147
7118
  class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:opacity-70 tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]"
7148
- }, null, 8, Gu)) : c((f(), k("select", {
7119
+ }, null, 8, Ku)) : c((f(), k("select", {
7149
7120
  key: 1,
7150
7121
  "onUpdate:modelValue": n[0] ||= (e) => a.value = e,
7151
7122
  class: "tpl:h-9 tpl:w-full tpl:rounded-md tpl:border tpl:px-3 tpl:py-1 tpl:text-sm tpl:shadow-xs tpl:outline-none tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)] tpl:text-[var(--tpl-text)]",
@@ -7153,29 +7124,29 @@ var cu = {
7153
7124
  }, [(f(!0), k(R, null, h(e.allowedEmails, (e) => (f(), k("option", {
7154
7125
  key: e,
7155
7126
  value: e
7156
- }, D(e), 9, qu))), 128))], 8, Ku)), [[w, a.value]])]),
7157
- e.error ? (f(), k("p", Ju, D(e.error), 1)) : A("", !0),
7158
- I("div", Yu, [I("button", {
7127
+ }, D(e), 9, Ju))), 128))], 8, qu)), [[w, a.value]])]),
7128
+ e.error ? (f(), k("p", Yu, D(e.error), 1)) : A("", !0),
7129
+ I("div", Xu, [I("button", {
7159
7130
  type: "button",
7160
7131
  class: F(["tpl:cursor-pointer tpl:rounded-md tpl:border tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text)] tpl:bg-[var(--tpl-bg)]", { "tpl:cursor-not-allowed tpl:opacity-50": e.isSending }]),
7161
7132
  disabled: e.isSending,
7162
7133
  onClick: s
7163
- }, D(j(i).testEmail.cancel), 11, Xu), I("button", {
7134
+ }, D(j(i).testEmail.cancel), 11, Zu), I("button", {
7164
7135
  type: "button",
7165
7136
  class: "tpl:cursor-pointer tpl:rounded-md tpl:px-3 tpl:py-1.5 tpl:text-sm tpl:font-medium tpl:shadow-xs tpl:transition-all tpl:duration-150 tpl:hover:opacity-90 tpl:disabled:cursor-not-allowed tpl:disabled:opacity-50 tpl:bg-[var(--tpl-primary)] tpl:text-[var(--tpl-bg)]",
7166
7137
  disabled: !a.value || e.isSending,
7167
7138
  onClick: o
7168
- }, [e.isSending ? (f(), k("span", Qu, [V(j(ui), {
7139
+ }, [e.isSending ? (f(), k("span", $u, [V(j(di), {
7169
7140
  class: "tpl:animate-spin",
7170
7141
  size: 12,
7171
7142
  "stroke-width": 2
7172
- }), z(" " + D(j(i).testEmail.sending), 1)])) : (f(), k("span", $u, D(j(i).testEmail.send), 1))], 8, Zu)])
7173
- ], 8, Vu)]),
7143
+ }), z(" " + D(j(i).testEmail.sending), 1)])) : (f(), k("span", ed, D(j(i).testEmail.send), 1))], 8, Qu)])
7144
+ ], 8, Hu)]),
7174
7145
  _: 1
7175
7146
  }, 8, ["visible"]));
7176
7147
  }
7177
- }), td = /* @__PURE__ */ e({ default: () => nd }), nd = ed;
7148
+ }), nd = /* @__PURE__ */ e({ default: () => rd }), rd = td;
7178
7149
  //#endregion
7179
- export { Gi as $, lr as $t, zo as A, ye as An, Gr as At, Ha as B, be as Bn, Wn as Bt, Xo as C, ct as Cn, ti as Ct, Wo as D, Ue as Dn, Xr as Dt, Uo as E, W as En, Qr as Et, co as F, me as Fn, Y as Ft, ga as G, Gn as Gt, Ba as H, de as Hn, dr as Ht, uo as I, xe as In, sr as It, ca as J, In as Jt, ha as K, Kn as Kt, so as L, Se as Ln, er as Lt, Do as M, _e as Mn, Nr as Mt, xo as N, we as Nn, Sr as Nt, Ho as O, ve as On, Jr as Ot, vo as P, ge as Pn, hr as Pt, Ki as Q, Qn as Qt, ro as R, Te as Rn, or as Rt, Zo as S, lt as Sn, ni as St, Z as T, ot as Tn, $r as Tt, ja as U, fe as Un, cr as Ut, Va as V, pe as Vn, tr as Vt, Da as W, ue as Wn, zn as Wt, Zi as X, Zn as Xt, $i as Y, Bn as Yt, qi as Z, Jn as Zt, ls as _, ut as _n, di as _t, fl as a, hn as an, ki as at, as as b, gt as bn, ci as bt, Es as c, q as cn, wi as ct, ys as d, nn as dn, bi as dt, ur as en, Ui as et, vs as f, tn as fn, yi as ft, ms as g, Tt as gn, fi as gt, hs as h, Pt as hn, pi as ht, Vl as i, J as in, Ni as it, Lo as j, Ce as jn, X as jt, Bo as k, Ee as kn, Kr as kt, xs as l, An as ln, Ci as lt, gs as m, sn as mn, gi as mt, zu as n, Vn as nn, Vi as nt, Qs as o, Cn as on, Di as ot, _s as p, on as pn, vi as pt, ua as q, $n as qt, nu as r, Hn as rn, Pi as rt, Ds as s, wn as sn, Ti as st, td as t, rr as tn, Wi as tt, bs as u, Dn as un, Si as ut, cs as v, vt as vn, ui as vt, $ as w, st as wn, ei as wt, ts as x, yt as xn, si as xt, os as y, bt as yn, li as yt, to as z, he as zn, Un as zt };
7150
+ export { Ki as $, Kn as $t, Bo as A, Ee as An, Kr as At, Ua as B, he as Bn, Wn as Bt, Zo as C, lt as Cn, ni as Ct, Go as D, W as Dn, Zr as Dt, Wo as E, ot as En, $r as Et, lo as F, ge as Fn, Y as Ft, _a as G, ue as Gn, Gn as Gt, Va as H, pe as Hn, fr as Ht, fo as I, me as In, cr as It, la as J, In as Jt, ga as K, qn as Kt, co as L, xe as Ln, tr as Lt, Oo as M, Ce as Mn, Pr as Mt, So as N, _e as Nn, Cr as Nt, Uo as O, Ue as On, Yr as Ot, yo as P, we as Pn, gr as Pt, qi as Q, $n as Qt, io as R, Se as Rn, sr as Rt, Qo as S, yt as Sn, ri as St, Z as T, st as Tn, ei as Tt, Ma as U, de as Un, lr as Ut, Ha as V, be as Vn, nr as Vt, Oa as W, fe as Wn, zn as Wt, Qi as X, Qn as Xt, ea as Y, Bn as Yt, Ji as Z, Yn as Zt, us as _, Tt as _n, fi as _t, pl as a, J as an, Ai as at, os as b, bt as bn, li as bt, Ds as c, wn as cn, Ti as ct, bs as d, Dn as dn, xi as dt, ur as en, Wi as et, ys as f, nn as fn, bi as ft, hs as g, Pt as gn, pi as gt, gs as h, sn as hn, mi as ht, Hl as i, Hn as in, Pi as it, Ro as j, ye as jn, X as jt, Vo as k, ve as kn, qr as kt, Ss as l, q as ln, wi as lt, _s as m, on as mn, _i as mt, Bu as n, ir as nn, Hi as nt, $s as o, hn as on, Oi as ot, vs as p, tn as pn, yi as pt, da as q, er as qt, ru as r, Vn as rn, Fi as rt, Os as s, Cn as sn, Ei as st, nd as t, dr as tn, Gi as tt, xs as u, An as un, Ci as ut, ls as v, ut as vn, di as vt, $ as w, ct as wn, ti as wt, ns as x, gt as xn, ci as xt, ss as y, vt as yn, ui as yt, no as z, Te as zn, Un as zt };
7180
7151
 
7181
- //# sourceMappingURL=features-C3H2u-FV.js.map
7152
+ //# sourceMappingURL=features-DmUOSthI.js.map