@templatical/editor 0.39.4 → 0.40.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 (210) hide show
  1. package/dist/{AiChatSidebar-5qqrS6uy.js → AiChatSidebar-a8TPBAl2.js} +3 -3
  2. package/dist/{AiFeatureMenu-BBO_Ojlp.js → AiFeatureMenu-CbgDjLqk.js} +3 -3
  3. package/dist/{BlockIssueBadge-D5oGxOQP.js → BlockIssueBadge-D8KsGWY6.js} +2 -2
  4. package/dist/BlockPreviewCanvas-XNV83YGg.js +133 -0
  5. package/dist/{CloudHeaderExtras-Cg6uF-yQ.js → CloudHeaderExtras-C-tbLyfE.js} +2 -2
  6. package/dist/{CloudPanels-D1Gg4qrG.js → CloudPanels-DnWDrgnQ.js} +4 -4
  7. package/dist/{CollaboratorBar-Cmn0LccS.js → CollaboratorBar-DUmeCkyD.js} +2 -2
  8. package/dist/{CommentsPanel-twNhYUqZ.js → CommentsPanel-9k1q-79y.js} +1 -1
  9. package/dist/{CommentsSidebar-DDO0Qx8U.js → CommentsSidebar-Bc7nORmD.js} +2 -2
  10. package/dist/{CountdownBlock-DSvbf3qU.js → CountdownBlock-C6R-hn7D.js} +1 -1
  11. package/dist/{CountdownToolbar-nvHxu8Gu.js → CountdownToolbar-DkC-qSgq.js} +4 -4
  12. package/dist/{DesignReferenceSidebar-C8ohNhOd.js → DesignReferenceSidebar-OoiYJAKS.js} +3 -3
  13. package/dist/{IssuesPanel-Ck0EGoV5.js → IssuesPanel-Dnns3O9z.js} +3 -3
  14. package/dist/{LogicTagInsertButton-D8IwH-9Z.js → LogicTagInsertButton-BimKobaG.js} +67 -67
  15. package/dist/{MergeTagInput-QI-5KG2R.js → MergeTagInput-DqpVzhy7.js} +1 -1
  16. package/dist/{MergeTagModeToggle-D793Bj_E.js → MergeTagModeToggle-BkIiAgpQ.js} +4 -4
  17. package/dist/{ParagraphEditor-D6FRxr8Y.js → ParagraphEditor-D67Cqh-T.js} +19 -19
  18. package/dist/{RestoreVersionDialog--b0qfNaK.js → RestoreVersionDialog-BaKDuPCX.js} +2 -2
  19. package/dist/{RichTextEditorContent-BC5UTVnb.js → RichTextEditorContent-AEtfKvLz.js} +5 -5
  20. package/dist/{SaveBlockDialog-C0BdEGeL.js → SaveBlockDialog-BxkI52fN.js} +8 -8
  21. package/dist/{SavedBlocksBrowserModal-BzDgXtr4.js → SavedBlocksBrowserModal-C4_25Kvn.js} +6 -6
  22. package/dist/{SavedBlocksPanels-DN-bDZzy.js → SavedBlocksPanels-DQ0w9G1O.js} +1 -1
  23. package/dist/{SavedBlocksPickBar-pEi9Et8Q.js → SavedBlocksPickBar-CtH-sfxh.js} +2 -2
  24. package/dist/{TemplateScoringPanel-B1wcfE0w.js → TemplateScoringPanel-Cs0TGtRF.js} +3 -3
  25. package/dist/{TemplateSettings-C_5leDdF.js → TemplateSettings-BD1WNP4C.js} +7 -7
  26. package/dist/{TestEmailModal-maM8SLBV.js → TestEmailModal-DZi58FU9.js} +70 -65
  27. package/dist/{TestEmailPanel-8iAZYpCK.js → TestEmailPanel-D__9Wvgz.js} +1 -1
  28. package/dist/{TitleEditor-L26QXwna.js → TitleEditor-v5p89Djs.js} +9 -9
  29. package/dist/{ToggleSwitch-JvQ_CmI1.js → ToggleSwitch-CJfQ8u57.js} +1 -1
  30. package/dist/{Toolbar-B2kDLFhn.js → Toolbar-C7SjilzH.js} +540 -525
  31. package/dist/{TplModal-DVMS_nAn.js → TplModal-B8uLyoXE.js} +3 -3
  32. package/dist/{VersionHistoryMenu-BVQityes.js → VersionHistoryMenu-b0A8mS2_.js} +2 -2
  33. package/dist/{VersionHistoryPanels-D8f8KvKX.js → VersionHistoryPanels-DfNrRT6y.js} +1 -1
  34. package/dist/{VersionPreviewBanner-BaMSgA1O.js → VersionPreviewBanner-xB9r83r0.js} +1 -1
  35. package/dist/WrapperBlock-yGmKw0T-.js +34 -0
  36. package/dist/{blockTypeIcons-CdXugKyV.js → blockTypeIcons-B0Bq1WT1.js} +1 -1
  37. package/dist/bundle-stats.json +6 -6
  38. package/dist/{ca-Bqeygp1_.js → ca-Ckgw9yd0.js} +1 -0
  39. package/dist/cdn/chunks/{AiChatSidebar-ctfIU4i0.js → AiChatSidebar-mKImUXi6.js} +7 -7
  40. package/dist/cdn/chunks/{AiChatSidebar-ctfIU4i0.js.map → AiChatSidebar-mKImUXi6.js.map} +1 -1
  41. package/dist/cdn/chunks/{AiFeatureMenu-ByygdH_9.js → AiFeatureMenu-23HCL517.js} +4 -4
  42. package/dist/cdn/chunks/{AiFeatureMenu-ByygdH_9.js.map → AiFeatureMenu-23HCL517.js.map} +1 -1
  43. package/dist/cdn/chunks/{BlockIssueBadge-9hHpaXb9.js → BlockIssueBadge-DS1pUf5g.js} +3 -3
  44. package/dist/cdn/chunks/{BlockIssueBadge-9hHpaXb9.js.map → BlockIssueBadge-DS1pUf5g.js.map} +1 -1
  45. package/dist/cdn/chunks/BlockPreviewCanvas-DObWyQfh.js +135 -0
  46. package/dist/cdn/chunks/BlockPreviewCanvas-DObWyQfh.js.map +1 -0
  47. package/dist/cdn/chunks/{CloudHeaderExtras-BxsMpvVr.js → CloudHeaderExtras-DOB_uWpt.js} +3 -3
  48. package/dist/cdn/chunks/{CloudHeaderExtras-BxsMpvVr.js.map → CloudHeaderExtras-DOB_uWpt.js.map} +1 -1
  49. package/dist/cdn/chunks/{CloudPanels-DmxmqAS_.js → CloudPanels-DcAn5QW7.js} +5 -5
  50. package/dist/cdn/chunks/{CloudPanels-DmxmqAS_.js.map → CloudPanels-DcAn5QW7.js.map} +1 -1
  51. package/dist/cdn/chunks/{CollaboratorBar-B8ttqAqX.js → CollaboratorBar-C0M8c2Vv.js} +3 -3
  52. package/dist/cdn/chunks/{CollaboratorBar-B8ttqAqX.js.map → CollaboratorBar-C0M8c2Vv.js.map} +1 -1
  53. package/dist/cdn/chunks/{CommentsPanel-C8ibhaiK.js → CommentsPanel-BtAGZfF6.js} +2 -2
  54. package/dist/cdn/chunks/{CommentsPanel-C8ibhaiK.js.map → CommentsPanel-BtAGZfF6.js.map} +1 -1
  55. package/dist/cdn/chunks/{CommentsSidebar-CybWfZ3V.js → CommentsSidebar-Ws07MXYj.js} +3 -3
  56. package/dist/cdn/chunks/{CommentsSidebar-CybWfZ3V.js.map → CommentsSidebar-Ws07MXYj.js.map} +1 -1
  57. package/dist/cdn/chunks/{CountdownBlock-DdC8Lg5F.js → CountdownBlock-sVDjKkRw.js} +2 -2
  58. package/dist/cdn/chunks/{CountdownBlock-DdC8Lg5F.js.map → CountdownBlock-sVDjKkRw.js.map} +1 -1
  59. package/dist/cdn/chunks/{CountdownToolbar-DRESXiVD.js → CountdownToolbar-Bu93WiS8.js} +5 -5
  60. package/dist/cdn/chunks/{CountdownToolbar-DRESXiVD.js.map → CountdownToolbar-Bu93WiS8.js.map} +1 -1
  61. package/dist/cdn/chunks/{DesignReferenceSidebar-CtaoY-hl.js → DesignReferenceSidebar-BlSdh5B7.js} +4 -4
  62. package/dist/cdn/chunks/{DesignReferenceSidebar-CtaoY-hl.js.map → DesignReferenceSidebar-BlSdh5B7.js.map} +1 -1
  63. package/dist/cdn/chunks/{IssuesPanel-C6RlIxoi.js → IssuesPanel-CKkv9z9g.js} +4 -4
  64. package/dist/cdn/chunks/{IssuesPanel-C6RlIxoi.js.map → IssuesPanel-CKkv9z9g.js.map} +1 -1
  65. package/dist/cdn/chunks/{LogicTagInsertButton-DpyPozop.js → LogicTagInsertButton-CHc1yZ9v.js} +165 -165
  66. package/dist/cdn/chunks/{LogicTagInsertButton-DpyPozop.js.map → LogicTagInsertButton-CHc1yZ9v.js.map} +1 -1
  67. package/dist/cdn/chunks/{MergeTagInput-ERJr7bP_.js → MergeTagInput--qTYfCWk.js} +2 -2
  68. package/dist/cdn/chunks/{MergeTagInput-ERJr7bP_.js.map → MergeTagInput--qTYfCWk.js.map} +1 -1
  69. package/dist/cdn/chunks/{MergeTagModeToggle-n3nvSNeQ.js → MergeTagModeToggle-CdWIGo3Q.js} +5 -5
  70. package/dist/cdn/chunks/{MergeTagModeToggle-n3nvSNeQ.js.map → MergeTagModeToggle-CdWIGo3Q.js.map} +1 -1
  71. package/dist/cdn/chunks/{ParagraphEditor-R2ph_UOo.js → ParagraphEditor-BilbVtrG.js} +17 -17
  72. package/dist/cdn/chunks/{ParagraphEditor-R2ph_UOo.js.map → ParagraphEditor-BilbVtrG.js.map} +1 -1
  73. package/dist/cdn/chunks/{RestoreVersionDialog-C-dwbb7T.js → RestoreVersionDialog-Q-a44Vjv.js} +3 -3
  74. package/dist/cdn/chunks/{RestoreVersionDialog-C-dwbb7T.js.map → RestoreVersionDialog-Q-a44Vjv.js.map} +1 -1
  75. package/dist/cdn/chunks/{RichTextEditorContent-Ch5zeyZ7.js → RichTextEditorContent-Fzuu9pLP.js} +6 -6
  76. package/dist/cdn/chunks/{RichTextEditorContent-Ch5zeyZ7.js.map → RichTextEditorContent-Fzuu9pLP.js.map} +1 -1
  77. package/dist/cdn/chunks/{SaveBlockDialog-C_BPjVv6.js → SaveBlockDialog-DeW_M6kh.js} +9 -9
  78. package/dist/cdn/chunks/{SaveBlockDialog-C_BPjVv6.js.map → SaveBlockDialog-DeW_M6kh.js.map} +1 -1
  79. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CrrGEfFb.js → SavedBlocksBrowserModal-BzQWibKG.js} +6 -6
  80. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CrrGEfFb.js.map → SavedBlocksBrowserModal-BzQWibKG.js.map} +1 -1
  81. package/dist/cdn/chunks/{SavedBlocksPanels-DfTaMPAr.js → SavedBlocksPanels-Ce1RePjk.js} +2 -2
  82. package/dist/cdn/chunks/{SavedBlocksPanels-DfTaMPAr.js.map → SavedBlocksPanels-Ce1RePjk.js.map} +1 -1
  83. package/dist/cdn/chunks/{SavedBlocksPickBar-DziwHYSu.js → SavedBlocksPickBar-DIDl6xfy.js} +3 -3
  84. package/dist/cdn/chunks/{SavedBlocksPickBar-DziwHYSu.js.map → SavedBlocksPickBar-DIDl6xfy.js.map} +1 -1
  85. package/dist/cdn/chunks/{TemplateScoringPanel-CR6RG6dZ.js → TemplateScoringPanel-d_Ppowsq.js} +49 -49
  86. package/dist/cdn/chunks/{TemplateScoringPanel-CR6RG6dZ.js.map → TemplateScoringPanel-d_Ppowsq.js.map} +1 -1
  87. package/dist/cdn/chunks/{TemplateSettings-DjXiiiNr.js → TemplateSettings-Dr5OJ0Gi.js} +8 -8
  88. package/dist/cdn/chunks/{TemplateSettings-DjXiiiNr.js.map → TemplateSettings-Dr5OJ0Gi.js.map} +1 -1
  89. package/dist/cdn/chunks/{TestEmailModal-DId9Og-N.js → TestEmailModal-CWTmaJuT.js} +56 -51
  90. package/dist/cdn/chunks/TestEmailModal-CWTmaJuT.js.map +1 -0
  91. package/dist/cdn/chunks/{TestEmailPanel-B8LwXmeX.js → TestEmailPanel-BdYsVHXA.js} +2 -2
  92. package/dist/cdn/chunks/{TestEmailPanel-B8LwXmeX.js.map → TestEmailPanel-BdYsVHXA.js.map} +1 -1
  93. package/dist/cdn/chunks/{TitleEditor-C7KMzX1e.js → TitleEditor-pJeeZ-PX.js} +9 -9
  94. package/dist/cdn/chunks/{TitleEditor-C7KMzX1e.js.map → TitleEditor-pJeeZ-PX.js.map} +1 -1
  95. package/dist/cdn/chunks/{ToggleSwitch-CDy8OfcB.js → ToggleSwitch-0dGCYnRY.js} +2 -2
  96. package/dist/cdn/chunks/{ToggleSwitch-CDy8OfcB.js.map → ToggleSwitch-0dGCYnRY.js.map} +1 -1
  97. package/dist/cdn/chunks/{Toolbar-DqFhWxgW.js → Toolbar-BsiHW9gY.js} +493 -478
  98. package/dist/cdn/chunks/{Toolbar-DqFhWxgW.js.map → Toolbar-BsiHW9gY.js.map} +1 -1
  99. package/dist/cdn/chunks/{TplModal-BKqDFLq3.js → TplModal-CEuGD7pt.js} +4 -4
  100. package/dist/cdn/chunks/{TplModal-BKqDFLq3.js.map → TplModal-CEuGD7pt.js.map} +1 -1
  101. package/dist/cdn/chunks/{VersionHistoryMenu-Dij1pTEb.js → VersionHistoryMenu-B3-hNu9c.js} +3 -3
  102. package/dist/cdn/chunks/{VersionHistoryMenu-Dij1pTEb.js.map → VersionHistoryMenu-B3-hNu9c.js.map} +1 -1
  103. package/dist/cdn/chunks/{VersionHistoryPanels-DcCFFDK6.js → VersionHistoryPanels-C1yck5gT.js} +2 -2
  104. package/dist/cdn/chunks/{VersionHistoryPanels-DcCFFDK6.js.map → VersionHistoryPanels-C1yck5gT.js.map} +1 -1
  105. package/dist/cdn/chunks/{VersionPreviewBanner-Df3FVlig.js → VersionPreviewBanner-PzVQSBJE.js} +2 -2
  106. package/dist/cdn/chunks/{VersionPreviewBanner-Df3FVlig.js.map → VersionPreviewBanner-PzVQSBJE.js.map} +1 -1
  107. package/dist/cdn/chunks/WrapperBlock-DGkbmj06.js +36 -0
  108. package/dist/cdn/chunks/WrapperBlock-DGkbmj06.js.map +1 -0
  109. package/dist/cdn/chunks/{ca-Bqeygp1_.js → ca-Ckgw9yd0.js} +2 -1
  110. package/dist/cdn/chunks/ca-Ckgw9yd0.js.map +1 -0
  111. package/dist/cdn/chunks/{cloud-eaXyxZ8l.js → cloud-CIT4yPp4.js} +2 -2
  112. package/dist/cdn/chunks/{cloud-eaXyxZ8l.js.map → cloud-CIT4yPp4.js.map} +1 -1
  113. package/dist/cdn/chunks/{createCloudRuntime-D5bXzcTe.js → createCloudRuntime-COUxbPvd.js} +49 -40
  114. package/dist/cdn/chunks/createCloudRuntime-COUxbPvd.js.map +1 -0
  115. package/dist/cdn/chunks/{de-CY6SlqBx.js → de-D4dweQw8.js} +2 -1
  116. package/dist/cdn/chunks/de-D4dweQw8.js.map +1 -0
  117. package/dist/{en-8V-2kDcp.js → cdn/chunks/en-VE7R7NyL.js} +3 -0
  118. package/dist/cdn/chunks/en-VE7R7NyL.js.map +1 -0
  119. package/dist/{es-Cmn1rT3l.js → cdn/chunks/es-B9OhP8H3.js} +3 -0
  120. package/dist/cdn/chunks/es-B9OhP8H3.js.map +1 -0
  121. package/dist/cdn/chunks/{extensions-Bhu8UEE5.js → extensions-CafoGF65.js} +5 -5
  122. package/dist/cdn/chunks/{extensions-Bhu8UEE5.js.map → extensions-CafoGF65.js.map} +1 -1
  123. package/dist/cdn/chunks/{fr-2yDa4zXM.js → fr-wrXhIi00.js} +2 -1
  124. package/dist/cdn/chunks/fr-wrXhIi00.js.map +1 -0
  125. package/dist/cdn/chunks/keys-DCWeHkSF.js +12 -0
  126. package/dist/cdn/chunks/keys-DCWeHkSF.js.map +1 -0
  127. package/dist/{nl-Bzk2zRI8.js → cdn/chunks/nl-DeFatKJe.js} +3 -0
  128. package/dist/cdn/chunks/nl-DeFatKJe.js.map +1 -0
  129. package/dist/cdn/chunks/preRenderCustomBlocks-Dpj-_cOj.js +21 -0
  130. package/dist/cdn/chunks/preRenderCustomBlocks-Dpj-_cOj.js.map +1 -0
  131. package/dist/cdn/chunks/{pt-BR-DqtSCTUi.js → pt-BR-Bh1J8ey6.js} +2 -1
  132. package/dist/cdn/chunks/pt-BR-Bh1J8ey6.js.map +1 -0
  133. package/dist/cdn/chunks/{socialIcons-9VrG8X3m.js → socialIcons-BvYNMn1G.js} +264 -258
  134. package/dist/cdn/chunks/socialIcons-BvYNMn1G.js.map +1 -0
  135. package/dist/cdn/chunks/{src-CqYYKcCI.js → src-CbGCES0u.js} +175 -168
  136. package/dist/cdn/chunks/src-CbGCES0u.js.map +1 -0
  137. package/dist/cdn/chunks/{src-CaNsA_WX.js → src-Cnc5E71L.js} +258 -247
  138. package/dist/cdn/chunks/src-Cnc5E71L.js.map +1 -0
  139. package/dist/cdn/chunks/{src-Dwgq7hf4.js → src-DveVYoWS.js} +281 -181
  140. package/dist/cdn/chunks/src-DveVYoWS.js.map +1 -0
  141. package/dist/cdn/chunks/{useCloudI18n-C09JcFS0.js → useCloudI18n-CrjWbpbu.js} +2 -2
  142. package/dist/cdn/chunks/{useCloudI18n-C09JcFS0.js.map → useCloudI18n-CrjWbpbu.js.map} +1 -1
  143. package/dist/cdn/chunks/{useEditorCore-CXYI14ux.js → useEditorCore-CQraU2s_.js} +421 -408
  144. package/dist/cdn/chunks/useEditorCore-CQraU2s_.js.map +1 -0
  145. package/dist/cdn/chunks/{useEditorRoot-DFx2fXJP.js → useEditorRoot-CshefZLP.js} +2 -2
  146. package/dist/cdn/chunks/{useEditorRoot-DFx2fXJP.js.map → useEditorRoot-CshefZLP.js.map} +1 -1
  147. package/dist/cdn/chunks/{useI18n-DTZ9sIcv.js → useI18n-CyO_Nmca.js} +2 -2
  148. package/dist/cdn/chunks/{useI18n-DTZ9sIcv.js.map → useI18n-CyO_Nmca.js.map} +1 -1
  149. package/dist/cdn/chunks/{useLogicTag-E2V0Xdcb.js → useLogicTag-DF7-l66G.js} +4 -4
  150. package/dist/cdn/chunks/{useLogicTag-E2V0Xdcb.js.map → useLogicTag-DF7-l66G.js.map} +1 -1
  151. package/dist/cdn/chunks/{useMergeTag-BE8oDoha.js → useMergeTag-DbIHw4NG.js} +4 -4
  152. package/dist/cdn/chunks/{useMergeTag-BE8oDoha.js.map → useMergeTag-DbIHw4NG.js.map} +1 -1
  153. package/dist/cdn/chunks/{usePopoverPosition-gB9q-ql7.js → usePopoverPosition-BJRvAb-h.js} +2 -2
  154. package/dist/cdn/chunks/{usePopoverPosition-gB9q-ql7.js.map → usePopoverPosition-BJRvAb-h.js.map} +1 -1
  155. package/dist/cdn/chunks/{useScrollToBlock-CtTXwmiU.js → useScrollToBlock-DgHZJvID.js} +2 -2
  156. package/dist/cdn/chunks/{useScrollToBlock-CtTXwmiU.js.map → useScrollToBlock-DgHZJvID.js.map} +1 -1
  157. package/dist/cdn/editor.css +1 -1
  158. package/dist/cdn/editor.js +484 -460
  159. package/dist/cdn/editor.js.map +1 -1
  160. package/dist/{cloud-C9xWZXhg.js → cloud-DsqqUfzh.js} +1 -1
  161. package/dist/{createCloudRuntime-BGd5--Bq.js → createCloudRuntime-iLflkYzP.js} +47 -38
  162. package/dist/{de-CY6SlqBx.js → de-D4dweQw8.js} +1 -0
  163. package/dist/{dist-tGkjkX-v.js → dist-DbUZvK04.js} +277 -176
  164. package/dist/{cdn/chunks/en-8V-2kDcp.js → en-VE7R7NyL.js} +1 -2
  165. package/dist/{cdn/chunks/es-Cmn1rT3l.js → es-B9OhP8H3.js} +1 -2
  166. package/dist/{extensions-DRN-elXT.js → extensions-DDhjuVKy.js} +4 -4
  167. package/dist/{fr-2yDa4zXM.js → fr-wrXhIi00.js} +1 -0
  168. package/dist/index.d.ts +65 -0
  169. package/dist/keys-CDqfZIRt.js +10 -0
  170. package/dist/{cdn/chunks/nl-Bzk2zRI8.js → nl-DeFatKJe.js} +1 -2
  171. package/dist/preRenderCustomBlocks-BBSqQgke.js +19 -0
  172. package/dist/{pt-BR-DqtSCTUi.js → pt-BR-Bh1J8ey6.js} +1 -0
  173. package/dist/{socialIcons-DkGcpEwC.js → socialIcons-O7PZCW2P.js} +245 -239
  174. package/dist/style.css +1 -1
  175. package/dist/templatical-editor.js +520 -496
  176. package/dist/{useCloudI18n-D1iedlP3.js → useCloudI18n-DpEsiLeR.js} +1 -1
  177. package/dist/{useEditorCore-BUVbQgwb.js → useEditorCore-Dt_VWNqX.js} +817 -804
  178. package/dist/{useEditorRoot-BOxn5EfP.js → useEditorRoot-CkB_5d0h.js} +1 -1
  179. package/dist/{useI18n-Ds_-druD.js → useI18n-B_CdcBwG.js} +1 -1
  180. package/dist/{useLogicTag-DoHfc08B.js → useLogicTag-D9pvgxQR.js} +3 -3
  181. package/dist/{useMergeTag-DXyum3kG.js → useMergeTag-BaVFPdlq.js} +5 -5
  182. package/dist/{usePopoverPosition-Du-Ah8E9.js → usePopoverPosition-DH7z3Ghm.js} +1 -1
  183. package/dist/{useScrollToBlock-DXQYPCnJ.js → useScrollToBlock-Dj4v3rxr.js} +1 -1
  184. package/package.json +7 -7
  185. package/dist/BlockPreviewCanvas-BMC16_QU.js +0 -131
  186. package/dist/cdn/chunks/BlockPreviewCanvas-DeS7Sa--.js +0 -133
  187. package/dist/cdn/chunks/BlockPreviewCanvas-DeS7Sa--.js.map +0 -1
  188. package/dist/cdn/chunks/TestEmailModal-DId9Og-N.js.map +0 -1
  189. package/dist/cdn/chunks/ca-Bqeygp1_.js.map +0 -1
  190. package/dist/cdn/chunks/createCloudRuntime-D5bXzcTe.js.map +0 -1
  191. package/dist/cdn/chunks/de-CY6SlqBx.js.map +0 -1
  192. package/dist/cdn/chunks/emailFrameWidth-BmFCN2dp.js +0 -8
  193. package/dist/cdn/chunks/emailFrameWidth-BmFCN2dp.js.map +0 -1
  194. package/dist/cdn/chunks/en-8V-2kDcp.js.map +0 -1
  195. package/dist/cdn/chunks/es-Cmn1rT3l.js.map +0 -1
  196. package/dist/cdn/chunks/fr-2yDa4zXM.js.map +0 -1
  197. package/dist/cdn/chunks/keys-dJbD1QPs.js +0 -12
  198. package/dist/cdn/chunks/keys-dJbD1QPs.js.map +0 -1
  199. package/dist/cdn/chunks/nl-Bzk2zRI8.js.map +0 -1
  200. package/dist/cdn/chunks/preRenderCustomBlocks-Bdpiiw4A.js +0 -23
  201. package/dist/cdn/chunks/preRenderCustomBlocks-Bdpiiw4A.js.map +0 -1
  202. package/dist/cdn/chunks/pt-BR-DqtSCTUi.js.map +0 -1
  203. package/dist/cdn/chunks/socialIcons-9VrG8X3m.js.map +0 -1
  204. package/dist/cdn/chunks/src-CaNsA_WX.js.map +0 -1
  205. package/dist/cdn/chunks/src-CqYYKcCI.js.map +0 -1
  206. package/dist/cdn/chunks/src-Dwgq7hf4.js.map +0 -1
  207. package/dist/cdn/chunks/useEditorCore-CXYI14ux.js.map +0 -1
  208. package/dist/emailFrameWidth-BmFCN2dp.js +0 -6
  209. package/dist/keys-BdoSgsz9.js +0 -10
  210. package/dist/preRenderCustomBlocks-DFXH54Zr.js +0 -21
