@templatical/editor 0.37.0 → 0.39.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 (223) hide show
  1. package/dist/{AiChatSidebar-tu4eLcf_.js → AiChatSidebar-jVlXXND3.js} +66 -66
  2. package/dist/{AiFeatureMenu-BF0i0vA4.js → AiFeatureMenu-C1HCntyQ.js} +6 -6
  3. package/dist/{BlockIssueBadge-DT-FqKeC.js → BlockIssueBadge-JhNgcUmZ.js} +4 -4
  4. package/dist/{BlockPreviewCanvas-DDCmMram.js → BlockPreviewCanvas-C_rA5LJN.js} +2 -2
  5. package/dist/{CloudHeaderExtras-NPhudovT.js → CloudHeaderExtras-DvYyNsPB.js} +3 -3
  6. package/dist/{CloudPanels-Iwnky0iA.js → CloudPanels-CDPhPVdd.js} +5 -5
  7. package/dist/{CollaboratorBar-DAITu0hz.js → CollaboratorBar-Co9UPoB0.js} +3 -3
  8. package/dist/{ColorPicker-BqlZ_TqG.js → ColorPicker-BTtN94te.js} +6 -6
  9. package/dist/{CommentsPanel-CDvgmWP1.js → CommentsPanel-CRcVN9Ri.js} +1 -1
  10. package/dist/{CommentsSidebar-X_xqM3dR.js → CommentsSidebar-gDU977br.js} +12 -12
  11. package/dist/{CountdownBlock-ZFJIdbP6.js → CountdownBlock-CEzrfe5R.js} +1 -1
  12. package/dist/{CountdownToolbar-DBFoG3a6.js → CountdownToolbar-B00zhkNJ.js} +2 -2
  13. package/dist/{DesignReferenceSidebar--QtXjLrw.js → DesignReferenceSidebar-DedivZZl.js} +7 -7
  14. package/dist/{IssuesPanel-BLbNFMSX.js → IssuesPanel-C-PjdmAV.js} +7 -7
  15. package/dist/{MediaPanels-CMTAhDXB.js → MediaPanels-BpQNY8YX.js} +1 -1
  16. package/dist/{MergeTagInput-BEjzj4Iu.js → MergeTagInput-Cw1RoMly.js} +201 -149
  17. package/dist/{MergeTagModeToggle-DKN6ihI5.js → MergeTagModeToggle-DGuzSAdX.js} +35 -35
  18. package/dist/{MergeTagSuggestion-DKoLEeoj.js → MergeTagSuggestion-BXO3UIXW.js} +2 -2
  19. package/dist/{ParagraphEditor-1E9yzOfk.js → ParagraphEditor-jMKLLTa8.js} +38 -38
  20. package/dist/{RestoreVersionDialog-BMGUkcd8.js → RestoreVersionDialog-DG1jUdBM.js} +4 -4
  21. package/dist/{RichTextEditorContent-BnxbQUV9.js → RichTextEditorContent-JrNEg0kv.js} +8 -8
  22. package/dist/{SaveBlockDialog-WKASpCCT.js → SaveBlockDialog-C0KC-OKs.js} +8 -8
  23. package/dist/{SavedBlocksBrowserModal-AYEXTMtQ.js → SavedBlocksBrowserModal-zyOiRgWZ.js} +10 -10
  24. package/dist/{SavedBlocksPanels-D_CpacTl.js → SavedBlocksPanels-epMd799w.js} +1 -1
  25. package/dist/{SavedBlocksPickBar-BHMwg-1G.js → SavedBlocksPickBar-CJqqQ3jd.js} +3 -3
  26. package/dist/{TemplateScoringPanel-CSin43YM.js → TemplateScoringPanel-m2FOeaai.js} +103 -103
  27. package/dist/{TestEmailModal-BxizsRCd.js → TestEmailModal-D58kYkMV.js} +54 -54
  28. package/dist/{TestEmailPanel-vd2e5HzT.js → TestEmailPanel-BmFVBIQt.js} +1 -1
  29. package/dist/{TitleEditor-CLJ68Ty4.js → TitleEditor-C4BGPXnf.js} +13 -13
  30. package/dist/{TplModal-Q9fDgS1M.js → TplModal-BIDJw4Kj.js} +3 -3
  31. package/dist/{VersionHistoryMenu-eGYVhM4H.js → VersionHistoryMenu-dt_aZQfh.js} +7 -7
  32. package/dist/{VersionHistoryPanels-C7Ntrrfq.js → VersionHistoryPanels-B_5SBRrr.js} +1 -1
  33. package/dist/{VersionPreviewBanner-BbQXnR0M.js → VersionPreviewBanner-DttvOkwd.js} +2 -2
  34. package/dist/{blockTypeIcons-5qD4bB76.js → blockTypeIcons-CzTizYmK.js} +2 -2
  35. package/dist/bundle-stats.json +8 -8
  36. package/dist/{cdn/chunks/ca-D9S-UCfZ.js → ca-YlPDhElv.js} +5 -3
  37. package/dist/cdn/chunks/{AiChatSidebar-dyqqHAcI.js → AiChatSidebar-DeZl9Tk0.js} +54 -54
  38. package/dist/cdn/chunks/AiChatSidebar-DeZl9Tk0.js.map +1 -0
  39. package/dist/cdn/chunks/{AiFeatureMenu-BjVMwhW8.js → AiFeatureMenu-Bv8jMu9p.js} +5 -5
  40. package/dist/cdn/chunks/{AiFeatureMenu-BjVMwhW8.js.map → AiFeatureMenu-Bv8jMu9p.js.map} +1 -1
  41. package/dist/cdn/chunks/{BlockIssueBadge-BJ__oEtm.js → BlockIssueBadge-B6PpoOPv.js} +4 -4
  42. package/dist/cdn/chunks/{BlockIssueBadge-BJ__oEtm.js.map → BlockIssueBadge-B6PpoOPv.js.map} +1 -1
  43. package/dist/cdn/chunks/{BlockPreviewCanvas-B5f26eLE.js → BlockPreviewCanvas-DfEtDosD.js} +3 -3
  44. package/dist/cdn/chunks/{BlockPreviewCanvas-B5f26eLE.js.map → BlockPreviewCanvas-DfEtDosD.js.map} +1 -1
  45. package/dist/cdn/chunks/{CloudHeaderExtras-D5P5IEKA.js → CloudHeaderExtras-Hk98ub-C.js} +4 -4
  46. package/dist/cdn/chunks/{CloudHeaderExtras-D5P5IEKA.js.map → CloudHeaderExtras-Hk98ub-C.js.map} +1 -1
  47. package/dist/cdn/chunks/{CloudPanels-DkmR05nB.js → CloudPanels-Ba3GLmvF.js} +5 -5
  48. package/dist/cdn/chunks/{CloudPanels-DkmR05nB.js.map → CloudPanels-Ba3GLmvF.js.map} +1 -1
  49. package/dist/cdn/chunks/{CollaboratorBar-Yn7KSpt4.js → CollaboratorBar-D2dCQ9gg.js} +4 -4
  50. package/dist/cdn/chunks/{CollaboratorBar-Yn7KSpt4.js.map → CollaboratorBar-D2dCQ9gg.js.map} +1 -1
  51. package/dist/cdn/chunks/{ColorPicker-LcrzgMoW.js → ColorPicker-BaonTCAQ.js} +7 -7
  52. package/dist/cdn/chunks/{ColorPicker-LcrzgMoW.js.map → ColorPicker-BaonTCAQ.js.map} +1 -1
  53. package/dist/cdn/chunks/{CommentsPanel-CntwwocI.js → CommentsPanel-CV2HveQk.js} +2 -2
  54. package/dist/cdn/chunks/{CommentsPanel-CntwwocI.js.map → CommentsPanel-CV2HveQk.js.map} +1 -1
  55. package/dist/cdn/chunks/{CommentsSidebar-BLDKnKy7.js → CommentsSidebar-Dok_vaRc.js} +4 -4
  56. package/dist/cdn/chunks/{CommentsSidebar-BLDKnKy7.js.map → CommentsSidebar-Dok_vaRc.js.map} +1 -1
  57. package/dist/cdn/chunks/{CountdownBlock-B4AfqJwb.js → CountdownBlock-DGDl3ota.js} +2 -2
  58. package/dist/cdn/chunks/{CountdownBlock-B4AfqJwb.js.map → CountdownBlock-DGDl3ota.js.map} +1 -1
  59. package/dist/cdn/chunks/{CountdownToolbar-CA1dpuOI.js → CountdownToolbar-B9Rin64t.js} +3 -3
  60. package/dist/cdn/chunks/{CountdownToolbar-CA1dpuOI.js.map → CountdownToolbar-B9Rin64t.js.map} +1 -1
  61. package/dist/cdn/chunks/{DesignReferenceSidebar-D1Y9Hswe.js → DesignReferenceSidebar-eCuTFak2.js} +4 -4
  62. package/dist/cdn/chunks/{DesignReferenceSidebar-D1Y9Hswe.js.map → DesignReferenceSidebar-eCuTFak2.js.map} +1 -1
  63. package/dist/cdn/chunks/{IssuesPanel-Q62LTqvd.js → IssuesPanel-CP7FEzw7.js} +5 -5
  64. package/dist/cdn/chunks/{IssuesPanel-Q62LTqvd.js.map → IssuesPanel-CP7FEzw7.js.map} +1 -1
  65. package/dist/cdn/chunks/{MediaPanels-D21M6shx.js → MediaPanels-TYrKKHX5.js} +2 -2
  66. package/dist/cdn/chunks/{MediaPanels-D21M6shx.js.map → MediaPanels-TYrKKHX5.js.map} +1 -1
  67. package/dist/cdn/chunks/MergeTagInput-CSIThqkz.js +470 -0
  68. package/dist/cdn/chunks/MergeTagInput-CSIThqkz.js.map +1 -0
  69. package/dist/cdn/chunks/{MergeTagModeToggle-DYxkAGtA.js → MergeTagModeToggle-QGTUIWWo.js} +32 -32
  70. package/dist/cdn/chunks/{MergeTagModeToggle-DYxkAGtA.js.map → MergeTagModeToggle-QGTUIWWo.js.map} +1 -1
  71. package/dist/cdn/chunks/{MergeTagSuggestion-t8Uj00Er.js → MergeTagSuggestion-CY6WK8Eb.js} +3 -3
  72. package/dist/cdn/chunks/MergeTagSuggestion-CY6WK8Eb.js.map +1 -0
  73. package/dist/cdn/chunks/{ParagraphEditor-Bd-GQXee.js → ParagraphEditor-D1tsPv4v.js} +22 -22
  74. package/dist/cdn/chunks/{ParagraphEditor-Bd-GQXee.js.map → ParagraphEditor-D1tsPv4v.js.map} +1 -1
  75. package/dist/cdn/chunks/{RestoreVersionDialog-2X9RpM9A.js → RestoreVersionDialog-BeCxNPLS.js} +4 -4
  76. package/dist/cdn/chunks/{RestoreVersionDialog-2X9RpM9A.js.map → RestoreVersionDialog-BeCxNPLS.js.map} +1 -1
  77. package/dist/cdn/chunks/{RichTextEditorContent-D_rb0rmU.js → RichTextEditorContent-BBxzACFQ.js} +8 -8
  78. package/dist/cdn/chunks/{RichTextEditorContent-D_rb0rmU.js.map → RichTextEditorContent-BBxzACFQ.js.map} +1 -1
  79. package/dist/cdn/chunks/{SaveBlockDialog-CufdTomT.js → SaveBlockDialog-CLgh_g7H.js} +7 -7
  80. package/dist/cdn/chunks/{SaveBlockDialog-CufdTomT.js.map → SaveBlockDialog-CLgh_g7H.js.map} +1 -1
  81. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CqpaNsk7.js → SavedBlocksBrowserModal-B4TcUJJe.js} +8 -8
  82. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CqpaNsk7.js.map → SavedBlocksBrowserModal-B4TcUJJe.js.map} +1 -1
  83. package/dist/cdn/chunks/{SavedBlocksPanels-DpxYxddo.js → SavedBlocksPanels-CaBsHoRC.js} +2 -2
  84. package/dist/cdn/chunks/{SavedBlocksPanels-DpxYxddo.js.map → SavedBlocksPanels-CaBsHoRC.js.map} +1 -1
  85. package/dist/cdn/chunks/{SavedBlocksPickBar-Drpoav1B.js → SavedBlocksPickBar-iG35XCDx.js} +4 -4
  86. package/dist/cdn/chunks/{SavedBlocksPickBar-Drpoav1B.js.map → SavedBlocksPickBar-iG35XCDx.js.map} +1 -1
  87. package/dist/cdn/chunks/{TemplateScoringPanel-DBjUNULq.js → TemplateScoringPanel-DuQJBykq.js} +86 -86
  88. package/dist/cdn/chunks/TemplateScoringPanel-DuQJBykq.js.map +1 -0
  89. package/dist/cdn/chunks/{TestEmailModal-BTNlSW6f.js → TestEmailModal-D6Woss3r.js} +52 -52
  90. package/dist/cdn/chunks/TestEmailModal-D6Woss3r.js.map +1 -0
  91. package/dist/cdn/chunks/{TestEmailPanel-D0A9Zgxr.js → TestEmailPanel-CWQFB7J3.js} +2 -2
  92. package/dist/cdn/chunks/{TestEmailPanel-D0A9Zgxr.js.map → TestEmailPanel-CWQFB7J3.js.map} +1 -1
  93. package/dist/cdn/chunks/{TitleEditor-CrnuIq62.js → TitleEditor-CbY1tgSl.js} +12 -12
  94. package/dist/cdn/chunks/TitleEditor-CbY1tgSl.js.map +1 -0
  95. package/dist/cdn/chunks/{TplModal-DYXrTz42.js → TplModal-CGpp-d_r.js} +4 -4
  96. package/dist/cdn/chunks/{TplModal-DYXrTz42.js.map → TplModal-CGpp-d_r.js.map} +1 -1
  97. package/dist/cdn/chunks/{VersionHistoryMenu-bDGnE4hb.js → VersionHistoryMenu-ByVJXDbK.js} +4 -4
  98. package/dist/cdn/chunks/{VersionHistoryMenu-bDGnE4hb.js.map → VersionHistoryMenu-ByVJXDbK.js.map} +1 -1
  99. package/dist/cdn/chunks/{VersionHistoryPanels-82P0Q0HM.js → VersionHistoryPanels-CQJ5OggF.js} +2 -2
  100. package/dist/cdn/chunks/{VersionHistoryPanels-82P0Q0HM.js.map → VersionHistoryPanels-CQJ5OggF.js.map} +1 -1
  101. package/dist/cdn/chunks/{VersionPreviewBanner-BJiwKkVC.js → VersionPreviewBanner-G4lLbfr8.js} +3 -3
  102. package/dist/cdn/chunks/{VersionPreviewBanner-BJiwKkVC.js.map → VersionPreviewBanner-G4lLbfr8.js.map} +1 -1
  103. package/dist/cdn/chunks/{blockTypeIcons-CNjJSFun.js → blockTypeIcons-CQY-vxdM.js} +2 -2
  104. package/dist/cdn/chunks/{blockTypeIcons-CNjJSFun.js.map → blockTypeIcons-CQY-vxdM.js.map} +1 -1
  105. package/dist/{ca-D9S-UCfZ.js → cdn/chunks/ca-YlPDhElv.js} +7 -1
  106. package/dist/cdn/chunks/{ca-D9S-UCfZ.js.map → ca-YlPDhElv.js.map} +1 -1
  107. package/dist/cdn/chunks/cloud-BLgCKP7Z.js.map +1 -1
  108. package/dist/cdn/chunks/{createCloudRuntime-U-qCH-dq.js → createCloudRuntime-ClvtMBF1.js} +2 -2
  109. package/dist/cdn/chunks/{createCloudRuntime-U-qCH-dq.js.map → createCloudRuntime-ClvtMBF1.js.map} +1 -1
  110. package/dist/cdn/chunks/{de-BUPszLpi.js → de-CONjnzrF.js} +6 -2
  111. package/dist/cdn/chunks/{de-BUPszLpi.js.map → de-CONjnzrF.js.map} +1 -1
  112. package/dist/cdn/chunks/draggable-kbOhCgnk.js.map +1 -1
  113. package/dist/cdn/chunks/{editor-modal-MXgtarMl.js → editor-modal-B6IdQWlf.js} +3 -3
  114. package/dist/cdn/chunks/{editor-modal-MXgtarMl.js.map → editor-modal-B6IdQWlf.js.map} +1 -1
  115. package/dist/cdn/chunks/{en-BbOC5x3w.js → en-BAMooiOF.js} +6 -2
  116. package/dist/cdn/chunks/{en-BbOC5x3w.js.map → en-BAMooiOF.js.map} +1 -1
  117. package/dist/cdn/chunks/en-DjunooBz.js +2 -0
  118. package/dist/{es-0bCDcT9p.js → cdn/chunks/es-I47lHs2m.js} +7 -1
  119. package/dist/cdn/chunks/{es-0bCDcT9p.js.map → es-I47lHs2m.js.map} +1 -1
  120. package/dist/cdn/chunks/{extensions-B8_jnIkD.js → extensions-D2YIhF7u.js} +126 -101
  121. package/dist/cdn/chunks/extensions-D2YIhF7u.js.map +1 -0
  122. package/dist/cdn/chunks/{fr-Brr8mJ9e.js → fr-B8MIKjT4.js} +6 -2
  123. package/dist/cdn/chunks/{fr-Brr8mJ9e.js.map → fr-B8MIKjT4.js.map} +1 -1
  124. package/dist/cdn/chunks/htmlparser-ClUZ6waR.js +1113 -0
  125. package/dist/cdn/chunks/htmlparser-ClUZ6waR.js.map +1 -0
  126. package/dist/cdn/chunks/{icons-BUlqGSgd.js → icons-DdrAicM2.js} +33 -33
  127. package/dist/cdn/chunks/{icons-BUlqGSgd.js.map → icons-DdrAicM2.js.map} +1 -1
  128. package/dist/cdn/chunks/keys-DXYJTLZF.js +12 -0
  129. package/dist/cdn/chunks/keys-DXYJTLZF.js.map +1 -0
  130. package/dist/{nl-Co3_RL0M.js → cdn/chunks/nl-CBLxcb-0.js} +7 -1
  131. package/dist/cdn/chunks/{nl-Co3_RL0M.js.map → nl-CBLxcb-0.js.map} +1 -1
  132. package/dist/{pt-BR-BECez5b0.js → cdn/chunks/pt-BR-CMSRfX7t.js} +7 -1
  133. package/dist/cdn/chunks/{pt-BR-BECez5b0.js.map → pt-BR-CMSRfX7t.js.map} +1 -1
  134. package/dist/cdn/chunks/{src-CUvZWL6Y.js → src-CaNsA_WX.js} +2 -2
  135. package/dist/cdn/chunks/{src-CUvZWL6Y.js.map → src-CaNsA_WX.js.map} +1 -1
  136. package/dist/cdn/chunks/src-Dwgq7hf4.js.map +1 -1
  137. package/dist/cdn/chunks/{src-Ozknnj-v.js → src-fn7uy1FD.js} +3 -3
  138. package/dist/cdn/chunks/{src-Ozknnj-v.js.map → src-fn7uy1FD.js.map} +1 -1
  139. package/dist/cdn/chunks/{useCloudI18n-DSWSGj-A.js → useCloudI18n-OezCj0cx.js} +2 -2
  140. package/dist/cdn/chunks/{useCloudI18n-DSWSGj-A.js.map → useCloudI18n-OezCj0cx.js.map} +1 -1
  141. package/dist/cdn/chunks/{useEditorCore-Cs7rYVBo.js → useEditorCore-06PtcUi1.js} +482 -473
  142. package/dist/cdn/chunks/useEditorCore-06PtcUi1.js.map +1 -0
  143. package/dist/cdn/chunks/{useEditorRoot-B0zW2nT4.js → useEditorRoot-ByHPMqYT.js} +2 -2
  144. package/dist/cdn/chunks/{useEditorRoot-B0zW2nT4.js.map → useEditorRoot-ByHPMqYT.js.map} +1 -1
  145. package/dist/cdn/chunks/{useI18n-Dlo7R9RA.js → useI18n-BhE7ndNr.js} +2 -2
  146. package/dist/cdn/chunks/{useI18n-Dlo7R9RA.js.map → useI18n-BhE7ndNr.js.map} +1 -1
  147. package/dist/cdn/chunks/useMergeTag-DE2mpy1w.js +60 -0
  148. package/dist/cdn/chunks/useMergeTag-DE2mpy1w.js.map +1 -0
  149. package/dist/cdn/chunks/{usePopoverPosition-ElP3ABaV.js → usePopoverPosition-BPL891uG.js} +2 -2
  150. package/dist/cdn/chunks/{usePopoverPosition-ElP3ABaV.js.map → usePopoverPosition-BPL891uG.js.map} +1 -1
  151. package/dist/cdn/chunks/{useScrollToBlock-nTbWkgaU.js → useScrollToBlock-DwF4pVur.js} +2 -2
  152. package/dist/cdn/chunks/{useScrollToBlock-nTbWkgaU.js.map → useScrollToBlock-DwF4pVur.js.map} +1 -1
  153. package/dist/cdn/editor.css +1 -1
  154. package/dist/cdn/editor.js +894 -857
  155. package/dist/cdn/editor.js.map +1 -1
  156. package/dist/{check-DWtkBzBU.js → check-9xX6RVHz.js} +1 -1
  157. package/dist/{chevron-down-C-Fjxcqj.js → chevron-down-J5hFJ6TL.js} +1 -1
  158. package/dist/{chevron-right-SOkn2d4P.js → chevron-right-BJuo5PQ-.js} +1 -1
  159. package/dist/{chevron-up-lntU1ypp.js → chevron-up-Qfi5k52_.js} +1 -1
  160. package/dist/{circle-alert-CjzUTwy3.js → circle-alert-BiArYmkB.js} +1 -1
  161. package/dist/{clock-pB2QKPsJ.js → clock-BkYJZ7Y0.js} +1 -1
  162. package/dist/{copy-CId1E038.js → copy-BRLUNHwF.js} +1 -1
  163. package/dist/{createCloudRuntime-x5WZm3p8.js → createCloudRuntime-CNFXaTNQ.js} +1 -1
  164. package/dist/{createLucideIcon-Cwf_nTzE.js → createLucideIcon-CDDkF1Tm.js} +5 -5
  165. package/dist/{de-BUPszLpi.js → de-CONjnzrF.js} +5 -1
  166. package/dist/{editor-modal-B_LaQf0s.js → editor-modal-uAEB6xKz.js} +15 -15
  167. package/dist/{en-BbOC5x3w.js → en-BAMooiOF.js} +5 -1
  168. package/dist/en-CQWkDCpm.js +2 -0
  169. package/dist/{cdn/chunks/es-0bCDcT9p.js → es-I47lHs2m.js} +5 -3
  170. package/dist/{extensions-CHOBZRab.js → extensions-CcGj7OfS.js} +129 -104
  171. package/dist/{eye-BuGtFUoJ.js → eye-DwhBOaV8.js} +1 -1
  172. package/dist/{fr-Brr8mJ9e.js → fr-B8MIKjT4.js} +5 -1
  173. package/dist/{image-up-gH4JEpU5.js → image-up-CiyQNZBt.js} +1 -1
  174. package/dist/index.d.ts +15 -0
  175. package/dist/{info-BQ60P82u.js → info-D6A1qEiF.js} +1 -1
  176. package/dist/keys-DD1rl72F.js +10 -0
  177. package/dist/{link-3R8it3J7.js → link-tKGmYWsB.js} +1 -1
  178. package/dist/{list-Ccdgj46T.js → list-DjZQRpeI.js} +1 -1
  179. package/dist/{loader-circle-B_tAD4k6.js → loader-circle-D9ZL3Sv0.js} +1 -1
  180. package/dist/{message-circle-P-KSc6V0.js → message-circle-KTHxCcpB.js} +1 -1
  181. package/dist/{cdn/chunks/nl-Co3_RL0M.js → nl-CBLxcb-0.js} +5 -3
  182. package/dist/{pencil-9ZiwqS4r.js → pencil-Bq-nbQ7F.js} +1 -1
  183. package/dist/{plus-BwJEzCaO.js → plus-CRMnR4IG.js} +1 -1
  184. package/dist/{cdn/chunks/pt-BR-BECez5b0.js → pt-BR-CMSRfX7t.js} +5 -3
  185. package/dist/{refresh-cw-DEgfb2FK.js → refresh-cw-D7bYS5tm.js} +1 -1
  186. package/dist/{search-DqQ8Li5E.js → search-DUo0YwPz.js} +1 -1
  187. package/dist/{send-CE6uvqop.js → send-DaVMQphu.js} +1 -1
  188. package/dist/{shield-check-DhD1Z3rd.js → shield-check-DxaaurL9.js} +1 -1
  189. package/dist/{sparkles-R0ZQHa6F.js → sparkles-D6T6k30e.js} +1 -1
  190. package/dist/style.css +1 -1
  191. package/dist/templatical-editor.js +1156 -1119
  192. package/dist/{text-align-start-DSux2UNn.js → text-align-start-vreFpmCX.js} +1 -1
  193. package/dist/{trash-Cf_SqsER.js → trash-DBv8MGY6.js} +1 -1
  194. package/dist/{triangle-alert-C6tGa6jw.js → triangle-alert-CmNS2LLv.js} +1 -1
  195. package/dist/{upload-DusKjpVr.js → upload-DDB9Fs0P.js} +1 -1
  196. package/dist/{useCloudI18n-BLyh_e2T.js → useCloudI18n-C1wuXik6.js} +1 -1
  197. package/dist/{useEditorCore-DhlKOYwe.js → useEditorCore-jfwgLThK.js} +1077 -1068
  198. package/dist/{useEditorRoot-ds57-l6F.js → useEditorRoot-eVv4doqZ.js} +1 -1
  199. package/dist/{useI18n-BbdxxpOE.js → useI18n-VOtdfENx.js} +1 -1
  200. package/dist/useMergeTag-CQM9pFca.js +58 -0
  201. package/dist/{usePopoverPosition-CprM5p-c.js → usePopoverPosition-gZjRywai.js} +1 -1
  202. package/dist/{useScrollToBlock-BTFw0b9O.js → useScrollToBlock-C0Ehnyl4.js} +2 -2
  203. package/dist/{x-D_-42Ukq.js → x-B7sgO_z8.js} +1 -1
  204. package/package.json +10 -10
  205. package/dist/cdn/chunks/AiChatSidebar-dyqqHAcI.js.map +0 -1
  206. package/dist/cdn/chunks/MergeTagInput-l7paaAml.js +0 -419
  207. package/dist/cdn/chunks/MergeTagInput-l7paaAml.js.map +0 -1
  208. package/dist/cdn/chunks/MergeTagSuggestion-t8Uj00Er.js.map +0 -1
  209. package/dist/cdn/chunks/TemplateScoringPanel-DBjUNULq.js.map +0 -1
  210. package/dist/cdn/chunks/TestEmailModal-BTNlSW6f.js.map +0 -1
  211. package/dist/cdn/chunks/TitleEditor-CrnuIq62.js.map +0 -1
  212. package/dist/cdn/chunks/en-C9U7N77n.js +0 -2
  213. package/dist/cdn/chunks/extensions-B8_jnIkD.js.map +0 -1
  214. package/dist/cdn/chunks/htmlparser-DTML8Gvz.js +0 -1007
  215. package/dist/cdn/chunks/htmlparser-DTML8Gvz.js.map +0 -1
  216. package/dist/cdn/chunks/keys-DBFhDFng.js +0 -12
  217. package/dist/cdn/chunks/keys-DBFhDFng.js.map +0 -1
  218. package/dist/cdn/chunks/useEditorCore-Cs7rYVBo.js.map +0 -1
  219. package/dist/cdn/chunks/useMergeTag-BYAifvh8.js +0 -46
  220. package/dist/cdn/chunks/useMergeTag-BYAifvh8.js.map +0 -1
  221. package/dist/en-DcmpWV53.js +0 -2
  222. package/dist/keys-DQA2i1k1.js +0 -10
  223. package/dist/useMergeTag-DlvOBW_B.js +0 -44
