1
- import type { Node as MdastNode } from 'unist'
1
+ import type { Program } from 'estree-jsx'
2
+ import type { Data as HastData , ElementContent , Parent as HastParent } from 'hast'
2
3
import type {
3
- Parent as MdastParent ,
4
- Literal as MdastLiteral ,
5
4
BlockContent ,
5
+ Data as MdastData ,
6
6
DefinitionContent ,
7
+ Literal as MdastLiteral ,
8
+ Node as MdastNode ,
9
+ Parent as MdastParent ,
7
10
PhrasingContent
8
11
} from 'mdast'
9
- import type { ElementContent , Parent as HastParent } from 'hast'
10
- import type { Program } from 'estree-jsx'
12
+ import type { Data , Node } from 'unist'
11
13
import type { Tag } from './lib/index.js'
12
14
13
15
// Expose JavaScript API.
@@ -25,17 +27,32 @@ export type {ToMarkdownOptions} from './lib/index.js'
25
27
* ^^^
26
28
* ```
27
29
*/
28
- export interface MdxJsxAttributeValueExpression extends MdastLiteral {
30
+ export interface MdxJsxAttributeValueExpression extends Node {
29
31
/**
30
32
* Node type.
31
33
*/
32
34
type : 'mdxJsxAttributeValueExpression'
33
- data ?: {
34
- /**
35
- * Program node from estree.
36
- */
37
- estree ?: Program | null | undefined
38
- } & MdastLiteral [ 'data' ]
35
+
36
+ /**
37
+ * Value.
38
+ */
39
+ value : string
40
+
41
+ /**
42
+ * Data associated with the mdast MDX JSX attribute value expression.
43
+ */
44
+ data ?: MdxJsxAttributeValueExpressionData | undefined
45
+ }
46
+
47
+ /**
48
+ * Info associated with mdast MDX JSX attribute value expression nodes by the
49
+ * ecosystem.
50
+ */
51
+ export interface MdxJsxAttributeValueExpressionData extends Data {
52
+ /**
53
+ * Program node from estree.
54
+ */
55
+ estree ?: Program | null | undefined
39
56
}
40
57
41
58
/**
@@ -46,17 +63,32 @@ export interface MdxJsxAttributeValueExpression extends MdastLiteral {
46
63
* ^^^^^^
47
64
* ```
48
65
*/
49
- export interface MdxJsxExpressionAttribute extends MdastLiteral {
66
+ export interface MdxJsxExpressionAttribute extends Node {
50
67
/**
51
68
* Node type.
52
69
*/
53
70
type : 'mdxJsxExpressionAttribute'
54
- data ?: {
55
- /**
56
- * Program node from estree.
57
- */
58
- estree ?: Program | null | undefined
59
- } & MdastLiteral [ 'data' ]
71
+
72
+ /**
73
+ * Value.
74
+ */
75
+ value : string
76
+
77
+ /**
78
+ * Data associated with the mdast MDX JSX expression attributes.
79
+ */
80
+ data ?: MdxJsxExpressionAttributeData | undefined
81
+ }
82
+
83
+ /**
84
+ * Info associated with mdast MDX JSX expression attribute nodes by the
85
+ * ecosystem.
86
+ */
87
+ export interface MdxJsxExpressionAttributeData extends Data {
88
+ /**
89
+ * Program node from estree.
90
+ */
91
+ estree ?: Program | null | undefined
60
92
}
61
93
62
94
/**
@@ -67,7 +99,7 @@ export interface MdxJsxExpressionAttribute extends MdastLiteral {
67
99
* ^^^^^
68
100
* ```
69
101
*/
70
- export interface MdxJsxAttribute extends MdastNode {
102
+ export interface MdxJsxAttribute extends Node {
71
103
/**
72
104
* Node type.
73
105
*/
@@ -80,8 +112,18 @@ export interface MdxJsxAttribute extends MdastNode {
80
112
* Attribute value.
81
113
*/
82
114
value ?: MdxJsxAttributeValueExpression | string | null | undefined
115
+ /**
116
+ * Data associated with the mdast MDX JSX attribute.
117
+ */
118
+ data ?: MdxJsxAttributeData | undefined
83
119
}
84
120
121
+ /**
122
+ * Info associated with mdast MDX JSX attribute nodes by the
123
+ * ecosystem.
124
+ */
125
+ export interface MdxJsxAttributeData extends Data { }
126
+
85
127
/**
86
128
* MDX JSX element node, occurring in flow (block).
87
129
*/
@@ -102,8 +144,18 @@ export interface MdxJsxFlowElement extends MdastParent {
102
144
* Content.
103
145
*/
104
146
children : Array < BlockContent | DefinitionContent >
147
+ /**
148
+ * Data associated with the mdast MDX JSX elements (flow).
149
+ */
150
+ data ?: MdxJsxFlowElementData | undefined
105
151
}
106
152
153
+ /**
154
+ * Info associated with mdast MDX JSX element (flow) nodes by the
155
+ * ecosystem.
156
+ */
157
+ export interface MdxJsxFlowElementData extends MdastData { }
158
+
107
159
/**
108
160
* MDX JSX element node, occurring in text (phrasing).
109
161
*/
@@ -124,8 +176,18 @@ export interface MdxJsxTextElement extends MdastParent {
124
176
* Content.
125
177
*/
126
178
children : PhrasingContent [ ]
179
+ /**
180
+ * Data associated with the mdast MDX JSX elements (text).
181
+ */
182
+ data ?: MdxJsxTextElementData | undefined
127
183
}
128
184
185
+ /**
186
+ * Info associated with mdast MDX JSX element (text) nodes by the
187
+ * ecosystem.
188
+ */
189
+ export interface MdxJsxTextElementData extends MdastData { }
190
+
129
191
/**
130
192
* MDX JSX element node, occurring in flow (block), for hast.
131
193
*/
@@ -146,8 +208,18 @@ export interface MdxJsxFlowElementHast extends HastParent {
146
208
* Content.
147
209
*/
148
210
children : ElementContent [ ]
211
+ /**
212
+ * Data associated with the hast MDX JSX elements (flow).
213
+ */
214
+ data ?: MdxJsxFlowElementHastData | undefined
149
215
}
150
216
217
+ /**
218
+ * Info associated with hast MDX JSX element (flow) nodes by the
219
+ * ecosystem.
220
+ */
221
+ export interface MdxJsxFlowElementHastData extends HastData { }
222
+
151
223
/**
152
224
* MDX JSX element node, occurring in text (phrasing), for hast.
153
225
*/
@@ -168,19 +240,25 @@ export interface MdxJsxTextElementHast extends HastParent {
168
240
* Content.
169
241
*/
170
242
children : ElementContent [ ]
243
+ /**
244
+ * Data associated with the hast MDX JSX elements (text).
245
+ */
246
+ data ?: MdxJsxTextElementHastData | undefined
171
247
}
172
248
249
+ /**
250
+ * Info associated with hast MDX JSX element (text) nodes by the
251
+ * ecosystem.
252
+ */
253
+ export interface MdxJsxTextElementHastData extends HastData { }
254
+
173
255
// Add nodes to mdast content.
174
256
declare module 'mdast' {
175
- interface RootContentMap {
257
+ interface BlockContentMap {
176
258
/**
177
259
* MDX JSX element node, occurring in flow (block).
178
260
*/
179
261
mdxJsxFlowElement : MdxJsxFlowElement
180
- /**
181
- * MDX JSX element node, occurring in text (phrasing).
182
- */
183
- mdxJsxTextElement : MdxJsxTextElement
184
262
}
185
263
186
264
interface PhrasingContentMap {
@@ -190,17 +268,21 @@ declare module 'mdast' {
190
268
mdxJsxTextElement : MdxJsxTextElement
191
269
}
192
270
193
- interface BlockContentMap {
271
+ interface RootContentMap {
194
272
/**
195
273
* MDX JSX element node, occurring in flow (block).
196
274
*/
197
275
mdxJsxFlowElement : MdxJsxFlowElement
276
+ /**
277
+ * MDX JSX element node, occurring in text (phrasing).
278
+ */
279
+ mdxJsxTextElement : MdxJsxTextElement
198
280
}
199
281
}
200
282
201
283
// Add nodes to hast content.
202
284
declare module 'hast' {
203
- interface RootContentMap {
285
+ interface ElementContentMap {
204
286
/**
205
287
* MDX JSX element node, occurring in text (phrasing).
206
288
*/
@@ -211,7 +293,7 @@ declare module 'hast' {
211
293
mdxJsxFlowElement : MdxJsxFlowElementHast
212
294
}
213
295
214
- interface ElementContentMap {
296
+ interface RootContentMap {
215
297
/**
216
298
* MDX JSX element node, occurring in text (phrasing).
217
299
*/
0 commit comments