@templatical/editor 0.26.3 → 0.27.1

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 (287) hide show
  1. package/README.md +3 -1
  2. package/dist/{AiChatSidebar-CMBz6Wix.js → AiChatSidebar-iVJDzqjr.js} +60 -60
  3. package/dist/AiFeatureMenu-DrLGc2H2.js +57 -0
  4. package/dist/{BlockIssueBadge-Buk3_6QF.js → BlockIssueBadge-BHysq7XQ.js} +11 -11
  5. package/dist/BlockPreviewCanvas-2WASf5A4.js +121 -0
  6. package/dist/CloudHeaderExtras-DWApyc4P.js +59 -0
  7. package/dist/CloudPanels-DvOhGdRj.js +232 -0
  8. package/dist/{CollaboratorBar-BGwbg9aN.js → CollaboratorBar-C6MC0UCk.js} +21 -21
  9. package/dist/ColorPicker-Di8L5TLQ.js +501 -0
  10. package/dist/CommentsPanel-D5wQB1Kf.js +18 -0
  11. package/dist/CommentsSidebar-BoTIxpLE.js +481 -0
  12. package/dist/{cdn/chunks/CountdownBlock-vLTkTI9e.js → CountdownBlock-BFX8iU90.js} +19 -21
  13. package/dist/{cdn/chunks/CountdownToolbar-DPjcgcVR.js → CountdownToolbar-d9QM4m5x.js} +52 -53
  14. package/dist/{DesignReferenceSidebar-Bx96XFmK.js → DesignReferenceSidebar-DKsx2TiL.js} +72 -71
  15. package/dist/{IssuesPanel-Do7RLXsP.js → IssuesPanel-flKKwKpM.js} +38 -38
  16. package/dist/{LoadingTrack-BexpNuTV.js → LoadingTrack-C2T8ixEL.js} +3 -3
  17. package/dist/{MergeTagModeToggle-P-UguQHc.js → MergeTagModeToggle-PKCoKAoF.js} +43 -43
  18. package/dist/{MergeTagSuggestion-BJ43ihWR.js → MergeTagSuggestion-DGha0WRp.js} +46 -46
  19. package/dist/{cdn/chunks/NumberWithSuffix-BXrRdfq1.js → NumberWithSuffix-D9mPtMJB.js} +42 -44
  20. package/dist/{ParagraphEditor-6WN5jmXr.js → ParagraphEditor-iwTjkjtx.js} +200 -198
  21. package/dist/RestoreVersionDialog-DyMPGfsr.js +86 -0
  22. package/dist/{RichTextEditorContent-fbYJXAio.js → RichTextEditorContent-BVXG9oF4.js} +44 -44
  23. package/dist/SaveBlockDialog-BMCAIfK9.js +266 -0
  24. package/dist/{SavedBlocksBrowserModal-GMrajvfV.js → SavedBlocksBrowserModal-p5ma1qay.js} +116 -115
  25. package/dist/{cdn/chunks/SavedBlocksPanels-CUtYoi5Z.js → SavedBlocksPanels-BsiSstsZ.js} +9 -11
  26. package/dist/{SavedBlocksPickBar-Dk_IaMO9.js → SavedBlocksPickBar-fU4Mjm-8.js} +17 -17
  27. package/dist/{TemplateScoringPanel-BZUsb3FD.js → TemplateScoringPanel-Bv_bBsJi.js} +87 -87
  28. package/dist/TestEmailModal-EFYcrmTk.js +206 -0
  29. package/dist/{cdn/chunks/TestEmailPanel-B8y7JabA.js → TestEmailPanel-ljriUqs1.js} +4 -6
  30. package/dist/TitleEditor-BqRW7HTz.js +198 -0
  31. package/dist/TplModal-CTC9-w6B.js +49 -0
  32. package/dist/VersionHistoryMenu-Cq4rH56t.js +155 -0
  33. package/dist/VersionHistoryPanels-GkxkBiSi.js +46 -0
  34. package/dist/VersionPreviewBanner-BdtTu9mI.js +38 -0
  35. package/dist/{blockTypeIcons-C7wRSaT3.js → blockTypeIcons-CIrMr1SJ.js} +6 -6
  36. package/dist/bundle-stats.json +8 -8
  37. package/dist/{ca-D1zgI9fQ.js → ca-CEuJ6IRr.js} +73 -106
  38. package/dist/cdn/chunks/{AiChatSidebar-CQ8KUmNB.js → AiChatSidebar-DTUoBH5a.js} +54 -54
  39. package/dist/cdn/chunks/AiChatSidebar-DTUoBH5a.js.map +1 -0
  40. package/dist/cdn/chunks/AiFeatureMenu-BQz9Kczt.js +57 -0
  41. package/dist/cdn/chunks/AiFeatureMenu-BQz9Kczt.js.map +1 -0
  42. package/dist/cdn/chunks/{BlockIssueBadge-BEEY9o2o.js → BlockIssueBadge-UzSSOM_2.js} +13 -13
  43. package/dist/cdn/chunks/{BlockIssueBadge-BEEY9o2o.js.map → BlockIssueBadge-UzSSOM_2.js.map} +1 -1
  44. package/dist/cdn/chunks/{BlockPreviewCanvas-msj619wT.js → BlockPreviewCanvas-40ocpXDD.js} +42 -42
  45. package/dist/cdn/chunks/{BlockPreviewCanvas-msj619wT.js.map → BlockPreviewCanvas-40ocpXDD.js.map} +1 -1
  46. package/dist/cdn/chunks/CloudHeaderExtras-F_ySlW1S.js +60 -0
  47. package/dist/cdn/chunks/CloudHeaderExtras-F_ySlW1S.js.map +1 -0
  48. package/dist/cdn/chunks/CloudPanels-C34bcHpc.js +232 -0
  49. package/dist/cdn/chunks/CloudPanels-C34bcHpc.js.map +1 -0
  50. package/dist/cdn/chunks/{CollaboratorBar-G_sZDZXw.js → CollaboratorBar-WBtrPPnM.js} +22 -22
  51. package/dist/cdn/chunks/CollaboratorBar-WBtrPPnM.js.map +1 -0
  52. package/dist/cdn/chunks/ColorPicker-CxKYd_8N.js +502 -0
  53. package/dist/cdn/chunks/ColorPicker-CxKYd_8N.js.map +1 -0
  54. package/dist/cdn/chunks/CommentsPanel-jzZ2X0P4.js +20 -0
  55. package/dist/cdn/chunks/CommentsPanel-jzZ2X0P4.js.map +1 -0
  56. package/dist/cdn/chunks/CommentsSidebar-Dxke-vUP.js +460 -0
  57. package/dist/cdn/chunks/CommentsSidebar-Dxke-vUP.js.map +1 -0
  58. package/dist/{CountdownBlock-DuyvGcr8.js → cdn/chunks/CountdownBlock-BYSrJWxg.js} +25 -23
  59. package/dist/cdn/chunks/{CountdownBlock-vLTkTI9e.js.map → CountdownBlock-BYSrJWxg.js.map} +1 -1
  60. package/dist/{CountdownToolbar-CBE9wRaV.js → cdn/chunks/CountdownToolbar-pVbkPNVo.js} +66 -63
  61. package/dist/cdn/chunks/{CountdownToolbar-DPjcgcVR.js.map → CountdownToolbar-pVbkPNVo.js.map} +1 -1
  62. package/dist/cdn/chunks/{DesignReferenceSidebar-B-HFXV0W.js → DesignReferenceSidebar-sZWciECR.js} +64 -64
  63. package/dist/cdn/chunks/DesignReferenceSidebar-sZWciECR.js.map +1 -0
  64. package/dist/cdn/chunks/{IssuesPanel-DKTS4QVb.js → IssuesPanel-CHtetM9i.js} +36 -36
  65. package/dist/cdn/chunks/IssuesPanel-CHtetM9i.js.map +1 -0
  66. package/dist/cdn/chunks/{LoadingTrack-C52ZGL5q.js → LoadingTrack-Dp_QZvAK.js} +3 -3
  67. package/dist/cdn/chunks/{LoadingTrack-C52ZGL5q.js.map → LoadingTrack-Dp_QZvAK.js.map} +1 -1
  68. package/dist/cdn/chunks/{MergeTagModeToggle-DQ79SqQc.js → MergeTagModeToggle-ZwW-5EeN.js} +39 -39
  69. package/dist/cdn/chunks/{MergeTagModeToggle-DQ79SqQc.js.map → MergeTagModeToggle-ZwW-5EeN.js.map} +1 -1
  70. package/dist/cdn/chunks/{MergeTagSuggestion-Dn8dExNa.js → MergeTagSuggestion-DhllqTA3.js} +47 -47
  71. package/dist/cdn/chunks/MergeTagSuggestion-DhllqTA3.js.map +1 -0
  72. package/dist/{NumberWithSuffix-D37ZWiZh.js → cdn/chunks/NumberWithSuffix-mm6AfIv4.js} +37 -35
  73. package/dist/cdn/chunks/NumberWithSuffix-mm6AfIv4.js.map +1 -0
  74. package/dist/cdn/chunks/{ParagraphEditor-CZ5Z6AgG.js → ParagraphEditor-BBcIQQK2.js} +234 -233
  75. package/dist/cdn/chunks/ParagraphEditor-BBcIQQK2.js.map +1 -0
  76. package/dist/cdn/chunks/RestoreVersionDialog-DNUZHFa_.js +87 -0
  77. package/dist/cdn/chunks/RestoreVersionDialog-DNUZHFa_.js.map +1 -0
  78. package/dist/cdn/chunks/{RichTextEditorContent-DtL49Jpo.js → RichTextEditorContent-Cl-acKAD.js} +44 -44
  79. package/dist/cdn/chunks/RichTextEditorContent-Cl-acKAD.js.map +1 -0
  80. package/dist/cdn/chunks/SaveBlockDialog-BXTZ729e.js +265 -0
  81. package/dist/cdn/chunks/SaveBlockDialog-BXTZ729e.js.map +1 -0
  82. package/dist/cdn/chunks/{SavedBlocksBrowserModal-BkQXEUE2.js → SavedBlocksBrowserModal-BqGNBpRR.js} +114 -113
  83. package/dist/cdn/chunks/SavedBlocksBrowserModal-BqGNBpRR.js.map +1 -0
  84. package/dist/{SavedBlocksPanels-DEPmNhi6.js → cdn/chunks/SavedBlocksPanels-nbK0UQTp.js} +11 -9
  85. package/dist/cdn/chunks/{SavedBlocksPanels-CUtYoi5Z.js.map → SavedBlocksPanels-nbK0UQTp.js.map} +1 -1
  86. package/dist/cdn/chunks/{SavedBlocksPickBar-C80qJykl.js → SavedBlocksPickBar-B9mbw3Gk.js} +17 -17
  87. package/dist/cdn/chunks/SavedBlocksPickBar-B9mbw3Gk.js.map +1 -0
  88. package/dist/cdn/chunks/{TemplateScoringPanel-NucRtAP0.js → TemplateScoringPanel-Xdkp2EMY.js} +81 -81
  89. package/dist/cdn/chunks/TemplateScoringPanel-Xdkp2EMY.js.map +1 -0
  90. package/dist/cdn/chunks/TestEmailModal-DE6fi3he.js +206 -0
  91. package/dist/cdn/chunks/TestEmailModal-DE6fi3he.js.map +1 -0
  92. package/dist/{TestEmailPanel-DubocPxf.js → cdn/chunks/TestEmailPanel-CAjQDXle.js} +6 -4
  93. package/dist/cdn/chunks/{TestEmailPanel-B8y7JabA.js.map → TestEmailPanel-CAjQDXle.js.map} +1 -1
  94. package/dist/cdn/chunks/{TitleEditor-C8WDXf4P.js → TitleEditor-BP0ewaWF.js} +83 -83
  95. package/dist/cdn/chunks/TitleEditor-BP0ewaWF.js.map +1 -0
  96. package/dist/cdn/chunks/TplModal-C4kJduTr.js +50 -0
  97. package/dist/cdn/chunks/TplModal-C4kJduTr.js.map +1 -0
  98. package/dist/cdn/chunks/VersionHistoryMenu-_MAj3qZj.js +148 -0
  99. package/dist/cdn/chunks/VersionHistoryMenu-_MAj3qZj.js.map +1 -0
  100. package/dist/cdn/chunks/VersionHistoryPanels-DMq2PRee.js +48 -0
  101. package/dist/cdn/chunks/VersionHistoryPanels-DMq2PRee.js.map +1 -0
  102. package/dist/cdn/chunks/VersionPreviewBanner-04CL1SGY.js +40 -0
  103. package/dist/cdn/chunks/VersionPreviewBanner-04CL1SGY.js.map +1 -0
  104. package/dist/cdn/chunks/{blockTypeIcons-FXlMM3PL.js → blockTypeIcons-hX_W4dqo.js} +2 -2
  105. package/dist/cdn/chunks/{blockTypeIcons-FXlMM3PL.js.map → blockTypeIcons-hX_W4dqo.js.map} +1 -1
  106. package/dist/cdn/chunks/{ca-D1zgI9fQ.js → ca-CEuJ6IRr.js} +74 -107
  107. package/dist/cdn/chunks/ca-CEuJ6IRr.js.map +1 -0
  108. package/dist/{cloud-qINCmQbn.js → cdn/chunks/cloud-BA0OpRh-.js} +400 -609
  109. package/dist/cdn/chunks/cloud-BA0OpRh-.js.map +1 -0
  110. package/dist/cdn/chunks/createCloudRuntime-gXA8_QRU.js +344 -0
  111. package/dist/cdn/chunks/createCloudRuntime-gXA8_QRU.js.map +1 -0
  112. package/dist/{de-uVoSP1xF.js → cdn/chunks/de-BytZwgn6.js} +4 -88
  113. package/dist/cdn/chunks/de-BytZwgn6.js.map +1 -0
  114. package/dist/{de-DHra3lvx.js → cdn/chunks/de-aRxhZF_K.js} +75 -106
  115. package/dist/cdn/chunks/de-aRxhZF_K.js.map +1 -0
  116. package/dist/cdn/chunks/{dist-B2HKGHnc.js → dist-CM8TB0VD.js} +136 -136
  117. package/dist/cdn/chunks/{dist-B2HKGHnc.js.map → dist-CM8TB0VD.js.map} +1 -1
  118. package/dist/cdn/chunks/{dist-C6z8AjBC.js → dist-CYLJiSiH.js} +63 -63
  119. package/dist/cdn/chunks/{dist-C6z8AjBC.js.map → dist-CYLJiSiH.js.map} +1 -1
  120. package/dist/cdn/chunks/{draggable-DCs9qL-b.js → draggable-BfpsXFg7.js} +916 -905
  121. package/dist/cdn/chunks/{draggable-DCs9qL-b.js.map → draggable-BfpsXFg7.js.map} +1 -1
  122. package/dist/cdn/chunks/{en-DE_y1YWU.js → en-BCgVx9zM.js} +4 -3
  123. package/dist/cdn/chunks/{en-DE_y1YWU.js.map → en-BCgVx9zM.js.map} +1 -1
  124. package/dist/{en-DlqX2YWZ.js → cdn/chunks/en-BX4V_7YO.js} +75 -106
  125. package/dist/cdn/chunks/en-BX4V_7YO.js.map +1 -0
  126. package/dist/{en-CjhsJxb-.js → cdn/chunks/en-DyOSV0lY.js} +4 -88
  127. package/dist/cdn/chunks/en-DyOSV0lY.js.map +1 -0
  128. package/dist/{es-Cuss2snv.js → cdn/chunks/es-CA9uQ-5x.js} +75 -106
  129. package/dist/cdn/chunks/es-CA9uQ-5x.js.map +1 -0
  130. package/dist/cdn/chunks/{extensions-qhcN3RMT.js → extensions-CMcVw2uu.js} +53 -53
  131. package/dist/cdn/chunks/{extensions-qhcN3RMT.js.map → extensions-CMcVw2uu.js.map} +1 -1
  132. package/dist/{fr-Cm85vB2g.js → cdn/chunks/fr-iBuE60Ap.js} +75 -106
  133. package/dist/cdn/chunks/fr-iBuE60Ap.js.map +1 -0
  134. package/dist/cdn/chunks/{icons-CvYN6zrM.js → icons-C36Ha5VU.js} +11 -11
  135. package/dist/cdn/chunks/{icons-CvYN6zrM.js.map → icons-C36Ha5VU.js.map} +1 -1
  136. package/dist/{keys-fwF3qZax.js → cdn/chunks/keys-CbQuRX85.js} +6 -4
  137. package/dist/cdn/chunks/keys-CbQuRX85.js.map +1 -0
  138. package/dist/cdn/chunks/logger-ByvdoAwq.js +23 -0
  139. package/dist/cdn/chunks/logger-ByvdoAwq.js.map +1 -0
  140. package/dist/{nl-dmiIX7oT.js → cdn/chunks/nl-Btw4ojNo.js} +75 -106
  141. package/dist/cdn/chunks/nl-Btw4ojNo.js.map +1 -0
  142. package/dist/cdn/chunks/preRenderCustomBlocks-CbA3RcAy.js +23 -0
  143. package/dist/cdn/chunks/preRenderCustomBlocks-CbA3RcAy.js.map +1 -0
  144. package/dist/{pt-BR-CTzHTqJD.js → cdn/chunks/pt-BR-C1WLSGDh.js} +4 -88
  145. package/dist/cdn/chunks/pt-BR-C1WLSGDh.js.map +1 -0
  146. package/dist/{pt-BR-CaIG-7EM.js → cdn/chunks/pt-BR-GjVsCqbN.js} +75 -106
  147. package/dist/cdn/chunks/pt-BR-GjVsCqbN.js.map +1 -0
  148. package/dist/cdn/chunks/src-B_QJduQD.js.map +1 -1
  149. package/dist/cdn/chunks/{src-xkGep9eN.js → src-CoHDh8Ua.js} +1485 -1483
  150. package/dist/cdn/chunks/src-CoHDh8Ua.js.map +1 -0
  151. package/dist/cdn/chunks/{src-BwbnXShT.js → src-Ct4Fsx3t.js} +148 -134
  152. package/dist/cdn/chunks/src-Ct4Fsx3t.js.map +1 -0
  153. package/dist/cdn/chunks/styleConstants-9oK5kn21.js +59 -0
  154. package/dist/cdn/chunks/styleConstants-9oK5kn21.js.map +1 -0
  155. package/dist/cdn/chunks/timeouts-DHPZQ0G3.js +6 -0
  156. package/dist/cdn/chunks/timeouts-DHPZQ0G3.js.map +1 -0
  157. package/dist/cdn/chunks/{tiptap-C44S1Cmh.js → tiptap-DmpGap5g.js} +40 -40
  158. package/dist/cdn/chunks/{tiptap-C44S1Cmh.js.map → tiptap-DmpGap5g.js.map} +1 -1
  159. package/dist/cdn/chunks/{useAliveFlag-Dxwgo6P4.js → useAliveFlag-Dtm174fG.js} +2 -2
  160. package/dist/cdn/chunks/{useAliveFlag-Dxwgo6P4.js.map → useAliveFlag-Dtm174fG.js.map} +1 -1
  161. package/dist/cdn/chunks/{useCloudI18n-8wkJtuJD.js → useCloudI18n-NVa1aeY8.js} +5 -5
  162. package/dist/cdn/chunks/{useCloudI18n-8wkJtuJD.js.map → useCloudI18n-NVa1aeY8.js.map} +1 -1
  163. package/dist/cdn/chunks/{useEditorCore-CcgxY-Gy.js → useEditorCore-DC8gmfs6.js} +1434 -1147
  164. package/dist/cdn/chunks/useEditorCore-DC8gmfs6.js.map +1 -0
  165. package/dist/cdn/chunks/{useI18n-UMs0F71x.js → useI18n-DVWCJJFH.js} +5 -5
  166. package/dist/cdn/chunks/{useI18n-UMs0F71x.js.map → useI18n-DVWCJJFH.js.map} +1 -1
  167. package/dist/cdn/chunks/{useMergeTag-JmXOtpln.js → useMergeTag-BfZBRPQp.js} +4 -4
  168. package/dist/cdn/chunks/{useMergeTag-JmXOtpln.js.map → useMergeTag-BfZBRPQp.js.map} +1 -1
  169. package/dist/cdn/chunks/{usePopoverPosition-cf8Y-ynK.js → usePopoverPosition-BC-HA7TK.js} +3 -3
  170. package/dist/cdn/chunks/{usePopoverPosition-cf8Y-ynK.js.map → usePopoverPosition-BC-HA7TK.js.map} +1 -1
  171. package/dist/cdn/editor.css +1 -1
  172. package/dist/cdn/editor.js +5119 -284
  173. package/dist/cdn/editor.js.map +1 -1
  174. package/dist/{check-On4TSac-.js → check-DZbmkMQe.js} +1 -1
  175. package/dist/{chevron-down-69EiBGoB.js → chevron-down-nYScOLeZ.js} +1 -1
  176. package/dist/{chevron-up-Dh3MG1Dw.js → chevron-up-CpYpDLnc.js} +1 -1
  177. package/dist/{circle-alert-cilwzafX.js → circle-alert-CuuK6thq.js} +1 -1
  178. package/dist/{clock-Dt0APH92.js → clock-DxkrtqOr.js} +1 -1
  179. package/dist/cloud-BAefVBb_.js +1444 -0
  180. package/dist/createCloudRuntime-Bt8W-ajI.js +342 -0
  181. package/dist/{createLucideIcon-C8WzBYCv.js → createLucideIcon-L-wQXW_R.js} +9 -9
  182. package/dist/{cdn/chunks/de-uVoSP1xF.js → de-BytZwgn6.js} +2 -90
  183. package/dist/{cdn/chunks/de-DHra3lvx.js → de-aRxhZF_K.js} +73 -108
  184. package/dist/dist-B5iReTtK.js +251 -0
  185. package/dist/{dist-Cl8J0IES.js → dist-Ck9roB6K.js} +42 -42
  186. package/dist/{dist-BpKxrUi2.js → dist-CqcGTIiX.js} +46 -46
  187. package/dist/{cdn/chunks/en-DlqX2YWZ.js → en-BX4V_7YO.js} +73 -108
  188. package/dist/{cdn/chunks/en-CjhsJxb-.js → en-DyOSV0lY.js} +2 -90
  189. package/dist/{cdn/chunks/es-Cuss2snv.js → es-CA9uQ-5x.js} +73 -108
  190. package/dist/{extensions-Cwg9S-0f.js → extensions-CX87G4aL.js} +42 -42
  191. package/dist/{cdn/chunks/fr-Cm85vB2g.js → fr-iBuE60Ap.js} +73 -108
  192. package/dist/{image-up-Ceggh_R3.js → image-up-DouZRGVt.js} +1 -1
  193. package/dist/index.d.ts +499 -23
  194. package/dist/{info-DO5odBcZ.js → info-puX5V6Iq.js} +1 -1
  195. package/dist/{cdn/chunks/keys-Cmc2Yl3D.js → keys-BxixS0TN.js} +4 -6
  196. package/dist/{list-checks-BSkPKbuI.js → list-checks-jw-ZlvWY.js} +1 -1
  197. package/dist/{loader-circle-bO7o7_HD.js → loader-circle-DqTxB7Kr.js} +1 -1
  198. package/dist/logger-BBlvSn6q.js +21 -0
  199. package/dist/{message-circle-BEkAk65X.js → message-circle-BZ7YpB22.js} +1 -1
  200. package/dist/{cdn/chunks/nl-dmiIX7oT.js → nl-Btw4ojNo.js} +73 -108
  201. package/dist/{pencil-t6m0EtKL.js → pencil-DmbRhTJu.js} +1 -1
  202. package/dist/preRenderCustomBlocks-BebjKtmw.js +21 -0
  203. package/dist/{cdn/chunks/pt-BR-CTzHTqJD.js → pt-BR-C1WLSGDh.js} +2 -90
  204. package/dist/{cdn/chunks/pt-BR-CaIG-7EM.js → pt-BR-GjVsCqbN.js} +73 -108
  205. package/dist/{refresh-cw-CkOYVzK5.js → refresh-cw-OK_O-cL0.js} +1 -1
  206. package/dist/{runtime-dom.esm-bundler-CepEmvwF.js → runtime-dom.esm-bundler-BgKXIPLV.js} +144 -144
  207. package/dist/{scan-line-DwSVj25O.js → scan-line-DyaSTsJ5.js} +1 -1
  208. package/dist/{send-CWsWN8PQ.js → send-B-wasJJC.js} +1 -1
  209. package/dist/{shield-check-qje8Kufw.js → shield-check-DUIyRrTo.js} +1 -1
  210. package/dist/{sparkles-DumaWRW-.js → sparkles-DYEMATWC.js} +1 -1
  211. package/dist/style.css +1 -1
  212. package/dist/styleConstants-9oK5kn21.js +57 -0
  213. package/dist/templatical-editor.js +5319 -289
  214. package/dist/{text-align-start-Ir8Ah4mT.js → text-align-start-CzjLeBLe.js} +1 -1
  215. package/dist/timeouts-DHPZQ0G3.js +4 -0
  216. package/dist/{trash-2-CklAFCmO.js → trash-2-C0shEPry.js} +1 -1
  217. package/dist/{triangle-alert-BBi4n93g.js → triangle-alert-Fw0ce8oQ.js} +1 -1
  218. package/dist/{upload-sVqqppuv.js → upload-D69C2CBx.js} +3 -4
  219. package/dist/{useAliveFlag-cvyBxHp7.js → useAliveFlag-BGIAZii_.js} +1 -1
  220. package/dist/{useCloudI18n-DKVm6PCa.js → useCloudI18n-CAZTZ9_a.js} +2 -2
  221. package/dist/{useEditorCore-P4UkhcyS.js → useEditorCore-CFLzobo_.js} +1604 -1320
  222. package/dist/{useI18n-DoVKdCTH.js → useI18n-BfXff_Sy.js} +2 -2
  223. package/dist/{useMergeTag-CYZk7dZD.js → useMergeTag-Dd4I7kge.js} +3 -3
  224. package/dist/usePopoverPosition-CxhCX3SQ.js +59 -0
  225. package/dist/{vue.runtime.esm-bundler-D1diBMsm.js → vue.runtime.esm-bundler-DzEsDRtY.js} +447 -436
  226. package/dist/{x-Mby7KlhS.js → x-BjTlFqRv.js} +1 -1
  227. package/package.json +8 -8
  228. package/dist/AiFeatureMenu-Cy-PVrNT.js +0 -63
  229. package/dist/BlockPreviewCanvas-BZKslwGI.js +0 -121
  230. package/dist/CloudEditor-CPRkQCRa.js +0 -1188
  231. package/dist/ColorPicker-ClETsjA3.js +0 -550
  232. package/dist/CommentsSidebar-CdRCCSDD.js +0 -435
  233. package/dist/SaveBlockDialog-21vDlEBS.js +0 -265
  234. package/dist/SnapshotHistory-Cb4WW2gf.js +0 -128
  235. package/dist/TestEmailModal-BHDKmd6B.js +0 -205
  236. package/dist/TitleEditor-Cy4B3UNe.js +0 -198
  237. package/dist/TplModal-Dv9zgSWI.js +0 -49
  238. package/dist/cdn/chunks/AiChatSidebar-CQ8KUmNB.js.map +0 -1
  239. package/dist/cdn/chunks/AiFeatureMenu-Cb9gaRBn.js +0 -63
  240. package/dist/cdn/chunks/AiFeatureMenu-Cb9gaRBn.js.map +0 -1
  241. package/dist/cdn/chunks/CloudEditor-DbyEsIxu.js +0 -1166
  242. package/dist/cdn/chunks/CloudEditor-DbyEsIxu.js.map +0 -1
  243. package/dist/cdn/chunks/CollaboratorBar-G_sZDZXw.js.map +0 -1
  244. package/dist/cdn/chunks/ColorPicker-W_UyiVGc.js +0 -552
  245. package/dist/cdn/chunks/ColorPicker-W_UyiVGc.js.map +0 -1
  246. package/dist/cdn/chunks/CommentsSidebar-BLRZRSSC.js +0 -412
  247. package/dist/cdn/chunks/CommentsSidebar-BLRZRSSC.js.map +0 -1
  248. package/dist/cdn/chunks/DesignReferenceSidebar-B-HFXV0W.js.map +0 -1
  249. package/dist/cdn/chunks/IssuesPanel-DKTS4QVb.js.map +0 -1
  250. package/dist/cdn/chunks/MergeTagSuggestion-Dn8dExNa.js.map +0 -1
  251. package/dist/cdn/chunks/NumberWithSuffix-BXrRdfq1.js.map +0 -1
  252. package/dist/cdn/chunks/ParagraphEditor-CZ5Z6AgG.js.map +0 -1
  253. package/dist/cdn/chunks/RichTextEditorContent-DtL49Jpo.js.map +0 -1
  254. package/dist/cdn/chunks/SaveBlockDialog-CVIVZEuy.js +0 -264
  255. package/dist/cdn/chunks/SaveBlockDialog-CVIVZEuy.js.map +0 -1
  256. package/dist/cdn/chunks/SavedBlocksBrowserModal-BkQXEUE2.js.map +0 -1
  257. package/dist/cdn/chunks/SavedBlocksPickBar-C80qJykl.js.map +0 -1
  258. package/dist/cdn/chunks/SnapshotHistory-DFinMrg_.js +0 -121
  259. package/dist/cdn/chunks/SnapshotHistory-DFinMrg_.js.map +0 -1
  260. package/dist/cdn/chunks/TemplateScoringPanel-NucRtAP0.js.map +0 -1
  261. package/dist/cdn/chunks/TestEmailModal-IxS-QjeH.js +0 -205
  262. package/dist/cdn/chunks/TestEmailModal-IxS-QjeH.js.map +0 -1
  263. package/dist/cdn/chunks/TitleEditor-C8WDXf4P.js.map +0 -1
  264. package/dist/cdn/chunks/TplModal-Ce0QuHyo.js +0 -50
  265. package/dist/cdn/chunks/TplModal-Ce0QuHyo.js.map +0 -1
  266. package/dist/cdn/chunks/ca-D1zgI9fQ.js.map +0 -1
  267. package/dist/cdn/chunks/cloud-DcC8bPwn.js +0 -1787
  268. package/dist/cdn/chunks/cloud-DcC8bPwn.js.map +0 -1
  269. package/dist/cdn/chunks/de-DHra3lvx.js.map +0 -1
  270. package/dist/cdn/chunks/de-uVoSP1xF.js.map +0 -1
  271. package/dist/cdn/chunks/en-CjhsJxb-.js.map +0 -1
  272. package/dist/cdn/chunks/en-DlqX2YWZ.js.map +0 -1
  273. package/dist/cdn/chunks/es-Cuss2snv.js.map +0 -1
  274. package/dist/cdn/chunks/fr-Cm85vB2g.js.map +0 -1
  275. package/dist/cdn/chunks/keys-Cmc2Yl3D.js.map +0 -1
  276. package/dist/cdn/chunks/nl-dmiIX7oT.js.map +0 -1
  277. package/dist/cdn/chunks/pt-BR-CTzHTqJD.js.map +0 -1
  278. package/dist/cdn/chunks/pt-BR-CaIG-7EM.js.map +0 -1
  279. package/dist/cdn/chunks/src-BwbnXShT.js.map +0 -1
  280. package/dist/cdn/chunks/src-xkGep9eN.js.map +0 -1
  281. package/dist/cdn/chunks/styles-DLAfU4Uf.js +0 -4140
  282. package/dist/cdn/chunks/styles-DLAfU4Uf.js.map +0 -1
  283. package/dist/cdn/chunks/timeouts-SsLMC4a3.js +0 -6
  284. package/dist/cdn/chunks/timeouts-SsLMC4a3.js.map +0 -1
  285. package/dist/cdn/chunks/useEditorCore-CcgxY-Gy.js.map +0 -1
  286. package/dist/styles-Dx__pP9O.js +0 -4318
  287. package/dist/usePopoverPosition-C0dPEF4X.js +0 -308
