@memori.ai/memori-react 9.0.0-alpha.10 → 9.0.0-alpha.13
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 +270 -0
- package/dist/components/Chat/Chat.css +19 -0
- package/dist/components/ChatBubble/ChatBubble.js +11 -23
- package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
- package/dist/components/ChatInputs/ChatInputs.css +77 -3
- package/dist/components/ChatTextArea/ChatTextArea.css +5 -25
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +7 -2
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +31 -15
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +181 -150
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +7 -7
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +11 -2
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +1 -0
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
- package/dist/components/MemoriWidget/MemoriWidget.js +120 -116
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/components/MicrophoneButton/MicrophoneButton.css +22 -0
- package/dist/components/PoweredBy/PoweredBy.css +1 -8
- package/dist/components/StartPanel/StartPanel.js +1 -1
- package/dist/components/StartPanel/StartPanel.js.map +1 -1
- package/dist/components/layouts/Chat.js +6 -1
- package/dist/components/layouts/Chat.js.map +1 -1
- package/dist/components/layouts/WebsiteAssistant/website-assistant.css +5 -5
- package/dist/components/layouts/chat.css +98 -3
- package/dist/components/layouts/fullpage.css +7 -7
- package/dist/components/layouts/hidden-chat.css +2 -2
- package/dist/components/layouts/zoomed-full-body.css +6 -6
- package/dist/helpers/media.js +18 -3
- package/dist/helpers/media.js.map +1 -1
- package/dist/index.js +16 -16
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/esm/components/Chat/Chat.css +19 -0
- package/esm/components/ChatBubble/ChatBubble.js +12 -24
- package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
- package/esm/components/ChatInputs/ChatInputs.css +77 -3
- package/esm/components/ChatTextArea/ChatTextArea.css +5 -25
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +7 -2
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +31 -15
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +181 -150
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +8 -8
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +11 -2
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +1 -0
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +2 -2
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
- package/esm/components/MemoriWidget/MemoriWidget.js +121 -117
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/components/MicrophoneButton/MicrophoneButton.css +22 -0
- package/esm/components/PoweredBy/PoweredBy.css +1 -8
- package/esm/components/StartPanel/StartPanel.js +1 -1
- package/esm/components/StartPanel/StartPanel.js.map +1 -1
- package/esm/components/layouts/Chat.js +6 -1
- package/esm/components/layouts/Chat.js.map +1 -1
- package/esm/components/layouts/WebsiteAssistant/website-assistant.css +5 -5
- package/esm/components/layouts/chat.css +98 -3
- package/esm/components/layouts/fullpage.css +7 -7
- package/esm/components/layouts/hidden-chat.css +2 -2
- package/esm/components/layouts/zoomed-full-body.css +6 -6
- package/esm/helpers/media.js +18 -3
- package/esm/helpers/media.js.map +1 -1
- package/esm/index.js +17 -17
- package/esm/index.js.map +1 -1
- package/esm/styles.css +1 -1
- package/esm/version.d.ts +1 -1
- package/esm/version.js +1 -1
- package/package.json +2 -2
- package/src/__snapshots__/index.test.tsx.snap +0 -50
- package/src/components/Chat/Chat.css +19 -0
- package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +10 -10
- package/src/components/ChatBubble/ChatBubble.test.tsx +25 -1
- package/src/components/ChatBubble/ChatBubble.tsx +20 -27
- package/src/components/ChatInputs/ChatInputs.css +77 -3
- package/src/components/ChatTextArea/ChatTextArea.css +5 -25
- package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +1 -1
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +7 -2
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +31 -15
- package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +181 -150
- package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +63 -74
- package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +11 -2
- package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +1 -0
- package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +2 -2
- package/src/components/MemoriWidget/MemoriWidget.tsx +8 -1
- package/src/components/MicrophoneButton/MicrophoneButton.css +22 -0
- package/src/components/PoweredBy/PoweredBy.css +1 -8
- package/src/components/StartPanel/StartPanel.tsx +1 -1
- package/src/components/layouts/Chat.tsx +14 -1
- package/src/components/layouts/HiddenChat.tsx +1 -1
- package/src/components/layouts/WebsiteAssistant/__snapshots__/WebsiteAssistant.test.tsx.snap +10 -0
- package/src/components/layouts/WebsiteAssistant/website-assistant.css +5 -5
- package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +17 -2
- package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +30 -2
- package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +10 -0
- package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +15 -1
- package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +15 -1
- package/src/components/layouts/chat.css +98 -3
- package/src/components/layouts/fullpage.css +7 -7
- package/src/components/layouts/hidden-chat.css +2 -2
- package/src/components/layouts/layouts.stories.tsx +8 -8
- package/src/components/layouts/zoomed-full-body.css +6 -6
- package/src/helpers/media.test.ts +36 -0
- package/src/helpers/media.ts +39 -12
- package/src/index.tsx +1 -5
- package/src/styles.css +18 -5
- package/src/version.ts +1 -1
package/esm/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "9.0.0-alpha.
|
|
1
|
+
export declare const version = "9.0.0-alpha.13";
|
package/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '9.0.0-alpha.
|
|
1
|
+
export const version = '9.0.0-alpha.13';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "9.0.0-alpha.
|
|
2
|
+
"version": "9.0.0-alpha.13",
|
|
3
3
|
"name": "@memori.ai/memori-react",
|
|
4
4
|
"author": "Memori Srl",
|
|
5
5
|
"main": "dist/index.js",
|
|
@@ -308,7 +308,7 @@
|
|
|
308
308
|
"@react-three/drei": "8.20.2",
|
|
309
309
|
"@react-three/fiber": "7.0.25",
|
|
310
310
|
"classnames": "2.5.1",
|
|
311
|
-
"dompurify": "^3.4.
|
|
311
|
+
"dompurify": "^3.4.13",
|
|
312
312
|
"ellipsed": "1.6.0",
|
|
313
313
|
"i18next": "22.0.6",
|
|
314
314
|
"katex": "^0.16.11",
|
|
@@ -2,16 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`renders client 1`] = `
|
|
4
4
|
<div>
|
|
5
|
-
<div
|
|
6
|
-
aria-atomic="false"
|
|
7
|
-
aria-label="Notifications"
|
|
8
|
-
aria-live="polite"
|
|
9
|
-
aria-relevant="additions text"
|
|
10
|
-
class="memori-alert-viewport memori-alert-viewport--top-end"
|
|
11
|
-
role="region"
|
|
12
|
-
style="z-index: 10002; top: 30px; right: 30px; position: fixed;"
|
|
13
|
-
tabindex="-1"
|
|
14
|
-
/>
|
|
15
5
|
<div
|
|
16
6
|
style="display: flex; align-items: center; justify-content: center;"
|
|
17
7
|
>
|
|
@@ -27,16 +17,6 @@ exports[`renders client 1`] = `
|
|
|
27
17
|
|
|
28
18
|
exports[`renders client with all the props 1`] = `
|
|
29
19
|
<div>
|
|
30
|
-
<div
|
|
31
|
-
aria-atomic="false"
|
|
32
|
-
aria-label="Notifications"
|
|
33
|
-
aria-live="polite"
|
|
34
|
-
aria-relevant="additions text"
|
|
35
|
-
class="memori-alert-viewport memori-alert-viewport--top-end"
|
|
36
|
-
role="region"
|
|
37
|
-
style="z-index: 10002; top: 30px; right: 30px; position: fixed;"
|
|
38
|
-
tabindex="-1"
|
|
39
|
-
/>
|
|
40
20
|
<div
|
|
41
21
|
style="display: flex; align-items: center; justify-content: center;"
|
|
42
22
|
>
|
|
@@ -52,16 +32,6 @@ exports[`renders client with all the props 1`] = `
|
|
|
52
32
|
|
|
53
33
|
exports[`renders client with audio disabled 1`] = `
|
|
54
34
|
<div>
|
|
55
|
-
<div
|
|
56
|
-
aria-atomic="false"
|
|
57
|
-
aria-label="Notifications"
|
|
58
|
-
aria-live="polite"
|
|
59
|
-
aria-relevant="additions text"
|
|
60
|
-
class="memori-alert-viewport memori-alert-viewport--top-end"
|
|
61
|
-
role="region"
|
|
62
|
-
style="z-index: 10002; top: 30px; right: 30px; position: fixed;"
|
|
63
|
-
tabindex="-1"
|
|
64
|
-
/>
|
|
65
35
|
<div
|
|
66
36
|
style="display: flex; align-items: center; justify-content: center;"
|
|
67
37
|
>
|
|
@@ -77,16 +47,6 @@ exports[`renders client with audio disabled 1`] = `
|
|
|
77
47
|
|
|
78
48
|
exports[`renders client with whiteListedDomains on allowed domains 1`] = `
|
|
79
49
|
<div>
|
|
80
|
-
<div
|
|
81
|
-
aria-atomic="false"
|
|
82
|
-
aria-label="Notifications"
|
|
83
|
-
aria-live="polite"
|
|
84
|
-
aria-relevant="additions text"
|
|
85
|
-
class="memori-alert-viewport memori-alert-viewport--top-end"
|
|
86
|
-
role="region"
|
|
87
|
-
style="z-index: 10002; top: 30px; right: 30px; position: fixed;"
|
|
88
|
-
tabindex="-1"
|
|
89
|
-
/>
|
|
90
50
|
<div
|
|
91
51
|
style="display: flex; align-items: center; justify-content: center;"
|
|
92
52
|
>
|
|
@@ -102,16 +62,6 @@ exports[`renders client with whiteListedDomains on allowed domains 1`] = `
|
|
|
102
62
|
|
|
103
63
|
exports[`renders client with whiteListedDomains on not allowed domains 1`] = `
|
|
104
64
|
<div>
|
|
105
|
-
<div
|
|
106
|
-
aria-atomic="false"
|
|
107
|
-
aria-label="Notifications"
|
|
108
|
-
aria-live="polite"
|
|
109
|
-
aria-relevant="additions text"
|
|
110
|
-
class="memori-alert-viewport memori-alert-viewport--top-end"
|
|
111
|
-
role="region"
|
|
112
|
-
style="z-index: 10002; top: 30px; right: 30px; position: fixed;"
|
|
113
|
-
tabindex="-1"
|
|
114
|
-
/>
|
|
115
65
|
<div
|
|
116
66
|
style="display: flex; align-items: center; justify-content: center;"
|
|
117
67
|
>
|
|
@@ -67,6 +67,25 @@
|
|
|
67
67
|
/* mask-image: linear-gradient(transparent, black 5%, black 95%, transparent 100%); */
|
|
68
68
|
overflow-y: auto;
|
|
69
69
|
scroll-behavior: smooth;
|
|
70
|
+
scrollbar-color: color-mix(in oklch, var(--memori-neutral, #6b7280) 55%, transparent) transparent;
|
|
71
|
+
scrollbar-width: thin;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.memori-chat--content::-webkit-scrollbar {
|
|
75
|
+
width: 8px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.memori-chat--content::-webkit-scrollbar-track {
|
|
79
|
+
background: transparent;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.memori-chat--content::-webkit-scrollbar-thumb {
|
|
83
|
+
border-radius: 999px;
|
|
84
|
+
background-color: color-mix(in oklch, var(--memori-neutral, #6b7280) 45%, transparent);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.memori-chat--content::-webkit-scrollbar-thumb:hover {
|
|
88
|
+
background-color: color-mix(in oklch, var(--memori-neutral, #6b7280) 60%, transparent);
|
|
70
89
|
}
|
|
71
90
|
|
|
72
91
|
/* Conversation-column overrides sit between base and layout-scoped rules. */
|
|
@@ -506,7 +506,7 @@ exports[`renders Chat unchanged 1`] = `
|
|
|
506
506
|
>
|
|
507
507
|
<a
|
|
508
508
|
class="memori-media-item--link memori-media-item--document-link"
|
|
509
|
-
href="https://memori.ai
|
|
509
|
+
href="https://memori.ai"
|
|
510
510
|
rel="noopener noreferrer"
|
|
511
511
|
target="_blank"
|
|
512
512
|
title="Link"
|
|
@@ -1494,7 +1494,7 @@ exports[`renders Chat with context vars unchanged 1`] = `
|
|
|
1494
1494
|
>
|
|
1495
1495
|
<a
|
|
1496
1496
|
class="memori-media-item--link memori-media-item--document-link"
|
|
1497
|
-
href="https://memori.ai
|
|
1497
|
+
href="https://memori.ai"
|
|
1498
1498
|
rel="noopener noreferrer"
|
|
1499
1499
|
target="_blank"
|
|
1500
1500
|
title="Link"
|
|
@@ -2476,7 +2476,7 @@ exports[`renders Chat with custom user avatar as react element unchanged 1`] = `
|
|
|
2476
2476
|
>
|
|
2477
2477
|
<a
|
|
2478
2478
|
class="memori-media-item--link memori-media-item--document-link"
|
|
2479
|
-
href="https://memori.ai
|
|
2479
|
+
href="https://memori.ai"
|
|
2480
2480
|
rel="noopener noreferrer"
|
|
2481
2481
|
target="_blank"
|
|
2482
2482
|
title="Link"
|
|
@@ -3414,7 +3414,7 @@ exports[`renders Chat with custom user avatar unchanged 1`] = `
|
|
|
3414
3414
|
>
|
|
3415
3415
|
<a
|
|
3416
3416
|
class="memori-media-item--link memori-media-item--document-link"
|
|
3417
|
-
href="https://memori.ai
|
|
3417
|
+
href="https://memori.ai"
|
|
3418
3418
|
rel="noopener noreferrer"
|
|
3419
3419
|
target="_blank"
|
|
3420
3420
|
title="Link"
|
|
@@ -4396,7 +4396,7 @@ exports[`renders Chat with dates unchanged 1`] = `
|
|
|
4396
4396
|
>
|
|
4397
4397
|
<a
|
|
4398
4398
|
class="memori-media-item--link memori-media-item--document-link"
|
|
4399
|
-
href="https://memori.ai
|
|
4399
|
+
href="https://memori.ai"
|
|
4400
4400
|
rel="noopener noreferrer"
|
|
4401
4401
|
target="_blank"
|
|
4402
4402
|
title="Link"
|
|
@@ -5394,7 +5394,7 @@ exports[`renders Chat with hints unchanged 1`] = `
|
|
|
5394
5394
|
>
|
|
5395
5395
|
<a
|
|
5396
5396
|
class="memori-media-item--link memori-media-item--document-link"
|
|
5397
|
-
href="https://memori.ai
|
|
5397
|
+
href="https://memori.ai"
|
|
5398
5398
|
rel="noopener noreferrer"
|
|
5399
5399
|
target="_blank"
|
|
5400
5400
|
title="Link"
|
|
@@ -6539,7 +6539,7 @@ exports[`renders Chat with media unchanged 1`] = `
|
|
|
6539
6539
|
>
|
|
6540
6540
|
<a
|
|
6541
6541
|
class="memori-media-item--link memori-media-item--document-link"
|
|
6542
|
-
href="https://memori.ai/en
|
|
6542
|
+
href="https://memori.ai/en"
|
|
6543
6543
|
rel="noopener noreferrer"
|
|
6544
6544
|
target="_blank"
|
|
6545
6545
|
title="Link Memori Srl"
|
|
@@ -7617,7 +7617,7 @@ exports[`renders Chat with memori typing unchanged 1`] = `
|
|
|
7617
7617
|
>
|
|
7618
7618
|
<a
|
|
7619
7619
|
class="memori-media-item--link memori-media-item--document-link"
|
|
7620
|
-
href="https://memori.ai
|
|
7620
|
+
href="https://memori.ai"
|
|
7621
7621
|
rel="noopener noreferrer"
|
|
7622
7622
|
target="_blank"
|
|
7623
7623
|
title="Link"
|
|
@@ -8628,7 +8628,7 @@ exports[`renders Chat with message consumption unchanged 1`] = `
|
|
|
8628
8628
|
>
|
|
8629
8629
|
<a
|
|
8630
8630
|
class="memori-media-item--link memori-media-item--document-link"
|
|
8631
|
-
href="https://memori.ai
|
|
8631
|
+
href="https://memori.ai"
|
|
8632
8632
|
rel="noopener noreferrer"
|
|
8633
8633
|
target="_blank"
|
|
8634
8634
|
title="Link"
|
|
@@ -9747,7 +9747,7 @@ exports[`renders Chat with user unchanged 1`] = `
|
|
|
9747
9747
|
>
|
|
9748
9748
|
<a
|
|
9749
9749
|
class="memori-media-item--link memori-media-item--document-link"
|
|
9750
|
-
href="https://memori.ai
|
|
9750
|
+
href="https://memori.ai"
|
|
9751
9751
|
rel="noopener noreferrer"
|
|
9752
9752
|
target="_blank"
|
|
9753
9753
|
title="Link"
|
|
@@ -483,4 +483,28 @@ it('renders ChatBubble with reasoning and output and markdown unchanged', () =>
|
|
|
483
483
|
/>
|
|
484
484
|
);
|
|
485
485
|
expect(container).toMatchSnapshot();
|
|
486
|
-
});
|
|
486
|
+
});
|
|
487
|
+
|
|
488
|
+
it('uses the adjacent attachment link for document media', () => {
|
|
489
|
+
const attachmentUrl = 'https://assets.example.com/report.docx';
|
|
490
|
+
const { container } = render(
|
|
491
|
+
<ChatBubble
|
|
492
|
+
memori={memori}
|
|
493
|
+
tenant={tenant}
|
|
494
|
+
sessionID={sessionID}
|
|
495
|
+
message={{
|
|
496
|
+
fromUser: false,
|
|
497
|
+
initial: false,
|
|
498
|
+
text: [
|
|
499
|
+
'<document_attachment filename="report.docx" type="application/vnd.openxmlformats-officedocument.wordprocessingml.document">',
|
|
500
|
+
'</document_attachment>',
|
|
501
|
+
`<attachment_link>${attachmentUrl}</attachment_link>`,
|
|
502
|
+
].join('\n'),
|
|
503
|
+
}}
|
|
504
|
+
/>
|
|
505
|
+
);
|
|
506
|
+
|
|
507
|
+
expect(
|
|
508
|
+
container.querySelector(`a[href="${attachmentUrl}"]`)
|
|
509
|
+
).toBeInTheDocument();
|
|
510
|
+
});
|
|
@@ -25,7 +25,11 @@ import FeedbackButtons from '../FeedbackButtons/FeedbackButtons';
|
|
|
25
25
|
import { useTranslation } from 'react-i18next';
|
|
26
26
|
import { Button } from '@memori.ai/ui';
|
|
27
27
|
import WhyThisAnswer from '../WhyThisAnswer/WhyThisAnswer';
|
|
28
|
-
import {
|
|
28
|
+
import {
|
|
29
|
+
parseDocumentAttachmentsFromMessage,
|
|
30
|
+
stripHTML,
|
|
31
|
+
stripOutputTags,
|
|
32
|
+
} from '../../helpers/utils';
|
|
29
33
|
import {
|
|
30
34
|
renderMsg,
|
|
31
35
|
sanitizeMsg,
|
|
@@ -454,32 +458,21 @@ const ChatBubble: React.FC<Props> = ({
|
|
|
454
458
|
(m.mimeType === 'text/html' && !!m.url)
|
|
455
459
|
)
|
|
456
460
|
) || []),
|
|
457
|
-
...(
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
mimeType: type,
|
|
473
|
-
title: filename,
|
|
474
|
-
content: content.trim(),
|
|
475
|
-
properties: { isDocumentAttachment: true },
|
|
476
|
-
type: 'document',
|
|
477
|
-
});
|
|
478
|
-
attachmentIndex++;
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
return attachments;
|
|
482
|
-
})(),
|
|
461
|
+
...parseDocumentAttachmentsFromMessage(
|
|
462
|
+
message.translatedText || message.text
|
|
463
|
+
).map(
|
|
464
|
+
(attachment, attachmentIndex): Medium & { type?: string } => ({
|
|
465
|
+
mediumID: `doc_${Date.now()}_${attachmentIndex}_${Math.random()
|
|
466
|
+
.toString(36)
|
|
467
|
+
.substr(2, 9)}`,
|
|
468
|
+
url: attachment.url,
|
|
469
|
+
mimeType: attachment.type,
|
|
470
|
+
title: attachment.filename,
|
|
471
|
+
content: attachment.content,
|
|
472
|
+
properties: { isDocumentAttachment: true },
|
|
473
|
+
type: 'document',
|
|
474
|
+
})
|
|
475
|
+
),
|
|
483
476
|
];
|
|
484
477
|
|
|
485
478
|
const codeMediaWidgetMedia =
|
|
@@ -278,6 +278,15 @@
|
|
|
278
278
|
color: inherit;
|
|
279
279
|
}
|
|
280
280
|
|
|
281
|
+
/* Light hover surface (#f2eef5) — keep the icon black in dark mode for contrast */
|
|
282
|
+
.memori-widget[data-theme='dark'] .memori-chat-inputs--mic-btn:hover,
|
|
283
|
+
.memori-widget[data-theme='dark'] .memori-chat-inputs--mic-btn:hover svg,
|
|
284
|
+
.memori-widget[data-theme='dark'] .memori-chat-inputs--trailing .memori-chat-inputs--mic:hover,
|
|
285
|
+
.memori-widget[data-theme='dark'] .memori-chat-inputs--trailing .memori-chat-inputs--mic:hover .memori-button,
|
|
286
|
+
.memori-widget[data-theme='dark'] .memori-chat-inputs--trailing .memori-chat-inputs--mic:hover svg {
|
|
287
|
+
color: #000 !important;
|
|
288
|
+
}
|
|
289
|
+
|
|
281
290
|
/* Send button — solid brand fill, high-contrast icon (all layouts) */
|
|
282
291
|
.memori-chat-inputs--send-btn,
|
|
283
292
|
.memori-chat-inputs--send-btn.memori-button {
|
|
@@ -360,41 +369,52 @@
|
|
|
360
369
|
}
|
|
361
370
|
|
|
362
371
|
.memori-chat-inputs--ai-note {
|
|
363
|
-
max-width:
|
|
372
|
+
max-width: 100%;
|
|
364
373
|
margin: 0;
|
|
365
374
|
background: transparent;
|
|
366
375
|
color: color-mix(in srgb, var(--memori-text-color) 72%, transparent);
|
|
367
376
|
font-size: 0.75rem;
|
|
368
377
|
line-height: 1.3;
|
|
378
|
+
overflow-wrap: anywhere;
|
|
369
379
|
text-align: left;
|
|
380
|
+
word-break: break-word;
|
|
370
381
|
}
|
|
371
382
|
|
|
372
383
|
.memori-conversation-footer {
|
|
384
|
+
position: relative;
|
|
373
385
|
display: flex;
|
|
374
386
|
width: 100%;
|
|
387
|
+
max-width: var(--memori-conversation-max-width, 48rem);
|
|
375
388
|
box-sizing: border-box;
|
|
389
|
+
flex-shrink: 0;
|
|
390
|
+
flex-wrap: nowrap;
|
|
376
391
|
align-items: center;
|
|
377
392
|
justify-content: space-between;
|
|
378
393
|
padding: var(--memori-spacing-sm) 0 0;
|
|
379
394
|
border-top: 1px solid var(--memori-border-color);
|
|
380
395
|
margin-top: var(--memori-spacing-sm);
|
|
396
|
+
margin-right: auto;
|
|
397
|
+
margin-left: auto;
|
|
381
398
|
color: color-mix(in srgb, var(--memori-text-color) 72%, transparent);
|
|
382
399
|
gap: var(--memori-spacing-md);
|
|
383
400
|
}
|
|
384
401
|
|
|
385
402
|
.memori-conversation-footer .memori-chat-inputs--ai-note {
|
|
403
|
+
overflow: hidden;
|
|
386
404
|
min-width: 0;
|
|
387
405
|
flex: 1 1 auto;
|
|
388
406
|
margin: 0;
|
|
389
407
|
text-align: left;
|
|
408
|
+
text-overflow: ellipsis;
|
|
409
|
+
white-space: nowrap;
|
|
390
410
|
}
|
|
391
411
|
|
|
392
412
|
.memori-conversation-footer .memori--powered-by {
|
|
393
|
-
position: static;
|
|
413
|
+
position: static !important;
|
|
394
414
|
z-index: auto;
|
|
395
415
|
bottom: auto;
|
|
396
416
|
left: auto;
|
|
397
|
-
display: inline-flex;
|
|
417
|
+
display: inline-flex !important;
|
|
398
418
|
flex-shrink: 0;
|
|
399
419
|
padding: 0;
|
|
400
420
|
border-radius: 0;
|
|
@@ -402,6 +422,7 @@
|
|
|
402
422
|
background: transparent;
|
|
403
423
|
color: inherit;
|
|
404
424
|
transform: none;
|
|
425
|
+
white-space: nowrap;
|
|
405
426
|
}
|
|
406
427
|
|
|
407
428
|
.memori-conversation-footer .memori--powered-by-icon {
|
|
@@ -501,6 +522,59 @@
|
|
|
501
522
|
color: color-mix(in srgb, var(--memori-text-color) 72%, transparent);
|
|
502
523
|
}
|
|
503
524
|
|
|
525
|
+
/* Keep disclaimer + brand on the same axis as the input pill */
|
|
526
|
+
.memori-widget.memori-layout-fullpage .memori-conversation-footer,
|
|
527
|
+
.memori-widget.memori-layout-zoomed_full_body .memori-conversation-footer {
|
|
528
|
+
max-width: 100%;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
/* FULLPAGE + ZOOMED: border-top only after chat has started (under ChatInputs).
|
|
532
|
+
Start-panel footer is a direct child of the conversation column. */
|
|
533
|
+
.memori-widget.memori-layout-fullpage
|
|
534
|
+
.memori-conversation-column
|
|
535
|
+
> .memori-conversation-footer,
|
|
536
|
+
.memori-widget.memori-layout-zoomed_full_body
|
|
537
|
+
.memori-conversation-column
|
|
538
|
+
> .memori-conversation-footer {
|
|
539
|
+
border-top: none;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
.memori-widget.memori-layout-fullpage
|
|
543
|
+
.memori-chat-inputs-wrapper
|
|
544
|
+
> .memori-conversation-footer,
|
|
545
|
+
.memori-widget.memori-layout-zoomed_full_body
|
|
546
|
+
.memori-chat-inputs-wrapper
|
|
547
|
+
> .memori-conversation-footer {
|
|
548
|
+
border-top: 1px solid var(--memori-border-color);
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
@media (max-width: 768px) {
|
|
552
|
+
.memori-conversation-footer,
|
|
553
|
+
.memori-widget.memori-layout-fullpage
|
|
554
|
+
.memori-chat-inputs-wrapper
|
|
555
|
+
> .memori-conversation-footer,
|
|
556
|
+
.memori-widget.memori-layout-zoomed_full_body
|
|
557
|
+
.memori-chat-inputs-wrapper
|
|
558
|
+
> .memori-conversation-footer {
|
|
559
|
+
justify-content: center;
|
|
560
|
+
border-top: none;
|
|
561
|
+
gap: 0;
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
.memori-conversation-footer .memori--powered-by,
|
|
565
|
+
.memori-widget.memori-layout-chat .memori-conversation-footer > .memori--powered-by {
|
|
566
|
+
display: none !important;
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
.memori-conversation-footer .memori-chat-inputs--ai-note {
|
|
570
|
+
overflow: visible;
|
|
571
|
+
flex: 0 1 auto;
|
|
572
|
+
text-align: center;
|
|
573
|
+
text-overflow: unset;
|
|
574
|
+
white-space: normal;
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
|
|
504
578
|
/* =============================================================================
|
|
505
579
|
HIDDEN_CHAT + WEBSITE_ASSISTANT + CHAT — bottom-anchored white pill
|
|
506
580
|
============================================================================= */
|
|
@@ -102,9 +102,10 @@ textarea.memori-chat-textarea--input {
|
|
|
102
102
|
font-size: 14.5px;
|
|
103
103
|
line-height: var(--memori-text-line-normal);
|
|
104
104
|
outline: none;
|
|
105
|
+
-ms-overflow-style: none; /* IE/Edge */
|
|
105
106
|
overflow-y: auto;
|
|
106
107
|
resize: none;
|
|
107
|
-
scrollbar-width:
|
|
108
|
+
scrollbar-width: none; /* Firefox */
|
|
108
109
|
transition: height 0.2s ease-in-out;
|
|
109
110
|
}
|
|
110
111
|
|
|
@@ -114,22 +115,10 @@ textarea.memori-chat-textarea--input::placeholder {
|
|
|
114
115
|
opacity: 1;
|
|
115
116
|
}
|
|
116
117
|
|
|
117
|
-
/*
|
|
118
|
+
/* Hide vertical scrollbar (scroll still works) */
|
|
118
119
|
textarea.memori-chat-textarea--input::-webkit-scrollbar {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
textarea.memori-chat-textarea--input::-webkit-scrollbar-track {
|
|
123
|
-
background: transparent;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
textarea.memori-chat-textarea--input::-webkit-scrollbar-thumb {
|
|
127
|
-
border-radius: var(--memori-radius-box);
|
|
128
|
-
background: rgba(0, 0, 0, 0.2);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
textarea.memori-chat-textarea--input::-webkit-scrollbar-thumb:hover {
|
|
132
|
-
background: rgba(0, 0, 0, 0.3);
|
|
120
|
+
display: none;
|
|
121
|
+
width: 0;
|
|
133
122
|
}
|
|
134
123
|
|
|
135
124
|
/* Responsive adjustments for textarea input */
|
|
@@ -195,7 +184,6 @@ button.memori-chat-textarea--expand-button:focus {
|
|
|
195
184
|
|
|
196
185
|
[data-theme='dark'] textarea.memori-chat-textarea--input {
|
|
197
186
|
color: var(--memori-text-color, rgba(255, 255, 255, 0.92));
|
|
198
|
-
scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
|
|
199
187
|
}
|
|
200
188
|
|
|
201
189
|
[data-theme='dark'] textarea.memori-chat-textarea--input::placeholder {
|
|
@@ -222,14 +210,6 @@ button.memori-chat-textarea--expand-button:focus {
|
|
|
222
210
|
color: #7d7a86;
|
|
223
211
|
}
|
|
224
212
|
|
|
225
|
-
[data-theme='dark'] textarea.memori-chat-textarea--input::-webkit-scrollbar-thumb {
|
|
226
|
-
background: rgba(255, 255, 255, 0.25);
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
[data-theme='dark'] textarea.memori-chat-textarea--input::-webkit-scrollbar-thumb:hover {
|
|
230
|
-
background: rgba(255, 255, 255, 0.4);
|
|
231
|
-
}
|
|
232
|
-
|
|
233
213
|
[data-theme='dark'] button.memori-chat-textarea--expand-button {
|
|
234
214
|
color: var(--memori-text-color, rgba(255, 255, 255, 0.85));
|
|
235
215
|
}
|
|
@@ -182,7 +182,7 @@ const DrawerModeDemo: React.FC = () => (
|
|
|
182
182
|
message={htmlArtifactMessage}
|
|
183
183
|
/>
|
|
184
184
|
</div>
|
|
185
|
-
<div style={{ width: '
|
|
185
|
+
<div style={{ width: '55%', minWidth: 360 }}>
|
|
186
186
|
<ArtifactDrawer isLayoutColumn />
|
|
187
187
|
</div>
|
|
188
188
|
</div>
|
|
@@ -23,10 +23,13 @@
|
|
|
23
23
|
.memori-artifact-action-icon-fullscreen {
|
|
24
24
|
width: 16px;
|
|
25
25
|
height: 16px;
|
|
26
|
+
color: inherit;
|
|
27
|
+
fill: none;
|
|
28
|
+
stroke: currentColor;
|
|
26
29
|
}
|
|
27
30
|
|
|
28
31
|
.memori-artifact-action-icon {
|
|
29
|
-
|
|
32
|
+
color: var(--memori-text-color);
|
|
30
33
|
}
|
|
31
34
|
|
|
32
35
|
.memori-artifact-action-btn:disabled {
|
|
@@ -122,7 +125,9 @@
|
|
|
122
125
|
/* Remove unused styles */
|
|
123
126
|
|
|
124
127
|
.memori-artifact-action-icon-fullscreen {
|
|
125
|
-
|
|
128
|
+
color: #fff;
|
|
129
|
+
fill: none;
|
|
130
|
+
stroke: currentColor;
|
|
126
131
|
}
|
|
127
132
|
|
|
128
133
|
/* Animation for Copy Feedback */
|
|
@@ -27,11 +27,15 @@
|
|
|
27
27
|
position: relative;
|
|
28
28
|
display: inline-flex;
|
|
29
29
|
overflow: hidden;
|
|
30
|
-
|
|
30
|
+
width: auto;
|
|
31
|
+
min-width: 38px;
|
|
32
|
+
height: 38px;
|
|
33
|
+
min-height: 38px;
|
|
31
34
|
align-items: center;
|
|
32
|
-
padding:
|
|
33
|
-
border: 1px solid var(--memori-
|
|
34
|
-
border-radius:
|
|
35
|
+
padding: 8px 12px;
|
|
36
|
+
border: 1px solid color-mix(in srgb, var(--memori-text-color, #111827) 16%, transparent);
|
|
37
|
+
border-radius: var(--memori-radius-box, 8px);
|
|
38
|
+
background: transparent;
|
|
35
39
|
border-bottom-right-radius: 0px;
|
|
36
40
|
border-top-right-radius: 0px;
|
|
37
41
|
color: var(--memori-text-color);
|
|
@@ -40,7 +44,7 @@
|
|
|
40
44
|
font-weight: var(--memori-text-weight-medium);
|
|
41
45
|
gap: var(--memori-spacing-sm);
|
|
42
46
|
line-height: 1.4;
|
|
43
|
-
transition:
|
|
47
|
+
transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
|
|
44
48
|
}
|
|
45
49
|
|
|
46
50
|
.memori-copy-button:disabled {
|
|
@@ -54,12 +58,13 @@
|
|
|
54
58
|
}
|
|
55
59
|
|
|
56
60
|
.memori-copy-button:hover:not(:disabled) {
|
|
57
|
-
border-color: color-mix(in
|
|
61
|
+
border-color: color-mix(in srgb, var(--memori-text-color, #111827) 16%, transparent);
|
|
62
|
+
background: color-mix(in srgb, var(--memori-text-color, #111827) 8%, transparent);
|
|
58
63
|
}
|
|
59
64
|
|
|
60
65
|
.memori-copy-button:active:not(:disabled) {
|
|
61
|
-
border-color: color-mix(in
|
|
62
|
-
background: var(--memori-
|
|
66
|
+
border-color: color-mix(in srgb, var(--memori-text-color, #111827) 22%, transparent);
|
|
67
|
+
background: color-mix(in srgb, var(--memori-text-color, #111827) 12%, transparent);
|
|
63
68
|
}
|
|
64
69
|
|
|
65
70
|
.memori-copy-button--success {
|
|
@@ -87,12 +92,16 @@
|
|
|
87
92
|
position: relative;
|
|
88
93
|
display: inline-flex;
|
|
89
94
|
overflow: hidden;
|
|
90
|
-
|
|
95
|
+
width: 38px;
|
|
96
|
+
min-width: 38px;
|
|
97
|
+
height: 38px;
|
|
98
|
+
min-height: 38px;
|
|
91
99
|
align-items: center;
|
|
92
|
-
|
|
93
|
-
padding
|
|
94
|
-
border: 1px solid var(--memori-
|
|
95
|
-
border-radius:
|
|
100
|
+
justify-content: center;
|
|
101
|
+
padding: 8px;
|
|
102
|
+
border: 1px solid color-mix(in srgb, var(--memori-text-color, #111827) 16%, transparent);
|
|
103
|
+
border-radius: var(--memori-radius-box, 8px);
|
|
104
|
+
background: transparent;
|
|
96
105
|
border-bottom-left-radius: 0px !important;
|
|
97
106
|
border-top-left-radius: 0px !important;
|
|
98
107
|
color: var(--memori-text-color);
|
|
@@ -101,7 +110,12 @@
|
|
|
101
110
|
font-weight: var(--memori-text-weight-medium);
|
|
102
111
|
gap: var(--memori-spacing-sm);
|
|
103
112
|
line-height: 1.4;
|
|
104
|
-
transition:
|
|
113
|
+
transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.memori-copy-button--dropdown:hover:not(:disabled) {
|
|
117
|
+
border-color: color-mix(in srgb, var(--memori-text-color, #111827) 16%, transparent);
|
|
118
|
+
background: color-mix(in srgb, var(--memori-text-color, #111827) 8%, transparent);
|
|
105
119
|
}
|
|
106
120
|
|
|
107
121
|
/* Button Icons */
|
|
@@ -440,7 +454,9 @@
|
|
|
440
454
|
|
|
441
455
|
.memori-copy-button,
|
|
442
456
|
.memori-copy-button--dropdown {
|
|
443
|
-
|
|
457
|
+
height: 38px;
|
|
458
|
+
min-height: 38px;
|
|
459
|
+
padding: 8px;
|
|
444
460
|
font-size: 13px;
|
|
445
461
|
}
|
|
446
462
|
|