@websolutespa/bom-llm 0.0.22 → 0.0.24
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/umd/index.css +24 -16
- package/dist/umd/index.js +36 -6
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/dist/umd/index.css
CHANGED
|
@@ -1313,6 +1313,7 @@ llm-embed {
|
|
|
1313
1313
|
inset: 0;
|
|
1314
1314
|
overflow-x: hidden;
|
|
1315
1315
|
overflow-y: auto;
|
|
1316
|
+
max-width: 100%;
|
|
1316
1317
|
/*
|
|
1317
1318
|
&.lenis.lenis-stopped {
|
|
1318
1319
|
overflow-x: hidden;
|
|
@@ -1470,6 +1471,14 @@ llm-embed {
|
|
|
1470
1471
|
background: var(--llm-input-background);
|
|
1471
1472
|
width: 100%;
|
|
1472
1473
|
}
|
|
1474
|
+
.llm .llm__prompt-input.-speech-supported > .llm__prompt-textarea {
|
|
1475
|
+
padding: 10px 40px;
|
|
1476
|
+
}
|
|
1477
|
+
@media (min-width: 1024px) {
|
|
1478
|
+
.llm .llm__prompt-input.-speech-supported > .llm__prompt-textarea {
|
|
1479
|
+
padding: 18px 40px;
|
|
1480
|
+
}
|
|
1481
|
+
}
|
|
1473
1482
|
.llm .llm__prompt-textarea {
|
|
1474
1483
|
appearance: none;
|
|
1475
1484
|
display: block;
|
|
@@ -1507,14 +1516,6 @@ llm-embed {
|
|
|
1507
1516
|
max-height: 220px;
|
|
1508
1517
|
}
|
|
1509
1518
|
}
|
|
1510
|
-
.-speech-supported .llm .llm__prompt-textarea {
|
|
1511
|
-
padding: 10px 40px;
|
|
1512
|
-
}
|
|
1513
|
-
@media (min-width: 1024px) {
|
|
1514
|
-
.-speech-supported .llm .llm__prompt-textarea {
|
|
1515
|
-
padding: 18px 40px;
|
|
1516
|
-
}
|
|
1517
|
-
}
|
|
1518
1519
|
.llm .llm__prompt-speak, .llm .llm__prompt-microphone {
|
|
1519
1520
|
position: absolute;
|
|
1520
1521
|
display: flex;
|
|
@@ -1816,6 +1817,10 @@ llm-embed {
|
|
|
1816
1817
|
height: 320px;
|
|
1817
1818
|
object-fit: cover;
|
|
1818
1819
|
}
|
|
1820
|
+
.llm .llm__message--assistant .llm__inner--string .llm__text .llm__text-body .llm__pill {
|
|
1821
|
+
max-width: max(400px, 30vw);
|
|
1822
|
+
margin-bottom: 1em;
|
|
1823
|
+
}
|
|
1819
1824
|
.llm .llm__text-disclaimer {
|
|
1820
1825
|
line-height: 1;
|
|
1821
1826
|
font-family: var(--llm-font-secondary);
|
|
@@ -2050,12 +2055,13 @@ llm-embed {
|
|
|
2050
2055
|
}
|
|
2051
2056
|
.llm .llm__cards {
|
|
2052
2057
|
width: 100%;
|
|
2053
|
-
max-width: min(1360px, 75vw + 60px);
|
|
2054
2058
|
margin: 0 auto 3rem auto;
|
|
2059
|
+
overflow: hidden;
|
|
2055
2060
|
}
|
|
2056
2061
|
.llm .llm__cards .swiper {
|
|
2057
|
-
|
|
2062
|
+
max-width: min(1360px, 75vw + 60px);
|
|
2058
2063
|
margin-top: clamp(40px, 40px + (100vw - 375px) / 1545 * 48, 88px);
|
|
2064
|
+
position: relative;
|
|
2059
2065
|
overflow: visible;
|
|
2060
2066
|
}
|
|
2061
2067
|
.llm .llm__cards .swiper-slide {
|
|
@@ -2693,14 +2699,15 @@ llm-embed {
|
|
|
2693
2699
|
.llm .llm__message--user:last-child {
|
|
2694
2700
|
margin-bottom: 20vh;
|
|
2695
2701
|
}
|
|
2696
|
-
.llm .llm__inner
|
|
2697
|
-
display: none;
|
|
2698
|
-
}
|
|
2699
|
-
.llm .llm__inner--eventGroup {
|
|
2702
|
+
.llm .llm__inner {
|
|
2700
2703
|
width: 100%;
|
|
2704
|
+
margin: 0 clamp(20px, 20px + (100vw - 375px) / 1545 * 90, 110px);
|
|
2701
2705
|
}
|
|
2702
|
-
.llm .llm__inner--
|
|
2703
|
-
|
|
2706
|
+
.llm .llm__inner--cardGroup {
|
|
2707
|
+
margin: 0;
|
|
2708
|
+
}
|
|
2709
|
+
.llm .llm__inner:empty {
|
|
2710
|
+
display: none;
|
|
2704
2711
|
}
|
|
2705
2712
|
.llm .llm__message--user .llm__inner--string {
|
|
2706
2713
|
margin-left: auto;
|
|
@@ -3003,6 +3010,7 @@ llm-embed {
|
|
|
3003
3010
|
height: 30px;
|
|
3004
3011
|
left: 10px;
|
|
3005
3012
|
bottom: -50px;
|
|
3013
|
+
margin: 0 clamp(20px, 20px + (100vw - 375px) / 1545 * 90, 110px);
|
|
3006
3014
|
user-select: none;
|
|
3007
3015
|
pointer-events: none;
|
|
3008
3016
|
transition: none;
|
package/dist/umd/index.js
CHANGED
|
@@ -19022,7 +19022,7 @@ ${Object.entries(vars).map(_ref2 => {
|
|
|
19022
19022
|
}
|
|
19023
19023
|
}
|
|
19024
19024
|
async mockMessage(request, onMessage, onEnd, onChunk) {
|
|
19025
|
-
console.log('mockMessage', request);
|
|
19025
|
+
// console.log('mockMessage', request);
|
|
19026
19026
|
this.abort();
|
|
19027
19027
|
const aborter = new AbortController();
|
|
19028
19028
|
const {
|
|
@@ -19882,7 +19882,7 @@ ${Object.entries(vars).map(_ref2 => {
|
|
|
19882
19882
|
*/
|
|
19883
19883
|
if (scroller_) {
|
|
19884
19884
|
const userMessages = Array.from(document.querySelectorAll('.llm.-open .llm__message.llm__message--user'));
|
|
19885
|
-
console.log(userMessages);
|
|
19885
|
+
// console.log(userMessages);
|
|
19886
19886
|
if (userMessages.length > 0) {
|
|
19887
19887
|
const lastUserMessage = userMessages.pop();
|
|
19888
19888
|
lastUserMessage.scrollIntoView({
|
|
@@ -27255,7 +27255,7 @@ void main(void) {
|
|
|
27255
27255
|
const textArea = reactExports.useRef(null);
|
|
27256
27256
|
const app = useLlm(state => state.app);
|
|
27257
27257
|
const prompt = useLlm(state => state.prompt);
|
|
27258
|
-
useLlm(state => state.messages);
|
|
27258
|
+
const messages = useLlm(state => state.messages);
|
|
27259
27259
|
const streaming = useLlm(state => state.streaming);
|
|
27260
27260
|
const speakEnabled = useLlm(state => state.speakEnabled);
|
|
27261
27261
|
const {
|
|
@@ -27295,7 +27295,7 @@ void main(void) {
|
|
|
27295
27295
|
className: "llm__prompt",
|
|
27296
27296
|
children: /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
27297
27297
|
className: "llm-container",
|
|
27298
|
-
children: [/*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
27298
|
+
children: [messages.length === 0 && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
27299
27299
|
className: "llm__prompt-suggestions",
|
|
27300
27300
|
children: /*#__PURE__*/jsxRuntimeExports.jsx(Suggestions, {})
|
|
27301
27301
|
}), /*#__PURE__*/jsxRuntimeExports.jsxs("form", {
|
|
@@ -30639,7 +30639,12 @@ void main(void) {
|
|
|
30639
30639
|
const Text = props => {
|
|
30640
30640
|
const label = useLabel();
|
|
30641
30641
|
const app = useLlm(state => state.app);
|
|
30642
|
+
const {
|
|
30643
|
+
send
|
|
30644
|
+
} = useLlmView(state => state.actions);
|
|
30642
30645
|
const appDisclaimer = app?.contents.disclaimer;
|
|
30646
|
+
const disclaimer = props.disclaimer ? appDisclaimer || label('llm.disclaimer') : '';
|
|
30647
|
+
const htmlRef = reactExports.useRef(null);
|
|
30643
30648
|
const html = reactExports.useMemo(() => {
|
|
30644
30649
|
marked.use({
|
|
30645
30650
|
renderer: {
|
|
@@ -30656,14 +30661,39 @@ void main(void) {
|
|
|
30656
30661
|
<img src="${href}"${title ? ` title="${title}"` : ''} alt="${text}" />
|
|
30657
30662
|
</a>`;
|
|
30658
30663
|
}
|
|
30664
|
+
/*
|
|
30665
|
+
html(html: string, block?: boolean) {
|
|
30666
|
+
console.log('html', html);
|
|
30667
|
+
return html;
|
|
30668
|
+
},
|
|
30669
|
+
*/
|
|
30659
30670
|
}
|
|
30660
30671
|
});
|
|
30661
30672
|
return marked.parse(props.body);
|
|
30662
30673
|
}, [props.body]);
|
|
30663
|
-
|
|
30674
|
+
reactExports.useEffect(() => {
|
|
30675
|
+
let pills = [];
|
|
30676
|
+
if (htmlRef.current) {
|
|
30677
|
+
pills = Array.from(htmlRef.current.querySelectorAll('.llm__pill'));
|
|
30678
|
+
}
|
|
30679
|
+
const pillClickHandler = async event => {
|
|
30680
|
+
if (event.currentTarget) {
|
|
30681
|
+
await send(event.currentTarget.innerText, response => {
|
|
30682
|
+
// console.log('Suggestions.onMessage', response.chunks);
|
|
30683
|
+
}, response => {
|
|
30684
|
+
// console.log('Suggestions.onEnd', response);
|
|
30685
|
+
});
|
|
30686
|
+
}
|
|
30687
|
+
};
|
|
30688
|
+
pills.forEach(x => x.addEventListener('click', pillClickHandler));
|
|
30689
|
+
return () => {
|
|
30690
|
+
pills.forEach(x => x.removeEventListener('click', pillClickHandler));
|
|
30691
|
+
};
|
|
30692
|
+
}, [props.body, send]);
|
|
30664
30693
|
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
30665
30694
|
className: "llm__text",
|
|
30666
30695
|
children: [/*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
30696
|
+
ref: htmlRef,
|
|
30667
30697
|
className: "llm__text-body",
|
|
30668
30698
|
dangerouslySetInnerHTML: {
|
|
30669
30699
|
__html: html
|
|
@@ -31021,7 +31051,7 @@ void main(void) {
|
|
|
31021
31051
|
const Thread = () => {
|
|
31022
31052
|
const messages = useLlm(state => state.messages);
|
|
31023
31053
|
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
31024
|
-
className: "llm__thread
|
|
31054
|
+
className: "llm__thread",
|
|
31025
31055
|
children: [messages.map((message, m) => /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
31026
31056
|
className: getClassNames('llm__message', `llm__message--${message.role}`, 'llm-row'),
|
|
31027
31057
|
children: message.chunks.map((chunk, c) => /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|