@notectl/core 2.0.1 → 2.0.3
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/README.md +258 -121
- package/dist/chunks/AlignmentPlugin-CIkPaP2h.mjs +2 -0
- package/dist/chunks/AlignmentPlugin-CIkPaP2h.mjs.map +1 -0
- package/dist/chunks/AttrRegistry-B1iBFcKO.mjs +2 -0
- package/dist/chunks/AttrRegistry-B1iBFcKO.mjs.map +1 -0
- package/dist/chunks/AttributedMarkCommands-Cmet1IuC.mjs +2 -0
- package/dist/chunks/AttributedMarkCommands-Cmet1IuC.mjs.map +1 -0
- package/dist/chunks/BlockInsertion-DTIE2BiH.mjs +2 -0
- package/dist/chunks/BlockInsertion-DTIE2BiH.mjs.map +1 -0
- package/dist/chunks/BlockTypePickerRegistry-U4uY7-lN.mjs +2 -0
- package/dist/chunks/BlockTypePickerRegistry-U4uY7-lN.mjs.map +1 -0
- package/dist/chunks/BlockquotePlugin-DmbnFmNj.mjs +2 -0
- package/dist/chunks/BlockquotePlugin-DmbnFmNj.mjs.map +1 -0
- package/dist/chunks/CaretNavigationPlugin-4EaHvYXR.mjs +2 -0
- package/dist/chunks/CaretNavigationPlugin-4EaHvYXR.mjs.map +1 -0
- package/dist/chunks/CodeBlockPlugin-BP3XaOGj.mjs +2 -0
- package/dist/chunks/CodeBlockPlugin-BP3XaOGj.mjs.map +1 -0
- package/dist/chunks/ColorGrid-taTKtdsm.mjs +2 -0
- package/dist/chunks/ColorGrid-taTKtdsm.mjs.map +1 -0
- package/dist/chunks/ColorPickerPopup-JJQ-gMBN.mjs +2 -0
- package/dist/chunks/ColorPickerPopup-JJQ-gMBN.mjs.map +1 -0
- package/dist/chunks/ColorValidation-3viVw_tK.mjs +2 -0
- package/dist/chunks/ColorValidation-3viVw_tK.mjs.map +1 -0
- package/dist/chunks/CommandHelpers-D0LIFM4O.mjs +2 -0
- package/dist/chunks/CommandHelpers-D0LIFM4O.mjs.map +1 -0
- package/dist/chunks/Commands-DJSVqp7b.mjs +2 -0
- package/dist/chunks/Commands-DJSVqp7b.mjs.map +1 -0
- package/dist/chunks/Decoration-6dhb8k3b.mjs +2 -0
- package/dist/chunks/Decoration-6dhb8k3b.mjs.map +1 -0
- package/dist/chunks/Document-CkQLx84k.mjs +2 -0
- package/dist/chunks/Document-CkQLx84k.mjs.map +1 -0
- package/dist/chunks/DocumentParser-QJUmtPp9.mjs +2 -0
- package/dist/chunks/DocumentParser-QJUmtPp9.mjs.map +1 -0
- package/dist/chunks/DocumentSerializer-bwcxM9WV.mjs +2 -0
- package/dist/chunks/DocumentSerializer-bwcxM9WV.mjs.map +1 -0
- package/dist/chunks/DomUtils-BkyCg-OO.mjs +2 -0
- package/dist/chunks/DomUtils-BkyCg-OO.mjs.map +1 -0
- package/dist/chunks/FontPlugin-Cz4qEYGh.mjs +2 -0
- package/dist/chunks/FontPlugin-Cz4qEYGh.mjs.map +1 -0
- package/dist/chunks/FontSizePlugin-D1WtDqrH.mjs +2 -0
- package/dist/chunks/FontSizePlugin-D1WtDqrH.mjs.map +1 -0
- package/dist/chunks/GapCursorNavigation-CKKq42kA.mjs +2 -0
- package/dist/chunks/GapCursorNavigation-CKKq42kA.mjs.map +1 -0
- package/dist/chunks/GapCursorPlugin-0CyOaciK.mjs +2 -0
- package/dist/chunks/GapCursorPlugin-0CyOaciK.mjs.map +1 -0
- package/dist/chunks/HTMLUtils-BLwp5G4f.mjs +2 -0
- package/dist/chunks/HTMLUtils-BLwp5G4f.mjs.map +1 -0
- package/dist/chunks/HardBreakPlugin-BOz-L53p.mjs +2 -0
- package/dist/chunks/HardBreakPlugin-BOz-L53p.mjs.map +1 -0
- package/dist/chunks/HeadingPlugin-C1F-5Ail.mjs +2 -0
- package/dist/chunks/HeadingPlugin-C1F-5Ail.mjs.map +1 -0
- package/dist/chunks/HighlightPlugin-LYARYuDC.mjs +2 -0
- package/dist/chunks/HighlightPlugin-LYARYuDC.mjs.map +1 -0
- package/dist/chunks/HorizontalRulePlugin-fmdbzWDQ.mjs +2 -0
- package/dist/chunks/HorizontalRulePlugin-fmdbzWDQ.mjs.map +1 -0
- package/dist/chunks/ImagePlugin-CrfnT1sD.mjs +2 -0
- package/dist/chunks/ImagePlugin-CrfnT1sD.mjs.map +1 -0
- package/dist/chunks/KeyboardNav-BZIHDPDV.mjs +2 -0
- package/dist/chunks/KeyboardNav-BZIHDPDV.mjs.map +1 -0
- package/dist/chunks/LinkPlugin-DzFJLnfQ.mjs +2 -0
- package/dist/chunks/LinkPlugin-DzFJLnfQ.mjs.map +1 -0
- package/dist/chunks/ListPlugin-C_Rcz3bV.mjs +2 -0
- package/dist/chunks/ListPlugin-C_Rcz3bV.mjs.map +1 -0
- package/dist/chunks/NavigationQueries-CgYPG6oY.mjs +2 -0
- package/dist/chunks/NavigationQueries-CgYPG6oY.mjs.map +1 -0
- package/dist/chunks/NodeResolver-CCA8UVRr.mjs +2 -0
- package/dist/chunks/NodeResolver-CCA8UVRr.mjs.map +1 -0
- package/dist/chunks/NodeSelectionCommands-CE_73CxF.mjs +2 -0
- package/dist/chunks/NodeSelectionCommands-CE_73CxF.mjs.map +1 -0
- package/dist/chunks/Platform-D9TRT4Mn.mjs +2 -0
- package/dist/chunks/Platform-D9TRT4Mn.mjs.map +1 -0
- package/dist/chunks/PluginHelpers-DLKHJWJn.mjs +2 -0
- package/dist/chunks/PluginHelpers-DLKHJWJn.mjs.map +1 -0
- package/dist/chunks/PopupManager-RWOaksC0.mjs +2 -0
- package/dist/chunks/PopupManager-RWOaksC0.mjs.map +1 -0
- package/dist/chunks/PopupPositioning-a1ADYSmx.mjs +2 -0
- package/dist/chunks/PopupPositioning-a1ADYSmx.mjs.map +1 -0
- package/dist/chunks/PrintPlugin-CwbEz3eP.mjs +2 -0
- package/dist/chunks/PrintPlugin-CwbEz3eP.mjs.map +1 -0
- package/dist/chunks/PrintTypes-B2DXeAEG.mjs +2 -0
- package/dist/chunks/PrintTypes-B2DXeAEG.mjs.map +1 -0
- package/dist/chunks/Selection-B14e7gd0.mjs +2 -0
- package/dist/chunks/Selection-B14e7gd0.mjs.map +1 -0
- package/dist/chunks/ShortcutFormatting-DQPMvupx.mjs +2 -0
- package/dist/chunks/ShortcutFormatting-DQPMvupx.mjs.map +1 -0
- package/dist/chunks/SmartPastePlugin-CXqJ0CPO.mjs +2 -0
- package/dist/chunks/SmartPastePlugin-CXqJ0CPO.mjs.map +1 -0
- package/dist/chunks/StrikethroughPlugin-CRl69jm3.mjs +2 -0
- package/dist/chunks/StrikethroughPlugin-CRl69jm3.mjs.map +1 -0
- package/dist/chunks/StyleRuntime-0yPPJK9H.mjs +2 -0
- package/dist/chunks/StyleRuntime-0yPPJK9H.mjs.map +1 -0
- package/dist/chunks/SuperSubPlugin-CAnaTJVm.mjs +2 -0
- package/dist/chunks/SuperSubPlugin-CAnaTJVm.mjs.map +1 -0
- package/dist/chunks/TablePlugin-D_7bgrqm.mjs +2 -0
- package/dist/chunks/TablePlugin-D_7bgrqm.mjs.map +1 -0
- package/dist/chunks/TextColorPlugin-Dfhvl1qG.mjs +2 -0
- package/dist/chunks/TextColorPlugin-Dfhvl1qG.mjs.map +1 -0
- package/dist/chunks/TextDirectionCorePlugin-CyKw-C8X.mjs +2 -0
- package/dist/chunks/TextDirectionCorePlugin-CyKw-C8X.mjs.map +1 -0
- package/dist/chunks/TextDirectionLocale-rlU1yNly.mjs +2 -0
- package/dist/chunks/TextDirectionLocale-rlU1yNly.mjs.map +1 -0
- package/dist/chunks/TextFormattingPlugin-xtQczzCs.mjs +2 -0
- package/dist/chunks/TextFormattingPlugin-xtQczzCs.mjs.map +1 -0
- package/dist/chunks/ToolbarPlugin-BFEniyH-.mjs +2 -0
- package/dist/chunks/ToolbarPlugin-BFEniyH-.mjs.map +1 -0
- package/dist/chunks/TypeBrands-BQR8dEYU.mjs +2 -0
- package/dist/chunks/TypeBrands-BQR8dEYU.mjs.map +1 -0
- package/dist/chunks/WordBoundary-iZXLMFyk.mjs +2 -0
- package/dist/chunks/WordBoundary-iZXLMFyk.mjs.map +1 -0
- package/dist/chunks/XmlPatterns-Ub8I1jdE.mjs +2 -0
- package/dist/chunks/XmlPatterns-Ub8I1jdE.mjs.map +1 -0
- package/dist/chunks/ar-3-z4mZhh.mjs +2 -0
- package/dist/chunks/ar-3-z4mZhh.mjs.map +1 -0
- package/dist/chunks/ar-B-l6wR4D.mjs +2 -0
- package/dist/chunks/ar-B-l6wR4D.mjs.map +1 -0
- package/dist/chunks/ar-B3NByR5H.mjs +2 -0
- package/dist/chunks/ar-B3NByR5H.mjs.map +1 -0
- package/dist/chunks/ar-BRvm4F78.mjs +2 -0
- package/dist/chunks/ar-BRvm4F78.mjs.map +1 -0
- package/dist/chunks/ar-BUMXujtS.mjs +2 -0
- package/dist/chunks/ar-BUMXujtS.mjs.map +1 -0
- package/dist/chunks/ar-BhVHv8Lx.mjs +2 -0
- package/dist/chunks/ar-BhVHv8Lx.mjs.map +1 -0
- package/dist/chunks/ar-BhwRD9Cg.mjs +2 -0
- package/dist/chunks/ar-BhwRD9Cg.mjs.map +1 -0
- package/dist/chunks/ar-Bm8ORJ3H.mjs +2 -0
- package/dist/chunks/ar-Bm8ORJ3H.mjs.map +1 -0
- package/dist/chunks/ar-BpxuRQB2.mjs +2 -0
- package/dist/chunks/ar-BpxuRQB2.mjs.map +1 -0
- package/dist/chunks/ar-CA0-ysCj.mjs +2 -0
- package/dist/chunks/ar-CA0-ysCj.mjs.map +1 -0
- package/dist/chunks/ar-CAkFpIju.mjs +2 -0
- package/dist/chunks/ar-CAkFpIju.mjs.map +1 -0
- package/dist/chunks/ar-CU6qxyFp.mjs +2 -0
- package/dist/chunks/ar-CU6qxyFp.mjs.map +1 -0
- package/dist/chunks/ar-CXcTrZVc.mjs +2 -0
- package/dist/chunks/ar-CXcTrZVc.mjs.map +1 -0
- package/dist/chunks/ar-CeO_osWz.mjs +2 -0
- package/dist/chunks/ar-CeO_osWz.mjs.map +1 -0
- package/dist/chunks/ar-CxRSPJDE.mjs +2 -0
- package/dist/chunks/ar-CxRSPJDE.mjs.map +1 -0
- package/dist/chunks/ar-DHes6Igy.mjs +2 -0
- package/dist/chunks/ar-DHes6Igy.mjs.map +1 -0
- package/dist/chunks/ar-DN1aHdqb.mjs +2 -0
- package/dist/chunks/ar-DN1aHdqb.mjs.map +1 -0
- package/dist/chunks/ar-DNzmHN3q.mjs +2 -0
- package/dist/chunks/ar-DNzmHN3q.mjs.map +1 -0
- package/dist/chunks/ar-DVdWier2.mjs +2 -0
- package/dist/chunks/ar-DVdWier2.mjs.map +1 -0
- package/dist/chunks/ar-G_ADWoCx.mjs +2 -0
- package/dist/chunks/ar-G_ADWoCx.mjs.map +1 -0
- package/dist/chunks/ar-KAaQxKMo.mjs +2 -0
- package/dist/chunks/ar-KAaQxKMo.mjs.map +1 -0
- package/dist/chunks/ar-MHdV5PAO.mjs +2 -0
- package/dist/chunks/ar-MHdV5PAO.mjs.map +1 -0
- package/dist/chunks/ar-S2VfgLMv.mjs +2 -0
- package/dist/chunks/ar-S2VfgLMv.mjs.map +1 -0
- package/dist/chunks/color-picker-DumtHdqh.mjs +2 -0
- package/dist/chunks/color-picker-DumtHdqh.mjs.map +1 -0
- package/dist/chunks/de-0x8V-vch.mjs +2 -0
- package/dist/chunks/de-0x8V-vch.mjs.map +1 -0
- package/dist/chunks/de-B5xIP9en.mjs +2 -0
- package/dist/chunks/de-B5xIP9en.mjs.map +1 -0
- package/dist/chunks/de-BBohFIqw.mjs +2 -0
- package/dist/chunks/de-BBohFIqw.mjs.map +1 -0
- package/dist/chunks/de-BWPmC-2S.mjs +2 -0
- package/dist/chunks/de-BWPmC-2S.mjs.map +1 -0
- package/dist/chunks/de-Bo1kM9rb.mjs +2 -0
- package/dist/chunks/de-Bo1kM9rb.mjs.map +1 -0
- package/dist/chunks/de-BqzR2XMP.mjs +2 -0
- package/dist/chunks/de-BqzR2XMP.mjs.map +1 -0
- package/dist/chunks/de-CIZibvOC.mjs +2 -0
- package/dist/chunks/de-CIZibvOC.mjs.map +1 -0
- package/dist/chunks/de-CLToQn0o.mjs +2 -0
- package/dist/chunks/de-CLToQn0o.mjs.map +1 -0
- package/dist/chunks/de-CNoAAJul.mjs +2 -0
- package/dist/chunks/de-CNoAAJul.mjs.map +1 -0
- package/dist/chunks/de-CPb7rgkk.mjs +2 -0
- package/dist/chunks/de-CPb7rgkk.mjs.map +1 -0
- package/dist/chunks/de-CdmBKVDW.mjs +2 -0
- package/dist/chunks/de-CdmBKVDW.mjs.map +1 -0
- package/dist/chunks/de-DDgeyWgp.mjs +2 -0
- package/dist/chunks/de-DDgeyWgp.mjs.map +1 -0
- package/dist/chunks/de-DGXQ4OiR.mjs +2 -0
- package/dist/chunks/de-DGXQ4OiR.mjs.map +1 -0
- package/dist/chunks/de-DJbvKl4E.mjs +2 -0
- package/dist/chunks/de-DJbvKl4E.mjs.map +1 -0
- package/dist/chunks/de-DKNvYM_G.mjs +2 -0
- package/dist/chunks/de-DKNvYM_G.mjs.map +1 -0
- package/dist/chunks/de-DOHm_P4A.mjs +2 -0
- package/dist/chunks/de-DOHm_P4A.mjs.map +1 -0
- package/dist/chunks/de-DTMX75rn.mjs +2 -0
- package/dist/chunks/de-DTMX75rn.mjs.map +1 -0
- package/dist/chunks/de-DfkQds5F.mjs +2 -0
- package/dist/chunks/de-DfkQds5F.mjs.map +1 -0
- package/dist/chunks/de-TEQW-F4t.mjs +2 -0
- package/dist/chunks/de-TEQW-F4t.mjs.map +1 -0
- package/dist/chunks/de-WzdZ_NJ6.mjs +2 -0
- package/dist/chunks/de-WzdZ_NJ6.mjs.map +1 -0
- package/dist/chunks/de-_vqVfXeo.mjs +2 -0
- package/dist/chunks/de-_vqVfXeo.mjs.map +1 -0
- package/dist/chunks/de-gR6jt-sS.mjs +2 -0
- package/dist/chunks/de-gR6jt-sS.mjs.map +1 -0
- package/dist/chunks/de-qOBFRCGL.mjs +2 -0
- package/dist/chunks/de-qOBFRCGL.mjs.map +1 -0
- package/dist/chunks/es-1udUsTJd.mjs +2 -0
- package/dist/chunks/es-1udUsTJd.mjs.map +1 -0
- package/dist/chunks/es-3H7h0_G5.mjs +2 -0
- package/dist/chunks/es-3H7h0_G5.mjs.map +1 -0
- package/dist/chunks/es-4-5iRK0M.mjs +2 -0
- package/dist/chunks/es-4-5iRK0M.mjs.map +1 -0
- package/dist/chunks/es-89LD3TlT.mjs +2 -0
- package/dist/chunks/es-89LD3TlT.mjs.map +1 -0
- package/dist/chunks/es-B2KFVoHa.mjs +2 -0
- package/dist/chunks/es-B2KFVoHa.mjs.map +1 -0
- package/dist/chunks/es-BUP1scLX.mjs +2 -0
- package/dist/chunks/es-BUP1scLX.mjs.map +1 -0
- package/dist/chunks/es-Bhhj-yh0.mjs +2 -0
- package/dist/chunks/es-Bhhj-yh0.mjs.map +1 -0
- package/dist/chunks/es-Bo0NTtQH.mjs +2 -0
- package/dist/chunks/es-Bo0NTtQH.mjs.map +1 -0
- package/dist/chunks/es-Bovw7l2W.mjs +2 -0
- package/dist/chunks/es-Bovw7l2W.mjs.map +1 -0
- package/dist/chunks/es-C7xAs1yn.mjs +2 -0
- package/dist/chunks/es-C7xAs1yn.mjs.map +1 -0
- package/dist/chunks/es-CIdF7MzV.mjs +2 -0
- package/dist/chunks/es-CIdF7MzV.mjs.map +1 -0
- package/dist/chunks/es-CPit7Z6w.mjs +2 -0
- package/dist/chunks/es-CPit7Z6w.mjs.map +1 -0
- package/dist/chunks/es-CQzgvQI6.mjs +2 -0
- package/dist/chunks/es-CQzgvQI6.mjs.map +1 -0
- package/dist/chunks/es-CSteuqi5.mjs +2 -0
- package/dist/chunks/es-CSteuqi5.mjs.map +1 -0
- package/dist/chunks/es-ClJxqhu_.mjs +2 -0
- package/dist/chunks/es-ClJxqhu_.mjs.map +1 -0
- package/dist/chunks/es-CrmqYoVh.mjs +2 -0
- package/dist/chunks/es-CrmqYoVh.mjs.map +1 -0
- package/dist/chunks/es-CwRwLkfr.mjs +2 -0
- package/dist/chunks/es-CwRwLkfr.mjs.map +1 -0
- package/dist/chunks/es-D7DRGnkZ.mjs +2 -0
- package/dist/chunks/es-D7DRGnkZ.mjs.map +1 -0
- package/dist/chunks/es-DET1uMu-.mjs +2 -0
- package/dist/chunks/es-DET1uMu-.mjs.map +1 -0
- package/dist/chunks/es-Dj83hJxy.mjs +2 -0
- package/dist/chunks/es-Dj83hJxy.mjs.map +1 -0
- package/dist/chunks/es-DwYWucI6.mjs +2 -0
- package/dist/chunks/es-DwYWucI6.mjs.map +1 -0
- package/dist/chunks/es-DwrcpThR.mjs +2 -0
- package/dist/chunks/es-DwrcpThR.mjs.map +1 -0
- package/dist/chunks/es-z7xjgDdk.mjs +2 -0
- package/dist/chunks/es-z7xjgDdk.mjs.map +1 -0
- package/dist/chunks/fonts-CG5ZnGux.mjs +2 -0
- package/dist/chunks/fonts-CG5ZnGux.mjs.map +1 -0
- package/dist/chunks/fr-B73tOEzO.mjs +2 -0
- package/dist/chunks/fr-B73tOEzO.mjs.map +1 -0
- package/dist/chunks/fr-BEbsFEkX.mjs +2 -0
- package/dist/chunks/fr-BEbsFEkX.mjs.map +1 -0
- package/dist/chunks/fr-BFCaEBSV.mjs +2 -0
- package/dist/chunks/fr-BFCaEBSV.mjs.map +1 -0
- package/dist/chunks/fr-BJ69XrDO.mjs +2 -0
- package/dist/chunks/fr-BJ69XrDO.mjs.map +1 -0
- package/dist/chunks/fr-BdQ_-Iwg.mjs +2 -0
- package/dist/chunks/fr-BdQ_-Iwg.mjs.map +1 -0
- package/dist/chunks/fr-BhnuBA0i.mjs +2 -0
- package/dist/chunks/fr-BhnuBA0i.mjs.map +1 -0
- package/dist/chunks/fr-BiLmpXZ9.mjs +2 -0
- package/dist/chunks/fr-BiLmpXZ9.mjs.map +1 -0
- package/dist/chunks/fr-C1Pak7kS.mjs +2 -0
- package/dist/chunks/fr-C1Pak7kS.mjs.map +1 -0
- package/dist/chunks/fr-CFDoFELm.mjs +2 -0
- package/dist/chunks/fr-CFDoFELm.mjs.map +1 -0
- package/dist/chunks/fr-CmsH8BnY.mjs +2 -0
- package/dist/chunks/fr-CmsH8BnY.mjs.map +1 -0
- package/dist/chunks/fr-Cz2qWiuV.mjs +2 -0
- package/dist/chunks/fr-Cz2qWiuV.mjs.map +1 -0
- package/dist/chunks/fr-CzTPuD1P.mjs +2 -0
- package/dist/chunks/fr-CzTPuD1P.mjs.map +1 -0
- package/dist/chunks/fr-D1LQMsjB.mjs +2 -0
- package/dist/chunks/fr-D1LQMsjB.mjs.map +1 -0
- package/dist/chunks/fr-D84mXQrZ.mjs +2 -0
- package/dist/chunks/fr-D84mXQrZ.mjs.map +1 -0
- package/dist/chunks/fr-DX7z_ld0.mjs +2 -0
- package/dist/chunks/fr-DX7z_ld0.mjs.map +1 -0
- package/dist/chunks/fr-DXkQUerf.mjs +2 -0
- package/dist/chunks/fr-DXkQUerf.mjs.map +1 -0
- package/dist/chunks/fr-Di5gv5P8.mjs +2 -0
- package/dist/chunks/fr-Di5gv5P8.mjs.map +1 -0
- package/dist/chunks/fr-Dq5MrVWd.mjs +2 -0
- package/dist/chunks/fr-Dq5MrVWd.mjs.map +1 -0
- package/dist/chunks/fr-DtfEjLSL.mjs +2 -0
- package/dist/chunks/fr-DtfEjLSL.mjs.map +1 -0
- package/dist/chunks/fr-DvW-dpp3.mjs +2 -0
- package/dist/chunks/fr-DvW-dpp3.mjs.map +1 -0
- package/dist/chunks/fr-UJFNrn-V.mjs +2 -0
- package/dist/chunks/fr-UJFNrn-V.mjs.map +1 -0
- package/dist/chunks/fr-hK8X-sM6.mjs +2 -0
- package/dist/chunks/fr-hK8X-sM6.mjs.map +1 -0
- package/dist/chunks/fr-uuOSXj4L.mjs +2 -0
- package/dist/chunks/fr-uuOSXj4L.mjs.map +1 -0
- package/dist/chunks/full-216JgIG1.mjs +2 -0
- package/dist/chunks/full-216JgIG1.mjs.map +1 -0
- package/dist/chunks/hi-B2kXjElO.mjs +2 -0
- package/dist/chunks/hi-B2kXjElO.mjs.map +1 -0
- package/dist/chunks/hi-B2mEQ5gX.mjs +2 -0
- package/dist/chunks/hi-B2mEQ5gX.mjs.map +1 -0
- package/dist/chunks/hi-B61lTO2W.mjs +2 -0
- package/dist/chunks/hi-B61lTO2W.mjs.map +1 -0
- package/dist/chunks/hi-BD5HrbxU.mjs +2 -0
- package/dist/chunks/hi-BD5HrbxU.mjs.map +1 -0
- package/dist/chunks/hi-BHTvSWXw.mjs +2 -0
- package/dist/chunks/hi-BHTvSWXw.mjs.map +1 -0
- package/dist/chunks/hi-BYyaOBqY.mjs +2 -0
- package/dist/chunks/hi-BYyaOBqY.mjs.map +1 -0
- package/dist/chunks/hi-Bhlbz5gX.mjs +2 -0
- package/dist/chunks/hi-Bhlbz5gX.mjs.map +1 -0
- package/dist/chunks/hi-BniuSk3L.mjs +2 -0
- package/dist/chunks/hi-BniuSk3L.mjs.map +1 -0
- package/dist/chunks/hi-CBODdhOq.mjs +2 -0
- package/dist/chunks/hi-CBODdhOq.mjs.map +1 -0
- package/dist/chunks/hi-CKWQCooT.mjs +2 -0
- package/dist/chunks/hi-CKWQCooT.mjs.map +1 -0
- package/dist/chunks/hi-CkoruGVs.mjs +2 -0
- package/dist/chunks/hi-CkoruGVs.mjs.map +1 -0
- package/dist/chunks/hi-D6Ge3Lp5.mjs +2 -0
- package/dist/chunks/hi-D6Ge3Lp5.mjs.map +1 -0
- package/dist/chunks/hi-DEreeBFj.mjs +2 -0
- package/dist/chunks/hi-DEreeBFj.mjs.map +1 -0
- package/dist/chunks/hi-Dj4JW-9k.mjs +2 -0
- package/dist/chunks/hi-Dj4JW-9k.mjs.map +1 -0
- package/dist/chunks/hi-DkP4pHSX.mjs +2 -0
- package/dist/chunks/hi-DkP4pHSX.mjs.map +1 -0
- package/dist/chunks/hi-DknCX8Nx.mjs +2 -0
- package/dist/chunks/hi-DknCX8Nx.mjs.map +1 -0
- package/dist/chunks/hi-Dm1KJQQ5.mjs +2 -0
- package/dist/chunks/hi-Dm1KJQQ5.mjs.map +1 -0
- package/dist/chunks/hi-Dx-LTWg-.mjs +2 -0
- package/dist/chunks/hi-Dx-LTWg-.mjs.map +1 -0
- package/dist/chunks/hi-RDoZtwMm.mjs +2 -0
- package/dist/chunks/hi-RDoZtwMm.mjs.map +1 -0
- package/dist/chunks/hi-Tq9eDRk7.mjs +2 -0
- package/dist/chunks/hi-Tq9eDRk7.mjs.map +1 -0
- package/dist/chunks/hi-_vJ_Eo4p.mjs +2 -0
- package/dist/chunks/hi-_vJ_Eo4p.mjs.map +1 -0
- package/dist/chunks/hi-l8E-czFm.mjs +2 -0
- package/dist/chunks/hi-l8E-czFm.mjs.map +1 -0
- package/dist/chunks/hi-ydmPh3HB.mjs +2 -0
- package/dist/chunks/hi-ydmPh3HB.mjs.map +1 -0
- package/dist/chunks/minimal-D-QxXO1C.mjs +2 -0
- package/dist/chunks/minimal-D-QxXO1C.mjs.map +1 -0
- package/dist/chunks/pt-B4NUSLW8.mjs +2 -0
- package/dist/chunks/pt-B4NUSLW8.mjs.map +1 -0
- package/dist/chunks/pt-B8VKEboV.mjs +2 -0
- package/dist/chunks/pt-B8VKEboV.mjs.map +1 -0
- package/dist/chunks/pt-BMDKykEi.mjs +2 -0
- package/dist/chunks/pt-BMDKykEi.mjs.map +1 -0
- package/dist/chunks/pt-BmWE3xXF.mjs +2 -0
- package/dist/chunks/pt-BmWE3xXF.mjs.map +1 -0
- package/dist/chunks/pt-CJWKE1SW.mjs +2 -0
- package/dist/chunks/pt-CJWKE1SW.mjs.map +1 -0
- package/dist/chunks/pt-CKETXoPa.mjs +2 -0
- package/dist/chunks/pt-CKETXoPa.mjs.map +1 -0
- package/dist/chunks/pt-CKRs16QH.mjs +2 -0
- package/dist/chunks/pt-CKRs16QH.mjs.map +1 -0
- package/dist/chunks/pt-Cb-1GHq4.mjs +2 -0
- package/dist/chunks/pt-Cb-1GHq4.mjs.map +1 -0
- package/dist/chunks/pt-CgpU74p4.mjs +2 -0
- package/dist/chunks/pt-CgpU74p4.mjs.map +1 -0
- package/dist/chunks/pt-CtOdAphq.mjs +2 -0
- package/dist/chunks/pt-CtOdAphq.mjs.map +1 -0
- package/dist/chunks/pt-CzaPFMSx.mjs +2 -0
- package/dist/chunks/pt-CzaPFMSx.mjs.map +1 -0
- package/dist/chunks/pt-DGuLcW0m.mjs +2 -0
- package/dist/chunks/pt-DGuLcW0m.mjs.map +1 -0
- package/dist/chunks/pt-DHzSXzlf.mjs +2 -0
- package/dist/chunks/pt-DHzSXzlf.mjs.map +1 -0
- package/dist/chunks/pt-DWDdBfLk.mjs +2 -0
- package/dist/chunks/pt-DWDdBfLk.mjs.map +1 -0
- package/dist/chunks/pt-DZ6Liq_x.mjs +2 -0
- package/dist/chunks/pt-DZ6Liq_x.mjs.map +1 -0
- package/dist/chunks/pt-D_MD7MJu.mjs +2 -0
- package/dist/chunks/pt-D_MD7MJu.mjs.map +1 -0
- package/dist/chunks/pt-DgaY_yNG.mjs +2 -0
- package/dist/chunks/pt-DgaY_yNG.mjs.map +1 -0
- package/dist/chunks/pt-DgzgCxdH.mjs +2 -0
- package/dist/chunks/pt-DgzgCxdH.mjs.map +1 -0
- package/dist/chunks/pt-Dh7nUcAM.mjs +2 -0
- package/dist/chunks/pt-Dh7nUcAM.mjs.map +1 -0
- package/dist/chunks/pt-P914L5AX.mjs +2 -0
- package/dist/chunks/pt-P914L5AX.mjs.map +1 -0
- package/dist/chunks/pt-XT1vsWZj.mjs +2 -0
- package/dist/chunks/pt-XT1vsWZj.mjs.map +1 -0
- package/dist/chunks/pt-jJ0XXSVz.mjs +2 -0
- package/dist/chunks/pt-jJ0XXSVz.mjs.map +1 -0
- package/dist/chunks/pt-tuOLwYkM.mjs +2 -0
- package/dist/chunks/pt-tuOLwYkM.mjs.map +1 -0
- package/dist/chunks/rolldown-runtime-B8Ku5yk6.mjs +1 -0
- package/dist/chunks/ru-7m8CMM17.mjs +2 -0
- package/dist/chunks/ru-7m8CMM17.mjs.map +1 -0
- package/dist/chunks/ru-9Qh1fR-K.mjs +2 -0
- package/dist/chunks/ru-9Qh1fR-K.mjs.map +1 -0
- package/dist/chunks/ru-B5gK8OLp.mjs +2 -0
- package/dist/chunks/ru-B5gK8OLp.mjs.map +1 -0
- package/dist/chunks/ru-BRNN6ldH.mjs +2 -0
- package/dist/chunks/ru-BRNN6ldH.mjs.map +1 -0
- package/dist/chunks/ru-BiyE9o-D.mjs +2 -0
- package/dist/chunks/ru-BiyE9o-D.mjs.map +1 -0
- package/dist/chunks/ru-BpGTIPbv.mjs +2 -0
- package/dist/chunks/ru-BpGTIPbv.mjs.map +1 -0
- package/dist/chunks/ru-CAzMaI4y.mjs +2 -0
- package/dist/chunks/ru-CAzMaI4y.mjs.map +1 -0
- package/dist/chunks/ru-COo6HpcD.mjs +2 -0
- package/dist/chunks/ru-COo6HpcD.mjs.map +1 -0
- package/dist/chunks/ru-CgEOZsUs.mjs +2 -0
- package/dist/chunks/ru-CgEOZsUs.mjs.map +1 -0
- package/dist/chunks/ru-CptzezhV.mjs +2 -0
- package/dist/chunks/ru-CptzezhV.mjs.map +1 -0
- package/dist/chunks/ru-Ct0qNMLS.mjs +2 -0
- package/dist/chunks/ru-Ct0qNMLS.mjs.map +1 -0
- package/dist/chunks/ru-Ct2IrzbA.mjs +2 -0
- package/dist/chunks/ru-Ct2IrzbA.mjs.map +1 -0
- package/dist/chunks/ru-CyHnlWLN.mjs +2 -0
- package/dist/chunks/ru-CyHnlWLN.mjs.map +1 -0
- package/dist/chunks/ru-DF0vhzeC.mjs +2 -0
- package/dist/chunks/ru-DF0vhzeC.mjs.map +1 -0
- package/dist/chunks/ru-DH6rsOWL.mjs +2 -0
- package/dist/chunks/ru-DH6rsOWL.mjs.map +1 -0
- package/dist/chunks/ru-DHH8k6G8.mjs +2 -0
- package/dist/chunks/ru-DHH8k6G8.mjs.map +1 -0
- package/dist/chunks/ru-GVReqjM4.mjs +2 -0
- package/dist/chunks/ru-GVReqjM4.mjs.map +1 -0
- package/dist/chunks/ru-IzloX5CY.mjs +2 -0
- package/dist/chunks/ru-IzloX5CY.mjs.map +1 -0
- package/dist/chunks/ru-ZrzXB0f6.mjs +2 -0
- package/dist/chunks/ru-ZrzXB0f6.mjs.map +1 -0
- package/dist/chunks/ru-asRKygvE.mjs +2 -0
- package/dist/chunks/ru-asRKygvE.mjs.map +1 -0
- package/dist/chunks/ru-m19l8nRA.mjs +2 -0
- package/dist/chunks/ru-m19l8nRA.mjs.map +1 -0
- package/dist/chunks/ru-vfQ5Xaz4.mjs +2 -0
- package/dist/chunks/ru-vfQ5Xaz4.mjs.map +1 -0
- package/dist/chunks/ru-wVOlNily.mjs +2 -0
- package/dist/chunks/ru-wVOlNily.mjs.map +1 -0
- package/dist/chunks/shared-DxmfXZH7.mjs +2 -0
- package/dist/chunks/shared-DxmfXZH7.mjs.map +1 -0
- package/dist/chunks/src-DFXIsulM.mjs +2 -0
- package/dist/chunks/src-DFXIsulM.mjs.map +1 -0
- package/dist/chunks/text-direction-advanced-B5JuIs0P.mjs +2 -0
- package/dist/chunks/text-direction-advanced-B5JuIs0P.mjs.map +1 -0
- package/dist/chunks/zh-0uhsRxfq.mjs +2 -0
- package/dist/chunks/zh-0uhsRxfq.mjs.map +1 -0
- package/dist/chunks/zh-1BrLr5Wk.mjs +2 -0
- package/dist/chunks/zh-1BrLr5Wk.mjs.map +1 -0
- package/dist/chunks/zh-BNHeXa_M.mjs +2 -0
- package/dist/chunks/zh-BNHeXa_M.mjs.map +1 -0
- package/dist/chunks/zh-BOpBzSX3.mjs +2 -0
- package/dist/chunks/zh-BOpBzSX3.mjs.map +1 -0
- package/dist/chunks/zh-BV2uDDGf.mjs +2 -0
- package/dist/chunks/zh-BV2uDDGf.mjs.map +1 -0
- package/dist/chunks/zh-BkoPteNb.mjs +2 -0
- package/dist/chunks/zh-BkoPteNb.mjs.map +1 -0
- package/dist/chunks/zh-C2z0g7OC.mjs +2 -0
- package/dist/chunks/zh-C2z0g7OC.mjs.map +1 -0
- package/dist/chunks/zh-CeJw45yo.mjs +2 -0
- package/dist/chunks/zh-CeJw45yo.mjs.map +1 -0
- package/dist/chunks/zh-CwVkxL4q.mjs +2 -0
- package/dist/chunks/zh-CwVkxL4q.mjs.map +1 -0
- package/dist/chunks/zh-Cy7mujpx.mjs +2 -0
- package/dist/chunks/zh-Cy7mujpx.mjs.map +1 -0
- package/dist/chunks/zh-D-P00ENX.mjs +2 -0
- package/dist/chunks/zh-D-P00ENX.mjs.map +1 -0
- package/dist/chunks/zh-D5d-NAuv.mjs +2 -0
- package/dist/chunks/zh-D5d-NAuv.mjs.map +1 -0
- package/dist/chunks/zh-D6gTQA2W.mjs +2 -0
- package/dist/chunks/zh-D6gTQA2W.mjs.map +1 -0
- package/dist/chunks/zh-DLwq4e4-.mjs +2 -0
- package/dist/chunks/zh-DLwq4e4-.mjs.map +1 -0
- package/dist/chunks/zh-D_Yb8Eg6.mjs +2 -0
- package/dist/chunks/zh-D_Yb8Eg6.mjs.map +1 -0
- package/dist/chunks/zh-DaNHqNDY.mjs +2 -0
- package/dist/chunks/zh-DaNHqNDY.mjs.map +1 -0
- package/dist/chunks/zh-De7-Y4O5.mjs +2 -0
- package/dist/chunks/zh-De7-Y4O5.mjs.map +1 -0
- package/dist/chunks/zh-Dj7kHEcp.mjs +2 -0
- package/dist/chunks/zh-Dj7kHEcp.mjs.map +1 -0
- package/dist/chunks/zh-Dl0oVWiK.mjs +2 -0
- package/dist/chunks/zh-Dl0oVWiK.mjs.map +1 -0
- package/dist/chunks/zh-Do0plBjM.mjs +2 -0
- package/dist/chunks/zh-Do0plBjM.mjs.map +1 -0
- package/dist/chunks/zh-Q0aDk5UA.mjs +2 -0
- package/dist/chunks/zh-Q0aDk5UA.mjs.map +1 -0
- package/dist/chunks/zh-eSgs8mzc.mjs +2 -0
- package/dist/chunks/zh-eSgs8mzc.mjs.map +1 -0
- package/dist/chunks/zh-giWyGMSZ.mjs +2 -0
- package/dist/chunks/zh-giWyGMSZ.mjs.map +1 -0
- package/dist/commands/BlockInsertion.d.ts.map +1 -1
- package/dist/commands/CommandHelpers.d.ts +13 -2
- package/dist/commands/CommandHelpers.d.ts.map +1 -1
- package/dist/commands/NodeSelectionCommands.d.ts +3 -8
- package/dist/commands/NodeSelectionCommands.d.ts.map +1 -1
- package/dist/editor/ContentSerializer.d.ts.map +1 -1
- package/dist/editor/EditorConfig.d.ts +50 -0
- package/dist/editor/EditorConfig.d.ts.map +1 -0
- package/dist/editor/EditorConfigController.d.ts +1 -1
- package/dist/editor/EditorConfigController.d.ts.map +1 -1
- package/dist/editor/EditorDOM.d.ts.map +1 -1
- package/dist/editor/EditorInitializer.d.ts +37 -0
- package/dist/editor/EditorInitializer.d.ts.map +1 -0
- package/dist/editor/EditorLifecycleCoordinator.d.ts +6 -1
- package/dist/editor/EditorLifecycleCoordinator.d.ts.map +1 -1
- package/dist/editor/NotectlEditor.d.ts +13 -51
- package/dist/editor/NotectlEditor.d.ts.map +1 -1
- package/dist/editor/PluginBootstrapper.d.ts +1 -1
- package/dist/editor/PluginBootstrapper.d.ts.map +1 -1
- package/dist/fonts.mjs +1 -2
- package/dist/full.mjs +1 -2
- package/dist/html.mjs +1 -2
- package/dist/input/ClipboardHandler.d.ts +5 -0
- package/dist/input/ClipboardHandler.d.ts.map +1 -1
- package/dist/input/HTMLParser.d.ts +9 -5
- package/dist/input/HTMLParser.d.ts.map +1 -1
- package/dist/input/InputHandler.d.ts +1 -0
- package/dist/input/InputHandler.d.ts.map +1 -1
- package/dist/input/PasteHTMLHandler.d.ts +25 -0
- package/dist/input/PasteHTMLHandler.d.ts.map +1 -0
- package/dist/input/PasteHandler.d.ts +2 -27
- package/dist/input/PasteHandler.d.ts.map +1 -1
- package/dist/input/PasteRichBlockHandler.d.ts +23 -0
- package/dist/input/PasteRichBlockHandler.d.ts.map +1 -0
- package/dist/input/SelectionDocument.d.ts +10 -0
- package/dist/input/SelectionDocument.d.ts.map +1 -0
- package/dist/model/RichBlockData.d.ts +12 -2
- package/dist/model/RichBlockData.d.ts.map +1 -1
- package/dist/notectl-core.mjs +1 -2
- package/dist/notectl-core.umd.js +2 -2
- package/dist/notectl-core.umd.js.map +1 -1
- package/dist/plugins/PluginContextFactory.d.ts +73 -0
- package/dist/plugins/PluginContextFactory.d.ts.map +1 -0
- package/dist/plugins/PluginManager.d.ts +5 -0
- package/dist/plugins/PluginManager.d.ts.map +1 -1
- package/dist/plugins/alignment.mjs +1 -2
- package/dist/plugins/blockquote.mjs +1 -2
- package/dist/plugins/caret-navigation.mjs +1 -2
- package/dist/plugins/code-block.mjs +1 -2
- package/dist/plugins/font-size.mjs +1 -2
- package/dist/plugins/font.mjs +1 -2
- package/dist/plugins/gap-cursor.mjs +1 -2
- package/dist/plugins/hard-break.mjs +1 -2
- package/dist/plugins/heading.mjs +1 -2
- package/dist/plugins/highlight.mjs +1 -2
- package/dist/plugins/horizontal-rule.mjs +1 -2
- package/dist/plugins/image/ImageCommands.d.ts.map +1 -1
- package/dist/plugins/image.mjs +1 -2
- package/dist/plugins/link.mjs +1 -2
- package/dist/plugins/list.mjs +1 -2
- package/dist/plugins/print/PrintContentPreparer.d.ts.map +1 -1
- package/dist/plugins/print.mjs +1 -2
- package/dist/plugins/shared/PopupManager.d.ts.map +1 -1
- package/dist/plugins/shared.mjs +1 -2
- package/dist/plugins/smart-paste.mjs +1 -2
- package/dist/plugins/strikethrough.mjs +1 -2
- package/dist/plugins/super-sub.mjs +1 -2
- package/dist/plugins/table/TableCommands.d.ts +1 -0
- package/dist/plugins/table/TableCommands.d.ts.map +1 -1
- package/dist/plugins/table/TableContextMenu.d.ts.map +1 -1
- package/dist/plugins/table/TableSelection.d.ts.map +1 -1
- package/dist/plugins/table.mjs +1 -2
- package/dist/plugins/text-color.mjs +1 -2
- package/dist/plugins/text-direction-advanced.mjs +1 -2
- package/dist/plugins/text-direction.mjs +1 -2
- package/dist/plugins/text-formatting.mjs +1 -2
- package/dist/plugins/toolbar/ToolbarOverflowController.d.ts +2 -0
- package/dist/plugins/toolbar/ToolbarOverflowController.d.ts.map +1 -1
- package/dist/plugins/toolbar.mjs +1 -2
- package/dist/presets/full.mjs +1 -2
- package/dist/presets/minimal.mjs +1 -2
- package/dist/presets.mjs +1 -2
- package/dist/state/StepInversion.d.ts.map +1 -1
- package/dist/view/EditorView.d.ts +8 -58
- package/dist/view/EditorView.d.ts.map +1 -1
- package/dist/view/EditorViewEvents.d.ts +54 -0
- package/dist/view/EditorViewEvents.d.ts.map +1 -0
- package/dist/view/EditorViewNavigation.d.ts +47 -0
- package/dist/view/EditorViewNavigation.d.ts.map +1 -0
- package/dist/view/SelectionSync.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/chunks/AttrRegistry-Ckj9eCHj.mjs +0 -2
- package/dist/chunks/AttrRegistry-Ckj9eCHj.mjs.map +0 -1
- package/dist/chunks/AttributedMarkCommands-x7h4Xy7V.mjs +0 -2
- package/dist/chunks/AttributedMarkCommands-x7h4Xy7V.mjs.map +0 -1
- package/dist/chunks/BlockInsertion-zPxm6oa_.mjs +0 -2
- package/dist/chunks/BlockInsertion-zPxm6oa_.mjs.map +0 -1
- package/dist/chunks/BlockTypePickerRegistry-DcSE6IXB.mjs +0 -2
- package/dist/chunks/BlockTypePickerRegistry-DcSE6IXB.mjs.map +0 -1
- package/dist/chunks/ColorGrid-CpkbKfXg.mjs +0 -2
- package/dist/chunks/ColorGrid-CpkbKfXg.mjs.map +0 -1
- package/dist/chunks/ColorPickerPopup-CDUvkgcK.mjs +0 -2
- package/dist/chunks/ColorPickerPopup-CDUvkgcK.mjs.map +0 -1
- package/dist/chunks/ColorValidation-DCSKq9B2.mjs +0 -2
- package/dist/chunks/ColorValidation-DCSKq9B2.mjs.map +0 -1
- package/dist/chunks/Commands-DwXBBVGR.mjs +0 -2
- package/dist/chunks/Commands-DwXBBVGR.mjs.map +0 -1
- package/dist/chunks/Decoration-D49mFXrH.mjs +0 -2
- package/dist/chunks/Decoration-D49mFXrH.mjs.map +0 -1
- package/dist/chunks/Document-HC8s50qJ.mjs +0 -2
- package/dist/chunks/Document-HC8s50qJ.mjs.map +0 -1
- package/dist/chunks/DocumentParser-w70-Axud.mjs +0 -2
- package/dist/chunks/DocumentParser-w70-Axud.mjs.map +0 -1
- package/dist/chunks/DomUtils-CznMAZZg.mjs +0 -2
- package/dist/chunks/DomUtils-CznMAZZg.mjs.map +0 -1
- package/dist/chunks/HTMLUtils-Cxy99Ak2.mjs +0 -2
- package/dist/chunks/HTMLUtils-Cxy99Ak2.mjs.map +0 -1
- package/dist/chunks/HeadingPlugin-B-LF-AMM.mjs +0 -2
- package/dist/chunks/HeadingPlugin-B-LF-AMM.mjs.map +0 -1
- package/dist/chunks/KeyboardNav-DsYhKKuV.mjs +0 -2
- package/dist/chunks/KeyboardNav-DsYhKKuV.mjs.map +0 -1
- package/dist/chunks/MarkCommands-CTuVDqnn.mjs +0 -2
- package/dist/chunks/MarkCommands-CTuVDqnn.mjs.map +0 -1
- package/dist/chunks/NavigationQueries-DCOv4Ca5.mjs +0 -2
- package/dist/chunks/NavigationQueries-DCOv4Ca5.mjs.map +0 -1
- package/dist/chunks/NotectlEditor-DBBJkPCW.mjs +0 -3
- package/dist/chunks/NotectlEditor-DBBJkPCW.mjs.map +0 -1
- package/dist/chunks/Platform-CU6itXZo.mjs +0 -2
- package/dist/chunks/Platform-CU6itXZo.mjs.map +0 -1
- package/dist/chunks/PluginHelpers-CdPR0MuT.mjs +0 -2
- package/dist/chunks/PluginHelpers-CdPR0MuT.mjs.map +0 -1
- package/dist/chunks/PopupManager-Du3dYnsJ.mjs +0 -2
- package/dist/chunks/PopupManager-Du3dYnsJ.mjs.map +0 -1
- package/dist/chunks/PopupPositioning-DtvqMSop.mjs +0 -2
- package/dist/chunks/PopupPositioning-DtvqMSop.mjs.map +0 -1
- package/dist/chunks/PrintTypes-DukwDSWS.mjs +0 -2
- package/dist/chunks/PrintTypes-DukwDSWS.mjs.map +0 -1
- package/dist/chunks/RangeIterator-CprUbOWv.mjs +0 -2
- package/dist/chunks/RangeIterator-CprUbOWv.mjs.map +0 -1
- package/dist/chunks/Selection-DhbizDM4.mjs +0 -2
- package/dist/chunks/Selection-DhbizDM4.mjs.map +0 -1
- package/dist/chunks/SelectionTransactions-DB3YDIEa.mjs +0 -2
- package/dist/chunks/SelectionTransactions-DB3YDIEa.mjs.map +0 -1
- package/dist/chunks/ShortcutFormatting-BLKS0Gys.mjs +0 -2
- package/dist/chunks/ShortcutFormatting-BLKS0Gys.mjs.map +0 -1
- package/dist/chunks/StyleRuntime-BmsLoEa8.mjs +0 -2
- package/dist/chunks/StyleRuntime-BmsLoEa8.mjs.map +0 -1
- package/dist/chunks/TextDirectionLocale-BraFI9JF.mjs +0 -2
- package/dist/chunks/TextDirectionLocale-BraFI9JF.mjs.map +0 -1
- package/dist/chunks/TypeBrands-Bp_Z_o5Y.mjs +0 -2
- package/dist/chunks/TypeBrands-Bp_Z_o5Y.mjs.map +0 -1
- package/dist/chunks/XmlPatterns-DxQXGjP8.mjs +0 -2
- package/dist/chunks/XmlPatterns-DxQXGjP8.mjs.map +0 -1
- package/dist/chunks/ar-B93SPJT7.mjs +0 -2
- package/dist/chunks/ar-B93SPJT7.mjs.map +0 -1
- package/dist/chunks/ar-BAmGa08u.mjs +0 -2
- package/dist/chunks/ar-BAmGa08u.mjs.map +0 -1
- package/dist/chunks/ar-BYNFEVLc.mjs +0 -2
- package/dist/chunks/ar-BYNFEVLc.mjs.map +0 -1
- package/dist/chunks/ar-Bnc7y8BP.mjs +0 -2
- package/dist/chunks/ar-Bnc7y8BP.mjs.map +0 -1
- package/dist/chunks/ar-Bp3rDZky.mjs +0 -2
- package/dist/chunks/ar-Bp3rDZky.mjs.map +0 -1
- package/dist/chunks/ar-BtOQ7lro.mjs +0 -2
- package/dist/chunks/ar-BtOQ7lro.mjs.map +0 -1
- package/dist/chunks/ar-C5JEHhw9.mjs +0 -2
- package/dist/chunks/ar-C5JEHhw9.mjs.map +0 -1
- package/dist/chunks/ar-CL3QL0tw.mjs +0 -2
- package/dist/chunks/ar-CL3QL0tw.mjs.map +0 -1
- package/dist/chunks/ar-CYtG-XlN.mjs +0 -2
- package/dist/chunks/ar-CYtG-XlN.mjs.map +0 -1
- package/dist/chunks/ar-CzVj8p__.mjs +0 -2
- package/dist/chunks/ar-CzVj8p__.mjs.map +0 -1
- package/dist/chunks/ar-D7PS3e2g.mjs +0 -2
- package/dist/chunks/ar-D7PS3e2g.mjs.map +0 -1
- package/dist/chunks/ar-D8adM2Uy.mjs +0 -2
- package/dist/chunks/ar-D8adM2Uy.mjs.map +0 -1
- package/dist/chunks/ar-D9jyShaB.mjs +0 -2
- package/dist/chunks/ar-D9jyShaB.mjs.map +0 -1
- package/dist/chunks/ar-DR6OA3ZO.mjs +0 -2
- package/dist/chunks/ar-DR6OA3ZO.mjs.map +0 -1
- package/dist/chunks/ar-Deibepjm.mjs +0 -2
- package/dist/chunks/ar-Deibepjm.mjs.map +0 -1
- package/dist/chunks/ar-Dlb5riUN.mjs +0 -2
- package/dist/chunks/ar-Dlb5riUN.mjs.map +0 -1
- package/dist/chunks/ar-DmmxE2W7.mjs +0 -2
- package/dist/chunks/ar-DmmxE2W7.mjs.map +0 -1
- package/dist/chunks/ar-Ds6Z2Gzf.mjs +0 -2
- package/dist/chunks/ar-Ds6Z2Gzf.mjs.map +0 -1
- package/dist/chunks/ar-DtIHQ8nU.mjs +0 -2
- package/dist/chunks/ar-DtIHQ8nU.mjs.map +0 -1
- package/dist/chunks/ar-J8B-on-0.mjs +0 -2
- package/dist/chunks/ar-J8B-on-0.mjs.map +0 -1
- package/dist/chunks/ar-b6VdnxAs.mjs +0 -2
- package/dist/chunks/ar-b6VdnxAs.mjs.map +0 -1
- package/dist/chunks/ar-iU02mRe5.mjs +0 -2
- package/dist/chunks/ar-iU02mRe5.mjs.map +0 -1
- package/dist/chunks/ar-mSCYQYnL.mjs +0 -2
- package/dist/chunks/ar-mSCYQYnL.mjs.map +0 -1
- package/dist/chunks/color-picker-Byjl_xr9.mjs +0 -2
- package/dist/chunks/color-picker-Byjl_xr9.mjs.map +0 -1
- package/dist/chunks/de-8aCC5jBM.mjs +0 -2
- package/dist/chunks/de-8aCC5jBM.mjs.map +0 -1
- package/dist/chunks/de-B4y4ndUw.mjs +0 -2
- package/dist/chunks/de-B4y4ndUw.mjs.map +0 -1
- package/dist/chunks/de-B5fcZ0FQ.mjs +0 -2
- package/dist/chunks/de-B5fcZ0FQ.mjs.map +0 -1
- package/dist/chunks/de-BT9VmwoJ.mjs +0 -2
- package/dist/chunks/de-BT9VmwoJ.mjs.map +0 -1
- package/dist/chunks/de-BZWSyJTG.mjs +0 -2
- package/dist/chunks/de-BZWSyJTG.mjs.map +0 -1
- package/dist/chunks/de-CFD_Wgik.mjs +0 -2
- package/dist/chunks/de-CFD_Wgik.mjs.map +0 -1
- package/dist/chunks/de-CLYtb6kD.mjs +0 -2
- package/dist/chunks/de-CLYtb6kD.mjs.map +0 -1
- package/dist/chunks/de-CP5v-98M.mjs +0 -2
- package/dist/chunks/de-CP5v-98M.mjs.map +0 -1
- package/dist/chunks/de-CYJ6uWno.mjs +0 -2
- package/dist/chunks/de-CYJ6uWno.mjs.map +0 -1
- package/dist/chunks/de-ChcKkF7A.mjs +0 -2
- package/dist/chunks/de-ChcKkF7A.mjs.map +0 -1
- package/dist/chunks/de-CicoU066.mjs +0 -2
- package/dist/chunks/de-CicoU066.mjs.map +0 -1
- package/dist/chunks/de-CjLAdBt2.mjs +0 -2
- package/dist/chunks/de-CjLAdBt2.mjs.map +0 -1
- package/dist/chunks/de-CtFvAXwF.mjs +0 -2
- package/dist/chunks/de-CtFvAXwF.mjs.map +0 -1
- package/dist/chunks/de-D1OAXtxJ.mjs +0 -2
- package/dist/chunks/de-D1OAXtxJ.mjs.map +0 -1
- package/dist/chunks/de-DBbzCQrm.mjs +0 -2
- package/dist/chunks/de-DBbzCQrm.mjs.map +0 -1
- package/dist/chunks/de-DOLwx_M7.mjs +0 -2
- package/dist/chunks/de-DOLwx_M7.mjs.map +0 -1
- package/dist/chunks/de-De2miMxo.mjs +0 -2
- package/dist/chunks/de-De2miMxo.mjs.map +0 -1
- package/dist/chunks/de-OTfhhinm.mjs +0 -2
- package/dist/chunks/de-OTfhhinm.mjs.map +0 -1
- package/dist/chunks/de-PZ9-LlBp.mjs +0 -2
- package/dist/chunks/de-PZ9-LlBp.mjs.map +0 -1
- package/dist/chunks/de-UREymH-5.mjs +0 -2
- package/dist/chunks/de-UREymH-5.mjs.map +0 -1
- package/dist/chunks/de-chYdoK9q.mjs +0 -2
- package/dist/chunks/de-chYdoK9q.mjs.map +0 -1
- package/dist/chunks/de-fXvs5vQT.mjs +0 -2
- package/dist/chunks/de-fXvs5vQT.mjs.map +0 -1
- package/dist/chunks/de-xJh5C_pk.mjs +0 -2
- package/dist/chunks/de-xJh5C_pk.mjs.map +0 -1
- package/dist/chunks/es-B9UhsaEI.mjs +0 -2
- package/dist/chunks/es-B9UhsaEI.mjs.map +0 -1
- package/dist/chunks/es-BHGwPgrP.mjs +0 -2
- package/dist/chunks/es-BHGwPgrP.mjs.map +0 -1
- package/dist/chunks/es-BTqy_aQ4.mjs +0 -2
- package/dist/chunks/es-BTqy_aQ4.mjs.map +0 -1
- package/dist/chunks/es-BbGOZGS_.mjs +0 -2
- package/dist/chunks/es-BbGOZGS_.mjs.map +0 -1
- package/dist/chunks/es-BjPsub0k.mjs +0 -2
- package/dist/chunks/es-BjPsub0k.mjs.map +0 -1
- package/dist/chunks/es-Bk0bRDFE.mjs +0 -2
- package/dist/chunks/es-Bk0bRDFE.mjs.map +0 -1
- package/dist/chunks/es-BkS6DsrM.mjs +0 -2
- package/dist/chunks/es-BkS6DsrM.mjs.map +0 -1
- package/dist/chunks/es-BzEpr4Bk.mjs +0 -2
- package/dist/chunks/es-BzEpr4Bk.mjs.map +0 -1
- package/dist/chunks/es-C2lnWyA0.mjs +0 -2
- package/dist/chunks/es-C2lnWyA0.mjs.map +0 -1
- package/dist/chunks/es-C7e35Muh.mjs +0 -2
- package/dist/chunks/es-C7e35Muh.mjs.map +0 -1
- package/dist/chunks/es-CBk43isB.mjs +0 -2
- package/dist/chunks/es-CBk43isB.mjs.map +0 -1
- package/dist/chunks/es-CE8t9fuM.mjs +0 -2
- package/dist/chunks/es-CE8t9fuM.mjs.map +0 -1
- package/dist/chunks/es-CFjzqIbS.mjs +0 -2
- package/dist/chunks/es-CFjzqIbS.mjs.map +0 -1
- package/dist/chunks/es-Ce-AEYxc.mjs +0 -2
- package/dist/chunks/es-Ce-AEYxc.mjs.map +0 -1
- package/dist/chunks/es-Co4AJr8Y.mjs +0 -2
- package/dist/chunks/es-Co4AJr8Y.mjs.map +0 -1
- package/dist/chunks/es-Cu5_OA4X.mjs +0 -2
- package/dist/chunks/es-Cu5_OA4X.mjs.map +0 -1
- package/dist/chunks/es-Cud6JXHf.mjs +0 -2
- package/dist/chunks/es-Cud6JXHf.mjs.map +0 -1
- package/dist/chunks/es-D-II7LZC.mjs +0 -2
- package/dist/chunks/es-D-II7LZC.mjs.map +0 -1
- package/dist/chunks/es-DBBSeOaD.mjs +0 -2
- package/dist/chunks/es-DBBSeOaD.mjs.map +0 -1
- package/dist/chunks/es-DCwjeUUu.mjs +0 -2
- package/dist/chunks/es-DCwjeUUu.mjs.map +0 -1
- package/dist/chunks/es-DvgH3-WZ.mjs +0 -2
- package/dist/chunks/es-DvgH3-WZ.mjs.map +0 -1
- package/dist/chunks/es-MgguVgIs.mjs +0 -2
- package/dist/chunks/es-MgguVgIs.mjs.map +0 -1
- package/dist/chunks/es-yXjjcxgb.mjs +0 -2
- package/dist/chunks/es-yXjjcxgb.mjs.map +0 -1
- package/dist/chunks/fr-B-_yKIAY.mjs +0 -2
- package/dist/chunks/fr-B-_yKIAY.mjs.map +0 -1
- package/dist/chunks/fr-BGyF2ym0.mjs +0 -2
- package/dist/chunks/fr-BGyF2ym0.mjs.map +0 -1
- package/dist/chunks/fr-BoRJ3B2-.mjs +0 -2
- package/dist/chunks/fr-BoRJ3B2-.mjs.map +0 -1
- package/dist/chunks/fr-BrKk4SPg.mjs +0 -2
- package/dist/chunks/fr-BrKk4SPg.mjs.map +0 -1
- package/dist/chunks/fr-C-y09LKg.mjs +0 -2
- package/dist/chunks/fr-C-y09LKg.mjs.map +0 -1
- package/dist/chunks/fr-C1W7jyd6.mjs +0 -2
- package/dist/chunks/fr-C1W7jyd6.mjs.map +0 -1
- package/dist/chunks/fr-C8CtmWBj.mjs +0 -2
- package/dist/chunks/fr-C8CtmWBj.mjs.map +0 -1
- package/dist/chunks/fr-C9oiPW0k.mjs +0 -2
- package/dist/chunks/fr-C9oiPW0k.mjs.map +0 -1
- package/dist/chunks/fr-CEkk4UyZ.mjs +0 -2
- package/dist/chunks/fr-CEkk4UyZ.mjs.map +0 -1
- package/dist/chunks/fr-Ccaetiwi.mjs +0 -2
- package/dist/chunks/fr-Ccaetiwi.mjs.map +0 -1
- package/dist/chunks/fr-Ccku5KzA.mjs +0 -2
- package/dist/chunks/fr-Ccku5KzA.mjs.map +0 -1
- package/dist/chunks/fr-CfUg1FxU.mjs +0 -2
- package/dist/chunks/fr-CfUg1FxU.mjs.map +0 -1
- package/dist/chunks/fr-DDkBcjmO.mjs +0 -2
- package/dist/chunks/fr-DDkBcjmO.mjs.map +0 -1
- package/dist/chunks/fr-DNwLChcm.mjs +0 -2
- package/dist/chunks/fr-DNwLChcm.mjs.map +0 -1
- package/dist/chunks/fr-DvneSjCf.mjs +0 -2
- package/dist/chunks/fr-DvneSjCf.mjs.map +0 -1
- package/dist/chunks/fr-Dx4Qqimj.mjs +0 -2
- package/dist/chunks/fr-Dx4Qqimj.mjs.map +0 -1
- package/dist/chunks/fr-RHXmueoO.mjs +0 -2
- package/dist/chunks/fr-RHXmueoO.mjs.map +0 -1
- package/dist/chunks/fr-VdiCNF4J.mjs +0 -2
- package/dist/chunks/fr-VdiCNF4J.mjs.map +0 -1
- package/dist/chunks/fr-Wiobfk5s.mjs +0 -2
- package/dist/chunks/fr-Wiobfk5s.mjs.map +0 -1
- package/dist/chunks/fr-YMiDtWuG.mjs +0 -2
- package/dist/chunks/fr-YMiDtWuG.mjs.map +0 -1
- package/dist/chunks/fr-_Oxf0k66.mjs +0 -2
- package/dist/chunks/fr-_Oxf0k66.mjs.map +0 -1
- package/dist/chunks/fr-gurfH-7T.mjs +0 -2
- package/dist/chunks/fr-gurfH-7T.mjs.map +0 -1
- package/dist/chunks/fr-zP7EjxDL.mjs +0 -2
- package/dist/chunks/fr-zP7EjxDL.mjs.map +0 -1
- package/dist/chunks/hi-B2W8pFqK.mjs +0 -2
- package/dist/chunks/hi-B2W8pFqK.mjs.map +0 -1
- package/dist/chunks/hi-B2m69ZCq.mjs +0 -2
- package/dist/chunks/hi-B2m69ZCq.mjs.map +0 -1
- package/dist/chunks/hi-BMIt3y_-.mjs +0 -2
- package/dist/chunks/hi-BMIt3y_-.mjs.map +0 -1
- package/dist/chunks/hi-BdtVhAzs.mjs +0 -2
- package/dist/chunks/hi-BdtVhAzs.mjs.map +0 -1
- package/dist/chunks/hi-BmkfaZpg.mjs +0 -2
- package/dist/chunks/hi-BmkfaZpg.mjs.map +0 -1
- package/dist/chunks/hi-C-l_R2SO.mjs +0 -2
- package/dist/chunks/hi-C-l_R2SO.mjs.map +0 -1
- package/dist/chunks/hi-C1LhM-oY.mjs +0 -2
- package/dist/chunks/hi-C1LhM-oY.mjs.map +0 -1
- package/dist/chunks/hi-CGEbGI1l.mjs +0 -2
- package/dist/chunks/hi-CGEbGI1l.mjs.map +0 -1
- package/dist/chunks/hi-CPuhj7IA.mjs +0 -2
- package/dist/chunks/hi-CPuhj7IA.mjs.map +0 -1
- package/dist/chunks/hi-CT5WERqi.mjs +0 -2
- package/dist/chunks/hi-CT5WERqi.mjs.map +0 -1
- package/dist/chunks/hi-CbLPPQ0b.mjs +0 -2
- package/dist/chunks/hi-CbLPPQ0b.mjs.map +0 -1
- package/dist/chunks/hi-ClvEtEKe.mjs +0 -2
- package/dist/chunks/hi-ClvEtEKe.mjs.map +0 -1
- package/dist/chunks/hi-CpBWHmYH.mjs +0 -2
- package/dist/chunks/hi-CpBWHmYH.mjs.map +0 -1
- package/dist/chunks/hi-DAfl8nU_.mjs +0 -2
- package/dist/chunks/hi-DAfl8nU_.mjs.map +0 -1
- package/dist/chunks/hi-DVof3w0y.mjs +0 -2
- package/dist/chunks/hi-DVof3w0y.mjs.map +0 -1
- package/dist/chunks/hi-DtlvSQkD.mjs +0 -2
- package/dist/chunks/hi-DtlvSQkD.mjs.map +0 -1
- package/dist/chunks/hi-FH3CAJuR.mjs +0 -2
- package/dist/chunks/hi-FH3CAJuR.mjs.map +0 -1
- package/dist/chunks/hi-Ga9h9a_1.mjs +0 -2
- package/dist/chunks/hi-Ga9h9a_1.mjs.map +0 -1
- package/dist/chunks/hi-Zc17M1T-.mjs +0 -2
- package/dist/chunks/hi-Zc17M1T-.mjs.map +0 -1
- package/dist/chunks/hi-g7i0bmig.mjs +0 -2
- package/dist/chunks/hi-g7i0bmig.mjs.map +0 -1
- package/dist/chunks/hi-js2P6byR.mjs +0 -2
- package/dist/chunks/hi-js2P6byR.mjs.map +0 -1
- package/dist/chunks/hi-ntUsOspQ.mjs +0 -2
- package/dist/chunks/hi-ntUsOspQ.mjs.map +0 -1
- package/dist/chunks/hi-yxAcR3w6.mjs +0 -2
- package/dist/chunks/hi-yxAcR3w6.mjs.map +0 -1
- package/dist/chunks/index-CVwf0cdH.mjs +0 -2
- package/dist/chunks/index-CVwf0cdH.mjs.map +0 -1
- package/dist/chunks/index-D3BZFsAD.mjs +0 -2
- package/dist/chunks/index-D3BZFsAD.mjs.map +0 -1
- package/dist/chunks/pt--IiroJQw.mjs +0 -2
- package/dist/chunks/pt--IiroJQw.mjs.map +0 -1
- package/dist/chunks/pt-BF72W8M5.mjs +0 -2
- package/dist/chunks/pt-BF72W8M5.mjs.map +0 -1
- package/dist/chunks/pt-BX_t4luI.mjs +0 -2
- package/dist/chunks/pt-BX_t4luI.mjs.map +0 -1
- package/dist/chunks/pt-B_XJ2s9X.mjs +0 -2
- package/dist/chunks/pt-B_XJ2s9X.mjs.map +0 -1
- package/dist/chunks/pt-C-Vp7Rxj.mjs +0 -2
- package/dist/chunks/pt-C-Vp7Rxj.mjs.map +0 -1
- package/dist/chunks/pt-CD2aCZXf.mjs +0 -2
- package/dist/chunks/pt-CD2aCZXf.mjs.map +0 -1
- package/dist/chunks/pt-CFjzqIbS.mjs +0 -2
- package/dist/chunks/pt-CFjzqIbS.mjs.map +0 -1
- package/dist/chunks/pt-CHjmBegF.mjs +0 -2
- package/dist/chunks/pt-CHjmBegF.mjs.map +0 -1
- package/dist/chunks/pt-CQRzEocL.mjs +0 -2
- package/dist/chunks/pt-CQRzEocL.mjs.map +0 -1
- package/dist/chunks/pt-Cem2WxUk.mjs +0 -2
- package/dist/chunks/pt-Cem2WxUk.mjs.map +0 -1
- package/dist/chunks/pt-D6kdF3fH.mjs +0 -2
- package/dist/chunks/pt-D6kdF3fH.mjs.map +0 -1
- package/dist/chunks/pt-DJfJVeY8.mjs +0 -2
- package/dist/chunks/pt-DJfJVeY8.mjs.map +0 -1
- package/dist/chunks/pt-DfB-IaYi.mjs +0 -2
- package/dist/chunks/pt-DfB-IaYi.mjs.map +0 -1
- package/dist/chunks/pt-DlNdH9pu.mjs +0 -2
- package/dist/chunks/pt-DlNdH9pu.mjs.map +0 -1
- package/dist/chunks/pt-DrJ0-8Yo.mjs +0 -2
- package/dist/chunks/pt-DrJ0-8Yo.mjs.map +0 -1
- package/dist/chunks/pt-DsBJpgpe.mjs +0 -2
- package/dist/chunks/pt-DsBJpgpe.mjs.map +0 -1
- package/dist/chunks/pt-DwdSYJzC.mjs +0 -2
- package/dist/chunks/pt-DwdSYJzC.mjs.map +0 -1
- package/dist/chunks/pt-Dx9UkZ3j.mjs +0 -2
- package/dist/chunks/pt-Dx9UkZ3j.mjs.map +0 -1
- package/dist/chunks/pt-K0BUlM9X.mjs +0 -2
- package/dist/chunks/pt-K0BUlM9X.mjs.map +0 -1
- package/dist/chunks/pt-TuA3_GDM.mjs +0 -2
- package/dist/chunks/pt-TuA3_GDM.mjs.map +0 -1
- package/dist/chunks/pt-cN6r-f7f.mjs +0 -2
- package/dist/chunks/pt-cN6r-f7f.mjs.map +0 -1
- package/dist/chunks/pt-uNGpVM3D.mjs +0 -2
- package/dist/chunks/pt-uNGpVM3D.mjs.map +0 -1
- package/dist/chunks/pt-v1E9u-Jx.mjs +0 -2
- package/dist/chunks/pt-v1E9u-Jx.mjs.map +0 -1
- package/dist/chunks/ru-0h51zrqE.mjs +0 -2
- package/dist/chunks/ru-0h51zrqE.mjs.map +0 -1
- package/dist/chunks/ru-4S8w6UN_.mjs +0 -2
- package/dist/chunks/ru-4S8w6UN_.mjs.map +0 -1
- package/dist/chunks/ru-B0cRw90L.mjs +0 -2
- package/dist/chunks/ru-B0cRw90L.mjs.map +0 -1
- package/dist/chunks/ru-B3O7WXNM.mjs +0 -2
- package/dist/chunks/ru-B3O7WXNM.mjs.map +0 -1
- package/dist/chunks/ru-B6zVAzvI.mjs +0 -2
- package/dist/chunks/ru-B6zVAzvI.mjs.map +0 -1
- package/dist/chunks/ru-B8teJin_.mjs +0 -2
- package/dist/chunks/ru-B8teJin_.mjs.map +0 -1
- package/dist/chunks/ru-BCriPw-8.mjs +0 -2
- package/dist/chunks/ru-BCriPw-8.mjs.map +0 -1
- package/dist/chunks/ru-BNOU16E5.mjs +0 -2
- package/dist/chunks/ru-BNOU16E5.mjs.map +0 -1
- package/dist/chunks/ru-BO6BIS5W.mjs +0 -2
- package/dist/chunks/ru-BO6BIS5W.mjs.map +0 -1
- package/dist/chunks/ru-Bdy1lLuc.mjs +0 -2
- package/dist/chunks/ru-Bdy1lLuc.mjs.map +0 -1
- package/dist/chunks/ru-BgBctNVm.mjs +0 -2
- package/dist/chunks/ru-BgBctNVm.mjs.map +0 -1
- package/dist/chunks/ru-CNLx7T3O.mjs +0 -2
- package/dist/chunks/ru-CNLx7T3O.mjs.map +0 -1
- package/dist/chunks/ru-CVSCT776.mjs +0 -2
- package/dist/chunks/ru-CVSCT776.mjs.map +0 -1
- package/dist/chunks/ru-CZvkdGnf.mjs +0 -2
- package/dist/chunks/ru-CZvkdGnf.mjs.map +0 -1
- package/dist/chunks/ru-CegMPuML.mjs +0 -2
- package/dist/chunks/ru-CegMPuML.mjs.map +0 -1
- package/dist/chunks/ru-CiLrD2Nz.mjs +0 -2
- package/dist/chunks/ru-CiLrD2Nz.mjs.map +0 -1
- package/dist/chunks/ru-ClEM6OKY.mjs +0 -2
- package/dist/chunks/ru-ClEM6OKY.mjs.map +0 -1
- package/dist/chunks/ru-CrbxCeQf.mjs +0 -2
- package/dist/chunks/ru-CrbxCeQf.mjs.map +0 -1
- package/dist/chunks/ru-D3j2x2xu.mjs +0 -2
- package/dist/chunks/ru-D3j2x2xu.mjs.map +0 -1
- package/dist/chunks/ru-DdHqb4Mh.mjs +0 -2
- package/dist/chunks/ru-DdHqb4Mh.mjs.map +0 -1
- package/dist/chunks/ru-DjgNdOdJ.mjs +0 -2
- package/dist/chunks/ru-DjgNdOdJ.mjs.map +0 -1
- package/dist/chunks/ru-Tzd5N37W.mjs +0 -2
- package/dist/chunks/ru-Tzd5N37W.mjs.map +0 -1
- package/dist/chunks/ru-XKNCzkR2.mjs +0 -2
- package/dist/chunks/ru-XKNCzkR2.mjs.map +0 -1
- package/dist/chunks/zh--oNSMazK.mjs +0 -2
- package/dist/chunks/zh--oNSMazK.mjs.map +0 -1
- package/dist/chunks/zh-BfeWdPIz.mjs +0 -2
- package/dist/chunks/zh-BfeWdPIz.mjs.map +0 -1
- package/dist/chunks/zh-BnOxGKxF.mjs +0 -2
- package/dist/chunks/zh-BnOxGKxF.mjs.map +0 -1
- package/dist/chunks/zh-BqMtE-jN.mjs +0 -2
- package/dist/chunks/zh-BqMtE-jN.mjs.map +0 -1
- package/dist/chunks/zh-C3aI7A2o.mjs +0 -2
- package/dist/chunks/zh-C3aI7A2o.mjs.map +0 -1
- package/dist/chunks/zh-C6YALJZt.mjs +0 -2
- package/dist/chunks/zh-C6YALJZt.mjs.map +0 -1
- package/dist/chunks/zh-CWdTbUOP.mjs +0 -2
- package/dist/chunks/zh-CWdTbUOP.mjs.map +0 -1
- package/dist/chunks/zh-CY01pMD4.mjs +0 -2
- package/dist/chunks/zh-CY01pMD4.mjs.map +0 -1
- package/dist/chunks/zh-Cmt7n9FY.mjs +0 -2
- package/dist/chunks/zh-Cmt7n9FY.mjs.map +0 -1
- package/dist/chunks/zh-CpP2kee3.mjs +0 -2
- package/dist/chunks/zh-CpP2kee3.mjs.map +0 -1
- package/dist/chunks/zh-Cpbg4evx.mjs +0 -2
- package/dist/chunks/zh-Cpbg4evx.mjs.map +0 -1
- package/dist/chunks/zh-Cqb55JWa.mjs +0 -2
- package/dist/chunks/zh-Cqb55JWa.mjs.map +0 -1
- package/dist/chunks/zh-DCQZ6gss.mjs +0 -2
- package/dist/chunks/zh-DCQZ6gss.mjs.map +0 -1
- package/dist/chunks/zh-DG2CNTUU.mjs +0 -2
- package/dist/chunks/zh-DG2CNTUU.mjs.map +0 -1
- package/dist/chunks/zh-DTiTJbzz.mjs +0 -2
- package/dist/chunks/zh-DTiTJbzz.mjs.map +0 -1
- package/dist/chunks/zh-Da1z6qbB.mjs +0 -2
- package/dist/chunks/zh-Da1z6qbB.mjs.map +0 -1
- package/dist/chunks/zh-Di3WqY4_.mjs +0 -2
- package/dist/chunks/zh-Di3WqY4_.mjs.map +0 -1
- package/dist/chunks/zh-DlBt06Pr.mjs +0 -2
- package/dist/chunks/zh-DlBt06Pr.mjs.map +0 -1
- package/dist/chunks/zh-Dt-wVrNr.mjs +0 -2
- package/dist/chunks/zh-Dt-wVrNr.mjs.map +0 -1
- package/dist/chunks/zh-ND6vW2M-.mjs +0 -2
- package/dist/chunks/zh-ND6vW2M-.mjs.map +0 -1
- package/dist/chunks/zh-Yd3GNsa0.mjs +0 -2
- package/dist/chunks/zh-Yd3GNsa0.mjs.map +0 -1
- package/dist/chunks/zh-lhynyH6Q.mjs +0 -2
- package/dist/chunks/zh-lhynyH6Q.mjs.map +0 -1
- package/dist/chunks/zh-v9NmlEIN.mjs +0 -2
- package/dist/chunks/zh-v9NmlEIN.mjs.map +0 -1
- package/dist/fonts.mjs.map +0 -1
- package/dist/full.mjs.map +0 -1
- package/dist/html.mjs.map +0 -1
- package/dist/notectl-core.mjs.map +0 -1
- package/dist/plugins/alignment.mjs.map +0 -1
- package/dist/plugins/blockquote.mjs.map +0 -1
- package/dist/plugins/caret-navigation.mjs.map +0 -1
- package/dist/plugins/code-block.mjs.map +0 -1
- package/dist/plugins/font-size.mjs.map +0 -1
- package/dist/plugins/font.mjs.map +0 -1
- package/dist/plugins/gap-cursor.mjs.map +0 -1
- package/dist/plugins/hard-break.mjs.map +0 -1
- package/dist/plugins/heading.mjs.map +0 -1
- package/dist/plugins/highlight.mjs.map +0 -1
- package/dist/plugins/horizontal-rule.mjs.map +0 -1
- package/dist/plugins/image.mjs.map +0 -1
- package/dist/plugins/link.mjs.map +0 -1
- package/dist/plugins/list.mjs.map +0 -1
- package/dist/plugins/print.mjs.map +0 -1
- package/dist/plugins/shared.mjs.map +0 -1
- package/dist/plugins/smart-paste.mjs.map +0 -1
- package/dist/plugins/strikethrough.mjs.map +0 -1
- package/dist/plugins/super-sub.mjs.map +0 -1
- package/dist/plugins/table.mjs.map +0 -1
- package/dist/plugins/text-color.mjs.map +0 -1
- package/dist/plugins/text-direction-advanced.mjs.map +0 -1
- package/dist/plugins/text-direction.mjs.map +0 -1
- package/dist/plugins/text-formatting.mjs.map +0 -1
- package/dist/plugins/toolbar.mjs.map +0 -1
- package/dist/presets/full.mjs.map +0 -1
- package/dist/presets/minimal.mjs.map +0 -1
- package/dist/presets.mjs.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
let t,e,n;function r(){if(void 0!==t)return t;if("undefined"==typeof navigator)return t=!1,!1;if("userAgentData"in navigator){const e=navigator.userAgentData;if(e.platform)return t=/macOS/i.test(e.platform),t}return t=/Mac|iP(hone|[oa]d)/.test(navigator.platform),t}function a(){return void 0!==e?e:"undefined"==typeof navigator?(e=!1,!1):(e=/Firefox\//.test(navigator.userAgent),e)}function i(){return void 0!==n?n:"undefined"==typeof navigator?(n=!1,!1):(n=/AppleWebKit\//.test(navigator.userAgent)&&!/Chrome\//.test(navigator.userAgent),n)}function o(t){return"rtl"===getComputedStyle(t).direction?"rtl":"ltr"}function u(t){return"rtl"===o(t)}export{r as a,u as b,i as c,o as g,a as i};
|
|
2
|
-
//# sourceMappingURL=Platform-CU6itXZo.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Platform-CU6itXZo.mjs","sources":["../../src/platform/Platform.ts"],"sourcesContent":["/**\n * Platform and browser detection utilities.\n *\n * Determines the current platform (macOS/iOS) and browser engine, which\n * affects keyboard shortcut bindings and browser-specific workarounds.\n * Also provides BiDi text direction detection.\n *\n * All detection results are cached after first evaluation for performance.\n */\n\ninterface NavigatorUAData {\n\treadonly platform?: string;\n}\n\nlet cachedIsMac: boolean | undefined;\nlet cachedIsFirefox: boolean | undefined;\nlet cachedIsWebKit: boolean | undefined;\n\n/** Returns `true` when running on macOS or iOS. */\nexport function isMac(): boolean {\n\tif (cachedIsMac !== undefined) return cachedIsMac;\n\tif (typeof navigator === 'undefined') {\n\t\tcachedIsMac = false;\n\t\treturn false;\n\t}\n\tif ('userAgentData' in navigator) {\n\t\tconst uaData: NavigatorUAData = navigator.userAgentData as NavigatorUAData;\n\t\tif (uaData.platform) {\n\t\t\tcachedIsMac = /macOS/i.test(uaData.platform);\n\t\t\treturn cachedIsMac;\n\t\t}\n\t}\n\tcachedIsMac = /Mac|iP(hone|[oa]d)/.test(navigator.platform);\n\treturn cachedIsMac;\n}\n\n/**\n * Returns `true` when running on Firefox (Gecko engine).\n * Only use for genuine browser workarounds, not feature detection.\n */\nexport function isFirefox(): boolean {\n\tif (cachedIsFirefox !== undefined) return cachedIsFirefox;\n\tif (typeof navigator === 'undefined') {\n\t\tcachedIsFirefox = false;\n\t\treturn false;\n\t}\n\tcachedIsFirefox = /Firefox\\//.test(navigator.userAgent);\n\treturn cachedIsFirefox;\n}\n\n/**\n * Returns `true` when running on WebKit (Safari engine).\n * Only use for genuine browser workarounds, not feature detection.\n */\nexport function isWebKit(): boolean {\n\tif (cachedIsWebKit !== undefined) return cachedIsWebKit;\n\tif (typeof navigator === 'undefined') {\n\t\tcachedIsWebKit = false;\n\t\treturn false;\n\t}\n\tcachedIsWebKit =\n\t\t/AppleWebKit\\//.test(navigator.userAgent) && !/Chrome\\//.test(navigator.userAgent);\n\treturn cachedIsWebKit;\n}\n\n/** Returns the computed text direction of the given element. */\nexport function getTextDirection(element: HTMLElement): 'ltr' | 'rtl' {\n\tconst dir: string = getComputedStyle(element).direction;\n\treturn dir === 'rtl' ? 'rtl' : 'ltr';\n}\n\n/** Returns `true` when the element is in an RTL context (computed direction is RTL). */\nexport function isRtlContext(element: HTMLElement): boolean {\n\treturn getTextDirection(element) === 'rtl';\n}\n\n/**\n * Resets cached detection results.\n * Only intended for use in tests.\n */\nexport function resetPlatformCache(): void {\n\tcachedIsMac = undefined;\n\tcachedIsFirefox = undefined;\n\tcachedIsWebKit = undefined;\n}\n"],"names":["cachedIsMac","cachedIsFirefox","cachedIsWebKit","isMac","navigator","uaData","userAgentData","platform","test","isFirefox","userAgent","isWebKit","getTextDirection","element","getComputedStyle","direction","isRtlContext"],"mappings":"AAcA,IAAIA,EACAC,EACAC,EAGG,SAASC,IACf,YAAIH,EAA2B,OAAOA,EACtC,GAAyB,oBAAdI,UAEV,OADAJ,GAAc,GACP,EAER,GAAI,kBAAmBI,UAAW,CACjC,MAAMC,EAA0BD,UAAUE,cAC1C,GAAID,EAAOE,SAEV,OADAP,EAAc,SAASQ,KAAKH,EAAOE,UAC5BP,CAET,CAEA,OADAA,EAAc,qBAAqBQ,KAAKJ,UAAUG,UAC3CP,CACR,CAMO,SAASS,IACf,gBAAIR,EAAsCA,EACjB,oBAAdG,WACVH,GAAkB,GACX,IAERA,EAAkB,YAAYO,KAAKJ,UAAUM,WACtCT,EACR,CAMO,SAASU,IACf,gBAAIT,EAAqCA,EAChB,oBAAdE,WACVF,GAAiB,GACV,IAERA,EACC,gBAAgBM,KAAKJ,UAAUM,aAAe,WAAWF,KAAKJ,UAAUM,WAClER,EACR,CAGO,SAASU,EAAiBC,GAEhC,MAAe,QADKC,iBAAiBD,GAASE,UACvB,MAAQ,KAChC,CAGO,SAASC,EAAaH,GAC5B,MAAqC,QAA9BD,EAAiBC,EACzB"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{h as e,j as o}from"./Selection-DhbizDM4.mjs";class t{constructor(e){this.id=e}}class n{constructor(e){this.id=e}}class s{resolvedLocale;constructor(e){this.resolvedLocale="browser"===e?"undefined"!=typeof navigator?navigator.language.split("-")[0]??"en":"en":e}getLocale(){return this.resolvedLocale}}const c=new n("locale");function r(e){return e.charAt(0).toUpperCase()+e.slice(1)}function a(e){return`toggle${r(e)}`}async function i(e,o,t,n){if(o)return o;const s=e.getService(c),r=s?.getLocale()??"en";return"en"===r?t:n(r)}function l(t){const n=t.selection;return e(n)?t.getBlock(n.nodeId):o(n)?t.getBlock(n.anchor.blockId):void 0}function u(t){const n=t.selection;return e(n)?n.nodeId:o(n)?n.anchor.blockId:void 0}export{t as E,s as L,n as S,c as a,u as b,r as c,l as g,i as r,a as t};
|
|
2
|
-
//# sourceMappingURL=PluginHelpers-CdPR0MuT.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PluginHelpers-CdPR0MuT.mjs","sources":["../../src/plugins/Plugin.ts","../../src/i18n/LocaleService.ts","../../src/plugins/shared/PluginHelpers.ts"],"sourcesContent":["/**\n * Plugin system types for the Notectl editor.\n */\n\nimport type { DecorationSet } from '../decorations/Decoration.js';\nimport type { FileHandler } from '../model/FileHandlerRegistry.js';\nimport type { FileHandlerRegistry } from '../model/FileHandlerRegistry.js';\nimport type { InlineNodeSpec } from '../model/InlineNodeSpec.js';\nimport type { InputRule } from '../model/InputRule.js';\nimport type { InputRuleRegistry } from '../model/InputRuleRegistry.js';\nimport type { Keymap, KeymapOptions } from '../model/Keymap.js';\nimport type { KeymapRegistry } from '../model/KeymapRegistry.js';\nimport type { MarkSpec } from '../model/MarkSpec.js';\nimport type { NodeSpec } from '../model/NodeSpec.js';\nimport type { SchemaRegistry } from '../model/SchemaRegistry.js';\nimport type { EditorState } from '../state/EditorState.js';\nimport type { Transaction } from '../state/Transaction.js';\nimport type { NodeViewFactory } from '../view/NodeView.js';\nimport type { NodeViewRegistry } from '../view/NodeViewRegistry.js';\nimport type { BlockTypePickerEntry } from './heading/BlockTypePickerEntry.js';\nimport type { BlockTypePickerRegistry } from './heading/BlockTypePickerRegistry.js';\nimport type { ToolbarItem } from './toolbar/ToolbarItem.js';\nimport type { ToolbarRegistry } from './toolbar/ToolbarRegistry.js';\n\n// --- Type-Safe Keys ---\n\n/** Type-safe event key for compile-time payload checking. */\nexport class EventKey<T> {\n\tdeclare readonly _type: T;\n\tconstructor(public readonly id: string) {}\n}\n\n/** Type-safe service key for compile-time type checking. */\nexport class ServiceKey<T> {\n\tdeclare readonly _type: T;\n\tconstructor(public readonly id: string) {}\n}\n\n// --- Command System ---\n\nexport type CommandHandler = () => boolean;\n\nexport interface CommandOptions {\n\t/** When true, the command may execute even if the editor is in read-only mode. */\n\treadonly readonlyAllowed?: boolean;\n}\n\nexport interface CommandEntry {\n\treadonly name: string;\n\treadonly handler: CommandHandler;\n\treadonly pluginId: string;\n\treadonly readonlyAllowed: boolean;\n}\n\n// --- Event System ---\n\nexport type PluginEventCallback<T = unknown> = (payload: T) => void;\n\nexport interface PluginEventBus {\n\temit<T>(key: EventKey<T>, payload: T): void;\n\ton<T>(key: EventKey<T>, callback: PluginEventCallback<T>): () => void;\n\toff<T>(key: EventKey<T>, callback: PluginEventCallback<T>): void;\n}\n\n// --- Configuration ---\n\nexport type PluginConfig = Record<string, unknown>;\n\n// --- Middleware ---\n\nexport type MiddlewareNext = (tr: Transaction) => void;\nexport type TransactionMiddleware = (\n\ttr: Transaction,\n\tstate: EditorState,\n\tnext: MiddlewareNext,\n) => void;\n\nexport interface MiddlewareOptions {\n\t/** Human-readable name for debugging and introspection. */\n\treadonly name?: string;\n\t/** Execution priority (lower values run first). Defaults to 100. */\n\treadonly priority?: number;\n}\n\n// --- Paste Interceptors (re-exported from model for backward compatibility) ---\n\nimport type { PasteInterceptor, PasteInterceptorOptions } from '../model/PasteInterceptor.js';\nexport type { PasteInterceptor, PasteInterceptorOptions } from '../model/PasteInterceptor.js';\n\n// --- Plugin Context ---\n\nexport interface PluginContext {\n\tgetState(): EditorState;\n\tdispatch(transaction: Transaction): void;\n\tgetContainer(): HTMLElement;\n\tgetPluginContainer(position: 'top' | 'bottom'): HTMLElement;\n\tregisterCommand(name: string, handler: CommandHandler, options?: CommandOptions): void;\n\texecuteCommand(name: string): boolean;\n\tgetEventBus(): PluginEventBus;\n\tregisterMiddleware(middleware: TransactionMiddleware, options?: MiddlewareOptions): void;\n\tregisterService<T>(key: ServiceKey<T>, service: T): void;\n\tgetService<T>(key: ServiceKey<T>): T | undefined;\n\tupdateConfig(config: PluginConfig): void;\n\n\t// --- Schema Extension ---\n\tregisterNodeSpec<T extends string>(spec: NodeSpec<T>): void;\n\tregisterMarkSpec<T extends string>(spec: MarkSpec<T>): void;\n\tregisterNodeView(type: string, factory: NodeViewFactory): void;\n\tregisterKeymap(keymap: Keymap, options?: KeymapOptions): void;\n\tregisterInputRule(rule: InputRule): void;\n\tregisterToolbarItem(item: ToolbarItem): void;\n\tregisterInlineNodeSpec<T extends string>(spec: InlineNodeSpec<T>): void;\n\tregisterFileHandler(pattern: string, handler: FileHandler): void;\n\tregisterBlockTypePickerEntry(entry: BlockTypePickerEntry): void;\n\tregisterPasteInterceptor(interceptor: PasteInterceptor, options?: PasteInterceptorOptions): void;\n\tgetSchemaRegistry(): SchemaRegistry;\n\tgetKeymapRegistry(): KeymapRegistry;\n\tgetInputRuleRegistry(): InputRuleRegistry;\n\tgetFileHandlerRegistry(): FileHandlerRegistry;\n\tgetNodeViewRegistry(): NodeViewRegistry;\n\tgetToolbarRegistry(): ToolbarRegistry;\n\tgetBlockTypePickerRegistry(): BlockTypePickerRegistry;\n\n\t/** Registers a CSS string to be added to the editor's adopted stylesheets. */\n\tregisterStyleSheet(css: string): void;\n\n\t/** Returns whether the editor is currently in read-only mode. */\n\tisReadOnly(): boolean;\n\n\t/** Pushes a screen reader announcement via the editor's aria-live region. */\n\tannounce(text: string): void;\n\n\t/** Returns whether the announcer live region currently has content. */\n\thasAnnouncement(): boolean;\n}\n\n// --- Plugin Interface ---\n\nexport interface Plugin<TConfig extends Record<string, unknown> = Record<string, unknown>> {\n\treadonly id: string;\n\treadonly name: string;\n\treadonly priority?: number;\n\treadonly dependencies?: readonly string[];\n\n\tinit(context: PluginContext): void | Promise<void>;\n\tdestroy?(): void | Promise<void>;\n\tonStateChange?(oldState: EditorState, newState: EditorState, tr: Transaction): void;\n\tonConfigure?(config: TConfig): void;\n\t/** Called after ALL plugins have been initialized. */\n\tonReady?(): void | Promise<void>;\n\t/** Called when the editor's read-only mode changes. */\n\tonReadOnlyChange?(readonly: boolean): void;\n\t/**\n\t * Returns decorations for the given state.\n\t * Called after state.apply() but BEFORE reconciliation.\n\t * Plugins should cache and only recompute when needed.\n\t */\n\tdecorations?(state: EditorState, tr?: Transaction): DecorationSet;\n}\n","/**\n * Global locale service that resolves the active language.\n * Registered as a system-level service before plugin init.\n */\n\nimport { ServiceKey } from '../plugins/Plugin.js';\n\nexport class LocaleService {\n\tprivate readonly resolvedLocale: string;\n\n\tconstructor(locale: string) {\n\t\tthis.resolvedLocale =\n\t\t\tlocale === 'browser'\n\t\t\t\t? typeof navigator !== 'undefined'\n\t\t\t\t\t? (navigator.language.split('-')[0] ?? 'en')\n\t\t\t\t\t: 'en'\n\t\t\t\t: locale;\n\t}\n\n\tgetLocale(): string {\n\t\treturn this.resolvedLocale;\n\t}\n}\n\nexport const LocaleServiceKey = new ServiceKey<LocaleService>('locale');\n","/**\n * Shared helper utilities for plugins.\n * Common operations extracted to avoid code duplication across plugins.\n */\n\nimport { LocaleServiceKey } from '../../i18n/LocaleService.js';\nimport type { BlockNode } from '../../model/Document.js';\nimport { isNodeSelection, isTextSelection } from '../../model/Selection.js';\nimport type { BlockId } from '../../model/TypeBrands.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { PluginContext } from '../Plugin.js';\n\n/** Capitalizes the first character of a string. */\nexport function capitalize(s: string): string {\n\treturn s.charAt(0).toUpperCase() + s.slice(1);\n}\n\n/** Converts a mark type to its toggle command name (e.g. 'bold' → 'toggleBold'). */\nexport function toCommandName(markType: string): string {\n\treturn `toggle${capitalize(markType)}`;\n}\n\n/**\n * Resolves the locale for a plugin, using config override, default, or dynamic loader.\n * Plugins provide their config locale, a default English locale, and a loader for other languages.\n */\nexport async function resolveLocale<T>(\n\tcontext: PluginContext,\n\tconfigLocale: T | undefined,\n\tdefaultLocale: T,\n\tloader: (lang: string) => Promise<T>,\n): Promise<T> {\n\tif (configLocale) return configLocale;\n\tconst service = context.getService(LocaleServiceKey);\n\tconst lang: string = service?.getLocale() ?? 'en';\n\treturn lang === 'en' ? defaultLocale : loader(lang);\n}\n\n/** Returns the block under the cursor, handling both TextSelection and NodeSelection. */\nexport function getSelectedBlock(state: EditorState): BlockNode | undefined {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel)) return state.getBlock(sel.nodeId);\n\tif (isTextSelection(sel)) return state.getBlock(sel.anchor.blockId);\n\treturn undefined;\n}\n\n/** Returns the block ID under the cursor, handling both TextSelection and NodeSelection. */\nexport function getSelectedBlockId(state: EditorState): BlockId | undefined {\n\tconst sel = state.selection;\n\tif (isNodeSelection(sel)) return sel.nodeId;\n\tif (isTextSelection(sel)) return sel.anchor.blockId;\n\treturn undefined;\n}\n"],"names":["EventKey","constructor","id","this","ServiceKey","LocaleService","resolvedLocale","locale","navigator","language","split","getLocale","LocaleServiceKey","capitalize","s","charAt","toUpperCase","slice","toCommandName","markType","async","resolveLocale","context","configLocale","defaultLocale","loader","service","getService","lang","getSelectedBlock","state","sel","selection","isNodeSelection","getBlock","nodeId","isTextSelection","anchor","blockId","getSelectedBlockId"],"mappings":"oDA2BO,MAAMA,EAEZ,WAAAC,CAA4BC,GAAAC,KAAAD,GAAAA,CAAa,EAInC,MAAME,EAEZ,WAAAH,CAA4BC,GAAAC,KAAAD,GAAAA,CAAa,EC5BnC,MAAMG,EACKC,eAEjB,WAAAL,CAAYM,GACXJ,KAAKG,eACO,YAAXC,EACwB,oBAAdC,UACLA,UAAUC,SAASC,MAAM,KAAK,IAAM,KACrC,KACDH,CACL,CAEA,SAAAI,GACC,OAAOR,KAAKG,cACb,EAGM,MAAMM,EAAmB,IAAIR,EAA0B,UCXvD,SAASS,EAAWC,GAC1B,OAAOA,EAAEC,OAAO,GAAGC,cAAgBF,EAAEG,MAAM,EAC5C,CAGO,SAASC,EAAcC,GAC7B,MAAO,SAASN,EAAWM,IAC5B,CAMAC,eAAsBC,EACrBC,EACAC,EACAC,EACAC,GAEA,GAAIF,EAAc,OAAOA,EACzB,MAAMG,EAAUJ,EAAQK,WAAWf,GAC7BgB,EAAeF,GAASf,aAAe,KAC7C,MAAgB,OAATiB,EAAgBJ,EAAgBC,EAAOG,EAC/C,CAGO,SAASC,EAAiBC,GAChC,MAAMC,EAAMD,EAAME,UAClB,OAAIC,EAAgBF,GAAaD,EAAMI,SAASH,EAAII,QAChDC,EAAgBL,GAAaD,EAAMI,SAASH,EAAIM,OAAOC,cAA3D,CAED,CAGO,SAASC,EAAmBT,GAClC,MAAMC,EAAMD,EAAME,UAClB,OAAIC,EAAgBF,GAAaA,EAAII,OACjCC,EAAgBL,GAAaA,EAAIM,OAAOC,aAA5C,CAED"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{b as e}from"./Platform-CU6itXZo.mjs";import{S as t}from"./PluginHelpers-CdPR0MuT.mjs";import{a as s,p as o}from"./PopupPositioning-DtvqMSop.mjs";const n=new t("popup");class r{stack=[];referenceNode;constructor(e){this.referenceNode=e}open(e){const t=document.createElement("div");t.className=e.className?`notectl-popup ${e.className}`:"notectl-popup",e.ariaRole&&t.setAttribute("role",e.ariaRole),e.ariaLabel&&t.setAttribute("aria-label",e.ariaLabel);const n={close:e=>this.closeEntry(a,e),getElement:()=>t};e.content(t,e=>this.closeEntry(a,e));const r=e.referenceNode??this.referenceNode;s(t,r);const c=e.anchor instanceof HTMLElement?e.anchor.getBoundingClientRect():e.anchor;o(t,c,{position:e.position??"below-start",isRtl:this.isRtlContext()});const i=e.parent?this.findEntryByHandle(e.parent):null,l=s=>{const o=s.composedPath();if(!o.includes(t)){for(const e of this.stack)if(o.includes(e.element))return;e.anchor instanceof HTMLElement&&o.includes(e.anchor)||this.closeEntry(a)}},a={element:t,config:e,clickOutsideHandler:l,parent:i};return this.stack.push(a),setTimeout(()=>{document.addEventListener("mousedown",l)},0),this.focusFirstItem(t),n}close(){const e=this.stack[this.stack.length-1];e&&this.closeEntry(e)}closeAll(){for(;this.stack.length>0;){const e=this.stack[this.stack.length-1];e&&this.closeEntry(e)}}isOpen(){return this.stack.length>0}destroy(){this.closeAll()}closeEntry(e,t){const s=this.stack.indexOf(e);if(-1!==s){for(;this.stack.length>s+1;){const e=this.stack[this.stack.length-1];e&&this.removeEntry(e)}this.removeEntry(e),void 0!==t&&"restoreFocusTo"in t?t.restoreFocusTo?.focus():e.config.restoreFocusTo&&e.config.restoreFocusTo.focus(),e.config.onClose?.()}}removeEntry(e){const t=this.stack.indexOf(e);-1!==t&&(this.stack.splice(t,1),e.element.remove(),document.removeEventListener("mousedown",e.clickOutsideHandler))}findEntryByHandle(e){const t=e.getElement();return this.stack.find(e=>e.element===t)??null}isRtlContext(){return this.referenceNode instanceof HTMLElement&&e(this.referenceNode)}focusFirstItem(e){requestAnimationFrame(()=>{const t=e.querySelector('[role="menuitem"]')??e.querySelector('[role="option"]')??e.querySelector('[role="gridcell"]')??e.querySelector("input")??e.querySelector("button");t?.focus()})}}export{r as P,n as a};
|
|
2
|
-
//# sourceMappingURL=PopupManager-Du3dYnsJ.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PopupManager-Du3dYnsJ.mjs","sources":["../../src/plugins/shared/PopupManager.ts"],"sourcesContent":["/**\n * Central popup lifecycle manager. Handles creation, positioning,\n * click-outside closing, Escape key, focus restoration, and popup stacking\n * for submenus/nested popups.\n */\n\nimport { isRtlContext } from '../../platform/Platform.js';\nimport { ServiceKey } from '../Plugin.js';\nimport { type PopupPosition, appendToRoot, positionPopup } from './PopupPositioning.js';\n\n// --- Types ---\n\n/** Options for overriding focus restoration when closing a popup. */\nexport interface PopupCloseOptions {\n\t/**\n\t * Override the default focus target on close.\n\t * - `HTMLElement` → focus that element instead of `config.restoreFocusTo`\n\t * - `null` → skip focus restoration entirely\n\t * - `undefined` / omitted → use default `config.restoreFocusTo`\n\t */\n\treadonly restoreFocusTo?: HTMLElement | null;\n}\n\nexport interface PopupConfig {\n\treadonly anchor: HTMLElement | DOMRect;\n\treadonly content: (container: HTMLElement, close: (options?: PopupCloseOptions) => void) => void;\n\treadonly className?: string;\n\treadonly ariaRole?: 'menu' | 'listbox' | 'grid' | 'dialog';\n\treadonly ariaLabel?: string;\n\treadonly restoreFocusTo?: HTMLElement;\n\treadonly onClose?: () => void;\n\treadonly position?: PopupPosition;\n\treadonly parent?: PopupHandle;\n\treadonly referenceNode?: Node;\n}\n\nexport interface PopupHandle {\n\tclose(options?: PopupCloseOptions): void;\n\tgetElement(): HTMLElement;\n}\n\nexport interface PopupServiceAPI {\n\topen(config: PopupConfig): PopupHandle;\n\tclose(): void;\n\tcloseAll(): void;\n\tisOpen(): boolean;\n}\n\nexport const PopupServiceKey = new ServiceKey<PopupServiceAPI>('popup');\n\n// --- Internal Entry ---\n\ninterface PopupEntry {\n\treadonly element: HTMLElement;\n\treadonly config: PopupConfig;\n\treadonly clickOutsideHandler: (e: MouseEvent) => void;\n\treadonly parent: PopupEntry | null;\n}\n\n// --- Manager ---\n\nexport class PopupManager implements PopupServiceAPI {\n\tprivate readonly stack: PopupEntry[] = [];\n\tprivate readonly referenceNode: Node;\n\n\tconstructor(referenceNode: Node) {\n\t\tthis.referenceNode = referenceNode;\n\t}\n\n\t/** Opens a popup with the given configuration. Returns a handle for closing it. */\n\topen(config: PopupConfig): PopupHandle {\n\t\tconst popup: HTMLDivElement = document.createElement('div');\n\t\tpopup.className = config.className ? `notectl-popup ${config.className}` : 'notectl-popup';\n\n\t\tif (config.ariaRole) {\n\t\t\tpopup.setAttribute('role', config.ariaRole);\n\t\t}\n\t\tif (config.ariaLabel) {\n\t\t\tpopup.setAttribute('aria-label', config.ariaLabel);\n\t\t}\n\n\t\tconst handle: PopupHandle = {\n\t\t\tclose: (options?: PopupCloseOptions) => this.closeEntry(entry, options),\n\t\t\tgetElement: () => popup,\n\t\t};\n\n\t\tconfig.content(popup, (options?: PopupCloseOptions) => this.closeEntry(entry, options));\n\n\t\tconst refNode: Node = config.referenceNode ?? this.referenceNode;\n\t\tappendToRoot(popup, refNode);\n\n\t\tconst anchorRect: DOMRect =\n\t\t\tconfig.anchor instanceof HTMLElement ? config.anchor.getBoundingClientRect() : config.anchor;\n\t\tpositionPopup(popup, anchorRect, {\n\t\t\tposition: config.position ?? 'below-start',\n\t\t\tisRtl: this.isRtlContext(),\n\t\t});\n\n\t\tconst parentEntry: PopupEntry | null = config.parent\n\t\t\t? this.findEntryByHandle(config.parent)\n\t\t\t: null;\n\n\t\tconst clickOutsideHandler = (e: MouseEvent): void => {\n\t\t\tconst path: EventTarget[] = e.composedPath();\n\t\t\tif (path.includes(popup)) return;\n\n\t\t\t// Don't close if click is inside any ancestor popup in the stack\n\t\t\tfor (const stackEntry of this.stack) {\n\t\t\t\tif (path.includes(stackEntry.element)) return;\n\t\t\t}\n\n\t\t\t// Don't close if click is on the anchor element\n\t\t\tif (config.anchor instanceof HTMLElement && path.includes(config.anchor)) return;\n\n\t\t\tthis.closeEntry(entry);\n\t\t};\n\n\t\tconst entry: PopupEntry = {\n\t\t\telement: popup,\n\t\t\tconfig,\n\t\t\tclickOutsideHandler,\n\t\t\tparent: parentEntry,\n\t\t};\n\n\t\tthis.stack.push(entry);\n\n\t\tsetTimeout(() => {\n\t\t\tdocument.addEventListener('mousedown', clickOutsideHandler);\n\t\t}, 0);\n\n\t\tthis.focusFirstItem(popup);\n\n\t\treturn handle;\n\t}\n\n\t/** Closes the topmost popup in the stack. */\n\tclose(): void {\n\t\tconst top: PopupEntry | undefined = this.stack[this.stack.length - 1];\n\t\tif (top) {\n\t\t\tthis.closeEntry(top);\n\t\t}\n\t}\n\n\t/** Closes all open popups. */\n\tcloseAll(): void {\n\t\twhile (this.stack.length > 0) {\n\t\t\tconst top: PopupEntry | undefined = this.stack[this.stack.length - 1];\n\t\t\tif (top) {\n\t\t\t\tthis.closeEntry(top);\n\t\t\t}\n\t\t}\n\t}\n\n\t/** Returns true if any popup is currently open. */\n\tisOpen(): boolean {\n\t\treturn this.stack.length > 0;\n\t}\n\n\t/** Cleans up all popups and event listeners. */\n\tdestroy(): void {\n\t\tthis.closeAll();\n\t}\n\n\t// --- Internal ---\n\n\tprivate closeEntry(entry: PopupEntry, options?: PopupCloseOptions): void {\n\t\tconst index: number = this.stack.indexOf(entry);\n\t\tif (index === -1) return;\n\n\t\t// Close all child popups first (anything above this entry in the stack)\n\t\twhile (this.stack.length > index + 1) {\n\t\t\tconst child: PopupEntry | undefined = this.stack[this.stack.length - 1];\n\t\t\tif (child) {\n\t\t\t\tthis.removeEntry(child);\n\t\t\t}\n\t\t}\n\n\t\tthis.removeEntry(entry);\n\n\t\tif (options !== undefined && 'restoreFocusTo' in options) {\n\t\t\toptions.restoreFocusTo?.focus();\n\t\t} else if (entry.config.restoreFocusTo) {\n\t\t\tentry.config.restoreFocusTo.focus();\n\t\t}\n\t\tentry.config.onClose?.();\n\t}\n\n\tprivate removeEntry(entry: PopupEntry): void {\n\t\tconst index: number = this.stack.indexOf(entry);\n\t\tif (index === -1) return;\n\n\t\tthis.stack.splice(index, 1);\n\t\tentry.element.remove();\n\t\tdocument.removeEventListener('mousedown', entry.clickOutsideHandler);\n\t}\n\n\tprivate findEntryByHandle(handle: PopupHandle): PopupEntry | null {\n\t\tconst element: HTMLElement = handle.getElement();\n\t\treturn this.stack.find((e) => e.element === element) ?? null;\n\t}\n\n\t/** Detects whether the editor context is RTL from the computed style. */\n\tprivate isRtlContext(): boolean {\n\t\tif (this.referenceNode instanceof HTMLElement) {\n\t\t\treturn isRtlContext(this.referenceNode);\n\t\t}\n\t\treturn false;\n\t}\n\n\tprivate focusFirstItem(popup: HTMLElement): void {\n\t\trequestAnimationFrame(() => {\n\t\t\tconst firstFocusable: HTMLElement | null =\n\t\t\t\tpopup.querySelector('[role=\"menuitem\"]') ??\n\t\t\t\tpopup.querySelector('[role=\"option\"]') ??\n\t\t\t\tpopup.querySelector('[role=\"gridcell\"]') ??\n\t\t\t\tpopup.querySelector('input') ??\n\t\t\t\tpopup.querySelector('button');\n\t\t\tfirstFocusable?.focus();\n\t\t});\n\t}\n}\n"],"names":["PopupServiceKey","ServiceKey","PopupManager","stack","referenceNode","constructor","this","open","config","popup","document","createElement","className","ariaRole","setAttribute","ariaLabel","handle","close","options","closeEntry","entry","getElement","content","refNode","appendToRoot","anchorRect","anchor","HTMLElement","getBoundingClientRect","positionPopup","position","isRtl","isRtlContext","parentEntry","parent","findEntryByHandle","clickOutsideHandler","e","path","composedPath","includes","stackEntry","element","push","setTimeout","addEventListener","focusFirstItem","top","length","closeAll","isOpen","destroy","index","indexOf","child","removeEntry","restoreFocusTo","focus","onClose","splice","remove","removeEventListener","find","requestAnimationFrame","firstFocusable","querySelector"],"mappings":"wJAgDO,MAAMA,EAAkB,IAAIC,EAA4B,SAaxD,MAAMC,EACKC,MAAsB,GACtBC,cAEjB,WAAAC,CAAYD,GACXE,KAAKF,cAAgBA,CACtB,CAGA,IAAAG,CAAKC,GACJ,MAAMC,EAAwBC,SAASC,cAAc,OACrDF,EAAMG,UAAYJ,EAAOI,UAAY,iBAAiBJ,EAAOI,YAAc,gBAEvEJ,EAAOK,UACVJ,EAAMK,aAAa,OAAQN,EAAOK,UAE/BL,EAAOO,WACVN,EAAMK,aAAa,aAAcN,EAAOO,WAGzC,MAAMC,EAAsB,CAC3BC,MAAQC,GAAgCZ,KAAKa,WAAWC,EAAOF,GAC/DG,WAAY,IAAMZ,GAGnBD,EAAOc,QAAQb,EAAQS,GAAgCZ,KAAKa,WAAWC,EAAOF,IAE9E,MAAMK,EAAgBf,EAAOJ,eAAiBE,KAAKF,cACnDoB,EAAaf,EAAOc,GAEpB,MAAME,EACLjB,EAAOkB,kBAAkBC,YAAcnB,EAAOkB,OAAOE,wBAA0BpB,EAAOkB,OACvFG,EAAcpB,EAAOgB,EAAY,CAChCK,SAAUtB,EAAOsB,UAAY,cAC7BC,MAAOzB,KAAK0B,iBAGb,MAAMC,EAAiCzB,EAAO0B,OAC3C5B,KAAK6B,kBAAkB3B,EAAO0B,QAC9B,KAEGE,EAAuBC,IAC5B,MAAMC,EAAsBD,EAAEE,eAC9B,IAAID,EAAKE,SAAS/B,GAAlB,CAGA,IAAA,MAAWgC,KAAcnC,KAAKH,MAC7B,GAAImC,EAAKE,SAASC,EAAWC,SAAU,OAIpClC,EAAOkB,kBAAkBC,aAAeW,EAAKE,SAAShC,EAAOkB,SAEjEpB,KAAKa,WAAWC,EAVU,GAarBA,EAAoB,CACzBsB,QAASjC,EACTD,SACA4B,sBACAF,OAAQD,GAWT,OARA3B,KAAKH,MAAMwC,KAAKvB,GAEhBwB,WAAW,KACVlC,SAASmC,iBAAiB,YAAaT,IACrC,GAEH9B,KAAKwC,eAAerC,GAEbO,CACR,CAGA,KAAAC,GACC,MAAM8B,EAA8BzC,KAAKH,MAAMG,KAAKH,MAAM6C,OAAS,GAC/DD,GACHzC,KAAKa,WAAW4B,EAElB,CAGA,QAAAE,GACC,KAAO3C,KAAKH,MAAM6C,OAAS,GAAG,CAC7B,MAAMD,EAA8BzC,KAAKH,MAAMG,KAAKH,MAAM6C,OAAS,GAC/DD,GACHzC,KAAKa,WAAW4B,EAElB,CACD,CAGA,MAAAG,GACC,OAAO5C,KAAKH,MAAM6C,OAAS,CAC5B,CAGA,OAAAG,GACC7C,KAAK2C,UACN,CAIQ,UAAA9B,CAAWC,EAAmBF,GACrC,MAAMkC,EAAgB9C,KAAKH,MAAMkD,QAAQjC,GACzC,IAAc,IAAVgC,EAAJ,CAGA,KAAO9C,KAAKH,MAAM6C,OAASI,EAAQ,GAAG,CACrC,MAAME,EAAgChD,KAAKH,MAAMG,KAAKH,MAAM6C,OAAS,GACjEM,GACHhD,KAAKiD,YAAYD,EAEnB,CAEAhD,KAAKiD,YAAYnC,QAED,IAAZF,GAAyB,mBAAoBA,EAChDA,EAAQsC,gBAAgBC,QACdrC,EAAMZ,OAAOgD,gBACvBpC,EAAMZ,OAAOgD,eAAeC,QAE7BrC,EAAMZ,OAAOkD,WAjBK,CAkBnB,CAEQ,WAAAH,CAAYnC,GACnB,MAAMgC,EAAgB9C,KAAKH,MAAMkD,QAAQjC,IAC3B,IAAVgC,IAEJ9C,KAAKH,MAAMwD,OAAOP,EAAO,GACzBhC,EAAMsB,QAAQkB,SACdlD,SAASmD,oBAAoB,YAAazC,EAAMgB,qBACjD,CAEQ,iBAAAD,CAAkBnB,GACzB,MAAM0B,EAAuB1B,EAAOK,aACpC,OAAOf,KAAKH,MAAM2D,KAAMzB,GAAMA,EAAEK,UAAYA,IAAY,IACzD,CAGQ,YAAAV,GACP,OAAI1B,KAAKF,yBAAyBuB,aAC1BK,EAAa1B,KAAKF,cAG3B,CAEQ,cAAA0C,CAAerC,GACtBsD,sBAAsB,KACrB,MAAMC,EACLvD,EAAMwD,cAAc,sBACpBxD,EAAMwD,cAAc,oBACpBxD,EAAMwD,cAAc,sBACpBxD,EAAMwD,cAAc,UACpBxD,EAAMwD,cAAc,UACrBD,GAAgBP,SAElB"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{s as t}from"./StyleRuntime-BmsLoEa8.mjs";function e(e,o,i){const p=i.offset??2,l=window.innerWidth,s=window.innerHeight;t(e,{position:"fixed",zIndex:"10000"});const f=e.offsetWidth,n=e.offsetHeight,a={};switch(i.position){case"below-start":{let t=o.bottom+p;if(i.isRtl){let e=l-o.right;e+f>l-4&&(e=l-f-4),t+n>s-4&&(t=o.top-n-p),e<4&&(e=4),t<4&&(t=4),a.top=`${t}px`,a.right=`${e}px`,a.left="auto"}else{let e=o.left;e+f>l-4&&(e=l-f-4),t+n>s-4&&(t=o.top-n-p),e<4&&(e=4),t<4&&(t=4),a.top=`${t}px`,a.left=`${e}px`,a.right="auto"}break}case"below-end":{let t=o.bottom+p;if(i.isRtl){let e=o.left;e+f>l-4&&(e=l-f-4),t+n>s-4&&(t=o.top-n-p),e<4&&(e=4),t<4&&(t=4),a.top=`${t}px`,a.left=`${e}px`,a.right="auto"}else{let e=l-o.right;e+f>l-4&&(e=l-f-4),t+n>s-4&&(t=o.top-n-p),e<4&&(e=4),t<4&&(t=4),a.top=`${t}px`,a.right=`${e}px`,a.left="auto"}break}case"right":{let t=o.top;if(i.isRtl){let e=o.left-f-p;e<4&&(e=o.right+p),t+n>s-4&&(t=s-n-4),e<4&&(e=4),t<4&&(t=4),a.top=`${t}px`,a.left=`${e}px`,a.right="auto"}else{let e=o.right+p;e+f>l-4&&(e=o.left-f-p),t+n>s-4&&(t=s-n-4),e<4&&(e=4),t<4&&(t=4),a.top=`${t}px`,a.left=`${e}px`,a.right="auto"}break}}t(e,a)}function o(t,e){const o=e.getRootNode();o instanceof ShadowRoot?o.appendChild(t):document.body.appendChild(t)}export{o as a,e as p};
|
|
2
|
-
//# sourceMappingURL=PopupPositioning-DtvqMSop.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PopupPositioning-DtvqMSop.mjs","sources":["../../src/plugins/shared/PopupPositioning.ts"],"sourcesContent":["/**\n * Shared popup positioning logic. Positions a popup element relative to an\n * anchor rectangle, clamping to the viewport. Also provides a shadow DOM-aware\n * append helper.\n */\n\nimport { setStyleProperties } from '../../style/StyleRuntime.js';\n\n// --- Types ---\n\nexport type PopupPosition = 'below-start' | 'below-end' | 'right';\n\nexport interface PositionOptions {\n\treadonly position: PopupPosition;\n\treadonly offset?: number;\n\treadonly isRtl?: boolean;\n}\n\n// --- Constants ---\n\nconst DEFAULT_OFFSET = 2;\nconst Z_INDEX = '10000';\nconst POPUP_MIN_MARGIN = 4;\n\n// --- Positioning ---\n\n/**\n * Positions a popup element relative to the given anchor rectangle.\n * Uses fixed positioning and clamps to the viewport edges.\n */\nexport function positionPopup(popup: HTMLElement, anchor: DOMRect, options: PositionOptions): void {\n\tconst offset: number = options.offset ?? DEFAULT_OFFSET;\n\tconst vpWidth: number = window.innerWidth;\n\tconst vpHeight: number = window.innerHeight;\n\n\t// Apply fixed positioning first so offsetWidth/offsetHeight reflect\n\t// shrink-to-fit sizing rather than normal-flow block width.\n\tsetStyleProperties(popup, { position: 'fixed', zIndex: Z_INDEX });\n\n\tconst popupWidth: number = popup.offsetWidth;\n\tconst popupHeight: number = popup.offsetHeight;\n\n\tconst styles: Record<string, string> = {};\n\n\tswitch (options.position) {\n\t\tcase 'below-start': {\n\t\t\tlet top: number = anchor.bottom + offset;\n\n\t\t\tif (options.isRtl) {\n\t\t\t\t// RTL: anchor to physical right edge (visual start)\n\t\t\t\tlet right: number = vpWidth - anchor.right;\n\t\t\t\tif (right + popupWidth > vpWidth - POPUP_MIN_MARGIN) {\n\t\t\t\t\tright = vpWidth - popupWidth - POPUP_MIN_MARGIN;\n\t\t\t\t}\n\t\t\t\tif (top + popupHeight > vpHeight - POPUP_MIN_MARGIN) {\n\t\t\t\t\ttop = anchor.top - popupHeight - offset;\n\t\t\t\t}\n\t\t\t\tif (right < POPUP_MIN_MARGIN) right = POPUP_MIN_MARGIN;\n\t\t\t\tif (top < POPUP_MIN_MARGIN) top = POPUP_MIN_MARGIN;\n\t\t\t\tstyles.top = `${top}px`;\n\t\t\t\tstyles.right = `${right}px`;\n\t\t\t\tstyles.left = 'auto';\n\t\t\t} else {\n\t\t\t\tlet left: number = anchor.left;\n\t\t\t\tif (left + popupWidth > vpWidth - POPUP_MIN_MARGIN) {\n\t\t\t\t\tleft = vpWidth - popupWidth - POPUP_MIN_MARGIN;\n\t\t\t\t}\n\t\t\t\tif (top + popupHeight > vpHeight - POPUP_MIN_MARGIN) {\n\t\t\t\t\ttop = anchor.top - popupHeight - offset;\n\t\t\t\t}\n\t\t\t\tif (left < POPUP_MIN_MARGIN) left = POPUP_MIN_MARGIN;\n\t\t\t\tif (top < POPUP_MIN_MARGIN) top = POPUP_MIN_MARGIN;\n\t\t\t\tstyles.top = `${top}px`;\n\t\t\t\tstyles.left = `${left}px`;\n\t\t\t\tstyles.right = 'auto';\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase 'below-end': {\n\t\t\tlet top: number = anchor.bottom + offset;\n\n\t\t\tif (options.isRtl) {\n\t\t\t\t// RTL: \"end\" = physical left edge\n\t\t\t\tlet left: number = anchor.left;\n\t\t\t\tif (left + popupWidth > vpWidth - POPUP_MIN_MARGIN) {\n\t\t\t\t\tleft = vpWidth - popupWidth - POPUP_MIN_MARGIN;\n\t\t\t\t}\n\t\t\t\tif (top + popupHeight > vpHeight - POPUP_MIN_MARGIN) {\n\t\t\t\t\ttop = anchor.top - popupHeight - offset;\n\t\t\t\t}\n\t\t\t\tif (left < POPUP_MIN_MARGIN) left = POPUP_MIN_MARGIN;\n\t\t\t\tif (top < POPUP_MIN_MARGIN) top = POPUP_MIN_MARGIN;\n\t\t\t\tstyles.top = `${top}px`;\n\t\t\t\tstyles.left = `${left}px`;\n\t\t\t\tstyles.right = 'auto';\n\t\t\t} else {\n\t\t\t\t// LTR: \"end\" = physical right edge\n\t\t\t\tlet right: number = vpWidth - anchor.right;\n\t\t\t\tif (right + popupWidth > vpWidth - POPUP_MIN_MARGIN) {\n\t\t\t\t\tright = vpWidth - popupWidth - POPUP_MIN_MARGIN;\n\t\t\t\t}\n\t\t\t\tif (top + popupHeight > vpHeight - POPUP_MIN_MARGIN) {\n\t\t\t\t\ttop = anchor.top - popupHeight - offset;\n\t\t\t\t}\n\t\t\t\tif (right < POPUP_MIN_MARGIN) right = POPUP_MIN_MARGIN;\n\t\t\t\tif (top < POPUP_MIN_MARGIN) top = POPUP_MIN_MARGIN;\n\t\t\t\tstyles.top = `${top}px`;\n\t\t\t\tstyles.right = `${right}px`;\n\t\t\t\tstyles.left = 'auto';\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase 'right': {\n\t\t\tlet top: number = anchor.top;\n\n\t\t\tif (options.isRtl) {\n\t\t\t\t// RTL: open submenu to the physical left\n\t\t\t\tlet left: number = anchor.left - popupWidth - offset;\n\t\t\t\tif (left < POPUP_MIN_MARGIN) {\n\t\t\t\t\tleft = anchor.right + offset;\n\t\t\t\t}\n\t\t\t\tif (top + popupHeight > vpHeight - POPUP_MIN_MARGIN) {\n\t\t\t\t\ttop = vpHeight - popupHeight - POPUP_MIN_MARGIN;\n\t\t\t\t}\n\t\t\t\tif (left < POPUP_MIN_MARGIN) left = POPUP_MIN_MARGIN;\n\t\t\t\tif (top < POPUP_MIN_MARGIN) top = POPUP_MIN_MARGIN;\n\t\t\t\tstyles.top = `${top}px`;\n\t\t\t\tstyles.left = `${left}px`;\n\t\t\t\tstyles.right = 'auto';\n\t\t\t} else {\n\t\t\t\tlet left: number = anchor.right + offset;\n\t\t\t\tif (left + popupWidth > vpWidth - POPUP_MIN_MARGIN) {\n\t\t\t\t\tleft = anchor.left - popupWidth - offset;\n\t\t\t\t}\n\t\t\t\tif (top + popupHeight > vpHeight - POPUP_MIN_MARGIN) {\n\t\t\t\t\ttop = vpHeight - popupHeight - POPUP_MIN_MARGIN;\n\t\t\t\t}\n\t\t\t\tif (left < POPUP_MIN_MARGIN) left = POPUP_MIN_MARGIN;\n\t\t\t\tif (top < POPUP_MIN_MARGIN) top = POPUP_MIN_MARGIN;\n\t\t\t\tstyles.top = `${top}px`;\n\t\t\t\tstyles.left = `${left}px`;\n\t\t\t\tstyles.right = 'auto';\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tsetStyleProperties(popup, styles);\n}\n\n/**\n * Appends an element to the appropriate root: the shadow root if the\n * reference node lives inside one, otherwise `document.body`.\n */\nexport function appendToRoot(element: HTMLElement, referenceNode: Node): void {\n\tconst root: Node = referenceNode.getRootNode();\n\tif (root instanceof ShadowRoot) {\n\t\troot.appendChild(element);\n\t} else {\n\t\tdocument.body.appendChild(element);\n\t}\n}\n"],"names":["positionPopup","popup","anchor","options","offset","vpWidth","window","innerWidth","vpHeight","innerHeight","setStyleProperties","position","zIndex","popupWidth","offsetWidth","popupHeight","offsetHeight","styles","top","bottom","isRtl","right","left","appendToRoot","element","referenceNode","root","getRootNode","ShadowRoot","appendChild","document","body"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{E as t,S as e}from"./PluginHelpers-CdPR0MuT.mjs";const n=96/25.4,i={DINA4:"din-a4",DINA5:"din-a5",USLetter:"us-letter",USLegal:"us-legal"};function r(t){return Math.round(t*n)}const a=/* @__PURE__ */new Map([[i.DINA4,{widthMm:210,heightMm:297,widthPx:r(210),heightPx:r(297)}],[i.DINA5,{widthMm:148,heightMm:210,widthPx:r(148),heightPx:r(210)}],[i.USLetter,{widthMm:215.9,heightMm:279.4,widthPx:r(215.9),heightPx:r(279.4)}],[i.USLegal,{widthMm:215.9,heightMm:355.6,widthPx:r(215.9),heightPx:r(355.6)}]]),h=/* @__PURE__ */new Map([[i.DINA4,"A4"],[i.DINA5,"A5"],[i.USLetter,"letter"],[i.USLegal,"legal"]]);function s(t){const e=a.get(t);if(!e)throw new Error(`Unknown paper size: ${t}`);return e}const o=48,w=56,g=24;function u(t){return Object.values(i).includes(t)}function c(t){const e=h.get(t);if(!e)throw new Error(`Unknown paper size: ${t}`);return e}const d=new e("print"),l=new t("print:before"),p=new t("print:after");export{p as A,l as B,w as P,o as a,g as b,i as c,s as d,d as e,c as g,u as i};
|
|
2
|
-
//# sourceMappingURL=PrintTypes-DukwDSWS.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PrintTypes-DukwDSWS.mjs","sources":["../../src/model/PaperSize.ts","../../src/plugins/print/PrintTypes.ts"],"sourcesContent":["/**\n * Paper size definitions and dimension helpers.\n * Used by PaperLayoutController for WYSIWYG page layout\n * and by PrintStyleCollector for @page CSS rules.\n */\n\n/** Conversion factor: 1mm = 96/25.4 px at CSS reference pixel (96 DPI). */\nconst MM_TO_PX: number = 96 / 25.4;\n\n/** Physical dimensions of a paper size. */\nexport interface PaperDimensions {\n\treadonly widthMm: number;\n\treadonly heightMm: number;\n\treadonly widthPx: number;\n\treadonly heightPx: number;\n}\n\n/** Available paper size presets. */\nexport const PaperSize = {\n\tDINA4: 'din-a4',\n\tDINA5: 'din-a5',\n\tUSLetter: 'us-letter',\n\tUSLegal: 'us-legal',\n} as const;\nexport type PaperSize = (typeof PaperSize)[keyof typeof PaperSize];\n\n/** Rounds to nearest integer for pixel dimensions. */\nfunction mmToPx(mm: number): number {\n\treturn Math.round(mm * MM_TO_PX);\n}\n\n/** Lookup table for paper dimensions. */\nconst PAPER_DIMENSIONS: ReadonlyMap<PaperSize, PaperDimensions> = new Map<\n\tPaperSize,\n\tPaperDimensions\n>([\n\t[PaperSize.DINA4, { widthMm: 210, heightMm: 297, widthPx: mmToPx(210), heightPx: mmToPx(297) }],\n\t[PaperSize.DINA5, { widthMm: 148, heightMm: 210, widthPx: mmToPx(148), heightPx: mmToPx(210) }],\n\t[\n\t\tPaperSize.USLetter,\n\t\t{ widthMm: 215.9, heightMm: 279.4, widthPx: mmToPx(215.9), heightPx: mmToPx(279.4) },\n\t],\n\t[\n\t\tPaperSize.USLegal,\n\t\t{ widthMm: 215.9, heightMm: 355.6, widthPx: mmToPx(215.9), heightPx: mmToPx(355.6) },\n\t],\n]);\n\n/** CSS @page size keywords for each paper size. */\nconst CSS_SIZE_KEYWORDS: ReadonlyMap<PaperSize, string> = new Map<PaperSize, string>([\n\t[PaperSize.DINA4, 'A4'],\n\t[PaperSize.DINA5, 'A5'],\n\t[PaperSize.USLetter, 'letter'],\n\t[PaperSize.USLegal, 'legal'],\n]);\n\n/** Returns the physical and pixel dimensions for a paper size. */\nexport function getPaperDimensions(size: PaperSize): PaperDimensions {\n\tconst dims: PaperDimensions | undefined = PAPER_DIMENSIONS.get(size);\n\tif (!dims) {\n\t\tthrow new Error(`Unknown paper size: ${size}`);\n\t}\n\treturn dims;\n}\n\n/**\n * Document margin constants for paper mode (in px).\n * These define the content padding inside the paper surface in the editor,\n * and become @page margins in print output to ensure WYSIWYG fidelity.\n */\nexport const PAPER_MARGIN_TOP_PX: number = 48;\nexport const PAPER_MARGIN_HORIZONTAL_PX: number = 56;\nexport const PAPER_VIEWPORT_PADDING_PX: number = 24;\n\n/** Type guard: returns true if the value is a valid PaperSize string. */\nexport function isValidPaperSize(value: string): value is PaperSize {\n\treturn (Object.values(PaperSize) as string[]).includes(value);\n}\n\n/** Returns the CSS @page size keyword (e.g. 'A4', 'letter') for a paper size. */\nexport function getPaperCSSSize(size: PaperSize): string {\n\tconst keyword: string | undefined = CSS_SIZE_KEYWORDS.get(size);\n\tif (!keyword) {\n\t\tthrow new Error(`Unknown paper size: ${size}`);\n\t}\n\treturn keyword;\n}\n","/**\n * Type definitions, service keys, and event keys for the PrintPlugin.\n */\n\nimport type { PaperSize } from '../../model/PaperSize.js';\nimport type { NodeTypeName } from '../../model/TypeBrands.js';\nimport { EventKey, ServiceKey } from '../Plugin.js';\n\n// --- Print Options ---\n\nexport interface PrintOptions {\n\t/** Page title shown in the browser print header. */\n\treadonly title?: string;\n\n\t/** Additional CSS appended to the print stylesheet. */\n\treadonly customCSS?: string;\n\n\t/**\n\t * Header HTML inserted once at the top of the print document.\n\t * For repeating per-page headers, use toHTML() with server-side PDF generation.\n\t */\n\treadonly header?: string | (() => string);\n\n\t/**\n\t * Footer HTML inserted once at the bottom of the print document.\n\t * For repeating per-page footers, use toHTML() with server-side PDF generation.\n\t */\n\treadonly footer?: string | (() => string);\n\n\t/** Page margins as CSS value (e.g. '2cm'). */\n\treadonly margin?: string;\n\n\t/** Force page break before these block types. */\n\treadonly pageBreakBefore?: readonly NodeTypeName[];\n\n\t/** Exclude these block types from print output. */\n\treadonly excludeBlockTypes?: readonly NodeTypeName[];\n\n\t/**\n\t * Whether to preserve background colors and images in print output.\n\t * Defaults to `true` (WYSIWYG). Set to `false` to let the browser strip\n\t * backgrounds (e.g. to save ink).\n\t */\n\treadonly printBackground?: boolean;\n\n\t/** Page orientation. */\n\treadonly orientation?: 'portrait' | 'landscape';\n\n\t/** Paper size for @page CSS rule. When set, overrides the default A4 page size. */\n\treadonly paperSize?: PaperSize;\n}\n\n// --- Plugin Configuration ---\n\nexport interface PrintPluginConfig {\n\t/** Default options applied to every print() call. */\n\treadonly defaults?: PrintOptions;\n\n\t/** Keyboard shortcut (default: 'Mod-P'). */\n\treadonly keyBinding?: string;\n\n\t/** Show toolbar button (default: true). */\n\treadonly showToolbarItem?: boolean;\n\n\t/** Locale override for user-facing strings. */\n\treadonly locale?: import('./PrintLocale.js').PrintLocale;\n}\n\n// --- Service Interface ---\n\nexport interface PrintService {\n\t/** Prints the editor content with optional configuration. */\n\tprint(options?: PrintOptions): void;\n\n\t/** Generates print-ready HTML as a complete document string. */\n\ttoHTML(options?: PrintOptions): string;\n}\n\n// --- Service & Event Keys ---\n\nexport const PRINT_SERVICE_KEY: ServiceKey<PrintService> = new ServiceKey<PrintService>('print');\n\nexport const BEFORE_PRINT: EventKey<BeforePrintEvent> = new EventKey<BeforePrintEvent>(\n\t'print:before',\n);\n\nexport const AFTER_PRINT: EventKey<AfterPrintEvent> = new EventKey<AfterPrintEvent>('print:after');\n\n// --- Event Payloads ---\n\nexport interface BeforePrintEvent {\n\t/** Options can be mutated — EventBus passes by reference. */\n\toptions: PrintOptions;\n\t/** Set to true to cancel the print. */\n\tcancelled: boolean;\n}\n\nexport interface AfterPrintEvent {\n\t/** The generated HTML (read-only). */\n\treadonly html: string;\n}\n"],"names":["MM_TO_PX","PaperSize","DINA4","DINA5","USLetter","USLegal","mmToPx","mm","Math","round","PAPER_DIMENSIONS","Map","widthMm","heightMm","widthPx","heightPx","CSS_SIZE_KEYWORDS","getPaperDimensions","size","dims","get","Error","PAPER_MARGIN_TOP_PX","PAPER_MARGIN_HORIZONTAL_PX","PAPER_VIEWPORT_PADDING_PX","isValidPaperSize","value","Object","values","includes","getPaperCSSSize","keyword","PRINT_SERVICE_KEY","ServiceKey","BEFORE_PRINT","EventKey","AFTER_PRINT"],"mappings":"wDAOA,MAAMA,EAAmB,GAAK,KAWjBC,EAAY,CACxBC,MAAO,SACPC,MAAO,SACPC,SAAU,YACVC,QAAS,YAKV,SAASC,EAAOC,GACf,OAAOC,KAAKC,MAAMF,EAAKP,EACxB,CAGA,MAAMU,qBAAgEC,IAGpE,CACD,CAACV,EAAUC,MAAO,CAAEU,QAAS,IAAKC,SAAU,IAAKC,QAASR,EAAO,KAAMS,SAAUT,EAAO,OACxF,CAACL,EAAUE,MAAO,CAAES,QAAS,IAAKC,SAAU,IAAKC,QAASR,EAAO,KAAMS,SAAUT,EAAO,OACxF,CACCL,EAAUG,SACV,CAAEQ,QAAS,MAAOC,SAAU,MAAOC,QAASR,EAAO,OAAQS,SAAUT,EAAO,SAE7E,CACCL,EAAUI,QACV,CAAEO,QAAS,MAAOC,SAAU,MAAOC,QAASR,EAAO,OAAQS,SAAUT,EAAO,WAKxEU,qBAAwDL,IAAuB,CACpF,CAACV,EAAUC,MAAO,MAClB,CAACD,EAAUE,MAAO,MAClB,CAACF,EAAUG,SAAU,UACrB,CAACH,EAAUI,QAAS,WAId,SAASY,EAAmBC,GAClC,MAAMC,EAAoCT,EAAiBU,IAAIF,GAC/D,IAAKC,EACJ,MAAM,IAAIE,MAAM,uBAAuBH,KAExC,OAAOC,CACR,CAOO,MAAMG,EAA8B,GAC9BC,EAAqC,GACrCC,EAAoC,GAG1C,SAASC,EAAiBC,GAChC,OAAQC,OAAOC,OAAO3B,GAAwB4B,SAASH,EACxD,CAGO,SAASI,EAAgBZ,GAC/B,MAAMa,EAA8Bf,EAAkBI,IAAIF,GAC1D,IAAKa,EACJ,MAAM,IAAIV,MAAM,uBAAuBH,KAExC,OAAOa,CACR,CCNO,MAAMC,EAA8C,IAAIC,EAAyB,SAE3EC,EAA2C,IAAIC,EAC3D,gBAGYC,EAAyC,IAAID,EAA0B"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{f as o}from"./Document-HC8s50qJ.mjs";function t(t,f,n){const c=t.getBlockOrder(),e=c.indexOf(f.from.blockId),s=c.indexOf(f.to.blockId);for(let i=e;i<=s;i++){const r=c[i];if(!r)continue;const m=t.getBlock(r);if(!m)continue;const d=i===e?f.from.offset:0,l=i===s?f.to.offset:o(m);d!==l&&n(r,d,l)}}export{t as f};
|
|
2
|
-
//# sourceMappingURL=RangeIterator-CprUbOWv.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RangeIterator-CprUbOWv.mjs","sources":["../../src/commands/RangeIterator.ts"],"sourcesContent":["/**\n * Utility for iterating over blocks within a selection range.\n *\n * Extracted from Commands.ts to break circular dependencies:\n * Commands.ts re-exports from MarkCommands.ts / AttributedMarkCommands.ts,\n * which in turn import forEachBlockInRange from Commands.ts.\n */\n\nimport { getBlockLength } from '../model/Document.js';\nimport type { SelectionRange } from '../model/Selection.js';\nimport type { BlockId } from '../model/TypeBrands.js';\nimport type { EditorState } from '../state/EditorState.js';\n\n/**\n * Iterates over each block in the given selection range, invoking the callback\n * with the block ID, per-block start offset, and per-block end offset.\n * Blocks where `from === to` are skipped automatically.\n */\nexport function forEachBlockInRange(\n\tstate: EditorState,\n\trange: SelectionRange,\n\tcallback: (blockId: BlockId, from: number, to: number) => void,\n): void {\n\tconst blockOrder: readonly BlockId[] = state.getBlockOrder();\n\tconst fromIdx: number = blockOrder.indexOf(range.from.blockId);\n\tconst toIdx: number = blockOrder.indexOf(range.to.blockId);\n\n\tfor (let i: number = fromIdx; i <= toIdx; i++) {\n\t\tconst blockId: BlockId | undefined = blockOrder[i];\n\t\tif (!blockId) continue;\n\t\tconst block = state.getBlock(blockId);\n\t\tif (!block) continue;\n\n\t\tconst from: number = i === fromIdx ? range.from.offset : 0;\n\t\tconst to: number = i === toIdx ? range.to.offset : getBlockLength(block);\n\n\t\tif (from === to) continue;\n\t\tcallback(blockId, from, to);\n\t}\n}\n"],"names":["forEachBlockInRange","state","range","callback","blockOrder","getBlockOrder","fromIdx","indexOf","from","blockId","toIdx","to","i","block","getBlock","offset","getBlockLength"],"mappings":"4CAkBO,SAASA,EACfC,EACAC,EACAC,GAEA,MAAMC,EAAiCH,EAAMI,gBACvCC,EAAkBF,EAAWG,QAAQL,EAAMM,KAAKC,SAChDC,EAAgBN,EAAWG,QAAQL,EAAMS,GAAGF,SAElD,IAAA,IAASG,EAAYN,EAASM,GAAKF,EAAOE,IAAK,CAC9C,MAAMH,EAA+BL,EAAWQ,GAChD,IAAKH,EAAS,SACd,MAAMI,EAAQZ,EAAMa,SAASL,GAC7B,IAAKI,EAAO,SAEZ,MAAML,EAAeI,IAAMN,EAAUJ,EAAMM,KAAKO,OAAS,EACnDJ,EAAaC,IAAMF,EAAQR,EAAMS,GAAGI,OAASC,EAAeH,GAE9DL,IAASG,GACbR,EAASM,EAASD,EAAMG,EACzB,CACD"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function o(o,n){return{type:"node",nodeId:o,path:n}}function n(o,n,e){return{type:"gap",side:n,blockId:o,path:e}}function e(o){return"type"in o&&"node"===o.type}function t(o){return"type"in o&&"gap"===o.type}function a(o){return!("type"in o)}function c(o,n){return e(o)&&e(n)?o.nodeId===n.nodeId:t(o)&&t(n)?o.blockId===n.blockId&&o.side===n.side:!(!a(o)||!a(n))&&o.anchor.blockId===n.anchor.blockId&&o.anchor.offset===n.anchor.offset&&o.head.blockId===n.head.blockId&&o.head.offset===n.head.offset}function d(o,n,e){return e?{blockId:o,offset:n,path:e}:{blockId:o,offset:n}}function r(o,n){return{anchor:o,head:n}}function f(o,n){const e={blockId:o,offset:n};return{anchor:e,head:e}}function h(o){return!!a(o)&&o.anchor.blockId===o.head.blockId&&o.anchor.offset===o.head.offset}function s(o,n){return!a(o)||(o.anchor.blockId===o.head.blockId?o.anchor.offset<=o.head.offset:!n||n.indexOf(o.anchor.blockId)<=n.indexOf(o.head.blockId))}function u(o,n){return s(o,n)?{from:o.anchor,to:o.head}:{from:o.head,to:o.anchor}}export{n as a,o as b,f as c,d,r as e,s as f,t as g,e as h,h as i,a as j,c as k,u as s};
|
|
2
|
-
//# sourceMappingURL=Selection-DhbizDM4.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Selection-DhbizDM4.mjs","sources":["../../src/model/Selection.ts"],"sourcesContent":["/**\n * Selection model for the Notectl editor.\n * A selection is defined by an anchor and head position within the document.\n */\n\nimport type { BlockId } from './TypeBrands.js';\n\nexport interface Position {\n\treadonly blockId: BlockId;\n\treadonly offset: number;\n\t/** Path from root block to leaf block (optional, for nested structures). */\n\treadonly path?: readonly BlockId[];\n}\n\nexport interface Selection {\n\treadonly anchor: Position;\n\treadonly head: Position;\n}\n\nexport interface SelectionRange {\n\treadonly from: Position;\n\treadonly to: Position;\n}\n\n/** A selection that selects an entire node (e.g. void blocks, table selection). */\nexport interface NodeSelection {\n\treadonly type: 'node';\n\treadonly nodeId: BlockId;\n\treadonly path: readonly BlockId[];\n}\n\n/** A virtual cursor at the boundary of a void block where no native caret can exist. */\nexport interface GapCursorSelection {\n\treadonly type: 'gap';\n\treadonly side: 'before' | 'after';\n\treadonly blockId: BlockId;\n\treadonly path: readonly BlockId[];\n}\n\n/** Union type representing a text selection, node selection, or gap cursor. */\nexport type EditorSelection = Selection | NodeSelection | GapCursorSelection;\n\n/** Creates a NodeSelection for the given block. */\nexport function createNodeSelection(nodeId: BlockId, path: readonly BlockId[]): NodeSelection {\n\treturn { type: 'node', nodeId, path };\n}\n\n/** Creates a GapCursorSelection at the boundary of a void block. */\nexport function createGapCursor(\n\tblockId: BlockId,\n\tside: 'before' | 'after',\n\tpath: readonly BlockId[],\n): GapCursorSelection {\n\treturn { type: 'gap', side, blockId, path };\n}\n\n/** Type guard: returns true if the selection is a NodeSelection. */\nexport function isNodeSelection(sel: EditorSelection): sel is NodeSelection {\n\treturn 'type' in sel && sel.type === 'node';\n}\n\n/** Type guard: returns true if the selection is a GapCursorSelection. */\nexport function isGapCursor(sel: EditorSelection): sel is GapCursorSelection {\n\treturn 'type' in sel && sel.type === 'gap';\n}\n\n/** Type guard: returns true if the selection is a text Selection. */\nexport function isTextSelection(sel: EditorSelection): sel is Selection {\n\treturn !('type' in sel);\n}\n\n/** Compares two EditorSelections for equality. */\nexport function selectionsEqual(a: EditorSelection, b: EditorSelection): boolean {\n\tif (isNodeSelection(a) && isNodeSelection(b)) {\n\t\treturn a.nodeId === b.nodeId;\n\t}\n\tif (isGapCursor(a) && isGapCursor(b)) {\n\t\treturn a.blockId === b.blockId && a.side === b.side;\n\t}\n\tif (isTextSelection(a) && isTextSelection(b)) {\n\t\treturn (\n\t\t\ta.anchor.blockId === b.anchor.blockId &&\n\t\t\ta.anchor.offset === b.anchor.offset &&\n\t\t\ta.head.blockId === b.head.blockId &&\n\t\t\ta.head.offset === b.head.offset\n\t\t);\n\t}\n\treturn false;\n}\n\n/** Creates a Position, optionally with a path. */\nexport function createPosition(\n\tblockId: BlockId,\n\toffset: number,\n\tpath?: readonly BlockId[],\n): Position {\n\treturn path ? { blockId, offset, path } : { blockId, offset };\n}\n\n/** Creates a selection with distinct anchor and head. */\nexport function createSelection(anchor: Position, head: Position): Selection {\n\treturn { anchor, head };\n}\n\n/** Creates a collapsed selection (cursor) at the given position. */\nexport function createCollapsedSelection(blockId: BlockId, offset: number): Selection {\n\tconst pos: Position = { blockId, offset };\n\treturn { anchor: pos, head: pos };\n}\n\n/** Returns true if the selection is collapsed (cursor with no range). NodeSelection and GapCursor are never collapsed. */\nexport function isCollapsed(sel: EditorSelection): boolean {\n\tif (!isTextSelection(sel)) return false;\n\treturn sel.anchor.blockId === sel.head.blockId && sel.anchor.offset === sel.head.offset;\n}\n\n/**\n * Returns true if the selection direction is forward (anchor before head).\n * When anchor and head are in the same block, compares offsets.\n * Cross-block ordering uses document order (not determinable here — caller provides block order).\n * For NodeSelection, always returns true.\n */\nexport function isForward(sel: EditorSelection, blockOrder?: readonly BlockId[]): boolean {\n\tif (!isTextSelection(sel)) return true;\n\tif (sel.anchor.blockId === sel.head.blockId) {\n\t\treturn sel.anchor.offset <= sel.head.offset;\n\t}\n\tif (blockOrder) {\n\t\tconst anchorIdx = blockOrder.indexOf(sel.anchor.blockId);\n\t\tconst headIdx = blockOrder.indexOf(sel.head.blockId);\n\t\treturn anchorIdx <= headIdx;\n\t}\n\treturn true;\n}\n\n/**\n * Returns a normalized range where `from` is always before `to`.\n * Throws for NodeSelection — use isNodeSelection() guard first.\n */\nexport function selectionRange(sel: Selection, blockOrder?: readonly BlockId[]): SelectionRange {\n\tif (isForward(sel, blockOrder)) {\n\t\treturn { from: sel.anchor, to: sel.head };\n\t}\n\treturn { from: sel.head, to: sel.anchor };\n}\n"],"names":["createNodeSelection","nodeId","path","type","createGapCursor","blockId","side","isNodeSelection","sel","isGapCursor","isTextSelection","selectionsEqual","a","b","anchor","offset","head","createPosition","createSelection","createCollapsedSelection","pos","isCollapsed","isForward","blockOrder","indexOf","selectionRange","from","to"],"mappings":"AA2CO,SAASA,EAAoBC,EAAiBC,GACpD,MAAO,CAAEC,KAAM,OAAQF,SAAQC,OAChC,CAGO,SAASE,EACfC,EACAC,EACAJ,GAEA,MAAO,CAAEC,KAAM,MAAOG,OAAMD,UAASH,OACtC,CAGO,SAASK,EAAgBC,GAC/B,MAAO,SAAUA,GAAoB,SAAbA,EAAIL,IAC7B,CAGO,SAASM,EAAYD,GAC3B,MAAO,SAAUA,GAAoB,QAAbA,EAAIL,IAC7B,CAGO,SAASO,EAAgBF,GAC/B,QAAS,SAAUA,EACpB,CAGO,SAASG,EAAgBC,EAAoBC,GACnD,OAAIN,EAAgBK,IAAML,EAAgBM,GAClCD,EAAEX,SAAWY,EAAEZ,OAEnBQ,EAAYG,IAAMH,EAAYI,GAC1BD,EAAEP,UAAYQ,EAAER,SAAWO,EAAEN,OAASO,EAAEP,QAE5CI,EAAgBE,KAAMF,EAAgBG,KAExCD,EAAEE,OAAOT,UAAYQ,EAAEC,OAAOT,SAC9BO,EAAEE,OAAOC,SAAWF,EAAEC,OAAOC,QAC7BH,EAAEI,KAAKX,UAAYQ,EAAEG,KAAKX,SAC1BO,EAAEI,KAAKD,SAAWF,EAAEG,KAAKD,MAI5B,CAGO,SAASE,EACfZ,EACAU,EACAb,GAEA,OAAOA,EAAO,CAAEG,UAASU,SAAQb,QAAS,CAAEG,UAASU,SACtD,CAGO,SAASG,EAAgBJ,EAAkBE,GACjD,MAAO,CAAEF,SAAQE,OAClB,CAGO,SAASG,EAAyBd,EAAkBU,GAC1D,MAAMK,EAAgB,CAAEf,UAASU,UACjC,MAAO,CAAED,OAAQM,EAAKJ,KAAMI,EAC7B,CAGO,SAASC,EAAYb,GAC3B,QAAKE,EAAgBF,IACdA,EAAIM,OAAOT,UAAYG,EAAIQ,KAAKX,SAAWG,EAAIM,OAAOC,SAAWP,EAAIQ,KAAKD,MAClF,CAQO,SAASO,EAAUd,EAAsBe,GAC/C,OAAKb,EAAgBF,KACjBA,EAAIM,OAAOT,UAAYG,EAAIQ,KAAKX,QAC5BG,EAAIM,OAAOC,QAAUP,EAAIQ,KAAKD,QAElCQ,GACeA,EAAWC,QAAQhB,EAAIM,OAAOT,UAChCkB,EAAWC,QAAQhB,EAAIQ,KAAKX,SAI9C,CAMO,SAASoB,EAAejB,EAAgBe,GAC9C,OAAID,EAAUd,EAAKe,GACX,CAAEG,KAAMlB,EAAIM,OAAQa,GAAInB,EAAIQ,MAE7B,CAAEU,KAAMlB,EAAIQ,KAAMW,GAAInB,EAAIM,OAClC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as t}from"./NavigationQueries-DCOv4Ca5.mjs";import{e as s,c as e,b as n}from"./Selection-DhbizDM4.mjs";function o(t,s,n){return t.transaction("input").setSelection(e(s,n)).setStoredMarks(null,t.storedMarks).build()}function r(s,e){const o=t(s.doc,e)??[];return s.transaction("input").setSelection(n(e,o)).setStoredMarks(null,s.storedMarks).build()}function a(t,e,n,o,r){return t.transaction("input").setSelection(s({blockId:e,offset:n},{blockId:o,offset:r})).setStoredMarks(null,t.storedMarks).build()}export{a as e,o as m,r as n};
|
|
2
|
-
//# sourceMappingURL=SelectionTransactions-DB3YDIEa.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionTransactions-DB3YDIEa.mjs","sources":["../../src/state/SelectionTransactions.ts"],"sourcesContent":["/**\n * Shared transaction builders for cursor and selection movement.\n *\n * These helpers encapsulate the common pattern of building a transaction\n * that sets a new selection and clears storedMarks.\n */\n\nimport { findNodePath } from '../model/NodeResolver.js';\nimport {\n\tcreateCollapsedSelection,\n\tcreateNodeSelection,\n\tcreateSelection,\n} from '../model/Selection.js';\nimport type { BlockId } from '../model/TypeBrands.js';\nimport type { EditorState } from './EditorState.js';\nimport type { Transaction } from './Transaction.js';\n\n/** Builds a collapsed-cursor transaction that clears storedMarks. */\nexport function moveTx(state: EditorState, blockId: BlockId, offset: number): Transaction {\n\treturn state\n\t\t.transaction('input')\n\t\t.setSelection(createCollapsedSelection(blockId, offset))\n\t\t.setStoredMarks(null, state.storedMarks)\n\t\t.build();\n}\n\n/** Builds a NodeSelection transaction that clears storedMarks. */\nexport function nodeSelTx(state: EditorState, targetId: BlockId): Transaction {\n\tconst path: BlockId[] = (findNodePath(state.doc, targetId) ?? []) as BlockId[];\n\treturn state\n\t\t.transaction('input')\n\t\t.setSelection(createNodeSelection(targetId, path))\n\t\t.setStoredMarks(null, state.storedMarks)\n\t\t.build();\n}\n\n/** Builds a range-selection transaction that clears storedMarks. */\nexport function extendTx(\n\tstate: EditorState,\n\tanchorBlockId: BlockId,\n\tanchorOffset: number,\n\theadBlockId: BlockId,\n\theadOffset: number,\n): Transaction {\n\treturn state\n\t\t.transaction('input')\n\t\t.setSelection(\n\t\t\tcreateSelection(\n\t\t\t\t{ blockId: anchorBlockId, offset: anchorOffset },\n\t\t\t\t{ blockId: headBlockId, offset: headOffset },\n\t\t\t),\n\t\t)\n\t\t.setStoredMarks(null, state.storedMarks)\n\t\t.build();\n}\n"],"names":["moveTx","state","blockId","offset","transaction","setSelection","createCollapsedSelection","setStoredMarks","storedMarks","build","nodeSelTx","targetId","path","findNodePath","doc","createNodeSelection","extendTx","anchorBlockId","anchorOffset","headBlockId","headOffset","createSelection"],"mappings":"gHAkBO,SAASA,EAAOC,EAAoBC,EAAkBC,GAC5D,OAAOF,EACLG,YAAY,SACZC,aAAaC,EAAyBJ,EAASC,IAC/CI,eAAe,KAAMN,EAAMO,aAC3BC,OACH,CAGO,SAASC,EAAUT,EAAoBU,GAC7C,MAAMC,EAAmBC,EAAaZ,EAAMa,IAAKH,IAAa,GAC9D,OAAOV,EACLG,YAAY,SACZC,aAAaU,EAAoBJ,EAAUC,IAC3CL,eAAe,KAAMN,EAAMO,aAC3BC,OACH,CAGO,SAASO,EACff,EACAgB,EACAC,EACAC,EACAC,GAEA,OAAOnB,EACLG,YAAY,SACZC,aACAgB,EACC,CAAEnB,QAASe,EAAed,OAAQe,GAClC,CAAEhB,QAASiB,EAAahB,OAAQiB,KAGjCb,eAAe,KAAMN,EAAMO,aAC3BC,OACH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ShortcutFormatting-BLKS0Gys.mjs","sources":["../../src/plugins/shared/ShortcutFormatting.ts"],"sourcesContent":["import { isMac } from '../../platform/Platform.js';\n\n/**\n * Formats a keymap binding string into a human-readable shortcut,\n * using platform-appropriate modifier symbols (⌘ on Mac, Ctrl on others).\n *\n * @example formatShortcut('Mod-B') → \"Ctrl+B\" or \"⌘B\"\n * @example formatShortcut('Mod-Shift-X') → \"Ctrl+Shift+X\" or \"⌘⇧X\"\n */\nexport function formatShortcut(binding: string): string {\n\tif (isMac()) {\n\t\treturn binding\n\t\t\t.replace(/Mod/g, '⌘')\n\t\t\t.replace(/Shift/g, '⇧')\n\t\t\t.replace(/Alt/g, '⌥')\n\t\t\t.replace(/-/g, '');\n\t}\n\treturn binding.replace(/Mod/g, 'Ctrl').replace(/-/g, '+');\n}\n"],"names":["formatShortcut","binding","isMac","replace"],"mappings":"4CASO,SAASA,EAAeC,GAC9B,OAAIC,IACID,EACLE,QAAQ,OAAQ,KAChBA,QAAQ,SAAU,KAClBA,QAAQ,OAAQ,KAChBA,QAAQ,KAAM,IAEVF,EAAQE,QAAQ,OAAQ,QAAQA,QAAQ,KAAM,IACtD"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e="data-notectl-style-token",t=/* @__PURE__ */new WeakMap,n=/* @__PURE__ */new WeakMap;function s(){if("undefined"==typeof CSSStyleSheet)return null;try{return new CSSStyleSheet}catch{return null}}function o(e,s){const o=n.get(e);o&&(o.destroy(),n.delete(e)),t.set(e,{nonce:s.nonce,sheet:s.sheet??null})}function i(e){const s=n.get(e);s&&(s.destroy(),n.delete(e)),t.delete(e)}function r(e,t,n){const s=f(e);s?y(s.root,s.settings).setProperty(e,t,n):d(e,t,n)}function l(e,t){r(e,t,"")}function c(e,t){const n=f(e);if(n)y(n.root,n.settings).setProperties(e,t);else for(const[s,o]of Object.entries(t))d(e,s,o??"")}function a(e,t){const n=f(e);n?y(n.root,n.settings).setStyleText(e,t):e.style.cssText=t}function h(e,t){const n=f(e);if(!n){const n=e.style.cssText;return void(e.style.cssText=n?`${n}; ${t}`:t)}y(n.root,n.settings).appendStyleText(e,t)}function u(e){const n=m(e);if(n)return t.get(n)?.nonce}function d(e,t,n){t.startsWith("--")||t.includes("-")?n?e.style.setProperty(t,n):e.style.removeProperty(t):e.style[t]=n}function f(e){const n=function(e){return m(e)}(e);if(!n)return null;const s=t.get(n);return s?{root:n,settings:s}:null}function y(e,t){const s=n.get(e);if(s)return s;const o=new p(e,t);return n.set(e,o),o}function S(e){return"undefined"!=typeof ShadowRoot&&e instanceof ShadowRoot}function k(e){return"undefined"!=typeof Document&&e instanceof Document}function m(e){const t=S(e)||k(e)?e:e.getRootNode();return S(t)||k(t)?t:"undefined"!=typeof document?document:null}class p{declarationByElement=/* @__PURE__ */new WeakMap;tokenByDeclaration=/* @__PURE__ */new Map;declarationByToken=/* @__PURE__ */new Map;tokenRefCount=/* @__PURE__ */new Map;tokenByElement=/* @__PURE__ */new WeakMap;tokenCounter=0;root;nonce;sheet;fallbackStyleElement=null;ownsAdoptedSheet=!1;constructor(e,t){this.root=e,this.nonce=t.nonce,this.sheet=t.sheet??null}destroy(){this.clearRuntimeRules(),this.ownsAdoptedSheet&&this.sheet&&"adoptedStyleSheets"in this.root&&(this.root.adoptedStyleSheets=this.root.adoptedStyleSheets.filter(e=>e!==this.sheet)),this.fallbackStyleElement?.remove(),this.fallbackStyleElement=null,this.sheet=null,this.ownsAdoptedSheet=!1,this.tokenByDeclaration.clear(),this.declarationByToken.clear(),this.tokenRefCount.clear(),this.tokenCounter=0}setProperty(e,t,n){const s=this.getOrCreateDeclarations(e),o=R(t);n?s.set(o,n):s.delete(o),this.syncElementToken(e,s)}setProperties(e,t){const n=this.getOrCreateDeclarations(e);for(const[s,o]of Object.entries(t)){const e=R(s);o?n.set(e,o):n.delete(e)}this.syncElementToken(e,n)}setStyleText(e,t){const n=g(t);0!==n.size?(this.declarationByElement.set(e,n),this.syncElementToken(e,n)):this.clearElementStyles(e)}appendStyleText(e,t){const n=g(t);if(0===n.size)return;const s=this.getOrCreateDeclarations(e);for(const[o,i]of n)s.set(o,i);this.syncElementToken(e,s)}getStyleText(e){const t=this.declarationByElement.get(e);return t&&0!==t.size?E(t):""}getOrCreateDeclarations(e){const t=this.declarationByElement.get(e);if(t)return t;const n=/* @__PURE__ */new Map;return this.declarationByElement.set(e,n),n}syncElementToken(t,n){const s=this.tokenByElement.get(t);if(0===n.size)return void this.clearElementStyles(t);const o=E(n);let i=this.tokenByDeclaration.get(o);i||(i=`s${this.tokenCounter.toString(36)}`,this.tokenCounter+=1,this.tokenByDeclaration.set(o,i),this.declarationByToken.set(i,o),this.insertRule(i,o)),s!==i&&(this.retainToken(i),s&&this.releaseToken(s),this.tokenByElement.set(t,i)),t.setAttribute(e,i)}insertRule(e,t){const n=`${C(e)} { ${t}; }`,s=this.ensureSheet();if(s)try{s.insertRule(n,s.cssRules.length)}catch{}}ensureSheet(){if(this.sheet)return this.sheet;if("undefined"!=typeof CSSStyleSheet)try{const e=new CSSStyleSheet;if("adoptedStyleSheets"in this.root){const t=this.root.adoptedStyleSheets;return this.root.adoptedStyleSheets=[...t,e],this.sheet=e,this.ownsAdoptedSheet=!0,e}}catch{}const e=this.ensureFallbackStyleElement();return this.sheet=e.sheet??null,this.sheet}clearElementStyles(t){this.declarationByElement.delete(t);const n=this.tokenByElement.get(t);n&&(this.tokenByElement.delete(t),this.releaseToken(n)),t.removeAttribute(e)}retainToken(e){const t=this.tokenRefCount.get(e)??0;this.tokenRefCount.set(e,t+1)}releaseToken(e){const t=this.tokenRefCount.get(e);if(!t)return;if(t>1)return void this.tokenRefCount.set(e,t-1);this.tokenRefCount.delete(e);const n=this.declarationByToken.get(e);n&&(this.declarationByToken.delete(e),this.tokenByDeclaration.delete(n)),this.deleteRule(e)}deleteRule(e){const t=this.sheet;if(!t)return;const n=C(e);for(let s=t.cssRules.length-1;s>=0;s-=1){const e=t.cssRules[s];if(e&&T(e,n)){try{t.deleteRule(s)}catch{}return}}}clearRuntimeRules(){const t=this.sheet;if(t)for(let n=t.cssRules.length-1;n>=0;n-=1){const s=t.cssRules[n];if(s&&s.cssText.includes(`[${e}="`))try{t.deleteRule(n)}catch{}}}ensureFallbackStyleElement(){if(this.fallbackStyleElement)return this.fallbackStyleElement;const e=document.createElement("style");return e.setAttribute("data-notectl-runtime-styles",""),this.nonce&&e.setAttribute("nonce",this.nonce),S(this.root)?this.root.appendChild(e):(this.root.head??this.root.documentElement).appendChild(e),this.fallbackStyleElement=e,e}}function g(e){const t=/* @__PURE__ */new Map;for(const n of e.split(";")){const e=n.trim();if(!e)continue;const s=e.indexOf(":");if(s<=0)continue;const o=R(e.slice(0,s)),i=e.slice(s+1).trim();i?t.set(o,i):t.delete(o)}return t}function E(e){return Array.from(e.entries()).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${e}: ${t}`).join("; ")}function R(e){const t=e.trim();return t?t.startsWith("--")?t:t.includes("-")?t.toLowerCase():t.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`).toLowerCase():""}function C(t){return`[${e}="${t}"]`}function T(e,t){return"undefined"!=typeof CSSStyleRule&&e instanceof CSSStyleRule?e.selectorText===t:e.cssText.includes(t)}export{r as a,a as b,h as c,s as d,l as e,u as g,o as r,c as s,i as u};
|
|
2
|
-
//# sourceMappingURL=StyleRuntime-BmsLoEa8.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StyleRuntime-BmsLoEa8.mjs","sources":["../../src/style/StyleRuntime.ts"],"sourcesContent":["/**\n * Runtime style abstraction.\n *\n * Writes no inline styles and instead assigns token attributes\n * backed by dynamic CSS rules in a stylesheet.\n * Elements outside a registered root fall back to inline styles.\n */\n\nexport interface StyleRootOptions {\n\treadonly nonce?: string;\n\treadonly sheet?: CSSStyleSheet | null;\n}\n\ntype StyleRoot = ShadowRoot | Document;\n\ninterface RootConfig {\n\treadonly nonce?: string;\n\treadonly sheet: CSSStyleSheet | null;\n}\n\nconst STYLE_TOKEN_ATTR = 'data-notectl-style-token';\nconst STYLE_ELEMENT_ATTR = 'data-notectl-runtime-styles';\n\nconst rootConfigs: WeakMap<StyleRoot, RootConfig> = new WeakMap();\nconst strictEngines: WeakMap<StyleRoot, StrictStyleEngine> = new WeakMap();\n\n/** Creates a constructable stylesheet when the environment supports it. */\nexport function createRuntimeStyleSheet(): CSSStyleSheet | null {\n\tif (typeof CSSStyleSheet === 'undefined') return null;\n\ttry {\n\t\treturn new CSSStyleSheet();\n\t} catch {\n\t\treturn null;\n\t}\n}\n\n/** Registers styling mode for a root (shadow root or document). */\nexport function registerStyleRoot(root: StyleRoot, options: StyleRootOptions): void {\n\tconst previous = strictEngines.get(root);\n\tif (previous) {\n\t\tprevious.destroy();\n\t\tstrictEngines.delete(root);\n\t}\n\trootConfigs.set(root, {\n\t\tnonce: options.nonce,\n\t\tsheet: options.sheet ?? null,\n\t});\n}\n\n/** Unregisters root styling and tears down strict runtime state if present. */\nexport function unregisterStyleRoot(root: StyleRoot): void {\n\tconst engine = strictEngines.get(root);\n\tif (engine) {\n\t\tengine.destroy();\n\t\tstrictEngines.delete(root);\n\t}\n\trootConfigs.delete(root);\n}\n\n/** Sets a single style property. Empty value removes the property. */\nexport function setStyleProperty(el: HTMLElement, property: string, value: string): void {\n\tconst config = resolveConfig(el);\n\tif (!config) {\n\t\tsetInlineProperty(el, property, value);\n\t\treturn;\n\t}\n\tgetStrictEngine(config.root, config.settings).setProperty(el, property, value);\n}\n\n/** Removes a single style property. */\nexport function removeStyleProperty(el: HTMLElement, property: string): void {\n\tsetStyleProperty(el, property, '');\n}\n\n/** Sets multiple style properties in one call. */\nexport function setStyleProperties(\n\tel: HTMLElement,\n\tproperties: Readonly<Record<string, string | undefined | null>>,\n): void {\n\tconst config = resolveConfig(el);\n\tif (!config) {\n\t\tfor (const [property, value] of Object.entries(properties)) {\n\t\t\tsetInlineProperty(el, property, value ?? '');\n\t\t}\n\t\treturn;\n\t}\n\tgetStrictEngine(config.root, config.settings).setProperties(el, properties);\n}\n\n/** Replaces the element style text. */\nexport function setStyleText(el: HTMLElement, cssText: string): void {\n\tconst config = resolveConfig(el);\n\tif (!config) {\n\t\tel.style.cssText = cssText;\n\t\treturn;\n\t}\n\tgetStrictEngine(config.root, config.settings).setStyleText(el, cssText);\n}\n\n/** Merges a cssText fragment into current element styles. */\nexport function appendStyleText(el: HTMLElement, cssText: string): void {\n\tconst config = resolveConfig(el);\n\tif (!config) {\n\t\tconst current = el.style.cssText;\n\t\tel.style.cssText = current ? `${current}; ${cssText}` : cssText;\n\t\treturn;\n\t}\n\tgetStrictEngine(config.root, config.settings).appendStyleText(el, cssText);\n}\n\n/** Returns serialized styles for an element. */\nexport function getStyleText(el: HTMLElement): string {\n\tconst config = resolveConfig(el);\n\tif (!config) return el.style.cssText;\n\treturn getStrictEngine(config.root, config.settings).getStyleText(el);\n}\n\n/** Returns the configured CSP nonce for the node's style root (if any). */\nexport function getStyleNonceForNode(node: Node): string | undefined {\n\tconst root = resolveStyleRootFromNode(node);\n\tif (!root) return undefined;\n\treturn rootConfigs.get(root)?.nonce;\n}\n\nfunction setInlineProperty(el: HTMLElement, property: string, value: string): void {\n\tif (property.startsWith('--')) {\n\t\tif (value) {\n\t\t\tel.style.setProperty(property, value);\n\t\t} else {\n\t\t\tel.style.removeProperty(property);\n\t\t}\n\t\treturn;\n\t}\n\tif (property.includes('-')) {\n\t\tif (value) {\n\t\t\tel.style.setProperty(property, value);\n\t\t} else {\n\t\t\tel.style.removeProperty(property);\n\t\t}\n\t\treturn;\n\t}\n\t(el.style as CSSStyleDeclaration & Record<string, string>)[property] = value;\n}\n\nfunction resolveConfig(el: HTMLElement): { root: StyleRoot; settings: RootConfig } | null {\n\tconst root = resolveStyleRoot(el);\n\tif (!root) return null;\n\tconst settings = rootConfigs.get(root);\n\tif (!settings) return null;\n\treturn { root, settings };\n}\n\nfunction resolveStyleRoot(el: HTMLElement): StyleRoot | null {\n\treturn resolveStyleRootFromNode(el);\n}\n\nfunction getStrictEngine(root: StyleRoot, config: RootConfig): StrictStyleEngine {\n\tconst cached = strictEngines.get(root);\n\tif (cached) return cached;\n\tconst engine = new StrictStyleEngine(root, config);\n\tstrictEngines.set(root, engine);\n\treturn engine;\n}\n\nfunction isShadowRoot(value: unknown): value is ShadowRoot {\n\treturn typeof ShadowRoot !== 'undefined' && value instanceof ShadowRoot;\n}\n\nfunction isDocument(value: unknown): value is Document {\n\treturn typeof Document !== 'undefined' && value instanceof Document;\n}\n\nfunction resolveStyleRootFromNode(node: Node): StyleRoot | null {\n\tconst rootNode: Node = isShadowRoot(node) || isDocument(node) ? node : node.getRootNode();\n\tif (isShadowRoot(rootNode)) return rootNode;\n\tif (isDocument(rootNode)) return rootNode;\n\tif (typeof document !== 'undefined') return document;\n\treturn null;\n}\n\nclass StrictStyleEngine {\n\tprivate readonly declarationByElement: WeakMap<HTMLElement, Map<string, string>> = new WeakMap();\n\tprivate readonly tokenByDeclaration: Map<string, string> = new Map();\n\tprivate readonly declarationByToken: Map<string, string> = new Map();\n\tprivate readonly tokenRefCount: Map<string, number> = new Map();\n\tprivate readonly tokenByElement: WeakMap<HTMLElement, string> = new WeakMap();\n\tprivate tokenCounter = 0;\n\tprivate readonly root: StyleRoot;\n\tprivate readonly nonce?: string;\n\tprivate sheet: CSSStyleSheet | null;\n\tprivate fallbackStyleElement: HTMLStyleElement | null = null;\n\tprivate ownsAdoptedSheet = false;\n\n\tconstructor(root: StyleRoot, config: RootConfig) {\n\t\tthis.root = root;\n\t\tthis.nonce = config.nonce;\n\t\tthis.sheet = config.sheet ?? null;\n\t}\n\n\tdestroy(): void {\n\t\tthis.clearRuntimeRules();\n\t\tif (this.ownsAdoptedSheet && this.sheet && 'adoptedStyleSheets' in this.root) {\n\t\t\tthis.root.adoptedStyleSheets = this.root.adoptedStyleSheets.filter(\n\t\t\t\t(adoptedSheet: CSSStyleSheet): boolean => adoptedSheet !== this.sheet,\n\t\t\t);\n\t\t}\n\t\tthis.fallbackStyleElement?.remove();\n\t\tthis.fallbackStyleElement = null;\n\t\tthis.sheet = null;\n\t\tthis.ownsAdoptedSheet = false;\n\t\tthis.tokenByDeclaration.clear();\n\t\tthis.declarationByToken.clear();\n\t\tthis.tokenRefCount.clear();\n\t\tthis.tokenCounter = 0;\n\t}\n\n\tsetProperty(el: HTMLElement, property: string, value: string): void {\n\t\tconst declarations = this.getOrCreateDeclarations(el);\n\t\tconst name = normalizePropertyName(property);\n\t\tif (!value) {\n\t\t\tdeclarations.delete(name);\n\t\t} else {\n\t\t\tdeclarations.set(name, value);\n\t\t}\n\t\tthis.syncElementToken(el, declarations);\n\t}\n\n\tsetProperties(\n\t\tel: HTMLElement,\n\t\tproperties: Readonly<Record<string, string | undefined | null>>,\n\t): void {\n\t\tconst declarations = this.getOrCreateDeclarations(el);\n\t\tfor (const [property, value] of Object.entries(properties)) {\n\t\t\tconst name = normalizePropertyName(property);\n\t\t\tif (!value) {\n\t\t\t\tdeclarations.delete(name);\n\t\t\t} else {\n\t\t\t\tdeclarations.set(name, value);\n\t\t\t}\n\t\t}\n\t\tthis.syncElementToken(el, declarations);\n\t}\n\n\tsetStyleText(el: HTMLElement, cssText: string): void {\n\t\tconst declarations = parseStyleText(cssText);\n\t\tif (declarations.size === 0) {\n\t\t\tthis.clearElementStyles(el);\n\t\t\treturn;\n\t\t}\n\t\tthis.declarationByElement.set(el, declarations);\n\t\tthis.syncElementToken(el, declarations);\n\t}\n\n\tappendStyleText(el: HTMLElement, cssText: string): void {\n\t\tconst parsed = parseStyleText(cssText);\n\t\tif (parsed.size === 0) return;\n\t\tconst declarations = this.getOrCreateDeclarations(el);\n\t\tfor (const [property, value] of parsed) {\n\t\t\tdeclarations.set(property, value);\n\t\t}\n\t\tthis.syncElementToken(el, declarations);\n\t}\n\n\tgetStyleText(el: HTMLElement): string {\n\t\tconst declarations = this.declarationByElement.get(el);\n\t\tif (!declarations || declarations.size === 0) return '';\n\t\treturn serializeDeclarations(declarations);\n\t}\n\n\tprivate getOrCreateDeclarations(el: HTMLElement): Map<string, string> {\n\t\tconst existing = this.declarationByElement.get(el);\n\t\tif (existing) return existing;\n\t\tconst created = new Map<string, string>();\n\t\tthis.declarationByElement.set(el, created);\n\t\treturn created;\n\t}\n\n\tprivate syncElementToken(el: HTMLElement, declarations: Map<string, string>): void {\n\t\tconst previousToken = this.tokenByElement.get(el);\n\t\tif (declarations.size === 0) {\n\t\t\tthis.clearElementStyles(el);\n\t\t\treturn;\n\t\t}\n\n\t\tconst declarationText = serializeDeclarations(declarations);\n\t\tlet token = this.tokenByDeclaration.get(declarationText);\n\t\tif (!token) {\n\t\t\ttoken = `s${this.tokenCounter.toString(36)}`;\n\t\t\tthis.tokenCounter += 1;\n\t\t\tthis.tokenByDeclaration.set(declarationText, token);\n\t\t\tthis.declarationByToken.set(token, declarationText);\n\t\t\tthis.insertRule(token, declarationText);\n\t\t}\n\t\tif (previousToken !== token) {\n\t\t\tthis.retainToken(token);\n\t\t\tif (previousToken) {\n\t\t\t\tthis.releaseToken(previousToken);\n\t\t\t}\n\t\t\tthis.tokenByElement.set(el, token);\n\t\t}\n\t\tel.setAttribute(STYLE_TOKEN_ATTR, token);\n\t}\n\n\tprivate insertRule(token: string, declarationText: string): void {\n\t\tconst rule = `${buildTokenSelector(token)} { ${declarationText}; }`;\n\t\tconst sheet = this.ensureSheet();\n\t\tif (!sheet) return;\n\t\ttry {\n\t\t\tsheet.insertRule(rule, sheet.cssRules.length);\n\t\t} catch {\n\t\t\t// Ignore malformed declarations from third-party plugin attrs.\n\t\t}\n\t}\n\n\tprivate ensureSheet(): CSSStyleSheet | null {\n\t\tif (this.sheet) return this.sheet;\n\n\t\tif (typeof CSSStyleSheet !== 'undefined') {\n\t\t\ttry {\n\t\t\t\tconst sheet = new CSSStyleSheet();\n\t\t\t\tif ('adoptedStyleSheets' in this.root) {\n\t\t\t\t\tconst adopted = this.root.adoptedStyleSheets;\n\t\t\t\t\tthis.root.adoptedStyleSheets = [...adopted, sheet];\n\t\t\t\t\tthis.sheet = sheet;\n\t\t\t\t\tthis.ownsAdoptedSheet = true;\n\t\t\t\t\treturn sheet;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// Fall through to style element fallback.\n\t\t\t}\n\t\t}\n\n\t\tconst style = this.ensureFallbackStyleElement();\n\t\tthis.sheet = (style.sheet as CSSStyleSheet | null) ?? null;\n\t\treturn this.sheet;\n\t}\n\n\tprivate clearElementStyles(el: HTMLElement): void {\n\t\tthis.declarationByElement.delete(el);\n\t\tconst token = this.tokenByElement.get(el);\n\t\tif (token) {\n\t\t\tthis.tokenByElement.delete(el);\n\t\t\tthis.releaseToken(token);\n\t\t}\n\t\tel.removeAttribute(STYLE_TOKEN_ATTR);\n\t}\n\n\tprivate retainToken(token: string): void {\n\t\tconst current = this.tokenRefCount.get(token) ?? 0;\n\t\tthis.tokenRefCount.set(token, current + 1);\n\t}\n\n\tprivate releaseToken(token: string): void {\n\t\tconst current = this.tokenRefCount.get(token);\n\t\tif (!current) return;\n\t\tif (current > 1) {\n\t\t\tthis.tokenRefCount.set(token, current - 1);\n\t\t\treturn;\n\t\t}\n\t\tthis.tokenRefCount.delete(token);\n\t\tconst declaration = this.declarationByToken.get(token);\n\t\tif (declaration) {\n\t\t\tthis.declarationByToken.delete(token);\n\t\t\tthis.tokenByDeclaration.delete(declaration);\n\t\t}\n\t\tthis.deleteRule(token);\n\t}\n\n\tprivate deleteRule(token: string): void {\n\t\tconst sheet = this.sheet;\n\t\tif (!sheet) return;\n\t\tconst selector = buildTokenSelector(token);\n\t\tfor (let index = sheet.cssRules.length - 1; index >= 0; index -= 1) {\n\t\t\tconst rule = sheet.cssRules[index];\n\t\t\tif (!rule || !isTokenSelectorMatch(rule, selector)) continue;\n\t\t\ttry {\n\t\t\t\tsheet.deleteRule(index);\n\t\t\t} catch {\n\t\t\t\t// Ignore parser/runtime discrepancies in unsupported environments.\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t}\n\n\tprivate clearRuntimeRules(): void {\n\t\tconst sheet = this.sheet;\n\t\tif (!sheet) return;\n\t\tfor (let index = sheet.cssRules.length - 1; index >= 0; index -= 1) {\n\t\t\tconst rule = sheet.cssRules[index];\n\t\t\tif (!rule || !rule.cssText.includes(`[${STYLE_TOKEN_ATTR}=\"`)) continue;\n\t\t\ttry {\n\t\t\t\tsheet.deleteRule(index);\n\t\t\t} catch {\n\t\t\t\t// Ignore parser/runtime discrepancies in unsupported environments.\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate ensureFallbackStyleElement(): HTMLStyleElement {\n\t\tif (this.fallbackStyleElement) return this.fallbackStyleElement;\n\t\tconst style: HTMLStyleElement = document.createElement('style');\n\t\tstyle.setAttribute(STYLE_ELEMENT_ATTR, '');\n\t\tif (this.nonce) {\n\t\t\tstyle.setAttribute('nonce', this.nonce);\n\t\t}\n\t\tif (isShadowRoot(this.root)) {\n\t\t\tthis.root.appendChild(style);\n\t\t} else {\n\t\t\tconst host = this.root.head ?? this.root.documentElement;\n\t\t\thost.appendChild(style);\n\t\t}\n\t\tthis.fallbackStyleElement = style;\n\t\treturn style;\n\t}\n}\n\nfunction parseStyleText(styleText: string): Map<string, string> {\n\tconst declarations = new Map<string, string>();\n\tfor (const rawPart of styleText.split(';')) {\n\t\tconst part = rawPart.trim();\n\t\tif (!part) continue;\n\t\tconst separator = part.indexOf(':');\n\t\tif (separator <= 0) continue;\n\t\tconst property = normalizePropertyName(part.slice(0, separator));\n\t\tconst value = part.slice(separator + 1).trim();\n\t\tif (!value) {\n\t\t\tdeclarations.delete(property);\n\t\t} else {\n\t\t\tdeclarations.set(property, value);\n\t\t}\n\t}\n\treturn declarations;\n}\n\nfunction serializeDeclarations(declarations: Map<string, string>): string {\n\tconst ordered: [string, string][] = Array.from(declarations.entries()).sort(([a], [b]) =>\n\t\ta.localeCompare(b),\n\t);\n\treturn ordered.map(([property, value]) => `${property}: ${value}`).join('; ');\n}\n\nfunction normalizePropertyName(property: string): string {\n\tconst trimmed = property.trim();\n\tif (!trimmed) return '';\n\tif (trimmed.startsWith('--')) return trimmed;\n\tif (trimmed.includes('-')) return trimmed.toLowerCase();\n\treturn trimmed.replace(/[A-Z]/g, (char: string) => `-${char.toLowerCase()}`).toLowerCase();\n}\n\nfunction buildTokenSelector(token: string): string {\n\treturn `[${STYLE_TOKEN_ATTR}=\"${token}\"]`;\n}\n\nfunction isTokenSelectorMatch(rule: CSSRule, selector: string): boolean {\n\tif (typeof CSSStyleRule !== 'undefined' && rule instanceof CSSStyleRule) {\n\t\treturn rule.selectorText === selector;\n\t}\n\treturn rule.cssText.includes(selector);\n}\n"],"names":["STYLE_TOKEN_ATTR","rootConfigs","WeakMap","strictEngines","createRuntimeStyleSheet","CSSStyleSheet","registerStyleRoot","root","options","previous","get","destroy","delete","set","nonce","sheet","unregisterStyleRoot","engine","setStyleProperty","el","property","value","config","resolveConfig","getStrictEngine","settings","setProperty","setInlineProperty","removeStyleProperty","setStyleProperties","properties","setProperties","Object","entries","setStyleText","cssText","style","appendStyleText","current","getStyleNonceForNode","node","resolveStyleRootFromNode","startsWith","includes","removeProperty","resolveStyleRoot","cached","StrictStyleEngine","isShadowRoot","ShadowRoot","isDocument","Document","rootNode","getRootNode","document","declarationByElement","tokenByDeclaration","Map","declarationByToken","tokenRefCount","tokenByElement","tokenCounter","fallbackStyleElement","ownsAdoptedSheet","constructor","this","clearRuntimeRules","adoptedStyleSheets","filter","adoptedSheet","remove","clear","declarations","getOrCreateDeclarations","name","normalizePropertyName","syncElementToken","parseStyleText","size","clearElementStyles","parsed","getStyleText","serializeDeclarations","existing","created","previousToken","declarationText","token","toString","insertRule","retainToken","releaseToken","setAttribute","rule","buildTokenSelector","ensureSheet","cssRules","length","adopted","ensureFallbackStyleElement","removeAttribute","declaration","deleteRule","selector","index","isTokenSelectorMatch","createElement","appendChild","head","documentElement","styleText","rawPart","split","part","trim","separator","indexOf","slice","Array","from","sort","a","b","localeCompare","map","join","trimmed","toLowerCase","replace","char","CSSStyleRule","selectorText"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{n as t}from"./Document-HC8s50qJ.mjs";const i=/[\p{Script=Hebrew}\p{Script=Arabic}\p{Script=Syriac}\p{Script=Thaana}\p{Script=Mandaic}\p{Script=Nko}\p{Script=Samaritan}\p{Script=Adlam}\p{Script=Hanifi_Rohingya}\p{Script=Mende_Kikakui}\p{Script=Yezidi}\p{Script=Old_South_Arabian}\p{Script=Old_North_Arabian}\p{Script=Avestan}\p{Script=Imperial_Aramaic}\p{Script=Phoenician}\p{Script=Lydian}\u200F\u061C]/u,n=/[\p{Script=Latin}\p{Script=Greek}\p{Script=Cyrillic}\p{Script=Armenian}\p{Script=Devanagari}\p{Script=Bengali}\p{Script=Gurmukhi}\p{Script=Gujarati}\p{Script=Oriya}\p{Script=Tamil}\p{Script=Telugu}\p{Script=Kannada}\p{Script=Malayalam}\p{Script=Sinhala}\p{Script=Thai}\p{Script=Lao}\p{Script=Tibetan}\p{Script=Myanmar}\p{Script=Georgian}\p{Script=Hangul}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Han}\p{Script=Ethiopic}\p{Script=Cherokee}\p{Script=Khmer}\u200E]/u;function r(t){const r=t.search(i),e=t.search(n);return-1===r&&-1===e?null:-1===r?"ltr":-1===e||r<e?"rtl":"ltr"}function e(t){const i=t.attrs?.dir;return"ltr"===i||"rtl"===i?i:"auto"}function c(i,n,r){const e=function(i,n){if(0===n.length)return i.doc.children;const r=n[n.length-1];if(!r)return[];const e=i.getBlock(r);return e?e.children.filter(t):[]}(i,n);for(let t=r-1;t>=0;t--){const i=e[t]?.attrs?.dir;if("ltr"===i||"rtl"===i)return i}for(let t=r;t<e.length;t++){const i=e[t]?.attrs?.dir;if("ltr"===i||"rtl"===i)return i}}class o{constructor(t){this.context=t}pendingDir=null;container=null;attach(t){this.container=t,t.addEventListener("keydown",this.onKeydown),t.addEventListener("keyup",this.onKeyup)}detach(){this.container&&(this.container.removeEventListener("keydown",this.onKeydown),this.container.removeEventListener("keyup",this.onKeyup),this.container=null)}onKeydown=t=>{"Shift"!==t.key||!t.ctrlKey||t.altKey||t.metaKey?this.pendingDir=null:"ShiftLeft"===t.code?this.pendingDir="ltr":"ShiftRight"===t.code&&(this.pendingDir="rtl")};onKeyup=t=>{if("Shift"!==t.key||!this.pendingDir)return;const i=this.pendingDir;this.pendingDir=null;const n="ltr"===i?"setDirectionLTR":"setDirectionRTL";this.context.executeCommand(n)}}const a={ltr:"Left to Right",rtl:"Right to Left",auto:"Auto",toolbarLabel:"Text Direction",toolbarTooltip:"Text Direction",announceLTR:"Text direction set to left-to-right",announceRTL:"Text direction set to right-to-left",announceAuto:"Text direction set to automatic",inlineLTR:"Inline LTR",inlineRTL:"Inline RTL",inlineAuto:"Inline Auto",inlineLabel:"Inline Direction",inlineTooltip:"Inline Direction",announceRemoveBidi:"Inline direction isolation removed"},p=/* @__PURE__ */Object.assign({"./locales/ar.ts":()=>import("./ar-J8B-on-0.mjs"),"./locales/de.ts":()=>import("./de-CicoU066.mjs"),"./locales/es.ts":()=>import("./es-BzEpr4Bk.mjs"),"./locales/fr.ts":()=>import("./fr-Wiobfk5s.mjs"),"./locales/hi.ts":()=>import("./hi-CGEbGI1l.mjs"),"./locales/pt.ts":()=>import("./pt-uNGpVM3D.mjs"),"./locales/ru.ts":()=>import("./ru-XKNCzkR2.mjs"),"./locales/zh.ts":()=>import("./zh-DTiTJbzz.mjs")});async function l(t){if("en"===t)return a;const i=p[`./locales/${t}.ts`];if(!i)return a;try{return(await i()).default}catch{return a}}export{o as S,a as T,r as d,c as f,e as g,l};
|
|
2
|
-
//# sourceMappingURL=TextDirectionLocale-BraFI9JF.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextDirectionLocale-BraFI9JF.mjs","sources":["../../src/plugins/text-direction/DirectionDetection.ts","../../src/plugins/text-direction/ShiftDirectionHandler.ts","../../src/plugins/text-direction/TextDirectionLocale.ts"],"sourcesContent":["/**\n * Direction detection utilities for the TextDirectionPlugin.\n * Detects text direction based on the first strong directional character\n * and finds sibling block direction for inheritance.\n */\n\nimport { type BlockNode, isBlockNode } from '../../model/Document.js';\nimport type { BlockId } from '../../model/TypeBrands.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { TextDirection } from './TextDirectionPlugin.js';\n\n// --- RTL Detection ---\n\n/**\n * Regex matching strong RTL characters using Unicode Script property escapes.\n * Auto-maintained by the Unicode standard — no manual code-point ranges needed.\n * Covers all RTL scripts: Hebrew, Arabic, Syriac, Thaana, N'Ko, Samaritan,\n * Mandaic, Adlam, Hanifi Rohingya, Mende Kikakui, Yezidi, and historic scripts.\n * Includes U+200F (RLM) and U+061C (ALM) as strong directional markers.\n */\nconst RTL_CHAR_RE: RegExp =\n\t/[\\p{Script=Hebrew}\\p{Script=Arabic}\\p{Script=Syriac}\\p{Script=Thaana}\\p{Script=Mandaic}\\p{Script=Nko}\\p{Script=Samaritan}\\p{Script=Adlam}\\p{Script=Hanifi_Rohingya}\\p{Script=Mende_Kikakui}\\p{Script=Yezidi}\\p{Script=Old_South_Arabian}\\p{Script=Old_North_Arabian}\\p{Script=Avestan}\\p{Script=Imperial_Aramaic}\\p{Script=Phoenician}\\p{Script=Lydian}\\u200F\\u061C]/u;\n\n/**\n * Regex matching strong LTR characters using Unicode Script property escapes.\n * Covers all major LTR scripts: Latin, Greek, Cyrillic, Armenian, Indic scripts,\n * Southeast Asian scripts, East Asian scripts, Georgian, Ethiopic, and more.\n * Includes U+200E (LRM) as a strong directional marker.\n */\nconst LTR_CHAR_RE: RegExp =\n\t/[\\p{Script=Latin}\\p{Script=Greek}\\p{Script=Cyrillic}\\p{Script=Armenian}\\p{Script=Devanagari}\\p{Script=Bengali}\\p{Script=Gurmukhi}\\p{Script=Gujarati}\\p{Script=Oriya}\\p{Script=Tamil}\\p{Script=Telugu}\\p{Script=Kannada}\\p{Script=Malayalam}\\p{Script=Sinhala}\\p{Script=Thai}\\p{Script=Lao}\\p{Script=Tibetan}\\p{Script=Myanmar}\\p{Script=Georgian}\\p{Script=Hangul}\\p{Script=Hiragana}\\p{Script=Katakana}\\p{Script=Han}\\p{Script=Ethiopic}\\p{Script=Cherokee}\\p{Script=Khmer}\\u200E]/u;\n\n/**\n * Detects the dominant text direction based on the first strong directional character.\n * Returns `null` if no strong character is found (all neutral/numeric/whitespace).\n */\nexport function detectTextDirection(text: string): TextDirection | null {\n\tconst rtlIdx: number = text.search(RTL_CHAR_RE);\n\tconst ltrIdx: number = text.search(LTR_CHAR_RE);\n\n\tif (rtlIdx === -1 && ltrIdx === -1) return null;\n\tif (rtlIdx === -1) return 'ltr';\n\tif (ltrIdx === -1) return 'rtl';\n\treturn rtlIdx < ltrIdx ? 'rtl' : 'ltr';\n}\n\n// --- Block Direction Accessor ---\n\n/** Returns the current `dir` attribute of a block, defaulting to `'auto'`. */\nexport function getBlockDir(block: BlockNode): TextDirection {\n\tconst dir: unknown = block.attrs?.dir;\n\tif (dir === 'ltr' || dir === 'rtl') return dir;\n\treturn 'auto';\n}\n\n// --- Sibling Direction Lookup ---\n\n/**\n * Finds the `dir` attribute of the nearest sibling with an explicit direction\n * (not `'auto'`) before the insert position, walking backwards.\n */\nexport function findSiblingDirection(\n\tstate: EditorState,\n\tparentPath: readonly BlockId[],\n\tindex: number,\n): TextDirection | undefined {\n\tconst siblings: readonly BlockNode[] = getSiblings(state, parentPath);\n\n\t// Walk backward first (preceding siblings take priority)\n\tfor (let i: number = index - 1; i >= 0; i--) {\n\t\tconst dir: unknown = siblings[i]?.attrs?.dir;\n\t\tif (dir === 'ltr' || dir === 'rtl') return dir;\n\t}\n\n\t// Walk forward when no backward sibling has explicit direction\n\tfor (let i: number = index; i < siblings.length; i++) {\n\t\tconst dir: unknown = siblings[i]?.attrs?.dir;\n\t\tif (dir === 'ltr' || dir === 'rtl') return dir;\n\t}\n\n\treturn undefined;\n}\n\n/** Returns the sibling list for the given parent path. */\nfunction getSiblings(state: EditorState, parentPath: readonly BlockId[]): readonly BlockNode[] {\n\tif (parentPath.length === 0) {\n\t\treturn state.doc.children;\n\t}\n\n\tconst parentId: BlockId | undefined = parentPath[parentPath.length - 1];\n\tif (!parentId) return [];\n\tconst parent: BlockNode | undefined = state.getBlock(parentId);\n\tif (!parent) return [];\n\n\treturn parent.children.filter(isBlockNode);\n}\n","/**\n * Handles Ctrl+Left-Shift → LTR and Ctrl+Right-Shift → RTL shortcuts.\n *\n * Uses a deferred pattern: sets a pending direction on Ctrl+Shift keydown,\n * and applies it on Shift keyup only if no other key was pressed in between.\n * This prevents conflicts with Ctrl+Shift+<key> shortcuts like Ctrl+Shift+D.\n */\n\nimport type { PluginContext } from '../Plugin.js';\n\nexport class ShiftDirectionHandler {\n\tprivate pendingDir: 'ltr' | 'rtl' | null = null;\n\tprivate container: HTMLElement | null = null;\n\n\tconstructor(private readonly context: PluginContext) {}\n\n\tattach(container: HTMLElement): void {\n\t\tthis.container = container;\n\t\tcontainer.addEventListener('keydown', this.onKeydown);\n\t\tcontainer.addEventListener('keyup', this.onKeyup);\n\t}\n\n\tdetach(): void {\n\t\tif (!this.container) return;\n\t\tthis.container.removeEventListener('keydown', this.onKeydown);\n\t\tthis.container.removeEventListener('keyup', this.onKeyup);\n\t\tthis.container = null;\n\t}\n\n\tprivate readonly onKeydown = (e: KeyboardEvent): void => {\n\t\tif (e.key === 'Shift' && e.ctrlKey && !e.altKey && !e.metaKey) {\n\t\t\tif (e.code === 'ShiftLeft') {\n\t\t\t\tthis.pendingDir = 'ltr';\n\t\t\t} else if (e.code === 'ShiftRight') {\n\t\t\t\tthis.pendingDir = 'rtl';\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\t// Any other keydown cancels the pending direction change\n\t\tthis.pendingDir = null;\n\t};\n\n\tprivate readonly onKeyup = (e: KeyboardEvent): void => {\n\t\tif (e.key !== 'Shift' || !this.pendingDir) return;\n\t\tconst dir: 'ltr' | 'rtl' = this.pendingDir;\n\t\tthis.pendingDir = null;\n\t\tconst command: string = dir === 'ltr' ? 'setDirectionLTR' : 'setDirectionRTL';\n\t\tthis.context.executeCommand(command);\n\t};\n}\n","/** Locale interface and default English locale for the TextDirectionPlugin. */\n\nexport interface TextDirectionLocale {\n\treadonly ltr: string;\n\treadonly rtl: string;\n\treadonly auto: string;\n\treadonly toolbarLabel: string;\n\treadonly toolbarTooltip: string;\n\treadonly announceLTR: string;\n\treadonly announceRTL: string;\n\treadonly announceAuto: string;\n\treadonly inlineLTR: string;\n\treadonly inlineRTL: string;\n\treadonly inlineAuto: string;\n\treadonly inlineLabel: string;\n\treadonly inlineTooltip: string;\n\treadonly announceRemoveBidi: string;\n}\n\n// --- Default English Locale ---\n\nexport const TEXT_DIRECTION_LOCALE_EN: TextDirectionLocale = {\n\tltr: 'Left to Right',\n\trtl: 'Right to Left',\n\tauto: 'Auto',\n\ttoolbarLabel: 'Text Direction',\n\ttoolbarTooltip: 'Text Direction',\n\tannounceLTR: 'Text direction set to left-to-right',\n\tannounceRTL: 'Text direction set to right-to-left',\n\tannounceAuto: 'Text direction set to automatic',\n\tinlineLTR: 'Inline LTR',\n\tinlineRTL: 'Inline RTL',\n\tinlineAuto: 'Inline Auto',\n\tinlineLabel: 'Inline Direction',\n\tinlineTooltip: 'Inline Direction',\n\tannounceRemoveBidi: 'Inline direction isolation removed',\n};\n\n// --- Lazy Locale Loader ---\n\nconst localeModules: Record<string, () => Promise<{ default: TextDirectionLocale }>> =\n\timport.meta.glob<{ default: TextDirectionLocale }>('./locales/*.ts', { eager: false });\n\nexport async function loadTextDirectionLocale(lang: string): Promise<TextDirectionLocale> {\n\tif (lang === 'en') return TEXT_DIRECTION_LOCALE_EN;\n\tconst loader = localeModules[`./locales/${lang}.ts`];\n\tif (!loader) return TEXT_DIRECTION_LOCALE_EN;\n\ttry {\n\t\tconst mod = await loader();\n\t\treturn mod.default;\n\t} catch {\n\t\treturn TEXT_DIRECTION_LOCALE_EN;\n\t}\n}\n"],"names":["RTL_CHAR_RE","LTR_CHAR_RE","detectTextDirection","text","rtlIdx","search","ltrIdx","getBlockDir","block","dir","attrs","findSiblingDirection","state","parentPath","index","siblings","length","doc","children","parentId","parent","getBlock","filter","isBlockNode","getSiblings","i","ShiftDirectionHandler","constructor","context","this","pendingDir","container","attach","addEventListener","onKeydown","onKeyup","detach","removeEventListener","e","key","ctrlKey","altKey","metaKey","code","command","executeCommand","TEXT_DIRECTION_LOCALE_EN","ltr","rtl","auto","toolbarLabel","toolbarTooltip","announceLTR","announceRTL","announceAuto","inlineLTR","inlineRTL","inlineAuto","inlineLabel","inlineTooltip","announceRemoveBidi","localeModules","assign","import","async","loadTextDirectionLocale","lang","loader","default"],"mappings":"4CAoBA,MAAMA,EACL,wWAQKC,EACL,udAMM,SAASC,EAAoBC,GACnC,MAAMC,EAAiBD,EAAKE,OAAOL,GAC7BM,EAAiBH,EAAKE,OAAOJ,GAEnC,OAAe,IAAXG,IAA4B,IAAXE,EAAsB,UACvCF,EAAsB,WACtBE,GACGF,EAASE,EADU,MACO,KAClC,CAKO,SAASC,EAAYC,GAC3B,MAAMC,EAAeD,EAAME,OAAOD,IAClC,MAAY,QAARA,GAAyB,QAARA,EAAsBA,EACpC,MACR,CAQO,SAASE,EACfC,EACAC,EACAC,GAEA,MAAMC,EAkBP,SAAqBH,EAAoBC,GACxC,GAA0B,IAAtBA,EAAWG,OACd,OAAOJ,EAAMK,IAAIC,SAGlB,MAAMC,EAAgCN,EAAWA,EAAWG,OAAS,GACrE,IAAKG,EAAU,MAAO,GACtB,MAAMC,EAAgCR,EAAMS,SAASF,GACrD,OAAKC,EAEEA,EAAOF,SAASI,OAAOC,GAFV,EAGrB,CA7BwCC,CAAYZ,EAAOC,GAG1D,IAAA,IAASY,EAAYX,EAAQ,EAAGW,GAAK,EAAGA,IAAK,CAC5C,MAAMhB,EAAeM,EAASU,IAAIf,OAAOD,IACzC,GAAY,QAARA,GAAyB,QAARA,EAAe,OAAOA,CAC5C,CAGA,IAAA,IAASgB,EAAYX,EAAOW,EAAIV,EAASC,OAAQS,IAAK,CACrD,MAAMhB,EAAeM,EAASU,IAAIf,OAAOD,IACzC,GAAY,QAARA,GAAyB,QAARA,EAAe,OAAOA,CAC5C,CAGD,CCvEO,MAAMiB,EAIZ,WAAAC,CAA6BC,GAAAC,KAAAD,QAAAA,CAAyB,CAH9CE,WAAmC,KACnCC,UAAgC,KAIxC,MAAAC,CAAOD,GACNF,KAAKE,UAAYA,EACjBA,EAAUE,iBAAiB,UAAWJ,KAAKK,WAC3CH,EAAUE,iBAAiB,QAASJ,KAAKM,QAC1C,CAEA,MAAAC,GACMP,KAAKE,YACVF,KAAKE,UAAUM,oBAAoB,UAAWR,KAAKK,WACnDL,KAAKE,UAAUM,oBAAoB,QAASR,KAAKM,SACjDN,KAAKE,UAAY,KAClB,CAEiBG,UAAaI,IACf,UAAVA,EAAEC,MAAmBD,EAAEE,SAAYF,EAAEG,QAAWH,EAAEI,QAStDb,KAAKC,WAAa,KARF,cAAXQ,EAAEK,KACLd,KAAKC,WAAa,MACG,eAAXQ,EAAEK,OACZd,KAAKC,WAAa,QAQJK,QAAWG,IAC3B,GAAc,UAAVA,EAAEC,MAAoBV,KAAKC,WAAY,OAC3C,MAAMrB,EAAqBoB,KAAKC,WAChCD,KAAKC,WAAa,KAClB,MAAMc,EAA0B,QAARnC,EAAgB,kBAAoB,kBAC5DoB,KAAKD,QAAQiB,eAAeD,IC1BvB,MAAME,EAAgD,CAC5DC,IAAK,gBACLC,IAAK,gBACLC,KAAM,OACNC,aAAc,iBACdC,eAAgB,iBAChBC,YAAa,sCACbC,YAAa,sCACbC,aAAc,kCACdC,UAAW,aACXC,UAAW,aACXC,WAAY,cACZC,YAAa,mBACbC,cAAe,mBACfC,mBAAoB,sCAKfC,wBACLC,OAAA,CAAA,kBAAA,IAAAC,OAAA,qBAAA,kBAAA,IAAAA,OAAA,qBAAA,kBAAA,IAAAA,OAAA,qBAAA,kBAAA,IAAAA,OAAA,qBAAA,kBAAA,IAAAA,OAAA,qBAAA,kBAAA,IAAAA,OAAA,qBAAA,kBAAA,IAAAA,OAAA,qBAAA,kBAAA,IAAAA,OAAA,uBAEDC,eAAsBC,EAAwBC,GAC7C,GAAa,OAATA,EAAe,OAAOpB,EAC1B,MAAMqB,EAASN,EAAc,aAAaK,QAC1C,IAAKC,EAAQ,OAAOrB,EACpB,IAEC,aADkBqB,KACPC,OACZ,CAAA,MACC,OAAOtB,CACR,CACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TypeBrands-Bp_Z_o5Y.mjs","sources":["../../src/model/TypeBrands.ts"],"sourcesContent":["/**\n * Branded (nominal) types for semantic string distinctions.\n * Prevents accidental interchange of structurally identical IDs.\n */\n\ndeclare const __brand: unique symbol;\ntype Brand<T, B extends string> = T & { readonly [__brand]: B };\n\n/** Unique identifier for a block node in the document tree. */\nexport type BlockId = Brand<string, 'BlockId'>;\n\n/** Semantic name for a node type (e.g. 'paragraph', 'heading'). */\nexport type NodeTypeName = Brand<string, 'NodeTypeName'>;\n\n/** Semantic name for a mark type (e.g. 'bold', 'link'). */\nexport type MarkTypeName = Brand<string, 'MarkTypeName'>;\n\n/** Unique identifier for a plugin. */\nexport type PluginId = Brand<string, 'PluginId'>;\n\n/** Registered command name. */\nexport type CommandName = Brand<string, 'CommandName'>;\n\n/** Semantic name for an inline node type (e.g. 'image', 'mention'). */\nexport type InlineTypeName = Brand<string, 'InlineTypeName'>;\n\n// --- Constructor Functions ---\n\nexport function blockId(id: string): BlockId {\n\treturn id as BlockId;\n}\n\nexport function nodeType(name: string): NodeTypeName {\n\treturn name as NodeTypeName;\n}\n\nexport function markType(name: string): MarkTypeName {\n\treturn name as MarkTypeName;\n}\n\nexport function pluginId(id: string): PluginId {\n\treturn id as PluginId;\n}\n\nexport function commandName(name: string): CommandName {\n\treturn name as CommandName;\n}\n\nexport function inlineType(name: string): InlineTypeName {\n\treturn name as InlineTypeName;\n}\n"],"names":["blockId","id","nodeType","name","markType","pluginId","commandName","inlineType"],"mappings":"AA4BO,SAASA,EAAQC,GACvB,OAAOA,CACR,CAEO,SAASC,EAASC,GACxB,OAAOA,CACR,CAEO,SAASC,EAASD,GACxB,OAAOA,CACR,CAEO,SAASE,EAASJ,GACxB,OAAOA,CACR,CAEO,SAASK,EAAYH,GAC3B,OAAOA,CACR,CAEO,SAASI,EAAWJ,GAC1B,OAAOA,CACR"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"XmlPatterns-DxQXGjP8.mjs","sources":["../../src/plugins/shared/XmlPatterns.ts"],"sourcesContent":["/**\n * Shared XML regex pattern fragments used by XmlDetector and XML language definition.\n *\n * Based on XML 1.0 spec Name production (simplified to ASCII + common extensions).\n */\n\n/** XML tag name pattern (string fragment for RegExp construction). */\nexport const XML_TAG_NAME = '[a-zA-Z_][\\\\w:.-]*';\n\n/** Optional attributes pattern (string fragment for RegExp construction). */\nexport const XML_ATTRS = '(?:\\\\s(?:[^>\"\\']|\"[^\"]*\"|\\'[^\\']*\\')*)?';\n"],"names":["XML_TAG_NAME","XML_ATTRS"],"mappings":"AAOO,MAAMA,EAAe,qBAGfC,EAAY"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-B93SPJT7.mjs","sources":["../../src/plugins/gap-cursor/locales/ar.ts"],"sourcesContent":["import type { GapCursorLocale } from '../GapCursorLocale.js';\n\nconst locale: GapCursorLocale = {\n\tgapCursorActive:\n\t\t'\\u0645\\u0624\\u0634\\u0631 \\u0627\\u0644\\u0641\\u062c\\u0648\\u0629 \\u0646\\u0634\\u0637. \\u0627\\u0643\\u062a\\u0628 \\u0644\\u0625\\u062f\\u0631\\u0627\\u062c \\u0641\\u0642\\u0631\\u0629 \\u062c\\u062f\\u064a\\u062f\\u0629.',\n};\n\nexport default locale;\n"],"names":["locale","gapCursorActive"],"mappings":"AAEA,MAAMA,EAA0B,CAC/BC,gBACC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-BAmGa08u.mjs","sources":["../../src/plugins/print/locales/ar.ts"],"sourcesContent":["import type { PrintLocale } from '../PrintLocale.js';\n\nconst locale: PrintLocale = {\n\tlabel: '\\u0637\\u0628\\u0627\\u0639\\u0629',\n\ttooltip: (shortcut: string) => `\\u0637\\u0628\\u0627\\u0639\\u0629 (${shortcut})`,\n\tprintingAnnouncement: '\\u062c\\u0627\\u0631\\u064d \\u0627\\u0644\\u0637\\u0628\\u0627\\u0639\\u0629',\n};\n\nexport default locale;\n"],"names":["locale","label","tooltip","shortcut","printingAnnouncement"],"mappings":"AAEA,MAAMA,EAAsB,CAC3BC,MAAO,QACPC,QAAUC,GAAqB,UAAmCA,KAClEC,qBAAsB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-BYNFEVLc.mjs","sources":["../../src/plugins/text-formatting/locales/ar.ts"],"sourcesContent":["import type { TextFormattingLocale } from '../TextFormattingLocale.js';\n\nconst locale: TextFormattingLocale = {\n\tboldLabel: 'غامق',\n\titalicLabel: 'مائل',\n\tunderlineLabel: 'تحته خط',\n};\n\nexport default locale;\n"],"names":["locale","boldLabel","italicLabel","underlineLabel"],"mappings":"AAEA,MAAMA,EAA+B,CACpCC,UAAW,OACXC,YAAa,OACbC,eAAgB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-Bnc7y8BP.mjs","sources":["../../src/plugins/horizontal-rule/locales/ar.ts"],"sourcesContent":["import type { HorizontalRuleLocale } from '../HorizontalRuleLocale.js';\n\nconst locale: HorizontalRuleLocale = {\n\tlabel: 'خط أفقي',\n\ttooltip: (shortcut: string) => `خط أفقي (${shortcut})`,\n};\n\nexport default locale;\n"],"names":["locale","label","tooltip","shortcut"],"mappings":"AAEA,MAAMA,EAA+B,CACpCC,MAAO,UACPC,QAAUC,GAAqB,YAAYA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-Bp3rDZky.mjs","sources":["../../src/plugins/blockquote/locales/ar.ts"],"sourcesContent":["import type { BlockquoteLocale } from '../BlockquoteLocale.js';\n\nconst locale: BlockquoteLocale = {\n\tlabel: 'اقتباس',\n\ttooltip: (shortcut: string) => `اقتباس (${shortcut})`,\n};\n\nexport default locale;\n"],"names":["locale","label","tooltip","shortcut"],"mappings":"AAEA,MAAMA,EAA2B,CAChCC,MAAO,SACPC,QAAUC,GAAqB,WAAWA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-BtOQ7lro.mjs","sources":["../../src/plugins/list/locales/ar.ts"],"sourcesContent":["import type { ListLocale } from '../ListLocale.js';\n\nconst locale: ListLocale = {\n\tbulletList: 'قائمة نقطية',\n\tnumberedList: 'قائمة مرقمة',\n\tchecklist: 'قائمة تحقق',\n};\n\nexport default locale;\n"],"names":["locale","bulletList","numberedList","checklist"],"mappings":"AAEA,MAAMA,EAAqB,CAC1BC,WAAY,cACZC,aAAc,cACdC,UAAW"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e={insertImage:"إدراج صورة",insertImageTooltip:"إدراج صورة",uploadFromComputer:"رفع من الحاسوب",uploadAria:"رفع صورة من الحاسوب",separator:"أو",urlPlaceholder:"https://...",urlAria:"رابط الصورة",insertButton:"إدراج",insertAria:"إدراج صورة",imageAria:(e,t,i)=>{const a=[e||"صورة"];return void 0!==t&&void 0!==i&&a.push(`${t} × ${i} بكسل`),a.join("، ")},resetToNaturalSize:"تمت إعادة الصورة إلى حجمها الطبيعي.",uploadFailed:"فشل رفع الصورة.",uploading:"...جارٍ الرفع",resizeHandleLabel:e=>`تغيير حجم ${{"top-left":"أعلى اليسار","top-right":"أعلى اليمين","bottom-left":"أسفل اليسار","bottom-right":"أسفل اليمين"}[e]??e}`,imageSelected:"تم تحديد الصورة.",altTextPrefix:"النص البديل: ",imageSizeAnnounce:(e,t)=>`الحجم: ${e} × ${t} بكسل.`,resizeHint:(e,t)=>`${e} / ${t} لتغيير الحجم.`,imageResized:(e,t)=>`تم تغيير حجم الصورة إلى ${e} × ${t} بكسل.`,keyboardResizeHint:(e,t)=>`${e} / ${t} لتغيير الحجم`};export{e as default};
|
|
2
|
-
//# sourceMappingURL=ar-C5JEHhw9.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-C5JEHhw9.mjs","sources":["../../src/plugins/image/locales/ar.ts"],"sourcesContent":["import type { ImageLocale } from '../ImageLocale.js';\n\nconst locale: ImageLocale = {\n\tinsertImage: '\\u0625\\u062f\\u0631\\u0627\\u062c \\u0635\\u0648\\u0631\\u0629',\n\tinsertImageTooltip: '\\u0625\\u062f\\u0631\\u0627\\u062c \\u0635\\u0648\\u0631\\u0629',\n\tuploadFromComputer: '\\u0631\\u0641\\u0639 \\u0645\\u0646 \\u0627\\u0644\\u062d\\u0627\\u0633\\u0648\\u0628',\n\tuploadAria:\n\t\t'\\u0631\\u0641\\u0639 \\u0635\\u0648\\u0631\\u0629 \\u0645\\u0646 \\u0627\\u0644\\u062d\\u0627\\u0633\\u0648\\u0628',\n\tseparator: '\\u0623\\u0648',\n\turlPlaceholder: 'https://...',\n\turlAria: '\\u0631\\u0627\\u0628\\u0637 \\u0627\\u0644\\u0635\\u0648\\u0631\\u0629',\n\tinsertButton: '\\u0625\\u062f\\u0631\\u0627\\u062c',\n\tinsertAria: '\\u0625\\u062f\\u0631\\u0627\\u062c \\u0635\\u0648\\u0631\\u0629',\n\timageAria: (alt: string, width?: number, height?: number) => {\n\t\tconst parts: string[] = [alt || '\\u0635\\u0648\\u0631\\u0629'];\n\t\tif (width !== undefined && height !== undefined) {\n\t\t\tparts.push(`${width} \\u00d7 ${height} \\u0628\\u0643\\u0633\\u0644`);\n\t\t}\n\t\treturn parts.join('\\u060c ');\n\t},\n\tresetToNaturalSize:\n\t\t'\\u062a\\u0645\\u062a \\u0625\\u0639\\u0627\\u062f\\u0629 \\u0627\\u0644\\u0635\\u0648\\u0631\\u0629 \\u0625\\u0644\\u0649 \\u062d\\u062c\\u0645\\u0647\\u0627 \\u0627\\u0644\\u0637\\u0628\\u064a\\u0639\\u064a.',\n\tuploadFailed: '\\u0641\\u0634\\u0644 \\u0631\\u0641\\u0639 \\u0627\\u0644\\u0635\\u0648\\u0631\\u0629.',\n\tuploading: '...\\u062c\\u0627\\u0631\\u064d \\u0627\\u0644\\u0631\\u0641\\u0639',\n\tresizeHandleLabel: (position: string) => {\n\t\tconst positions: Record<string, string> = {\n\t\t\t'top-left': '\\u0623\\u0639\\u0644\\u0649 \\u0627\\u0644\\u064a\\u0633\\u0627\\u0631',\n\t\t\t'top-right': '\\u0623\\u0639\\u0644\\u0649 \\u0627\\u0644\\u064a\\u0645\\u064a\\u0646',\n\t\t\t'bottom-left': '\\u0623\\u0633\\u0641\\u0644 \\u0627\\u0644\\u064a\\u0633\\u0627\\u0631',\n\t\t\t'bottom-right': '\\u0623\\u0633\\u0641\\u0644 \\u0627\\u0644\\u064a\\u0645\\u064a\\u0646',\n\t\t};\n\t\treturn `\\u062a\\u063a\\u064a\\u064a\\u0631 \\u062d\\u062c\\u0645 ${positions[position] ?? position}`;\n\t},\n\timageSelected:\n\t\t'\\u062a\\u0645 \\u062a\\u062d\\u062f\\u064a\\u062f \\u0627\\u0644\\u0635\\u0648\\u0631\\u0629.',\n\taltTextPrefix: '\\u0627\\u0644\\u0646\\u0635 \\u0627\\u0644\\u0628\\u062f\\u064a\\u0644: ',\n\timageSizeAnnounce: (w: number, h: number) =>\n\t\t`\\u0627\\u0644\\u062d\\u062c\\u0645: ${w} \\u00d7 ${h} \\u0628\\u0643\\u0633\\u0644.`,\n\tresizeHint: (shrink: string, grow: string) =>\n\t\t`${shrink} / ${grow} \\u0644\\u062a\\u063a\\u064a\\u064a\\u0631 \\u0627\\u0644\\u062d\\u062c\\u0645.`,\n\timageResized: (w: number, h: number) =>\n\t\t`\\u062a\\u0645 \\u062a\\u063a\\u064a\\u064a\\u0631 \\u062d\\u062c\\u0645 \\u0627\\u0644\\u0635\\u0648\\u0631\\u0629 \\u0625\\u0644\\u0649 ${w} \\u00d7 ${h} \\u0628\\u0643\\u0633\\u0644.`,\n\tkeyboardResizeHint: (shrink: string, grow: string) =>\n\t\t`${shrink} / ${grow} \\u0644\\u062a\\u063a\\u064a\\u064a\\u0631 \\u0627\\u0644\\u062d\\u062c\\u0645`,\n};\n\nexport default locale;\n"],"names":["locale","insertImage","insertImageTooltip","uploadFromComputer","uploadAria","separator","urlPlaceholder","urlAria","insertButton","insertAria","imageAria","alt","width","height","parts","push","join","resetToNaturalSize","uploadFailed","uploading","resizeHandleLabel","position","imageSelected","altTextPrefix","imageSizeAnnounce","w","h","resizeHint","shrink","grow","imageResized","keyboardResizeHint"],"mappings":"AAEA,MAAMA,EAAsB,CAC3BC,YAAa,aACbC,mBAAoB,aACpBC,mBAAoB,iBACpBC,WACC,sBACDC,UAAW,KACXC,eAAgB,cAChBC,QAAS,cACTC,aAAc,QACdC,WAAY,aACZC,UAAW,CAACC,EAAaC,EAAgBC,KACxC,MAAMC,EAAkB,CAACH,GAAO,QAIhC,YAHc,IAAVC,QAAkC,IAAXC,GAC1BC,EAAMC,KAAK,GAAGH,OAAgBC,UAExBC,EAAME,KAAK,OAEnBC,mBACC,sCACDC,aAAc,kBACdC,UAAW,gBACXC,kBAAoBC,GAOZ,aANmC,CACzC,WAAY,cACZ,YAAa,cACb,cAAe,cACf,eAAgB,eAEqDA,IAAaA,IAEpFC,cACC,mBACDC,cAAe,gBACfC,kBAAmB,CAACC,EAAWC,IAC9B,UAAmCD,OAAYC,UAChDC,WAAY,CAACC,EAAgBC,IAC5B,GAAGD,OAAYC,kBAChBC,aAAc,CAACL,EAAWC,IACzB,2BAA0HD,OAAYC,UACvIK,mBAAoB,CAACH,EAAgBC,IACpC,GAAGD,OAAYC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-CL3QL0tw.mjs","sources":["../../src/plugins/text-color/locales/ar.ts"],"sourcesContent":["import type { TextColorLocale } from '../TextColorLocale.js';\n\nconst locale: TextColorLocale = {\n\tlabel: 'لون النص',\n\ttooltip: 'لون النص',\n\tresetLabel: 'افتراضي',\n\tariaLabelPrefix: 'لون النص',\n};\n\nexport default locale;\n"],"names":["locale","label","tooltip","resetLabel","ariaLabelPrefix"],"mappings":"AAEA,MAAMA,EAA0B,CAC/BC,MAAO,WACPC,QAAS,WACTC,WAAY,UACZC,gBAAiB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-CYtG-XlN.mjs","sources":["../../src/plugins/alignment/locales/ar.ts"],"sourcesContent":["import type { AlignmentLocale } from '../AlignmentLocale.js';\n\nconst locale: AlignmentLocale = {\n\talignStart: 'محاذاة البداية',\n\talignCenter: 'توسيط',\n\talignEnd: 'محاذاة النهاية',\n\tjustify: 'ضبط',\n\ttoolbarLabel: 'المحاذاة',\n\ttoolbarTooltip: 'المحاذاة',\n};\n\nexport default locale;\n"],"names":["locale","alignStart","alignCenter","alignEnd","justify","toolbarLabel","toolbarTooltip"],"mappings":"AAEA,MAAMA,EAA0B,CAC/BC,WAAY,iBACZC,YAAa,QACbC,SAAU,iBACVC,QAAS,MACTC,aAAc,WACdC,eAAgB"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e={insertRowAbove:"إدراج صف أعلى",insertRowBelow:"إدراج صف أسفل",insertColumnLeft:"إدراج عمود على اليسار",insertColumnRight:"إدراج عمود على اليمين",deleteRow:"حذف الصف",deleteColumn:"حذف العمود",borderColorLabel:"لون الحدود…",deleteTable:"حذف الجدول",tableActions:"إجراءات الجدول",menuKeyboardHint:"↑↓ تنقل · Enter تحديد · Esc إغلاق",insertRow:"إدراج صف",insertColumn:"إدراج عمود",addRow:"إضافة صف",addColumn:"إضافة عمود",tableActionsHint:"إجراءات الجدول (انقر بزر الماوس الأيمن أو Shift+F10)",contextMenuHint:"انقر بزر الماوس الأيمن أو Shift+F10 لإجراءات الجدول",borderColor:"لون الحدود",defaultColor:"افتراضي",noBorders:"بدون حدود",borderColorPicker:"منتقي لون الحدود",announceBorderColorSet:e=>`تم تعيين لون حدود الجدول إلى ${e}`,announceBorderReset:"تم إعادة تعيين حدود الجدول إلى الافتراضي",borderSwatchLabel:e=>`حدود ${e}`,announceRowInsertedAbove:"تم إدراج صف أعلى",announceRowInsertedBelow:"تم إدراج صف أسفل",announceColumnInserted:e=>`تم إدراج عمود ${e}`,announceRowDeleted:"تم حذف الصف",announceColumnDeleted:"تم حذف العمود",announceTableDeleted:"تم حذف الجدول",insertTable:"إدراج جدول",tableAriaLabel:(e,n)=>`جدول من ${e} صفوف و ${n} أعمدة`,tableAriaDescription:"انقر بزر الماوس الأيمن أو Shift+F10 لإجراءات الجدول"};export{e as default};
|
|
2
|
-
//# sourceMappingURL=ar-CzVj8p__.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-CzVj8p__.mjs","sources":["../../src/plugins/table/locales/ar.ts"],"sourcesContent":["import type { TableLocale } from '../TableLocale.js';\n\nconst locale: TableLocale = {\n\tinsertRowAbove: '\\u0625\\u062f\\u0631\\u0627\\u062c \\u0635\\u0641 \\u0623\\u0639\\u0644\\u0649',\n\tinsertRowBelow: '\\u0625\\u062f\\u0631\\u0627\\u062c \\u0635\\u0641 \\u0623\\u0633\\u0641\\u0644',\n\tinsertColumnLeft:\n\t\t'\\u0625\\u062f\\u0631\\u0627\\u062c \\u0639\\u0645\\u0648\\u062f \\u0639\\u0644\\u0649 \\u0627\\u0644\\u064a\\u0633\\u0627\\u0631',\n\tinsertColumnRight:\n\t\t'\\u0625\\u062f\\u0631\\u0627\\u062c \\u0639\\u0645\\u0648\\u062f \\u0639\\u0644\\u0649 \\u0627\\u0644\\u064a\\u0645\\u064a\\u0646',\n\tdeleteRow: '\\u062d\\u0630\\u0641 \\u0627\\u0644\\u0635\\u0641',\n\tdeleteColumn: '\\u062d\\u0630\\u0641 \\u0627\\u0644\\u0639\\u0645\\u0648\\u062f',\n\tborderColorLabel: '\\u0644\\u0648\\u0646 \\u0627\\u0644\\u062d\\u062f\\u0648\\u062f\\u2026',\n\tdeleteTable: '\\u062d\\u0630\\u0641 \\u0627\\u0644\\u062c\\u062f\\u0648\\u0644',\n\n\ttableActions: '\\u0625\\u062c\\u0631\\u0627\\u0621\\u0627\\u062a \\u0627\\u0644\\u062c\\u062f\\u0648\\u0644',\n\tmenuKeyboardHint:\n\t\t'\\u2191\\u2193 \\u062a\\u0646\\u0642\\u0644 \\u00b7 Enter \\u062a\\u062d\\u062f\\u064a\\u062f \\u00b7 Esc \\u0625\\u063a\\u0644\\u0627\\u0642',\n\n\tinsertRow: '\\u0625\\u062f\\u0631\\u0627\\u062c \\u0635\\u0641',\n\tinsertColumn: '\\u0625\\u062f\\u0631\\u0627\\u062c \\u0639\\u0645\\u0648\\u062f',\n\taddRow: '\\u0625\\u0636\\u0627\\u0641\\u0629 \\u0635\\u0641',\n\taddColumn: '\\u0625\\u0636\\u0627\\u0641\\u0629 \\u0639\\u0645\\u0648\\u062f',\n\ttableActionsHint:\n\t\t'\\u0625\\u062c\\u0631\\u0627\\u0621\\u0627\\u062a \\u0627\\u0644\\u062c\\u062f\\u0648\\u0644 (\\u0627\\u0646\\u0642\\u0631 \\u0628\\u0632\\u0631 \\u0627\\u0644\\u0645\\u0627\\u0648\\u0633 \\u0627\\u0644\\u0623\\u064a\\u0645\\u0646 \\u0623\\u0648 Shift+F10)',\n\tcontextMenuHint:\n\t\t'\\u0627\\u0646\\u0642\\u0631 \\u0628\\u0632\\u0631 \\u0627\\u0644\\u0645\\u0627\\u0648\\u0633 \\u0627\\u0644\\u0623\\u064a\\u0645\\u0646 \\u0623\\u0648 Shift+F10 \\u0644\\u0625\\u062c\\u0631\\u0627\\u0621\\u0627\\u062a \\u0627\\u0644\\u062c\\u062f\\u0648\\u0644',\n\tborderColor: '\\u0644\\u0648\\u0646 \\u0627\\u0644\\u062d\\u062f\\u0648\\u062f',\n\n\tdefaultColor: '\\u0627\\u0641\\u062a\\u0631\\u0627\\u0636\\u064a',\n\tnoBorders: '\\u0628\\u062f\\u0648\\u0646 \\u062d\\u062f\\u0648\\u062f',\n\tborderColorPicker:\n\t\t'\\u0645\\u0646\\u062a\\u0642\\u064a \\u0644\\u0648\\u0646 \\u0627\\u0644\\u062d\\u062f\\u0648\\u062f',\n\tannounceBorderColorSet: (colorName: string) =>\n\t\t`\\u062a\\u0645 \\u062a\\u0639\\u064a\\u064a\\u0646 \\u0644\\u0648\\u0646 \\u062d\\u062f\\u0648\\u062f \\u0627\\u0644\\u062c\\u062f\\u0648\\u0644 \\u0625\\u0644\\u0649 ${colorName}`,\n\tannounceBorderReset:\n\t\t'\\u062a\\u0645 \\u0625\\u0639\\u0627\\u062f\\u0629 \\u062a\\u0639\\u064a\\u064a\\u0646 \\u062d\\u062f\\u0648\\u062f \\u0627\\u0644\\u062c\\u062f\\u0648\\u0644 \\u0625\\u0644\\u0649 \\u0627\\u0644\\u0627\\u0641\\u062a\\u0631\\u0627\\u0636\\u064a',\n\tborderSwatchLabel: (colorName: string) => `\\u062d\\u062f\\u0648\\u062f ${colorName}`,\n\n\tannounceRowInsertedAbove:\n\t\t'\\u062a\\u0645 \\u0625\\u062f\\u0631\\u0627\\u062c \\u0635\\u0641 \\u0623\\u0639\\u0644\\u0649',\n\tannounceRowInsertedBelow:\n\t\t'\\u062a\\u0645 \\u0625\\u062f\\u0631\\u0627\\u062c \\u0635\\u0641 \\u0623\\u0633\\u0641\\u0644',\n\tannounceColumnInserted: (side: string) =>\n\t\t`\\u062a\\u0645 \\u0625\\u062f\\u0631\\u0627\\u062c \\u0639\\u0645\\u0648\\u062f ${side}`,\n\tannounceRowDeleted: '\\u062a\\u0645 \\u062d\\u0630\\u0641 \\u0627\\u0644\\u0635\\u0641',\n\tannounceColumnDeleted: '\\u062a\\u0645 \\u062d\\u0630\\u0641 \\u0627\\u0644\\u0639\\u0645\\u0648\\u062f',\n\tannounceTableDeleted: '\\u062a\\u0645 \\u062d\\u0630\\u0641 \\u0627\\u0644\\u062c\\u062f\\u0648\\u0644',\n\n\tinsertTable: '\\u0625\\u062f\\u0631\\u0627\\u062c \\u062c\\u062f\\u0648\\u0644',\n\n\ttableAriaLabel: (rows: number, cols: number) =>\n\t\t`\\u062c\\u062f\\u0648\\u0644 \\u0645\\u0646 ${rows} \\u0635\\u0641\\u0648\\u0641 \\u0648 ${cols} \\u0623\\u0639\\u0645\\u062f\\u0629`,\n\ttableAriaDescription:\n\t\t'\\u0627\\u0646\\u0642\\u0631 \\u0628\\u0632\\u0631 \\u0627\\u0644\\u0645\\u0627\\u0648\\u0633 \\u0627\\u0644\\u0623\\u064a\\u0645\\u0646 \\u0623\\u0648 Shift+F10 \\u0644\\u0625\\u062c\\u0631\\u0627\\u0621\\u0627\\u062a \\u0627\\u0644\\u062c\\u062f\\u0648\\u0644',\n};\n\nexport default locale;\n"],"names":["locale","insertRowAbove","insertRowBelow","insertColumnLeft","insertColumnRight","deleteRow","deleteColumn","borderColorLabel","deleteTable","tableActions","menuKeyboardHint","insertRow","insertColumn","addRow","addColumn","tableActionsHint","contextMenuHint","borderColor","defaultColor","noBorders","borderColorPicker","announceBorderColorSet","colorName","announceBorderReset","borderSwatchLabel","announceRowInsertedAbove","announceRowInsertedBelow","announceColumnInserted","side","announceRowDeleted","announceColumnDeleted","announceTableDeleted","insertTable","tableAriaLabel","rows","cols","tableAriaDescription"],"mappings":"AAEA,MAAMA,EAAsB,CAC3BC,eAAgB,gBAChBC,eAAgB,gBAChBC,iBACC,wBACDC,kBACC,wBACDC,UAAW,WACXC,aAAc,aACdC,iBAAkB,cAClBC,YAAa,aAEbC,aAAc,iBACdC,iBACC,oCAEDC,UAAW,WACXC,aAAc,aACdC,OAAQ,WACRC,UAAW,aACXC,iBACC,uDACDC,gBACC,sDACDC,YAAa,aAEbC,aAAc,UACdC,UAAW,YACXC,kBACC,mBACDC,uBAAyBC,GACxB,gCAAmJA,IACpJC,oBACC,2CACDC,kBAAoBF,GAAsB,QAA4BA,IAEtEG,yBACC,mBACDC,yBACC,mBACDC,uBAAyBC,GACxB,iBAAwEA,IACzEC,mBAAoB,cACpBC,sBAAuB,gBACvBC,qBAAsB,gBAEtBC,YAAa,aAEbC,eAAgB,CAACC,EAAcC,IAC9B,WAAyCD,YAAwCC,UAClFC,qBACC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-D7PS3e2g.mjs","sources":["../../src/plugins/toolbar/locales/ar.ts"],"sourcesContent":["import type { ToolbarLocale } from '../ToolbarLocale.js';\n\nconst locale: ToolbarLocale = {\n\tformattingOptionsAria:\n\t\t'\\u062e\\u064a\\u0627\\u0631\\u0627\\u062a \\u0627\\u0644\\u062a\\u0646\\u0633\\u064a\\u0642',\n\tmoreToolsAria: '\\u0623\\u062f\\u0648\\u0627\\u062a \\u0625\\u0636\\u0627\\u0641\\u064a\\u0629',\n\tgridPickerLabel: (rows: number, cols: number) => `${rows} \\u00d7 ${cols}`,\n};\n\nexport default locale;\n"],"names":["locale","formattingOptionsAria","moreToolsAria","gridPickerLabel","rows","cols"],"mappings":"AAEA,MAAMA,EAAwB,CAC7BC,sBACC,iBACDC,cAAe,eACfC,gBAAiB,CAACC,EAAcC,IAAiB,GAAGD,OAAeC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const a={paragraph:"فقرة",heading1:"عنوان 1",heading2:"عنوان 2",heading3:"عنوان 3",heading4:"عنوان 4",heading5:"عنوان 5",heading6:"عنوان 6",codeBlock:"كتلة برمجية",blockquote:"اقتباس",listItem:"عنصر قائمة",horizontalRule:"خط أفقي",image:"صورة",table:"جدول"};export{a as default};
|
|
2
|
-
//# sourceMappingURL=ar-D8adM2Uy.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-D8adM2Uy.mjs","sources":["../../src/plugins/caret-navigation/locales/ar.ts"],"sourcesContent":["import type { CaretNavigationLocale } from '../CaretNavigationLocale.js';\n\nconst locale: CaretNavigationLocale = {\n\tparagraph: 'فقرة',\n\theading1: 'عنوان 1',\n\theading2: 'عنوان 2',\n\theading3: 'عنوان 3',\n\theading4: 'عنوان 4',\n\theading5: 'عنوان 5',\n\theading6: 'عنوان 6',\n\tcodeBlock: 'كتلة برمجية',\n\tblockquote: 'اقتباس',\n\tlistItem: 'عنصر قائمة',\n\thorizontalRule: 'خط أفقي',\n\timage: 'صورة',\n\ttable: 'جدول',\n};\n\nexport default locale;\n"],"names":["locale","paragraph","heading1","heading2","heading3","heading4","heading5","heading6","codeBlock","blockquote","listItem","horizontalRule","image","table"],"mappings":"AAEA,MAAMA,EAAgC,CACrCC,UAAW,OACXC,SAAU,UACVC,SAAU,UACVC,SAAU,UACVC,SAAU,UACVC,SAAU,UACVC,SAAU,UACVC,UAAW,cACXC,WAAY,SACZC,SAAU,aACVC,eAAgB,UAChBC,MAAO,OACPC,MAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-D9jyShaB.mjs","sources":["../../src/plugins/super-sub/locales/ar.ts"],"sourcesContent":["import type { SuperSubLocale } from '../SuperSubLocale.js';\n\nconst locale: SuperSubLocale = {\n\tsuperscriptLabel: '\\u0645\\u0631\\u062a\\u0641\\u0639',\n\tsuperscriptTooltip: (shortcut: string) => `\\u0645\\u0631\\u062a\\u0641\\u0639 (${shortcut})`,\n\tsubscriptLabel: '\\u0645\\u0646\\u062e\\u0641\\u0636',\n\tsubscriptTooltip: (shortcut: string) => `\\u0645\\u0646\\u062e\\u0641\\u0636 (${shortcut})`,\n};\n\nexport default locale;\n"],"names":["locale","superscriptLabel","superscriptTooltip","shortcut","subscriptLabel","subscriptTooltip"],"mappings":"AAEA,MAAMA,EAAyB,CAC9BC,iBAAkB,QAClBC,mBAAqBC,GAAqB,UAAmCA,KAC7EC,eAAgB,QAChBC,iBAAmBF,GAAqB,UAAmCA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-DR6OA3ZO.mjs","sources":["../../src/plugins/font-size/locales/ar.ts"],"sourcesContent":["import type { FontSizeLocale } from '../FontSizeLocale.js';\n\nconst locale: FontSizeLocale = {\n\tlabel: 'حجم الخط',\n\ttooltip: 'حجم الخط',\n\tcustomFontSizeAria: 'حجم خط مخصص',\n\tfontSizesAria: 'أحجام الخط',\n};\n\nexport default locale;\n"],"names":["locale","label","tooltip","customFontSizeAria","fontSizesAria"],"mappings":"AAEA,MAAMA,EAAyB,CAC9BC,MAAO,WACPC,QAAS,WACTC,mBAAoB,cACpBC,cAAe"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-Deibepjm.mjs","sources":["../../src/plugins/link/locales/ar.ts"],"sourcesContent":["import type { LinkLocale } from '../LinkLocale.js';\n\nconst locale: LinkLocale = {\n\tlabel: 'رابط',\n\ttooltip: (shortcut: string) => `إدراج رابط (${shortcut})`,\n\tremoveLink: 'إزالة الرابط',\n\tremoveLinkAria: 'إزالة الرابط',\n\turlPlaceholder: 'https://...',\n\turlAria: 'عنوان الرابط',\n\tapply: 'تطبيق',\n\tapplyAria: 'تطبيق الرابط',\n};\n\nexport default locale;\n"],"names":["locale","label","tooltip","shortcut","removeLink","removeLinkAria","urlPlaceholder","urlAria","apply","applyAria"],"mappings":"AAEA,MAAMA,EAAqB,CAC1BC,MAAO,OACPC,QAAUC,GAAqB,eAAeA,KAC9CC,WAAY,eACZC,eAAgB,eAChBC,eAAgB,cAChBC,QAAS,eACTC,MAAO,QACPC,UAAW"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-Dlb5riUN.mjs","sources":["../../src/plugins/font/locales/ar.ts"],"sourcesContent":["import type { FontLocale } from '../FontLocale.js';\n\nconst locale: FontLocale = {\n\tlabel: 'الخط',\n\ttooltip: 'عائلة الخط',\n};\n\nexport default locale;\n"],"names":["locale","label","tooltip"],"mappings":"AAEA,MAAMA,EAAqB,CAC1BC,MAAO,OACPC,QAAS"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e={label:"كتلة كود",tooltip:e=>e?`كتلة كود (${e})`:"كتلة كود",enteredCodeBlock:"تم الدخول إلى كتلة الكود. اضغط Escape للخروج.",leftCodeBlock:"تم الخروج من كتلة الكود.",copyCodeAria:"نسخ الكود",escToExit:"Esc للخروج",codeBlockAriaLabel:e=>`كتلة كود ${e}. اضغط Escape للخروج.`,copiedToClipboard:"تم النسخ إلى الحافظة"};export{e as default};
|
|
2
|
-
//# sourceMappingURL=ar-DmmxE2W7.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-DmmxE2W7.mjs","sources":["../../src/plugins/code-block/locales/ar.ts"],"sourcesContent":["import type { CodeBlockLocale } from '../CodeBlockLocale.js';\n\nconst locale: CodeBlockLocale = {\n\tlabel: '\\u0643\\u062a\\u0644\\u0629 \\u0643\\u0648\\u062f',\n\ttooltip: (shortcut?: string) =>\n\t\tshortcut\n\t\t\t? `\\u0643\\u062a\\u0644\\u0629 \\u0643\\u0648\\u062f (${shortcut})`\n\t\t\t: '\\u0643\\u062a\\u0644\\u0629 \\u0643\\u0648\\u062f',\n\tenteredCodeBlock:\n\t\t'\\u062a\\u0645 \\u0627\\u0644\\u062f\\u062e\\u0648\\u0644 \\u0625\\u0644\\u0649 \\u0643\\u062a\\u0644\\u0629 \\u0627\\u0644\\u0643\\u0648\\u062f. \\u0627\\u0636\\u063a\\u0637 Escape \\u0644\\u0644\\u062e\\u0631\\u0648\\u062c.',\n\tleftCodeBlock:\n\t\t'\\u062a\\u0645 \\u0627\\u0644\\u062e\\u0631\\u0648\\u062c \\u0645\\u0646 \\u0643\\u062a\\u0644\\u0629 \\u0627\\u0644\\u0643\\u0648\\u062f.',\n\tcopyCodeAria: '\\u0646\\u0633\\u062e \\u0627\\u0644\\u0643\\u0648\\u062f',\n\tescToExit: 'Esc \\u0644\\u0644\\u062e\\u0631\\u0648\\u062c',\n\tcodeBlockAriaLabel: (lang: string) =>\n\t\t`\\u0643\\u062a\\u0644\\u0629 \\u0643\\u0648\\u062f ${lang}. \\u0627\\u0636\\u063a\\u0637 Escape \\u0644\\u0644\\u062e\\u0631\\u0648\\u062c.`,\n\tcopiedToClipboard:\n\t\t'\\u062a\\u0645 \\u0627\\u0644\\u0646\\u0633\\u062e \\u0625\\u0644\\u0649 \\u0627\\u0644\\u062d\\u0627\\u0641\\u0638\\u0629',\n};\n\nexport default locale;\n"],"names":["locale","label","tooltip","shortcut","enteredCodeBlock","leftCodeBlock","copyCodeAria","escToExit","codeBlockAriaLabel","lang","copiedToClipboard"],"mappings":"AAEA,MAAMA,EAA0B,CAC/BC,MAAO,WACPC,QAAUC,GACTA,EACG,aAAgDA,KAChD,WACJC,iBACC,gDACDC,cACC,2BACDC,aAAc,YACdC,UAAW,aACXC,mBAAqBC,GACpB,YAA+CA,yBAChDC,kBACC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ar-Ds6Z2Gzf.mjs","sources":["../../src/plugins/strikethrough/locales/ar.ts"],"sourcesContent":["import type { StrikethroughLocale } from '../StrikethroughLocale.js';\n\nconst locale: StrikethroughLocale = {\n\tlabel: 'يتوسطه خط',\n\ttooltip: (shortcut: string) => `يتوسطه خط (${shortcut})`,\n};\n\nexport default locale;\n"],"names":["locale","label","tooltip","shortcut"],"mappings":"AAEA,MAAMA,EAA8B,CACnCC,MAAO,YACPC,QAAUC,GAAqB,cAAcA"}
|