@templatical/editor 0.24.1 → 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-X4viKtvs.js → AiChatSidebar-BYMdVldY.js} +15 -15
- package/dist/{AiFeatureMenu-DDAamRaA.js → AiFeatureMenu-BhHhnu9G.js} +7 -7
- package/dist/{BlockIssueBadge-Qxrl7Ujl.js → BlockIssueBadge-De36PJC4.js} +5 -5
- package/dist/{BlockPreviewCanvas-Cf-kxbEr.js → BlockPreviewCanvas-BxSoA1QV.js} +11 -7
- package/dist/{CloudEditor-JIzhj1Xq.js → CloudEditor-BXfuytQj.js} +73 -71
- package/dist/{CollaboratorBar-tC7AACTb.js → CollaboratorBar-D9AfWRTH.js} +4 -4
- package/dist/{ColorPicker--_2PbzFk.js → ColorPicker-VPq4ASC8.js} +6 -6
- package/dist/{CommentsSidebar-Ci2Ov8FG.js → CommentsSidebar-C8BLy3Pr.js} +16 -16
- package/dist/{CountdownBlock-aZIKfBWY.js → CountdownBlock-Bs2Q_bFX.js} +3 -3
- package/dist/{CountdownToolbar-DHp6T0Q_.js → CountdownToolbar-Cic6cdOw.js} +4 -4
- package/dist/{DesignReferenceSidebar-DQsC-3hB.js → DesignReferenceSidebar-k-26nkJI.js} +11 -11
- package/dist/{IssuesPanel-CoOfib44.js → IssuesPanel-NPzwTPYW.js} +8 -8
- package/dist/{LoadingTrack-XK_eeUdq.js → LoadingTrack-DH3OEM3z.js} +1 -1
- package/dist/{MergeTagModeToggle-CiFiSV0C.js → MergeTagModeToggle-DEGyx8tw.js} +6 -6
- package/dist/{MergeTagSuggestion-D0OHRv7L.js → MergeTagSuggestion-DvisJ9im.js} +2 -2
- package/dist/{NumberWithSuffix-CXFbUqsx.js → NumberWithSuffix-CuHCIwSn.js} +2 -2
- package/dist/{ParagraphEditor-Cy-bpEjI.js → ParagraphEditor-DK_IPi9H.js} +57 -34
- package/dist/{RichTextEditorContent-CYJko6id.js → RichTextEditorContent-DznIQcdY.js} +8 -8
- package/dist/{SaveBlockDialog-CNTSaMEa.js → SaveBlockDialog-R9PbMsy-.js} +12 -12
- package/dist/{SavedBlocksBrowserModal-CvxS5-YX.js → SavedBlocksBrowserModal-ttPAklPE.js} +11 -11
- package/dist/{SavedBlocksPanels-CNdUxS89.js → SavedBlocksPanels-BCwQgKLF.js} +2 -2
- package/dist/{SavedBlocksPickBar-BvXKhblL.js → SavedBlocksPickBar-DD5Ddv9t.js} +4 -4
- package/dist/{SnapshotHistory-BqPSIV9L.js → SnapshotHistory-BXSTGgBh.js} +10 -10
- package/dist/{TemplateScoringPanel-CMEuz9yF.js → TemplateScoringPanel-Ue6Dfnjb.js} +16 -16
- package/dist/{TestEmailModal-BDhnnCBx.js → TestEmailModal-KPFc5oSv.js} +89 -58
- package/dist/{TestEmailPanel--RwnwLn2.js → TestEmailPanel-b8GHTrnE.js} +2 -2
- package/dist/{TitleEditor-F7E_pU9H.js → TitleEditor-8ln7UBr_.js} +11 -11
- package/dist/{TplModal-BIiS24Of.js → TplModal-D_FA3Wm3.js} +5 -5
- package/dist/{blockTypeIcons-C6PnLMp7.js → blockTypeIcons-BoZeK6l7.js} +2 -2
- package/dist/bundle-stats.json +6 -6
- package/dist/{ca-CO4nq6TX.js → ca-D1zgI9fQ.js} +6 -0
- package/dist/cdn/chunks/{AiChatSidebar-UbF3ePzR.js → AiChatSidebar-D6jGwb4y.js} +17 -17
- package/dist/cdn/chunks/{AiChatSidebar-UbF3ePzR.js.map → AiChatSidebar-D6jGwb4y.js.map} +1 -1
- package/dist/cdn/chunks/{AiFeatureMenu-OIwoJzHG.js → AiFeatureMenu-BtEcjxLL.js} +8 -8
- package/dist/cdn/chunks/{AiFeatureMenu-OIwoJzHG.js.map → AiFeatureMenu-BtEcjxLL.js.map} +1 -1
- package/dist/cdn/chunks/{BlockIssueBadge-Bd2EuT1C.js → BlockIssueBadge-dnqZk6pl.js} +5 -5
- package/dist/cdn/chunks/{BlockIssueBadge-Bd2EuT1C.js.map → BlockIssueBadge-dnqZk6pl.js.map} +1 -1
- package/dist/cdn/chunks/{BlockPreviewCanvas-C-ut8GkJ.js → BlockPreviewCanvas-D8pfTFWi.js} +12 -8
- package/dist/cdn/chunks/BlockPreviewCanvas-D8pfTFWi.js.map +1 -0
- package/dist/cdn/chunks/{CloudEditor-D87qsqbZ.js → CloudEditor-BJ4-pPAl.js} +75 -73
- package/dist/cdn/chunks/CloudEditor-BJ4-pPAl.js.map +1 -0
- package/dist/cdn/chunks/{CollaboratorBar-Br4RvNrA.js → CollaboratorBar-SeUOuLeJ.js} +5 -5
- package/dist/cdn/chunks/{CollaboratorBar-Br4RvNrA.js.map → CollaboratorBar-SeUOuLeJ.js.map} +1 -1
- package/dist/cdn/chunks/{ColorPicker-B-ymPPtU.js → ColorPicker-yxvrro60.js} +7 -7
- package/dist/cdn/chunks/{ColorPicker-B-ymPPtU.js.map → ColorPicker-yxvrro60.js.map} +1 -1
- package/dist/cdn/chunks/{CommentsSidebar-Tv_WTcJv.js → CommentsSidebar-FPbg-FuU.js} +21 -21
- package/dist/cdn/chunks/{CommentsSidebar-Tv_WTcJv.js.map → CommentsSidebar-FPbg-FuU.js.map} +1 -1
- package/dist/cdn/chunks/{CountdownBlock-cEcXSK91.js → CountdownBlock-D2Oth7YY.js} +4 -4
- package/dist/cdn/chunks/{CountdownBlock-cEcXSK91.js.map → CountdownBlock-D2Oth7YY.js.map} +1 -1
- package/dist/cdn/chunks/{CountdownToolbar-CLp3_ebk.js → CountdownToolbar-BNgTBQGB.js} +5 -5
- package/dist/cdn/chunks/{CountdownToolbar-CLp3_ebk.js.map → CountdownToolbar-BNgTBQGB.js.map} +1 -1
- package/dist/cdn/chunks/{DesignReferenceSidebar-YeqxSsxO.js → DesignReferenceSidebar-ChB_HBK1.js} +11 -11
- package/dist/cdn/chunks/{DesignReferenceSidebar-YeqxSsxO.js.map → DesignReferenceSidebar-ChB_HBK1.js.map} +1 -1
- package/dist/cdn/chunks/{IssuesPanel-BhsvC3XQ.js → IssuesPanel-CjiZ8cLW.js} +9 -9
- package/dist/cdn/chunks/{IssuesPanel-BhsvC3XQ.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-DrdxQA0K.js → MergeTagModeToggle-CiYbOKzd.js} +16 -16
- package/dist/cdn/chunks/{MergeTagModeToggle-DrdxQA0K.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-BK_Xh4w4.js → NumberWithSuffix-vVwCWrd_.js} +3 -3
- package/dist/cdn/chunks/{NumberWithSuffix-BK_Xh4w4.js.map → NumberWithSuffix-vVwCWrd_.js.map} +1 -1
- package/dist/cdn/chunks/{ParagraphEditor-DKz4vTWB.js → ParagraphEditor-o4hs9mgy.js} +142 -132
- package/dist/cdn/chunks/ParagraphEditor-o4hs9mgy.js.map +1 -0
- package/dist/cdn/chunks/{RichTextEditorContent-CJ2WVicQ.js → RichTextEditorContent-BAriGldd.js} +7 -7
- package/dist/cdn/chunks/{RichTextEditorContent-CJ2WVicQ.js.map → RichTextEditorContent-BAriGldd.js.map} +1 -1
- package/dist/cdn/chunks/{SaveBlockDialog-DTemkKPX.js → SaveBlockDialog-D3-oILb5.js} +19 -19
- package/dist/cdn/chunks/{SaveBlockDialog-DTemkKPX.js.map → SaveBlockDialog-D3-oILb5.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksBrowserModal-DbMaIbeH.js → SavedBlocksBrowserModal-jMnNd4wn.js} +13 -13
- package/dist/cdn/chunks/{SavedBlocksBrowserModal-DbMaIbeH.js.map → SavedBlocksBrowserModal-jMnNd4wn.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksPanels-CUffuDAC.js → SavedBlocksPanels-BDd8FH6l.js} +3 -3
- package/dist/cdn/chunks/{SavedBlocksPanels-CUffuDAC.js.map → SavedBlocksPanels-BDd8FH6l.js.map} +1 -1
- package/dist/cdn/chunks/{SavedBlocksPickBar-D7SmNz2n.js → SavedBlocksPickBar-BNkLe8In.js} +7 -7
- package/dist/cdn/chunks/{SavedBlocksPickBar-D7SmNz2n.js.map → SavedBlocksPickBar-BNkLe8In.js.map} +1 -1
- package/dist/cdn/chunks/{SnapshotHistory-m5Z8bTej.js → SnapshotHistory-CYVi7fvQ.js} +12 -12
- package/dist/cdn/chunks/{SnapshotHistory-m5Z8bTej.js.map → SnapshotHistory-CYVi7fvQ.js.map} +1 -1
- package/dist/cdn/chunks/{TemplateScoringPanel-DgRU5fty.js → TemplateScoringPanel-D0KrxVnr.js} +71 -71
- package/dist/cdn/chunks/{TemplateScoringPanel-DgRU5fty.js.map → TemplateScoringPanel-D0KrxVnr.js.map} +1 -1
- package/dist/cdn/chunks/{TestEmailModal-Ce8-vzGh.js → TestEmailModal-_RbTD787.js} +89 -58
- package/dist/cdn/chunks/TestEmailModal-_RbTD787.js.map +1 -0
- package/dist/cdn/chunks/{TestEmailPanel-BlmIKKSL.js → TestEmailPanel-BAnKtbSu.js} +3 -3
- package/dist/cdn/chunks/{TestEmailPanel-BlmIKKSL.js.map → TestEmailPanel-BAnKtbSu.js.map} +1 -1
- package/dist/cdn/chunks/{TitleEditor-C6_bQxYR.js → TitleEditor-LiUvXGPw.js} +18 -18
- package/dist/cdn/chunks/{TitleEditor-C6_bQxYR.js.map → TitleEditor-LiUvXGPw.js.map} +1 -1
- package/dist/cdn/chunks/{TplModal-D6bFON2K.js → TplModal-C1iguuZz.js} +5 -5
- package/dist/cdn/chunks/{TplModal-D6bFON2K.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-CO4nq6TX.js → ca-D1zgI9fQ.js} +7 -1
- package/dist/cdn/chunks/ca-D1zgI9fQ.js.map +1 -0
- package/dist/cdn/chunks/{cloud-CRlDc0Ev.js → cloud-CxNsW3hp.js} +3 -3
- package/dist/cdn/chunks/{cloud-CRlDc0Ev.js.map → cloud-CxNsW3hp.js.map} +1 -1
- package/dist/{de-CUeaFJph.js → cdn/chunks/de-DHra3lvx.js} +8 -0
- 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/{en-zCYIPAL5.js → cdn/chunks/en-DlqX2YWZ.js} +8 -0
- package/dist/cdn/chunks/en-DlqX2YWZ.js.map +1 -0
- package/dist/{es-BSiH7YkP.js → cdn/chunks/es-Cuss2snv.js} +8 -0
- package/dist/cdn/chunks/es-Cuss2snv.js.map +1 -0
- package/dist/cdn/chunks/{extensions-CKMD_er_.js → extensions-yNQlgLNE.js} +22 -22
- package/dist/cdn/chunks/{extensions-CKMD_er_.js.map → extensions-yNQlgLNE.js.map} +1 -1
- package/dist/{fr-DTVJ3det.js → cdn/chunks/fr-Cm85vB2g.js} +8 -0
- 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-CZOBuCQd.js +12 -0
- package/dist/cdn/chunks/keys-CZOBuCQd.js.map +1 -0
- package/dist/{nl-BqSquFS3.js → cdn/chunks/nl-dmiIX7oT.js} +8 -0
- package/dist/cdn/chunks/nl-dmiIX7oT.js.map +1 -0
- package/dist/cdn/chunks/{pt-BR-CMljK37h.js → pt-BR-CaIG-7EM.js} +7 -1
- package/dist/cdn/chunks/pt-BR-CaIG-7EM.js.map +1 -0
- package/dist/cdn/chunks/{src-CumZZNXZ.js → src-B2LpXMIw.js} +373 -373
- package/dist/cdn/chunks/{src-CumZZNXZ.js.map → src-B2LpXMIw.js.map} +1 -1
- package/dist/cdn/chunks/{src-D5mfLR4V.js → src-CZjSXPYq.js} +8 -3
- package/dist/cdn/chunks/src-CZjSXPYq.js.map +1 -0
- package/dist/cdn/chunks/{src-B4UhYbI8.js → src-D_3bXt7-.js} +353 -313
- package/dist/cdn/chunks/src-D_3bXt7-.js.map +1 -0
- package/dist/cdn/chunks/{src-B3HKHglu.js → src-uc_Mb_yH.js} +20 -20
- package/dist/cdn/chunks/{src-B3HKHglu.js.map → src-uc_Mb_yH.js.map} +1 -1
- package/dist/cdn/chunks/{styles--m9OCb_Z.js → styles-BzP13r-I.js} +745 -726
- package/dist/cdn/chunks/styles-BzP13r-I.js.map +1 -0
- 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-sx1pqEbY.js → useCloudI18n-CML0BxqX.js} +3 -3
- package/dist/cdn/chunks/{useCloudI18n-sx1pqEbY.js.map → useCloudI18n-CML0BxqX.js.map} +1 -1
- package/dist/cdn/chunks/{useEditorCore-ZqF7P99K.js → useEditorCore-CTYH6u4r.js} +471 -400
- package/dist/cdn/chunks/useEditorCore-CTYH6u4r.js.map +1 -0
- package/dist/cdn/chunks/{useI18n-vD57BfVR.js → useI18n-aRMtgYRj.js} +3 -3
- package/dist/cdn/chunks/{useI18n-vD57BfVR.js.map → useI18n-aRMtgYRj.js.map} +1 -1
- package/dist/cdn/chunks/{useMergeTag-HatzNGgc.js → useMergeTag-8a8BnIZp.js} +7 -7
- package/dist/cdn/chunks/{useMergeTag-HatzNGgc.js.map → useMergeTag-8a8BnIZp.js.map} +1 -1
- package/dist/cdn/chunks/{usePopoverPosition-BdQ3Sv4B.js → usePopoverPosition-Dm1jv3y5.js} +3 -3
- package/dist/cdn/chunks/{usePopoverPosition-BdQ3Sv4B.js.map → usePopoverPosition-Dm1jv3y5.js.map} +1 -1
- package/dist/cdn/editor.css +1 -1
- package/dist/cdn/editor.js +23 -21
- package/dist/cdn/editor.js.map +1 -1
- 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-R8ci6yR1.js → cloud-BJLg_SlM.js} +2 -2
- package/dist/{createLucideIcon-AEltGIse.js → createLucideIcon-D7GKhya2.js} +3 -3
- package/dist/{cdn/chunks/de-CUeaFJph.js → de-DHra3lvx.js} +6 -2
- package/dist/{dist-CIqhVQ1O.js → dist-C31bMR4x.js} +3 -3
- package/dist/{dist-Ba5Q-UX1.js → dist-CQ0fVBQ3.js} +7 -2
- package/dist/{dist-DT1XnEnj.js → dist-DDfXShPv.js} +2 -2
- package/dist/{cdn/chunks/en-zCYIPAL5.js → en-DlqX2YWZ.js} +6 -2
- package/dist/{cdn/chunks/es-BSiH7YkP.js → es-Cuss2snv.js} +6 -2
- package/dist/{extensions-CGxj6-2o.js → extensions-CbiWtzS6.js} +7 -7
- package/dist/{cdn/chunks/fr-DTVJ3det.js → fr-Cm85vB2g.js} +6 -2
- package/dist/{image-up-8ktdYdaZ.js → image-up-BfukboIn.js} +1 -1
- package/dist/index.d.ts +26 -0
- package/dist/{info-CvrCgTLH.js → info-DSYRzSZo.js} +1 -1
- package/dist/keys-BI6VSUh4.js +10 -0
- 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/{cdn/chunks/nl-BqSquFS3.js → nl-dmiIX7oT.js} +6 -2
- package/dist/{pencil-CkKkSd6N.js → pencil-BGwkOpD_.js} +1 -1
- package/dist/{pt-BR-CMljK37h.js → pt-BR-CaIG-7EM.js} +6 -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/style.css +1 -1
- package/dist/{styles-C9AMvkJk.js → styles-B0MEBpOK.js} +888 -869
- package/dist/templatical-editor.js +96 -94
- 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-BC_QV2Z7.js → useCloudI18n-KgIWl-IE.js} +2 -2
- package/dist/{useEditorCore-Dojb-P2f.js → useEditorCore-BMbxdUbY.js} +912 -841
- package/dist/{useI18n-DzOcl2wl.js → useI18n-BkHfCWC6.js} +2 -2
- package/dist/{useMergeTag-BFxXCv3p.js → useMergeTag-CZ4XYAxu.js} +4 -4
- package/dist/{usePopoverPosition-Dtr1Mp1x.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/BlockPreviewCanvas-C-ut8GkJ.js.map +0 -1
- package/dist/cdn/chunks/CloudEditor-D87qsqbZ.js.map +0 -1
- package/dist/cdn/chunks/ParagraphEditor-DKz4vTWB.js.map +0 -1
- package/dist/cdn/chunks/TestEmailModal-Ce8-vzGh.js.map +0 -1
- package/dist/cdn/chunks/blockTypeIcons-B8s3_ahs.js +0 -21
- package/dist/cdn/chunks/ca-CO4nq6TX.js.map +0 -1
- package/dist/cdn/chunks/de-CUeaFJph.js.map +0 -1
- package/dist/cdn/chunks/draggable-JcMTNF3U.js.map +0 -1
- package/dist/cdn/chunks/en-zCYIPAL5.js.map +0 -1
- package/dist/cdn/chunks/es-BSiH7YkP.js.map +0 -1
- package/dist/cdn/chunks/fr-DTVJ3det.js.map +0 -1
- package/dist/cdn/chunks/icons-Cp4ZIJw-.js.map +0 -1
- package/dist/cdn/chunks/keys-CswSK7eb.js +0 -12
- package/dist/cdn/chunks/keys-CswSK7eb.js.map +0 -1
- package/dist/cdn/chunks/nl-BqSquFS3.js.map +0 -1
- package/dist/cdn/chunks/pt-BR-CMljK37h.js.map +0 -1
- package/dist/cdn/chunks/src-B4UhYbI8.js.map +0 -1
- package/dist/cdn/chunks/src-D5mfLR4V.js.map +0 -1
- package/dist/cdn/chunks/styles--m9OCb_Z.js.map +0 -1
- package/dist/cdn/chunks/useEditorCore-ZqF7P99K.js.map +0 -1
- package/dist/keys-uWpGv4Pq.js +0 -10
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { n as e } from "./rolldown-runtime-B0aSnxlc.js";
|
|
2
|
-
import {
|
|
3
|
-
import { t as
|
|
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";
|
|
4
4
|
//#region ../quality/src/types.ts
|
|
5
|
-
var
|
|
5
|
+
var d = {
|
|
6
6
|
altMaxLength: 125,
|
|
7
7
|
minFontSize: 14,
|
|
8
8
|
allCapsMinLength: 20,
|
|
9
9
|
minTouchTargetPx: 44
|
|
10
|
-
},
|
|
10
|
+
}, f = [
|
|
11
11
|
"localhost",
|
|
12
12
|
"127.0.0.1",
|
|
13
13
|
"0.0.0.0",
|
|
@@ -17,61 +17,61 @@ var te = {
|
|
|
17
17
|
];
|
|
18
18
|
//#endregion
|
|
19
19
|
//#region ../quality/src/contrast.ts
|
|
20
|
-
function
|
|
21
|
-
let n =
|
|
20
|
+
function p(e, t) {
|
|
21
|
+
let n = m(e), r = m(t);
|
|
22
22
|
if (!n || !r) return NaN;
|
|
23
|
-
let i =
|
|
23
|
+
let i = g(n), a = g(r), o = Math.max(i, a), s = Math.min(i, a);
|
|
24
24
|
return (o + .05) / (s + .05);
|
|
25
25
|
}
|
|
26
|
-
var
|
|
27
|
-
function
|
|
26
|
+
var ne = /^#?([0-9a-f])([0-9a-f])([0-9a-f])$/i, re = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i, ie = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i;
|
|
27
|
+
function m(e) {
|
|
28
28
|
if (typeof e != "string") return null;
|
|
29
|
-
let t = e.trim(), n =
|
|
29
|
+
let t = e.trim(), n = ie.exec(t);
|
|
30
30
|
if (n) return n[4].toLowerCase() === "ff" ? {
|
|
31
31
|
r: parseInt(n[1], 16),
|
|
32
32
|
g: parseInt(n[2], 16),
|
|
33
33
|
b: parseInt(n[3], 16)
|
|
34
34
|
} : null;
|
|
35
|
-
let r =
|
|
35
|
+
let r = re.exec(t);
|
|
36
36
|
if (r) return {
|
|
37
37
|
r: parseInt(r[1], 16),
|
|
38
38
|
g: parseInt(r[2], 16),
|
|
39
39
|
b: parseInt(r[3], 16)
|
|
40
40
|
};
|
|
41
|
-
let i =
|
|
41
|
+
let i = ne.exec(t);
|
|
42
42
|
return i ? {
|
|
43
43
|
r: parseInt(i[1] + i[1], 16),
|
|
44
44
|
g: parseInt(i[2] + i[2], 16),
|
|
45
45
|
b: parseInt(i[3] + i[3], 16)
|
|
46
46
|
} : null;
|
|
47
47
|
}
|
|
48
|
-
function
|
|
49
|
-
return
|
|
48
|
+
function h(e) {
|
|
49
|
+
return m(e ?? "") !== null;
|
|
50
50
|
}
|
|
51
|
-
function
|
|
52
|
-
let r =
|
|
51
|
+
function g({ r: e, g: t, b: n }) {
|
|
52
|
+
let r = _(e / 255), i = _(t / 255), a = _(n / 255);
|
|
53
53
|
return .2126 * r + .7152 * i + .0722 * a;
|
|
54
54
|
}
|
|
55
|
-
function
|
|
55
|
+
function _(e) {
|
|
56
56
|
return e <= .03928 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4;
|
|
57
57
|
}
|
|
58
58
|
//#endregion
|
|
59
59
|
//#region ../quality/src/walk.ts
|
|
60
|
-
var
|
|
61
|
-
function
|
|
62
|
-
let
|
|
63
|
-
let
|
|
64
|
-
|
|
65
|
-
...
|
|
60
|
+
var v = "#ffffff", y = "#1a1a1a";
|
|
61
|
+
function b(e, t) {
|
|
62
|
+
let n = h(e.settings.backgroundColor) ? e.settings.backgroundColor.toLowerCase() : v, r = h(e.settings.textColor) ? e.settings.textColor.toLowerCase() : y, a = (e, n) => {
|
|
63
|
+
let r = e.styles?.backgroundColor, o = h(r) ? r.toLowerCase() : n.resolvedBackgroundColor;
|
|
64
|
+
t(e, o === n.resolvedBackgroundColor ? n : {
|
|
65
|
+
...n,
|
|
66
66
|
resolvedBackgroundColor: o
|
|
67
|
-
}),
|
|
67
|
+
}), i(e) && e.children.forEach((t, r) => {
|
|
68
68
|
t.forEach((t) => a(t, {
|
|
69
69
|
parent: e,
|
|
70
70
|
section: e,
|
|
71
|
-
columnIndex:
|
|
72
|
-
depth:
|
|
71
|
+
columnIndex: r,
|
|
72
|
+
depth: n.depth + 1,
|
|
73
73
|
resolvedBackgroundColor: o,
|
|
74
|
-
resolvedTextColor:
|
|
74
|
+
resolvedTextColor: n.resolvedTextColor
|
|
75
75
|
}));
|
|
76
76
|
});
|
|
77
77
|
};
|
|
@@ -80,13 +80,13 @@ function x(e, n) {
|
|
|
80
80
|
section: null,
|
|
81
81
|
columnIndex: null,
|
|
82
82
|
depth: 0,
|
|
83
|
-
resolvedBackgroundColor:
|
|
84
|
-
resolvedTextColor:
|
|
83
|
+
resolvedBackgroundColor: n,
|
|
84
|
+
resolvedTextColor: r
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
//#endregion
|
|
88
88
|
//#region ../quality/src/run-rules.ts
|
|
89
|
-
function
|
|
89
|
+
function x(e, t, n, r) {
|
|
90
90
|
let i = [];
|
|
91
91
|
function a(e, t, i) {
|
|
92
92
|
return {
|
|
@@ -97,7 +97,7 @@ function S(e, t, n, r) {
|
|
|
97
97
|
fix: i.fix
|
|
98
98
|
};
|
|
99
99
|
}
|
|
100
|
-
|
|
100
|
+
b(e, (e, r) => {
|
|
101
101
|
for (let o of t) {
|
|
102
102
|
let t = n.severity(o.meta.id);
|
|
103
103
|
if (t === "off" || !o.block) continue;
|
|
@@ -113,11 +113,11 @@ function S(e, t, n, r) {
|
|
|
113
113
|
}
|
|
114
114
|
return i;
|
|
115
115
|
}
|
|
116
|
-
function
|
|
116
|
+
function S(e) {
|
|
117
117
|
let t = e.overrides ?? {}, n = {
|
|
118
|
-
...
|
|
118
|
+
...d,
|
|
119
119
|
...e.thresholds ?? {}
|
|
120
|
-
}, r = { nonProductionHosts: e.nonProductionHosts ??
|
|
120
|
+
}, r = { nonProductionHosts: e.nonProductionHosts ?? f }, i = e.locale ?? "en", a = e.rules;
|
|
121
121
|
return {
|
|
122
122
|
locale: i,
|
|
123
123
|
rules: t,
|
|
@@ -129,8 +129,8 @@ function C(e) {
|
|
|
129
129
|
}
|
|
130
130
|
};
|
|
131
131
|
}
|
|
132
|
-
function
|
|
133
|
-
return
|
|
132
|
+
function ae(e, t, n) {
|
|
133
|
+
return S({
|
|
134
134
|
locale: e,
|
|
135
135
|
rules: n,
|
|
136
136
|
overrides: t.rules,
|
|
@@ -138,8 +138,8 @@ function ie(e, t, n) {
|
|
|
138
138
|
nonProductionHosts: void 0
|
|
139
139
|
});
|
|
140
140
|
}
|
|
141
|
-
function
|
|
142
|
-
return
|
|
141
|
+
function oe(e, t, n) {
|
|
142
|
+
return S({
|
|
143
143
|
locale: e,
|
|
144
144
|
rules: n,
|
|
145
145
|
overrides: t.rules,
|
|
@@ -147,8 +147,8 @@ function ae(e, t, n) {
|
|
|
147
147
|
nonProductionHosts: void 0
|
|
148
148
|
});
|
|
149
149
|
}
|
|
150
|
-
function
|
|
151
|
-
return
|
|
150
|
+
function se(e, t, n) {
|
|
151
|
+
return S({
|
|
152
152
|
locale: e,
|
|
153
153
|
rules: n,
|
|
154
154
|
overrides: t.rules,
|
|
@@ -158,7 +158,7 @@ function oe(e, t, n) {
|
|
|
158
158
|
}
|
|
159
159
|
//#endregion
|
|
160
160
|
//#region ../quality/src/accessibility/messages/de.ts
|
|
161
|
-
var
|
|
161
|
+
var ce = /* @__PURE__ */ e({ default: () => le }), le = {
|
|
162
162
|
"a11y.img-missing-alt": "Bild ohne Alt-Text. Füge eine kurze Beschreibung hinzu oder markiere das Bild als dekorativ.",
|
|
163
163
|
"a11y.img-alt-is-filename": "Alt-Text sieht wie ein Dateiname aus (\"{alt}\"). Beschreibe stattdessen kurz, was das Bild zeigt.",
|
|
164
164
|
"a11y.img-alt-too-long": "Alt-Text ist {length} Zeichen lang; bleibe unter {max}.",
|
|
@@ -173,13 +173,14 @@ var se = /* @__PURE__ */ e({ default: () => ce }), ce = {
|
|
|
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.",
|
|
179
180
|
"a11y.button-touch-target": "Button ist etwa {height}px hoch; mindestens {min}px verwenden, um Fehltipper auf Mobilgeräten zu vermeiden.",
|
|
180
181
|
"a11y.button-low-contrast": "Buttontextkontrast beträgt {ratio}:1; WCAG AA verlangt mindestens {required}:1.",
|
|
181
182
|
"a11y.missing-preheader": "Kein Preheader-Text gesetzt. Postfächer zeigen sonst Bruchstücke des ersten Blocks an."
|
|
182
|
-
},
|
|
183
|
+
}, ue = /* @__PURE__ */ e({ default: () => C }), C = {
|
|
183
184
|
"a11y.img-missing-alt": "Image is missing alt text. Add a short description, or mark the image as decorative.",
|
|
184
185
|
"a11y.img-alt-is-filename": "Alt text looks like a filename (\"{alt}\"). Replace with a short description of what the image conveys.",
|
|
185
186
|
"a11y.img-alt-too-long": "Alt text is {length} characters; aim for under {max}.",
|
|
@@ -194,82 +195,83 @@ var se = /* @__PURE__ */ e({ default: () => ce }), ce = {
|
|
|
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.",
|
|
200
202
|
"a11y.button-touch-target": "Button is roughly {height}px tall; aim for at least {min}px to avoid mis-taps on mobile.",
|
|
201
203
|
"a11y.button-low-contrast": "Button text contrast is {ratio}:1; WCAG AA requires at least {required}:1.",
|
|
202
204
|
"a11y.missing-preheader": "No preheader text set. Inboxes will fall back to fragments of the first block."
|
|
203
|
-
},
|
|
204
|
-
"./de.ts":
|
|
205
|
-
"./en.ts":
|
|
206
|
-
}),
|
|
207
|
-
for (let e in
|
|
205
|
+
}, w = /* #__PURE__ */ Object.assign({
|
|
206
|
+
"./de.ts": ce,
|
|
207
|
+
"./en.ts": ue
|
|
208
|
+
}), T = {};
|
|
209
|
+
for (let e in w) {
|
|
208
210
|
let t = /\.\/([^/]+)\.ts$/.exec(e);
|
|
209
211
|
if (!t) continue;
|
|
210
212
|
let n = t[1];
|
|
211
|
-
n !== "index" && (
|
|
213
|
+
n !== "index" && (T[n] = w[e].default);
|
|
212
214
|
}
|
|
213
|
-
function
|
|
214
|
-
return
|
|
215
|
+
function de(e) {
|
|
216
|
+
return T[e.split("-")[0]?.toLowerCase() ?? "en"] ?? T.en ?? C;
|
|
215
217
|
}
|
|
216
|
-
function
|
|
217
|
-
let r =
|
|
218
|
+
function fe(e, t, n) {
|
|
219
|
+
let r = de(e)[t] ?? C[t];
|
|
218
220
|
return n ? r.replace(/\{(\w+)\}/g, (e, t) => {
|
|
219
221
|
let r = n[t];
|
|
220
222
|
return r === void 0 ? `{${t}}` : String(r);
|
|
221
223
|
}) : r;
|
|
222
224
|
}
|
|
223
|
-
var
|
|
225
|
+
var pe = {
|
|
224
226
|
meta: {
|
|
225
227
|
id: "a11y.img-missing-alt",
|
|
226
228
|
severity: "error"
|
|
227
229
|
},
|
|
228
230
|
block(e) {
|
|
229
|
-
return !
|
|
231
|
+
return !a(e) || e.decorative === !0 || (e.alt?.trim() ?? "") !== "" || (e.src ?? "").trim() === "" ? null : { blockId: e.id };
|
|
230
232
|
}
|
|
231
|
-
},
|
|
233
|
+
}, me = {
|
|
232
234
|
id: "a11y.img-alt-is-filename",
|
|
233
235
|
severity: "warning"
|
|
234
|
-
},
|
|
236
|
+
}, he = [
|
|
235
237
|
/\.(jpe?g|png|gif|webp|svg)$/i,
|
|
236
238
|
/^IMG[_-]?\d+/i,
|
|
237
239
|
/^Untitled/i,
|
|
238
240
|
/^Screen[\s_-]?Shot/i,
|
|
239
241
|
/^DSC[_-]?\d+/i
|
|
240
|
-
],
|
|
241
|
-
meta:
|
|
242
|
+
], ge = {
|
|
243
|
+
meta: me,
|
|
242
244
|
block(e) {
|
|
243
|
-
if (!
|
|
245
|
+
if (!a(e) || e.decorative === !0) return null;
|
|
244
246
|
let t = e.alt?.trim() ?? "";
|
|
245
|
-
return t === "" || !
|
|
247
|
+
return t === "" || !he.some((e) => e.test(t)) ? null : {
|
|
246
248
|
blockId: e.id,
|
|
247
249
|
params: { alt: t }
|
|
248
250
|
};
|
|
249
251
|
}
|
|
250
|
-
},
|
|
252
|
+
}, _e = {
|
|
251
253
|
meta: {
|
|
252
254
|
id: "a11y.img-alt-too-long",
|
|
253
255
|
severity: "warning"
|
|
254
256
|
},
|
|
255
|
-
block(e, t,
|
|
256
|
-
if (!
|
|
257
|
-
let
|
|
258
|
-
return
|
|
257
|
+
block(e, t, n) {
|
|
258
|
+
if (!a(e) || e.decorative === !0) return null;
|
|
259
|
+
let r = e.alt ?? "";
|
|
260
|
+
return r.length <= n.thresholds.altMaxLength ? null : {
|
|
259
261
|
blockId: e.id,
|
|
260
262
|
params: {
|
|
261
|
-
length:
|
|
262
|
-
max:
|
|
263
|
+
length: r.length,
|
|
264
|
+
max: n.thresholds.altMaxLength
|
|
263
265
|
}
|
|
264
266
|
};
|
|
265
267
|
}
|
|
266
|
-
},
|
|
268
|
+
}, ve = {
|
|
267
269
|
meta: {
|
|
268
270
|
id: "a11y.img-decorative-needs-empty-alt",
|
|
269
271
|
severity: "info"
|
|
270
272
|
},
|
|
271
273
|
block(e) {
|
|
272
|
-
return !
|
|
274
|
+
return !a(e) || e.decorative !== !0 || (e.alt ?? "").trim() === "" ? null : {
|
|
273
275
|
blockId: e.id,
|
|
274
276
|
fix: {
|
|
275
277
|
description: "Clear alt text",
|
|
@@ -277,7 +279,7 @@ var fe = {
|
|
|
277
279
|
}
|
|
278
280
|
};
|
|
279
281
|
}
|
|
280
|
-
},
|
|
282
|
+
}, ye = /* @__PURE__ */ e({ default: () => be }), be = {
|
|
281
283
|
vagueLinkText: [
|
|
282
284
|
"hier klicken",
|
|
283
285
|
"hier",
|
|
@@ -320,7 +322,7 @@ var fe = {
|
|
|
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,51 +363,51 @@ var fe = {
|
|
|
361
363
|
"redeem",
|
|
362
364
|
"watch"
|
|
363
365
|
]
|
|
364
|
-
},
|
|
365
|
-
"./de.ts":
|
|
366
|
-
"./en.ts":
|
|
367
|
-
}),
|
|
368
|
-
for (let e in
|
|
366
|
+
}, D = /* #__PURE__ */ Object.assign({
|
|
367
|
+
"./de.ts": ye,
|
|
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"
|
|
394
396
|
},
|
|
395
|
-
block(e, t,
|
|
396
|
-
if (!
|
|
397
|
-
let
|
|
398
|
-
if (
|
|
399
|
-
let
|
|
400
|
-
return
|
|
397
|
+
block(e, t, n) {
|
|
398
|
+
if (!a(e) || e.decorative === !0 || !e.linkUrl || e.linkUrl.trim() === "") return null;
|
|
399
|
+
let r = (e.alt ?? "").trim();
|
|
400
|
+
if (r === "") return null;
|
|
401
|
+
let i = r.toLocaleLowerCase().split(/[^\p{L}\p{N}]+/u).filter(Boolean), o = k(n.locale).linkedImageActionHints;
|
|
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
|
-
}, a = new
|
|
410
|
+
}, a = new u({
|
|
409
411
|
onopentag(e, t) {
|
|
410
412
|
if (e === "a") {
|
|
411
413
|
i(), n = {
|
|
@@ -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
|
|
459
|
-
let t = "", n = new
|
|
460
|
+
function P(e) {
|
|
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 !
|
|
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
|
|
477
|
-
for (let
|
|
478
|
-
if (
|
|
479
|
-
|
|
478
|
+
function F(e, t) {
|
|
479
|
+
for (let n of e) {
|
|
480
|
+
if (s(n)) {
|
|
481
|
+
t.push(n);
|
|
480
482
|
continue;
|
|
481
483
|
}
|
|
482
|
-
if (
|
|
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
|
|
505
|
-
for (let
|
|
506
|
-
if (
|
|
507
|
-
|
|
506
|
+
function I(e, t) {
|
|
507
|
+
for (let n of e) {
|
|
508
|
+
if (s(n)) {
|
|
509
|
+
t.push(n);
|
|
508
510
|
continue;
|
|
509
511
|
}
|
|
510
|
-
if (
|
|
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
|
|
526
|
-
return
|
|
527
|
+
function je(e) {
|
|
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
|
|
539
|
-
return
|
|
540
|
+
function Pe(e) {
|
|
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
|
|
560
|
-
return
|
|
561
|
+
function Le(e) {
|
|
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
|
|
576
|
-
return
|
|
577
|
+
function Be(e) {
|
|
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
|
-
if (!
|
|
593
|
-
let
|
|
594
|
-
t.updateBlock(e.id, { content:
|
|
594
|
+
if (!n(e) && !s(e)) return;
|
|
595
|
+
let r = Ge(e.content ?? "");
|
|
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,76 +628,114 @@ 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
|
|
634
|
-
return
|
|
635
|
+
function Ke(e) {
|
|
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
|
-
block(e, t,
|
|
648
|
-
if (!
|
|
649
|
-
let
|
|
650
|
-
return
|
|
649
|
+
block(e, t, r) {
|
|
650
|
+
if (!n(e) && !s(e)) return null;
|
|
651
|
+
let i = P(e.content ?? "").replace(/[^\p{L}]/gu, "");
|
|
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"
|
|
656
695
|
},
|
|
657
|
-
block(e,
|
|
658
|
-
if (!
|
|
659
|
-
let
|
|
660
|
-
if (!
|
|
661
|
-
let
|
|
662
|
-
return Number.isNaN(
|
|
696
|
+
block(e, n) {
|
|
697
|
+
if (!s(e)) return null;
|
|
698
|
+
let r = e.color ?? n.resolvedTextColor;
|
|
699
|
+
if (!h(r) || !h(n.resolvedBackgroundColor)) return null;
|
|
700
|
+
let i = t[e.level] >= 24 ? 3 : 4.5, a = p(r, n.resolvedBackgroundColor);
|
|
701
|
+
return Number.isNaN(a) || a >= i ? null : {
|
|
663
702
|
blockId: e.id,
|
|
664
703
|
params: {
|
|
665
|
-
ratio:
|
|
666
|
-
required:
|
|
704
|
+
ratio: a.toFixed(2),
|
|
705
|
+
required: i
|
|
667
706
|
}
|
|
668
707
|
};
|
|
669
708
|
}
|
|
670
|
-
},
|
|
709
|
+
}, nt = {
|
|
671
710
|
id: "a11y.text-too-small",
|
|
672
711
|
severity: "warning"
|
|
673
712
|
};
|
|
674
|
-
function
|
|
675
|
-
return
|
|
713
|
+
function rt(e) {
|
|
714
|
+
return o(e) || ee(e) ? e.fontSize : null;
|
|
676
715
|
}
|
|
677
716
|
//#endregion
|
|
678
717
|
//#region ../quality/src/accessibility/index.ts
|
|
679
718
|
var V = [
|
|
680
|
-
|
|
681
|
-
he,
|
|
719
|
+
pe,
|
|
682
720
|
ge,
|
|
683
721
|
_e,
|
|
684
|
-
|
|
685
|
-
|
|
722
|
+
ve,
|
|
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: {
|
|
@@ -711,9 +751,9 @@ var V = [
|
|
|
711
751
|
severity: "warning"
|
|
712
752
|
},
|
|
713
753
|
block(e, t, n) {
|
|
714
|
-
if (!
|
|
715
|
-
let r =
|
|
716
|
-
return r === "" || !
|
|
754
|
+
if (!l(e)) return 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
|
};
|
|
@@ -725,7 +765,7 @@ var V = [
|
|
|
725
765
|
severity: "warning"
|
|
726
766
|
},
|
|
727
767
|
block(e, t, n) {
|
|
728
|
-
if (!
|
|
768
|
+
if (!l(e)) return null;
|
|
729
769
|
let r = e.buttonPadding;
|
|
730
770
|
if (!r) return null;
|
|
731
771
|
let i = e.fontSize * 1.4 + r.top + r.bottom;
|
|
@@ -744,8 +784,8 @@ var V = [
|
|
|
744
784
|
severity: "error"
|
|
745
785
|
},
|
|
746
786
|
block(e) {
|
|
747
|
-
if (!
|
|
748
|
-
let t =
|
|
787
|
+
if (!l(e)) return null;
|
|
788
|
+
let t = p(e.textColor, e.backgroundColor);
|
|
749
789
|
if (Number.isNaN(t)) return null;
|
|
750
790
|
let n = e.fontSize >= 24 ? 3 : 4.5;
|
|
751
791
|
return t >= n ? null : {
|
|
@@ -767,26 +807,26 @@ var V = [
|
|
|
767
807
|
}
|
|
768
808
|
}
|
|
769
809
|
];
|
|
770
|
-
function
|
|
771
|
-
return t.disabled === !0 || t.accessibility === !1 ? [] :
|
|
810
|
+
function it(e, t = {}) {
|
|
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
|
-
function G(e,
|
|
814
|
-
for (let
|
|
853
|
+
function G(e, t) {
|
|
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,112 +865,112 @@ 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
|
};
|
|
832
|
-
function K(e,
|
|
833
|
-
for (let
|
|
834
|
-
if (!
|
|
835
|
-
let e =
|
|
836
|
-
e.children.length > 1 && e.children.forEach((
|
|
837
|
-
|
|
872
|
+
function K(e, t) {
|
|
873
|
+
for (let n of e) {
|
|
874
|
+
if (!i(n)) continue;
|
|
875
|
+
let e = n;
|
|
876
|
+
e.children.length > 1 && e.children.forEach((n, r) => {
|
|
877
|
+
n.length === 0 && t.push({
|
|
838
878
|
blockId: e.id,
|
|
839
879
|
params: { columnIndex: r + 1 }
|
|
840
880
|
});
|
|
841
881
|
});
|
|
842
|
-
for (let
|
|
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
|
-
if (!
|
|
862
|
-
let
|
|
863
|
-
return
|
|
864
|
-
blockId:
|
|
901
|
+
if (!i(e)) return null;
|
|
902
|
+
let t = e;
|
|
903
|
+
return ht(t) ? {
|
|
904
|
+
blockId: t.id,
|
|
865
905
|
fix: {
|
|
866
906
|
description: "Remove the empty section",
|
|
867
907
|
apply: (e) => {
|
|
868
|
-
e.removeBlock(
|
|
908
|
+
e.removeBlock(t.id);
|
|
869
909
|
}
|
|
870
910
|
}
|
|
871
911
|
} : null;
|
|
872
912
|
}
|
|
873
|
-
},
|
|
913
|
+
}, _t = {
|
|
874
914
|
meta: {
|
|
875
915
|
id: "structure.nested-section",
|
|
876
916
|
severity: "error"
|
|
877
917
|
},
|
|
878
|
-
block(e,
|
|
879
|
-
return !
|
|
918
|
+
block(e, t) {
|
|
919
|
+
return !i(e) || t.section === null ? null : {
|
|
880
920
|
blockId: e.id,
|
|
881
|
-
params: { parentId:
|
|
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
|
-
if (!
|
|
902
|
-
let
|
|
903
|
-
return
|
|
904
|
-
blockId:
|
|
941
|
+
if (!i(e)) return null;
|
|
942
|
+
let t = e, n = yt(t.columns), r = t.children.length;
|
|
943
|
+
return r === n ? null : {
|
|
944
|
+
blockId: t.id,
|
|
905
945
|
params: {
|
|
906
|
-
layout:
|
|
907
|
-
expected:
|
|
908
|
-
actual:
|
|
946
|
+
layout: t.columns,
|
|
947
|
+
expected: n,
|
|
948
|
+
actual: r
|
|
909
949
|
}
|
|
910
950
|
};
|
|
911
951
|
}
|
|
912
952
|
}
|
|
913
953
|
];
|
|
914
|
-
function
|
|
915
|
-
return t.disabled === !0 || t.structure === !1 ? [] :
|
|
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);
|
|
@@ -952,9 +992,9 @@ function _t(e, t, n) {
|
|
|
952
992
|
//#region ../quality/src/url-walker.ts
|
|
953
993
|
function Z(e) {
|
|
954
994
|
let t = [];
|
|
955
|
-
return
|
|
956
|
-
if (
|
|
957
|
-
for (let n of
|
|
995
|
+
return b(e, (e) => {
|
|
996
|
+
if (s(e) || n(e) || r(e)) {
|
|
997
|
+
for (let n of N(e.content)) t.push({
|
|
958
998
|
url: n.href,
|
|
959
999
|
blockId: e.id,
|
|
960
1000
|
source: "anchor",
|
|
@@ -962,7 +1002,7 @@ function Z(e) {
|
|
|
962
1002
|
});
|
|
963
1003
|
return;
|
|
964
1004
|
}
|
|
965
|
-
if (
|
|
1005
|
+
if (l(e)) {
|
|
966
1006
|
t.push({
|
|
967
1007
|
url: e.url,
|
|
968
1008
|
blockId: e.id,
|
|
@@ -971,7 +1011,7 @@ function Z(e) {
|
|
|
971
1011
|
});
|
|
972
1012
|
return;
|
|
973
1013
|
}
|
|
974
|
-
if (
|
|
1014
|
+
if (a(e)) {
|
|
975
1015
|
e.linkUrl && e.linkUrl !== "" && t.push({
|
|
976
1016
|
url: e.linkUrl,
|
|
977
1017
|
blockId: e.id,
|
|
@@ -980,7 +1020,7 @@ function Z(e) {
|
|
|
980
1020
|
});
|
|
981
1021
|
return;
|
|
982
1022
|
}
|
|
983
|
-
if (
|
|
1023
|
+
if (te(e)) {
|
|
984
1024
|
t.push({
|
|
985
1025
|
url: e.url,
|
|
986
1026
|
blockId: e.id,
|
|
@@ -989,7 +1029,7 @@ function Z(e) {
|
|
|
989
1029
|
});
|
|
990
1030
|
return;
|
|
991
1031
|
}
|
|
992
|
-
if (
|
|
1032
|
+
if (o(e)) {
|
|
993
1033
|
for (let n of e.items) t.push({
|
|
994
1034
|
url: n.url,
|
|
995
1035
|
blockId: e.id,
|
|
@@ -998,7 +1038,7 @@ function Z(e) {
|
|
|
998
1038
|
});
|
|
999
1039
|
return;
|
|
1000
1040
|
}
|
|
1001
|
-
if (
|
|
1041
|
+
if (c(e)) {
|
|
1002
1042
|
for (let n of e.icons) t.push({
|
|
1003
1043
|
url: n.url,
|
|
1004
1044
|
blockId: e.id,
|
|
@@ -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 ? [] :
|
|
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
|