@carbon/ai-chat-components 1.4.0 → 1.5.0-rc.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.
Files changed (96) hide show
  1. package/custom-elements.json +1262 -709
  2. package/es/components/chat-history/src/chat-history.scss.js +1 -1
  3. package/es/components/chat-history/src/history-panel-item.d.ts +14 -0
  4. package/es/components/chat-history/src/history-panel-item.js +30 -0
  5. package/es/components/chat-history/src/history-panel-item.js.map +1 -1
  6. package/es/components/code-snippet/src/code-snippet.d.ts +5 -0
  7. package/es/components/code-snippet/src/code-snippet.js +17 -5
  8. package/es/components/code-snippet/src/code-snippet.js.map +1 -1
  9. package/es/components/feedback/src/feedback.d.ts +4 -0
  10. package/es/components/feedback/src/feedback.js +6 -4
  11. package/es/components/feedback/src/feedback.js.map +1 -1
  12. package/es/components/markdown/index.d.ts +3 -1
  13. package/es/components/markdown/index.js +1 -1
  14. package/es/components/markdown/src/markdown-renderer-types.d.ts +100 -0
  15. package/es/components/markdown/src/markdown-renderer-types.js +8 -0
  16. package/es/components/markdown/src/markdown-renderer-types.js.map +1 -0
  17. package/es/components/markdown/src/markdown-renderer.d.ts +14 -64
  18. package/es/components/markdown/src/markdown-renderer.js +110 -131
  19. package/es/components/markdown/src/markdown-renderer.js.map +1 -1
  20. package/es/components/markdown/src/markdown-token-tree.d.ts +50 -5
  21. package/es/components/markdown/src/markdown-token-tree.js +182 -47
  22. package/es/components/markdown/src/markdown-token-tree.js.map +1 -1
  23. package/es/components/markdown/src/markdown.d.ts +49 -1
  24. package/es/components/markdown/src/markdown.js +317 -106
  25. package/es/components/markdown/src/markdown.js.map +1 -1
  26. package/es/components/markdown/src/plugins/markdown-it-task-lists.js +2 -5
  27. package/es/components/markdown/src/plugins/markdown-it-task-lists.js.map +1 -1
  28. package/es/components/markdown/src/utils/lit-directives.d.ts +17 -0
  29. package/es/components/markdown/src/utils/lit-directives.js +84 -0
  30. package/es/components/markdown/src/utils/lit-directives.js.map +1 -0
  31. package/es/components/markdown/src/utils/plugin-fallback.d.ts +33 -0
  32. package/es/components/markdown/src/utils/plugin-fallback.js +216 -0
  33. package/es/components/markdown/src/utils/plugin-fallback.js.map +1 -0
  34. package/es/components/markdown/src/utils/streaming-table.d.ts +28 -0
  35. package/es/components/markdown/src/utils/streaming-table.js +86 -0
  36. package/es/components/markdown/src/utils/streaming-table.js.map +1 -0
  37. package/es/components/markdown/src/utils/table-helpers.d.ts +17 -0
  38. package/es/components/markdown/src/utils/table-helpers.js +104 -2
  39. package/es/components/markdown/src/utils/table-helpers.js.map +1 -1
  40. package/es/components/table/src/table.js +4 -1
  41. package/es/components/table/src/table.js.map +1 -1
  42. package/es/components/workspace-shell/src/workspace-shell.scss.js +1 -1
  43. package/es/react/markdown.d.ts +46 -2
  44. package/es/react/markdown.js +177 -20
  45. package/es/react/markdown.js.map +1 -1
  46. package/es-custom/components/chat-history/src/chat-history.scss.js +1 -1
  47. package/es-custom/components/chat-history/src/history-panel-item.d.ts +14 -0
  48. package/es-custom/components/chat-history/src/history-panel-item.js +30 -0
  49. package/es-custom/components/chat-history/src/history-panel-item.js.map +1 -1
  50. package/es-custom/components/code-snippet/src/code-snippet.d.ts +5 -0
  51. package/es-custom/components/code-snippet/src/code-snippet.js +17 -5
  52. package/es-custom/components/code-snippet/src/code-snippet.js.map +1 -1
  53. package/es-custom/components/feedback/src/feedback.d.ts +4 -0
  54. package/es-custom/components/feedback/src/feedback.js +6 -4
  55. package/es-custom/components/feedback/src/feedback.js.map +1 -1
  56. package/es-custom/components/markdown/index.d.ts +3 -1
  57. package/es-custom/components/markdown/index.js +1 -1
  58. package/es-custom/components/markdown/src/markdown-renderer-types.d.ts +100 -0
  59. package/es-custom/components/markdown/src/markdown-renderer-types.js +8 -0
  60. package/es-custom/components/markdown/src/markdown-renderer-types.js.map +1 -0
  61. package/es-custom/components/markdown/src/markdown-renderer.d.ts +14 -64
  62. package/es-custom/components/markdown/src/markdown-renderer.js +110 -131
  63. package/es-custom/components/markdown/src/markdown-renderer.js.map +1 -1
  64. package/es-custom/components/markdown/src/markdown-token-tree.d.ts +50 -5
  65. package/es-custom/components/markdown/src/markdown-token-tree.js +182 -47
  66. package/es-custom/components/markdown/src/markdown-token-tree.js.map +1 -1
  67. package/es-custom/components/markdown/src/markdown.d.ts +49 -1
  68. package/es-custom/components/markdown/src/markdown.js +317 -106
  69. package/es-custom/components/markdown/src/markdown.js.map +1 -1
  70. package/es-custom/components/markdown/src/plugins/markdown-it-task-lists.js +2 -5
  71. package/es-custom/components/markdown/src/plugins/markdown-it-task-lists.js.map +1 -1
  72. package/es-custom/components/markdown/src/utils/lit-directives.d.ts +17 -0
  73. package/es-custom/components/markdown/src/utils/lit-directives.js +84 -0
  74. package/es-custom/components/markdown/src/utils/lit-directives.js.map +1 -0
  75. package/es-custom/components/markdown/src/utils/plugin-fallback.d.ts +33 -0
  76. package/es-custom/components/markdown/src/utils/plugin-fallback.js +216 -0
  77. package/es-custom/components/markdown/src/utils/plugin-fallback.js.map +1 -0
  78. package/es-custom/components/markdown/src/utils/streaming-table.d.ts +28 -0
  79. package/es-custom/components/markdown/src/utils/streaming-table.js +86 -0
  80. package/es-custom/components/markdown/src/utils/streaming-table.js.map +1 -0
  81. package/es-custom/components/markdown/src/utils/table-helpers.d.ts +17 -0
  82. package/es-custom/components/markdown/src/utils/table-helpers.js +104 -2
  83. package/es-custom/components/markdown/src/utils/table-helpers.js.map +1 -1
  84. package/es-custom/components/table/src/table.js +4 -1
  85. package/es-custom/components/table/src/table.js.map +1 -1
  86. package/es-custom/components/workspace-shell/src/workspace-shell.scss.js +1 -1
  87. package/es-custom/react/markdown.d.ts +46 -2
  88. package/es-custom/react/markdown.js +177 -20
  89. package/es-custom/react/markdown.js.map +1 -1
  90. package/package.json +5 -4
  91. package/es/components/markdown/src/utils.d.ts +0 -4
  92. package/es/components/markdown/src/utils.js +0 -25
  93. package/es/components/markdown/src/utils.js.map +0 -1
  94. package/es-custom/components/markdown/src/utils.d.ts +0 -4
  95. package/es-custom/components/markdown/src/utils.js +0 -25
  96. package/es-custom/components/markdown/src/utils.js.map +0 -1
