@templatical/editor 0.25.0 → 0.25.2

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 (216) hide show
  1. package/dist/{AiChatSidebar-CIkS8DsO.js → AiChatSidebar-JLsbPnsH.js} +14 -14
  2. package/dist/{AiFeatureMenu-Cji1LBJJ.js → AiFeatureMenu-BvA-lViN.js} +7 -7
  3. package/dist/{BlockIssueBadge-BQiT0FML.js → BlockIssueBadge-Cf0-GC3o.js} +5 -5
  4. package/dist/{BlockPreviewCanvas-DAnwZofk.js → BlockPreviewCanvas-CnJIM5TO.js} +3 -3
  5. package/dist/{CloudEditor-CXaft6Ej.js → CloudEditor-Caq7z4-7.js} +25 -25
  6. package/dist/{CollaboratorBar-BR-rL2wG.js → CollaboratorBar-BFz4LgA0.js} +4 -4
  7. package/dist/{ColorPicker-B4ArSUhy.js → ColorPicker-B5xXWWX5.js} +6 -6
  8. package/dist/{CommentsSidebar-Bm5GLDts.js → CommentsSidebar-CGihWwn9.js} +15 -15
  9. package/dist/{CountdownBlock-CIVAQDVu.js → CountdownBlock-DuyvGcr8.js} +3 -3
  10. package/dist/{CountdownToolbar-DBmb3tlb.js → CountdownToolbar-DpNCZAUI.js} +4 -4
  11. package/dist/{DesignReferenceSidebar-CnyJ8L-j.js → DesignReferenceSidebar-CiIHHiil.js} +11 -11
  12. package/dist/{IssuesPanel-D3XgmYCt.js → IssuesPanel-CUkmAC_S.js} +8 -8
  13. package/dist/{LoadingTrack-XK_eeUdq.js → LoadingTrack-BexpNuTV.js} +1 -1
  14. package/dist/{MergeTagModeToggle-BK0fI3P2.js → MergeTagModeToggle-C6nS3qri.js} +5 -5
  15. package/dist/{MergeTagSuggestion-D0OHRv7L.js → MergeTagSuggestion-98fAcuM-.js} +26 -24
  16. package/dist/{NumberWithSuffix-Cjj9UNIp.js → NumberWithSuffix-DB-1GNvx.js} +2 -2
  17. package/dist/{ParagraphEditor-jGnbJEA2.js → ParagraphEditor-NgW-T9YV.js} +114 -97
  18. package/dist/{RichTextEditorContent-DaaKdzjb.js → RichTextEditorContent-CN7OVR6u.js} +8 -8
  19. package/dist/{SaveBlockDialog-B3ngEldp.js → SaveBlockDialog-lgcmhAsO.js} +10 -10
  20. package/dist/{SavedBlocksBrowserModal-DawN3XaB.js → SavedBlocksBrowserModal-3u247V2z.js} +11 -11
  21. package/dist/{SavedBlocksPanels-eDC9Y46N.js → SavedBlocksPanels-Dh6dABJt.js} +2 -2
  22. package/dist/{SavedBlocksPickBar-CQbbXmzj.js → SavedBlocksPickBar-Bo82D3Qy.js} +4 -4
  23. package/dist/{SnapshotHistory-COxKtHM-.js → SnapshotHistory-Dsb1i40w.js} +16 -16
  24. package/dist/{TemplateScoringPanel-bUuqOO1z.js → TemplateScoringPanel-Bzd_YSag.js} +15 -15
  25. package/dist/{TestEmailModal-CytkbZVQ.js → TestEmailModal-DvqDTOcO.js} +10 -10
  26. package/dist/{TestEmailPanel-CHUY7VZn.js → TestEmailPanel-BXoVnAqu.js} +2 -2
  27. package/dist/{TitleEditor-aMR1bOyY.js → TitleEditor-DWSi998C.js} +12 -12
  28. package/dist/{TplModal-fmYNYdyp.js → TplModal-DKn0h2qe.js} +5 -5
  29. package/dist/{blockTypeIcons-C6b9rg88.js → blockTypeIcons-DKlza6aR.js} +2 -2
  30. package/dist/bundle-stats.json +6 -6
  31. package/dist/{ca-8Dvbwo50.js → ca-D1zgI9fQ.js} +1 -0
  32. package/dist/cdn/chunks/{AiChatSidebar-bkBKpNgE.js → AiChatSidebar-BY1Iy-e8.js} +14 -14
  33. package/dist/cdn/chunks/{AiChatSidebar-bkBKpNgE.js.map → AiChatSidebar-BY1Iy-e8.js.map} +1 -1
  34. package/dist/cdn/chunks/{AiFeatureMenu-CI4SYTq2.js → AiFeatureMenu-BS4Rek6j.js} +6 -6
  35. package/dist/cdn/chunks/{AiFeatureMenu-CI4SYTq2.js.map → AiFeatureMenu-BS4Rek6j.js.map} +1 -1
  36. package/dist/cdn/chunks/{BlockIssueBadge-CRnx8Dv9.js → BlockIssueBadge-BcIQUe_Q.js} +5 -5
  37. package/dist/cdn/chunks/{BlockIssueBadge-CRnx8Dv9.js.map → BlockIssueBadge-BcIQUe_Q.js.map} +1 -1
  38. package/dist/cdn/chunks/{BlockPreviewCanvas-CXCWhqbp.js → BlockPreviewCanvas-oND1iXLL.js} +4 -4
  39. package/dist/cdn/chunks/{BlockPreviewCanvas-CXCWhqbp.js.map → BlockPreviewCanvas-oND1iXLL.js.map} +1 -1
  40. package/dist/cdn/chunks/{CloudEditor-D-t7RyDh.js → CloudEditor-BaqiFbf0.js} +28 -28
  41. package/dist/cdn/chunks/{CloudEditor-D-t7RyDh.js.map → CloudEditor-BaqiFbf0.js.map} +1 -1
  42. package/dist/cdn/chunks/{CollaboratorBar-DcXYo47v.js → CollaboratorBar-DF02nTwF.js} +5 -5
  43. package/dist/cdn/chunks/{CollaboratorBar-DcXYo47v.js.map → CollaboratorBar-DF02nTwF.js.map} +1 -1
  44. package/dist/cdn/chunks/{ColorPicker-_1O7YU2z.js → ColorPicker-BXH44v2H.js} +7 -7
  45. package/dist/cdn/chunks/{ColorPicker-_1O7YU2z.js.map → ColorPicker-BXH44v2H.js.map} +1 -1
  46. package/dist/cdn/chunks/{CommentsSidebar-BEgLBYX-.js → CommentsSidebar-B9bWvvbl.js} +10 -10
  47. package/dist/cdn/chunks/{CommentsSidebar-BEgLBYX-.js.map → CommentsSidebar-B9bWvvbl.js.map} +1 -1
  48. package/dist/cdn/chunks/{CountdownBlock-CPnQA44g.js → CountdownBlock-BTpRd0Hn.js} +4 -4
  49. package/dist/cdn/chunks/{CountdownBlock-CPnQA44g.js.map → CountdownBlock-BTpRd0Hn.js.map} +1 -1
  50. package/dist/cdn/chunks/{CountdownToolbar-Cdo-30U4.js → CountdownToolbar-CW10rbWt.js} +5 -5
  51. package/dist/cdn/chunks/{CountdownToolbar-Cdo-30U4.js.map → CountdownToolbar-CW10rbWt.js.map} +1 -1
  52. package/dist/cdn/chunks/{DesignReferenceSidebar-DPqBr-ut.js → DesignReferenceSidebar-BXjH47QC.js} +9 -9
  53. package/dist/cdn/chunks/{DesignReferenceSidebar-DPqBr-ut.js.map → DesignReferenceSidebar-BXjH47QC.js.map} +1 -1
  54. package/dist/cdn/chunks/{IssuesPanel-DoQWb23r.js → IssuesPanel-DStHCHfr.js} +7 -7
  55. package/dist/cdn/chunks/{IssuesPanel-DoQWb23r.js.map → IssuesPanel-DStHCHfr.js.map} +1 -1
  56. package/dist/cdn/chunks/{LoadingTrack-G2tuXqCJ.js → LoadingTrack-DQowK3MV.js} +2 -2
  57. package/dist/cdn/chunks/{LoadingTrack-G2tuXqCJ.js.map → LoadingTrack-DQowK3MV.js.map} +1 -1
  58. package/dist/cdn/chunks/{MergeTagModeToggle-CWuVC3MU.js → MergeTagModeToggle-BCmQg4Qe.js} +5 -5
  59. package/dist/cdn/chunks/{MergeTagModeToggle-CWuVC3MU.js.map → MergeTagModeToggle-BCmQg4Qe.js.map} +1 -1
  60. package/dist/cdn/chunks/{MergeTagSuggestion-Ces5Ua78.js → MergeTagSuggestion-BgExdloL.js} +3 -3
  61. package/dist/cdn/chunks/{MergeTagSuggestion-Ces5Ua78.js.map → MergeTagSuggestion-BgExdloL.js.map} +1 -1
  62. package/dist/cdn/chunks/{NumberWithSuffix-DQ4sgvt5.js → NumberWithSuffix-BANVbpT0.js} +3 -3
  63. package/dist/cdn/chunks/{NumberWithSuffix-DQ4sgvt5.js.map → NumberWithSuffix-BANVbpT0.js.map} +1 -1
  64. package/dist/cdn/chunks/{ParagraphEditor-Uv5LPF3W.js → ParagraphEditor-DqilB4_f.js} +142 -132
  65. package/dist/cdn/chunks/ParagraphEditor-DqilB4_f.js.map +1 -0
  66. package/dist/cdn/chunks/{RichTextEditorContent-Bt3s09qY.js → RichTextEditorContent-BeJx4LVH.js} +7 -7
  67. package/dist/cdn/chunks/{RichTextEditorContent-Bt3s09qY.js.map → RichTextEditorContent-BeJx4LVH.js.map} +1 -1
  68. package/dist/cdn/chunks/{SaveBlockDialog-BAew6EFd.js → SaveBlockDialog-Dm31xRZy.js} +8 -8
  69. package/dist/cdn/chunks/{SaveBlockDialog-BAew6EFd.js.map → SaveBlockDialog-Dm31xRZy.js.map} +1 -1
  70. package/dist/cdn/chunks/{SavedBlocksBrowserModal-Dn4IJDJW.js → SavedBlocksBrowserModal-Tp37b4y7.js} +9 -9
  71. package/dist/cdn/chunks/{SavedBlocksBrowserModal-Dn4IJDJW.js.map → SavedBlocksBrowserModal-Tp37b4y7.js.map} +1 -1
  72. package/dist/cdn/chunks/{SavedBlocksPanels-B62U5DYW.js → SavedBlocksPanels-ElerTTa_.js} +3 -3
  73. package/dist/cdn/chunks/{SavedBlocksPanels-B62U5DYW.js.map → SavedBlocksPanels-ElerTTa_.js.map} +1 -1
  74. package/dist/cdn/chunks/{SavedBlocksPickBar-CyRKZg2T.js → SavedBlocksPickBar-QHJ-Mjx0.js} +7 -7
  75. package/dist/cdn/chunks/{SavedBlocksPickBar-CyRKZg2T.js.map → SavedBlocksPickBar-QHJ-Mjx0.js.map} +1 -1
  76. package/dist/cdn/chunks/{SnapshotHistory-QQt0DKey.js → SnapshotHistory-jogWGLB-.js} +12 -12
  77. package/dist/cdn/chunks/{SnapshotHistory-QQt0DKey.js.map → SnapshotHistory-jogWGLB-.js.map} +1 -1
  78. package/dist/cdn/chunks/{TemplateScoringPanel-BwyCMcit.js → TemplateScoringPanel-B2XIOTl-.js} +52 -52
  79. package/dist/cdn/chunks/{TemplateScoringPanel-BwyCMcit.js.map → TemplateScoringPanel-B2XIOTl-.js.map} +1 -1
  80. package/dist/cdn/chunks/{TestEmailModal-B5UQkDJp.js → TestEmailModal-BcPjQygV.js} +9 -9
  81. package/dist/cdn/chunks/{TestEmailModal-B5UQkDJp.js.map → TestEmailModal-BcPjQygV.js.map} +1 -1
  82. package/dist/cdn/chunks/{TestEmailPanel-CvuBq4RA.js → TestEmailPanel-1zxRa00s.js} +3 -3
  83. package/dist/cdn/chunks/{TestEmailPanel-CvuBq4RA.js.map → TestEmailPanel-1zxRa00s.js.map} +1 -1
  84. package/dist/cdn/chunks/{TitleEditor-B9W954u9.js → TitleEditor-DTrmublj.js} +14 -14
  85. package/dist/cdn/chunks/{TitleEditor-B9W954u9.js.map → TitleEditor-DTrmublj.js.map} +1 -1
  86. package/dist/cdn/chunks/{TplModal-B8UsvWc8.js → TplModal-By50gtwa.js} +5 -5
  87. package/dist/cdn/chunks/{TplModal-B8UsvWc8.js.map → TplModal-By50gtwa.js.map} +1 -1
  88. package/dist/cdn/chunks/blockTypeIcons-BhFhHuFt.js +21 -0
  89. package/dist/cdn/chunks/{blockTypeIcons-B8s3_ahs.js.map → blockTypeIcons-BhFhHuFt.js.map} +1 -1
  90. package/dist/cdn/chunks/{ca-8Dvbwo50.js → ca-D1zgI9fQ.js} +2 -1
  91. package/dist/cdn/chunks/ca-D1zgI9fQ.js.map +1 -0
  92. package/dist/cdn/chunks/{cloud-DOaGUdR0.js → cloud-B0f7Ub8f.js} +3 -3
  93. package/dist/cdn/chunks/{cloud-DOaGUdR0.js.map → cloud-B0f7Ub8f.js.map} +1 -1
  94. package/dist/cdn/chunks/{de-CieSMCUp.js → de-DHra3lvx.js} +2 -1
  95. package/dist/cdn/chunks/de-DHra3lvx.js.map +1 -0
  96. package/dist/cdn/chunks/{dist-lZgXNk4G.js → dist-B4VIlp1g.js} +3 -3
  97. package/dist/cdn/chunks/{dist-lZgXNk4G.js.map → dist-B4VIlp1g.js.map} +1 -1
  98. package/dist/cdn/chunks/{dist-B8AX9np4.js → dist-H51neg3K.js} +10 -8
  99. package/dist/cdn/chunks/{dist-B8AX9np4.js.map → dist-H51neg3K.js.map} +1 -1
  100. package/dist/cdn/chunks/{draggable-JcMTNF3U.js → draggable-Z4XXmbPC.js} +556 -522
  101. package/dist/cdn/chunks/draggable-Z4XXmbPC.js.map +1 -0
  102. package/dist/cdn/chunks/{en-D0t_2Fq_.js → en-DlqX2YWZ.js} +2 -1
  103. package/dist/cdn/chunks/en-DlqX2YWZ.js.map +1 -0
  104. package/dist/cdn/chunks/{es-DwDoNuLM.js → es-Cuss2snv.js} +2 -1
  105. package/dist/cdn/chunks/es-Cuss2snv.js.map +1 -0
  106. package/dist/cdn/chunks/{extensions-5jgtarD-.js → extensions-Dq0D79tq.js} +6 -6
  107. package/dist/cdn/chunks/{extensions-5jgtarD-.js.map → extensions-Dq0D79tq.js.map} +1 -1
  108. package/dist/cdn/chunks/{fr-CSEEzv1_.js → fr-Cm85vB2g.js} +2 -1
  109. package/dist/cdn/chunks/fr-Cm85vB2g.js.map +1 -0
  110. package/dist/cdn/chunks/{htmlparser-CPhs2cYE.js → htmlparser-DTML8Gvz.js} +8 -7
  111. package/dist/cdn/chunks/{htmlparser-CPhs2cYE.js.map → htmlparser-DTML8Gvz.js.map} +1 -1
  112. package/dist/cdn/chunks/{icons-Cp4ZIJw-.js → icons-C_kRN0_C.js} +104 -97
  113. package/dist/cdn/chunks/icons-C_kRN0_C.js.map +1 -0
  114. package/dist/cdn/chunks/{keys-BxPCfHBH.js → keys-DsoX52o_.js} +2 -2
  115. package/dist/cdn/chunks/{keys-BxPCfHBH.js.map → keys-DsoX52o_.js.map} +1 -1
  116. package/dist/cdn/chunks/{liquid.browser-CZaQe87t.js → liquid.browser-DrGys_ek.js} +22 -20
  117. package/dist/cdn/chunks/{liquid.browser-CZaQe87t.js.map → liquid.browser-DrGys_ek.js.map} +1 -1
  118. package/dist/cdn/chunks/{nl-xyk1T2mA.js → nl-dmiIX7oT.js} +2 -1
  119. package/dist/cdn/chunks/nl-dmiIX7oT.js.map +1 -0
  120. package/dist/cdn/chunks/{pt-BR-yr6uOJgn.js → pt-BR-CaIG-7EM.js} +2 -1
  121. package/dist/cdn/chunks/pt-BR-CaIG-7EM.js.map +1 -0
  122. package/dist/cdn/chunks/{pusher-kUlkqMvR.js → pusher-BbIHJKf3.js} +29 -25
  123. package/dist/cdn/chunks/{pusher-kUlkqMvR.js.map → pusher-BbIHJKf3.js.map} +1 -1
  124. package/dist/cdn/chunks/{src-C417zeUg.js → src-Aea1Vl1H.js} +2 -2
  125. package/dist/cdn/chunks/{src-C417zeUg.js.map → src-Aea1Vl1H.js.map} +1 -1
  126. package/dist/cdn/chunks/{src-Dpj0x27M.js → src-CRvTVX4F.js} +427 -424
  127. package/dist/cdn/chunks/{src-Dpj0x27M.js.map → src-CRvTVX4F.js.map} +1 -1
  128. package/dist/cdn/chunks/{src-B8W42vT-.js → src-_GNJgPcS.js} +216 -176
  129. package/dist/cdn/chunks/src-_GNJgPcS.js.map +1 -0
  130. package/dist/cdn/chunks/{styles-DANwMzW2.js → styles-znpPfrFd.js} +79 -79
  131. package/dist/cdn/chunks/{styles-DANwMzW2.js.map → styles-znpPfrFd.js.map} +1 -1
  132. package/dist/cdn/chunks/{tiptap-rsib432n.js → tiptap-C5vzWlHv.js} +225 -183
  133. package/dist/cdn/chunks/tiptap-C5vzWlHv.js.map +1 -0
  134. package/dist/cdn/chunks/{useAliveFlag-CseYNikC.js → useAliveFlag-4IDYQRNu.js} +2 -2
  135. package/dist/cdn/chunks/{useAliveFlag-CseYNikC.js.map → useAliveFlag-4IDYQRNu.js.map} +1 -1
  136. package/dist/cdn/chunks/{useCloudI18n-CjVzv11v.js → useCloudI18n-D4JpHTPk.js} +3 -3
  137. package/dist/cdn/chunks/{useCloudI18n-CjVzv11v.js.map → useCloudI18n-D4JpHTPk.js.map} +1 -1
  138. package/dist/cdn/chunks/{useEditorCore-DfW-thCr.js → useEditorCore-BMXBmdd8.js} +28 -28
  139. package/dist/cdn/chunks/useEditorCore-BMXBmdd8.js.map +1 -0
  140. package/dist/cdn/chunks/{useI18n-DniEFeIl.js → useI18n-BvcEYzrI.js} +3 -3
  141. package/dist/cdn/chunks/{useI18n-DniEFeIl.js.map → useI18n-BvcEYzrI.js.map} +1 -1
  142. package/dist/cdn/chunks/{useMergeTag-Bk9_f5cc.js → useMergeTag-BSdxMUzg.js} +3 -3
  143. package/dist/cdn/chunks/{useMergeTag-Bk9_f5cc.js.map → useMergeTag-BSdxMUzg.js.map} +1 -1
  144. package/dist/cdn/chunks/{usePopoverPosition-C4xFJCJ2.js → usePopoverPosition-ig-71caO.js} +3 -3
  145. package/dist/cdn/chunks/{usePopoverPosition-C4xFJCJ2.js.map → usePopoverPosition-ig-71caO.js.map} +1 -1
  146. package/dist/cdn/editor.js +15 -15
  147. package/dist/{check-CIhIDh4h.js → check-COV27dGb.js} +1 -1
  148. package/dist/{chevron-down-CZ0m6G3s.js → chevron-down-vsU88vcr.js} +1 -1
  149. package/dist/{chevron-up-BH_tJLeb.js → chevron-up-RrZ0Rjn9.js} +1 -1
  150. package/dist/{circle-alert-DkEXnGPV.js → circle-alert-B6GlHmmi.js} +1 -1
  151. package/dist/{clock-BDIJZUET.js → clock-egOt8zjQ.js} +1 -1
  152. package/dist/{cloud-BZn3jqoL.js → cloud-D-2StbvU.js} +1 -1
  153. package/dist/{createLucideIcon-AEltGIse.js → createLucideIcon-D6cqT5Pm.js} +3 -3
  154. package/dist/{de-CieSMCUp.js → de-DHra3lvx.js} +1 -0
  155. package/dist/{dist-iCEDH3cC.js → dist-B56SufAv.js} +1 -1
  156. package/dist/{dist-CkPvZCld.js → dist-BQZkRg05.js} +1 -1
  157. package/dist/{dist-DT1XnEnj.js → dist-BpKxrUi2.js} +2 -2
  158. package/dist/{dist-CcQFPJMF.js → dist-CHxPjcxA.js} +181 -145
  159. package/dist/{dist-BxbTVeY0.js → dist-CqV4XslQ.js} +1 -1
  160. package/dist/{dist-Dx71pluS.js → dist-D4GoAr2g.js} +9 -7
  161. package/dist/{dist-DSIgxp0v.js → dist-DHwnYYx0.js} +1 -1
  162. package/dist/{dist-DX4x6mQ1.js → dist-Du95Y9M3.js} +1 -1
  163. package/dist/{dist-B6Px6GPj.js → dist-DzzTB4eE.js} +1 -1
  164. package/dist/{dist-DyCHUyRR.js → dist-GUZZpDK3.js} +1 -1
  165. package/dist/{dist-nR6mxyqI.js → dist-MwT7T6Xp.js} +1 -1
  166. package/dist/{dist-CIqhVQ1O.js → dist-UkG5ZJ1P.js} +17 -15
  167. package/dist/{dist-CRH880TV.js → dist-vpuiQ7_Q.js} +1 -1
  168. package/dist/{en-D0t_2Fq_.js → en-DlqX2YWZ.js} +1 -0
  169. package/dist/{es-DwDoNuLM.js → es-Cuss2snv.js} +1 -0
  170. package/dist/{extensions-BjvyU9Ea.js → extensions-y6KjLr9t.js} +7 -7
  171. package/dist/{fr-CSEEzv1_.js → fr-Cm85vB2g.js} +1 -0
  172. package/dist/{image-up-8ktdYdaZ.js → image-up-CycES-MQ.js} +1 -1
  173. package/dist/{info-CvrCgTLH.js → info-BUdvm046.js} +1 -1
  174. package/dist/{keys-BFPiNAIn.js → keys-fwF3qZax.js} +1 -1
  175. package/dist/{liquid.browser-BECWFL5Z.js → liquid.browser-Di5zMIEx.js} +21 -19
  176. package/dist/{list-checks-yzGT93ZL.js → list-checks-BAeuuATD.js} +1 -1
  177. package/dist/{loader-circle-B6euendB.js → loader-circle-L5yuAx_j.js} +1 -1
  178. package/dist/{message-circle-BMldLVcA.js → message-circle-DRdaapVc.js} +1 -1
  179. package/dist/{nl-xyk1T2mA.js → nl-dmiIX7oT.js} +1 -0
  180. package/dist/{pencil-CkKkSd6N.js → pencil-BfErVPf_.js} +1 -1
  181. package/dist/{pt-BR-yr6uOJgn.js → pt-BR-CaIG-7EM.js} +1 -0
  182. package/dist/{refresh-cw-fBPgB97G.js → refresh-cw-D0PYatER.js} +1 -1
  183. package/dist/{runtime-dom.esm-bundler-CBbDt7sw.js → runtime-dom.esm-bundler-CepEmvwF.js} +172 -168
  184. package/dist/{scan-line-CRoEOUiK.js → scan-line-Byi3fJcr.js} +1 -1
  185. package/dist/{send-B9Tt2qBi.js → send-DuyNexMY.js} +1 -1
  186. package/dist/{shield-check-QfZkYeIo.js → shield-check-BkkN_1qw.js} +1 -1
  187. package/dist/{sparkles-8UeMmZb8.js → sparkles-DAw2sBXk.js} +1 -1
  188. package/dist/{styles-C9GM-bBC.js → styles-BzwheHH_.js} +32 -32
  189. package/dist/templatical-editor.js +17 -17
  190. package/dist/{text-align-start-Dn8uIheW.js → text-align-start-Ba3xJKn6.js} +1 -1
  191. package/dist/{trash-2-DDyvqj0E.js → trash-2-CapEBXBI.js} +1 -1
  192. package/dist/{triangle-alert-B3PydLzl.js → triangle-alert-52pdw8jI.js} +1 -1
  193. package/dist/{upload-hE8ItfyG.js → upload-oAgigC31.js} +1 -1
  194. package/dist/{useAliveFlag-AfoTE_AY.js → useAliveFlag-cvyBxHp7.js} +1 -1
  195. package/dist/{useCloudI18n-B2lItQ6O.js → useCloudI18n-DKVm6PCa.js} +2 -2
  196. package/dist/{useEditorCore-Ck_hBiGA.js → useEditorCore-BhjEMSeE.js} +23 -23
  197. package/dist/{useI18n-C1KcdX_K.js → useI18n-DoVKdCTH.js} +2 -2
  198. package/dist/{useMergeTag-DHCwRMfH.js → useMergeTag-DTSOQnyr.js} +2 -2
  199. package/dist/{usePopoverPosition-ClnEh_Cp.js → usePopoverPosition-C0dPEF4X.js} +4 -4
  200. package/dist/{vue.runtime.esm-bundler-Xpz-L9Fn.js → vue.runtime.esm-bundler-D1diBMsm.js} +297 -251
  201. package/dist/{x-C4lETLDx.js → x-DvBgbDuf.js} +1 -1
  202. package/package.json +11 -11
  203. package/dist/cdn/chunks/ParagraphEditor-Uv5LPF3W.js.map +0 -1
  204. package/dist/cdn/chunks/blockTypeIcons-B8s3_ahs.js +0 -21
  205. package/dist/cdn/chunks/ca-8Dvbwo50.js.map +0 -1
  206. package/dist/cdn/chunks/de-CieSMCUp.js.map +0 -1
  207. package/dist/cdn/chunks/draggable-JcMTNF3U.js.map +0 -1
  208. package/dist/cdn/chunks/en-D0t_2Fq_.js.map +0 -1
  209. package/dist/cdn/chunks/es-DwDoNuLM.js.map +0 -1
  210. package/dist/cdn/chunks/fr-CSEEzv1_.js.map +0 -1
  211. package/dist/cdn/chunks/icons-Cp4ZIJw-.js.map +0 -1
  212. package/dist/cdn/chunks/nl-xyk1T2mA.js.map +0 -1
  213. package/dist/cdn/chunks/pt-BR-yr6uOJgn.js.map +0 -1
  214. package/dist/cdn/chunks/src-B8W42vT-.js.map +0 -1
  215. package/dist/cdn/chunks/tiptap-rsib432n.js.map +0 -1
  216. package/dist/cdn/chunks/useEditorCore-DfW-thCr.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { n as e } from "./rolldown-runtime-B0aSnxlc.js";
