@templatical/editor 0.27.2 → 0.27.3

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 (137) hide show
  1. package/dist/{AiChatSidebar-iVJDzqjr.js → AiChatSidebar-inzMb2Vi.js} +1 -1
  2. package/dist/{AiFeatureMenu-DrLGc2H2.js → AiFeatureMenu-BTdgjwdx.js} +3 -3
  3. package/dist/{BlockIssueBadge-BHysq7XQ.js → BlockIssueBadge-a7jENlL4.js} +2 -2
  4. package/dist/{BlockPreviewCanvas-2WASf5A4.js → BlockPreviewCanvas-CMuRmhQg.js} +2 -2
  5. package/dist/{CloudHeaderExtras-DWApyc4P.js → CloudHeaderExtras-Bgr-Ox9M.js} +2 -2
  6. package/dist/{CloudPanels-DvOhGdRj.js → CloudPanels-oFNlTOO5.js} +3 -3
  7. package/dist/{CollaboratorBar-C6MC0UCk.js → CollaboratorBar-BHja900c.js} +2 -2
  8. package/dist/{ColorPicker-Di8L5TLQ.js → ColorPicker-ClUa_hMj.js} +3 -3
  9. package/dist/{CommentsPanel-D5wQB1Kf.js → CommentsPanel-CB1-poNb.js} +1 -1
  10. package/dist/{CommentsSidebar-BoTIxpLE.js → CommentsSidebar-B6mV8ft4.js} +2 -2
  11. package/dist/{CountdownBlock-BFX8iU90.js → CountdownBlock-qKtJVRIV.js} +1 -1
  12. package/dist/{CountdownToolbar-d9QM4m5x.js → CountdownToolbar-BpnKUXN_.js} +2 -2
  13. package/dist/{DesignReferenceSidebar-DKsx2TiL.js → DesignReferenceSidebar-BC5UxrJl.js} +2 -2
  14. package/dist/{IssuesPanel-flKKwKpM.js → IssuesPanel-BFczwZkL.js} +38 -37
  15. package/dist/{MergeTagModeToggle-PKCoKAoF.js → MergeTagModeToggle-koHNtEJe.js} +2 -2
  16. package/dist/{ParagraphEditor-iwTjkjtx.js → ParagraphEditor-cKosDi_l.js} +7 -7
  17. package/dist/{RestoreVersionDialog-DyMPGfsr.js → RestoreVersionDialog-DpZmcFuf.js} +2 -2
  18. package/dist/{RichTextEditorContent-BVXG9oF4.js → RichTextEditorContent-Br3WBNOs.js} +4 -4
  19. package/dist/{SaveBlockDialog-BMCAIfK9.js → SaveBlockDialog-C7mSGScN.js} +5 -5
  20. package/dist/{SavedBlocksBrowserModal-p5ma1qay.js → SavedBlocksBrowserModal-D7MYzuVP.js} +6 -6
  21. package/dist/{SavedBlocksPanels-BsiSstsZ.js → SavedBlocksPanels-D5T63WyR.js} +1 -1
  22. package/dist/{SavedBlocksPickBar-fU4Mjm-8.js → SavedBlocksPickBar-BluJS58M.js} +2 -2
  23. package/dist/{TemplateScoringPanel-Bv_bBsJi.js → TemplateScoringPanel-C0z27t2p.js} +2 -2
  24. package/dist/{TestEmailModal-EFYcrmTk.js → TestEmailModal-DoSIuHXe.js} +6 -6
  25. package/dist/{TestEmailPanel-ljriUqs1.js → TestEmailPanel-3Y6uUX3Z.js} +1 -1
  26. package/dist/{TitleEditor-BqRW7HTz.js → TitleEditor-D9IWtoH3.js} +6 -6
  27. package/dist/{TplModal-CTC9-w6B.js → TplModal-CyBCFn5s.js} +3 -3
  28. package/dist/{VersionHistoryMenu-Cq4rH56t.js → VersionHistoryMenu-8nd_aOnh.js} +1 -1
  29. package/dist/{VersionHistoryPanels-GkxkBiSi.js → VersionHistoryPanels-Cm7MxfrI.js} +1 -1
  30. package/dist/{VersionPreviewBanner-BdtTu9mI.js → VersionPreviewBanner-B9w773jz.js} +1 -1
  31. package/dist/{blockTypeIcons-CIrMr1SJ.js → blockTypeIcons-BRCuWioG.js} +1 -1
  32. package/dist/bundle-stats.json +7 -7
  33. package/dist/cdn/chunks/{AiChatSidebar-DTUoBH5a.js → AiChatSidebar-BIvQg9Q5.js} +2 -2
  34. package/dist/cdn/chunks/{AiChatSidebar-DTUoBH5a.js.map → AiChatSidebar-BIvQg9Q5.js.map} +1 -1
  35. package/dist/cdn/chunks/{AiFeatureMenu-BQz9Kczt.js → AiFeatureMenu-BMvcmvDZ.js} +4 -4
  36. package/dist/cdn/chunks/{AiFeatureMenu-BQz9Kczt.js.map → AiFeatureMenu-BMvcmvDZ.js.map} +1 -1
  37. package/dist/cdn/chunks/{BlockIssueBadge-UzSSOM_2.js → BlockIssueBadge-Drrmjqd7.js} +3 -3
  38. package/dist/cdn/chunks/{BlockIssueBadge-UzSSOM_2.js.map → BlockIssueBadge-Drrmjqd7.js.map} +1 -1
  39. package/dist/cdn/chunks/{BlockPreviewCanvas-40ocpXDD.js → BlockPreviewCanvas-CuWJLv8h.js} +3 -3
  40. package/dist/cdn/chunks/{BlockPreviewCanvas-40ocpXDD.js.map → BlockPreviewCanvas-CuWJLv8h.js.map} +1 -1
  41. package/dist/cdn/chunks/{CloudHeaderExtras-F_ySlW1S.js → CloudHeaderExtras-Ctat5U0M.js} +3 -3
  42. package/dist/cdn/chunks/{CloudHeaderExtras-F_ySlW1S.js.map → CloudHeaderExtras-Ctat5U0M.js.map} +1 -1
  43. package/dist/cdn/chunks/{CloudPanels-C34bcHpc.js → CloudPanels-YRYmXE9O.js} +4 -4
  44. package/dist/cdn/chunks/{CloudPanels-C34bcHpc.js.map → CloudPanels-YRYmXE9O.js.map} +1 -1
  45. package/dist/cdn/chunks/{CollaboratorBar-WBtrPPnM.js → CollaboratorBar-DgdxBCkN.js} +3 -3
  46. package/dist/cdn/chunks/{CollaboratorBar-WBtrPPnM.js.map → CollaboratorBar-DgdxBCkN.js.map} +1 -1
  47. package/dist/cdn/chunks/{ColorPicker-CxKYd_8N.js → ColorPicker-B-we7_bC.js} +4 -4
  48. package/dist/cdn/chunks/{ColorPicker-CxKYd_8N.js.map → ColorPicker-B-we7_bC.js.map} +1 -1
  49. package/dist/cdn/chunks/{CommentsPanel-jzZ2X0P4.js → CommentsPanel-D7Y-74Nj.js} +2 -2
  50. package/dist/cdn/chunks/{CommentsPanel-jzZ2X0P4.js.map → CommentsPanel-D7Y-74Nj.js.map} +1 -1
  51. package/dist/cdn/chunks/{CommentsSidebar-Dxke-vUP.js → CommentsSidebar-DxTobvYS.js} +3 -3
  52. package/dist/cdn/chunks/{CommentsSidebar-Dxke-vUP.js.map → CommentsSidebar-DxTobvYS.js.map} +1 -1
  53. package/dist/cdn/chunks/{CountdownBlock-BYSrJWxg.js → CountdownBlock-BKrYGRiT.js} +2 -2
  54. package/dist/cdn/chunks/{CountdownBlock-BYSrJWxg.js.map → CountdownBlock-BKrYGRiT.js.map} +1 -1
  55. package/dist/cdn/chunks/{CountdownToolbar-pVbkPNVo.js → CountdownToolbar-D8QWL-jK.js} +3 -3
  56. package/dist/cdn/chunks/{CountdownToolbar-pVbkPNVo.js.map → CountdownToolbar-D8QWL-jK.js.map} +1 -1
  57. package/dist/cdn/chunks/{DesignReferenceSidebar-sZWciECR.js → DesignReferenceSidebar-D9Lm4Al0.js} +3 -3
  58. package/dist/cdn/chunks/{DesignReferenceSidebar-sZWciECR.js.map → DesignReferenceSidebar-D9Lm4Al0.js.map} +1 -1
  59. package/dist/cdn/chunks/{IssuesPanel-CHtetM9i.js → IssuesPanel-Dz90c1C6.js} +36 -34
  60. package/dist/cdn/chunks/IssuesPanel-Dz90c1C6.js.map +1 -0
  61. package/dist/cdn/chunks/{MergeTagModeToggle-ZwW-5EeN.js → MergeTagModeToggle-CfFrfYNC.js} +3 -3
  62. package/dist/cdn/chunks/{MergeTagModeToggle-ZwW-5EeN.js.map → MergeTagModeToggle-CfFrfYNC.js.map} +1 -1
  63. package/dist/cdn/chunks/{ParagraphEditor-BBcIQQK2.js → ParagraphEditor-Be-BO5hD.js} +8 -8
  64. package/dist/cdn/chunks/{ParagraphEditor-BBcIQQK2.js.map → ParagraphEditor-Be-BO5hD.js.map} +1 -1
  65. package/dist/cdn/chunks/{RestoreVersionDialog-DNUZHFa_.js → RestoreVersionDialog-CKtz_FEz.js} +3 -3
  66. package/dist/cdn/chunks/{RestoreVersionDialog-DNUZHFa_.js.map → RestoreVersionDialog-CKtz_FEz.js.map} +1 -1
  67. package/dist/cdn/chunks/{RichTextEditorContent-Cl-acKAD.js → RichTextEditorContent-D3eWZ793.js} +5 -5
  68. package/dist/cdn/chunks/{RichTextEditorContent-Cl-acKAD.js.map → RichTextEditorContent-D3eWZ793.js.map} +1 -1
  69. package/dist/cdn/chunks/{SaveBlockDialog-BXTZ729e.js → SaveBlockDialog-C5nT7Fxi.js} +6 -6
  70. package/dist/cdn/chunks/{SaveBlockDialog-BXTZ729e.js.map → SaveBlockDialog-C5nT7Fxi.js.map} +1 -1
  71. package/dist/cdn/chunks/{SavedBlocksBrowserModal-BqGNBpRR.js → SavedBlocksBrowserModal-Cvyewimb.js} +6 -6
  72. package/dist/cdn/chunks/{SavedBlocksBrowserModal-BqGNBpRR.js.map → SavedBlocksBrowserModal-Cvyewimb.js.map} +1 -1
  73. package/dist/cdn/chunks/{SavedBlocksPanels-nbK0UQTp.js → SavedBlocksPanels-B7aBlxKW.js} +2 -2
  74. package/dist/cdn/chunks/SavedBlocksPanels-B7aBlxKW.js.map +1 -0
  75. package/dist/cdn/chunks/{SavedBlocksPickBar-B9mbw3Gk.js → SavedBlocksPickBar-D0opM9P9.js} +3 -3
  76. package/dist/cdn/chunks/{SavedBlocksPickBar-B9mbw3Gk.js.map → SavedBlocksPickBar-D0opM9P9.js.map} +1 -1
  77. package/dist/cdn/chunks/{TemplateScoringPanel-Xdkp2EMY.js → TemplateScoringPanel-DEsNZlHe.js} +3 -3
  78. package/dist/cdn/chunks/{TemplateScoringPanel-Xdkp2EMY.js.map → TemplateScoringPanel-DEsNZlHe.js.map} +1 -1
  79. package/dist/cdn/chunks/{TestEmailModal-DE6fi3he.js → TestEmailModal-BANpGbEP.js} +7 -7
  80. package/dist/cdn/chunks/{TestEmailModal-DE6fi3he.js.map → TestEmailModal-BANpGbEP.js.map} +1 -1
  81. package/dist/cdn/chunks/{TestEmailPanel-CAjQDXle.js → TestEmailPanel-DItZMP3B.js} +2 -2
  82. package/dist/cdn/chunks/TestEmailPanel-DItZMP3B.js.map +1 -0
  83. package/dist/cdn/chunks/{TitleEditor-BP0ewaWF.js → TitleEditor-D_NJ4Ww8.js} +7 -7
  84. package/dist/cdn/chunks/{TitleEditor-BP0ewaWF.js.map → TitleEditor-D_NJ4Ww8.js.map} +1 -1
  85. package/dist/cdn/chunks/{TplModal-C4kJduTr.js → TplModal-C51W8LTn.js} +4 -4
  86. package/dist/cdn/chunks/{TplModal-C4kJduTr.js.map → TplModal-C51W8LTn.js.map} +1 -1
  87. package/dist/cdn/chunks/{VersionHistoryMenu-_MAj3qZj.js → VersionHistoryMenu-Cv23A0uu.js} +2 -2
  88. package/dist/cdn/chunks/{VersionHistoryMenu-_MAj3qZj.js.map → VersionHistoryMenu-Cv23A0uu.js.map} +1 -1
  89. package/dist/cdn/chunks/{VersionHistoryPanels-DMq2PRee.js → VersionHistoryPanels-DHDN1owI.js} +2 -2
  90. package/dist/cdn/chunks/{VersionHistoryPanels-DMq2PRee.js.map → VersionHistoryPanels-DHDN1owI.js.map} +1 -1
  91. package/dist/cdn/chunks/{VersionPreviewBanner-04CL1SGY.js → VersionPreviewBanner-Dw4kFkrh.js} +2 -2
  92. package/dist/cdn/chunks/VersionPreviewBanner-Dw4kFkrh.js.map +1 -0
  93. package/dist/cdn/chunks/{createCloudRuntime-gXA8_QRU.js → createCloudRuntime-D75oJ9j-.js} +2 -2
  94. package/dist/cdn/chunks/{createCloudRuntime-gXA8_QRU.js.map → createCloudRuntime-D75oJ9j-.js.map} +1 -1
  95. package/dist/cdn/chunks/{extensions-CMcVw2uu.js → extensions-Byo2sA1r.js} +3 -3
  96. package/dist/cdn/chunks/{extensions-CMcVw2uu.js.map → extensions-Byo2sA1r.js.map} +1 -1
  97. package/dist/cdn/chunks/{keys-CbQuRX85.js → keys-oJdkdtPn.js} +2 -2
  98. package/dist/cdn/chunks/{keys-CbQuRX85.js.map → keys-oJdkdtPn.js.map} +1 -1
  99. package/dist/cdn/chunks/{src-D5lajkK5.js → src-B_pCqXyM.js} +2 -2
  100. package/dist/cdn/chunks/{src-D5lajkK5.js.map → src-B_pCqXyM.js.map} +1 -1
  101. package/dist/cdn/chunks/{useCloudI18n-NVa1aeY8.js → useCloudI18n-Ch-SiRjU.js} +3 -3
  102. package/dist/cdn/chunks/{useCloudI18n-NVa1aeY8.js.map → useCloudI18n-Ch-SiRjU.js.map} +1 -1
  103. package/dist/cdn/chunks/{useEditorCore-DC8gmfs6.js → useEditorCore-BtEO1qms.js} +127 -134
  104. package/dist/cdn/chunks/useEditorCore-BtEO1qms.js.map +1 -0
  105. package/dist/cdn/chunks/useEditorRoot-Cxnmf5hM.js +10 -0
  106. package/dist/cdn/chunks/useEditorRoot-Cxnmf5hM.js.map +1 -0
  107. package/dist/cdn/chunks/{useI18n-DVWCJJFH.js → useI18n-4sUbTM3Y.js} +3 -3
  108. package/dist/cdn/chunks/useI18n-4sUbTM3Y.js.map +1 -0
  109. package/dist/cdn/chunks/{useMergeTag-BfZBRPQp.js → useMergeTag-DxjTEyin.js} +2 -2
  110. package/dist/cdn/chunks/{useMergeTag-BfZBRPQp.js.map → useMergeTag-DxjTEyin.js.map} +1 -1
  111. package/dist/cdn/chunks/{usePopoverPosition-BC-HA7TK.js → usePopoverPosition-C1N2kaiZ.js} +2 -2
  112. package/dist/cdn/chunks/{usePopoverPosition-BC-HA7TK.js.map → usePopoverPosition-C1N2kaiZ.js.map} +1 -1
  113. package/dist/cdn/chunks/useScrollToBlock-BvWAfWd8.js +22 -0
  114. package/dist/cdn/chunks/useScrollToBlock-BvWAfWd8.js.map +1 -0
  115. package/dist/cdn/editor.css +1 -1
  116. package/dist/cdn/editor.js +758 -734
  117. package/dist/cdn/editor.js.map +1 -1
  118. package/dist/{createCloudRuntime-Bt8W-ajI.js → createCloudRuntime-FEZG-Gve.js} +1 -1
  119. package/dist/{extensions-CX87G4aL.js → extensions-BV9qfsYr.js} +2 -2
  120. package/dist/{keys-BxixS0TN.js → keys-CVpi8xCT.js} +1 -1
  121. package/dist/style.css +1 -1
  122. package/dist/templatical-editor.js +854 -831
  123. package/dist/{useCloudI18n-CAZTZ9_a.js → useCloudI18n-DmWo4nzs.js} +2 -2
  124. package/dist/{useEditorCore-CFLzobo_.js → useEditorCore-DoKDh27o.js} +469 -476
  125. package/dist/useEditorRoot-DKyG95pb.js +8 -0
  126. package/dist/{useI18n-BfXff_Sy.js → useI18n-CvYvat9_.js} +2 -2
  127. package/dist/{useMergeTag-Dd4I7kge.js → useMergeTag-D6Z6cyDa.js} +1 -1
  128. package/dist/{usePopoverPosition-CxhCX3SQ.js → usePopoverPosition-WslxM_PU.js} +1 -1
  129. package/dist/useScrollToBlock-KA65jhQ_.js +44 -0
  130. package/package.json +7 -7
  131. package/dist/cdn/chunks/IssuesPanel-CHtetM9i.js.map +0 -1
  132. package/dist/cdn/chunks/SavedBlocksPanels-nbK0UQTp.js.map +0 -1
  133. package/dist/cdn/chunks/TestEmailPanel-CAjQDXle.js.map +0 -1
  134. package/dist/cdn/chunks/VersionPreviewBanner-04CL1SGY.js.map +0 -1
  135. package/dist/cdn/chunks/useEditorCore-DC8gmfs6.js.map +0 -1
  136. package/dist/cdn/chunks/useI18n-DVWCJJFH.js.map +0 -1
  137. package/dist/list-checks-jw-ZlvWY.js +0 -25
