@websolutespa/bom-mixer-llm 1.8.0 → 1.8.2
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/CHANGELOG.md +12 -0
- package/dist/cjs/index.css +24 -16
- package/dist/cjs/index.js +36 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.css +24 -16
- package/dist/esm/llm/components/Prompt/prompt.js +2 -2
- package/dist/esm/llm/components/Prompt/prompt.js.map +1 -1
- package/dist/esm/llm/components/Text/text.js +34 -2
- package/dist/esm/llm/components/Text/text.js.map +1 -1
- package/dist/esm/llm/components/Thread/thread.js +1 -1
- package/dist/esm/llm/components/Thread/thread.js.map +1 -1
- package/dist/esm/useLlm/message.service.js +1 -1
- package/dist/esm/useLlm/message.service.js.map +1 -1
- package/dist/esm/useLlm/useLlmView.js +1 -1
- package/dist/esm/useLlm/useLlmView.js.map +1 -1
- package/dist/types/llm/components/Prompt/prompt.d.ts.map +1 -1
- package/dist/types/llm/components/Text/text.d.ts.map +1 -1
- package/dist/types/llm/components/Thread/thread.d.ts.map +1 -1
- package/dist/types/useLlm/mock-thread.lfo.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/llm/components/BusyIndicator/_style.scss +1 -0
- package/src/llm/components/CardGroup/_style.scss +4 -2
- package/src/llm/components/Prompt/_style.scss +8 -8
- package/src/llm/components/Prompt/prompt.tsx +2 -7
- package/src/llm/components/Scroller/_style.scss +1 -0
- package/src/llm/components/Text/_style.scss +5 -0
- package/src/llm/components/Text/text.tsx +31 -3
- package/src/llm/components/Thread/_style.scss +10 -5
- package/src/llm/components/Thread/thread.tsx +1 -2
- package/src/useLlm/message.service.ts +1 -1
- package/src/useLlm/mock-thread.lfo.ts +2 -0
- package/src/useLlm/useLlmView.tsx +1 -1
package/CHANGELOG.md
CHANGED
package/dist/cjs/index.css
CHANGED
|
@@ -1179,6 +1179,7 @@ llm-embed {
|
|
|
1179
1179
|
inset: 0;
|
|
1180
1180
|
overflow-x: hidden;
|
|
1181
1181
|
overflow-y: auto;
|
|
1182
|
+
max-width: 100%;
|
|
1182
1183
|
/*
|
|
1183
1184
|
&.lenis.lenis-stopped {
|
|
1184
1185
|
overflow-x: hidden;
|
|
@@ -1336,6 +1337,14 @@ llm-embed {
|
|
|
1336
1337
|
background: var(--llm-input-background);
|
|
1337
1338
|
width: 100%;
|
|
1338
1339
|
}
|
|
1340
|
+
.llm .llm__prompt-input.-speech-supported > .llm__prompt-textarea {
|
|
1341
|
+
padding: 10px 40px;
|
|
1342
|
+
}
|
|
1343
|
+
@media (min-width: 1024px) {
|
|
1344
|
+
.llm .llm__prompt-input.-speech-supported > .llm__prompt-textarea {
|
|
1345
|
+
padding: 18px 40px;
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1339
1348
|
.llm .llm__prompt-textarea {
|
|
1340
1349
|
appearance: none;
|
|
1341
1350
|
display: block;
|
|
@@ -1373,14 +1382,6 @@ llm-embed {
|
|
|
1373
1382
|
max-height: 220px;
|
|
1374
1383
|
}
|
|
1375
1384
|
}
|
|
1376
|
-
.-speech-supported .llm .llm__prompt-textarea {
|
|
1377
|
-
padding: 10px 40px;
|
|
1378
|
-
}
|
|
1379
|
-
@media (min-width: 1024px) {
|
|
1380
|
-
.-speech-supported .llm .llm__prompt-textarea {
|
|
1381
|
-
padding: 18px 40px;
|
|
1382
|
-
}
|
|
1383
|
-
}
|
|
1384
1385
|
.llm .llm__prompt-speak, .llm .llm__prompt-microphone {
|
|
1385
1386
|
position: absolute;
|
|
1386
1387
|
display: flex;
|
|
@@ -1682,6 +1683,10 @@ llm-embed {
|
|
|
1682
1683
|
height: 320px;
|
|
1683
1684
|
object-fit: cover;
|
|
1684
1685
|
}
|
|
1686
|
+
.llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body .llm__pill {
|
|
1687
|
+
max-width: max(400px, 30vw);
|
|
1688
|
+
margin-bottom: 1em;
|
|
1689
|
+
}
|
|
1685
1690
|
.llm .llm__text-disclaimer {
|
|
1686
1691
|
line-height: 1;
|
|
1687
1692
|
font-family: var(--llm-font-secondary);
|
|
@@ -1916,12 +1921,13 @@ llm-embed {
|
|
|
1916
1921
|
}
|
|
1917
1922
|
.llm .llm__cards {
|
|
1918
1923
|
width: 100%;
|
|
1919
|
-
max-width: min(1360px, 75vw + 60px);
|
|
1920
1924
|
margin: 0 auto 3rem auto;
|
|
1925
|
+
overflow: hidden;
|
|
1921
1926
|
}
|
|
1922
1927
|
.llm .llm__cards .swiper {
|
|
1923
|
-
|
|
1928
|
+
max-width: min(1360px, 75vw + 60px);
|
|
1924
1929
|
margin-top: clamp(40px, 40px + (100vw - 375px) / 1545 * 48, 88px);
|
|
1930
|
+
position: relative;
|
|
1925
1931
|
overflow: visible;
|
|
1926
1932
|
}
|
|
1927
1933
|
.llm .llm__cards .swiper-slide {
|
|
@@ -2559,14 +2565,15 @@ llm-embed {
|
|
|
2559
2565
|
.llm .llm__message--user:last-child {
|
|
2560
2566
|
margin-bottom: 20vh;
|
|
2561
2567
|
}
|
|
2562
|
-
.llm .llm__inner
|
|
2563
|
-
display: none;
|
|
2564
|
-
}
|
|
2565
|
-
.llm .llm__inner--eventGroup {
|
|
2568
|
+
.llm .llm__inner {
|
|
2566
2569
|
width: 100%;
|
|
2570
|
+
margin: 0 clamp(20px, 20px + (100vw - 375px) / 1545 * 90, 110px);
|
|
2567
2571
|
}
|
|
2568
|
-
.llm .llm__inner--
|
|
2569
|
-
|
|
2572
|
+
.llm .llm__inner--cardGroup {
|
|
2573
|
+
margin: 0;
|
|
2574
|
+
}
|
|
2575
|
+
.llm .llm__inner:empty {
|
|
2576
|
+
display: none;
|
|
2570
2577
|
}
|
|
2571
2578
|
.llm .llm__message--user .llm__inner--string {
|
|
2572
2579
|
margin-left: auto;
|
|
@@ -2869,6 +2876,7 @@ llm-embed {
|
|
|
2869
2876
|
height: 30px;
|
|
2870
2877
|
left: 10px;
|
|
2871
2878
|
bottom: -50px;
|
|
2879
|
+
margin: 0 clamp(20px, 20px + (100vw - 375px) / 1545 * 90, 110px);
|
|
2872
2880
|
user-select: none;
|
|
2873
2881
|
pointer-events: none;
|
|
2874
2882
|
transition: none;
|
package/dist/cjs/index.js
CHANGED
|
@@ -1455,7 +1455,7 @@ class MessageService {
|
|
|
1455
1455
|
mockMessage(request, onMessage, onEnd, onChunk) {
|
|
1456
1456
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1457
1457
|
var _a, e_2, _b, _c;
|
|
1458
|
-
console.log('mockMessage', request);
|
|
1458
|
+
// console.log('mockMessage', request);
|
|
1459
1459
|
this.abort();
|
|
1460
1460
|
const aborter = new AbortController();
|
|
1461
1461
|
const {
|
|
@@ -2311,7 +2311,7 @@ const createLlmViewStore = _ref => {
|
|
|
2311
2311
|
*/
|
|
2312
2312
|
if (scroller_) {
|
|
2313
2313
|
const userMessages = Array.from(document.querySelectorAll('.llm.-open .llm__message.llm__message--user'));
|
|
2314
|
-
console.log(userMessages);
|
|
2314
|
+
// console.log(userMessages);
|
|
2315
2315
|
if (userMessages.length > 0) {
|
|
2316
2316
|
const lastUserMessage = userMessages.pop();
|
|
2317
2317
|
lastUserMessage.scrollIntoView({
|
|
@@ -3560,7 +3560,7 @@ const Prompt = () => {
|
|
|
3560
3560
|
const textArea = react.useRef(null);
|
|
3561
3561
|
const app = useLlm(state => state.app);
|
|
3562
3562
|
const prompt = useLlm(state => state.prompt);
|
|
3563
|
-
useLlm(state => state.messages);
|
|
3563
|
+
const messages = useLlm(state => state.messages);
|
|
3564
3564
|
const streaming = useLlm(state => state.streaming);
|
|
3565
3565
|
const speakEnabled = useLlm(state => state.speakEnabled);
|
|
3566
3566
|
const {
|
|
@@ -3601,7 +3601,7 @@ const Prompt = () => {
|
|
|
3601
3601
|
className: "llm__prompt",
|
|
3602
3602
|
children: jsxRuntime.jsxs("div", {
|
|
3603
3603
|
className: "llm-container",
|
|
3604
|
-
children: [jsxRuntime.jsx("div", {
|
|
3604
|
+
children: [messages.length === 0 && jsxRuntime.jsx("div", {
|
|
3605
3605
|
className: "llm__prompt-suggestions",
|
|
3606
3606
|
children: jsxRuntime.jsx(Suggestions, {})
|
|
3607
3607
|
}), jsxRuntime.jsxs("form", {
|
|
@@ -4600,7 +4600,12 @@ function getEmailHtml(data, app) {
|
|
|
4600
4600
|
const Text = props => {
|
|
4601
4601
|
const label = bomMixerHooks.useLabel();
|
|
4602
4602
|
const app = useLlm(state => state.app);
|
|
4603
|
+
const {
|
|
4604
|
+
send
|
|
4605
|
+
} = useLlmView(state => state.actions);
|
|
4603
4606
|
const appDisclaimer = app === null || app === void 0 ? void 0 : app.contents.disclaimer;
|
|
4607
|
+
const disclaimer = props.disclaimer ? appDisclaimer || label('llm.disclaimer') : '';
|
|
4608
|
+
const htmlRef = react.useRef(null);
|
|
4604
4609
|
const html = react.useMemo(() => {
|
|
4605
4610
|
marked.marked.use({
|
|
4606
4611
|
renderer: {
|
|
@@ -4617,14 +4622,39 @@ const Text = props => {
|
|
|
4617
4622
|
<img src="${href}"${title ? ` title="${title}"` : ''} alt="${text}" />
|
|
4618
4623
|
</a>`;
|
|
4619
4624
|
}
|
|
4625
|
+
/*
|
|
4626
|
+
html(html: string, block?: boolean) {
|
|
4627
|
+
console.log('html', html);
|
|
4628
|
+
return html;
|
|
4629
|
+
},
|
|
4630
|
+
*/
|
|
4620
4631
|
}
|
|
4621
4632
|
});
|
|
4622
4633
|
return marked.marked.parse(props.body);
|
|
4623
4634
|
}, [props.body]);
|
|
4624
|
-
|
|
4635
|
+
react.useEffect(() => {
|
|
4636
|
+
let pills = [];
|
|
4637
|
+
if (htmlRef.current) {
|
|
4638
|
+
pills = Array.from(htmlRef.current.querySelectorAll('.llm__pill'));
|
|
4639
|
+
}
|
|
4640
|
+
const pillClickHandler = event => __awaiter(void 0, void 0, void 0, function* () {
|
|
4641
|
+
if (event.currentTarget) {
|
|
4642
|
+
yield send(event.currentTarget.innerText, response => {
|
|
4643
|
+
// console.log('Suggestions.onMessage', response.chunks);
|
|
4644
|
+
}, response => {
|
|
4645
|
+
// console.log('Suggestions.onEnd', response);
|
|
4646
|
+
});
|
|
4647
|
+
}
|
|
4648
|
+
});
|
|
4649
|
+
pills.forEach(x => x.addEventListener('click', pillClickHandler));
|
|
4650
|
+
return () => {
|
|
4651
|
+
pills.forEach(x => x.removeEventListener('click', pillClickHandler));
|
|
4652
|
+
};
|
|
4653
|
+
}, [props.body, send]);
|
|
4625
4654
|
return jsxRuntime.jsxs("div", {
|
|
4626
4655
|
className: "llm__text",
|
|
4627
4656
|
children: [jsxRuntime.jsx("div", {
|
|
4657
|
+
ref: htmlRef,
|
|
4628
4658
|
className: "llm__text-body",
|
|
4629
4659
|
dangerouslySetInnerHTML: {
|
|
4630
4660
|
__html: html
|
|
@@ -4964,7 +4994,7 @@ const Stream = props => {
|
|
|
4964
4994
|
const Thread = () => {
|
|
4965
4995
|
const messages = useLlm(state => state.messages);
|
|
4966
4996
|
return jsxRuntime.jsxs("div", {
|
|
4967
|
-
className: "llm__thread
|
|
4997
|
+
className: "llm__thread",
|
|
4968
4998
|
children: [messages.map((message, m) => jsxRuntime.jsx("div", {
|
|
4969
4999
|
className: bomCore.getClassNames('llm__message', `llm__message--${message.role}`, 'llm-row'),
|
|
4970
5000
|
children: message.chunks.map((chunk, c) => jsxRuntime.jsx("div", {
|