@@ -6,10 +6,9 @@
6
6
  */
7
7
 
8
8
  import DOMPurify from 'dompurify';
9
- import { nothing, render, html } from 'lit';
9
+ import { html } from 'lit';
10
10
  import { repeat } from 'lit/directives/repeat.js';
11
11
  import { unsafeHTML } from 'lit/directives/unsafe-html.js';
12
- import { directive, Directive, PartType } from 'lit/directive.js';
13
12
  import '@carbon/web-components/es-custom/components/list/index.js';
14
13
  import '@carbon/web-components/es-custom/components/checkbox/index.js';
15
14
  import '../../code-snippet/src/code-snippet.js';
@@ -19,8 +18,10 @@ import '../../card/src/card-footer.js';
19
18
  import '../../card/src/card-steps.js';
20
19
  import '../../table/src/table.js';
21
20
  import { defaultLineCountText } from '../../code-snippet/src/formatters.js';
22
- import { extractTableData } from './utils/table-helpers.js';
23
- import { HTML_CONTAINER_SLOT, combineConsecutiveHtmlInline, combineSplitHtmlBlocks } from './utils/html-helpers.js';
21
+ import { renderTable } from './utils/table-helpers.js';
22
+ import { combineConsecutiveHtmlInline, combineSplitHtmlBlocks } from './utils/html-helpers.js';
23
+ import { sanitizeHtmlContent, htmlContainer, spread } from './utils/lit-directives.js';
24
+ import { shouldDelegateToPluginRule, renderFallback, isNativelyHandled } from './utils/plugin-fallback.js';
24
25
 
