@memori.ai/memori-react 8.11.0 → 8.13.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 (243) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/dist/components/AgeVerificationModal/AgeVerificationModal.css +41 -14
  3. package/dist/components/AgeVerificationModal/AgeVerificationModal.js +2 -2
  4. package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  5. package/dist/components/Auth/Auth.js +36 -8
  6. package/dist/components/Auth/Auth.js.map +1 -1
  7. package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +2 -2
  8. package/dist/components/Chat/Chat.css +37 -3
  9. package/dist/components/Chat/Chat.js +61 -23
  10. package/dist/components/Chat/Chat.js.map +1 -1
  11. package/dist/components/ChatBubble/ChatBubble.css +87 -15
  12. package/dist/components/ChatBubble/ChatBubble.js +129 -19
  13. package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
  14. package/dist/components/ChatHistoryDrawer/ChatHistory.css +5 -1
  15. package/dist/components/ChatInputs/ChatInputs.css +293 -17
  16. package/dist/components/ChatInputs/ChatInputs.d.ts +1 -0
  17. package/dist/components/ChatInputs/ChatInputs.js +48 -27
  18. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  19. package/dist/components/ChatTextArea/ChatTextArea.css +75 -31
  20. package/dist/components/ChatTextArea/ChatTextArea.js +47 -18
  21. package/dist/components/ChatTextArea/ChatTextArea.js.map +1 -1
  22. package/dist/components/DateSelector/DateSelector.css +125 -104
  23. package/dist/components/DateSelector/DateSelector.d.ts +1 -1
  24. package/dist/components/DateSelector/DateSelector.js +110 -52
  25. package/dist/components/DateSelector/DateSelector.js.map +1 -1
  26. package/dist/components/FilePreview/FilePreview.css +225 -146
  27. package/dist/components/FilePreview/FilePreview.d.ts +1 -2
  28. package/dist/components/FilePreview/FilePreview.js +20 -6
  29. package/dist/components/FilePreview/FilePreview.js.map +1 -1
  30. package/dist/components/Header/Header.css +2 -2
  31. package/dist/components/Header/Header.js +1 -1
  32. package/dist/components/Header/Header.js.map +1 -1
  33. package/dist/components/LoginDrawer/LoginDrawer.css +37 -5
  34. package/dist/components/LoginDrawer/LoginDrawer.d.ts +1 -2
  35. package/dist/components/LoginDrawer/LoginDrawer.js +2 -9
  36. package/dist/components/LoginDrawer/LoginDrawer.js.map +1 -1
  37. package/dist/components/MediaWidget/MediaItemWidget.js +2 -1
  38. package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
  39. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
  40. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
  41. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +1 -1
  42. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
  43. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js +3 -0
  44. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js.map +1 -1
  45. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +2 -2
  46. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  47. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +16 -7
  48. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +6 -4
  49. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
  50. package/dist/components/MemoriWidget/MemoriWidget.css +11 -2
  51. package/dist/components/MemoriWidget/MemoriWidget.js +105 -25
  52. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  53. package/dist/components/MicrophoneButton/MicrophoneButton.css +2 -2
  54. package/dist/components/StartPanel/StartPanel.css +8 -0
  55. package/dist/components/UploadButton/UploadButton.css +20 -17
  56. package/dist/components/UploadButton/UploadButton.js +218 -87
  57. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  58. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +14 -4
  59. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  60. package/dist/components/UploadButton/UploadImages/UploadImages.js +143 -16
  61. package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  62. package/dist/components/layouts/chat.css +1 -1
  63. package/dist/components/ui/Drawer.css +8 -0
  64. package/dist/components/ui/Drawer.d.ts +2 -0
  65. package/dist/components/ui/Drawer.js +2 -2
  66. package/dist/components/ui/Drawer.js.map +1 -1
  67. package/dist/components/ui/Tooltip.css +49 -1
  68. package/dist/components/ui/Tooltip.d.ts +1 -1
  69. package/dist/helpers/constants.d.ts +1 -0
  70. package/dist/helpers/constants.js +2 -1
  71. package/dist/helpers/constants.js.map +1 -1
  72. package/dist/helpers/imageCompression.d.ts +7 -0
  73. package/dist/helpers/imageCompression.js +123 -0
  74. package/dist/helpers/imageCompression.js.map +1 -0
  75. package/dist/locales/de.json +13 -5
  76. package/dist/locales/en.json +17 -6
  77. package/dist/locales/es.json +13 -5
  78. package/dist/locales/fr.json +12 -5
  79. package/dist/locales/it.json +16 -6
  80. package/dist/styles.css +4 -4
  81. package/esm/components/AgeVerificationModal/AgeVerificationModal.css +41 -14
  82. package/esm/components/AgeVerificationModal/AgeVerificationModal.js +2 -2
  83. package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  84. package/esm/components/Auth/Auth.js +36 -8
  85. package/esm/components/Auth/Auth.js.map +1 -1
  86. package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +2 -2
  87. package/esm/components/Chat/Chat.css +37 -3
  88. package/esm/components/Chat/Chat.js +61 -23
  89. package/esm/components/Chat/Chat.js.map +1 -1
  90. package/esm/components/ChatBubble/ChatBubble.css +87 -15
  91. package/esm/components/ChatBubble/ChatBubble.js +130 -20
  92. package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
  93. package/esm/components/ChatHistoryDrawer/ChatHistory.css +5 -1
  94. package/esm/components/ChatInputs/ChatInputs.css +293 -17
  95. package/esm/components/ChatInputs/ChatInputs.d.ts +1 -0
  96. package/esm/components/ChatInputs/ChatInputs.js +49 -28
  97. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  98. package/esm/components/ChatTextArea/ChatTextArea.css +75 -31
  99. package/esm/components/ChatTextArea/ChatTextArea.js +49 -20
  100. package/esm/components/ChatTextArea/ChatTextArea.js.map +1 -1
  101. package/esm/components/DateSelector/DateSelector.css +125 -104
  102. package/esm/components/DateSelector/DateSelector.d.ts +1 -1
  103. package/esm/components/DateSelector/DateSelector.js +111 -52
  104. package/esm/components/DateSelector/DateSelector.js.map +1 -1
  105. package/esm/components/FilePreview/FilePreview.css +225 -146
  106. package/esm/components/FilePreview/FilePreview.d.ts +1 -2
  107. package/esm/components/FilePreview/FilePreview.js +21 -7
  108. package/esm/components/FilePreview/FilePreview.js.map +1 -1
  109. package/esm/components/Header/Header.css +2 -2
  110. package/esm/components/Header/Header.js +1 -1
  111. package/esm/components/Header/Header.js.map +1 -1
  112. package/esm/components/LoginDrawer/LoginDrawer.css +37 -5
  113. package/esm/components/LoginDrawer/LoginDrawer.d.ts +1 -2
  114. package/esm/components/LoginDrawer/LoginDrawer.js +2 -9
  115. package/esm/components/LoginDrawer/LoginDrawer.js.map +1 -1
  116. package/esm/components/MediaWidget/MediaItemWidget.js +2 -1
  117. package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
  118. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
  119. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
  120. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +1 -1
  121. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
  122. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js +3 -0
  123. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js.map +1 -1
  124. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +2 -2
  125. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  126. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +16 -7
  127. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +6 -4
  128. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
  129. package/esm/components/MemoriWidget/MemoriWidget.css +11 -2
  130. package/esm/components/MemoriWidget/MemoriWidget.js +105 -25
  131. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  132. package/esm/components/MicrophoneButton/MicrophoneButton.css +2 -2
  133. package/esm/components/StartPanel/StartPanel.css +8 -0
  134. package/esm/components/UploadButton/UploadButton.css +20 -17
  135. package/esm/components/UploadButton/UploadButton.js +219 -88
  136. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  137. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +14 -4
  138. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  139. package/esm/components/UploadButton/UploadImages/UploadImages.js +143 -16
  140. package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  141. package/esm/components/layouts/chat.css +1 -1
  142. package/esm/components/ui/Drawer.css +8 -0
  143. package/esm/components/ui/Drawer.d.ts +2 -0
  144. package/esm/components/ui/Drawer.js +2 -2
  145. package/esm/components/ui/Drawer.js.map +1 -1
  146. package/esm/components/ui/Tooltip.css +49 -1
  147. package/esm/components/ui/Tooltip.d.ts +1 -1
  148. package/esm/helpers/constants.d.ts +1 -0
  149. package/esm/helpers/constants.js +1 -0
  150. package/esm/helpers/constants.js.map +1 -1
  151. package/esm/helpers/imageCompression.d.ts +7 -0
  152. package/esm/helpers/imageCompression.js +119 -0
  153. package/esm/helpers/imageCompression.js.map +1 -0
  154. package/esm/locales/de.json +13 -5
  155. package/esm/locales/en.json +17 -6
  156. package/esm/locales/es.json +13 -5
  157. package/esm/locales/fr.json +12 -5
  158. package/esm/locales/it.json +16 -6
  159. package/esm/styles.css +4 -4
  160. package/package.json +2 -2
  161. package/src/components/AgeVerificationModal/AgeVerificationModal.css +41 -14
  162. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +3 -1
  163. package/src/components/Auth/Auth.tsx +55 -11
  164. package/src/components/Avatar/Avatar.stories.tsx +3 -0
  165. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +2 -2
  166. package/src/components/Chat/Chat.css +37 -3
  167. package/src/components/Chat/Chat.stories.tsx +16 -2
  168. package/src/components/Chat/Chat.tsx +90 -21
  169. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +1752 -812
  170. package/src/components/ChatBubble/ChatBubble.css +87 -15
  171. package/src/components/ChatBubble/ChatBubble.stories.tsx +16 -2
  172. package/src/components/ChatBubble/ChatBubble.test.tsx +17 -0
  173. package/src/components/ChatBubble/ChatBubble.tsx +237 -33
  174. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +304 -8
  175. package/src/components/ChatHistoryDrawer/ChatHistory.css +5 -1
  176. package/src/components/ChatInputs/ChatInputs.css +293 -17
  177. package/src/components/ChatInputs/ChatInputs.tsx +156 -86
  178. package/src/components/ChatInputs/__snapshots__/ChatInputs.test.tsx.snap +430 -424
  179. package/src/components/ChatTextArea/ChatTextArea.css +75 -31
  180. package/src/components/ChatTextArea/ChatTextArea.test.tsx +1 -16
  181. package/src/components/ChatTextArea/ChatTextArea.tsx +51 -22
  182. package/src/components/ChatTextArea/__snapshots__/ChatTextArea.test.tsx.snap +9 -72
  183. package/src/components/DateSelector/DateSelector.css +125 -104
  184. package/src/components/DateSelector/DateSelector.stories.tsx +1 -1
  185. package/src/components/DateSelector/DateSelector.test.tsx +137 -23
  186. package/src/components/DateSelector/DateSelector.tsx +203 -177
  187. package/src/components/FilePreview/FilePreview.css +225 -146
  188. package/src/components/FilePreview/FilePreview.tsx +49 -36
  189. package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +2 -2
  190. package/src/components/Header/Header.css +2 -2
  191. package/src/components/Header/Header.stories.tsx +5 -1
  192. package/src/components/Header/Header.tsx +1 -1
  193. package/src/components/Header/__snapshots__/Header.test.tsx.snap +1 -1
  194. package/src/components/LoginDrawer/LoginDrawer.css +37 -5
  195. package/src/components/LoginDrawer/LoginDrawer.stories.tsx +0 -1
  196. package/src/components/LoginDrawer/LoginDrawer.test.tsx +0 -1
  197. package/src/components/LoginDrawer/LoginDrawer.tsx +0 -19
  198. package/src/components/MediaWidget/MediaItemWidget.tsx +2 -1
  199. package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +996 -204
  200. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +2 -2
  201. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.tsx +1 -1
  202. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.tsx +3 -0
  203. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +56 -54
  204. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +16 -7
  205. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +12 -3
  206. package/src/components/MemoriWidget/MemoriWidget.css +11 -2
  207. package/src/components/MemoriWidget/MemoriWidget.stories.tsx +6 -3
  208. package/src/components/MemoriWidget/MemoriWidget.tsx +173 -49
  209. package/src/components/MicrophoneButton/MicrophoneButton.css +2 -2
  210. package/src/components/StartPanel/StartPanel.css +8 -0
  211. package/src/components/UploadButton/UploadButton.css +20 -17
  212. package/src/components/UploadButton/UploadButton.stories.tsx +247 -35
  213. package/src/components/UploadButton/UploadButton.tsx +280 -173
  214. package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +19 -4
  215. package/src/components/UploadButton/UploadImages/UploadImages.tsx +196 -35
  216. package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +10 -1
  217. package/src/components/layouts/FullBody/FullBody.stories.tsx +9 -10
  218. package/src/components/layouts/Totem/Totem.stories.tsx +8 -9
  219. package/src/components/layouts/ZoomedFullBody/ZoomedFullBody.stories.tsx +8 -9
  220. package/src/components/layouts/chat.css +1 -1
  221. package/src/components/layouts/layouts.stories.tsx +10 -9
  222. package/src/components/ui/Drawer.css +8 -0
  223. package/src/components/ui/Drawer.tsx +16 -12
  224. package/src/components/ui/Tooltip.css +49 -1
  225. package/src/components/ui/Tooltip.tsx +1 -1
  226. package/src/helpers/constants.ts +1 -1
  227. package/src/helpers/imageCompression.ts +230 -0
  228. package/src/index.stories.tsx +18 -0
  229. package/src/locales/de.json +13 -5
  230. package/src/locales/en.json +17 -6
  231. package/src/locales/es.json +13 -5
  232. package/src/locales/fr.json +12 -5
  233. package/src/locales/it.json +16 -6
  234. package/src/mocks/data.ts +4 -2
  235. package/src/styles.css +4 -4
  236. package/src/components/SignupForm/SignupForm.test.tsx +0 -40
  237. package/src/components/SignupForm/SignupForm.tsx +0 -457
  238. package/src/components/SignupForm/__snapshots__/SignupForm.test.tsx.snap +0 -247
  239. package/src/components/UploadMenu/UploadMenu.css +0 -47
  240. package/src/components/UploadMenu/UploadMenu.stories.tsx +0 -66
  241. package/src/components/UploadMenu/UploadMenu.test.tsx +0 -34
  242. package/src/components/UploadMenu/UploadMenu.tsx +0 -68
  243. package/src/components/UploadMenu/__snapshots__/UploadMenu.test.tsx.snap +0 -137
