@templatical/editor 0.24.1 → 0.25.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-X4viKtvs.js → AiChatSidebar-CIkS8DsO.js} +3 -3
  2. package/dist/{AiFeatureMenu-DDAamRaA.js → AiFeatureMenu-Cji1LBJJ.js} +3 -3
  3. package/dist/{BlockIssueBadge-Qxrl7Ujl.js → BlockIssueBadge-BQiT0FML.js} +2 -2
  4. package/dist/{BlockPreviewCanvas-Cf-kxbEr.js → BlockPreviewCanvas-DAnwZofk.js} +10 -6
  5. package/dist/{CloudEditor-JIzhj1Xq.js → CloudEditor-CXaft6Ej.js} +60 -58
  6. package/dist/{CollaboratorBar-tC7AACTb.js → CollaboratorBar-BR-rL2wG.js} +2 -2
  7. package/dist/{ColorPicker--_2PbzFk.js → ColorPicker-B4ArSUhy.js} +3 -3
  8. package/dist/{CommentsSidebar-Ci2Ov8FG.js → CommentsSidebar-Bm5GLDts.js} +4 -4
  9. package/dist/{CountdownBlock-aZIKfBWY.js → CountdownBlock-CIVAQDVu.js} +1 -1
  10. package/dist/{CountdownToolbar-DHp6T0Q_.js → CountdownToolbar-DBmb3tlb.js} +3 -3
  11. package/dist/{DesignReferenceSidebar-DQsC-3hB.js → DesignReferenceSidebar-CnyJ8L-j.js} +3 -3
  12. package/dist/{IssuesPanel-CoOfib44.js → IssuesPanel-D3XgmYCt.js} +2 -2
  13. package/dist/{MergeTagModeToggle-CiFiSV0C.js → MergeTagModeToggle-BK0fI3P2.js} +3 -3
  14. package/dist/{NumberWithSuffix-CXFbUqsx.js → NumberWithSuffix-Cjj9UNIp.js} +1 -1
  15. package/dist/{ParagraphEditor-Cy-bpEjI.js → ParagraphEditor-jGnbJEA2.js} +8 -8
  16. package/dist/{RichTextEditorContent-CYJko6id.js → RichTextEditorContent-DaaKdzjb.js} +4 -4
  17. package/dist/{SaveBlockDialog-CNTSaMEa.js → SaveBlockDialog-B3ngEldp.js} +7 -7
  18. package/dist/{SavedBlocksBrowserModal-CvxS5-YX.js → SavedBlocksBrowserModal-DawN3XaB.js} +6 -6
  19. package/dist/{SavedBlocksPanels-CNdUxS89.js → SavedBlocksPanels-eDC9Y46N.js} +1 -1
  20. package/dist/{SavedBlocksPickBar-BvXKhblL.js → SavedBlocksPickBar-CQbbXmzj.js} +2 -2
  21. package/dist/{SnapshotHistory-BqPSIV9L.js → SnapshotHistory-COxKtHM-.js} +4 -4
  22. package/dist/{TemplateScoringPanel-CMEuz9yF.js → TemplateScoringPanel-bUuqOO1z.js} +3 -3
  23. package/dist/{TestEmailModal-BDhnnCBx.js → TestEmailModal-CytkbZVQ.js} +87 -56
  24. package/dist/{TestEmailPanel--RwnwLn2.js → TestEmailPanel-CHUY7VZn.js} +1 -1
  25. package/dist/{TitleEditor-F7E_pU9H.js → TitleEditor-aMR1bOyY.js} +7 -7
  26. package/dist/{TplModal-BIiS24Of.js → TplModal-fmYNYdyp.js} +3 -3
  27. package/dist/{blockTypeIcons-C6PnLMp7.js → blockTypeIcons-C6b9rg88.js} +1 -1
  28. package/dist/bundle-stats.json +6 -6
  29. package/dist/{cdn/chunks/ca-CO4nq6TX.js → ca-8Dvbwo50.js} +5 -2
  30. package/dist/cdn/chunks/{AiChatSidebar-UbF3ePzR.js → AiChatSidebar-bkBKpNgE.js} +4 -4
  31. package/dist/cdn/chunks/{AiChatSidebar-UbF3ePzR.js.map → AiChatSidebar-bkBKpNgE.js.map} +1 -1
  32. package/dist/cdn/chunks/{AiFeatureMenu-OIwoJzHG.js → AiFeatureMenu-CI4SYTq2.js} +4 -4
  33. package/dist/cdn/chunks/{AiFeatureMenu-OIwoJzHG.js.map → AiFeatureMenu-CI4SYTq2.js.map} +1 -1
  34. package/dist/cdn/chunks/{BlockIssueBadge-Bd2EuT1C.js → BlockIssueBadge-CRnx8Dv9.js} +3 -3
  35. package/dist/cdn/chunks/{BlockIssueBadge-Bd2EuT1C.js.map → BlockIssueBadge-CRnx8Dv9.js.map} +1 -1
  36. package/dist/cdn/chunks/{BlockPreviewCanvas-C-ut8GkJ.js → BlockPreviewCanvas-CXCWhqbp.js} +11 -7
  37. package/dist/cdn/chunks/BlockPreviewCanvas-CXCWhqbp.js.map +1 -0
  38. package/dist/cdn/chunks/{CloudEditor-D87qsqbZ.js → CloudEditor-D-t7RyDh.js} +62 -60
  39. package/dist/cdn/chunks/CloudEditor-D-t7RyDh.js.map +1 -0
  40. package/dist/cdn/chunks/{CollaboratorBar-Br4RvNrA.js → CollaboratorBar-DcXYo47v.js} +3 -3
  41. package/dist/cdn/chunks/{CollaboratorBar-Br4RvNrA.js.map → CollaboratorBar-DcXYo47v.js.map} +1 -1
  42. package/dist/cdn/chunks/{ColorPicker-B-ymPPtU.js → ColorPicker-_1O7YU2z.js} +4 -4
  43. package/dist/cdn/chunks/{ColorPicker-B-ymPPtU.js.map → ColorPicker-_1O7YU2z.js.map} +1 -1
  44. package/dist/cdn/chunks/{CommentsSidebar-Tv_WTcJv.js → CommentsSidebar-BEgLBYX-.js} +5 -5
  45. package/dist/cdn/chunks/{CommentsSidebar-Tv_WTcJv.js.map → CommentsSidebar-BEgLBYX-.js.map} +1 -1
  46. package/dist/cdn/chunks/{CountdownBlock-cEcXSK91.js → CountdownBlock-CPnQA44g.js} +2 -2
  47. package/dist/cdn/chunks/{CountdownBlock-cEcXSK91.js.map → CountdownBlock-CPnQA44g.js.map} +1 -1
  48. package/dist/cdn/chunks/{CountdownToolbar-CLp3_ebk.js → CountdownToolbar-Cdo-30U4.js} +4 -4
  49. package/dist/cdn/chunks/{CountdownToolbar-CLp3_ebk.js.map → CountdownToolbar-Cdo-30U4.js.map} +1 -1
  50. package/dist/cdn/chunks/{DesignReferenceSidebar-YeqxSsxO.js → DesignReferenceSidebar-DPqBr-ut.js} +4 -4
  51. package/dist/cdn/chunks/{DesignReferenceSidebar-YeqxSsxO.js.map → DesignReferenceSidebar-DPqBr-ut.js.map} +1 -1
  52. package/dist/cdn/chunks/{IssuesPanel-BhsvC3XQ.js → IssuesPanel-DoQWb23r.js} +3 -3
  53. package/dist/cdn/chunks/{IssuesPanel-BhsvC3XQ.js.map → IssuesPanel-DoQWb23r.js.map} +1 -1
  54. package/dist/cdn/chunks/{MergeTagModeToggle-DrdxQA0K.js → MergeTagModeToggle-CWuVC3MU.js} +4 -4
  55. package/dist/cdn/chunks/{MergeTagModeToggle-DrdxQA0K.js.map → MergeTagModeToggle-CWuVC3MU.js.map} +1 -1
  56. package/dist/cdn/chunks/{NumberWithSuffix-BK_Xh4w4.js → NumberWithSuffix-DQ4sgvt5.js} +2 -2
  57. package/dist/cdn/chunks/{NumberWithSuffix-BK_Xh4w4.js.map → NumberWithSuffix-DQ4sgvt5.js.map} +1 -1
  58. package/dist/cdn/chunks/{ParagraphEditor-DKz4vTWB.js → ParagraphEditor-Uv5LPF3W.js} +9 -9
  59. package/dist/cdn/chunks/{ParagraphEditor-DKz4vTWB.js.map → ParagraphEditor-Uv5LPF3W.js.map} +1 -1
  60. package/dist/cdn/chunks/{RichTextEditorContent-CJ2WVicQ.js → RichTextEditorContent-Bt3s09qY.js} +5 -5
  61. package/dist/cdn/chunks/{RichTextEditorContent-CJ2WVicQ.js.map → RichTextEditorContent-Bt3s09qY.js.map} +1 -1
  62. package/dist/cdn/chunks/{SaveBlockDialog-DTemkKPX.js → SaveBlockDialog-BAew6EFd.js} +8 -8
  63. package/dist/cdn/chunks/{SaveBlockDialog-DTemkKPX.js.map → SaveBlockDialog-BAew6EFd.js.map} +1 -1
  64. package/dist/cdn/chunks/{SavedBlocksBrowserModal-DbMaIbeH.js → SavedBlocksBrowserModal-Dn4IJDJW.js} +6 -6
  65. package/dist/cdn/chunks/{SavedBlocksBrowserModal-DbMaIbeH.js.map → SavedBlocksBrowserModal-Dn4IJDJW.js.map} +1 -1
  66. package/dist/cdn/chunks/{SavedBlocksPanels-CUffuDAC.js → SavedBlocksPanels-B62U5DYW.js} +2 -2
  67. package/dist/cdn/chunks/{SavedBlocksPanels-CUffuDAC.js.map → SavedBlocksPanels-B62U5DYW.js.map} +1 -1
  68. package/dist/cdn/chunks/{SavedBlocksPickBar-D7SmNz2n.js → SavedBlocksPickBar-CyRKZg2T.js} +3 -3
  69. package/dist/cdn/chunks/{SavedBlocksPickBar-D7SmNz2n.js.map → SavedBlocksPickBar-CyRKZg2T.js.map} +1 -1
  70. package/dist/cdn/chunks/{SnapshotHistory-m5Z8bTej.js → SnapshotHistory-QQt0DKey.js} +4 -4
  71. package/dist/cdn/chunks/{SnapshotHistory-m5Z8bTej.js.map → SnapshotHistory-QQt0DKey.js.map} +1 -1
  72. package/dist/cdn/chunks/{TemplateScoringPanel-DgRU5fty.js → TemplateScoringPanel-BwyCMcit.js} +65 -65
  73. package/dist/cdn/chunks/{TemplateScoringPanel-DgRU5fty.js.map → TemplateScoringPanel-BwyCMcit.js.map} +1 -1
  74. package/dist/cdn/chunks/{TestEmailModal-Ce8-vzGh.js → TestEmailModal-B5UQkDJp.js} +89 -58
  75. package/dist/cdn/chunks/TestEmailModal-B5UQkDJp.js.map +1 -0
  76. package/dist/cdn/chunks/{TestEmailPanel-BlmIKKSL.js → TestEmailPanel-CvuBq4RA.js} +2 -2
  77. package/dist/cdn/chunks/{TestEmailPanel-BlmIKKSL.js.map → TestEmailPanel-CvuBq4RA.js.map} +1 -1
  78. package/dist/cdn/chunks/{TitleEditor-C6_bQxYR.js → TitleEditor-B9W954u9.js} +8 -8
  79. package/dist/cdn/chunks/{TitleEditor-C6_bQxYR.js.map → TitleEditor-B9W954u9.js.map} +1 -1
  80. package/dist/cdn/chunks/{TplModal-D6bFON2K.js → TplModal-B8UsvWc8.js} +4 -4
  81. package/dist/cdn/chunks/{TplModal-D6bFON2K.js.map → TplModal-B8UsvWc8.js.map} +1 -1
  82. package/dist/{ca-CO4nq6TX.js → cdn/chunks/ca-8Dvbwo50.js} +7 -0
  83. package/dist/cdn/chunks/{ca-CO4nq6TX.js.map → ca-8Dvbwo50.js.map} +1 -1
  84. package/dist/cdn/chunks/{cloud-CRlDc0Ev.js → cloud-DOaGUdR0.js} +2 -2
  85. package/dist/cdn/chunks/{cloud-CRlDc0Ev.js.map → cloud-DOaGUdR0.js.map} +1 -1
  86. package/dist/{de-CUeaFJph.js → cdn/chunks/de-CieSMCUp.js} +7 -0
  87. package/dist/cdn/chunks/{de-CUeaFJph.js.map → de-CieSMCUp.js.map} +1 -1
  88. package/dist/{en-zCYIPAL5.js → cdn/chunks/en-D0t_2Fq_.js} +7 -0
  89. package/dist/cdn/chunks/{en-zCYIPAL5.js.map → en-D0t_2Fq_.js.map} +1 -1
  90. package/dist/cdn/chunks/{es-BSiH7YkP.js → es-DwDoNuLM.js} +6 -1
  91. package/dist/cdn/chunks/{es-BSiH7YkP.js.map → es-DwDoNuLM.js.map} +1 -1
  92. package/dist/cdn/chunks/{extensions-CKMD_er_.js → extensions-5jgtarD-.js} +19 -19
  93. package/dist/cdn/chunks/{extensions-CKMD_er_.js.map → extensions-5jgtarD-.js.map} +1 -1
  94. package/dist/{fr-DTVJ3det.js → cdn/chunks/fr-CSEEzv1_.js} +7 -0
  95. package/dist/cdn/chunks/{fr-DTVJ3det.js.map → fr-CSEEzv1_.js.map} +1 -1
  96. package/dist/cdn/chunks/keys-BxPCfHBH.js +12 -0
  97. package/dist/cdn/chunks/keys-BxPCfHBH.js.map +1 -0
  98. package/dist/{nl-BqSquFS3.js → cdn/chunks/nl-xyk1T2mA.js} +7 -0
  99. package/dist/cdn/chunks/{nl-BqSquFS3.js.map → nl-xyk1T2mA.js.map} +1 -1
  100. package/dist/{pt-BR-CMljK37h.js → cdn/chunks/pt-BR-yr6uOJgn.js} +7 -0
  101. package/dist/cdn/chunks/{pt-BR-CMljK37h.js.map → pt-BR-yr6uOJgn.js.map} +1 -1
  102. package/dist/cdn/chunks/{src-B4UhYbI8.js → src-B8W42vT-.js} +152 -152
  103. package/dist/cdn/chunks/{src-B4UhYbI8.js.map → src-B8W42vT-.js.map} +1 -1
  104. package/dist/cdn/chunks/{src-B3HKHglu.js → src-C417zeUg.js} +20 -20
  105. package/dist/cdn/chunks/{src-B3HKHglu.js.map → src-C417zeUg.js.map} +1 -1
  106. package/dist/cdn/chunks/{src-D5mfLR4V.js → src-CZjSXPYq.js} +8 -3
  107. package/dist/cdn/chunks/src-CZjSXPYq.js.map +1 -0
  108. package/dist/cdn/chunks/{src-CumZZNXZ.js → src-Dpj0x27M.js} +2 -2
  109. package/dist/cdn/chunks/{src-CumZZNXZ.js.map → src-Dpj0x27M.js.map} +1 -1
  110. package/dist/cdn/chunks/{styles--m9OCb_Z.js → styles-DANwMzW2.js} +743 -724
  111. package/dist/cdn/chunks/styles-DANwMzW2.js.map +1 -0
  112. package/dist/cdn/chunks/{useCloudI18n-sx1pqEbY.js → useCloudI18n-CjVzv11v.js} +2 -2
  113. package/dist/cdn/chunks/{useCloudI18n-sx1pqEbY.js.map → useCloudI18n-CjVzv11v.js.map} +1 -1
  114. package/dist/cdn/chunks/{useEditorCore-ZqF7P99K.js → useEditorCore-DfW-thCr.js} +472 -401
  115. package/dist/cdn/chunks/useEditorCore-DfW-thCr.js.map +1 -0
  116. package/dist/cdn/chunks/{useI18n-vD57BfVR.js → useI18n-DniEFeIl.js} +2 -2
  117. package/dist/cdn/chunks/{useI18n-vD57BfVR.js.map → useI18n-DniEFeIl.js.map} +1 -1
  118. package/dist/cdn/chunks/{useMergeTag-HatzNGgc.js → useMergeTag-Bk9_f5cc.js} +6 -6
  119. package/dist/cdn/chunks/{useMergeTag-HatzNGgc.js.map → useMergeTag-Bk9_f5cc.js.map} +1 -1
  120. package/dist/cdn/chunks/{usePopoverPosition-BdQ3Sv4B.js → usePopoverPosition-C4xFJCJ2.js} +2 -2
  121. package/dist/cdn/chunks/{usePopoverPosition-BdQ3Sv4B.js.map → usePopoverPosition-C4xFJCJ2.js.map} +1 -1
  122. package/dist/cdn/editor.css +1 -1
  123. package/dist/cdn/editor.js +21 -19
  124. package/dist/cdn/editor.js.map +1 -1
  125. package/dist/{cloud-R8ci6yR1.js → cloud-BZn3jqoL.js} +1 -1
  126. package/dist/{cdn/chunks/de-CUeaFJph.js → de-CieSMCUp.js} +5 -2
  127. package/dist/{dist-Ba5Q-UX1.js → dist-CQ0fVBQ3.js} +7 -2
  128. package/dist/{cdn/chunks/en-zCYIPAL5.js → en-D0t_2Fq_.js} +5 -2
  129. package/dist/{es-BSiH7YkP.js → es-DwDoNuLM.js} +5 -0
  130. package/dist/{extensions-CGxj6-2o.js → extensions-BjvyU9Ea.js} +3 -3
  131. package/dist/{cdn/chunks/fr-DTVJ3det.js → fr-CSEEzv1_.js} +5 -2
  132. package/dist/index.d.ts +26 -0
  133. package/dist/keys-BFPiNAIn.js +10 -0
  134. package/dist/{cdn/chunks/nl-BqSquFS3.js → nl-xyk1T2mA.js} +5 -2
  135. package/dist/{cdn/chunks/pt-BR-CMljK37h.js → pt-BR-yr6uOJgn.js} +5 -2
  136. package/dist/style.css +1 -1
  137. package/dist/{styles-C9AMvkJk.js → styles-C9GM-bBC.js} +885 -866
  138. package/dist/templatical-editor.js +93 -91
  139. package/dist/{useCloudI18n-BC_QV2Z7.js → useCloudI18n-B2lItQ6O.js} +1 -1
  140. package/dist/{useEditorCore-Dojb-P2f.js → useEditorCore-Ck_hBiGA.js} +908 -837
  141. package/dist/{useI18n-DzOcl2wl.js → useI18n-C1KcdX_K.js} +1 -1
  142. package/dist/{useMergeTag-BFxXCv3p.js → useMergeTag-DHCwRMfH.js} +3 -3
  143. package/dist/{usePopoverPosition-Dtr1Mp1x.js → usePopoverPosition-ClnEh_Cp.js} +1 -1
  144. package/package.json +7 -7
  145. package/dist/cdn/chunks/BlockPreviewCanvas-C-ut8GkJ.js.map +0 -1
  146. package/dist/cdn/chunks/CloudEditor-D87qsqbZ.js.map +0 -1
  147. package/dist/cdn/chunks/TestEmailModal-Ce8-vzGh.js.map +0 -1
  148. package/dist/cdn/chunks/keys-CswSK7eb.js +0 -12
  149. package/dist/cdn/chunks/keys-CswSK7eb.js.map +0 -1
  150. package/dist/cdn/chunks/src-D5mfLR4V.js.map +0 -1
  151. package/dist/cdn/chunks/styles--m9OCb_Z.js.map +0 -1
  152. package/dist/cdn/chunks/useEditorCore-ZqF7P99K.js.map +0 -1
  153. package/dist/keys-uWpGv4Pq.js +0 -10
