@memori.ai/memori-react 8.15.1 → 8.16.0

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.
Files changed (166) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/components/Chat/Chat.css +2 -1
  3. package/dist/components/Chat/Chat.js +17 -17
  4. package/dist/components/Chat/Chat.js.map +1 -1
  5. package/dist/components/ChatBubble/ChatBubble.css +1 -1
  6. package/dist/components/ContentPreviewModal/ContentPreviewModal.css +114 -0
  7. package/dist/components/ContentPreviewModal/ContentPreviewModal.d.ts +14 -0
  8. package/dist/components/ContentPreviewModal/ContentPreviewModal.js +18 -0
  9. package/dist/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -0
  10. package/dist/components/ContentPreviewModal/index.d.ts +2 -0
  11. package/dist/components/ContentPreviewModal/index.js +9 -0
  12. package/dist/components/ContentPreviewModal/index.js.map +1 -0
  13. package/dist/components/FilePreview/FilePreview.css +1 -1
  14. package/dist/components/FilePreview/FilePreview.js +43 -13
  15. package/dist/components/FilePreview/FilePreview.js.map +1 -1
  16. package/dist/components/MediaWidget/DocumentCard.d.ts +3 -0
  17. package/dist/components/MediaWidget/DocumentCard.js +9 -0
  18. package/dist/components/MediaWidget/DocumentCard.js.map +1 -0
  19. package/dist/components/MediaWidget/MediaItemWidget.css +946 -19
  20. package/dist/components/MediaWidget/MediaItemWidget.d.ts +5 -36
  21. package/dist/components/MediaWidget/MediaItemWidget.js +295 -198
  22. package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
  23. package/dist/components/MediaWidget/MediaItemWidget.types.d.ts +62 -0
  24. package/dist/components/MediaWidget/MediaItemWidget.types.js +3 -0
  25. package/dist/components/MediaWidget/MediaItemWidget.types.js.map +1 -0
  26. package/dist/components/MediaWidget/MediaItemWidget.utils.d.ts +23 -0
  27. package/dist/components/MediaWidget/MediaItemWidget.utils.js +162 -0
  28. package/dist/components/MediaWidget/MediaItemWidget.utils.js.map +1 -0
  29. package/dist/components/MediaWidget/MediaPreviewModal.d.ts +15 -0
  30. package/dist/components/MediaWidget/MediaPreviewModal.js +162 -0
  31. package/dist/components/MediaWidget/MediaPreviewModal.js.map +1 -0
  32. package/dist/components/MediaWidget/MediaWidget.js +1 -2
  33. package/dist/components/MediaWidget/MediaWidget.js.map +1 -1
  34. package/dist/components/Snippet/Snippet.css +64 -33
  35. package/dist/components/Snippet/Snippet.js +17 -4
  36. package/dist/components/Snippet/Snippet.js.map +1 -1
  37. package/dist/components/StartPanel/StartPanel.js +1 -2
  38. package/dist/components/StartPanel/StartPanel.js.map +1 -1
  39. package/dist/components/UploadButton/UploadButton.css +0 -5
  40. package/dist/components/layouts/WebsiteAssistant.js +8 -8
  41. package/dist/components/layouts/WebsiteAssistant.js.map +1 -1
  42. package/dist/components/layouts/chat.css +1 -1
  43. package/dist/components/layouts/website-assistant.css +405 -197
  44. package/dist/helpers/constants.js +0 -7
  45. package/dist/helpers/constants.js.map +1 -1
  46. package/dist/helpers/utils.d.ts +1 -0
  47. package/dist/helpers/utils.js +3 -1
  48. package/dist/helpers/utils.js.map +1 -1
  49. package/dist/index.js +43 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/styles.css +0 -2
  52. package/dist/version.d.ts +1 -0
  53. package/dist/version.js +5 -0
  54. package/dist/version.js.map +1 -0
  55. package/esm/components/Chat/Chat.css +2 -1
  56. package/esm/components/Chat/Chat.js +17 -17
  57. package/esm/components/Chat/Chat.js.map +1 -1
  58. package/esm/components/ChatBubble/ChatBubble.css +1 -1
  59. package/esm/components/ContentPreviewModal/ContentPreviewModal.css +114 -0
  60. package/esm/components/ContentPreviewModal/ContentPreviewModal.d.ts +14 -0
  61. package/esm/components/ContentPreviewModal/ContentPreviewModal.js +15 -0
  62. package/esm/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -0
  63. package/esm/components/ContentPreviewModal/index.d.ts +2 -0
  64. package/esm/components/ContentPreviewModal/index.js +2 -0
  65. package/esm/components/ContentPreviewModal/index.js.map +1 -0
  66. package/esm/components/FilePreview/FilePreview.css +1 -1
  67. package/esm/components/FilePreview/FilePreview.js +44 -14
  68. package/esm/components/FilePreview/FilePreview.js.map +1 -1
  69. package/esm/components/MediaWidget/DocumentCard.d.ts +3 -0
  70. package/esm/components/MediaWidget/DocumentCard.js +5 -0
  71. package/esm/components/MediaWidget/DocumentCard.js.map +1 -0
  72. package/esm/components/MediaWidget/MediaItemWidget.css +946 -19
  73. package/esm/components/MediaWidget/MediaItemWidget.d.ts +5 -36
  74. package/esm/components/MediaWidget/MediaItemWidget.js +296 -197
  75. package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
  76. package/esm/components/MediaWidget/MediaItemWidget.types.d.ts +62 -0
  77. package/esm/components/MediaWidget/MediaItemWidget.types.js +2 -0
  78. package/esm/components/MediaWidget/MediaItemWidget.types.js.map +1 -0
  79. package/esm/components/MediaWidget/MediaItemWidget.utils.d.ts +23 -0
  80. package/esm/components/MediaWidget/MediaItemWidget.utils.js +149 -0
  81. package/esm/components/MediaWidget/MediaItemWidget.utils.js.map +1 -0
  82. package/esm/components/MediaWidget/MediaPreviewModal.d.ts +15 -0
  83. package/esm/components/MediaWidget/MediaPreviewModal.js +157 -0
  84. package/esm/components/MediaWidget/MediaPreviewModal.js.map +1 -0
  85. package/esm/components/MediaWidget/MediaWidget.js +1 -2
  86. package/esm/components/MediaWidget/MediaWidget.js.map +1 -1
  87. package/esm/components/Snippet/Snippet.css +64 -33
  88. package/esm/components/Snippet/Snippet.js +18 -5
  89. package/esm/components/Snippet/Snippet.js.map +1 -1
  90. package/esm/components/StartPanel/StartPanel.js +1 -2
  91. package/esm/components/StartPanel/StartPanel.js.map +1 -1
  92. package/esm/components/UploadButton/UploadButton.css +0 -5
  93. package/esm/components/layouts/WebsiteAssistant.js +8 -8
  94. package/esm/components/layouts/WebsiteAssistant.js.map +1 -1
  95. package/esm/components/layouts/chat.css +1 -1
  96. package/esm/components/layouts/website-assistant.css +405 -197
  97. package/esm/helpers/constants.js +0 -7
  98. package/esm/helpers/constants.js.map +1 -1
  99. package/esm/helpers/utils.d.ts +1 -0
  100. package/esm/helpers/utils.js +1 -0
  101. package/esm/helpers/utils.js.map +1 -1
  102. package/esm/index.js +43 -1
  103. package/esm/index.js.map +1 -1
  104. package/esm/styles.css +0 -2
  105. package/esm/version.d.ts +1 -0
  106. package/esm/version.js +2 -0
  107. package/esm/version.js.map +1 -0
  108. package/package.json +5 -3
  109. package/src/components/Chat/Chat.css +2 -1
  110. package/src/components/Chat/Chat.stories.tsx +124 -0
  111. package/src/components/Chat/Chat.tsx +72 -71
  112. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +567 -1034
  113. package/src/components/ChatBubble/ChatBubble.css +1 -1
  114. package/src/components/ContentPreviewModal/ContentPreviewModal.css +114 -0
  115. package/src/components/ContentPreviewModal/ContentPreviewModal.tsx +69 -0
  116. package/src/components/ContentPreviewModal/index.ts +2 -0
  117. package/src/components/FilePreview/FilePreview.css +1 -1
  118. package/src/components/FilePreview/FilePreview.tsx +60 -37
  119. package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +15 -105
  120. package/src/components/MediaWidget/DocumentCard.test.tsx +45 -0
  121. package/src/components/MediaWidget/DocumentCard.tsx +19 -0
  122. package/src/components/MediaWidget/MediaItemWidget.css +946 -19
  123. package/src/components/MediaWidget/MediaItemWidget.test.tsx +89 -1
  124. package/src/components/MediaWidget/MediaItemWidget.tsx +734 -461
  125. package/src/components/MediaWidget/MediaItemWidget.types.ts +65 -0
  126. package/src/components/MediaWidget/MediaItemWidget.utils.test.ts +324 -0
  127. package/src/components/MediaWidget/MediaItemWidget.utils.ts +194 -0
  128. package/src/components/MediaWidget/MediaPreviewModal.test.tsx +271 -0
  129. package/src/components/MediaWidget/MediaPreviewModal.tsx +423 -0
  130. package/src/components/MediaWidget/MediaWidget.stories.tsx +193 -0
  131. package/src/components/MediaWidget/MediaWidget.tsx +2 -4
  132. package/src/components/MediaWidget/__snapshots__/DocumentCard.test.tsx.snap +24 -0
  133. package/src/components/MediaWidget/__snapshots__/MediaItemWidget.test.tsx.snap +162 -170
  134. package/src/components/MediaWidget/__snapshots__/MediaWidget.test.tsx.snap +21 -63
  135. package/src/components/Snippet/Snippet.css +64 -33
  136. package/src/components/Snippet/Snippet.tsx +30 -21
  137. package/src/components/Snippet/__snapshots__/Snippet.test.tsx.snap +314 -297
  138. package/src/components/StartPanel/StartPanel.tsx +0 -9
  139. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +12 -636
  140. package/src/components/UploadButton/UploadButton.css +0 -5
  141. package/src/components/layouts/WebsiteAssistant.tsx +66 -62
  142. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +1 -53
  143. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +2 -106
  144. package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +1 -53
  145. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +1 -53
  146. package/src/components/layouts/__snapshots__/WebsiteAssistant.test.tsx.snap +32 -33
  147. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +1 -53
  148. package/src/components/layouts/chat.css +1 -1
  149. package/src/components/layouts/layouts.stories.tsx +68 -0
  150. package/src/components/layouts/website-assistant.css +405 -197
  151. package/src/helpers/constants.ts +0 -7
  152. package/src/helpers/utils.ts +4 -0
  153. package/src/index.test.tsx +8 -0
  154. package/src/index.tsx +51 -1
  155. package/src/styles.css +0 -2
  156. package/src/version.ts +2 -0
  157. package/src/components/AttachmentLinkModal/AttachmentLinkModal.css +0 -68
  158. package/src/components/AttachmentLinkModal/AttachmentLinkModal.stories.tsx +0 -32
  159. package/src/components/AttachmentLinkModal/AttachmentLinkModal.test.tsx +0 -10
  160. package/src/components/AttachmentLinkModal/AttachmentLinkModal.tsx +0 -131
  161. package/src/components/AttachmentLinkModal/__snapshots__/AttachmentLinkModal.test.tsx.snap +0 -9
  162. package/src/components/MediaWidget/LinkItemWidget.css +0 -46
  163. package/src/components/MediaWidget/LinkItemWidget.stories.tsx +0 -61
  164. package/src/components/MediaWidget/LinkItemWidget.test.tsx +0 -33
  165. package/src/components/MediaWidget/LinkItemWidget.tsx +0 -204
  166. package/src/components/MediaWidget/__snapshots__/LinkItemWidget.test.tsx.snap +0 -253
