@templatical/editor 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/dist/{AiChatSidebar-B0-U5-sb.js → AiChatSidebar-J8iO_sX7.js} +14 -14
  2. package/dist/{AiFeatureMenu-DxDwLS8B.js → AiFeatureMenu-F2diEDgV.js} +10 -10
  3. package/dist/{BlockIssueBadge-C-EPqWsh.js → BlockIssueBadge-a-qlByxF.js} +5 -5
  4. package/dist/{CloudEditor-DaEfipBn.js → CloudEditor-CDjtwb4i.js} +236 -234
  5. package/dist/{CollaboratorBar-DgwjisX2.js → CollaboratorBar-B_EnJLtW.js} +4 -4
  6. package/dist/{CommentsSidebar-CpRLN40c.js → CommentsSidebar-DaP9BA_r.js} +18 -18
  7. package/dist/{CountdownBlock-DO9fziwf.js → CountdownBlock-DtAokAVw.js} +3 -3
  8. package/dist/{CountdownToolbar-BeII06yJ.js → CountdownToolbar-Dtqgwy0g.js} +3 -3
  9. package/dist/{DesignReferenceSidebar-BgPDbOsl.js → DesignReferenceSidebar-BHRlTqlT.js} +10 -10
  10. package/dist/{IssuesPanel-I0z6k6-H.js → IssuesPanel-u7ee3Wrl.js} +11 -11
  11. package/dist/{LoadingTrack-C7mGWPHS.js → LoadingTrack-CV3ID80N.js} +1 -1
  12. package/dist/ModuleBrowserModal-DOsdaS6s.js +201 -0
  13. package/dist/{ModulePreviewCanvas-Dni9kK4j.js → ModulePreviewCanvas-Cx4MOJ0X.js} +3 -3
  14. package/dist/{NumberWithSuffix-D3fdj0iO.js → NumberWithSuffix-D2mW_DhT.js} +4 -4
  15. package/dist/{ParagraphEditor-CZ-cmhX3.js → ParagraphEditor-DMzkVnST.js} +153 -133
  16. package/dist/{RichTextEditorContent-Q5altsx1.js → RichTextEditorContent-CRCxCwKf.js} +7 -7
  17. package/dist/{SaveModuleDialog-C38VqN2T.js → SaveModuleDialog-DuEKgumL.js} +8 -8
  18. package/dist/{SnapshotHistory-ByloTpwh.js → SnapshotHistory-CVgiNJtE.js} +12 -12
  19. package/dist/{TemplateScoringPanel-CUxiPtEf.js → TemplateScoringPanel-lm0_9nYi.js} +25 -25
  20. package/dist/{TestEmailModal-BvZBMBad.js → TestEmailModal-WBMdiW5S.js} +5 -5
  21. package/dist/{TitleEditor-DbNOcvhR.js → TitleEditor-eyT0h-Sa.js} +71 -55
  22. package/dist/{TplModal-BYb-X5Bj.js → TplModal-tjQ7OB0g.js} +4 -4
  23. package/dist/{blockTypeIcons-CyAom3iI.js → blockTypeIcons-DdB3uTKD.js} +5 -5
  24. package/dist/bundle-stats.json +6 -6
  25. package/dist/cdn/chunks/{AiFeatureMenu-BSoy-SoF.js → AiFeatureMenu-D7rB2SBs.js} +8 -8
  26. package/dist/cdn/chunks/{AiFeatureMenu-BSoy-SoF.js.map → AiFeatureMenu-D7rB2SBs.js.map} +1 -1
  27. package/dist/cdn/chunks/{BlockIssueBadge-BQDUuJxy.js → BlockIssueBadge-DHOe0pgx.js} +5 -5
  28. package/dist/cdn/chunks/{BlockIssueBadge-BQDUuJxy.js.map → BlockIssueBadge-DHOe0pgx.js.map} +1 -1
  29. package/dist/cdn/chunks/{CloudEditor-BZuzsQOZ.js → CloudEditor-DNed_Ym0.js} +208 -206
  30. package/dist/cdn/chunks/CloudEditor-DNed_Ym0.js.map +1 -0
  31. package/dist/cdn/chunks/{CollaboratorBar-DUpSrtDr.js → CollaboratorBar-sj_9Lee3.js} +4 -4
  32. package/dist/cdn/chunks/{CollaboratorBar-DUpSrtDr.js.map → CollaboratorBar-sj_9Lee3.js.map} +1 -1
  33. package/dist/cdn/chunks/{CountdownBlock-DChGTAsH.js → CountdownBlock-C1Ikjpn4.js} +3 -3
  34. package/dist/cdn/chunks/{CountdownBlock-DChGTAsH.js.map → CountdownBlock-C1Ikjpn4.js.map} +1 -1
  35. package/dist/cdn/chunks/{CountdownToolbar-C6gX2SJr.js → CountdownToolbar-j1G_X8rB.js} +4 -4
  36. package/dist/cdn/chunks/{CountdownToolbar-C6gX2SJr.js.map → CountdownToolbar-j1G_X8rB.js.map} +1 -1
  37. package/dist/cdn/chunks/{IssuesPanel-Bo1uhdSe.js → IssuesPanel-CTOf3PsH.js} +11 -11
  38. package/dist/cdn/chunks/{IssuesPanel-Bo1uhdSe.js.map → IssuesPanel-CTOf3PsH.js.map} +1 -1
  39. package/dist/cdn/chunks/{ModuleBrowserModal-a-tZRCcD.js → ModuleBrowserModal-DCh88-rr.js} +11 -8
  40. package/dist/cdn/chunks/{ModuleBrowserModal-a-tZRCcD.js.map → ModuleBrowserModal-DCh88-rr.js.map} +1 -1
  41. package/dist/cdn/chunks/{ModulePreviewCanvas-Bm6k0Op0.js → ModulePreviewCanvas-DJqvTKmg.js} +21 -21
  42. package/dist/cdn/chunks/{ModulePreviewCanvas-Bm6k0Op0.js.map → ModulePreviewCanvas-DJqvTKmg.js.map} +1 -1
  43. package/dist/cdn/chunks/{NumberWithSuffix-HTbuD3VJ.js → NumberWithSuffix-Bu45XWSl.js} +5 -5
  44. package/dist/cdn/chunks/{NumberWithSuffix-HTbuD3VJ.js.map → NumberWithSuffix-Bu45XWSl.js.map} +1 -1
  45. package/dist/cdn/chunks/{ParagraphEditor-pGrfSccu.js → ParagraphEditor-DwZqLJp2.js} +130 -110
  46. package/dist/cdn/chunks/ParagraphEditor-DwZqLJp2.js.map +1 -0
  47. package/dist/cdn/chunks/{RichTextEditorContent-D7XZix_1.js → RichTextEditorContent-CIuZ-2DV.js} +4 -4
  48. package/dist/cdn/chunks/{RichTextEditorContent-D7XZix_1.js.map → RichTextEditorContent-CIuZ-2DV.js.map} +1 -1
  49. package/dist/cdn/chunks/{SaveModuleDialog-C9PQ9x6j.js → SaveModuleDialog-Bep0X2s_.js} +6 -6
  50. package/dist/cdn/chunks/{SaveModuleDialog-C9PQ9x6j.js.map → SaveModuleDialog-Bep0X2s_.js.map} +1 -1
  51. package/dist/cdn/chunks/{TitleEditor-BvFbL16O.js → TitleEditor-DO1-h3RY.js} +62 -46
  52. package/dist/cdn/chunks/TitleEditor-DO1-h3RY.js.map +1 -0
  53. package/dist/cdn/chunks/blockTypeIcons-8o24HVJu.js +22 -0
  54. package/dist/cdn/chunks/{blockTypeIcons-Kd1MT0u8.js.map → blockTypeIcons-8o24HVJu.js.map} +1 -1
  55. package/dist/{de-C2wOXoxs.js → cdn/chunks/de-LsV0u1tP.js} +19 -1
  56. package/dist/cdn/chunks/de-LsV0u1tP.js.map +1 -0
  57. package/dist/cdn/chunks/{draggable-Bci-fq8y.js → draggable-kPCz_3zM.js} +14 -5
  58. package/dist/cdn/chunks/{draggable-Bci-fq8y.js.map → draggable-kPCz_3zM.js.map} +1 -1
  59. package/dist/cdn/chunks/{en-dR7zfNC3.js → en-Bb8X1bOs.js} +18 -2
  60. package/dist/cdn/chunks/en-Bb8X1bOs.js.map +1 -0
  61. package/dist/cdn/chunks/{extensions-CuUjSmuA.js → extensions-iwBXnEwq.js} +16 -16
  62. package/dist/cdn/chunks/{extensions-CuUjSmuA.js.map → extensions-iwBXnEwq.js.map} +1 -1
  63. package/dist/cdn/chunks/{features-DU6lA8l1.js → features-CkTMVylx.js} +940 -812
  64. package/dist/cdn/chunks/features-CkTMVylx.js.map +1 -0
  65. package/dist/cdn/chunks/{icons-BjHUZZyJ.js → icons-9zjCuoJx.js} +158 -152
  66. package/dist/cdn/chunks/icons-9zjCuoJx.js.map +1 -0
  67. package/dist/cdn/chunks/liquid.browser-DKKBzRQu.js.map +1 -1
  68. package/dist/cdn/chunks/{media-library-Byelliig.js → media-library-DMRIPx4g.js} +552 -550
  69. package/dist/cdn/chunks/{media-library-Byelliig.js.map → media-library-DMRIPx4g.js.map} +1 -1
  70. package/dist/cdn/chunks/{pt-BR-BZ86xqK6.js → pt-BR-BwJY_cvb.js} +18 -2
  71. package/dist/cdn/chunks/pt-BR-BwJY_cvb.js.map +1 -0
  72. package/dist/cdn/chunks/{pusher-BICWUP2j.js → pusher-CdEqyLwF.js} +6 -3
  73. package/dist/cdn/chunks/{pusher-BICWUP2j.js.map → pusher-CdEqyLwF.js.map} +1 -1
  74. package/dist/cdn/chunks/quality-CyeUgs_c.js +2176 -0
  75. package/dist/cdn/chunks/{quality-DNnYAntR.js.map → quality-CyeUgs_c.js.map} +1 -1
  76. package/dist/cdn/chunks/{renderer-CZKO-Tav.js → renderer-BIKUEKDD.js} +39 -30
  77. package/dist/cdn/chunks/{renderer-CZKO-Tav.js.map → renderer-BIKUEKDD.js.map} +1 -1
  78. package/dist/cdn/chunks/{src-DsqSXXjk.js → src-pDy_imWG.js} +11 -11
  79. package/dist/cdn/chunks/{src-DsqSXXjk.js.map → src-pDy_imWG.js.map} +1 -1
  80. package/dist/cdn/chunks/{styles-DiAdtiz9.js → styles-D4Bd3SCx.js} +1197 -822
  81. package/dist/cdn/chunks/styles-D4Bd3SCx.js.map +1 -0
  82. package/dist/cdn/chunks/{tiptap-CwScfbsM.js → tiptap-BlLFFU3M.js} +2233 -2213
  83. package/dist/cdn/chunks/tiptap-BlLFFU3M.js.map +1 -0
  84. package/dist/cdn/editor.css +1 -1
  85. package/dist/cdn/editor.js +117 -115
  86. package/dist/cdn/editor.js.map +1 -1
  87. package/dist/{check-BRzXxFHr.js → check-CYJwFmjy.js} +1 -1
  88. package/dist/{chevron-down-DmEgzmYT.js → chevron-down-C5l-DzAA.js} +1 -1
  89. package/dist/{circle-alert-BStvZr3O.js → circle-alert-wf5HUFZY.js} +1 -1
  90. package/dist/{clock-Blwp_1R6.js → clock-Bj0bQw-K.js} +1 -1
  91. package/dist/{cloud-_olro76D.js → cloud-CoFDm9YA.js} +1 -1
  92. package/dist/{createLucideIcon-CmPAC-gt.js → createLucideIcon-Bad2kKE0.js} +4 -4
  93. package/dist/{cdn/chunks/de-C2wOXoxs.js → de-LsV0u1tP.js} +17 -3
  94. package/dist/{dist-BwgjpLfr.js → dist-34OcyoK1.js} +1 -1
  95. package/dist/{dist-Cz79qrLL.js → dist-B7w6xTU6.js} +1 -1
  96. package/dist/{dist-DULfKmTh.js → dist-BX3gGwL8.js} +5 -5
  97. package/dist/{dist-412xXefB.js → dist-Bn703mnA.js} +1 -1
  98. package/dist/{dist-u0iIJH3V.js → dist-CADDCv0o.js} +1 -1
  99. package/dist/{dist-BNEdeWub.js → dist-CGvz7vkq.js} +1 -1
  100. package/dist/{dist-BlG7k25W.js → dist-CLpPNKy9.js} +1 -1
  101. package/dist/{dist-BCQZZUE9.js → dist-ChMninLH.js} +1 -1
  102. package/dist/{dist-b7Ak-CuM.js → dist-CrQZ_af9.js} +1 -1
  103. package/dist/{dist-DhKTdU52.js → dist-CyjyYg52.js} +1426 -1406
  104. package/dist/{dist-D6x1cQeh.js → dist-Dd3ibRZm.js} +2 -2
  105. package/dist/{dist-Cgry6fNv.js → dist-DuCzdgDA.js} +1 -1
  106. package/dist/{dist-o73iaGqy.js → dist-U5vfDdYI.js} +1 -1
  107. package/dist/{en-dR7zfNC3.js → en-Bb8X1bOs.js} +17 -1
  108. package/dist/{extensions-XPlNAKIL.js → extensions-J439b7y7.js} +5 -5
  109. package/dist/{image-up-BFPbw_Zq.js → image-up-x8-WXfsx.js} +1 -1
  110. package/dist/index.d.ts +17 -0
  111. package/dist/{info-B_qLEBN2.js → info-RS_fGcGi.js} +1 -1
  112. package/dist/keys-DgYXDafq.js +10 -0
  113. package/dist/{list-checks-CGg7JxPm.js → list-checks-Bf7XdDyv.js} +1 -1
  114. package/dist/{loader-circle-CDF8eR_Q.js → loader-circle-CLZ0_FvW.js} +1 -1
  115. package/dist/{message-circle-C3cHsCJl.js → message-circle-B-1bN9ab.js} +1 -1
  116. package/dist/{pt-BR-BZ86xqK6.js → pt-BR-BwJY_cvb.js} +17 -1
  117. package/dist/{refresh-cw-Butml7Q4.js → refresh-cw-CWKWqJYG.js} +1 -1
  118. package/dist/scan-line-BtK5dEai.js +31 -0
  119. package/dist/{send-k7npFJNO.js → send-Cn1IUdzh.js} +1 -1
  120. package/dist/{shield-check-CV6GbmCu.js → shield-check-CrvMk4Ea.js} +1 -1
  121. package/dist/{sparkles-C965Xop4.js → sparkles-CgfjwvnG.js} +1 -1
  122. package/dist/style.css +1 -1
  123. package/dist/{styles-D0RCAWhB.js → styles-BUwDOWd3.js} +1221 -846
  124. package/dist/templatical-editor.js +95 -93
  125. package/dist/{text-align-start-Bxnps8fH.js → text-align-start-C3r_Rnvy.js} +1 -1
  126. package/dist/{trash-2-DpGb7fIt.js → trash-2-CjERg4x9.js} +1 -1
  127. package/dist/{triangle-alert-BKYElAwz.js → triangle-alert-Chkny574.js} +1 -1
  128. package/dist/{upload-BF7sxd1_.js → upload-e5kDRkPb.js} +1 -1
  129. package/dist/{useAliveFlag-BinvbqQR.js → useAliveFlag-cUQj9rmB.js} +1 -1
  130. package/dist/{useCloudI18n-L3H2XvdW.js → useCloudI18n-CYJKqXtI.js} +2 -2
  131. package/dist/{useEditorCore-DKYZ7aKk.js → useEditorCore-8JxXDOA4.js} +1031 -903
  132. package/dist/{useI18n-CTs_bP9d.js → useI18n-BWqM8i78.js} +2 -2
  133. package/dist/{useMergeTag-e3RSY-s3.js → useMergeTag-NHC4ylza.js} +3 -3
  134. package/dist/usePopoverRoot-B1sdY4es.js +8 -0
  135. package/dist/{vue.runtime.esm-bundler-B2k01iQh.js → vue.runtime.esm-bundler-BPa483TZ.js} +13 -4
  136. package/dist/{x-CGjkjdKK.js → x-DiPIbccg.js} +1 -1
  137. package/package.json +12 -12
  138. package/dist/ModuleBrowserModal-DsZRr87F.js +0 -198
  139. package/dist/cdn/chunks/CloudEditor-BZuzsQOZ.js.map +0 -1
  140. package/dist/cdn/chunks/ParagraphEditor-pGrfSccu.js.map +0 -1
  141. package/dist/cdn/chunks/TitleEditor-BvFbL16O.js.map +0 -1
  142. package/dist/cdn/chunks/blockTypeIcons-Kd1MT0u8.js +0 -22
  143. package/dist/cdn/chunks/de-C2wOXoxs.js.map +0 -1
  144. package/dist/cdn/chunks/en-dR7zfNC3.js.map +0 -1
  145. package/dist/cdn/chunks/features-DU6lA8l1.js.map +0 -1
  146. package/dist/cdn/chunks/icons-BjHUZZyJ.js.map +0 -1
  147. package/dist/cdn/chunks/pt-BR-BZ86xqK6.js.map +0 -1
  148. package/dist/cdn/chunks/quality-DNnYAntR.js +0 -2176
  149. package/dist/cdn/chunks/styles-DiAdtiz9.js.map +0 -1
  150. package/dist/cdn/chunks/tiptap-CwScfbsM.js.map +0 -1
  151. package/dist/keys-mFiJ5N0_.js +0 -10
  152. package/dist/scan-line-XYEqim_E.js +0 -25
  153. package/dist/usePopoverRoot-DVh7NY1q.js +0 -8
@@ -1,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-DNnYAntR.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,15 +3130,15 @@ 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;
@@ -3039,13 +3146,13 @@ function ba() {
3039
3146
  }
3040
3147
  //#endregion
3041
3148
  //#region src/composables/useImageDrop.ts
