@genexus/mercury 0.30.0 → 0.31.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/dist/assets-manager.js +1 -1
- package/dist/bundles/css/all.css +1 -1
- package/dist/bundles/css/components/chat.css +1 -1
- package/dist/bundles/css/components/combo-box.css +1 -1
- package/dist/bundles/css/components/markdown-viewer.css +1 -1
- package/dist/bundles/css/components/paginator.css +1 -1
- package/dist/bundles/css/components/pills.css +1 -1
- package/dist/bundles/css/components/tabular-grid.css +1 -1
- package/dist/bundles/css/utils/form--full.css +1 -1
- package/dist/components/chat/actions.lit.js +3 -10
- package/dist/components/chat/code-block.lit.js +2 -30
- package/dist/components/chat/file.lit.js +36 -89
- package/dist/components/chat/mer-spinner.lit.js +1 -23
- package/dist/components/chat/render.lit.js +17 -51
- package/dist/components/chat/types.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +8 -9
|
@@ -1,28 +1,6 @@
|
|
|
1
1
|
import { LitElement, css, html } from "lit";
|
|
2
2
|
export class MerSpinner extends LitElement {
|
|
3
|
-
static styles = css
|
|
4
|
-
:host {
|
|
5
|
-
--spinner-size: var(--mer-spacing--md);
|
|
6
|
-
--spinner-color: var(--mer-color__primary--300);
|
|
7
|
-
--track-color: var(--mer-color__tinted-primary--50);
|
|
8
|
-
--border-thinness: 7;
|
|
9
|
-
|
|
10
|
-
inline-size: var(--spinner-size);
|
|
11
|
-
block-size: var(--spinner-size);
|
|
12
|
-
border: calc(var(--spinner-size) / var(--border-thinness)) solid
|
|
13
|
-
var(--track-color);
|
|
14
|
-
border-block-start: calc(var(--spinner-size) / var(--border-thinness))
|
|
15
|
-
solid var(--spinner-color);
|
|
16
|
-
border-radius: 50%;
|
|
17
|
-
animation: spin var(--mer-timing--regular, 1s) linear infinite;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
@keyframes spin {
|
|
21
|
-
100% {
|
|
22
|
-
transform: rotate(360deg);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
`;
|
|
3
|
+
static styles = css `:host{--spinner-size:var(--mer-spacing--md);--spinner-color:var(--mer-color__primary--300);--track-color:var(--mer-color__tinted-primary--50);--border-thinness:7;inline-size:var(--spinner-size);block-size:var(--spinner-size);border:calc(var(--spinner-size)/ var(--border-thinness)) solid var(--track-color);border-block-start:calc(var(--spinner-size)/ var(--border-thinness)) solid var(--spinner-color);border-radius:50%;animation:spin var(--mer-timing--regular,1s) linear infinite}@keyframes spin{100%{transform:rotate(360deg)}}`;
|
|
26
4
|
render() {
|
|
27
5
|
return html ``;
|
|
28
6
|
}
|
|
@@ -33,79 +33,45 @@ import "./mer-animated-dots.js";
|
|
|
33
33
|
/**
|
|
34
34
|
* Mercury section that includes the assistant the assistant name, and an optional message time.
|
|
35
35
|
*
|
|
36
|
-
* @param messageMetaData - Metadata containing
|
|
36
|
+
* @param messageMetaData - Metadata containing agentName and time
|
|
37
37
|
* @returns TemplateResult rendering the assistant message header
|
|
38
38
|
*/
|
|
39
39
|
const messageHeader = (messageMetaData, waiting = false) => {
|
|
40
|
-
const
|
|
41
|
-
const assistantId =
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
<div part="header__start assistant">
|
|
47
|
-
<div part="header__avatar-container assistant">
|
|
48
|
-
<div part="header__avatar-border assistant"></div>
|
|
49
|
-
<div part="header__avatar-image assistant"></div>
|
|
50
|
-
</div>
|
|
51
|
-
<div part="header__role assistant">${assistantName}</div>
|
|
52
|
-
${waiting ? html `<mer-animated-dots></mer-animated-dots>` : nothing}
|
|
53
|
-
</div>
|
|
54
|
-
|
|
55
|
-
${messageTime
|
|
56
|
-
? html `<time datetime="${messageTime}" part="header__time assistant"
|
|
57
|
-
>${messageTime}</time
|
|
58
|
-
>`
|
|
59
|
-
: nothing}
|
|
60
|
-
</div>`;
|
|
40
|
+
const agentName = messageMetaData?.agentName;
|
|
41
|
+
const assistantId = agentName?.toLowerCase().replace(/ /g, "-");
|
|
42
|
+
const messageTime = messageMetaData?.time;
|
|
43
|
+
return html `<div part="header assistant${assistantId ? ` header-${assistantId}` : ""}"><div part="header__start assistant"><div part="header__avatar-container assistant"><div part="header__avatar-border assistant"></div><div part="header__avatar-image assistant"></div></div><div part="header__role assistant">${agentName}</div>${waiting ? html `<mer-animated-dots></mer-animated-dots>` : nothing}</div>${messageTime
|
|
44
|
+
? html `<time datetime="${messageTime}" part="header__time assistant">${messageTime}</time>`
|
|
45
|
+
: nothing}</div>`;
|
|
61
46
|
};
|
|
62
47
|
// customzied in order to add the custom "messageHeader"
|
|
63
48
|
const customAssistantContentRender = (message, chatRef, codeBlockRender) => {
|
|
64
49
|
const messageContent = getMessageContent(message);
|
|
65
50
|
return message.status === "waiting"
|
|
66
|
-
? html `${messageHeader(message.metadata, true)}
|
|
67
|
-
<div
|
|
68
|
-
class="assistant-loading"
|
|
69
|
-
part=${tokenMap({
|
|
51
|
+
? html `${messageHeader(message.metadata, true)}<div class="assistant-loading" part="${tokenMap({
|
|
70
52
|
[`assistant content waiting ${message.id}`]: true,
|
|
71
53
|
...(message.parts ? { [message.parts]: true } : {})
|
|
72
|
-
})}
|
|
73
|
-
|
|
74
|
-
${messageContent}
|
|
75
|
-
</div>`
|
|
76
|
-
: html `${messageHeader(message.metadata)}
|
|
77
|
-
<ch-markdown-viewer
|
|
78
|
-
part=${tokenMap({
|
|
54
|
+
})}">${messageContent}</div>`
|
|
55
|
+
: html `${messageHeader(message.metadata)}<ch-markdown-viewer part="${tokenMap({
|
|
79
56
|
[`assistant content ${message.id} ${message.status ?? DEFAULT_ASSISTANT_STATUS}`]: true,
|
|
80
57
|
...(message.parts ? { [message.parts]: true } : {})
|
|
81
|
-
})}
|
|
82
|
-
|
|
83
|
-
// WA: Define codeBlockRender as "any" to avoid types incompatibility:
|
|
58
|
+
})}" .renderCode="${
|
|
59
|
+
// WA: Define codeBlockRender as "never" to avoid types incompatibility:
|
|
84
60
|
// codeBlockRender returns TemplateResult and renderCode expects TemplateResult | undefined
|
|
85
61
|
// In Chameleon this type mismatch does not happens. TODO: Evaluate a solution in Chameleon.
|
|
86
|
-
codeBlockRender(chatRef)}
|
|
87
|
-
.showIndicator=${message.status === "streaming"}
|
|
88
|
-
.theme=${chatRef.markdownTheme ?? undefined}
|
|
89
|
-
.value=${messageContent}
|
|
90
|
-
></ch-markdown-viewer>`;
|
|
62
|
+
codeBlockRender(chatRef)}" .showIndicator="${message.status === "streaming"}" .theme="${chatRef.markdownTheme ?? undefined}" .value="${messageContent}"></ch-markdown-viewer>`;
|
|
91
63
|
};
|
|
92
64
|
// customzied in order to add the custom "messageHeader"
|
|
93
65
|
const customErrorContentRender = (message, chatRef, codeBlockRender) => {
|
|
94
66
|
const errorContent = getMessageContent(message);
|
|
95
|
-
return html `${messageHeader(message.metadata)}
|
|
96
|
-
<ch-markdown-viewer
|
|
97
|
-
part=${tokenMap({
|
|
67
|
+
return html `${messageHeader(message.metadata)}<ch-markdown-viewer part="${tokenMap({
|
|
98
68
|
[`error content ${message.id}`]: true,
|
|
99
69
|
...(message.parts ? { [message.parts]: true } : {})
|
|
100
|
-
})}
|
|
101
|
-
|
|
102
|
-
// WA: Define codeBlockRender as "any" to avoid types incompatibility:
|
|
70
|
+
})}" .renderCode="${
|
|
71
|
+
// WA: Define codeBlockRender as "never" to avoid types incompatibility:
|
|
103
72
|
// codeBlockRender returns TemplateResult and renderCode expects TemplateResult | undefined
|
|
104
73
|
// In Chameleon this type mismatch does not happens. TODO: Evaluate a solution in Chameleon.
|
|
105
|
-
codeBlockRender(chatRef)}
|
|
106
|
-
.theme=${chatRef.markdownTheme ?? undefined}
|
|
107
|
-
.value=${errorContent}
|
|
108
|
-
></ch-markdown-viewer>`;
|
|
74
|
+
codeBlockRender(chatRef)}" .theme="${chatRef.markdownTheme ?? undefined}" .value="${errorContent}"></ch-markdown-viewer>`;
|
|
109
75
|
};
|
|
110
76
|
// No modification. It is required to be defined.
|
|
111
77
|
const defaultSystemContentRender = () => "string | TemplateResult";
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";export*from"./assets-manager.js";export*from"./bundles.js";export*from"./register-mercury.js";export*from"./types.js";export*from"./components/chat/render.lit.js";
|
|
1
|
+
"use strict";export*from"./assets-manager.js";export*from"./bundles.js";export*from"./register-mercury.js";export*from"./types.js";export*from"./components/chat/render.lit.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genexus/mercury",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.1",
|
|
4
4
|
"description": "Mercury Design System is a robust and scalable solution designed to improve product development.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -44,10 +44,8 @@
|
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
"./components/chat/render.js": {
|
|
47
|
-
"
|
|
48
|
-
|
|
49
|
-
"default": "./dist/components/chat/render.js"
|
|
50
|
-
}
|
|
47
|
+
"types": "./dist/components/chat/render.lit.d.ts",
|
|
48
|
+
"default": "./dist/components/chat/render.lit.js"
|
|
51
49
|
},
|
|
52
50
|
"./components/chat/message-metadata": {
|
|
53
51
|
"types": "./dist/components/chat/types.d.ts",
|
|
@@ -57,7 +55,7 @@
|
|
|
57
55
|
},
|
|
58
56
|
"scripts": {
|
|
59
57
|
"build": "yarn build.js && yarn icons-svg && yarn icons-sass && yarn build.scss && yarn copy-tasks",
|
|
60
|
-
"build.js": "tsc && esbuild dist/*.js --allow-overwrite --minify --outdir=dist --log-level=silent && esbuild dist/assets/*.js --allow-overwrite --minify --outdir=dist/assets --log-level=silent",
|
|
58
|
+
"build.js": "tsc && node minify-literals.js && esbuild dist/*.js --allow-overwrite --minify --outdir=dist --log-level=silent && esbuild dist/assets/*.js --allow-overwrite --minify --outdir=dist/assets --log-level=silent",
|
|
61
59
|
"build-no-svg": "yarn build.js && yarn build.scss && yarn copy-tasks",
|
|
62
60
|
"build.scss": "yarn build.scss.base && yarn build.scss.bundles",
|
|
63
61
|
"build.scss.base": "scss-bundle -e ./src/icons/_generated/categories.scss -o src/icons/_generated/categories-bundled.scss --logLevel=silent",
|
|
@@ -80,10 +78,10 @@
|
|
|
80
78
|
},
|
|
81
79
|
"license": "Apache-2.0",
|
|
82
80
|
"peerDependencies": {
|
|
83
|
-
"@genexus/chameleon-controls-library": ">= 6.
|
|
81
|
+
"@genexus/chameleon-controls-library": ">= 6.22.1"
|
|
84
82
|
},
|
|
85
83
|
"devDependencies": {
|
|
86
|
-
"@genexus/chameleon-controls-library": "6.
|
|
84
|
+
"@genexus/chameleon-controls-library": "6.22.1",
|
|
87
85
|
"@genexus/svg-sass-generator": "1.1.24",
|
|
88
86
|
"@jackolope/ts-lit-plugin": "^3.1.4",
|
|
89
87
|
"@types/node": "~22.10.5",
|
|
@@ -94,9 +92,10 @@
|
|
|
94
92
|
"@vitest/ui": "~3.1.1",
|
|
95
93
|
"chokidar": "^3.6.0",
|
|
96
94
|
"chokidar-cli": "^3.0.0",
|
|
97
|
-
"esbuild": "0.25.
|
|
95
|
+
"esbuild": "~0.25.8",
|
|
98
96
|
"eslint": "~9.26.0",
|
|
99
97
|
"globals": "~16.1.0",
|
|
98
|
+
"minify-html-literals": "~1.3.5",
|
|
100
99
|
"playwright": "*",
|
|
101
100
|
"prettier": "~3.5.3",
|
|
102
101
|
"sass": "~1.86.3",
|