2
2
  import { $ as t, G as n, H as r, K as i, U as a, W as o, X as s, Y as ee, Z as te, q as c, z as l } from "./src-CZjSXPYq.js";
3
- import { t as u } from "./htmlparser-CPhs2cYE.js";
3
+ import { t as u } from "./htmlparser-DTML8Gvz.js";
4
4
  //#region ../quality/src/types.ts
5
5
  var d = {
6
6
  altMaxLength: 125,
@@ -173,6 +173,7 @@ var ce = /* @__PURE__ */ e({ default: () => le }), le = {
173
173
  "a11y.link-target-blank-no-rel": "Link öffnet in neuem Tab, aber rel=\"noopener\" fehlt – ergänze es, damit das Ziel nicht auf window.opener zugreifen kann.",
174
174
  "a11y.link-nested-anchor": "Ein Link liegt innerhalb eines anderen Links. Verschachtelte Anker sind ungültiges HTML und werden von E-Mail-Clients unterschiedlich gerendert – flache einen einzigen Anker daraus.",
175
175
  "a11y.text-all-caps": "Längere Texte in Großbuchstaben sind schwerer lesbar. Verwende Groß- und Kleinschreibung.",
176
+ "a11y.text-justified": "Blocksatz dehnt die Wortabstände zu ungleichmäßigen „Flüssen“ aus Leerraum, die für Menschen mit Legasthenie und Sehbeeinträchtigung am schwersten zu verfolgen sind. Verwende linksbündigen Text.",
176
177
  "a11y.text-low-contrast": "Überschriftskontrast beträgt {ratio}:1; WCAG AA verlangt mindestens {required}:1.",
177
178
  "a11y.text-too-small": "Text ist {size}px; mindestens {min}px verwenden.",
178
179
  "a11y.button-vague-label": "Button-Beschriftung „{text}“ ist unspezifisch. Beschreibe die Aktion.",
@@ -194,6 +195,7 @@ var ce = /* @__PURE__ */ e({ default: () => le }), le = {
194
195
  "a11y.link-target-blank-no-rel": "Link opens in a new tab but is missing rel=\"noopener\" — add it to prevent the destination from accessing window.opener.",
195
196
  "a11y.link-nested-anchor": "A link is nested inside another link. Nested anchors are invalid HTML and clients render them inconsistently — flatten to a single anchor.",
196
197
  "a11y.text-all-caps": "Long all-caps text is harder to read for everyone. Use sentence case.",
198
+ "a11y.text-justified": "Justified text stretches word spacing into uneven 'rivers' of white space, which is hardest to track for dyslexic and low-vision readers. Use left-aligned text.",
197
199
  "a11y.text-low-contrast": "Heading contrast is {ratio}:1; WCAG AA requires at least {required}:1.",
198
200
  "a11y.text-too-small": "Text is {size}px; aim for at least {min}px.",
199
201
  "a11y.button-vague-label": "Button label \"{text}\" is vague. Describe the action.",
@@ -277,7 +279,7 @@ var pe = {
277
279
  }
278
280
  };
279
281
  }
280
- }, ye = /* @__PURE__ */ e({ default: () => E }), E = {
282
+ }, ye = /* @__PURE__ */ e({ default: () => be }), be = {
281
283
  vagueLinkText: [
282
284
  "hier klicken",
283
285
  "hier",
@@ -320,7 +322,7 @@ var pe = {
320
322
  "anschauen",
321
323
  "jetzt"
322
324
  ]
323
- }, D = /* @__PURE__ */ e({ default: () => O }), O = {
325
+ }, xe = /* @__PURE__ */ e({ default: () => E }), E = {
324
326
  vagueLinkText: [
325
327
  "click here",
326
328
  "here",
@@ -361,33 +363,33 @@ var pe = {
361
363
  "redeem",
362
364
  "watch"
363
365
  ]
364
- }, k = /* #__PURE__ */ Object.assign({
366
+ }, D = /* #__PURE__ */ Object.assign({
365
367
  "./de.ts": ye,
366
- "./en.ts": D
367
- }), A = {};
368
- for (let e in k) {
368
+ "./en.ts": xe
369
+ }), O = {};
370
+ for (let e in D) {
369
371
  let t = /\.\/([^/]+)\.ts$/.exec(e);
370
372
  if (!t) continue;
371
373
  let n = t[1];
372
- n !== "index" && (A[n] = k[e].default);
374
+ n !== "index" && (O[n] = D[e].default);
373
375
  }
374
- function j(e) {
375
- return N;
376
+ function k(e) {
377
+ return j;
376
378
  }
377
- function M(e) {
379
+ function A(e) {
378
380
  let t = /* @__PURE__ */ new Set();
379
- for (let n of Object.values(A)) for (let r of e(n)) t.add(r);
381
+ for (let n of Object.values(O)) for (let r of e(n)) t.add(r);
380
382
  return Array.from(t);
381
383
  }
382
- var N = {
383
- vagueLinkText: M((e) => e.vagueLinkText),
384
- vagueButtonLabels: M((e) => e.vagueButtonLabels),
385
- linkedImageActionHints: M((e) => e.linkedImageActionHints)
384
+ var j = {
385
+ vagueLinkText: A((e) => e.vagueLinkText),
386
+ vagueButtonLabels: A((e) => e.vagueButtonLabels),
387
+ linkedImageActionHints: A((e) => e.linkedImageActionHints)
386
388
  };
387
- function P(e) {
389
+ function M(e) {
388
390
  return e.toLowerCase().replace(/\s+/g, " ").replace(/^[^\p{L}\p{N}]+|[^\p{L}\p{N}]+$/gu, "").trim();
389
391
  }
390
- var be = {
392
+ var Se = {
391
393
  meta: {
392
394
  id: "a11y.img-linked-no-context",
393
395
  severity: "warning"
@@ -396,13 +398,13 @@ var be = {
396
398
  if (!a(e) || e.decorative === !0 || !e.linkUrl || e.linkUrl.trim() === "") return null;
397
399
  let r = (e.alt ?? "").trim();
398
400
  if (r === "") return null;
399
- let i = r.toLocaleLowerCase().split(/[^\p{L}\p{N}]+/u).filter(Boolean), o = j(n.locale).linkedImageActionHints;
401
+ let i = r.toLocaleLowerCase().split(/[^\p{L}\p{N}]+/u).filter(Boolean), o = k(n.locale).linkedImageActionHints;
400
402
  return i.some((e) => o.includes(e)) ? null : { blockId: e.id };
401
403
  }
402
404
  };
403
405
  //#endregion
404
406
  //#region ../quality/src/html-utils.ts
405
- function F(e) {
407
+ function N(e) {
406
408
  let t = [], n = null, r = "", i = () => {
407
409
  n !== null && (n.text = r.trim(), t.push(n), n = null, r = "");
408
410
  }, a = new u({
@@ -428,8 +430,8 @@ function F(e) {
428
430
  });
429
431
  return a.write(e), a.end(), i(), t;
430
432
  }
431
- function xe(e) {
432
- let t = Se(e).matchAll(/<\/?a\b[^<>]*>/gi), n = 0;
433
+ function Ce(e) {
434
+ let t = we(e).matchAll(/<\/?a\b[^<>]*>/gi), n = 0;
433
435
  for (let e of t) {
434
436
  if (e[0].startsWith("</")) {
435
437
  n > 0 && n--;
@@ -440,7 +442,7 @@ function xe(e) {
440
442
  }
441
443
  return !1;
442
444
  }
443
- function Se(e) {
445
+ function we(e) {
444
446
  let t = "", n = 0;
445
447
  for (; n < e.length;) {
446
448
  let r = e.indexOf("<!--", n);
@@ -455,38 +457,38 @@ function Se(e) {
455
457
  }
456
458
  return t;
457
459
  }
458
- function I(e) {
460
+ function P(e) {
459
461
  let t = "", n = new u({ ontext(e) {
460
462
  t += e;
461
463
  } });
462
464
  return n.write(e), n.end(), t.trim();
463
465
  }
464
- var Ce = {
466
+ var Te = {
465
467
  meta: {
466
468
  id: "a11y.heading-empty",
467
469
  severity: "error"
468
470
  },
469
471
  block(e) {
470
- return !s(e) || I(e.content ?? "") !== "" ? null : { blockId: e.id };
472
+ return !s(e) || P(e.content ?? "") !== "" ? null : { blockId: e.id };
471
473
  }
472
- }, we = {
474
+ }, Ee = {
473
475
  id: "a11y.heading-skip-level",
474
476
  severity: "error"
475
477
  };
476
- function L(e, t) {
478
+ function F(e, t) {
477
479
  for (let n of e) {
478
480
  if (s(n)) {
479
481
  t.push(n);
480
482
  continue;
481
483
  }
482
- if (i(n)) for (let e of n.children) L(e, t);
484
+ if (i(n)) for (let e of n.children) F(e, t);
483
485
  }
484
486
  }
485
- var Te = {
486
- meta: we,
487
+ var De = {
488
+ meta: Ee,
487
489
  template(e) {
488
490
  let t = [];
489
- L(e.blocks, t);
491
+ F(e.blocks, t);
490
492
  let n = [], r = 0;
491
493
  for (let e of t) r !== 0 && e.level > r + 1 && n.push({
492
494
  blockId: e.id,
@@ -497,54 +499,54 @@ var Te = {
497
499
  }), r = e.level;
498
500
  return n;
499
501
  }
500
- }, Ee = {
502
+ }, Oe = {
501
503
  id: "a11y.heading-multiple-h1",
502
504
  severity: "warning"
503
505
  };
504
- function R(e, t) {
506
+ function I(e, t) {
505
507
  for (let n of e) {
506
508
  if (s(n)) {
507
509
  t.push(n);
508
510
  continue;
509
511
  }
510
- if (i(n)) for (let e of n.children) R(e, t);
512
+ if (i(n)) for (let e of n.children) I(e, t);
511
513
  }
512
514
  }
513
- var De = {
514
- meta: Ee,
515
+ var ke = {
516
+ meta: Oe,
515
517
  template(e) {
516
518
  let t = [];
517
- R(e.blocks, t);
519
+ I(e.blocks, t);
518
520
  let n = t.filter((e) => e.level === 1);
519
521
  return n.length <= 1 ? [] : n.slice(1).map((e) => ({ blockId: e.id }));
520
522
  }
521
- }, Oe = {
523
+ }, Ae = {
522
524
  id: "a11y.link-empty",
523
525
  severity: "error"
524
526
  };
525
- function ke(e) {
527
+ function je(e) {
526
528
  return n(e) || s(e) ? e.content : null;
527
529
  }
528
- var Ae = {
529
- meta: Oe,
530
+ var Me = {
531
+ meta: Ae,
530
532
  block(e) {
531
- let t = ke(e);
532
- return t === null || !F(t).find((e) => e.text === "" && !e.hasImageWithAlt) ? null : { blockId: e.id };
533
+ let t = je(e);
534
+ return t === null || !N(t).find((e) => e.text === "" && !e.hasImageWithAlt) ? null : { blockId: e.id };
533
535
  }
534
- }, je = {
536
+ }, Ne = {
535
537
  id: "a11y.link-vague-text",
536
538
  severity: "warning"
537
539
  };
538
- function Me(e) {
540
+ function Pe(e) {
539
541
  return n(e) || s(e) ? e.content : null;
540
542
  }
541
- var Ne = {
542
- meta: je,
543
+ var Fe = {
544
+ meta: Ne,
543
545
  block(e, t, n) {
544
- let r = Me(e);
546
+ let r = Pe(e);
545
547
  if (r === null) return null;
546
- let i = j(n.locale).vagueLinkText, a = F(r).find((e) => {
547
- let t = P(e.text);
548
+ let i = k(n.locale).vagueLinkText, a = N(r).find((e) => {
549
+ let t = M(e.text);
548
550
  return t !== "" && i.includes(t);
549
551
  });
550
552
  return a ? {
@@ -552,53 +554,53 @@ var Ne = {
552
554
  params: { text: a.text }
553
555
  } : null;
554
556
  }
555
- }, Pe = {
557
+ }, Ie = {
556
558
  id: "a11y.link-href-empty",
557
559
  severity: "error"
558
560
  };
559
- function Fe(e) {
561
+ function Le(e) {
560
562
  return n(e) || s(e) ? e.content : null;
561
563
  }
562
- var Ie = {
563
- meta: Pe,
564
+ var Re = {
565
+ meta: Ie,
564
566
  block(e) {
565
- let t = Fe(e);
566
- return t === null || !F(t).find((e) => {
567
+ let t = Le(e);
568
+ return t === null || !N(t).find((e) => {
567
569
  let t = e.href.trim();
568
570
  return t === "" || t === "#";
569
571
  }) ? null : { blockId: e.id };
570
572
  }
571
- }, Le = {
573
+ }, ze = {
572
574
  id: "a11y.link-target-blank-no-rel",
573
575
  severity: "warning"
574
576
  };
575
- function Re(e) {
577
+ function Be(e) {
576
578
  return n(e) || s(e) ? e.content : null;
577
579
  }
578
- function ze(e) {
580
+ function Ve(e) {
579
581
  if (e === null) return !1;
580
582
  let t = e.toLowerCase().split(/\s+/);
581
583
  return t.includes("noopener") || t.includes("noreferrer");
582
584
  }
583
- var Be = {
584
- meta: Le,
585
+ var He = {
586
+ meta: ze,
585
587
  block(e) {
586
- let t = Re(e);
587
- return t === null || !F(t).find((e) => e.target === "_blank" && !ze(e.rel)) ? null : {
588
+ let t = Be(e);
589
+ return t === null || !N(t).find((e) => e.target === "_blank" && !Ve(e.rel)) ? null : {
588
590
  blockId: e.id,
589
591
  fix: {
590
592
  description: "Add rel=\"noopener\"",
591
593
  apply: (t) => {
592
594
  if (!n(e) && !s(e)) return;
593
- let r = Ue(e.content ?? "");
595
+ let r = Ge(e.content ?? "");
594
596
  t.updateBlock(e.id, { content: r });
595
597
  }
596
598
  }
597
599
  };
598
600
  }
599
- }, z = /([^\s"'>/=]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'=<>`]+)))?/g;
600
- function Ve(e) {
601
- let t = [], n = new RegExp(z.source, z.flags), r;
601
+ }, L = /([^\s"'>/=]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"'=<>`]+)))?/g;
602
+ function Ue(e) {
603
+ let t = [], n = new RegExp(L.source, L.flags), r;
602
604
  for (; (r = n.exec(e)) !== null;) t.push({
603
605
  raw: r[0],
604
606
  name: r[1],
@@ -607,13 +609,13 @@ function Ve(e) {
607
609
  });
608
610
  return t;
609
611
  }
610
- function He(e) {
612
+ function We(e) {
611
613
  return e.some((e) => e.name.toLowerCase() === "target" && e.value !== null && e.value.toLowerCase() === "_blank");
612
614
  }
613
- function Ue(e) {
615
+ function Ge(e) {
614
616
  return e.replace(/<a\b([^>]*)>/gi, (e, t) => {
615
- let n = Ve(t);
616
- if (!He(n)) return e;
617
+ let n = Ue(t);
618
+ if (!We(n)) return e;
617
619
  let r = n.find((e) => e.name.toLowerCase() === "rel");
618
620
  if (r) {
619
621
  let n = (r.value ?? "").toLowerCase().split(/\s+/);
@@ -626,30 +628,67 @@ function Ue(e) {
626
628
  }
627
629
  //#endregion
628
630
  //#region ../quality/src/accessibility/rules/link-nested-anchor.ts
629
- var We = {
631
+ var R = {
630
632
  id: "a11y.link-nested-anchor",
631
633
  severity: "error"
632
634
  };
633
- function Ge(e) {
635
+ function Ke(e) {
634
636
  return n(e) || s(e) ? e.content : null;
635
637
  }
636
- var B = {
637
- meta: We,
638
+ var qe = {
639
+ meta: R,
638
640
  block(e) {
639
- let t = Ge(e);
640
- return t === null || !xe(t) ? null : { blockId: e.id };
641
+ let t = Ke(e);
642
+ return t === null || !Ce(t) ? null : { blockId: e.id };
641
643
  }
642
- }, Ke = {
644
+ }, Je = {
643
645
  meta: {
644
646
  id: "a11y.text-all-caps",
645
647
  severity: "warning"
646
648
  },
647
649
  block(e, t, r) {
648
650
  if (!n(e) && !s(e)) return null;
649
- let i = I(e.content ?? "").replace(/[^\p{L}]/gu, "");
651
+ let i = P(e.content ?? "").replace(/[^\p{L}]/gu, "");
650
652
  return i.length < r.thresholds.allCapsMinLength || i !== i.toLocaleUpperCase() ? null : { blockId: e.id };
651
653
  }
652
- }, qe = {
654
+ }, Ye = {
655
+ id: "a11y.text-justified",
656
+ severity: "warning"
657
+ }, Xe = /(^|;)\s*text-align\s*:\s*([^;]*)/i, z = /\sstyle\s*=\s*(?:"([^"]*)"|'([^']*)')/gi;
658
+ function Ze(e) {
659
+ let t = [], n = new RegExp(z.source, z.flags), r;
660
+ for (; (r = n.exec(e)) !== null;) t.push(r[1] ?? r[2] ?? "");
661
+ return t;
662
+ }
663
+ function B(e) {
664
+ let t = Xe.exec(e);
665
+ return t !== null && t[2].trim().toLowerCase() === "justify";
666
+ }
667
+ function Qe(e) {
668
+ return e.split(";").filter((e) => !/^\s*text-align\s*:/i.test(e)).map((e) => e.trim()).filter((e) => e !== "").join("; ");
669
+ }
670
+ function $e(e) {
671
+ return e.replace(/\sstyle\s*=\s*(?:"([^"]*)"|'([^']*)')/gi, (e, t, n) => {
672
+ let r = t ?? n ?? "";
673
+ if (!B(r)) return e;
674
+ let i = Qe(r);
675
+ return i === "" ? "" : ` style="${i}"`;
676
+ });
677
+ }
678
+ var et = {
679
+ meta: Ye,
680
+ block(e) {
681
+ return !n(e) || !Ze(e.content ?? "").some(B) ? null : {
682
+ blockId: e.id,
683
+ fix: {
684
+ description: "Remove justified alignment",
685
+ apply: (t) => {
686
+ n(e) && t.updateBlock(e.id, { content: $e(e.content ?? "") });
687
+ }
688
+ }
689
+ };
690
+ }
691
+ }, tt = {
653
692
  meta: {
654
693
  id: "a11y.text-low-contrast",
655
694
  severity: "error"
@@ -667,11 +706,11 @@ var B = {
667
706
  }
668
707
  };
669
708
  }
670
- }, Je = {
709
+ }, nt = {
671
710
  id: "a11y.text-too-small",
672
711
  severity: "warning"
673
712
  };
674
- function Ye(e) {
713
+ function rt(e) {
675
714
  return o(e) || ee(e) ? e.fontSize : null;
676
715
  }
677
716
  //#endregion
@@ -681,21 +720,22 @@ var V = [
681
720
  ge,
682
721
  _e,
683
722
  ve,
684
- be,
685
- Ce,
723
+ Se,
686
724
  Te,
687
725
  De,
688
- Ae,
689
- Ne,
690
- Ie,
691
- Be,
692
- B,
693
- Ke,
726
+ ke,
727
+ Me,
728
+ Fe,
729
+ Re,
730
+ He,
694
731
  qe,
732
+ Je,
733
+ et,
734
+ tt,
695
735
  {
696
- meta: Je,
736
+ meta: nt,
697
737
  block(e, t, n) {
698
- let r = Ye(e);
738
+ let r = rt(e);
699
739
  return r === null || r >= n.thresholds.minFontSize ? null : {
700
740
  blockId: e.id,
701
741
  params: {
@@ -712,8 +752,8 @@ var V = [
712
752
  },
713
753
  block(e, t, n) {
714
754
  if (!l(e)) return null;
715
- let r = P(e.text ?? "");
716
- return r === "" || !j(n.locale).vagueButtonLabels.includes(r) ? null : {
755
+ let r = M(e.text ?? "");
756
+ return r === "" || !k(n.locale).vagueButtonLabels.includes(r) ? null : {
717
757
  blockId: e.id,
718
758
  params: { text: e.text }
719
759
  };
@@ -767,26 +807,26 @@ var V = [
767
807
  }
768
808
  }
769
809
  ];
770
- function Xe(e, t = {}) {
810
+ function it(e, t = {}) {
771
811
  return t.disabled === !0 || t.accessibility === !1 ? [] : x(e, V, ae(t.locale, t.accessibility ?? {}, V), (e, t, n) => fe(e, t, n));
772
812
  }
773
813
  //#endregion
774
814
  //#region ../quality/src/structure/messages/de.ts
775
- var Ze = /* @__PURE__ */ e({ default: () => Qe }), Qe = {
815
+ var at = /* @__PURE__ */ e({ default: () => ot }), ot = {
776
816
  "structure.duplicate-block-id": "Block-ID erscheint {count}-mal im Baum. Jeder Block muss eine eindeutige ID haben.",
777
817
  "structure.section-column-mismatch": "Sektion verwendet Layout „{layout}\" (erwartet {expected} Spalten), hat aber {actual}. Deutet auf beschädigten Zustand hin.",
778
818
  "structure.nested-section": "Sektion ist in einer anderen Sektion verschachtelt. Sektionen können nicht verschachtelt werden – der Renderer wird sich falsch verhalten.",
779
819
  "structure.empty-section": "Sektion enthält keine Blöcke. Entferne sie oder füge Inhalt hinzu.",
780
820
  "structure.empty-column": "Spalte {columnIndex} dieser Sektion ist leer. Füge Inhalt hinzu oder reduziere die Spaltenanzahl."
781
- }, $e = /* @__PURE__ */ e({ default: () => H }), H = {
821
+ }, st = /* @__PURE__ */ e({ default: () => H }), H = {
782
822
  "structure.duplicate-block-id": "Block id appears {count} times in the tree. Each block must have a unique id.",
783
823
  "structure.section-column-mismatch": "Section uses layout \"{layout}\" (expects {expected} columns) but has {actual}. Indicates corrupted state.",
784
824
  "structure.nested-section": "Section is nested inside another section. Sections cannot nest — the renderer will misbehave.",
785
825
  "structure.empty-section": "Section has no blocks. Remove it or add content.",
786
826
  "structure.empty-column": "Column {columnIndex} of this section is empty. Add content or reduce the column count."
787
827
  }, U = /* #__PURE__ */ Object.assign({
788
- "./de.ts": Ze,
789
- "./en.ts": $e
828
+ "./de.ts": at,
829
+ "./en.ts": st
790
830
  }), W = {};
791
831
  for (let e in U) {
792
832
  let t = /\.\/([^/]+)\.ts$/.exec(e);
@@ -794,11 +834,11 @@ for (let e in U) {
794
834
  let n = t[1];
795
835
  n !== "index" && (W[n] = U[e].default);
796
836
  }
797
- function et(e) {
837
+ function ct(e) {
798
838
  return W[e.split("-")[0]?.toLowerCase() ?? "en"] ?? W.en ?? H;
799
839
  }
800
- function tt(e, t, n) {
801
- let r = et(e)[t] ?? H[t];
840
+ function lt(e, t, n) {
841
+ let r = ct(e)[t] ?? H[t];
802
842
  return n ? r.replace(/\{(\w+)\}/g, (e, t) => {
803
843
  let r = n[t];
804
844
  return r === void 0 ? `{${t}}` : String(r);
@@ -806,15 +846,15 @@ function tt(e, t, n) {
806
846
  }
807
847
  //#endregion
808
848
  //#region ../quality/src/structure/rules/duplicate-block-id.ts
809
- var nt = {
849
+ var ut = {
810
850
  id: "structure.duplicate-block-id",
811
851
  severity: "error"
812
852
  };
813
853
  function G(e, t) {
814
854
  for (let n of e) if (t.set(n.id, (t.get(n.id) ?? 0) + 1), i(n)) for (let e of n.children) G(e, t);
815
855
  }
816
- var rt = {
817
- meta: nt,
856
+ var dt = {
857
+ meta: ut,
818
858
  template(e) {
819
859
  let t = /* @__PURE__ */ new Map();
820
860
  G(e.blocks, t);
@@ -825,7 +865,7 @@ var rt = {
825
865
  });
826
866
  return n;
827
867
  }
828
- }, it = {
868
+ }, ft = {
829
869
  id: "structure.empty-column",
830
870
  severity: "warning"
831
871
  };
@@ -842,25 +882,25 @@ function K(e, t) {
842
882
  for (let n of e.children) K(n, t);
843
883
  }
844
884
  }
845
- var at = {
846
- meta: it,
885
+ var pt = {
886
+ meta: ft,
847
887
  template(e) {
848
888
  let t = [];
849
889
  return K(e.blocks, t), t;
850
890
  }
851
- }, ot = {
891
+ }, mt = {
852
892
  id: "structure.empty-section",
853
893
  severity: "warning"
854
894
  };
855
- function st(e) {
895
+ function ht(e) {
856
896
  return e.children.length === 0 || e.children.every((e) => e.length === 0);
857
897
  }
858
- var ct = {
859
- meta: ot,
898
+ var gt = {
899
+ meta: mt,
860
900
  block(e) {
861
901
  if (!i(e)) return null;
862
902
  let t = e;
863
- return st(t) ? {
903
+ return ht(t) ? {
864
904
  blockId: t.id,
865
905
  fix: {
866
906
  description: "Remove the empty section",
@@ -870,7 +910,7 @@ var ct = {
870
910
  }
871
911
  } : null;
872
912
  }
873
- }, lt = {
913
+ }, _t = {
874
914
  meta: {
875
915
  id: "structure.nested-section",
876
916
  severity: "error"
@@ -881,25 +921,25 @@ var ct = {
881
921
  params: { parentId: t.section.id }
882
922
  };
883
923
  }
884
- }, ut = {
924
+ }, vt = {
885
925
  id: "structure.section-column-mismatch",
886
926
  severity: "error"
887
927
  };
888
- function dt(e) {
928
+ function yt(e) {
889
929
  return e === "1" ? 1 : e === "3" ? 3 : 2;
890
930
  }
891
931
  //#endregion
892
932
  //#region ../quality/src/structure/index.ts
893
933
  var q = [
894
- rt,
895
- ct,
896
- at,
897
- lt,
934
+ dt,
935
+ gt,
936
+ pt,
937
+ _t,
898
938
  {
899
- meta: ut,
939
+ meta: vt,
900
940
  block(e) {
901
941
  if (!i(e)) return null;
902
- let t = e, n = dt(t.columns), r = t.children.length;
942
+ let t = e, n = yt(t.columns), r = t.children.length;
903
943
  return r === n ? null : {
904
944
  blockId: t.id,
905
945
  params: {
@@ -911,26 +951,26 @@ var q = [
911
951
  }
912
952
  }
913
953
  ];
914
- function ft(e, t = {}) {
915
- return t.disabled === !0 || t.structure === !1 ? [] : x(e, q, oe(t.locale, t.structure ?? {}, q), (e, t, n) => tt(e, t, n));
954
+ function bt(e, t = {}) {
955
+ return t.disabled === !0 || t.structure === !1 ? [] : x(e, q, oe(t.locale, t.structure ?? {}, q), (e, t, n) => lt(e, t, n));
916
956
  }
917
957
  //#endregion
918
958
  //#region ../quality/src/links/messages/de.ts
919
- var pt = /* @__PURE__ */ e({ default: () => mt }), mt = {
959
+ var xt = /* @__PURE__ */ e({ default: () => St }), St = {
920
960
  "link.javascript-protocol": "Die URL verwendet das Protokoll „{protocol}:\", das beliebigen Skriptcode ausführen kann und aus Sicherheitsgründen beim Rendern entfernt wird. Ersetze sie durch eine echte URL oder entferne sie.",
921
961
  "link.unsupported-protocol": "Die URL verwendet das Protokoll „{protocol}\", das von den meisten E-Mail-Clients nicht unterstützt wird. Verwende http, https, mailto, tel oder sms.",
922
962
  "link.malformed-mailto": "Der mailto:-Link ist fehlerhaft. Erwartet wird eine einzelne Empfängeradresse vor einer eventuellen Querystring (z. B. mailto:hallo@example.com).",
923
963
  "link.malformed-tel": "Der tel:-Link enthält Zeichen, die keine Ziffern, +, Leerzeichen, Bindestriche, Klammern oder Punkte sind.",
924
964
  "link.localhost-or-staging": "Der URL-Host „{host}\" entspricht einem Nicht-Produktionsmuster. Ersetze ihn vor dem Versand durch die Produktions-URL."
925
- }, ht = /* @__PURE__ */ e({ default: () => J }), J = {
965
+ }, Ct = /* @__PURE__ */ e({ default: () => J }), J = {
926
966
  "link.javascript-protocol": "URL uses the \"{protocol}:\" protocol, which can execute arbitrary script and is stripped at render time for safety. Replace it with a real link or remove the URL.",
927
967
  "link.unsupported-protocol": "URL uses the \"{protocol}\" protocol, which most email clients do not support. Use http, https, mailto, tel, or sms.",
928
968
  "link.malformed-mailto": "mailto: link is malformed. Expected a single recipient address before any query string (e.g. mailto:hello@example.com).",
929
969
  "link.malformed-tel": "tel: link contains characters that are not digits, +, spaces, dashes, parentheses, or dots.",
930
970
  "link.localhost-or-staging": "URL host \"{host}\" matches a non-production pattern. Replace with the production URL before sending."
931
971
  }, Y = /* #__PURE__ */ Object.assign({
932
- "./de.ts": pt,
933
- "./en.ts": ht
972
+ "./de.ts": xt,
973
+ "./en.ts": Ct
934
974
  }), X = {};
935
975
  for (let e in Y) {
936
976
  let t = /\.\/([^/]+)\.ts$/.exec(e);
@@ -938,11 +978,11 @@ for (let e in Y) {
938
978
  let n = t[1];
939
979
  n !== "index" && (X[n] = Y[e].default);
940
980
  }
941
- function gt(e) {
981
+ function wt(e) {
942
982
  return X[e.split("-")[0]?.toLowerCase() ?? "en"] ?? X.en ?? J;
943
983
  }
944
- function _t(e, t, n) {
945
- let r = gt(e)[t] ?? J[t];
984
+ function Tt(e, t, n) {
985
+ let r = wt(e)[t] ?? J[t];
946
986
  return n ? r.replace(/\{(\w+)\}/g, (e, t) => {
947
987
  let r = n[t];
948
988
  return r === void 0 ? `{${t}}` : String(r);
@@ -954,7 +994,7 @@ function Z(e) {
954
994
  let t = [];
955
995
  return b(e, (e) => {
956
996
  if (s(e) || n(e) || r(e)) {
957
- for (let n of F(e.content)) t.push({
997
+ for (let n of N(e.content)) t.push({
958
998
  url: n.href,
959
999
  blockId: e.id,
960
1000
  source: "anchor",
@@ -1011,7 +1051,7 @@ function Z(e) {
1011
1051
  }
1012
1052
  //#endregion
1013
1053
  //#region ../quality/src/links/rules/javascript-protocol.ts
1014
- var vt = {
1054
+ var Et = {
1015
1055
  id: "link.javascript-protocol",
1016
1056
  severity: "error"
1017
1057
  }, Q = [
@@ -1019,18 +1059,18 @@ var vt = {
1019
1059
  "data",
1020
1060
  "vbscript"
1021
1061
  ];
1022
- function yt(e) {
1062
+ function Dt(e) {
1023
1063
  if (!e) return null;
1024
1064
  let t = e.replace(/\s+/g, "");
1025
1065
  for (let e of Q) if (RegExp(`^${e}:`, "i").test(t)) return e;
1026
1066
  return null;
1027
1067
  }
1028
- var bt = {
1029
- meta: vt,
1068
+ var Ot = {
1069
+ meta: Et,
1030
1070
  template(e) {
1031
1071
  let t = [];
1032
1072
  for (let n of Z(e)) {
1033
- let e = yt(n.url);
1073
+ let e = Dt(n.url);
1034
1074
  e !== null && t.push({
1035
1075
  blockId: n.blockId,
1036
1076
  params: { protocol: e }
@@ -1038,39 +1078,39 @@ var bt = {
1038
1078
  }
1039
1079
  return t;
1040
1080
  }
1041
- }, xt = {
1081
+ }, kt = {
1042
1082
  id: "link.unsupported-protocol",
1043
1083
  severity: "warning"
1044
- }, St = /* @__PURE__ */ new Set([
1084
+ }, At = /* @__PURE__ */ new Set([
1045
1085
  "http",
1046
1086
  "https",
1047
1087
  "mailto",
1048
1088
  "tel",
1049
1089
  "sms"
1050
- ]), Ct = new Set(Q);
1051
- function wt(e) {
1090
+ ]), jt = new Set(Q);
1091
+ function Mt(e) {
1052
1092
  if (!e) return null;
1053
1093
  let t = e.trim(), n = /^([a-z][a-z0-9+\-.]*):/i.exec(t);
1054
1094
  return n ? n[1].toLowerCase() : null;
1055
1095
  }
1056
- var Tt = {
1057
- meta: xt,
1096
+ var Nt = {
1097
+ meta: kt,
1058
1098
  template(e) {
1059
1099
  let t = [];
1060
1100
  for (let n of Z(e)) {
1061
- let e = wt(n.url);
1062
- e !== null && (Ct.has(e) || St.has(e) || t.push({
1101
+ let e = Mt(n.url);
1102
+ e !== null && (jt.has(e) || At.has(e) || t.push({
1063
1103
  blockId: n.blockId,
1064
1104
  params: { protocol: e }
1065
1105
  }));
1066
1106
  }
1067
1107
  return t;
1068
1108
  }
1069
- }, Et = {
1109
+ }, Pt = {
1070
1110
  id: "link.malformed-mailto",
1071
1111
  severity: "warning"
1072
1112
  };
1073
- function Dt(e) {
1113
+ function Ft(e) {
1074
1114
  let t = e.trim();
1075
1115
  if (!/^mailto:/i.test(t)) return !1;
1076
1116
  let [n] = t.slice(7).split("?", 2);
@@ -1085,41 +1125,41 @@ function Dt(e) {
1085
1125
  }
1086
1126
  return !1;
1087
1127
  }
1088
- var Ot = {
1089
- meta: Et,
1128
+ var It = {
1129
+ meta: Pt,
1090
1130
  template(e) {
1091
1131
  let t = [];
1092
- for (let n of Z(e)) Dt(n.url) && t.push({ blockId: n.blockId });
1132
+ for (let n of Z(e)) Ft(n.url) && t.push({ blockId: n.blockId });
1093
1133
  return t;
1094
1134
  }
1095
- }, kt = {
1135
+ }, Lt = {
1096
1136
  id: "link.malformed-tel",
1097
1137
  severity: "warning"
1098
- }, At = /^[+0-9\s().\-]+$/, jt = /^[A-Za-z0-9-]+(=[^;]+)?$/;
1099
- function Mt(e) {
1138
+ }, Rt = /^[+0-9\s().\-]+$/, zt = /^[A-Za-z0-9-]+(=[^;]+)?$/;
1139
+ function Bt(e) {
1100
1140
  let t = e.trim();
1101
1141
  if (!/^tel:/i.test(t)) return !1;
1102
1142
  let n = t.slice(4).trim();
1103
1143
  if (n === "") return !0;
1104
1144
  let [r, ...i] = n.split(";");
1105
- return !At.test(r) || i.some((e) => !jt.test(e));
1145
+ return !Rt.test(r) || i.some((e) => !zt.test(e));
1106
1146
  }
1107
- var Nt = {
1108
- meta: kt,
1147
+ var Vt = {
1148
+ meta: Lt,
1109
1149
  template(e) {
1110
1150
  let t = [];
1111
- for (let n of Z(e)) Mt(n.url) && t.push({ blockId: n.blockId });
1151
+ for (let n of Z(e)) Bt(n.url) && t.push({ blockId: n.blockId });
1112
1152
  return t;
1113
1153
  }
1114
- }, Pt = {
1154
+ }, Ht = {
1115
1155
  id: "link.localhost-or-staging",
1116
1156
  severity: "warning"
1117
1157
  };
1118
- function Ft(e) {
1158
+ function Ut(e) {
1119
1159
  let t = e.replace(/[.+?^${}()|[\]\\]/g, "\\$&").replace(/\*/g, ".*");
1120
1160
  return RegExp(`^${t}$`, "i");
1121
1161
  }
1122
- function It(e) {
1162
+ function Wt(e) {
1123
1163
  if (!e) return null;
1124
1164
  let t = e.trim();
1125
1165
  if (!/^(https?|ftps?):\/\//i.test(t)) return null;
@@ -1132,18 +1172,18 @@ function It(e) {
1132
1172
  //#endregion
1133
1173
  //#region ../quality/src/links/index.ts
1134
1174
  var $ = [
1135
- bt,
1136
- Tt,
1137
1175
  Ot,
1138
1176
  Nt,
1177
+ It,
1178
+ Vt,
1139
1179
  {
1140
- meta: Pt,
1180
+ meta: Ht,
1141
1181
  template(e, t) {
1142
1182
  let n = t.links.nonProductionHosts;
1143
1183
  if (n.length === 0) return [];
1144
- let r = n.map(Ft), i = [];
1184
+ let r = n.map(Ut), i = [];
1145
1185
  for (let t of Z(e)) {
1146
- let e = It(t.url);
1186
+ let e = Wt(t.url);
1147
1187
  e !== null && r.some((t) => t.test(e)) && i.push({
1148
1188
  blockId: t.blockId,
1149
1189
  params: { host: e }
@@ -1153,24 +1193,24 @@ var $ = [
1153
1193
  }
1154
1194
  }
1155
1195
  ];
1156
- function Lt(e, t = {}) {
1157
- return t.disabled === !0 || t.links === !1 ? [] : x(e, $, se(t.locale, t.links ?? {}, $), (e, t, n) => _t(e, t, n));
1196
+ function Gt(e, t = {}) {
1197
+ return t.disabled === !0 || t.links === !1 ? [] : x(e, $, se(t.locale, t.links ?? {}, $), (e, t, n) => Tt(e, t, n));
1158
1198
  }
1159
1199
  //#endregion
1160
1200
  //#region ../quality/src/util.ts
1161
- function Rt(e) {
1201
+ function Kt(e) {
1162
1202
  return e ? e.disabled === !0 || e.accessibility === !1 && e.structure === !1 && e.links === !1 : !1;
1163
1203
  }
1164
1204
  //#endregion
1165
1205
  //#region ../quality/src/lint-template.ts
1166
- function zt(e, t = {}) {
1167
- return Rt(t) ? [] : [
1168
- ...Xe(e, t),
1169
- ...ft(e, t),
1170
- ...Lt(e, t)
1206
+ function qt(e, t = {}) {
1207
+ return Kt(t) ? [] : [
1208
+ ...it(e, t),
1209
+ ...bt(e, t),
1210
+ ...Gt(e, t)
1171
1211
  ];
1172
1212
  }
1173
1213
  //#endregion
1174
- export { zt as lintTemplate };
1214
+ export { qt as lintTemplate };
1175
1215
 
1176
- //# sourceMappingURL=src-B8W42vT-.js.map
1216
+ //# sourceMappingURL=src-_GNJgPcS.js.map