@gravity-ui/markdown-editor 14.9.0 → 14.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/build/cjs/bundle/Editor.d.ts +2 -0
  2. package/build/cjs/bundle/Editor.js +15 -4
  3. package/build/cjs/bundle/MarkdownEditorView.js +2 -2
  4. package/build/cjs/bundle/config/action-names.d.ts +1 -1
  5. package/build/cjs/bundle/config/action-names.js +1 -0
  6. package/build/cjs/bundle/toolbar/utils/flattenPreset.d.ts +2 -0
  7. package/build/cjs/bundle/toolbar/utils/flattenPreset.js +14 -0
  8. package/build/cjs/bundle/toolbar/utils/toolbarsConfigs.d.ts +17 -0
  9. package/build/cjs/bundle/toolbar/{utils.js → utils/toolbarsConfigs.js} +15 -19
  10. package/build/cjs/bundle/types.d.ts +6 -0
  11. package/build/cjs/bundle/useMarkdownEditor.js +8 -2
  12. package/build/cjs/bundle/wysiwyg-preset.d.ts +1 -0
  13. package/build/cjs/bundle/wysiwyg-preset.js +1 -1
  14. package/build/cjs/core/Editor.d.ts +3 -1
  15. package/build/cjs/core/Editor.js +2 -1
  16. package/build/cjs/core/ExtensionsManager.d.ts +2 -0
  17. package/build/cjs/core/ExtensionsManager.js +8 -4
  18. package/build/cjs/core/ParserTokensRegistry.d.ts +2 -1
  19. package/build/cjs/core/ParserTokensRegistry.js +2 -2
  20. package/build/cjs/core/markdown/MarkdownParser.d.ts +3 -1
  21. package/build/cjs/core/markdown/MarkdownParser.js +5 -2
  22. package/build/cjs/core/markdown/MarkdownSerializer.js +1 -1
  23. package/build/cjs/core/markdown/ProseMirrorTransformer/emptyRowTransformer.d.ts +2 -0
  24. package/build/cjs/core/markdown/ProseMirrorTransformer/emptyRowTransformer.js +15 -0
  25. package/build/cjs/core/markdown/ProseMirrorTransformer/getTransformers.d.ts +7 -0
  26. package/build/cjs/core/markdown/ProseMirrorTransformer/getTransformers.js +13 -0
  27. package/build/cjs/core/markdown/ProseMirrorTransformer/index.d.ts +15 -0
  28. package/build/cjs/core/markdown/ProseMirrorTransformer/index.js +25 -0
  29. package/build/cjs/extensions/additional/Math/MathSpecs/index.js +1 -0
  30. package/build/cjs/extensions/base/BaseSchema/BaseSchemaSpecs/index.d.ts +1 -0
  31. package/build/cjs/extensions/base/BaseSchema/BaseSchemaSpecs/index.js +23 -3
  32. package/build/cjs/extensions/behavior/Selection/selection.js +1 -5
  33. package/build/cjs/extensions/markdown/Blockquote/BlockquoteSpecs/index.js +1 -0
  34. package/build/cjs/extensions/markdown/CodeBlock/commands.js +1 -1
  35. package/build/cjs/extensions/markdown/HorizontalRule/HorizontalRuleSpecs/index.js +1 -0
  36. package/build/cjs/extensions/yfm/YfmTabs/YfmTabsSpecs/schema.js +1 -0
  37. package/build/cjs/i18n/empty-row/en.json +3 -0
  38. package/build/cjs/i18n/empty-row/index.d.ts +5 -0
  39. package/build/cjs/i18n/empty-row/index.js +9 -0
  40. package/build/cjs/i18n/empty-row/ru.json +3 -0
  41. package/build/cjs/i18n/yfm-note/index.d.ts +1 -1
  42. package/build/cjs/index.d.ts +1 -0
  43. package/build/cjs/index.js +1 -0
  44. package/build/cjs/markup/codemirror/autocomplete/emptyRow.d.ts +9 -0
  45. package/build/cjs/markup/codemirror/autocomplete/emptyRow.js +26 -0
  46. package/build/cjs/markup/codemirror/autocomplete/index.d.ts +5 -0
  47. package/build/cjs/markup/codemirror/autocomplete/index.js +14 -0
  48. package/build/cjs/markup/codemirror/create.d.ts +1 -0
  49. package/build/cjs/markup/codemirror/create.js +6 -1
  50. package/build/cjs/markup/codemirror/yfm.d.ts +2 -1
  51. package/build/cjs/markup/codemirror/yfm.js +3 -3
  52. package/build/cjs/markup/commands/emptyRow.d.ts +2 -0
  53. package/build/cjs/markup/commands/emptyRow.js +43 -0
  54. package/build/cjs/markup/commands/index.d.ts +1 -0
  55. package/build/cjs/markup/commands/index.js +1 -0
  56. package/build/cjs/shortcuts/const.d.ts +1 -0
  57. package/build/cjs/shortcuts/const.js +1 -0
  58. package/build/cjs/shortcuts/default.js +1 -0
  59. package/build/cjs/version.js +1 -1
  60. package/build/esm/bundle/Editor.d.ts +2 -0
  61. package/build/esm/bundle/Editor.js +15 -4
  62. package/build/esm/bundle/MarkdownEditorView.js +1 -1
  63. package/build/esm/bundle/config/action-names.d.ts +1 -1
  64. package/build/esm/bundle/config/action-names.js +1 -0
  65. package/build/esm/bundle/toolbar/utils/flattenPreset.d.ts +2 -0
  66. package/build/esm/bundle/toolbar/utils/flattenPreset.js +10 -0
  67. package/build/esm/bundle/toolbar/utils/toolbarsConfigs.d.ts +17 -0
  68. package/build/esm/bundle/toolbar/{utils.js → utils/toolbarsConfigs.js} +13 -17
  69. package/build/esm/bundle/types.d.ts +6 -0
  70. package/build/esm/bundle/useMarkdownEditor.js +8 -2
  71. package/build/esm/bundle/wysiwyg-preset.d.ts +1 -0
  72. package/build/esm/bundle/wysiwyg-preset.js +1 -1
  73. package/build/esm/core/Editor.d.ts +3 -1
  74. package/build/esm/core/Editor.js +2 -1
  75. package/build/esm/core/ExtensionsManager.d.ts +2 -0
  76. package/build/esm/core/ExtensionsManager.js +8 -4
  77. package/build/esm/core/ParserTokensRegistry.d.ts +2 -1
  78. package/build/esm/core/ParserTokensRegistry.js +2 -2
  79. package/build/esm/core/markdown/MarkdownParser.d.ts +3 -1
  80. package/build/esm/core/markdown/MarkdownParser.js +5 -2
  81. package/build/esm/core/markdown/MarkdownSerializer.js +1 -1
  82. package/build/esm/core/markdown/ProseMirrorTransformer/emptyRowTransformer.d.ts +2 -0
  83. package/build/esm/core/markdown/ProseMirrorTransformer/emptyRowTransformer.js +11 -0
  84. package/build/esm/core/markdown/ProseMirrorTransformer/getTransformers.d.ts +7 -0
  85. package/build/esm/core/markdown/ProseMirrorTransformer/getTransformers.js +9 -0
  86. package/build/esm/core/markdown/ProseMirrorTransformer/index.d.ts +15 -0
  87. package/build/esm/core/markdown/ProseMirrorTransformer/index.js +21 -0
  88. package/build/esm/extensions/additional/Math/MathSpecs/index.js +1 -0
  89. package/build/esm/extensions/base/BaseSchema/BaseSchemaSpecs/index.d.ts +1 -0
  90. package/build/esm/extensions/base/BaseSchema/BaseSchemaSpecs/index.js +23 -3
  91. package/build/esm/extensions/behavior/Selection/selection.js +1 -5
  92. package/build/esm/extensions/markdown/Blockquote/BlockquoteSpecs/index.js +1 -0
  93. package/build/esm/extensions/markdown/CodeBlock/commands.js +1 -1
  94. package/build/esm/extensions/markdown/HorizontalRule/HorizontalRuleSpecs/index.js +1 -0
  95. package/build/esm/extensions/yfm/YfmTabs/YfmTabsSpecs/schema.js +1 -0
  96. package/build/esm/i18n/empty-row/en.json +3 -0
  97. package/build/esm/i18n/empty-row/index.d.ts +5 -0
  98. package/build/esm/i18n/empty-row/index.js +5 -0
  99. package/build/esm/i18n/empty-row/ru.json +3 -0
  100. package/build/esm/i18n/yfm-note/index.d.ts +1 -1
  101. package/build/esm/index.d.ts +1 -0
  102. package/build/esm/index.js +1 -0
  103. package/build/esm/markup/codemirror/autocomplete/emptyRow.d.ts +9 -0
  104. package/build/esm/markup/codemirror/autocomplete/emptyRow.js +23 -0
  105. package/build/esm/markup/codemirror/autocomplete/index.d.ts +5 -0
  106. package/build/esm/markup/codemirror/autocomplete/index.js +10 -0
  107. package/build/esm/markup/codemirror/create.d.ts +1 -0
  108. package/build/esm/markup/codemirror/create.js +7 -2
  109. package/build/esm/markup/codemirror/yfm.d.ts +2 -1
  110. package/build/esm/markup/codemirror/yfm.js +1 -1
  111. package/build/esm/markup/commands/emptyRow.d.ts +2 -0
  112. package/build/esm/markup/commands/emptyRow.js +39 -0
  113. package/build/esm/markup/commands/index.d.ts +1 -0
  114. package/build/esm/markup/commands/index.js +1 -0
  115. package/build/esm/shortcuts/const.d.ts +1 -0
  116. package/build/esm/shortcuts/const.js +1 -0
  117. package/build/esm/shortcuts/default.js +1 -0
  118. package/build/esm/version.js +1 -1
  119. package/package.json +1 -1
  120. package/build/cjs/bundle/toolbar/utils.d.ts +0 -17
  121. package/build/esm/bundle/toolbar/utils.d.ts +0 -17
