@gravity-ui/markdown-editor 13.2.0 → 13.4.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 (116) hide show
  1. package/build/cjs/bundle/Editor.d.ts +2 -0
  2. package/build/cjs/bundle/Editor.js +5 -2
  3. package/build/cjs/bundle/HorizontalDrag.d.ts +1 -0
  4. package/build/cjs/bundle/HorizontalDrag.js +2 -1
  5. package/build/cjs/bundle/config/action-names.d.ts +1 -1
  6. package/build/cjs/bundle/config/action-names.js +1 -0
  7. package/build/cjs/bundle/config/icons.d.ts +1 -1
  8. package/build/cjs/bundle/config/icons.js +1 -0
  9. package/build/cjs/bundle/config/markup.d.ts +1 -0
  10. package/build/cjs/bundle/config/markup.js +10 -1
  11. package/build/cjs/bundle/config/wysiwyg.d.ts +1 -0
  12. package/build/cjs/bundle/config/wysiwyg.js +12 -1
  13. package/build/cjs/bundle/wysiwyg-preset.js +2 -0
  14. package/build/cjs/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/NodeView.d.ts +23 -0
  15. package/build/cjs/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/NodeView.js +57 -0
  16. package/build/cjs/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/YfmHtmlBlock.css +66 -0
  17. package/build/cjs/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/YfmHtmlBlockView.d.ts +17 -0
  18. package/build/cjs/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/YfmHtmlBlockView.js +178 -0
  19. package/build/cjs/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/index.d.ts +1 -0
  20. package/build/cjs/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/index.js +4 -0
  21. package/build/cjs/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockSpecs/const.d.ts +15 -0
  22. package/build/cjs/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockSpecs/const.js +20 -0
  23. package/build/cjs/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockSpecs/index.d.ts +10 -0
  24. package/build/cjs/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockSpecs/index.js +43 -0
  25. package/build/cjs/extensions/yfm/YfmHtmlBlock/actions.d.ts +2 -0
  26. package/build/cjs/extensions/yfm/YfmHtmlBlock/actions.js +15 -0
  27. package/build/cjs/extensions/yfm/YfmHtmlBlock/const.d.ts +2 -0
  28. package/build/cjs/extensions/yfm/YfmHtmlBlock/const.js +6 -0
  29. package/build/cjs/extensions/yfm/YfmHtmlBlock/index.d.ts +14 -0
  30. package/build/cjs/extensions/yfm/YfmHtmlBlock/index.js +17 -0
  31. package/build/cjs/extensions/yfm/index.d.ts +1 -1
  32. package/build/cjs/extensions/yfm/index.js +1 -1
  33. package/build/cjs/i18n/common/en.json +6 -2
  34. package/build/cjs/i18n/common/index.d.ts +7 -3
  35. package/build/cjs/i18n/common/ru.json +6 -2
  36. package/build/cjs/i18n/menubar/en.json +37 -36
  37. package/build/cjs/i18n/menubar/index.d.ts +38 -37
  38. package/build/cjs/i18n/menubar/ru.json +37 -36
  39. package/build/cjs/icons/index.d.ts +1 -1
  40. package/build/cjs/icons/index.js +2 -1
  41. package/build/cjs/markup/codemirror/create.d.ts +2 -1
  42. package/build/cjs/markup/codemirror/create.js +5 -1
  43. package/build/cjs/markup/commands/blocks.d.ts +1 -0
  44. package/build/cjs/markup/commands/blocks.js +12 -1
  45. package/build/cjs/version.js +1 -1
  46. package/build/cjs/view/components/YfmHtml/{YfmHtml.d.ts → YfmStaticView.d.ts} +2 -2
  47. package/build/cjs/view/components/YfmHtml/{YfmHtml.js → YfmStaticView.js} +2 -2
  48. package/build/cjs/view/components/YfmHtml/index.d.ts +12 -1
  49. package/build/cjs/view/components/YfmHtml/index.js +4 -2
  50. package/build/cjs/view/hocs/withYfmHtml/index.d.ts +13 -0
  51. package/build/cjs/view/hocs/withYfmHtml/index.js +24 -0
  52. package/build/cjs/view/hocs/withYfmHtml/types.d.ts +3 -0
  53. package/build/cjs/view/hocs/withYfmHtml/types.js +2 -0
  54. package/build/cjs/view/hocs/withYfmHtml/useYfmHtmlBlockRuntime.d.ts +1 -0
  55. package/build/cjs/view/hocs/withYfmHtml/useYfmHtmlBlockRuntime.js +34 -0
  56. package/build/cjs/view/hocs/withYfmHtml/utils.d.ts +16 -0
  57. package/build/cjs/view/hocs/withYfmHtml/utils.js +26 -0
  58. package/build/esm/bundle/Editor.d.ts +2 -0
  59. package/build/esm/bundle/Editor.js +5 -2
  60. package/build/esm/bundle/HorizontalDrag.d.ts +1 -0
  61. package/build/esm/bundle/HorizontalDrag.js +2 -1
  62. package/build/esm/bundle/config/action-names.d.ts +1 -1
  63. package/build/esm/bundle/config/action-names.js +1 -0
  64. package/build/esm/bundle/config/icons.d.ts +1 -1
  65. package/build/esm/bundle/config/icons.js +2 -1
  66. package/build/esm/bundle/config/markup.d.ts +1 -0
  67. package/build/esm/bundle/config/markup.js +10 -1
  68. package/build/esm/bundle/config/wysiwyg.d.ts +1 -0
  69. package/build/esm/bundle/config/wysiwyg.js +11 -0
  70. package/build/esm/bundle/wysiwyg-preset.js +2 -0
  71. package/build/esm/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/NodeView.d.ts +23 -0
  72. package/build/esm/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/NodeView.js +52 -0
  73. package/build/esm/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/YfmHtmlBlock.css +66 -0
  74. package/build/esm/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/YfmHtmlBlockView.d.ts +18 -0
  75. package/build/esm/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/YfmHtmlBlockView.js +173 -0
  76. package/build/esm/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/index.d.ts +1 -0
  77. package/build/esm/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockNodeView/index.js +1 -0
  78. package/build/esm/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockSpecs/const.d.ts +15 -0
  79. package/build/esm/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockSpecs/const.js +17 -0
  80. package/build/esm/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockSpecs/index.d.ts +10 -0
  81. package/build/esm/extensions/yfm/YfmHtmlBlock/YfmHtmlBlockSpecs/index.js +39 -0
  82. package/build/esm/extensions/yfm/YfmHtmlBlock/actions.d.ts +2 -0
  83. package/build/esm/extensions/yfm/YfmHtmlBlock/actions.js +12 -0
  84. package/build/esm/extensions/yfm/YfmHtmlBlock/const.d.ts +2 -0
  85. package/build/esm/extensions/yfm/YfmHtmlBlock/const.js +2 -0
  86. package/build/esm/extensions/yfm/YfmHtmlBlock/index.d.ts +14 -0
  87. package/build/esm/extensions/yfm/YfmHtmlBlock/index.js +13 -0
  88. package/build/esm/extensions/yfm/index.d.ts +1 -1
  89. package/build/esm/extensions/yfm/index.js +1 -1
  90. package/build/esm/i18n/common/en.json +6 -2
  91. package/build/esm/i18n/common/index.d.ts +7 -3
  92. package/build/esm/i18n/common/ru.json +6 -2
  93. package/build/esm/i18n/menubar/en.json +37 -36
  94. package/build/esm/i18n/menubar/index.d.ts +38 -37
  95. package/build/esm/i18n/menubar/ru.json +37 -36
  96. package/build/esm/icons/index.d.ts +1 -1
  97. package/build/esm/icons/index.js +1 -1
  98. package/build/esm/markup/codemirror/create.d.ts +2 -1
  99. package/build/esm/markup/codemirror/create.js +6 -2
  100. package/build/esm/markup/commands/blocks.d.ts +1 -0
  101. package/build/esm/markup/commands/blocks.js +10 -0
  102. package/build/esm/version.js +1 -1
  103. package/build/esm/view/components/YfmHtml/{YfmHtml.d.ts → YfmStaticView.d.ts} +2 -2
  104. package/build/esm/view/components/YfmHtml/{YfmHtml.js → YfmStaticView.js} +1 -1
  105. package/build/esm/view/components/YfmHtml/index.d.ts +12 -1
  106. package/build/esm/view/components/YfmHtml/index.js +6 -1
  107. package/build/esm/view/hocs/withYfmHtml/index.d.ts +13 -0
  108. package/build/esm/view/hocs/withYfmHtml/index.js +19 -0
  109. package/build/esm/view/hocs/withYfmHtml/types.d.ts +3 -0
  110. package/build/esm/view/hocs/withYfmHtml/types.js +1 -0
  111. package/build/esm/view/hocs/withYfmHtml/useYfmHtmlBlockRuntime.d.ts +1 -0
  112. package/build/esm/view/hocs/withYfmHtml/useYfmHtmlBlockRuntime.js +7 -0
  113. package/build/esm/view/hocs/withYfmHtml/utils.d.ts +16 -0
  114. package/build/esm/view/hocs/withYfmHtml/utils.js +22 -0
  115. package/build/styles.css +66 -0
  116. package/package.json +6 -1
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.YfmHtmlBlockSpecs = exports.yfmHtmlBlockNodeName = void 0;
4
+ // eslint-disable-next-line import/no-extraneous-dependencies
5
+ const html_extension_1 = require("@diplodoc/html-extension");
6
+ const const_1 = require("./const");
7
+ var const_2 = require("./const");
8
+ Object.defineProperty(exports, "yfmHtmlBlockNodeName", { enumerable: true, get: function () { return const_2.yfmHtmlBlockNodeName; } });
9
+ const YfmHtmlBlockSpecsExtension = (builder, { nodeView }) => {
10
+ builder
11
+ .configureMd((md) => md.use((0, html_extension_1.transform)({ bundle: false }), {}))
12
+ .addNode(const_1.YfmHtmlBlockConsts.NodeName, () => ({
13
+ fromMd: {
14
+ tokenSpec: {
15
+ name: const_1.YfmHtmlBlockConsts.NodeName,
16
+ type: 'node',
17
+ noCloseToken: true,
18
+ getAttrs: (token) => { var _a; return Object.fromEntries((_a = token.attrs) !== null && _a !== void 0 ? _a : []); },
19
+ },
20
+ },
21
+ spec: {
22
+ group: 'block',
23
+ attrs: {
24
+ [const_1.YfmHtmlBlockConsts.NodeAttrs.class]: { default: 'yfm-html' },
25
+ [const_1.YfmHtmlBlockConsts.NodeAttrs.frameborder]: { default: '' },
26
+ [const_1.YfmHtmlBlockConsts.NodeAttrs.srcdoc]: { default: '' },
27
+ [const_1.YfmHtmlBlockConsts.NodeAttrs.style]: { default: null },
28
+ [const_1.YfmHtmlBlockConsts.NodeAttrs.newCreated]: { default: null },
29
+ },
30
+ toDOM: (node) => ['iframe', node.attrs],
31
+ },
32
+ toMd: (state, node) => {
33
+ state.write('::: html');
34
+ state.write('\n');
35
+ state.write(node.attrs[const_1.YfmHtmlBlockConsts.NodeAttrs.srcdoc]);
36
+ state.ensureNewLine();
37
+ state.write(':::');
38
+ state.closeBlock(node);
39
+ },
40
+ view: nodeView,
41
+ }));
42
+ };
43
+ exports.YfmHtmlBlockSpecs = Object.assign(YfmHtmlBlockSpecsExtension, const_1.YfmHtmlBlockConsts);
@@ -0,0 +1,2 @@
1
+ import { ActionSpec } from '../../../core';
2
+ export declare const addYfmHtmlBlock: ActionSpec;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addYfmHtmlBlock = void 0;
4
+ const const_1 = require("./YfmHtmlBlockSpecs/const");
5
+ exports.addYfmHtmlBlock = {
6
+ isEnable(state) {
7
+ return state.selection.empty;
8
+ },
9
+ run(state, dispatch, _view) {
10
+ dispatch(state.tr.insert(state.selection.from, (0, const_1.yfmHtmlBlockNodeType)(state.schema).create({
11
+ [const_1.YfmHtmlBlockConsts.NodeAttrs.srcdoc]: '\n',
12
+ [const_1.YfmHtmlBlockConsts.NodeAttrs.newCreated]: true,
13
+ })));
14
+ },
15
+ };
@@ -0,0 +1,2 @@
1
+ export * from './YfmHtmlBlockSpecs/const';
2
+ export declare const YfmHtmlBlockAction = "createYfmHtmlBlock";
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.YfmHtmlBlockAction = void 0;
4
+ const tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./YfmHtmlBlockSpecs/const"), exports);
6
+ exports.YfmHtmlBlockAction = 'createYfmHtmlBlock';
@@ -0,0 +1,14 @@
1
+ import type { IHTMLIFrameElementConfig } from '@diplodoc/html-extension/runtime';
2
+ import { Action, ExtensionAuto } from '../../../core';
3
+ import { YfmHtmlBlockAction } from './YfmHtmlBlockSpecs/const';
4
+ export declare type YfmHtmlBlockOptions = {
5
+ useConfig?: () => IHTMLIFrameElementConfig | undefined;
6
+ };
7
+ export declare const YfmHtmlBlock: ExtensionAuto<YfmHtmlBlockOptions>;
8
+ declare global {
9
+ namespace WysiwygEditor {
10
+ interface Actions {
11
+ [YfmHtmlBlockAction]: Action;
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.YfmHtmlBlock = void 0;
4
+ const YfmHtmlBlockNodeView_1 = require("./YfmHtmlBlockNodeView");
5
+ const YfmHtmlBlockSpecs_1 = require("./YfmHtmlBlockSpecs");
6
+ const const_1 = require("./YfmHtmlBlockSpecs/const");
7
+ const actions_1 = require("./actions");
8
+ const YfmHtmlBlock = (builder, options) => {
9
+ builder.use(YfmHtmlBlockSpecs_1.YfmHtmlBlockSpecs, {
10
+ nodeView: YfmHtmlBlockNodeViewFactory(options),
11
+ });
12
+ builder.addAction(const_1.YfmHtmlBlockAction, () => actions_1.addYfmHtmlBlock);
13
+ };
14
+ exports.YfmHtmlBlock = YfmHtmlBlock;
15
+ const YfmHtmlBlockNodeViewFactory = (options) => () => (node, view, getPos) => {
16
+ return new YfmHtmlBlockNodeView_1.WYfmHtmlBlockNodeView({ node, view, getPos, options });
17
+ };
@@ -4,8 +4,8 @@ export * from './Emoji';
4
4
  export * from './ImgSize';
5
5
  export * from './Monospace';
6
6
  export * from './Video';
7
- export * from './YfmCut';
8
7
  export * from './YfmConfigs';
8
+ export * from './YfmCut';
9
9
  export * from './YfmFile';
10
10
  export * from './YfmHeading';
11
11
  export * from './YfmNote';
@@ -7,8 +7,8 @@ tslib_1.__exportStar(require("./Emoji"), exports);
7
7
  tslib_1.__exportStar(require("./ImgSize"), exports);
8
8
  tslib_1.__exportStar(require("./Monospace"), exports);
9
9
  tslib_1.__exportStar(require("./Video"), exports);
10
- tslib_1.__exportStar(require("./YfmCut"), exports);
11
10
  tslib_1.__exportStar(require("./YfmConfigs"), exports);
11
+ tslib_1.__exportStar(require("./YfmCut"), exports);
12
12
  tslib_1.__exportStar(require("./YfmFile"), exports);
13
13
  tslib_1.__exportStar(require("./YfmHeading"), exports);
14
14
  tslib_1.__exportStar(require("./YfmNote"), exports);
@@ -1,5 +1,9 @@
1
1
  {
2
- "toolbar_action_disabled": "Incompatible markup element",
2
+ "cancel": "Cancel",
3
+ "delete": "Delete",
3
4
  "edit": "Edit",
4
- "delete": "Delete"
5
+ "preview": "Preview",
6
+ "remove": "Remove",
7
+ "save": "Save",
8
+ "toolbar_action_disabled": "Incompatible markup element"
5
9
  }
@@ -1,7 +1,11 @@
1
- export declare const i18n: <G extends "toolbar_action_disabled" | "edit" | "delete", S extends string>(key: G | (string extends S ? S : never), params?: {
1
+ export declare const i18n: <G extends "remove" | "cancel" | "delete" | "edit" | "preview" | "save" | "toolbar_action_disabled", S extends string>(key: G | (string extends S ? S : never), params?: {
2
2
  [key: string]: any;
3
3
  } | undefined) => S extends G ? {
4
- toolbar_action_disabled: string;
5
- edit: string;
4
+ cancel: string;
6
5
  delete: string;
6
+ edit: string;
7
+ preview: string;
8
+ remove: string;
9
+ save: string;
10
+ toolbar_action_disabled: string;
7
11
  }[G] : string;
@@ -1,5 +1,9 @@
1
1
  {
2
- "toolbar_action_disabled": "Несовместимый элемент разметки",
2
+ "cancel": "Отмена",
3
+ "delete": "Удалить",
3
4
  "edit": "Редактировать",
4
- "delete": "Удалить"
5
+ "preview": "Предпросмотр",
6
+ "remove": "Удалить",
7
+ "save": "Сохранить",
8
+ "toolbar_action_disabled": "Несовместимый элемент разметки"
5
9
  }
@@ -1,13 +1,22 @@
1
1
  {
2
- "undo": "Undo",
3
- "redo": "Redo",
4
2
  "bold": "Bold",
5
- "italic": "Italic",
6
- "underline": "Underline",
7
- "strike": "Strikethrough",
8
- "mono": "Monospace",
9
- "mark": "Marked",
10
- "text": "Text",
3
+ "checkbox": "Checkbox",
4
+ "code": "Code",
5
+ "code_inline": "Inline code",
6
+ "codeblock": "Code block",
7
+ "colorify": "Text color",
8
+ "colorify__color_blue": "Blue",
9
+ "colorify__color_default": "Default",
10
+ "colorify__color_gray": "Gray",
11
+ "colorify__color_green": "Green",
12
+ "colorify__color_orange": "Orange",
13
+ "colorify__color_red": "Red",
14
+ "colorify__color_violet": "Violet",
15
+ "colorify__color_yellow": "Yellow",
16
+ "colorify__group_text": "Text",
17
+ "cut": "Cut",
18
+ "emoji": "Emoji",
19
+ "file": "File",
11
20
  "heading": "Heading",
12
21
  "heading1": "Heading 1",
13
22
  "heading2": "Heading 2",
@@ -15,39 +24,31 @@
15
24
  "heading4": "Heading 4",
16
25
  "heading5": "Heading 5",
17
26
  "heading6": "Heading 6",
27
+ "hrule": "Separator",
28
+ "html": "HTML",
29
+ "image": "Image",
30
+ "italic": "Italic",
31
+ "link": "Link",
18
32
  "list": "List",
19
- "ulist": "Bullet list",
20
- "olist": "Ordered list",
21
- "list__action_sink": "Sink item",
22
33
  "list__action_lift": "Lift item",
34
+ "list__action_sink": "Sink item",
23
35
  "list_action_disabled": "Contradicts the logic of the list",
24
- "checkbox": "Checkbox",
25
- "quote": "Quote",
26
- "cut": "Cut",
27
- "note": "Note",
28
- "table": "Table",
29
- "link": "Link",
30
- "code": "Code",
31
- "code_inline": "Inline code",
32
- "codeblock": "Code block",
33
- "image": "Image",
34
- "hrule": "Separator",
35
- "emoji": "Emoji",
36
- "file": "File",
36
+ "mark": "Marked",
37
37
  "math": "Math",
38
- "math_inline": "Inline math",
39
38
  "math_block": "Math block",
40
- "colorify": "Text color",
41
- "colorify__group_text": "Text",
42
- "colorify__color_default": "Default",
43
- "colorify__color_gray": "Gray",
44
- "colorify__color_yellow": "Yellow",
45
- "colorify__color_orange": "Orange",
46
- "colorify__color_red": "Red",
47
- "colorify__color_green": "Green",
48
- "colorify__color_blue": "Blue",
49
- "colorify__color_violet": "Violet",
39
+ "math_inline": "Inline math",
40
+ "mermaid": "Mermaid",
41
+ "mono": "Monospace",
50
42
  "more_action": "More action",
43
+ "note": "Note",
44
+ "olist": "Ordered list",
45
+ "quote": "Quote",
46
+ "redo": "Redo",
47
+ "strike": "Strikethrough",
48
+ "table": "Table",
51
49
  "tabs": "Tabs",
52
- "mermaid": "Mermaid"
50
+ "text": "Text",
51
+ "ulist": "Bullet list",
52
+ "underline": "Underline",
53
+ "undo": "Undo"
53
54
  }
@@ -1,15 +1,24 @@
1
- export declare const i18n: <G extends "bold" | "code" | "link" | "italic" | "strike" | "underline" | "mark" | "quote" | "colorify" | "mono" | "text" | "cut" | "table" | "image" | "code_inline" | "heading" | "note" | "file" | "codeblock" | "checkbox" | "emoji" | "list" | "tabs" | "math" | "heading1" | "heading2" | "heading3" | "heading4" | "heading5" | "heading6" | "undo" | "redo" | "math_inline" | "math_block" | "ulist" | "olist" | "list__action_sink" | "list__action_lift" | "list_action_disabled" | "hrule" | "colorify__group_text" | "colorify__color_default" | "colorify__color_gray" | "colorify__color_yellow" | "colorify__color_orange" | "colorify__color_red" | "colorify__color_green" | "colorify__color_blue" | "colorify__color_violet" | "more_action" | "mermaid", S extends string>(key: G | (string extends S ? S : never), params?: {
1
+ export declare const i18n: <G extends "bold" | "code" | "link" | "italic" | "strike" | "underline" | "mark" | "quote" | "colorify" | "mono" | "text" | "html" | "cut" | "table" | "image" | "code_inline" | "heading" | "note" | "file" | "codeblock" | "checkbox" | "emoji" | "list" | "tabs" | "math" | "heading1" | "heading2" | "heading3" | "heading4" | "heading5" | "heading6" | "undo" | "redo" | "math_inline" | "math_block" | "colorify__color_blue" | "colorify__color_default" | "colorify__color_gray" | "colorify__color_green" | "colorify__color_orange" | "colorify__color_red" | "colorify__color_violet" | "colorify__color_yellow" | "colorify__group_text" | "hrule" | "list__action_lift" | "list__action_sink" | "list_action_disabled" | "mermaid" | "more_action" | "olist" | "ulist", S extends string>(key: G | (string extends S ? S : never), params?: {
2
2
  [key: string]: any;
3
3
  } | undefined) => S extends G ? {
4
- undo: string;
5
- redo: string;
6
4
  bold: string;
7
- italic: string;
8
- underline: string;
9
- strike: string;
10
- mono: string;
11
- mark: string;
12
- text: string;
5
+ checkbox: string;
6
+ code: string;
7
+ code_inline: string;
8
+ codeblock: string;
9
+ colorify: string;
10
+ colorify__color_blue: string;
11
+ colorify__color_default: string;
12
+ colorify__color_gray: string;
13
+ colorify__color_green: string;
14
+ colorify__color_orange: string;
15
+ colorify__color_red: string;
16
+ colorify__color_violet: string;
17
+ colorify__color_yellow: string;
18
+ colorify__group_text: string;
19
+ cut: string;
20
+ emoji: string;
21
+ file: string;
13
22
  heading: string;
14
23
  heading1: string;
15
24
  heading2: string;
@@ -17,39 +26,31 @@ export declare const i18n: <G extends "bold" | "code" | "link" | "italic" | "str
17
26
  heading4: string;
18
27
  heading5: string;
19
28
  heading6: string;
29
+ hrule: string;
30
+ html: string;
31
+ image: string;
32
+ italic: string;
33
+ link: string;
20
34
  list: string;
21
- ulist: string;
22
- olist: string;
23
- list__action_sink: string;
24
35
  list__action_lift: string;
36
+ list__action_sink: string;
25
37
  list_action_disabled: string;
26
- checkbox: string;
27
- quote: string;
28
- cut: string;
29
- note: string;
30
- table: string;
31
- link: string;
32
- code: string;
33
- code_inline: string;
34
- codeblock: string;
35
- image: string;
36
- hrule: string;
37
- emoji: string;
38
- file: string;
38
+ mark: string;
39
39
  math: string;
40
- math_inline: string;
41
40
  math_block: string;
42
- colorify: string;
43
- colorify__group_text: string;
44
- colorify__color_default: string;
45
- colorify__color_gray: string;
46
- colorify__color_yellow: string;
47
- colorify__color_orange: string;
48
- colorify__color_red: string;
49
- colorify__color_green: string;
50
- colorify__color_blue: string;
51
- colorify__color_violet: string;
41
+ math_inline: string;
42
+ mermaid: string;
43
+ mono: string;
52
44
  more_action: string;
45
+ note: string;
46
+ olist: string;
47
+ quote: string;
48
+ redo: string;
49
+ strike: string;
50
+ table: string;
53
51
  tabs: string;
54
- mermaid: string;
52
+ text: string;
53
+ ulist: string;
54
+ underline: string;
55
+ undo: string;
55
56
  }[G] : string;
@@ -1,13 +1,22 @@
1
1
  {
2
- "undo": "Отменить",
3
- "redo": "Повторить",
4
2
  "bold": "Жирный",
5
- "italic": "Курсив",
6
- "mono": "Моноширинный",
7
- "mark": "Выделенный",
8
- "underline": "Подчеркивание",
9
- "strike": "Зачеркивание",
10
- "text": "Текст",
3
+ "checkbox": "Контрольный список",
4
+ "code": "Код",
5
+ "code_inline": "Код в тексте",
6
+ "codeblock": "Блок кода",
7
+ "colorify": "Цвет текста",
8
+ "colorify__color_blue": "Синий",
9
+ "colorify__color_default": "Стандартный",
10
+ "colorify__color_gray": "Серый",
11
+ "colorify__color_green": "Зелёный",
12
+ "colorify__color_orange": "Оранжевый",
13
+ "colorify__color_red": "Красный",
14
+ "colorify__color_violet": "Фиолетовый",
15
+ "colorify__color_yellow": "Жёлтый",
16
+ "colorify__group_text": "Текст",
17
+ "cut": "Кат",
18
+ "emoji": "Эмодзи",
19
+ "file": "Файл",
11
20
  "heading": "Заголовок",
12
21
  "heading1": "Заголовок 1",
13
22
  "heading2": "Заголовок 2",
@@ -15,39 +24,31 @@
15
24
  "heading4": "Заголовок 4",
16
25
  "heading5": "Заголовок 5",
17
26
  "heading6": "Заголовок 6",
27
+ "hrule": "Разделитель",
28
+ "html": "HTML",
29
+ "image": "Изображение",
30
+ "italic": "Курсив",
31
+ "link": "Ссылка",
18
32
  "list": "Список",
19
- "ulist": "Маркированный список",
20
- "olist": "Нумерованный список",
21
- "list__action_sink": "Увеличить отступ",
22
33
  "list__action_lift": "Уменьшить отступ",
34
+ "list__action_sink": "Увеличить отступ",
23
35
  "list_action_disabled": "Противоречит логике списка",
24
- "checkbox": "Контрольный список",
25
- "quote": "Цитата",
26
- "cut": "Кат",
27
- "note": "Примечание",
28
- "table": "Таблица",
29
- "link": "Ссылка",
30
- "code": "Код",
31
- "code_inline": "Код в тексте",
32
- "codeblock": "Блок кода",
33
- "image": "Изображение",
34
- "hrule": "Разделитель",
35
- "emoji": "Эмодзи",
36
- "file": "Файл",
36
+ "mark": "Выделенный",
37
37
  "math": "Формула",
38
- "math_inline": "Формула в тексте",
39
38
  "math_block": "Блок с формулой",
40
- "colorify": "Цвет текста",
41
- "colorify__group_text": "Текст",
42
- "colorify__color_default": "Стандартный",
43
- "colorify__color_gray": "Серый",
44
- "colorify__color_yellow": "Жёлтый",
45
- "colorify__color_orange": "Оранжевый",
46
- "colorify__color_red": "Красный",
47
- "colorify__color_green": "Зелёный",
48
- "colorify__color_blue": "Синий",
49
- "colorify__color_violet": "Фиолетовый",
39
+ "math_inline": "Формула в тексте",
40
+ "mermaid": "Mermaid",
41
+ "mono": "Моноширинный",
50
42
  "more_action": "Другие действия",
43
+ "note": "Примечание",
44
+ "olist": "Нумерованный список",
45
+ "quote": "Цитата",
46
+ "redo": "Повторить",
47
+ "strike": "Зачеркивание",
48
+ "table": "Таблица",
51
49
  "tabs": "Табы",
52
- "mermaid": "Mermaid"
50
+ "text": "Текст",
51
+ "ulist": "Маркированный список",
52
+ "underline": "Подчеркивание",
53
+ "undo": "Отменить"
53
54
  }
@@ -2,4 +2,4 @@ import MermaidIcon from './Mermaid';
2
2
  import MonoIcon from './Mono';
3
3
  import TabsIcon from './Tabs';
4
4
  export { MermaidIcon, MonoIcon, TabsIcon };
5
- export { ArrowUturnCcwLeft as UndoIcon, ArrowUturnCwRight as RedoIcon, Bold as BoldIcon, Italic as ItalicIcon, Underline as UnderlineIcon, Strikethrough as StrikethroughIcon, FontCursor as MarkIcon, Text as TextIcon, Heading as HeadingIcon, Heading1 as Heading1Icon, Heading2 as Heading2Icon, Heading3 as Heading3Icon, Heading4 as Heading4Icon, Heading5 as Heading5Icon, Heading6 as Heading6Icon, ListUl as ListBlIcon, ListOl as ListOlIcon, TextOutdent as LiftIcon, TextIndent as SinkIcon, Font as TextColorIcon, Link as LinkIcon, QuoteClose as QuoteIcon, Scissors as CutIcon, Sticker as NoteIcon, Paperclip as FileIcon, Minus as HRuleIcon, LayoutList as TableIcon, ChevronsExpandHorizontal as IframeIcon, SquareCheck as CheckListIcon, Picture as ImageIcon, Person as UserIcon, FaceSmile as EmojiIcon, Code as CodeInlineIcon, FileCode as CodeBlockIcon, Function as FunctionInlineIcon, CurlyBracketsFunction as FunctionBlockIcon, Hashtag as AnchorIcon, SquareDashedText as BlockIcon, LayoutColumns3 as LayoutIcon, Pencil as DrawIoIcon, } from '@gravity-ui/icons';
5
+ export { ArrowUturnCcwLeft as UndoIcon, ArrowUturnCwRight as RedoIcon, Bold as BoldIcon, Italic as ItalicIcon, Underline as UnderlineIcon, Strikethrough as StrikethroughIcon, FontCursor as MarkIcon, Text as TextIcon, Heading as HeadingIcon, Heading1 as Heading1Icon, Heading2 as Heading2Icon, Heading3 as Heading3Icon, Heading4 as Heading4Icon, Heading5 as Heading5Icon, Heading6 as Heading6Icon, ListUl as ListBlIcon, ListOl as ListOlIcon, TextOutdent as LiftIcon, TextIndent as SinkIcon, Font as TextColorIcon, Link as LinkIcon, QuoteClose as QuoteIcon, Scissors as CutIcon, Sticker as NoteIcon, Paperclip as FileIcon, Minus as HRuleIcon, LayoutList as TableIcon, ChevronsExpandHorizontal as IframeIcon, SquareCheck as CheckListIcon, Picture as ImageIcon, Person as UserIcon, FaceSmile as EmojiIcon, Code as CodeInlineIcon, FileCode as CodeBlockIcon, Function as FunctionInlineIcon, CurlyBracketsFunction as FunctionBlockIcon, Hashtag as AnchorIcon, SquareDashedText as BlockIcon, LayoutColumns3 as LayoutIcon, Pencil as DrawIoIcon, FolderCode as HtmlBlockIcon, } from '@gravity-ui/icons';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DrawIoIcon = exports.LayoutIcon = exports.BlockIcon = exports.AnchorIcon = exports.FunctionBlockIcon = exports.FunctionInlineIcon = exports.CodeBlockIcon = exports.CodeInlineIcon = exports.EmojiIcon = exports.UserIcon = exports.ImageIcon = exports.CheckListIcon = exports.IframeIcon = exports.TableIcon = exports.HRuleIcon = exports.FileIcon = exports.NoteIcon = exports.CutIcon = exports.QuoteIcon = exports.LinkIcon = exports.TextColorIcon = exports.SinkIcon = exports.LiftIcon = exports.ListOlIcon = exports.ListBlIcon = exports.Heading6Icon = exports.Heading5Icon = exports.Heading4Icon = exports.Heading3Icon = exports.Heading2Icon = exports.Heading1Icon = exports.HeadingIcon = exports.TextIcon = exports.MarkIcon = exports.StrikethroughIcon = exports.UnderlineIcon = exports.ItalicIcon = exports.BoldIcon = exports.RedoIcon = exports.UndoIcon = exports.TabsIcon = exports.MonoIcon = exports.MermaidIcon = void 0;
3
+ exports.HtmlBlockIcon = exports.DrawIoIcon = exports.LayoutIcon = exports.BlockIcon = exports.AnchorIcon = exports.FunctionBlockIcon = exports.FunctionInlineIcon = exports.CodeBlockIcon = exports.CodeInlineIcon = exports.EmojiIcon = exports.UserIcon = exports.ImageIcon = exports.CheckListIcon = exports.IframeIcon = exports.TableIcon = exports.HRuleIcon = exports.FileIcon = exports.NoteIcon = exports.CutIcon = exports.QuoteIcon = exports.LinkIcon = exports.TextColorIcon = exports.SinkIcon = exports.LiftIcon = exports.ListOlIcon = exports.ListBlIcon = exports.Heading6Icon = exports.Heading5Icon = exports.Heading4Icon = exports.Heading3Icon = exports.Heading2Icon = exports.Heading1Icon = exports.HeadingIcon = exports.TextIcon = exports.MarkIcon = exports.StrikethroughIcon = exports.UnderlineIcon = exports.ItalicIcon = exports.BoldIcon = exports.RedoIcon = exports.UndoIcon = exports.TabsIcon = exports.MonoIcon = exports.MermaidIcon = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const Mermaid_1 = tslib_1.__importDefault(require("./Mermaid"));
6
6
  exports.MermaidIcon = Mermaid_1.default;
@@ -61,3 +61,4 @@ Object.defineProperty(exports, "BlockIcon", { enumerable: true, get: function ()
61
61
  Object.defineProperty(exports, "LayoutIcon", { enumerable: true, get: function () { return icons_1.LayoutColumns3; } });
62
62
  //
63
63
  Object.defineProperty(exports, "DrawIoIcon", { enumerable: true, get: function () { return icons_1.Pencil; } });
64
+ Object.defineProperty(exports, "HtmlBlockIcon", { enumerable: true, get: function () { return icons_1.FolderCode; } });
@@ -1,4 +1,4 @@
1
- import type { StateCommand } from '@codemirror/state';
1
+ import type { Extension, StateCommand } from '@codemirror/state';
2
2
  import { EditorView, EditorViewConfig } from '@codemirror/view';
3
3
  import { ReactRenderStorage } from '../../extensions';
4
4
  import { FileUploadHandler } from './files-upload-facet';
@@ -13,6 +13,7 @@ export declare type CreateCodemirrorParams = {
13
13
  reactRenderer: ReactRenderStorage;
14
14
  uploadHandler?: FileUploadHandler;
15
15
  needImgDimms?: boolean;
16
+ extraMarkupExtensions?: Extension[];
16
17
  };
17
18
  export declare function createCodemirror(params: CreateCodemirrorParams): EditorView;
18
19
  export declare function withLogger(action: string, command: StateCommand): StateCommand;
@@ -15,7 +15,7 @@ const pairing_chars_1 = require("./pairing-chars");
15
15
  const react_facet_1 = require("./react-facet");
16
16
  const yfm_1 = require("./yfm");
17
17
  function createCodemirror(params) {
18
- const { doc, placeholderText, reactRenderer, onCancel, onScroll, onSubmit, onChange, onDocChange, } = params;
18
+ const { doc, placeholderText, reactRenderer, onCancel, onScroll, onSubmit, onChange, onDocChange, extraMarkupExtensions, } = params;
19
19
  const extensions = [
20
20
  gravity_1.gravityTheme,
21
21
  (0, view_1.placeholder)(placeholderText),
@@ -53,6 +53,7 @@ function createCodemirror(params) {
53
53
  return true;
54
54
  },
55
55
  },
56
+ { key: 'Tab', preventDefault: true, run: commands_1.insertTab },
56
57
  commands_1.indentWithTab,
57
58
  ...commands_1.defaultKeymap,
58
59
  ...commands_1.historyKeymap,
@@ -75,6 +76,9 @@ function createCodemirror(params) {
75
76
  imgWithDimms: params.needImgDimms,
76
77
  }));
77
78
  }
79
+ if (extraMarkupExtensions) {
80
+ extensions.push(...extraMarkupExtensions);
81
+ }
78
82
  return new view_1.EditorView({
79
83
  doc,
80
84
  extensions,
@@ -3,3 +3,4 @@ export declare const wrapToBlockquote: StateCommand;
3
3
  export declare const wrapToCheckbox: StateCommand;
4
4
  export declare const insertHRule: StateCommand;
5
5
  export declare const insertMermaidDiagram: StateCommand;
6
+ export declare const insertYfmHtmlBlock: StateCommand;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.insertMermaidDiagram = exports.insertHRule = exports.wrapToCheckbox = exports.wrapToBlockquote = void 0;
3
+ exports.insertYfmHtmlBlock = exports.insertMermaidDiagram = exports.insertHRule = exports.wrapToCheckbox = exports.wrapToBlockquote = void 0;
4
4
  const helpers_1 = require("./helpers");
5
5
  exports.wrapToBlockquote = (0, helpers_1.wrapPerLine)({ beforeText: '> ', skipEmptyLine: false });
6
6
  exports.wrapToCheckbox = (0, helpers_1.wrapPerLine)({ beforeText: '[ ] ' });
@@ -22,3 +22,14 @@ sequenceDiagram
22
22
  return true;
23
23
  };
24
24
  exports.insertMermaidDiagram = insertMermaidDiagram;
25
+ const insertYfmHtmlBlock = ({ state, dispatch }) => {
26
+ const markup = `::: html
27
+
28
+ <div>Add HTML code here</div>
29
+
30
+ :::`;
31
+ const tr = (0, helpers_1.replaceOrInsertAfter)(state, markup);
32
+ dispatch(state.update(tr));
33
+ return true;
34
+ };
35
+ exports.insertYfmHtmlBlock = insertYfmHtmlBlock;
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
4
  /** During build process, the current version will be injected here */
5
- exports.VERSION = typeof '13.2.0' !== 'undefined' ? '13.2.0' : 'unknown';
5
+ exports.VERSION = typeof '13.4.0' !== 'undefined' ? '13.4.0' : 'unknown';
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
2
  import { ClassNameProps } from '../../../classname';
3
- export declare type YfmHtmlProps = ClassNameProps & {
3
+ export declare type YfmStaticViewProps = ClassNameProps & {
4
4
  html: string;
5
5
  linksVisited?: boolean;
6
6
  noListReset?: boolean;
7
7
  qa?: string;
8
8
  };
9
- export declare const YfmHtml: React.ForwardRefExoticComponent<ClassNameProps & {
9
+ export declare const YfmStaticView: React.ForwardRefExoticComponent<ClassNameProps & {
10
10
  html: string;
11
11
  linksVisited?: boolean | undefined;
12
12
  noListReset?: boolean | undefined;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.YfmHtml = void 0;
3
+ exports.YfmStaticView = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
6
  const classnames_1 = require("@bem-react/classnames");
7
- exports.YfmHtml = (0, react_1.forwardRef)(function YfmHtml(props, ref) {
7
+ exports.YfmStaticView = (0, react_1.forwardRef)(function YFMStaticView(props, ref) {
8
8
  const { html, linksVisited, noListReset, className, qa } = props;
9
9
  return (react_1.default.createElement("div", { ref: ref, dangerouslySetInnerHTML: { __html: html }, className: (0, classnames_1.classnames)('yfm', linksVisited ? 'yfm_links-visited' : undefined, noListReset ? 'yfm_no-list-reset' : undefined, className), "data-qa": qa }));
10
10
  });
@@ -1 +1,12 @@
1
- export * from './YfmHtml';
1
+ import type { YfmStaticViewProps as OriginalYfmStaticViewProps } from './YfmStaticView';
2
+ import { YfmStaticView as OriginalYfmStaticView } from './YfmStaticView';
3
+ /**
4
+ * @deprecated use type `YFMStaticViewProps` instead
5
+ */
6
+ export declare type YfmHtmlProps = OriginalYfmStaticViewProps;
7
+ export declare type YFMStaticViewProps = OriginalYfmStaticViewProps;
8
+ export { OriginalYfmStaticView as YfmStaticView };
9
+ /**
10
+ * @deprecated use component `YfmStaticView` instead
11
+ */
12
+ export { OriginalYfmStaticView as YfmHtml };
@@ -1,4 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./YfmHtml"), exports);
3
+ exports.YfmHtml = exports.YfmStaticView = void 0;
4
+ const YfmStaticView_1 = require("./YfmStaticView");
5
+ Object.defineProperty(exports, "YfmStaticView", { enumerable: true, get: function () { return YfmStaticView_1.YfmStaticView; } });
6
+ Object.defineProperty(exports, "YfmHtml", { enumerable: true, get: function () { return YfmStaticView_1.YfmStaticView; } });
@@ -0,0 +1,13 @@
1
+ import React, { ComponentType, RefAttributes } from 'react';
2
+ import { IHTMLIFrameElementConfig } from '@diplodoc/html-extension/runtime';
3
+ import type { PluginRuntime, TransformMeta } from '../withMermaid/types';
4
+ export declare type WithYfmHtmlBlockOptions = {
5
+ runtime: PluginRuntime;
6
+ };
7
+ export declare type WithYfmHtmlBlockProps = {
8
+ meta: TransformMeta;
9
+ yfmHtmlBlockConfig?: IHTMLIFrameElementConfig;
10
+ };
11
+ export declare function withYfmHtmlBlock(opts: WithYfmHtmlBlockOptions): <T extends {
12
+ html: string;
13
+ }>(Component: React.ComponentType<T & React.RefAttributes<HTMLDivElement>>) => React.ForwardRefExoticComponent<React.PropsWithoutRef<T & WithYfmHtmlBlockProps> & React.RefAttributes<HTMLDivElement>>;