25
26
  /*
26
27
  * Copyright IBM Corp. 2025, 2026
@@ -30,67 +31,33 @@ import { HTML_CONTAINER_SLOT, combineConsecutiveHtmlInline, combineSplitHtmlBloc
30
31
  *
31
32
  * @license
32
33
  */
33
- // Generic attribute spread for Lit templates
34
- class SpreadAttrs extends Directive {
35
- render(_attrs) {
36
- return nothing;
37
- }
38
- update(part, [attrs]) {
39
- const el = part.element;
40
- for (const [k, v] of Object.entries(attrs ?? {})) {
41
- if (v === false || v === null || v === undefined) {
42
- el.removeAttribute(k);
43
- }
44
- else if (v === true) {
45
- el.setAttribute(k, "");
46
- }
47
- else {
48
- el.setAttribute(k, String(v));
49
- }
50
- }
51
- return nothing;
52
- }
53
- }
54
- const spread = directive(SpreadAttrs);
55
- const sanitizeHtmlContent = (content) => DOMPurify.sanitize(content, {
56
- ADD_ATTR: ["data-aichat-markdown"],
57
- CUSTOM_ELEMENT_HANDLING: {
58
- tagNameCheck: () => true, // Allow custom elements
59
- attributeNameCheck: () => true,
60
- allowCustomizedBuiltInElements: true,
61
- },
62
- });
63
- class HtmlContainer extends Directive {
64
- constructor(partInfo) {
65
- super(partInfo);
66
- this.slotElement = null;
67
- this.lastOpeningHtml = "";
68
- if (partInfo.type !== PartType.ELEMENT) {
69
- throw new Error("HtmlContainer must be used on an element");
70
- }
71
- }
72
- render(_openingHtml, _childTemplate, _sanitize) {
73
- return nothing;
74
- }
75
- update(part, [openingHtml, childTemplate, sanitize]) {
76
- const host = part.element;
77
- if (!this.slotElement || this.lastOpeningHtml !== openingHtml) {
78
- this.lastOpeningHtml = openingHtml;
79
- let content = `${openingHtml}${HTML_CONTAINER_SLOT}`;
80
- if (sanitize && content) {
81
- content = sanitizeHtmlContent(content);
82
- }
83
- const fragment = document.createRange().createContextualFragment(content);
84
- host.replaceChildren(...Array.from(fragment.childNodes));
85
- this.slotElement = host.querySelector("[data-aichat-markdown]");
86
- }
87
- if (this.slotElement) {
88
- render(childTemplate, this.slotElement);
89
- }
90
- return nothing;
91
- }
34
+ /**
35
+ * Walks a `TokenTree` and emits a Lit `TemplateResult` plus a batch of {@link MarkdownRendererSlotDescriptor} records the markdown element consumes during its `updated()` reconcile. External callers should go through {@link renderMarkdownTree} so the batch isn't accidentally dropped.
36
+ *
37
+ * ### Dispatch precedence
38
+ *
39
+ * Per token, in order:
40
+ *
41
+ * 1. **Consumer override** — `options.customRenderers?.[kind]` for `kind` in `{ table, codeBlock }`. The renderer emits a named `<slot>` placeholder and records a descriptor; the markdown element's `updated()` invokes the consumer callback later.
42
+ * 2. **Plugin-overridden rule** — `shouldDelegateToPluginRule(token, md)` is true when a user-supplied markdown-it plugin overrode the renderer rule for one of the curated leaf tokens in `PLUGIN_DELEGABLE_TOKEN_TYPES` (`fence`, `image`, `code_inline`, `html_block`). The token routes through `renderFallback` and surfaces as a `pluginFallback` descriptor.
43
+ * 3. **Native Lit dispatch** — the hand-written `renderWithStaticTag` switch. Kept flat (rather than a tag-to-renderer map) so the per-tag exceptions — task-list passthrough, Carbon `cds-custom-unordered-list` / `cds-custom-ordered-list` wrappers, automatic `target="_blank"` on `<a>`, image plugin delegation — stay easy to grep.
44
+ * 4. **Unknown plugin-introduced token** — anything not natively handled falls through to `renderFallback`, so plugins that register `md.renderer.rules[type]` (footnote, deflist, custom containers, emoji) just work.
45
+ *
46
+ * ### Slot contract
47
+ *
48
+ * {@link MarkdownRendererSlotDescriptor} (defined in `./markdown-renderer-types.ts`) is the bridge between this module and `./markdown.ts`. This module appends descriptors via `recordCustomRender`; the markdown element's `reconcileCustomRendererHosts` consumes them, invokes consumer callbacks (or adopts plugin-fallback HTML) and attaches the result as a light-DOM `<div slot="…">` host (or `<span>` for inline plugin output).
49
+ */
50
+ /**
51
+ * Stable, parent-scoped slot name for an overridable token. Uses `startLine`
52
+ * (not the full `token.map`) so the name doesn't change when the token's
53
+ * `endLine` advances during streaming. The `currentIndex` from the parent
54
+ * context disambiguates siblings on the same start line (rare but possible).
55
+ */
56
+ function slotNameFor(kind, token, options) {
57
+ const startLine = token.map?.[0] ?? 0;
58
+ const index = options.context?.currentIndex ?? 0;
59
+ return `cds-custom-aichat-markdown-renderer-${kind}-${startLine}-${index}`;
92
60
  }
93
- const htmlContainer = directive(HtmlContainer);
94
61
  function renderChildTokenTrees(children, options, childContext) {
95
62
  const normalizedChildren = combineConsecutiveHtmlInline(combineSplitHtmlBlocks(children));
96
63
  // Multiple or complex children: use repeat for stable keying
@@ -115,14 +82,40 @@ function renderChildTokenTrees(children, options, childContext) {
115
82
  return result ?? html ``;
116
83
  })}`;
117
84
  }
85
+ /**
86
+ * Top-level entry: renders a markdown token tree to a Lit `TemplateResult`
87
+ * and returns the batch of custom-renderer slot descriptors collected along
88
+ * the way. Callers receive both pieces in one call so the batch can't be
89
+ * accidentally dropped.
90
+ */
91
+ function renderMarkdownTree(node, options) {
92
+ const batch = [];
93
+ let pluginSlotIndex = 0;
94
+ const template = renderTokenTree(node, {
95
+ ...options,
96
+ recordCustomRender: (descriptor) => batch.push(descriptor),
97
+ pluginSlotCounter: { next: () => pluginSlotIndex++ },
98
+ });
99
+ return { template, batch };
100
+ }
118
101
  /**
119
102
  * Converts TokenTree to Lit TemplateResult.
103
+ *
104
+ * Recursive renderer; external callers should use {@link renderMarkdownTree}
105
+ * which collects the slot-descriptor batch.
120
106
  */
121
107
  function renderTokenTree(node, options) {
122
108
  const { token, children } = node;
123
109
  const { context, sanitize } = options;
124
110
  // Handle raw HTML blocks and inline HTML
125
111
  if (token.type === "html_block" || token.type === "html_inline") {
112
+ // Plugin-overridden html_block rules (rare but supported) — route through
113
+ // the plugin's renderer before our default unsafeHTML pass-through.
114
+ if (token.type === "html_block" &&
115
+ shouldDelegateToPluginRule(token, options.md) &&
116
+ options.md) {
117
+ return renderFallback(token, node, options.md, sanitize, options);
118
+ }
126
119
  let content = token.content || "";
127
120
  // Apply HTML sanitization if requested
128
121
  if (sanitize && content) {
@@ -145,18 +138,22 @@ function renderTokenTree(node, options) {
145
138
  }
146
139
  // Handle inline code spans
147
140
  if (token.type === "code_inline") {
141
+ if (shouldDelegateToPluginRule(token, options.md) && options.md) {
142
+ return renderFallback(token, node, options.md, sanitize, options);
143
+ }
148
144
  return html `<code>${token.content}</code>`;
149
145
  }
150
146
  // Handle fenced code blocks
151
147
  if (token.type === "fence") {
152
148
  const language = token.info?.trim() ?? "";
153
149
  const { codeSnippetHighlight = true, codeSnippetShowLessText, codeSnippetShowMoreText, codeSnippetCopyButtonTooltipContent, codeSnippetGetLineCountText = defaultLineCountText, codeSnippetAriaLabelReadOnly, codeSnippetAriaLabelEditable, } = options;
154
- return html `<cds-custom-aichat-card is-flush>
150
+ const defaultTemplate = html `<cds-custom-aichat-card is-flush>
155
151
  <div slot="body">
156
152
  <cds-custom-aichat-code-snippet
157
153
  data-rounded
158
154
  .language=${language}
159
155
  .highlight=${codeSnippetHighlight}
156
+ .detectLanguage=${true}
160
157
  .showLessText=${codeSnippetShowLessText}
161
158
  .showMoreText=${codeSnippetShowMoreText}
162
159
  .copyButtonTooltipContent=${codeSnippetCopyButtonTooltipContent}
@@ -167,6 +164,27 @@ function renderTokenTree(node, options) {
167
164
  ></cds-custom-aichat-code-snippet>
168
165
  </div>
169
166
  </cds-custom-aichat-card>`;
