@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,21 +1,22 @@
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-B0xoGkDv.js";
2
2
  import { a as C, c as w, s as T } from "./runtime-dom.esm-bundler-GdMI8WqG.js";
3
- import { H as E, P as D, c as O } from "./useEditorCore-CuMMIfiS.js";
4
- import { B as k, P as A, f as j, h as M } from "./keys-CHPcp-Nz.js";
5
- import { t as N } from "./useI18n-D2L9Mkik.js";
6
- import { t as P } from "./chevron-down-j8GrdTyz.js";
7
- import { t as F } from "./chevron-up-BACyVhyC.js";
8
- import { t as I } from "./loader-circle-C-Z6kgI6.js";
9
- import { t as L } from "./TplModal-CykwWFhF.js";
10
- import { t as R } from "./SavedBlockPreviewCanvas-DXkGDYph.js";
3
+ import { H as E, P as D, c as O } from "./useEditorCore-DOrGex_t.js";
4
+ import { F as k, H as A, f as j, h as M } from "./keys-BVlG5Ozc.js";
5
+ import { t as ee } from "./useI18n-BhAejA-x.js";
6
+ import { t as te } from "./chevron-down-j8GrdTyz.js";
7
+ import { t as N } from "./chevron-up-BACyVhyC.js";
8
+ import { t as P } from "./loader-circle-C-Z6kgI6.js";
9
+ import { n as F } from "./emailFrameWidth-BmFCN2dp.js";
10
+ import { t as I } from "./TplModal-DPH4vV8M.js";
11
+ import { t as L } from "./BlockPreviewCanvas-B34aMhHe.js";
11
12
  //#region src/components/SavedBlockPreviewRow.vue?vue&type=script&setup=true&lang.ts