@@ -1,14 +1,14 @@
1
1
  import { A as e, Dt as t, E as n, Et as r, I as i, N as a, O as o, Ot as s, R as c, T as l, Y as u, _ as d, c as f, d as p, h as m, l as h, m as g, nt as _, r as v, s as y, u as b, x, z as S } from "./vue.runtime.esm-bundler-Xpz-L9Fn.js";
2
2
  import { a as C, c as w, s as T } from "./runtime-dom.esm-bundler-CBbDt7sw.js";
3
- import { H as E, P as D, c as O } from "./useEditorCore-Dojb-P2f.js";
4
- import { F as k, H as A, f as j, h as M } from "./keys-uWpGv4Pq.js";
5
- import { t as ee } from "./useI18n-DzOcl2wl.js";
3
+ import { H as E, P as D, c as O } from "./useEditorCore-Ck_hBiGA.js";
4
+ import { G as k, R as A, g as j, p as M } from "./keys-BFPiNAIn.js";
5
+ import { t as ee } from "./useI18n-C1KcdX_K.js";
6
6
  import { t as te } from "./chevron-down-CZ0m6G3s.js";
7
7
  import { t as N } from "./chevron-up-BH_tJLeb.js";
8
8
  import { t as P } from "./loader-circle-B6euendB.js";
