@react-x11/components 0.5.0 → 0.6.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/README.md CHANGED
@@ -289,9 +289,20 @@ per top-level block on the raw source text, so appending to the tail
289
289
  re-renders the tail alone. `npm run examples:markdown` streams a document
290
290
  in live.
291
291
 
292
- MDX is on the roadmap, not in the box: the AST reserves a `component` node
293
- and the renderer is ordinary React composition, so user components can
294
- interleave including mid-stream once the parser learns the syntax.
292
+ **MDX, in block position.** `components={{ Chart }}` lets a document put a
293
+ component between two paragraphs, with markdown children, mid-stream and
294
+ evaluating nothing: an attribute is a string, `true`, or the `JSON.parse` of
295
+ a `{…}`. A tag is a component _iff its name is a key in that map_, so a
296
+ document that never passes the prop parses exactly as it did before, and one
297
+ from a stranger can only reach what you already exposed.
298
+
299
+ Adding `scope={{ quarters }}` is the second rung and a different statement:
300
+ `{…}` compiles, `{...spread}` works, and a brace in the prose renders its
301
+ value. There is no sandbox, so `components` decides what a document may
302
+ _reach_ and `scope` decides whether it may _compute_ — which matters when the
303
+ input is model output. A tag in the middle of a sentence is still text; the
304
+ inline half needs a `<richtext>` that can reserve advance width for an
305
+ element. [docs/prd-mdx.md](docs/prd-mdx.md) is the design record.
295
306
 
296
307
  ## HTML
297
308
 
@@ -1166,7 +1177,10 @@ Candidates to move here:
1166
1177
  - The 3D scene graph and a Three.js / react-three-fiber-shaped layer, with
1167
1178
  `<glarea>` itself staying in core.
1168
1179
  - `<Tabs>`, undecided — it may well stay in core.
1169
- - MDX support in `<Markdown>`see the note in that section.
1180
+ - The inline half of MDX a component in the middle of a sentence, which is
1181
+ gated on a `<richtext>` run that can reserve advance width for an embedded
1182
+ element. Block-position components and expressions have shipped;
1183
+ [docs/prd-mdx.md](docs/prd-mdx.md) has what is left.
1170
1184
  - A StatusNotifierItem host, beside `<TrayHost>` rather than inside it: the
1171
1185
  D-Bus way modern applications publish a tray icon. It pairs with core's
1172
1186
  `dbusmenu.js`, and a complete panel wants both.
