@templatical/editor 0.22.0 → 0.24.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 (201) hide show
  1. package/dist/{AiChatSidebar-K_AehWc-.js → AiChatSidebar-Nq-jrGaf.js} +2 -2
  2. package/dist/{AiFeatureMenu-CcqjRMFW.js → AiFeatureMenu-tg_zMKMK.js} +3 -3
  3. package/dist/{BlockIssueBadge-Dmj9rVra.js → BlockIssueBadge-Bd94kIiw.js} +2 -2
  4. package/dist/BlockPreviewCanvas-B34aMhHe.js +117 -0
  5. package/dist/{CloudEditor-BVH7D1Ka.js → CloudEditor-DjN_9Yso.js} +285 -284
  6. package/dist/{CollaboratorBar-C_1SF7Xf.js → CollaboratorBar-Bhazzcg-.js} +2 -2
  7. package/dist/{ColorPicker-s9GHXjZs.js → ColorPicker-DXGrcJxJ.js} +5 -5
  8. package/dist/{CommentsSidebar-DvNEdugN.js → CommentsSidebar-ku1kt10u.js} +3 -3
  9. package/dist/{CountdownBlock-J_Q9JRQM.js → CountdownBlock-CN9Lc23W.js} +1 -1
  10. package/dist/{CountdownToolbar-DPRcv3Fu.js → CountdownToolbar-VEsIyKV6.js} +3 -3
  11. package/dist/{DesignReferenceSidebar-DNmK3dxp.js → DesignReferenceSidebar-C4pTMzQE.js} +3 -3
  12. package/dist/{IssuesPanel-CEnEGFtd.js → IssuesPanel-CEfzOpS_.js} +2 -2
  13. package/dist/MergeTagModeToggle-C3V2xGAg.js +180 -0
  14. package/dist/{MergeTagSuggestion-D9eCryMC.js → MergeTagSuggestion-Dn8ww9nV.js} +2 -2
  15. package/dist/{NumberWithSuffix-CCPN_oCh.js → NumberWithSuffix-BGocZkj9.js} +1 -1
  16. package/dist/{ParagraphEditor-MKJYyWN9.js → ParagraphEditor-D-fz0kUb.js} +19 -19
  17. package/dist/{RichTextEditorContent-FbnWsh46.js → RichTextEditorContent-DydrqFts.js} +5 -5
  18. package/dist/{SaveBlockDialog-B_5KBaXW.js → SaveBlockDialog-BDDFbAWF.js} +100 -99
  19. package/dist/{SavedBlocksBrowserModal-DoJBoYPk.js → SavedBlocksBrowserModal-Djik_fJh.js} +6 -6
  20. package/dist/{SavedBlocksPanels-3Af5dMaf.js → SavedBlocksPanels-CxemyPxL.js} +1 -1
  21. package/dist/{SavedBlocksPickBar-C1FTJP-I.js → SavedBlocksPickBar-Dlhipmob.js} +2 -2
  22. package/dist/{SnapshotHistory-DWlQ3Eh0.js → SnapshotHistory-DPbM4ons.js} +4 -4
  23. package/dist/{TemplateScoringPanel-ifGGGWs5.js → TemplateScoringPanel-BFYgweDX.js} +2 -2
  24. package/dist/TestEmailModal-IZfwgya-.js +174 -0
  25. package/dist/TestEmailPanel-QEEx_PkN.js +33 -0
  26. package/dist/{TitleEditor-DzsPxKv4.js → TitleEditor-BB4YlIBF.js} +10 -10
  27. package/dist/{TplModal-CykwWFhF.js → TplModal-DPH4vV8M.js} +3 -3
  28. package/dist/{blockTypeIcons-CpKkI47V.js → blockTypeIcons-Wzd7W_2x.js} +1 -1
  29. package/dist/bundle-stats.json +7 -7
  30. package/dist/{ca-BBgad6y5.js → ca-CO4nq6TX.js} +22 -1
  31. package/dist/cdn/chunks/{AiChatSidebar-A1CuWGY0.js → AiChatSidebar-CN-0DIuA.js} +11 -11
  32. package/dist/cdn/chunks/{AiChatSidebar-A1CuWGY0.js.map → AiChatSidebar-CN-0DIuA.js.map} +1 -1
  33. package/dist/cdn/chunks/{AiFeatureMenu-hWgWQg11.js → AiFeatureMenu-B5pV6Iux.js} +8 -8
  34. package/dist/cdn/chunks/{AiFeatureMenu-hWgWQg11.js.map → AiFeatureMenu-B5pV6Iux.js.map} +1 -1
  35. package/dist/cdn/chunks/{BlockIssueBadge-Da4yR-mh.js → BlockIssueBadge-aanOjeyi.js} +4 -4
  36. package/dist/cdn/chunks/{BlockIssueBadge-Da4yR-mh.js.map → BlockIssueBadge-aanOjeyi.js.map} +1 -1
  37. package/dist/cdn/chunks/BlockPreviewCanvas-Dc4F4HzY.js +119 -0
  38. package/dist/cdn/chunks/BlockPreviewCanvas-Dc4F4HzY.js.map +1 -0
  39. package/dist/cdn/chunks/{CloudEditor-FCS53UcZ.js → CloudEditor-CeKaWWO5.js} +264 -263
  40. package/dist/cdn/chunks/CloudEditor-CeKaWWO5.js.map +1 -0
  41. package/dist/cdn/chunks/{CollaboratorBar-mkJVAkSh.js → CollaboratorBar-CEdKr0A2.js} +4 -4
  42. package/dist/cdn/chunks/{CollaboratorBar-mkJVAkSh.js.map → CollaboratorBar-CEdKr0A2.js.map} +1 -1
  43. package/dist/cdn/chunks/{ColorPicker-DZSzZ5ZP.js → ColorPicker-BckwEfcN.js} +7 -7
  44. package/dist/cdn/chunks/{ColorPicker-DZSzZ5ZP.js.map → ColorPicker-BckwEfcN.js.map} +1 -1
  45. package/dist/cdn/chunks/{CommentsSidebar-DHdRiGPX.js → CommentsSidebar-6PfpJKh-.js} +18 -18
  46. package/dist/cdn/chunks/{CommentsSidebar-DHdRiGPX.js.map → CommentsSidebar-6PfpJKh-.js.map} +1 -1
  47. package/dist/cdn/chunks/{CountdownBlock-Bffpoppw.js → CountdownBlock-CoBmvQKv.js} +2 -2
  48. package/dist/cdn/chunks/{CountdownBlock-Bffpoppw.js.map → CountdownBlock-CoBmvQKv.js.map} +1 -1
  49. package/dist/cdn/chunks/{CountdownToolbar-DAnmIZjq.js → CountdownToolbar-CdV8RTQu.js} +4 -4
  50. package/dist/cdn/chunks/{CountdownToolbar-DAnmIZjq.js.map → CountdownToolbar-CdV8RTQu.js.map} +1 -1
  51. package/dist/cdn/chunks/{DesignReferenceSidebar-Dre99DTH.js → DesignReferenceSidebar-BjlaP69l.js} +90 -90
  52. package/dist/cdn/chunks/{DesignReferenceSidebar-Dre99DTH.js.map → DesignReferenceSidebar-BjlaP69l.js.map} +1 -1
  53. package/dist/cdn/chunks/{IssuesPanel-D80JedOj.js → IssuesPanel-CkkEnhxZ.js} +9 -9
  54. package/dist/cdn/chunks/{IssuesPanel-D80JedOj.js.map → IssuesPanel-CkkEnhxZ.js.map} +1 -1
  55. package/dist/cdn/chunks/MergeTagModeToggle-DmtR300G.js +127 -0
  56. package/dist/cdn/chunks/MergeTagModeToggle-DmtR300G.js.map +1 -0
  57. package/dist/cdn/chunks/{MergeTagSuggestion-BM349_QH.js → MergeTagSuggestion-Cvlkw_PM.js} +2 -2
  58. package/dist/cdn/chunks/{MergeTagSuggestion-BM349_QH.js.map → MergeTagSuggestion-Cvlkw_PM.js.map} +1 -1
  59. package/dist/cdn/chunks/{NumberWithSuffix-CjlVNIEe.js → NumberWithSuffix-BOcMN26z.js} +2 -2
  60. package/dist/cdn/chunks/{NumberWithSuffix-CjlVNIEe.js.map → NumberWithSuffix-BOcMN26z.js.map} +1 -1
  61. package/dist/cdn/chunks/{ParagraphEditor-J-1RLyi7.js → ParagraphEditor-CX1yks4N.js} +35 -35
  62. package/dist/cdn/chunks/{ParagraphEditor-J-1RLyi7.js.map → ParagraphEditor-CX1yks4N.js.map} +1 -1
  63. package/dist/cdn/chunks/{RichTextEditorContent-BbdgJqWM.js → RichTextEditorContent-z9s7qxs3.js} +7 -7
  64. package/dist/cdn/chunks/{RichTextEditorContent-BbdgJqWM.js.map → RichTextEditorContent-z9s7qxs3.js.map} +1 -1
  65. package/dist/cdn/chunks/{SaveBlockDialog-CSeD3gn9.js → SaveBlockDialog-D2CtW4lC.js} +100 -99
  66. package/dist/cdn/chunks/SaveBlockDialog-D2CtW4lC.js.map +1 -0
  67. package/dist/cdn/chunks/{SavedBlocksBrowserModal-B2x5WRPN.js → SavedBlocksBrowserModal-DdUKJzzF.js} +8 -8
  68. package/dist/cdn/chunks/SavedBlocksBrowserModal-DdUKJzzF.js.map +1 -0
  69. package/dist/cdn/chunks/{SavedBlocksPanels-BzMTZxf2.js → SavedBlocksPanels-1kVbqdpc.js} +2 -2
  70. package/dist/cdn/chunks/{SavedBlocksPanels-BzMTZxf2.js.map → SavedBlocksPanels-1kVbqdpc.js.map} +1 -1
  71. package/dist/cdn/chunks/{SavedBlocksPickBar-CduR1Cpb.js → SavedBlocksPickBar--noDJIyN.js} +6 -6
  72. package/dist/cdn/chunks/{SavedBlocksPickBar-CduR1Cpb.js.map → SavedBlocksPickBar--noDJIyN.js.map} +1 -1
  73. package/dist/cdn/chunks/{SnapshotHistory-DO-gzr3i.js → SnapshotHistory-DFuNJRc9.js} +8 -8
  74. package/dist/cdn/chunks/{SnapshotHistory-DO-gzr3i.js.map → SnapshotHistory-DFuNJRc9.js.map} +1 -1
  75. package/dist/cdn/chunks/{TemplateScoringPanel-CTk8WwxU.js → TemplateScoringPanel-DG1dAjQk.js} +52 -52
  76. package/dist/cdn/chunks/{TemplateScoringPanel-CTk8WwxU.js.map → TemplateScoringPanel-DG1dAjQk.js.map} +1 -1
  77. package/dist/cdn/chunks/TestEmailModal-CiPfOn2v.js +174 -0
  78. package/dist/cdn/chunks/TestEmailModal-CiPfOn2v.js.map +1 -0
  79. package/dist/cdn/chunks/TestEmailPanel-saOfnpjz.js +35 -0
  80. package/dist/cdn/chunks/TestEmailPanel-saOfnpjz.js.map +1 -0
  81. package/dist/cdn/chunks/{TitleEditor-J1vgU_J6.js → TitleEditor-08KM_VzZ.js} +18 -18
  82. package/dist/cdn/chunks/{TitleEditor-J1vgU_J6.js.map → TitleEditor-08KM_VzZ.js.map} +1 -1
  83. package/dist/cdn/chunks/{TplModal-BN53d9Se.js → TplModal-Cu4tBBnF.js} +4 -4
  84. package/dist/cdn/chunks/{TplModal-BN53d9Se.js.map → TplModal-Cu4tBBnF.js.map} +1 -1
  85. package/dist/cdn/chunks/blockTypeIcons-DvohkXqi.js +21 -0
  86. package/dist/cdn/chunks/{blockTypeIcons-etMMQoVv.js.map → blockTypeIcons-DvohkXqi.js.map} +1 -1
  87. package/dist/cdn/chunks/{ca-BBgad6y5.js → ca-CO4nq6TX.js} +23 -2
  88. package/dist/cdn/chunks/{ca-BBgad6y5.js.map → ca-CO4nq6TX.js.map} +1 -1
  89. package/dist/cdn/chunks/{cloud-BJlbXGTJ.js → cloud-C2I0P9qj.js} +46 -42
  90. package/dist/cdn/chunks/cloud-C2I0P9qj.js.map +1 -0
  91. package/dist/{de-D7WbpFBR.js → cdn/chunks/de-CUeaFJph.js} +24 -1
  92. package/dist/cdn/chunks/{de-D7WbpFBR.js.map → de-CUeaFJph.js.map} +1 -1
  93. package/dist/{de-Bw6fB5JU.js → cdn/chunks/de-uVoSP1xF.js} +2 -9
  94. package/dist/cdn/chunks/de-uVoSP1xF.js.map +1 -0
  95. package/dist/cdn/chunks/emailFrameWidth-BmFCN2dp.js +8 -0
  96. package/dist/cdn/chunks/emailFrameWidth-BmFCN2dp.js.map +1 -0
  97. package/dist/{en-DAdHJz7h.js → cdn/chunks/en-CjhsJxb-.js} +2 -9
  98. package/dist/cdn/chunks/en-CjhsJxb-.js.map +1 -0
  99. package/dist/{en-BrZ0uGK2.js → cdn/chunks/en-zCYIPAL5.js} +24 -1
  100. package/dist/cdn/chunks/{en-BrZ0uGK2.js.map → en-zCYIPAL5.js.map} +1 -1
  101. package/dist/{es-tLSLysPs.js → cdn/chunks/es-BSiH7YkP.js} +24 -1
  102. package/dist/cdn/chunks/{es-tLSLysPs.js.map → es-BSiH7YkP.js.map} +1 -1
  103. package/dist/cdn/chunks/{extensions-C49c51P1.js → extensions-DBWF_lxx.js} +16 -16
  104. package/dist/cdn/chunks/{extensions-C49c51P1.js.map → extensions-DBWF_lxx.js.map} +1 -1
  105. package/dist/{fr-BMWOPztQ.js → cdn/chunks/fr-DTVJ3det.js} +24 -1
  106. package/dist/cdn/chunks/fr-DTVJ3det.js.map +1 -0
  107. package/dist/cdn/chunks/{icons-CYWw8Xfp.js → icons-Cqxvwgz7.js} +35 -14
  108. package/dist/cdn/chunks/icons-Cqxvwgz7.js.map +1 -0
  109. package/dist/cdn/chunks/keys-B5uoP9P7.js +12 -0
  110. package/dist/cdn/chunks/keys-B5uoP9P7.js.map +1 -0
  111. package/dist/{nl-Dhctu7JL.js → cdn/chunks/nl-BqSquFS3.js} +24 -1
  112. package/dist/cdn/chunks/nl-BqSquFS3.js.map +1 -0
  113. package/dist/cdn/chunks/{pt-BR-BWFokdTU.js → pt-BR-CMljK37h.js} +23 -2
  114. package/dist/cdn/chunks/{pt-BR-BWFokdTU.js.map → pt-BR-CMljK37h.js.map} +1 -1
  115. package/dist/{pt-BR-w2sGzHNX.js → cdn/chunks/pt-BR-CTzHTqJD.js} +2 -9
  116. package/dist/cdn/chunks/pt-BR-CTzHTqJD.js.map +1 -0
  117. package/dist/cdn/chunks/{src-BKI1x1k7.js → src-BCJna-6p.js} +183 -165
  118. package/dist/cdn/chunks/{src-BKI1x1k7.js.map → src-BCJna-6p.js.map} +1 -1
  119. package/dist/cdn/chunks/{src-MA8DWI8O.js → src-C45kfA2t.js} +17 -17
  120. package/dist/cdn/chunks/{src-MA8DWI8O.js.map → src-C45kfA2t.js.map} +1 -1
  121. package/dist/cdn/chunks/{src-ByWL5K1f.js → src-XQmI_Xs1.js} +48 -48
  122. package/dist/cdn/chunks/{src-ByWL5K1f.js.map → src-XQmI_Xs1.js.map} +1 -1
  123. package/dist/cdn/chunks/{src-CM0gCvAS.js → src-YVsPFLNJ.js} +251 -251
  124. package/dist/cdn/chunks/{src-CM0gCvAS.js.map → src-YVsPFLNJ.js.map} +1 -1
  125. package/dist/cdn/chunks/{styles-BkXzQ4-n.js → styles-BohMfIBd.js} +785 -746
  126. package/dist/cdn/chunks/styles-BohMfIBd.js.map +1 -0
  127. package/dist/cdn/chunks/{tiptap-DUTbZTeR.js → tiptap-DRKu__AX.js} +5 -5
  128. package/dist/cdn/chunks/{tiptap-DUTbZTeR.js.map → tiptap-DRKu__AX.js.map} +1 -1
  129. package/dist/cdn/chunks/{useCloudI18n-BjNENqkM.js → useCloudI18n-Bem8DUjH.js} +2 -2
  130. package/dist/cdn/chunks/{useCloudI18n-BjNENqkM.js.map → useCloudI18n-Bem8DUjH.js.map} +1 -1
  131. package/dist/cdn/chunks/{useEditorCore-CzMhD6Gd.js → useEditorCore-B_vwuKdI.js} +434 -414
  132. package/dist/cdn/chunks/useEditorCore-B_vwuKdI.js.map +1 -0
  133. package/dist/cdn/chunks/{useI18n-8Wd7G-cq.js → useI18n-graz19nI.js} +2 -2
  134. package/dist/cdn/chunks/{useI18n-8Wd7G-cq.js.map → useI18n-graz19nI.js.map} +1 -1
  135. package/dist/cdn/chunks/{useMergeTag-C7G31KV-.js → useMergeTag-rTzAFMlr.js} +4 -4
  136. package/dist/cdn/chunks/{useMergeTag-C7G31KV-.js.map → useMergeTag-rTzAFMlr.js.map} +1 -1
  137. package/dist/cdn/chunks/{usePopoverPosition-Bx0QewTv.js → usePopoverPosition-BaFxLP3w.js} +2 -2
  138. package/dist/cdn/chunks/{usePopoverPosition-Bx0QewTv.js.map → usePopoverPosition-BaFxLP3w.js.map} +1 -1
  139. package/dist/cdn/editor.css +1 -1
  140. package/dist/cdn/editor.js +172 -150
  141. package/dist/cdn/editor.js.map +1 -1
  142. package/dist/{cloud-Du7mnkz2.js → cloud-DsUct4Zq.js} +42 -40
  143. package/dist/{cdn/chunks/de-D7WbpFBR.js → de-CUeaFJph.js} +22 -3
  144. package/dist/{cdn/chunks/de-Bw6fB5JU.js → de-uVoSP1xF.js} +0 -11
  145. package/dist/{dist-CL_CfQ3Q.js → dist-9uhI32Q4.js} +2 -2
  146. package/dist/{dist-3DHaYEiT.js → dist-BAkGuPYm.js} +2 -2
  147. package/dist/dist-BIYm-U9x.js +5 -0
  148. package/dist/{dist-3HenmYIg.js → dist-ByJVlKWy.js} +1 -1
  149. package/dist/{dist-DKWoZJAV.js → dist-C5tigvDF.js} +2 -2
  150. package/dist/{dist-bivrM-nS.js → dist-CQiAZlTt.js} +2 -2
  151. package/dist/{dist-Ih7ejWzn.js → dist-C_kAE1sC.js} +2 -2
  152. package/dist/{dist-CclnU_v0.js → dist-CkCVlKj_.js} +2 -2
  153. package/dist/{dist-B_etKYyh.js → dist-DFO896yT.js} +5 -5
  154. package/dist/{dist-BJbqgyPn.js → dist-DPHqs0Yh.js} +105 -87
  155. package/dist/{dist-DOtLGnLr.js → dist-DWu9QWFl.js} +2 -2
  156. package/dist/{dist-BCnJcAQc.js → dist-IGetXrbO.js} +2 -2
  157. package/dist/dist-JXOq1hib.js +5 -0
  158. package/dist/emailFrameWidth-BmFCN2dp.js +6 -0
  159. package/dist/{cdn/chunks/en-DAdHJz7h.js → en-CjhsJxb-.js} +0 -11
  160. package/dist/{cdn/chunks/en-BrZ0uGK2.js → en-zCYIPAL5.js} +22 -3
  161. package/dist/{cdn/chunks/es-tLSLysPs.js → es-BSiH7YkP.js} +22 -3
  162. package/dist/{extensions-3870a_3R.js → extensions-C0DXnYdA.js} +13 -13
  163. package/dist/{cdn/chunks/fr-BMWOPztQ.js → fr-DTVJ3det.js} +22 -3
  164. package/dist/index.d.ts +74 -0
  165. package/dist/keys-BVlG5Ozc.js +10 -0
  166. package/dist/{cdn/chunks/nl-Dhctu7JL.js → nl-BqSquFS3.js} +22 -3
  167. package/dist/{pt-BR-BWFokdTU.js → pt-BR-CMljK37h.js} +22 -1
  168. package/dist/{cdn/chunks/pt-BR-w2sGzHNX.js → pt-BR-CTzHTqJD.js} +0 -11
  169. package/dist/style.css +1 -1
  170. package/dist/{styles-AxBd7CgB.js → styles-BTTD0Je4.js} +941 -935
  171. package/dist/templatical-editor.js +112 -89
  172. package/dist/{useCloudI18n-BmiygEM4.js → useCloudI18n-DGr3b2SX.js} +1 -1
  173. package/dist/{useEditorCore-CuMMIfiS.js → useEditorCore-DOrGex_t.js} +917 -897
  174. package/dist/{useI18n-D2L9Mkik.js → useI18n-BhAejA-x.js} +1 -1
  175. package/dist/{useMergeTag-BTdDq5DC.js → useMergeTag-Ce95YIOO.js} +3 -3
  176. package/dist/{usePopoverPosition-BO2LNy5n.js → usePopoverPosition-vjKJaqJf.js} +1 -1
  177. package/package.json +20 -20
  178. package/dist/SavedBlockPreviewCanvas-DXkGDYph.js +0 -109
  179. package/dist/TestEmailModal-DComAFpR.js +0 -95
  180. package/dist/cdn/chunks/CloudEditor-FCS53UcZ.js.map +0 -1
  181. package/dist/cdn/chunks/SaveBlockDialog-CSeD3gn9.js.map +0 -1
  182. package/dist/cdn/chunks/SavedBlockPreviewCanvas-DgLOKtR_.js +0 -111
  183. package/dist/cdn/chunks/SavedBlockPreviewCanvas-DgLOKtR_.js.map +0 -1
  184. package/dist/cdn/chunks/SavedBlocksBrowserModal-B2x5WRPN.js.map +0 -1
  185. package/dist/cdn/chunks/TestEmailModal-DT37w7i_.js +0 -96
  186. package/dist/cdn/chunks/TestEmailModal-DT37w7i_.js.map +0 -1
  187. package/dist/cdn/chunks/blockTypeIcons-etMMQoVv.js +0 -21
  188. package/dist/cdn/chunks/cloud-BJlbXGTJ.js.map +0 -1
  189. package/dist/cdn/chunks/de-Bw6fB5JU.js.map +0 -1
  190. package/dist/cdn/chunks/en-DAdHJz7h.js.map +0 -1
  191. package/dist/cdn/chunks/fr-BMWOPztQ.js.map +0 -1
  192. package/dist/cdn/chunks/icons-CYWw8Xfp.js.map +0 -1
  193. package/dist/cdn/chunks/keys-D7kUmfpE.js +0 -12
  194. package/dist/cdn/chunks/keys-D7kUmfpE.js.map +0 -1
  195. package/dist/cdn/chunks/nl-Dhctu7JL.js.map +0 -1
  196. package/dist/cdn/chunks/pt-BR-w2sGzHNX.js.map +0 -1
  197. package/dist/cdn/chunks/styles-BkXzQ4-n.js.map +0 -1
  198. package/dist/cdn/chunks/useEditorCore-CzMhD6Gd.js.map +0 -1
  199. package/dist/dist-CcQLJeWV.js +0 -5
  200. package/dist/dist-DerdmERj.js +0 -5
  201. package/dist/keys-CHPcp-Nz.js +0 -10
