Skip to content

Commit e2ab0cb

Browse files
committed
feat(chat): create igniteui-webcomponents/extras with markdown renderer
1 parent 68e4521 commit e2ab0cb

File tree

7 files changed

+1348
-1697
lines changed

7 files changed

+1348
-1697
lines changed

package-lock.json

Lines changed: 1334 additions & 1685 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"license": "SEE LICENSE IN LICENSE",
77
"exports": {
88
".": "./src/index.js",
9-
"./types": "./src/types.js"
9+
"./types": "./src/types.js",
10+
"./extras": "./src/extras/index.js"
1011
},
1112
"type": "module",
1213
"repository": {
@@ -85,15 +86,12 @@
8586
"lint-staged": "^16.1.5",
8687
"lit-analyzer": "^2.0.3",
8788
"madge": "^8.0.0",
88-
"marked": "^12.0.2",
89-
"marked-shiki": "^1.2.1",
9089
"node-watch": "^0.7.4",
9190
"playwright": "^1.55.0",
9291
"postcss": "^8.5.6",
9392
"prettier": "^3.6.2",
9493
"rimraf": "^6.0.1",
9594
"sass-embedded": "~1.78.0",
96-
"shiki": "^3.10.0",
9795
"sinon": "^21.0.0",
9896
"storybook": "^9.1.3",
9997
"stylelint": "^16.23.1",

scripts/_package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@
1010
"types": "./index.d.ts",
1111
"default": "./index.js"
1212
},
13-
"./themes/*.css": "./themes/*.css"
13+
"./themes/*.css": "./themes/*.css",
14+
"./extras": {
15+
"types": "./extras/index.d.ts",
16+
"default": "./extras/index.js"
17+
}
1418
},
1519
"type": "module",
1620
"sideEffects": false,

src/components/chat/markdown-renderer.ts renamed to src/components/chat/extras/markdown-renderer.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import DOMPurify from 'dompurify';
22
import { html, type TemplateResult } from 'lit';
33
import { Marked, Renderer } from 'marked';
4-
import type { ChatMessageRenderer, IgcMessage } from './types.js';
4+
import markedShiki from 'marked-shiki';
5+
import { getSingletonHighlighter } from 'shiki';
6+
import type { ChatMessageRenderer, IgcMessage } from '../types.js';
57

68
/**
79
* Options to configure the MarkdownMessageRenderer.
@@ -101,15 +103,13 @@ export class MarkdownMessageRenderer implements ChatMessageRenderer {
101103
return;
102104
}
103105

104-
const shiki = await import('shiki');
105-
this.highlighter = await shiki.getSingletonHighlighter({
106+
this.highlighter = await getSingletonHighlighter({
106107
themes: [this.theme],
107108
langs: this.langs,
108109
});
109110

110-
const markedShiki = await import('marked-shiki');
111111
this._marked.use(
112-
markedShiki.default({
112+
markedShiki({
113113
highlight: (code: any, lang: string) => {
114114
try {
115115
const safeLang =

src/extras/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { MarkdownMessageRenderer } from '../components/chat/extras/markdown-renderer.js';

src/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,4 +167,3 @@ export type {
167167
MessageTemplate,
168168
} from './components/chat/types.js';
169169
export { PlainTextRenderer } from './components/chat/plain-text-renderer.js';
170-
export { MarkdownMessageRenderer } from './components/chat/markdown-renderer.js';

stories/chat.stories.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import { html } from 'lit';
33
import { GoogleGenAI, Modality } from '@google/genai';
44
import {
55
IgcChatComponent,
6-
MarkdownMessageRenderer,
76
defineComponents,
87
registerIcon,
98
} from 'igniteui-webcomponents';
9+
import { MarkdownMessageRenderer } from 'igniteui-webcomponents/extras';
1010
import type {
1111
IgcChatTemplates,
1212
IgcMessage,

0 commit comments

Comments
 (0)