@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
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
align-items: center;
|
|
55
55
|
justify-content: space-between;
|
|
56
56
|
padding: var(--memori-spacing-md);
|
|
57
|
-
padding-right:
|
|
58
|
-
padding-left:
|
|
57
|
+
padding-right: var(--memori-spacing-md);
|
|
58
|
+
padding-left: var(--memori-spacing-md);
|
|
59
59
|
border-bottom: 1px solid var(--memori-border-color);
|
|
60
60
|
margin-right: auto;
|
|
61
61
|
margin-left: auto;
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
flex: 1 1 0%;
|
|
200
200
|
align-items: stretch;
|
|
201
201
|
justify-content: center;
|
|
202
|
-
padding: var(--memori-spacing-md)
|
|
202
|
+
padding: var(--memori-spacing-md);
|
|
203
203
|
border: none;
|
|
204
204
|
margin: 0 auto;
|
|
205
205
|
background: var(--memori-secondary-background);
|
|
@@ -307,7 +307,7 @@
|
|
|
307
307
|
}
|
|
308
308
|
|
|
309
309
|
.memori-widget.memori-layout-zoomed_full_body .memori--grid-column-artifact--open {
|
|
310
|
-
width:
|
|
310
|
+
width: 560px;
|
|
311
311
|
border-left: 1px solid color-mix(in srgb, var(--memori-text-color, #111827) 10%, transparent);
|
|
312
312
|
background: var(--memori-secondary-background);
|
|
313
313
|
}
|
|
@@ -412,7 +412,7 @@
|
|
|
412
412
|
}
|
|
413
413
|
|
|
414
414
|
.memori-widget.memori-layout-zoomed_full_body .memori--grid {
|
|
415
|
-
padding: var(--memori-spacing-sm)
|
|
415
|
+
padding: var(--memori-spacing-sm);
|
|
416
416
|
gap: var(--memori-spacing-sm);
|
|
417
417
|
}
|
|
418
418
|
|
|
@@ -435,7 +435,7 @@
|
|
|
435
435
|
}
|
|
436
436
|
|
|
437
437
|
.memori-widget.memori-layout-zoomed_full_body .memori--grid {
|
|
438
|
-
padding: var(--memori-spacing-xs)
|
|
438
|
+
padding: var(--memori-spacing-xs) var(--memori-spacing-sm);
|
|
439
439
|
}
|
|
440
440
|
|
|
441
441
|
.memori-widget.memori-layout-zoomed_full_body .memori-fullpage-header-row {
|
|
@@ -43,10 +43,46 @@ describe('Media URL helper', () => {
|
|
|
43
43
|
resourceURI:
|
|
44
44
|
'https://api.lorem.space/image/game?w=150&h=220&hash=8B7BCDC2',
|
|
45
45
|
apiURL: 'https://backend.memori.ai/api/v2',
|
|
46
|
+
sessionID: sessionID,
|
|
46
47
|
})
|
|
47
48
|
).toBe('https://api.lorem.space/image/game?w=150&h=220&hash=8B7BCDC2');
|
|
48
49
|
});
|
|
49
50
|
|
|
51
|
+
it('appends session ID for aisuru.ai asset URLs', () => {
|
|
52
|
+
expect(
|
|
53
|
+
getResourceUrl({
|
|
54
|
+
resourceURI:
|
|
55
|
+
'https://backend-ws-bologna.aisuru.ai/api/v2/asset/ad10ce11-914b-4b9b-a033-ba06cb4b4042.pdf',
|
|
56
|
+
sessionID: sessionID,
|
|
57
|
+
})
|
|
58
|
+
).toBe(
|
|
59
|
+
`https://backend-ws-bologna.aisuru.ai/api/v2/asset/ad10ce11-914b-4b9b-a033-ba06cb4b4042.pdf/${sessionID}`
|
|
60
|
+
);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('appends session ID for /api/v2/asset/ paths on unknown hosts', () => {
|
|
64
|
+
expect(
|
|
65
|
+
getResourceUrl({
|
|
66
|
+
resourceURI:
|
|
67
|
+
'https://custom-backend.example.com/api/v2/asset/abc123.pdf',
|
|
68
|
+
sessionID: sessionID,
|
|
69
|
+
})
|
|
70
|
+
).toBe(
|
|
71
|
+
`https://custom-backend.example.com/api/v2/asset/abc123.pdf/${sessionID}`
|
|
72
|
+
);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
it('appends session ID when resource host matches apiURL host', () => {
|
|
76
|
+
expect(
|
|
77
|
+
getResourceUrl({
|
|
78
|
+
resourceURI: 'https://my-api.example.com/files/doc.pdf',
|
|
79
|
+
sessionID: sessionID,
|
|
80
|
+
apiURL: 'https://my-api.example.com/api/v2',
|
|
81
|
+
})
|
|
82
|
+
).toBe(`https://my-api.example.com/files/doc.pdf/${sessionID}`);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
|
|
50
86
|
it('Get correct URL for old memoriai/memory media', async () => {
|
|
51
87
|
expect(
|
|
52
88
|
getResourceUrl({
|
package/src/helpers/media.ts
CHANGED
|
@@ -6,6 +6,38 @@ export interface ResourceURLParams {
|
|
|
6
6
|
apiURL?: string;
|
|
7
7
|
tenantID?: string;
|
|
8
8
|
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Whether this HTTP(S) URL should get a session ID appended for auth.
|
|
12
|
+
* Matches Memori asset API paths on any host, known Memori/AIsuru hosts,
|
|
13
|
+
* and the configured API host — instead of a hard hostname allowlist only.
|
|
14
|
+
*/
|
|
15
|
+
const shouldAppendSessionId = (
|
|
16
|
+
resourceURI: string,
|
|
17
|
+
apiURL?: string
|
|
18
|
+
): boolean => {
|
|
19
|
+
const url = new URL(resourceURI);
|
|
20
|
+
const { hostname, pathname } = url;
|
|
21
|
+
|
|
22
|
+
// Memori asset endpoints require session auth regardless of host
|
|
23
|
+
// (e.g. backend-ws-bologna.aisuru.ai/api/v2/asset/…)
|
|
24
|
+
if (/\/api\/v\d+\/asset\//i.test(pathname)) {
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (apiURL) {
|
|
29
|
+
try {
|
|
30
|
+
if (new URL(apiURL).hostname === hostname) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
} catch {
|
|
34
|
+
// ignore invalid apiURL
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return false;
|
|
39
|
+
};
|
|
40
|
+
|
|
9
41
|
export const getResourceUrl = ({
|
|
10
42
|
type,
|
|
11
43
|
resourceURI,
|
|
@@ -30,21 +62,16 @@ export const getResourceUrl = ({
|
|
|
30
62
|
} else if (
|
|
31
63
|
(resourceURI.startsWith('https://') ||
|
|
32
64
|
resourceURI.startsWith('http://')) &&
|
|
33
|
-
(
|
|
34
|
-
new URL(resourceURI).hostname.includes('aclambda.online') ||
|
|
35
|
-
new URL(resourceURI).hostname.includes('localhost'))
|
|
65
|
+
shouldAppendSessionId(resourceURI, apiURL)
|
|
36
66
|
) {
|
|
37
|
-
return `${resourceURI}${
|
|
38
|
-
|
|
39
|
-
}${sessionID || ''}`;
|
|
67
|
+
return `${resourceURI}${resourceURI.endsWith('/') || !sessionID ? '' : '/'
|
|
68
|
+
}${sessionID || ''}`;
|
|
40
69
|
} else if (resourceURI.startsWith('cloud://')) {
|
|
41
|
-
return `${
|
|
42
|
-
|
|
43
|
-
}/CloudAsset/${resourceURI.replace('cloud://', '')}`;
|
|
70
|
+
return `${apiURL?.replace(/v2/, 'v1') || ''
|
|
71
|
+
}/CloudAsset/${resourceURI.replace('cloud://', '')}`;
|
|
44
72
|
} else if (resourceURI.startsWith('guid://')) {
|
|
45
|
-
return `${
|
|
46
|
-
|
|
47
|
-
}/GuidAsset/${resourceURI.replace('guid://', '')}`;
|
|
73
|
+
return `${apiURL?.replace(/v2/, 'v1') || ''
|
|
74
|
+
}/GuidAsset/${resourceURI.replace('guid://', '')}`;
|
|
48
75
|
} else {
|
|
49
76
|
return resourceURI || defaultUri;
|
|
50
77
|
}
|
package/src/index.tsx
CHANGED
|
@@ -13,7 +13,7 @@ import MemoriWidget, {
|
|
|
13
13
|
Props as WidgetProps,
|
|
14
14
|
} from './components/MemoriWidget/MemoriWidget';
|
|
15
15
|
import { VisemeProvider } from './context/visemeContext';
|
|
16
|
-
import { AlertProvider
|
|
16
|
+
import { AlertProvider } from '@memori.ai/ui';
|
|
17
17
|
import { safeParseJSON } from './helpers/utils';
|
|
18
18
|
|
|
19
19
|
import i18n from './i18n';
|
|
@@ -442,10 +442,6 @@ const Memori: React.FC<Props> = ({
|
|
|
442
442
|
<AlertProvider defaultDuration={5000}>
|
|
443
443
|
<VisemeProvider>
|
|
444
444
|
<ArtifactProvider>
|
|
445
|
-
<AlertViewport
|
|
446
|
-
placement="top-end"
|
|
447
|
-
style={{ zIndex: 10002, top: 30, right: 30, position: 'fixed' }}
|
|
448
|
-
/>
|
|
449
445
|
{memori ? (
|
|
450
446
|
<MemoriWidget
|
|
451
447
|
// General props
|
package/src/styles.css
CHANGED
|
@@ -231,17 +231,30 @@
|
|
|
231
231
|
Fixed width — do not set left+right together (that stretches full-bleed). */
|
|
232
232
|
.memori-alert-viewport.memori-alert-viewport--top-end {
|
|
233
233
|
top: 4.75rem !important;
|
|
234
|
+
right: 1.5rem !important;
|
|
234
235
|
left: auto !important;
|
|
235
236
|
width: 300px !important;
|
|
236
237
|
max-width: calc(100vw - 2 * var(--memori-spacing-sm));
|
|
237
238
|
}
|
|
238
239
|
|
|
240
|
+
/* Dark theme: alert copy must stay light (viewport may sit outside themed tokens). */
|
|
241
|
+
.memori-widget[data-theme='dark'] .memori-alert__title,
|
|
242
|
+
.memori-widget[data-theme='dark'] .memori-alert__description,
|
|
243
|
+
.memori-widget[data-theme='dark'] .memori-alert__close,
|
|
244
|
+
[data-theme='dark'] .memori-widget .memori-alert__title,
|
|
245
|
+
[data-theme='dark'] .memori-widget .memori-alert__description,
|
|
246
|
+
[data-theme='dark'] .memori-widget .memori-alert__close,
|
|
247
|
+
body:has(.memori-widget[data-theme='dark']) .memori-alert__title,
|
|
248
|
+
body:has(.memori-widget[data-theme='dark']) .memori-alert__description,
|
|
249
|
+
body:has(.memori-widget[data-theme='dark']) .memori-alert__close,
|
|
250
|
+
body:has([data-theme='dark'] .memori-widget) .memori-alert__title,
|
|
251
|
+
body:has([data-theme='dark'] .memori-widget) .memori-alert__description,
|
|
252
|
+
body:has([data-theme='dark'] .memori-widget) .memori-alert__close {
|
|
253
|
+
color: #fff;
|
|
254
|
+
}
|
|
255
|
+
|
|
239
256
|
@media (max-width: 768px) {
|
|
240
257
|
.memori-alert-viewport.memori-alert-viewport--top-end {
|
|
241
|
-
|
|
242
|
-
right: var(--memori-spacing-sm) !important;
|
|
243
|
-
bottom: calc(5.5rem + env(safe-area-inset-bottom, 0px)) !important;
|
|
244
|
-
left: auto !important;
|
|
245
|
-
width: min(300px, calc(100vw - 2 * var(--memori-spacing-sm))) !important;
|
|
258
|
+
display: none !important;
|
|
246
259
|
}
|
|
247
260
|
}
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// This file is auto-generated. Do not edit manually.
|
|
2
|
-
export const version = '9.0.0-alpha.
|
|
2
|
+
export const version = '9.0.0-alpha.13';
|