@@ -1,11 +1,11 @@
1
1
  import { Dt as e, Et as t, O as n, Ot as r, R as i, Y as a, _ as o, c as s, d as c, l, nt as u, s as d, u as f, w as p, z as m } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
2
2
  import { a as h, c as g, s as _ } from "./runtime-dom.esm-bundler-GdMI8WqG.js";
3
- import { D as v, E as y, a as b, j as x } from "./dist-BJbqgyPn.js";
4
- import { t as S } from "./useI18n-D2L9Mkik.js";
5
- import { t as C } from "./useMergeTag-BTdDq5DC.js";
6
- import { i as w, o as T, p as E, qt as D, u as O } from "./dist-3HenmYIg.js";
7
- import { i as k, r as A, t as j } from "./MergeTagSuggestion-D9eCryMC.js";
8
- import { n as M, t as N } from "./dist-DOtLGnLr.js";
3
+ import { D as v, E as y, N as b, a as x } from "./dist-DPHqs0Yh.js";
4
+ import { t as S } from "./useI18n-BhAejA-x.js";
5
+ import { t as C } from "./useMergeTag-Ce95YIOO.js";
6
+ import { i as w, o as T, p as E, qt as D, u as O } from "./dist-ByJVlKWy.js";
7
+ import { i as k, r as A, t as j } from "./MergeTagSuggestion-Dn8ww9nV.js";
8
+ import { n as M, t as N } from "./dist-DWu9QWFl.js";
9
9
  //#region src/extensions/FontSize.ts
