@notectl/core 1.7.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +56 -31
- package/custom-elements.json +350 -6
- package/dist/chunks/AttrRegistry-B2AGfTE0.mjs +2 -0
- package/dist/chunks/AttrRegistry-B2AGfTE0.mjs.map +1 -0
- package/dist/chunks/AttributedMarkCommands-BB7lzFct.mjs +2 -0
- package/dist/chunks/{AttributedMarkCommands-BtLea72z.mjs.map → AttributedMarkCommands-BB7lzFct.mjs.map} +1 -1
- 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-DRzFvt7o.mjs +2 -0
- package/dist/chunks/ColorPickerPopup-DRzFvt7o.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-P9wS8qtN.mjs +2 -0
- package/dist/chunks/Commands-P9wS8qtN.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-BFYAonMF.mjs +2 -0
- package/dist/chunks/Document-BFYAonMF.mjs.map +1 -0
- package/dist/chunks/DocumentParser-DFcvVMGY.mjs +2 -0
- package/dist/chunks/DocumentParser-DFcvVMGY.mjs.map +1 -0
- package/dist/chunks/DomUtils-Cdz1eDKM.mjs +2 -0
- package/dist/chunks/DomUtils-Cdz1eDKM.mjs.map +1 -0
- package/dist/chunks/HTMLUtils-CCvQ5f83.mjs +2 -0
- package/dist/chunks/HTMLUtils-CCvQ5f83.mjs.map +1 -0
- package/dist/chunks/HeadingPlugin-DYy3IoT_.mjs +2 -0
- package/dist/chunks/HeadingPlugin-DYy3IoT_.mjs.map +1 -0
- package/dist/chunks/KeyboardNav-DsYhKKuV.mjs +2 -0
- package/dist/chunks/KeyboardNav-DsYhKKuV.mjs.map +1 -0
- package/dist/chunks/LocaleService-B6Z-wyAF.mjs +2 -0
- package/dist/chunks/LocaleService-B6Z-wyAF.mjs.map +1 -0
- package/dist/chunks/MarkCommands-B_erV7zz.mjs +2 -0
- package/dist/chunks/MarkCommands-B_erV7zz.mjs.map +1 -0
- package/dist/chunks/NavigationQueries-ogQuObz7.mjs +2 -0
- package/dist/chunks/NavigationQueries-ogQuObz7.mjs.map +1 -0
- package/dist/chunks/NotectlEditor-4NFnXLyD.mjs +2 -0
- package/dist/chunks/NotectlEditor-4NFnXLyD.mjs.map +1 -0
- package/dist/chunks/Platform-CU6itXZo.mjs +2 -0
- package/dist/chunks/Platform-CU6itXZo.mjs.map +1 -0
- package/dist/chunks/Plugin-OzM8Oxm_.mjs +2 -0
- package/dist/chunks/Plugin-OzM8Oxm_.mjs.map +1 -0
- package/dist/chunks/PluginHelpers-DjZt0pQi.mjs +2 -0
- package/dist/chunks/PluginHelpers-DjZt0pQi.mjs.map +1 -0
- package/dist/chunks/PopupManager-BM8IT6M7.mjs +2 -0
- package/dist/chunks/PopupManager-BM8IT6M7.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-ehbL7ipA.mjs +2 -0
- package/dist/chunks/PrintTypes-ehbL7ipA.mjs.map +1 -0
- package/dist/chunks/RangeIterator-CNI6smOg.mjs +2 -0
- package/dist/chunks/{RangeIterator-Bh4Vl_6D.mjs.map → RangeIterator-CNI6smOg.mjs.map} +1 -1
- package/dist/chunks/Selection-6-W6Flxc.mjs +2 -0
- package/dist/chunks/{Selection-BRTab5hO.mjs.map → Selection-6-W6Flxc.mjs.map} +1 -1
- package/dist/chunks/SelectionTransactions-q71GEzgE.mjs +2 -0
- package/dist/chunks/SelectionTransactions-q71GEzgE.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-BmsLoEa8.mjs.map +1 -0
- package/dist/chunks/TextDirectionLocale-DB_aqrMg.mjs +2 -0
- package/dist/chunks/TextDirectionLocale-DB_aqrMg.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/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-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-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-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-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-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-C8xtb3SM.mjs +2 -0
- package/dist/chunks/index-C8xtb3SM.mjs.map +1 -0
- package/dist/chunks/index-DAoSt12h.mjs +2 -0
- package/dist/chunks/index-DAoSt12h.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-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-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-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/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/MarkCommands.d.ts +3 -3
- package/dist/commands/MarkCommands.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/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/ContentStyleInjector.d.ts +69 -0
- package/dist/editor/ContentStyleInjector.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/NotectlEditor.d.ts +24 -61
- 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/fonts.mjs +1 -6
- package/dist/fonts.mjs.map +1 -1
- package/dist/full.d.ts +45 -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 +33 -100
- package/dist/index.d.ts.map +1 -1
- package/dist/input/BlockInsertion.d.ts +51 -0
- package/dist/input/BlockInsertion.d.ts.map +1 -0
- 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 +35 -0
- package/dist/input/InputManager.d.ts.map +1 -0
- package/dist/input/InternalClipboard.d.ts +11 -1
- 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 +21 -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 +0 -4
- 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 +6 -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 +19 -5
- package/dist/model/NodeSpec.d.ts.map +1 -1
- package/dist/model/PaperSize.d.ts.map +1 -0
- package/dist/model/WordBoundary.d.ts +12 -0
- package/dist/model/WordBoundary.d.ts.map +1 -0
- package/dist/notectl-core.mjs +1 -3764
- package/dist/notectl-core.mjs.map +1 -1
- package/dist/notectl-core.umd.js +1 -9434
- 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 +5 -5
- package/dist/plugins/Plugin.d.ts.map +1 -1
- package/dist/plugins/PluginManager.d.ts +3 -3
- 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/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 +2 -3
- 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 +0 -1
- package/dist/plugins/code-block/CodeBlockTypes.d.ts.map +1 -1
- package/dist/plugins/code-block/index.d.ts +4 -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 -4
- 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 -5
- package/dist/plugins/font-size/FontSizePlugin.d.ts.map +1 -1
- package/dist/plugins/font-size/FontSizePopup.d.ts +4 -2
- 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/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 -2
- package/dist/plugins/image/ImagePlugin.d.ts.map +1 -1
- 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/ColorPickerPopup.d.ts +2 -1
- 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 +10 -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 +14 -2
- 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/index.d.ts +12 -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/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 +0 -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 +5 -20
- 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 -4
- 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 +3 -1
- 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 +36 -0
- package/dist/serialization/CSSClassCollector.d.ts.map +1 -0
- package/dist/serialization/ContentHTMLTypes.d.ts +29 -0
- package/dist/serialization/ContentHTMLTypes.d.ts.map +1 -0
- package/dist/serialization/DocumentParser.d.ts +13 -0
- package/dist/serialization/DocumentParser.d.ts.map +1 -0
- package/dist/serialization/DocumentSerializer.d.ts +15 -0
- package/dist/serialization/DocumentSerializer.d.ts.map +1 -0
- package/dist/serialization/MarkSerializer.d.ts +19 -0
- 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/{model/NavigationUtils.d.ts → state/NavigationQueries.d.ts} +3 -3
- package/dist/state/NavigationQueries.d.ts.map +1 -0
- package/dist/style/StyleRuntime.d.ts +3 -7
- package/dist/style/StyleRuntime.d.ts.map +1 -1
- 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 +4 -0
- package/dist/view/DomUtils.d.ts.map +1 -0
- package/dist/view/EditorView.d.ts +7 -10
- 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 +208 -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/CaretNavigation-7JYpIKbs.mjs +0 -311
- package/dist/chunks/CaretNavigation-7JYpIKbs.mjs.map +0 -1
- package/dist/chunks/ColorGrid-Dneqb8if.mjs +0 -81
- package/dist/chunks/ColorGrid-Dneqb8if.mjs.map +0 -1
- package/dist/chunks/ColorPickerPopup-CiCLBbe9.mjs +0 -37
- package/dist/chunks/ColorPickerPopup-CiCLBbe9.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-BTT-_pQ3.mjs +0 -32
- package/dist/chunks/PopupPositioning-BTT-_pQ3.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-ChRjVQwL.mjs +0 -239
- package/dist/chunks/StyleRuntime-ChRjVQwL.mjs.map +0 -1
- 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/ToolbarPlugin-DpLVJ71w.mjs +0 -1031
- package/dist/chunks/ToolbarPlugin-DpLVJ71w.mjs.map +0 -1
- package/dist/chunks/TypeBrands-C09nE2qO.mjs +0 -27
- package/dist/chunks/index--n1RGpq-.mjs +0 -171
- package/dist/chunks/index--n1RGpq-.mjs.map +0 -1
- package/dist/chunks/index-4or5UzNO.mjs +0 -168
- package/dist/chunks/index-4or5UzNO.mjs.map +0 -1
- package/dist/chunks/index-ABlTDvEX.mjs +0 -101
- package/dist/chunks/index-ABlTDvEX.mjs.map +0 -1
- package/dist/chunks/index-BAke7kNL.mjs +0 -467
- package/dist/chunks/index-BAke7kNL.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-BhDXjueu.mjs +0 -924
- package/dist/chunks/index-BhDXjueu.mjs.map +0 -1
- package/dist/chunks/index-BqNUfq-y.mjs +0 -228
- package/dist/chunks/index-BqNUfq-y.mjs.map +0 -1
- package/dist/chunks/index-BvqkuEY1.mjs +0 -50
- package/dist/chunks/index-BvqkuEY1.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-CWltg1wK.mjs +0 -124
- package/dist/chunks/index-CWltg1wK.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-CluzpB2b.mjs +0 -63
- package/dist/chunks/index-CluzpB2b.mjs.map +0 -1
- package/dist/chunks/index-D3NlpmT1.mjs +0 -50
- package/dist/chunks/index-D3NlpmT1.mjs.map +0 -1
- package/dist/chunks/index-D515iymW.mjs +0 -542
- package/dist/chunks/index-D515iymW.mjs.map +0 -1
- package/dist/chunks/index-Dk49P9N4.mjs +0 -62
- package/dist/chunks/index-Dk49P9N4.mjs.map +0 -1
- package/dist/chunks/index-DyzigvbZ.mjs +0 -410
- package/dist/chunks/index-DyzigvbZ.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-fsVJLutn.mjs +0 -118
- package/dist/chunks/index-fsVJLutn.mjs.map +0 -1
- package/dist/chunks/resolvePluginLocale-B4w1OkPy.mjs +0 -34
- package/dist/chunks/resolvePluginLocale-B4w1OkPy.mjs.map +0 -1
- package/dist/editor/DocumentParser.d.ts +0 -5
- package/dist/editor/DocumentParser.d.ts.map +0 -1
- package/dist/editor/DocumentSerializer.d.ts +0 -7
- package/dist/editor/DocumentSerializer.d.ts.map +0 -1
- package/dist/editor/MarkSerializer.d.ts +0 -11
- 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
|
@@ -15,8 +15,6 @@ export interface TextColorConfig {
|
|
|
15
15
|
* When omitted, the full default palette is shown.
|
|
16
16
|
*/
|
|
17
17
|
readonly colors?: readonly string[];
|
|
18
|
-
/** When true, a separator is rendered after the textColor toolbar item. */
|
|
19
|
-
readonly separatorAfter?: boolean;
|
|
20
18
|
readonly locale?: TextColorLocale;
|
|
21
19
|
}
|
|
22
20
|
export declare class TextColorPlugin implements Plugin {
|
|
@@ -27,7 +25,7 @@ export declare class TextColorPlugin implements Plugin {
|
|
|
27
25
|
private readonly colors;
|
|
28
26
|
private locale;
|
|
29
27
|
constructor(config?: Partial<TextColorConfig>);
|
|
30
|
-
init(context: PluginContext): void
|
|
28
|
+
init(context: PluginContext): Promise<void>;
|
|
31
29
|
private registerMarkSpec;
|
|
32
30
|
private registerCommands;
|
|
33
31
|
private registerToolbarItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextColorPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/text-color/TextColorPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"TextColorPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/text-color/TextColorPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI1D,OAAO,EAEN,KAAK,eAAe,EAEpB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,SAAS,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7B;CACD;AAID,MAAM,WAAW,eAAe;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;CAClC;AAsFD,qBAAa,eAAgB,YAAW,MAAM;IAC7C,QAAQ,CAAC,EAAE,eAAe;IAC1B,QAAQ,CAAC,IAAI,gBAAgB;IAC7B,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,MAAM,CAAmB;gBAErB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAKvC,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAejD,OAAO,CAAC,gBAAgB;IAuCxB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,mBAAmB;CAkC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/text-color/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EACf,KAAK,eAAe,GACpB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/text-color/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EACf,KAAK,eAAe,GACpB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACN,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-color/locales/ar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,QAAA,MAAM,MAAM,EAAE,eAKb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-color/locales/de.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,QAAA,MAAM,MAAM,EAAE,eAKb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-color/locales/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,QAAA,MAAM,MAAM,EAAE,eAKb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-color/locales/fr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,QAAA,MAAM,MAAM,EAAE,eAKb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hi.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-color/locales/hi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,QAAA,MAAM,MAAM,EAAE,eAKb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pt.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-color/locales/pt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,QAAA,MAAM,MAAM,EAAE,eAKb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ru.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-color/locales/ru.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,QAAA,MAAM,MAAM,EAAE,eAKb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zh.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-color/locales/zh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,QAAA,MAAM,MAAM,EAAE,eAKb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
T as TextColorPlugin
|
|
4
|
-
};
|
|
1
|
+
import{C as e}from"../chunks/color-picker-Byjl_xr9.mjs";import{a as t}from"../chunks/LocaleService-B6Z-wyAF.mjs";import{e as o}from"../chunks/HTMLUtils-CCvQ5f83.mjs";import{a as r}from"../chunks/StyleRuntime-BmsLoEa8.mjs";import{r as s,i as c,b as a}from"../chunks/ColorPickerPopup-DRzFvt7o.mjs";import{r as l,i}from"../chunks/ColorValidation-DCSKq9B2.mjs";const f={label:"Text Color",tooltip:"Text Color",resetLabel:"Default",ariaLabelPrefix:"Text color"},n=/* @__PURE__ */Object.assign({"./locales/ar.ts":()=>import("../chunks/ar-CL3QL0tw.mjs"),"./locales/de.ts":()=>import("../chunks/de-D1OAXtxJ.mjs"),"./locales/es.ts":()=>import("../chunks/es-CBk43isB.mjs"),"./locales/fr.ts":()=>import("../chunks/fr-gurfH-7T.mjs"),"./locales/hi.ts":()=>import("../chunks/hi-DtlvSQkD.mjs"),"./locales/pt.ts":()=>import("../chunks/pt-C-Vp7Rxj.mjs"),"./locales/ru.ts":()=>import("../chunks/ru-B3O7WXNM.mjs"),"./locales/zh.ts":()=>import("../chunks/zh-BfeWdPIz.mjs")});async function m(e){if("en"===e)return f;const t=n[`./locales/${e}.ts`];if(!t)return f;try{return(await t()).default}catch{return f}}const p=["#000000","#434343","#666666","#999999","#b7b7b7","#cccccc","#d9d9d9","#efefef","#f3f3f3","#ffffff","#980000","#ff0000","#ff9900","#ffff00","#00ff00","#00ffff","#4a86e8","#0000ff","#9900ff","#ff00ff","#e6b8af","#f4cccc","#fce5cd","#fff2cc","#d9ead3","#d0e0e3","#c9daf8","#cfe2f3","#d9d2e9","#ead1dc","#dd7e6b","#ea9999","#f9cb9c","#ffe599","#b6d7a8","#a2c4c9","#a4c2f4","#9fc5e8","#b4a7d6","#d5a6bd","#cc4125","#e06666","#f6b26b","#ffd966","#93c47d","#76a5af","#6d9eeb","#6fa8dc","#8e7cc3","#c27ba0","#a61c00","#cc0000","#e69138","#f1c232","#6aa84f","#45818e","#3c78d8","#3d85c6","#674ea7","#a64d79","#85200c","#990000","#b45f06","#bf9000","#38761d","#134f5c","#1155cc","#0b5394","#351c75","#741b47"];class h{id="textColor";name="Text Color";priority=23;config;colors;locale;constructor(e){this.config={...e},this.colors=l(e?.colors,p,"TextColorPlugin")}async init(o){if(this.config.locale)this.locale=this.config.locale;else{const e=o.getService(t),r=e?.getLocale()??"en";this.locale="en"===r?f:await m(r)}o.registerStyleSheet(e),this.registerMarkSpec(o),this.registerCommands(o),this.registerToolbarItem(o)}registerMarkSpec(e){e.registerMarkSpec({type:"textColor",rank:5,attrs:{color:{default:""}},toDOM(e){const t=document.createElement("span"),o=e.attrs?.color??"";return r(t,"color",o),t},toHTMLString:(e,t,r)=>{const s=String(e.attrs?.color??"");if(!s||!i(s))return t;const c=`color: ${o(s)}`;return`<span${r?.styleAttr(c)??` style="${c}"`}>${t}</span>`},toHTMLStyle:e=>{const t=String(e.attrs?.color??"");return t&&i(t)?`color: ${o(t)}`:null},parseHTML:[{tag:"span",getAttrs:e=>{const t=e.style.color;return!(!t||!i(t))&&{color:t}}}],sanitize:{tags:["span"]}})}registerCommands(e){e.registerCommand("removeTextColor",()=>s(e,e.getState(),"textColor"))}registerToolbarItem(e){const t=['<svg xmlns="http://www.w3.org/2000/svg"',' viewBox="0 0 24 24">','<path d="M11 3L5.5 17h2.25l1.12-3h6.25l1.12 3h2.25L13 3h-2zm-1.38 9L12 5.67 14.38 12H9.62z"/>','<rect x="3" y="19.5" width="18" height="3"',' rx="0.5" fill="#e53935"/>',"</svg>"].join("");e.registerToolbarItem({id:"textColor",group:"format",icon:t,label:this.locale.label,tooltip:this.locale.tooltip,command:"removeTextColor",popupType:"custom",renderPopup:(e,t,o)=>{a(e,t,{markType:"textColor",colors:this.colors,columns:10,resetLabel:this.locale.resetLabel,resetCommand:"removeTextColor",ariaLabelPrefix:this.locale.ariaLabelPrefix,onClose:o})},isActive:e=>c(e,"textColor")})}}export{f as TEXT_COLOR_LOCALE_EN,h as TextColorPlugin,m as loadTextColorLocale};
|
|
5
2
|
//# sourceMappingURL=text-color.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-color.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"text-color.mjs","sources":["../../src/plugins/text-color/TextColorLocale.ts","../../src/plugins/text-color/TextColorPlugin.ts"],"sourcesContent":["/** Locale interface and default English locale for the TextColorPlugin. */\n\n// --- Locale Interface ---\n\nexport interface TextColorLocale {\n\treadonly label: string;\n\treadonly tooltip: string;\n\treadonly resetLabel: string;\n\treadonly ariaLabelPrefix: string;\n}\n\n// --- Default English Locale ---\n\nexport const TEXT_COLOR_LOCALE_EN: TextColorLocale = {\n\tlabel: 'Text Color',\n\ttooltip: 'Text Color',\n\tresetLabel: 'Default',\n\tariaLabelPrefix: 'Text color',\n};\n\n// --- Lazy Locale Loader ---\n\nconst localeModules: Record<string, () => Promise<{ default: TextColorLocale }>> =\n\timport.meta.glob<{ default: TextColorLocale }>('./locales/*.ts', { eager: false });\n\nexport async function loadTextColorLocale(lang: string): Promise<TextColorLocale> {\n\tif (lang === 'en') return TEXT_COLOR_LOCALE_EN;\n\tconst loader = localeModules[`./locales/${lang}.ts`];\n\tif (!loader) return TEXT_COLOR_LOCALE_EN;\n\ttry {\n\t\tconst mod = await loader();\n\t\treturn mod.default;\n\t} catch {\n\t\treturn TEXT_COLOR_LOCALE_EN;\n\t}\n}\n","/**\n * TextColorPlugin: registers a text color mark with attrs,\n * toolbar button with a color picker popup, and removeTextColor command.\n */\n\nimport { COLOR_PICKER_CSS } from '../../editor/styles/color-picker.js';\nimport { LocaleServiceKey } from '../../i18n/LocaleService.js';\nimport { escapeHTML } from '../../model/HTMLUtils.js';\nimport type { HTMLExportContext } from '../../model/NodeSpec.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport { setStyleProperty } from '../../style/StyleRuntime.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\nimport { isColorMarkActive, removeColorMark } from '../shared/ColorMarkOperations.js';\nimport { renderColorPickerPopup } from '../shared/ColorPickerPopup.js';\nimport { isValidCSSColor, resolveColors } from '../shared/ColorValidation.js';\nimport {\n\tTEXT_COLOR_LOCALE_EN,\n\ttype TextColorLocale,\n\tloadTextColorLocale,\n} from './TextColorLocale.js';\n\n// --- Attribute Registry Augmentation ---\n\ndeclare module '../../model/AttrRegistry.js' {\n\tinterface MarkAttrRegistry {\n\t\ttextColor: { color: string };\n\t}\n}\n\n// --- Configuration ---\n\nexport interface TextColorConfig {\n\t/**\n\t * Restricts the color picker to a specific set of hex colors.\n\t * Each value must be a valid hex color code (`#RGB` or `#RRGGBB`).\n\t * Duplicates are removed automatically (case-insensitive).\n\t * When omitted, the full default palette is shown.\n\t */\n\treadonly colors?: readonly string[];\n\treadonly locale?: TextColorLocale;\n}\n\n// --- Color Palette (Google Docs style: 10 columns x 7 rows) ---\n\nconst COLOR_PALETTE: readonly string[] = [\n\t// Row 1 — dark\n\t'#000000',\n\t'#434343',\n\t'#666666',\n\t'#999999',\n\t'#b7b7b7',\n\t'#cccccc',\n\t'#d9d9d9',\n\t'#efefef',\n\t'#f3f3f3',\n\t'#ffffff',\n\t// Row 2 — vivid\n\t'#980000',\n\t'#ff0000',\n\t'#ff9900',\n\t'#ffff00',\n\t'#00ff00',\n\t'#00ffff',\n\t'#4a86e8',\n\t'#0000ff',\n\t'#9900ff',\n\t'#ff00ff',\n\t// Row 3 — light 3\n\t'#e6b8af',\n\t'#f4cccc',\n\t'#fce5cd',\n\t'#fff2cc',\n\t'#d9ead3',\n\t'#d0e0e3',\n\t'#c9daf8',\n\t'#cfe2f3',\n\t'#d9d2e9',\n\t'#ead1dc',\n\t// Row 4 — light 2\n\t'#dd7e6b',\n\t'#ea9999',\n\t'#f9cb9c',\n\t'#ffe599',\n\t'#b6d7a8',\n\t'#a2c4c9',\n\t'#a4c2f4',\n\t'#9fc5e8',\n\t'#b4a7d6',\n\t'#d5a6bd',\n\t// Row 5 — light 1\n\t'#cc4125',\n\t'#e06666',\n\t'#f6b26b',\n\t'#ffd966',\n\t'#93c47d',\n\t'#76a5af',\n\t'#6d9eeb',\n\t'#6fa8dc',\n\t'#8e7cc3',\n\t'#c27ba0',\n\t// Row 6 — dark 1\n\t'#a61c00',\n\t'#cc0000',\n\t'#e69138',\n\t'#f1c232',\n\t'#6aa84f',\n\t'#45818e',\n\t'#3c78d8',\n\t'#3d85c6',\n\t'#674ea7',\n\t'#a64d79',\n\t// Row 7 — dark 2\n\t'#85200c',\n\t'#990000',\n\t'#b45f06',\n\t'#bf9000',\n\t'#38761d',\n\t'#134f5c',\n\t'#1155cc',\n\t'#0b5394',\n\t'#351c75',\n\t'#741b47',\n];\n\n// --- Plugin ---\n\nexport class TextColorPlugin implements Plugin {\n\treadonly id = 'textColor';\n\treadonly name = 'Text Color';\n\treadonly priority = 23;\n\n\tprivate readonly config: TextColorConfig;\n\tprivate readonly colors: readonly string[];\n\tprivate locale!: TextColorLocale;\n\n\tconstructor(config?: Partial<TextColorConfig>) {\n\t\tthis.config = { ...config };\n\t\tthis.colors = resolveColors(config?.colors, COLOR_PALETTE, 'TextColorPlugin');\n\t}\n\n\tasync init(context: PluginContext): Promise<void> {\n\t\tif (this.config.locale) {\n\t\t\tthis.locale = this.config.locale;\n\t\t} else {\n\t\t\tconst service = context.getService(LocaleServiceKey);\n\t\t\tconst lang: string = service?.getLocale() ?? 'en';\n\t\t\tthis.locale = lang === 'en' ? TEXT_COLOR_LOCALE_EN : await loadTextColorLocale(lang);\n\t\t}\n\n\t\tcontext.registerStyleSheet(COLOR_PICKER_CSS);\n\t\tthis.registerMarkSpec(context);\n\t\tthis.registerCommands(context);\n\t\tthis.registerToolbarItem(context);\n\t}\n\n\tprivate registerMarkSpec(context: PluginContext): void {\n\t\tcontext.registerMarkSpec({\n\t\t\ttype: 'textColor',\n\t\t\trank: 5,\n\t\t\tattrs: {\n\t\t\t\tcolor: { default: '' },\n\t\t\t},\n\t\t\ttoDOM(mark) {\n\t\t\t\tconst span = document.createElement('span');\n\t\t\t\tconst color = mark.attrs?.color ?? '';\n\t\t\t\tsetStyleProperty(span, 'color', color);\n\t\t\t\treturn span;\n\t\t\t},\n\t\t\ttoHTMLString: (mark, content, ctx?: HTMLExportContext) => {\n\t\t\t\tconst color: string = String(mark.attrs?.color ?? '');\n\t\t\t\tif (!color || !isValidCSSColor(color)) return content;\n\t\t\t\tconst decl: string = `color: ${escapeHTML(color)}`;\n\t\t\t\tconst attr: string = ctx?.styleAttr(decl) ?? ` style=\"${decl}\"`;\n\t\t\t\treturn `<span${attr}>${content}</span>`;\n\t\t\t},\n\t\t\ttoHTMLStyle: (mark) => {\n\t\t\t\tconst color: string = String(mark.attrs?.color ?? '');\n\t\t\t\tif (!color || !isValidCSSColor(color)) return null;\n\t\t\t\treturn `color: ${escapeHTML(color)}`;\n\t\t\t},\n\t\t\tparseHTML: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tgetAttrs: (el) => {\n\t\t\t\t\t\tconst color: string = el.style.color;\n\t\t\t\t\t\tif (!color || !isValidCSSColor(color)) return false;\n\t\t\t\t\t\treturn { color };\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tsanitize: { tags: ['span'] },\n\t\t});\n\t}\n\n\tprivate registerCommands(context: PluginContext): void {\n\t\tcontext.registerCommand('removeTextColor', () => {\n\t\t\treturn removeColorMark(context, context.getState(), 'textColor');\n\t\t});\n\t}\n\n\tprivate registerToolbarItem(context: PluginContext): void {\n\t\tconst pathD =\n\t\t\t'M11 3L5.5 17h2.25l1.12-3h6.25l1.12 3h2.25L13 3h-2z' + 'm-1.38 9L12 5.67 14.38 12H9.62z';\n\t\tconst icon: string = [\n\t\t\t'<svg xmlns=\"http://www.w3.org/2000/svg\"',\n\t\t\t' viewBox=\"0 0 24 24\">',\n\t\t\t`<path d=\"${pathD}\"/>`,\n\t\t\t'<rect x=\"3\" y=\"19.5\" width=\"18\" height=\"3\"',\n\t\t\t' rx=\"0.5\" fill=\"#e53935\"/>',\n\t\t\t'</svg>',\n\t\t].join('');\n\n\t\tcontext.registerToolbarItem({\n\t\t\tid: 'textColor',\n\t\t\tgroup: 'format',\n\t\t\ticon,\n\t\t\tlabel: this.locale.label,\n\t\t\ttooltip: this.locale.tooltip,\n\t\t\tcommand: 'removeTextColor',\n\t\t\tpopupType: 'custom',\n\t\t\trenderPopup: (container, ctx, onClose) => {\n\t\t\t\trenderColorPickerPopup(container, ctx, {\n\t\t\t\t\tmarkType: 'textColor',\n\t\t\t\t\tcolors: this.colors,\n\t\t\t\t\tcolumns: 10,\n\t\t\t\t\tresetLabel: this.locale.resetLabel,\n\t\t\t\t\tresetCommand: 'removeTextColor',\n\t\t\t\t\tariaLabelPrefix: this.locale.ariaLabelPrefix,\n\t\t\t\t\tonClose,\n\t\t\t\t});\n\t\t\t},\n\t\t\tisActive: (state: EditorState) => isColorMarkActive(state, 'textColor'),\n\t\t});\n\t}\n}\n"],"names":["TEXT_COLOR_LOCALE_EN","label","tooltip","resetLabel","ariaLabelPrefix","localeModules","assign","import","async","loadTextColorLocale","lang","loader","default","COLOR_PALETTE","TextColorPlugin","id","name","priority","config","colors","locale","constructor","this","resolveColors","init","context","service","getService","LocaleServiceKey","getLocale","registerStyleSheet","COLOR_PICKER_CSS","registerMarkSpec","registerCommands","registerToolbarItem","type","rank","attrs","color","toDOM","mark","span","document","createElement","setStyleProperty","toHTMLString","content","ctx","String","isValidCSSColor","decl","escapeHTML","styleAttr","toHTMLStyle","parseHTML","tag","getAttrs","el","style","sanitize","tags","registerCommand","removeColorMark","getState","icon","join","group","command","popupType","renderPopup","container","onClose","renderColorPickerPopup","markType","columns","resetCommand","isActive","state","isColorMarkActive"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BlockNode } from '../../model/Document.js';
|
|
2
|
+
import { BlockId } from '../../model/TypeBrands.js';
|
|
3
|
+
import { EditorState } from '../../state/EditorState.js';
|
|
4
|
+
import { TextDirection } from './TextDirectionPlugin.js';
|
|
5
|
+
/**
|
|
6
|
+
* Detects the dominant text direction based on the first strong directional character.
|
|
7
|
+
* Returns `null` if no strong character is found (all neutral/numeric/whitespace).
|
|
8
|
+
*/
|
|
9
|
+
export declare function detectTextDirection(text: string): TextDirection | null;
|
|
10
|
+
/** Returns the current `dir` attribute of a block, defaulting to `'auto'`. */
|
|
11
|
+
export declare function getBlockDir(block: BlockNode): TextDirection;
|
|
12
|
+
/**
|
|
13
|
+
* Finds the `dir` attribute of the nearest sibling with an explicit direction
|
|
14
|
+
* (not `'auto'`) before the insert position, walking backwards.
|
|
15
|
+
*/
|
|
16
|
+
export declare function findSiblingDirection(state: EditorState, parentPath: readonly BlockId[], index: number): TextDirection | undefined;
|
|
17
|
+
//# sourceMappingURL=DirectionDetection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DirectionDetection.d.ts","sourceRoot":"","sources":["../../../src/plugins/text-direction/DirectionDetection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAuB9D;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAQtE;AAID,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,aAAa,CAI3D;AAID;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,SAAS,OAAO,EAAE,EAC9B,KAAK,EAAE,MAAM,GACX,aAAa,GAAG,SAAS,CAgB3B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PluginContext } from '../Plugin.js';
|
|
2
|
+
export declare class ShiftDirectionHandler {
|
|
3
|
+
private readonly context;
|
|
4
|
+
private pendingDir;
|
|
5
|
+
private container;
|
|
6
|
+
constructor(context: PluginContext);
|
|
7
|
+
attach(container: HTMLElement): void;
|
|
8
|
+
detach(): void;
|
|
9
|
+
private readonly onKeydown;
|
|
10
|
+
private readonly onKeyup;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=ShiftDirectionHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShiftDirectionHandler.d.ts","sourceRoot":"","sources":["../../../src/plugins/text-direction/ShiftDirectionHandler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,qBAAa,qBAAqB;IAIrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,SAAS,CAA4B;gBAEhB,OAAO,EAAE,aAAa;IAEnD,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;IAMpC,MAAM,IAAI,IAAI;IAOd,OAAO,CAAC,QAAQ,CAAC,SAAS,CAWxB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAMtB;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Plugin, PluginContext } from '../Plugin.js';
|
|
2
|
+
import { TextDirectionLocale } from './TextDirectionLocale.js';
|
|
3
|
+
export type TextDirection = 'ltr' | 'rtl' | 'auto';
|
|
4
|
+
export interface TextDirectionConfig {
|
|
5
|
+
/** Block types that support direction. */
|
|
6
|
+
readonly directableTypes: readonly string[];
|
|
7
|
+
readonly locale?: TextDirectionLocale;
|
|
8
|
+
}
|
|
9
|
+
export declare const DIRECTION_ICONS: Readonly<Record<TextDirection, string>>;
|
|
10
|
+
/**
|
|
11
|
+
* Lean text-direction plugin.
|
|
12
|
+
* Includes block-level direction controls and toolbar integration only.
|
|
13
|
+
*/
|
|
14
|
+
export declare class TextDirectionCorePlugin implements Plugin {
|
|
15
|
+
readonly id = "text-direction";
|
|
16
|
+
readonly name = "Text Direction";
|
|
17
|
+
readonly priority = 91;
|
|
18
|
+
private readonly config;
|
|
19
|
+
private locale;
|
|
20
|
+
private directableTypes;
|
|
21
|
+
private shiftDirHandler;
|
|
22
|
+
constructor(config?: Partial<TextDirectionConfig>);
|
|
23
|
+
init(context: PluginContext): Promise<void>;
|
|
24
|
+
destroy(): void;
|
|
25
|
+
private patchNodeSpecs;
|
|
26
|
+
private registerCommands;
|
|
27
|
+
private registerKeymaps;
|
|
28
|
+
private registerToolbarItem;
|
|
29
|
+
private getDirectionLabel;
|
|
30
|
+
private setDirection;
|
|
31
|
+
private getSelectedBlockIds;
|
|
32
|
+
private isNonDefaultDirection;
|
|
33
|
+
private isDirectable;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=TextDirectionCorePlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextDirectionCorePlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/text-direction/TextDirectionCorePlugin.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAK1D,OAAO,EAEN,KAAK,mBAAmB,EAExB,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IACnC,0CAA0C;IAC1C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAcD,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAInE,CAAC;AAIF;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,MAAM;IACrD,QAAQ,CAAC,EAAE,oBAAoB;IAC/B,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAsC;gBAEjD,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAI3C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBjD,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,YAAY;CAIpB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Locale interface and default English locale for the TextDirectionPlugin. */
|
|
2
|
+
export interface TextDirectionLocale {
|
|
3
|
+
readonly ltr: string;
|
|
4
|
+
readonly rtl: string;
|
|
5
|
+
readonly auto: string;
|
|
6
|
+
readonly toolbarLabel: string;
|
|
7
|
+
readonly toolbarTooltip: string;
|
|
8
|
+
readonly announceLTR: string;
|
|
9
|
+
readonly announceRTL: string;
|
|
10
|
+
readonly announceAuto: string;
|
|
11
|
+
readonly inlineLTR: string;
|
|
12
|
+
readonly inlineRTL: string;
|
|
13
|
+
readonly inlineAuto: string;
|
|
14
|
+
readonly inlineLabel: string;
|
|
15
|
+
readonly inlineTooltip: string;
|
|
16
|
+
readonly announceRemoveBidi: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const TEXT_DIRECTION_LOCALE_EN: TextDirectionLocale;
|
|
19
|
+
export declare function loadTextDirectionLocale(lang: string): Promise<TextDirectionLocale>;
|
|
20
|
+
//# sourceMappingURL=TextDirectionLocale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextDirectionLocale.d.ts","sourceRoot":"","sources":["../../../src/plugins/text-direction/TextDirectionLocale.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACpC;AAID,eAAO,MAAM,wBAAwB,EAAE,mBAetC,CAAC;AAOF,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAUxF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PluginContext } from '../Plugin.js';
|
|
2
|
+
/**
|
|
3
|
+
* Preserves the `dir` attribute when other plugins change the block
|
|
4
|
+
* type (e.g. paragraph -> heading) via `setBlockType`, which replaces attrs.
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerPreserveDirMiddleware(context: PluginContext, directableTypes: ReadonlySet<string>): void;
|
|
7
|
+
/**
|
|
8
|
+
* Auto-detects text direction on `insertText` and `deleteText` steps
|
|
9
|
+
* for blocks with `dir="auto"` (or blocks whose content changes direction).
|
|
10
|
+
* Uses the first strong directional character to determine LTR vs RTL.
|
|
11
|
+
*/
|
|
12
|
+
export declare function registerAutoDetectMiddleware(context: PluginContext, directableTypes: ReadonlySet<string>): void;
|
|
13
|
+
/**
|
|
14
|
+
* Inherits `dir` from the nearest sibling when inserting a new block
|
|
15
|
+
* (e.g. via GapCursor or NodeSelection).
|
|
16
|
+
*/
|
|
17
|
+
export declare function registerInheritDirMiddleware(context: PluginContext, directableTypes: ReadonlySet<string>): void;
|
|
18
|
+
//# sourceMappingURL=TextDirectionMiddleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextDirectionMiddleware.d.ts","sourceRoot":"","sources":["../../../src/plugins/text-direction/TextDirectionMiddleware.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD;;;GAGG;AACH,wBAAgB,6BAA6B,CAC5C,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,GAClC,IAAI,CAuBN;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,GAClC,IAAI,CAqBN;AA0ED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,GAClC,IAAI,CAkDN"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Plugin, PluginContext } from '../Plugin.js';
|
|
2
|
+
import { TextDirectionLocale } from './TextDirectionLocale.js';
|
|
3
|
+
declare module '../../model/AttrRegistry.js' {
|
|
4
|
+
interface MarkAttrRegistry {
|
|
5
|
+
bdi: {
|
|
6
|
+
dir: 'ltr' | 'rtl' | 'auto';
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export type TextDirection = 'ltr' | 'rtl' | 'auto';
|
|
11
|
+
export interface TextDirectionConfig {
|
|
12
|
+
/** Block types that support direction. */
|
|
13
|
+
readonly directableTypes: readonly string[];
|
|
14
|
+
readonly locale?: TextDirectionLocale;
|
|
15
|
+
}
|
|
16
|
+
export declare const DIRECTION_ICONS: Readonly<Record<TextDirection, string>>;
|
|
17
|
+
export declare class TextDirectionPlugin implements Plugin {
|
|
18
|
+
readonly id = "text-direction";
|
|
19
|
+
readonly name = "Text Direction";
|
|
20
|
+
readonly priority = 91;
|
|
21
|
+
private readonly config;
|
|
22
|
+
private locale;
|
|
23
|
+
private directableTypes;
|
|
24
|
+
private shiftDirHandler;
|
|
25
|
+
constructor(config?: Partial<TextDirectionConfig>);
|
|
26
|
+
init(context: PluginContext): Promise<void>;
|
|
27
|
+
destroy(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Patches existing NodeSpecs for directable block types to support the
|
|
30
|
+
* `dir` attribute and render it as an HTML attribute. Skips types
|
|
31
|
+
* that already define a `dir` attribute in their spec.
|
|
32
|
+
*/
|
|
33
|
+
private patchNodeSpecs;
|
|
34
|
+
private registerBdiMark;
|
|
35
|
+
private registerCommands;
|
|
36
|
+
private registerKeymaps;
|
|
37
|
+
private registerToolbarItem;
|
|
38
|
+
private registerInlineToolbarItem;
|
|
39
|
+
private getDirectionLabel;
|
|
40
|
+
private setDirection;
|
|
41
|
+
/**
|
|
42
|
+
* Returns all block IDs covered by the current selection.
|
|
43
|
+
* Only handles TextSelection and NodeSelection — other selection types
|
|
44
|
+
* (e.g. GapCursorSelection) return an empty array intentionally, since
|
|
45
|
+
* gap cursors sit between blocks and have no associated block content.
|
|
46
|
+
*/
|
|
47
|
+
private getSelectedBlockIds;
|
|
48
|
+
private isNonDefaultDirection;
|
|
49
|
+
private isDirectable;
|
|
50
|
+
/**
|
|
51
|
+
* Cycles inline bidi isolation: no-bdi → bdi (opposite of block dir) →
|
|
52
|
+
* remove. Applies the opposite direction of the current block for the
|
|
53
|
+
* common case (e.g., LTR word in an RTL block gets bdi-ltr).
|
|
54
|
+
*/
|
|
55
|
+
private toggleBidiIsolation;
|
|
56
|
+
private applyBdi;
|
|
57
|
+
private removeBdi;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=TextDirectionPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextDirectionPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/text-direction/TextDirectionPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAeH,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAK1D,OAAO,EAEN,KAAK,mBAAmB,EAExB,MAAM,0BAA0B,CAAC;AASlC,OAAO,QAAQ,6BAA6B,CAAC;IAC5C,UAAU,gBAAgB;QACzB,GAAG,EAAE;YAAE,GAAG,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;SAAE,CAAC;KACrC;CACD;AAID,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IACnC,0CAA0C;IAC1C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAgBD,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAInE,CAAC;AASF,qBAAa,mBAAoB,YAAW,MAAM;IACjD,QAAQ,CAAC,EAAE,oBAAoB;IAC/B,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,QAAQ,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAsC;gBAEjD,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAI3C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BjD,OAAO,IAAI,IAAI;IAOf;;;;OAIG;IACH,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,gBAAgB;IA4DxB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,yBAAyB;IAyBjC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,YAAY;IA0BpB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,YAAY;IAOpB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,SAAS;CAOjB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { TextDirectionCorePlugin as TextDirectionPlugin, DIRECTION_ICONS, type TextDirectionConfig, type TextDirection, } from './TextDirectionCorePlugin.js';
|
|
2
|
+
export { detectTextDirection, findSiblingDirection, getBlockDir } from './DirectionDetection.js';
|
|
3
|
+
export type { TextDirectionLocale } from './TextDirectionLocale.js';
|
|
4
|
+
export { TEXT_DIRECTION_LOCALE_EN, loadTextDirectionLocale, } from './TextDirectionLocale.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/text-direction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,uBAAuB,IAAI,mBAAmB,EAC9C,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,aAAa,GAClB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEjG,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACN,wBAAwB,EACxB,uBAAuB,GACvB,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-direction/locales/ar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,QAAA,MAAM,MAAM,EAAE,mBAeb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-direction/locales/de.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,QAAA,MAAM,MAAM,EAAE,mBAeb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-direction/locales/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,QAAA,MAAM,MAAM,EAAE,mBAeb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-direction/locales/fr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,QAAA,MAAM,MAAM,EAAE,mBAeb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hi.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-direction/locales/hi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,QAAA,MAAM,MAAM,EAAE,mBAeb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pt.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-direction/locales/pt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,QAAA,MAAM,MAAM,EAAE,mBAeb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ru.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-direction/locales/ru.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,QAAA,MAAM,MAAM,EAAE,mBAeb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zh.d.ts","sourceRoot":"","sources":["../../../../src/plugins/text-direction/locales/zh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE,QAAA,MAAM,MAAM,EAAE,mBAeb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { TextDirectionPlugin as TextDirectionAdvancedPlugin, DIRECTION_ICONS, type TextDirectionConfig, type TextDirection, } from '../text-direction/TextDirectionPlugin.js';
|
|
2
|
+
export { detectTextDirection, findSiblingDirection, getBlockDir, } from '../text-direction/DirectionDetection.js';
|
|
3
|
+
export type { TextDirectionLocale } from '../text-direction/TextDirectionLocale.js';
|
|
4
|
+
export { TEXT_DIRECTION_LOCALE_EN, loadTextDirectionLocale, } from '../text-direction/TextDirectionLocale.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/text-direction-advanced/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,mBAAmB,IAAI,2BAA2B,EAClD,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,aAAa,GAClB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACN,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,GACX,MAAM,yCAAyC,CAAC;AAEjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EACN,wBAAwB,EACxB,uBAAuB,GACvB,MAAM,0CAA0C,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as t,a as e,r as i}from"../chunks/AttributedMarkCommands-BB7lzFct.mjs";import{a as o}from"../chunks/LocaleService-B6Z-wyAF.mjs";import{e as r}from"../chunks/HTMLUtils-CCvQ5f83.mjs";import{j as n,i as s,h as a}from"../chunks/Selection-6-W6Flxc.mjs";import{m as l}from"../chunks/TypeBrands-Bp_Z_o5Y.mjs";import{a as c}from"../chunks/Platform-CU6itXZo.mjs";import{g as d}from"../chunks/PluginHelpers-DjZt0pQi.mjs";import{f as h}from"../chunks/ShortcutFormatting-BLKS0Gys.mjs";import{d as u,f as m,g,T as p,l as f,S as v}from"../chunks/TextDirectionLocale-DB_aqrMg.mjs";import{i as b,b as T}from"../chunks/Document-BFYAonMF.mjs";function y(t,e,i){const o=t.getNodePath(e.id);if(o)return{type:"setNodeAttr",path:o,attrs:{...e.attrs,dir:i},previousAttrs:e.attrs}}function B(t,e,i,o){const r=e.getBlock(t.blockId);if(!r||!i.has(r.type))return;const n=b(r);if("auto"!==g(r)&&n.length>0)return;const s=T(r,t.offset),a=n.slice(0,s)+t.text+n.slice(s),l=u(a);if(!l)return;const c=y(e,r,l);c&&o.push(c)}function D(t,e,i,o){const r=e.getBlock(t.blockId);if(!r||!i.has(r.type))return;const n=g(r);if("auto"===n)return;const s=b(r),a=T(r,t.from),l=T(r,t.to),c=s.slice(0,a)+s.slice(l);if(0===c.length){const t=y(e,r,"auto");return void(t&&o.push(t))}const d=u(c);if(!d||d===n)return;const h=y(e,r,d);h&&o.push(h)}const S={directableTypes:["paragraph","heading","title","subtitle","table_cell","blockquote","list_item"]},k={ltr:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm12 8l-4-4v3H5v2h12v3l4-4z"/></svg>',rtl:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 10v5h2V4h2v11h2V4h2V2h-8C7.79 2 6 3.79 6 6s1.79 4 4 4zM8 14l-4 4 4 4v-3h12v-2H8v-3z"/></svg>',auto:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm3 8l-4-4v3H3v2h5v3l4-4zm7 0v-3l4 4-4 4v-3h-5v-2h5z"/></svg>'},w=["ltr","rtl","auto"];class L{id="text-direction";name="Text Direction";priority=91;config;locale;directableTypes;shiftDirHandler=null;constructor(t){this.config={...S,...t}}async init(t){if(this.config.locale)this.locale=this.config.locale;else{const e=t.getService(o),i=e?.getLocale()??"en";this.locale="en"===i?p:await f(i)}this.directableTypes=new Set(this.config.directableTypes),this.patchNodeSpecs(t),this.registerBdiMark(t),this.registerCommands(t),this.registerKeymaps(t),this.registerToolbarItem(t),this.registerInlineToolbarItem(t),function(t,e){t.registerMiddleware((t,i,o)=>{let r=!1;const n=t.steps.map(t=>{if("setBlockType"!==t.type)return t;if(!e.has(t.nodeType))return t;const i=t.previousAttrs?.dir;return i&&"auto"!==i?(r=!0,{...t,attrs:{...t.attrs,dir:i}}):t});o(r?{...t,steps:n}:t)},{name:"text-direction:preserve-dir"})}(t,this.directableTypes),function(t,e){t.registerMiddleware((t,i,o)=>{const r=[];for(const n of t.steps)"insertText"===n.type?B(n,i,e,r):"deleteText"===n.type&&D(n,i,e,r);o(r.length>0?{...t,steps:[...t.steps,...r]}:t)},{name:"text-direction:auto-detect"})}(t,this.directableTypes),function(t,e){t.registerMiddleware((t,i,o)=>{let r=!1;const n=t.steps.map(t=>{if("insertNode"!==t.type)return t;if(!e.has(t.node.type))return t;if("auto"!==String(t.node.attrs?.dir??"auto"))return t;const o=b(t.node);if(o.length>0){const e=u(o);if(e)return r=!0,{...t,node:{...t.node,attrs:{...t.node.attrs,dir:e}}}}const n=m(i,t.parentPath,t.index);return n&&"auto"!==n?(r=!0,{...t,node:{...t.node,attrs:{...t.node.attrs,dir:n}}}):t});o(r?{...t,steps:n}:t)},{name:"text-direction:inherit-dir"})}(t,this.directableTypes),c()||(this.shiftDirHandler=new v(t),this.shiftDirHandler.attach(t.getContainer()))}destroy(){this.shiftDirHandler?.detach(),this.shiftDirHandler=null}patchNodeSpecs(t){const e=t.getSchemaRegistry();for(const i of this.config.directableTypes){const t=e.getNodeSpec(i);if(!t)continue;if(t.attrs?.dir)continue;const o=t.toDOM;e.removeNodeSpec(i),e.registerNodeSpec({...t,attrs:{...t.attrs,dir:{default:"auto"}},toDOM(e){const i=o.call(t,e);return x(i,e),i}})}}registerBdiMark(t){t.registerMarkSpec({type:"bdi",rank:10,attrs:{dir:{default:"auto"}},toDOM(t){const e=document.createElement("bdi"),i=String(t.attrs?.dir??"auto");return e.setAttribute("dir",i),e},toHTMLString:(t,e)=>`<bdi dir="${r(String(t.attrs?.dir??"auto"))}">${e}</bdi>`,parseHTML:[{tag:"bdi",getAttrs:t=>{const e=t.getAttribute("dir");return"ltr"===e||"rtl"===e?{dir:e}:{dir:"auto"}}}],sanitize:{tags:["bdi"],attrs:["dir"]}})}registerCommands(t){t.registerCommand("setDirectionLTR",()=>{const e=this.setDirection(t,"ltr");return e&&t.announce(this.locale.announceLTR),e}),t.registerCommand("setDirectionRTL",()=>{const e=this.setDirection(t,"rtl");return e&&t.announce(this.locale.announceRTL),e}),t.registerCommand("setDirectionAuto",()=>{const e=this.setDirection(t,"auto");return e&&t.announce(this.locale.announceAuto),e}),t.registerCommand("toggleBidiLTR",()=>{const e=this.applyBdi(t,"ltr");return e&&t.announce(this.locale.inlineLTR),e}),t.registerCommand("toggleBidiRTL",()=>{const e=this.applyBdi(t,"rtl");return e&&t.announce(this.locale.inlineRTL),e}),t.registerCommand("toggleBidiAuto",()=>{const e=this.applyBdi(t,"auto");return e&&t.announce(this.locale.inlineAuto),e}),t.registerCommand("removeBidi",()=>{const e=this.removeBdi(t);return e&&t.announce(this.locale.announceRemoveBidi),e}),t.registerCommand("toggleBidiIsolation",()=>this.toggleBidiIsolation(t)),t.registerCommand("toggleDirection",()=>{const e=t.getState(),i=d(e);if(!i||!this.directableTypes.has(i.type))return!1;const o=g(i),r="auto"===o?"rtl":"rtl"===o?"ltr":"auto";return this.setDirection(t,r)})}registerKeymaps(t){t.registerKeymap({"Mod-Shift-D":()=>t.executeCommand("toggleDirection"),"Mod-Shift-B":()=>t.executeCommand("toggleBidiIsolation")})}registerToolbarItem(t){const e={ltr:"setDirectionLTR",rtl:"setDirectionRTL",auto:"setDirectionAuto"},i=w.map(t=>({label:this.getDirectionLabel(t),command:e[t],icon:k[t]}));t.registerToolbarItem({id:"text-direction",group:"block",icon:k.auto,label:this.locale.toolbarLabel,tooltip:`${this.locale.toolbarTooltip} (${h("Mod-Shift-D")})`,command:"setDirectionAuto",popupType:"dropdown",popupConfig:{items:i},isActive:t=>this.isNonDefaultDirection(t),isEnabled:t=>this.isDirectable(t),getIcon:t=>{const e=d(t);if(!e)return k.auto;const i=g(e);return k[i]??k.auto}})}registerInlineToolbarItem(e){const i=[{label:this.locale.inlineLTR,command:"toggleBidiLTR",icon:k.ltr},{label:this.locale.inlineRTL,command:"toggleBidiRTL",icon:k.rtl},{label:this.locale.inlineAuto,command:"toggleBidiAuto",icon:k.auto},{label:this.locale.announceRemoveBidi,command:"removeBidi"}];e.registerToolbarItem({id:"inline-direction",group:"format",icon:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 4v7h2V4h2v7h2V4h1V2H10a3 3 0 1 0 0 6zm-3.5 9.5L3 17l3.5 3.5V18h3v-2h-3v-2.5zm14 0L17 17l3.5 3.5V18h-3v-2h3v-2.5zM11 16h2v6h-2z"/></svg>',label:this.locale.inlineLabel,tooltip:`${this.locale.inlineTooltip} (${h("Mod-Shift-B")})`,command:"toggleBidiIsolation",popupType:"dropdown",popupConfig:{items:i},isActive:e=>t(e,"bdi"),isEnabled:t=>{const e=t.selection;return n(e)&&!s(e)}})}getDirectionLabel(t){return"ltr"===t?this.locale.ltr:"rtl"===t?this.locale.rtl:this.locale.auto}setDirection(t,e){const i=t.getState(),o=this.getSelectedBlockIds(i);if(0===o.length)return!1;const r=i.transaction("command");let n=!1;for(const a of o){const t=i.getBlock(a);if(!t||!this.directableTypes.has(t.type))continue;const o=i.getNodePath(a);o&&(r.setNodeAttr(o,{...t.attrs,dir:e}),n=!0)}if(!n)return!1;const s=r.setSelection(i.selection).build();return t.dispatch(s),!0}getSelectedBlockIds(t){const e=t.selection;if(a(e))return[e.nodeId];if(!n(e))return[];const i=e.anchor.blockId,o=e.head.blockId;if(i===o)return[i];const r=t.getBlockOrder(),s=r.indexOf(i),l=r.indexOf(o);if(-1===s||-1===l)return[];const c=Math.min(s,l),d=Math.max(s,l);return r.slice(c,d+1)}isNonDefaultDirection(t){const e=d(t);if(!e||!this.directableTypes.has(e.type))return!1;const i=e.attrs?.dir;return null!=i&&"auto"!==i}isDirectable(t){const e=d(t);return null!=e&&this.directableTypes.has(e.type)}toggleBidiIsolation(e){const i=e.getState();if(t(i,"bdi")){const t=this.removeBdi(e);return t&&e.announce(this.locale.announceRemoveBidi),t}const o=d(i),r="rtl"===(o?g(o):"auto")?"ltr":"rtl",n=this.applyBdi(e,r);if(n){const t="ltr"===r?this.locale.inlineLTR:this.locale.inlineRTL;e.announce(t)}return n}applyBdi(t,i){const o=t.getState(),r={type:l("bdi"),attrs:{dir:i}},n=e(o,r);return!!n&&(t.dispatch(n),!0)}removeBdi(t){const e=t.getState(),o=i(e,l("bdi"));return!!o&&(t.dispatch(o),!0)}}function x(t,e){const i=e.attrs?.dir;"ltr"!==i&&"rtl"!==i&&"auto"!==i||t.setAttribute("dir",i)}export{k as DIRECTION_ICONS,p as TEXT_DIRECTION_LOCALE_EN,L as TextDirectionAdvancedPlugin,u as detectTextDirection,m as findSiblingDirection,g as getBlockDir,f as loadTextDirectionLocale};
|
|
2
|
+
//# sourceMappingURL=text-direction-advanced.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text-direction-advanced.mjs","sources":["../../src/plugins/text-direction/TextDirectionMiddleware.ts","../../src/plugins/text-direction/TextDirectionPlugin.ts"],"sourcesContent":["/**\n * Middleware registrations for the TextDirectionPlugin.\n * Separated from the main plugin file for maintainability.\n */\n\nimport type { BlockNode } from '../../model/Document.js';\nimport { blockOffsetToTextOffset, getBlockText } from '../../model/Document.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { Step } from '../../state/Transaction.js';\nimport type { PluginContext } from '../Plugin.js';\nimport { detectTextDirection, findSiblingDirection, getBlockDir } from './DirectionDetection.js';\nimport type { TextDirection } from './TextDirectionPlugin.js';\n\n/**\n * Preserves the `dir` attribute when other plugins change the block\n * type (e.g. paragraph -> heading) via `setBlockType`, which replaces attrs.\n */\nexport function registerPreserveDirMiddleware(\n\tcontext: PluginContext,\n\tdirectableTypes: ReadonlySet<string>,\n): void {\n\tcontext.registerMiddleware(\n\t\t(tr, _state, next) => {\n\t\t\tlet patched = false;\n\n\t\t\tconst patchedSteps = tr.steps.map((step) => {\n\t\t\t\tif (step.type !== 'setBlockType') return step;\n\t\t\t\tif (!directableTypes.has(step.nodeType)) return step;\n\n\t\t\t\tconst prevDir = step.previousAttrs?.dir;\n\t\t\t\tif (!prevDir || prevDir === 'auto') return step;\n\n\t\t\t\tpatched = true;\n\t\t\t\treturn {\n\t\t\t\t\t...step,\n\t\t\t\t\tattrs: { ...step.attrs, dir: prevDir },\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tnext(patched ? { ...tr, steps: patchedSteps } : tr);\n\t\t},\n\t\t{ name: 'text-direction:preserve-dir' },\n\t);\n}\n\n/**\n * Auto-detects text direction on `insertText` and `deleteText` steps\n * for blocks with `dir=\"auto\"` (or blocks whose content changes direction).\n * Uses the first strong directional character to determine LTR vs RTL.\n */\nexport function registerAutoDetectMiddleware(\n\tcontext: PluginContext,\n\tdirectableTypes: ReadonlySet<string>,\n): void {\n\tcontext.registerMiddleware(\n\t\t(tr, state, next) => {\n\t\t\tconst extraSteps: Step[] = [];\n\n\t\t\tfor (const step of tr.steps) {\n\t\t\t\tif (step.type === 'insertText') {\n\t\t\t\t\thandleInsertText(step, state, directableTypes, extraSteps);\n\t\t\t\t} else if (step.type === 'deleteText') {\n\t\t\t\t\thandleDeleteText(step, state, directableTypes, extraSteps);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (extraSteps.length > 0) {\n\t\t\t\tnext({ ...tr, steps: [...tr.steps, ...extraSteps] });\n\t\t\t} else {\n\t\t\t\tnext(tr);\n\t\t\t}\n\t\t},\n\t\t{ name: 'text-direction:auto-detect' },\n\t);\n}\n\n/** Builds a `setNodeAttr` step to change the `dir` attribute of a block. */\nfunction buildDirChangeStep(\n\tstate: EditorState,\n\tblock: BlockNode,\n\tdir: TextDirection | 'auto',\n): Step | undefined {\n\tconst path = state.getNodePath(block.id);\n\tif (!path) return undefined;\n\n\treturn {\n\t\ttype: 'setNodeAttr',\n\t\tpath,\n\t\tattrs: { ...block.attrs, dir },\n\t\tpreviousAttrs: block.attrs as Record<string, string | number | boolean>,\n\t};\n}\n\n/** Handles direction detection after text insertion. */\nfunction handleInsertText(\n\tstep: Extract<Step, { type: 'insertText' }>,\n\tstate: EditorState,\n\tdirectableTypes: ReadonlySet<string>,\n\textraSteps: Step[],\n): void {\n\tconst block = state.getBlock(step.blockId);\n\tif (!block || !directableTypes.has(block.type)) return;\n\n\tconst existingText: string = getBlockText(block);\n\tif (getBlockDir(block) !== 'auto' && existingText.length > 0) return;\n\n\tconst textOffset: number = blockOffsetToTextOffset(block, step.offset);\n\tconst textAfter: string =\n\t\texistingText.slice(0, textOffset) + step.text + existingText.slice(textOffset);\n\n\tconst detected: TextDirection | null = detectTextDirection(textAfter);\n\tif (!detected) return;\n\n\tconst dirStep: Step | undefined = buildDirChangeStep(state, block, detected);\n\tif (dirStep) extraSteps.push(dirStep);\n}\n\n/** Handles direction re-detection after text deletion. */\nfunction handleDeleteText(\n\tstep: Extract<Step, { type: 'deleteText' }>,\n\tstate: EditorState,\n\tdirectableTypes: ReadonlySet<string>,\n\textraSteps: Step[],\n): void {\n\tconst block = state.getBlock(step.blockId);\n\tif (!block || !directableTypes.has(block.type)) return;\n\n\tconst currentDir: TextDirection = getBlockDir(block);\n\tif (currentDir === 'auto') return;\n\n\tconst existingText: string = getBlockText(block);\n\tconst fromText: number = blockOffsetToTextOffset(block, step.from);\n\tconst toText: number = blockOffsetToTextOffset(block, step.to);\n\tconst textAfter: string = existingText.slice(0, fromText) + existingText.slice(toText);\n\n\tif (textAfter.length === 0) {\n\t\tconst dirStep: Step | undefined = buildDirChangeStep(state, block, 'auto');\n\t\tif (dirStep) extraSteps.push(dirStep);\n\t\treturn;\n\t}\n\n\tconst detected: TextDirection | null = detectTextDirection(textAfter);\n\tif (!detected || detected === currentDir) return;\n\n\tconst dirStep: Step | undefined = buildDirChangeStep(state, block, detected);\n\tif (dirStep) extraSteps.push(dirStep);\n}\n\n/**\n * Inherits `dir` from the nearest sibling when inserting a new block\n * (e.g. via GapCursor or NodeSelection).\n */\nexport function registerInheritDirMiddleware(\n\tcontext: PluginContext,\n\tdirectableTypes: ReadonlySet<string>,\n): void {\n\tcontext.registerMiddleware(\n\t\t(tr, state, next) => {\n\t\t\tlet patched = false;\n\n\t\t\tconst patchedSteps = tr.steps.map((step) => {\n\t\t\t\tif (step.type !== 'insertNode') return step;\n\t\t\t\tif (!directableTypes.has(step.node.type)) return step;\n\n\t\t\t\tconst newDir: string = String(step.node.attrs?.dir ?? 'auto');\n\t\t\t\tif (newDir !== 'auto') return step;\n\n\t\t\t\t// Detect direction from inserted node's text content\n\t\t\t\tconst nodeText: string = getBlockText(step.node);\n\t\t\t\tif (nodeText.length > 0) {\n\t\t\t\t\tconst detected: TextDirection | null = detectTextDirection(nodeText);\n\t\t\t\t\tif (detected) {\n\t\t\t\t\t\tpatched = true;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...step,\n\t\t\t\t\t\t\tnode: {\n\t\t\t\t\t\t\t\t...step.node,\n\t\t\t\t\t\t\t\tattrs: { ...step.node.attrs, dir: detected },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fall back to sibling direction for empty blocks\n\t\t\t\tconst siblingDir: string | undefined = findSiblingDirection(\n\t\t\t\t\tstate,\n\t\t\t\t\tstep.parentPath,\n\t\t\t\t\tstep.index,\n\t\t\t\t);\n\t\t\t\tif (!siblingDir || siblingDir === 'auto') return step;\n\n\t\t\t\tpatched = true;\n\t\t\t\treturn {\n\t\t\t\t\t...step,\n\t\t\t\t\tnode: {\n\t\t\t\t\t\t...step.node,\n\t\t\t\t\t\tattrs: { ...step.node.attrs, dir: siblingDir },\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tnext(patched ? { ...tr, steps: patchedSteps } : tr);\n\t\t},\n\t\t{ name: 'text-direction:inherit-dir' },\n\t);\n}\n","/**\n * TextDirectionPlugin: adds block-level text direction (`dir` attribute)\n * and inline bidi isolation (`<bdi>` mark) for RTL language support.\n *\n * Block-level: patches NodeSpecs for directable types to render the HTML\n * `dir` attribute. Provides `setDirectionLTR`, `setDirectionRTL`, and\n * `setDirectionAuto` commands with a toolbar dropdown.\n *\n * Inline: registers a `bdi` mark for bidi isolation of inline spans,\n * with `toggleBidiLTR`, `toggleBidiRTL`, `toggleBidiAuto`, and\n * `removeBidi` commands.\n */\n\nimport {\n\tapplyAttributedMark,\n\tisAttributedMarkActive,\n\tremoveAttributedMark,\n} from '../../commands/AttributedMarkCommands.js';\nimport { LocaleServiceKey } from '../../i18n/LocaleService.js';\nimport type { BlockNode } from '../../model/Document.js';\nimport { escapeHTML } from '../../model/HTMLUtils.js';\nimport { isCollapsed, isNodeSelection, isTextSelection } from '../../model/Selection.js';\nimport type { BlockId } from '../../model/TypeBrands.js';\nimport { markType } from '../../model/TypeBrands.js';\nimport { isMac } from '../../platform/Platform.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\nimport { getSelectedBlock } from '../shared/PluginHelpers.js';\nimport { formatShortcut } from '../shared/ShortcutFormatting.js';\nimport { getBlockDir } from './DirectionDetection.js';\nimport { ShiftDirectionHandler } from './ShiftDirectionHandler.js';\nimport {\n\tTEXT_DIRECTION_LOCALE_EN,\n\ttype TextDirectionLocale,\n\tloadTextDirectionLocale,\n} from './TextDirectionLocale.js';\nimport {\n\tregisterAutoDetectMiddleware,\n\tregisterInheritDirMiddleware,\n\tregisterPreserveDirMiddleware,\n} from './TextDirectionMiddleware.js';\n\n// --- Attribute Registry Augmentation ---\n\ndeclare module '../../model/AttrRegistry.js' {\n\tinterface MarkAttrRegistry {\n\t\tbdi: { dir: 'ltr' | 'rtl' | 'auto' };\n\t}\n}\n\n// --- Public Types ---\n\nexport type TextDirection = 'ltr' | 'rtl' | 'auto';\n\nexport interface TextDirectionConfig {\n\t/** Block types that support direction. */\n\treadonly directableTypes: readonly string[];\n\treadonly locale?: TextDirectionLocale;\n}\n\n// --- Constants ---\n\nconst DEFAULT_CONFIG: TextDirectionConfig = {\n\tdirectableTypes: [\n\t\t'paragraph',\n\t\t'heading',\n\t\t'title',\n\t\t'subtitle',\n\t\t'table_cell',\n\t\t'blockquote',\n\t\t'list_item',\n\t],\n};\n\nexport const DIRECTION_ICONS: Readonly<Record<TextDirection, string>> = {\n\tltr: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm12 8l-4-4v3H5v2h12v3l4-4z\"/></svg>',\n\trtl: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M10 10v5h2V4h2v11h2V4h2V2h-8C7.79 2 6 3.79 6 6s1.79 4 4 4zM8 14l-4 4 4 4v-3h12v-2H8v-3z\"/></svg>',\n\tauto: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm3 8l-4-4v3H3v2h5v3l4-4zm7 0v-3l4 4-4 4v-3h-5v-2h5z\"/></svg>',\n};\n\nconst ALL_DIRECTIONS: readonly TextDirection[] = ['ltr', 'rtl', 'auto'];\n\nconst INLINE_BDI_ICON: string =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M10 4v7h2V4h2v7h2V4h1V2H10a3 3 0 1 0 0 6zm-3.5 9.5L3 17l3.5 3.5V18h3v-2h-3v-2.5zm14 0L17 17l3.5 3.5V18h-3v-2h3v-2.5zM11 16h2v6h-2z\"/></svg>';\n\n// --- Plugin ---\n\nexport class TextDirectionPlugin implements Plugin {\n\treadonly id = 'text-direction';\n\treadonly name = 'Text Direction';\n\treadonly priority = 91;\n\n\tprivate readonly config: TextDirectionConfig;\n\tprivate locale!: TextDirectionLocale;\n\tprivate directableTypes!: ReadonlySet<string>;\n\tprivate shiftDirHandler: ShiftDirectionHandler | null = null;\n\n\tconstructor(config?: Partial<TextDirectionConfig>) {\n\t\tthis.config = { ...DEFAULT_CONFIG, ...config };\n\t}\n\n\tasync init(context: PluginContext): Promise<void> {\n\t\tif (this.config.locale) {\n\t\t\tthis.locale = this.config.locale;\n\t\t} else {\n\t\t\tconst service = context.getService(LocaleServiceKey);\n\t\t\tconst lang: string = service?.getLocale() ?? 'en';\n\t\t\tthis.locale = lang === 'en' ? TEXT_DIRECTION_LOCALE_EN : await loadTextDirectionLocale(lang);\n\t\t}\n\n\t\tthis.directableTypes = new Set(this.config.directableTypes);\n\t\tthis.patchNodeSpecs(context);\n\t\tthis.registerBdiMark(context);\n\t\tthis.registerCommands(context);\n\t\tthis.registerKeymaps(context);\n\t\tthis.registerToolbarItem(context);\n\t\tthis.registerInlineToolbarItem(context);\n\t\tregisterPreserveDirMiddleware(context, this.directableTypes);\n\t\tregisterAutoDetectMiddleware(context, this.directableTypes);\n\t\tregisterInheritDirMiddleware(context, this.directableTypes);\n\n\t\t// Ctrl+Shift direction shortcuts (Windows/Linux convention)\n\t\tif (!isMac()) {\n\t\t\tthis.shiftDirHandler = new ShiftDirectionHandler(context);\n\t\t\tthis.shiftDirHandler.attach(context.getContainer());\n\t\t}\n\t}\n\n\tdestroy(): void {\n\t\tthis.shiftDirHandler?.detach();\n\t\tthis.shiftDirHandler = null;\n\t}\n\n\t// --- NodeSpec Patching ---\n\n\t/**\n\t * Patches existing NodeSpecs for directable block types to support the\n\t * `dir` attribute and render it as an HTML attribute. Skips types\n\t * that already define a `dir` attribute in their spec.\n\t */\n\tprivate patchNodeSpecs(context: PluginContext): void {\n\t\tconst registry = context.getSchemaRegistry();\n\n\t\tfor (const type of this.config.directableTypes) {\n\t\t\tconst spec = registry.getNodeSpec(type);\n\t\t\tif (!spec) continue;\n\n\t\t\tif (spec.attrs?.dir) continue;\n\n\t\t\tconst originalToDOM = spec.toDOM;\n\n\t\t\tregistry.removeNodeSpec(type);\n\t\t\tregistry.registerNodeSpec({\n\t\t\t\t...spec,\n\t\t\t\tattrs: {\n\t\t\t\t\t...spec.attrs,\n\t\t\t\t\tdir: { default: 'auto' },\n\t\t\t\t},\n\t\t\t\ttoDOM(node) {\n\t\t\t\t\tconst el = originalToDOM.call(spec, node);\n\t\t\t\t\tapplyDirection(el, node);\n\t\t\t\t\treturn el;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\t// --- Inline <bdi> Mark ---\n\n\tprivate registerBdiMark(context: PluginContext): void {\n\t\tcontext.registerMarkSpec({\n\t\t\ttype: 'bdi',\n\t\t\trank: 10,\n\t\t\tattrs: {\n\t\t\t\tdir: { default: 'auto' },\n\t\t\t},\n\t\t\ttoDOM(mark) {\n\t\t\t\tconst el: HTMLElement = document.createElement('bdi');\n\t\t\t\tconst dir: string = String(mark.attrs?.dir ?? 'auto');\n\t\t\t\tel.setAttribute('dir', dir);\n\t\t\t\treturn el;\n\t\t\t},\n\t\t\ttoHTMLString: (mark, content) => {\n\t\t\t\tconst dir: string = escapeHTML(String(mark.attrs?.dir ?? 'auto'));\n\t\t\t\treturn `<bdi dir=\"${dir}\">${content}</bdi>`;\n\t\t\t},\n\t\t\tparseHTML: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'bdi',\n\t\t\t\t\tgetAttrs: (el) => {\n\t\t\t\t\t\tconst dir: string | null = el.getAttribute('dir');\n\t\t\t\t\t\tif (dir === 'ltr' || dir === 'rtl') return { dir };\n\t\t\t\t\t\treturn { dir: 'auto' };\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tsanitize: { tags: ['bdi'], attrs: ['dir'] },\n\t\t});\n\t}\n\n\t// --- Commands ---\n\n\tprivate registerCommands(context: PluginContext): void {\n\t\tcontext.registerCommand('setDirectionLTR', () => {\n\t\t\tconst result: boolean = this.setDirection(context, 'ltr');\n\t\t\tif (result) context.announce(this.locale.announceLTR);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('setDirectionRTL', () => {\n\t\t\tconst result: boolean = this.setDirection(context, 'rtl');\n\t\t\tif (result) context.announce(this.locale.announceRTL);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('setDirectionAuto', () => {\n\t\t\tconst result: boolean = this.setDirection(context, 'auto');\n\t\t\tif (result) context.announce(this.locale.announceAuto);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('toggleBidiLTR', () => {\n\t\t\tconst result: boolean = this.applyBdi(context, 'ltr');\n\t\t\tif (result) context.announce(this.locale.inlineLTR);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('toggleBidiRTL', () => {\n\t\t\tconst result: boolean = this.applyBdi(context, 'rtl');\n\t\t\tif (result) context.announce(this.locale.inlineRTL);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('toggleBidiAuto', () => {\n\t\t\tconst result: boolean = this.applyBdi(context, 'auto');\n\t\t\tif (result) context.announce(this.locale.inlineAuto);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('removeBidi', () => {\n\t\t\tconst result: boolean = this.removeBdi(context);\n\t\t\tif (result) context.announce(this.locale.announceRemoveBidi);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('toggleBidiIsolation', () => {\n\t\t\treturn this.toggleBidiIsolation(context);\n\t\t});\n\n\t\tcontext.registerCommand('toggleDirection', () => {\n\t\t\tconst state = context.getState();\n\t\t\tconst block = getSelectedBlock(state);\n\t\t\tif (!block || !this.directableTypes.has(block.type)) return false;\n\n\t\t\tconst current: TextDirection = getBlockDir(block);\n\t\t\tconst next: TextDirection = current === 'auto' ? 'rtl' : current === 'rtl' ? 'ltr' : 'auto';\n\t\t\treturn this.setDirection(context, next);\n\t\t});\n\t}\n\n\t// --- Keymaps ---\n\n\tprivate registerKeymaps(context: PluginContext): void {\n\t\tcontext.registerKeymap({\n\t\t\t'Mod-Shift-D': () => context.executeCommand('toggleDirection'),\n\t\t\t'Mod-Shift-B': () => context.executeCommand('toggleBidiIsolation'),\n\t\t});\n\t}\n\n\t// --- Toolbar ---\n\n\tprivate registerToolbarItem(context: PluginContext): void {\n\t\tconst commandNames: Readonly<Record<TextDirection, string>> = {\n\t\t\tltr: 'setDirectionLTR',\n\t\t\trtl: 'setDirectionRTL',\n\t\t\tauto: 'setDirectionAuto',\n\t\t};\n\n\t\tconst dropdownItems = ALL_DIRECTIONS.map((dir) => ({\n\t\t\tlabel: this.getDirectionLabel(dir),\n\t\t\tcommand: commandNames[dir],\n\t\t\ticon: DIRECTION_ICONS[dir],\n\t\t}));\n\n\t\tcontext.registerToolbarItem({\n\t\t\tid: 'text-direction',\n\t\t\tgroup: 'block',\n\t\t\ticon: DIRECTION_ICONS.auto,\n\t\t\tlabel: this.locale.toolbarLabel,\n\t\t\ttooltip: `${this.locale.toolbarTooltip} (${formatShortcut('Mod-Shift-D')})`,\n\t\t\tcommand: 'setDirectionAuto',\n\t\t\tpopupType: 'dropdown',\n\t\t\tpopupConfig: { items: dropdownItems },\n\t\t\tisActive: (state) => this.isNonDefaultDirection(state),\n\t\t\tisEnabled: (state) => this.isDirectable(state),\n\t\t\tgetIcon: (state) => {\n\t\t\t\tconst block = getSelectedBlock(state);\n\t\t\t\tif (!block) return DIRECTION_ICONS.auto;\n\t\t\t\tconst dir: TextDirection = getBlockDir(block);\n\t\t\t\treturn DIRECTION_ICONS[dir] ?? DIRECTION_ICONS.auto;\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate registerInlineToolbarItem(context: PluginContext): void {\n\t\tconst inlineItems = [\n\t\t\t{ label: this.locale.inlineLTR, command: 'toggleBidiLTR', icon: DIRECTION_ICONS.ltr },\n\t\t\t{ label: this.locale.inlineRTL, command: 'toggleBidiRTL', icon: DIRECTION_ICONS.rtl },\n\t\t\t{ label: this.locale.inlineAuto, command: 'toggleBidiAuto', icon: DIRECTION_ICONS.auto },\n\t\t\t{ label: this.locale.announceRemoveBidi, command: 'removeBidi' },\n\t\t];\n\n\t\tcontext.registerToolbarItem({\n\t\t\tid: 'inline-direction',\n\t\t\tgroup: 'format',\n\t\t\ticon: INLINE_BDI_ICON,\n\t\t\tlabel: this.locale.inlineLabel,\n\t\t\ttooltip: `${this.locale.inlineTooltip} (${formatShortcut('Mod-Shift-B')})`,\n\t\t\tcommand: 'toggleBidiIsolation',\n\t\t\tpopupType: 'dropdown',\n\t\t\tpopupConfig: { items: inlineItems },\n\t\t\tisActive: (state) => isAttributedMarkActive(state, 'bdi'),\n\t\t\tisEnabled: (state) => {\n\t\t\t\tconst sel = state.selection;\n\t\t\t\treturn isTextSelection(sel) && !isCollapsed(sel);\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate getDirectionLabel(dir: TextDirection): string {\n\t\tif (dir === 'ltr') return this.locale.ltr;\n\t\tif (dir === 'rtl') return this.locale.rtl;\n\t\treturn this.locale.auto;\n\t}\n\n\t// --- Direction Logic ---\n\n\tprivate setDirection(context: PluginContext, direction: TextDirection): boolean {\n\t\tconst state = context.getState();\n\t\tconst blockIds: BlockId[] = this.getSelectedBlockIds(state);\n\t\tif (blockIds.length === 0) return false;\n\n\t\tconst tb = state.transaction('command');\n\t\tlet changed = false;\n\n\t\tfor (const id of blockIds) {\n\t\t\tconst block = state.getBlock(id);\n\t\t\tif (!block || !this.directableTypes.has(block.type)) continue;\n\n\t\t\tconst path = state.getNodePath(id);\n\t\t\tif (!path) continue;\n\n\t\t\ttb.setNodeAttr(path, { ...block.attrs, dir: direction });\n\t\t\tchanged = true;\n\t\t}\n\n\t\tif (!changed) return false;\n\n\t\tconst tr = tb.setSelection(state.selection).build();\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n\n\t/**\n\t * Returns all block IDs covered by the current selection.\n\t * Only handles TextSelection and NodeSelection — other selection types\n\t * (e.g. GapCursorSelection) return an empty array intentionally, since\n\t * gap cursors sit between blocks and have no associated block content.\n\t */\n\tprivate getSelectedBlockIds(state: EditorState): BlockId[] {\n\t\tconst sel = state.selection;\n\n\t\tif (isNodeSelection(sel)) {\n\t\t\treturn [sel.nodeId];\n\t\t}\n\n\t\tif (!isTextSelection(sel)) return [];\n\n\t\tconst anchorId: BlockId = sel.anchor.blockId;\n\t\tconst headId: BlockId = sel.head.blockId;\n\n\t\tif (anchorId === headId) return [anchorId];\n\n\t\tconst order: readonly BlockId[] = state.getBlockOrder();\n\t\tconst anchorIdx: number = order.indexOf(anchorId);\n\t\tconst headIdx: number = order.indexOf(headId);\n\t\tif (anchorIdx === -1 || headIdx === -1) return [];\n\n\t\tconst from: number = Math.min(anchorIdx, headIdx);\n\t\tconst to: number = Math.max(anchorIdx, headIdx);\n\t\treturn order.slice(from, to + 1) as BlockId[];\n\t}\n\n\tprivate isNonDefaultDirection(state: EditorState): boolean {\n\t\tconst block = getSelectedBlock(state);\n\t\tif (!block || !this.directableTypes.has(block.type)) return false;\n\t\tconst dir = block.attrs?.dir;\n\t\treturn dir != null && dir !== 'auto';\n\t}\n\n\tprivate isDirectable(state: EditorState): boolean {\n\t\tconst block = getSelectedBlock(state);\n\t\treturn block != null && this.directableTypes.has(block.type);\n\t}\n\n\t// --- Inline bdi mark operations ---\n\n\t/**\n\t * Cycles inline bidi isolation: no-bdi → bdi (opposite of block dir) →\n\t * remove. Applies the opposite direction of the current block for the\n\t * common case (e.g., LTR word in an RTL block gets bdi-ltr).\n\t */\n\tprivate toggleBidiIsolation(context: PluginContext): boolean {\n\t\tconst state = context.getState();\n\t\tif (isAttributedMarkActive(state, 'bdi')) {\n\t\t\tconst result: boolean = this.removeBdi(context);\n\t\t\tif (result) context.announce(this.locale.announceRemoveBidi);\n\t\t\treturn result;\n\t\t}\n\t\tconst block = getSelectedBlock(state);\n\t\tconst blockDir: TextDirection = block ? getBlockDir(block) : 'auto';\n\t\tconst bdiDir: TextDirection = blockDir === 'rtl' ? 'ltr' : 'rtl';\n\t\tconst result: boolean = this.applyBdi(context, bdiDir);\n\t\tif (result) {\n\t\t\tconst announcement: string = bdiDir === 'ltr' ? this.locale.inlineLTR : this.locale.inlineRTL;\n\t\t\tcontext.announce(announcement);\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate applyBdi(context: PluginContext, dir: TextDirection): boolean {\n\t\tconst state = context.getState();\n\t\tconst mark = { type: markType('bdi'), attrs: { dir } };\n\t\tconst tr = applyAttributedMark(state, mark);\n\t\tif (!tr) return false;\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n\n\tprivate removeBdi(context: PluginContext): boolean {\n\t\tconst state = context.getState();\n\t\tconst tr = removeAttributedMark(state, markType('bdi'));\n\t\tif (!tr) return false;\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n}\n\n// --- Helpers ---\n\nfunction applyDirection(el: HTMLElement, node: BlockNode): void {\n\tconst dir = node.attrs?.dir;\n\tif (dir === 'ltr' || dir === 'rtl' || dir === 'auto') {\n\t\tel.setAttribute('dir', dir);\n\t}\n}\n"],"names":["buildDirChangeStep","state","block","dir","path","getNodePath","id","type","attrs","previousAttrs","handleInsertText","step","directableTypes","extraSteps","getBlock","blockId","has","existingText","getBlockText","getBlockDir","length","textOffset","blockOffsetToTextOffset","offset","textAfter","slice","text","detected","detectTextDirection","dirStep","push","handleDeleteText","currentDir","fromText","from","toText","to","DEFAULT_CONFIG","DIRECTION_ICONS","ltr","rtl","auto","ALL_DIRECTIONS","TextDirectionPlugin","name","priority","config","locale","shiftDirHandler","constructor","this","init","context","service","getService","LocaleServiceKey","lang","getLocale","TEXT_DIRECTION_LOCALE_EN","loadTextDirectionLocale","Set","patchNodeSpecs","registerBdiMark","registerCommands","registerKeymaps","registerToolbarItem","registerInlineToolbarItem","registerMiddleware","tr","_state","next","patched","patchedSteps","steps","map","nodeType","prevDir","registerPreserveDirMiddleware","registerAutoDetectMiddleware","node","String","nodeText","siblingDir","findSiblingDirection","parentPath","index","registerInheritDirMiddleware","isMac","ShiftDirectionHandler","attach","getContainer","destroy","detach","registry","getSchemaRegistry","spec","getNodeSpec","originalToDOM","toDOM","removeNodeSpec","registerNodeSpec","default","el","call","applyDirection","registerMarkSpec","rank","mark","document","createElement","setAttribute","toHTMLString","content","escapeHTML","parseHTML","tag","getAttrs","getAttribute","sanitize","tags","registerCommand","result","setDirection","announce","announceLTR","announceRTL","announceAuto","applyBdi","inlineLTR","inlineRTL","inlineAuto","removeBdi","announceRemoveBidi","toggleBidiIsolation","getState","getSelectedBlock","current","registerKeymap","executeCommand","commandNames","dropdownItems","label","getDirectionLabel","command","icon","group","toolbarLabel","tooltip","toolbarTooltip","formatShortcut","popupType","popupConfig","items","isActive","isNonDefaultDirection","isEnabled","isDirectable","getIcon","inlineItems","inlineLabel","inlineTooltip","isAttributedMarkActive","sel","selection","isTextSelection","isCollapsed","direction","blockIds","getSelectedBlockIds","tb","transaction","changed","setNodeAttr","setSelection","build","dispatch","isNodeSelection","nodeId","anchorId","anchor","headId","head","order","getBlockOrder","anchorIdx","indexOf","headIdx","Math","min","max","bdiDir","announcement","markType","applyAttributedMark","removeAttributedMark"],"mappings":"0nBA6EA,SAASA,EACRC,EACAC,EACAC,GAEA,MAAMC,EAAOH,EAAMI,YAAYH,EAAMI,IACrC,GAAKF,EAEL,MAAO,CACNG,KAAM,cACNH,OACAI,MAAO,IAAKN,EAAMM,MAAOL,OACzBM,cAAeP,EAAMM,MAEvB,CAGA,SAASE,EACRC,EACAV,EACAW,EACAC,GAEA,MAAMX,EAAQD,EAAMa,SAASH,EAAKI,SAClC,IAAKb,IAAUU,EAAgBI,IAAId,EAAMK,MAAO,OAEhD,MAAMU,EAAuBC,EAAahB,GAC1C,GAA2B,SAAvBiB,EAAYjB,IAAqBe,EAAaG,OAAS,EAAG,OAE9D,MAAMC,EAAqBC,EAAwBpB,EAAOS,EAAKY,QACzDC,EACLP,EAAaQ,MAAM,EAAGJ,GAAcV,EAAKe,KAAOT,EAAaQ,MAAMJ,GAE9DM,EAAiCC,EAAoBJ,GAC3D,IAAKG,EAAU,OAEf,MAAME,EAA4B7B,EAAmBC,EAAOC,EAAOyB,GAC/DE,GAAShB,EAAWiB,KAAKD,EAC9B,CAGA,SAASE,EACRpB,EACAV,EACAW,EACAC,GAEA,MAAMX,EAAQD,EAAMa,SAASH,EAAKI,SAClC,IAAKb,IAAUU,EAAgBI,IAAId,EAAMK,MAAO,OAEhD,MAAMyB,EAA4Bb,EAAYjB,GAC9C,GAAmB,SAAf8B,EAAuB,OAE3B,MAAMf,EAAuBC,EAAahB,GACpC+B,EAAmBX,EAAwBpB,EAAOS,EAAKuB,MACvDC,EAAiBb,EAAwBpB,EAAOS,EAAKyB,IACrDZ,EAAoBP,EAAaQ,MAAM,EAAGQ,GAAYhB,EAAaQ,MAAMU,GAE/E,GAAyB,IAArBX,EAAUJ,OAAc,CAC3B,MAAMS,EAA4B7B,EAAmBC,EAAOC,EAAO,QAEnE,YADI2B,GAAShB,EAAWiB,KAAKD,GAE9B,CAEA,MAAMF,EAAiCC,EAAoBJ,GAC3D,IAAKG,GAAYA,IAAaK,EAAY,OAE1C,MAAMH,EAA4B7B,EAAmBC,EAAOC,EAAOyB,GAC/DE,GAAShB,EAAWiB,KAAKD,EAC9B,CCpFA,MAAMQ,EAAsC,CAC3CzB,gBAAiB,CAChB,YACA,UACA,QACA,WACA,aACA,aACA,cAIW0B,EAA2D,CACvEC,IAAK,mKACLC,IAAK,wKACLC,KAAM,6LAGDC,EAA2C,CAAC,MAAO,MAAO,QAOzD,MAAMC,EACHrC,GAAK,iBACLsC,KAAO,iBACPC,SAAW,GAEHC,OACTC,OACAnC,gBACAoC,gBAAgD,KAExD,WAAAC,CAAYH,GACXI,KAAKJ,OAAS,IAAKT,KAAmBS,EACvC,CAEA,UAAMK,CAAKC,GACV,GAAIF,KAAKJ,OAAOC,OACfG,KAAKH,OAASG,KAAKJ,OAAOC,WACpB,CACN,MAAMM,EAAUD,EAAQE,WAAWC,GAC7BC,EAAeH,GAASI,aAAe,KAC7CP,KAAKH,OAAkB,OAATS,EAAgBE,QAAiCC,EAAwBH,EACxF,CAEAN,KAAKtC,gBAAkB,IAAIgD,IAAIV,KAAKJ,OAAOlC,iBAC3CsC,KAAKW,eAAeT,GACpBF,KAAKY,gBAAgBV,GACrBF,KAAKa,iBAAiBX,GACtBF,KAAKc,gBAAgBZ,GACrBF,KAAKe,oBAAoBb,GACzBF,KAAKgB,0BAA0Bd,GDnG1B,SACNA,EACAxC,GAEAwC,EAAQe,mBACP,CAACC,EAAIC,EAAQC,KACZ,IAAIC,GAAU,EAEd,MAAMC,EAAeJ,EAAGK,MAAMC,IAAK/D,IAClC,GAAkB,iBAAdA,EAAKJ,KAAyB,OAAOI,EACzC,IAAKC,EAAgBI,IAAIL,EAAKgE,UAAW,OAAOhE,EAEhD,MAAMiE,EAAUjE,EAAKF,eAAeN,IACpC,OAAKyE,GAAuB,SAAZA,GAEhBL,GAAU,EACH,IACH5D,EACHH,MAAO,IAAKG,EAAKH,MAAOL,IAAKyE,KALajE,IAS5C2D,EAAKC,EAAU,IAAKH,EAAIK,MAAOD,GAAiBJ,IAEjD,CAAExB,KAAM,+BAEV,CC0EEiC,CAA8BzB,EAASF,KAAKtC,iBDnEvC,SACNwC,EACAxC,GAEAwC,EAAQe,mBACP,CAACC,EAAInE,EAAOqE,KACX,MAAMzD,EAAqB,GAE3B,IAAA,MAAWF,KAAQyD,EAAGK,MACH,eAAd9D,EAAKJ,KACRG,EAAiBC,EAAMV,EAAOW,EAAiBC,GACvB,eAAdF,EAAKJ,MACfwB,EAAiBpB,EAAMV,EAAOW,EAAiBC,GAKhDyD,EADGzD,EAAWO,OAAS,EAClB,IAAKgD,EAAIK,MAAO,IAAIL,EAAGK,SAAU5D,IAEjCuD,IAGP,CAAExB,KAAM,8BAEV,CC4CEkC,CAA6B1B,EAASF,KAAKtC,iBDkCtC,SACNwC,EACAxC,GAEAwC,EAAQe,mBACP,CAACC,EAAInE,EAAOqE,KACX,IAAIC,GAAU,EAEd,MAAMC,EAAeJ,EAAGK,MAAMC,IAAK/D,IAClC,GAAkB,eAAdA,EAAKJ,KAAuB,OAAOI,EACvC,IAAKC,EAAgBI,IAAIL,EAAKoE,KAAKxE,MAAO,OAAOI,EAGjD,GAAe,SADQqE,OAAOrE,EAAKoE,KAAKvE,OAAOL,KAAO,QAC/B,OAAOQ,EAG9B,MAAMsE,EAAmB/D,EAAaP,EAAKoE,MAC3C,GAAIE,EAAS7D,OAAS,EAAG,CACxB,MAAMO,EAAiCC,EAAoBqD,GAC3D,GAAItD,EAEH,OADA4C,GAAU,EACH,IACH5D,EACHoE,KAAM,IACFpE,EAAKoE,KACRvE,MAAO,IAAKG,EAAKoE,KAAKvE,MAAOL,IAAKwB,IAItC,CAGA,MAAMuD,EAAiCC,EACtClF,EACAU,EAAKyE,WACLzE,EAAK0E,OAEN,OAAKH,GAA6B,SAAfA,GAEnBX,GAAU,EACH,IACH5D,EACHoE,KAAM,IACFpE,EAAKoE,KACRvE,MAAO,IAAKG,EAAKoE,KAAKvE,MAAOL,IAAK+E,MAPavE,IAYlD2D,EAAKC,EAAU,IAAKH,EAAIK,MAAOD,GAAiBJ,IAEjD,CAAExB,KAAM,8BAEV,CCtFE0C,CAA6BlC,EAASF,KAAKtC,iBAGtC2E,MACJrC,KAAKF,gBAAkB,IAAIwC,EAAsBpC,GACjDF,KAAKF,gBAAgByC,OAAOrC,EAAQsC,gBAEtC,CAEA,OAAAC,GACCzC,KAAKF,iBAAiB4C,SACtB1C,KAAKF,gBAAkB,IACxB,CASQ,cAAAa,CAAeT,GACtB,MAAMyC,EAAWzC,EAAQ0C,oBAEzB,IAAA,MAAWvF,KAAQ2C,KAAKJ,OAAOlC,gBAAiB,CAC/C,MAAMmF,EAAOF,EAASG,YAAYzF,GAClC,IAAKwF,EAAM,SAEX,GAAIA,EAAKvF,OAAOL,IAAK,SAErB,MAAM8F,EAAgBF,EAAKG,MAE3BL,EAASM,eAAe5F,GACxBsF,EAASO,iBAAiB,IACtBL,EACHvF,MAAO,IACHuF,EAAKvF,MACRL,IAAK,CAAEkG,QAAS,SAEjB,KAAAH,CAAMnB,GACL,MAAMuB,EAAKL,EAAcM,KAAKR,EAAMhB,GAEpC,OADAyB,EAAeF,EAAIvB,GACZuB,CACR,GAEF,CACD,CAIQ,eAAAxC,CAAgBV,GACvBA,EAAQqD,iBAAiB,CACxBlG,KAAM,MACNmG,KAAM,GACNlG,MAAO,CACNL,IAAK,CAAEkG,QAAS,SAEjB,KAAAH,CAAMS,GACL,MAAML,EAAkBM,SAASC,cAAc,OACzC1G,EAAc6E,OAAO2B,EAAKnG,OAAOL,KAAO,QAE9C,OADAmG,EAAGQ,aAAa,MAAO3G,GAChBmG,CACR,EACAS,aAAc,CAACJ,EAAMK,IAEb,aADaC,EAAWjC,OAAO2B,EAAKnG,OAAOL,KAAO,aAC7B6G,UAE7BE,UAAW,CACV,CACCC,IAAK,MACLC,SAAWd,IACV,MAAMnG,EAAqBmG,EAAGe,aAAa,OAC3C,MAAY,QAARlH,GAAyB,QAARA,EAAsB,CAAEA,OACtC,CAAEA,IAAK,WAIjBmH,SAAU,CAAEC,KAAM,CAAC,OAAQ/G,MAAO,CAAC,SAErC,CAIQ,gBAAAuD,CAAiBX,GACxBA,EAAQoE,gBAAgB,kBAAmB,KAC1C,MAAMC,EAAkBvE,KAAKwE,aAAatE,EAAS,OAEnD,OADIqE,GAAQrE,EAAQuE,SAASzE,KAAKH,OAAO6E,aAClCH,IAGRrE,EAAQoE,gBAAgB,kBAAmB,KAC1C,MAAMC,EAAkBvE,KAAKwE,aAAatE,EAAS,OAEnD,OADIqE,GAAQrE,EAAQuE,SAASzE,KAAKH,OAAO8E,aAClCJ,IAGRrE,EAAQoE,gBAAgB,mBAAoB,KAC3C,MAAMC,EAAkBvE,KAAKwE,aAAatE,EAAS,QAEnD,OADIqE,GAAQrE,EAAQuE,SAASzE,KAAKH,OAAO+E,cAClCL,IAGRrE,EAAQoE,gBAAgB,gBAAiB,KACxC,MAAMC,EAAkBvE,KAAK6E,SAAS3E,EAAS,OAE/C,OADIqE,GAAQrE,EAAQuE,SAASzE,KAAKH,OAAOiF,WAClCP,IAGRrE,EAAQoE,gBAAgB,gBAAiB,KACxC,MAAMC,EAAkBvE,KAAK6E,SAAS3E,EAAS,OAE/C,OADIqE,GAAQrE,EAAQuE,SAASzE,KAAKH,OAAOkF,WAClCR,IAGRrE,EAAQoE,gBAAgB,iBAAkB,KACzC,MAAMC,EAAkBvE,KAAK6E,SAAS3E,EAAS,QAE/C,OADIqE,GAAQrE,EAAQuE,SAASzE,KAAKH,OAAOmF,YAClCT,IAGRrE,EAAQoE,gBAAgB,aAAc,KACrC,MAAMC,EAAkBvE,KAAKiF,UAAU/E,GAEvC,OADIqE,GAAQrE,EAAQuE,SAASzE,KAAKH,OAAOqF,oBAClCX,IAGRrE,EAAQoE,gBAAgB,sBAAuB,IACvCtE,KAAKmF,oBAAoBjF,IAGjCA,EAAQoE,gBAAgB,kBAAmB,KAC1C,MAAMvH,EAAQmD,EAAQkF,WAChBpI,EAAQqI,EAAiBtI,GAC/B,IAAKC,IAAUgD,KAAKtC,gBAAgBI,IAAId,EAAMK,MAAO,OAAO,EAE5D,MAAMiI,EAAyBrH,EAAYjB,GACrCoE,EAAkC,SAAZkE,EAAqB,MAAoB,QAAZA,EAAoB,MAAQ,OACrF,OAAOtF,KAAKwE,aAAatE,EAASkB,IAEpC,CAIQ,eAAAN,CAAgBZ,GACvBA,EAAQqF,eAAe,CACtB,cAAe,IAAMrF,EAAQsF,eAAe,mBAC5C,cAAe,IAAMtF,EAAQsF,eAAe,wBAE9C,CAIQ,mBAAAzE,CAAoBb,GAC3B,MAAMuF,EAAwD,CAC7DpG,IAAK,kBACLC,IAAK,kBACLC,KAAM,oBAGDmG,EAAgBlG,EAAegC,IAAKvE,IAAA,CACzC0I,MAAO3F,KAAK4F,kBAAkB3I,GAC9B4I,QAASJ,EAAaxI,GACtB6I,KAAM1G,EAAgBnC,MAGvBiD,EAAQa,oBAAoB,CAC3B3D,GAAI,iBACJ2I,MAAO,QACPD,KAAM1G,EAAgBG,KACtBoG,MAAO3F,KAAKH,OAAOmG,aACnBC,QAAS,GAAGjG,KAAKH,OAAOqG,mBAAmBC,EAAe,kBAC1DN,QAAS,mBACTO,UAAW,WACXC,YAAa,CAAEC,MAAOZ,GACtBa,SAAWxJ,GAAUiD,KAAKwG,sBAAsBzJ,GAChD0J,UAAY1J,GAAUiD,KAAK0G,aAAa3J,GACxC4J,QAAU5J,IACT,MAAMC,EAAQqI,EAAiBtI,GAC/B,IAAKC,EAAO,OAAOoC,EAAgBG,KACnC,MAAMtC,EAAqBgB,EAAYjB,GACvC,OAAOoC,EAAgBnC,IAAQmC,EAAgBG,OAGlD,CAEQ,yBAAAyB,CAA0Bd,GACjC,MAAM0G,EAAc,CACnB,CAAEjB,MAAO3F,KAAKH,OAAOiF,UAAWe,QAAS,gBAAiBC,KAAM1G,EAAgBC,KAChF,CAAEsG,MAAO3F,KAAKH,OAAOkF,UAAWc,QAAS,gBAAiBC,KAAM1G,EAAgBE,KAChF,CAAEqG,MAAO3F,KAAKH,OAAOmF,WAAYa,QAAS,iBAAkBC,KAAM1G,EAAgBG,MAClF,CAAEoG,MAAO3F,KAAKH,OAAOqF,mBAAoBW,QAAS,eAGnD3F,EAAQa,oBAAoB,CAC3B3D,GAAI,mBACJ2I,MAAO,SACPD,KAxOF,mNAyOEH,MAAO3F,KAAKH,OAAOgH,YACnBZ,QAAS,GAAGjG,KAAKH,OAAOiH,kBAAkBX,EAAe,kBACzDN,QAAS,sBACTO,UAAW,WACXC,YAAa,CAAEC,MAAOM,GACtBL,SAAWxJ,GAAUgK,EAAuBhK,EAAO,OACnD0J,UAAY1J,IACX,MAAMiK,EAAMjK,EAAMkK,UAClB,OAAOC,EAAgBF,KAASG,EAAYH,KAG/C,CAEQ,iBAAApB,CAAkB3I,GACzB,MAAY,QAARA,EAAsB+C,KAAKH,OAAOR,IAC1B,QAARpC,EAAsB+C,KAAKH,OAAOP,IAC/BU,KAAKH,OAAON,IACpB,CAIQ,YAAAiF,CAAatE,EAAwBkH,GAC5C,MAAMrK,EAAQmD,EAAQkF,WAChBiC,EAAsBrH,KAAKsH,oBAAoBvK,GACrD,GAAwB,IAApBsK,EAASnJ,OAAc,OAAO,EAElC,MAAMqJ,EAAKxK,EAAMyK,YAAY,WAC7B,IAAIC,GAAU,EAEd,IAAA,MAAWrK,KAAMiK,EAAU,CAC1B,MAAMrK,EAAQD,EAAMa,SAASR,GAC7B,IAAKJ,IAAUgD,KAAKtC,gBAAgBI,IAAId,EAAMK,MAAO,SAErD,MAAMH,EAAOH,EAAMI,YAAYC,GAC1BF,IAELqK,EAAGG,YAAYxK,EAAM,IAAKF,EAAMM,MAAOL,IAAKmK,IAC5CK,GAAU,EACX,CAEA,IAAKA,EAAS,OAAO,EAErB,MAAMvG,EAAKqG,EAAGI,aAAa5K,EAAMkK,WAAWW,QAE5C,OADA1H,EAAQ2H,SAAS3G,IACV,CACR,CAQQ,mBAAAoG,CAAoBvK,GAC3B,MAAMiK,EAAMjK,EAAMkK,UAElB,GAAIa,EAAgBd,GACnB,MAAO,CAACA,EAAIe,QAGb,IAAKb,EAAgBF,SAAa,GAElC,MAAMgB,EAAoBhB,EAAIiB,OAAOpK,QAC/BqK,EAAkBlB,EAAImB,KAAKtK,QAEjC,GAAImK,IAAaE,EAAQ,MAAO,CAACF,GAEjC,MAAMI,EAA4BrL,EAAMsL,gBAClCC,EAAoBF,EAAMG,QAAQP,GAClCQ,EAAkBJ,EAAMG,QAAQL,GACtC,IAAkB,IAAdI,IAAgC,IAAZE,QAAuB,GAE/C,MAAMxJ,EAAeyJ,KAAKC,IAAIJ,EAAWE,GACnCtJ,EAAauJ,KAAKE,IAAIL,EAAWE,GACvC,OAAOJ,EAAM7J,MAAMS,EAAME,EAAK,EAC/B,CAEQ,qBAAAsH,CAAsBzJ,GAC7B,MAAMC,EAAQqI,EAAiBtI,GAC/B,IAAKC,IAAUgD,KAAKtC,gBAAgBI,IAAId,EAAMK,MAAO,OAAO,EAC5D,MAAMJ,EAAMD,EAAMM,OAAOL,IACzB,OAAc,MAAPA,GAAuB,SAARA,CACvB,CAEQ,YAAAyJ,CAAa3J,GACpB,MAAMC,EAAQqI,EAAiBtI,GAC/B,OAAgB,MAATC,GAAiBgD,KAAKtC,gBAAgBI,IAAId,EAAMK,KACxD,CASQ,mBAAA8H,CAAoBjF,GAC3B,MAAMnD,EAAQmD,EAAQkF,WACtB,GAAI2B,EAAuBhK,EAAO,OAAQ,CACzC,MAAMwH,EAAkBvE,KAAKiF,UAAU/E,GAEvC,OADIqE,GAAQrE,EAAQuE,SAASzE,KAAKH,OAAOqF,oBAClCX,CACR,CACA,MAAMvH,EAAQqI,EAAiBtI,GAEzB6L,EAAqC,SADX5L,EAAQiB,EAAYjB,GAAS,QACV,MAAQ,MACrDuH,EAAkBvE,KAAK6E,SAAS3E,EAAS0I,GAC/C,GAAIrE,EAAQ,CACX,MAAMsE,EAAkC,QAAXD,EAAmB5I,KAAKH,OAAOiF,UAAY9E,KAAKH,OAAOkF,UACpF7E,EAAQuE,SAASoE,EAClB,CACA,OAAOtE,CACR,CAEQ,QAAAM,CAAS3E,EAAwBjD,GACxC,MAAMF,EAAQmD,EAAQkF,WAChB3B,EAAO,CAAEpG,KAAMyL,EAAS,OAAQxL,MAAO,CAAEL,QACzCiE,EAAK6H,EAAoBhM,EAAO0G,GACtC,QAAKvC,IACLhB,EAAQ2H,SAAS3G,IACV,EACR,CAEQ,SAAA+D,CAAU/E,GACjB,MAAMnD,EAAQmD,EAAQkF,WAChBlE,EAAK8H,EAAqBjM,EAAO+L,EAAS,QAChD,QAAK5H,IACLhB,EAAQ2H,SAAS3G,IACV,EACR,EAKD,SAASoC,EAAeF,EAAiBvB,GACxC,MAAM5E,EAAM4E,EAAKvE,OAAOL,IACZ,QAARA,GAAyB,QAARA,GAAyB,SAARA,GACrCmG,EAAGQ,aAAa,MAAO3G,EAEzB"}
|