Skip to content

Commit f01caae

Browse files
authored
[mercury] update ch-chat styles (#395)
* `[ch-chat]`add required files to use `mercury-code-render` * Add showcase page * little improvements on `ch-chat` * update showcase files
1 parent f65712c commit f01caae

File tree

11 files changed

+5201
-5
lines changed

11 files changed

+5201
-5
lines changed

packages/mercury/showcase/all.css

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/mercury/showcase/assets/components/ch-chat/index-29553cff.js

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

packages/mercury/showcase/assets/components/ch-chat/index-29553cff.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/mercury/showcase/assets/components/ch-chat/markdown-viewer.css

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import { h } from "./index-29553cff.js";
2+
3+
const copy = text => () => navigator.clipboard.writeText(text);
4+
export const mercuryCodeRender = copyButtonAccessibleName => options =>
5+
h(
6+
"div",
7+
{ class: "code-block-container" },
8+
h(
9+
"div",
10+
{ class: "code-block-header" },
11+
h("button", {
12+
"aria-label": copyButtonAccessibleName,
13+
title: copyButtonAccessibleName,
14+
class: "button-copy-code",
15+
type: "button",
16+
onClick: copy(options.plainText)
17+
})
18+
),
19+
h("ch-code", {
20+
language: options.language,
21+
lastNestedChildClass: options.lastNestedChildClass,
22+
value: options.plainText
23+
})
24+
);
25+
export const mercuryChatMessageRender = theme => messageModel =>
26+
messageModel.role === "assistant" && messageModel.status === "waiting"
27+
? [
28+
h("span", { part: "message__processing" }, messageModel.content),
29+
h("div", {
30+
class: "processing-animation",
31+
part: "processing-animation"
32+
})
33+
]
34+
: [
35+
h(
36+
"span",
37+
{ part: `message__role ${messageModel.role}` },
38+
messageModel.role === "user" ? "You" : "GeneXus Code Fixer"
39+
),
40+
h(
41+
"time",
42+
{ dateTime: messageModel.metadata, part: "message__time" },
43+
messageModel.metadata
44+
),
45+
messageModel.role === "user"
46+
? h("span", { part: "message__content user" }, messageModel.content)
47+
: h("ch-markdown-viewer", {
48+
part:
49+
messageModel.role === "assistant" &&
50+
(messageModel.status === "complete" || !messageModel.status) &&
51+
!messageModel.parts
52+
? `message__content no-error`
53+
: "message__content",
54+
theme: theme,
55+
showIndicator: false,
56+
renderCode: mercuryCodeRender("Copy code"),
57+
value: messageModel.content
58+
})
59+
];

0 commit comments

Comments
 (0)