@@ -124,3 +124,196 @@ Combined.args = {
124
124
  links,
125
125
  hints,
126
126
  };
127
+
128
+ export const AllMediaTypes = Template.bind({});
129
+ AllMediaTypes.args = {
130
+ media: [
131
+ // Images
132
+ {
133
+ mediumID: 'img-jpeg-1',
134
+ mimeType: 'image/jpeg',
135
+ title: 'JPEG Image',
136
+ url: 'https://picsum.photos/300/200?random=1',
137
+ },
138
+ {
139
+ mediumID: 'img-png-1',
140
+ mimeType: 'image/png',
141
+ title: 'PNG Image',
142
+ url: 'https://picsum.photos/300/200?random=2',
143
+ },
144
+ {
145
+ mediumID: 'img-jpg-1',
146
+ mimeType: 'image/jpg',
147
+ title: 'JPG Image',
148
+ url: 'https://picsum.photos/300/200?random=3',
149
+ },
150
+ {
151
+ mediumID: 'img-gif-1',
152
+ mimeType: 'image/gif',
153
+ title: 'GIF Image',
154
+ url: 'https://picsum.photos/300/200?random=4',
155
+ },
156
+ // Videos
157
+ {
158
+ mediumID: 'video-mp4-1',
159
+ mimeType: 'video/mp4',
160
+ title: 'MP4 Video',
161
+ url: 'https://www.w3schools.com/html/mov_bbb.mp4',
162
+ },
163
+ {
164
+ mediumID: 'video-quicktime-1',
165
+ mimeType: 'video/quicktime',
166
+ title: 'QuickTime Video',
167
+ url: 'https://www.w3schools.com/html/mov_bbb.mp4',
168
+ },
169
+ {
170
+ mediumID: 'video-avi-1',
171
+ mimeType: 'video/avi',
172
+ title: 'AVI Video',
173
+ url: 'https://www.w3schools.com/html/mov_bbb.mp4',
174
+ },
175
+ {
176
+ mediumID: 'video-mpeg-1',
177
+ mimeType: 'video/mpeg',
178
+ title: 'MPEG Video',
179
+ url: 'https://www.w3schools.com/html/mov_bbb.mp4',
180
+ },
181
+ // Audio
182
+ {
183
+ mediumID: 'audio-mpeg-1',
184
+ mimeType: 'audio/mpeg',
185
+ title: 'MPEG Audio',
186
+ url: 'https://www.w3schools.com/html/horse.mp3',
187
+ },
188
+ {
189
+ mediumID: 'audio-mpeg3-1',
190
+ mimeType: 'audio/mpeg3',
191
+ title: 'MPEG3 Audio',
192
+ url: 'https://www.w3schools.com/html/horse.mp3',
193
+ },
194
+ {
195
+ mediumID: 'audio-wav-1',
196
+ mimeType: 'audio/wav',
197
+ title: 'WAV Audio',
198
+ url: 'https://www.w3schools.com/html/horse.mp3',
199
+ },
200
+ // Documents
201
+ {
202
+ mediumID: 'doc-pdf-1',
203
+ mimeType: 'application/pdf',
204
+ title: 'PDF Document',
205
+ url: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
206
+ },
207
+ {
208
+ mediumID: 'doc-word-1',
209
+ mimeType: 'application/msword',
210
+ title: 'Word Document (.doc)',
211
+ url: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
212
+ },
213
+ {
214
+ mediumID: 'doc-wordx-1',
215
+ mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
216
+ title: 'Word Document (.docx)',
217
+ url: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
218
+ },
219
+ {
220
+ mediumID: 'doc-excel-1',
221
+ mimeType: 'application/vnd.ms-excel',
222
+ title: 'Excel Document (.xls)',
223
+ url: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
224
+ },
225
+ {
226
+ mediumID: 'doc-excelx-1',
227
+ mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
228
+ title: 'Excel Document (.xlsx)',
229
+ url: 'https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
230
+ },
231
+ // Code Snippets
232
+ {
233
+ mediumID: 'code-js-1',
234
+ mimeType: 'text/javascript',
235
+ title: 'JavaScript Code',
236
+ content: "function greet() {\n return 'Hello World!';\n}\n\nconsole.log(greet());",
237
+ },
238
+ {
239
+ mediumID: 'code-ts-1',
240
+ mimeType: 'text/ecmascript',
241
+ title: 'TypeScript Code',
242
+ content: "interface User {\n name: string;\n age: number;\n}\n\nconst user: User = { name: 'John', age: 30 };",
243
+ },
244
+ {
245
+ mediumID: 'code-json-1',
246
+ mimeType: 'application/json',
247
+ title: 'JSON Data',
248
+ content: '{\n "name": "John Doe",\n "age": 43,\n "city": "New York"\n}',
249
+ },
250
+ {
251
+ mediumID: 'code-css-1',
252
+ mimeType: 'text/css',
253
+ title: 'CSS Styles',
254
+ content: 'body {\n background: #f0f0f0;\n color: #333;\n font-family: Arial, sans-serif;\n}',
255
+ },
256
+ {
257
+ mediumID: 'code-xml-1',
258
+ mimeType: 'application/xml',
259
+ title: 'XML Document',
260
+ content: '<?xml version="1.0"?>\n<root>\n <item>Value</item>\n</root>',
261
+ },
262
+ {
263
+ mediumID: 'code-bash-1',
264
+ mimeType: 'application/x-sh',
265
+ title: 'Bash Script',
266
+ content: '#!/bin/bash\n\necho "Hello World"\nls -la',
267
+ },
268
+ {
269
+ mediumID: 'code-python-1',
270
+ mimeType: 'text/x-python',
271
+ title: 'Python Code',
272
+ content: 'def greet(name):\n return f"Hello, {name}!"\n\nprint(greet("World"))',
273
+ },
274
+ {
275
+ mediumID: 'code-cpp-1',
276
+ mimeType: 'text/x-c++src',
277
+ title: 'C++ Code',
278
+ content: '#include <iostream>\n\nint main() {\n std::cout << "Hello World" << std::endl;\n return 0;\n}',
279
+ },
280
+ {
281
+ mediumID: 'code-php-1',
282
+ mimeType: 'application/x-php',
283
+ title: 'PHP Code',
284
+ content: '<?php\nfunction greet($name) {\n return "Hello, " . $name . "!";\n}\n\necho greet("World");\n?>',
285
+ },
286
+ {
287
+ mediumID: 'code-ruby-1',
288
+ mimeType: 'text/x-ruby',
289
+ title: 'Ruby Code',
290
+ content: 'def greet(name)\n "Hello, #{name}!"\nend\n\nputs greet("World")',
291
+ },
292
+ {
293
+ mediumID: 'code-sql-1',
294
+ mimeType: 'text/x-sql',
295
+ title: 'SQL Query',
296
+ content: 'SELECT * FROM users\nWHERE age > 18\nORDER BY name ASC;',
297
+ },
298
+ {
299
+ mediumID: 'code-text-1',
300
+ mimeType: 'text/plain',
301
+ title: 'Plain Text',
302
+ content: 'This is a plain text file.\nIt can contain multiple lines.\nAnd various content.',
303
+ },
304
+ // HTML
305
+ {
306
+ mediumID: 'html-1',
307
+ mimeType: 'text/html',
308
+ title: 'HTML Content',
309
+ content: '<div><h1>HTML Preview</h1><p>This is HTML content.</p></div>',
310
+ },
311
+ // 3D Model
312
+ {
313
+ mediumID: 'model-1',
314
+ mimeType: 'model/gltf-binary',
315
+ title: '3D Model (GLTF)',
316
+ url: 'https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/Duck/glTF-Binary/Duck.glb',
317
+ },
318
+ ],
319
+ };
@@ -4,7 +4,6 @@ import {
4
4
  } from '@memori.ai/memori-api-client/dist/types';