@@ -1,13 +1,13 @@
1
- import { A as e, At as t, B as n, E as r, V as i, Z as a, at as o, c as s, d as c, jt as l, kt as u, l as d, s as f, u as p, v as m } from "./vue.runtime.esm-bundler-DShF3P6k.js";
2
- import { a as h, c as g, s as _ } from "./runtime-dom.esm-bundler-PnoZU512.js";
3
- import { F as v, O as y, k as b, o as x } from "./dist-tGkjkX-v.js";
4
- import { t as S } from "./useI18n-BbdxxpOE.js";
5
- import { t as C } from "./useMergeTag-DlvOBW_B.js";
6
- import { gn as w, m as T, s as E, u as D, v as O } from "./dist-DL9334yz.js";
7
- import { i as k, r as A, t as j } from "./MergeTagSuggestion-DKoLEeoj.js";
8
- import { n as M, t as N } from "./dist-BVqAYoRB.js";
1
+ import { A as e, At as t, B as n, E as r, J as i, V as a, Z as o, at as s, c, d as l, jt as u, kt as d, l as f, s as p, u as m, v as h } from "./vue.runtime.esm-bundler-DShF3P6k.js";
2
+ import { a as g, c as _, s as v } from "./runtime-dom.esm-bundler-PnoZU512.js";
3
+ import { F as y, O as b, k as x, o as S } from "./dist-tGkjkX-v.js";
4
+ import { t as C } from "./useI18n-VOtdfENx.js";
5
+ import { t as w } from "./useMergeTag-CQM9pFca.js";
6
+ import { gn as T, m as E, s as D, u as O, v as k } from "./dist-DL9334yz.js";
7
+ import { i as A, r as j, t as M } from "./MergeTagSuggestion-BXO3UIXW.js";
8
+ import { n as N, t as P } from "./dist-BVqAYoRB.js";
9
9
  //#region src/extensions/FontSize.ts
