@templatical/editor 0.39.4 → 0.41.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 (230) hide show
  1. package/README.md +1 -1
  2. package/dist/{AiChatSidebar-5qqrS6uy.js → AiChatSidebar-a8TPBAl2.js} +3 -3
  3. package/dist/{AiFeatureMenu-BBO_Ojlp.js → AiFeatureMenu-CroDMqRG.js} +3 -3
  4. package/dist/{BlockIssueBadge-D5oGxOQP.js → BlockIssueBadge-D8KsGWY6.js} +2 -2
  5. package/dist/BlockPreviewCanvas-Z9SZIgfA.js +133 -0
  6. package/dist/{CloudHeaderExtras-Cg6uF-yQ.js → CloudHeaderExtras-CVqHeqc6.js} +2 -2
  7. package/dist/{CloudPanels-D1Gg4qrG.js → CloudPanels-CmEpQUJB.js} +4 -4
  8. package/dist/{CollaboratorBar-Cmn0LccS.js → CollaboratorBar-AIQC9fEF.js} +2 -2
  9. package/dist/{CommentsPanel-twNhYUqZ.js → CommentsPanel-9k1q-79y.js} +1 -1
  10. package/dist/{CommentsSidebar-DDO0Qx8U.js → CommentsSidebar-Bc7nORmD.js} +2 -2
  11. package/dist/{CountdownBlock-DSvbf3qU.js → CountdownBlock-C6R-hn7D.js} +1 -1
  12. package/dist/{CountdownToolbar-nvHxu8Gu.js → CountdownToolbar-DkC-qSgq.js} +4 -4
  13. package/dist/{DesignReferenceSidebar-C8ohNhOd.js → DesignReferenceSidebar-OoiYJAKS.js} +3 -3
  14. package/dist/{IssuesPanel-Ck0EGoV5.js → IssuesPanel-Dnns3O9z.js} +3 -3
  15. package/dist/{LogicTagInsertButton-D8IwH-9Z.js → LogicTagInsertButton-BimKobaG.js} +67 -67
  16. package/dist/{MediaEditModal-BFWmufJK.js → MediaEditModal-C-InB-H2.js} +1 -1
  17. package/dist/{MediaPanels-BmDda5rY.js → MediaPanels-CTosUpeo.js} +1 -1
  18. package/dist/{MergeTagInput-QI-5KG2R.js → MergeTagInput-DqpVzhy7.js} +1 -1
  19. package/dist/{MergeTagModeToggle-D793Bj_E.js → MergeTagModeToggle-BkIiAgpQ.js} +4 -4
  20. package/dist/{ParagraphEditor-D6FRxr8Y.js → ParagraphEditor-DaZ03d1U.js} +19 -19
  21. package/dist/{RestoreVersionDialog--b0qfNaK.js → RestoreVersionDialog-DHb1mPoF.js} +2 -2
  22. package/dist/{RichTextEditorContent-BC5UTVnb.js → RichTextEditorContent-AEtfKvLz.js} +5 -5
  23. package/dist/{SaveBlockDialog-C0BdEGeL.js → SaveBlockDialog-hGwLDWfE.js} +8 -8
  24. package/dist/{SavedBlocksBrowserModal-BzDgXtr4.js → SavedBlocksBrowserModal-C0lYVBFi.js} +6 -6
  25. package/dist/{SavedBlocksPanels-DN-bDZzy.js → SavedBlocksPanels-CaTbeVDv.js} +1 -1
  26. package/dist/{SavedBlocksPickBar-pEi9Et8Q.js → SavedBlocksPickBar-DR2afid2.js} +2 -2
  27. package/dist/{TemplateScoringPanel-B1wcfE0w.js → TemplateScoringPanel-Cs0TGtRF.js} +3 -3
  28. package/dist/{TemplateSettings-C_5leDdF.js → TemplateSettings-BD1WNP4C.js} +7 -7
  29. package/dist/{TestEmailModal-maM8SLBV.js → TestEmailModal-DqoosG1u.js} +70 -65
  30. package/dist/{TestEmailPanel-8iAZYpCK.js → TestEmailPanel-DpozqyHF.js} +1 -1
  31. package/dist/{TitleEditor-L26QXwna.js → TitleEditor-BCBdZLt_.js} +9 -9
  32. package/dist/{ToggleSwitch-JvQ_CmI1.js → ToggleSwitch-CJfQ8u57.js} +1 -1
  33. package/dist/{Toolbar-B2kDLFhn.js → Toolbar-C7SjilzH.js} +540 -525
  34. package/dist/{TplModal-DVMS_nAn.js → TplModal-CVO-2KrU.js} +3 -3
  35. package/dist/{VersionHistoryMenu-BVQityes.js → VersionHistoryMenu-b0A8mS2_.js} +2 -2
  36. package/dist/{VersionHistoryPanels-D8f8KvKX.js → VersionHistoryPanels-BzF7dmwa.js} +1 -1
  37. package/dist/{VersionPreviewBanner-BaMSgA1O.js → VersionPreviewBanner-xB9r83r0.js} +1 -1
  38. package/dist/WrapperBlock-BDjOn3fY.js +34 -0
  39. package/dist/{blockTypeIcons-CdXugKyV.js → blockTypeIcons-B0Bq1WT1.js} +1 -1
  40. package/dist/bundle-stats.json +7 -7
  41. package/dist/{ca-Bqeygp1_.js → ca-Ckgw9yd0.js} +1 -0
  42. package/dist/cdn/chunks/{AiChatSidebar-ctfIU4i0.js → AiChatSidebar-mKImUXi6.js} +7 -7
  43. package/dist/cdn/chunks/{AiChatSidebar-ctfIU4i0.js.map → AiChatSidebar-mKImUXi6.js.map} +1 -1
  44. package/dist/cdn/chunks/{AiFeatureMenu-ByygdH_9.js → AiFeatureMenu-Cx3qdStQ.js} +4 -4
  45. package/dist/cdn/chunks/{AiFeatureMenu-ByygdH_9.js.map → AiFeatureMenu-Cx3qdStQ.js.map} +1 -1
  46. package/dist/cdn/chunks/{BlockIssueBadge-9hHpaXb9.js → BlockIssueBadge-DS1pUf5g.js} +3 -3
  47. package/dist/cdn/chunks/{BlockIssueBadge-9hHpaXb9.js.map → BlockIssueBadge-DS1pUf5g.js.map} +1 -1
  48. package/dist/cdn/chunks/BlockPreviewCanvas-D31TNib3.js +135 -0
  49. package/dist/cdn/chunks/BlockPreviewCanvas-D31TNib3.js.map +1 -0
  50. package/dist/cdn/chunks/{CloudHeaderExtras-BxsMpvVr.js → CloudHeaderExtras-0zdlKiq7.js} +3 -3
  51. package/dist/cdn/chunks/{CloudHeaderExtras-BxsMpvVr.js.map → CloudHeaderExtras-0zdlKiq7.js.map} +1 -1
  52. package/dist/cdn/chunks/{CloudPanels-DmxmqAS_.js → CloudPanels-DPh71yOO.js} +5 -5
  53. package/dist/cdn/chunks/{CloudPanels-DmxmqAS_.js.map → CloudPanels-DPh71yOO.js.map} +1 -1
  54. package/dist/cdn/chunks/{CollaboratorBar-B8ttqAqX.js → CollaboratorBar-lCZU8qkg.js} +3 -3
  55. package/dist/cdn/chunks/{CollaboratorBar-B8ttqAqX.js.map → CollaboratorBar-lCZU8qkg.js.map} +1 -1
  56. package/dist/cdn/chunks/{CommentsPanel-C8ibhaiK.js → CommentsPanel-BtAGZfF6.js} +2 -2
  57. package/dist/cdn/chunks/{CommentsPanel-C8ibhaiK.js.map → CommentsPanel-BtAGZfF6.js.map} +1 -1
  58. package/dist/cdn/chunks/{CommentsSidebar-CybWfZ3V.js → CommentsSidebar-Ws07MXYj.js} +3 -3
  59. package/dist/cdn/chunks/{CommentsSidebar-CybWfZ3V.js.map → CommentsSidebar-Ws07MXYj.js.map} +1 -1
  60. package/dist/cdn/chunks/{CountdownBlock-DdC8Lg5F.js → CountdownBlock-sVDjKkRw.js} +2 -2
  61. package/dist/cdn/chunks/{CountdownBlock-DdC8Lg5F.js.map → CountdownBlock-sVDjKkRw.js.map} +1 -1
  62. package/dist/cdn/chunks/{CountdownToolbar-DRESXiVD.js → CountdownToolbar-Bu93WiS8.js} +5 -5
  63. package/dist/cdn/chunks/{CountdownToolbar-DRESXiVD.js.map → CountdownToolbar-Bu93WiS8.js.map} +1 -1
  64. package/dist/cdn/chunks/{DesignReferenceSidebar-CtaoY-hl.js → DesignReferenceSidebar-BlSdh5B7.js} +4 -4
  65. package/dist/cdn/chunks/{DesignReferenceSidebar-CtaoY-hl.js.map → DesignReferenceSidebar-BlSdh5B7.js.map} +1 -1
  66. package/dist/cdn/chunks/{IssuesPanel-C6RlIxoi.js → IssuesPanel-CKkv9z9g.js} +4 -4
  67. package/dist/cdn/chunks/{IssuesPanel-C6RlIxoi.js.map → IssuesPanel-CKkv9z9g.js.map} +1 -1
  68. package/dist/cdn/chunks/{LogicTagInsertButton-DpyPozop.js → LogicTagInsertButton-CHc1yZ9v.js} +165 -165
  69. package/dist/cdn/chunks/{LogicTagInsertButton-DpyPozop.js.map → LogicTagInsertButton-CHc1yZ9v.js.map} +1 -1
  70. package/dist/cdn/chunks/{MediaEditModal-CZBZviu2.js → MediaEditModal-Cw9MhjVz.js} +2 -2
  71. package/dist/cdn/chunks/{MediaEditModal-CZBZviu2.js.map → MediaEditModal-Cw9MhjVz.js.map} +1 -1
  72. package/dist/cdn/chunks/{MediaPanels-Bq5b-XJM.js → MediaPanels-FD_aX3H5.js} +2 -2
  73. package/dist/cdn/chunks/{MediaPanels-Bq5b-XJM.js.map → MediaPanels-FD_aX3H5.js.map} +1 -1
  74. package/dist/cdn/chunks/{MergeTagInput-ERJr7bP_.js → MergeTagInput--qTYfCWk.js} +2 -2
  75. package/dist/cdn/chunks/{MergeTagInput-ERJr7bP_.js.map → MergeTagInput--qTYfCWk.js.map} +1 -1
  76. package/dist/cdn/chunks/{MergeTagModeToggle-n3nvSNeQ.js → MergeTagModeToggle-CdWIGo3Q.js} +5 -5
  77. package/dist/cdn/chunks/{MergeTagModeToggle-n3nvSNeQ.js.map → MergeTagModeToggle-CdWIGo3Q.js.map} +1 -1
  78. package/dist/cdn/chunks/{ParagraphEditor-R2ph_UOo.js → ParagraphEditor-w2qEZTkM.js} +17 -17
  79. package/dist/cdn/chunks/{ParagraphEditor-R2ph_UOo.js.map → ParagraphEditor-w2qEZTkM.js.map} +1 -1
  80. package/dist/cdn/chunks/{RestoreVersionDialog-C-dwbb7T.js → RestoreVersionDialog-cnWVN3nX.js} +3 -3
  81. package/dist/cdn/chunks/{RestoreVersionDialog-C-dwbb7T.js.map → RestoreVersionDialog-cnWVN3nX.js.map} +1 -1
  82. package/dist/cdn/chunks/{RichTextEditorContent-Ch5zeyZ7.js → RichTextEditorContent-Fzuu9pLP.js} +6 -6
  83. package/dist/cdn/chunks/{RichTextEditorContent-Ch5zeyZ7.js.map → RichTextEditorContent-Fzuu9pLP.js.map} +1 -1
  84. package/dist/cdn/chunks/{SaveBlockDialog-C_BPjVv6.js → SaveBlockDialog-jxQtKnVs.js} +9 -9
  85. package/dist/cdn/chunks/{SaveBlockDialog-C_BPjVv6.js.map → SaveBlockDialog-jxQtKnVs.js.map} +1 -1
  86. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CrrGEfFb.js → SavedBlocksBrowserModal-DpXWf4Pi.js} +6 -6
  87. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CrrGEfFb.js.map → SavedBlocksBrowserModal-DpXWf4Pi.js.map} +1 -1
  88. package/dist/cdn/chunks/{SavedBlocksPanels-DfTaMPAr.js → SavedBlocksPanels-B-ASmf1P.js} +2 -2
  89. package/dist/cdn/chunks/{SavedBlocksPanels-DfTaMPAr.js.map → SavedBlocksPanels-B-ASmf1P.js.map} +1 -1
  90. package/dist/cdn/chunks/{SavedBlocksPickBar-DziwHYSu.js → SavedBlocksPickBar-CEFIQ8Nd.js} +3 -3
  91. package/dist/cdn/chunks/{SavedBlocksPickBar-DziwHYSu.js.map → SavedBlocksPickBar-CEFIQ8Nd.js.map} +1 -1
  92. package/dist/cdn/chunks/{TemplateScoringPanel-CR6RG6dZ.js → TemplateScoringPanel-d_Ppowsq.js} +49 -49
  93. package/dist/cdn/chunks/{TemplateScoringPanel-CR6RG6dZ.js.map → TemplateScoringPanel-d_Ppowsq.js.map} +1 -1
  94. package/dist/cdn/chunks/{TemplateSettings-DjXiiiNr.js → TemplateSettings-Dr5OJ0Gi.js} +8 -8
  95. package/dist/cdn/chunks/{TemplateSettings-DjXiiiNr.js.map → TemplateSettings-Dr5OJ0Gi.js.map} +1 -1
  96. package/dist/cdn/chunks/{TestEmailModal-DId9Og-N.js → TestEmailModal-CrjzVw8e.js} +56 -51
  97. package/dist/cdn/chunks/TestEmailModal-CrjzVw8e.js.map +1 -0
  98. package/dist/cdn/chunks/{TestEmailPanel-B8LwXmeX.js → TestEmailPanel-k9vdulTu.js} +2 -2
  99. package/dist/cdn/chunks/{TestEmailPanel-B8LwXmeX.js.map → TestEmailPanel-k9vdulTu.js.map} +1 -1
  100. package/dist/cdn/chunks/{TitleEditor-C7KMzX1e.js → TitleEditor-laILWfKh.js} +9 -9
  101. package/dist/cdn/chunks/{TitleEditor-C7KMzX1e.js.map → TitleEditor-laILWfKh.js.map} +1 -1
  102. package/dist/cdn/chunks/{ToggleSwitch-CDy8OfcB.js → ToggleSwitch-0dGCYnRY.js} +2 -2
  103. package/dist/cdn/chunks/{ToggleSwitch-CDy8OfcB.js.map → ToggleSwitch-0dGCYnRY.js.map} +1 -1
  104. package/dist/cdn/chunks/{Toolbar-DqFhWxgW.js → Toolbar-BsiHW9gY.js} +493 -478
  105. package/dist/cdn/chunks/{Toolbar-DqFhWxgW.js.map → Toolbar-BsiHW9gY.js.map} +1 -1
  106. package/dist/cdn/chunks/{TplModal-BKqDFLq3.js → TplModal-D8DoPbFa.js} +4 -4
  107. package/dist/cdn/chunks/{TplModal-BKqDFLq3.js.map → TplModal-D8DoPbFa.js.map} +1 -1
  108. package/dist/cdn/chunks/{VersionHistoryMenu-Dij1pTEb.js → VersionHistoryMenu-B3-hNu9c.js} +3 -3
  109. package/dist/cdn/chunks/{VersionHistoryMenu-Dij1pTEb.js.map → VersionHistoryMenu-B3-hNu9c.js.map} +1 -1
  110. package/dist/cdn/chunks/{VersionHistoryPanels-DcCFFDK6.js → VersionHistoryPanels-zw1AtzGN.js} +2 -2
  111. package/dist/cdn/chunks/{VersionHistoryPanels-DcCFFDK6.js.map → VersionHistoryPanels-zw1AtzGN.js.map} +1 -1
  112. package/dist/cdn/chunks/{VersionPreviewBanner-Df3FVlig.js → VersionPreviewBanner-PzVQSBJE.js} +2 -2
  113. package/dist/cdn/chunks/{VersionPreviewBanner-Df3FVlig.js.map → VersionPreviewBanner-PzVQSBJE.js.map} +1 -1
  114. package/dist/cdn/chunks/WrapperBlock-CpRvfAV0.js +36 -0
  115. package/dist/cdn/chunks/WrapperBlock-CpRvfAV0.js.map +1 -0
  116. package/dist/cdn/chunks/{ca-Bqeygp1_.js → ca-Ckgw9yd0.js} +2 -1
  117. package/dist/cdn/chunks/ca-Ckgw9yd0.js.map +1 -0
  118. package/dist/cdn/chunks/{cloud-eaXyxZ8l.js → cloud-CIT4yPp4.js} +2 -2
  119. package/dist/cdn/chunks/{cloud-eaXyxZ8l.js.map → cloud-CIT4yPp4.js.map} +1 -1
  120. package/dist/cdn/chunks/{createCloudRuntime-D5bXzcTe.js → createCloudRuntime-COUxbPvd.js} +49 -40
  121. package/dist/cdn/chunks/createCloudRuntime-COUxbPvd.js.map +1 -0
  122. package/dist/cdn/chunks/{de-CY6SlqBx.js → de-D4dweQw8.js} +2 -1
  123. package/dist/cdn/chunks/de-D4dweQw8.js.map +1 -0
  124. package/dist/cdn/chunks/{editor-modal-zxvWz8R6.js → editor-modal-CKu8HhiB.js} +4 -3
  125. package/dist/cdn/chunks/{editor-modal-zxvWz8R6.js.map → editor-modal-CKu8HhiB.js.map} +1 -1
  126. package/dist/cdn/chunks/en-DqzAdO8F.js +2 -0
  127. package/dist/{en-8V-2kDcp.js → cdn/chunks/en-VE7R7NyL.js} +3 -0
  128. package/dist/cdn/chunks/en-VE7R7NyL.js.map +1 -0
  129. package/dist/{es-Cmn1rT3l.js → cdn/chunks/es-B9OhP8H3.js} +3 -0
  130. package/dist/cdn/chunks/es-B9OhP8H3.js.map +1 -0
  131. package/dist/cdn/chunks/{extensions-Bhu8UEE5.js → extensions-CafoGF65.js} +5 -5
  132. package/dist/cdn/chunks/{extensions-Bhu8UEE5.js.map → extensions-CafoGF65.js.map} +1 -1
  133. package/dist/cdn/chunks/{fr-2yDa4zXM.js → fr-wrXhIi00.js} +2 -1
  134. package/dist/cdn/chunks/fr-wrXhIi00.js.map +1 -0
  135. package/dist/cdn/chunks/ja-DhlWUfke.js +94 -0
  136. package/dist/cdn/chunks/ja-DhlWUfke.js.map +1 -0
  137. package/dist/cdn/chunks/ja-fKnVWXHC.js +625 -0
  138. package/dist/cdn/chunks/ja-fKnVWXHC.js.map +1 -0
  139. package/dist/cdn/chunks/keys-DCWeHkSF.js +12 -0
  140. package/dist/cdn/chunks/keys-DCWeHkSF.js.map +1 -0
  141. package/dist/{nl-Bzk2zRI8.js → cdn/chunks/nl-DeFatKJe.js} +3 -0
  142. package/dist/cdn/chunks/nl-DeFatKJe.js.map +1 -0
  143. package/dist/cdn/chunks/preRenderCustomBlocks-Dpj-_cOj.js +21 -0
  144. package/dist/cdn/chunks/preRenderCustomBlocks-Dpj-_cOj.js.map +1 -0
  145. package/dist/cdn/chunks/{pt-BR-DqtSCTUi.js → pt-BR-Bh1J8ey6.js} +2 -1
  146. package/dist/cdn/chunks/pt-BR-Bh1J8ey6.js.map +1 -0
  147. package/dist/cdn/chunks/{socialIcons-9VrG8X3m.js → socialIcons-BvYNMn1G.js} +264 -258
  148. package/dist/cdn/chunks/socialIcons-BvYNMn1G.js.map +1 -0
  149. package/dist/cdn/chunks/{src-CaNsA_WX.js → src-Cnc5E71L.js} +258 -247
  150. package/dist/cdn/chunks/src-Cnc5E71L.js.map +1 -0
  151. package/dist/cdn/chunks/{src-Dwgq7hf4.js → src-DveVYoWS.js} +281 -181
  152. package/dist/cdn/chunks/src-DveVYoWS.js.map +1 -0
  153. package/dist/cdn/chunks/{src-CqYYKcCI.js → src-L6HEdwFn.js} +175 -168
  154. package/dist/cdn/chunks/src-L6HEdwFn.js.map +1 -0
  155. package/dist/cdn/chunks/{useCloudI18n-C09JcFS0.js → useCloudI18n-CrjWbpbu.js} +2 -2
  156. package/dist/cdn/chunks/{useCloudI18n-C09JcFS0.js.map → useCloudI18n-CrjWbpbu.js.map} +1 -1
  157. package/dist/cdn/chunks/{useEditorCore-CXYI14ux.js → useEditorCore-DZmtKwJh.js} +431 -409
  158. package/dist/cdn/chunks/useEditorCore-DZmtKwJh.js.map +1 -0
  159. package/dist/cdn/chunks/{useEditorRoot-DFx2fXJP.js → useEditorRoot-CshefZLP.js} +2 -2
  160. package/dist/cdn/chunks/{useEditorRoot-DFx2fXJP.js.map → useEditorRoot-CshefZLP.js.map} +1 -1
  161. package/dist/cdn/chunks/{useI18n-DTZ9sIcv.js → useI18n-CyO_Nmca.js} +2 -2
  162. package/dist/cdn/chunks/{useI18n-DTZ9sIcv.js.map → useI18n-CyO_Nmca.js.map} +1 -1
  163. package/dist/cdn/chunks/{useLogicTag-E2V0Xdcb.js → useLogicTag-DF7-l66G.js} +4 -4
  164. package/dist/cdn/chunks/{useLogicTag-E2V0Xdcb.js.map → useLogicTag-DF7-l66G.js.map} +1 -1
  165. package/dist/cdn/chunks/{useMergeTag-BE8oDoha.js → useMergeTag-DbIHw4NG.js} +4 -4
  166. package/dist/cdn/chunks/{useMergeTag-BE8oDoha.js.map → useMergeTag-DbIHw4NG.js.map} +1 -1
  167. package/dist/cdn/chunks/{usePopoverPosition-gB9q-ql7.js → usePopoverPosition-BJRvAb-h.js} +2 -2
  168. package/dist/cdn/chunks/{usePopoverPosition-gB9q-ql7.js.map → usePopoverPosition-BJRvAb-h.js.map} +1 -1
  169. package/dist/cdn/chunks/{useScrollToBlock-CtTXwmiU.js → useScrollToBlock-DgHZJvID.js} +2 -2
  170. package/dist/cdn/chunks/{useScrollToBlock-CtTXwmiU.js.map → useScrollToBlock-DgHZJvID.js.map} +1 -1
  171. package/dist/cdn/editor.css +1 -1
  172. package/dist/cdn/editor.js +484 -460
  173. package/dist/cdn/editor.js.map +1 -1
  174. package/dist/{cloud-C9xWZXhg.js → cloud-DsqqUfzh.js} +1 -1
  175. package/dist/{createCloudRuntime-BGd5--Bq.js → createCloudRuntime-iLflkYzP.js} +47 -38
  176. package/dist/{de-CY6SlqBx.js → de-D4dweQw8.js} +1 -0
  177. package/dist/{dist-tGkjkX-v.js → dist-DbUZvK04.js} +277 -176
  178. package/dist/{editor-modal-Czq1I8oC.js → editor-modal-qzmEVcIk.js} +3 -2
  179. package/dist/en-1tgLzB8q.js +2 -0
  180. package/dist/{cdn/chunks/en-8V-2kDcp.js → en-VE7R7NyL.js} +1 -2
  181. package/dist/{cdn/chunks/es-Cmn1rT3l.js → es-B9OhP8H3.js} +1 -2
  182. package/dist/{extensions-DRN-elXT.js → extensions-DDhjuVKy.js} +4 -4
  183. package/dist/{fr-2yDa4zXM.js → fr-wrXhIi00.js} +1 -0
  184. package/dist/index.d.ts +65 -0
  185. package/dist/ja-DhlWUfke.js +92 -0
  186. package/dist/ja-fKnVWXHC.js +623 -0
  187. package/dist/keys-CDqfZIRt.js +10 -0
  188. package/dist/{cdn/chunks/nl-Bzk2zRI8.js → nl-DeFatKJe.js} +1 -2
  189. package/dist/preRenderCustomBlocks-BBSqQgke.js +19 -0
  190. package/dist/{pt-BR-DqtSCTUi.js → pt-BR-Bh1J8ey6.js} +1 -0
  191. package/dist/{socialIcons-DkGcpEwC.js → socialIcons-O7PZCW2P.js} +245 -239
  192. package/dist/style.css +1 -1
  193. package/dist/templatical-editor.js +520 -496
  194. package/dist/{useCloudI18n-D1iedlP3.js → useCloudI18n-DpEsiLeR.js} +1 -1
  195. package/dist/{useEditorCore-BUVbQgwb.js → useEditorCore-dcdHB_7H.js} +826 -804
  196. package/dist/{useEditorRoot-BOxn5EfP.js → useEditorRoot-CkB_5d0h.js} +1 -1
  197. package/dist/{useI18n-Ds_-druD.js → useI18n-B_CdcBwG.js} +1 -1
  198. package/dist/{useLogicTag-DoHfc08B.js → useLogicTag-D9pvgxQR.js} +3 -3
  199. package/dist/{useMergeTag-DXyum3kG.js → useMergeTag-BaVFPdlq.js} +5 -5
  200. package/dist/{usePopoverPosition-Du-Ah8E9.js → usePopoverPosition-DH7z3Ghm.js} +1 -1
  201. package/dist/{useScrollToBlock-DXQYPCnJ.js → useScrollToBlock-Dj4v3rxr.js} +1 -1
  202. package/package.json +8 -8
  203. package/dist/BlockPreviewCanvas-BMC16_QU.js +0 -131
  204. package/dist/cdn/chunks/BlockPreviewCanvas-DeS7Sa--.js +0 -133
  205. package/dist/cdn/chunks/BlockPreviewCanvas-DeS7Sa--.js.map +0 -1
  206. package/dist/cdn/chunks/TestEmailModal-DId9Og-N.js.map +0 -1
  207. package/dist/cdn/chunks/ca-Bqeygp1_.js.map +0 -1
  208. package/dist/cdn/chunks/createCloudRuntime-D5bXzcTe.js.map +0 -1
  209. package/dist/cdn/chunks/de-CY6SlqBx.js.map +0 -1
  210. package/dist/cdn/chunks/emailFrameWidth-BmFCN2dp.js +0 -8
  211. package/dist/cdn/chunks/emailFrameWidth-BmFCN2dp.js.map +0 -1
  212. package/dist/cdn/chunks/en-8V-2kDcp.js.map +0 -1
  213. package/dist/cdn/chunks/en-BcQ9ovQu.js +0 -2
  214. package/dist/cdn/chunks/es-Cmn1rT3l.js.map +0 -1
  215. package/dist/cdn/chunks/fr-2yDa4zXM.js.map +0 -1
  216. package/dist/cdn/chunks/keys-dJbD1QPs.js +0 -12
  217. package/dist/cdn/chunks/keys-dJbD1QPs.js.map +0 -1
  218. package/dist/cdn/chunks/nl-Bzk2zRI8.js.map +0 -1
  219. package/dist/cdn/chunks/preRenderCustomBlocks-Bdpiiw4A.js +0 -23
  220. package/dist/cdn/chunks/preRenderCustomBlocks-Bdpiiw4A.js.map +0 -1
  221. package/dist/cdn/chunks/pt-BR-DqtSCTUi.js.map +0 -1
  222. package/dist/cdn/chunks/socialIcons-9VrG8X3m.js.map +0 -1
  223. package/dist/cdn/chunks/src-CaNsA_WX.js.map +0 -1
  224. package/dist/cdn/chunks/src-CqYYKcCI.js.map +0 -1
  225. package/dist/cdn/chunks/src-Dwgq7hf4.js.map +0 -1
  226. package/dist/cdn/chunks/useEditorCore-CXYI14ux.js.map +0 -1
  227. package/dist/emailFrameWidth-BmFCN2dp.js +0 -6
  228. package/dist/en-DQqmtndQ.js +0 -2
  229. package/dist/keys-BdoSgsz9.js +0 -10
  230. 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,59 @@ 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/ja.ts": () => import("./ja-fKnVWXHC.js"),