9
9
  import { n as F } from "./emailFrameWidth-BmFCN2dp.js";
10
- import { t as I } from "./TplModal-BIiS24Of.js";
11
- import { t as L } from "./BlockPreviewCanvas-Cf-kxbEr.js";
10
+ import { t as I } from "./TplModal-fmYNYdyp.js";
11
+ import { t as L } from "./BlockPreviewCanvas-DAnwZofk.js";
12
12
  //#region src/components/SavedBlockPreviewRow.vue?vue&type=script&setup=true&lang.ts
13
13
  var R = ["data-block-id"], z = ["aria-label", "title"], B = { class: "tpl:relative tpl:min-w-0 tpl:flex-1" }, V = {
14
14
  key: 0,
@@ -25,7 +25,7 @@ var R = ["data-block-id"], z = ["aria-label", "title"], B = { class: "tpl:relati
25
25
  },
26
26
  emits: ["move"],
27
27
  setup(e, { emit: r }) {
28
- let i = e, c = r, { t: d, format: v } = ee(), S = x(j, []), C = x(M, null), O = y(() => F(C?.content.value.settings)), k = u(null), A = u(null), P = u(1), I = u(null), W = u(!1), G = null, K = y(() => I.value !== null && I.value > U), q = y(() => I.value === null ? null : W.value || !K.value ? I.value : U);
28
+ let i = e, c = r, { t: d, format: v } = ee(), S = x(M, []), C = x(j, null), O = y(() => F(C?.content.value.settings)), k = u(null), A = u(null), P = u(1), I = u(null), W = u(!1), G = null, K = y(() => I.value !== null && I.value > U), q = y(() => I.value === null ? null : W.value || !K.value ? I.value : U);
29
29
  function J() {
30
30
  let e = k.value, t = A.value;
31
31
  if (!e || !t) return;
@@ -121,7 +121,7 @@ var R = ["data-block-id"], z = ["aria-label", "title"], B = { class: "tpl:relati
121
121
  },
122
122
  emits: ["close", "saved"],
123
123
  setup(t, { emit: n }) {
124
- let a = t, l = n, { t: d, format: w } = ee(), T = A(M, "SaveBlockDialog"), D = A(k, "SaveBlockDialog"), te = x(j, []), N = u(""), F = u(""), L = u(!1), R = u(null), z = u(""), B = u([]), V = y(() => {
124
+ let a = t, l = n, { t: d, format: w } = ee(), T = k(j, "SaveBlockDialog"), D = k(A, "SaveBlockDialog"), te = x(M, []), N = u(""), F = u(""), L = u(!1), R = u(null), z = u(""), B = u([]), V = y(() => {
125
125
  let e = new Map(T.content.value.blocks.map((e) => [e.id, e]));
126
126
  return B.value.map((t) => e.get(t)).filter((e) => e !== void 0);
127
127
  }), H = y({
@@ -1,13 +1,13 @@
1
1
  import { A as e, Dt as t, Et as n, I as r, N as i, O as a, Ot as o, R as ee, Y as s, _ as c, c as l, d as u, g as te, h as d, l as f, nt as p, r as m, s as h, u as g, w as ne, z as _ } from "./vue.runtime.esm-bundler-Xpz-L9Fn.js";
2
2
  import { a as v, c as y, i as b, s as x } from "./runtime-dom.esm-bundler-CBbDt7sw.js";
3
- import "./useEditorCore-Dojb-P2f.js";
4
- import { F as re, H as S, h as ie } from "./keys-uWpGv4Pq.js";
5
- import { t as ae } from "./useI18n-DzOcl2wl.js";
6
- import { n as oe, r as C, t as w } from "./blockTypeIcons-C6PnLMp7.js";
3
+ import "./useEditorCore-Ck_hBiGA.js";
4
+ import { G as S, R as re, g as ie } from "./keys-BFPiNAIn.js";
5
+ import { t as ae } from "./useI18n-C1KcdX_K.js";
6
+ import { n as oe, r as C, t as w } from "./blockTypeIcons-C6b9rg88.js";
7
7
  import { t as se } from "./pencil-CkKkSd6N.js";
8
8
  import { t as ce } from "./trash-2-DDyvqj0E.js";
9
9
  import { t as le } from "./x-C4lETLDx.js";
10
- import { t as ue } from "./TplModal-BIiS24Of.js";
10
+ import { t as ue } from "./TplModal-fmYNYdyp.js";
11
11
  import { t as de } from "./formatRelativeTime-CtUU-QZ8.js";
12
12
  //#region src/components/SavedBlocksBrowserModal.vue?vue&type=script&setup=true&lang.ts
13
13
  var fe = {
@@ -65,7 +65,7 @@ var fe = {
65
65
  props: { visible: { type: Boolean } },
66
66
  emits: ["close", "insert"],
67
67
  setup(c, { emit: A }) {
68
- let et = c, j = A, tt = te(() => import("./BlockPreviewCanvas-Cf-kxbEr.js").then((e) => e.n)), { t: M, format: N } = ae(), P = S(re, "SavedBlocksBrowserModal"), F = S(ie, "SavedBlocksBrowserModal"), I = s(""), L = s(""), R = s(null), z = s(null), B = s(null), V = s(""), H = s(""), U = s(null), W = s("end"), G = h(() => {
68
+ let et = c, j = A, tt = te(() => import("./BlockPreviewCanvas-DAnwZofk.js").then((e) => e.n)), { t: M, format: N } = ae(), P = S(re, "SavedBlocksBrowserModal"), F = S(ie, "SavedBlocksBrowserModal"), I = s(""), L = s(""), R = s(null), z = s(null), B = s(null), V = s(""), H = s(""), U = s(null), W = s("end"), G = h(() => {
69
69
  let e = I.value.trim().toLowerCase(), t = L.value;
70
70
  return P.savedBlocks.value.filter((n) => !(e && !n.name.toLowerCase().includes(e) || t && n.category !== t));
71
71
  }), K = h(() => P.isLoading.value && P.savedBlocks.value.length === 0), nt = h(() => I.value.trim().length > 0 || L.value !== ""), q = h(() => R.value ? P.savedBlocks.value.find((e) => e.id === R.value) ?? null : null), rt = h(() => {
@@ -5,7 +5,7 @@ var c = /* @__PURE__ */ t({
5
5
  __name: "SavedBlocksPanels",
6
6
  props: { feature: {} },
7
7
  setup(t) {
8
- let c = t, l = r(() => import("./SavedBlocksPickBar-BvXKhblL.js")), u = r(() => import("./SaveBlockDialog-CNTSaMEa.js")), d = r(() => import("./SavedBlocksBrowserModal-CvxS5-YX.js"));
8
+ let c = t, l = r(() => import("./SavedBlocksPickBar-CQbbXmzj.js")), u = r(() => import("./SaveBlockDialog-B3ngEldp.js")), d = r(() => import("./SavedBlocksBrowserModal-DawN3XaB.js"));
9
9
  function f(e, t) {
10
10
  c.feature.insert(e, t);
11
11
  }
@@ -1,6 +1,6 @@
1
1
  import { O as e, Ot as t, _ as n, c as r, d as i, h as a, m as o, nt as s } from "./vue.runtime.esm-bundler-Xpz-L9Fn.js";
2
- import { R as c } from "./useEditorCore-Dojb-P2f.js";
3
- import { t as l } from "./useI18n-DzOcl2wl.js";
2
+ import { R as c } from "./useEditorCore-Ck_hBiGA.js";
3
+ import { t as l } from "./useI18n-C1KcdX_K.js";
4
4
  import { t as u } from "./x-C4lETLDx.js";
5
5
  //#region src/components/SavedBlocksPickBar.vue?vue&type=script&setup=true&lang.ts
6
6
  var d = {
@@ -1,13 +1,13 @@
1
1
  import { A as e, Et as t, I as n, O as r, Ot as i, R as a, Y as o, _ as s, c, d as l, h as u, nt as d, r as f, s as p, u as m } from "./vue.runtime.esm-bundler-Xpz-L9Fn.js";
2
2
  import { c as h, t as g } from "./runtime-dom.esm-bundler-CBbDt7sw.js";
3
- import "./useEditorCore-Dojb-P2f.js";
4
- import { s as _ } from "./usePopoverPosition-Dtr1Mp1x.js";
5
- import { t as v } from "./useI18n-DzOcl2wl.js";
3
+ import "./useEditorCore-Ck_hBiGA.js";
4
+ import { s as _ } from "./usePopoverPosition-ClnEh_Cp.js";
5
+ import { t as v } from "./useI18n-C1KcdX_K.js";
6
6
  import { t as y } from "./createLucideIcon-AEltGIse.js";
7
7
  import { t as b } from "./chevron-down-CZ0m6G3s.js";
8
8
  import { t as x } from "./clock-BDIJZUET.js";
9
9
  import { t as S } from "./loader-circle-B6euendB.js";
10
- import { n as C } from "./useCloudI18n-BC_QV2Z7.js";
10
+ import { n as C } from "./useCloudI18n-B2lItQ6O.js";
11
11
  import { t as w } from "./formatRelativeTime-CtUU-QZ8.js";
12
12
  var T = y("chevron-left", [["path", {
13
13
  d: "m15 18-6-6 6-6",
@@ -1,6 +1,6 @@
1
1
  import { A as e, Dt as t, Et as n, I as r, N as i, O as a, Ot as o, R as ee, Y as s, _ as c, c as l, d as u, h as d, l as f, m as p, nt as m, r as h, u as g, x as te } from "./vue.runtime.esm-bundler-Xpz-L9Fn.js";
2
2
  import { t as ne } from "./runtime-dom.esm-bundler-CBbDt7sw.js";
3
- import { H as _, I as re, T as ie, h as v } from "./keys-uWpGv4Pq.js";
3
+ import { E as re, G as _, g as ie, z as v } from "./keys-BFPiNAIn.js";
4
4
  import { t as y } from "./createLucideIcon-AEltGIse.js";
5
5
  import { t as b } from "./chevron-down-CZ0m6G3s.js";
6
6
  import { t as x } from "./circle-alert-DkEXnGPV.js";
@@ -13,7 +13,7 @@ import { t as oe } from "./triangle-alert-B3PydLzl.js";
13
13
  import { t as se } from "./x-C4lETLDx.js";
14
14
  import { t as ce } from "./LoadingTrack-XK_eeUdq.js";
15
15
  import { t as D } from "./_plugin-vue_export-helper-B3ysoDQm.js";
16
- import { n as le } from "./useCloudI18n-BC_QV2Z7.js";
16
+ import { n as le } from "./useCloudI18n-B2lItQ6O.js";
17
17
  var O = y("shield-x", [
18
18
  ["path", {
19
19
  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",
@@ -91,7 +91,7 @@ var P = {
91
91
  props: { visible: { type: Boolean } },
92
92
  emits: ["close"],
93
93
  setup(c, { emit: y }) {
94
- let D = c, G = y, { t: K } = le(), q = _(v, "TemplateScoringPanel"), J = _(re, "TemplateScoringPanel"), Y = te(ie, []), X = s({
94
+ let D = c, G = y, { t: K } = le(), q = _(ie, "TemplateScoringPanel"), J = _(v, "TemplateScoringPanel"), Y = te(re, []), X = s({
95
95
  spam: !0,
96
96
  readability: !0,
97
97
  accessibility: !0,
@@ -1,28 +1,29 @@
1
- import { A as e, Et as t, I as n, O as r, Ot as i, R as a, Y as o, _ as s, c, d as l, h as u, l as ee, m as d, nt as f, r as te, s as p, u as m, x as h, z as g } from "./vue.runtime.esm-bundler-Xpz-L9Fn.js";
2
- import { a as ne, i as re } from "./runtime-dom.esm-bundler-CBbDt7sw.js";
3
- import { j as ie } from "./dist-Ba5Q-UX1.js";
4
- import { O as ae, T as oe, h as se } from "./keys-uWpGv4Pq.js";
5
- import { t as ce } from "./useI18n-DzOcl2wl.js";
1
+ import { A as e, Et as t, I as n, O as r, Ot as i, R as a, Y as o, _ as s, c, d as l, h as u, l as d, m as f, nt as p, r as m, s as h, u as g, x as _, z as v } from "./vue.runtime.esm-bundler-Xpz-L9Fn.js";
2
+ import { a as ee, i as te } from "./runtime-dom.esm-bundler-CBbDt7sw.js";
3
+ import { j as ne } from "./dist-CQ0fVBQ3.js";
4
+ import { W as re } from "./useEditorCore-Ck_hBiGA.js";
5
+ import { E as ie, L as ae, g as oe, k as se } from "./keys-BFPiNAIn.js";
6
+ import { t as ce } from "./useI18n-C1KcdX_K.js";
6
7
  import { t as le } from "./check-CIhIDh4h.js";
7
8
  import { t as ue } from "./loader-circle-B6euendB.js";
8
- import { n as de, t as fe } from "./MergeTagModeToggle-CiFiSV0C.js";
9
- import { t as pe } from "./TplModal-BIiS24Of.js";
10
- import { t as me } from "./BlockPreviewCanvas-Cf-kxbEr.js";
9
+ import { n as de, t as fe } from "./MergeTagModeToggle-BK0fI3P2.js";
10
+ import { t as pe } from "./TplModal-fmYNYdyp.js";
11
+ import { t as me } from "./BlockPreviewCanvas-DAnwZofk.js";
11
12
  //#region src/utils/validateEmailShape.ts
12
- var _ = /[,;<>()[\]\\"'`|/?#@!$%^&*+=~{}]/;
13
- function v(e) {
13
+ var y = /[,;<>()[\]\\"'`|/?#@!$%^&*+=~{}]/;
14
+ function he(e) {
14
15
  let t = e.trim();
15
16
  if (t.length === 0 || /\s/.test(t)) return !1;
16
17
  let n = t.split("@");
17
18
  if (n.length !== 2) return !1;
18
19
  let [r, i] = n;
19
- if (r.length === 0 || _.test(i)) return !1;
20
+ if (r.length === 0 || y.test(i)) return !1;
20
21
  let a = i.indexOf(".");
21
22
  return a > 0 && a < i.length - 1;
22
23
  }
23
24
  //#endregion
24
25
  //#region src/components/TestEmailModal.vue?vue&type=script&setup=true&lang.ts
25
- var y = ["aria-busy"], b = {
26
+ var ge = ["aria-busy"], b = {
26
27
  id: "tpl-test-email-title",
27
28
  class: "tpl:mb-4 tpl:shrink-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
28
29
  }, x = { class: "tpl:mb-3 tpl:shrink-0" }, S = {
@@ -39,19 +40,30 @@ var y = ["aria-busy"], b = {
39
40
  "data-testid": "test-email-preview",
40
41
  class: "tpl:mb-3 tpl:min-h-0 tpl:flex-1 tpl:overflow-y-auto tpl:rounded-[var(--tpl-radius-sm)] tpl:p-3 tpl:bg-[var(--tpl-canvas-bg)]"
41
42
  }, P = {
43
+ key: 0,
44
+ role: "status",
45
+ "aria-busy": "true",
46
+ "data-testid": "preview-resolution-loading",
47
+ class: "tpl:flex tpl:flex-col tpl:gap-3"
48
+ }, F = { class: "tpl:sr-only" }, I = {
49
+ key: 1,
50
+ role: "status",
51
+ "data-testid": "preview-resolution-failed",
52
+ class: "tpl:mb-2 tpl:rounded-md tpl:px-3 tpl:py-2 tpl:text-xs tpl:text-[var(--tpl-text-muted)] tpl:bg-[var(--tpl-bg-hover)]"
53
+ }, L = {
42
54
  key: 0,
43
55
  role: "status",
44
56
  "data-testid": "test-email-success",
45
57
  class: "tpl:mb-3 tpl:flex tpl:shrink-0 tpl:items-center tpl:gap-1.5 tpl:text-xs tpl:text-[var(--tpl-success,var(--tpl-primary))]"
46
- }, F = {
58
+ }, _e = {
47
59
  key: 1,
48
60
  role: "alert",
49
61
  "data-testid": "test-email-error",
50
62
  class: "tpl:mb-3 tpl:shrink-0 tpl:text-xs tpl:text-[var(--tpl-danger)]"
51
- }, I = { class: "tpl:flex tpl:shrink-0 tpl:justify-end tpl:gap-2" }, L = ["disabled"], he = ["disabled"], R = {
63
+ }, ve = { class: "tpl:flex tpl:shrink-0 tpl:justify-end tpl:gap-2" }, ye = ["disabled"], be = ["disabled"], xe = {
52
64
  key: 0,
53
65
  class: "tpl:flex tpl:items-center tpl:gap-1.5"
54
- }, ge = { key: 1 }, z = /* @__PURE__ */ s({
66
+ }, Se = { key: 1 }, R = /* @__PURE__ */ s({
55
67
  __name: "TestEmailModal",
56
68
  props: {
57
69
  visible: { type: Boolean },
@@ -62,30 +74,38 @@ var y = ["aria-busy"], b = {
62
74
  error: {}
63
75
  },
64
76
  emits: ["send", "close"],
65
- setup(s, { emit: _ }) {
66
- let z = s, B = _, { t: V } = ce(), _e = h(se, null), H = o(""), U = o("desktop"), W = h(ae, null), G = o(ie(h(oe, []))), K = p({
67
- get: () => W?.value ?? G.value,
77
+ setup(s, { emit: y }) {
78
+ let R = s, z = y, { t: B } = ce(), Ce = _(oe, null), V = o(""), H = o("desktop"), we = _(ae, void 0), U = re({
79
+ resolvePreview: we ?? void 0,
80
+ getContent: () => Ce?.content.value ?? {
81
+ blocks: [],
82
+ settings: {}
83
+ },
84
+ isActive: () => R.visible,
85
+ getRecipient: () => V.value || void 0
86
+ }), W = _(se, null), G = o(ne(_(ie, []))), K = h({
87
+ get: () => U.isConfigured ? !1 : W?.value ?? G.value,
68
88
  set: (e) => {
69
89
  W ? W.value = e : G.value = e;
70
90
  }
71
- }), ve = p(() => _e?.content.value.blocks ?? []), q = p(() => z.allowedRecipients !== void 0 && z.allowedRecipients.length > 0), ye = p(() => z.allowedRecipients?.length === 1);
72
- n(() => z.visible, (e) => {
73
- e && (H.value = z.defaultRecipient ?? z.allowedRecipients?.[0] ?? "");
91
+ }), Te = h(() => U.content.value.blocks ?? []), q = h(() => R.allowedRecipients !== void 0 && R.allowedRecipients.length > 0), Ee = h(() => R.allowedRecipients?.length === 1);
92
+ n(() => R.visible, (e) => {
93
+ e && (V.value = R.defaultRecipient ?? R.allowedRecipients?.[0] ?? "");
74
94
  }, { immediate: !0 });
75
- let J = p(() => q.value ? H.value.length > 0 : v(H.value)), Y = p(() => J.value && !z.isSending && !z.justSent), X = p(() => !q.value && H.value.trim().length > 0 && !J.value), Z = p(() => z.error ? z.error.kind === "provider" ? z.error.message : V.testEmail.recipientNotAllowed : null);
95
+ let J = h(() => q.value ? V.value.length > 0 : he(V.value)), Y = h(() => J.value && !R.isSending && !R.justSent), X = h(() => !q.value && V.value.trim().length > 0 && !J.value), Z = h(() => R.error ? R.error.kind === "provider" ? R.error.message : B.testEmail.recipientNotAllowed : null);
76
96
  function Q() {
77
- Y.value && B("send", H.value.trim());
97
+ Y.value && z("send", V.value.trim());
78
98
  }
79
99
  function $() {
80
- z.isSending || B("close");
100
+ R.isSending || z("close");
81
101
  }
82
- function be(e) {
102
+ function De(e) {
83
103
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), Q()), e.key === "Escape" && $();
84
104
  }
85
- return (n, o) => (r(), ee(pe, {
105
+ return (n, o) => (r(), d(pe, {
86
106
  visible: s.visible,
87
107
  onClose: $,
88
- onKeydown: be
108
+ onKeydown: De
89
109
  }, {
90
110
  default: a(() => [c("div", {
91
111
  role: "dialog",
@@ -98,77 +118,88 @@ var y = ["aria-busy"], b = {
98
118
  "box-shadow": "var(--tpl-shadow-xl)"
99
119
  }
100
120
  }, [
101
- c("h3", b, i(f(V).testEmail.title), 1),
121
+ c("h3", b, i(p(B).testEmail.title), 1),
102
122
  c("div", x, [
103
- c("label", S, i(f(V).testEmail.recipientLabel), 1),
104
- ye.value ? (r(), l("input", {
123
+ c("label", S, i(p(B).testEmail.recipientLabel), 1),
124
+ Ee.value ? (r(), l("input", {
105
125
  key: 0,
106
126
  id: "tpl-test-email-recipient",
107
127
  type: "text",
108
- value: H.value,
128
+ value: V.value,
109
129
  disabled: "",
110
130
  "data-testid": "test-email-recipient",
111
131
  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)]"
112
- }, null, 8, C)) : q.value ? g((r(), l("select", {
132
+ }, null, 8, C)) : q.value ? v((r(), l("select", {
113
133
  key: 1,
114
134
  id: "tpl-test-email-recipient",
115
- "onUpdate:modelValue": o[0] ||= (e) => H.value = e,
135
+ "onUpdate:modelValue": o[0] ||= (e) => V.value = e,
116
136
  disabled: s.isSending || s.justSent,
117
137
  "data-testid": "test-email-recipient",
118
138
  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)]"
119
- }, [(r(!0), l(te, null, e(s.allowedRecipients, (e) => (r(), l("option", {
139
+ }, [(r(!0), l(m, null, e(s.allowedRecipients, (e) => (r(), l("option", {
120
140
  key: e,
121
141
  value: e
122
- }, i(e), 9, T))), 128))], 8, w)), [[re, H.value]]) : g((r(), l("input", {
142
+ }, i(e), 9, T))), 128))], 8, w)), [[te, V.value]]) : v((r(), l("input", {
123
143
  key: 2,
124
144
  id: "tpl-test-email-recipient",
125
- "onUpdate:modelValue": o[1] ||= (e) => H.value = e,
145
+ "onUpdate:modelValue": o[1] ||= (e) => V.value = e,
126
146
  type: "email",
127
147
  autocomplete: "email",
128
148
  spellcheck: "false",
129
- placeholder: f(V).testEmail.recipientPlaceholder,
149
+ placeholder: p(B).testEmail.recipientPlaceholder,
130
150
  disabled: s.isSending || s.justSent,
131
151
  "data-testid": "test-email-recipient",
132
152
  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)]"
133
- }, null, 8, E)), [[ne, H.value]]),
134
- X.value ? (r(), l("p", D, i(f(V).testEmail.invalidAddress), 1)) : m("", !0)
153
+ }, null, 8, E)), [[ee, V.value]]),
154
+ X.value ? (r(), l("p", D, i(p(B).testEmail.invalidAddress), 1)) : g("", !0)
135
155
  ]),
136
- c("div", O, [c("div", k, [c("span", A, i(f(V).testEmail.preview), 1), c("div", j, [u(fe, {
156
+ c("div", O, [c("div", k, [c("span", A, i(p(B).testEmail.preview), 1), c("div", j, [p(U).supersedesSamples.value ? g("", !0) : (r(), d(fe, {
157
+ key: 0,
137
158
  "sample-mode": K.value,
138
159
  onChange: o[2] ||= (e) => K.value = e
139
- }, null, 8, ["sample-mode"]), u(de, {
140
- viewport: U.value,
141
- onChange: o[3] ||= (e) => U.value = e
142
- }, null, 8, ["viewport"])])]), c("p", M, i(K.value ? f(V).testEmail.previewHintSample : f(V).testEmail.previewHint), 1)]),
143
- c("div", N, [u(me, {
144
- blocks: ve.value,
145
- viewport: U.value
146
- }, null, 8, ["blocks", "viewport"])]),
147
- s.justSent ? (r(), l("p", P, [u(f(le), {
160
+ }, null, 8, ["sample-mode"])), u(de, {
161
+ viewport: H.value,
162
+ onChange: o[3] ||= (e) => H.value = e
163
+ }, null, 8, ["viewport"])])]), c("p", M, i(p(U).supersedesSamples.value ? p(B).previewResolution.hint : K.value ? p(B).testEmail.previewHintSample : p(B).testEmail.previewHint), 1)]),
164
+ c("div", N, [p(U).isInitialResolve.value ? (r(), l("div", P, [c("span", F, i(p(B).previewResolution.resolving), 1), (r(), l(m, null, e(3, (e) => c("div", {
165
+ key: e,
166
+ "aria-hidden": "true",
167
+ class: "tpl-pulse tpl:h-16 tpl:rounded-md tpl:bg-[var(--tpl-bg-hover)]"
168
+ })), 64))])) : p(U).hasFailed.value ? (r(), l("p", I, i(p(B).previewResolution.failed), 1)) : g("", !0), p(U).isInitialResolve.value ? g("", !0) : (r(), d(me, {
169
+ key: 2,
170
+ blocks: Te.value,
171
+ viewport: H.value,
172
+ "apply-condition-filter": !p(U).isConfigured
173
+ }, null, 8, [
174
+ "blocks",
175
+ "viewport",
176
+ "apply-condition-filter"
177
+ ]))]),
178
+ s.justSent ? (r(), l("p", L, [u(p(le), {
148
179
  size: 13,
149
180
  "stroke-width": 2.5
150
- }), d(" " + i(f(V).testEmail.success), 1)])) : Z.value ? (r(), l("p", F, i(Z.value), 1)) : m("", !0),
151
- c("div", I, [c("button", {
181
+ }), f(" " + i(p(B).testEmail.success), 1)])) : Z.value ? (r(), l("p", _e, i(Z.value), 1)) : g("", !0),
182
+ c("div", ve, [c("button", {
152
183
  type: "button",
153
184
  "data-testid": "test-email-cancel",
154
185
  class: t(["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": s.isSending }]),
155
186
  disabled: s.isSending,
156
187
  onClick: $
157
- }, i(f(V).testEmail.cancel), 11, L), c("button", {
188
+ }, i(p(B).testEmail.cancel), 11, ye), c("button", {
158
189
  type: "button",
159
190
  "data-testid": "test-email-send",
160
191
  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)]",
161
192
  disabled: !Y.value,
162
193
  onClick: Q
163
- }, [s.isSending ? (r(), l("span", R, [u(f(ue), {
194
+ }, [s.isSending ? (r(), l("span", xe, [u(p(ue), {
164
195
  class: "tpl:animate-spin",
165
196
  size: 12,
166
197
  "stroke-width": 2
167
- }), d(" " + i(f(V).testEmail.sending), 1)])) : (r(), l("span", ge, i(f(V).testEmail.send), 1))], 8, he)])
168
- ], 8, y)]),
198
+ }), f(" " + i(p(B).testEmail.sending), 1)])) : (r(), l("span", Se, i(p(B).testEmail.send), 1))], 8, be)])
199
+ ], 8, ge)]),
169
200
  _: 1
170
201
  }, 8, ["visible"]));
171
202
  }
172
203
  });
173
204
  //#endregion
174
- export { z as default };
205
+ export { R as default };
@@ -5,7 +5,7 @@ var o = /* @__PURE__ */ t({
5
5
  __name: "TestEmailPanel",
6
6
  props: { feature: {} },
7
7
  setup(t) {
8
- let o = t, s = n(() => import("./TestEmailModal-BDhnnCBx.js"));
8
+ let o = t, s = n(() => import("./TestEmailModal-CytkbZVQ.js"));
9
9
  function c(e) {
10
10
  o.feature.send(e);
11
11
  }
@@ -1,9 +1,9 @@
1
1
  import { Dt as e, Et as t, O as n, Ot as r, W as i, _ as a, c as o, d as s, h as c, i as l, l as u, m as d, nt as f, r as p, s as m, u as h, x as g } from "./vue.runtime.esm-bundler-Xpz-L9Fn.js";
2
- import { C as ee, S as te } from "./useEditorCore-Dojb-P2f.js";
3
- import { n as ne } from "./usePopoverPosition-Dtr1Mp1x.js";
4
- import { B as _, D as v, R as y, w as b } from "./keys-uWpGv4Pq.js";
5
- import { t as re } from "./useI18n-DzOcl2wl.js";
6
- import { a as ie, i as ae, n as oe, r as se, t as ce } from "./RichTextEditorContent-CYJko6id.js";
2
+ import { C as ee, S as te } from "./useEditorCore-Ck_hBiGA.js";
3
+ import { n as ne } from "./usePopoverPosition-ClnEh_Cp.js";
4
+ import { O as _, T as v, U as y, V as b } from "./keys-BFPiNAIn.js";
5
+ import { t as re } from "./useI18n-C1KcdX_K.js";
6
+ import { a as ie, i as ae, n as oe, r as se, t as ce } from "./RichTextEditorContent-DaaKdzjb.js";
7
7
  import { n as x, t as S } from "./scan-line-CRoEOUiK.js";
8
8
  import { t as C } from "./loader-circle-B6euendB.js";
9
9
  //#region src/components/blocks/TitleEditor.vue?vue&type=script&setup=true&lang.ts
@@ -24,7 +24,7 @@ var w = { class: "tpl-text-editor-wrapper tpl:relative" }, T = ["data-tpl-theme"
24
24
  },
25
25
  emits: ["done"],
26
26
  setup(a, { emit: P }) {
27
- let F = a, I = P, L = g(y, null), R = g(_, null), z = ne(), B = g(v, null), le = g(b, null), V = m(() => (B?.isOpen.value ?? !1) || (le?.isOpen.value ?? !1)), { t: H } = re(), { editor: U, EditorContent: W, isLoading: G, initError: ue, retry: de, showLinkDialog: fe, linkUrl: K, linkColor: q, linkDialogRef: J, canRequestMergeTag: Y, canInsertLogicTag: X, openLinkDialog: Z, insertLink: pe, removeLink: me, closeLinkDialog: he, handleLinkKeydown: ge, handleAddMergeTag: Q, handleAddLogicTag: $ } = te({
27
+ let F = a, I = P, L = g(b, null), R = g(y, null), z = ne(), B = g(_, null), le = g(v, null), V = m(() => (B?.isOpen.value ?? !1) || (le?.isOpen.value ?? !1)), { t: H } = re(), { editor: U, EditorContent: W, isLoading: G, initError: ue, retry: de, showLinkDialog: fe, linkUrl: K, linkColor: q, linkDialogRef: J, canRequestMergeTag: Y, canInsertLogicTag: X, openLinkDialog: Z, insertLink: pe, removeLink: me, closeLinkDialog: he, handleLinkKeydown: ge, handleAddMergeTag: Q, handleAddLogicTag: $ } = te({
28
28
  blockId: () => F.block.id,
29
29
  blockContent: () => F.block.content,
30
30
  onDone: () => I("done"),
@@ -34,7 +34,7 @@ var w = { class: "tpl-text-editor-wrapper tpl:relative" }, T = ["data-tpl-theme"
34
34
  import("./dist-CIqhVQ1O.js").then((e) => e.r),
35
35
  import("./dist-Dx71pluS.js"),
36
36
  import("./dist-DX4x6mQ1.js"),
37
- import("./extensions-CGxj6-2o.js")
37
+ import("./extensions-BjvyU9Ea.js")
38
38
  ]);
39
39
  return {
40
40
  TiptapEditor: a,
@@ -1,8 +1,8 @@
1
1
  import { Dt as e, O as t, R as n, Y as r, _ as i, c as a, d as o, h as s, i as c, j as l, l as u, nt as d, s as f, u as p, x as m } from "./vue.runtime.esm-bundler-Xpz-L9Fn.js";
2
2
  import { c as h, t as g } from "./runtime-dom.esm-bundler-CBbDt7sw.js";
3
- import { O as _ } from "./useEditorCore-Dojb-P2f.js";
4
- import { n as v } from "./usePopoverPosition-Dtr1Mp1x.js";
5
- import { B as y, R as b } from "./keys-uWpGv4Pq.js";
3
+ import { O as _ } from "./useEditorCore-Ck_hBiGA.js";
4
+ import { n as v } from "./usePopoverPosition-ClnEh_Cp.js";
5
+ import { U as y, V as b } from "./keys-BFPiNAIn.js";
6
6
  //#region src/components/TplModal.vue?vue&type=script&setup=true&lang.ts
7
7
  var x = ["data-tpl-theme"], S = /* @__PURE__ */ i({
8
8
  __name: "TplModal",
@@ -1,4 +1,4 @@
1
- import { A as e, L as t, M as n, N as r, j as i } from "./useEditorCore-Dojb-P2f.js";
1
+ import { A as e, L as t, M as n, N as r, j as i } from "./useEditorCore-Ck_hBiGA.js";
2
2
  import { t as a } from "./createLucideIcon-AEltGIse.js";
3
3
  var o = a("columns-3", [
4
4
  ["rect", {
@@ -1,10 +1,10 @@
1
1
  {
2
- "version": "0.24.1",
3
- "initialGzipBytes": 290262,
4
- "initialRawBytes": 1043317,
2
+ "version": "0.25.0",
3
+ "initialGzipBytes": 291288,
4
+ "initialRawBytes": 1046807,
5
5
  "initialFileCount": 41,
6
- "lazyGzipBytes": 207790,
7
- "lazyRawBytes": 677493,
6
+ "lazyGzipBytes": 208764,
7
+ "lazyRawBytes": 680768,
8
8
  "lazyFileCount": 54,
9
- "generatedAt": "2026-08-05T12:04:39.036Z"
9
+ "generatedAt": "2026-08-05T21:33:15.982Z"
10
10
  }
@@ -570,6 +570,11 @@ var e = {
570
570
  daysAgo: "fa {days} d"
571
571
  }
572
572
  },
573
+ previewResolution: {
574
+ resolving: "S’està resolent la vista prèvia…",
575
+ failed: "No s’ha pogut resoldre la vista prèvia; es mostra la plantilla sense resoldre.",
576
+ hint: "La vista prèvia utilitza dades resoltes pel teu backend."
577
+ },
573
578
  mergeTagPreview: {
574
579
  label: "Vista d’etiquetes de combinació",
575
580
  sample: "Exemple",
@@ -627,5 +632,3 @@ var e = {
627
632
  };
628
633
  //#endregion
629
634
  export { e as default };
630
-
631
- //# sourceMappingURL=ca-CO4nq6TX.js.map
@@ -1,11 +1,11 @@
1
1
  import { H as e, M as t, O as n, P as r, T as i, V as ee, Z as a, ct as o, g as s, h as c, it as l, m as u, n as d, o as te, ot as ne, p as f, u as p, v as m, x as h, y as g, z as _ } from "./draggable-JcMTNF3U.js";
2
2
  import { _ as re, g as ie } from "./dist-lZgXNk4G.js";
3
- import { H as v, T as ae, c as oe, h as se, r as ce } from "./keys-CswSK7eb.js";
3
+ import { E as ae, G as v, g as oe, i as se, l as ce } from "./keys-BxPCfHBH.js";
4
4
  import { B as le, M as y, T as b, c as ue, d as de, it as fe, jt as pe, n as me } from "./icons-Cp4ZIJw-.js";
5
5
  import { t as x } from "./LoadingTrack-G2tuXqCJ.js";
6
6
  import { t as S } from "./_plugin-vue_export-helper-B3ysoDQm.js";
7
7
  import { t as C } from "./useAliveFlag-CseYNikC.js";
8
- import { _ as w } from "./cloud-CRlDc0Ev.js";
8
+ import { _ as w } from "./cloud-DOaGUdR0.js";
9
9
  //#region src/cloud/components/AiChatSidebar.vue?vue&type=script&setup=true&lang.ts
10
10
  var T = {
11
11
  key: 0,
@@ -62,7 +62,7 @@ var T = {
62
62
  },
63
63
  emits: ["close"],
64
64
  setup(h, { emit: S }) {
65
- let B = h, Ce = S, V = v(oe, "AiChatSidebar"), H = v(se, "AiChatSidebar"), we = v(ce, "AiChatSidebar"), U = i(ae, []), W = C(), G = w({
65
+ let B = h, Ce = S, V = v(ce, "AiChatSidebar"), H = v(oe, "AiChatSidebar"), we = v(se, "AiChatSidebar"), U = i(ae, []), W = C(), G = w({
66
66
  authManager: we,
67
67
  getTemplateId: () => H.state.template?.id ?? null,
68
68
  onApply: B.onApply,
@@ -200,4 +200,4 @@ var T = {
200
200
  //#endregion
201
201
  export { B as default };
202
202
 
203
- //# sourceMappingURL=AiChatSidebar-UbF3ePzR.js.map
203
+ //# sourceMappingURL=AiChatSidebar-bkBKpNgE.js.map