@@ -1,35 +1,35 @@
1
1
  import { A as e, B as t, E as n, F as r, H as i, I as a, K as o, N as s, P as c, Q as l, R as u, S as d, U as f, X as p, Y as m, at as h, b as g, c as _, ct as v, et as y, f as b, g as x, h as S, it as C, j as w, k as T, l as E, lt as D, m as O, p as k, q as A, rt as j, s as M, t as N, u as P, ut as F, w as I, x as L, y as R } from "./draggable-IB4x6w2O.js";
2
- import { A as z, B, C as V, D as H, E as ee, F as te, H as U, I as ne, M as re, N as ie, O as ae, P as oe, R as se, T as ce, V as le, W as ue, _ as de, a as fe, b as pe, d as me, f as he, g as ge, h as _e, i as W, it as ve, j as ye, k as be, l as xe, m as Se, n as Ce, o as we, p as Te, r as Ee, rt as De, s as Oe, u as ke, w as Ae } from "./src-Dwgq7hf4.js";
3
- import { a as je, b as Me, g as Ne, h as Pe, i as Fe, m as Ie, n as Le, o as Re, t as ze, v as Be, y as Ve } from "./socialIcons-9VrG8X3m.js";
4
- import { _ as He, h as Ue, v as We, y as Ge } from "./dist-BRZhN8qJ.js";
5
- import { a as G, c as Ke, i as qe } from "./dist-CXB2_kBa.js";
6
- import { A as Je, B as Ye, C as Xe, D as K, E as Ze, F as Qe, G as $e, I as et, J as tt, K as nt, L as rt, M as it, N as at, O as ot, P as q, R as st, S as ct, T as lt, V as ut, W as dt, X as J, Y as ft, Z as pt, _ as mt, a as ht, b as gt, c as _t, d as vt, f as yt, g as Y, h as bt, j as xt, k as St, l as Ct, m as wt, n as Tt, o as Et, p as Dt, q as Ot, r as kt, s as At, v as jt, w as Mt, x as Nt, y as Pt, z as Ft } from "./keys-dJbD1QPs.js";
2
+ import { A as z, B, F as V, G as ee, H as te, I as ne, J as re, M as ie, N as ae, O as oe, P as se, R as ce, T as le, V as ue, Y as de, Z as fe, _ as pe, a as me, b as he, d as ge, f as _e, ft as ve, g as ye, h as be, i as H, j as xe, k as Se, l as Ce, m as we, n as Te, o as Ee, p as De, pt as Oe, q as ke, r as Ae, s as je, u as Me, ut as Ne, z as Pe } from "./src-DveVYoWS.js";
3
+ import { a as Fe, b as Ie, g as Le, h as Re, i as ze, m as Be, n as Ve, o as He, t as Ue, v as We, y as Ge } from "./socialIcons-BvYNMn1G.js";
4
+ import { _ as Ke, h as qe, v as Je, y as Ye } from "./dist-BRZhN8qJ.js";
5
+ import { a as U, c as Xe, i as Ze } from "./dist-CXB2_kBa.js";
6
+ import { $ as Qe, A as $e, B as et, C as tt, D as nt, E as rt, F as W, G as it, H as at, I as ot, J as st, K as ct, L as lt, M as ut, N as dt, O as G, P as ft, Q as K, R as pt, S as mt, T as ht, V as gt, X as _t, Y as vt, Z as yt, _ as bt, a as xt, b as St, c as Ct, d as wt, f as Tt, g as q, h as Et, j as Dt, k as Ot, l as kt, m as At, n as jt, o as Mt, p as Nt, q as Pt, r as Ft, s as It, v as Lt, w as Rt, x as zt, y as Bt, z as Vt } from "./keys-DCWeHkSF.js";
7
7
  import "./timeouts-DHPZQ0G3.js";
8
- import { t as X } from "./useI18n-DTZ9sIcv.js";
9
- import { t as Z } from "./logger-ByvdoAwq.js";
10
- import { i as It, o as Lt, r as Rt, t as zt } from "./usePopoverPosition-gB9q-ql7.js";
11
- import { r as Bt, t as Vt } from "./templateSettingsFields-YCFVBVYh.js";
12
- import { A as Ht, Bt as Ut, Et as Wt, H as Gt, Ot as Kt, Tt as qt, X as Jt, d as Yt, ft as Xt, ht as Zt, it as Qt, o as $t, s as en, tt as tn, u as nn, v as rn, vt as an, zt as on } from "./icons-BKkJ-5xF.js";
13
- import { t as sn } from "./LoadingTrack-_7DH_5aw.js";
14
- import { t as cn } from "./_plugin-vue_export-helper-B3ysoDQm.js";
15
- import { t as ln } from "./useEditorRoot-DFx2fXJP.js";
16
- import "./useCloudI18n-C09JcFS0.js";
17
- import { t as un } from "./useMergeTag-BE8oDoha.js";
18
- import { t as dn } from "./useLogicTag-E2V0Xdcb.js";
19
- import { t as fn } from "./useAliveFlag-DAlQLbM2.js";
8
+ import { t as J } from "./useI18n-CyO_Nmca.js";
9
+ import { t as Y } from "./logger-ByvdoAwq.js";
10
+ import { i as Ht, o as Ut, r as X, t as Wt } from "./usePopoverPosition-BJRvAb-h.js";
11
+ import { r as Gt, t as Kt } from "./templateSettingsFields-YCFVBVYh.js";
12
+ import { A as qt, Bt as Jt, Et as Yt, H as Xt, Ot as Zt, Tt as Qt, X as $t, d as en, ft as tn, ht as nn, it as rn, o as an, s as on, tt as sn, u as cn, v as ln, vt as un, zt as dn } from "./icons-BKkJ-5xF.js";
13
+ import { t as fn } from "./LoadingTrack-_7DH_5aw.js";
14
+ import { t as pn } from "./_plugin-vue_export-helper-B3ysoDQm.js";
15
+ import { t as mn } from "./useEditorRoot-CshefZLP.js";
16
+ import "./useCloudI18n-CrjWbpbu.js";
17
+ import { t as Z } from "./useMergeTag-DbIHw4NG.js";
18
+ import { t as hn } from "./useLogicTag-DF7-l66G.js";
19
+ import { t as gn } from "./useAliveFlag-DAlQLbM2.js";
20
20
  //#region src/utils/activeEditorTracker.ts