167
+ if (options.customRenderers?.codeBlock) {
168
+ const slotName = slotNameFor("codeBlock", token, options);
169
+ options.recordCustomRender?.({
170
+ slotName,
171
+ kind: "codeBlock",
172
+ token: token,
173
+ node,
174
+ data: {
175
+ language,
176
+ code: token.content ?? "",
177
+ isStreaming: !!options.streaming,
178
+ },
179
+ });
180
+ return html `<slot name=${slotName}>${defaultTemplate}</slot>`;
181
+ }
182
+ // Honor user-plugin `fence` overrides (markdown-it-mermaid, syntax
183
+ // highlighters, etc.). customRenderer slot above wins when set.
184
+ if (shouldDelegateToPluginRule(token, options.md) && options.md) {
185
+ return renderFallback(token, node, options.md, sanitize, options);
186
+ }
187
+ return defaultTemplate;
170
188
  }
171
189
  // Handle structural elements (paragraphs, headings, lists, etc.)
172
190
  const tag = token.tag;
@@ -202,6 +220,12 @@ function renderTokenTree(node, options) {
202
220
  else {
203
221
  content = renderChildTokenTrees(children, options, childContext);
204
222
  }
223
+ // Unknown plugin-introduced tokens (no tag we recognize) — defer to
224
+ // markdown-it's renderer so plugins that register md.renderer.rules[type]
225
+ // (footnote, emoji, deflist, container, etc.) just work.
226
+ if (!tag && options.md && !isNativelyHandled(token)) {
227
+ return renderFallback(token, node, options.md, sanitize, options);
228
+ }
205
229
  // Handle tokens without HTML tags (just return content)
206
230
  if (!tag) {
207
231
  return content;
@@ -282,7 +306,7 @@ function renderWithStaticTag(tag, token, content, attrs, options, _context, node
282
306
  case "cds-custom-checkbox": {
283
307
  const { checked, disabled, ...otherAttrs } = attrs;
284
308
  const isChecked = checked === "true";
285
- const isDisabled = disabled === undefined ? true : disabled === "" || disabled === "true";
309
+ const isDisabled = disabled === undefined ? false : disabled === "" || disabled === "true";
286
310
  return html `<cds-custom-checkbox
287
311
  ?checked=${isChecked}
288
312
  ?disabled=${isDisabled}
@@ -339,80 +363,35 @@ function renderWithStaticTag(tag, token, content, attrs, options, _context, node
339
363
  attrs.target = "_blank";
340
364
  }
341
365
  return html `<a ${spread(attrs)}>${content}</a>`;
366
+ // Self-closing image. Plugin-introduced wrappers (e.g. image-figures)
367
+ // route through `shouldDelegateToPluginRule` before falling back to a
368
+ // plain `<img>` element.
369
+ case "img":
370
+ if (node && options.md && shouldDelegateToPluginRule(token, options.md)) {
371
+ return renderFallback(token, node, options.md, options.sanitize, options);
372
+ }
373
+ return html `<img ${spread(attrs)} />`;
342
374
  // Tables with Carbon component and streaming support
343
375
  case "table": {
344
376
  if (!node) {
345
377
  return html `<div>Error: Missing table data</div>`;
346
378
  }
347
- const { streaming, forceTableLoading, context: parentContext, tableFilterPlaceholderText, tablePreviousPageText, tableNextPageText, tableItemsPerPageText, tableDownloadLabelText, tableLocale, tableGetPaginationSupplementalText, tableGetPaginationStatusText, } = options;
348
- // Determine if we should show loading state during streaming
349
- let isLoading = Boolean(forceTableLoading);
350
- if (!isLoading &&
351
- streaming &&
352
- parentContext?.parentChildren &&
353
- parentContext?.currentIndex !== undefined) {
354
- const { parentChildren, currentIndex } = parentContext;
355
- const hasNodesAfterTable = currentIndex < parentChildren.length - 1;
356
- isLoading = !hasNodesAfterTable;
357
- }
358
- const renderCellTokens = (tokens, contextOverrides = {}) => {
359
- // Same as block/inline rendering: merge split raw HTML (e.g. `<a>…</a>`)
360
- // so each cell is not rendered as separate unsafeHTML + text chunks.
361
- const normalizedTokens = combineConsecutiveHtmlInline(tokens);
362
- return html `${repeat(normalizedTokens, (child, index) => `cell-${index}:${child.token.type}:${child.token.tag}`, (child, index) => renderTokenTree(child, {
363
- ...options,
364
- context: {
365
- ...options.context,
366
- ...contextOverrides,
367
- parentChildren: normalizedTokens,
368
- currentIndex: index,
369
- },
370
- }))}`;
371
- };
372
- const createCellContent = (cell, contextOverrides) => ({
373
- text: cell.text,
374
- template: cell.tokens
375
- ? renderCellTokens(cell.tokens, contextOverrides)
376
- : null,
377
- });
378
- // Only extract and process table data when not loading to avoid unnecessary work.
379
- // During loading, the table shows a skeleton and doesn't need the actual data.
380
- let headers = [];
381
- let tableRows = [];
382
- if (!isLoading) {
383
- const extractedData = extractTableData(node);
384
- headers = extractedData.headers.map((cell) => createCellContent(cell, { isInThead: true }));
385
- tableRows = extractedData.rows.map((row) => ({
386
- cells: row.map((cell) => createCellContent(cell)),
387
- }));
388
- }
389
- // Always return the same structure to allow Lit to reuse the table element.
390
- // When isLoading is true, the table component will show a skeleton state.
391
- // When isLoading is false, it will show the actual data.
392
- // This prevents recreating the table element and preserves its internal state.
393
- return html `<div class="cds-custom-aichat-table--square">
394
- <cds-custom-aichat-table
395
- data-rounded
396
- .headers=${headers}
397
- .rows=${tableRows}
398
- .loading=${isLoading}
399
- .filterPlaceholderText=${tableFilterPlaceholderText}
400
- .previousPageText=${tablePreviousPageText}
401
- .nextPageText=${tableNextPageText}
402
- .itemsPerPageText=${tableItemsPerPageText}
403
- .downloadLabelText=${tableDownloadLabelText}
404
- .locale=${tableLocale}
405
- .getPaginationSupplementalText=${tableGetPaginationSupplementalText}
406
- .getPaginationStatusText=${tableGetPaginationStatusText}
407
- ...=${attrs}
408
- ></cds-custom-aichat-table>
409
- </div>`;
379
+ const slotName = options.customRenderers?.table
380
+ ? slotNameFor("table", token, options)
381
+ : undefined;
382
+ return renderTable(token, node, attrs, options, renderTokenTree, slotName);
410
383
  }
411
- // Fallback for unknown tags
384
+ // Fallback for unknown tags. If we have the markdown-it instance available,
385
+ // defer to its renderer for plugin-introduced container tags (footnote_block,
386
+ // dl/dt/dd from deflist, custom containers, etc.). Otherwise fall back to
387
+ // a generic <div>.
412
388
  default:
389
+ if (options.md && node && !isNativelyHandled(token)) {
390
+ return renderFallback(token, node, options.md, options.sanitize, options);
391
+ }
413
392
  return html `<div ${spread(attrs)}>${content}</div>`;
414
393
  }
415
394
  }
416
395
 
417
- export { renderTokenTree };
396
+ export { renderMarkdownTree, renderTokenTree };
418
397
  //# sourceMappingURL=markdown-renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-renderer.js","sources":["../../../../src/components/markdown/src/markdown-renderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown-renderer.js","sources":["../../../../src/components/markdown/src/markdown-renderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,4 +1,22 @@
1
- import { Token } from "markdown-it";
1
+ /**
2
+ * The parse/diff layer between raw markdown source and the renderer. Parses with markdown-it (built-in plugins plus any caller-supplied `markdownItPlugins`), builds a nested {@link TokenTree}, and diffs it against the previous tree so streaming updates can reuse stable subtrees.
3
+ *
4
+ * ### Why diff
5
+ *
6
+ * `diffTokenTree` reuses old nodes by `key` whenever the key matches. This is what lets `./markdown-renderer.ts`'s use of Lit's `repeat` directive keep DOM stable during streaming: each incoming chunk re-parses the full source, but matched keys reuse the prior subtree, so only the genuinely new tail differs.
7
+ *
8
+ * ### Why `cachedHtml`
9
+ *
10
+ * For the leaf token types in {@link PLUGIN_DELEGABLE_TOKEN_TYPES}, when a user plugin's renderer rule produces the HTML (via `./utils/plugin-fallback.ts`), the result is cached on the `TokenTree` node and carried forward by `diffTokenTree` whenever the underlying token's `content` / `attrs` / `info` are unchanged. A stable earlier-in-document fence/image/etc. therefore isn't re-rendered through the plugin's rule on every streaming chunk. The cache is tagged with the `MarkdownIt` instance that produced it; a plugin swap (which builds a fresh instance) invalidates the cache on read.
11
+ *
12
+ * The block comment on {@link PLUGIN_DELEGABLE_TOKEN_TYPES} explains why only those four token types are eligible for delegation.
13
+ *
14
+ * ### Related files
15
+ *
16
+ * - `./markdown-renderer.ts` — consumes the `TokenTree` and produces a Lit `TemplateResult`.
17
+ * - `./utils/plugin-fallback.ts` — reads `cachedHtml` and {@link getPluginOverriddenRules} to drive the delegated-render flow.
18
+ */
19
+ import MarkdownIt, { Token } from "markdown-it";
2
20
  /**
3
21
  * Represents a node in the token tree structure.
4
22
  */
@@ -11,9 +29,20 @@ export interface TokenTree {
11
29
  children: TokenTree[];
12
30
  }
13
31
  /**
14
- * Parses markdown text into a flat array of markdown-it tokens.
32
+ * A markdown-it plugin reference. Either a bare plugin function or a
33
+ * `[plugin, options]` / `[plugin, ...params]` tuple matching
34
+ * `MarkdownIt.use(...)`.
35
+ *
36
+ * @experimental
37
+ */
38
+ export type MarkdownItPlugin = MarkdownIt.PluginSimple | [MarkdownIt.PluginWithOptions<unknown>, unknown] | [MarkdownIt.PluginWithParams, ...unknown[]];
39
+ /**
40
+ * Returns a (cached) markdown-it instance for the given plugin set, choosing the
41
+ * html-enabled variant or the html-disabled (HTML-neutralizing) variant based on
42
+ * `removeHtml`. Calling with the same `plugins` reference and `removeHtml` returns
43
+ * the same instance.
15
44
  */
16
- export declare function markdownToMarkdownItTokens(fullText: string, allowHtml?: boolean): Token[];
45
+ export declare function getMarkdownIt(plugins?: MarkdownItPlugin[], removeHtml?: boolean): MarkdownIt;
17
46
  /**
18
47
  * Converts a flat list of markdown-it tokens into a tree.
19
48
  */
@@ -27,6 +56,22 @@ export declare function buildTokenTree(tokens: Token[]): TokenTree;
27
56
  */
28
57
  export declare function diffTokenTree(oldTree: TokenTree | undefined, newTree: TokenTree): TokenTree;
29
58
  /**
30
- * Converts markdown into a tree with keys on it for Lit.
59
+ * Result of {@link markdownToTokenTree}. Returns the parsed tree plus the
60
+ * markdown-it instance used to produce it so the renderer can fall back to
61
+ * `md.renderer.render()` for plugin-introduced tokens. The set of
62
+ * plugin-overridden rules is read from the per-instance WeakMap via
63
+ * {@link getPluginOverriddenRules} as needed.
64
+ */
65
+ export interface MarkdownToTokenTreeResult {
66
+ tree: TokenTree;
67
+ md: MarkdownIt;
68
+ }
69
+ /**
70
+ * Converts markdown into a tree with keys on it for Lit. The returned `md` is the
71
+ * (cached) markdown-it instance keyed by `markdownItPlugins` identity and the
72
+ * `removeHtml` flag (html-enabled vs html-neutralizing variant).
31
73
  */
32
- export declare function markdownToTokenTree(markdown: string, lastTree?: TokenTree, allowHtml?: boolean): TokenTree;
74
+ export declare function markdownToTokenTree(markdown: string, lastTree: TokenTree | undefined, opts?: {
75
+ removeHtml?: boolean;
76
+ markdownItPlugins?: MarkdownItPlugin[];
77
+ }): MarkdownToTokenTreeResult;