10
10
  var P = w.create({
11
11
  name: "fontSize",
@@ -87,7 +87,7 @@ var P = w.create({
87
87
  updateAttributes: { type: Function }
88
88
  },
89
89
  setup(o) {
90
- let v = o, { syntax: b } = C(), { t: w } = S(), T = d(() => x(v.node.attrs.value, b)), E = d(() => y(v.node.attrs.value, b)), D = a(!1), O = a(""), k = a(null), A = !1;
90
+ let v = o, { syntax: x } = C(), { t: w } = S(), T = d(() => b(v.node.attrs.value, x)), E = d(() => y(v.node.attrs.value, x)), D = a(!1), O = a(""), k = a(null), A = !1;
91
91
  function j() {
92
92
  O.value = v.node.attrs.value, A = !1, D.value = !0, p(() => {
93
93
  k.value?.focus(), k.value?.select();
@@ -103,7 +103,7 @@ var P = w.create({
103
103
  }
104
104
  e !== v.node.attrs.value && v.updateAttributes({
105
105
  value: e,
106
- keyword: x(e, b) ? y(e, b) : ""
106
+ keyword: b(e, x) ? y(e, x) : ""
107
107
  }), D.value = !1;
108
108
  }
109
109
  function P(e) {
@@ -189,7 +189,7 @@ var U = O.create({
189
189
  inline: !0,
190
190
  atom: !0,
191
191
  addOptions() {
192
- return { syntax: b.liquid };
192
+ return { syntax: x.liquid };
193
193
  },
194
194
  addAttributes() {
195
195
  return {
@@ -207,7 +207,7 @@ var U = O.create({
207
207
  return [{ tag: "span[data-logic-merge-tag]" }];
208
208
  },
209
209
  renderHTML({ node: e, HTMLAttributes: t }) {
210
- if (!x(e.attrs.value, this.options.syntax)) return [
210
+ if (!b(e.attrs.value, this.options.syntax)) return [
211
211
  "span",
212
212
  {},
213
213
  e.attrs.value
@@ -236,7 +236,7 @@ var U = O.create({
236
236
  find: RegExp(this.options.syntax.logic.source + "$", ""),
237
237
  handler: ({ state: e, range: t, match: n }) => {
238
238
  let r = n[0];
239
- if (!x(r, this.options.syntax)) return;
239
+ if (!b(r, this.options.syntax)) return;
240
240
  let i = y(r, this.options.syntax), a = this.type.create({
241
241
  value: r,
242
242
  keyword: i
@@ -250,7 +250,7 @@ var U = O.create({
250
250
  find: new RegExp(this.options.syntax.logic.source, "g"),
251
251
  handler: ({ state: e, range: t, match: n }) => {
252
252
  let r = n[0];
253
- if (!x(r, this.options.syntax)) return;
253
+ if (!b(r, this.options.syntax)) return;
254
254
  let i = y(r, this.options.syntax), a = this.type.create({
255
255
  value: r,
256
256
  keyword: i
@@ -347,7 +347,7 @@ var U = O.create({
347
347
  addOptions() {
348
348
  return {
349
349
  mergeTags: [],
350
- syntax: b.liquid
350
+ syntax: x.liquid
351
351
  };
352
352
  },
353
353
  addAttributes() {
@@ -413,7 +413,8 @@ var e = {
413
413
  otherGroup: "Autres",
414
414
  cancel: "Annuler",
415
415
  close: "Fermer",
416
- groupCount: "{count}"
416
+ groupCount: "{count}",
417
+ sample: "Aperçu : {sample}"
417
418
  }
418
419
  },
419
420
  logicTag: {
@@ -569,6 +570,26 @@ var e = {
569
570
  daysAgo: "il y a {days} j"
570
571
  }
571
572
  },
573
+ mergeTagPreview: {
574
+ label: "Affichage des balises de fusion",
575
+ sample: "Exemple",
576
+ labelView: "Libellé"
577
+ },
578
+ testEmail: {
579
+ title: "Envoyer un e-mail de test",
580
+ recipientLabel: "Destinataire",
581
+ recipientPlaceholder: "vous@exemple.fr",
582
+ invalidAddress: "Saisissez une adresse e-mail valide.",
583
+ preview: "Aperçu",
584
+ previewHint: "Les balises de fusion sont affichées non résolues — votre backend les remplace.",
585
+ previewHintSample: "Les balises de fusion affichent des valeurs d’exemple — votre backend insère les données réelles.",
586
+ recipientNotAllowed: "Cette adresse ne figure pas dans la liste des destinataires autorisés.",
587
+ send: "Envoyer",
588
+ sending: "Envoi en cours...",
589
+ cancel: "Annuler",
590
+ success: "E-mail de test envoyé avec succès",
591
+ button: "Test"
592
+ },
572
593
  sidebarNav: {
573
594
  browseSavedBlocks: "Parcourir les blocs enregistrés",
574
595
  expandSidebar: "Développer la barre latérale des blocs",
@@ -606,5 +627,3 @@ var e = {
606
627
  };
607
628
  //#endregion
608
629
  export { e as default };
609
-
610
- //# sourceMappingURL=fr-BMWOPztQ.js.map
package/dist/index.d.ts CHANGED
@@ -28,6 +28,8 @@ import { SaveResult } from '@templatical/types';
28
28
  import { Template } from '@templatical/types';
29
29
  import { TemplateContent } from '@templatical/types';
30
30
  import { TemplateDefaults } from '@templatical/types';
31
+ import { TestEmailPayload } from '@templatical/types';
32
+ import { TestEmailProvider } from '@templatical/types';
31
33
  import { ThemeOverrides } from '@templatical/types';
32
34
  import { UiTheme } from '@templatical/types';
33
35
  import { ViewportSize } from '@templatical/types';
@@ -100,6 +102,23 @@ export declare interface EditorCapabilities {
100
102
  canUpdate: ComputedRef<boolean>;
101
103
  canDelete: ComputedRef<boolean>;
102
104
  };
105
+ /**
106
+ * Present only when a `TestEmailProvider` is configured — in OSS via
107
+ * `init({ testEmail })`, in Cloud whenever cloud mode is active (or when a
108
+ * consumer supplied their own sender to `initCloud()`).
109
+ */
110
+ testEmail?: {
111
+ /** Open the send dialog. A no-op while {@link isAvailable} is false. */
112
+ open(): void;
113
+ /**
114
+ * Whether the feature is usable right now. Reactive for the same reason as
115
+ * `savedBlocks.isAvailable`: Cloud resolves its plan entitlement and its
116
+ * allowed-recipient list *after* capabilities are provided, and an
117
+ * explicitly empty allowlist makes the feature unusable. UI must gate on
118
+ * this or it renders a button that does nothing.
119
+ */
120
+ isAvailable: ComputedRef<boolean>;
121
+ };
103
122
  }
104
123
 
105
124
  export declare interface FontOption {
@@ -318,7 +337,28 @@ export declare interface TemplaticalCloudEditorConfig {
318
337
  onComment?: (event: CommentEvent) => void;
319
338
  onUnmount?: () => void;
320
339
  onRequestMedia?: (context: MediaRequestContext) => Promise<MediaItem | null>;
340
+ /**
341
+ * Transform the rendered HTML just before Cloud sends a test email.
342
+ *
343
+ * Cloud-only, and deliberately so: it exists because *Cloud* renders the HTML,
344
+ * so a consumer needs a seam into it. A consumer-supplied {@link testEmail}
345
+ * provider *is* that seam, and this hook is not applied to it.
346
+ */
321
347
  onBeforeTestEmail?: (html: string) => string | Promise<string>;
348
+ /**
349
+ * Sending backend for test emails.
350
+ *
351
+ * - **omitted** — sent by Templatical Cloud, gated on the `test_email` plan
352
+ * feature and its signed allowed-recipient list.
353
+ * - **a {@link TestEmailProvider}** — sent by *you* instead, which is what to
354
+ * reach for when mail must leave your own infrastructure for compliance or
355
+ * data-residency reasons.
356
+ *
357
+ * The same type `init()` takes, so moving an OSS integration to Cloud means
358
+ * deleting this key (to adopt Cloud's sender) or leaving it exactly as-is (to
359
+ * keep your own) — never rewriting it.
360
+ */
361
+ testEmail?: TestEmailProvider;
322
362
  /**
323
363
  * Template linter (`@templatical/quality`) configuration. Runs every
324
364
  * linter exported by the package (accessibility + structure). Cloud
@@ -518,6 +558,36 @@ export declare interface TemplaticalEditorConfig {
518
558
  * block *types* with their own templates and field schemas.
519
559
  */
520
560
  savedBlocks?: SavedBlocksProvider;
561
+ /**
562
+ * Sending backend for **test emails** — letting a user mail themselves the
563
+ * template they're editing.
564
+ *
565
+ * The editor owns the trigger, the dialog, recipient validation and the
566
+ * sending/success/error states; you own delivery. One method is enough:
567
+ *
568
+ * ```ts
569
+ * init({
570
+ * container,
571
+ * testEmail: {
572
+ * send: ({ recipient, content }) =>
573
+ * fetch("/api/test-email", {
574
+ * method: "POST",
575
+ * headers: { "Content-Type": "application/json" },
576
+ * body: JSON.stringify({ recipient, content }),
577
+ * }).then((r) => {
578
+ * if (!r.ok) throw new Error("Could not send the test email");
579
+ * }),
580
+ * },
581
+ * });
582
+ * ```
583
+ *
584
+ * **Omitted by default.** With no provider the feature is entirely off — no
585
+ * button, and none of its UI code is downloaded.
586
+ *
587
+ * `allowedRecipients` restricts the picker but is **not** a security boundary:
588
+ * it lives in the user's browser. Validate the recipient on your server.
589
+ */
590
+ testEmail?: TestEmailProvider;
521
591
  blockDefaults?: BlockDefaults;
522
592
  templateDefaults?: TemplateDefaults;
523
593
  theme?: ThemeOverrides;
@@ -556,6 +626,10 @@ export declare interface TemplaticalEditorConfig {
556
626
  lint?: LintOptions;
557
627
  }
558
628
 
629
+ export { TestEmailPayload }
630
+
631
+ export { TestEmailProvider }
632
+
559
633
  export { ThemeOverrides }
560
634
 
561
635
  export { UiTheme }
@@ -0,0 +1,10 @@
1
+ import { x as e } from "./vue.runtime.esm-bundler-B0xoGkDv.js";
2
+ //#region src/keys.ts
3
+ var t = Symbol("translations"), n = Symbol("editor"), r = Symbol("history"), i = Symbol("blockActions"), a = Symbol("conditionPreview"), o = Symbol("fontsManager"), s = Symbol("themeStyles"), c = Symbol("tplUiTheme"), l = Symbol("blockDefaults"), u = Symbol("blockRegistry"), d = Symbol("customBlockDefinitions"), f = Symbol("paletteBlocks"), p = Symbol("htmlBlockPreview"), m = Symbol("colors"), h = Symbol("customBlockStylesheets"), g = Symbol("mergeTags"), _ = Symbol("mergeTagSyntax"), v = Symbol("onRequestMergeTag"), y = Symbol("mergeTagAutocomplete"), b = Symbol("mergeTagSampleMode"), x = Symbol("useMergeTagSamples"), S = Symbol("mergeTagPicker"), C = Symbol("logicTags"), w = Symbol("logicPairs"), T = Symbol("logicPicker"), E = Symbol("onRequestLogic"), D = Symbol("onRequestMedia"), O = Symbol("imageUrlResolver"), k = Symbol("displayConditions"), A = Symbol("allowCustomConditions"), j = Symbol("capabilities"), M = Symbol("keyboardReorder"), N = Symbol("templateLint"), P = Symbol("editorRoot"), F = Symbol("popoverRoot"), I = Symbol("savedBlocks"), L = Symbol("authManager"), R = Symbol("aiConfig"), z = Symbol("comments"), B = Symbol("scoring"), V = Symbol("cloudTranslations");
4
+ function H(t, n) {
5
+ let r = e(t, null);
6
+ if (r == null) throw Error(`${n} requires a provider for ${t.description ?? "unknown key"}. Ensure it is a descendant of Editor or CloudEditor.`);
7
+ return r;
8
+ }
9
+ //#endregion
10
+ export { E as A, c as B, C, S as D, y as E, I as F, H, B as I, N as L, v as M, f as N, b as O, F as P, s as R, w as S, g as T, x as V, o as _, l as a, O as b, V as c, a as d, d as f, P as g, n as h, i, D as j, _ as k, m as l, k as m, A as n, u as o, h as p, L as r, j as s, R as t, z as u, r as v, T as w, M as x, p as y, t as z };
@@ -413,7 +413,8 @@ var e = {
413
413
  otherGroup: "Overige",
414
414
  cancel: "Annuleren",
415
415
  close: "Sluiten",
416
- groupCount: "{count}"
416
+ groupCount: "{count}",
417
+ sample: "Voorbeeld: {sample}"
417
418
  }
418
419
  },
419
420
  logicTag: {
@@ -569,6 +570,26 @@ var e = {
569
570
  daysAgo: "{days} d geleden"
570
571
  }
571
572
  },
573
+ mergeTagPreview: {
574
+ label: "Weergave van samenvoegvelden",
575
+ sample: "Voorbeeldwaarde",
576
+ labelView: "Naam"
577
+ },
578
+ testEmail: {
579
+ title: "Test-e-mail verzenden",
580
+ recipientLabel: "Ontvanger",
581
+ recipientPlaceholder: "u@voorbeeld.nl",
582
+ invalidAddress: "Voer een geldig e-mailadres in.",
583
+ preview: "Voorbeeld",
584
+ previewHint: "Samenvoegvelden worden onopgelost weergegeven — uw backend vult ze in.",
585
+ previewHintSample: "Samenvoegvelden tonen voorbeeldwaarden — uw backend vult de echte gegevens in.",
586
+ recipientNotAllowed: "Dit adres staat niet in de lijst met toegestane ontvangers.",
587
+ send: "Verzenden",
588
+ sending: "Wordt verzonden...",
589
+ cancel: "Annuleren",
590
+ success: "Test-e-mail succesvol verzonden",
591
+ button: "Test"
592
+ },
572
593
  sidebarNav: {
573
594
  browseSavedBlocks: "Opgeslagen blokken bekijken",
574
595
  expandSidebar: "Blokzijbalk uitvouwen",
@@ -606,5 +627,3 @@ var e = {
606
627
  };
607
628
  //#endregion
608
629
  export { e as default };
609
-
610
- //# sourceMappingURL=nl-Dhctu7JL.js.map
@@ -413,7 +413,8 @@ var e = {
413
413
  otherGroup: "Outros",
414
414
  cancel: "Cancelar",
415
415
  close: "Fechar",
416
- groupCount: "{count}"
416
+ groupCount: "{count}",
417
+ sample: "Pré-visualização: {sample}"
417
418
  }
418
419
  },
419
420
  logicTag: {
@@ -569,6 +570,26 @@ var e = {
569
570
  daysAgo: "há {days}d"
570
571
  }
571
572
  },
573
+ mergeTagPreview: {
574
+ label: "Exibição de merge tags",
575
+ sample: "Exemplo",
576
+ labelView: "Rótulo"
577
+ },
578
+ testEmail: {
579
+ title: "Enviar E-mail de Teste",
580
+ recipientLabel: "Destinatário",
581
+ recipientPlaceholder: "voce@exemplo.com",
582
+ invalidAddress: "Informe um endereço de e-mail válido.",
583
+ preview: "Pré-visualização",
584
+ previewHint: "As merge tags aparecem sem resolução — seu backend as preenche.",
585
+ previewHintSample: "As merge tags mostram valores de exemplo — seu backend insere os dados reais.",
586
+ recipientNotAllowed: "Esse endereço não está na lista de destinatários permitidos.",
587
+ send: "Enviar",
588
+ sending: "Enviando...",
589
+ cancel: "Cancelar",
590
+ success: "E-mail de teste enviado com sucesso",
591
+ button: "Testar"
592
+ },
572
593
  sidebarNav: {
573
594
  browseSavedBlocks: "Explorar blocos salvos",
574
595
  expandSidebar: "Expandir barra lateral de blocos",
@@ -34,15 +34,6 @@ var e = {
34
34
  olderSnapshot: "Versão anterior",
35
35
  newerSnapshot: "Versão mais recente"
36
36
  },
37
- testEmail: {
38
- title: "Enviar E-mail de Teste",
39
- recipientLabel: "Destinatário",
40
- send: "Enviar",
41
- sending: "Enviando...",
42
- cancel: "Cancelar",
43
- success: "E-mail de teste enviado com sucesso",
44
- button: "Testar"
45
- },
46
37
  aiRewrite: {
47
38
  title: "Reescrita com IA",
48
39
  tone: "Tom",
@@ -181,5 +172,3 @@ var e = {
181
172
  };
182
173
  //#endregion
183
174
  export { e as default };
184
-
185
- //# sourceMappingURL=pt-BR-w2sGzHNX.js.map