package/dist/index.d.ts CHANGED
@@ -21,7 +21,7 @@ export { boundsOf as boundsOfPositions, cameraForBounds, distanceMetres, metresP
21
21
  export { OSM_ATTRIBUTION, decodePolyline, geoJsonOverlays, googleTileSource, osmRasterSource, osmVectorSource, openMapTilesStyle, shortbreadStyle, } from './maps/index.js';
22
22
  export type { FitBoundsOptions as MapFitBoundsOptions, LngLat, LngLatBounds, MapCamera, MapFrameStats, MapHandle, MapMarker, MapOverlay, MapPointerEvent, MapProps, MapSource, MapStyle, MapStyleLayer, MapViewProps, TileData, TileId, TileRequest, } from './maps/index.js';
23
23
  export { Markdown, parse as parseMarkdown } from './markdown/index.js';
24
- export type { MarkdownProps, MarkdownDocument, BlockNode, FenceInfo, InlineNode, ParseOptions, } from './markdown/index.js';
24
+ export type { AttributeValue, MarkdownProps, MarkdownDocument, BlockNode, ComponentBlock, ComponentInline, ExpressionInline, FenceInfo, InlineNode, ParseOptions, } from './markdown/index.js';
25
25
  export { Formula, FORMULA_ELEMENT, FormulaNode, useKatex, } from './formula/index.js';
26
26
  export type { FormulaProps, FormulaElementProps, FormulaLayout, KatexEngine, KatexNode, } from './formula/index.js';
27
27
  export { Html, useHtmlHandle } from './html/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,15 @@
1
1
  /** Inline content, inside a paragraph, heading, list item or table cell. */
2
- export type InlineNode = TextInline | CodeInline | EmphasisInline | LinkInline | BreakInline | ComponentInline;
2
+ export type InlineNode = TextInline | CodeInline | EmphasisInline | LinkInline | BreakInline | ComponentInline | ExpressionInline;
3
+ /**
4
+ * `{count}` in the middle of a sentence: unevaluated source, which the
5
+ * renderer compiles against its `scope` and turns into text. Only emitted
6
+ * when `ParseOptions.expressions` says so, so `{braces}` in an ordinary
7
+ * document remain the characters they have always been.
8
+ */
9
+ export interface ExpressionInline {
10
+ type: 'expression';
11
+ src: string;
12
+ }
3
13
  /** A run of plain text. Softbreaks arrive collapsed to spaces. */
4
14
  export interface TextInline {
5
15
  type: 'text';
@@ -32,18 +42,61 @@ export interface BreakInline {
32
42
  type: 'break';
33
43
  }
34
44
  /**
35
- * Reserved for MDX: `<Chart data={…} />` would parse to one of these. The
36
- * current parser never emits it; the renderer maps unknown names to plain
37
- * text so a future parser upgrade cannot crash an older renderer.
45
+ * An attribute's value. `literal` is what an attribute string or a `{json}`
46
+ * attribute resolves to at parse time; `expression` holds unevaluated source
47
+ * for the rung that compiles it, so that parsing stays pure and one AST can
48
+ * be rendered against two scopes (docs/prd-mdx.md, M2). The parser emits
49
+ * only `literal` today.
50
+ */
51
+ export type AttributeValue = {
52
+ kind: 'literal';
53
+ value: unknown;
54
+ } | {
55
+ kind: 'expression';
56
+ src: string;
57
+ };
58
+ /**
59
+ * A spread (`{...props}`) is an attribute with no name, so it is keyed
60
+ * `...0`, `...1`, … in the order it appeared. An attribute name cannot start
61
+ * with `.`, so these cannot collide with one; a renderer walking
62
+ * `Object.entries` in insertion order applies each spread where it was
63
+ * written, which is what decides whether it overrides `height` or `height`
64
+ * overrides it.
65
+ */
66
+ export declare const SPREAD_PREFIX = "...";
67
+ /**
68
+ * **Still reserved.** `<Badge/>` in the middle of a sentence parses to one of
69
+ * these — except that nothing emits them yet, because nothing can render
70
+ * them: a paragraph is laid out as a single `<richtext>`, and a `TextRun`
71
+ * has no way to say "reserve this much advance width for an element someone
72
+ * else paints". Giving it one is the inline half of MDX and is its own piece
73
+ * of work (baseline alignment, wrapping around the element, and what a
74
+ * selection dragged across it should copy).
75
+ *
76
+ * Kept in the union so the shape stays stable, and so a renderer written
77
+ * against it today cannot be broken by the parser learning to emit them.
38
78
  */
39
79
  export interface ComponentInline {
40
80
  type: 'component';
41
81
  name: string;
42
- attributes: Record<string, string>;
82
+ attributes: Record<string, AttributeValue>;
43
83
  children: InlineNode[];
44
84
  }
45
85
  /** Block-level content. */
46
- export type BlockNode = ParagraphBlock | HeadingBlock | CodeBlock | QuoteBlock | ListBlock | TableBlock | RuleBlock;
86
+ export type BlockNode = ParagraphBlock | HeadingBlock | CodeBlock | QuoteBlock | ListBlock | TableBlock | RuleBlock | ComponentBlock;
87
+ /**
88
+ * A component standing where a paragraph would: `<Chart data={…} />` on its
89
+ * own line, or `<Callout>` … `</Callout>` around blocks.
90
+ *
91
+ * Only emitted when `ParseOptions.isComponent` says the name is one — which
92
+ * is what keeps every document that renders today rendering the same way.
93
+ */
94
+ export interface ComponentBlock {
95
+ type: 'component';
96
+ name: string;
97
+ attributes: Record<string, AttributeValue>;
98
+ children: BlockNode[];
99
+ }
47
100
  export interface ParagraphBlock {
48
101
  type: 'paragraph';
49
102
  children: InlineNode[];
@@ -122,5 +175,26 @@ export interface ParseOptions {
122
175
  * underline or a rule) is held back. Pass false for text that is final.
123
176
  */
124
177
  partial?: boolean;
178
+ /**
179
+ * Whether `name` is a component this document may use. Absent — the
180
+ * default — means no tag is a component and `<Chart/>` stays the literal
181
+ * text it has always been, so turning MDX on is opt-in and turning it off
182
+ * is byte-for-byte the old behaviour.
183
+ *
184
+ * `<Markdown>` supplies one from its `components` prop. A dotted name
185
+ * (`Card.Header`) is passed through whole; resolving it is the caller's.
186
+ */
187
+ isComponent?: (name: string) => boolean;
188
+ /**
189
+ * Whether `{…}` may hold a JavaScript expression — in an attribute, as a
190
+ * `{...spread}`, or bare in the prose. Off by default, and off is the
191
+ * whole of rung 1: a `{…}` attribute must be JSON, and a brace in a
192
+ * paragraph is a brace.
193
+ *
194
+ * `<Markdown>` turns this on when it is given a `scope`, which is the prop
195
+ * that says the application accepts a document running code. Parsing still
196
+ * evaluates nothing — an expression is kept as source.
197
+ */
198
+ expressions?: boolean;
125
199
  }
126
200
  //# sourceMappingURL=ast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/markdown/ast.ts"],"names":[],"mappings":"AAOA,4EAA4E;AAC5E,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,UAAU,GACV,cAAc,GACd,UAAU,GACV,WAAW,GACX,eAAe,CAAC;AAEpB,kEAAkE;AAClE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,2BAA2B;AAC3B,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oDAAoD;AACpD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9B,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,uEAAuE;IACvE,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,2BAA2B;AAC3B,MAAM,MAAM,SAAS,GACjB,cAAc,GACd,YAAY,GACZ,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,CAAC;AAEd,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,qEAAqE;AACrE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,mEAAmE;IACnE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;AAE5D,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,oDAAoD;IACpD,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,wDAAwD;IACxD,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;IACvB,mEAAmE;IACnE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,4BAA4B;AAC5B,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB;;;;;OAKG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/markdown/ast.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,17 @@
1
1
  // The markdown AST `parse.ts` produces and `index.ts` renders. Deliberately
2
2
  // small: it is the GFM constructs this component draws, not a general
3
3
  // mdast — but it is shaped so that growing it stays additive. In particular
4
- // `component` is reserved for the MDX direction: a parser extension can emit
5
- // one without the renderer, the selection model or the caches changing shape
6
- // (see "MDX" in index.ts).
7
- export {};
4
+ // `component` is the MDX direction: `ComponentBlock` is parsed and rendered
5
+ // (docs/prd-mdx.md, M1), and `ComponentInline` is still reserved see the
6
+ // note on it for why the inline half needs machinery `<richtext>` does not
7
+ // have yet.
8
+ /**
9
+ * A spread (`{...props}`) is an attribute with no name, so it is keyed
10
+ * `...0`, `...1`, … in the order it appeared. An attribute name cannot start
11
+ * with `.`, so these cannot collide with one; a renderer walking
12
+ * `Object.entries` in insertion order applies each spread where it was
13
+ * written, which is what decides whether it overrides `height` or `height`
14
+ * overrides it.
15
+ */
16
+ export const SPREAD_PREFIX = '...';
8
17
  //# sourceMappingURL=ast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/markdown/ast.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,sEAAsE;AACtE,4EAA4E;AAC5E,6EAA6E;AAC7E,6EAA6E;AAC7E,2BAA2B"}
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../src/markdown/ast.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,sEAAsE;AACtE,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,2EAA2E;AAC3E,YAAY;AAqEZ;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { Document } from './ast.js';
2
+ /**
3
+ * What a renderer calls: source in, value out, `undefined` if it did not
4
+ * work. Never throws — a document being edited is full of expressions that
5
+ * do not work yet.
6
+ */
7
+ export type Evaluate = (src: string) => unknown;
8
+ /**
9
+ * An evaluator over `scope`. The keys are read once, so a scope mutated in
10
+ * place after this is called keeps its old shape — the same contract every
11
+ * other seam here has, and the reason the prop doc asks for a stable object.
12
+ */
13
+ export declare function evaluator(scope: Record<string, unknown>): Evaluate;
14
+ /**
15
+ * Only the tests need to reach in: a compile cache that survived between
16
+ * them would make one test's expression another's, and the warn-once flag
17
+ * would hide the second failure anyone asserted on.
18
+ */
19
+ export declare function clearExpressionCache(): void;
20
+ /**
21
+ * The document with its expressions evaluated. `raws` is carried over
22
+ * untouched: it is the block cache's key, and what changed is the values an
23
+ * expression produced, not the text that produced them — a change of `scope`
24
+ * invalidates that cache through its own identity instead.
25
+ */
26
+ export declare function resolveExpressions(doc: Document, evaluate: Evaluate): Document;
27
+ //# sourceMappingURL=expressions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/markdown/expressions.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAa,QAAQ,EAAc,MAAM,UAAU,CAAC;AA8DhE;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;AAEhD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAalE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C;AAgGD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,QAAQ,GACjB,QAAQ,CAGV"}
@@ -0,0 +1,203 @@
1
+ // Compiling `{…}` — the rung where a document runs code (docs/prd-mdx.md,
2
+ // M2), and the one place in this component that calls `new Function`.
3
+ //
4
+ // It is a small file on purpose. Everything hard about MDX expressions was
5
+ // decided elsewhere: the parser holds an expression as *source* rather than
6
+ // a value, so a parse is pure and one AST can be rendered against two
7
+ // scopes; and `<Markdown>` only turns any of this on when the application
8
+ // passes a `scope`, which is the prop that means "I accept that this
9
+ // document may compute". What is left here is compiling the source once, and
10
+ // not letting a half-typed expression take down a document that is still
11
+ // being typed.
12
+ //
13
+ // **There is no sandbox.** `new Function` runs in this process with this
14
+ // process's authority. That is why the gate is a prop, and why the docs say
15
+ // in as few words as they can: do not pass `scope` alongside a document you
16
+ // did not write.
17
+ /**
18
+ * Keyed on the scope's shape *and* the source, because a compiled function
19
+ * closes over its parameter names. Bounded the way `richtext/node.ts` bounds
20
+ * its layout cache: a streaming document recompiles its tail on every chunk,
21
+ * and an unbounded map would hold every intermediate spelling of an
22
+ * expression that was being typed.
23
+ */
24
+ const CACHE = new Map();
25
+ const LIMIT = 256;
26
+ let warned = false;
27
+ /**
28
+ * Say so, once, when an expression does not work out. A document that
29
+ * silently loses a value should not be a mystery — and saying it on every
30
+ * frame of a streaming render would be worse than saying nothing.
31
+ *
32
+ * `process` and `console` come off `globalThis` because `src/` compiles with
33
+ * `types: []` — a Node global that wandered in would fail the build rather
34
+ * than become an implicit `@types/node` dependency.
35
+ */
36
+ function warnFailed(src, error) {
37
+ if (warned)
38
+ return;
39
+ warned = true;
40
+ const g = globalThis;
41
+ if (g.process?.env?.NODE_ENV === 'production')
42
+ return;
43
+ g.console?.warn('@react-x11/components: a markdown expression did not evaluate, so it ' +
44
+ `rendered as nothing: {${src}}`, error);
45
+ }
46
+ function compile(src, keys) {
47
+ const key = `${keys.join(',')} ${src}`;
48
+ const hit = CACHE.get(key);
49
+ if (hit !== undefined)
50
+ return hit;
51
+ let compiled = null;
52
+ try {
53
+ // `return (…)` rather than a bare body: an expression is what the braces
54
+ // promised, and the parentheses keep an object literal an object literal
55
+ // rather than a block.
56
+ compiled = new Function(...keys, `"use strict"; return (${src});`);
57
+ }
58
+ catch (error) {
59
+ // A syntax error is the ordinary state of an expression being typed.
60
+ warnFailed(src, error);
61
+ }
62
+ if (CACHE.size >= LIMIT)
63
+ CACHE.clear();
64
+ CACHE.set(key, compiled);
65
+ return compiled;
66
+ }
67
+ /**
68
+ * An evaluator over `scope`. The keys are read once, so a scope mutated in
69
+ * place after this is called keeps its old shape — the same contract every
70
+ * other seam here has, and the reason the prop doc asks for a stable object.
71
+ */
72
+ export function evaluator(scope) {
73
+ const keys = Object.keys(scope);
74
+ const values = keys.map((k) => scope[k]);
75
+ return (src) => {
76
+ const fn = compile(src, keys);
77
+ if (!fn)
78
+ return undefined;
79
+ try {
80
+ return fn(...values);
81
+ }
82
+ catch (error) {
83
+ warnFailed(src, error);
84
+ return undefined;
85
+ }
86
+ };
87
+ }
88
+ /**
89
+ * Only the tests need to reach in: a compile cache that survived between
90
+ * them would make one test's expression another's, and the warn-once flag
91
+ * would hide the second failure anyone asserted on.
92
+ */
93
+ export function clearExpressionCache() {
94
+ CACHE.clear();
95
+ warned = false;
96
+ }
97
+ // --- resolving a parsed document ------------------------------------------
98
+ /**
99
+ * A copy of `nodes` with every `expression` replaced by the text it
100
+ * evaluates to. Primitives stringify; anything else — an object, an array, a
101
+ * React element — renders as nothing, because a paragraph is text and there
102
+ * is nowhere in a text run to put an element (see "The inline half" in
103
+ * docs/prd-mdx.md). `null` and `undefined` are nothing on purpose, so
104
+ * `{maybe}` reads as absent rather than as the word "undefined".
105
+ */
106
+ function resolveInline(nodes, evaluate) {
107
+ let changed = false;
108
+ const out = [];
109
+ for (const node of nodes) {
110
+ if (node.type === 'expression') {
111
+ changed = true;
112
+ const value = evaluate(node.src);
113
+ const text = value == null ||
114
+ typeof value === 'object' ||
115
+ typeof value === 'function'
116
+ ? ''
117
+ : String(value);
118
+ if (text)
119
+ out.push({ type: 'text', text });
120
+ continue;
121
+ }
122
+ if ('children' in node) {
123
+ const children = resolveInline(node.children, evaluate);
124
+ if (children !== node.children) {
125
+ changed = true;
126
+ out.push({ ...node, children });
127
+ continue;
128
+ }
129
+ }
130
+ out.push(node);
131
+ }
132
+ return changed ? out : nodes;
133
+ }
134
+ function resolveBlocks(blocks, evaluate) {
135
+ let changed = false;
136
+ const out = blocks.map((block) => {
137
+ switch (block.type) {
138
+ case 'paragraph':
139
+ case 'heading': {
140
+ const children = resolveInline(block.children, evaluate);
141
+ if (children === block.children)
142
+ return block;
143
+ changed = true;
144
+ return { ...block, children };
145
+ }
146
+ case 'quote':
147
+ case 'component': {
148
+ const children = resolveBlocks(block.children, evaluate);
149
+ if (children === block.children)
150
+ return block;
151
+ changed = true;
152
+ return { ...block, children };
153
+ }
154
+ case 'list': {
155
+ let itemsChanged = false;
156
+ const items = block.items.map((item) => {
157
+ const children = resolveBlocks(item.children, evaluate);
158
+ if (children === item.children)
159
+ return item;
160
+ itemsChanged = true;
161
+ return { ...item, children };
162
+ });
163
+ if (!itemsChanged)
164
+ return block;
165
+ changed = true;
166
+ return { ...block, items };
167
+ }
168
+ case 'table': {
169
+ let rowsChanged = false;
170
+ const rows = block.rows.map((row) => row.map((cell) => {
171
+ const next = resolveInline(cell, evaluate);
172
+ if (next !== cell)
173
+ rowsChanged = true;
174
+ return next;
175
+ }));
176
+ const header = block.header.map((cell) => {
177
+ const next = resolveInline(cell, evaluate);
178
+ if (next !== cell)
179
+ rowsChanged = true;
180
+ return next;
181
+ });
182
+ if (!rowsChanged)
183
+ return block;
184
+ changed = true;
185
+ return { ...block, header, rows };
186
+ }
187
+ default:
188
+ return block;
189
+ }
190
+ });
191
+ return changed ? out : blocks;
192
+ }
193
+ /**
194
+ * The document with its expressions evaluated. `raws` is carried over
195
+ * untouched: it is the block cache's key, and what changed is the values an
196
+ * expression produced, not the text that produced them — a change of `scope`
197
+ * invalidates that cache through its own identity instead.
198
+ */
199
+ export function resolveExpressions(doc, evaluate) {
200
+ const blocks = resolveBlocks(doc.blocks, evaluate);
201
+ return blocks === doc.blocks ? doc : { blocks, raws: doc.raws };
202
+ }
203
+ //# sourceMappingURL=expressions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressions.js","sourceRoot":"","sources":["../../src/markdown/expressions.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
- import type { ReactElement, ReactNode } from 'react';
1
+ import type { ComponentType, ReactElement, ReactNode } from 'react';
2
2
  import type { DrawnNode, MouseEvent as X11MouseEvent } from 'react-x11';
3
3
  import type { Style } from 'react-x11/style';
4
4
  import type { Language } from '../code-language/index.js';
5
- export type { BlockNode, InlineNode, Document as MarkdownDocument, ParseOptions, } from './ast.js';
5
+ export type { AttributeValue, BlockNode, ComponentBlock, ComponentInline, ExpressionInline, InlineNode, Document as MarkdownDocument, ParseOptions, } from './ast.js';
6
+ export { SPREAD_PREFIX } from './ast.js';
7
+ export { scanTag } from './tags.js';
8
+ export type { ScannedTag, ScanResult } from './tags.js';
6
9
  export { parse, parseInline } from './parse.js';
7
10
  /** What a fence renderer is handed — see `MarkdownProps.fences`. */
8
11
  export interface FenceInfo {
@@ -69,6 +72,62 @@ export interface MarkdownProps {
69
72
  * stable identity — a new object per render defeats the block cache.
70
73
  */
71
74
  fences?: Record<string, (fence: FenceInfo) => ReactNode>;
75
+ /**
76
+ * Components a document may name — the MDX gate (docs/prd-mdx.md).
77
+ *
78
+ * A tag is a component **iff its name is a key here**: there is no
79
+ * capitalisation rule and no HTML fallback, so `<Chart/>` in a document
80
+ * with no `Chart` key is the literal text it has always been, and a
81
+ * document that never passes this prop parses exactly as it did before
82
+ * the feature existed.
83
+ *
84
+ * ```tsx
85
+ * <Markdown source={doc} components={{ Chart, Callout }} />
86
+ * ```
87
+ *
88
+ * A dotted name resolves flat first (`components['Card.Header']`), then by
89
+ * walking (`components.Card.Header`), so compound components work.
90
+ *
91
+ * **Nothing is evaluated.** An attribute is a string, `true` for a bare
92
+ * name, or the `JSON.parse` of a `{…}`; a brace that is not JSON makes the
93
+ * tag unreadable and it stays text. That is what makes this safe to point
94
+ * at a document you did not write — which, for this component, is the
95
+ * usual case.
96
+ *
97
+ * Block position only: a tag on its own line(s) is a component, and one in
98
+ * the middle of a sentence is still text. See `ComponentInline` in ast.ts.
99
+ *
100
+ * Give the map a stable identity — a new object per render defeats the
101
+ * block cache, the same way a new `fences` map does.
102
+ */
103
+ components?: Record<string, ComponentType<Record<string, unknown>>>;
104
+ /**
105
+ * Bindings that `{…}` in this document may read — and, by passing it, the
106
+ * statement that this document may **run code**.
107
+ *
108
+ * ```tsx
109
+ * <Markdown source={doc} components={{ Chart }} scope={{ quarters }} />
110
+ * ```
111
+ *
112
+ * With it, an attribute `{…}` that is not JSON is compiled instead of
113
+ * making the tag text, `{...spread}` works, and `{count}` in the middle of
114
+ * a paragraph renders the value. Without it none of those exist and
115
+ * nothing is ever compiled.
116
+ *
117
+ * **There is no sandbox.** Expressions run through `new Function`, in this
118
+ * process, with this process's authority. `components` decides what a
119
+ * document may *reach*; this decides whether it may *compute* — so do not
120
+ * pass it alongside a document you did not write, which for this component
121
+ * usually means anything a model produced.
122
+ *
123
+ * An expression that throws, or does not compile, renders as nothing and
124
+ * warns once. A value that is not a primitive renders as nothing in prose:
125
+ * there is nowhere in a line of text to put an element.
126
+ *
127
+ * Stable identity, as with `components` — the keys are read once, and a new
128
+ * object per render re-parses the document.
129
+ */
130
+ scope?: Record<string, unknown>;
72
131
  /** The root `<box>`'s style — width, padding, margins, `overflow`. */
73
132
  style?: Style | Style[];
74
133
  'data-testname'?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/markdown/index.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;AAExE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAsB7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAQ1D,YAAY,EACV,SAAS,EACT,UAAU,EACV,QAAQ,IAAI,gBAAgB,EAC5B,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAYhD,oEAAoE;AACpE,MAAM,WAAW,SAAS;IACxB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb;uCACmC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC9D,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC;IACnD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC;IACzD,sEAAsE;IACtE,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA8YD;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CAiH3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/markdown/index.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;AAExE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAuB7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAW1D,YAAY,EACV,cAAc,EACd,SAAS,EACT,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,QAAQ,IAAI,gBAAgB,EAC5B,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAYhD,oEAAoE;AACpE,MAAM,WAAW,SAAS;IACxB,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb;uCACmC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IAC9D,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC;IACnD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC;IACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,sEAAsE;IACtE,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AA6dD;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CAwJ3D"}