@@ -0,0 +1,39 @@
1
+ export const insertEmptyRow = ({ state, dispatch }) => {
2
+ const emptyRowMarkup = ' ';
3
+ const tr = () => {
4
+ const selrange = state.selection.main;
5
+ const { before, after, selection } = getBlockExtraLineBreaks(state, state.doc.lineAt(selrange.from));
6
+ const insert = state.lineBreak.repeat(before) + emptyRowMarkup + state.lineBreak.repeat(after);
7
+ const from = state.doc.lineAt(selrange.to).to;
8
+ const selAnchor = from + insert.length + selection;
9
+ return { changes: { from, insert }, selection: { anchor: selAnchor } };
10
+ };
11
+ dispatch(state.update(tr()));
12
+ return true;
13
+ };
14
+ function getBlockExtraLineBreaks(state, line) {
15
+ let before = 0;
16
+ let after = 0;
17
+ let selection = 2;
18
+ if (line.text) {
19
+ before = 2;
20
+ }
21
+ else if (line.number > 1 && state.doc.line(line.number - 1).text) {
22
+ before = 1;
23
+ }
24
+ if (line.number + 1 <= state.doc.lines && state.doc.line(line.number + 1).text) {
25
+ after = 1;
26
+ selection = 1;
27
+ }
28
+ else if (line.number + 1 <= state.doc.lines &&
29
+ !state.doc.line(line.number + 1).text &&
30
+ line.number + 2 > state.doc.lines) {
31
+ after = 1;
32
+ selection = 1;
33
+ }
34
+ else if (line.number === state.doc.lines) {
35
+ after = 2;
36
+ selection = 0;
37
+ }
38
+ return { before, after, selection };
39
+ }
@@ -7,3 +7,4 @@ export * from './lists';
7
7
  export * from './marks';
