@templatical/editor 0.12.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/dist/{AiChatSidebar-CXH7l1Ar.js → AiChatSidebar-J8iO_sX7.js} +16 -16
  2. package/dist/{AiFeatureMenu-BKbUUc1D.js → AiFeatureMenu-F2diEDgV.js} +10 -10
  3. package/dist/{BlockIssueBadge-C-EPqWsh.js → BlockIssueBadge-a-qlByxF.js} +5 -5
  4. package/dist/{CloudEditor-CB16QzKM.js → CloudEditor-CDjtwb4i.js} +284 -250
  5. package/dist/{CollaboratorBar-ACUA7lBJ.js → CollaboratorBar-B_EnJLtW.js} +4 -4
  6. package/dist/{CommentsSidebar-CpRLN40c.js → CommentsSidebar-DaP9BA_r.js} +18 -18
  7. package/dist/{CountdownBlock-C-6o19qS.js → CountdownBlock-DtAokAVw.js} +3 -3
  8. package/dist/{CountdownToolbar-Dol7Q0Pv.js → CountdownToolbar-Dtqgwy0g.js} +3 -3
  9. package/dist/{DesignReferenceSidebar-0dTsBW08.js → DesignReferenceSidebar-BHRlTqlT.js} +21 -33
  10. package/dist/{IssuesPanel-I0z6k6-H.js → IssuesPanel-u7ee3Wrl.js} +11 -11
  11. package/dist/{LoadingTrack-C7mGWPHS.js → LoadingTrack-CV3ID80N.js} +1 -1
  12. package/dist/ModuleBrowserModal-DOsdaS6s.js +201 -0
  13. package/dist/{ModulePreviewCanvas-CpaumPMS.js → ModulePreviewCanvas-Cx4MOJ0X.js} +21 -21
  14. package/dist/{NumberWithSuffix-Bp40ik4l.js → NumberWithSuffix-D2mW_DhT.js} +4 -4
  15. package/dist/{ParagraphEditor-BqRFV_Y-.js → ParagraphEditor-DMzkVnST.js} +156 -136
  16. package/dist/{RichTextEditorContent-Q5altsx1.js → RichTextEditorContent-CRCxCwKf.js} +7 -7
  17. package/dist/{SaveModuleDialog-DmfvH5D0.js → SaveModuleDialog-DuEKgumL.js} +8 -8
  18. package/dist/{SnapshotHistory-C052o-8U.js → SnapshotHistory-CVgiNJtE.js} +12 -12
  19. package/dist/{TemplateScoringPanel-CUs8XmIi.js → TemplateScoringPanel-lm0_9nYi.js} +26 -26
  20. package/dist/{TestEmailModal-BIIxRWUt.js → TestEmailModal-WBMdiW5S.js} +5 -5
  21. package/dist/{TitleEditor-FMh54Cx5.js → TitleEditor-eyT0h-Sa.js} +71 -55
  22. package/dist/{TplModal-utMtXzSO.js → TplModal-tjQ7OB0g.js} +4 -4
  23. package/dist/{blockTypeIcons-C6UGDmrC.js → blockTypeIcons-DdB3uTKD.js} +5 -5
  24. package/dist/bundle-stats.json +8 -8
  25. package/dist/cdn/chunks/{AiFeatureMenu-4NhCFeTh.js → AiFeatureMenu-D7rB2SBs.js} +9 -9
  26. package/dist/cdn/chunks/{AiFeatureMenu-4NhCFeTh.js.map → AiFeatureMenu-D7rB2SBs.js.map} +1 -1
  27. package/dist/cdn/chunks/{BlockIssueBadge-BYKThwhE.js → BlockIssueBadge-DHOe0pgx.js} +6 -6
  28. package/dist/cdn/chunks/{BlockIssueBadge-BYKThwhE.js.map → BlockIssueBadge-DHOe0pgx.js.map} +1 -1
  29. package/dist/cdn/chunks/{CloudEditor-DSeihOan.js → CloudEditor-DNed_Ym0.js} +273 -239
  30. package/dist/cdn/chunks/CloudEditor-DNed_Ym0.js.map +1 -0
  31. package/dist/cdn/chunks/{CollaboratorBar-Dn5gXNDt.js → CollaboratorBar-sj_9Lee3.js} +4 -4
  32. package/dist/cdn/chunks/{CollaboratorBar-Dn5gXNDt.js.map → CollaboratorBar-sj_9Lee3.js.map} +1 -1
  33. package/dist/cdn/chunks/{CountdownBlock-hYoJdVOt.js → CountdownBlock-C1Ikjpn4.js} +3 -3
  34. package/dist/cdn/chunks/{CountdownBlock-hYoJdVOt.js.map → CountdownBlock-C1Ikjpn4.js.map} +1 -1
  35. package/dist/cdn/chunks/{CountdownToolbar-BQn0Kj0X.js → CountdownToolbar-j1G_X8rB.js} +4 -4
  36. package/dist/cdn/chunks/CountdownToolbar-j1G_X8rB.js.map +1 -0
  37. package/dist/cdn/chunks/{IssuesPanel-_5fEnivU.js → IssuesPanel-CTOf3PsH.js} +11 -11
  38. package/dist/cdn/chunks/{IssuesPanel-_5fEnivU.js.map → IssuesPanel-CTOf3PsH.js.map} +1 -1
  39. package/dist/cdn/chunks/{ModuleBrowserModal-DtCksAeW.js → ModuleBrowserModal-DCh88-rr.js} +13 -10
  40. package/dist/cdn/chunks/{ModuleBrowserModal-DtCksAeW.js.map → ModuleBrowserModal-DCh88-rr.js.map} +1 -1
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-CCOvabZd.js → ModulePreviewCanvas-DJqvTKmg.js} +19 -19
  42. package/dist/cdn/chunks/{ModulePreviewCanvas-CCOvabZd.js.map → ModulePreviewCanvas-DJqvTKmg.js.map} +1 -1
  43. package/dist/cdn/chunks/{NumberWithSuffix-cdWjAK6y.js → NumberWithSuffix-Bu45XWSl.js} +5 -5
  44. package/dist/cdn/chunks/{NumberWithSuffix-cdWjAK6y.js.map → NumberWithSuffix-Bu45XWSl.js.map} +1 -1
  45. package/dist/cdn/chunks/{ParagraphEditor-BnhnFOW1.js → ParagraphEditor-DwZqLJp2.js} +131 -111
  46. package/dist/cdn/chunks/ParagraphEditor-DwZqLJp2.js.map +1 -0
  47. package/dist/cdn/chunks/{RichTextEditorContent-DV2yknp8.js → RichTextEditorContent-CIuZ-2DV.js} +5 -5
  48. package/dist/cdn/chunks/{RichTextEditorContent-DV2yknp8.js.map → RichTextEditorContent-CIuZ-2DV.js.map} +1 -1
  49. package/dist/cdn/chunks/{SaveModuleDialog-CCX5U7VA.js → SaveModuleDialog-Bep0X2s_.js} +6 -6
  50. package/dist/cdn/chunks/{SaveModuleDialog-CCX5U7VA.js.map → SaveModuleDialog-Bep0X2s_.js.map} +1 -1
  51. package/dist/cdn/chunks/{TitleEditor-CQqklX0D.js → TitleEditor-DO1-h3RY.js} +62 -46
  52. package/dist/cdn/chunks/TitleEditor-DO1-h3RY.js.map +1 -0
  53. package/dist/cdn/chunks/blockTypeIcons-8o24HVJu.js +22 -0
  54. package/dist/cdn/chunks/{blockTypeIcons-CpGPHppB.js.map → blockTypeIcons-8o24HVJu.js.map} +1 -1
  55. package/dist/cdn/chunks/{de-BpseTWOA.js → de-LsV0u1tP.js} +20 -2
  56. package/dist/cdn/chunks/de-LsV0u1tP.js.map +1 -0
  57. package/dist/cdn/chunks/{draggable-Bci-fq8y.js → draggable-kPCz_3zM.js} +14 -5
  58. package/dist/cdn/chunks/{draggable-Bci-fq8y.js.map → draggable-kPCz_3zM.js.map} +1 -1
  59. package/dist/cdn/chunks/{en-VGIQ0WNq.js → en-Bb8X1bOs.js} +20 -2
  60. package/dist/cdn/chunks/en-Bb8X1bOs.js.map +1 -0
  61. package/dist/cdn/chunks/{extensions-Ds9GnMcd.js → extensions-iwBXnEwq.js} +21 -21
  62. package/dist/cdn/chunks/{extensions-Ds9GnMcd.js.map → extensions-iwBXnEwq.js.map} +1 -1
  63. package/dist/cdn/chunks/{features-DxWz_Enw.js → features-CkTMVylx.js} +996 -817
  64. package/dist/cdn/chunks/features-CkTMVylx.js.map +1 -0
  65. package/dist/cdn/chunks/{icons-BflGUmFY.js → icons-9zjCuoJx.js} +158 -152
  66. package/dist/cdn/chunks/icons-9zjCuoJx.js.map +1 -0
  67. package/dist/cdn/chunks/liquid.browser-DKKBzRQu.js.map +1 -1
  68. package/dist/cdn/chunks/{media-library-C479-QcE.js → media-library-DMRIPx4g.js} +373 -371
  69. package/dist/cdn/chunks/media-library-DMRIPx4g.js.map +1 -0
  70. package/dist/cdn/chunks/{pt-BR-zAqpLQbW.js → pt-BR-BwJY_cvb.js} +20 -2
  71. package/dist/cdn/chunks/pt-BR-BwJY_cvb.js.map +1 -0
  72. package/dist/cdn/chunks/{pusher-BICWUP2j.js → pusher-CdEqyLwF.js} +6 -3
  73. package/dist/cdn/chunks/{pusher-BICWUP2j.js.map → pusher-CdEqyLwF.js.map} +1 -1
  74. package/dist/cdn/chunks/quality-CyeUgs_c.js +2176 -0
  75. package/dist/cdn/chunks/{quality-BL_pEvFP.js.map → quality-CyeUgs_c.js.map} +1 -1
  76. package/dist/cdn/chunks/{renderer-C0vdAODQ.js → renderer-BIKUEKDD.js} +38 -29
  77. package/dist/cdn/chunks/{renderer-C0vdAODQ.js.map → renderer-BIKUEKDD.js.map} +1 -1
  78. package/dist/cdn/chunks/{src-DzvOWQ9S.js → src-pDy_imWG.js} +56 -56
  79. package/dist/cdn/chunks/{src-DzvOWQ9S.js.map → src-pDy_imWG.js.map} +1 -1
  80. package/dist/cdn/chunks/{styles-LfeoSNRA.js → styles-D4Bd3SCx.js} +1356 -905
  81. package/dist/cdn/chunks/styles-D4Bd3SCx.js.map +1 -0
  82. package/dist/cdn/chunks/{tiptap-CwScfbsM.js → tiptap-BlLFFU3M.js} +2233 -2213
  83. package/dist/cdn/chunks/tiptap-BlLFFU3M.js.map +1 -0
  84. package/dist/cdn/editor.css +1 -1
  85. package/dist/cdn/editor.js +101 -97
  86. package/dist/cdn/editor.js.map +1 -1
  87. package/dist/{check-BRzXxFHr.js → check-CYJwFmjy.js} +1 -1
  88. package/dist/{chevron-down-DmEgzmYT.js → chevron-down-C5l-DzAA.js} +1 -1
  89. package/dist/{circle-alert-BStvZr3O.js → circle-alert-wf5HUFZY.js} +1 -1
  90. package/dist/{clock-Blwp_1R6.js → clock-Bj0bQw-K.js} +1 -1
  91. package/dist/{cloud-_olro76D.js → cloud-CoFDm9YA.js} +1 -1
  92. package/dist/{createLucideIcon-CmPAC-gt.js → createLucideIcon-Bad2kKE0.js} +4 -4
  93. package/dist/{de-BpseTWOA.js → de-LsV0u1tP.js} +19 -1
  94. package/dist/{dist-BwgjpLfr.js → dist-34OcyoK1.js} +1 -1
  95. package/dist/{dist-Cz79qrLL.js → dist-B7w6xTU6.js} +1 -1
  96. package/dist/{dist-DULfKmTh.js → dist-BX3gGwL8.js} +5 -5
  97. package/dist/{dist-412xXefB.js → dist-Bn703mnA.js} +1 -1
  98. package/dist/{dist-u0iIJH3V.js → dist-CADDCv0o.js} +1 -1
  99. package/dist/{dist-BNEdeWub.js → dist-CGvz7vkq.js} +1 -1
  100. package/dist/{dist-BlG7k25W.js → dist-CLpPNKy9.js} +1 -1
  101. package/dist/{dist-BCQZZUE9.js → dist-ChMninLH.js} +1 -1
  102. package/dist/{dist-b7Ak-CuM.js → dist-CrQZ_af9.js} +1 -1
  103. package/dist/{dist-DhKTdU52.js → dist-CyjyYg52.js} +1426 -1406
  104. package/dist/{dist-D6x1cQeh.js → dist-Dd3ibRZm.js} +2 -2
  105. package/dist/{dist-DJ9aD8yA.js → dist-DuCzdgDA.js} +54 -5
  106. package/dist/{dist-o73iaGqy.js → dist-U5vfDdYI.js} +1 -1
  107. package/dist/{en-VGIQ0WNq.js → en-Bb8X1bOs.js} +19 -1
  108. package/dist/{extensions-XPlNAKIL.js → extensions-J439b7y7.js} +5 -5
  109. package/dist/{image-up-BFPbw_Zq.js → image-up-x8-WXfsx.js} +1 -1
  110. package/dist/index.d.ts +17 -0
  111. package/dist/{info-B_qLEBN2.js → info-RS_fGcGi.js} +1 -1
  112. package/dist/keys-DgYXDafq.js +10 -0
  113. package/dist/{list-checks-CGg7JxPm.js → list-checks-Bf7XdDyv.js} +1 -1
  114. package/dist/{loader-circle-CDF8eR_Q.js → loader-circle-CLZ0_FvW.js} +1 -1
  115. package/dist/{message-circle-C3cHsCJl.js → message-circle-B-1bN9ab.js} +1 -1
  116. package/dist/{pt-BR-zAqpLQbW.js → pt-BR-BwJY_cvb.js} +19 -1
  117. package/dist/{refresh-cw-Butml7Q4.js → refresh-cw-CWKWqJYG.js} +1 -1
  118. package/dist/scan-line-BtK5dEai.js +31 -0
  119. package/dist/{send-k7npFJNO.js → send-Cn1IUdzh.js} +1 -1
  120. package/dist/{shield-check-CV6GbmCu.js → shield-check-CrvMk4Ea.js} +1 -1
  121. package/dist/{sparkles-C965Xop4.js → sparkles-CgfjwvnG.js} +1 -1
  122. package/dist/style.css +1 -1
  123. package/dist/{styles-DSm9Ijxt.js → styles-BUwDOWd3.js} +1335 -882
  124. package/dist/templatical-editor.js +143 -139
  125. package/dist/{text-align-start-Bxnps8fH.js → text-align-start-C3r_Rnvy.js} +1 -1
  126. package/dist/{trash-2-DpGb7fIt.js → trash-2-CjERg4x9.js} +1 -1
  127. package/dist/{triangle-alert-BKYElAwz.js → triangle-alert-Chkny574.js} +1 -1
  128. package/dist/upload-e5kDRkPb.js +17 -0
  129. package/dist/{useAliveFlag-BinvbqQR.js → useAliveFlag-cUQj9rmB.js} +1 -1
  130. package/dist/{useCloudI18n-L3H2XvdW.js → useCloudI18n-CYJKqXtI.js} +2 -2
  131. package/dist/{useEditorCore-D7dQFRkw.js → useEditorCore-8JxXDOA4.js} +1075 -894
  132. package/dist/{useI18n-CTs_bP9d.js → useI18n-BWqM8i78.js} +2 -2
  133. package/dist/{useMergeTag-e3RSY-s3.js → useMergeTag-NHC4ylza.js} +3 -3
  134. package/dist/usePopoverRoot-B1sdY4es.js +8 -0
  135. package/dist/{vue.runtime.esm-bundler-B2k01iQh.js → vue.runtime.esm-bundler-BPa483TZ.js} +13 -4
  136. package/dist/{x-CGjkjdKK.js → x-DiPIbccg.js} +1 -1
  137. package/package.json +12 -12
  138. package/dist/ModuleBrowserModal-Bz9hSjMS.js +0 -198
  139. package/dist/cdn/chunks/CloudEditor-DSeihOan.js.map +0 -1
  140. package/dist/cdn/chunks/CountdownToolbar-BQn0Kj0X.js.map +0 -1
  141. package/dist/cdn/chunks/ParagraphEditor-BnhnFOW1.js.map +0 -1
  142. package/dist/cdn/chunks/TitleEditor-CQqklX0D.js.map +0 -1
  143. package/dist/cdn/chunks/blockTypeIcons-CpGPHppB.js +0 -22
  144. package/dist/cdn/chunks/de-BpseTWOA.js.map +0 -1
  145. package/dist/cdn/chunks/en-VGIQ0WNq.js.map +0 -1
  146. package/dist/cdn/chunks/features-DxWz_Enw.js.map +0 -1
  147. package/dist/cdn/chunks/icons-BflGUmFY.js.map +0 -1
  148. package/dist/cdn/chunks/media-library-C479-QcE.js.map +0 -1
  149. package/dist/cdn/chunks/pt-BR-zAqpLQbW.js.map +0 -1
  150. package/dist/cdn/chunks/quality-BL_pEvFP.js +0 -2176
  151. package/dist/cdn/chunks/styles-LfeoSNRA.js.map +0 -1
  152. package/dist/cdn/chunks/tiptap-CwScfbsM.js.map +0 -1
  153. package/dist/keys-mFiJ5N0_.js +0 -10
  154. package/dist/scan-line-XYEqim_E.js +0 -25
  155. package/dist/usePopoverRoot-DVh7NY1q.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-Bci-fq8y.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 T, b as E, c as ee, 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-kPCz_3zM.js";
3
3
  //#region src/constants/timeouts.ts
4
4
  var ue = 3e4, de = 4e3, fe = 5e3, pe = {
5
5
  1: 36,
@@ -611,17 +611,19 @@ function Et(e) {
611
611
  }, t.isDirty = !0;
612
612
  }
613
613
  function _(e, n, r = 0, a) {
614
- if (n) {
615
- if (s(n)) return;
616
- let o = i(t.content.blocks, n);
617
- if (o && o.type === "section") {
618
- if (r < 0 || r >= Tt(o.columns)) return;
619
- o.children[r] = o.children[r] || [];
620
- let t = o.children[r];
621
- a !== void 0 && a < t.length ? t.splice(a, 0, e) : t.push(e);
622
- }
623
- } else a !== void 0 && a < t.content.blocks.length ? t.content.blocks.splice(a, 0, e) : t.content.blocks.push(e);
624
- t.isDirty = !0;
614
+ if (!(n && e.type === "section")) {
615
+ if (n) {
616
+ if (s(n)) return;
617
+ let o = i(t.content.blocks, n);
618
+ if (o && o.type === "section") {
619
+ if (r < 0 || r >= Tt(o.columns)) return;
620
+ o.children[r] = o.children[r] || [];
621
+ let t = o.children[r];
622
+ a !== void 0 && a < t.length ? t.splice(a, 0, e) : t.push(e);
623
+ }
624
+ } else a !== void 0 && a < t.content.blocks.length ? t.content.blocks.splice(a, 0, e) : t.content.blocks.push(e);
625
+ t.isDirty = !0;
626
+ }
625
627
  }
626
628
  function v(e) {
627
629
  if (s(e)) return;
@@ -643,7 +645,7 @@ function Et(e) {
643
645
  let c = o(t.content.blocks, e);
644
646
  if (!c) return;
645
647
  let l = c.blocks.findIndex((t) => t.id === e);
646
- if (l === -1) return;
648
+ if (l === -1 || r && c.blocks[l].type === "section") return;
647
649
  let u;
648
650
  if (r) {
649
651
  let e = i(t.content.blocks, r);
@@ -817,7 +819,7 @@ function Nt(e) {
817
819
  o = null, c() && !s && n() && r(JSON.parse(JSON.stringify(t.value)));
818
820
  }, i));
819
821
  }
