@notectl/core 2.0.7 → 2.0.9
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 +1 -1
- package/dist/chunks/AlignmentPlugin-D1wmhWE6.mjs +2 -0
- package/dist/chunks/AlignmentPlugin-D1wmhWE6.mjs.map +1 -0
- package/dist/chunks/{AttributedMarkCommands-D_PYkbBt.mjs → AttributedMarkCommands-35jTbVRg.mjs} +2 -2
- package/dist/chunks/{AttributedMarkCommands-D_PYkbBt.mjs.map → AttributedMarkCommands-35jTbVRg.mjs.map} +1 -1
- package/dist/chunks/{BlockInsertion-DaG_4D31.mjs → BlockInsertion-DsnHLcvM.mjs} +2 -2
- package/dist/chunks/{BlockInsertion-DaG_4D31.mjs.map → BlockInsertion-DsnHLcvM.mjs.map} +1 -1
- package/dist/chunks/BlockquotePlugin-Bwny0CP6.mjs +2 -0
- package/dist/chunks/BlockquotePlugin-Bwny0CP6.mjs.map +1 -0
- package/dist/chunks/CaretNavigationPlugin-C-rCDbu0.mjs +2 -0
- package/dist/chunks/CaretNavigationPlugin-C-rCDbu0.mjs.map +1 -0
- package/dist/chunks/CodeBlockPlugin-CNC290_q.mjs +2 -0
- package/dist/chunks/CodeBlockPlugin-CNC290_q.mjs.map +1 -0
- package/dist/chunks/{ColorGrid-BNDaG3b2.mjs → ColorGrid-BUSIBKZH.mjs} +1 -1
- package/dist/chunks/{ColorGrid-BNDaG3b2.mjs.map → ColorGrid-BUSIBKZH.mjs.map} +1 -1
- package/dist/chunks/{ColorPickerPopup-BwU_WZHh.mjs → ColorPickerPopup-CvE90IAu.mjs} +2 -2
- package/dist/chunks/{ColorPickerPopup-BwU_WZHh.mjs.map → ColorPickerPopup-CvE90IAu.mjs.map} +1 -1
- package/dist/chunks/{CommandHelpers-BoRO1KfE.mjs → CommandHelpers-DTlQcGv5.mjs} +2 -2
- package/dist/chunks/{CommandHelpers-BoRO1KfE.mjs.map → CommandHelpers-DTlQcGv5.mjs.map} +1 -1
- package/dist/chunks/Commands-BuYF23lf.mjs +2 -0
- package/dist/chunks/Commands-BuYF23lf.mjs.map +1 -0
- package/dist/chunks/FontPlugin-z0QF1M5q.mjs +2 -0
- package/dist/chunks/FontPlugin-z0QF1M5q.mjs.map +1 -0
- package/dist/chunks/FontSizePlugin-DYKvhu9w.mjs +2 -0
- package/dist/chunks/FontSizePlugin-DYKvhu9w.mjs.map +1 -0
- package/dist/chunks/{GapCursorNavigation-PhJeqELx.mjs → GapCursorNavigation-BaXDnjFf.mjs} +2 -2
- package/dist/chunks/{GapCursorNavigation-PhJeqELx.mjs.map → GapCursorNavigation-BaXDnjFf.mjs.map} +1 -1
- package/dist/chunks/GapCursorPlugin-uxw7W7vj.mjs +2 -0
- package/dist/chunks/GapCursorPlugin-uxw7W7vj.mjs.map +1 -0
- package/dist/chunks/{HardBreakPlugin-BzAU3DoJ.mjs → HardBreakPlugin-BpXipf8h.mjs} +2 -2
- package/dist/chunks/{HardBreakPlugin-BzAU3DoJ.mjs.map → HardBreakPlugin-BpXipf8h.mjs.map} +1 -1
- package/dist/chunks/HeadingPlugin-CUN746aD.mjs +2 -0
- package/dist/chunks/{HeadingPlugin-1BVn57NF.mjs.map → HeadingPlugin-CUN746aD.mjs.map} +1 -1
- package/dist/chunks/HighlightPlugin-bbAi6W6k.mjs +2 -0
- package/dist/chunks/HighlightPlugin-bbAi6W6k.mjs.map +1 -0
- package/dist/chunks/HorizontalRulePlugin-D8w6paMa.mjs +2 -0
- package/dist/chunks/HorizontalRulePlugin-D8w6paMa.mjs.map +1 -0
- package/dist/chunks/ImagePlugin-De7lWcZ7.mjs +2 -0
- package/dist/chunks/ImagePlugin-De7lWcZ7.mjs.map +1 -0
- package/dist/chunks/InlineCodePlugin-DKQIYhTb.mjs +2 -0
- package/dist/chunks/InlineCodePlugin-DKQIYhTb.mjs.map +1 -0
- package/dist/chunks/LinkPlugin-BD7mcRHS.mjs +2 -0
- package/dist/chunks/LinkPlugin-BD7mcRHS.mjs.map +1 -0
- package/dist/chunks/ListPlugin-DbixSqMH.mjs +2 -0
- package/dist/chunks/{ListPlugin-Datp4nPR.mjs.map → ListPlugin-DbixSqMH.mjs.map} +1 -1
- package/dist/chunks/{NavigationQueries-_xQtPALX.mjs → NavigationQueries-CgYPG6oY.mjs} +1 -1
- package/dist/chunks/{NavigationQueries-_xQtPALX.mjs.map → NavigationQueries-CgYPG6oY.mjs.map} +1 -1
- package/dist/chunks/NodeSelectionCommands-Ddxu5Qck.mjs +2 -0
- package/dist/chunks/NodeSelectionCommands-Ddxu5Qck.mjs.map +1 -0
- package/dist/chunks/PluginHelpers-D1QF-YaF.mjs +2 -0
- package/dist/chunks/PluginHelpers-D1QF-YaF.mjs.map +1 -0
- package/dist/chunks/{shared-BLU27F7-.mjs → PopupKeyboardPatterns-DhcUe29m.mjs} +1 -1
- package/dist/chunks/PopupKeyboardPatterns-DhcUe29m.mjs.map +1 -0
- package/dist/chunks/PrintPlugin-DVRybXSN.mjs +2 -0
- package/dist/chunks/PrintPlugin-DVRybXSN.mjs.map +1 -0
- package/dist/chunks/{RangeIterator-CVUeIB4P.mjs → RangeIterator-DytL1lUT.mjs} +1 -1
- package/dist/chunks/{RangeIterator-CVUeIB4P.mjs.map → RangeIterator-DytL1lUT.mjs.map} +1 -1
- package/dist/chunks/SmartPastePlugin-i96yAnXZ.mjs +2 -0
- package/dist/chunks/SmartPastePlugin-i96yAnXZ.mjs.map +1 -0
- package/dist/chunks/StrikethroughPlugin-RGZATXUZ.mjs +2 -0
- package/dist/chunks/StrikethroughPlugin-RGZATXUZ.mjs.map +1 -0
- package/dist/chunks/SuperSubPlugin-BOWFP1Kr.mjs +2 -0
- package/dist/chunks/SuperSubPlugin-BOWFP1Kr.mjs.map +1 -0
- package/dist/chunks/TablePlugin-DZTMBkyu.mjs +2 -0
- package/dist/chunks/TablePlugin-DZTMBkyu.mjs.map +1 -0
- package/dist/chunks/TextColorPlugin-CB3RpTSQ.mjs +2 -0
- package/dist/chunks/TextColorPlugin-CB3RpTSQ.mjs.map +1 -0
- package/dist/chunks/{TextDirectionCorePlugin-CXCxX532.mjs → TextDirectionCorePlugin-tNecTcrX.mjs} +2 -2
- package/dist/chunks/{TextDirectionCorePlugin-CXCxX532.mjs.map → TextDirectionCorePlugin-tNecTcrX.mjs.map} +1 -1
- package/dist/chunks/TextDirectionLocale-_AUfZu9j.mjs +2 -0
- package/dist/chunks/{TextDirectionLocale-Kh3r4XQS.mjs.map → TextDirectionLocale-_AUfZu9j.mjs.map} +1 -1
- package/dist/chunks/TextFormattingPlugin-CZ6D-luc.mjs +2 -0
- package/dist/chunks/TextFormattingPlugin-CZ6D-luc.mjs.map +1 -0
- package/dist/chunks/ToolbarPlugin-2K96zYut.mjs +2 -0
- package/dist/chunks/ToolbarPlugin-2K96zYut.mjs.map +1 -0
- package/dist/chunks/WordBoundary-BE2u997Q.mjs +2 -0
- package/dist/chunks/WordBoundary-BE2u997Q.mjs.map +1 -0
- package/dist/chunks/XmlSupport-DG8PEZhO.mjs +2 -0
- package/dist/chunks/XmlSupport-DG8PEZhO.mjs.map +1 -0
- package/dist/chunks/ar--dzNQRg4.mjs +2 -0
- package/dist/chunks/{ar-DLxmSv7R.mjs.map → ar--dzNQRg4.mjs.map} +1 -1
- package/dist/chunks/{color-picker-D4Vi72Z_.mjs → color-picker-ChYYdC-r.mjs} +1 -1
- package/dist/chunks/{color-picker-D4Vi72Z_.mjs.map → color-picker-ChYYdC-r.mjs.map} +1 -1
- package/dist/chunks/de-C7Grl0t1.mjs +2 -0
- package/dist/chunks/de-C7Grl0t1.mjs.map +1 -0
- package/dist/chunks/{es-BL7KuLOg.mjs → es-BwmzRdDZ.mjs} +2 -2
- package/dist/chunks/es-BwmzRdDZ.mjs.map +1 -0
- package/dist/chunks/{fonts-B3hiRKxQ.mjs → fonts-CG_dDwvT.mjs} +1 -1
- package/dist/chunks/{fonts-B3hiRKxQ.mjs.map → fonts-CG_dDwvT.mjs.map} +1 -1
- package/dist/chunks/fr-CC7TYK5K.mjs +2 -0
- package/dist/chunks/{fr-GSoPohxY.mjs.map → fr-CC7TYK5K.mjs.map} +1 -1
- package/dist/chunks/full-B9IqlP6u.mjs +2 -0
- package/dist/chunks/{full-DCZ8MMpe.mjs.map → full-B9IqlP6u.mjs.map} +1 -1
- package/dist/chunks/{hi-CTb2tu17.mjs → hi-BtN2T9la.mjs} +2 -2
- package/dist/chunks/{hi-CTb2tu17.mjs.map → hi-BtN2T9la.mjs.map} +1 -1
- package/dist/chunks/minimal-J-u7e_pr.mjs +2 -0
- package/dist/chunks/{minimal-DmYfqOxb.mjs.map → minimal-J-u7e_pr.mjs.map} +1 -1
- package/dist/chunks/{pt-BattAVOq.mjs → pt-B59gJzMS.mjs} +2 -2
- package/dist/chunks/pt-B59gJzMS.mjs.map +1 -0
- package/dist/chunks/{ru-U-UhwubV.mjs → ru-KBX9Y7TT.mjs} +2 -2
- package/dist/chunks/{ru-U-UhwubV.mjs.map → ru-KBX9Y7TT.mjs.map} +1 -1
- package/dist/chunks/src-DPhUQ25M.mjs +2 -0
- package/dist/chunks/src-DPhUQ25M.mjs.map +1 -0
- package/dist/chunks/{text-direction-advanced-CkFu0K_I.mjs → text-direction-advanced-S4MgVMLX.mjs} +2 -2
- package/dist/chunks/{text-direction-advanced-CkFu0K_I.mjs.map → text-direction-advanced-S4MgVMLX.mjs.map} +1 -1
- package/dist/chunks/{zh-TXVgSc3H.mjs → zh-D4eu30KQ.mjs} +2 -2
- package/dist/chunks/{zh-TXVgSc3H.mjs.map → zh-D4eu30KQ.mjs.map} +1 -1
- package/dist/commands/CommandHelpers.d.ts +13 -0
- package/dist/commands/CommandHelpers.d.ts.map +1 -1
- package/dist/commands/DeleteCommands.d.ts.map +1 -1
- package/dist/editor/EditorConfig.d.ts +7 -0
- package/dist/editor/EditorConfig.d.ts.map +1 -1
- package/dist/editor/EditorLocale.d.ts.map +1 -1
- package/dist/editor/styles/code-block.d.ts.map +1 -1
- package/dist/fonts.mjs +1 -1
- package/dist/full.mjs +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/notectl-core.mjs +1 -1
- package/dist/notectl-core.umd.js +1 -1
- package/dist/notectl-core.umd.js.map +1 -1
- package/dist/plugins/CommandRegistry.d.ts +3 -0
- package/dist/plugins/CommandRegistry.d.ts.map +1 -1
- package/dist/plugins/EventBus.d.ts +3 -0
- package/dist/plugins/EventBus.d.ts.map +1 -1
- package/dist/plugins/Logger.d.ts +50 -0
- package/dist/plugins/Logger.d.ts.map +1 -0
- package/dist/plugins/MiddlewareChain.d.ts +3 -0
- package/dist/plugins/MiddlewareChain.d.ts.map +1 -1
- package/dist/plugins/PluginContextFactory.d.ts +2 -0
- package/dist/plugins/PluginContextFactory.d.ts.map +1 -1
- package/dist/plugins/PluginLifecycle.d.ts +3 -1
- package/dist/plugins/PluginLifecycle.d.ts.map +1 -1
- package/dist/plugins/PluginManager.d.ts +14 -1
- package/dist/plugins/PluginManager.d.ts.map +1 -1
- package/dist/plugins/alignment/AlignmentLocale.d.ts.map +1 -1
- package/dist/plugins/alignment.mjs +1 -1
- package/dist/plugins/blockquote/BlockquoteLocale.d.ts.map +1 -1
- package/dist/plugins/blockquote.mjs +1 -1
- package/dist/plugins/caret-navigation/CaretNavigationLocale.d.ts.map +1 -1
- package/dist/plugins/caret-navigation.mjs +1 -1
- package/dist/plugins/code-block/CodeBlockCommands.d.ts.map +1 -1
- package/dist/plugins/code-block/CodeBlockLocale.d.ts +4 -0
- package/dist/plugins/code-block/CodeBlockLocale.d.ts.map +1 -1
- package/dist/plugins/code-block/CodeBlockNodeView.d.ts +13 -1
- package/dist/plugins/code-block/CodeBlockNodeView.d.ts.map +1 -1
- package/dist/plugins/code-block/CodeBlockPlugin.d.ts.map +1 -1
- package/dist/plugins/code-block/CodeBlockService.d.ts +2 -2
- package/dist/plugins/code-block/CodeBlockService.d.ts.map +1 -1
- package/dist/plugins/code-block/LanguagePicker.d.ts +14 -0
- package/dist/plugins/code-block/LanguagePicker.d.ts.map +1 -0
- package/dist/plugins/code-block/highlighter/RegexTokenizer.d.ts.map +1 -1
- package/dist/plugins/code-block/highlighter/TokenizerTypes.d.ts +1 -1
- package/dist/plugins/code-block/highlighter/TokenizerTypes.d.ts.map +1 -1
- package/dist/plugins/code-block/locales/ar.d.ts.map +1 -1
- package/dist/plugins/code-block/locales/de.d.ts.map +1 -1
- package/dist/plugins/code-block/locales/es.d.ts.map +1 -1
- package/dist/plugins/code-block/locales/fr.d.ts.map +1 -1
- package/dist/plugins/code-block/locales/hi.d.ts.map +1 -1
- package/dist/plugins/code-block/locales/pt.d.ts.map +1 -1
- package/dist/plugins/code-block/locales/ru.d.ts.map +1 -1
- package/dist/plugins/code-block/locales/zh.d.ts.map +1 -1
- package/dist/plugins/code-block.mjs +1 -1
- package/dist/plugins/font/FontLocale.d.ts.map +1 -1
- package/dist/plugins/font-size/FontSizeLocale.d.ts.map +1 -1
- package/dist/plugins/font-size.mjs +1 -1
- package/dist/plugins/font.mjs +1 -1
- package/dist/plugins/gap-cursor/GapCursorLocale.d.ts.map +1 -1
- package/dist/plugins/gap-cursor.mjs +1 -1
- package/dist/plugins/hard-break.mjs +1 -1
- package/dist/plugins/heading/HeadingLocale.d.ts.map +1 -1
- package/dist/plugins/heading.mjs +1 -1
- package/dist/plugins/highlight/HighlightLocale.d.ts.map +1 -1
- package/dist/plugins/highlight.mjs +1 -1
- package/dist/plugins/horizontal-rule/HorizontalRuleLocale.d.ts.map +1 -1
- package/dist/plugins/horizontal-rule.mjs +1 -1
- package/dist/plugins/image/ImageLocale.d.ts.map +1 -1
- package/dist/plugins/image.mjs +1 -1
- package/dist/plugins/inline-code/InlineCodeLocale.d.ts.map +1 -1
- package/dist/plugins/inline-code.mjs +1 -1
- package/dist/plugins/language.mjs +1 -1
- package/dist/plugins/link/LinkLocale.d.ts.map +1 -1
- package/dist/plugins/link.mjs +1 -1
- package/dist/plugins/list/ListLocale.d.ts.map +1 -1
- package/dist/plugins/list.mjs +1 -1
- package/dist/plugins/print/PrintLocale.d.ts.map +1 -1
- package/dist/plugins/print.mjs +1 -1
- package/dist/plugins/shared/LocaleLoader.d.ts +49 -0
- package/dist/plugins/shared/LocaleLoader.d.ts.map +1 -0
- package/dist/plugins/shared/index.d.ts +1 -0
- package/dist/plugins/shared/index.d.ts.map +1 -1
- package/dist/plugins/shared.mjs +1 -1
- package/dist/plugins/smart-paste/SmartPasteLocale.d.ts.map +1 -1
- package/dist/plugins/smart-paste.mjs +1 -1
- package/dist/plugins/strikethrough/StrikethroughLocale.d.ts.map +1 -1
- package/dist/plugins/strikethrough.mjs +1 -1
- package/dist/plugins/super-sub/SuperSubLocale.d.ts.map +1 -1
- package/dist/plugins/super-sub.mjs +1 -1
- package/dist/plugins/table/TableCommands.d.ts.map +1 -1
- package/dist/plugins/table/TableLocale.d.ts.map +1 -1
- package/dist/plugins/table.mjs +1 -1
- package/dist/plugins/text-color/TextColorLocale.d.ts.map +1 -1
- package/dist/plugins/text-color.mjs +1 -1
- package/dist/plugins/text-direction/TextDirectionLocale.d.ts.map +1 -1
- package/dist/plugins/text-direction-advanced.mjs +1 -1
- package/dist/plugins/text-direction.mjs +1 -1
- package/dist/plugins/text-formatting/TextFormattingLocale.d.ts.map +1 -1
- package/dist/plugins/text-formatting.mjs +1 -1
- package/dist/plugins/toolbar/ToolbarLocale.d.ts.map +1 -1
- package/dist/plugins/toolbar.mjs +1 -1
- package/dist/presets/full.mjs +1 -1
- package/dist/presets/minimal.mjs +1 -1
- package/dist/presets.mjs +1 -1
- package/dist/state/EditorState.d.ts +2 -0
- package/dist/state/EditorState.d.ts.map +1 -1
- package/dist/view/EditorView.d.ts +11 -1
- package/dist/view/EditorView.d.ts.map +1 -1
- package/package.json +11 -11
- package/dist/chunks/AlignmentPlugin-CD11uRY3.mjs +0 -2
- package/dist/chunks/AlignmentPlugin-CD11uRY3.mjs.map +0 -1
- package/dist/chunks/BlockquotePlugin-DpMA33pk.mjs +0 -2
- package/dist/chunks/BlockquotePlugin-DpMA33pk.mjs.map +0 -1
- package/dist/chunks/CaretNavigationPlugin-BxU2lMwX.mjs +0 -2
- package/dist/chunks/CaretNavigationPlugin-BxU2lMwX.mjs.map +0 -1
- package/dist/chunks/CodeBlockPlugin-CSb6Fxce.mjs +0 -2
- package/dist/chunks/CodeBlockPlugin-CSb6Fxce.mjs.map +0 -1
- package/dist/chunks/Commands-C7zBYmhA.mjs +0 -2
- package/dist/chunks/Commands-C7zBYmhA.mjs.map +0 -1
- package/dist/chunks/FontPlugin-CUVcS-40.mjs +0 -2
- package/dist/chunks/FontPlugin-CUVcS-40.mjs.map +0 -1
- package/dist/chunks/FontSizePlugin-a8YyFsjf.mjs +0 -2
- package/dist/chunks/FontSizePlugin-a8YyFsjf.mjs.map +0 -1
- package/dist/chunks/GapCursorPlugin-9V0Ne0Sw.mjs +0 -2
- package/dist/chunks/GapCursorPlugin-9V0Ne0Sw.mjs.map +0 -1
- package/dist/chunks/HeadingPlugin-1BVn57NF.mjs +0 -2
- package/dist/chunks/HighlightPlugin-7S6Y_IFY.mjs +0 -2
- package/dist/chunks/HighlightPlugin-7S6Y_IFY.mjs.map +0 -1
- package/dist/chunks/HorizontalRulePlugin-bZ4nat7E.mjs +0 -2
- package/dist/chunks/HorizontalRulePlugin-bZ4nat7E.mjs.map +0 -1
- package/dist/chunks/ImagePlugin-wz0SBhFQ.mjs +0 -2
- package/dist/chunks/ImagePlugin-wz0SBhFQ.mjs.map +0 -1
- package/dist/chunks/InlineCodePlugin-DW5_oiac.mjs +0 -2
- package/dist/chunks/InlineCodePlugin-DW5_oiac.mjs.map +0 -1
- package/dist/chunks/LinkPlugin-pWzPs-dS.mjs +0 -2
- package/dist/chunks/LinkPlugin-pWzPs-dS.mjs.map +0 -1
- package/dist/chunks/ListPlugin-Datp4nPR.mjs +0 -2
- package/dist/chunks/NodeSelectionCommands-BFHLrE5I.mjs +0 -2
- package/dist/chunks/NodeSelectionCommands-BFHLrE5I.mjs.map +0 -1
- package/dist/chunks/PluginHelpers-Db50-BRE.mjs +0 -2
- package/dist/chunks/PluginHelpers-Db50-BRE.mjs.map +0 -1
- package/dist/chunks/PrintPlugin-Dv8_E40e.mjs +0 -2
- package/dist/chunks/PrintPlugin-Dv8_E40e.mjs.map +0 -1
- package/dist/chunks/SmartPastePlugin-PCLFN5yA.mjs +0 -2
- package/dist/chunks/SmartPastePlugin-PCLFN5yA.mjs.map +0 -1
- package/dist/chunks/StrikethroughPlugin-J5eDn_sY.mjs +0 -2
- package/dist/chunks/StrikethroughPlugin-J5eDn_sY.mjs.map +0 -1
- package/dist/chunks/SuperSubPlugin-uSLscUwN.mjs +0 -2
- package/dist/chunks/SuperSubPlugin-uSLscUwN.mjs.map +0 -1
- package/dist/chunks/TablePlugin-DJHHWTD2.mjs +0 -2
- package/dist/chunks/TablePlugin-DJHHWTD2.mjs.map +0 -1
- package/dist/chunks/TextColorPlugin-CawTv5pV.mjs +0 -2
- package/dist/chunks/TextColorPlugin-CawTv5pV.mjs.map +0 -1
- package/dist/chunks/TextDirectionLocale-Kh3r4XQS.mjs +0 -2
- package/dist/chunks/TextFormattingPlugin-DKgwX4Gy.mjs +0 -2
- package/dist/chunks/TextFormattingPlugin-DKgwX4Gy.mjs.map +0 -1
- package/dist/chunks/ToolbarPlugin-BipA0zez.mjs +0 -2
- package/dist/chunks/ToolbarPlugin-BipA0zez.mjs.map +0 -1
- package/dist/chunks/WordBoundary-DI0G6Wk2.mjs +0 -2
- package/dist/chunks/WordBoundary-DI0G6Wk2.mjs.map +0 -1
- package/dist/chunks/XmlSupport-UA-iNWTl.mjs +0 -2
- package/dist/chunks/XmlSupport-UA-iNWTl.mjs.map +0 -1
- package/dist/chunks/ar-DLxmSv7R.mjs +0 -2
- package/dist/chunks/de-BnhP65y3.mjs +0 -2
- package/dist/chunks/de-BnhP65y3.mjs.map +0 -1
- package/dist/chunks/es-BL7KuLOg.mjs.map +0 -1
- package/dist/chunks/fr-GSoPohxY.mjs +0 -2
- package/dist/chunks/full-DCZ8MMpe.mjs +0 -2
- package/dist/chunks/minimal-DmYfqOxb.mjs +0 -2
- package/dist/chunks/pt-BattAVOq.mjs.map +0 -1
- package/dist/chunks/shared-BLU27F7-.mjs.map +0 -1
- package/dist/chunks/src-CgbuJfYr.mjs +0 -2
- package/dist/chunks/src-CgbuJfYr.mjs.map +0 -1
package/dist/chunks/{text-direction-advanced-CkFu0K_I.mjs → text-direction-advanced-S4MgVMLX.mjs}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{m as t,n as e}from"./Document-_qdGR4vh.mjs";import{l as i,o,u as r}from"./Selection-aeiSsvhe.mjs";import{i as n}from"./TypeBrands-BZDKMjR-.mjs";import{r as s}from"./HTMLUtils-B8xj8Z1x.mjs";import{i as a,r as l,t as c}from"./AttributedMarkCommands-
|
|
2
|
-
//# sourceMappingURL=text-direction-advanced-
|
|
1
|
+
import{m as t,n as e}from"./Document-_qdGR4vh.mjs";import{l as i,o,u as r}from"./Selection-aeiSsvhe.mjs";import{i as n}from"./TypeBrands-BZDKMjR-.mjs";import{r as s}from"./HTMLUtils-B8xj8Z1x.mjs";import{i as a,r as l,t as c}from"./AttributedMarkCommands-35jTbVRg.mjs";import{r as d}from"./Platform-D9TRT4Mn.mjs";import{i as h,n as u}from"./PluginHelpers-D1QF-YaF.mjs";import{t as m}from"./ShortcutFormatting-DE6B8iGs.mjs";import{a as g,i as p,n as f,o as b,r as v,t as T}from"./TextDirectionLocale-_AUfZu9j.mjs";function y(t,e,i){const o=t.getNodePath(e.id);if(o)return{type:"setNodeAttr",path:o,attrs:{...e.attrs,dir:i},previousAttrs:e.attrs}}function B(i,o,r,n){const s=o.getBlock(i.blockId);if(!s||!r.has(s.type))return;const a=t(s);if("auto"!==b(s)&&a.length>0)return;const l=e(s,i.offset),c=p(a.slice(0,l)+i.text+a.slice(l));if(!c)return;const d=y(o,s,c);d&&n.push(d)}function D(i,o,r,n){const s=o.getBlock(i.blockId);if(!s||!r.has(s.type))return;const a=b(s);if("auto"===a)return;const l=t(s),c=e(s,i.from),d=e(s,i.to),h=l.slice(0,c)+l.slice(d);if(0===h.length){const t=y(o,s,"auto");return void(t&&n.push(t))}const u=p(h);if(!u||u===a)return;const m=y(o,s,u);m&&n.push(m)}var w={directableTypes:["paragraph","heading","title","subtitle","table_cell","blockquote","list_item"]},L={ltr:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm12 8l-4-4v3H5v2h12v3l4-4z"/></svg>',rtl:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 10v5h2V4h2v11h2V4h2V2h-8C7.79 2 6 3.79 6 6s1.79 4 4 4zM8 14l-4 4 4 4v-3h12v-2H8v-3z"/></svg>',auto:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm3 8l-4-4v3H3v2h5v3l4-4zm7 0v-3l4 4-4 4v-3h-5v-2h5z"/></svg>'},S=["ltr","rtl","auto"],x=class{id="text-direction";name="Text Direction";priority=91;config;locale;directableTypes;shiftDirHandler=null;constructor(t){this.config={...w,...t}}async init(e){this.locale=await h(e,this.config.locale,T,f),this.directableTypes=new Set(this.config.directableTypes),this.patchNodeSpecs(e),this.registerBdiMark(e),this.registerCommands(e),this.registerKeymaps(e),this.registerToolbarItem(e),this.registerInlineToolbarItem(e),function(t,e){t.registerMiddleware((t,i,o)=>{let r=!1;const n=t.steps.map(t=>{if("setBlockType"!==t.type)return t;if(!e.has(t.nodeType))return t;const i=t.previousAttrs?.dir;return i&&"auto"!==i?(r=!0,{...t,attrs:{...t.attrs,dir:i}}):t});o(r?{...t,steps:n}:t)},{name:"text-direction:preserve-dir"})}(e,this.directableTypes),function(t,e){t.registerMiddleware((t,i,o)=>{const r=[];for(const n of t.steps)"insertText"===n.type?B(n,i,e,r):"deleteText"===n.type&&D(n,i,e,r);o(r.length>0?{...t,steps:[...t.steps,...r]}:t)},{name:"text-direction:auto-detect"})}(e,this.directableTypes),function(e,i){e.registerMiddleware((e,o,r)=>{let n=!1;const s=e.steps.map(e=>{if("insertNode"!==e.type)return e;if(!i.has(e.node.type))return e;if("auto"!==String(e.node.attrs?.dir??"auto"))return e;const r=t(e.node);if(r.length>0){const t=p(r);if(t)return n=!0,{...e,node:{...e.node,attrs:{...e.node.attrs,dir:t}}}}const s=g(o,e.parentPath,e.index);return s&&"auto"!==s?(n=!0,{...e,node:{...e.node,attrs:{...e.node.attrs,dir:s}}}):e});r(n?{...e,steps:s}:e)},{name:"text-direction:inherit-dir"})}(e,this.directableTypes),d()||(this.shiftDirHandler=new v(e),this.shiftDirHandler.attach(e.getContainer()))}destroy(){this.shiftDirHandler?.detach(),this.shiftDirHandler=null}patchNodeSpecs(t){const e=t.getSchemaRegistry();for(const i of this.config.directableTypes){const t=e.getNodeSpec(i);if(!t)continue;if(t.attrs?.dir)continue;const o=t.toDOM;e.removeNodeSpec(i),e.registerNodeSpec({...t,attrs:{...t.attrs,dir:{default:"auto"}},toDOM(e){const i=o.call(t,e);return M(i,e),i}})}}registerBdiMark(t){t.registerMarkSpec({type:"bdi",rank:10,attrs:{dir:{default:"auto"}},toDOM(t){const e=document.createElement("bdi"),i=String(t.attrs?.dir??"auto");return e.setAttribute("dir",i),e},toHTMLString:(t,e)=>`<bdi dir="${s(String(t.attrs?.dir??"auto"))}">${e}</bdi>`,parseHTML:[{tag:"bdi",getAttrs:t=>{const e=t.getAttribute("dir");return"ltr"===e||"rtl"===e?{dir:e}:{dir:"auto"}}}],sanitize:{tags:["bdi"],attrs:["dir"]}})}registerCommands(t){t.registerCommand("setDirectionLTR",()=>{const e=this.setDirection(t,"ltr");return e&&t.announce(this.locale.announceLTR),e}),t.registerCommand("setDirectionRTL",()=>{const e=this.setDirection(t,"rtl");return e&&t.announce(this.locale.announceRTL),e}),t.registerCommand("setDirectionAuto",()=>{const e=this.setDirection(t,"auto");return e&&t.announce(this.locale.announceAuto),e}),t.registerCommand("toggleBidiLTR",()=>{const e=this.applyBdi(t,"ltr");return e&&t.announce(this.locale.inlineLTR),e}),t.registerCommand("toggleBidiRTL",()=>{const e=this.applyBdi(t,"rtl");return e&&t.announce(this.locale.inlineRTL),e}),t.registerCommand("toggleBidiAuto",()=>{const e=this.applyBdi(t,"auto");return e&&t.announce(this.locale.inlineAuto),e}),t.registerCommand("removeBidi",()=>{const e=this.removeBdi(t);return e&&t.announce(this.locale.announceRemoveBidi),e}),t.registerCommand("toggleBidiIsolation",()=>this.toggleBidiIsolation(t)),t.registerCommand("toggleDirection",()=>{const e=u(t.getState());if(!e||!this.directableTypes.has(e.type))return!1;const i=b(e),o="auto"===i?"rtl":"rtl"===i?"ltr":"auto";return this.setDirection(t,o)})}registerKeymaps(t){t.registerKeymap({"Mod-Shift-D":()=>t.executeCommand("toggleDirection"),"Mod-Shift-B":()=>t.executeCommand("toggleBidiIsolation")})}registerToolbarItem(t){const e={ltr:"setDirectionLTR",rtl:"setDirectionRTL",auto:"setDirectionAuto"},i=S.map(t=>({label:this.getDirectionLabel(t),command:e[t],icon:L[t]}));t.registerToolbarItem({id:"text-direction",group:"block",icon:L.auto,label:this.locale.toolbarLabel,tooltip:`${this.locale.toolbarTooltip} (${m("Mod-Shift-D")})`,command:"setDirectionAuto",popupType:"dropdown",popupConfig:{items:i},isActive:t=>this.isNonDefaultDirection(t),isEnabled:t=>this.isDirectable(t),getIcon:t=>{const e=u(t);return e?L[b(e)]??L.auto:L.auto}})}registerInlineToolbarItem(t){const e=[{label:this.locale.inlineLTR,command:"toggleBidiLTR",icon:L.ltr},{label:this.locale.inlineRTL,command:"toggleBidiRTL",icon:L.rtl},{label:this.locale.inlineAuto,command:"toggleBidiAuto",icon:L.auto},{label:this.locale.announceRemoveBidi,command:"removeBidi"}];t.registerToolbarItem({id:"inline-direction",group:"format",icon:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 4v7h2V4h2v7h2V4h1V2H10a3 3 0 1 0 0 6zm-3.5 9.5L3 17l3.5 3.5V18h3v-2h-3v-2.5zm14 0L17 17l3.5 3.5V18h-3v-2h3v-2.5zM11 16h2v6h-2z"/></svg>',label:this.locale.inlineLabel,tooltip:`${this.locale.inlineTooltip} (${m("Mod-Shift-B")})`,command:"toggleBidiIsolation",popupType:"dropdown",popupConfig:{items:e},isActive:t=>l(t,"bdi"),isEnabled:t=>{const e=t.selection;return r(e)&&!o(e)}})}getDirectionLabel(t){return"ltr"===t?this.locale.ltr:"rtl"===t?this.locale.rtl:this.locale.auto}setDirection(t,e){const i=t.getState(),o=this.getSelectedBlockIds(i);if(0===o.length)return!1;const r=i.transaction("command");let n=!1;for(const a of o){const t=i.getBlock(a);if(!t||!this.directableTypes.has(t.type))continue;const o=i.getNodePath(a);o&&(r.setNodeAttr(o,{...t.attrs,dir:e}),n=!0)}if(!n)return!1;const s=r.setSelection(i.selection).build();return t.dispatch(s),!0}getSelectedBlockIds(t){const e=t.selection;if(i(e))return[e.nodeId];if(!r(e))return[];const o=e.anchor.blockId,n=e.head.blockId;if(o===n)return[o];const s=t.getBlockOrder(),a=s.indexOf(o),l=s.indexOf(n);if(-1===a||-1===l)return[];const c=Math.min(a,l),d=Math.max(a,l);return s.slice(c,d+1)}isNonDefaultDirection(t){const e=u(t);if(!e||!this.directableTypes.has(e.type))return!1;const i=e.attrs?.dir;return null!=i&&"auto"!==i}isDirectable(t){const e=u(t);return null!=e&&this.directableTypes.has(e.type)}toggleBidiIsolation(t){const e=t.getState();if(l(e,"bdi")){const e=this.removeBdi(t);return e&&t.announce(this.locale.announceRemoveBidi),e}const i=u(e),o="rtl"===(i?b(i):"auto")?"ltr":"rtl",r=this.applyBdi(t,o);if(r){const e="ltr"===o?this.locale.inlineLTR:this.locale.inlineRTL;t.announce(e)}return r}applyBdi(t,e){const i=c(t.getState(),{type:n("bdi"),attrs:{dir:e}});return!!i&&(t.dispatch(i),!0)}removeBdi(t){const e=a(t.getState(),n("bdi"));return!!e&&(t.dispatch(e),!0)}};function M(t,e){const i=e.attrs?.dir;"ltr"!==i&&"rtl"!==i&&"auto"!==i||t.setAttribute("dir",i)}export{x as n,L as t};
|
|
2
|
+
//# sourceMappingURL=text-direction-advanced-S4MgVMLX.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-direction-advanced-CkFu0K_I.mjs","names":[],"sources":["../../src/plugins/text-direction/TextDirectionMiddleware.ts","../../src/plugins/text-direction/TextDirectionPlugin.ts"],"sourcesContent":["/**\n * Middleware registrations for the TextDirectionPlugin.\n * Separated from the main plugin file for maintainability.\n */\n\nimport type { BlockNode } from '../../model/Document.js';\nimport { blockOffsetToTextOffset, getBlockText } from '../../model/Document.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { Step } from '../../state/Transaction.js';\nimport type { PluginContext } from '../Plugin.js';\nimport { detectTextDirection, findSiblingDirection, getBlockDir } from './DirectionDetection.js';\nimport type { TextDirection } from './TextDirectionPlugin.js';\n\n/**\n * Preserves the `dir` attribute when other plugins change the block\n * type (e.g. paragraph -> heading) via `setBlockType`, which replaces attrs.\n */\nexport function registerPreserveDirMiddleware(\n\tcontext: PluginContext,\n\tdirectableTypes: ReadonlySet<string>,\n): void {\n\tcontext.registerMiddleware(\n\t\t(tr, _state, next) => {\n\t\t\tlet patched = false;\n\n\t\t\tconst patchedSteps = tr.steps.map((step) => {\n\t\t\t\tif (step.type !== 'setBlockType') return step;\n\t\t\t\tif (!directableTypes.has(step.nodeType)) return step;\n\n\t\t\t\tconst prevDir = step.previousAttrs?.dir;\n\t\t\t\tif (!prevDir || prevDir === 'auto') return step;\n\n\t\t\t\tpatched = true;\n\t\t\t\treturn {\n\t\t\t\t\t...step,\n\t\t\t\t\tattrs: { ...step.attrs, dir: prevDir },\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tnext(patched ? { ...tr, steps: patchedSteps } : tr);\n\t\t},\n\t\t{ name: 'text-direction:preserve-dir' },\n\t);\n}\n\n/**\n * Auto-detects text direction on `insertText` and `deleteText` steps\n * for blocks with `dir=\"auto\"` (or blocks whose content changes direction).\n * Uses the first strong directional character to determine LTR vs RTL.\n */\nexport function registerAutoDetectMiddleware(\n\tcontext: PluginContext,\n\tdirectableTypes: ReadonlySet<string>,\n): void {\n\tcontext.registerMiddleware(\n\t\t(tr, state, next) => {\n\t\t\tconst extraSteps: Step[] = [];\n\n\t\t\tfor (const step of tr.steps) {\n\t\t\t\tif (step.type === 'insertText') {\n\t\t\t\t\thandleInsertText(step, state, directableTypes, extraSteps);\n\t\t\t\t} else if (step.type === 'deleteText') {\n\t\t\t\t\thandleDeleteText(step, state, directableTypes, extraSteps);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (extraSteps.length > 0) {\n\t\t\t\tnext({ ...tr, steps: [...tr.steps, ...extraSteps] });\n\t\t\t} else {\n\t\t\t\tnext(tr);\n\t\t\t}\n\t\t},\n\t\t{ name: 'text-direction:auto-detect' },\n\t);\n}\n\n/** Builds a `setNodeAttr` step to change the `dir` attribute of a block. */\nfunction buildDirChangeStep(\n\tstate: EditorState,\n\tblock: BlockNode,\n\tdir: TextDirection | 'auto',\n): Step | undefined {\n\tconst path = state.getNodePath(block.id);\n\tif (!path) return undefined;\n\n\treturn {\n\t\ttype: 'setNodeAttr',\n\t\tpath,\n\t\tattrs: { ...block.attrs, dir },\n\t\tpreviousAttrs: block.attrs as Record<string, string | number | boolean>,\n\t};\n}\n\n/** Handles direction detection after text insertion. */\nfunction handleInsertText(\n\tstep: Extract<Step, { type: 'insertText' }>,\n\tstate: EditorState,\n\tdirectableTypes: ReadonlySet<string>,\n\textraSteps: Step[],\n): void {\n\tconst block = state.getBlock(step.blockId);\n\tif (!block || !directableTypes.has(block.type)) return;\n\n\tconst existingText: string = getBlockText(block);\n\tif (getBlockDir(block) !== 'auto' && existingText.length > 0) return;\n\n\tconst textOffset: number = blockOffsetToTextOffset(block, step.offset);\n\tconst textAfter: string =\n\t\texistingText.slice(0, textOffset) + step.text + existingText.slice(textOffset);\n\n\tconst detected: TextDirection | null = detectTextDirection(textAfter);\n\tif (!detected) return;\n\n\tconst dirStep: Step | undefined = buildDirChangeStep(state, block, detected);\n\tif (dirStep) extraSteps.push(dirStep);\n}\n\n/** Handles direction re-detection after text deletion. */\nfunction handleDeleteText(\n\tstep: Extract<Step, { type: 'deleteText' }>,\n\tstate: EditorState,\n\tdirectableTypes: ReadonlySet<string>,\n\textraSteps: Step[],\n): void {\n\tconst block = state.getBlock(step.blockId);\n\tif (!block || !directableTypes.has(block.type)) return;\n\n\tconst currentDir: TextDirection = getBlockDir(block);\n\tif (currentDir === 'auto') return;\n\n\tconst existingText: string = getBlockText(block);\n\tconst fromText: number = blockOffsetToTextOffset(block, step.from);\n\tconst toText: number = blockOffsetToTextOffset(block, step.to);\n\tconst textAfter: string = existingText.slice(0, fromText) + existingText.slice(toText);\n\n\tif (textAfter.length === 0) {\n\t\tconst dirStep: Step | undefined = buildDirChangeStep(state, block, 'auto');\n\t\tif (dirStep) extraSteps.push(dirStep);\n\t\treturn;\n\t}\n\n\tconst detected: TextDirection | null = detectTextDirection(textAfter);\n\tif (!detected || detected === currentDir) return;\n\n\tconst dirStep: Step | undefined = buildDirChangeStep(state, block, detected);\n\tif (dirStep) extraSteps.push(dirStep);\n}\n\n/**\n * Inherits `dir` from the nearest sibling when inserting a new block\n * (e.g. via GapCursor or NodeSelection).\n */\nexport function registerInheritDirMiddleware(\n\tcontext: PluginContext,\n\tdirectableTypes: ReadonlySet<string>,\n): void {\n\tcontext.registerMiddleware(\n\t\t(tr, state, next) => {\n\t\t\tlet patched = false;\n\n\t\t\tconst patchedSteps = tr.steps.map((step) => {\n\t\t\t\tif (step.type !== 'insertNode') return step;\n\t\t\t\tif (!directableTypes.has(step.node.type)) return step;\n\n\t\t\t\tconst newDir: string = String(step.node.attrs?.dir ?? 'auto');\n\t\t\t\tif (newDir !== 'auto') return step;\n\n\t\t\t\t// Detect direction from inserted node's text content\n\t\t\t\tconst nodeText: string = getBlockText(step.node);\n\t\t\t\tif (nodeText.length > 0) {\n\t\t\t\t\tconst detected: TextDirection | null = detectTextDirection(nodeText);\n\t\t\t\t\tif (detected) {\n\t\t\t\t\t\tpatched = true;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...step,\n\t\t\t\t\t\t\tnode: {\n\t\t\t\t\t\t\t\t...step.node,\n\t\t\t\t\t\t\t\tattrs: { ...step.node.attrs, dir: detected },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fall back to sibling direction for empty blocks\n\t\t\t\tconst siblingDir: string | undefined = findSiblingDirection(\n\t\t\t\t\tstate,\n\t\t\t\t\tstep.parentPath,\n\t\t\t\t\tstep.index,\n\t\t\t\t);\n\t\t\t\tif (!siblingDir || siblingDir === 'auto') return step;\n\n\t\t\t\tpatched = true;\n\t\t\t\treturn {\n\t\t\t\t\t...step,\n\t\t\t\t\tnode: {\n\t\t\t\t\t\t...step.node,\n\t\t\t\t\t\tattrs: { ...step.node.attrs, dir: siblingDir },\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tnext(patched ? { ...tr, steps: patchedSteps } : tr);\n\t\t},\n\t\t{ name: 'text-direction:inherit-dir' },\n\t);\n}\n","/**\n * TextDirectionPlugin: adds block-level text direction (`dir` attribute)\n * and inline bidi isolation (`<bdi>` mark) for RTL language support.\n *\n * Block-level: patches NodeSpecs for directable types to render the HTML\n * `dir` attribute. Provides `setDirectionLTR`, `setDirectionRTL`, and\n * `setDirectionAuto` commands with a toolbar dropdown.\n *\n * Inline: registers a `bdi` mark for bidi isolation of inline spans,\n * with `toggleBidiLTR`, `toggleBidiRTL`, `toggleBidiAuto`, and\n * `removeBidi` commands.\n */\n\nimport {\n\tapplyAttributedMark,\n\tisAttributedMarkActive,\n\tremoveAttributedMark,\n} from '../../commands/AttributedMarkCommands.js';\nimport type { BlockNode } from '../../model/Document.js';\nimport { escapeHTML } from '../../model/HTMLUtils.js';\nimport { isCollapsed, isNodeSelection, isTextSelection } from '../../model/Selection.js';\nimport type { BlockId } from '../../model/TypeBrands.js';\nimport { markType } from '../../model/TypeBrands.js';\nimport { isMac } from '../../platform/Platform.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\nimport { getSelectedBlock, resolveLocale } from '../shared/PluginHelpers.js';\nimport { formatShortcut } from '../shared/ShortcutFormatting.js';\nimport { getBlockDir } from './DirectionDetection.js';\nimport { ShiftDirectionHandler } from './ShiftDirectionHandler.js';\nimport {\n\tTEXT_DIRECTION_LOCALE_EN,\n\ttype TextDirectionLocale,\n\tloadTextDirectionLocale,\n} from './TextDirectionLocale.js';\nimport {\n\tregisterAutoDetectMiddleware,\n\tregisterInheritDirMiddleware,\n\tregisterPreserveDirMiddleware,\n} from './TextDirectionMiddleware.js';\n\n// --- Attribute Registry Augmentation ---\n\ndeclare module '../../model/AttrRegistry.js' {\n\tinterface MarkAttrRegistry {\n\t\tbdi: { dir: 'ltr' | 'rtl' | 'auto' };\n\t}\n}\n\n// --- Public Types ---\n\nexport type TextDirection = 'ltr' | 'rtl' | 'auto';\n\nexport interface TextDirectionConfig {\n\t/** Block types that support direction. */\n\treadonly directableTypes: readonly string[];\n\treadonly locale?: TextDirectionLocale;\n}\n\n// --- Constants ---\n\nconst DEFAULT_CONFIG: TextDirectionConfig = {\n\tdirectableTypes: [\n\t\t'paragraph',\n\t\t'heading',\n\t\t'title',\n\t\t'subtitle',\n\t\t'table_cell',\n\t\t'blockquote',\n\t\t'list_item',\n\t],\n};\n\nexport const DIRECTION_ICONS: Readonly<Record<TextDirection, string>> = {\n\tltr: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm12 8l-4-4v3H5v2h12v3l4-4z\"/></svg>',\n\trtl: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M10 10v5h2V4h2v11h2V4h2V2h-8C7.79 2 6 3.79 6 6s1.79 4 4 4zM8 14l-4 4 4 4v-3h12v-2H8v-3z\"/></svg>',\n\tauto: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm3 8l-4-4v3H3v2h5v3l4-4zm7 0v-3l4 4-4 4v-3h-5v-2h5z\"/></svg>',\n};\n\nconst ALL_DIRECTIONS: readonly TextDirection[] = ['ltr', 'rtl', 'auto'];\n\nconst INLINE_BDI_ICON: string =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M10 4v7h2V4h2v7h2V4h1V2H10a3 3 0 1 0 0 6zm-3.5 9.5L3 17l3.5 3.5V18h3v-2h-3v-2.5zm14 0L17 17l3.5 3.5V18h-3v-2h3v-2.5zM11 16h2v6h-2z\"/></svg>';\n\n// --- Plugin ---\n\nexport class TextDirectionPlugin implements Plugin {\n\treadonly id = 'text-direction';\n\treadonly name = 'Text Direction';\n\treadonly priority = 91;\n\n\tprivate readonly config: TextDirectionConfig;\n\tprivate locale!: TextDirectionLocale;\n\tprivate directableTypes!: ReadonlySet<string>;\n\tprivate shiftDirHandler: ShiftDirectionHandler | null = null;\n\n\tconstructor(config?: Partial<TextDirectionConfig>) {\n\t\tthis.config = { ...DEFAULT_CONFIG, ...config };\n\t}\n\n\tasync init(context: PluginContext): Promise<void> {\n\t\tthis.locale = await resolveLocale(\n\t\t\tcontext,\n\t\t\tthis.config.locale,\n\t\t\tTEXT_DIRECTION_LOCALE_EN,\n\t\t\tloadTextDirectionLocale,\n\t\t);\n\n\t\tthis.directableTypes = new Set(this.config.directableTypes);\n\t\tthis.patchNodeSpecs(context);\n\t\tthis.registerBdiMark(context);\n\t\tthis.registerCommands(context);\n\t\tthis.registerKeymaps(context);\n\t\tthis.registerToolbarItem(context);\n\t\tthis.registerInlineToolbarItem(context);\n\t\tregisterPreserveDirMiddleware(context, this.directableTypes);\n\t\tregisterAutoDetectMiddleware(context, this.directableTypes);\n\t\tregisterInheritDirMiddleware(context, this.directableTypes);\n\n\t\t// Ctrl+Shift direction shortcuts (Windows/Linux convention)\n\t\tif (!isMac()) {\n\t\t\tthis.shiftDirHandler = new ShiftDirectionHandler(context);\n\t\t\tthis.shiftDirHandler.attach(context.getContainer());\n\t\t}\n\t}\n\n\tdestroy(): void {\n\t\tthis.shiftDirHandler?.detach();\n\t\tthis.shiftDirHandler = null;\n\t}\n\n\t// --- NodeSpec Patching ---\n\n\t/**\n\t * Patches existing NodeSpecs for directable block types to support the\n\t * `dir` attribute and render it as an HTML attribute. Skips types\n\t * that already define a `dir` attribute in their spec.\n\t */\n\tprivate patchNodeSpecs(context: PluginContext): void {\n\t\tconst registry = context.getSchemaRegistry();\n\n\t\tfor (const type of this.config.directableTypes) {\n\t\t\tconst spec = registry.getNodeSpec(type);\n\t\t\tif (!spec) continue;\n\n\t\t\tif (spec.attrs?.dir) continue;\n\n\t\t\tconst originalToDOM = spec.toDOM;\n\n\t\t\tregistry.removeNodeSpec(type);\n\t\t\tregistry.registerNodeSpec({\n\t\t\t\t...spec,\n\t\t\t\tattrs: {\n\t\t\t\t\t...spec.attrs,\n\t\t\t\t\tdir: { default: 'auto' },\n\t\t\t\t},\n\t\t\t\ttoDOM(node) {\n\t\t\t\t\tconst el = originalToDOM.call(spec, node);\n\t\t\t\t\tapplyDirection(el, node);\n\t\t\t\t\treturn el;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\t// --- Inline <bdi> Mark ---\n\n\tprivate registerBdiMark(context: PluginContext): void {\n\t\tcontext.registerMarkSpec({\n\t\t\ttype: 'bdi',\n\t\t\trank: 10,\n\t\t\tattrs: {\n\t\t\t\tdir: { default: 'auto' },\n\t\t\t},\n\t\t\ttoDOM(mark) {\n\t\t\t\tconst el: HTMLElement = document.createElement('bdi');\n\t\t\t\tconst dir: string = String(mark.attrs?.dir ?? 'auto');\n\t\t\t\tel.setAttribute('dir', dir);\n\t\t\t\treturn el;\n\t\t\t},\n\t\t\ttoHTMLString: (mark, content) => {\n\t\t\t\tconst dir: string = escapeHTML(String(mark.attrs?.dir ?? 'auto'));\n\t\t\t\treturn `<bdi dir=\"${dir}\">${content}</bdi>`;\n\t\t\t},\n\t\t\tparseHTML: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'bdi',\n\t\t\t\t\tgetAttrs: (el) => {\n\t\t\t\t\t\tconst dir: string | null = el.getAttribute('dir');\n\t\t\t\t\t\tif (dir === 'ltr' || dir === 'rtl') return { dir };\n\t\t\t\t\t\treturn { dir: 'auto' };\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tsanitize: { tags: ['bdi'], attrs: ['dir'] },\n\t\t});\n\t}\n\n\t// --- Commands ---\n\n\tprivate registerCommands(context: PluginContext): void {\n\t\tcontext.registerCommand('setDirectionLTR', () => {\n\t\t\tconst result: boolean = this.setDirection(context, 'ltr');\n\t\t\tif (result) context.announce(this.locale.announceLTR);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('setDirectionRTL', () => {\n\t\t\tconst result: boolean = this.setDirection(context, 'rtl');\n\t\t\tif (result) context.announce(this.locale.announceRTL);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('setDirectionAuto', () => {\n\t\t\tconst result: boolean = this.setDirection(context, 'auto');\n\t\t\tif (result) context.announce(this.locale.announceAuto);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('toggleBidiLTR', () => {\n\t\t\tconst result: boolean = this.applyBdi(context, 'ltr');\n\t\t\tif (result) context.announce(this.locale.inlineLTR);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('toggleBidiRTL', () => {\n\t\t\tconst result: boolean = this.applyBdi(context, 'rtl');\n\t\t\tif (result) context.announce(this.locale.inlineRTL);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('toggleBidiAuto', () => {\n\t\t\tconst result: boolean = this.applyBdi(context, 'auto');\n\t\t\tif (result) context.announce(this.locale.inlineAuto);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('removeBidi', () => {\n\t\t\tconst result: boolean = this.removeBdi(context);\n\t\t\tif (result) context.announce(this.locale.announceRemoveBidi);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('toggleBidiIsolation', () => {\n\t\t\treturn this.toggleBidiIsolation(context);\n\t\t});\n\n\t\tcontext.registerCommand('toggleDirection', () => {\n\t\t\tconst state = context.getState();\n\t\t\tconst block = getSelectedBlock(state);\n\t\t\tif (!block || !this.directableTypes.has(block.type)) return false;\n\n\t\t\tconst current: TextDirection = getBlockDir(block);\n\t\t\tconst next: TextDirection = current === 'auto' ? 'rtl' : current === 'rtl' ? 'ltr' : 'auto';\n\t\t\treturn this.setDirection(context, next);\n\t\t});\n\t}\n\n\t// --- Keymaps ---\n\n\tprivate registerKeymaps(context: PluginContext): void {\n\t\tcontext.registerKeymap({\n\t\t\t'Mod-Shift-D': () => context.executeCommand('toggleDirection'),\n\t\t\t'Mod-Shift-B': () => context.executeCommand('toggleBidiIsolation'),\n\t\t});\n\t}\n\n\t// --- Toolbar ---\n\n\tprivate registerToolbarItem(context: PluginContext): void {\n\t\tconst commandNames: Readonly<Record<TextDirection, string>> = {\n\t\t\tltr: 'setDirectionLTR',\n\t\t\trtl: 'setDirectionRTL',\n\t\t\tauto: 'setDirectionAuto',\n\t\t};\n\n\t\tconst dropdownItems = ALL_DIRECTIONS.map((dir) => ({\n\t\t\tlabel: this.getDirectionLabel(dir),\n\t\t\tcommand: commandNames[dir],\n\t\t\ticon: DIRECTION_ICONS[dir],\n\t\t}));\n\n\t\tcontext.registerToolbarItem({\n\t\t\tid: 'text-direction',\n\t\t\tgroup: 'block',\n\t\t\ticon: DIRECTION_ICONS.auto,\n\t\t\tlabel: this.locale.toolbarLabel,\n\t\t\ttooltip: `${this.locale.toolbarTooltip} (${formatShortcut('Mod-Shift-D')})`,\n\t\t\tcommand: 'setDirectionAuto',\n\t\t\tpopupType: 'dropdown',\n\t\t\tpopupConfig: { items: dropdownItems },\n\t\t\tisActive: (state) => this.isNonDefaultDirection(state),\n\t\t\tisEnabled: (state) => this.isDirectable(state),\n\t\t\tgetIcon: (state) => {\n\t\t\t\tconst block = getSelectedBlock(state);\n\t\t\t\tif (!block) return DIRECTION_ICONS.auto;\n\t\t\t\tconst dir: TextDirection = getBlockDir(block);\n\t\t\t\treturn DIRECTION_ICONS[dir] ?? DIRECTION_ICONS.auto;\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate registerInlineToolbarItem(context: PluginContext): void {\n\t\tconst inlineItems = [\n\t\t\t{ label: this.locale.inlineLTR, command: 'toggleBidiLTR', icon: DIRECTION_ICONS.ltr },\n\t\t\t{ label: this.locale.inlineRTL, command: 'toggleBidiRTL', icon: DIRECTION_ICONS.rtl },\n\t\t\t{ label: this.locale.inlineAuto, command: 'toggleBidiAuto', icon: DIRECTION_ICONS.auto },\n\t\t\t{ label: this.locale.announceRemoveBidi, command: 'removeBidi' },\n\t\t];\n\n\t\tcontext.registerToolbarItem({\n\t\t\tid: 'inline-direction',\n\t\t\tgroup: 'format',\n\t\t\ticon: INLINE_BDI_ICON,\n\t\t\tlabel: this.locale.inlineLabel,\n\t\t\ttooltip: `${this.locale.inlineTooltip} (${formatShortcut('Mod-Shift-B')})`,\n\t\t\tcommand: 'toggleBidiIsolation',\n\t\t\tpopupType: 'dropdown',\n\t\t\tpopupConfig: { items: inlineItems },\n\t\t\tisActive: (state) => isAttributedMarkActive(state, 'bdi'),\n\t\t\tisEnabled: (state) => {\n\t\t\t\tconst sel = state.selection;\n\t\t\t\treturn isTextSelection(sel) && !isCollapsed(sel);\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate getDirectionLabel(dir: TextDirection): string {\n\t\tif (dir === 'ltr') return this.locale.ltr;\n\t\tif (dir === 'rtl') return this.locale.rtl;\n\t\treturn this.locale.auto;\n\t}\n\n\t// --- Direction Logic ---\n\n\tprivate setDirection(context: PluginContext, direction: TextDirection): boolean {\n\t\tconst state = context.getState();\n\t\tconst blockIds: BlockId[] = this.getSelectedBlockIds(state);\n\t\tif (blockIds.length === 0) return false;\n\n\t\tconst tb = state.transaction('command');\n\t\tlet changed = false;\n\n\t\tfor (const id of blockIds) {\n\t\t\tconst block = state.getBlock(id);\n\t\t\tif (!block || !this.directableTypes.has(block.type)) continue;\n\n\t\t\tconst path = state.getNodePath(id);\n\t\t\tif (!path) continue;\n\n\t\t\ttb.setNodeAttr(path, { ...block.attrs, dir: direction });\n\t\t\tchanged = true;\n\t\t}\n\n\t\tif (!changed) return false;\n\n\t\tconst tr = tb.setSelection(state.selection).build();\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n\n\t/**\n\t * Returns all block IDs covered by the current selection.\n\t * Only handles TextSelection and NodeSelection — other selection types\n\t * (e.g. GapCursorSelection) return an empty array intentionally, since\n\t * gap cursors sit between blocks and have no associated block content.\n\t */\n\tprivate getSelectedBlockIds(state: EditorState): BlockId[] {\n\t\tconst sel = state.selection;\n\n\t\tif (isNodeSelection(sel)) {\n\t\t\treturn [sel.nodeId];\n\t\t}\n\n\t\tif (!isTextSelection(sel)) return [];\n\n\t\tconst anchorId: BlockId = sel.anchor.blockId;\n\t\tconst headId: BlockId = sel.head.blockId;\n\n\t\tif (anchorId === headId) return [anchorId];\n\n\t\tconst order: readonly BlockId[] = state.getBlockOrder();\n\t\tconst anchorIdx: number = order.indexOf(anchorId);\n\t\tconst headIdx: number = order.indexOf(headId);\n\t\tif (anchorIdx === -1 || headIdx === -1) return [];\n\n\t\tconst from: number = Math.min(anchorIdx, headIdx);\n\t\tconst to: number = Math.max(anchorIdx, headIdx);\n\t\treturn order.slice(from, to + 1) as BlockId[];\n\t}\n\n\tprivate isNonDefaultDirection(state: EditorState): boolean {\n\t\tconst block = getSelectedBlock(state);\n\t\tif (!block || !this.directableTypes.has(block.type)) return false;\n\t\tconst dir = block.attrs?.dir;\n\t\treturn dir != null && dir !== 'auto';\n\t}\n\n\tprivate isDirectable(state: EditorState): boolean {\n\t\tconst block = getSelectedBlock(state);\n\t\treturn block != null && this.directableTypes.has(block.type);\n\t}\n\n\t// --- Inline bdi mark operations ---\n\n\t/**\n\t * Cycles inline bidi isolation: no-bdi → bdi (opposite of block dir) →\n\t * remove. Applies the opposite direction of the current block for the\n\t * common case (e.g., LTR word in an RTL block gets bdi-ltr).\n\t */\n\tprivate toggleBidiIsolation(context: PluginContext): boolean {\n\t\tconst state = context.getState();\n\t\tif (isAttributedMarkActive(state, 'bdi')) {\n\t\t\tconst result: boolean = this.removeBdi(context);\n\t\t\tif (result) context.announce(this.locale.announceRemoveBidi);\n\t\t\treturn result;\n\t\t}\n\t\tconst block = getSelectedBlock(state);\n\t\tconst blockDir: TextDirection = block ? getBlockDir(block) : 'auto';\n\t\tconst bdiDir: TextDirection = blockDir === 'rtl' ? 'ltr' : 'rtl';\n\t\tconst result: boolean = this.applyBdi(context, bdiDir);\n\t\tif (result) {\n\t\t\tconst announcement: string = bdiDir === 'ltr' ? this.locale.inlineLTR : this.locale.inlineRTL;\n\t\t\tcontext.announce(announcement);\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate applyBdi(context: PluginContext, dir: TextDirection): boolean {\n\t\tconst state = context.getState();\n\t\tconst mark = { type: markType('bdi'), attrs: { dir } };\n\t\tconst tr = applyAttributedMark(state, mark);\n\t\tif (!tr) return false;\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n\n\tprivate removeBdi(context: PluginContext): boolean {\n\t\tconst state = context.getState();\n\t\tconst tr = removeAttributedMark(state, markType('bdi'));\n\t\tif (!tr) return false;\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n}\n\n// --- Helpers ---\n\nfunction applyDirection(el: HTMLElement, node: BlockNode): void {\n\tconst dir = node.attrs?.dir;\n\tif (dir === 'ltr' || dir === 'rtl' || dir === 'auto') {\n\t\tel.setAttribute('dir', dir);\n\t}\n}\n"],"mappings":"ggBA6EA,SAAS,EACR,EACA,EACA,GAEA,MAAM,EAAO,EAAM,YAAY,EAAM,IACrC,GAAK,EAEL,MAAO,CACN,KAAM,cACN,OACA,MAAO,IAAK,EAAM,MAAO,OACzB,cAAe,EAAM,OAKvB,SAAS,EACR,EACA,EACA,EACA,GAEA,MAAM,EAAQ,EAAM,SAAS,EAAK,SAClC,IAAK,IAAU,EAAgB,IAAI,EAAM,MAAO,OAEhD,MAAM,EAAuB,EAAa,GAC1C,GAA2B,SAAvB,EAAY,IAAqB,EAAa,OAAS,EAAG,OAE9D,MAAM,EAAqB,EAAwB,EAAO,EAAK,QAIzD,EAAiC,EAFtC,EAAa,MAAM,EAAG,GAAc,EAAK,KAAO,EAAa,MAAM,IAGpE,IAAK,EAAU,OAEf,MAAM,EAA4B,EAAmB,EAAO,EAAO,GAC/D,GAAS,EAAW,KAAK,GAI9B,SAAS,EACR,EACA,EACA,EACA,GAEA,MAAM,EAAQ,EAAM,SAAS,EAAK,SAClC,IAAK,IAAU,EAAgB,IAAI,EAAM,MAAO,OAEhD,MAAM,EAA4B,EAAY,GAC9C,GAAmB,SAAf,EAAuB,OAE3B,MAAM,EAAuB,EAAa,GACpC,EAAmB,EAAwB,EAAO,EAAK,MACvD,EAAiB,EAAwB,EAAO,EAAK,IACrD,EAAoB,EAAa,MAAM,EAAG,GAAY,EAAa,MAAM,GAE/E,GAAyB,IAArB,EAAU,OAAc,CAC3B,MAAM,EAA4B,EAAmB,EAAO,EAAO,QAEnE,YADI,GAAS,EAAW,KAAK,IAI9B,MAAM,EAAiC,EAAoB,GAC3D,IAAK,GAAY,IAAa,EAAY,OAE1C,MAAM,EAA4B,EAAmB,EAAO,EAAO,GAC/D,GAAS,EAAW,KAAK,GCpF9B,IAAM,EAAsC,CAC3C,gBAAiB,CAChB,YACA,UACA,QACA,WACA,aACA,aACA,cAIW,EAA2D,CACvE,IAAK,mKACL,IAAK,wKACL,KAAM,6LAGD,EAA2C,CAAC,MAAO,MAAO,QAOnD,EAAb,MACC,GAAc,iBACd,KAAgB,iBAChB,SAAoB,GAEpB,OACA,OACA,gBACA,gBAAwD,KAExD,WAAA,CAAY,GACX,KAAK,OAAS,IAAK,KAAmB,GAGvC,UAAM,CAAK,GACV,KAAK,aAAe,EACnB,EACA,KAAK,OAAO,OACZ,EACA,GAGD,KAAK,gBAAkB,IAAI,IAAI,KAAK,OAAO,iBAC3C,KAAK,eAAe,GACpB,KAAK,gBAAgB,GACrB,KAAK,iBAAiB,GACtB,KAAK,gBAAgB,GACrB,KAAK,oBAAoB,GACzB,KAAK,0BAA0B,GDjGjC,SACC,EACA,GAEA,EAAQ,mBAAA,CACN,EAAI,EAAQ,KACZ,IAAI,GAAU,EAEd,MAAM,EAAe,EAAG,MAAM,IAAK,IAClC,GAAkB,iBAAd,EAAK,KAAyB,OAAO,EACzC,IAAK,EAAgB,IAAI,EAAK,UAAW,OAAO,EAEhD,MAAM,EAAU,EAAK,eAAe,IACpC,OAAK,GAAuB,SAAZ,GAEhB,GAAU,EACH,IACH,EACH,MAAO,IAAK,EAAK,MAAO,IAAK,KALa,IAS5C,EAAK,EAAU,IAAK,EAAI,MAAO,GAAiB,IAEjD,CAAE,KAAM,gCC0ER,CAA8B,EAAS,KAAK,iBDjE9C,SACC,EACA,GAEA,EAAQ,mBAAA,CACN,EAAI,EAAO,KACX,MAAM,EAAqB,GAE3B,IAAK,MAAM,KAAQ,EAAG,MACH,eAAd,EAAK,KACR,EAAiB,EAAM,EAAO,EAAiB,GACvB,eAAd,EAAK,MACf,EAAiB,EAAM,EAAO,EAAiB,GAKhD,EADG,EAAW,OAAS,EAClB,IAAK,EAAI,MAAO,IAAI,EAAG,SAAU,IAEjC,IAGP,CAAE,KAAM,+BC4CR,CAA6B,EAAS,KAAK,iBDoC7C,SACC,EACA,GAEA,EAAQ,mBAAA,CACN,EAAI,EAAO,KACX,IAAI,GAAU,EAEd,MAAM,EAAe,EAAG,MAAM,IAAK,IAClC,GAAkB,eAAd,EAAK,KAAuB,OAAO,EACvC,IAAK,EAAgB,IAAI,EAAK,KAAK,MAAO,OAAO,EAGjD,GAAe,SADQ,OAAO,EAAK,KAAK,OAAO,KAAO,QAC/B,OAAO,EAG9B,MAAM,EAAmB,EAAa,EAAK,MAC3C,GAAI,EAAS,OAAS,EAAG,CACxB,MAAM,EAAiC,EAAoB,GAC3D,GAAI,EAEH,OADA,GAAU,EACH,IACH,EACH,KAAM,IACF,EAAK,KACR,MAAO,IAAK,EAAK,KAAK,MAAO,IAAK,KAOtC,MAAM,EAAiC,EACtC,EACA,EAAK,WACL,EAAK,OAEN,OAAK,GAA6B,SAAf,GAEnB,GAAU,EACH,IACH,EACH,KAAM,IACF,EAAK,KACR,MAAO,IAAK,EAAK,KAAK,MAAO,IAAK,MAPa,IAYlD,EAAK,EAAU,IAAK,EAAI,MAAO,GAAiB,IAEjD,CAAE,KAAM,+BCtFR,CAA6B,EAAS,KAAK,iBAGtC,MACJ,KAAK,gBAAkB,IAAI,EAAsB,GACjD,KAAK,gBAAgB,OAAO,EAAQ,iBAItC,OAAA,GACC,KAAK,iBAAiB,SACtB,KAAK,gBAAkB,KAUxB,cAAA,CAAuB,GACtB,MAAM,EAAW,EAAQ,oBAEzB,IAAK,MAAM,KAAQ,KAAK,OAAO,gBAAiB,CAC/C,MAAM,EAAO,EAAS,YAAY,GAClC,IAAK,EAAM,SAEX,GAAI,EAAK,OAAO,IAAK,SAErB,MAAM,EAAgB,EAAK,MAE3B,EAAS,eAAe,GACxB,EAAS,iBAAiB,IACtB,EACH,MAAO,IACH,EAAK,MACR,IAAK,CAAE,QAAS,SAEjB,KAAA,CAAM,GACL,MAAM,EAAK,EAAc,KAAK,EAAM,GAEpC,OADA,EAAe,EAAI,GACZ,MAQX,eAAA,CAAwB,GACvB,EAAQ,iBAAiB,CACxB,KAAM,MACN,KAAM,GACN,MAAO,CACN,IAAK,CAAE,QAAS,SAEjB,KAAA,CAAM,GACL,MAAM,EAAkB,SAAS,cAAc,OACzC,EAAc,OAAO,EAAK,OAAO,KAAO,QAE9C,OADA,EAAG,aAAa,MAAO,GAChB,GAER,aAAA,CAAe,EAAM,IAEb,aADa,EAAW,OAAO,EAAK,OAAO,KAAO,aAC7B,UAE7B,UAAW,CACV,CACC,IAAK,MACL,SAAW,IACV,MAAM,EAAqB,EAAG,aAAa,OAC3C,MAAY,QAAR,GAAyB,QAAR,EAAsB,CAAE,OACtC,CAAE,IAAK,WAIjB,SAAU,CAAE,KAAM,CAAC,OAAQ,MAAO,CAAC,UAMrC,gBAAA,CAAyB,GACxB,EAAQ,gBAAgB,kBAAA,KACvB,MAAM,EAAkB,KAAK,aAAa,EAAS,OAEnD,OADI,GAAQ,EAAQ,SAAS,KAAK,OAAO,aAClC,IAGR,EAAQ,gBAAgB,kBAAA,KACvB,MAAM,EAAkB,KAAK,aAAa,EAAS,OAEnD,OADI,GAAQ,EAAQ,SAAS,KAAK,OAAO,aAClC,IAGR,EAAQ,gBAAgB,mBAAA,KACvB,MAAM,EAAkB,KAAK,aAAa,EAAS,QAEnD,OADI,GAAQ,EAAQ,SAAS,KAAK,OAAO,cAClC,IAGR,EAAQ,gBAAgB,gBAAA,KACvB,MAAM,EAAkB,KAAK,SAAS,EAAS,OAE/C,OADI,GAAQ,EAAQ,SAAS,KAAK,OAAO,WAClC,IAGR,EAAQ,gBAAgB,gBAAA,KACvB,MAAM,EAAkB,KAAK,SAAS,EAAS,OAE/C,OADI,GAAQ,EAAQ,SAAS,KAAK,OAAO,WAClC,IAGR,EAAQ,gBAAgB,iBAAA,KACvB,MAAM,EAAkB,KAAK,SAAS,EAAS,QAE/C,OADI,GAAQ,EAAQ,SAAS,KAAK,OAAO,YAClC,IAGR,EAAQ,gBAAgB,aAAA,KACvB,MAAM,EAAkB,KAAK,UAAU,GAEvC,OADI,GAAQ,EAAQ,SAAS,KAAK,OAAO,oBAClC,IAGR,EAAQ,gBAAgB,sBAAA,IAChB,KAAK,oBAAoB,IAGjC,EAAQ,gBAAgB,kBAAA,KAEvB,MAAM,EAAQ,EADA,EAAQ,YAEtB,IAAK,IAAU,KAAK,gBAAgB,IAAI,EAAM,MAAO,OAAO,EAE5D,MAAM,EAAyB,EAAY,GACrC,EAAkC,SAAZ,EAAqB,MAAoB,QAAZ,EAAoB,MAAQ,OACrF,OAAO,KAAK,aAAa,EAAS,KAMpC,eAAA,CAAwB,GACvB,EAAQ,eAAe,CACtB,cAAA,IAAqB,EAAQ,eAAe,mBAC5C,cAAA,IAAqB,EAAQ,eAAe,yBAM9C,mBAAA,CAA4B,GAC3B,MAAM,EAAwD,CAC7D,IAAK,kBACL,IAAK,kBACL,KAAM,oBAGD,EAAgB,EAAe,IAAK,IAAA,CACzC,MAAO,KAAK,kBAAkB,GAC9B,QAAS,EAAa,GACtB,KAAM,EAAgB,MAGvB,EAAQ,oBAAoB,CAC3B,GAAI,iBACJ,MAAO,QACP,KAAM,EAAgB,KACtB,MAAO,KAAK,OAAO,aACnB,QAAS,GAAG,KAAK,OAAO,mBAAmB,EAAe,kBAC1D,QAAS,mBACT,UAAW,WACX,YAAa,CAAE,MAAO,GACtB,SAAW,GAAU,KAAK,sBAAsB,GAChD,UAAY,GAAU,KAAK,aAAa,GACxC,QAAU,IACT,MAAM,EAAQ,EAAiB,GAC/B,OAAK,EAEE,EADoB,EAAY,KACR,EAAgB,KAF5B,EAAgB,QAOtC,yBAAA,CAAkC,GACjC,MAAM,EAAc,CACnB,CAAE,MAAO,KAAK,OAAO,UAAW,QAAS,gBAAiB,KAAM,EAAgB,KAChF,CAAE,MAAO,KAAK,OAAO,UAAW,QAAS,gBAAiB,KAAM,EAAgB,KAChF,CAAE,MAAO,KAAK,OAAO,WAAY,QAAS,iBAAkB,KAAM,EAAgB,MAClF,CAAE,MAAO,KAAK,OAAO,mBAAoB,QAAS,eAGnD,EAAQ,oBAAoB,CAC3B,GAAI,mBACJ,MAAO,SACP,KAvOF,mNAwOE,MAAO,KAAK,OAAO,YACnB,QAAS,GAAG,KAAK,OAAO,kBAAkB,EAAe,kBACzD,QAAS,sBACT,UAAW,WACX,YAAa,CAAE,MAAO,GACtB,SAAW,GAAU,EAAuB,EAAO,OACnD,UAAY,IACX,MAAM,EAAM,EAAM,UAClB,OAAO,EAAgB,KAAS,EAAY,MAK/C,iBAAA,CAA0B,GACzB,MAAY,QAAR,EAAsB,KAAK,OAAO,IAC1B,QAAR,EAAsB,KAAK,OAAO,IAC/B,KAAK,OAAO,KAKpB,YAAA,CAAqB,EAAwB,GAC5C,MAAM,EAAQ,EAAQ,WAChB,EAAsB,KAAK,oBAAoB,GACrD,GAAwB,IAApB,EAAS,OAAc,OAAO,EAElC,MAAM,EAAK,EAAM,YAAY,WAC7B,IAAI,GAAU,EAEd,IAAK,MAAM,KAAM,EAAU,CAC1B,MAAM,EAAQ,EAAM,SAAS,GAC7B,IAAK,IAAU,KAAK,gBAAgB,IAAI,EAAM,MAAO,SAErD,MAAM,EAAO,EAAM,YAAY,GAC1B,IAEL,EAAG,YAAY,EAAM,IAAK,EAAM,MAAO,IAAK,IAC5C,GAAU,GAGX,IAAK,EAAS,OAAO,EAErB,MAAM,EAAK,EAAG,aAAa,EAAM,WAAW,QAE5C,OADA,EAAQ,SAAS,IACV,EASR,mBAAA,CAA4B,GAC3B,MAAM,EAAM,EAAM,UAElB,GAAI,EAAgB,GACnB,MAAO,CAAC,EAAI,QAGb,IAAK,EAAgB,GAAM,MAAO,GAElC,MAAM,EAAoB,EAAI,OAAO,QAC/B,EAAkB,EAAI,KAAK,QAEjC,GAAI,IAAa,EAAQ,MAAO,CAAC,GAEjC,MAAM,EAA4B,EAAM,gBAClC,EAAoB,EAAM,QAAQ,GAClC,EAAkB,EAAM,QAAQ,GACtC,IAAkB,IAAd,IAAgC,IAAZ,EAAgB,MAAO,GAE/C,MAAM,EAAe,KAAK,IAAI,EAAW,GACnC,EAAa,KAAK,IAAI,EAAW,GACvC,OAAO,EAAM,MAAM,EAAM,EAAK,GAG/B,qBAAA,CAA8B,GAC7B,MAAM,EAAQ,EAAiB,GAC/B,IAAK,IAAU,KAAK,gBAAgB,IAAI,EAAM,MAAO,OAAO,EAC5D,MAAM,EAAM,EAAM,OAAO,IACzB,OAAc,MAAP,GAAuB,SAAR,EAGvB,YAAA,CAAqB,GACpB,MAAM,EAAQ,EAAiB,GAC/B,OAAgB,MAAT,GAAiB,KAAK,gBAAgB,IAAI,EAAM,MAUxD,mBAAA,CAA4B,GAC3B,MAAM,EAAQ,EAAQ,WACtB,GAAI,EAAuB,EAAO,OAAQ,CACzC,MAAM,EAAkB,KAAK,UAAU,GAEvC,OADI,GAAQ,EAAQ,SAAS,KAAK,OAAO,oBAClC,EAER,MAAM,EAAQ,EAAiB,GAEzB,EAAqC,SADX,EAAQ,EAAY,GAAS,QACV,MAAQ,MACrD,EAAkB,KAAK,SAAS,EAAS,GAC/C,GAAI,EAAQ,CACX,MAAM,EAAkC,QAAX,EAAmB,KAAK,OAAO,UAAY,KAAK,OAAO,UACpF,EAAQ,SAAS,GAElB,OAAO,EAGR,QAAA,CAAiB,EAAwB,GAGxC,MAAM,EAAK,EAFG,EAAQ,WACT,CAAE,KAAM,EAAS,OAAQ,MAAO,CAAE,SAE/C,QAAK,IACL,EAAQ,SAAS,IACV,GAGR,SAAA,CAAkB,GAEjB,MAAM,EAAK,EADG,EAAQ,WACiB,EAAS,QAChD,QAAK,IACL,EAAQ,SAAS,IACV,KAMT,SAAS,EAAe,EAAiB,GACxC,MAAM,EAAM,EAAK,OAAO,IACZ,QAAR,GAAyB,QAAR,GAAyB,SAAR,GACrC,EAAG,aAAa,MAAO"}
|
|
1
|
+
{"version":3,"file":"text-direction-advanced-S4MgVMLX.mjs","names":[],"sources":["../../src/plugins/text-direction/TextDirectionMiddleware.ts","../../src/plugins/text-direction/TextDirectionPlugin.ts"],"sourcesContent":["/**\n * Middleware registrations for the TextDirectionPlugin.\n * Separated from the main plugin file for maintainability.\n */\n\nimport type { BlockNode } from '../../model/Document.js';\nimport { blockOffsetToTextOffset, getBlockText } from '../../model/Document.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { Step } from '../../state/Transaction.js';\nimport type { PluginContext } from '../Plugin.js';\nimport { detectTextDirection, findSiblingDirection, getBlockDir } from './DirectionDetection.js';\nimport type { TextDirection } from './TextDirectionPlugin.js';\n\n/**\n * Preserves the `dir` attribute when other plugins change the block\n * type (e.g. paragraph -> heading) via `setBlockType`, which replaces attrs.\n */\nexport function registerPreserveDirMiddleware(\n\tcontext: PluginContext,\n\tdirectableTypes: ReadonlySet<string>,\n): void {\n\tcontext.registerMiddleware(\n\t\t(tr, _state, next) => {\n\t\t\tlet patched = false;\n\n\t\t\tconst patchedSteps = tr.steps.map((step) => {\n\t\t\t\tif (step.type !== 'setBlockType') return step;\n\t\t\t\tif (!directableTypes.has(step.nodeType)) return step;\n\n\t\t\t\tconst prevDir = step.previousAttrs?.dir;\n\t\t\t\tif (!prevDir || prevDir === 'auto') return step;\n\n\t\t\t\tpatched = true;\n\t\t\t\treturn {\n\t\t\t\t\t...step,\n\t\t\t\t\tattrs: { ...step.attrs, dir: prevDir },\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tnext(patched ? { ...tr, steps: patchedSteps } : tr);\n\t\t},\n\t\t{ name: 'text-direction:preserve-dir' },\n\t);\n}\n\n/**\n * Auto-detects text direction on `insertText` and `deleteText` steps\n * for blocks with `dir=\"auto\"` (or blocks whose content changes direction).\n * Uses the first strong directional character to determine LTR vs RTL.\n */\nexport function registerAutoDetectMiddleware(\n\tcontext: PluginContext,\n\tdirectableTypes: ReadonlySet<string>,\n): void {\n\tcontext.registerMiddleware(\n\t\t(tr, state, next) => {\n\t\t\tconst extraSteps: Step[] = [];\n\n\t\t\tfor (const step of tr.steps) {\n\t\t\t\tif (step.type === 'insertText') {\n\t\t\t\t\thandleInsertText(step, state, directableTypes, extraSteps);\n\t\t\t\t} else if (step.type === 'deleteText') {\n\t\t\t\t\thandleDeleteText(step, state, directableTypes, extraSteps);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (extraSteps.length > 0) {\n\t\t\t\tnext({ ...tr, steps: [...tr.steps, ...extraSteps] });\n\t\t\t} else {\n\t\t\t\tnext(tr);\n\t\t\t}\n\t\t},\n\t\t{ name: 'text-direction:auto-detect' },\n\t);\n}\n\n/** Builds a `setNodeAttr` step to change the `dir` attribute of a block. */\nfunction buildDirChangeStep(\n\tstate: EditorState,\n\tblock: BlockNode,\n\tdir: TextDirection | 'auto',\n): Step | undefined {\n\tconst path = state.getNodePath(block.id);\n\tif (!path) return undefined;\n\n\treturn {\n\t\ttype: 'setNodeAttr',\n\t\tpath,\n\t\tattrs: { ...block.attrs, dir },\n\t\tpreviousAttrs: block.attrs as Record<string, string | number | boolean>,\n\t};\n}\n\n/** Handles direction detection after text insertion. */\nfunction handleInsertText(\n\tstep: Extract<Step, { type: 'insertText' }>,\n\tstate: EditorState,\n\tdirectableTypes: ReadonlySet<string>,\n\textraSteps: Step[],\n): void {\n\tconst block = state.getBlock(step.blockId);\n\tif (!block || !directableTypes.has(block.type)) return;\n\n\tconst existingText: string = getBlockText(block);\n\tif (getBlockDir(block) !== 'auto' && existingText.length > 0) return;\n\n\tconst textOffset: number = blockOffsetToTextOffset(block, step.offset);\n\tconst textAfter: string =\n\t\texistingText.slice(0, textOffset) + step.text + existingText.slice(textOffset);\n\n\tconst detected: TextDirection | null = detectTextDirection(textAfter);\n\tif (!detected) return;\n\n\tconst dirStep: Step | undefined = buildDirChangeStep(state, block, detected);\n\tif (dirStep) extraSteps.push(dirStep);\n}\n\n/** Handles direction re-detection after text deletion. */\nfunction handleDeleteText(\n\tstep: Extract<Step, { type: 'deleteText' }>,\n\tstate: EditorState,\n\tdirectableTypes: ReadonlySet<string>,\n\textraSteps: Step[],\n): void {\n\tconst block = state.getBlock(step.blockId);\n\tif (!block || !directableTypes.has(block.type)) return;\n\n\tconst currentDir: TextDirection = getBlockDir(block);\n\tif (currentDir === 'auto') return;\n\n\tconst existingText: string = getBlockText(block);\n\tconst fromText: number = blockOffsetToTextOffset(block, step.from);\n\tconst toText: number = blockOffsetToTextOffset(block, step.to);\n\tconst textAfter: string = existingText.slice(0, fromText) + existingText.slice(toText);\n\n\tif (textAfter.length === 0) {\n\t\tconst dirStep: Step | undefined = buildDirChangeStep(state, block, 'auto');\n\t\tif (dirStep) extraSteps.push(dirStep);\n\t\treturn;\n\t}\n\n\tconst detected: TextDirection | null = detectTextDirection(textAfter);\n\tif (!detected || detected === currentDir) return;\n\n\tconst dirStep: Step | undefined = buildDirChangeStep(state, block, detected);\n\tif (dirStep) extraSteps.push(dirStep);\n}\n\n/**\n * Inherits `dir` from the nearest sibling when inserting a new block\n * (e.g. via GapCursor or NodeSelection).\n */\nexport function registerInheritDirMiddleware(\n\tcontext: PluginContext,\n\tdirectableTypes: ReadonlySet<string>,\n): void {\n\tcontext.registerMiddleware(\n\t\t(tr, state, next) => {\n\t\t\tlet patched = false;\n\n\t\t\tconst patchedSteps = tr.steps.map((step) => {\n\t\t\t\tif (step.type !== 'insertNode') return step;\n\t\t\t\tif (!directableTypes.has(step.node.type)) return step;\n\n\t\t\t\tconst newDir: string = String(step.node.attrs?.dir ?? 'auto');\n\t\t\t\tif (newDir !== 'auto') return step;\n\n\t\t\t\t// Detect direction from inserted node's text content\n\t\t\t\tconst nodeText: string = getBlockText(step.node);\n\t\t\t\tif (nodeText.length > 0) {\n\t\t\t\t\tconst detected: TextDirection | null = detectTextDirection(nodeText);\n\t\t\t\t\tif (detected) {\n\t\t\t\t\t\tpatched = true;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...step,\n\t\t\t\t\t\t\tnode: {\n\t\t\t\t\t\t\t\t...step.node,\n\t\t\t\t\t\t\t\tattrs: { ...step.node.attrs, dir: detected },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fall back to sibling direction for empty blocks\n\t\t\t\tconst siblingDir: string | undefined = findSiblingDirection(\n\t\t\t\t\tstate,\n\t\t\t\t\tstep.parentPath,\n\t\t\t\t\tstep.index,\n\t\t\t\t);\n\t\t\t\tif (!siblingDir || siblingDir === 'auto') return step;\n\n\t\t\t\tpatched = true;\n\t\t\t\treturn {\n\t\t\t\t\t...step,\n\t\t\t\t\tnode: {\n\t\t\t\t\t\t...step.node,\n\t\t\t\t\t\tattrs: { ...step.node.attrs, dir: siblingDir },\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tnext(patched ? { ...tr, steps: patchedSteps } : tr);\n\t\t},\n\t\t{ name: 'text-direction:inherit-dir' },\n\t);\n}\n","/**\n * TextDirectionPlugin: adds block-level text direction (`dir` attribute)\n * and inline bidi isolation (`<bdi>` mark) for RTL language support.\n *\n * Block-level: patches NodeSpecs for directable types to render the HTML\n * `dir` attribute. Provides `setDirectionLTR`, `setDirectionRTL`, and\n * `setDirectionAuto` commands with a toolbar dropdown.\n *\n * Inline: registers a `bdi` mark for bidi isolation of inline spans,\n * with `toggleBidiLTR`, `toggleBidiRTL`, `toggleBidiAuto`, and\n * `removeBidi` commands.\n */\n\nimport {\n\tapplyAttributedMark,\n\tisAttributedMarkActive,\n\tremoveAttributedMark,\n} from '../../commands/AttributedMarkCommands.js';\nimport type { BlockNode } from '../../model/Document.js';\nimport { escapeHTML } from '../../model/HTMLUtils.js';\nimport { isCollapsed, isNodeSelection, isTextSelection } from '../../model/Selection.js';\nimport type { BlockId } from '../../model/TypeBrands.js';\nimport { markType } from '../../model/TypeBrands.js';\nimport { isMac } from '../../platform/Platform.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\nimport { getSelectedBlock, resolveLocale } from '../shared/PluginHelpers.js';\nimport { formatShortcut } from '../shared/ShortcutFormatting.js';\nimport { getBlockDir } from './DirectionDetection.js';\nimport { ShiftDirectionHandler } from './ShiftDirectionHandler.js';\nimport {\n\tTEXT_DIRECTION_LOCALE_EN,\n\ttype TextDirectionLocale,\n\tloadTextDirectionLocale,\n} from './TextDirectionLocale.js';\nimport {\n\tregisterAutoDetectMiddleware,\n\tregisterInheritDirMiddleware,\n\tregisterPreserveDirMiddleware,\n} from './TextDirectionMiddleware.js';\n\n// --- Attribute Registry Augmentation ---\n\ndeclare module '../../model/AttrRegistry.js' {\n\tinterface MarkAttrRegistry {\n\t\tbdi: { dir: 'ltr' | 'rtl' | 'auto' };\n\t}\n}\n\n// --- Public Types ---\n\nexport type TextDirection = 'ltr' | 'rtl' | 'auto';\n\nexport interface TextDirectionConfig {\n\t/** Block types that support direction. */\n\treadonly directableTypes: readonly string[];\n\treadonly locale?: TextDirectionLocale;\n}\n\n// --- Constants ---\n\nconst DEFAULT_CONFIG: TextDirectionConfig = {\n\tdirectableTypes: [\n\t\t'paragraph',\n\t\t'heading',\n\t\t'title',\n\t\t'subtitle',\n\t\t'table_cell',\n\t\t'blockquote',\n\t\t'list_item',\n\t],\n};\n\nexport const DIRECTION_ICONS: Readonly<Record<TextDirection, string>> = {\n\tltr: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm12 8l-4-4v3H5v2h12v3l4-4z\"/></svg>',\n\trtl: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M10 10v5h2V4h2v11h2V4h2V2h-8C7.79 2 6 3.79 6 6s1.79 4 4 4zM8 14l-4 4 4 4v-3h12v-2H8v-3z\"/></svg>',\n\tauto: '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm3 8l-4-4v3H3v2h5v3l4-4zm7 0v-3l4 4-4 4v-3h-5v-2h5z\"/></svg>',\n};\n\nconst ALL_DIRECTIONS: readonly TextDirection[] = ['ltr', 'rtl', 'auto'];\n\nconst INLINE_BDI_ICON: string =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M10 4v7h2V4h2v7h2V4h1V2H10a3 3 0 1 0 0 6zm-3.5 9.5L3 17l3.5 3.5V18h3v-2h-3v-2.5zm14 0L17 17l3.5 3.5V18h-3v-2h3v-2.5zM11 16h2v6h-2z\"/></svg>';\n\n// --- Plugin ---\n\nexport class TextDirectionPlugin implements Plugin {\n\treadonly id = 'text-direction';\n\treadonly name = 'Text Direction';\n\treadonly priority = 91;\n\n\tprivate readonly config: TextDirectionConfig;\n\tprivate locale!: TextDirectionLocale;\n\tprivate directableTypes!: ReadonlySet<string>;\n\tprivate shiftDirHandler: ShiftDirectionHandler | null = null;\n\n\tconstructor(config?: Partial<TextDirectionConfig>) {\n\t\tthis.config = { ...DEFAULT_CONFIG, ...config };\n\t}\n\n\tasync init(context: PluginContext): Promise<void> {\n\t\tthis.locale = await resolveLocale(\n\t\t\tcontext,\n\t\t\tthis.config.locale,\n\t\t\tTEXT_DIRECTION_LOCALE_EN,\n\t\t\tloadTextDirectionLocale,\n\t\t);\n\n\t\tthis.directableTypes = new Set(this.config.directableTypes);\n\t\tthis.patchNodeSpecs(context);\n\t\tthis.registerBdiMark(context);\n\t\tthis.registerCommands(context);\n\t\tthis.registerKeymaps(context);\n\t\tthis.registerToolbarItem(context);\n\t\tthis.registerInlineToolbarItem(context);\n\t\tregisterPreserveDirMiddleware(context, this.directableTypes);\n\t\tregisterAutoDetectMiddleware(context, this.directableTypes);\n\t\tregisterInheritDirMiddleware(context, this.directableTypes);\n\n\t\t// Ctrl+Shift direction shortcuts (Windows/Linux convention)\n\t\tif (!isMac()) {\n\t\t\tthis.shiftDirHandler = new ShiftDirectionHandler(context);\n\t\t\tthis.shiftDirHandler.attach(context.getContainer());\n\t\t}\n\t}\n\n\tdestroy(): void {\n\t\tthis.shiftDirHandler?.detach();\n\t\tthis.shiftDirHandler = null;\n\t}\n\n\t// --- NodeSpec Patching ---\n\n\t/**\n\t * Patches existing NodeSpecs for directable block types to support the\n\t * `dir` attribute and render it as an HTML attribute. Skips types\n\t * that already define a `dir` attribute in their spec.\n\t */\n\tprivate patchNodeSpecs(context: PluginContext): void {\n\t\tconst registry = context.getSchemaRegistry();\n\n\t\tfor (const type of this.config.directableTypes) {\n\t\t\tconst spec = registry.getNodeSpec(type);\n\t\t\tif (!spec) continue;\n\n\t\t\tif (spec.attrs?.dir) continue;\n\n\t\t\tconst originalToDOM = spec.toDOM;\n\n\t\t\tregistry.removeNodeSpec(type);\n\t\t\tregistry.registerNodeSpec({\n\t\t\t\t...spec,\n\t\t\t\tattrs: {\n\t\t\t\t\t...spec.attrs,\n\t\t\t\t\tdir: { default: 'auto' },\n\t\t\t\t},\n\t\t\t\ttoDOM(node) {\n\t\t\t\t\tconst el = originalToDOM.call(spec, node);\n\t\t\t\t\tapplyDirection(el, node);\n\t\t\t\t\treturn el;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\t// --- Inline <bdi> Mark ---\n\n\tprivate registerBdiMark(context: PluginContext): void {\n\t\tcontext.registerMarkSpec({\n\t\t\ttype: 'bdi',\n\t\t\trank: 10,\n\t\t\tattrs: {\n\t\t\t\tdir: { default: 'auto' },\n\t\t\t},\n\t\t\ttoDOM(mark) {\n\t\t\t\tconst el: HTMLElement = document.createElement('bdi');\n\t\t\t\tconst dir: string = String(mark.attrs?.dir ?? 'auto');\n\t\t\t\tel.setAttribute('dir', dir);\n\t\t\t\treturn el;\n\t\t\t},\n\t\t\ttoHTMLString: (mark, content) => {\n\t\t\t\tconst dir: string = escapeHTML(String(mark.attrs?.dir ?? 'auto'));\n\t\t\t\treturn `<bdi dir=\"${dir}\">${content}</bdi>`;\n\t\t\t},\n\t\t\tparseHTML: [\n\t\t\t\t{\n\t\t\t\t\ttag: 'bdi',\n\t\t\t\t\tgetAttrs: (el) => {\n\t\t\t\t\t\tconst dir: string | null = el.getAttribute('dir');\n\t\t\t\t\t\tif (dir === 'ltr' || dir === 'rtl') return { dir };\n\t\t\t\t\t\treturn { dir: 'auto' };\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tsanitize: { tags: ['bdi'], attrs: ['dir'] },\n\t\t});\n\t}\n\n\t// --- Commands ---\n\n\tprivate registerCommands(context: PluginContext): void {\n\t\tcontext.registerCommand('setDirectionLTR', () => {\n\t\t\tconst result: boolean = this.setDirection(context, 'ltr');\n\t\t\tif (result) context.announce(this.locale.announceLTR);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('setDirectionRTL', () => {\n\t\t\tconst result: boolean = this.setDirection(context, 'rtl');\n\t\t\tif (result) context.announce(this.locale.announceRTL);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('setDirectionAuto', () => {\n\t\t\tconst result: boolean = this.setDirection(context, 'auto');\n\t\t\tif (result) context.announce(this.locale.announceAuto);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('toggleBidiLTR', () => {\n\t\t\tconst result: boolean = this.applyBdi(context, 'ltr');\n\t\t\tif (result) context.announce(this.locale.inlineLTR);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('toggleBidiRTL', () => {\n\t\t\tconst result: boolean = this.applyBdi(context, 'rtl');\n\t\t\tif (result) context.announce(this.locale.inlineRTL);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('toggleBidiAuto', () => {\n\t\t\tconst result: boolean = this.applyBdi(context, 'auto');\n\t\t\tif (result) context.announce(this.locale.inlineAuto);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('removeBidi', () => {\n\t\t\tconst result: boolean = this.removeBdi(context);\n\t\t\tif (result) context.announce(this.locale.announceRemoveBidi);\n\t\t\treturn result;\n\t\t});\n\n\t\tcontext.registerCommand('toggleBidiIsolation', () => {\n\t\t\treturn this.toggleBidiIsolation(context);\n\t\t});\n\n\t\tcontext.registerCommand('toggleDirection', () => {\n\t\t\tconst state = context.getState();\n\t\t\tconst block = getSelectedBlock(state);\n\t\t\tif (!block || !this.directableTypes.has(block.type)) return false;\n\n\t\t\tconst current: TextDirection = getBlockDir(block);\n\t\t\tconst next: TextDirection = current === 'auto' ? 'rtl' : current === 'rtl' ? 'ltr' : 'auto';\n\t\t\treturn this.setDirection(context, next);\n\t\t});\n\t}\n\n\t// --- Keymaps ---\n\n\tprivate registerKeymaps(context: PluginContext): void {\n\t\tcontext.registerKeymap({\n\t\t\t'Mod-Shift-D': () => context.executeCommand('toggleDirection'),\n\t\t\t'Mod-Shift-B': () => context.executeCommand('toggleBidiIsolation'),\n\t\t});\n\t}\n\n\t// --- Toolbar ---\n\n\tprivate registerToolbarItem(context: PluginContext): void {\n\t\tconst commandNames: Readonly<Record<TextDirection, string>> = {\n\t\t\tltr: 'setDirectionLTR',\n\t\t\trtl: 'setDirectionRTL',\n\t\t\tauto: 'setDirectionAuto',\n\t\t};\n\n\t\tconst dropdownItems = ALL_DIRECTIONS.map((dir) => ({\n\t\t\tlabel: this.getDirectionLabel(dir),\n\t\t\tcommand: commandNames[dir],\n\t\t\ticon: DIRECTION_ICONS[dir],\n\t\t}));\n\n\t\tcontext.registerToolbarItem({\n\t\t\tid: 'text-direction',\n\t\t\tgroup: 'block',\n\t\t\ticon: DIRECTION_ICONS.auto,\n\t\t\tlabel: this.locale.toolbarLabel,\n\t\t\ttooltip: `${this.locale.toolbarTooltip} (${formatShortcut('Mod-Shift-D')})`,\n\t\t\tcommand: 'setDirectionAuto',\n\t\t\tpopupType: 'dropdown',\n\t\t\tpopupConfig: { items: dropdownItems },\n\t\t\tisActive: (state) => this.isNonDefaultDirection(state),\n\t\t\tisEnabled: (state) => this.isDirectable(state),\n\t\t\tgetIcon: (state) => {\n\t\t\t\tconst block = getSelectedBlock(state);\n\t\t\t\tif (!block) return DIRECTION_ICONS.auto;\n\t\t\t\tconst dir: TextDirection = getBlockDir(block);\n\t\t\t\treturn DIRECTION_ICONS[dir] ?? DIRECTION_ICONS.auto;\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate registerInlineToolbarItem(context: PluginContext): void {\n\t\tconst inlineItems = [\n\t\t\t{ label: this.locale.inlineLTR, command: 'toggleBidiLTR', icon: DIRECTION_ICONS.ltr },\n\t\t\t{ label: this.locale.inlineRTL, command: 'toggleBidiRTL', icon: DIRECTION_ICONS.rtl },\n\t\t\t{ label: this.locale.inlineAuto, command: 'toggleBidiAuto', icon: DIRECTION_ICONS.auto },\n\t\t\t{ label: this.locale.announceRemoveBidi, command: 'removeBidi' },\n\t\t];\n\n\t\tcontext.registerToolbarItem({\n\t\t\tid: 'inline-direction',\n\t\t\tgroup: 'format',\n\t\t\ticon: INLINE_BDI_ICON,\n\t\t\tlabel: this.locale.inlineLabel,\n\t\t\ttooltip: `${this.locale.inlineTooltip} (${formatShortcut('Mod-Shift-B')})`,\n\t\t\tcommand: 'toggleBidiIsolation',\n\t\t\tpopupType: 'dropdown',\n\t\t\tpopupConfig: { items: inlineItems },\n\t\t\tisActive: (state) => isAttributedMarkActive(state, 'bdi'),\n\t\t\tisEnabled: (state) => {\n\t\t\t\tconst sel = state.selection;\n\t\t\t\treturn isTextSelection(sel) && !isCollapsed(sel);\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate getDirectionLabel(dir: TextDirection): string {\n\t\tif (dir === 'ltr') return this.locale.ltr;\n\t\tif (dir === 'rtl') return this.locale.rtl;\n\t\treturn this.locale.auto;\n\t}\n\n\t// --- Direction Logic ---\n\n\tprivate setDirection(context: PluginContext, direction: TextDirection): boolean {\n\t\tconst state = context.getState();\n\t\tconst blockIds: BlockId[] = this.getSelectedBlockIds(state);\n\t\tif (blockIds.length === 0) return false;\n\n\t\tconst tb = state.transaction('command');\n\t\tlet changed = false;\n\n\t\tfor (const id of blockIds) {\n\t\t\tconst block = state.getBlock(id);\n\t\t\tif (!block || !this.directableTypes.has(block.type)) continue;\n\n\t\t\tconst path = state.getNodePath(id);\n\t\t\tif (!path) continue;\n\n\t\t\ttb.setNodeAttr(path, { ...block.attrs, dir: direction });\n\t\t\tchanged = true;\n\t\t}\n\n\t\tif (!changed) return false;\n\n\t\tconst tr = tb.setSelection(state.selection).build();\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n\n\t/**\n\t * Returns all block IDs covered by the current selection.\n\t * Only handles TextSelection and NodeSelection — other selection types\n\t * (e.g. GapCursorSelection) return an empty array intentionally, since\n\t * gap cursors sit between blocks and have no associated block content.\n\t */\n\tprivate getSelectedBlockIds(state: EditorState): BlockId[] {\n\t\tconst sel = state.selection;\n\n\t\tif (isNodeSelection(sel)) {\n\t\t\treturn [sel.nodeId];\n\t\t}\n\n\t\tif (!isTextSelection(sel)) return [];\n\n\t\tconst anchorId: BlockId = sel.anchor.blockId;\n\t\tconst headId: BlockId = sel.head.blockId;\n\n\t\tif (anchorId === headId) return [anchorId];\n\n\t\tconst order: readonly BlockId[] = state.getBlockOrder();\n\t\tconst anchorIdx: number = order.indexOf(anchorId);\n\t\tconst headIdx: number = order.indexOf(headId);\n\t\tif (anchorIdx === -1 || headIdx === -1) return [];\n\n\t\tconst from: number = Math.min(anchorIdx, headIdx);\n\t\tconst to: number = Math.max(anchorIdx, headIdx);\n\t\treturn order.slice(from, to + 1) as BlockId[];\n\t}\n\n\tprivate isNonDefaultDirection(state: EditorState): boolean {\n\t\tconst block = getSelectedBlock(state);\n\t\tif (!block || !this.directableTypes.has(block.type)) return false;\n\t\tconst dir = block.attrs?.dir;\n\t\treturn dir != null && dir !== 'auto';\n\t}\n\n\tprivate isDirectable(state: EditorState): boolean {\n\t\tconst block = getSelectedBlock(state);\n\t\treturn block != null && this.directableTypes.has(block.type);\n\t}\n\n\t// --- Inline bdi mark operations ---\n\n\t/**\n\t * Cycles inline bidi isolation: no-bdi → bdi (opposite of block dir) →\n\t * remove. Applies the opposite direction of the current block for the\n\t * common case (e.g., LTR word in an RTL block gets bdi-ltr).\n\t */\n\tprivate toggleBidiIsolation(context: PluginContext): boolean {\n\t\tconst state = context.getState();\n\t\tif (isAttributedMarkActive(state, 'bdi')) {\n\t\t\tconst result: boolean = this.removeBdi(context);\n\t\t\tif (result) context.announce(this.locale.announceRemoveBidi);\n\t\t\treturn result;\n\t\t}\n\t\tconst block = getSelectedBlock(state);\n\t\tconst blockDir: TextDirection = block ? getBlockDir(block) : 'auto';\n\t\tconst bdiDir: TextDirection = blockDir === 'rtl' ? 'ltr' : 'rtl';\n\t\tconst result: boolean = this.applyBdi(context, bdiDir);\n\t\tif (result) {\n\t\t\tconst announcement: string = bdiDir === 'ltr' ? this.locale.inlineLTR : this.locale.inlineRTL;\n\t\t\tcontext.announce(announcement);\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate applyBdi(context: PluginContext, dir: TextDirection): boolean {\n\t\tconst state = context.getState();\n\t\tconst mark = { type: markType('bdi'), attrs: { dir } };\n\t\tconst tr = applyAttributedMark(state, mark);\n\t\tif (!tr) return false;\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n\n\tprivate removeBdi(context: PluginContext): boolean {\n\t\tconst state = context.getState();\n\t\tconst tr = removeAttributedMark(state, markType('bdi'));\n\t\tif (!tr) return false;\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n}\n\n// --- Helpers ---\n\nfunction applyDirection(el: HTMLElement, node: BlockNode): void {\n\tconst dir = node.attrs?.dir;\n\tif (dir === 'ltr' || dir === 'rtl' || dir === 'auto') {\n\t\tel.setAttribute('dir', dir);\n\t}\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e={label:"代码块",tooltip:e=>e?`代码块 (${e})`:"代码块",enteredCodeBlock:"已进入代码块。按 Escape 退出。",leftCodeBlock:"已离开代码块。",copyCodeAria:"复制代码",escToExit:"Esc 退出",codeBlockAriaLabel:e=>`${e} 代码块。按 Escape 退出。`,copiedToClipboard:"已复制到剪贴板",deleteCodeBlockAria:"删除代码块",deletedCodeBlock:"代码块已删除"};export{e as default};
|
|
2
|
-
//# sourceMappingURL=zh-
|
|
1
|
+
var e={label:"代码块",tooltip:e=>e?`代码块 (${e})`:"代码块",enteredCodeBlock:"已进入代码块。按 Escape 退出。",leftCodeBlock:"已离开代码块。",copyCodeAria:"复制代码",escToExit:"Esc 退出",codeBlockAriaLabel:e=>`${e} 代码块。按 Escape 退出。`,copiedToClipboard:"已复制到剪贴板",copyFailed:"复制代码失败",deleteCodeBlockAria:"删除代码块",deletedCodeBlock:"代码块已删除",selectLanguageAria:"选择语言",languageChanged:e=>`语言已更改为 ${e}`,plainText:"纯文本"};export{e as default};
|
|
2
|
+
//# sourceMappingURL=zh-D4eu30KQ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zh-
|
|
1
|
+
{"version":3,"file":"zh-D4eu30KQ.mjs","names":[],"sources":["../../src/plugins/code-block/locales/zh.ts"],"sourcesContent":["import type { CodeBlockLocale } from '../CodeBlockLocale.js';\n\nconst locale: CodeBlockLocale = {\n\tlabel: '\\u4ee3\\u7801\\u5757',\n\ttooltip: (shortcut?: string) =>\n\t\tshortcut ? `\\u4ee3\\u7801\\u5757 (${shortcut})` : '\\u4ee3\\u7801\\u5757',\n\tenteredCodeBlock: '\\u5df2\\u8fdb\\u5165\\u4ee3\\u7801\\u5757\\u3002\\u6309 Escape \\u9000\\u51fa\\u3002',\n\tleftCodeBlock: '\\u5df2\\u79bb\\u5f00\\u4ee3\\u7801\\u5757\\u3002',\n\tcopyCodeAria: '\\u590d\\u5236\\u4ee3\\u7801',\n\tescToExit: 'Esc \\u9000\\u51fa',\n\tcodeBlockAriaLabel: (lang: string) =>\n\t\t`${lang} \\u4ee3\\u7801\\u5757\\u3002\\u6309 Escape \\u9000\\u51fa\\u3002`,\n\tcopiedToClipboard: '\\u5df2\\u590d\\u5236\\u5230\\u526a\\u8d34\\u677f',\n\tcopyFailed: '\\u590d\\u5236\\u4ee3\\u7801\\u5931\\u8d25',\n\tdeleteCodeBlockAria: '\\u5220\\u9664\\u4ee3\\u7801\\u5757',\n\tdeletedCodeBlock: '\\u4ee3\\u7801\\u5757\\u5df2\\u5220\\u9664',\n\tselectLanguageAria: '\\u9009\\u62e9\\u8bed\\u8a00',\n\tlanguageChanged: (lang: string) => `\\u8bed\\u8a00\\u5df2\\u66f4\\u6539\\u4e3a ${lang}`,\n\tplainText: '\\u7eaf\\u6587\\u672c',\n};\n\nexport default locale;\n"],"mappings":"AAEA,IAAM,EAA0B,CAC/B,MAAO,MACP,QAAU,GACT,EAAW,QAAuB,KAAc,MACjD,iBAAkB,sBAClB,cAAe,UACf,aAAc,OACd,UAAW,SACX,mBAAqB,GACpB,GAAG,qBACJ,kBAAmB,UACnB,WAAY,SACZ,oBAAqB,QACrB,iBAAkB,SAClB,mBAAoB,OACpB,gBAAkB,GAAiB,UAAwC,IAC3E,UAAW"}
|
|
@@ -29,6 +29,19 @@ export declare function findLastLeafBlockId(node: BlockNode): BlockId;
|
|
|
29
29
|
* Void blocks become NodeSelections; text-capable blocks resolve to leaf cursors.
|
|
30
30
|
*/
|
|
31
31
|
export declare function createSelectionForBlockBoundary(state: EditorState, blockId: BlockId, boundary: 'start' | 'end'): EditorSelection | null;
|
|
32
|
+
/**
|
|
33
|
+
* Resolves a valid editor selection anywhere in the document, starting from
|
|
34
|
+
* the first (or last) top-level block and deferring per-block resolution to
|
|
35
|
+
* {@link createSelectionForBlockBoundary}. Useful as a last-resort fallback
|
|
36
|
+
* after deletions when neighbouring siblings cannot provide a selection.
|
|
37
|
+
*
|
|
38
|
+
* @param state The editor state to query.
|
|
39
|
+
* @param boundary `'start'` walks document order; `'end'` walks reverse.
|
|
40
|
+
* @param excludeBlockId Optional block id to skip (e.g. the block about to
|
|
41
|
+
* be removed by the caller's transaction).
|
|
42
|
+
* @returns A valid selection, or `null` if no selectable block exists.
|
|
43
|
+
*/
|
|
44
|
+
export declare function createSelectionForDocumentBoundary(state: EditorState, boundary: 'start' | 'end', excludeBlockId?: BlockId): EditorSelection | null;
|
|
32
45
|
/** Returns the root-level block IDs in document order. */
|
|
33
46
|
export declare function getRootBlockIds(doc: Document): readonly BlockId[];
|
|
34
47
|
//# sourceMappingURL=CommandHelpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandHelpers.d.ts","sourceRoot":"","sources":["../../src/commands/CommandHelpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAQ3E,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAC1B,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,SAAS,OAAO,EAAE,GAC5B,SAAS,SAAS,EAAE,CAMtB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,OAAO,EAAE,GAAG,WAAW,CAM9F;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAEhF;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAE1F;AAED,kDAAkD;AAClD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAS7D;AAED,iDAAiD;AACjD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAW5D;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC9C,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,GAAG,KAAK,GACvB,eAAe,GAAG,IAAI,CAgBxB;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,OAAO,EAAE,CAEjE"}
|
|
1
|
+
{"version":3,"file":"CommandHelpers.d.ts","sourceRoot":"","sources":["../../src/commands/CommandHelpers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAQ3E,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAC1B,KAAK,EAAE,WAAW,EAClB,UAAU,EAAE,SAAS,OAAO,EAAE,GAC5B,SAAS,SAAS,EAAE,CAMtB;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,OAAO,EAAE,GAAG,WAAW,CAM9F;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAEhF;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAE1F;AAED,kDAAkD;AAClD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAS7D;AAED,iDAAiD;AACjD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAW5D;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC9C,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,GAAG,KAAK,GACvB,eAAe,GAAG,IAAI,CAgBxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kCAAkC,CACjD,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,OAAO,GAAG,KAAK,EACzB,cAAc,CAAC,EAAE,OAAO,GACtB,eAAe,GAAG,IAAI,CAiBxB;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,SAAS,OAAO,EAAE,CAEjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteCommands.d.ts","sourceRoot":"","sources":["../../src/commands/DeleteCommands.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"DeleteCommands.d.ts","sourceRoot":"","sources":["../../src/commands/DeleteCommands.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgBH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA+B3D,6BAA6B;AAC7B,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAarE;AAED,0BAA0B;AAC1B,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAcpE;AAED,oDAAoD;AACpD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAMzE;AAED,gDAAgD;AAChD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAQxE;AAED,4DAA4D;AAC5D,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAK7E;AAED,uDAAuD;AACvD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAQ5E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Locale } from '../i18n/Locale.js';
|
|
2
2
|
import { PaperSize } from '../model/PaperSize.js';
|
|
3
|
+
import { Logger } from '../plugins/Logger.js';
|
|
3
4
|
import { Plugin } from '../plugins/Plugin.js';
|
|
4
5
|
import { TextFormattingConfig } from '../plugins/text-formatting/TextFormattingPlugin.js';
|
|
5
6
|
import { ToolbarOverflowBehavior } from '../plugins/toolbar/ToolbarOverflowBehavior.js';
|
|
@@ -46,5 +47,11 @@ export interface NotectlEditorConfig {
|
|
|
46
47
|
dir?: 'ltr' | 'rtl';
|
|
47
48
|
/** Editor locale. Defaults to Locale.BROWSER (auto-detect from navigator.language). */
|
|
48
49
|
locale?: Locale;
|
|
50
|
+
/**
|
|
51
|
+
* Sink for editor runtime errors. Defaults to a console-backed logger.
|
|
52
|
+
* Supply `silentLogger` or a custom adapter to route errors into your
|
|
53
|
+
* own telemetry pipeline instead of the browser console.
|
|
54
|
+
*/
|
|
55
|
+
logger?: Logger;
|
|
49
56
|
}
|
|
50
57
|
//# sourceMappingURL=EditorConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorConfig.d.ts","sourceRoot":"","sources":["../../src/editor/EditorConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IACnC,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC;IAC5B,yGAAyG;IACzG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,qFAAqF;IACrF,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
1
|
+
{"version":3,"file":"EditorConfig.d.ts","sourceRoot":"","sources":["../../src/editor/EditorConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CAC5C;AAED,MAAM,WAAW,mBAAmB;IACnC,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,WAAW,GAAG,KAAK,CAAC;IAC5B,yGAAyG;IACzG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,qFAAqF;IACrF,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditorLocale.d.ts","sourceRoot":"","sources":["../../src/editor/EditorLocale.ts"],"names":[],"mappings":"AAAA,wEAAwE;
|
|
1
|
+
{"version":3,"file":"EditorLocale.d.ts","sourceRoot":"","sources":["../../src/editor/EditorLocale.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAMxE,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;CACpC;AAID,eAAO,MAAM,gBAAgB,EAAE,YAI9B,CAAC;AAQF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAE1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../../src/editor/styles/code-block.ts"],"names":[],"mappings":"AAUA,8EAA8E;AAC9E,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../../src/editor/styles/code-block.ts"],"names":[],"mappings":"AAUA,8EAA8E;AAC9E,eAAO,MAAM,cAAc,QAoK1B,CAAC"}
|
package/dist/fonts.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as s,r as o,t as r}from"./chunks/fonts-
|
|
1
|
+
import{n as s,r as o,t as r}from"./chunks/fonts-CG_dDwvT.mjs";export{r as FIRA_CODE,s as FIRA_SANS,o as STARTER_FONTS};
|
package/dist/full.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as s,S as a,_ as r,b as m,d as o,f as i,g as t,h as n,i as u,l as p,m as l,n as c,o as e,r as j,s as g,v as h,x as k,y as f}from"./chunks/Document-_qdGR4vh.mjs";import{A as P,B as d,F as x,H as b,I as C,L as T,M as S,N as y,P as D,R as v,S as B,V as H,_ as N,a as A,b as R,c as z,d as F,f as L,g as _,h as I,i as M,j as w,k as G,l as X,m as q,n as U,o as V,p as E,r as O,s as Q,t as W,u as J,v as K,x as Y,y as Z,z as $}from"./chunks/CaretNavigationPlugin-BxU2lMwX.mjs";import{a as ss,c as as,d as rs,f as ms,i as os,l as is,n as ts,o as ns,r as us,s as ps,t as ls,u as cs}from"./chunks/Selection-aeiSsvhe.mjs";import{S as es,_ as js,a as gs,b as hs,c as ks,g as fs,h as Ps,i as ds,l as xs,m as bs,n as Cs,o as Ts,r as Ss,s as ys,v as Ds,w as vs,x as Bs,y as Hs}from"./chunks/Commands-C7zBYmhA.mjs";import{a as Ns,i as As,n as Rs,o as zs,r as Fs,t as Ls}from"./chunks/TypeBrands-BZDKMjR-.mjs";import{n as _s,r as Is,t as Ms}from"./chunks/AttrRegistry-nDKtHK87.mjs";import{n as ws}from"./chunks/DomUtils-RKbAVBQz.mjs";import{i as Gs,n as Xs,r as qs}from"./chunks/HTMLUtils-B8xj8Z1x.mjs";import{A as Us,C as Vs,D as Es,E as Os,O as Qs,S as Ws,T as Js,_ as Ks,a as Ys,b as Zs,c as $s,d as sa,f as aa,g as ra,h as ma,i as oa,j as ia,k as ta,l as na,m as ua,n as pa,o as la,p as ca,r as ea,s as ja,t as ga,u as ha,v as ka,w as fa,x as Pa,y as da}from"./chunks/src-CgbuJfYr.mjs";import{a as xa,i as ba,n as Ca,o as Ta,r as Sa,t as ya}from"./chunks/NodeResolver-DVPpO5nC.mjs";import{i as Da,n as va,r as Ba,t as Ha}from"./chunks/GapCursorNavigation-PhJeqELx.mjs";import{a as Na,i as Aa,n as Ra,r as za,t as Fa}from"./chunks/NavigationQueries-_xQtPALX.mjs";import{i as La,t as _a}from"./chunks/NodeSelectionCommands-BFHLrE5I.mjs";import{n as Ia,t as Ma}from"./chunks/RangeIterator-CVUeIB4P.mjs";import{n as wa,t as Ga}from"./chunks/WordBoundary-DI0G6Wk2.mjs";import{i as Xa,n as qa,r as Ua,t as Va}from"./chunks/AttributedMarkCommands-D_PYkbBt.mjs";import{a as Ea,i as Oa,n as Qa,r as Wa,t as Ja}from"./chunks/Platform-D9TRT4Mn.mjs";import{a as Ka,i as Ya,n as Za,r as $a,t as sr}from"./chunks/DocumentParser-Cq_bFYAS.mjs";import{n as ar,t as rr}from"./chunks/Plugin-BUNGKupW.mjs";import{a as mr,i as or,r as ir,t as tr}from"./chunks/Decoration-oeHDjWWq.mjs";import{t as nr}from"./chunks/BlockTypePickerRegistry-C_jLddOz.mjs";import{a as ur,i as pr,n as lr,o as cr,r as er,t as jr}from"./chunks/ToolbarPlugin-BipA0zez.mjs";import{t as gr}from"./chunks/SyntaxTokenTypes-CVUAMov0.mjs";import{_ as hr,a as kr,c as fr,d as Pr,f as dr,g as xr,h as br,i as Cr,l as Tr,m as Sr,n as yr,o as Dr,p as vr,r as Br,s as Hr,t as Nr,u as Ar}from"./chunks/PrintTypes-DTV3-mSe.mjs";import{n as Rr,o as zr,r as Fr,s as Lr,t as _r}from"./chunks/PluginHelpers-Db50-BRE.mjs";import{t as Ir}from"./chunks/GapCursorPlugin-9V0Ne0Sw.mjs";import{t as Mr}from"./chunks/ShortcutFormatting-DE6B8iGs.mjs";import{n as wr,r as Gr,t as Xr}from"./chunks/TextFormattingPlugin-DKgwX4Gy.mjs";import{n as qr,r as Ur,t as Vr}from"./chunks/KeyboardNav-CsdlWnNl.mjs";import{r as Er,t as Or}from"./chunks/PopupPositioning-DRNwWB0U.mjs";import{n as Qr,t as Wr}from"./chunks/PopupManager-DaTySyZl.mjs";import"./html.mjs";import{n as Jr,r as Kr,t as Yr}from"./chunks/FontPlugin-CUVcS-40.mjs";import{a as Zr,i as $r,n as sm,r as am,t as rm}from"./chunks/ColorValidation-CiGxVsqd.mjs";import{t as mm}from"./chunks/minimal-DmYfqOxb.mjs";import{i as om,n as im,r as tm,t as nm}from"./chunks/AlignmentPlugin-CD11uRY3.mjs";import{n as um,r as pm,t as lm}from"./chunks/BlockquotePlugin-DpMA33pk.mjs";import{a as cm,i as em,n as jm,o as gm,r as hm,t as km}from"./chunks/CodeBlockPlugin-CSb6Fxce.mjs";import{i as fm,n as Pm,r as dm,t as xm}from"./chunks/XmlDetector-DlRdJOIX.mjs";import{a as bm,i as Cm,n as Tm,o as Sm,r as ym,t as Dm}from"./chunks/XmlSupport-UA-iNWTl.mjs";import{n as vm,t as Bm}from"./chunks/XmlPatterns-Dwmn4nrg.mjs";import{n as Hm,r as Nm,t as Am}from"./chunks/FontSizePlugin-a8YyFsjf.mjs";import{t as Rm}from"./chunks/HardBreakPlugin-BzAU3DoJ.mjs";import{n as zm,r as Fm,t as Lm}from"./chunks/HeadingPlugin-1BVn57NF.mjs";import{a as _m,i as Im,n as Mm,r as wm,t as Gm}from"./chunks/ColorPickerPopup-BwU_WZHh.mjs";import{n as Xm,r as qm,t as Um}from"./chunks/ColorGrid-BNDaG3b2.mjs";import{n as Vm,r as Em,t as Om}from"./chunks/HighlightPlugin-7S6Y_IFY.mjs";import{n as Qm,r as Wm,t as Jm}from"./chunks/HorizontalRulePlugin-bZ4nat7E.mjs";import{a as Km,i as Ym,n as Zm,r as $m,t as so}from"./chunks/ImagePlugin-wz0SBhFQ.mjs";import{n as ao,r as ro,t as mo}from"./chunks/InlineCodePlugin-DW5_oiac.mjs";import{n as oo,r as io,t as to}from"./chunks/LinkPlugin-pWzPs-dS.mjs";import{n as no,r as uo,t as po}from"./chunks/ListPlugin-Datp4nPR.mjs";import{n as lo,r as co,t as eo}from"./chunks/PrintPlugin-Dv8_E40e.mjs";import{i as jo,n as go,r as ho,t as ko}from"./chunks/SmartPastePlugin-PCLFN5yA.mjs";import{n as fo,r as Po,t as xo}from"./chunks/StrikethroughPlugin-J5eDn_sY.mjs";import{n as bo,r as Co,t as To}from"./chunks/SuperSubPlugin-uSLscUwN.mjs";import{n as So,t as yo}from"./chunks/TablePlugin-DJHHWTD2.mjs";import{n as Do,r as vo,t as Bo}from"./chunks/TextColorPlugin-CawTv5pV.mjs";import{a as Ho,i as No,n as Ao,o as Ro,t as zo}from"./chunks/TextDirectionLocale-Kh3r4XQS.mjs";import{n as Fo,t as Lo}from"./chunks/TextDirectionCorePlugin-CXCxX532.mjs";import{t as _o}from"./chunks/full-DCZ8MMpe.mjs";import"./presets.mjs";import{n as Io,r as Mo,t as wo}from"./chunks/fonts-B3hiRKxQ.mjs";import"./plugins/text-formatting.mjs";import"./plugins/heading.mjs";import"./plugins/toolbar.mjs";import{n as Go,r as Xo,t as qo}from"./chunks/shared-BLU27F7-.mjs";import"./plugins/table.mjs";import"./plugins/image.mjs";import"./plugins/code-block.mjs";import"./plugins/link.mjs";import"./plugins/list.mjs";import"./plugins/blockquote.mjs";import"./plugins/strikethrough.mjs";import"./plugins/inline-code.mjs";import"./plugins/text-color.mjs";import"./plugins/horizontal-rule.mjs";import"./plugins/alignment.mjs";import"./plugins/font.mjs";import"./plugins/font-size.mjs";import"./plugins/highlight.mjs";import"./plugins/super-sub.mjs";import"./plugins/hard-break.mjs";import"./plugins/gap-cursor.mjs";import"./plugins/caret-navigation.mjs";import"./plugins/print.mjs";import"./plugins/smart-paste.mjs";import"./plugins/language.mjs";import"./plugins/text-direction.mjs";import{n as Uo}from"./chunks/text-direction-advanced-CkFu0K_I.mjs";export{Nr as AFTER_PRINT,nm as ALIGNMENT_ICONS,tm as ALIGNMENT_LOCALE_EN,im as AlignmentPlugin,yr as BEFORE_PRINT,um as BLOCKQUOTE_LOCALE_EN,nr as BlockTypePickerRegistry,lm as BlockquotePlugin,U as CARET_NAVIGATION_LOCALE_EN,cm as CODE_BLOCK_LOCALE_EN,hm as CODE_BLOCK_SERVICE_KEY,W as CaretNavigationPlugin,ka as ClipboardHandler,km as CodeBlockPlugin,Ks as CompositionTracker,sa as CursorWrapper,vr as DARK_THEME,Zm as DEFAULT_IMAGE_KEYMAP,Lo as DIRECTION_ICONS,tr as DecorationSet,Vs as EditorState,ha as EventBus,rr as EventKey,wo as FIRA_CODE,Io as FIRA_SANS,Jr as FONT_LOCALE_EN,Hm as FONT_SIZE_LOCALE_EN,ca as FileHandlerRegistry,Yr as FontPlugin,Am as FontSizePlugin,Ir as GapCursorPlugin,zm as HEADING_LOCALE_EN,Vm as HIGHLIGHT_LOCALE_EN,Qm as HORIZONTAL_RULE_LOCALE_EN,Rm as HardBreakPlugin,Lm as HeadingPlugin,Om as HighlightPlugin,Zs as HistoryManager,Jm as HorizontalRulePlugin,Ym as IMAGE_LOCALE_EN,$m as IMAGE_UPLOAD_SERVICE,ao as INLINE_CODE_LOCALE_EN,so as ImagePlugin,mo as InlineCodePlugin,ra as InputManager,ua as InputRuleRegistry,Sm as JAVA_LANGUAGE,bm as JAVA_SUPPORT,Cm as JSON_LANGUAGE,ym as JSON_SUPPORT,dm as JavaDetector,Pm as JsonDetector,ma as KeymapRegistry,fm as LANGUAGE_REGISTRY_SERVICE_KEY,Sr as LIGHT_THEME,oo as LINK_LOCALE_EN,no as LIST_LOCALE_EN,to as LinkPlugin,po as ListPlugin,$s as Locale,zr as LocaleService,Lr as LocaleServiceKey,aa as NodeViewRegistry,ga as NotectlEditor,Cr as PAPER_MARGIN_HORIZONTAL_PX,kr as PAPER_MARGIN_TOP_PX,Dr as PAPER_VIEWPORT_PADDING_PX,lo as PRINT_LOCALE_EN,Br as PRINT_SERVICE_KEY,Hr as PaperSize,na as PluginManager,Wr as PopupManager,Qr as PopupServiceKey,eo as PrintPlugin,jm as RegexTokenizer,ho as SMART_PASTE_LOCALE_EN,go as SMART_PASTE_SERVICE_KEY,Mo as STARTER_FONTS,fo as STRIKETHROUGH_LOCALE_EN,bo as SUPER_SUB_LOCALE_EN,em as SYNTAX_HIGHLIGHTER_SERVICE_KEY,gr as SYNTAX_TOKEN_TYPES,ia as SchemaRegistry,ar as ServiceKey,ko as SmartPastePlugin,xo as StrikethroughPlugin,To as SuperSubPlugin,Do as TEXT_COLOR_LOCALE_EN,zo as TEXT_DIRECTION_LOCALE_EN,wr as TEXT_FORMATTING_LOCALE_EN,pr as TOOLBAR_LOCALE_EN,yo as TablePlugin,So as TableSelectionServiceKey,Bo as TextColorPlugin,Uo as TextDirectionAdvancedPlugin,Fo as TextDirectionPlugin,Xr as TextFormattingPlugin,br as ThemePreset,er as ToolbarOverflowBehavior,jr as ToolbarPlugin,cr as ToolbarRegistry,lr as ToolbarServiceKey,fa as TransactionBuilder,Za as VALID_ALIGNMENTS,$a as VALID_DIRECTIONS,Bm as XML_ATTRS,Tm as XML_LANGUAGE,Dm as XML_SUPPORT,vm as XML_TAG_NAME,xm as XmlDetector,ea as adoptContentStyles,Or as appendToRoot,Va as applyAttributedMark,Mm as applyColorMark,Vr as applyRovingTabindex,Es as applyStep,qo as attachGridKeyboard,Go as attachListboxKeyboard,Xo as attachMenuKeyboard,Ls as blockId,c as blockOffsetToTextOffset,ta as canContain,Fa as canCrossBlockBoundary,_r as capitalize,Rs as commandName,ws as createBlockElement,j as createBlockNode,ls as createCollapsedSelection,u as createDocument,pa as createEditor,_o as createFullPreset,ts as createGapCursor,e as createInlineNode,mm as createMinimalPreset,us as createNodeSelection,os as createPosition,ss as createSelection,g as createTextNode,xr as createTheme,Pr as createThemeStyleSheet,Bs as defaultSchema,ks as deleteBackward,Hs as deleteBackwardAtGap,xs as deleteForward,hs as deleteForwardAtGap,_a as deleteNodeSelection,Cs as deleteSelectionCommand,No as detectTextDirection,K as endOfTextblock,Xs as escapeAttr,qs as escapeHTML,G as extendCharacterBackward,P as extendCharacterForward,M as extendLineDown,A as extendLineUp,w as extendToBlockEnd,S as extendToBlockStart,y as extendToDocumentEnd,D as extendToDocumentStart,V as extendToLineEnd,Q as extendToLineStart,va as extendTx,z as extendWordBackward,X as extendWordForward,qr as findNextDropdownItem,ya as findNode,Ca as findNodePath,Sa as findNodeWithPath,Ho as findSiblingDirection,Ga as findWordBoundaryBackward,wa as findWordBoundaryForward,Ma as forEachBlockIdInRange,Ia as forEachBlockInRange,Gs as formatHTML,Mr as formatShortcut,dr as generateThemeCSS,wm as getActiveColor,p as getBlockChildren,Ro as getBlockDir,o as getBlockLength,i as getBlockMarksAtOffset,l as getBlockText,ja as getBlockTypeLabel,Z as getCaretRectFromSelection,Xm as getColorName,n as getContentAtOffset,t as getInlineChildren,qa as getMarkAttrAtSelection,fr as getPaperCSSSize,Tr as getPaperDimensions,Rr as getSelectedBlock,Fr as getSelectedBlockId,r as getTextChildren,Ja as getTextDirection,h as hasMark,oa as injectContentStyles,ir as inlineDecoration,Fs as inlineType,Ss as insertHardBreakCommand,ds as insertTextCommand,Js as invertStep,Os as invertTransaction,Pa as isAllowedInReadonly,Ua as isAttributedMarkActive,f as isBlockNode,ns as isCollapsed,Im as isColorMarkActive,Qa as isFirefox,ps as isForward,as as isGapCursor,m as isInlineNode,Ms as isInlineNodeOfType,Ra as isInsideIsolating,za as isIsolatingBlock,k as isLeafBlock,qm as isLightColor,Wa as isMac,bs as isMarkActive,es as isMarkAllowed,_s as isMarkOfType,Is as isNodeOfType,is as isNodeSelection,Oa as isRtlContext,Ws as isSelectionOnlyTransaction,a as isTextNode,cs as isTextSelection,rm as isValidCSSColor,sm as isValidCSSFontFamily,am as isValidCSSFontSize,$r as isValidHexColor,Ar as isValidPaperSize,Aa as isVoidBlock,Ea as isWebKit,om as loadAlignmentLocale,pm as loadBlockquoteLocale,O as loadCaretNavigationLocale,gm as loadCodeBlockLocale,Kr as loadFontLocale,Nm as loadFontSizeLocale,Fm as loadHeadingLocale,Em as loadHighlightLocale,Wm as loadHorizontalRuleLocale,Km as loadImageLocale,ro as loadInlineCodeLocale,io as loadLinkLocale,uo as loadListLocale,co as loadPrintLocale,jo as loadSmartPasteLocale,Po as loadStrikethroughLocale,Co as loadSuperSubLocale,vo as loadTextColorLocale,Ao as loadTextDirectionLocale,Gr as loadTextFormattingLocale,ur as loadToolbarLocale,s as markSetsEqual,As as markType,gs as mergeBlockBackward,x as moveCharacterBackward,C as moveCharacterForward,J as moveLineDown,F as moveLineUp,$ as moveToBlockEnd,d as moveToBlockStart,T as moveToDocumentEnd,v as moveToDocumentStart,L as moveToLineEnd,E as moveToLineStart,Ba as moveTx,q as moveWordBackward,I as moveWordForward,R as navigateAcrossBlocks,La as navigateArrowIntoVoid,Ha as navigateFromGapCursor,Ur as navigateGrid,Y as navigateVerticalWithGoalColumn,H as nextGraphemeSize,or as nodeDecoration,Da as nodeSelTx,Ns as nodeType,da as normalizeKeyDescriptor,sr as parseHTMLToDocument,zs as pluginId,Er as positionPopup,b as prevGraphemeSize,Qs as registerBuiltinSpecs,Ys as removeAdoptedStyles,Xa as removeAttributedMark,_m as removeColorMark,la as removeContentStyles,Um as renderColorGrid,Gm as renderColorPickerPopup,Zr as resolveColors,ba as resolveNodeByPath,xa as resolveParentByPath,hr as resolveTheme,vs as schemaFromRegistry,Ts as selectAll,rs as selectionRange,ms as selectionsEqual,Ya as serializeDocumentToCSS,Ka as serializeDocumentToHTML,Na as sharesParent,B as skipInlineNode,ys as splitBlockCommand,Ps as toggleBold,fs as toggleItalic,js as toggleMark,Ds as toggleUnderline,Us as validateContent,_ as viewExtend,N as viewMove,Ta as walkNodes,mr as widgetDecoration};
|
|
1
|
+
import{C as s,S as a,_ as r,b as m,d as o,f as i,g as t,h as n,i as u,l as p,m as l,n as c,o as e,r as j,s as g,v as h,x as k,y as f}from"./chunks/Document-_qdGR4vh.mjs";import{i as P,n as d,r as b,t as x}from"./chunks/WordBoundary-BE2u997Q.mjs";import{a as C,c as T,d as y,f as S,i as D,l as v,n as N,o as B,r as A,s as H,t as R,u as z}from"./chunks/Selection-aeiSsvhe.mjs";import{S as F,_ as M,a as _,b as I,c as L,g as w,h as G,i as X,l as q,m as K,n as U,o as E,r as O,s as Q,v as V,w as W,x as J,y as Y}from"./chunks/Commands-BuYF23lf.mjs";import{a as Z,i as $,n as ss,o as as,r as rs,t as ms}from"./chunks/TypeBrands-BZDKMjR-.mjs";import{n as os,r as is,t as ts}from"./chunks/AttrRegistry-nDKtHK87.mjs";import{n as ns}from"./chunks/DomUtils-RKbAVBQz.mjs";import{i as us,n as ps,r as ls}from"./chunks/HTMLUtils-B8xj8Z1x.mjs";import{A as cs,C as es,D as js,E as gs,M as hs,N as ks,O as fs,P as Ps,S as ds,T as bs,_ as xs,a as Cs,b as Ts,c as ys,d as Ss,f as Ds,g as vs,h as Ns,i as Bs,j as As,k as Hs,l as Rs,m as zs,n as Fs,o as Ms,p as _s,r as Is,s as Ls,t as ws,u as Gs,v as Xs,w as qs,x as Ks,y as Us}from"./chunks/src-DPhUQ25M.mjs";import{a as Es,i as Os,n as Qs,o as Vs,r as Ws,t as Js}from"./chunks/NodeResolver-DVPpO5nC.mjs";import{i as Ys,n as Zs,r as $s,t as sa}from"./chunks/GapCursorNavigation-BaXDnjFf.mjs";import{A as aa,B as ra,F as ma,I as oa,L as ia,M as ta,N as na,P as ua,R as pa,S as la,_ as ca,a as ea,b as ja,c as ga,d as ha,f as ka,g as fa,h as Pa,i as da,j as ba,k as xa,l as Ca,m as Ta,n as ya,o as Sa,p as Da,r as va,s as Na,t as Ba,u as Aa,v as Ha,x as Ra,y as za,z as Fa}from"./chunks/CaretNavigationPlugin-C-rCDbu0.mjs";import{a as Ma,i as _a,n as Ia,r as La,t as wa}from"./chunks/NavigationQueries-CgYPG6oY.mjs";import{i as Ga,t as Xa}from"./chunks/NodeSelectionCommands-Ddxu5Qck.mjs";import{n as qa,t as Ka}from"./chunks/RangeIterator-DytL1lUT.mjs";import{i as Ua,n as Ea,r as Oa,t as Qa}from"./chunks/AttributedMarkCommands-35jTbVRg.mjs";import{a as Va,i as Wa,n as Ja,r as Ya,t as Za}from"./chunks/Platform-D9TRT4Mn.mjs";import{a as $a,i as sr,n as ar,r as rr,t as mr}from"./chunks/DocumentParser-Cq_bFYAS.mjs";import{n as or,t as ir}from"./chunks/Plugin-BUNGKupW.mjs";import{a as tr,i as nr,r as ur,t as pr}from"./chunks/Decoration-oeHDjWWq.mjs";import{t as lr}from"./chunks/BlockTypePickerRegistry-C_jLddOz.mjs";import{a as cr,i as er,n as jr,o as gr,r as hr,t as kr}from"./chunks/ToolbarPlugin-2K96zYut.mjs";import{t as fr}from"./chunks/SyntaxTokenTypes-CVUAMov0.mjs";import{_ as Pr,a as dr,c as br,d as xr,f as Cr,g as Tr,h as yr,i as Sr,l as Dr,m as vr,n as Nr,o as Br,p as Ar,r as Hr,s as Rr,t as zr,u as Fr}from"./chunks/PrintTypes-DTV3-mSe.mjs";import{c as Mr,n as _r,o as Ir,r as Lr,s as wr,t as Gr}from"./chunks/PluginHelpers-D1QF-YaF.mjs";import{t as Xr}from"./chunks/GapCursorPlugin-uxw7W7vj.mjs";import{t as qr}from"./chunks/ShortcutFormatting-DE6B8iGs.mjs";import{n as Kr,r as Ur,t as Er}from"./chunks/TextFormattingPlugin-CZ6D-luc.mjs";import{n as Or,r as Qr,t as Vr}from"./chunks/KeyboardNav-CsdlWnNl.mjs";import{r as Wr,t as Jr}from"./chunks/PopupPositioning-DRNwWB0U.mjs";import{n as Yr,t as Zr}from"./chunks/PopupManager-DaTySyZl.mjs";import"./html.mjs";import{n as $r,r as sm,t as am}from"./chunks/FontPlugin-z0QF1M5q.mjs";import{a as rm,i as mm,n as om,r as im,t as tm}from"./chunks/ColorValidation-CiGxVsqd.mjs";import{t as nm}from"./chunks/minimal-J-u7e_pr.mjs";import{i as um,n as pm,r as lm,t as cm}from"./chunks/AlignmentPlugin-D1wmhWE6.mjs";import{n as em,r as jm,t as gm}from"./chunks/BlockquotePlugin-Bwny0CP6.mjs";import{a as hm,i as km,n as fm,o as Pm,r as dm,t as bm}from"./chunks/CodeBlockPlugin-CNC290_q.mjs";import{i as xm,n as Cm,r as Tm,t as ym}from"./chunks/XmlDetector-DlRdJOIX.mjs";import{a as Sm,i as Dm,n as vm,o as Nm,r as Bm,t as Am}from"./chunks/XmlSupport-DG8PEZhO.mjs";import{n as Hm,t as Rm}from"./chunks/XmlPatterns-Dwmn4nrg.mjs";import{n as zm,r as Fm,t as Mm}from"./chunks/PopupKeyboardPatterns-DhcUe29m.mjs";import{n as _m,r as Im,t as Lm}from"./chunks/FontSizePlugin-DYKvhu9w.mjs";import{t as wm}from"./chunks/HardBreakPlugin-BpXipf8h.mjs";import{n as Gm,r as Xm,t as qm}from"./chunks/HeadingPlugin-CUN746aD.mjs";import{a as Km,i as Um,n as Em,r as Om,t as Qm}from"./chunks/ColorPickerPopup-CvE90IAu.mjs";import{n as Vm,r as Wm,t as Jm}from"./chunks/ColorGrid-BUSIBKZH.mjs";import{n as Ym,r as Zm,t as $m}from"./chunks/HighlightPlugin-bbAi6W6k.mjs";import{n as so,r as ao,t as ro}from"./chunks/HorizontalRulePlugin-D8w6paMa.mjs";import{a as mo,i as oo,n as io,r as to,t as no}from"./chunks/ImagePlugin-De7lWcZ7.mjs";import{n as uo,r as po,t as lo}from"./chunks/InlineCodePlugin-DKQIYhTb.mjs";import{n as co,r as eo,t as jo}from"./chunks/LinkPlugin-BD7mcRHS.mjs";import{n as go,r as ho,t as ko}from"./chunks/ListPlugin-DbixSqMH.mjs";import{n as fo,r as Po,t as bo}from"./chunks/PrintPlugin-DVRybXSN.mjs";import{i as xo,n as Co,r as To,t as yo}from"./chunks/SmartPastePlugin-i96yAnXZ.mjs";import{n as So,r as Do,t as vo}from"./chunks/StrikethroughPlugin-RGZATXUZ.mjs";import{n as No,r as Bo,t as Ao}from"./chunks/SuperSubPlugin-BOWFP1Kr.mjs";import{n as Ho,t as Ro}from"./chunks/TablePlugin-DZTMBkyu.mjs";import{n as zo,r as Fo,t as Mo}from"./chunks/TextColorPlugin-CB3RpTSQ.mjs";import{a as _o,i as Io,n as Lo,o as wo,t as Go}from"./chunks/TextDirectionLocale-_AUfZu9j.mjs";import{n as Xo,t as qo}from"./chunks/TextDirectionCorePlugin-tNecTcrX.mjs";import{t as Ko}from"./chunks/full-B9IqlP6u.mjs";import"./presets.mjs";import{n as Uo,r as Eo,t as Oo}from"./chunks/fonts-CG_dDwvT.mjs";import"./plugins/text-formatting.mjs";import"./plugins/heading.mjs";import"./plugins/toolbar.mjs";import"./plugins/shared.mjs";import"./plugins/table.mjs";import"./plugins/image.mjs";import"./plugins/code-block.mjs";import"./plugins/link.mjs";import"./plugins/list.mjs";import"./plugins/blockquote.mjs";import"./plugins/strikethrough.mjs";import"./plugins/inline-code.mjs";import"./plugins/text-color.mjs";import"./plugins/horizontal-rule.mjs";import"./plugins/alignment.mjs";import"./plugins/font.mjs";import"./plugins/font-size.mjs";import"./plugins/highlight.mjs";import"./plugins/super-sub.mjs";import"./plugins/hard-break.mjs";import"./plugins/gap-cursor.mjs";import"./plugins/caret-navigation.mjs";import"./plugins/print.mjs";import"./plugins/smart-paste.mjs";import"./plugins/language.mjs";import"./plugins/text-direction.mjs";import{n as Qo}from"./chunks/text-direction-advanced-S4MgVMLX.mjs";export{zr as AFTER_PRINT,cm as ALIGNMENT_ICONS,lm as ALIGNMENT_LOCALE_EN,pm as AlignmentPlugin,Nr as BEFORE_PRINT,em as BLOCKQUOTE_LOCALE_EN,lr as BlockTypePickerRegistry,gm as BlockquotePlugin,ya as CARET_NAVIGATION_LOCALE_EN,hm as CODE_BLOCK_LOCALE_EN,dm as CODE_BLOCK_SERVICE_KEY,Ba as CaretNavigationPlugin,Ks as ClipboardHandler,bm as CodeBlockPlugin,Ts as CompositionTracker,zs as CursorWrapper,Ar as DARK_THEME,io as DEFAULT_IMAGE_KEYMAP,qo as DIRECTION_ICONS,pr as DecorationSet,gs as EditorState,Gs as EventBus,ir as EventKey,Oo as FIRA_CODE,Uo as FIRA_SANS,$r as FONT_LOCALE_EN,_m as FONT_SIZE_LOCALE_EN,vs as FileHandlerRegistry,am as FontPlugin,Lm as FontSizePlugin,Xr as GapCursorPlugin,Gm as HEADING_LOCALE_EN,Ym as HIGHLIGHT_LOCALE_EN,so as HORIZONTAL_RULE_LOCALE_EN,wm as HardBreakPlugin,qm as HeadingPlugin,$m as HighlightPlugin,es as HistoryManager,ro as HorizontalRulePlugin,oo as IMAGE_LOCALE_EN,to as IMAGE_UPLOAD_SERVICE,uo as INLINE_CODE_LOCALE_EN,no as ImagePlugin,lo as InlineCodePlugin,Us as InputManager,xs as InputRuleRegistry,Nm as JAVA_LANGUAGE,Sm as JAVA_SUPPORT,Dm as JSON_LANGUAGE,Bm as JSON_SUPPORT,Tm as JavaDetector,Cm as JsonDetector,Xs as KeymapRegistry,xm as LANGUAGE_REGISTRY_SERVICE_KEY,vr as LIGHT_THEME,co as LINK_LOCALE_EN,go as LIST_LOCALE_EN,jo as LinkPlugin,ko as ListPlugin,ys as Locale,wr as LocaleService,Mr as LocaleServiceKey,Ns as NodeViewRegistry,ws as NotectlEditor,Sr as PAPER_MARGIN_HORIZONTAL_PX,dr as PAPER_MARGIN_TOP_PX,Br as PAPER_VIEWPORT_PADDING_PX,fo as PRINT_LOCALE_EN,Hr as PRINT_SERVICE_KEY,Rr as PaperSize,Rs as PluginManager,Zr as PopupManager,Yr as PopupServiceKey,bo as PrintPlugin,fm as RegexTokenizer,To as SMART_PASTE_LOCALE_EN,Co as SMART_PASTE_SERVICE_KEY,Eo as STARTER_FONTS,So as STRIKETHROUGH_LOCALE_EN,No as SUPER_SUB_LOCALE_EN,km as SYNTAX_HIGHLIGHTER_SERVICE_KEY,fr as SYNTAX_TOKEN_TYPES,Ps as SchemaRegistry,or as ServiceKey,yo as SmartPastePlugin,vo as StrikethroughPlugin,Ao as SuperSubPlugin,zo as TEXT_COLOR_LOCALE_EN,Go as TEXT_DIRECTION_LOCALE_EN,Kr as TEXT_FORMATTING_LOCALE_EN,er as TOOLBAR_LOCALE_EN,Ro as TablePlugin,Ho as TableSelectionServiceKey,Mo as TextColorPlugin,Qo as TextDirectionAdvancedPlugin,Xo as TextDirectionPlugin,Er as TextFormattingPlugin,yr as ThemePreset,hr as ToolbarOverflowBehavior,kr as ToolbarPlugin,gr as ToolbarRegistry,jr as ToolbarServiceKey,js as TransactionBuilder,ar as VALID_ALIGNMENTS,rr as VALID_DIRECTIONS,Rm as XML_ATTRS,vm as XML_LANGUAGE,Am as XML_SUPPORT,Hm as XML_TAG_NAME,ym as XmlDetector,Is as adoptContentStyles,Jr as appendToRoot,Qa as applyAttributedMark,Em as applyColorMark,Vr as applyRovingTabindex,cs as applyStep,Mm as attachGridKeyboard,zm as attachListboxKeyboard,Fm as attachMenuKeyboard,ms as blockId,c as blockOffsetToTextOffset,hs as canContain,wa as canCrossBlockBoundary,Gr as capitalize,ss as commandName,Ss as consoleLogger,ns as createBlockElement,j as createBlockNode,R as createCollapsedSelection,u as createDocument,Fs as createEditor,Ko as createFullPreset,N as createGapCursor,e as createInlineNode,nm as createMinimalPreset,A as createNodeSelection,D as createPosition,C as createSelection,g as createTextNode,Tr as createTheme,xr as createThemeStyleSheet,J as defaultSchema,L as deleteBackward,Y as deleteBackwardAtGap,q as deleteForward,I as deleteForwardAtGap,Xa as deleteNodeSelection,U as deleteSelectionCommand,Io as detectTextDirection,Ha as endOfTextblock,ps as escapeAttr,ls as escapeHTML,xa as extendCharacterBackward,aa as extendCharacterForward,da as extendLineDown,ea as extendLineUp,ba as extendToBlockEnd,ta as extendToBlockStart,na as extendToDocumentEnd,ua as extendToDocumentStart,Sa as extendToLineEnd,Na as extendToLineStart,Zs as extendTx,ga as extendWordBackward,Ca as extendWordForward,Or as findNextDropdownItem,Js as findNode,Qs as findNodePath,Ws as findNodeWithPath,_o as findSiblingDirection,x as findWordBoundaryBackward,d as findWordBoundaryForward,Ka as forEachBlockIdInRange,qa as forEachBlockInRange,us as formatHTML,qr as formatShortcut,Cr as generateThemeCSS,Om as getActiveColor,p as getBlockChildren,wo as getBlockDir,o as getBlockLength,i as getBlockMarksAtOffset,l as getBlockText,Ls as getBlockTypeLabel,za as getCaretRectFromSelection,Vm as getColorName,n as getContentAtOffset,t as getInlineChildren,Ea as getMarkAttrAtSelection,br as getPaperCSSSize,Dr as getPaperDimensions,_r as getSelectedBlock,Lr as getSelectedBlockId,r as getTextChildren,Za as getTextDirection,h as hasMark,Bs as injectContentStyles,ur as inlineDecoration,rs as inlineType,O as insertHardBreakCommand,X as insertTextCommand,fs as invertStep,Hs as invertTransaction,qs as isAllowedInReadonly,Oa as isAttributedMarkActive,f as isBlockNode,B as isCollapsed,Um as isColorMarkActive,Ja as isFirefox,H as isForward,T as isGapCursor,m as isInlineNode,ts as isInlineNodeOfType,Ia as isInsideIsolating,La as isIsolatingBlock,k as isLeafBlock,Wm as isLightColor,Ya as isMac,K as isMarkActive,F as isMarkAllowed,os as isMarkOfType,is as isNodeOfType,v as isNodeSelection,Wa as isRtlContext,bs as isSelectionOnlyTransaction,a as isTextNode,z as isTextSelection,tm as isValidCSSColor,om as isValidCSSFontFamily,im as isValidCSSFontSize,mm as isValidHexColor,Fr as isValidPaperSize,_a as isVoidBlock,Va as isWebKit,um as loadAlignmentLocale,jm as loadBlockquoteLocale,va as loadCaretNavigationLocale,Pm as loadCodeBlockLocale,sm as loadFontLocale,Im as loadFontSizeLocale,Xm as loadHeadingLocale,Zm as loadHighlightLocale,ao as loadHorizontalRuleLocale,mo as loadImageLocale,po as loadInlineCodeLocale,eo as loadLinkLocale,ho as loadListLocale,Ir as loadLocaleModule,Po as loadPrintLocale,xo as loadSmartPasteLocale,Do as loadStrikethroughLocale,Bo as loadSuperSubLocale,Fo as loadTextColorLocale,Lo as loadTextDirectionLocale,Ur as loadTextFormattingLocale,cr as loadToolbarLocale,s as markSetsEqual,$ as markType,_ as mergeBlockBackward,ma as moveCharacterBackward,oa as moveCharacterForward,Aa as moveLineDown,ha as moveLineUp,Fa as moveToBlockEnd,ra as moveToBlockStart,ia as moveToDocumentEnd,pa as moveToDocumentStart,ka as moveToLineEnd,Da as moveToLineStart,$s as moveTx,Ta as moveWordBackward,Pa as moveWordForward,ja as navigateAcrossBlocks,Ga as navigateArrowIntoVoid,sa as navigateFromGapCursor,Qr as navigateGrid,Ra as navigateVerticalWithGoalColumn,b as nextGraphemeSize,nr as nodeDecoration,Ys as nodeSelTx,Z as nodeType,ds as normalizeKeyDescriptor,mr as parseHTMLToDocument,as as pluginId,Wr as positionPopup,P as prevGraphemeSize,As as registerBuiltinSpecs,Cs as removeAdoptedStyles,Ua as removeAttributedMark,Km as removeColorMark,Ms as removeContentStyles,Jm as renderColorGrid,Qm as renderColorPickerPopup,rm as resolveColors,Os as resolveNodeByPath,Es as resolveParentByPath,Pr as resolveTheme,W as schemaFromRegistry,Ds as scopedLogger,E as selectAll,y as selectionRange,S as selectionsEqual,sr as serializeDocumentToCSS,$a as serializeDocumentToHTML,Ma as sharesParent,_s as silentLogger,la as skipInlineNode,Q as splitBlockCommand,G as toggleBold,w as toggleItalic,M as toggleMark,V as toggleUnderline,ks as validateContent,fa as viewExtend,ca as viewMove,Vs as walkNodes,tr as widgetDecoration};
|
package/dist/index.d.ts
CHANGED
|
@@ -70,7 +70,8 @@ export type { CaretDirection } from './view/CaretNavigation.js';
|
|
|
70
70
|
export type { Plugin, PluginContext, CommandHandler, CommandEntry, CommandOptions, PluginEventCallback, PluginEventBus, PluginConfig, TransactionMiddleware, MiddlewareNext, MiddlewareOptions, } from './plugins/Plugin.js';
|
|
71
71
|
export { EventKey, ServiceKey } from './plugins/Plugin.js';
|
|
72
72
|
export { EventBus } from './plugins/EventBus.js';
|
|
73
|
-
export { PluginManager, type PluginManagerInitOptions, type MiddlewareInfo, } from './plugins/PluginManager.js';
|
|
73
|
+
export { PluginManager, type PluginManagerInitOptions, type PluginManagerOptions, type MiddlewareInfo, } from './plugins/PluginManager.js';
|
|
74
|
+
export { type Logger, consoleLogger, silentLogger, scopedLogger } from './plugins/Logger.js';
|
|
74
75
|
export type { Decoration, InlineDecoration, NodeDecoration, WidgetDecoration, DecorationAttrs, } from './decorations/Decoration.js';
|
|
75
76
|
export { DecorationSet, inline as inlineDecoration, node as nodeDecoration, widget as widgetDecoration, } from './decorations/Decoration.js';
|
|
76
77
|
export { ThemePreset, LIGHT_THEME, DARK_THEME, createTheme, resolveTheme, } from './editor/theme/ThemeTokens.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,YAAY,EACX,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,UAAU,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,aAAa,EACb,UAAU,GACV,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,OAAO,EACP,aAAa,GACb,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG9E,YAAY,EACX,QAAQ,EACR,SAAS,EACT,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,eAAe,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,EACd,eAAe,EACf,WAAW,EACX,eAAe,EACf,eAAe,GACf,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGrF,YAAY,EACX,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,WAAW,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,WAAW,GACX,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACX,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,kBAAkB,GAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACzF,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,YAAY,EACX,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,WAAW,EACX,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG1E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EACN,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,SAAS,GACT,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAGtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,YAAY,EACX,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,IAAI,EACJ,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3F,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAE3F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpF,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACN,qBAAqB,EACrB,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACN,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,GACnB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACN,QAAQ,EACR,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,cAAc,GACd,MAAM,gCAAgC,CAAC;AAGxC,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGpE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGpG,OAAO,EACN,cAAc,EACd,oBAAoB,EACpB,8BAA8B,EAC9B,qBAAqB,EACrB,cAAc,EACd,yBAAyB,GACzB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,YAAY,EACX,MAAM,EACN,aAAa,EACb,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EACN,aAAa,EACb,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,cAAc,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAG7F,YAAY,EACX,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,GACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACN,aAAa,EACb,MAAM,IAAI,gBAAgB,EAC1B,IAAI,IAAI,cAAc,EACtB,MAAM,IAAI,gBAAgB,GAC1B,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EACN,WAAW,EACX,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,GACZ,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACX,KAAK,EACL,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,WAAW,GACX,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACxF,YAAY,EACX,eAAe,EACf,UAAU,EACV,eAAe,GACf,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAGxE,OAAO,EACN,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,0BAA0B,EAC1B,yBAAyB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,YAAY,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,OAAO,EACN,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACnB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGhG,YAAY,EACX,mBAAmB,EACnB,aAAa,EACb,gBAAgB,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/notectl-core.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as s,S as a,_ as
|
|
1
|
+
import{C as s,S as a,_ as r,b as m,d as o,f as n,g as t,h as i,i as c,l as u,m as p,n as e,o as f,r as h,s as k,v as j,x as l,y as d}from"./chunks/Document-_qdGR4vh.mjs";import{i as g,n as y,r as v,t as C}from"./chunks/WordBoundary-BE2u997Q.mjs";import{a as D,c as N,d as P,f as S,i as b,l as x,n as T,o as _,r as A,s as M,t as R,u as w}from"./chunks/Selection-aeiSsvhe.mjs";import{S as B,_ as H,a as I,b as L,c as U,g as q,h as z,i as E,l as F,m as G,n as O,o as Q,r as W,s as J,v as K,w as V,x as X,y as Y}from"./chunks/Commands-BuYF23lf.mjs";import{a as Z,i as $,n as ss,o as as,r as rs,t as ms}from"./chunks/TypeBrands-BZDKMjR-.mjs";import{n as os,r as ns,t as ts}from"./chunks/AttrRegistry-nDKtHK87.mjs";import{n as is}from"./chunks/DomUtils-RKbAVBQz.mjs";import{i as cs,n as us,r as ps}from"./chunks/HTMLUtils-B8xj8Z1x.mjs";import{A as es,C as fs,D as hs,E as ks,M as js,N as ls,O as ds,P as gs,S as ys,T as vs,_ as Cs,a as Ds,b as Ns,c as Ps,d as Ss,f as bs,g as xs,h as Ts,i as _s,j as As,k as Ms,l as Rs,m as ws,n as Bs,o as Hs,p as Is,r as Ls,s as Us,t as qs,u as zs,v as Es,w as Fs,x as Gs,y as Os}from"./chunks/src-DPhUQ25M.mjs";import{a as Qs,i as Ws,n as Js,o as Ks,r as Vs,t as Xs}from"./chunks/NodeResolver-DVPpO5nC.mjs";import{i as Ys,n as Zs,r as $s,t as sa}from"./chunks/GapCursorNavigation-BaXDnjFf.mjs";import{A as aa,B as ra,F as ma,I as oa,L as na,M as ta,N as ia,P as ca,R as ua,S as pa,_ as ea,a as fa,b as ha,c as ka,d as ja,f as la,g as da,h as ga,i as ya,j as va,k as Ca,l as Da,m as Na,o as Pa,p as Sa,s as ba,u as xa,v as Ta,x as _a,y as Aa,z as Ma}from"./chunks/CaretNavigationPlugin-C-rCDbu0.mjs";import{a as Ra,i as wa,n as Ba,r as Ha,t as Ia}from"./chunks/NavigationQueries-CgYPG6oY.mjs";import{i as La,t as Ua}from"./chunks/NodeSelectionCommands-Ddxu5Qck.mjs";import{n as qa,t as za}from"./chunks/RangeIterator-DytL1lUT.mjs";import{i as Ea,n as Fa,r as Ga,t as Oa}from"./chunks/AttributedMarkCommands-35jTbVRg.mjs";import{a as Qa,i as Wa,n as Ja,r as Ka,t as Va}from"./chunks/Platform-D9TRT4Mn.mjs";import{n as Xa,t as Ya}from"./chunks/Plugin-BUNGKupW.mjs";import{a as Za,i as $a,r as sr,t as ar}from"./chunks/Decoration-oeHDjWWq.mjs";import{t as rr}from"./chunks/SyntaxTokenTypes-CVUAMov0.mjs";import{_ as mr,a as or,c as nr,d as tr,f as ir,g as cr,h as ur,i as pr,l as er,m as fr,o as hr,p as kr,s as jr,u as lr}from"./chunks/PrintTypes-DTV3-mSe.mjs";import{c as dr,s as gr}from"./chunks/PluginHelpers-D1QF-YaF.mjs";export{Gs as ClipboardHandler,Ns as CompositionTracker,ws as CursorWrapper,kr as DARK_THEME,ar as DecorationSet,ks as EditorState,zs as EventBus,Ya as EventKey,xs as FileHandlerRegistry,fs as HistoryManager,Os as InputManager,Cs as InputRuleRegistry,Es as KeymapRegistry,fr as LIGHT_THEME,Ps as Locale,gr as LocaleService,dr as LocaleServiceKey,Ts as NodeViewRegistry,qs as NotectlEditor,pr as PAPER_MARGIN_HORIZONTAL_PX,or as PAPER_MARGIN_TOP_PX,hr as PAPER_VIEWPORT_PADDING_PX,jr as PaperSize,Rs as PluginManager,rr as SYNTAX_TOKEN_TYPES,gs as SchemaRegistry,Xa as ServiceKey,ur as ThemePreset,hs as TransactionBuilder,Ls as adoptContentStyles,Oa as applyAttributedMark,es as applyStep,ms as blockId,e as blockOffsetToTextOffset,js as canContain,Ia as canCrossBlockBoundary,ss as commandName,Ss as consoleLogger,is as createBlockElement,h as createBlockNode,R as createCollapsedSelection,c as createDocument,Bs as createEditor,T as createGapCursor,f as createInlineNode,A as createNodeSelection,b as createPosition,D as createSelection,k as createTextNode,cr as createTheme,tr as createThemeStyleSheet,X as defaultSchema,U as deleteBackward,Y as deleteBackwardAtGap,F as deleteForward,L as deleteForwardAtGap,Ua as deleteNodeSelection,O as deleteSelectionCommand,Ta as endOfTextblock,us as escapeAttr,ps as escapeHTML,Ca as extendCharacterBackward,aa as extendCharacterForward,ya as extendLineDown,fa as extendLineUp,va as extendToBlockEnd,ta as extendToBlockStart,ia as extendToDocumentEnd,ca as extendToDocumentStart,Pa as extendToLineEnd,ba as extendToLineStart,Zs as extendTx,ka as extendWordBackward,Da as extendWordForward,Xs as findNode,Js as findNodePath,Vs as findNodeWithPath,C as findWordBoundaryBackward,y as findWordBoundaryForward,za as forEachBlockIdInRange,qa as forEachBlockInRange,cs as formatHTML,ir as generateThemeCSS,u as getBlockChildren,o as getBlockLength,n as getBlockMarksAtOffset,p as getBlockText,Us as getBlockTypeLabel,Aa as getCaretRectFromSelection,i as getContentAtOffset,t as getInlineChildren,Fa as getMarkAttrAtSelection,nr as getPaperCSSSize,er as getPaperDimensions,r as getTextChildren,Va as getTextDirection,j as hasMark,_s as injectContentStyles,sr as inlineDecoration,rs as inlineType,W as insertHardBreakCommand,E as insertTextCommand,ds as invertStep,Ms as invertTransaction,Fs as isAllowedInReadonly,Ga as isAttributedMarkActive,d as isBlockNode,_ as isCollapsed,Ja as isFirefox,M as isForward,N as isGapCursor,m as isInlineNode,ts as isInlineNodeOfType,Ba as isInsideIsolating,Ha as isIsolatingBlock,l as isLeafBlock,Ka as isMac,G as isMarkActive,B as isMarkAllowed,os as isMarkOfType,ns as isNodeOfType,x as isNodeSelection,Wa as isRtlContext,vs as isSelectionOnlyTransaction,a as isTextNode,w as isTextSelection,lr as isValidPaperSize,wa as isVoidBlock,Qa as isWebKit,s as markSetsEqual,$ as markType,I as mergeBlockBackward,ma as moveCharacterBackward,oa as moveCharacterForward,xa as moveLineDown,ja as moveLineUp,Ma as moveToBlockEnd,ra as moveToBlockStart,na as moveToDocumentEnd,ua as moveToDocumentStart,la as moveToLineEnd,Sa as moveToLineStart,$s as moveTx,Na as moveWordBackward,ga as moveWordForward,ha as navigateAcrossBlocks,La as navigateArrowIntoVoid,sa as navigateFromGapCursor,_a as navigateVerticalWithGoalColumn,v as nextGraphemeSize,$a as nodeDecoration,Ys as nodeSelTx,Z as nodeType,ys as normalizeKeyDescriptor,as as pluginId,g as prevGraphemeSize,As as registerBuiltinSpecs,Ds as removeAdoptedStyles,Ea as removeAttributedMark,Hs as removeContentStyles,Ws as resolveNodeByPath,Qs as resolveParentByPath,mr as resolveTheme,V as schemaFromRegistry,bs as scopedLogger,Q as selectAll,P as selectionRange,S as selectionsEqual,Ra as sharesParent,Is as silentLogger,pa as skipInlineNode,J as splitBlockCommand,z as toggleBold,q as toggleItalic,H as toggleMark,K as toggleUnderline,ls as validateContent,da as viewExtend,ea as viewMove,Ks as walkNodes,Za as widgetDecoration};
|