@notectl/core 1.7.3 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +56 -31
- package/custom-elements.json +350 -6
- package/dist/chunks/AttrRegistry-Ckj9eCHj.mjs +2 -0
- package/dist/chunks/AttrRegistry-Ckj9eCHj.mjs.map +1 -0
- package/dist/chunks/AttributedMarkCommands-x7h4Xy7V.mjs +2 -0
- package/dist/chunks/AttributedMarkCommands-x7h4Xy7V.mjs.map +1 -0
- package/dist/chunks/BlockInsertion-zPxm6oa_.mjs +2 -0
- package/dist/chunks/BlockInsertion-zPxm6oa_.mjs.map +1 -0
- package/dist/chunks/BlockTypePickerRegistry-DcSE6IXB.mjs +2 -0
- package/dist/chunks/BlockTypePickerRegistry-DcSE6IXB.mjs.map +1 -0
- package/dist/chunks/ColorGrid-CpkbKfXg.mjs +2 -0
- package/dist/chunks/ColorGrid-CpkbKfXg.mjs.map +1 -0
- package/dist/chunks/ColorPickerPopup-CDUvkgcK.mjs +2 -0
- package/dist/chunks/ColorPickerPopup-CDUvkgcK.mjs.map +1 -0
- package/dist/chunks/ColorValidation-DCSKq9B2.mjs +2 -0
- package/dist/chunks/{ColorValidation-CV4f1wu6.mjs.map → ColorValidation-DCSKq9B2.mjs.map} +1 -1
- package/dist/chunks/Commands-DwXBBVGR.mjs +2 -0
- package/dist/chunks/Commands-DwXBBVGR.mjs.map +1 -0
- package/dist/chunks/Decoration-D49mFXrH.mjs +2 -0
- package/dist/chunks/Decoration-D49mFXrH.mjs.map +1 -0
- package/dist/chunks/Document-HC8s50qJ.mjs +2 -0
- package/dist/chunks/Document-HC8s50qJ.mjs.map +1 -0
- package/dist/chunks/DocumentParser-w70-Axud.mjs +2 -0
- package/dist/chunks/DocumentParser-w70-Axud.mjs.map +1 -0
- package/dist/chunks/DomUtils-CznMAZZg.mjs +2 -0
- package/dist/chunks/DomUtils-CznMAZZg.mjs.map +1 -0
- package/dist/chunks/HTMLUtils-Cxy99Ak2.mjs +2 -0
- package/dist/chunks/HTMLUtils-Cxy99Ak2.mjs.map +1 -0
- package/dist/chunks/HeadingPlugin-B-LF-AMM.mjs +2 -0
- package/dist/chunks/HeadingPlugin-B-LF-AMM.mjs.map +1 -0
- package/dist/chunks/KeyboardNav-DsYhKKuV.mjs +2 -0
- package/dist/chunks/KeyboardNav-DsYhKKuV.mjs.map +1 -0
- package/dist/chunks/MarkCommands-CTuVDqnn.mjs +2 -0
- package/dist/chunks/MarkCommands-CTuVDqnn.mjs.map +1 -0
- package/dist/chunks/NavigationQueries-DCOv4Ca5.mjs +2 -0
- package/dist/chunks/NavigationQueries-DCOv4Ca5.mjs.map +1 -0
- package/dist/chunks/NotectlEditor-DBBJkPCW.mjs +3 -0
- package/dist/chunks/NotectlEditor-DBBJkPCW.mjs.map +1 -0
- package/dist/chunks/Platform-CU6itXZo.mjs +2 -0
- package/dist/chunks/Platform-CU6itXZo.mjs.map +1 -0
- package/dist/chunks/PluginHelpers-CdPR0MuT.mjs +2 -0
- package/dist/chunks/PluginHelpers-CdPR0MuT.mjs.map +1 -0
- package/dist/chunks/PopupManager-Du3dYnsJ.mjs +2 -0
- package/dist/chunks/PopupManager-Du3dYnsJ.mjs.map +1 -0
- package/dist/chunks/PopupPositioning-DtvqMSop.mjs +2 -0
- package/dist/chunks/PopupPositioning-DtvqMSop.mjs.map +1 -0
- package/dist/chunks/PrintTypes-DukwDSWS.mjs +2 -0
- package/dist/chunks/PrintTypes-DukwDSWS.mjs.map +1 -0
- package/dist/chunks/RangeIterator-CprUbOWv.mjs +2 -0
- package/dist/chunks/{RangeIterator-Bh4Vl_6D.mjs.map → RangeIterator-CprUbOWv.mjs.map} +1 -1
- package/dist/chunks/Selection-DhbizDM4.mjs +2 -0
- package/dist/chunks/{Selection-BRTab5hO.mjs.map → Selection-DhbizDM4.mjs.map} +1 -1
- package/dist/chunks/SelectionTransactions-DB3YDIEa.mjs +2 -0
- package/dist/chunks/SelectionTransactions-DB3YDIEa.mjs.map +1 -0
- package/dist/chunks/ShortcutFormatting-BLKS0Gys.mjs +2 -0
- package/dist/chunks/ShortcutFormatting-BLKS0Gys.mjs.map +1 -0
- package/dist/chunks/StyleRuntime-BmsLoEa8.mjs +2 -0
- package/dist/chunks/{StyleRuntime-CP4NCwKT.mjs.map → StyleRuntime-BmsLoEa8.mjs.map} +1 -1
- package/dist/chunks/TextDirectionLocale-BraFI9JF.mjs +2 -0
- package/dist/chunks/TextDirectionLocale-BraFI9JF.mjs.map +1 -0
- package/dist/chunks/TypeBrands-Bp_Z_o5Y.mjs +2 -0
- package/dist/chunks/{TypeBrands-C09nE2qO.mjs.map → TypeBrands-Bp_Z_o5Y.mjs.map} +1 -1
- package/dist/chunks/XmlPatterns-DxQXGjP8.mjs +2 -0
- package/dist/chunks/XmlPatterns-DxQXGjP8.mjs.map +1 -0
- package/dist/chunks/ar-B93SPJT7.mjs +2 -0
- package/dist/chunks/ar-B93SPJT7.mjs.map +1 -0
- package/dist/chunks/ar-BAmGa08u.mjs +2 -0
- package/dist/chunks/ar-BAmGa08u.mjs.map +1 -0
- package/dist/chunks/ar-BYNFEVLc.mjs +2 -0
- package/dist/chunks/ar-BYNFEVLc.mjs.map +1 -0
- package/dist/chunks/ar-Bnc7y8BP.mjs +2 -0
- package/dist/chunks/ar-Bnc7y8BP.mjs.map +1 -0
- package/dist/chunks/ar-Bp3rDZky.mjs +2 -0
- package/dist/chunks/ar-Bp3rDZky.mjs.map +1 -0
- package/dist/chunks/ar-BtOQ7lro.mjs +2 -0
- package/dist/chunks/ar-BtOQ7lro.mjs.map +1 -0
- package/dist/chunks/ar-C5JEHhw9.mjs +2 -0
- package/dist/chunks/ar-C5JEHhw9.mjs.map +1 -0
- package/dist/chunks/ar-CL3QL0tw.mjs +2 -0
- package/dist/chunks/ar-CL3QL0tw.mjs.map +1 -0
- package/dist/chunks/ar-CYtG-XlN.mjs +2 -0
- package/dist/chunks/ar-CYtG-XlN.mjs.map +1 -0
- package/dist/chunks/ar-CzVj8p__.mjs +2 -0
- package/dist/chunks/ar-CzVj8p__.mjs.map +1 -0
- package/dist/chunks/ar-D7PS3e2g.mjs +2 -0
- package/dist/chunks/ar-D7PS3e2g.mjs.map +1 -0
- package/dist/chunks/ar-D8adM2Uy.mjs +2 -0
- package/dist/chunks/ar-D8adM2Uy.mjs.map +1 -0
- package/dist/chunks/ar-D9jyShaB.mjs +2 -0
- package/dist/chunks/ar-D9jyShaB.mjs.map +1 -0
- package/dist/chunks/ar-DR6OA3ZO.mjs +2 -0
- package/dist/chunks/ar-DR6OA3ZO.mjs.map +1 -0
- package/dist/chunks/ar-Deibepjm.mjs +2 -0
- package/dist/chunks/ar-Deibepjm.mjs.map +1 -0
- package/dist/chunks/ar-Dlb5riUN.mjs +2 -0
- package/dist/chunks/ar-Dlb5riUN.mjs.map +1 -0
- package/dist/chunks/ar-DmmxE2W7.mjs +2 -0
- package/dist/chunks/ar-DmmxE2W7.mjs.map +1 -0
- package/dist/chunks/ar-Ds6Z2Gzf.mjs +2 -0
- package/dist/chunks/ar-Ds6Z2Gzf.mjs.map +1 -0
- package/dist/chunks/ar-DtIHQ8nU.mjs +2 -0
- package/dist/chunks/ar-DtIHQ8nU.mjs.map +1 -0
- package/dist/chunks/ar-J8B-on-0.mjs +2 -0
- package/dist/chunks/ar-J8B-on-0.mjs.map +1 -0
- package/dist/chunks/ar-b6VdnxAs.mjs +2 -0
- package/dist/chunks/ar-b6VdnxAs.mjs.map +1 -0
- package/dist/chunks/ar-iU02mRe5.mjs +2 -0
- package/dist/chunks/ar-iU02mRe5.mjs.map +1 -0
- package/dist/chunks/ar-mSCYQYnL.mjs +2 -0
- package/dist/chunks/ar-mSCYQYnL.mjs.map +1 -0
- package/dist/chunks/color-picker-Byjl_xr9.mjs +2 -0
- package/dist/chunks/color-picker-Byjl_xr9.mjs.map +1 -0
- package/dist/chunks/de-8aCC5jBM.mjs +2 -0
- package/dist/chunks/de-8aCC5jBM.mjs.map +1 -0
- package/dist/chunks/de-B4y4ndUw.mjs +2 -0
- package/dist/chunks/de-B4y4ndUw.mjs.map +1 -0
- package/dist/chunks/de-B5fcZ0FQ.mjs +2 -0
- package/dist/chunks/de-B5fcZ0FQ.mjs.map +1 -0
- package/dist/chunks/de-BT9VmwoJ.mjs +2 -0
- package/dist/chunks/de-BT9VmwoJ.mjs.map +1 -0
- package/dist/chunks/de-BZWSyJTG.mjs +2 -0
- package/dist/chunks/de-BZWSyJTG.mjs.map +1 -0
- package/dist/chunks/de-CFD_Wgik.mjs +2 -0
- package/dist/chunks/de-CFD_Wgik.mjs.map +1 -0
- package/dist/chunks/de-CLYtb6kD.mjs +2 -0
- package/dist/chunks/de-CLYtb6kD.mjs.map +1 -0
- package/dist/chunks/de-CP5v-98M.mjs +2 -0
- package/dist/chunks/de-CP5v-98M.mjs.map +1 -0
- package/dist/chunks/de-CYJ6uWno.mjs +2 -0
- package/dist/chunks/de-CYJ6uWno.mjs.map +1 -0
- package/dist/chunks/de-ChcKkF7A.mjs +2 -0
- package/dist/chunks/de-ChcKkF7A.mjs.map +1 -0
- package/dist/chunks/de-CicoU066.mjs +2 -0
- package/dist/chunks/de-CicoU066.mjs.map +1 -0
- package/dist/chunks/de-CjLAdBt2.mjs +2 -0
- package/dist/chunks/de-CjLAdBt2.mjs.map +1 -0
- package/dist/chunks/de-CtFvAXwF.mjs +2 -0
- package/dist/chunks/de-CtFvAXwF.mjs.map +1 -0
- package/dist/chunks/de-D1OAXtxJ.mjs +2 -0
- package/dist/chunks/de-D1OAXtxJ.mjs.map +1 -0
- package/dist/chunks/de-DBbzCQrm.mjs +2 -0
- package/dist/chunks/de-DBbzCQrm.mjs.map +1 -0
- package/dist/chunks/de-DOLwx_M7.mjs +2 -0
- package/dist/chunks/de-DOLwx_M7.mjs.map +1 -0
- package/dist/chunks/de-De2miMxo.mjs +2 -0
- package/dist/chunks/de-De2miMxo.mjs.map +1 -0
- package/dist/chunks/de-OTfhhinm.mjs +2 -0
- package/dist/chunks/de-OTfhhinm.mjs.map +1 -0
- package/dist/chunks/de-PZ9-LlBp.mjs +2 -0
- package/dist/chunks/de-PZ9-LlBp.mjs.map +1 -0
- package/dist/chunks/de-UREymH-5.mjs +2 -0
- package/dist/chunks/de-UREymH-5.mjs.map +1 -0
- package/dist/chunks/de-chYdoK9q.mjs +2 -0
- package/dist/chunks/de-chYdoK9q.mjs.map +1 -0
- package/dist/chunks/de-fXvs5vQT.mjs +2 -0
- package/dist/chunks/de-fXvs5vQT.mjs.map +1 -0
- package/dist/chunks/de-xJh5C_pk.mjs +2 -0
- package/dist/chunks/de-xJh5C_pk.mjs.map +1 -0
- package/dist/chunks/es-B9UhsaEI.mjs +2 -0
- package/dist/chunks/es-B9UhsaEI.mjs.map +1 -0
- package/dist/chunks/es-BHGwPgrP.mjs +2 -0
- package/dist/chunks/es-BHGwPgrP.mjs.map +1 -0
- package/dist/chunks/es-BTqy_aQ4.mjs +2 -0
- package/dist/chunks/es-BTqy_aQ4.mjs.map +1 -0
- package/dist/chunks/es-BbGOZGS_.mjs +2 -0
- package/dist/chunks/es-BbGOZGS_.mjs.map +1 -0
- package/dist/chunks/es-BjPsub0k.mjs +2 -0
- package/dist/chunks/es-BjPsub0k.mjs.map +1 -0
- package/dist/chunks/es-Bk0bRDFE.mjs +2 -0
- package/dist/chunks/es-Bk0bRDFE.mjs.map +1 -0
- package/dist/chunks/es-BkS6DsrM.mjs +2 -0
- package/dist/chunks/es-BkS6DsrM.mjs.map +1 -0
- package/dist/chunks/es-BzEpr4Bk.mjs +2 -0
- package/dist/chunks/es-BzEpr4Bk.mjs.map +1 -0
- package/dist/chunks/es-C2lnWyA0.mjs +2 -0
- package/dist/chunks/es-C2lnWyA0.mjs.map +1 -0
- package/dist/chunks/es-C7e35Muh.mjs +2 -0
- package/dist/chunks/es-C7e35Muh.mjs.map +1 -0
- package/dist/chunks/es-CBk43isB.mjs +2 -0
- package/dist/chunks/es-CBk43isB.mjs.map +1 -0
- package/dist/chunks/es-CE8t9fuM.mjs +2 -0
- package/dist/chunks/es-CE8t9fuM.mjs.map +1 -0
- package/dist/chunks/es-CFjzqIbS.mjs +2 -0
- package/dist/chunks/es-CFjzqIbS.mjs.map +1 -0
- package/dist/chunks/es-Ce-AEYxc.mjs +2 -0
- package/dist/chunks/es-Ce-AEYxc.mjs.map +1 -0
- package/dist/chunks/es-Co4AJr8Y.mjs +2 -0
- package/dist/chunks/es-Co4AJr8Y.mjs.map +1 -0
- package/dist/chunks/es-Cu5_OA4X.mjs +2 -0
- package/dist/chunks/es-Cu5_OA4X.mjs.map +1 -0
- package/dist/chunks/es-Cud6JXHf.mjs +2 -0
- package/dist/chunks/es-Cud6JXHf.mjs.map +1 -0
- package/dist/chunks/es-D-II7LZC.mjs +2 -0
- package/dist/chunks/es-D-II7LZC.mjs.map +1 -0
- package/dist/chunks/es-DBBSeOaD.mjs +2 -0
- package/dist/chunks/es-DBBSeOaD.mjs.map +1 -0
- package/dist/chunks/es-DCwjeUUu.mjs +2 -0
- package/dist/chunks/es-DCwjeUUu.mjs.map +1 -0
- package/dist/chunks/es-DvgH3-WZ.mjs +2 -0
- package/dist/chunks/es-DvgH3-WZ.mjs.map +1 -0
- package/dist/chunks/es-MgguVgIs.mjs +2 -0
- package/dist/chunks/es-MgguVgIs.mjs.map +1 -0
- package/dist/chunks/es-yXjjcxgb.mjs +2 -0
- package/dist/chunks/es-yXjjcxgb.mjs.map +1 -0
- package/dist/chunks/fr-B-_yKIAY.mjs +2 -0
- package/dist/chunks/fr-B-_yKIAY.mjs.map +1 -0
- package/dist/chunks/fr-BGyF2ym0.mjs +2 -0
- package/dist/chunks/fr-BGyF2ym0.mjs.map +1 -0
- package/dist/chunks/fr-BoRJ3B2-.mjs +2 -0
- package/dist/chunks/fr-BoRJ3B2-.mjs.map +1 -0
- package/dist/chunks/fr-BrKk4SPg.mjs +2 -0
- package/dist/chunks/fr-BrKk4SPg.mjs.map +1 -0
- package/dist/chunks/fr-C-y09LKg.mjs +2 -0
- package/dist/chunks/fr-C-y09LKg.mjs.map +1 -0
- package/dist/chunks/fr-C1W7jyd6.mjs +2 -0
- package/dist/chunks/fr-C1W7jyd6.mjs.map +1 -0
- package/dist/chunks/fr-C8CtmWBj.mjs +2 -0
- package/dist/chunks/fr-C8CtmWBj.mjs.map +1 -0
- package/dist/chunks/fr-C9oiPW0k.mjs +2 -0
- package/dist/chunks/fr-C9oiPW0k.mjs.map +1 -0
- package/dist/chunks/fr-CEkk4UyZ.mjs +2 -0
- package/dist/chunks/fr-CEkk4UyZ.mjs.map +1 -0
- package/dist/chunks/fr-Ccaetiwi.mjs +2 -0
- package/dist/chunks/fr-Ccaetiwi.mjs.map +1 -0
- package/dist/chunks/fr-Ccku5KzA.mjs +2 -0
- package/dist/chunks/fr-Ccku5KzA.mjs.map +1 -0
- package/dist/chunks/fr-CfUg1FxU.mjs +2 -0
- package/dist/chunks/fr-CfUg1FxU.mjs.map +1 -0
- package/dist/chunks/fr-DDkBcjmO.mjs +2 -0
- package/dist/chunks/fr-DDkBcjmO.mjs.map +1 -0
- package/dist/chunks/fr-DNwLChcm.mjs +2 -0
- package/dist/chunks/fr-DNwLChcm.mjs.map +1 -0
- package/dist/chunks/fr-DvneSjCf.mjs +2 -0
- package/dist/chunks/fr-DvneSjCf.mjs.map +1 -0
- package/dist/chunks/fr-Dx4Qqimj.mjs +2 -0
- package/dist/chunks/fr-Dx4Qqimj.mjs.map +1 -0
- package/dist/chunks/fr-RHXmueoO.mjs +2 -0
- package/dist/chunks/fr-RHXmueoO.mjs.map +1 -0
- package/dist/chunks/fr-VdiCNF4J.mjs +2 -0
- package/dist/chunks/fr-VdiCNF4J.mjs.map +1 -0
- package/dist/chunks/fr-Wiobfk5s.mjs +2 -0
- package/dist/chunks/fr-Wiobfk5s.mjs.map +1 -0
- package/dist/chunks/fr-YMiDtWuG.mjs +2 -0
- package/dist/chunks/fr-YMiDtWuG.mjs.map +1 -0
- package/dist/chunks/fr-_Oxf0k66.mjs +2 -0
- package/dist/chunks/fr-_Oxf0k66.mjs.map +1 -0
- package/dist/chunks/fr-gurfH-7T.mjs +2 -0
- package/dist/chunks/fr-gurfH-7T.mjs.map +1 -0
- package/dist/chunks/fr-zP7EjxDL.mjs +2 -0
- package/dist/chunks/fr-zP7EjxDL.mjs.map +1 -0
- package/dist/chunks/hi-B2W8pFqK.mjs +2 -0
- package/dist/chunks/hi-B2W8pFqK.mjs.map +1 -0
- package/dist/chunks/hi-B2m69ZCq.mjs +2 -0
- package/dist/chunks/hi-B2m69ZCq.mjs.map +1 -0
- package/dist/chunks/hi-BMIt3y_-.mjs +2 -0
- package/dist/chunks/hi-BMIt3y_-.mjs.map +1 -0
- package/dist/chunks/hi-BdtVhAzs.mjs +2 -0
- package/dist/chunks/hi-BdtVhAzs.mjs.map +1 -0
- package/dist/chunks/hi-BmkfaZpg.mjs +2 -0
- package/dist/chunks/hi-BmkfaZpg.mjs.map +1 -0
- package/dist/chunks/hi-C-l_R2SO.mjs +2 -0
- package/dist/chunks/hi-C-l_R2SO.mjs.map +1 -0
- package/dist/chunks/hi-C1LhM-oY.mjs +2 -0
- package/dist/chunks/hi-C1LhM-oY.mjs.map +1 -0
- package/dist/chunks/hi-CGEbGI1l.mjs +2 -0
- package/dist/chunks/hi-CGEbGI1l.mjs.map +1 -0
- package/dist/chunks/hi-CPuhj7IA.mjs +2 -0
- package/dist/chunks/hi-CPuhj7IA.mjs.map +1 -0
- package/dist/chunks/hi-CT5WERqi.mjs +2 -0
- package/dist/chunks/hi-CT5WERqi.mjs.map +1 -0
- package/dist/chunks/hi-CbLPPQ0b.mjs +2 -0
- package/dist/chunks/hi-CbLPPQ0b.mjs.map +1 -0
- package/dist/chunks/hi-ClvEtEKe.mjs +2 -0
- package/dist/chunks/hi-ClvEtEKe.mjs.map +1 -0
- package/dist/chunks/hi-CpBWHmYH.mjs +2 -0
- package/dist/chunks/hi-CpBWHmYH.mjs.map +1 -0
- package/dist/chunks/hi-DAfl8nU_.mjs +2 -0
- package/dist/chunks/hi-DAfl8nU_.mjs.map +1 -0
- package/dist/chunks/hi-DVof3w0y.mjs +2 -0
- package/dist/chunks/hi-DVof3w0y.mjs.map +1 -0
- package/dist/chunks/hi-DtlvSQkD.mjs +2 -0
- package/dist/chunks/hi-DtlvSQkD.mjs.map +1 -0
- package/dist/chunks/hi-FH3CAJuR.mjs +2 -0
- package/dist/chunks/hi-FH3CAJuR.mjs.map +1 -0
- package/dist/chunks/hi-Ga9h9a_1.mjs +2 -0
- package/dist/chunks/hi-Ga9h9a_1.mjs.map +1 -0
- package/dist/chunks/hi-Zc17M1T-.mjs +2 -0
- package/dist/chunks/hi-Zc17M1T-.mjs.map +1 -0
- package/dist/chunks/hi-g7i0bmig.mjs +2 -0
- package/dist/chunks/hi-g7i0bmig.mjs.map +1 -0
- package/dist/chunks/hi-js2P6byR.mjs +2 -0
- package/dist/chunks/hi-js2P6byR.mjs.map +1 -0
- package/dist/chunks/hi-ntUsOspQ.mjs +2 -0
- package/dist/chunks/hi-ntUsOspQ.mjs.map +1 -0
- package/dist/chunks/hi-yxAcR3w6.mjs +2 -0
- package/dist/chunks/hi-yxAcR3w6.mjs.map +1 -0
- package/dist/chunks/index-CVwf0cdH.mjs +2 -0
- package/dist/chunks/index-CVwf0cdH.mjs.map +1 -0
- package/dist/chunks/index-D3BZFsAD.mjs +2 -0
- package/dist/chunks/index-D3BZFsAD.mjs.map +1 -0
- package/dist/chunks/pt--IiroJQw.mjs +2 -0
- package/dist/chunks/pt--IiroJQw.mjs.map +1 -0
- package/dist/chunks/pt-BF72W8M5.mjs +2 -0
- package/dist/chunks/pt-BF72W8M5.mjs.map +1 -0
- package/dist/chunks/pt-BX_t4luI.mjs +2 -0
- package/dist/chunks/pt-BX_t4luI.mjs.map +1 -0
- package/dist/chunks/pt-B_XJ2s9X.mjs +2 -0
- package/dist/chunks/pt-B_XJ2s9X.mjs.map +1 -0
- package/dist/chunks/pt-C-Vp7Rxj.mjs +2 -0
- package/dist/chunks/pt-C-Vp7Rxj.mjs.map +1 -0
- package/dist/chunks/pt-CD2aCZXf.mjs +2 -0
- package/dist/chunks/pt-CD2aCZXf.mjs.map +1 -0
- package/dist/chunks/pt-CFjzqIbS.mjs +2 -0
- package/dist/chunks/pt-CFjzqIbS.mjs.map +1 -0
- package/dist/chunks/pt-CHjmBegF.mjs +2 -0
- package/dist/chunks/pt-CHjmBegF.mjs.map +1 -0
- package/dist/chunks/pt-CQRzEocL.mjs +2 -0
- package/dist/chunks/pt-CQRzEocL.mjs.map +1 -0
- package/dist/chunks/pt-Cem2WxUk.mjs +2 -0
- package/dist/chunks/pt-Cem2WxUk.mjs.map +1 -0
- package/dist/chunks/pt-D6kdF3fH.mjs +2 -0
- package/dist/chunks/pt-D6kdF3fH.mjs.map +1 -0
- package/dist/chunks/pt-DJfJVeY8.mjs +2 -0
- package/dist/chunks/pt-DJfJVeY8.mjs.map +1 -0
- package/dist/chunks/pt-DfB-IaYi.mjs +2 -0
- package/dist/chunks/pt-DfB-IaYi.mjs.map +1 -0
- package/dist/chunks/pt-DlNdH9pu.mjs +2 -0
- package/dist/chunks/pt-DlNdH9pu.mjs.map +1 -0
- package/dist/chunks/pt-DrJ0-8Yo.mjs +2 -0
- package/dist/chunks/pt-DrJ0-8Yo.mjs.map +1 -0
- package/dist/chunks/pt-DsBJpgpe.mjs +2 -0
- package/dist/chunks/pt-DsBJpgpe.mjs.map +1 -0
- package/dist/chunks/pt-DwdSYJzC.mjs +2 -0
- package/dist/chunks/pt-DwdSYJzC.mjs.map +1 -0
- package/dist/chunks/pt-Dx9UkZ3j.mjs +2 -0
- package/dist/chunks/pt-Dx9UkZ3j.mjs.map +1 -0
- package/dist/chunks/pt-K0BUlM9X.mjs +2 -0
- package/dist/chunks/pt-K0BUlM9X.mjs.map +1 -0
- package/dist/chunks/pt-TuA3_GDM.mjs +2 -0
- package/dist/chunks/pt-TuA3_GDM.mjs.map +1 -0
- package/dist/chunks/pt-cN6r-f7f.mjs +2 -0
- package/dist/chunks/pt-cN6r-f7f.mjs.map +1 -0
- package/dist/chunks/pt-uNGpVM3D.mjs +2 -0
- package/dist/chunks/pt-uNGpVM3D.mjs.map +1 -0
- package/dist/chunks/pt-v1E9u-Jx.mjs +2 -0
- package/dist/chunks/pt-v1E9u-Jx.mjs.map +1 -0
- package/dist/chunks/ru-0h51zrqE.mjs +2 -0
- package/dist/chunks/ru-0h51zrqE.mjs.map +1 -0
- package/dist/chunks/ru-4S8w6UN_.mjs +2 -0
- package/dist/chunks/ru-4S8w6UN_.mjs.map +1 -0
- package/dist/chunks/ru-B0cRw90L.mjs +2 -0
- package/dist/chunks/ru-B0cRw90L.mjs.map +1 -0
- package/dist/chunks/ru-B3O7WXNM.mjs +2 -0
- package/dist/chunks/ru-B3O7WXNM.mjs.map +1 -0
- package/dist/chunks/ru-B6zVAzvI.mjs +2 -0
- package/dist/chunks/ru-B6zVAzvI.mjs.map +1 -0
- package/dist/chunks/ru-B8teJin_.mjs +2 -0
- package/dist/chunks/ru-B8teJin_.mjs.map +1 -0
- package/dist/chunks/ru-BCriPw-8.mjs +2 -0
- package/dist/chunks/ru-BCriPw-8.mjs.map +1 -0
- package/dist/chunks/ru-BNOU16E5.mjs +2 -0
- package/dist/chunks/ru-BNOU16E5.mjs.map +1 -0
- package/dist/chunks/ru-BO6BIS5W.mjs +2 -0
- package/dist/chunks/ru-BO6BIS5W.mjs.map +1 -0
- package/dist/chunks/ru-Bdy1lLuc.mjs +2 -0
- package/dist/chunks/ru-Bdy1lLuc.mjs.map +1 -0
- package/dist/chunks/ru-BgBctNVm.mjs +2 -0
- package/dist/chunks/ru-BgBctNVm.mjs.map +1 -0
- package/dist/chunks/ru-CNLx7T3O.mjs +2 -0
- package/dist/chunks/ru-CNLx7T3O.mjs.map +1 -0
- package/dist/chunks/ru-CVSCT776.mjs +2 -0
- package/dist/chunks/ru-CVSCT776.mjs.map +1 -0
- package/dist/chunks/ru-CZvkdGnf.mjs +2 -0
- package/dist/chunks/ru-CZvkdGnf.mjs.map +1 -0
- package/dist/chunks/ru-CegMPuML.mjs +2 -0
- package/dist/chunks/ru-CegMPuML.mjs.map +1 -0
- package/dist/chunks/ru-CiLrD2Nz.mjs +2 -0
- package/dist/chunks/ru-CiLrD2Nz.mjs.map +1 -0
- package/dist/chunks/ru-ClEM6OKY.mjs +2 -0
- package/dist/chunks/ru-ClEM6OKY.mjs.map +1 -0
- package/dist/chunks/ru-CrbxCeQf.mjs +2 -0
- package/dist/chunks/ru-CrbxCeQf.mjs.map +1 -0
- package/dist/chunks/ru-D3j2x2xu.mjs +2 -0
- package/dist/chunks/ru-D3j2x2xu.mjs.map +1 -0
- package/dist/chunks/ru-DdHqb4Mh.mjs +2 -0
- package/dist/chunks/ru-DdHqb4Mh.mjs.map +1 -0
- package/dist/chunks/ru-DjgNdOdJ.mjs +2 -0
- package/dist/chunks/ru-DjgNdOdJ.mjs.map +1 -0
- package/dist/chunks/ru-Tzd5N37W.mjs +2 -0
- package/dist/chunks/ru-Tzd5N37W.mjs.map +1 -0
- package/dist/chunks/ru-XKNCzkR2.mjs +2 -0
- package/dist/chunks/ru-XKNCzkR2.mjs.map +1 -0
- package/dist/chunks/zh--oNSMazK.mjs +2 -0
- package/dist/chunks/zh--oNSMazK.mjs.map +1 -0
- package/dist/chunks/zh-BfeWdPIz.mjs +2 -0
- package/dist/chunks/zh-BfeWdPIz.mjs.map +1 -0
- package/dist/chunks/zh-BnOxGKxF.mjs +2 -0
- package/dist/chunks/zh-BnOxGKxF.mjs.map +1 -0
- package/dist/chunks/zh-BqMtE-jN.mjs +2 -0
- package/dist/chunks/zh-BqMtE-jN.mjs.map +1 -0
- package/dist/chunks/zh-C3aI7A2o.mjs +2 -0
- package/dist/chunks/zh-C3aI7A2o.mjs.map +1 -0
- package/dist/chunks/zh-C6YALJZt.mjs +2 -0
- package/dist/chunks/zh-C6YALJZt.mjs.map +1 -0
- package/dist/chunks/zh-CWdTbUOP.mjs +2 -0
- package/dist/chunks/zh-CWdTbUOP.mjs.map +1 -0
- package/dist/chunks/zh-CY01pMD4.mjs +2 -0
- package/dist/chunks/zh-CY01pMD4.mjs.map +1 -0
- package/dist/chunks/zh-Cmt7n9FY.mjs +2 -0
- package/dist/chunks/zh-Cmt7n9FY.mjs.map +1 -0
- package/dist/chunks/zh-CpP2kee3.mjs +2 -0
- package/dist/chunks/zh-CpP2kee3.mjs.map +1 -0
- package/dist/chunks/zh-Cpbg4evx.mjs +2 -0
- package/dist/chunks/zh-Cpbg4evx.mjs.map +1 -0
- package/dist/chunks/zh-Cqb55JWa.mjs +2 -0
- package/dist/chunks/zh-Cqb55JWa.mjs.map +1 -0
- package/dist/chunks/zh-DCQZ6gss.mjs +2 -0
- package/dist/chunks/zh-DCQZ6gss.mjs.map +1 -0
- package/dist/chunks/zh-DG2CNTUU.mjs +2 -0
- package/dist/chunks/zh-DG2CNTUU.mjs.map +1 -0
- package/dist/chunks/zh-DTiTJbzz.mjs +2 -0
- package/dist/chunks/zh-DTiTJbzz.mjs.map +1 -0
- package/dist/chunks/zh-Da1z6qbB.mjs +2 -0
- package/dist/chunks/zh-Da1z6qbB.mjs.map +1 -0
- package/dist/chunks/zh-Di3WqY4_.mjs +2 -0
- package/dist/chunks/zh-Di3WqY4_.mjs.map +1 -0
- package/dist/chunks/zh-DlBt06Pr.mjs +2 -0
- package/dist/chunks/zh-DlBt06Pr.mjs.map +1 -0
- package/dist/chunks/zh-Dt-wVrNr.mjs +2 -0
- package/dist/chunks/zh-Dt-wVrNr.mjs.map +1 -0
- package/dist/chunks/zh-ND6vW2M-.mjs +2 -0
- package/dist/chunks/zh-ND6vW2M-.mjs.map +1 -0
- package/dist/chunks/zh-Yd3GNsa0.mjs +2 -0
- package/dist/chunks/zh-Yd3GNsa0.mjs.map +1 -0
- package/dist/chunks/zh-lhynyH6Q.mjs +2 -0
- package/dist/chunks/zh-lhynyH6Q.mjs.map +1 -0
- package/dist/chunks/zh-v9NmlEIN.mjs +2 -0
- package/dist/chunks/zh-v9NmlEIN.mjs.map +1 -0
- package/dist/commands/BlockInsertion.d.ts +64 -0
- package/dist/commands/BlockInsertion.d.ts.map +1 -0
- package/dist/commands/CommandHelpers.d.ts +4 -0
- package/dist/commands/CommandHelpers.d.ts.map +1 -1
- package/dist/commands/Commands.d.ts +9 -3
- package/dist/commands/Commands.d.ts.map +1 -1
- package/dist/commands/GapCursorCommands.d.ts.map +1 -1
- package/dist/commands/MovementCommands.d.ts +1 -4
- package/dist/commands/MovementCommands.d.ts.map +1 -1
- package/dist/commands/NodeSelectionCommands.d.ts +3 -1
- package/dist/commands/NodeSelectionCommands.d.ts.map +1 -1
- package/dist/commands/PasteCommand.d.ts.map +1 -1
- package/dist/commands/WordBoundary.d.ts +4 -9
- package/dist/commands/WordBoundary.d.ts.map +1 -1
- package/dist/editor/Announcer.d.ts +1 -2
- package/dist/editor/Announcer.d.ts.map +1 -1
- package/dist/{model → editor}/BuiltinSpecs.d.ts +1 -1
- package/dist/editor/BuiltinSpecs.d.ts.map +1 -0
- package/dist/editor/ContentSerializer.d.ts +24 -0
- package/dist/editor/ContentSerializer.d.ts.map +1 -0
- package/dist/editor/EditorConfigController.d.ts +38 -0
- package/dist/editor/EditorConfigController.d.ts.map +1 -0
- package/dist/editor/EditorDOM.d.ts +3 -4
- package/dist/editor/EditorDOM.d.ts.map +1 -1
- package/dist/editor/EditorEventEmitter.d.ts +30 -0
- package/dist/editor/EditorEventEmitter.d.ts.map +1 -0
- package/dist/editor/EditorLifecycleCoordinator.d.ts +24 -0
- package/dist/editor/EditorLifecycleCoordinator.d.ts.map +1 -0
- package/dist/editor/EditorLocale.d.ts +9 -0
- package/dist/editor/EditorLocale.d.ts.map +1 -0
- package/dist/editor/EditorStyleCoordinator.d.ts +9 -0
- package/dist/editor/EditorStyleCoordinator.d.ts.map +1 -0
- package/dist/editor/EditorThemeController.d.ts.map +1 -1
- package/dist/editor/NotectlEditor.d.ts +20 -54
- package/dist/editor/NotectlEditor.d.ts.map +1 -1
- package/dist/editor/PaperLayoutController.d.ts +1 -1
- package/dist/editor/PaperLayoutController.d.ts.map +1 -1
- package/dist/editor/PluginBootstrapper.d.ts +18 -0
- package/dist/editor/PluginBootstrapper.d.ts.map +1 -0
- package/dist/editor/locales/ar.d.ts +4 -0
- package/dist/editor/locales/ar.d.ts.map +1 -0
- package/dist/editor/locales/de.d.ts +4 -0
- package/dist/editor/locales/de.d.ts.map +1 -0
- package/dist/editor/locales/es.d.ts +4 -0
- package/dist/editor/locales/es.d.ts.map +1 -0
- package/dist/editor/locales/fr.d.ts +4 -0
- package/dist/editor/locales/fr.d.ts.map +1 -0
- package/dist/editor/locales/hi.d.ts +4 -0
- package/dist/editor/locales/hi.d.ts.map +1 -0
- package/dist/editor/locales/pt.d.ts +4 -0
- package/dist/editor/locales/pt.d.ts.map +1 -0
- package/dist/editor/locales/ru.d.ts +4 -0
- package/dist/editor/locales/ru.d.ts.map +1 -0
- package/dist/editor/locales/zh.d.ts +4 -0
- package/dist/editor/locales/zh.d.ts.map +1 -0
- package/dist/editor/styles/base.d.ts +1 -1
- package/dist/editor/styles/base.d.ts.map +1 -1
- package/dist/editor/styles/code-block.d.ts +1 -1
- package/dist/editor/styles/code-block.d.ts.map +1 -1
- package/dist/editor/styles/font-select.d.ts +1 -1
- package/dist/editor/styles/font-select.d.ts.map +1 -1
- package/dist/editor/styles/font-size-select.d.ts +1 -1
- package/dist/editor/styles/font-size-select.d.ts.map +1 -1
- package/dist/editor/styles/heading-select.d.ts +1 -1
- package/dist/editor/styles/heading-select.d.ts.map +1 -1
- package/dist/editor/styles/image.d.ts +1 -1
- package/dist/editor/styles/image.d.ts.map +1 -1
- package/dist/editor/styles/list.d.ts +1 -1
- package/dist/editor/styles/list.d.ts.map +1 -1
- package/dist/editor/styles/table.d.ts +1 -1
- package/dist/editor/styles/table.d.ts.map +1 -1
- package/dist/editor/styles/toolbar.d.ts +1 -1
- package/dist/editor/styles/toolbar.d.ts.map +1 -1
- package/dist/editor/theme/ThemeEngine.d.ts.map +1 -1
- package/dist/editor/theme/ThemeTokens.d.ts +17 -1
- package/dist/editor/theme/ThemeTokens.d.ts.map +1 -1
- package/dist/fonts.mjs +1 -6
- package/dist/fonts.mjs.map +1 -1
- package/dist/full.d.ts +46 -0
- package/dist/full.d.ts.map +1 -0
- package/dist/full.mjs +2 -0
- package/dist/full.mjs.map +1 -0
- package/dist/html.d.ts +16 -0
- package/dist/html.d.ts.map +1 -0
- package/dist/html.mjs +2 -0
- package/dist/html.mjs.map +1 -0
- package/dist/i18n/Locale.d.ts +1 -0
- package/dist/i18n/Locale.d.ts.map +1 -1
- package/dist/i18n/index.d.ts +0 -1
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/index.d.ts +30 -94
- package/dist/index.d.ts.map +1 -1
- package/dist/input/ClipboardHandler.d.ts +22 -0
- package/dist/input/ClipboardHandler.d.ts.map +1 -1
- package/dist/input/CompositionTracker.d.ts +2 -1
- package/dist/input/CompositionTracker.d.ts.map +1 -1
- package/dist/{model → input}/HTMLParser.d.ts +3 -3
- package/dist/input/HTMLParser.d.ts.map +1 -0
- package/dist/input/InputHandler.d.ts +1 -1
- package/dist/input/InputHandler.d.ts.map +1 -1
- package/dist/input/InputManager.d.ts +37 -0
- package/dist/input/InputManager.d.ts.map +1 -0
- package/dist/input/InternalClipboard.d.ts +3 -13
- package/dist/input/InternalClipboard.d.ts.map +1 -1
- package/dist/input/KeyboardHandler.d.ts +12 -1
- package/dist/input/KeyboardHandler.d.ts.map +1 -1
- package/dist/input/PasteHandler.d.ts +28 -17
- package/dist/input/PasteHandler.d.ts.map +1 -1
- package/dist/model/AttrRegistry.d.ts +1 -1
- package/dist/model/AttrRegistry.d.ts.map +1 -1
- package/dist/model/BlockAlignment.d.ts +8 -0
- package/dist/model/BlockAlignment.d.ts.map +1 -0
- package/dist/model/BlockTypeLabels.d.ts +7 -0
- package/dist/model/BlockTypeLabels.d.ts.map +1 -0
- package/dist/model/CompositionState.d.ts +8 -0
- package/dist/model/CompositionState.d.ts.map +1 -0
- package/dist/model/Document.d.ts.map +1 -1
- package/dist/{input → model}/FileHandlerRegistry.d.ts +1 -1
- package/dist/{input → model}/FileHandlerRegistry.d.ts.map +1 -1
- package/dist/model/HTMLUtils.d.ts +8 -0
- package/dist/model/HTMLUtils.d.ts.map +1 -1
- package/dist/{input → model}/InputRule.d.ts.map +1 -1
- package/dist/{input → model}/InputRuleRegistry.d.ts.map +1 -1
- package/dist/{input → model}/Keymap.d.ts.map +1 -1
- package/dist/{input → model}/KeymapRegistry.d.ts.map +1 -1
- package/dist/model/MarkSpec.d.ts +2 -2
- package/dist/model/MarkSpec.d.ts.map +1 -1
- package/dist/model/NodeSpec.d.ts +0 -3
- package/dist/model/NodeSpec.d.ts.map +1 -1
- package/dist/model/PaperSize.d.ts.map +1 -0
- package/dist/model/PasteInterceptor.d.ts +21 -0
- package/dist/model/PasteInterceptor.d.ts.map +1 -0
- package/dist/model/RichBlockData.d.ts +24 -0
- package/dist/model/RichBlockData.d.ts.map +1 -0
- package/dist/model/SchemaRegistry.d.ts +2 -0
- package/dist/model/SchemaRegistry.d.ts.map +1 -1
- package/dist/model/WordBoundary.d.ts +12 -0
- package/dist/model/WordBoundary.d.ts.map +1 -0
- package/dist/notectl-core.mjs +1 -3888
- package/dist/notectl-core.mjs.map +1 -1
- package/dist/notectl-core.umd.js +1 -9523
- package/dist/notectl-core.umd.js.map +1 -1
- package/dist/{view → platform}/Platform.d.ts +2 -0
- package/dist/platform/Platform.d.ts.map +1 -0
- package/dist/plugins/Plugin.d.ts +8 -5
- package/dist/plugins/Plugin.d.ts.map +1 -1
- package/dist/plugins/PluginManager.d.ts +10 -3
- package/dist/plugins/PluginManager.d.ts.map +1 -1
- package/dist/plugins/alignment/AlignmentLocale.d.ts +3 -10
- package/dist/plugins/alignment/AlignmentLocale.d.ts.map +1 -1
- package/dist/plugins/alignment/AlignmentPlugin.d.ts +3 -13
- package/dist/plugins/alignment/AlignmentPlugin.d.ts.map +1 -1
- package/dist/plugins/alignment/index.d.ts +3 -1
- package/dist/plugins/alignment/index.d.ts.map +1 -1
- package/dist/plugins/alignment/locales/ar.d.ts +4 -0
- package/dist/plugins/alignment/locales/ar.d.ts.map +1 -0
- package/dist/plugins/alignment/locales/de.d.ts +4 -0
- package/dist/plugins/alignment/locales/de.d.ts.map +1 -0
- package/dist/plugins/alignment/locales/es.d.ts +4 -0
- package/dist/plugins/alignment/locales/es.d.ts.map +1 -0
- package/dist/plugins/alignment/locales/fr.d.ts +4 -0
- package/dist/plugins/alignment/locales/fr.d.ts.map +1 -0
- package/dist/plugins/alignment/locales/hi.d.ts +4 -0
- package/dist/plugins/alignment/locales/hi.d.ts.map +1 -0
- package/dist/plugins/alignment/locales/pt.d.ts +4 -0
- package/dist/plugins/alignment/locales/pt.d.ts.map +1 -0
- package/dist/plugins/alignment/locales/ru.d.ts +4 -0
- package/dist/plugins/alignment/locales/ru.d.ts.map +1 -0
- package/dist/plugins/alignment/locales/zh.d.ts +4 -0
- package/dist/plugins/alignment/locales/zh.d.ts.map +1 -0
- package/dist/plugins/alignment.mjs +1 -5
- package/dist/plugins/alignment.mjs.map +1 -1
- package/dist/plugins/blockquote/BlockquoteKeyboardHandlers.d.ts +4 -0
- package/dist/plugins/blockquote/BlockquoteKeyboardHandlers.d.ts.map +1 -0
- package/dist/plugins/blockquote/BlockquoteLocale.d.ts +1 -8
- package/dist/plugins/blockquote/BlockquoteLocale.d.ts.map +1 -1
- package/dist/plugins/blockquote/BlockquotePlugin.d.ts +1 -3
- package/dist/plugins/blockquote/BlockquotePlugin.d.ts.map +1 -1
- package/dist/plugins/blockquote/BlockquoteStyles.d.ts +3 -0
- package/dist/plugins/blockquote/BlockquoteStyles.d.ts.map +1 -0
- package/dist/plugins/blockquote/index.d.ts +2 -0
- package/dist/plugins/blockquote/index.d.ts.map +1 -1
- package/dist/plugins/blockquote/locales/ar.d.ts +4 -0
- package/dist/plugins/blockquote/locales/ar.d.ts.map +1 -0
- package/dist/plugins/blockquote/locales/de.d.ts +4 -0
- package/dist/plugins/blockquote/locales/de.d.ts.map +1 -0
- package/dist/plugins/blockquote/locales/es.d.ts +4 -0
- package/dist/plugins/blockquote/locales/es.d.ts.map +1 -0
- package/dist/plugins/blockquote/locales/fr.d.ts +4 -0
- package/dist/plugins/blockquote/locales/fr.d.ts.map +1 -0
- package/dist/plugins/blockquote/locales/hi.d.ts +4 -0
- package/dist/plugins/blockquote/locales/hi.d.ts.map +1 -0
- package/dist/plugins/blockquote/locales/pt.d.ts +4 -0
- package/dist/plugins/blockquote/locales/pt.d.ts.map +1 -0
- package/dist/plugins/blockquote/locales/ru.d.ts +4 -0
- package/dist/plugins/blockquote/locales/ru.d.ts.map +1 -0
- package/dist/plugins/blockquote/locales/zh.d.ts +4 -0
- package/dist/plugins/blockquote/locales/zh.d.ts.map +1 -0
- package/dist/plugins/blockquote.mjs +1 -4
- package/dist/plugins/blockquote.mjs.map +1 -1
- package/dist/plugins/caret-navigation/CaretNavigationLocale.d.ts +21 -0
- package/dist/plugins/caret-navigation/CaretNavigationLocale.d.ts.map +1 -0
- package/dist/plugins/caret-navigation/CaretNavigationPlugin.d.ts +2 -1
- package/dist/plugins/caret-navigation/CaretNavigationPlugin.d.ts.map +1 -1
- package/dist/plugins/caret-navigation/index.d.ts +2 -0
- package/dist/plugins/caret-navigation/index.d.ts.map +1 -1
- package/dist/plugins/caret-navigation/locales/ar.d.ts +4 -0
- package/dist/plugins/caret-navigation/locales/ar.d.ts.map +1 -0
- package/dist/plugins/caret-navigation/locales/de.d.ts +4 -0
- package/dist/plugins/caret-navigation/locales/de.d.ts.map +1 -0
- package/dist/plugins/caret-navigation/locales/es.d.ts +4 -0
- package/dist/plugins/caret-navigation/locales/es.d.ts.map +1 -0
- package/dist/plugins/caret-navigation/locales/fr.d.ts +4 -0
- package/dist/plugins/caret-navigation/locales/fr.d.ts.map +1 -0
- package/dist/plugins/caret-navigation/locales/hi.d.ts +4 -0
- package/dist/plugins/caret-navigation/locales/hi.d.ts.map +1 -0
- package/dist/plugins/caret-navigation/locales/pt.d.ts +4 -0
- package/dist/plugins/caret-navigation/locales/pt.d.ts.map +1 -0
- package/dist/plugins/caret-navigation/locales/ru.d.ts +4 -0
- package/dist/plugins/caret-navigation/locales/ru.d.ts.map +1 -0
- package/dist/plugins/caret-navigation/locales/zh.d.ts +4 -0
- package/dist/plugins/caret-navigation/locales/zh.d.ts.map +1 -0
- package/dist/plugins/caret-navigation.mjs +1 -4
- package/dist/plugins/caret-navigation.mjs.map +1 -1
- package/dist/plugins/code-block/CodeBlockKeyboardHandlers.d.ts.map +1 -1
- package/dist/plugins/code-block/CodeBlockLocale.d.ts +5 -8
- package/dist/plugins/code-block/CodeBlockLocale.d.ts.map +1 -1
- package/dist/plugins/code-block/CodeBlockNodeView.d.ts +2 -1
- package/dist/plugins/code-block/CodeBlockNodeView.d.ts.map +1 -1
- package/dist/plugins/code-block/CodeBlockPlugin.d.ts +7 -2
- package/dist/plugins/code-block/CodeBlockPlugin.d.ts.map +1 -1
- package/dist/plugins/code-block/CodeBlockService.d.ts.map +1 -1
- package/dist/plugins/code-block/CodeBlockTypes.d.ts +7 -1
- package/dist/plugins/code-block/CodeBlockTypes.d.ts.map +1 -1
- package/dist/plugins/code-block/highlighter/RegexTokenizer.d.ts +14 -0
- package/dist/plugins/code-block/highlighter/RegexTokenizer.d.ts.map +1 -0
- package/dist/plugins/code-block/highlighter/TokenizerTypes.d.ts +15 -0
- package/dist/plugins/code-block/highlighter/TokenizerTypes.d.ts.map +1 -0
- package/dist/plugins/code-block/highlighter/languages/index.d.ts +3 -0
- package/dist/plugins/code-block/highlighter/languages/index.d.ts.map +1 -0
- package/dist/plugins/code-block/highlighter/languages/json.d.ts +3 -0
- package/dist/plugins/code-block/highlighter/languages/json.d.ts.map +1 -0
- package/dist/plugins/code-block/highlighter/languages/xml.d.ts +3 -0
- package/dist/plugins/code-block/highlighter/languages/xml.d.ts.map +1 -0
- package/dist/plugins/code-block/index.d.ts +7 -1
- package/dist/plugins/code-block/index.d.ts.map +1 -1
- package/dist/plugins/code-block/locales/ar.d.ts +4 -0
- package/dist/plugins/code-block/locales/ar.d.ts.map +1 -0
- package/dist/plugins/code-block/locales/de.d.ts +4 -0
- package/dist/plugins/code-block/locales/de.d.ts.map +1 -0
- package/dist/plugins/code-block/locales/es.d.ts +4 -0
- package/dist/plugins/code-block/locales/es.d.ts.map +1 -0
- package/dist/plugins/code-block/locales/fr.d.ts +4 -0
- package/dist/plugins/code-block/locales/fr.d.ts.map +1 -0
- package/dist/plugins/code-block/locales/hi.d.ts +4 -0
- package/dist/plugins/code-block/locales/hi.d.ts.map +1 -0
- package/dist/plugins/code-block/locales/pt.d.ts +4 -0
- package/dist/plugins/code-block/locales/pt.d.ts.map +1 -0
- package/dist/plugins/code-block/locales/ru.d.ts +4 -0
- package/dist/plugins/code-block/locales/ru.d.ts.map +1 -0
- package/dist/plugins/code-block/locales/zh.d.ts +4 -0
- package/dist/plugins/code-block/locales/zh.d.ts.map +1 -0
- package/dist/plugins/code-block.mjs +1 -5
- package/dist/plugins/code-block.mjs.map +1 -1
- package/dist/plugins/font/FontLocale.d.ts +1 -8
- package/dist/plugins/font/FontLocale.d.ts.map +1 -1
- package/dist/plugins/font/FontPlugin.d.ts +1 -3
- package/dist/plugins/font/FontPlugin.d.ts.map +1 -1
- package/dist/plugins/font/index.d.ts +2 -0
- package/dist/plugins/font/index.d.ts.map +1 -1
- package/dist/plugins/font/locales/ar.d.ts +4 -0
- package/dist/plugins/font/locales/ar.d.ts.map +1 -0
- package/dist/plugins/font/locales/de.d.ts +4 -0
- package/dist/plugins/font/locales/de.d.ts.map +1 -0
- package/dist/plugins/font/locales/es.d.ts +4 -0
- package/dist/plugins/font/locales/es.d.ts.map +1 -0
- package/dist/plugins/font/locales/fr.d.ts +4 -0
- package/dist/plugins/font/locales/fr.d.ts.map +1 -0
- package/dist/plugins/font/locales/hi.d.ts +4 -0
- package/dist/plugins/font/locales/hi.d.ts.map +1 -0
- package/dist/plugins/font/locales/pt.d.ts +4 -0
- package/dist/plugins/font/locales/pt.d.ts.map +1 -0
- package/dist/plugins/font/locales/ru.d.ts +4 -0
- package/dist/plugins/font/locales/ru.d.ts.map +1 -0
- package/dist/plugins/font/locales/zh.d.ts +4 -0
- package/dist/plugins/font/locales/zh.d.ts.map +1 -0
- package/dist/plugins/font-size/FontSizeLocale.d.ts +1 -8
- package/dist/plugins/font-size/FontSizeLocale.d.ts.map +1 -1
- package/dist/plugins/font-size/FontSizePlugin.d.ts +1 -3
- package/dist/plugins/font-size/FontSizePlugin.d.ts.map +1 -1
- package/dist/plugins/font-size/FontSizePopup.d.ts +1 -1
- package/dist/plugins/font-size/FontSizePopup.d.ts.map +1 -1
- package/dist/plugins/font-size/index.d.ts +2 -0
- package/dist/plugins/font-size/index.d.ts.map +1 -1
- package/dist/plugins/font-size/locales/ar.d.ts +4 -0
- package/dist/plugins/font-size/locales/ar.d.ts.map +1 -0
- package/dist/plugins/font-size/locales/de.d.ts +4 -0
- package/dist/plugins/font-size/locales/de.d.ts.map +1 -0
- package/dist/plugins/font-size/locales/es.d.ts +4 -0
- package/dist/plugins/font-size/locales/es.d.ts.map +1 -0
- package/dist/plugins/font-size/locales/fr.d.ts +4 -0
- package/dist/plugins/font-size/locales/fr.d.ts.map +1 -0
- package/dist/plugins/font-size/locales/hi.d.ts +4 -0
- package/dist/plugins/font-size/locales/hi.d.ts.map +1 -0
- package/dist/plugins/font-size/locales/pt.d.ts +4 -0
- package/dist/plugins/font-size/locales/pt.d.ts.map +1 -0
- package/dist/plugins/font-size/locales/ru.d.ts +4 -0
- package/dist/plugins/font-size/locales/ru.d.ts.map +1 -0
- package/dist/plugins/font-size/locales/zh.d.ts +4 -0
- package/dist/plugins/font-size/locales/zh.d.ts.map +1 -0
- package/dist/plugins/font-size.mjs +1 -4
- package/dist/plugins/font-size.mjs.map +1 -1
- package/dist/plugins/font.mjs +1 -4
- package/dist/plugins/font.mjs.map +1 -1
- package/dist/plugins/gap-cursor/GapCursorLocale.d.ts +7 -0
- package/dist/plugins/gap-cursor/GapCursorLocale.d.ts.map +1 -0
- package/dist/plugins/gap-cursor/GapCursorPlugin.d.ts +7 -3
- package/dist/plugins/gap-cursor/GapCursorPlugin.d.ts.map +1 -1
- package/dist/plugins/gap-cursor/locales/ar.d.ts +4 -0
- package/dist/plugins/gap-cursor/locales/ar.d.ts.map +1 -0
- package/dist/plugins/gap-cursor/locales/de.d.ts +4 -0
- package/dist/plugins/gap-cursor/locales/de.d.ts.map +1 -0
- package/dist/plugins/gap-cursor/locales/es.d.ts +4 -0
- package/dist/plugins/gap-cursor/locales/es.d.ts.map +1 -0
- package/dist/plugins/gap-cursor/locales/fr.d.ts +4 -0
- package/dist/plugins/gap-cursor/locales/fr.d.ts.map +1 -0
- package/dist/plugins/gap-cursor/locales/hi.d.ts +4 -0
- package/dist/plugins/gap-cursor/locales/hi.d.ts.map +1 -0
- package/dist/plugins/gap-cursor/locales/pt.d.ts +4 -0
- package/dist/plugins/gap-cursor/locales/pt.d.ts.map +1 -0
- package/dist/plugins/gap-cursor/locales/ru.d.ts +4 -0
- package/dist/plugins/gap-cursor/locales/ru.d.ts.map +1 -0
- package/dist/plugins/gap-cursor/locales/zh.d.ts +4 -0
- package/dist/plugins/gap-cursor/locales/zh.d.ts.map +1 -0
- package/dist/plugins/gap-cursor.mjs +1 -64
- package/dist/plugins/gap-cursor.mjs.map +1 -1
- package/dist/plugins/hard-break.mjs +1 -4
- package/dist/plugins/hard-break.mjs.map +1 -1
- package/dist/plugins/heading/HeadingBlockTypePicker.d.ts +1 -1
- package/dist/plugins/heading/HeadingBlockTypePicker.d.ts.map +1 -1
- package/dist/plugins/heading/HeadingInputRules.d.ts.map +1 -1
- package/dist/plugins/heading/HeadingKeyboardHandlers.d.ts.map +1 -1
- package/dist/plugins/heading/HeadingLocale.d.ts +1 -8
- package/dist/plugins/heading/HeadingLocale.d.ts.map +1 -1
- package/dist/plugins/heading/HeadingPlugin.d.ts +2 -4
- package/dist/plugins/heading/HeadingPlugin.d.ts.map +1 -1
- package/dist/plugins/heading/index.d.ts +3 -0
- package/dist/plugins/heading/index.d.ts.map +1 -1
- package/dist/plugins/heading/locales/ar.d.ts +4 -0
- package/dist/plugins/heading/locales/ar.d.ts.map +1 -0
- package/dist/plugins/heading/locales/de.d.ts +4 -0
- package/dist/plugins/heading/locales/de.d.ts.map +1 -0
- package/dist/plugins/heading/locales/es.d.ts +4 -0
- package/dist/plugins/heading/locales/es.d.ts.map +1 -0
- package/dist/plugins/heading/locales/fr.d.ts +4 -0
- package/dist/plugins/heading/locales/fr.d.ts.map +1 -0
- package/dist/plugins/heading/locales/hi.d.ts +4 -0
- package/dist/plugins/heading/locales/hi.d.ts.map +1 -0
- package/dist/plugins/heading/locales/pt.d.ts +4 -0
- package/dist/plugins/heading/locales/pt.d.ts.map +1 -0
- package/dist/plugins/heading/locales/ru.d.ts +4 -0
- package/dist/plugins/heading/locales/ru.d.ts.map +1 -0
- package/dist/plugins/heading/locales/zh.d.ts +4 -0
- package/dist/plugins/heading/locales/zh.d.ts.map +1 -0
- package/dist/plugins/heading.mjs +1 -4
- package/dist/plugins/heading.mjs.map +1 -1
- package/dist/plugins/highlight/HighlightLocale.d.ts +1 -8
- package/dist/plugins/highlight/HighlightLocale.d.ts.map +1 -1
- package/dist/plugins/highlight/HighlightPlugin.d.ts +1 -3
- package/dist/plugins/highlight/HighlightPlugin.d.ts.map +1 -1
- package/dist/plugins/highlight/index.d.ts +2 -0
- package/dist/plugins/highlight/index.d.ts.map +1 -1
- package/dist/plugins/highlight/locales/ar.d.ts +4 -0
- package/dist/plugins/highlight/locales/ar.d.ts.map +1 -0
- package/dist/plugins/highlight/locales/de.d.ts +4 -0
- package/dist/plugins/highlight/locales/de.d.ts.map +1 -0
- package/dist/plugins/highlight/locales/es.d.ts +4 -0
- package/dist/plugins/highlight/locales/es.d.ts.map +1 -0
- package/dist/plugins/highlight/locales/fr.d.ts +4 -0
- package/dist/plugins/highlight/locales/fr.d.ts.map +1 -0
- package/dist/plugins/highlight/locales/hi.d.ts +4 -0
- package/dist/plugins/highlight/locales/hi.d.ts.map +1 -0
- package/dist/plugins/highlight/locales/pt.d.ts +4 -0
- package/dist/plugins/highlight/locales/pt.d.ts.map +1 -0
- package/dist/plugins/highlight/locales/ru.d.ts +4 -0
- package/dist/plugins/highlight/locales/ru.d.ts.map +1 -0
- package/dist/plugins/highlight/locales/zh.d.ts +4 -0
- package/dist/plugins/highlight/locales/zh.d.ts.map +1 -0
- package/dist/plugins/highlight.mjs +1 -4
- package/dist/plugins/highlight.mjs.map +1 -1
- package/dist/plugins/horizontal-rule/HorizontalRuleLocale.d.ts +1 -8
- package/dist/plugins/horizontal-rule/HorizontalRuleLocale.d.ts.map +1 -1
- package/dist/plugins/horizontal-rule/HorizontalRulePlugin.d.ts +1 -3
- package/dist/plugins/horizontal-rule/HorizontalRulePlugin.d.ts.map +1 -1
- package/dist/plugins/horizontal-rule/index.d.ts +2 -0
- package/dist/plugins/horizontal-rule/index.d.ts.map +1 -1
- package/dist/plugins/horizontal-rule/locales/ar.d.ts +4 -0
- package/dist/plugins/horizontal-rule/locales/ar.d.ts.map +1 -0
- package/dist/plugins/horizontal-rule/locales/de.d.ts +4 -0
- package/dist/plugins/horizontal-rule/locales/de.d.ts.map +1 -0
- package/dist/plugins/horizontal-rule/locales/es.d.ts +4 -0
- package/dist/plugins/horizontal-rule/locales/es.d.ts.map +1 -0
- package/dist/plugins/horizontal-rule/locales/fr.d.ts +4 -0
- package/dist/plugins/horizontal-rule/locales/fr.d.ts.map +1 -0
- package/dist/plugins/horizontal-rule/locales/hi.d.ts +4 -0
- package/dist/plugins/horizontal-rule/locales/hi.d.ts.map +1 -0
- package/dist/plugins/horizontal-rule/locales/pt.d.ts +4 -0
- package/dist/plugins/horizontal-rule/locales/pt.d.ts.map +1 -0
- package/dist/plugins/horizontal-rule/locales/ru.d.ts +4 -0
- package/dist/plugins/horizontal-rule/locales/ru.d.ts.map +1 -0
- package/dist/plugins/horizontal-rule/locales/zh.d.ts +4 -0
- package/dist/plugins/horizontal-rule/locales/zh.d.ts.map +1 -0
- package/dist/plugins/horizontal-rule.mjs +1 -4
- package/dist/plugins/horizontal-rule.mjs.map +1 -1
- package/dist/plugins/image/ImageLocale.d.ts +9 -8
- package/dist/plugins/image/ImageLocale.d.ts.map +1 -1
- package/dist/plugins/image/ImageNodeView.d.ts +8 -1
- package/dist/plugins/image/ImageNodeView.d.ts.map +1 -1
- package/dist/plugins/image/ImagePlugin.d.ts +2 -3
- package/dist/plugins/image/ImagePlugin.d.ts.map +1 -1
- package/dist/plugins/image/ImagePopup.d.ts +11 -0
- package/dist/plugins/image/ImagePopup.d.ts.map +1 -0
- package/dist/plugins/image/ImageUpload.d.ts +1 -2
- package/dist/plugins/image/ImageUpload.d.ts.map +1 -1
- package/dist/plugins/image/index.d.ts +2 -0
- package/dist/plugins/image/index.d.ts.map +1 -1
- package/dist/plugins/image/locales/ar.d.ts +4 -0
- package/dist/plugins/image/locales/ar.d.ts.map +1 -0
- package/dist/plugins/image/locales/de.d.ts +4 -0
- package/dist/plugins/image/locales/de.d.ts.map +1 -0
- package/dist/plugins/image/locales/es.d.ts +4 -0
- package/dist/plugins/image/locales/es.d.ts.map +1 -0
- package/dist/plugins/image/locales/fr.d.ts +4 -0
- package/dist/plugins/image/locales/fr.d.ts.map +1 -0
- package/dist/plugins/image/locales/hi.d.ts +4 -0
- package/dist/plugins/image/locales/hi.d.ts.map +1 -0
- package/dist/plugins/image/locales/pt.d.ts +4 -0
- package/dist/plugins/image/locales/pt.d.ts.map +1 -0
- package/dist/plugins/image/locales/ru.d.ts +4 -0
- package/dist/plugins/image/locales/ru.d.ts.map +1 -0
- package/dist/plugins/image/locales/zh.d.ts +4 -0
- package/dist/plugins/image/locales/zh.d.ts.map +1 -0
- package/dist/plugins/image.mjs +1 -6
- package/dist/plugins/image.mjs.map +1 -1
- package/dist/plugins/link/LinkLocale.d.ts +1 -8
- package/dist/plugins/link/LinkLocale.d.ts.map +1 -1
- package/dist/plugins/link/LinkPlugin.d.ts +1 -3
- package/dist/plugins/link/LinkPlugin.d.ts.map +1 -1
- package/dist/plugins/link/index.d.ts +2 -0
- package/dist/plugins/link/index.d.ts.map +1 -1
- package/dist/plugins/link/locales/ar.d.ts +4 -0
- package/dist/plugins/link/locales/ar.d.ts.map +1 -0
- package/dist/plugins/link/locales/de.d.ts +4 -0
- package/dist/plugins/link/locales/de.d.ts.map +1 -0
- package/dist/plugins/link/locales/es.d.ts +4 -0
- package/dist/plugins/link/locales/es.d.ts.map +1 -0
- package/dist/plugins/link/locales/fr.d.ts +4 -0
- package/dist/plugins/link/locales/fr.d.ts.map +1 -0
- package/dist/plugins/link/locales/hi.d.ts +4 -0
- package/dist/plugins/link/locales/hi.d.ts.map +1 -0
- package/dist/plugins/link/locales/pt.d.ts +4 -0
- package/dist/plugins/link/locales/pt.d.ts.map +1 -0
- package/dist/plugins/link/locales/ru.d.ts +4 -0
- package/dist/plugins/link/locales/ru.d.ts.map +1 -0
- package/dist/plugins/link/locales/zh.d.ts +4 -0
- package/dist/plugins/link/locales/zh.d.ts.map +1 -0
- package/dist/plugins/link.mjs +1 -4
- package/dist/plugins/link.mjs.map +1 -1
- package/dist/plugins/list/ListLocale.d.ts +1 -8
- package/dist/plugins/list/ListLocale.d.ts.map +1 -1
- package/dist/plugins/list/ListPlugin.d.ts +1 -3
- package/dist/plugins/list/ListPlugin.d.ts.map +1 -1
- package/dist/plugins/list/index.d.ts +2 -0
- package/dist/plugins/list/index.d.ts.map +1 -1
- package/dist/plugins/list/locales/ar.d.ts +4 -0
- package/dist/plugins/list/locales/ar.d.ts.map +1 -0
- package/dist/plugins/list/locales/de.d.ts +4 -0
- package/dist/plugins/list/locales/de.d.ts.map +1 -0
- package/dist/plugins/list/locales/es.d.ts +4 -0
- package/dist/plugins/list/locales/es.d.ts.map +1 -0
- package/dist/plugins/list/locales/fr.d.ts +4 -0
- package/dist/plugins/list/locales/fr.d.ts.map +1 -0
- package/dist/plugins/list/locales/hi.d.ts +4 -0
- package/dist/plugins/list/locales/hi.d.ts.map +1 -0
- package/dist/plugins/list/locales/pt.d.ts +4 -0
- package/dist/plugins/list/locales/pt.d.ts.map +1 -0
- package/dist/plugins/list/locales/ru.d.ts +4 -0
- package/dist/plugins/list/locales/ru.d.ts.map +1 -0
- package/dist/plugins/list/locales/zh.d.ts +4 -0
- package/dist/plugins/list/locales/zh.d.ts.map +1 -0
- package/dist/plugins/list.mjs +1 -4
- package/dist/plugins/list.mjs.map +1 -1
- package/dist/plugins/print/PrintLocale.d.ts +1 -8
- package/dist/plugins/print/PrintLocale.d.ts.map +1 -1
- package/dist/plugins/print/PrintPlugin.d.ts +1 -1
- package/dist/plugins/print/PrintPlugin.d.ts.map +1 -1
- package/dist/plugins/print/PrintServiceImpl.d.ts.map +1 -1
- package/dist/plugins/print/PrintStyleCollector.d.ts.map +1 -1
- package/dist/plugins/print/PrintTypes.d.ts +1 -1
- package/dist/plugins/print/PrintTypes.d.ts.map +1 -1
- package/dist/plugins/print/index.d.ts +5 -0
- package/dist/plugins/print/index.d.ts.map +1 -0
- package/dist/plugins/print/locales/ar.d.ts +4 -0
- package/dist/plugins/print/locales/ar.d.ts.map +1 -0
- package/dist/plugins/print/locales/de.d.ts +4 -0
- package/dist/plugins/print/locales/de.d.ts.map +1 -0
- package/dist/plugins/print/locales/es.d.ts +4 -0
- package/dist/plugins/print/locales/es.d.ts.map +1 -0
- package/dist/plugins/print/locales/fr.d.ts +4 -0
- package/dist/plugins/print/locales/fr.d.ts.map +1 -0
- package/dist/plugins/print/locales/hi.d.ts +4 -0
- package/dist/plugins/print/locales/hi.d.ts.map +1 -0
- package/dist/plugins/print/locales/pt.d.ts +4 -0
- package/dist/plugins/print/locales/pt.d.ts.map +1 -0
- package/dist/plugins/print/locales/ru.d.ts +4 -0
- package/dist/plugins/print/locales/ru.d.ts.map +1 -0
- package/dist/plugins/print/locales/zh.d.ts +4 -0
- package/dist/plugins/print/locales/zh.d.ts.map +1 -0
- package/dist/plugins/print.mjs +2 -0
- package/dist/plugins/print.mjs.map +1 -0
- package/dist/plugins/shared/ColorGrid.d.ts.map +1 -1
- package/dist/plugins/shared/ColorMarkOperations.d.ts +1 -2
- package/dist/plugins/shared/ColorMarkOperations.d.ts.map +1 -1
- package/dist/plugins/shared/ColorPickerPopup.d.ts +1 -8
- package/dist/plugins/shared/ColorPickerPopup.d.ts.map +1 -1
- package/dist/plugins/shared/KeyboardNav.d.ts +17 -0
- package/dist/plugins/shared/KeyboardNav.d.ts.map +1 -0
- package/dist/plugins/shared/PluginHelpers.d.ts +18 -0
- package/dist/plugins/shared/PluginHelpers.d.ts.map +1 -0
- package/dist/plugins/shared/PopupKeyboardPatterns.d.ts +1 -1
- package/dist/plugins/shared/PopupKeyboardPatterns.d.ts.map +1 -1
- package/dist/plugins/shared/PopupManager.d.ts +2 -0
- package/dist/plugins/shared/PopupManager.d.ts.map +1 -1
- package/dist/plugins/shared/PopupPositioning.d.ts +1 -0
- package/dist/plugins/shared/PopupPositioning.d.ts.map +1 -1
- package/dist/plugins/shared/ShortcutFormatting.d.ts +9 -0
- package/dist/plugins/shared/ShortcutFormatting.d.ts.map +1 -0
- package/dist/plugins/shared/XmlPatterns.d.ts +10 -0
- package/dist/plugins/shared/XmlPatterns.d.ts.map +1 -0
- package/dist/plugins/shared/index.d.ts +13 -0
- package/dist/plugins/shared/index.d.ts.map +1 -0
- package/dist/plugins/shared.mjs +2 -0
- package/dist/plugins/shared.mjs.map +1 -0
- package/dist/plugins/smart-paste/SmartPasteLocale.d.ts +7 -0
- package/dist/plugins/smart-paste/SmartPasteLocale.d.ts.map +1 -0
- package/dist/plugins/smart-paste/SmartPastePlugin.d.ts +19 -0
- package/dist/plugins/smart-paste/SmartPastePlugin.d.ts.map +1 -0
- package/dist/plugins/smart-paste/SmartPasteTypes.d.ts +24 -0
- package/dist/plugins/smart-paste/SmartPasteTypes.d.ts.map +1 -0
- package/dist/plugins/smart-paste/detectors/JsonDetector.d.ts +6 -0
- package/dist/plugins/smart-paste/detectors/JsonDetector.d.ts.map +1 -0
- package/dist/plugins/smart-paste/detectors/XmlDetector.d.ts +26 -0
- package/dist/plugins/smart-paste/detectors/XmlDetector.d.ts.map +1 -0
- package/dist/plugins/smart-paste/index.d.ts +7 -0
- package/dist/plugins/smart-paste/index.d.ts.map +1 -0
- package/dist/plugins/smart-paste/locales/ar.d.ts +4 -0
- package/dist/plugins/smart-paste/locales/ar.d.ts.map +1 -0
- package/dist/plugins/smart-paste/locales/de.d.ts +4 -0
- package/dist/plugins/smart-paste/locales/de.d.ts.map +1 -0
- package/dist/plugins/smart-paste/locales/es.d.ts +4 -0
- package/dist/plugins/smart-paste/locales/es.d.ts.map +1 -0
- package/dist/plugins/smart-paste/locales/fr.d.ts +4 -0
- package/dist/plugins/smart-paste/locales/fr.d.ts.map +1 -0
- package/dist/plugins/smart-paste/locales/hi.d.ts +4 -0
- package/dist/plugins/smart-paste/locales/hi.d.ts.map +1 -0
- package/dist/plugins/smart-paste/locales/pt.d.ts +4 -0
- package/dist/plugins/smart-paste/locales/pt.d.ts.map +1 -0
- package/dist/plugins/smart-paste/locales/ru.d.ts +4 -0
- package/dist/plugins/smart-paste/locales/ru.d.ts.map +1 -0
- package/dist/plugins/smart-paste/locales/zh.d.ts +4 -0
- package/dist/plugins/smart-paste/locales/zh.d.ts.map +1 -0
- package/dist/plugins/smart-paste.mjs +2 -0
- package/dist/plugins/smart-paste.mjs.map +1 -0
- package/dist/plugins/strikethrough/StrikethroughLocale.d.ts +1 -8
- package/dist/plugins/strikethrough/StrikethroughLocale.d.ts.map +1 -1
- package/dist/plugins/strikethrough/StrikethroughPlugin.d.ts +1 -3
- package/dist/plugins/strikethrough/StrikethroughPlugin.d.ts.map +1 -1
- package/dist/plugins/strikethrough/index.d.ts +2 -0
- package/dist/plugins/strikethrough/index.d.ts.map +1 -1
- package/dist/plugins/strikethrough/locales/ar.d.ts +4 -0
- package/dist/plugins/strikethrough/locales/ar.d.ts.map +1 -0
- package/dist/plugins/strikethrough/locales/de.d.ts +4 -0
- package/dist/plugins/strikethrough/locales/de.d.ts.map +1 -0
- package/dist/plugins/strikethrough/locales/es.d.ts +4 -0
- package/dist/plugins/strikethrough/locales/es.d.ts.map +1 -0
- package/dist/plugins/strikethrough/locales/fr.d.ts +4 -0
- package/dist/plugins/strikethrough/locales/fr.d.ts.map +1 -0
- package/dist/plugins/strikethrough/locales/hi.d.ts +4 -0
- package/dist/plugins/strikethrough/locales/hi.d.ts.map +1 -0
- package/dist/plugins/strikethrough/locales/pt.d.ts +4 -0
- package/dist/plugins/strikethrough/locales/pt.d.ts.map +1 -0
- package/dist/plugins/strikethrough/locales/ru.d.ts +4 -0
- package/dist/plugins/strikethrough/locales/ru.d.ts.map +1 -0
- package/dist/plugins/strikethrough/locales/zh.d.ts +4 -0
- package/dist/plugins/strikethrough/locales/zh.d.ts.map +1 -0
- package/dist/plugins/strikethrough.mjs +1 -4
- package/dist/plugins/strikethrough.mjs.map +1 -1
- package/dist/plugins/super-sub/SuperSubLocale.d.ts +1 -8
- package/dist/plugins/super-sub/SuperSubLocale.d.ts.map +1 -1
- package/dist/plugins/super-sub/SuperSubPlugin.d.ts +1 -3
- package/dist/plugins/super-sub/SuperSubPlugin.d.ts.map +1 -1
- package/dist/plugins/super-sub/index.d.ts +2 -0
- package/dist/plugins/super-sub/index.d.ts.map +1 -1
- package/dist/plugins/super-sub/locales/ar.d.ts +4 -0
- package/dist/plugins/super-sub/locales/ar.d.ts.map +1 -0
- package/dist/plugins/super-sub/locales/de.d.ts +4 -0
- package/dist/plugins/super-sub/locales/de.d.ts.map +1 -0
- package/dist/plugins/super-sub/locales/es.d.ts +4 -0
- package/dist/plugins/super-sub/locales/es.d.ts.map +1 -0
- package/dist/plugins/super-sub/locales/fr.d.ts +4 -0
- package/dist/plugins/super-sub/locales/fr.d.ts.map +1 -0
- package/dist/plugins/super-sub/locales/hi.d.ts +4 -0
- package/dist/plugins/super-sub/locales/hi.d.ts.map +1 -0
- package/dist/plugins/super-sub/locales/pt.d.ts +4 -0
- package/dist/plugins/super-sub/locales/pt.d.ts.map +1 -0
- package/dist/plugins/super-sub/locales/ru.d.ts +4 -0
- package/dist/plugins/super-sub/locales/ru.d.ts.map +1 -0
- package/dist/plugins/super-sub/locales/zh.d.ts +4 -0
- package/dist/plugins/super-sub/locales/zh.d.ts.map +1 -0
- package/dist/plugins/super-sub.mjs +1 -4
- package/dist/plugins/super-sub.mjs.map +1 -1
- package/dist/plugins/table/TableCommands.d.ts +8 -8
- package/dist/plugins/table/TableCommands.d.ts.map +1 -1
- package/dist/plugins/table/TableContextMenu.d.ts.map +1 -1
- package/dist/plugins/table/TableControlsDOM.d.ts +4 -4
- package/dist/plugins/table/TableControlsDOM.d.ts.map +1 -1
- package/dist/plugins/table/TableLocale.d.ts +1 -8
- package/dist/plugins/table/TableLocale.d.ts.map +1 -1
- package/dist/plugins/table/TableNavigation.d.ts +1 -1
- package/dist/plugins/table/TableNavigation.d.ts.map +1 -1
- package/dist/plugins/table/TablePlugin.d.ts +3 -5
- package/dist/plugins/table/TablePlugin.d.ts.map +1 -1
- package/dist/plugins/table/TableSelection.d.ts +2 -0
- package/dist/plugins/table/TableSelection.d.ts.map +1 -1
- package/dist/plugins/table/index.d.ts +1 -5
- package/dist/plugins/table/index.d.ts.map +1 -1
- package/dist/plugins/table/locales/ar.d.ts +4 -0
- package/dist/plugins/table/locales/ar.d.ts.map +1 -0
- package/dist/plugins/table/locales/de.d.ts +4 -0
- package/dist/plugins/table/locales/de.d.ts.map +1 -0
- package/dist/plugins/table/locales/es.d.ts +4 -0
- package/dist/plugins/table/locales/es.d.ts.map +1 -0
- package/dist/plugins/table/locales/fr.d.ts +4 -0
- package/dist/plugins/table/locales/fr.d.ts.map +1 -0
- package/dist/plugins/table/locales/hi.d.ts +4 -0
- package/dist/plugins/table/locales/hi.d.ts.map +1 -0
- package/dist/plugins/table/locales/pt.d.ts +4 -0
- package/dist/plugins/table/locales/pt.d.ts.map +1 -0
- package/dist/plugins/table/locales/ru.d.ts +4 -0
- package/dist/plugins/table/locales/ru.d.ts.map +1 -0
- package/dist/plugins/table/locales/zh.d.ts +4 -0
- package/dist/plugins/table/locales/zh.d.ts.map +1 -0
- package/dist/plugins/table.mjs +1 -20
- package/dist/plugins/table.mjs.map +1 -1
- package/dist/plugins/text-color/TextColorLocale.d.ts +1 -8
- package/dist/plugins/text-color/TextColorLocale.d.ts.map +1 -1
- package/dist/plugins/text-color/TextColorPlugin.d.ts +1 -3
- package/dist/plugins/text-color/TextColorPlugin.d.ts.map +1 -1
- package/dist/plugins/text-color/index.d.ts +2 -0
- package/dist/plugins/text-color/index.d.ts.map +1 -1
- package/dist/plugins/text-color/locales/ar.d.ts +4 -0
- package/dist/plugins/text-color/locales/ar.d.ts.map +1 -0
- package/dist/plugins/text-color/locales/de.d.ts +4 -0
- package/dist/plugins/text-color/locales/de.d.ts.map +1 -0
- package/dist/plugins/text-color/locales/es.d.ts +4 -0
- package/dist/plugins/text-color/locales/es.d.ts.map +1 -0
- package/dist/plugins/text-color/locales/fr.d.ts +4 -0
- package/dist/plugins/text-color/locales/fr.d.ts.map +1 -0
- package/dist/plugins/text-color/locales/hi.d.ts +4 -0
- package/dist/plugins/text-color/locales/hi.d.ts.map +1 -0
- package/dist/plugins/text-color/locales/pt.d.ts +4 -0
- package/dist/plugins/text-color/locales/pt.d.ts.map +1 -0
- package/dist/plugins/text-color/locales/ru.d.ts +4 -0
- package/dist/plugins/text-color/locales/ru.d.ts.map +1 -0
- package/dist/plugins/text-color/locales/zh.d.ts +4 -0
- package/dist/plugins/text-color/locales/zh.d.ts.map +1 -0
- package/dist/plugins/text-color.mjs +1 -4
- package/dist/plugins/text-color.mjs.map +1 -1
- package/dist/plugins/text-direction/DirectionDetection.d.ts +17 -0
- package/dist/plugins/text-direction/DirectionDetection.d.ts.map +1 -0
- package/dist/plugins/text-direction/ShiftDirectionHandler.d.ts +12 -0
- package/dist/plugins/text-direction/ShiftDirectionHandler.d.ts.map +1 -0
- package/dist/plugins/text-direction/TextDirectionCorePlugin.d.ts +35 -0
- package/dist/plugins/text-direction/TextDirectionCorePlugin.d.ts.map +1 -0
- package/dist/plugins/text-direction/TextDirectionLocale.d.ts +20 -0
- package/dist/plugins/text-direction/TextDirectionLocale.d.ts.map +1 -0
- package/dist/plugins/text-direction/TextDirectionMiddleware.d.ts +18 -0
- package/dist/plugins/text-direction/TextDirectionMiddleware.d.ts.map +1 -0
- package/dist/plugins/text-direction/TextDirectionPlugin.d.ts +59 -0
- package/dist/plugins/text-direction/TextDirectionPlugin.d.ts.map +1 -0
- package/dist/plugins/text-direction/index.d.ts +5 -0
- package/dist/plugins/text-direction/index.d.ts.map +1 -0
- package/dist/plugins/text-direction/locales/ar.d.ts +4 -0
- package/dist/plugins/text-direction/locales/ar.d.ts.map +1 -0
- package/dist/plugins/text-direction/locales/de.d.ts +4 -0
- package/dist/plugins/text-direction/locales/de.d.ts.map +1 -0
- package/dist/plugins/text-direction/locales/es.d.ts +4 -0
- package/dist/plugins/text-direction/locales/es.d.ts.map +1 -0
- package/dist/plugins/text-direction/locales/fr.d.ts +4 -0
- package/dist/plugins/text-direction/locales/fr.d.ts.map +1 -0
- package/dist/plugins/text-direction/locales/hi.d.ts +4 -0
- package/dist/plugins/text-direction/locales/hi.d.ts.map +1 -0
- package/dist/plugins/text-direction/locales/pt.d.ts +4 -0
- package/dist/plugins/text-direction/locales/pt.d.ts.map +1 -0
- package/dist/plugins/text-direction/locales/ru.d.ts +4 -0
- package/dist/plugins/text-direction/locales/ru.d.ts.map +1 -0
- package/dist/plugins/text-direction/locales/zh.d.ts +4 -0
- package/dist/plugins/text-direction/locales/zh.d.ts.map +1 -0
- package/dist/plugins/text-direction-advanced/index.d.ts +5 -0
- package/dist/plugins/text-direction-advanced/index.d.ts.map +1 -0
- package/dist/plugins/text-direction-advanced.mjs +2 -0
- package/dist/plugins/text-direction-advanced.mjs.map +1 -0
- package/dist/plugins/text-direction.mjs +2 -0
- package/dist/plugins/text-direction.mjs.map +1 -0
- package/dist/plugins/text-formatting/TextFormattingLocale.d.ts +1 -8
- package/dist/plugins/text-formatting/TextFormattingLocale.d.ts.map +1 -1
- package/dist/plugins/text-formatting/TextFormattingPlugin.d.ts +1 -3
- package/dist/plugins/text-formatting/TextFormattingPlugin.d.ts.map +1 -1
- package/dist/plugins/text-formatting/index.d.ts +2 -0
- package/dist/plugins/text-formatting/index.d.ts.map +1 -1
- package/dist/plugins/text-formatting/locales/ar.d.ts +4 -0
- package/dist/plugins/text-formatting/locales/ar.d.ts.map +1 -0
- package/dist/plugins/text-formatting/locales/de.d.ts +4 -0
- package/dist/plugins/text-formatting/locales/de.d.ts.map +1 -0
- package/dist/plugins/text-formatting/locales/es.d.ts +4 -0
- package/dist/plugins/text-formatting/locales/es.d.ts.map +1 -0
- package/dist/plugins/text-formatting/locales/fr.d.ts +4 -0
- package/dist/plugins/text-formatting/locales/fr.d.ts.map +1 -0
- package/dist/plugins/text-formatting/locales/hi.d.ts +4 -0
- package/dist/plugins/text-formatting/locales/hi.d.ts.map +1 -0
- package/dist/plugins/text-formatting/locales/pt.d.ts +4 -0
- package/dist/plugins/text-formatting/locales/pt.d.ts.map +1 -0
- package/dist/plugins/text-formatting/locales/ru.d.ts +4 -0
- package/dist/plugins/text-formatting/locales/ru.d.ts.map +1 -0
- package/dist/plugins/text-formatting/locales/zh.d.ts +4 -0
- package/dist/plugins/text-formatting/locales/zh.d.ts.map +1 -0
- package/dist/plugins/text-formatting.mjs +1 -4
- package/dist/plugins/text-formatting.mjs.map +1 -1
- package/dist/plugins/toolbar/ToolbarItem.d.ts +2 -18
- package/dist/plugins/toolbar/ToolbarItem.d.ts.map +1 -1
- package/dist/plugins/toolbar/ToolbarKeyboardNav.d.ts +5 -11
- package/dist/plugins/toolbar/ToolbarKeyboardNav.d.ts.map +1 -1
- package/dist/plugins/toolbar/ToolbarLocale.d.ts +2 -8
- package/dist/plugins/toolbar/ToolbarLocale.d.ts.map +1 -1
- package/dist/plugins/toolbar/ToolbarOverflowController.d.ts.map +1 -1
- package/dist/plugins/toolbar/ToolbarPlugin.d.ts +2 -2
- package/dist/plugins/toolbar/ToolbarPlugin.d.ts.map +1 -1
- package/dist/plugins/toolbar/ToolbarPopupController.d.ts +3 -1
- package/dist/plugins/toolbar/ToolbarPopupController.d.ts.map +1 -1
- package/dist/plugins/toolbar/ToolbarRenderers.d.ts +2 -1
- package/dist/plugins/toolbar/ToolbarRenderers.d.ts.map +1 -1
- package/dist/plugins/toolbar/index.d.ts +4 -1
- package/dist/plugins/toolbar/index.d.ts.map +1 -1
- package/dist/plugins/toolbar/locales/ar.d.ts +4 -0
- package/dist/plugins/toolbar/locales/ar.d.ts.map +1 -0
- package/dist/plugins/toolbar/locales/de.d.ts +4 -0
- package/dist/plugins/toolbar/locales/de.d.ts.map +1 -0
- package/dist/plugins/toolbar/locales/es.d.ts +4 -0
- package/dist/plugins/toolbar/locales/es.d.ts.map +1 -0
- package/dist/plugins/toolbar/locales/fr.d.ts +4 -0
- package/dist/plugins/toolbar/locales/fr.d.ts.map +1 -0
- package/dist/plugins/toolbar/locales/hi.d.ts +4 -0
- package/dist/plugins/toolbar/locales/hi.d.ts.map +1 -0
- package/dist/plugins/toolbar/locales/pt.d.ts +4 -0
- package/dist/plugins/toolbar/locales/pt.d.ts.map +1 -0
- package/dist/plugins/toolbar/locales/ru.d.ts +4 -0
- package/dist/plugins/toolbar/locales/ru.d.ts.map +1 -0
- package/dist/plugins/toolbar/locales/zh.d.ts +4 -0
- package/dist/plugins/toolbar/locales/zh.d.ts.map +1 -0
- package/dist/plugins/toolbar.mjs +1 -7
- package/dist/plugins/toolbar.mjs.map +1 -1
- package/dist/presets/FullPreset.d.ts +4 -1
- package/dist/presets/FullPreset.d.ts.map +1 -1
- package/dist/presets/MinimalPreset.d.ts +3 -0
- package/dist/presets/MinimalPreset.d.ts.map +1 -1
- package/dist/presets/PresetTypes.d.ts +4 -0
- package/dist/presets/PresetTypes.d.ts.map +1 -1
- package/dist/presets/full.d.ts +17 -0
- package/dist/presets/full.d.ts.map +1 -0
- package/dist/presets/full.mjs +2 -0
- package/dist/presets/full.mjs.map +1 -0
- package/dist/presets/minimal.d.ts +17 -0
- package/dist/presets/minimal.d.ts.map +1 -0
- package/dist/presets/minimal.mjs +2 -0
- package/dist/presets/minimal.mjs.map +1 -0
- package/dist/presets.d.ts +20 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.mjs +2 -0
- package/dist/presets.mjs.map +1 -0
- package/dist/serialization/CSSClassCollector.d.ts.map +1 -0
- package/dist/serialization/ContentHTMLTypes.d.ts.map +1 -0
- package/dist/serialization/DocumentParser.d.ts.map +1 -0
- package/dist/{editor → serialization}/DocumentSerializer.d.ts +2 -0
- package/dist/serialization/DocumentSerializer.d.ts.map +1 -0
- package/dist/{editor → serialization}/MarkSerializer.d.ts +3 -2
- package/dist/serialization/MarkSerializer.d.ts.map +1 -0
- package/dist/serialization/index.d.ts +12 -0
- package/dist/serialization/index.d.ts.map +1 -0
- package/dist/state/BlockBoundaryMovement.d.ts +7 -0
- package/dist/state/BlockBoundaryMovement.d.ts.map +1 -0
- package/dist/state/InlineContentOps.d.ts.map +1 -1
- package/dist/{model/NavigationUtils.d.ts → state/NavigationQueries.d.ts} +3 -3
- package/dist/state/NavigationQueries.d.ts.map +1 -0
- package/dist/state/StepInversion.d.ts +7 -0
- package/dist/state/StepInversion.d.ts.map +1 -0
- package/dist/state/Steps.d.ts +108 -0
- package/dist/state/Steps.d.ts.map +1 -0
- package/dist/state/Transaction.d.ts +5 -174
- package/dist/state/Transaction.d.ts.map +1 -1
- package/dist/state/TransactionBuilder.d.ts +69 -0
- package/dist/state/TransactionBuilder.d.ts.map +1 -0
- package/dist/test/PluginTestUtils.d.ts +0 -2
- package/dist/test/PluginTestUtils.d.ts.map +1 -1
- package/dist/test/TestUtils.d.ts +2 -2
- package/dist/test/TestUtils.d.ts.map +1 -1
- package/dist/view/BlockRendering.d.ts +10 -0
- package/dist/view/BlockRendering.d.ts.map +1 -0
- package/dist/view/BlockWrapperManagement.d.ts +27 -0
- package/dist/view/BlockWrapperManagement.d.ts.map +1 -0
- package/dist/view/CaretNavigation.d.ts +1 -8
- package/dist/view/CaretNavigation.d.ts.map +1 -1
- package/dist/view/CursorWrapper.d.ts.map +1 -1
- package/dist/view/DecorationRendering.d.ts +17 -0
- package/dist/view/DecorationRendering.d.ts.map +1 -0
- package/dist/view/DomUtils.d.ts +13 -0
- package/dist/view/DomUtils.d.ts.map +1 -0
- package/dist/view/EditorView.d.ts +9 -12
- package/dist/view/EditorView.d.ts.map +1 -1
- package/dist/view/GapCursorNavigation.d.ts +12 -0
- package/dist/view/GapCursorNavigation.d.ts.map +1 -0
- package/dist/view/InlineRendering.d.ts +11 -0
- package/dist/view/InlineRendering.d.ts.map +1 -0
- package/dist/view/MarkRendering.d.ts +5 -0
- package/dist/view/MarkRendering.d.ts.map +1 -1
- package/dist/view/Reconciler.d.ts +2 -6
- package/dist/view/Reconciler.d.ts.map +1 -1
- package/dist/view/SelectionSync.d.ts +41 -2
- package/dist/view/SelectionSync.d.ts.map +1 -1
- package/dist/view/ViewMovementCommands.d.ts.map +1 -1
- package/package.json +218 -8
- package/dist/chunks/AttrRegistry-D9Jx_RVb.mjs +0 -16
- package/dist/chunks/AttrRegistry-D9Jx_RVb.mjs.map +0 -1
- package/dist/chunks/AttributedMarkCommands-BtLea72z.mjs +0 -80
- package/dist/chunks/AttributedMarkCommands-BtLea72z.mjs.map +0 -1
- package/dist/chunks/CaretNavigation-7JYpIKbs.mjs +0 -311
- package/dist/chunks/CaretNavigation-7JYpIKbs.mjs.map +0 -1
- package/dist/chunks/ColorGrid--lBQ7jCK.mjs +0 -81
- package/dist/chunks/ColorGrid--lBQ7jCK.mjs.map +0 -1
- package/dist/chunks/ColorPickerPopup-TpIRlXc8.mjs +0 -37
- package/dist/chunks/ColorPickerPopup-TpIRlXc8.mjs.map +0 -1
- package/dist/chunks/ColorValidation-CV4f1wu6.mjs +0 -39
- package/dist/chunks/Document-Brtw2jL1.mjs +0 -190
- package/dist/chunks/Document-Brtw2jL1.mjs.map +0 -1
- package/dist/chunks/HTMLUtils-DTqQzcKR.mjs +0 -35
- package/dist/chunks/HTMLUtils-DTqQzcKR.mjs.map +0 -1
- package/dist/chunks/MarkCommands-6RUJ4L3r.mjs +0 -94
- package/dist/chunks/MarkCommands-6RUJ4L3r.mjs.map +0 -1
- package/dist/chunks/NavigationUtils-Cspt2ZrK.mjs +0 -47
- package/dist/chunks/NavigationUtils-Cspt2ZrK.mjs.map +0 -1
- package/dist/chunks/NodeResolver-C2XYkeOi.mjs +0 -81
- package/dist/chunks/NodeResolver-C2XYkeOi.mjs.map +0 -1
- package/dist/chunks/NodeSpec-NZVvcCuH.mjs +0 -8
- package/dist/chunks/NodeSpec-NZVvcCuH.mjs.map +0 -1
- package/dist/chunks/Platform-S_xqIqcM.mjs +0 -26
- package/dist/chunks/Platform-S_xqIqcM.mjs.map +0 -1
- package/dist/chunks/PopupPositioning-CgjgAKjp.mjs +0 -34
- package/dist/chunks/PopupPositioning-CgjgAKjp.mjs.map +0 -1
- package/dist/chunks/RangeIterator-Bh4Vl_6D.mjs +0 -16
- package/dist/chunks/Selection-BRTab5hO.mjs +0 -52
- package/dist/chunks/StyleRuntime-CP4NCwKT.mjs +0 -235
- package/dist/chunks/ToolbarItem-BpZggUGo.mjs +0 -8
- package/dist/chunks/ToolbarItem-BpZggUGo.mjs.map +0 -1
- package/dist/chunks/ToolbarKeyboardNav-DhpL8zNV.mjs +0 -46
- package/dist/chunks/ToolbarKeyboardNav-DhpL8zNV.mjs.map +0 -1
- package/dist/chunks/TypeBrands-C09nE2qO.mjs +0 -27
- package/dist/chunks/index--7pBhSF4.mjs +0 -542
- package/dist/chunks/index--7pBhSF4.mjs.map +0 -1
- package/dist/chunks/index-BXCkjDax.mjs +0 -161
- package/dist/chunks/index-BXCkjDax.mjs.map +0 -1
- package/dist/chunks/index-BXtw5PNN.mjs +0 -39
- package/dist/chunks/index-BXtw5PNN.mjs.map +0 -1
- package/dist/chunks/index-BcDRT4K2.mjs +0 -1019
- package/dist/chunks/index-BcDRT4K2.mjs.map +0 -1
- package/dist/chunks/index-BjFBWBOC.mjs +0 -168
- package/dist/chunks/index-BjFBWBOC.mjs.map +0 -1
- package/dist/chunks/index-C1opJocO.mjs +0 -92
- package/dist/chunks/index-C1opJocO.mjs.map +0 -1
- package/dist/chunks/index-CCyqQ0Dz.mjs +0 -228
- package/dist/chunks/index-CCyqQ0Dz.mjs.map +0 -1
- package/dist/chunks/index-Cd3uJLP3.mjs +0 -73
- package/dist/chunks/index-Cd3uJLP3.mjs.map +0 -1
- package/dist/chunks/index-DSAuGP4n.mjs +0 -410
- package/dist/chunks/index-DSAuGP4n.mjs.map +0 -1
- package/dist/chunks/index-DtRfqsq5.mjs +0 -924
- package/dist/chunks/index-DtRfqsq5.mjs.map +0 -1
- package/dist/chunks/index-Dum8yE_t.mjs +0 -62
- package/dist/chunks/index-Dum8yE_t.mjs.map +0 -1
- package/dist/chunks/index-DxbQirny.mjs +0 -63
- package/dist/chunks/index-DxbQirny.mjs.map +0 -1
- package/dist/chunks/index-ErZ5_a1o.mjs +0 -296
- package/dist/chunks/index-ErZ5_a1o.mjs.map +0 -1
- package/dist/chunks/index-WpbK_s_H.mjs +0 -119
- package/dist/chunks/index-WpbK_s_H.mjs.map +0 -1
- package/dist/chunks/index-WrqH1wG8.mjs +0 -50
- package/dist/chunks/index-WrqH1wG8.mjs.map +0 -1
- package/dist/chunks/index-fsVJLutn.mjs +0 -118
- package/dist/chunks/index-fsVJLutn.mjs.map +0 -1
- package/dist/chunks/index-fx3KIap3.mjs +0 -50
- package/dist/chunks/index-fx3KIap3.mjs.map +0 -1
- package/dist/chunks/index-oOJo-ywB.mjs +0 -467
- package/dist/chunks/index-oOJo-ywB.mjs.map +0 -1
- package/dist/chunks/index-toj88jtL.mjs +0 -101
- package/dist/chunks/index-toj88jtL.mjs.map +0 -1
- package/dist/chunks/resolvePluginLocale-B4w1OkPy.mjs +0 -34
- package/dist/chunks/resolvePluginLocale-B4w1OkPy.mjs.map +0 -1
- package/dist/editor/CSSClassCollector.d.ts.map +0 -1
- package/dist/editor/ContentHTMLTypes.d.ts.map +0 -1
- package/dist/editor/DocumentParser.d.ts.map +0 -1
- package/dist/editor/DocumentSerializer.d.ts.map +0 -1
- package/dist/editor/MarkSerializer.d.ts.map +0 -1
- package/dist/editor/PaperSize.d.ts.map +0 -1
- package/dist/i18n/resolvePluginLocale.d.ts +0 -3
- package/dist/i18n/resolvePluginLocale.d.ts.map +0 -1
- package/dist/model/BuiltinSpecs.d.ts.map +0 -1
- package/dist/model/HTMLParser.d.ts.map +0 -1
- package/dist/model/NavigationUtils.d.ts.map +0 -1
- package/dist/view/Platform.d.ts.map +0 -1
- /package/dist/{input → model}/InputRule.d.ts +0 -0
- /package/dist/{input → model}/InputRuleRegistry.d.ts +0 -0
- /package/dist/{input → model}/Keymap.d.ts +0 -0
- /package/dist/{input → model}/KeymapRegistry.d.ts +0 -0
- /package/dist/{editor → model}/PaperSize.d.ts +0 -0
- /package/dist/{editor → serialization}/CSSClassCollector.d.ts +0 -0
- /package/dist/{editor → serialization}/ContentHTMLTypes.d.ts +0 -0
- /package/dist/{editor → serialization}/DocumentParser.d.ts +0 -0
|
@@ -1,467 +0,0 @@
|
|
|
1
|
-
import { e as n, c as t, v as o, m as e } from "./Document-Brtw2jL1.mjs";
|
|
2
|
-
import { c as r, i } from "./NavigationUtils-Cspt2ZrK.mjs";
|
|
3
|
-
import { i as l, a as c, b as a } from "./Selection-BRTab5hO.mjs";
|
|
4
|
-
import { i as s, m as f, j as u, g as d, r as h, c as k } from "./CaretNavigation-7JYpIKbs.mjs";
|
|
5
|
-
import { m } from "./TypeBrands-C09nE2qO.mjs";
|
|
6
|
-
import { b as w } from "./MarkCommands-6RUJ4L3r.mjs";
|
|
7
|
-
import { i as b, g } from "./Platform-S_xqIqcM.mjs";
|
|
8
|
-
const I = "undefined" != typeof Intl && "Segmenter" in Intl ? new Intl.Segmenter(void 0, { granularity: "grapheme" }) : null;
|
|
9
|
-
function v(n2, t2) {
|
|
10
|
-
if (t2 >= n2.length || 0 === n2.length) return 0;
|
|
11
|
-
if (I) {
|
|
12
|
-
for (const o2 of I.segment(n2)) if (o2.index >= t2) return o2.segment.length;
|
|
13
|
-
return 0;
|
|
14
|
-
}
|
|
15
|
-
return 1;
|
|
16
|
-
}
|
|
17
|
-
function x(n2, t2) {
|
|
18
|
-
if (t2 <= 0 || 0 === n2.length) return 0;
|
|
19
|
-
if (I) {
|
|
20
|
-
let o2 = 1;
|
|
21
|
-
for (const e2 of I.segment(n2)) {
|
|
22
|
-
if (e2.index + e2.segment.length >= t2) {
|
|
23
|
-
o2 = e2.segment.length;
|
|
24
|
-
break;
|
|
25
|
-
}
|
|
26
|
-
o2 = e2.segment.length;
|
|
27
|
-
}
|
|
28
|
-
return o2;
|
|
29
|
-
}
|
|
30
|
-
return 1;
|
|
31
|
-
}
|
|
32
|
-
function y(t2, o2) {
|
|
33
|
-
let e2 = o2 - 1;
|
|
34
|
-
for (; e2 >= 0; ) {
|
|
35
|
-
const o3 = n(t2, e2);
|
|
36
|
-
if (!o3 || "inline" === o3.kind) break;
|
|
37
|
-
if (!/\s/.test(o3.char)) break;
|
|
38
|
-
e2--;
|
|
39
|
-
}
|
|
40
|
-
if (e2 >= 0) {
|
|
41
|
-
const o3 = n(t2, e2);
|
|
42
|
-
if ("inline" === o3?.kind) return e2;
|
|
43
|
-
}
|
|
44
|
-
for (; e2 >= 0; ) {
|
|
45
|
-
const o3 = n(t2, e2);
|
|
46
|
-
if (!o3 || "inline" === o3.kind) break;
|
|
47
|
-
if (/\s/.test(o3.char)) break;
|
|
48
|
-
e2--;
|
|
49
|
-
}
|
|
50
|
-
return e2 + 1;
|
|
51
|
-
}
|
|
52
|
-
function B(o2, e2) {
|
|
53
|
-
const r2 = t(o2);
|
|
54
|
-
let i2 = e2;
|
|
55
|
-
for (; i2 < r2; ) {
|
|
56
|
-
const t2 = n(o2, i2);
|
|
57
|
-
if (!t2 || "inline" === t2.kind) break;
|
|
58
|
-
if (/\s/.test(t2.char)) break;
|
|
59
|
-
i2++;
|
|
60
|
-
}
|
|
61
|
-
if (i2 === e2 && i2 < r2) {
|
|
62
|
-
const t2 = n(o2, i2);
|
|
63
|
-
if ("inline" === t2?.kind) return i2 + 1;
|
|
64
|
-
}
|
|
65
|
-
for (; i2 < r2; ) {
|
|
66
|
-
const t2 = n(o2, i2);
|
|
67
|
-
if (!t2 || "inline" === t2.kind) break;
|
|
68
|
-
if (!/\s/.test(t2.char)) break;
|
|
69
|
-
i2++;
|
|
70
|
-
}
|
|
71
|
-
return i2;
|
|
72
|
-
}
|
|
73
|
-
function p(n2) {
|
|
74
|
-
const t2 = n2.selection;
|
|
75
|
-
return l(t2) || c(t2) ? null : { blockId: t2.head.blockId, offset: t2.head.offset };
|
|
76
|
-
}
|
|
77
|
-
function A(n2, t2, o2) {
|
|
78
|
-
const e2 = n2.getBlockOrder(), r2 = e2.indexOf(t2);
|
|
79
|
-
if (r2 < 0) return null;
|
|
80
|
-
const i2 = "forward" === o2 ? r2 + 1 : r2 - 1;
|
|
81
|
-
return i2 < 0 || i2 >= e2.length ? null : e2[i2] ?? null;
|
|
82
|
-
}
|
|
83
|
-
function C(s2) {
|
|
84
|
-
const d2 = s2.selection;
|
|
85
|
-
if (l(d2) || c(d2)) return null;
|
|
86
|
-
if (!a(d2)) return f(s2, d2.head.blockId, d2.head.offset);
|
|
87
|
-
const h2 = d2.anchor.blockId, k2 = s2.getBlock(h2);
|
|
88
|
-
if (!k2) return null;
|
|
89
|
-
const m2 = d2.anchor.offset;
|
|
90
|
-
if (m2 < t(k2)) {
|
|
91
|
-
const t2 = n(k2, m2);
|
|
92
|
-
if ("inline" === t2?.kind) return f(s2, h2, m2 + 1);
|
|
93
|
-
const r2 = v(e(k2), o(k2, m2)) || 1;
|
|
94
|
-
return f(s2, h2, m2 + r2);
|
|
95
|
-
}
|
|
96
|
-
const w2 = A(s2, h2, "forward");
|
|
97
|
-
return w2 && r(s2, h2, w2) ? i(s2, w2) ? u(s2, w2) : f(s2, w2, 0) : null;
|
|
98
|
-
}
|
|
99
|
-
function M(s2) {
|
|
100
|
-
const d2 = s2.selection;
|
|
101
|
-
if (l(d2) || c(d2)) return null;
|
|
102
|
-
if (!a(d2)) return f(s2, d2.head.blockId, d2.head.offset);
|
|
103
|
-
const h2 = d2.anchor.blockId, k2 = s2.getBlock(h2);
|
|
104
|
-
if (!k2) return null;
|
|
105
|
-
const m2 = d2.anchor.offset;
|
|
106
|
-
if (m2 > 0) {
|
|
107
|
-
const t2 = n(k2, m2 - 1);
|
|
108
|
-
if ("inline" === t2?.kind) return f(s2, h2, m2 - 1);
|
|
109
|
-
const r2 = x(e(k2), o(k2, m2)) || 1;
|
|
110
|
-
return f(s2, h2, m2 - r2);
|
|
111
|
-
}
|
|
112
|
-
const w2 = A(s2, h2, "backward");
|
|
113
|
-
if (!w2) return null;
|
|
114
|
-
if (!r(s2, h2, w2)) return null;
|
|
115
|
-
if (i(s2, w2)) return u(s2, w2);
|
|
116
|
-
const b2 = s2.getBlock(w2);
|
|
117
|
-
return b2 ? f(s2, w2, t(b2)) : null;
|
|
118
|
-
}
|
|
119
|
-
function S(n2) {
|
|
120
|
-
const t2 = n2.selection;
|
|
121
|
-
if (l(t2) || c(t2)) return null;
|
|
122
|
-
const o2 = a(t2) ? t2.anchor.blockId : t2.head.blockId;
|
|
123
|
-
return 0 === (a(t2) ? t2.anchor.offset : t2.head.offset) ? null : f(n2, o2, 0);
|
|
124
|
-
}
|
|
125
|
-
function E(n2) {
|
|
126
|
-
const o2 = n2.selection;
|
|
127
|
-
if (l(o2) || c(o2)) return null;
|
|
128
|
-
const e2 = a(o2) ? o2.anchor.blockId : o2.head.blockId, r2 = n2.getBlock(e2);
|
|
129
|
-
if (!r2) return null;
|
|
130
|
-
const i2 = t(r2);
|
|
131
|
-
return (a(o2) ? o2.anchor.offset : o2.head.offset) === i2 ? null : f(n2, e2, i2);
|
|
132
|
-
}
|
|
133
|
-
function T(n2) {
|
|
134
|
-
const t2 = n2.selection;
|
|
135
|
-
if (l(t2) || c(t2)) return null;
|
|
136
|
-
const o2 = n2.getBlockOrder()[0];
|
|
137
|
-
return o2 ? i(n2, o2) ? u(n2, o2) : f(n2, o2, 0) : null;
|
|
138
|
-
}
|
|
139
|
-
function V(n2) {
|
|
140
|
-
const o2 = n2.selection;
|
|
141
|
-
if (l(o2) || c(o2)) return null;
|
|
142
|
-
const e2 = n2.getBlockOrder(), r2 = e2[e2.length - 1];
|
|
143
|
-
if (!r2) return null;
|
|
144
|
-
if (i(n2, r2)) return u(n2, r2);
|
|
145
|
-
const a2 = n2.getBlock(r2);
|
|
146
|
-
return a2 ? f(n2, r2, t(a2)) : null;
|
|
147
|
-
}
|
|
148
|
-
function O(i2) {
|
|
149
|
-
const a2 = p(i2);
|
|
150
|
-
if (!a2) return null;
|
|
151
|
-
const f2 = i2.selection;
|
|
152
|
-
if (l(f2) || c(f2)) return null;
|
|
153
|
-
const u2 = i2.getBlock(a2.blockId);
|
|
154
|
-
if (!u2) return null;
|
|
155
|
-
const d2 = t(u2);
|
|
156
|
-
if (a2.offset < d2) {
|
|
157
|
-
const t2 = n(u2, a2.offset), r2 = "inline" === t2?.kind ? 1 : v(e(u2), o(u2, a2.offset)) || 1;
|
|
158
|
-
return s(i2, f2.anchor.blockId, f2.anchor.offset, a2.blockId, a2.offset + r2);
|
|
159
|
-
}
|
|
160
|
-
const h2 = A(i2, a2.blockId, "forward");
|
|
161
|
-
return h2 && r(i2, a2.blockId, h2) ? s(i2, f2.anchor.blockId, f2.anchor.offset, h2, 0) : null;
|
|
162
|
-
}
|
|
163
|
-
function L(i2) {
|
|
164
|
-
const a2 = p(i2);
|
|
165
|
-
if (!a2) return null;
|
|
166
|
-
const f2 = i2.selection;
|
|
167
|
-
if (l(f2) || c(f2)) return null;
|
|
168
|
-
if (a2.offset > 0) {
|
|
169
|
-
const t2 = i2.getBlock(a2.blockId);
|
|
170
|
-
if (!t2) return null;
|
|
171
|
-
const r2 = n(t2, a2.offset - 1), l2 = "inline" === r2?.kind ? 1 : x(e(t2), o(t2, a2.offset)) || 1;
|
|
172
|
-
return s(i2, f2.anchor.blockId, f2.anchor.offset, a2.blockId, a2.offset - l2);
|
|
173
|
-
}
|
|
174
|
-
const u2 = A(i2, a2.blockId, "backward");
|
|
175
|
-
if (!u2) return null;
|
|
176
|
-
if (!r(i2, a2.blockId, u2)) return null;
|
|
177
|
-
const d2 = i2.getBlock(u2);
|
|
178
|
-
return d2 ? s(i2, f2.anchor.blockId, f2.anchor.offset, u2, t(d2)) : null;
|
|
179
|
-
}
|
|
180
|
-
function H(n2) {
|
|
181
|
-
const t2 = p(n2);
|
|
182
|
-
if (!t2) return null;
|
|
183
|
-
const o2 = n2.selection;
|
|
184
|
-
return l(o2) || c(o2) || 0 === t2.offset ? null : s(n2, o2.anchor.blockId, o2.anchor.offset, t2.blockId, 0);
|
|
185
|
-
}
|
|
186
|
-
function D(n2) {
|
|
187
|
-
const o2 = p(n2);
|
|
188
|
-
if (!o2) return null;
|
|
189
|
-
const e2 = n2.selection;
|
|
190
|
-
if (l(e2) || c(e2)) return null;
|
|
191
|
-
const r2 = n2.getBlock(o2.blockId);
|
|
192
|
-
if (!r2) return null;
|
|
193
|
-
const i2 = t(r2);
|
|
194
|
-
return o2.offset === i2 ? null : s(n2, e2.anchor.blockId, e2.anchor.offset, o2.blockId, i2);
|
|
195
|
-
}
|
|
196
|
-
function j(n2) {
|
|
197
|
-
const t2 = n2.selection;
|
|
198
|
-
if (l(t2) || c(t2)) return null;
|
|
199
|
-
const o2 = n2.getBlockOrder()[0];
|
|
200
|
-
return o2 ? t2.head.blockId === o2 && 0 === t2.head.offset ? null : s(n2, t2.anchor.blockId, t2.anchor.offset, o2, 0) : null;
|
|
201
|
-
}
|
|
202
|
-
function R(n2) {
|
|
203
|
-
const o2 = n2.selection;
|
|
204
|
-
if (l(o2) || c(o2)) return null;
|
|
205
|
-
const e2 = n2.getBlockOrder(), r2 = e2[e2.length - 1];
|
|
206
|
-
if (!r2) return null;
|
|
207
|
-
const i2 = n2.getBlock(r2);
|
|
208
|
-
if (!i2) return null;
|
|
209
|
-
const a2 = t(i2);
|
|
210
|
-
return o2.head.blockId === r2 && o2.head.offset === a2 ? null : s(n2, o2.anchor.blockId, o2.anchor.offset, r2, a2);
|
|
211
|
-
}
|
|
212
|
-
function z(o2, e2, a2, s2) {
|
|
213
|
-
const k2 = e2.selection;
|
|
214
|
-
if (l(k2) || c(k2)) return null;
|
|
215
|
-
const m2 = d(o2);
|
|
216
|
-
if (!m2?.modify) return $(e2, a2, s2);
|
|
217
|
-
const w2 = m2.anchorNode, b2 = m2.anchorOffset, g2 = m2.focusNode, I2 = m2.focusOffset;
|
|
218
|
-
if (!w2 || !g2) return $(e2, a2, s2);
|
|
219
|
-
try {
|
|
220
|
-
m2.modify("move", a2, s2);
|
|
221
|
-
const l2 = h(o2);
|
|
222
|
-
if (!l2) return null;
|
|
223
|
-
const c2 = l2.anchor.blockId, d2 = k2.anchor.blockId;
|
|
224
|
-
if (c2 !== d2 && !r(e2, d2, c2)) return null;
|
|
225
|
-
let w3 = l2.anchor.offset;
|
|
226
|
-
const b3 = e2.getBlock(c2);
|
|
227
|
-
if (b3) {
|
|
228
|
-
const o3 = n(b3, w3);
|
|
229
|
-
"inline" === o3?.kind && "forward" === a2 && (w3 = Math.min(w3 + 1, t(b3)));
|
|
230
|
-
}
|
|
231
|
-
return i(e2, c2) ? u(e2, c2) : f(e2, c2, w3);
|
|
232
|
-
} finally {
|
|
233
|
-
try {
|
|
234
|
-
m2.setBaseAndExtent(w2, b2, g2, I2);
|
|
235
|
-
} catch {
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
function N(o2, e2, i2, a2) {
|
|
240
|
-
const f2 = e2.selection;
|
|
241
|
-
if (l(f2) || c(f2)) return null;
|
|
242
|
-
const u2 = d(o2);
|
|
243
|
-
if (!u2?.modify) return U(e2, i2, a2);
|
|
244
|
-
const k2 = u2.anchorNode, m2 = u2.anchorOffset, w2 = u2.focusNode, b2 = u2.focusOffset;
|
|
245
|
-
if (!k2 || !w2) return U(e2, i2, a2);
|
|
246
|
-
try {
|
|
247
|
-
u2.modify("extend", i2, a2);
|
|
248
|
-
const l2 = h(o2);
|
|
249
|
-
if (!l2) return null;
|
|
250
|
-
const c2 = f2.head.blockId, d2 = l2.head.blockId;
|
|
251
|
-
if (d2 !== c2 && !r(e2, c2, d2)) return null;
|
|
252
|
-
let k3 = l2.head.offset;
|
|
253
|
-
const m3 = e2.getBlock(l2.head.blockId);
|
|
254
|
-
if (m3) {
|
|
255
|
-
const o3 = n(m3, k3);
|
|
256
|
-
"inline" === o3?.kind && "forward" === i2 && (k3 = Math.min(k3 + 1, t(m3)));
|
|
257
|
-
}
|
|
258
|
-
return s(e2, f2.anchor.blockId, f2.anchor.offset, l2.head.blockId, k3);
|
|
259
|
-
} finally {
|
|
260
|
-
try {
|
|
261
|
-
u2.setBaseAndExtent(k2, m2, w2, b2);
|
|
262
|
-
} catch {
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
function $(n2, o2, e2) {
|
|
267
|
-
return "word" === e2 ? (function(n3, o3) {
|
|
268
|
-
const e3 = n3.selection;
|
|
269
|
-
if (l(e3) || c(e3)) return null;
|
|
270
|
-
const s2 = a(e3) ? e3.anchor.blockId : e3.head.blockId, d2 = a(e3) ? e3.anchor.offset : e3.head.offset, h2 = n3.getBlock(s2);
|
|
271
|
-
if (!h2) return null;
|
|
272
|
-
const k2 = "forward" === o3 ? B(h2, d2) : y(h2, d2);
|
|
273
|
-
return k2 === d2 ? (function(n4, o4, e4) {
|
|
274
|
-
const l2 = n4.getBlockOrder(), c2 = l2.indexOf(o4), a2 = "forward" === e4 ? c2 + 1 : c2 - 1;
|
|
275
|
-
if (a2 < 0 || a2 >= l2.length) return null;
|
|
276
|
-
const s3 = l2[a2];
|
|
277
|
-
if (!s3) return null;
|
|
278
|
-
if (!r(n4, o4, s3)) return null;
|
|
279
|
-
if (i(n4, s3)) return u(n4, s3);
|
|
280
|
-
const d3 = n4.getBlock(s3);
|
|
281
|
-
if (!d3) return null;
|
|
282
|
-
const h3 = "forward" === e4 ? 0 : t(d3);
|
|
283
|
-
return f(n4, s3, h3);
|
|
284
|
-
})(n3, s2, o3) : f(n3, s2, k2);
|
|
285
|
-
})(n2, o2) : "lineboundary" === e2 ? "forward" === o2 ? E(n2) : S(n2) : k(n2, "forward" === o2 ? "down" : "up");
|
|
286
|
-
}
|
|
287
|
-
function U(n2, o2, e2) {
|
|
288
|
-
const a2 = n2.selection;
|
|
289
|
-
if (l(a2) || c(a2)) return null;
|
|
290
|
-
const f2 = a2.head, u2 = n2.getBlock(f2.blockId);
|
|
291
|
-
if (!u2) return null;
|
|
292
|
-
let d2 = f2.offset;
|
|
293
|
-
if ("word" === e2) d2 = "forward" === o2 ? B(u2, f2.offset) : y(u2, f2.offset);
|
|
294
|
-
else {
|
|
295
|
-
if ("lineboundary" !== e2) {
|
|
296
|
-
const e3 = n2.getBlockOrder(), l2 = e3.indexOf(f2.blockId), c2 = "forward" === o2 ? l2 + 1 : l2 - 1;
|
|
297
|
-
if (c2 < 0 || c2 >= e3.length) return null;
|
|
298
|
-
const u3 = e3[c2];
|
|
299
|
-
if (!u3) return null;
|
|
300
|
-
if (!r(n2, f2.blockId, u3)) return null;
|
|
301
|
-
if (i(n2, u3)) return null;
|
|
302
|
-
const d3 = n2.getBlock(u3);
|
|
303
|
-
if (!d3) return null;
|
|
304
|
-
const h2 = "forward" === o2 ? 0 : t(d3);
|
|
305
|
-
return s(n2, a2.anchor.blockId, a2.anchor.offset, u3, h2);
|
|
306
|
-
}
|
|
307
|
-
d2 = "forward" === o2 ? t(u2) : 0;
|
|
308
|
-
}
|
|
309
|
-
return s(n2, a2.anchor.blockId, a2.anchor.offset, f2.blockId, d2);
|
|
310
|
-
}
|
|
311
|
-
function q(n2, t2) {
|
|
312
|
-
return z(n2, t2, "forward", "word");
|
|
313
|
-
}
|
|
314
|
-
function _(n2, t2) {
|
|
315
|
-
return z(n2, t2, "backward", "word");
|
|
316
|
-
}
|
|
317
|
-
function P(n2, t2) {
|
|
318
|
-
return z(n2, t2, "backward", "lineboundary");
|
|
319
|
-
}
|
|
320
|
-
function F(n2, t2) {
|
|
321
|
-
return z(n2, t2, "forward", "lineboundary");
|
|
322
|
-
}
|
|
323
|
-
function G(n2, t2) {
|
|
324
|
-
return z(n2, t2, "backward", "line");
|
|
325
|
-
}
|
|
326
|
-
function K(n2, t2) {
|
|
327
|
-
return z(n2, t2, "forward", "line");
|
|
328
|
-
}
|
|
329
|
-
function Q(n2, t2) {
|
|
330
|
-
return N(n2, t2, "forward", "word");
|
|
331
|
-
}
|
|
332
|
-
function J(n2, t2) {
|
|
333
|
-
return N(n2, t2, "backward", "word");
|
|
334
|
-
}
|
|
335
|
-
function W(n2, t2) {
|
|
336
|
-
return N(n2, t2, "backward", "lineboundary");
|
|
337
|
-
}
|
|
338
|
-
function X(n2, t2) {
|
|
339
|
-
return N(n2, t2, "forward", "lineboundary");
|
|
340
|
-
}
|
|
341
|
-
function Y(n2, t2) {
|
|
342
|
-
return N(n2, t2, "backward", "line");
|
|
343
|
-
}
|
|
344
|
-
function Z(n2, t2) {
|
|
345
|
-
return N(n2, t2, "forward", "line");
|
|
346
|
-
}
|
|
347
|
-
const nn = { paragraph: "Paragraph", heading: "Heading", code_block: "Code Block", blockquote: "Block Quote", list_item: "List Item", horizontal_rule: "Horizontal Rule", image: "Image", table: "Table" };
|
|
348
|
-
function tn(n2, t2) {
|
|
349
|
-
return "heading" === n2 && t2?.level ? `Heading ${t2.level}` : nn[n2] ?? n2;
|
|
350
|
-
}
|
|
351
|
-
function on(n2, t2, o2) {
|
|
352
|
-
if ("undo" === o2.metadata.historyDirection) return "Undo";
|
|
353
|
-
if ("redo" === o2.metadata.historyDirection) return "Redo";
|
|
354
|
-
for (const n3 of o2.steps) if ("setBlockType" === n3.type) return tn(n3.nodeType, n3.attrs);
|
|
355
|
-
for (const o3 of t2.schema.markTypes) {
|
|
356
|
-
const e2 = m(o3), r2 = w(n2, e2), i2 = w(t2, e2);
|
|
357
|
-
if (r2 !== i2) return `${o3} ${i2 ? "on" : "off"}`;
|
|
358
|
-
}
|
|
359
|
-
return null;
|
|
360
|
-
}
|
|
361
|
-
const en = { "word:forward": q, "word:backward": _, "lineboundary:forward": F, "lineboundary:backward": P, "line:forward": K, "line:backward": G }, rn = { "word:forward": Q, "word:backward": J, "lineboundary:forward": X, "lineboundary:backward": W, "line:forward": Z, "line:backward": Y };
|
|
362
|
-
class ln {
|
|
363
|
-
id = "caret-navigation";
|
|
364
|
-
name = "Caret Navigation";
|
|
365
|
-
priority = 4;
|
|
366
|
-
context = null;
|
|
367
|
-
lastAnnouncedBlockId = null;
|
|
368
|
-
announceTimer = null;
|
|
369
|
-
announce = null;
|
|
370
|
-
init(n2) {
|
|
371
|
-
this.context = n2, this.announce = (t3) => n2.announce(t3);
|
|
372
|
-
const t2 = b(), o2 = { "Shift-ArrowRight": () => this.extendCharacterVisual("right"), "Shift-ArrowLeft": () => this.extendCharacterVisual("left"), "Shift-ArrowUp": () => this.viewExtendCommand("backward", "line"), "Shift-ArrowDown": () => this.viewExtendCommand("forward", "line"), ...t2 ? { "Alt-ArrowRight": () => this.viewMoveVisual("right", "word"), "Alt-ArrowLeft": () => this.viewMoveVisual("left", "word"), "Shift-Alt-ArrowRight": () => this.viewExtendVisual("right", "word"), "Shift-Alt-ArrowLeft": () => this.viewExtendVisual("left", "word") } : { "Mod-ArrowRight": () => this.viewMoveVisual("right", "word"), "Mod-ArrowLeft": () => this.viewMoveVisual("left", "word"), "Mod-Shift-ArrowRight": () => this.viewExtendVisual("right", "word"), "Mod-Shift-ArrowLeft": () => this.viewExtendVisual("left", "word") }, ...t2 ? { "Mod-ArrowLeft": () => this.viewMoveVisual("left", "lineboundary"), "Mod-ArrowRight": () => this.viewMoveVisual("right", "lineboundary"), "Mod-Shift-ArrowLeft": () => this.viewExtendVisual("left", "lineboundary"), "Mod-Shift-ArrowRight": () => this.viewExtendVisual("right", "lineboundary") } : { Home: () => this.viewMoveCommand("backward", "lineboundary"), End: () => this.viewMoveCommand("forward", "lineboundary"), "Shift-Home": () => this.viewExtendCommand("backward", "lineboundary"), "Shift-End": () => this.viewExtendCommand("forward", "lineboundary") }, ...t2 ? { "Mod-ArrowUp": () => this.modelCommand(T), "Mod-ArrowDown": () => this.modelCommand(V), "Mod-Shift-ArrowUp": () => this.modelCommand(j), "Mod-Shift-ArrowDown": () => this.modelCommand(R) } : { "Mod-Home": () => this.modelCommand(T), "Mod-End": () => this.modelCommand(V), "Mod-Shift-Home": () => this.modelCommand(j), "Mod-Shift-End": () => this.modelCommand(R) } };
|
|
373
|
-
n2.registerKeymap(o2, { priority: "navigation" });
|
|
374
|
-
}
|
|
375
|
-
onStateChange(n2, t2, o2) {
|
|
376
|
-
const e2 = t2.selection;
|
|
377
|
-
if (!a(e2) || l(e2) || c(e2)) return null !== this.announceTimer && (clearTimeout(this.announceTimer), this.announceTimer = null), void (this.lastAnnouncedBlockId = null);
|
|
378
|
-
const r2 = e2.anchor.blockId;
|
|
379
|
-
r2 !== this.lastAnnouncedBlockId && (null !== this.lastAnnouncedBlockId ? (this.lastAnnouncedBlockId = r2, null !== this.announceTimer && clearTimeout(this.announceTimer), this.announceTimer = setTimeout(() => {
|
|
380
|
-
if (this.announceTimer = null, this.context?.hasAnnouncement()) return;
|
|
381
|
-
const n3 = t2.getBlock(r2);
|
|
382
|
-
if (!n3) return;
|
|
383
|
-
const o3 = tn(n3.type, n3.attrs);
|
|
384
|
-
this.announce?.(o3);
|
|
385
|
-
}, 150)) : this.lastAnnouncedBlockId = r2);
|
|
386
|
-
}
|
|
387
|
-
destroy() {
|
|
388
|
-
null !== this.announceTimer && clearTimeout(this.announceTimer), this.announceTimer = null, this.announce = null, this.context = null;
|
|
389
|
-
}
|
|
390
|
-
modelCommand(n2) {
|
|
391
|
-
if (!this.context) return false;
|
|
392
|
-
const t2 = n2(this.context.getState());
|
|
393
|
-
return !!t2 && (this.context.dispatch(t2), true);
|
|
394
|
-
}
|
|
395
|
-
extendCharacterVisual(n2) {
|
|
396
|
-
if (!this.context) return false;
|
|
397
|
-
const t2 = this.context.getState(), o2 = "forward" === this.resolveLogicalHorizontalDirection(t2, n2) ? O(t2) : L(t2);
|
|
398
|
-
return !!o2 && (this.context.dispatch(o2), true);
|
|
399
|
-
}
|
|
400
|
-
viewMoveCommand(n2, t2) {
|
|
401
|
-
return this.dispatchViewCommand(en, n2, t2);
|
|
402
|
-
}
|
|
403
|
-
viewMoveVisual(n2, t2) {
|
|
404
|
-
if (!this.context) return false;
|
|
405
|
-
const o2 = this.resolveLogicalHorizontalDirection(this.context.getState(), n2);
|
|
406
|
-
return this.viewMoveCommand(o2, t2);
|
|
407
|
-
}
|
|
408
|
-
viewExtendCommand(n2, t2) {
|
|
409
|
-
return this.dispatchViewCommand(rn, n2, t2);
|
|
410
|
-
}
|
|
411
|
-
dispatchViewCommand(n2, t2, o2) {
|
|
412
|
-
if (!this.context) return false;
|
|
413
|
-
const e2 = n2[`${o2}:${t2}`];
|
|
414
|
-
if (!e2) return false;
|
|
415
|
-
const r2 = e2(this.context.getContainer(), this.context.getState());
|
|
416
|
-
return !!r2 && (this.context.dispatch(r2), true);
|
|
417
|
-
}
|
|
418
|
-
viewExtendVisual(n2, t2) {
|
|
419
|
-
if (!this.context) return false;
|
|
420
|
-
const o2 = this.resolveLogicalHorizontalDirection(this.context.getState(), n2);
|
|
421
|
-
return this.viewExtendCommand(o2, t2);
|
|
422
|
-
}
|
|
423
|
-
resolveLogicalHorizontalDirection(n2, t2) {
|
|
424
|
-
const o2 = n2.selection;
|
|
425
|
-
if (l(o2) || c(o2)) return "left" === t2 ? "backward" : "forward";
|
|
426
|
-
const e2 = this.context?.getContainer();
|
|
427
|
-
if (!e2) return "left" === t2 ? "backward" : "forward";
|
|
428
|
-
const r2 = e2.querySelector(`[data-block-id="${o2.head.blockId}"]`);
|
|
429
|
-
return r2 instanceof HTMLElement && "rtl" === g(r2) ? "left" === t2 ? "forward" : "backward" : "left" === t2 ? "backward" : "forward";
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
export {
|
|
433
|
-
_ as A,
|
|
434
|
-
q as B,
|
|
435
|
-
ln as C,
|
|
436
|
-
v as D,
|
|
437
|
-
x as E,
|
|
438
|
-
N as F,
|
|
439
|
-
z as G,
|
|
440
|
-
y as a,
|
|
441
|
-
on as b,
|
|
442
|
-
O as c,
|
|
443
|
-
Z as d,
|
|
444
|
-
L as e,
|
|
445
|
-
B as f,
|
|
446
|
-
Y as g,
|
|
447
|
-
D as h,
|
|
448
|
-
H as i,
|
|
449
|
-
R as j,
|
|
450
|
-
j as k,
|
|
451
|
-
X as l,
|
|
452
|
-
W as m,
|
|
453
|
-
J as n,
|
|
454
|
-
Q as o,
|
|
455
|
-
tn as p,
|
|
456
|
-
M as q,
|
|
457
|
-
C as r,
|
|
458
|
-
K as s,
|
|
459
|
-
G as t,
|
|
460
|
-
E as u,
|
|
461
|
-
S as v,
|
|
462
|
-
V as w,
|
|
463
|
-
T as x,
|
|
464
|
-
F as y,
|
|
465
|
-
P as z
|
|
466
|
-
};
|
|
467
|
-
//# sourceMappingURL=index-oOJo-ywB.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-oOJo-ywB.mjs","sources":["../../src/model/GraphemeUtils.ts","../../src/commands/WordBoundary.ts","../../src/commands/MovementCommands.ts","../../src/view/ViewMovementCommands.ts","../../src/editor/Announcer.ts","../../src/plugins/caret-navigation/CaretNavigationPlugin.ts"],"sourcesContent":["/**\n * Grapheme-cluster utilities for correct character navigation.\n *\n * Uses `Intl.Segmenter` (with `granularity: 'grapheme'`) to correctly\n * handle multi-code-unit characters such as emoji, ZWJ sequences, and\n * combining characters. Falls back to +1/-1 when `Intl.Segmenter` is\n * not available.\n */\n\nconst SEGMENTER_SUPPORTED: boolean = typeof Intl !== 'undefined' && 'Segmenter' in Intl;\nconst SEGMENTER: Intl.Segmenter | null = SEGMENTER_SUPPORTED\n\t? new Intl.Segmenter(undefined, { granularity: 'grapheme' })\n\t: null;\n\n/**\n * Returns the number of UTF-16 code units in the next grapheme cluster\n * starting at `offset`. Returns 0 if `offset` is at or past the end.\n */\nexport function nextGraphemeSize(text: string, offset: number): number {\n\tif (offset >= text.length || text.length === 0) return 0;\n\n\tif (SEGMENTER) {\n\t\tfor (const segment of SEGMENTER.segment(text)) {\n\t\t\tif (segment.index >= offset) {\n\t\t\t\treturn segment.segment.length;\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n\n\treturn 1;\n}\n\n/**\n * Returns the number of UTF-16 code units in the grapheme cluster\n * immediately before `offset`. Returns 0 if `offset` is 0 or the\n * string is empty.\n */\nexport function prevGraphemeSize(text: string, offset: number): number {\n\tif (offset <= 0 || text.length === 0) return 0;\n\n\tif (SEGMENTER) {\n\t\tlet lastSize = 1;\n\t\tfor (const segment of SEGMENTER.segment(text)) {\n\t\t\tif (segment.index + segment.segment.length >= offset) {\n\t\t\t\tlastSize = segment.segment.length;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tlastSize = segment.segment.length;\n\t\t}\n\t\treturn lastSize;\n\t}\n\n\treturn 1;\n}\n","/**\n * Word boundary detection for delete-word and word-movement commands.\n * InlineNodes act as word boundaries.\n */\n\nimport { type BlockNode, getBlockLength, getContentAtOffset } from '../model/Document.js';\n\n/**\n * Finds the word boundary backward from the given offset.\n * InlineNodes act as word boundaries.\n */\nexport function findWordBoundaryBackward(block: BlockNode, offset: number): number {\n\tlet pos = offset - 1;\n\t// Skip trailing whitespace\n\twhile (pos >= 0) {\n\t\tconst content = getContentAtOffset(block, pos);\n\t\tif (!content || content.kind === 'inline') break;\n\t\tif (!/\\s/.test(content.char)) break;\n\t\tpos--;\n\t}\n\t// If at InlineNode, delete just it (treat as word boundary)\n\tif (pos >= 0) {\n\t\tconst content = getContentAtOffset(block, pos);\n\t\tif (content?.kind === 'inline') return pos;\n\t}\n\t// Skip word characters until whitespace or InlineNode\n\twhile (pos >= 0) {\n\t\tconst content = getContentAtOffset(block, pos);\n\t\tif (!content || content.kind === 'inline') break;\n\t\tif (/\\s/.test(content.char)) break;\n\t\tpos--;\n\t}\n\treturn pos + 1;\n}\n\n/**\n * Finds the word boundary forward from the given offset.\n * InlineNodes act as word boundaries.\n */\nexport function findWordBoundaryForward(block: BlockNode, offset: number): number {\n\tconst len = getBlockLength(block);\n\tlet pos = offset;\n\t// Skip word characters first\n\twhile (pos < len) {\n\t\tconst content = getContentAtOffset(block, pos);\n\t\tif (!content || content.kind === 'inline') break;\n\t\tif (/\\s/.test(content.char)) break;\n\t\tpos++;\n\t}\n\t// If at InlineNode and haven't moved, delete just the InlineNode\n\tif (pos === offset && pos < len) {\n\t\tconst content = getContentAtOffset(block, pos);\n\t\tif (content?.kind === 'inline') return pos + 1;\n\t}\n\t// Skip trailing whitespace\n\twhile (pos < len) {\n\t\tconst content = getContentAtOffset(block, pos);\n\t\tif (!content || content.kind === 'inline') break;\n\t\tif (!/\\s/.test(content.char)) break;\n\t\tpos++;\n\t}\n\treturn pos;\n}\n","/**\n * Model-based movement commands for programmatic cursor navigation.\n *\n * All functions are pure: they take an EditorState and return a Transaction\n * or `null` (when the movement is not applicable). None touch the DOM.\n *\n * Move commands produce a collapsed cursor. Extend commands keep the anchor\n * and move the head, producing a range selection. All clear storedMarks.\n */\n\nimport {\n\tblockOffsetToTextOffset,\n\tgetBlockLength,\n\tgetBlockText,\n\tgetContentAtOffset,\n} from '../model/Document.js';\nimport { nextGraphemeSize, prevGraphemeSize } from '../model/GraphemeUtils.js';\nimport { canCrossBlockBoundary, isVoidBlock } from '../model/NavigationUtils.js';\nimport { isCollapsed, isGapCursor, isNodeSelection } from '../model/Selection.js';\nimport type { BlockId } from '../model/TypeBrands.js';\nimport type { EditorState } from '../state/EditorState.js';\nimport { extendTx, moveTx, nodeSelTx } from '../state/SelectionTransactions.js';\nimport type { Transaction } from '../state/Transaction.js';\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\n/** Resolves the effective head position from any text selection. */\nfunction resolveHead(state: EditorState): { blockId: BlockId; offset: number } | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\treturn { blockId: sel.head.blockId, offset: sel.head.offset };\n}\n\n/** Returns the adjacent block ID in the given direction, or `null`. */\nfunction adjacentBlockId(\n\tstate: EditorState,\n\tcurrentBlockId: BlockId,\n\tdirection: 'forward' | 'backward',\n): BlockId | null {\n\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\tconst idx: number = blockOrder.indexOf(currentBlockId);\n\tif (idx < 0) return null;\n\tconst targetIdx: number = direction === 'forward' ? idx + 1 : idx - 1;\n\tif (targetIdx < 0 || targetIdx >= blockOrder.length) return null;\n\treturn blockOrder[targetIdx] ?? null;\n}\n\n// ---------------------------------------------------------------------------\n// Character Movement\n// ---------------------------------------------------------------------------\n\n/** Moves the cursor one character forward, skipping InlineNodes atomically. */\nexport function moveCharacterForward(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\t// If range selection, collapse to head\n\tif (!isCollapsed(sel)) {\n\t\treturn moveTx(state, sel.head.blockId, sel.head.offset);\n\t}\n\n\tconst blockId: BlockId = sel.anchor.blockId;\n\tconst block = state.getBlock(blockId);\n\tif (!block) return null;\n\n\tconst offset: number = sel.anchor.offset;\n\tconst blockLen: number = getBlockLength(block);\n\n\tif (offset < blockLen) {\n\t\t// InlineNode: skip atomically (+1)\n\t\tconst content = getContentAtOffset(block, offset);\n\t\tif (content?.kind === 'inline') {\n\t\t\treturn moveTx(state, blockId, offset + 1);\n\t\t}\n\t\t// Text: advance by one grapheme cluster\n\t\tconst text: string = getBlockText(block);\n\t\tconst textOffset: number = blockOffsetToTextOffset(block, offset);\n\t\tconst step: number = nextGraphemeSize(text, textOffset) || 1;\n\t\treturn moveTx(state, blockId, offset + step);\n\t}\n\n\t// At block end → cross-block\n\tconst nextId: BlockId | null = adjacentBlockId(state, blockId, 'forward');\n\tif (!nextId) return null;\n\tif (!canCrossBlockBoundary(state, blockId, nextId)) return null;\n\n\tif (isVoidBlock(state, nextId)) return nodeSelTx(state, nextId);\n\n\treturn moveTx(state, nextId, 0);\n}\n\n/** Moves the cursor one character backward, skipping InlineNodes atomically. */\nexport function moveCharacterBackward(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\t// If range selection, collapse to head\n\tif (!isCollapsed(sel)) {\n\t\treturn moveTx(state, sel.head.blockId, sel.head.offset);\n\t}\n\n\tconst blockId: BlockId = sel.anchor.blockId;\n\tconst block = state.getBlock(blockId);\n\tif (!block) return null;\n\n\tconst offset: number = sel.anchor.offset;\n\n\tif (offset > 0) {\n\t\t// InlineNode: skip atomically (-1)\n\t\tconst content = getContentAtOffset(block, offset - 1);\n\t\tif (content?.kind === 'inline') {\n\t\t\treturn moveTx(state, blockId, offset - 1);\n\t\t}\n\t\t// Text: retreat by one grapheme cluster\n\t\tconst text: string = getBlockText(block);\n\t\tconst textOffset: number = blockOffsetToTextOffset(block, offset);\n\t\tconst step: number = prevGraphemeSize(text, textOffset) || 1;\n\t\treturn moveTx(state, blockId, offset - step);\n\t}\n\n\t// At block start → cross-block\n\tconst prevId: BlockId | null = adjacentBlockId(state, blockId, 'backward');\n\tif (!prevId) return null;\n\tif (!canCrossBlockBoundary(state, blockId, prevId)) return null;\n\n\tif (isVoidBlock(state, prevId)) return nodeSelTx(state, prevId);\n\n\tconst prevBlock = state.getBlock(prevId);\n\tif (!prevBlock) return null;\n\treturn moveTx(state, prevId, getBlockLength(prevBlock));\n}\n\n// ---------------------------------------------------------------------------\n// Block Boundary Movement\n// ---------------------------------------------------------------------------\n\n/** Moves the cursor to the start of the current block. */\nexport function moveToBlockStart(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tconst blockId: BlockId = isCollapsed(sel) ? sel.anchor.blockId : sel.head.blockId;\n\tconst offset: number = isCollapsed(sel) ? sel.anchor.offset : sel.head.offset;\n\n\tif (offset === 0) return null;\n\treturn moveTx(state, blockId, 0);\n}\n\n/** Moves the cursor to the end of the current block. */\nexport function moveToBlockEnd(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tconst blockId: BlockId = isCollapsed(sel) ? sel.anchor.blockId : sel.head.blockId;\n\tconst block = state.getBlock(blockId);\n\tif (!block) return null;\n\n\tconst blockLen: number = getBlockLength(block);\n\tconst offset: number = isCollapsed(sel) ? sel.anchor.offset : sel.head.offset;\n\n\tif (offset === blockLen) return null;\n\treturn moveTx(state, blockId, blockLen);\n}\n\n// ---------------------------------------------------------------------------\n// Document Boundary Movement\n// ---------------------------------------------------------------------------\n\n/** Moves the cursor to the beginning of the document. */\nexport function moveToDocumentStart(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\tconst firstId: BlockId | undefined = blockOrder[0];\n\tif (!firstId) return null;\n\n\tif (isVoidBlock(state, firstId)) return nodeSelTx(state, firstId);\n\n\treturn moveTx(state, firstId, 0);\n}\n\n/** Moves the cursor to the end of the document. */\nexport function moveToDocumentEnd(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\tconst lastId: BlockId | undefined = blockOrder[blockOrder.length - 1];\n\tif (!lastId) return null;\n\n\tif (isVoidBlock(state, lastId)) return nodeSelTx(state, lastId);\n\n\tconst lastBlock = state.getBlock(lastId);\n\tif (!lastBlock) return null;\n\treturn moveTx(state, lastId, getBlockLength(lastBlock));\n}\n\n// ---------------------------------------------------------------------------\n// Extend (Selection Extension) Commands\n// ---------------------------------------------------------------------------\n\n/** Extends the selection one character forward. */\nexport function extendCharacterForward(state: EditorState): Transaction | null {\n\tconst head = resolveHead(state);\n\tif (!head) return null;\n\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tconst block = state.getBlock(head.blockId);\n\tif (!block) return null;\n\n\tconst blockLen: number = getBlockLength(block);\n\n\tif (head.offset < blockLen) {\n\t\tconst content = getContentAtOffset(block, head.offset);\n\t\tconst step: number =\n\t\t\tcontent?.kind === 'inline'\n\t\t\t\t? 1\n\t\t\t\t: nextGraphemeSize(getBlockText(block), blockOffsetToTextOffset(block, head.offset)) || 1;\n\t\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, head.blockId, head.offset + step);\n\t}\n\n\t// Cross-block\n\tconst nextId: BlockId | null = adjacentBlockId(state, head.blockId, 'forward');\n\tif (!nextId) return null;\n\tif (!canCrossBlockBoundary(state, head.blockId, nextId)) return null;\n\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, nextId, 0);\n}\n\n/** Extends the selection one character backward. */\nexport function extendCharacterBackward(state: EditorState): Transaction | null {\n\tconst head = resolveHead(state);\n\tif (!head) return null;\n\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tif (head.offset > 0) {\n\t\tconst block = state.getBlock(head.blockId);\n\t\tif (!block) return null;\n\t\tconst content = getContentAtOffset(block, head.offset - 1);\n\t\tconst step: number =\n\t\t\tcontent?.kind === 'inline'\n\t\t\t\t? 1\n\t\t\t\t: prevGraphemeSize(getBlockText(block), blockOffsetToTextOffset(block, head.offset)) || 1;\n\t\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, head.blockId, head.offset - step);\n\t}\n\n\t// Cross-block\n\tconst prevId: BlockId | null = adjacentBlockId(state, head.blockId, 'backward');\n\tif (!prevId) return null;\n\tif (!canCrossBlockBoundary(state, head.blockId, prevId)) return null;\n\n\tconst prevBlock = state.getBlock(prevId);\n\tif (!prevBlock) return null;\n\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, prevId, getBlockLength(prevBlock));\n}\n\n/** Extends the selection to the start of the current block. */\nexport function extendToBlockStart(state: EditorState): Transaction | null {\n\tconst head = resolveHead(state);\n\tif (!head) return null;\n\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tif (head.offset === 0) return null;\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, head.blockId, 0);\n}\n\n/** Extends the selection to the end of the current block. */\nexport function extendToBlockEnd(state: EditorState): Transaction | null {\n\tconst head = resolveHead(state);\n\tif (!head) return null;\n\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tconst block = state.getBlock(head.blockId);\n\tif (!block) return null;\n\n\tconst blockLen: number = getBlockLength(block);\n\tif (head.offset === blockLen) return null;\n\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, head.blockId, blockLen);\n}\n\n/** Extends the selection to the start of the document. */\nexport function extendToDocumentStart(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\tconst firstId: BlockId | undefined = blockOrder[0];\n\tif (!firstId) return null;\n\n\t// No-op if head is already at document start\n\tif (sel.head.blockId === firstId && sel.head.offset === 0) return null;\n\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, firstId, 0);\n}\n\n/** Extends the selection to the end of the document. */\nexport function extendToDocumentEnd(state: EditorState): Transaction | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\tconst lastId: BlockId | undefined = blockOrder[blockOrder.length - 1];\n\tif (!lastId) return null;\n\n\tconst lastBlock = state.getBlock(lastId);\n\tif (!lastBlock) return null;\n\n\tconst lastBlockLen: number = getBlockLength(lastBlock);\n\n\t// No-op if head is already at document end\n\tif (sel.head.blockId === lastId && sel.head.offset === lastBlockLen) return null;\n\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, lastId, lastBlockLen);\n}\n","/**\n * View-based movement commands that use the browser's `Selection.modify()` API\n * for word, line-boundary, and line granularity movement.\n *\n * Falls back to model-based commands when `Selection.modify` is unavailable\n * (e.g. in happy-dom test environments).\n */\n\nimport { findWordBoundaryBackward, findWordBoundaryForward } from '../commands/Commands.js';\nimport { moveToBlockEnd, moveToBlockStart } from '../commands/MovementCommands.js';\nimport { getBlockLength, getContentAtOffset } from '../model/Document.js';\nimport { canCrossBlockBoundary, isVoidBlock } from '../model/NavigationUtils.js';\nimport { isCollapsed, isGapCursor, isNodeSelection } from '../model/Selection.js';\nimport type { BlockId } from '../model/TypeBrands.js';\nimport type { EditorState } from '../state/EditorState.js';\nimport { extendTx, moveTx, nodeSelTx } from '../state/SelectionTransactions.js';\nimport type { Transaction } from '../state/Transaction.js';\nimport { navigateAcrossBlocks } from './CaretNavigation.js';\nimport { getSelection, readSelectionFromDOM } from './SelectionSync.js';\n\ntype Direction = 'forward' | 'backward';\ntype Granularity = 'word' | 'lineboundary' | 'line';\n\n// ---------------------------------------------------------------------------\n// Core view movement\n// ---------------------------------------------------------------------------\n\n/**\n * Moves the cursor using `Selection.modify('move', direction, granularity)`.\n * Falls back to model-based movement when the API is unavailable.\n */\nexport function viewMove(\n\tcontainer: HTMLElement,\n\tstate: EditorState,\n\tdirection: Direction,\n\tgranularity: Granularity,\n): Transaction | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tconst domSel: globalThis.Selection | null = getSelection(container);\n\tif (!domSel?.modify) {\n\t\treturn fallbackMove(state, direction, granularity);\n\t}\n\n\t// Save original DOM selection\n\tconst origAnchor: Node | null = domSel.anchorNode;\n\tconst origAnchorOff: number = domSel.anchorOffset;\n\tconst origFocus: Node | null = domSel.focusNode;\n\tconst origFocusOff: number = domSel.focusOffset;\n\tif (!origAnchor || !origFocus) return fallbackMove(state, direction, granularity);\n\n\ttry {\n\t\tdomSel.modify('move', direction, granularity);\n\n\t\tconst newSel = readSelectionFromDOM(container);\n\t\tif (!newSel) return null;\n\n\t\tconst newBlockId: BlockId = newSel.anchor.blockId;\n\t\tconst oldBlockId: BlockId = sel.anchor.blockId;\n\n\t\t// Validate isolating boundary crossing\n\t\tif (newBlockId !== oldBlockId && !canCrossBlockBoundary(state, oldBlockId, newBlockId)) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet newOffset: number = newSel.anchor.offset;\n\n\t\t// InlineNode boundary correction\n\t\tconst block = state.getBlock(newBlockId);\n\t\tif (block) {\n\t\t\tconst content = getContentAtOffset(block, newOffset);\n\t\t\tif (content?.kind === 'inline') {\n\t\t\t\t// Prefer landing after the InlineNode when moving forward\n\t\t\t\tif (direction === 'forward') {\n\t\t\t\t\tnewOffset = Math.min(newOffset + 1, getBlockLength(block));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Void block → NodeSelection\n\t\tif (isVoidBlock(state, newBlockId)) return nodeSelTx(state, newBlockId);\n\n\t\treturn moveTx(state, newBlockId, newOffset);\n\t} finally {\n\t\t// Restore original DOM selection (dispatch cycle will set the correct one)\n\t\ttry {\n\t\t\tdomSel.setBaseAndExtent(origAnchor, origAnchorOff, origFocus, origFocusOff);\n\t\t} catch {\n\t\t\t// Restore may fail if DOM changed\n\t\t}\n\t}\n}\n\n/**\n * Extends the selection using `Selection.modify('extend', direction, granularity)`.\n * Falls back to model-based extension when the API is unavailable.\n */\nexport function viewExtend(\n\tcontainer: HTMLElement,\n\tstate: EditorState,\n\tdirection: Direction,\n\tgranularity: Granularity,\n): Transaction | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tconst domSel: globalThis.Selection | null = getSelection(container);\n\tif (!domSel?.modify) {\n\t\treturn fallbackExtend(state, direction, granularity);\n\t}\n\n\tconst origAnchor: Node | null = domSel.anchorNode;\n\tconst origAnchorOff: number = domSel.anchorOffset;\n\tconst origFocus: Node | null = domSel.focusNode;\n\tconst origFocusOff: number = domSel.focusOffset;\n\tif (!origAnchor || !origFocus) return fallbackExtend(state, direction, granularity);\n\n\ttry {\n\t\tdomSel.modify('extend', direction, granularity);\n\n\t\tconst newSel = readSelectionFromDOM(container);\n\t\tif (!newSel) return null;\n\n\t\t// Validate isolating boundary crossing for head\n\t\tconst oldHeadBlockId: BlockId = sel.head.blockId;\n\t\tconst newHeadBlockId: BlockId = newSel.head.blockId;\n\n\t\tif (\n\t\t\tnewHeadBlockId !== oldHeadBlockId &&\n\t\t\t!canCrossBlockBoundary(state, oldHeadBlockId, newHeadBlockId)\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet newHeadOffset: number = newSel.head.offset;\n\n\t\t// InlineNode boundary correction for head position\n\t\tconst headBlock = state.getBlock(newSel.head.blockId);\n\t\tif (headBlock) {\n\t\t\tconst content = getContentAtOffset(headBlock, newHeadOffset);\n\t\t\tif (content?.kind === 'inline') {\n\t\t\t\tif (direction === 'forward') {\n\t\t\t\t\tnewHeadOffset = Math.min(newHeadOffset + 1, getBlockLength(headBlock));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn extendTx(\n\t\t\tstate,\n\t\t\tsel.anchor.blockId,\n\t\t\tsel.anchor.offset,\n\t\t\tnewSel.head.blockId,\n\t\t\tnewHeadOffset,\n\t\t);\n\t} finally {\n\t\ttry {\n\t\t\tdomSel.setBaseAndExtent(origAnchor, origAnchorOff, origFocus, origFocusOff);\n\t\t} catch {\n\t\t\t// Restore may fail\n\t\t}\n\t}\n}\n\n// ---------------------------------------------------------------------------\n// Fallback (model-based) when Selection.modify is unavailable\n// ---------------------------------------------------------------------------\n\nfunction fallbackMove(\n\tstate: EditorState,\n\tdirection: Direction,\n\tgranularity: Granularity,\n): Transaction | null {\n\tif (granularity === 'word') {\n\t\treturn fallbackWordMove(state, direction);\n\t}\n\tif (granularity === 'lineboundary') {\n\t\treturn direction === 'forward' ? moveToBlockEnd(state) : moveToBlockStart(state);\n\t}\n\t// granularity === 'line' → cross-block\n\tconst caretDir = direction === 'forward' ? 'down' : 'up';\n\treturn navigateAcrossBlocks(state, caretDir);\n}\n\nfunction fallbackExtend(\n\tstate: EditorState,\n\tdirection: Direction,\n\tgranularity: Granularity,\n): Transaction | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tconst head = sel.head;\n\tconst block = state.getBlock(head.blockId);\n\tif (!block) return null;\n\n\tlet newOffset: number = head.offset;\n\n\tif (granularity === 'word') {\n\t\tnewOffset =\n\t\t\tdirection === 'forward'\n\t\t\t\t? findWordBoundaryForward(block, head.offset)\n\t\t\t\t: findWordBoundaryBackward(block, head.offset);\n\t} else if (granularity === 'lineboundary') {\n\t\tnewOffset = direction === 'forward' ? getBlockLength(block) : 0;\n\t} else {\n\t\t// line: extend to next block boundary\n\t\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\t\tconst idx: number = blockOrder.indexOf(head.blockId);\n\t\tconst targetIdx: number = direction === 'forward' ? idx + 1 : idx - 1;\n\n\t\tif (targetIdx < 0 || targetIdx >= blockOrder.length) return null;\n\n\t\tconst targetId: BlockId | undefined = blockOrder[targetIdx];\n\t\tif (!targetId) return null;\n\t\tif (!canCrossBlockBoundary(state, head.blockId, targetId)) return null;\n\n\t\tif (isVoidBlock(state, targetId)) {\n\t\t\t// Cannot extend a text selection into a void block\n\t\t\treturn null;\n\t\t}\n\n\t\tconst targetBlock = state.getBlock(targetId);\n\t\tif (!targetBlock) return null;\n\n\t\tconst targetOffset: number = direction === 'forward' ? 0 : getBlockLength(targetBlock);\n\t\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, targetId, targetOffset);\n\t}\n\n\treturn extendTx(state, sel.anchor.blockId, sel.anchor.offset, head.blockId, newOffset);\n}\n\nfunction fallbackWordMove(state: EditorState, direction: Direction): Transaction | null {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\n\tconst blockId: BlockId = isCollapsed(sel) ? sel.anchor.blockId : sel.head.blockId;\n\tconst offset: number = isCollapsed(sel) ? sel.anchor.offset : sel.head.offset;\n\tconst block = state.getBlock(blockId);\n\tif (!block) return null;\n\n\tconst newOffset: number =\n\t\tdirection === 'forward'\n\t\t\t? findWordBoundaryForward(block, offset)\n\t\t\t: findWordBoundaryBackward(block, offset);\n\n\tif (newOffset === offset) {\n\t\t// At block boundary — try crossing blocks\n\t\treturn fallbackCrossBlock(state, blockId, direction);\n\t}\n\n\treturn moveTx(state, blockId, newOffset);\n}\n\n/**\n * Crosses a block boundary from `blockId` in the given direction.\n * Checks `canCrossBlockBoundary` and handles void blocks (→ NodeSelection).\n */\nfunction fallbackCrossBlock(\n\tstate: EditorState,\n\tblockId: BlockId,\n\tdirection: Direction,\n): Transaction | null {\n\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\tconst idx: number = blockOrder.indexOf(blockId);\n\tconst targetIdx: number = direction === 'forward' ? idx + 1 : idx - 1;\n\n\tif (targetIdx < 0 || targetIdx >= blockOrder.length) return null;\n\n\tconst targetId: BlockId | undefined = blockOrder[targetIdx];\n\tif (!targetId) return null;\n\tif (!canCrossBlockBoundary(state, blockId, targetId)) return null;\n\n\tif (isVoidBlock(state, targetId)) return nodeSelTx(state, targetId);\n\n\tconst targetBlock = state.getBlock(targetId);\n\tif (!targetBlock) return null;\n\n\tconst targetOffset: number = direction === 'forward' ? 0 : getBlockLength(targetBlock);\n\treturn moveTx(state, targetId, targetOffset);\n}\n\n// ---------------------------------------------------------------------------\n// Convenience wrappers\n// ---------------------------------------------------------------------------\n\n/** Moves the cursor one word forward. */\nexport function moveWordForward(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewMove(container, state, 'forward', 'word');\n}\n\n/** Moves the cursor one word backward. */\nexport function moveWordBackward(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewMove(container, state, 'backward', 'word');\n}\n\n/** Moves the cursor to the start of the line (visual). */\nexport function moveToLineStart(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewMove(container, state, 'backward', 'lineboundary');\n}\n\n/** Moves the cursor to the end of the line (visual). */\nexport function moveToLineEnd(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewMove(container, state, 'forward', 'lineboundary');\n}\n\n/** Moves the cursor one visual line up. */\nexport function moveLineUp(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewMove(container, state, 'backward', 'line');\n}\n\n/** Moves the cursor one visual line down. */\nexport function moveLineDown(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewMove(container, state, 'forward', 'line');\n}\n\n/** Extends the selection one word forward. */\nexport function extendWordForward(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewExtend(container, state, 'forward', 'word');\n}\n\n/** Extends the selection one word backward. */\nexport function extendWordBackward(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewExtend(container, state, 'backward', 'word');\n}\n\n/** Extends the selection to the start of the line. */\nexport function extendToLineStart(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewExtend(container, state, 'backward', 'lineboundary');\n}\n\n/** Extends the selection to the end of the line. */\nexport function extendToLineEnd(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewExtend(container, state, 'forward', 'lineboundary');\n}\n\n/** Extends the selection one visual line up. */\nexport function extendLineUp(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewExtend(container, state, 'backward', 'line');\n}\n\n/** Extends the selection one visual line down. */\nexport function extendLineDown(container: HTMLElement, state: EditorState): Transaction | null {\n\treturn viewExtend(container, state, 'forward', 'line');\n}\n","/**\n * Announcer: builds screen-reader announcement text for editor state changes.\n * Pure functions — no DOM mutation. The caller applies the result to a live region.\n */\n\nimport { isMarkActive } from '../commands/Commands.js';\nimport { markType } from '../model/TypeBrands.js';\nimport type { EditorState } from '../state/EditorState.js';\nimport type { Transaction } from '../state/Transaction.js';\n\nconst BLOCK_TYPE_LABELS: Record<string, string> = {\n\tparagraph: 'Paragraph',\n\theading: 'Heading',\n\tcode_block: 'Code Block',\n\tblockquote: 'Block Quote',\n\tlist_item: 'List Item',\n\thorizontal_rule: 'Horizontal Rule',\n\timage: 'Image',\n\ttable: 'Table',\n};\n\n/** Returns a human-readable label for a block type (used in screen reader announcements). */\nexport function getBlockTypeLabel(typeName: string, attrs?: Record<string, unknown>): string {\n\tif (typeName === 'heading' && attrs?.level) {\n\t\treturn `Heading ${attrs.level}`;\n\t}\n\treturn BLOCK_TYPE_LABELS[typeName] ?? typeName;\n}\n\n/**\n * Derives an announcement string from a state transition.\n * Returns `null` when no announcement is warranted.\n *\n * Priority order: undo/redo > block-type change > mark toggle.\n */\nexport function buildAnnouncement(\n\toldState: EditorState,\n\tnewState: EditorState,\n\ttr: Transaction,\n): string | null {\n\t// Priority 1: Undo/Redo\n\tif (tr.metadata.historyDirection === 'undo') return 'Undo';\n\tif (tr.metadata.historyDirection === 'redo') return 'Redo';\n\n\t// Priority 2: Block type changes\n\tfor (const step of tr.steps) {\n\t\tif (step.type === 'setBlockType') {\n\t\t\treturn getBlockTypeLabel(step.nodeType, step.attrs);\n\t\t}\n\t}\n\n\t// Priority 3: Mark changes\n\tfor (const mt of newState.schema.markTypes) {\n\t\tconst branded = markType(mt);\n\t\tconst wasActive: boolean = isMarkActive(oldState, branded);\n\t\tconst nowActive: boolean = isMarkActive(newState, branded);\n\t\tif (wasActive !== nowActive) {\n\t\t\treturn `${mt} ${nowActive ? 'on' : 'off'}`;\n\t\t}\n\t}\n\n\treturn null;\n}\n","/**\n * CaretNavigationPlugin: registers platform-aware keymaps for all\n * programmatic movement commands (character, word, line, document).\n *\n * Movement priorities use 'navigation' to match GapCursorPlugin.\n * Also announces block-type changes to screen readers on cross-block navigation.\n */\n\nimport {\n\textendCharacterBackward,\n\textendCharacterForward,\n\textendToDocumentEnd,\n\textendToDocumentStart,\n\tmoveToDocumentEnd,\n\tmoveToDocumentStart,\n} from '../../commands/MovementCommands.js';\nimport { getBlockTypeLabel } from '../../editor/Announcer.js';\nimport { isCollapsed, isGapCursor, isNodeSelection } from '../../model/Selection.js';\nimport type { BlockId } from '../../model/TypeBrands.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { Transaction } from '../../state/Transaction.js';\nimport { getTextDirection, isMac } from '../../view/Platform.js';\nimport {\n\textendLineDown,\n\textendLineUp,\n\textendToLineEnd,\n\textendToLineStart,\n\textendWordBackward,\n\textendWordForward,\n\tmoveLineDown,\n\tmoveLineUp,\n\tmoveToLineEnd,\n\tmoveToLineStart,\n\tmoveWordBackward,\n\tmoveWordForward,\n} from '../../view/ViewMovementCommands.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\n\ntype ViewCommandFn = (container: HTMLElement, state: EditorState) => Transaction | null;\ntype ViewCommandKey = `${'word' | 'lineboundary' | 'line'}:${'forward' | 'backward'}`;\ntype ViewCommandLookup = Readonly<Record<ViewCommandKey, ViewCommandFn>>;\n\nconst VIEW_MOVE_FNS: ViewCommandLookup = {\n\t'word:forward': moveWordForward,\n\t'word:backward': moveWordBackward,\n\t'lineboundary:forward': moveToLineEnd,\n\t'lineboundary:backward': moveToLineStart,\n\t'line:forward': moveLineDown,\n\t'line:backward': moveLineUp,\n};\n\nconst VIEW_EXTEND_FNS: ViewCommandLookup = {\n\t'word:forward': extendWordForward,\n\t'word:backward': extendWordBackward,\n\t'lineboundary:forward': extendToLineEnd,\n\t'lineboundary:backward': extendToLineStart,\n\t'line:forward': extendLineDown,\n\t'line:backward': extendLineUp,\n};\n\n/** Debounce delay for block-type announcements (ms). */\nconst ANNOUNCE_DEBOUNCE_MS = 150;\n\nexport class CaretNavigationPlugin implements Plugin {\n\treadonly id = 'caret-navigation';\n\treadonly name = 'Caret Navigation';\n\treadonly priority = 4;\n\n\tprivate context: PluginContext | null = null;\n\tprivate lastAnnouncedBlockId: BlockId | null = null;\n\tprivate announceTimer: ReturnType<typeof setTimeout> | null = null;\n\tprivate announce: ((text: string) => void) | null = null;\n\n\tinit(context: PluginContext): void {\n\t\tthis.context = context;\n\t\tthis.announce = (text: string) => context.announce(text);\n\t\tconst mac: boolean = isMac();\n\n\t\tconst keymap: Record<string, () => boolean> = {\n\t\t\t// --- Character movement (no modifier) ---\n\t\t\t// Handled natively by browser for basic cases, but Shift+Arrow\n\t\t\t// needs programmatic extend to correctly clear storedMarks.\n\n\t\t\t// --- Character extend ---\n\t\t\t'Shift-ArrowRight': () => this.extendCharacterVisual('right'),\n\t\t\t'Shift-ArrowLeft': () => this.extendCharacterVisual('left'),\n\n\t\t\t// --- Line extend ---\n\t\t\t'Shift-ArrowUp': () => this.viewExtendCommand('backward', 'line'),\n\t\t\t'Shift-ArrowDown': () => this.viewExtendCommand('forward', 'line'),\n\n\t\t\t// --- Word movement (platform-aware) ---\n\t\t\t...(mac\n\t\t\t\t? {\n\t\t\t\t\t\t'Alt-ArrowRight': () => this.viewMoveVisual('right', 'word'),\n\t\t\t\t\t\t'Alt-ArrowLeft': () => this.viewMoveVisual('left', 'word'),\n\t\t\t\t\t\t'Shift-Alt-ArrowRight': () => this.viewExtendVisual('right', 'word'),\n\t\t\t\t\t\t'Shift-Alt-ArrowLeft': () => this.viewExtendVisual('left', 'word'),\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\t'Mod-ArrowRight': () => this.viewMoveVisual('right', 'word'),\n\t\t\t\t\t\t'Mod-ArrowLeft': () => this.viewMoveVisual('left', 'word'),\n\t\t\t\t\t\t'Mod-Shift-ArrowRight': () => this.viewExtendVisual('right', 'word'),\n\t\t\t\t\t\t'Mod-Shift-ArrowLeft': () => this.viewExtendVisual('left', 'word'),\n\t\t\t\t\t}),\n\n\t\t\t// --- Line boundary movement (platform-aware) ---\n\t\t\t...(mac\n\t\t\t\t? {\n\t\t\t\t\t\t'Mod-ArrowLeft': () => this.viewMoveVisual('left', 'lineboundary'),\n\t\t\t\t\t\t'Mod-ArrowRight': () => this.viewMoveVisual('right', 'lineboundary'),\n\t\t\t\t\t\t'Mod-Shift-ArrowLeft': () => this.viewExtendVisual('left', 'lineboundary'),\n\t\t\t\t\t\t'Mod-Shift-ArrowRight': () => this.viewExtendVisual('right', 'lineboundary'),\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\tHome: () => this.viewMoveCommand('backward', 'lineboundary'),\n\t\t\t\t\t\tEnd: () => this.viewMoveCommand('forward', 'lineboundary'),\n\t\t\t\t\t\t'Shift-Home': () => this.viewExtendCommand('backward', 'lineboundary'),\n\t\t\t\t\t\t'Shift-End': () => this.viewExtendCommand('forward', 'lineboundary'),\n\t\t\t\t\t}),\n\n\t\t\t// --- Document boundary movement (platform-aware) ---\n\t\t\t...(mac\n\t\t\t\t? {\n\t\t\t\t\t\t'Mod-ArrowUp': () => this.modelCommand(moveToDocumentStart),\n\t\t\t\t\t\t'Mod-ArrowDown': () => this.modelCommand(moveToDocumentEnd),\n\t\t\t\t\t\t'Mod-Shift-ArrowUp': () => this.modelCommand(extendToDocumentStart),\n\t\t\t\t\t\t'Mod-Shift-ArrowDown': () => this.modelCommand(extendToDocumentEnd),\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\t'Mod-Home': () => this.modelCommand(moveToDocumentStart),\n\t\t\t\t\t\t'Mod-End': () => this.modelCommand(moveToDocumentEnd),\n\t\t\t\t\t\t'Mod-Shift-Home': () => this.modelCommand(extendToDocumentStart),\n\t\t\t\t\t\t'Mod-Shift-End': () => this.modelCommand(extendToDocumentEnd),\n\t\t\t\t\t}),\n\t\t};\n\n\t\tcontext.registerKeymap(keymap, { priority: 'navigation' });\n\t}\n\n\t/** Announces block-type on cross-block cursor movement (debounced). */\n\tonStateChange(_oldState: EditorState, newState: EditorState, _tr: Transaction): void {\n\t\tconst newSel = newState.selection;\n\n\t\t// Only announce for collapsed text selections\n\t\tif (!isCollapsed(newSel) || isNodeSelection(newSel) || isGapCursor(newSel)) {\n\t\t\tif (this.announceTimer !== null) {\n\t\t\t\tclearTimeout(this.announceTimer);\n\t\t\t\tthis.announceTimer = null;\n\t\t\t}\n\t\t\tthis.lastAnnouncedBlockId = null;\n\t\t\treturn;\n\t\t}\n\n\t\tconst newBlockId: BlockId = newSel.anchor.blockId;\n\t\tif (newBlockId === this.lastAnnouncedBlockId) return;\n\n\t\t// First observed block (initial focus) — remember but don't announce\n\t\tif (this.lastAnnouncedBlockId === null) {\n\t\t\tthis.lastAnnouncedBlockId = newBlockId;\n\t\t\treturn;\n\t\t}\n\n\t\tthis.lastAnnouncedBlockId = newBlockId;\n\n\t\t// Debounce rapid navigation\n\t\tif (this.announceTimer !== null) clearTimeout(this.announceTimer);\n\t\tthis.announceTimer = setTimeout(() => {\n\t\t\tthis.announceTimer = null;\n\t\t\t// Skip if another plugin already announced (e.g. CodeBlockPlugin's \"Left code block\")\n\t\t\tif (this.context?.hasAnnouncement()) return;\n\t\t\tconst block = newState.getBlock(newBlockId);\n\t\t\tif (!block) return;\n\t\t\tconst label: string = getBlockTypeLabel(\n\t\t\t\tblock.type,\n\t\t\t\tblock.attrs as Record<string, unknown> | undefined,\n\t\t\t);\n\t\t\tthis.announce?.(label);\n\t\t}, ANNOUNCE_DEBOUNCE_MS);\n\t}\n\n\tdestroy(): void {\n\t\tif (this.announceTimer !== null) clearTimeout(this.announceTimer);\n\t\tthis.announceTimer = null;\n\t\tthis.announce = null;\n\t\tthis.context = null;\n\t}\n\n\t/** Dispatches a model-based movement command (no DOM needed). */\n\tprivate modelCommand(fn: (state: EditorState) => Transaction | null): boolean {\n\t\tif (!this.context) return false;\n\t\tconst tr: Transaction | null = fn(this.context.getState());\n\t\tif (tr) {\n\t\t\tthis.context.dispatch(tr);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/** Extends selection by one character based on visual left/right intent. */\n\tprivate extendCharacterVisual(visual: 'left' | 'right'): boolean {\n\t\tif (!this.context) return false;\n\t\tconst state: EditorState = this.context.getState();\n\t\tconst dir: 'forward' | 'backward' = this.resolveLogicalHorizontalDirection(state, visual);\n\t\tconst tr: Transaction | null =\n\t\t\tdir === 'forward' ? extendCharacterForward(state) : extendCharacterBackward(state);\n\t\tif (tr) {\n\t\t\tthis.context.dispatch(tr);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/** Dispatches a view-based movement command (uses container + Selection.modify). */\n\tprivate viewMoveCommand(\n\t\tdirection: 'forward' | 'backward',\n\t\tgranularity: 'word' | 'lineboundary' | 'line',\n\t): boolean {\n\t\treturn this.dispatchViewCommand(VIEW_MOVE_FNS, direction, granularity);\n\t}\n\n\t/** Dispatches a view-based move command with visual direction mapping for RTL. */\n\tprivate viewMoveVisual(visual: 'left' | 'right', granularity: 'word' | 'lineboundary'): boolean {\n\t\tif (!this.context) return false;\n\t\tconst dir: 'forward' | 'backward' = this.resolveLogicalHorizontalDirection(\n\t\t\tthis.context.getState(),\n\t\t\tvisual,\n\t\t);\n\t\treturn this.viewMoveCommand(dir, granularity);\n\t}\n\n\t/** Dispatches a view-based extend command. */\n\tprivate viewExtendCommand(\n\t\tdirection: 'forward' | 'backward',\n\t\tgranularity: 'word' | 'lineboundary' | 'line',\n\t): boolean {\n\t\treturn this.dispatchViewCommand(VIEW_EXTEND_FNS, direction, granularity);\n\t}\n\n\tprivate dispatchViewCommand(\n\t\tlookup: ViewCommandLookup,\n\t\tdirection: 'forward' | 'backward',\n\t\tgranularity: 'word' | 'lineboundary' | 'line',\n\t): boolean {\n\t\tif (!this.context) return false;\n\t\tconst fn: ViewCommandFn | undefined = lookup[`${granularity}:${direction}`];\n\t\tif (!fn) return false;\n\t\tconst tr: Transaction | null = fn(this.context.getContainer(), this.context.getState());\n\t\tif (tr) {\n\t\t\tthis.context.dispatch(tr);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/** Dispatches a view-based extend command with visual direction mapping for RTL. */\n\tprivate viewExtendVisual(\n\t\tvisual: 'left' | 'right',\n\t\tgranularity: 'word' | 'lineboundary',\n\t): boolean {\n\t\tif (!this.context) return false;\n\t\tconst dir: 'forward' | 'backward' = this.resolveLogicalHorizontalDirection(\n\t\t\tthis.context.getState(),\n\t\t\tvisual,\n\t\t);\n\t\treturn this.viewExtendCommand(dir, granularity);\n\t}\n\n\t/**\n\t * Resolves logical movement direction from visual left/right intent.\n\t * In RTL blocks, visual directions are mirrored in offset space.\n\t */\n\tprivate resolveLogicalHorizontalDirection(\n\t\tstate: EditorState,\n\t\tvisual: 'left' | 'right',\n\t): 'forward' | 'backward' {\n\t\tconst sel = state.selection;\n\t\tif (isNodeSelection(sel) || isGapCursor(sel)) {\n\t\t\treturn visual === 'left' ? 'backward' : 'forward';\n\t\t}\n\t\tconst container: HTMLElement | undefined = this.context?.getContainer();\n\t\tif (!container) return visual === 'left' ? 'backward' : 'forward';\n\t\tconst blockEl: Element | null = container.querySelector(\n\t\t\t`[data-block-id=\"${sel.head.blockId}\"]`,\n\t\t);\n\t\tconst isRtl: boolean = blockEl instanceof HTMLElement && getTextDirection(blockEl) === 'rtl';\n\t\tif (!isRtl) return visual === 'left' ? 'backward' : 'forward';\n\t\treturn visual === 'left' ? 'forward' : 'backward';\n\t}\n}\n"],"names":["SEGMENTER","Intl","Segmenter","granularity","nextGraphemeSize","text","offset","length","segment","index","prevGraphemeSize","lastSize","findWordBoundaryBackward","block","pos","content","getContentAtOffset","kind","test","char","findWordBoundaryForward","len","getBlockLength","resolveHead","state","sel","selection","isNodeSelection","isGapCursor","blockId","head","adjacentBlockId","currentBlockId","direction","blockOrder","getBlockOrder","idx","indexOf","targetIdx","moveCharacterForward","isCollapsed","moveTx","anchor","getBlock","step","getBlockText","blockOffsetToTextOffset","nextId","canCrossBlockBoundary","isVoidBlock","nodeSelTx","moveCharacterBackward","prevId","prevBlock","moveToBlockStart","moveToBlockEnd","blockLen","moveToDocumentStart","firstId","moveToDocumentEnd","lastId","lastBlock","extendCharacterForward","extendTx","extendCharacterBackward","extendToBlockStart","extendToBlockEnd","extendToDocumentStart","extendToDocumentEnd","lastBlockLen","viewMove","container","domSel","getSelection","modify","fallbackMove","origAnchor","anchorNode","origAnchorOff","anchorOffset","origFocus","focusNode","origFocusOff","focusOffset","newSel","readSelectionFromDOM","newBlockId","oldBlockId","newOffset","Math","min","setBaseAndExtent","viewExtend","fallbackExtend","oldHeadBlockId","newHeadBlockId","newHeadOffset","headBlock","targetId","targetBlock","targetOffset","navigateAcrossBlocks","moveWordForward","moveWordBackward","moveToLineStart","moveToLineEnd","moveLineUp","moveLineDown","extendWordForward","extendWordBackward","extendToLineStart","extendToLineEnd","extendLineUp","extendLineDown","BLOCK_TYPE_LABELS","paragraph","heading","code_block","blockquote","list_item","horizontal_rule","image","table","getBlockTypeLabel","typeName","attrs","level","buildAnnouncement","oldState","newState","tr","metadata","historyDirection","steps","type","nodeType","mt","schema","markTypes","branded","markType","wasActive","isMarkActive","nowActive","VIEW_MOVE_FNS","VIEW_EXTEND_FNS","CaretNavigationPlugin","id","name","priority","context","lastAnnouncedBlockId","announceTimer","announce","this","mac","isMac","keymap","extendCharacterVisual","viewExtendCommand","viewMoveVisual","viewExtendVisual","Home","viewMoveCommand","End","modelCommand","registerKeymap","_oldState","_tr","clearTimeout","setTimeout","hasAnnouncement","label","destroy","fn","getState","dispatch","visual","resolveLogicalHorizontalDirection","dispatchViewCommand","dir","lookup","getContainer","blockEl","querySelector","HTMLElement","getTextDirection"],"mappings":"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"}
|