UNPKG

1.05 kBTypeScriptView Raw
1import type {ComponentType} from 'react'
2import type {Element} from 'hast'
3interface WithNode {
4 node: Element
5}
6export interface ComponentsWithNodeOptions {
7 /**
8 * Expose hast elements as a `node` field in components
9 */
10 passNode: true
11 /**
12 * Override default elements (such as `<a>`, `<p>`, etcetera) by passing an
13 * object mapping tag names to components.
14 */
15 components?: Partial<
16 {
17 [TagName in keyof JSX.IntrinsicElements]:
18 | keyof JSX.IntrinsicElements
19 | ComponentType<WithNode & JSX.IntrinsicElements[TagName]>
20 }
21 >
22}
23export interface ComponentsWithoutNodeOptions {
24 /**
25 * Expose hast elements as a `node` field in components.
26 */
27 passNode?: false | undefined
28 /**
29 * Override default elements (such as `<a>`, `<p>`, etcetera) by passing an
30 * object mapping tag names to components.
31 */
32 components?: Partial<
33 {
34 [TagName in keyof JSX.IntrinsicElements]:
35 | keyof JSX.IntrinsicElements
36 | ComponentType<JSX.IntrinsicElements[TagName]>
37 }
38 >
39}
40export {}