@templatical/editor 0.29.0 → 0.30.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 (246) hide show
  1. package/LICENSE +84 -31
  2. package/dist/{AiChatSidebar-KeS30iRG.js → AiChatSidebar-Bq99wU01.js} +14 -14
  3. package/dist/{AiFeatureMenu-CCdTgCy7.js → AiFeatureMenu-F-C59LAV.js} +7 -7
  4. package/dist/{BlockIssueBadge-DQ6jBV1T.js → BlockIssueBadge-Dhk7Hv4m.js} +5 -5
  5. package/dist/{BlockPreviewCanvas-MgXVXOG_.js → BlockPreviewCanvas-CqU1kwmG.js} +3 -3
  6. package/dist/{CloudHeaderExtras-L_b51XVJ.js → CloudHeaderExtras-vnGV_mLD.js} +5 -5
  7. package/dist/{CloudPanels-XUtScYFl.js → CloudPanels-Dv-MD1Tc.js} +7 -7
  8. package/dist/{CollaboratorBar-Cx5klY7H.js → CollaboratorBar-DmssyJoB.js} +4 -4
  9. package/dist/{ColorPicker-DjfecH79.js → ColorPicker-CXPSbnRD.js} +7 -7
  10. package/dist/{CommentsPanel-5QxgkKF-.js → CommentsPanel-DnWdgQHg.js} +2 -2
  11. package/dist/{CommentsSidebar-CScszOsC.js → CommentsSidebar-ZOqmuo4D.js} +16 -16
  12. package/dist/{CountdownBlock-Drr1WErd.js → CountdownBlock-BgNK7fZY.js} +3 -3
  13. package/dist/{CountdownToolbar-CiBrLbq0.js → CountdownToolbar-SwmE7CIk.js} +19 -19
  14. package/dist/{DesignReferenceSidebar-B1__DJJI.js → DesignReferenceSidebar-9cLTzOqP.js} +11 -11
  15. package/dist/{NumberWithSuffix-C1D0WFrN.js → FieldRow-0-UbQR4a.js} +24 -17
  16. package/dist/{IssuesPanel-CkuV9Fjp.js → IssuesPanel-CDk7lUna.js} +8 -8
  17. package/dist/{LoadingTrack-Db9j_aBr.js → LoadingTrack-5KBr5cE8.js} +1 -1
  18. package/dist/{MergeTagModeToggle-oX-n91fH.js → MergeTagModeToggle-DtD_Xl9w.js} +6 -6
  19. package/dist/{MergeTagSuggestion-BUozNVtA.js → MergeTagSuggestion-DPfXtDzP.js} +4 -4
  20. package/dist/{ParagraphEditor-BVlMj-YW.js → ParagraphEditor-C0NbqDmV.js} +25 -25
  21. package/dist/{RestoreVersionDialog-CZRLWoqP.js → RestoreVersionDialog-DCX0rJiV.js} +5 -5
  22. package/dist/{RichTextEditorContent-BN6RBSZG.js → RichTextEditorContent-DZ6GiAUi.js} +8 -8
  23. package/dist/{SaveBlockDialog-KNQVLcUG.js → SaveBlockDialog-e5LtQRVk.js} +10 -10
  24. package/dist/{SavedBlocksBrowserModal-D7qatvfw.js → SavedBlocksBrowserModal-ZQIQoARO.js} +11 -11
  25. package/dist/{SavedBlocksPanels-bizAFdNK.js → SavedBlocksPanels-pGZWjSmp.js} +2 -2
  26. package/dist/{SavedBlocksPickBar-BXUSoa38.js → SavedBlocksPickBar-OZaOG1Si.js} +4 -4
  27. package/dist/{TemplateScoringPanel-Dm83xt9R.js → TemplateScoringPanel-CDwlSFEe.js} +15 -15
  28. package/dist/{TestEmailModal-DAdO9Gmo.js → TestEmailModal-PVa1VL2p.js} +11 -11
  29. package/dist/{TestEmailPanel-DORs6xk0.js → TestEmailPanel-RekBdAtO.js} +2 -2
  30. package/dist/{TitleEditor-B_aWxZER.js → TitleEditor-Cs2tELCL.js} +12 -12
  31. package/dist/{TplModal-7623HR5x.js → TplModal-Bw1i8_eE.js} +5 -5
  32. package/dist/{VersionHistoryMenu-D7lgozpw.js → VersionHistoryMenu-B6zAcmAC.js} +8 -8
  33. package/dist/{VersionHistoryPanels-Dor0p1Ur.js → VersionHistoryPanels-TqTC4ofA.js} +2 -2
  34. package/dist/{VersionPreviewBanner-CQt2il1L.js → VersionPreviewBanner-CQlSzQ2B.js} +3 -3
  35. package/dist/{blockTypeIcons-Di4AsjQx.js → blockTypeIcons-C7WedEOG.js} +2 -2
  36. package/dist/bundle-stats.json +6 -6
  37. package/dist/{cdn/chunks/ca-DY0AYOLG.js → ca-DZSrLNXK.js} +2 -2
  38. package/dist/cdn/chunks/{AiChatSidebar-Cwr9eqTh.js → AiChatSidebar-DmZ1Nvxo.js} +11 -11
  39. package/dist/cdn/chunks/{AiChatSidebar-Cwr9eqTh.js.map → AiChatSidebar-DmZ1Nvxo.js.map} +1 -1
  40. package/dist/cdn/chunks/{AiFeatureMenu-CT2QiHmi.js → AiFeatureMenu-D4tax9j3.js} +6 -6
  41. package/dist/cdn/chunks/{AiFeatureMenu-CT2QiHmi.js.map → AiFeatureMenu-D4tax9j3.js.map} +1 -1
  42. package/dist/cdn/chunks/{BlockIssueBadge-CXlXn9Sm.js → BlockIssueBadge-Bry71Wjz.js} +5 -5
  43. package/dist/cdn/chunks/{BlockIssueBadge-CXlXn9Sm.js.map → BlockIssueBadge-Bry71Wjz.js.map} +1 -1
  44. package/dist/cdn/chunks/{BlockPreviewCanvas-BisO3JEy.js → BlockPreviewCanvas-DDOqFJlT.js} +4 -4
  45. package/dist/cdn/chunks/{BlockPreviewCanvas-BisO3JEy.js.map → BlockPreviewCanvas-DDOqFJlT.js.map} +1 -1
  46. package/dist/cdn/chunks/{CloudHeaderExtras-MRCYqip8.js → CloudHeaderExtras-g-_SFPna.js} +5 -5
  47. package/dist/cdn/chunks/{CloudHeaderExtras-MRCYqip8.js.map → CloudHeaderExtras-g-_SFPna.js.map} +1 -1
  48. package/dist/cdn/chunks/{CloudPanels-Bb9qSwKJ.js → CloudPanels-Cnh07_2G.js} +7 -7
  49. package/dist/cdn/chunks/{CloudPanels-Bb9qSwKJ.js.map → CloudPanels-Cnh07_2G.js.map} +1 -1
  50. package/dist/cdn/chunks/{CollaboratorBar-CG13kDHu.js → CollaboratorBar-CLGB0prG.js} +5 -5
  51. package/dist/cdn/chunks/{CollaboratorBar-CG13kDHu.js.map → CollaboratorBar-CLGB0prG.js.map} +1 -1
  52. package/dist/cdn/chunks/{ColorPicker-UpN24AsB.js → ColorPicker-Ww4xHHMI.js} +7 -7
  53. package/dist/cdn/chunks/{ColorPicker-UpN24AsB.js.map → ColorPicker-Ww4xHHMI.js.map} +1 -1
  54. package/dist/cdn/chunks/{CommentsPanel-CIcIXzOB.js → CommentsPanel-DjId-XH-.js} +3 -3
  55. package/dist/cdn/chunks/{CommentsPanel-CIcIXzOB.js.map → CommentsPanel-DjId-XH-.js.map} +1 -1
  56. package/dist/cdn/chunks/{CommentsSidebar-CB5Z8xNz.js → CommentsSidebar-DXXGWSr4.js} +5 -5
  57. package/dist/cdn/chunks/{CommentsSidebar-CB5Z8xNz.js.map → CommentsSidebar-DXXGWSr4.js.map} +1 -1
  58. package/dist/cdn/chunks/{CountdownBlock-_7TUBqJS.js → CountdownBlock-CWeJBC0L.js} +4 -4
  59. package/dist/cdn/chunks/{CountdownBlock-_7TUBqJS.js.map → CountdownBlock-CWeJBC0L.js.map} +1 -1
  60. package/dist/cdn/chunks/{CountdownToolbar-B1L0IK1T.js → CountdownToolbar-CO6xLgYc.js} +20 -20
  61. package/dist/cdn/chunks/{CountdownToolbar-B1L0IK1T.js.map → CountdownToolbar-CO6xLgYc.js.map} +1 -1
  62. package/dist/cdn/chunks/{DesignReferenceSidebar-BwsfOFsc.js → DesignReferenceSidebar-DRGqm33h.js} +7 -7
  63. package/dist/cdn/chunks/{DesignReferenceSidebar-BwsfOFsc.js.map → DesignReferenceSidebar-DRGqm33h.js.map} +1 -1
  64. package/dist/cdn/chunks/{NumberWithSuffix-CWvM_I3T.js → FieldRow-CbcpsxZ4.js} +25 -18
  65. package/dist/cdn/chunks/FieldRow-CbcpsxZ4.js.map +1 -0
  66. package/dist/cdn/chunks/{IssuesPanel-3nTCyKgK.js → IssuesPanel-iC2hgrXx.js} +6 -6
  67. package/dist/cdn/chunks/{IssuesPanel-3nTCyKgK.js.map → IssuesPanel-iC2hgrXx.js.map} +1 -1
  68. package/dist/cdn/chunks/{LoadingTrack-D_wweXVz.js → LoadingTrack-Cz1sT0wP.js} +2 -2
  69. package/dist/cdn/chunks/{LoadingTrack-D_wweXVz.js.map → LoadingTrack-Cz1sT0wP.js.map} +1 -1
  70. package/dist/cdn/chunks/{MergeTagModeToggle-BUNsRKs6.js → MergeTagModeToggle-DZtnCj0F.js} +6 -6
  71. package/dist/cdn/chunks/{MergeTagModeToggle-BUNsRKs6.js.map → MergeTagModeToggle-DZtnCj0F.js.map} +1 -1
  72. package/dist/cdn/chunks/{MergeTagSuggestion-Dt6I8bZi.js → MergeTagSuggestion-VP_nC-8W.js} +3 -3
  73. package/dist/cdn/chunks/{MergeTagSuggestion-Dt6I8bZi.js.map → MergeTagSuggestion-VP_nC-8W.js.map} +1 -1
  74. package/dist/cdn/chunks/{ParagraphEditor-BtzkHfv2.js → ParagraphEditor-BalgLjBt.js} +27 -27
  75. package/dist/cdn/chunks/{ParagraphEditor-BtzkHfv2.js.map → ParagraphEditor-BalgLjBt.js.map} +1 -1
  76. package/dist/cdn/chunks/{RestoreVersionDialog-DNoo-EBT.js → RestoreVersionDialog-DGOXQ0ou.js} +5 -5
  77. package/dist/cdn/chunks/{RestoreVersionDialog-DNoo-EBT.js.map → RestoreVersionDialog-DGOXQ0ou.js.map} +1 -1
  78. package/dist/cdn/chunks/{RichTextEditorContent-BQATmyd9.js → RichTextEditorContent-DpvOKKH-.js} +7 -7
  79. package/dist/cdn/chunks/{RichTextEditorContent-BQATmyd9.js.map → RichTextEditorContent-DpvOKKH-.js.map} +1 -1
  80. package/dist/cdn/chunks/{SaveBlockDialog-DB37Vmqt.js → SaveBlockDialog-Dod3jX9X.js} +8 -8
  81. package/dist/cdn/chunks/{SaveBlockDialog-DB37Vmqt.js.map → SaveBlockDialog-Dod3jX9X.js.map} +1 -1
  82. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CTU2rGWQ.js → SavedBlocksBrowserModal-BysGB8zb.js} +9 -9
  83. package/dist/cdn/chunks/{SavedBlocksBrowserModal-CTU2rGWQ.js.map → SavedBlocksBrowserModal-BysGB8zb.js.map} +1 -1
  84. package/dist/cdn/chunks/{SavedBlocksPanels-B9h9wI6d.js → SavedBlocksPanels-DJ4fceEM.js} +3 -3
  85. package/dist/cdn/chunks/{SavedBlocksPanels-B9h9wI6d.js.map → SavedBlocksPanels-DJ4fceEM.js.map} +1 -1
  86. package/dist/cdn/chunks/{SavedBlocksPickBar-CTY5WZum.js → SavedBlocksPickBar-DGgbqAsb.js} +5 -5
  87. package/dist/cdn/chunks/{SavedBlocksPickBar-CTY5WZum.js.map → SavedBlocksPickBar-DGgbqAsb.js.map} +1 -1
  88. package/dist/cdn/chunks/{TemplateScoringPanel-DZ0cpe_D.js → TemplateScoringPanel-B0YcaJsR.js} +6 -6
  89. package/dist/cdn/chunks/{TemplateScoringPanel-DZ0cpe_D.js.map → TemplateScoringPanel-B0YcaJsR.js.map} +1 -1
  90. package/dist/cdn/chunks/{TestEmailModal-Dqx1RyDE.js → TestEmailModal-DvZFnhWa.js} +10 -10
  91. package/dist/cdn/chunks/{TestEmailModal-Dqx1RyDE.js.map → TestEmailModal-DvZFnhWa.js.map} +1 -1
  92. package/dist/cdn/chunks/{TestEmailPanel-DrcQhnON.js → TestEmailPanel-BdxpMiWc.js} +3 -3
  93. package/dist/cdn/chunks/{TestEmailPanel-DrcQhnON.js.map → TestEmailPanel-BdxpMiWc.js.map} +1 -1
  94. package/dist/cdn/chunks/{TitleEditor-CSeDvWVn.js → TitleEditor-CfHWnThg.js} +12 -12
  95. package/dist/cdn/chunks/{TitleEditor-CSeDvWVn.js.map → TitleEditor-CfHWnThg.js.map} +1 -1
  96. package/dist/cdn/chunks/{TplModal-BNBLwBxJ.js → TplModal-BMTW5bEN.js} +5 -5
  97. package/dist/cdn/chunks/{TplModal-BNBLwBxJ.js.map → TplModal-BMTW5bEN.js.map} +1 -1
  98. package/dist/cdn/chunks/{VersionHistoryMenu-cZlb0sMi.js → VersionHistoryMenu-DJGcA_RX.js} +5 -5
  99. package/dist/cdn/chunks/{VersionHistoryMenu-cZlb0sMi.js.map → VersionHistoryMenu-DJGcA_RX.js.map} +1 -1
  100. package/dist/cdn/chunks/{VersionHistoryPanels-DgrjTK3z.js → VersionHistoryPanels-2l_FLtix.js} +3 -3
  101. package/dist/cdn/chunks/{VersionHistoryPanels-DgrjTK3z.js.map → VersionHistoryPanels-2l_FLtix.js.map} +1 -1
  102. package/dist/cdn/chunks/{VersionPreviewBanner-BNq7PRun.js → VersionPreviewBanner-C8pfES5A.js} +4 -4
  103. package/dist/cdn/chunks/{VersionPreviewBanner-BNq7PRun.js.map → VersionPreviewBanner-C8pfES5A.js.map} +1 -1
  104. package/dist/cdn/chunks/{blockTypeIcons-BNGmmzB_.js → blockTypeIcons-JUwZtKaq.js} +2 -2
  105. package/dist/cdn/chunks/{blockTypeIcons-BNGmmzB_.js.map → blockTypeIcons-JUwZtKaq.js.map} +1 -1
  106. package/dist/{ca-DY0AYOLG.js → cdn/chunks/ca-DZSrLNXK.js} +4 -0
  107. package/dist/cdn/chunks/ca-DZSrLNXK.js.map +1 -0
  108. package/dist/cdn/chunks/{cloud-CRCcXTc5.js → cloud-CITqEHEc.js} +3 -3
  109. package/dist/cdn/chunks/{cloud-CRCcXTc5.js.map → cloud-CITqEHEc.js.map} +1 -1
  110. package/dist/cdn/chunks/{createCloudRuntime-B_HRgFxU.js → createCloudRuntime-jLhuyKds.js} +8 -8
  111. package/dist/cdn/chunks/{createCloudRuntime-B_HRgFxU.js.map → createCloudRuntime-jLhuyKds.js.map} +1 -1
  112. package/dist/{de-CYLWugqb.js → cdn/chunks/de-DbayqpK-.js} +4 -0
  113. package/dist/cdn/chunks/{de-CYLWugqb.js.map → de-DbayqpK-.js.map} +1 -1
  114. package/dist/cdn/chunks/{dist-eKG4m5Wx.js → dist-CgR3inPR.js} +3 -3
  115. package/dist/cdn/chunks/{dist-eKG4m5Wx.js.map → dist-CgR3inPR.js.map} +1 -1
  116. package/dist/cdn/chunks/{dist-2fOlspdg.js → dist-El3fQnfk.js} +4 -4
  117. package/dist/cdn/chunks/{dist-2fOlspdg.js.map → dist-El3fQnfk.js.map} +1 -1
  118. package/dist/cdn/chunks/{draggable-BLMjz0GK.js → draggable-D2vo-aQI.js} +1465 -1435
  119. package/dist/cdn/chunks/draggable-D2vo-aQI.js.map +1 -0
  120. package/dist/cdn/chunks/en-CwXyUb6-.js +2 -0
  121. package/dist/{en-C3TM249M.js → cdn/chunks/en-l0ib5X0f.js} +4 -0
  122. package/dist/cdn/chunks/en-l0ib5X0f.js.map +1 -0
  123. package/dist/cdn/chunks/{es-D1SF4nCR.js → es-CMQ-5PJP.js} +3 -1
  124. package/dist/cdn/chunks/es-CMQ-5PJP.js.map +1 -0
  125. package/dist/cdn/chunks/{extensions-Deqilwp8.js → extensions-D30V0hzj.js} +7 -7
  126. package/dist/cdn/chunks/{extensions-Deqilwp8.js.map → extensions-D30V0hzj.js.map} +1 -1
  127. package/dist/cdn/chunks/{fr-CdLhJ7kw.js → fr-DNXmZWAq.js} +3 -1
  128. package/dist/cdn/chunks/fr-DNXmZWAq.js.map +1 -0
  129. package/dist/cdn/chunks/{icons-C2kP4vOJ.js → icons-BTdLXRXn.js} +13 -13
  130. package/dist/cdn/chunks/icons-BTdLXRXn.js.map +1 -0
  131. package/dist/cdn/chunks/{keys-D7OpfE2s.js → keys-BJ770Mwm.js} +2 -2
  132. package/dist/cdn/chunks/{keys-D7OpfE2s.js.map → keys-BJ770Mwm.js.map} +1 -1
  133. package/dist/cdn/chunks/{liquid.browser-UlAOKBjI.js → liquid.browser-BPvKXNfO.js} +2 -2
  134. package/dist/cdn/chunks/{liquid.browser-UlAOKBjI.js.map → liquid.browser-BPvKXNfO.js.map} +1 -1
  135. package/dist/{nl-BvsLoyKp.js → cdn/chunks/nl-BylRRHYJ.js} +4 -0
  136. package/dist/cdn/chunks/nl-BylRRHYJ.js.map +1 -0
  137. package/dist/cdn/chunks/{preRenderCustomBlocks-CbA3RcAy.js → preRenderCustomBlocks-DyCIgmqJ.js} +2 -2
  138. package/dist/cdn/chunks/{preRenderCustomBlocks-CbA3RcAy.js.map → preRenderCustomBlocks-DyCIgmqJ.js.map} +1 -1
  139. package/dist/cdn/chunks/{pt-BR-CAGS5YXp.js → pt-BR-BVoJhpie.js} +3 -1
  140. package/dist/cdn/chunks/pt-BR-BVoJhpie.js.map +1 -0
  141. package/dist/cdn/chunks/{src-CgIXdQlX.js → src-65H3RNcb.js} +8 -8
  142. package/dist/cdn/chunks/{src-CgIXdQlX.js.map → src-65H3RNcb.js.map} +1 -1
  143. package/dist/cdn/chunks/{src-Cx70q30o.js → src-6J-yyZoD.js} +2 -2
  144. package/dist/cdn/chunks/{src-Cx70q30o.js.map → src-6J-yyZoD.js.map} +1 -1
  145. package/dist/cdn/chunks/{src-B_QJduQD.js → src-BD60gqPW.js} +72 -67
  146. package/dist/cdn/chunks/src-BD60gqPW.js.map +1 -0
  147. package/dist/cdn/chunks/{src-CnQgwcsc.js → src-CLTXM4PM.js} +166 -136
  148. package/dist/cdn/chunks/src-CLTXM4PM.js.map +1 -0
  149. package/dist/cdn/chunks/{tiptap-DOw5Yb4H.js → tiptap-Bqy-H6CT.js} +2295 -2205
  150. package/dist/cdn/chunks/tiptap-Bqy-H6CT.js.map +1 -0
  151. package/dist/cdn/chunks/{useAliveFlag-C1pwLtPO.js → useAliveFlag-DrXxPV8V.js} +2 -2
  152. package/dist/cdn/chunks/{useAliveFlag-C1pwLtPO.js.map → useAliveFlag-DrXxPV8V.js.map} +1 -1
  153. package/dist/cdn/chunks/{useCloudI18n-D4gzxtqF.js → useCloudI18n-D0AoLV0a.js} +3 -3
  154. package/dist/cdn/chunks/{useCloudI18n-D4gzxtqF.js.map → useCloudI18n-D0AoLV0a.js.map} +1 -1
  155. package/dist/cdn/chunks/{useEditorCore-Dq5gdn5i.js → useEditorCore-BQeEwEQ9.js} +356 -361
  156. package/dist/cdn/chunks/{useEditorCore-Dq5gdn5i.js.map → useEditorCore-BQeEwEQ9.js.map} +1 -1
  157. package/dist/cdn/chunks/useEditorRoot-BFGRBGts.js +10 -0
  158. package/dist/cdn/chunks/{useEditorRoot-BY-amddA.js.map → useEditorRoot-BFGRBGts.js.map} +1 -1
  159. package/dist/cdn/chunks/{useI18n-DYb1SgLB.js → useI18n-DIhawILp.js} +3 -3
  160. package/dist/cdn/chunks/{useI18n-DYb1SgLB.js.map → useI18n-DIhawILp.js.map} +1 -1
  161. package/dist/cdn/chunks/{useMergeTag-D-SE_XN8.js → useMergeTag-lWo7So18.js} +4 -4
  162. package/dist/cdn/chunks/{useMergeTag-D-SE_XN8.js.map → useMergeTag-lWo7So18.js.map} +1 -1
  163. package/dist/cdn/chunks/{usePopoverPosition-CJZ6EkS4.js → usePopoverPosition-DkiTLnBm.js} +3 -3
  164. package/dist/cdn/chunks/{usePopoverPosition-CJZ6EkS4.js.map → usePopoverPosition-DkiTLnBm.js.map} +1 -1
  165. package/dist/cdn/chunks/{useScrollToBlock-D6gyIzT1.js → useScrollToBlock-KcSAuXKz.js} +3 -3
  166. package/dist/cdn/chunks/{useScrollToBlock-D6gyIzT1.js.map → useScrollToBlock-KcSAuXKz.js.map} +1 -1
  167. package/dist/cdn/editor.css +1 -1
  168. package/dist/cdn/editor.js +1036 -1002
  169. package/dist/cdn/editor.js.map +1 -1
  170. package/dist/{check-Cv96tY88.js → check-CTe6VejT.js} +1 -1
  171. package/dist/{chevron-down-BwEyjSjd.js → chevron-down-BBThVMu-.js} +1 -1
  172. package/dist/{chevron-up-C6Ye-Nzc.js → chevron-up-iECwf-Bc.js} +1 -1
  173. package/dist/{circle-alert-BLt_gkcU.js → circle-alert-Z_eeykrO.js} +1 -1
  174. package/dist/{clock-D-2BI0Co.js → clock-CEj1c29j.js} +1 -1
  175. package/dist/{cloud-DXFUA8H_.js → cloud-DwJ8ebNl.js} +2 -2
  176. package/dist/{createCloudRuntime-CWPQ7puE.js → createCloudRuntime-CdXQdl34.js} +6 -6
  177. package/dist/{createLucideIcon-DGRWivCX.js → createLucideIcon-DphAT3tw.js} +3 -3
  178. package/dist/{cdn/chunks/de-CYLWugqb.js → de-DbayqpK-.js} +2 -2
  179. package/dist/{dist-DQ_4a0hb.js → dist-9fjN9cuD.js} +2 -2
  180. package/dist/{dist-WE11SQGe.js → dist-BUpBA58N.js} +2 -2
  181. package/dist/{dist-DAR13YWM.js → dist-BdIwIlKz.js} +2 -2
  182. package/dist/{dist-Btz6cFCI.js → dist-BfcqryVg.js} +4 -4
  183. package/dist/{dist-q3Puexqv.js → dist-CaR5TLiM.js} +2 -2
  184. package/dist/{dist-CkSgS-K9.js → dist-CuuPnIMy.js} +3 -3
  185. package/dist/dist-CzMzshfS.js +5 -0
  186. package/dist/{dist-B1kLn1rs.js → dist-CzVIVbSa.js} +90 -85
  187. package/dist/{dist-BIFUEhwQ.js → dist-D2P8U3p6.js} +2 -2
  188. package/dist/{dist-BtPhkQ2u.js → dist-DLaIQ5H5.js} +12 -8
  189. package/dist/{dist-BG2cHdqw.js → dist-DSgmnQ-f.js} +2 -2
  190. package/dist/dist-DTVuNn8M.js +5 -0
  191. package/dist/{dist-CHp21juN.js → dist-DifptC-U.js} +2 -2
  192. package/dist/{dist-BpHkLruF.js → dist-gWM8H2hz.js} +4 -4
  193. package/dist/{dist-BUh4MT4D.js → dist-nmzPlqlz.js} +266 -176
  194. package/dist/{cdn/chunks/en-C3TM249M.js → en-l0ib5X0f.js} +2 -2
  195. package/dist/{es-D1SF4nCR.js → es-CMQ-5PJP.js} +2 -0
  196. package/dist/{extensions-BlYe3NFn.js → extensions-Bjsdx6Vm.js} +18 -18
  197. package/dist/{fr-CdLhJ7kw.js → fr-DNXmZWAq.js} +2 -0
  198. package/dist/{image-up-KRq0lcdU.js → image-up-W1INxCu8.js} +1 -1
  199. package/dist/{info-DbmE2JAo.js → info-5t4WYKfh.js} +1 -1
  200. package/dist/{keys-CAor2T5q.js → keys-BJtoezGU.js} +1 -1
  201. package/dist/{liquid.browser-B-rGrnrQ.js → liquid.browser-CJgDDvQz.js} +1 -1
  202. package/dist/{loader-circle-dSap9DfQ.js → loader-circle-DJCZ_JMY.js} +1 -1
  203. package/dist/{message-circle-qSKKLbac.js → message-circle-Biu6lHh_.js} +1 -1
  204. package/dist/{cdn/chunks/nl-BvsLoyKp.js → nl-BylRRHYJ.js} +2 -2
  205. package/dist/{pencil-DMP8vL2F.js → pencil-DkPlMca7.js} +1 -1
  206. package/dist/{preRenderCustomBlocks-BebjKtmw.js → preRenderCustomBlocks-2KyBJocY.js} +1 -1
  207. package/dist/{pt-BR-CAGS5YXp.js → pt-BR-BVoJhpie.js} +2 -0
  208. package/dist/{refresh-cw-WXtBeMva.js → refresh-cw-DHbpkkol.js} +1 -1
  209. package/dist/{runtime-dom.esm-bundler-CHEsXNQz.js → runtime-dom.esm-bundler-Co_SPqAz.js} +180 -166
  210. package/dist/{scan-line-BTrngVuN.js → scan-line-DojwGzjU.js} +1 -1
  211. package/dist/{send-CLa8Cxmh.js → send-c6ppcE9I.js} +1 -1
  212. package/dist/{shield-check-42WZrKQu.js → shield-check-F9T4ylNK.js} +1 -1
  213. package/dist/{sparkles-DcOb0umz.js → sparkles-D-0OiTZD.js} +1 -1
  214. package/dist/style.css +1 -1
  215. package/dist/templatical-editor.js +1083 -1049
  216. package/dist/{text-align-start-zoZhXJ2T.js → text-align-start-kEEtoRrD.js} +1 -1
  217. package/dist/{trash-2-Capv4cSE.js → trash-2-DRQzhY9R.js} +1 -1
  218. package/dist/{triangle-alert-CnJUGX-6.js → triangle-alert-Bt4-GU3t.js} +1 -1
  219. package/dist/{upload-Bc0ZTywl.js → upload-D2wtjvH8.js} +1 -1
  220. package/dist/{useAliveFlag-1yBub211.js → useAliveFlag-AFbwfHlJ.js} +1 -1
  221. package/dist/{useCloudI18n-Dwo7usTl.js → useCloudI18n-BA69BpQ_.js} +2 -2
  222. package/dist/{useEditorCore-CIjO_NM9.js → useEditorCore-Du9Vx-qr.js} +873 -878
  223. package/dist/{useEditorRoot-CUIzpMYc.js → useEditorRoot-Cdo8Vhxa.js} +2 -2
  224. package/dist/{useI18n-DT_DKupw.js → useI18n-B135ASaG.js} +2 -2
  225. package/dist/{useMergeTag-CcHQCcPN.js → useMergeTag-Cx36rtrt.js} +5 -5
  226. package/dist/{usePopoverPosition-DaHz1kqb.js → usePopoverPosition-DAOHr_iM.js} +2 -2
  227. package/dist/{useScrollToBlock-C2-9xCr7.js → useScrollToBlock-B0Qpjfa4.js} +3 -3
  228. package/dist/{vue.runtime.esm-bundler-CdH_W9qX.js → vue.runtime.esm-bundler-BhOUdXMi.js} +1244 -1204
  229. package/dist/{x-CvPZ3OAd.js → x-YiG-TUGN.js} +1 -1
  230. package/package.json +25 -25
  231. package/dist/cdn/chunks/NumberWithSuffix-CWvM_I3T.js.map +0 -1
  232. package/dist/cdn/chunks/ca-DY0AYOLG.js.map +0 -1
  233. package/dist/cdn/chunks/draggable-BLMjz0GK.js.map +0 -1
  234. package/dist/cdn/chunks/en-BZlZVGwM.js +0 -2
  235. package/dist/cdn/chunks/en-C3TM249M.js.map +0 -1
  236. package/dist/cdn/chunks/es-D1SF4nCR.js.map +0 -1
  237. package/dist/cdn/chunks/fr-CdLhJ7kw.js.map +0 -1
  238. package/dist/cdn/chunks/icons-C2kP4vOJ.js.map +0 -1
  239. package/dist/cdn/chunks/nl-BvsLoyKp.js.map +0 -1
  240. package/dist/cdn/chunks/pt-BR-CAGS5YXp.js.map +0 -1
  241. package/dist/cdn/chunks/src-B_QJduQD.js.map +0 -1
  242. package/dist/cdn/chunks/src-CnQgwcsc.js.map +0 -1
  243. package/dist/cdn/chunks/tiptap-DOw5Yb4H.js.map +0 -1
  244. package/dist/cdn/chunks/useEditorRoot-BY-amddA.js +0 -10
  245. package/dist/dist-CCfNhI54.js +0 -5
  246. package/dist/dist-CMcNDUcw.js +0 -5