10
- var P = E.create({
10
+ var F = D.create({
11
11
  name: "fontSize",
12
12
  addOptions() {
13
13
  return { types: ["textStyle"] };
@@ -28,7 +28,7 @@ var P = E.create({
28
28
  unsetFontSize: () => ({ chain: e }) => e().setMark("textStyle", { fontSize: null }).removeEmptyTextStyle().run()
29
29
  };
30
30
  }
31
- }), F = E.create({
31
+ }), I = D.create({
32
32
  name: "letterSpacing",
33
33
  addOptions() {
34
34
  return { types: ["textStyle"] };
@@ -49,7 +49,7 @@ var P = E.create({
49
49
  unsetLetterSpacing: () => ({ chain: e }) => e().setMark("textStyle", { letterSpacing: null }).removeEmptyTextStyle().run()
50
50
  };
51
51
  }
52
- }), I = E.create({
52
+ }), L = D.create({
53
53
  name: "lineBoundaryKeys",
54
54
  addKeyboardShortcuts() {
55
55
  let e = (e) => ({ editor: t }) => {
@@ -63,7 +63,7 @@ var P = E.create({
63
63
  Home: e("backward")
64
64
  };
65
65
  }
66
- }), L = E.create({
66
+ }), R = D.create({
67
67
  name: "lineHeight",
68
68
  addOptions() {
69
69
  return {
@@ -87,11 +87,11 @@ var P = E.create({
87
87
  unsetLineHeight: () => ({ commands: e }) => this.options.types.every((t) => e.resetAttributes(t, "lineHeight"))
88
88
  };
89
89
  }
90
- }), R = [
90
+ }), z = [
91
91
  "aria-label",
92
92
  "data-tooltip",
93
93
  "onKeydown"
94
- ], z = ["aria-label", "onKeydown"], B = ["aria-label"], V = /* @__PURE__ */ m({
94
+ ], B = ["aria-label", "onKeydown"], V = ["aria-label"], H = /* @__PURE__ */ h({
95
95
  __name: "LogicMergeTagNodeView",
96
96
  props: {
97
97
  node: {},
@@ -100,10 +100,10 @@ var P = E.create({
100
100
  deleteNode: { type: Function },
101
101
  updateAttributes: { type: Function }
102
102
  },
103
- setup(m) {
104
- let b = m, { syntax: x } = C(), { t: w } = S(), T = f(() => v(b.node.attrs.value, x)), E = f(() => y(b.node.attrs.value, x)), D = a(!1), O = a(""), k = a(null), A = !1;
103
+ setup(i) {
104
+ let h = i, { syntax: x } = w(), { t: S } = C(), T = p(() => y(h.node.attrs.value, x)), E = p(() => b(h.node.attrs.value, x)), D = o(!1), O = o(""), k = o(null), A = !1;
105
105
  function j() {
106
- O.value = b.node.attrs.value, A = !1, D.value = !0, r(() => {
106
+ O.value = h.node.attrs.value, A = !1, D.value = !0, r(() => {
107
107
  k.value?.focus(), k.value?.select();
108
108
  });
109
109
  }
@@ -115,53 +115,53 @@ var P = E.create({
115
115
  D.value = !1;
116
116
  return;
117
117
  }
118
- e !== b.node.attrs.value && b.updateAttributes({
118
+ e !== h.node.attrs.value && h.updateAttributes({
119
119
  value: e,
120
- keyword: v(e, x) ? y(e, x) : ""
120
+ keyword: y(e, x) ? b(e, x) : ""
121
121
  }), D.value = !1;
122
122
  }
123
- function P(e) {
123
+ function N(e) {
124
124
  e.key === "Enter" ? (e.preventDefault(), M()) : e.key === "Escape" && (D.value = !1);
125
125
  }
126
- return (r, a) => (e(), d(o(N), {
126
+ return (r, o) => (e(), f(s(P), {
127
127
  as: "span",
128
- class: u(T.value ? "tpl-logic-merge-tag-node tpl:group tpl:mx-0.5 tpl:inline-flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[0.8em] tpl:font-bold tpl:tracking-wide tpl:uppercase tpl:select-none" : ""),
128
+ class: d(T.value ? "tpl-logic-merge-tag-node tpl:group tpl:mx-0.5 tpl:inline-flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[0.8em] tpl:font-bold tpl:tracking-wide tpl:uppercase tpl:select-none" : ""),
129
129
  style: t(T.value ? "background-color: transparent; border: 1.5px solid color-mix(in srgb, var(--tpl-primary) 50%, transparent); color: var(--tpl-primary);" : ""),
130
130
  contenteditable: "false"
131
131
  }, {
132
- default: n(() => [D.value ? i((e(), c("input", {
132
+ default: n(() => [D.value ? a((e(), l("input", {
133
133
  key: 0,
134
134
  ref_key: "inputRef",
135
135
  ref: k,
136
- "onUpdate:modelValue": a[0] ||= (e) => O.value = e,
136
+ "onUpdate:modelValue": o[0] ||= (e) => O.value = e,
137
137
  type: "text",
138
138
  class: "tpl:w-40 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-0.5 tpl:py-0 tpl:text-[1em] tpl:font-medium tpl:normal-case tpl:outline-none tpl:text-[var(--tpl-primary)]",
139
139
  onBlur: M,
140
- onKeydown: P
141
- }, null, 544)), [[h, O.value]]) : T.value ? (e(), c("span", {
140
+ onKeydown: N
141
+ }, null, 544)), [[g, O.value]]) : T.value ? (e(), l("span", {
142
142
  key: 1,
143
143
  role: "button",
144
144
  tabindex: "0",
145
- "aria-label": o(w).mergeTag.editValue,
145
+ "aria-label": s(S).mergeTag.editValue,
146
146
  class: "tpl-tooltip tpl:cursor-pointer",
147
- "data-tooltip": m.node.attrs.value,
148
- onClick: g(j, ["stop"]),
149
- onKeydown: [_(g(j, ["stop"]), ["enter"]), _(g(j, ["prevent", "stop"]), ["space"])]
150
- }, l(E.value), 41, R)) : (e(), c("span", {
147
+ "data-tooltip": i.node.attrs.value,
148
+ onClick: _(j, ["stop"]),
149
+ onKeydown: [v(_(j, ["stop"]), ["enter"]), v(_(j, ["prevent", "stop"]), ["space"])]
150
+ }, u(E.value), 41, z)) : (e(), l("span", {
151
151
  key: 2,
152
152
  role: "button",
153
153
  tabindex: "0",
154
- "aria-label": o(w).mergeTag.editValue,
155
- onClick: g(j, ["stop"]),
156
- onKeydown: [_(g(j, ["stop"]), ["enter"]), _(g(j, ["prevent", "stop"]), ["space"])]
157
- }, l(m.node.attrs.value), 41, z)), T.value ? (e(), c("button", {
154
+ "aria-label": s(S).mergeTag.editValue,
155
+ onClick: _(j, ["stop"]),
156
+ onKeydown: [v(_(j, ["stop"]), ["enter"]), v(_(j, ["prevent", "stop"]), ["space"])]
157
+ }, u(i.node.attrs.value), 41, B)), T.value ? (e(), l("button", {
158
158
  key: 3,
159
159
  type: "button",
160
- "aria-label": o(w).mergeTag.deleteMergeTag,
160
+ "aria-label": s(S).mergeTag.deleteMergeTag,
161
161
  class: "tpl-merge-tag-delete tpl:flex tpl:size-5 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-full tpl:border-none tpl:bg-transparent tpl:p-0 tpl:opacity-60 tpl:transition-all tpl:hover:opacity-100 tpl:text-[var(--tpl-primary)]",
162
162
  contenteditable: "false",
163
- onClick: a[1] ||= g((...e) => m.deleteNode && m.deleteNode(...e), ["stop", "prevent"])
164
- }, [...a[2] ||= [s("svg", {
163
+ onClick: o[1] ||= _((...e) => i.deleteNode && i.deleteNode(...e), ["stop", "prevent"])
164
+ }, [...o[2] ||= [c("svg", {
165
165
  width: "10",
166
166
  height: "10",
167
167
  viewBox: "0 0 24 24",
@@ -169,41 +169,41 @@ var P = E.create({
169
169
  stroke: "currentColor",
170
170
  "stroke-width": "3",
171
171
  "aria-hidden": "true"
172
- }, [s("line", {
172
+ }, [c("line", {
173
173
  x1: "18",
174
174
  y1: "6",
175
175
  x2: "6",
176
176
  y2: "18"
177
- }), s("line", {
177
+ }), c("line", {
178
178
  x1: "6",
179
179
  y1: "6",
180
180
  x2: "18",
181
181
  y2: "18"
182
- })], -1)]], 8, B)) : p("", !0)]),
182
+ })], -1)]], 8, V)) : m("", !0)]),
183
183
  _: 1
184
184
  }, 8, ["class", "style"]));
185
185
  }
186
186
  });
187
187
  //#endregion
188
188
  //#region src/extensions/isNodeSelected.ts
189
- function H(e, t) {
189
+ function U(e, t) {
190
190
  let { $from: n, $to: r } = e.state.selection;
191
191
  return n.pos === r.pos ? n.pos > 0 && n.nodeBefore?.type.name === t || n.nodeAfter?.type.name === t : !1;
192
192
  }
193
193
  //#endregion
194
194
  //#region src/extensions/renderVueNodeView.ts
195
- function U(e) {
196
- return M(e);
195
+ function W(e) {
196
+ return N(e);
197
197
  }
198
198
  //#endregion
199
199
  //#region src/extensions/LogicMergeTagNode.ts
200
- var W = T.create({
200
+ var G = E.create({
201
201
  name: "logicMergeTagNode",
202
202
  group: "inline",
203
203
  inline: !0,
204
204
  atom: !0,
205
205
  addOptions() {
206
- return { syntax: x.liquid };
206
+ return { syntax: S.liquid };
207
207
  },
208
208
  addAttributes() {
209
209
  return {
@@ -223,15 +223,15 @@ var W = T.create({
223
223
  return [{ tag: "span[data-logic-merge-tag]" }];
224
224
  },
225
225
  renderHTML({ node: e, HTMLAttributes: t }) {
226
- if (!v(e.attrs.value, this.options.syntax)) return [
226
+ if (!y(e.attrs.value, this.options.syntax)) return [
227
227
  "span",
228
228
  {},
229
229
  e.attrs.value
230
230
  ];
231
- let n = y(e.attrs.value, this.options.syntax);
231
+ let n = b(e.attrs.value, this.options.syntax);
232
232
  return [
233
233
  "span",
234
- w(t, {
234
+ T(t, {
235
235
  "data-logic-merge-tag": e.attrs.value,
236
236
  "data-keyword": n
237
237
  }),
@@ -239,22 +239,22 @@ var W = T.create({
239
239
  ];
240
240
  },
241
241
  addNodeView() {
242
- return U(V);
242
+ return W(H);
243
243
  },
244
244
  addKeyboardShortcuts() {
245
245
  return {
246
- Backspace: () => H(this.editor, this.name),
247
- Delete: () => H(this.editor, this.name)
246
+ Backspace: () => U(this.editor, this.name),
247
+ Delete: () => U(this.editor, this.name)
248
248
  };
249
249
  },
250
250
  addInputRules() {
251
251
  let e = RegExp(this.options.syntax.logic.source + "$", "");
252
- return [new D({
252
+ return [new O({
253
253
  find: e,
254
254
  handler: ({ state: e, range: t, match: n }) => {
255
255
  let r = n[0];
256
- if (!v(r, this.options.syntax)) return;
257
- let i = y(r, this.options.syntax), a = this.type.create({
256
+ if (!y(r, this.options.syntax)) return;
257
+ let i = b(r, this.options.syntax), a = this.type.create({
258
258
  value: r,
259
259
  keyword: i
260
260
  });
@@ -264,12 +264,12 @@ var W = T.create({
264
264
  },
265
265
  addPasteRules() {
266
266
  let e = new RegExp(this.options.syntax.logic.source, "g");
267
- return [new O({
267
+ return [new k({
268
268
  find: e,
269
269
  handler: ({ state: e, range: t, match: n }) => {
270
270
  let r = n[0];
271
- if (!v(r, this.options.syntax)) return;
272
- let i = y(r, this.options.syntax), a = this.type.create({
271
+ if (!y(r, this.options.syntax)) return;
272
+ let i = b(r, this.options.syntax), a = this.type.create({
273
273
  value: r,
274
274
  keyword: i
275
275
  });
@@ -277,11 +277,11 @@ var W = T.create({
277
277
  }
278
278
  })];
279
279
  }
280
- }), G = [
280
+ }), K = ["aria-invalid"], q = [
281
281
  "aria-label",
282
282
  "data-tooltip",
283
283
  "onKeydown"
284
- ], K = ["aria-label"], q = /* @__PURE__ */ m({
284
+ ], J = ["aria-label"], Y = /* @__PURE__ */ h({
285
285
  __name: "MergeTagNodeView",
286
286
  props: {
287
287
  node: {},
@@ -289,53 +289,78 @@ var W = T.create({
289
289
  updateAttributes: { type: Function }
290
290
  },
291
291
  setup(t) {
292
- let u = t, { getMergeTagLabel: p } = C(), { t: m } = S(), v = f(() => p(u.node.attrs.value)), y = a(!1), b = a(""), x = a(null);
293
- function w() {
294
- b.value = u.node.attrs.value, y.value = !0, r(() => {
295
- x.value?.focus(), x.value?.select();
292
+ let m = t, { getMergeTagLabel: h, getMergeTagDisplayLabel: y, findMergeTag: b, canRepickMergeTag: x, showRawValue: S, isMergeTagValue: T, requestMergeTag: E } = w(), { t: D, format: O } = C(), k = p(() => y(m.node.attrs.value, m.node.attrs.label)), A = p(() => x(m.node.attrs.value)), j = o(!1), M = o(""), N = o(null), F = !1;
293
+ i(() => {
294
+ F = !0;
295
+ });
296
+ let I = p(() => M.value.trim() === "" || T(M.value.trim()));
297
+ async function L() {
298
+ let e = await E({
299
+ reason: "edit",
300
+ current: b(m.node.attrs.value)
301
+ });
302
+ !F && e && m.updateAttributes({
303
+ value: e.value,
304
+ label: e.label
296
305
  });
297
306
  }
298
- function T() {
299
- let e = b.value.trim();
300
- e && e !== u.node.attrs.value && u.updateAttributes({
307
+ function R() {
308
+ M.value = m.node.attrs.value, j.value = !0, r(() => {
309
+ N.value?.focus(), N.value?.select();
310
+ });
311
+ }
312
+ function z() {
313
+ if (A.value) {
314
+ L();
315
+ return;
316
+ }
317
+ R();
318
+ }
319
+ function B() {
320
+ let e = M.value.trim();
321
+ e && e !== m.node.attrs.value && T(e) && m.updateAttributes({
301
322
  value: e,
302
- label: p(e)
303
- }), y.value = !1;
323
+ label: h(e)
324
+ }), j.value = !1;
304
325
  }
305
- function E(e) {
306
- e.key === "Enter" ? (e.preventDefault(), T()) : e.key === "Escape" && (y.value = !1);
326
+ function V(e) {
327
+ if (e.key === "Enter") {
328
+ if (e.preventDefault(), !I.value) return;
329
+ B();
330
+ } else e.key === "Escape" && (j.value = !1);
307
331
  }
308
- return (r, a) => (e(), d(o(N), {
332
+ return (r, i) => (e(), f(s(P), {
309
333
  as: "span",
310
334
  class: "tpl-merge-tag-node tpl:group tpl:mx-0.5 tpl:inline-flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-1.5 tpl:py-0.5 tpl:text-[0.9em] tpl:font-medium tpl:select-none tpl:text-[var(--tpl-primary)]",
311
335
  style: { "background-color": "color-mix(in srgb, var(--tpl-primary) 20%, transparent)" },
312
336
  contenteditable: "false"
313
337
  }, {
314
- default: n(() => [y.value ? i((e(), c("input", {
338
+ default: n(() => [j.value ? a((e(), l("input", {
315
339
  key: 0,
316
340
  ref_key: "inputRef",
317
- ref: x,
318
- "onUpdate:modelValue": a[0] ||= (e) => b.value = e,
341
+ ref: N,
342
+ "onUpdate:modelValue": i[0] ||= (e) => M.value = e,
319
343
  type: "text",
320
- class: "tpl:w-32 tpl:rounded tpl:border-none tpl:bg-transparent tpl:px-0.5 tpl:py-0 tpl:text-[1em] tpl:font-medium tpl:outline-none tpl:text-[var(--tpl-primary)]",
321
- onBlur: T,
322
- onKeydown: E
323
- }, null, 544)), [[h, b.value]]) : (e(), c("span", {
344
+ "aria-invalid": I.value ? void 0 : "true",
345
+ class: d(["tpl:w-32 tpl:rounded tpl:bg-transparent tpl:px-0.5 tpl:py-0 tpl:text-[1em] tpl:font-medium tpl:outline-none tpl:text-[var(--tpl-primary)]", I.value ? "tpl:border-none" : "tpl:border tpl:border-[var(--tpl-danger)]"]),
346
+ onBlur: B,
347
+ onKeydown: V
348
+ }, null, 42, K)), [[g, M.value]]) : (e(), l("span", {
324
349
  key: 1,
325
350
  role: "button",
326
351
  tabindex: "0",
327
- "aria-label": o(m).mergeTag.editValue,
328
- class: "tpl-tooltip tpl:cursor-pointer",
329
- "data-tooltip": t.node.attrs.value,
330
- onClick: g(w, ["stop"]),
331
- onKeydown: [_(g(w, ["stop"]), ["enter"]), _(g(w, ["prevent", "stop"]), ["space"])]
332
- }, l(v.value), 41, G)), s("button", {
352
+ "aria-label": A.value ? s(O)(s(D).mergeTag.changeTag, { label: k.value }) : s(D).mergeTag.editValue,
353
+ class: d(["tpl:cursor-pointer", s(S) ? "tpl-tooltip" : ""]),
354
+ "data-tooltip": s(S) ? t.node.attrs.value : void 0,
355
+ onClick: _(z, ["stop"]),
356
+ onKeydown: [v(_(z, ["stop"]), ["enter"]), v(_(z, ["prevent", "stop"]), ["space"])]
357
+ }, u(k.value), 43, q)), c("button", {
333
358
  type: "button",
334
- "aria-label": o(m).mergeTag.deleteMergeTag,
359
+ "aria-label": s(D).mergeTag.deleteMergeTag,
335
360
  class: "tpl-merge-tag-delete tpl:flex tpl:size-5 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-full tpl:border-none tpl:bg-transparent tpl:p-0 tpl:opacity-60 tpl:transition-all tpl:hover:opacity-100 tpl:text-[var(--tpl-primary)]",
336
361
  contenteditable: "false",
337
- onClick: a[1] ||= g((...e) => t.deleteNode && t.deleteNode(...e), ["stop", "prevent"])
338
- }, [...a[2] ||= [s("svg", {
362
+ onClick: i[1] ||= _((...e) => t.deleteNode && t.deleteNode(...e), ["stop", "prevent"])
363
+ }, [...i[2] ||= [c("svg", {
339
364
  width: "10",
340
365
  height: "10",
341
366
  viewBox: "0 0 24 24",
@@ -343,29 +368,29 @@ var W = T.create({
343
368
  stroke: "currentColor",
344
369
  "stroke-width": "3",
345
370
  "aria-hidden": "true"
346
- }, [s("line", {
371
+ }, [c("line", {
347
372
  x1: "18",
348
373
  y1: "6",
349
374
  x2: "6",
350
375
  y2: "18"
351
- }), s("line", {
376
+ }), c("line", {
352
377
  x1: "6",
353
378
  y1: "6",
354
379
  x2: "18",
355
380
  y2: "18"
356
- })], -1)]], 8, K)]),
381
+ })], -1)]], 8, J)]),
357
382
  _: 1
358
383
  }));
359
384
  }
360
- }), J = T.create({
385
+ }), X = E.create({
361
386
  name: "mergeTagNode",
362
387
  group: "inline",
363
388
  inline: !0,
364
389
  atom: !0,
365
390
  addOptions() {
366
391
  return {
367
- mergeTags: [],
368
- syntax: x.liquid
392
+ mergeTags: () => [],
393
+ syntax: S.liquid
369
394
  };
370
395
  },
371
396
  addAttributes() {
@@ -386,10 +411,10 @@ var W = T.create({
386
411
  return [{ tag: "span[data-merge-tag]" }];
387
412
  },
388
413
  renderHTML({ node: e, HTMLAttributes: t }) {
389
- let n = b(e.attrs.value, this.options.mergeTags);
414
+ let n = x(e.attrs.value, this.options.mergeTags());
390
415
  return [
391
416
  "span",
392
- w(t, {
417
+ T(t, {
393
418
  "data-merge-tag": e.attrs.value,
394
419
  "data-label": n
395
420
  }),
@@ -397,7 +422,7 @@ var W = T.create({
397
422
  ];
398
423
  },
399
424
  addNodeView() {
400
- return U(q);
425
+ return W(Y);
401
426
  },
402
427
  addCommands() {
403
428
  return { insertMergeTag: (e) => ({ commands: t }) => t.insertContent({
@@ -410,16 +435,16 @@ var W = T.create({
410
435
  },
411
436
  addKeyboardShortcuts() {
412
437
  return {
413
- Backspace: () => H(this.editor, this.name),
414
- Delete: () => H(this.editor, this.name)
438
+ Backspace: () => U(this.editor, this.name),
439
+ Delete: () => U(this.editor, this.name)
415
440
  };
416
441
  },
417
442
  addInputRules() {
418
443
  let e = RegExp(this.options.syntax.value.source + "$", "");
419
- return [new D({
444
+ return [new O({
420
445
  find: e,
421
446
  handler: ({ state: e, range: t, match: n }) => {
422
- let r = n[0], i = b(r, this.options.mergeTags), a = this.type.create({
447
+ let r = n[0], i = x(r, this.options.mergeTags()), a = this.type.create({
423
448
  label: i,
424
449
  value: r
425
450
  });
@@ -429,10 +454,10 @@ var W = T.create({
429
454
  },
430
455
  addPasteRules() {
431
456
  let e = new RegExp(this.options.syntax.value.source, "g");
432
- return [new O({
457
+ return [new k({
433
458
  find: e,
434
459
  handler: ({ state: e, range: t, match: n }) => {
435
- let r = n[0], i = b(r, this.options.mergeTags), a = this.type.create({
460
+ let r = n[0], i = x(r, this.options.mergeTags()), a = this.type.create({
436
461
  label: i,
437
462
  value: r
438
463
  });
@@ -442,4 +467,4 @@ var W = T.create({
442
467
  }
443
468
  });
444
469
  //#endregion
445
- export { P as FontSize, F as LetterSpacing, I as LineBoundaryKeys, L as LineHeight, W as LogicMergeTagNode, J as MergeTagNode, j as MergeTagSuggestion, A as filterMergeTags, k as handleSuggestionKeyDown };
470
+ export { F as FontSize, I as LetterSpacing, L as LineBoundaryKeys, R as LineHeight, G as LogicMergeTagNode, X as MergeTagNode, M as MergeTagSuggestion, j as filterMergeTags, A as handleSuggestionKeyDown };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
1
+ import { t as e } from "./createLucideIcon-CDDkF1Tm.js";
2
2
  var t = e({
3
3
  name: "eye",
4
4
  size: 24,
@@ -424,15 +424,19 @@ var e = {
424
424
  presetColors: "Couleurs prédéfinies"
425
425
  },
426
426
  mergeTag: {
427
- clickToEdit: "Cliquez pour modifier",
427
+ editAsText: "Modifier comme texte",
428
+ fieldGroup: "Valeur avec balises de fusion",
428
429
  remove: "Supprimer la balise de fusion",
429
430
  insert: "Insérer une balise de fusion",
430
431
  insertShort: "Balise de fusion",
431
432
  editValue: "Modifier la valeur de la balise de fusion",
433
+ changeTag: "Remplacer la balise de fusion : {label}",
434
+ unknownLabel: "Balise de fusion",
432
435
  deleteMergeTag: "Supprimer la balise de fusion",
433
436
  suggestionEmpty: "Aucune balise de fusion correspondante",
434
437
  picker: {
435
438
  title: "Insérer une balise de fusion",
439
+ changeTitle: "Remplacer la balise de fusion",
436
440
  searchPlaceholder: "Rechercher des balises de fusion",
437
441
  searchAriaLabel: "Rechercher des balises de fusion",
438
442
  noResults: "Aucune balise de fusion correspondante",
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
1
+ import { t as e } from "./createLucideIcon-CDDkF1Tm.js";
2
2
  var t = e({
3
3
  name: "image-up",
4
4
  size: 24,
package/dist/index.d.ts CHANGED
@@ -26,6 +26,7 @@ import { MediaOptions } from '@templatical/types';
26
26
  import { MediaProvider as MediaProvider_2 } from '@templatical/types';
27
27
  import { MediaRequestContext } from '@templatical/types';
28
28
  import type { MediaResult } from '@templatical/types';
29
+ import type { MergeTag } from '@templatical/types';
29
30
  import { MergeTagsConfig } from '@templatical/types';
30
31
  import { Ref } from 'vue';
31
32
  import { RenderPayload } from '@templatical/types';
@@ -743,6 +744,20 @@ declare interface TemplaticalEditorBase {
743
744
  getContent(): TemplateContent;
744
745
  setContent(content: TemplateContent): void;
745
746
  setTheme(theme: UiTheme): void;
747
+ /**
748
+ * Replace the configured merge tags after `init()`.
749
+ *
750
+ * Everything that renders a tag reads the same list, so a replacement
751
+ * repaints the canvas, the sidebar fields and the built-in picker together.
752
+ * Use it when tags are minted or renamed while the editor is open — mutating
753
+ * the array you passed to `init()` is not a supported substitute and will
754
+ * not repaint anything already on screen.
755
+ *
756
+ * Type-ahead autocomplete is the one exception: whether it is active is
757
+ * decided when a block opens for editing, so going from no tags to some
758
+ * enables it for the next block opened, not one already being edited.
759
+ */
760
+ setMergeTags(tags: MergeTag[]): void;
746
761
  unmount(): void;
747
762
  /**
748
763
  * Render the current template to MJML.
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
1
+ import { t as e } from "./createLucideIcon-CDDkF1Tm.js";
2
2
  var t = e({
3
3
  name: "info",
4
4
  size: 24,
@@ -0,0 +1,10 @@
1
+ import { $ as e, S as t } from "./vue.runtime.esm-bundler-DShF3P6k.js";
2
+ //#region src/keys.ts
3
+ var n = Symbol("translations"), r = Symbol("editor"), i = Symbol("history"), a = Symbol("blockActions"), o = Symbol("conditionPreview"), s = Symbol("appliesConditionFilter"), c = Symbol("fontsManager"), l = Symbol("themeStyles"), u = Symbol("tplUiTheme"), d = Symbol("tplUiLocale"), f = Symbol("blockDefaults"), p = Symbol("blockRegistry"), m = Symbol("customBlockDefinitions"), h = Symbol("paletteBlocks"), g = Symbol("htmlBlockPreview"), _ = Symbol("colors"), v = Symbol("templateSettingsFields"), y = Symbol("customBlockStylesheets"), b = Symbol("mergeTags"), x = e([]), S = Symbol("mergeTagSyntax"), C = Symbol("onRequestMergeTag"), w = Symbol("mergeTagAutocomplete"), T = Symbol("mergeTagShowRawValue"), E = Symbol("mergeTagSampleMode"), D = Symbol("useMergeTagSamples"), O = Symbol("resolvePreview"), k = Symbol("previewResolution"), A = Symbol("mergeTagPicker"), j = Symbol("mergeTagRequesting"), M = Symbol("logicTagRequesting"), N = Symbol("logicTags"), P = Symbol("logicPairs"), F = Symbol("logicPicker"), I = Symbol("onRequestLogic"), L = Symbol("onRequestMedia"), R = Symbol("canDropMedia"), z = Symbol("imageUrlResolver"), B = Symbol("displayConditions"), V = Symbol("allowCustomConditions"), H = Symbol("capabilities"), U = Symbol("keyboardReorder"), W = Symbol("templateLint"), G = Symbol("editorRoot"), K = Symbol("popoverRoot"), q = Symbol("savedBlocks"), J = Symbol("authManager"), Y = Symbol("aiConfig"), X = Symbol("scoring"), Z = Symbol("cloudTranslations");
4
+ function Q(e, n) {
5
+ let r = t(e, null);
6
+ if (r == null) throw Error(`${n} requires a provider for ${e.description ?? "unknown key"}. Ensure it renders inside the editor, below Editor.vue.`);
7
+ return r;
8
+ }
9
+ //#endregion
10
+ export { j as A, k as B, P as C, b as D, M as E, I as F, v as G, q as H, L as I, d as J, l as K, C as L, T as M, S as N, w as O, x as P, h as R, U as S, F as T, X as U, O as V, W, D as X, u as Y, Q as Z, G as _, a, g as b, R as c, _ as d, o as f, r as g, B as h, J as i, E as j, A as k, H as l, y as m, V as n, f as o, m as p, n as q, s as r, p as s, Y as t, Z as u, c as v, N as w, z as x, i as y, K as z };
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
1
+ import { t as e } from "./createLucideIcon-CDDkF1Tm.js";
2
2
  var t = e({
3
3
  name: "link",
4
4
  size: 24,
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
1
+ import { t as e } from "./createLucideIcon-CDDkF1Tm.js";
2
2
  var t = e({
3
3
  name: "list",
4
4
  size: 24,
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
1
+ import { t as e } from "./createLucideIcon-CDDkF1Tm.js";
2
2
  var t = e({
3
3
  name: "loader-circle",
4
4
  size: 24,
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
1
+ import { t as e } from "./createLucideIcon-CDDkF1Tm.js";
2
2
  var t = e({
3
3
  name: "message-circle",
4
4
  size: 24,
@@ -424,15 +424,19 @@ var e = {
424
424
  presetColors: "Vooraf ingestelde kleuren"
425
425
  },
426
426
  mergeTag: {
427
- clickToEdit: "Klik om te bewerken",
427
+ editAsText: "Als tekst bewerken",
428
+ fieldGroup: "Waarde met samenvoegvelden",
428
429
  remove: "Samenvoegveld verwijderen",
429
430
  insert: "Samenvoegveld invoegen",
430
431
  insertShort: "Samenvoegveld",
431
432
  editValue: "Waarde van het samenvoegveld bewerken",
433
+ changeTag: "Samenvoegveld wijzigen: {label}",
434
+ unknownLabel: "Samenvoegveld",
432
435
  deleteMergeTag: "Samenvoegveld verwijderen",
433
436
  suggestionEmpty: "Geen overeenkomende samenvoegvelden",
434
437
  picker: {
435
438
  title: "Samenvoegveld invoegen",
439
+ changeTitle: "Samenvoegveld wijzigen",
436
440
  searchPlaceholder: "Samenvoegvelden zoeken",
437
441
  searchAriaLabel: "Samenvoegvelden zoeken",
438
442
  noResults: "Geen overeenkomende samenvoegvelden",
@@ -615,5 +619,3 @@ var e = {
615
619
  };
616
620
  //#endregion
617
621
  export { e as default };
618
-
619
- //# sourceMappingURL=nl-Co3_RL0M.js.map
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
1
+ import { t as e } from "./createLucideIcon-CDDkF1Tm.js";
2
2
  var t = e({
3
3
  name: "pencil",
4
4
  size: 24,
@@ -1,4 +1,4 @@
1
- import { t as e } from "./createLucideIcon-Cwf_nTzE.js";
1
+ import { t as e } from "./createLucideIcon-CDDkF1Tm.js";
2
2
  var t = e({
3
3
  name: "plus",
4
4
  size: 24,