@milkdown/crepe 7.4.0 → 7.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/{_view-TbSIR42F.js → _view-N32ied53.js} +2 -2
- package/lib/cjs/{_view-TbSIR42F.js.map → _view-N32ied53.js.map} +1 -1
- package/lib/cjs/clsx-dASsG01A.js +6 -0
- package/lib/cjs/clsx-dASsG01A.js.map +1 -0
- package/lib/cjs/{composed-offset-position.browser.min-FwypoGc1.js → floating-ui.dom-2cjBpir5.js} +14 -18
- package/lib/cjs/floating-ui.dom-2cjBpir5.js.map +1 -0
- package/lib/cjs/helper-1aludV1Z.js +15 -0
- package/lib/cjs/helper-1aludV1Z.js.map +1 -0
- package/lib/cjs/{index-tbEq3xma.js → index--sa4NMpW.js} +15 -14
- package/lib/cjs/{index-tbEq3xma.js.map → index--sa4NMpW.js.map} +1 -1
- package/lib/cjs/{index-5PcT4iSf.js → index--tnUmqZ_.js} +18 -17
- package/lib/cjs/{index-5PcT4iSf.js.map → index--tnUmqZ_.js.map} +1 -1
- package/lib/cjs/{index-i0_v2uVp.js → index-1vHyMXH8.js} +15 -14
- package/lib/{esm/index-4QzlLVWs.js.map → cjs/index-1vHyMXH8.js.map} +1 -1
- package/lib/cjs/index-28q261C7.js +448 -0
- package/lib/cjs/index-28q261C7.js.map +1 -0
- package/lib/cjs/{index-mJ47ZWO2.js → index-55VIM-52.js} +18 -17
- package/lib/{esm/index-Grquo08f.js.map → cjs/index-55VIM-52.js.map} +1 -1
- package/lib/cjs/{index-lrFGGa_l.js → index-92bwto5V.js} +15 -14
- package/lib/cjs/{index-lrFGGa_l.js.map → index-92bwto5V.js.map} +1 -1
- package/lib/cjs/{index-2oxl5Zo4.js → index-Buu2tD9O.js} +45 -62
- package/lib/cjs/index-Buu2tD9O.js.map +1 -0
- package/lib/cjs/{index-OA_u95ey.js → index-E4Ist86Z.js} +15 -14
- package/lib/{esm/index-7BVeXLQZ.js.map → cjs/index-E4Ist86Z.js.map} +1 -1
- package/lib/cjs/{index-OIQn1x0L.js → index-FbNqlZU8.js} +14 -13
- package/lib/cjs/index-FbNqlZU8.js.map +1 -0
- package/lib/cjs/{index-SxWWV8XD.js → index-HH5lPgpj.js} +18 -17
- package/lib/cjs/{index-SxWWV8XD.js.map → index-HH5lPgpj.js.map} +1 -1
- package/lib/cjs/{index-vlxA_KJ8.js → index-J1-yHn7v.js} +15 -14
- package/lib/{esm/index-vwrMVELn.js.map → cjs/index-J1-yHn7v.js.map} +1 -1
- package/lib/cjs/{index-xqKfEyRA.js → index-J3XY9IPt.js} +12 -7
- package/lib/cjs/index-J3XY9IPt.js.map +1 -0
- package/lib/cjs/{index-llNS_EuP.js → index-Jztk6JlP.js} +58 -55
- package/lib/cjs/index-Jztk6JlP.js.map +1 -0
- package/lib/cjs/{index-O3vRXWIP.js → index-N6pPZY61.js} +22 -30
- package/lib/cjs/index-N6pPZY61.js.map +1 -0
- package/lib/cjs/{index-GKolgvC5.js → index-TUJs6KKL.js} +35 -68
- package/lib/cjs/index-TUJs6KKL.js.map +1 -0
- package/lib/cjs/{index-OtaMLv5l.js → index-Tjg8KyK7.js} +15 -14
- package/lib/cjs/{index-OtaMLv5l.js.map → index-Tjg8KyK7.js.map} +1 -1
- package/lib/cjs/{index-qRg5-QJH.js → index-VYwHTL3F.js} +16 -15
- package/lib/cjs/{index-qRg5-QJH.js.map → index-VYwHTL3F.js.map} +1 -1
- package/lib/cjs/index-_GOdKqUK.js +1147 -0
- package/lib/cjs/index-_GOdKqUK.js.map +1 -0
- package/lib/cjs/{index-PF7s7DOo.js → index-cKQcw-eu.js} +2 -2
- package/lib/cjs/{index-PF7s7DOo.js.map → index-cKQcw-eu.js.map} +1 -1
- package/lib/cjs/{index-fkT0ywfA.js → index-c_OzudR7.js} +15 -14
- package/lib/{esm/index-L7VXk-jT.js.map → cjs/index-c_OzudR7.js.map} +1 -1
- package/lib/cjs/{index-TEjdwq--.js → index-cb-5m0vG.js} +18 -17
- package/lib/cjs/index-cb-5m0vG.js.map +1 -0
- package/lib/cjs/index-cpC-j5Nt.js +176 -0
- package/lib/cjs/index-cpC-j5Nt.js.map +1 -0
- package/lib/cjs/index-crv_k6dv.js +1353 -0
- package/lib/cjs/index-crv_k6dv.js.map +1 -0
- package/lib/cjs/{index-78P4PeZ9.js → index-jlfsu92T.js} +16 -15
- package/lib/{esm/index-4oMdufW4.js.map → cjs/index-jlfsu92T.js.map} +1 -1
- package/lib/cjs/{index-de3dfsQr.js → index-jn036wuh.js} +17 -16
- package/lib/{esm/index-rwcSpYkt.js.map → cjs/index-jn036wuh.js.map} +1 -1
- package/lib/cjs/{index-JAqL0ybh.js → index-kqz-P6o6.js} +9 -9
- package/lib/cjs/index-kqz-P6o6.js.map +1 -0
- package/lib/cjs/{index-t_GA5F26.js → index-lBumFRUQ.js} +15 -14
- package/lib/cjs/{index-t_GA5F26.js.map → index-lBumFRUQ.js.map} +1 -1
- package/lib/cjs/{index-LdEYPSZc.js → index-lUNj3xuC.js} +15 -14
- package/lib/{esm/index-0khVa44f.js.map → cjs/index-lUNj3xuC.js.map} +1 -1
- package/lib/cjs/{index-ortUqbAp.js → index-mcxgNBq9.js} +15 -14
- package/lib/cjs/{index-ortUqbAp.js.map → index-mcxgNBq9.js.map} +1 -1
- package/lib/cjs/{index-GEIgbcVc.js → index-nTfDKYYi.js} +38 -37
- package/lib/{esm/index-NmjiRA0M.js.map → cjs/index-nTfDKYYi.js.map} +1 -1
- package/lib/cjs/{index-kNI3S3lF.js → index-tBw4NmwY.js} +11779 -404
- package/lib/cjs/index-tBw4NmwY.js.map +1 -0
- package/lib/cjs/{index-zBr61zy6.js → index-vfzLCXfi.js} +15 -14
- package/lib/cjs/{index-zBr61zy6.js.map → index-vfzLCXfi.js.map} +1 -1
- package/lib/cjs/{index-w9buMrFW.js → index-von4W2LG.js} +18 -17
- package/lib/cjs/{index-w9buMrFW.js.map → index-von4W2LG.js.map} +1 -1
- package/lib/cjs/index-z6pe2alg.js.map +1 -1
- package/lib/cjs/{index-wXLifZgm.js → index-zXSAHvAj.js} +2 -2
- package/lib/cjs/{index-wXLifZgm.js.map → index-zXSAHvAj.js.map} +1 -1
- package/lib/cjs/index.js +7 -6
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/{schema-7d3meDfB.js → schema-RVrwDDcq.js} +4 -4
- package/lib/cjs/{schema-7d3meDfB.js.map → schema-RVrwDDcq.js.map} +1 -1
- package/lib/cjs/todoList-Ze4FLMlx.js +415 -0
- package/lib/cjs/todoList-Ze4FLMlx.js.map +1 -0
- package/lib/cjs/{tooltip-plugin-Mk9fRTxI.js → tooltip-plugin--lhebztC.js} +15 -24
- package/lib/cjs/tooltip-plugin--lhebztC.js.map +1 -0
- package/lib/esm/{_view-JjtfhQ8k.js → _view-IlZC8FA6.js} +2 -2
- package/lib/esm/{_view-JjtfhQ8k.js.map → _view-IlZC8FA6.js.map} +1 -1
- package/lib/esm/clsx-RxCLxYpD.js +4 -0
- package/lib/esm/clsx-RxCLxYpD.js.map +1 -0
- package/lib/esm/{composed-offset-position.browser.min-Tnm31e-m.js → floating-ui.dom-CAYjY8Gv.js} +15 -17
- package/lib/esm/floating-ui.dom-CAYjY8Gv.js.map +1 -0
- package/lib/esm/helper-wZAtC67x.js +13 -0
- package/lib/esm/helper-wZAtC67x.js.map +1 -0
- package/lib/esm/{index-Bg5GFp0g.js → index-0-j8Icms.js} +2 -2
- package/lib/esm/{index-Bg5GFp0g.js.map → index-0-j8Icms.js.map} +1 -1
- package/lib/esm/{index-4oMdufW4.js → index-1l-61HI-.js} +16 -15
- package/lib/{cjs/index-78P4PeZ9.js.map → esm/index-1l-61HI-.js.map} +1 -1
- package/lib/esm/{index-bVubJ6Rv.js → index-3HeWs5rX.js} +18 -17
- package/lib/esm/{index-bVubJ6Rv.js.map → index-3HeWs5rX.js.map} +1 -1
- package/lib/esm/{index-6P9Xk934.js → index-3bDzhU6z.js} +15 -14
- package/lib/esm/{index-6P9Xk934.js.map → index-3bDzhU6z.js.map} +1 -1
- package/lib/esm/{index-NmjiRA0M.js → index-6GrVnloh.js} +38 -37
- package/lib/{cjs/index-GEIgbcVc.js.map → esm/index-6GrVnloh.js.map} +1 -1
- package/lib/esm/index-8QJbxTYk.js +1145 -0
- package/lib/esm/index-8QJbxTYk.js.map +1 -0
- package/lib/esm/{index-218OjRxG.js → index-9w_hdnvb.js} +39 -56
- package/lib/esm/index-9w_hdnvb.js.map +1 -0
- package/lib/esm/index-A83StUe6.js +174 -0
- package/lib/esm/index-A83StUe6.js.map +1 -0
- package/lib/esm/{index-TNMG6UrN.js → index-AOoFzBaK.js} +9 -9
- package/lib/esm/index-AOoFzBaK.js.map +1 -0
- package/lib/esm/{index-L7VXk-jT.js → index-DS7Z4Ach.js} +15 -14
- package/lib/{cjs/index-fkT0ywfA.js.map → esm/index-DS7Z4Ach.js.map} +1 -1
- package/lib/esm/index-Jvxff1vU.js.map +1 -1
- package/lib/esm/{index-JkHHp3K-.js → index-LAdX6LsO.js} +11712 -352
- package/lib/esm/index-LAdX6LsO.js.map +1 -0
- package/lib/esm/{index-VyZguCIt.js → index-MB6wQe1U.js} +12 -7
- package/lib/esm/index-MB6wQe1U.js.map +1 -0
- package/lib/esm/{index-vwrMVELn.js → index-MxgqkRtj.js} +15 -14
- package/lib/{cjs/index-vlxA_KJ8.js.map → esm/index-MxgqkRtj.js.map} +1 -1
- package/lib/esm/{index-hQaRWeq1.js → index-NZ5-xr5_.js} +18 -17
- package/lib/esm/{index-hQaRWeq1.js.map → index-NZ5-xr5_.js.map} +1 -1
- package/lib/esm/{index-x-zW6gKj.js → index-OpUb5xP6.js} +2 -2
- package/lib/esm/{index-x-zW6gKj.js.map → index-OpUb5xP6.js.map} +1 -1
- package/lib/esm/{index-oMy83ynO.js → index-SDPCpsD5.js} +15 -14
- package/lib/esm/{index-oMy83ynO.js.map → index-SDPCpsD5.js.map} +1 -1
- package/lib/esm/{index-bsED907r.js → index-VP76m4nW.js} +16 -15
- package/lib/esm/{index-bsED907r.js.map → index-VP76m4nW.js.map} +1 -1
- package/lib/esm/{index-PkBZpDL4.js → index-Vl0W0S3h.js} +14 -13
- package/lib/esm/index-Vl0W0S3h.js.map +1 -0
- package/lib/esm/{index-rwcSpYkt.js → index-VoX_n1l_.js} +17 -16
- package/lib/{cjs/index-de3dfsQr.js.map → esm/index-VoX_n1l_.js.map} +1 -1
- package/lib/esm/{index-7BVeXLQZ.js → index-XH7OnwZl.js} +15 -14
- package/lib/{cjs/index-OA_u95ey.js.map → esm/index-XH7OnwZl.js.map} +1 -1
- package/lib/esm/{index-a-SAfeeT.js → index-Yuj7sNhQ.js} +18 -17
- package/lib/esm/{index-a-SAfeeT.js.map → index-Yuj7sNhQ.js.map} +1 -1
- package/lib/esm/{index-A9zdyi2L.js → index-_4fWmRbN.js} +15 -14
- package/lib/esm/{index-A9zdyi2L.js.map → index-_4fWmRbN.js.map} +1 -1
- package/lib/esm/{index-Grquo08f.js → index-bexsWrgs.js} +18 -17
- package/lib/{cjs/index-mJ47ZWO2.js.map → esm/index-bexsWrgs.js.map} +1 -1
- package/lib/esm/{index-pHsvfB_I.js → index-chrnjY1D.js} +29 -62
- package/lib/esm/index-chrnjY1D.js.map +1 -0
- package/lib/esm/{index-UBeneu17.js → index-eqd5wtjX.js} +15 -14
- package/lib/esm/{index-UBeneu17.js.map → index-eqd5wtjX.js.map} +1 -1
- package/lib/esm/{index-4QzlLVWs.js → index-g_3dzLYU.js} +15 -14
- package/lib/{cjs/index-i0_v2uVp.js.map → esm/index-g_3dzLYU.js.map} +1 -1
- package/lib/esm/{index-0khVa44f.js → index-grT-Kuf2.js} +15 -14
- package/lib/{cjs/index-LdEYPSZc.js.map → esm/index-grT-Kuf2.js.map} +1 -1
- package/lib/esm/{index-AHPvVH4H.js → index-hF04phbf.js} +20 -28
- package/lib/esm/index-hF04phbf.js.map +1 -0
- package/lib/esm/{index-q-qE7-96.js → index-i79QMXpJ.js} +55 -52
- package/lib/esm/index-i79QMXpJ.js.map +1 -0
- package/lib/esm/{index-DoEghZHy.js → index-rvOBAXap.js} +18 -17
- package/lib/{cjs/index-TEjdwq--.js.map → esm/index-rvOBAXap.js.map} +1 -1
- package/lib/esm/index-uP9BKsTM.js +446 -0
- package/lib/esm/index-uP9BKsTM.js.map +1 -0
- package/lib/esm/index-ueQQMSgm.js +1351 -0
- package/lib/esm/index-ueQQMSgm.js.map +1 -0
- package/lib/esm/{index-U71v7KdA.js → index-x8SyiPMC.js} +15 -14
- package/lib/esm/{index-U71v7KdA.js.map → index-x8SyiPMC.js.map} +1 -1
- package/lib/esm/{index-U8q-F7hU.js → index-zrQXXSXm.js} +15 -14
- package/lib/esm/{index-U8q-F7hU.js.map → index-zrQXXSXm.js.map} +1 -1
- package/lib/esm/index.js +7 -6
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/{schema-hVsy-vme.js → schema-JWJqD9qa.js} +3 -3
- package/lib/esm/{schema-hVsy-vme.js.map → schema-JWJqD9qa.js.map} +1 -1
- package/lib/esm/todoList-M-PGJKde.js +378 -0
- package/lib/esm/todoList-M-PGJKde.js.map +1 -0
- package/lib/esm/{tooltip-plugin-vZefVSGL.js → tooltip-plugin-iw2EQWIG.js} +10 -19
- package/lib/esm/tooltip-plugin-iw2EQWIG.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/clsx-7JLENl8W.js +0 -62
- package/lib/cjs/clsx-7JLENl8W.js.map +0 -1
- 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.map +0 -1
- package/lib/cjs/index-GKolgvC5.js.map +0 -1
- 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.map +0 -1
- package/lib/cjs/index-OIQn1x0L.js.map +0 -1
- 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/tooltip-plugin-Mk9fRTxI.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.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.map +0 -1
- package/lib/esm/index-AHPvVH4H.js.map +0 -1
- package/lib/esm/index-DoEghZHy.js.map +0 -1
- package/lib/esm/index-JkHHp3K-.js.map +0 -1
- package/lib/esm/index-PkBZpDL4.js.map +0 -1
- 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.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/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-8QJbxTYk.js","sources":["../../../components/src/table-block/config.ts","../../../components/src/table-block/view/utils.ts","../../../components/src/table-block/view/drag.ts","../../../components/src/table-block/view/pointer.ts","../../../components/src/table-block/view/operation.ts","../../../components/src/table-block/view/component.ts","../../../components/src/table-block/view/view.ts","../../../components/src/table-block/index.ts","../../src/feature/table/index.ts"],"sourcesContent":["import { $ctx } from '@milkdown/utils'\nimport type { html } from 'atomico'\nimport { withMeta } from '../__internal__/meta'\n\nexport type RenderType =\n | 'add_row'\n | 'add_col'\n | 'delete_row'\n | 'delete_col'\n | 'align_col_left'\n | 'align_col_center'\n | 'align_col_right'\n | 'col_drag_handle'\n | 'row_drag_handle'\n\nexport interface TableBlockConfig {\n renderButton: (renderType: RenderType) => HTMLElement | ReturnType<typeof html> | string\n}\n\nconst defaultTableBlockConfig: TableBlockConfig = {\n renderButton: (renderType) => {\n switch (renderType) {\n case 'add_row':\n return '+'\n case 'add_col':\n return '+'\n case 'delete_row':\n return '-'\n case 'delete_col':\n return '-'\n case 'align_col_left':\n return 'left'\n case 'align_col_center':\n return 'center'\n case 'align_col_right':\n return 'right'\n case 'col_drag_handle':\n return '='\n case 'row_drag_handle':\n return '='\n }\n },\n}\n\nexport const tableBlockConfig = $ctx({ ...defaultTableBlockConfig }, 'tableBlockConfigCtx')\n\nwithMeta(tableBlockConfig, {\n displayName: 'Config<table-block>',\n group: 'TableBlock',\n})\n","import type { Node } from '@milkdown/prose/model'\nimport type { EditorView } from '@milkdown/prose/view'\nimport { findParent } from '@milkdown/prose'\nimport type { Ref } from 'atomico'\nimport { editorViewCtx } from '@milkdown/core'\nimport { CellSelection } from '@milkdown/prose/tables'\nimport { findTable } from '@milkdown/preset-gfm'\nimport { computePosition } from '@floating-ui/dom'\nimport type { Ctx } from '@milkdown/ctx'\nimport type { CellIndex, Refs } from './types'\n\nexport function findNodeIndex(parent: Node, child: Node) {\n for (let i = 0; i < parent.childCount; i++) {\n if (parent.child(i) === child)\n return i\n }\n return -1\n}\n\nexport function findPointerIndex(event: PointerEvent, view?: EditorView): CellIndex | undefined {\n if (!view)\n return\n const posAtCoords = view.posAtCoords({ left: event.clientX, top: event.clientY })\n if (!posAtCoords)\n return\n const pos = posAtCoords?.inside\n if (pos == null || pos < 0)\n return\n\n const $pos = view.state.doc.resolve(pos)\n const node = view.state.doc.nodeAt(pos)\n if (!node)\n return\n\n const cellType = ['table_cell', 'table_header']\n const rowType = ['table_row', 'table_header_row']\n\n const cell = cellType.includes(node.type.name) ? node : findParent(node => cellType.includes(node.type.name))($pos)?.node\n const row = findParent(node => rowType.includes(node.type.name))($pos)?.node\n const table = findParent(node => node.type.name === 'table')($pos)?.node\n if (!cell || !row || !table)\n return\n\n const columnIndex = findNodeIndex(row, cell)\n const rowIndex = findNodeIndex(table, row)\n\n return [rowIndex, columnIndex]\n}\n\nexport function getRelatedDOM(contentWrapperRef: Ref<HTMLDivElement>, [rowIndex, columnIndex]: CellIndex) {\n const content = contentWrapperRef.current\n if (!content)\n return\n const rows = content.querySelectorAll('tr')\n const row = rows[rowIndex]\n if (!row)\n return\n\n const firstRow = rows[0]\n if (!firstRow)\n return\n\n const headerCol = firstRow.children[columnIndex]\n if (!headerCol)\n return\n\n const col = row.children[columnIndex]\n if (!col)\n return\n\n return {\n row,\n col,\n headerCol,\n }\n}\n\nexport function recoveryStateBetweenUpdate(\n refs: Refs,\n ctx?: Ctx,\n node?: Node,\n) {\n if (!ctx)\n return\n if (!node)\n return\n const { selection } = ctx.get(editorViewCtx).state\n if (!(selection instanceof CellSelection))\n return\n\n const { $from } = selection\n const table = findTable($from)\n if (!table || table.node !== node)\n return\n\n if (selection.isColSelection()) {\n const { $head } = selection\n const colIndex = $head.index($head.depth - 1)\n computeColHandlePositionByIndex({\n refs,\n index: [0, colIndex],\n before: (handleDOM) => {\n handleDOM.querySelector('.button-group')?.setAttribute('data-show', 'true')\n },\n })\n return\n }\n if (selection.isRowSelection()) {\n const { $head } = selection\n const rowNode = findParent(node => node.type.name === 'table_row' || node.type.name === 'table_header_row')($head)\n if (!rowNode)\n return\n const rowIndex = findNodeIndex(table.node, rowNode.node)\n computeRowHandlePositionByIndex({\n refs,\n index: [rowIndex, 0],\n before: (handleDOM) => {\n if (rowIndex > 0)\n handleDOM.querySelector('.button-group')?.setAttribute('data-show', 'true')\n },\n })\n }\n}\n\ninterface ComputeHandlePositionByIndexProps {\n refs: Refs\n index: CellIndex\n before?: (handleDOM: HTMLDivElement) => void\n after?: (handleDOM: HTMLDivElement) => void\n}\n\nexport function computeColHandlePositionByIndex({\n refs,\n index,\n before,\n after,\n}: ComputeHandlePositionByIndexProps) {\n const {\n contentWrapperRef,\n colHandleRef,\n hoverIndex,\n } = refs\n const colHandle = colHandleRef.current\n if (!colHandle)\n return\n\n hoverIndex.current = index\n const dom = getRelatedDOM(contentWrapperRef, index)\n if (!dom)\n return\n const { headerCol: col } = dom\n colHandle.dataset.show = 'true'\n if (before)\n before(colHandle)\n computePosition(col, colHandle, { placement: 'top' })\n .then(({ x, y }) => {\n Object.assign(colHandle.style, {\n left: `${x}px`,\n top: `${y}px`,\n })\n if (after)\n after(colHandle)\n })\n}\n\nexport function computeRowHandlePositionByIndex({\n refs,\n index,\n before,\n after,\n}: ComputeHandlePositionByIndexProps) {\n const {\n contentWrapperRef,\n rowHandleRef,\n hoverIndex,\n } = refs\n const rowHandle = rowHandleRef.current\n if (!rowHandle)\n return\n\n hoverIndex.current = index\n const dom = getRelatedDOM(contentWrapperRef, index)\n if (!dom)\n return\n const { row } = dom\n rowHandle.dataset.show = 'true'\n if (before)\n before(rowHandle)\n computePosition(row, rowHandle, { placement: 'left' })\n .then(({ x, y }) => {\n Object.assign(rowHandle.style, {\n left: `${x}px`,\n top: `${y}px`,\n })\n if (after)\n after(rowHandle)\n })\n}\n","import throttle from 'lodash.throttle'\nimport { computePosition, offset } from '@floating-ui/dom'\nimport { useEffect, useHost, useMemo } from 'atomico'\nimport { commandsCtx, editorViewCtx } from '@milkdown/core'\nimport { moveColCommand, moveRowCommand, selectColCommand, selectRowCommand } from '@milkdown/preset-gfm'\nimport type { Ctx } from '@milkdown/ctx'\nimport { computeColHandlePositionByIndex, computeRowHandlePositionByIndex, getRelatedDOM } from './utils'\nimport type { CellIndex, DragContext, Refs } from './types'\n\nfunction prepareDndContext(refs: Refs): DragContext | undefined {\n const {\n dragPreviewRef,\n tableWrapperRef,\n contentWrapperRef,\n yLineHandleRef,\n xLineHandleRef,\n colHandleRef,\n rowHandleRef,\n } = refs\n\n const preview = dragPreviewRef.current\n if (!preview)\n return\n const wrapper = tableWrapperRef.current\n if (!wrapper)\n return\n const content = contentWrapperRef.current\n if (!content)\n return\n const contentRoot = content.querySelector('tbody')\n if (!contentRoot)\n return\n const previewRoot = preview.querySelector('tbody')\n if (!previewRoot)\n return\n const yHandle = yLineHandleRef.current\n if (!yHandle)\n return\n const xHandle = xLineHandleRef.current\n if (!xHandle)\n return\n const colHandle = colHandleRef.current\n if (!colHandle)\n return\n const rowHandle = rowHandleRef.current\n if (!rowHandle)\n return\n\n const context = {\n preview,\n wrapper,\n content,\n contentRoot,\n previewRoot,\n yHandle,\n xHandle,\n colHandle,\n rowHandle,\n }\n\n return context\n}\n\nfunction handleDrag(refs: Refs, event: DragEvent, ctx: Ctx | undefined, fn: (context: DragContext) => void) {\n const view = ctx?.get(editorViewCtx)\n if (!view?.editable)\n return\n\n event.stopPropagation()\n if (event.dataTransfer)\n event.dataTransfer.effectAllowed = 'move'\n\n const context = prepareDndContext(refs)\n\n if (!context)\n return\n\n // This is to avoid a chrome bug:\n // https://stackoverflow.com/questions/14203734/dragend-dragenter-and-dragleave-firing-off-immediately-when-i-drag\n requestAnimationFrame(() => {\n fn(context)\n })\n}\n\nexport function createDragRowHandler(refs: Refs, ctx?: Ctx) {\n return (event: DragEvent) => {\n handleDrag(refs, event, ctx, ({\n preview,\n content,\n previewRoot,\n yHandle,\n xHandle,\n colHandle,\n rowHandle,\n }) => {\n const { hoverIndex, dragInfo } = refs\n xHandle.dataset.displayType = 'indicator'\n yHandle.dataset.show = 'false'\n colHandle.dataset.show = 'false'\n rowHandle.querySelector('.button-group')?.setAttribute('data-show', 'false')\n\n const [rowIndex] = hoverIndex.current!\n\n dragInfo.current = {\n startCoords: [event.clientX, event.clientY],\n startIndex: rowIndex,\n endIndex: rowIndex,\n type: 'row',\n }\n preview.dataset.direction = 'vertical'\n\n const rows = content.querySelectorAll('tr')\n while (previewRoot.firstChild)\n previewRoot.removeChild(previewRoot.firstChild)\n\n const row = rows[rowIndex]\n if (!row)\n return\n\n previewRoot.appendChild(row.cloneNode(true))\n const height = row.getBoundingClientRect().height\n\n const { width } = content.querySelector('tbody')!.getBoundingClientRect()\n Object.assign(preview.style, {\n width: `${width}px`,\n height: `${height}px`,\n })\n\n preview.dataset.show = 'true'\n })\n }\n}\n\nexport function createDragColHandler(refs: Refs, ctx?: Ctx) {\n return (event: DragEvent) => {\n handleDrag(refs, event, ctx, ({\n preview,\n content,\n previewRoot,\n yHandle,\n xHandle,\n colHandle,\n rowHandle,\n }) => {\n const { hoverIndex, dragInfo } = refs\n xHandle.dataset.show = 'false'\n yHandle.dataset.displayType = 'indicator'\n rowHandle.dataset.show = 'false'\n colHandle.querySelector('.button-group')?.setAttribute('data-show', 'false')\n\n const [_, colIndex] = hoverIndex.current!\n\n dragInfo.current = {\n startCoords: [event.clientX, event.clientY],\n startIndex: colIndex,\n endIndex: colIndex,\n type: 'col',\n }\n preview.dataset.direction = 'horizontal'\n\n const rows = content.querySelectorAll('tr')\n while (previewRoot.firstChild)\n previewRoot.removeChild(previewRoot.firstChild)\n\n let width: number | undefined\n\n Array.from(rows).forEach((row) => {\n const col = row.children[colIndex]\n if (!col)\n return\n\n if (width === undefined)\n width = col.getBoundingClientRect().width\n\n const tr = col.parentElement!.cloneNode(false)\n const clone = col.cloneNode(true)\n tr.appendChild(clone)\n previewRoot.appendChild(tr)\n })\n\n const { height } = content.querySelector('tbody')!.getBoundingClientRect()\n Object.assign(preview.style, {\n width: `${width}px`,\n height: `${height}px`,\n })\n\n preview.dataset.show = 'true'\n })\n }\n}\n\nexport function createDragOverHandler(refs: Refs): (e: DragEvent) => void {\n return throttle((e: DragEvent) => {\n const context = prepareDndContext(refs)\n if (!context)\n return\n const {\n preview,\n content,\n contentRoot,\n xHandle,\n yHandle,\n } = context\n const {\n dragInfo,\n hoverIndex,\n } = refs\n\n if (preview.dataset.show === 'false')\n return\n const dom = getRelatedDOM(refs.contentWrapperRef, hoverIndex.current!)\n if (!dom)\n return\n const firstRow = contentRoot.querySelector('tr')\n if (!firstRow)\n return\n const info = dragInfo.current\n if (!info)\n return\n\n const wrapperOffsetTop = (contentRoot.offsetParent as HTMLElement).offsetTop\n const wrapperOffsetLeft = (contentRoot.offsetParent as HTMLElement).offsetLeft\n\n if (info.type === 'col') {\n const width = dom.col.getBoundingClientRect().width\n const { left, width: fullWidth } = contentRoot.getBoundingClientRect()\n const leftGap = wrapperOffsetLeft - left\n const previewLeft = e.clientX + leftGap - width / 2\n const previewRight = e.clientX + leftGap + width / 2\n\n const [startX] = info.startCoords\n const direction = startX < e.clientX ? 'right' : 'left'\n\n preview.style.top = `${wrapperOffsetTop}px`\n const previewLeftOffset = previewLeft < left + leftGap - 20\n ? left + leftGap - 20\n : previewLeft > left + fullWidth + leftGap - width + 20\n ? left + fullWidth + leftGap - width + 20\n : previewLeft\n\n preview.style.left = `${previewLeftOffset}px`\n\n const children = Array.from(firstRow.children)\n const col = children.find((col, index) => {\n const boundary = col.getBoundingClientRect()\n const boundaryLeft = boundary.left + wrapperOffsetLeft - left\n const boundaryRight = boundary.right + wrapperOffsetLeft - left\n if (direction === 'right') {\n if (boundaryLeft <= previewRight && boundaryRight >= previewRight)\n return true\n if (index === firstRow.children.length - 1 && previewRight > boundaryRight)\n return true\n }\n else {\n if (boundaryLeft <= previewLeft && boundaryRight >= previewLeft)\n return true\n if (index === 0 && previewLeft < boundaryLeft)\n return true\n }\n\n return false\n })\n if (col) {\n const yHandleWidth = yHandle.getBoundingClientRect().width\n const contentBoundary = content.getBoundingClientRect()\n const index = children.indexOf(col)\n info.endIndex = index\n\n computePosition(col, yHandle, {\n placement: direction === 'left' ? 'left' : 'right',\n middleware: [offset(direction === 'left' ? -1 * yHandleWidth : 0)],\n })\n .then(({ x }) => {\n yHandle.dataset.show = 'true'\n Object.assign(yHandle.style, {\n height: `${contentBoundary.height}px`,\n left: `${x}px`,\n top: `${wrapperOffsetTop}px`,\n })\n })\n }\n }\n else if (info.type === 'row') {\n const height = dom.row.getBoundingClientRect().height\n const { top, height: fullHeight } = contentRoot.getBoundingClientRect()\n\n const topGap = wrapperOffsetTop - top\n const previewTop = e.clientY + topGap - height / 2\n const previewBottom = e.clientY + topGap + height / 2\n\n const [_, startY] = info.startCoords\n const direction = startY < e.clientY ? 'down' : 'up'\n\n const previewTopOffset = previewTop < top + topGap - 20\n ? top + topGap - 20\n : previewTop > top + fullHeight + topGap - height + 20\n ? top + fullHeight + topGap - height + 20\n : previewTop\n\n preview.style.top = `${previewTopOffset}px`\n preview.style.left = `${wrapperOffsetLeft}px`\n\n const rows = Array.from(contentRoot.querySelectorAll('tr'))\n const row = rows.find((row, index) => {\n const boundary = row.getBoundingClientRect()\n const boundaryTop = boundary.top + wrapperOffsetTop - top\n const boundaryBottom = boundary.bottom + wrapperOffsetTop - top\n if (direction === 'down') {\n if (boundaryTop <= previewBottom && boundaryBottom >= previewBottom)\n return true\n if (index === rows.length - 1 && previewBottom > boundaryBottom)\n return true\n }\n else {\n if (boundaryTop <= previewTop && boundaryBottom >= previewTop)\n return true\n if (index === 0 && previewTop < boundaryTop)\n return true\n }\n return false\n })\n if (row) {\n const xHandleHeight = xHandle.getBoundingClientRect().height\n const contentBoundary = content.getBoundingClientRect()\n const index = rows.indexOf(row)\n info.endIndex = index\n\n computePosition(row, xHandle, {\n placement: direction === 'up' ? 'top' : 'bottom',\n middleware: [offset(direction === 'up' ? -1 * xHandleHeight : 0)],\n })\n .then(({ y }) => {\n xHandle.dataset.show = 'true'\n Object.assign(xHandle.style, {\n width: `${contentBoundary.width}px`,\n top: `${y}px`,\n })\n })\n }\n }\n }, 20)\n}\n\nexport function useDragHandlers(\n refs: Refs,\n ctx?: Ctx,\n getPos?: () => number | undefined,\n) {\n const {\n dragPreviewRef,\n yLineHandleRef,\n xLineHandleRef,\n dragInfo,\n } = refs\n const host = useHost()\n const root = useMemo(() => host.current.getRootNode() as HTMLElement, [host])\n\n const dragRow = useMemo(() => createDragRowHandler(refs, ctx), [refs])\n const dragCol = useMemo(() => createDragColHandler(refs, ctx), [refs])\n\n useEffect(() => {\n const onDragEnd = () => {\n const preview = dragPreviewRef.current\n if (!preview)\n return\n\n if (preview.dataset.show === 'false')\n return\n\n const previewRoot = preview?.querySelector('tbody')\n\n while (previewRoot?.firstChild)\n previewRoot?.removeChild(previewRoot.firstChild)\n\n if (preview)\n preview.dataset.show = 'false'\n }\n\n const onDrop = () => {\n const preview = dragPreviewRef.current\n if (!preview)\n return\n const yHandle = yLineHandleRef.current\n if (!yHandle)\n return\n const xHandle = xLineHandleRef.current\n if (!xHandle)\n return\n const info = dragInfo.current\n if (!info)\n return\n if (!ctx)\n return\n if (preview.dataset.show === 'false')\n return\n const colHandle = refs.colHandleRef.current\n if (!colHandle)\n return\n const rowHandle = refs.rowHandleRef.current\n if (!rowHandle)\n return\n\n yHandle.dataset.show = 'false'\n xHandle.dataset.show = 'false'\n\n if (info.startIndex === info.endIndex)\n return\n\n const commands = ctx.get(commandsCtx)\n const payload = {\n from: info.startIndex,\n to: info.endIndex,\n pos: (getPos?.() ?? 0) + 1,\n }\n if (info.type === 'col') {\n commands.call(selectColCommand.key, {\n pos: payload.pos,\n index: info.startIndex,\n })\n commands.call(moveColCommand.key, payload)\n const index: CellIndex = [0, info.endIndex]\n computeColHandlePositionByIndex({\n refs,\n index,\n })\n }\n else {\n commands.call(selectRowCommand.key, {\n pos: payload.pos,\n index: info.startIndex,\n })\n commands.call(moveRowCommand.key, payload)\n const index: CellIndex = [info.endIndex, 0]\n computeRowHandlePositionByIndex({\n refs,\n index,\n })\n }\n }\n const onDragOver = createDragOverHandler(refs)\n\n root.addEventListener('dragover', onDragOver)\n root.addEventListener('dragend', onDragEnd)\n root.addEventListener('drop', onDrop)\n return () => {\n root.removeEventListener('dragover', onDragOver)\n root.removeEventListener('dragend', onDragEnd)\n root.removeEventListener('drop', onDrop)\n }\n }, [])\n\n return {\n dragRow,\n dragCol,\n }\n}\n","import { computePosition, offset } from '@floating-ui/dom'\nimport type { EditorView } from '@milkdown/prose/view'\nimport throttle from 'lodash.throttle'\nimport { useMemo } from 'atomico'\nimport type { Refs } from './types'\nimport {\n computeColHandlePositionByIndex,\n computeRowHandlePositionByIndex,\n findPointerIndex,\n getRelatedDOM,\n} from './utils'\n\nexport function createPointerMoveHandler(refs: Refs, view?: EditorView): (e: PointerEvent) => void {\n return throttle((e: PointerEvent) => {\n if (!view?.editable)\n return\n const {\n contentWrapperRef,\n yLineHandleRef,\n xLineHandleRef,\n colHandleRef,\n rowHandleRef,\n hoverIndex,\n lineHoverIndex,\n } = refs\n const yHandle = yLineHandleRef.current\n if (!yHandle)\n return\n const xHandle = xLineHandleRef.current\n if (!xHandle)\n return\n const content = contentWrapperRef.current\n if (!content)\n return\n const rowHandle = rowHandleRef.current\n if (!rowHandle)\n return\n const colHandle = colHandleRef.current\n if (!colHandle)\n return\n\n const index = findPointerIndex(e, view)\n if (!index)\n return\n\n const dom = getRelatedDOM(contentWrapperRef, index)\n if (!dom)\n return\n\n const [rowIndex, colIndex] = index\n const boundary = dom.col.getBoundingClientRect()\n const closeToBoundaryLeft = Math.abs(e.clientX - boundary.left) < 8\n const closeToBoundaryRight = Math.abs(boundary.right - e.clientX) < 8\n const closeToBoundaryTop = Math.abs(e.clientY - boundary.top) < 8\n const closeToBoundaryBottom = Math.abs(boundary.bottom - e.clientY) < 8\n\n const closeToBoundary = closeToBoundaryLeft || closeToBoundaryRight || closeToBoundaryTop || closeToBoundaryBottom\n\n const rowButtonGroup = rowHandle.querySelector<HTMLElement>('.button-group')\n const colButtonGroup = colHandle.querySelector<HTMLElement>('.button-group')\n if (rowButtonGroup)\n rowButtonGroup.dataset.show = 'false'\n if (colButtonGroup)\n colButtonGroup.dataset.show = 'false'\n\n if (closeToBoundary) {\n const contentBoundary = content.getBoundingClientRect()\n rowHandle.dataset.show = 'false'\n colHandle.dataset.show = 'false'\n xHandle.dataset.displayType = 'tool'\n yHandle.dataset.displayType = 'tool'\n\n const yHandleWidth = yHandle.getBoundingClientRect().width\n const xHandleHeight = xHandle.getBoundingClientRect().height\n\n // display vertical line handle\n if (closeToBoundaryLeft || closeToBoundaryRight) {\n lineHoverIndex.current![1] = closeToBoundaryLeft ? colIndex : colIndex + 1\n computePosition(dom.col, yHandle, {\n placement: closeToBoundaryLeft ? 'left' : 'right',\n middleware: [offset(closeToBoundaryLeft ? -1 * yHandleWidth : 0)],\n })\n .then(({ x }) => {\n yHandle.dataset.show = 'true'\n Object.assign(yHandle.style, {\n height: `${contentBoundary.height}px`,\n left: `${x}px`,\n })\n })\n }\n else {\n yHandle.dataset.show = 'false'\n }\n\n // display horizontal line handle\n // won't display if the row is the header row\n if (index[0] !== 0 && (closeToBoundaryTop || closeToBoundaryBottom)) {\n lineHoverIndex.current![0] = closeToBoundaryTop ? rowIndex : rowIndex + 1\n computePosition(dom.row, xHandle, {\n placement: closeToBoundaryTop ? 'top' : 'bottom',\n middleware: [offset(closeToBoundaryTop ? -1 * xHandleHeight : 0)],\n })\n .then(({ y }) => {\n xHandle.dataset.show = 'true'\n Object.assign(xHandle.style, {\n width: `${contentBoundary.width}px`,\n top: `${y}px`,\n })\n })\n }\n else {\n xHandle.dataset.show = 'false'\n }\n\n return\n }\n\n lineHoverIndex.current = [-1, -1]\n\n yHandle.dataset.show = 'false'\n xHandle.dataset.show = 'false'\n rowHandle.dataset.show = 'true'\n colHandle.dataset.show = 'true'\n\n computeRowHandlePositionByIndex({\n refs,\n index,\n })\n computeColHandlePositionByIndex({\n refs,\n index,\n })\n hoverIndex.current = index\n }, 20)\n}\n\nexport function createPointerLeaveHandler(refs: Refs): () => void {\n return () => {\n const {\n rowHandleRef,\n colHandleRef,\n yLineHandleRef,\n xLineHandleRef,\n } = refs\n setTimeout(() => {\n const rowHandle = rowHandleRef.current\n if (!rowHandle)\n return\n const colHandle = colHandleRef.current\n if (!colHandle)\n return\n const yHandle = yLineHandleRef.current\n if (!yHandle)\n return\n const xHandle = xLineHandleRef.current\n if (!xHandle)\n return\n\n rowHandle.dataset.show = 'false'\n colHandle.dataset.show = 'false'\n yHandle.dataset.show = 'false'\n xHandle.dataset.show = 'false'\n }, 200)\n }\n}\n\nexport function usePointerHandlers(refs: Refs, view?: EditorView) {\n const pointerMove = useMemo(() => createPointerMoveHandler(refs, view), [])\n const pointerLeave = useMemo(() => createPointerLeaveHandler(refs), [])\n\n return {\n pointerMove,\n pointerLeave,\n }\n}\n","import { useCallback } from 'atomico'\nimport { commandsCtx, editorViewCtx } from '@milkdown/core'\nimport {\n addColAfterCommand,\n addColBeforeCommand,\n addRowAfterCommand,\n addRowBeforeCommand,\n deleteSelectedCellsCommand,\n selectColCommand,\n selectRowCommand,\n setAlignCommand,\n} from '@milkdown/preset-gfm'\nimport type { Ctx } from '@milkdown/ctx'\nimport type { Refs } from './types'\n\nexport function useOperation(refs: Refs, ctx?: Ctx, getPos?: () => number | undefined) {\n const {\n xLineHandleRef,\n contentWrapperRef,\n colHandleRef,\n rowHandleRef,\n hoverIndex,\n lineHoverIndex,\n } = refs\n\n const onAddRow = useCallback(() => {\n if (!ctx)\n return\n const xHandle = xLineHandleRef.current\n if (!xHandle)\n return\n\n const [rowIndex] = lineHoverIndex.current!\n if (rowIndex < 0)\n return\n\n if (!ctx.get(editorViewCtx).editable)\n return\n\n const rows = Array.from(contentWrapperRef.current?.querySelectorAll('tr') ?? [])\n const commands = ctx.get(commandsCtx)\n const pos = (getPos?.() ?? 0) + 1\n if (rows.length === rowIndex) {\n commands.call(selectRowCommand.key, { pos, index: rowIndex - 1 })\n commands.call(addRowAfterCommand.key)\n }\n else {\n commands.call(selectRowCommand.key, { pos, index: rowIndex })\n commands.call(addRowBeforeCommand.key)\n }\n\n commands.call(selectRowCommand.key, { pos, index: rowIndex })\n xHandle.dataset.show = 'false'\n }, [])\n\n const onAddCol = useCallback(() => {\n if (!ctx)\n return\n const xHandle = xLineHandleRef.current\n if (!xHandle)\n return\n\n const [_, colIndex] = lineHoverIndex.current!\n if (colIndex < 0)\n return\n\n if (!ctx.get(editorViewCtx).editable)\n return\n\n const cols = Array.from(contentWrapperRef.current?.querySelector('tr')?.children ?? [])\n const commands = ctx.get(commandsCtx)\n\n const pos = (getPos?.() ?? 0) + 1\n if (cols.length === colIndex) {\n commands.call(selectColCommand.key, { pos, index: colIndex - 1 })\n commands.call(addColAfterCommand.key)\n }\n else {\n commands.call(selectColCommand.key, { pos, index: colIndex })\n commands.call(addColBeforeCommand.key)\n }\n\n commands.call(selectColCommand.key, { pos, index: colIndex })\n }, [])\n\n const selectCol = useCallback(() => {\n if (!ctx)\n return\n const [_, colIndex] = hoverIndex.current!\n const commands = ctx.get(commandsCtx)\n const pos = (getPos?.() ?? 0) + 1\n commands.call(selectColCommand.key, { pos, index: colIndex })\n const buttonGroup = colHandleRef.current?.querySelector<HTMLElement>('.button-group')\n if (buttonGroup)\n buttonGroup.dataset.show = buttonGroup.dataset.show === 'true' ? 'false' : 'true'\n }, [])\n\n const selectRow = useCallback(() => {\n if (!ctx)\n return\n const [rowIndex, _] = hoverIndex.current!\n const commands = ctx.get(commandsCtx)\n const pos = (getPos?.() ?? 0) + 1\n commands.call(selectRowCommand.key, { pos, index: rowIndex })\n const buttonGroup = rowHandleRef.current?.querySelector<HTMLElement>('.button-group')\n if (buttonGroup && rowIndex > 0)\n buttonGroup.dataset.show = buttonGroup.dataset.show === 'true' ? 'false' : 'true'\n }, [])\n\n const deleteSelected = useCallback((e: PointerEvent) => {\n if (!ctx)\n return\n\n if (!ctx.get(editorViewCtx).editable)\n return\n\n e.preventDefault()\n e.stopPropagation()\n const commands = ctx.get(commandsCtx)\n commands.call(deleteSelectedCellsCommand.key)\n }, [])\n\n const onAlign = useCallback((direction: 'left' | 'center' | 'right') =>\n (e: PointerEvent) => {\n if (!ctx)\n return\n\n if (!ctx.get(editorViewCtx).editable)\n return\n\n e.preventDefault()\n e.stopPropagation()\n const commands = ctx.get(commandsCtx)\n commands.call(setAlignCommand.key, direction)\n }, [])\n\n return {\n onAddRow,\n onAddCol,\n selectCol,\n selectRow,\n deleteSelected,\n onAlign,\n }\n}\n","import type { Component } from 'atomico'\nimport { c, html, useHost, useLayoutEffect, useMemo, useRef } from 'atomico'\nimport type { Node } from '@milkdown/prose/model'\nimport type { EditorView } from '@milkdown/prose/view'\nimport type { Ctx } from '@milkdown/ctx'\n\nimport clsx from 'clsx'\nimport type { TableBlockConfig } from '../config'\nimport { useDragHandlers } from './drag'\nimport type { CellIndex, DragInfo, Refs } from './types'\nimport { recoveryStateBetweenUpdate } from './utils'\nimport { usePointerHandlers } from './pointer'\nimport { useOperation } from './operation'\n\nexport interface TableComponentProps {\n view: EditorView\n ctx: Ctx\n getPos: () => number | undefined\n node: Node\n config: TableBlockConfig\n}\n\nexport const tableComponent: Component<TableComponentProps> = ({\n view,\n ctx,\n getPos,\n node,\n config,\n}) => {\n const host = useHost()\n const contentWrapperRef = useRef<HTMLDivElement>()\n const colHandleRef = useRef<HTMLDivElement>()\n const rowHandleRef = useRef<HTMLDivElement>()\n const xLineHandleRef = useRef<HTMLDivElement>()\n const yLineHandleRef = useRef<HTMLDivElement>()\n const tableWrapperRef = useRef<HTMLDivElement>()\n const dragPreviewRef = useRef<HTMLDivElement>()\n const hoverIndex = useRef<CellIndex>([0, 0])\n const lineHoverIndex = useRef<CellIndex>([-1, -1])\n const dragInfo = useRef<DragInfo>()\n const refs: Refs = useMemo(() => {\n return {\n dragPreviewRef,\n tableWrapperRef,\n contentWrapperRef,\n yLineHandleRef,\n xLineHandleRef,\n colHandleRef,\n rowHandleRef,\n hoverIndex,\n lineHoverIndex,\n dragInfo,\n }\n }, [])\n\n useLayoutEffect(() => {\n const current = contentWrapperRef.current\n if (!current)\n return\n\n const contentDOM = host.current.querySelector('[data-content-dom]')\n\n if (contentDOM)\n current.appendChild(contentDOM)\n\n if (view?.editable)\n recoveryStateBetweenUpdate(refs, ctx, node)\n }, [])\n\n const { pointerLeave, pointerMove } = usePointerHandlers(refs, view)\n const { dragRow, dragCol } = useDragHandlers(refs, ctx, getPos)\n const {\n onAddRow,\n onAddCol,\n selectCol,\n selectRow,\n deleteSelected,\n onAlign,\n } = useOperation(refs, ctx, getPos)\n\n return html`\n <host\n class=${clsx(!view?.editable && 'readonly')}\n ondragstart=${(e: DragEvent) => e.preventDefault()}\n ondragover=${(e: DragEvent) => e.preventDefault()}\n ondragleave=${(e: DragEvent) => e.preventDefault()}\n onpointermove=${pointerMove}\n onpointerleave=${pointerLeave}\n >\n <button\n data-show=\"false\"\n contenteditable=\"false\"\n draggable=\"true\"\n data-role=\"col-drag-handle\"\n class=\"handle cell-handle\"\n ondragstart=${dragCol}\n onclick=${selectCol}\n onpointerdown=${(e: PointerEvent) => e.stopPropagation()}\n onpointermove=${(e: PointerEvent) => e.stopPropagation()}\n ref=${colHandleRef}\n >\n ${config?.renderButton('col_drag_handle')}\n <div\n data-show=\"false\"\n class=\"button-group\"\n onpointermove=${(e: PointerEvent) => e.stopPropagation}\n >\n <button onpointerdown=${onAlign('left')}>\n ${config?.renderButton('align_col_left')}\n </button>\n <button onpointerdown=${onAlign('center')}>\n ${config?.renderButton('align_col_center')}\n </button>\n <button onpointerdown=${onAlign('right')}>\n ${config?.renderButton('align_col_right')}\n </button>\n <button onpointerdown=${deleteSelected}>\n ${config?.renderButton('delete_col')}\n </button>\n </div>\n </button>\n <button\n data-show=\"false\"\n contenteditable=\"false\"\n draggable=\"true\"\n data-role=\"row-drag-handle\"\n class=\"handle cell-handle\"\n ondragstart=${dragRow}\n onclick=${selectRow}\n onpointerdown=${(e: PointerEvent) => e.stopPropagation()}\n onpointermove=${(e: PointerEvent) => e.stopPropagation()}\n ref=${rowHandleRef}\n >\n ${config?.renderButton('row_drag_handle')}\n <div\n data-show=\"false\"\n class=\"button-group\"\n onpointermove=${(e: PointerEvent) => e.stopPropagation}\n >\n <button onpointerdown=${deleteSelected}>\n ${config?.renderButton('delete_row')}\n </button>\n </div>\n </button>\n <div class=\"table-wrapper\" ref=${tableWrapperRef}>\n <div\n data-show=\"false\"\n class=\"drag-preview\"\n data-direction=\"vertical\"\n ref=${dragPreviewRef}\n >\n <table>\n <tbody>\n </tbody>\n </table>\n </div>\n <div\n data-show=\"false\"\n contenteditable=\"false\"\n data-display-type=\"tool\"\n data-role=\"x-line-drag-handle\"\n class=\"handle line-handle\"\n onpointermove=${(e: PointerEvent) => e.stopPropagation}\n ref=${xLineHandleRef}\n >\n <button onclick=${onAddRow} class=\"add-button\">\n ${config?.renderButton('add_row')}\n </button>\n </div>\n <div\n data-show=\"false\"\n contenteditable=\"false\"\n data-display-type=\"tool\"\n data-role=\"y-line-drag-handle\"\n class=\"handle line-handle\"\n onpointermove=${(e: PointerEvent) => e.stopPropagation}\n ref=${yLineHandleRef}\n >\n <button onclick=${onAddCol} class=\"add-button\">\n ${config?.renderButton('add_col')}\n </button>\n </div>\n <table ref=${contentWrapperRef} class=\"children\"></table>\n </div>\n </host>\n `\n}\n\ntableComponent.props = {\n getPos: Function,\n view: Object,\n ctx: Object,\n node: Object,\n config: Object,\n}\n\nexport const TableElement = c(tableComponent)\n","import { $view } from '@milkdown/utils'\nimport { tableSchema } from '@milkdown/preset-gfm'\nimport type { Node } from '@milkdown/prose/model'\nimport type { EditorView, NodeView, NodeViewConstructor } from '@milkdown/prose/view'\nimport type { Ctx } from '@milkdown/ctx'\nimport { NodeSelection } from '@milkdown/prose/state'\nimport { findParent } from '@milkdown/prose'\nimport { CellSelection } from '@milkdown/prose/tables'\nimport { defIfNotExists } from '../../__internal__/helper'\nimport { tableBlockConfig } from '../config'\nimport { withMeta } from '../../__internal__/meta'\nimport type { TableComponentProps } from './component'\nimport { TableElement } from './component'\n\nexport class TableNodeView implements NodeView {\n dom: HTMLElement & TableComponentProps\n contentDOM: HTMLElement\n constructor(\n public ctx: Ctx,\n public node: Node,\n public view: EditorView,\n public getPos: () => number | undefined,\n ) {\n const dom = document.createElement('milkdown-table-block') as HTMLElement & TableComponentProps\n this.dom = dom\n dom.view = view\n dom.ctx = ctx\n dom.getPos = getPos\n dom.node = node\n dom.config = ctx.get(tableBlockConfig.key)\n\n const contentDOM = document.createElement('tbody')\n this.contentDOM = contentDOM\n contentDOM.setAttribute('data-content-dom', 'true')\n contentDOM.classList.add('content-dom')\n\n dom.appendChild(contentDOM)\n }\n\n update(node: Node) {\n if (node.type !== this.node.type)\n return false\n\n if (node.sameMarkup(this.node) && node.content.eq(this.node.content))\n return false\n\n this.node = node\n this.dom.node = node\n\n return true\n }\n\n #handleClick(event: PointerEvent) {\n const view = this.view\n if (!view.editable)\n return false\n\n const { state, dispatch } = view\n const pos = view.posAtCoords({ left: event.clientX, top: event.clientY })\n\n if (!pos)\n return false\n\n const $pos = state.doc.resolve(pos.inside)\n const node = findParent(node => node.type.name === 'table_cell' || node.type.name === 'table_header')($pos)\n if (!node)\n return false\n\n const { from } = node\n\n const selection = NodeSelection.create(state.doc, from + 1)\n if (state.selection.eq(selection))\n return false\n\n if (state.selection instanceof CellSelection) {\n setTimeout(() => {\n dispatch(state.tr.setSelection(selection).scrollIntoView())\n }, 20)\n }\n else {\n requestAnimationFrame(() => {\n dispatch(state.tr.setSelection(selection).scrollIntoView())\n })\n }\n return true\n }\n\n stopEvent(e: Event) {\n if (e.type === 'drop' || e.type.startsWith('drag'))\n return true\n\n if (e.type === 'mousedown') {\n if (e.target instanceof HTMLButtonElement)\n return true\n\n const target = e.target\n if (target instanceof HTMLElement && (target.closest('th') || target.closest('td'))) {\n const event = e as PointerEvent\n return this.#handleClick(event)\n }\n }\n\n return false\n }\n\n ignoreMutation(mutation: MutationRecord) {\n if (!this.dom || !this.contentDOM)\n return true\n\n if ((mutation.type as unknown) === 'selection')\n return false\n\n if (this.contentDOM === mutation.target && mutation.type === 'attributes')\n return true\n\n if (this.contentDOM.contains(mutation.target))\n return false\n\n return true\n }\n}\n\ndefIfNotExists('milkdown-table-block', TableElement)\nexport const tableBlockView = $view(tableSchema.node, (ctx): NodeViewConstructor => {\n return (initialNode, view, getPos) => {\n return new TableNodeView(ctx, initialNode, view, getPos)\n }\n})\n\nwithMeta(tableBlockView, {\n displayName: 'NodeView<table-block>',\n group: 'TableBlock',\n})\n","import type { MilkdownPlugin } from '@milkdown/ctx'\nimport { tableBlockView } from './view'\nimport { tableBlockConfig } from './config'\n\nexport * from './view'\nexport * from './config'\n\nexport const tableBlock: MilkdownPlugin[] = [\n tableBlockConfig,\n tableBlockView,\n]\n","import { tableBlock, tableBlockConfig } from '@milkdown/kit/component/table-block'\nimport type { DefineFeature, Icon } from '../shared'\nimport {\n alignCenterIcon,\n alignLeftIcon,\n alignRightIcon,\n dragHandleIcon,\n plusIcon,\n removeIcon,\n} from '../../icons'\n\ninterface TableConfig {\n addRowIcon: Icon\n addColIcon: Icon\n deleteRowIcon: Icon\n deleteColIcon: Icon\n alignLeftIcon: Icon\n alignCenterIcon: Icon\n alignRightIcon: Icon\n colDragHandleIcon: Icon\n rowDragHandleIcon: Icon\n}\n\nexport type TableFeatureConfig = Partial<TableConfig>\n\nexport const defineFeature: DefineFeature<TableFeatureConfig> = (editor, config) => {\n editor.config((ctx) => {\n ctx.update(tableBlockConfig.key, defaultConfig => ({\n ...defaultConfig,\n renderButton: (renderType) => {\n switch (renderType) {\n case 'add_row':\n return config?.addRowIcon?.() ?? plusIcon\n case 'add_col':\n return config?.addColIcon?.() ?? plusIcon\n case 'delete_row':\n return config?.deleteRowIcon?.() ?? removeIcon\n case 'delete_col':\n return config?.deleteColIcon?.() ?? removeIcon\n case 'align_col_left':\n return config?.alignLeftIcon?.() ?? alignLeftIcon\n case 'align_col_center':\n return config?.alignCenterIcon?.() ?? alignCenterIcon\n case 'align_col_right':\n return config?.alignRightIcon?.() ?? alignRightIcon\n case 'col_drag_handle':\n return config?.colDragHandleIcon?.() ?? dragHandleIcon\n case 'row_drag_handle':\n return config?.rowDragHandleIcon?.() ?? dragHandleIcon\n }\n },\n }))\n }).use(tableBlock)\n}\n"],"names":["node","col","row"],"mappings":"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"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { w as withMeta } from './meta-3ZYGAGrY.js';
|
|
3
|
-
import { b as $remark, v as visit, $ as $ctx, i as imageSchema } from './index-JkHHp3K-.js';
|
|
1
|
+
import { w as withMeta, i as imageIcon, g as confirmIcon, h as captionIcon } from './todoList-M-PGJKde.js';
|
|
4
2
|
import { html, useHost, useMemo, useEffect, c, useRef, useState } from 'atomico';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import '
|
|
3
|
+
import { b as $remark, v as visit, $ as $ctx, i as imageSchema } from './index-LAdX6LsO.js';
|
|
4
|
+
import { I as IMAGE_DATA_TYPE, i as imageBlockSchema } from './schema-JWJqD9qa.js';
|
|
5
|
+
import { d as defIfNotExists } from './helper-wZAtC67x.js';
|
|
6
|
+
import { c as clsx } from './clsx-RxCLxYpD.js';
|
|
7
|
+
import { $ as $view } from './_view-IlZC8FA6.js';
|
|
9
8
|
import '@milkdown/prose/model';
|
|
10
|
-
import '@milkdown/prose/keymap';
|
|
11
|
-
import '@milkdown/prose/commands';
|
|
12
9
|
import '@milkdown/prose';
|
|
13
|
-
import '@milkdown/prose/
|
|
10
|
+
import '@milkdown/prose/commands';
|
|
14
11
|
import '@milkdown/prose/inputrules';
|
|
15
|
-
import '@milkdown/prose/
|
|
12
|
+
import '@milkdown/prose/keymap';
|
|
13
|
+
import '@milkdown/prose/state';
|
|
16
14
|
import '@milkdown/prose/view';
|
|
15
|
+
import '@milkdown/prose/schema-list';
|
|
17
16
|
import '@milkdown/prose/transform';
|
|
17
|
+
import '@milkdown/prose/history';
|
|
18
|
+
import '@milkdown/prose/tables';
|
|
18
19
|
|
|
19
20
|
function visitImage(ast) {
|
|
20
21
|
return visit(ast, "paragraph", (node, index, parent) => {
|
|
@@ -45,8 +46,8 @@ withMeta(remarkImageBlockPlugin.options, {
|
|
|
45
46
|
});
|
|
46
47
|
|
|
47
48
|
const defaultImageBlockConfig = {
|
|
48
|
-
imageIcon: () =>
|
|
49
|
-
captionIcon: () =>
|
|
49
|
+
imageIcon: () => "\u{1F30C}",
|
|
50
|
+
captionIcon: () => "\u{1F4AC}",
|
|
50
51
|
uploadButton: () => html`Upload file`,
|
|
51
52
|
confirmButton: () => html`Confirm ⏎`,
|
|
52
53
|
uploadPlaceholderText: "or paste the image link ...",
|
|
@@ -339,7 +340,7 @@ const imageBlockComponent = [
|
|
|
339
340
|
].flat();
|
|
340
341
|
|
|
341
342
|
const defaultInlineImageConfig = {
|
|
342
|
-
imageIcon: () =>
|
|
343
|
+
imageIcon: () => "\u{1F30C}",
|
|
343
344
|
uploadButton: () => html`Upload`,
|
|
344
345
|
confirmButton: () => html`⏎`,
|
|
345
346
|
uploadPlaceholderText: "/Paste",
|
|
@@ -500,50 +501,32 @@ const imageInlineComponent = [
|
|
|
500
501
|
inlineImageView
|
|
501
502
|
];
|
|
502
503
|
|
|
503
|
-
const
|
|
504
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
505
|
-
<g clip-path="url(#clip0_1013_1596)">
|
|
506
|
-
<path d="M19 5V19H5V5H19ZM19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3ZM14.14 11.86L11.14 15.73L9 13.14L6 17H18L14.14 11.86Z" fill="#817567"/>
|
|
507
|
-
</g>
|
|
508
|
-
<defs>
|
|
509
|
-
<clipPath id="clip0_1013_1596">
|
|
510
|
-
<rect width="24" height="24" fill="white"/>
|
|
511
|
-
</clipPath>
|
|
512
|
-
</defs>
|
|
513
|
-
</svg>
|
|
514
|
-
`;
|
|
515
|
-
const confirmIcon = html`
|
|
516
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
|
517
|
-
<g clip-path="url(#clip0_1013_1606)">
|
|
518
|
-
<path d="M9.00012 16.1998L5.50012 12.6998C5.11012 12.3098 4.49012 12.3098 4.10012 12.6998C3.71012 13.0898 3.71012 13.7098 4.10012 14.0998L8.29012 18.2898C8.68012 18.6798 9.31012 18.6798 9.70012 18.2898L20.3001 7.69982C20.6901 7.30982 20.6901 6.68982 20.3001 6.29982C19.9101 5.90982 19.2901 5.90982 18.9001 6.29982L9.00012 16.1998Z" fill="#817567"/>
|
|
519
|
-
</g>
|
|
520
|
-
<defs>
|
|
521
|
-
<clipPath id="clip0_1013_1606">
|
|
522
|
-
<rect width="24" height="24" fill="white"/>
|
|
523
|
-
</clipPath>
|
|
524
|
-
</defs>
|
|
525
|
-
</svg>
|
|
526
|
-
`;
|
|
527
|
-
const captionIcon = html`
|
|
528
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 24 24"><path fill="currentColor" d="M9 22a1 1 0 0 1-1-1v-3H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6.1l-3.7 3.71c-.2.19-.45.29-.7.29zm1-6v3.08L13.08 16H20V4H4v12z"/></svg>
|
|
529
|
-
`;
|
|
530
|
-
const defineFeature = (editor) => {
|
|
504
|
+
const defineFeature = (editor, config) => {
|
|
531
505
|
editor.config((ctx) => {
|
|
532
|
-
ctx.update(inlineImageConfig.key, (value) =>
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
506
|
+
ctx.update(inlineImageConfig.key, (value) => {
|
|
507
|
+
var _a, _b, _c, _d, _e, _f;
|
|
508
|
+
return {
|
|
509
|
+
uploadButton: (_a = config == null ? void 0 : config.inlineUploadButton) != null ? _a : () => "Upload",
|
|
510
|
+
imageIcon: (_b = config == null ? void 0 : config.inlineImageIcon) != null ? _b : () => imageIcon,
|
|
511
|
+
confirmButton: (_c = config == null ? void 0 : config.inlineConfirmButton) != null ? _c : () => confirmIcon,
|
|
512
|
+
uploadPlaceholderText: (_d = config == null ? void 0 : config.inlineUploadPlaceholderText) != null ? _d : "or paste link",
|
|
513
|
+
onUpload: (_f = (_e = config == null ? void 0 : config.inlineOnUpload) != null ? _e : config == null ? void 0 : config.onUpload) != null ? _f : value.onUpload
|
|
514
|
+
};
|
|
515
|
+
});
|
|
516
|
+
ctx.update(imageBlockConfig.key, (value) => {
|
|
517
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
518
|
+
return {
|
|
519
|
+
uploadButton: (_a = config == null ? void 0 : config.blockUploadButton) != null ? _a : () => "Upload file",
|
|
520
|
+
imageIcon: (_b = config == null ? void 0 : config.blockImageIcon) != null ? _b : () => imageIcon,
|
|
521
|
+
captionIcon: (_c = config == null ? void 0 : config.blockCaptionIcon) != null ? _c : () => captionIcon,
|
|
522
|
+
confirmButton: (_d = config == null ? void 0 : config.blockConfirmButton) != null ? _d : () => "Confirm",
|
|
523
|
+
captionPlaceholderText: (_e = config == null ? void 0 : config.blockCaptionPlaceholderText) != null ? _e : "Write Image Caption",
|
|
524
|
+
uploadPlaceholderText: (_f = config == null ? void 0 : config.blockUploadPlaceholderText) != null ? _f : "or paste link",
|
|
525
|
+
onUpload: (_h = (_g = config == null ? void 0 : config.blockOnUpload) != null ? _g : config == null ? void 0 : config.onUpload) != null ? _h : value.onUpload
|
|
526
|
+
};
|
|
527
|
+
});
|
|
545
528
|
}).use(imageBlockComponent).use(imageInlineComponent);
|
|
546
529
|
};
|
|
547
530
|
|
|
548
531
|
export { defineFeature };
|
|
549
|
-
//# sourceMappingURL=index-
|
|
532
|
+
//# sourceMappingURL=index-9w_hdnvb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-9w_hdnvb.js","sources":["../../../components/src/image-block/remark-plugin.ts","../../../components/src/image-block/config.ts","../../../components/src/image-block/view/event.ts","../../../components/src/image-block/view/component.ts","../../../components/src/image-block/view/index.ts","../../../components/src/image-block/index.ts","../../../components/src/image-inline/config.ts","../../../components/src/image-inline/component.ts","../../../components/src/image-inline/view.ts","../../../components/src/image-inline/index.ts","../../src/feature/image-block/index.ts"],"sourcesContent":["import type { Node } from '@milkdown/transformer'\nimport { visit } from 'unist-util-visit'\nimport { $remark } from '@milkdown/utils'\nimport { withMeta } from '../__internal__/meta'\n\nfunction visitImage(ast: Node) {\n return visit(ast, 'paragraph', (node: Node & { children?: Node[] }, index: number, parent: Node & { children: Node[] }) => {\n if (node.children?.length !== 1)\n return\n const firstChild = node.children?.[0]\n if (!firstChild || firstChild.type !== 'image')\n return\n\n const { url, alt, title } = firstChild as Node & { url: string, alt: string, title: string }\n const newNode = {\n type: 'image-block',\n url,\n alt,\n title,\n }\n\n parent.children.splice(index, 1, newNode)\n })\n}\n\nexport const remarkImageBlockPlugin = $remark('remark-image-block', () => () => visitImage)\n\nwithMeta(remarkImageBlockPlugin.plugin, {\n displayName: 'Remark<remarkImageBlock>',\n group: 'ImageBlock',\n})\n\nwithMeta(remarkImageBlockPlugin.options, {\n displayName: 'RemarkConfig<remarkImageBlock>',\n group: 'ImageBlock',\n})\n","import { $ctx } from '@milkdown/utils'\nimport { html } from 'atomico'\nimport { withMeta } from '../__internal__/meta'\n\nexport interface ImageBlockConfig {\n imageIcon: () => ReturnType<typeof html> | string | HTMLElement\n captionIcon: () => ReturnType<typeof html> | string | HTMLElement\n uploadButton: () => ReturnType<typeof html> | string | HTMLElement\n confirmButton: () => ReturnType<typeof html> | string | HTMLElement\n uploadPlaceholderText: string\n captionPlaceholderText: string\n onUpload: (file: File) => Promise<string>\n}\n\nexport const defaultImageBlockConfig: ImageBlockConfig = {\n imageIcon: () => '🌌',\n captionIcon: () => '💬',\n uploadButton: () => html`Upload file`,\n confirmButton: () => html`Confirm ⏎`,\n uploadPlaceholderText: 'or paste the image link ...',\n captionPlaceholderText: 'Image caption',\n onUpload: file => Promise.resolve(URL.createObjectURL(file)),\n}\n\nexport const imageBlockConfig = $ctx(defaultImageBlockConfig, 'imageBlockConfigCtx')\n\nwithMeta(imageBlockConfig, {\n displayName: 'Config<image-block>',\n group: 'ImageBlock',\n})\n","import { type Ref, useEffect, useHost, useMemo } from 'atomico'\n\ninterface Options {\n image: Ref<HTMLImageElement>\n resizeHandle: Ref<HTMLDivElement>\n ratio: number\n setRatio: (ratio: number) => void\n src: string\n}\n\nexport function useBlockEffect({\n image,\n resizeHandle,\n ratio,\n setRatio,\n src,\n}: Options) {\n const host = useHost()\n const root = useMemo(() => host.current.getRootNode() as HTMLElement, [host])\n\n useEffect(() => {\n const imageRef = image.current\n if (!imageRef)\n return\n\n delete imageRef.dataset.origin\n delete imageRef.dataset.height\n imageRef.style.height = ''\n }, [src])\n\n useEffect(() => {\n const resizeHandleRef = resizeHandle.current\n const imageRef = image.current\n if (!resizeHandleRef || !imageRef)\n return\n const onMove = (e: PointerEvent) => {\n e.preventDefault()\n const top = imageRef.getBoundingClientRect().top\n const height = e.clientY - top\n const h = Number(height < 100 ? 100 : height).toFixed(2)\n imageRef.dataset.height = h\n imageRef.style.height = `${h}px`\n }\n const pointerUp = () => {\n root.removeEventListener('pointermove', onMove)\n root.removeEventListener('pointerup', pointerUp)\n const originHeight = Number(imageRef.dataset.origin)\n const currentHeight = Number(imageRef.dataset.height)\n const ratio = Number.parseFloat(Number(currentHeight / originHeight).toFixed(2))\n if (Number.isNaN(ratio))\n return\n\n setRatio(ratio)\n }\n\n const pointerDown = (e: PointerEvent) => {\n e.preventDefault()\n root.addEventListener('pointermove', onMove)\n root.addEventListener('pointerup', pointerUp)\n }\n\n const onLoad = (e: Event) => {\n const maxWidth = host.current.getBoundingClientRect().width\n if (!maxWidth)\n return\n\n const target = e.target as HTMLImageElement\n const height = target.height\n const width = target.width\n const transformedHeight = width < maxWidth ? height : maxWidth * (height / width)\n const h = (transformedHeight * ratio).toFixed(2)\n imageRef.dataset.origin = transformedHeight.toFixed(2)\n imageRef.dataset.height = h\n imageRef.style.height = `${h}px`\n }\n\n imageRef.addEventListener('load', onLoad)\n resizeHandleRef.addEventListener('pointerdown', pointerDown)\n return () => {\n imageRef.removeEventListener('load', onLoad)\n resizeHandleRef.removeEventListener('pointerdown', pointerDown)\n }\n }, [])\n}\n","import type { Component } from 'atomico'\nimport { c, html, useEffect, useRef, useState } from 'atomico'\nimport clsx from 'clsx'\nimport type { ImageBlockConfig } from '../config'\nimport { IMAGE_DATA_TYPE } from '../schema'\nimport { useBlockEffect } from './event'\n\nexport interface Attrs {\n src: string\n caption: string\n ratio: number\n}\n\nexport type ImageComponentProps = Attrs & {\n config: ImageBlockConfig\n selected: boolean\n readonly: boolean\n setAttr: <T extends keyof Attrs>(attr: T, value: Attrs[T]) => void\n}\n\nlet timer: number = 0\n\nexport const imageComponent: Component<ImageComponentProps> = ({\n src = '',\n caption = '',\n ratio = 1,\n selected = false,\n readonly = false,\n setAttr,\n config,\n}) => {\n const image = useRef<HTMLImageElement>()\n const resizeHandle = useRef<HTMLDivElement>()\n const linkInput = useRef<HTMLInputElement>()\n const [showCaption, setShowCaption] = useState(caption.length > 0)\n const [hidePlaceholder, setHidePlaceholder] = useState(src.length !== 0)\n const [uuid] = useState(crypto.randomUUID())\n const [focusLinkInput, setFocusLinkInput] = useState(false)\n const [currentLink, setCurrentLink] = useState(src)\n\n useBlockEffect({\n image,\n resizeHandle,\n ratio,\n setRatio: r => setAttr?.('ratio', r),\n src,\n })\n\n useEffect(() => {\n if (selected)\n return\n\n setShowCaption(caption.length > 0)\n }, [selected])\n\n const onInput = (e: InputEvent) => {\n const target = e.target as HTMLInputElement\n const value = target.value\n if (timer)\n window.clearTimeout(timer)\n\n timer = window.setTimeout(() => {\n setAttr?.('caption', value)\n }, 1000)\n }\n\n const onBlurCaption = (e: InputEvent) => {\n const target = e.target as HTMLInputElement\n const value = target.value\n if (timer) {\n window.clearTimeout(timer)\n timer = 0\n }\n\n setAttr?.('caption', value)\n }\n\n const onEditLink = (e: InputEvent) => {\n const target = e.target as HTMLInputElement\n const value = target.value\n setHidePlaceholder(value.length !== 0)\n setCurrentLink(value)\n }\n\n const onUpload = async (e: InputEvent) => {\n const file = (e.target as HTMLInputElement).files?.[0]\n if (!file)\n return\n\n const url = await config?.onUpload(file)\n if (!url)\n return\n\n setAttr?.('src', url)\n setHidePlaceholder(true)\n }\n\n const onToggleCaption = (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n if (readonly)\n return\n setShowCaption(x => !x)\n }\n\n const onConfirmLinkInput = () => {\n setAttr?.('src', linkInput.current?.value ?? '')\n }\n\n const onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter')\n onConfirmLinkInput()\n }\n\n const preventDrag = (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n }\n\n const onClickUploader = (e: PointerEvent) => {\n e.stopPropagation()\n e.preventDefault()\n }\n\n return html`<host class=${clsx(selected && 'selected')}>\n <div class=${clsx('image-edit', src.length > 0 && 'hidden')}>\n <div class=\"image-icon\">\n ${config?.imageIcon()}\n </div>\n <div class=${clsx('link-importer', focusLinkInput && 'focus')}>\n <input\n ref=${linkInput}\n draggable=\"true\"\n ondragstart=${preventDrag}\n disabled=${readonly}\n class=\"link-input-area\"\n value=${currentLink}\n oninput=${onEditLink}\n onkeydown=${onKeydown}\n onfocus=${() => setFocusLinkInput(true)}\n onblur=${() => setFocusLinkInput(false)}\n />\n <div class=${clsx('placeholder', hidePlaceholder && 'hidden')}>\n <input disabled=${readonly} class=\"hidden\" id=${uuid} type=\"file\" accept=\"image/*\" onchange=${onUpload} />\n <label onpointerdown=${onClickUploader} class=\"uploader\" for=${uuid}>\n ${config?.uploadButton()}\n </label>\n <span class=\"text\" onclick=${() => linkInput.current?.focus()}>\n ${config?.uploadPlaceholderText}\n </span>\n </div>\n </div>\n <div\n class=${clsx('confirm', currentLink.length === 0 && 'hidden')}\n onclick=${() => onConfirmLinkInput()}\n >\n ${config?.confirmButton()}\n </div>\n </div>\n <div class=${clsx('image-wrapper', src.length === 0 && 'hidden')}>\n <div class=\"operation\">\n <div class=\"operation-item\" onpointerdown=${onToggleCaption}>${config?.captionIcon()}</div>\n </div>\n <img ref=${image} data-type=${IMAGE_DATA_TYPE} src=${src} alt=${caption} ratio=${ratio} />\n <div ref=${resizeHandle} class=\"image-resize-handle\"></div>\n </div>\n <input\n draggable=\"true\"\n ondragstart=${preventDrag}\n class=${clsx('caption-input', !showCaption && 'hidden')}\n placeholder=${config?.captionPlaceholderText}\n oninput=${onInput}\n onblur=${onBlurCaption}\n value=${caption}\n />\n </host>`\n}\n\nimageComponent.props = {\n src: String,\n caption: String,\n ratio: Number,\n selected: Boolean,\n readonly: Boolean,\n setAttr: Function,\n config: Object,\n}\n\nexport const ImageElement = c(imageComponent)\n","import { $view } from '@milkdown/utils'\nimport type { NodeViewConstructor } from '@milkdown/prose/view'\nimport type { Node } from '@milkdown/prose/model'\nimport { imageBlockSchema } from '../schema'\nimport { imageBlockConfig } from '../config'\nimport { withMeta } from '../../__internal__/meta'\nimport { defIfNotExists } from '../../__internal__/helper'\nimport type { ImageComponentProps } from './component'\nimport { ImageElement } from './component'\n\ndefIfNotExists('milkdown-image-block', ImageElement)\nexport const imageBlockView = $view(imageBlockSchema.node, (ctx): NodeViewConstructor => {\n return (initialNode, view, getPos) => {\n const dom = document.createElement('milkdown-image-block') as HTMLElement & ImageComponentProps\n const config = ctx.get(imageBlockConfig.key)\n const bindAttrs = (node: Node) => {\n dom.src = node.attrs.src\n dom.ratio = node.attrs.ratio\n dom.caption = node.attrs.caption\n\n dom.readonly = !view.editable\n }\n\n bindAttrs(initialNode)\n dom.selected = false\n dom.setAttr = (attr, value) => {\n const pos = getPos()\n if (pos == null)\n return\n\n view.dispatch(view.state.tr.setNodeAttribute(pos, attr, value))\n }\n dom.config = config\n return {\n dom,\n update: (updatedNode) => {\n if (updatedNode.type !== initialNode.type)\n return false\n\n bindAttrs(updatedNode)\n return true\n },\n stopEvent: (e) => {\n if (e.target instanceof HTMLInputElement)\n return true\n\n return false\n },\n selectNode: () => {\n dom.selected = true\n },\n deselectNode: () => {\n dom.selected = false\n },\n destroy: () => {\n dom.remove()\n },\n }\n }\n})\n\nwithMeta(imageBlockView, {\n displayName: 'NodeView<image-block>',\n group: 'ImageBlock',\n})\n","import type { MilkdownPlugin } from '@milkdown/ctx'\nimport { imageBlockSchema } from './schema'\nimport { remarkImageBlockPlugin } from './remark-plugin'\nimport { imageBlockView } from './view'\nimport { imageBlockConfig } from './config'\n\nexport * from './schema'\nexport * from './remark-plugin'\nexport * from './config'\nexport * from './view'\n\nexport const imageBlockComponent: MilkdownPlugin[] = [\n remarkImageBlockPlugin,\n imageBlockSchema,\n imageBlockView,\n imageBlockConfig,\n].flat()\n","import { $ctx } from '@milkdown/utils'\nimport { html } from 'atomico'\nimport { withMeta } from '../__internal__/meta'\n\nexport interface InlineImageConfig {\n imageIcon: () => ReturnType<typeof html>\n uploadButton: () => ReturnType<typeof html>\n confirmButton: () => ReturnType<typeof html>\n uploadPlaceholderText: string\n onUpload: (file: File) => Promise<string>\n}\n\nexport const defaultInlineImageConfig: InlineImageConfig = {\n imageIcon: () => '🌌',\n uploadButton: () => html`Upload`,\n confirmButton: () => html`⏎`,\n uploadPlaceholderText: '/Paste',\n onUpload: file => Promise.resolve(URL.createObjectURL(file)),\n}\n\nexport const inlineImageConfig = $ctx(defaultInlineImageConfig, 'inlineImageConfigCtx')\n\nwithMeta(inlineImageConfig, {\n displayName: 'Config<image-inline>',\n group: 'ImageInline',\n})\n","import { c, html, useRef, useState } from 'atomico'\nimport type { Component } from 'atomico'\nimport clsx from 'clsx'\nimport type { InlineImageConfig } from './config'\n\nexport interface Attrs {\n src: string\n alt: string\n title: string\n}\n\nexport type InlineImageComponentProps = Attrs & {\n setAttr: <T extends keyof Attrs>(attr: T, value: Attrs[T]) => void\n selected: boolean\n config: InlineImageConfig\n}\n\nexport const inlineImageComponent: Component<InlineImageComponentProps> = ({\n src = '',\n selected = false,\n alt,\n title,\n setAttr,\n config,\n}) => {\n const linkInput = useRef<HTMLInputElement>()\n const [uuid] = useState(crypto.randomUUID())\n const [focusLinkInput, setFocusLinkInput] = useState(false)\n const [hidePlaceholder, setHidePlaceholder] = useState(src.length !== 0)\n const [currentLink, setCurrentLink] = useState(src)\n\n const onEditLink = (e: InputEvent) => {\n const target = e.target as HTMLInputElement\n const value = target.value\n setHidePlaceholder(value.length !== 0)\n setCurrentLink(value)\n }\n\n const onUpload = async (e: InputEvent) => {\n const file = (e.target as HTMLInputElement).files?.[0]\n if (!file)\n return\n\n const url = await config?.onUpload(file)\n if (!url)\n return\n\n setAttr?.('src', url)\n setHidePlaceholder(true)\n }\n\n const onConfirmLinkInput = () => {\n setAttr?.('src', linkInput.current?.value ?? '')\n }\n\n const onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter')\n onConfirmLinkInput()\n }\n\n const preventDrag = (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n }\n\n const onClickUploader = (e: PointerEvent) => {\n e.stopPropagation()\n e.preventDefault()\n }\n\n return html`<host class=${clsx(selected && 'selected', !src && 'empty')}>\n ${!src\n ? html`<div class=\"empty-image-inline\">\n <div class=\"image-icon\">\n ${config?.imageIcon()}\n </div>\n <div class=${clsx('link-importer', focusLinkInput && 'focus')}>\n <input\n draggable=\"true\"\n ref=${linkInput}\n ondragstart=${preventDrag}\n class=\"link-input-area\"\n value=${currentLink}\n oninput=${onEditLink}\n onkeydown=${onKeydown}\n onfocus=${() => setFocusLinkInput(true)}\n onblur=${() => setFocusLinkInput(false)}\n />\n <div class=${clsx('placeholder', hidePlaceholder && 'hidden')}>\n <input class=\"hidden\" id=${uuid} type=\"file\" accept=\"image/*\" onchange=${onUpload} />\n <label onpointerdown=${onClickUploader} class=\"uploader\" for=${uuid}>\n ${config?.uploadButton()}\n </label>\n <span class=\"text\" onclick=${() => linkInput.current?.focus()}>\n ${config?.uploadPlaceholderText}\n </span>\n </div>\n </div>\n <div\n class=${clsx('confirm', currentLink.length === 0 && 'hidden')}\n onclick=${() => onConfirmLinkInput()}\n >\n ${config?.confirmButton()}\n </div>\n </div>`\n : html`<img class=\"image-inline\" src=${src} alt=${alt} title=${title} />`\n }\n </host>`\n}\n\ninlineImageComponent.props = {\n src: String,\n alt: String,\n title: String,\n selected: Boolean,\n setAttr: Function,\n config: Object,\n}\n\nexport const InlineImageElement = c(inlineImageComponent)\n","import { $view } from '@milkdown/utils'\nimport type { NodeViewConstructor } from '@milkdown/prose/view'\nimport { imageSchema } from '@milkdown/preset-commonmark'\nimport type { Node } from '@milkdown/prose/model'\nimport { withMeta } from '../__internal__/meta'\nimport { defIfNotExists } from '../__internal__/helper'\nimport type { InlineImageComponentProps } from './component'\nimport { InlineImageElement } from './component'\nimport { inlineImageConfig } from './config'\n\ndefIfNotExists('milkdown-image-inline', InlineImageElement)\nexport const inlineImageView = $view(imageSchema.node, (ctx): NodeViewConstructor => {\n return (initialNode, view, getPos) => {\n const dom = document.createElement('milkdown-image-inline') as HTMLElement & InlineImageComponentProps\n const config = ctx.get(inlineImageConfig.key)\n const bindAttrs = (node: Node) => {\n dom.src = node.attrs.src\n dom.alt = node.attrs.alt\n dom.title = node.attrs.title\n }\n bindAttrs(initialNode)\n dom.selected = false\n dom.setAttr = (attr, value) => {\n const pos = getPos()\n if (pos == null)\n return\n\n view.dispatch(view.state.tr.setNodeAttribute(pos, attr, value))\n }\n dom.config = config\n return {\n dom,\n update: (updatedNode) => {\n if (updatedNode.type !== initialNode.type)\n return false\n\n bindAttrs(updatedNode)\n return true\n },\n stopEvent: (e) => {\n if (dom.selected && e.target instanceof HTMLInputElement)\n return true\n\n return false\n },\n selectNode: () => {\n dom.selected = true\n },\n deselectNode: () => {\n dom.selected = false\n },\n destroy: () => {\n dom.remove()\n },\n }\n }\n})\n\nwithMeta(inlineImageView, {\n displayName: 'NodeView<image-inline>',\n group: 'ImageInline',\n})\n","import type { MilkdownPlugin } from '@milkdown/ctx'\nimport { inlineImageConfig } from './config'\nimport { inlineImageView } from './view'\n\nexport * from './config'\nexport * from './view'\n\nexport const imageInlineComponent: MilkdownPlugin[] = [\n inlineImageConfig,\n inlineImageView,\n]\n","import { imageBlockComponent, imageBlockConfig } from '@milkdown/kit/component/image-block'\nimport { imageInlineComponent, inlineImageConfig } from '@milkdown/kit/component/image-inline'\nimport type { DefineFeature, Icon } from '../shared'\nimport { captionIcon, confirmIcon, imageIcon } from '../../icons'\n\ninterface ImageBlockConfig {\n onUpload: (file: File) => Promise<string>\n\n inlineImageIcon: Icon\n inlineConfirmButton: Icon\n inlineUploadButton: Icon\n inlineUploadPlaceholderText: string\n inlineOnUpload: (file: File) => Promise<string>\n\n blockImageIcon: Icon\n blockConfirmButton: Icon\n blockCaptionIcon: Icon\n blockUploadButton: Icon\n blockCaptionPlaceholderText: string\n blockUploadPlaceholderText: string\n blockOnUpload: (file: File) => Promise<string>\n}\n\nexport type ImageBlockFeatureConfig = Partial<ImageBlockConfig>\n\nexport const defineFeature: DefineFeature<ImageBlockFeatureConfig> = (editor, config) => {\n editor\n .config((ctx) => {\n ctx.update(inlineImageConfig.key, value => ({\n uploadButton: config?.inlineUploadButton ?? (() => 'Upload'),\n imageIcon: config?.inlineImageIcon ?? (() => imageIcon),\n confirmButton: config?.inlineConfirmButton ?? (() => confirmIcon),\n uploadPlaceholderText: config?.inlineUploadPlaceholderText ?? 'or paste link',\n onUpload: config?.inlineOnUpload ?? config?.onUpload ?? value.onUpload,\n }))\n ctx.update(imageBlockConfig.key, value => ({\n uploadButton: config?.blockUploadButton ?? (() => 'Upload file'),\n imageIcon: config?.blockImageIcon ?? (() => imageIcon),\n captionIcon: config?.blockCaptionIcon ?? (() => captionIcon),\n confirmButton: config?.blockConfirmButton ?? (() => 'Confirm'),\n captionPlaceholderText: config?.blockCaptionPlaceholderText ?? 'Write Image Caption',\n uploadPlaceholderText: config?.blockUploadPlaceholderText ?? 'or paste link',\n onUpload: config?.blockOnUpload ?? config?.onUpload ?? value.onUpload,\n }))\n })\n .use(imageBlockComponent)\n .use(imageInlineComponent)\n}\n"],"names":["ratio"],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { d as defIfNotExists } from './index-Jvxff1vU.js';
|
|
2
|
+
import { c, useUpdate, useEffect, html } from 'atomico';
|
|
3
|
+
import { c as clsx } from './clsx-RxCLxYpD.js';
|
|
4
|
+
import { D as boldIcon, E as italicIcon, F as strikethroughIcon, z as codeIcon, l as linkIcon } from './todoList-M-PGJKde.js';
|
|
5
|
+
import { b as linkTooltipAPI, t as tooltipFactory, T as TooltipProvider } from './tooltip-plugin-iw2EQWIG.js';
|
|
6
|
+
import { s as strongSchema, q as emphasisSchema, r as strikethroughSchema, t as inlineCodeSchema, a as linkSchema, e as editorViewCtx, u as commandsCtx, w as toggleStrongCommand, x as toggleEmphasisCommand, y as toggleStrikethroughCommand, z as toggleInlineCodeCommand } from './index-LAdX6LsO.js';
|
|
7
|
+
import { TextSelection } from '@milkdown/prose/state';
|
|
8
|
+
import './index-0-j8Icms.js';
|
|
9
|
+
import './floating-ui.dom-CAYjY8Gv.js';
|
|
10
|
+
import '@milkdown/prose';
|
|
11
|
+
import '@milkdown/prose/model';
|
|
12
|
+
import '@milkdown/prose/commands';
|
|
13
|
+
import '@milkdown/prose/inputrules';
|
|
14
|
+
import '@milkdown/prose/keymap';
|
|
15
|
+
import '@milkdown/prose/view';
|
|
16
|
+
import '@milkdown/prose/schema-list';
|
|
17
|
+
import '@milkdown/prose/transform';
|
|
18
|
+
import '@milkdown/prose/history';
|
|
19
|
+
import '@milkdown/prose/tables';
|
|
20
|
+
|
|
21
|
+
const toolbarComponent = ({
|
|
22
|
+
ctx,
|
|
23
|
+
hide,
|
|
24
|
+
show,
|
|
25
|
+
config
|
|
26
|
+
}) => {
|
|
27
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
28
|
+
const update = useUpdate();
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
update();
|
|
31
|
+
}, [show]);
|
|
32
|
+
const onClick = (fn) => (e) => {
|
|
33
|
+
e.preventDefault();
|
|
34
|
+
ctx && fn(ctx);
|
|
35
|
+
update();
|
|
36
|
+
};
|
|
37
|
+
const isActive = (mark) => {
|
|
38
|
+
if (!ctx)
|
|
39
|
+
return false;
|
|
40
|
+
const view = ctx.get(editorViewCtx);
|
|
41
|
+
const { state: { doc, selection } } = view;
|
|
42
|
+
return doc.rangeHasMark(selection.from, selection.to, mark);
|
|
43
|
+
};
|
|
44
|
+
return html`<host>
|
|
45
|
+
<button
|
|
46
|
+
class=${clsx("toolbar-item", ctx && isActive(strongSchema.type(ctx)) && "active")}
|
|
47
|
+
onmousedown=${onClick((ctx2) => {
|
|
48
|
+
const commands = ctx2.get(commandsCtx);
|
|
49
|
+
commands.call(toggleStrongCommand.key);
|
|
50
|
+
})}
|
|
51
|
+
>
|
|
52
|
+
${(_b = (_a = config == null ? void 0 : config.boldIcon) == null ? void 0 : _a.call(config)) != null ? _b : boldIcon}
|
|
53
|
+
</button>
|
|
54
|
+
<button
|
|
55
|
+
class=${clsx("toolbar-item", ctx && isActive(emphasisSchema.type(ctx)) && "active")}
|
|
56
|
+
onmousedown=${onClick((ctx2) => {
|
|
57
|
+
const commands = ctx2.get(commandsCtx);
|
|
58
|
+
commands.call(toggleEmphasisCommand.key);
|
|
59
|
+
})}
|
|
60
|
+
>
|
|
61
|
+
${(_d = (_c = config == null ? void 0 : config.italicIcon) == null ? void 0 : _c.call(config)) != null ? _d : italicIcon}
|
|
62
|
+
</button>
|
|
63
|
+
<button
|
|
64
|
+
class=${clsx("toolbar-item", ctx && isActive(strikethroughSchema.type(ctx)) && "active")}
|
|
65
|
+
onmousedown=${onClick((ctx2) => {
|
|
66
|
+
const commands = ctx2.get(commandsCtx);
|
|
67
|
+
commands.call(toggleStrikethroughCommand.key);
|
|
68
|
+
})}
|
|
69
|
+
>
|
|
70
|
+
${(_f = (_e = config == null ? void 0 : config.strikethroughIcon) == null ? void 0 : _e.call(config)) != null ? _f : strikethroughIcon}
|
|
71
|
+
</button>
|
|
72
|
+
<div class="divider"></div>
|
|
73
|
+
<button
|
|
74
|
+
class=${clsx("toolbar-item", ctx && isActive(inlineCodeSchema.type(ctx)) && "active")}
|
|
75
|
+
onmousedown=${onClick((ctx2) => {
|
|
76
|
+
const commands = ctx2.get(commandsCtx);
|
|
77
|
+
commands.call(toggleInlineCodeCommand.key);
|
|
78
|
+
})}
|
|
79
|
+
>
|
|
80
|
+
${(_h = (_g = config == null ? void 0 : config.codeIcon) == null ? void 0 : _g.call(config)) != null ? _h : codeIcon}
|
|
81
|
+
</button>
|
|
82
|
+
<button
|
|
83
|
+
class=${clsx("toolbar-item", ctx && isActive(linkSchema.type(ctx)) && "active")}
|
|
84
|
+
onmousedown=${onClick((ctx2) => {
|
|
85
|
+
const view = ctx2.get(editorViewCtx);
|
|
86
|
+
const { selection } = view.state;
|
|
87
|
+
if (isActive(linkSchema.type(ctx2))) {
|
|
88
|
+
ctx2.get(linkTooltipAPI.key).removeLink(selection.from, selection.to);
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
ctx2.get(linkTooltipAPI.key).addLink(selection.from, selection.to);
|
|
92
|
+
hide == null ? void 0 : hide();
|
|
93
|
+
})}
|
|
94
|
+
>
|
|
95
|
+
${(_j = (_i = config == null ? void 0 : config.linkIcon) == null ? void 0 : _i.call(config)) != null ? _j : linkIcon}
|
|
96
|
+
</button>
|
|
97
|
+
</host>`;
|
|
98
|
+
};
|
|
99
|
+
toolbarComponent.props = {
|
|
100
|
+
ctx: Object,
|
|
101
|
+
hide: Function,
|
|
102
|
+
show: Boolean,
|
|
103
|
+
config: Object
|
|
104
|
+
};
|
|
105
|
+
const ToolbarElement = c(toolbarComponent);
|
|
106
|
+
|
|
107
|
+
var __typeError = (msg) => {
|
|
108
|
+
throw TypeError(msg);
|
|
109
|
+
};
|
|
110
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
111
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
112
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
113
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
114
|
+
var _tooltipProvider, _content;
|
|
115
|
+
const toolbar = tooltipFactory("CREPE_TOOLBAR");
|
|
116
|
+
class ToolbarView {
|
|
117
|
+
constructor(ctx, view, config) {
|
|
118
|
+
__privateAdd(this, _tooltipProvider);
|
|
119
|
+
__privateAdd(this, _content);
|
|
120
|
+
this.update = (view, prevState) => {
|
|
121
|
+
__privateGet(this, _tooltipProvider).update(view, prevState);
|
|
122
|
+
};
|
|
123
|
+
this.destroy = () => {
|
|
124
|
+
__privateGet(this, _tooltipProvider).destroy();
|
|
125
|
+
__privateGet(this, _content).remove();
|
|
126
|
+
};
|
|
127
|
+
this.hide = () => {
|
|
128
|
+
__privateGet(this, _tooltipProvider).hide();
|
|
129
|
+
};
|
|
130
|
+
const content = new ToolbarElement();
|
|
131
|
+
__privateSet(this, _content, content);
|
|
132
|
+
__privateGet(this, _content).ctx = ctx;
|
|
133
|
+
__privateGet(this, _content).hide = this.hide;
|
|
134
|
+
__privateGet(this, _content).config = config;
|
|
135
|
+
__privateSet(this, _tooltipProvider, new TooltipProvider({
|
|
136
|
+
content: __privateGet(this, _content),
|
|
137
|
+
debounce: 20,
|
|
138
|
+
offset: 10,
|
|
139
|
+
shouldShow(view2) {
|
|
140
|
+
const { doc, selection } = view2.state;
|
|
141
|
+
const { empty, from, to } = selection;
|
|
142
|
+
const isEmptyTextBlock = !doc.textBetween(from, to).length && selection instanceof TextSelection;
|
|
143
|
+
const isNotTextBlock = !(selection instanceof TextSelection);
|
|
144
|
+
const activeElement = view2.dom.getRootNode().activeElement;
|
|
145
|
+
const isTooltipChildren = content.contains(activeElement);
|
|
146
|
+
const notHasFocus = !view2.hasFocus() && !isTooltipChildren;
|
|
147
|
+
const isReadonly = !view2.editable;
|
|
148
|
+
if (notHasFocus || isNotTextBlock || empty || isEmptyTextBlock || isReadonly)
|
|
149
|
+
return false;
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
}));
|
|
153
|
+
__privateGet(this, _tooltipProvider).onShow = () => {
|
|
154
|
+
__privateGet(this, _content).show = true;
|
|
155
|
+
};
|
|
156
|
+
__privateGet(this, _tooltipProvider).onHide = () => {
|
|
157
|
+
__privateGet(this, _content).show = false;
|
|
158
|
+
};
|
|
159
|
+
this.update(view);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
_tooltipProvider = new WeakMap();
|
|
163
|
+
_content = new WeakMap();
|
|
164
|
+
defIfNotExists("milkdown-toolbar", ToolbarElement);
|
|
165
|
+
const defineFeature = (editor, config) => {
|
|
166
|
+
editor.config((ctx) => {
|
|
167
|
+
ctx.set(toolbar.key, {
|
|
168
|
+
view: (view) => new ToolbarView(ctx, view, config)
|
|
169
|
+
});
|
|
170
|
+
}).use(toolbar);
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
export { defineFeature };
|
|
174
|
+
//# sourceMappingURL=index-A83StUe6.js.map
|