@techie_doubts/tui.editor.2026 3.2.2

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 (75) hide show
  1. package/README.md +176 -0
  2. package/dist/esm/i18n/ar.js +65 -0
  3. package/dist/esm/i18n/cs-cz.js +65 -0
  4. package/dist/esm/i18n/de-de.js +65 -0
  5. package/dist/esm/i18n/en-us.js +65 -0
  6. package/dist/esm/i18n/es-es.js +65 -0
  7. package/dist/esm/i18n/fi-fi.js +65 -0
  8. package/dist/esm/i18n/fr-fr.js +65 -0
  9. package/dist/esm/i18n/gl-es.js +65 -0
  10. package/dist/esm/i18n/hr-hr.js +65 -0
  11. package/dist/esm/i18n/i18n.js +116 -0
  12. package/dist/esm/i18n/it-it.js +65 -0
  13. package/dist/esm/i18n/ja-jp.js +65 -0
  14. package/dist/esm/i18n/ko-kr.js +65 -0
  15. package/dist/esm/i18n/nb-no.js +65 -0
  16. package/dist/esm/i18n/nl-nl.js +65 -0
  17. package/dist/esm/i18n/pl-pl.js +65 -0
  18. package/dist/esm/i18n/pt-br.js +65 -0
  19. package/dist/esm/i18n/ru-ru.js +66 -0
  20. package/dist/esm/i18n/sv-se.js +65 -0
  21. package/dist/esm/i18n/tr-tr.js +65 -0
  22. package/dist/esm/i18n/uk-ua.js +65 -0
  23. package/dist/esm/i18n/zh-cn.js +65 -0
  24. package/dist/esm/i18n/zh-tw.js +65 -0
  25. package/dist/esm/index.js +28323 -0
  26. package/dist/esm/indexViewer.js +12432 -0
  27. package/dist/i18n/ar.js +161 -0
  28. package/dist/i18n/cs-cz.js +161 -0
  29. package/dist/i18n/de-de.js +161 -0
  30. package/dist/i18n/es-es.js +161 -0
  31. package/dist/i18n/fi-fi.js +161 -0
  32. package/dist/i18n/fr-fr.js +161 -0
  33. package/dist/i18n/gl-es.js +161 -0
  34. package/dist/i18n/hr-hr.js +161 -0
  35. package/dist/i18n/it-it.js +161 -0
  36. package/dist/i18n/ja-jp.js +161 -0
  37. package/dist/i18n/ko-kr.js +161 -0
  38. package/dist/i18n/nb-no.js +161 -0
  39. package/dist/i18n/nl-nl.js +161 -0
  40. package/dist/i18n/pl-pl.js +161 -0
  41. package/dist/i18n/pt-br.js +161 -0
  42. package/dist/i18n/ru-ru.js +162 -0
  43. package/dist/i18n/sv-se.js +161 -0
  44. package/dist/i18n/tr-tr.js +161 -0
  45. package/dist/i18n/uk-ua.js +161 -0
  46. package/dist/i18n/zh-cn.js +161 -0
  47. package/dist/i18n/zh-tw.js +161 -0
  48. package/dist/td-editor-only.css +1148 -0
  49. package/dist/td-editor-viewer.css +591 -0
  50. package/dist/td-editor-viewer.js +13712 -0
  51. package/dist/td-editor.css +1777 -0
  52. package/dist/td-editor.js +29832 -0
  53. package/dist/theme/td-editor-dark.css +555 -0
  54. package/dist/theme/toastui-editor-dark.css +555 -0
  55. package/dist/toastui-editor-only.css +1148 -0
  56. package/dist/toastui-editor-viewer.css +591 -0
  57. package/dist/toastui-editor-viewer.js +13712 -0
  58. package/dist/toastui-editor.css +1777 -0
  59. package/dist/toastui-editor.js +29832 -0
  60. package/package.json +97 -0
  61. package/types/convertor.d.ts +142 -0
  62. package/types/editor.d.ts +383 -0
  63. package/types/event.d.ts +60 -0
  64. package/types/index.d.ts +70 -0
  65. package/types/map.d.ts +8 -0
  66. package/types/markdown.d.ts +60 -0
  67. package/types/plugin.d.ts +59 -0
  68. package/types/prosemirror-commands.d.ts +15 -0
  69. package/types/prosemirror-model.d.ts +15 -0
  70. package/types/prosemirror-transform.d.ts +35 -0
  71. package/types/spec.d.ts +43 -0
  72. package/types/toastmark.d.ts +361 -0
  73. package/types/toastui-editor-viewer.d.ts +39 -0
  74. package/types/ui.d.ts +171 -0
  75. package/types/wysiwyg.d.ts +46 -0