@@ -24,7 +24,10 @@
24
24
  "last_7_days": "Letzte 7 Tage",
25
25
  "last_30_days": "Letzte 30 Tage",
26
26
  "missingData": "Fehlende Informationen",
27
+ "date": "Geburtsdatum",
27
28
  "day": "Tag",
29
+ "copied": "Kopiert!",
30
+ "placeholder": "Stellen Sie eine Frage",
28
31
  "month": "Monat",
29
32
  "year": "Jahr",
30
33
  "createdAt": "Erstellungsdatum",
@@ -106,6 +109,8 @@
106
109
  "tokens": "Token",
107
110
  "addToken": "Token hinzufügen",
108
111
  "usePassword": "Passwort verwenden",
112
+ "passwordRequired": "Passwort erforderlich",
113
+ "invalidCredentials": "Ungültige Zugangsdaten",
109
114
  "atLeast": "Mindestens"
110
115
  },
111
116
  "widget": {
@@ -233,9 +238,10 @@
233
238
  "upload": {
234
239
  "loginRequired": "Login erforderlich",
235
240
  "loginRequiredDescription": "Bitte melden Sie sich an, um Bilder hochzuladen",
236
- "uploadFiles": "Dateien hochladen",
237
- "uploadImage": "Bild hochladen",
238
- "uploadDocument": "Dokument hochladen",
241
+ "uploadFiles": "Dateien hochladen ({{shortcut}}+O zum Öffnen des Datei-Selektors)",
242
+ "uploadFilesWithShortcut": "{{shortcut}}+O zum Öffnen des Datei-Selektors",
243
+ "uploadImages": "Bilder hochladen",
244
+ "uploadDocuments": "Dokumente hochladen",
239
245
  "replace": "Ersetzen",
240
246
  "remaining": "verbleibend",
241
247
  "maxReached": "Maximal erreicht",
@@ -244,7 +250,8 @@
244
250
  "uploadFailed": "Hochladen fehlgeschlagen",
245
251
  "uploadSuccess": "Hochladen erfolgreich",
246
252
  "uploadSuccessDescription": "Die Datei wurde erfolgreich hochgeladen",
247
- "maxImagesReached": "Sie können bis zu {{max}} Bilder hochladen"
253
+ "maxImagesReached": "Sie können bis zu {{max}} Bilder hochladen",
254
+ "dragAndDropFiles": "Ziehen Sie Dateien hierher, um sie zur Chat hinzuzufügen"
248
255
  },
249
256
  "media": {
250
257
  "title": "Titel",
@@ -342,7 +349,8 @@
342
349
  "termsOfService": "Nutzungsbedingungen",
343
350
  "pAndCUAccepted": "Ich akzeptiere die Nutzungsbedingungen von Deep Thought",
344
351
  "editAccount": "Konto bearbeiten",
345
- "save": "Speichern"
352
+ "save": "Speichern",
353
+ "successfullyLoggedIn": "{{username}} hat sich erfolgreich angemeldet"
346
354
  },
347
355
  "chatLogs": {
348
356
  "anyMessage": "Jede Nachricht",
@@ -22,11 +22,17 @@
22
22
  "all": "All",
23
23
  "today": "Today",
24
24
  "yesterday": "Yesterday",
25
+ "placeholder": "Ask a question",
25
26
  "last_7_days": "Last 7 days",
26
27
  "last_30_days": "Last 30 days",
27
28
  "month": "Month",
29
+ "copied": "Copied!",
28
30
  "year": "Year",
31
+ "dayPlaceholder": "DD",
32
+ "monthPlaceholder": "MM",
33
+ "yearPlaceholder": "YYYY",
29
34
  "createdAt": "Creation date",
35
+ "date": "Birth date",
30
36
  "selected": "Selected",
31
37
  "page": "page",
32
38
  "actions": "Actions",
@@ -105,6 +111,8 @@
105
111
  "tokens": "Tokens",
106
112
  "addToken": "Add token",
107
113
  "usePassword": "Use password",
114
+ "passwordRequired": "Password required",
115
+ "invalidCredentials": "Invalid credentials",
108
116
  "atLeast": "At least"
109
117
  },
110
118
  "widget": {
@@ -243,14 +251,15 @@
243
251
  "upload": {
244
252
  "loginRequired": "Login required",
245
253
  "loginRequiredDescription": "Please login to upload images",
246
- "uploadFiles": "Upload files",
247
- "uploadImage": "Upload image",
254
+ "uploadFiles": "Upload files ({{shortcut}}+O to open file chooser)",
255
+ "uploadFilesWithShortcut": "{{shortcut}}+O to open file chooser",
256
+ "uploadImages": "Upload images",
248
257
  "replace": "Replace",
249
258
  "maxImagesReached": "You can upload up to {{max}} images",
250
259
  "maxDocumentsReached": "You can upload up to {{max}} documents",
251
260
  "remaining": "remaining",
252
261
  "lastDocumentSlot": "Upload last document",
253
- "uploadDocument": "Upload document",
262
+ "uploadDocuments": "Upload documents",
254
263
  "maxReached": "Max limit reached",
255
264
  "imageTitle": "Image title: {{title}}",
256
265
  "titleHelp": "Adding a descriptive title helps the AI provide more context and appropriate responses.",
@@ -259,12 +268,13 @@
259
268
  "fileReadingFailed": "File reading failed",
260
269
  "uploadFailed": "Upload failed",
261
270
  "uploadSuccess": "Upload success",
262
- "titleImage": "Image: {{title}}",
271
+ "titleImage": "Image title: {{title}}",
263
272
  "uploadSuccessDescription": "The file has been uploaded successfully",
264
273
  "titleImageUpload": "Upload images",
265
274
  "partialUpload": "Only {{uploaded}} images on {{total}} will be uploaded. Maximum {{max}} images allowed.",
266
275
  "maxImages": "Maximum {{max}} images allowed.",
267
- "upload": "Upload"
276
+ "upload": "Upload",
277
+ "dragAndDropFiles": "Drag and drop files here to add them to the chat"
268
278
  },
269
279
  "media": {
270
280
  "title": "Title",
@@ -406,7 +416,8 @@
406
416
  "termsStatus": "Terms Status",
407
417
  "enabled": "Enabled",
408
418
  "disabled": "Disabled",
409
- "advancedFeatures": "Advanced Features"
419
+ "advancedFeatures": "Advanced Features",
420
+ "successfullyLoggedIn": "{{username}} has successfully logged in"
410
421
  },
411
422
  "chatLogs": {
412
423
  "anyMessage": "Any message",
@@ -24,7 +24,10 @@
24
24
  "yesterday": "Ayer",
25
25
  "last_7_days": "Últimos 7 días",
26
26
  "last_30_days": "Últimos 30 días",
27
+ "placeholder": "Haz una pregunta",
28
+ "date": "Fecha de nacimiento",
27
29
  "month": "Mes",
30
+ "copied": "¡Copiado!",
28
31
  "missingData": "Información faltante",
29
32
  "year": "Año",
30
33
  "createdAt": "Fecha de creación",
@@ -106,6 +109,8 @@
106
109
  "tokens": "Fichas",
107
110
  "addToken": "Agregar token",
108
111
  "usePassword": "Usar contraseña",
112
+ "passwordRequired": "Contraseña obligatoria",
113
+ "invalidCredentials": "Credenciales no válidas",
109
114
  "atLeast": "Al menos"
110
115
  },
111
116
  "widget": {
@@ -233,9 +238,10 @@
233
238
  "upload": {
234
239
  "loginRequired": "Connexion requise",
235
240
  "loginRequiredDescription": "Veuillez vous connecter pour télécharger des images",
236
- "uploadFiles": "Télécharger des fichiers",
237
- "uploadImage": "Télécharger une image",
238
- "uploadDocument": "Télécharger un document",
241
+ "uploadFiles": "Télécharger des fichiers ({{shortcut}}+O para abrir el selector de archivos)",
242
+ "uploadFilesWithShortcut": "{{shortcut}}+O para abrir el selector de archivos",
243
+ "uploadImages": "Télécharger des images",
244
+ "uploadDocuments": "Télécharger des documents",
239
245
  "apiClientNotConfigured": "API client non configuré correctement pour le téléchargement de médias",
240
246
  "fileReadingFailed": "Échec de la lecture du fichier",
241
247
  "uploadFailed": "Échec du téléchargement",
@@ -244,7 +250,8 @@
244
250
  "replace": "Remplacer",
245
251
  "maxImagesReached": "Vous pouvez télécharger jusqu'à {{max}} images",
246
252
  "remaining": "restant",
247
- "maxReached": "Limite atteinte"
253
+ "maxReached": "Limite atteinte",
254
+ "dragAndDropFiles": "Arrastre y suelte los archivos aquí para agregarlos a la chat"
248
255
  },
249
256
  "media": {
250
257
  "title": "Título",
@@ -369,7 +376,8 @@
369
376
  "termsOfService": "Términos de servicio",
370
377
  "pAndCUAccepted": "Acepto los términos de servicio sobre Deep Thought",
371
378
  "editAccount": "Editar cuenta",
372
- "save": "Ahorrar"
379
+ "save": "Ahorrar",
380
+ "successfullyLoggedIn": "{{username}} ha iniciado sesión correctamente"
373
381
  },
374
382
  "chatLogs": {
375
383
  "anyMessage": "Cualquier mensaje",
@@ -21,11 +21,14 @@
21
21
  "day": "Jour",
22
22
  "month": "Mois",
23
23
  "year": "Année",
24
+ "placeholder": "Faites une question",
24
25
  "createdAt": "Date de création",
25
26
  "all": "Tous",
26
27
  "today": "Aujourd'hui",
28
+ "date": "Date de naissance",
27
29
  "yesterday": "Hier",
28
30
  "last_7_days": "7 derniers jours",
31
+ "copied": "Copié !",
29
32
  "missingData": "Informations manquantes",
30
33
  "last_30_days": "30 derniers jours",
31
34
  "selected": "Choisi",
@@ -104,6 +107,7 @@
104
107
  "useRecoveryTokens": "Utiliser des jetons de récupération",
105
108
  "tokens": "Jetons",
106
109
  "addToken": "Ajouter un jeton",
110
+ "invalidCredentials": "Identifiants invalides",
107
111
  "usePassword": "Utiliser le mot de passe",
108
112
  "atLeast": "Au moins"
109
113
  },
@@ -242,9 +246,10 @@
242
246
  "upload": {
243
247
  "loginRequired": "Connexion requise",
244
248
  "loginRequiredDescription": "Veuillez vous connecter pour télécharger des images",
245
- "uploadFiles": "Télécharger des fichiers",
246
- "uploadImage": "Télécharger une image",
247
- "uploadDocument": "Télécharger un document",
249
+ "uploadFiles": "Télécharger des fichiers ({{shortcut}}+O pour ouvrir le sélecteur de fichiers)",
250
+ "uploadFilesWithShortcut": "{{shortcut}}+O pour ouvrir le sélecteur de fichiers",
251
+ "uploadImages": "Télécharger des images",
252
+ "uploadDocuments": "Télécharger des documents",
248
253
  "replace": "Remplacer",
249
254
  "remaining": "restant",
250
255
  "maxReached": "Limite atteinte",
@@ -253,7 +258,8 @@
253
258
  "fileReadingFailed": "Échec de la lecture du fichier",
254
259
  "uploadFailed": "Échec du téléchargement",
255
260
  "uploadSuccess": "Téléchargement réussi",
256
- "uploadSuccessDescription": "Le fichier a été téléchargé avec succès"
261
+ "uploadSuccessDescription": "Le fichier a été téléchargé avec succès",
262
+ "dragAndDropFiles": "Glissez et déposez les fichiers ici pour les ajouter à la chat"
257
263
  },
258
264
  "media": {
259
265
  "title": "Titre",
@@ -378,7 +384,8 @@
378
384
  "termsOfService": "Conditions d'utilisation",
379
385
  "pAndCUAccepted": "J'accepte les conditions d'utilisation de Deep Thought",
380
386
  "editAccount": "Modifier le compte",
381
- "save": "Sauvegarder"
387
+ "save": "Sauvegarder",
388
+ "successfullyLoggedIn": "{{username}} s'est connecté avec succès"
382
389
  },
383
390
  "chatLogs": {
384
391
  "anyMessage": "Tout message",
@@ -21,17 +21,23 @@
21
21
  "day": "Giorno",
22
22
  "month": "Mese",
23
23
  "year": "Anno",
24
+ "dayPlaceholder": "GG",
25
+ "monthPlaceholder": "MM",
26
+ "yearPlaceholder": "AAAA",
24
27
  "createdAt": "Data creazione",
25
28
  "selected": "Selezionati",
26
29
  "page": "pagina",
27
30
  "actions": "Azioni",
28
31
  "next": "Successivo",
29
32
  "all": "Tutti",
33
+ "copied": "Copiato!",
30
34
  "today": "Oggi",
31
35
  "yesterday": "Ieri",
36
+ "date": "Data di nascita",
32
37
  "last_7_days": "Ultimi 7 giorni",
33
38
  "last_30_days": "Ultimi 30 giorni",
34
39
  "previous": "Precedente",
40
+ "placeholder": "Fai una domanda",
35
41
  "copy": "Copia",
36
42
  "copyRawCode": "Copia codice sorgente",
37
43
  "copyToClipboard": "Copia negli appunti",
@@ -106,6 +112,7 @@
106
112
  "tokens": "Token",
107
113
  "addToken": "Aggiungi token",
108
114
  "usePassword": "Utilizza la password",
115
+ "invalidCredentials": "Credenziali non valide",
109
116
  "atLeast": "Almeno"
110
117
  },
111
118
  "widget": {
@@ -267,10 +274,11 @@
267
274
  "upload": {
268
275
  "loginRequired": "Login richiesto",
269
276
  "loginRequiredDescription": "Per caricare immagini, devi prima accedere",
270
- "uploadFiles": "Carica file",
271
- "uploadImage": "Carica immagine",
277
+ "uploadFiles": "Carica file ({{shortcut}}+O per aprire il selettore file)",
278
+ "uploadFilesWithShortcut": "{{shortcut}}+O per aprire il selettore file",
279
+ "uploadImages": "Carica immagini",
272
280
  "lastDocumentSlot": "Carica ultimo documento",
273
- "uploadDocument": "Carica documento",
281
+ "uploadDocuments": "Carica documenti",
274
282
  "maxDocumentsReached": "Puoi caricare fino a {{max}} documenti",
275
283
  "replace": "Sostituisci documento",
276
284
  "maxImagesReached": "Puoi caricare fino a {{max}} immagini",
@@ -280,13 +288,14 @@
280
288
  "uploadSuccess": "Caricamento riuscito",
281
289
  "remaining": "rimanenti",
282
290
  "maxReached": "Limite raggiunto",
283
- "titleImage": "Immagine: {{title}}",
291
+ "titleImage": "Titolo immagine: {{title}}",
284
292
  "titleImageUpload": "Carica immagini",
285
293
  "titleHelp": "Aggiungi un titolo descrittivo per aiutare l'AI a fornire risposte più appropriate.",
286
294
  "titlePlaceholder": "Inserisci il titolo dell'immagine",
287
295
  "uploadSuccessDescription": "Il file è stato caricato con successo",
288
296
  "partialUpload": "Solo {{uploaded}} immagini su {{total}} immagini saranno caricate. Massimo {{max}} immagini consentite.",
289
- "cancel": "Annulla"
297
+ "cancel": "Annulla",
298
+ "dragAndDropFiles": "Trascina qui i file per aggiungerli alla chat"
290
299
  },
291
300
  "gamification": {
292
301
  "level": "Livello",
@@ -405,7 +414,8 @@
405
414
  "termsOfService": "i termini del servizio",
406
415
  "pAndCUAccepted": "Accetto le condizioni di utilizzo relative a Pensiero Profondo",
407
416
  "editAccount": "Modifica account",
408
- "save": "Salva"
417
+ "save": "Salva",
418
+ "successfullyLoggedIn": "{{username}} ha effettuato l'accesso con successo"
409
419
  },
410
420
  "chatLogs": {
411
421
  "atLeast": "Almeno {{count}} messaggi",
package/esm/styles.css CHANGED
@@ -43,7 +43,6 @@
43
43
  @import url('./components/ShareButton/ShareButton.css');
44
44
  @import url('./components/Snippet/Snippet.css');
45
45
  @import url('./components/StartPanel/StartPanel.css');
46
- @import url('./components/UploadMenu/UploadMenu.css');
47
46
  @import url('./components/DateSelector/DateSelector.css');
48
47
  @import url('./components/AgeVerificationModal/AgeVerificationModal.css');
49
48
  @import url('./components/KnownFacts/KnownFacts.css');
@@ -89,14 +88,15 @@ body.sb-show-main #root,
89
88
  #storybook-docs,
90
89
  .memori-widget {
91
90
  --memori-font-family: 'Lexend Deca Variable', 'Lexend Deca', sans-serif;
92
- --memori-primary: rgb(130, 70, 175);
91
+ --memori-primary-rgb: 130, 70, 175;
92
+ --memori-primary: rgb(var(--memori-primary-rgb));
93
93
  --memori-primary-text: #fff;
94
94
  --memori-inner-content-pad: 1rem;
95
95
  --memori-inner-bg: transparent;
96
96
  --memori-chat-bubble-bg: #fff;
97
97
  --memori-chat-user-bubble-bg: var(--memori-primary);
98
98
  --memori-text-color: #000;
99
- --memori-border-radius: 5px;
99
+ --memori-border-radius: 8px;
100
100
  --memori-box-shadow: 0 2px 0 rgba(0, 0, 0, 0.02);
101
101
  --memori-button-bg: #fff;
102
102
  --memori-button-text: #000;
@@ -123,4 +123,4 @@ body.sb-show-main #root,
123
123
  .mobile-hidden {
124
124
  display: none;
125
125
  }
126
- }
126
+ }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "8.11.0",
2
+ "version": "8.13.0",
3
3
  "name": "@memori.ai/memori-react",
4
4
  "author": "Memori Srl",
5
5
  "main": "dist/index.js",
@@ -292,7 +292,7 @@
292
292
  },
293
293
  "dependencies": {
294
294
  "@headlessui/react": "1.7.4",
295
- "@memori.ai/memori-api-client": "6.13.3",
295
+ "@memori.ai/memori-api-client": "6.17.0",
296
296
  "@react-three/drei": "8.20.2",
297
297
  "@react-three/fiber": "7.0.25",
298
298
  "classnames": "2.5.1",
@@ -13,12 +13,12 @@
13
13
  flex-direction: column;
14
14
  align-items: center;
15
15
  }
16
-
16
+ /*
17
17
  @media (min-width: 640px) {
18
18
  .age-verification-form {
19
19
  min-width: 600px;
20
20
  }
21
- }
21
+ } */
22
22
 
23
23
  .age-verification-form fieldset {
24
24
  padding-right: 0;
@@ -53,15 +53,42 @@
53
53
  color: var(--memori-error-color);
54
54
  }
55
55
 
56
- button.age-verisfication-submit {
57
- display: inline-flex;
58
- height: auto;
59
- align-items: center;
60
- justify-content: center;
61
- padding: 4px 15px;
62
- margin-right: auto;
63
- margin-left: auto;
64
- font-weight: 700;
65
- text-transform: uppercase;
66
- white-space: normal;
67
- }
56
+ button.age-verification-submit {
57
+ position: relative;
58
+ overflow: hidden;
59
+ width: 100%;
60
+ min-width: 220px;
61
+ max-width: 220px;
62
+ min-height: 42px;
63
+ padding: 1rem 2rem;
64
+ border: none;
65
+ border-radius: 12px;
66
+ border-radius: 8px;
67
+ margin-top: 1rem;
68
+ background: var(--memori-primary);
69
+ color: white;
70
+ cursor: pointer;
71
+ font-size: 1rem;
72
+ font-weight: 600;
73
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
74
+ }
75
+
76
+ button.age-verification-submit::before {
77
+ position: absolute;
78
+ top: 0;
79
+ left: -100%;
80
+ width: 100%;
81
+ height: 100%;
82
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
83
+ content: '';
84
+ transition: left 0.5s ease;
85
+ }
86
+
87
+ button.age-verification-submit:hover::before {
88
+ left: 100%;
89
+ }
90
+
91
+
92
+ button.age-verification-submit:active {
93
+ transform: translateY(0);
94
+ }
@@ -46,6 +46,8 @@ const AgeVerificationModal = ({ visible = false, onClose, minAge }: Props) => {
46
46
  return (
47
47
  <Modal
48
48
  open={visible}
49
+ width="600px"
50
+ widthMd="600px"
49
51
  title={t('ageVerification')}
50
52
  className="age-verification-modal"
51
53
  closable
@@ -65,7 +67,7 @@ const AgeVerificationModal = ({ visible = false, onClose, minAge }: Props) => {
65
67
  <legend className="sr-only">{t('birthDate')}</legend>
66
68
 
67
69
  <DateSelector
68
- defaultDate={new Date(Date.now())}
70
+ //defaultDate={new Date(Date.now())}
69
71
  onChange={date => {
70
72
  setBirthDate(date);
71
73
  }}
@@ -43,25 +43,53 @@ export const AuthWidget = ({
43
43
  const [numTokens, setNumTokens] = useState(1);
44
44
 
45
45
  const [showModal, setShowModal] = useState(!!pwdOrTokens);
46
+ const [isSubmitting, setIsSubmitting] = useState(false);
46
47
 
47
48
  const onSubmit: SubmitHandler<AuthInputs> = data => {
48
- if (
49
- (pwdOrTokens === 'password' && !data.password?.length) ||
50
- (pwdOrTokens === 'tokens' &&
51
- ((data?.tokens?.length || 0) < minimumNumberOfRecoveryTokens ||
52
- !data?.tokens?.every(t => t.length)))
53
- ) {
49
+ const missingPassword = pwdOrTokens === 'password' && !data.password?.length;
50
+ const invalidTokens =
51
+ pwdOrTokens === 'tokens' &&
52
+ ((data?.tokens?.length || 0) < minimumNumberOfRecoveryTokens ||
53
+ !data?.tokens?.every(t => t.length));
54
+
55
+ if (missingPassword) {
56
+ setError('password', {
57
+ type: 'required',
58
+ message: t('auth.passwordRequired') || 'Password required',
59
+ });
60
+ return;
61
+ }
62
+
63
+ if (invalidTokens) {
54
64
  setError('tokens', {
55
65
  type: 'minLength',
56
- message: 'Tokens',
66
+ message: t('auth.tokens') || 'Tokens',
57
67
  });
58
68
  return;
59
69
  }
60
70
 
61
71
  if (onFinish) {
62
- onFinish(data).then(() => {
63
- setShowModal(false);
64
- });
72
+ setIsSubmitting(true);
73
+ onFinish(data)
74
+ .then(() => {
75
+ setShowModal(false);
76
+ })
77
+ .catch(() => {
78
+ if (pwdOrTokens === 'password') {
79
+ setError('password', {
80
+ type: 'auth',
81
+ message: t('auth.invalidCredentials') || 'Invalid credentials',
82
+ });
83
+ } else if (pwdOrTokens === 'tokens') {
84
+ setError('tokens', {
85
+ type: 'auth',
86
+ message: t('auth.invalidCredentials') || 'Invalid credentials',
87
+ });
88
+ }
89
+ })
90
+ .finally(() => {
91
+ setIsSubmitting(false);
92
+ });
65
93
  }
66
94
  };
67
95
 
@@ -134,7 +162,23 @@ export const AuthWidget = ({
134
162
  </div>
135
163
  )}
136
164
 
137
- <Button htmlType="submit" primary className="memori-auth-widget--submit">
165
+ {errors.password?.type === 'auth' && (
166
+ <div className="memori-auth-widget--error">
167
+ {errors.password.message}
168
+ </div>
169
+ )}
170
+ {errors.tokens?.type === 'auth' && (
171
+ <div className="memori-auth-widget--error">
172
+ {errors.tokens.message}
173
+ </div>
174
+ )}
175
+
176
+ <Button
177
+ htmlType="submit"
178
+ primary
179
+ className="memori-auth-widget--submit"
180
+ loading={isSubmitting}
181
+ >
138
182
  {t('confirm') || 'Submit'}
139
183
  </Button>
140
184
  </form>
@@ -5,6 +5,7 @@ import I18nWrapper from '../../I18nWrapper';
5
5
  import Avatar, { Props } from './Avatar';
6
6
 
7
7
  import './Avatar.css';
8
+ import { ArtifactProvider } from '../MemoriArtifactSystem/context/ArtifactContext';
8
9
 
9
10
  const meta: Meta = {
10
11
  title: 'Widget/Avatar',
@@ -32,6 +33,7 @@ const Template: Story<Props> = args => {
32
33
 
33
34
  return (
34
35
  <I18nWrapper>
36
+ <ArtifactProvider>
35
37
  <div
36
38
  style={
37
39
  args.integrationConfig?.avatar === 'customglb' ||
@@ -58,6 +60,7 @@ const Template: Story<Props> = args => {
58
60
  key={Date.now()}
59
61
  />
60
62
  </div>
63
+ </ArtifactProvider>
61
64
  </I18nWrapper>
62
65
  );
63
66
  };
@@ -7,8 +7,8 @@
7
7
  display: flex;
8
8
  width: 380px; /* Fixed width */
9
9
  max-width: 100%; /* Maximum width relative to screen */
10
- height: 320px;
11
- max-height: 320px;
10
+ height: 340px;
11
+ max-height: 340px;
12
12
  flex-direction: column;
13
13
  padding: 16px;
14
14
  border-radius: 16px;
@@ -52,7 +52,7 @@
52
52
  flex: 1;
53
53
  flex-direction: column;
54
54
  padding: 2rem 10px;
55
- mask-image: linear-gradient(transparent, black 5%, black 95%, transparent 100%);
55
+ /* mask-image: linear-gradient(transparent, black 5%, black 95%, transparent 100%); */
56
56
  overflow-y: auto;
57
57
  scroll-behavior: smooth;
58
58
  }
@@ -76,8 +76,8 @@
76
76
  margin-bottom: 10px;
77
77
  background-position: center;
78
78
  background-size: cover;
79
- border-top-left-radius: 3px;
80
- border-top-right-radius: 3px;
79
+ border-top-left-radius: 12px;
80
+ border-top-right-radius: 12px;
81
81
  }
82
82
 
83
83
  .memori-chat--cover+.memori-chat--bubble-initial {
@@ -146,4 +146,38 @@
146
146
 
147
147
  .memori-chat--known-tag {
148
148
  margin-right: 0.5rem;
149
+ }
150
+
151
+ /* Drag and drop overlay */
152
+ .memori-chat--drag-overlay {
153
+ position: absolute;
154
+ z-index: 1000;
155
+ top: 0;
156
+ right: 0;
157
+ bottom: 0;
158
+ left: 0;
159
+ display: flex;
160
+ flex-direction: column;
161
+ align-items: center;
162
+ justify-content: center;
163
+ border-radius: 10px;
164
+ backdrop-filter: blur(4px);
165
+ background-color: rgba(0, 0, 0, 0.7);
166
+ pointer-events: none;
167
+ }
168
+
169
+ .memori-chat--drag-overlay-icon {
170
+ width: 64px;
171
+ height: 64px;
172
+ margin-bottom: 1rem;
173
+ color: #fff;
174
+ opacity: 0.9;
175
+ }
176
+
177
+ .memori-chat--drag-overlay-text {
178
+ padding: 0 2rem;
179
+ color: #ffffff;
180
+ font-size: 1.2rem;
181
+ font-weight: 500;
182
+ text-align: center;
149
183
  }
@@ -980,6 +980,20 @@ def process_data(df):
980
980
  setSendOnEnter: () => {},
981
981
  };
982
982
 
983
+ export const WithTyping = Template.bind({});
984
+ WithTyping.args = {
985
+ memori,
986
+ tenant,
987
+ sessionID,
988
+ history,
989
+ dialogState: {
990
+ state: 'X2a',
991
+ },
992
+ layout: 'DEFAULT',
993
+ memoriTyping: true,
994
+ typingText: 'Sto pensando...',
995
+ };
996
+
983
997
  export const WithAllMediaTypes = Template.bind({});
984
998
  WithAllMediaTypes.args = {
985
999
  memori,
@@ -1325,8 +1339,8 @@ build-storybook = "build-storybook"`,
1325
1339
  setSendOnEnter: () => {},
1326
1340
  };
1327
1341
 
1328
- export const withBase64Image = Template.bind({});
1329
- withBase64Image.args = {
1342
+ export const WithBase64Image = Template.bind({});
1343
+ WithBase64Image.args = {
1330
1344
  memori,
1331
1345
  tenant,
1332
1346
  sessionID,