5
5
  import React, { useEffect, useState, memo } from 'react';
6
6
  import Button from '../ui/Button';
7
- import LinkItemWidget from './LinkItemWidget';
8
7
  import MediaItemWidget, { Props as MediaItemProps } from './MediaItemWidget';
9
8
  import { Transition } from '@headlessui/react';
10
9
  import cx from 'classnames';
@@ -45,9 +44,9 @@ const MediaWidget: React.FC<Props> = ({
45
44
 
46
45
  return (
47
46
  <div className="memori-media-widget">
48
- {media?.length > 0 && (
47
+ {(media?.length > 0 || links?.length > 0) && (
49
48
  <MediaItemWidget
50
- items={media}
49
+ items={[...(media || []), ...(links || [])]}
51
50
  sessionID={sessionID}
52
51
  translateTo={translateTo}
53
52
  baseURL={baseUrl}
@@ -56,7 +55,6 @@ const MediaWidget: React.FC<Props> = ({
56
55
  fromUser={fromUser}
57
56
  />
58
57
  )}
59
- {links?.length > 0 && <LinkItemWidget items={links} baseUrl={baseUrl} fromUser={fromUser} />}
60
58
  {hints?.length > 0 && showHints && (
61
59
  <>
62
60
  <Transition appear show as="ul" className="memori-media--hints">
@@ -0,0 +1,24 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`DocumentCard renders unchanged snapshot 1`] = `
4
+ <div>
5
+ <div
6
+ class="memori-media-item--document"
7
+ >
8
+ <div
9
+ class="memori-media-item--document-header"
10
+ >
11
+ <div
12
+ class="memori-media-item--document-title"
13
+ >
14
+ Spreadsheet
15
+ </div>
16
+ </div>
17
+ <span
18
+ class="memori-media-item--document-badge"
19
+ >
20
+ XLSX
21
+ </span>
22
+ </div>
23
+ </div>
24
+ `;