@@ -1,36 +1,36 @@
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, W as p, X as m, Y as h, Z as g, at as _, b as v, c as y, ct as b, et as x, f as S, g as C, h as w, it as T, j as E, k as D, l as O, lt as k, m as A, ot as j, p as M, q as N, rt as P, s as F, t as I, u as L, ut as R, w as z, x as B, y as V } from "./draggable-BLMjz0GK.js";
2
- import { A as ee, B as te, C as ne, D as re, E as ie, F as ae, H as oe, I as se, L as H, M as ce, N as le, O as ue, P as de, R as fe, S as pe, T as me, _ as he, a as ge, b as _e, d as ve, et as ye, f as be, g as xe, h as Se, i as U, j as Ce, k as we, l as Te, m as Ee, n as De, o as Oe, p as ke, r as Ae, s as je, t as W, tt as Me, u as Ne, w as Pe, z as Fe } from "./src-B_QJduQD.js";
3
- import { _ as Ie, h as Le, v as Re, y as ze } from "./dist-eKG4m5Wx.js";
4
- import { a as G, c as Be, i as Ve, r as He } from "./dist-2fOlspdg.js";
5
- import { A as Ue, B as We, C as Ge, D as Ke, E as qe, F as Je, H as Ye, I as Xe, M as Ze, N as Qe, O as $e, P as et, S as tt, T as K, U as q, V as nt, W as rt, _ as it, a as at, b as ot, c as st, d as ct, f as lt, g as ut, h as J, j as dt, k as ft, m as pt, n as mt, o as ht, p as gt, r as _t, s as vt, u as yt, v as bt, w as xt, x as St, y as Ct, z as wt } from "./keys-D7OpfE2s.js";
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, W as p, X as m, Y as h, Z as g, at as _, b as v, c as y, ct as b, et as x, f as S, g as C, h as w, it as T, j as E, k as D, l as O, lt as k, m as A, ot as j, p as M, q as N, rt as P, s as F, t as I, u as L, ut as R, w as z, x as B, y as V } from "./draggable-D2vo-aQI.js";
2
+ import { A as ee, B as te, C as ne, D as re, E as ie, F as ae, H as oe, I as se, L as H, M as ce, N as le, O as ue, P as de, R as fe, S as pe, T as me, _ as he, a as ge, b as _e, d as ve, et as ye, f as be, g as xe, h as Se, i as U, j as Ce, k as we, l as Te, m as Ee, n as De, nt as Oe, o as ke, p as Ae, r as je, s as Me, t as W, tt as Ne, u as Pe, w as Fe, z as Ie } from "./src-BD60gqPW.js";
3
+ import { _ as Le, h as Re, v as ze, y as Be } from "./dist-CgR3inPR.js";
4
+ import { a as G, c as Ve, i as He, r as Ue } from "./dist-El3fQnfk.js";
5
+ import { A as We, B as Ge, C as Ke, D as qe, E as Je, F as Ye, H as Xe, I as Ze, M as Qe, N as $e, O as et, P as tt, S as nt, T as K, U as q, V as rt, W as it, _ as at, a as ot, b as st, c as ct, d as lt, f as ut, g as dt, h as J, j as ft, k as pt, m as mt, n as ht, o as gt, p as _t, r as vt, s as yt, u as bt, v as xt, w as St, x as Ct, y as wt, z as Tt } from "./keys-BJ770Mwm.js";
6
6
  import "./timeouts-DHPZQ0G3.js";
7
- import { t as Y } from "./useI18n-DYb1SgLB.js";
7
+ import { t as Y } from "./useI18n-DIhawILp.js";
8
8
  import { t as X } from "./logger-ByvdoAwq.js";
9
- import { a as Tt, i as Et, o as Dt, r as Z, t as Ot } from "./usePopoverPosition-CJZ6EkS4.js";
10
- import { A as kt, Bt as At, Et as jt, H as Mt, Ot as Nt, Tt as Pt, X as Ft, d as It, ft as Lt, ht as Rt, it as zt, o as Bt, s as Vt, tt as Ht, u as Ut, v as Wt, vt as Gt, zt as Kt } from "./icons-C2kP4vOJ.js";
11
- import { t as qt } from "./LoadingTrack-D_wweXVz.js";
12
- import { t as Jt } from "./_plugin-vue_export-helper-B3ysoDQm.js";
13
- import { t as Yt } from "./useEditorRoot-BY-amddA.js";
14
- import "./useCloudI18n-D4gzxtqF.js";
15
- import { t as Q } from "./useMergeTag-D-SE_XN8.js";
16
- import { t as Xt } from "./useAliveFlag-C1pwLtPO.js";
9
+ import { a as Et, i as Dt, o as Ot, r as Z, t as kt } from "./usePopoverPosition-DkiTLnBm.js";
10
+ import { A as At, Bt as jt, Et as Mt, H as Nt, Ot as Pt, Tt as Ft, X as It, d as Lt, ft as Rt, ht as zt, it as Bt, o as Vt, s as Ht, tt as Ut, u as Wt, v as Gt, vt as Kt, zt as qt } from "./icons-BTdLXRXn.js";
11
+ import { t as Jt } from "./LoadingTrack-Cz1sT0wP.js";
12
+ import { t as Yt } from "./_plugin-vue_export-helper-B3ysoDQm.js";
13
+ import { t as Xt } from "./useEditorRoot-BFGRBGts.js";
14
+ import "./useCloudI18n-D0AoLV0a.js";
15
+ import { t as Q } from "./useMergeTag-lWo7So18.js";
16
+ import { t as Zt } from "./useAliveFlag-DrXxPV8V.js";
17
17
  //#region ../core/src/error-reporting.ts