@@ -0,0 +1,70 @@
1
+ // Type definitions for TOAST UI Editor v3.2.2
2
+ // TypeScript Version: 4.2.3
3
+ import {
4
+ EditorCore,
5
+ Editor,
6
+ Viewer,
7
+ EditorOptions,
8
+ ViewerOptions,
9
+ ExtendedAutolinks,
10
+ LinkAttributes,
11
+ Sanitizer,
12
+ EditorType,
13
+ PreviewStyle,
14
+ EventMap,
15
+ HookMap,
16
+ WidgetStyle,
17
+ WidgetRuleMap,
18
+ WidgetRule,
19
+ PluginContext,
20
+ I18n,
21
+ CustomHTMLRenderer,
22
+ HTMLMdNodeConvertor,
23
+ HTMLMdNodeConvertorMap,
24
+ } from './editor';
25
+ import './toastui-editor-viewer';
26
+
27
+ export {
28
+ MdNode,
29
+ MdNodeType,
30
+ ListMdNode,
31
+ ListItemMdNode,
32
+ TableMdNode,
33
+ TableCellMdNode,
34
+ CodeBlockMdNode,
35
+ LinkMdNode,
36
+ ListData,
37
+ HeadingMdNode,
38
+ CodeMdNode,
39
+ HTMLConvertorMap,
40
+ } from './toastmark';
41
+ export { ToMdConvertorMap } from './convertor';
42
+ export { Emitter, Handler } from './event';
43
+ export {
44
+ EditorOptions,
45
+ ViewerOptions,
46
+ ExtendedAutolinks,
47
+ LinkAttributes,
48
+ Sanitizer,
49
+ EditorType,
50
+ PreviewStyle,
51
+ EventMap,
52
+ HookMap,
53
+ WidgetStyle,
54
+ WidgetRuleMap,
55
+ WidgetRule,
56
+ PluginContext,
57
+ I18n,
58
+ CustomHTMLRenderer,
59
+ HTMLMdNodeConvertor,
60
+ HTMLMdNodeConvertorMap,
61
+ };
62
+ export { Dispatch } from './spec';
63
+ export { PluginInfo, PluginNodeViews, CommandFn, PluginCommandMap } from './plugin';
64
+ export { MdLikeNode, HTMLMdNode } from './markdown';
65
+ export { Editor, EditorCore, Viewer };
66
+ export default Editor;
67
+
68
+ export declare namespace toastui {
69
+ export { Editor };
70
+ }
package/types/map.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ export interface Mapable<K, V> {
2
+ clear(): void;
3
+ delete(key: K): boolean;
4
+ forEach(callbackfn: (value: V, key: K, map: Mapable<K, V>) => void, thisArg?: any): void;
5
+ get(key: K): V | undefined;
6
+ has(key: K): boolean;
7
+ set(key: K, value: V): this;
8
+ }
@@ -0,0 +1,60 @@
1
+ import { MdNode, TableMdNode, Sourcepos, NodeWalker } from './toastmark';
2
+
3
+ export interface TableRowMdNode extends MdNode {
4
+ parent: TableBodyMdNode | TableHeadMdNode;
5
+ }
6
+
7
+ export interface TableBodyMdNode extends MdNode {
8
+ parent: TableMdNode;
9
+ }
10
+
11
+ export interface TableHeadMdNode extends MdNode {
12
+ parent: TableMdNode;
13
+ firstChild: TableRowMdNode;
14
+ lastChild: TableRowMdNode;
15
+ next: TableBodyMdNode;
16
+ }
17
+
18
+ export interface MdLikeNode {
19
+ type: string;
20
+ literal: string | null;
21
+ wysiwygNode?: boolean;
22
+ level?: number;
23
+ destination?: string;
24
+ title?: string;
25
+ info?: string;
26
+ cellType?: 'head' | 'body';
27
+ align?: 'left' | 'center' | 'right';
28
+ listData?: {
29
+ type?: 'bullet' | 'ordered';
30
+ start?: number;
31
+ task?: boolean;
32
+ checked?: boolean;
33
+ };
34
+ attrs?: Record<string, string | null>;
35
+ childrenHTML?: string;
36
+ }
37
+
38
+ export interface HTMLMdNode {
39
+ type: string;
40
+ id: number;
41
+ parent: MdNode | null;
42
+ prev: MdNode | null;
43
+ next: MdNode | null;
44
+ sourcepos?: Sourcepos;
45
+ firstChild: MdNode | null;
46
+ lastChild: MdNode | null;
47
+ literal: string | null;
48
+
49
+ isContainer(): boolean;
50
+ unlink(): void;
51
+ replaceWith(node: MdNode): void;
52
+ insertAfter(node: MdNode): void;
53
+ insertBefore(node: MdNode): void;
54
+ appendChild(child: MdNode): void;
55
+ prependChild(child: MdNode): void;
56
+ walker(): NodeWalker;
57
+
58
+ attrs?: Record<string, string | null>;
59
+ childrenHTML?: string;
60
+ }
@@ -0,0 +1,59 @@
1
+ import { Plugin, EditorState } from 'prosemirror-state';
2
+ import { EditorView, NodeView } from 'prosemirror-view';
3
+ import { Node } from 'prosemirror-model';
4
+
5
+ import { CustomParserMap } from './toastmark';
6
+ import { CustomHTMLRenderer } from './editor';
7
+ import { Emitter } from './event';
8
+ import { ToMdConvertorMap } from './convertor';
9
+ import { Dispatch, Payload, DefaultPayload } from './spec';
10
+ import { ToolbarItemOptions } from './ui';
11
+
12
+ export type PluginProp = (eventEmitter?: Emitter) => Plugin;
13
+
14
+ export type PluginNodeViews = (
15
+ node: Node,
16
+ view: EditorView,
17
+ getPos: () => number,
18
+ eventEmitter: Emitter
19
+ ) => NodeView;
20
+
21
+ type NodeViewPropMap = Record<string, PluginNodeViews>;
22
+
23
+ export type CommandFn<T = DefaultPayload> = (
24
+ payload: Payload<T>,
25
+ state: EditorState,
26
+ dispatch: Dispatch,
27
+ view: EditorView
28
+ ) => boolean;
29
+ export type PluginCommandMap = Record<string, CommandFn>;
30
+
31
+ interface PluginToolbarItem {
32
+ groupIndex: number;
33
+ itemIndex: number;
34
+ item: string | ToolbarItemOptions;
35
+ }
36
+
37
+ export interface PluginInfo {
38
+ toHTMLRenderers?: CustomHTMLRenderer;
39
+ toMarkdownRenderers?: ToMdConvertorMap;
40
+ markdownPlugins?: PluginProp[];
41
+ wysiwygPlugins?: PluginProp[];
42
+ wysiwygNodeViews?: NodeViewPropMap;
43
+ markdownCommands?: PluginCommandMap;
44
+ wysiwygCommands?: PluginCommandMap;
45
+ toolbarItems?: PluginToolbarItem[];
46
+ markdownParsers?: CustomParserMap;
47
+ }
48
+
49
+ export interface PluginInfoResult {
50
+ toHTMLRenderers: CustomHTMLRenderer;
51
+ toMarkdownRenderers: ToMdConvertorMap;
52
+ mdPlugins: PluginProp[];
53
+ wwPlugins: PluginProp[];
54
+ wwNodeViews: NodeViewPropMap;
55
+ mdCommands: PluginCommandMap;
56
+ wwCommands: PluginCommandMap;
57
+ toolbarItems: PluginToolbarItem[];
58
+ markdownParsers: CustomParserMap;
59
+ }
@@ -0,0 +1,15 @@
1
+ import { EditorState, Transaction } from 'prosemirror-state';
2
+ import { EditorView } from 'prosemirror-view';
3
+ import { Schema } from 'prosemirror-model';
4
+
5
+ import 'prosemirror-commands';
6
+
7
+ declare module 'prosemirror-commands' {
8
+ export interface Command<S extends Schema = any> {
9
+ (state: EditorState<S>, dispatch?: (tr: Transaction<S>) => void, view?: EditorView<S>): boolean;
10
+ }
11
+
12
+ export interface Keymap<S extends Schema = any> {
13
+ [key: string]: Command<S>;
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ import * as Model from 'prosemirror-model';
2
+
3
+ declare module 'prosemirror-model' {
4
+ export interface Fragment {
5
+ textBetween(from: number, to: number, blockSeparator?: string, leafText?: string): string;
6
+ findIndex(pos: number, round?: number): { index: number; offset: number };
7
+ findDiffEnd(other: ProsemirrorNode | Fragment): { a: number; b: number } | null | undefined;
8
+ }
9
+
10
+ export type ProsemirrorNode = Model.Node;
11
+
12
+ export interface NodeType {
13
+ compatibleContent(node: NodeType): boolean;
14
+ }
15
+ }
@@ -0,0 +1,35 @@
1
+ import { Slice, Node, Mark, NodeType } from 'prosemirror-model';
2
+ import 'prosemirror-transform';
3
+
4
+ declare module 'prosemirror-transform' {
5
+ export interface Step {
6
+ slice: Slice;
7
+ from: number;
8
+ to: number;
9
+ }
10
+
11
+ export interface Transform {
12
+ setNodeMarkup(
13
+ pos: number,
14
+ type: Node | null,
15
+ attrs?: { [key: string]: any },
16
+ marks?: Mark[]
17
+ ): Transform;
18
+
19
+ split(
20
+ pos: number,
21
+ depth?: number | undefined,
22
+ typesAfter?:
23
+ | ({
24
+ type: NodeType;
25
+ attrs?:
26
+ | {
27
+ [key: string]: any;
28
+ }
29
+ | null
30
+ | undefined;
31
+ } | null)[]
32
+ | undefined
33
+ ): Transform;
34
+ }
35
+ }
@@ -0,0 +1,43 @@
1
+ import { Schema } from 'prosemirror-model';
2
+ import { Transaction, Plugin } from 'prosemirror-state';
3
+ import { EditorView } from 'prosemirror-view';
4
+ import { Command } from 'prosemirror-commands';
5
+ import { ToastMark } from './toastmark';
6
+ import { Emitter } from './event';
7
+
8
+ export interface Context {
9
+ schema: Schema;
10
+ eventEmitter: Emitter;
11
+ }
12
+
13
+ export interface MdContext extends Context {
14
+ toastMark: ToastMark;
15
+ }
16
+
17
+ export interface SpecContext extends Context {
18
+ view: EditorView;
19
+ }
20
+
21
+ export interface MdSpecContext extends SpecContext {
22
+ toastMark: ToastMark;
23
+ }
24
+
25
+ export type DefaultPayload = Record<string, any>;
26
+ export type Payload<T> = T extends infer P ? P : any;
27
+
28
+ export type Dispatch = (tr: Transaction) => void;
29
+ export type EditorCommand<T = DefaultPayload> = (payload?: Payload<T>) => Command;
30
+ export type EditorCommandMap<T = DefaultPayload> = Record<string, EditorCommand<T>>;
31
+ export type EditorCommandFn<T = DefaultPayload> = (payload?: Payload<T>) => boolean | void;
32
+ export type EditorAllCommandMap<T = DefaultPayload> = Record<string, EditorCommandFn<T>>;
33
+
34
+ export interface SpecManager {
35
+ commands(
36
+ view: EditorView,
37
+ addedCommands?: Record<string, EditorCommand>
38
+ ): EditorAllCommandMap<DefaultPayload>;
39
+
40
+ keymaps(useCommandShortcut: boolean): Plugin<any, any>[];
41
+
42
+ setContext(context: SpecContext): void;
43
+ }
@@ -0,0 +1,361 @@
1
+ // @TODO replace these definition for Definitely Type
2
+ export type BlockNodeType =
3
+ | 'document'
4
+ | 'list'
5
+ | 'blockQuote'
6
+ | 'item'
7
+ | 'heading'
8
+ | 'thematicBreak'
9
+ | 'paragraph'
10
+ | 'codeBlock'
11
+ | 'htmlBlock'
12
+ | 'table'
13
+ | 'tableHead'
14
+ | 'tableBody'
15
+ | 'tableRow'
16
+ | 'tableCell'
17
+ | 'tableDelimRow'
18
+ | 'tableDelimCell'
19
+ | 'refDef'
20
+ | 'customBlock'
21
+ | 'frontMatter';
22
+
23
+ export type InlineNodeType =
24
+ | 'code'
25
+ | 'text'
26
+ | 'emph'
27
+ | 'strong'
28
+ | 'strike'
29
+ | 'mark'
30
+ | 'superscript'
31
+ | 'subscript'
32
+ | 'underline'
33
+ | 'link'
34
+ | 'image'
35
+ | 'htmlInline'
36
+ | 'linebreak'
37
+ | 'softbreak'
38
+ | 'customInline';
39
+
40
+ export type MdNodeType = BlockNodeType | InlineNodeType;
41
+
42
+ export type Pos = [number, number];
43
+ export type MdPos = Pos;
44
+ export type Sourcepos = [Pos, Pos];
45
+
46
+ export interface NodeWalker {
47
+ current: MdNode | null;
48
+ root: MdNode;
49
+ entering: boolean;
50
+
51
+ next(): { entering: boolean; node: MdNode } | null;
52
+ resumeAt(node: MdNode, entering: boolean): void;
53
+ }
54
+
55
+ export interface MdNode {
56
+ type: MdNodeType;
57
+ id: number;
58
+ parent: MdNode | null;
59
+ prev: MdNode | null;
60
+ next: MdNode | null;
61
+ sourcepos?: Sourcepos;
62
+ firstChild: MdNode | null;
63
+ lastChild: MdNode | null;
64
+ literal: string | null;
65
+
66
+ isContainer(): boolean;
67
+ unlink(): void;
68
+ replaceWith(node: MdNode): void;
69
+ insertAfter(node: MdNode): void;
70
+ insertBefore(node: MdNode): void;
71
+ appendChild(child: MdNode): void;
72
+ prependChild(child: MdNode): void;
73
+ walker(): NodeWalker;
74
+ }
75
+
76
+ export interface BlockMdNode extends MdNode {
77
+ type: BlockNodeType;
78
+
79
+ // temporal data (for parsing)
80
+ open: boolean;
81
+ lineOffsets: number[] | null;
82
+ stringContent: string | null;
83
+ lastLineBlank: boolean;
84
+ lastLineChecked: boolean;
85
+ }
86
+
87
+ export interface ListData {
88
+ type: 'ordered' | 'bullet';
89
+ tight: boolean;
90
+ start: number;
91
+ bulletChar: string;
92
+ delimiter: string;
93
+ markerOffset: number;
94
+ padding: number;
95
+ task: boolean;
96
+ checked: boolean;
97
+ }
98
+
99
+ export interface ListMdNode extends BlockMdNode {
100
+ listData: ListData | null;
101
+ }
102
+
103
+ export interface ListItemMdNode extends BlockMdNode {
104
+ parent: MdNode;
105
+ listData: ListData;
106
+ }
107
+
108
+ export interface HeadingMdNode extends BlockMdNode {
109
+ level: number;
110
+ headingType: 'atx' | 'setext';
111
+ }
112
+
113
+ export interface CodeBlockMdNode extends BlockMdNode {
114
+ fenceOffset: number;
115
+ fenceLength: number;
116
+ fenceChar: string | null;
117
+ info: string | null;
118
+ infoPadding: number;
119
+ }
120
+
121
+ export interface TableColumn {
122
+ align: 'left' | 'center' | 'right' | null;
123
+ }
124
+
125
+ export interface TableMdNode extends BlockMdNode {
126
+ columns: TableColumn[];
127
+ }
128
+
129
+ export interface TableCellMdNode extends BlockMdNode {
130
+ startIdx: number;
131
+ endIdx: number;
132
+ paddingLeft: number;
133
+ paddingRight: number;
134
+ ignored: boolean;
135
+ attrs?: Record<string, any>;
136
+ }
137
+
138
+ export interface RefDefMdNode extends BlockMdNode {
139
+ title: string;
140
+ dest: string;
141
+ label: string;
142
+ }
143
+
144
+ export interface CustomBlockMdNode extends BlockMdNode {
145
+ syntaxLength: number;
146
+ offset: number;
147
+ info: string;
148
+ }
149
+
150
+ export interface HtmlBlockMdNode extends BlockMdNode {
151
+ htmlBlockType: number;
152
+ }
153
+
154
+ export interface LinkMdNode extends MdNode {
155
+ destination: string | null;
156
+ title: string | null;
157
+ extendedAutolink: boolean;
158
+ lastChild: MdNode;
159
+ }
160
+
161
+ export interface CodeMdNode extends MdNode {
162
+ tickCount: number;
163
+ }
164
+
165
+ export interface CustomInlineMdNode extends MdNode {
166
+ info: string;
167
+ }
168
+
169
+ export type AutolinkParser = (
170
+ content: string
171
+ ) => {
172
+ url: string;
173
+ text: string;
174
+ range: [number, number];
175
+ }[];
176
+
177
+ export type CustomParser = (
178
+ node: MdNode,
179
+ context: { entering: boolean; options: ParserOptions }
180
+ ) => void;
181
+ export type CustomParserMap = Partial<Record<MdNodeType, CustomParser>>;
182
+
183
+ type RefDefState = {
184
+ id: number;
185
+ destination: string;
186
+ title: string;
187
+ unlinked: boolean;
188
+ sourcepos: Sourcepos;
189
+ };
190
+
191
+ export type RefMap = {
192
+ [k: string]: RefDefState;
193
+ };
194
+
195
+ export type RefLinkCandidateMap = {
196
+ [k: number]: {
197
+ node: BlockMdNode;
198
+ refLabel: string;
199
+ };
200
+ };
201
+
202
+ export type RefDefCandidateMap = {
203
+ [k: number]: RefDefMdNode;
204
+ };
205
+
206
+ export interface ParserOptions {
207
+ smart: boolean;
208
+ tagFilter: boolean;
209
+ extendedAutolinks: boolean | AutolinkParser;
210
+ disallowedHtmlBlockTags: string[];
211
+ referenceDefinition: boolean;
212
+ disallowDeepHeading: boolean;
213
+ frontMatter: boolean;
214
+ customParser: CustomParserMap | null;
215
+ }
216
+
217
+ export class Parser {
218
+ constructor(options?: Partial<ParserOptions>);
219
+
220
+ advanceOffset(count: number, columns?: boolean): void;
221
+
222
+ advanceNextNonspace(): void;
223
+
224
+ findNextNonspace(): void;
225
+
226
+ addLine(): void;
227
+
228
+ addChild(tag: BlockNodeType, offset: number): BlockMdNode;
229
+
230
+ closeUnmatchedBlocks(): void;
231
+
232
+ finalize(block: BlockMdNode, lineNumber: number): void;
233
+
234
+ processInlines(block: BlockMdNode): void;
235
+
236
+ incorporateLine(ln: string): void;
237
+
238
+ // The main parsing function. Returns a parsed document AST.
239
+ parse(input: string, lineTexts?: string[]): MdNode;
240
+
241
+ partialParseStart(lineNumber: number, lines: string[]): MdNode;
242
+
243
+ partialParseExtends(lines: string[]): void;
244
+
245
+ partialParseFinish(): void;
246
+
247
+ setRefMaps(
248
+ refMap: RefMap,
249
+ refLinkCandidateMap: RefLinkCandidateMap,
250
+ refDefCandidateMap: RefDefCandidateMap
251
+ ): void;
252
+
253
+ clearRefMaps(): void;
254
+ }
255
+
256
+ export type HTMLConvertor = (
257
+ node: MdNode,
258
+ context: Context,
259
+ convertors?: HTMLConvertorMap
260
+ ) => HTMLToken | HTMLToken[] | null;
261
+
262
+ export type HTMLConvertorMap = Partial<Record<string, HTMLConvertor>>;
263
+
264
+ interface RendererOptions {
265
+ gfm: boolean;
266
+ softbreak: string;
267
+ nodeId: boolean;
268
+ tagFilter: boolean;
269
+ convertors?: HTMLConvertorMap;
270
+ }
271
+
272
+ interface Context {
273
+ entering: boolean;
274
+ leaf: boolean;
275
+ options: Omit<RendererOptions, 'convertors'>;
276
+ getChildrenText: (node: MdNode) => string;
277
+ skipChildren: () => void;
278
+ origin?: () => ReturnType<HTMLConvertor>;
279
+ }
280
+
281
+ interface TagToken {
282
+ tagName: string;
283
+ outerNewLine?: boolean;
284
+ innerNewLine?: boolean;
285
+ }
286
+
287
+ export interface OpenTagToken extends TagToken {
288
+ type: 'openTag';
289
+ classNames?: string[];
290
+ attributes?: Record<string, any>;
291
+ selfClose?: boolean;
292
+ }
293
+
294
+ export interface CloseTagToken extends TagToken {
295
+ type: 'closeTag';
296
+ }
297
+
298
+ export interface TextToken {
299
+ type: 'text';
300
+ content: string;
301
+ }
302
+
303
+ export interface RawHTMLToken {
304
+ type: 'html';
305
+ content: string;
306
+ outerNewLine?: boolean;
307
+ }
308
+
309
+ export type HTMLToken = OpenTagToken | CloseTagToken | TextToken | RawHTMLToken;
310
+
311
+ export class Renderer {
312
+ constructor(customOptions?: Partial<RendererOptions>);
313
+
314
+ getConvertors(): HTMLConvertorMap;
315
+
316
+ getOptions(): RendererOptions;
317
+
318
+ render(rootNode: MdNode): string;
319
+
320
+ renderHTMLNode(node: HTMLToken): void;
321
+ }
322
+
323
+ export interface RemovedNodeRange {
324
+ id: [number, number];
325
+ line: [number, number];
326
+ }
327
+
328
+ export interface EditResult {
329
+ nodes: MdNode[];
330
+ removedNodeRange: RemovedNodeRange | null;
331
+ }
332
+
333
+ type EventName = 'change';
334
+
335
+ type EventHandlerMap = {
336
+ [key in EventName]: Function[];
337
+ };
338
+
339
+ export class ToastMark {
340
+ constructor(contents?: string, options?: Partial<ParserOptions>);
341
+
342
+ lineTexts: string[];
343
+
344
+ editMarkdown(startPos: Pos, endPos: Pos, newText: string): EditResult[];
345
+
346
+ getLineTexts(): string[];
347
+
348
+ getRootNode(): MdNode;
349
+
350
+ findNodeAtPosition(pos: Pos): MdNode | null;
351
+
352
+ findFirstNodeAtLine(line: number): MdNode | null;
353
+
354
+ on(eventName: EventName, callback: () => void): void;
355
+
356
+ off(eventName: EventName, callback: () => void): void;
357
+
358
+ findNodeById(id: number): MdNode | null;
359
+
360
+ removeAllNode(): void;
361
+ }
@@ -0,0 +1,39 @@
1
+ declare module '@techie_doubts/tui.editor.2026/dist/toastui-editor-viewer' {
2
+ import {
3
+ Viewer,
4
+ ViewerOptions,
5
+ ExtendedAutolinks,
6
+ LinkAttributes,
7
+ Sanitizer,
8
+ EventMap,
9
+ WidgetRuleMap,
10
+ WidgetRule,
11
+ PluginContext,
12
+ I18n,
13
+ CustomHTMLRenderer,
14
+ HTMLMdNodeConvertor,
15
+ HTMLMdNodeConvertorMap,
16
+ PluginInfo,
17
+ PluginNodeViews,
18
+ PluginCommandMap,
19
+ } from '@techie_doubts/tui.editor.2026';
20
+
21
+ export {
22
+ ViewerOptions,
23
+ ExtendedAutolinks,
24
+ LinkAttributes,
25
+ Sanitizer,
26
+ EventMap,
27
+ WidgetRuleMap,
28
+ WidgetRule,
29
+ PluginContext,
30
+ I18n,
31
+ CustomHTMLRenderer,
32
+ HTMLMdNodeConvertor,
33
+ HTMLMdNodeConvertorMap,
34
+ PluginInfo,
35
+ PluginNodeViews,
36
+ PluginCommandMap,
37
+ };
38
+ export default Viewer;
39
+ }