@milkdown/crepe 7.4.0 → 7.5.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/lib/cjs/clsx-dASsG01A.js +6 -0
- package/lib/cjs/clsx-dASsG01A.js.map +1 -0
- package/lib/cjs/{index-5PcT4iSf.js → index--2zEz40J.js} +8 -22
- package/lib/cjs/{index-5PcT4iSf.js.map → index--2zEz40J.js.map} +1 -1
- package/lib/cjs/{index-lrFGGa_l.js → index-5n9R-QCl.js} +5 -19
- package/lib/cjs/{index-lrFGGa_l.js.map → index-5n9R-QCl.js.map} +1 -1
- package/lib/cjs/{index-SxWWV8XD.js → index-HEdBw63r.js} +8 -22
- package/lib/cjs/{index-SxWWV8XD.js.map → index-HEdBw63r.js.map} +1 -1
- package/lib/cjs/{index-vlxA_KJ8.js → index-Hlt9dRH5.js} +5 -19
- package/lib/cjs/{index-vlxA_KJ8.js.map → index-Hlt9dRH5.js.map} +1 -1
- package/lib/cjs/{index-TEjdwq--.js → index-KCW2CzRk.js} +8 -22
- package/lib/{esm/index-DoEghZHy.js.map → cjs/index-KCW2CzRk.js.map} +1 -1
- package/lib/cjs/{index-qRg5-QJH.js → index-KSZhahYb.js} +6 -20
- package/lib/cjs/{index-qRg5-QJH.js.map → index-KSZhahYb.js.map} +1 -1
- package/lib/cjs/index-N1cRxqdw.js +39 -0
- package/lib/cjs/index-N1cRxqdw.js.map +1 -0
- package/lib/cjs/{index-fkT0ywfA.js → index-NNo_VSEA.js} +5 -19
- package/lib/cjs/{index-fkT0ywfA.js.map → index-NNo_VSEA.js.map} +1 -1
- package/lib/cjs/{index-OtaMLv5l.js → index-O1bDbloo.js} +5 -19
- package/lib/cjs/{index-OtaMLv5l.js.map → index-O1bDbloo.js.map} +1 -1
- package/lib/cjs/{index-mJ47ZWO2.js → index-OPh9naof.js} +8 -22
- package/lib/cjs/{index-mJ47ZWO2.js.map → index-OPh9naof.js.map} +1 -1
- package/lib/cjs/{index-OA_u95ey.js → index-PAhfZtcH.js} +5 -19
- package/lib/cjs/{index-OA_u95ey.js.map → index-PAhfZtcH.js.map} +1 -1
- package/lib/cjs/{index-zBr61zy6.js → index-PeRHVz4A.js} +5 -19
- package/lib/{esm/index-6P9Xk934.js.map → cjs/index-PeRHVz4A.js.map} +1 -1
- package/lib/cjs/{index-llNS_EuP.js → index-U7GWrg-w.js} +26 -470
- package/lib/cjs/index-U7GWrg-w.js.map +1 -0
- package/lib/cjs/{index-wXLifZgm.js → index-UTb0Az5e.js} +2 -2
- package/lib/cjs/{index-wXLifZgm.js.map → index-UTb0Az5e.js.map} +1 -1
- package/lib/cjs/{index-t_GA5F26.js → index-UnEAyH8X.js} +5 -19
- package/lib/cjs/{index-t_GA5F26.js.map → index-UnEAyH8X.js.map} +1 -1
- package/lib/cjs/{index-i0_v2uVp.js → index-VCkq0ru1.js} +5 -19
- package/lib/{esm/index-4QzlLVWs.js.map → cjs/index-VCkq0ru1.js.map} +1 -1
- package/lib/cjs/{index-OIQn1x0L.js → index-WQl7Du53.js} +4 -18
- package/lib/cjs/index-WQl7Du53.js.map +1 -0
- package/lib/cjs/{index-GEIgbcVc.js → index-ahL5MvrQ.js} +28 -42
- package/lib/cjs/{index-GEIgbcVc.js.map → index-ahL5MvrQ.js.map} +1 -1
- package/lib/cjs/{index-tbEq3xma.js → index-bpgWLeRY.js} +5 -19
- package/lib/cjs/{index-tbEq3xma.js.map → index-bpgWLeRY.js.map} +1 -1
- package/lib/cjs/index-dEVmN_aj.js +26 -0
- package/lib/cjs/index-dEVmN_aj.js.map +1 -0
- package/lib/cjs/{index-w9buMrFW.js → index-fZupvR_f.js} +8 -22
- package/lib/{esm/index-hQaRWeq1.js.map → cjs/index-fZupvR_f.js.map} +1 -1
- package/lib/cjs/{index-ortUqbAp.js → index-gSM-jgti.js} +5 -19
- package/lib/{esm/index-oMy83ynO.js.map → cjs/index-gSM-jgti.js.map} +1 -1
- package/lib/cjs/{index-LdEYPSZc.js → index-jlPr_A_N.js} +5 -19
- package/lib/cjs/{index-LdEYPSZc.js.map → index-jlPr_A_N.js.map} +1 -1
- package/lib/cjs/index-ocxd4A-M.js +675 -0
- package/lib/cjs/index-ocxd4A-M.js.map +1 -0
- package/lib/cjs/{index-xqKfEyRA.js → index-rFFAL9YA.js} +14 -17
- package/lib/cjs/index-rFFAL9YA.js.map +1 -0
- package/lib/cjs/index-tlx25I_m.js +36 -0
- package/lib/cjs/index-tlx25I_m.js.map +1 -0
- package/lib/cjs/index-tqAbVyds.js +28 -0
- package/lib/cjs/index-tqAbVyds.js.map +1 -0
- package/lib/cjs/index-udZSknd8.js +167 -0
- package/lib/cjs/index-udZSknd8.js.map +1 -0
- package/lib/cjs/index-uleaJDBC.js +19 -0
- package/lib/cjs/index-uleaJDBC.js.map +1 -0
- package/lib/cjs/{index-de3dfsQr.js → index-urB-WDqA.js} +7 -21
- package/lib/cjs/{index-de3dfsQr.js.map → index-urB-WDqA.js.map} +1 -1
- package/lib/cjs/{index-78P4PeZ9.js → index-xWgWtxUR.js} +6 -20
- package/lib/cjs/{index-78P4PeZ9.js.map → index-xWgWtxUR.js.map} +1 -1
- package/lib/cjs/index-z6pe2alg.js.map +1 -1
- package/lib/cjs/index.js +150 -13
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/todoList-YYRQo7wG.js +404 -0
- package/lib/cjs/todoList-YYRQo7wG.js.map +1 -0
- package/lib/esm/clsx-RxCLxYpD.js +4 -0
- package/lib/esm/clsx-RxCLxYpD.js.map +1 -0
- package/lib/esm/{index-a-SAfeeT.js → index-1NetiFdJ.js} +8 -22
- package/lib/esm/{index-a-SAfeeT.js.map → index-1NetiFdJ.js.map} +1 -1
- package/lib/esm/{index-NmjiRA0M.js → index-2I_xbjAZ.js} +28 -42
- package/lib/esm/{index-NmjiRA0M.js.map → index-2I_xbjAZ.js.map} +1 -1
- package/lib/esm/{index-Grquo08f.js → index-2huXYfuJ.js} +8 -22
- package/lib/esm/{index-Grquo08f.js.map → index-2huXYfuJ.js.map} +1 -1
- package/lib/esm/{index-U8q-F7hU.js → index-4x6_TVZv.js} +5 -19
- package/lib/esm/{index-U8q-F7hU.js.map → index-4x6_TVZv.js.map} +1 -1
- package/lib/esm/index-6JoGWH2I.js +17 -0
- package/lib/esm/index-6JoGWH2I.js.map +1 -0
- package/lib/esm/{index-x-zW6gKj.js → index-A-dNwMMf.js} +2 -2
- package/lib/esm/{index-x-zW6gKj.js.map → index-A-dNwMMf.js.map} +1 -1
- package/lib/esm/{index-oMy83ynO.js → index-AV99ipmP.js} +5 -19
- package/lib/{cjs/index-ortUqbAp.js.map → esm/index-AV99ipmP.js.map} +1 -1
- package/lib/esm/{index-VyZguCIt.js → index-CMGDOz11.js} +10 -13
- package/lib/esm/index-CMGDOz11.js.map +1 -0
- package/lib/esm/index-HlPKwzLC.js +34 -0
- package/lib/esm/index-HlPKwzLC.js.map +1 -0
- package/lib/esm/index-Jvxff1vU.js.map +1 -1
- package/lib/esm/{index-vwrMVELn.js → index-PC2bahtq.js} +5 -19
- package/lib/esm/{index-vwrMVELn.js.map → index-PC2bahtq.js.map} +1 -1
- package/lib/esm/{index-UBeneu17.js → index-QBYz82jZ.js} +5 -19
- package/lib/esm/{index-UBeneu17.js.map → index-QBYz82jZ.js.map} +1 -1
- package/lib/esm/{index-bsED907r.js → index-W1pAMr_8.js} +6 -20
- package/lib/esm/{index-bsED907r.js.map → index-W1pAMr_8.js.map} +1 -1
- package/lib/esm/{index-q-qE7-96.js → index-Xzdc2jbA.js} +25 -469
- package/lib/esm/index-Xzdc2jbA.js.map +1 -0
- package/lib/esm/{index-A9zdyi2L.js → index-ZAtZWqJQ.js} +5 -19
- package/lib/esm/{index-A9zdyi2L.js.map → index-ZAtZWqJQ.js.map} +1 -1
- package/lib/esm/index-_A9vu1ED.js +673 -0
- package/lib/esm/index-_A9vu1ED.js.map +1 -0
- package/lib/esm/{index-U71v7KdA.js → index-bnSKBrbD.js} +5 -19
- package/lib/esm/{index-U71v7KdA.js.map → index-bnSKBrbD.js.map} +1 -1
- package/lib/esm/index-fVrfHXda.js +24 -0
- package/lib/esm/index-fVrfHXda.js.map +1 -0
- package/lib/esm/{index-PkBZpDL4.js → index-ftnOhuRS.js} +4 -18
- package/lib/esm/index-ftnOhuRS.js.map +1 -0
- package/lib/esm/{index-4oMdufW4.js → index-iQPB0Rdl.js} +6 -20
- package/lib/esm/{index-4oMdufW4.js.map → index-iQPB0Rdl.js.map} +1 -1
- package/lib/esm/{index-0khVa44f.js → index-kPj3-TKp.js} +5 -19
- package/lib/esm/{index-0khVa44f.js.map → index-kPj3-TKp.js.map} +1 -1
- package/lib/esm/{index-hQaRWeq1.js → index-kgOR7SZ6.js} +8 -22
- package/lib/{cjs/index-w9buMrFW.js.map → esm/index-kgOR7SZ6.js.map} +1 -1
- package/lib/esm/index-lm00PM0y.js +165 -0
- package/lib/esm/index-lm00PM0y.js.map +1 -0
- package/lib/esm/{index-4QzlLVWs.js → index-m49Bj3q7.js} +5 -19
- package/lib/{cjs/index-i0_v2uVp.js.map → esm/index-m49Bj3q7.js.map} +1 -1
- package/lib/esm/index-ohmbt6Ys.js +37 -0
- package/lib/esm/index-ohmbt6Ys.js.map +1 -0
- package/lib/esm/{index-DoEghZHy.js → index-sWVjGw-3.js} +8 -22
- package/lib/esm/index-sWVjGw-3.js.map +1 -0
- package/lib/esm/{index-L7VXk-jT.js → index-twh8lL5o.js} +5 -19
- package/lib/esm/{index-L7VXk-jT.js.map → index-twh8lL5o.js.map} +1 -1
- package/lib/esm/{index-6P9Xk934.js → index-v02MCz4_.js} +5 -19
- package/lib/{cjs/index-zBr61zy6.js.map → esm/index-v02MCz4_.js.map} +1 -1
- package/lib/esm/index-v3rvbocl.js +26 -0
- package/lib/esm/index-v3rvbocl.js.map +1 -0
- package/lib/esm/{index-7BVeXLQZ.js → index-wEXT8mbN.js} +5 -19
- package/lib/esm/{index-7BVeXLQZ.js.map → index-wEXT8mbN.js.map} +1 -1
- package/lib/esm/{index-rwcSpYkt.js → index-wFIac5Kw.js} +7 -21
- package/lib/esm/{index-rwcSpYkt.js.map → index-wFIac5Kw.js.map} +1 -1
- package/lib/esm/{index-bVubJ6Rv.js → index-wg94ewRo.js} +8 -22
- package/lib/esm/{index-bVubJ6Rv.js.map → index-wg94ewRo.js.map} +1 -1
- package/lib/esm/index.js +152 -11
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/todoList-9QsDDcmB.js +368 -0
- package/lib/esm/todoList-9QsDDcmB.js.map +1 -0
- package/lib/theme/_internal/classic-common.css +3 -2
- package/lib/theme/common/block-edit.css +3 -1
- package/lib/theme/common/code-mirror.css +15 -0
- package/lib/theme/common/cursor.css +1 -1
- package/lib/theme/common/image-block.css +2 -0
- package/lib/theme/common/link-tooltip.css +10 -13
- package/lib/theme/common/list-item.css +16 -1
- package/lib/theme/common/prosemirror.css +1 -1
- package/lib/theme/common/style.css +1 -0
- package/lib/theme/common/table.css +217 -0
- package/lib/theme/common/toolbar.css +11 -4
- package/lib/theme/{classic-dark → crepe-dark}/style.css +2 -2
- package/lib/theme/frame/style.css +28 -0
- package/lib/theme/frame-dark/style.css +28 -0
- package/lib/theme/nord/style.css +28 -0
- package/lib/theme/nord-dark/style.css +28 -0
- package/lib/types/core/crepe.d.ts +5 -3
- package/lib/types/core/crepe.d.ts.map +1 -1
- package/lib/types/core/slice.d.ts +2 -2
- package/lib/types/core/slice.d.ts.map +1 -1
- package/lib/types/feature/block-edit/handle/component.d.ts +3 -0
- package/lib/types/feature/block-edit/handle/component.d.ts.map +1 -1
- package/lib/types/feature/block-edit/handle/index.d.ts +5 -4
- package/lib/types/feature/block-edit/handle/index.d.ts.map +1 -1
- package/lib/types/feature/block-edit/index.d.ts +43 -2
- package/lib/types/feature/block-edit/index.d.ts.map +1 -1
- package/lib/types/feature/block-edit/menu/component.d.ts +3 -1
- package/lib/types/feature/block-edit/menu/component.d.ts.map +1 -1
- package/lib/types/feature/block-edit/menu/config.d.ts +3 -12
- package/lib/types/feature/block-edit/menu/config.d.ts.map +1 -1
- package/lib/types/feature/block-edit/menu/group-builder.d.ts +29 -0
- package/lib/types/feature/block-edit/menu/group-builder.d.ts.map +1 -0
- package/lib/types/feature/block-edit/menu/index.d.ts +5 -4
- package/lib/types/feature/block-edit/menu/index.d.ts.map +1 -1
- package/lib/types/feature/block-edit/menu/utils.d.ts +28 -0
- package/lib/types/feature/block-edit/menu/utils.d.ts.map +1 -0
- package/lib/types/feature/code-mirror/index.d.ts +9 -1
- package/lib/types/feature/code-mirror/index.d.ts.map +1 -1
- package/lib/types/feature/cursor/index.d.ts +1 -1
- package/lib/types/feature/cursor/index.d.ts.map +1 -1
- package/lib/types/feature/image-block/index.d.ts +19 -2
- package/lib/types/feature/image-block/index.d.ts.map +1 -1
- package/lib/types/feature/index.d.ts +17 -2
- package/lib/types/feature/index.d.ts.map +1 -1
- package/lib/types/feature/link-tooltip/index.d.ts +12 -2
- package/lib/types/feature/link-tooltip/index.d.ts.map +1 -1
- package/lib/types/feature/list-item/index.d.ts +8 -2
- package/lib/types/feature/list-item/index.d.ts.map +1 -1
- package/lib/types/feature/placeholder/index.d.ts +2 -2
- package/lib/types/feature/placeholder/index.d.ts.map +1 -1
- package/lib/types/feature/shared.d.ts +3 -1
- package/lib/types/feature/shared.d.ts.map +1 -1
- package/lib/types/feature/table/index.d.ts +16 -0
- package/lib/types/feature/table/index.d.ts.map +1 -0
- package/lib/types/feature/toolbar/component.d.ts +3 -1
- package/lib/types/feature/toolbar/component.d.ts.map +1 -1
- package/lib/types/feature/toolbar/index.d.ts +11 -2
- package/lib/types/feature/toolbar/index.d.ts.map +1 -1
- package/lib/types/icons/alignCenter.d.ts +2 -0
- package/lib/types/icons/alignCenter.d.ts.map +1 -0
- package/lib/types/icons/alignLeft.d.ts +2 -0
- package/lib/types/icons/alignLeft.d.ts.map +1 -0
- package/lib/types/icons/alignRight.d.ts +2 -0
- package/lib/types/icons/alignRight.d.ts.map +1 -0
- package/lib/types/icons/bold.d.ts +2 -0
- package/lib/types/icons/bold.d.ts.map +1 -0
- package/lib/types/{feature/list-item/consts.d.ts → icons/bullet.d.ts} +1 -1
- package/lib/types/icons/bullet.d.ts.map +1 -0
- package/lib/types/icons/bulletList.d.ts +2 -0
- package/lib/types/icons/bulletList.d.ts.map +1 -0
- package/lib/types/icons/caption.d.ts +2 -0
- package/lib/types/icons/caption.d.ts.map +1 -0
- package/lib/types/icons/checkBoxChecked.d.ts +2 -0
- package/lib/types/icons/checkBoxChecked.d.ts.map +1 -0
- package/lib/types/icons/checkBoxUnchecked.d.ts +2 -0
- package/lib/types/icons/checkBoxUnchecked.d.ts.map +1 -0
- package/lib/types/icons/chevronDown.d.ts +2 -0
- package/lib/types/icons/chevronDown.d.ts.map +1 -0
- package/lib/types/icons/clear.d.ts +2 -0
- package/lib/types/icons/clear.d.ts.map +1 -0
- package/lib/types/icons/code.d.ts +2 -0
- package/lib/types/icons/code.d.ts.map +1 -0
- package/lib/types/icons/confirm.d.ts +2 -0
- package/lib/types/icons/confirm.d.ts.map +1 -0
- package/lib/types/icons/divider.d.ts +2 -0
- package/lib/types/icons/divider.d.ts.map +1 -0
- package/lib/types/icons/dragHandle.d.ts +2 -0
- package/lib/types/icons/dragHandle.d.ts.map +1 -0
- package/lib/types/icons/edit.d.ts +2 -0
- package/lib/types/icons/edit.d.ts.map +1 -0
- package/lib/types/icons/h1.d.ts +2 -0
- package/lib/types/icons/h1.d.ts.map +1 -0
- package/lib/types/icons/h2.d.ts +2 -0
- package/lib/types/icons/h2.d.ts.map +1 -0
- package/lib/types/icons/h3.d.ts +2 -0
- package/lib/types/icons/h3.d.ts.map +1 -0
- package/lib/types/icons/h4.d.ts +2 -0
- package/lib/types/icons/h4.d.ts.map +1 -0
- package/lib/types/icons/h5.d.ts +2 -0
- package/lib/types/icons/h5.d.ts.map +1 -0
- package/lib/types/icons/h6.d.ts +2 -0
- package/lib/types/icons/h6.d.ts.map +1 -0
- package/lib/types/icons/image.d.ts +2 -0
- package/lib/types/icons/image.d.ts.map +1 -0
- package/lib/types/icons/index.d.ts +36 -0
- package/lib/types/icons/index.d.ts.map +1 -0
- package/lib/types/icons/italic.d.ts +2 -0
- package/lib/types/icons/italic.d.ts.map +1 -0
- package/lib/types/icons/link.d.ts +2 -0
- package/lib/types/icons/link.d.ts.map +1 -0
- package/lib/types/icons/menu.d.ts +2 -0
- package/lib/types/icons/menu.d.ts.map +1 -0
- package/lib/types/icons/orderedList.d.ts +2 -0
- package/lib/types/icons/orderedList.d.ts.map +1 -0
- package/lib/types/icons/plus.d.ts +2 -0
- package/lib/types/icons/plus.d.ts.map +1 -0
- package/lib/types/icons/quote.d.ts +2 -0
- package/lib/types/icons/quote.d.ts.map +1 -0
- package/lib/types/icons/remove.d.ts +2 -0
- package/lib/types/icons/remove.d.ts.map +1 -0
- package/lib/types/icons/search.d.ts +2 -0
- package/lib/types/icons/search.d.ts.map +1 -0
- package/lib/types/icons/strikethrough.d.ts +2 -0
- package/lib/types/icons/strikethrough.d.ts.map +1 -0
- package/lib/types/icons/table.d.ts +2 -0
- package/lib/types/icons/table.d.ts.map +1 -0
- package/lib/types/icons/text.d.ts +2 -0
- package/lib/types/icons/text.d.ts.map +1 -0
- package/lib/types/icons/todoList.d.ts +2 -0
- package/lib/types/icons/todoList.d.ts.map +1 -0
- package/lib/types/utils/index.d.ts +1 -1
- package/lib/types/utils/index.d.ts.map +1 -1
- package/package.json +9 -23
- package/src/core/crepe.ts +15 -9
- package/src/core/slice.ts +2 -2
- package/src/feature/block-edit/handle/component.ts +13 -29
- package/src/feature/block-edit/handle/index.ts +16 -17
- package/src/feature/block-edit/index.ts +50 -5
- package/src/feature/block-edit/menu/component.ts +6 -7
- package/src/feature/block-edit/menu/config.ts +203 -274
- package/src/feature/block-edit/menu/group-builder.ts +50 -0
- package/src/feature/block-edit/menu/index.ts +11 -8
- package/src/feature/block-edit/menu/utils.ts +89 -0
- package/src/feature/code-mirror/index.ts +27 -19
- package/src/feature/cursor/index.ts +3 -4
- package/src/feature/image-block/index.ts +34 -41
- package/src/feature/index.ts +23 -3
- package/src/feature/link-tooltip/index.ts +23 -10
- package/src/feature/list-item/index.ts +21 -9
- package/src/feature/placeholder/index.ts +11 -6
- package/src/feature/shared.ts +4 -1
- package/src/feature/table/index.ts +54 -0
- package/src/feature/toolbar/component.ts +29 -11
- package/src/feature/toolbar/index.ts +21 -9
- package/src/icons/alignCenter.ts +7 -0
- package/src/icons/alignLeft.ts +7 -0
- package/src/icons/alignRight.ts +7 -0
- package/src/icons/bold.ts +7 -0
- package/src/{feature/list-item/consts.ts → icons/bullet.ts} +3 -3
- package/src/icons/bulletList.ts +14 -0
- package/src/icons/caption.ts +7 -0
- package/src/icons/checkBoxChecked.ts +14 -0
- package/src/icons/checkBoxUnchecked.ts +14 -0
- package/src/icons/chevronDown.ts +7 -0
- package/src/icons/clear.ts +14 -0
- package/src/icons/code.ts +14 -0
- package/src/icons/confirm.ts +14 -0
- package/src/icons/divider.ts +14 -0
- package/src/icons/dragHandle.ts +7 -0
- package/src/icons/edit.ts +14 -0
- package/src/icons/h1.ts +14 -0
- package/src/icons/h2.ts +14 -0
- package/src/icons/h3.ts +14 -0
- package/src/icons/h4.ts +14 -0
- package/src/icons/h5.ts +14 -0
- package/src/icons/h6.ts +14 -0
- package/src/icons/image.ts +14 -0
- package/src/icons/index.ts +35 -0
- package/src/icons/italic.ts +7 -0
- package/src/icons/link.ts +7 -0
- package/src/icons/menu.ts +14 -0
- package/src/icons/orderedList.ts +14 -0
- package/src/icons/plus.ts +14 -0
- package/src/icons/quote.ts +14 -0
- package/src/icons/remove.ts +7 -0
- package/src/icons/search.ts +7 -0
- package/src/icons/strikethrough.ts +7 -0
- package/src/icons/table.ts +14 -0
- package/src/icons/text.ts +14 -0
- package/src/icons/todoList.ts +7 -0
- package/src/theme/_internal/classic-common.css +3 -2
- package/src/theme/common/block-edit.css +3 -1
- package/src/theme/common/code-mirror.css +13 -0
- package/src/theme/common/cursor.css +1 -1
- package/src/theme/common/image-block.css +2 -0
- package/src/theme/common/link-tooltip.css +11 -14
- package/src/theme/common/list-item.css +9 -0
- package/src/theme/common/prosemirror.css +1 -1
- package/src/theme/common/style.css +1 -0
- package/src/theme/common/table.css +204 -0
- package/src/theme/common/toolbar.css +14 -4
- package/src/theme/{classic-dark → crepe-dark}/style.css +2 -2
- package/src/theme/frame/style.css +28 -0
- package/src/theme/frame-dark/style.css +28 -0
- package/src/theme/nord/style.css +28 -0
- package/src/theme/nord-dark/style.css +28 -0
- package/src/utils/index.ts +1 -1
- package/lib/cjs/_view-TbSIR42F.js +0 -27
- package/lib/cjs/_view-TbSIR42F.js.map +0 -1
- package/lib/cjs/clsx-7JLENl8W.js +0 -62
- package/lib/cjs/clsx-7JLENl8W.js.map +0 -1
- package/lib/cjs/composed-offset-position.browser.min-FwypoGc1.js +0 -1138
- package/lib/cjs/composed-offset-position.browser.min-FwypoGc1.js.map +0 -1
- package/lib/cjs/helper-OEW-2Vxr.js +0 -9
- package/lib/cjs/helper-OEW-2Vxr.js.map +0 -1
- package/lib/cjs/index-2oxl5Zo4.js +0 -551
- package/lib/cjs/index-2oxl5Zo4.js.map +0 -1
- package/lib/cjs/index-GKolgvC5.js +0 -505
- package/lib/cjs/index-GKolgvC5.js.map +0 -1
- package/lib/cjs/index-JAqL0ybh.js +0 -55
- package/lib/cjs/index-JAqL0ybh.js.map +0 -1
- package/lib/cjs/index-Ne_pk53w.js +0 -178
- package/lib/cjs/index-Ne_pk53w.js.map +0 -1
- package/lib/cjs/index-O3vRXWIP.js +0 -199
- package/lib/cjs/index-O3vRXWIP.js.map +0 -1
- package/lib/cjs/index-OIQn1x0L.js.map +0 -1
- package/lib/cjs/index-PF7s7DOo.js +0 -386
- package/lib/cjs/index-PF7s7DOo.js.map +0 -1
- package/lib/cjs/index-TEjdwq--.js.map +0 -1
- package/lib/cjs/index-kNI3S3lF.js +0 -22477
- package/lib/cjs/index-kNI3S3lF.js.map +0 -1
- package/lib/cjs/index-kvO8ReCY.js +0 -1960
- package/lib/cjs/index-kvO8ReCY.js.map +0 -1
- package/lib/cjs/index-llNS_EuP.js.map +0 -1
- package/lib/cjs/index-xqKfEyRA.js.map +0 -1
- package/lib/cjs/meta-q8q9fHyr.js +0 -14
- package/lib/cjs/meta-q8q9fHyr.js.map +0 -1
- package/lib/cjs/schema-7d3meDfB.js +0 -74
- package/lib/cjs/schema-7d3meDfB.js.map +0 -1
- package/lib/cjs/tooltip-plugin-Mk9fRTxI.js +0 -200
- package/lib/cjs/tooltip-plugin-Mk9fRTxI.js.map +0 -1
- package/lib/esm/_view-JjtfhQ8k.js +0 -25
- package/lib/esm/_view-JjtfhQ8k.js.map +0 -1
- package/lib/esm/clsx-R7WFaNKL.js +0 -52
- package/lib/esm/clsx-R7WFaNKL.js.map +0 -1
- package/lib/esm/composed-offset-position.browser.min-Tnm31e-m.js +0 -1132
- package/lib/esm/composed-offset-position.browser.min-Tnm31e-m.js.map +0 -1
- package/lib/esm/helper-iYEjPbOY.js +0 -7
- package/lib/esm/helper-iYEjPbOY.js.map +0 -1
- package/lib/esm/index-218OjRxG.js +0 -549
- package/lib/esm/index-218OjRxG.js.map +0 -1
- package/lib/esm/index-AHPvVH4H.js +0 -197
- package/lib/esm/index-AHPvVH4H.js.map +0 -1
- package/lib/esm/index-Bg5GFp0g.js +0 -384
- package/lib/esm/index-Bg5GFp0g.js.map +0 -1
- package/lib/esm/index-JkHHp3K-.js +0 -22445
- package/lib/esm/index-JkHHp3K-.js.map +0 -1
- package/lib/esm/index-PkBZpDL4.js.map +0 -1
- package/lib/esm/index-TNMG6UrN.js +0 -53
- package/lib/esm/index-TNMG6UrN.js.map +0 -1
- package/lib/esm/index-VyZguCIt.js.map +0 -1
- package/lib/esm/index-h1arGiXv.js +0 -1958
- package/lib/esm/index-h1arGiXv.js.map +0 -1
- package/lib/esm/index-pHsvfB_I.js +0 -503
- package/lib/esm/index-pHsvfB_I.js.map +0 -1
- package/lib/esm/index-q-qE7-96.js.map +0 -1
- package/lib/esm/index-u8tWJbca.js +0 -176
- package/lib/esm/index-u8tWJbca.js.map +0 -1
- package/lib/esm/meta-3ZYGAGrY.js +0 -12
- package/lib/esm/meta-3ZYGAGrY.js.map +0 -1
- package/lib/esm/schema-hVsy-vme.js +0 -71
- package/lib/esm/schema-hVsy-vme.js.map +0 -1
- package/lib/esm/tooltip-plugin-vZefVSGL.js +0 -194
- package/lib/esm/tooltip-plugin-vZefVSGL.js.map +0 -1
- package/lib/types/feature/block-edit/menu/icons.d.ts +0 -14
- package/lib/types/feature/block-edit/menu/icons.d.ts.map +0 -1
- package/lib/types/feature/link-tooltip/consts.d.ts +0 -5
- package/lib/types/feature/link-tooltip/consts.d.ts.map +0 -1
- package/lib/types/feature/list-item/consts.d.ts.map +0 -1
- package/lib/types/feature/toolbar/consts.d.ts +0 -5
- package/lib/types/feature/toolbar/consts.d.ts.map +0 -1
- package/src/feature/block-edit/menu/icons.ts +0 -170
- package/src/feature/link-tooltip/consts.ts +0 -46
- package/src/feature/toolbar/consts.ts +0 -25
- /package/lib/theme/{classic → crepe}/style.css +0 -0
- /package/src/theme/{classic → crepe}/style.css +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-sWVjGw-3.js","sources":["../../../../node_modules/.pnpm/@lezer+markdown@1.1.2/node_modules/@lezer/markdown/dist/index.js","../../../../node_modules/.pnpm/@codemirror+lang-markdown@6.2.3/node_modules/@codemirror/lang-markdown/dist/index.js"],"sourcesContent":["import { NodeType, NodeProp, NodeSet, Tree, Parser, parseMixed } from '@lezer/common';\nimport { styleTags, tags, Tag } from '@lezer/highlight';\n\nclass CompositeBlock {\n static create(type, value, from, parentHash, end) {\n let hash = (parentHash + (parentHash << 8) + type + (value << 4)) | 0;\n return new CompositeBlock(type, value, from, hash, end, [], []);\n }\n constructor(type, \n // Used for indentation in list items, markup character in lists\n value, from, hash, end, children, positions) {\n this.type = type;\n this.value = value;\n this.from = from;\n this.hash = hash;\n this.end = end;\n this.children = children;\n this.positions = positions;\n this.hashProp = [[NodeProp.contextHash, hash]];\n }\n addChild(child, pos) {\n if (child.prop(NodeProp.contextHash) != this.hash)\n child = new Tree(child.type, child.children, child.positions, child.length, this.hashProp);\n this.children.push(child);\n this.positions.push(pos);\n }\n toTree(nodeSet, end = this.end) {\n let last = this.children.length - 1;\n if (last >= 0)\n end = Math.max(end, this.positions[last] + this.children[last].length + this.from);\n return new Tree(nodeSet.types[this.type], this.children, this.positions, end - this.from).balance({\n makeTree: (children, positions, length) => new Tree(NodeType.none, children, positions, length, this.hashProp)\n });\n }\n}\nvar Type;\n(function (Type) {\n Type[Type[\"Document\"] = 1] = \"Document\";\n Type[Type[\"CodeBlock\"] = 2] = \"CodeBlock\";\n Type[Type[\"FencedCode\"] = 3] = \"FencedCode\";\n Type[Type[\"Blockquote\"] = 4] = \"Blockquote\";\n Type[Type[\"HorizontalRule\"] = 5] = \"HorizontalRule\";\n Type[Type[\"BulletList\"] = 6] = \"BulletList\";\n Type[Type[\"OrderedList\"] = 7] = \"OrderedList\";\n Type[Type[\"ListItem\"] = 8] = \"ListItem\";\n Type[Type[\"ATXHeading1\"] = 9] = \"ATXHeading1\";\n Type[Type[\"ATXHeading2\"] = 10] = \"ATXHeading2\";\n Type[Type[\"ATXHeading3\"] = 11] = \"ATXHeading3\";\n Type[Type[\"ATXHeading4\"] = 12] = \"ATXHeading4\";\n Type[Type[\"ATXHeading5\"] = 13] = \"ATXHeading5\";\n Type[Type[\"ATXHeading6\"] = 14] = \"ATXHeading6\";\n Type[Type[\"SetextHeading1\"] = 15] = \"SetextHeading1\";\n Type[Type[\"SetextHeading2\"] = 16] = \"SetextHeading2\";\n Type[Type[\"HTMLBlock\"] = 17] = \"HTMLBlock\";\n Type[Type[\"LinkReference\"] = 18] = \"LinkReference\";\n Type[Type[\"Paragraph\"] = 19] = \"Paragraph\";\n Type[Type[\"CommentBlock\"] = 20] = \"CommentBlock\";\n Type[Type[\"ProcessingInstructionBlock\"] = 21] = \"ProcessingInstructionBlock\";\n // Inline\n Type[Type[\"Escape\"] = 22] = \"Escape\";\n Type[Type[\"Entity\"] = 23] = \"Entity\";\n Type[Type[\"HardBreak\"] = 24] = \"HardBreak\";\n Type[Type[\"Emphasis\"] = 25] = \"Emphasis\";\n Type[Type[\"StrongEmphasis\"] = 26] = \"StrongEmphasis\";\n Type[Type[\"Link\"] = 27] = \"Link\";\n Type[Type[\"Image\"] = 28] = \"Image\";\n Type[Type[\"InlineCode\"] = 29] = \"InlineCode\";\n Type[Type[\"HTMLTag\"] = 30] = \"HTMLTag\";\n Type[Type[\"Comment\"] = 31] = \"Comment\";\n Type[Type[\"ProcessingInstruction\"] = 32] = \"ProcessingInstruction\";\n Type[Type[\"URL\"] = 33] = \"URL\";\n // Smaller tokens\n Type[Type[\"HeaderMark\"] = 34] = \"HeaderMark\";\n Type[Type[\"QuoteMark\"] = 35] = \"QuoteMark\";\n Type[Type[\"ListMark\"] = 36] = \"ListMark\";\n Type[Type[\"LinkMark\"] = 37] = \"LinkMark\";\n Type[Type[\"EmphasisMark\"] = 38] = \"EmphasisMark\";\n Type[Type[\"CodeMark\"] = 39] = \"CodeMark\";\n Type[Type[\"CodeText\"] = 40] = \"CodeText\";\n Type[Type[\"CodeInfo\"] = 41] = \"CodeInfo\";\n Type[Type[\"LinkTitle\"] = 42] = \"LinkTitle\";\n Type[Type[\"LinkLabel\"] = 43] = \"LinkLabel\";\n})(Type || (Type = {}));\n/// Data structure used to accumulate a block's content during [leaf\n/// block parsing](#BlockParser.leaf).\nclass LeafBlock {\n /// @internal\n constructor(\n /// The start position of the block.\n start, \n /// The block's text content.\n content) {\n this.start = start;\n this.content = content;\n /// @internal\n this.marks = [];\n /// The block parsers active for this block.\n this.parsers = [];\n }\n}\n/// Data structure used during block-level per-line parsing.\nclass Line {\n constructor() {\n /// The line's full text.\n this.text = \"\";\n /// The base indent provided by the composite contexts (that have\n /// been handled so far).\n this.baseIndent = 0;\n /// The string position corresponding to the base indent.\n this.basePos = 0;\n /// The number of contexts handled @internal\n this.depth = 0;\n /// Any markers (i.e. block quote markers) parsed for the contexts. @internal\n this.markers = [];\n /// The position of the next non-whitespace character beyond any\n /// list, blockquote, or other composite block markers.\n this.pos = 0;\n /// The column of the next non-whitespace character.\n this.indent = 0;\n /// The character code of the character after `pos`.\n this.next = -1;\n }\n /// @internal\n forward() {\n if (this.basePos > this.pos)\n this.forwardInner();\n }\n /// @internal\n forwardInner() {\n let newPos = this.skipSpace(this.basePos);\n this.indent = this.countIndent(newPos, this.pos, this.indent);\n this.pos = newPos;\n this.next = newPos == this.text.length ? -1 : this.text.charCodeAt(newPos);\n }\n /// Skip whitespace after the given position, return the position of\n /// the next non-space character or the end of the line if there's\n /// only space after `from`.\n skipSpace(from) { return skipSpace(this.text, from); }\n /// @internal\n reset(text) {\n this.text = text;\n this.baseIndent = this.basePos = this.pos = this.indent = 0;\n this.forwardInner();\n this.depth = 1;\n while (this.markers.length)\n this.markers.pop();\n }\n /// Move the line's base position forward to the given position.\n /// This should only be called by composite [block\n /// parsers](#BlockParser.parse) or [markup skipping\n /// functions](#NodeSpec.composite).\n moveBase(to) {\n this.basePos = to;\n this.baseIndent = this.countIndent(to, this.pos, this.indent);\n }\n /// Move the line's base position forward to the given _column_.\n moveBaseColumn(indent) {\n this.baseIndent = indent;\n this.basePos = this.findColumn(indent);\n }\n /// Store a composite-block-level marker. Should be called from\n /// [markup skipping functions](#NodeSpec.composite) when they\n /// consume any non-whitespace characters.\n addMarker(elt) {\n this.markers.push(elt);\n }\n /// Find the column position at `to`, optionally starting at a given\n /// position and column.\n countIndent(to, from = 0, indent = 0) {\n for (let i = from; i < to; i++)\n indent += this.text.charCodeAt(i) == 9 ? 4 - indent % 4 : 1;\n return indent;\n }\n /// Find the position corresponding to the given column.\n findColumn(goal) {\n let i = 0;\n for (let indent = 0; i < this.text.length && indent < goal; i++)\n indent += this.text.charCodeAt(i) == 9 ? 4 - indent % 4 : 1;\n return i;\n }\n /// @internal\n scrub() {\n if (!this.baseIndent)\n return this.text;\n let result = \"\";\n for (let i = 0; i < this.basePos; i++)\n result += \" \";\n return result + this.text.slice(this.basePos);\n }\n}\nfunction skipForList(bl, cx, line) {\n if (line.pos == line.text.length ||\n (bl != cx.block && line.indent >= cx.stack[line.depth + 1].value + line.baseIndent))\n return true;\n if (line.indent >= line.baseIndent + 4)\n return false;\n let size = (bl.type == Type.OrderedList ? isOrderedList : isBulletList)(line, cx, false);\n return size > 0 &&\n (bl.type != Type.BulletList || isHorizontalRule(line, cx, false) < 0) &&\n line.text.charCodeAt(line.pos + size - 1) == bl.value;\n}\nconst DefaultSkipMarkup = {\n [Type.Blockquote](bl, cx, line) {\n if (line.next != 62 /* '>' */)\n return false;\n line.markers.push(elt(Type.QuoteMark, cx.lineStart + line.pos, cx.lineStart + line.pos + 1));\n line.moveBase(line.pos + (space(line.text.charCodeAt(line.pos + 1)) ? 2 : 1));\n bl.end = cx.lineStart + line.text.length;\n return true;\n },\n [Type.ListItem](bl, _cx, line) {\n if (line.indent < line.baseIndent + bl.value && line.next > -1)\n return false;\n line.moveBaseColumn(line.baseIndent + bl.value);\n return true;\n },\n [Type.OrderedList]: skipForList,\n [Type.BulletList]: skipForList,\n [Type.Document]() { return true; }\n};\nfunction space(ch) { return ch == 32 || ch == 9 || ch == 10 || ch == 13; }\nfunction skipSpace(line, i = 0) {\n while (i < line.length && space(line.charCodeAt(i)))\n i++;\n return i;\n}\nfunction skipSpaceBack(line, i, to) {\n while (i > to && space(line.charCodeAt(i - 1)))\n i--;\n return i;\n}\nfunction isFencedCode(line) {\n if (line.next != 96 && line.next != 126 /* '`~' */)\n return -1;\n let pos = line.pos + 1;\n while (pos < line.text.length && line.text.charCodeAt(pos) == line.next)\n pos++;\n if (pos < line.pos + 3)\n return -1;\n if (line.next == 96)\n for (let i = pos; i < line.text.length; i++)\n if (line.text.charCodeAt(i) == 96)\n return -1;\n return pos;\n}\nfunction isBlockquote(line) {\n return line.next != 62 /* '>' */ ? -1 : line.text.charCodeAt(line.pos + 1) == 32 ? 2 : 1;\n}\nfunction isHorizontalRule(line, cx, breaking) {\n if (line.next != 42 && line.next != 45 && line.next != 95 /* '_-*' */)\n return -1;\n let count = 1;\n for (let pos = line.pos + 1; pos < line.text.length; pos++) {\n let ch = line.text.charCodeAt(pos);\n if (ch == line.next)\n count++;\n else if (!space(ch))\n return -1;\n }\n // Setext headers take precedence\n if (breaking && line.next == 45 && isSetextUnderline(line) > -1 && line.depth == cx.stack.length)\n return -1;\n return count < 3 ? -1 : 1;\n}\nfunction inList(cx, type) {\n for (let i = cx.stack.length - 1; i >= 0; i--)\n if (cx.stack[i].type == type)\n return true;\n return false;\n}\nfunction isBulletList(line, cx, breaking) {\n return (line.next == 45 || line.next == 43 || line.next == 42 /* '-+*' */) &&\n (line.pos == line.text.length - 1 || space(line.text.charCodeAt(line.pos + 1))) &&\n (!breaking || inList(cx, Type.BulletList) || line.skipSpace(line.pos + 2) < line.text.length) ? 1 : -1;\n}\nfunction isOrderedList(line, cx, breaking) {\n let pos = line.pos, next = line.next;\n for (;;) {\n if (next >= 48 && next <= 57 /* '0-9' */)\n pos++;\n else\n break;\n if (pos == line.text.length)\n return -1;\n next = line.text.charCodeAt(pos);\n }\n if (pos == line.pos || pos > line.pos + 9 ||\n (next != 46 && next != 41 /* '.)' */) ||\n (pos < line.text.length - 1 && !space(line.text.charCodeAt(pos + 1))) ||\n breaking && !inList(cx, Type.OrderedList) &&\n (line.skipSpace(pos + 1) == line.text.length || pos > line.pos + 1 || line.next != 49 /* '1' */))\n return -1;\n return pos + 1 - line.pos;\n}\nfunction isAtxHeading(line) {\n if (line.next != 35 /* '#' */)\n return -1;\n let pos = line.pos + 1;\n while (pos < line.text.length && line.text.charCodeAt(pos) == 35)\n pos++;\n if (pos < line.text.length && line.text.charCodeAt(pos) != 32)\n return -1;\n let size = pos - line.pos;\n return size > 6 ? -1 : size;\n}\nfunction isSetextUnderline(line) {\n if (line.next != 45 && line.next != 61 /* '-=' */ || line.indent >= line.baseIndent + 4)\n return -1;\n let pos = line.pos + 1;\n while (pos < line.text.length && line.text.charCodeAt(pos) == line.next)\n pos++;\n let end = pos;\n while (pos < line.text.length && space(line.text.charCodeAt(pos)))\n pos++;\n return pos == line.text.length ? end : -1;\n}\nconst EmptyLine = /^[ \\t]*$/, CommentEnd = /-->/, ProcessingEnd = /\\?>/;\nconst HTMLBlockStyle = [\n [/^<(?:script|pre|style)(?:\\s|>|$)/i, /<\\/(?:script|pre|style)>/i],\n [/^\\s*<!--/, CommentEnd],\n [/^\\s*<\\?/, ProcessingEnd],\n [/^\\s*<![A-Z]/, />/],\n [/^\\s*<!\\[CDATA\\[/, /\\]\\]>/],\n [/^\\s*<\\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\\s|\\/?>|$)/i, EmptyLine],\n [/^\\s*(?:<\\/[a-z][\\w-]*\\s*>|<[a-z][\\w-]*(\\s+[a-z:_][\\w-.]*(?:\\s*=\\s*(?:[^\\s\"'=<>`]+|'[^']*'|\"[^\"]*\"))?)*\\s*>)\\s*$/i, EmptyLine]\n];\nfunction isHTMLBlock(line, _cx, breaking) {\n if (line.next != 60 /* '<' */)\n return -1;\n let rest = line.text.slice(line.pos);\n for (let i = 0, e = HTMLBlockStyle.length - (breaking ? 1 : 0); i < e; i++)\n if (HTMLBlockStyle[i][0].test(rest))\n return i;\n return -1;\n}\nfunction getListIndent(line, pos) {\n let indentAfter = line.countIndent(pos, line.pos, line.indent);\n let indented = line.countIndent(line.skipSpace(pos), pos, indentAfter);\n return indented >= indentAfter + 5 ? indentAfter + 1 : indented;\n}\nfunction addCodeText(marks, from, to) {\n let last = marks.length - 1;\n if (last >= 0 && marks[last].to == from && marks[last].type == Type.CodeText)\n marks[last].to = to;\n else\n marks.push(elt(Type.CodeText, from, to));\n}\n// Rules for parsing blocks. A return value of false means the rule\n// doesn't apply here, true means it does. When true is returned and\n// `p.line` has been updated, the rule is assumed to have consumed a\n// leaf block. Otherwise, it is assumed to have opened a context.\nconst DefaultBlockParsers = {\n LinkReference: undefined,\n IndentedCode(cx, line) {\n let base = line.baseIndent + 4;\n if (line.indent < base)\n return false;\n let start = line.findColumn(base);\n let from = cx.lineStart + start, to = cx.lineStart + line.text.length;\n let marks = [], pendingMarks = [];\n addCodeText(marks, from, to);\n while (cx.nextLine() && line.depth >= cx.stack.length) {\n if (line.pos == line.text.length) { // Empty\n addCodeText(pendingMarks, cx.lineStart - 1, cx.lineStart);\n for (let m of line.markers)\n pendingMarks.push(m);\n }\n else if (line.indent < base) {\n break;\n }\n else {\n if (pendingMarks.length) {\n for (let m of pendingMarks) {\n if (m.type == Type.CodeText)\n addCodeText(marks, m.from, m.to);\n else\n marks.push(m);\n }\n pendingMarks = [];\n }\n addCodeText(marks, cx.lineStart - 1, cx.lineStart);\n for (let m of line.markers)\n marks.push(m);\n to = cx.lineStart + line.text.length;\n let codeStart = cx.lineStart + line.findColumn(line.baseIndent + 4);\n if (codeStart < to)\n addCodeText(marks, codeStart, to);\n }\n }\n if (pendingMarks.length) {\n pendingMarks = pendingMarks.filter(m => m.type != Type.CodeText);\n if (pendingMarks.length)\n line.markers = pendingMarks.concat(line.markers);\n }\n cx.addNode(cx.buffer.writeElements(marks, -from).finish(Type.CodeBlock, to - from), from);\n return true;\n },\n FencedCode(cx, line) {\n let fenceEnd = isFencedCode(line);\n if (fenceEnd < 0)\n return false;\n let from = cx.lineStart + line.pos, ch = line.next, len = fenceEnd - line.pos;\n let infoFrom = line.skipSpace(fenceEnd), infoTo = skipSpaceBack(line.text, line.text.length, infoFrom);\n let marks = [elt(Type.CodeMark, from, from + len)];\n if (infoFrom < infoTo)\n marks.push(elt(Type.CodeInfo, cx.lineStart + infoFrom, cx.lineStart + infoTo));\n for (let first = true; cx.nextLine() && line.depth >= cx.stack.length; first = false) {\n let i = line.pos;\n if (line.indent - line.baseIndent < 4)\n while (i < line.text.length && line.text.charCodeAt(i) == ch)\n i++;\n if (i - line.pos >= len && line.skipSpace(i) == line.text.length) {\n for (let m of line.markers)\n marks.push(m);\n marks.push(elt(Type.CodeMark, cx.lineStart + line.pos, cx.lineStart + i));\n cx.nextLine();\n break;\n }\n else {\n if (!first)\n addCodeText(marks, cx.lineStart - 1, cx.lineStart);\n for (let m of line.markers)\n marks.push(m);\n let textStart = cx.lineStart + line.basePos, textEnd = cx.lineStart + line.text.length;\n if (textStart < textEnd)\n addCodeText(marks, textStart, textEnd);\n }\n }\n cx.addNode(cx.buffer.writeElements(marks, -from)\n .finish(Type.FencedCode, cx.prevLineEnd() - from), from);\n return true;\n },\n Blockquote(cx, line) {\n let size = isBlockquote(line);\n if (size < 0)\n return false;\n cx.startContext(Type.Blockquote, line.pos);\n cx.addNode(Type.QuoteMark, cx.lineStart + line.pos, cx.lineStart + line.pos + 1);\n line.moveBase(line.pos + size);\n return null;\n },\n HorizontalRule(cx, line) {\n if (isHorizontalRule(line, cx, false) < 0)\n return false;\n let from = cx.lineStart + line.pos;\n cx.nextLine();\n cx.addNode(Type.HorizontalRule, from);\n return true;\n },\n BulletList(cx, line) {\n let size = isBulletList(line, cx, false);\n if (size < 0)\n return false;\n if (cx.block.type != Type.BulletList)\n cx.startContext(Type.BulletList, line.basePos, line.next);\n let newBase = getListIndent(line, line.pos + 1);\n cx.startContext(Type.ListItem, line.basePos, newBase - line.baseIndent);\n cx.addNode(Type.ListMark, cx.lineStart + line.pos, cx.lineStart + line.pos + size);\n line.moveBaseColumn(newBase);\n return null;\n },\n OrderedList(cx, line) {\n let size = isOrderedList(line, cx, false);\n if (size < 0)\n return false;\n if (cx.block.type != Type.OrderedList)\n cx.startContext(Type.OrderedList, line.basePos, line.text.charCodeAt(line.pos + size - 1));\n let newBase = getListIndent(line, line.pos + size);\n cx.startContext(Type.ListItem, line.basePos, newBase - line.baseIndent);\n cx.addNode(Type.ListMark, cx.lineStart + line.pos, cx.lineStart + line.pos + size);\n line.moveBaseColumn(newBase);\n return null;\n },\n ATXHeading(cx, line) {\n let size = isAtxHeading(line);\n if (size < 0)\n return false;\n let off = line.pos, from = cx.lineStart + off;\n let endOfSpace = skipSpaceBack(line.text, line.text.length, off), after = endOfSpace;\n while (after > off && line.text.charCodeAt(after - 1) == line.next)\n after--;\n if (after == endOfSpace || after == off || !space(line.text.charCodeAt(after - 1)))\n after = line.text.length;\n let buf = cx.buffer\n .write(Type.HeaderMark, 0, size)\n .writeElements(cx.parser.parseInline(line.text.slice(off + size + 1, after), from + size + 1), -from);\n if (after < line.text.length)\n buf.write(Type.HeaderMark, after - off, endOfSpace - off);\n let node = buf.finish(Type.ATXHeading1 - 1 + size, line.text.length - off);\n cx.nextLine();\n cx.addNode(node, from);\n return true;\n },\n HTMLBlock(cx, line) {\n let type = isHTMLBlock(line, cx, false);\n if (type < 0)\n return false;\n let from = cx.lineStart + line.pos, end = HTMLBlockStyle[type][1];\n let marks = [], trailing = end != EmptyLine;\n while (!end.test(line.text) && cx.nextLine()) {\n if (line.depth < cx.stack.length) {\n trailing = false;\n break;\n }\n for (let m of line.markers)\n marks.push(m);\n }\n if (trailing)\n cx.nextLine();\n let nodeType = end == CommentEnd ? Type.CommentBlock : end == ProcessingEnd ? Type.ProcessingInstructionBlock : Type.HTMLBlock;\n let to = cx.prevLineEnd();\n cx.addNode(cx.buffer.writeElements(marks, -from).finish(nodeType, to - from), from);\n return true;\n },\n SetextHeading: undefined // Specifies relative precedence for block-continue function\n};\n// This implements a state machine that incrementally parses link references. At each\n// next line, it looks ahead to see if the line continues the reference or not. If it\n// doesn't and a valid link is available ending before that line, it finishes that.\n// Similarly, on `finish` (when the leaf is terminated by external circumstances), it\n// creates a link reference if there's a valid reference up to the current point.\nclass LinkReferenceParser {\n constructor(leaf) {\n this.stage = 0 /* RefStage.Start */;\n this.elts = [];\n this.pos = 0;\n this.start = leaf.start;\n this.advance(leaf.content);\n }\n nextLine(cx, line, leaf) {\n if (this.stage == -1 /* RefStage.Failed */)\n return false;\n let content = leaf.content + \"\\n\" + line.scrub();\n let finish = this.advance(content);\n if (finish > -1 && finish < content.length)\n return this.complete(cx, leaf, finish);\n return false;\n }\n finish(cx, leaf) {\n if ((this.stage == 2 /* RefStage.Link */ || this.stage == 3 /* RefStage.Title */) && skipSpace(leaf.content, this.pos) == leaf.content.length)\n return this.complete(cx, leaf, leaf.content.length);\n return false;\n }\n complete(cx, leaf, len) {\n cx.addLeafElement(leaf, elt(Type.LinkReference, this.start, this.start + len, this.elts));\n return true;\n }\n nextStage(elt) {\n if (elt) {\n this.pos = elt.to - this.start;\n this.elts.push(elt);\n this.stage++;\n return true;\n }\n if (elt === false)\n this.stage = -1 /* RefStage.Failed */;\n return false;\n }\n advance(content) {\n for (;;) {\n if (this.stage == -1 /* RefStage.Failed */) {\n return -1;\n }\n else if (this.stage == 0 /* RefStage.Start */) {\n if (!this.nextStage(parseLinkLabel(content, this.pos, this.start, true)))\n return -1;\n if (content.charCodeAt(this.pos) != 58 /* ':' */)\n return this.stage = -1 /* RefStage.Failed */;\n this.elts.push(elt(Type.LinkMark, this.pos + this.start, this.pos + this.start + 1));\n this.pos++;\n }\n else if (this.stage == 1 /* RefStage.Label */) {\n if (!this.nextStage(parseURL(content, skipSpace(content, this.pos), this.start)))\n return -1;\n }\n else if (this.stage == 2 /* RefStage.Link */) {\n let skip = skipSpace(content, this.pos), end = 0;\n if (skip > this.pos) {\n let title = parseLinkTitle(content, skip, this.start);\n if (title) {\n let titleEnd = lineEnd(content, title.to - this.start);\n if (titleEnd > 0) {\n this.nextStage(title);\n end = titleEnd;\n }\n }\n }\n if (!end)\n end = lineEnd(content, this.pos);\n return end > 0 && end < content.length ? end : -1;\n }\n else { // RefStage.Title\n return lineEnd(content, this.pos);\n }\n }\n }\n}\nfunction lineEnd(text, pos) {\n for (; pos < text.length; pos++) {\n let next = text.charCodeAt(pos);\n if (next == 10)\n break;\n if (!space(next))\n return -1;\n }\n return pos;\n}\nclass SetextHeadingParser {\n nextLine(cx, line, leaf) {\n let underline = line.depth < cx.stack.length ? -1 : isSetextUnderline(line);\n let next = line.next;\n if (underline < 0)\n return false;\n let underlineMark = elt(Type.HeaderMark, cx.lineStart + line.pos, cx.lineStart + underline);\n cx.nextLine();\n cx.addLeafElement(leaf, elt(next == 61 ? Type.SetextHeading1 : Type.SetextHeading2, leaf.start, cx.prevLineEnd(), [\n ...cx.parser.parseInline(leaf.content, leaf.start),\n underlineMark\n ]));\n return true;\n }\n finish() {\n return false;\n }\n}\nconst DefaultLeafBlocks = {\n LinkReference(_, leaf) { return leaf.content.charCodeAt(0) == 91 /* '[' */ ? new LinkReferenceParser(leaf) : null; },\n SetextHeading() { return new SetextHeadingParser; }\n};\nconst DefaultEndLeaf = [\n (_, line) => isAtxHeading(line) >= 0,\n (_, line) => isFencedCode(line) >= 0,\n (_, line) => isBlockquote(line) >= 0,\n (p, line) => isBulletList(line, p, true) >= 0,\n (p, line) => isOrderedList(line, p, true) >= 0,\n (p, line) => isHorizontalRule(line, p, true) >= 0,\n (p, line) => isHTMLBlock(line, p, true) >= 0\n];\nconst scanLineResult = { text: \"\", end: 0 };\n/// Block-level parsing functions get access to this context object.\nclass BlockContext {\n /// @internal\n constructor(\n /// The parser configuration used.\n parser, \n /// @internal\n input, fragments, \n /// @internal\n ranges) {\n this.parser = parser;\n this.input = input;\n this.ranges = ranges;\n this.line = new Line();\n this.atEnd = false;\n /// For reused nodes on gaps, we can't directly put the original\n /// node into the tree, since that may be bitter than its parent.\n /// When this happens, we create a dummy tree that is replaced by\n /// the proper node in `injectGaps` @internal\n this.reusePlaceholders = new Map;\n this.stoppedAt = null;\n /// The range index that absoluteLineStart points into @internal\n this.rangeI = 0;\n this.to = ranges[ranges.length - 1].to;\n this.lineStart = this.absoluteLineStart = this.absoluteLineEnd = ranges[0].from;\n this.block = CompositeBlock.create(Type.Document, 0, this.lineStart, 0, 0);\n this.stack = [this.block];\n this.fragments = fragments.length ? new FragmentCursor(fragments, input) : null;\n this.readLine();\n }\n get parsedPos() {\n return this.absoluteLineStart;\n }\n advance() {\n if (this.stoppedAt != null && this.absoluteLineStart > this.stoppedAt)\n return this.finish();\n let { line } = this;\n for (;;) {\n for (let markI = 0;;) {\n let next = line.depth < this.stack.length ? this.stack[this.stack.length - 1] : null;\n while (markI < line.markers.length && (!next || line.markers[markI].from < next.end)) {\n let mark = line.markers[markI++];\n this.addNode(mark.type, mark.from, mark.to);\n }\n if (!next)\n break;\n this.finishContext();\n }\n if (line.pos < line.text.length)\n break;\n // Empty line\n if (!this.nextLine())\n return this.finish();\n }\n if (this.fragments && this.reuseFragment(line.basePos))\n return null;\n start: for (;;) {\n for (let type of this.parser.blockParsers)\n if (type) {\n let result = type(this, line);\n if (result != false) {\n if (result == true)\n return null;\n line.forward();\n continue start;\n }\n }\n break;\n }\n let leaf = new LeafBlock(this.lineStart + line.pos, line.text.slice(line.pos));\n for (let parse of this.parser.leafBlockParsers)\n if (parse) {\n let parser = parse(this, leaf);\n if (parser)\n leaf.parsers.push(parser);\n }\n lines: while (this.nextLine()) {\n if (line.pos == line.text.length)\n break;\n if (line.indent < line.baseIndent + 4) {\n for (let stop of this.parser.endLeafBlock)\n if (stop(this, line, leaf))\n break lines;\n }\n for (let parser of leaf.parsers)\n if (parser.nextLine(this, line, leaf))\n return null;\n leaf.content += \"\\n\" + line.scrub();\n for (let m of line.markers)\n leaf.marks.push(m);\n }\n this.finishLeaf(leaf);\n return null;\n }\n stopAt(pos) {\n if (this.stoppedAt != null && this.stoppedAt < pos)\n throw new RangeError(\"Can't move stoppedAt forward\");\n this.stoppedAt = pos;\n }\n reuseFragment(start) {\n if (!this.fragments.moveTo(this.absoluteLineStart + start, this.absoluteLineStart) ||\n !this.fragments.matches(this.block.hash))\n return false;\n let taken = this.fragments.takeNodes(this);\n if (!taken)\n return false;\n this.absoluteLineStart += taken;\n this.lineStart = toRelative(this.absoluteLineStart, this.ranges);\n this.moveRangeI();\n if (this.absoluteLineStart < this.to) {\n this.lineStart++;\n this.absoluteLineStart++;\n this.readLine();\n }\n else {\n this.atEnd = true;\n this.readLine();\n }\n return true;\n }\n /// The number of parent blocks surrounding the current block.\n get depth() {\n return this.stack.length;\n }\n /// Get the type of the parent block at the given depth. When no\n /// depth is passed, return the type of the innermost parent.\n parentType(depth = this.depth - 1) {\n return this.parser.nodeSet.types[this.stack[depth].type];\n }\n /// Move to the next input line. This should only be called by\n /// (non-composite) [block parsers](#BlockParser.parse) that consume\n /// the line directly, or leaf block parser\n /// [`nextLine`](#LeafBlockParser.nextLine) methods when they\n /// consume the current line (and return true).\n nextLine() {\n this.lineStart += this.line.text.length;\n if (this.absoluteLineEnd >= this.to) {\n this.absoluteLineStart = this.absoluteLineEnd;\n this.atEnd = true;\n this.readLine();\n return false;\n }\n else {\n this.lineStart++;\n this.absoluteLineStart = this.absoluteLineEnd + 1;\n this.moveRangeI();\n this.readLine();\n return true;\n }\n }\n moveRangeI() {\n while (this.rangeI < this.ranges.length - 1 && this.absoluteLineStart >= this.ranges[this.rangeI].to) {\n this.rangeI++;\n this.absoluteLineStart = Math.max(this.absoluteLineStart, this.ranges[this.rangeI].from);\n }\n }\n /// @internal\n scanLine(start) {\n let r = scanLineResult;\n r.end = start;\n if (start >= this.to) {\n r.text = \"\";\n }\n else {\n r.text = this.lineChunkAt(start);\n r.end += r.text.length;\n if (this.ranges.length > 1) {\n let textOffset = this.absoluteLineStart, rangeI = this.rangeI;\n while (this.ranges[rangeI].to < r.end) {\n rangeI++;\n let nextFrom = this.ranges[rangeI].from;\n let after = this.lineChunkAt(nextFrom);\n r.end = nextFrom + after.length;\n r.text = r.text.slice(0, this.ranges[rangeI - 1].to - textOffset) + after;\n textOffset = r.end - r.text.length;\n }\n }\n }\n return r;\n }\n /// @internal\n readLine() {\n let { line } = this, { text, end } = this.scanLine(this.absoluteLineStart);\n this.absoluteLineEnd = end;\n line.reset(text);\n for (; line.depth < this.stack.length; line.depth++) {\n let cx = this.stack[line.depth], handler = this.parser.skipContextMarkup[cx.type];\n if (!handler)\n throw new Error(\"Unhandled block context \" + Type[cx.type]);\n if (!handler(cx, this, line))\n break;\n line.forward();\n }\n }\n lineChunkAt(pos) {\n let next = this.input.chunk(pos), text;\n if (!this.input.lineChunks) {\n let eol = next.indexOf(\"\\n\");\n text = eol < 0 ? next : next.slice(0, eol);\n }\n else {\n text = next == \"\\n\" ? \"\" : next;\n }\n return pos + text.length > this.to ? text.slice(0, this.to - pos) : text;\n }\n /// The end position of the previous line.\n prevLineEnd() { return this.atEnd ? this.lineStart : this.lineStart - 1; }\n /// @internal\n startContext(type, start, value = 0) {\n this.block = CompositeBlock.create(type, value, this.lineStart + start, this.block.hash, this.lineStart + this.line.text.length);\n this.stack.push(this.block);\n }\n /// Start a composite block. Should only be called from [block\n /// parser functions](#BlockParser.parse) that return null.\n startComposite(type, start, value = 0) {\n this.startContext(this.parser.getNodeType(type), start, value);\n }\n /// @internal\n addNode(block, from, to) {\n if (typeof block == \"number\")\n block = new Tree(this.parser.nodeSet.types[block], none, none, (to !== null && to !== void 0 ? to : this.prevLineEnd()) - from);\n this.block.addChild(block, from - this.block.from);\n }\n /// Add a block element. Can be called by [block\n /// parsers](#BlockParser.parse).\n addElement(elt) {\n this.block.addChild(elt.toTree(this.parser.nodeSet), elt.from - this.block.from);\n }\n /// Add a block element from a [leaf parser](#LeafBlockParser). This\n /// makes sure any extra composite block markup (such as blockquote\n /// markers) inside the block are also added to the syntax tree.\n addLeafElement(leaf, elt) {\n this.addNode(this.buffer\n .writeElements(injectMarks(elt.children, leaf.marks), -elt.from)\n .finish(elt.type, elt.to - elt.from), elt.from);\n }\n /// @internal\n finishContext() {\n let cx = this.stack.pop();\n let top = this.stack[this.stack.length - 1];\n top.addChild(cx.toTree(this.parser.nodeSet), cx.from - top.from);\n this.block = top;\n }\n finish() {\n while (this.stack.length > 1)\n this.finishContext();\n return this.addGaps(this.block.toTree(this.parser.nodeSet, this.lineStart));\n }\n addGaps(tree) {\n return this.ranges.length > 1 ?\n injectGaps(this.ranges, 0, tree.topNode, this.ranges[0].from, this.reusePlaceholders) : tree;\n }\n /// @internal\n finishLeaf(leaf) {\n for (let parser of leaf.parsers)\n if (parser.finish(this, leaf))\n return;\n let inline = injectMarks(this.parser.parseInline(leaf.content, leaf.start), leaf.marks);\n this.addNode(this.buffer\n .writeElements(inline, -leaf.start)\n .finish(Type.Paragraph, leaf.content.length), leaf.start);\n }\n elt(type, from, to, children) {\n if (typeof type == \"string\")\n return elt(this.parser.getNodeType(type), from, to, children);\n return new TreeElement(type, from);\n }\n /// @internal\n get buffer() { return new Buffer(this.parser.nodeSet); }\n}\nfunction injectGaps(ranges, rangeI, tree, offset, dummies) {\n let rangeEnd = ranges[rangeI].to;\n let children = [], positions = [], start = tree.from + offset;\n function movePastNext(upto, inclusive) {\n while (inclusive ? upto >= rangeEnd : upto > rangeEnd) {\n let size = ranges[rangeI + 1].from - rangeEnd;\n offset += size;\n upto += size;\n rangeI++;\n rangeEnd = ranges[rangeI].to;\n }\n }\n for (let ch = tree.firstChild; ch; ch = ch.nextSibling) {\n movePastNext(ch.from + offset, true);\n let from = ch.from + offset, node, reuse = dummies.get(ch.tree);\n if (reuse) {\n node = reuse;\n }\n else if (ch.to + offset > rangeEnd) {\n node = injectGaps(ranges, rangeI, ch, offset, dummies);\n movePastNext(ch.to + offset, false);\n }\n else {\n node = ch.toTree();\n }\n children.push(node);\n positions.push(from - start);\n }\n movePastNext(tree.to + offset, false);\n return new Tree(tree.type, children, positions, tree.to + offset - start, tree.tree ? tree.tree.propValues : undefined);\n}\n/// A Markdown parser configuration.\nclass MarkdownParser extends Parser {\n /// @internal\n constructor(\n /// The parser's syntax [node\n /// types](https://lezer.codemirror.net/docs/ref/#common.NodeSet).\n nodeSet, \n /// @internal\n blockParsers, \n /// @internal\n leafBlockParsers, \n /// @internal\n blockNames, \n /// @internal\n endLeafBlock, \n /// @internal\n skipContextMarkup, \n /// @internal\n inlineParsers, \n /// @internal\n inlineNames, \n /// @internal\n wrappers) {\n super();\n this.nodeSet = nodeSet;\n this.blockParsers = blockParsers;\n this.leafBlockParsers = leafBlockParsers;\n this.blockNames = blockNames;\n this.endLeafBlock = endLeafBlock;\n this.skipContextMarkup = skipContextMarkup;\n this.inlineParsers = inlineParsers;\n this.inlineNames = inlineNames;\n this.wrappers = wrappers;\n /// @internal\n this.nodeTypes = Object.create(null);\n for (let t of nodeSet.types)\n this.nodeTypes[t.name] = t.id;\n }\n createParse(input, fragments, ranges) {\n let parse = new BlockContext(this, input, fragments, ranges);\n for (let w of this.wrappers)\n parse = w(parse, input, fragments, ranges);\n return parse;\n }\n /// Reconfigure the parser.\n configure(spec) {\n let config = resolveConfig(spec);\n if (!config)\n return this;\n let { nodeSet, skipContextMarkup } = this;\n let blockParsers = this.blockParsers.slice(), leafBlockParsers = this.leafBlockParsers.slice(), blockNames = this.blockNames.slice(), inlineParsers = this.inlineParsers.slice(), inlineNames = this.inlineNames.slice(), endLeafBlock = this.endLeafBlock.slice(), wrappers = this.wrappers;\n if (nonEmpty(config.defineNodes)) {\n skipContextMarkup = Object.assign({}, skipContextMarkup);\n let nodeTypes = nodeSet.types.slice(), styles;\n for (let s of config.defineNodes) {\n let { name, block, composite, style } = typeof s == \"string\" ? { name: s } : s;\n if (nodeTypes.some(t => t.name == name))\n continue;\n if (composite)\n skipContextMarkup[nodeTypes.length] =\n (bl, cx, line) => composite(cx, line, bl.value);\n let id = nodeTypes.length;\n let group = composite ? [\"Block\", \"BlockContext\"] : !block ? undefined\n : id >= Type.ATXHeading1 && id <= Type.SetextHeading2 ? [\"Block\", \"LeafBlock\", \"Heading\"] : [\"Block\", \"LeafBlock\"];\n nodeTypes.push(NodeType.define({\n id,\n name,\n props: group && [[NodeProp.group, group]]\n }));\n if (style) {\n if (!styles)\n styles = {};\n if (Array.isArray(style) || style instanceof Tag)\n styles[name] = style;\n else\n Object.assign(styles, style);\n }\n }\n nodeSet = new NodeSet(nodeTypes);\n if (styles)\n nodeSet = nodeSet.extend(styleTags(styles));\n }\n if (nonEmpty(config.props))\n nodeSet = nodeSet.extend(...config.props);\n if (nonEmpty(config.remove)) {\n for (let rm of config.remove) {\n let block = this.blockNames.indexOf(rm), inline = this.inlineNames.indexOf(rm);\n if (block > -1)\n blockParsers[block] = leafBlockParsers[block] = undefined;\n if (inline > -1)\n inlineParsers[inline] = undefined;\n }\n }\n if (nonEmpty(config.parseBlock)) {\n for (let spec of config.parseBlock) {\n let found = blockNames.indexOf(spec.name);\n if (found > -1) {\n blockParsers[found] = spec.parse;\n leafBlockParsers[found] = spec.leaf;\n }\n else {\n let pos = spec.before ? findName(blockNames, spec.before)\n : spec.after ? findName(blockNames, spec.after) + 1 : blockNames.length - 1;\n blockParsers.splice(pos, 0, spec.parse);\n leafBlockParsers.splice(pos, 0, spec.leaf);\n blockNames.splice(pos, 0, spec.name);\n }\n if (spec.endLeaf)\n endLeafBlock.push(spec.endLeaf);\n }\n }\n if (nonEmpty(config.parseInline)) {\n for (let spec of config.parseInline) {\n let found = inlineNames.indexOf(spec.name);\n if (found > -1) {\n inlineParsers[found] = spec.parse;\n }\n else {\n let pos = spec.before ? findName(inlineNames, spec.before)\n : spec.after ? findName(inlineNames, spec.after) + 1 : inlineNames.length - 1;\n inlineParsers.splice(pos, 0, spec.parse);\n inlineNames.splice(pos, 0, spec.name);\n }\n }\n }\n if (config.wrap)\n wrappers = wrappers.concat(config.wrap);\n return new MarkdownParser(nodeSet, blockParsers, leafBlockParsers, blockNames, endLeafBlock, skipContextMarkup, inlineParsers, inlineNames, wrappers);\n }\n /// @internal\n getNodeType(name) {\n let found = this.nodeTypes[name];\n if (found == null)\n throw new RangeError(`Unknown node type '${name}'`);\n return found;\n }\n /// Parse the given piece of inline text at the given offset,\n /// returning an array of [`Element`](#Element) objects representing\n /// the inline content.\n parseInline(text, offset) {\n let cx = new InlineContext(this, text, offset);\n outer: for (let pos = offset; pos < cx.end;) {\n let next = cx.char(pos);\n for (let token of this.inlineParsers)\n if (token) {\n let result = token(cx, next, pos);\n if (result >= 0) {\n pos = result;\n continue outer;\n }\n }\n pos++;\n }\n return cx.resolveMarkers(0);\n }\n}\nfunction nonEmpty(a) {\n return a != null && a.length > 0;\n}\nfunction resolveConfig(spec) {\n if (!Array.isArray(spec))\n return spec;\n if (spec.length == 0)\n return null;\n let conf = resolveConfig(spec[0]);\n if (spec.length == 1)\n return conf;\n let rest = resolveConfig(spec.slice(1));\n if (!rest || !conf)\n return conf || rest;\n let conc = (a, b) => (a || none).concat(b || none);\n let wrapA = conf.wrap, wrapB = rest.wrap;\n return {\n props: conc(conf.props, rest.props),\n defineNodes: conc(conf.defineNodes, rest.defineNodes),\n parseBlock: conc(conf.parseBlock, rest.parseBlock),\n parseInline: conc(conf.parseInline, rest.parseInline),\n remove: conc(conf.remove, rest.remove),\n wrap: !wrapA ? wrapB : !wrapB ? wrapA :\n (inner, input, fragments, ranges) => wrapA(wrapB(inner, input, fragments, ranges), input, fragments, ranges)\n };\n}\nfunction findName(names, name) {\n let found = names.indexOf(name);\n if (found < 0)\n throw new RangeError(`Position specified relative to unknown parser ${name}`);\n return found;\n}\nlet nodeTypes = [NodeType.none];\nfor (let i = 1, name; name = Type[i]; i++) {\n nodeTypes[i] = NodeType.define({\n id: i,\n name,\n props: i >= Type.Escape ? [] : [[NodeProp.group, i in DefaultSkipMarkup ? [\"Block\", \"BlockContext\"] : [\"Block\", \"LeafBlock\"]]],\n top: name == \"Document\"\n });\n}\nconst none = [];\nclass Buffer {\n constructor(nodeSet) {\n this.nodeSet = nodeSet;\n this.content = [];\n this.nodes = [];\n }\n write(type, from, to, children = 0) {\n this.content.push(type, from, to, 4 + children * 4);\n return this;\n }\n writeElements(elts, offset = 0) {\n for (let e of elts)\n e.writeTo(this, offset);\n return this;\n }\n finish(type, length) {\n return Tree.build({\n buffer: this.content,\n nodeSet: this.nodeSet,\n reused: this.nodes,\n topID: type,\n length\n });\n }\n}\n/// Elements are used to compose syntax nodes during parsing.\nclass Element {\n /// @internal\n constructor(\n /// The node's\n /// [id](https://lezer.codemirror.net/docs/ref/#common.NodeType.id).\n type, \n /// The start of the node, as an offset from the start of the document.\n from, \n /// The end of the node.\n to, \n /// The node's child nodes @internal\n children = none) {\n this.type = type;\n this.from = from;\n this.to = to;\n this.children = children;\n }\n /// @internal\n writeTo(buf, offset) {\n let startOff = buf.content.length;\n buf.writeElements(this.children, offset);\n buf.content.push(this.type, this.from + offset, this.to + offset, buf.content.length + 4 - startOff);\n }\n /// @internal\n toTree(nodeSet) {\n return new Buffer(nodeSet).writeElements(this.children, -this.from).finish(this.type, this.to - this.from);\n }\n}\nclass TreeElement {\n constructor(tree, from) {\n this.tree = tree;\n this.from = from;\n }\n get to() { return this.from + this.tree.length; }\n get type() { return this.tree.type.id; }\n get children() { return none; }\n writeTo(buf, offset) {\n buf.nodes.push(this.tree);\n buf.content.push(buf.nodes.length - 1, this.from + offset, this.to + offset, -1);\n }\n toTree() { return this.tree; }\n}\nfunction elt(type, from, to, children) {\n return new Element(type, from, to, children);\n}\nconst EmphasisUnderscore = { resolve: \"Emphasis\", mark: \"EmphasisMark\" };\nconst EmphasisAsterisk = { resolve: \"Emphasis\", mark: \"EmphasisMark\" };\nconst LinkStart = {}, ImageStart = {};\nclass InlineDelimiter {\n constructor(type, from, to, side) {\n this.type = type;\n this.from = from;\n this.to = to;\n this.side = side;\n }\n}\nconst Escapable = \"!\\\"#$%&'()*+,-./:;<=>?@[\\\\]^_`{|}~\";\nlet Punctuation = /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~\\xA1\\u2010-\\u2027]/;\ntry {\n Punctuation = new RegExp(\"[\\\\p{Pc}|\\\\p{Pd}|\\\\p{Pe}|\\\\p{Pf}|\\\\p{Pi}|\\\\p{Po}|\\\\p{Ps}]\", \"u\");\n}\ncatch (_) { }\nconst DefaultInline = {\n Escape(cx, next, start) {\n if (next != 92 /* '\\\\' */ || start == cx.end - 1)\n return -1;\n let escaped = cx.char(start + 1);\n for (let i = 0; i < Escapable.length; i++)\n if (Escapable.charCodeAt(i) == escaped)\n return cx.append(elt(Type.Escape, start, start + 2));\n return -1;\n },\n Entity(cx, next, start) {\n if (next != 38 /* '&' */)\n return -1;\n let m = /^(?:#\\d+|#x[a-f\\d]+|\\w+);/i.exec(cx.slice(start + 1, start + 31));\n return m ? cx.append(elt(Type.Entity, start, start + 1 + m[0].length)) : -1;\n },\n InlineCode(cx, next, start) {\n if (next != 96 /* '`' */ || start && cx.char(start - 1) == 96)\n return -1;\n let pos = start + 1;\n while (pos < cx.end && cx.char(pos) == 96)\n pos++;\n let size = pos - start, curSize = 0;\n for (; pos < cx.end; pos++) {\n if (cx.char(pos) == 96) {\n curSize++;\n if (curSize == size && cx.char(pos + 1) != 96)\n return cx.append(elt(Type.InlineCode, start, pos + 1, [\n elt(Type.CodeMark, start, start + size),\n elt(Type.CodeMark, pos + 1 - size, pos + 1)\n ]));\n }\n else {\n curSize = 0;\n }\n }\n return -1;\n },\n HTMLTag(cx, next, start) {\n if (next != 60 /* '<' */ || start == cx.end - 1)\n return -1;\n let after = cx.slice(start + 1, cx.end);\n let url = /^(?:[a-z][-\\w+.]+:[^\\s>]+|[a-z\\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?(?:\\.[a-z\\d](?:[a-z\\d-]{0,61}[a-z\\d])?)*)>/i.exec(after);\n if (url)\n return cx.append(elt(Type.URL, start, start + 1 + url[0].length));\n let comment = /^!--[^>](?:-[^-]|[^-])*?-->/i.exec(after);\n if (comment)\n return cx.append(elt(Type.Comment, start, start + 1 + comment[0].length));\n let procInst = /^\\?[^]*?\\?>/.exec(after);\n if (procInst)\n return cx.append(elt(Type.ProcessingInstruction, start, start + 1 + procInst[0].length));\n let m = /^(?:![A-Z][^]*?>|!\\[CDATA\\[[^]*?\\]\\]>|\\/\\s*[a-zA-Z][\\w-]*\\s*>|\\s*[a-zA-Z][\\w-]*(\\s+[a-zA-Z:_][\\w-.:]*(?:\\s*=\\s*(?:[^\\s\"'=<>`]+|'[^']*'|\"[^\"]*\"))?)*\\s*(\\/\\s*)?>)/.exec(after);\n if (!m)\n return -1;\n return cx.append(elt(Type.HTMLTag, start, start + 1 + m[0].length));\n },\n Emphasis(cx, next, start) {\n if (next != 95 && next != 42)\n return -1;\n let pos = start + 1;\n while (cx.char(pos) == next)\n pos++;\n let before = cx.slice(start - 1, start), after = cx.slice(pos, pos + 1);\n let pBefore = Punctuation.test(before), pAfter = Punctuation.test(after);\n let sBefore = /\\s|^$/.test(before), sAfter = /\\s|^$/.test(after);\n let leftFlanking = !sAfter && (!pAfter || sBefore || pBefore);\n let rightFlanking = !sBefore && (!pBefore || sAfter || pAfter);\n let canOpen = leftFlanking && (next == 42 || !rightFlanking || pBefore);\n let canClose = rightFlanking && (next == 42 || !leftFlanking || pAfter);\n return cx.append(new InlineDelimiter(next == 95 ? EmphasisUnderscore : EmphasisAsterisk, start, pos, (canOpen ? 1 /* Mark.Open */ : 0 /* Mark.None */) | (canClose ? 2 /* Mark.Close */ : 0 /* Mark.None */)));\n },\n HardBreak(cx, next, start) {\n if (next == 92 /* '\\\\' */ && cx.char(start + 1) == 10 /* '\\n' */)\n return cx.append(elt(Type.HardBreak, start, start + 2));\n if (next == 32) {\n let pos = start + 1;\n while (cx.char(pos) == 32)\n pos++;\n if (cx.char(pos) == 10 && pos >= start + 2)\n return cx.append(elt(Type.HardBreak, start, pos + 1));\n }\n return -1;\n },\n Link(cx, next, start) {\n return next == 91 /* '[' */ ? cx.append(new InlineDelimiter(LinkStart, start, start + 1, 1 /* Mark.Open */)) : -1;\n },\n Image(cx, next, start) {\n return next == 33 /* '!' */ && cx.char(start + 1) == 91 /* '[' */\n ? cx.append(new InlineDelimiter(ImageStart, start, start + 2, 1 /* Mark.Open */)) : -1;\n },\n LinkEnd(cx, next, start) {\n if (next != 93 /* ']' */)\n return -1;\n // Scanning back to the next link/image start marker\n for (let i = cx.parts.length - 1; i >= 0; i--) {\n let part = cx.parts[i];\n if (part instanceof InlineDelimiter && (part.type == LinkStart || part.type == ImageStart)) {\n // If this one has been set invalid (because it would produce\n // a nested link) or there's no valid link here ignore both.\n if (!part.side || cx.skipSpace(part.to) == start && !/[(\\[]/.test(cx.slice(start + 1, start + 2))) {\n cx.parts[i] = null;\n return -1;\n }\n // Finish the content and replace the entire range in\n // this.parts with the link/image node.\n let content = cx.takeContent(i);\n let link = cx.parts[i] = finishLink(cx, content, part.type == LinkStart ? Type.Link : Type.Image, part.from, start + 1);\n // Set any open-link markers before this link to invalid.\n if (part.type == LinkStart)\n for (let j = 0; j < i; j++) {\n let p = cx.parts[j];\n if (p instanceof InlineDelimiter && p.type == LinkStart)\n p.side = 0 /* Mark.None */;\n }\n return link.to;\n }\n }\n return -1;\n }\n};\nfunction finishLink(cx, content, type, start, startPos) {\n let { text } = cx, next = cx.char(startPos), endPos = startPos;\n content.unshift(elt(Type.LinkMark, start, start + (type == Type.Image ? 2 : 1)));\n content.push(elt(Type.LinkMark, startPos - 1, startPos));\n if (next == 40 /* '(' */) {\n let pos = cx.skipSpace(startPos + 1);\n let dest = parseURL(text, pos - cx.offset, cx.offset), title;\n if (dest) {\n pos = cx.skipSpace(dest.to);\n title = parseLinkTitle(text, pos - cx.offset, cx.offset);\n if (title)\n pos = cx.skipSpace(title.to);\n }\n if (cx.char(pos) == 41 /* ')' */) {\n content.push(elt(Type.LinkMark, startPos, startPos + 1));\n endPos = pos + 1;\n if (dest)\n content.push(dest);\n if (title)\n content.push(title);\n content.push(elt(Type.LinkMark, pos, endPos));\n }\n }\n else if (next == 91 /* '[' */) {\n let label = parseLinkLabel(text, startPos - cx.offset, cx.offset, false);\n if (label) {\n content.push(label);\n endPos = label.to;\n }\n }\n return elt(type, start, endPos, content);\n}\n// These return `null` when falling off the end of the input, `false`\n// when parsing fails otherwise (for use in the incremental link\n// reference parser).\nfunction parseURL(text, start, offset) {\n let next = text.charCodeAt(start);\n if (next == 60 /* '<' */) {\n for (let pos = start + 1; pos < text.length; pos++) {\n let ch = text.charCodeAt(pos);\n if (ch == 62 /* '>' */)\n return elt(Type.URL, start + offset, pos + 1 + offset);\n if (ch == 60 || ch == 10 /* '<\\n' */)\n return false;\n }\n return null;\n }\n else {\n let depth = 0, pos = start;\n for (let escaped = false; pos < text.length; pos++) {\n let ch = text.charCodeAt(pos);\n if (space(ch)) {\n break;\n }\n else if (escaped) {\n escaped = false;\n }\n else if (ch == 40 /* '(' */) {\n depth++;\n }\n else if (ch == 41 /* ')' */) {\n if (!depth)\n break;\n depth--;\n }\n else if (ch == 92 /* '\\\\' */) {\n escaped = true;\n }\n }\n return pos > start ? elt(Type.URL, start + offset, pos + offset) : pos == text.length ? null : false;\n }\n}\nfunction parseLinkTitle(text, start, offset) {\n let next = text.charCodeAt(start);\n if (next != 39 && next != 34 && next != 40 /* '\"\\'(' */)\n return false;\n let end = next == 40 ? 41 : next;\n for (let pos = start + 1, escaped = false; pos < text.length; pos++) {\n let ch = text.charCodeAt(pos);\n if (escaped)\n escaped = false;\n else if (ch == end)\n return elt(Type.LinkTitle, start + offset, pos + 1 + offset);\n else if (ch == 92 /* '\\\\' */)\n escaped = true;\n }\n return null;\n}\nfunction parseLinkLabel(text, start, offset, requireNonWS) {\n for (let escaped = false, pos = start + 1, end = Math.min(text.length, pos + 999); pos < end; pos++) {\n let ch = text.charCodeAt(pos);\n if (escaped)\n escaped = false;\n else if (ch == 93 /* ']' */)\n return requireNonWS ? false : elt(Type.LinkLabel, start + offset, pos + 1 + offset);\n else {\n if (requireNonWS && !space(ch))\n requireNonWS = false;\n if (ch == 91 /* '[' */)\n return false;\n else if (ch == 92 /* '\\\\' */)\n escaped = true;\n }\n }\n return null;\n}\n/// Inline parsing functions get access to this context, and use it to\n/// read the content and emit syntax nodes.\nclass InlineContext {\n /// @internal\n constructor(\n /// The parser that is being used.\n parser, \n /// The text of this inline section.\n text, \n /// The starting offset of the section in the document.\n offset) {\n this.parser = parser;\n this.text = text;\n this.offset = offset;\n /// @internal\n this.parts = [];\n }\n /// Get the character code at the given (document-relative)\n /// position.\n char(pos) { return pos >= this.end ? -1 : this.text.charCodeAt(pos - this.offset); }\n /// The position of the end of this inline section.\n get end() { return this.offset + this.text.length; }\n /// Get a substring of this inline section. Again uses\n /// document-relative positions.\n slice(from, to) { return this.text.slice(from - this.offset, to - this.offset); }\n /// @internal\n append(elt) {\n this.parts.push(elt);\n return elt.to;\n }\n /// Add a [delimiter](#DelimiterType) at this given position. `open`\n /// and `close` indicate whether this delimiter is opening, closing,\n /// or both. Returns the end of the delimiter, for convenient\n /// returning from [parse functions](#InlineParser.parse).\n addDelimiter(type, from, to, open, close) {\n return this.append(new InlineDelimiter(type, from, to, (open ? 1 /* Mark.Open */ : 0 /* Mark.None */) | (close ? 2 /* Mark.Close */ : 0 /* Mark.None */)));\n }\n /// Add an inline element. Returns the end of the element.\n addElement(elt) {\n return this.append(elt);\n }\n /// Resolve markers between this.parts.length and from, wrapping matched markers in the\n /// appropriate node and updating the content of this.parts. @internal\n resolveMarkers(from) {\n // Scan forward, looking for closing tokens\n for (let i = from; i < this.parts.length; i++) {\n let close = this.parts[i];\n if (!(close instanceof InlineDelimiter && close.type.resolve && (close.side & 2 /* Mark.Close */)))\n continue;\n let emp = close.type == EmphasisUnderscore || close.type == EmphasisAsterisk;\n let closeSize = close.to - close.from;\n let open, j = i - 1;\n // Continue scanning for a matching opening token\n for (; j >= from; j--) {\n let part = this.parts[j];\n if (part instanceof InlineDelimiter && (part.side & 1 /* Mark.Open */) && part.type == close.type &&\n // Ignore emphasis delimiters where the character count doesn't match\n !(emp && ((close.side & 1 /* Mark.Open */) || (part.side & 2 /* Mark.Close */)) &&\n (part.to - part.from + closeSize) % 3 == 0 && ((part.to - part.from) % 3 || closeSize % 3))) {\n open = part;\n break;\n }\n }\n if (!open)\n continue;\n let type = close.type.resolve, content = [];\n let start = open.from, end = close.to;\n // Emphasis marker effect depends on the character count. Size consumed is minimum of the two\n // markers.\n if (emp) {\n let size = Math.min(2, open.to - open.from, closeSize);\n start = open.to - size;\n end = close.from + size;\n type = size == 1 ? \"Emphasis\" : \"StrongEmphasis\";\n }\n // Move the covered region into content, optionally adding marker nodes\n if (open.type.mark)\n content.push(this.elt(open.type.mark, start, open.to));\n for (let k = j + 1; k < i; k++) {\n if (this.parts[k] instanceof Element)\n content.push(this.parts[k]);\n this.parts[k] = null;\n }\n if (close.type.mark)\n content.push(this.elt(close.type.mark, close.from, end));\n let element = this.elt(type, start, end, content);\n // If there are leftover emphasis marker characters, shrink the close/open markers. Otherwise, clear them.\n this.parts[j] = emp && open.from != start ? new InlineDelimiter(open.type, open.from, start, open.side) : null;\n let keep = this.parts[i] = emp && close.to != end ? new InlineDelimiter(close.type, end, close.to, close.side) : null;\n // Insert the new element in this.parts\n if (keep)\n this.parts.splice(i, 0, element);\n else\n this.parts[i] = element;\n }\n // Collect the elements remaining in this.parts into an array.\n let result = [];\n for (let i = from; i < this.parts.length; i++) {\n let part = this.parts[i];\n if (part instanceof Element)\n result.push(part);\n }\n return result;\n }\n /// Find an opening delimiter of the given type. Returns `null` if\n /// no delimiter is found, or an index that can be passed to\n /// [`takeContent`](#InlineContext.takeContent) otherwise.\n findOpeningDelimiter(type) {\n for (let i = this.parts.length - 1; i >= 0; i--) {\n let part = this.parts[i];\n if (part instanceof InlineDelimiter && part.type == type)\n return i;\n }\n return null;\n }\n /// Remove all inline elements and delimiters starting from the\n /// given index (which you should get from\n /// [`findOpeningDelimiter`](#InlineContext.findOpeningDelimiter),\n /// resolve delimiters inside of them, and return them as an array\n /// of elements.\n takeContent(startIndex) {\n let content = this.resolveMarkers(startIndex);\n this.parts.length = startIndex;\n return content;\n }\n /// Skip space after the given (document) position, returning either\n /// the position of the next non-space character or the end of the\n /// section.\n skipSpace(from) { return skipSpace(this.text, from - this.offset) + this.offset; }\n elt(type, from, to, children) {\n if (typeof type == \"string\")\n return elt(this.parser.getNodeType(type), from, to, children);\n return new TreeElement(type, from);\n }\n}\nfunction injectMarks(elements, marks) {\n if (!marks.length)\n return elements;\n if (!elements.length)\n return marks;\n let elts = elements.slice(), eI = 0;\n for (let mark of marks) {\n while (eI < elts.length && elts[eI].to < mark.to)\n eI++;\n if (eI < elts.length && elts[eI].from < mark.from) {\n let e = elts[eI];\n if (e instanceof Element)\n elts[eI] = new Element(e.type, e.from, e.to, injectMarks(e.children, [mark]));\n }\n else {\n elts.splice(eI++, 0, mark);\n }\n }\n return elts;\n}\n// These are blocks that can span blank lines, and should thus only be\n// reused if their next sibling is also being reused.\nconst NotLast = [Type.CodeBlock, Type.ListItem, Type.OrderedList, Type.BulletList];\nclass FragmentCursor {\n constructor(fragments, input) {\n this.fragments = fragments;\n this.input = input;\n // Index into fragment array\n this.i = 0;\n // Active fragment\n this.fragment = null;\n this.fragmentEnd = -1;\n // Cursor into the current fragment, if any. When `moveTo` returns\n // true, this points at the first block after `pos`.\n this.cursor = null;\n if (fragments.length)\n this.fragment = fragments[this.i++];\n }\n nextFragment() {\n this.fragment = this.i < this.fragments.length ? this.fragments[this.i++] : null;\n this.cursor = null;\n this.fragmentEnd = -1;\n }\n moveTo(pos, lineStart) {\n while (this.fragment && this.fragment.to <= pos)\n this.nextFragment();\n if (!this.fragment || this.fragment.from > (pos ? pos - 1 : 0))\n return false;\n if (this.fragmentEnd < 0) {\n let end = this.fragment.to;\n while (end > 0 && this.input.read(end - 1, end) != \"\\n\")\n end--;\n this.fragmentEnd = end ? end - 1 : 0;\n }\n let c = this.cursor;\n if (!c) {\n c = this.cursor = this.fragment.tree.cursor();\n c.firstChild();\n }\n let rPos = pos + this.fragment.offset;\n while (c.to <= rPos)\n if (!c.parent())\n return false;\n for (;;) {\n if (c.from >= rPos)\n return this.fragment.from <= lineStart;\n if (!c.childAfter(rPos))\n return false;\n }\n }\n matches(hash) {\n let tree = this.cursor.tree;\n return tree && tree.prop(NodeProp.contextHash) == hash;\n }\n takeNodes(cx) {\n let cur = this.cursor, off = this.fragment.offset, fragEnd = this.fragmentEnd - (this.fragment.openEnd ? 1 : 0);\n let start = cx.absoluteLineStart, end = start, blockI = cx.block.children.length;\n let prevEnd = end, prevI = blockI;\n for (;;) {\n if (cur.to - off > fragEnd) {\n if (cur.type.isAnonymous && cur.firstChild())\n continue;\n break;\n }\n let pos = toRelative(cur.from - off, cx.ranges);\n if (cur.to - off <= cx.ranges[cx.rangeI].to) { // Fits in current range\n cx.addNode(cur.tree, pos);\n }\n else {\n let dummy = new Tree(cx.parser.nodeSet.types[Type.Paragraph], [], [], 0, cx.block.hashProp);\n cx.reusePlaceholders.set(dummy, cur.tree);\n cx.addNode(dummy, pos);\n }\n // Taken content must always end in a block, because incremental\n // parsing happens on block boundaries. Never stop directly\n // after an indented code block, since those can continue after\n // any number of blank lines.\n if (cur.type.is(\"Block\")) {\n if (NotLast.indexOf(cur.type.id) < 0) {\n end = cur.to - off;\n blockI = cx.block.children.length;\n }\n else {\n end = prevEnd;\n blockI = prevI;\n prevEnd = cur.to - off;\n prevI = cx.block.children.length;\n }\n }\n if (!cur.nextSibling())\n break;\n }\n while (cx.block.children.length > blockI) {\n cx.block.children.pop();\n cx.block.positions.pop();\n }\n return end - start;\n }\n}\n// Convert an input-stream-relative position to a\n// Markdown-doc-relative position by subtracting the size of all input\n// gaps before `abs`.\nfunction toRelative(abs, ranges) {\n let pos = abs;\n for (let i = 1; i < ranges.length; i++) {\n let gapFrom = ranges[i - 1].to, gapTo = ranges[i].from;\n if (gapFrom < abs)\n pos -= gapTo - gapFrom;\n }\n return pos;\n}\nconst markdownHighlighting = styleTags({\n \"Blockquote/...\": tags.quote,\n HorizontalRule: tags.contentSeparator,\n \"ATXHeading1/... SetextHeading1/...\": tags.heading1,\n \"ATXHeading2/... SetextHeading2/...\": tags.heading2,\n \"ATXHeading3/...\": tags.heading3,\n \"ATXHeading4/...\": tags.heading4,\n \"ATXHeading5/...\": tags.heading5,\n \"ATXHeading6/...\": tags.heading6,\n \"Comment CommentBlock\": tags.comment,\n Escape: tags.escape,\n Entity: tags.character,\n \"Emphasis/...\": tags.emphasis,\n \"StrongEmphasis/...\": tags.strong,\n \"Link/... Image/...\": tags.link,\n \"OrderedList/... BulletList/...\": tags.list,\n \"BlockQuote/...\": tags.quote,\n \"InlineCode CodeText\": tags.monospace,\n URL: tags.url,\n \"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark\": tags.processingInstruction,\n \"CodeInfo LinkLabel\": tags.labelName,\n LinkTitle: tags.string,\n Paragraph: tags.content\n});\n/// The default CommonMark parser.\nconst parser = new MarkdownParser(new NodeSet(nodeTypes).extend(markdownHighlighting), Object.keys(DefaultBlockParsers).map(n => DefaultBlockParsers[n]), Object.keys(DefaultBlockParsers).map(n => DefaultLeafBlocks[n]), Object.keys(DefaultBlockParsers), DefaultEndLeaf, DefaultSkipMarkup, Object.keys(DefaultInline).map(n => DefaultInline[n]), Object.keys(DefaultInline), []);\n\nfunction leftOverSpace(node, from, to) {\n let ranges = [];\n for (let n = node.firstChild, pos = from;; n = n.nextSibling) {\n let nextPos = n ? n.from : to;\n if (nextPos > pos)\n ranges.push({ from: pos, to: nextPos });\n if (!n)\n break;\n pos = n.to;\n }\n return ranges;\n}\n/// Create a Markdown extension to enable nested parsing on code\n/// blocks and/or embedded HTML.\nfunction parseCode(config) {\n let { codeParser, htmlParser } = config;\n let wrap = parseMixed((node, input) => {\n let id = node.type.id;\n if (codeParser && (id == Type.CodeBlock || id == Type.FencedCode)) {\n let info = \"\";\n if (id == Type.FencedCode) {\n let infoNode = node.node.getChild(Type.CodeInfo);\n if (infoNode)\n info = input.read(infoNode.from, infoNode.to);\n }\n let parser = codeParser(info);\n if (parser)\n return { parser, overlay: node => node.type.id == Type.CodeText };\n }\n else if (htmlParser && (id == Type.HTMLBlock || id == Type.HTMLTag)) {\n return { parser: htmlParser, overlay: leftOverSpace(node.node, node.from, node.to) };\n }\n return null;\n });\n return { wrap };\n}\n\nconst StrikethroughDelim = { resolve: \"Strikethrough\", mark: \"StrikethroughMark\" };\n/// An extension that implements\n/// [GFM-style](https://github.github.com/gfm/#strikethrough-extension-)\n/// Strikethrough syntax using `~~` delimiters.\nconst Strikethrough = {\n defineNodes: [{\n name: \"Strikethrough\",\n style: { \"Strikethrough/...\": tags.strikethrough }\n }, {\n name: \"StrikethroughMark\",\n style: tags.processingInstruction\n }],\n parseInline: [{\n name: \"Strikethrough\",\n parse(cx, next, pos) {\n if (next != 126 /* '~' */ || cx.char(pos + 1) != 126 || cx.char(pos + 2) == 126)\n return -1;\n let before = cx.slice(pos - 1, pos), after = cx.slice(pos + 2, pos + 3);\n let sBefore = /\\s|^$/.test(before), sAfter = /\\s|^$/.test(after);\n let pBefore = Punctuation.test(before), pAfter = Punctuation.test(after);\n return cx.addDelimiter(StrikethroughDelim, pos, pos + 2, !sAfter && (!pAfter || sBefore || pBefore), !sBefore && (!pBefore || sAfter || pAfter));\n },\n after: \"Emphasis\"\n }]\n};\nfunction parseRow(cx, line, startI = 0, elts, offset = 0) {\n let count = 0, first = true, cellStart = -1, cellEnd = -1, esc = false;\n let parseCell = () => {\n elts.push(cx.elt(\"TableCell\", offset + cellStart, offset + cellEnd, cx.parser.parseInline(line.slice(cellStart, cellEnd), offset + cellStart)));\n };\n for (let i = startI; i < line.length; i++) {\n let next = line.charCodeAt(i);\n if (next == 124 /* '|' */ && !esc) {\n if (!first || cellStart > -1)\n count++;\n first = false;\n if (elts) {\n if (cellStart > -1)\n parseCell();\n elts.push(cx.elt(\"TableDelimiter\", i + offset, i + offset + 1));\n }\n cellStart = cellEnd = -1;\n }\n else if (esc || next != 32 && next != 9) {\n if (cellStart < 0)\n cellStart = i;\n cellEnd = i + 1;\n }\n esc = !esc && next == 92;\n }\n if (cellStart > -1) {\n count++;\n if (elts)\n parseCell();\n }\n return count;\n}\nfunction hasPipe(str, start) {\n for (let i = start; i < str.length; i++) {\n let next = str.charCodeAt(i);\n if (next == 124 /* '|' */)\n return true;\n if (next == 92 /* '\\\\' */)\n i++;\n }\n return false;\n}\nconst delimiterLine = /^\\|?(\\s*:?-+:?\\s*\\|)+(\\s*:?-+:?\\s*)?$/;\nclass TableParser {\n constructor() {\n // Null means we haven't seen the second line yet, false means this\n // isn't a table, and an array means this is a table and we've\n // parsed the given rows so far.\n this.rows = null;\n }\n nextLine(cx, line, leaf) {\n if (this.rows == null) { // Second line\n this.rows = false;\n let lineText;\n if ((line.next == 45 || line.next == 58 || line.next == 124 /* '-:|' */) &&\n delimiterLine.test(lineText = line.text.slice(line.pos))) {\n let firstRow = [], firstCount = parseRow(cx, leaf.content, 0, firstRow, leaf.start);\n if (firstCount == parseRow(cx, lineText, line.pos))\n this.rows = [cx.elt(\"TableHeader\", leaf.start, leaf.start + leaf.content.length, firstRow),\n cx.elt(\"TableDelimiter\", cx.lineStart + line.pos, cx.lineStart + line.text.length)];\n }\n }\n else if (this.rows) { // Line after the second\n let content = [];\n parseRow(cx, line.text, line.pos, content, cx.lineStart);\n this.rows.push(cx.elt(\"TableRow\", cx.lineStart + line.pos, cx.lineStart + line.text.length, content));\n }\n return false;\n }\n finish(cx, leaf) {\n if (!this.rows)\n return false;\n cx.addLeafElement(leaf, cx.elt(\"Table\", leaf.start, leaf.start + leaf.content.length, this.rows));\n return true;\n }\n}\n/// This extension provides\n/// [GFM-style](https://github.github.com/gfm/#tables-extension-)\n/// tables, using syntax like this:\n///\n/// ```\n/// | head 1 | head 2 |\n/// | --- | --- |\n/// | cell 1 | cell 2 |\n/// ```\nconst Table = {\n defineNodes: [\n { name: \"Table\", block: true },\n { name: \"TableHeader\", style: { \"TableHeader/...\": tags.heading } },\n \"TableRow\",\n { name: \"TableCell\", style: tags.content },\n { name: \"TableDelimiter\", style: tags.processingInstruction },\n ],\n parseBlock: [{\n name: \"Table\",\n leaf(_, leaf) { return hasPipe(leaf.content, 0) ? new TableParser : null; },\n endLeaf(cx, line, leaf) {\n if (leaf.parsers.some(p => p instanceof TableParser) || !hasPipe(line.text, line.basePos))\n return false;\n let next = cx.scanLine(cx.absoluteLineEnd + 1).text;\n return delimiterLine.test(next) && parseRow(cx, line.text, line.basePos) == parseRow(cx, next, line.basePos);\n },\n before: \"SetextHeading\"\n }]\n};\nclass TaskParser {\n nextLine() { return false; }\n finish(cx, leaf) {\n cx.addLeafElement(leaf, cx.elt(\"Task\", leaf.start, leaf.start + leaf.content.length, [\n cx.elt(\"TaskMarker\", leaf.start, leaf.start + 3),\n ...cx.parser.parseInline(leaf.content.slice(3), leaf.start + 3)\n ]));\n return true;\n }\n}\n/// Extension providing\n/// [GFM-style](https://github.github.com/gfm/#task-list-items-extension-)\n/// task list items, where list items can be prefixed with `[ ]` or\n/// `[x]` to add a checkbox.\nconst TaskList = {\n defineNodes: [\n { name: \"Task\", block: true, style: tags.list },\n { name: \"TaskMarker\", style: tags.atom }\n ],\n parseBlock: [{\n name: \"TaskList\",\n leaf(cx, leaf) {\n return /^\\[[ xX]\\][ \\t]/.test(leaf.content) && cx.parentType().name == \"ListItem\" ? new TaskParser : null;\n },\n after: \"SetextHeading\"\n }]\n};\nconst autolinkRE = /(www\\.)|(https?:\\/\\/)|([\\w.+-]+@)|(mailto:|xmpp:)/gy;\nconst urlRE = /[\\w-]+(\\.[\\w-]+)+(\\/[^\\s<]*)?/gy;\nconst lastTwoDomainWords = /[\\w-]+\\.[\\w-]+($|\\/)/;\nconst emailRE = /[\\w.+-]+@[\\w-]+(\\.[\\w.-]+)+/gy;\nconst xmppResourceRE = /\\/[a-zA-Z\\d@.]+/gy;\nfunction count(str, from, to, ch) {\n let result = 0;\n for (let i = from; i < to; i++)\n if (str[i] == ch)\n result++;\n return result;\n}\nfunction autolinkURLEnd(text, from) {\n urlRE.lastIndex = from;\n let m = urlRE.exec(text);\n if (!m || lastTwoDomainWords.exec(m[0])[0].indexOf(\"_\") > -1)\n return -1;\n let end = from + m[0].length;\n for (;;) {\n let last = text[end - 1], m;\n if (/[?!.,:*_~]/.test(last) ||\n last == \")\" && count(text, from, end, \")\") > count(text, from, end, \"(\"))\n end--;\n else if (last == \";\" && (m = /&(?:#\\d+|#x[a-f\\d]+|\\w+);$/.exec(text.slice(from, end))))\n end = from + m.index;\n else\n break;\n }\n return end;\n}\nfunction autolinkEmailEnd(text, from) {\n emailRE.lastIndex = from;\n let m = emailRE.exec(text);\n if (!m)\n return -1;\n let last = m[0][m[0].length - 1];\n return last == \"_\" || last == \"-\" ? -1 : from + m[0].length - (last == \".\" ? 1 : 0);\n}\n/// Extension that implements autolinking for\n/// `www.`/`http://`/`https://`/`mailto:`/`xmpp:` URLs and email\n/// addresses.\nconst Autolink = {\n parseInline: [{\n name: \"Autolink\",\n parse(cx, next, absPos) {\n let pos = absPos - cx.offset;\n autolinkRE.lastIndex = pos;\n let m = autolinkRE.exec(cx.text), end = -1;\n if (!m)\n return -1;\n if (m[1] || m[2]) { // www., http://\n end = autolinkURLEnd(cx.text, pos + m[0].length);\n }\n else if (m[3]) { // email address\n end = autolinkEmailEnd(cx.text, pos);\n }\n else { // mailto:/xmpp:\n end = autolinkEmailEnd(cx.text, pos + m[0].length);\n if (end > -1 && m[0] == \"xmpp:\") {\n xmppResourceRE.lastIndex = end;\n m = xmppResourceRE.exec(cx.text);\n if (m)\n end = m.index + m[0].length;\n }\n }\n if (end < 0)\n return -1;\n cx.addElement(cx.elt(\"URL\", absPos, end + cx.offset));\n return end + cx.offset;\n }\n }]\n};\n/// Extension bundle containing [`Table`](#Table),\n/// [`TaskList`](#TaskList), [`Strikethrough`](#Strikethrough), and\n/// [`Autolink`](#Autolink).\nconst GFM = [Table, TaskList, Strikethrough, Autolink];\nfunction parseSubSuper(ch, node, mark) {\n return (cx, next, pos) => {\n if (next != ch || cx.char(pos + 1) == ch)\n return -1;\n let elts = [cx.elt(mark, pos, pos + 1)];\n for (let i = pos + 1; i < cx.end; i++) {\n let next = cx.char(i);\n if (next == ch)\n return cx.addElement(cx.elt(node, pos, i + 1, elts.concat(cx.elt(mark, i, i + 1))));\n if (next == 92 /* '\\\\' */)\n elts.push(cx.elt(\"Escape\", i, i++ + 2));\n if (space(next))\n break;\n }\n return -1;\n };\n}\n/// Extension providing\n/// [Pandoc-style](https://pandoc.org/MANUAL.html#superscripts-and-subscripts)\n/// superscript using `^` markers.\nconst Superscript = {\n defineNodes: [\n { name: \"Superscript\", style: tags.special(tags.content) },\n { name: \"SuperscriptMark\", style: tags.processingInstruction }\n ],\n parseInline: [{\n name: \"Superscript\",\n parse: parseSubSuper(94 /* '^' */, \"Superscript\", \"SuperscriptMark\")\n }]\n};\n/// Extension providing\n/// [Pandoc-style](https://pandoc.org/MANUAL.html#superscripts-and-subscripts)\n/// subscript using `~` markers.\nconst Subscript = {\n defineNodes: [\n { name: \"Subscript\", style: tags.special(tags.content) },\n { name: \"SubscriptMark\", style: tags.processingInstruction }\n ],\n parseInline: [{\n name: \"Subscript\",\n parse: parseSubSuper(126 /* '~' */, \"Subscript\", \"SubscriptMark\")\n }]\n};\n/// Extension that parses two colons with only letters, underscores,\n/// and numbers between them as `Emoji` nodes.\nconst Emoji = {\n defineNodes: [{ name: \"Emoji\", style: tags.character }],\n parseInline: [{\n name: \"Emoji\",\n parse(cx, next, pos) {\n let match;\n if (next != 58 /* ':' */ || !(match = /^[a-zA-Z_0-9]+:/.exec(cx.slice(pos + 1, cx.end))))\n return -1;\n return cx.addElement(cx.elt(\"Emoji\", pos, pos + 1 + match[0].length));\n }\n }]\n};\n\nexport { Autolink, BlockContext, Element, Emoji, GFM, InlineContext, LeafBlock, Line, MarkdownParser, Strikethrough, Subscript, Superscript, Table, TaskList, parseCode, parser };\n","import { EditorSelection, countColumn, Prec, EditorState } from '@codemirror/state';\nimport { keymap } from '@codemirror/view';\nimport { defineLanguageFacet, foldNodeProp, indentNodeProp, languageDataProp, foldService, syntaxTree, Language, LanguageDescription, ParseContext, indentUnit, LanguageSupport } from '@codemirror/language';\nimport { CompletionContext } from '@codemirror/autocomplete';\nimport { parser, GFM, Subscript, Superscript, Emoji, MarkdownParser, parseCode } from '@lezer/markdown';\nimport { html, htmlCompletionSource } from '@codemirror/lang-html';\nimport { NodeProp } from '@lezer/common';\n\nconst data = /*@__PURE__*/defineLanguageFacet({ commentTokens: { block: { open: \"<!--\", close: \"-->\" } } });\nconst headingProp = /*@__PURE__*/new NodeProp();\nconst commonmark = /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/foldNodeProp.add(type => {\n return !type.is(\"Block\") || type.is(\"Document\") || isHeading(type) != null ? undefined\n : (tree, state) => ({ from: state.doc.lineAt(tree.from).to, to: tree.to });\n }),\n /*@__PURE__*/headingProp.add(isHeading),\n /*@__PURE__*/indentNodeProp.add({\n Document: () => null\n }),\n /*@__PURE__*/languageDataProp.add({\n Document: data\n })\n ]\n});\nfunction isHeading(type) {\n let match = /^(?:ATX|Setext)Heading(\\d)$/.exec(type.name);\n return match ? +match[1] : undefined;\n}\nfunction findSectionEnd(headerNode, level) {\n let last = headerNode;\n for (;;) {\n let next = last.nextSibling, heading;\n if (!next || (heading = isHeading(next.type)) != null && heading <= level)\n break;\n last = next;\n }\n return last.to;\n}\nconst headerIndent = /*@__PURE__*/foldService.of((state, start, end) => {\n for (let node = syntaxTree(state).resolveInner(end, -1); node; node = node.parent) {\n if (node.from < start)\n break;\n let heading = node.type.prop(headingProp);\n if (heading == null)\n continue;\n let upto = findSectionEnd(node, heading);\n if (upto > end)\n return { from: end, to: upto };\n }\n return null;\n});\nfunction mkLang(parser) {\n return new Language(data, parser, [headerIndent], \"markdown\");\n}\n/**\nLanguage support for strict CommonMark.\n*/\nconst commonmarkLanguage = /*@__PURE__*/mkLang(commonmark);\nconst extended = /*@__PURE__*/commonmark.configure([GFM, Subscript, Superscript, Emoji, {\n props: [\n /*@__PURE__*/foldNodeProp.add({\n Table: (tree, state) => ({ from: state.doc.lineAt(tree.from).to, to: tree.to })\n })\n ]\n }]);\n/**\nLanguage support for [GFM](https://github.github.com/gfm/) plus\nsubscript, superscript, and emoji syntax.\n*/\nconst markdownLanguage = /*@__PURE__*/mkLang(extended);\nfunction getCodeParser(languages, defaultLanguage) {\n return (info) => {\n if (info && languages) {\n let found = null;\n // Strip anything after whitespace\n info = /\\S*/.exec(info)[0];\n if (typeof languages == \"function\")\n found = languages(info);\n else\n found = LanguageDescription.matchLanguageName(languages, info, true);\n if (found instanceof LanguageDescription)\n return found.support ? found.support.language.parser : ParseContext.getSkippingParser(found.load());\n else if (found)\n return found.parser;\n }\n return defaultLanguage ? defaultLanguage.parser : null;\n };\n}\n\nclass Context {\n constructor(node, from, to, spaceBefore, spaceAfter, type, item) {\n this.node = node;\n this.from = from;\n this.to = to;\n this.spaceBefore = spaceBefore;\n this.spaceAfter = spaceAfter;\n this.type = type;\n this.item = item;\n }\n blank(maxWidth, trailing = true) {\n let result = this.spaceBefore + (this.node.name == \"Blockquote\" ? \">\" : \"\");\n if (maxWidth != null) {\n while (result.length < maxWidth)\n result += \" \";\n return result;\n }\n else {\n for (let i = this.to - this.from - result.length - this.spaceAfter.length; i > 0; i--)\n result += \" \";\n return result + (trailing ? this.spaceAfter : \"\");\n }\n }\n marker(doc, add) {\n let number = this.node.name == \"OrderedList\" ? String((+itemNumber(this.item, doc)[2] + add)) : \"\";\n return this.spaceBefore + number + this.type + this.spaceAfter;\n }\n}\nfunction getContext(node, doc) {\n let nodes = [];\n for (let cur = node; cur && cur.name != \"Document\"; cur = cur.parent) {\n if (cur.name == \"ListItem\" || cur.name == \"Blockquote\" || cur.name == \"FencedCode\")\n nodes.push(cur);\n }\n let context = [];\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i], match;\n let line = doc.lineAt(node.from), startPos = node.from - line.from;\n if (node.name == \"FencedCode\") {\n context.push(new Context(node, startPos, startPos, \"\", \"\", \"\", null));\n }\n else if (node.name == \"Blockquote\" && (match = /^ *>( ?)/.exec(line.text.slice(startPos)))) {\n context.push(new Context(node, startPos, startPos + match[0].length, \"\", match[1], \">\", null));\n }\n else if (node.name == \"ListItem\" && node.parent.name == \"OrderedList\" &&\n (match = /^( *)\\d+([.)])( *)/.exec(line.text.slice(startPos)))) {\n let after = match[3], len = match[0].length;\n if (after.length >= 4) {\n after = after.slice(0, after.length - 4);\n len -= 4;\n }\n context.push(new Context(node.parent, startPos, startPos + len, match[1], after, match[2], node));\n }\n else if (node.name == \"ListItem\" && node.parent.name == \"BulletList\" &&\n (match = /^( *)([-+*])( {1,4}\\[[ xX]\\])?( +)/.exec(line.text.slice(startPos)))) {\n let after = match[4], len = match[0].length;\n if (after.length > 4) {\n after = after.slice(0, after.length - 4);\n len -= 4;\n }\n let type = match[2];\n if (match[3])\n type += match[3].replace(/[xX]/, ' ');\n context.push(new Context(node.parent, startPos, startPos + len, match[1], after, type, node));\n }\n }\n return context;\n}\nfunction itemNumber(item, doc) {\n return /^(\\s*)(\\d+)(?=[.)])/.exec(doc.sliceString(item.from, item.from + 10));\n}\nfunction renumberList(after, doc, changes, offset = 0) {\n for (let prev = -1, node = after;;) {\n if (node.name == \"ListItem\") {\n let m = itemNumber(node, doc);\n let number = +m[2];\n if (prev >= 0) {\n if (number != prev + 1)\n return;\n changes.push({ from: node.from + m[1].length, to: node.from + m[0].length, insert: String(prev + 2 + offset) });\n }\n prev = number;\n }\n let next = node.nextSibling;\n if (!next)\n break;\n node = next;\n }\n}\nfunction normalizeIndent(content, state) {\n let blank = /^[ \\t]*/.exec(content)[0].length;\n if (!blank || state.facet(indentUnit) != \"\\t\")\n return content;\n let col = countColumn(content, 4, blank);\n let space = \"\";\n for (let i = col; i > 0;) {\n if (i >= 4) {\n space += \"\\t\";\n i -= 4;\n }\n else {\n space += \" \";\n i--;\n }\n }\n return space + content.slice(blank);\n}\n/**\nThis command, when invoked in Markdown context with cursor\nselection(s), will create a new line with the markup for\nblockquotes and lists that were active on the old line. If the\ncursor was directly after the end of the markup for the old line,\ntrailing whitespace and list markers are removed from that line.\n\nThe command does nothing in non-Markdown context, so it should\nnot be used as the only binding for Enter (even in a Markdown\ndocument, HTML and code regions might use a different language).\n*/\nconst insertNewlineContinueMarkup = ({ state, dispatch }) => {\n let tree = syntaxTree(state), { doc } = state;\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty || !markdownLanguage.isActiveAt(state, range.from))\n return dont = { range };\n let pos = range.from, line = doc.lineAt(pos);\n let context = getContext(tree.resolveInner(pos, -1), doc);\n while (context.length && context[context.length - 1].from > pos - line.from)\n context.pop();\n if (!context.length)\n return dont = { range };\n let inner = context[context.length - 1];\n if (inner.to - inner.spaceAfter.length > pos - line.from)\n return dont = { range };\n let emptyLine = pos >= (inner.to - inner.spaceAfter.length) && !/\\S/.test(line.text.slice(inner.to));\n // Empty line in list\n if (inner.item && emptyLine) {\n // First list item or blank line before: delete a level of markup\n if (inner.node.firstChild.to >= pos ||\n line.from > 0 && !/[^\\s>]/.test(doc.lineAt(line.from - 1).text)) {\n let next = context.length > 1 ? context[context.length - 2] : null;\n let delTo, insert = \"\";\n if (next && next.item) { // Re-add marker for the list at the next level\n delTo = line.from + next.from;\n insert = next.marker(doc, 1);\n }\n else {\n delTo = line.from + (next ? next.to : 0);\n }\n let changes = [{ from: delTo, to: pos, insert }];\n if (inner.node.name == \"OrderedList\")\n renumberList(inner.item, doc, changes, -2);\n if (next && next.node.name == \"OrderedList\")\n renumberList(next.item, doc, changes);\n return { range: EditorSelection.cursor(delTo + insert.length), changes };\n }\n else { // Move this line down\n let insert = \"\";\n for (let i = 0, e = context.length - 2; i <= e; i++) {\n insert += context[i].blank(i < e ? countColumn(line.text, 4, context[i + 1].from) - insert.length : null, i < e);\n }\n insert = normalizeIndent(insert, state);\n return { range: EditorSelection.cursor(pos + insert.length + 1),\n changes: { from: line.from, insert: insert + state.lineBreak } };\n }\n }\n if (inner.node.name == \"Blockquote\" && emptyLine && line.from) {\n let prevLine = doc.lineAt(line.from - 1), quoted = />\\s*$/.exec(prevLine.text);\n // Two aligned empty quoted lines in a row\n if (quoted && quoted.index == inner.from) {\n let changes = state.changes([{ from: prevLine.from + quoted.index, to: prevLine.to },\n { from: line.from + inner.from, to: line.to }]);\n return { range: range.map(changes), changes };\n }\n }\n let changes = [];\n if (inner.node.name == \"OrderedList\")\n renumberList(inner.item, doc, changes);\n let continued = inner.item && inner.item.from < line.from;\n let insert = \"\";\n // If not dedented\n if (!continued || /^[\\s\\d.)\\-+*>]*/.exec(line.text)[0].length >= inner.to) {\n for (let i = 0, e = context.length - 1; i <= e; i++) {\n insert += i == e && !continued ? context[i].marker(doc, 1)\n : context[i].blank(i < e ? countColumn(line.text, 4, context[i + 1].from) - insert.length : null);\n }\n }\n let from = pos;\n while (from > line.from && /\\s/.test(line.text.charAt(from - line.from - 1)))\n from--;\n insert = normalizeIndent(insert, state);\n changes.push({ from, to: pos, insert: state.lineBreak + insert });\n return { range: EditorSelection.cursor(from + insert.length + 1), changes };\n });\n if (dont)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\nfunction isMark(node) {\n return node.name == \"QuoteMark\" || node.name == \"ListMark\";\n}\nfunction contextNodeForDelete(tree, pos) {\n let node = tree.resolveInner(pos, -1), scan = pos;\n if (isMark(node)) {\n scan = node.from;\n node = node.parent;\n }\n for (let prev; prev = node.childBefore(scan);) {\n if (isMark(prev)) {\n scan = prev.from;\n }\n else if (prev.name == \"OrderedList\" || prev.name == \"BulletList\") {\n node = prev.lastChild;\n scan = node.to;\n }\n else {\n break;\n }\n }\n return node;\n}\n/**\nThis command will, when invoked in a Markdown context with the\ncursor directly after list or blockquote markup, delete one level\nof markup. When the markup is for a list, it will be replaced by\nspaces on the first invocation (a further invocation will delete\nthe spaces), to make it easy to continue a list.\n\nWhen not after Markdown block markup, this command will return\nfalse, so it is intended to be bound alongside other deletion\ncommands, with a higher precedence than the more generic commands.\n*/\nconst deleteMarkupBackward = ({ state, dispatch }) => {\n let tree = syntaxTree(state);\n let dont = null, changes = state.changeByRange(range => {\n let pos = range.from, { doc } = state;\n if (range.empty && markdownLanguage.isActiveAt(state, range.from)) {\n let line = doc.lineAt(pos);\n let context = getContext(contextNodeForDelete(tree, pos), doc);\n if (context.length) {\n let inner = context[context.length - 1];\n let spaceEnd = inner.to - inner.spaceAfter.length + (inner.spaceAfter ? 1 : 0);\n // Delete extra trailing space after markup\n if (pos - line.from > spaceEnd && !/\\S/.test(line.text.slice(spaceEnd, pos - line.from)))\n return { range: EditorSelection.cursor(line.from + spaceEnd),\n changes: { from: line.from + spaceEnd, to: pos } };\n if (pos - line.from == spaceEnd &&\n // Only apply this if we're on the line that has the\n // construct's syntax, or there's only indentation in the\n // target range\n (!inner.item || line.from <= inner.item.from || !/\\S/.test(line.text.slice(0, inner.to)))) {\n let start = line.from + inner.from;\n // Replace a list item marker with blank space\n if (inner.item && inner.node.from < inner.item.from && /\\S/.test(line.text.slice(inner.from, inner.to))) {\n let insert = inner.blank(countColumn(line.text, 4, inner.to) - countColumn(line.text, 4, inner.from));\n if (start == line.from)\n insert = normalizeIndent(insert, state);\n return { range: EditorSelection.cursor(start + insert.length),\n changes: { from: start, to: line.from + inner.to, insert } };\n }\n // Delete one level of indentation\n if (start < pos)\n return { range: EditorSelection.cursor(start), changes: { from: start, to: pos } };\n }\n }\n }\n return dont = { range };\n });\n if (dont)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"delete\" }));\n return true;\n};\n\n/**\nA small keymap with Markdown-specific bindings. Binds Enter to\n[`insertNewlineContinueMarkup`](https://codemirror.net/6/docs/ref/#lang-markdown.insertNewlineContinueMarkup)\nand Backspace to\n[`deleteMarkupBackward`](https://codemirror.net/6/docs/ref/#lang-markdown.deleteMarkupBackward).\n*/\nconst markdownKeymap = [\n { key: \"Enter\", run: insertNewlineContinueMarkup },\n { key: \"Backspace\", run: deleteMarkupBackward }\n];\nconst htmlNoMatch = /*@__PURE__*/html({ matchClosingTags: false });\n/**\nMarkdown language support.\n*/\nfunction markdown(config = {}) {\n let { codeLanguages, defaultCodeLanguage, addKeymap = true, base: { parser } = commonmarkLanguage, completeHTMLTags = true } = config;\n if (!(parser instanceof MarkdownParser))\n throw new RangeError(\"Base parser provided to `markdown` should be a Markdown parser\");\n let extensions = config.extensions ? [config.extensions] : [];\n let support = [htmlNoMatch.support], defaultCode;\n if (defaultCodeLanguage instanceof LanguageSupport) {\n support.push(defaultCodeLanguage.support);\n defaultCode = defaultCodeLanguage.language;\n }\n else if (defaultCodeLanguage) {\n defaultCode = defaultCodeLanguage;\n }\n let codeParser = codeLanguages || defaultCode ? getCodeParser(codeLanguages, defaultCode) : undefined;\n extensions.push(parseCode({ codeParser, htmlParser: htmlNoMatch.language.parser }));\n if (addKeymap)\n support.push(Prec.high(keymap.of(markdownKeymap)));\n let lang = mkLang(parser.configure(extensions));\n if (completeHTMLTags)\n support.push(lang.data.of({ autocomplete: htmlTagCompletion }));\n return new LanguageSupport(lang, support);\n}\nfunction htmlTagCompletion(context) {\n let { state, pos } = context, m = /<[:\\-\\.\\w\\u00b7-\\uffff]*$/.exec(state.sliceDoc(pos - 25, pos));\n if (!m)\n return null;\n let tree = syntaxTree(state).resolveInner(pos, -1);\n while (tree && !tree.type.isTop) {\n if (tree.name == \"CodeBlock\" || tree.name == \"FencedCode\" || tree.name == \"ProcessingInstructionBlock\" ||\n tree.name == \"CommentBlock\" || tree.name == \"Link\" || tree.name == \"Image\")\n return null;\n tree = tree.parent;\n }\n return {\n from: pos - m[0].length, to: pos,\n options: htmlTagCompletions(),\n validFor: /^<[:\\-\\.\\w\\u00b7-\\uffff]*$/\n };\n}\nlet _tagCompletions = null;\nfunction htmlTagCompletions() {\n if (_tagCompletions)\n return _tagCompletions;\n let result = htmlCompletionSource(new CompletionContext(EditorState.create({ extensions: htmlNoMatch }), 0, true));\n return _tagCompletions = result ? result.options : [];\n}\n\nexport { commonmarkLanguage, deleteMarkupBackward, insertNewlineContinueMarkup, markdown, markdownKeymap, markdownLanguage };\n"],"names":[],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -1,22 +1,8 @@
|
|
|
1
|
-
import { C as ContextTracker, E as ExternalTokenizer, L as LRParser, a as LocalTokenGroup } from './index-
|
|
2
|
-
import { b as styleTags, t as tags, G as snippetCompletion, h as syntaxTree, d as LRLanguage, i as indentNodeProp, c as continuedIndent, j as flatIndent, k as delimitedIndent, f as foldNodeProp, l as foldInside, M as sublanguageProp, a as LanguageSupport, e as ifNotIn, g as completeFromList, E as EditorView, m as EditorSelection, I as IterMode, z as defineLanguageFacet, F as NodeWeakMap } from './index-
|
|
1
|
+
import { C as ContextTracker, E as ExternalTokenizer, L as LRParser, a as LocalTokenGroup } from './index-A-dNwMMf.js';
|
|
2
|
+
import { b as styleTags, t as tags, G as snippetCompletion, h as syntaxTree, d as LRLanguage, i as indentNodeProp, c as continuedIndent, j as flatIndent, k as delimitedIndent, f as foldNodeProp, l as foldInside, M as sublanguageProp, a as LanguageSupport, e as ifNotIn, g as completeFromList, E as EditorView, m as EditorSelection, I as IterMode, z as defineLanguageFacet, F as NodeWeakMap } from './index-Xzdc2jbA.js';
|
|
3
|
+
import '@milkdown/kit/component/code-block';
|
|
4
|
+
import './todoList-9QsDDcmB.js';
|
|
3
5
|
import 'atomico';
|
|
4
|
-
import './clsx-R7WFaNKL.js';
|
|
5
|
-
import './meta-3ZYGAGrY.js';
|
|
6
|
-
import './index-JkHHp3K-.js';
|
|
7
|
-
import '@milkdown/prose/history';
|
|
8
|
-
import '@milkdown/prose/model';
|
|
9
|
-
import '@milkdown/prose/keymap';
|
|
10
|
-
import '@milkdown/prose/commands';
|
|
11
|
-
import '@milkdown/prose';
|
|
12
|
-
import '@milkdown/prose/state';
|
|
13
|
-
import '@milkdown/prose/inputrules';
|
|
14
|
-
import '@milkdown/prose/schema-list';
|
|
15
|
-
import '@milkdown/prose/view';
|
|
16
|
-
import '@milkdown/prose/transform';
|
|
17
|
-
import './helper-iYEjPbOY.js';
|
|
18
|
-
import './composed-offset-position.browser.min-Tnm31e-m.js';
|
|
19
|
-
import './_view-JjtfhQ8k.js';
|
|
20
6
|
|
|
21
7
|
// This file was generated by lezer-generator. You probably shouldn't edit it.
|
|
22
8
|
const noSemi = 309,
|
|
@@ -682,4 +668,4 @@ function translateDiagnostic(input, doc, offset) {
|
|
|
682
668
|
}
|
|
683
669
|
|
|
684
670
|
export { autoCloseTags, completionPath, esLint, javascript, javascriptLanguage, jsxLanguage, localCompletionSource, scopeCompletionSource, snippets, tsxLanguage, typescriptLanguage, typescriptSnippets };
|
|
685
|
-
//# sourceMappingURL=index-
|
|
671
|
+
//# sourceMappingURL=index-twh8lL5o.js.map
|