18
- function Zt(e) {
18
+ function Qt(e) {
19
19
  return e instanceof Error ? e : Error(String(e), { cause: e });
20
20
  }
21
- function Qt(e, t) {
21
+ function $t(e, t) {
22
22
  try {
23
23
  t();
24
24
  } catch (t) {
25
- e?.(Zt(t));
25
+ e?.(Qt(t));
26
26
  }
27
27
  }
28
28
  //#endregion
29
29
  //#region ../core/src/editor.ts
30
- function $t(e) {
30
+ function en(e) {
31
31
  return e === "1" ? 1 : e === "3" ? 3 : 2;
32
32
  }
33
- function en(e) {
33
+ function tn(e) {
34
34
  let t = m({
35
35
  template: null,
36
36
  content: e.content ?? fe(e.defaultFontFamily, e.templateDefaults),
@@ -128,7 +128,7 @@ function en(e) {
128
128
  if (l(n)) return;
129
129
  let r = o(t.content.blocks, n);
130
130
  if (r && r.type === "section") {
131
- if (i < 0 || i >= $t(r.columns)) return;
131
+ if (i < 0 || i >= en(r.columns)) return;
132
132
  r.children[i] = r.children[i] || [];
133
133
  let t = r.children[i];
134
134
  a !== void 0 && a < t.length ? t.splice(a, 0, e) : t.push(e);
@@ -161,7 +161,7 @@ function en(e) {
161
161
  let d;
162
162
  if (i) {
163
163
  let e = o(t.content.blocks, i);
164
- if (!e || e.type !== "section" || a < 0 || a >= $t(e.columns)) return;
164
+ if (!e || e.type !== "section" || a < 0 || a >= en(e.columns)) return;
165
165
  e.children[a] = e.children[a] || [], d = e.children[a];
166
166
  } else d = t.content.blocks;
167
167
  let [f] = s.blocks.splice(u, 1);
@@ -174,7 +174,7 @@ function en(e) {
174
174
  throw new W(`[Templatical] Templates: ${e} ${t}`);
175
175
  }
176
176
  function D(t) {
177
- Qt(e.onError, t);
177
+ $t(e.onError, t);
178
178
  }
179
179
  function O(t) {
180
180
  let { templates: n } = e;
@@ -274,9 +274,9 @@ function en(e) {
274
274
  }
275
275
  //#endregion
276
276
  //#region ../core/src/history.ts
277
- var tn = 50, nn = 300, rn = 1500;
278
- function an(e) {
279
- let { content: t, setContent: n, isRemoteOperation: r, maxSize: i = tn } = e, a = l([]), o = l([]), s = l(!1), c = null, u = null, d = p(() => a.value.length > 0), f = p(() => o.value.length > 0);
277
+ var nn = 50, rn = 300, an = 1500;
278
+ function on(e) {
279
+ let { content: t, setContent: n, isRemoteOperation: r, maxSize: i = nn } = e, a = l([]), o = l([]), s = l(!1), c = null, u = null, d = p(() => a.value.length > 0), f = p(() => o.value.length > 0);
280
280
  function m() {
281
281
  return _e(t.value);
282
282
  }
@@ -294,21 +294,21 @@ function an(e) {
294
294
  if (u && u.blockId === e) {
295
295
  clearTimeout(u.timeoutId), u.timeoutId = setTimeout(() => {
296
296
  u = null;
297
- }, nn);
297
+ }, rn);
298
298
  return;
299
299
  }
300
300
  g(), h(m()), o.value = [], u = {
301
301
  blockId: e,
302
302
  timeoutId: setTimeout(() => {
303
303
  u = null;
304
- }, nn)
304
+ }, rn)
305
305
  };
306
306
  }
307
307
  }
308
308
  function y() {
309
309
  s.value = !0, c && clearTimeout(c), c = setTimeout(() => {
310
310
  s.value = !1, c = null;
311
- }, rn);
311
+ }, an);
312
312
  }
313
313
  function b() {
314
314
  if (a.value.length === 0) return;
@@ -342,7 +342,7 @@ function an(e) {
342
342
  }
343
343
  //#endregion
344
344
  //#region ../core/src/block-actions.ts
345
- function on(e) {
345
+ function sn(e) {
346
346
  e.type === "table" ? e.rows = e.rows.map((e) => ({
347
347
  ...e,
348
348
  id: H(),
@@ -358,7 +358,7 @@ function on(e) {
358
358
  id: H()
359
359
  })));
360
360
  }
361
- function sn(e) {
361
+ function cn(e) {
362
362
  let { addBlock: t, removeBlock: n, updateBlock: r, selectBlock: i, findBlockLocation: a } = e;
363
363
  function o(n, r, a) {
364
364
  let o = pe(n, e.blockDefaults);
@@ -366,9 +366,9 @@ function sn(e) {
366
366
  }
367
367
  function s(e, n, r) {
368
368
  let o = JSON.parse(JSON.stringify(e));
369
- if (o.id = H(), on(o), o.type === "section" && (o.children = o.children.map((e) => e.map((e) => {
369
+ if (o.id = H(), sn(o), o.type === "section" && (o.children = o.children.map((e) => e.map((e) => {
370
370
  let t = JSON.parse(JSON.stringify(e));
371
- return t.id = H(), on(t), t;
371
+ return t.id = H(), sn(t), t;
372
372
  }))), n !== void 0 || r !== void 0) t(o, n, r);
373
373
  else {
374
374
  let i = a?.(e.id) ?? null;
@@ -391,9 +391,9 @@ function sn(e) {
391
391
  }
392
392
  //#endregion
393
393
  //#region ../core/src/auto-save.ts
394
- var cn = 2e3;
395
- function ln(e) {
396
- let { content: t, isDirty: n, onChange: r, debounce: i = cn, enabled: a = !0 } = e, o = null, s = !1;
394
+ var ln = 2e3;
395
+ function un(e) {
396
+ let { content: t, isDirty: n, onChange: r, debounce: i = ln, enabled: a = !0 } = e, o = null, s = !1;
397
397
  function c() {
398
398
  return typeof a == "function" ? a() : a;
399
399
  }
@@ -430,7 +430,7 @@ function ln(e) {
430
430
  }
431
431
  //#endregion
432
432
  //#region ../core/src/condition-preview.ts
433
- function un(e) {
433
+ function dn(e) {
434
434
  let t = m(/* @__PURE__ */ new Set()), n = p(() => t.size > 0);
435
435
  function r(e) {
436
436
  return t.has(e);
@@ -450,7 +450,7 @@ function un(e) {
450
450
  }
451
451
  //#endregion
452
452
  //#region ../core/src/data-source-fetch.ts
453
- function dn(e) {
453
+ function fn(e) {
454
454
  let t = l(!1), n = l(!1), r = p(() => !!e.definition.value?.dataSource), i = p(() => r.value && !e.block.value.dataSourceFetched);
455
455
  async function a() {
456
456
  let r = e.definition.value;
@@ -482,7 +482,7 @@ function dn(e) {
482
482
  }
483
483
  //#endregion
484
484
  //#region ../core/src/history-interceptor.ts
485
- function fn(e, t) {
485
+ function pn(e, t) {
486
486
  let n = e.addBlock, r = e.removeBlock, i = e.moveBlock, a = e.updateBlock, o = e.updateSettings;
487
487
  e.addBlock = (r, i, a, o) => {
488
488
  i && e.isBlockLocked(i) || (t.record(), n(r, i, a, o));
@@ -498,7 +498,7 @@ function fn(e, t) {
498
498
  }
499
499
  //#endregion
500
500
  //#region ../core/src/saved-blocks.ts
501
- function pn(e) {
501
+ function mn(e) {
502
502
  let { provider: t } = e, n = l([]), r = l(!1), i = S(() => {
503
503
  let e = /* @__PURE__ */ new Set();
504
504
  for (let t of n.value) {
@@ -517,7 +517,7 @@ function pn(e) {
517
517
  throw new W(`[Templatical] Saved blocks: ${e} is ${t}. Check the capability before calling — the editor's own UI hides the action.`);
518
518
  }
519
519
  function f(t) {
520
- Qt(e.onError, t);
520
+ $t(e.onError, t);
521
521
  }
522
522
  async function p(i) {
523
523
  r.value = !0;
@@ -586,9 +586,9 @@ function pn(e) {
586
586
  }
587
587
  //#endregion
588
588
  //#region ../core/src/saved-blocks-local.ts
589
- var mn = "templatical:saved-blocks";
590
- function hn(e = {}) {
591
- let t = e.key ?? mn;
589
+ var hn = "templatical:saved-blocks";
590
+ function gn(e = {}) {
591
+ let t = e.key ?? hn;
592
592
  function n() {
593
593
  if (typeof localStorage > "u") throw Error("[Templatical] createLocalStorageSavedBlocksProvider requires a browser environment with localStorage. Supply your own SavedBlocksProvider for server-side or non-browser use.");
594
594
  return localStorage;
@@ -641,7 +641,7 @@ function hn(e = {}) {
641
641
  }
642
642
  //#endregion
643
643
  //#region ../core/src/version-history.ts
644
- function gn(e) {
644
+ function _n(e) {
645
645
  let { provider: t, getTemplateId: n } = e, r = l([]), i = l(!1), a = l(void 0), o = l(!1), s = /* @__PURE__ */ new Map(), c = S(() => typeof t.create == "function"), u = S(() => typeof t.restore == "function");
646
646
  function d(e) {
647
647
  let t = n();
@@ -652,7 +652,7 @@ function gn(e) {
652
652
  throw new W(`[Templatical] Version history: ${e} is disabled by the provider. Check the capability before calling — the editor's own UI hides the action.`);
653
653
  }
654
654
  function p(t) {
655
- Qt(e.onError, t);
655
+ $t(e.onError, t);
656
656
  }
657
657
  async function m(n) {
658
658
  let o = d("list");
@@ -721,7 +721,7 @@ function gn(e) {
721
721
  }
722
722
  //#endregion
723
723
  //#region ../core/src/comments.ts
724
- function _n(e) {
724
+ function vn(e) {
725
725
  let { provider: t, getTemplateId: n, getUser: r } = e, i = l([]), a = l(!1), o = l(!1), s = S(() => typeof t.create == "function"), c = S(() => typeof t.update == "function"), u = S(() => typeof t.delete == "function"), d = S(() => typeof t.setResolved == "function"), f = S(() => i.value.reduce((e, t) => e + 1 + (t.replies?.length ?? 0), 0)), p = S(() => i.value.filter((e) => !e.resolvedAt).length), m = S(() => {
726
726
  let e = /* @__PURE__ */ new Map();
727
727
  for (let t of i.value) t.blockId && e.set(t.blockId, (e.get(t.blockId) ?? 0) + 1 + (t.replies?.length ?? 0));
@@ -752,11 +752,11 @@ function _n(e) {
752
752
  return t !== null && e.author.id === t.id;
753
753
  }
754
754
  function b(t) {
755
- let n = Zt(t);
755
+ let n = Qt(t);
756
756
  throw e.onError?.(n), n;
757
757
  }
758
758
  function x(t) {
759
- Qt(e.onError, t);
759
+ $t(e.onError, t);
760
760
  }
761
761
  function C(e, t, n) {
762
762
  return [
@@ -896,7 +896,7 @@ function _n(e) {
896
896
  applyRemoteDelete: P
897
897
  };
898
898
  }
899
- function vn(e) {
899
+ function yn(e) {
900
900
  let { comments: n, provider: r, getTemplateId: i } = e, { subscribe: a } = r;
901
901
  if (typeof a != "function") return;
902
902
  let o = null;
@@ -919,18 +919,18 @@ function vn(e) {
919
919
  }
920
920
  //#endregion
921
921
  //#region src/utils/activeEditorTracker.ts
922
- var yn = /* @__PURE__ */ new Set(), $ = 0, bn = 0;
923
- function xn() {
924
- let e = ++bn;
925
- return yn.add(e), $ === 0 && ($ = e), {
922
+ var bn = /* @__PURE__ */ new Set(), $ = 0, xn = 0;
923
+ function Sn() {
924
+ let e = ++xn;
925
+ return bn.add(e), $ === 0 && ($ = e), {
926
926
  id: e,
927
- isActive: () => yn.size <= 1 || $ === e,
927
+ isActive: () => bn.size <= 1 || $ === e,
928
928
  claim: () => {
929
929
  $ = e;
930
930
  },
931
931
  dispose: () => {
932
- if (yn.delete(e), $ === e) {
933
- let e = Array.from(yn);
932
+ if (bn.delete(e), $ === e) {
933
+ let e = Array.from(bn);
934
934
  $ = e[e.length - 1] ?? 0;
935
935
  }
936
936
  }
@@ -938,8 +938,8 @@ function xn() {
938
938
  }
939
939
  //#endregion
940
940
  //#region src/composables/usePreviewResolution.ts
941
- var Sn = 500;
942
- function Cn(e) {
941
+ var Cn = 500;
942
+ function wn(e) {
943
943
  let n = typeof e.resolvePreview == "function", r = l(null), i = l(!1), a = l(!1), o = 0, s = null;
944
944
  function c() {
945
945
  s !== null && (clearTimeout(s), s = null);
@@ -976,7 +976,7 @@ function Cn(e) {
976
976
  }
977
977
  s = setTimeout(() => {
978
978
  s = null, u();
979
- }, Sn);
979
+ }, Cn);
980
980
  }
981
981
  }
982
982
  return t(() => [e.isActive(), e.getRecipient?.()], ([e]) => {
@@ -998,7 +998,7 @@ function Cn(e) {
998
998
  }
999
999
  //#endregion
1000
1000
  //#region src/composables/useImageUrlResolver.ts
1001
- function wn(e) {
1001
+ function Tn(e) {
1002
1002
  let t = m(/* @__PURE__ */ new Map()), n = /* @__PURE__ */ new Set();
1003
1003
  function r(e) {
1004
1004
  return t.get(e);
@@ -1031,8 +1031,8 @@ function wn(e) {
1031
1031
  lookup: a
1032
1032
  };
1033
1033
  }
1034
- function Tn(e) {
1035
- let r = n(ot, null), i = S(e);
1034
+ function En(e) {
1035
+ let r = n(st, null), i = S(e);
1036
1036
  if (!r) return i;
1037
1037
  let a;
1038
1038
  function s() {
@@ -1061,7 +1061,7 @@ function Tn(e) {
1061
1061
  }
1062
1062
  //#endregion
1063
1063
  //#region src/composables/useMergeTagPicker.ts
1064
- function En() {
1064
+ function Dn() {
1065
1065
  let e = l(!1), t = l([]), n = null;
1066
1066
  function r(r) {
1067
1067
  if (n) {
@@ -1091,7 +1091,7 @@ function En() {
1091
1091
  }
1092
1092
  //#endregion
1093
1093
  //#region src/composables/useLogicTagPicker.ts
1094
- function Dn() {
1094
+ function On() {
1095
1095
  let e = l(!1), t = l([]), n = l([]), r = null;
1096
1096
  function i(i, a) {
1097
1097
  if (r) {
@@ -1122,17 +1122,17 @@ function Dn() {
1122
1122
  }
1123
1123
  //#endregion
1124
1124
  //#region src/composables/useTemplateLint.ts
1125
- function On(e) {
1125
+ function kn(e) {
1126
1126
  return e ? e.disabled === !0 || e.accessibility === !1 && e.structure === !1 && e.links === !1 : !1;
1127
1127
  }
1128
- function kn(e) {
1129
- let n = l([]), r = l(!1), i = l(!1), a = x(null), o = On(e.options), s = null, c = !1;
1128
+ function An(e) {
1129
+ let n = l([]), r = l(!1), i = l(!1), a = x(null), o = kn(e.options), s = null, c = !1;
1130
1130
  o || u();
1131
1131
  async function u() {
1132
1132
  try {
1133
- let t = await import("./src-Cx70q30o.js");
1133
+ let t = await import("./src-6J-yyZoD.js");
1134
1134
  if (c) return;
1135
- a.value = { lintTemplate: t.lintTemplate }, r.value = !0, d(), s = ze(e.content, d, {
1135
+ a.value = { lintTemplate: t.lintTemplate }, r.value = !0, d(), s = Be(e.content, d, {
1136
1136
  debounce: e.debounce ?? 500,
1137
1137
  deep: !0
1138
1138
  });
@@ -1167,17 +1167,17 @@ function kn(e) {
1167
1167
  }
1168
1168
  //#endregion
1169
1169
  //#region src/utils/blockTypeLabels.ts
1170
- function An(e, t) {
1170
+ function jn(e, t) {
1171
1171
  return t.blocks[e] ?? e;
1172
1172
  }
1173
- function jn(e, t, n = []) {
1174
- if (e.type !== "custom") return An(e.type, t);
1173
+ function Mn(e, t, n = []) {
1174
+ if (e.type !== "custom") return jn(e.type, t);
1175
1175
  let { customType: r } = e;
1176
1176
  return n.find((e) => e.type === r)?.name ?? r;
1177
1177
  }
1178
1178
  //#endregion
1179
1179
  //#region src/composables/useKeyboardReorder.ts
1180
- function Mn(e, t, n = []) {
1180
+ function Nn(e, t, n = []) {
1181
1181
  let r = l(null), i = l(""), a = null;
1182
1182
  function o(t) {
1183
1183
  let n = e.content.value.blocks, r = n.findIndex((e) => e.id === t);
@@ -1204,7 +1204,7 @@ function Mn(e, t, n = []) {
1204
1204
  let i = o(r);
1205
1205
  if (!i) return "";
1206
1206
  let a = (i.sectionId ? c(i.sectionId, i.columnIndex ?? 0) : e.content.value.blocks)?.[i.index];
1207
- return a ? jn(a, t.t, n) : "";
1207
+ return a ? Mn(a, t.t, n) : "";
1208
1208
  }
1209
1209
  function c(t, n) {
1210
1210
  return e.content.value.blocks.find((e) => e.id === t && e.type === "section")?.children[n] ?? null;
@@ -1273,13 +1273,13 @@ function Mn(e, t, n = []) {
1273
1273
  }
1274
1274
  //#endregion
1275
1275
  //#region src/composables/useUiTheme.ts
1276
- function Nn(e) {
1277
- let t = Be("(prefers-color-scheme: dark)");
1276
+ function Pn(e) {
1277
+ let t = Ve("(prefers-color-scheme: dark)");
1278
1278
  return { resolvedTheme: S(() => e.value === "auto" ? t.value ? "dark" : "light" : e.value) };
1279
1279
  }
1280
1280
  //#endregion
1281
1281
  //#region src/composables/useThemeStyles.ts
1282
- var Pn = {
1282
+ var Fn = {
1283
1283
  bg: "--tpl-bg",
1284
1284
  bgElevated: "--tpl-bg-elevated",
1285
1285
  bgHover: "--tpl-bg-hover",
@@ -1303,10 +1303,10 @@ var Pn = {
1303
1303
  dangerLight: "--tpl-danger-light",
1304
1304
  canvasBg: "--tpl-canvas-bg"
1305
1305
  };
1306
- function Fn({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1306
+ function In({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1307
1307
  return { themeStyles: S(() => {
1308
1308
  let r = {}, i = e.value, a = t.value === "dark" ? i.dark : i;
1309
- if (a) for (let [e, t] of Object.entries(Pn)) {
1309
+ if (a) for (let [e, t] of Object.entries(Fn)) {
1310
1310
  let n = a[e];
1311
1311
  n && (r[t] = n);
1312
1312
  }
@@ -1315,7 +1315,7 @@ function Fn({ themeOverrides: e, resolvedTheme: t, extraStyles: n }) {
1315
1315
  }
1316
1316
  //#endregion
1317
1317
  //#region src/composables/useBlockRegistry.ts
1318
- function In() {
1318
+ function Ln() {
1319
1319
  let e = x(/* @__PURE__ */ new Map());
1320
1320
  function t(t, n) {
1321
1321
  e.value.set(t, n), T(e);
@@ -1349,7 +1349,7 @@ function In() {
1349
1349
  let t = a(e.customType);
1350
1350
  if (!t) return o("Block definition not found");
1351
1351
  try {
1352
- let { Liquid: n } = await import("./liquid.browser-UlAOKBjI.js");
1352
+ let { Liquid: n } = await import("./liquid.browser-BPvKXNfO.js");
1353
1353
  return await new n({
1354
1354
  strictVariables: !1,
1355
1355
  strictFilters: !1
@@ -1373,9 +1373,9 @@ function In() {
1373
1373
  }
1374
1374
  //#endregion
1375
1375
  //#region src/composables/useCustomBlockStylesheets.ts
1376
- function Ln(e, t) {
1376
+ function Rn(e, t) {
1377
1377
  return S(() => {
1378
- let n = Rn(e.value.blocks);
1378
+ let n = zn(e.value.blocks);
1379
1379
  if (n.size === 0) return [];
1380
1380
  let r = /* @__PURE__ */ new Set(), i = [];
1381
1381
  for (let e of n) {
@@ -1387,11 +1387,11 @@ function Ln(e, t) {
1387
1387
  return i;
1388
1388
  });
1389
1389
  }
1390
- function Rn(e) {
1390
+ function zn(e) {
1391
1391
  let t = /* @__PURE__ */ new Set();
1392
- return zn(e, t), t;
1392
+ return Bn(e, t), t;
1393
1393
  }
1394
- function zn(e, t) {
1394
+ function Bn(e, t) {
1395
1395
  for (let n of e) {
1396
1396
  if (oe(n)) {
1397
1397
  t.add(n.customType);
@@ -1400,13 +1400,13 @@ function zn(e, t) {
1400
1400
  if (n.type === "section") {
1401
1401
  let e = n.children;
1402
1402
  if (!e) continue;
1403
- for (let n of e) zn(n, t);
1403
+ for (let n of e) Bn(n, t);
1404
1404
  }
1405
1405
  }
1406
1406
  }
1407
1407
  //#endregion
1408
1408
  //#region src/utils/registerBuiltInBlocks.ts
1409
- var Bn = [
1409
+ var Vn = [
1410
1410
  {
1411
1411
  type: "section",
1412
1412
  createBlock: Ce
@@ -1457,11 +1457,11 @@ var Bn = [
1457
1457
  },
1458
1458
  {
1459
1459
  type: "countdown",
1460
- createBlock: Pe
1460
+ createBlock: Fe
1461
1461
  }
1462
1462
  ];
1463
- function Vn(e, t) {
1464
- for (let n of Bn) {
1463
+ function Hn(e, t) {
1464
+ for (let n of Vn) {
1465
1465
  let r = t[n.type];
1466
1466
  r && e.registerBuiltIn(n.type, {
1467
1467
  component: r,
@@ -1471,23 +1471,23 @@ function Vn(e, t) {
1471
1471
  }
1472
1472
  //#endregion
1473
1473
  //#region src/utils/resolveHtmlBlockPreview.ts
1474
- function Hn(e) {
1474
+ function Un(e) {
1475
1475
  return typeof e == "boolean" ? e : e?.enabled ?? !1;
1476
1476
  }
1477
1477
  //#endregion
1478
1478
  //#region src/utils/collectOffPaletteDefaults.ts
1479
- function Un(e) {
1479
+ function Wn(e) {
1480
1480
  return typeof e == "object" && !!e && !Array.isArray(e);
1481
1481
  }
1482
- function Wn(e, t, n) {
1482
+ function Gn(e, t, n) {
1483
1483
  let r = new Set(e.map((e) => Z(e))), i = [], a = (e, t) => {
1484
- for (let [n, o] of Object.entries(e)) typeof o == "string" ? o !== "" && /color$/i.test(n) && !r.has(Z(o)) && i.push(`${t}.${n}: ${o}`) : Un(o) && a(o, `${t}.${n}`);
1484
+ for (let [n, o] of Object.entries(e)) typeof o == "string" ? o !== "" && /color$/i.test(n) && !r.has(Z(o)) && i.push(`${t}.${n}: ${o}`) : Wn(o) && a(o, `${t}.${n}`);
1485
1485
  }, o = t;
1486
- for (let [e, t] of Object.entries(Fe)) {
1486
+ for (let [e, t] of Object.entries(Ie)) {
1487
1487
  let n = o?.[e];
1488
1488
  a({
1489
1489
  ...t,
1490
- ...Un(n) ? n : {}
1490
+ ...Wn(n) ? n : {}
1491
1491
  }, e);
1492
1492
  }
1493
1493
  return a({
@@ -1497,8 +1497,8 @@ function Wn(e, t, n) {
1497
1497
  }
1498
1498
  //#endregion
1499
1499
  //#region src/utils/resolveFieldColors.ts
1500
- function Gn(e, t) {
1501
- let n = Dt({ presets: e.presets }, Tt), r = n.presets.length === 0;
1500
+ function Kn(e, t) {
1501
+ let n = Ot({ presets: e.presets }, Et), r = n.presets.length === 0;
1502
1502
  return {
1503
1503
  presets: r ? t.presets : n.presets,
1504
1504
  allowCustom: t.allowCustom === !1 ? !1 : e.allowCustom ?? t.allowCustom,
@@ -1510,9 +1510,9 @@ function Gn(e, t) {
1510
1510
  }
1511
1511
  //#endregion
1512
1512
  //#region src/utils/collectColorFieldIssues.ts
1513
- function Kn(e, t) {
1513
+ function qn(e, t) {
1514
1514
  let n = [], r = (r, i) => {
1515
- let a = Gn(r, t), o = `custom block "${e.type}" field "${i}"`, s = (t) => `${e.type}:${i}:${t}`;
1515
+ let a = Kn(r, t), o = `custom block "${e.type}" field "${i}"`, s = (t) => `${e.type}:${i}:${t}`;
1516
1516
  if (a.invalidPresets.length > 0 && n.push({
1517
1517
  id: s("invalid-presets"),
1518
1518
  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." : "")
@@ -1536,7 +1536,7 @@ function Kn(e, t) {
1536
1536
  }
1537
1537
  //#endregion
1538
1538
  //#region src/utils/keyboardShortcuts.ts
1539
- function qn(e) {
1539
+ function Jn(e) {
1540
1540
  for (let t of e.composedPath()) {
1541
1541
  if (!(t instanceof HTMLElement)) continue;
1542
1542
  if (t.isContentEditable) return !0;
@@ -1545,18 +1545,18 @@ function qn(e) {
1545
1545
  }
1546
1546
  return !1;
1547
1547
  }
1548
- function Jn(e, t) {
1548
+ function Yn(e, t) {
1549
1549
  let n = e.metaKey || e.ctrlKey;
1550
1550
  if (n && e.key.toLowerCase() === "s") {
1551
1551
  e.preventDefault(), t.onSave?.();
1552
1552
  return;
1553
1553
  }
1554
1554
  if (n && e.key.toLowerCase() === "z") {
1555
- if (qn(e)) return;
1555
+ if (Jn(e)) return;
1556
1556
  e.preventDefault(), e.shiftKey ? t.history.redo() : (t.onBeforeUndo?.(), t.history.undo());
1557
1557
  return;
1558
1558
  }
1559
- if (t.isPicking?.() && !qn(e)) {
1559
+ if (t.isPicking?.() && !Jn(e)) {
1560
1560
  if (e.key === "Escape") {
1561
1561
  e.preventDefault(), t.onCancelPick?.();
1562
1562
  return;
@@ -1574,11 +1574,11 @@ function Jn(e, t) {
1574
1574
  t.selectBlock(null);
1575
1575
  return;
1576
1576
  }
1577
- (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !qn(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
1577
+ (e.key === "Delete" || e.key === "Backspace") && t.getSelectedBlockId() && !Jn(e) && (e.preventDefault(), t.history.record(), t.removeBlock(t.getSelectedBlockId()));
1578
1578
  }
1579
1579
  //#endregion
1580
1580
  //#region src/utils/mergeTagLabelSegments.ts
1581
- function Yn(e, t, n, r = !1) {
1581
+ function Xn(e, t, n, r = !1) {
1582
1582
  if (!e) return [];
1583
1583
  let i = RegExp(`(${n.value.source}|${n.logic.source})`, "g"), a = [], o = 0, s;
1584
1584
  for (; (s = i.exec(e)) !== null;) {
@@ -1588,10 +1588,10 @@ function Yn(e, t, n, r = !1) {
1588
1588
  });
1589
1589
  let i = s[0];
1590
1590
  if (be(i, n)) {
1591
- let e = r ? je(i, t) : void 0;
1591
+ let e = r ? Me(i, t) : void 0;
1592
1592
  a.push(e === void 0 ? {
1593
1593
  type: "tag",
1594
- value: Oe(i, t)
1594
+ value: ke(i, t)
1595
1595
  } : {
1596
1596
  type: "text",
1597
1597
  value: e
@@ -1612,20 +1612,20 @@ function Yn(e, t, n, r = !1) {
1612
1612
  }
1613
1613
  //#endregion
1614
1614
  //#region src/components/MergeTagPreviewText.vue
1615
- var Xn = d({
1615
+ var Zn = d({
1616
1616
  name: "MergeTagPreviewText",
1617
1617
  props: { text: {
1618
1618
  type: String,
1619
1619
  required: !0
1620
1620
  } },
1621
1621
  setup(e) {
1622
- let t = n(K, []), r = n(ft, Ae.liquid), i = n(q, null), a = S(() => Yn(e.text, t, r, i?.value ?? !1));
1622
+ let t = n(K, []), r = n(pt, je.liquid), i = n(q, null), a = S(() => Xn(e.text, t, r, i?.value ?? !1));
1623
1623
  return () => a.value.map((e, t) => e.type === "tag" ? z("span", {
1624
1624
  key: t,
1625
1625
  class: "tpl-merge-tag-label"
1626
1626
  }, e.value) : e.value);
1627
1627
  }
1628
- }), Zn = ["href"], Qn = /* @__PURE__ */ d({
1628
+ }), Qn = ["href"], $n = /* @__PURE__ */ d({
1629
1629
  __name: "ButtonBlock",
1630
1630
  props: {
1631
1631
  block: {},
@@ -1651,13 +1651,13 @@ var Xn = d({
1651
1651
  style: k(n.value),
1652
1652
  class: "tpl:cursor-default",
1653
1653
  onClick: i[0] ||= O(() => {}, ["prevent"])
1654
- }, [v(Xn, { text: e.block.text }, null, 8, ["text"])], 12, Zn)], 4));
1654
+ }, [v(Zn, { text: e.block.text }, null, 8, ["text"])], 12, Qn)], 4));
1655
1655
  }
1656
- }), $n = ["innerHTML"], er = [
1656
+ }), er = ["innerHTML"], tr = [
1657
1657
  "src",
1658
1658
  "width",
1659
1659
  "height"
1660
- ], tr = /* @__PURE__ */ d({
1660
+ ], nr = /* @__PURE__ */ d({
1661
1661
  __name: "CustomBlockIcon",
1662
1662
  props: {
1663
1663
  icon: {},
@@ -1673,24 +1673,24 @@ var Xn = d({
1673
1673
  height: `${n.value}px`
1674
1674
  }),
1675
1675
  innerHTML: e.icon
1676
- }, null, 12, $n)) : i.value ? (s(), C("img", {
1676
+ }, null, 12, er)) : i.value ? (s(), C("img", {
1677
1677
  key: 1,
1678
1678
  src: e.icon,
1679
1679
  width: n.value,
1680
1680
  height: n.value,
1681
1681
  class: "tpl:inline-block",
1682
1682
  alt: ""
1683
- }, null, 8, er)) : (s(), A(_(Kt), {
1683
+ }, null, 8, tr)) : (s(), A(_(qt), {
1684
1684
  key: 2,
1685
1685
  size: n.value,
1686
1686
  "stroke-width": 1.5
1687
1687
  }, null, 8, ["size"]));
1688
1688
  }
1689
- }), nr = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
1690
- function rr(e, n) {
1691
- let r = Yt(), i = null, a = null, o = null;
1689
+ }), rr = "a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
1690
+ function ir(e, n) {
1691
+ let r = Xt(), i = null, a = null, o = null;
1692
1692
  function s() {
1693
- return e.value ? Array.from(e.value.querySelectorAll(nr)).filter((e) => e.offsetParent !== null) : [];
1693
+ return e.value ? Array.from(e.value.querySelectorAll(rr)).filter((e) => e.offsetParent !== null) : [];
1694
1694
  }
1695
1695
  function c(e) {
1696
1696
  if (e.key !== "Tab") return;
@@ -1720,8 +1720,8 @@ function rr(e, n) {
1720
1720
  }
1721
1721
  //#endregion
1722
1722
  //#region src/composables/useEmoji.ts
1723
- function ir() {
1724
- let [e, n] = Re(!1), r = x([]), i = !1;
1723
+ function ar() {
1724
+ let [e, n] = ze(!1), r = x([]), i = !1;
1725
1725
  h(() => {
1726
1726
  i = !0;
1727
1727
  }), t(e, async (e) => {
@@ -1746,7 +1746,7 @@ function ir() {
1746
1746
  }
1747
1747
  //#endregion
1748
1748
  //#region src/composables/useFonts.ts
1749
- var ar = [
1749
+ var or = [
1750
1750
  {
1751
1751
  value: "Arial",
1752
1752
  label: "Arial"
@@ -1775,7 +1775,7 @@ var ar = [
1775
1775
  value: "Courier New",
1776
1776
  label: "Courier New"
1777
1777
  }
1778
- ], or = {
1778
+ ], sr = {
1779
1779
  arial: "Arial, sans-serif",
1780
1780
  helvetica: "Helvetica, sans-serif",
1781
1781
  georgia: "Georgia, serif",
@@ -1783,23 +1783,23 @@ var ar = [
1783
1783
  verdana: "Verdana, sans-serif",
1784
1784
  "trebuchet ms": "'Trebuchet MS', sans-serif",
1785
1785
  "courier new": "'Courier New', monospace"
1786
- }, sr = "Arial, sans-serif";
1787
- function cr(e) {
1788
- if (e === void 0 || e === !0) return [...ar];
1786
+ }, cr = "Arial, sans-serif";
1787
+ function lr(e) {
1788
+ if (e === void 0 || e === !0) return [...or];
1789
1789
  if (e === !1) return [];
1790
1790
  let t = [], n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set();
1791
1791
  for (let i of e) {
1792
- let e = i.toLowerCase(), a = ar.find((t) => t.value.toLowerCase() === e);
1792
+ let e = i.toLowerCase(), a = or.find((t) => t.value.toLowerCase() === e);
1793
1793
  if (!a) {
1794
- r.has(e) || (r.add(e), X.warn(`config.fonts.builtIns: "${i}" is not a built-in font — skipping it. Built-in fonts are: ${ar.map((e) => e.value).join(", ")}.`));
1794
+ r.has(e) || (r.add(e), X.warn(`config.fonts.builtIns: "${i}" is not a built-in font — skipping it. Built-in fonts are: ${or.map((e) => e.value).join(", ")}.`));
1795
1795
  continue;
1796
1796
  }
1797
1797
  n.has(a.value) || (n.add(a.value), t.push(a));
1798
1798
  }
1799
1799
  return t;
1800
1800
  }
1801
- function lr(e) {
1802
- let t = l(e?.customFonts ?? []), n = l(!1), r = cr(e?.builtIns), i = S(() => e?.defaultFallback ?? sr), a = S(() => {
1801
+ function ur(e) {
1802
+ let t = l(e?.customFonts ?? []), n = l(!1), r = lr(e?.builtIns), i = S(() => e?.defaultFallback ?? cr), a = S(() => {
1803
1803
  let e = [...r], n = t.value.map((e) => ({
1804
1804
  value: e.name,
1805
1805
  label: e.name,
@@ -1810,20 +1810,20 @@ function lr(e) {
1810
1810
  function s(e) {
1811
1811
  return a.value.some((t) => t.label.toLowerCase() === e.toLowerCase() || t.value.toLowerCase().startsWith(e.toLowerCase()));
1812
1812
  }
1813
- let c = e?.defaultFont ?? sr.split(",")[0].trim();
1813
+ let c = e?.defaultFont ?? cr.split(",")[0].trim();
1814
1814
  s(c) || X.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.`);
1815
1815
  function u() {
1816
1816
  if (e?.defaultFont && s(e.defaultFont)) {
1817
1817
  let t = a.value.find((t) => t.label.toLowerCase() === e.defaultFont.toLowerCase() || t.value.toLowerCase().startsWith(e.defaultFont.toLowerCase()));
1818
1818
  if (t) return t.value;
1819
1819
  }
1820
- return sr;
1820
+ return cr;
1821
1821
  }
1822
1822
  let d = S(() => u());
1823
1823
  function f(e) {
1824
1824
  if (!e) return i.value;
1825
1825
  let n = t.value.find((t) => t.name.toLowerCase() === e.toLowerCase());
1826
- return n ? `'${n.name}', ${n.fallback ?? i.value}` : or[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
1826
+ return n ? `'${n.name}', ${n.fallback ?? i.value}` : sr[e.toLowerCase()] || (e.includes(",") ? e : `${e}, ${i.value}`);
1827
1827
  }
1828
1828
  let p = [], m = !1;
1829
1829
  async function g() {
@@ -1864,8 +1864,8 @@ function lr(e) {
1864
1864
  }
1865
1865
  //#endregion
1866
1866
  //#region src/composables/useLogicTag.ts
1867
- function ur() {
1868
- let e = n(Ge, []), t = n(tt, []), r = n(ft, Ae.liquid), i = n(Ue, null), a = n(xt, null), o = l(!1), s = !!i || e.length > 0 || t.length > 0, c = e.length > 0 || t.length > 0;
1867
+ function dr() {
1868
+ let e = n(Ke, []), t = n(nt, []), r = n(pt, je.liquid), i = n(We, null), a = n(St, null), o = l(!1), s = !!i || e.length > 0 || t.length > 0, c = e.length > 0 || t.length > 0;
1869
1869
  async function u() {
1870
1870
  if (i) {
1871
1871
  o.value = !0;
@@ -1896,7 +1896,7 @@ function ur() {
1896
1896
  }
1897
1897
  //#endregion
1898
1898
  //#region src/utils/mergeTagNodeSpec.ts
1899
- function dr(e, t, n) {
1899
+ function fr(e, t, n) {
1900
1900
  return ve(e, n) ? {
1901
1901
  type: "logicMergeTagNode",
1902
1902
  attrs: {
@@ -1913,15 +1913,15 @@ function dr(e, t, n) {
1913
1913
  }
1914
1914
  //#endregion
1915
1915
  //#region src/utils/insertLogicTag.ts
1916
- function fr(e) {
1916
+ function pr(e) {
1917
1917
  return "before" in e && "after" in e;
1918
1918
  }
1919
- function pr(e, t, n) {
1920
- if (!fr(t)) {
1921
- e.chain().focus().insertContent(dr(t.value, t.label, n)).run();
1919
+ function mr(e, t, n) {
1920
+ if (!pr(t)) {
1921
+ e.chain().focus().insertContent(fr(t.value, t.label, n)).run();
1922
1922
  return;
1923
1923
  }
1924
- let r = dr(t.before, t.label, n), i = dr(t.after, t.label, n), { from: a, to: o } = e.state.selection;
1924
+ let r = fr(t.before, t.label, n), i = fr(t.after, t.label, n), { from: a, to: o } = e.state.selection;
1925
1925
  if (a !== o) {
1926
1926
  e.chain().focus().insertContentAt(o, i).insertContentAt(a, r).run();
1927
1927
  return;
@@ -1930,20 +1930,20 @@ function pr(e, t, n) {
1930
1930
  }
1931
1931
  //#endregion
1932
1932
  //#region src/utils/linkColorExtension.ts
1933
- function mr(e) {
1933
+ function hr(e) {
1934
1934
  if (!e) return null;
1935
1935
  let t = e.trim();
1936
1936
  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;
1937
1937
  }
1938
- function hr(e) {
1938
+ function gr(e) {
1939
1939
  return e.extend({ addAttributes() {
1940
1940
  return {
1941
1941
  ...this.parent?.(),
1942
1942
  color: {
1943
1943
  default: null,
1944
- parseHTML: (e) => mr(Et(e.style.color)),
1944
+ parseHTML: (e) => hr(Dt(e.style.color)),
1945
1945
  renderHTML: (e) => {
1946
- let t = mr(e.color);
1946
+ let t = hr(e.color);
1947
1947
  return t ? { style: `color: ${t}` } : {};
1948
1948
  }
1949
1949
  }
@@ -1952,9 +1952,9 @@ function hr(e) {
1952
1952
  }
1953
1953
  //#endregion
1954
1954
  //#region src/composables/useRichTextLinkDialog.ts
1955
- function gr(e) {
1955
+ function _r(e) {
1956
1956
  let t = l(!1), n = l(""), r = l(""), i = l(null);
1957
- rr(i, t);
1957
+ ir(i, t);
1958
1958
  function a() {
1959
1959
  let i = e.value?.getAttributes("link") ?? {};
1960
1960
  n.value = i.href || "", r.value = i.color || "", t.value = !0;
@@ -1963,7 +1963,7 @@ function gr(e) {
1963
1963
  if (n.value) {
1964
1964
  let t = c(n.value);
1965
1965
  if (t !== null) {
1966
- let n = mr(r.value), i = e.value?.chain().focus().extendMarkRange("link").setLink({ href: t }).updateAttributes("link", { color: n });
1966
+ let n = hr(r.value), i = e.value?.chain().focus().extendMarkRange("link").setLink({ href: t }).updateAttributes("link", { color: n });
1967
1967
  n && typeof e.value?.commands.unsetColor == "function" && i?.unsetColor(), i?.run();
1968
1968
  }
1969
1969
  }
@@ -2010,8 +2010,8 @@ function gr(e) {
2010
2010
  }
2011
2011
  //#endregion
2012
2012
  //#region src/composables/useRichTextEditor.ts
2013
- function _r(r) {
2014
- let i = n(J, null), { mergeTags: a, canRequestMergeTag: o, isRequesting: s, requestMergeTag: c, syntax: u, autocomplete: d } = Q(), { canInsertLogicTag: f, isRequesting: p, requestLogicTag: m } = ur(), h = n(nt, null), g = (N(h) ? h.value : h)?.mergeTag?.suggestionEmpty ?? "No matching merge tags", _ = Te(u), v = x(null), { showLinkDialog: y, linkUrl: b, linkColor: S, linkDialogRef: C, openLinkDialog: w, insertLink: T, removeLink: E, closeLinkDialog: D, handleLinkKeydown: O } = gr(v), { start: k, stop: A } = Ie(() => v.value?.commands.focus("end"), 0, { immediate: !1 }), j = x(null), M = l(!0), P = l(null), F = !1;
2013
+ function vr(r) {
2014
+ let i = n(J, null), { mergeTags: a, canRequestMergeTag: o, isRequesting: s, requestMergeTag: c, syntax: u, autocomplete: d } = Q(), { canInsertLogicTag: f, isRequesting: p, requestLogicTag: m } = dr(), h = n(rt, null), g = (N(h) ? h.value : h)?.mergeTag?.suggestionEmpty ?? "No matching merge tags", _ = Te(u), v = x(null), { showLinkDialog: y, linkUrl: b, linkColor: S, linkDialogRef: C, openLinkDialog: w, insertLink: T, removeLink: E, closeLinkDialog: D, handleLinkKeydown: O } = _r(v), { start: k, stop: A } = Le(() => v.value?.commands.focus("end"), 0, { immediate: !1 }), j = x(null), M = l(!0), P = l(null), F = !1;
2015
2015
  async function I() {
2016
2016
  P.value = null, M.value = !0;
2017
2017
  try {
@@ -2071,7 +2071,7 @@ function _r(r) {
2071
2071
  }
2072
2072
  async function V() {
2073
2073
  let e = await m();
2074
- F || (e && v.value ? pr(v.value, e, u) : v.value?.commands.focus());
2074
+ F || (e && v.value ? mr(v.value, e, u) : v.value?.commands.focus());
2075
2075
  }
2076
2076
  return {
2077
2077
  editor: v,
@@ -2100,9 +2100,9 @@ function _r(r) {
2100
2100
  }
2101
2101
  //#endregion
2102
2102
  //#region src/composables/useSmallScreenNotice.ts
2103
- var vr = "(max-width: 767px)";
2104
- function yr(e) {
2105
- let t = Be(vr);
2103
+ var yr = "(max-width: 767px)";
2104
+ function br(e) {
2105
+ let t = Ve(yr);
2106
2106
  return {
2107
2107
  isSmallScreen: t,
2108
2108
  showNotice: S(() => (P(e) ?? !0) && t.value)
@@ -2110,20 +2110,20 @@ function yr(e) {
2110
2110
  }
2111
2111
  //#endregion
2112
2112
  //#region src/components/blocks/CustomBlock.vue?vue&type=script&setup=true&lang.ts
2113
- var br = { class: "tpl:w-full" }, xr = {
2113
+ var xr = { class: "tpl:w-full" }, Sr = {
2114
2114
  key: 0,
2115
2115
  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)]"
2116
- }, Sr = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Cr = {
2116
+ }, Cr = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, wr = {
2117
2117
  key: 1,
2118
2118
  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)]"
2119
- }, wr = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Tr = {
2119
+ }, Tr = { class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]" }, Er = {
2120
2120
  key: 2,
2121
2121
  class: "tpl:relative"
2122
- }, Er = ["innerHTML"], Dr = {
2122
+ }, Dr = ["innerHTML"], Or = {
2123
2123
  key: 0,
2124
2124
  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]",
2125
2125
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 80%, transparent)" }
2126
- }, Or = /* @__PURE__ */ d({
2126
+ }, kr = /* @__PURE__ */ d({
2127
2127
  __name: "CustomBlock",
2128
2128
  props: {
2129
2129
  block: {},
@@ -2131,7 +2131,7 @@ var br = { class: "tpl:w-full" }, xr = {
2131
2131
  },
2132
2132
  emits: ["fetchData"],
2133
2133
  setup(e, { emit: r }) {
2134
- let i = e, a = r, { t: o } = Y(), c = n(vt, null), u = l(""), d = l(!1), f = S(() => c?.getDefinition(i.block.customType)), p = S(() => !!f.value), { isFetching: m, fetch: h, needsFetch: g, hasDataSource: y } = dn({
2134
+ let i = e, a = r, { t: o } = Y(), c = n(yt, null), u = l(""), d = l(!1), f = S(() => c?.getDefinition(i.block.customType)), p = S(() => !!f.value), { isFetching: m, fetch: h, needsFetch: g, hasDataSource: y } = fn({
2135
2135
  definition: f,
2136
2136
  block: S(() => i.block),
2137
2137
  onUpdate: (e, t) => {
@@ -2160,17 +2160,17 @@ var br = { class: "tpl:w-full" }, xr = {
2160
2160
  }
2161
2161
  }
2162
2162
  }
2163
- let k = Le(D, 150);
2163
+ let k = Re(D, 150);
2164
2164
  return E(() => {
2165
2165
  D();
2166
2166
  }), t(() => i.block.fieldValues, () => {
2167
2167
  k();
2168
2168
  }, { deep: !0 }), t(() => x?.value, () => {
2169
2169
  k();
2170
- }), (e, t) => (s(), C("div", br, [p.value ? d.value ? (s(), C("div", Cr, [v(_(Ut), {
2170
+ }), (e, t) => (s(), C("div", xr, [p.value ? d.value ? (s(), C("div", wr, [v(_(Wt), {
2171
2171
  size: 24,
2172
2172
  class: "tpl:text-[var(--tpl-danger)]"
2173
- }), M("span", wr, R(_(o).customBlocks.renderError), 1)])) : (s(), C("div", Tr, [M("div", { innerHTML: u.value }, null, 8, Er), _(y) && _(g) ? (s(), C("div", Dr, [_(m) ? (s(), A(qt, {
2173
+ }), M("span", Tr, R(_(o).customBlocks.renderError), 1)])) : (s(), C("div", Er, [M("div", { innerHTML: u.value }, null, 8, Dr), _(y) && _(g) ? (s(), C("div", Or, [_(m) ? (s(), A(Jt, {
2174
2174
  key: 1,
2175
2175
  class: "tpl:w-48"
2176
2176
  })) : (s(), C("button", {
@@ -2178,16 +2178,16 @@ var br = { class: "tpl:w-full" }, xr = {
2178
2178
  type: "button",
2179
2179
  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)]",
2180
2180
  onClick: t[0] ||= O((...e) => _(h) && _(h)(...e), ["stop"])
2181
- }, [f.value?.icon ? (s(), A(tr, {
2181
+ }, [f.value?.icon ? (s(), A(nr, {
2182
2182
  key: 0,
2183
2183
  icon: f.value.icon,
2184
2184
  size: 16
2185
- }, null, 8, ["icon"])) : w("", !0), V(" " + R(f.value?.dataSource?.label || _(o).customBlocks.dataSource.fetchButton), 1)]))])) : w("", !0)])) : (s(), C("div", xr, [v(_(Mt), {
2185
+ }, null, 8, ["icon"])) : w("", !0), V(" " + R(f.value?.dataSource?.label || _(o).customBlocks.dataSource.fetchButton), 1)]))])) : w("", !0)])) : (s(), C("div", Sr, [v(_(Nt), {
2186
2186
  size: 24,
2187
2187
  class: "tpl:text-[var(--tpl-warning)]"
2188
- }), M("span", Sr, R(_(o).customBlocks.definitionNotFound), 1)]))]));
2188
+ }), M("span", Cr, R(_(o).customBlocks.definitionNotFound), 1)]))]));
2189
2189
  }
2190
- }), kr = { class: "tpl:w-full" }, Ar = /* @__PURE__ */ d({
2190
+ }), Ar = { class: "tpl:w-full" }, jr = /* @__PURE__ */ d({
2191
2191
  __name: "DividerBlock",
2192
2192
  props: {
2193
2193
  block: {},
@@ -2199,28 +2199,28 @@ var br = { class: "tpl:w-full" }, xr = {
2199
2199
  width: t.block.width === "full" ? "100%" : `${t.block.width}px`,
2200
2200
  margin: t.block.width === "full" ? "0" : "0 auto"
2201
2201
  }));
2202
- return (e, t) => (s(), C("div", kr, [M("hr", {
2202
+ return (e, t) => (s(), C("div", Ar, [M("hr", {
2203
2203
  class: "tpl:m-0 tpl:border-none",
2204
2204
  style: k(n.value)
2205
2205
  }, null, 4)]));
2206
2206
  }
2207
- }), jr = { class: "tpl:w-full" }, Mr = ["srcdoc", "title"], Nr = {
2207
+ }), Mr = { class: "tpl:w-full" }, Nr = ["srcdoc", "title"], Pr = {
2208
2208
  key: 1,
2209
2209
  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)]"
2210
- }, Pr = {
2210
+ }, Fr = {
2211
2211
  key: 0,
2212
2212
  class: "tpl:text-sm tpl:text-[var(--tpl-text-muted)]"
2213
- }, Fr = {
2213
+ }, Ir = {
2214
2214
  key: 1,
2215
2215
  class: "tpl:text-sm tpl:text-[var(--tpl-text-dim)]"
2216
- }, Ir = /* @__PURE__ */ d({
2216
+ }, Lr = /* @__PURE__ */ d({
2217
2217
  __name: "HtmlBlock",
2218
2218
  props: {
2219
2219
  block: {},
2220
2220
  viewport: {}
2221
2221
  },
2222
2222
  setup(r) {
2223
- let i = r, { t: a } = Y(), o = n(Ct, !1), c = S(() => i.block.content.trim().length > 0), u = S(() => o && c.value), d = n(K, []), f = n(q, null), p = S(() => f?.value ? he(i.block.content, d) : i.block.content), m = l(null), h = l(60), g = null;
2223
+ let i = r, { t: a } = Y(), o = n(wt, !1), c = S(() => i.block.content.trim().length > 0), u = S(() => o && c.value), d = n(K, []), f = n(q, null), p = S(() => f?.value ? he(i.block.content, d) : i.block.content), m = l(null), h = l(60), g = null;
2224
2224
  function y() {
2225
2225
  let e = m.value?.contentDocument;
2226
2226
  e && (h.value = Math.max(e.body?.scrollHeight ?? 0, e.documentElement?.scrollHeight ?? 0));
@@ -2234,7 +2234,7 @@ var br = { class: "tpl:w-full" }, xr = {
2234
2234
  e || (g?.disconnect(), g = null);
2235
2235
  }), e(() => {
2236
2236
  g?.disconnect(), g = null;
2237
- }), (e, t) => (s(), C("div", jr, [u.value ? (s(), C("iframe", {
2237
+ }), (e, t) => (s(), C("div", Mr, [u.value ? (s(), C("iframe", {
2238
2238
  key: 0,
2239
2239
  ref_key: "iframeRef",
2240
2240
  ref: m,
@@ -2244,18 +2244,18 @@ var br = { class: "tpl:w-full" }, xr = {
2244
2244
  class: "tpl:block tpl:w-full tpl:border-0",
2245
2245
  style: k({ height: `${h.value}px` }),
2246
2246
  onLoad: b
2247
- }, null, 44, Mr)) : (s(), C("div", Nr, [v(_(Nt), {
2247
+ }, null, 44, Nr)) : (s(), C("div", Pr, [v(_(Pt), {
2248
2248
  size: 24,
2249
2249
  class: "tpl:text-[var(--tpl-text-dim)]"
2250
- }), c.value ? (s(), C("span", Pr, R(_(a).html.preview), 1)) : (s(), C("span", Fr, R(_(a).html.empty), 1))]))]));
2250
+ }), c.value ? (s(), C("span", Fr, R(_(a).html.preview), 1)) : (s(), C("span", Ir, R(_(a).html.empty), 1))]))]));
2251
2251
  }
2252
- }), Lr = "image/";
2253
- function Rr(e) {
2254
- let { target: t, onFiles: n, enabled: r } = e, i = () => r === void 0 || P(r), { isOverDropZone: a } = He(t, {
2252
+ }), Rr = "image/";
2253
+ function zr(e) {
2254
+ let { target: t, onFiles: n, enabled: r } = e, i = () => r === void 0 || P(r), { isOverDropZone: a } = Ue(t, {
2255
2255
  preventDefaultForUnhandled: !0,
2256
2256
  onDrop: (e) => {
2257
2257
  if (!i()) return;
2258
- let t = (e ?? []).filter((e) => e.type.startsWith(Lr));
2258
+ let t = (e ?? []).filter((e) => e.type.startsWith(Rr));
2259
2259
  t.length > 0 && n([t[0]]);
2260
2260
  }
2261
2261
  });
@@ -2263,17 +2263,17 @@ function Rr(e) {
2263
2263
  }
2264
2264
  //#endregion
2265
2265
  //#region src/components/blocks/ImageBlock.vue?vue&type=script&setup=true&lang.ts
2266
- var zr = {
2266
+ var Br = {
2267
2267
  key: 0,
2268
2268
  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)]",
2269
2269
  style: { "background-color": "color-mix(in srgb, var(--tpl-bg) 85%, transparent)" }
2270
- }, Br = ["href"], Vr = ["src", "alt"], Hr = ["src", "alt"], Ur = {
2270
+ }, Vr = ["href"], Hr = ["src", "alt"], Ur = ["src", "alt"], Wr = {
2271
2271
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
2272
2272
  style: { opacity: "0.7" }
2273
- }, Wr = ["href"], Gr = ["src", "alt"], Kr = ["src", "alt"], qr = {
2273
+ }, Gr = ["href"], Kr = ["src", "alt"], qr = ["src", "alt"], Jr = {
2274
2274
  key: 4,
2275
2275
  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)]"
2276
- }, Jr = ["aria-label"], Yr = { key: 1 }, Xr = /* @__PURE__ */ d({
2276
+ }, Yr = ["aria-label"], Xr = { key: 1 }, Zr = /* @__PURE__ */ d({
2277
2277
  __name: "ImageBlock",
2278
2278
  props: {
2279
2279
  block: {},
@@ -2281,7 +2281,7 @@ var zr = {
2281
2281
  },
2282
2282
  emits: ["update"],
2283
2283
  setup(e, { emit: t }) {
2284
- let r = e, i = t, { t: a } = Y(), { syntax: o } = Q(), c = n(dt, null), u = S(() => !!c), d = Xt();
2284
+ let r = e, i = t, { t: a } = Y(), { syntax: o } = Q(), c = n(ft, null), u = S(() => !!c), d = Zt();
2285
2285
  async function f() {
2286
2286
  let e = await c?.({ accept: ["images"] });
2287
2287
  if (d.alive && e) {
@@ -2308,7 +2308,7 @@ var zr = {
2308
2308
  }
2309
2309
  }
2310
2310
  }
2311
- let { isOver: y } = Rr({
2311
+ let { isOver: y } = zr({
2312
2312
  target: p,
2313
2313
  enabled: h,
2314
2314
  onFiles: g
@@ -2318,22 +2318,23 @@ var zr = {
2318
2318
  maxWidth: "100%",
2319
2319
  width: r.block.width === "full" ? "100%" : `${r.block.width}px`,
2320
2320
  height: r.block.height ? `${r.block.height}px` : void 0,
2321
+ borderRadius: r.block.borderRadius && r.block.borderRadius > 0 ? `${r.block.borderRadius}px` : void 0,
2321
2322
  display: "block",
2322
2323
  marginLeft: e === "center" || e === "right" ? "auto" : void 0,
2323
2324
  marginRight: e === "center" ? "auto" : void 0
2324
2325
  };
2325
- }), T = S(() => U(r.block.src, o)), E = Tn(() => T.value ? void 0 : r.block.src), D = Tn(() => T.value ? r.block.placeholderUrl : void 0);
2326
+ }), T = S(() => U(r.block.src, o)), E = En(() => T.value ? void 0 : r.block.src), D = En(() => T.value ? r.block.placeholderUrl : void 0);
2326
2327
  return (t, n) => (s(), C("div", {
2327
2328
  ref_key: "dropZoneRef",
2328
2329
  ref: p,
2329
2330
  "data-testid": "image-drop-zone",
2330
2331
  class: "tpl:relative tpl:w-full",
2331
2332
  style: k(b.value)
2332
- }, [h.value && (_(y) || m.value) ? (s(), C("div", zr, [m.value ? (s(), C(L, { key: 0 }, [v(_(zt), {
2333
+ }, [h.value && (_(y) || m.value) ? (s(), C("div", Br, [m.value ? (s(), C(L, { key: 0 }, [v(_(Bt), {
2333
2334
  class: "tpl-spinner",
2334
2335
  size: 20,
2335
2336
  "stroke-width": 2
2336
- }), V(" " + R(_(a).image.uploading), 1)], 64)) : (s(), C(L, { key: 1 }, [v(_(Vt), {
2337
+ }), V(" " + R(_(a).image.uploading), 1)], 64)) : (s(), C(L, { key: 1 }, [v(_(Ht), {
2337
2338
  size: 20,
2338
2339
  "stroke-width": 1.5
2339
2340
  }), V(" " + R(_(a).image.dropToUpload), 1)], 64))])) : w("", !0), e.block.src && T.value && e.block.placeholderUrl ? (s(), C(L, { key: 1 }, [e.block.linkUrl ? (s(), C("a", {
@@ -2348,22 +2349,22 @@ var zr = {
2348
2349
  src: _(D),
2349
2350
  alt: e.block.alt || _(a).image.altTextPlaceholder,
2350
2351
  style: k(x.value)
2351
- }, null, 12, Vr)], 8, Br)) : (s(), C("img", {
2352
+ }, null, 12, Hr)], 8, Vr)) : (s(), C("img", {
2352
2353
  key: 1,
2353
2354
  class: "tpl:border-0",
2354
2355
  src: _(D),
2355
2356
  alt: e.block.alt,
2356
2357
  style: k(x.value)
2357
- }, null, 12, Hr))], 64)) : e.block.src && T.value ? (s(), C("div", {
2358
+ }, null, 12, Ur))], 64)) : e.block.src && T.value ? (s(), C("div", {
2358
2359
  key: 2,
2359
2360
  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)]",
2360
2361
  style: k([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, x.value])
2361
- }, [v(_(Lt), {
2362
+ }, [v(_(Rt), {
2362
2363
  size: 32,
2363
2364
  "stroke-width": 1.5,
2364
2365
  class: "tpl:text-[var(--tpl-primary)]",
2365
2366
  style: { opacity: "0.5" }
2366
- }), M("span", Ur, [v(Xn, { text: e.block.src }, null, 8, ["text"])])], 4)) : e.block.src ? (s(), C(L, { key: 3 }, [e.block.linkUrl ? (s(), C("a", {
2367
+ }), M("span", Wr, [v(Zn, { text: e.block.src }, null, 8, ["text"])])], 4)) : e.block.src ? (s(), C(L, { key: 3 }, [e.block.linkUrl ? (s(), C("a", {
2367
2368
  key: 0,
2368
2369
  href: e.block.linkUrl,
2369
2370
  target: "_blank",
@@ -2375,26 +2376,26 @@ var zr = {
2375
2376
  src: _(E),
2376
2377
  alt: e.block.alt || _(a).image.altTextPlaceholder,
2377
2378
  style: k(x.value)
2378
- }, null, 12, Gr)], 8, Wr)) : (s(), C("img", {
2379
+ }, null, 12, Kr)], 8, Gr)) : (s(), C("img", {
2379
2380
  key: 1,
2380
2381
  class: "tpl:border-0",
2381
2382
  src: _(E),
2382
2383
  alt: e.block.alt,
2383
2384
  style: k(x.value)
2384
- }, null, 12, Kr))], 64)) : (s(), C("div", qr, [u.value ? (s(), C("button", {
2385
+ }, null, 12, qr))], 64)) : (s(), C("div", Jr, [u.value ? (s(), C("button", {
2385
2386
  key: 0,
2386
2387
  "aria-label": _(a).image.browseMedia,
2387
2388
  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)]",
2388
2389
  onClick: O(f, ["stop"])
2389
- }, [v(_(Lt), {
2390
+ }, [v(_(Rt), {
2390
2391
  size: 14,
2391
2392
  "stroke-width": 1.5
2392
- }), V(" " + R(_(a).image.browseMedia), 1)], 8, Jr)) : (s(), C("span", Yr, R(_(a).image.clickToAdd), 1))]))], 4));
2393
+ }), V(" " + R(_(a).image.browseMedia), 1)], 8, Yr)) : (s(), C("span", Xr, R(_(a).image.clickToAdd), 1))]))], 4));
2393
2394
  }
2394
- }), Zr = { class: "tpl:w-full" }, Qr = ["href"], $r = {
2395
+ }), Qr = { class: "tpl:w-full" }, $r = ["href"], ei = {
2395
2396
  key: 1,
2396
2397
  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)]"
2397
- }, ei = /* @__PURE__ */ d({
2398
+ }, ti = /* @__PURE__ */ d({
2398
2399
  __name: "MenuBlock",
2399
2400
  props: {
2400
2401
  block: {},
@@ -2413,7 +2414,7 @@ var zr = {
2413
2414
  function o(e) {
2414
2415
  return e || t.block.linkColor || t.block.color;
2415
2416
  }
2416
- return (t, c) => (s(), C("div", Zr, [a.value ? (s(), C("div", {
2417
+ return (t, c) => (s(), C("div", Qr, [a.value ? (s(), C("div", {
2417
2418
  key: 0,
2418
2419
  style: k(i.value)
2419
2420
  }, [(s(!0), C(L, null, r(e.block.items, (t, n) => (s(), C(L, { key: t.id }, [M("a", {
@@ -2425,15 +2426,15 @@ var zr = {
2425
2426
  textDecoration: t.underline ? "underline" : "none"
2426
2427
  }),
2427
2428
  onClick: c[0] ||= O(() => {}, ["prevent"])
2428
- }, [v(Xn, { text: t.text || "..." }, null, 8, ["text"])], 12, Qr), n < e.block.items.length - 1 ? (s(), C("span", {
2429
+ }, [v(Zn, { text: t.text || "..." }, null, 8, ["text"])], 12, $r), n < e.block.items.length - 1 ? (s(), C("span", {
2429
2430
  key: 0,
2430
2431
  style: k({
2431
2432
  color: e.block.separatorColor,
2432
2433
  padding: `0 ${e.block.spacing}px`
2433
2434
  })
2434
- }, R(e.block.separator), 5)) : w("", !0)], 64))), 128))], 4)) : (s(), C("div", $r, [v(_(Ft), { size: 16 }), M("span", null, R(_(n).menu.addLinks), 1)]))]));
2435
+ }, R(e.block.separator), 5)) : w("", !0)], 64))), 128))], 4)) : (s(), C("div", ei, [v(_(It), { size: 16 }), M("span", null, R(_(n).menu.addLinks), 1)]))]));
2435
2436
  }
2436
- }), ti = /* @__PURE__ */ new Set([
2437
+ }), ni = /* @__PURE__ */ new Set([
2437
2438
  "http",
2438
2439
  "https",
2439
2440
  "mailto",
@@ -2443,7 +2444,7 @@ var zr = {
2443
2444
  "sms",
2444
2445
  "xmpp",
2445
2446
  "cid"
2446
- ]), ni = /* @__PURE__ */ new Set([
2447
+ ]), ri = /* @__PURE__ */ new Set([
2447
2448
  "SCRIPT",
2448
2449
  "STYLE",
2449
2450
  "IFRAME",
@@ -2453,7 +2454,7 @@ var zr = {
2453
2454
  "META",
2454
2455
  "BASE",
2455
2456
  "FORM"
2456
- ]), ri = /* @__PURE__ */ new Set([
2457
+ ]), ii = /* @__PURE__ */ new Set([
2457
2458
  "href",
2458
2459
  "xlink:href",
2459
2460
  "formaction",
@@ -2462,16 +2463,16 @@ var zr = {
2462
2463
  "background",
2463
2464
  "poster"
2464
2465
  ]);
2465
- function ii(e, t) {
2466
+ function ai(e, t) {
2466
2467
  let n = e.replace(/[\t\n\r]/g, "").replace(/^[\u0000-\u0020]+/, "").trimEnd();
2467
2468
  if (!n || n.startsWith("#")) return !0;
2468
2469
  let r = /^([a-z][a-z0-9+.-]*):/i.exec(n);
2469
2470
  if (!r) return !0;
2470
2471
  let i = r[1].toLowerCase();
2471
- return ti.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
2472
+ return ni.has(i) ? !0 : t && i === "data" ? /^data:image\/(png|jpe?g|gif|webp|svg\+xml);/i.test(n) : !1;
2472
2473
  }
2473
- function ai(e) {
2474
- if (ni.has(e.tagName)) {
2474
+ function oi(e) {
2475
+ if (ri.has(e.tagName)) {
2475
2476
  e.remove();
2476
2477
  return;
2477
2478
  }
@@ -2483,29 +2484,29 @@ function ai(e) {
2483
2484
  e.removeAttribute(n);
2484
2485
  continue;
2485
2486
  }
2486
- if (ri.has(t)) {
2487
- ii(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
2487
+ if (ii.has(t)) {
2488
+ ai(e.getAttribute(n) ?? "", !1) || e.removeAttribute(n);
2488
2489
  continue;
2489
2490
  }
2490
2491
  if (t === "src") {
2491
- ii(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
2492
+ ai(e.getAttribute(n) ?? "", !0) || e.removeAttribute(n);
2492
2493
  continue;
2493
2494
  }
2494
2495
  t === "srcdoc" && e.removeAttribute(n);
2495
2496
  }
2496
2497
  let n = Array.from(e.children);
2497
- for (let e of n) ai(e);
2498
+ for (let e of n) oi(e);
2498
2499
  }
2499
- function oi(e) {
2500
+ function si(e) {
2500
2501
  if (typeof DOMParser > "u") return e;
2501
2502
  let t = new DOMParser().parseFromString(`<!doctype html><body>${e}</body>`, "text/html").body, n = Array.from(t.children);
2502
- for (let e of n) ai(e);
2503
+ for (let e of n) oi(e);
2503
2504
  return t.innerHTML;
2504
2505
  }
2505
2506
  //#endregion
2506
2507
  //#region src/composables/useEditableTextBlock.ts
2507
- function si(e) {
2508
- let t = n(K, []), r = n(q, null), { syntax: i } = Q(), a = S(() => r?.value ? xe(e(), t) : Ee(e(), t)), o = S(() => oi(ke(a.value, i))), s = l(!1), c = l(null), { top: u, left: d } = Ve(c), { toLocal: f } = Ot(), p = S(() => f({
2508
+ function ci(e) {
2509
+ let t = n(K, []), r = n(q, null), { syntax: i } = Q(), a = S(() => r?.value ? xe(e(), t) : Ee(e(), t)), o = S(() => si(Ae(a.value, i))), s = l(!1), c = l(null), { top: u, left: d } = He(c), { toLocal: f } = kt(), p = S(() => f({
2509
2510
  top: u.value - 8,
2510
2511
  left: d.value
2511
2512
  }));
@@ -2526,14 +2527,14 @@ function si(e) {
2526
2527
  }
2527
2528
  //#endregion
2528
2529
  //#region src/components/blocks/ParagraphBlock.vue?vue&type=script&setup=true&lang.ts
2529
- var ci = ["innerHTML"], li = /* @__PURE__ */ d({
2530
+ var li = ["innerHTML"], ui = /* @__PURE__ */ d({
2530
2531
  __name: "ParagraphBlock",
2531
2532
  props: {
2532
2533
  block: {},
2533
2534
  viewport: {}
2534
2535
  },
2535
2536
  setup(e) {
2536
- let t = e, n = B(() => import("./ParagraphEditor-BtzkHfv2.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = si(() => t.block.content);
2537
+ let t = e, n = B(() => import("./ParagraphEditor-BalgLjBt.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = ci(() => t.block.content);
2537
2538
  return (t, u) => (s(), C("div", {
2538
2539
  ref_key: "blockRef",
2539
2540
  ref: i,
@@ -2550,56 +2551,56 @@ var ci = ["innerHTML"], li = /* @__PURE__ */ d({
2550
2551
  "onDone"
2551
2552
  ])) : (s(), C("div", {
2552
2553
  key: 1,
2553
- class: "tpl-text-content tpl:outline-none [&_a]:tpl:underline [&_li]:tpl:my-1 [&_ol]:tpl:my-2 [&_ol]:tpl:pl-6 [&_p]:tpl:m-0 [&_p]:tpl:mb-2 [&_p:last-child]:tpl:mb-0 [&_s]:tpl:line-through [&_sub]:tpl:align-sub [&_sub]:tpl:text-[0.75em] [&_sup]:tpl:align-super [&_sup]:tpl:text-[0.75em] [&_ul]:tpl:my-2 [&_ul]:tpl:pl-6",
2554
+ class: "tpl-text-content tpl:outline-none",
2554
2555
  innerHTML: _(o)
2555
- }, null, 8, ci))], 544));
2556
+ }, null, 8, li))], 544));
2556
2557
  }
2557
2558
  });
2558
2559
  //#endregion
2559
2560
  //#region src/utils/blockComponentResolver.ts
2560
- function ui(e) {
2561
+ function di(e) {
2561
2562
  let t = { fontFamily: e.fontFamily };
2562
2563
  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;
2563
2564
  }
2564
- function di(e, t, n) {
2565
+ function fi(e, t, n) {
2565
2566
  if (t) {
2566
2567
  let n = t.getComponent(e);
2567
2568
  if (n) return n;
2568
2569
  }
2569
2570
  return n[e.type] ?? null;
2570
2571
  }
2571
- function fi(e) {
2572
+ function pi(e) {
2572
2573
  let { padding: t, backgroundColor: n } = e.styles, r = {
2573
2574
  padding: `${t.top}px ${t.right}px ${t.bottom}px ${t.left}px`,
2574
2575
  backgroundColor: n || "transparent"
2575
2576
  };
2576
- return e.type === "section" && e.borderRadius && e.borderRadius > 0 && (r.borderRadius = `${e.borderRadius}px`), r;
2577
+ 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;
2577
2578
  }
2578
- function pi(e) {
2579
+ function mi(e) {
2579
2580
  if (e.type !== "section" || !e.wrapper) return null;
2580
2581
  let t = e.wrapper, n = {};
2581
2582
  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;
2582
2583
  }
2583
2584
  //#endregion
2584
2585
  //#region src/components/blocks/BlockWrapper.vue?vue&type=script&setup=true&lang.ts
2585
- var mi = [
2586
+ var hi = [
2586
2587
  "data-block-id",
2587
2588
  "data-block-type",
2588
2589
  "data-tpl-picked"
2589
- ], hi = ["aria-label"], gi = [
2590
+ ], gi = ["aria-label"], _i = [
2590
2591
  "aria-label",
2591
2592
  "aria-pressed",
2592
2593
  "title"
2593
- ], _i = ["aria-label", "title"], vi = ["aria-label", "title"], yi = ["aria-label", "title"], bi = {
2594
+ ], vi = ["aria-label", "title"], yi = ["aria-label", "title"], bi = ["aria-label", "title"], xi = {
2594
2595
  key: 1,
2595
2596
  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"
2596
- }, xi = { 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)]" }, Si = {
2597
+ }, Si = { 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)]" }, Ci = {
2597
2598
  key: 2,
2598
2599
  class: "tpl:absolute tpl:-left-1 tpl:top-1/2 tpl:z-[5] tpl:-translate-x-full tpl:-translate-y-1/2"
2599
- }, Ci = ["aria-label", "title"], wi = {
2600
+ }, wi = ["aria-label", "title"], Ti = {
2600
2601
  key: 3,
2601
2602
  class: "tpl:absolute tpl:-right-1 tpl:-top-1 tpl:z-[5] tpl:translate-x-full"
2602
- }, Ti = ["aria-label"], Ei = /*#__PURE__*/ Jt(/* @__PURE__ */ d({
2603
+ }, Ei = ["aria-label"], Di = /*#__PURE__*/ Yt(/* @__PURE__ */ d({
2603
2604
  __name: "BlockWrapper",
2604
2605
  props: {
2605
2606
  block: {},
@@ -2611,7 +2612,7 @@ var mi = [
2611
2612
  },
2612
2613
  emits: ["select"],
2613
2614
  setup(e, { emit: t }) {
2614
- let r = B(() => import("./BlockIssueBadge-CXlXn9Sm.js")), i = e, o = t, { t: c, format: u } = Y(), d = n(St, null), f = l(null), p = S(() => d?.liftedBlockId.value === i.block.id), m = S(() => p.value ? u(c.blockActions.dragLifted, { block: i.block.type }) : c.blockActions.drag);
2615
+ let r = B(() => import("./BlockIssueBadge-Bry71Wjz.js")), i = e, o = t, { t: c, format: u } = Y(), d = n(Ct, null), f = l(null), p = S(() => d?.liftedBlockId.value === i.block.id), m = S(() => p.value ? u(c.blockActions.dragLifted, { block: i.block.type }) : c.blockActions.drag);
2615
2616
  async function h() {
2616
2617
  await D(), f.value?.focus();
2617
2618
  }
@@ -2637,13 +2638,7 @@ var mi = [
2637
2638
  let y = S(() => !i.viewport || !i.block.visibility ? !1 : i.block.visibility[i.viewport] === !1), x = S(() => i.previewMode === !0 && y.value), T = S(() => i.viewport ? {
2638
2639
  desktop: c.viewport.desktop,
2639
2640
  mobile: c.viewport.mobile
2640
- }[i.viewport] ?? i.viewport : ""), E = S(() => !!i.block.displayCondition), A = n(at, null), j = n(ct, null), N = n(st, {}), P = S(() => N.savedBlocks?.isPicking.value === !0), F = S(() => !i.nested && N.savedBlocks?.isAvailable.value === !0 && N.savedBlocks?.canCreate.value === !0), I = S(() => i.isSelected && !P.value), L = S(() => N.comments?.getBlockCount(i.block.id) ?? 0), z = S(() => {
2641
- let e = fi(i.block), t = {
2642
- padding: e.padding,
2643
- backgroundColor: e.backgroundColor
2644
- };
2645
- return e.borderRadius && (t.borderRadius = e.borderRadius), t;
2646
- }), ee = S(() => pi(i.block));
2641
+ }[i.viewport] ?? i.viewport : ""), E = S(() => !!i.block.displayCondition), A = n(ot, null), j = n(lt, null), N = n(ct, {}), P = S(() => N.savedBlocks?.isPicking.value === !0), F = S(() => !i.nested && N.savedBlocks?.isAvailable.value === !0 && N.savedBlocks?.canCreate.value === !0), I = S(() => i.isSelected && !P.value), L = S(() => N.comments?.getBlockCount(i.block.id) ?? 0), z = S(() => pi(i.block)), ee = S(() => mi(i.block));
2647
2642
  function te(e) {
2648
2643
  i.previewMode || (e.target?.closest("a") && e.preventDefault(), e.stopPropagation(), o("select"));
2649
2644
  }
@@ -2688,61 +2683,61 @@ var mi = [
2688
2683
  "aria-keyshortcuts": "Space Enter ArrowUp ArrowDown Escape",
2689
2684
  title: _(c).blockActions.drag,
2690
2685
  onKeydown: g
2691
- }, [v(_(Rt), {
2686
+ }, [v(_(zt), {
2692
2687
  size: 14,
2693
2688
  "stroke-width": 1.5
2694
- })], 40, gi),
2689
+ })], 40, _i),
2695
2690
  M("button", {
2696
2691
  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",
2697
2692
  "aria-label": _(c).blockActions.duplicate,
2698
2693
  title: _(c).blockActions.duplicate,
2699
2694
  onClick: O(re, ["stop"])
2700
- }, [v(_(jt), {
2695
+ }, [v(_(Mt), {
2701
2696
  size: 14,
2702
2697
  "stroke-width": 1.5
2703
- })], 8, _i),
2698
+ })], 8, vi),
2704
2699
  F.value ? (s(), C("button", {
2705
2700
  key: 0,
2706
2701
  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",
2707
2702
  "aria-label": _(c).blockActions.saveAsBlock,
2708
2703
  title: _(c).blockActions.saveAsBlock,
2709
2704
  onClick: O(ie, ["stop"])
2710
- }, [v(_(At), {
2705
+ }, [v(_(jt), {
2711
2706
  size: 14,
2712
2707
  "stroke-width": 1.5
2713
- })], 8, vi)) : w("", !0),
2708
+ })], 8, yi)) : w("", !0),
2714
2709
  M("button", {
2715
2710
  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",
2716
2711
  "aria-label": _(c).blockActions.delete,
2717
2712
  title: _(c).blockActions.delete,
2718
2713
  onClick: O(ne, ["stop"])
2719
- }, [v(_(It), {
2714
+ }, [v(_(Lt), {
2720
2715
  size: 14,
2721
2716
  "stroke-width": 1.5
2722
- })], 8, yi)
2723
- ], 8, hi)) : w("", !0),
2724
- y.value ? (s(), C("div", bi, [M("span", xi, [v(_(Pt), {
2717
+ })], 8, bi)
2718
+ ], 8, gi)) : w("", !0),
2719
+ y.value ? (s(), C("div", xi, [M("span", Si, [v(_(Ft), {
2725
2720
  size: 12,
2726
2721
  "stroke-width": 1.5
2727
2722
  }), V(" " + R(_(u)(_(c).blockActions.hiddenOnViewport, { viewport: T.value })), 1)])])) : w("", !0),
2728
- E.value && !y.value ? (s(), C("div", Si, [M("button", {
2723
+ E.value && !y.value ? (s(), C("div", Ci, [M("button", {
2729
2724
  "data-testid": "condition-toggle",
2730
2725
  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)]",
2731
2726
  "aria-label": _(c).blockActions.conditionToggle,
2732
2727
  title: e.block.displayCondition?.label,
2733
2728
  onClick: O(ae, ["stop"])
2734
- }, [v(_(Gt), {
2729
+ }, [v(_(Kt), {
2735
2730
  size: 12,
2736
2731
  "stroke-width": 2
2737
- })], 8, Ci)])) : w("", !0),
2738
- L.value > 0 && !y.value ? (s(), C("div", wi, [M("button", {
2732
+ })], 8, wi)])) : w("", !0),
2733
+ L.value > 0 && !y.value ? (s(), C("div", Ti, [M("button", {
2739
2734
  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)]",
2740
2735
  "aria-label": _(u)(_(c).blockActions.comments, { count: String(L.value) }),
2741
2736
  onClick: n[0] ||= O((t) => _(N).comments?.openForBlock(e.block.id), ["stop"])
2742
- }, [v(_(Ht), {
2737
+ }, [v(_(Ut), {
2743
2738
  size: 12,
2744
2739
  "stroke-width": 2.5
2745
- }), V(" " + R(L.value), 1)], 8, Ti)])) : w("", !0),
2740
+ }), V(" " + R(L.value), 1)], 8, Ei)])) : w("", !0),
2746
2741
  ee.value ? (s(), C("div", {
2747
2742
  key: 4,
2748
2743
  class: "tpl-section-wrapper",
@@ -2755,31 +2750,31 @@ var mi = [
2755
2750
  class: "tpl-block-content",
2756
2751
  style: k(z.value)
2757
2752
  }, [a(t.$slots, "default", {}, void 0, !0)], 4))
2758
- ], 10, mi));
2753
+ ], 10, hi));
2759
2754
  }
2760
- }), [["__scopeId", "data-v-096f1d37"]]);
2755
+ }), [["__scopeId", "data-v-2c239048"]]);
2761
2756
  //#endregion
2762
2757
  //#region src/utils/unwrapParagraph.ts
2763
- function Di(e) {
2758
+ function Oi(e) {
2764
2759
  let t = e.match(/^\s*<p\b[^>]*>([\s\S]*)<\/p>\s*$/);
2765
2760
  return !t || /<\/p>\s*<p\b/i.test(t[1]) ? e : t[1];
2766
2761
  }
2767
2762
  //#endregion
2768
2763
  //#region src/components/blocks/TitleBlock.vue
2769
- var Oi = /* @__PURE__ */ d({
2764
+ var ki = /* @__PURE__ */ d({
2770
2765
  __name: "TitleBlock",
2771
2766
  props: {
2772
2767
  block: {},
2773
2768
  viewport: {}
2774
2769
  },
2775
2770
  setup(e) {
2776
- let t = e, n = B(() => import("./TitleEditor-CSeDvWVn.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = si(() => t.block.content), d = S(() => {
2771
+ let t = e, n = B(() => import("./TitleEditor-CfHWnThg.js")), { isEditing: r, blockRef: i, toolbarPosition: a, resolvedContent: o, handleDoubleClick: c, handleEditorDone: l } = ci(() => t.block.content), d = S(() => {
2777
2772
  let e = {
2778
- fontSize: `${Me[t.block.level]}px`,
2773
+ fontSize: `${Ne[t.block.level]}px`,
2779
2774
  textAlign: t.block.textAlign
2780
2775
  };
2781
2776
  return t.block.color && (e.color = t.block.color), t.block.fontFamily && (e.fontFamily = t.block.fontFamily), e;
2782
- }), f = S(() => `h${t.block.level}`), p = S(() => Di(o.value));
2777
+ }), f = S(() => `h${t.block.level}`), p = S(() => Oi(o.value));
2783
2778
  return (t, o) => (s(), C("div", {
2784
2779
  ref_key: "blockRef",
2785
2780
  ref: i,
@@ -2797,7 +2792,7 @@ var Oi = /* @__PURE__ */ d({
2797
2792
  "onDone"
2798
2793
  ])) : (s(), A(u(f.value), {
2799
2794
  key: 1,
2800
- class: "tpl-text-content tpl:m-0 tpl:font-[inherit] tpl:text-[length:inherit] tpl:leading-tight tpl:outline-none [&_a]:tpl:underline [&_p]:tpl:m-0 [&_p]:tpl:mb-2 [&_p:last-child]:tpl:mb-0",
2795
+ class: "tpl-text-content tpl:m-0 tpl:font-[inherit] tpl:text-[length:inherit] tpl:leading-tight tpl:outline-none",
2801
2796
  style: { color: "inherit" },
2802
2797
  innerHTML: p.value
2803
2798
  }, null, 8, ["innerHTML"]))], 36));
@@ -2805,16 +2800,16 @@ var Oi = /* @__PURE__ */ d({
2805
2800
  });
2806
2801
  //#endregion
2807
2802
  //#region src/utils/sectionColumnDrop.ts
2808
- function ki(e) {
2803
+ function Ai(e) {
2809
2804
  return e.dataset.blockType !== "section" && e.dataset.paletteType !== "section";
2810
2805
  }
2811
2806
  //#endregion
2812
2807
  //#region src/components/blocks/SectionBlock.vue?vue&type=script&setup=true&lang.ts
2813
- var Ai = { class: "tpl:w-full" }, ji = {
2808
+ var ji = { class: "tpl:w-full" }, Mi = {
2814
2809
  key: 0,
2815
2810
  "data-testid": "section-drop-hint",
2816
2811
  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)]"
2817
- }, Mi = /* @__PURE__ */ d({
2812
+ }, Ni = /* @__PURE__ */ d({
2818
2813
  __name: "SectionBlock",
2819
2814
  props: {
2820
2815
  block: {},
@@ -2822,13 +2817,13 @@ var Ai = { class: "tpl:w-full" }, ji = {
2822
2817
  },
2823
2818
  setup(e) {
2824
2819
  let t = {
2825
- title: Oi,
2826
- paragraph: li,
2827
- image: Xr,
2828
- button: Qn,
2829
- divider: Ar,
2830
- custom: Or
2831
- }, a = e, { t: o } = Y(), c = rt(J, "SectionBlock"), l = n(ct, null), d = n(vt, null), p = n(st, {}), m = n(_t, null);
2820
+ title: ki,
2821
+ paragraph: ui,
2822
+ image: Zr,
2823
+ button: $n,
2824
+ divider: jr,
2825
+ custom: kr
2826
+ }, a = e, { t: o } = Y(), c = it(J, "SectionBlock"), l = n(lt, null), d = n(yt, null), p = n(ct, {}), m = n(vt, null);
2832
2827
  function h(e) {
2833
2828
  let t = p.savedBlocks;
2834
2829
  if (t?.isPicking.value) {
@@ -2863,7 +2858,7 @@ var Ai = { class: "tpl:w-full" }, ji = {
2863
2858
  r[e] = n, c.updateBlock(a.block.id, { children: r });
2864
2859
  }
2865
2860
  function D(e) {
2866
- return di(e, d, t);
2861
+ return fi(e, d, t);
2867
2862
  }
2868
2863
  function O(e, t) {
2869
2864
  e.type === "custom" && c.updateBlock(e.id, {
@@ -2871,7 +2866,7 @@ var Ai = { class: "tpl:w-full" }, ji = {
2871
2866
  dataSourceFetched: t.dataSourceFetched
2872
2867
  });
2873
2868
  }
2874
- return (t, n) => (s(), C("div", Ai, [M("div", { class: b(["tpl:flex tpl:gap-0", { "tpl:flex-col": x.value }]) }, [(s(!0), C(L, null, r(y.value, (t, n) => (s(), C("div", {
2869
+ return (t, n) => (s(), C("div", ji, [M("div", { class: b(["tpl:flex tpl:gap-0", { "tpl:flex-col": x.value }]) }, [(s(!0), C(L, null, r(y.value, (t, n) => (s(), C("div", {
2875
2870
  key: n,
2876
2871
  class: b(["tpl:relative tpl:min-h-[60px] tpl:rounded", T(n).length === 0 ? "tpl:border tpl:border-dashed tpl:border-[var(--tpl-border)]" : ""]),
2877
2872
  style: k({ width: x.value ? "100%" : g.value[n] })
@@ -2880,7 +2875,7 @@ var Ai = { class: "tpl:w-full" }, ji = {
2880
2875
  group: {
2881
2876
  name: "blocks",
2882
2877
  pull: !0,
2883
- put: (e, t, n) => _(ki)(n)
2878
+ put: (e, t, n) => _(Ai)(n)
2884
2879
  },
2885
2880
  animation: 150,
2886
2881
  "ghost-class": "tpl-ghost",
@@ -2893,7 +2888,7 @@ var Ai = { class: "tpl:w-full" }, ji = {
2893
2888
  class: "tpl:min-h-[60px]",
2894
2889
  "onUpdate:modelValue": (e) => E(n, e)
2895
2890
  }, {
2896
- default: i(() => [(s(!0), C(L, null, r(T(n), (t) => f((s(), C("div", { key: t.id }, [v(Ei, {
2891
+ default: i(() => [(s(!0), C(L, null, r(T(n), (t) => f((s(), C("div", { key: t.id }, [v(Di, {
2897
2892
  block: t,
2898
2893
  "is-selected": _(c).state.selectedBlockId === t.id,
2899
2894
  viewport: e.viewport,
@@ -2925,13 +2920,13 @@ var Ai = { class: "tpl:w-full" }, ji = {
2925
2920
  "model-value",
2926
2921
  "group",
2927
2922
  "onUpdate:modelValue"
2928
- ]), T(n).length === 0 ? (s(), C("div", ji, [M("span", null, R(_(o).section.dropHere), 1)])) : w("", !0)], 6))), 128))], 2)]));
2923
+ ]), T(n).length === 0 ? (s(), C("div", Mi, [M("span", null, R(_(o).section.dropHere), 1)])) : w("", !0)], 6))), 128))], 2)]));
2929
2924
  }
2930
- }), Ni = ye, Pi = {
2925
+ }), Pi = ye, Fi = {
2931
2926
  small: 24,
2932
2927
  medium: 32,
2933
2928
  large: 48
2934
- }, Fi = [
2929
+ }, Ii = [
2935
2930
  "facebook",
2936
2931
  "twitter",
2937
2932
  "instagram",
@@ -2949,11 +2944,11 @@ var Ai = { class: "tpl:w-full" }, ji = {
2949
2944
  "github",
2950
2945
  "dribbble",
2951
2946
  "behance"
2952
- ], Ii = [
2947
+ ], Li = [
2953
2948
  "width",
2954
2949
  "height",
2955
2950
  "fill"
2956
- ], Li = ["d"], Ri = /* @__PURE__ */ d({
2951
+ ], Ri = ["d"], zi = /* @__PURE__ */ d({
2957
2952
  __name: "SocialIconSvg",
2958
2953
  props: {
2959
2954
  platform: {},
@@ -2961,7 +2956,7 @@ var Ai = { class: "tpl:w-full" }, ji = {
2961
2956
  iconSize: {}
2962
2957
  },
2963
2958
  setup(e) {
2964
- let t = e, n = S(() => Ni[t.platform]), r = S(() => Pi[t.iconSize]), i = S(() => {
2959
+ let t = e, n = S(() => Pi[t.platform]), r = S(() => Fi[t.iconSize]), i = S(() => {
2965
2960
  let e = {
2966
2961
  display: "inline-flex",
2967
2962
  alignItems: "center",
@@ -3005,12 +3000,12 @@ var Ai = { class: "tpl:w-full" }, ji = {
3005
3000
  viewBox: "0 0 24 24",
3006
3001
  fill: o.value,
3007
3002
  xmlns: "http://www.w3.org/2000/svg"
3008
- }, [M("path", { d: n.value.path }, null, 8, Li)], 8, Ii))], 4));
3003
+ }, [M("path", { d: n.value.path }, null, 8, Ri)], 8, Li))], 4));
3009
3004
  }
3010
- }), zi = { class: "tpl:w-full" }, Bi = ["href"], Vi = {
3005
+ }), Bi = { class: "tpl:w-full" }, Vi = ["href"], Hi = {
3011
3006
  key: 1,
3012
3007
  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)]"
3013
- }, Hi = /* @__PURE__ */ d({
3008
+ }, Ui = /* @__PURE__ */ d({
3014
3009
  __name: "SocialIconsBlock",
3015
3010
  props: {
3016
3011
  block: {},
@@ -3023,7 +3018,7 @@ var Ai = { class: "tpl:w-full" }, ji = {
3023
3018
  gap: `${t.block.spacing}px`,
3024
3019
  justifyContent: t.block.align === "left" ? "flex-start" : t.block.align === "right" ? "flex-end" : "center"
3025
3020
  })), a = S(() => t.block.icons.length > 0);
3026
- return (t, o) => (s(), C("div", zi, [a.value ? (s(), C("div", {
3021
+ return (t, o) => (s(), C("div", Bi, [a.value ? (s(), C("div", {
3027
3022
  key: 0,
3028
3023
  style: k(i.value)
3029
3024
  }, [(s(!0), C(L, null, r(e.block.icons, (t) => (s(), C("a", {
@@ -3031,7 +3026,7 @@ var Ai = { class: "tpl:w-full" }, ji = {
3031
3026
  href: t.url || "#",
3032
3027
  class: "tpl:cursor-default",
3033
3028
  onClick: o[0] ||= O(() => {}, ["prevent"])
3034
- }, [v(Ri, {
3029
+ }, [v(zi, {
3035
3030
  platform: t.platform,
3036
3031
  "icon-style": e.block.iconStyle,
3037
3032
  "icon-size": e.block.iconSize
@@ -3039,44 +3034,44 @@ var Ai = { class: "tpl:w-full" }, ji = {
3039
3034
  "platform",
3040
3035
  "icon-style",
3041
3036
  "icon-size"
3042
- ])], 8, Bi))), 128))], 4)) : (s(), C("div", Vi, [v(_(kt), { size: 16 }), M("span", null, R(_(n).social.addIcons), 1)]))]));
3037
+ ])], 8, Vi))), 128))], 4)) : (s(), C("div", Hi, [v(_(At), { size: 16 }), M("span", null, R(_(n).social.addIcons), 1)]))]));
3043
3038
  }
3044
- }), Ui = { class: "tpl:w-full" }, Wi = {
3039
+ }), Wi = { class: "tpl:w-full" }, Gi = {
3045
3040
  key: 0,
3046
3041
  class: "tpl:absolute tpl:rounded tpl:px-2 tpl:py-0.5 tpl:text-[10px] tpl:font-medium",
3047
3042
  style: {
3048
3043
  "background-color": "var(--tpl-bg-hover)",
3049
3044
  color: "var(--tpl-text-dim)"
3050
3045
  }
3051
- }, Gi = /* @__PURE__ */ d({
3046
+ }, Ki = /* @__PURE__ */ d({
3052
3047
  __name: "SpacerBlock",
3053
3048
  props: {
3054
3049
  block: {},
3055
3050
  viewport: {}
3056
3051
  },
3057
3052
  setup(e) {
3058
- let t = e, n = rt(J, "SpacerBlock"), r = S(() => ({
3053
+ let t = e, n = it(J, "SpacerBlock"), r = S(() => ({
3059
3054
  height: `${t.block.height}px`,
3060
3055
  minHeight: `${t.block.height}px`,
3061
3056
  ...n.state.previewMode ? {} : { borderColor: "var(--tpl-border)" }
3062
3057
  }));
3063
- return (t, i) => (s(), C("div", Ui, [M("div", {
3058
+ return (t, i) => (s(), C("div", Wi, [M("div", {
3064
3059
  style: k(r.value),
3065
3060
  class: b(["tpl:relative tpl:flex tpl:items-center tpl:justify-center", { "tpl:border-y tpl:border-dashed": !_(n).state.previewMode }])
3066
- }, [_(n).state.previewMode ? w("", !0) : (s(), C("span", Wi, R(e.block.height) + "px ", 1))], 6)]));
3061
+ }, [_(n).state.previewMode ? w("", !0) : (s(), C("span", Gi, R(e.block.height) + "px ", 1))], 6)]));
3067
3062
  }
3068
- }), Ki = { class: "tpl:w-full" }, qi = { key: 0 }, Ji = [
3063
+ }), qi = { class: "tpl:w-full" }, Ji = { key: 0 }, Yi = [
3069
3064
  "aria-label",
3070
3065
  "data-placeholder",
3071
3066
  "onBlur"
3072
- ], Yi = [
3067
+ ], Xi = [
3073
3068
  "aria-label",
3074
3069
  "data-placeholder",
3075
3070
  "onBlur"
3076
- ], Xi = {
3071
+ ], Zi = {
3077
3072
  key: 1,
3078
3073
  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)]"
3079
- }, Zi = /*#__PURE__*/ Jt(/* @__PURE__ */ d({
3074
+ }, Qi = /*#__PURE__*/ Yt(/* @__PURE__ */ d({
3080
3075
  __name: "TableBlock",
3081
3076
  props: {
3082
3077
  block: {},
@@ -3090,7 +3085,7 @@ var Ai = { class: "tpl:w-full" }, ji = {
3090
3085
  updated(e, t) {
3091
3086
  t.value !== t.oldValue && e.getRootNode().activeElement !== e && (e.textContent = t.value ?? "");
3092
3087
  }
3093
- }, n = e, { t: i } = Y(), a = rt(J, "TableBlock"), o = S(() => n.block.rows.length > 0), c = S(() => {
3088
+ }, n = e, { t: i } = Y(), a = it(J, "TableBlock"), o = S(() => n.block.rows.length > 0), c = S(() => {
3094
3089
  let e = {
3095
3090
  width: "100%",
3096
3091
  borderCollapse: "collapse",
@@ -3121,11 +3116,11 @@ var Ai = { class: "tpl:w-full" }, ji = {
3121
3116
  } : n);
3122
3117
  a.updateBlock(n.block.id, { rows: o });
3123
3118
  }
3124
- return (e, n) => (s(), C("div", Ki, [o.value ? (s(), C("table", {
3119
+ return (e, n) => (s(), C("div", qi, [o.value ? (s(), C("table", {
3125
3120
  key: 0,
3126
3121
  style: k(c.value),
3127
3122
  class: "tpl-table-editable"
3128
- }, [d.value ? (s(), C("thead", qi, [M("tr", null, [(s(!0), C(L, null, r(d.value.cells, (e) => f((s(), C("th", {
3123
+ }, [d.value ? (s(), C("thead", Ji, [M("tr", null, [(s(!0), C(L, null, r(d.value.cells, (e) => f((s(), C("th", {
3129
3124
  key: e.id,
3130
3125
  style: k(u.value),
3131
3126
  "aria-label": _(i).table.cellPlaceholder,
@@ -3134,7 +3129,7 @@ var Ai = { class: "tpl:w-full" }, ji = {
3134
3129
  onBlur: (t) => h(d.value.id, e.id, t),
3135
3130
  onKeydown: n[0] ||= y(O((e) => e.target.blur(), ["prevent"]), ["enter"]),
3136
3131
  onClick: O(m, ["stop"])
3137
- }, null, 44, Ji)), [[t, e.content]])), 128))])])) : w("", !0), M("tbody", null, [(s(!0), C(L, null, r(p.value, (e) => (s(), C("tr", { key: e.id }, [(s(!0), C(L, null, r(e.cells, (r) => f((s(), C("td", {
3132
+ }, null, 44, Yi)), [[t, e.content]])), 128))])])) : w("", !0), M("tbody", null, [(s(!0), C(L, null, r(p.value, (e) => (s(), C("tr", { key: e.id }, [(s(!0), C(L, null, r(e.cells, (r) => f((s(), C("td", {
3138
3133
  key: r.id,
3139
3134
  style: k(l.value),
3140
3135
  "aria-label": _(i).table.cellPlaceholder,
@@ -3143,9 +3138,9 @@ var Ai = { class: "tpl:w-full" }, ji = {
3143
3138
  onBlur: (t) => h(e.id, r.id, t),
3144
3139
  onKeydown: n[1] ||= y(O((e) => e.target.blur(), ["prevent"]), ["enter"]),
3145
3140
  onClick: O(m, ["stop"])
3146
- }, null, 44, Yi)), [[t, r.content]])), 128))]))), 128))])], 4)) : (s(), C("div", Xi, [v(_(Wt), { size: 16 }), M("span", null, R(_(i).table.empty), 1)]))]));
3141
+ }, null, 44, Xi)), [[t, r.content]])), 128))]))), 128))])], 4)) : (s(), C("div", Zi, [v(_(Gt), { size: 16 }), M("span", null, R(_(i).table.empty), 1)]))]));
3147
3142
  }
3148
- }), [["__scopeId", "data-v-963ac422"]]), Qi = /* @__PURE__ */ d({
3143
+ }), [["__scopeId", "data-v-963ac422"]]), $i = /* @__PURE__ */ d({
3149
3144
  __name: "VideoPlayButton",
3150
3145
  props: { hoverEffect: {
3151
3146
  type: Boolean,
@@ -3163,7 +3158,7 @@ var Ai = { class: "tpl:w-full" }, ji = {
3163
3158
  });
3164
3159
  //#endregion
3165
3160
  //#region src/utils/videoThumbnail.ts
3166
- function $i(e) {
3161
+ function ea(e) {
3167
3162
  if (!e) return {
3168
3163
  platform: "unknown",
3169
3164
  videoId: null,
@@ -3195,25 +3190,25 @@ function $i(e) {
3195
3190
  thumbnailUrl: null
3196
3191
  };
3197
3192
  }
3198
- function ea(e, t) {
3199
- return t || $i(e).thumbnailUrl;
3193
+ function ta(e, t) {
3194
+ return t || ea(e).thumbnailUrl;
3200
3195
  }
3201
3196
  //#endregion
3202
3197
  //#region src/components/blocks/VideoBlock.vue?vue&type=script&setup=true&lang.ts
3203
- var ta = ["src", "alt"], na = {
3198
+ var na = ["src", "alt"], ra = {
3204
3199
  class: "tpl:max-w-full tpl:truncate tpl:px-3 tpl:text-xs tpl:font-medium tpl:text-[var(--tpl-primary)]",
3205
3200
  style: { opacity: "0.7" }
3206
- }, ra = ["href"], ia = ["src", "alt"], aa = ["src", "alt"], oa = {
3201
+ }, ia = ["href"], aa = ["src", "alt"], oa = ["src", "alt"], sa = {
3207
3202
  key: 3,
3208
3203
  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)]"
3209
- }, sa = /* @__PURE__ */ d({
3204
+ }, ca = /* @__PURE__ */ d({
3210
3205
  __name: "VideoBlock",
3211
3206
  props: {
3212
3207
  block: {},
3213
3208
  viewport: {}
3214
3209
  },
3215
3210
  setup(e) {
3216
- let t = e, { t: n } = Y(), { syntax: r } = Q(), i = S(() => U(t.block.url, r) || U(t.block.thumbnailUrl, r)), a = Tn(() => i.value ? void 0 : t.block.thumbnailUrl || void 0), o = Tn(() => i.value ? t.block.placeholderUrl : void 0), c = S(() => i.value ? null : t.block.thumbnailUrl ? a.value ?? null : ea(t.block.url)), l = S(() => ({ textAlign: t.block.align })), u = S(() => {
3211
+ let t = e, { t: n } = Y(), { syntax: r } = Q(), i = S(() => U(t.block.url, r) || U(t.block.thumbnailUrl, r)), a = En(() => i.value ? void 0 : t.block.thumbnailUrl || void 0), o = En(() => i.value ? t.block.placeholderUrl : void 0), c = S(() => i.value ? null : t.block.thumbnailUrl ? a.value ?? null : ta(t.block.url)), l = S(() => ({ textAlign: t.block.align })), u = S(() => {
3217
3212
  let e = t.block.align;
3218
3213
  return {
3219
3214
  maxWidth: "100%",
@@ -3236,16 +3231,16 @@ var ta = ["src", "alt"], na = {
3236
3231
  src: _(o),
3237
3232
  alt: e.block.alt,
3238
3233
  style: k(d.value)
3239
- }, null, 12, ta), v(Qi)], 4)) : i.value ? (s(), C("div", {
3234
+ }, null, 12, na), v($i)], 4)) : i.value ? (s(), C("div", {
3240
3235
  key: 1,
3241
3236
  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)]",
3242
3237
  style: k([{ "border-color": "color-mix(in srgb, var(--tpl-primary) 40%, transparent)" }, u.value])
3243
- }, [v(_(Bt), {
3238
+ }, [v(_(Vt), {
3244
3239
  size: 36,
3245
3240
  "stroke-width": 1.5,
3246
3241
  class: "tpl:text-[var(--tpl-primary)]",
3247
3242
  style: { opacity: "0.5" }
3248
- }), M("span", na, [v(Xn, { text: f.value }, null, 8, ["text"])])], 4)) : c.value ? (s(), C(L, { key: 2 }, [e.block.url ? (s(), C("a", {
3243
+ }), M("span", ra, [v(Zn, { text: f.value }, null, 8, ["text"])])], 4)) : c.value ? (s(), C(L, { key: 2 }, [e.block.url ? (s(), C("a", {
3249
3244
  key: 0,
3250
3245
  href: e.block.url,
3251
3246
  target: "_blank",
@@ -3258,7 +3253,7 @@ var ta = ["src", "alt"], na = {
3258
3253
  src: c.value,
3259
3254
  alt: e.block.alt,
3260
3255
  style: k(d.value)
3261
- }, null, 12, ia), v(Qi, { "hover-effect": "" })], 12, ra)) : (s(), C("div", {
3256
+ }, null, 12, aa), v($i, { "hover-effect": "" })], 12, ia)) : (s(), C("div", {
3262
3257
  key: 1,
3263
3258
  class: "tpl:relative tpl:inline-block",
3264
3259
  style: k(u.value)
@@ -3267,51 +3262,51 @@ var ta = ["src", "alt"], na = {
3267
3262
  src: c.value,
3268
3263
  alt: e.block.alt,
3269
3264
  style: k(d.value)
3270
- }, null, 12, aa), v(Qi)], 4))], 64)) : (s(), C("div", oa, [v(_(Bt), {
3265
+ }, null, 12, oa), v($i)], 4))], 64)) : (s(), C("div", sa, [v(_(Vt), {
3271
3266
  size: 40,
3272
3267
  "stroke-width": 1.5,
3273
3268
  class: "tpl:text-[var(--tpl-border-light)]"
3274
3269
  }), M("span", null, R(_(n).video.addVideo), 1)]))], 4));
3275
3270
  }
3276
- }), ca = {
3277
- section: Mi,
3278
- title: Oi,
3279
- paragraph: li,
3280
- image: Xr,
3281
- button: Qn,
3282
- divider: Ar,
3283
- video: sa,
3284
- social: Hi,
3285
- menu: ei,
3286
- table: Zi,
3287
- spacer: Gi,
3288
- html: Ir,
3289
- countdown: B(() => import("./CountdownBlock-_7TUBqJS.js"))
3271
+ }), la = {
3272
+ section: Ni,
3273
+ title: ki,
3274
+ paragraph: ui,
3275
+ image: Zr,
3276
+ button: $n,
3277
+ divider: jr,
3278
+ video: ca,
3279
+ social: Ui,
3280
+ menu: ti,
3281
+ table: Qi,
3282
+ spacer: Ki,
3283
+ html: Lr,
3284
+ countdown: B(() => import("./CountdownBlock-CWeJBC0L.js"))
3290
3285
  };
3291
- function la(e) {
3286
+ function ua(e) {
3292
3287
  let { editor: n, config: r, translations: i, fontsManager: a } = e, { t: s, format: u } = Y(i);
3293
3288
  n.setUiTheme(r.uiTheme ?? "auto");
3294
- let { resolvedTheme: d } = Nn(S(() => n.state.uiTheme)), f = l(r.theme ?? {}), { themeStyles: p } = Fn({
3289
+ let { resolvedTheme: d } = Pn(S(() => n.state.uiTheme)), f = l(r.theme ?? {}), { themeStyles: p } = In({
3295
3290
  themeOverrides: f,
3296
3291
  resolvedTheme: d,
3297
3292
  extraStyles: () => ({
3298
3293
  "--tpl-drop-text": `"${i.canvas.dropHere}"`,
3299
3294
  ...e.themeExtraStyles?.()
3300
3295
  })
3301
- }), m = an({
3296
+ }), m = on({
3302
3297
  content: n.content,
3303
3298
  setContent: (e, t) => n.setContent(e, t),
3304
3299
  ...e.historyOptions
3305
3300
  });
3306
- fn(n, m);
3307
- let g = sn({
3301
+ pn(n, m);
3302
+ let g = cn({
3308
3303
  addBlock: n.addBlock,
3309
3304
  removeBlock: n.removeBlock,
3310
3305
  updateBlock: n.updateBlock,
3311
3306
  selectBlock: n.selectBlock,
3312
3307
  findBlockLocation: n.findBlockLocation,
3313
3308
  blockDefaults: r.blockDefaults
3314
- }), _ = un(n), v = e.autoSaveOptions !== null && e.autoSaveOptions !== void 0 ? ln({
3309
+ }), _ = dn(n), v = e.autoSaveOptions !== null && e.autoSaveOptions !== void 0 ? un({
3315
3310
  content: n.content,
3316
3311
  isDirty: () => n.state.isDirty,
3317
3312
  ...e.autoSaveOptions
@@ -3319,25 +3314,25 @@ function la(e) {
3319
3314
  v && (y = t(m.isNavigating, (e) => {
3320
3315
  e ? v.pause() : v.resume();
3321
3316
  }));
3322
- let b = Mn(n, {
3317
+ let b = Nn(n, {
3323
3318
  t: s,
3324
3319
  format: u
3325
- }, r.customBlocks ?? []), x = Dt(r.colors);
3320
+ }, r.customBlocks ?? []), x = Ot(r.colors);
3326
3321
  if (x.allowCustomIgnored && X.warn("config.colors.allowCustom: false is ignored without presets — keeping the color wheel and hex input so a color can still be chosen."), x.invalidPresets.length > 0 && X.warn(`config.colors.presets skipped invalid entries: ${x.invalidPresets.join(", ")} — presets must be hex colors (#rgb or #rrggbb).`), x.allowCustom === !1) {
3327
- let e = Wn(x.presets, r.blockDefaults, r.templateDefaults);
3322
+ let e = Gn(x.presets, r.blockDefaults, r.templateDefaults);
3328
3323
  e.length > 0 && X.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.`);
3329
3324
  }
3330
- let C = In();
3331
- Vn(C, ca);
3325
+ let C = Ln();
3326
+ Hn(C, la);
3332
3327
  let w = /* @__PURE__ */ new Set();
3333
3328
  function T(e) {
3334
3329
  for (let t of e) {
3335
- C.registerCustom(t, Or);
3336
- for (let e of Kn(t, x)) w.has(e.id) || (w.add(e.id), X.warn(e.message));
3330
+ C.registerCustom(t, kr);
3331
+ for (let e of qn(t, x)) w.has(e.id) || (w.add(e.id), X.warn(e.message));
3337
3332
  }
3338
3333
  }
3339
3334
  r.customBlocks?.length && T(r.customBlocks);
3340
- let E = xn();
3335
+ let E = Sn();
3341
3336
  if (o() && h(E.dispose), e.containerEl) {
3342
3337
  let t = e.containerEl;
3343
3338
  G(document, "pointerdown", (e) => {
@@ -3354,7 +3349,7 @@ function la(e) {
3354
3349
  v?.flush();
3355
3350
  }
3356
3351
  function O(t) {
3357
- E.isActive() && Jn(t, {
3352
+ E.isActive() && Yn(t, {
3358
3353
  history: m,
3359
3354
  selectBlock: (e) => n.selectBlock(e),
3360
3355
  getSelectedBlockId: () => n.state.selectedBlockId,
@@ -3368,29 +3363,29 @@ function la(e) {
3368
3363
  }
3369
3364
  G(document, "keydown", O);
3370
3365
  let k = l(null);
3371
- c(ut, e.editorRoot ?? document), c(et, k), c(nt, i), c(J, n), c(bt, m), c(at, g), c(ct, _), c(it, a), c(We, p), c(Ye, d), c(ht, r.blockDefaults), c(vt, C), c(lt, r.customBlocks ?? []), c(Qe, r.paletteBlocks), c(Ct, Hn(r.htmlBlockPreview)), c(yt, x), c(gt, Ln(n.content, C));
3366
+ c(dt, e.editorRoot ?? document), c(tt, k), c(rt, i), c(J, n), c(xt, m), c(ot, g), c(lt, _), c(at, a), c(Ge, p), c(Xe, d), c(gt, r.blockDefaults), c(yt, C), c(ut, r.customBlocks ?? []), c($e, r.paletteBlocks), c(wt, Un(r.htmlBlockPreview)), c(bt, x), c(_t, Rn(n.content, C));
3372
3367
  let A = Se(r.mergeTags?.syntax);
3373
- c(K, r.mergeTags?.tags ?? []), c(ft, A), c(Ze, r.mergeTags?.onRequest ?? null), c(qe, r.mergeTags?.autocomplete !== !1);
3374
- let j = l(Ne(r.mergeTags?.tags ?? []));
3375
- c($e, j);
3376
- let M = Cn({
3368
+ c(K, r.mergeTags?.tags ?? []), c(pt, A), c(Qe, r.mergeTags?.onRequest ?? null), c(Je, r.mergeTags?.autocomplete !== !1);
3369
+ let j = l(Pe(r.mergeTags?.tags ?? []));
3370
+ c(et, j);
3371
+ let M = wn({
3377
3372
  resolvePreview: r.resolvePreview,
3378
3373
  getContent: () => n.content.value,
3379
3374
  isActive: () => n.state.previewMode
3380
3375
  });
3381
- c(Je, M), c(Xe, r.resolvePreview);
3376
+ c(Ye, M), c(Ze, r.resolvePreview);
3382
3377
  let N = S(() => !(n.state.previewMode && M.isConfigured));
3383
- c(_t, N);
3384
- let P = En();
3385
- c(Ke, P), c(Ge, r.logicTags?.tags ?? []), c(tt, r.logicTags?.pairs ?? []), c(Ue, r.logicTags?.onRequest ?? null), c(xt, Dn()), c(dt, r.onRequestMedia ?? null), c(ot, r.resolveImageUrl ? wn(r.resolveImageUrl) : null), c(pt, r.displayConditions?.conditions ?? []), c(mt, r.displayConditions?.allowCustom ?? !1), c(st, e.capabilities ?? {}), c(St, b);
3386
- let F = On(r.lint) ? null : kn({
3378
+ c(vt, N);
3379
+ let P = Dn();
3380
+ c(qe, P), c(Ke, r.logicTags?.tags ?? []), c(nt, r.logicTags?.pairs ?? []), c(We, r.logicTags?.onRequest ?? null), c(St, On()), c(ft, r.onRequestMedia ?? null), c(st, r.resolveImageUrl ? Tn(r.resolveImageUrl) : null), c(mt, r.displayConditions?.conditions ?? []), c(ht, r.displayConditions?.allowCustom ?? !1), c(ct, e.capabilities ?? {}), c(Ct, b);
3381
+ let F = kn(r.lint) ? null : An({
3387
3382
  content: n.content,
3388
3383
  options: r.lint ?? {},
3389
3384
  updateBlock: n.updateBlock,
3390
3385
  updateSettings: n.updateSettings,
3391
3386
  removeBlock: n.removeBlock
3392
3387
  });
3393
- c(wt, F);
3388
+ c(Tt, F);
3394
3389
  function I() {
3395
3390
  y?.(), F?.destroy(), v?.destroy(), m.destroy();
3396
3391
  }
@@ -3416,6 +3411,6 @@ function la(e) {
3416
3411
  };
3417
3412
  }
3418
3413
  //#endregion
3419
- export { jn as A, en as B, ur as C, tr as D, rr as E, gn as F, hn as I, pn as L, Cn as M, vn as N, Qn as O, _n as P, dn as R, hr as S, ir as T, Ir as _, Hi as a, yr as b, Oi as c, ui as d, di as f, Rr as g, Xr as h, Gi as i, An as j, Gn as k, Ei as l, ei as m, sa as n, Fi as o, li as p, Zi as r, Mi as s, la as t, fi as u, Ar as v, lr as w, _r as x, Or as y, cn as z };
3414
+ export { Mn as A, tn as B, dr as C, nr as D, ir as E, _n as F, gn as I, mn as L, wn as M, yn as N, $n as O, vn as P, fn as R, gr as S, ar as T, Lr as _, Ui as a, br as b, ki as c, di as d, fi as f, zr as g, Zr as h, Ki as i, jn as j, Kn as k, Di as l, ti as m, ca as n, Ii as o, ui as p, Qi as r, Ni as s, ua as t, pi as u, jr as v, ur as w, vr as x, kr as y, ln as z };
3420
3415
 
3421
- //# sourceMappingURL=useEditorCore-Dq5gdn5i.js.map
3416
+ //# sourceMappingURL=useEditorCore-BQeEwEQ9.js.map