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.
@@ -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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"}
@@ -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
@@ -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"}
@@ -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"}
@@ -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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"}