@@ -4,7 +4,7 @@ import { $ as e, G as t, H as n, J as r, K as i, Q as a, U as o, V as s, W as c,
4
4
  var g = `https://cdn.jsdelivr.net/npm/@templatical/renderer@${{
5
5
  name: "@templatical/renderer",
6
6
  description: "Render Templatical email templates to MJML",
7
- version: "0.26.3",
7
+ version: "0.27.1",
8
8
  bugs: "https://github.com/templatical/sdk/issues",
9
9
  dependencies: { "@templatical/types": "workspace:*" },
10
10
  devDependencies: {
@@ -58,11 +58,12 @@ var g = `https://cdn.jsdelivr.net/npm/@templatical/renderer@${{
58
58
  allowHtmlBlocks;
59
59
  customBlockHtml;
60
60
  socialIconsBaseUrl;
61
- constructor(e, t, n, r, i = /* @__PURE__ */ new Map(), a = g) {
62
- this.containerWidth = e, this.customFonts = t, this.defaultFallbackFont = n, this.allowHtmlBlocks = r, this.customBlockHtml = i, this.socialIconsBaseUrl = a;
61
+ blockRenderers;
62
+ constructor(e, t, n, r, i = /* @__PURE__ */ new Map(), a = g, o = {}) {
63
+ this.containerWidth = e, this.customFonts = t, this.defaultFallbackFont = n, this.allowHtmlBlocks = r, this.customBlockHtml = i, this.socialIconsBaseUrl = a, this.blockRenderers = o;
63
64
  }
64
65
  withContainerWidth(t) {
65
- return new e(t, this.customFonts, this.defaultFallbackFont, this.allowHtmlBlocks, this.customBlockHtml, this.socialIconsBaseUrl);
66
+ return new e(t, this.customFonts, this.defaultFallbackFont, this.allowHtmlBlocks, this.customBlockHtml, this.socialIconsBaseUrl, this.blockRenderers);
66
67
  }
67
68
  resolveFontFamily(e) {
68
69
  for (let t of this.customFonts) if (t.name.toLowerCase() === e.toLowerCase()) {
@@ -71,26 +72,54 @@ var g = `https://cdn.jsdelivr.net/npm/@templatical/renderer@${{
71
72
  }
72
73
  return _[e.toLowerCase()] || e;
73
74
  }
74
- }, y = {
75
+ };
76
+ //#endregion
77
+ //#region ../renderer/src/visibility.ts
78
+ function y(e) {
79
+ let t = e.visibility;
80
+ return t ? !t.desktop && !t.mobile : !1;
81
+ }
82
+ function b(e) {
83
+ let t = x(e);
84
+ return t === "" ? "" : ` css-class="${t}"`;
85
+ }
86
+ function x(e) {
87
+ let t = e.visibility;
88
+ if (!t) return "";
89
+ let n = [];
90
+ return t.desktop || n.push("tpl-hide-desktop"), t.mobile || n.push("tpl-hide-mobile"), n.join(" ");
91
+ }
92
+ //#endregion
93
+ //#region ../renderer/src/unrenderable.ts
94
+ var S = "templatical:unrenderable-block";
95
+ function C(e) {
96
+ return e.replace(/-{2,}/g, "-").replace(/[<>]/g, "");
97
+ }
98
+ function w(e) {
99
+ return console.warn(`[Templatical] No renderer for block type "${e.type}" (id: ${e.id}). A placeholder comment was emitted in its place. Pass a \`blockRenderers\` entry for this type to render it.`), `<mj-raw><!-- ${S} type="${C(e.type)}" id="${C(e.id)}" --></mj-raw>`;
100
+ }
101
+ //#endregion
102
+ //#region ../renderer/src/escape.ts
103
+ var T = {
75
104
  "&": "&amp;",
76
105
  "<": "&lt;",
77
106
  ">": "&gt;",
78
107
  "\"": "&quot;",
79
108
  "'": "&#039;"
80
- }, b = /[&<>"']/g;
81
- function x(e) {
82
- return e === "" ? "" : e.replace(b, (e) => y[e] ?? e);
109
+ }, E = /[&<>"']/g;
110
+ function D(e) {
111
+ return e === "" ? "" : e.replace(E, (e) => T[e] ?? e);
83
112
  }
84
- function S(e) {
85
- return e === "" ? "" : e.replace(b, (e) => y[e] ?? e);
113
+ function O(e) {
114
+ return e === "" ? "" : e.replace(E, (e) => T[e] ?? e);
86
115
  }
87
- function C(e) {
88
- return e === "" ? "" : S(e).replace(/[;{}\r\n]/g, "");
116
+ function k(e) {
117
+ return e === "" ? "" : O(e).replace(/[;{}\r\n]/g, "");
89
118
  }
90
- function w(e) {
91
- return e === "" ? "" : T(e, (e) => E(e, "data-merge-tag") ?? E(e, "data-logic-merge-tag"));
119
+ function A(e) {
120
+ return e === "" ? "" : ee(e, (e) => j(e, "data-merge-tag") ?? j(e, "data-logic-merge-tag"));
92
121
  }
93
- function T(e, t) {
122
+ function ee(e, t) {
94
123
  let n = "", r = 0;
95
124
  for (; r < e.length;) {
96
125
  let i = e.indexOf("<span", r);
@@ -122,40 +151,24 @@ function T(e, t) {
122
151
  }
123
152
  return n;
124
153
  }
125
- function E(e, t) {
154
+ function j(e, t) {
126
155
  return h(e, t);
127
156
  }
128
157
  //#endregion
129
158
  //#region ../renderer/src/padding.ts
130
- function D(e) {
159
+ function M(e) {
131
160
  return `${e.top}px ${e.right}px ${e.bottom}px ${e.left}px`;
132
161
  }
133
162
  //#endregion
134
163
  //#region ../renderer/src/utils.ts
135
- function O(e, t) {
164
+ function N(e, t) {
136
165
  return e ? ` ${t === "native" ? "background-color" : "container-background-color"}="${e}"` : "";
137
166
  }
138
167
  //#endregion
139
- //#region ../renderer/src/visibility.ts
140
- function k(e) {
141
- let t = e.visibility;
142
- return t ? !t.desktop && !t.mobile : !1;
143
- }
144
- function A(e) {
145
- let t = j(e);
146
- return t === "" ? "" : ` css-class="${t}"`;
147
- }
148
- function j(e) {
149
- let t = e.visibility;
150
- if (!t) return "";
151
- let n = [];
152
- return t.desktop || n.push("tpl-hide-desktop"), t.mobile || n.push("tpl-hide-mobile"), n.join(" ");
153
- }
154
- //#endregion
155
168
  //#region ../renderer/src/renderers/title.ts
156
- function ee(e, t) {
157
- if (k(e)) return "";
158
- let n = D(e.styles.padding), r = O(e.styles.backgroundColor, "container"), i = te(w(e.content)), a = p[e.level] ?? p[2], o = e.color ? `\n color="${S(e.color)}"` : "", s = e.textAlign, c = ne(e.fontFamily, t), l = A(e), u = `h${p[e.level] ? e.level : 2}`;
169
+ function te(e, t) {
170
+ if (y(e)) return "";
171
+ let n = M(e.styles.padding), r = N(e.styles.backgroundColor, "container"), i = ne(A(e.content)), a = p[e.level] ?? p[2], o = e.color ? `\n color="${O(e.color)}"` : "", s = e.textAlign, c = re(e.fontFamily, t), l = b(e), u = `h${p[e.level] ? e.level : 2}`;
159
172
  return `<mj-text
160
173
  font-size="${a}px"${o}
161
174
  align="${s}"
@@ -163,33 +176,33 @@ function ee(e, t) {
163
176
  padding="${n}"${r}${c}${l}
164
177
  ><${u} style="margin:0;font-size:inherit;color:inherit;line-height:inherit">${i}</${u}></mj-text>`;
165
178
  }
166
- function te(e) {
179
+ function ne(e) {
167
180
  let t = e.match(/^\s*<p\b[^>]*>([\s\S]*)<\/p>\s*$/);
168
181
  return !t || /<\/p>\s*<p\b/i.test(t[1]) ? e : t[1];
169
182
  }
170
- function ne(e, t) {
183
+ function re(e, t) {
171
184
  return e ? ` font-family="${t.resolveFontFamily(e)}"` : "";
172
185
  }
173
186
  //#endregion
174
187
  //#region ../renderer/src/renderers/paragraph.ts
175
- function re(e, t) {
176
- if (k(e) || e.content.replace(/<\/?p\b[^<>]*>/gi, "").trim() === "") return "";
177
- let n = D(e.styles.padding), r = O(e.styles.backgroundColor, "container"), i = w(e.content);
188
+ function ie(e, t) {
189
+ if (y(e) || e.content.replace(/<\/?p\b[^<>]*>/gi, "").trim() === "") return "";
190
+ let n = M(e.styles.padding), r = N(e.styles.backgroundColor, "container"), i = A(e.content);
178
191
  return `<mj-text
179
192
  line-height="1.5"
180
- padding="${n}"${r}${A(e)}
193
+ padding="${n}"${r}${b(e)}
181
194
  >${i}</mj-text>`;
182
195
  }
183
196
  //#endregion
184
197
  //#region ../renderer/src/renderers/image.ts
185
- function ie(e, t) {
186
- if (k(e) || e.src === "") return "";
187
- let n = D(e.styles.padding), r = O(e.styles.backgroundColor, "container"), i = e.width === "full" ? t.containerWidth + "px" : e.width + "px", a = A(e), o = "";
188
- e.linkUrl && (o = ` href="${S(e.linkUrl)}"`, e.linkOpenInNewTab && (o += " target=\"_blank\" rel=\"noopener\""));
189
- let s = S(e.src), c = e.decorative === !0;
198
+ function ae(e, t) {
199
+ if (y(e) || e.src === "") return "";
200
+ let n = M(e.styles.padding), r = N(e.styles.backgroundColor, "container"), i = e.width === "full" ? t.containerWidth + "px" : e.width + "px", a = b(e), o = "";
201
+ e.linkUrl && (o = ` href="${O(e.linkUrl)}"`, e.linkOpenInNewTab && (o += " target=\"_blank\" rel=\"noopener\""));
202
+ let s = O(e.src), c = e.decorative === !0;
190
203
  return `<mj-image
191
204
  src="${s}"
192
- alt="${c ? "" : S(e.alt)}"
205
+ alt="${c ? "" : O(e.alt)}"
193
206
  width="${i}"
194
207
  align="${e.align}"
195
208
  padding="${n}"${r}${o}${a}${c ? " role=\"presentation\"" : ""}
@@ -197,9 +210,9 @@ function ie(e, t) {
197
210
  }
198
211
  //#endregion
199
212
  //#region ../renderer/src/renderers/button.ts
200
- function M(e, t) {
201
- if (k(e)) return "";
202
- let n = D(e.styles.padding), r = O(e.styles.backgroundColor, "container"), i = D(e.buttonPadding), a = e.url === "" ? "" : S(e.url), o = a === "" ? "" : ` href="${a}"`, s = S(e.backgroundColor), c = S(e.textColor), l = e.fontSize, u = e.borderRadius, d = x(e.text), f = e.openInNewTab ? " target=\"_blank\" rel=\"noopener\"" : "", p = N(e.fontFamily, t), m = P(e.width), h = A(e);
213
+ function oe(e, t) {
214
+ if (y(e)) return "";
215
+ let n = M(e.styles.padding), r = N(e.styles.backgroundColor, "container"), i = M(e.buttonPadding), a = e.url === "" ? "" : O(e.url), o = a === "" ? "" : ` href="${a}"`, s = O(e.backgroundColor), c = O(e.textColor), l = e.fontSize, u = e.borderRadius, d = D(e.text), f = e.openInNewTab ? " target=\"_blank\" rel=\"noopener\"" : "", p = P(e.fontFamily, t), m = F(e.width), h = b(e);
203
216
  return `<mj-button${o}${f}
204
217
  background-color="${s}"
205
218
  color="${c}"
@@ -211,48 +224,48 @@ function M(e, t) {
211
224
  padding="${n}"${r}${p}${m}${h}
212
225
  >${d}</mj-button>`;
213
226
  }
214
- function N(e, t) {
227
+ function P(e, t) {
215
228
  return e ? ` font-family="${t.resolveFontFamily(e)}"` : "";
216
229
  }
217
- function P(e) {
230
+ function F(e) {
218
231
  return e === void 0 ? "" : ` width="${e === "full" ? "100%" : `${e}px`}"`;
219
232
  }
220
233
  //#endregion
221
234
  //#region ../renderer/src/renderers/divider.ts
222
- function F(e, t) {
223
- if (k(e)) return "";
224
- let n = D(e.styles.padding), r = e.styles.backgroundColor ? ` container-background-color="${S(e.styles.backgroundColor)}"` : "", i = e.width === "full" ? "100%" : e.width + "px";
235
+ function I(e, t) {
236
+ if (y(e)) return "";
237
+ let n = M(e.styles.padding), r = e.styles.backgroundColor ? ` container-background-color="${O(e.styles.backgroundColor)}"` : "", i = e.width === "full" ? "100%" : e.width + "px";
225
238
  return `<mj-divider
226
239
  border-width="${e.thickness}px"
227
240
  border-style="${e.lineStyle}"
228
- border-color="${S(e.color)}"
241
+ border-color="${O(e.color)}"
229
242
  width="${i}"
230
- padding="${n}"${r}${A(e)}
243
+ padding="${n}"${r}${b(e)}
231
244
  />`;
232
245
  }
233
246
  //#endregion
234
247
  //#region ../renderer/src/renderers/spacer.ts
235
- function I(e, t) {
236
- return k(e) ? "" : `<mj-spacer height="${e.height}px" padding="0"${e.styles.backgroundColor ? ` container-background-color="${S(e.styles.backgroundColor)}"` : ""}${A(e)} />`;
248
+ function L(e, t) {
249
+ return y(e) ? "" : `<mj-spacer height="${e.height}px" padding="0"${e.styles.backgroundColor ? ` container-background-color="${O(e.styles.backgroundColor)}"` : ""}${b(e)} />`;
237
250
  }
238
251
  //#endregion
239
252
  //#region ../renderer/src/renderers/html.ts
240
- function L(e, t) {
241
- if (k(e) || !t.allowHtmlBlocks) return "";
253
+ function R(e, t) {
254
+ if (y(e) || !t.allowHtmlBlocks) return "";
242
255
  let n = e.content;
243
256
  if (n === "") return "";
244
- let r = A(e);
245
- return `<mj-text padding="${D(e.styles.padding)}"${O(e.styles.backgroundColor, "container")}${r}>
257
+ let r = b(e);
258
+ return `<mj-text padding="${M(e.styles.padding)}"${N(e.styles.backgroundColor, "container")}${r}>
246
259
  ${n}
247
260
  </mj-text>`;
248
261
  }
249
262
  //#endregion
250
263
  //#region ../renderer/src/renderers/social.ts
251
- function R(e, t) {
252
- if (k(e)) return "";
264
+ function z(e, t) {
265
+ if (y(e)) return "";
253
266
  let n = e.icons;
254
267
  if (n.length === 0) return "";
255
- let r = D(e.styles.padding), i = e.styles.backgroundColor ? ` container-background-color="${S(e.styles.backgroundColor)}"` : "", a = A(e), o = e.align, s = e.iconSize, c = e.iconStyle, l = e.spacing, u;
268
+ let r = M(e.styles.padding), i = e.styles.backgroundColor ? ` container-background-color="${O(e.styles.backgroundColor)}"` : "", a = b(e), o = e.align, s = e.iconSize, c = e.iconStyle, l = e.spacing, u;
256
269
  switch (s) {
257
270
  case "small":
258
271
  u = 24;
@@ -283,77 +296,77 @@ function R(e, t) {
283
296
  padding="${r}"${i}${a}
284
297
  >
285
298
  ${n.map((e, n) => {
286
- let r = e.platform, i = S(e.url), a = `${t.socialIconsBaseUrl}/${c}/${r}.png`, o = n === f - 1 ? 0 : l;
299
+ let r = e.platform, i = O(e.url), a = `${t.socialIconsBaseUrl}/${c}/${r}.png`, o = n === f - 1 ? 0 : l;
287
300
  return `<mj-social-element src="${a}" href="${i}" icon-size="${u}px" padding="0 ${o}px 0 0" border-radius="${d}" background-color="transparent"></mj-social-element>`;
288
301
  }).join("\n")}
289
302
  </mj-social>`;
290
303
  }
291
304
  //#endregion
292
305
  //#region ../renderer/src/renderers/menu.ts
293
- function z(e, t) {
294
- if (k(e) || e.items.length === 0) return "";
295
- let n = D(e.styles.padding), r = O(e.styles.backgroundColor, "container"), i = A(e), a = H(e.fontFamily, t), o = e.textAlign;
306
+ function B(e, t) {
307
+ if (y(e) || e.items.length === 0) return "";
308
+ let n = M(e.styles.padding), r = N(e.styles.backgroundColor, "container"), i = b(e), a = U(e.fontFamily, t), o = e.textAlign;
296
309
  return `<mj-text
297
- font-size="${e.fontSize}px"${e.color ? `\n color="${S(e.color)}"` : ""}
310
+ font-size="${e.fontSize}px"${e.color ? `\n color="${O(e.color)}"` : ""}
298
311
  align="${o}"
299
312
  line-height="1.5"
300
313
  padding="${n}"${r}${a}${i}
301
- >${B(e)}</mj-text>`;
314
+ >${V(e)}</mj-text>`;
302
315
  }
303
- function B(e) {
304
- let t = e.items, n = x(e.separator), r = C(e.separatorColor), i = e.spacing, a = e.linkColor ?? e.color, o = [], s = t.length;
305
- for (let e = 0; e < s; e++) o.push(V(t[e], a)), e < s - 1 && o.push(`<span style="color: ${r}; padding: 0 ${i}px;">${n}</span>`);
316
+ function V(e) {
317
+ let t = e.items, n = D(e.separator), r = k(e.separatorColor), i = e.spacing, a = e.linkColor ?? e.color, o = [], s = t.length;
318
+ for (let e = 0; e < s; e++) o.push(H(t[e], a)), e < s - 1 && o.push(`<span style="color: ${r}; padding: 0 ${i}px;">${n}</span>`);
306
319
  return o.join("");
307
320
  }
308
- function V(e, t) {
309
- let n = x(e.text), r = S(e.url), i = e.color ?? t, a = e.openInNewTab ? " target=\"_blank\" rel=\"noopener\"" : "", o = ["text-decoration: none"];
310
- return i && o.unshift(`color: ${C(i)}`), e.bold && o.push("font-weight: bold"), e.underline && o.push("text-decoration: underline"), `<a href="${r}" style="${o.join("; ")}"${a}>${n}</a>`;
311
- }
312
321
  function H(e, t) {
322
+ let n = D(e.text), r = O(e.url), i = e.color ?? t, a = e.openInNewTab ? " target=\"_blank\" rel=\"noopener\"" : "", o = ["text-decoration: none"];
323
+ return i && o.unshift(`color: ${k(i)}`), e.bold && o.push("font-weight: bold"), e.underline && o.push("text-decoration: underline"), `<a href="${r}" style="${o.join("; ")}"${a}>${n}</a>`;
324
+ }
325
+ function U(e, t) {
313
326
  return e ? ` font-family="${t.resolveFontFamily(e)}"` : "";
314
327
  }
315
328
  //#endregion
316
329
  //#region ../renderer/src/renderers/table.ts
317
- function U(e, t) {
318
- if (k(e) || e.rows.length === 0) return "";
319
- let n = D(e.styles.padding), r = O(e.styles.backgroundColor, "container"), i = A(e), a = q(e.fontFamily, t);
330
+ function W(e, t) {
331
+ if (y(e) || e.rows.length === 0) return "";
332
+ let n = M(e.styles.padding), r = N(e.styles.backgroundColor, "container"), i = b(e), a = se(e.fontFamily, t);
320
333
  return `<mj-text
321
- font-size="${e.fontSize}px"${e.color ? `\n color="${S(e.color)}"` : ""}
334
+ font-size="${e.fontSize}px"${e.color ? `\n color="${O(e.color)}"` : ""}
322
335
  align="${e.textAlign}"
323
336
  line-height="1.5"
324
337
  padding="${n}"${r}${a}${i}
325
- >${W(e)}</mj-text>`;
338
+ >${G(e)}</mj-text>`;
326
339
  }
327
- function W(e) {
328
- let t = C(e.borderColor), n = e.borderWidth, r = "";
340
+ function G(e) {
341
+ let t = k(e.borderColor), n = e.borderWidth, r = "";
329
342
  for (let i = 0; i < e.rows.length; i++) {
330
343
  let a = e.rows[i];
331
- r += G(a, e, e.hasHeaderRow && i === 0, t, n);
344
+ r += K(a, e, e.hasHeaderRow && i === 0, t, n);
332
345
  }
333
346
  return `<table style="width: 100%; border-collapse: collapse;">${r}</table>`;
334
347
  }
335
- function G(e, t, n, r, i) {
348
+ function K(e, t, n, r, i) {
336
349
  let a = "";
337
- for (let o of e.cells) a += K(o, t, n, r, i);
350
+ for (let o of e.cells) a += q(o, t, n, r, i);
338
351
  return `<tr>${a}</tr>`;
339
352
  }
340
- function K(e, t, n, r, i) {
353
+ function q(e, t, n, r, i) {
341
354
  let a = t.cellPadding, o = [`border: ${i}px solid ${r}`, `padding: ${a}px`];
342
- n && (o.push("font-weight: bold"), t.headerBackgroundColor && o.push(`background-color: ${C(t.headerBackgroundColor)}`));
343
- let s = o.join("; "), c = x(w(e.content)), l = n ? "th" : "td";
355
+ n && (o.push("font-weight: bold"), t.headerBackgroundColor && o.push(`background-color: ${k(t.headerBackgroundColor)}`));
356
+ let s = o.join("; "), c = D(A(e.content)), l = n ? "th" : "td";
344
357
  return `<${l} style="${s}">${c}</${l}>`;
345
358
  }
346
- function q(e, t) {
359
+ function se(e, t) {
347
360
  return e ? ` font-family="${t.resolveFontFamily(e)}"` : "";
348
361
  }
349
362
  //#endregion
350
363
  //#region ../renderer/src/renderers/custom.ts
351
- function ae(e, t) {
352
- if (k(e)) return "";
364
+ function ce(e, t) {
365
+ if (y(e)) return "";
353
366
  let n = t.customBlockHtml.get(e.id) ?? e.renderedHtml;
354
367
  if (!n || n === "") return "";
355
- let r = A(e);
356
- return `<mj-text padding="${D(e.styles.padding)}"${O(e.styles.backgroundColor, "container")}${r}>
368
+ let r = b(e);
369
+ return `<mj-text padding="${M(e.styles.padding)}"${N(e.styles.backgroundColor, "container")}${r}>
357
370
  ${n}
358
371
  </mj-text>`;
359
372
  }
@@ -396,11 +409,11 @@ function X(e, t) {
396
409
  }
397
410
  //#endregion
398
411
  //#region ../renderer/src/renderers/section.ts
399
- function oe(e, t, n) {
400
- if (k(e)) return "";
401
- let i = e.columns, a = J(i), o = Y(i, t.containerWidth), s = D(e.styles.padding), c = O(e.styles.backgroundColor, "native"), l = A(e), u = e.borderRadius && e.borderRadius > 0 ? ` border-radius="${e.borderRadius}px"` : "", d = e.children, f = [];
412
+ function le(e, t, n) {
413
+ if (y(e)) return "";
414
+ let i = e.columns, a = J(i), o = Y(i, t.containerWidth), s = M(e.styles.padding), c = N(e.styles.backgroundColor, "native"), l = b(e), u = e.borderRadius && e.borderRadius > 0 ? ` border-radius="${e.borderRadius}px"` : "", d = e.children, f = [];
402
415
  for (let e = 0; e < d.length; e++) {
403
- let i = d[e], s = a[e] ?? "100%", c = Math.floor(o[e] ?? t.containerWidth), l = se(i, t.allowHtmlBlocks).filter((e) => !r(e)), u = t.withContainerWidth(c), p = l.map((e) => X(e, n(e, u))).filter((e) => e !== "").join("\n");
416
+ let i = d[e], s = a[e] ?? "100%", c = Math.floor(o[e] ?? t.containerWidth), l = ue(i, t.allowHtmlBlocks).filter((e) => !r(e)), u = t.withContainerWidth(c), p = l.map((e) => X(e, n(e, u))).filter((e) => e !== "").join("\n");
404
417
  f.push(`<mj-column width="${s}">
405
418
  ${p === "" ? "<mj-text>&nbsp;</mj-text>" : p}
406
419
  </mj-column>`);
@@ -412,12 +425,12 @@ ${p}
412
425
  </mj-group>` : p}
413
426
  </mj-section>`;
414
427
  }
415
- function se(e, t) {
428
+ function ue(e, t) {
416
429
  return t ? e : e.filter((e) => e.type !== "html");
417
430
  }
418
431
  //#endregion
419
432
  //#region ../renderer/src/renderers/video.ts
420
- function ce(e, t) {
433
+ function de(e, t) {
421
434
  if (t) return t;
422
435
  if (!e) return null;
423
436
  for (let t of [/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([a-zA-Z0-9_-]{11})/, /youtube\.com\/shorts\/([a-zA-Z0-9_-]{11})/]) {
@@ -427,18 +440,18 @@ function ce(e, t) {
427
440
  let n = e.match(/vimeo\.com\/(?:video\/)?(\d+)/);
428
441
  return n ? `https://vumbnail.com/${n[1]}.jpg` : null;
429
442
  }
430
- function le(e, t) {
431
- if (k(e)) return "";
432
- let n = ce(e.url, e.thumbnailUrl);
443
+ function fe(e, t) {
444
+ if (y(e)) return "";
445
+ let n = de(e.url, e.thumbnailUrl);
433
446
  if (!n) return "";
434
- let r = D(e.styles.padding), i = O(e.styles.backgroundColor, "container"), a = e.width === "full" ? t.containerWidth + "px" : e.width + "px", o = A(e);
447
+ let r = M(e.styles.padding), i = N(e.styles.backgroundColor, "container"), a = e.width === "full" ? t.containerWidth + "px" : e.width + "px", o = b(e);
435
448
  return `<mj-image
436
- src="${S(n)}"
437
- alt="${S(e.alt)}"
449
+ src="${O(n)}"
450
+ alt="${O(e.alt)}"
438
451
  width="${a}"
439
452
  align="${e.align}"
440
453
  padding="${r}"
441
- href="${S(e.url)}"
454
+ href="${O(e.url)}"
442
455
  target="_blank"
443
456
  rel="noopener"${i}${o}
444
457
  />`;
@@ -446,13 +459,14 @@ function le(e, t) {
446
459
  //#endregion
447
460
  //#region ../renderer/src/renderers/index.ts
448
461
  function Z(p, m) {
449
- return r(p) ? oe(p, m, Z) : a(p) ? ee(p, m) : f(p) ? re(p, m) : t(p) ? ie(p, m) : s(p) ? M(p, m) : o(p) ? F(p, m) : l(p) ? I(p, m) : c(p) ? L(p, m) : u(p) ? R(p, m) : i(p) ? z(p, m) : d(p) ? U(p, m) : e(p) ? le(p, m) : n(p) ? ae(p, m) : "";
462
+ let h = m.blockRenderers[p.type];
463
+ return h ? h(p, m) : r(p) ? le(p, m, Z) : a(p) ? te(p, m) : f(p) ? ie(p, m) : t(p) ? ae(p, m) : s(p) ? oe(p, m) : o(p) ? I(p, m) : l(p) ? L(p, m) : c(p) ? R(p, m) : u(p) ? z(p, m) : i(p) ? B(p, m) : d(p) ? W(p, m) : e(p) ? fe(p, m) : n(p) ? ce(p, m) : y(p) ? "" : w(p);
450
464
  }
451
465
  //#endregion
452
466
  //#region ../renderer/src/index.ts
453
- async function ue(e, t) {
454
- let n = t?.customFonts ?? [], r = t?.defaultFallbackFont ?? "Arial, sans-serif", i = t?.allowHtmlBlocks ?? !0, a = me(t?.socialIconsBaseUrl ?? g), o = await _e(e, t?.renderCustomBlock), s = ve(e, t?.getCustomBlockStylesheet), c = new v(e.settings.width, n, r, i, o, a), l = ge(e.blocks, i), u = c.resolveFontFamily(e.settings.fontFamily), d = e.settings.backgroundColor, f = e.settings.textColor ? ` color="${S(e.settings.textColor)}"` : "", p = e.settings.linkColor ? C(e.settings.linkColor) : "inherit", m = e.settings.linkUnderline ? "underline" : "none", h = l.map((e) => de(e, c)).filter((e) => e !== "").join("\n"), _ = he(n), y = Q(e.settings.preheaderText);
455
- return `<mjml lang="${S(e.settings.locale)}">
467
+ async function pe(e, t) {
468
+ let n = t?.customFonts ?? [], r = t?.defaultFallbackFont ?? "Arial, sans-serif", i = t?.allowHtmlBlocks ?? !0, a = ge(t?.socialIconsBaseUrl ?? g), o = await be(e, t?.renderCustomBlock), s = xe(e, t?.getCustomBlockStylesheet), c = new v(e.settings.width, n, r, i, o, a, t?.blockRenderers ?? {}), l = ye(e.blocks, i), u = c.resolveFontFamily(e.settings.fontFamily), d = e.settings.backgroundColor, f = e.settings.textColor ? ` color="${O(e.settings.textColor)}"` : "", p = e.settings.linkColor ? k(e.settings.linkColor) : "inherit", m = e.settings.linkUnderline ? "underline" : "none", h = l.map((e) => me(e, c)).filter((e) => e !== "").join("\n"), _ = ve(n), y = _e(e.settings.preheaderText);
469
+ return `<mjml lang="${O(e.settings.locale)}">
456
470
  <mj-head>${y}
457
471
  <mj-attributes>
458
472
  <mj-all font-family="${u}" />
@@ -469,47 +483,47 @@ async function ue(e, t) {
469
483
  @media only screen and (min-width: 481px) {
470
484
  .tpl-hide-desktop { display: none !important; mso-hide: all !important; }
471
485
  }
472
- </mj-style>${ye(s)}
486
+ </mj-style>${Se(s)}
473
487
  </mj-head>
474
488
  <mj-body width="${c.containerWidth}px" background-color="${d}">
475
489
  ${h}
476
490
  </mj-body>
477
491
  </mjml>`;
478
492
  }
479
- function de(e, t) {
493
+ function me(e, t) {
480
494
  if (r(e)) {
481
495
  let n = Z(e, t);
482
- return X(e, e.wrapper && n !== "" ? fe(n, e.wrapper) : n);
496
+ return X(e, e.wrapper && n !== "" ? Q(n, e.wrapper) : n);
483
497
  }
484
- return X(e, pe(Z(e, t)));
498
+ return X(e, he(Z(e, t)));
485
499
  }
486
- function fe(e, t) {
487
- return `<mj-wrapper${O(t.backgroundColor, "native")}${` padding="${t.padding ? D(t.padding) : "0"}"`}${t.borderRadius && t.borderRadius > 0 ? ` border-radius="${t.borderRadius}px"` : ""}>
500
+ function Q(e, t) {
501
+ return `<mj-wrapper${N(t.backgroundColor, "native")}${` padding="${t.padding ? M(t.padding) : "0"}"`}${t.borderRadius && t.borderRadius > 0 ? ` border-radius="${t.borderRadius}px"` : ""}>
488
502
  ${e}
489
503
  </mj-wrapper>`;
490
504
  }
491
- function pe(e) {
505
+ function he(e) {
492
506
  return e === "" ? "" : `<mj-section>
493
507
  <mj-column>
494
508
  ${e}
495
509
  </mj-column>
496
510
  </mj-section>`;
497
511
  }
498
- function me(e) {
512
+ function ge(e) {
499
513
  return e.endsWith("/") ? e.slice(0, -1) : e;
500
514
  }
501
- function Q(e) {
515
+ function _e(e) {
502
516
  if (!e) return "";
503
517
  let t = e.trim();
504
- return t === "" ? "" : `\n <mj-preview>${x(t)}</mj-preview>`;
518
+ return t === "" ? "" : `\n <mj-preview>${D(t)}</mj-preview>`;
505
519
  }
506
- function he(e) {
507
- return e.length === 0 ? "" : e.map((e) => `\n <mj-font name="${S(e.name)}" href="${S(e.url)}" />`).join("");
520
+ function ve(e) {
521
+ return e.length === 0 ? "" : e.map((e) => `\n <mj-font name="${O(e.name)}" href="${O(e.url)}" />`).join("");
508
522
  }
509
- function ge(e, t) {
523
+ function ye(e, t) {
510
524
  return t ? e : e.filter((e) => e.type !== "html");
511
525
  }
512
- async function _e(e, t) {
526
+ async function be(e, t) {
513
527
  let n = /* @__PURE__ */ new Map();
514
528
  if (!t) return n;
515
529
  let r = [];
@@ -527,7 +541,7 @@ function $(e, t) {
527
541
  if (r(i)) for (let e of i.children) $(e, t);
528
542
  }
529
543
  }
530
- function ve(e, t) {
544
+ function xe(e, t) {
531
545
  if (!t) return [];
532
546
  let n = [];
533
547
  if ($(e.blocks, n), n.length === 0) return [];
@@ -542,10 +556,10 @@ function ve(e, t) {
542
556
  }
543
557
  return a;
544
558
  }
545
- function ye(e) {
559
+ function Se(e) {
546
560
  return e.length === 0 ? "" : e.map((e) => `\n <mj-style>\n${e}\n </mj-style>`).join("");
547
561
  }
548
562
  //#endregion
549
- export { g as DEFAULT_SOCIAL_ICONS_BASE_URL, v as RenderContext, w as convertMergeTagsToValues, S as escapeAttr, x as escapeHtml, A as getCssClassAttr, j as getCssClasses, J as getWidthPercentages, Y as getWidthPixels, k as isHiddenOnAll, Z as renderBlock, ue as renderToMjml, D as toPaddingString };
563
+ export { g as DEFAULT_SOCIAL_ICONS_BASE_URL, v as RenderContext, S as UNRENDERABLE_MARKER_PREFIX, A as convertMergeTagsToValues, O as escapeAttr, D as escapeHtml, b as getCssClassAttr, x as getCssClasses, J as getWidthPercentages, Y as getWidthPixels, y as isHiddenOnAll, Z as renderBlock, pe as renderToMjml, w as renderUnrenderableBlock, M as toPaddingString };
550
564
 
551
- //# sourceMappingURL=src-BwbnXShT.js.map
565
+ //# sourceMappingURL=src-Ct4Fsx3t.js.map