820
- let m = ee(t, () => {
822
+ let m = T(t, () => {
821
823
  c() && !s && n() && p();
822
824
  }, { deep: !0 });
823
825
  function h() {
@@ -1477,7 +1479,7 @@ function Fn() {
1477
1479
  }
1478
1480
  //#endregion
1479
1481
  //#region src/keys.ts
1480
- var In = Symbol("translations"), Ln = Symbol("editor"), Rn = Symbol("history"), zn = Symbol("blockActions"), Bn = Symbol("conditionPreview"), Vn = Symbol("fontsManager"), Hn = Symbol("themeStyles"), Un = Symbol("tplUiTheme"), Wn = Symbol("blockDefaults"), Gn = Symbol("blockRegistry"), Kn = Symbol("customBlockDefinitions"), qn = Symbol("paletteBlocks"), Jn = Symbol("customBlockStylesheets"), Yn = Symbol("mergeTags"), Xn = Symbol("mergeTagSyntax"), Zn = Symbol("onRequestMergeTag"), Qn = Symbol("mergeTagAutocomplete"), $n = Symbol("mergeTagPicker"), er = Symbol("onRequestMedia"), tr = Symbol("displayConditions"), nr = Symbol("allowCustomConditions"), rr = Symbol("capabilities"), ir = Symbol("keyboardReorder"), ar = Symbol("templateLint"), or = Symbol("editorRoot"), sr = Symbol("popoverRoot"), cr = Symbol("authManager"), lr = Symbol("aiConfig"), ur = Symbol("comments"), dr = Symbol("savedModulesHeadless"), fr = Symbol("scoring"), pr = Symbol("cloudTranslations");
1482
+ var In = Symbol("translations"), Ln = Symbol("editor"), Rn = Symbol("history"), zn = Symbol("blockActions"), Bn = Symbol("conditionPreview"), Vn = Symbol("fontsManager"), Hn = Symbol("themeStyles"), Un = Symbol("tplUiTheme"), Wn = Symbol("blockDefaults"), Gn = Symbol("blockRegistry"), Kn = Symbol("customBlockDefinitions"), qn = Symbol("paletteBlocks"), Jn = Symbol("customBlockStylesheets"), Yn = Symbol("mergeTags"), Xn = Symbol("mergeTagSyntax"), Zn = Symbol("onRequestMergeTag"), Qn = Symbol("mergeTagAutocomplete"), $n = Symbol("mergeTagPicker"), er = Symbol("logicTags"), tr = Symbol("logicPairs"), nr = Symbol("logicPicker"), rr = Symbol("onRequestLogic"), ir = Symbol("onRequestMedia"), ar = Symbol("displayConditions"), or = Symbol("allowCustomConditions"), sr = Symbol("capabilities"), cr = Symbol("keyboardReorder"), lr = Symbol("templateLint"), ur = Symbol("editorRoot"), dr = Symbol("popoverRoot"), fr = Symbol("authManager"), pr = Symbol("aiConfig"), mr = Symbol("comments"), hr = Symbol("savedModulesHeadless"), gr = Symbol("scoring"), _r = Symbol("cloudTranslations");
1481
1483
  function J(e, t) {
1482
1484
  let n = v(e, null);
1483
1485
  if (n == null) throw Error(`${t} requires a provider for ${e.description ?? "unknown key"}. Ensure it is a descendant of Editor or CloudEditor.`);
@@ -1485,7 +1487,7 @@ function J(e, t) {
1485
1487
  }
1486
1488
  //#endregion
1487
1489
  //#region src/composables/useMergeTagPicker.ts
1488
- function mr() {
1490
+ function vr() {
1489
1491
  let e = C(!1), t = C([]), n = null;
1490
1492
  function r(r) {
1491
1493
  if (n) {
@@ -1514,16 +1516,47 @@ function mr() {
1514
1516
  };
1515
1517
  }
1516
1518
  //#endregion
1519
+ //#region src/composables/useLogicTagPicker.ts
1520
+ function yr() {
1521
+ let e = C(!1), t = C([]), n = C([]), r = null;
1522
+ function i(i, a) {
1523
+ if (r) {
1524
+ let e = r;
1525
+ r = null, e(null);
1526
+ }
1527
+ return t.value = i, n.value = a, e.value = !0, new Promise((e) => {
1528
+ r = e;
1529
+ });
1530
+ }
1531
+ function a(i) {
1532
+ let a = r;
1533
+ r = null, e.value = !1, t.value = [], n.value = [], a && a(i);
1534
+ }
1535
+ return s() && l(() => {
1536
+ if (r) {
1537
+ let e = r;
1538
+ r = null, e(null);
1539
+ }
1540
+ e.value = !1, t.value = [], n.value = [];
1541
+ }), {
1542
+ isOpen: e,
1543
+ tags: t,
1544
+ pairs: n,
1545
+ open: i,
1546
+ resolve: a
1547
+ };
1548
+ }
1549
+ //#endregion
1517
1550
  //#region src/composables/useTemplateLint.ts
1518
- function hr(e) {
1551
+ function br(e) {
1519
1552
  return e ? e.disabled === !0 ? !0 : e.accessibility === !1 && e.structure === !1 && e.links === !1 : !1;
1520
1553
  }
1521
- function gr(e) {
1522
- let t = C([]), r = C(!1), i = C(!1), a = n(null), o = hr(e.options), s = null, c = !1;
1554
+ function xr(e) {
1555
+ let t = C([]), r = C(!1), i = C(!1), a = n(null), o = br(e.options), s = null, c = !1;
1523
1556
  o || l();
1524
1557
  async function l() {
1525
1558
  try {
1526
- let t = await import("./quality-BL_pEvFP.js").then((e) => e.t);
1559
+ let t = await import("./quality-CyeUgs_c.js").then((e) => e.t);
1527
1560
  if (c) return;
1528
1561
  a.value = { lintTemplate: t.lintTemplate }, r.value = !0, u(), s = un(e.content, u, {
1529
1562
  debounce: e.debounce ?? 500,
@@ -1574,12 +1607,12 @@ function Y(e) {
1574
1607
  }
1575
1608
  //#endregion
1576
1609
  //#region src/utils/blockTypeLabels.ts
1577
- function _r(e, t) {
1610
+ function Sr(e, t) {
1578
1611
  return t.blocks[e] ?? e;
1579
1612
  }
1580
1613
  //#endregion
1581
1614
  //#region src/composables/useKeyboardReorder.ts
1582
- function vr(e, t) {
1615
+ function Cr(e, t) {
1583
1616
  let n = C(null), r = C(""), i = null;
1584
1617
  function a(t) {
1585
1618
  let n = e.content.value.blocks, r = n.findIndex((e) => e.id === t);
@@ -1606,7 +1639,7 @@ function vr(e, t) {
1606
1639
  let r = a(n);
1607
1640
  if (!r) return "";
1608
1641
  let i = (r.sectionId ? s(r.sectionId, r.columnIndex ?? 0) : e.content.value.blocks)?.[r.index];
1609
- return i ? _r(i.type, t.t) : "";
1642
+ return i ? Sr(i.type, t.t) : "";
1610
1643
  }
1611
1644
  function s(t, n) {
1612
1645
  return e.content.value.blocks.find((e) => e.id === t && e.type === "section")?.children[n] ?? null;
@@ -1675,13 +1708,13 @@ function vr(e, t) {
1675
1708
  }
1676
1709
  //#endregion
1677
1710
  //#region src/composables/useUiTheme.ts
1678
- function yr(e) {
1711
+ function wr(e) {
1679
1712
  let t = Sn("(prefers-color-scheme: dark)");
1680
1713
  return { resolvedTheme: O(() => e.value === "auto" ? t.value ? "dark" : "light" : e.value) };
1681
1714
  }
1682
1715
  //#endregion
1683
1716
  //#region src/composables/useThemeStyles.ts
1684
- var br = {
1717
+ var Tr = {
1685
1718
  bg: "--tpl-bg",
1686
1719
  bgElevated: "--tpl-bg-elevated",
1687
1720
  bgHover: "--tpl-bg-hover",
@@ -1705,10 +1738,10 @@ var br = {
1705
1738
  dangerLight: "--tpl-danger-light",
1706
1739
  canvasBg: "--tpl-canvas-bg"
1707
1740
  };
1708
- function xr({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1741
+ function Er({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1709
1742
  return { themeStyles: O(() => {
1710
1743
  let r = {}, i = e.value, a = t.value === "dark" ? i.dark : i;
1711
- if (a) for (let [e, t] of Object.entries(br)) {
1744
+ if (a) for (let [e, t] of Object.entries(Tr)) {
1712
1745
  let n = a[e];
1713
1746
  n && (r[t] = n);
1714
1747
  }
@@ -1717,27 +1750,27 @@ function xr({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1717
1750
  }
1718
1751
  //#endregion
1719
1752
  //#region src/utils/logger.ts
1720
- var Sr = "[Templatical]";
1721
- function Cr() {
1753
+ var Dr = "[Templatical]";
1754
+ function Or() {
1722
1755
  return typeof process < "u" && !0;
1723
1756
  }
1724
- var wr = {
1757
+ var kr = {
1725
1758
  warn(...e) {
1726
- console.warn(Sr, ...e);
1759
+ console.warn(Dr, ...e);
1727
1760
  },
1728
1761
  error(...e) {
1729
- console.error(Sr, ...e);
1762
+ console.error(Dr, ...e);
1730
1763
  },
1731
1764
  debug(...e) {
1732
- Cr() || console.debug(Sr, ...e);
1765
+ Or() || console.debug(Dr, ...e);
1733
1766
  },
1734
1767
  info(...e) {
1735
- Cr() || console.info(Sr, ...e);
1768
+ Or() || console.info(Dr, ...e);
1736
1769
  }
1737
1770
  };
1738
1771
  //#endregion
1739
1772
  //#region src/composables/useBlockRegistry.ts
1740
- function Tr() {
1773
+ function Ar() {
1741
1774
  let e = n(/* @__PURE__ */ new Map());
1742
1775
  function t(t, n) {
1743
1776
  e.value.set(t, n), oe(e);
@@ -1777,7 +1810,7 @@ function Tr() {
1777
1810
  strictFilters: !1
1778
1811
  }).parseAndRender(t.template, e.fieldValues);
1779
1812
  } catch (t) {
1780
- return wr.error(`Failed to render custom block "${e.customType}":`, t), s(`Render error: ${e.customType}`);
1813
+ return kr.error(`Failed to render custom block "${e.customType}":`, t), s(`Render error: ${e.customType}`);
1781
1814
  }
1782
1815
  }
1783
1816
  function l(t) {
@@ -1795,9 +1828,9 @@ function Tr() {
1795
1828
  }
1796
1829
  //#endregion
1797
1830
  //#region src/composables/useCustomBlockStylesheets.ts
1798
- function Er(e, t) {
1831
+ function jr(e, t) {
1799
1832
  return O(() => {
1800
- let n = Dr(e.value.blocks);
1833
+ let n = Mr(e.value.blocks);
1801
1834
  if (n.size === 0) return [];
1802
1835
  let r = /* @__PURE__ */ new Set(), i = [];
1803
1836
  for (let e of n) {
@@ -1809,11 +1842,11 @@ function Er(e, t) {
1809
1842
  return i;
1810
1843
  });
1811
1844
  }
1812
- function Dr(e) {
1845
+ function Mr(e) {
1813
1846
  let t = /* @__PURE__ */ new Set();
1814
- return Or(e, t), t;
1847
+ return Nr(e, t), t;
1815
1848
  }
1816
- function Or(e, t) {
1849
+ function Nr(e, t) {
1817
1850
  for (let n of e) {
1818
1851
  if (De(n)) {
1819
1852
  t.add(n.customType);
@@ -1822,13 +1855,13 @@ function Or(e, t) {
1822
1855
  if (n.type === "section") {
1823
1856
  let e = n.children;
1824
1857
  if (!e) continue;
1825
- for (let n of e) Or(n, t);
1858
+ for (let n of e) Nr(n, t);
1826
1859
  }
1827
1860
  }
1828
1861
  }
1829
1862
  //#endregion
1830
1863
  //#region src/utils/registerBuiltInBlocks.ts
1831
- var kr = [
1864
+ var Pr = [
1832
1865
  {
1833
1866
  type: "section",
1834
1867
  createBlock: Ze
@@ -1882,8 +1915,8 @@ var kr = [
1882
1915
  createBlock: at
1883
1916
  }
1884
1917
  ];
1885
- function Ar(e, t) {
1886
- for (let n of kr) {
1918
+ function Fr(e, t) {
1919
+ for (let n of Pr) {
1887
1920
  let r = t[n.type];
1888
1921
  r && e.registerBuiltIn(n.type, {
1889
1922
  component: r,
@@ -1893,7 +1926,7 @@ function Ar(e, t) {
1893
1926
  }
1894
1927
  //#endregion
1895
1928
  //#region src/utils/keyboardShortcuts.ts
1896
- function jr(e) {
1929
+ function Ir(e) {
1897
1930
  for (let t of e.composedPath()) {
1898
1931
  if (!(t instanceof HTMLElement)) continue;
1899
1932
  if (t.isContentEditable) return !0;
@@ -1902,14 +1935,14 @@ function jr(e) {
1902
1935
  }
1903
1936
  return !1;
1904
1937
  }
1905
- function Mr(e, t) {
1938
+ function Lr(e, t) {
1906
1939
  let n = e.metaKey || e.ctrlKey;
1907
1940
  if (n && e.key.toLowerCase() === "s") {
1908
1941
  e.preventDefault(), t.onSave?.();
1909
1942
  return;
1910
1943
  }
1911
1944
  if (n && e.key.toLowerCase() === "z") {
1912
- if (jr(e)) return;
1945
+ if (Ir(e)) return;
1913
1946
  e.preventDefault(), e.shiftKey ? t.history.redo() : (t.onBeforeUndo?.(), t.history.undo());
1914
1947
  return;
1915
1948
  }
@@ -1917,11 +1950,11 @@ function Mr(e, t) {
1917
1950
  t.selectBlock(null);
1918
1951
  return;
1919
1952
  }
1920
- (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !jr(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
1953
+ (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !Ir(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
1921
1954
  }
1922
1955
  //#endregion
1923
1956
  //#region src/components/blocks/ButtonBlock.vue?vue&type=script&setup=true&lang.ts
1924
- var Nr = { class: "tpl:text-center" }, Pr = ["href"], Fr = /* @__PURE__ */ B({
1957
+ var Rr = { class: "tpl:text-center" }, zr = ["href"], Br = /* @__PURE__ */ B({
1925
1958
  __name: "ButtonBlock",
1926
1959
  props: {
1927
1960
  block: {},
@@ -1942,17 +1975,17 @@ var Nr = { class: "tpl:text-center" }, Pr = ["href"], Fr = /* @__PURE__ */ B({
1942
1975
  };
1943
1976
  return t.block.fontFamily && (e.fontFamily = t.block.fontFamily), t.block.width === "full" ? (e.display = "block", e.width = "100%", e.boxSizing = "border-box") : typeof t.block.width == "number" && (e.width = `${t.block.width}px`, e.boxSizing = "border-box"), e;
1944
1977
  });
1945
- return (t, r) => (f(), k("div", Nr, [I("a", {
1978
+ return (t, r) => (f(), k("div", Rr, [I("a", {
1946
1979
  href: e.block.url || "#",
1947
1980
  style: L(n.value),
1948
1981
  class: "tpl:cursor-default",
1949
1982
  onClick: r[0] ||= M(() => {}, ["prevent"])
1950
- }, D(e.block.text), 13, Pr)]));
1983
+ }, D(e.block.text), 13, zr)]));
1951
1984
  }
1952
- }), Ir = (e) => e === "", Lr = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), Rr = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), zr = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), Br = (e) => {
1953
- let t = zr(e);
1985
+ }), Vr = (e) => e === "", Hr = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), Ur = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), Wr = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), Gr = (e) => {
1986
+ let t = Wr(e);
1954
1987
  return t.charAt(0).toUpperCase() + t.slice(1);
1955
- }, Vr = {
1988
+ }, Kr = {
1956
1989
  xmlns: "http://www.w3.org/2000/svg",
1957
1990
  width: 24,
1958
1991
  height: 24,
@@ -1962,32 +1995,63 @@ var Nr = { class: "tpl:text-center" }, Pr = ["href"], Fr = /* @__PURE__ */ B({
1962
1995
  "stroke-width": 2,
1963
1996
  "stroke-linecap": "round",
1964
1997
  "stroke-linejoin": "round"
1965
- }, Hr = Symbol("lucide-icons");
1966
- function Ur() {
1967
- return v(Hr, {});
1998
+ }, qr = /* @__PURE__ */ Symbol("lucide-icons");
1999
+ function Jr() {
2000
+ return v(qr, {});
1968
2001
  }
1969
2002
  //#endregion
1970
- //#region ../../node_modules/.pnpm/@lucide+vue@1.21.0_vue@3.5.39_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/Icon.mjs
1971
- var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width": r, strokeWidth: i, "stroke-width": o, size: s, color: c, ...l }, { slots: u }) => {
1972
- let { size: d, color: f, strokeWidth: p = 2, absoluteStrokeWidth: m = !1, class: h = "" } = Ur(), g = O(() => {
1973
- let e = Ir(n) || Ir(r) || n === !0 || r === !0 || m === !0, t = i || o || p || Vr["stroke-width"];
1974
- return e ? Number(t) * 24 / Number(s ?? d ?? Vr.width) : t;
2003
+ //#region ../../node_modules/.pnpm/@lucide+vue@1.23.0_vue@3.5.39_typescript@6.0.3_/node_modules/@lucide/vue/dist/esm/Icon.mjs
2004
+ var Yr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width": r, strokeWidth: i, "stroke-width": o, size: s, color: c, ...l }, { slots: u }) => {
2005
+ let { size: d, color: f, strokeWidth: p = 2, absoluteStrokeWidth: m = !1, class: h = "" } = Jr(), g = O(() => {
2006
+ let e = Vr(n) || Vr(r) || n === !0 || r === !0 || m === !0, t = i || o || p || Kr["stroke-width"];
2007
+ return e ? Number(t) * 24 / Number(s ?? d ?? Kr.width) : t;
1975
2008
  });
1976
2009
  return a("svg", {
1977
- ...Vr,
2010
+ ...Kr,
1978
2011
  ...l,
1979
- width: s ?? d ?? Vr.width,
1980
- height: s ?? d ?? Vr.height,
1981
- stroke: c ?? f ?? Vr.stroke,
2012
+ width: s ?? d ?? Kr.width,
2013
+ height: s ?? d ?? Kr.height,
2014
+ stroke: c ?? f ?? Kr.stroke,
1982
2015
  "stroke-width": g.value,
1983
- class: Lr("lucide", h, ...e ? [`lucide-${Rr(Br(e))}-icon`, `lucide-${Rr(e)}`] : ["lucide-icon"])
2016
+ class: Hr("lucide", h, ...e ? [`lucide-${Ur(Gr(e))}-icon`, `lucide-${Ur(e)}`] : ["lucide-icon"])
1984
2017
  }, [...t.map((e) => a(...e)), ...u.default ? [u.default()] : []]);
1985
- }, X = (e, t) => (n, { slots: r, attrs: i }) => a(Wr, {
2018
+ }, X = (e, t) => (n, { slots: r, attrs: i }) => a(Yr, {
1986
2019
  ...i,
1987
2020
  ...n,
1988
2021
  iconNode: t,
1989
2022
  name: e
1990
- }, r.default ? { default: r.default } : void 0), Gr = X("circle-alert", [
2023
+ }, r.default ? { default: r.default } : void 0), Xr = X("bookmark", [["path", {
2024
+ 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",
2025
+ key: "oz39mx"
2026
+ }]]), Zr = X("box", [
2027
+ ["path", {
2028
+ 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",
2029
+ key: "hh9hay"
2030
+ }],
2031
+ ["path", {
2032
+ d: "m3.3 7 8.7 5 8.7-5",
2033
+ key: "g66t2b"
2034
+ }],
2035
+ ["path", {
2036
+ d: "M12 22V12",
2037
+ key: "d0xqtd"
2038
+ }]
2039
+ ]), Qr = X("check", [["path", {
2040
+ d: "M20 6 9 17l-5-5",
2041
+ key: "1gmf2c"
2042
+ }]]), $r = X("chevron-down", [["path", {
2043
+ d: "m6 9 6 6 6-6",
2044
+ key: "qrunsl"
2045
+ }]]), ei = X("chevron-left", [["path", {
2046
+ d: "m15 18-6-6 6-6",
2047
+ key: "1wnfg3"
2048
+ }]]), ti = X("chevron-right", [["path", {
2049
+ d: "m9 18 6-6-6-6",
2050
+ key: "mthhwq"
2051
+ }]]), ni = X("chevron-up", [["path", {
2052
+ d: "m18 15-6-6-6 6",
2053
+ key: "153udz"
2054
+ }]]), ri = X("circle-alert", [
1991
2055
  ["circle", {
1992
2056
  cx: "12",
1993
2057
  cy: "12",
@@ -2008,7 +2072,7 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2008
2072
  y2: "16",
2009
2073
  key: "4dfq90"
2010
2074
  }]
2011
- ]), Kr = X("circle-check", [["circle", {
2075
+ ]), ii = X("circle-check", [["circle", {
2012
2076
  cx: "12",
2013
2077
  cy: "12",
2014
2078
  r: "10",
@@ -2016,88 +2080,6 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2016
2080
  }], ["path", {
2017
2081
  d: "m9 12 2 2 4-4",
2018
2082
  key: "dzmm74"
2019
- }]]), qr = X("funnel", [["path", {
2020
- 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",
2021
- key: "sc7q7i"
2022
- }]]), Jr = X("loader-circle", [["path", {
2023
- d: "M21 12a9 9 0 1 1-6.219-8.56",
2024
- key: "13zald"
2025
- }]]), Yr = X("shield-x", [
2026
- ["path", {
2027
- 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",
2028
- key: "oel41y"
2029
- }],
2030
- ["path", {
2031
- d: "m14.5 9.5-5 5",
2032
- key: "17q4r4"
2033
- }],
2034
- ["path", {
2035
- d: "m9.5 9.5 5 5",
2036
- key: "18nt4w"
2037
- }]
2038
- ]), Xr = X("sparkles", [
2039
- ["path", {
2040
- 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",
2041
- key: "1s2grr"
2042
- }],
2043
- ["path", {
2044
- d: "M20 2v4",
2045
- key: "1rf3ol"
2046
- }],
2047
- ["path", {
2048
- d: "M22 4h-4",
2049
- key: "gwowj6"
2050
- }],
2051
- ["circle", {
2052
- cx: "4",
2053
- cy: "20",
2054
- r: "2",
2055
- key: "6kqj1y"
2056
- }]
2057
- ]), Zr = X("triangle-alert", [
2058
- ["path", {
2059
- 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",
2060
- key: "wmoenq"
2061
- }],
2062
- ["path", {
2063
- d: "M12 9v4",
2064
- key: "juzpu7"
2065
- }],
2066
- ["path", {
2067
- d: "M12 17h.01",
2068
- key: "p32p05"
2069
- }]
2070
- ]), Qr = X("bookmark", [["path", {
2071
- 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",
2072
- key: "oz39mx"
2073
- }]]), $r = X("box", [
2074
- ["path", {
2075
- 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",
2076
- key: "hh9hay"
2077
- }],
2078
- ["path", {
2079
- d: "m3.3 7 8.7 5 8.7-5",
2080
- key: "g66t2b"
2081
- }],
2082
- ["path", {
2083
- d: "M12 22V12",
2084
- key: "d0xqtd"
2085
- }]
2086
- ]), ei = X("check", [["path", {
2087
- d: "M20 6 9 17l-5-5",
2088
- key: "1gmf2c"
2089
- }]]), ti = X("chevron-down", [["path", {
2090
- d: "m6 9 6 6 6-6",
2091
- key: "qrunsl"
2092
- }]]), ni = X("chevron-left", [["path", {
2093
- d: "m15 18-6-6 6-6",
2094
- key: "1wnfg3"
2095
- }]]), ri = X("chevron-right", [["path", {
2096
- d: "m9 18 6-6-6-6",
2097
- key: "mthhwq"
2098
- }]]), ii = X("chevron-up", [["path", {
2099
- d: "m18 15-6-6-6 6",
2100
- key: "153udz"
2101
2083
  }]]), ai = X("clock", [["circle", {
2102
2084
  cx: "12",
2103
2085
  cy: "12",
@@ -2188,7 +2170,10 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2188
2170
  d: "M16 17H8",
2189
2171
  key: "z1uh3a"
2190
2172
  }]
2191
- ]), fi = X("grip-vertical", [
2173
+ ]), fi = X("funnel", [["path", {
2174
+ 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",
2175
+ key: "sc7q7i"
2176
+ }]]), pi = X("grip-vertical", [
2192
2177
  ["circle", {
2193
2178
  cx: "9",
2194
2179
  cy: "12",
@@ -2225,7 +2210,7 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2225
2210
  r: "1",
2226
2211
  key: "f4zoj3"
2227
2212
  }]
2228
- ]), pi = X("image-up", [
2213
+ ]), mi = X("image-up", [
2229
2214
  ["path", {
2230
2215
  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",
2231
2216
  key: "9csbqa"
@@ -2244,7 +2229,7 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2244
2229
  r: "2",
2245
2230
  key: "af1f0g"
2246
2231
  }]
2247
- ]), mi = X("image", [
2232
+ ]), hi = X("image", [
2248
2233
  ["rect", {
2249
2234
  width: "18",
2250
2235
  height: "18",
@@ -2264,7 +2249,7 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2264
2249
  d: "m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",
2265
2250
  key: "1xmnt7"
2266
2251
  }]
2267
- ]), hi = X("info", [
2252
+ ]), gi = X("info", [
2268
2253
  ["circle", {
2269
2254
  cx: "12",
2270
2255
  cy: "12",
@@ -2279,28 +2264,31 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2279
2264
  d: "M12 8h.01",
2280
2265
  key: "e9boi3"
2281
2266
  }]
2282
- ]), gi = X("message-circle", [["path", {
2267
+ ]), _i = X("loader-circle", [["path", {
2268
+ d: "M21 12a9 9 0 1 1-6.219-8.56",
2269
+ key: "13zald"
2270
+ }]]), vi = X("message-circle", [["path", {
2283
2271
  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",
2284
2272
  key: "1sd12s"
2285
- }]]), _i = X("navigation", [["polygon", {
2273
+ }]]), yi = X("navigation", [["polygon", {
2286
2274
  points: "3 11 22 2 13 21 11 13 3 11",
2287
2275
  key: "1ltx0t"
2288
- }]]), vi = X("pencil", [["path", {
2276
+ }]]), bi = X("pencil", [["path", {
2289
2277
  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",
2290
2278
  key: "1a8usu"
2291
2279
  }], ["path", {
2292
2280
  d: "m15 5 4 4",
2293
2281
  key: "1mk7zo"
2294
- }]]), yi = X("puzzle", [["path", {
2282
+ }]]), xi = X("puzzle", [["path", {
2295
2283
  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",
2296
2284
  key: "w46dr5"
2297
- }]]), bi = X("redo-2", [["path", {
2285
+ }]]), Si = X("redo-2", [["path", {
2298
2286
  d: "m15 14 5-5-5-5",
2299
2287
  key: "12vg1m"
2300
2288
  }], ["path", {
2301
2289
  d: "M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",
2302
2290
  key: "6uklza"
2303
- }]]), xi = X("refresh-cw", [
2291
+ }]]), Ci = X("refresh-cw", [
2304
2292
  ["path", {
2305
2293
  d: "M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",
2306
2294
  key: "v9h5vc"
@@ -2317,19 +2305,19 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2317
2305
  d: "M8 16H3v5",
2318
2306
  key: "1cv678"
2319
2307
  }]
2320
- ]), Si = X("reply", [["path", {
2308
+ ]), wi = X("reply", [["path", {
2321
2309
  d: "M20 18v-2a4 4 0 0 0-4-4H4",
2322
2310
  key: "5vmcpk"
2323
2311
  }], ["path", {
2324
2312
  d: "m9 17-5-5 5-5",
2325
2313
  key: "nvlc11"
2326
- }]]), Ci = X("send", [["path", {
2314
+ }]]), Ti = X("send", [["path", {
2327
2315
  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",
2328
2316
  key: "1ffxy3"
2329
2317
  }], ["path", {
2330
2318
  d: "m21.854 2.147-10.94 10.939",
2331
2319
  key: "12cjpa"
2332
- }]]), wi = X("share-2", [
2320
+ }]]), Ei = X("share-2", [
2333
2321
  ["circle", {
2334
2322
  cx: "18",
2335
2323
  cy: "5",
@@ -2362,13 +2350,45 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2362
2350
  y2: "10.49",
2363
2351
  key: "1n3mei"
2364
2352
  }]
2365
- ]), Ti = X("shield-check", [["path", {
2353
+ ]), Di = X("shield-check", [["path", {
2366
2354
  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",
2367
2355
  key: "oel41y"
2368
2356
  }], ["path", {
2369
2357
  d: "m9 12 2 2 4-4",
2370
2358
  key: "dzmm74"
2371
- }]]), Ei = X("table", [
2359
+ }]]), Oi = X("shield-x", [
2360
+ ["path", {
2361
+ 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",
2362
+ key: "oel41y"
2363
+ }],
2364
+ ["path", {
2365
+ d: "m14.5 9.5-5 5",
2366
+ key: "17q4r4"
2367
+ }],
2368
+ ["path", {
2369
+ d: "m9.5 9.5 5 5",
2370
+ key: "18nt4w"
2371
+ }]
2372
+ ]), ki = X("sparkles", [
2373
+ ["path", {
2374
+ 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",
2375
+ key: "1s2grr"
2376
+ }],
2377
+ ["path", {
2378
+ d: "M20 2v4",
2379
+ key: "1rf3ol"
2380
+ }],
2381
+ ["path", {
2382
+ d: "M22 4h-4",
2383
+ key: "gwowj6"
2384
+ }],
2385
+ ["circle", {
2386
+ cx: "4",
2387
+ cy: "20",
2388
+ r: "2",
2389
+ key: "6kqj1y"
2390
+ }]
2391
+ ]), Ai = X("table", [
2372
2392
  ["path", {
2373
2393
  d: "M12 3v18",
2374
2394
  key: "108xh3"
@@ -2389,7 +2409,7 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2389
2409
  d: "M3 15h18",
2390
2410
  key: "5xshup"
2391
2411
  }]
2392
- ]), Di = X("trash-2", [
2412
+ ]), ji = X("trash-2", [
2393
2413
  ["path", {
2394
2414
  d: "M10 11v6",
2395
2415
  key: "nco0om"
@@ -2410,13 +2430,26 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2410
2430
  d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",
2411
2431
  key: "e791ji"
2412
2432
  }]
2413
- ]), Oi = X("undo-2", [["path", {
2433
+ ]), Mi = X("triangle-alert", [
2434
+ ["path", {
2435
+ 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",
2436
+ key: "wmoenq"
2437
+ }],
2438
+ ["path", {
2439
+ d: "M12 9v4",
2440
+ key: "juzpu7"
2441
+ }],
2442
+ ["path", {
2443
+ d: "M12 17h.01",
2444
+ key: "p32p05"
2445
+ }]
2446
+ ]), Ni = X("undo-2", [["path", {
2414
2447
  d: "M9 14 4 9l5-5",
2415
2448
  key: "102s5s"
2416
2449
  }], ["path", {
2417
2450
  d: "M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",
2418
2451
  key: "f3b9sd"
2419
- }]]), ki = X("upload", [
2452
+ }]]), Pi = X("upload", [
2420
2453
  ["path", {
2421
2454
  d: "M12 3v12",
2422
2455
  key: "1x0j5s"
@@ -2429,7 +2462,7 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2429
2462
  d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",
2430
2463
  key: "ih7n3h"
2431
2464
  }]
2432
- ]), Ai = X("video", [["path", {
2465
+ ]), Fi = X("video", [["path", {
2433
2466
  d: "m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",
2434
2467
  key: "ftymec"
2435
2468
  }], ["rect", {
@@ -2439,20 +2472,20 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2439
2472
  height: "12",
2440
2473
  rx: "2",
2441
2474
  key: "158x01"
2442
- }]]), ji = X("x", [["path", {
2475
+ }]]), Ii = X("x", [["path", {
2443
2476
  d: "M18 6 6 18",
2444
2477
  key: "1bl5f8"
2445
2478
  }], ["path", {
2446
2479
  d: "m6 6 12 12",
2447
2480
  key: "d8bk6v"
2448
- }]]), Mi = X("zap", [["path", {
2481
+ }]]), Li = X("zap", [["path", {
2449
2482
  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",
2450
2483
  key: "1xq2db"
2451
- }]]), Ni = ["innerHTML"], Pi = [
2484
+ }]]), Ri = ["innerHTML"], zi = [
2452
2485
  "src",
2453
2486
  "width",
2454
2487
  "height"
2455
- ], Fi = /* @__PURE__ */ B({
2488
+ ], Bi = /* @__PURE__ */ B({
2456
2489
  __name: "CustomBlockIcon",
2457
2490
  props: {
2458
2491
  icon: {},
@@ -2468,40 +2501,40 @@ var Wr = ({ name: e, iconNode: t, absoluteStrokeWidth: n, "absolute-stroke-width
2468
2501
  height: `${n.value}px`
2469
2502
  }),
2470
2503
  innerHTML: e.icon
2471
- }, null, 12, Ni)) : i.value ? (f(), k("img", {
2504
+ }, null, 12, Ri)) : i.value ? (f(), k("img", {
2472
2505
  key: 1,
2473
2506
  src: e.icon,
2474
2507
  width: n.value,
2475
2508
  height: n.value,
2476
2509
  class: "tpl:inline-block",
2477
2510
  alt: ""
2478
- }, null, 8, Pi)) : (f(), N(j($r), {
2511
+ }, null, 8, zi)) : (f(), N(j(Zr), {
2479
2512
  key: 2,
2480
2513
  size: n.value,
2481
2514
  "stroke-width": 1.5
2482
2515
  }, null, 8, ["size"]));
2483
2516
  }
2484
- }), Ii = (e, t) => {
2517
+ }), Vi = (e, t) => {
2485
2518
  let n = e.__vccOpts || e;
2486
2519
  for (let [e, r] of t) n[e] = r;
2487
2520
  return n;
2488
- }, Li = {}, Ri = { class: "tpl-loading-track" };
2489
- function zi(e, t) {
2490
- return f(), k("div", Ri);
2521
+ }, Hi = {}, Ui = { class: "tpl-loading-track" };
2522
+ function Wi(e, t) {
2523
+ return f(), k("div", Ui);
2491
2524
  }
2492
- var Bi = /*#__PURE__*/ Ii(Li, [["render", zi], ["__scopeId", "data-v-1ed538ec"]]);
2525
+ var Gi = /*#__PURE__*/ Vi(Hi, [["render", Wi], ["__scopeId", "data-v-1ed538ec"]]);
2493
2526
  //#endregion
2494
2527
  //#region src/composables/useEditorRoot.ts
2495
- function Vi() {
2496
- return v(or, document) ?? document;
2528
+ function Ki() {
2529
+ return v(ur, document) ?? document;
2497
2530
  }
2498
2531
  //#endregion
2499
2532
  //#region src/composables/useFocusTrap.ts
2500
- var Hi = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
2501
- function Ui(e, t) {
2502
- let n = Vi(), r = null, i = null, a = null;
2533
+ var qi = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
2534
+ function Ji(e, t) {
2535
+ let n = Ki(), r = null, i = null, a = null;
2503
2536
  function o() {
2504
- return e.value ? Array.from(e.value.querySelectorAll(Hi)).filter((e) => e.offsetParent !== null) : [];
2537
+ return e.value ? Array.from(e.value.querySelectorAll(qi)).filter((e) => e.offsetParent !== null) : [];
2505
2538
  }
2506
2539
  function s(e) {
2507
2540
  if (e.key !== "Tab") return;
@@ -2531,18 +2564,18 @@ function Ui(e, t) {
2531
2564
  }
2532
2565
  //#endregion
2533
2566
  //#region src/composables/useCloudI18n.ts
2534
- function Wi(e, t) {
2567
+ function Yi(e, t) {
2535
2568
  return e.replace(/\{(\w+)\}/g, (e, n) => n in t ? String(t[n]) : `{${n}}`);
2536
2569
  }
2537
- function Gi(e) {
2538
- let t = e ?? v(pr, null);
2570
+ function Xi(e) {
2571
+ let t = e ?? v(_r, null);
2539
2572
  return {
2540
2573
  t: t ? u(t) ? t.value : t : null,
2541
- format: Wi
2574
+ format: Yi
2542
2575
  };
2543
2576
  }
2544
- function Ki(e) {
2545
- let { t, format: n } = Gi(e);
2577
+ function Zi(e) {
2578
+ let { t, format: n } = Xi(e);
2546
2579
  if (!t) throw Error("useCloudI18nStrict() requires a cloud translations provider. Ensure the component is a descendant of CloudEditor.");
2547
2580
  return {
2548
2581
  t,
@@ -2551,7 +2584,7 @@ function Ki(e) {
2551
2584
  }
2552
2585
  //#endregion
2553
2586
  //#region src/composables/useMergeTag.ts
2554
- function qi() {
2587
+ function Qi() {
2555
2588
  let e = v(Yn, []), t = v(Xn, dt.liquid), n = v(Zn, null), r = v(Qn, !0), i = v($n, null), a = C(!1);
2556
2589
  function o(e) {
2557
2590
  return gt(e, t);
@@ -2591,7 +2624,7 @@ function qi() {
2591
2624
  }
2592
2625
  //#endregion
2593
2626
  //#region src/composables/useEmoji.ts
2594
- function Ji() {
2627
+ function $i() {
2595
2628
  let [e, t] = ln(!1), r = n([]), i = !1;
2596
2629
  l(() => {
2597
2630
  i = !0;
@@ -2617,7 +2650,7 @@ function Ji() {
2617
2650
  }
2618
2651
  //#endregion
2619
2652
  //#region src/composables/useDragDrop.ts
2620
- function Yi(e) {
2653
+ function ea(e) {
2621
2654
  let { onBlockMove: t, onBlockAdd: n } = e, r = C(!1), i = C(null), a = C(null);
2622
2655
  function o(e) {
2623
2656
  r.value = !0, i.value = e;
@@ -2667,7 +2700,7 @@ function Yi(e) {
2667
2700
  }
2668
2701
  //#endregion
2669
2702
  //#region src/composables/useFonts.ts
2670
- var Xi = [
2703
+ var ta = [
2671
2704
  {
2672
2705
  value: "Arial",
2673
2706
  label: "Arial"
@@ -2696,7 +2729,7 @@ var Xi = [
2696
2729
  value: "Courier New",
2697
2730
  label: "Courier New"
2698
2731
  }
2699
- ], Zi = {
2732
+ ], na = {
2700
2733
  arial: "Arial, sans-serif",
2701
2734
  helvetica: "Helvetica, sans-serif",
2702
2735
  georgia: "Georgia, serif",
@@ -2704,14 +2737,14 @@ var Xi = [
2704
2737
  verdana: "Verdana, sans-serif",
2705
2738
  "trebuchet ms": "'Trebuchet MS', sans-serif",
2706
2739
  "courier new": "'Courier New', monospace"
2707
- }, Qi = "Arial, sans-serif";
2708
- function $i(e) {
2709
- let t = C(e?.customFonts ?? []), n = C(!0), r = C(!1), i = O(() => e?.defaultFallback ?? Qi);
2740
+ }, ra = "Arial, sans-serif";
2741
+ function ia(e) {
2742
+ let t = C(e?.customFonts ?? []), n = C(!0), r = C(!1), i = O(() => e?.defaultFallback ?? ra);
2710
2743
  function a(e) {
2711
2744
  n.value = e;
2712
2745
  }
2713
2746
  let o = O(() => {
2714
- let e = [...Xi];
2747
+ let e = [...ta];
2715
2748
  if (!n.value) return e.sort((e, t) => e.label.localeCompare(t.label));
2716
2749
  let r = t.value.map((e) => ({
2717
2750
  value: e.name,
@@ -2724,23 +2757,23 @@ function $i(e) {
2724
2757
  return o.value.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
2725
2758
  }
2726
2759
  function u(e) {
2727
- return Xi.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
2760
+ return ta.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
2728
2761
  }
2729
2762
  function d() {
2730
2763
  if (e?.defaultFont) {
2731
- if (!n.value && !u(e.defaultFont)) return Qi;
2764
+ if (!n.value && !u(e.defaultFont)) return ra;
2732
2765
  if (c(e.defaultFont)) {
2733
2766
  let t = o.value.find((t) => t.label.toLowerCase() === e.defaultFont.toLowerCase() || t.value.toLowerCase().startsWith(e.defaultFont.toLowerCase()));
2734
2767
  if (t) return t.value;
2735
2768
  }
2736
2769
  }
2737
- return Qi;
2770
+ return ra;
2738
2771
  }
2739
2772
  let f = O(() => d());
2740
2773
  function p(e) {
2741
2774
  if (!e) return i.value;
2742
2775
  let n = t.value.find((t) => t.name.toLowerCase() === e.toLowerCase());
2743
- return n ? `'${n.name}', ${n.fallback ?? i.value}` : Zi[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
2776
+ return n ? `'${n.name}', ${n.fallback ?? i.value}` : na[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
2744
2777
  }
2745
2778
  let m = [], h = !1;
2746
2779
  async function g() {
@@ -2756,7 +2789,7 @@ function $i(e) {
2756
2789
  t.onload = () => n(), t.onerror = () => r(/* @__PURE__ */ Error(`Failed to load font: ${e.name}`)), document.head.appendChild(t);
2757
2790
  });
2758
2791
  } catch (t) {
2759
- wr.warn(`Failed to load custom font "${e.name}":`, t);
2792
+ kr.warn(`Failed to load custom font "${e.name}":`, t);
2760
2793
  }
2761
2794
  });
2762
2795
  await Promise.allSettled(e), !h && (r.value = !0);
@@ -2782,12 +2815,79 @@ function $i(e) {
2782
2815
  };
2783
2816
  }
2784
2817
  //#endregion
2818
+ //#region src/composables/useLogicTag.ts
2819
+ function aa() {
2820
+ let e = v(er, []), t = v(tr, []), n = v(Xn, dt.liquid), r = v(rr, null), i = v(nr, null), a = C(!1), o = !!r || e.length > 0 || t.length > 0, s = e.length > 0 || t.length > 0;
2821
+ async function c() {
2822
+ if (r) {
2823
+ a.value = !0;
2824
+ try {
2825
+ return await r();
2826
+ } finally {
2827
+ a.value = !1;
2828
+ }
2829
+ }
2830
+ if (i && s) {
2831
+ a.value = !0;
2832
+ try {
2833
+ return await i.open(e, t);
2834
+ } finally {
2835
+ a.value = !1;
2836
+ }
2837
+ }
2838
+ return null;
2839
+ }
2840
+ return {
2841
+ logicTags: e,
2842
+ logicPairs: t,
2843
+ syntax: n,
2844
+ canInsertLogicTag: o,
2845
+ isRequesting: a,
2846
+ requestLogicTag: c
2847
+ };
2848
+ }
2849
+ //#endregion
2850
+ //#region src/utils/mergeTagNodeSpec.ts
2851
+ function oa(e, t, n) {
2852
+ return bt(e, n) ? {
2853
+ type: "logicMergeTagNode",
2854
+ attrs: {
2855
+ value: e,
2856
+ keyword: xt(e, n)
2857
+ }
2858
+ } : {
2859
+ type: "mergeTagNode",
2860
+ attrs: {
2861
+ label: t,
2862
+ value: e
2863
+ }
2864
+ };
2865
+ }
2866
+ //#endregion
2867
+ //#region src/utils/insertLogicTag.ts
2868
+ function sa(e) {
2869
+ return "before" in e && "after" in e;
2870
+ }
2871
+ function ca(e, t, n) {
2872
+ if (!sa(t)) {
2873
+ e.chain().focus().insertContent(oa(t.value, t.label, n)).run();
2874
+ return;
2875
+ }
2876
+ let r = oa(t.before, t.label, n), i = oa(t.after, t.label, n), { from: a, to: o } = e.state.selection;
2877
+ if (a !== o) {
2878
+ e.chain().focus().insertContentAt(o, i).insertContentAt(a, r).run();
2879
+ return;
2880
+ }
2881
+ e.chain().focus().insertContentAt(a, [r, i]).setTextSelection(a + 1).run();
2882
+ }
2883
+ //#endregion
2785
2884
  //#region src/composables/useRichTextLinkDialog.ts
2786
- function ea(e) {
2885
+ function la(e) {
2787
2886
  let t = C(!1), n = C(""), r = C(null);
2788
- Ui(r, t);
2887
+ Ji(r, t);
2789
2888
  function i() {
2790
- n.value = e.value?.getAttributes("link").href || "", t.value = !0;
2889
+ let r = e.value?.getAttributes("link").href || "";
2890
+ n.value = r, t.value = !0;
2791
2891
  }
2792
2892
  function a() {
2793
2893
  if (n.value) {
@@ -2836,20 +2936,20 @@ function ea(e) {
2836
2936
  }
2837
2937
  //#endregion
2838
2938
  //#region src/composables/useRichTextEditor.ts
2839
- function ta(e) {
2840
- let t = v(Ln, null), { mergeTags: r, canRequestMergeTag: i, isRequesting: a, requestMergeTag: o, syntax: s, autocomplete: c } = qi(), l = v(In, null), d = (u(l) ? l.value : l)?.mergeTag?.suggestionEmpty ?? "No matching merge tags", f = pt(s), p = n(null), { showLinkDialog: m, linkUrl: h, linkDialogRef: g, openLinkDialog: _, insertLink: y, removeLink: b, closeLinkDialog: x, handleLinkKeydown: S } = ea(p), { start: w, stop: ee } = cn(() => p.value?.commands.focus("end"), 0, { immediate: !1 }), T = n(null), E = C(!0), D = C(null), te = !1;
2841
- async function ne() {
2842
- D.value = null, E.value = !0;
2939
+ function ua(e) {
2940
+ let t = v(Ln, null), { mergeTags: r, canRequestMergeTag: i, isRequesting: a, requestMergeTag: o, syntax: s, autocomplete: c } = Qi(), { canInsertLogicTag: l, isRequesting: d, requestLogicTag: f } = aa(), p = v(In, null), m = (u(p) ? p.value : p)?.mergeTag?.suggestionEmpty ?? "No matching merge tags", h = pt(s), g = n(null), { showLinkDialog: _, linkUrl: y, linkDialogRef: b, openLinkDialog: x, insertLink: S, removeLink: w, closeLinkDialog: T, handleLinkKeydown: E } = la(g), { start: ee, stop: D } = cn(() => g.value?.commands.focus("end"), 0, { immediate: !1 }), te = n(null), ne = C(!0), O = C(null), k = !1;
2941
+ async function A() {
2942
+ O.value = null, ne.value = !0;
2843
2943
  try {
2844
2944
  let { TiptapEditor: n, EC: i, extensions: a } = await e.loadExtensions({
2845
2945
  mergeTags: r,
2846
2946
  syntax: s,
2847
- triggerChar: f,
2947
+ triggerChar: h,
2848
2948
  autocompleteEnabled: c,
2849
- suggestionEmptyText: d
2949
+ suggestionEmptyText: m
2850
2950
  });
2851
- if (te) return;
2852
- T.value = i;
2951
+ if (k) return;
2952
+ te.value = i;
2853
2953
  let o = /* @__PURE__ */ new Map();
2854
2954
  a.forEach((e, t) => o.set(e.name, t));
2855
2955
  let l = new n({
@@ -2857,67 +2957,74 @@ function ta(e) {
2857
2957
  content: e.blockContent(),
2858
2958
  editable: !0,
2859
2959
  onUpdate: ({ editor: n }) => {
2860
- te || t && t.updateBlock(e.blockId(), { content: n.getHTML() });
2960
+ k || t && t.updateBlock(e.blockId(), { content: n.getHTML() });
2861
2961
  }
2862
2962
  });
2863
- if (te) {
2963
+ if (k) {
2864
2964
  l.destroy();
2865
2965
  return;
2866
2966
  }
2867
- p.value = l, E.value = !1, w();
2967
+ g.value = l, ne.value = !1, ee();
2868
2968
  } catch (t) {
2869
- if (te) return;
2870
- wr.error(`[${e.editorName ?? "RichTextEditor"}] Failed to initialize TipTap editor:`, t), D.value = t instanceof Error ? t.message : "Failed to load editor", E.value = !1;
2969
+ if (k) return;
2970
+ kr.error(`[${e.editorName ?? "RichTextEditor"}] Failed to initialize TipTap editor:`, t), O.value = t instanceof Error ? t.message : "Failed to load editor", ne.value = !1;
2871
2971
  }
2872
2972
  }
2873
- function O() {
2874
- p.value?.destroy(), p.value = null, ne();
2973
+ function j() {
2974
+ g.value?.destroy(), g.value = null, A();
2875
2975
  }
2876
- ne();
2877
- let k = H(() => e.blockContent(), (e) => {
2878
- p.value && p.value.getHTML() !== e && p.value.commands.setContent(e, { emitUpdate: !1 });
2976
+ A();
2977
+ let M = H(() => e.blockContent(), (e) => {
2978
+ g.value && g.value.getHTML() !== e && g.value.commands.setContent(e, { emitUpdate: !1 });
2879
2979
  });
2880
- function A(t) {
2881
- if (a.value) return;
2980
+ function N(t) {
2981
+ if (a.value || d.value) return;
2882
2982
  let n = t.composedPath().find((e) => e instanceof HTMLElement);
2883
2983
  n && (e.onClickOutsideSideEffect?.(n), !(n.closest(".tpl-text-editor-wrapper") || n.closest(".tpl-text-toolbar") || n.closest(".tpl-link-dialog")) && e.onDone());
2884
2984
  }
2885
- q(document, "mousedown", A), re(() => {
2886
- te = !0, k(), ee(), p.value?.destroy();
2985
+ q(document, "mousedown", N), re(() => {
2986
+ k = !0, M(), D(), g.value?.destroy();
2887
2987
  });
2888
- async function j() {
2988
+ async function ie() {
2889
2989
  let e = await o();
2890
- te || (e && p.value ? p.value.chain().focus().insertMergeTag({
2990
+ k || (e && g.value ? g.value.chain().focus().insertMergeTag({
2891
2991
  label: e.label,
2892
2992
  value: e.value
2893
- }).run() : p.value?.commands.focus());
2993
+ }).run() : g.value?.commands.focus());
2994
+ }
2995
+ async function P() {
2996
+ let e = await f();
2997
+ k || (e && g.value ? ca(g.value, e, s) : g.value?.commands.focus());
2894
2998
  }
2895
2999
  return {
2896
- editor: p,
2897
- EditorContent: T,
2898
- isLoading: E,
2899
- initError: D,
2900
- retry: O,
2901
- showLinkDialog: m,
2902
- linkUrl: h,
2903
- linkDialogRef: g,
3000
+ editor: g,
3001
+ EditorContent: te,
3002
+ isLoading: ne,
3003
+ initError: O,
3004
+ retry: j,
3005
+ showLinkDialog: _,
3006
+ linkUrl: y,
3007
+ linkDialogRef: b,
2904
3008
  mergeTags: r,
2905
3009
  canRequestMergeTag: i,
2906
3010
  isRequestingMergeTag: a,
2907
3011
  syntax: s,
2908
- openLinkDialog: _,
2909
- insertLink: y,
2910
- removeLink: b,
2911
- closeLinkDialog: x,
2912
- handleLinkKeydown: S,
2913
- handleAddMergeTag: j
3012
+ canInsertLogicTag: l,
3013
+ isRequestingLogicTag: d,
3014
+ openLinkDialog: x,
3015
+ insertLink: S,
3016
+ removeLink: w,
3017
+ closeLinkDialog: T,
3018
+ handleLinkKeydown: E,
3019
+ handleAddMergeTag: ie,
3020
+ handleAddLogicTag: P
2914
3021
  };
2915
3022
  }
2916
3023
  //#endregion
2917
3024
  //#region src/composables/useSmallScreenNotice.ts
2918
- var na = "(max-width: 767px)";
2919
- function ra(e) {
2920
- let t = Sn(na);
3025
+ var da = "(max-width: 767px)";
3026
+ function fa(e) {
3027
+ let t = Sn(da);
2921
3028
  return {
2922
3029
  isSmallScreen: t,
2923
3030
  showNotice: O(() => (P(e) ?? !0) && t.value)
@@ -2925,20 +3032,20 @@ function ra(e) {
2925
3032
  }
2926
3033
  //#endregion
2927
3034
  //#region src/components/blocks/CustomBlock.vue?vue&type=script&setup=true&lang.ts
2928
- var ia = { class: "tpl:w-full" }, aa = {
3035
+ var pa = { class: "tpl:w-full" }, ma = {
2929
3036
  key: 0,
2930
3037
  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)]"
2931
- }, oa = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, sa = {
3038
+ }, ha = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, ga = {
2932
3039
  key: 1,
2933
3040
  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)]"
2934
- }, ca = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, la = {
3041
+ }, _a = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, va = {
2935
3042
  key: 2,
2936
3043
  class: "tpl:relative"
2937
- }, ua = ["innerHTML"], da = {
3044
+ }, ya = ["innerHTML"], ba = {
2938
3045
  key: 0,
2939
3046
  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]",
2940
3047
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)" }
2941
- }, fa = /* @__PURE__ */ B({
3048
+ }, xa = /* @__PURE__ */ B({
2942
3049
  __name: "CustomBlock",
2943
3050
  props: {
2944
3051
  block: {},
@@ -2972,10 +3079,10 @@ var ia = { class: "tpl:w-full" }, aa = {
2972
3079
  g();
2973
3080
  }), H(() => n.block.fieldValues, () => {
2974
3081
  _();
2975
- }, { deep: !0 }), (e, t) => (f(), k("div", ia, [u.value ? c.value ? (f(), k("div", sa, [V(j(Zr), {
3082
+ }, { deep: !0 }), (e, t) => (f(), k("div", pa, [u.value ? c.value ? (f(), k("div", ga, [V(j(Mi), {
2976
3083
  size: 24,
2977
3084
  class: "tpl:text-[var(--tpl-danger)]"
2978
- }), I("span", ca, D(j(a).customBlocks.renderError), 1)])) : (f(), k("div", la, [I("div", { innerHTML: s.value }, null, 8, ua), j(h) && j(m) ? (f(), k("div", da, [j(d) ? (f(), N(Bi, {
3085
+ }), I("span", _a, D(j(a).customBlocks.renderError), 1)])) : (f(), k("div", va, [I("div", { innerHTML: s.value }, null, 8, ya), j(h) && j(m) ? (f(), k("div", ba, [j(d) ? (f(), N(Gi, {
2979
3086
  key: 1,
2980
3087
  class: "tpl:w-48"
2981
3088
  })) : (f(), k("button", {
@@ -2983,16 +3090,16 @@ var ia = { class: "tpl:w-full" }, aa = {
2983
3090
  type: "button",
2984
3091
  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)]",
2985
3092
  onClick: t[0] ||= M((...e) => j(p) && j(p)(...e), ["stop"])
2986
- }, [l.value?.icon ? (f(), N(Fi, {
3093
+ }, [l.value?.icon ? (f(), N(Bi, {
2987
3094
  key: 0,
2988
3095
  icon: l.value.icon,
2989
3096
  size: 16
2990
- }, null, 8, ["icon"])) : A("", !0), z(" " + D(l.value?.dataSource?.label || j(a).customBlocks.dataSource.fetchButton), 1)]))])) : A("", !0)])) : (f(), k("div", aa, [V(j(yi), {
3097
+ }, null, 8, ["icon"])) : A("", !0), z(" " + D(l.value?.dataSource?.label || j(a).customBlocks.dataSource.fetchButton), 1)]))])) : A("", !0)])) : (f(), k("div", ma, [V(j(xi), {
2991
3098
  size: 24,
2992
3099
  class: "tpl:text-[var(--tpl-warning)]"
2993
- }), I("span", oa, D(j(a).customBlocks.definitionNotFound), 1)]))]));
3100
+ }), I("span", ha, D(j(a).customBlocks.definitionNotFound), 1)]))]));
2994
3101
  }
2995
- }), pa = { class: "tpl:w-full" }, ma = /* @__PURE__ */ B({
3102
+ }), Sa = { class: "tpl:w-full" }, Ca = /* @__PURE__ */ B({
2996
3103
  __name: "DividerBlock",
2997
3104
  props: {
2998
3105
  block: {},
@@ -3004,18 +3111,18 @@ var ia = { class: "tpl:w-full" }, aa = {
3004
3111
  width: t.block.width === "full" ? "100%" : `${t.block.width}px`,
3005
3112
  margin: t.block.width === "full" ? "0" : "0 auto"
3006
3113
  }));
3007
- return (e, t) => (f(), k("div", pa, [I("hr", {
3114
+ return (e, t) => (f(), k("div", Sa, [I("hr", {
3008
3115
  class: "tpl:m-0 tpl:border-none",
3009
3116
  style: L(n.value)
3010
3117
  }, null, 4)]));
3011
3118
  }
3012
- }), ha = { class: "tpl:w-full" }, ga = { 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)]" }, _a = {
3119
+ }), wa = { class: "tpl:w-full" }, Ta = { 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)]" }, Ea = {
3013
3120
  key: 0,
3014
3121
  class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]"
3015
- }, va = {
3122
+ }, Da = {
3016
3123
  key: 1,
3017
3124
  class: "tpl:text-sm tpl:text-[var(--tpl-text-dim)]"
3018
- }, ya = /* @__PURE__ */ B({
3125
+ }, Oa = /* @__PURE__ */ B({
3019
3126
  __name: "HtmlBlock",
3020
3127
  props: {
3021
3128
  block: {},
@@ -3023,29 +3130,47 @@ var ia = { class: "tpl:w-full" }, aa = {
3023
3130
  },
3024
3131
  setup(e) {
3025
3132
  let t = e, { t: n } = Y(), r = O(() => t.block.content.trim().length > 0);
3026
- return (e, t) => (f(), k("div", ha, [I("div", ga, [V(j(oi), {
3133
+ return (e, t) => (f(), k("div", wa, [I("div", Ta, [V(j(oi), {
3027
3134
  size: 24,
3028
3135
  class: "tpl:text-[var(--tpl-text-dim)]"
3029
- }), r.value ? (f(), k("span", _a, D(j(n).html.preview), 1)) : (f(), k("span", va, D(j(n).html.empty), 1))])]));
3136
+ }), r.value ? (f(), k("span", Ea, D(j(n).html.preview), 1)) : (f(), k("span", Da, D(j(n).html.empty), 1))])]));
3030
3137
  }
3031
3138
  });
3032
3139
  //#endregion
3033
3140
  //#region src/composables/useAliveFlag.ts
3034
- function ba() {
3141
+ function ka() {
3035
3142
  let e = { alive: !0 };
3036
3143
  return re(() => {
3037
3144
  e.alive = !1;
3038
3145
  }), e;
3039
3146
  }
3040
3147
  //#endregion
3148
+ //#region src/composables/useImageDrop.ts
3149
+ var Aa = "image/";
3150
+ function ja(e) {
3151
+ let { target: t, onFiles: n, enabled: r } = e, i = () => r === void 0 ? !0 : P(r), { isOverDropZone: a } = Tn(t, {
3152
+ preventDefaultForUnhandled: !0,
3153
+ onDrop: (e) => {
3154
+ if (!i()) return;
3155
+ let t = (e ?? []).filter((e) => e.type.startsWith(Aa));
3156
+ t.length > 0 && n([t[0]]);
3157
+ }
3158
+ });
3159
+ return { isOver: O(() => i() && a.value) };
3160
+ }
3161
+ //#endregion
3041
3162
  //#region src/components/blocks/ImageBlock.vue?vue&type=script&setup=true&lang.ts
3042
- var xa = ["href"], Sa = ["src", "alt"], Ca = ["src", "alt"], wa = {
3163
+ var Ma = {
3164
+ key: 0,
3165
+ class: "tpl:pointer-events-none tpl:absolute tpl:inset-0 tpl:z-10 tpl:flex tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-xs tpl:font-medium tpl:border-[var(--tpl-primary)] tpl:text-[var(--tpl-primary)]",
3166
+ style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 85%, transparent)" }
3167
+ }, Na = ["href"], Pa = ["src", "alt"], Fa = ["src", "alt"], Ia = {
3043
3168
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
3044
3169
  style: { opacity: "0.7" }
3045
- }, Ta = ["href"], Ea = ["src", "alt"], Da = ["src", "alt"], Oa = {
3046
- key: 3,
3170
+ }, La = ["href"], Ra = ["src", "alt"], za = ["src", "alt"], Ba = {
3171
+ key: 4,
3047
3172
  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)]"
3048
- }, ka = ["aria-label"], Aa = { key: 1 }, ja = /* @__PURE__ */ B({
3173
+ }, Va = ["aria-label"], Ha = { key: 1 }, Ua = /* @__PURE__ */ B({
3049
3174
  __name: "ImageBlock",
3050
3175
  props: {
3051
3176
  block: {},
@@ -3053,7 +3178,7 @@ var xa = ["href"], Sa = ["src", "alt"], Ca = ["src", "alt"], wa = {
3053
3178
  },
3054
3179
  emits: ["update"],
3055
3180
  setup(e, { emit: t }) {
3056
- let n = e, r = t, { t: i } = Y(), { syntax: a } = qi(), o = v(er, null), s = O(() => !!o), c = ba();
3181
+ let n = e, r = t, { t: i } = Y(), { syntax: a } = Qi(), o = v(ir, null), s = O(() => !!o), c = ka();
3057
3182
  async function l() {
3058
3183
  let e = await o?.({ accept: ["images"] });
3059
3184
  if (c.alive && e) {
@@ -3061,7 +3186,30 @@ var xa = ["href"], Sa = ["src", "alt"], Ca = ["src", "alt"], wa = {
3061
3186
  e.alt && (t.alt = e.alt), r("update", t);
3062
3187
  }
3063
3188
  }
3064
- let u = O(() => ({ textAlign: n.block.align })), d = O(() => {
3189
+ let u = C(), d = C(!1), p = O(() => s.value && !d.value && !y.value);
3190
+ async function m(e) {
3191
+ if (o) {
3192
+ d.value = !0;
3193
+ try {
3194
+ let t = await o({
3195
+ accept: ["images"],
3196
+ files: e
3197
+ });
3198
+ if (!c.alive) return;
3199
+ if (t) {
3200
+ let e = { src: t.url };
3201
+ t.alt && (e.alt = t.alt), r("update", e);
3202
+ }
3203
+ } finally {
3204
+ c.alive && (d.value = !1);
3205
+ }
3206
+ }
3207
+ }
3208
+ let { isOver: h } = ja({
3209
+ target: u,
3210
+ enabled: p,
3211
+ onFiles: m
3212
+ }), g = O(() => ({ textAlign: n.block.align })), _ = O(() => {
3065
3213
  let e = n.block.align;
3066
3214
  return {
3067
3215
  maxWidth: "100%",
@@ -3070,11 +3218,21 @@ var xa = ["href"], Sa = ["src", "alt"], Ca = ["src", "alt"], wa = {
3070
3218
  marginLeft: e === "center" || e === "right" ? "auto" : void 0,
3071
3219
  marginRight: e === "center" ? "auto" : void 0
3072
3220
  };
3073
- }), p = O(() => yt(n.block.src, a));
3221
+ }), y = O(() => yt(n.block.src, a));
3074
3222
  return (t, n) => (f(), k("div", {
3075
- class: "tpl:w-full",
3076
- style: L(u.value)
3077
- }, [e.block.src && p.value && e.block.placeholderUrl ? (f(), k(R, { key: 0 }, [e.block.linkUrl ? (f(), k("a", {
3223
+ ref_key: "dropZoneRef",
3224
+ ref: u,
3225
+ "data-testid": "image-drop-zone",
3226
+ class: "tpl:relative tpl:w-full",
3227
+ style: L(g.value)
3228
+ }, [p.value && (j(h) || d.value) ? (f(), k("div", Ma, [d.value ? (f(), k(R, { key: 0 }, [V(j(_i), {
3229
+ class: "tpl-spinner",
3230
+ size: 20,
3231
+ "stroke-width": 2
3232
+ }), z(" " + D(j(i).image.uploading), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Pi), {
3233
+ size: 20,
3234
+ "stroke-width": 1.5
3235
+ }), z(" " + D(j(i).image.dropToUpload), 1)], 64))])) : A("", !0), e.block.src && y.value && e.block.placeholderUrl ? (f(), k(R, { key: 1 }, [e.block.linkUrl ? (f(), k("a", {
3078
3236
  key: 0,
3079
3237
  href: e.block.linkUrl,
3080
3238
  target: "_blank",
@@ -3085,23 +3243,23 @@ var xa = ["href"], Sa = ["src", "alt"], Ca = ["src", "alt"], wa = {
3085
3243
  loading: "lazy",
3086
3244
  src: e.block.placeholderUrl,
3087
3245
  alt: e.block.alt || j(i).image.altTextPlaceholder,
3088
- style: L(d.value)
3089
- }, null, 12, Sa)], 8, xa)) : (f(), k("img", {
3246
+ style: L(_.value)
3247
+ }, null, 12, Pa)], 8, Na)) : (f(), k("img", {
3090
3248
  key: 1,
3091
3249
  class: "tpl:border-0",
3092
3250
  src: e.block.placeholderUrl,
3093
3251
  alt: e.block.alt,
3094
- style: L(d.value)
3095
- }, null, 12, Ca))], 64)) : e.block.src && p.value ? (f(), k("div", {
3096
- key: 1,
3252
+ style: L(_.value)
3253
+ }, null, 12, Fa))], 64)) : e.block.src && y.value ? (f(), k("div", {
3254
+ key: 2,
3097
3255
  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)]",
3098
- style: L([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, d.value])
3099
- }, [V(j(mi), {
3256
+ style: L([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, _.value])
3257
+ }, [V(j(hi), {
3100
3258
  size: 32,
3101
3259
  "stroke-width": 1.5,
3102
3260
  class: "tpl:text-[var(--tpl-primary)]",
3103
3261
  style: { opacity: "0.5" }
3104
- }), I("span", wa, D(e.block.src), 1)], 4)) : e.block.src ? (f(), k(R, { key: 2 }, [e.block.linkUrl ? (f(), k("a", {
3262
+ }), I("span", Ia, D(e.block.src), 1)], 4)) : e.block.src ? (f(), k(R, { key: 3 }, [e.block.linkUrl ? (f(), k("a", {
3105
3263
  key: 0,
3106
3264
  href: e.block.linkUrl,
3107
3265
  target: "_blank",
@@ -3112,27 +3270,27 @@ var xa = ["href"], Sa = ["src", "alt"], Ca = ["src", "alt"], wa = {
3112
3270
  loading: "lazy",
3113
3271
  src: e.block.src,
3114
3272
  alt: e.block.alt || j(i).image.altTextPlaceholder,
3115
- style: L(d.value)
3116
- }, null, 12, Ea)], 8, Ta)) : (f(), k("img", {
3273
+ style: L(_.value)
3274
+ }, null, 12, Ra)], 8, La)) : (f(), k("img", {
3117
3275
  key: 1,
3118
3276
  class: "tpl:border-0",
3119
3277
  src: e.block.src,
3120
3278
  alt: e.block.alt,
3121
- style: L(d.value)
3122
- }, null, 12, Da))], 64)) : (f(), k("div", Oa, [s.value ? (f(), k("button", {
3279
+ style: L(_.value)
3280
+ }, null, 12, za))], 64)) : (f(), k("div", Ba, [s.value ? (f(), k("button", {
3123
3281
  key: 0,
3124
3282
  "aria-label": j(i).image.browseMedia,
3125
3283
  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)]",
3126
3284
  onClick: M(l, ["stop"])
3127
- }, [V(j(mi), {
3285
+ }, [V(j(hi), {
3128
3286
  size: 14,
3129
3287
  "stroke-width": 1.5
3130
- }), z(" " + D(j(i).image.browseMedia), 1)], 8, ka)) : (f(), k("span", Aa, D(j(i).image.clickToAdd), 1))]))], 4));
3288
+ }), z(" " + D(j(i).image.browseMedia), 1)], 8, Va)) : (f(), k("span", Ha, D(j(i).image.clickToAdd), 1))]))], 4));
3131
3289
  }
3132
- }), Ma = { class: "tpl:w-full" }, Na = ["href"], Pa = {
3290
+ }), Wa = { class: "tpl:w-full" }, Ga = ["href"], Ka = {
3133
3291
  key: 1,
3134
3292
  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)]"
3135
- }, Fa = /* @__PURE__ */ B({
3293
+ }, qa = /* @__PURE__ */ B({
3136
3294
  __name: "MenuBlock",
3137
3295
  props: {
3138
3296
  block: {},
@@ -3151,7 +3309,7 @@ var xa = ["href"], Sa = ["src", "alt"], Ca = ["src", "alt"], wa = {
3151
3309
  function a(e) {
3152
3310
  return e || t.block.linkColor || t.block.color;
3153
3311
  }
3154
- return (t, o) => (f(), k("div", Ma, [i.value ? (f(), k("div", {
3312
+ return (t, o) => (f(), k("div", Wa, [i.value ? (f(), k("div", {
3155
3313
  key: 0,
3156
3314
  style: L(r.value)
3157
3315
  }, [(f(!0), k(R, null, h(e.block.items, (t, n) => (f(), k(R, { key: t.id }, [I("a", {
@@ -3163,15 +3321,15 @@ var xa = ["href"], Sa = ["src", "alt"], Ca = ["src", "alt"], wa = {
3163
3321
  textDecoration: t.underline ? "underline" : "none"
3164
3322
  }),
3165
3323
  onClick: o[0] ||= M(() => {}, ["prevent"])
3166
- }, D(t.text || "..."), 13, Na), n < e.block.items.length - 1 ? (f(), k("span", {
3324
+ }, D(t.text || "..."), 13, Ga), n < e.block.items.length - 1 ? (f(), k("span", {
3167
3325
  key: 0,
3168
3326
  style: L({
3169
3327
  color: e.block.separatorColor,
3170
3328
  padding: `0 ${e.block.spacing}px`
3171
3329
  })
3172
- }, D(e.block.separator), 5)) : A("", !0)], 64))), 128))], 4)) : (f(), k("div", Pa, [V(j(_i), { size: 16 }), I("span", null, D(j(n).menu.addLinks), 1)]))]));
3330
+ }, D(e.block.separator), 5)) : A("", !0)], 64))), 128))], 4)) : (f(), k("div", Ka, [V(j(yi), { size: 16 }), I("span", null, D(j(n).menu.addLinks), 1)]))]));
3173
3331
  }
3174
- }), Ia = /* @__PURE__ */ new Set([
3332
+ }), Ja = /* @__PURE__ */ new Set([
3175
3333
  "http",
3176
3334
  "https",
3177
3335
  "mailto",
@@ -3181,7 +3339,7 @@ var xa = ["href"], Sa = ["src", "alt"], Ca = ["src", "alt"], wa = {
3181
3339
  "sms",
3182
3340
  "xmpp",
3183
3341
  "cid"
3184
- ]), La = /* @__PURE__ */ new Set([
3342
+ ]), Ya = /* @__PURE__ */ new Set([
3185
3343
  "SCRIPT",
3186
3344
  "STYLE",
3187
3345
  "IFRAME",
@@ -3191,7 +3349,7 @@ var xa = ["href"], Sa = ["src", "alt"], Ca = ["src", "alt"], wa = {
3191
3349
  "META",
3192
3350
  "BASE",
3193
3351
  "FORM"
3194
- ]), Ra = /* @__PURE__ */ new Set([
3352
+ ]), Xa = /* @__PURE__ */ new Set([
3195
3353
  "href",
3196
3354
  "xlink:href",
3197
3355
  "formaction",
@@ -3200,16 +3358,16 @@ var xa = ["href"], Sa = ["src", "alt"], Ca = ["src", "alt"], wa = {
3200
3358
  "background",
3201
3359
  "poster"
3202
3360
  ]);
3203
- function za(e, t) {
3361
+ function Za(e, t) {
3204
3362
  let n = e.replace(/[\t\n\r]/g, "").replace(/^[\u0000-\u0020]+/, "").trimEnd();
3205
3363
  if (!n || n.startsWith("#")) return !0;
3206
3364
  let r = /^([a-z][a-z0-9+.-]*):/i.exec(n);
3207
3365
  if (!r) return !0;
3208
3366
  let i = r[1].toLowerCase();
3209
- return Ia.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
3367
+ return Ja.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
3210
3368
  }
3211
- function Ba(e) {
3212
- if (La.has(e.tagName)) {
3369
+ function Qa(e) {
3370
+ if (Ya.has(e.tagName)) {
3213
3371
  e.remove();
3214
3372
  return;
3215
3373
  }
@@ -3221,29 +3379,29 @@ function Ba(e) {
3221
3379
  e.removeAttribute(n);
3222
3380
  continue;
3223
3381
  }
3224
- if (Ra.has(t)) {
3225
- za(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
3382
+ if (Xa.has(t)) {
3383
+ Za(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
3226
3384
  continue;
3227
3385
  }
3228
3386
  if (t === "src") {
3229
- za(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
3387
+ Za(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
3230
3388
  continue;
3231
3389
  }
3232
3390
  t === "srcdoc" && e.removeAttribute(n);
3233
3391
  }
3234
3392
  let n = Array.from(e.children);
3235
- for (let e of n) Ba(e);
3393
+ for (let e of n) Qa(e);
3236
3394
  }
3237
- function Va(e) {
3395
+ function $a(e) {
3238
3396
  if (typeof DOMParser > "u") return e;
3239
3397
  let t = new DOMParser().parseFromString(`<!doctype html><body>${e}</body>`, "text/html").body, n = Array.from(t.children);
3240
- for (let e of n) Ba(e);
3398
+ for (let e of n) Qa(e);
3241
3399
  return t.innerHTML;
3242
3400
  }
3243
3401
  //#endregion
3244
3402
  //#region src/composables/useEditableTextBlock.ts
3245
- function Ha(e) {
3246
- let t = v(Yn, []), { syntax: n } = qi(), r = O(() => Va(St(vt(e(), t), n))), i = C(!1), a = C(null), { top: o, left: s } = Dn(a), c = O(() => ({
3403
+ function eo(e) {
3404
+ let t = v(Yn, []), { syntax: n } = Qi(), r = O(() => $a(St(vt(e(), t), n))), i = C(!1), a = C(null), { top: o, left: s } = Dn(a), c = O(() => ({
3247
3405
  top: o.value - 8,
3248
3406
  left: s.value
3249
3407
  }));
@@ -3264,14 +3422,14 @@ function Ha(e) {
3264
3422
  }
3265
3423
  //#endregion
3266
3424
  //#region src/components/blocks/ParagraphBlock.vue?vue&type=script&setup=true&lang.ts
3267
- var Ua = ["innerHTML"], Wa = /* @__PURE__ */ B({
3425
+ var to = ["innerHTML"], no = /* @__PURE__ */ B({
3268
3426
  __name: "ParagraphBlock",
3269
3427
  props: {
3270
3428
  block: {},
3271
3429
  viewport: {}
3272
3430
  },
3273
3431
  setup(e) {
3274
- let t = e, n = T(() => import("./ParagraphEditor-BnhnFOW1.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = Ha(() => t.block.content);
3432
+ let t = e, n = E(() => import("./ParagraphEditor-DwZqLJp2.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = eo(() => t.block.content);
3275
3433
  return (t, l) => (f(), k("div", {
3276
3434
  ref_key: "blockRef",
3277
3435
  ref: i,
@@ -3290,41 +3448,46 @@ var Ua = ["innerHTML"], Wa = /* @__PURE__ */ B({
3290
3448
  key: 1,
3291
3449
  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",
3292
3450
  innerHTML: j(o)
3293
- }, null, 8, Ua))], 544));
3451
+ }, null, 8, to))], 544));
3294
3452
  }
3295
3453
  });
3296
3454
  //#endregion
3297
3455
  //#region src/utils/blockComponentResolver.ts
3298
- function Ga(e, t, n) {
3456
+ function ro(e, t, n) {
3299
3457
  if (t) {
3300
3458
  let n = t.getComponent(e);
3301
3459
  if (n) return n;
3302
3460
  }
3303
3461
  return n[e.type] ?? null;
3304
3462
  }
3305
- function Ka(e) {
3306
- let { padding: t, backgroundColor: n } = e.styles;
3307
- return {
3463
+ function io(e) {
3464
+ let { padding: t, backgroundColor: n } = e.styles, r = {
3308
3465
  padding: `${t.top}px ${t.right}px ${t.bottom}px ${t.left}px`,
3309
3466
  backgroundColor: n || "transparent"
3310
3467
  };
3468
+ return e.type === "section" && e.borderRadius && e.borderRadius > 0 && (r.borderRadius = `${e.borderRadius}px`), r;
3469
+ }
3470
+ function ao(e) {
3471
+ if (e.type !== "section" || !e.wrapper) return null;
3472
+ let t = e.wrapper, n = {};
3473
+ return t.backgroundColor && (n.backgroundColor = t.backgroundColor), t.padding && (n.padding = `${t.padding.top}px ${t.padding.right}px ${t.padding.bottom}px ${t.padding.left}px`), t.borderRadius && t.borderRadius > 0 && (n.borderRadius = `${t.borderRadius}px`), n;
3311
3474
  }
3312
3475
  //#endregion
3313
3476
  //#region src/components/blocks/BlockWrapper.vue?vue&type=script&setup=true&lang.ts
3314
- var qa = ["data-block-id", "data-block-type"], Ja = ["aria-label"], Ya = [
3477
+ var oo = ["data-block-id", "data-block-type"], so = ["aria-label"], co = [
3315
3478
  "aria-label",
3316
3479
  "aria-pressed",
3317
3480
  "title"
3318
- ], Xa = ["aria-label", "title"], Za = ["aria-label", "title"], Qa = ["aria-label", "title"], $a = {
3481
+ ], lo = ["aria-label", "title"], uo = ["aria-label", "title"], fo = ["aria-label", "title"], po = {
3319
3482
  key: 1,
3320
3483
  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"
3321
- }, eo = { 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)]" }, to = {
3484
+ }, mo = { 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)]" }, ho = {
3322
3485
  key: 2,
3323
3486
  class: "tpl:absolute tpl:-left-1 tpl:top-1/2 tpl:z-[5] tpl:-translate-x-full tpl:-translate-y-1/2"
3324
- }, no = ["aria-label", "title"], ro = {
3487
+ }, go = ["aria-label", "title"], _o = {
3325
3488
  key: 3,
3326
3489
  class: "tpl:absolute tpl:-right-1 tpl:-top-1 tpl:z-[5] tpl:translate-x-full"
3327
- }, io = ["aria-label"], ao = /*#__PURE__*/ Ii(/* @__PURE__ */ B({
3490
+ }, vo = ["aria-label"], yo = /*#__PURE__*/ Vi(/* @__PURE__ */ B({
3328
3491
  __name: "BlockWrapper",
3329
3492
  props: {
3330
3493
  block: {},
@@ -3334,7 +3497,7 @@ var qa = ["data-block-id", "data-block-type"], Ja = ["aria-label"], Ya = [
3334
3497
  },
3335
3498
  emits: ["select"],
3336
3499
  setup(e, { emit: t }) {
3337
- let n = T(() => import("./BlockIssueBadge-BYKThwhE.js")), r = e, i = t, { t: a, format: s } = Y(), c = v(ir, 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);
3500
+ let n = E(() => import("./BlockIssueBadge-DHOe0pgx.js")), r = e, i = t, { t: a, format: s } = Y(), c = v(cr, 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);
3338
3501
  async function p() {
3339
3502
  await m(), l.value?.focus();
3340
3503
  }
@@ -3360,26 +3523,26 @@ var qa = ["data-block-id", "data-block-type"], Ja = ["aria-label"], Ya = [
3360
3523
  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 ? {
3361
3524
  desktop: a.viewport.desktop,
3362
3525
  mobile: a.viewport.mobile
3363
- }[r.viewport] ?? r.viewport : ""), b = O(() => !!r.block.displayCondition), x = v(zn, null), S = v(Bn, null), w = v(rr, {}), ee = O(() => !!w.savedModules), E = O(() => w.comments?.getBlockCount(r.block.id) ?? 0), te = O(() => {
3364
- let e = Ka(r.block);
3365
- return {
3526
+ }[r.viewport] ?? r.viewport : ""), b = O(() => !!r.block.displayCondition), x = v(zn, null), S = v(Bn, null), w = v(sr, {}), T = O(() => !!w.savedModules), ee = O(() => w.comments?.getBlockCount(r.block.id) ?? 0), te = O(() => {
3527
+ let e = io(r.block), t = {
3366
3528
  padding: e.padding,
3367
3529
  backgroundColor: e.backgroundColor
3368
3530
  };
3369
- });
3370
- function ne(e) {
3531
+ return e.borderRadius && (t.borderRadius = e.borderRadius), t;
3532
+ }), ne = O(() => ao(r.block));
3533
+ function re(e) {
3371
3534
  r.previewMode || (e.stopPropagation(), i("select"));
3372
3535
  }
3373
- function re() {
3536
+ function N() {
3374
3537
  x?.deleteBlock(r.block.id);
3375
3538
  }
3376
- function N() {
3539
+ function ie() {
3377
3540
  x?.duplicateBlock(r.block);
3378
3541
  }
3379
- function ie() {
3542
+ function P() {
3380
3543
  w.savedModules?.openSaveDialog(r.block.id);
3381
3544
  }
3382
- function P() {
3545
+ function ae() {
3383
3546
  S?.toggleBlock(r.block.id);
3384
3547
  }
3385
3548
  return (t, r) => _.value ? A("", !0) : (f(), k("div", {
@@ -3391,7 +3554,7 @@ var qa = ["data-block-id", "data-block-type"], Ja = ["aria-label"], Ya = [
3391
3554
  }]),
3392
3555
  "data-block-id": e.block.id,
3393
3556
  "data-block-type": e.block.type,
3394
- onClick: ne
3557
+ onClick: re
3395
3558
  }, [
3396
3559
  V(j(n), { "block-id": e.block.id }, null, 8, ["block-id"]),
3397
3560
  e.isSelected ? (f(), k("div", {
@@ -3409,90 +3572,98 @@ var qa = ["data-block-id", "data-block-type"], Ja = ["aria-label"], Ya = [
3409
3572
  "aria-keyshortcuts": "Space Enter ArrowUp ArrowDown Escape",
3410
3573
  title: j(a).blockActions.drag,
3411
3574
  onKeydown: h
3412
- }, [V(j(fi), {
3575
+ }, [V(j(pi), {
3413
3576
  size: 14,
3414
3577
  "stroke-width": 1.5
3415
- })], 40, Ya),
3578
+ })], 40, co),
3416
3579
  I("button", {
3417
3580
  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",
3418
3581
  "aria-label": j(a).blockActions.duplicate,
3419
3582
  title: j(a).blockActions.duplicate,
3420
- onClick: M(N, ["stop"])
3583
+ onClick: M(ie, ["stop"])
3421
3584
  }, [V(j(si), {
3422
3585
  size: 14,
3423
3586
  "stroke-width": 1.5
3424
- })], 8, Xa),
3425
- ee.value ? (f(), k("button", {
3587
+ })], 8, lo),
3588
+ T.value ? (f(), k("button", {
3426
3589
  key: 0,
3427
3590
  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",
3428
3591
  "aria-label": j(a).blockActions.saveAsModule,
3429
3592
  title: j(a).blockActions.saveAsModule,
3430
- onClick: M(ie, ["stop"])
3431
- }, [V(j(Qr), {
3593
+ onClick: M(P, ["stop"])
3594
+ }, [V(j(Xr), {
3432
3595
  size: 14,
3433
3596
  "stroke-width": 1.5
3434
- })], 8, Za)) : A("", !0),
3597
+ })], 8, uo)) : A("", !0),
3435
3598
  I("button", {
3436
3599
  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",
3437
3600
  "aria-label": j(a).blockActions.delete,
3438
3601
  title: j(a).blockActions.delete,
3439
- onClick: M(re, ["stop"])
3440
- }, [V(j(Di), {
3602
+ onClick: M(N, ["stop"])
3603
+ }, [V(j(ji), {
3441
3604
  size: 14,
3442
3605
  "stroke-width": 1.5
3443
- })], 8, Qa)
3444
- ], 8, Ja)) : A("", !0),
3445
- g.value ? (f(), k("div", $a, [I("span", eo, [V(j(ci), {
3606
+ })], 8, fo)
3607
+ ], 8, so)) : A("", !0),
3608
+ g.value ? (f(), k("div", po, [I("span", mo, [V(j(ci), {
3446
3609
  size: 12,
3447
3610
  "stroke-width": 1.5
3448
3611
  }), z(" " + D(j(s)(j(a).blockActions.hiddenOnViewport, { viewport: y.value })), 1)])])) : A("", !0),
3449
- b.value && !g.value ? (f(), k("div", to, [I("button", {
3612
+ b.value && !g.value ? (f(), k("div", ho, [I("button", {
3450
3613
  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)]",
3451
3614
  "aria-label": j(a).blockActions.conditionToggle,
3452
3615
  title: e.block.displayCondition?.label,
3453
- onClick: M(P, ["stop"])
3454
- }, [V(j(qr), {
3616
+ onClick: M(ae, ["stop"])
3617
+ }, [V(j(fi), {
3455
3618
  size: 12,
3456
3619
  "stroke-width": 2
3457
- })], 8, no)])) : A("", !0),
3458
- E.value > 0 && !g.value ? (f(), k("div", ro, [I("button", {
3620
+ })], 8, go)])) : A("", !0),
3621
+ ee.value > 0 && !g.value ? (f(), k("div", _o, [I("button", {
3459
3622
  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)]",
3460
- "aria-label": j(s)(j(a).blockActions.comments, { count: String(E.value) }),
3623
+ "aria-label": j(s)(j(a).blockActions.comments, { count: String(ee.value) }),
3461
3624
  onClick: r[0] ||= M((t) => j(w).comments?.openForBlock(e.block.id), ["stop"])
3462
- }, [V(j(gi), {
3625
+ }, [V(j(vi), {
3463
3626
  size: 12,
3464
3627
  "stroke-width": 2.5
3465
- }), z(" " + D(E.value), 1)], 8, io)])) : A("", !0),
3466
- I("div", {
3628
+ }), z(" " + D(ee.value), 1)], 8, vo)])) : A("", !0),
3629
+ ne.value ? (f(), k("div", {
3630
+ key: 4,
3631
+ class: "tpl-section-wrapper",
3632
+ style: L(ne.value)
3633
+ }, [I("div", {
3467
3634
  class: "tpl-block-content",
3468
3635
  style: L(te.value)
3469
- }, [o(t.$slots, "default", {}, void 0, !0)], 4)
3470
- ], 10, qa));
3636
+ }, [o(t.$slots, "default", {}, void 0, !0)], 4)], 4)) : (f(), k("div", {
3637
+ key: 5,
3638
+ class: "tpl-block-content",
3639
+ style: L(te.value)
3640
+ }, [o(t.$slots, "default", {}, void 0, !0)], 4))
3641
+ ], 10, oo));
3471
3642
  }
3472
- }), [["__scopeId", "data-v-4a48371d"]]);
3643
+ }), [["__scopeId", "data-v-7aeef19d"]]);
3473
3644
  //#endregion
3474
3645
  //#region src/utils/unwrapParagraph.ts
3475
- function oo(e) {
3646
+ function bo(e) {
3476
3647
  let t = e.match(/^\s*<p\b[^>]*>([\s\S]*)<\/p>\s*$/);
3477
3648
  return !t || /<\/p>\s*<p\b/i.test(t[1]) ? e : t[1];
3478
3649
  }
3479
3650
  //#endregion
3480
3651
  //#region src/components/blocks/TitleBlock.vue
3481
- var so = /* @__PURE__ */ B({
3652
+ var xo = /* @__PURE__ */ B({
3482
3653
  __name: "TitleBlock",
3483
3654
  props: {
3484
3655
  block: {},
3485
3656
  viewport: {}
3486
3657
  },
3487
3658
  setup(e) {
3488
- let t = e, n = T(() => import("./TitleEditor-CQqklX0D.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = Ha(() => t.block.content), l = O(() => {
3659
+ let t = e, n = E(() => import("./TitleEditor-DO1-h3RY.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = eo(() => t.block.content), l = O(() => {
3489
3660
  let e = {
3490
3661
  fontSize: `${pe[t.block.level]}px`,
3491
3662
  color: t.block.color,
3492
3663
  textAlign: t.block.textAlign
3493
3664
  };
3494
3665
  return t.block.fontFamily && (e.fontFamily = t.block.fontFamily), e;
3495
- }), u = O(() => `h${t.block.level}`), p = O(() => oo(o.value));
3666
+ }), u = O(() => `h${t.block.level}`), p = O(() => bo(o.value));
3496
3667
  return (t, o) => (f(), k("div", {
3497
3668
  ref_key: "blockRef",
3498
3669
  ref: i,
@@ -3515,11 +3686,19 @@ var so = /* @__PURE__ */ B({
3515
3686
  innerHTML: p.value
3516
3687
  }, null, 8, ["innerHTML"]))], 36));
3517
3688
  }
3518
- }), co = { class: "tpl:w-full" }, lo = { class: "tpl:flex tpl:gap-0" }, uo = {
3689
+ });
3690
+ //#endregion
3691
+ //#region src/utils/sectionColumnDrop.ts
3692
+ function So(e) {
3693
+ return e.dataset.blockType !== "section" && e.dataset.paletteType !== "section";
3694
+ }
3695
+ //#endregion
3696
+ //#region src/components/blocks/SectionBlock.vue?vue&type=script&setup=true&lang.ts
3697
+ var Co = { class: "tpl:w-full" }, wo = { class: "tpl:flex tpl:gap-0" }, To = {
3519
3698
  key: 0,
3520
3699
  "data-testid": "section-drop-hint",
3521
3700
  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)]"
3522
- }, fo = /* @__PURE__ */ B({
3701
+ }, Eo = /* @__PURE__ */ B({
3523
3702
  __name: "SectionBlock",
3524
3703
  props: {
3525
3704
  block: {},
@@ -3527,12 +3706,12 @@ var so = /* @__PURE__ */ B({
3527
3706
  },
3528
3707
  setup(e) {
3529
3708
  let t = {
3530
- title: so,
3531
- paragraph: Wa,
3532
- image: ja,
3533
- button: Fr,
3534
- divider: ma,
3535
- custom: fa
3709
+ title: xo,
3710
+ paragraph: no,
3711
+ image: Ua,
3712
+ button: Br,
3713
+ divider: Ca,
3714
+ custom: xa
3536
3715
  }, n = e, { t: r } = Y(), i = J(Ln, "SectionBlock"), a = v(Bn, null), o = v(Gn, null), s = O(() => {
3537
3716
  switch (n.block.columns) {
3538
3717
  case "2": return ["50%", "50%"];
@@ -3559,7 +3738,7 @@ var so = /* @__PURE__ */ B({
3559
3738
  a[e] = r, i.updateBlock(n.block.id, { children: a });
3560
3739
  }
3561
3740
  function m(e) {
3562
- return Ga(e, o, t);
3741
+ return ro(e, o, t);
3563
3742
  }
3564
3743
  function g(e, t) {
3565
3744
  e.type === "custom" && i.updateBlock(e.id, {
@@ -3567,7 +3746,7 @@ var so = /* @__PURE__ */ B({
3567
3746
  dataSourceFetched: t.dataSourceFetched
3568
3747
  });
3569
3748
  }
3570
- return (t, n) => (f(), k("div", co, [I("div", lo, [(f(!0), k(R, null, h(l.value, (t, n) => (f(), k("div", {
3749
+ return (t, n) => (f(), k("div", Co, [I("div", wo, [(f(!0), k(R, null, h(l.value, (t, n) => (f(), k("div", {
3571
3750
  key: n,
3572
3751
  class: F(["tpl:relative tpl:min-h-[60px] tpl:rounded", u(n).length === 0 ? "tpl:border tpl:border-dashed tpl:border-[var(--tpl-border)]" : ""]),
3573
3752
  style: L({ width: s.value[n] })
@@ -3576,7 +3755,7 @@ var so = /* @__PURE__ */ B({
3576
3755
  group: {
3577
3756
  name: "blocks",
3578
3757
  pull: !0,
3579
- put: (e, t, n) => n.dataset.blockType !== "section"
3758
+ put: (e, t, n) => j(So)(n)
3580
3759
  },
3581
3760
  animation: 150,
3582
3761
  "ghost-class": "tpl-ghost",
@@ -3589,7 +3768,7 @@ var so = /* @__PURE__ */ B({
3589
3768
  class: "tpl:min-h-[60px]",
3590
3769
  "onUpdate:modelValue": (e) => p(n, e)
3591
3770
  }, {
3592
- default: b(() => [(f(!0), k(R, null, h(u(n), (t) => c((f(), k("div", { key: t.id }, [V(ao, {
3771
+ default: b(() => [(f(!0), k(R, null, h(u(n), (t) => c((f(), k("div", { key: t.id }, [V(yo, {
3593
3772
  block: t,
3594
3773
  "is-selected": j(i).state.selectedBlockId === t.id,
3595
3774
  viewport: e.viewport,
@@ -3620,13 +3799,13 @@ var so = /* @__PURE__ */ B({
3620
3799
  "model-value",
3621
3800
  "group",
3622
3801
  "onUpdate:modelValue"
3623
- ]), u(n).length === 0 ? (f(), k("div", uo, [I("span", null, D(j(r).section.dropHere), 1)])) : A("", !0)], 6))), 128))])]));
3802
+ ]), u(n).length === 0 ? (f(), k("div", To, [I("span", null, D(j(r).section.dropHere), 1)])) : A("", !0)], 6))), 128))])]));
3624
3803
  }
3625
- }), po = me, mo = {
3804
+ }), Do = me, Oo = {
3626
3805
  small: 24,
3627
3806
  medium: 32,
3628
3807
  large: 48
3629
- }, ho = [
3808
+ }, ko = [
3630
3809
  "facebook",
3631
3810
  "twitter",
3632
3811
  "instagram",
@@ -3644,11 +3823,11 @@ var so = /* @__PURE__ */ B({
3644
3823
  "github",
3645
3824
  "dribbble",
3646
3825
  "behance"
3647
- ], go = [
3826
+ ], Ao = [
3648
3827
  "width",
3649
3828
  "height",
3650
3829
  "fill"
3651
- ], _o = ["d"], vo = /* @__PURE__ */ B({
3830
+ ], jo = ["d"], Mo = /* @__PURE__ */ B({
3652
3831
  __name: "SocialIconSvg",
3653
3832
  props: {
3654
3833
  platform: {},
@@ -3656,7 +3835,7 @@ var so = /* @__PURE__ */ B({
3656
3835
  iconSize: {}
3657
3836
  },
3658
3837
  setup(e) {
3659
- let t = e, n = O(() => po[t.platform]), r = O(() => mo[t.iconSize]), i = O(() => {
3838
+ let t = e, n = O(() => Do[t.platform]), r = O(() => Oo[t.iconSize]), i = O(() => {
3660
3839
  let e = {
3661
3840
  display: "inline-flex",
3662
3841
  alignItems: "center",
@@ -3700,12 +3879,12 @@ var so = /* @__PURE__ */ B({
3700
3879
  viewBox: "0 0 24 24",
3701
3880
  fill: o.value,
3702
3881
  xmlns: "http://www.w3.org/2000/svg"
3703
- }, [I("path", { d: n.value.path }, null, 8, _o)], 8, go))], 4));
3882
+ }, [I("path", { d: n.value.path }, null, 8, jo)], 8, Ao))], 4));
3704
3883
  }
3705
- }), yo = { class: "tpl:w-full" }, bo = ["href"], xo = {
3884
+ }), No = { class: "tpl:w-full" }, Po = ["href"], Fo = {
3706
3885
  key: 1,
3707
3886
  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)]"
3708
- }, So = /* @__PURE__ */ B({
3887
+ }, Io = /* @__PURE__ */ B({
3709
3888
  __name: "SocialIconsBlock",
3710
3889
  props: {
3711
3890
  block: {},
@@ -3718,7 +3897,7 @@ var so = /* @__PURE__ */ B({
3718
3897
  gap: `${t.block.spacing}px`,
3719
3898
  justifyContent: t.block.align === "left" ? "flex-start" : t.block.align === "right" ? "flex-end" : "center"
3720
3899
  })), i = O(() => t.block.icons.length > 0);
3721
- return (t, a) => (f(), k("div", yo, [i.value ? (f(), k("div", {
3900
+ return (t, a) => (f(), k("div", No, [i.value ? (f(), k("div", {
3722
3901
  key: 0,
3723
3902
  style: L(r.value)
3724
3903
  }, [(f(!0), k(R, null, h(e.block.icons, (t) => (f(), k("a", {
@@ -3726,7 +3905,7 @@ var so = /* @__PURE__ */ B({
3726
3905
  href: t.url || "#",
3727
3906
  class: "tpl:cursor-default",
3728
3907
  onClick: a[0] ||= M(() => {}, ["prevent"])
3729
- }, [V(vo, {
3908
+ }, [V(Mo, {
3730
3909
  platform: t.platform,
3731
3910
  "icon-style": e.block.iconStyle,
3732
3911
  "icon-size": e.block.iconSize
@@ -3734,16 +3913,16 @@ var so = /* @__PURE__ */ B({
3734
3913
  "platform",
3735
3914
  "icon-style",
3736
3915
  "icon-size"
3737
- ])], 8, bo))), 128))], 4)) : (f(), k("div", xo, [V(j(wi), { size: 16 }), I("span", null, D(j(n).social.addIcons), 1)]))]));
3916
+ ])], 8, Po))), 128))], 4)) : (f(), k("div", Fo, [V(j(Ei), { size: 16 }), I("span", null, D(j(n).social.addIcons), 1)]))]));
3738
3917
  }
3739
- }), Co = { class: "tpl:w-full" }, wo = {
3918
+ }), Lo = { class: "tpl:w-full" }, Ro = {
3740
3919
  key: 0,
3741
3920
  class: "tpl:absolute tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-medium",
3742
3921
  style: {
3743
3922
  "background-color": "var(--tpl-bg-hover)",
3744
3923
  color: "var(--tpl-text-dim)"
3745
3924
  }
3746
- }, To = /* @__PURE__ */ B({
3925
+ }, zo = /* @__PURE__ */ B({
3747
3926
  __name: "SpacerBlock",
3748
3927
  props: {
3749
3928
  block: {},
@@ -3755,23 +3934,23 @@ var so = /* @__PURE__ */ B({
3755
3934
  minHeight: `${t.block.height}px`,
3756
3935
  ...n.state.previewMode ? {} : { borderColor: "var(--tpl-border)" }
3757
3936
  }));
3758
- return (t, i) => (f(), k("div", Co, [I("div", {
3937
+ return (t, i) => (f(), k("div", Lo, [I("div", {
3759
3938
  style: L(r.value),
3760
3939
  class: F(["tpl:relative tpl:flex tpl:items-center tpl:justify-center", { "tpl:border-y tpl:border-dashed": !j(n).state.previewMode }])
3761
- }, [j(n).state.previewMode ? A("", !0) : (f(), k("span", wo, D(e.block.height) + "px ", 1))], 6)]));
3940
+ }, [j(n).state.previewMode ? A("", !0) : (f(), k("span", Ro, D(e.block.height) + "px ", 1))], 6)]));
3762
3941
  }
3763
- }), Eo = { class: "tpl:w-full" }, Do = { key: 0 }, Oo = [
3942
+ }), Bo = { class: "tpl:w-full" }, Vo = { key: 0 }, Ho = [
3764
3943
  "aria-label",
3765
3944
  "data-placeholder",
3766
3945
  "onBlur"
3767
- ], ko = [
3946
+ ], Uo = [
3768
3947
  "aria-label",
3769
3948
  "data-placeholder",
3770
3949
  "onBlur"
3771
- ], Ao = {
3950
+ ], Wo = {
3772
3951
  key: 1,
3773
3952
  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)]"
3774
- }, jo = /*#__PURE__*/ Ii(/* @__PURE__ */ B({
3953
+ }, Go = /*#__PURE__*/ Vi(/* @__PURE__ */ B({
3775
3954
  __name: "TableBlock",
3776
3955
  props: {
3777
3956
  block: {},
@@ -3814,31 +3993,31 @@ var so = /* @__PURE__ */ B({
3814
3993
  } : n);
3815
3994
  i.updateBlock(n.block.id, { rows: o });
3816
3995
  }
3817
- return (e, n) => (f(), k("div", Eo, [a.value ? (f(), k("table", {
3996
+ return (e, n) => (f(), k("div", Bo, [a.value ? (f(), k("table", {
3818
3997
  key: 0,
3819
3998
  style: L(o.value),
3820
3999
  class: "tpl-table-editable"
3821
- }, [u.value ? (f(), k("thead", Do, [I("tr", null, [(f(!0), k(R, null, h(u.value.cells, (e) => c((f(), k("th", {
4000
+ }, [u.value ? (f(), k("thead", Vo, [I("tr", null, [(f(!0), k(R, null, h(u.value.cells, (e) => c((f(), k("th", {
3822
4001
  key: e.id,
3823
4002
  style: L(l.value),
3824
4003
  "aria-label": j(r).table.cellPlaceholder,
3825
4004
  contenteditable: "true",
3826
4005
  "data-placeholder": j(r).table.cellPlaceholder,
3827
4006
  onBlur: (t) => m(u.value.id, e.id, t),
3828
- onKeydown: n[0] ||= E(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
4007
+ onKeydown: n[0] ||= ee(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
3829
4008
  onClick: M(p, ["stop"])
3830
- }, null, 44, Oo)), [[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", {
4009
+ }, null, 44, Ho)), [[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
4010
  key: i.id,
3832
4011
  style: L(s.value),
3833
4012
  "aria-label": j(r).table.cellPlaceholder,
3834
4013
  contenteditable: "true",
3835
4014
  "data-placeholder": j(r).table.cellPlaceholder,
3836
4015
  onBlur: (t) => m(e.id, i.id, t),
3837
- onKeydown: n[1] ||= E(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
4016
+ onKeydown: n[1] ||= ee(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
3838
4017
  onClick: M(p, ["stop"])
3839
- }, null, 44, ko)), [[t, i.content]])), 128))]))), 128))])], 4)) : (f(), k("div", Ao, [V(j(Ei), { size: 16 }), I("span", null, D(j(r).table.empty), 1)]))]));
4018
+ }, null, 44, Uo)), [[t, i.content]])), 128))]))), 128))])], 4)) : (f(), k("div", Wo, [V(j(Ai), { size: 16 }), I("span", null, D(j(r).table.empty), 1)]))]));
3840
4019
  }
3841
- }), [["__scopeId", "data-v-de1a7c76"]]), Mo = /* @__PURE__ */ B({
4020
+ }), [["__scopeId", "data-v-f065872a"]]), Ko = /* @__PURE__ */ B({
3842
4021
  __name: "VideoPlayButton",
3843
4022
  props: { hoverEffect: {
3844
4023
  type: Boolean,
@@ -3856,7 +4035,7 @@ var so = /* @__PURE__ */ B({
3856
4035
  });
3857
4036
  //#endregion
3858
4037
  //#region src/utils/videoThumbnail.ts
3859
- function No(e) {
4038
+ function qo(e) {
3860
4039
  if (!e) return {
3861
4040
  platform: "unknown",
3862
4041
  videoId: null,
@@ -3888,25 +4067,25 @@ function No(e) {
3888
4067
  thumbnailUrl: null
3889
4068
  };
3890
4069
  }
3891
- function Po(e, t) {
3892
- return t || No(e).thumbnailUrl;
4070
+ function Jo(e, t) {
4071
+ return t || qo(e).thumbnailUrl;
3893
4072
  }
3894
4073
  //#endregion
3895
4074
  //#region src/components/blocks/VideoBlock.vue?vue&type=script&setup=true&lang.ts
3896
- var Fo = ["src", "alt"], Io = {
4075
+ var Yo = ["src", "alt"], Xo = {
3897
4076
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
3898
4077
  style: { opacity: "0.7" }
3899
- }, Lo = ["href"], Ro = ["src", "alt"], zo = ["src", "alt"], Bo = {
4078
+ }, Zo = ["href"], Qo = ["src", "alt"], $o = ["src", "alt"], es = {
3900
4079
  key: 3,
3901
4080
  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)]"
3902
- }, Vo = /* @__PURE__ */ B({
4081
+ }, ts = /* @__PURE__ */ B({
3903
4082
  __name: "VideoBlock",
3904
4083
  props: {
3905
4084
  block: {},
3906
4085
  viewport: {}
3907
4086
  },
3908
4087
  setup(e) {
3909
- let t = e, { t: n } = Y(), { syntax: r } = qi(), i = O(() => yt(t.block.url, r) || yt(t.block.thumbnailUrl, r)), a = O(() => i.value ? null : Po(t.block.url, t.block.thumbnailUrl)), o = O(() => ({ textAlign: t.block.align })), s = O(() => {
4088
+ let t = e, { t: n } = Y(), { syntax: r } = Qi(), i = O(() => yt(t.block.url, r) || yt(t.block.thumbnailUrl, r)), a = O(() => i.value ? null : Jo(t.block.url, t.block.thumbnailUrl)), o = O(() => ({ textAlign: t.block.align })), s = O(() => {
3910
4089
  let e = t.block.align;
3911
4090
  return {
3912
4091
  maxWidth: "100%",
@@ -3927,16 +4106,16 @@ var Fo = ["src", "alt"], Io = {
3927
4106
  class: "tpl:w-full tpl:border-0",
3928
4107
  src: e.block.placeholderUrl,
3929
4108
  alt: e.block.alt
3930
- }, null, 8, Fo), V(Mo)], 4)) : i.value ? (f(), k("div", {
4109
+ }, null, 8, Yo), V(Ko)], 4)) : i.value ? (f(), k("div", {
3931
4110
  key: 1,
3932
4111
  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)]",
3933
4112
  style: L([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, s.value])
3934
- }, [V(j(Ai), {
4113
+ }, [V(j(Fi), {
3935
4114
  size: 36,
3936
4115
  "stroke-width": 1.5,
3937
4116
  class: "tpl:text-[var(--tpl-primary)]",
3938
4117
  style: { opacity: "0.5" }
3939
- }), I("span", Io, D(c.value), 1)], 4)) : a.value ? (f(), k(R, { key: 2 }, [e.block.url ? (f(), k("a", {
4118
+ }), I("span", Xo, D(c.value), 1)], 4)) : a.value ? (f(), k(R, { key: 2 }, [e.block.url ? (f(), k("a", {
3940
4119
  key: 0,
3941
4120
  href: e.block.url,
3942
4121
  target: "_blank",
@@ -3948,7 +4127,7 @@ var Fo = ["src", "alt"], Io = {
3948
4127
  class: "tpl:w-full tpl:border-0",
3949
4128
  src: a.value,
3950
4129
  alt: e.block.alt
3951
- }, null, 8, Ro), V(Mo, { "hover-effect": "" })], 12, Lo)) : (f(), k("div", {
4130
+ }, null, 8, Qo), V(Ko, { "hover-effect": "" })], 12, Zo)) : (f(), k("div", {
3952
4131
  key: 1,
3953
4132
  class: "tpl:relative tpl:inline-block",
3954
4133
  style: L(s.value)
@@ -3956,31 +4135,31 @@ var Fo = ["src", "alt"], Io = {
3956
4135
  class: "tpl:w-full tpl:border-0",
3957
4136
  src: a.value,
3958
4137
  alt: e.block.alt
3959
- }, null, 8, zo), V(Mo)], 4))], 64)) : (f(), k("div", Bo, [V(j(Ai), {
4138
+ }, null, 8, $o), V(Ko)], 4))], 64)) : (f(), k("div", es, [V(j(Fi), {
3960
4139
  size: 40,
3961
4140
  "stroke-width": 1.5,
3962
4141
  class: "tpl:text-[var(--tpl-border-light)]"
3963
4142
  }), I("span", null, D(j(n).video.addVideo), 1)]))], 4));
3964
4143
  }
3965
- }), Ho = {
3966
- section: fo,
3967
- title: so,
3968
- paragraph: Wa,
3969
- image: ja,
3970
- button: Fr,
3971
- divider: ma,
3972
- video: Vo,
3973
- social: So,
3974
- menu: Fa,
3975
- table: jo,
3976
- spacer: To,
3977
- html: ya,
3978
- countdown: T(() => import("./CountdownBlock-hYoJdVOt.js").then((e) => e.n))
4144
+ }), ns = {
4145
+ section: Eo,
4146
+ title: xo,
4147
+ paragraph: no,
4148
+ image: Ua,
4149
+ button: Br,
4150
+ divider: Ca,
4151
+ video: ts,
4152
+ social: Io,
4153
+ menu: qa,
4154
+ table: Go,
4155
+ spacer: zo,
4156
+ html: Oa,
4157
+ countdown: E(() => import("./CountdownBlock-C1Ikjpn4.js").then((e) => e.n))
3979
4158
  };
3980
- function Uo(e) {
4159
+ function rs(e) {
3981
4160
  let { editor: t, config: n, translations: r, fontsManager: i } = e, { t: a, format: o } = Y(r);
3982
4161
  t.setUiTheme(n.uiTheme ?? "auto");
3983
- let { resolvedTheme: c } = yr(O(() => t.state.uiTheme)), u = C(n.theme ?? {}), { themeStyles: d } = xr({
4162
+ let { resolvedTheme: c } = wr(O(() => t.state.uiTheme)), u = C(n.theme ?? {}), { themeStyles: d } = Er({
3984
4163
  themeOverrides: u,
3985
4164
  resolvedTheme: c,
3986
4165
  extraStyles: e.themeExtraStyles
@@ -4005,13 +4184,13 @@ function Uo(e) {
4005
4184
  g && (_ = H(f.isNavigating, (e) => {
4006
4185
  e ? g.pause() : g.resume();
4007
4186
  }));
4008
- let v = vr(t, {
4187
+ let v = Cr(t, {
4009
4188
  t: a,
4010
4189
  format: o
4011
- }), y = Tr();
4012
- if (Ar(y, Ho), n.customBlocks?.length) for (let e of n.customBlocks) y.registerCustom(e, fa);
4190
+ }), y = Ar();
4191
+ if (Fr(y, ns), n.customBlocks?.length) for (let e of n.customBlocks) y.registerCustom(e, xa);
4013
4192
  function b(e) {
4014
- for (let t of e) y.registerCustom(t, fa);
4193
+ for (let t of e) y.registerCustom(t, xa);
4015
4194
  }
4016
4195
  let x = Fn();
4017
4196
  if (s() && l(x.dispose), e.containerEl) {
@@ -4022,7 +4201,7 @@ function Uo(e) {
4022
4201
  }, { capture: !0 });
4023
4202
  }
4024
4203
  function S(r) {
4025
- x.isActive() && Mr(r, {
4204
+ x.isActive() && Lr(r, {
4026
4205
  history: f,
4027
4206
  selectBlock: (e) => t.selectBlock(e),
4028
4207
  getSelectedBlockId: () => t.state.selectedBlockId,
@@ -4033,19 +4212,19 @@ function Uo(e) {
4033
4212
  }
4034
4213
  q(document, "keydown", S);
4035
4214
  let w = C(null);
4036
- p(or, e.editorRoot ?? document), p(sr, w), p(In, r), p(Ln, t), p(Rn, f), p(zn, m), p(Bn, h), p(Vn, i), p(Hn, d), p(Un, c), p(Wn, n.blockDefaults), p(Gn, y), p(Kn, n.customBlocks ?? []), p(qn, n.paletteBlocks), p(Jn, Er(t.content, y));
4037
- let ee = mt(n.mergeTags?.syntax);
4038
- p(Yn, n.mergeTags?.tags ?? []), p(Xn, ee), p(Zn, n.mergeTags?.onRequest ?? null), p(Qn, n.mergeTags?.autocomplete !== !1), p($n, mr()), p(er, n.onRequestMedia ?? null), p(tr, n.displayConditions?.conditions ?? []), p(nr, n.displayConditions?.allowCustom ?? !1), p(rr, e.capabilities ?? {}), p(ir, v);
4039
- let T = hr(n.lint) ? null : gr({
4215
+ p(ur, e.editorRoot ?? document), p(dr, w), p(In, r), p(Ln, t), p(Rn, f), p(zn, m), p(Bn, h), p(Vn, i), p(Hn, d), p(Un, c), p(Wn, n.blockDefaults), p(Gn, y), p(Kn, n.customBlocks ?? []), p(qn, n.paletteBlocks), p(Jn, jr(t.content, y));
4216
+ let T = mt(n.mergeTags?.syntax);
4217
+ p(Yn, n.mergeTags?.tags ?? []), p(Xn, T), p(Zn, n.mergeTags?.onRequest ?? null), p(Qn, n.mergeTags?.autocomplete !== !1), p($n, vr()), p(er, n.logicTags?.tags ?? []), p(tr, n.logicTags?.pairs ?? []), p(rr, n.logicTags?.onRequest ?? null), p(nr, yr()), p(ir, n.onRequestMedia ?? null), p(ar, n.displayConditions?.conditions ?? []), p(or, n.displayConditions?.allowCustom ?? !1), p(sr, e.capabilities ?? {}), p(cr, v);
4218
+ let E = br(n.lint) ? null : xr({
4040
4219
  content: t.content,
4041
4220
  options: n.lint ?? {},
4042
4221
  updateBlock: t.updateBlock,
4043
4222
  updateSettings: t.updateSettings,
4044
4223
  removeBlock: t.removeBlock
4045
4224
  });
4046
- p(ar, T);
4047
- function E() {
4048
- _?.(), T?.destroy(), g?.destroy(), f.destroy();
4225
+ p(lr, E);
4226
+ function ee() {
4227
+ _?.(), E?.destroy(), g?.destroy(), f.destroy();
4049
4228
  }
4050
4229
  return {
4051
4230
  t: a,
@@ -4059,27 +4238,27 @@ function Uo(e) {
4059
4238
  themeOverrides: u,
4060
4239
  registry: y,
4061
4240
  keyboardReorder: v,
4062
- templateLint: T,
4241
+ templateLint: E,
4063
4242
  popoverRoot: w,
4064
4243
  registerCustomBlocks: b,
4065
- destroy: E
4244
+ destroy: ee
4066
4245
  };
4067
4246
  }
4068
4247
  //#endregion
4069
4248
  //#region src/composables/usePopoverRoot.ts
4070
- function Wo() {
4071
- return v(sr, C(null));
4249
+ function is() {
4250
+ return v(dr, C(null));
4072
4251
  }
4073
4252
  //#endregion
4074
4253
  //#region src/components/TplModal.vue?vue&type=script&setup=true&lang.ts
4075
- var Go = ["data-tpl-theme"], Ko = /* @__PURE__ */ B({
4254
+ var as = ["data-tpl-theme"], os = /* @__PURE__ */ B({
4076
4255
  __name: "TplModal",
4077
4256
  props: { visible: { type: Boolean } },
4078
4257
  emits: ["close", "keydown"],
4079
4258
  setup(e, { emit: t }) {
4080
4259
  let n = e, r = t, i = C(null);
4081
- Ui(i, O(() => n.visible));
4082
- let a = v(Un), s = Wo();
4260
+ Ji(i, O(() => n.visible));
4261
+ let a = v(Un), s = is();
4083
4262
  function c(e) {
4084
4263
  e.key === "Escape" && r("close"), r("keydown", e);
4085
4264
  }
@@ -4108,11 +4287,11 @@ var Go = ["data-tpl-theme"], Ko = /* @__PURE__ */ B({
4108
4287
  }, [I("div", {
4109
4288
  ref_key: "dialogRef",
4110
4289
  ref: i
4111
- }, [o(t.$slots, "default")], 512)], 40, Go)) : A("", !0)]),
4290
+ }, [o(t.$slots, "default")], 512)], 40, as)) : A("", !0)]),
4112
4291
  _: 3
4113
4292
  })], 8, ["to"])) : A("", !0);
4114
4293
  }
4115
- }), qo = class e {
4294
+ }), ss = class e {
4116
4295
  static DEFAULT_BASE_URL = "https://templatical.com";
4117
4296
  accessToken = null;
4118
4297
  expiresAt = null;
@@ -4213,8 +4392,8 @@ var Go = ["data-tpl-theme"], Ko = /* @__PURE__ */ B({
4213
4392
  return a.status === 401 && (a = await i(await this.refreshToken())), a;
4214
4393
  }
4215
4394
  };
4216
- function Jo(e, t) {
4217
- return e.mode === "direct" ? new qo({
4395
+ function cs(e, t) {
4396
+ return e.mode === "direct" ? new ss({
4218
4397
  url: `${(e.baseUrl ?? "https://templatical.com").replace(/\/$/, "")}/api/v1/auth/token`,
4219
4398
  baseUrl: e.baseUrl,
4220
4399
  requestOptions: {
@@ -4228,7 +4407,7 @@ function Jo(e, t) {
4228
4407
  }
4229
4408
  },
4230
4409
  onError: t
4231
- }) : new qo({
4410
+ }) : new ss({
4232
4411
  url: e.url,
4233
4412
  baseUrl: e.baseUrl,
4234
4413
  requestOptions: e.requestOptions,
@@ -4240,16 +4419,16 @@ function Jo(e, t) {
4240
4419
  function Z(e, t) {
4241
4420
  return e.replace(/\{(\w+)\}/g, (e, n) => encodeURIComponent(t[n] ?? ""));
4242
4421
  }
4243
- var Yo = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${Yo}/templates/{template}`, Xo = `${Q}/ai`, Zo = `${Yo}/media`, Qo = `${Zo}/folders`, $o = `${Yo}/saved-modules`, $ = {
4422
+ var ls = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${ls}/templates/{template}`, us = `${Q}/ai`, ds = `${ls}/media`, fs = `${ds}/folders`, ps = `${ls}/saved-modules`, $ = {
4244
4423
  health: "/api/v1/health",
4245
- "projects.config": `${Yo}/config`,
4246
- "broadcasting.auth": `${Yo}/broadcasting/auth`,
4247
- "templates.store": `${Yo}/templates`,
4424
+ "projects.config": `${ls}/config`,
4425
+ "broadcasting.auth": `${ls}/broadcasting/auth`,
4426
+ "templates.store": `${ls}/templates`,
4248
4427
  "templates.show": `${Q}`,
4249
4428
  "templates.update": `${Q}`,
4250
4429
  "templates.destroy": `${Q}`,
4251
4430
  "templates.export": `${Q}/export`,
4252
- "templates.importFromBeefree": `${Yo}/templates/import/from-beefree`,
4431
+ "templates.importFromBeefree": `${ls}/templates/import/from-beefree`,
4253
4432
  "templates.sendTestEmail": `${Q}/send-test-email`,
4254
4433
  "snapshots.index": `${Q}/snapshots`,
4255
4434
  "snapshots.store": `${Q}/snapshots`,
@@ -4260,31 +4439,31 @@ var Yo = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${Yo}/templates/{te
4260
4439
  "comments.update": `${Q}/comments/{comment}`,
4261
4440
  "comments.destroy": `${Q}/comments/{comment}`,
4262
4441
  "comments.resolve": `${Q}/comments/{comment}/resolve`,
4263
- "ai.generate": `${Xo}/generate`,
4264
- "ai.conversationMessages": `${Xo}/conversation-messages`,
4265
- "ai.suggestions": `${Xo}/suggestions`,
4266
- "ai.rewriteText": `${Xo}/rewrite-text`,
4267
- "ai.score": `${Xo}/score`,
4268
- "ai.fixFinding": `${Xo}/fix-finding`,
4269
- "ai.generateFromDesign": `${Xo}/generate-from-design`,
4270
- "media.upload": `${Zo}/upload`,
4271
- "media.browse": `${Zo}/browse`,
4272
- "media.delete": `${Zo}/delete`,
4273
- "media.move": `${Zo}/move`,
4274
- "media.update": `${Zo}/{media}`,
4275
- "media.replace": `${Zo}/{media}/replace`,
4276
- "media.checkUsage": `${Zo}/check-usage`,
4277
- "media.frequentlyUsed": `${Zo}/frequently-used`,
4278
- "media.importFromUrl": `${Zo}/import-from-url`,
4279
- "folders.index": `${Qo}`,
4280
- "folders.store": `${Qo}`,
4281
- "folders.update": `${Qo}/{mediaFolder}`,
4282
- "folders.destroy": `${Qo}/{mediaFolder}`,
4283
- "savedModules.index": `${$o}`,
4284
- "savedModules.store": `${$o}`,
4285
- "savedModules.update": `${$o}/{savedModule}`,
4286
- "savedModules.destroy": `${$o}/{savedModule}`
4287
- }, es = class {
4442
+ "ai.generate": `${us}/generate`,
4443
+ "ai.conversationMessages": `${us}/conversation-messages`,
4444
+ "ai.suggestions": `${us}/suggestions`,
4445
+ "ai.rewriteText": `${us}/rewrite-text`,
4446
+ "ai.score": `${us}/score`,
4447
+ "ai.fixFinding": `${us}/fix-finding`,
4448
+ "ai.generateFromDesign": `${us}/generate-from-design`,
4449
+ "media.upload": `${ds}/upload`,
4450
+ "media.browse": `${ds}/browse`,
4451
+ "media.delete": `${ds}/delete`,
4452
+ "media.move": `${ds}/move`,
4453
+ "media.update": `${ds}/{media}`,
4454
+ "media.replace": `${ds}/{media}/replace`,
4455
+ "media.checkUsage": `${ds}/check-usage`,
4456
+ "media.frequentlyUsed": `${ds}/frequently-used`,
4457
+ "media.importFromUrl": `${ds}/import-from-url`,
4458
+ "folders.index": `${fs}`,
4459
+ "folders.store": `${fs}`,
4460
+ "folders.update": `${fs}/{mediaFolder}`,
4461
+ "folders.destroy": `${fs}/{mediaFolder}`,
4462
+ "savedModules.index": `${ps}`,
4463
+ "savedModules.store": `${ps}`,
4464
+ "savedModules.update": `${ps}/{savedModule}`,
4465
+ "savedModules.destroy": `${ps}/{savedModule}`
4466
+ }, ms = class {
4288
4467
  authManager;
4289
4468
  constructor(e) {
4290
4469
  this.authManager = e;
@@ -4470,14 +4649,14 @@ var Yo = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${Yo}/templates/{te
4470
4649
  };
4471
4650
  //#endregion
4472
4651
  //#region ../core/src/cloud/websocket-client.ts
4473
- function ts(e) {
4652
+ function hs(e) {
4474
4653
  return {
4475
4654
  host: e.host,
4476
4655
  port: e.port,
4477
4656
  appKey: e.app_key
4478
4657
  };
4479
4658
  }
4480
- var ns = class {
4659
+ var gs = class {
4481
4660
  pusher = null;
4482
4661
  authManager;
4483
4662
  config;
@@ -4489,7 +4668,7 @@ var ns = class {
4489
4668
  if (this.pusher) return;
4490
4669
  let e;
4491
4670
  try {
4492
- ({default: e} = await import("./pusher-BICWUP2j.js").then((e) => /* @__PURE__ */ t(e.t(), 1)));
4671
+ ({default: e} = await import("./pusher-CdEqyLwF.js").then((e) => /* @__PURE__ */ t(e.t(), 1)));
4493
4672
  } catch {
4494
4673
  throw Error("Cloud features require the optional peer dependency 'pusher-js'. Install it with: npm install pusher-js");
4495
4674
  }
@@ -4544,7 +4723,7 @@ var ns = class {
4544
4723
  };
4545
4724
  //#endregion
4546
4725
  //#region ../core/src/cloud/mcp-operation-handler.ts
4547
- function rs(e, t) {
4726
+ function _s(e, t) {
4548
4727
  let { operation: n, data: r } = t;
4549
4728
  switch (n) {
4550
4729
  case "add_block":
@@ -4572,11 +4751,11 @@ function rs(e, t) {
4572
4751
  }
4573
4752
  //#endregion
4574
4753
  //#region ../core/src/cloud/editor.ts
4575
- function is(e) {
4754
+ function vs(e) {
4576
4755
  return e === "1" ? 1 : e === "3" ? 3 : 2;
4577
4756
  }
4578
- function as(e) {
4579
- let t = new es(e.authManager), n = S({
4757
+ function ys(e) {
4758
+ let t = new ms(e.authManager), n = S({
4580
4759
  template: null,
4581
4760
  content: We(e.defaultFontFamily, e.templateDefaults),
4582
4761
  selectedBlockId: null,
@@ -4682,7 +4861,7 @@ function as(e) {
4682
4861
  let l;
4683
4862
  if (r) {
4684
4863
  let e = o(n.content.blocks, r);
4685
- if (!e || e.type !== "section" || i < 0 || i >= is(e.columns)) return;
4864
+ if (!e || e.type !== "section" || i < 0 || i >= vs(e.columns)) return;
4686
4865
  e.children[i] = e.children[i] || [], l = e.children[i];
4687
4866
  } else l = n.content.blocks;
4688
4867
  let [u] = a.blocks.splice(c, 1);
@@ -4723,17 +4902,17 @@ function as(e) {
4723
4902
  n.isSaving = !1;
4724
4903
  }
4725
4904
  }
4726
- async function ee() {
4905
+ async function T() {
4727
4906
  if (n.template?.id) try {
4728
4907
  await t.createSnapshot(n.template.id, n.content);
4729
4908
  } catch (t) {
4730
4909
  throw e.onError?.(t), t;
4731
4910
  }
4732
4911
  }
4733
- function T() {
4912
+ function E() {
4734
4913
  return n.template?.id !== void 0;
4735
4914
  }
4736
- function E() {
4915
+ function ee() {
4737
4916
  n.isDirty = !0;
4738
4917
  }
4739
4918
  function D(e) {
@@ -4767,18 +4946,18 @@ function as(e) {
4767
4946
  create: b,
4768
4947
  load: C,
4769
4948
  save: w,
4770
- createSnapshot: ee,
4771
- hasTemplate: T,
4772
- markDirty: E
4949
+ createSnapshot: T,
4950
+ hasTemplate: E,
4951
+ markDirty: ee
4773
4952
  };
4774
4953
  }
4775
4954
  //#endregion
4776
4955
  //#region ../core/src/cloud/ai-chat.ts
4777
- var os = 0;
4778
- function ss() {
4779
- return `msg_${Date.now()}_${++os}`;
4956
+ var bs = 0;
4957
+ function xs() {
4958
+ return `msg_${Date.now()}_${++bs}`;
4780
4959
  }
4781
- function cs(e) {
4960
+ function Ss(e) {
4782
4961
  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);
4783
4962
  function _(e, t) {
4784
4963
  let n = a.value.findIndex((t) => t.id === e);
@@ -4872,14 +5051,14 @@ function cs(e) {
4872
5051
  let v = n();
4873
5052
  if (!v) throw Error("Template must be saved before using AI generation");
4874
5053
  o.value = !0, c.value = null, l.value = null, h.value = [];
4875
- let y = ss();
5054
+ let y = xs();
4876
5055
  a.value = [...a.value, {
4877
5056
  id: y,
4878
5057
  role: "user",
4879
5058
  content: e,
4880
5059
  timestamp: Date.now()
4881
5060
  }];
4882
- let b = ss();
5061
+ let b = xs();
4883
5062
  a.value = [...a.value, {
4884
5063
  id: b,
4885
5064
  role: "assistant",
@@ -4970,7 +5149,7 @@ function cs(e) {
4970
5149
  }
4971
5150
  //#endregion
4972
5151
  //#region ../core/src/cloud/ai-config.ts
4973
- function ls(e) {
5152
+ function Cs(e) {
4974
5153
  function t(t) {
4975
5154
  return e === !1 ? !1 : e?.[t] !== !1;
4976
5155
  }
@@ -4981,7 +5160,7 @@ function ls(e) {
4981
5160
  }
4982
5161
  //#endregion
4983
5162
  //#region ../core/src/cloud/template-scoring.ts
4984
- function us(e) {
5163
+ function ws(e) {
4985
5164
  let { authManager: t, getTemplateId: n } = e, r = C(!1), i = C(null), a = C(null), o = C(null), s = C(""), c = C(null);
4986
5165
  async function l(e, o) {
4987
5166
  let s = n();
@@ -5126,7 +5305,7 @@ function us(e) {
5126
5305
  }
5127
5306
  //#endregion
5128
5307
  //#region ../core/src/cloud/design-reference.ts
5129
- function ds(e) {
5308
+ function Ts(e) {
5130
5309
  let { authManager: t, getTemplateId: n, onApply: r, onError: i } = e, a = C(!1), o = C(null);
5131
5310
  async function s(e) {
5132
5311
  let s = n();
@@ -5189,8 +5368,8 @@ function ds(e) {
5189
5368
  }
5190
5369
  //#endregion
5191
5370
  //#region ../core/src/cloud/comments.ts
5192
- function fs(e) {
5193
- let { authManager: t, getTemplateId: n, getSocketId: r, onComment: i, onError: a, hasCommentingFeature: o } = e, s = new es(t), c = C([]), l = C(!1), u = C(!1), d = O(() => (o?.() ?? !1) && t.userConfig !== null), f = O(() => {
5371
+ function Es(e) {
5372
+ let { authManager: t, getTemplateId: n, getSocketId: r, onComment: i, onError: a, hasCommentingFeature: o } = e, s = new ms(t), c = C([]), l = C(!1), u = C(!1), d = O(() => (o?.() ?? !1) && t.userConfig !== null), f = O(() => {
5194
5373
  let e = 0;
5195
5374
  for (let t of c.value) e += 1 + (t.replies?.length ?? 0);
5196
5375
  return e;
@@ -5316,17 +5495,17 @@ function fs(e) {
5316
5495
  u.value = !1;
5317
5496
  }
5318
5497
  }
5319
- function ee(e) {
5498
+ function T(e) {
5320
5499
  if (e.parent_id) {
5321
5500
  let t = v(e.parent_id);
5322
5501
  t && (t.replies = [...t.replies ?? [], e]);
5323
5502
  } else c.value = [...c.value, e];
5324
5503
  _("created", e);
5325
5504
  }
5326
- function T(e) {
5505
+ function E(e) {
5327
5506
  D(e.id, e), _("updated", e);
5328
5507
  }
5329
- function E(e, t) {
5508
+ function ee(e, t) {
5330
5509
  let n = v(e), r = n ? {
5331
5510
  ...n,
5332
5511
  replies: [...n.replies ?? []]
@@ -5382,24 +5561,24 @@ function fs(e) {
5382
5561
  editComment: x,
5383
5562
  removeComment: S,
5384
5563
  toggleResolve: w,
5385
- applyRemoteCreate: ee,
5386
- applyRemoteUpdate: T,
5387
- applyRemoteDelete: E
5564
+ applyRemoteCreate: T,
5565
+ applyRemoteUpdate: E,
5566
+ applyRemoteDelete: ee
5388
5567
  };
5389
5568
  }
5390
5569
  //#endregion
5391
5570
  //#region ../core/src/cloud/comment-listener.ts
5392
- function ps(e) {
5571
+ function Ds(e) {
5393
5572
  let { comments: t, channel: n } = e;
5394
5573
  H(n, (e, n) => {
5395
5574
  n && n.unbind("comment-broadcast"), e && e.bind("comment-broadcast", (e) => {
5396
- ms(t, e);
5575
+ Os(t, e);
5397
5576
  });
5398
5577
  }), l(() => {
5399
5578
  n.value?.unbind("comment-broadcast");
5400
5579
  });
5401
5580
  }
5402
- function ms(e, t) {
5581
+ function Os(e, t) {
5403
5582
  switch (t.action) {
5404
5583
  case "comment_created":
5405
5584
  e.applyRemoteCreate(t.comment);
@@ -5418,7 +5597,7 @@ function ms(e, t) {
5418
5597
  }
5419
5598
  //#endregion
5420
5599
  //#region ../core/src/cloud/collaboration.ts
5421
- var hs = [
5600
+ var ks = [
5422
5601
  "pusher:member_added",
5423
5602
  "pusher:member_removed",
5424
5603
  "client-block_locked",
@@ -5426,10 +5605,10 @@ var hs = [
5426
5605
  "client-operation",
5427
5606
  "mcp-operation"
5428
5607
  ];
5429
- function gs(e) {
5430
- for (let t of hs) e.unbind(t);
5608
+ function As(e) {
5609
+ for (let t of ks) e.unbind(t);
5431
5610
  }
5432
- var _s = [
5611
+ var js = [
5433
5612
  "#3b82f6",
5434
5613
  "#ef4444",
5435
5614
  "#10b981",
@@ -5441,10 +5620,10 @@ var _s = [
5441
5620
  "#6366f1",
5442
5621
  "#14b8a6"
5443
5622
  ];
5444
- function vs(e) {
5623
+ function Ms(e) {
5445
5624
  let { authManager: t, editor: n, channel: r } = e, i = C([]), a = C(/* @__PURE__ */ new Map()), o = 0, s = !1, c = O(() => t.userConfig?.id ?? "");
5446
5625
  function u() {
5447
- let e = _s[o % _s.length];
5626
+ let e = js[o % js.length];
5448
5627
  return o++, e;
5449
5628
  }
5450
5629
  function d(e) {
@@ -5486,7 +5665,7 @@ function vs(e) {
5486
5665
  function h(e) {
5487
5666
  s = !0;
5488
5667
  try {
5489
- rs(n, e);
5668
+ _s(n, e);
5490
5669
  } finally {
5491
5670
  s = !1;
5492
5671
  }
@@ -5506,7 +5685,7 @@ function vs(e) {
5506
5685
  return H(() => n.state.selectedBlockId, (e, t) => {
5507
5686
  s || (t && v(t), e && _(e));
5508
5687
  }), H(r, (t, n) => {
5509
- if (n && gs(n), !t) {
5688
+ if (n && As(n), !t) {
5510
5689
  i.value = [], a.value = /* @__PURE__ */ new Map(), o = 0;
5511
5690
  return;
5512
5691
  }
@@ -5538,7 +5717,7 @@ function vs(e) {
5538
5717
  h(e);
5539
5718
  });
5540
5719
  }), l(() => {
5541
- r.value && gs(r.value);
5720
+ r.value && As(r.value);
5542
5721
  }), {
5543
5722
  collaborators: i,
5544
5723
  lockedBlocks: a,
@@ -5548,7 +5727,7 @@ function vs(e) {
5548
5727
  }
5549
5728
  //#endregion
5550
5729
  //#region ../core/src/cloud/collaboration-broadcast.ts
5551
- function ys(e, t) {
5730
+ function Ns(e, t) {
5552
5731
  let n = e.addBlock, r = e.updateBlock, i = e.removeBlock, a = e.moveBlock, o = e.updateSettings, s = e.setContent;
5553
5732
  e.addBlock = (e, r, i, a) => {
5554
5733
  n(e, r, i, a), t._broadcastOperation({
@@ -5603,11 +5782,11 @@ function ys(e, t) {
5603
5782
  }
5604
5783
  //#endregion
5605
5784
  //#region ../core/src/cloud/web-socket.ts
5606
- function bs(e) {
5785
+ function Ps(e) {
5607
5786
  let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = null, o = null;
5608
5787
  async function s(e, s) {
5609
5788
  if (a) return;
5610
- a = new ns({
5789
+ a = new gs({
5611
5790
  authManager: t,
5612
5791
  config: s,
5613
5792
  onError: n
@@ -5635,8 +5814,8 @@ function bs(e) {
5635
5814
  }
5636
5815
  //#endregion
5637
5816
  //#region ../core/src/cloud/saved-modules.ts
5638
- function xs(e) {
5639
- let t = new es(e.authManager), n = C([]), r = C(!1);
5817
+ function Fs(e) {
5818
+ let t = new ms(e.authManager), n = C([]), r = C(!1);
5640
5819
  async function i(i) {
5641
5820
  r.value = !0;
5642
5821
  try {
@@ -5684,8 +5863,8 @@ function xs(e) {
5684
5863
  }
5685
5864
  //#endregion
5686
5865
  //#region ../core/src/cloud/snapshots.ts
5687
- function Ss(e) {
5688
- let t = new es(e.authManager), n = C([]), r = C(!1), i = C(!1);
5866
+ function Is(e) {
5867
+ let t = new ms(e.authManager), n = C([]), r = C(!1), i = C(!1);
5689
5868
  async function a() {
5690
5869
  r.value = !0;
5691
5870
  try {
@@ -5717,8 +5896,8 @@ function Ss(e) {
5717
5896
  }
5718
5897
  //#endregion
5719
5898
  //#region ../core/src/cloud/test-email.ts
5720
- function Cs(e) {
5721
- let { authManager: t, getTemplateId: n, save: r, exportHtml: i, onError: a, isAuthReady: o, onBeforeTestEmail: s } = e, c = new es(t), l = C(!1), u = C(null), d = C(null);
5899
+ function Ls(e) {
5900
+ let { authManager: t, getTemplateId: n, save: r, exportHtml: i, onError: a, isAuthReady: o, onBeforeTestEmail: s } = e, c = new ms(t), l = C(!1), u = C(null), d = C(null);
5722
5901
  o && H(o, (e) => {
5723
5902
  e && (d.value = t.testEmailConfig);
5724
5903
  }, { immediate: !0 });
@@ -5754,8 +5933,8 @@ function Cs(e) {
5754
5933
  }
5755
5934
  //#endregion
5756
5935
  //#region ../core/src/cloud/export.ts
5757
- function ws(e) {
5758
- let { authManager: t, getFontsConfig: n, canUseCustomFonts: r } = e, i = new es(t);
5936
+ function Rs(e) {
5937
+ let { authManager: t, getFontsConfig: n, canUseCustomFonts: r } = e, i = new ms(t);
5759
5938
  function a() {
5760
5939
  let e = n?.();
5761
5940
  return {
@@ -5781,8 +5960,8 @@ function ws(e) {
5781
5960
  }
5782
5961
  //#endregion
5783
5962
  //#region ../core/src/cloud/plan-config.ts
5784
- function Ts(e) {
5785
- let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = new es(t), o = O(() => r.value?.features ?? null);
5963
+ function zs(e) {
5964
+ let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = new ms(t), o = O(() => r.value?.features ?? null);
5786
5965
  function s(e) {
5787
5966
  return r.value?.features[e] ?? !1;
5788
5967
  }
@@ -5808,11 +5987,11 @@ function Ts(e) {
5808
5987
  }
5809
5988
  //#endregion
5810
5989
  //#region ../core/src/cloud/health-check.ts
5811
- var Es = 5e3;
5812
- function Ds(e) {
5990
+ var Bs = 5e3;
5991
+ function Vs(e) {
5813
5992
  return e.authManager ? e.authManager.resolveUrl($.health) : `${(e.baseUrl ?? "https://templatical.com").replace(/\/$/, "")}${$.health}`;
5814
5993
  }
5815
- async function Os(e, t) {
5994
+ async function Hs(e, t) {
5816
5995
  let n = performance.now();
5817
5996
  try {
5818
5997
  let r = t ? await t.authenticatedFetch($.health, {
@@ -5864,7 +6043,7 @@ async function Os(e, t) {
5864
6043
  };
5865
6044
  }
5866
6045
  }
5867
- async function ks(e) {
6046
+ async function Us(e) {
5868
6047
  if (!e?.host || !e?.app_key) return {
5869
6048
  ok: !1,
5870
6049
  error: "WebSocket configuration not available"
@@ -5880,7 +6059,7 @@ async function ks(e) {
5880
6059
  ok: !1,
5881
6060
  error: "WebSocket connection timed out"
5882
6061
  });
5883
- }, Es);
6062
+ }, Bs);
5884
6063
  try {
5885
6064
  n = new WebSocket(t);
5886
6065
  } catch (t) {
@@ -5900,8 +6079,8 @@ async function ks(e) {
5900
6079
  };
5901
6080
  });
5902
6081
  }
5903
- async function As(e = {}) {
5904
- let t = await Os(Ds(e), e.authManager), n = await ks(t.wsConfig);
6082
+ async function Ws(e = {}) {
6083
+ let t = await Hs(Vs(e), e.authManager), n = await Us(t.wsConfig);
5905
6084
  return {
5906
6085
  api: t.api,
5907
6086
  websocket: n,
@@ -5911,29 +6090,29 @@ async function As(e = {}) {
5911
6090
  }
5912
6091
  //#endregion
5913
6092
  //#region ../core/src/cloud/mcp-listener.ts
5914
- function js(e) {
6093
+ function Gs(e) {
5915
6094
  let { editor: t, channel: n, onOperation: r } = e;
5916
6095
  H(n, (e, n) => {
5917
6096
  n && n.unbind("mcp-operation"), e && e.bind("mcp-operation", (e) => {
5918
- rs(t, e), r?.(e);
6097
+ _s(t, e), r?.(e);
5919
6098
  });
5920
6099
  });
5921
6100
  }
5922
6101
  //#endregion
5923
6102
  //#region src/cloud/components/AiChatSidebar.vue?vue&type=script&setup=true&lang.ts
5924
- var Ms = {
6103
+ var Ks = {
5925
6104
  key: 0,
5926
6105
  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)]"
5927
- }, Ns = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Ps = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, Fs = { class: "tpl:flex tpl:items-center tpl:gap-1" }, Is = ["title"], Ls = { class: "tpl:relative tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col" }, Rs = {
6106
+ }, qs = { 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)]" }, Ys = { class: "tpl:flex tpl:items-center tpl:gap-1" }, Xs = ["title"], Zs = { class: "tpl:relative tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col" }, Qs = {
5928
6107
  key: 0,
5929
6108
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
5930
- }, zs = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Bs = {
6109
+ }, $s = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, ec = {
5931
6110
  key: 1,
5932
6111
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
5933
- }, Vs = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Hs = {
6112
+ }, tc = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, nc = {
5934
6113
  key: 2,
5935
6114
  class: "tpl:flex tpl:flex-col tpl:gap-4"
5936
- }, Us = {
6115
+ }, rc = {
5937
6116
  key: 0,
5938
6117
  class: "tpl:self-end tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3.5 tpl:py-2.5 tpl:text-sm",
5939
6118
  style: {
@@ -5942,10 +6121,10 @@ var Ms = {
5942
6121
  "max-width": "85%",
5943
6122
  "box-shadow": "var(--tpl-shadow)"
5944
6123
  }
5945
- }, Ws = {
6124
+ }, ic = {
5946
6125
  key: 1,
5947
6126
  class: "tpl:flex tpl:flex-col tpl:gap-2"
5948
- }, Gs = {
6127
+ }, ac = {
5949
6128
  key: 1,
5950
6129
  class: "tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3.5 tpl:py-2.5 tpl:text-sm tpl:whitespace-pre-wrap",
5951
6130
  style: {
@@ -5954,21 +6133,21 @@ var Ms = {
5954
6133
  color: "var(--tpl-text)",
5955
6134
  "box-shadow": "var(--tpl-shadow)"
5956
6135
  }
5957
- }, Ks = {
6136
+ }, oc = {
5958
6137
  key: 0,
5959
6138
  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",
5960
6139
  style: {
5961
6140
  "background-color": "var(--tpl-danger-light)",
5962
6141
  color: "var(--tpl-danger)"
5963
6142
  }
5964
- }, qs = {
6143
+ }, sc = {
5965
6144
  key: 1,
5966
6145
  class: "tpl:absolute tpl:right-0 tpl:bottom-0 tpl:left-0 tpl:z-10 tpl:px-3 tpl:pb-3",
5967
6146
  style: {
5968
6147
  "background-color": "color-mix(\n in srgb,\n var(--tpl-bg) 50%,\n transparent\n )",
5969
6148
  "backdrop-filter": "blur(2px)"
5970
6149
  }
5971
- }, Js = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, Ys = ["onClick"], Xs = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, Zs = { 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)]" }, Qs = ["placeholder", "disabled"], $s = ["disabled"], ec = { class: "tpl:m-0 tpl:px-1 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, tc = /*@__PURE__*/ B({
6150
+ }, cc = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, lc = ["onClick"], uc = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, dc = { 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)]" }, fc = ["placeholder", "disabled"], pc = ["disabled"], mc = { class: "tpl:m-0 tpl:px-1 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, hc = /*@__PURE__*/ B({
5972
6151
  __name: "AiChatSidebar",
5973
6152
  props: {
5974
6153
  visible: { type: Boolean },
@@ -5976,7 +6155,7 @@ var Ms = {
5976
6155
  },
5977
6156
  emits: ["close"],
5978
6157
  setup(e, { emit: t }) {
5979
- let n = e, r = t, i = J(pr, "AiChatSidebar"), a = J(Ln, "AiChatSidebar"), o = J(cr, "AiChatSidebar"), s = v(Yn, []), l = ba(), u = cs({
6158
+ let n = e, r = t, i = J(_r, "AiChatSidebar"), a = J(Ln, "AiChatSidebar"), o = J(fr, "AiChatSidebar"), s = v(Yn, []), l = ka(), u = Ss({
5980
6159
  authManager: o,
5981
6160
  getTemplateId: () => a.state.template?.id ?? null,
5982
6161
  onApply: n.onApply,
@@ -6002,18 +6181,18 @@ var Ms = {
6002
6181
  (u.messages.value?.length ?? 0) === 0 && a.content.value.blocks.length === 0 && u.loadSuggestions(a.content.value, s);
6003
6182
  }
6004
6183
  });
6005
- async function ee() {
6184
+ async function T() {
6006
6185
  let e = d.value.trim();
6007
6186
  !e || u.isGenerating.value || (d.value = "", u.error.value = null, u.failedPrompt.value = null, w(), await u.sendPrompt(e, a.content.value, s), l.alive && (u.failedPrompt.value && (d.value = u.failedPrompt.value), w()));
6008
6187
  }
6009
- function T(e) {
6188
+ function E(e) {
6010
6189
  return e.replace(/```json[\s\S]*?```/g, "").replace(/```json[\s\S]*/g, "").trim();
6011
6190
  }
6012
- function E(e) {
6013
- y(), d.value = e, ee();
6191
+ function ee(e) {
6192
+ y(), d.value = e, T();
6014
6193
  }
6015
6194
  function te(e) {
6016
- e.key === "Enter" && !e.shiftKey && (e.preventDefault(), ee());
6195
+ e.key === "Enter" && !e.shiftKey && (e.preventDefault(), T());
6017
6196
  }
6018
6197
  return (t, n) => (f(), N(ie, {
6019
6198
  "enter-active-class": "tpl-ai-slide-enter-active",
@@ -6023,42 +6202,42 @@ var Ms = {
6023
6202
  "leave-from-class": "tpl:translate-x-0",
6024
6203
  "leave-to-class": "tpl:translate-x-full"
6025
6204
  }, {
6026
- default: b(() => [e.visible ? (f(), k("div", Ms, [
6027
- I("div", Ns, [I("div", Ps, [V(j(Xr), {
6205
+ default: b(() => [e.visible ? (f(), k("div", Ks, [
6206
+ I("div", qs, [I("div", Js, [V(j(ki), {
6028
6207
  size: 13,
6029
6208
  "stroke-width": 2
6030
- }), I("span", null, D(j(i).aiChat.title), 1)]), I("div", Fs, [(j(u).messages.value?.length ?? 0) > 0 ? (f(), k("button", {
6209
+ }), I("span", null, D(j(i).aiChat.title), 1)]), I("div", Ys, [(j(u).messages.value?.length ?? 0) > 0 ? (f(), k("button", {
6031
6210
  key: 0,
6032
6211
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6033
6212
  title: j(i).aiChat.clear,
6034
6213
  onClick: n[0] ||= (e) => j(u).clearChat()
6035
- }, [V(j(Di), {
6214
+ }, [V(j(ji), {
6036
6215
  size: 14,
6037
6216
  "stroke-width": 2
6038
- })], 8, Is)) : A("", !0), I("button", {
6217
+ })], 8, Xs)) : A("", !0), I("button", {
6039
6218
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6040
6219
  onClick: n[1] ||= (e) => r("close")
6041
- }, [V(j(ji), {
6220
+ }, [V(j(Ii), {
6042
6221
  size: 14,
6043
6222
  "stroke-width": 2
6044
6223
  })])])]),
6045
- I("div", Ls, [
6224
+ I("div", Zs, [
6046
6225
  I("div", {
6047
6226
  ref_key: "messagesContainer",
6048
6227
  ref: p,
6049
6228
  class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4"
6050
- }, [j(u).isLoadingHistory.value ? (f(), k("div", Rs, [V(j(Jr), {
6229
+ }, [j(u).isLoadingHistory.value ? (f(), k("div", Qs, [V(j(_i), {
6051
6230
  class: "tpl-spinner tpl:text-[var(--tpl-text-muted)]",
6052
6231
  size: 24,
6053
6232
  "stroke-width": 2
6054
- }), I("p", zs, D(j(i).aiChat.loadingHistory), 1)])) : (j(u).messages.value?.length ?? 0) === 0 ? (f(), k("div", Bs, [V(j(Xr), {
6233
+ }), I("p", $s, D(j(i).aiChat.loadingHistory), 1)])) : (j(u).messages.value?.length ?? 0) === 0 ? (f(), k("div", ec, [V(j(ki), {
6055
6234
  size: 32,
6056
6235
  "stroke-width": 1.5,
6057
6236
  class: "tpl:text-[var(--tpl-text-dim)]"
6058
- }), I("p", Vs, D(j(i).aiChat.placeholder), 1)])) : (f(), k("div", Hs, [(f(!0), k(R, null, h(j(u).messages.value, (e, t) => (f(), k("div", {
6237
+ }), I("p", tc, D(j(i).aiChat.placeholder), 1)])) : (f(), k("div", nc, [(f(!0), k(R, null, h(j(u).messages.value, (e, t) => (f(), k("div", {
6059
6238
  key: e.id,
6060
6239
  class: "tpl:flex tpl:flex-col tpl:gap-2"
6061
- }, [e.role === "user" ? (f(), k("div", Us, D(e.content), 1)) : (f(), k("div", Ws, [!T(e.content) && j(u).isGenerating.value && t === (j(u).messages.value?.length ?? 0) - 1 ? (f(), N(Bi, { key: 0 })) : (f(), k("div", Gs, D(T(e.content) || j(i).aiChat.applied), 1)), e.id === j(u).lastApplyMessageId.value && !j(u).isGenerating.value ? (f(), k("button", {
6240
+ }, [e.role === "user" ? (f(), k("div", rc, D(e.content), 1)) : (f(), k("div", ic, [!E(e.content) && j(u).isGenerating.value && t === (j(u).messages.value?.length ?? 0) - 1 ? (f(), N(Gi, { key: 0 })) : (f(), k("div", ac, D(E(e.content) || j(i).aiChat.applied), 1)), e.id === j(u).lastApplyMessageId.value && !j(u).isGenerating.value ? (f(), k("button", {
6062
6241
  key: 2,
6063
6242
  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",
6064
6243
  style: {
@@ -6067,19 +6246,19 @@ var Ms = {
6067
6246
  "background-color": "transparent"
6068
6247
  },
6069
6248
  onClick: n[2] ||= (e) => j(u).toggleLastRevert()
6070
- }, [j(u).isLastChangeReverted.value ? (f(), k(R, { key: 0 }, [V(j(bi), {
6249
+ }, [j(u).isLastChangeReverted.value ? (f(), k(R, { key: 0 }, [V(j(Si), {
6071
6250
  size: 12,
6072
6251
  "stroke-width": 2
6073
- }), z(" " + D(j(i).aiChat.reapply), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Oi), {
6252
+ }), z(" " + D(j(i).aiChat.reapply), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Ni), {
6074
6253
  size: 12,
6075
6254
  "stroke-width": 2
6076
6255
  }), z(" " + D(j(i).aiChat.revert), 1)], 64))])) : A("", !0)]))]))), 128))]))], 512),
6077
- j(u).error.value ? (f(), k("div", Ks, [V(j(Gr), {
6256
+ j(u).error.value ? (f(), k("div", oc, [V(j(ri), {
6078
6257
  size: 14,
6079
6258
  "stroke-width": 2,
6080
6259
  class: "tpl:mt-0.5 tpl:shrink-0"
6081
6260
  }), I("span", null, D(j(u).error.value === "ai_apply_failed" ? j(i).aiChat.applyFailed : j(i).aiChat.error), 1)])) : A("", !0),
6082
- (j(u).suggestions.value?.length ?? 0) > 0 ? (f(), k("div", qs, [I("div", Js, [(f(!0), k(R, null, h(j(u).suggestions.value ?? [], (e, t) => (f(), k("button", {
6261
+ (j(u).suggestions.value?.length ?? 0) > 0 ? (f(), k("div", sc, [I("div", cc, [(f(!0), k(R, null, h(j(u).suggestions.value ?? [], (e, t) => (f(), k("button", {
6083
6262
  key: t,
6084
6263
  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"]),
6085
6264
  style: {
@@ -6088,111 +6267,111 @@ var Ms = {
6088
6267
  "background-color": "var(--tpl-bg)",
6089
6268
  "box-shadow": "var(--tpl-shadow)"
6090
6269
  },
6091
- onClick: (t) => E(e)
6092
- }, D(e), 11, Ys))), 128))])])) : A("", !0)
6270
+ onClick: (t) => ee(e)
6271
+ }, D(e), 11, lc))), 128))])])) : A("", !0)
6093
6272
  ]),
6094
- I("div", Xs, [I("div", Zs, [c(I("textarea", {
6273
+ I("div", uc, [I("div", dc, [c(I("textarea", {
6095
6274
  "onUpdate:modelValue": n[3] ||= (e) => d.value = e,
6096
6275
  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)]",
6097
6276
  placeholder: j(i).aiChat.inputPlaceholder,
6098
6277
  disabled: j(u).isGenerating.value,
6099
6278
  rows: "3",
6100
6279
  onKeydown: te
6101
- }, null, 40, Qs), [[ae, d.value]]), I("button", {
6280
+ }, null, 40, fc), [[ae, d.value]]), I("button", {
6102
6281
  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)]",
6103
6282
  disabled: !d.value.trim() || j(u).isGenerating.value,
6104
- onClick: ee
6105
- }, [V(j(Ci), {
6283
+ onClick: T
6284
+ }, [V(j(Ti), {
6106
6285
  size: 16,
6107
6286
  "stroke-width": 2
6108
- })], 8, $s)]), I("p", ec, D(j(i).aiMenu.disclaimer), 1)])
6287
+ })], 8, pc)]), I("p", mc, D(j(i).aiMenu.disclaimer), 1)])
6109
6288
  ])) : A("", !0)]),
6110
6289
  _: 1
6111
6290
  }));
6112
6291
  }
6113
- }), nc = /* @__PURE__ */ e({ default: () => rc }), rc = /*#__PURE__*/ Ii(tc, [["__scopeId", "data-v-a55e4bff"]]), ic = 6e4, ac = 36e5, oc = 864e5;
6114
- function sc(e, t, n, r) {
6292
+ }), gc = /* @__PURE__ */ e({ default: () => _c }), _c = /*#__PURE__*/ Vi(hc, [["__scopeId", "data-v-a55e4bff"]]), vc = 6e4, yc = 36e5, bc = 864e5;
6293
+ function xc(e, t, n, r) {
6115
6294
  let i = new Date(e).getTime();
6116
6295
  if (Number.isNaN(i)) return null;
6117
6296
  let a = Date.now() - i;
6118
6297
  if (a < -6e4) return null;
6119
- let o = Math.floor(a / ic), s = Math.floor(a / ac), c = Math.floor(a / oc);
6298
+ let o = Math.floor(a / vc), s = Math.floor(a / yc), c = Math.floor(a / bc);
6120
6299
  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));
6121
6300
  }
6122
6301
  //#endregion
6123
6302
  //#region src/cloud/components/CommentsSidebar.vue?vue&type=script&setup=true&lang.ts
6124
- var cc = {
6303
+ var Sc = {
6125
6304
  key: 0,
6126
6305
  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)]"
6127
- }, lc = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, uc = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]" }, dc = {
6306
+ }, Cc = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, wc = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]" }, Tc = {
6128
6307
  key: 0,
6129
6308
  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)]"
6130
- }, fc = { class: "tpl:flex tpl:gap-1 tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2" }, pc = { class: "tpl:flex-1 tpl:overflow-y-auto" }, mc = {
6309
+ }, Ec = { class: "tpl:flex tpl:gap-1 tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2" }, Dc = { class: "tpl:flex-1 tpl:overflow-y-auto" }, Oc = {
6131
6310
  key: 0,
6132
6311
  class: "tpl:flex tpl:h-full tpl:items-center tpl:justify-center"
6133
- }, hc = {
6312
+ }, kc = {
6134
6313
  key: 1,
6135
6314
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:px-6 tpl:text-center"
6136
- }, gc = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, _c = {
6315
+ }, Ac = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, jc = {
6137
6316
  key: 2,
6138
6317
  class: "tpl:flex tpl:flex-col tpl:gap-3 tpl:p-3"
6139
- }, vc = { class: "tpl-comment-card tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-3" }, yc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, bc = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, xc = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Sc = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Cc = {
6318
+ }, Mc = { class: "tpl-comment-card tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-3" }, Nc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, Pc = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, Fc = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Ic = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Lc = {
6140
6319
  key: 0,
6141
6320
  class: "tpl:text-[10px] tpl:italic tpl:text-[var(--tpl-text-dim)]"
6142
- }, wc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, Tc = ["title", "onClick"], Ec = ["title", "onClick"], Dc = ["title", "onClick"], Oc = {
6321
+ }, Rc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, zc = ["title", "onClick"], Bc = ["title", "onClick"], Vc = ["title", "onClick"], Hc = {
6143
6322
  key: 0,
6144
6323
  class: "tpl:mt-1 tpl:flex tpl:items-center tpl:gap-1 tpl:text-[10px] tpl:text-[var(--tpl-primary)]"
6145
- }, kc = {
6324
+ }, Uc = {
6146
6325
  key: 0,
6147
6326
  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)]"
6148
- }, Ac = ["onClick"], jc = {
6327
+ }, Wc = ["onClick"], Gc = {
6149
6328
  key: 2,
6150
6329
  class: "tpl:mt-2"
6151
- }, Mc = ["onKeydown"], Nc = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, Pc = ["disabled", "onClick"], Fc = {
6330
+ }, Kc = ["onKeydown"], qc = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, Jc = ["disabled", "onClick"], Yc = {
6152
6331
  key: 3,
6153
6332
  class: "tpl:mt-1.5 tpl:text-xs tpl:leading-relaxed tpl:whitespace-pre-wrap tpl:text-[var(--tpl-text)]"
6154
- }, Ic = {
6333
+ }, Xc = {
6155
6334
  key: 4,
6156
6335
  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)]"
6157
- }, Lc = { class: "tpl:flex-1" }, Rc = ["onClick"], zc = {
6336
+ }, Zc = { class: "tpl:flex-1" }, Qc = ["onClick"], $c = {
6158
6337
  key: 5,
6159
6338
  class: "tpl:mt-2 tpl:flex tpl:items-center tpl:gap-2"
6160
- }, Bc = ["title", "onClick"], Vc = ["onClick"], Hc = {
6339
+ }, el = ["title", "onClick"], tl = ["onClick"], nl = {
6161
6340
  key: 0,
6162
6341
  class: "tpl-comment-replies tpl:ml-5 tpl:pl-3 tpl:pt-2"
6163
- }, Uc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, Wc = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, Gc = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Kc = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, qc = {
6342
+ }, rl = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, il = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, al = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, ol = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, sl = {
6164
6343
  key: 0,
6165
6344
  class: "tpl:text-[10px] tpl:italic tpl:text-[var(--tpl-text-dim)]"
6166
- }, Jc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, Yc = ["title", "onClick"], Xc = ["title", "onClick"], Zc = {
6345
+ }, cl = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, ll = ["title", "onClick"], ul = ["title", "onClick"], dl = {
6167
6346
  key: 0,
6168
6347
  class: "tpl:mt-1.5"
6169
- }, Qc = ["onKeydown"], $c = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, el = ["disabled", "onClick"], tl = {
6348
+ }, fl = ["onKeydown"], pl = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, ml = ["disabled", "onClick"], hl = {
6170
6349
  key: 1,
6171
6350
  class: "tpl:mt-1 tpl:text-xs tpl:leading-relaxed tpl:whitespace-pre-wrap tpl:text-[var(--tpl-text)]"
6172
- }, nl = {
6351
+ }, gl = {
6173
6352
  key: 2,
6174
6353
  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)]"
6175
- }, rl = { class: "tpl:flex-1" }, il = ["onClick"], al = {
6354
+ }, _l = { class: "tpl:flex-1" }, vl = ["onClick"], yl = {
6176
6355
  key: 0,
6177
6356
  class: "tpl-comment-replies tpl:ml-5 tpl:pl-3 tpl:pt-2"
6178
- }, ol = { class: "tpl:flex tpl:items-end tpl:gap-2" }, sl = ["placeholder", "onKeydown"], cl = { class: "tpl:flex tpl:shrink-0 tpl:flex-col tpl:gap-1" }, ll = ["disabled", "onClick"], ul = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, dl = {
6357
+ }, bl = { class: "tpl:flex tpl:items-end tpl:gap-2" }, xl = ["placeholder", "onKeydown"], Sl = { class: "tpl:flex tpl:shrink-0 tpl:flex-col tpl:gap-1" }, Cl = ["disabled", "onClick"], wl = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, Tl = {
6179
6358
  key: 0,
6180
6359
  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)]"
6181
- }, fl = {
6360
+ }, El = {
6182
6361
  key: 1,
6183
6362
  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)]"
6184
- }, pl = ["placeholder", "disabled"], ml = ["disabled"], hl = /*@__PURE__*/ B({
6363
+ }, Dl = ["placeholder", "disabled"], Ol = ["disabled"], kl = /*@__PURE__*/ B({
6185
6364
  __name: "CommentsSidebar",
6186
6365
  props: { visible: { type: Boolean } },
6187
6366
  emits: ["close", "filterBlock"],
6188
6367
  setup(e, { expose: t, emit: n }) {
6189
- let r = e, i = n, { format: a } = Y(), { t: o } = Ki(), s = J(Ln, "CommentsSidebar"), l = J(cr, "CommentsSidebar"), u = J(ur, "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(() => {
6368
+ let r = e, i = n, { format: a } = Y(), { t: o } = Zi(), s = J(Ln, "CommentsSidebar"), l = J(fr, "CommentsSidebar"), u = J(mr, "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), T = C(null), E = O(() => l.userConfig?.id ?? null), ee = O(() => {
6190
6369
  let e = /* @__PURE__ */ new Set();
6191
6370
  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);
6192
6371
  return e;
6193
6372
  });
6194
6373
  function te(e) {
6195
- return e ? !E.value.has(e) : !1;
6374
+ return e ? !ee.value.has(e) : !1;
6196
6375
  }
6197
6376
  let ne = O(() => d.value !== "block" || !p.value ? !1 : !(s.savedBlockIds?.value.has(p.value) ?? !0)), re = O(() => {
6198
6377
  let e = u.comments.value;
@@ -6251,10 +6430,10 @@ var cc = {
6251
6430
  await u.toggleResolve(e);
6252
6431
  }
6253
6432
  function _e(e) {
6254
- return e.author_identifier === T.value;
6433
+ return e.author_identifier === E.value;
6255
6434
  }
6256
6435
  function ve(e) {
6257
- return sc(e, o.snapshotHistory) ?? e;
6436
+ return xc(e, o.snapshotHistory) ?? e;
6258
6437
  }
6259
6438
  function ye(e) {
6260
6439
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), fe());
@@ -6267,7 +6446,7 @@ var cc = {
6267
6446
  }
6268
6447
  function Se() {
6269
6448
  m(() => {
6270
- ee.value?.focus();
6449
+ T.value?.focus();
6271
6450
  });
6272
6451
  }
6273
6452
  return t({
@@ -6281,22 +6460,22 @@ var cc = {
6281
6460
  "leave-from-class": "tpl:translate-x-0",
6282
6461
  "leave-to-class": "tpl:translate-x-full"
6283
6462
  }, {
6284
- default: b(() => [e.visible ? (f(), k("div", cc, [
6285
- I("div", lc, [I("div", uc, [
6286
- V(j(gi), {
6463
+ default: b(() => [e.visible ? (f(), k("div", Sc, [
6464
+ I("div", Cc, [I("div", wc, [
6465
+ V(j(vi), {
6287
6466
  size: 13,
6288
6467
  "stroke-width": 2
6289
6468
  }),
6290
6469
  I("span", null, D(j(o).comments.title), 1),
6291
- j(u).unresolvedCount.value > 0 ? (f(), k("span", dc, D(j(u).unresolvedCount.value), 1)) : A("", !0)
6470
+ j(u).unresolvedCount.value > 0 ? (f(), k("span", Tc, D(j(u).unresolvedCount.value), 1)) : A("", !0)
6292
6471
  ]), I("button", {
6293
6472
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6294
6473
  onClick: n[0] ||= (e) => i("close")
6295
- }, [V(j(ji), {
6474
+ }, [V(j(Ii), {
6296
6475
  size: 14,
6297
6476
  "stroke-width": 2
6298
6477
  })])]),
6299
- I("div", fc, [
6478
+ I("div", Ec, [
6300
6479
  I("button", {
6301
6480
  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" : ""]),
6302
6481
  onClick: n[1] ||= (e) => M("unresolved")
@@ -6311,156 +6490,156 @@ var cc = {
6311
6490
  onClick: n[3] ||= (e) => M("block", j(s).state.selectedBlockId ?? void 0)
6312
6491
  }, D(j(o).comments.filterBlock), 3)) : A("", !0)
6313
6492
  ]),
6314
- I("div", pc, [j(u).isLoading.value ? (f(), k("div", mc, [V(j(Jr), {
6493
+ I("div", Dc, [j(u).isLoading.value ? (f(), k("div", Oc, [V(j(_i), {
6315
6494
  class: "tpl-spinner tpl:text-[var(--tpl-text-muted)]",
6316
6495
  size: 24,
6317
6496
  "stroke-width": 2
6318
- })])) : re.value.length === 0 ? (f(), k("div", hc, [V(j(gi), {
6497
+ })])) : re.value.length === 0 ? (f(), k("div", kc, [V(j(vi), {
6319
6498
  size: 32,
6320
6499
  "stroke-width": 1.5,
6321
6500
  class: "tpl:text-[var(--tpl-text-dim)]"
6322
- }), I("p", gc, D(d.value === "all" ? j(o).comments.noCommentsHint : j(o).comments.noComments), 1)])) : (f(), k("div", _c, [(f(!0), k(R, null, h(re.value, (e) => (f(), k("div", {
6501
+ }), I("p", Ac, D(d.value === "all" ? j(o).comments.noCommentsHint : j(o).comments.noComments), 1)])) : (f(), k("div", jc, [(f(!0), k(R, null, h(re.value, (e) => (f(), k("div", {
6323
6502
  key: e.id,
6324
6503
  class: "tpl-comment-thread"
6325
6504
  }, [
6326
- I("div", vc, [
6327
- I("div", yc, [I("div", bc, [
6328
- I("span", xc, D(_e(e) ? j(o).comments.ownedByYou : e.author_name), 1),
6329
- I("span", Sc, D(ve(e.created_at)), 1),
6330
- e.updated_at === e.created_at ? A("", !0) : (f(), k("span", Cc, " (" + D(j(o).comments.edited) + ") ", 1))
6331
- ]), I("div", wc, [
6505
+ I("div", Mc, [
6506
+ I("div", Nc, [I("div", Pc, [
6507
+ I("span", Fc, D(_e(e) ? j(o).comments.ownedByYou : e.author_name), 1),
6508
+ I("span", Ic, D(ve(e.created_at)), 1),
6509
+ e.updated_at === e.created_at ? A("", !0) : (f(), k("span", Lc, " (" + D(j(o).comments.edited) + ") ", 1))
6510
+ ]), I("div", Rc, [
6332
6511
  I("button", {
6333
6512
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6334
6513
  title: e.resolved_at ? j(o).comments.unresolve : j(o).comments.resolve,
6335
6514
  onClick: (t) => ge(e.id)
6336
- }, [V(j(Kr), {
6515
+ }, [V(j(ii), {
6337
6516
  size: 13,
6338
6517
  "stroke-width": 2,
6339
6518
  class: "tpl-resolve-icon",
6340
6519
  style: L({ color: e.resolved_at ? "var(--tpl-primary)" : void 0 })
6341
- }, null, 8, ["style"])], 8, Tc),
6520
+ }, null, 8, ["style"])], 8, zc),
6342
6521
  _e(e) ? (f(), k("button", {
6343
6522
  key: 0,
6344
6523
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6345
6524
  title: j(o).comments.edit,
6346
6525
  onClick: (t) => le(e)
6347
- }, [V(j(vi), {
6526
+ }, [V(j(bi), {
6348
6527
  size: 12,
6349
6528
  "stroke-width": 2
6350
- })], 8, Ec)) : A("", !0),
6529
+ })], 8, Bc)) : A("", !0),
6351
6530
  _e(e) ? (f(), k("button", {
6352
6531
  key: 1,
6353
6532
  class: "tpl-comment-action tpl-comment-delete tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6354
6533
  title: j(o).comments.delete,
6355
6534
  onClick: (t) => ue(e.id)
6356
- }, [V(j(Di), {
6535
+ }, [V(j(ji), {
6357
6536
  size: 12,
6358
6537
  "stroke-width": 2
6359
- })], 8, Dc)) : A("", !0)
6538
+ })], 8, Vc)) : A("", !0)
6360
6539
  ])]),
6361
6540
  V(ie, { name: "tpl-resolve" }, {
6362
- default: b(() => [e.resolved_at ? (f(), k("div", Oc, [V(j(ei), {
6541
+ default: b(() => [e.resolved_at ? (f(), k("div", Hc, [V(j(Qr), {
6363
6542
  size: 10,
6364
6543
  "stroke-width": 2.5
6365
6544
  }), I("span", null, D(j(a)(j(o).comments.resolvedBy, { name: e.resolved_by_name ?? "" })), 1)])) : A("", !0)]),
6366
6545
  _: 2
6367
6546
  }, 1024),
6368
- e.block_id && te(e.block_id) ? (f(), k("span", kc, D(j(o).comments.missingBlock), 1)) : e.block_id ? (f(), k("button", {
6547
+ e.block_id && te(e.block_id) ? (f(), k("span", Uc, D(j(o).comments.missingBlock), 1)) : e.block_id ? (f(), k("button", {
6369
6548
  key: 1,
6370
6549
  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)]",
6371
6550
  onClick: (t) => j(s).selectBlock(e.block_id ?? "")
6372
- }, " Block ", 8, Ac)) : A("", !0),
6373
- y.value === e.id ? (f(), k("div", jc, [c(I("textarea", {
6551
+ }, " Block ", 8, Wc)) : A("", !0),
6552
+ y.value === e.id ? (f(), k("div", Gc, [c(I("textarea", {
6374
6553
  "onUpdate:modelValue": n[4] ||= (e) => x.value = e,
6375
6554
  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)]",
6376
6555
  rows: "3",
6377
6556
  onKeydown: (t) => xe(t, e.id)
6378
- }, null, 40, Mc), [[ae, x.value]]), I("div", Nc, [I("button", {
6557
+ }, null, 40, Kc), [[ae, x.value]]), I("div", qc, [I("button", {
6379
6558
  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)]",
6380
6559
  disabled: !x.value.trim() || j(u).isSubmitting.value,
6381
6560
  onClick: (t) => me(e.id)
6382
- }, D(j(o).comments.save), 9, Pc), I("button", {
6561
+ }, D(j(o).comments.save), 9, Jc), I("button", {
6383
6562
  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)]",
6384
6563
  onClick: n[5] ||= (e) => B()
6385
- }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", Fc, D(e.body), 1)),
6386
- w.value === e.id ? (f(), k("div", Ic, [
6387
- I("span", Lc, D(j(o).comments.deleteConfirm), 1),
6564
+ }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", Yc, D(e.body), 1)),
6565
+ w.value === e.id ? (f(), k("div", Xc, [
6566
+ I("span", Zc, D(j(o).comments.deleteConfirm), 1),
6388
6567
  I("button", {
6389
6568
  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)]",
6390
6569
  onClick: (t) => he(e.id)
6391
- }, D(j(o).comments.delete), 9, Rc),
6570
+ }, D(j(o).comments.delete), 9, Qc),
6392
6571
  I("button", {
6393
6572
  class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6394
6573
  onClick: n[6] ||= (e) => de()
6395
6574
  }, D(j(o).comments.cancel), 1)
6396
6575
  ])) : A("", !0),
6397
- y.value !== e.id && w.value !== e.id ? (f(), k("div", zc, [I("button", {
6576
+ y.value !== e.id && w.value !== e.id ? (f(), k("div", $c, [I("button", {
6398
6577
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6399
6578
  title: j(o).comments.reply,
6400
6579
  onClick: (t) => se(e.id)
6401
- }, [V(j(Si), {
6580
+ }, [V(j(wi), {
6402
6581
  size: 13,
6403
6582
  "stroke-width": 2,
6404
6583
  class: "tpl:text-[var(--tpl-primary)]"
6405
- })], 8, Bc), (e.replies?.length ?? 0) > 0 ? (f(), k("button", {
6584
+ })], 8, el), (e.replies?.length ?? 0) > 0 ? (f(), k("button", {
6406
6585
  key: 0,
6407
6586
  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)]",
6408
6587
  onClick: (t) => oe(e.id)
6409
- }, [S.value.has(e.id) ? (f(), N(j(ii), {
6588
+ }, [S.value.has(e.id) ? (f(), N(j(ni), {
6410
6589
  key: 0,
6411
6590
  size: 11,
6412
6591
  "stroke-width": 2
6413
- })) : (f(), N(j(ti), {
6592
+ })) : (f(), N(j($r), {
6414
6593
  key: 1,
6415
6594
  size: 11,
6416
6595
  "stroke-width": 2
6417
- })), 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, Vc)) : A("", !0)])) : A("", !0)
6596
+ })), 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, tl)) : A("", !0)])) : A("", !0)
6418
6597
  ]),
6419
6598
  V(ie, { name: "tpl-replies" }, {
6420
- default: b(() => [S.value.has(e.id) && (e.replies?.length ?? 0) > 0 ? (f(), k("div", Hc, [(f(!0), k(R, null, h(e.replies, (t, r) => (f(), k("div", {
6599
+ default: b(() => [S.value.has(e.id) && (e.replies?.length ?? 0) > 0 ? (f(), k("div", nl, [(f(!0), k(R, null, h(e.replies, (t, r) => (f(), k("div", {
6421
6600
  key: t.id,
6422
6601
  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" : ""])
6423
6602
  }, [
6424
- I("div", Uc, [I("div", Wc, [
6425
- I("span", Gc, D(_e(t) ? j(o).comments.ownedByYou : t.author_name), 1),
6426
- I("span", Kc, D(ve(t.created_at)), 1),
6427
- t.updated_at === t.created_at ? A("", !0) : (f(), k("span", qc, " (" + D(j(o).comments.edited) + ") ", 1))
6428
- ]), I("div", Jc, [_e(t) ? (f(), k("button", {
6603
+ I("div", rl, [I("div", il, [
6604
+ I("span", al, D(_e(t) ? j(o).comments.ownedByYou : t.author_name), 1),
6605
+ I("span", ol, D(ve(t.created_at)), 1),
6606
+ t.updated_at === t.created_at ? A("", !0) : (f(), k("span", sl, " (" + D(j(o).comments.edited) + ") ", 1))
6607
+ ]), I("div", cl, [_e(t) ? (f(), k("button", {
6429
6608
  key: 0,
6430
6609
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6431
6610
  title: j(o).comments.edit,
6432
6611
  onClick: (e) => le(t)
6433
- }, [V(j(vi), {
6612
+ }, [V(j(bi), {
6434
6613
  size: 11,
6435
6614
  "stroke-width": 2
6436
- })], 8, Yc)) : A("", !0), _e(t) ? (f(), k("button", {
6615
+ })], 8, ll)) : A("", !0), _e(t) ? (f(), k("button", {
6437
6616
  key: 1,
6438
6617
  class: "tpl-comment-action tpl-comment-delete tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6439
6618
  title: j(o).comments.delete,
6440
6619
  onClick: (e) => ue(t.id)
6441
- }, [V(j(Di), {
6620
+ }, [V(j(ji), {
6442
6621
  size: 11,
6443
6622
  "stroke-width": 2
6444
- })], 8, Xc)) : A("", !0)])]),
6445
- y.value === t.id ? (f(), k("div", Zc, [c(I("textarea", {
6623
+ })], 8, ul)) : A("", !0)])]),
6624
+ y.value === t.id ? (f(), k("div", dl, [c(I("textarea", {
6446
6625
  "onUpdate:modelValue": n[7] ||= (e) => x.value = e,
6447
6626
  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)]",
6448
6627
  rows: "2",
6449
6628
  onKeydown: (e) => xe(e, t.id)
6450
- }, null, 40, Qc), [[ae, x.value]]), I("div", $c, [I("button", {
6629
+ }, null, 40, fl), [[ae, x.value]]), I("div", pl, [I("button", {
6451
6630
  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)]",
6452
6631
  disabled: !x.value.trim() || j(u).isSubmitting.value,
6453
6632
  onClick: (e) => me(t.id)
6454
- }, D(j(o).comments.save), 9, el), I("button", {
6633
+ }, D(j(o).comments.save), 9, ml), I("button", {
6455
6634
  class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6456
6635
  onClick: n[8] ||= (e) => B()
6457
- }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", tl, D(t.body), 1)),
6458
- w.value === t.id ? (f(), k("div", nl, [
6459
- I("span", rl, D(j(o).comments.deleteConfirm), 1),
6636
+ }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", hl, D(t.body), 1)),
6637
+ w.value === t.id ? (f(), k("div", gl, [
6638
+ I("span", _l, D(j(o).comments.deleteConfirm), 1),
6460
6639
  I("button", {
6461
6640
  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)]",
6462
6641
  onClick: (e) => he(t.id)
6463
- }, D(j(o).comments.delete), 9, il),
6642
+ }, D(j(o).comments.delete), 9, vl),
6464
6643
  I("button", {
6465
6644
  class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6466
6645
  onClick: n[9] ||= (e) => de()
@@ -6470,78 +6649,78 @@ var cc = {
6470
6649
  _: 2
6471
6650
  }, 1024),
6472
6651
  V(ie, { name: "tpl-replies" }, {
6473
- default: b(() => [_.value === e.id ? (f(), k("div", al, [I("div", ol, [c(I("textarea", {
6652
+ default: b(() => [_.value === e.id ? (f(), k("div", yl, [I("div", bl, [c(I("textarea", {
6474
6653
  "onUpdate:modelValue": n[10] ||= (e) => v.value = e,
6475
6654
  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)]",
6476
6655
  placeholder: j(o).comments.replyPlaceholder,
6477
6656
  rows: "2",
6478
6657
  onKeydown: (t) => be(t, e.id)
6479
- }, null, 40, sl), [[ae, v.value]]), I("div", cl, [I("button", {
6658
+ }, null, 40, xl), [[ae, v.value]]), I("div", Sl, [I("button", {
6480
6659
  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)]",
6481
6660
  disabled: !v.value.trim() || j(u).isSubmitting.value,
6482
6661
  onClick: (t) => pe(e.id)
6483
- }, [V(j(Ci), {
6662
+ }, [V(j(Ti), {
6484
6663
  size: 14,
6485
6664
  "stroke-width": 2
6486
- })], 8, ll), I("button", {
6665
+ })], 8, Cl), I("button", {
6487
6666
  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)]",
6488
6667
  onClick: n[11] ||= (e) => ce()
6489
- }, [V(j(ji), {
6668
+ }, [V(j(Ii), {
6490
6669
  size: 14,
6491
6670
  "stroke-width": 2
6492
6671
  })])])])])) : A("", !0)]),
6493
6672
  _: 2
6494
6673
  }, 1024)
6495
6674
  ]))), 128))]))]),
6496
- I("div", ul, [ne.value ? (f(), k("div", dl, D(j(o).comments.saveTemplateFirst), 1)) : (f(), k("div", fl, [c(I("textarea", {
6675
+ I("div", wl, [ne.value ? (f(), k("div", Tl, D(j(o).comments.saveTemplateFirst), 1)) : (f(), k("div", El, [c(I("textarea", {
6497
6676
  ref_key: "newCommentInput",
6498
- ref: ee,
6677
+ ref: T,
6499
6678
  "onUpdate:modelValue": n[12] ||= (e) => g.value = e,
6500
6679
  class: "tpl:max-h-24 tpl:min-h-[48px] tpl:flex-1 tpl:resize-none tpl:border-none tpl:bg-transparent tpl:font-sans tpl:text-xs tpl:outline-none tpl:text-[var(--tpl-text)]",
6501
6680
  placeholder: j(o).comments.placeholder,
6502
6681
  disabled: j(u).isSubmitting.value,
6503
6682
  rows: "2",
6504
6683
  onKeydown: ye
6505
- }, null, 40, pl), [[ae, g.value]]), I("button", {
6684
+ }, null, 40, Dl), [[ae, g.value]]), I("button", {
6506
6685
  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)]",
6507
6686
  disabled: !g.value.trim() || j(u).isSubmitting.value,
6508
6687
  onClick: fe
6509
- }, [j(u).isSubmitting.value ? (f(), N(j(Jr), {
6688
+ }, [j(u).isSubmitting.value ? (f(), N(j(_i), {
6510
6689
  key: 0,
6511
6690
  class: "tpl-spinner",
6512
6691
  size: 16,
6513
6692
  "stroke-width": 2
6514
- })) : (f(), N(j(Ci), {
6693
+ })) : (f(), N(j(Ti), {
6515
6694
  key: 1,
6516
6695
  size: 16,
6517
6696
  "stroke-width": 2
6518
- }))], 8, ml)]))])
6697
+ }))], 8, Ol)]))])
6519
6698
  ])) : A("", !0)]),
6520
6699
  _: 1
6521
6700
  }));
6522
6701
  }
6523
- }), gl = /* @__PURE__ */ e({ default: () => _l }), _l = /*#__PURE__*/ Ii(hl, [["__scopeId", "data-v-d204f573"]]), vl = {
6702
+ }), Al = /* @__PURE__ */ e({ default: () => jl }), jl = /*#__PURE__*/ Vi(kl, [["__scopeId", "data-v-d204f573"]]), Ml = {
6524
6703
  key: 0,
6525
6704
  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)]"
6526
- }, yl = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, bl = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, xl = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Sl = {
6705
+ }, Nl = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Pl = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, Fl = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Il = {
6527
6706
  key: 0,
6528
6707
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6529
- }, Cl = { class: "tpl:flex tpl:w-full tpl:flex-col tpl:items-center tpl:gap-3" }, wl = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Tl = {
6708
+ }, Ll = { class: "tpl:flex tpl:w-full tpl:flex-col tpl:items-center tpl:gap-3" }, Rl = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, zl = {
6530
6709
  key: 1,
6531
6710
  class: "tpl:flex tpl:flex-col tpl:gap-4"
6532
- }, El = { class: "tpl:flex tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, Dl = {
6711
+ }, Bl = { class: "tpl:flex tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, Vl = {
6533
6712
  key: 0,
6534
6713
  class: "tpl:flex tpl:flex-col tpl:gap-2"
6535
- }, Ol = { class: "tpl:relative tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, kl = ["src", "alt"], Al = {
6714
+ }, Hl = { class: "tpl:relative tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, Ul = ["src", "alt"], Wl = {
6536
6715
  key: 1,
6537
6716
  class: "tpl:flex tpl:h-32 tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2"
6538
- }, jl = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Ml = { class: "tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Nl = { class: "tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Pl = ["accept"], Fl = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, Il = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Ll = ["placeholder"], Rl = {
6717
+ }, Gl = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Kl = { class: "tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, ql = { class: "tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Jl = ["accept"], Yl = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, Xl = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Zl = ["placeholder"], Ql = {
6539
6718
  key: 0,
6540
6719
  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)]"
6541
- }, zl = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, Bl = { class: "tpl:flex tpl:gap-2" }, Vl = {
6720
+ }, $l = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, eu = { class: "tpl:flex tpl:gap-2" }, tu = {
6542
6721
  key: 1,
6543
6722
  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)]"
6544
- }, Hl = ["disabled"], Ul = { class: "tpl:m-0 tpl:pt-1 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Wl = /*@__PURE__*/ B({
6723
+ }, nu = ["disabled"], ru = { class: "tpl:m-0 tpl:pt-1 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, iu = /*@__PURE__*/ B({
6545
6724
  __name: "DesignReferenceSidebar",
6546
6725
  props: {
6547
6726
  visible: { type: Boolean },
@@ -6549,8 +6728,8 @@ var cc = {
6549
6728
  },
6550
6729
  emits: ["close", "apply"],
6551
6730
  setup(e, { emit: t }) {
6552
- let n = e, r = t, { t: i } = Ki(), a = J(Ln, "DesignReferenceSidebar"), o = ds({
6553
- authManager: J(cr, "DesignReferenceSidebar"),
6731
+ let n = e, r = t, { t: i } = Zi(), a = J(Ln, "DesignReferenceSidebar"), o = Ts({
6732
+ authManager: J(fr, "DesignReferenceSidebar"),
6554
6733
  getTemplateId: () => a.state.template?.id ?? null,
6555
6734
  onApply: (e) => r("apply", e)
6556
6735
  }), 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);
@@ -6591,12 +6770,12 @@ var cc = {
6591
6770
  function w() {
6592
6771
  h.value = !1;
6593
6772
  }
6594
- function ee(e) {
6773
+ function T(e) {
6595
6774
  e.preventDefault(), h.value = !1;
6596
6775
  let t = e.dataTransfer?.files?.[0];
6597
6776
  t && y(t);
6598
6777
  }
6599
- function T() {
6778
+ function E() {
6600
6779
  if (!g.value) return;
6601
6780
  if (n.hasExistingBlocks && !m.value) {
6602
6781
  m.value = !0;
@@ -6606,7 +6785,7 @@ var cc = {
6606
6785
  let e = {};
6607
6786
  d.value.trim() && (e.prompt = d.value.trim()), l.value === "image" && u.value ? e.imageUpload = u.value : l.value === "pdf" && u.value && (e.pdfUpload = u.value), o.generate(e);
6608
6787
  }
6609
- function E() {
6788
+ function ee() {
6610
6789
  m.value = !1;
6611
6790
  }
6612
6791
  return H(() => n.visible, (e) => {
@@ -6621,17 +6800,17 @@ var cc = {
6621
6800
  "leave-from-class": "tpl:translate-x-0",
6622
6801
  "leave-to-class": "tpl:translate-x-full"
6623
6802
  }, {
6624
- default: b(() => [e.visible ? (f(), k("div", vl, [I("div", yl, [I("div", bl, [V(j(pi), {
6803
+ default: b(() => [e.visible ? (f(), k("div", Ml, [I("div", Nl, [I("div", Pl, [V(j(mi), {
6625
6804
  size: 13,
6626
6805
  "stroke-width": 2
6627
6806
  }), I("span", null, D(j(i).designReference.title), 1)]), I("button", {
6628
6807
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6629
6808
  onClick: n[0] ||= (e) => r("close")
6630
- }, [V(j(ji), {
6809
+ }, [V(j(Ii), {
6631
6810
  size: 14,
6632
6811
  "stroke-width": 2
6633
- })])]), I("div", xl, [j(o).isGenerating.value ? (f(), k("div", Sl, [I("div", Cl, [V(Bi), I("p", wl, D(j(i).designReference.generating), 1)])])) : (f(), k("div", Tl, [
6634
- I("div", El, [I("button", {
6812
+ })])]), I("div", Fl, [j(o).isGenerating.value ? (f(), k("div", Il, [I("div", Ll, [V(Gi), I("p", Rl, D(j(i).designReference.generating), 1)])])) : (f(), k("div", zl, [
6813
+ I("div", Bl, [I("button", {
6635
6814
  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",
6636
6815
  style: L({
6637
6816
  backgroundColor: l.value === "image" ? "var(--tpl-bg)" : "transparent",
@@ -6654,19 +6833,19 @@ var cc = {
6654
6833
  size: 12,
6655
6834
  "stroke-width": 2
6656
6835
  }), z(" " + D(j(i).designReference.uploadPdf), 1)], 4)]),
6657
- I("div", null, [u.value ? (f(), k("div", Dl, [I("div", Ol, [p.value ? (f(), k("img", {
6836
+ I("div", null, [u.value ? (f(), k("div", Vl, [I("div", Hl, [p.value ? (f(), k("img", {
6658
6837
  key: 0,
6659
6838
  src: p.value,
6660
6839
  alt: u.value.name,
6661
6840
  class: "tpl:h-auto tpl:max-h-48 tpl:w-full tpl:object-contain"
6662
- }, null, 8, kl)) : (f(), k("div", Al, [V(j(di), {
6841
+ }, null, 8, Ul)) : (f(), k("div", Wl, [V(j(di), {
6663
6842
  size: 32,
6664
6843
  "stroke-width": 1.5,
6665
6844
  class: "tpl:text-[var(--tpl-text-dim)]"
6666
- }), I("span", jl, D(u.value.name), 1)])), I("button", {
6845
+ }), I("span", Gl, D(u.value.name), 1)])), I("button", {
6667
6846
  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)]",
6668
6847
  onClick: x
6669
- }, [V(j(ji), {
6848
+ }, [V(j(Ii), {
6670
6849
  size: 12,
6671
6850
  "stroke-width": 2
6672
6851
  })])])])) : (f(), k("div", {
@@ -6679,15 +6858,15 @@ var cc = {
6679
6858
  onClick: n[3] ||= (e) => s.value?.click(),
6680
6859
  onDragover: S,
6681
6860
  onDragleave: w,
6682
- onDrop: ee
6861
+ onDrop: T
6683
6862
  }, [
6684
- V(j(ki), {
6863
+ V(j(Pi), {
6685
6864
  size: 24,
6686
6865
  "stroke-width": 1.5,
6687
6866
  class: "tpl:text-[var(--tpl-text-dim)]"
6688
6867
  }),
6689
- I("span", Ml, D(j(i).designReference.dropHint), 1),
6690
- I("span", Nl, D(l.value === "image" ? j(i).designReference.acceptedImages : j(i).designReference.acceptedPdf), 1)
6868
+ I("span", Kl, D(j(i).designReference.dropHint), 1),
6869
+ I("span", ql, D(l.value === "image" ? j(i).designReference.acceptedImages : j(i).designReference.acceptedPdf), 1)
6691
6870
  ], 36)), I("input", {
6692
6871
  ref_key: "fileInput",
6693
6872
  ref: s,
@@ -6695,22 +6874,22 @@ var cc = {
6695
6874
  class: "tpl:hidden",
6696
6875
  accept: l.value === "image" ? "image/png,image/jpeg,image/webp" : "application/pdf",
6697
6876
  onChange: v
6698
- }, null, 40, Pl)]),
6699
- I("div", Fl, [I("label", Il, D(j(i).designReference.promptLabel), 1), c(I("textarea", {
6877
+ }, null, 40, Jl)]),
6878
+ I("div", Yl, [I("label", Xl, D(j(i).designReference.promptLabel), 1), c(I("textarea", {
6700
6879
  "onUpdate:modelValue": n[4] ||= (e) => d.value = e,
6701
6880
  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"]]),
6702
6881
  placeholder: j(i).designReference.promptPlaceholder,
6703
6882
  rows: "3"
6704
- }, null, 8, Ll), [[ae, d.value]])]),
6705
- m.value ? (f(), k("div", Rl, [I("p", zl, D(j(i).designReference.replaceWarning), 1), I("div", Bl, [I("button", {
6883
+ }, null, 8, Zl), [[ae, d.value]])]),
6884
+ m.value ? (f(), k("div", Ql, [I("p", $l, D(j(i).designReference.replaceWarning), 1), I("div", eu, [I("button", {
6706
6885
  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)]",
6707
6886
  style: { "background-color": "transparent" },
6708
- onClick: E
6887
+ onClick: ee
6709
6888
  }, D(j(i).designReference.replaceCancel), 1), I("button", {
6710
6889
  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)]",
6711
- onClick: T
6890
+ onClick: E
6712
6891
  }, D(j(i).designReference.replaceConfirm), 1)])])) : A("", !0),
6713
- j(o).error.value ? (f(), k("div", Vl, [V(j(Gr), {
6892
+ j(o).error.value ? (f(), k("div", tu, [V(j(ri), {
6714
6893
  size: 14,
6715
6894
  "stroke-width": 2,
6716
6895
  class: "tpl:mt-0.5 tpl:shrink-0"
@@ -6719,36 +6898,36 @@ var cc = {
6719
6898
  key: 2,
6720
6899
  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)]",
6721
6900
  disabled: !g.value,
6722
- onClick: T
6723
- }, [V(j(pi), {
6901
+ onClick: E
6902
+ }, [V(j(mi), {
6724
6903
  size: 16,
6725
6904
  "stroke-width": 2
6726
- }), z(" " + D(j(i).designReference.generate), 1)], 8, Hl)),
6727
- I("p", Ul, D(j(i).aiMenu.disclaimer), 1)
6905
+ }), z(" " + D(j(i).designReference.generate), 1)], 8, nu)),
6906
+ I("p", ru, D(j(i).aiMenu.disclaimer), 1)
6728
6907
  ]))])])) : A("", !0)]),
6729
6908
  _: 1
6730
6909
  }));
6731
6910
  }
6732
- }), Gl = /* @__PURE__ */ e({ default: () => Kl }), Kl = /*#__PURE__*/ Ii(Wl, [["__scopeId", "data-v-bdbf8d0d"]]), ql = ["disabled", "title"], Jl = ["title"], Yl = {
6911
+ }), au = /* @__PURE__ */ e({ default: () => ou }), ou = /*#__PURE__*/ Vi(iu, [["__scopeId", "data-v-bdbf8d0d"]]), su = ["disabled", "title"], cu = ["title"], lu = {
6733
6912
  key: 0,
6734
6913
  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)]",
6735
6914
  style: {
6736
6915
  "backdrop-filter": "blur(8px)",
6737
6916
  "-webkit-backdrop-filter": "blur(8px)"
6738
6917
  }
6739
- }, Xl = { 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)]" }, Zl = {
6918
+ }, uu = { 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)]" }, du = {
6740
6919
  key: 0,
6741
6920
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:py-8"
6742
- }, Ql = {
6921
+ }, fu = {
6743
6922
  key: 1,
6744
6923
  class: "tpl:px-3 tpl:py-6 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
6745
- }, $l = {
6924
+ }, pu = {
6746
6925
  key: 2,
6747
6926
  class: "tpl:max-h-64 tpl:overflow-y-auto"
6748
- }, eu = ["disabled", "onClick"], tu = { class: "tpl:flex tpl:flex-col tpl:gap-0.5" }, nu = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, ru = {
6927
+ }, mu = ["disabled", "onClick"], hu = { class: "tpl:flex tpl:flex-col tpl:gap-0.5" }, gu = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, _u = {
6749
6928
  key: 0,
6750
6929
  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)]"
6751
- }, iu = ["disabled", "title"], au = /*@__PURE__*/ B({
6930
+ }, vu = ["disabled", "title"], yu = /*@__PURE__*/ B({
6752
6931
  __name: "SnapshotHistory",
6753
6932
  props: {
6754
6933
  snapshots: {},
@@ -6757,7 +6936,7 @@ var cc = {
6757
6936
  },
6758
6937
  emits: ["load", "navigate"],
6759
6938
  setup(e, { emit: t }) {
6760
- let n = e, r = t, { format: i } = Y(), { t: a } = Ki(), o = C(!1), s = C(null), c = C(-1);
6939
+ let n = e, r = t, { format: i } = Y(), { t: a } = Zi(), o = C(!1), s = C(null), c = C(-1);
6761
6940
  H(() => n.snapshots.length, () => {
6762
6941
  c.value = -1;
6763
6942
  });
@@ -6776,7 +6955,7 @@ var cc = {
6776
6955
  t !== -1 && (c.value = t, r("navigate", n.snapshots[t])), o.value = !1;
6777
6956
  }
6778
6957
  function _(e) {
6779
- let t = sc(e, a.snapshotHistory, i, 7);
6958
+ let t = xc(e, a.snapshotHistory, i, 7);
6780
6959
  return t === null ? new Date(e).toLocaleDateString(void 0, {
6781
6960
  month: "short",
6782
6961
  day: "numeric",
@@ -6796,10 +6975,10 @@ var cc = {
6796
6975
  disabled: !u.value,
6797
6976
  title: j(a).snapshotHistory.olderSnapshot,
6798
6977
  onClick: M(p, ["stop"])
6799
- }, [V(j(ni), {
6978
+ }, [V(j(ei), {
6800
6979
  size: 14,
6801
6980
  "stroke-width": 2
6802
- })], 8, ql),
6981
+ })], 8, su),
6803
6982
  I("button", {
6804
6983
  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)]",
6805
6984
  title: j(a).snapshotHistory.tooltip,
@@ -6807,23 +6986,23 @@ var cc = {
6807
6986
  }, [V(j(ai), {
6808
6987
  size: 16,
6809
6988
  "stroke-width": 1.5
6810
- }), V(j(ti), {
6989
+ }), V(j($r), {
6811
6990
  class: F(["tpl:transition-transform tpl:duration-150", { "tpl:rotate-180": o.value }]),
6812
6991
  size: 10,
6813
6992
  "stroke-width": 2
6814
- }, null, 8, ["class"])], 8, Jl),
6993
+ }, null, 8, ["class"])], 8, cu),
6815
6994
  V(ie, { name: "tpl-dropdown" }, {
6816
- default: b(() => [o.value ? (f(), k("div", Yl, [I("div", Xl, D(j(a).snapshotHistory.dropdownTitle), 1), e.isLoading ? (f(), k("div", Zl, [V(j(Jr), {
6995
+ default: b(() => [o.value ? (f(), k("div", lu, [I("div", uu, D(j(a).snapshotHistory.dropdownTitle), 1), e.isLoading ? (f(), k("div", du, [V(j(_i), {
6817
6996
  class: "tpl:animate-spin tpl:text-[var(--tpl-primary)]",
6818
6997
  size: 20,
6819
6998
  "stroke-width": 2
6820
- })])) : e.snapshots.length === 0 ? (f(), k("div", Ql, D(j(a).snapshotHistory.noSnapshots), 1)) : (f(), k("div", $l, [(f(!0), k(R, null, h(e.snapshots, (t) => (f(), k("button", {
6999
+ })])) : e.snapshots.length === 0 ? (f(), k("div", fu, D(j(a).snapshotHistory.noSnapshots), 1)) : (f(), k("div", pu, [(f(!0), k(R, null, h(e.snapshots, (t) => (f(), k("button", {
6821
7000
  key: t.id,
6822
7001
  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)]",
6823
7002
  style: { "background-color": "transparent" },
6824
7003
  disabled: e.isRestoring,
6825
7004
  onClick: (e) => g(t.id)
6826
- }, [I("div", tu, [I("div", nu, [I("span", null, D(_(t.created_at)), 1), t.is_autosave ? (f(), k("span", ru, D(j(a).snapshotHistory.auto), 1)) : A("", !0)])])], 8, eu))), 128))]))])) : A("", !0)]),
7005
+ }, [I("div", hu, [I("div", gu, [I("span", null, D(_(t.created_at)), 1), t.is_autosave ? (f(), k("span", _u, D(j(a).snapshotHistory.auto), 1)) : A("", !0)])])], 8, mu))), 128))]))])) : A("", !0)]),
6827
7006
  _: 1
6828
7007
  }),
6829
7008
  I("button", {
@@ -6831,74 +7010,74 @@ var cc = {
6831
7010
  disabled: !l.value,
6832
7011
  title: j(a).snapshotHistory.newerSnapshot,
6833
7012
  onClick: M(d, ["stop"])
6834
- }, [V(j(ri), {
7013
+ }, [V(j(ti), {
6835
7014
  size: 14,
6836
7015
  "stroke-width": 2
6837
- })], 8, iu)
7016
+ })], 8, vu)
6838
7017
  ], 512));
6839
7018
  }
6840
- }), ou = /* @__PURE__ */ e({ default: () => su }), su = au;
7019
+ }), bu = /* @__PURE__ */ e({ default: () => xu }), xu = yu;
6841
7020
  //#endregion
6842
7021
  //#region src/cloud/utils/scoringStyles.ts
6843
- function cu(e) {
7022
+ function Su(e) {
6844
7023
  return e >= 80 ? "var(--tpl-success)" : e >= 60 ? "var(--tpl-warning)" : "var(--tpl-danger)";
6845
7024
  }
6846
- function lu(e) {
7025
+ function Cu(e) {
6847
7026
  return e >= 80 ? "var(--tpl-success-light)" : e >= 60 ? "var(--tpl-warning-light)" : "var(--tpl-danger-light)";
6848
7027
  }
6849
- function uu(e) {
7028
+ function wu(e) {
6850
7029
  return e === "high" ? "var(--tpl-danger)" : e === "medium" ? "var(--tpl-warning)" : "var(--tpl-text-muted)";
6851
7030
  }
6852
- function du(e) {
7031
+ function Tu(e) {
6853
7032
  return e === "high" ? "var(--tpl-danger-light)" : e === "medium" ? "var(--tpl-warning-light)" : "var(--tpl-bg-hover)";
6854
7033
  }
6855
7034
  //#endregion
6856
7035
  //#region src/cloud/components/TemplateScoringPanel.vue?vue&type=script&setup=true&lang.ts
6857
- var fu = {
7036
+ var Eu = {
6858
7037
  key: 0,
6859
7038
  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)]"
6860
- }, pu = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, mu = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, hu = { class: "tpl:flex tpl:items-center tpl:gap-1" }, gu = ["title"], _u = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, vu = {
7039
+ }, Du = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Ou = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, ku = { class: "tpl:flex tpl:items-center tpl:gap-1" }, Au = ["title"], ju = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Mu = {
6861
7040
  key: 0,
6862
7041
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6863
- }, yu = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, bu = {
7042
+ }, Nu = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Pu = {
6864
7043
  key: 1,
6865
7044
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6866
- }, xu = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Su = {
7045
+ }, Fu = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Iu = {
6867
7046
  key: 2,
6868
7047
  class: "tpl:flex tpl:flex-col tpl:gap-4"
6869
- }, Cu = { class: "tpl:text-xs tpl:font-medium tpl:uppercase tpl:tracking-wider tpl:text-[var(--tpl-text-muted)]" }, wu = {
7048
+ }, Lu = { class: "tpl:text-xs tpl:font-medium tpl:uppercase tpl:tracking-wider tpl:text-[var(--tpl-text-muted)]" }, Ru = {
6870
7049
  key: 0,
6871
7050
  class: "tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
6872
- }, Tu = {
7051
+ }, zu = {
6873
7052
  key: 0,
6874
7053
  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)]"
6875
- }, Eu = ["onClick"], Du = { class: "tpl:flex-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, Ou = {
7054
+ }, Bu = ["onClick"], Vu = { class: "tpl:flex-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, Hu = {
6876
7055
  key: 0,
6877
7056
  class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]"
6878
- }, ku = {
7057
+ }, Uu = {
6879
7058
  key: 0,
6880
7059
  class: "tpl:border-t tpl:border-[var(--tpl-border)]"
6881
- }, Au = {
7060
+ }, Wu = {
6882
7061
  key: 0,
6883
7062
  class: "tpl:px-3 tpl:py-3 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
6884
- }, ju = { class: "tpl:flex tpl:items-start tpl:gap-2" }, Mu = { class: "tpl:flex-1 tpl:min-w-0" }, Nu = { class: "tpl:flex tpl:items-start tpl:gap-1.5" }, Pu = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, Fu = {
7063
+ }, Gu = { class: "tpl:flex tpl:items-start tpl:gap-2" }, Ku = { class: "tpl:flex-1 tpl:min-w-0" }, qu = { class: "tpl:flex tpl:items-start tpl:gap-1.5" }, Ju = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, Yu = {
6885
7064
  key: 0,
6886
7065
  class: "tpl:mt-1 tpl:text-[11px] tpl:leading-snug tpl:text-[var(--tpl-text-dim)]"
6887
- }, Iu = {
7066
+ }, Xu = {
6888
7067
  key: 1,
6889
7068
  class: "tpl:mt-2 tpl:flex tpl:justify-center"
6890
- }, Lu = ["disabled", "onClick"], Ru = {
7069
+ }, Zu = ["disabled", "onClick"], Qu = {
6891
7070
  key: 0,
6892
7071
  class: "tpl:mt-1.5 tpl:text-[11px] tpl:text-[var(--tpl-danger)]"
6893
- }, zu = {
7072
+ }, $u = {
6894
7073
  key: 3,
6895
7074
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6896
- }, Bu = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Vu = { 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)]" }, Hu = /*@__PURE__*/ B({
7075
+ }, ed = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, td = { 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)]" }, nd = /*@__PURE__*/ B({
6897
7076
  __name: "TemplateScoringPanel",
6898
7077
  props: { visible: { type: Boolean } },
6899
7078
  emits: ["close"],
6900
7079
  setup(e, { emit: t }) {
6901
- let n = e, r = t, { t: i } = Ki(), a = J(Ln, "TemplateScoringPanel"), o = J(fr, "TemplateScoringPanel"), s = v(Yn, []), c = C({
7080
+ let n = e, r = t, { t: i } = Zi(), a = J(Ln, "TemplateScoringPanel"), o = J(gr, "TemplateScoringPanel"), s = v(Yn, []), c = C({
6902
7081
  spam: !0,
6903
7082
  readability: !0,
6904
7083
  accessibility: !0,
@@ -6913,10 +7092,10 @@ var fu = {
6913
7092
  "accessibility",
6914
7093
  "bestPractices"
6915
7094
  ], p = {
6916
- spam: Yr,
7095
+ spam: Oi,
6917
7096
  readability: li,
6918
- accessibility: Xr,
6919
- bestPractices: Mi
7097
+ accessibility: ki,
7098
+ bestPractices: Li
6920
7099
  };
6921
7100
  function m() {
6922
7101
  o.score(a.content.value, s);
@@ -6944,50 +7123,50 @@ var fu = {
6944
7123
  "leave-from-class": "tpl:translate-x-0",
6945
7124
  "leave-to-class": "tpl:translate-x-full"
6946
7125
  }, {
6947
- default: b(() => [e.visible ? (f(), k("div", fu, [I("div", pu, [I("div", mu, [V(j(Ti), {
7126
+ default: b(() => [e.visible ? (f(), k("div", Eu, [I("div", Du, [I("div", Ou, [V(j(Di), {
6948
7127
  size: 13,
6949
7128
  "stroke-width": 2
6950
- }), I("span", null, D(j(i).scoring.title), 1)]), I("div", hu, [j(o).scoringResult.value && !j(o).isScoring.value ? (f(), k("button", {
7129
+ }), I("span", null, D(j(i).scoring.title), 1)]), I("div", ku, [j(o).scoringResult.value && !j(o).isScoring.value ? (f(), k("button", {
6951
7130
  key: 0,
6952
7131
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6953
7132
  title: j(i).scoring.rescore,
6954
7133
  onClick: n[0] ||= (e) => m()
6955
- }, [V(j(xi), {
7134
+ }, [V(j(Ci), {
6956
7135
  size: 14,
6957
7136
  "stroke-width": 2
6958
- })], 8, gu)) : A("", !0), I("button", {
7137
+ })], 8, Au)) : A("", !0), I("button", {
6959
7138
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6960
7139
  onClick: n[1] ||= (e) => r("close")
6961
- }, [V(j(ji), {
7140
+ }, [V(j(Ii), {
6962
7141
  size: 14,
6963
7142
  "stroke-width": 2
6964
- })])])]), I("div", _u, [j(o).isScoring.value ? (f(), k("div", vu, [I("p", yu, D(j(i).scoring.scoring), 1), V(Bi, { class: "tpl:w-3/4" })])) : j(o).error.value && !j(o).scoringResult.value ? (f(), k("div", bu, [
6965
- V(j(Gr), {
7143
+ })])])]), I("div", ju, [j(o).isScoring.value ? (f(), k("div", Mu, [I("p", Nu, D(j(i).scoring.scoring), 1), V(Gi, { class: "tpl:w-3/4" })])) : j(o).error.value && !j(o).scoringResult.value ? (f(), k("div", Pu, [
7144
+ V(j(ri), {
6966
7145
  size: 32,
6967
7146
  "stroke-width": 1.5,
6968
7147
  class: "tpl:text-[var(--tpl-danger)]"
6969
7148
  }),
6970
- I("p", xu, D(j(i).scoring.error), 1),
7149
+ I("p", Fu, D(j(i).scoring.error), 1),
6971
7150
  I("button", {
6972
7151
  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)]",
6973
7152
  onClick: n[2] ||= (e) => m()
6974
- }, [V(j(xi), {
7153
+ }, [V(j(Ci), {
6975
7154
  size: 12,
6976
7155
  "stroke-width": 2
6977
7156
  }), z(" " + D(j(i).scoring.rescore), 1)])
6978
- ])) : j(o).scoringResult.value ? (f(), k("div", Su, [
7157
+ ])) : j(o).scoringResult.value ? (f(), k("div", Iu, [
6979
7158
  I("div", {
6980
7159
  class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:p-5",
6981
- style: L({ backgroundColor: j(lu)(j(o).scoringResult.value.score) })
7160
+ style: L({ backgroundColor: j(Cu)(j(o).scoringResult.value.score) })
6982
7161
  }, [
6983
7162
  I("span", {
6984
7163
  class: "tpl:text-4xl tpl:font-bold tpl:tabular-nums",
6985
- style: L({ color: j(cu)(j(o).scoringResult.value.score) })
7164
+ style: L({ color: j(Su)(j(o).scoringResult.value.score) })
6986
7165
  }, D(j(o).scoringResult.value.score), 5),
6987
- I("span", Cu, D(j(i).scoring.overallScore), 1),
6988
- _() > 0 ? (f(), k("span", wu, D(_()) + " " + D(j(i).scoring.findings), 1)) : A("", !0)
7166
+ I("span", Lu, D(j(i).scoring.overallScore), 1),
7167
+ _() > 0 ? (f(), k("span", Ru, D(_()) + " " + D(j(i).scoring.findings), 1)) : A("", !0)
6989
7168
  ], 4),
6990
- j(o).fixError.value ? (f(), k("div", Tu, [V(j(Gr), {
7169
+ j(o).fixError.value ? (f(), k("div", zu, [V(j(ri), {
6991
7170
  size: 14,
6992
7171
  "stroke-width": 2,
6993
7172
  class: "tpl:mt-0.5 tpl:shrink-0"
@@ -7002,74 +7181,74 @@ var fu = {
7002
7181
  (f(), N(d(p[e]), {
7003
7182
  size: 14,
7004
7183
  "stroke-width": 2,
7005
- style: L({ color: j(cu)(j(o).scoringResult.value.categories[e].score) })
7184
+ style: L({ color: j(Su)(j(o).scoringResult.value.categories[e].score) })
7006
7185
  }, null, 8, ["style"])),
7007
- I("span", Du, D(j(i).scoring.categories[e]), 1),
7186
+ I("span", Vu, D(j(i).scoring.categories[e]), 1),
7008
7187
  I("span", {
7009
7188
  class: "tpl:rounded-full tpl:px-2 tpl:py-0.5 tpl:text-xs tpl:font-semibold tpl:tabular-nums",
7010
7189
  style: L({
7011
- color: j(cu)(j(o).scoringResult.value.categories[e].score),
7012
- backgroundColor: j(lu)(j(o).scoringResult.value.categories[e].score)
7190
+ color: j(Su)(j(o).scoringResult.value.categories[e].score),
7191
+ backgroundColor: j(Cu)(j(o).scoringResult.value.categories[e].score)
7013
7192
  })
7014
7193
  }, D(j(o).scoringResult.value.categories[e].score), 5),
7015
- j(o).scoringResult.value.categories[e].findings.length > 0 ? (f(), k("span", Ou, D(j(o).scoringResult.value.categories[e].findings.length), 1)) : A("", !0),
7016
- V(j(ti), {
7194
+ j(o).scoringResult.value.categories[e].findings.length > 0 ? (f(), k("span", Hu, D(j(o).scoringResult.value.categories[e].findings.length), 1)) : A("", !0),
7195
+ V(j($r), {
7017
7196
  size: 12,
7018
7197
  "stroke-width": 2,
7019
7198
  class: F(["tpl:transition-transform tpl:duration-200 tpl:text-[var(--tpl-text-dim)]", c.value[e] ? "tpl:rotate-0" : "tpl:-rotate-90"])
7020
7199
  }, null, 8, ["class"])
7021
- ], 8, Eu), c.value[e] ? (f(), k("div", ku, [j(o).scoringResult.value.categories[e].findings.length === 0 ? (f(), k("div", Au, 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", {
7200
+ ], 8, Bu), c.value[e] ? (f(), k("div", Uu, [j(o).scoringResult.value.categories[e].findings.length === 0 ? (f(), k("div", Wu, 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
7201
  key: e.id,
7023
7202
  class: "tpl:border-t tpl:px-3 tpl:py-2.5 first:tpl:border-t-0 tpl:border-[var(--tpl-border-light)]"
7024
- }, [I("div", ju, [(f(), N(d(j(e.severity === "high" ? Gr : e.severity === "medium" ? Zr : hi)), {
7203
+ }, [I("div", Gu, [(f(), N(d(j(e.severity === "high" ? ri : e.severity === "medium" ? Mi : gi)), {
7025
7204
  size: 13,
7026
7205
  "stroke-width": 2,
7027
7206
  class: "tpl:mt-0.5 tpl:shrink-0",
7028
- style: L({ color: j(uu)(e.severity) })
7029
- }, null, 8, ["style"])), I("div", Mu, [
7030
- I("div", Nu, [I("span", {
7207
+ style: L({ color: j(wu)(e.severity) })
7208
+ }, null, 8, ["style"])), I("div", Ku, [
7209
+ I("div", qu, [I("span", {
7031
7210
  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",
7032
7211
  style: L({
7033
- color: j(uu)(e.severity),
7034
- backgroundColor: j(du)(e.severity)
7212
+ color: j(wu)(e.severity),
7213
+ backgroundColor: j(Tu)(e.severity)
7035
7214
  })
7036
- }, D(j(i).scoring.severity[e.severity]), 5), I("span", Pu, D(e.message), 1)]),
7037
- e.suggestion ? (f(), k("p", Fu, D(e.suggestion), 1)) : A("", !0),
7038
- e.blockId ? (f(), k("div", Iu, [I("button", {
7215
+ }, D(j(i).scoring.severity[e.severity]), 5), I("span", Ju, D(e.message), 1)]),
7216
+ e.suggestion ? (f(), k("p", Yu, D(e.suggestion), 1)) : A("", !0),
7217
+ e.blockId ? (f(), k("div", Xu, [I("button", {
7039
7218
  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)]",
7040
7219
  style: { "background-color": "transparent" },
7041
7220
  disabled: j(o).fixingFindingId.value !== null,
7042
7221
  onClick: (t) => g(e)
7043
- }, [j(o).fixingFindingId.value === e.id ? (f(), N(j(Jr), {
7222
+ }, [j(o).fixingFindingId.value === e.id ? (f(), N(j(_i), {
7044
7223
  key: 0,
7045
7224
  class: "tpl-spinner",
7046
7225
  size: 11,
7047
7226
  "stroke-width": 2
7048
- })) : (f(), N(j(Xr), {
7227
+ })) : (f(), N(j(ki), {
7049
7228
  key: 1,
7050
7229
  size: 11,
7051
7230
  "stroke-width": 2
7052
- })), z(" " + D(j(o).fixingFindingId.value === e.id ? j(i).scoring.fixing : j(i).scoring.fix), 1)], 8, Lu), j(o).fixError.value ? (f(), k("p", Ru, D(j(o).fixError.value), 1)) : A("", !0)])) : A("", !0)
7231
+ })), z(" " + D(j(o).fixingFindingId.value === e.id ? j(i).scoring.fixing : j(i).scoring.fix), 1)], 8, Zu), j(o).fixError.value ? (f(), k("p", Qu, D(j(o).fixError.value), 1)) : A("", !0)])) : A("", !0)
7053
7232
  ])])]))), 128))])) : A("", !0)])), 64))
7054
- ])) : (f(), k("div", zu, [V(j(Ti), {
7233
+ ])) : (f(), k("div", $u, [V(j(Di), {
7055
7234
  size: 32,
7056
7235
  "stroke-width": 1.5,
7057
7236
  class: "tpl:text-[var(--tpl-text-dim)]"
7058
- }), I("p", Bu, D(j(i).scoring.emptyState), 1)])), I("p", Vu, D(j(i).aiMenu.disclaimer), 1)])])) : A("", !0)]),
7237
+ }), I("p", ed, D(j(i).scoring.emptyState), 1)])), I("p", td, D(j(i).aiMenu.disclaimer), 1)])])) : A("", !0)]),
7059
7238
  _: 1
7060
7239
  }));
7061
7240
  }
7062
- }), Uu = /* @__PURE__ */ e({ default: () => Wu }), Wu = /*#__PURE__*/ Ii(Hu, [["__scopeId", "data-v-3a059e8d"]]), Gu = ["aria-busy"], Ku = {
7241
+ }), rd = /* @__PURE__ */ e({ default: () => id }), id = /*#__PURE__*/ Vi(nd, [["__scopeId", "data-v-c23c73d4"]]), ad = ["aria-busy"], od = {
7063
7242
  id: "tpl-test-email-title",
7064
7243
  class: "tpl:mb-4 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
7065
- }, qu = { class: "tpl:mb-3" }, Ju = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Yu = ["value"], Xu = ["disabled"], Zu = ["value"], Qu = {
7244
+ }, sd = { class: "tpl:mb-3" }, cd = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, ld = ["value"], ud = ["disabled"], dd = ["value"], fd = {
7066
7245
  key: 0,
7067
7246
  role: "alert",
7068
7247
  class: "tpl:mb-3 tpl:text-xs tpl:text-[var(--tpl-danger)]"
7069
- }, $u = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, ed = ["disabled"], td = ["disabled"], nd = {
7248
+ }, pd = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, md = ["disabled"], hd = ["disabled"], gd = {
7070
7249
  key: 0,
7071
7250
  class: "tpl:flex tpl:items-center tpl:gap-1.5"
7072
- }, rd = { key: 1 }, id = /*@__PURE__*/ B({
7251
+ }, _d = { key: 1 }, vd = /*@__PURE__*/ B({
7073
7252
  __name: "TestEmailModal",
7074
7253
  props: {
7075
7254
  visible: { type: Boolean },
@@ -7079,7 +7258,7 @@ var fu = {
7079
7258
  },
7080
7259
  emits: ["send", "close"],
7081
7260
  setup(e, { emit: t }) {
7082
- let n = e, r = t, { t: i } = Ki(), a = C("");
7261
+ let n = e, r = t, { t: i } = Zi(), a = C("");
7083
7262
  H(() => n.visible, (e) => {
7084
7263
  e && (a.value = n.allowedEmails[0] ?? "");
7085
7264
  });
@@ -7092,7 +7271,7 @@ var fu = {
7092
7271
  function l(e) {
7093
7272
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), o()), e.key === "Escape" && s();
7094
7273
  }
7095
- return (t, n) => (f(), N(Ko, {
7274
+ return (t, n) => (f(), N(os, {
7096
7275
  visible: e.visible,
7097
7276
  onClose: s,
7098
7277
  onKeydown: l
@@ -7108,14 +7287,14 @@ var fu = {
7108
7287
  "box-shadow": "var(--tpl-shadow-xl)"
7109
7288
  }
7110
7289
  }, [
7111
- I("h3", Ku, D(j(i).testEmail.title), 1),
7112
- I("div", qu, [I("label", Ju, D(j(i).testEmail.recipientLabel), 1), e.allowedEmails.length === 1 ? (f(), k("input", {
7290
+ I("h3", od, D(j(i).testEmail.title), 1),
7291
+ I("div", sd, [I("label", cd, D(j(i).testEmail.recipientLabel), 1), e.allowedEmails.length === 1 ? (f(), k("input", {
7113
7292
  key: 0,
7114
7293
  type: "text",
7115
7294
  value: a.value,
7116
7295
  disabled: "",
7117
7296
  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)]"
7118
- }, null, 8, Yu)) : c((f(), k("select", {
7297
+ }, null, 8, ld)) : c((f(), k("select", {
7119
7298
  key: 1,
7120
7299
  "onUpdate:modelValue": n[0] ||= (e) => a.value = e,
7121
7300
  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)]",
@@ -7123,29 +7302,29 @@ var fu = {
7123
7302
  }, [(f(!0), k(R, null, h(e.allowedEmails, (e) => (f(), k("option", {
7124
7303
  key: e,
7125
7304
  value: e
7126
- }, D(e), 9, Zu))), 128))], 8, Xu)), [[w, a.value]])]),
7127
- e.error ? (f(), k("p", Qu, D(e.error), 1)) : A("", !0),
7128
- I("div", $u, [I("button", {
7305
+ }, D(e), 9, dd))), 128))], 8, ud)), [[w, a.value]])]),
7306
+ e.error ? (f(), k("p", fd, D(e.error), 1)) : A("", !0),
7307
+ I("div", pd, [I("button", {
7129
7308
  type: "button",
7130
7309
  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 }]),
7131
7310
  disabled: e.isSending,
7132
7311
  onClick: s
7133
- }, D(j(i).testEmail.cancel), 11, ed), I("button", {
7312
+ }, D(j(i).testEmail.cancel), 11, md), I("button", {
7134
7313
  type: "button",
7135
7314
  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)]",
7136
7315
  disabled: !a.value || e.isSending,
7137
7316
  onClick: o
7138
- }, [e.isSending ? (f(), k("span", nd, [V(j(Jr), {
7317
+ }, [e.isSending ? (f(), k("span", gd, [V(j(_i), {
7139
7318
  class: "tpl:animate-spin",
7140
7319
  size: 12,
7141
7320
  "stroke-width": 2
7142
- }), z(" " + D(j(i).testEmail.sending), 1)])) : (f(), k("span", rd, D(j(i).testEmail.send), 1))], 8, td)])
7143
- ], 8, Gu)]),
7321
+ }), z(" " + D(j(i).testEmail.sending), 1)])) : (f(), k("span", _d, D(j(i).testEmail.send), 1))], 8, hd)])
7322
+ ], 8, ad)]),
7144
7323
  _: 1
7145
7324
  }, 8, ["visible"]));
7146
7325
  }
7147
- }), ad = /* @__PURE__ */ e({ default: () => od }), od = id;
7326
+ }), yd = /* @__PURE__ */ e({ default: () => bd }), bd = vd;
7148
7327
  //#endregion
7149
- export { qi as $, qn as $t, Uo as A, De as An, Gr as At, Ga as B, ge as Bn, Gn as Bt, es as C, ut as Cn, ai as Ct, Jo as D, W as Dn, Zr as Dt, qo as E, st as En, ei as Et, ho as F, _e as Fn, Y as Ft, ya as G, ue as Gn, Kn as Gt, Fa as H, pe as Hn, pr as Ht, fo as I, he as In, lr as It, ra as J, Ln as Jt, ma as K, Jn as Kt, so as L, Se as Ln, nr as Lt, jo as M, we as Mn, Fr as Mt, To as N, ve as Nn, wr as Nt, Ko as O, We as On, Xr as Ot, So as P, Te as Pn, _r as Pt, Ji as Q, er as Qt, ao as R, Ce as Rn, cr as Rt, ts as S, bt as Sn, oi as St, Z as T, ct as Tn, ti as Tt, ja as U, de as Un, ur as Ut, Wa as V, xe as Vn, rr as Vt, ba as W, fe as Wn, Bn as Wt, $i as X, $n as Xt, ta as Y, Vn as Yt, Yi as Z, Xn as Zt, ps as _, Et as _n, mi as _t, gl as a, J as an, ji as at, ls as b, xt as bn, ci as bt, As as c, Tn as cn, Ei as ct, Cs as d, On as dn, Ci as dt, dr as en, Gi as et, Ss as f, rn as fn, xi as ft, vs as g, Ft as gn, hi as gt, ys as h, cn as hn, gi as ht, Gl as i, Un as in, Fi as it, Vo as j, be as jn, X as jt, Wo as k, ye as kn, Jr as kt, Ts as l, q as ln, Ti as lt, bs as m, sn as mn, _i as mt, Uu as n, ar as nn, Ui as nt, nc as o, gn as on, ki as ot, xs as p, nn as pn, vi as pt, fa as q, tr as qt, ou as r, Hn as rn, Ii as rt, js as s, wn as sn, Di as st, ad as t, fr as tn, Ki as tt, ws as u, jn as un, wi as ut, fs as v, dt as vn, pi as vt, $ as w, lt as wn, ri as wt, as as x, _t as xn, si as xt, us as y, yt as yn, li as yt, Ka as z, Ee as zn, Wn as zt };
7328
+ export { ea as $, $n as $t, rs as A, W as An, ti as At, ro as B, Se as Bn, fr as Bt, ms as C, xt as Cn, mi as Ct, cs as D, lt as Dn, oi as Dt, ss as E, ut as En, si as Et, ko as F, we as Fn, kr as Ft, ka as G, pe as Gn, mr as Gt, qa as H, Ee as Hn, Gn as Ht, Eo as I, ve as In, Sr as It, xa as J, ue as Jn, Jn as Jt, Oa as K, de as Kn, Bn as Kt, xo as L, Te as Ln, Y as Lt, Go as M, ye as Mn, Qr as Mt, zo as N, De as Nn, X as Nt, os as O, ct as On, ai as Ot, Io as P, be as Pn, Br as Pt, ia as Q, nr as Qt, yo as R, _e as Rn, pr as Rt, hs as S, yt as Sn, hi as St, Z as T, bt as Tn, ci as Tt, Ua as U, ge as Un, sr as Ut, no as V, Ce as Vn, Wn as Vt, ja as W, xe as Wn, _r as Wt, ua as X, Ln as Xt, fa as Y, ar as Yt, aa as Z, Vn as Zt, Ds as _, sn as _n, bi as _t, Al as a, lr as an, Vi as at, Cs as b, Et as bn, _i as bt, Ws as c, J as cn, Pi as ct, Ls as d, Tn as dn, Ai as dt, Xn as en, $i as et, Is as f, q as fn, ki as ft, Ms as g, nn as gn, Ci as gt, Ns as h, rn as hn, Ti as ht, au as i, gr as in, Ji as it, ts as j, We as jn, $r as jt, is as k, st as kn, ri as kt, zs as l, gn as ln, Mi as lt, Ps as m, On as mn, Ei as mt, rd as n, qn as nn, Xi as nt, gc as o, Hn as on, Bi as ot, Fs as p, jn as pn, Di as pt, Ca as q, fe as qn, Kn as qt, bu as r, hr as rn, Zi as rt, Gs as s, Un as sn, Ii as st, yd as t, ir as tn, Qi as tt, Rs as u, wn as un, ji as ut, Es as v, cn as vn, yi as vt, $ as w, _t as wn, li as wt, ys as x, dt as xn, gi as xt, ws as y, Ft as yn, vi as yt, io as z, he as zn, or as zt };
7150
7329
 
7151
- //# sourceMappingURL=features-DxWz_Enw.js.map
7330
+ //# sourceMappingURL=features-CkTMVylx.js.map