@templatical/editor 0.25.0 → 0.25.1
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.
- package/dist/{AiChatSidebar-CIkS8DsO.js → AiChatSidebar-BYMdVldY.js} +14 -14
- package/dist/{AiFeatureMenu-Cji1LBJJ.js → AiFeatureMenu-BhHhnu9G.js} +7 -7
- package/dist/{BlockIssueBadge-BQiT0FML.js → BlockIssueBadge-De36PJC4.js} +5 -5
- package/dist/{BlockPreviewCanvas-DAnwZofk.js → BlockPreviewCanvas-BxSoA1QV.js} +3 -3
- package/dist/{CloudEditor-CXaft6Ej.js → CloudEditor-BXfuytQj.js} +25 -25
- package/dist/{CollaboratorBar-BR-rL2wG.js → CollaboratorBar-D9AfWRTH.js} +4 -4
- package/dist/{ColorPicker-B4ArSUhy.js → ColorPicker-VPq4ASC8.js} +6 -6
- package/dist/{CommentsSidebar-Bm5GLDts.js → CommentsSidebar-C8BLy3Pr.js} +15 -15
- package/dist/{CountdownBlock-CIVAQDVu.js → CountdownBlock-Bs2Q_bFX.js} +3 -3
- package/dist/{CountdownToolbar-DBmb3tlb.js → CountdownToolbar-Cic6cdOw.js} +4 -4
- package/dist/{DesignReferenceSidebar-CnyJ8L-j.js → DesignReferenceSidebar-k-26nkJI.js} +11 -11
- package/dist/{IssuesPanel-D3XgmYCt.js → IssuesPanel-NPzwTPYW.js} +8 -8
- package/dist/{LoadingTrack-XK_eeUdq.js → LoadingTrack-DH3OEM3z.js} +1 -1
- package/dist/{MergeTagModeToggle-BK0fI3P2.js → MergeTagModeToggle-DEGyx8tw.js} +5 -5
- package/dist/{MergeTagSuggestion-D0OHRv7L.js → MergeTagSuggestion-DvisJ9im.js} +2 -2
- package/dist/{NumberWithSuffix-Cjj9UNIp.js → NumberWithSuffix-CuHCIwSn.js} +2 -2
- package/dist/{ParagraphEditor-jGnbJEA2.js → ParagraphEditor-DK_IPi9H.js} +56 -33
- package/dist/{RichTextEditorContent-DaaKdzjb.js → RichTextEditorContent-DznIQcdY.js} +8 -8
- package/dist/{SaveBlockDialog-B3ngEldp.js → SaveBlockDialog-R9PbMsy-.js} +10 -10
- package/dist/{SavedBlocksBrowserModal-DawN3XaB.js → SavedBlocksBrowserModal-ttPAklPE.js} +11 -11
- package/dist/{SavedBlocksPanels-eDC9Y46N.js → SavedBlocksPanels-BCwQgKLF.js} +2 -2
- package/dist/{SavedBlocksPickBar-CQbbXmzj.js → SavedBlocksPickBar-DD5Ddv9t.js} +4 -4
- package/dist/{SnapshotHistory-COxKtHM-.js → SnapshotHistory-BXSTGgBh.js} +10 -10
- package/dist/{TemplateScoringPanel-bUuqOO1z.js → TemplateScoringPanel-Ue6Dfnjb.js} +15 -15
- package/dist/{TestEmailModal-CytkbZVQ.js → TestEmailModal-KPFc5oSv.js} +10 -10
- package/dist/{TestEmailPanel-CHUY7VZn.js → TestEmailPanel-b8GHTrnE.js} +2 -2
- package/dist/{TitleEditor-aMR1bOyY.js → TitleEditor-8ln7UBr_.js} +10 -10
- package/dist/{TplModal-fmYNYdyp.js → TplModal-D_FA3Wm3.js} +5 -5
- package/dist/{blockTypeIcons-C6b9rg88.js → blockTypeIcons-BoZeK6l7.js} +2 -2
- package/dist/bundle-stats.json +6 -6
- package/dist/{ca-8Dvbwo50.js → ca-D1zgI9fQ.js} +1 -0
- package/dist/cdn/chunks/{AiChatSidebar-bkBKpNgE.js → AiChatSidebar-D6jGwb4y.js} +16 -16
- package/dist/cdn/chunks/{AiChatSidebar-bkBKpNgE.js.map → AiChatSidebar-D6jGwb4y.js.map} +1 -1
- package/dist/cdn/chunks/{AiFeatureMenu-CI4SYTq2.js → AiFeatureMenu-BtEcjxLL.js} +8 -8
- package/dist/cdn/chunks/{AiFeatureMenu-CI4SYTq2.js.map → AiFeatureMenu-BtEcjxLL.js.map} +1 -1
- package/dist/cdn/chunks/{BlockIssueBadge-CRnx8Dv9.js → BlockIssueBadge-dnqZk6pl.js} +5 -5
- package/dist/cdn/chunks/{BlockIssueBadge-CRnx8Dv9.js.map → BlockIssueBadge-dnqZk6pl.js.map} +1 -1
- package/dist/cdn/chunks/{BlockPreviewCanvas-CXCWhqbp.js → BlockPreviewCanvas-D8pfTFWi.js} +4 -4
- package/dist/cdn/chunks/{BlockPreviewCanvas-CXCWhqbp.js.map → BlockPreviewCanvas-D8pfTFWi.js.map} +1 -1
- package/dist/cdn/chunks/{CloudEditor-D-t7RyDh.js → CloudEditor-BJ4-pPAl.js} +28 -28
- package/dist/cdn/chunks/{CloudEditor-D-t7RyDh.js.map → CloudEditor-BJ4-pPAl.js.map} +1 -1
- package/dist/cdn/chunks/{CollaboratorBar-DcXYo47v.js → CollaboratorBar-SeUOuLeJ.js} +5 -5
- package/dist/cdn/chunks/{CollaboratorBar-DcXYo47v.js.map → CollaboratorBar-SeUOuLeJ.js.map} +1 -1
- package/dist/cdn/chunks/{ColorPicker-_1O7YU2z.js → ColorPicker-yxvrro60.js} +7 -7
- package/dist/cdn/chunks/{ColorPicker-_1O7YU2z.js.map → ColorPicker-yxvrro60.js.map} +1 -1
- package/dist/cdn/chunks/{CommentsSidebar-BEgLBYX-.js → CommentsSidebar-FPbg-FuU.js} +20 -20
- package/dist/cdn/chunks/{CommentsSidebar-BEgLBYX-.js.map → CommentsSidebar-FPbg-FuU.js.map} +1 -1
- package/dist/cdn/chunks/{CountdownBlock-CPnQA44g.js → CountdownBlock-D2Oth7YY.js} +4 -4
- package/dist/cdn/chunks/{CountdownBlock-CPnQA44g.js.map → CountdownBlock-D2Oth7YY.js.map} +1 -1
- package/dist/cdn/chunks/{CountdownToolbar-Cdo-30U4.js → CountdownToolbar-BNgTBQGB.js} +5 -5
- package/dist/cdn/chunks/{CountdownToolbar-Cdo-30U4.js.map → CountdownToolbar-BNgTBQGB.js.map} +1 -1
- package/dist/cdn/chunks/{DesignReferenceSidebar-DPqBr-ut.js → DesignReferenceSidebar-ChB_HBK1.js} +11 -11
- package/dist/cdn/chunks/{DesignReferenceSidebar-DPqBr-ut.js.map → DesignReferenceSidebar-ChB_HBK1.js.map} +1 -1
- package/dist/cdn/chunks/{IssuesPanel-DoQWb23r.js → IssuesPanel-CjiZ8cLW.js} +9 -9
- package/dist/cdn/chunks/{IssuesPanel-DoQWb23r.js.map → IssuesPanel-CjiZ8cLW.js.map} +1 -1
- package/dist/cdn/chunks/{LoadingTrack-G2tuXqCJ.js → LoadingTrack-CiNg9s16.js} +2 -2
- package/dist/cdn/chunks/{LoadingTrack-G2tuXqCJ.js.map → LoadingTrack-CiNg9s16.js.map} +1 -1
- package/dist/cdn/chunks/{MergeTagModeToggle-CWuVC3MU.js → MergeTagModeToggle-CiYbOKzd.js} +15 -15
- package/dist/cdn/chunks/{MergeTagModeToggle-CWuVC3MU.js.map → MergeTagModeToggle-CiYbOKzd.js.map} +1 -1
- package/dist/cdn/chunks/{MergeTagSuggestion-Ces5Ua78.js → MergeTagSuggestion-CvZLI6Np.js} +3 -3
- package/dist/cdn/chunks/{MergeTagSuggestion-Ces5Ua78.js.map → MergeTagSuggestion-CvZLI6Np.js.map} +1 -1
- package/dist/cdn/chunks/{NumberWithSuffix-DQ4sgvt5.js → NumberWithSuffix-vVwCWrd_.js} +3 -3
- package/dist/cdn/chunks/{NumberWithSuffix-DQ4sgvt5.js.map → NumberWithSuffix-vVwCWrd_.js.map} +1 -1
- package/dist/cdn/chunks/{ParagraphEditor-Uv5LPF3W.js → ParagraphEditor-o4hs9mgy.js} +141 -131
- package/dist/cdn/chunks/ParagraphEditor-o4hs9mgy.js.map +1 -0
- package/dist/cdn/chunks/{RichTextEditorContent-Bt3s09qY.js → RichTextEditorContent-BAriGldd.js} +7 -7
- package/dist/cdn/chunks/{RichTextEditorContent-Bt3s09qY.js.map → RichTextEditorContent-BAriGldd.js.map} +1 -1
- package/dist/cdn/chunks/{SaveBlockDialog-BAew6EFd.js → SaveBlockDialog-D3-oILb5.js} +19 -19
- package/dist/cdn/chunks/{SaveBlockDialog-BAew6EFd.js.map → SaveBlockDialog-D3-oILb5.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksBrowserModal-Dn4IJDJW.js → SavedBlocksBrowserModal-jMnNd4wn.js} +13 -13
- package/dist/cdn/chunks/{SavedBlocksBrowserModal-Dn4IJDJW.js.map → SavedBlocksBrowserModal-jMnNd4wn.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksPanels-B62U5DYW.js → SavedBlocksPanels-BDd8FH6l.js} +3 -3
- package/dist/cdn/chunks/{SavedBlocksPanels-B62U5DYW.js.map → SavedBlocksPanels-BDd8FH6l.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksPickBar-CyRKZg2T.js → SavedBlocksPickBar-BNkLe8In.js} +7 -7
- package/dist/cdn/chunks/{SavedBlocksPickBar-CyRKZg2T.js.map → SavedBlocksPickBar-BNkLe8In.js.map} +1 -1
- package/dist/cdn/chunks/{SnapshotHistory-QQt0DKey.js → SnapshotHistory-CYVi7fvQ.js} +12 -12
- package/dist/cdn/chunks/{SnapshotHistory-QQt0DKey.js.map → SnapshotHistory-CYVi7fvQ.js.map} +1 -1
- package/dist/cdn/chunks/{TemplateScoringPanel-BwyCMcit.js → TemplateScoringPanel-D0KrxVnr.js} +54 -54
- package/dist/cdn/chunks/{TemplateScoringPanel-BwyCMcit.js.map → TemplateScoringPanel-D0KrxVnr.js.map} +1 -1
- package/dist/cdn/chunks/{TestEmailModal-B5UQkDJp.js → TestEmailModal-_RbTD787.js} +9 -9
- package/dist/cdn/chunks/{TestEmailModal-B5UQkDJp.js.map → TestEmailModal-_RbTD787.js.map} +1 -1
- package/dist/cdn/chunks/{TestEmailPanel-CvuBq4RA.js → TestEmailPanel-BAnKtbSu.js} +3 -3
- package/dist/cdn/chunks/{TestEmailPanel-CvuBq4RA.js.map → TestEmailPanel-BAnKtbSu.js.map} +1 -1
- package/dist/cdn/chunks/{TitleEditor-B9W954u9.js → TitleEditor-LiUvXGPw.js} +17 -17
- package/dist/cdn/chunks/{TitleEditor-B9W954u9.js.map → TitleEditor-LiUvXGPw.js.map} +1 -1
- package/dist/cdn/chunks/{TplModal-B8UsvWc8.js → TplModal-C1iguuZz.js} +5 -5
- package/dist/cdn/chunks/{TplModal-B8UsvWc8.js.map → TplModal-C1iguuZz.js.map} +1 -1
- package/dist/cdn/chunks/blockTypeIcons-CrPzyP_k.js +21 -0
- package/dist/cdn/chunks/{blockTypeIcons-B8s3_ahs.js.map → blockTypeIcons-CrPzyP_k.js.map} +1 -1
- package/dist/cdn/chunks/{ca-8Dvbwo50.js → ca-D1zgI9fQ.js} +2 -1
- package/dist/cdn/chunks/ca-D1zgI9fQ.js.map +1 -0
- package/dist/cdn/chunks/{cloud-DOaGUdR0.js → cloud-CxNsW3hp.js} +2 -2
- package/dist/cdn/chunks/{cloud-DOaGUdR0.js.map → cloud-CxNsW3hp.js.map} +1 -1
- package/dist/cdn/chunks/{de-CieSMCUp.js → de-DHra3lvx.js} +2 -1
- package/dist/cdn/chunks/de-DHra3lvx.js.map +1 -0
- package/dist/cdn/chunks/{dist-B8AX9np4.js → dist-BLF-S9_A.js} +4 -4
- package/dist/cdn/chunks/{dist-B8AX9np4.js.map → dist-BLF-S9_A.js.map} +1 -1
- package/dist/cdn/chunks/{dist-lZgXNk4G.js → dist-Dp46rwVY.js} +3 -3
- package/dist/cdn/chunks/{dist-lZgXNk4G.js.map → dist-Dp46rwVY.js.map} +1 -1
- package/dist/cdn/chunks/{draggable-JcMTNF3U.js → draggable-BRF_Q_jB.js} +445 -433
- package/dist/cdn/chunks/draggable-BRF_Q_jB.js.map +1 -0
- package/dist/cdn/chunks/{en-D0t_2Fq_.js → en-DlqX2YWZ.js} +2 -1
- package/dist/cdn/chunks/en-DlqX2YWZ.js.map +1 -0
- package/dist/cdn/chunks/{es-DwDoNuLM.js → es-Cuss2snv.js} +2 -1
- package/dist/cdn/chunks/es-Cuss2snv.js.map +1 -0
- package/dist/cdn/chunks/{extensions-5jgtarD-.js → extensions-yNQlgLNE.js} +6 -6
- package/dist/cdn/chunks/{extensions-5jgtarD-.js.map → extensions-yNQlgLNE.js.map} +1 -1
- package/dist/cdn/chunks/{fr-CSEEzv1_.js → fr-Cm85vB2g.js} +2 -1
- package/dist/cdn/chunks/fr-Cm85vB2g.js.map +1 -0
- package/dist/cdn/chunks/{icons-Cp4ZIJw-.js → icons-DN008liP.js} +45 -32
- package/dist/cdn/chunks/icons-DN008liP.js.map +1 -0
- package/dist/cdn/chunks/{keys-BxPCfHBH.js → keys-CZOBuCQd.js} +2 -2
- package/dist/cdn/chunks/{keys-BxPCfHBH.js.map → keys-CZOBuCQd.js.map} +1 -1
- package/dist/cdn/chunks/{nl-xyk1T2mA.js → nl-dmiIX7oT.js} +2 -1
- package/dist/cdn/chunks/nl-dmiIX7oT.js.map +1 -0
- package/dist/cdn/chunks/{pt-BR-yr6uOJgn.js → pt-BR-CaIG-7EM.js} +2 -1
- package/dist/cdn/chunks/pt-BR-CaIG-7EM.js.map +1 -0
- package/dist/cdn/chunks/{src-Dpj0x27M.js → src-B2LpXMIw.js} +373 -373
- package/dist/cdn/chunks/{src-Dpj0x27M.js.map → src-B2LpXMIw.js.map} +1 -1
- package/dist/cdn/chunks/{src-B8W42vT-.js → src-D_3bXt7-.js} +215 -175
- package/dist/cdn/chunks/src-D_3bXt7-.js.map +1 -0
- package/dist/cdn/chunks/{src-C417zeUg.js → src-uc_Mb_yH.js} +2 -2
- package/dist/cdn/chunks/{src-C417zeUg.js.map → src-uc_Mb_yH.js.map} +1 -1
- package/dist/cdn/chunks/{styles-DANwMzW2.js → styles-BzP13r-I.js} +83 -83
- package/dist/cdn/chunks/{styles-DANwMzW2.js.map → styles-BzP13r-I.js.map} +1 -1
- package/dist/cdn/chunks/{tiptap-rsib432n.js → tiptap-CgwK_fKJ.js} +2 -2
- package/dist/cdn/chunks/{tiptap-rsib432n.js.map → tiptap-CgwK_fKJ.js.map} +1 -1
- package/dist/cdn/chunks/{useAliveFlag-CseYNikC.js → useAliveFlag-Ctyt3GgH.js} +2 -2
- package/dist/cdn/chunks/{useAliveFlag-CseYNikC.js.map → useAliveFlag-Ctyt3GgH.js.map} +1 -1
- package/dist/cdn/chunks/{useCloudI18n-CjVzv11v.js → useCloudI18n-CML0BxqX.js} +3 -3
- package/dist/cdn/chunks/{useCloudI18n-CjVzv11v.js.map → useCloudI18n-CML0BxqX.js.map} +1 -1
- package/dist/cdn/chunks/{useEditorCore-DfW-thCr.js → useEditorCore-CTYH6u4r.js} +32 -32
- package/dist/cdn/chunks/{useEditorCore-DfW-thCr.js.map → useEditorCore-CTYH6u4r.js.map} +1 -1
- package/dist/cdn/chunks/{useI18n-DniEFeIl.js → useI18n-aRMtgYRj.js} +3 -3
- package/dist/cdn/chunks/{useI18n-DniEFeIl.js.map → useI18n-aRMtgYRj.js.map} +1 -1
- package/dist/cdn/chunks/{useMergeTag-Bk9_f5cc.js → useMergeTag-8a8BnIZp.js} +3 -3
- package/dist/cdn/chunks/{useMergeTag-Bk9_f5cc.js.map → useMergeTag-8a8BnIZp.js.map} +1 -1
- package/dist/cdn/chunks/{usePopoverPosition-C4xFJCJ2.js → usePopoverPosition-Dm1jv3y5.js} +3 -3
- package/dist/cdn/chunks/{usePopoverPosition-C4xFJCJ2.js.map → usePopoverPosition-Dm1jv3y5.js.map} +1 -1
- package/dist/cdn/editor.js +15 -15
- package/dist/{check-CIhIDh4h.js → check-Bqimqf7l.js} +1 -1
- package/dist/{chevron-down-CZ0m6G3s.js → chevron-down-CYOoeGBd.js} +1 -1
- package/dist/{chevron-up-BH_tJLeb.js → chevron-up-DYknsfm0.js} +1 -1
- package/dist/{circle-alert-DkEXnGPV.js → circle-alert-6q_jgtv_.js} +1 -1
- package/dist/{clock-BDIJZUET.js → clock-CnadSSTD.js} +1 -1
- package/dist/{cloud-BZn3jqoL.js → cloud-BJLg_SlM.js} +1 -1
- package/dist/{createLucideIcon-AEltGIse.js → createLucideIcon-D7GKhya2.js} +3 -3
- package/dist/{de-CieSMCUp.js → de-DHra3lvx.js} +1 -0
- package/dist/{dist-CIqhVQ1O.js → dist-C31bMR4x.js} +3 -3
- package/dist/{dist-DT1XnEnj.js → dist-DDfXShPv.js} +2 -2
- package/dist/{en-D0t_2Fq_.js → en-DlqX2YWZ.js} +1 -0
- package/dist/{es-DwDoNuLM.js → es-Cuss2snv.js} +1 -0
- package/dist/{extensions-BjvyU9Ea.js → extensions-CbiWtzS6.js} +6 -6
- package/dist/{fr-CSEEzv1_.js → fr-Cm85vB2g.js} +1 -0
- package/dist/{image-up-8ktdYdaZ.js → image-up-BfukboIn.js} +1 -1
- package/dist/{info-CvrCgTLH.js → info-DSYRzSZo.js} +1 -1
- package/dist/{keys-BFPiNAIn.js → keys-BI6VSUh4.js} +1 -1
- package/dist/{list-checks-yzGT93ZL.js → list-checks-URZOyLhr.js} +1 -1
- package/dist/{loader-circle-B6euendB.js → loader-circle-GADaYcyQ.js} +1 -1
- package/dist/{message-circle-BMldLVcA.js → message-circle-B62fdo0b.js} +1 -1
- package/dist/{nl-xyk1T2mA.js → nl-dmiIX7oT.js} +1 -0
- package/dist/{pencil-CkKkSd6N.js → pencil-BGwkOpD_.js} +1 -1
- package/dist/{pt-BR-yr6uOJgn.js → pt-BR-CaIG-7EM.js} +1 -0
- package/dist/{refresh-cw-fBPgB97G.js → refresh-cw-Z4wXfduO.js} +1 -1
- package/dist/{runtime-dom.esm-bundler-CBbDt7sw.js → runtime-dom.esm-bundler-BkOsapVg.js} +163 -162
- package/dist/{scan-line-CRoEOUiK.js → scan-line-D8Oh5xos.js} +1 -1
- package/dist/{send-B9Tt2qBi.js → send-BYp4k38T.js} +1 -1
- package/dist/{shield-check-QfZkYeIo.js → shield-check-Cm0RePnW.js} +1 -1
- package/dist/{sparkles-8UeMmZb8.js → sparkles-BHEE-vRD.js} +1 -1
- package/dist/{styles-C9GM-bBC.js → styles-B0MEBpOK.js} +32 -32
- package/dist/templatical-editor.js +17 -17
- package/dist/{text-align-start-Dn8uIheW.js → text-align-start-CHrg3vK8.js} +1 -1
- package/dist/{trash-2-DDyvqj0E.js → trash-2-BoNT8wbq.js} +1 -1
- package/dist/{triangle-alert-B3PydLzl.js → triangle-alert-CiN0ssB3.js} +1 -1
- package/dist/{upload-hE8ItfyG.js → upload-WvZGBySw.js} +1 -1
- package/dist/{useAliveFlag-AfoTE_AY.js → useAliveFlag-eT67QCMf.js} +1 -1
- package/dist/{useCloudI18n-B2lItQ6O.js → useCloudI18n-KgIWl-IE.js} +2 -2
- package/dist/{useEditorCore-Ck_hBiGA.js → useEditorCore-BMbxdUbY.js} +20 -20
- package/dist/{useI18n-C1KcdX_K.js → useI18n-BkHfCWC6.js} +2 -2
- package/dist/{useMergeTag-DHCwRMfH.js → useMergeTag-CZ4XYAxu.js} +2 -2
- package/dist/{usePopoverPosition-ClnEh_Cp.js → usePopoverPosition-D93u-EZm.js} +4 -4
- package/dist/{vue.runtime.esm-bundler-Xpz-L9Fn.js → vue.runtime.esm-bundler-0R1UhmZB.js} +179 -157
- package/dist/{x-C4lETLDx.js → x-B4WnJVRx.js} +1 -1
- package/package.json +10 -10
- package/dist/cdn/chunks/ParagraphEditor-Uv5LPF3W.js.map +0 -1
- package/dist/cdn/chunks/blockTypeIcons-B8s3_ahs.js +0 -21
- package/dist/cdn/chunks/ca-8Dvbwo50.js.map +0 -1
- package/dist/cdn/chunks/de-CieSMCUp.js.map +0 -1
- package/dist/cdn/chunks/draggable-JcMTNF3U.js.map +0 -1
- package/dist/cdn/chunks/en-D0t_2Fq_.js.map +0 -1
- package/dist/cdn/chunks/es-DwDoNuLM.js.map +0 -1
- package/dist/cdn/chunks/fr-CSEEzv1_.js.map +0 -1
- package/dist/cdn/chunks/icons-Cp4ZIJw-.js.map +0 -1
- package/dist/cdn/chunks/nl-xyk1T2mA.js.map +0 -1
- package/dist/cdn/chunks/pt-BR-yr6uOJgn.js.map +0 -1
- package/dist/cdn/chunks/src-B8W42vT-.js.map +0 -1
|
@@ -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: () =>
|
|
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
|
-
},
|
|
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
|
-
},
|
|
366
|
+
}, D = /* #__PURE__ */ Object.assign({
|
|
365
367
|
"./de.ts": ye,
|
|
366
|
-
"./en.ts":
|
|
367
|
-
}),
|
|
368
|
-
for (let e in
|
|
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" && (
|
|
374
|
+
n !== "index" && (O[n] = D[e].default);
|
|
373
375
|
}
|
|
374
|
-
function
|
|
375
|
-
return
|
|
376
|
+
function k(e) {
|
|
377
|
+
return j;
|
|
376
378
|
}
|
|
377
|
-
function
|
|
379
|
+
function A(e) {
|
|
378
380
|
let t = /* @__PURE__ */ new Set();
|
|
379
|
-
for (let n of Object.values(
|
|
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
|
|
383
|
-
vagueLinkText:
|
|
384
|
-
vagueButtonLabels:
|
|
385
|
-
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
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
432
|
-
let t =
|
|
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
|
|
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
|
|
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
|
|
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) ||
|
|
472
|
+
return !s(e) || P(e.content ?? "") !== "" ? null : { blockId: e.id };
|
|
471
473
|
}
|
|
472
|
-
},
|
|
474
|
+
}, Ee = {
|
|
473
475
|
id: "a11y.heading-skip-level",
|
|
474
476
|
severity: "error"
|
|
475
477
|
};
|
|
476
|
-
function
|
|
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)
|
|
484
|
+
if (i(n)) for (let e of n.children) F(e, t);
|
|
483
485
|
}
|
|
484
486
|
}
|
|
485
|
-
var
|
|
486
|
-
meta:
|
|
487
|
+
var De = {
|
|
488
|
+
meta: Ee,
|
|
487
489
|
template(e) {
|
|
488
490
|
let t = [];
|
|
489
|
-
|
|
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
|
-
},
|
|
502
|
+
}, Oe = {
|
|
501
503
|
id: "a11y.heading-multiple-h1",
|
|
502
504
|
severity: "warning"
|
|
503
505
|
};
|
|
504
|
-
function
|
|
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)
|
|
512
|
+
if (i(n)) for (let e of n.children) I(e, t);
|
|
511
513
|
}
|
|
512
514
|
}
|
|
513
|
-
var
|
|
514
|
-
meta:
|
|
515
|
+
var ke = {
|
|
516
|
+
meta: Oe,
|
|
515
517
|
template(e) {
|
|
516
518
|
let t = [];
|
|
517
|
-
|
|
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
|
-
},
|
|
523
|
+
}, Ae = {
|
|
522
524
|
id: "a11y.link-empty",
|
|
523
525
|
severity: "error"
|
|
524
526
|
};
|
|
525
|
-
function
|
|
527
|
+
function je(e) {
|
|
526
528
|
return n(e) || s(e) ? e.content : null;
|
|
527
529
|
}
|
|
528
|
-
var
|
|
529
|
-
meta:
|
|
530
|
+
var Me = {
|
|
531
|
+
meta: Ae,
|
|
530
532
|
block(e) {
|
|
531
|
-
let t =
|
|
532
|
-
return t === null || !
|
|
533
|
+
let t = je(e);
|
|
534
|
+
return t === null || !N(t).find((e) => e.text === "" && !e.hasImageWithAlt) ? null : { blockId: e.id };
|
|
533
535
|
}
|
|
534
|
-
},
|
|
536
|
+
}, Ne = {
|
|
535
537
|
id: "a11y.link-vague-text",
|
|
536
538
|
severity: "warning"
|
|
537
539
|
};
|
|
538
|
-
function
|
|
540
|
+
function Pe(e) {
|
|
539
541
|
return n(e) || s(e) ? e.content : null;
|
|
540
542
|
}
|
|
541
|
-
var
|
|
542
|
-
meta:
|
|
543
|
+
var Fe = {
|
|
544
|
+
meta: Ne,
|
|
543
545
|
block(e, t, n) {
|
|
544
|
-
let r =
|
|
546
|
+
let r = Pe(e);
|
|
545
547
|
if (r === null) return null;
|
|
546
|
-
let i =
|
|
547
|
-
let t =
|
|
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
|
-
},
|
|
557
|
+
}, Ie = {
|
|
556
558
|
id: "a11y.link-href-empty",
|
|
557
559
|
severity: "error"
|
|
558
560
|
};
|
|
559
|
-
function
|
|
561
|
+
function Le(e) {
|
|
560
562
|
return n(e) || s(e) ? e.content : null;
|
|
561
563
|
}
|
|
562
|
-
var
|
|
563
|
-
meta:
|
|
564
|
+
var Re = {
|
|
565
|
+
meta: Ie,
|
|
564
566
|
block(e) {
|
|
565
|
-
let t =
|
|
566
|
-
return t === null || !
|
|
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
|
-
},
|
|
573
|
+
}, ze = {
|
|
572
574
|
id: "a11y.link-target-blank-no-rel",
|
|
573
575
|
severity: "warning"
|
|
574
576
|
};
|
|
575
|
-
function
|
|
577
|
+
function Be(e) {
|
|
576
578
|
return n(e) || s(e) ? e.content : null;
|
|
577
579
|
}
|
|
578
|
-
function
|
|
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
|
|
584
|
-
meta:
|
|
585
|
+
var He = {
|
|
586
|
+
meta: ze,
|
|
585
587
|
block(e) {
|
|
586
|
-
let t =
|
|
587
|
-
return t === 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 =
|
|
595
|
+
let r = Ge(e.content ?? "");
|
|
594
596
|
t.updateBlock(e.id, { content: r });
|
|
595
597
|
}
|
|
596
598
|
}
|
|
597
599
|
};
|
|
598
600
|
}
|
|
599
|
-
},
|
|
600
|
-
function
|
|
601
|
-
let t = [], n = new RegExp(
|
|
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
|
|
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
|
|
615
|
+
function Ge(e) {
|
|
614
616
|
return e.replace(/<a\b([^>]*)>/gi, (e, t) => {
|
|
615
|
-
let n =
|
|
616
|
-
if (!
|
|
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
|
|
631
|
+
var R = {
|
|
630
632
|
id: "a11y.link-nested-anchor",
|
|
631
633
|
severity: "error"
|
|
632
634
|
};
|
|
633
|
-
function
|
|
635
|
+
function Ke(e) {
|
|
634
636
|
return n(e) || s(e) ? e.content : null;
|
|
635
637
|
}
|
|
636
|
-
var
|
|
637
|
-
meta:
|
|
638
|
+
var qe = {
|
|
639
|
+
meta: R,
|
|
638
640
|
block(e) {
|
|
639
|
-
let t =
|
|
640
|
-
return t === null || !
|
|
641
|
+
let t = Ke(e);
|
|
642
|
+
return t === null || !Ce(t) ? null : { blockId: e.id };
|
|
641
643
|
}
|
|
642
|
-
},
|
|
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 =
|
|
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
|
-
},
|
|
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
|
-
},
|
|
709
|
+
}, nt = {
|
|
671
710
|
id: "a11y.text-too-small",
|
|
672
711
|
severity: "warning"
|
|
673
712
|
};
|
|
674
|
-
function
|
|
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
|
-
|
|
685
|
-
Ce,
|
|
723
|
+
Se,
|
|
686
724
|
Te,
|
|
687
725
|
De,
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
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:
|
|
736
|
+
meta: nt,
|
|
697
737
|
block(e, t, n) {
|
|
698
|
-
let r =
|
|
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 =
|
|
716
|
-
return r === "" || !
|
|
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
|
|
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
|
|
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
|
-
},
|
|
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":
|
|
789
|
-
"./en.ts":
|
|
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
|
|
837
|
+
function ct(e) {
|
|
798
838
|
return W[e.split("-")[0]?.toLowerCase() ?? "en"] ?? W.en ?? H;
|
|
799
839
|
}
|
|
800
|
-
function
|
|
801
|
-
let r =
|
|
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
|
|
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
|
|
817
|
-
meta:
|
|
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
|
-
},
|
|
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
|
|
846
|
-
meta:
|
|
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
|
-
},
|
|
891
|
+
}, mt = {
|
|
852
892
|
id: "structure.empty-section",
|
|
853
893
|
severity: "warning"
|
|
854
894
|
};
|
|
855
|
-
function
|
|
895
|
+
function ht(e) {
|
|
856
896
|
return e.children.length === 0 || e.children.every((e) => e.length === 0);
|
|
857
897
|
}
|
|
858
|
-
var
|
|
859
|
-
meta:
|
|
898
|
+
var gt = {
|
|
899
|
+
meta: mt,
|
|
860
900
|
block(e) {
|
|
861
901
|
if (!i(e)) return null;
|
|
862
902
|
let t = e;
|
|
863
|
-
return
|
|
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
|
-
},
|
|
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
|
-
},
|
|
924
|
+
}, vt = {
|
|
885
925
|
id: "structure.section-column-mismatch",
|
|
886
926
|
severity: "error"
|
|
887
927
|
};
|
|
888
|
-
function
|
|
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
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
934
|
+
dt,
|
|
935
|
+
gt,
|
|
936
|
+
pt,
|
|
937
|
+
_t,
|
|
898
938
|
{
|
|
899
|
-
meta:
|
|
939
|
+
meta: vt,
|
|
900
940
|
block(e) {
|
|
901
941
|
if (!i(e)) return null;
|
|
902
|
-
let t = e, n =
|
|
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
|
|
915
|
-
return t.disabled === !0 || t.structure === !1 ? [] : x(e, q, oe(t.locale, t.structure ?? {}, q), (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
|
|
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
|
-
},
|
|
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":
|
|
933
|
-
"./en.ts":
|
|
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
|
|
981
|
+
function wt(e) {
|
|
942
982
|
return X[e.split("-")[0]?.toLowerCase() ?? "en"] ?? X.en ?? J;
|
|
943
983
|
}
|
|
944
|
-
function
|
|
945
|
-
let r =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
1029
|
-
meta:
|
|
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 =
|
|
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
|
-
},
|
|
1081
|
+
}, kt = {
|
|
1042
1082
|
id: "link.unsupported-protocol",
|
|
1043
1083
|
severity: "warning"
|
|
1044
|
-
},
|
|
1084
|
+
}, At = /* @__PURE__ */ new Set([
|
|
1045
1085
|
"http",
|
|
1046
1086
|
"https",
|
|
1047
1087
|
"mailto",
|
|
1048
1088
|
"tel",
|
|
1049
1089
|
"sms"
|
|
1050
|
-
]),
|
|
1051
|
-
function
|
|
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
|
|
1057
|
-
meta:
|
|
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 =
|
|
1062
|
-
e !== null && (
|
|
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
|
-
},
|
|
1109
|
+
}, Pt = {
|
|
1070
1110
|
id: "link.malformed-mailto",
|
|
1071
1111
|
severity: "warning"
|
|
1072
1112
|
};
|
|
1073
|
-
function
|
|
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
|
|
1089
|
-
meta:
|
|
1128
|
+
var It = {
|
|
1129
|
+
meta: Pt,
|
|
1090
1130
|
template(e) {
|
|
1091
1131
|
let t = [];
|
|
1092
|
-
for (let n of Z(e))
|
|
1132
|
+
for (let n of Z(e)) Ft(n.url) && t.push({ blockId: n.blockId });
|
|
1093
1133
|
return t;
|
|
1094
1134
|
}
|
|
1095
|
-
},
|
|
1135
|
+
}, Lt = {
|
|
1096
1136
|
id: "link.malformed-tel",
|
|
1097
1137
|
severity: "warning"
|
|
1098
|
-
},
|
|
1099
|
-
function
|
|
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 !
|
|
1145
|
+
return !Rt.test(r) || i.some((e) => !zt.test(e));
|
|
1106
1146
|
}
|
|
1107
|
-
var
|
|
1108
|
-
meta:
|
|
1147
|
+
var Vt = {
|
|
1148
|
+
meta: Lt,
|
|
1109
1149
|
template(e) {
|
|
1110
1150
|
let t = [];
|
|
1111
|
-
for (let n of Z(e))
|
|
1151
|
+
for (let n of Z(e)) Bt(n.url) && t.push({ blockId: n.blockId });
|
|
1112
1152
|
return t;
|
|
1113
1153
|
}
|
|
1114
|
-
},
|
|
1154
|
+
}, Ht = {
|
|
1115
1155
|
id: "link.localhost-or-staging",
|
|
1116
1156
|
severity: "warning"
|
|
1117
1157
|
};
|
|
1118
|
-
function
|
|
1158
|
+
function Ut(e) {
|
|
1119
1159
|
let t = e.replace(/[.+?^${}()|[\]\\]/g, "\\$&").replace(/\*/g, ".*");
|
|
1120
1160
|
return RegExp(`^${t}$`, "i");
|
|
1121
1161
|
}
|
|
1122
|
-
function
|
|
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:
|
|
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(
|
|
1184
|
+
let r = n.map(Ut), i = [];
|
|
1145
1185
|
for (let t of Z(e)) {
|
|
1146
|
-
let e =
|
|
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
|
|
1157
|
-
return t.disabled === !0 || t.links === !1 ? [] : x(e, $, se(t.locale, t.links ?? {}, $), (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
|
|
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
|
|
1167
|
-
return
|
|
1168
|
-
...
|
|
1169
|
-
...
|
|
1170
|
-
...
|
|
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 {
|
|
1214
|
+
export { qt as lintTemplate };
|
|
1175
1215
|
|
|
1176
|
-
//# sourceMappingURL=src-
|
|
1216
|
+
//# sourceMappingURL=src-D_3bXt7-.js.map
|