@carbon/ai-chat-components 1.4.0 → 1.5.0-rc.1
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/custom-elements.json +837 -284
- package/es/components/chat-history/src/chat-history.scss.js +1 -1
- package/es/components/chat-history/src/history-panel-item.d.ts +14 -0
- package/es/components/chat-history/src/history-panel-item.js +30 -0
- package/es/components/chat-history/src/history-panel-item.js.map +1 -1
- package/es/components/code-snippet/src/code-snippet.d.ts +5 -0
- package/es/components/code-snippet/src/code-snippet.js +17 -5
- package/es/components/code-snippet/src/code-snippet.js.map +1 -1
- package/es/components/feedback/src/feedback.d.ts +4 -0
- package/es/components/feedback/src/feedback.js +6 -4
- package/es/components/feedback/src/feedback.js.map +1 -1
- package/es/components/markdown/index.d.ts +3 -1
- package/es/components/markdown/index.js +1 -1
- package/es/components/markdown/src/markdown-renderer-types.d.ts +100 -0
- package/es/components/markdown/src/markdown-renderer-types.js +8 -0
- package/es/components/markdown/src/markdown-renderer-types.js.map +1 -0
- package/es/components/markdown/src/markdown-renderer.d.ts +14 -64
- package/es/components/markdown/src/markdown-renderer.js +120 -134
- package/es/components/markdown/src/markdown-renderer.js.map +1 -1
- package/es/components/markdown/src/markdown-token-tree.d.ts +50 -5
- package/es/components/markdown/src/markdown-token-tree.js +182 -47
- package/es/components/markdown/src/markdown-token-tree.js.map +1 -1
- package/es/components/markdown/src/markdown.d.ts +49 -1
- package/es/components/markdown/src/markdown.js +307 -106
- package/es/components/markdown/src/markdown.js.map +1 -1
- package/es/components/markdown/src/markdown.scss.js +1 -1
- package/es/components/markdown/src/plugins/markdown-it-task-lists.js +2 -5
- package/es/components/markdown/src/plugins/markdown-it-task-lists.js.map +1 -1
- package/es/components/markdown/src/utils/lit-directives.d.ts +17 -0
- package/es/components/markdown/src/utils/lit-directives.js +84 -0
- package/es/components/markdown/src/utils/lit-directives.js.map +1 -0
- package/es/components/markdown/src/utils/plugin-fallback.d.ts +33 -0
- package/es/components/markdown/src/utils/plugin-fallback.js +219 -0
- package/es/components/markdown/src/utils/plugin-fallback.js.map +1 -0
- package/es/components/markdown/src/utils/streaming-table.d.ts +28 -0
- package/es/components/markdown/src/utils/streaming-table.js +86 -0
- package/es/components/markdown/src/utils/streaming-table.js.map +1 -0
- package/es/components/markdown/src/utils/table-helpers.d.ts +17 -0
- package/es/components/markdown/src/utils/table-helpers.js +104 -2
- package/es/components/markdown/src/utils/table-helpers.js.map +1 -1
- package/es/components/table/src/table.js +4 -1
- package/es/components/table/src/table.js.map +1 -1
- package/es/components/truncated-text/src/truncated-text.scss.js +1 -1
- package/es/components/workspace-shell/src/workspace-shell.scss.js +1 -1
- package/es/react/markdown.d.ts +46 -2
- package/es/react/markdown.js +177 -20
- package/es/react/markdown.js.map +1 -1
- package/es-custom/components/chat-history/src/chat-history.scss.js +1 -1
- package/es-custom/components/chat-history/src/history-panel-item.d.ts +14 -0
- package/es-custom/components/chat-history/src/history-panel-item.js +30 -0
- package/es-custom/components/chat-history/src/history-panel-item.js.map +1 -1
- package/es-custom/components/code-snippet/src/code-snippet.d.ts +5 -0
- package/es-custom/components/code-snippet/src/code-snippet.js +17 -5
- package/es-custom/components/code-snippet/src/code-snippet.js.map +1 -1
- package/es-custom/components/feedback/src/feedback.d.ts +4 -0
- package/es-custom/components/feedback/src/feedback.js +6 -4
- package/es-custom/components/feedback/src/feedback.js.map +1 -1
- package/es-custom/components/markdown/index.d.ts +3 -1
- package/es-custom/components/markdown/index.js +1 -1
- package/es-custom/components/markdown/src/markdown-renderer-types.d.ts +100 -0
- package/es-custom/components/markdown/src/markdown-renderer-types.js +8 -0
- package/es-custom/components/markdown/src/markdown-renderer-types.js.map +1 -0
- package/es-custom/components/markdown/src/markdown-renderer.d.ts +14 -64
- package/es-custom/components/markdown/src/markdown-renderer.js +120 -134
- package/es-custom/components/markdown/src/markdown-renderer.js.map +1 -1
- package/es-custom/components/markdown/src/markdown-token-tree.d.ts +50 -5
- package/es-custom/components/markdown/src/markdown-token-tree.js +182 -47
- package/es-custom/components/markdown/src/markdown-token-tree.js.map +1 -1
- package/es-custom/components/markdown/src/markdown.d.ts +49 -1
- package/es-custom/components/markdown/src/markdown.js +307 -106
- package/es-custom/components/markdown/src/markdown.js.map +1 -1
- package/es-custom/components/markdown/src/markdown.scss.js +1 -1
- package/es-custom/components/markdown/src/plugins/markdown-it-task-lists.js +2 -5
- package/es-custom/components/markdown/src/plugins/markdown-it-task-lists.js.map +1 -1
- package/es-custom/components/markdown/src/utils/lit-directives.d.ts +17 -0
- package/es-custom/components/markdown/src/utils/lit-directives.js +84 -0
- package/es-custom/components/markdown/src/utils/lit-directives.js.map +1 -0
- package/es-custom/components/markdown/src/utils/plugin-fallback.d.ts +33 -0
- package/es-custom/components/markdown/src/utils/plugin-fallback.js +219 -0
- package/es-custom/components/markdown/src/utils/plugin-fallback.js.map +1 -0
- package/es-custom/components/markdown/src/utils/streaming-table.d.ts +28 -0
- package/es-custom/components/markdown/src/utils/streaming-table.js +86 -0
- package/es-custom/components/markdown/src/utils/streaming-table.js.map +1 -0
- package/es-custom/components/markdown/src/utils/table-helpers.d.ts +17 -0
- package/es-custom/components/markdown/src/utils/table-helpers.js +104 -2
- package/es-custom/components/markdown/src/utils/table-helpers.js.map +1 -1
- package/es-custom/components/table/src/table.js +4 -1
- package/es-custom/components/table/src/table.js.map +1 -1
- package/es-custom/components/truncated-text/src/truncated-text.scss.js +1 -1
- package/es-custom/components/workspace-shell/src/workspace-shell.scss.js +1 -1
- package/es-custom/react/markdown.d.ts +46 -2
- package/es-custom/react/markdown.js +177 -20
- package/es-custom/react/markdown.js.map +1 -1
- package/package.json +5 -4
- package/es/components/markdown/src/utils.d.ts +0 -4
- package/es/components/markdown/src/utils.js +0 -25
- package/es/components/markdown/src/utils.js.map +0 -1
- package/es-custom/components/markdown/src/utils.d.ts +0 -4
- package/es-custom/components/markdown/src/utils.js +0 -25
- package/es-custom/components/markdown/src/utils.js.map +0 -1
|
@@ -14,63 +14,81 @@ import commonStyles from '../../../globals/scss/common.scss.js';
|
|
|
14
14
|
import styles from './markdown.scss.js';
|
|
15
15
|
import throttle from 'lodash-es/throttle.js';
|
|
16
16
|
import { markdownToTokenTree } from './markdown-token-tree.js';
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
17
|
+
import { renderMarkdownTree } from './markdown-renderer.js';
|
|
18
|
+
import { hasTrailingTableToken, hasNodeAfterTable, hasLikelyPartialTableTail } from './utils/streaming-table.js';
|
|
19
19
|
|
|
20
20
|
/*
|
|
21
|
-
* Copyright IBM Corp. 2025
|
|
21
|
+
* Copyright IBM Corp. 2025, 2026
|
|
22
22
|
*
|
|
23
23
|
* This source code is licensed under the Apache-2.0 license found in the
|
|
24
24
|
* LICENSE file in the root directory of this source tree.
|
|
25
25
|
*
|
|
26
26
|
* @license
|
|
27
27
|
*/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
function hasNodeAfterTable(node) {
|
|
41
|
-
const children = node.children || [];
|
|
42
|
-
for (let index = 0; index < children.length; index++) {
|
|
43
|
-
const child = children[index];
|
|
44
|
-
if (child.token.tag === "table" && index < children.length - 1) {
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
if (hasNodeAfterTable(child)) {
|
|
28
|
+
const CONSOLE_PREFIX = "[carbon-ai-chat-components]";
|
|
29
|
+
/**
|
|
30
|
+
* True if `node` is inside (or is) a light-DOM element with a `slot` attribute
|
|
31
|
+
* set, up to (but not including) `boundary`. Portal hosts mounted by consumers
|
|
32
|
+
* carry a `slot` attribute, so this is used to skip both `textContent`
|
|
33
|
+
* contributions and observed mutations that originated inside a portal subtree.
|
|
34
|
+
*/
|
|
35
|
+
function isInsidePortalHost(node, boundary) {
|
|
36
|
+
let cur = node;
|
|
37
|
+
while (cur && cur !== boundary) {
|
|
38
|
+
if (cur instanceof Element && cur.hasAttribute("slot")) {
|
|
48
39
|
return true;
|
|
49
40
|
}
|
|
41
|
+
cur = cur.parentNode;
|
|
50
42
|
}
|
|
51
43
|
return false;
|
|
52
44
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Concatenates the markdown source from `element`'s light-DOM children,
|
|
47
|
+
* skipping any `<element slot="…">` portal hosts so consumer-rendered overrides
|
|
48
|
+
* don't contaminate the parsed markdown source.
|
|
49
|
+
*/
|
|
50
|
+
function readLightDomMarkdownSource(element) {
|
|
51
|
+
let out = "";
|
|
52
|
+
for (const child of Array.from(element.childNodes)) {
|
|
53
|
+
if (child instanceof Element && child.hasAttribute("slot")) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (child.nodeType === Node.TEXT_NODE) {
|
|
57
|
+
out += child.nodeValue ?? "";
|
|
58
|
+
}
|
|
59
|
+
else if (child instanceof Element) {
|
|
60
|
+
out += child.textContent ?? "";
|
|
61
|
+
}
|
|
68
62
|
}
|
|
69
|
-
|
|
70
|
-
return /^\|?[\s:-]+(\|[\s:-]+)+\|?$/.test(lastLine);
|
|
63
|
+
return out.trim();
|
|
71
64
|
}
|
|
72
65
|
/**
|
|
73
|
-
*
|
|
66
|
+
* Renders markdown as Carbon-styled DOM. Streaming-friendly: incremental updates reparse the markdown source into a `TokenTree`, diff it against the prior tree to reuse stable subtrees, then walk it into a Lit `TemplateResult` — Lit's `repeat` directive keys off the diffed nodes so unchanged DOM stays put.
|
|
67
|
+
*
|
|
68
|
+
* ### Lifecycle
|
|
69
|
+
*
|
|
70
|
+
* 1. A property setter (or a light-DOM mutation) lands. `willUpdate` decides whether the change requires a reparse (`markdown`, `removeHTML`, `markdownItPlugins`) or only a re-render (translated strings, `streaming`, `sanitizeHTML`, `customRenderers`).
|
|
71
|
+
* 2. `scheduleRender` throttles bursts to 100ms (leading + trailing).
|
|
72
|
+
* 3. `renderMarkdown` parses (if needed) via {@link markdownToTokenTree}, then calls {@link renderMarkdownTree} to produce both a `TemplateResult` and a batch of {@link MarkdownRendererSlotDescriptor} records.
|
|
73
|
+
* 4. After Lit commits, `updated()` runs `reconcileCustomRendererHosts` — that is where consumer-supplied `customRenderers` callbacks fire and plugin-fallback HTML is adopted into light-DOM slot hosts.
|
|
74
|
+
*
|
|
75
|
+
* ### Extensibility
|
|
76
|
+
*
|
|
77
|
+
* - {@link markdownItPlugins} runs after the built-in markdown-it plugins (markdown-it-attrs, highlight, task-lists). A new array identity rebuilds the markdown-it instance and forces a full reparse. Tokens introduced by a plugin that the native dispatch can't handle — either an unknown tag, or a plugin-overridden rule on a curated allow-list of leaf tokens — route through `md.renderer.render()` via `./utils/plugin-fallback.ts` and surface as `pluginFallback` descriptors. Their rendered HTML is adopted into a light-DOM slot host so consumer-supplied CSS (e.g. a KaTeX stylesheet on the host page) reaches it.
|
|
78
|
+
* - {@link customRenderers} overrides per-element rendering for `table` and `codeBlock`. The renderer emits a named `<slot>` placeholder; the reconciler invokes the consumer's callback with the parsed data and appends the returned `HTMLElement` as a `<div slot="…">` light-DOM child. Returning the same element reference across renders avoids DOM churn.
|
|
79
|
+
*
|
|
80
|
+
* ### Light-DOM source adoption
|
|
81
|
+
*
|
|
82
|
+
* When the `markdown` property has never been set explicitly, the element treats its light-DOM text content as the initial source and watches for further mutations via a `MutationObserver`. Setting the property explicitly stops the observer — the property is then the authoritative source.
|
|
83
|
+
*
|
|
84
|
+
* ### Related files
|
|
85
|
+
*
|
|
86
|
+
* - `./markdown-token-tree.ts` — markdown-it parse + tree builder + streaming-aware diff (with `cachedHtml` carry-forward for plugin-delegated tokens).
|
|
87
|
+
* - `./markdown-renderer.ts` — `TokenTree` → Lit `TemplateResult`, plus descriptor collection.
|
|
88
|
+
* - `./markdown-renderer-types.ts` — public ({@link MarkdownCustomRenderers}) and internal ({@link MarkdownRendererSlotDescriptor}, `RenderTokenTreeOptions`) contracts.
|
|
89
|
+
* - `./utils/plugin-fallback.ts` — delegation to `md.renderer.render()` for plugin-introduced tokens.
|
|
90
|
+
* - `./utils/streaming-table.ts` — heuristics that hold a streaming table in a skeleton "loading" state until its tail stabilizes.
|
|
91
|
+
*
|
|
74
92
|
* @element cds-custom-aichat-markdown
|
|
75
93
|
*/
|
|
76
94
|
let CDSAIChatMarkdown = class CDSAIChatMarkdown extends LitElement {
|
|
@@ -125,6 +143,26 @@ let CDSAIChatMarkdown = class CDSAIChatMarkdown extends LitElement {
|
|
|
125
143
|
this.tableDownloadLabelText = "Download table data";
|
|
126
144
|
/** Locale used for table pagination and formatting. */
|
|
127
145
|
this.tableLocale = "en";
|
|
146
|
+
/**
|
|
147
|
+
* Descriptors collected during the most recent render task; consumed by
|
|
148
|
+
* the `updated()` reconcile to invoke {@link customRenderers} callbacks.
|
|
149
|
+
* @internal
|
|
150
|
+
*/
|
|
151
|
+
this.latestRendererDescriptors = [];
|
|
152
|
+
/**
|
|
153
|
+
* Light-DOM slot hosts adopted on behalf of {@link customRenderers}, keyed
|
|
154
|
+
* by slot name. Reused across renders for stable identity.
|
|
155
|
+
* @internal
|
|
156
|
+
*/
|
|
157
|
+
this.slotHosts = new Map();
|
|
158
|
+
/**
|
|
159
|
+
* Slot names whose host was created by an outer listener (a chat container
|
|
160
|
+
* that called `preventDefault()` on the host-mount event). We track these
|
|
161
|
+
* so we can fire matching unmount events without trying to remove a host we
|
|
162
|
+
* never appended.
|
|
163
|
+
* @internal
|
|
164
|
+
*/
|
|
165
|
+
this.delegatedPluginSlots = new Set();
|
|
128
166
|
/**
|
|
129
167
|
* @internal
|
|
130
168
|
*/
|
|
@@ -151,10 +189,12 @@ let CDSAIChatMarkdown = class CDSAIChatMarkdown extends LitElement {
|
|
|
151
189
|
*/
|
|
152
190
|
this.lightDomObserver = null;
|
|
153
191
|
/**
|
|
154
|
-
*
|
|
192
|
+
* Generation counter for Light DOM mutation processing. Incremented when a
|
|
193
|
+
* mutation is observed and decremented when the resulting microtask
|
|
194
|
+
* completes. `updateComplete` waits while the counter is non-zero.
|
|
155
195
|
* @internal
|
|
156
196
|
*/
|
|
157
|
-
this.
|
|
197
|
+
this.pendingLightDomMutations = 0;
|
|
158
198
|
/**
|
|
159
199
|
* @internal
|
|
160
200
|
*/
|
|
@@ -199,7 +239,12 @@ let CDSAIChatMarkdown = class CDSAIChatMarkdown extends LitElement {
|
|
|
199
239
|
// rendered when the markdown is updated (likely by streaming, but possibly by an edit somewhere in the
|
|
200
240
|
// middle). It takes the current tokenTree as an argument for quick diffing to avoid re-creating parts
|
|
201
241
|
// of the tree.
|
|
202
|
-
|
|
242
|
+
const parsed = markdownToTokenTree(markdownContent, previousTreeForDiff, {
|
|
243
|
+
removeHtml: this.removeHTML,
|
|
244
|
+
markdownItPlugins: this.markdownItPlugins,
|
|
245
|
+
});
|
|
246
|
+
nextTokenTree = parsed.tree;
|
|
247
|
+
this.markdownItInstance = parsed.md;
|
|
203
248
|
this.needsReparse = false;
|
|
204
249
|
}
|
|
205
250
|
const hasStreamingTailTable = Boolean(this.streaming) && hasTrailingTableToken(nextTokenTree);
|
|
@@ -216,32 +261,44 @@ let CDSAIChatMarkdown = class CDSAIChatMarkdown extends LitElement {
|
|
|
216
261
|
else if (hasStreamingTailTable) {
|
|
217
262
|
this.isStreamingTableLoadingMode = true;
|
|
218
263
|
}
|
|
264
|
+
// Render-and-stash helper. Each invocation produces a fresh batch of
|
|
265
|
+
// renderer-slot descriptors; the `updated()` reconcile then invokes
|
|
266
|
+
// the consumer's `customRenderers` callbacks for each descriptor and
|
|
267
|
+
// adopts the returned `HTMLElement` as a light-DOM slot host.
|
|
268
|
+
const renderAndDispatch = (tree) => {
|
|
269
|
+
const { template, batch } = renderMarkdownTree(tree, {
|
|
270
|
+
sanitize: this.sanitizeHTML,
|
|
271
|
+
streaming: this.streaming,
|
|
272
|
+
// Code snippet properties
|
|
273
|
+
codeSnippetHighlight: this.codeSnippetHighlight,
|
|
274
|
+
codeSnippetShowLessText: this.codeSnippetShowLessText,
|
|
275
|
+
codeSnippetShowMoreText: this.codeSnippetShowMoreText,
|
|
276
|
+
codeSnippetCopyButtonTooltipContent: this.codeSnippetCopyButtonTooltipContent,
|
|
277
|
+
codeSnippetGetLineCountText: this.codeSnippetGetLineCountText,
|
|
278
|
+
codeSnippetAriaLabelReadOnly: this.codeSnippetAriaLabelReadOnly,
|
|
279
|
+
codeSnippetAriaLabelEditable: this.codeSnippetAriaLabelEditable,
|
|
280
|
+
// Table properties
|
|
281
|
+
tableFilterPlaceholderText: this.tableFilterPlaceholderText,
|
|
282
|
+
tablePreviousPageText: this.tablePreviousPageText,
|
|
283
|
+
tableNextPageText: this.tableNextPageText,
|
|
284
|
+
tableItemsPerPageText: this.tableItemsPerPageText,
|
|
285
|
+
tableDownloadLabelText: this.tableDownloadLabelText,
|
|
286
|
+
tableLocale: this.tableLocale,
|
|
287
|
+
tableGetPaginationSupplementalText: this.tableGetPaginationSupplementalText,
|
|
288
|
+
tableGetPaginationStatusText: this.tableGetPaginationStatusText,
|
|
289
|
+
// Custom-renderer hooks
|
|
290
|
+
customRenderers: this.customRenderers,
|
|
291
|
+
md: this.markdownItInstance,
|
|
292
|
+
});
|
|
293
|
+
this.renderedContent = template;
|
|
294
|
+
this.latestRendererDescriptors = batch;
|
|
295
|
+
};
|
|
219
296
|
if (this.streaming && this.isStreamingTableLoadingMode) {
|
|
220
297
|
if (!this.hasRenderedStreamingTableLoadingFrame) {
|
|
221
298
|
if (nextTokenTree !== this.tokenTree) {
|
|
222
299
|
this.tokenTree = nextTokenTree;
|
|
223
300
|
}
|
|
224
|
-
|
|
225
|
-
sanitize: this.sanitizeHTML,
|
|
226
|
-
streaming: this.streaming,
|
|
227
|
-
// Code snippet properties
|
|
228
|
-
codeSnippetHighlight: this.codeSnippetHighlight,
|
|
229
|
-
codeSnippetShowLessText: this.codeSnippetShowLessText,
|
|
230
|
-
codeSnippetShowMoreText: this.codeSnippetShowMoreText,
|
|
231
|
-
codeSnippetCopyButtonTooltipContent: this.codeSnippetCopyButtonTooltipContent,
|
|
232
|
-
codeSnippetGetLineCountText: this.codeSnippetGetLineCountText,
|
|
233
|
-
codeSnippetAriaLabelReadOnly: this.codeSnippetAriaLabelReadOnly,
|
|
234
|
-
codeSnippetAriaLabelEditable: this.codeSnippetAriaLabelEditable,
|
|
235
|
-
// Table properties
|
|
236
|
-
tableFilterPlaceholderText: this.tableFilterPlaceholderText,
|
|
237
|
-
tablePreviousPageText: this.tablePreviousPageText,
|
|
238
|
-
tableNextPageText: this.tableNextPageText,
|
|
239
|
-
tableItemsPerPageText: this.tableItemsPerPageText,
|
|
240
|
-
tableDownloadLabelText: this.tableDownloadLabelText,
|
|
241
|
-
tableLocale: this.tableLocale,
|
|
242
|
-
tableGetPaginationSupplementalText: this.tableGetPaginationSupplementalText,
|
|
243
|
-
tableGetPaginationStatusText: this.tableGetPaginationStatusText,
|
|
244
|
-
});
|
|
301
|
+
renderAndDispatch(nextTokenTree);
|
|
245
302
|
this.hasRenderedStreamingTableLoadingFrame = true;
|
|
246
303
|
this.stagedStreamingTokenTree = null;
|
|
247
304
|
}
|
|
@@ -258,30 +315,10 @@ let CDSAIChatMarkdown = class CDSAIChatMarkdown extends LitElement {
|
|
|
258
315
|
}
|
|
259
316
|
// Next we take that tree and transform it into Lit content to be rendered into the template.
|
|
260
317
|
// this.renderedContent is what is rendered in the template directly.
|
|
261
|
-
|
|
262
|
-
sanitize: this.sanitizeHTML,
|
|
263
|
-
streaming: this.streaming,
|
|
264
|
-
// Code snippet properties
|
|
265
|
-
codeSnippetHighlight: this.codeSnippetHighlight,
|
|
266
|
-
codeSnippetShowLessText: this.codeSnippetShowLessText,
|
|
267
|
-
codeSnippetShowMoreText: this.codeSnippetShowMoreText,
|
|
268
|
-
codeSnippetCopyButtonTooltipContent: this.codeSnippetCopyButtonTooltipContent,
|
|
269
|
-
codeSnippetGetLineCountText: this.codeSnippetGetLineCountText,
|
|
270
|
-
codeSnippetAriaLabelReadOnly: this.codeSnippetAriaLabelReadOnly,
|
|
271
|
-
codeSnippetAriaLabelEditable: this.codeSnippetAriaLabelEditable,
|
|
272
|
-
// Table properties
|
|
273
|
-
tableFilterPlaceholderText: this.tableFilterPlaceholderText,
|
|
274
|
-
tablePreviousPageText: this.tablePreviousPageText,
|
|
275
|
-
tableNextPageText: this.tableNextPageText,
|
|
276
|
-
tableItemsPerPageText: this.tableItemsPerPageText,
|
|
277
|
-
tableDownloadLabelText: this.tableDownloadLabelText,
|
|
278
|
-
tableLocale: this.tableLocale,
|
|
279
|
-
tableGetPaginationSupplementalText: this.tableGetPaginationSupplementalText,
|
|
280
|
-
tableGetPaginationStatusText: this.tableGetPaginationStatusText,
|
|
281
|
-
});
|
|
318
|
+
renderAndDispatch(renderTree);
|
|
282
319
|
}
|
|
283
320
|
catch (error) {
|
|
284
|
-
|
|
321
|
+
console.error(`${CONSOLE_PREFIX} Failed to parse markdown`, error);
|
|
285
322
|
}
|
|
286
323
|
};
|
|
287
324
|
/**
|
|
@@ -328,12 +365,27 @@ let CDSAIChatMarkdown = class CDSAIChatMarkdown extends LitElement {
|
|
|
328
365
|
disconnectedCallback() {
|
|
329
366
|
super.disconnectedCallback();
|
|
330
367
|
this.stopObservingLightDom();
|
|
368
|
+
// Tear down any adopted slot hosts so they don't leak across re-connect.
|
|
369
|
+
for (const host of this.slotHosts.values()) {
|
|
370
|
+
host.remove();
|
|
371
|
+
}
|
|
372
|
+
this.slotHosts.clear();
|
|
373
|
+
// Ask any delegating chat container to drop its hosts too.
|
|
374
|
+
for (const slotName of this.delegatedPluginSlots) {
|
|
375
|
+
this.dispatchEvent(new CustomEvent("cds-custom-aichat-markdown-plugin-host-unmount", {
|
|
376
|
+
bubbles: true,
|
|
377
|
+
composed: true,
|
|
378
|
+
detail: { slotName },
|
|
379
|
+
}));
|
|
380
|
+
}
|
|
381
|
+
this.delegatedPluginSlots.clear();
|
|
382
|
+
this.latestRendererDescriptors = [];
|
|
331
383
|
}
|
|
332
384
|
adoptLightDomMarkdown() {
|
|
333
385
|
// Backward compatibility: treat static light-DOM text as initial markdown
|
|
334
386
|
// when the explicit `markdown` property was not provided.
|
|
335
387
|
if (!this.markdownPropertyExplicitlySet) {
|
|
336
|
-
const lightDomMarkdown = this
|
|
388
|
+
const lightDomMarkdown = readLightDomMarkdownSource(this);
|
|
337
389
|
if (lightDomMarkdown) {
|
|
338
390
|
// Set markdown without triggering the "explicitly set" flag
|
|
339
391
|
this.isInternalMarkdownUpdate = true;
|
|
@@ -348,26 +400,31 @@ let CDSAIChatMarkdown = class CDSAIChatMarkdown extends LitElement {
|
|
|
348
400
|
if (this.lightDomObserver || this.markdownPropertyExplicitlySet) {
|
|
349
401
|
return;
|
|
350
402
|
}
|
|
351
|
-
this.lightDomObserver = new MutationObserver(() => {
|
|
403
|
+
this.lightDomObserver = new MutationObserver((records) => {
|
|
352
404
|
// Only update from Light DOM if markdown property still hasn't been explicitly set
|
|
353
405
|
if (!this.markdownPropertyExplicitlySet) {
|
|
354
|
-
//
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
406
|
+
// Mutations that happened entirely inside a portal host (a light-DOM
|
|
407
|
+
// child with a `slot` attribute) are noise from the consumer's
|
|
408
|
+
// overrides re-rendering — they don't change the markdown source.
|
|
409
|
+
const relevant = records.filter((record) => !isInsidePortalHost(record.target, this));
|
|
410
|
+
if (relevant.length === 0) {
|
|
411
|
+
return;
|
|
412
|
+
}
|
|
413
|
+
// Process the mutation in a microtask so the DOM has settled. Track
|
|
414
|
+
// it via a counter so `updateComplete` can await any concurrent
|
|
415
|
+
// mutations without the fragility of a single-slot promise field.
|
|
416
|
+
this.pendingLightDomMutations += 1;
|
|
417
|
+
Promise.resolve()
|
|
418
|
+
.then(() => {
|
|
419
|
+
const lightDomMarkdown = readLightDomMarkdownSource(this);
|
|
359
420
|
if (this.markdown !== lightDomMarkdown) {
|
|
360
421
|
this.isInternalMarkdownUpdate = true;
|
|
361
422
|
this.markdown = lightDomMarkdown;
|
|
362
423
|
this.isInternalMarkdownUpdate = false;
|
|
363
424
|
}
|
|
364
|
-
})
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
mutationPromise.finally(() => {
|
|
368
|
-
if (this.lightDomMutationPromise === mutationPromise) {
|
|
369
|
-
this.lightDomMutationPromise = null;
|
|
370
|
-
}
|
|
425
|
+
})
|
|
426
|
+
.finally(() => {
|
|
427
|
+
this.pendingLightDomMutations -= 1;
|
|
371
428
|
});
|
|
372
429
|
}
|
|
373
430
|
else {
|
|
@@ -393,10 +450,12 @@ let CDSAIChatMarkdown = class CDSAIChatMarkdown extends LitElement {
|
|
|
393
450
|
const isInitialRender = !this.hasConnected && this.markdown;
|
|
394
451
|
if (changed.has("removeHTML") ||
|
|
395
452
|
changed.has("markdown") ||
|
|
453
|
+
changed.has("markdownItPlugins") ||
|
|
396
454
|
isInitialRender) {
|
|
397
455
|
// Properties that affect token tree structure require full reparse
|
|
398
|
-
// - removeHTML:
|
|
456
|
+
// - removeHTML: toggles post-parse HTML-token stripping
|
|
399
457
|
// - markdown: updates the source text to parse
|
|
458
|
+
// - markdownItPlugins: swaps the markdown-it instance, new parser rules
|
|
400
459
|
// - isInitialRender: ensures pre-set markdown gets parsed on first render
|
|
401
460
|
this.needsReparse = true;
|
|
402
461
|
this.scheduleRender();
|
|
@@ -406,8 +465,10 @@ let CDSAIChatMarkdown = class CDSAIChatMarkdown extends LitElement {
|
|
|
406
465
|
// - sanitizeHTML: applies DOMPurify during render, doesn't change tokens
|
|
407
466
|
// - string properties: change translated strings in rendered output
|
|
408
467
|
// - streaming: affects loading states in rendered output
|
|
468
|
+
// - customRenderers: only changes which tokens emit a slot
|
|
409
469
|
changed.has("sanitizeHTML") ||
|
|
410
470
|
changed.has("streaming") ||
|
|
471
|
+
changed.has("customRenderers") ||
|
|
411
472
|
// Code snippet properties
|
|
412
473
|
changed.has("codeSnippetHighlight") ||
|
|
413
474
|
changed.has("codeSnippetShowLessText") ||
|
|
@@ -442,10 +503,12 @@ let CDSAIChatMarkdown = class CDSAIChatMarkdown extends LitElement {
|
|
|
442
503
|
if (this.renderTask) {
|
|
443
504
|
await this.renderTask;
|
|
444
505
|
}
|
|
445
|
-
//
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
506
|
+
// Drain any in-flight Light DOM mutation microtasks and their resulting
|
|
507
|
+
// renders. Each iteration yields the event loop so newly enqueued
|
|
508
|
+
// mutations can settle; the counter goes back to zero once everything
|
|
509
|
+
// has flushed.
|
|
510
|
+
while (this.pendingLightDomMutations > 0) {
|
|
511
|
+
await Promise.resolve();
|
|
449
512
|
const postMutationFlush = this.scheduleRender.flush?.();
|
|
450
513
|
if (postMutationFlush instanceof Promise) {
|
|
451
514
|
await postMutationFlush;
|
|
@@ -456,6 +519,138 @@ let CDSAIChatMarkdown = class CDSAIChatMarkdown extends LitElement {
|
|
|
456
519
|
}
|
|
457
520
|
return result;
|
|
458
521
|
}
|
|
522
|
+
updated(changed) {
|
|
523
|
+
super.updated(changed);
|
|
524
|
+
this.reconcileCustomRendererHosts();
|
|
525
|
+
}
|
|
526
|
+
/**
|
|
527
|
+
* Invoke the consumer's `customRenderers` callbacks once per descriptor and
|
|
528
|
+
* adopt their returned `HTMLElement` as a `<span slot="…">` (for inline
|
|
529
|
+
* plugin tokens) or `<div slot="…">` (block tokens and consumer renderers)
|
|
530
|
+
* light-DOM child. Hosts persist across renders so a consumer returning the
|
|
531
|
+
* same element reference produces no DOM churn; hosts whose slot names
|
|
532
|
+
* dropped out of the latest descriptor batch are removed.
|
|
533
|
+
*
|
|
534
|
+
* @internal
|
|
535
|
+
*/
|
|
536
|
+
reconcileCustomRendererHosts() {
|
|
537
|
+
const renderers = this.customRenderers;
|
|
538
|
+
const descriptors = this.latestRendererDescriptors;
|
|
539
|
+
const wanted = new Set();
|
|
540
|
+
for (const descriptor of descriptors) {
|
|
541
|
+
if (descriptor.kind === "pluginFallback") {
|
|
542
|
+
wanted.add(descriptor.slotName);
|
|
543
|
+
// Offer the slot to a chat-container ancestor first. The chain
|
|
544
|
+
// appends the host to its OWN light DOM (page DOM at the top of the
|
|
545
|
+
// chain) so external CSS (e.g. a KaTeX stylesheet on the host page)
|
|
546
|
+
// reaches the plugin output. If a listener calls preventDefault, it
|
|
547
|
+
// has taken over hosting and we skip the local appendChild path.
|
|
548
|
+
const alreadyDelegated = this.delegatedPluginSlots.has(descriptor.slotName);
|
|
549
|
+
if (!alreadyDelegated && !this.slotHosts.has(descriptor.slotName)) {
|
|
550
|
+
const mountEvent = new CustomEvent("cds-custom-aichat-markdown-plugin-host-mount", {
|
|
551
|
+
bubbles: true,
|
|
552
|
+
composed: true,
|
|
553
|
+
cancelable: true,
|
|
554
|
+
detail: {
|
|
555
|
+
slotName: descriptor.slotName,
|
|
556
|
+
html: descriptor.html,
|
|
557
|
+
isInline: descriptor.isInline,
|
|
558
|
+
},
|
|
559
|
+
});
|
|
560
|
+
this.dispatchEvent(mountEvent);
|
|
561
|
+
if (mountEvent.defaultPrevented) {
|
|
562
|
+
this.delegatedPluginSlots.add(descriptor.slotName);
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
else if (alreadyDelegated) {
|
|
566
|
+
// The chain owns this slot; push HTML updates through a second
|
|
567
|
+
// event so streaming chunks reach the page-level host element.
|
|
568
|
+
this.dispatchEvent(new CustomEvent("cds-custom-aichat-markdown-plugin-host-update", {
|
|
569
|
+
bubbles: true,
|
|
570
|
+
composed: true,
|
|
571
|
+
detail: {
|
|
572
|
+
slotName: descriptor.slotName,
|
|
573
|
+
html: descriptor.html,
|
|
574
|
+
},
|
|
575
|
+
}));
|
|
576
|
+
}
|
|
577
|
+
if (this.delegatedPluginSlots.has(descriptor.slotName)) {
|
|
578
|
+
continue;
|
|
579
|
+
}
|
|
580
|
+
// Fallback: no outer listener took over (standalone usage, e.g.
|
|
581
|
+
// storybook). Adopt the host as our own light-DOM child, matching
|
|
582
|
+
// the pre-event behavior so existing tests/stories keep working.
|
|
583
|
+
let host = this.slotHosts.get(descriptor.slotName);
|
|
584
|
+
if (!host) {
|
|
585
|
+
const tag = descriptor.isInline ? "span" : "div";
|
|
586
|
+
host = document.createElement(tag);
|
|
587
|
+
host.setAttribute("slot", descriptor.slotName);
|
|
588
|
+
this.slotHosts.set(descriptor.slotName, host);
|
|
589
|
+
this.appendChild(host);
|
|
590
|
+
}
|
|
591
|
+
// Only rewrite innerHTML when the plugin output actually changed;
|
|
592
|
+
// streaming re-renders frequently land here with the same HTML.
|
|
593
|
+
if (host.innerHTML !== descriptor.html) {
|
|
594
|
+
host.innerHTML = descriptor.html;
|
|
595
|
+
}
|
|
596
|
+
continue;
|
|
597
|
+
}
|
|
598
|
+
const callback = renderers?.[descriptor.kind];
|
|
599
|
+
if (!callback) {
|
|
600
|
+
continue;
|
|
601
|
+
}
|
|
602
|
+
let result;
|
|
603
|
+
try {
|
|
604
|
+
result = callback({
|
|
605
|
+
...descriptor.data,
|
|
606
|
+
token: descriptor.token,
|
|
607
|
+
node: descriptor.node,
|
|
608
|
+
slotName: descriptor.slotName,
|
|
609
|
+
});
|
|
610
|
+
}
|
|
611
|
+
catch (error) {
|
|
612
|
+
console.error(`[carbon-ai-chat-components] customRenderers.${descriptor.kind} threw`, error);
|
|
613
|
+
continue;
|
|
614
|
+
}
|
|
615
|
+
if (result == null) {
|
|
616
|
+
const existing = this.slotHosts.get(descriptor.slotName);
|
|
617
|
+
if (existing) {
|
|
618
|
+
existing.remove();
|
|
619
|
+
this.slotHosts.delete(descriptor.slotName);
|
|
620
|
+
}
|
|
621
|
+
continue;
|
|
622
|
+
}
|
|
623
|
+
wanted.add(descriptor.slotName);
|
|
624
|
+
let host = this.slotHosts.get(descriptor.slotName);
|
|
625
|
+
if (!host) {
|
|
626
|
+
host = document.createElement("div");
|
|
627
|
+
host.setAttribute("slot", descriptor.slotName);
|
|
628
|
+
this.slotHosts.set(descriptor.slotName, host);
|
|
629
|
+
this.appendChild(host);
|
|
630
|
+
}
|
|
631
|
+
if (host.firstChild !== result || host.childNodes.length !== 1) {
|
|
632
|
+
host.replaceChildren(result);
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
for (const [slotName, host] of this.slotHosts) {
|
|
636
|
+
if (!wanted.has(slotName)) {
|
|
637
|
+
host.remove();
|
|
638
|
+
this.slotHosts.delete(slotName);
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
// Tell any delegating chat container to drop hosts whose descriptor
|
|
642
|
+
// disappeared (e.g. a streaming chunk removed a math node).
|
|
643
|
+
for (const slotName of this.delegatedPluginSlots) {
|
|
644
|
+
if (!wanted.has(slotName)) {
|
|
645
|
+
this.dispatchEvent(new CustomEvent("cds-custom-aichat-markdown-plugin-host-unmount", {
|
|
646
|
+
bubbles: true,
|
|
647
|
+
composed: true,
|
|
648
|
+
detail: { slotName },
|
|
649
|
+
}));
|
|
650
|
+
this.delegatedPluginSlots.delete(slotName);
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
}
|
|
459
654
|
render() {
|
|
460
655
|
const { renderedContent } = this;
|
|
461
656
|
return html `<div class="cds-custom-aichat-markdown-stack">
|
|
@@ -524,6 +719,12 @@ __decorate([
|
|
|
524
719
|
__decorate([
|
|
525
720
|
property({ type: Object, attribute: false })
|
|
526
721
|
], CDSAIChatMarkdown.prototype, "tableGetPaginationStatusText", void 0);
|
|
722
|
+
__decorate([
|
|
723
|
+
property({ type: Array, attribute: false })
|
|
724
|
+
], CDSAIChatMarkdown.prototype, "markdownItPlugins", void 0);
|
|
725
|
+
__decorate([
|
|
726
|
+
property({ attribute: false })
|
|
727
|
+
], CDSAIChatMarkdown.prototype, "customRenderers", void 0);
|
|
527
728
|
__decorate([
|
|
528
729
|
state()
|
|
529
730
|
], CDSAIChatMarkdown.prototype, "tokenTree", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sources":["../../../../src/components/markdown/src/markdown.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"markdown.js","sources":["../../../../src/components/markdown/src/markdown.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|