8
8
  export * from './math';
9
9
  export * from './yfm';
10
+ export * from './emptyRow';
@@ -7,3 +7,4 @@ export * from './lists';
7
7
  export * from './marks';
8
8
  export * from './math';
9
9
  export * from './yfm';
10
+ export * from './emptyRow';
@@ -31,6 +31,7 @@ export declare enum Action {
31
31
  Heading4 = "h4",
32
32
  Heading5 = "h5",
33
33
  Heading6 = "h6",
34
+ EmptyRow = "EmptyRow",
34
35
  BulletList = "ulist",
35
36
  OrderedList = "olist",
36
37
  LiftListItem = "list__action_lift",
@@ -34,6 +34,7 @@ export var Action;
34
34
  Action["Heading4"] = "h4";
35
35
  Action["Heading5"] = "h5";
36
36
  Action["Heading6"] = "h6";
37
+ Action["EmptyRow"] = "EmptyRow";
37
38
  Action["BulletList"] = "ulist";
38
39
  Action["OrderedList"] = "olist";
39
40
  Action["LiftListItem"] = "list__action_lift";
@@ -20,6 +20,7 @@ formatter
20
20
  .set(A.Heading4, { pc: [MK.Ctrl, MK.Shift, '4'], mac: [MK.Cmd, MK.Option, '4'] })
21
21
  .set(A.Heading5, { pc: [MK.Ctrl, MK.Shift, '5'], mac: [MK.Cmd, MK.Option, '5'] })
22
22
  .set(A.Heading6, { pc: [MK.Ctrl, MK.Shift, '6'], mac: [MK.Cmd, MK.Option, '6'] })
23
+ .set(A.EmptyRow, { pc: [MK.Ctrl, MK.Shift, K.Enter], mac: [MK.Cmd, MK.Shift, K.Enter] })
23
24
  .set(A.BulletList, [MK.Mod, MK.Shift, 'l'])
24
25
  .set(A.OrderedList, [MK.Mod, MK.Shift, 'm'])
25
26
  .set(A.SinkListItem, [MK.Tab])
@@ -1,2 +1,2 @@
1
1
  /** During build process, the current version will be injected here */
2
- export const VERSION = typeof '14.9.0' !== 'undefined' ? '14.9.0' : 'unknown';
2
+ export const VERSION = typeof '14.10.0' !== 'undefined' ? '14.10.0' : 'unknown';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/markdown-editor",
3
- "version": "14.9.0",
3
+ "version": "14.10.0",
4
4
  "description": "Markdown wysiwyg and markup editor",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,17 +0,0 @@
1
- import type { ToolbarsPreset } from '../../modules/toolbars/types';
2
- import type { MToolbarData, MToolbarItemData, WToolbarData, WToolbarItemData } from '../../toolbar';
3
- import type { MarkdownEditorViewProps } from '../MarkdownEditorView';
4
- import { MarkdownEditorPreset } from '../types';
5
- export declare const createConfig: <T extends MToolbarData | WToolbarData>(editorType: 'wysiwyg' | 'markup', toolbarPreset: ToolbarsPreset | MarkdownEditorPreset, toolbarName: string) => T;
6
- interface GetToolbarsConfigsArgs {
7
- toolbarsPreset?: ToolbarsPreset;
8
- props: Pick<MarkdownEditorViewProps, 'markupToolbarConfig' | 'wysiwygToolbarConfig' | 'wysiwygHiddenActionsConfig' | 'markupHiddenActionsConfig'>;
9
- preset: MarkdownEditorPreset;
10
- }
11
- export declare const getToolbarsConfigs: ({ toolbarsPreset, props, preset }: GetToolbarsConfigsArgs) => {
12
- wysiwygToolbarConfig: WToolbarData;
13
- markupToolbarConfig: MToolbarData;
14
- wysiwygHiddenActionsConfig: WToolbarItemData[];
15
- markupHiddenActionsConfig: MToolbarItemData[];
16
- };
17
- export {};
@@ -1,17 +0,0 @@
1
- import type { ToolbarsPreset } from '../../modules/toolbars/types';
2
- import type { MToolbarData, MToolbarItemData, WToolbarData, WToolbarItemData } from '../../toolbar';
3
- import type { MarkdownEditorViewProps } from '../MarkdownEditorView';
4
- import { MarkdownEditorPreset } from '../types';
5
- export declare const createConfig: <T extends MToolbarData | WToolbarData>(editorType: 'wysiwyg' | 'markup', toolbarPreset: ToolbarsPreset | MarkdownEditorPreset, toolbarName: string) => T;
6
- interface GetToolbarsConfigsArgs {
7
- toolbarsPreset?: ToolbarsPreset;
8
- props: Pick<MarkdownEditorViewProps, 'markupToolbarConfig' | 'wysiwygToolbarConfig' | 'wysiwygHiddenActionsConfig' | 'markupHiddenActionsConfig'>;
9
- preset: MarkdownEditorPreset;
10
- }
11
- export declare const getToolbarsConfigs: ({ toolbarsPreset, props, preset }: GetToolbarsConfigsArgs) => {
12
- wysiwygToolbarConfig: WToolbarData;
13
- markupToolbarConfig: MToolbarData;
14
- wysiwygHiddenActionsConfig: WToolbarItemData[];
15
- markupHiddenActionsConfig: MToolbarItemData[];
16
- };
17
- export {};