12
- var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relative tpl:min-w-0 tpl:flex-1" }, H = {
13
+ var R = ["data-block-id"], z = ["aria-label", "title"], B = { class: "tpl:relative tpl:min-w-0 tpl:flex-1" }, V = {
13
14
  key: 0,
14
15
  "data-testid": "saved-blocks-preview-fade",
15
16
  "aria-hidden": "true",
16
17
  class: "tpl:pointer-events-none tpl:absolute tpl:inset-x-0 tpl:bottom-0 tpl:h-10",
17
18
  style: { background: "linear-gradient(\n to bottom,\n transparent,\n var(--tpl-bg) 90%\n )" }
18
- }, U = ["aria-label", "aria-expanded"], W = 600, G = 240, K = /* @__PURE__ */ d({
19
+ }, H = ["aria-label", "aria-expanded"], U = 240, W = /* @__PURE__ */ d({
19
20
  __name: "SavedBlockPreviewRow",
20
21
  props: {
21
22
  block: {},
@@ -24,25 +25,25 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
24
25
  },
25
26
  emits: ["move"],
26
27
  setup(e, { emit: r }) {
27
- let i = e, c = r, { t: d, format: v } = N(), S = x(j, []), C = u(null), O = u(null), k = u(1), A = u(null), M = u(!1), I = null, L = y(() => A.value !== null && A.value > G), K = y(() => A.value === null ? null : M.value || !L.value ? A.value : G);
28
- function q() {
29
- let e = C.value, t = O.value;
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);
29
+ function J() {
30
+ let e = k.value, t = A.value;
30
31
  if (!e || !t) return;
31
32
  let n = e.clientWidth;
32
33
  if (n <= 0) return;
33
- let r = Math.min(1, n / W);
34
- k.value = r, A.value = t.offsetHeight * r;
34
+ let r = Math.min(1, n / O.value);
35
+ P.value = r, I.value = t.offsetHeight * r;
35
36
  }
36
37
  n(() => {
37
- q(), !(typeof ResizeObserver > "u") && (I = new ResizeObserver(() => q()), C.value && I.observe(C.value), O.value && I.observe(O.value));
38
+ J(), !(typeof ResizeObserver > "u") && (G = new ResizeObserver(() => J()), k.value && G.observe(k.value), A.value && G.observe(A.value));
38
39
  }), l(() => {
39
- I?.disconnect(), I = null;
40
+ G?.disconnect(), G = null;
40
41
  });
41
- let J = y(() => E(i.block, d, S)), Y = y(() => v(d.savedBlocks.reorderHandle, {
42
- block: J.value,
42
+ let Y = y(() => E(i.block, d, S)), X = y(() => v(d.savedBlocks.reorderHandle, {
43
+ block: Y.value,
43
44
  position: i.position,
44
45
  total: i.total
45
- })), X = y(() => v(M.value ? d.savedBlocks.collapsePreview : d.savedBlocks.expandPreview, { block: J.value }));
46
+ })), Z = y(() => v(W.value ? d.savedBlocks.collapsePreview : d.savedBlocks.expandPreview, { block: Y.value }));
46
47
  return (n, r) => (o(), p("div", {
47
48
  "data-testid": "saved-blocks-reorder-row",
48
49
  "data-block-id": e.block.id,
@@ -52,67 +53,67 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
52
53
  type: "button",
53
54
  "data-testid": "saved-blocks-reorder-handle",
54
55
  class: "tpl-saved-block-reorder-handle tpl:mt-0.5 tpl:shrink-0 tpl:cursor-grab tpl:rounded tpl:border-none tpl:bg-transparent tpl:p-0.5 tpl:text-[var(--tpl-text-dim)]",
55
- "aria-label": Y.value,
56
+ "aria-label": X.value,
56
57
  title: _(d).savedBlocks.reorderHint,
57
58
  onKeydown: [r[0] ||= T(w((e) => c("move", -1), ["prevent"]), ["up"]), r[1] ||= T(w((e) => c("move", 1), ["prevent"]), ["down"])]
58
59
  }, [m(_(D), {
59
60
  size: 14,
60
61
  "stroke-width": 1.5
61
- })], 40, B), f("div", V, [
62
+ })], 40, z), f("div", B, [
62
63
  f("div", {
63
64
  ref_key: "frameEl",
64
- ref: C,
65
+ ref: k,
65
66
  class: "tpl:overflow-hidden",
66
- style: t({ height: K.value === null ? void 0 : `${K.value}px` })
67
+ style: t({ height: q.value === null ? void 0 : `${q.value}px` })
67
68
  }, [f("div", {
68
69
  ref_key: "contentEl",
69
- ref: O,
70
+ ref: A,
70
71
  style: t({
71
- width: `${W}px`,
72
- transform: `scale(${k.value})`,
72
+ width: `${O.value}px`,
73
+ transform: `scale(${P.value})`,
73
74
  transformOrigin: "top left"
74
75
  })
75
- }, [m(R, { blocks: [e.block] }, null, 8, ["blocks"])], 4)], 4),
76
- L.value && !M.value ? (o(), p("div", H)) : b("", !0),
77
- L.value ? (o(), p("button", {
76
+ }, [m(L, { blocks: [e.block] }, null, 8, ["blocks"])], 4)], 4),
77
+ K.value && !W.value ? (o(), p("div", V)) : b("", !0),
78
+ K.value ? (o(), p("button", {
78
79
  key: 1,
79
80
  type: "button",
80
81
  "data-testid": "saved-blocks-preview-toggle",
81
82
  class: "tpl:absolute tpl:bottom-1 tpl:right-1 tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-0.5 tpl:rounded tpl:border tpl:px-1.5 tpl:py-0.5 tpl:text-[10px] tpl:font-medium tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-elevated)] tpl:text-[var(--tpl-text-muted)]",
82
- "aria-label": X.value,
83
- "aria-expanded": M.value,
84
- onClick: r[2] ||= (e) => M.value = !M.value
85
- }, [(o(), h(a(M.value ? _(F) : _(P)), {
83
+ "aria-label": Z.value,
84
+ "aria-expanded": W.value,
85
+ onClick: r[2] ||= (e) => W.value = !W.value
86
+ }, [(o(), h(a(W.value ? _(N) : _(te)), {
86
87
  size: 11,
87
88
  "stroke-width": 2
88
- })), g(" " + s(M.value ? _(d).savedBlocks.collapse : _(d).savedBlocks.expand), 1)], 8, U)) : b("", !0)
89
- ])], 8, z));
89
+ })), g(" " + s(W.value ? _(d).savedBlocks.collapse : _(d).savedBlocks.expand), 1)], 8, H)) : b("", !0)
90
+ ])], 8, R));
90
91
  }
