pd-markdown 1.0.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/package.json +26 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/index.d.ts +4 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/index.d.ts.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/index.js +5 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/index.js.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/index.d.ts +4 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/index.d.ts.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/index.js +4 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/index.js.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/heading.d.ts +6 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/heading.d.ts.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/heading.js +36 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/heading.js.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/list.d.ts +14 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/list.d.ts.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/list.js +18 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/list.js.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/table.d.ts +27 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/table.d.ts.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/table.js +37 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/plugins/transform/table.js.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/processor.d.ts +22 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/processor.d.ts.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/processor.js +95 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/processor.js.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/types/index.d.ts +55 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/types/index.d.ts.map +1 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/types/index.js +2 -0
- package/packages/parser/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/parser/dist/types/index.js.map +1 -0
- package/packages/parser/__tests__/frontmatter.test.ts +69 -0
- package/packages/parser/__tests__/gfm.test.ts +83 -0
- package/packages/parser/__tests__/processor.test.ts +136 -0
- package/packages/parser/__tests__/transform/heading.test.ts +56 -0
- package/packages/parser/__tests__/transform/list.test.ts +67 -0
- package/packages/parser/__tests__/transform/table.test.ts +85 -0
- package/packages/parser/dist/index.cjs +191 -0
- package/packages/parser/dist/index.cjs.map +1 -0
- package/packages/parser/dist/index.d.ts +4 -0
- package/packages/parser/dist/index.d.ts.map +1 -0
- package/packages/parser/dist/index.mjs +185 -0
- package/packages/parser/dist/index.mjs.map +1 -0
- package/packages/parser/dist/plugins/index.d.ts +4 -0
- package/packages/parser/dist/plugins/index.d.ts.map +1 -0
- package/packages/parser/dist/plugins/transform/heading.d.ts +6 -0
- package/packages/parser/dist/plugins/transform/heading.d.ts.map +1 -0
- package/packages/parser/dist/plugins/transform/list.d.ts +14 -0
- package/packages/parser/dist/plugins/transform/list.d.ts.map +1 -0
- package/packages/parser/dist/plugins/transform/table.d.ts +27 -0
- package/packages/parser/dist/plugins/transform/table.d.ts.map +1 -0
- package/packages/parser/dist/processor.d.ts +22 -0
- package/packages/parser/dist/processor.d.ts.map +1 -0
- package/packages/parser/dist/types/index.d.ts +55 -0
- package/packages/parser/dist/types/index.d.ts.map +1 -0
- package/packages/parser/node_modules/.bin/yaml +17 -0
- package/packages/parser/package.json +38 -0
- package/packages/parser/rollup.config.ts +38 -0
- package/packages/parser/src/index.ts +15 -0
- package/packages/parser/src/plugins/index.ts +3 -0
- package/packages/parser/src/plugins/transform/heading.ts +40 -0
- package/packages/parser/src/plugins/transform/list.ts +29 -0
- package/packages/parser/src/plugins/transform/table.ts +62 -0
- package/packages/parser/src/processor.ts +119 -0
- package/packages/parser/src/types/index.ts +60 -0
- package/packages/parser/tsconfig.json +9 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/query.d.ts +36 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/query.d.ts.map +1 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/query.js +99 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/query.js.map +1 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/traverse.d.ts +22 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/traverse.d.ts.map +1 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/traverse.js +46 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/ast/traverse.js.map +1 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/index.d.ts +7 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/index.d.ts.map +1 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/index.js +8 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/index.js.map +1 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/sanitize.d.ts +22 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/sanitize.d.ts.map +1 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/sanitize.js +140 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/sanitize.js.map +1 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/slugify.d.ts +16 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/slugify.d.ts.map +1 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/slugify.js +39 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/string/slugify.js.map +1 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/types/index.d.ts +49 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/types/index.d.ts.map +1 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/types/index.js +19 -0
- package/packages/utils/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/utils/dist/types/index.js.map +1 -0
- package/packages/utils/__tests__/query.test.ts +155 -0
- package/packages/utils/__tests__/sanitize.test.ts +96 -0
- package/packages/utils/__tests__/slugify.test.ts +71 -0
- package/packages/utils/__tests__/traverse.test.ts +131 -0
- package/packages/utils/dist/ast/query.d.ts +36 -0
- package/packages/utils/dist/ast/query.d.ts.map +1 -0
- package/packages/utils/dist/ast/traverse.d.ts +22 -0
- package/packages/utils/dist/ast/traverse.d.ts.map +1 -0
- package/packages/utils/dist/index.cjs +358 -0
- package/packages/utils/dist/index.cjs.map +1 -0
- package/packages/utils/dist/index.d.ts +7 -0
- package/packages/utils/dist/index.d.ts.map +1 -0
- package/packages/utils/dist/index.mjs +343 -0
- package/packages/utils/dist/index.mjs.map +1 -0
- package/packages/utils/dist/string/sanitize.d.ts +22 -0
- package/packages/utils/dist/string/sanitize.d.ts.map +1 -0
- package/packages/utils/dist/string/slugify.d.ts +16 -0
- package/packages/utils/dist/string/slugify.d.ts.map +1 -0
- package/packages/utils/dist/types/index.d.ts +49 -0
- package/packages/utils/dist/types/index.d.ts.map +1 -0
- package/packages/utils/package.json +27 -0
- package/packages/utils/rollup.config.ts +26 -0
- package/packages/utils/src/ast/query.ts +127 -0
- package/packages/utils/src/ast/traverse.ts +73 -0
- package/packages/utils/src/index.ts +20 -0
- package/packages/utils/src/string/sanitize.ts +155 -0
- package/packages/utils/src/string/slugify.ts +43 -0
- package/packages/utils/src/types/index.ts +72 -0
- package/packages/utils/tsconfig.json +8 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/MarkdownRenderer.d.ts +27 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/MarkdownRenderer.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/MarkdownRenderer.js +39 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/MarkdownRenderer.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/NodeRenderer.d.ts +10 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/NodeRenderer.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/NodeRenderer.js +130 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/NodeRenderer.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/context.d.ts +17 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/context.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/context.js +14 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/context.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Blockquote.d.ts +8 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Blockquote.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Blockquote.js +5 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Blockquote.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Code.d.ts +13 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Code.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Code.js +9 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Code.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Heading.d.ts +8 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Heading.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Heading.js +7 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Heading.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Image.d.ts +7 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Image.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Image.js +5 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Image.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Link.d.ts +8 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Link.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Link.js +7 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Link.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/List.d.ts +13 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/List.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/List.js +14 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/List.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Paragraph.d.ts +8 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Paragraph.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Paragraph.js +5 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Paragraph.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Table.d.ts +19 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Table.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Table.js +18 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/Table.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/index.d.ts +34 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/index.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/index.js +28 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/components/defaults/index.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/hooks/useMarkdown.d.ts +11 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/hooks/useMarkdown.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/hooks/useMarkdown.js +28 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/hooks/useMarkdown.js.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/index.d.ts +6 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/index.d.ts.map +1 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/index.js +9 -0
- package/packages/web/.rollup.cache/Users/pidan/Work/Learn/pd-markdown/packages/web/dist/index.js.map +1 -0
- package/packages/web/__tests__/MarkdownRenderer.test.tsx +89 -0
- package/packages/web/__tests__/NodeRenderer.test.tsx +97 -0
- package/packages/web/__tests__/components/Code.test.tsx +71 -0
- package/packages/web/__tests__/components/Heading.test.tsx +65 -0
- package/packages/web/__tests__/components/List.test.tsx +100 -0
- package/packages/web/__tests__/components/Table.test.tsx +105 -0
- package/packages/web/__tests__/useMarkdown.test.ts +63 -0
- package/packages/web/dist/components/MarkdownRenderer.d.ts +27 -0
- package/packages/web/dist/components/MarkdownRenderer.d.ts.map +1 -0
- package/packages/web/dist/components/NodeRenderer.d.ts +10 -0
- package/packages/web/dist/components/NodeRenderer.d.ts.map +1 -0
- package/packages/web/dist/components/context.d.ts +17 -0
- package/packages/web/dist/components/context.d.ts.map +1 -0
- package/packages/web/dist/components/defaults/Blockquote.d.ts +8 -0
- package/packages/web/dist/components/defaults/Blockquote.d.ts.map +1 -0
- package/packages/web/dist/components/defaults/Code.d.ts +13 -0
- package/packages/web/dist/components/defaults/Code.d.ts.map +1 -0
- package/packages/web/dist/components/defaults/Heading.d.ts +8 -0
- package/packages/web/dist/components/defaults/Heading.d.ts.map +1 -0
- package/packages/web/dist/components/defaults/Image.d.ts +7 -0
- package/packages/web/dist/components/defaults/Image.d.ts.map +1 -0
- package/packages/web/dist/components/defaults/Link.d.ts +8 -0
- package/packages/web/dist/components/defaults/Link.d.ts.map +1 -0
- package/packages/web/dist/components/defaults/List.d.ts +13 -0
- package/packages/web/dist/components/defaults/List.d.ts.map +1 -0
- package/packages/web/dist/components/defaults/Paragraph.d.ts +8 -0
- package/packages/web/dist/components/defaults/Paragraph.d.ts.map +1 -0
- package/packages/web/dist/components/defaults/Table.d.ts +19 -0
- package/packages/web/dist/components/defaults/Table.d.ts.map +1 -0
- package/packages/web/dist/components/defaults/index.d.ts +34 -0
- package/packages/web/dist/components/defaults/index.d.ts.map +1 -0
- package/packages/web/dist/hooks/useMarkdown.d.ts +11 -0
- package/packages/web/dist/hooks/useMarkdown.d.ts.map +1 -0
- package/packages/web/dist/index.cjs +306 -0
- package/packages/web/dist/index.cjs.map +1 -0
- package/packages/web/dist/index.d.ts +6 -0
- package/packages/web/dist/index.d.ts.map +1 -0
- package/packages/web/dist/index.mjs +287 -0
- package/packages/web/dist/index.mjs.map +1 -0
- package/packages/web/package.json +40 -0
- package/packages/web/rollup.config.ts +36 -0
- package/packages/web/src/components/MarkdownRenderer.tsx +70 -0
- package/packages/web/src/components/NodeRenderer.tsx +205 -0
- package/packages/web/src/components/context.ts +24 -0
- package/packages/web/src/components/defaults/Blockquote.tsx +11 -0
- package/packages/web/src/components/defaults/Code.tsx +26 -0
- package/packages/web/src/components/defaults/Heading.tsx +14 -0
- package/packages/web/src/components/defaults/Image.tsx +10 -0
- package/packages/web/src/components/defaults/Link.tsx +18 -0
- package/packages/web/src/components/defaults/List.tsx +33 -0
- package/packages/web/src/components/defaults/Paragraph.tsx +11 -0
- package/packages/web/src/components/defaults/Table.tsx +50 -0
- package/packages/web/src/components/defaults/index.tsx +80 -0
- package/packages/web/src/hooks/useMarkdown.ts +32 -0
- package/packages/web/src/index.ts +37 -0
- package/packages/web/tsconfig.json +11 -0
- package/packages/web/vitest.config.ts +9 -0
- package/pnpm-workspace.yaml +2 -0
- package/tsconfig.base.json +26 -0
- package/tsconfig.json +8 -0
- package/vitest.config.ts +28 -0
- package/vitest.setup.ts +1 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import { render, screen } from '@testing-library/react'
|
|
3
|
+
import { Code, InlineCodeComponent } from '../../src/components/defaults/Code'
|
|
4
|
+
import type { Code as CodeNode, InlineCode } from 'mdast'
|
|
5
|
+
|
|
6
|
+
describe('Code component', () => {
|
|
7
|
+
it('should render code block', () => {
|
|
8
|
+
const node: CodeNode = {
|
|
9
|
+
type: 'code',
|
|
10
|
+
value: 'const x = 1',
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const { container } = render(<Code node={node} />)
|
|
14
|
+
expect(container.querySelector('pre code')).toHaveTextContent('const x = 1')
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
it('should add language class', () => {
|
|
18
|
+
const node: CodeNode = {
|
|
19
|
+
type: 'code',
|
|
20
|
+
lang: 'javascript',
|
|
21
|
+
value: 'const x = 1',
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const { container } = render(<Code node={node} />)
|
|
25
|
+
expect(container.querySelector('code')).toHaveClass('language-javascript')
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
it('should handle missing language', () => {
|
|
29
|
+
const node: CodeNode = {
|
|
30
|
+
type: 'code',
|
|
31
|
+
value: 'plain text',
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const { container } = render(<Code node={node} />)
|
|
35
|
+
expect(container.querySelector('code')).not.toHaveClass()
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
it('should preserve whitespace', () => {
|
|
39
|
+
const node: CodeNode = {
|
|
40
|
+
type: 'code',
|
|
41
|
+
value: 'line 1\n line 2\n line 3',
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const { container } = render(<Code node={node} />)
|
|
45
|
+
expect(container.querySelector('code')?.textContent).toBe(
|
|
46
|
+
'line 1\n line 2\n line 3'
|
|
47
|
+
)
|
|
48
|
+
})
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
describe('InlineCodeComponent', () => {
|
|
52
|
+
it('should render inline code', () => {
|
|
53
|
+
const node: InlineCode = {
|
|
54
|
+
type: 'inlineCode',
|
|
55
|
+
value: 'code',
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
render(<InlineCodeComponent node={node} />)
|
|
59
|
+
expect(screen.getByText('code').tagName).toBe('CODE')
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
it('should not be wrapped in pre', () => {
|
|
63
|
+
const node: InlineCode = {
|
|
64
|
+
type: 'inlineCode',
|
|
65
|
+
value: 'inline',
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const { container } = render(<InlineCodeComponent node={node} />)
|
|
69
|
+
expect(container.querySelector('pre')).not.toBeInTheDocument()
|
|
70
|
+
})
|
|
71
|
+
})
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import { render, screen } from '@testing-library/react'
|
|
3
|
+
import { Heading } from '../../src/components/defaults/Heading'
|
|
4
|
+
import type { Heading as HeadingNode } from 'mdast'
|
|
5
|
+
|
|
6
|
+
describe('Heading component', () => {
|
|
7
|
+
it('should render h1', () => {
|
|
8
|
+
const node: HeadingNode = {
|
|
9
|
+
type: 'heading',
|
|
10
|
+
depth: 1,
|
|
11
|
+
children: [{ type: 'text', value: 'Title' }],
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
render(<Heading node={node}>Title</Heading>)
|
|
15
|
+
expect(screen.getByRole('heading', { level: 1 })).toBeInTheDocument()
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
it('should render h2', () => {
|
|
19
|
+
const node: HeadingNode = {
|
|
20
|
+
type: 'heading',
|
|
21
|
+
depth: 2,
|
|
22
|
+
children: [],
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
render(<Heading node={node}>Subtitle</Heading>)
|
|
26
|
+
expect(screen.getByRole('heading', { level: 2 })).toBeInTheDocument()
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
it('should render h3-h6', () => {
|
|
30
|
+
for (let depth = 3; depth <= 6; depth++) {
|
|
31
|
+
const node: HeadingNode = {
|
|
32
|
+
type: 'heading',
|
|
33
|
+
depth: depth as 1 | 2 | 3 | 4 | 5 | 6,
|
|
34
|
+
children: [],
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const { unmount } = render(<Heading node={node}>Heading</Heading>)
|
|
38
|
+
expect(screen.getByRole('heading', { level: depth })).toBeInTheDocument()
|
|
39
|
+
unmount()
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
|
|
43
|
+
it('should add id from data', () => {
|
|
44
|
+
const node: HeadingNode = {
|
|
45
|
+
type: 'heading',
|
|
46
|
+
depth: 1,
|
|
47
|
+
children: [],
|
|
48
|
+
data: { id: 'my-heading' },
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
render(<Heading node={node}>My Heading</Heading>)
|
|
52
|
+
expect(screen.getByRole('heading')).toHaveAttribute('id', 'my-heading')
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
it('should handle missing data', () => {
|
|
56
|
+
const node: HeadingNode = {
|
|
57
|
+
type: 'heading',
|
|
58
|
+
depth: 1,
|
|
59
|
+
children: [],
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
render(<Heading node={node}>No ID</Heading>)
|
|
63
|
+
expect(screen.getByRole('heading')).not.toHaveAttribute('id')
|
|
64
|
+
})
|
|
65
|
+
})
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import { render, screen } from '@testing-library/react'
|
|
3
|
+
import { List, ListItem } from '../../src/components/defaults/List'
|
|
4
|
+
import type { List as ListNode, ListItem as ListItemNode } from 'mdast'
|
|
5
|
+
|
|
6
|
+
describe('List component', () => {
|
|
7
|
+
it('should render unordered list', () => {
|
|
8
|
+
const node: ListNode = {
|
|
9
|
+
type: 'list',
|
|
10
|
+
ordered: false,
|
|
11
|
+
children: [],
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const { container } = render(<List node={node}>Items</List>)
|
|
15
|
+
expect(container.querySelector('ul')).toBeInTheDocument()
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
it('should render ordered list', () => {
|
|
19
|
+
const node: ListNode = {
|
|
20
|
+
type: 'list',
|
|
21
|
+
ordered: true,
|
|
22
|
+
children: [],
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const { container } = render(<List node={node}>Items</List>)
|
|
26
|
+
expect(container.querySelector('ol')).toBeInTheDocument()
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
it('should add start attribute for custom start', () => {
|
|
30
|
+
const node: ListNode = {
|
|
31
|
+
type: 'list',
|
|
32
|
+
ordered: true,
|
|
33
|
+
start: 5,
|
|
34
|
+
children: [],
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const { container } = render(<List node={node}>Items</List>)
|
|
38
|
+
expect(container.querySelector('ol')).toHaveAttribute('start', '5')
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
it('should not add start attribute for default start', () => {
|
|
42
|
+
const node: ListNode = {
|
|
43
|
+
type: 'list',
|
|
44
|
+
ordered: true,
|
|
45
|
+
start: 1,
|
|
46
|
+
children: [],
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const { container } = render(<List node={node}>Items</List>)
|
|
50
|
+
expect(container.querySelector('ol')).not.toHaveAttribute('start')
|
|
51
|
+
})
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
describe('ListItem component', () => {
|
|
55
|
+
it('should render basic list item', () => {
|
|
56
|
+
const node: ListItemNode = {
|
|
57
|
+
type: 'listItem',
|
|
58
|
+
children: [],
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
render(<ListItem node={node}>Content</ListItem>)
|
|
62
|
+
expect(screen.getByRole('listitem')).toHaveTextContent('Content')
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
it('should render checked task item', () => {
|
|
66
|
+
const node: ListItemNode = {
|
|
67
|
+
type: 'listItem',
|
|
68
|
+
checked: true,
|
|
69
|
+
children: [],
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
render(<ListItem node={node}>Done</ListItem>)
|
|
73
|
+
const checkbox = screen.getByRole('checkbox')
|
|
74
|
+
expect(checkbox).toBeChecked()
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
it('should render unchecked task item', () => {
|
|
78
|
+
const node: ListItemNode = {
|
|
79
|
+
type: 'listItem',
|
|
80
|
+
checked: false,
|
|
81
|
+
children: [],
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
render(<ListItem node={node}>Todo</ListItem>)
|
|
85
|
+
const checkbox = screen.getByRole('checkbox')
|
|
86
|
+
expect(checkbox).not.toBeChecked()
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
it('should have readonly checkbox', () => {
|
|
90
|
+
const node: ListItemNode = {
|
|
91
|
+
type: 'listItem',
|
|
92
|
+
checked: false,
|
|
93
|
+
children: [],
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
render(<ListItem node={node}>Todo</ListItem>)
|
|
97
|
+
const checkbox = screen.getByRole('checkbox')
|
|
98
|
+
expect(checkbox).toHaveAttribute('readonly')
|
|
99
|
+
})
|
|
100
|
+
})
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import { render, screen } from '@testing-library/react'
|
|
3
|
+
import { Table, TableRow, TableCell } from '../../src/components/defaults/Table'
|
|
4
|
+
import type {
|
|
5
|
+
Table as TableNode,
|
|
6
|
+
TableRow as TableRowNode,
|
|
7
|
+
TableCell as TableCellNode,
|
|
8
|
+
} from 'mdast'
|
|
9
|
+
|
|
10
|
+
describe('Table component', () => {
|
|
11
|
+
it('should render table element', () => {
|
|
12
|
+
const node: TableNode = {
|
|
13
|
+
type: 'table',
|
|
14
|
+
children: [],
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const { container } = render(<Table node={node}>Content</Table>)
|
|
18
|
+
expect(container.querySelector('table')).toBeInTheDocument()
|
|
19
|
+
})
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
describe('TableRow component', () => {
|
|
23
|
+
it('should render tr for body rows', () => {
|
|
24
|
+
const node: TableRowNode = {
|
|
25
|
+
type: 'tableRow',
|
|
26
|
+
children: [],
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const { container } = render(<TableRow node={node}>Cells</TableRow>)
|
|
30
|
+
expect(container.querySelector('tr')).toBeInTheDocument()
|
|
31
|
+
expect(container.querySelector('thead')).not.toBeInTheDocument()
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
it('should wrap header row in thead', () => {
|
|
35
|
+
const node: TableRowNode = {
|
|
36
|
+
type: 'tableRow',
|
|
37
|
+
children: [],
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const { container } = render(
|
|
41
|
+
<TableRow node={node} isHeader>
|
|
42
|
+
Cells
|
|
43
|
+
</TableRow>
|
|
44
|
+
)
|
|
45
|
+
expect(container.querySelector('thead')).toBeInTheDocument()
|
|
46
|
+
expect(container.querySelector('thead tr')).toBeInTheDocument()
|
|
47
|
+
})
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
describe('TableCell component', () => {
|
|
51
|
+
it('should render td for body cells', () => {
|
|
52
|
+
const node: TableCellNode = {
|
|
53
|
+
type: 'tableCell',
|
|
54
|
+
children: [],
|
|
55
|
+
data: { isHeader: false },
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const { container } = render(<TableCell node={node}>Content</TableCell>)
|
|
59
|
+
expect(container.querySelector('td')).toBeInTheDocument()
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
it('should render th for header cells', () => {
|
|
63
|
+
const node: TableCellNode = {
|
|
64
|
+
type: 'tableCell',
|
|
65
|
+
children: [],
|
|
66
|
+
data: { isHeader: true },
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const { container } = render(<TableCell node={node}>Header</TableCell>)
|
|
70
|
+
expect(container.querySelector('th')).toBeInTheDocument()
|
|
71
|
+
})
|
|
72
|
+
|
|
73
|
+
it('should apply left alignment', () => {
|
|
74
|
+
const node: TableCellNode = {
|
|
75
|
+
type: 'tableCell',
|
|
76
|
+
children: [],
|
|
77
|
+
data: { align: 'left' },
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const { container } = render(<TableCell node={node}>Left</TableCell>)
|
|
81
|
+
expect(container.querySelector('td')).toHaveStyle({ textAlign: 'left' })
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
it('should apply center alignment', () => {
|
|
85
|
+
const node: TableCellNode = {
|
|
86
|
+
type: 'tableCell',
|
|
87
|
+
children: [],
|
|
88
|
+
data: { align: 'center' },
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const { container } = render(<TableCell node={node}>Center</TableCell>)
|
|
92
|
+
expect(container.querySelector('td')).toHaveStyle({ textAlign: 'center' })
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
it('should apply right alignment', () => {
|
|
96
|
+
const node: TableCellNode = {
|
|
97
|
+
type: 'tableCell',
|
|
98
|
+
children: [],
|
|
99
|
+
data: { align: 'right' },
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const { container } = render(<TableCell node={node}>Right</TableCell>)
|
|
103
|
+
expect(container.querySelector('td')).toHaveStyle({ textAlign: 'right' })
|
|
104
|
+
})
|
|
105
|
+
})
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import { renderHook } from '@testing-library/react'
|
|
3
|
+
import { useMarkdown } from '../src/hooks/useMarkdown'
|
|
4
|
+
|
|
5
|
+
describe('useMarkdown', () => {
|
|
6
|
+
it('should parse markdown string', () => {
|
|
7
|
+
const { result } = renderHook(() => useMarkdown('# Hello'))
|
|
8
|
+
|
|
9
|
+
expect(result.current.type).toBe('root')
|
|
10
|
+
expect(result.current.children[0].type).toBe('heading')
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
it('should memoize result for same input', () => {
|
|
14
|
+
const { result, rerender } = renderHook(
|
|
15
|
+
({ source }) => useMarkdown(source),
|
|
16
|
+
{ initialProps: { source: '# Hello' } }
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
const firstResult = result.current
|
|
20
|
+
|
|
21
|
+
rerender({ source: '# Hello' })
|
|
22
|
+
|
|
23
|
+
expect(result.current).toBe(firstResult)
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
it('should re-parse when source changes', () => {
|
|
27
|
+
const { result, rerender } = renderHook(
|
|
28
|
+
({ source }) => useMarkdown(source),
|
|
29
|
+
{ initialProps: { source: '# First' } }
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
expect(result.current.children[0]).toHaveProperty('type', 'heading')
|
|
33
|
+
|
|
34
|
+
rerender({ source: 'Just a paragraph' })
|
|
35
|
+
|
|
36
|
+
expect(result.current.children[0]).toHaveProperty('type', 'paragraph')
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
it('should handle empty string', () => {
|
|
40
|
+
const { result } = renderHook(() => useMarkdown(''))
|
|
41
|
+
|
|
42
|
+
expect(result.current.type).toBe('root')
|
|
43
|
+
expect(result.current.children).toHaveLength(0)
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
it('should parse complex markdown', () => {
|
|
47
|
+
const { result } = renderHook(() =>
|
|
48
|
+
useMarkdown(`
|
|
49
|
+
# Title
|
|
50
|
+
|
|
51
|
+
Paragraph with **bold** text.
|
|
52
|
+
|
|
53
|
+
- List item 1
|
|
54
|
+
- List item 2
|
|
55
|
+
`.trim())
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
expect(result.current.children).toHaveLength(3)
|
|
59
|
+
expect(result.current.children[0].type).toBe('heading')
|
|
60
|
+
expect(result.current.children[1].type).toBe('paragraph')
|
|
61
|
+
expect(result.current.children[2].type).toBe('list')
|
|
62
|
+
})
|
|
63
|
+
})
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { FC, CSSProperties } from 'react';
|
|
2
|
+
import type { Root } from 'mdast';
|
|
3
|
+
import { type ParserOptions } from '@pd-markdown/parser';
|
|
4
|
+
import type { ComponentMap } from './defaults';
|
|
5
|
+
export interface MarkdownRendererProps {
|
|
6
|
+
/** Markdown source string (will be parsed) */
|
|
7
|
+
source?: string;
|
|
8
|
+
/** Pre-parsed AST (skip parsing, useful for SSR) */
|
|
9
|
+
ast?: Root;
|
|
10
|
+
/** Custom component overrides */
|
|
11
|
+
components?: Partial<ComponentMap>;
|
|
12
|
+
/** CSS class name for wrapper */
|
|
13
|
+
className?: string;
|
|
14
|
+
/** Inline styles for wrapper */
|
|
15
|
+
style?: CSSProperties;
|
|
16
|
+
/** Parser options (only used when source is provided) */
|
|
17
|
+
parserOptions?: ParserOptions;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Main markdown renderer component
|
|
21
|
+
*
|
|
22
|
+
* Supports both client-side and server-side rendering:
|
|
23
|
+
* - Pass `source` for automatic parsing
|
|
24
|
+
* - Pass `ast` for pre-parsed content (SSR optimization)
|
|
25
|
+
*/
|
|
26
|
+
export declare const MarkdownRenderer: FC<MarkdownRendererProps>;
|
|
27
|
+
//# sourceMappingURL=MarkdownRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownRenderer.d.ts","sourceRoot":"","sources":["../../src/components/MarkdownRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAGtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oDAAoD;IACpD,GAAG,CAAC,EAAE,IAAI,CAAA;IACV,iCAAiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IAClC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,yDAAyD;IACzD,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAeD;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CA2BtD,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { Content, Root } from 'mdast';
|
|
3
|
+
export interface NodeRendererProps {
|
|
4
|
+
node: Content | Root;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Recursive node renderer that renders AST nodes to React elements
|
|
8
|
+
*/
|
|
9
|
+
export declare const NodeRenderer: FC<NodeRendererProps>;
|
|
10
|
+
//# sourceMappingURL=NodeRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeRenderer.d.ts","sourceRoot":"","sources":["../../src/components/NodeRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAa,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAA2B,MAAM,OAAO,CAAA;AAInE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAgM9C,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ComponentMap } from './defaults';
|
|
2
|
+
/**
|
|
3
|
+
* Context value for markdown renderer
|
|
4
|
+
*/
|
|
5
|
+
export interface MarkdownContextValue {
|
|
6
|
+
/** Custom component overrides */
|
|
7
|
+
components: Partial<ComponentMap>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Context for passing configuration down the component tree
|
|
11
|
+
*/
|
|
12
|
+
export declare const MarkdownContext: import("react").Context<MarkdownContextValue>;
|
|
13
|
+
/**
|
|
14
|
+
* Hook to access markdown context
|
|
15
|
+
*/
|
|
16
|
+
export declare function useMarkdownContext(): MarkdownContextValue;
|
|
17
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/components/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CAClC;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,+CAE1B,CAAA;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,oBAAoB,CAEzD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FC, ReactNode } from 'react';
|
|
2
|
+
import type { Blockquote as BlockquoteNode } from 'mdast';
|
|
3
|
+
export interface BlockquoteProps {
|
|
4
|
+
node: BlockquoteNode;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare const Blockquote: FC<BlockquoteProps>;
|
|
8
|
+
//# sourceMappingURL=Blockquote.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Blockquote.d.ts","sourceRoot":"","sources":["../../../src/components/defaults/Blockquote.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,OAAO,CAAA;AAEzD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAE1C,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FC, ReactNode } from 'react';
|
|
2
|
+
import type { Code as CodeNode, InlineCode } from 'mdast';
|
|
3
|
+
export interface CodeProps {
|
|
4
|
+
node: CodeNode;
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare const Code: FC<CodeProps>;
|
|
8
|
+
export interface InlineCodeProps {
|
|
9
|
+
node: InlineCode;
|
|
10
|
+
children?: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare const InlineCodeComponent: FC<InlineCodeProps>;
|
|
13
|
+
//# sourceMappingURL=Code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Code.d.ts","sourceRoot":"","sources":["../../../src/components/defaults/Code.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CAQ9B,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,eAAe,CAEnD,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FC, ReactNode } from 'react';
|
|
2
|
+
import type { Heading as HeadingNode } from 'mdast';
|
|
3
|
+
export interface HeadingProps {
|
|
4
|
+
node: HeadingNode;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare const Heading: FC<HeadingProps>;
|
|
8
|
+
//# sourceMappingURL=Heading.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Heading.d.ts","sourceRoot":"","sources":["../../../src/components/defaults/Heading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,OAAO,CAAA;AAEnD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAA;IACjB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAKpC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../src/components/defaults/Image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,OAAO,CAAA;AAE/C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAA;CAChB;AAED,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,UAAU,CAEhC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/components/defaults/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CAS9B,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FC, ReactNode } from 'react';
|
|
2
|
+
import type { List as ListNode, ListItem as ListItemNode } from 'mdast';
|
|
3
|
+
export interface ListProps {
|
|
4
|
+
node: ListNode;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare const List: FC<ListProps>;
|
|
8
|
+
export interface ListItemProps {
|
|
9
|
+
node: ListItemNode;
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare const ListItem: FC<ListItemProps>;
|
|
13
|
+
//# sourceMappingURL=List.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/components/defaults/List.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,OAAO,CAAA;AAEvE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CAK9B,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAYtC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FC, ReactNode } from 'react';
|
|
2
|
+
import type { Paragraph as ParagraphNode } from 'mdast';
|
|
3
|
+
export interface ParagraphProps {
|
|
4
|
+
node: ParagraphNode;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare const Paragraph: FC<ParagraphProps>;
|
|
8
|
+
//# sourceMappingURL=Paragraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Paragraph.d.ts","sourceRoot":"","sources":["../../../src/components/defaults/Paragraph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,OAAO,CAAA;AAEvD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAA;IACnB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAExC,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { FC, ReactNode } from 'react';
|
|
2
|
+
import type { Table as TableNode, TableRow as TableRowNode, TableCell as TableCellNode } from 'mdast';
|
|
3
|
+
export interface TableProps {
|
|
4
|
+
node: TableNode;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare const Table: FC<TableProps>;
|
|
8
|
+
export interface TableRowProps {
|
|
9
|
+
node: TableRowNode;
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
isHeader?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare const TableRow: FC<TableRowProps>;
|
|
14
|
+
export interface TableCellProps {
|
|
15
|
+
node: TableCellNode;
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
}
|
|
18
|
+
export declare const TableCell: FC<TableCellProps>;
|
|
19
|
+
//# sourceMappingURL=Table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/components/defaults/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EACV,KAAK,IAAI,SAAS,EAClB,QAAQ,IAAI,YAAY,EACxB,SAAS,IAAI,aAAa,EAC3B,MAAM,OAAO,CAAA;AAEd,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,UAAU,CAMhC,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,SAAS,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAStC,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,CAAA;IACnB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAOxC,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Heading, HeadingProps } from './Heading';
|
|
3
|
+
import { Paragraph, ParagraphProps } from './Paragraph';
|
|
4
|
+
import { List, ListItem, ListProps, ListItemProps } from './List';
|
|
5
|
+
import { Table, TableRow, TableCell, TableProps, TableRowProps, TableCellProps } from './Table';
|
|
6
|
+
import { Code, InlineCodeComponent, CodeProps, InlineCodeProps } from './Code';
|
|
7
|
+
import { Link, LinkProps } from './Link';
|
|
8
|
+
import { Image, ImageProps } from './Image';
|
|
9
|
+
import { Blockquote, BlockquoteProps } from './Blockquote';
|
|
10
|
+
export { Heading, Paragraph, List, ListItem, Table, TableRow, TableCell, Code, InlineCodeComponent, Link, Image, Blockquote, };
|
|
11
|
+
export type { HeadingProps, ParagraphProps, ListProps, ListItemProps, TableProps, TableRowProps, TableCellProps, CodeProps, InlineCodeProps, LinkProps, ImageProps, BlockquoteProps, };
|
|
12
|
+
/**
|
|
13
|
+
* Map of node types to their corresponding React components
|
|
14
|
+
*/
|
|
15
|
+
export interface ComponentMap {
|
|
16
|
+
heading: React.FC<HeadingProps>;
|
|
17
|
+
paragraph: React.FC<ParagraphProps>;
|
|
18
|
+
list: React.FC<ListProps>;
|
|
19
|
+
listItem: React.FC<ListItemProps>;
|
|
20
|
+
table: React.FC<TableProps>;
|
|
21
|
+
tableRow: React.FC<TableRowProps>;
|
|
22
|
+
tableCell: React.FC<TableCellProps>;
|
|
23
|
+
code: React.FC<CodeProps>;
|
|
24
|
+
inlineCode: React.FC<InlineCodeProps>;
|
|
25
|
+
link: React.FC<LinkProps>;
|
|
26
|
+
image: React.FC<ImageProps>;
|
|
27
|
+
blockquote: React.FC<BlockquoteProps>;
|
|
28
|
+
[key: string]: React.FC<any>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Default component map
|
|
32
|
+
*/
|
|
33
|
+
export declare const defaultComponents: ComponentMap;
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/defaults/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACjE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC/F,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAC9E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG1D,OAAO,EACL,OAAO,EACP,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,mBAAmB,EACnB,IAAI,EACJ,KAAK,EACL,UAAU,GACX,CAAA;AAGD,YAAY,EACV,YAAY,EACZ,cAAc,EACd,SAAS,EACT,aAAa,EACb,UAAU,EACV,aAAa,EACb,cAAc,EACd,SAAS,EACT,eAAe,EACf,SAAS,EACT,UAAU,EACV,eAAe,GAChB,CAAA;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAA;IAC/B,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACnC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;IACzB,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IACjC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;IAC3B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IACjC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACnC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;IACzB,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAA;IACrC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;IACzB,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;IAC3B,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAA;IAErC,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;CAC7B;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAa/B,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Root } from 'mdast';
|
|
2
|
+
import { type ParserOptions } from '@pd-markdown/parser';
|
|
3
|
+
/**
|
|
4
|
+
* Hook for parsing markdown on the client side
|
|
5
|
+
*
|
|
6
|
+
* @param source - Markdown source string
|
|
7
|
+
* @param options - Parser options
|
|
8
|
+
* @returns Parsed AST
|
|
9
|
+
*/
|
|
10
|
+
export declare function useMarkdown(source: string, options?: ParserOptions): Root;
|
|
11
|
+
//# sourceMappingURL=useMarkdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMarkdown.d.ts","sourceRoot":"","sources":["../../src/hooks/useMarkdown.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAetE;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI,CAOzE"}
|