606
+ "./locales/nl.ts": () => import("./nl-DeFatKJe.js"),
607
+ "./locales/pt-BR.ts": () => import("./pt-BR-Bh1J8ey6.js")
608
+ }), Un = /* #__PURE__ */ Object.assign({
608
609
  "./locales/cloud/de.ts": () => import("./de-mMY5yQJu.js"),
609
610
  "./locales/cloud/en.ts": () => import("./en-ChVeGQBY.js"),
610
611
  "./locales/cloud/pt-BR.ts": () => import("./pt-BR-CoCwRUi0.js")
611
612
  });
612
- function Bn(e) {
613
+ function Wn(e) {
613
614
  return Object.keys(e).map((e) => e.match(/\/([^/]+)\.ts$/)?.[1]).filter((e) => !!e);
614
615
  }
615
- var Vn = Bn(Rn), Hn = Bn(zn);
616
- function Un(e) {
616
+ var Gn = Wn(Hn), Kn = Wn(Un);
617
+ function qn(e) {
617
618
  return e.trim().replace(/_/g, "-").toLowerCase();
618
619
  }
619
- function Wn(e, t) {
620
- let n = Un(e);
621
- return t.find((e) => Un(e) === n);
620
+ function Jn(e, t) {
621
+ let n = qn(e);
622
+ return t.find((e) => qn(e) === n);
622
623
  }
623
- function Gn(e) {
624
- return Un(e).split("-")[0];
624
+ function Yn(e) {
625
+ return qn(e).split("-")[0];
625
626
  }
626
- function Kn(e, t) {
627
- return Wn(e, t) ?? Wn(Gn(e), t);
627
+ function Xn(e, t) {
628
+ return Jn(e, t) ?? Jn(Yn(e), t);
628
629
  }
629
- function qn(e, t) {
630
- return Kn(e, t) ?? "en";
630
+ function Zn(e, t) {
631
+ return Xn(e, t) ?? "en";
631
632
  }
632
- async function Jn(e) {
633
- let t = Rn[`./locales/${qn(e, Vn)}.ts`];
633
+ async function Qn(e) {
634
+ let t = Hn[`./locales/${Zn(e, Gn)}.ts`];
634
635
  return (await t()).default;
635
636
  }
636
- async function Yn(e) {
637
- let t = zn[`./locales/cloud/${qn(e, Hn)}.ts`];
637
+ async function $n(e) {
638
+ let t = Un[`./locales/cloud/${Zn(e, Kn)}.ts`];
638
639
  return (await t()).default;
639
640
  }
640
- function Xn(e) {
641
- return Kn(e, Vn) !== void 0;
641
+ function er(e) {
642
+ return Xn(e, Gn) !== void 0;
642
643
  }
643
- function Zn(e) {
644
- return Kn(e, Hn) !== void 0;
644
+ function tr(e) {
645
+ return Xn(e, Kn) !== void 0;
645
646
  }
646
- function Qn() {
647
- return [...Vn];
647
+ function nr() {
648
+ return [...Gn];
648
649
  }
649
- function $n() {
650
- return [...Hn];
650
+ function rr() {
651
+ return [...Kn];
651
652
  }
652
653
  //#endregion
653
654
  //#region src/i18n/contentDefaults.ts
@@ -707,17 +708,25 @@ var $ = {
707
708
  minutes: "Minuts",
708
709
  seconds: "Segons",
709
710
  expired: "Aquesta oferta ha caducat"
710
- }
711
- }, er = new Map(Object.keys($).map((e) => [e.toLowerCase(), e]));
712
- function tr(e) {
711
+ },
712
+ ja: {
713
+ video: "動画",
714
+ days: "日",
715
+ hours: "時間",
716
+ minutes: "分",
717
+ seconds: "秒",
718
+ expired: "このオファーは終了しました"
719
+ }
720
+ }, ir = new Map(Object.keys($).map((e) => [e.toLowerCase(), e]));
721
+ function ar(e) {
713
722
  if (!e) return $.en;
714
- let t = e.trim().replace(/_/g, "-").toLowerCase(), n = er.get(t);
723
+ let t = e.trim().replace(/_/g, "-").toLowerCase(), n = ir.get(t);
715
724
  if (n) return $[n];
716
- let r = er.get(Gn(t));
725
+ let r = ir.get(Yn(t));
717
726
  return r ? $[r] : $.en;
718
727
  }
719
- function nr(e) {
720
- let t = tr(e);
728
+ function or(e) {
729
+ let t = ar(e);
721
730
  return {
722
731
  video: { alt: t.video },
723
732
  countdown: {
@@ -731,9 +740,9 @@ function nr(e) {
731
740
  }
732
741
  //#endregion
733
742
  //#region src/utils/collectColorFieldIssues.ts
734
- function rr(e, t) {
743
+ function sr(e, t) {
735
744
  let n = [], r = (r, i) => {
736
- let a = je(r, t), o = `custom block "${e.type}" field "${i}"`, s = (t) => `${e.type}:${i}:${t}`;
745
+ let a = Fe(r, t), o = `custom block "${e.type}" field "${i}"`, s = (t) => `${e.type}:${i}:${t}`;
737
746
  if (a.invalidPresets.length > 0 && n.push({
738
747
  id: s("invalid-presets"),
739
748
  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 +753,8 @@ function rr(e, t) {
744
753
  id: s("allow-custom-ignored"),
745
754
  message: `${o}: allowCustom: true is ignored because colors.allowCustom is false — a field can narrow the editor-wide palette, never unlock it.`
746
755
  }), !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({
756
+ let e = r.default ?? "", t = new Set(a.presets.map((e) => X(e)));
757
+ e !== "" && !t.has(X(e)) && n.push({
749
758
  id: s("off-palette-default"),
750
759
  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
760
  });
@@ -757,7 +766,7 @@ function rr(e, t) {
757
766
  }
758
767
  //#endregion
759
768
  //#region src/utils/keyboardShortcuts.ts
760
- function ir(e) {
769
+ function cr(e) {
761
770
  for (let t of e.composedPath()) {
762
771
  if (!(t instanceof HTMLElement)) continue;
763
772
  if (t.isContentEditable) return !0;
@@ -766,18 +775,18 @@ function ir(e) {
766
775
  }
767
776
  return !1;
768
777
  }
769
- function ar(e, t) {
778
+ function lr(e, t) {
770
779
  let n = e.metaKey || e.ctrlKey;
771
780
  if (n && e.key.toLowerCase() === "s") {
772
781
  e.preventDefault(), t.onSave?.();
773
782
  return;
774
783
  }
775
784
  if (n && e.key.toLowerCase() === "z") {
776
- if (ir(e)) return;
785
+ if (cr(e)) return;
777
786
  e.preventDefault(), e.shiftKey ? t.history.redo() : (t.onBeforeUndo?.(), t.history.undo());
778
787
  return;
779
788
  }
780
- if (t.isPicking?.() && !ir(e)) {
789
+ if (t.isPicking?.() && !cr(e)) {
781
790
  if (e.key === "Escape") {
782
791
  e.preventDefault(), t.onCancelPick?.();
783
792
  return;
@@ -795,11 +804,11 @@ function ar(e, t) {
795
804
  t.selectBlock(null);
796
805
  return;
797
806
  }
798
- (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !ir(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
807
+ (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !cr(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
799
808
  }
800
809
  //#endregion
801
810
  //#region src/utils/mergeTagLabelSegments.ts
802
- function or(e, t, n, r = !1) {
811
+ function ur(e, t, n, r = !1) {
803
812
  if (!e) return [];
804
813
  let i = RegExp(`(${n.value.source}|${n.logic.source})`, "g"), a = [], o = 0, s;
805
814
  for (; (s = i.exec(e)) !== null;) {
@@ -808,18 +817,18 @@ function or(e, t, n, r = !1) {
808
817
  value: e.slice(o, s.index)
809
818
  });
810
819
  let i = s[0];
811
- if (he(i, n)) {
812
- let e = r ? Oe(i, t) : void 0;
820
+ if (_e(i, n)) {
821
+ let e = r ? je(i, t) : void 0;
813
822
  a.push(e === void 0 ? {
814
823
  type: "tag",
815
- value: we(i, t)
824
+ value: Ee(i, t)
816
825
  } : {
817
826
  type: "text",
818
827
  value: e
819
828
  });
820
- } else me(i, n) ? a.push({
829
+ } else ge(i, n) ? a.push({
821
830
  type: "tag",
822
- value: fe(i, n)
831
+ value: me(i, n)
823
832
  }) : a.push({
824
833
  type: "text",
825
834
  value: i
@@ -833,20 +842,20 @@ function or(e, t, n, r = !1) {
833
842
  }
834
843
  //#endregion
835
844
  //#region src/components/MergeTagPreviewText.vue
836
- var sr = d({
845
+ var dr = d({
837
846
  name: "MergeTagPreviewText",
838
847
  props: { text: {
839
848
  type: String,
840
849
  required: !0
841
850
  } },
842
851
  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));
852
+ 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
853
  return () => a.value.map((e, t) => e.type === "tag" ? I("span", {
845
854
  key: t,
846
855
  class: "tpl-merge-tag-label"
847
856
  }, e.value) : e.value);
848
857
  }
849
- }), cr = ["href"], lr = /* @__PURE__ */ d({
858
+ }), fr = ["href"], pr = /* @__PURE__ */ d({
850
859
  __name: "ButtonBlock",
851
860
  props: {
852
861
  block: {},
@@ -872,13 +881,13 @@ var sr = d({
872
881
  style: D(n.value),
873
882
  class: "tpl:cursor-default",
874
883
  onClick: i[0] ||= E(() => {}, ["prevent"])
875
- }, [g(sr, { text: e.block.text }, null, 8, ["text"])], 12, cr)], 4));
884
+ }, [g(dr, { text: e.block.text }, null, 8, ["text"])], 12, fr)], 4));
876
885
  }
877
- }), ur = ["innerHTML"], dr = [
886
+ }), mr = ["innerHTML"], hr = [
878
887
  "src",
879
888
  "width",
880
889
  "height"
881
- ], fr = /* @__PURE__ */ d({
890
+ ], gr = /* @__PURE__ */ d({
882
891
  __name: "CustomBlockIcon",
883
892
  props: {
884
893
  icon: {},
@@ -894,24 +903,24 @@ var sr = d({
894
903
  height: `${n.value}px`
895
904
  }),
896
905
  innerHTML: e.icon
897
- }, null, 12, ur)) : i.value ? (s(), x("img", {
906
+ }, null, 12, mr)) : i.value ? (s(), x("img", {
898
907
  key: 1,
899
908
  src: e.icon,
900
909
  width: n.value,
901
910
  height: n.value,
902
911
  class: "tpl:inline-block",
903
912
  alt: ""
904
- }, null, 8, dr)) : (s(), O(h(on), {
913
+ }, null, 8, hr)) : (s(), O(h(dn), {
905
914
  key: 2,
906
915
  size: n.value,
907
916
  "stroke-width": 1.5
908
917
  }, null, 8, ["size"]));
909
918
  }
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;
919
+ }), _r = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
920
+ function vr(e, n) {
921
+ let r = mn(), i = null, a = null, o = null;
913
922
  function s() {
914
- return e.value ? Array.from(e.value.querySelectorAll(pr)).filter((e) => e.offsetParent !== null) : [];
923
+ return e.value ? Array.from(e.value.querySelectorAll(_r)).filter((e) => e.offsetParent !== null) : [];
915
924
  }
916
925
  function c(e) {
917
926
  if (e.key !== "Tab") return;
@@ -926,7 +935,7 @@ function mr(e, n) {
926
935
  o = null;
927
936
  let t = s();
928
937
  t.length > 0 && (e.value?.querySelector("[autofocus], input:not([disabled])") ?? t[0]).focus();
929
- }), a = G(e, "keydown", c);
938
+ }), a = U(e, "keydown", c);
930
939
  }
931
940
  function u(e = {}) {
932
941
  let t = e.restoreFocus !== !1;
@@ -941,8 +950,8 @@ function mr(e, n) {
941
950
  }
942
951
  //#endregion
943
952
  //#region src/composables/useEmoji.ts
944
- function hr() {
945
- let [e, n] = We(!1), r = y([]), i = !1;
953
+ function yr() {
954
+ let [e, n] = Je(!1), r = y([]), i = !1;
946
955
  m(() => {
947
956
  i = !0;
948
957
  }), t(e, async (e) => {
@@ -967,7 +976,7 @@ function hr() {
967
976
  }
968
977
  //#endregion
969
978
  //#region src/composables/useFonts.ts
970
- var gr = [
979
+ var br = [
971
980
  {
972
981
  value: "Arial",
973
982
  label: "Arial"
@@ -996,7 +1005,7 @@ var gr = [
996
1005
  value: "Courier New",
997
1006
  label: "Courier New"
998
1007
  }
999
- ], _r = {
1008
+ ], xr = {
1000
1009
  arial: "Arial, sans-serif",
1001
1010
  helvetica: "Helvetica, sans-serif",
1002
1011
  georgia: "Georgia, serif",
@@ -1004,23 +1013,23 @@ var gr = [
1004
1013
  verdana: "Verdana, sans-serif",
1005
1014
  "trebuchet ms": "'Trebuchet MS', sans-serif",
1006
1015
  "courier new": "'Courier New', monospace"
1007
- }, vr = "Arial, sans-serif";
1008
- function yr(e) {
1009
- if (e === void 0 || e === !0) return [...gr];
1016
+ }, Sr = "Arial, sans-serif";
1017
+ function Cr(e) {
1018
+ if (e === void 0 || e === !0) return [...br];
1010
1019
  if (e === !1) return [];
1011
1020
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
1012
1021
  for (let i of e) {
1013
- let e = i.toLowerCase(), a = gr.find((t) => t.value.toLowerCase() === e);
1022
+ let e = i.toLowerCase(), a = br.find((t) => t.value.toLowerCase() === e);
1014
1023
  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(", ")}.`));
1024
+ 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
1025
  continue;
1017
1026
  }
1018
1027
  n.has(a.value) || (n.add(a.value), t.push(a));
1019
1028
  }
1020
1029
  return t;
1021
1030
  }
1022
- function br(e) {
1023
- let t = l(e?.customFonts ?? []), n = l(!1), r = yr(e?.builtIns), i = b(() => e?.defaultFallback ?? vr), a = b(() => {
1031
+ function wr(e) {
1032
+ let t = l(e?.customFonts ?? []), n = l(!1), r = Cr(e?.builtIns), i = b(() => e?.defaultFallback ?? Sr), a = b(() => {
1024
1033
  let e = [...r], n = t.value.map((e) => ({
1025
1034
  value: e.name,
1026
1035
  label: e.name,
@@ -1031,20 +1040,20 @@ function br(e) {
1031
1040
  function s(e) {
1032
1041
  return a.value.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
1033
1042
  }
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.`);
1043
+ let c = e?.defaultFont ?? Sr.split(",")[0].trim();
1044
+ 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
1045
  function u() {
1037
1046
  if (e?.defaultFont && s(e.defaultFont)) {
1038
1047
  let t = a.value.find((t) => t.label.toLowerCase() === e.defaultFont.toLowerCase() || t.value.toLowerCase().startsWith(e.defaultFont.toLowerCase()));
1039
1048
  if (t) return t.value;
1040
1049
  }
1041
- return vr;
1050
+ return Sr;
1042
1051
  }
1043
1052
  let d = b(() => u());
1044
1053
  function f(e) {
1045
1054
  if (!e) return i.value;
1046
1055
  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}`);
1056
+ return n ? `'${n.name}', ${n.fallback ?? i.value}` : xr[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
1048
1057
  }
1049
1058
  let p = [], h = !1;
1050
1059
  async function g() {
@@ -1060,7 +1069,7 @@ function br(e) {
1060
1069
  t.onload = () => n(), t.onerror = () => r(/* @__PURE__ */ Error(`Failed to load font: ${e.name}`)), document.head.appendChild(t);
1061
1070
  });
1062
1071
  } catch (t) {
1063
- Z.warn(`Failed to load custom font "${e.name}":`, t);
1072
+ Y.warn(`Failed to load custom font "${e.name}":`, t);
1064
1073
  }
1065
1074
  });
1066
1075
  await Promise.allSettled(e), !h && (n.value = !0);
@@ -1085,12 +1094,12 @@ function br(e) {
1085
1094
  }
1086
1095
  //#endregion
1087
1096
  //#region src/utils/mergeTagNodeSpec.ts
1088
- function xr(e, t, n) {
1089
- return me(e, n) ? {
1097
+ function Tr(e, t, n) {
1098
+ return ge(e, n) ? {
1090
1099
  type: "logicMergeTagNode",
1091
1100
  attrs: {
1092
1101
  value: e,
1093
- keyword: fe(e, n)
1102
+ keyword: me(e, n)
1094
1103
  }
1095
1104
  } : {
1096
1105
  type: "mergeTagNode",
@@ -1102,15 +1111,15 @@ function xr(e, t, n) {
1102
1111
  }
1103
1112
  //#endregion
1104
1113
  //#region src/utils/insertLogicTag.ts
1105
- function Sr(e) {
1114
+ function Er(e) {
1106
1115
  return "before" in e && "after" in e;
1107
1116
  }
1108
- function Cr(e, t, n) {
1109
- if (!Sr(t)) {
1110
- e.chain().focus().insertContent(xr(t.value, t.label, n)).run();
1117
+ function Dr(e, t, n) {
1118
+ if (!Er(t)) {
1119
+ e.chain().focus().insertContent(Tr(t.value, t.label, n)).run();
1111
1120
  return;
1112
1121
  }
1113
- let r = xr(t.before, t.label, n), i = xr(t.after, t.label, n), { from: a, to: o } = e.state.selection;
1122
+ let r = Tr(t.before, t.label, n), i = Tr(t.after, t.label, n), { from: a, to: o } = e.state.selection;
1114
1123
  if (a !== o) {
1115
1124
  e.chain().focus().insertContentAt(o, i).insertContentAt(a, r).run();
1116
1125
  return;
@@ -1119,20 +1128,20 @@ function Cr(e, t, n) {
1119
1128
  }
1120
1129
  //#endregion
1121
1130
  //#region src/utils/linkColorExtension.ts
1122
- function wr(e) {
1131
+ function Or(e) {
1123
1132
  if (!e) return null;
1124
1133
  let t = e.trim();
1125
1134
  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
1135
  }
1127
- function Tr(e) {
1136
+ function kr(e) {
1128
1137
  return e.extend({ addAttributes() {
1129
1138
  return {
1130
1139
  ...this.parent?.(),
1131
1140
  color: {
1132
1141
  default: null,
1133
- parseHTML: (e) => wr(It(e.style.color)),
1142
+ parseHTML: (e) => Or(Ht(e.style.color)),
1134
1143
  renderHTML: (e) => {
1135
- let t = wr(e.color);
1144
+ let t = Or(e.color);
1136
1145
  return t ? { style: `color: ${t}` } : {};
1137
1146
  }
1138
1147
  }
@@ -1141,9 +1150,9 @@ function Tr(e) {
1141
1150
  }
1142
1151
  //#endregion
1143
1152
  //#region src/composables/useRichTextLinkDialog.ts
1144
- function Er(e, t = Ee.liquid) {
1153
+ function Ar(e, t = Ae.liquid) {
1145
1154
  let n = l(!1), r = l(""), i = l(""), a = l(null);
1146
- mr(a, n);
1155
+ vr(a, n);
1147
1156
  function o() {
1148
1157
  let t = e.value?.getAttributes("link") ?? {};
1149
1158
  r.value = t.href || "", i.value = t.color || "", n.value = !0;
@@ -1152,7 +1161,7 @@ function Er(e, t = Ee.liquid) {
1152
1161
  if (r.value) {
1153
1162
  let t = d(r.value);
1154
1163
  if (t !== null) {
1155
- let n = wr(i.value), r = e.value?.chain().focus().extendMarkRange("link").setLink({ href: t }).updateAttributes("link", { color: n });
1164
+ let n = Or(i.value), r = e.value?.chain().focus().extendMarkRange("link").setLink({ href: t }).updateAttributes("link", { color: n });
1156
1165
  n && typeof e.value?.commands.unsetColor == "function" && r?.unsetColor(), r?.run();
1157
1166
  }
1158
1167
  }
@@ -1202,13 +1211,13 @@ function Er(e, t = Ee.liquid) {
1202
1211
  }
1203
1212
  //#endregion
1204
1213
  //#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" });
1214
+ function jr(r) {
1215
+ 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
1216
  t(b, (e) => {
1208
1217
  let t = v.value?.view.dom;
1209
1218
  t && t.setAttribute("dir", e);
1210
1219
  });
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;
1220
+ 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
1221
  async function L() {
1213
1222
  F.value = null, P.value = !0;
1214
1223
  try {
@@ -1239,7 +1248,7 @@ function Dr(r) {
1239
1248
  v.value = s, P.value = !1, j();
1240
1249
  } catch (e) {
1241
1250
  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;
1251
+ 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
1252
  }
1244
1253
  }
1245
1254
  function R() {
@@ -1257,7 +1266,7 @@ function Dr(r) {
1257
1266
  let i = t.some((e) => e instanceof HTMLElement && e.classList.contains("tpl-color-popover"));
1258
1267
  n.closest(".tpl-text-editor-wrapper") || n.closest(".tpl-text-toolbar") || n.closest(".tpl-link-dialog") || i || r.onDone();
1259
1268
  }
1260
- G(document, "mousedown", B), e(() => {
1269
+ U(document, "mousedown", B), e(() => {
1261
1270
  I = !0, z(), M(), v.value?.destroy();
1262
1271
  });
1263
1272
  async function V() {
@@ -1267,9 +1276,9 @@ function Dr(r) {
1267
1276
  value: e.value
1268
1277
  }).run() : v.value?.commands.focus());
1269
1278
  }
1270
- async function H() {
1279
+ async function te() {
1271
1280
  let e = await m();
1272
- I || (e && v.value ? Cr(v.value, e, u) : v.value?.commands.focus());
1281
+ I || (e && v.value ? Dr(v.value, e, u) : v.value?.commands.focus());
1273
1282
  }
1274
1283
  return {
1275
1284
  editor: v,
@@ -1293,14 +1302,14 @@ function Dr(r) {
1293
1302
  closeLinkDialog: O,
1294
1303
  handleLinkKeydown: k,
1295
1304
  handleAddMergeTag: V,
1296
- handleAddLogicTag: H
1305
+ handleAddLogicTag: te
1297
1306
  };
1298
1307
  }
1299
1308
  //#endregion
1300
1309
  //#region src/composables/useSmallScreenNotice.ts
1301
- var Or = "(max-width: 767px)";
1302
- function kr(e) {
1303
- let t = Ke(Or);
1310
+ var Mr = "(max-width: 767px)";
1311
+ function Nr(e) {
1312
+ let t = Xe(Mr);
1304
1313
  return {
1305
1314
  isSmallScreen: t,
1306
1315
  showNotice: b(() => (j(e) ?? !0) && t.value)
@@ -1308,20 +1317,20 @@ function kr(e) {
1308
1317
  }
1309
1318
  //#endregion
1310
1319
  //#region src/components/blocks/CustomBlock.vue?vue&type=script&setup=true&lang.ts
1311
- var Ar = { class: "tpl:w-full" }, jr = {
1320
+ var Pr = { class: "tpl:w-full" }, Fr = {
1312
1321
  key: 0,
1313
1322
  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 = {
1323
+ }, Ir = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Lr = {
1315
1324
  key: 1,
1316
1325
  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 = {
1326
+ }, Rr = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, zr = {
1318
1327
  key: 2,
1319
1328
  class: "tpl:relative"
1320
- }, Ir = ["innerHTML"], Lr = {
1329
+ }, Br = ["innerHTML"], Vr = {
1321
1330
  key: 0,
1322
1331
  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
1332
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)" }
1324
- }, Rr = /* @__PURE__ */ d({
1333
+ }, Hr = /* @__PURE__ */ d({
1325
1334
  __name: "CustomBlock",
1326
1335
  props: {
1327
1336
  block: {},
@@ -1329,7 +1338,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1329
1338
  },
1330
1339
  emits: ["fetchData"],
1331
1340
  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({
1341
+ 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
1342
  definition: f,
1334
1343
  block: m,
1335
1344
  onUpdate: (e, t) => {
@@ -1338,10 +1347,10 @@ var Ar = { class: "tpl:w-full" }, jr = {
1338
1347
  dataSourceFetched: t
1339
1348
  });
1340
1349
  }
1341
- }), T = n(K, q), D = n(J, null), A = b(() => {
1350
+ }), T = n(G, W), D = n(K, null), A = b(() => {
1342
1351
  if (!D?.value) return i.block;
1343
1352
  let e = {};
1344
- for (let [t, n] of Object.entries(i.block.fieldValues)) e[t] = typeof n == "string" ? de(n, T.value) : n;
1353
+ for (let [t, n] of Object.entries(i.block.fieldValues)) e[t] = typeof n == "string" ? pe(n, T.value) : n;
1345
1354
  return {
1346
1355
  ...i.block,
1347
1356
  fieldValues: e
@@ -1358,17 +1367,17 @@ var Ar = { class: "tpl:w-full" }, jr = {
1358
1367
  }
1359
1368
  }
1360
1369
  }
1361
- let M = Ue(j, 150);
1370
+ let M = qe(j, 150);
1362
1371
  return w(() => {
1363
1372
  j();
1364
1373
  }), t(() => i.block.fieldValues, () => {
1365
1374
  M();
1366
1375
  }, { deep: !0 }), t(() => D?.value, () => {
1367
1376
  M();
1368
- }), (e, t) => (s(), x("div", Ar, [p.value ? d.value ? (s(), x("div", Nr, [g(h(nn), {
1377
+ }), (e, t) => (s(), x("div", Pr, [p.value ? d.value ? (s(), x("div", Lr, [g(h(cn), {
1369
1378
  size: 24,
1370
1379
  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, {
1380
+ }), 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
1381
  key: 1,
1373
1382
  class: "tpl:w-48"
1374
1383
  })) : (s(), x("button", {
@@ -1376,16 +1385,16 @@ var Ar = { class: "tpl:w-full" }, jr = {
1376
1385
  type: "button",
1377
1386
  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
1387
  onClick: t[0] ||= E((...e) => h(v) && h(v)(...e), ["stop"])
1379
- }, [f.value?.icon ? (s(), O(fr, {
1388
+ }, [f.value?.icon ? (s(), O(gr, {
1380
1389
  key: 0,
1381
1390
  icon: f.value.icon,
1382
1391
  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), {
1392
+ }, 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
1393
  size: 24,
1385
1394
  class: "tpl:text-[var(--tpl-warning)]"
1386
- }), k("span", Mr, F(h(o).customBlocks.definitionNotFound), 1)]))]));
1395
+ }), k("span", Ir, F(h(o).customBlocks.definitionNotFound), 1)]))]));
1387
1396
  }
1388
- }), zr = { class: "tpl:w-full" }, Br = /* @__PURE__ */ d({
1397
+ }), Ur = { class: "tpl:w-full" }, Wr = /* @__PURE__ */ d({
1389
1398
  __name: "DividerBlock",
1390
1399
  props: {
1391
1400
  block: {},
@@ -1397,28 +1406,28 @@ var Ar = { class: "tpl:w-full" }, jr = {
1397
1406
  width: t.block.width === "full" ? "100%" : `${t.block.width}px`,
1398
1407
  margin: t.block.width === "full" ? "0" : "0 auto"
1399
1408
  }));
1400
- return (e, t) => (s(), x("div", zr, [k("hr", {
1409
+ return (e, t) => (s(), x("div", Ur, [k("hr", {
1401
1410
  class: "tpl:m-0 tpl:border-none",
1402
1411
  style: D(n.value)
1403
1412
  }, null, 4)]));
1404
1413
  }
1405
- }), Vr = { class: "tpl:w-full" }, Hr = ["srcdoc", "title"], Ur = {
1414
+ }), Gr = { class: "tpl:w-full" }, Kr = ["srcdoc", "title"], qr = {
1406
1415
  key: 1,
1407
1416
  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 = {
1417
+ }, Jr = {
1409
1418
  key: 0,
1410
1419
  class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]"
1411
- }, Gr = {
1420
+ }, Yr = {
1412
1421
  key: 1,
1413
1422
  class: "tpl:text-sm tpl:text-[var(--tpl-text-dim)]"
1414
- }, Kr = /* @__PURE__ */ d({
1423
+ }, Xr = /* @__PURE__ */ d({
1415
1424
  __name: "HtmlBlock",
1416
1425
  props: {
1417
1426
  block: {},
1418
1427
  viewport: {}
1419
1428
  },
1420
1429
  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;
1430
+ 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
1431
  function y() {
1423
1432
  let e = m.value?.contentDocument;
1424
1433
  e && (_.value = Math.max(e.body?.scrollHeight ?? 0, e.documentElement?.scrollHeight ?? 0));
@@ -1432,7 +1441,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1432
1441
  e || (v?.disconnect(), v = null);
1433
1442
  }), e(() => {
1434
1443
  v?.disconnect(), v = null;
1435
- }), (e, t) => (s(), x("div", Vr, [u.value ? (s(), x("iframe", {
1444
+ }), (e, t) => (s(), x("div", Gr, [u.value ? (s(), x("iframe", {
1436
1445
  key: 0,
1437
1446
  ref_key: "iframeRef",
1438
1447
  ref: m,
@@ -1442,22 +1451,22 @@ var Ar = { class: "tpl:w-full" }, jr = {
1442
1451
  class: "tpl:block tpl:w-full tpl:border-0",
1443
1452
  style: D({ height: `${_.value}px` }),
1444
1453
  onLoad: S
1445
- }, null, 44, Hr)) : (s(), x("div", Ur, [g(h(Kt), {
1454
+ }, null, 44, Kr)) : (s(), x("div", qr, [g(h(Zt), {
1446
1455
  size: 24,
1447
1456
  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))]))]));
1457
+ }), c.value ? (s(), x("span", Jr, F(h(a).html.preview), 1)) : (s(), x("span", Yr, F(h(a).html.empty), 1))]))]));
1449
1458
  }
1450
- }), qr = ["data-drop-enabled"], Jr = {
1459
+ }), Zr = ["data-drop-enabled"], Qr = {
1451
1460
  key: 0,
1452
1461
  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
1462
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 85%, transparent)" }
1454
- }, Yr = ["href"], Xr = ["src", "alt"], Zr = ["src", "alt"], Qr = {
1463
+ }, $r = ["href"], ei = ["src", "alt"], ti = ["src", "alt"], ni = {
1455
1464
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
1456
1465
  style: { opacity: "0.7" }
1457
- }, $r = ["href"], ei = ["src", "alt"], ti = ["src", "alt"], ni = {
1466
+ }, ri = ["href"], ii = ["src", "alt"], ai = ["src", "alt"], oi = {
1458
1467
  key: 4,
1459
1468
  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({
1469
+ }, si = ["aria-label"], ci = { key: 1 }, li = /* @__PURE__ */ d({
1461
1470
  __name: "ImageBlock",
1462
1471
  props: {
1463
1472
  block: {},
@@ -1465,7 +1474,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1465
1474
  },
1466
1475
  emits: ["update"],
1467
1476
  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();
1477
+ 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
1478
  async function p() {
1470
1479
  let e = await c?.({ accept: ["images"] });
1471
1480
  if (f.alive && e) {
@@ -1492,7 +1501,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1492
1501
  }
1493
1502
  }
1494
1503
  }
1495
- let { isOver: C } = Fe({
1504
+ let { isOver: C } = ze({
1496
1505
  target: m,
1497
1506
  enabled: v,
1498
1507
  onFiles: y
@@ -1507,7 +1516,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1507
1516
  marginLeft: e === "center" || e === "right" ? "auto" : void 0,
1508
1517
  marginRight: e === "center" ? "auto" : void 0
1509
1518
  };
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);
1519
+ }), 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
1520
  return (t, n) => (s(), x("div", {
1512
1521
  ref_key: "dropZoneRef",
1513
1522
  ref: m,
@@ -1515,11 +1524,11 @@ var Ar = { class: "tpl:w-full" }, jr = {
1515
1524
  "data-drop-enabled": v.value,
1516
1525
  class: "tpl:relative tpl:w-full",
1517
1526
  style: D(w.value)
1518
- }, [v.value && (h(C) || _.value) ? (s(), x("div", Jr, [_.value ? (s(), x(P, { key: 0 }, [g(h(Qt), {
1527
+ }, [v.value && (h(C) || _.value) ? (s(), x("div", Qr, [_.value ? (s(), x(P, { key: 0 }, [g(h(rn), {
1519
1528
  class: "tpl-spinner",
1520
1529
  size: 20,
1521
1530
  "stroke-width": 2
1522
- }), R(" " + F(h(a).image.uploading), 1)], 64)) : (s(), x(P, { key: 1 }, [g(h(en), {
1531
+ }), R(" " + F(h(a).image.uploading), 1)], 64)) : (s(), x(P, { key: 1 }, [g(h(on), {
1523
1532
  size: 20,
1524
1533
  "stroke-width": 1.5
1525
1534
  }), 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 +1543,22 @@ var Ar = { class: "tpl:w-full" }, jr = {
1534
1543
  src: h(j),
1535
1544
  alt: e.block.alt || h(a).image.altTextPlaceholder,
1536
1545
  style: D(T.value)
1537
- }, null, 12, Xr)], 8, Yr)) : (s(), x("img", {
1546
+ }, null, 12, ei)], 8, $r)) : (s(), x("img", {
1538
1547
  key: 1,
1539
1548
  class: "tpl:border-0",
1540
1549
  src: h(j),
1541
1550
  alt: e.block.alt,
1542
1551
  style: D(T.value)
1543
- }, null, 12, Zr))], 64)) : e.block.src && O.value ? (s(), x("div", {
1552
+ }, null, 12, ti))], 64)) : e.block.src && O.value ? (s(), x("div", {
1544
1553
  key: 2,
1545
1554
  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
1555
  style: D([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, T.value])
1547
- }, [g(h(Xt), {
1556
+ }, [g(h(tn), {
1548
1557
  size: 32,
1549
1558
  "stroke-width": 1.5,
1550
1559
  class: "tpl:text-[var(--tpl-primary)]",
1551
1560
  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", {
1561
+ }), 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
1562
  key: 0,
1554
1563
  href: e.block.linkUrl,
1555
1564
  target: "_blank",
@@ -1561,33 +1570,33 @@ var Ar = { class: "tpl:w-full" }, jr = {
1561
1570
  src: h(A),
1562
1571
  alt: e.block.alt || h(a).image.altTextPlaceholder,
1563
1572
  style: D(T.value)
1564
- }, null, 12, ei)], 8, $r)) : (s(), x("img", {
1573
+ }, null, 12, ii)], 8, ri)) : (s(), x("img", {
1565
1574
  key: 1,
1566
1575
  class: "tpl:border-0",
1567
1576
  src: h(A),
1568
1577
  alt: e.block.alt,
1569
1578
  style: D(T.value)
1570
- }, null, 12, ti))], 64)) : (s(), x("div", ni, [d.value ? (s(), x("button", {
1579
+ }, null, 12, ai))], 64)) : (s(), x("div", oi, [d.value ? (s(), x("button", {
1571
1580
  key: 0,
1572
1581
  "aria-label": h(a).image.browseMedia,
1573
1582
  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
1583
  onClick: E(p, ["stop"])
1575
- }, [g(h(Xt), {
1584
+ }, [g(h(tn), {
1576
1585
  size: 14,
1577
1586
  "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));
1587
+ }), R(" " + F(h(a).image.browseMedia), 1)], 8, si)) : (s(), x("span", ci, F(h(a).image.clickToAdd), 1))]))], 12, Zr));
1579
1588
  }
1580
- }), oi = { class: "tpl:w-full" }, si = ["href"], ci = {
1589
+ }), ui = { class: "tpl:w-full" }, di = ["href"], fi = {
1581
1590
  key: 1,
1582
1591
  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({
1592
+ }, pi = /* @__PURE__ */ d({
1584
1593
  __name: "MenuBlock",
1585
1594
  props: {
1586
1595
  block: {},
1587
1596
  viewport: {}
1588
1597
  },
1589
1598
  setup(e) {
1590
- let t = e, { t: n } = X(), i = b(() => ({
1599
+ let t = e, { t: n } = J(), i = b(() => ({
1591
1600
  display: "flex",
1592
1601
  flexWrap: "wrap",
1593
1602
  gap: `0 ${t.block.spacing}px`,
@@ -1599,7 +1608,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1599
1608
  function o(e) {
1600
1609
  return e || t.block.linkColor || t.block.color;
1601
1610
  }
1602
- return (t, c) => (s(), x("div", oi, [a.value ? (s(), x("div", {
1611
+ return (t, c) => (s(), x("div", ui, [a.value ? (s(), x("div", {
1603
1612
  key: 0,
1604
1613
  style: D(i.value)
1605
1614
  }, [(s(!0), x(P, null, r(e.block.items, (t, n) => (s(), x(P, { key: t.id }, [k("a", {
@@ -1611,15 +1620,15 @@ var Ar = { class: "tpl:w-full" }, jr = {
1611
1620
  textDecoration: t.underline ? "underline" : "none"
1612
1621
  }),
1613
1622
  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", {
1623
+ }, [g(dr, { text: t.text || "..." }, null, 8, ["text"])], 12, di), n < e.block.items.length - 1 ? (s(), x("span", {
1615
1624
  key: 0,
1616
1625
  style: D({
1617
1626
  color: e.block.separatorColor,
1618
1627
  padding: `0 ${e.block.spacing}px`
1619
1628
  })
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)]))]));
1629
+ }, 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
1630
  }
1622
- }), ui = /* @__PURE__ */ new Set([
1631
+ }), mi = /* @__PURE__ */ new Set([
1623
1632
  "http",
1624
1633
  "https",
1625
1634
  "mailto",
@@ -1629,7 +1638,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1629
1638
  "sms",
1630
1639
  "xmpp",
1631
1640
  "cid"
1632
- ]), di = /* @__PURE__ */ new Set([
1641
+ ]), hi = /* @__PURE__ */ new Set([
1633
1642
  "SCRIPT",
1634
1643
  "STYLE",
1635
1644
  "IFRAME",
@@ -1639,7 +1648,7 @@ var Ar = { class: "tpl:w-full" }, jr = {
1639
1648
  "META",
1640
1649
  "BASE",
1641
1650
  "FORM"
1642
- ]), fi = /* @__PURE__ */ new Set([
1651
+ ]), gi = /* @__PURE__ */ new Set([
1643
1652
  "href",
1644
1653
  "xlink:href",
1645
1654
  "formaction",
@@ -1648,16 +1657,16 @@ var Ar = { class: "tpl:w-full" }, jr = {
1648
1657
  "background",
1649
1658
  "poster"
1650
1659
  ]);
1651
- function pi(e, t) {
1660
+ function _i(e, t) {
1652
1661
  let n = e.replace(/[\t\n\r]/g, "").replace(/^[\u0000-\u0020]+/, "").trimEnd();
1653
1662
  if (!n || n.startsWith("#")) return !0;
1654
1663
  let r = /^([a-z][a-z0-9+.-]*):/i.exec(n);
1655
1664
  if (!r) return !0;
1656
1665
  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;
1666
+ return mi.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
1658
1667
  }
1659
- function mi(e) {
1660
- if (di.has(e.tagName)) {
1668
+ function vi(e) {
1669
+ if (hi.has(e.tagName)) {
1661
1670
  e.remove();
1662
1671
  return;
1663
1672
  }
@@ -1669,29 +1678,29 @@ function mi(e) {
1669
1678
  e.removeAttribute(n);
1670
1679
  continue;
1671
1680
  }
1672
- if (fi.has(t)) {
1673
- pi(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
1681
+ if (gi.has(t)) {
1682
+ _i(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
1674
1683
  continue;
1675
1684
  }
1676
1685
  if (t === "src") {
1677
- pi(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
1686
+ _i(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
1678
1687
  continue;
1679
1688
  }
1680
1689
  t === "srcdoc" && e.removeAttribute(n);
1681
1690
  }
1682
1691
  let n = Array.from(e.children);
1683
- for (let e of n) mi(e);
1692
+ for (let e of n) vi(e);
1684
1693
  }
1685
- function hi(e) {
1694
+ function yi(e) {
1686
1695
  if (typeof DOMParser > "u") return e;
1687
1696
  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);
1697
+ for (let e of n) vi(e);
1689
1698
  return t.innerHTML;
1690
1699
  }
1691
1700
  //#endregion
1692
1701
  //#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({
1702
+ function bi(e) {
1703
+ 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
1704
  top: u.value - 8,
1696
1705
  left: d.value
1697
1706
  }));
@@ -1712,14 +1721,14 @@ function gi(e) {
1712
1721
  }
1713
1722
  //#endregion
1714
1723
  //#region src/components/blocks/ParagraphBlock.vue?vue&type=script&setup=true&lang.ts
1715
- var _i = ["innerHTML"], vi = /* @__PURE__ */ d({
1724
+ var xi = ["innerHTML"], Si = /* @__PURE__ */ d({
1716
1725
  __name: "ParagraphBlock",
1717
1726
  props: {
1718
1727
  block: {},
1719
1728
  viewport: {}
1720
1729
  },
1721
1730
  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);
1731
+ let t = e, n = L(() => import("./ParagraphEditor-w2qEZTkM.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = bi(() => t.block.content);
1723
1732
  return (t, u) => (s(), x("div", {
1724
1733
  ref_key: "blockRef",
1725
1734
  ref: i,
@@ -1738,54 +1747,64 @@ var _i = ["innerHTML"], vi = /* @__PURE__ */ d({
1738
1747
  key: 1,
1739
1748
  class: "tpl-text-content tpl:outline-none",
1740
1749
  innerHTML: h(o)
1741
- }, null, 8, _i))], 544));
1750
+ }, null, 8, xi))], 544));
1742
1751
  }
1743
1752
  });
1744
1753
  //#endregion
1745
1754
  //#region src/utils/blockComponentResolver.ts
1746
- function yi(e) {
1755
+ function Ci(e) {
1747
1756
  let t = { fontFamily: e.fontFamily };
1748
1757
  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
1758
  }
1750
- function bi(e, t, n) {
1759
+ function wi(e, t, n) {
1751
1760
  if (t) {
1752
1761
  let n = t.getComponent(e);
1753
1762
  if (n) return n;
1754
1763
  }
1755
1764
  return n[e.type] ?? null;
1756
1765
  }
1757
- function xi(e) {
1766
+ function Ti(e) {
1767
+ if (e.type === "wrapper") return {};
1758
1768
  let { padding: t, backgroundColor: n } = e.styles, r = {
1759
1769
  padding: `${t.top}px ${t.right}px ${t.bottom}px ${t.left}px`,
1760
1770
  backgroundColor: n || "transparent"
1761
1771
  };
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;
1772
+ 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
1773
  }
1764
- function Si(e) {
1774
+ function Ei(e) {
1765
1775
  if (e.type !== "section" || !e.wrapper) return null;
1766
1776
  let t = e.wrapper, n = {};
1767
1777
  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
1778
  }
1779
+ function Di(e) {
1780
+ if (e.type !== "wrapper") return null;
1781
+ let t = {};
1782
+ if (e.styles.backgroundColor && (t.backgroundColor = e.styles.backgroundColor), e.styles.padding) {
1783
+ let n = e.styles.padding;
1784
+ t.padding = `${n.top}px ${n.right}px ${n.bottom}px ${n.left}px`;
1785
+ }
1786
+ return e.borderRadius && e.borderRadius > 0 && (t.borderRadius = `${e.borderRadius}px`), t;
1787
+ }
1769
1788
  //#endregion
1770
1789
  //#region src/components/blocks/BlockWrapper.vue?vue&type=script&setup=true&lang.ts
1771
- var Ci = [
1790
+ var Oi = [
1772
1791
  "data-block-id",
1773
1792
  "data-block-type",
1774
1793
  "data-tpl-picked"
1775
- ], wi = ["aria-label"], Ti = [
1794
+ ], ki = ["aria-label"], Ai = [
1776
1795
  "aria-label",
1777
1796
  "aria-pressed",
1778
1797
  "title"
1779
- ], Ei = ["aria-label", "title"], Di = ["aria-label", "title"], Oi = ["aria-label", "title"], ki = {
1798
+ ], ji = ["aria-label", "title"], Mi = ["aria-label", "title"], Ni = ["aria-label", "title"], Pi = {
1780
1799
  key: 1,
1781
1800
  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 = {
1801
+ }, 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
1802
  key: 2,
1784
1803
  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 = {
1804
+ }, Li = ["aria-label", "title"], Ri = {
1786
1805
  key: 3,
1787
1806
  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({
1807
+ }, zi = ["aria-label"], Bi = /*#__PURE__*/ pn(/* @__PURE__ */ d({
1789
1808
  __name: "BlockWrapper",
1790
1809
  props: {
1791
1810
  block: {},
@@ -1797,7 +1816,7 @@ var Ci = [
1797
1816
  },
1798
1817
  emits: ["select"],
1799
1818
  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);
1819
+ 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
1820
  async function _() {
1802
1821
  await T(), f.value?.focus();
1803
1822
  }
@@ -1823,20 +1842,20 @@ var Ci = [
1823
1842
  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
1843
  desktop: c.viewport.desktop,
1825
1844
  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) {
1845
+ }[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));
1846
+ function te(e) {
1828
1847
  i.previewMode || (e.target?.closest("a") && e.preventDefault(), e.stopPropagation(), o("select"));
1829
1848
  }
1830
- function te() {
1849
+ function ne() {
1831
1850
  j?.deleteBlock(i.block.id);
1832
1851
  }
1833
- function U() {
1852
+ function re() {
1834
1853
  j?.duplicateBlock(i.block);
1835
1854
  }
1836
- function ne() {
1855
+ function ie() {
1837
1856
  N.savedBlocks?.startPicking(i.block.id);
1838
1857
  }
1839
- function re() {
1858
+ function ae() {
1840
1859
  M?.toggleBlock(i.block.id);
1841
1860
  }
1842
1861
  return (t, n) => w.value ? S("", !0) : (s(), x("div", {
@@ -1850,7 +1869,7 @@ var Ci = [
1850
1869
  "data-block-id": e.block.id,
1851
1870
  "data-block-type": e.block.type,
1852
1871
  "data-tpl-picked": e.picked || void 0,
1853
- onClick: ee
1872
+ onClick: te
1854
1873
  }, [
1855
1874
  g(h(r), { "block-id": e.block.id }, null, 8, ["block-id"]),
1856
1875
  z.value ? (s(), x("div", {
@@ -1868,65 +1887,65 @@ var Ci = [
1868
1887
  "aria-keyshortcuts": "Space Enter ArrowUp ArrowDown Escape",
1869
1888
  title: h(c).blockActions.drag,
1870
1889
  onKeydown: y
1871
- }, [g(h(Zt), {
1890
+ }, [g(h(nn), {
1872
1891
  size: 14,
1873
1892
  "stroke-width": 1.5
1874
- })], 40, Ti),
1893
+ })], 40, Ai),
1875
1894
  k("button", {
1876
1895
  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
1896
  "aria-label": h(c).blockActions.duplicate,
1878
1897
  title: h(c).blockActions.duplicate,
1879
- onClick: E(U, ["stop"])
1880
- }, [g(h(Wt), {
1898
+ onClick: E(re, ["stop"])
1899
+ }, [g(h(Yt), {
1881
1900
  size: 14,
1882
1901
  "stroke-width": 1.5
1883
- })], 8, Ei),
1902
+ })], 8, ji),
1884
1903
  I.value ? (s(), x("button", {
1885
1904
  key: 0,
1886
1905
  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
1906
  "aria-label": h(c).blockActions.saveAsBlock,
1888
1907
  title: h(c).blockActions.saveAsBlock,
1889
- onClick: E(ne, ["stop"])
1890
- }, [g(h(Ut), {
1908
+ onClick: E(ie, ["stop"])
1909
+ }, [g(h(Jt), {
1891
1910
  size: 14,
1892
1911
  "stroke-width": 1.5
1893
- })], 8, Di)) : S("", !0),
1912
+ })], 8, Mi)) : S("", !0),
1894
1913
  k("button", {
1895
1914
  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
1915
  "aria-label": h(c).blockActions.delete,
1897
1916
  title: h(c).blockActions.delete,
1898
- onClick: E(te, ["stop"])
1899
- }, [g(h(Yt), {
1917
+ onClick: E(ne, ["stop"])
1918
+ }, [g(h(en), {
1900
1919
  size: 14,
1901
1920
  "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), {
1921
+ })], 8, Ni)
1922
+ ], 8, ki)) : S("", !0),
1923
+ C.value ? (s(), x("div", Pi, [k("span", Fi, [g(h(Qt), {
1905
1924
  size: 12,
1906
1925
  "stroke-width": 1.5
1907
1926
  }), 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", {
1927
+ A.value && !C.value ? (s(), x("div", Ii, [k("button", {
1909
1928
  "data-testid": "condition-toggle",
1910
1929
  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
1930
  "aria-label": h(c).blockActions.conditionToggle,
1912
1931
  title: e.block.displayCondition?.label,
1913
- onClick: E(re, ["stop"])
1914
- }, [g(h(an), {
1932
+ onClick: E(ae, ["stop"])
1933
+ }, [g(h(un), {
1915
1934
  size: 12,
1916
1935
  "stroke-width": 2
1917
- })], 8, Mi)])) : S("", !0),
1918
- B.value > 0 && !C.value ? (s(), x("div", Ni, [k("button", {
1936
+ })], 8, Li)])) : S("", !0),
1937
+ B.value > 0 && !C.value ? (s(), x("div", Ri, [k("button", {
1919
1938
  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
1939
  "aria-label": h(u)(h(c).blockActions.comments, { count: String(B.value) }),
1921
1940
  onClick: n[0] ||= E((t) => h(N).comments?.openForBlock(e.block.id), ["stop"])
1922
- }, [g(h(tn), {
1941
+ }, [g(h(sn), {
1923
1942
  size: 12,
1924
1943
  "stroke-width": 2.5
1925
- }), R(" " + F(B.value), 1)], 8, Pi)])) : S("", !0),
1926
- H.value ? (s(), x("div", {
1944
+ }), R(" " + F(B.value), 1)], 8, zi)])) : S("", !0),
1945
+ ee.value ? (s(), x("div", {
1927
1946
  key: 4,
1928
1947
  class: "tpl-section-wrapper",
1929
- style: D(H.value)
1948
+ style: D(ee.value)
1930
1949
  }, [k("div", {
1931
1950
  class: "tpl-block-content",
1932
1951
  style: D(V.value)
@@ -1935,31 +1954,31 @@ var Ci = [
1935
1954
  class: "tpl-block-content",
1936
1955
  style: D(V.value)
1937
1956
  }, [a(t.$slots, "default", {}, void 0, !0)], 4))
1938
- ], 10, Ci));
1957
+ ], 10, Oi));
1939
1958
  }
1940
1959
  }), [["__scopeId", "data-v-2c239048"]]);
1941
1960
  //#endregion
1942
1961
  //#region src/utils/unwrapParagraph.ts
1943
- function Ii(e) {
1962
+ function Vi(e) {
1944
1963
  let t = e.match(/^\s*<p\b[^>]*>([\s\S]*)<\/p>\s*$/);
1945
1964
  return !t || /<\/p>\s*<p\b/i.test(t[1]) ? e : t[1];
1946
1965
  }
1947
1966
  //#endregion
1948
1967
  //#region src/components/blocks/TitleBlock.vue
1949
- var Li = /* @__PURE__ */ d({
1968
+ var Hi = /* @__PURE__ */ d({
1950
1969
  __name: "TitleBlock",
1951
1970
  props: {
1952
1971
  block: {},
1953
1972
  viewport: {}
1954
1973
  },
1955
1974
  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(() => {
1975
+ let t = e, n = L(() => import("./TitleEditor-laILWfKh.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = bi(() => t.block.content), d = b(() => {
1957
1976
  let e = {
1958
- fontSize: `${De[t.block.level]}px`,
1977
+ fontSize: `${ve[t.block.level]}px`,
1959
1978
  textAlign: t.block.textAlign
1960
1979
  };
1961
1980
  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));
1981
+ }), f = b(() => `h${t.block.level}`), p = b(() => Vi(o.value));
1963
1982
  return (t, o) => (s(), x("div", {
1964
1983
  ref_key: "blockRef",
1965
1984
  ref: i,
@@ -1985,16 +2004,16 @@ var Li = /* @__PURE__ */ d({
1985
2004
  });
1986
2005
  //#endregion
1987
2006
  //#region src/utils/sectionColumnDrop.ts
1988
- function Ri(e) {
2007
+ function Ui(e) {
1989
2008
  return e.dataset.blockType !== "section" && e.dataset.paletteType !== "section";
1990
2009
  }
1991
2010
  //#endregion
1992
2011
  //#region src/components/blocks/SectionBlock.vue?vue&type=script&setup=true&lang.ts
1993
- var zi = { class: "tpl:w-full" }, Bi = {
2012
+ var Wi = { class: "tpl:w-full" }, Gi = {
1994
2013
  key: 0,
1995
2014
  "data-testid": "section-drop-hint",
1996
2015
  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({
2016
+ }, Ki = /* @__PURE__ */ d({
1998
2017
  __name: "SectionBlock",
1999
2018
  props: {
2000
2019
  block: {},
@@ -2002,13 +2021,13 @@ var zi = { class: "tpl:w-full" }, Bi = {
2002
2021
  },
2003
2022
  setup(e) {
2004
2023
  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);
2024
+ title: Hi,
2025
+ paragraph: Si,
2026
+ image: li,
2027
+ button: pr,
2028
+ divider: Wr,
2029
+ custom: Hr
2030
+ }, 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
2031
  function _(e) {
2013
2032
  let t = p.savedBlocks;
2014
2033
  if (t?.isPicking.value) {
@@ -2043,7 +2062,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2043
2062
  r[e] = n, c.updateBlock(a.block.id, { children: r });
2044
2063
  }
2045
2064
  function A(e) {
2046
- return bi(e, d, t);
2065
+ return wi(e, d, t);
2047
2066
  }
2048
2067
  function j(e, t) {
2049
2068
  e.type === "custom" && c.updateBlock(e.id, {
@@ -2051,7 +2070,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2051
2070
  dataSourceFetched: t.dataSourceFetched
2052
2071
  });
2053
2072
  }
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", {
2073
+ 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
2074
  key: n,
2056
2075
  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
2076
  style: D({ width: w.value ? "100%" : y.value[n] })
@@ -2060,7 +2079,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2060
2079
  group: {
2061
2080
  name: "blocks",
2062
2081
  pull: !0,
2063
- put: (e, t, n) => h(Ri)(n)
2082
+ put: (e, t, n) => h(Ui)(n)
2064
2083
  },
2065
2084
  animation: 150,
2066
2085
  "ghost-class": "tpl-ghost",
@@ -2073,7 +2092,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2073
2092
  class: "tpl:min-h-[60px]",
2074
2093
  "onUpdate:modelValue": (e) => E(n, e)
2075
2094
  }, {
2076
- default: i(() => [(s(!0), x(P, null, r(T(n), (t) => f((s(), x("div", { key: t.id }, [g(Fi, {
2095
+ default: i(() => [(s(!0), x(P, null, r(T(n), (t) => f((s(), x("div", { key: t.id }, [g(Bi, {
2077
2096
  block: t,
2078
2097
  "is-selected": h(c).state.selectedBlockId === t.id,
2079
2098
  viewport: e.viewport,
@@ -2105,13 +2124,13 @@ var zi = { class: "tpl:w-full" }, Bi = {
2105
2124
  "model-value",
2106
2125
  "group",
2107
2126
  "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)]));
2127
+ ]), T(n).length === 0 ? (s(), x("div", Gi, [k("span", null, F(h(o).section.dropHere), 1)])) : S("", !0)], 6))), 128))], 2)]));
2109
2128
  }
2110
- }), Hi = [
2129
+ }), qi = [
2111
2130
  "width",
2112
2131
  "height",
2113
2132
  "fill"
2114
- ], Ui = ["d"], Wi = /* @__PURE__ */ d({
2133
+ ], Ji = ["d"], Yi = /* @__PURE__ */ d({
2115
2134
  __name: "SocialIconSvg",
2116
2135
  props: {
2117
2136
  platform: {},
@@ -2119,7 +2138,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2119
2138
  iconSize: {}
2120
2139
  },
2121
2140
  setup(e) {
2122
- let t = e, n = b(() => Le[t.platform]), r = b(() => ze[t.iconSize]), i = b(() => {
2141
+ let t = e, n = b(() => Ve[t.platform]), r = b(() => Ue[t.iconSize]), i = b(() => {
2123
2142
  let e = {
2124
2143
  display: "inline-flex",
2125
2144
  alignItems: "center",
@@ -2163,25 +2182,25 @@ var zi = { class: "tpl:w-full" }, Bi = {
2163
2182
  viewBox: "0 0 24 24",
2164
2183
  fill: o.value,
2165
2184
  xmlns: "http://www.w3.org/2000/svg"
2166
- }, [k("path", { d: n.value.path }, null, 8, Ui)], 8, Hi))], 4));
2185
+ }, [k("path", { d: n.value.path }, null, 8, Ji)], 8, qi))], 4));
2167
2186
  }
2168
- }), Gi = { class: "tpl:w-full" }, Ki = ["href"], qi = {
2187
+ }), Xi = { class: "tpl:w-full" }, Zi = ["href"], Qi = {
2169
2188
  key: 1,
2170
2189
  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({
2190
+ }, $i = /* @__PURE__ */ d({
2172
2191
  __name: "SocialIconsBlock",
2173
2192
  props: {
2174
2193
  block: {},
2175
2194
  viewport: {}
2176
2195
  },
2177
2196
  setup(e) {
2178
- let t = e, { t: n } = X(), i = b(() => ({
2197
+ let t = e, { t: n } = J(), i = b(() => ({
2179
2198
  display: "flex",
2180
2199
  flexWrap: "wrap",
2181
2200
  gap: `${t.block.spacing}px`,
2182
2201
  justifyContent: t.block.align === "left" ? "flex-start" : t.block.align === "right" ? "flex-end" : "center"
2183
2202
  })), a = b(() => t.block.icons.length > 0);
2184
- return (t, o) => (s(), x("div", Gi, [a.value ? (s(), x("div", {
2203
+ return (t, o) => (s(), x("div", Xi, [a.value ? (s(), x("div", {
2185
2204
  key: 0,
2186
2205
  style: D(i.value)
2187
2206
  }, [(s(!0), x(P, null, r(e.block.icons, (t) => (s(), x("a", {
@@ -2189,7 +2208,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2189
2208
  href: t.url || "#",
2190
2209
  class: "tpl:cursor-default",
2191
2210
  onClick: o[0] ||= E(() => {}, ["prevent"])
2192
- }, [g(Wi, {
2211
+ }, [g(Yi, {
2193
2212
  platform: t.platform,
2194
2213
  "icon-style": e.block.iconStyle,
2195
2214
  "icon-size": e.block.iconSize
@@ -2197,44 +2216,44 @@ var zi = { class: "tpl:w-full" }, Bi = {
2197
2216
  "platform",
2198
2217
  "icon-style",
2199
2218
  "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)]))]));
2219
+ ])], 8, Zi))), 128))], 4)) : (s(), x("div", Qi, [g(h(qt), { size: 16 }), k("span", null, F(h(n).social.addIcons), 1)]))]));
2201
2220
  }
2202
- }), Yi = { class: "tpl:w-full" }, Xi = {
2221
+ }), ea = { class: "tpl:w-full" }, ta = {
2203
2222
  key: 0,
2204
2223
  class: "tpl:absolute tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-medium",
2205
2224
  style: {
2206
2225
  "background-color": "var(--tpl-bg-hover)",
2207
2226
  color: "var(--tpl-text-dim)"
2208
2227
  }
2209
- }, Zi = /* @__PURE__ */ d({
2228
+ }, na = /* @__PURE__ */ d({
2210
2229
  __name: "SpacerBlock",
2211
2230
  props: {
2212
2231
  block: {},
2213
2232
  viewport: {}
2214
2233
  },
2215
2234
  setup(e) {
2216
- let t = e, n = pt(Y, "SpacerBlock"), r = b(() => ({
2235
+ let t = e, n = Qe(q, "SpacerBlock"), r = b(() => ({
2217
2236
  height: `${t.block.height}px`,
2218
2237
  minHeight: `${t.block.height}px`,
2219
2238
  ...n.state.previewMode ? {} : { borderColor: "var(--tpl-border)" }
2220
2239
  }));
2221
- return (t, i) => (s(), x("div", Yi, [k("div", {
2240
+ return (t, i) => (s(), x("div", ea, [k("div", {
2222
2241
  style: D(r.value),
2223
2242
  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)]));
2243
+ }, [h(n).state.previewMode ? S("", !0) : (s(), x("span", ta, F(e.block.height) + "px ", 1))], 6)]));
2225
2244
  }
2226
- }), Qi = { class: "tpl:w-full" }, $i = { key: 0 }, ea = [
2245
+ }), ra = { class: "tpl:w-full" }, ia = { key: 0 }, aa = [
2227
2246
  "aria-label",
2228
2247
  "data-placeholder",
2229
2248
  "onBlur"
2230
- ], ta = [
2249
+ ], oa = [
2231
2250
  "aria-label",
2232
2251
  "data-placeholder",
2233
2252
  "onBlur"
2234
- ], na = {
2253
+ ], sa = {
2235
2254
  key: 1,
2236
2255
  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({
2256
+ }, ca = /*#__PURE__*/ pn(/* @__PURE__ */ d({
2238
2257
  __name: "TableBlock",
2239
2258
  props: {
2240
2259
  block: {},
@@ -2248,7 +2267,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2248
2267
  updated(e, t) {
2249
2268
  t.value !== t.oldValue && e.getRootNode().activeElement !== e && (e.textContent = t.value ?? "");
2250
2269
  }
2251
- }, n = e, { t: i } = X(), a = pt(Y, "TableBlock"), o = b(() => n.block.rows.length > 0), c = b(() => {
2270
+ }, n = e, { t: i } = J(), a = Qe(q, "TableBlock"), o = b(() => n.block.rows.length > 0), c = b(() => {
2252
2271
  let e = {
2253
2272
  width: "100%",
2254
2273
  borderCollapse: "collapse",
@@ -2279,11 +2298,11 @@ var zi = { class: "tpl:w-full" }, Bi = {
2279
2298
  } : n);
2280
2299
  a.updateBlock(n.block.id, { rows: o });
2281
2300
  }
2282
- return (e, n) => (s(), x("div", Qi, [o.value ? (s(), x("table", {
2301
+ return (e, n) => (s(), x("div", ra, [o.value ? (s(), x("table", {
2283
2302
  key: 0,
2284
2303
  style: D(c.value),
2285
2304
  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", {
2305
+ }, [d.value ? (s(), x("thead", ia, [k("tr", null, [(s(!0), x(P, null, r(d.value.cells, (e) => f((s(), x("th", {
2287
2306
  key: e.id,
2288
2307
  style: D(u.value),
2289
2308
  "aria-label": h(i).table.cellPlaceholder,
@@ -2292,7 +2311,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2292
2311
  onBlur: (t) => v(d.value.id, e.id, t),
2293
2312
  onKeydown: n[0] ||= _(E((e) => e.target.blur(), ["prevent"]), ["enter"]),
2294
2313
  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", {
2314
+ }, 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
2315
  key: r.id,
2297
2316
  style: D(l.value),
2298
2317
  "aria-label": h(i).table.cellPlaceholder,
@@ -2301,9 +2320,9 @@ var zi = { class: "tpl:w-full" }, Bi = {
2301
2320
  onBlur: (t) => v(e.id, r.id, t),
2302
2321
  onKeydown: n[1] ||= _(E((e) => e.target.blur(), ["prevent"]), ["enter"]),
2303
2322
  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)]))]));
2323
+ }, 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
2324
  }
2306
- }), [["__scopeId", "data-v-963ac422"]]), ia = /* @__PURE__ */ d({
2325
+ }), [["__scopeId", "data-v-963ac422"]]), la = /* @__PURE__ */ d({
2307
2326
  __name: "VideoPlayButton",
2308
2327
  props: { hoverEffect: {
2309
2328
  type: Boolean,
@@ -2321,7 +2340,7 @@ var zi = { class: "tpl:w-full" }, Bi = {
2321
2340
  });
2322
2341
  //#endregion
2323
2342
  //#region src/utils/videoThumbnail.ts
2324
- function aa(e) {
2343
+ function ua(e) {
2325
2344
  if (!e) return {
2326
2345
  platform: "unknown",
2327
2346
  videoId: null,
@@ -2353,25 +2372,25 @@ function aa(e) {
2353
2372
  thumbnailUrl: null
2354
2373
  };
2355
2374
  }
2356
- function oa(e, t) {
2357
- return t || aa(e).thumbnailUrl;
2375
+ function da(e, t) {
2376
+ return t || ua(e).thumbnailUrl;
2358
2377
  }
2359
2378
  //#endregion
2360
2379
  //#region src/components/blocks/VideoBlock.vue?vue&type=script&setup=true&lang.ts
2361
- var sa = ["src", "alt"], ca = {
2380
+ var fa = ["src", "alt"], pa = {
2362
2381
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
2363
2382
  style: { opacity: "0.7" }
2364
- }, la = ["href"], ua = ["src", "alt"], da = ["src", "alt"], fa = {
2383
+ }, ma = ["href"], ha = ["src", "alt"], ga = ["src", "alt"], _a = {
2365
2384
  key: 3,
2366
2385
  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({
2386
+ }, va = /* @__PURE__ */ d({
2368
2387
  __name: "VideoBlock",
2369
2388
  props: {
2370
2389
  block: {},
2371
2390
  viewport: {}
2372
2391
  },
2373
2392
  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(() => {
2393
+ 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
2394
  let e = t.block.align;
2376
2395
  return {
2377
2396
  maxWidth: "100%",
@@ -2381,7 +2400,7 @@ var sa = ["src", "alt"], ca = {
2381
2400
  marginLeft: e === "center" || e === "right" ? "auto" : void 0,
2382
2401
  marginRight: e === "center" ? "auto" : void 0
2383
2402
  };
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);
2403
+ }), 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
2404
  return (t, r) => (s(), x("div", {
2386
2405
  class: "tpl:w-full",
2387
2406
  style: D(l.value)
@@ -2394,16 +2413,16 @@ var sa = ["src", "alt"], ca = {
2394
2413
  src: h(o),
2395
2414
  alt: e.block.alt,
2396
2415
  style: D(d.value)
2397
- }, null, 12, sa), g(ia)], 4)) : i.value ? (s(), x("div", {
2416
+ }, null, 12, fa), g(la)], 4)) : i.value ? (s(), x("div", {
2398
2417
  key: 1,
2399
2418
  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
2419
  style: D([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, u.value])
2401
- }, [g(h($t), {
2420
+ }, [g(h(an), {
2402
2421
  size: 36,
2403
2422
  "stroke-width": 1.5,
2404
2423
  class: "tpl:text-[var(--tpl-primary)]",
2405
2424
  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", {
2425
+ }), 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
2426
  key: 0,
2408
2427
  href: e.block.url,
2409
2428
  target: "_blank",
@@ -2416,7 +2435,7 @@ var sa = ["src", "alt"], ca = {
2416
2435
  src: c.value,
2417
2436
  alt: e.block.alt,
2418
2437
  style: D(d.value)
2419
- }, null, 12, ua), g(ia, { "hover-effect": "" })], 12, la)) : (s(), x("div", {
2438
+ }, null, 12, ha), g(la, { "hover-effect": "" })], 12, ma)) : (s(), x("div", {
2420
2439
  key: 1,
2421
2440
  class: "tpl:relative tpl:inline-block",
2422
2441
  style: D(u.value)
@@ -2425,54 +2444,54 @@ var sa = ["src", "alt"], ca = {
2425
2444
  src: c.value,
2426
2445
  alt: e.block.alt,
2427
2446
  style: D(d.value)
2428
- }, null, 12, da), g(ia)], 4))], 64)) : (s(), x("div", fa, [g(h($t), {
2447
+ }, null, 12, ga), g(la)], 4))], 64)) : (s(), x("div", _a, [g(h(an), {
2429
2448
  size: 40,
2430
2449
  "stroke-width": 1.5,
2431
2450
  class: "tpl:text-[var(--tpl-border-light)]"
2432
2451
  }), k("span", null, F(h(n).video.addVideo), 1)]))], 4));
2433
2452
  }
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"))
2453
+ }), ya = {
2454
+ section: Ki,
2455
+ title: Hi,
2456
+ paragraph: Si,
2457
+ image: li,
2458
+ button: pr,
2459
+ divider: Wr,
2460
+ video: va,
2461
+ social: $i,
2462
+ menu: pi,
2463
+ table: ca,
2464
+ spacer: na,
2465
+ html: Xr,
2466
+ countdown: L(() => import("./CountdownBlock-sVDjKkRw.js"))
2448
2467
  };
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" ? {
2468
+ function ba(e) {
2469
+ 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
2470
  title: { textAlign: "right" },
2452
2471
  table: { textAlign: "right" }
2453
2472
  } : {}), r.blockDefaults ?? {}));
2454
2473
  n.setUiTheme(r.uiTheme ?? "auto");
2455
- let { resolvedTheme: f } = Tn(b(() => n.state.uiTheme)), p = l(r.theme ?? {}), { themeStyles: h } = Dn({
2474
+ let { resolvedTheme: f } = kn(b(() => n.state.uiTheme)), p = l(r.theme ?? {}), { themeStyles: h } = jn({
2456
2475
  themeOverrides: p,
2457
2476
  resolvedTheme: f,
2458
2477
  extraStyles: () => ({
2459
2478
  "--tpl-drop-text": `"${i.canvas.dropHere}"`,
2460
2479
  ...e.themeExtraStyles?.()
2461
2480
  })
2462
- }), g = Me({
2481
+ }), g = Ie({
2463
2482
  content: n.content,
2464
2483
  setContent: (e, t) => n.setContent(e, t),
2465
2484
  ...e.historyOptions
2466
2485
  });
2467
- Ie(n, g);
2468
- let _ = Ve({
2486
+ Be(n, g);
2487
+ let _ = Ge({
2469
2488
  addBlock: n.addBlock,
2470
2489
  removeBlock: n.removeBlock,
2471
2490
  updateBlock: n.updateBlock,
2472
2491
  selectBlock: n.selectBlock,
2473
2492
  findBlockLocation: n.findBlockLocation,
2474
2493
  blockDefaults: () => d.value
2475
- }), v = Ne(n), x = e.autoSaveOptions !== null && e.autoSaveOptions !== void 0 ? Be({
2494
+ }), v = Le(n), x = e.autoSaveOptions !== null && e.autoSaveOptions !== void 0 ? We({
2476
2495
  content: n.content,
2477
2496
  isDirty: () => n.state.isDirty,
2478
2497
  ...e.autoSaveOptions
@@ -2480,30 +2499,30 @@ function ha(e) {
2480
2499
  x && (S = t(g.isNavigating, (e) => {
2481
2500
  e ? x.pause() : x.resume();
2482
2501
  }));
2483
- let C = wn(n, {
2502
+ let C = On(n, {
2484
2503
  t: s,
2485
2504
  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);
2505
+ }, r.customBlocks ?? []), w = Ut(r.colors);
2506
+ 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) {
2507
+ let e = Bn(w.presets, r.blockDefaults, r.templateDefaults);
2508
+ 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.`);
2509
+ }
2510
+ let T = Gt(r.templateSettings);
2511
+ for (let e of T.unknown) Y.warn(`config.templateSettings.fields: "${e}" is not a template setting (expected one of ${Kt.join(", ")}) — skipping it.`);
2512
+ let E = Mn();
2513
+ Ln(E, ya);
2495
2514
  let D = /* @__PURE__ */ new Set();
2496
2515
  function O(e) {
2497
2516
  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));
2517
+ E.registerCustom(t, Hr);
2518
+ for (let e of sr(t, w)) D.has(e.id) || (D.add(e.id), Y.warn(e.message));
2500
2519
  }
2501
2520
  }
2502
2521
  r.customBlocks?.length && O(r.customBlocks);
2503
- let k = hn();
2522
+ let k = yn();
2504
2523
  if (o() && m(k.dispose), e.containerEl) {
2505
2524
  let t = e.containerEl;
2506
- G(document, "pointerdown", (e) => {
2525
+ U(document, "pointerdown", (e) => {
2507
2526
  let n = t.value;
2508
2527
  n && (e.composedPath?.() ?? []).includes(n) && k.claim();
2509
2528
  }, { capture: !0 });
@@ -2517,7 +2536,7 @@ function ha(e) {
2517
2536
  x?.flush();
2518
2537
  }
2519
2538
  function j(t) {
2520
- k.isActive() && ar(t, {
2539
+ k.isActive() && lr(t, {
2521
2540
  history: g,
2522
2541
  selectBlock: (e) => n.selectBlock(e),
2523
2542
  getSelectedBlockId: () => n.state.selectedBlockId,
@@ -2529,38 +2548,41 @@ function ha(e) {
2529
2548
  onCancelPick: () => e.capabilities?.savedBlocks?.cancelPicking()
2530
2549
  });
2531
2550
  }
2532
- G(document, "keydown", j);
2551
+ U(document, "keydown", j);
2533
2552
  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 ?? []);
2553
+ 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));
2554
+ let N = be(r.mergeTags?.syntax), P = y(r.mergeTags?.tags ?? []);
2536
2555
  function F(e) {
2537
2556
  if (!Array.isArray(e)) {
2538
- Z.warn(`setMergeTags() expects an array of merge tags, received ${typeof e} — ignoring.`);
2557
+ Y.warn(`setMergeTags() expects an array of merge tags, received ${typeof e} — ignoring.`);
2539
2558
  return;
2540
2559
  }
2541
2560
  P.value = e;
2542
2561
  }
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({
2562
+ c(G, P), c(ft, N), c(pt, r.mergeTags?.onRequest ?? null), c(Ot, r.mergeTags?.autocomplete !== !1), c(dt, r.mergeTags?.showRawValue !== !1);
2563
+ let I = l(Me(r.mergeTags?.tags ?? []));
2564
+ c(ut, I);
2565
+ let L = xn({
2547
2566
  resolvePreview: r.resolvePreview,
2548
- getContent: () => n.content.value,
2567
+ getContent: () => {
2568
+ let e = n.content.value;
2569
+ return r.layout && n.state.previewMode ? he(r.layout, e) : e;
2570
+ },
2549
2571
  isActive: () => n.state.previewMode
2550
2572
  });
2551
- c(Ye, L), c(ut, r.resolvePreview);
2573
+ c(gt, L), c(at, r.resolvePreview);
2552
2574
  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({
2575
+ c(Ft, R);
2576
+ let z = wn();
2577
+ 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);
2578
+ let B = En(r.lint) ? null : Dn({
2557
2579
  content: n.content,
2558
2580
  options: r.lint ?? {},
2559
2581
  updateBlock: n.updateBlock,
2560
2582
  updateSettings: n.updateSettings,
2561
2583
  removeBlock: n.removeBlock
2562
2584
  });
2563
- c(dt, B);
2585
+ c(ct, B);
2564
2586
  function V() {
2565
2587
  S?.(), B?.destroy(), x?.destroy(), g.destroy();
2566
2588
  }
@@ -2587,6 +2609,6 @@ function ha(e) {
2587
2609
  };
2588
2610
  }
2589
2611
  //#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 };
2612
+ 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
2613
 
2592
- //# sourceMappingURL=useEditorCore-CXYI14ux.js.map
2614
+ //# sourceMappingURL=useEditorCore-DZmtKwJh.js.map