21
- var pn = /* @__PURE__ */ new Set(), Q = 0, mn = 0;
22
- function hn() {
23
- let e = ++mn;
24
- return pn.add(e), Q === 0 && (Q = e), {
21
+ var _n = /* @__PURE__ */ new Set(), Q = 0, vn = 0;
22
+ function yn() {
23
+ let e = ++vn;
24
+ return _n.add(e), Q === 0 && (Q = e), {
25
25
  id: e,
26
- isActive: () => pn.size <= 1 || Q === e,
26
+ isActive: () => _n.size <= 1 || Q === e,
27
27
  claim: () => {
28
28
  Q = e;
29
29
  },
30
30
  dispose: () => {
31
- if (pn.delete(e), Q === e) {
32
- let e = Array.from(pn);
31
+ if (_n.delete(e), Q === e) {
32
+ let e = Array.from(_n);
33
33
  Q = e[e.length - 1] ?? 0;
34
34
  }
35
35
  }
@@ -37,8 +37,8 @@ function hn() {
37
37
  }
38
38
  //#endregion
39
39
  //#region src/composables/usePreviewResolution.ts
40
- var gn = 500;
41
- function _n(e) {
40
+ var bn = 500;
41
+ function xn(e) {
42
42
  let n = typeof e.resolvePreview == "function", r = l(null), i = l(!1), a = l(!1), o = 0, s = null;
43
43
  function c() {
44
44
  s !== null && (clearTimeout(s), s = null);
@@ -49,13 +49,13 @@ function _n(e) {
49
49
  let n = ++o;
50
50
  i.value = !0;
51
51
  let s = {
52
- content: pe(e.getContent()),
52
+ content: le(e.getContent()),
53
53
  ...e.getRecipient?.() === void 0 ? {} : { recipient: e.getRecipient() }
54
54
  };
55
55
  try {
56
56
  let e = await t(s);
57
57
  if (n !== o) return;
58
- if (!Ce(e)) {
58
+ if (!Te(e)) {
59
59
  a.value = !0;
60
60
  return;
61
61
  }
@@ -75,7 +75,7 @@ function _n(e) {
75
75
  }
76
76
  s = setTimeout(() => {
77
77
  s = null, u();
78
- }, gn);
78
+ }, bn);
79
79
  }
80
80
  }
81
81
  return t(() => [e.isActive(), e.getRecipient?.()], ([e]) => {
@@ -97,7 +97,7 @@ function _n(e) {
97
97
  }
98
98
  //#endregion
99
99
  //#region src/composables/useImageUrlResolver.ts
100
- function vn(e) {
100
+ function Sn(e) {
101
101
  let t = p(/* @__PURE__ */ new Map()), n = /* @__PURE__ */ new Set();
102
102
  function r(e) {
103
103
  return t.get(e);
@@ -130,8 +130,8 @@ function vn(e) {
130
130
  lookup: a
131
131
  };
132
132
  }
133
- function yn(e) {
134
- let r = n(Nt, null), i = b(e);
133
+ function Cn(e) {
134
+ let r = n(zt, null), i = b(e);
135
135
  if (!r) return i;
136
136
  let a;
137
137
  function s() {
@@ -160,7 +160,7 @@ function yn(e) {
160
160
  }
161
161
  //#endregion
162
162
  //#region src/composables/useMergeTagPicker.ts
163
- function bn() {
163
+ function wn() {
164
164
  let e = l(!1), t = l([]), n = l(null), r = null;
165
165
  function i(i, a) {
166
166
  if (r) {
@@ -191,7 +191,7 @@ function bn() {
191
191
  }
192
192
  //#endregion
193
193
  //#region src/composables/useLogicTagPicker.ts
194
- function xn() {
194
+ function Tn() {
195
195
  let e = l(!1), t = l([]), n = l([]), r = null;
196
196
  function i(i, a) {
197
197
  if (r) {
@@ -222,17 +222,17 @@ function xn() {
222
222
  }
223
223
  //#endregion
224
224
  //#region src/composables/useTemplateLint.ts
225
- function Sn(e) {
225
+ function En(e) {
226
226
  return e ? e.disabled === !0 || e.accessibility === !1 && e.structure === !1 && e.links === !1 : !1;
227
227
  }
228
- function Cn(e) {
229
- let n = l([]), r = l(!1), i = l(!1), a = y(null), o = Sn(e.options), s = null, c = !1;
228
+ function Dn(e) {
229
+ let n = l([]), r = l(!1), i = l(!1), a = y(null), o = En(e.options), s = null, c = !1;
230
230
  o || u();
231
231
  async function u() {
232
232
  try {
233
- let t = await import("./src-CaNsA_WX.js");
233
+ let t = await import("./src-Cnc5E71L.js");
234
234
  if (c) return;
235
- a.value = { lintTemplate: t.lintTemplate }, r.value = !0, d(), s = Ge(e.content, d, {
235
+ a.value = { lintTemplate: t.lintTemplate }, r.value = !0, d(), s = Ye(e.content, d, {
236
236
  debounce: e.debounce ?? 500,
237
237
  deep: !0
238
238
  });
@@ -267,7 +267,7 @@ function Cn(e) {
267
267
  }
268
268
  //#endregion
269
269
  //#region src/composables/useKeyboardReorder.ts
270
- function wn(e, t, n = []) {
270
+ function On(e, t, n = []) {
271
271
  let r = l(null), i = l(""), a = null;
272
272
  function o(t) {
273
273
  let n = e.content.value.blocks, r = n.findIndex((e) => e.id === t);
@@ -294,7 +294,7 @@ function wn(e, t, n = []) {
294
294
  let i = o(r);
295
295
  if (!i) return "";
296
296
  let a = (i.sectionId ? c(i.sectionId, i.columnIndex ?? 0) : e.content.value.blocks)?.[i.index];
297
- return a ? Re(a, t.t, n) : "";
297
+ return a ? He(a, t.t, n) : "";
298
298
  }
299
299
  function c(t, n) {
300
300
  return e.content.value.blocks.find((e) => e.id === t && e.type === "section")?.children[n] ?? null;
@@ -363,13 +363,13 @@ function wn(e, t, n = []) {
363
363
  }
364
364
  //#endregion
365
365
  //#region src/composables/useUiTheme.ts
366
- function Tn(e) {
367
- let t = Ke("(prefers-color-scheme: dark)");
366
+ function kn(e) {
367
+ let t = Xe("(prefers-color-scheme: dark)");
368
368
  return { resolvedTheme: b(() => e.value === "auto" ? t.value ? "dark" : "light" : e.value) };
369
369
  }
370
370
  //#endregion
371
371
  //#region src/composables/useThemeStyles.ts
372
- var En = {
372
+ var An = {
373
373
  bg: "--tpl-bg",
374
374
  bgElevated: "--tpl-bg-elevated",
375
375
  bgHover: "--tpl-bg-hover",
@@ -393,10 +393,10 @@ var En = {
393
393
  dangerLight: "--tpl-danger-light",
394
394
  canvasBg: "--tpl-canvas-bg"
395
395
  };
396
- function Dn({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
396
+ function jn({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
397
397
  return { themeStyles: b(() => {
398
398
  let r = {}, i = e.value, a = t.value === "dark" ? i.dark : i;
399
- if (a) for (let [e, t] of Object.entries(En)) {
399
+ if (a) for (let [e, t] of Object.entries(An)) {
400
400
  let n = a[e];
401
401
  n && (r[t] = n);
402
402
  }
@@ -405,7 +405,7 @@ function Dn({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
405
405
  }
406
406
  //#endregion
407
407
  //#region src/composables/useBlockRegistry.ts
408
- function On() {
408
+ function Mn() {
409
409
  let e = y(/* @__PURE__ */ new Map());
410
410
  function t(t, n) {
411
411
  e.value.set(t, n), C(e);
@@ -414,7 +414,7 @@ function On() {
414
414
  let r = `custom:${t.type}`;
415
415
  e.value.set(r, {
416
416
  component: n,
417
- createBlock: () => ce(t),
417
+ createBlock: () => z(t),
418
418
  definition: t
419
419
  }), C(e);
420
420
  }
@@ -445,7 +445,7 @@ function On() {
445
445
  strictFilters: !1
446
446
  }).parseAndRender(t.template, e.fieldValues);
447
447
  } catch (t) {
448
- return Z.error(`Failed to render custom block "${e.customType}":`, t), o(`Render error: ${e.customType}`);
448
+ return Y.error(`Failed to render custom block "${e.customType}":`, t), o(`Render error: ${e.customType}`);
449
449
  }
450
450
  }
451
451
  function c(t) {
@@ -463,9 +463,9 @@ function On() {
463
463
  }
464
464
  //#endregion
465
465
  //#region src/composables/useCustomBlockStylesheets.ts
466
- function kn(e, t) {
466
+ function Nn(e, t) {
467
467
  return b(() => {
468
- let n = An(e.value.blocks);
468
+ let n = Pn(e.value.blocks);
469
469
  if (n.size === 0) return [];
470
470
  let r = /* @__PURE__ */ new Set(), i = [];
471
471
  for (let e of n) {
@@ -477,37 +477,37 @@ function kn(e, t) {
477
477
  return i;
478
478
  });
479
479
  }
480
- function An(e) {
480
+ function Pn(e) {
481
481
  let t = /* @__PURE__ */ new Set();
482
- return jn(e, t), t;
482
+ return Fn(e, t), t;
483
483
  }
484
- function jn(e, t) {
484
+ function Fn(e, t) {
485
485
  for (let n of e) {
486
- if (ue(n)) {
486
+ if (fe(n)) {
487
487
  t.add(n.customType);
488
488
  continue;
489
489
  }
490
490
  if (n.type === "section") {
491
491
  let e = n.children;
492
492
  if (!e) continue;
493
- for (let n of e) jn(n, t);
494
- }
493
+ for (let n of e) Fn(n, t);
494
+ } else Ne(n) && Fn(n.children, t);
495
495
  }
496
496
  }
497
497
  //#endregion
498
498
  //#region src/utils/registerBuiltInBlocks.ts
499
- var Mn = [
499
+ var In = [
500
500
  {
501
501
  type: "section",
502
- createBlock: ye
502
+ createBlock: ne
503
503
  },
504
504
  {
505
505
  type: "title",
506
- createBlock: te
506
+ createBlock: ue
507
507
  },
508
508
  {
509
509
  type: "paragraph",
510
- createBlock: z
510
+ createBlock: V
511
511
  },
512
512
  {
513
513
  type: "image",
@@ -515,43 +515,43 @@ var Mn = [
515
515
  },
516
516
  {
517
517
  type: "button",
518
- createBlock: V
518
+ createBlock: oe
519
519
  },
520
520
  {
521
521
  type: "divider",
522
- createBlock: ee
522
+ createBlock: xe
523
523
  },
524
524
  {
525
525
  type: "video",
526
- createBlock: ne
526
+ createBlock: te
527
527
  },
528
528
  {
529
529
  type: "social",
530
- createBlock: re
530
+ createBlock: ce
531
531
  },
532
532
  {
533
533
  type: "menu",
534
- createBlock: be
534
+ createBlock: se
535
535
  },
536
536
  {
537
537
  type: "table",
538
- createBlock: oe
538
+ createBlock: B
539
539
  },
540
540
  {
541
541
  type: "spacer",
542
- createBlock: ie
542
+ createBlock: Pe
543
543
  },
544
544
  {
545
545
  type: "html",
546
- createBlock: H
546
+ createBlock: ie
547
547
  },
548
548
  {
549
549
  type: "countdown",
550
- createBlock: Ae
550
+ createBlock: Se
551
551
  }
552
552
  ];
553
- function Nn(e, t) {
554
- for (let n of Mn) {
553
+ function Ln(e, t) {
554
+ for (let n of In) {
555
555
  let r = t[n.type];
556
556
  r && e.registerBuiltIn(n.type, {
557
557
  component: r,
@@ -561,33 +561,33 @@ function Nn(e, t) {
561
561
  }
562
562
  //#endregion
563
563
  //#region src/utils/resolveHtmlBlockPreview.ts
564
- function Pn(e) {
564
+ function Rn(e) {
565
565
  return typeof e == "boolean" ? e : e?.enabled ?? !1;
566
566
  }
567
567
  //#endregion
568
568
  //#region src/utils/collectOffPaletteDefaults.ts
569
- function Fn(e) {
569
+ function zn(e) {
570
570
  return typeof e == "object" && !!e && !Array.isArray(e);
571
571
  }
572
- function In(e, t, n) {
573
- let r = new Set(e.map((e) => Rt(e))), i = [], a = (e, t) => {
574
- for (let [n, o] of Object.entries(e)) typeof o == "string" ? o !== "" && /color$/i.test(n) && !r.has(Rt(o)) && i.push(`${t}.${n}: ${o}`) : Fn(o) && a(o, `${t}.${n}`);
572
+ function Bn(e, t, n) {
573
+ let r = new Set(e.map((e) => X(e))), i = [], a = (e, t) => {
574
+ for (let [n, o] of Object.entries(e)) typeof o == "string" ? o !== "" && /color$/i.test(n) && !r.has(X(o)) && i.push(`${t}.${n}: ${o}`) : zn(o) && a(o, `${t}.${n}`);
575
575
  }, o = t;
576
- for (let [e, t] of Object.entries(B)) {
576
+ for (let [e, t] of Object.entries(ke)) {
577
577
  let n = o?.[e];
578
578
  a({
579
579
  ...t,
580
- ...Fn(n) ? n : {}
580
+ ...zn(n) ? n : {}
581
581
  }, e);
582
582
  }
583
583
  return a({
584
- ...le,
584
+ ...re,
585
585
  ...n ?? {}
586
586
  }, "template"), i;
587
587
  }
588
588
  //#endregion
589
589
  //#region src/utils/localizedBlockDefaults.ts
590
- function Ln(e) {
590
+ function Vn(e) {
591
591
  return {
592
592
  title: { content: `<p>${e.blockDefaults.title}</p>` },
593
593
  paragraph: { content: `<p>${e.blockDefaults.paragraph}</p>` },
@@ -596,58 +596,58 @@ function Ln(e) {
596
596
  }
597
597
  //#endregion
598
598
  //#region src/i18n/index.ts
599
- var Rn = /* #__PURE__ */ Object.assign({
600
- "./locales/ca.ts": () => import("./ca-Bqeygp1_.js"),
601
- "./locales/de.ts": () => import("./de-CY6SlqBx.js"),
602
- "./locales/en.ts": () => import("./en-8V-2kDcp.js"),
603
- "./locales/es.ts": () => import("./es-Cmn1rT3l.js"),
604
- "./locales/fr.ts": () => import("./fr-2yDa4zXM.js"),
605
- "./locales/nl.ts": () => import("./nl-Bzk2zRI8.js"),
606
- "./locales/pt-BR.ts": () => import("./pt-BR-DqtSCTUi.js")
607
- }), zn = /* #__PURE__ */ Object.assign({
599
+ var Hn = /* #__PURE__ */ Object.assign({
600
+ "./locales/ca.ts": () => import("./ca-Ckgw9yd0.js"),
601
+ "./locales/de.ts": () => import("./de-D4dweQw8.js"),
602
+ "./locales/en.ts": () => import("./en-VE7R7NyL.js"),
603
+ "./locales/es.ts": () => import("./es-B9OhP8H3.js"),
604
+ "./locales/fr.ts": () => import("./fr-wrXhIi00.js"),
605
+ "./locales/nl.ts": () => import("./nl-DeFatKJe.js"),
606
+ "./locales/pt-BR.ts": () => import("./pt-BR-Bh1J8ey6.js")
607
+ }), Un = /* #__PURE__ */ Object.assign({
608
608
  "./locales/cloud/de.ts": () => import("./de-mMY5yQJu.js"),
609
609
  "./locales/cloud/en.ts": () => import("./en-ChVeGQBY.js"),
610
610
  "./locales/cloud/pt-BR.ts": () => import("./pt-BR-CoCwRUi0.js")
611
611
  });
612
- function Bn(e) {
612
+ function Wn(e) {
613
613
  return Object.keys(e).map((e) => e.match(/\/([^/]+)\.ts$/)?.[1]).filter((e) => !!e);
614
614
  }
615
- var Vn = Bn(Rn), Hn = Bn(zn);
616
- function Un(e) {
615
+ var Gn = Wn(Hn), Kn = Wn(Un);
616
+ function qn(e) {
617
617
  return e.trim().replace(/_/g, "-").toLowerCase();
618
618
  }
619
- function Wn(e, t) {
620
- let n = Un(e);
621
- return t.find((e) => Un(e) === n);
619
+ function Jn(e, t) {
620
+ let n = qn(e);
621
+ return t.find((e) => qn(e) === n);
622
622
  }
623
- function Gn(e) {
624
- return Un(e).split("-")[0];
623
+ function Yn(e) {
624
+ return qn(e).split("-")[0];
625
625
  }
626
- function Kn(e, t) {
627
- return Wn(e, t) ?? Wn(Gn(e), t);
626
+ function Xn(e, t) {
627
+ return Jn(e, t) ?? Jn(Yn(e), t);
628
628
  }
629
- function qn(e, t) {
630
- return Kn(e, t) ?? "en";
629
+ function Zn(e, t) {
630
+ return Xn(e, t) ?? "en";
631
631
  }
632
- async function Jn(e) {
633
- let t = Rn[`./locales/${qn(e, Vn)}.ts`];
632
+ async function Qn(e) {
633
+ let t = Hn[`./locales/${Zn(e, Gn)}.ts`];
634
634
  return (await t()).default;
635
635
  }
636
- async function Yn(e) {
637
- let t = zn[`./locales/cloud/${qn(e, Hn)}.ts`];
636
+ async function $n(e) {
637
+ let t = Un[`./locales/cloud/${Zn(e, Kn)}.ts`];
638
638
  return (await t()).default;
639
639
  }
640
- function Xn(e) {
641
- return Kn(e, Vn) !== void 0;
640
+ function er(e) {
641
+ return Xn(e, Gn) !== void 0;
642
642
  }
643
- function Zn(e) {
644
- return Kn(e, Hn) !== void 0;
643
+ function tr(e) {
644
+ return Xn(e, Kn) !== void 0;
645
645
  }
646
- function Qn() {
647
- return [...Vn];
646
+ function nr() {
647
+ return [...Gn];
648
648
  }
649
- function $n() {
650
- return [...Hn];
649
+ function rr() {
650
+ return [...Kn];
651
651
  }
652
652
  //#endregion
653
653
  //#region src/i18n/contentDefaults.ts
@@ -708,16 +708,16 @@ var $ = {
708
708
  seconds: "Segons",
709
709
  expired: "Aquesta oferta ha caducat"
710
710
  }
711
- }, er = new Map(Object.keys($).map((e) => [e.toLowerCase(), e]));
712
- function tr(e) {
711
+ }, ir = new Map(Object.keys($).map((e) => [e.toLowerCase(), e]));
712
+ function ar(e) {
713
713
  if (!e) return $.en;
714
- let t = e.trim().replace(/_/g, "-").toLowerCase(), n = er.get(t);
714
+ let t = e.trim().replace(/_/g, "-").toLowerCase(), n = ir.get(t);
715
715
  if (n) return $[n];
716
- let r = er.get(Gn(t));
716
+ let r = ir.get(Yn(t));
717
717
  return r ? $[r] : $.en;
718
718
  }
719
- function nr(e) {
720
- let t = tr(e);
719
+ function or(e) {
720
+ let t = ar(e);
721
721
  return {
722
722
  video: { alt: t.video },
723
723
  countdown: {
@@ -731,9 +731,9 @@ function nr(e) {
731
731
  }
732
732
  //#endregion
733
733
  //#region src/utils/collectColorFieldIssues.ts
734
- function rr(e, t) {
734
+ function sr(e, t) {
735
735
  let n = [], r = (r, i) => {
736
- let a = je(r, t), o = `custom block "${e.type}" field "${i}"`, s = (t) => `${e.type}:${i}:${t}`;
736
+ let a = Fe(r, t), o = `custom block "${e.type}" field "${i}"`, s = (t) => `${e.type}:${i}:${t}`;
737
737
  if (a.invalidPresets.length > 0 && n.push({
738
738
  id: s("invalid-presets"),
739
739
  message: `${o}: presets skipped invalid entries: ${a.invalidPresets.join(", ")} — presets must be hex colors (#rgb or #rrggbb).` + (a.presetsInherited ? " No valid entries are left, so the field inherits colors.presets." : "")
@@ -744,8 +744,8 @@ function rr(e, t) {
744
744
  id: s("allow-custom-ignored"),
745
745
  message: `${o}: allowCustom: true is ignored because colors.allowCustom is false — a field can narrow the editor-wide palette, never unlock it.`
746
746
  }), !a.allowCustom && a.presets.length > 0) {
747
- let e = r.default ?? "", t = new Set(a.presets.map((e) => Rt(e)));
748
- e !== "" && !t.has(Rt(e)) && n.push({
747
+ let e = r.default ?? "", t = new Set(a.presets.map((e) => X(e)));
748
+ e !== "" && !t.has(X(e)) && n.push({
749
749
  id: s("off-palette-default"),
750
750
  message: `${o} locks custom colours, but its default ${e} falls outside the field's presets: ${a.presets.join(", ")}. New blocks start on a colour the picker can't reselect — set the default from the same palette.`
751
751
  });
@@ -757,7 +757,7 @@ function rr(e, t) {
757
757
  }
758
758
  //#endregion
759
759
  //#region src/utils/keyboardShortcuts.ts
760
- function ir(e) {
760
+ function cr(e) {
761
761
  for (let t of e.composedPath()) {
762
762
  if (!(t instanceof HTMLElement)) continue;
763
763
  if (t.isContentEditable) return !0;
@@ -766,18 +766,18 @@ function ir(e) {
766
766
  }
767
767
  return !1;
768
768
  }
769
- function ar(e, t) {
769
+ function lr(e, t) {
770
770
  let n = e.metaKey || e.ctrlKey;
771
771
  if (n && e.key.toLowerCase() === "s") {
772
772
  e.preventDefault(), t.onSave?.();
773
773
  return;
774
774
  }
775
775
  if (n && e.key.toLowerCase() === "z") {
776
- if (ir(e)) return;
776
+ if (cr(e)) return;
777
777
  e.preventDefault(), e.shiftKey ? t.history.redo() : (t.onBeforeUndo?.(), t.history.undo());
778
778
  return;
779
779
  }
780
- if (t.isPicking?.() && !ir(e)) {
780
+ if (t.isPicking?.() && !cr(e)) {
781
781
  if (e.key === "Escape") {
782
782
  e.preventDefault(), t.onCancelPick?.();
783
783
  return;
@@ -795,11 +795,11 @@ function ar(e, t) {
795
795
  t.selectBlock(null);
796
796
  return;
797
797
  }
798
- (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !ir(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
798
+ (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !cr(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
799
799
  }
800
800
  //#endregion
801
801
  //#region src/utils/mergeTagLabelSegments.ts
802
- function or(e, t, n, r = !1) {
802
+ function ur(e, t, n, r = !1) {
803
803
  if (!e) return [];
804
804
  let i = RegExp(`(${n.value.source}|${n.logic.source})`, "g"), a = [], o = 0, s;
805
805
  for (; (s = i.exec(e)) !== null;) {
@@ -808,18 +808,18 @@ function or(e, t, n, r = !1) {
808
808
  value: e.slice(o, s.index)
809
809
  });
810
810
  let i = s[0];
811
- if (he(i, n)) {
812
- let e = r ? Oe(i, t) : void 0;
811
+ if (_e(i, n)) {
812
+ let e = r ? je(i, t) : void 0;
813
813
  a.push(e === void 0 ? {
814
814
  type: "tag",
815
- value: we(i, t)
815
+ value: Ee(i, t)
816
816
  } : {
817
817
  type: "text",
818
818
  value: e
819
819
  });
820
- } else me(i, n) ? a.push({
820
+ } else ge(i, n) ? a.push({
821
821
  type: "tag",
822
- value: fe(i, n)
822
+ value: me(i, n)
823
823
  }) : a.push({
824
824
  type: "text",
825
825
  value: i
@@ -833,20 +833,20 @@ function or(e, t, n, r = !1) {
833
833
  }
834
834
  //#endregion
835
835
  //#region src/components/MergeTagPreviewText.vue
836
- var sr = d({
836
+ var dr = d({
837
837
  name: "MergeTagPreviewText",
838
838
  props: { text: {
839
839
  type: String,
840
840
  required: !0
841
841
  } },
842
842
  setup(e) {
843
- let t = n(K, q), r = n(at, Ee.liquid), i = n(J, null), a = b(() => or(e.text, t.value, r, i?.value ?? !1));
843
+ let t = n(G, W), r = n(ft, Ae.liquid), i = n(K, null), a = b(() => ur(e.text, t.value, r, i?.value ?? !1));
844
844
  return () => a.value.map((e, t) => e.type === "tag" ? I("span", {
845
845
  key: t,
846
846
  class: "tpl-merge-tag-label"
847
847
  }, e.value) : e.value);
848
848
  }
849
- }), cr = ["href"], lr = /* @__PURE__ */ d({
849
+ }), fr = ["href"], pr = /* @__PURE__ */ d({
850
850
  __name: "ButtonBlock",
851
851
  props: {
852
852
  block: {},
@@ -872,13 +872,13 @@ var sr = d({
872
872
  style: D(n.value),
873
873
  class: "tpl:cursor-default",
874
874
  onClick: i[0] ||= E(() => {}, ["prevent"])
875
- }, [g(sr, { text: e.block.text }, null, 8, ["text"])], 12, cr)], 4));
875
+ }, [g(dr, { text: e.block.text }, null, 8, ["text"])], 12, fr)], 4));
876
876
  }
877
- }), ur = ["innerHTML"], dr = [
877
+ }), mr = ["innerHTML"], hr = [
878
878
  "src",
879
879
  "width",
880
880
  "height"
881
- ], fr = /* @__PURE__ */ d({
881
+ ], gr = /* @__PURE__ */ d({
882
882
  __name: "CustomBlockIcon",
883
883
  props: {
884
884
  icon: {},
@@ -894,24 +894,24 @@ var sr = d({
894
894
  height: `${n.value}px`
895
895
  }),
896
896
  innerHTML: e.icon
897
- }, null, 12, ur)) : i.value ? (s(), x("img", {
897
+ }, null, 12, mr)) : i.value ? (s(), x("img", {
898
898
  key: 1,
899
899
  src: e.icon,
900
900
  width: n.value,
901
901
  height: n.value,
902
902
  class: "tpl:inline-block",
903
903
  alt: ""
904
- }, null, 8, dr)) : (s(), O(h(on), {
904
+ }, null, 8, hr)) : (s(), O(h(dn), {
905
905
  key: 2,
906
906
  size: n.value,
907
907
  "stroke-width": 1.5
908
908
  }, null, 8, ["size"]));
909
909
  }
910
- }), pr = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
911
- function mr(e, n) {
912
- let r = ln(), i = null, a = null, o = null;
910
+ }), _r = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
911
+ function vr(e, n) {
912
+ let r = mn(), i = null, a = null, o = null;
913
913
  function s() {
914
- return e.value ? Array.from(e.value.querySelectorAll(pr)).filter((e) => e.offsetParent !== null) : [];
914
+ return e.value ? Array.from(e.value.querySelectorAll(_r)).filter((e) => e.offsetParent !== null) : [];
915
915
  }
916
916
  function c(e) {
917
917
  if (e.key !== "Tab") return;
@@ -926,7 +926,7 @@ function mr(e, n) {
926
926
  o = null;
927
927
  let t = s();
928
928
  t.length > 0 && (e.value?.querySelector("[autofocus], input:not([disabled])") ?? t[0]).focus();
929
- }), a = G(e, "keydown", c);
929
+ }), a = U(e, "keydown", c);
930
930
  }
931
931
  function u(e = {}) {
932
932
  let t = e.restoreFocus !== !1;
@@ -941,8 +941,8 @@ function mr(e, n) {
941
941
  }
942
942
  //#endregion
943
943
  //#region src/composables/useEmoji.ts
944
- function hr() {
945
- let [e, n] = We(!1), r = y([]), i = !1;
944
+ function yr() {
945
+ let [e, n] = Je(!1), r = y([]), i = !1;
946
946
  m(() => {
947
947
  i = !0;
948
948
  }), t(e, async (e) => {
@@ -967,7 +967,7 @@ function hr() {
967
967
  }
968
968
  //#endregion
969
969
  //#region src/composables/useFonts.ts
970
- var gr = [
970
+ var br = [
971
971
  {
972
972
  value: "Arial",
973
973
  label: "Arial"
@@ -996,7 +996,7 @@ var gr = [
996
996
  value: "Courier New",
997
997
  label: "Courier New"
998
998
  }
999
- ], _r = {
999
+ ], xr = {
1000
1000
  arial: "Arial, sans-serif",
1001
1001
  helvetica: "Helvetica, sans-serif",
1002
1002
  georgia: "Georgia, serif",
@@ -1004,23 +1004,23 @@ var gr = [
1004
1004
  verdana: "Verdana, sans-serif",
1005
1005
  "trebuchet ms": "'Trebuchet MS', sans-serif",
1006
1006
  "courier new": "'Courier New', monospace"
1007
- }, vr = "Arial, sans-serif";
1008
- function yr(e) {
1009
- if (e === void 0 || e === !0) return [...gr];
1007
+ }, Sr = "Arial, sans-serif";
1008
+ function Cr(e) {
1009
+ if (e === void 0 || e === !0) return [...br];
1010
1010
  if (e === !1) return [];
1011
1011
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
1012
1012
  for (let i of e) {
1013
- let e = i.toLowerCase(), a = gr.find((t) => t.value.toLowerCase() === e);
1013
+ let e = i.toLowerCase(), a = br.find((t) => t.value.toLowerCase() === e);
1014
1014
  if (!a) {
1015
- r.has(e) || (r.add(e), Z.warn(`config.fonts.builtIns: "${i}" is not a built-in font — skipping it. Built-in fonts are: ${gr.map((e) => e.value).join(", ")}.`));
1015
+ r.has(e) || (r.add(e), Y.warn(`config.fonts.builtIns: "${i}" is not a built-in font — skipping it. Built-in fonts are: ${br.map((e) => e.value).join(", ")}.`));
1016
1016
  continue;
1017
1017
  }
1018
1018
  n.has(a.value) || (n.add(a.value), t.push(a));
1019
1019
  }
1020
1020
  return t;
1021
1021
  }
1022
- function br(e) {
1023
- let t = l(e?.customFonts ?? []), n = l(!1), r = yr(e?.builtIns), i = b(() => e?.defaultFallback ?? vr), a = b(() => {
1022
+ function wr(e) {
1023
+ let t = l(e?.customFonts ?? []), n = l(!1), r = Cr(e?.builtIns), i = b(() => e?.defaultFallback ?? Sr), a = b(() => {
1024
1024
  let e = [...r], n = t.value.map((e) => ({
1025
1025
  value: e.name,
1026
1026
  label: e.name,
@@ -1031,20 +1031,20 @@ function br(e) {
1031
1031
  function s(e) {
1032
1032
  return a.value.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
1033
1033
  }
1034
- let c = e?.defaultFont ?? vr.split(",")[0].trim();
1035
- s(c) || Z.warn(`config.fonts: new templates seed "${c}", which the font picker doesn't offer — authors can't reselect it. Either add it to fonts.builtIns, or set fonts.defaultFont to an offered font.`);
1034
+ let c = e?.defaultFont ?? Sr.split(",")[0].trim();
1035
+ s(c) || Y.warn(`config.fonts: new templates seed "${c}", which the font picker doesn't offer — authors can't reselect it. Either add it to fonts.builtIns, or set fonts.defaultFont to an offered font.`);
1036
1036
  function u() {
1037
1037
  if (e?.defaultFont && s(e.defaultFont)) {
1038
1038
  let t = a.value.find((t) => t.label.toLowerCase() === e.defaultFont.toLowerCase() || t.value.toLowerCase().startsWith(e.defaultFont.toLowerCase()));
1039
1039
  if (t) return t.value;
1040
1040
  }
1041
- return vr;
1041
+ return Sr;
1042
1042
  }
1043
1043
  let d = b(() => u());
1044
1044
  function f(e) {
1045
1045
  if (!e) return i.value;
1046
1046
  let n = t.value.find((t) => t.name.toLowerCase() === e.toLowerCase());
1047
- return n ? `'${n.name}', ${n.fallback ?? i.value}` : _r[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
1047
+ return n ? `'${n.name}', ${n.fallback ?? i.value}` : xr[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
1048
1048
  }
1049
1049
  let p = [], h = !1;
1050
1050
  async function g() {
@@ -1060,7 +1060,7 @@ function br(e) {
1060
1060
  t.onload = () => n(), t.onerror = () => r(/* @__PURE__ */ Error(`Failed to load font: ${e.name}`)), document.head.appendChild(t);
1061
1061
  });
1062
1062
  } catch (t) {
1063
- Z.warn(`Failed to load custom font "${e.name}":`, t);
1063
+ Y.warn(`Failed to load custom font "${e.name}":`, t);
1064
1064
  }
1065
1065
  });
1066
1066
  await Promise.allSettled(e), !h && (n.value = !0);
@@ -1085,12 +1085,12 @@ function br(e) {
1085
1085
  }
1086
1086
  //#endregion
1087
1087
  //#region src/utils/mergeTagNodeSpec.ts
1088
- function xr(e, t, n) {
1089
- return me(e, n) ? {
1088
+ function Tr(e, t, n) {
1089
+ return ge(e, n) ? {
1090
1090
  type: "logicMergeTagNode",
1091
1091
  attrs: {
1092
1092
  value: e,
1093
- keyword: fe(e, n)
1093
+ keyword: me(e, n)
1094
1094
  }
1095
1095
  } : {
1096
1096
  type: "mergeTagNode",
@@ -1102,15 +1102,15 @@ function xr(e, t, n) {
1102
1102
  }
1103
1103
  //#endregion
1104
1104
  //#region src/utils/insertLogicTag.ts
1105
- function Sr(e) {
1105
+ function Er(e) {
1106
1106
  return "before" in e && "after" in e;
1107
1107
  }
1108
- function Cr(e, t, n) {
1109
- if (!Sr(t)) {
1110
- e.chain().focus().insertContent(xr(t.value, t.label, n)).run();
1108
+ function Dr(e, t, n) {
1109
+ if (!Er(t)) {
1110
+ e.chain().focus().insertContent(Tr(t.value, t.label, n)).run();
1111
1111
  return;
1112
1112
  }
1113
- let r = xr(t.before, t.label, n), i = xr(t.after, t.label, n), { from: a, to: o } = e.state.selection;
1113
+ let r = Tr(t.before, t.label, n), i = Tr(t.after, t.label, n), { from: a, to: o } = e.state.selection;
1114
1114
  if (a !== o) {
1115
1115
  e.chain().focus().insertContentAt(o, i).insertContentAt(a, r).run();
1116
1116
  return;
@@ -1119,20 +1119,20 @@ function Cr(e, t, n) {
1119
1119
  }
1120
1120
  //#endregion
1121
1121
  //#region src/utils/linkColorExtension.ts
1122
- function wr(e) {
1122
+ function Or(e) {
1123
1123
  if (!e) return null;
1124
1124
  let t = e.trim();
1125
1125
  return /^#[0-9a-f]{3,8}$/i.test(t) || /^(rgb|rgba|hsl|hsla)\(\s*[0-9.,%/\s]+\)$/i.test(t) || /^[a-z]+$/i.test(t) ? t : null;
1126
1126
  }
1127
- function Tr(e) {
1127
+ function kr(e) {
1128
1128
  return e.extend({ addAttributes() {
1129
1129
  return {
1130
1130
  ...this.parent?.(),
1131
1131
  color: {
1132
1132
  default: null,
1133
- parseHTML: (e) => wr(It(e.style.color)),
1133
+ parseHTML: (e) => Or(Ht(e.style.color)),
1134
1134
  renderHTML: (e) => {
1135
- let t = wr(e.color);
1135
+ let t = Or(e.color);
1136
1136
  return t ? { style: `color: ${t}` } : {};
1137
1137
  }
1138
1138
  }
@@ -1141,9 +1141,9 @@ function Tr(e) {
1141
1141
  }
1142
1142
  //#endregion
1143
1143
  //#region src/composables/useRichTextLinkDialog.ts
1144
- function Er(e, t = Ee.liquid) {
1144
+ function Ar(e, t = Ae.liquid) {
1145
1145
  let n = l(!1), r = l(""), i = l(""), a = l(null);
1146
- mr(a, n);
1146
+ vr(a, n);
1147
1147
  function o() {
1148
1148
  let t = e.value?.getAttributes("link") ?? {};
1149
1149
  r.value = t.href || "", i.value = t.color || "", n.value = !0;
@@ -1152,7 +1152,7 @@ function Er(e, t = Ee.liquid) {
1152
1152
  if (r.value) {
1153
1153
  let t = d(r.value);
1154
1154
  if (t !== null) {
1155
- let n = wr(i.value), r = e.value?.chain().focus().extendMarkRange("link").setLink({ href: t }).updateAttributes("link", { color: n });
1155
+ let n = Or(i.value), r = e.value?.chain().focus().extendMarkRange("link").setLink({ href: t }).updateAttributes("link", { color: n });
1156
1156
  n && typeof e.value?.commands.unsetColor == "function" && r?.unsetColor(), r?.run();
1157
1157
  }
1158
1158
  }
@@ -1202,13 +1202,13 @@ function Er(e, t = Ee.liquid) {
1202
1202
  }
1203
1203
  //#endregion
1204
1204
  //#region src/composables/useRichTextEditor.ts
1205
- function Dr(r) {
1206
- let i = n(Y, null), { mergeTags: a, canRequestMergeTag: o, isRequesting: s, requestMergeTag: c, syntax: u, autocomplete: d } = un(), { canInsertLogicTag: f, isRequesting: p, requestLogicTag: m } = dn(), h = n(Ot, null), g = (A(h) ? h.value : h)?.mergeTag?.suggestionEmpty ?? "No matching merge tags", _ = xe(u), v = y(null), b = () => se(i?.content?.value?.settings ?? { locale: "en" });
1205
+ function jr(r) {
1206
+ let i = n(q, null), { mergeTags: a, canRequestMergeTag: o, isRequesting: s, requestMergeTag: c, syntax: u, autocomplete: d } = Z(), { canInsertLogicTag: f, isRequesting: p, requestLogicTag: m } = hn(), h = n(vt, null), g = (A(h) ? h.value : h)?.mergeTag?.suggestionEmpty ?? "No matching merge tags", _ = Ce(u), v = y(null), b = () => ee(i?.content?.value?.settings ?? { locale: "en" });
1207
1207
  t(b, (e) => {
1208
1208
  let t = v.value?.view.dom;
1209
1209
  t && t.setAttribute("dir", e);
1210
1210
  });
1211
- let { showLinkDialog: x, linkUrl: S, linkColor: C, linkDialogRef: w, openLinkDialog: T, insertLink: E, removeLink: D, closeLinkDialog: O, handleLinkKeydown: k } = Er(v, u), { start: j, stop: M } = He(() => v.value?.commands.focus("end"), 0, { immediate: !1 }), N = y(null), P = l(!0), F = l(null), I = !1;
1211
+ let { showLinkDialog: x, linkUrl: S, linkColor: C, linkDialogRef: w, openLinkDialog: T, insertLink: E, removeLink: D, closeLinkDialog: O, handleLinkKeydown: k } = Ar(v, u), { start: j, stop: M } = Ke(() => v.value?.commands.focus("end"), 0, { immediate: !1 }), N = y(null), P = l(!0), F = l(null), I = !1;
1212
1212
  async function L() {
1213
1213
  F.value = null, P.value = !0;
1214
1214
  try {
@@ -1239,7 +1239,7 @@ function Dr(r) {
1239
1239
  v.value = s, P.value = !1, j();
1240
1240
  } catch (e) {
1241
1241
  if (I) return;
1242
- Z.error(`[${r.editorName ?? "RichTextEditor"}] Failed to initialize TipTap editor:`, e), F.value = e instanceof Error ? e.message : "Failed to load editor", P.value = !1;
1242
+ Y.error(`[${r.editorName ?? "RichTextEditor"}] Failed to initialize TipTap editor:`, e), F.value = e instanceof Error ? e.message : "Failed to load editor", P.value = !1;
1243
1243
  }
1244
1244
  }
1245
1245
  function R() {
@@ -1257,7 +1257,7 @@ function Dr(r) {
1257
1257
  let i = t.some((e) => e instanceof HTMLElement && e.classList.contains("tpl-color-popover"));
1258
1258
  n.closest(".tpl-text-editor-wrapper") || n.closest(".tpl-text-toolbar") || n.closest(".tpl-link-dialog") || i || r.onDone();
1259
1259
  }
1260
- G(document, "mousedown", B), e(() => {
1260
+ U(document, "mousedown", B), e(() => {
1261
1261
  I = !0, z(), M(), v.value?.destroy();
1262
1262
  });
1263
1263
  async function V() {
@@ -1267,9 +1267,9 @@ function Dr(r) {
1267
1267
  value: e.value
1268
1268
  }).run() : v.value?.commands.focus());
1269
1269
  }
1270
- async function H() {
1270
+ async function te() {
1271
1271
  let e = await m();
1272
- I || (e && v.value ? Cr(v.value, e, u) : v.value?.commands.focus());
1272
+ I || (e && v.value ? Dr(v.value, e, u) : v.value?.commands.focus());
1273
1273
  }
1274
1274
  return {
1275
1275
  editor: v,
@@ -1293,14 +1293,14 @@ function Dr(r) {
1293
1293
  closeLinkDialog: O,
1294
1294
  handleLinkKeydown: k,
1295
1295
  handleAddMergeTag: V,
1296
- handleAddLogicTag: H
1296
+ handleAddLogicTag: te
1297
1297
  };
1298
1298
  }
1299
1299
  //#endregion
1300
1300
  //#region src/composables/useSmallScreenNotice.ts
1301
- var Or = "(max-width: 767px)";
1302
- function kr(e) {
1303
- let t = Ke(Or);
1301
+ var Mr = "(max-width: 767px)";
1302
+ function Nr(e) {
1303
+ let t = Xe(Mr);
1304
1304
  return {
1305
1305
  isSmallScreen: t,
1306
1306
  showNotice: b(() => (j(e) ?? !0) && t.value)
@@ -1308,20 +1308,20 @@ function kr(e) {
1308
1308
  }
1309
1309
  //#endregion
1310
1310
  //#region src/components/blocks/CustomBlock.vue?vue&type=script&setup=true&lang.ts
1311
- var Ar = { class: "tpl:w-full" }, jr = {
1311
+ var Pr = { class: "tpl:w-full" }, Fr = {
1312
1312
  key: 0,
1313
1313
  class: "tpl:flex tpl:min-h-[80px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:border-[var(--tpl-warning)] tpl:bg-[var(--tpl-warning-light)]"
1314
- }, Mr = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Nr = {
1314
+ }, Ir = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Lr = {
1315
1315
  key: 1,
1316
1316
  class: "tpl:flex tpl:min-h-[80px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:border-[var(--tpl-danger)] tpl:bg-[var(--tpl-danger-light)]"
1317
- }, Pr = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Fr = {
1317
+ }, Rr = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, zr = {
1318
1318
  key: 2,
1319
1319
  class: "tpl:relative"
1320
- }, Ir = ["innerHTML"], Lr = {
1320
+ }, Br = ["innerHTML"], Vr = {
1321
1321
  key: 0,
1322
1322
  class: "tpl:absolute tpl:inset-0 tpl:flex tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-3 tpl:rounded tpl:backdrop-blur-[2px]",
1323
1323
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)" }
1324
- }, Rr = /* @__PURE__ */ d({
1324
+ }, Hr = /* @__PURE__ */ d({
1325
1325
  __name: "CustomBlock",
1326
1326
  props: {
1327
1327
  block: {},
@@ -1329,7 +1329,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1329
1329
  },
1330
1330
  emits: ["fetchData"],
1331
1331
  setup(e, { emit: r }) {
1332
- let i = e, a = r, { t: o } = X(), c = n(At, null), u = l(""), d = l(!1), f = b(() => c?.getDefinition(i.block.customType)), p = b(() => !!f.value), m = b(() => i.block), { isFetching: _, fetch: v, needsFetch: y, hasDataSource: C } = Pe({
1332
+ let i = e, a = r, { t: o } = J(), c = n(It, null), u = l(""), d = l(!1), f = b(() => c?.getDefinition(i.block.customType)), p = b(() => !!f.value), m = b(() => i.block), { isFetching: _, fetch: v, needsFetch: y, hasDataSource: C } = Re({
1333
1333
  definition: f,
1334
1334
  block: m,
1335
1335
  onUpdate: (e, t) => {
@@ -1338,10 +1338,10 @@ var Ar = { class: "tpl:w-full" }, jr = {
1338
1338
  dataSourceFetched: t
1339
1339
  });
1340
1340
  }
1341
- }), T = n(K, q), D = n(J, null), A = b(() => {
1341
+ }), T = n(G, W), D = n(K, null), A = b(() => {
1342
1342
  if (!D?.value) return i.block;
1343
1343
  let e = {};
1344
- for (let [t, n] of Object.entries(i.block.fieldValues)) e[t] = typeof n == "string" ? de(n, T.value) : n;
1344
+ for (let [t, n] of Object.entries(i.block.fieldValues)) e[t] = typeof n == "string" ? pe(n, T.value) : n;
1345
1345
  return {
1346
1346
  ...i.block,
1347
1347
  fieldValues: e
@@ -1358,17 +1358,17 @@ var Ar = { class: "tpl:w-full" }, jr = {
1358
1358
  }
1359
1359
  }
1360
1360
  }
1361
- let M = Ue(j, 150);
1361
+ let M = qe(j, 150);
1362
1362
  return w(() => {
1363
1363
  j();
1364
1364
  }), t(() => i.block.fieldValues, () => {
1365
1365
  M();
1366
1366
  }, { deep: !0 }), t(() => D?.value, () => {
1367
1367
  M();
1368
- }), (e, t) => (s(), x("div", Ar, [p.value ? d.value ? (s(), x("div", Nr, [g(h(nn), {
1368
+ }), (e, t) => (s(), x("div", Pr, [p.value ? d.value ? (s(), x("div", Lr, [g(h(cn), {
1369
1369
  size: 24,
1370
1370
  class: "tpl:text-[var(--tpl-danger)]"
1371
- }), k("span", Pr, F(h(o).customBlocks.renderError), 1)])) : (s(), x("div", Fr, [k("div", { innerHTML: u.value }, null, 8, Ir), h(C) && h(y) ? (s(), x("div", Lr, [h(_) ? (s(), O(sn, {
1371
+ }), k("span", Rr, F(h(o).customBlocks.renderError), 1)])) : (s(), x("div", zr, [k("div", { innerHTML: u.value }, null, 8, Br), h(C) && h(y) ? (s(), x("div", Vr, [h(_) ? (s(), O(fn, {
1372
1372
  key: 1,
1373
1373
  class: "tpl:w-48"
1374
1374
  })) : (s(), x("button", {
@@ -1376,16 +1376,16 @@ var Ar = { class: "tpl:w-full" }, jr = {
1376
1376
  type: "button",
1377
1377
  class: "tpl:flex tpl:cursor-pointer tpl:items-center tpl:gap-2 tpl:rounded-[var(--tpl-radius-sm)] tpl:border tpl:border-[var(--tpl-border)] tpl:px-4 tpl:py-2 tpl:text-sm tpl:font-semibold tpl:shadow-[var(--tpl-shadow)] tpl:transition-all tpl:hover:border-[var(--tpl-primary)] tpl:hover:shadow-[var(--tpl-shadow-md)] tpl:bg-[var(--tpl-primary-light)] tpl:text-[var(--tpl-primary-hover)]",
1378
1378
  onClick: t[0] ||= E((...e) => h(v) && h(v)(...e), ["stop"])
1379
- }, [f.value?.icon ? (s(), O(fr, {
1379
+ }, [f.value?.icon ? (s(), O(gr, {
1380
1380
  key: 0,
1381
1381
  icon: f.value.icon,
1382
1382
  size: 16
1383
- }, null, 8, ["icon"])) : S("", !0), R(" " + F(f.value?.dataSource?.label || h(o).customBlocks.dataSource.fetchButton), 1)]))])) : S("", !0)])) : (s(), x("div", jr, [g(h(Gt), {
1383
+ }, null, 8, ["icon"])) : S("", !0), R(" " + F(f.value?.dataSource?.label || h(o).customBlocks.dataSource.fetchButton), 1)]))])) : S("", !0)])) : (s(), x("div", Fr, [g(h(Xt), {
1384
1384
  size: 24,
1385
1385
  class: "tpl:text-[var(--tpl-warning)]"
1386
- }), k("span", Mr, F(h(o).customBlocks.definitionNotFound), 1)]))]));
1386
+ }), k("span", Ir, F(h(o).customBlocks.definitionNotFound), 1)]))]));
1387
1387
  }
1388
- }), zr = { class: "tpl:w-full" }, Br = /* @__PURE__ */ d({
1388
+ }), Ur = { class: "tpl:w-full" }, Wr = /* @__PURE__ */ d({
1389
1389
  __name: "DividerBlock",
1390
1390
  props: {
1391
1391
  block: {},
@@ -1397,28 +1397,28 @@ var Ar = { class: "tpl:w-full" }, jr = {
1397
1397
  width: t.block.width === "full" ? "100%" : `${t.block.width}px`,
1398
1398
  margin: t.block.width === "full" ? "0" : "0 auto"
1399
1399
  }));
1400
- return (e, t) => (s(), x("div", zr, [k("hr", {
1400
+ return (e, t) => (s(), x("div", Ur, [k("hr", {
1401
1401
  class: "tpl:m-0 tpl:border-none",
1402
1402
  style: D(n.value)
1403
1403
  }, null, 4)]));
1404
1404
  }
1405
- }), Vr = { class: "tpl:w-full" }, Hr = ["srcdoc", "title"], Ur = {
1405
+ }), Gr = { class: "tpl:w-full" }, Kr = ["srcdoc", "title"], qr = {
1406
1406
  key: 1,
1407
1407
  class: "tpl:flex tpl:min-h-[80px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:border-[var(--tpl-border)] tpl:bg-[var(--tpl-bg-hover)]"
1408
- }, Wr = {
1408
+ }, Jr = {
1409
1409
  key: 0,
1410
1410
  class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]"
1411
- }, Gr = {
1411
+ }, Yr = {
1412
1412
  key: 1,
1413
1413
  class: "tpl:text-sm tpl:text-[var(--tpl-text-dim)]"
1414
- }, Kr = /* @__PURE__ */ d({
1414
+ }, Xr = /* @__PURE__ */ d({
1415
1415
  __name: "HtmlBlock",
1416
1416
  props: {
1417
1417
  block: {},
1418
1418
  viewport: {}
1419
1419
  },
1420
1420
  setup(r) {
1421
- let i = r, { t: a } = X(), o = n(gt, !1), c = b(() => i.block.content.trim().length > 0), u = b(() => o && c.value), d = n(K, q), f = n(J, null), p = b(() => f?.value ? de(i.block.content, d.value) : i.block.content), m = l(null), _ = l(60), v = null;
1421
+ let i = r, { t: a } = J(), o = n(St, !1), c = b(() => i.block.content.trim().length > 0), u = b(() => o && c.value), d = n(G, W), f = n(K, null), p = b(() => f?.value ? pe(i.block.content, d.value) : i.block.content), m = l(null), _ = l(60), v = null;
1422
1422
  function y() {
1423
1423
  let e = m.value?.contentDocument;
1424
1424
  e && (_.value = Math.max(e.body?.scrollHeight ?? 0, e.documentElement?.scrollHeight ?? 0));
@@ -1432,7 +1432,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1432
1432
  e || (v?.disconnect(), v = null);
1433
1433
  }), e(() => {
1434
1434
  v?.disconnect(), v = null;
1435
- }), (e, t) => (s(), x("div", Vr, [u.value ? (s(), x("iframe", {
1435
+ }), (e, t) => (s(), x("div", Gr, [u.value ? (s(), x("iframe", {
1436
1436
  key: 0,
1437
1437
  ref_key: "iframeRef",
1438
1438
  ref: m,
@@ -1442,22 +1442,22 @@ var Ar = { class: "tpl:w-full" }, jr = {
1442
1442
  class: "tpl:block tpl:w-full tpl:border-0",
1443
1443
  style: D({ height: `${_.value}px` }),
1444
1444
  onLoad: S
1445
- }, null, 44, Hr)) : (s(), x("div", Ur, [g(h(Kt), {
1445
+ }, null, 44, Kr)) : (s(), x("div", qr, [g(h(Zt), {
1446
1446
  size: 24,
1447
1447
  class: "tpl:text-[var(--tpl-text-dim)]"
1448
- }), c.value ? (s(), x("span", Wr, F(h(a).html.preview), 1)) : (s(), x("span", Gr, F(h(a).html.empty), 1))]))]));
1448
+ }), c.value ? (s(), x("span", Jr, F(h(a).html.preview), 1)) : (s(), x("span", Yr, F(h(a).html.empty), 1))]))]));
1449
1449
  }
1450
- }), qr = ["data-drop-enabled"], Jr = {
1450
+ }), Zr = ["data-drop-enabled"], Qr = {
1451
1451
  key: 0,
1452
1452
  class: "tpl:pointer-events-none tpl:absolute tpl:inset-0 tpl:z-10 tpl:flex tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-xs tpl:font-medium tpl:border-[var(--tpl-primary)] tpl:text-[var(--tpl-primary)]",
1453
1453
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 85%, transparent)" }
1454
- }, Yr = ["href"], Xr = ["src", "alt"], Zr = ["src", "alt"], Qr = {
1454
+ }, $r = ["href"], ei = ["src", "alt"], ti = ["src", "alt"], ni = {
1455
1455
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
1456
1456
  style: { opacity: "0.7" }
1457
- }, $r = ["href"], ei = ["src", "alt"], ti = ["src", "alt"], ni = {
1457
+ }, ri = ["href"], ii = ["src", "alt"], ai = ["src", "alt"], oi = {
1458
1458
  key: 4,
1459
1459
  class: "tpl:flex tpl:min-h-[100px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-sm tpl:border-[var(--tpl-border-light)] tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-dim)]"
1460
- }, ri = ["aria-label"], ii = { key: 1 }, ai = /* @__PURE__ */ d({
1460
+ }, si = ["aria-label"], ci = { key: 1 }, li = /* @__PURE__ */ d({
1461
1461
  __name: "ImageBlock",
1462
1462
  props: {
1463
1463
  block: {},
@@ -1465,7 +1465,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1465
1465
  },
1466
1466
  emits: ["update"],
1467
1467
  setup(e, { emit: t }) {
1468
- let r = e, i = t, { t: a } = X(), { syntax: o } = un(), c = n(et, null), u = n(_t, null), d = b(() => !!c), f = fn();
1468
+ let r = e, i = t, { t: a } = J(), { syntax: o } = Z(), c = n(lt, null), u = n(Ct, null), d = b(() => !!c), f = gn();
1469
1469
  async function p() {
1470
1470
  let e = await c?.({ accept: ["images"] });
1471
1471
  if (f.alive && e) {
@@ -1492,7 +1492,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1492
1492
  }
1493
1493
  }
1494
1494
  }
1495
- let { isOver: C } = Fe({
1495
+ let { isOver: C } = ze({
1496
1496
  target: m,
1497
1497
  enabled: v,
1498
1498
  onFiles: y
@@ -1507,7 +1507,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1507
1507
  marginLeft: e === "center" || e === "right" ? "auto" : void 0,
1508
1508
  marginRight: e === "center" ? "auto" : void 0
1509
1509
  };
1510
- }), O = b(() => W(r.block.src, o)), A = yn(() => O.value ? void 0 : r.block.src), j = yn(() => O.value ? r.block.placeholderUrl : void 0);
1510
+ }), O = b(() => H(r.block.src, o)), A = Cn(() => O.value ? void 0 : r.block.src), j = Cn(() => O.value ? r.block.placeholderUrl : void 0);
1511
1511
  return (t, n) => (s(), x("div", {
1512
1512
  ref_key: "dropZoneRef",
1513
1513
  ref: m,
@@ -1515,11 +1515,11 @@ var Ar = { class: "tpl:w-full" }, jr = {
1515
1515
  "data-drop-enabled": v.value,
1516
1516
  class: "tpl:relative tpl:w-full",
1517
1517
  style: D(w.value)
1518
- }, [v.value && (h(C) || _.value) ? (s(), x("div", Jr, [_.value ? (s(), x(P, { key: 0 }, [g(h(Qt), {
1518
+ }, [v.value && (h(C) || _.value) ? (s(), x("div", Qr, [_.value ? (s(), x(P, { key: 0 }, [g(h(rn), {
1519
1519
  class: "tpl-spinner",
1520
1520
  size: 20,
1521
1521
  "stroke-width": 2
1522
- }), R(" " + F(h(a).image.uploading), 1)], 64)) : (s(), x(P, { key: 1 }, [g(h(en), {
1522
+ }), R(" " + F(h(a).image.uploading), 1)], 64)) : (s(), x(P, { key: 1 }, [g(h(on), {
1523
1523
  size: 20,
1524
1524
  "stroke-width": 1.5
1525
1525
  }), R(" " + F(h(a).image.dropToUpload), 1)], 64))])) : S("", !0), e.block.src && O.value && e.block.placeholderUrl ? (s(), x(P, { key: 1 }, [e.block.linkUrl ? (s(), x("a", {
@@ -1534,22 +1534,22 @@ var Ar = { class: "tpl:w-full" }, jr = {
1534
1534
  src: h(j),
1535
1535
  alt: e.block.alt || h(a).image.altTextPlaceholder,
1536
1536
  style: D(T.value)
1537
- }, null, 12, Xr)], 8, Yr)) : (s(), x("img", {
1537
+ }, null, 12, ei)], 8, $r)) : (s(), x("img", {
1538
1538
  key: 1,
1539
1539
  class: "tpl:border-0",
1540
1540
  src: h(j),
1541
1541
  alt: e.block.alt,
1542
1542
  style: D(T.value)
1543
- }, null, 12, Zr))], 64)) : e.block.src && O.value ? (s(), x("div", {
1543
+ }, null, 12, ti))], 64)) : e.block.src && O.value ? (s(), x("div", {
1544
1544
  key: 2,
1545
1545
  class: "tpl:!flex tpl:min-h-[120px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-center tpl:bg-[var(--tpl-bg-elevated)]",
1546
1546
  style: D([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, T.value])
1547
- }, [g(h(Xt), {
1547
+ }, [g(h(tn), {
1548
1548
  size: 32,
1549
1549
  "stroke-width": 1.5,
1550
1550
  class: "tpl:text-[var(--tpl-primary)]",
1551
1551
  style: { opacity: "0.5" }
1552
- }), k("span", Qr, [g(sr, { text: e.block.src }, null, 8, ["text"])])], 4)) : e.block.src ? (s(), x(P, { key: 3 }, [e.block.linkUrl ? (s(), x("a", {
1552
+ }), k("span", ni, [g(dr, { text: e.block.src }, null, 8, ["text"])])], 4)) : e.block.src ? (s(), x(P, { key: 3 }, [e.block.linkUrl ? (s(), x("a", {
1553
1553
  key: 0,
1554
1554
  href: e.block.linkUrl,
1555
1555
  target: "_blank",
@@ -1561,33 +1561,33 @@ var Ar = { class: "tpl:w-full" }, jr = {
1561
1561
  src: h(A),
1562
1562
  alt: e.block.alt || h(a).image.altTextPlaceholder,
1563
1563
  style: D(T.value)
1564
- }, null, 12, ei)], 8, $r)) : (s(), x("img", {
1564
+ }, null, 12, ii)], 8, ri)) : (s(), x("img", {
1565
1565
  key: 1,
1566
1566
  class: "tpl:border-0",
1567
1567
  src: h(A),
1568
1568
  alt: e.block.alt,
1569
1569
  style: D(T.value)
1570
- }, null, 12, ti))], 64)) : (s(), x("div", ni, [d.value ? (s(), x("button", {
1570
+ }, null, 12, ai))], 64)) : (s(), x("div", oi, [d.value ? (s(), x("button", {
1571
1571
  key: 0,
1572
1572
  "aria-label": h(a).image.browseMedia,
1573
1573
  class: "tpl:flex tpl:items-center tpl:gap-1.5 tpl:rounded-md tpl:border tpl:px-3 tpl:py-2 tpl:text-xs tpl:font-medium tpl:transition-all tpl:cursor-pointer tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-primary)] tpl:bg-[var(--tpl-bg)]",
1574
1574
  onClick: E(p, ["stop"])
1575
- }, [g(h(Xt), {
1575
+ }, [g(h(tn), {
1576
1576
  size: 14,
1577
1577
  "stroke-width": 1.5
1578
- }), R(" " + F(h(a).image.browseMedia), 1)], 8, ri)) : (s(), x("span", ii, F(h(a).image.clickToAdd), 1))]))], 12, qr));
1578
+ }), R(" " + F(h(a).image.browseMedia), 1)], 8, si)) : (s(), x("span", ci, F(h(a).image.clickToAdd), 1))]))], 12, Zr));
1579
1579
  }
1580
- }), oi = { class: "tpl:w-full" }, si = ["href"], ci = {
1580
+ }), ui = { class: "tpl:w-full" }, di = ["href"], fi = {
1581
1581
  key: 1,
1582
1582
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:text-sm tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text-dim)]"
1583
- }, li = /* @__PURE__ */ d({
1583
+ }, pi = /* @__PURE__ */ d({
1584
1584
  __name: "MenuBlock",
1585
1585
  props: {
1586
1586
  block: {},
1587
1587
  viewport: {}
1588
1588
  },
1589
1589
  setup(e) {
1590
- let t = e, { t: n } = X(), i = b(() => ({
1590
+ let t = e, { t: n } = J(), i = b(() => ({
1591
1591
  display: "flex",
1592
1592
  flexWrap: "wrap",
1593
1593
  gap: `0 ${t.block.spacing}px`,
@@ -1599,7 +1599,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1599
1599
  function o(e) {
1600
1600
  return e || t.block.linkColor || t.block.color;
1601
1601
  }
1602
- return (t, c) => (s(), x("div", oi, [a.value ? (s(), x("div", {
1602
+ return (t, c) => (s(), x("div", ui, [a.value ? (s(), x("div", {
1603
1603
  key: 0,
1604
1604
  style: D(i.value)
1605
1605
  }, [(s(!0), x(P, null, r(e.block.items, (t, n) => (s(), x(P, { key: t.id }, [k("a", {
@@ -1611,15 +1611,15 @@ var Ar = { class: "tpl:w-full" }, jr = {
1611
1611
  textDecoration: t.underline ? "underline" : "none"
1612
1612
  }),
1613
1613
  onClick: c[0] ||= E(() => {}, ["prevent"])
1614
- }, [g(sr, { text: t.text || "..." }, null, 8, ["text"])], 12, si), n < e.block.items.length - 1 ? (s(), x("span", {
1614
+ }, [g(dr, { text: t.text || "..." }, null, 8, ["text"])], 12, di), n < e.block.items.length - 1 ? (s(), x("span", {
1615
1615
  key: 0,
1616
1616
  style: D({
1617
1617
  color: e.block.separatorColor,
1618
1618
  padding: `0 ${e.block.spacing}px`
1619
1619
  })
1620
- }, F(e.block.separator), 5)) : S("", !0)], 64))), 128))], 4)) : (s(), x("div", ci, [g(h(Jt), { size: 16 }), k("span", null, F(h(n).menu.addLinks), 1)]))]));
1620
+ }, F(e.block.separator), 5)) : S("", !0)], 64))), 128))], 4)) : (s(), x("div", fi, [g(h($t), { size: 16 }), k("span", null, F(h(n).menu.addLinks), 1)]))]));
1621
1621
  }
1622
- }), ui = /* @__PURE__ */ new Set([
1622
+ }), mi = /* @__PURE__ */ new Set([
1623
1623
  "http",
1624
1624
  "https",
1625
1625
  "mailto",
@@ -1629,7 +1629,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1629
1629
  "sms",
1630
1630
  "xmpp",
1631
1631
  "cid"
1632
- ]), di = /* @__PURE__ */ new Set([
1632
+ ]), hi = /* @__PURE__ */ new Set([
1633
1633
  "SCRIPT",
1634
1634
  "STYLE",
1635
1635
  "IFRAME",
@@ -1639,7 +1639,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1639
1639
  "META",
1640
1640
  "BASE",
1641
1641
  "FORM"
1642
- ]), fi = /* @__PURE__ */ new Set([
1642
+ ]), gi = /* @__PURE__ */ new Set([
1643
1643
  "href",
1644
1644
  "xlink:href",
1645
1645
  "formaction",
@@ -1648,16 +1648,16 @@ var Ar = { class: "tpl:w-full" }, jr = {
1648
1648
  "background",
1649
1649
  "poster"
1650
1650
  ]);
1651
- function pi(e, t) {
1651
+ function _i(e, t) {
1652
1652
  let n = e.replace(/[\t\n\r]/g, "").replace(/^[\u0000-\u0020]+/, "").trimEnd();
1653
1653
  if (!n || n.startsWith("#")) return !0;
1654
1654
  let r = /^([a-z][a-z0-9+.-]*):/i.exec(n);
1655
1655
  if (!r) return !0;
1656
1656
  let i = r[1].toLowerCase();
1657
- return ui.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
1657
+ return mi.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
1658
1658
  }
1659
- function mi(e) {
1660
- if (di.has(e.tagName)) {
1659
+ function vi(e) {
1660
+ if (hi.has(e.tagName)) {
1661
1661
  e.remove();
1662
1662
  return;
1663
1663
  }
@@ -1669,29 +1669,29 @@ function mi(e) {
1669
1669
  e.removeAttribute(n);
1670
1670
  continue;
1671
1671
  }
1672
- if (fi.has(t)) {
1673
- pi(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
1672
+ if (gi.has(t)) {
1673
+ _i(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
1674
1674
  continue;
1675
1675
  }
1676
1676
  if (t === "src") {
1677
- pi(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
1677
+ _i(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
1678
1678
  continue;
1679
1679
  }
1680
1680
  t === "srcdoc" && e.removeAttribute(n);
1681
1681
  }
1682
1682
  let n = Array.from(e.children);
1683
- for (let e of n) mi(e);
1683
+ for (let e of n) vi(e);
1684
1684
  }
1685
- function hi(e) {
1685
+ function yi(e) {
1686
1686
  if (typeof DOMParser > "u") return e;
1687
1687
  let t = new DOMParser().parseFromString(`<!doctype html><body>${e}</body>`, "text/html").body, n = Array.from(t.children);
1688
- for (let e of n) mi(e);
1688
+ for (let e of n) vi(e);
1689
1689
  return t.innerHTML;
1690
1690
  }
1691
1691
  //#endregion
1692
1692
  //#region src/composables/useEditableTextBlock.ts
1693
- function gi(e) {
1694
- let t = n(K, q), r = n(J, null), { syntax: i } = un(), a = b(() => r?.value ? ge(e(), t.value) : Se(e(), t.value)), o = b(() => hi(Te(a.value, i))), s = l(!1), c = l(null), { top: u, left: d } = qe(c), { toLocal: f } = zt(), p = b(() => f({
1693
+ function bi(e) {
1694
+ let t = n(G, W), r = n(K, null), { syntax: i } = Z(), a = b(() => r?.value ? ye(e(), t.value) : we(e(), t.value)), o = b(() => yi(De(a.value, i))), s = l(!1), c = l(null), { top: u, left: d } = Ze(c), { toLocal: f } = Wt(), p = b(() => f({
1695
1695
  top: u.value - 8,
1696
1696
  left: d.value
1697
1697
  }));
@@ -1712,14 +1712,14 @@ function gi(e) {
1712
1712
  }
1713
1713
  //#endregion
1714
1714
  //#region src/components/blocks/ParagraphBlock.vue?vue&type=script&setup=true&lang.ts
1715
- var _i = ["innerHTML"], vi = /* @__PURE__ */ d({
1715
+ var xi = ["innerHTML"], Si = /* @__PURE__ */ d({
1716
1716
  __name: "ParagraphBlock",
1717
1717
  props: {
1718
1718
  block: {},
1719
1719
  viewport: {}
1720
1720
  },
1721
1721
  setup(e) {
1722
- let t = e, n = L(() => import("./ParagraphEditor-R2ph_UOo.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = gi(() => t.block.content);
1722
+ let t = e, n = L(() => import("./ParagraphEditor-BilbVtrG.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = bi(() => t.block.content);
1723
1723
  return (t, u) => (s(), x("div", {
1724
1724
  ref_key: "blockRef",
1725
1725
  ref: i,
@@ -1738,54 +1738,64 @@ var _i = ["innerHTML"], vi = /* @__PURE__ */ d({
1738
1738
  key: 1,
1739
1739
  class: "tpl-text-content tpl:outline-none",
1740
1740
  innerHTML: h(o)
1741
- }, null, 8, _i))], 544));
1741
+ }, null, 8, xi))], 544));
1742
1742
  }
1743
1743
  });
1744
1744
  //#endregion
1745
1745
  //#region src/utils/blockComponentResolver.ts
1746
- function yi(e) {
1746
+ function Ci(e) {
1747
1747
  let t = { fontFamily: e.fontFamily };
1748
1748
  return e.textColor && (t.color = e.textColor), e.linkColor && (t["--tpl-doc-link-color"] = e.linkColor), e.linkUnderline && (t["--tpl-doc-link-underline"] = "underline"), t;
1749
1749
  }
1750
- function bi(e, t, n) {
1750
+ function wi(e, t, n) {
1751
1751
  if (t) {
1752
1752
  let n = t.getComponent(e);
1753
1753
  if (n) return n;
1754
1754
  }
1755
1755
  return n[e.type] ?? null;
1756
1756
  }
1757
- function xi(e) {
1757
+ function Ti(e) {
1758
+ if (e.type === "wrapper") return {};
1758
1759
  let { padding: t, backgroundColor: n } = e.styles, r = {
1759
1760
  padding: `${t.top}px ${t.right}px ${t.bottom}px ${t.left}px`,
1760
1761
  backgroundColor: n || "transparent"
1761
1762
  };
1762
- return (e.type === "paragraph" || e.type === "title") && (r["--tpl-doc-paragraph-spacing"] = `${e.type === "paragraph" ? e.paragraphSpacing ?? ve.paragraphGap : ve.paragraphGap}px`), e.type === "section" && e.borderRadius && e.borderRadius > 0 && (r.borderRadius = `${e.borderRadius}px`), r;
1763
+ return (e.type === "paragraph" || e.type === "title") && (r["--tpl-doc-paragraph-spacing"] = `${e.type === "paragraph" ? e.paragraphSpacing ?? Oe.paragraphGap : Oe.paragraphGap}px`), e.type === "section" && e.borderRadius && e.borderRadius > 0 && (r.borderRadius = `${e.borderRadius}px`), r;
1763
1764
  }
1764
- function Si(e) {
1765
+ function Ei(e) {
1765
1766
  if (e.type !== "section" || !e.wrapper) return null;
1766
1767
  let t = e.wrapper, n = {};
1767
1768
  return t.backgroundColor && (n.backgroundColor = t.backgroundColor), t.padding && (n.padding = `${t.padding.top}px ${t.padding.right}px ${t.padding.bottom}px ${t.padding.left}px`), t.borderRadius && t.borderRadius > 0 && (n.borderRadius = `${t.borderRadius}px`), n;
1768
1769
  }
1770
+ function Di(e) {
1771
+ if (e.type !== "wrapper") return null;
1772
+ let t = {};
1773
+ if (e.styles.backgroundColor && (t.backgroundColor = e.styles.backgroundColor), e.styles.padding) {
1774
+ let n = e.styles.padding;
1775
+ t.padding = `${n.top}px ${n.right}px ${n.bottom}px ${n.left}px`;
1776
+ }
1777
+ return e.borderRadius && e.borderRadius > 0 && (t.borderRadius = `${e.borderRadius}px`), t;
1778
+ }
1769
1779
  //#endregion
1770
1780
  //#region src/components/blocks/BlockWrapper.vue?vue&type=script&setup=true&lang.ts
1771
- var Ci = [
1781
+ var Oi = [
1772
1782
  "data-block-id",
1773
1783
  "data-block-type",
1774
1784
  "data-tpl-picked"
1775
- ], wi = ["aria-label"], Ti = [
1785
+ ], ki = ["aria-label"], Ai = [
1776
1786
  "aria-label",
1777
1787
  "aria-pressed",
1778
1788
  "title"
1779
- ], Ei = ["aria-label", "title"], Di = ["aria-label", "title"], Oi = ["aria-label", "title"], ki = {
1789
+ ], ji = ["aria-label", "title"], Mi = ["aria-label", "title"], Ni = ["aria-label", "title"], Pi = {
1780
1790
  key: 1,
1781
1791
  class: "tpl-block-hidden-overlay tpl:pointer-events-none tpl:absolute tpl:inset-0 tpl:z-[5] tpl:flex tpl:items-center tpl:justify-center tpl:rounded-sm"
1782
- }, Ai = { class: "tpl:flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-2 tpl:py-1 tpl:text-[10px] tpl:font-medium tpl:bg-[var(--tpl-chrome-bg-elevated)] tpl:text-[var(--tpl-chrome-text-muted)] tpl:shadow-[var(--tpl-shadow-sm)]" }, ji = {
1792
+ }, Fi = { class: "tpl:flex tpl:items-center tpl:gap-1 tpl:rounded tpl:px-2 tpl:py-1 tpl:text-[10px] tpl:font-medium tpl:bg-[var(--tpl-chrome-bg-elevated)] tpl:text-[var(--tpl-chrome-text-muted)] tpl:shadow-[var(--tpl-shadow-sm)]" }, Ii = {
1783
1793
  key: 2,
1784
1794
  class: "tpl:absolute tpl:-left-1 tpl:top-1/2 tpl:z-[5] tpl:-translate-x-full tpl:-translate-y-1/2"
1785
- }, Mi = ["aria-label", "title"], Ni = {
1795
+ }, Li = ["aria-label", "title"], Ri = {
1786
1796
  key: 3,
1787
1797
  class: "tpl:absolute tpl:-right-1 tpl:-top-1 tpl:z-[5] tpl:translate-x-full"
1788
- }, Pi = ["aria-label"], Fi = /*#__PURE__*/ cn(/* @__PURE__ */ d({
1798
+ }, zi = ["aria-label"], Bi = /*#__PURE__*/ pn(/* @__PURE__ */ d({
1789
1799
  __name: "BlockWrapper",
1790
1800
  props: {
1791
1801
  block: {},
@@ -1797,7 +1807,7 @@ var Ci = [
1797
1807
  },
1798
1808
  emits: ["select"],
1799
1809
  setup(e, { emit: t }) {
1800
- let r = L(() => import("./BlockIssueBadge-9hHpaXb9.js")), i = e, o = t, { t: c, format: u } = X(), d = n(ct, null), f = l(null), p = b(() => d?.liftedBlockId.value === i.block.id), m = b(() => p.value ? u(c.blockActions.dragLifted, { block: i.block.type }) : c.blockActions.drag);
1810
+ let r = L(() => import("./BlockIssueBadge-DS1pUf5g.js")), i = e, o = t, { t: c, format: u } = J(), d = n(mt, null), f = l(null), p = b(() => d?.liftedBlockId.value === i.block.id), m = b(() => p.value ? u(c.blockActions.dragLifted, { block: i.block.type }) : c.blockActions.drag);
1801
1811
  async function _() {
1802
1812
  await T(), f.value?.focus();
1803
1813
  }
@@ -1823,20 +1833,20 @@ var Ci = [
1823
1833
  let C = b(() => !i.viewport || !i.block.visibility ? !1 : i.block.visibility[i.viewport] === !1), w = b(() => i.previewMode === !0 && C.value), O = b(() => i.viewport ? {
1824
1834
  desktop: c.viewport.desktop,
1825
1835
  mobile: c.viewport.mobile
1826
- }[i.viewport] ?? i.viewport : ""), A = b(() => !!i.block.displayCondition), j = n(ht, null), M = n(yt, null), N = n(Ct, {}), P = b(() => N.savedBlocks?.isPicking.value === !0), I = b(() => !i.nested && N.savedBlocks?.isAvailable.value === !0 && N.savedBlocks?.canCreate.value === !0), z = b(() => i.isSelected && !P.value), B = b(() => N.comments?.getBlockCount(i.block.id) ?? 0), V = b(() => xi(i.block)), H = b(() => Si(i.block));
1827
- function ee(e) {
1836
+ }[i.viewport] ?? i.viewport : ""), A = b(() => !!i.block.displayCondition), j = n(xt, null), M = n(Tt, null), N = n(kt, {}), P = b(() => N.savedBlocks?.isPicking.value === !0), I = b(() => !i.nested && N.savedBlocks?.isAvailable.value === !0 && N.savedBlocks?.canCreate.value === !0), z = b(() => i.isSelected && !P.value), B = b(() => N.comments?.getBlockCount(i.block.id) ?? 0), V = b(() => Ti(i.block)), ee = b(() => Ei(i.block));
1837
+ function te(e) {
1828
1838
  i.previewMode || (e.target?.closest("a") && e.preventDefault(), e.stopPropagation(), o("select"));
1829
1839
  }
1830
- function te() {
1840
+ function ne() {
1831
1841
  j?.deleteBlock(i.block.id);
1832
1842
  }
1833
- function U() {
1843
+ function re() {
1834
1844
  j?.duplicateBlock(i.block);
1835
1845
  }
1836
- function ne() {
1846
+ function ie() {
1837
1847
  N.savedBlocks?.startPicking(i.block.id);
1838
1848
  }
1839
- function re() {
1849
+ function ae() {
1840
1850
  M?.toggleBlock(i.block.id);
1841
1851
  }
1842
1852
  return (t, n) => w.value ? S("", !0) : (s(), x("div", {
@@ -1850,7 +1860,7 @@ var Ci = [
1850
1860
  "data-block-id": e.block.id,
1851
1861
  "data-block-type": e.block.type,
1852
1862
  "data-tpl-picked": e.picked || void 0,
1853
- onClick: ee
1863
+ onClick: te
1854
1864
  }, [
1855
1865
  g(h(r), { "block-id": e.block.id }, null, 8, ["block-id"]),
1856
1866
  z.value ? (s(), x("div", {
@@ -1868,65 +1878,65 @@ var Ci = [
1868
1878
  "aria-keyshortcuts": "Space Enter ArrowUp ArrowDown Escape",
1869
1879
  title: h(c).blockActions.drag,
1870
1880
  onKeydown: y
1871
- }, [g(h(Zt), {
1881
+ }, [g(h(nn), {
1872
1882
  size: 14,
1873
1883
  "stroke-width": 1.5
1874
- })], 40, Ti),
1884
+ })], 40, Ai),
1875
1885
  k("button", {
1876
1886
  class: "tpl-block-action-btn tpl:flex tpl:size-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-sm tpl:border-none tpl:transition-colors",
1877
1887
  "aria-label": h(c).blockActions.duplicate,
1878
1888
  title: h(c).blockActions.duplicate,
1879
- onClick: E(U, ["stop"])
1880
- }, [g(h(Wt), {
1889
+ onClick: E(re, ["stop"])
1890
+ }, [g(h(Yt), {
1881
1891
  size: 14,
1882
1892
  "stroke-width": 1.5
1883
- })], 8, Ei),
1893
+ })], 8, ji),
1884
1894
  I.value ? (s(), x("button", {
1885
1895
  key: 0,
1886
1896
  class: "tpl-block-action-btn tpl:flex tpl:size-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-sm tpl:border-none tpl:transition-colors",
1887
1897
  "aria-label": h(c).blockActions.saveAsBlock,
1888
1898
  title: h(c).blockActions.saveAsBlock,
1889
- onClick: E(ne, ["stop"])
1890
- }, [g(h(Ut), {
1899
+ onClick: E(ie, ["stop"])
1900
+ }, [g(h(Jt), {
1891
1901
  size: 14,
1892
1902
  "stroke-width": 1.5
1893
- })], 8, Di)) : S("", !0),
1903
+ })], 8, Mi)) : S("", !0),
1894
1904
  k("button", {
1895
1905
  class: "tpl-block-action-btn tpl-block-delete-btn tpl:flex tpl:size-7 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-sm tpl:border-none tpl:transition-colors",
1896
1906
  "aria-label": h(c).blockActions.delete,
1897
1907
  title: h(c).blockActions.delete,
1898
- onClick: E(te, ["stop"])
1899
- }, [g(h(Yt), {
1908
+ onClick: E(ne, ["stop"])
1909
+ }, [g(h(en), {
1900
1910
  size: 14,
1901
1911
  "stroke-width": 1.5
1902
- })], 8, Oi)
1903
- ], 8, wi)) : S("", !0),
1904
- C.value ? (s(), x("div", ki, [k("span", Ai, [g(h(qt), {
1912
+ })], 8, Ni)
1913
+ ], 8, ki)) : S("", !0),
1914
+ C.value ? (s(), x("div", Pi, [k("span", Fi, [g(h(Qt), {
1905
1915
  size: 12,
1906
1916
  "stroke-width": 1.5
1907
1917
  }), R(" " + F(h(u)(h(c).blockActions.hiddenOnViewport, { viewport: O.value })), 1)])])) : S("", !0),
1908
- A.value && !C.value ? (s(), x("div", ji, [k("button", {
1918
+ A.value && !C.value ? (s(), x("div", Ii, [k("button", {
1909
1919
  "data-testid": "condition-toggle",
1910
1920
  class: "tpl-condition-toggle tpl:flex tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:rounded-md tpl:p-1 tpl:transition-colors tpl:bg-[var(--tpl-chrome-bg-elevated)] tpl:text-[var(--tpl-primary)] tpl:border tpl:border-[var(--tpl-border)]",
1911
1921
  "aria-label": h(c).blockActions.conditionToggle,
1912
1922
  title: e.block.displayCondition?.label,
1913
- onClick: E(re, ["stop"])
1914
- }, [g(h(an), {
1923
+ onClick: E(ae, ["stop"])
1924
+ }, [g(h(un), {
1915
1925
  size: 12,
1916
1926
  "stroke-width": 2
1917
- })], 8, Mi)])) : S("", !0),
1918
- B.value > 0 && !C.value ? (s(), x("div", Ni, [k("button", {
1927
+ })], 8, Li)])) : S("", !0),
1928
+ B.value > 0 && !C.value ? (s(), x("div", Ri, [k("button", {
1919
1929
  class: "tpl-comment-indicator tpl:flex tpl:min-h-6 tpl:min-w-6 tpl:cursor-pointer tpl:items-center tpl:justify-center tpl:gap-0.5 tpl:rounded-full tpl:border-none tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-semibold tpl:transition-colors tpl:bg-[var(--tpl-chrome-primary-light)] tpl:text-[var(--tpl-primary)]",
1920
1930
  "aria-label": h(u)(h(c).blockActions.comments, { count: String(B.value) }),
1921
1931
  onClick: n[0] ||= E((t) => h(N).comments?.openForBlock(e.block.id), ["stop"])
1922
- }, [g(h(tn), {
1932
+ }, [g(h(sn), {
1923
1933
  size: 12,
1924
1934
  "stroke-width": 2.5
1925
- }), R(" " + F(B.value), 1)], 8, Pi)])) : S("", !0),
1926
- H.value ? (s(), x("div", {
1935
+ }), R(" " + F(B.value), 1)], 8, zi)])) : S("", !0),
1936
+ ee.value ? (s(), x("div", {
1927
1937
  key: 4,
1928
1938
  class: "tpl-section-wrapper",
1929
- style: D(H.value)
1939
+ style: D(ee.value)
1930
1940
  }, [k("div", {
1931
1941
  class: "tpl-block-content",
1932
1942
  style: D(V.value)
@@ -1935,31 +1945,31 @@ var Ci = [
1935
1945
  class: "tpl-block-content",
1936
1946
  style: D(V.value)
1937
1947
  }, [a(t.$slots, "default", {}, void 0, !0)], 4))
1938
- ], 10, Ci));
1948
+ ], 10, Oi));
1939
1949
  }
1940
1950
  }), [["__scopeId", "data-v-2c239048"]]);
1941
1951
  //#endregion
1942
1952
  //#region src/utils/unwrapParagraph.ts
1943
- function Ii(e) {
1953
+ function Vi(e) {
1944
1954
  let t = e.match(/^\s*<p\b[^>]*>([\s\S]*)<\/p>\s*$/);
1945
1955
  return !t || /<\/p>\s*<p\b/i.test(t[1]) ? e : t[1];
1946
1956
  }
1947
1957
  //#endregion
1948
1958
  //#region src/components/blocks/TitleBlock.vue
1949
- var Li = /* @__PURE__ */ d({
1959
+ var Hi = /* @__PURE__ */ d({
1950
1960
  __name: "TitleBlock",
1951
1961
  props: {
1952
1962
  block: {},
1953
1963
  viewport: {}
1954
1964
  },
1955
1965
  setup(e) {
1956
- let t = e, n = L(() => import("./TitleEditor-C7KMzX1e.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = gi(() => t.block.content), d = b(() => {
1966
+ let t = e, n = L(() => import("./TitleEditor-pJeeZ-PX.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = bi(() => t.block.content), d = b(() => {
1957
1967
  let e = {
1958
- fontSize: `${De[t.block.level]}px`,
1968
+ fontSize: `${ve[t.block.level]}px`,
1959
1969
  textAlign: t.block.textAlign
1960
1970
  };
1961
1971
  return t.block.color && (e.color = t.block.color), t.block.fontFamily && (e.fontFamily = t.block.fontFamily), e;
1962
- }), f = b(() => `h${t.block.level}`), p = b(() => Ii(o.value));
1972
+ }), f = b(() => `h${t.block.level}`), p = b(() => Vi(o.value));
1963
1973
  return (t, o) => (s(), x("div", {
1964
1974
  ref_key: "blockRef",
1965
1975
  ref: i,
@@ -1985,16 +1995,16 @@ var Li = /* @__PURE__ */ d({
1985
1995
  });
1986
1996
  //#endregion
1987
1997
  //#region src/utils/sectionColumnDrop.ts
1988
- function Ri(e) {
1998
+ function Ui(e) {
1989
1999
  return e.dataset.blockType !== "section" && e.dataset.paletteType !== "section";
1990
2000
  }
1991
2001
  //#endregion
1992
2002
  //#region src/components/blocks/SectionBlock.vue?vue&type=script&setup=true&lang.ts
1993
- var zi = { class: "tpl:w-full" }, Bi = {
2003
+ var Wi = { class: "tpl:w-full" }, Gi = {
1994
2004
  key: 0,
1995
2005
  "data-testid": "section-drop-hint",
1996
2006
  class: "tpl:pointer-events-none tpl:absolute tpl:inset-0 tpl:flex tpl:items-center tpl:justify-center tpl:text-xs tpl:text-[var(--tpl-chrome-text-dim)]"
1997
- }, Vi = /* @__PURE__ */ d({
2007
+ }, Ki = /* @__PURE__ */ d({
1998
2008
  __name: "SectionBlock",
1999
2009
  props: {
2000
2010
  block: {},
@@ -2002,13 +2012,13 @@ var zi = { class: "tpl:w-full" }, Bi = {
2002
2012
  },
2003
2013
  setup(e) {
2004
2014
  let t = {
2005
- title: Li,
2006
- paragraph: vi,
2007
- image: ai,
2008
- button: lr,
2009
- divider: Br,
2010
- custom: Rr
2011
- }, a = e, { t: o } = X(), c = pt(Y, "SectionBlock"), l = n(yt, null), d = n(At, null), p = n(Ct, {}), m = n(kt, null);
2015
+ title: Hi,
2016
+ paragraph: Si,
2017
+ image: li,
2018
+ button: pr,
2019
+ divider: Wr,
2020
+ custom: Hr
2021
+ }, a = e, { t: o } = J(), c = Qe(q, "SectionBlock"), l = n(Tt, null), d = n(It, null), p = n(kt, {}), m = n(Ft, null);
2012
2022
  function _(e) {
2013
2023
  let t = p.savedBlocks;
2014
2024
  if (t?.isPicking.value) {
@@ -2043,7 +2053,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2043
2053
  r[e] = n, c.updateBlock(a.block.id, { children: r });
2044
2054
  }
2045
2055
  function A(e) {
2046
- return bi(e, d, t);
2056
+ return wi(e, d, t);
2047
2057
  }
2048
2058
  function j(e, t) {
2049
2059
  e.type === "custom" && c.updateBlock(e.id, {
@@ -2051,7 +2061,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2051
2061
  dataSourceFetched: t.dataSourceFetched
2052
2062
  });
2053
2063
  }
2054
- return (t, n) => (s(), x("div", zi, [k("div", { class: v(["tpl:flex tpl:gap-0", { "tpl:flex-col": w.value }]) }, [(s(!0), x(P, null, r(C.value, (t, n) => (s(), x("div", {
2064
+ return (t, n) => (s(), x("div", Wi, [k("div", { class: v(["tpl:flex tpl:gap-0", { "tpl:flex-col": w.value }]) }, [(s(!0), x(P, null, r(C.value, (t, n) => (s(), x("div", {
2055
2065
  key: n,
2056
2066
  class: v(["tpl:relative tpl:min-h-[60px] tpl:rounded", T(n).length === 0 ? "tpl:border tpl:border-dashed tpl:border-[var(--tpl-border)]" : ""]),
2057
2067
  style: D({ width: w.value ? "100%" : y.value[n] })
@@ -2060,7 +2070,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2060
2070
  group: {
2061
2071
  name: "blocks",
2062
2072
  pull: !0,
2063
- put: (e, t, n) => h(Ri)(n)
2073
+ put: (e, t, n) => h(Ui)(n)
2064
2074
  },
2065
2075
  animation: 150,
2066
2076
  "ghost-class": "tpl-ghost",
@@ -2073,7 +2083,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2073
2083
  class: "tpl:min-h-[60px]",
2074
2084
  "onUpdate:modelValue": (e) => E(n, e)
2075
2085
  }, {
2076
- default: i(() => [(s(!0), x(P, null, r(T(n), (t) => f((s(), x("div", { key: t.id }, [g(Fi, {
2086
+ default: i(() => [(s(!0), x(P, null, r(T(n), (t) => f((s(), x("div", { key: t.id }, [g(Bi, {
2077
2087
  block: t,
2078
2088
  "is-selected": h(c).state.selectedBlockId === t.id,
2079
2089
  viewport: e.viewport,
@@ -2105,13 +2115,13 @@ var zi = { class: "tpl:w-full" }, Bi = {
2105
2115
  "model-value",
2106
2116
  "group",
2107
2117
  "onUpdate:modelValue"
2108
- ]), T(n).length === 0 ? (s(), x("div", Bi, [k("span", null, F(h(o).section.dropHere), 1)])) : S("", !0)], 6))), 128))], 2)]));
2118
+ ]), T(n).length === 0 ? (s(), x("div", Gi, [k("span", null, F(h(o).section.dropHere), 1)])) : S("", !0)], 6))), 128))], 2)]));
2109
2119
  }
2110
- }), Hi = [
2120
+ }), qi = [
2111
2121
  "width",
2112
2122
  "height",
2113
2123
  "fill"
2114
- ], Ui = ["d"], Wi = /* @__PURE__ */ d({
2124
+ ], Ji = ["d"], Yi = /* @__PURE__ */ d({
2115
2125
  __name: "SocialIconSvg",
2116
2126
  props: {
2117
2127
  platform: {},
@@ -2119,7 +2129,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2119
2129
  iconSize: {}
2120
2130
  },
2121
2131
  setup(e) {
2122
- let t = e, n = b(() => Le[t.platform]), r = b(() => ze[t.iconSize]), i = b(() => {
2132
+ let t = e, n = b(() => Ve[t.platform]), r = b(() => Ue[t.iconSize]), i = b(() => {
2123
2133
  let e = {
2124
2134
  display: "inline-flex",
2125
2135
  alignItems: "center",
@@ -2163,25 +2173,25 @@ var zi = { class: "tpl:w-full" }, Bi = {
2163
2173
  viewBox: "0 0 24 24",
2164
2174
  fill: o.value,
2165
2175
  xmlns: "http://www.w3.org/2000/svg"
2166
- }, [k("path", { d: n.value.path }, null, 8, Ui)], 8, Hi))], 4));
2176
+ }, [k("path", { d: n.value.path }, null, 8, Ji)], 8, qi))], 4));
2167
2177
  }
2168
- }), Gi = { class: "tpl:w-full" }, Ki = ["href"], qi = {
2178
+ }), Xi = { class: "tpl:w-full" }, Zi = ["href"], Qi = {
2169
2179
  key: 1,
2170
2180
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:text-sm tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text-dim)]"
2171
- }, Ji = /* @__PURE__ */ d({
2181
+ }, $i = /* @__PURE__ */ d({
2172
2182
  __name: "SocialIconsBlock",
2173
2183
  props: {
2174
2184
  block: {},
2175
2185
  viewport: {}
2176
2186
  },
2177
2187
  setup(e) {
2178
- let t = e, { t: n } = X(), i = b(() => ({
2188
+ let t = e, { t: n } = J(), i = b(() => ({
2179
2189
  display: "flex",
2180
2190
  flexWrap: "wrap",
2181
2191
  gap: `${t.block.spacing}px`,
2182
2192
  justifyContent: t.block.align === "left" ? "flex-start" : t.block.align === "right" ? "flex-end" : "center"
2183
2193
  })), a = b(() => t.block.icons.length > 0);
2184
- return (t, o) => (s(), x("div", Gi, [a.value ? (s(), x("div", {
2194
+ return (t, o) => (s(), x("div", Xi, [a.value ? (s(), x("div", {
2185
2195
  key: 0,
2186
2196
  style: D(i.value)
2187
2197
  }, [(s(!0), x(P, null, r(e.block.icons, (t) => (s(), x("a", {
@@ -2189,7 +2199,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2189
2199
  href: t.url || "#",
2190
2200
  class: "tpl:cursor-default",
2191
2201
  onClick: o[0] ||= E(() => {}, ["prevent"])
2192
- }, [g(Wi, {
2202
+ }, [g(Yi, {
2193
2203
  platform: t.platform,
2194
2204
  "icon-style": e.block.iconStyle,
2195
2205
  "icon-size": e.block.iconSize
@@ -2197,44 +2207,44 @@ var zi = { class: "tpl:w-full" }, Bi = {
2197
2207
  "platform",
2198
2208
  "icon-style",
2199
2209
  "icon-size"
2200
- ])], 8, Ki))), 128))], 4)) : (s(), x("div", qi, [g(h(Ht), { size: 16 }), k("span", null, F(h(n).social.addIcons), 1)]))]));
2210
+ ])], 8, Zi))), 128))], 4)) : (s(), x("div", Qi, [g(h(qt), { size: 16 }), k("span", null, F(h(n).social.addIcons), 1)]))]));
2201
2211
  }
2202
- }), Yi = { class: "tpl:w-full" }, Xi = {
2212
+ }), ea = { class: "tpl:w-full" }, ta = {
2203
2213
  key: 0,
2204
2214
  class: "tpl:absolute tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-medium",
2205
2215
  style: {
2206
2216
  "background-color": "var(--tpl-bg-hover)",
2207
2217
  color: "var(--tpl-text-dim)"
2208
2218
  }
2209
- }, Zi = /* @__PURE__ */ d({
2219
+ }, na = /* @__PURE__ */ d({
2210
2220
  __name: "SpacerBlock",
2211
2221
  props: {
2212
2222
  block: {},
2213
2223
  viewport: {}
2214
2224
  },
2215
2225
  setup(e) {
2216
- let t = e, n = pt(Y, "SpacerBlock"), r = b(() => ({
2226
+ let t = e, n = Qe(q, "SpacerBlock"), r = b(() => ({
2217
2227
  height: `${t.block.height}px`,
2218
2228
  minHeight: `${t.block.height}px`,
2219
2229
  ...n.state.previewMode ? {} : { borderColor: "var(--tpl-border)" }
2220
2230
  }));
2221
- return (t, i) => (s(), x("div", Yi, [k("div", {
2231
+ return (t, i) => (s(), x("div", ea, [k("div", {
2222
2232
  style: D(r.value),
2223
2233
  class: v(["tpl:relative tpl:flex tpl:items-center tpl:justify-center", { "tpl:border-y tpl:border-dashed": !h(n).state.previewMode }])
2224
- }, [h(n).state.previewMode ? S("", !0) : (s(), x("span", Xi, F(e.block.height) + "px ", 1))], 6)]));
2234
+ }, [h(n).state.previewMode ? S("", !0) : (s(), x("span", ta, F(e.block.height) + "px ", 1))], 6)]));
2225
2235
  }
2226
- }), Qi = { class: "tpl:w-full" }, $i = { key: 0 }, ea = [
2236
+ }), ra = { class: "tpl:w-full" }, ia = { key: 0 }, aa = [
2227
2237
  "aria-label",
2228
2238
  "data-placeholder",
2229
2239
  "onBlur"
2230
- ], ta = [
2240
+ ], oa = [
2231
2241
  "aria-label",
2232
2242
  "data-placeholder",
2233
2243
  "onBlur"
2234
- ], na = {
2244
+ ], sa = {
2235
2245
  key: 1,
2236
2246
  class: "tpl:flex tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border tpl:border-dashed tpl:py-4 tpl:text-sm tpl:border-[var(--tpl-border)] tpl:text-[var(--tpl-text-dim)]"
2237
- }, ra = /*#__PURE__*/ cn(/* @__PURE__ */ d({
2247
+ }, ca = /*#__PURE__*/ pn(/* @__PURE__ */ d({
2238
2248
  __name: "TableBlock",
2239
2249
  props: {
2240
2250
  block: {},
@@ -2248,7 +2258,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2248
2258
  updated(e, t) {
2249
2259
  t.value !== t.oldValue && e.getRootNode().activeElement !== e && (e.textContent = t.value ?? "");
2250
2260
  }
2251
- }, n = e, { t: i } = X(), a = pt(Y, "TableBlock"), o = b(() => n.block.rows.length > 0), c = b(() => {
2261
+ }, n = e, { t: i } = J(), a = Qe(q, "TableBlock"), o = b(() => n.block.rows.length > 0), c = b(() => {
2252
2262
  let e = {
2253
2263
  width: "100%",
2254
2264
  borderCollapse: "collapse",
@@ -2279,11 +2289,11 @@ var zi = { class: "tpl:w-full" }, Bi = {
2279
2289
  } : n);
2280
2290
  a.updateBlock(n.block.id, { rows: o });
2281
2291
  }
2282
- return (e, n) => (s(), x("div", Qi, [o.value ? (s(), x("table", {
2292
+ return (e, n) => (s(), x("div", ra, [o.value ? (s(), x("table", {
2283
2293
  key: 0,
2284
2294
  style: D(c.value),
2285
2295
  class: "tpl-table-editable"
2286
- }, [d.value ? (s(), x("thead", $i, [k("tr", null, [(s(!0), x(P, null, r(d.value.cells, (e) => f((s(), x("th", {
2296
+ }, [d.value ? (s(), x("thead", ia, [k("tr", null, [(s(!0), x(P, null, r(d.value.cells, (e) => f((s(), x("th", {
2287
2297
  key: e.id,
2288
2298
  style: D(u.value),
2289
2299
  "aria-label": h(i).table.cellPlaceholder,
@@ -2292,7 +2302,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2292
2302
  onBlur: (t) => v(d.value.id, e.id, t),
2293
2303
  onKeydown: n[0] ||= _(E((e) => e.target.blur(), ["prevent"]), ["enter"]),
2294
2304
  onClick: E(m, ["stop"])
2295
- }, null, 44, ea)), [[t, e.content]])), 128))])])) : S("", !0), k("tbody", null, [(s(!0), x(P, null, r(p.value, (e) => (s(), x("tr", { key: e.id }, [(s(!0), x(P, null, r(e.cells, (r) => f((s(), x("td", {
2305
+ }, null, 44, aa)), [[t, e.content]])), 128))])])) : S("", !0), k("tbody", null, [(s(!0), x(P, null, r(p.value, (e) => (s(), x("tr", { key: e.id }, [(s(!0), x(P, null, r(e.cells, (r) => f((s(), x("td", {
2296
2306
  key: r.id,
2297
2307
  style: D(l.value),
2298
2308
  "aria-label": h(i).table.cellPlaceholder,
@@ -2301,9 +2311,9 @@ var zi = { class: "tpl:w-full" }, Bi = {
2301
2311
  onBlur: (t) => v(e.id, r.id, t),
2302
2312
  onKeydown: n[1] ||= _(E((e) => e.target.blur(), ["prevent"]), ["enter"]),
2303
2313
  onClick: E(m, ["stop"])
2304
- }, null, 44, ta)), [[t, r.content]])), 128))]))), 128))])], 4)) : (s(), x("div", na, [g(h(rn), { size: 16 }), k("span", null, F(h(i).table.empty), 1)]))]));
2314
+ }, null, 44, oa)), [[t, r.content]])), 128))]))), 128))])], 4)) : (s(), x("div", sa, [g(h(ln), { size: 16 }), k("span", null, F(h(i).table.empty), 1)]))]));
2305
2315
  }
2306
- }), [["__scopeId", "data-v-963ac422"]]), ia = /* @__PURE__ */ d({
2316
+ }), [["__scopeId", "data-v-963ac422"]]), la = /* @__PURE__ */ d({
2307
2317
  __name: "VideoPlayButton",
2308
2318
  props: { hoverEffect: {
2309
2319
  type: Boolean,
@@ -2321,7 +2331,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2321
2331
  });
2322
2332
  //#endregion
2323
2333
  //#region src/utils/videoThumbnail.ts
2324
- function aa(e) {
2334
+ function ua(e) {
2325
2335
  if (!e) return {
2326
2336
  platform: "unknown",
2327
2337
  videoId: null,
@@ -2353,25 +2363,25 @@ function aa(e) {
2353
2363
  thumbnailUrl: null
2354
2364
  };
2355
2365
  }
2356
- function oa(e, t) {
2357
- return t || aa(e).thumbnailUrl;
2366
+ function da(e, t) {
2367
+ return t || ua(e).thumbnailUrl;
2358
2368
  }
2359
2369
  //#endregion
2360
2370
  //#region src/components/blocks/VideoBlock.vue?vue&type=script&setup=true&lang.ts
2361
- var sa = ["src", "alt"], ca = {
2371
+ var fa = ["src", "alt"], pa = {
2362
2372
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
2363
2373
  style: { opacity: "0.7" }
2364
- }, la = ["href"], ua = ["src", "alt"], da = ["src", "alt"], fa = {
2374
+ }, ma = ["href"], ha = ["src", "alt"], ga = ["src", "alt"], _a = {
2365
2375
  key: 3,
2366
2376
  class: "tpl:flex tpl:min-h-[150px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-sm tpl:border-[var(--tpl-border-light)] tpl:bg-[var(--tpl-bg-hover)] tpl:text-[var(--tpl-text-dim)]"
2367
- }, pa = /* @__PURE__ */ d({
2377
+ }, va = /* @__PURE__ */ d({
2368
2378
  __name: "VideoBlock",
2369
2379
  props: {
2370
2380
  block: {},
2371
2381
  viewport: {}
2372
2382
  },
2373
2383
  setup(e) {
2374
- let t = e, { t: n } = X(), { syntax: r } = un(), i = b(() => W(t.block.url, r) || W(t.block.thumbnailUrl, r)), a = yn(() => i.value ? void 0 : t.block.thumbnailUrl || void 0), o = yn(() => i.value ? t.block.placeholderUrl : void 0), c = b(() => i.value ? null : t.block.thumbnailUrl ? a.value ?? null : oa(t.block.url)), l = b(() => ({ textAlign: t.block.align })), u = b(() => {
2384
+ let t = e, { t: n } = J(), { syntax: r } = Z(), i = b(() => H(t.block.url, r) || H(t.block.thumbnailUrl, r)), a = Cn(() => i.value ? void 0 : t.block.thumbnailUrl || void 0), o = Cn(() => i.value ? t.block.placeholderUrl : void 0), c = b(() => i.value ? null : t.block.thumbnailUrl ? a.value ?? null : da(t.block.url)), l = b(() => ({ textAlign: t.block.align })), u = b(() => {
2375
2385
  let e = t.block.align;
2376
2386
  return {
2377
2387
  maxWidth: "100%",
@@ -2381,7 +2391,7 @@ var sa = ["src", "alt"], ca = {
2381
2391
  marginLeft: e === "center" || e === "right" ? "auto" : void 0,
2382
2392
  marginRight: e === "center" ? "auto" : void 0
2383
2393
  };
2384
- }), d = b(() => ({ height: t.block.height ? `${t.block.height}px` : void 0 })), f = b(() => W(t.block.url, r) ? t.block.url : t.block.thumbnailUrl);
2394
+ }), d = b(() => ({ height: t.block.height ? `${t.block.height}px` : void 0 })), f = b(() => H(t.block.url, r) ? t.block.url : t.block.thumbnailUrl);
2385
2395
  return (t, r) => (s(), x("div", {
2386
2396
  class: "tpl:w-full",
2387
2397
  style: D(l.value)
@@ -2394,16 +2404,16 @@ var sa = ["src", "alt"], ca = {
2394
2404
  src: h(o),
2395
2405
  alt: e.block.alt,
2396
2406
  style: D(d.value)
2397
- }, null, 12, sa), g(ia)], 4)) : i.value ? (s(), x("div", {
2407
+ }, null, 12, fa), g(la)], 4)) : i.value ? (s(), x("div", {
2398
2408
  key: 1,
2399
2409
  class: "tpl:relative tpl:!flex tpl:min-h-[150px] tpl:flex-col tpl:items-center tpl:justify-center tpl:gap-2 tpl:rounded tpl:border-2 tpl:border-dashed tpl:text-center tpl:bg-[var(--tpl-bg-elevated)]",
2400
2410
  style: D([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, u.value])
2401
- }, [g(h($t), {
2411
+ }, [g(h(an), {
2402
2412
  size: 36,
2403
2413
  "stroke-width": 1.5,
2404
2414
  class: "tpl:text-[var(--tpl-primary)]",
2405
2415
  style: { opacity: "0.5" }
2406
- }), k("span", ca, [g(sr, { text: f.value }, null, 8, ["text"])])], 4)) : c.value ? (s(), x(P, { key: 2 }, [e.block.url ? (s(), x("a", {
2416
+ }), k("span", pa, [g(dr, { text: f.value }, null, 8, ["text"])])], 4)) : c.value ? (s(), x(P, { key: 2 }, [e.block.url ? (s(), x("a", {
2407
2417
  key: 0,
2408
2418
  href: e.block.url,
2409
2419
  target: "_blank",
@@ -2416,7 +2426,7 @@ var sa = ["src", "alt"], ca = {
2416
2426
  src: c.value,
2417
2427
  alt: e.block.alt,
2418
2428
  style: D(d.value)
2419
- }, null, 12, ua), g(ia, { "hover-effect": "" })], 12, la)) : (s(), x("div", {
2429
+ }, null, 12, ha), g(la, { "hover-effect": "" })], 12, ma)) : (s(), x("div", {
2420
2430
  key: 1,
2421
2431
  class: "tpl:relative tpl:inline-block",
2422
2432
  style: D(u.value)
@@ -2425,54 +2435,54 @@ var sa = ["src", "alt"], ca = {
2425
2435
  src: c.value,
2426
2436
  alt: e.block.alt,
2427
2437
  style: D(d.value)
2428
- }, null, 12, da), g(ia)], 4))], 64)) : (s(), x("div", fa, [g(h($t), {
2438
+ }, null, 12, ga), g(la)], 4))], 64)) : (s(), x("div", _a, [g(h(an), {
2429
2439
  size: 40,
2430
2440
  "stroke-width": 1.5,
2431
2441
  class: "tpl:text-[var(--tpl-border-light)]"
2432
2442
  }), k("span", null, F(h(n).video.addVideo), 1)]))], 4));
2433
2443
  }
2434
- }), ma = {
2435
- section: Vi,
2436
- title: Li,
2437
- paragraph: vi,
2438
- image: ai,
2439
- button: lr,
2440
- divider: Br,
2441
- video: pa,
2442
- social: Ji,
2443
- menu: li,
2444
- table: ra,
2445
- spacer: Zi,
2446
- html: Kr,
2447
- countdown: L(() => import("./CountdownBlock-DdC8Lg5F.js"))
2444
+ }), ya = {
2445
+ section: Ki,
2446
+ title: Hi,
2447
+ paragraph: Si,
2448
+ image: li,
2449
+ button: pr,
2450
+ divider: Wr,
2451
+ video: va,
2452
+ social: $i,
2453
+ menu: pi,
2454
+ table: ca,
2455
+ spacer: na,
2456
+ html: Xr,
2457
+ countdown: L(() => import("./CountdownBlock-sVDjKkRw.js"))
2448
2458
  };
2449
- function ha(e) {
2450
- let { editor: n, config: r, translations: i, fontsManager: a } = e, { t: s, format: u } = X(i), d = b(() => U(U(U(Ln(i), nr(n.content.value.settings?.locale)), se(n.content.value.settings) === "rtl" ? {
2459
+ function ba(e) {
2460
+ let { editor: n, config: r, translations: i, fontsManager: a } = e, { t: s, format: u } = J(i), d = b(() => de(de(de(Vn(i), or(n.content.value.settings?.locale)), ee(n.content.value.settings) === "rtl" ? {
2451
2461
  title: { textAlign: "right" },
2452
2462
  table: { textAlign: "right" }
2453
2463
  } : {}), r.blockDefaults ?? {}));
2454
2464
  n.setUiTheme(r.uiTheme ?? "auto");
2455
- let { resolvedTheme: f } = Tn(b(() => n.state.uiTheme)), p = l(r.theme ?? {}), { themeStyles: h } = Dn({
2465
+ let { resolvedTheme: f } = kn(b(() => n.state.uiTheme)), p = l(r.theme ?? {}), { themeStyles: h } = jn({
2456
2466
  themeOverrides: p,
2457
2467
  resolvedTheme: f,
2458
2468
  extraStyles: () => ({
2459
2469
  "--tpl-drop-text": `"${i.canvas.dropHere}"`,
2460
2470
  ...e.themeExtraStyles?.()
2461
2471
  })
2462
- }), g = Me({
2472
+ }), g = Ie({
2463
2473
  content: n.content,
2464
2474
  setContent: (e, t) => n.setContent(e, t),
2465
2475
  ...e.historyOptions
2466
2476
  });
2467
- Ie(n, g);
2468
- let _ = Ve({
2477
+ Be(n, g);
2478
+ let _ = Ge({
2469
2479
  addBlock: n.addBlock,
2470
2480
  removeBlock: n.removeBlock,
2471
2481
  updateBlock: n.updateBlock,
2472
2482
  selectBlock: n.selectBlock,
2473
2483
  findBlockLocation: n.findBlockLocation,
2474
2484
  blockDefaults: () => d.value
2475
- }), v = Ne(n), x = e.autoSaveOptions !== null && e.autoSaveOptions !== void 0 ? Be({
2485
+ }), v = Le(n), x = e.autoSaveOptions !== null && e.autoSaveOptions !== void 0 ? We({
2476
2486
  content: n.content,
2477
2487
  isDirty: () => n.state.isDirty,
2478
2488
  ...e.autoSaveOptions
@@ -2480,30 +2490,30 @@ function ha(e) {
2480
2490
  x && (S = t(g.isNavigating, (e) => {
2481
2491
  e ? x.pause() : x.resume();
2482
2492
  }));
2483
- let C = wn(n, {
2493
+ let C = On(n, {
2484
2494
  t: s,
2485
2495
  format: u
2486
- }, r.customBlocks ?? []), w = Lt(r.colors);
2487
- if (w.allowCustomIgnored && Z.warn("config.colors.allowCustom: false is ignored without presets — keeping the color wheel and hex input so a color can still be chosen."), w.invalidPresets.length > 0 && Z.warn(`config.colors.presets skipped invalid entries: ${w.invalidPresets.join(", ")} — presets must be hex colors (#rgb or #rrggbb).`), w.allowCustom === !1) {
2488
- let e = In(w.presets, r.blockDefaults, r.templateDefaults);
2489
- e.length > 0 && Z.warn(`config.colors locks custom colours, but these block/template default colours fall outside colors.presets: ${e.join(", ")}. New blocks start on a colour the palette can't reselect — set blockDefaults / templateDefaults from the same palette.`);
2490
- }
2491
- let T = Bt(r.templateSettings);
2492
- for (let e of T.unknown) Z.warn(`config.templateSettings.fields: "${e}" is not a template setting (expected one of ${Vt.join(", ")}) — skipping it.`);
2493
- let E = On();
2494
- Nn(E, ma);
2496
+ }, r.customBlocks ?? []), w = Ut(r.colors);
2497
+ if (w.allowCustomIgnored && Y.warn("config.colors.allowCustom: false is ignored without presets — keeping the color wheel and hex input so a color can still be chosen."), w.invalidPresets.length > 0 && Y.warn(`config.colors.presets skipped invalid entries: ${w.invalidPresets.join(", ")} — presets must be hex colors (#rgb or #rrggbb).`), w.allowCustom === !1) {
2498
+ let e = Bn(w.presets, r.blockDefaults, r.templateDefaults);
2499
+ e.length > 0 && Y.warn(`config.colors locks custom colours, but these block/template default colours fall outside colors.presets: ${e.join(", ")}. New blocks start on a colour the palette can't reselect — set blockDefaults / templateDefaults from the same palette.`);
2500
+ }
2501
+ let T = Gt(r.templateSettings);
2502
+ for (let e of T.unknown) Y.warn(`config.templateSettings.fields: "${e}" is not a template setting (expected one of ${Kt.join(", ")}) — skipping it.`);
2503
+ let E = Mn();
2504
+ Ln(E, ya);
2495
2505
  let D = /* @__PURE__ */ new Set();
2496
2506
  function O(e) {
2497
2507
  for (let t of e) {
2498
- E.registerCustom(t, Rr);
2499
- for (let e of rr(t, w)) D.has(e.id) || (D.add(e.id), Z.warn(e.message));
2508
+ E.registerCustom(t, Hr);
2509
+ for (let e of sr(t, w)) D.has(e.id) || (D.add(e.id), Y.warn(e.message));
2500
2510
  }
2501
2511
  }
2502
2512
  r.customBlocks?.length && O(r.customBlocks);
2503
- let k = hn();
2513
+ let k = yn();
2504
2514
  if (o() && m(k.dispose), e.containerEl) {
2505
2515
  let t = e.containerEl;
2506
- G(document, "pointerdown", (e) => {
2516
+ U(document, "pointerdown", (e) => {
2507
2517
  let n = t.value;
2508
2518
  n && (e.composedPath?.() ?? []).includes(n) && k.claim();
2509
2519
  }, { capture: !0 });
@@ -2517,7 +2527,7 @@ function ha(e) {
2517
2527
  x?.flush();
2518
2528
  }
2519
2529
  function j(t) {
2520
- k.isActive() && ar(t, {
2530
+ k.isActive() && lr(t, {
2521
2531
  history: g,
2522
2532
  selectBlock: (e) => n.selectBlock(e),
2523
2533
  getSelectedBlockId: () => n.state.selectedBlockId,
@@ -2529,38 +2539,41 @@ function ha(e) {
2529
2539
  onCancelPick: () => e.capabilities?.savedBlocks?.cancelPicking()
2530
2540
  });
2531
2541
  }
2532
- G(document, "keydown", j);
2542
+ U(document, "keydown", j);
2533
2543
  let M = l(null);
2534
- c(mt, e.editorRoot ?? document), c(Ft, M), c(Ot, i), c(Y, n), c(Pt, g), c(ht, _), c(yt, v), c(jt, a), c(nt, h), c(ft, f), c(Et, d), c(tt, r.locale), c(At, E), c(Dt, r.customBlocks ?? []), c(st, r.paletteBlocks), c(gt, Pn(r.htmlBlockPreview)), c(vt, w), c($e, T.fields), c(wt, kn(n.content, E));
2535
- let N = _e(r.mergeTags?.syntax), P = y(r.mergeTags?.tags ?? []);
2544
+ c(bt, e.editorRoot ?? document), c(et, M), c(vt, i), c(q, n), c(Bt, g), c(xt, _), c(Tt, v), c(Lt, a), c(st, h), c(yt, f), c(Mt, d), c(_t, r.locale), c(It, E), c(Nt, r.customBlocks ?? []), c(Vt, r.paletteBlocks), c(St, Rn(r.htmlBlockPreview)), c(tt, r.layout), c(it, r.sectionWrapper), c(wt, w), c(Pt, T.fields), c(At, Nn(n.content, E));
2545
+ let N = be(r.mergeTags?.syntax), P = y(r.mergeTags?.tags ?? []);
2536
2546
  function F(e) {
2537
2547
  if (!Array.isArray(e)) {
2538
- Z.warn(`setMergeTags() expects an array of merge tags, received ${typeof e} — ignoring.`);
2548
+ Y.warn(`setMergeTags() expects an array of merge tags, received ${typeof e} — ignoring.`);
2539
2549
  return;
2540
2550
  }
2541
2551
  P.value = e;
2542
2552
  }
2543
- c(K, P), c(at, N), c(rt, r.mergeTags?.onRequest ?? null), c(ot, r.mergeTags?.autocomplete !== !1), c(it, r.mergeTags?.showRawValue !== !1);
2544
- let I = l(ke(r.mergeTags?.tags ?? []));
2545
- c(xt, I);
2546
- let L = _n({
2553
+ c(G, P), c(ft, N), c(pt, r.mergeTags?.onRequest ?? null), c(Ot, r.mergeTags?.autocomplete !== !1), c(dt, r.mergeTags?.showRawValue !== !1);
2554
+ let I = l(Me(r.mergeTags?.tags ?? []));
2555
+ c(ut, I);
2556
+ let L = xn({
2547
2557
  resolvePreview: r.resolvePreview,
2548
- getContent: () => n.content.value,
2558
+ getContent: () => {
2559
+ let e = n.content.value;
2560
+ return r.layout && n.state.previewMode ? he(r.layout, e) : e;
2561
+ },
2549
2562
  isActive: () => n.state.previewMode
2550
2563
  });
2551
- c(Ye, L), c(ut, r.resolvePreview);
2564
+ c(gt, L), c(at, r.resolvePreview);
2552
2565
  let R = b(() => !(n.state.previewMode && L.isConfigured));
2553
- c(kt, R);
2554
- let z = bn();
2555
- c(St, z), c(Je, l(!1)), c(Ze, l(!1)), c(Mt, r.logicTags?.tags ?? []), c(Xe, r.logicTags?.pairs ?? []), c(Qe, r.logicTags?.onRequest ?? null), c(lt, xn()), c(et, r.onRequestMedia ?? null), c(_t, r.canDropMedia ?? null), c(Nt, r.resolveImageUrl ? vn(r.resolveImageUrl) : null), c(bt, r.displayConditions?.conditions ?? []), c(Tt, r.displayConditions?.allowCustom ?? !1), c(Ct, e.capabilities ?? {}), c(ct, C);
2556
- let B = Sn(r.lint) ? null : Cn({
2566
+ c(Ft, R);
2567
+ let z = wn();
2568
+ c($e, z), c(Dt, l(!1)), c(nt, l(!1)), c(ht, r.logicTags?.tags ?? []), c(Rt, r.logicTags?.pairs ?? []), c(ot, r.logicTags?.onRequest ?? null), c(rt, Tn()), c(lt, r.onRequestMedia ?? null), c(Ct, r.canDropMedia ?? null), c(zt, r.resolveImageUrl ? Sn(r.resolveImageUrl) : null), c(Et, r.displayConditions?.conditions ?? []), c(jt, r.displayConditions?.allowCustom ?? !1), c(kt, e.capabilities ?? {}), c(mt, C);
2569
+ let B = En(r.lint) ? null : Dn({
2557
2570
  content: n.content,
2558
2571
  options: r.lint ?? {},
2559
2572
  updateBlock: n.updateBlock,
2560
2573
  updateSettings: n.updateSettings,
2561
2574
  removeBlock: n.removeBlock
2562
2575
  });
2563
- c(dt, B);
2576
+ c(ct, B);
2564
2577
  function V() {
2565
2578
  S?.(), B?.destroy(), x?.destroy(), g.destroy();
2566
2579
  }
@@ -2587,6 +2600,6 @@ function ha(e) {
2587
2600
  };
2588
2601
  }
2589
2602
  //#endregion
2590
- export { Xn as A, mr as C, $n as D, Gn as E, Jn as M, _n as N, Qn as O, hr as S, lr as T, Rr as _, Ji as a, Tr as b, Fi as c, bi as d, vi as f, Br as g, Kr as h, Zi as i, Yn as j, Zn as k, xi as l, ai as m, pa as n, Vi as o, li as p, ra as r, Li as s, ha as t, yi as u, kr as v, fr as w, br as x, Dr as y };
2603
+ export { tr as A, yr as C, Yn as D, pr as E, $n as M, Qn as N, rr as O, xn as P, wr as S, gr as T, Wr as _, $i as a, jr as b, Bi as c, Di as d, wi as f, Xr as g, li as h, na as i, er as j, nr as k, Ti as l, pi as m, va as n, Ki as o, Si as p, ca as r, Hi as s, ba as t, Ci as u, Hr as v, vr as w, kr as x, Nr as y };
2591
2604
 
2592
- //# sourceMappingURL=useEditorCore-CXYI14ux.js.map
2605
+ //# sourceMappingURL=useEditorCore-CQraU2s_.js.map