3042
- var xa = "image/";
3043
- function Sa(e) {
3149
+ var Aa = "image/";
3150
+ function ja(e) {
3044
3151
  let { target: t, onFiles: n, enabled: r } = e, i = () => r === void 0 ? !0 : P(r), { isOverDropZone: a } = Tn(t, {
3045
3152
  preventDefaultForUnhandled: !0,
3046
3153
  onDrop: (e) => {
3047
3154
  if (!i()) return;
3048
- let t = (e ?? []).filter((e) => e.type.startsWith(xa));
3155
+ let t = (e ?? []).filter((e) => e.type.startsWith(Aa));
3049
3156
  t.length > 0 && n([t[0]]);
3050
3157
  }
3051
3158
  });
@@ -3053,17 +3160,17 @@ function Sa(e) {
3053
3160
  }
3054
3161
  //#endregion
3055
3162
  //#region src/components/blocks/ImageBlock.vue?vue&type=script&setup=true&lang.ts
3056
- var Ca = {
3163
+ var Ma = {
3057
3164
  key: 0,
3058
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)]",
3059
3166
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 85%, transparent)" }
3060
- }, wa = ["href"], Ta = ["src", "alt"], Ea = ["src", "alt"], Da = {
3167
+ }, Na = ["href"], Pa = ["src", "alt"], Fa = ["src", "alt"], Ia = {
3061
3168
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
3062
3169
  style: { opacity: "0.7" }
3063
- }, Oa = ["href"], ka = ["src", "alt"], Aa = ["src", "alt"], ja = {
3170
+ }, La = ["href"], Ra = ["src", "alt"], za = ["src", "alt"], Ba = {
3064
3171
  key: 4,
3065
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)]"
3066
- }, Ma = ["aria-label"], Na = { key: 1 }, Pa = /* @__PURE__ */ B({
3173
+ }, Va = ["aria-label"], Ha = { key: 1 }, Ua = /* @__PURE__ */ B({
3067
3174
  __name: "ImageBlock",
3068
3175
  props: {
3069
3176
  block: {},
@@ -3071,7 +3178,7 @@ var Ca = {
3071
3178
  },
3072
3179
  emits: ["update"],
3073
3180
  setup(e, { emit: t }) {
3074
- 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();
3075
3182
  async function l() {
3076
3183
  let e = await o?.({ accept: ["images"] });
3077
3184
  if (c.alive && e) {
@@ -3098,7 +3205,7 @@ var Ca = {
3098
3205
  }
3099
3206
  }
3100
3207
  }
3101
- let { isOver: h } = Sa({
3208
+ let { isOver: h } = ja({
3102
3209
  target: u,
3103
3210
  enabled: p,
3104
3211
  onFiles: m
@@ -3118,11 +3225,11 @@ var Ca = {
3118
3225
  "data-testid": "image-drop-zone",
3119
3226
  class: "tpl:relative tpl:w-full",
3120
3227
  style: L(g.value)
3121
- }, [p.value && (j(h) || d.value) ? (f(), k("div", Ca, [d.value ? (f(), k(R, { key: 0 }, [V(j(Jr), {
3228
+ }, [p.value && (j(h) || d.value) ? (f(), k("div", Ma, [d.value ? (f(), k(R, { key: 0 }, [V(j(_i), {
3122
3229
  class: "tpl-spinner",
3123
3230
  size: 20,
3124
3231
  "stroke-width": 2
3125
- }), z(" " + D(j(i).image.uploading), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(ki), {
3232
+ }), z(" " + D(j(i).image.uploading), 1)], 64)) : (f(), k(R, { key: 1 }, [V(j(Pi), {
3126
3233
  size: 20,
3127
3234
  "stroke-width": 1.5
3128
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", {
@@ -3137,22 +3244,22 @@ var Ca = {
3137
3244
  src: e.block.placeholderUrl,
3138
3245
  alt: e.block.alt || j(i).image.altTextPlaceholder,
3139
3246
  style: L(_.value)
3140
- }, null, 12, Ta)], 8, wa)) : (f(), k("img", {
3247
+ }, null, 12, Pa)], 8, Na)) : (f(), k("img", {
3141
3248
  key: 1,
3142
3249
  class: "tpl:border-0",
3143
3250
  src: e.block.placeholderUrl,
3144
3251
  alt: e.block.alt,
3145
3252
  style: L(_.value)
3146
- }, null, 12, Ea))], 64)) : e.block.src && y.value ? (f(), k("div", {
3253
+ }, null, 12, Fa))], 64)) : e.block.src && y.value ? (f(), k("div", {
3147
3254
  key: 2,
3148
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)]",
3149
3256
  style: L([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, _.value])
3150
- }, [V(j(mi), {
3257
+ }, [V(j(hi), {
3151
3258
  size: 32,
3152
3259
  "stroke-width": 1.5,
3153
3260
  class: "tpl:text-[var(--tpl-primary)]",
3154
3261
  style: { opacity: "0.5" }
3155
- }), I("span", Da, D(e.block.src), 1)], 4)) : e.block.src ? (f(), k(R, { key: 3 }, [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", {
3156
3263
  key: 0,
3157
3264
  href: e.block.linkUrl,
3158
3265
  target: "_blank",
@@ -3164,26 +3271,26 @@ var Ca = {
3164
3271
  src: e.block.src,
3165
3272
  alt: e.block.alt || j(i).image.altTextPlaceholder,
3166
3273
  style: L(_.value)
3167
- }, null, 12, ka)], 8, Oa)) : (f(), k("img", {
3274
+ }, null, 12, Ra)], 8, La)) : (f(), k("img", {
3168
3275
  key: 1,
3169
3276
  class: "tpl:border-0",
3170
3277
  src: e.block.src,
3171
3278
  alt: e.block.alt,
3172
3279
  style: L(_.value)
3173
- }, null, 12, Aa))], 64)) : (f(), k("div", ja, [s.value ? (f(), k("button", {
3280
+ }, null, 12, za))], 64)) : (f(), k("div", Ba, [s.value ? (f(), k("button", {
3174
3281
  key: 0,
3175
3282
  "aria-label": j(i).image.browseMedia,
3176
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)]",
3177
3284
  onClick: M(l, ["stop"])
3178
- }, [V(j(mi), {
3285
+ }, [V(j(hi), {
3179
3286
  size: 14,
3180
3287
  "stroke-width": 1.5
3181
- }), z(" " + D(j(i).image.browseMedia), 1)], 8, Ma)) : (f(), k("span", Na, 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));
3182
3289
  }
3183
- }), Fa = { class: "tpl:w-full" }, Ia = ["href"], La = {
3290
+ }), Wa = { class: "tpl:w-full" }, Ga = ["href"], Ka = {
3184
3291
  key: 1,
3185
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)]"
3186
- }, Ra = /* @__PURE__ */ B({
3293
+ }, qa = /* @__PURE__ */ B({
3187
3294
  __name: "MenuBlock",
3188
3295
  props: {
3189
3296
  block: {},
@@ -3202,7 +3309,7 @@ var Ca = {
3202
3309
  function a(e) {
3203
3310
  return e || t.block.linkColor || t.block.color;
3204
3311
  }
3205
- return (t, o) => (f(), k("div", Fa, [i.value ? (f(), k("div", {
3312
+ return (t, o) => (f(), k("div", Wa, [i.value ? (f(), k("div", {
3206
3313
  key: 0,
3207
3314
  style: L(r.value)
3208
3315
  }, [(f(!0), k(R, null, h(e.block.items, (t, n) => (f(), k(R, { key: t.id }, [I("a", {
@@ -3214,15 +3321,15 @@ var Ca = {
3214
3321
  textDecoration: t.underline ? "underline" : "none"
3215
3322
  }),
3216
3323
  onClick: o[0] ||= M(() => {}, ["prevent"])
3217
- }, D(t.text || "..."), 13, Ia), n < e.block.items.length - 1 ? (f(), k("span", {
3324
+ }, D(t.text || "..."), 13, Ga), n < e.block.items.length - 1 ? (f(), k("span", {
3218
3325
  key: 0,
3219
3326
  style: L({
3220
3327
  color: e.block.separatorColor,
3221
3328
  padding: `0 ${e.block.spacing}px`
3222
3329
  })
3223
- }, D(e.block.separator), 5)) : A("", !0)], 64))), 128))], 4)) : (f(), k("div", La, [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)]))]));
3224
3331
  }
3225
- }), za = /* @__PURE__ */ new Set([
3332
+ }), Ja = /* @__PURE__ */ new Set([
3226
3333
  "http",
3227
3334
  "https",
3228
3335
  "mailto",
@@ -3232,7 +3339,7 @@ var Ca = {
3232
3339
  "sms",
3233
3340
  "xmpp",
3234
3341
  "cid"
3235
- ]), Ba = /* @__PURE__ */ new Set([
3342
+ ]), Ya = /* @__PURE__ */ new Set([
3236
3343
  "SCRIPT",
3237
3344
  "STYLE",
3238
3345
  "IFRAME",
@@ -3242,7 +3349,7 @@ var Ca = {
3242
3349
  "META",
3243
3350
  "BASE",
3244
3351
  "FORM"
3245
- ]), Va = /* @__PURE__ */ new Set([
3352
+ ]), Xa = /* @__PURE__ */ new Set([
3246
3353
  "href",
3247
3354
  "xlink:href",
3248
3355
  "formaction",
@@ -3251,16 +3358,16 @@ var Ca = {
3251
3358
  "background",
3252
3359
  "poster"
3253
3360
  ]);
3254
- function Ha(e, t) {
3361
+ function Za(e, t) {
3255
3362
  let n = e.replace(/[\t\n\r]/g, "").replace(/^[\u0000-\u0020]+/, "").trimEnd();
3256
3363
  if (!n || n.startsWith("#")) return !0;
3257
3364
  let r = /^([a-z][a-z0-9+.-]*):/i.exec(n);
3258
3365
  if (!r) return !0;
3259
3366
  let i = r[1].toLowerCase();
3260
- return za.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;
3261
3368
  }
3262
- function Ua(e) {
3263
- if (Ba.has(e.tagName)) {
3369
+ function Qa(e) {
3370
+ if (Ya.has(e.tagName)) {
3264
3371
  e.remove();
3265
3372
  return;
3266
3373
  }
@@ -3272,29 +3379,29 @@ function Ua(e) {
3272
3379
  e.removeAttribute(n);
3273
3380
  continue;
3274
3381
  }
3275
- if (Va.has(t)) {
3276
- Ha(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
3382
+ if (Xa.has(t)) {
3383
+ Za(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
3277
3384
  continue;
3278
3385
  }
3279
3386
  if (t === "src") {
3280
- Ha(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
3387
+ Za(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
3281
3388
  continue;
3282
3389
  }
3283
3390
  t === "srcdoc" && e.removeAttribute(n);
3284
3391
  }
3285
3392
  let n = Array.from(e.children);
3286
- for (let e of n) Ua(e);
3393
+ for (let e of n) Qa(e);
3287
3394
  }
3288
- function Wa(e) {
3395
+ function $a(e) {
3289
3396
  if (typeof DOMParser > "u") return e;
3290
3397
  let t = new DOMParser().parseFromString(`<!doctype html><body>${e}</body>`, "text/html").body, n = Array.from(t.children);
3291
- for (let e of n) Ua(e);
3398
+ for (let e of n) Qa(e);
3292
3399
  return t.innerHTML;
3293
3400
  }
3294
3401
  //#endregion
3295
3402
  //#region src/composables/useEditableTextBlock.ts
3296
- function Ga(e) {
3297
- let t = v(Yn, []), { syntax: n } = qi(), r = O(() => Wa(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(() => ({
3298
3405
  top: o.value - 8,
3299
3406
  left: s.value
3300
3407
  }));
@@ -3315,14 +3422,14 @@ function Ga(e) {
3315
3422
  }
3316
3423
  //#endregion
3317
3424
  //#region src/components/blocks/ParagraphBlock.vue?vue&type=script&setup=true&lang.ts
3318
- var Ka = ["innerHTML"], qa = /* @__PURE__ */ B({
3425
+ var to = ["innerHTML"], no = /* @__PURE__ */ B({
3319
3426
  __name: "ParagraphBlock",
3320
3427
  props: {
3321
3428
  block: {},
3322
3429
  viewport: {}
3323
3430
  },
3324
3431
  setup(e) {
3325
- let t = e, n = T(() => import("./ParagraphEditor-pGrfSccu.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = Ga(() => 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);
3326
3433
  return (t, l) => (f(), k("div", {
3327
3434
  ref_key: "blockRef",
3328
3435
  ref: i,
@@ -3341,41 +3448,46 @@ var Ka = ["innerHTML"], qa = /* @__PURE__ */ B({
3341
3448
  key: 1,
3342
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",
3343
3450
  innerHTML: j(o)
3344
- }, null, 8, Ka))], 544));
3451
+ }, null, 8, to))], 544));
3345
3452
  }
3346
3453
  });
3347
3454
  //#endregion
3348
3455
  //#region src/utils/blockComponentResolver.ts
3349
- function Ja(e, t, n) {
3456
+ function ro(e, t, n) {
3350
3457
  if (t) {
3351
3458
  let n = t.getComponent(e);
3352
3459
  if (n) return n;
3353
3460
  }
3354
3461
  return n[e.type] ?? null;
3355
3462
  }
3356
- function Ya(e) {
3357
- let { padding: t, backgroundColor: n } = e.styles;
3358
- return {
3463
+ function io(e) {
3464
+ let { padding: t, backgroundColor: n } = e.styles, r = {
3359
3465
  padding: `${t.top}px ${t.right}px ${t.bottom}px ${t.left}px`,
3360
3466
  backgroundColor: n || "transparent"
3361
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;
3362
3474
  }
3363
3475
  //#endregion
3364
3476
  //#region src/components/blocks/BlockWrapper.vue?vue&type=script&setup=true&lang.ts
3365
- var Xa = ["data-block-id", "data-block-type"], Za = ["aria-label"], Qa = [
3477
+ var oo = ["data-block-id", "data-block-type"], so = ["aria-label"], co = [
3366
3478
  "aria-label",
3367
3479
  "aria-pressed",
3368
3480
  "title"
3369
- ], $a = ["aria-label", "title"], eo = ["aria-label", "title"], to = ["aria-label", "title"], no = {
3481
+ ], lo = ["aria-label", "title"], uo = ["aria-label", "title"], fo = ["aria-label", "title"], po = {
3370
3482
  key: 1,
3371
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"
3372
- }, ro = { 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)]" }, io = {
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 = {
3373
3485
  key: 2,
3374
3486
  class: "tpl:absolute tpl:-left-1 tpl:top-1/2 tpl:z-[5] tpl:-translate-x-full tpl:-translate-y-1/2"
3375
- }, ao = ["aria-label", "title"], oo = {
3487
+ }, go = ["aria-label", "title"], _o = {
3376
3488
  key: 3,
3377
3489
  class: "tpl:absolute tpl:-right-1 tpl:-top-1 tpl:z-[5] tpl:translate-x-full"
3378
- }, so = ["aria-label"], co = /*#__PURE__*/ Ii(/* @__PURE__ */ B({
3490
+ }, vo = ["aria-label"], yo = /*#__PURE__*/ Vi(/* @__PURE__ */ B({
3379
3491
  __name: "BlockWrapper",
3380
3492
  props: {
3381
3493
  block: {},
@@ -3385,7 +3497,7 @@ var Xa = ["data-block-id", "data-block-type"], Za = ["aria-label"], Qa = [
3385
3497
  },
3386
3498
  emits: ["select"],
3387
3499
  setup(e, { emit: t }) {
3388
- let n = T(() => import("./BlockIssueBadge-BQDUuJxy.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);
3389
3501
  async function p() {
3390
3502
  await m(), l.value?.focus();
3391
3503
  }
@@ -3411,26 +3523,26 @@ var Xa = ["data-block-id", "data-block-type"], Za = ["aria-label"], Qa = [
3411
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 ? {
3412
3524
  desktop: a.viewport.desktop,
3413
3525
  mobile: a.viewport.mobile
3414
- }[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(() => {
3415
- let e = Ya(r.block);
3416
- 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 = {
3417
3528
  padding: e.padding,
3418
3529
  backgroundColor: e.backgroundColor
3419
3530
  };
3420
- });
3421
- function ne(e) {
3531
+ return e.borderRadius && (t.borderRadius = e.borderRadius), t;
3532
+ }), ne = O(() => ao(r.block));
3533
+ function re(e) {
3422
3534
  r.previewMode || (e.stopPropagation(), i("select"));
3423
3535
  }
3424
- function re() {
3536
+ function N() {
3425
3537
  x?.deleteBlock(r.block.id);
3426
3538
  }
3427
- function N() {
3539
+ function ie() {
3428
3540
  x?.duplicateBlock(r.block);
3429
3541
  }
3430
- function ie() {
3542
+ function P() {
3431
3543
  w.savedModules?.openSaveDialog(r.block.id);
3432
3544
  }
3433
- function P() {
3545
+ function ae() {
3434
3546
  S?.toggleBlock(r.block.id);
3435
3547
  }
3436
3548
  return (t, r) => _.value ? A("", !0) : (f(), k("div", {
@@ -3442,7 +3554,7 @@ var Xa = ["data-block-id", "data-block-type"], Za = ["aria-label"], Qa = [
3442
3554
  }]),
3443
3555
  "data-block-id": e.block.id,
3444
3556
  "data-block-type": e.block.type,
3445
- onClick: ne
3557
+ onClick: re
3446
3558
  }, [
3447
3559
  V(j(n), { "block-id": e.block.id }, null, 8, ["block-id"]),
3448
3560
  e.isSelected ? (f(), k("div", {
@@ -3460,90 +3572,98 @@ var Xa = ["data-block-id", "data-block-type"], Za = ["aria-label"], Qa = [
3460
3572
  "aria-keyshortcuts": "Space Enter ArrowUp ArrowDown Escape",
3461
3573
  title: j(a).blockActions.drag,
3462
3574
  onKeydown: h
3463
- }, [V(j(fi), {
3575
+ }, [V(j(pi), {
3464
3576
  size: 14,
3465
3577
  "stroke-width": 1.5
3466
- })], 40, Qa),
3578
+ })], 40, co),
3467
3579
  I("button", {
3468
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",
3469
3581
  "aria-label": j(a).blockActions.duplicate,
3470
3582
  title: j(a).blockActions.duplicate,
3471
- onClick: M(N, ["stop"])
3583
+ onClick: M(ie, ["stop"])
3472
3584
  }, [V(j(si), {
3473
3585
  size: 14,
3474
3586
  "stroke-width": 1.5
3475
- })], 8, $a),
3476
- ee.value ? (f(), k("button", {
3587
+ })], 8, lo),
3588
+ T.value ? (f(), k("button", {
3477
3589
  key: 0,
3478
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",
3479
3591
  "aria-label": j(a).blockActions.saveAsModule,
3480
3592
  title: j(a).blockActions.saveAsModule,
3481
- onClick: M(ie, ["stop"])
3482
- }, [V(j(Qr), {
3593
+ onClick: M(P, ["stop"])
3594
+ }, [V(j(Xr), {
3483
3595
  size: 14,
3484
3596
  "stroke-width": 1.5
3485
- })], 8, eo)) : A("", !0),
3597
+ })], 8, uo)) : A("", !0),
3486
3598
  I("button", {
3487
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",
3488
3600
  "aria-label": j(a).blockActions.delete,
3489
3601
  title: j(a).blockActions.delete,
3490
- onClick: M(re, ["stop"])
3491
- }, [V(j(Di), {
3602
+ onClick: M(N, ["stop"])
3603
+ }, [V(j(ji), {
3492
3604
  size: 14,
3493
3605
  "stroke-width": 1.5
3494
- })], 8, to)
3495
- ], 8, Za)) : A("", !0),
3496
- g.value ? (f(), k("div", no, [I("span", ro, [V(j(ci), {
3606
+ })], 8, fo)
3607
+ ], 8, so)) : A("", !0),
3608
+ g.value ? (f(), k("div", po, [I("span", mo, [V(j(ci), {
3497
3609
  size: 12,
3498
3610
  "stroke-width": 1.5
3499
3611
  }), z(" " + D(j(s)(j(a).blockActions.hiddenOnViewport, { viewport: y.value })), 1)])])) : A("", !0),
3500
- b.value && !g.value ? (f(), k("div", io, [I("button", {
3612
+ b.value && !g.value ? (f(), k("div", ho, [I("button", {
3501
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)]",
3502
3614
  "aria-label": j(a).blockActions.conditionToggle,
3503
3615
  title: e.block.displayCondition?.label,
3504
- onClick: M(P, ["stop"])
3505
- }, [V(j(qr), {
3616
+ onClick: M(ae, ["stop"])
3617
+ }, [V(j(fi), {
3506
3618
  size: 12,
3507
3619
  "stroke-width": 2
3508
- })], 8, ao)])) : A("", !0),
3509
- E.value > 0 && !g.value ? (f(), k("div", oo, [I("button", {
3620
+ })], 8, go)])) : A("", !0),
3621
+ ee.value > 0 && !g.value ? (f(), k("div", _o, [I("button", {
3510
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)]",
3511
- "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) }),
3512
3624
  onClick: r[0] ||= M((t) => j(w).comments?.openForBlock(e.block.id), ["stop"])
3513
- }, [V(j(gi), {
3625
+ }, [V(j(vi), {
3514
3626
  size: 12,
3515
3627
  "stroke-width": 2.5
3516
- }), z(" " + D(E.value), 1)], 8, so)])) : A("", !0),
3517
- 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", {
3634
+ class: "tpl-block-content",
3635
+ style: L(te.value)
3636
+ }, [o(t.$slots, "default", {}, void 0, !0)], 4)], 4)) : (f(), k("div", {
3637
+ key: 5,
3518
3638
  class: "tpl-block-content",
3519
3639
  style: L(te.value)
3520
- }, [o(t.$slots, "default", {}, void 0, !0)], 4)
3521
- ], 10, Xa));
3640
+ }, [o(t.$slots, "default", {}, void 0, !0)], 4))
3641
+ ], 10, oo));
3522
3642
  }
3523
- }), [["__scopeId", "data-v-4a48371d"]]);
3643
+ }), [["__scopeId", "data-v-7aeef19d"]]);
3524
3644
  //#endregion
3525
3645
  //#region src/utils/unwrapParagraph.ts
3526
- function lo(e) {
3646
+ function bo(e) {
3527
3647
  let t = e.match(/^\s*<p\b[^>]*>([\s\S]*)<\/p>\s*$/);
3528
3648
  return !t || /<\/p>\s*<p\b/i.test(t[1]) ? e : t[1];
3529
3649
  }
3530
3650
  //#endregion
3531
3651
  //#region src/components/blocks/TitleBlock.vue
3532
- var uo = /* @__PURE__ */ B({
3652
+ var xo = /* @__PURE__ */ B({
3533
3653
  __name: "TitleBlock",
3534
3654
  props: {
3535
3655
  block: {},
3536
3656
  viewport: {}
3537
3657
  },
3538
3658
  setup(e) {
3539
- let t = e, n = T(() => import("./TitleEditor-BvFbL16O.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: s, handleEditorDone: c } = Ga(() => 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(() => {
3540
3660
  let e = {
3541
3661
  fontSize: `${pe[t.block.level]}px`,
3542
3662
  color: t.block.color,
3543
3663
  textAlign: t.block.textAlign
3544
3664
  };
3545
3665
  return t.block.fontFamily && (e.fontFamily = t.block.fontFamily), e;
3546
- }), u = O(() => `h${t.block.level}`), p = O(() => lo(o.value));
3666
+ }), u = O(() => `h${t.block.level}`), p = O(() => bo(o.value));
3547
3667
  return (t, o) => (f(), k("div", {
3548
3668
  ref_key: "blockRef",
3549
3669
  ref: i,
@@ -3566,11 +3686,19 @@ var uo = /* @__PURE__ */ B({
3566
3686
  innerHTML: p.value
3567
3687
  }, null, 8, ["innerHTML"]))], 36));
3568
3688
  }
3569
- }), fo = { class: "tpl:w-full" }, po = { class: "tpl:flex tpl:gap-0" }, mo = {
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 = {
3570
3698
  key: 0,
3571
3699
  "data-testid": "section-drop-hint",
3572
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)]"
3573
- }, ho = /* @__PURE__ */ B({
3701
+ }, Eo = /* @__PURE__ */ B({
3574
3702
  __name: "SectionBlock",
3575
3703
  props: {
3576
3704
  block: {},
@@ -3578,12 +3706,12 @@ var uo = /* @__PURE__ */ B({
3578
3706
  },
3579
3707
  setup(e) {
3580
3708
  let t = {
3581
- title: uo,
3582
- paragraph: qa,
3583
- image: Pa,
3584
- button: Fr,
3585
- divider: ma,
3586
- custom: fa
3709
+ title: xo,
3710
+ paragraph: no,
3711
+ image: Ua,
3712
+ button: Br,
3713
+ divider: Ca,
3714
+ custom: xa
3587
3715
  }, n = e, { t: r } = Y(), i = J(Ln, "SectionBlock"), a = v(Bn, null), o = v(Gn, null), s = O(() => {
3588
3716
  switch (n.block.columns) {
3589
3717
  case "2": return ["50%", "50%"];
@@ -3610,7 +3738,7 @@ var uo = /* @__PURE__ */ B({
3610
3738
  a[e] = r, i.updateBlock(n.block.id, { children: a });
3611
3739
  }
3612
3740
  function m(e) {
3613
- return Ja(e, o, t);
3741
+ return ro(e, o, t);
3614
3742
  }
3615
3743
  function g(e, t) {
3616
3744
  e.type === "custom" && i.updateBlock(e.id, {
@@ -3618,7 +3746,7 @@ var uo = /* @__PURE__ */ B({
3618
3746
  dataSourceFetched: t.dataSourceFetched
3619
3747
  });
3620
3748
  }
3621
- return (t, n) => (f(), k("div", fo, [I("div", po, [(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", {
3622
3750
  key: n,
3623
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)]" : ""]),
3624
3752
  style: L({ width: s.value[n] })
@@ -3627,7 +3755,7 @@ var uo = /* @__PURE__ */ B({
3627
3755
  group: {
3628
3756
  name: "blocks",
3629
3757
  pull: !0,
3630
- put: (e, t, n) => n.dataset.blockType !== "section"
3758
+ put: (e, t, n) => j(So)(n)
3631
3759
  },
3632
3760
  animation: 150,
3633
3761
  "ghost-class": "tpl-ghost",
@@ -3640,7 +3768,7 @@ var uo = /* @__PURE__ */ B({
3640
3768
  class: "tpl:min-h-[60px]",
3641
3769
  "onUpdate:modelValue": (e) => p(n, e)
3642
3770
  }, {
3643
- default: b(() => [(f(!0), k(R, null, h(u(n), (t) => c((f(), k("div", { key: t.id }, [V(co, {
3771
+ default: b(() => [(f(!0), k(R, null, h(u(n), (t) => c((f(), k("div", { key: t.id }, [V(yo, {
3644
3772
  block: t,
3645
3773
  "is-selected": j(i).state.selectedBlockId === t.id,
3646
3774
  viewport: e.viewport,
@@ -3671,13 +3799,13 @@ var uo = /* @__PURE__ */ B({
3671
3799
  "model-value",
3672
3800
  "group",
3673
3801
  "onUpdate:modelValue"
3674
- ]), u(n).length === 0 ? (f(), k("div", mo, [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))])]));
3675
3803
  }
3676
- }), go = me, _o = {
3804
+ }), Do = me, Oo = {
3677
3805
  small: 24,
3678
3806
  medium: 32,
3679
3807
  large: 48
3680
- }, vo = [
3808
+ }, ko = [
3681
3809
  "facebook",
3682
3810
  "twitter",
3683
3811
  "instagram",
@@ -3695,11 +3823,11 @@ var uo = /* @__PURE__ */ B({
3695
3823
  "github",
3696
3824
  "dribbble",
3697
3825
  "behance"
3698
- ], yo = [
3826
+ ], Ao = [
3699
3827
  "width",
3700
3828
  "height",
3701
3829
  "fill"
3702
- ], bo = ["d"], xo = /* @__PURE__ */ B({
3830
+ ], jo = ["d"], Mo = /* @__PURE__ */ B({
3703
3831
  __name: "SocialIconSvg",
3704
3832
  props: {
3705
3833
  platform: {},
@@ -3707,7 +3835,7 @@ var uo = /* @__PURE__ */ B({
3707
3835
  iconSize: {}
3708
3836
  },
3709
3837
  setup(e) {
3710
- let t = e, n = O(() => go[t.platform]), r = O(() => _o[t.iconSize]), i = O(() => {
3838
+ let t = e, n = O(() => Do[t.platform]), r = O(() => Oo[t.iconSize]), i = O(() => {
3711
3839
  let e = {
3712
3840
  display: "inline-flex",
3713
3841
  alignItems: "center",
@@ -3751,12 +3879,12 @@ var uo = /* @__PURE__ */ B({
3751
3879
  viewBox: "0 0 24 24",
3752
3880
  fill: o.value,
3753
3881
  xmlns: "http://www.w3.org/2000/svg"
3754
- }, [I("path", { d: n.value.path }, null, 8, bo)], 8, yo))], 4));
3882
+ }, [I("path", { d: n.value.path }, null, 8, jo)], 8, Ao))], 4));
3755
3883
  }
3756
- }), So = { class: "tpl:w-full" }, Co = ["href"], wo = {
3884
+ }), No = { class: "tpl:w-full" }, Po = ["href"], Fo = {
3757
3885
  key: 1,
3758
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)]"
3759
- }, To = /* @__PURE__ */ B({
3887
+ }, Io = /* @__PURE__ */ B({
3760
3888
  __name: "SocialIconsBlock",
3761
3889
  props: {
3762
3890
  block: {},
@@ -3769,7 +3897,7 @@ var uo = /* @__PURE__ */ B({
3769
3897
  gap: `${t.block.spacing}px`,
3770
3898
  justifyContent: t.block.align === "left" ? "flex-start" : t.block.align === "right" ? "flex-end" : "center"
3771
3899
  })), i = O(() => t.block.icons.length > 0);
3772
- return (t, a) => (f(), k("div", So, [i.value ? (f(), k("div", {
3900
+ return (t, a) => (f(), k("div", No, [i.value ? (f(), k("div", {
3773
3901
  key: 0,
3774
3902
  style: L(r.value)
3775
3903
  }, [(f(!0), k(R, null, h(e.block.icons, (t) => (f(), k("a", {
@@ -3777,7 +3905,7 @@ var uo = /* @__PURE__ */ B({
3777
3905
  href: t.url || "#",
3778
3906
  class: "tpl:cursor-default",
3779
3907
  onClick: a[0] ||= M(() => {}, ["prevent"])
3780
- }, [V(xo, {
3908
+ }, [V(Mo, {
3781
3909
  platform: t.platform,
3782
3910
  "icon-style": e.block.iconStyle,
3783
3911
  "icon-size": e.block.iconSize
@@ -3785,16 +3913,16 @@ var uo = /* @__PURE__ */ B({
3785
3913
  "platform",
3786
3914
  "icon-style",
3787
3915
  "icon-size"
3788
- ])], 8, Co))), 128))], 4)) : (f(), k("div", wo, [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)]))]));
3789
3917
  }
3790
- }), Eo = { class: "tpl:w-full" }, Do = {
3918
+ }), Lo = { class: "tpl:w-full" }, Ro = {
3791
3919
  key: 0,
3792
3920
  class: "tpl:absolute tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-medium",
3793
3921
  style: {
3794
3922
  "background-color": "var(--tpl-bg-hover)",
3795
3923
  color: "var(--tpl-text-dim)"
3796
3924
  }
3797
- }, Oo = /* @__PURE__ */ B({
3925
+ }, zo = /* @__PURE__ */ B({
3798
3926
  __name: "SpacerBlock",
3799
3927
  props: {
3800
3928
  block: {},
@@ -3806,23 +3934,23 @@ var uo = /* @__PURE__ */ B({
3806
3934
  minHeight: `${t.block.height}px`,
3807
3935
  ...n.state.previewMode ? {} : { borderColor: "var(--tpl-border)" }
3808
3936
  }));
3809
- return (t, i) => (f(), k("div", Eo, [I("div", {
3937
+ return (t, i) => (f(), k("div", Lo, [I("div", {
3810
3938
  style: L(r.value),
3811
3939
  class: F(["tpl:relative tpl:flex tpl:items-center tpl:justify-center", { "tpl:border-y tpl:border-dashed": !j(n).state.previewMode }])
3812
- }, [j(n).state.previewMode ? A("", !0) : (f(), k("span", Do, 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)]));
3813
3941
  }
3814
- }), ko = { class: "tpl:w-full" }, Ao = { key: 0 }, jo = [
3942
+ }), Bo = { class: "tpl:w-full" }, Vo = { key: 0 }, Ho = [
3815
3943
  "aria-label",
3816
3944
  "data-placeholder",
3817
3945
  "onBlur"
3818
- ], Mo = [
3946
+ ], Uo = [
3819
3947
  "aria-label",
3820
3948
  "data-placeholder",
3821
3949
  "onBlur"
3822
- ], No = {
3950
+ ], Wo = {
3823
3951
  key: 1,
3824
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)]"
3825
- }, Po = /*#__PURE__*/ Ii(/* @__PURE__ */ B({
3953
+ }, Go = /*#__PURE__*/ Vi(/* @__PURE__ */ B({
3826
3954
  __name: "TableBlock",
3827
3955
  props: {
3828
3956
  block: {},
@@ -3865,31 +3993,31 @@ var uo = /* @__PURE__ */ B({
3865
3993
  } : n);
3866
3994
  i.updateBlock(n.block.id, { rows: o });
3867
3995
  }
3868
- return (e, n) => (f(), k("div", ko, [a.value ? (f(), k("table", {
3996
+ return (e, n) => (f(), k("div", Bo, [a.value ? (f(), k("table", {
3869
3997
  key: 0,
3870
3998
  style: L(o.value),
3871
3999
  class: "tpl-table-editable"
3872
- }, [u.value ? (f(), k("thead", Ao, [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", {
3873
4001
  key: e.id,
3874
4002
  style: L(l.value),
3875
4003
  "aria-label": j(r).table.cellPlaceholder,
3876
4004
  contenteditable: "true",
3877
4005
  "data-placeholder": j(r).table.cellPlaceholder,
3878
4006
  onBlur: (t) => m(u.value.id, e.id, t),
3879
- onKeydown: n[0] ||= E(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
4007
+ onKeydown: n[0] ||= ee(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
3880
4008
  onClick: M(p, ["stop"])
3881
- }, null, 44, jo)), [[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", {
3882
4010
  key: i.id,
3883
4011
  style: L(s.value),
3884
4012
  "aria-label": j(r).table.cellPlaceholder,
3885
4013
  contenteditable: "true",
3886
4014
  "data-placeholder": j(r).table.cellPlaceholder,
3887
4015
  onBlur: (t) => m(e.id, i.id, t),
3888
- onKeydown: n[1] ||= E(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
4016
+ onKeydown: n[1] ||= ee(M((e) => e.target.blur(), ["prevent"]), ["enter"]),
3889
4017
  onClick: M(p, ["stop"])
3890
- }, null, 44, Mo)), [[t, i.content]])), 128))]))), 128))])], 4)) : (f(), k("div", No, [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)]))]));
3891
4019
  }
3892
- }), [["__scopeId", "data-v-f065872a"]]), Fo = /* @__PURE__ */ B({
4020
+ }), [["__scopeId", "data-v-f065872a"]]), Ko = /* @__PURE__ */ B({
3893
4021
  __name: "VideoPlayButton",
3894
4022
  props: { hoverEffect: {
3895
4023
  type: Boolean,
@@ -3907,7 +4035,7 @@ var uo = /* @__PURE__ */ B({
3907
4035
  });
3908
4036
  //#endregion
3909
4037
  //#region src/utils/videoThumbnail.ts
3910
- function Io(e) {
4038
+ function qo(e) {
3911
4039
  if (!e) return {
3912
4040
  platform: "unknown",
3913
4041
  videoId: null,
@@ -3939,25 +4067,25 @@ function Io(e) {
3939
4067
  thumbnailUrl: null
3940
4068
  };
3941
4069
  }
3942
- function Lo(e, t) {
3943
- return t || Io(e).thumbnailUrl;
4070
+ function Jo(e, t) {
4071
+ return t || qo(e).thumbnailUrl;
3944
4072
  }
3945
4073
  //#endregion
3946
4074
  //#region src/components/blocks/VideoBlock.vue?vue&type=script&setup=true&lang.ts
3947
- var Ro = ["src", "alt"], zo = {
4075
+ var Yo = ["src", "alt"], Xo = {
3948
4076
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
3949
4077
  style: { opacity: "0.7" }
3950
- }, Bo = ["href"], Vo = ["src", "alt"], Ho = ["src", "alt"], Uo = {
4078
+ }, Zo = ["href"], Qo = ["src", "alt"], $o = ["src", "alt"], es = {
3951
4079
  key: 3,
3952
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)]"
3953
- }, Wo = /* @__PURE__ */ B({
4081
+ }, ts = /* @__PURE__ */ B({
3954
4082
  __name: "VideoBlock",
3955
4083
  props: {
3956
4084
  block: {},
3957
4085
  viewport: {}
3958
4086
  },
3959
4087
  setup(e) {
3960
- 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 : Lo(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(() => {
3961
4089
  let e = t.block.align;
3962
4090
  return {
3963
4091
  maxWidth: "100%",
@@ -3978,16 +4106,16 @@ var Ro = ["src", "alt"], zo = {
3978
4106
  class: "tpl:w-full tpl:border-0",
3979
4107
  src: e.block.placeholderUrl,
3980
4108
  alt: e.block.alt
3981
- }, null, 8, Ro), V(Fo)], 4)) : i.value ? (f(), k("div", {
4109
+ }, null, 8, Yo), V(Ko)], 4)) : i.value ? (f(), k("div", {
3982
4110
  key: 1,
3983
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)]",
3984
4112
  style: L([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, s.value])
3985
- }, [V(j(Ai), {
4113
+ }, [V(j(Fi), {
3986
4114
  size: 36,
3987
4115
  "stroke-width": 1.5,
3988
4116
  class: "tpl:text-[var(--tpl-primary)]",
3989
4117
  style: { opacity: "0.5" }
3990
- }), I("span", zo, 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", {
3991
4119
  key: 0,
3992
4120
  href: e.block.url,
3993
4121
  target: "_blank",
@@ -3999,7 +4127,7 @@ var Ro = ["src", "alt"], zo = {
3999
4127
  class: "tpl:w-full tpl:border-0",
4000
4128
  src: a.value,
4001
4129
  alt: e.block.alt
4002
- }, null, 8, Vo), V(Fo, { "hover-effect": "" })], 12, Bo)) : (f(), k("div", {
4130
+ }, null, 8, Qo), V(Ko, { "hover-effect": "" })], 12, Zo)) : (f(), k("div", {
4003
4131
  key: 1,
4004
4132
  class: "tpl:relative tpl:inline-block",
4005
4133
  style: L(s.value)
@@ -4007,31 +4135,31 @@ var Ro = ["src", "alt"], zo = {
4007
4135
  class: "tpl:w-full tpl:border-0",
4008
4136
  src: a.value,
4009
4137
  alt: e.block.alt
4010
- }, null, 8, Ho), V(Fo)], 4))], 64)) : (f(), k("div", Uo, [V(j(Ai), {
4138
+ }, null, 8, $o), V(Ko)], 4))], 64)) : (f(), k("div", es, [V(j(Fi), {
4011
4139
  size: 40,
4012
4140
  "stroke-width": 1.5,
4013
4141
  class: "tpl:text-[var(--tpl-border-light)]"
4014
4142
  }), I("span", null, D(j(n).video.addVideo), 1)]))], 4));
4015
4143
  }
4016
- }), Go = {
4017
- section: ho,
4018
- title: uo,
4019
- paragraph: qa,
4020
- image: Pa,
4021
- button: Fr,
4022
- divider: ma,
4023
- video: Wo,
4024
- social: To,
4025
- menu: Ra,
4026
- table: Po,
4027
- spacer: Oo,
4028
- html: ya,
4029
- countdown: T(() => import("./CountdownBlock-DChGTAsH.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))
4030
4158
  };
4031
- function Ko(e) {
4159
+ function rs(e) {
4032
4160
  let { editor: t, config: n, translations: r, fontsManager: i } = e, { t: a, format: o } = Y(r);
4033
4161
  t.setUiTheme(n.uiTheme ?? "auto");
4034
- 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({
4035
4163
  themeOverrides: u,
4036
4164
  resolvedTheme: c,
4037
4165
  extraStyles: e.themeExtraStyles
@@ -4056,13 +4184,13 @@ function Ko(e) {
4056
4184
  g && (_ = H(f.isNavigating, (e) => {
4057
4185
  e ? g.pause() : g.resume();
4058
4186
  }));
4059
- let v = vr(t, {
4187
+ let v = Cr(t, {
4060
4188
  t: a,
4061
4189
  format: o
4062
- }), y = Tr();
4063
- if (Ar(y, Go), 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);
4064
4192
  function b(e) {
4065
- for (let t of e) y.registerCustom(t, fa);
4193
+ for (let t of e) y.registerCustom(t, xa);
4066
4194
  }
4067
4195
  let x = Fn();
4068
4196
  if (s() && l(x.dispose), e.containerEl) {
@@ -4073,7 +4201,7 @@ function Ko(e) {
4073
4201
  }, { capture: !0 });
4074
4202
  }
4075
4203
  function S(r) {
4076
- x.isActive() && Mr(r, {
4204
+ x.isActive() && Lr(r, {
4077
4205
  history: f,
4078
4206
  selectBlock: (e) => t.selectBlock(e),
4079
4207
  getSelectedBlockId: () => t.state.selectedBlockId,
@@ -4084,19 +4212,19 @@ function Ko(e) {
4084
4212
  }
4085
4213
  q(document, "keydown", S);
4086
4214
  let w = C(null);
4087
- 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));
4088
- let ee = mt(n.mergeTags?.syntax);
4089
- 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);
4090
- 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({
4091
4219
  content: t.content,
4092
4220
  options: n.lint ?? {},
4093
4221
  updateBlock: t.updateBlock,
4094
4222
  updateSettings: t.updateSettings,
4095
4223
  removeBlock: t.removeBlock
4096
4224
  });
4097
- p(ar, T);
4098
- function E() {
4099
- _?.(), T?.destroy(), g?.destroy(), f.destroy();
4225
+ p(lr, E);
4226
+ function ee() {
4227
+ _?.(), E?.destroy(), g?.destroy(), f.destroy();
4100
4228
  }
4101
4229
  return {
4102
4230
  t: a,
@@ -4110,27 +4238,27 @@ function Ko(e) {
4110
4238
  themeOverrides: u,
4111
4239
  registry: y,
4112
4240
  keyboardReorder: v,
4113
- templateLint: T,
4241
+ templateLint: E,
4114
4242
  popoverRoot: w,
4115
4243
  registerCustomBlocks: b,
4116
- destroy: E
4244
+ destroy: ee
4117
4245
  };
4118
4246
  }
4119
4247
  //#endregion
4120
4248
  //#region src/composables/usePopoverRoot.ts
4121
- function qo() {
4122
- return v(sr, C(null));
4249
+ function is() {
4250
+ return v(dr, C(null));
4123
4251
  }
4124
4252
  //#endregion
4125
4253
  //#region src/components/TplModal.vue?vue&type=script&setup=true&lang.ts
4126
- var Jo = ["data-tpl-theme"], Yo = /* @__PURE__ */ B({
4254
+ var as = ["data-tpl-theme"], os = /* @__PURE__ */ B({
4127
4255
  __name: "TplModal",
4128
4256
  props: { visible: { type: Boolean } },
4129
4257
  emits: ["close", "keydown"],
4130
4258
  setup(e, { emit: t }) {
4131
4259
  let n = e, r = t, i = C(null);
4132
- Ui(i, O(() => n.visible));
4133
- let a = v(Un), s = qo();
4260
+ Ji(i, O(() => n.visible));
4261
+ let a = v(Un), s = is();
4134
4262
  function c(e) {
4135
4263
  e.key === "Escape" && r("close"), r("keydown", e);
4136
4264
  }
@@ -4159,11 +4287,11 @@ var Jo = ["data-tpl-theme"], Yo = /* @__PURE__ */ B({
4159
4287
  }, [I("div", {
4160
4288
  ref_key: "dialogRef",
4161
4289
  ref: i
4162
- }, [o(t.$slots, "default")], 512)], 40, Jo)) : A("", !0)]),
4290
+ }, [o(t.$slots, "default")], 512)], 40, as)) : A("", !0)]),
4163
4291
  _: 3
4164
4292
  })], 8, ["to"])) : A("", !0);
4165
4293
  }
4166
- }), Xo = class e {
4294
+ }), ss = class e {
4167
4295
  static DEFAULT_BASE_URL = "https://templatical.com";
4168
4296
  accessToken = null;
4169
4297
  expiresAt = null;
@@ -4264,8 +4392,8 @@ var Jo = ["data-tpl-theme"], Yo = /* @__PURE__ */ B({
4264
4392
  return a.status === 401 && (a = await i(await this.refreshToken())), a;
4265
4393
  }
4266
4394
  };
4267
- function Zo(e, t) {
4268
- return e.mode === "direct" ? new Xo({
4395
+ function cs(e, t) {
4396
+ return e.mode === "direct" ? new ss({
4269
4397
  url: `${(e.baseUrl ?? "https://templatical.com").replace(/\/$/, "")}/api/v1/auth/token`,
4270
4398
  baseUrl: e.baseUrl,
4271
4399
  requestOptions: {
@@ -4279,7 +4407,7 @@ function Zo(e, t) {
4279
4407
  }
4280
4408
  },
4281
4409
  onError: t
4282
- }) : new Xo({
4410
+ }) : new ss({
4283
4411
  url: e.url,
4284
4412
  baseUrl: e.baseUrl,
4285
4413
  requestOptions: e.requestOptions,
@@ -4291,16 +4419,16 @@ function Zo(e, t) {
4291
4419
  function Z(e, t) {
4292
4420
  return e.replace(/\{(\w+)\}/g, (e, n) => encodeURIComponent(t[n] ?? ""));
4293
4421
  }
4294
- var Qo = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${Qo}/templates/{template}`, $o = `${Q}/ai`, es = `${Qo}/media`, ts = `${es}/folders`, ns = `${Qo}/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`, $ = {
4295
4423
  health: "/api/v1/health",
4296
- "projects.config": `${Qo}/config`,
4297
- "broadcasting.auth": `${Qo}/broadcasting/auth`,
4298
- "templates.store": `${Qo}/templates`,
4424
+ "projects.config": `${ls}/config`,
4425
+ "broadcasting.auth": `${ls}/broadcasting/auth`,
4426
+ "templates.store": `${ls}/templates`,
4299
4427
  "templates.show": `${Q}`,
4300
4428
  "templates.update": `${Q}`,
4301
4429
  "templates.destroy": `${Q}`,
4302
4430
  "templates.export": `${Q}/export`,
4303
- "templates.importFromBeefree": `${Qo}/templates/import/from-beefree`,
4431
+ "templates.importFromBeefree": `${ls}/templates/import/from-beefree`,
4304
4432
  "templates.sendTestEmail": `${Q}/send-test-email`,
4305
4433
  "snapshots.index": `${Q}/snapshots`,
4306
4434
  "snapshots.store": `${Q}/snapshots`,
@@ -4311,31 +4439,31 @@ var Qo = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${Qo}/templates/{te
4311
4439
  "comments.update": `${Q}/comments/{comment}`,
4312
4440
  "comments.destroy": `${Q}/comments/{comment}`,
4313
4441
  "comments.resolve": `${Q}/comments/{comment}/resolve`,
4314
- "ai.generate": `${$o}/generate`,
4315
- "ai.conversationMessages": `${$o}/conversation-messages`,
4316
- "ai.suggestions": `${$o}/suggestions`,
4317
- "ai.rewriteText": `${$o}/rewrite-text`,
4318
- "ai.score": `${$o}/score`,
4319
- "ai.fixFinding": `${$o}/fix-finding`,
4320
- "ai.generateFromDesign": `${$o}/generate-from-design`,
4321
- "media.upload": `${es}/upload`,
4322
- "media.browse": `${es}/browse`,
4323
- "media.delete": `${es}/delete`,
4324
- "media.move": `${es}/move`,
4325
- "media.update": `${es}/{media}`,
4326
- "media.replace": `${es}/{media}/replace`,
4327
- "media.checkUsage": `${es}/check-usage`,
4328
- "media.frequentlyUsed": `${es}/frequently-used`,
4329
- "media.importFromUrl": `${es}/import-from-url`,
4330
- "folders.index": `${ts}`,
4331
- "folders.store": `${ts}`,
4332
- "folders.update": `${ts}/{mediaFolder}`,
4333
- "folders.destroy": `${ts}/{mediaFolder}`,
4334
- "savedModules.index": `${ns}`,
4335
- "savedModules.store": `${ns}`,
4336
- "savedModules.update": `${ns}/{savedModule}`,
4337
- "savedModules.destroy": `${ns}/{savedModule}`
4338
- }, rs = 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 {
4339
4467
  authManager;
4340
4468
  constructor(e) {
4341
4469
  this.authManager = e;
@@ -4521,14 +4649,14 @@ var Qo = "/api/v1/projects/{project}/tenants/{tenant}", Q = `${Qo}/templates/{te
4521
4649
  };
4522
4650
  //#endregion
4523
4651
  //#region ../core/src/cloud/websocket-client.ts
4524
- function is(e) {
4652
+ function hs(e) {
4525
4653
  return {
4526
4654
  host: e.host,
4527
4655
  port: e.port,
4528
4656
  appKey: e.app_key
4529
4657
  };
4530
4658
  }
4531
- var as = class {
4659
+ var gs = class {
4532
4660
  pusher = null;
4533
4661
  authManager;
4534
4662
  config;
@@ -4540,7 +4668,7 @@ var as = class {
4540
4668
  if (this.pusher) return;
4541
4669
  let e;
4542
4670
  try {
4543
- ({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)));
4544
4672
  } catch {
4545
4673
  throw Error("Cloud features require the optional peer dependency 'pusher-js'. Install it with: npm install pusher-js");
4546
4674
  }
@@ -4595,7 +4723,7 @@ var as = class {
4595
4723
  };
4596
4724
  //#endregion
4597
4725
  //#region ../core/src/cloud/mcp-operation-handler.ts
4598
- function os(e, t) {
4726
+ function _s(e, t) {
4599
4727
  let { operation: n, data: r } = t;
4600
4728
  switch (n) {
4601
4729
  case "add_block":
@@ -4623,11 +4751,11 @@ function os(e, t) {
4623
4751
  }
4624
4752
  //#endregion
4625
4753
  //#region ../core/src/cloud/editor.ts
4626
- function ss(e) {
4754
+ function vs(e) {
4627
4755
  return e === "1" ? 1 : e === "3" ? 3 : 2;
4628
4756
  }
4629
- function cs(e) {
4630
- let t = new rs(e.authManager), n = S({
4757
+ function ys(e) {
4758
+ let t = new ms(e.authManager), n = S({
4631
4759
  template: null,
4632
4760
  content: We(e.defaultFontFamily, e.templateDefaults),
4633
4761
  selectedBlockId: null,
@@ -4733,7 +4861,7 @@ function cs(e) {
4733
4861
  let l;
4734
4862
  if (r) {
4735
4863
  let e = o(n.content.blocks, r);
4736
- if (!e || e.type !== "section" || i < 0 || i >= ss(e.columns)) return;
4864
+ if (!e || e.type !== "section" || i < 0 || i >= vs(e.columns)) return;
4737
4865
  e.children[i] = e.children[i] || [], l = e.children[i];
4738
4866
  } else l = n.content.blocks;
4739
4867
  let [u] = a.blocks.splice(c, 1);
@@ -4774,17 +4902,17 @@ function cs(e) {
4774
4902
  n.isSaving = !1;
4775
4903
  }
4776
4904
  }
4777
- async function ee() {
4905
+ async function T() {
4778
4906
  if (n.template?.id) try {
4779
4907
  await t.createSnapshot(n.template.id, n.content);
4780
4908
  } catch (t) {
4781
4909
  throw e.onError?.(t), t;
4782
4910
  }
4783
4911
  }
4784
- function T() {
4912
+ function E() {
4785
4913
  return n.template?.id !== void 0;
4786
4914
  }
4787
- function E() {
4915
+ function ee() {
4788
4916
  n.isDirty = !0;
4789
4917
  }
4790
4918
  function D(e) {
@@ -4818,18 +4946,18 @@ function cs(e) {
4818
4946
  create: b,
4819
4947
  load: C,
4820
4948
  save: w,
4821
- createSnapshot: ee,
4822
- hasTemplate: T,
4823
- markDirty: E
4949
+ createSnapshot: T,
4950
+ hasTemplate: E,
4951
+ markDirty: ee
4824
4952
  };
4825
4953
  }
4826
4954
  //#endregion
4827
4955
  //#region ../core/src/cloud/ai-chat.ts
4828
- var ls = 0;
4829
- function us() {
4830
- return `msg_${Date.now()}_${++ls}`;
4956
+ var bs = 0;
4957
+ function xs() {
4958
+ return `msg_${Date.now()}_${++bs}`;
4831
4959
  }
4832
- function ds(e) {
4960
+ function Ss(e) {
4833
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);
4834
4962
  function _(e, t) {
4835
4963
  let n = a.value.findIndex((t) => t.id === e);
@@ -4923,14 +5051,14 @@ function ds(e) {
4923
5051
  let v = n();
4924
5052
  if (!v) throw Error("Template must be saved before using AI generation");
4925
5053
  o.value = !0, c.value = null, l.value = null, h.value = [];
4926
- let y = us();
5054
+ let y = xs();
4927
5055
  a.value = [...a.value, {
4928
5056
  id: y,
4929
5057
  role: "user",
4930
5058
  content: e,
4931
5059
  timestamp: Date.now()
4932
5060
  }];
4933
- let b = us();
5061
+ let b = xs();
4934
5062
  a.value = [...a.value, {
4935
5063
  id: b,
4936
5064
  role: "assistant",
@@ -5021,7 +5149,7 @@ function ds(e) {
5021
5149
  }
5022
5150
  //#endregion
5023
5151
  //#region ../core/src/cloud/ai-config.ts
5024
- function fs(e) {
5152
+ function Cs(e) {
5025
5153
  function t(t) {
5026
5154
  return e === !1 ? !1 : e?.[t] !== !1;
5027
5155
  }
@@ -5032,7 +5160,7 @@ function fs(e) {
5032
5160
  }
5033
5161
  //#endregion
5034
5162
  //#region ../core/src/cloud/template-scoring.ts
5035
- function ps(e) {
5163
+ function ws(e) {
5036
5164
  let { authManager: t, getTemplateId: n } = e, r = C(!1), i = C(null), a = C(null), o = C(null), s = C(""), c = C(null);
5037
5165
  async function l(e, o) {
5038
5166
  let s = n();
@@ -5177,7 +5305,7 @@ function ps(e) {
5177
5305
  }
5178
5306
  //#endregion
5179
5307
  //#region ../core/src/cloud/design-reference.ts
5180
- function ms(e) {
5308
+ function Ts(e) {
5181
5309
  let { authManager: t, getTemplateId: n, onApply: r, onError: i } = e, a = C(!1), o = C(null);
5182
5310
  async function s(e) {
5183
5311
  let s = n();
@@ -5240,8 +5368,8 @@ function ms(e) {
5240
5368
  }
5241
5369
  //#endregion
5242
5370
  //#region ../core/src/cloud/comments.ts
5243
- function hs(e) {
5244
- let { authManager: t, getTemplateId: n, getSocketId: r, onComment: i, onError: a, hasCommentingFeature: o } = e, s = new rs(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(() => {
5245
5373
  let e = 0;
5246
5374
  for (let t of c.value) e += 1 + (t.replies?.length ?? 0);
5247
5375
  return e;
@@ -5367,17 +5495,17 @@ function hs(e) {
5367
5495
  u.value = !1;
5368
5496
  }
5369
5497
  }
5370
- function ee(e) {
5498
+ function T(e) {
5371
5499
  if (e.parent_id) {
5372
5500
  let t = v(e.parent_id);
5373
5501
  t && (t.replies = [...t.replies ?? [], e]);
5374
5502
  } else c.value = [...c.value, e];
5375
5503
  _("created", e);
5376
5504
  }
5377
- function T(e) {
5505
+ function E(e) {
5378
5506
  D(e.id, e), _("updated", e);
5379
5507
  }
5380
- function E(e, t) {
5508
+ function ee(e, t) {
5381
5509
  let n = v(e), r = n ? {
5382
5510
  ...n,
5383
5511
  replies: [...n.replies ?? []]
@@ -5433,24 +5561,24 @@ function hs(e) {
5433
5561
  editComment: x,
5434
5562
  removeComment: S,
5435
5563
  toggleResolve: w,
5436
- applyRemoteCreate: ee,
5437
- applyRemoteUpdate: T,
5438
- applyRemoteDelete: E
5564
+ applyRemoteCreate: T,
5565
+ applyRemoteUpdate: E,
5566
+ applyRemoteDelete: ee
5439
5567
  };
5440
5568
  }
5441
5569
  //#endregion
5442
5570
  //#region ../core/src/cloud/comment-listener.ts
5443
- function gs(e) {
5571
+ function Ds(e) {
5444
5572
  let { comments: t, channel: n } = e;
5445
5573
  H(n, (e, n) => {
5446
5574
  n && n.unbind("comment-broadcast"), e && e.bind("comment-broadcast", (e) => {
5447
- _s(t, e);
5575
+ Os(t, e);
5448
5576
  });
5449
5577
  }), l(() => {
5450
5578
  n.value?.unbind("comment-broadcast");
5451
5579
  });
5452
5580
  }
5453
- function _s(e, t) {
5581
+ function Os(e, t) {
5454
5582
  switch (t.action) {
5455
5583
  case "comment_created":
5456
5584
  e.applyRemoteCreate(t.comment);
@@ -5469,7 +5597,7 @@ function _s(e, t) {
5469
5597
  }
5470
5598
  //#endregion
5471
5599
  //#region ../core/src/cloud/collaboration.ts
5472
- var vs = [
5600
+ var ks = [
5473
5601
  "pusher:member_added",
5474
5602
  "pusher:member_removed",
5475
5603
  "client-block_locked",
@@ -5477,10 +5605,10 @@ var vs = [
5477
5605
  "client-operation",
5478
5606
  "mcp-operation"
5479
5607
  ];
5480
- function ys(e) {
5481
- for (let t of vs) e.unbind(t);
5608
+ function As(e) {
5609
+ for (let t of ks) e.unbind(t);
5482
5610
  }
5483
- var bs = [
5611
+ var js = [
5484
5612
  "#3b82f6",
5485
5613
  "#ef4444",
5486
5614
  "#10b981",
@@ -5492,10 +5620,10 @@ var bs = [
5492
5620
  "#6366f1",
5493
5621
  "#14b8a6"
5494
5622
  ];
5495
- function xs(e) {
5623
+ function Ms(e) {
5496
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 ?? "");
5497
5625
  function u() {
5498
- let e = bs[o % bs.length];
5626
+ let e = js[o % js.length];
5499
5627
  return o++, e;
5500
5628
  }
5501
5629
  function d(e) {
@@ -5537,7 +5665,7 @@ function xs(e) {
5537
5665
  function h(e) {
5538
5666
  s = !0;
5539
5667
  try {
5540
- os(n, e);
5668
+ _s(n, e);
5541
5669
  } finally {
5542
5670
  s = !1;
5543
5671
  }
@@ -5557,7 +5685,7 @@ function xs(e) {
5557
5685
  return H(() => n.state.selectedBlockId, (e, t) => {
5558
5686
  s || (t && v(t), e && _(e));
5559
5687
  }), H(r, (t, n) => {
5560
- if (n && ys(n), !t) {
5688
+ if (n && As(n), !t) {
5561
5689
  i.value = [], a.value = /* @__PURE__ */ new Map(), o = 0;
5562
5690
  return;
5563
5691
  }
@@ -5589,7 +5717,7 @@ function xs(e) {
5589
5717
  h(e);
5590
5718
  });
5591
5719
  }), l(() => {
5592
- r.value && ys(r.value);
5720
+ r.value && As(r.value);
5593
5721
  }), {
5594
5722
  collaborators: i,
5595
5723
  lockedBlocks: a,
@@ -5599,7 +5727,7 @@ function xs(e) {
5599
5727
  }
5600
5728
  //#endregion
5601
5729
  //#region ../core/src/cloud/collaboration-broadcast.ts
5602
- function Ss(e, t) {
5730
+ function Ns(e, t) {
5603
5731
  let n = e.addBlock, r = e.updateBlock, i = e.removeBlock, a = e.moveBlock, o = e.updateSettings, s = e.setContent;
5604
5732
  e.addBlock = (e, r, i, a) => {
5605
5733
  n(e, r, i, a), t._broadcastOperation({
@@ -5654,11 +5782,11 @@ function Ss(e, t) {
5654
5782
  }
5655
5783
  //#endregion
5656
5784
  //#region ../core/src/cloud/web-socket.ts
5657
- function Cs(e) {
5785
+ function Ps(e) {
5658
5786
  let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = null, o = null;
5659
5787
  async function s(e, s) {
5660
5788
  if (a) return;
5661
- a = new as({
5789
+ a = new gs({
5662
5790
  authManager: t,
5663
5791
  config: s,
5664
5792
  onError: n
@@ -5686,8 +5814,8 @@ function Cs(e) {
5686
5814
  }
5687
5815
  //#endregion
5688
5816
  //#region ../core/src/cloud/saved-modules.ts
5689
- function ws(e) {
5690
- let t = new rs(e.authManager), n = C([]), r = C(!1);
5817
+ function Fs(e) {
5818
+ let t = new ms(e.authManager), n = C([]), r = C(!1);
5691
5819
  async function i(i) {
5692
5820
  r.value = !0;
5693
5821
  try {
@@ -5735,8 +5863,8 @@ function ws(e) {
5735
5863
  }
5736
5864
  //#endregion
5737
5865
  //#region ../core/src/cloud/snapshots.ts
5738
- function Ts(e) {
5739
- let t = new rs(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);
5740
5868
  async function a() {
5741
5869
  r.value = !0;
5742
5870
  try {
@@ -5768,8 +5896,8 @@ function Ts(e) {
5768
5896
  }
5769
5897
  //#endregion
5770
5898
  //#region ../core/src/cloud/test-email.ts
5771
- function Es(e) {
5772
- let { authManager: t, getTemplateId: n, save: r, exportHtml: i, onError: a, isAuthReady: o, onBeforeTestEmail: s } = e, c = new rs(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);
5773
5901
  o && H(o, (e) => {
5774
5902
  e && (d.value = t.testEmailConfig);
5775
5903
  }, { immediate: !0 });
@@ -5805,8 +5933,8 @@ function Es(e) {
5805
5933
  }
5806
5934
  //#endregion
5807
5935
  //#region ../core/src/cloud/export.ts
5808
- function Ds(e) {
5809
- let { authManager: t, getFontsConfig: n, canUseCustomFonts: r } = e, i = new rs(t);
5936
+ function Rs(e) {
5937
+ let { authManager: t, getFontsConfig: n, canUseCustomFonts: r } = e, i = new ms(t);
5810
5938
  function a() {
5811
5939
  let e = n?.();
5812
5940
  return {
@@ -5832,8 +5960,8 @@ function Ds(e) {
5832
5960
  }
5833
5961
  //#endregion
5834
5962
  //#region ../core/src/cloud/plan-config.ts
5835
- function Os(e) {
5836
- let { authManager: t, onError: n } = e, r = C(null), i = C(!1), a = new rs(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);
5837
5965
  function s(e) {
5838
5966
  return r.value?.features[e] ?? !1;
5839
5967
  }
@@ -5859,11 +5987,11 @@ function Os(e) {
5859
5987
  }
5860
5988
  //#endregion
5861
5989
  //#region ../core/src/cloud/health-check.ts
5862
- var ks = 5e3;
5863
- function As(e) {
5990
+ var Bs = 5e3;
5991
+ function Vs(e) {
5864
5992
  return e.authManager ? e.authManager.resolveUrl($.health) : `${(e.baseUrl ?? "https://templatical.com").replace(/\/$/, "")}${$.health}`;
5865
5993
  }
5866
- async function js(e, t) {
5994
+ async function Hs(e, t) {
5867
5995
  let n = performance.now();
5868
5996
  try {
5869
5997
  let r = t ? await t.authenticatedFetch($.health, {
@@ -5915,7 +6043,7 @@ async function js(e, t) {
5915
6043
  };
5916
6044
  }
5917
6045
  }
5918
- async function Ms(e) {
6046
+ async function Us(e) {
5919
6047
  if (!e?.host || !e?.app_key) return {
5920
6048
  ok: !1,
5921
6049
  error: "WebSocket configuration not available"
@@ -5931,7 +6059,7 @@ async function Ms(e) {
5931
6059
  ok: !1,
5932
6060
  error: "WebSocket connection timed out"
5933
6061
  });
5934
- }, ks);
6062
+ }, Bs);
5935
6063
  try {
5936
6064
  n = new WebSocket(t);
5937
6065
  } catch (t) {
@@ -5951,8 +6079,8 @@ async function Ms(e) {
5951
6079
  };
5952
6080
  });
5953
6081
  }
5954
- async function Ns(e = {}) {
5955
- let t = await js(As(e), e.authManager), n = await Ms(t.wsConfig);
6082
+ async function Ws(e = {}) {
6083
+ let t = await Hs(Vs(e), e.authManager), n = await Us(t.wsConfig);
5956
6084
  return {
5957
6085
  api: t.api,
5958
6086
  websocket: n,
@@ -5962,29 +6090,29 @@ async function Ns(e = {}) {
5962
6090
  }
5963
6091
  //#endregion
5964
6092
  //#region ../core/src/cloud/mcp-listener.ts
5965
- function Ps(e) {
6093
+ function Gs(e) {
5966
6094
  let { editor: t, channel: n, onOperation: r } = e;
5967
6095
  H(n, (e, n) => {
5968
6096
  n && n.unbind("mcp-operation"), e && e.bind("mcp-operation", (e) => {
5969
- os(t, e), r?.(e);
6097
+ _s(t, e), r?.(e);
5970
6098
  });
5971
6099
  });
5972
6100
  }
5973
6101
  //#endregion
5974
6102
  //#region src/cloud/components/AiChatSidebar.vue?vue&type=script&setup=true&lang.ts
5975
- var Fs = {
6103
+ var Ks = {
5976
6104
  key: 0,
5977
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)]"
5978
- }, Is = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Ls = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, Rs = { class: "tpl:flex tpl:items-center tpl:gap-1" }, zs = ["title"], Bs = { class: "tpl:relative tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col" }, Vs = {
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 = {
5979
6107
  key: 0,
5980
6108
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
5981
- }, Hs = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Us = {
6109
+ }, $s = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, ec = {
5982
6110
  key: 1,
5983
6111
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
5984
- }, Ws = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Gs = {
6112
+ }, tc = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, nc = {
5985
6113
  key: 2,
5986
6114
  class: "tpl:flex tpl:flex-col tpl:gap-4"
5987
- }, Ks = {
6115
+ }, rc = {
5988
6116
  key: 0,
5989
6117
  class: "tpl:self-end tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3.5 tpl:py-2.5 tpl:text-sm",
5990
6118
  style: {
@@ -5993,10 +6121,10 @@ var Fs = {
5993
6121
  "max-width": "85%",
5994
6122
  "box-shadow": "var(--tpl-shadow)"
5995
6123
  }
5996
- }, qs = {
6124
+ }, ic = {
5997
6125
  key: 1,
5998
6126
  class: "tpl:flex tpl:flex-col tpl:gap-2"
5999
- }, Js = {
6127
+ }, ac = {
6000
6128
  key: 1,
6001
6129
  class: "tpl:rounded-[var(--tpl-radius-sm)] tpl:px-3.5 tpl:py-2.5 tpl:text-sm tpl:whitespace-pre-wrap",
6002
6130
  style: {
@@ -6005,21 +6133,21 @@ var Fs = {
6005
6133
  color: "var(--tpl-text)",
6006
6134
  "box-shadow": "var(--tpl-shadow)"
6007
6135
  }
6008
- }, Ys = {
6136
+ }, oc = {
6009
6137
  key: 0,
6010
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",
6011
6139
  style: {
6012
6140
  "background-color": "var(--tpl-danger-light)",
6013
6141
  color: "var(--tpl-danger)"
6014
6142
  }
6015
- }, Xs = {
6143
+ }, sc = {
6016
6144
  key: 1,
6017
6145
  class: "tpl:absolute tpl:right-0 tpl:bottom-0 tpl:left-0 tpl:z-10 tpl:px-3 tpl:pb-3",
6018
6146
  style: {
6019
6147
  "background-color": "color-mix(\n in srgb,\n var(--tpl-bg) 50%,\n transparent\n )",
6020
6148
  "backdrop-filter": "blur(2px)"
6021
6149
  }
6022
- }, Zs = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, Qs = ["onClick"], $s = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, ec = { 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)]" }, tc = ["placeholder", "disabled"], nc = ["disabled"], rc = { class: "tpl:m-0 tpl:px-1 tpl:pt-2 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, ic = /*@__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({
6023
6151
  __name: "AiChatSidebar",
6024
6152
  props: {
6025
6153
  visible: { type: Boolean },
@@ -6027,7 +6155,7 @@ var Fs = {
6027
6155
  },
6028
6156
  emits: ["close"],
6029
6157
  setup(e, { emit: t }) {
6030
- let n = e, r = t, i = J(pr, "AiChatSidebar"), a = J(Ln, "AiChatSidebar"), o = J(cr, "AiChatSidebar"), s = v(Yn, []), l = ba(), u = ds({
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({
6031
6159
  authManager: o,
6032
6160
  getTemplateId: () => a.state.template?.id ?? null,
6033
6161
  onApply: n.onApply,
@@ -6053,18 +6181,18 @@ var Fs = {
6053
6181
  (u.messages.value?.length ?? 0) === 0 && a.content.value.blocks.length === 0 && u.loadSuggestions(a.content.value, s);
6054
6182
  }
6055
6183
  });
6056
- async function ee() {
6184
+ async function T() {
6057
6185
  let e = d.value.trim();
6058
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()));
6059
6187
  }
6060
- function T(e) {
6188
+ function E(e) {
6061
6189
  return e.replace(/```json[\s\S]*?```/g, "").replace(/```json[\s\S]*/g, "").trim();
6062
6190
  }
6063
- function E(e) {
6064
- y(), d.value = e, ee();
6191
+ function ee(e) {
6192
+ y(), d.value = e, T();
6065
6193
  }
6066
6194
  function te(e) {
6067
- e.key === "Enter" && !e.shiftKey && (e.preventDefault(), ee());
6195
+ e.key === "Enter" && !e.shiftKey && (e.preventDefault(), T());
6068
6196
  }
6069
6197
  return (t, n) => (f(), N(ie, {
6070
6198
  "enter-active-class": "tpl-ai-slide-enter-active",
@@ -6074,42 +6202,42 @@ var Fs = {
6074
6202
  "leave-from-class": "tpl:translate-x-0",
6075
6203
  "leave-to-class": "tpl:translate-x-full"
6076
6204
  }, {
6077
- default: b(() => [e.visible ? (f(), k("div", Fs, [
6078
- I("div", Is, [I("div", Ls, [V(j(Xr), {
6205
+ default: b(() => [e.visible ? (f(), k("div", Ks, [
6206
+ I("div", qs, [I("div", Js, [V(j(ki), {
6079
6207
  size: 13,
6080
6208
  "stroke-width": 2
6081
- }), I("span", null, D(j(i).aiChat.title), 1)]), I("div", Rs, [(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", {
6082
6210
  key: 0,
6083
6211
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6084
6212
  title: j(i).aiChat.clear,
6085
6213
  onClick: n[0] ||= (e) => j(u).clearChat()
6086
- }, [V(j(Di), {
6214
+ }, [V(j(ji), {
6087
6215
  size: 14,
6088
6216
  "stroke-width": 2
6089
- })], 8, zs)) : A("", !0), I("button", {
6217
+ })], 8, Xs)) : A("", !0), I("button", {
6090
6218
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6091
6219
  onClick: n[1] ||= (e) => r("close")
6092
- }, [V(j(ji), {
6220
+ }, [V(j(Ii), {
6093
6221
  size: 14,
6094
6222
  "stroke-width": 2
6095
6223
  })])])]),
6096
- I("div", Bs, [
6224
+ I("div", Zs, [
6097
6225
  I("div", {
6098
6226
  ref_key: "messagesContainer",
6099
6227
  ref: p,
6100
6228
  class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4"
6101
- }, [j(u).isLoadingHistory.value ? (f(), k("div", Vs, [V(j(Jr), {
6229
+ }, [j(u).isLoadingHistory.value ? (f(), k("div", Qs, [V(j(_i), {
6102
6230
  class: "tpl-spinner tpl:text-[var(--tpl-text-muted)]",
6103
6231
  size: 24,
6104
6232
  "stroke-width": 2
6105
- }), I("p", Hs, D(j(i).aiChat.loadingHistory), 1)])) : (j(u).messages.value?.length ?? 0) === 0 ? (f(), k("div", Us, [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), {
6106
6234
  size: 32,
6107
6235
  "stroke-width": 1.5,
6108
6236
  class: "tpl:text-[var(--tpl-text-dim)]"
6109
- }), I("p", Ws, D(j(i).aiChat.placeholder), 1)])) : (f(), k("div", Gs, [(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", {
6110
6238
  key: e.id,
6111
6239
  class: "tpl:flex tpl:flex-col tpl:gap-2"
6112
- }, [e.role === "user" ? (f(), k("div", Ks, D(e.content), 1)) : (f(), k("div", qs, [!T(e.content) && j(u).isGenerating.value && t === (j(u).messages.value?.length ?? 0) - 1 ? (f(), N(Bi, { key: 0 })) : (f(), k("div", Js, 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", {
6113
6241
  key: 2,
6114
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",
6115
6243
  style: {
@@ -6118,19 +6246,19 @@ var Fs = {
6118
6246
  "background-color": "transparent"
6119
6247
  },
6120
6248
  onClick: n[2] ||= (e) => j(u).toggleLastRevert()
6121
- }, [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), {
6122
6250
  size: 12,
6123
6251
  "stroke-width": 2
6124
- }), 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), {
6125
6253
  size: 12,
6126
6254
  "stroke-width": 2
6127
6255
  }), z(" " + D(j(i).aiChat.revert), 1)], 64))])) : A("", !0)]))]))), 128))]))], 512),
6128
- j(u).error.value ? (f(), k("div", Ys, [V(j(Gr), {
6256
+ j(u).error.value ? (f(), k("div", oc, [V(j(ri), {
6129
6257
  size: 14,
6130
6258
  "stroke-width": 2,
6131
6259
  class: "tpl:mt-0.5 tpl:shrink-0"
6132
6260
  }), I("span", null, D(j(u).error.value === "ai_apply_failed" ? j(i).aiChat.applyFailed : j(i).aiChat.error), 1)])) : A("", !0),
6133
- (j(u).suggestions.value?.length ?? 0) > 0 ? (f(), k("div", Xs, [I("div", Zs, [(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", {
6134
6262
  key: t,
6135
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"]),
6136
6264
  style: {
@@ -6139,111 +6267,111 @@ var Fs = {
6139
6267
  "background-color": "var(--tpl-bg)",
6140
6268
  "box-shadow": "var(--tpl-shadow)"
6141
6269
  },
6142
- onClick: (t) => E(e)
6143
- }, D(e), 11, Qs))), 128))])])) : A("", !0)
6270
+ onClick: (t) => ee(e)
6271
+ }, D(e), 11, lc))), 128))])])) : A("", !0)
6144
6272
  ]),
6145
- I("div", $s, [I("div", ec, [c(I("textarea", {
6273
+ I("div", uc, [I("div", dc, [c(I("textarea", {
6146
6274
  "onUpdate:modelValue": n[3] ||= (e) => d.value = e,
6147
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)]",
6148
6276
  placeholder: j(i).aiChat.inputPlaceholder,
6149
6277
  disabled: j(u).isGenerating.value,
6150
6278
  rows: "3",
6151
6279
  onKeydown: te
6152
- }, null, 40, tc), [[ae, d.value]]), I("button", {
6280
+ }, null, 40, fc), [[ae, d.value]]), I("button", {
6153
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)]",
6154
6282
  disabled: !d.value.trim() || j(u).isGenerating.value,
6155
- onClick: ee
6156
- }, [V(j(Ci), {
6283
+ onClick: T
6284
+ }, [V(j(Ti), {
6157
6285
  size: 16,
6158
6286
  "stroke-width": 2
6159
- })], 8, nc)]), I("p", rc, D(j(i).aiMenu.disclaimer), 1)])
6287
+ })], 8, pc)]), I("p", mc, D(j(i).aiMenu.disclaimer), 1)])
6160
6288
  ])) : A("", !0)]),
6161
6289
  _: 1
6162
6290
  }));
6163
6291
  }
6164
- }), ac = /* @__PURE__ */ e({ default: () => oc }), oc = /*#__PURE__*/ Ii(ic, [["__scopeId", "data-v-a55e4bff"]]), sc = 6e4, cc = 36e5, lc = 864e5;
6165
- function uc(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) {
6166
6294
  let i = new Date(e).getTime();
6167
6295
  if (Number.isNaN(i)) return null;
6168
6296
  let a = Date.now() - i;
6169
6297
  if (a < -6e4) return null;
6170
- let o = Math.floor(a / sc), s = Math.floor(a / cc), c = Math.floor(a / lc);
6298
+ let o = Math.floor(a / vc), s = Math.floor(a / yc), c = Math.floor(a / bc);
6171
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));
6172
6300
  }
6173
6301
  //#endregion
6174
6302
  //#region src/cloud/components/CommentsSidebar.vue?vue&type=script&setup=true&lang.ts
6175
- var dc = {
6303
+ var Sc = {
6176
6304
  key: 0,
6177
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)]"
6178
- }, fc = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, pc = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text)]" }, mc = {
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 = {
6179
6307
  key: 0,
6180
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)]"
6181
- }, hc = { class: "tpl:flex tpl:gap-1 tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2" }, gc = { class: "tpl:flex-1 tpl:overflow-y-auto" }, _c = {
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 = {
6182
6310
  key: 0,
6183
6311
  class: "tpl:flex tpl:h-full tpl:items-center tpl:justify-center"
6184
- }, vc = {
6312
+ }, kc = {
6185
6313
  key: 1,
6186
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"
6187
- }, yc = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, bc = {
6315
+ }, Ac = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, jc = {
6188
6316
  key: 2,
6189
6317
  class: "tpl:flex tpl:flex-col tpl:gap-3 tpl:p-3"
6190
- }, xc = { class: "tpl-comment-card tpl:rounded-lg tpl:border tpl:px-3.5 tpl:py-3" }, Sc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, Cc = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, wc = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Tc = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Ec = {
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 = {
6191
6319
  key: 0,
6192
6320
  class: "tpl:text-[10px] tpl:italic tpl:text-[var(--tpl-text-dim)]"
6193
- }, Dc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, Oc = ["title", "onClick"], kc = ["title", "onClick"], Ac = ["title", "onClick"], jc = {
6321
+ }, Rc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, zc = ["title", "onClick"], Bc = ["title", "onClick"], Vc = ["title", "onClick"], Hc = {
6194
6322
  key: 0,
6195
6323
  class: "tpl:mt-1 tpl:flex tpl:items-center tpl:gap-1 tpl:text-[10px] tpl:text-[var(--tpl-primary)]"
6196
- }, Mc = {
6324
+ }, Uc = {
6197
6325
  key: 0,
6198
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)]"
6199
- }, Nc = ["onClick"], Pc = {
6327
+ }, Wc = ["onClick"], Gc = {
6200
6328
  key: 2,
6201
6329
  class: "tpl:mt-2"
6202
- }, Fc = ["onKeydown"], Ic = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, Lc = ["disabled", "onClick"], Rc = {
6330
+ }, Kc = ["onKeydown"], qc = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, Jc = ["disabled", "onClick"], Yc = {
6203
6331
  key: 3,
6204
6332
  class: "tpl:mt-1.5 tpl:text-xs tpl:leading-relaxed tpl:whitespace-pre-wrap tpl:text-[var(--tpl-text)]"
6205
- }, zc = {
6333
+ }, Xc = {
6206
6334
  key: 4,
6207
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)]"
6208
- }, Bc = { class: "tpl:flex-1" }, Vc = ["onClick"], Hc = {
6336
+ }, Zc = { class: "tpl:flex-1" }, Qc = ["onClick"], $c = {
6209
6337
  key: 5,
6210
6338
  class: "tpl:mt-2 tpl:flex tpl:items-center tpl:gap-2"
6211
- }, Uc = ["title", "onClick"], Wc = ["onClick"], Gc = {
6339
+ }, el = ["title", "onClick"], tl = ["onClick"], nl = {
6212
6340
  key: 0,
6213
6341
  class: "tpl-comment-replies tpl:ml-5 tpl:pl-3 tpl:pt-2"
6214
- }, Kc = { class: "tpl:flex tpl:items-start tpl:justify-between tpl:gap-2" }, qc = { class: "tpl:flex tpl:items-center tpl:gap-1.5" }, Jc = { class: "tpl:text-xs tpl:font-semibold tpl:text-[var(--tpl-text)]" }, Yc = { class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]" }, Xc = {
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 = {
6215
6343
  key: 0,
6216
6344
  class: "tpl:text-[10px] tpl:italic tpl:text-[var(--tpl-text-dim)]"
6217
- }, Zc = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, Qc = ["title", "onClick"], $c = ["title", "onClick"], el = {
6345
+ }, cl = { class: "tpl:flex tpl:items-center tpl:gap-0.5" }, ll = ["title", "onClick"], ul = ["title", "onClick"], dl = {
6218
6346
  key: 0,
6219
6347
  class: "tpl:mt-1.5"
6220
- }, tl = ["onKeydown"], nl = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, rl = ["disabled", "onClick"], il = {
6348
+ }, fl = ["onKeydown"], pl = { class: "tpl:mt-1.5 tpl:flex tpl:gap-1.5" }, ml = ["disabled", "onClick"], hl = {
6221
6349
  key: 1,
6222
6350
  class: "tpl:mt-1 tpl:text-xs tpl:leading-relaxed tpl:whitespace-pre-wrap tpl:text-[var(--tpl-text)]"
6223
- }, al = {
6351
+ }, gl = {
6224
6352
  key: 2,
6225
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)]"
6226
- }, ol = { class: "tpl:flex-1" }, sl = ["onClick"], cl = {
6354
+ }, _l = { class: "tpl:flex-1" }, vl = ["onClick"], yl = {
6227
6355
  key: 0,
6228
6356
  class: "tpl-comment-replies tpl:ml-5 tpl:pl-3 tpl:pt-2"
6229
- }, ll = { class: "tpl:flex tpl:items-end tpl:gap-2" }, ul = ["placeholder", "onKeydown"], dl = { class: "tpl:flex tpl:shrink-0 tpl:flex-col tpl:gap-1" }, fl = ["disabled", "onClick"], pl = { class: "tpl:border-t tpl:p-3 tpl:border-[var(--tpl-border)]" }, ml = {
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 = {
6230
6358
  key: 0,
6231
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)]"
6232
- }, hl = {
6360
+ }, El = {
6233
6361
  key: 1,
6234
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)]"
6235
- }, gl = ["placeholder", "disabled"], _l = ["disabled"], vl = /*@__PURE__*/ B({
6363
+ }, Dl = ["placeholder", "disabled"], Ol = ["disabled"], kl = /*@__PURE__*/ B({
6236
6364
  __name: "CommentsSidebar",
6237
6365
  props: { visible: { type: Boolean } },
6238
6366
  emits: ["close", "filterBlock"],
6239
6367
  setup(e, { expose: t, emit: n }) {
6240
- 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(() => {
6241
6369
  let e = /* @__PURE__ */ new Set();
6242
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);
6243
6371
  return e;
6244
6372
  });
6245
6373
  function te(e) {
6246
- return e ? !E.value.has(e) : !1;
6374
+ return e ? !ee.value.has(e) : !1;
6247
6375
  }
6248
6376
  let ne = O(() => d.value !== "block" || !p.value ? !1 : !(s.savedBlockIds?.value.has(p.value) ?? !0)), re = O(() => {
6249
6377
  let e = u.comments.value;
@@ -6302,10 +6430,10 @@ var dc = {
6302
6430
  await u.toggleResolve(e);
6303
6431
  }
6304
6432
  function _e(e) {
6305
- return e.author_identifier === T.value;
6433
+ return e.author_identifier === E.value;
6306
6434
  }
6307
6435
  function ve(e) {
6308
- return uc(e, o.snapshotHistory) ?? e;
6436
+ return xc(e, o.snapshotHistory) ?? e;
6309
6437
  }
6310
6438
  function ye(e) {
6311
6439
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), fe());
@@ -6318,7 +6446,7 @@ var dc = {
6318
6446
  }
6319
6447
  function Se() {
6320
6448
  m(() => {
6321
- ee.value?.focus();
6449
+ T.value?.focus();
6322
6450
  });
6323
6451
  }
6324
6452
  return t({
@@ -6332,22 +6460,22 @@ var dc = {
6332
6460
  "leave-from-class": "tpl:translate-x-0",
6333
6461
  "leave-to-class": "tpl:translate-x-full"
6334
6462
  }, {
6335
- default: b(() => [e.visible ? (f(), k("div", dc, [
6336
- I("div", fc, [I("div", pc, [
6337
- V(j(gi), {
6463
+ default: b(() => [e.visible ? (f(), k("div", Sc, [
6464
+ I("div", Cc, [I("div", wc, [
6465
+ V(j(vi), {
6338
6466
  size: 13,
6339
6467
  "stroke-width": 2
6340
6468
  }),
6341
6469
  I("span", null, D(j(o).comments.title), 1),
6342
- j(u).unresolvedCount.value > 0 ? (f(), k("span", mc, 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)
6343
6471
  ]), I("button", {
6344
6472
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6345
6473
  onClick: n[0] ||= (e) => i("close")
6346
- }, [V(j(ji), {
6474
+ }, [V(j(Ii), {
6347
6475
  size: 14,
6348
6476
  "stroke-width": 2
6349
6477
  })])]),
6350
- I("div", hc, [
6478
+ I("div", Ec, [
6351
6479
  I("button", {
6352
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" : ""]),
6353
6481
  onClick: n[1] ||= (e) => M("unresolved")
@@ -6362,156 +6490,156 @@ var dc = {
6362
6490
  onClick: n[3] ||= (e) => M("block", j(s).state.selectedBlockId ?? void 0)
6363
6491
  }, D(j(o).comments.filterBlock), 3)) : A("", !0)
6364
6492
  ]),
6365
- I("div", gc, [j(u).isLoading.value ? (f(), k("div", _c, [V(j(Jr), {
6493
+ I("div", Dc, [j(u).isLoading.value ? (f(), k("div", Oc, [V(j(_i), {
6366
6494
  class: "tpl-spinner tpl:text-[var(--tpl-text-muted)]",
6367
6495
  size: 24,
6368
6496
  "stroke-width": 2
6369
- })])) : re.value.length === 0 ? (f(), k("div", vc, [V(j(gi), {
6497
+ })])) : re.value.length === 0 ? (f(), k("div", kc, [V(j(vi), {
6370
6498
  size: 32,
6371
6499
  "stroke-width": 1.5,
6372
6500
  class: "tpl:text-[var(--tpl-text-dim)]"
6373
- }), I("p", yc, D(d.value === "all" ? j(o).comments.noCommentsHint : j(o).comments.noComments), 1)])) : (f(), k("div", bc, [(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", {
6374
6502
  key: e.id,
6375
6503
  class: "tpl-comment-thread"
6376
6504
  }, [
6377
- I("div", xc, [
6378
- I("div", Sc, [I("div", Cc, [
6379
- I("span", wc, D(_e(e) ? j(o).comments.ownedByYou : e.author_name), 1),
6380
- I("span", Tc, D(ve(e.created_at)), 1),
6381
- e.updated_at === e.created_at ? A("", !0) : (f(), k("span", Ec, " (" + D(j(o).comments.edited) + ") ", 1))
6382
- ]), I("div", Dc, [
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, [
6383
6511
  I("button", {
6384
6512
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6385
6513
  title: e.resolved_at ? j(o).comments.unresolve : j(o).comments.resolve,
6386
6514
  onClick: (t) => ge(e.id)
6387
- }, [V(j(Kr), {
6515
+ }, [V(j(ii), {
6388
6516
  size: 13,
6389
6517
  "stroke-width": 2,
6390
6518
  class: "tpl-resolve-icon",
6391
6519
  style: L({ color: e.resolved_at ? "var(--tpl-primary)" : void 0 })
6392
- }, null, 8, ["style"])], 8, Oc),
6520
+ }, null, 8, ["style"])], 8, zc),
6393
6521
  _e(e) ? (f(), k("button", {
6394
6522
  key: 0,
6395
6523
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6396
6524
  title: j(o).comments.edit,
6397
6525
  onClick: (t) => le(e)
6398
- }, [V(j(vi), {
6526
+ }, [V(j(bi), {
6399
6527
  size: 12,
6400
6528
  "stroke-width": 2
6401
- })], 8, kc)) : A("", !0),
6529
+ })], 8, Bc)) : A("", !0),
6402
6530
  _e(e) ? (f(), k("button", {
6403
6531
  key: 1,
6404
6532
  class: "tpl-comment-action tpl-comment-delete tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6405
6533
  title: j(o).comments.delete,
6406
6534
  onClick: (t) => ue(e.id)
6407
- }, [V(j(Di), {
6535
+ }, [V(j(ji), {
6408
6536
  size: 12,
6409
6537
  "stroke-width": 2
6410
- })], 8, Ac)) : A("", !0)
6538
+ })], 8, Vc)) : A("", !0)
6411
6539
  ])]),
6412
6540
  V(ie, { name: "tpl-resolve" }, {
6413
- default: b(() => [e.resolved_at ? (f(), k("div", jc, [V(j(ei), {
6541
+ default: b(() => [e.resolved_at ? (f(), k("div", Hc, [V(j(Qr), {
6414
6542
  size: 10,
6415
6543
  "stroke-width": 2.5
6416
6544
  }), I("span", null, D(j(a)(j(o).comments.resolvedBy, { name: e.resolved_by_name ?? "" })), 1)])) : A("", !0)]),
6417
6545
  _: 2
6418
6546
  }, 1024),
6419
- e.block_id && te(e.block_id) ? (f(), k("span", Mc, 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", {
6420
6548
  key: 1,
6421
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)]",
6422
6550
  onClick: (t) => j(s).selectBlock(e.block_id ?? "")
6423
- }, " Block ", 8, Nc)) : A("", !0),
6424
- y.value === e.id ? (f(), k("div", Pc, [c(I("textarea", {
6551
+ }, " Block ", 8, Wc)) : A("", !0),
6552
+ y.value === e.id ? (f(), k("div", Gc, [c(I("textarea", {
6425
6553
  "onUpdate:modelValue": n[4] ||= (e) => x.value = e,
6426
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)]",
6427
6555
  rows: "3",
6428
6556
  onKeydown: (t) => xe(t, e.id)
6429
- }, null, 40, Fc), [[ae, x.value]]), I("div", Ic, [I("button", {
6557
+ }, null, 40, Kc), [[ae, x.value]]), I("div", qc, [I("button", {
6430
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)]",
6431
6559
  disabled: !x.value.trim() || j(u).isSubmitting.value,
6432
6560
  onClick: (t) => me(e.id)
6433
- }, D(j(o).comments.save), 9, Lc), I("button", {
6561
+ }, D(j(o).comments.save), 9, Jc), I("button", {
6434
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)]",
6435
6563
  onClick: n[5] ||= (e) => B()
6436
- }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", Rc, D(e.body), 1)),
6437
- w.value === e.id ? (f(), k("div", zc, [
6438
- I("span", Bc, 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),
6439
6567
  I("button", {
6440
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)]",
6441
6569
  onClick: (t) => he(e.id)
6442
- }, D(j(o).comments.delete), 9, Vc),
6570
+ }, D(j(o).comments.delete), 9, Qc),
6443
6571
  I("button", {
6444
6572
  class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6445
6573
  onClick: n[6] ||= (e) => de()
6446
6574
  }, D(j(o).comments.cancel), 1)
6447
6575
  ])) : A("", !0),
6448
- y.value !== e.id && w.value !== e.id ? (f(), k("div", Hc, [I("button", {
6576
+ y.value !== e.id && w.value !== e.id ? (f(), k("div", $c, [I("button", {
6449
6577
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6450
6578
  title: j(o).comments.reply,
6451
6579
  onClick: (t) => se(e.id)
6452
- }, [V(j(Si), {
6580
+ }, [V(j(wi), {
6453
6581
  size: 13,
6454
6582
  "stroke-width": 2,
6455
6583
  class: "tpl:text-[var(--tpl-primary)]"
6456
- })], 8, Uc), (e.replies?.length ?? 0) > 0 ? (f(), k("button", {
6584
+ })], 8, el), (e.replies?.length ?? 0) > 0 ? (f(), k("button", {
6457
6585
  key: 0,
6458
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)]",
6459
6587
  onClick: (t) => oe(e.id)
6460
- }, [S.value.has(e.id) ? (f(), N(j(ii), {
6588
+ }, [S.value.has(e.id) ? (f(), N(j(ni), {
6461
6589
  key: 0,
6462
6590
  size: 11,
6463
6591
  "stroke-width": 2
6464
- })) : (f(), N(j(ti), {
6592
+ })) : (f(), N(j($r), {
6465
6593
  key: 1,
6466
6594
  size: 11,
6467
6595
  "stroke-width": 2
6468
- })), 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, Wc)) : 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)
6469
6597
  ]),
6470
6598
  V(ie, { name: "tpl-replies" }, {
6471
- default: b(() => [S.value.has(e.id) && (e.replies?.length ?? 0) > 0 ? (f(), k("div", Gc, [(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", {
6472
6600
  key: t.id,
6473
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" : ""])
6474
6602
  }, [
6475
- I("div", Kc, [I("div", qc, [
6476
- I("span", Jc, D(_e(t) ? j(o).comments.ownedByYou : t.author_name), 1),
6477
- I("span", Yc, D(ve(t.created_at)), 1),
6478
- t.updated_at === t.created_at ? A("", !0) : (f(), k("span", Xc, " (" + D(j(o).comments.edited) + ") ", 1))
6479
- ]), I("div", Zc, [_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", {
6480
6608
  key: 0,
6481
6609
  class: "tpl-comment-action tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6482
6610
  title: j(o).comments.edit,
6483
6611
  onClick: (e) => le(t)
6484
- }, [V(j(vi), {
6612
+ }, [V(j(bi), {
6485
6613
  size: 11,
6486
6614
  "stroke-width": 2
6487
- })], 8, Qc)) : A("", !0), _e(t) ? (f(), k("button", {
6615
+ })], 8, ll)) : A("", !0), _e(t) ? (f(), k("button", {
6488
6616
  key: 1,
6489
6617
  class: "tpl-comment-action tpl-comment-delete tpl:rounded tpl:p-1 tpl:transition-colors tpl:duration-150",
6490
6618
  title: j(o).comments.delete,
6491
6619
  onClick: (e) => ue(t.id)
6492
- }, [V(j(Di), {
6620
+ }, [V(j(ji), {
6493
6621
  size: 11,
6494
6622
  "stroke-width": 2
6495
- })], 8, $c)) : A("", !0)])]),
6496
- y.value === t.id ? (f(), k("div", el, [c(I("textarea", {
6623
+ })], 8, ul)) : A("", !0)])]),
6624
+ y.value === t.id ? (f(), k("div", dl, [c(I("textarea", {
6497
6625
  "onUpdate:modelValue": n[7] ||= (e) => x.value = e,
6498
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)]",
6499
6627
  rows: "2",
6500
6628
  onKeydown: (e) => xe(e, t.id)
6501
- }, null, 40, tl), [[ae, x.value]]), I("div", nl, [I("button", {
6629
+ }, null, 40, fl), [[ae, x.value]]), I("div", pl, [I("button", {
6502
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)]",
6503
6631
  disabled: !x.value.trim() || j(u).isSubmitting.value,
6504
6632
  onClick: (e) => me(t.id)
6505
- }, D(j(o).comments.save), 9, rl), I("button", {
6633
+ }, D(j(o).comments.save), 9, ml), I("button", {
6506
6634
  class: "tpl:rounded-md tpl:px-2.5 tpl:py-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6507
6635
  onClick: n[8] ||= (e) => B()
6508
- }, D(j(o).comments.cancel), 1)])])) : (f(), k("p", il, D(t.body), 1)),
6509
- w.value === t.id ? (f(), k("div", al, [
6510
- I("span", ol, 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),
6511
6639
  I("button", {
6512
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)]",
6513
6641
  onClick: (e) => he(t.id)
6514
- }, D(j(o).comments.delete), 9, sl),
6642
+ }, D(j(o).comments.delete), 9, vl),
6515
6643
  I("button", {
6516
6644
  class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]",
6517
6645
  onClick: n[9] ||= (e) => de()
@@ -6521,78 +6649,78 @@ var dc = {
6521
6649
  _: 2
6522
6650
  }, 1024),
6523
6651
  V(ie, { name: "tpl-replies" }, {
6524
- default: b(() => [_.value === e.id ? (f(), k("div", cl, [I("div", ll, [c(I("textarea", {
6652
+ default: b(() => [_.value === e.id ? (f(), k("div", yl, [I("div", bl, [c(I("textarea", {
6525
6653
  "onUpdate:modelValue": n[10] ||= (e) => v.value = e,
6526
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)]",
6527
6655
  placeholder: j(o).comments.replyPlaceholder,
6528
6656
  rows: "2",
6529
6657
  onKeydown: (t) => be(t, e.id)
6530
- }, null, 40, ul), [[ae, v.value]]), I("div", dl, [I("button", {
6658
+ }, null, 40, xl), [[ae, v.value]]), I("div", Sl, [I("button", {
6531
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)]",
6532
6660
  disabled: !v.value.trim() || j(u).isSubmitting.value,
6533
6661
  onClick: (t) => pe(e.id)
6534
- }, [V(j(Ci), {
6662
+ }, [V(j(Ti), {
6535
6663
  size: 14,
6536
6664
  "stroke-width": 2
6537
- })], 8, fl), I("button", {
6665
+ })], 8, Cl), I("button", {
6538
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)]",
6539
6667
  onClick: n[11] ||= (e) => ce()
6540
- }, [V(j(ji), {
6668
+ }, [V(j(Ii), {
6541
6669
  size: 14,
6542
6670
  "stroke-width": 2
6543
6671
  })])])])])) : A("", !0)]),
6544
6672
  _: 2
6545
6673
  }, 1024)
6546
6674
  ]))), 128))]))]),
6547
- I("div", pl, [ne.value ? (f(), k("div", ml, D(j(o).comments.saveTemplateFirst), 1)) : (f(), k("div", hl, [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", {
6548
6676
  ref_key: "newCommentInput",
6549
- ref: ee,
6677
+ ref: T,
6550
6678
  "onUpdate:modelValue": n[12] ||= (e) => g.value = e,
6551
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)]",
6552
6680
  placeholder: j(o).comments.placeholder,
6553
6681
  disabled: j(u).isSubmitting.value,
6554
6682
  rows: "2",
6555
6683
  onKeydown: ye
6556
- }, null, 40, gl), [[ae, g.value]]), I("button", {
6684
+ }, null, 40, Dl), [[ae, g.value]]), I("button", {
6557
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)]",
6558
6686
  disabled: !g.value.trim() || j(u).isSubmitting.value,
6559
6687
  onClick: fe
6560
- }, [j(u).isSubmitting.value ? (f(), N(j(Jr), {
6688
+ }, [j(u).isSubmitting.value ? (f(), N(j(_i), {
6561
6689
  key: 0,
6562
6690
  class: "tpl-spinner",
6563
6691
  size: 16,
6564
6692
  "stroke-width": 2
6565
- })) : (f(), N(j(Ci), {
6693
+ })) : (f(), N(j(Ti), {
6566
6694
  key: 1,
6567
6695
  size: 16,
6568
6696
  "stroke-width": 2
6569
- }))], 8, _l)]))])
6697
+ }))], 8, Ol)]))])
6570
6698
  ])) : A("", !0)]),
6571
6699
  _: 1
6572
6700
  }));
6573
6701
  }
6574
- }), yl = /* @__PURE__ */ e({ default: () => bl }), bl = /*#__PURE__*/ Ii(vl, [["__scopeId", "data-v-d204f573"]]), xl = {
6702
+ }), Al = /* @__PURE__ */ e({ default: () => jl }), jl = /*#__PURE__*/ Vi(kl, [["__scopeId", "data-v-d204f573"]]), Ml = {
6575
6703
  key: 0,
6576
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)]"
6577
- }, Sl = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, Cl = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, wl = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, Tl = {
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 = {
6578
6706
  key: 0,
6579
6707
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6580
- }, El = { class: "tpl:flex tpl:w-full tpl:flex-col tpl:items-center tpl:gap-3" }, Dl = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Ol = {
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 = {
6581
6709
  key: 1,
6582
6710
  class: "tpl:flex tpl:flex-col tpl:gap-4"
6583
- }, kl = { class: "tpl:flex tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, Al = {
6711
+ }, Bl = { class: "tpl:flex tpl:gap-1 tpl:rounded-[var(--tpl-radius-sm)] tpl:p-1 tpl:bg-[var(--tpl-bg-hover)]" }, Vl = {
6584
6712
  key: 0,
6585
6713
  class: "tpl:flex tpl:flex-col tpl:gap-2"
6586
- }, jl = { class: "tpl:relative tpl:overflow-hidden tpl:rounded-[var(--tpl-radius)] tpl:border tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg)]" }, Ml = ["src", "alt"], Nl = {
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 = {
6587
6715
  key: 1,
6588
6716
  class: "tpl:flex tpl:h-32 tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2"
6589
- }, Pl = { class: "tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Fl = { class: "tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]" }, Il = { class: "tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, Ll = ["accept"], Rl = { class: "tpl:flex tpl:flex-col tpl:gap-1.5" }, zl = { class: "tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Bl = ["placeholder"], Vl = {
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 = {
6590
6718
  key: 0,
6591
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)]"
6592
- }, Hl = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, Ul = { class: "tpl:flex tpl:gap-2" }, Wl = {
6720
+ }, $l = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, eu = { class: "tpl:flex tpl:gap-2" }, tu = {
6593
6721
  key: 1,
6594
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)]"
6595
- }, Gl = ["disabled"], Kl = { class: "tpl:m-0 tpl:pt-1 tpl:text-center tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]" }, ql = /*@__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({
6596
6724
  __name: "DesignReferenceSidebar",
6597
6725
  props: {
6598
6726
  visible: { type: Boolean },
@@ -6600,8 +6728,8 @@ var dc = {
6600
6728
  },
6601
6729
  emits: ["close", "apply"],
6602
6730
  setup(e, { emit: t }) {
6603
- let n = e, r = t, { t: i } = Ki(), a = J(Ln, "DesignReferenceSidebar"), o = ms({
6604
- authManager: J(cr, "DesignReferenceSidebar"),
6731
+ let n = e, r = t, { t: i } = Zi(), a = J(Ln, "DesignReferenceSidebar"), o = Ts({
6732
+ authManager: J(fr, "DesignReferenceSidebar"),
6605
6733
  getTemplateId: () => a.state.template?.id ?? null,
6606
6734
  onApply: (e) => r("apply", e)
6607
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);
@@ -6642,12 +6770,12 @@ var dc = {
6642
6770
  function w() {
6643
6771
  h.value = !1;
6644
6772
  }
6645
- function ee(e) {
6773
+ function T(e) {
6646
6774
  e.preventDefault(), h.value = !1;
6647
6775
  let t = e.dataTransfer?.files?.[0];
6648
6776
  t && y(t);
6649
6777
  }
6650
- function T() {
6778
+ function E() {
6651
6779
  if (!g.value) return;
6652
6780
  if (n.hasExistingBlocks && !m.value) {
6653
6781
  m.value = !0;
@@ -6657,7 +6785,7 @@ var dc = {
6657
6785
  let e = {};
6658
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);
6659
6787
  }
6660
- function E() {
6788
+ function ee() {
6661
6789
  m.value = !1;
6662
6790
  }
6663
6791
  return H(() => n.visible, (e) => {
@@ -6672,17 +6800,17 @@ var dc = {
6672
6800
  "leave-from-class": "tpl:translate-x-0",
6673
6801
  "leave-to-class": "tpl:translate-x-full"
6674
6802
  }, {
6675
- default: b(() => [e.visible ? (f(), k("div", xl, [I("div", Sl, [I("div", Cl, [V(j(pi), {
6803
+ default: b(() => [e.visible ? (f(), k("div", Ml, [I("div", Nl, [I("div", Pl, [V(j(mi), {
6676
6804
  size: 13,
6677
6805
  "stroke-width": 2
6678
6806
  }), I("span", null, D(j(i).designReference.title), 1)]), I("button", {
6679
6807
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
6680
6808
  onClick: n[0] ||= (e) => r("close")
6681
- }, [V(j(ji), {
6809
+ }, [V(j(Ii), {
6682
6810
  size: 14,
6683
6811
  "stroke-width": 2
6684
- })])]), I("div", wl, [j(o).isGenerating.value ? (f(), k("div", Tl, [I("div", El, [V(Bi), I("p", Dl, D(j(i).designReference.generating), 1)])])) : (f(), k("div", Ol, [
6685
- I("div", kl, [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", {
6686
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",
6687
6815
  style: L({
6688
6816
  backgroundColor: l.value === "image" ? "var(--tpl-bg)" : "transparent",
@@ -6705,19 +6833,19 @@ var dc = {
6705
6833
  size: 12,
6706
6834
  "stroke-width": 2
6707
6835
  }), z(" " + D(j(i).designReference.uploadPdf), 1)], 4)]),
6708
- I("div", null, [u.value ? (f(), k("div", Al, [I("div", jl, [p.value ? (f(), k("img", {
6836
+ I("div", null, [u.value ? (f(), k("div", Vl, [I("div", Hl, [p.value ? (f(), k("img", {
6709
6837
  key: 0,
6710
6838
  src: p.value,
6711
6839
  alt: u.value.name,
6712
6840
  class: "tpl:h-auto tpl:max-h-48 tpl:w-full tpl:object-contain"
6713
- }, null, 8, Ml)) : (f(), k("div", Nl, [V(j(di), {
6841
+ }, null, 8, Ul)) : (f(), k("div", Wl, [V(j(di), {
6714
6842
  size: 32,
6715
6843
  "stroke-width": 1.5,
6716
6844
  class: "tpl:text-[var(--tpl-text-dim)]"
6717
- }), I("span", Pl, D(u.value.name), 1)])), I("button", {
6845
+ }), I("span", Gl, D(u.value.name), 1)])), I("button", {
6718
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)]",
6719
6847
  onClick: x
6720
- }, [V(j(ji), {
6848
+ }, [V(j(Ii), {
6721
6849
  size: 12,
6722
6850
  "stroke-width": 2
6723
6851
  })])])])) : (f(), k("div", {
@@ -6730,15 +6858,15 @@ var dc = {
6730
6858
  onClick: n[3] ||= (e) => s.value?.click(),
6731
6859
  onDragover: S,
6732
6860
  onDragleave: w,
6733
- onDrop: ee
6861
+ onDrop: T
6734
6862
  }, [
6735
- V(j(ki), {
6863
+ V(j(Pi), {
6736
6864
  size: 24,
6737
6865
  "stroke-width": 1.5,
6738
6866
  class: "tpl:text-[var(--tpl-text-dim)]"
6739
6867
  }),
6740
- I("span", Fl, D(j(i).designReference.dropHint), 1),
6741
- I("span", Il, 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)
6742
6870
  ], 36)), I("input", {
6743
6871
  ref_key: "fileInput",
6744
6872
  ref: s,
@@ -6746,22 +6874,22 @@ var dc = {
6746
6874
  class: "tpl:hidden",
6747
6875
  accept: l.value === "image" ? "image/png,image/jpeg,image/webp" : "application/pdf",
6748
6876
  onChange: v
6749
- }, null, 40, Ll)]),
6750
- I("div", Rl, [I("label", zl, 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", {
6751
6879
  "onUpdate:modelValue": n[4] ||= (e) => d.value = e,
6752
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"]]),
6753
6881
  placeholder: j(i).designReference.promptPlaceholder,
6754
6882
  rows: "3"
6755
- }, null, 8, Bl), [[ae, d.value]])]),
6756
- m.value ? (f(), k("div", Vl, [I("p", Hl, D(j(i).designReference.replaceWarning), 1), I("div", Ul, [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", {
6757
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)]",
6758
6886
  style: { "background-color": "transparent" },
6759
- onClick: E
6887
+ onClick: ee
6760
6888
  }, D(j(i).designReference.replaceCancel), 1), I("button", {
6761
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)]",
6762
- onClick: T
6890
+ onClick: E
6763
6891
  }, D(j(i).designReference.replaceConfirm), 1)])])) : A("", !0),
6764
- j(o).error.value ? (f(), k("div", Wl, [V(j(Gr), {
6892
+ j(o).error.value ? (f(), k("div", tu, [V(j(ri), {
6765
6893
  size: 14,
6766
6894
  "stroke-width": 2,
6767
6895
  class: "tpl:mt-0.5 tpl:shrink-0"
@@ -6770,36 +6898,36 @@ var dc = {
6770
6898
  key: 2,
6771
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)]",
6772
6900
  disabled: !g.value,
6773
- onClick: T
6774
- }, [V(j(pi), {
6901
+ onClick: E
6902
+ }, [V(j(mi), {
6775
6903
  size: 16,
6776
6904
  "stroke-width": 2
6777
- }), z(" " + D(j(i).designReference.generate), 1)], 8, Gl)),
6778
- I("p", Kl, 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)
6779
6907
  ]))])])) : A("", !0)]),
6780
6908
  _: 1
6781
6909
  }));
6782
6910
  }
6783
- }), Jl = /* @__PURE__ */ e({ default: () => Yl }), Yl = /*#__PURE__*/ Ii(ql, [["__scopeId", "data-v-bdbf8d0d"]]), Xl = ["disabled", "title"], Zl = ["title"], Ql = {
6911
+ }), au = /* @__PURE__ */ e({ default: () => ou }), ou = /*#__PURE__*/ Vi(iu, [["__scopeId", "data-v-bdbf8d0d"]]), su = ["disabled", "title"], cu = ["title"], lu = {
6784
6912
  key: 0,
6785
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)]",
6786
6914
  style: {
6787
6915
  "backdrop-filter": "blur(8px)",
6788
6916
  "-webkit-backdrop-filter": "blur(8px)"
6789
6917
  }
6790
- }, $l = { 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)]" }, eu = {
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 = {
6791
6919
  key: 0,
6792
6920
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:py-8"
6793
- }, tu = {
6921
+ }, fu = {
6794
6922
  key: 1,
6795
6923
  class: "tpl:px-3 tpl:py-6 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
6796
- }, nu = {
6924
+ }, pu = {
6797
6925
  key: 2,
6798
6926
  class: "tpl:max-h-64 tpl:overflow-y-auto"
6799
- }, ru = ["disabled", "onClick"], iu = { class: "tpl:flex tpl:flex-col tpl:gap-0.5" }, au = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, ou = {
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 = {
6800
6928
  key: 0,
6801
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)]"
6802
- }, su = ["disabled", "title"], cu = /*@__PURE__*/ B({
6930
+ }, vu = ["disabled", "title"], yu = /*@__PURE__*/ B({
6803
6931
  __name: "SnapshotHistory",
6804
6932
  props: {
6805
6933
  snapshots: {},
@@ -6808,7 +6936,7 @@ var dc = {
6808
6936
  },
6809
6937
  emits: ["load", "navigate"],
6810
6938
  setup(e, { emit: t }) {
6811
- 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);
6812
6940
  H(() => n.snapshots.length, () => {
6813
6941
  c.value = -1;
6814
6942
  });
@@ -6827,7 +6955,7 @@ var dc = {
6827
6955
  t !== -1 && (c.value = t, r("navigate", n.snapshots[t])), o.value = !1;
6828
6956
  }
6829
6957
  function _(e) {
6830
- let t = uc(e, a.snapshotHistory, i, 7);
6958
+ let t = xc(e, a.snapshotHistory, i, 7);
6831
6959
  return t === null ? new Date(e).toLocaleDateString(void 0, {
6832
6960
  month: "short",
6833
6961
  day: "numeric",
@@ -6847,10 +6975,10 @@ var dc = {
6847
6975
  disabled: !u.value,
6848
6976
  title: j(a).snapshotHistory.olderSnapshot,
6849
6977
  onClick: M(p, ["stop"])
6850
- }, [V(j(ni), {
6978
+ }, [V(j(ei), {
6851
6979
  size: 14,
6852
6980
  "stroke-width": 2
6853
- })], 8, Xl),
6981
+ })], 8, su),
6854
6982
  I("button", {
6855
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)]",
6856
6984
  title: j(a).snapshotHistory.tooltip,
@@ -6858,23 +6986,23 @@ var dc = {
6858
6986
  }, [V(j(ai), {
6859
6987
  size: 16,
6860
6988
  "stroke-width": 1.5
6861
- }), V(j(ti), {
6989
+ }), V(j($r), {
6862
6990
  class: F(["tpl:transition-transform tpl:duration-150", { "tpl:rotate-180": o.value }]),
6863
6991
  size: 10,
6864
6992
  "stroke-width": 2
6865
- }, null, 8, ["class"])], 8, Zl),
6993
+ }, null, 8, ["class"])], 8, cu),
6866
6994
  V(ie, { name: "tpl-dropdown" }, {
6867
- default: b(() => [o.value ? (f(), k("div", Ql, [I("div", $l, D(j(a).snapshotHistory.dropdownTitle), 1), e.isLoading ? (f(), k("div", eu, [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), {
6868
6996
  class: "tpl:animate-spin tpl:text-[var(--tpl-primary)]",
6869
6997
  size: 20,
6870
6998
  "stroke-width": 2
6871
- })])) : e.snapshots.length === 0 ? (f(), k("div", tu, D(j(a).snapshotHistory.noSnapshots), 1)) : (f(), k("div", nu, [(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", {
6872
7000
  key: t.id,
6873
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)]",
6874
7002
  style: { "background-color": "transparent" },
6875
7003
  disabled: e.isRestoring,
6876
7004
  onClick: (e) => g(t.id)
6877
- }, [I("div", iu, [I("div", au, [I("span", null, D(_(t.created_at)), 1), t.is_autosave ? (f(), k("span", ou, D(j(a).snapshotHistory.auto), 1)) : A("", !0)])])], 8, ru))), 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)]),
6878
7006
  _: 1
6879
7007
  }),
6880
7008
  I("button", {
@@ -6882,74 +7010,74 @@ var dc = {
6882
7010
  disabled: !l.value,
6883
7011
  title: j(a).snapshotHistory.newerSnapshot,
6884
7012
  onClick: M(d, ["stop"])
6885
- }, [V(j(ri), {
7013
+ }, [V(j(ti), {
6886
7014
  size: 14,
6887
7015
  "stroke-width": 2
6888
- })], 8, su)
7016
+ })], 8, vu)
6889
7017
  ], 512));
6890
7018
  }
6891
- }), lu = /* @__PURE__ */ e({ default: () => uu }), uu = cu;
7019
+ }), bu = /* @__PURE__ */ e({ default: () => xu }), xu = yu;
6892
7020
  //#endregion
6893
7021
  //#region src/cloud/utils/scoringStyles.ts
6894
- function du(e) {
7022
+ function Su(e) {
6895
7023
  return e >= 80 ? "var(--tpl-success)" : e >= 60 ? "var(--tpl-warning)" : "var(--tpl-danger)";
6896
7024
  }
6897
- function fu(e) {
7025
+ function Cu(e) {
6898
7026
  return e >= 80 ? "var(--tpl-success-light)" : e >= 60 ? "var(--tpl-warning-light)" : "var(--tpl-danger-light)";
6899
7027
  }
6900
- function pu(e) {
7028
+ function wu(e) {
6901
7029
  return e === "high" ? "var(--tpl-danger)" : e === "medium" ? "var(--tpl-warning)" : "var(--tpl-text-muted)";
6902
7030
  }
6903
- function mu(e) {
7031
+ function Tu(e) {
6904
7032
  return e === "high" ? "var(--tpl-danger-light)" : e === "medium" ? "var(--tpl-warning-light)" : "var(--tpl-bg-hover)";
6905
7033
  }
6906
7034
  //#endregion
6907
7035
  //#region src/cloud/components/TemplateScoringPanel.vue?vue&type=script&setup=true&lang.ts
6908
- var hu = {
7036
+ var Eu = {
6909
7037
  key: 0,
6910
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)]"
6911
- }, gu = { class: "tpl:flex tpl:items-center tpl:justify-between tpl:border-b tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-3" }, _u = { class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-primary)]" }, vu = { class: "tpl:flex tpl:items-center tpl:gap-1" }, yu = ["title"], bu = { class: "tpl:flex-1 tpl:overflow-y-auto tpl:p-4" }, xu = {
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 = {
6912
7040
  key: 0,
6913
7041
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6914
- }, Su = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Cu = {
7042
+ }, Nu = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Pu = {
6915
7043
  key: 1,
6916
7044
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6917
- }, wu = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Tu = {
7045
+ }, Fu = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Iu = {
6918
7046
  key: 2,
6919
7047
  class: "tpl:flex tpl:flex-col tpl:gap-4"
6920
- }, Eu = { class: "tpl:text-xs tpl:font-medium tpl:uppercase tpl:tracking-wider tpl:text-[var(--tpl-text-muted)]" }, Du = {
7048
+ }, Lu = { class: "tpl:text-xs tpl:font-medium tpl:uppercase tpl:tracking-wider tpl:text-[var(--tpl-text-muted)]" }, Ru = {
6921
7049
  key: 0,
6922
7050
  class: "tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
6923
- }, Ou = {
7051
+ }, zu = {
6924
7052
  key: 0,
6925
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)]"
6926
- }, ku = ["onClick"], Au = { class: "tpl:flex-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, ju = {
7054
+ }, Bu = ["onClick"], Vu = { class: "tpl:flex-1 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-text)]" }, Hu = {
6927
7055
  key: 0,
6928
7056
  class: "tpl:text-[10px] tpl:text-[var(--tpl-text-dim)]"
6929
- }, Mu = {
7057
+ }, Uu = {
6930
7058
  key: 0,
6931
7059
  class: "tpl:border-t tpl:border-[var(--tpl-border)]"
6932
- }, Nu = {
7060
+ }, Wu = {
6933
7061
  key: 0,
6934
7062
  class: "tpl:px-3 tpl:py-3 tpl:text-center tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
6935
- }, Pu = { class: "tpl:flex tpl:items-start tpl:gap-2" }, Fu = { class: "tpl:flex-1 tpl:min-w-0" }, Iu = { class: "tpl:flex tpl:items-start tpl:gap-1.5" }, Lu = { class: "tpl:text-xs tpl:leading-snug tpl:text-[var(--tpl-text)]" }, Ru = {
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 = {
6936
7064
  key: 0,
6937
7065
  class: "tpl:mt-1 tpl:text-[11px] tpl:leading-snug tpl:text-[var(--tpl-text-dim)]"
6938
- }, zu = {
7066
+ }, Xu = {
6939
7067
  key: 1,
6940
7068
  class: "tpl:mt-2 tpl:flex tpl:justify-center"
6941
- }, Bu = ["disabled", "onClick"], Vu = {
7069
+ }, Zu = ["disabled", "onClick"], Qu = {
6942
7070
  key: 0,
6943
7071
  class: "tpl:mt-1.5 tpl:text-[11px] tpl:text-[var(--tpl-danger)]"
6944
- }, Hu = {
7072
+ }, $u = {
6945
7073
  key: 3,
6946
7074
  class: "tpl:flex tpl:h-full tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:text-center"
6947
- }, Uu = { class: "tpl:max-w-[240px] tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Wu = { 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)]" }, Gu = /*@__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({
6948
7076
  __name: "TemplateScoringPanel",
6949
7077
  props: { visible: { type: Boolean } },
6950
7078
  emits: ["close"],
6951
7079
  setup(e, { emit: t }) {
6952
- 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({
6953
7081
  spam: !0,
6954
7082
  readability: !0,
6955
7083
  accessibility: !0,
@@ -6964,10 +7092,10 @@ var hu = {
6964
7092
  "accessibility",
6965
7093
  "bestPractices"
6966
7094
  ], p = {
6967
- spam: Yr,
7095
+ spam: Oi,
6968
7096
  readability: li,
6969
- accessibility: Xr,
6970
- bestPractices: Mi
7097
+ accessibility: ki,
7098
+ bestPractices: Li
6971
7099
  };
6972
7100
  function m() {
6973
7101
  o.score(a.content.value, s);
@@ -6995,50 +7123,50 @@ var hu = {
6995
7123
  "leave-from-class": "tpl:translate-x-0",
6996
7124
  "leave-to-class": "tpl:translate-x-full"
6997
7125
  }, {
6998
- default: b(() => [e.visible ? (f(), k("div", hu, [I("div", gu, [I("div", _u, [V(j(Ti), {
7126
+ default: b(() => [e.visible ? (f(), k("div", Eu, [I("div", Du, [I("div", Ou, [V(j(Di), {
6999
7127
  size: 13,
7000
7128
  "stroke-width": 2
7001
- }), I("span", null, D(j(i).scoring.title), 1)]), I("div", vu, [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", {
7002
7130
  key: 0,
7003
7131
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
7004
7132
  title: j(i).scoring.rescore,
7005
7133
  onClick: n[0] ||= (e) => m()
7006
- }, [V(j(xi), {
7134
+ }, [V(j(Ci), {
7007
7135
  size: 14,
7008
7136
  "stroke-width": 2
7009
- })], 8, yu)) : A("", !0), I("button", {
7137
+ })], 8, Au)) : A("", !0), I("button", {
7010
7138
  class: "tpl:rounded-md tpl:p-0.5 tpl:transition-colors tpl:duration-150 tpl:text-[var(--tpl-text-muted)]",
7011
7139
  onClick: n[1] ||= (e) => r("close")
7012
- }, [V(j(ji), {
7140
+ }, [V(j(Ii), {
7013
7141
  size: 14,
7014
7142
  "stroke-width": 2
7015
- })])])]), I("div", bu, [j(o).isScoring.value ? (f(), k("div", xu, [I("p", Su, D(j(i).scoring.scoring), 1), V(Bi, { class: "tpl:w-3/4" })])) : j(o).error.value && !j(o).scoringResult.value ? (f(), k("div", Cu, [
7016
- 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), {
7017
7145
  size: 32,
7018
7146
  "stroke-width": 1.5,
7019
7147
  class: "tpl:text-[var(--tpl-danger)]"
7020
7148
  }),
7021
- I("p", wu, D(j(i).scoring.error), 1),
7149
+ I("p", Fu, D(j(i).scoring.error), 1),
7022
7150
  I("button", {
7023
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)]",
7024
7152
  onClick: n[2] ||= (e) => m()
7025
- }, [V(j(xi), {
7153
+ }, [V(j(Ci), {
7026
7154
  size: 12,
7027
7155
  "stroke-width": 2
7028
7156
  }), z(" " + D(j(i).scoring.rescore), 1)])
7029
- ])) : j(o).scoringResult.value ? (f(), k("div", Tu, [
7157
+ ])) : j(o).scoringResult.value ? (f(), k("div", Iu, [
7030
7158
  I("div", {
7031
7159
  class: "tpl:flex tpl:flex-col tpl:items-center tpl:gap-2 tpl:rounded-[var(--tpl-radius)] tpl:p-5",
7032
- style: L({ backgroundColor: j(fu)(j(o).scoringResult.value.score) })
7160
+ style: L({ backgroundColor: j(Cu)(j(o).scoringResult.value.score) })
7033
7161
  }, [
7034
7162
  I("span", {
7035
7163
  class: "tpl:text-4xl tpl:font-bold tpl:tabular-nums",
7036
- style: L({ color: j(du)(j(o).scoringResult.value.score) })
7164
+ style: L({ color: j(Su)(j(o).scoringResult.value.score) })
7037
7165
  }, D(j(o).scoringResult.value.score), 5),
7038
- I("span", Eu, D(j(i).scoring.overallScore), 1),
7039
- _() > 0 ? (f(), k("span", Du, 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)
7040
7168
  ], 4),
7041
- j(o).fixError.value ? (f(), k("div", Ou, [V(j(Gr), {
7169
+ j(o).fixError.value ? (f(), k("div", zu, [V(j(ri), {
7042
7170
  size: 14,
7043
7171
  "stroke-width": 2,
7044
7172
  class: "tpl:mt-0.5 tpl:shrink-0"
@@ -7053,74 +7181,74 @@ var hu = {
7053
7181
  (f(), N(d(p[e]), {
7054
7182
  size: 14,
7055
7183
  "stroke-width": 2,
7056
- style: L({ color: j(du)(j(o).scoringResult.value.categories[e].score) })
7184
+ style: L({ color: j(Su)(j(o).scoringResult.value.categories[e].score) })
7057
7185
  }, null, 8, ["style"])),
7058
- I("span", Au, D(j(i).scoring.categories[e]), 1),
7186
+ I("span", Vu, D(j(i).scoring.categories[e]), 1),
7059
7187
  I("span", {
7060
7188
  class: "tpl:rounded-full tpl:px-2 tpl:py-0.5 tpl:text-xs tpl:font-semibold tpl:tabular-nums",
7061
7189
  style: L({
7062
- color: j(du)(j(o).scoringResult.value.categories[e].score),
7063
- backgroundColor: j(fu)(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)
7064
7192
  })
7065
7193
  }, D(j(o).scoringResult.value.categories[e].score), 5),
7066
- j(o).scoringResult.value.categories[e].findings.length > 0 ? (f(), k("span", ju, D(j(o).scoringResult.value.categories[e].findings.length), 1)) : A("", !0),
7067
- 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), {
7068
7196
  size: 12,
7069
7197
  "stroke-width": 2,
7070
7198
  class: F(["tpl:transition-transform tpl:duration-200 tpl:text-[var(--tpl-text-dim)]", c.value[e] ? "tpl:rotate-0" : "tpl:-rotate-90"])
7071
7199
  }, null, 8, ["class"])
7072
- ], 8, ku), c.value[e] ? (f(), k("div", Mu, [j(o).scoringResult.value.categories[e].findings.length === 0 ? (f(), k("div", Nu, 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", {
7073
7201
  key: e.id,
7074
7202
  class: "tpl:border-t tpl:px-3 tpl:py-2.5 first:tpl:border-t-0 tpl:border-[var(--tpl-border-light)]"
7075
- }, [I("div", Pu, [(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)), {
7076
7204
  size: 13,
7077
7205
  "stroke-width": 2,
7078
7206
  class: "tpl:mt-0.5 tpl:shrink-0",
7079
- style: L({ color: j(pu)(e.severity) })
7080
- }, null, 8, ["style"])), I("div", Fu, [
7081
- I("div", Iu, [I("span", {
7207
+ style: L({ color: j(wu)(e.severity) })
7208
+ }, null, 8, ["style"])), I("div", Ku, [
7209
+ I("div", qu, [I("span", {
7082
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",
7083
7211
  style: L({
7084
- color: j(pu)(e.severity),
7085
- backgroundColor: j(mu)(e.severity)
7212
+ color: j(wu)(e.severity),
7213
+ backgroundColor: j(Tu)(e.severity)
7086
7214
  })
7087
- }, D(j(i).scoring.severity[e.severity]), 5), I("span", Lu, D(e.message), 1)]),
7088
- e.suggestion ? (f(), k("p", Ru, D(e.suggestion), 1)) : A("", !0),
7089
- e.blockId ? (f(), k("div", zu, [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", {
7090
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)]",
7091
7219
  style: { "background-color": "transparent" },
7092
7220
  disabled: j(o).fixingFindingId.value !== null,
7093
7221
  onClick: (t) => g(e)
7094
- }, [j(o).fixingFindingId.value === e.id ? (f(), N(j(Jr), {
7222
+ }, [j(o).fixingFindingId.value === e.id ? (f(), N(j(_i), {
7095
7223
  key: 0,
7096
7224
  class: "tpl-spinner",
7097
7225
  size: 11,
7098
7226
  "stroke-width": 2
7099
- })) : (f(), N(j(Xr), {
7227
+ })) : (f(), N(j(ki), {
7100
7228
  key: 1,
7101
7229
  size: 11,
7102
7230
  "stroke-width": 2
7103
- })), z(" " + D(j(o).fixingFindingId.value === e.id ? j(i).scoring.fixing : j(i).scoring.fix), 1)], 8, Bu), j(o).fixError.value ? (f(), k("p", Vu, 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)
7104
7232
  ])])]))), 128))])) : A("", !0)])), 64))
7105
- ])) : (f(), k("div", Hu, [V(j(Ti), {
7233
+ ])) : (f(), k("div", $u, [V(j(Di), {
7106
7234
  size: 32,
7107
7235
  "stroke-width": 1.5,
7108
7236
  class: "tpl:text-[var(--tpl-text-dim)]"
7109
- }), I("p", Uu, D(j(i).scoring.emptyState), 1)])), I("p", Wu, 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)]),
7110
7238
  _: 1
7111
7239
  }));
7112
7240
  }
7113
- }), Ku = /* @__PURE__ */ e({ default: () => qu }), qu = /*#__PURE__*/ Ii(Gu, [["__scopeId", "data-v-c23c73d4"]]), Ju = ["aria-busy"], Yu = {
7241
+ }), rd = /* @__PURE__ */ e({ default: () => id }), id = /*#__PURE__*/ Vi(nd, [["__scopeId", "data-v-c23c73d4"]]), ad = ["aria-busy"], od = {
7114
7242
  id: "tpl-test-email-title",
7115
7243
  class: "tpl:mb-4 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
7116
- }, Xu = { class: "tpl:mb-3" }, Zu = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Qu = ["value"], $u = ["disabled"], ed = ["value"], td = {
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 = {
7117
7245
  key: 0,
7118
7246
  role: "alert",
7119
7247
  class: "tpl:mb-3 tpl:text-xs tpl:text-[var(--tpl-danger)]"
7120
- }, nd = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, rd = ["disabled"], id = ["disabled"], ad = {
7248
+ }, pd = { class: "tpl:flex tpl:justify-end tpl:gap-2" }, md = ["disabled"], hd = ["disabled"], gd = {
7121
7249
  key: 0,
7122
7250
  class: "tpl:flex tpl:items-center tpl:gap-1.5"
7123
- }, od = { key: 1 }, sd = /*@__PURE__*/ B({
7251
+ }, _d = { key: 1 }, vd = /*@__PURE__*/ B({
7124
7252
  __name: "TestEmailModal",
7125
7253
  props: {
7126
7254
  visible: { type: Boolean },
@@ -7130,7 +7258,7 @@ var hu = {
7130
7258
  },
7131
7259
  emits: ["send", "close"],
7132
7260
  setup(e, { emit: t }) {
7133
- let n = e, r = t, { t: i } = Ki(), a = C("");
7261
+ let n = e, r = t, { t: i } = Zi(), a = C("");
7134
7262
  H(() => n.visible, (e) => {
7135
7263
  e && (a.value = n.allowedEmails[0] ?? "");
7136
7264
  });
@@ -7143,7 +7271,7 @@ var hu = {
7143
7271
  function l(e) {
7144
7272
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), o()), e.key === "Escape" && s();
7145
7273
  }
7146
- return (t, n) => (f(), N(Yo, {
7274
+ return (t, n) => (f(), N(os, {
7147
7275
  visible: e.visible,
7148
7276
  onClose: s,
7149
7277
  onKeydown: l
@@ -7159,14 +7287,14 @@ var hu = {
7159
7287
  "box-shadow": "var(--tpl-shadow-xl)"
7160
7288
  }
7161
7289
  }, [
7162
- I("h3", Yu, D(j(i).testEmail.title), 1),
7163
- I("div", Xu, [I("label", Zu, 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", {
7164
7292
  key: 0,
7165
7293
  type: "text",
7166
7294
  value: a.value,
7167
7295
  disabled: "",
7168
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)]"
7169
- }, null, 8, Qu)) : c((f(), k("select", {
7297
+ }, null, 8, ld)) : c((f(), k("select", {
7170
7298
  key: 1,
7171
7299
  "onUpdate:modelValue": n[0] ||= (e) => a.value = e,
7172
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)]",
@@ -7174,29 +7302,29 @@ var hu = {
7174
7302
  }, [(f(!0), k(R, null, h(e.allowedEmails, (e) => (f(), k("option", {
7175
7303
  key: e,
7176
7304
  value: e
7177
- }, D(e), 9, ed))), 128))], 8, $u)), [[w, a.value]])]),
7178
- e.error ? (f(), k("p", td, D(e.error), 1)) : A("", !0),
7179
- I("div", nd, [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", {
7180
7308
  type: "button",
7181
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 }]),
7182
7310
  disabled: e.isSending,
7183
7311
  onClick: s
7184
- }, D(j(i).testEmail.cancel), 11, rd), I("button", {
7312
+ }, D(j(i).testEmail.cancel), 11, md), I("button", {
7185
7313
  type: "button",
7186
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)]",
7187
7315
  disabled: !a.value || e.isSending,
7188
7316
  onClick: o
7189
- }, [e.isSending ? (f(), k("span", ad, [V(j(Jr), {
7317
+ }, [e.isSending ? (f(), k("span", gd, [V(j(_i), {
7190
7318
  class: "tpl:animate-spin",
7191
7319
  size: 12,
7192
7320
  "stroke-width": 2
7193
- }), z(" " + D(j(i).testEmail.sending), 1)])) : (f(), k("span", od, D(j(i).testEmail.send), 1))], 8, id)])
7194
- ], 8, Ju)]),
7321
+ }), z(" " + D(j(i).testEmail.sending), 1)])) : (f(), k("span", _d, D(j(i).testEmail.send), 1))], 8, hd)])
7322
+ ], 8, ad)]),
7195
7323
  _: 1
7196
7324
  }, 8, ["visible"]));
7197
7325
  }
7198
- }), cd = /* @__PURE__ */ e({ default: () => ld }), ld = sd;
7326
+ }), yd = /* @__PURE__ */ e({ default: () => bd }), bd = vd;
7199
7327
  //#endregion
7200
- export { Ji as $, er as $t, Ko as A, ye as An, Jr as At, Ja as B, Ee as Bn, Wn as Bt, rs as C, bt as Cn, oi as Ct, Zo as D, st as Dn, ei as Dt, Xo as E, ct as En, ti as Et, vo as F, Te as Fn, _r as Ft, ba as G, fe as Gn, Bn as Gt, Ra as H, xe as Hn, rr as Ht, ho as I, _e as In, Y as It, fa as J, tr as Jt, ya as K, ue as Kn, Kn as Kt, uo as L, he as Ln, lr as Lt, Po as M, be as Mn, X as Mt, Oo as N, we as Nn, Fr as Nt, Yo as O, W as On, Zr as Ot, To as P, ve as Pn, wr as Pt, Yi as Q, Xn as Qt, co as R, Se as Rn, nr as Rt, is as S, _t as Sn, si as St, Z as T, lt as Tn, ri as Tt, Pa as U, pe as Un, pr as Ut, qa as V, ge as Vn, Gn as Vt, Sa as W, de as Wn, ur as Wt, ta as X, Vn as Xt, ra as Y, Ln as Yt, $i as Z, $n as Zt, gs as _, Ft as _n, hi as _t, yl as a, Un as an, Fi as at, fs as b, yt as bn, li as bt, Ns as c, wn as cn, Di as ct, Es as d, jn as dn, wi as dt, qn as en, qi as et, Ts as f, On as fn, Ci as ft, xs as g, cn as gn, gi as gt, Ss as h, sn as hn, _i as ht, Jl as i, Hn as in, Ii as it, Wo as j, De as jn, Gr as jt, qo as k, We as kn, Xr as kt, Os as l, Tn as ln, Ei as lt, Cs as m, nn as mn, vi as mt, Ku as n, fr as nn, Ki as nt, ac as o, J as on, ji as ot, ws as p, rn as pn, xi as pt, ma as q, Jn as qt, lu as r, ar as rn, Ui as rt, Ps as s, gn as sn, ki as st, cd as t, dr as tn, Gi as tt, Ds as u, q as un, Ti as ut, hs as v, Et as vn, mi as vt, $ as w, ut as wn, ai as wt, cs as x, xt as xn, ci as xt, ps as y, dt as yn, pi as yt, Ya as z, Ce as zn, cr 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 };
7201
7329
 
7202
- //# sourceMappingURL=features-DU6lA8l1.js.map
7330
+ //# sourceMappingURL=features-CkTMVylx.js.map