create-markdown 0.2.2 → 0.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.
- package/dist/index.cjs +19 -1727
- package/dist/index.d.ts +6 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1725
- package/dist/preview.cjs +40 -0
- package/dist/preview.d.ts +8 -0
- package/dist/preview.d.ts.map +1 -0
- package/dist/preview.js +2 -0
- package/dist/react.cjs +40 -0
- package/dist/react.d.ts +8 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +2 -0
- package/package.json +36 -18
- package/LICENSE +0 -21
- package/README.md +0 -294
- package/dist/core/blocks.d.ts +0 -136
- package/dist/core/blocks.d.ts.map +0 -1
- package/dist/core/document.d.ts +0 -135
- package/dist/core/document.d.ts.map +0 -1
- package/dist/core/utils.d.ts +0 -80
- package/dist/core/utils.d.ts.map +0 -1
- package/dist/parsers/inline.d.ts +0 -14
- package/dist/parsers/inline.d.ts.map +0 -1
- package/dist/parsers/markdown.d.ts +0 -19
- package/dist/parsers/markdown.d.ts.map +0 -1
- package/dist/parsers/tokenizer.d.ts +0 -38
- package/dist/parsers/tokenizer.d.ts.map +0 -1
- package/dist/react/block-renderer.d.ts +0 -70
- package/dist/react/block-renderer.d.ts.map +0 -1
- package/dist/react/hooks.d.ts +0 -142
- package/dist/react/hooks.d.ts.map +0 -1
- package/dist/react/index.cjs +0 -1814
- package/dist/react/index.d.ts +0 -11
- package/dist/react/index.d.ts.map +0 -1
- package/dist/react/index.js +0 -1782
- package/dist/serializers/markdown.d.ts +0 -30
- package/dist/serializers/markdown.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -199
- package/dist/types/index.d.ts.map +0 -1
package/dist/core/document.d.ts
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* create-markdown - Document Management
|
|
3
|
-
* Create and manipulate document structures
|
|
4
|
-
*/
|
|
5
|
-
import type { Block, BlockType, Document, DocumentMeta, DocumentOptions, TextSpan } from '../types';
|
|
6
|
-
/**
|
|
7
|
-
* Current document schema version
|
|
8
|
-
*/
|
|
9
|
-
export declare const DOCUMENT_VERSION = 1;
|
|
10
|
-
/**
|
|
11
|
-
* Creates: new document with optional initial blocks and metadata
|
|
12
|
-
*/
|
|
13
|
-
export declare function createDocument(blocks?: Block[], options?: DocumentOptions): Document;
|
|
14
|
-
/**
|
|
15
|
-
* Creates: empty document
|
|
16
|
-
*/
|
|
17
|
-
export declare function emptyDocument(options?: DocumentOptions): Document;
|
|
18
|
-
/**
|
|
19
|
-
* Clones: document with new IDs for all blocks
|
|
20
|
-
*/
|
|
21
|
-
export declare function cloneDocument(doc: Document): Document;
|
|
22
|
-
/**
|
|
23
|
-
* Inserts: block at the specified index
|
|
24
|
-
* If index is not provided, appends to the end
|
|
25
|
-
*/
|
|
26
|
-
export declare function insertBlock(doc: Document, block: Block, index?: number): Document;
|
|
27
|
-
/**
|
|
28
|
-
* Appends: block to the end of the document
|
|
29
|
-
*/
|
|
30
|
-
export declare function appendBlock(doc: Document, block: Block): Document;
|
|
31
|
-
/**
|
|
32
|
-
* Prepends: block to the beginning of the document
|
|
33
|
-
*/
|
|
34
|
-
export declare function prependBlock(doc: Document, block: Block): Document;
|
|
35
|
-
/**
|
|
36
|
-
* Inserts: multiple blocks at the specified index
|
|
37
|
-
*/
|
|
38
|
-
export declare function insertBlocks(doc: Document, blocks: Block[], index?: number): Document;
|
|
39
|
-
/**
|
|
40
|
-
* Removes: block by its ID
|
|
41
|
-
*/
|
|
42
|
-
export declare function removeBlock(doc: Document, blockId: string): Document;
|
|
43
|
-
/**
|
|
44
|
-
* Removes: multiple blocks by their IDs
|
|
45
|
-
*/
|
|
46
|
-
export declare function removeBlocks(doc: Document, blockIds: string[]): Document;
|
|
47
|
-
/**
|
|
48
|
-
* Updates: block by its ID with partial updates
|
|
49
|
-
*/
|
|
50
|
-
export declare function updateBlock<T extends BlockType>(doc: Document, blockId: string, updates: Partial<Omit<Block<T>, 'id' | 'type'>>): Document;
|
|
51
|
-
/**
|
|
52
|
-
* Replaces: block entirely by its ID
|
|
53
|
-
*/
|
|
54
|
-
export declare function replaceBlock(doc: Document, blockId: string, newBlock: Block): Document;
|
|
55
|
-
/**
|
|
56
|
-
* Moves: block to a new position
|
|
57
|
-
*/
|
|
58
|
-
export declare function moveBlock(doc: Document, blockId: string, newIndex: number): Document;
|
|
59
|
-
/**
|
|
60
|
-
* Swaps: two blocks by their IDs
|
|
61
|
-
*/
|
|
62
|
-
export declare function swapBlocks(doc: Document, blockId1: string, blockId2: string): Document;
|
|
63
|
-
/**
|
|
64
|
-
* Finds: block by its ID
|
|
65
|
-
*/
|
|
66
|
-
export declare function findBlock(doc: Document, blockId: string): Block | undefined;
|
|
67
|
-
/**
|
|
68
|
-
* Finds: index of a block by its ID
|
|
69
|
-
*/
|
|
70
|
-
export declare function getBlockIndex(doc: Document, blockId: string): number;
|
|
71
|
-
/**
|
|
72
|
-
* Gets: block at the specified index
|
|
73
|
-
*/
|
|
74
|
-
export declare function getBlockAt(doc: Document, index: number): Block | undefined;
|
|
75
|
-
/**
|
|
76
|
-
* Gets: first block in the document
|
|
77
|
-
*/
|
|
78
|
-
export declare function getFirstBlock(doc: Document): Block | undefined;
|
|
79
|
-
/**
|
|
80
|
-
* Gets: last block in the document
|
|
81
|
-
*/
|
|
82
|
-
export declare function getLastBlock(doc: Document): Block | undefined;
|
|
83
|
-
/**
|
|
84
|
-
* Finds: all blocks of a specific type
|
|
85
|
-
*/
|
|
86
|
-
export declare function findBlocksByType<T extends BlockType>(doc: Document, type: T): Block<T>[];
|
|
87
|
-
/**
|
|
88
|
-
* Checks: if the document contains a block with the given ID
|
|
89
|
-
*/
|
|
90
|
-
export declare function hasBlock(doc: Document, blockId: string): boolean;
|
|
91
|
-
/**
|
|
92
|
-
* Gets: total number of blocks in the document
|
|
93
|
-
*/
|
|
94
|
-
export declare function getBlockCount(doc: Document): number;
|
|
95
|
-
/**
|
|
96
|
-
* Checks: if the document is empty
|
|
97
|
-
*/
|
|
98
|
-
export declare function isEmpty(doc: Document): boolean;
|
|
99
|
-
/**
|
|
100
|
-
* Updates: content of a specific block
|
|
101
|
-
*/
|
|
102
|
-
export declare function setBlockContent(doc: Document, blockId: string, content: TextSpan[]): Document;
|
|
103
|
-
/**
|
|
104
|
-
* Appends: content to a specific block
|
|
105
|
-
*/
|
|
106
|
-
export declare function appendBlockContent(doc: Document, blockId: string, content: TextSpan[]): Document;
|
|
107
|
-
/**
|
|
108
|
-
* Updates: document metadata
|
|
109
|
-
*/
|
|
110
|
-
export declare function updateMeta(doc: Document, meta: Partial<DocumentMeta>): Document;
|
|
111
|
-
/**
|
|
112
|
-
* Sets: specific metadata field
|
|
113
|
-
*/
|
|
114
|
-
export declare function setMetaField(doc: Document, key: string, value: unknown): Document;
|
|
115
|
-
/**
|
|
116
|
-
* Gets: specific metadata field
|
|
117
|
-
*/
|
|
118
|
-
export declare function getMetaField<T = unknown>(doc: Document, key: string): T | undefined;
|
|
119
|
-
/**
|
|
120
|
-
* Clears: all blocks from the document
|
|
121
|
-
*/
|
|
122
|
-
export declare function clearBlocks(doc: Document): Document;
|
|
123
|
-
/**
|
|
124
|
-
* Replaces: all blocks in the document
|
|
125
|
-
*/
|
|
126
|
-
export declare function setBlocks(doc: Document, blocks: Block[]): Document;
|
|
127
|
-
/**
|
|
128
|
-
* Filters: blocks based on a predicate
|
|
129
|
-
*/
|
|
130
|
-
export declare function filterBlocks(doc: Document, predicate: (block: Block, index: number) => boolean): Document;
|
|
131
|
-
/**
|
|
132
|
-
* Maps: over all blocks and transforms them
|
|
133
|
-
*/
|
|
134
|
-
export declare function mapBlocks(doc: Document, transform: (block: Block, index: number) => Block): Document;
|
|
135
|
-
//# sourceMappingURL=document.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/core/document.ts"],"names":[],"mappings":"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"}
|
package/dist/core/utils.d.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* create-markdown - Utility Functions
|
|
3
|
-
* Core utilities for block manipulation and markdown handling
|
|
4
|
-
*/
|
|
5
|
-
import type { Block, BlockType, TextSpan } from '../types';
|
|
6
|
-
/**
|
|
7
|
-
* Generates a unique ID for blocks
|
|
8
|
-
* Nano ID-style implementation without dependencies
|
|
9
|
-
*/
|
|
10
|
-
export declare function generateId(length?: number): string;
|
|
11
|
-
/**
|
|
12
|
-
* Deep clones a block and all its children
|
|
13
|
-
* Generates new IDs for cloned blocks to ensure uniqueness
|
|
14
|
-
*/
|
|
15
|
-
export declare function deepClone<T extends BlockType>(block: Block<T>, regenerateIds?: boolean): Block<T>;
|
|
16
|
-
/**
|
|
17
|
-
* Deep clones an array of blocks
|
|
18
|
-
*/
|
|
19
|
-
export declare function deepCloneBlocks(blocks: Block[], regenerateIds?: boolean): Block[];
|
|
20
|
-
/**
|
|
21
|
-
* Normalizes line endings to LF (\n)
|
|
22
|
-
*/
|
|
23
|
-
export declare function normalizeLineEndings(text: string): string;
|
|
24
|
-
/**
|
|
25
|
-
* Converts line endings to the specified format
|
|
26
|
-
*/
|
|
27
|
-
export declare function convertLineEndings(text: string, lineEnding: '\n' | '\r\n'): string;
|
|
28
|
-
/**
|
|
29
|
-
* Escapes special markdown characters in text
|
|
30
|
-
*/
|
|
31
|
-
export declare function escapeMarkdown(text: string): string;
|
|
32
|
-
/**
|
|
33
|
-
* Unescapes markdown escape sequences
|
|
34
|
-
*/
|
|
35
|
-
export declare function unescapeMarkdown(text: string): string;
|
|
36
|
-
/**
|
|
37
|
-
* Escapes text for use inside code blocks (minimal escaping)
|
|
38
|
-
*/
|
|
39
|
-
export declare function escapeCodeBlock(text: string): string;
|
|
40
|
-
/**
|
|
41
|
-
* Trims trailing whitespace from each line
|
|
42
|
-
*/
|
|
43
|
-
export declare function trimTrailingWhitespace(text: string): string;
|
|
44
|
-
/**
|
|
45
|
-
* Removes leading/trailing blank lines
|
|
46
|
-
*/
|
|
47
|
-
export declare function trimBlankLines(text: string): string;
|
|
48
|
-
/**
|
|
49
|
-
* Indents each line of text by the specified number of spaces
|
|
50
|
-
*/
|
|
51
|
-
export declare function indent(text: string, spaces: number): string;
|
|
52
|
-
/**
|
|
53
|
-
* Extracts plain text from an array of text spans
|
|
54
|
-
*/
|
|
55
|
-
export declare function spansToPlainText(spans: TextSpan[]): string;
|
|
56
|
-
/**
|
|
57
|
-
* Creates a simple text span with no styles
|
|
58
|
-
*/
|
|
59
|
-
export declare function plainSpan(text: string): TextSpan;
|
|
60
|
-
/**
|
|
61
|
-
* Creates an array with a single plain text span
|
|
62
|
-
*/
|
|
63
|
-
export declare function plainContent(text: string): TextSpan[];
|
|
64
|
-
/**
|
|
65
|
-
* Checks if a block has any content
|
|
66
|
-
*/
|
|
67
|
-
export declare function hasContent(block: Block): boolean;
|
|
68
|
-
/**
|
|
69
|
-
* Checks if a block has children
|
|
70
|
-
*/
|
|
71
|
-
export declare function hasChildren(block: Block): boolean;
|
|
72
|
-
/**
|
|
73
|
-
* Validates a heading level
|
|
74
|
-
*/
|
|
75
|
-
export declare function isValidHeadingLevel(level: number): level is 1 | 2 | 3 | 4 | 5 | 6;
|
|
76
|
-
/**
|
|
77
|
-
* Validates a block type
|
|
78
|
-
*/
|
|
79
|
-
export declare function isValidBlockType(type: string): type is BlockType;
|
|
80
|
-
//# sourceMappingURL=utils.d.ts.map
|
package/dist/core/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAY3D;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,GAAE,MAAkB,GAAG,MAAM,CAS7D;AAMD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,SAAS,EAC3C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EACf,aAAa,GAAE,OAAc,GAC5B,KAAK,CAAC,CAAC,CAAC,CAWV;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,KAAK,EAAE,EACf,aAAa,GAAE,OAAc,GAC5B,KAAK,EAAE,CAET;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,IAAI,GAAG,MAAM,GACxB,MAAM,CAMR;AAWD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpD;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgBnD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAM3D;AAMD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAE1D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAErD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAKhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAEjD;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAEjF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,SAAS,CAehE"}
|
package/dist/parsers/inline.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* create-markdown - Inline Style Parser
|
|
3
|
-
* Parse inline markdown styles (bold, italic, code, links, etc.)
|
|
4
|
-
*/
|
|
5
|
-
import type { TextSpan } from '../types';
|
|
6
|
-
/**
|
|
7
|
-
* Parses inline markdown content into an array of TextSpans
|
|
8
|
-
*/
|
|
9
|
-
export declare function parseInlineContent(text: string): TextSpan[];
|
|
10
|
-
/**
|
|
11
|
-
* Extracts: plain text from inline content (strips all formatting)
|
|
12
|
-
*/
|
|
13
|
-
export declare function extractPlainText(text: string): string;
|
|
14
|
-
//# sourceMappingURL=inline.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inline.d.ts","sourceRoot":"","sources":["../../src/parsers/inline.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,UAAU,CAAC;AAkBtD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAO3D;AAsfD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* create-markdown - Markdown Parser
|
|
3
|
-
* Convert markdown strings to block structures
|
|
4
|
-
*/
|
|
5
|
-
import type { Block, Document, MarkdownParseOptions } from '../types';
|
|
6
|
-
/**
|
|
7
|
-
* Parses: markdown string into an array of blocks
|
|
8
|
-
*/
|
|
9
|
-
export declare function markdownToBlocks(markdown: string, options?: MarkdownParseOptions): Block[];
|
|
10
|
-
/**
|
|
11
|
-
* Parses: markdown string into a Document
|
|
12
|
-
*/
|
|
13
|
-
export declare function markdownToDocument(markdown: string, options?: MarkdownParseOptions): Document;
|
|
14
|
-
/**
|
|
15
|
-
* Quick parse: function - converts markdown to blocks
|
|
16
|
-
*/
|
|
17
|
-
export declare function parse(markdown: string, options?: MarkdownParseOptions): Block[];
|
|
18
|
-
export { parseInlineContent } from './inline';
|
|
19
|
-
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/parsers/markdown.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,QAAQ,EACR,oBAAoB,EAErB,MAAM,UAAU,CAAC;AAmBlB;;GAEG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACnC,KAAK,EAAE,CAKT;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,oBAAyB,GACnC,QAAQ,CAGV;AAED;;GAEG;AACH,wBAAgB,KAAK,CACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,oBAAoB,GAC/B,KAAK,EAAE,CAET;AA2cD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* create-markdown - Markdown Tokenizer
|
|
3
|
-
* Line-by-line tokenization of markdown content
|
|
4
|
-
*/
|
|
5
|
-
export type TokenType = 'heading' | 'paragraph' | 'bullet_list_item' | 'numbered_list_item' | 'check_list_item' | 'code_fence_start' | 'code_fence_end' | 'code_content' | 'blockquote' | 'divider' | 'table_row' | 'table_separator' | 'image' | 'callout' | 'blank';
|
|
6
|
-
export interface Token {
|
|
7
|
-
type: TokenType;
|
|
8
|
-
raw: string;
|
|
9
|
-
content: string;
|
|
10
|
-
indent: number;
|
|
11
|
-
line: number;
|
|
12
|
-
meta?: TokenMeta;
|
|
13
|
-
}
|
|
14
|
-
export interface TokenMeta {
|
|
15
|
-
level?: number;
|
|
16
|
-
listMarker?: string;
|
|
17
|
-
listIndex?: number;
|
|
18
|
-
checked?: boolean;
|
|
19
|
-
language?: string;
|
|
20
|
-
calloutType?: string;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Tokenizes: markdown string into an array of tokens
|
|
24
|
-
*/
|
|
25
|
-
export declare function tokenize(markdown: string): Token[];
|
|
26
|
-
/**
|
|
27
|
-
* Groups: consecutive tokens of the same type
|
|
28
|
-
*/
|
|
29
|
-
export declare function groupTokens(tokens: Token[]): Token[][];
|
|
30
|
-
/**
|
|
31
|
-
* Checks: [if] token is a list item
|
|
32
|
-
*/
|
|
33
|
-
export declare function isListToken(token: Token): boolean;
|
|
34
|
-
/**
|
|
35
|
-
* Checks: [if] token is inside a code block
|
|
36
|
-
*/
|
|
37
|
-
export declare function isCodeToken(token: Token): boolean;
|
|
38
|
-
//# sourceMappingURL=tokenizer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/parsers/tokenizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,MAAM,SAAS,GACf,SAAS,GACT,WAAW,GACX,kBAAkB,GAClB,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,cAAc,GACd,YAAY,GACZ,SAAS,GACT,WAAW,GACX,iBAAiB,GACjB,OAAO,GACP,SAAS,GACT,OAAO,CAAC;AAEd,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IAEtB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAwDD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,EAAE,CAoBlD;AAoPD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,CAgCtD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAMjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAMjD"}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* create-markdown - React Block Renderer
|
|
3
|
-
* Render blocks as React elements
|
|
4
|
-
*/
|
|
5
|
-
import React from 'react';
|
|
6
|
-
import type { Block, TextSpan, HeadingBlock, CodeBlockBlock, ImageBlock, TableBlock, CalloutBlock, CheckListBlock } from '../types';
|
|
7
|
-
export interface BlockRendererProps {
|
|
8
|
-
/** Blocks to render */
|
|
9
|
-
blocks: Block[];
|
|
10
|
-
/** Custom class name for the container */
|
|
11
|
-
className?: string;
|
|
12
|
-
/** Custom renderers for specific block types */
|
|
13
|
-
customRenderers?: Partial<BlockRenderers>;
|
|
14
|
-
}
|
|
15
|
-
export interface BlockRenderers {
|
|
16
|
-
paragraph: React.ComponentType<{
|
|
17
|
-
block: Block;
|
|
18
|
-
}>;
|
|
19
|
-
heading: React.ComponentType<{
|
|
20
|
-
block: HeadingBlock;
|
|
21
|
-
}>;
|
|
22
|
-
bulletList: React.ComponentType<{
|
|
23
|
-
block: Block;
|
|
24
|
-
}>;
|
|
25
|
-
numberedList: React.ComponentType<{
|
|
26
|
-
block: Block;
|
|
27
|
-
}>;
|
|
28
|
-
checkList: React.ComponentType<{
|
|
29
|
-
block: CheckListBlock;
|
|
30
|
-
}>;
|
|
31
|
-
codeBlock: React.ComponentType<{
|
|
32
|
-
block: CodeBlockBlock;
|
|
33
|
-
}>;
|
|
34
|
-
blockquote: React.ComponentType<{
|
|
35
|
-
block: Block;
|
|
36
|
-
}>;
|
|
37
|
-
table: React.ComponentType<{
|
|
38
|
-
block: TableBlock;
|
|
39
|
-
}>;
|
|
40
|
-
image: React.ComponentType<{
|
|
41
|
-
block: ImageBlock;
|
|
42
|
-
}>;
|
|
43
|
-
divider: React.ComponentType<{
|
|
44
|
-
block: Block;
|
|
45
|
-
}>;
|
|
46
|
-
callout: React.ComponentType<{
|
|
47
|
-
block: CalloutBlock;
|
|
48
|
-
}>;
|
|
49
|
-
}
|
|
50
|
-
export interface SingleBlockProps {
|
|
51
|
-
block: Block;
|
|
52
|
-
customRenderers?: Partial<BlockRenderers>;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Renders: array of blocks as React elements
|
|
56
|
-
*/
|
|
57
|
-
export declare function BlockRenderer({ blocks, className, customRenderers, }: BlockRendererProps): React.ReactElement;
|
|
58
|
-
/**
|
|
59
|
-
* Renders: single block
|
|
60
|
-
*/
|
|
61
|
-
export declare function BlockElement({ block, customRenderers, }: SingleBlockProps): React.ReactElement | null;
|
|
62
|
-
interface InlineContentProps {
|
|
63
|
-
spans: TextSpan[];
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Renders: inline content (text spans with styles)
|
|
67
|
-
*/
|
|
68
|
-
export declare function InlineContent({ spans }: InlineContentProps): React.ReactElement;
|
|
69
|
-
export default BlockRenderer;
|
|
70
|
-
//# sourceMappingURL=block-renderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block-renderer.d.ts","sourceRoot":"","sources":["../../src/react/block-renderer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EACR,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,cAAc,EACjB,MAAM,UAAU,CAAC;AAMlB,MAAM,WAAW,kBAAkB;IAC/B,uBAAuB;IACvB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,eAAe,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IACjD,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IACtD,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAClD,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IACpD,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;IAC1D,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,CAAC,CAAC;IAC1D,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAClD,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IAClD,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IAClD,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,eAAe,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CAC7C;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC1B,MAAM,EACN,SAAS,EACT,eAAe,GAClB,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAYzC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EACzB,KAAK,EACL,eAAe,GAClB,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA6C9C;AAMD,UAAU,kBAAkB;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAQ/E;AAuRD,eAAe,aAAa,CAAC"}
|
package/dist/react/hooks.d.ts
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* create-markdown - React Hooks
|
|
3
|
-
* State management hooks for document manipulation
|
|
4
|
-
*/
|
|
5
|
-
import type { Block, Document, DocumentOptions, TextSpan } from '../types';
|
|
6
|
-
export interface UseDocumentReturn {
|
|
7
|
-
/** Current document state */
|
|
8
|
-
document: Document;
|
|
9
|
-
/** Blocks in the document */
|
|
10
|
-
blocks: Block[];
|
|
11
|
-
/** Insert: block at a specific index */
|
|
12
|
-
insertBlock: (block: Block, index?: number) => void;
|
|
13
|
-
/** Append: block to the end */
|
|
14
|
-
appendBlock: (block: Block) => void;
|
|
15
|
-
/** Remove: block by ID */
|
|
16
|
-
removeBlock: (blockId: string) => void;
|
|
17
|
-
/** Update: block by ID */
|
|
18
|
-
updateBlock: (blockId: string, updates: Partial<Omit<Block, 'id' | 'type'>>) => void;
|
|
19
|
-
/** Move: block to a new index */
|
|
20
|
-
moveBlock: (blockId: string, newIndex: number) => void;
|
|
21
|
-
/** Find: block by ID */
|
|
22
|
-
findBlock: (blockId: string) => Block | undefined;
|
|
23
|
-
/** Get: index of a block */
|
|
24
|
-
getBlockIndex: (blockId: string) => number;
|
|
25
|
-
/** Clear: all blocks */
|
|
26
|
-
clearBlocks: () => void;
|
|
27
|
-
/** Replace: entire document with new blocks */
|
|
28
|
-
setBlocks: (blocks: Block[]) => void;
|
|
29
|
-
/** Set: entire document */
|
|
30
|
-
setDocument: (doc: Document) => void;
|
|
31
|
-
/** Get: document as markdown */
|
|
32
|
-
toMarkdown: () => string;
|
|
33
|
-
/** Load: markdown into the document */
|
|
34
|
-
fromMarkdown: (markdown: string) => void;
|
|
35
|
-
/** Update: document metadata */
|
|
36
|
-
updateMeta: (meta: Partial<Document['meta']>) => void;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Hook for managing: document with blocks
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* ```tsx
|
|
43
|
-
* function Editor() {
|
|
44
|
-
* const { blocks, appendBlock, toMarkdown } = useDocument();
|
|
45
|
-
*
|
|
46
|
-
* const addParagraph = () => {
|
|
47
|
-
* appendBlock(paragraph('New paragraph'));
|
|
48
|
-
* };
|
|
49
|
-
*
|
|
50
|
-
* return (
|
|
51
|
-
* <div>
|
|
52
|
-
* <BlockRenderer blocks={blocks} />
|
|
53
|
-
* <button onClick={addParagraph}>Add Paragraph</button>
|
|
54
|
-
* <button onClick={() => console.log(toMarkdown())}>Export</button>
|
|
55
|
-
* </div>
|
|
56
|
-
* );
|
|
57
|
-
* }
|
|
58
|
-
* ```
|
|
59
|
-
*/
|
|
60
|
-
export declare function useDocument(initialBlocks?: Block[], options?: DocumentOptions): UseDocumentReturn;
|
|
61
|
-
export interface UseMarkdownReturn {
|
|
62
|
-
/** Current markdown string */
|
|
63
|
-
markdown: string;
|
|
64
|
-
/** Parsed blocks */
|
|
65
|
-
blocks: Block[];
|
|
66
|
-
/** Update: markdown content */
|
|
67
|
-
setMarkdown: (markdown: string) => void;
|
|
68
|
-
/** Update: blocks (will update markdown too) */
|
|
69
|
-
setBlocks: (blocks: Block[]) => void;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Hook for bidirectional: markdown/blocks state
|
|
73
|
-
*
|
|
74
|
-
* @example
|
|
75
|
-
* ```tsx
|
|
76
|
-
* function MarkdownEditor() {
|
|
77
|
-
* const { markdown, blocks, setMarkdown } = useMarkdown('# Hello');
|
|
78
|
-
*
|
|
79
|
-
* return (
|
|
80
|
-
* <div>
|
|
81
|
-
* <textarea
|
|
82
|
-
* value={markdown}
|
|
83
|
-
* onChange={(e) => setMarkdown(e.target.value)}
|
|
84
|
-
* />
|
|
85
|
-
* <BlockRenderer blocks={blocks} />
|
|
86
|
-
* </div>
|
|
87
|
-
* );
|
|
88
|
-
* }
|
|
89
|
-
* ```
|
|
90
|
-
*/
|
|
91
|
-
export declare function useMarkdown(initialMarkdown?: string): UseMarkdownReturn;
|
|
92
|
-
export interface UseBlockEditorReturn {
|
|
93
|
-
/** Current selected block ID */
|
|
94
|
-
selectedBlockId: string | null;
|
|
95
|
-
/** Current selected block */
|
|
96
|
-
selectedBlock: Block | undefined;
|
|
97
|
-
/** Select: block by ID */
|
|
98
|
-
selectBlock: (blockId: string | null) => void;
|
|
99
|
-
/** Select: next block */
|
|
100
|
-
selectNext: () => void;
|
|
101
|
-
/** Select: previous block */
|
|
102
|
-
selectPrevious: () => void;
|
|
103
|
-
/** Delete: selected block */
|
|
104
|
-
deleteSelected: () => void;
|
|
105
|
-
/** Update: selected block's content */
|
|
106
|
-
updateSelectedContent: (content: TextSpan[]) => void;
|
|
107
|
-
/** Duplicate: selected block */
|
|
108
|
-
duplicateSelected: () => void;
|
|
109
|
-
/** Move: selected block up */
|
|
110
|
-
moveSelectedUp: () => void;
|
|
111
|
-
/** Move: selected block down */
|
|
112
|
-
moveSelectedDown: () => void;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Hook for: block selection and editing operations
|
|
116
|
-
*
|
|
117
|
-
* @example
|
|
118
|
-
* ```tsx
|
|
119
|
-
* function Editor() {
|
|
120
|
-
* const doc = useDocument();
|
|
121
|
-
* const editor = useBlockEditor(doc);
|
|
122
|
-
*
|
|
123
|
-
* return (
|
|
124
|
-
* <div>
|
|
125
|
-
* {doc.blocks.map((block) => (
|
|
126
|
-
* <div
|
|
127
|
-
* key={block.id}
|
|
128
|
-
* onClick={() => editor.selectBlock(block.id)}
|
|
129
|
-
* style={{
|
|
130
|
-
* border: editor.selectedBlockId === block.id ? '2px solid blue' : 'none'
|
|
131
|
-
* }}
|
|
132
|
-
* >
|
|
133
|
-
* <BlockElement block={block} />
|
|
134
|
-
* </div>
|
|
135
|
-
* ))}
|
|
136
|
-
* </div>
|
|
137
|
-
* );
|
|
138
|
-
* }
|
|
139
|
-
* ```
|
|
140
|
-
*/
|
|
141
|
-
export declare function useBlockEditor(documentHook: UseDocumentReturn): UseBlockEditorReturn;
|
|
142
|
-
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/react/hooks.ts"],"names":[],"mappings":"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"}
|