91
- }), q = ["aria-busy"], J = {
92
+ }), G = ["aria-busy"], K = {
92
93
  id: "tpl-save-block-title",
93
94
  class: "tpl:mb-4 tpl:shrink-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
94
- }, Y = { class: "tpl:mb-3 tpl:shrink-0" }, X = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, ee = ["placeholder", "disabled"], te = { class: "tpl:mb-3 tpl:shrink-0" }, ne = {
95
+ }, q = { class: "tpl:mb-3 tpl:shrink-0" }, J = { class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, Y = ["placeholder", "disabled"], X = { class: "tpl:mb-3 tpl:shrink-0" }, Z = {
95
96
  for: "tpl-save-block-category",
96
97
  class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]"
97
- }, re = ["placeholder", "disabled"], ie = { id: "tpl-saved-block-categories" }, ae = ["value"], oe = {
98
+ }, ne = ["placeholder", "disabled"], re = { id: "tpl-saved-block-categories" }, ie = ["value"], ae = {
98
99
  "data-testid": "saved-blocks-save-summary",
99
100
  class: "tpl:mb-1.5 tpl:shrink-0 tpl:text-xs tpl:text-[var(--tpl-text-muted)]"
100
- }, se = { class: "tpl:text-[var(--tpl-text-dim)]" }, ce = {
101
+ }, oe = { class: "tpl:text-[var(--tpl-text-dim)]" }, se = {
101
102
  key: 0,
102
103
  class: "tpl:mb-1.5 tpl:shrink-0 tpl:text-[11px] tpl:text-[var(--tpl-text-dim)]"
103
- }, le = {
104
+ }, ce = {
104
105
  class: "tpl-sr-only",
105
106
  role: "status",
106
107
  "aria-live": "polite",
107
108
  "aria-atomic": "true"
108
- }, ue = {
109
+ }, le = {
109
110
  key: 1,
110
111
  role: "alert",
111
112
  class: "tpl:mb-3 tpl:shrink-0 tpl:text-xs tpl:text-[var(--tpl-danger)]"
112
- }, de = { class: "tpl:flex tpl:shrink-0 tpl:justify-end tpl:gap-2" }, fe = ["disabled"], pe = ["disabled"], me = {
113
+ }, ue = { class: "tpl:flex tpl:shrink-0 tpl:justify-end tpl:gap-2" }, de = ["disabled"], fe = ["disabled"], pe = {
113
114
  key: 0,
114
115
  class: "tpl:flex tpl:items-center tpl:gap-1.5"
115
- }, he = { key: 1 }, Z = /* @__PURE__ */ d({
116
+ }, me = { key: 1 }, Q = /* @__PURE__ */ d({
116
117
  __name: "SaveBlockDialog",
117
118
  props: {
118
119
  visible: { type: Boolean },
@@ -120,55 +121,55 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
120
121
  },
121
122
  emits: ["close", "saved"],
122
123
  setup(t, { emit: n }) {
123
- let a = t, l = n, { t: d, format: w } = N(), T = k(M, "SaveBlockDialog"), D = k(A, "SaveBlockDialog"), P = x(j, []), F = u(""), R = u(""), z = u(!1), B = u(null), V = u(""), H = u([]), U = y(() => {
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
125
  let e = new Map(T.content.value.blocks.map((e) => [e.id, e]));
125
- return H.value.map((t) => e.get(t)).filter((e) => e !== void 0);
126
- }), W = y({
127
- get: () => U.value,
126
+ return B.value.map((t) => e.get(t)).filter((e) => e !== void 0);
127
+ }), H = y({
128
+ get: () => V.value,
128
129
  set: (e) => {
129
- H.value = e.map((e) => e.id);
130
+ B.value = e.map((e) => e.id);
130
131
  }
131
132
  });
132
- function G(e, t) {
133
- let n = U.value.map((e) => e.id), r = n.indexOf(e), i = r + t;
133
+ function U(e, t) {
134
+ let n = V.value.map((e) => e.id), r = n.indexOf(e), i = r + t;
134
135
  if (r === -1 || i < 0 || i >= n.length) return;
135
- [n[r], n[i]] = [n[i], n[r]], H.value = n;
136
- let a = U.value[i];
137
- V.value = a ? w(d.savedBlocks.reorderAnnouncement, {
138
- block: Z(a),
136
+ [n[r], n[i]] = [n[i], n[r]], B.value = n;
137
+ let a = V.value[i];
138
+ z.value = a ? w(d.savedBlocks.reorderAnnouncement, {
139
+ block: Q(a),
139
140
  position: i + 1,
140
141
  total: n.length
141
142
  }) : "";
142
143
  }
143
- function Z(e) {
144
- return E(e, d, P);
144
+ function Q(e) {
145
+ return E(e, d, te);
145
146
  }
146
- let ge = y(() => U.value.map(Z).join(", "));
147
+ let he = y(() => V.value.map(Q).join(", "));
147
148
  i(() => a.visible, (e) => {
148
- e && (F.value = "", R.value = "", B.value = null, V.value = "", H.value = [...a.pickedIds]);
149
+ e && (N.value = "", F.value = "", R.value = null, z.value = "", B.value = [...a.pickedIds]);
149
150
  }, { immediate: !0 });
150
- let Q = y(() => F.value.trim().length > 0 && U.value.length > 0 && !z.value);
151
+ let ge = y(() => N.value.trim().length > 0 && V.value.length > 0 && !L.value);
151
152
  async function _e() {
152
- if (!Q.value) return;
153
- let e = U.value;
153
+ if (!ge.value) return;
154
+ let e = V.value;
154
155
  if (e.length !== 0) {
155
- z.value = !0, B.value = null;
156
+ L.value = !0, R.value = null;
156
157
  try {
157
- await D.create(F.value.trim(), e, R.value.trim() || void 0), l("saved"), l("close");
158
+ await D.create(N.value.trim(), e, F.value.trim() || void 0), l("saved"), l("close");
158
159
  } catch (e) {
159
- B.value = e.message;
160
+ R.value = e.message;
160
161
  } finally {
161
- z.value = !1;
162
+ L.value = !1;
162
163
  }
163
164
  }
164
165
  }
165
166
  function $() {
166
- z.value || l("close");
167
+ L.value || l("close");
167
168
  }
168
169
  function ve(e) {
169
170
  e.key === "Enter" && !e.shiftKey && (e.preventDefault(), _e()), e.key === "Escape" && $();
170
171
  }
171
- return (n, i) => (o(), h(L, {
172
+ return (n, i) => (o(), h(I, {
172
173
  visible: t.visible,
173
174
  onClose: $,
174
175
  onKeydown: ve
@@ -176,7 +177,7 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
176
177
  default: c(() => [f("div", {
177
178
  role: "dialog",
178
179
  "aria-modal": "true",
179
- "aria-busy": z.value,
180
+ "aria-busy": L.value,
180
181
  "aria-labelledby": "tpl-save-block-title",
181
182
  class: "tpl-scale-in tpl:mx-4 tpl:flex tpl:w-full tpl:max-w-2xl tpl:flex-col tpl:rounded-[var(--tpl-radius-lg)] tpl:p-5",
182
183
  style: {
@@ -185,37 +186,37 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
185
186
  "max-height": "90vh"
186
187
  }
187
188
  }, [
188
- f("h3", J, s(_(d).savedBlocks.saveAsBlock), 1),
189
- f("div", Y, [f("label", X, s(_(d).savedBlocks.name), 1), S(f("input", {
190
- "onUpdate:modelValue": i[0] ||= (e) => F.value = e,
189
+ f("h3", K, s(_(d).savedBlocks.saveAsBlock), 1),
190
+ f("div", q, [f("label", J, s(_(d).savedBlocks.name), 1), S(f("input", {
191
+ "onUpdate:modelValue": i[0] ||= (e) => N.value = e,
191
192
  type: "text",
192
193
  "data-testid": "saved-blocks-name-input",
193
194
  placeholder: _(d).savedBlocks.namePlaceholder,
194
195
  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)]",
195
- disabled: z.value
196
- }, null, 8, ee), [[C, F.value]])]),
197
- f("div", te, [
198
- f("label", ne, s(_(d).savedBlocks.category), 1),
196
+ disabled: L.value
197
+ }, null, 8, Y), [[C, N.value]])]),
198
+ f("div", X, [
199
+ f("label", Z, s(_(d).savedBlocks.category), 1),
199
200
  S(f("input", {
200
201
  id: "tpl-save-block-category",
201
- "onUpdate:modelValue": i[1] ||= (e) => R.value = e,
202
+ "onUpdate:modelValue": i[1] ||= (e) => F.value = e,
202
203
  type: "text",
203
204
  "data-testid": "saved-blocks-category-input",
204
205
  list: "tpl-saved-block-categories",
205
206
  placeholder: _(d).savedBlocks.categoryPlaceholder,
206
207
  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)]",
207
- disabled: z.value
208
- }, null, 8, re), [[C, R.value]]),
209
- f("datalist", ie, [(o(!0), p(v, null, e(_(D).categories.value, (e) => (o(), p("option", {
208
+ disabled: L.value
209
+ }, null, 8, ne), [[C, F.value]]),
210
+ f("datalist", re, [(o(!0), p(v, null, e(_(D).categories.value, (e) => (o(), p("option", {
210
211
  key: e,
211
212
  value: e
212
- }, null, 8, ae))), 128))])
213
+ }, null, 8, ie))), 128))])
213
214
  ]),
214
- f("p", oe, [g(s(_(w)(_(d).savedBlocks.savingCount, { count: U.value.length })) + " ", 1), f("span", se, s(ge.value), 1)]),
215
- U.value.length > 1 ? (o(), p("p", ce, s(_(d).savedBlocks.reorderHint), 1)) : b("", !0),
215
+ f("p", ae, [g(s(_(w)(_(d).savedBlocks.savingCount, { count: V.value.length })) + " ", 1), f("span", oe, s(he.value), 1)]),
216
+ V.value.length > 1 ? (o(), p("p", se, s(_(d).savedBlocks.reorderHint), 1)) : b("", !0),
216
217
  m(_(O), {
217
- modelValue: W.value,
218
- "onUpdate:modelValue": i[2] ||= (e) => W.value = e,
218
+ modelValue: H.value,
219
+ "onUpdate:modelValue": i[2] ||= (e) => H.value = e,
219
220
  "data-testid": "saved-blocks-reorder-list",
220
221
  animation: 150,
221
222
  "ghost-class": "tpl-ghost",
@@ -224,12 +225,12 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
224
225
  "force-fallback": !0,
225
226
  class: "tpl:mb-4 tpl:flex tpl:min-h-0 tpl:flex-1 tpl:flex-col tpl:gap-1.5 tpl:overflow-y-auto"
226
227
  }, {
227
- default: c(() => [(o(!0), p(v, null, e(W.value, (e, t) => (o(), h(K, {
228
+ default: c(() => [(o(!0), p(v, null, e(H.value, (e, t) => (o(), h(W, {
228
229
  key: e.id,
229
230
  block: e,
230
231
  position: t + 1,
231
- total: W.value.length,
232
- onMove: (t) => G(e.id, t)
232
+ total: H.value.length,
233
+ onMove: (t) => U(e.id, t)
233
234
  }, null, 8, [
234
235
  "block",
235
236
  "position",
@@ -238,27 +239,27 @@ var z = ["data-block-id"], B = ["aria-label", "title"], V = { class: "tpl:relati
238
239
  ]))), 128))]),
239
240
  _: 1
240
241
  }, 8, ["modelValue"]),
241
- f("div", le, s(V.value), 1),
242
- B.value ? (o(), p("p", ue, s(B.value), 1)) : b("", !0),
243
- f("div", de, [f("button", {
242
+ f("div", ce, s(z.value), 1),
243
+ R.value ? (o(), p("p", le, s(R.value), 1)) : b("", !0),
244
+ f("div", ue, [f("button", {
244
245
  type: "button",
245
- class: r(["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": z.value }]),
246
- disabled: z.value,
246
+ class: r(["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": L.value }]),
247
+ disabled: L.value,
247
248
  onClick: $
248
- }, s(_(d).savedBlocks.cancel), 11, fe), f("button", {
249
+ }, s(_(d).savedBlocks.cancel), 11, de), f("button", {
249
250
  type: "button",
250
251
  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)]",
251
- disabled: !Q.value,
252
+ disabled: !ge.value,
252
253
  onClick: _e
253
- }, [z.value ? (o(), p("span", me, [m(_(I), {
254
+ }, [L.value ? (o(), p("span", pe, [m(_(P), {
254
255
  class: "tpl:animate-spin",
255
256
  size: 12,
256
257
  "stroke-width": 2
257
- }), g(" " + s(_(d).savedBlocks.saving), 1)])) : (o(), p("span", he, s(_(d).savedBlocks.save), 1))], 8, pe)])
258
- ], 8, q)]),
258
+ }), g(" " + s(_(d).savedBlocks.saving), 1)])) : (o(), p("span", me, s(_(d).savedBlocks.save), 1))], 8, fe)])
259
+ ], 8, G)]),
259
260
  _: 1
260
261
  }, 8, ["visible"]));
261
262
  }
262
263
  });
263
264
  //#endregion
264
- export { Z as default };
265
+ export { Q as default };
@@ -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-B0xoGkDv.js";
2
2
  import { a as v, c as y, i as b, s as x } from "./runtime-dom.esm-bundler-GdMI8WqG.js";
3
- import "./useEditorCore-CuMMIfiS.js";
4
- import { B as S, P as re, h as ie } from "./keys-CHPcp-Nz.js";
5
- import { t as ae } from "./useI18n-D2L9Mkik.js";
6
- import { n as oe, r as C, t as w } from "./blockTypeIcons-CpKkI47V.js";
3
+ import "./useEditorCore-DOrGex_t.js";
4
+ import { F as re, H as S, h as ie } from "./keys-BVlG5Ozc.js";
5
+ import { t as ae } from "./useI18n-BhAejA-x.js";
6
+ import { n as oe, r as C, t as w } from "./blockTypeIcons-Wzd7W_2x.js";
7
7
  import { t as se } from "./pencil-DdwmkKLb.js";
8
8
  import { t as ce } from "./trash-2-DE8CmxAG.js";
9
9
  import { t as le } from "./x-CkD6A1iB.js";
10
- import { t as ue } from "./TplModal-CykwWFhF.js";
10
+ import { t as ue } from "./TplModal-DPH4vV8M.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("./SavedBlockPreviewCanvas-DXkGDYph.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-B34aMhHe.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-C1FTJP-I.js")), u = r(() => import("./SaveBlockDialog-B_5KBaXW.js")), d = r(() => import("./SavedBlocksBrowserModal-DoJBoYPk.js"));
8
+ let c = t, l = r(() => import("./SavedBlocksPickBar-Dlhipmob.js")), u = r(() => import("./SaveBlockDialog-BDDFbAWF.js")), d = r(() => import("./SavedBlocksBrowserModal-Djik_fJh.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-B0xoGkDv.js";
2
- import { R as c } from "./useEditorCore-CuMMIfiS.js";
3
- import { t as l } from "./useI18n-D2L9Mkik.js";
2
+ import { R as c } from "./useEditorCore-DOrGex_t.js";
3
+ import { t as l } from "./useI18n-BhAejA-x.js";
4
4
  import { t as u } from "./x-CkD6A1iB.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-B0xoGkDv.js";
2
2
  import { c as h, t as g } from "./runtime-dom.esm-bundler-GdMI8WqG.js";
3
- import "./useEditorCore-CuMMIfiS.js";
4
- import { s as _ } from "./usePopoverPosition-BO2LNy5n.js";
5
- import { t as v } from "./useI18n-D2L9Mkik.js";
3
+ import "./useEditorCore-DOrGex_t.js";
4
+ import { s as _ } from "./usePopoverPosition-vjKJaqJf.js";
5
+ import { t as v } from "./useI18n-BhAejA-x.js";
6
6
  import { t as y } from "./createLucideIcon-JWHwTI6N.js";
7
7
  import { t as b } from "./chevron-down-j8GrdTyz.js";
8
8
  import { t as x } from "./clock-BzKLLW5L.js";
9
9
  import { t as S } from "./loader-circle-C-Z6kgI6.js";
10
- import { n as C } from "./useCloudI18n-BmiygEM4.js";
10
+ import { n as C } from "./useCloudI18n-DGr3b2SX.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-B0xoGkDv.js";
2
2
  import { t as ne } from "./runtime-dom.esm-bundler-GdMI8WqG.js";
3
- import { B as _, F as re, T as ie, h as v } from "./keys-CHPcp-Nz.js";
3
+ import { H as _, I as re, T as ie, h as v } from "./keys-BVlG5Ozc.js";
4
4
  import { t as y } from "./createLucideIcon-JWHwTI6N.js";
5
5
  import { t as b } from "./chevron-down-j8GrdTyz.js";
6
6
  import { t as x } from "./circle-alert-CgtE46ND.js";
@@ -13,7 +13,7 @@ import { t as oe } from "./triangle-alert-Djg6IG8N.js";
13
13
  import { t as se } from "./x-CkD6A1iB.js";
14
14
  import { t as ce } from "./LoadingTrack-KIcREPlS.js";
15
15
  import { t as D } from "./_plugin-vue_export-helper-B3ysoDQm.js";
16
- import { n as le } from "./useCloudI18n-BmiygEM4.js";
16
+ import { n as le } from "./useCloudI18n-DGr3b2SX.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",
@@ -0,0 +1,174 @@
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-B0xoGkDv.js";
2
+ import { a as ne, i as re } from "./runtime-dom.esm-bundler-GdMI8WqG.js";
3
+ import { j as ie } from "./dist-DPHqs0Yh.js";
4
+ import { O as ae, T as oe, h as se } from "./keys-BVlG5Ozc.js";
5
+ import { t as ce } from "./useI18n-BhAejA-x.js";
6
+ import { t as le } from "./check-BpQDKiPz.js";
7
+ import { t as ue } from "./loader-circle-C-Z6kgI6.js";
8
+ import { n as de, t as fe } from "./MergeTagModeToggle-C3V2xGAg.js";
9
+ import { t as pe } from "./TplModal-DPH4vV8M.js";
10
+ import { t as me } from "./BlockPreviewCanvas-B34aMhHe.js";
11
+ //#region src/utils/validateEmailShape.ts
12
+ var _ = /[,;<>()[\]\\"'`|/?#@!$%^&*+=~{}]/;
13
+ function v(e) {
14
+ let t = e.trim();
15
+ if (t.length === 0 || /\s/.test(t)) return !1;
16
+ let n = t.split("@");
17
+ if (n.length !== 2) return !1;
18
+ let [r, i] = n;
19
+ if (r.length === 0 || _.test(i)) return !1;
20
+ let a = i.indexOf(".");
21
+ return a > 0 && a < i.length - 1;
22
+ }
23
+ //#endregion
24
+ //#region src/components/TestEmailModal.vue?vue&type=script&setup=true&lang.ts
25
+ var y = ["aria-busy"], b = {
26
+ id: "tpl-test-email-title",
27
+ class: "tpl:mb-4 tpl:shrink-0 tpl:text-sm tpl:font-semibold tpl:text-[var(--tpl-text)]"
28
+ }, x = { class: "tpl:mb-3 tpl:shrink-0" }, S = {
29
+ for: "tpl-test-email-recipient",
30
+ class: "tpl:mb-1.5 tpl:block tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]"
31
+ }, C = ["value"], w = ["disabled"], T = ["value"], E = ["placeholder", "disabled"], D = {
32
+ key: 3,
33
+ class: "tpl:mt-1.5 tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
34
+ }, O = { class: "tpl:mb-2 tpl:shrink-0" }, k = { class: "tpl:flex tpl:flex-wrap tpl:items-center tpl:justify-between tpl:gap-2" }, A = { class: "tpl:text-sm tpl:font-medium tpl:text-[var(--tpl-text-muted)]" }, j = { class: "tpl:flex tpl:items-center tpl:gap-2" }, M = {
35
+ "data-testid": "test-email-preview-hint",
36
+ class: "tpl:mt-1 tpl:text-xs tpl:text-[var(--tpl-text-dim)]"
37
+ }, N = {
38
+ id: "tpl-test-email-preview",
39
+ "data-testid": "test-email-preview",
40
+ 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
+ }, P = {
42
+ key: 0,
43
+ role: "status",
44
+ "data-testid": "test-email-success",
45
+ 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 = {
47
+ key: 1,
48
+ role: "alert",
49
+ "data-testid": "test-email-error",
50
+ 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 = {
52
+ key: 0,
53
+ class: "tpl:flex tpl:items-center tpl:gap-1.5"
54
+ }, ge = { key: 1 }, z = /* @__PURE__ */ s({
55
+ __name: "TestEmailModal",
56
+ props: {
57
+ visible: { type: Boolean },
58
+ allowedRecipients: {},
59
+ defaultRecipient: {},
60
+ isSending: { type: Boolean },
61
+ justSent: { type: Boolean },
62
+ error: {}
63
+ },
64
+ 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,
68
+ set: (e) => {
69
+ W ? W.value = e : G.value = e;
70
+ }
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] ?? "");
74
+ }, { 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);
76
+ function Q() {
77
+ Y.value && B("send", H.value.trim());
78
+ }
79
+ function $() {
80
+ z.isSending || B("close");
81
+ }
82
+ function be(e) {
83
+ e.key === "Enter" && !e.shiftKey && (e.preventDefault(), Q()), e.key === "Escape" && $();
84
+ }
85
+ return (n, o) => (r(), ee(pe, {
86
+ visible: s.visible,
87
+ onClose: $,
88
+ onKeydown: be
89
+ }, {
90
+ default: a(() => [c("div", {
91
+ role: "dialog",
92
+ "aria-modal": "true",
93
+ "aria-busy": s.isSending,
94
+ "aria-labelledby": "tpl-test-email-title",
95
+ class: "tpl-scale-in tpl:mx-4 tpl:flex tpl:max-h-[90vh] tpl:w-full tpl:max-w-2xl tpl:flex-col tpl:rounded-[var(--tpl-radius-lg)] tpl:p-5",
96
+ style: {
97
+ "background-color": "var(--tpl-bg-elevated)",
98
+ "box-shadow": "var(--tpl-shadow-xl)"
99
+ }
100
+ }, [
101
+ c("h3", b, i(f(V).testEmail.title), 1),
102
+ c("div", x, [
103
+ c("label", S, i(f(V).testEmail.recipientLabel), 1),
104
+ ye.value ? (r(), l("input", {
105
+ key: 0,
106
+ id: "tpl-test-email-recipient",
107
+ type: "text",
108
+ value: H.value,
109
+ disabled: "",
110
+ "data-testid": "test-email-recipient",
111
+ 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", {
113
+ key: 1,
114
+ id: "tpl-test-email-recipient",
115
+ "onUpdate:modelValue": o[0] ||= (e) => H.value = e,
116
+ disabled: s.isSending || s.justSent,
117
+ "data-testid": "test-email-recipient",
118
+ 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", {
120
+ key: e,
121
+ value: e
122
+ }, i(e), 9, T))), 128))], 8, w)), [[re, H.value]]) : g((r(), l("input", {
123
+ key: 2,
124
+ id: "tpl-test-email-recipient",
125
+ "onUpdate:modelValue": o[1] ||= (e) => H.value = e,
126
+ type: "email",
127
+ autocomplete: "email",
128
+ spellcheck: "false",
129
+ placeholder: f(V).testEmail.recipientPlaceholder,
130
+ disabled: s.isSending || s.justSent,
131
+ "data-testid": "test-email-recipient",
132
+ 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)
135
+ ]),
136
+ c("div", O, [c("div", k, [c("span", A, i(f(V).testEmail.preview), 1), c("div", j, [u(fe, {
137
+ "sample-mode": K.value,
138
+ 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), {
148
+ size: 13,
149
+ "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", {
152
+ type: "button",
153
+ "data-testid": "test-email-cancel",
154
+ 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
+ disabled: s.isSending,
156
+ onClick: $
157
+ }, i(f(V).testEmail.cancel), 11, L), c("button", {
158
+ type: "button",
159
+ "data-testid": "test-email-send",
160
+ 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
+ disabled: !Y.value,
162
+ onClick: Q
163
+ }, [s.isSending ? (r(), l("span", R, [u(f(ue), {
164
+ class: "tpl:animate-spin",
165
+ size: 12,
166
+ "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)]),
169
+ _: 1
170
+ }, 8, ["visible"]));
171
+ }
172
+ });
173
+ //#endregion
174
+ export { z as default };