@@ -2,22 +2,23 @@ import { A as e, B as t, E as n, F as r, H as i, I as a, K as o, N as s, P as c,
2
2
  import { A as ee, B as te, C as ne, D as re, E as ie, F as ae, H as oe, I as se, L as H, M as ce, N as le, O as ue, P as de, R as fe, S as pe, T as me, _ as he, a as ge, b as _e, d as ve, et as ye, f as be, g as xe, h as Se, i as U, j as Ce, k as we, l as Te, m as Ee, n as De, o as Oe, p as ke, r as Ae, s as je, t as W, tt as Me, u as Ne, w as Pe, z as Fe } from "./src-B_QJduQD.js";
3
3
  import { _ as Ie, h as Le, v as Re, y as ze } from "./dist-CYLJiSiH.js";
4
4
  import { a as G, c as Be, i as Ve, r as He } from "./dist-CM8TB0VD.js";
5
- import { A as Ue, B as We, C as Ge, D as Ke, E as qe, F as Je, H as Ye, I as Xe, M as Ze, N as Qe, O as $e, P as et, S as tt, T as K, U as q, V as nt, W as rt, _ as it, a as at, b as ot, c as st, d as ct, f as lt, g as ut, h as J, j as dt, k as ft, m as pt, n as mt, o as ht, p as gt, r as _t, s as vt, u as yt, v as bt, w as xt, x as St, y as Ct, z as wt } from "./keys-CbQuRX85.js";
5
+ import { A as Ue, B as We, C as Ge, D as Ke, E as qe, F as Je, H as Ye, I as Xe, M as Ze, N as Qe, O as $e, P as et, S as tt, T as K, U as q, V as nt, W as rt, _ as it, a as at, b as ot, c as st, d as ct, f as lt, g as ut, h as J, j as dt, k as ft, m as pt, n as mt, o as ht, p as gt, r as _t, s as vt, u as yt, v as bt, w as xt, x as St, y as Ct, z as wt } from "./keys-oJdkdtPn.js";
6
6
  import "./timeouts-DHPZQ0G3.js";
7
- import { t as Y } from "./useI18n-DVWCJJFH.js";
7
+ import { t as Y } from "./useI18n-4sUbTM3Y.js";
8
8
  import { t as X } from "./logger-ByvdoAwq.js";
9
- import { a as Tt, i as Et, o as Dt, r as Z, t as Ot } from "./usePopoverPosition-BC-HA7TK.js";
9
+ import { a as Tt, i as Et, o as Dt, r as Z, t as Ot } from "./usePopoverPosition-C1N2kaiZ.js";
10
10
  import { A as kt, Bt as At, Et as jt, H as Mt, Ot as Nt, Tt as Pt, X as Ft, d as It, ft as Lt, ht as Rt, it as zt, o as Bt, s as Vt, tt as Ht, u as Ut, v as Wt, vt as Gt, zt as Kt } from "./icons-C36Ha5VU.js";
11
11
  import { t as qt } from "./LoadingTrack-Dp_QZvAK.js";
12
12
  import { t as Jt } from "./_plugin-vue_export-helper-B3ysoDQm.js";
13
- import "./useCloudI18n-NVa1aeY8.js";
14
- import { t as Q } from "./useMergeTag-BfZBRPQp.js";
15
- import { t as Yt } from "./useAliveFlag-Dtm174fG.js";
13
+ import { t as Yt } from "./useEditorRoot-Cxnmf5hM.js";
14
+ import "./useCloudI18n-Ch-SiRjU.js";
15
+ import { t as Q } from "./useMergeTag-DxjTEyin.js";
16
+ import { t as Xt } from "./useAliveFlag-Dtm174fG.js";
16
17
  //#region ../core/src/editor.ts
17
- function Xt(e) {
18
+ function Zt(e) {
18
19
  return e === "1" ? 1 : e === "3" ? 3 : 2;
19
20
  }
20
- function Zt(e) {
21
+ function Qt(e) {
21
22
  let t = m({
22
23
  template: null,
23
24
  content: e.content ?? fe(e.defaultFontFamily, e.templateDefaults),
@@ -115,7 +116,7 @@ function Zt(e) {
115
116
  if (l(n)) return;
116
117
  let r = o(t.content.blocks, n);
117
118
  if (r && r.type === "section") {
118
- if (i < 0 || i >= Xt(r.columns)) return;
119
+ if (i < 0 || i >= Zt(r.columns)) return;
119
120
  r.children[i] = r.children[i] || [];
120
121
  let t = r.children[i];
121
122
  a !== void 0 && a < t.length ? t.splice(a, 0, e) : t.push(e);
@@ -148,7 +149,7 @@ function Zt(e) {
148
149
  let d;
149
150
  if (i) {
150
151
  let e = o(t.content.blocks, i);
151
- if (!e || e.type !== "section" || a < 0 || a >= Xt(e.columns)) return;
152
+ if (!e || e.type !== "section" || a < 0 || a >= Zt(e.columns)) return;
152
153
  e.children[a] = e.children[a] || [], d = e.children[a];
153
154
  } else d = t.content.blocks;
154
155
  let [f] = s.blocks.splice(u, 1);
@@ -254,9 +255,9 @@ function Zt(e) {
254
255
  }
255
256
  //#endregion
256
257
  //#region ../core/src/history.ts
257
- var Qt = 50, $t = 300, en = 1500;
258
- function tn(e) {
259
- let { content: t, setContent: n, isRemoteOperation: r, maxSize: i = Qt } = e, a = l([]), o = l([]), s = l(!1), c = null, u = null, d = p(() => a.value.length > 0), f = p(() => o.value.length > 0);
258
+ var $t = 50, en = 300, tn = 1500;
259
+ function nn(e) {
260
+ let { content: t, setContent: n, isRemoteOperation: r, maxSize: i = $t } = e, a = l([]), o = l([]), s = l(!1), c = null, u = null, d = p(() => a.value.length > 0), f = p(() => o.value.length > 0);
260
261
  function m() {
261
262
  return _e(t.value);
262
263
  }
@@ -274,21 +275,21 @@ function tn(e) {
274
275
  if (u && u.blockId === e) {
275
276
  clearTimeout(u.timeoutId), u.timeoutId = setTimeout(() => {
276
277
  u = null;
277
- }, $t);
278
+ }, en);
278
279
  return;
279
280
  }
280
281
  g(), h(m()), o.value = [], u = {
281
282
  blockId: e,
282
283
  timeoutId: setTimeout(() => {
283
284
  u = null;
284
- }, $t)
285
+ }, en)
285
286
  };
286
287
  }
287
288
  }
288
289
  function y() {
289
290
  s.value = !0, c && clearTimeout(c), c = setTimeout(() => {
290
291
  s.value = !1, c = null;
291
- }, en);
292
+ }, tn);
292
293
  }
293
294
  function b() {
294
295
  if (a.value.length === 0) return;
@@ -322,7 +323,7 @@ function tn(e) {
322
323
  }
323
324
  //#endregion
324
325
  //#region ../core/src/block-actions.ts
325
- function nn(e) {
326
+ function rn(e) {
326
327
  e.type === "table" ? e.rows = e.rows.map((e) => ({
327
328
  ...e,
328
329
  id: H(),
@@ -338,7 +339,7 @@ function nn(e) {
338
339
  id: H()
339
340
  })));
340
341
  }
341
- function rn(e) {
342
+ function an(e) {
342
343
  let { addBlock: t, removeBlock: n, updateBlock: r, selectBlock: i, findBlockLocation: a } = e;
343
344
  function o(n, r, a) {
344
345
  let o = pe(n, e.blockDefaults);
@@ -346,9 +347,9 @@ function rn(e) {
346
347
  }
347
348
  function s(e, n, r) {
348
349
  let o = JSON.parse(JSON.stringify(e));
349
- if (o.id = H(), nn(o), o.type === "section" && (o.children = o.children.map((e) => e.map((e) => {
350
+ if (o.id = H(), rn(o), o.type === "section" && (o.children = o.children.map((e) => e.map((e) => {
350
351
  let t = JSON.parse(JSON.stringify(e));
351
- return t.id = H(), nn(t), t;
352
+ return t.id = H(), rn(t), t;
352
353
  }))), n !== void 0 || r !== void 0) t(o, n, r);
353
354
  else {
354
355
  let i = a?.(e.id) ?? null;
@@ -371,9 +372,9 @@ function rn(e) {
371
372
  }
372
373
  //#endregion
373
374
  //#region ../core/src/auto-save.ts
374
- var an = 2e3;
375
- function on(e) {
376
- let { content: t, isDirty: n, onChange: r, debounce: i = an, enabled: a = !0 } = e, o = null, s = !1;
375
+ var on = 2e3;
376
+ function sn(e) {
377
+ let { content: t, isDirty: n, onChange: r, debounce: i = on, enabled: a = !0 } = e, o = null, s = !1;
377
378
  function c() {
378
379
  return typeof a == "function" ? a() : a;
379
380
  }
@@ -410,7 +411,7 @@ function on(e) {
410
411
  }
411
412
  //#endregion
412
413
  //#region ../core/src/condition-preview.ts
413
- function sn(e) {
414
+ function cn(e) {
414
415
  let t = m(/* @__PURE__ */ new Set()), n = p(() => t.size > 0);
415
416
  function r(e) {
416
417
  return t.has(e);
@@ -430,7 +431,7 @@ function sn(e) {
430
431
  }
431
432
  //#endregion
432
433
  //#region ../core/src/data-source-fetch.ts
433
- function cn(e) {
434
+ function ln(e) {
434
435
  let t = l(!1), n = l(!1), r = p(() => !!e.definition.value?.dataSource), i = p(() => r.value && !e.block.value.dataSourceFetched);
435
436
  async function a() {
436
437
  let r = e.definition.value;
@@ -462,7 +463,7 @@ function cn(e) {
462
463
  }
463
464
  //#endregion
464
465
  //#region ../core/src/history-interceptor.ts
465
- function ln(e, t) {
466
+ function un(e, t) {
466
467
  let n = e.addBlock, r = e.removeBlock, i = e.moveBlock, a = e.updateBlock, o = e.updateSettings;
467
468
  e.addBlock = (r, i, a, o) => {
468
469
  i && e.isBlockLocked(i) || (t.record(), n(r, i, a, o));
@@ -478,7 +479,7 @@ function ln(e, t) {
478
479
  }
479
480
  //#endregion
480
481
  //#region ../core/src/saved-blocks.ts
481
- function un(e) {
482
+ function dn(e) {
482
483
  let { provider: t } = e, n = l([]), r = l(!1), i = S(() => {
483
484
  let e = /* @__PURE__ */ new Set();
484
485
  for (let t of n.value) {
@@ -563,9 +564,9 @@ function un(e) {
563
564
  }
564
565
  //#endregion
565
566
  //#region ../core/src/saved-blocks-local.ts
566
- var dn = "templatical:saved-blocks";
567
- function fn(e = {}) {
568
- let t = e.key ?? dn;
567
+ var fn = "templatical:saved-blocks";
568
+ function pn(e = {}) {
569
+ let t = e.key ?? fn;
569
570
  function n() {
570
571
  if (typeof localStorage > "u") throw Error("[Templatical] createLocalStorageSavedBlocksProvider requires a browser environment with localStorage. Supply your own SavedBlocksProvider for server-side or non-browser use.");
571
572
  return localStorage;
@@ -618,7 +619,7 @@ function fn(e = {}) {
618
619
  }
619
620
  //#endregion
620
621
  //#region ../core/src/version-history.ts
621
- function pn(e) {
622
+ function mn(e) {
622
623
  let { provider: t, getTemplateId: n } = e, r = l([]), i = l(!1), a = l(void 0), o = l(!1), s = /* @__PURE__ */ new Map(), c = S(() => typeof t.create == "function"), u = S(() => typeof t.restore == "function");
623
624
  function d(e) {
624
625
  let t = n();
@@ -694,7 +695,7 @@ function pn(e) {
694
695
  }
695
696
  //#endregion
696
697
  //#region ../core/src/comments.ts
697
- function mn(e) {
698
+ function hn(e) {
698
699
  let { provider: t, getTemplateId: n, getUser: r } = e, i = l([]), a = l(!1), o = l(!1), s = S(() => typeof t.create == "function"), c = S(() => typeof t.update == "function"), u = S(() => typeof t.delete == "function"), d = S(() => typeof t.setResolved == "function"), f = S(() => i.value.reduce((e, t) => e + 1 + (t.replies?.length ?? 0), 0)), p = S(() => i.value.filter((e) => !e.resolvedAt).length), m = S(() => {
699
700
  let e = /* @__PURE__ */ new Map();
700
701
  for (let t of i.value) t.blockId && e.set(t.blockId, (e.get(t.blockId) ?? 0) + 1 + (t.replies?.length ?? 0));
@@ -871,7 +872,7 @@ function mn(e) {
871
872
  applyRemoteDelete: N
872
873
  };
873
874
  }
874
- function hn(e) {
875
+ function gn(e) {
875
876
  let { comments: n, provider: r, getTemplateId: i } = e, { subscribe: a } = r;
876
877
  if (typeof a != "function") return;
877
878
  let o = null;
@@ -894,18 +895,18 @@ function hn(e) {
894
895
  }
895
896
  //#endregion
896
897
  //#region src/utils/activeEditorTracker.ts
897
- var gn = /* @__PURE__ */ new Set(), $ = 0, _n = 0;
898
- function vn() {
899
- let e = ++_n;
900
- return gn.add(e), $ === 0 && ($ = e), {
898
+ var _n = /* @__PURE__ */ new Set(), $ = 0, vn = 0;
899
+ function yn() {
900
+ let e = ++vn;
901
+ return _n.add(e), $ === 0 && ($ = e), {
901
902
  id: e,
902
- isActive: () => gn.size <= 1 || $ === e,
903
+ isActive: () => _n.size <= 1 || $ === e,
903
904
  claim: () => {
904
905
  $ = e;
905
906
  },
906
907
  dispose: () => {
907
- if (gn.delete(e), $ === e) {
908
- let e = Array.from(gn);
908
+ if (_n.delete(e), $ === e) {
909
+ let e = Array.from(_n);
909
910
  $ = e[e.length - 1] ?? 0;
910
911
  }
911
912
  }
@@ -913,8 +914,8 @@ function vn() {
913
914
  }
914
915
  //#endregion
915
916
  //#region src/composables/usePreviewResolution.ts
916
- var yn = 500;
917
- function bn(e) {
917
+ var bn = 500;
918
+ function xn(e) {
918
919
  let n = typeof e.resolvePreview == "function", r = l(null), i = l(!1), a = l(!1), o = 0, s = null;
919
920
  function c() {
920
921
  s !== null && (clearTimeout(s), s = null);
@@ -951,7 +952,7 @@ function bn(e) {
951
952
  }
952
953
  s = setTimeout(() => {
953
954
  s = null, u();
954
- }, yn);
955
+ }, bn);
955
956
  }
956
957
  }
957
958
  return t(() => [e.isActive(), e.getRecipient?.()], ([e]) => {
@@ -973,7 +974,7 @@ function bn(e) {
973
974
  }
974
975
  //#endregion
975
976
  //#region src/composables/useImageUrlResolver.ts
976
- function xn(e) {
977
+ function Sn(e) {
977
978
  let t = m(/* @__PURE__ */ new Map()), n = /* @__PURE__ */ new Set();
978
979
  function r(e) {
979
980
  return t.get(e);
@@ -1006,7 +1007,7 @@ function xn(e) {
1006
1007
  lookup: a
1007
1008
  };
1008
1009
  }
1009
- function Sn(e) {
1010
+ function Cn(e) {
1010
1011
  let r = n(ot, null), i = S(e);
1011
1012
  if (!r) return i;
1012
1013
  let a;
@@ -1036,7 +1037,7 @@ function Sn(e) {
1036
1037
  }
1037
1038
  //#endregion
1038
1039
  //#region src/composables/useMergeTagPicker.ts
1039
- function Cn() {
1040
+ function wn() {
1040
1041
  let e = l(!1), t = l([]), n = null;
1041
1042
  function r(r) {
1042
1043
  if (n) {
@@ -1066,7 +1067,7 @@ function Cn() {
1066
1067
  }
1067
1068
  //#endregion
1068
1069
  //#region src/composables/useLogicTagPicker.ts
1069
- function wn() {
1070
+ function Tn() {
1070
1071
  let e = l(!1), t = l([]), n = l([]), r = null;
1071
1072
  function i(i, a) {
1072
1073
  if (r) {
@@ -1097,11 +1098,11 @@ function wn() {
1097
1098
  }
1098
1099
  //#endregion
1099
1100
  //#region src/composables/useTemplateLint.ts
1100
- function Tn(e) {
1101
+ function En(e) {
1101
1102
  return e ? e.disabled === !0 || e.accessibility === !1 && e.structure === !1 && e.links === !1 : !1;
1102
1103
  }
1103
- function En(e) {
1104
- let n = l([]), r = l(!1), i = l(!1), a = x(null), o = Tn(e.options), s = null, c = !1;
1104
+ function Dn(e) {
1105
+ let n = l([]), r = l(!1), i = l(!1), a = x(null), o = En(e.options), s = null, c = !1;
1105
1106
  o || u();
1106
1107
  async function u() {
1107
1108
  try {
@@ -1142,17 +1143,17 @@ function En(e) {
1142
1143
  }
1143
1144
  //#endregion
1144
1145
  //#region src/utils/blockTypeLabels.ts
1145
- function Dn(e, t) {
1146
+ function On(e, t) {
1146
1147
  return t.blocks[e] ?? e;
1147
1148
  }
1148
- function On(e, t, n = []) {
1149
- if (e.type !== "custom") return Dn(e.type, t);
1149
+ function kn(e, t, n = []) {
1150
+ if (e.type !== "custom") return On(e.type, t);
1150
1151
  let { customType: r } = e;
1151
1152
  return n.find((e) => e.type === r)?.name ?? r;
1152
1153
  }
1153
1154
  //#endregion
1154
1155
  //#region src/composables/useKeyboardReorder.ts
1155
- function kn(e, t, n = []) {
1156
+ function An(e, t, n = []) {
1156
1157
  let r = l(null), i = l(""), a = null;
1157
1158
  function o(t) {
1158
1159
  let n = e.content.value.blocks, r = n.findIndex((e) => e.id === t);
@@ -1179,7 +1180,7 @@ function kn(e, t, n = []) {
1179
1180
  let i = o(r);
1180
1181
  if (!i) return "";
1181
1182
  let a = (i.sectionId ? c(i.sectionId, i.columnIndex ?? 0) : e.content.value.blocks)?.[i.index];
1182
- return a ? On(a, t.t, n) : "";
1183
+ return a ? kn(a, t.t, n) : "";
1183
1184
  }
1184
1185
  function c(t, n) {
1185
1186
  return e.content.value.blocks.find((e) => e.id === t && e.type === "section")?.children[n] ?? null;
@@ -1248,13 +1249,13 @@ function kn(e, t, n = []) {
1248
1249
  }
1249
1250
  //#endregion
1250
1251
  //#region src/composables/useUiTheme.ts
1251
- function An(e) {
1252
+ function jn(e) {
1252
1253
  let t = Be("(prefers-color-scheme: dark)");
1253
1254
  return { resolvedTheme: S(() => e.value === "auto" ? t.value ? "dark" : "light" : e.value) };
1254
1255
  }
1255
1256
  //#endregion
1256
1257
  //#region src/composables/useThemeStyles.ts
1257
- var jn = {
1258
+ var Mn = {
1258
1259
  bg: "--tpl-bg",
1259
1260
  bgElevated: "--tpl-bg-elevated",
1260
1261
  bgHover: "--tpl-bg-hover",
@@ -1278,10 +1279,10 @@ var jn = {
1278
1279
  dangerLight: "--tpl-danger-light",
1279
1280
  canvasBg: "--tpl-canvas-bg"
1280
1281
  };
1281
- function Mn({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1282
+ function Nn({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1282
1283
  return { themeStyles: S(() => {
1283
1284
  let r = {}, i = e.value, a = t.value === "dark" ? i.dark : i;
1284
- if (a) for (let [e, t] of Object.entries(jn)) {
1285
+ if (a) for (let [e, t] of Object.entries(Mn)) {
1285
1286
  let n = a[e];
1286
1287
  n && (r[t] = n);
1287
1288
  }
@@ -1290,7 +1291,7 @@ function Mn({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1290
1291
  }
1291
1292
  //#endregion
1292
1293
  //#region src/composables/useBlockRegistry.ts
1293
- function Nn() {
1294
+ function Pn() {
1294
1295
  let e = x(/* @__PURE__ */ new Map());
1295
1296
  function t(t, n) {
1296
1297
  e.value.set(t, n), T(e);
@@ -1348,9 +1349,9 @@ function Nn() {
1348
1349
  }
1349
1350
  //#endregion
1350
1351
  //#region src/composables/useCustomBlockStylesheets.ts
1351
- function Pn(e, t) {
1352
+ function Fn(e, t) {
1352
1353
  return S(() => {
1353
- let n = Fn(e.value.blocks);
1354
+ let n = In(e.value.blocks);
1354
1355
  if (n.size === 0) return [];
1355
1356
  let r = /* @__PURE__ */ new Set(), i = [];
1356
1357
  for (let e of n) {
@@ -1362,11 +1363,11 @@ function Pn(e, t) {
1362
1363
  return i;
1363
1364
  });
1364
1365
  }
1365
- function Fn(e) {
1366
+ function In(e) {
1366
1367
  let t = /* @__PURE__ */ new Set();
1367
- return In(e, t), t;
1368
+ return Ln(e, t), t;
1368
1369
  }
1369
- function In(e, t) {
1370
+ function Ln(e, t) {
1370
1371
  for (let n of e) {
1371
1372
  if (oe(n)) {
1372
1373
  t.add(n.customType);
@@ -1375,13 +1376,13 @@ function In(e, t) {
1375
1376
  if (n.type === "section") {
1376
1377
  let e = n.children;
1377
1378
  if (!e) continue;
1378
- for (let n of e) In(n, t);
1379
+ for (let n of e) Ln(n, t);
1379
1380
  }
1380
1381
  }
1381
1382
  }
1382
1383
  //#endregion
1383
1384
  //#region src/utils/registerBuiltInBlocks.ts
1384
- var Ln = [
1385
+ var Rn = [
1385
1386
  {
1386
1387
  type: "section",
1387
1388
  createBlock: Ce
@@ -1435,8 +1436,8 @@ var Ln = [
1435
1436
  createBlock: Pe
1436
1437
  }
1437
1438
  ];
1438
- function Rn(e, t) {
1439
- for (let n of Ln) {
1439
+ function zn(e, t) {
1440
+ for (let n of Rn) {
1440
1441
  let r = t[n.type];
1441
1442
  r && e.registerBuiltIn(n.type, {
1442
1443
  component: r,
@@ -1446,23 +1447,23 @@ function Rn(e, t) {
1446
1447
  }
1447
1448
  //#endregion
1448
1449
  //#region src/utils/resolveHtmlBlockPreview.ts
1449
- function zn(e) {
1450
+ function Bn(e) {
1450
1451
  return typeof e == "boolean" ? e : e?.enabled ?? !1;
1451
1452
  }
1452
1453
  //#endregion
1453
1454
  //#region src/utils/collectOffPaletteDefaults.ts
1454
- function Bn(e) {
1455
+ function Vn(e) {
1455
1456
  return typeof e == "object" && !!e && !Array.isArray(e);
1456
1457
  }
1457
- function Vn(e, t, n) {
1458
+ function Hn(e, t, n) {
1458
1459
  let r = new Set(e.map((e) => Z(e))), i = [], a = (e, t) => {
1459
- for (let [n, o] of Object.entries(e)) typeof o == "string" ? o !== "" && /color$/i.test(n) && !r.has(Z(o)) && i.push(`${t}.${n}: ${o}`) : Bn(o) && a(o, `${t}.${n}`);
1460
+ for (let [n, o] of Object.entries(e)) typeof o == "string" ? o !== "" && /color$/i.test(n) && !r.has(Z(o)) && i.push(`${t}.${n}: ${o}`) : Vn(o) && a(o, `${t}.${n}`);
1460
1461
  }, o = t;
1461
1462
  for (let [e, t] of Object.entries(Fe)) {
1462
1463
  let n = o?.[e];
1463
1464
  a({
1464
1465
  ...t,
1465
- ...Bn(n) ? n : {}
1466
+ ...Vn(n) ? n : {}
1466
1467
  }, e);
1467
1468
  }
1468
1469
  return a({
@@ -1472,7 +1473,7 @@ function Vn(e, t, n) {
1472
1473
  }
1473
1474
  //#endregion
1474
1475
  //#region src/utils/resolveFieldColors.ts
1475
- function Hn(e, t) {
1476
+ function Un(e, t) {
1476
1477
  let n = Dt({ presets: e.presets }, Tt), r = n.presets.length === 0;
1477
1478
  return {
1478
1479
  presets: r ? t.presets : n.presets,
@@ -1485,9 +1486,9 @@ function Hn(e, t) {
1485
1486
  }
1486
1487
  //#endregion
1487
1488
  //#region src/utils/collectColorFieldIssues.ts
1488
- function Un(e, t) {
1489
+ function Wn(e, t) {
1489
1490
  let n = [], r = (r, i) => {
1490
- let a = Hn(r, t), o = `custom block "${e.type}" field "${i}"`, s = (t) => `${e.type}:${i}:${t}`;
1491
+ let a = Un(r, t), o = `custom block "${e.type}" field "${i}"`, s = (t) => `${e.type}:${i}:${t}`;
1491
1492
  if (a.invalidPresets.length > 0 && n.push({
1492
1493
  id: s("invalid-presets"),
1493
1494
  message: `${o}: presets skipped invalid entries: ${a.invalidPresets.join(", ")} — presets must be hex colors (#rgb or #rrggbb).` + (a.presetsInherited ? " No valid entries are left, so the field inherits colors.presets." : "")
@@ -1511,7 +1512,7 @@ function Un(e, t) {
1511
1512
  }
1512
1513
  //#endregion
1513
1514
  //#region src/utils/keyboardShortcuts.ts
1514
- function Wn(e) {
1515
+ function Gn(e) {
1515
1516
  for (let t of e.composedPath()) {
1516
1517
  if (!(t instanceof HTMLElement)) continue;
1517
1518
  if (t.isContentEditable) return !0;
@@ -1520,18 +1521,18 @@ function Wn(e) {
1520
1521
  }
1521
1522
  return !1;
1522
1523
  }
1523
- function Gn(e, t) {
1524
+ function Kn(e, t) {
1524
1525
  let n = e.metaKey || e.ctrlKey;
1525
1526
  if (n && e.key.toLowerCase() === "s") {
1526
1527
  e.preventDefault(), t.onSave?.();
1527
1528
  return;
1528
1529
  }
1529
1530
  if (n && e.key.toLowerCase() === "z") {
1530
- if (Wn(e)) return;
1531
+ if (Gn(e)) return;
1531
1532
  e.preventDefault(), e.shiftKey ? t.history.redo() : (t.onBeforeUndo?.(), t.history.undo());
1532
1533
  return;
1533
1534
  }
1534
- if (t.isPicking?.() && !Wn(e)) {
1535
+ if (t.isPicking?.() && !Gn(e)) {
1535
1536
  if (e.key === "Escape") {
1536
1537
  e.preventDefault(), t.onCancelPick?.();
1537
1538
  return;
@@ -1549,11 +1550,11 @@ function Gn(e, t) {
1549
1550
  t.selectBlock(null);
1550
1551
  return;
1551
1552
  }
1552
- (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !Wn(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
1553
+ (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !Gn(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
1553
1554
  }
1554
1555
  //#endregion
1555
1556
  //#region src/utils/mergeTagLabelSegments.ts
1556
- function Kn(e, t, n, r = !1) {
1557
+ function qn(e, t, n, r = !1) {
1557
1558
  if (!e) return [];
1558
1559
  let i = RegExp(`(${n.value.source}|${n.logic.source})`, "g"), a = [], o = 0, s;
1559
1560
  for (; (s = i.exec(e)) !== null;) {
@@ -1587,20 +1588,20 @@ function Kn(e, t, n, r = !1) {
1587
1588
  }
1588
1589
  //#endregion
1589
1590
  //#region src/components/MergeTagPreviewText.vue
1590
- var qn = d({
1591
+ var Jn = d({
1591
1592
  name: "MergeTagPreviewText",
1592
1593
  props: { text: {
1593
1594
  type: String,
1594
1595
  required: !0
1595
1596
  } },
1596
1597
  setup(e) {
1597
- let t = n(K, []), r = n(ft, Ae.liquid), i = n(q, null), a = S(() => Kn(e.text, t, r, i?.value ?? !1));
1598
+ let t = n(K, []), r = n(ft, Ae.liquid), i = n(q, null), a = S(() => qn(e.text, t, r, i?.value ?? !1));
1598
1599
  return () => a.value.map((e, t) => e.type === "tag" ? z("span", {
1599
1600
  key: t,
1600
1601
  class: "tpl-merge-tag-label"
1601
1602
  }, e.value) : e.value);
1602
1603
  }
1603
- }), Jn = ["href"], Yn = /* @__PURE__ */ d({
1604
+ }), Yn = ["href"], Xn = /* @__PURE__ */ d({
1604
1605
  __name: "ButtonBlock",
1605
1606
  props: {
1606
1607
  block: {},
@@ -1626,13 +1627,13 @@ var qn = d({
1626
1627
  style: k(n.value),
1627
1628
  class: "tpl:cursor-default",
1628
1629
  onClick: i[0] ||= O(() => {}, ["prevent"])
1629
- }, [v(qn, { text: e.block.text }, null, 8, ["text"])], 12, Jn)], 4));
1630
+ }, [v(Jn, { text: e.block.text }, null, 8, ["text"])], 12, Yn)], 4));
1630
1631
  }
1631
- }), Xn = ["innerHTML"], Zn = [
1632
+ }), Zn = ["innerHTML"], Qn = [
1632
1633
  "src",
1633
1634
  "width",
1634
1635
  "height"
1635
- ], Qn = /* @__PURE__ */ d({
1636
+ ], $n = /* @__PURE__ */ d({
1636
1637
  __name: "CustomBlockIcon",
1637
1638
  props: {
1638
1639
  icon: {},
@@ -1648,30 +1649,22 @@ var qn = d({
1648
1649
  height: `${n.value}px`
1649
1650
  }),
1650
1651
  innerHTML: e.icon
1651
- }, null, 12, Xn)) : i.value ? (s(), C("img", {
1652
+ }, null, 12, Zn)) : i.value ? (s(), C("img", {
1652
1653
  key: 1,
1653
1654
  src: e.icon,
1654
1655
  width: n.value,
1655
1656
  height: n.value,
1656
1657
  class: "tpl:inline-block",
1657
1658
  alt: ""
1658
- }, null, 8, Zn)) : (s(), A(_(Kt), {
1659
+ }, null, 8, Qn)) : (s(), A(_(Kt), {
1659
1660
  key: 2,
1660
1661
  size: n.value,
1661
1662
  "stroke-width": 1.5
1662
1663
  }, null, 8, ["size"]));
1663
1664
  }
1664
- });
1665
- //#endregion
1666
- //#region src/composables/useEditorRoot.ts
1667
- function $n() {
1668
- return n(ut, document) ?? document;
1669
- }
1670
- //#endregion
1671
- //#region src/composables/useFocusTrap.ts
1672
- var er = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
1665
+ }), er = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
1673
1666
  function tr(e, n) {
1674
- let r = $n(), i = null, a = null, o = null;
1667
+ let r = Yt(), i = null, a = null, o = null;
1675
1668
  function s() {
1676
1669
  return e.value ? Array.from(e.value.querySelectorAll(er)).filter((e) => e.offsetParent !== null) : [];
1677
1670
  }
@@ -2114,7 +2107,7 @@ var vr = { class: "tpl:w-full" }, yr = {
2114
2107
  },
2115
2108
  emits: ["fetchData"],
2116
2109
  setup(e, { emit: r }) {
2117
- let i = e, a = r, { t: o } = Y(), c = n(vt, null), u = l(""), d = l(!1), f = S(() => c?.getDefinition(i.block.customType)), p = S(() => !!f.value), { isFetching: m, fetch: h, needsFetch: g, hasDataSource: y } = cn({
2110
+ let i = e, a = r, { t: o } = Y(), c = n(vt, null), u = l(""), d = l(!1), f = S(() => c?.getDefinition(i.block.customType)), p = S(() => !!f.value), { isFetching: m, fetch: h, needsFetch: g, hasDataSource: y } = ln({
2118
2111
  definition: f,
2119
2112
  block: S(() => i.block),
2120
2113
  onUpdate: (e, t) => {
@@ -2161,7 +2154,7 @@ var vr = { class: "tpl:w-full" }, yr = {
2161
2154
  type: "button",
2162
2155
  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-[var(--tpl-shadow)] tpl:transition-all tpl:hover:border-[var(--tpl-primary)] tpl:hover:shadow-[var(--tpl-shadow-md)] tpl:bg-[var(--tpl-primary-light)] tpl:text-[var(--tpl-primary-hover)]",
2163
2156
  onClick: t[0] ||= O((...e) => _(h) && _(h)(...e), ["stop"])
2164
- }, [f.value?.icon ? (s(), A(Qn, {
2157
+ }, [f.value?.icon ? (s(), A($n, {
2165
2158
  key: 0,
2166
2159
  icon: f.value.icon,
2167
2160
  size: 16
@@ -2264,7 +2257,7 @@ var Lr = {
2264
2257
  },
2265
2258
  emits: ["update"],
2266
2259
  setup(e, { emit: t }) {
2267
- let r = e, i = t, { t: a } = Y(), { syntax: o } = Q(), c = n(dt, null), u = S(() => !!c), d = Yt();
2260
+ let r = e, i = t, { t: a } = Y(), { syntax: o } = Q(), c = n(dt, null), u = S(() => !!c), d = Xt();
2268
2261
  async function f() {
2269
2262
  let e = await c?.({ accept: ["images"] });
2270
2263
  if (d.alive && e) {
@@ -2304,7 +2297,7 @@ var Lr = {
2304
2297
  marginLeft: e === "center" || e === "right" ? "auto" : void 0,
2305
2298
  marginRight: e === "center" ? "auto" : void 0
2306
2299
  };
2307
- }), T = S(() => U(r.block.src, o)), E = Sn(() => T.value ? void 0 : r.block.src), D = Sn(() => T.value ? r.block.placeholderUrl : void 0);
2300
+ }), T = S(() => U(r.block.src, o)), E = Cn(() => T.value ? void 0 : r.block.src), D = Cn(() => T.value ? r.block.placeholderUrl : void 0);
2308
2301
  return (t, n) => (s(), C("div", {
2309
2302
  ref_key: "dropZoneRef",
2310
2303
  ref: p,
@@ -2345,7 +2338,7 @@ var Lr = {
2345
2338
  "stroke-width": 1.5,
2346
2339
  class: "tpl:text-[var(--tpl-primary)]",
2347
2340
  style: { opacity: "0.5" }
2348
- }), M("span", Vr, [v(qn, { text: e.block.src }, null, 8, ["text"])])], 4)) : e.block.src ? (s(), C(L, { key: 3 }, [e.block.linkUrl ? (s(), C("a", {
2341
+ }), M("span", Vr, [v(Jn, { text: e.block.src }, null, 8, ["text"])])], 4)) : e.block.src ? (s(), C(L, { key: 3 }, [e.block.linkUrl ? (s(), C("a", {
2349
2342
  key: 0,
2350
2343
  href: e.block.linkUrl,
2351
2344
  target: "_blank",
@@ -2407,7 +2400,7 @@ var Lr = {
2407
2400
  textDecoration: t.underline ? "underline" : "none"
2408
2401
  }),
2409
2402
  onClick: c[0] ||= O(() => {}, ["prevent"])
2410
- }, [v(qn, { text: t.text || "..." }, null, 8, ["text"])], 12, Xr), n < e.block.items.length - 1 ? (s(), C("span", {
2403
+ }, [v(Jn, { text: t.text || "..." }, null, 8, ["text"])], 12, Xr), n < e.block.items.length - 1 ? (s(), C("span", {
2411
2404
  key: 0,
2412
2405
  style: k({
2413
2406
  color: e.block.separatorColor,
@@ -2515,7 +2508,7 @@ var oi = ["innerHTML"], si = /* @__PURE__ */ d({
2515
2508
  viewport: {}
2516
2509
  },
2517
2510
  setup(e) {
2518
- let t = e, n = B(() => import("./ParagraphEditor-BBcIQQK2.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = ai(() => t.block.content);
2511
+ let t = e, n = B(() => import("./ParagraphEditor-Be-BO5hD.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = ai(() => t.block.content);
2519
2512
  return (t, u) => (s(), C("div", {
2520
2513
  ref_key: "blockRef",
2521
2514
  ref: i,
@@ -2593,7 +2586,7 @@ var fi = [
2593
2586
  },
2594
2587
  emits: ["select"],
2595
2588
  setup(e, { emit: t }) {
2596
- let r = B(() => import("./BlockIssueBadge-UzSSOM_2.js")), i = e, o = t, { t: c, format: u } = Y(), d = n(St, null), f = l(null), p = S(() => d?.liftedBlockId.value === i.block.id), m = S(() => p.value ? u(c.blockActions.dragLifted, { block: i.block.type }) : c.blockActions.drag);
2589
+ let r = B(() => import("./BlockIssueBadge-Drrmjqd7.js")), i = e, o = t, { t: c, format: u } = Y(), d = n(St, null), f = l(null), p = S(() => d?.liftedBlockId.value === i.block.id), m = S(() => p.value ? u(c.blockActions.dragLifted, { block: i.block.type }) : c.blockActions.drag);
2597
2590
  async function h() {
2598
2591
  await D(), f.value?.focus();
2599
2592
  }
@@ -2755,7 +2748,7 @@ var Ei = /* @__PURE__ */ d({
2755
2748
  viewport: {}
2756
2749
  },
2757
2750
  setup(e) {
2758
- let t = e, n = B(() => import("./TitleEditor-BP0ewaWF.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = ai(() => t.block.content), d = S(() => {
2751
+ let t = e, n = B(() => import("./TitleEditor-D_NJ4Ww8.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = ai(() => t.block.content), d = S(() => {
2759
2752
  let e = {
2760
2753
  fontSize: `${Me[t.block.level]}px`,
2761
2754
  textAlign: t.block.textAlign
@@ -2807,7 +2800,7 @@ var Oi = { class: "tpl:w-full" }, ki = {
2807
2800
  title: Ei,
2808
2801
  paragraph: si,
2809
2802
  image: Jr,
2810
- button: Yn,
2803
+ button: Xn,
2811
2804
  divider: Or,
2812
2805
  custom: Er
2813
2806
  }, a = e, { t: o } = Y(), c = rt(J, "SectionBlock"), l = n(ct, null), d = n(vt, null), p = n(st, {}), m = n(_t, null);
@@ -3195,7 +3188,7 @@ var $i = ["src", "alt"], ea = {
3195
3188
  viewport: {}
3196
3189
  },
3197
3190
  setup(e) {
3198
- let t = e, { t: n } = Y(), { syntax: r } = Q(), i = S(() => U(t.block.url, r) || U(t.block.thumbnailUrl, r)), a = Sn(() => i.value ? void 0 : t.block.thumbnailUrl || void 0), o = Sn(() => i.value ? t.block.placeholderUrl : void 0), c = S(() => i.value ? null : t.block.thumbnailUrl ? a.value ?? null : Qi(t.block.url)), l = S(() => ({ textAlign: t.block.align })), u = S(() => {
3191
+ let t = e, { t: n } = Y(), { syntax: r } = Q(), i = S(() => U(t.block.url, r) || U(t.block.thumbnailUrl, r)), a = Cn(() => i.value ? void 0 : t.block.thumbnailUrl || void 0), o = Cn(() => i.value ? t.block.placeholderUrl : void 0), c = S(() => i.value ? null : t.block.thumbnailUrl ? a.value ?? null : Qi(t.block.url)), l = S(() => ({ textAlign: t.block.align })), u = S(() => {
3199
3192
  let e = t.block.align;
3200
3193
  return {
3201
3194
  maxWidth: "100%",
@@ -3225,7 +3218,7 @@ var $i = ["src", "alt"], ea = {
3225
3218
  "stroke-width": 1.5,
3226
3219
  class: "tpl:text-[var(--tpl-primary)]",
3227
3220
  style: { opacity: "0.5" }
3228
- }), M("span", ea, [v(qn, { text: d.value }, null, 8, ["text"])])], 4)) : c.value ? (s(), C(L, { key: 2 }, [e.block.url ? (s(), C("a", {
3221
+ }), M("span", ea, [v(Jn, { text: d.value }, null, 8, ["text"])])], 4)) : c.value ? (s(), C(L, { key: 2 }, [e.block.url ? (s(), C("a", {
3229
3222
  key: 0,
3230
3223
  href: e.block.url,
3231
3224
  target: "_blank",
@@ -3256,7 +3249,7 @@ var $i = ["src", "alt"], ea = {
3256
3249
  title: Ei,
3257
3250
  paragraph: si,
3258
3251
  image: Jr,
3259
- button: Yn,
3252
+ button: Xn,
3260
3253
  divider: Or,
3261
3254
  video: aa,
3262
3255
  social: Bi,
@@ -3264,32 +3257,32 @@ var $i = ["src", "alt"], ea = {
3264
3257
  table: Yi,
3265
3258
  spacer: Ui,
3266
3259
  html: Pr,
3267
- countdown: B(() => import("./CountdownBlock-BYSrJWxg.js"))
3260
+ countdown: B(() => import("./CountdownBlock-BKrYGRiT.js"))
3268
3261
  };
3269
3262
  function sa(e) {
3270
3263
  let { editor: n, config: r, translations: i, fontsManager: a } = e, { t: s, format: u } = Y(i);
3271
3264
  n.setUiTheme(r.uiTheme ?? "auto");
3272
- let { resolvedTheme: d } = An(S(() => n.state.uiTheme)), f = l(r.theme ?? {}), { themeStyles: p } = Mn({
3265
+ let { resolvedTheme: d } = jn(S(() => n.state.uiTheme)), f = l(r.theme ?? {}), { themeStyles: p } = Nn({
3273
3266
  themeOverrides: f,
3274
3267
  resolvedTheme: d,
3275
3268
  extraStyles: () => ({
3276
3269
  "--tpl-drop-text": `"${i.canvas.dropHere}"`,
3277
3270
  ...e.themeExtraStyles?.()
3278
3271
  })
3279
- }), m = tn({
3272
+ }), m = nn({
3280
3273
  content: n.content,
3281
3274
  setContent: (e, t) => n.setContent(e, t),
3282
3275
  ...e.historyOptions
3283
3276
  });
3284
- ln(n, m);
3285
- let g = rn({
3277
+ un(n, m);
3278
+ let g = an({
3286
3279
  addBlock: n.addBlock,
3287
3280
  removeBlock: n.removeBlock,
3288
3281
  updateBlock: n.updateBlock,
3289
3282
  selectBlock: n.selectBlock,
3290
3283
  findBlockLocation: n.findBlockLocation,
3291
3284
  blockDefaults: r.blockDefaults
3292
- }), _ = sn(n), v = e.autoSaveOptions !== null && e.autoSaveOptions !== void 0 ? on({
3285
+ }), _ = cn(n), v = e.autoSaveOptions !== null && e.autoSaveOptions !== void 0 ? sn({
3293
3286
  content: n.content,
3294
3287
  isDirty: () => n.state.isDirty,
3295
3288
  ...e.autoSaveOptions
@@ -3297,25 +3290,25 @@ function sa(e) {
3297
3290
  v && (y = t(m.isNavigating, (e) => {
3298
3291
  e ? v.pause() : v.resume();
3299
3292
  }));
3300
- let b = kn(n, {
3293
+ let b = An(n, {
3301
3294
  t: s,
3302
3295
  format: u
3303
3296
  }, r.customBlocks ?? []), x = Dt(r.colors);
3304
3297
  if (x.allowCustomIgnored && X.warn("config.colors.allowCustom: false is ignored without presets — keeping the color wheel and hex input so a color can still be chosen."), x.invalidPresets.length > 0 && X.warn(`config.colors.presets skipped invalid entries: ${x.invalidPresets.join(", ")} — presets must be hex colors (#rgb or #rrggbb).`), x.allowCustom === !1) {
3305
- let e = Vn(x.presets, r.blockDefaults, r.templateDefaults);
3298
+ let e = Hn(x.presets, r.blockDefaults, r.templateDefaults);
3306
3299
  e.length > 0 && X.warn(`config.colors locks custom colours, but these block/template default colours fall outside colors.presets: ${e.join(", ")}. New blocks start on a colour the palette can't reselect — set blockDefaults / templateDefaults from the same palette.`);
3307
3300
  }
3308
- let C = Nn();
3309
- Rn(C, oa);
3301
+ let C = Pn();
3302
+ zn(C, oa);
3310
3303
  let w = /* @__PURE__ */ new Set();
3311
3304
  function T(e) {
3312
3305
  for (let t of e) {
3313
3306
  C.registerCustom(t, Er);
3314
- for (let e of Un(t, x)) w.has(e.id) || (w.add(e.id), X.warn(e.message));
3307
+ for (let e of Wn(t, x)) w.has(e.id) || (w.add(e.id), X.warn(e.message));
3315
3308
  }
3316
3309
  }
3317
3310
  r.customBlocks?.length && T(r.customBlocks);
3318
- let E = vn();
3311
+ let E = yn();
3319
3312
  if (o() && h(E.dispose), e.containerEl) {
3320
3313
  let t = e.containerEl;
3321
3314
  G(document, "pointerdown", (e) => {
@@ -3332,7 +3325,7 @@ function sa(e) {
3332
3325
  v?.flush();
3333
3326
  }
3334
3327
  function O(t) {
3335
- E.isActive() && Gn(t, {
3328
+ E.isActive() && Kn(t, {
3336
3329
  history: m,
3337
3330
  selectBlock: (e) => n.selectBlock(e),
3338
3331
  getSelectedBlockId: () => n.state.selectedBlockId,
@@ -3346,12 +3339,12 @@ function sa(e) {
3346
3339
  }
3347
3340
  G(document, "keydown", O);
3348
3341
  let k = l(null);
3349
- c(ut, e.editorRoot ?? document), c(et, k), c(nt, i), c(J, n), c(bt, m), c(at, g), c(ct, _), c(it, a), c(We, p), c(Ye, d), c(ht, r.blockDefaults), c(vt, C), c(lt, r.customBlocks ?? []), c(Qe, r.paletteBlocks), c(Ct, zn(r.htmlBlockPreview)), c(yt, x), c(gt, Pn(n.content, C));
3342
+ c(ut, e.editorRoot ?? document), c(et, k), c(nt, i), c(J, n), c(bt, m), c(at, g), c(ct, _), c(it, a), c(We, p), c(Ye, d), c(ht, r.blockDefaults), c(vt, C), c(lt, r.customBlocks ?? []), c(Qe, r.paletteBlocks), c(Ct, Bn(r.htmlBlockPreview)), c(yt, x), c(gt, Fn(n.content, C));
3350
3343
  let A = Se(r.mergeTags?.syntax);
3351
3344
  c(K, r.mergeTags?.tags ?? []), c(ft, A), c(Ze, r.mergeTags?.onRequest ?? null), c(qe, r.mergeTags?.autocomplete !== !1);
3352
3345
  let j = l(Ne(r.mergeTags?.tags ?? []));
3353
3346
  c($e, j);
3354
- let M = bn({
3347
+ let M = xn({
3355
3348
  resolvePreview: r.resolvePreview,
3356
3349
  getContent: () => n.content.value,
3357
3350
  isActive: () => n.state.previewMode
@@ -3359,9 +3352,9 @@ function sa(e) {
3359
3352
  c(Je, M), c(Xe, r.resolvePreview);
3360
3353
  let N = S(() => !(n.state.previewMode && M.isConfigured));
3361
3354
  c(_t, N);
3362
- let P = Cn();
3363
- c(Ke, P), c(Ge, r.logicTags?.tags ?? []), c(tt, r.logicTags?.pairs ?? []), c(Ue, r.logicTags?.onRequest ?? null), c(xt, wn()), c(dt, r.onRequestMedia ?? null), c(ot, r.resolveImageUrl ? xn(r.resolveImageUrl) : null), c(pt, r.displayConditions?.conditions ?? []), c(mt, r.displayConditions?.allowCustom ?? !1), c(st, e.capabilities ?? {}), c(St, b);
3364
- let F = Tn(r.lint) ? null : En({
3355
+ let P = wn();
3356
+ c(Ke, P), c(Ge, r.logicTags?.tags ?? []), c(tt, r.logicTags?.pairs ?? []), c(Ue, r.logicTags?.onRequest ?? null), c(xt, Tn()), c(dt, r.onRequestMedia ?? null), c(ot, r.resolveImageUrl ? Sn(r.resolveImageUrl) : null), c(pt, r.displayConditions?.conditions ?? []), c(mt, r.displayConditions?.allowCustom ?? !1), c(st, e.capabilities ?? {}), c(St, b);
3357
+ let F = En(r.lint) ? null : Dn({
3365
3358
  content: n.content,
3366
3359
  options: r.lint ?? {},
3367
3360
  updateBlock: n.updateBlock,
@@ -3394,6 +3387,6 @@ function sa(e) {
3394
3387
  };
3395
3388
  }
3396
3389
  //#endregion
3397
- export { On as A, Zt as B, cr as C, Qn as D, tr as E, pn as F, fn as I, un as L, bn as M, hn as N, Yn as O, mn as P, cn as R, pr as S, nr as T, Pr as _, Bi as a, _r as b, Ei as c, ci as d, li as f, Ir as g, Jr as h, Ui as i, Dn as j, Hn as k, wi as l, Qr as m, aa as n, Ni as o, si as p, Yi as r, Ai as s, sa as t, ui as u, Or as v, sr as w, hr as x, Er as y, an as z };
3390
+ export { kn as A, Qt as B, cr as C, $n as D, tr as E, mn as F, pn as I, dn as L, xn as M, gn as N, Xn as O, hn as P, ln as R, pr as S, nr as T, Pr as _, Bi as a, _r as b, Ei as c, ci as d, li as f, Ir as g, Jr as h, Ui as i, On as j, Un as k, wi as l, Qr as m, aa as n, Ni as o, si as p, Yi as r, Ai as s, sa as t, ui as u, Or as v, sr as w, hr as x, Er as y, on as z };
3398
3391
 
3399
- //# sourceMappingURL=useEditorCore-DC8gmfs6.js.map
3392
+ //# sourceMappingURL=useEditorCore-BtEO1qms.js.map