@memori.ai/memori-react 8.38.4 → 9.0.0-alpha.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 (921) hide show
  1. package/CHANGELOG.md +1836 -0
  2. package/dist/components/AgeVerificationModal/AgeVerificationModal.css +35 -12
  3. package/dist/components/AgeVerificationModal/AgeVerificationModal.d.ts +0 -1
  4. package/dist/components/AgeVerificationModal/AgeVerificationModal.js +22 -10
  5. package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  6. package/dist/components/Auth/Auth.css +13 -9
  7. package/dist/components/Auth/Auth.d.ts +0 -1
  8. package/dist/components/Auth/Auth.js +14 -10
  9. package/dist/components/Auth/Auth.js.map +1 -1
  10. package/dist/components/Avatar/Avatar.css +2 -2
  11. package/dist/components/Avatar/Avatar.js +7 -7
  12. package/dist/components/Avatar/Avatar.js.map +1 -1
  13. package/dist/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.d.ts +0 -1
  14. package/dist/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.js +1 -1
  15. package/dist/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.js.map +1 -1
  16. package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.d.ts +0 -1
  17. package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js.map +1 -1
  18. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.d.ts +0 -1
  19. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +1 -2
  20. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  21. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/types.js +1 -1
  22. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/types.js.map +1 -1
  23. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.js.map +1 -1
  24. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarPositionController.js.map +1 -1
  25. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js.map +1 -1
  26. package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.d.ts +0 -1
  27. package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js +1 -1
  28. package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js.map +1 -1
  29. package/dist/components/Avatar/AvatarView/AvatarComponent/components/loader.d.ts +0 -1
  30. package/dist/components/Avatar/AvatarView/AvatarComponent/components/loader.js +2 -3
  31. package/dist/components/Avatar/AvatarView/AvatarComponent/components/loader.js.map +1 -1
  32. package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +21 -21
  33. package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.d.ts +0 -1
  34. package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.js +8 -10
  35. package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.js.map +1 -1
  36. package/dist/components/Avatar/AvatarView/index.js +1 -1
  37. package/dist/components/Avatar/AvatarView/index.js.map +1 -1
  38. package/dist/components/Avatar/AvatarView/utils/hideHands.js.map +1 -1
  39. package/dist/components/Avatar/AvatarView/utils/useEyeBlink.js +1 -2
  40. package/dist/components/Avatar/AvatarView/utils/useEyeBlink.js.map +1 -1
  41. package/dist/components/Avatar/AvatarView/utils/useHeadMovement.js +1 -1
  42. package/dist/components/Avatar/AvatarView/utils/useHeadMovement.js.map +1 -1
  43. package/dist/components/Avatar/AvatarView/utils/useLoadingMorphAnim.js +1 -1
  44. package/dist/components/Avatar/AvatarView/utils/useLoadingMorphAnim.js.map +1 -1
  45. package/dist/components/Avatar/AvatarView/utils/useMouthAnimation.js +1 -2
  46. package/dist/components/Avatar/AvatarView/utils/useMouthAnimation.js.map +1 -1
  47. package/dist/components/Avatar/AvatarView/utils/useSmile.js +1 -1
  48. package/dist/components/Avatar/AvatarView/utils/useSmile.js.map +1 -1
  49. package/dist/components/Avatar/AvatarView/utils/utils.js.map +1 -1
  50. package/dist/components/Blob/Blob.css +14 -12
  51. package/dist/components/Blob/Blob.d.ts +0 -1
  52. package/dist/components/BlockedMemoriBadge/BlockedMemoriBadge.css +4 -4
  53. package/dist/components/BlockedMemoriBadge/BlockedMemoriBadge.d.ts +0 -1
  54. package/dist/components/BlockedMemoriBadge/BlockedMemoriBadge.js +4 -5
  55. package/dist/components/BlockedMemoriBadge/BlockedMemoriBadge.js.map +1 -1
  56. package/dist/components/ChangeMode/ChangeMode.css +4 -2
  57. package/dist/components/ChangeMode/ChangeMode.js +8 -3
  58. package/dist/components/ChangeMode/ChangeMode.js.map +1 -1
  59. package/dist/components/Chat/Chat.css +114 -38
  60. package/dist/components/Chat/Chat.js +39 -53
  61. package/dist/components/Chat/Chat.js.map +1 -1
  62. package/dist/components/ChatBubble/ChatBubble.css +206 -68
  63. package/dist/components/ChatBubble/ChatBubble.d.ts +5 -0
  64. package/dist/components/ChatBubble/ChatBubble.js +223 -164
  65. package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
  66. package/dist/components/ChatHistoryDrawer/ChatHistory.css +417 -156
  67. package/dist/components/ChatHistoryDrawer/ChatHistory.d.ts +0 -1
  68. package/dist/components/ChatHistoryDrawer/ChatHistory.js +252 -151
  69. package/dist/components/ChatHistoryDrawer/ChatHistory.js.map +1 -1
  70. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +12 -3
  71. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +18 -7
  72. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  73. package/dist/components/ChatInputs/ChatInputs.css +68 -51
  74. package/dist/components/ChatInputs/ChatInputs.d.ts +1 -0
  75. package/dist/components/ChatInputs/ChatInputs.js +51 -28
  76. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  77. package/dist/components/ChatTextArea/ChatTextArea.css +38 -12
  78. package/dist/components/ChatTextArea/ChatTextArea.js +1 -1
  79. package/dist/components/ChatTextArea/ChatTextArea.js.map +1 -1
  80. package/dist/components/CompletionProviderStatus/CompletionProviderStatus.css +5 -5
  81. package/dist/components/CompletionProviderStatus/CompletionProviderStatus.d.ts +0 -1
  82. package/dist/components/CompletionProviderStatus/CompletionProviderStatus.js +8 -11
  83. package/dist/components/CompletionProviderStatus/CompletionProviderStatus.js.map +1 -1
  84. package/dist/components/ContentPreviewModal/ContentPreviewModal.css +129 -84
  85. package/dist/components/ContentPreviewModal/ContentPreviewModal.js +5 -4
  86. package/dist/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -1
  87. package/dist/components/ContentPreviewModal/index.js +2 -4
  88. package/dist/components/ContentPreviewModal/index.js.map +1 -1
  89. package/dist/components/CustomGLBModelViewer/ModelViewer.d.ts +0 -1
  90. package/dist/components/DateSelector/DateSelector.css +22 -24
  91. package/dist/components/DateSelector/DateSelector.d.ts +0 -1
  92. package/dist/components/DateSelector/DateSelector.js +2 -2
  93. package/dist/components/DateSelector/DateSelector.js.map +1 -1
  94. package/dist/components/DrawerFooter/DrawerFooter.js +1 -1
  95. package/dist/components/DrawerFooter/DrawerFooter.js.map +1 -1
  96. package/dist/components/ErrorBoundary/ErrorBoundary.js +3 -4
  97. package/dist/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
  98. package/dist/components/ExpertsDrawer/ExpertsDrawer.css +6 -9
  99. package/dist/components/ExpertsDrawer/ExpertsDrawer.d.ts +0 -1
  100. package/dist/components/ExpertsDrawer/ExpertsDrawer.js +2 -3
  101. package/dist/components/ExpertsDrawer/ExpertsDrawer.js.map +1 -1
  102. package/dist/components/ExportHistoryButton/ExportHistoryButton.css +3 -3
  103. package/dist/components/FeedbackButtons/FeedbackButtons.css +17 -15
  104. package/dist/components/FeedbackButtons/FeedbackButtons.d.ts +0 -1
  105. package/dist/components/FeedbackButtons/FeedbackButtons.js +32 -12
  106. package/dist/components/FeedbackButtons/FeedbackButtons.js.map +1 -1
  107. package/dist/components/FilePreview/FilePreview.css +56 -40
  108. package/dist/components/FilePreview/FilePreview.d.ts +0 -1
  109. package/dist/components/FilePreview/FilePreview.js +11 -12
  110. package/dist/components/FilePreview/FilePreview.js.map +1 -1
  111. package/dist/components/Header/ChatConsumptionDropdown.d.ts +10 -2
  112. package/dist/components/Header/ChatConsumptionDropdown.js +36 -10
  113. package/dist/components/Header/ChatConsumptionDropdown.js.map +1 -1
  114. package/dist/components/Header/Header.css +525 -62
  115. package/dist/components/Header/Header.d.ts +7 -1
  116. package/dist/components/Header/Header.js +357 -69
  117. package/dist/components/Header/Header.js.map +1 -1
  118. package/dist/components/KnownFacts/KnownFacts.css +52 -13
  119. package/dist/components/KnownFacts/KnownFacts.d.ts +2 -2
  120. package/dist/components/KnownFacts/KnownFacts.js +183 -128
  121. package/dist/components/KnownFacts/KnownFacts.js.map +1 -1
  122. package/dist/components/LoginDrawer/LoginDrawer.css +377 -252
  123. package/dist/components/LoginDrawer/LoginDrawer.d.ts +1 -2
  124. package/dist/components/LoginDrawer/LoginDrawer.js +140 -32
  125. package/dist/components/LoginDrawer/LoginDrawer.js.map +1 -1
  126. package/dist/components/MediaWidget/DocumentCard.js +1 -2
  127. package/dist/components/MediaWidget/DocumentCard.js.map +1 -1
  128. package/dist/components/MediaWidget/MediaItemWidget.css +222 -176
  129. package/dist/components/MediaWidget/MediaItemWidget.js +23 -26
  130. package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
  131. package/dist/components/MediaWidget/MediaItemWidget.types.d.ts +0 -1
  132. package/dist/components/MediaWidget/MediaItemWidget.utils.js +11 -11
  133. package/dist/components/MediaWidget/MediaItemWidget.utils.js.map +1 -1
  134. package/dist/components/MediaWidget/MediaPreviewModal.d.ts +1 -1
  135. package/dist/components/MediaWidget/MediaPreviewModal.js +2 -3
  136. package/dist/components/MediaWidget/MediaPreviewModal.js.map +1 -1
  137. package/dist/components/MediaWidget/MediaWidget.css +5 -5
  138. package/dist/components/MediaWidget/MediaWidget.js +3 -4
  139. package/dist/components/MediaWidget/MediaWidget.js.map +1 -1
  140. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +83 -87
  141. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +4 -9
  142. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
  143. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +25 -28
  144. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
  145. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js +5 -8
  146. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js.map +1 -1
  147. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.js +8 -7
  148. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.js.map +1 -1
  149. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +287 -277
  150. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/utils/PDFExporter.js +5 -5
  151. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/utils/PDFExporter.js.map +1 -1
  152. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +117 -142
  153. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +47 -45
  154. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  155. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +4 -134
  156. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.js +10 -16
  157. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.js.map +1 -1
  158. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +196 -166
  159. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +41 -29
  160. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  161. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +204 -205
  162. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
  163. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.d.ts +4 -1
  164. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.js +5 -1
  165. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.js.map +1 -1
  166. package/dist/components/MemoriArtifactSystem/types/artifact.types.d.ts +1 -0
  167. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.js +15 -4
  168. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.js.map +1 -1
  169. package/dist/components/MemoriWidget/MemoriWidget.css +16 -71
  170. package/dist/components/MemoriWidget/MemoriWidget.d.ts +16 -10
  171. package/dist/components/MemoriWidget/MemoriWidget.js +198 -105
  172. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  173. package/dist/components/MicrophoneButton/MicrophoneButton.css +25 -5
  174. package/dist/components/MicrophoneButton/MicrophoneButton.d.ts +2 -2
  175. package/dist/components/MicrophoneButton/MicrophoneButton.js +16 -13
  176. package/dist/components/MicrophoneButton/MicrophoneButton.js.map +1 -1
  177. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +48 -4
  178. package/dist/components/MobileSessionPanel/MobileSessionPanel.d.ts +5 -1
  179. package/dist/components/MobileSessionPanel/MobileSessionPanel.js +177 -57
  180. package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
  181. package/dist/components/PositionPopover/PositionPopover.js +2 -1
  182. package/dist/components/PositionPopover/PositionPopover.js.map +1 -1
  183. package/dist/components/PoweredBy/PoweredBy.css +29 -27
  184. package/dist/components/PoweredBy/PoweredBy.d.ts +1 -2
  185. package/dist/components/PoweredBy/PoweredBy.js +5 -7
  186. package/dist/components/PoweredBy/PoweredBy.js.map +1 -1
  187. package/dist/components/SendOnEnterMenu/SendOnEnterMenu.css +3 -3
  188. package/dist/components/SendOnEnterMenu/SendOnEnterMenu.js +3 -9
  189. package/dist/components/SendOnEnterMenu/SendOnEnterMenu.js.map +1 -1
  190. package/dist/components/SettingsDrawer/SettingsDrawer.css +2 -2
  191. package/dist/components/SettingsDrawer/SettingsDrawer.d.ts +0 -1
  192. package/dist/components/SettingsDrawer/SettingsDrawer.js +19 -17
  193. package/dist/components/SettingsDrawer/SettingsDrawer.js.map +1 -1
  194. package/dist/components/ShareButton/ShareButton.css +254 -8
  195. package/dist/components/ShareButton/ShareButton.d.ts +6 -1
  196. package/dist/components/ShareButton/ShareButton.js +199 -41
  197. package/dist/components/ShareButton/ShareButton.js.map +1 -1
  198. package/dist/components/Snippet/Snippet.css +53 -17
  199. package/dist/components/Snippet/Snippet.d.ts +0 -1
  200. package/dist/components/Snippet/Snippet.js +3 -3
  201. package/dist/components/Snippet/Snippet.js.map +1 -1
  202. package/dist/components/StartPanel/StartPanel.css +733 -110
  203. package/dist/components/StartPanel/StartPanel.d.ts +5 -1
  204. package/dist/components/StartPanel/StartPanel.js +152 -64
  205. package/dist/components/StartPanel/StartPanel.js.map +1 -1
  206. package/dist/components/Typing/Typing.d.ts +8 -2
  207. package/dist/components/Typing/Typing.js +41 -2
  208. package/dist/components/Typing/Typing.js.map +1 -1
  209. package/dist/components/UploadButton/UploadButton.css +357 -326
  210. package/dist/components/UploadButton/UploadButton.d.ts +1 -0
  211. package/dist/components/UploadButton/UploadButton.js +60 -27
  212. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  213. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.d.ts +0 -2
  214. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +13 -27
  215. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  216. package/dist/components/UploadButton/UploadImages/UploadImages.js +22 -16
  217. package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  218. package/dist/components/VenueWidget/VenueWidget.css +101 -41
  219. package/dist/components/VenueWidget/VenueWidget.d.ts +19 -1
  220. package/dist/components/VenueWidget/VenueWidget.js +140 -59
  221. package/dist/components/VenueWidget/VenueWidget.js.map +1 -1
  222. package/dist/components/WhyThisAnswer/WhyThisAnswer.css +20 -20
  223. package/dist/components/WhyThisAnswer/WhyThisAnswer.d.ts +0 -1
  224. package/dist/components/WhyThisAnswer/WhyThisAnswer.js +11 -8
  225. package/dist/components/WhyThisAnswer/WhyThisAnswer.js.map +1 -1
  226. package/dist/components/icons/GasStation.d.ts +2 -3
  227. package/dist/components/layouts/Chat.js +194 -4
  228. package/dist/components/layouts/Chat.js.map +1 -1
  229. package/dist/components/layouts/FullPage.js +186 -4
  230. package/dist/components/layouts/FullPage.js.map +1 -1
  231. package/dist/components/layouts/HiddenChat.js +289 -12
  232. package/dist/components/layouts/HiddenChat.js.map +1 -1
  233. package/dist/components/layouts/Totem.js +2 -3
  234. package/dist/components/layouts/Totem.js.map +1 -1
  235. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +1 -1
  236. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  237. package/dist/components/layouts/ZoomedFullBody.js +185 -3
  238. package/dist/components/layouts/ZoomedFullBody.js.map +1 -1
  239. package/dist/components/layouts/chat.css +273 -71
  240. package/dist/components/layouts/fullpage.css +25 -8
  241. package/dist/components/layouts/hidden-chat.css +329 -84
  242. package/dist/components/layouts/totem.css +23 -15
  243. package/dist/components/layouts/zoomed-full-body.css +144 -6
  244. package/dist/components/ui/Tooltip.js +3 -3
  245. package/dist/components/ui/Tooltip.js.map +1 -1
  246. package/dist/context/visemeContext.js.map +1 -1
  247. package/dist/helpers/chatPdfExport.js +15 -12
  248. package/dist/helpers/chatPdfExport.js.map +1 -1
  249. package/dist/helpers/configuration.js.map +1 -1
  250. package/dist/helpers/constants.js +25 -25
  251. package/dist/helpers/constants.js.map +1 -1
  252. package/dist/helpers/credits.d.ts +3 -3
  253. package/dist/helpers/credits.js.map +1 -1
  254. package/dist/helpers/error.js.map +1 -1
  255. package/dist/helpers/imageCompression.js.map +1 -1
  256. package/dist/helpers/llmUsage.js.map +1 -1
  257. package/dist/helpers/markedExtendedTables.js +1 -1
  258. package/dist/helpers/markedExtendedTables.js.map +1 -1
  259. package/dist/helpers/media.js.map +1 -1
  260. package/dist/helpers/message.js.map +1 -1
  261. package/dist/helpers/piiDetection.js +1 -2
  262. package/dist/helpers/piiDetection.js.map +1 -1
  263. package/dist/helpers/sanitizer.js +1 -2
  264. package/dist/helpers/sanitizer.js.map +1 -1
  265. package/dist/helpers/statistics.js.map +1 -1
  266. package/dist/helpers/stt/useSTT.d.ts +0 -1
  267. package/dist/helpers/stt/useSTT.js +1 -2
  268. package/dist/helpers/stt/useSTT.js.map +1 -1
  269. package/dist/helpers/tts/ttsVoiceUtility.js +8 -8
  270. package/dist/helpers/tts/ttsVoiceUtility.js.map +1 -1
  271. package/dist/helpers/tts/useTTS.d.ts +0 -1
  272. package/dist/helpers/tts/useTTS.js +1 -2
  273. package/dist/helpers/tts/useTTS.js.map +1 -1
  274. package/dist/helpers/utils.d.ts +2 -1
  275. package/dist/helpers/utils.js +8 -7
  276. package/dist/helpers/utils.js.map +1 -1
  277. package/dist/i18n.js +2 -0
  278. package/dist/i18n.js.map +1 -1
  279. package/dist/index.js +17 -17
  280. package/dist/index.js.map +1 -1
  281. package/dist/locales/de.json +67 -6
  282. package/dist/locales/en.json +67 -6
  283. package/dist/locales/es.json +67 -7
  284. package/dist/locales/fr.json +68 -7
  285. package/dist/locales/it.json +68 -7
  286. package/dist/styles.css +87 -52
  287. package/dist/version.d.ts +1 -1
  288. package/dist/version.js +1 -1
  289. package/dist/version.js.map +1 -1
  290. package/esm/components/AgeVerificationModal/AgeVerificationModal.css +35 -12
  291. package/esm/components/AgeVerificationModal/AgeVerificationModal.d.ts +0 -1
  292. package/esm/components/AgeVerificationModal/AgeVerificationModal.js +22 -10
  293. package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  294. package/esm/components/Auth/Auth.css +13 -9
  295. package/esm/components/Auth/Auth.d.ts +0 -1
  296. package/esm/components/Auth/Auth.js +14 -9
  297. package/esm/components/Auth/Auth.js.map +1 -1
  298. package/esm/components/Avatar/Avatar.css +2 -2
  299. package/esm/components/Avatar/Avatar.js +7 -7
  300. package/esm/components/Avatar/Avatar.js.map +1 -1
  301. package/esm/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.d.ts +0 -1
  302. package/esm/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.js +1 -1
  303. package/esm/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.js.map +1 -1
  304. package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.d.ts +0 -1
  305. package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js.map +1 -1
  306. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.d.ts +0 -1
  307. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  308. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.js.map +1 -1
  309. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarPositionController.js.map +1 -1
  310. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js.map +1 -1
  311. package/esm/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.d.ts +0 -1
  312. package/esm/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js.map +1 -1
  313. package/esm/components/Avatar/AvatarView/AvatarComponent/components/loader.d.ts +0 -1
  314. package/esm/components/Avatar/AvatarView/AvatarComponent/components/loader.js +1 -1
  315. package/esm/components/Avatar/AvatarView/AvatarComponent/components/loader.js.map +1 -1
  316. package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +21 -21
  317. package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.d.ts +0 -1
  318. package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.js +8 -9
  319. package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.js.map +1 -1
  320. package/esm/components/Avatar/AvatarView/index.js.map +1 -1
  321. package/esm/components/Avatar/AvatarView/utils/hideHands.js.map +1 -1
  322. package/esm/components/Avatar/AvatarView/utils/useEyeBlink.js.map +1 -1
  323. package/esm/components/Avatar/AvatarView/utils/useHeadMovement.js.map +1 -1
  324. package/esm/components/Avatar/AvatarView/utils/useLoadingMorphAnim.js.map +1 -1
  325. package/esm/components/Avatar/AvatarView/utils/useMouthAnimation.js.map +1 -1
  326. package/esm/components/Avatar/AvatarView/utils/useSmile.js.map +1 -1
  327. package/esm/components/Avatar/AvatarView/utils/utils.js.map +1 -1
  328. package/esm/components/Blob/Blob.css +14 -12
  329. package/esm/components/Blob/Blob.d.ts +0 -1
  330. package/esm/components/BlockedMemoriBadge/BlockedMemoriBadge.css +4 -4
  331. package/esm/components/BlockedMemoriBadge/BlockedMemoriBadge.d.ts +0 -1
  332. package/esm/components/BlockedMemoriBadge/BlockedMemoriBadge.js +3 -3
  333. package/esm/components/BlockedMemoriBadge/BlockedMemoriBadge.js.map +1 -1
  334. package/esm/components/ChangeMode/ChangeMode.css +4 -2
  335. package/esm/components/ChangeMode/ChangeMode.js +8 -3
  336. package/esm/components/ChangeMode/ChangeMode.js.map +1 -1
  337. package/esm/components/Chat/Chat.css +114 -38
  338. package/esm/components/Chat/Chat.js +35 -49
  339. package/esm/components/Chat/Chat.js.map +1 -1
  340. package/esm/components/ChatBubble/ChatBubble.css +206 -68
  341. package/esm/components/ChatBubble/ChatBubble.d.ts +5 -0
  342. package/esm/components/ChatBubble/ChatBubble.js +223 -164
  343. package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
  344. package/esm/components/ChatHistoryDrawer/ChatHistory.css +417 -156
  345. package/esm/components/ChatHistoryDrawer/ChatHistory.d.ts +0 -1
  346. package/esm/components/ChatHistoryDrawer/ChatHistory.js +252 -151
  347. package/esm/components/ChatHistoryDrawer/ChatHistory.js.map +1 -1
  348. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +12 -3
  349. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +18 -7
  350. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  351. package/esm/components/ChatInputs/ChatInputs.css +68 -51
  352. package/esm/components/ChatInputs/ChatInputs.d.ts +1 -0
  353. package/esm/components/ChatInputs/ChatInputs.js +51 -28
  354. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  355. package/esm/components/ChatTextArea/ChatTextArea.css +38 -12
  356. package/esm/components/ChatTextArea/ChatTextArea.js +1 -1
  357. package/esm/components/ChatTextArea/ChatTextArea.js.map +1 -1
  358. package/esm/components/CompletionProviderStatus/CompletionProviderStatus.css +5 -5
  359. package/esm/components/CompletionProviderStatus/CompletionProviderStatus.d.ts +0 -1
  360. package/esm/components/CompletionProviderStatus/CompletionProviderStatus.js +5 -7
  361. package/esm/components/CompletionProviderStatus/CompletionProviderStatus.js.map +1 -1
  362. package/esm/components/ContentPreviewModal/ContentPreviewModal.css +129 -84
  363. package/esm/components/ContentPreviewModal/ContentPreviewModal.js +5 -4
  364. package/esm/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -1
  365. package/esm/components/CustomGLBModelViewer/ModelViewer.d.ts +0 -1
  366. package/esm/components/DateSelector/DateSelector.css +22 -24
  367. package/esm/components/DateSelector/DateSelector.d.ts +0 -1
  368. package/esm/components/DateSelector/DateSelector.js +2 -2
  369. package/esm/components/DateSelector/DateSelector.js.map +1 -1
  370. package/esm/components/DrawerFooter/DrawerFooter.js +1 -1
  371. package/esm/components/DrawerFooter/DrawerFooter.js.map +1 -1
  372. package/esm/components/ErrorBoundary/ErrorBoundary.js +3 -3
  373. package/esm/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
  374. package/esm/components/ExpertsDrawer/ExpertsDrawer.css +6 -9
  375. package/esm/components/ExpertsDrawer/ExpertsDrawer.d.ts +0 -1
  376. package/esm/components/ExpertsDrawer/ExpertsDrawer.js +1 -1
  377. package/esm/components/ExpertsDrawer/ExpertsDrawer.js.map +1 -1
  378. package/esm/components/ExportHistoryButton/ExportHistoryButton.css +3 -3
  379. package/esm/components/FeedbackButtons/FeedbackButtons.css +17 -15
  380. package/esm/components/FeedbackButtons/FeedbackButtons.d.ts +0 -1
  381. package/esm/components/FeedbackButtons/FeedbackButtons.js +32 -11
  382. package/esm/components/FeedbackButtons/FeedbackButtons.js.map +1 -1
  383. package/esm/components/FilePreview/FilePreview.css +56 -40
  384. package/esm/components/FilePreview/FilePreview.d.ts +0 -1
  385. package/esm/components/FilePreview/FilePreview.js +11 -12
  386. package/esm/components/FilePreview/FilePreview.js.map +1 -1
  387. package/esm/components/Header/ChatConsumptionDropdown.d.ts +10 -2
  388. package/esm/components/Header/ChatConsumptionDropdown.js +34 -10
  389. package/esm/components/Header/ChatConsumptionDropdown.js.map +1 -1
  390. package/esm/components/Header/Header.css +525 -62
  391. package/esm/components/Header/Header.d.ts +7 -1
  392. package/esm/components/Header/Header.js +359 -71
  393. package/esm/components/Header/Header.js.map +1 -1
  394. package/esm/components/KnownFacts/KnownFacts.css +52 -13
  395. package/esm/components/KnownFacts/KnownFacts.d.ts +2 -2
  396. package/esm/components/KnownFacts/KnownFacts.js +185 -129
  397. package/esm/components/KnownFacts/KnownFacts.js.map +1 -1
  398. package/esm/components/LoginDrawer/LoginDrawer.css +377 -252
  399. package/esm/components/LoginDrawer/LoginDrawer.d.ts +1 -2
  400. package/esm/components/LoginDrawer/LoginDrawer.js +140 -32
  401. package/esm/components/LoginDrawer/LoginDrawer.js.map +1 -1
  402. package/esm/components/MediaWidget/MediaItemWidget.css +222 -176
  403. package/esm/components/MediaWidget/MediaItemWidget.js +14 -17
  404. package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
  405. package/esm/components/MediaWidget/MediaItemWidget.types.d.ts +0 -1
  406. package/esm/components/MediaWidget/MediaItemWidget.utils.js.map +1 -1
  407. package/esm/components/MediaWidget/MediaPreviewModal.d.ts +1 -1
  408. package/esm/components/MediaWidget/MediaPreviewModal.js +1 -1
  409. package/esm/components/MediaWidget/MediaPreviewModal.js.map +1 -1
  410. package/esm/components/MediaWidget/MediaWidget.css +5 -5
  411. package/esm/components/MediaWidget/MediaWidget.js +2 -3
  412. package/esm/components/MediaWidget/MediaWidget.js.map +1 -1
  413. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +83 -87
  414. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +4 -8
  415. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
  416. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +23 -26
  417. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
  418. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js +3 -6
  419. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js.map +1 -1
  420. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.js +8 -7
  421. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.js.map +1 -1
  422. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +287 -277
  423. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/utils/PDFExporter.js +5 -5
  424. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/utils/PDFExporter.js.map +1 -1
  425. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +117 -142
  426. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +47 -45
  427. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  428. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +4 -134
  429. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.js +9 -14
  430. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.js.map +1 -1
  431. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +196 -166
  432. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +41 -29
  433. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  434. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +204 -205
  435. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
  436. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.d.ts +4 -1
  437. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.js +5 -1
  438. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.js.map +1 -1
  439. package/esm/components/MemoriArtifactSystem/types/artifact.types.d.ts +1 -0
  440. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.js +15 -4
  441. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.js.map +1 -1
  442. package/esm/components/MemoriWidget/MemoriWidget.css +16 -71
  443. package/esm/components/MemoriWidget/MemoriWidget.d.ts +16 -10
  444. package/esm/components/MemoriWidget/MemoriWidget.js +197 -105
  445. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  446. package/esm/components/MicrophoneButton/MicrophoneButton.css +25 -5
  447. package/esm/components/MicrophoneButton/MicrophoneButton.d.ts +2 -2
  448. package/esm/components/MicrophoneButton/MicrophoneButton.js +16 -12
  449. package/esm/components/MicrophoneButton/MicrophoneButton.js.map +1 -1
  450. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +48 -4
  451. package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +5 -1
  452. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +178 -59
  453. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
  454. package/esm/components/PositionPopover/PositionPopover.js +2 -1
  455. package/esm/components/PositionPopover/PositionPopover.js.map +1 -1
  456. package/esm/components/PoweredBy/PoweredBy.css +29 -27
  457. package/esm/components/PoweredBy/PoweredBy.d.ts +1 -2
  458. package/esm/components/PoweredBy/PoweredBy.js +4 -7
  459. package/esm/components/PoweredBy/PoweredBy.js.map +1 -1
  460. package/esm/components/SendOnEnterMenu/SendOnEnterMenu.css +3 -3
  461. package/esm/components/SendOnEnterMenu/SendOnEnterMenu.js +3 -8
  462. package/esm/components/SendOnEnterMenu/SendOnEnterMenu.js.map +1 -1
  463. package/esm/components/SettingsDrawer/SettingsDrawer.css +2 -2
  464. package/esm/components/SettingsDrawer/SettingsDrawer.d.ts +0 -1
  465. package/esm/components/SettingsDrawer/SettingsDrawer.js +19 -16
  466. package/esm/components/SettingsDrawer/SettingsDrawer.js.map +1 -1
  467. package/esm/components/ShareButton/ShareButton.css +254 -8
  468. package/esm/components/ShareButton/ShareButton.d.ts +6 -1
  469. package/esm/components/ShareButton/ShareButton.js +200 -42
  470. package/esm/components/ShareButton/ShareButton.js.map +1 -1
  471. package/esm/components/Snippet/Snippet.css +53 -17
  472. package/esm/components/Snippet/Snippet.d.ts +0 -1
  473. package/esm/components/Snippet/Snippet.js +3 -3
  474. package/esm/components/Snippet/Snippet.js.map +1 -1
  475. package/esm/components/StartPanel/StartPanel.css +733 -110
  476. package/esm/components/StartPanel/StartPanel.d.ts +5 -1
  477. package/esm/components/StartPanel/StartPanel.js +154 -66
  478. package/esm/components/StartPanel/StartPanel.js.map +1 -1
  479. package/esm/components/Typing/Typing.d.ts +8 -2
  480. package/esm/components/Typing/Typing.js +41 -2
  481. package/esm/components/Typing/Typing.js.map +1 -1
  482. package/esm/components/UploadButton/UploadButton.css +357 -326
  483. package/esm/components/UploadButton/UploadButton.d.ts +1 -0
  484. package/esm/components/UploadButton/UploadButton.js +61 -28
  485. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  486. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.d.ts +0 -2
  487. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +13 -27
  488. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  489. package/esm/components/UploadButton/UploadImages/UploadImages.js +22 -16
  490. package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  491. package/esm/components/VenueWidget/VenueWidget.css +101 -41
  492. package/esm/components/VenueWidget/VenueWidget.d.ts +19 -1
  493. package/esm/components/VenueWidget/VenueWidget.js +138 -61
  494. package/esm/components/VenueWidget/VenueWidget.js.map +1 -1
  495. package/esm/components/WhyThisAnswer/WhyThisAnswer.css +20 -20
  496. package/esm/components/WhyThisAnswer/WhyThisAnswer.d.ts +0 -1
  497. package/esm/components/WhyThisAnswer/WhyThisAnswer.js +10 -7
  498. package/esm/components/WhyThisAnswer/WhyThisAnswer.js.map +1 -1
  499. package/esm/components/icons/GasStation.d.ts +2 -3
  500. package/esm/components/layouts/Chat.js +194 -4
  501. package/esm/components/layouts/Chat.js.map +1 -1
  502. package/esm/components/layouts/FullPage.js +186 -4
  503. package/esm/components/layouts/FullPage.js.map +1 -1
  504. package/esm/components/layouts/HiddenChat.js +290 -13
  505. package/esm/components/layouts/HiddenChat.js.map +1 -1
  506. package/esm/components/layouts/Totem.js +2 -2
  507. package/esm/components/layouts/Totem.js.map +1 -1
  508. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +1 -1
  509. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  510. package/esm/components/layouts/ZoomedFullBody.js +185 -3
  511. package/esm/components/layouts/ZoomedFullBody.js.map +1 -1
  512. package/esm/components/layouts/chat.css +273 -71
  513. package/esm/components/layouts/fullpage.css +25 -8
  514. package/esm/components/layouts/hidden-chat.css +329 -84
  515. package/esm/components/layouts/totem.css +23 -15
  516. package/esm/components/layouts/zoomed-full-body.css +144 -6
  517. package/esm/components/ui/Tooltip.js +3 -3
  518. package/esm/components/ui/Tooltip.js.map +1 -1
  519. package/esm/context/visemeContext.js.map +1 -1
  520. package/esm/helpers/chatPdfExport.js +15 -12
  521. package/esm/helpers/chatPdfExport.js.map +1 -1
  522. package/esm/helpers/configuration.js.map +1 -1
  523. package/esm/helpers/constants.js +25 -25
  524. package/esm/helpers/constants.js.map +1 -1
  525. package/esm/helpers/credits.d.ts +3 -3
  526. package/esm/helpers/credits.js.map +1 -1
  527. package/esm/helpers/error.js.map +1 -1
  528. package/esm/helpers/imageCompression.js.map +1 -1
  529. package/esm/helpers/llmUsage.js.map +1 -1
  530. package/esm/helpers/markedExtendedTables.js.map +1 -1
  531. package/esm/helpers/media.js.map +1 -1
  532. package/esm/helpers/message.js.map +1 -1
  533. package/esm/helpers/piiDetection.js.map +1 -1
  534. package/esm/helpers/statistics.js.map +1 -1
  535. package/esm/helpers/stt/useSTT.d.ts +0 -1
  536. package/esm/helpers/stt/useSTT.js.map +1 -1
  537. package/esm/helpers/tts/ttsVoiceUtility.js.map +1 -1
  538. package/esm/helpers/tts/useTTS.d.ts +0 -1
  539. package/esm/helpers/tts/useTTS.js.map +1 -1
  540. package/esm/helpers/utils.d.ts +2 -1
  541. package/esm/helpers/utils.js +1 -0
  542. package/esm/helpers/utils.js.map +1 -1
  543. package/esm/i18n.js +2 -0
  544. package/esm/i18n.js.map +1 -1
  545. package/esm/index.js +17 -17
  546. package/esm/index.js.map +1 -1
  547. package/esm/locales/de.json +67 -6
  548. package/esm/locales/en.json +67 -6
  549. package/esm/locales/es.json +67 -7
  550. package/esm/locales/fr.json +68 -7
  551. package/esm/locales/it.json +68 -7
  552. package/esm/styles.css +87 -52
  553. package/esm/version.d.ts +1 -1
  554. package/esm/version.js +1 -1
  555. package/esm/version.js.map +1 -1
  556. package/package.json +15 -11
  557. package/src/Showcase.stories.tsx +641 -0
  558. package/src/__snapshots__/index.test.tsx.snap +40 -10
  559. package/src/components/AgeVerificationModal/AgeVerificationModal.css +35 -12
  560. package/src/components/AgeVerificationModal/AgeVerificationModal.stories.tsx +4 -1
  561. package/src/components/AgeVerificationModal/AgeVerificationModal.test.tsx +2 -1
  562. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +59 -39
  563. package/src/components/AgeVerificationModal/__snapshots__/AgeVerificationModal.test.tsx.snap +27 -3
  564. package/src/components/Auth/Auth.css +13 -9
  565. package/src/components/Auth/Auth.tsx +30 -18
  566. package/src/components/Auth/__snapshots__/Auth.test.tsx.snap +91 -35
  567. package/src/components/Avatar/Avatar.css +2 -2
  568. package/src/components/Avatar/Avatar.tsx +11 -8
  569. package/src/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.tsx +1 -1
  570. package/src/components/Avatar/AvatarView/AvatarComponent/components/loader.tsx +1 -1
  571. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +21 -21
  572. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.tsx +12 -14
  573. package/src/components/Blob/Blob.css +14 -12
  574. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.css +4 -4
  575. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.tsx +3 -3
  576. package/src/components/BlockedMemoriBadge/__snapshots__/BlockedMemoriBadge.test.tsx.snap +115 -70
  577. package/src/components/ChangeMode/ChangeMode.css +4 -2
  578. package/src/components/ChangeMode/ChangeMode.tsx +29 -28
  579. package/src/components/ChangeMode/__snapshots__/ChangeMode.test.tsx.snap +50 -80
  580. package/src/components/Chat/Chat.css +114 -38
  581. package/src/components/Chat/Chat.stories.tsx +15 -12
  582. package/src/components/Chat/Chat.test.tsx +11 -2
  583. package/src/components/Chat/Chat.tsx +136 -173
  584. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +8260 -4942
  585. package/src/components/ChatBubble/ChatBubble.css +206 -68
  586. package/src/components/ChatBubble/ChatBubble.stories.tsx +13 -20
  587. package/src/components/ChatBubble/ChatBubble.test.tsx +5 -0
  588. package/src/components/ChatBubble/ChatBubble.tsx +505 -401
  589. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +7753 -6638
  590. package/src/components/ChatHistoryDrawer/ChatHistory.css +417 -156
  591. package/src/components/ChatHistoryDrawer/ChatHistory.stories.tsx +121 -82
  592. package/src/components/ChatHistoryDrawer/ChatHistory.test.tsx +65 -56
  593. package/src/components/ChatHistoryDrawer/ChatHistory.tsx +507 -513
  594. package/src/components/ChatHistoryDrawer/ChatResumeDrawer.css +367 -0
  595. package/src/components/ChatHistoryDrawer/ChatResumeDrawer.tsx +296 -0
  596. package/src/components/ChatHistoryDrawer/__snapshots__/ChatHistory.test.tsx.snap +12 -15
  597. package/src/components/ChatInputs/ChatInputs.css +68 -51
  598. package/src/components/ChatInputs/ChatInputs.stories.tsx +13 -10
  599. package/src/components/ChatInputs/ChatInputs.tsx +80 -54
  600. package/src/components/ChatTextArea/ChatTextArea.css +38 -12
  601. package/src/components/ChatTextArea/ChatTextArea.tsx +7 -3
  602. package/src/components/ChatTextArea/__snapshots__/ChatTextArea.test.tsx.snap +6 -0
  603. package/src/components/CompletionProviderStatus/CompletionProviderStatus.css +5 -5
  604. package/src/components/CompletionProviderStatus/CompletionProviderStatus.tsx +5 -7
  605. package/src/components/CompletionProviderStatus/__snapshots__/CompletionProviderStatus.test.tsx.snap +63 -48
  606. package/src/components/ContentPreviewModal/ContentPreviewModal.css +129 -84
  607. package/src/components/ContentPreviewModal/ContentPreviewModal.tsx +4 -3
  608. package/src/components/DateSelector/DateSelector.css +22 -24
  609. package/src/components/DateSelector/DateSelector.tsx +11 -4
  610. package/src/components/DrawerFooter/DrawerFooter.css +62 -0
  611. package/src/components/DrawerFooter/DrawerFooter.tsx +58 -0
  612. package/src/components/ErrorBoundary/ErrorBoundary.tsx +3 -3
  613. package/src/components/ExpertsDrawer/ExpertsDrawer.css +6 -9
  614. package/src/components/ExpertsDrawer/ExpertsDrawer.tsx +1 -1
  615. package/src/components/ExpertsDrawer/__snapshots__/ExpertsDrawer.test.tsx.snap +4 -5
  616. package/src/components/ExportHistoryButton/ExportHistoryButton.css +3 -3
  617. package/src/components/FeedbackButtons/FeedbackButtons.css +17 -15
  618. package/src/components/FeedbackButtons/FeedbackButtons.stories.tsx +4 -1
  619. package/src/components/FeedbackButtons/FeedbackButtons.test.tsx +1 -1
  620. package/src/components/FeedbackButtons/FeedbackButtons.tsx +104 -77
  621. package/src/components/FeedbackButtons/__snapshots__/FeedbackButtons.test.tsx.snap +30 -17
  622. package/src/components/FilePreview/FilePreview.css +56 -40
  623. package/src/components/FilePreview/FilePreview.tsx +36 -27
  624. package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +165 -96
  625. package/src/components/Header/ChatConsumptionDropdown.test.tsx +41 -4
  626. package/src/components/Header/ChatConsumptionDropdown.tsx +190 -123
  627. package/src/components/Header/Header.css +525 -62
  628. package/src/components/Header/Header.stories.tsx +123 -57
  629. package/src/components/Header/Header.test.tsx +43 -15
  630. package/src/components/Header/Header.tsx +1037 -250
  631. package/src/components/Header/__snapshots__/Header.test.tsx.snap +1752 -700
  632. package/src/components/KnownFacts/KnownFacts.css +52 -13
  633. package/src/components/KnownFacts/KnownFacts.stories.tsx +11 -8
  634. package/src/components/KnownFacts/KnownFacts.test.tsx +1 -1
  635. package/src/components/KnownFacts/KnownFacts.tsx +327 -316
  636. package/src/components/KnownFacts/__snapshots__/KnownFacts.test.tsx.snap +27 -3
  637. package/src/components/LoginDrawer/LoginDrawer.css +377 -252
  638. package/src/components/LoginDrawer/LoginDrawer.stories.tsx +3 -0
  639. package/src/components/LoginDrawer/LoginDrawer.test.tsx +1 -1
  640. package/src/components/LoginDrawer/LoginDrawer.tsx +301 -123
  641. package/src/components/LoginDrawer/__snapshots__/LoginDrawer.test.tsx.snap +90 -12
  642. package/src/components/MediaWidget/DocumentCard.test.tsx +1 -1
  643. package/src/components/MediaWidget/MediaItemWidget.css +222 -176
  644. package/src/components/MediaWidget/MediaItemWidget.tsx +17 -31
  645. package/src/components/MediaWidget/MediaPreviewModal.test.tsx +1 -1
  646. package/src/components/MediaWidget/MediaPreviewModal.tsx +1 -1
  647. package/src/components/MediaWidget/MediaWidget.css +5 -5
  648. package/src/components/MediaWidget/MediaWidget.tsx +6 -16
  649. package/src/components/MediaWidget/__snapshots__/MediaItemWidget.test.tsx.snap +280 -463
  650. package/src/components/MediaWidget/__snapshots__/MediaWidget.test.tsx.snap +31 -45
  651. package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +17 -17
  652. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +83 -87
  653. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +32 -42
  654. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.tsx +81 -84
  655. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.tsx +8 -6
  656. package/src/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.ts +8 -7
  657. package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +287 -277
  658. package/src/components/MemoriArtifactSystem/components/ArtifactActions/utils/PDFExporter.ts +5 -5
  659. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +117 -142
  660. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +144 -155
  661. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +4 -134
  662. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.tsx +29 -45
  663. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +196 -166
  664. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +53 -27
  665. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +204 -205
  666. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +2 -3
  667. package/src/components/MemoriArtifactSystem/context/ArtifactContext.tsx +21 -10
  668. package/src/components/MemoriArtifactSystem/types/artifact.types.ts +2 -0
  669. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.test.tsx +2 -1
  670. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.tsx +15 -4
  671. package/src/components/MemoriWidget/MemoriWidget.css +16 -71
  672. package/src/components/MemoriWidget/MemoriWidget.stories.tsx +29 -8
  673. package/src/components/MemoriWidget/MemoriWidget.tsx +247 -131
  674. package/src/components/MicrophoneButton/MicrophoneButton.css +25 -5
  675. package/src/components/MicrophoneButton/MicrophoneButton.tsx +31 -24
  676. package/src/components/MobileSessionPanel/MobileSessionPanel.css +437 -0
  677. package/src/components/MobileSessionPanel/MobileSessionPanel.tsx +795 -0
  678. package/src/components/PositionPopover/PositionPopover.css +219 -0
  679. package/src/components/PositionPopover/PositionPopover.stories.tsx +37 -0
  680. package/src/components/PositionPopover/PositionPopover.tsx +367 -0
  681. package/src/components/PoweredBy/PoweredBy.css +29 -27
  682. package/src/components/PoweredBy/PoweredBy.tsx +11 -19
  683. package/src/components/PoweredBy/__snapshots__/PoweredBy.test.tsx.snap +248 -16
  684. package/src/components/SendOnEnterMenu/SendOnEnterMenu.css +3 -3
  685. package/src/components/SendOnEnterMenu/SendOnEnterMenu.tsx +30 -64
  686. package/src/components/SendOnEnterMenu/__snapshots__/SendOnEnterMenu.test.tsx.snap +74 -26
  687. package/src/components/SettingsDrawer/SettingsDrawer.css +2 -2
  688. package/src/components/SettingsDrawer/SettingsDrawer.tsx +54 -65
  689. package/src/components/SettingsDrawer/__snapshots__/SettingsDrawer.test.tsx.snap +28 -35
  690. package/src/components/ShareButton/ShareButton.css +254 -8
  691. package/src/components/ShareButton/ShareButton.stories.tsx +9 -4
  692. package/src/components/ShareButton/ShareButton.test.tsx +1 -1
  693. package/src/components/ShareButton/ShareButton.tsx +496 -142
  694. package/src/components/ShareButton/__snapshots__/ShareButton.test.tsx.snap +639 -216
  695. package/src/components/Snippet/Snippet.css +53 -17
  696. package/src/components/Snippet/Snippet.tsx +5 -5
  697. package/src/components/Snippet/__snapshots__/Snippet.test.tsx.snap +64 -48
  698. package/src/components/StartPanel/StartPanel.css +733 -110
  699. package/src/components/StartPanel/StartPanel.stories.tsx +54 -65
  700. package/src/components/StartPanel/StartPanel.test.tsx +26 -13
  701. package/src/components/StartPanel/StartPanel.tsx +555 -262
  702. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +2602 -1346
  703. package/src/components/Typing/Typing.tsx +85 -7
  704. package/src/components/Typing/__snapshots__/Typing.test.tsx.snap +102 -62
  705. package/src/components/UploadButton/UploadButton.css +357 -326
  706. package/src/components/UploadButton/UploadButton.stories.tsx +221 -87
  707. package/src/components/UploadButton/UploadButton.test.tsx +4 -1
  708. package/src/components/UploadButton/UploadButton.tsx +220 -167
  709. package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +14 -38
  710. package/src/components/UploadButton/UploadImages/UploadImages.tsx +76 -63
  711. package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +70 -75
  712. package/src/components/VenueWidget/VenueWidget.css +101 -41
  713. package/src/components/VenueWidget/VenueWidget.stories.tsx +4 -1
  714. package/src/components/VenueWidget/VenueWidget.test.tsx +1 -1
  715. package/src/components/VenueWidget/VenueWidget.tsx +311 -191
  716. package/src/components/VenueWidget/__snapshots__/VenueWidget.test.tsx.snap +498 -92
  717. package/src/components/WhyThisAnswer/WhyThisAnswer.css +20 -20
  718. package/src/components/WhyThisAnswer/WhyThisAnswer.stories.tsx +21 -18
  719. package/src/components/WhyThisAnswer/WhyThisAnswer.test.tsx +1 -1
  720. package/src/components/WhyThisAnswer/WhyThisAnswer.tsx +20 -11
  721. package/src/components/WhyThisAnswer/__snapshots__/WhyThisAnswer.test.tsx.snap +34 -4
  722. package/src/components/layouts/Chat.test.tsx +2 -1
  723. package/src/components/layouts/Chat.tsx +379 -17
  724. package/src/components/layouts/FullPage.test.tsx +2 -1
  725. package/src/components/layouts/FullPage.tsx +307 -14
  726. package/src/components/layouts/HiddenChat.test.tsx +2 -1
  727. package/src/components/layouts/HiddenChat.tsx +569 -44
  728. package/src/components/layouts/Totem.test.tsx +2 -1
  729. package/src/components/layouts/Totem.tsx +7 -3
  730. package/src/components/layouts/WebsiteAssistant/WebsiteAssistant.stories.tsx +115 -0
  731. package/src/components/layouts/WebsiteAssistant/WebsiteAssistant.test.tsx +43 -0
  732. package/src/components/layouts/{WebsiteAssistant.tsx → WebsiteAssistant/WebsiteAssistant.tsx} +29 -23
  733. package/src/components/layouts/WebsiteAssistant/__snapshots__/WebsiteAssistant.test.tsx.snap +76 -0
  734. package/src/components/layouts/{website-assistant.css → WebsiteAssistant/website-assistant.css} +74 -58
  735. package/src/components/layouts/ZoomedFullBody.test.tsx +2 -1
  736. package/src/components/layouts/ZoomedFullBody.tsx +304 -14
  737. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +663 -365
  738. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +1170 -740
  739. package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +476 -339
  740. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +624 -392
  741. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +571 -356
  742. package/src/components/layouts/chat.css +273 -71
  743. package/src/components/layouts/fullpage.css +362 -0
  744. package/src/components/layouts/hidden-chat.css +329 -84
  745. package/src/components/layouts/layouts.stories.tsx +14 -146
  746. package/src/components/layouts/totem.css +23 -15
  747. package/src/components/layouts/zoomed-full-body.css +144 -6
  748. package/src/helpers/chatPdfExport.ts +15 -12
  749. package/src/helpers/constants.ts +28 -27
  750. package/src/helpers/utils.ts +2 -0
  751. package/src/i18n.ts +2 -0
  752. package/src/icons/FacebookIcon.tsx +23 -0
  753. package/src/icons/LinkedinIcon.tsx +23 -0
  754. package/src/icons/MemoriIcon.tsx +80 -0
  755. package/src/icons/TelegramIcon.tsx +19 -0
  756. package/src/icons/TwitterIcon.tsx +8 -0
  757. package/src/icons/WhatsappIcon.tsx +23 -0
  758. package/src/icons/artifacts/DocumentIcon.tsx +19 -0
  759. package/src/icons/artifacts/HtmlIcon.tsx +38 -0
  760. package/src/icons/artifacts/JavascriptIcon.tsx +19 -0
  761. package/src/icons/artifacts/MarkdownIcon.tsx +19 -0
  762. package/src/icons/artifacts/PythonIcon.tsx +17 -0
  763. package/src/icons/artifacts/SvgIcon.tsx +34 -0
  764. package/src/icons/artifacts/XmlIcon.tsx +34 -0
  765. package/src/icons/artifacts/cssIcon.tsx +34 -0
  766. package/src/index.stories.tsx +11 -5
  767. package/src/index.tsx +75 -72
  768. package/src/locales/de.json +67 -6
  769. package/src/locales/en.json +67 -6
  770. package/src/locales/es.json +67 -7
  771. package/src/locales/fr.json +68 -7
  772. package/src/locales/it.json +68 -7
  773. package/src/mocks/data.ts +5 -5
  774. package/src/styles.css +87 -52
  775. package/src/testUtils.tsx +42 -0
  776. package/src/version.ts +1 -1
  777. package/dist/helpers/userMessage.d.ts +0 -2
  778. package/dist/helpers/userMessage.js +0 -23
  779. package/dist/helpers/userMessage.js.map +0 -1
  780. package/esm/helpers/userMessage.d.ts +0 -2
  781. package/esm/helpers/userMessage.js +0 -18
  782. package/esm/helpers/userMessage.js.map +0 -1
  783. package/src/components/PositionDrawer/PositionDrawer.stories.tsx +0 -51
  784. package/src/components/PositionDrawer/PositionDrawer.test.tsx +0 -39
  785. package/src/components/PositionDrawer/PositionDrawer.tsx +0 -50
  786. package/src/components/PositionDrawer/__snapshots__/PositionDrawer.test.tsx.snap +0 -17
  787. package/src/components/icons/AI.tsx +0 -34
  788. package/src/components/icons/Alert.tsx +0 -31
  789. package/src/components/icons/ArrowUp.tsx +0 -28
  790. package/src/components/icons/Bug.tsx +0 -81
  791. package/src/components/icons/Chat.tsx +0 -30
  792. package/src/components/icons/ChevronDown.tsx +0 -26
  793. package/src/components/icons/ChevronLeft.tsx +0 -28
  794. package/src/components/icons/ChevronRight.tsx +0 -28
  795. package/src/components/icons/ChevronUp.tsx +0 -24
  796. package/src/components/icons/Clear.tsx +0 -23
  797. package/src/components/icons/Close.tsx +0 -30
  798. package/src/components/icons/Code.tsx +0 -24
  799. package/src/components/icons/Copy.tsx +0 -23
  800. package/src/components/icons/DeepThought.tsx +0 -38
  801. package/src/components/icons/Delete.tsx +0 -23
  802. package/src/components/icons/Document.tsx +0 -50
  803. package/src/components/icons/Download.tsx +0 -23
  804. package/src/components/icons/Edit.tsx +0 -17
  805. package/src/components/icons/Expand.tsx +0 -23
  806. package/src/components/icons/Eye.tsx +0 -17
  807. package/src/components/icons/EyeInvisible.tsx +0 -24
  808. package/src/components/icons/Facebook.tsx +0 -23
  809. package/src/components/icons/Feedback.tsx +0 -24
  810. package/src/components/icons/File.tsx +0 -17
  811. package/src/components/icons/FileExcel.tsx +0 -23
  812. package/src/components/icons/FilePdf.tsx +0 -23
  813. package/src/components/icons/FileWord.tsx +0 -23
  814. package/src/components/icons/Fullscreen.tsx +0 -23
  815. package/src/components/icons/FullscreenExit.tsx +0 -23
  816. package/src/components/icons/Group.tsx +0 -30
  817. package/src/components/icons/History.tsx +0 -33
  818. package/src/components/icons/Image.tsx +0 -37
  819. package/src/components/icons/Info.tsx +0 -31
  820. package/src/components/icons/Link.tsx +0 -17
  821. package/src/components/icons/Linkedin.tsx +0 -23
  822. package/src/components/icons/Loading.tsx +0 -28
  823. package/src/components/icons/Logout.tsx +0 -27
  824. package/src/components/icons/Mail.tsx +0 -17
  825. package/src/components/icons/MapMarker.tsx +0 -26
  826. package/src/components/icons/MenuHorizontal.tsx +0 -29
  827. package/src/components/icons/MenuVertical.tsx +0 -29
  828. package/src/components/icons/Message.tsx +0 -23
  829. package/src/components/icons/Microphone.tsx +0 -23
  830. package/src/components/icons/Minus.tsx +0 -23
  831. package/src/components/icons/MinusCircle.tsx +0 -24
  832. package/src/components/icons/PaperClip.tsx +0 -23
  833. package/src/components/icons/Picture.tsx +0 -23
  834. package/src/components/icons/Plus.tsx +0 -18
  835. package/src/components/icons/Preview.tsx +0 -29
  836. package/src/components/icons/Print.tsx +0 -34
  837. package/src/components/icons/QuestionHelp.tsx +0 -30
  838. package/src/components/icons/Refresh.tsx +0 -30
  839. package/src/components/icons/SelectIcon.tsx +0 -28
  840. package/src/components/icons/Send.tsx +0 -17
  841. package/src/components/icons/Setting.tsx +0 -23
  842. package/src/components/icons/Share.tsx +0 -23
  843. package/src/components/icons/Sound.tsx +0 -23
  844. package/src/components/icons/SoundDeactivated.tsx +0 -27
  845. package/src/components/icons/Telegram.tsx +0 -26
  846. package/src/components/icons/ThumbDown.tsx +0 -29
  847. package/src/components/icons/ThumbUp.tsx +0 -29
  848. package/src/components/icons/Translation.tsx +0 -24
  849. package/src/components/icons/Twitter.tsx +0 -23
  850. package/src/components/icons/Upload.tsx +0 -34
  851. package/src/components/icons/User.tsx +0 -17
  852. package/src/components/icons/Warning.tsx +0 -24
  853. package/src/components/icons/WhatsApp.tsx +0 -24
  854. package/src/components/icons/icons.stories.css +0 -5
  855. package/src/components/icons/icons.stories.tsx +0 -81
  856. package/src/components/icons/loading.css +0 -14
  857. package/src/components/layouts/WebsiteAssistant.test.tsx +0 -40
  858. package/src/components/layouts/__snapshots__/WebsiteAssistant.test.tsx.snap +0 -59
  859. package/src/components/ui/Alert.css +0 -93
  860. package/src/components/ui/Alert.stories.tsx +0 -137
  861. package/src/components/ui/Alert.test.tsx +0 -129
  862. package/src/components/ui/Alert.tsx +0 -123
  863. package/src/components/ui/Button.css +0 -167
  864. package/src/components/ui/Button.stories.tsx +0 -156
  865. package/src/components/ui/Button.test.tsx +0 -74
  866. package/src/components/ui/Button.tsx +0 -107
  867. package/src/components/ui/Card.css +0 -65
  868. package/src/components/ui/Card.stories.tsx +0 -95
  869. package/src/components/ui/Card.test.tsx +0 -47
  870. package/src/components/ui/Card.tsx +0 -48
  871. package/src/components/ui/Checkbox.css +0 -116
  872. package/src/components/ui/Checkbox.stories.tsx +0 -74
  873. package/src/components/ui/Checkbox.test.tsx +0 -28
  874. package/src/components/ui/Checkbox.tsx +0 -58
  875. package/src/components/ui/ConfirmDialog.css +0 -42
  876. package/src/components/ui/ConfirmDialog.stories.tsx +0 -216
  877. package/src/components/ui/ConfirmDialog.test.tsx +0 -124
  878. package/src/components/ui/ConfirmDialog.tsx +0 -58
  879. package/src/components/ui/Details.css +0 -66
  880. package/src/components/ui/Drawer.css +0 -270
  881. package/src/components/ui/Drawer.stories.tsx +0 -267
  882. package/src/components/ui/Drawer.test.tsx +0 -130
  883. package/src/components/ui/Drawer.tsx +0 -293
  884. package/src/components/ui/Dropdown.css +0 -173
  885. package/src/components/ui/Dropdown.tsx +0 -63
  886. package/src/components/ui/Expandable.css +0 -15
  887. package/src/components/ui/Expandable.stories.tsx +0 -180
  888. package/src/components/ui/Expandable.test.tsx +0 -107
  889. package/src/components/ui/Expandable.tsx +0 -121
  890. package/src/components/ui/Modal.css +0 -98
  891. package/src/components/ui/Modal.stories.tsx +0 -171
  892. package/src/components/ui/Modal.test.tsx +0 -111
  893. package/src/components/ui/Modal.tsx +0 -117
  894. package/src/components/ui/Select.css +0 -138
  895. package/src/components/ui/Select.stories.tsx +0 -79
  896. package/src/components/ui/Select.test.tsx +0 -84
  897. package/src/components/ui/Select.tsx +0 -79
  898. package/src/components/ui/Slider.css +0 -192
  899. package/src/components/ui/Slider.stories.tsx +0 -63
  900. package/src/components/ui/Slider.tsx +0 -142
  901. package/src/components/ui/Spin.css +0 -31
  902. package/src/components/ui/Spin.stories.tsx +0 -64
  903. package/src/components/ui/Spin.test.tsx +0 -41
  904. package/src/components/ui/Spin.tsx +0 -31
  905. package/src/components/ui/Table.css +0 -132
  906. package/src/components/ui/Tooltip.css +0 -171
  907. package/src/components/ui/Tooltip.stories.tsx +0 -109
  908. package/src/components/ui/Tooltip.test.tsx +0 -102
  909. package/src/components/ui/Tooltip.tsx +0 -162
  910. package/src/components/ui/__snapshots__/Alert.test.tsx.snap +0 -59
  911. package/src/components/ui/__snapshots__/Button.test.tsx.snap +0 -204
  912. package/src/components/ui/__snapshots__/Card.test.tsx.snap +0 -321
  913. package/src/components/ui/__snapshots__/Checkbox.test.tsx.snap +0 -131
  914. package/src/components/ui/__snapshots__/ConfirmDialog.test.tsx.snap +0 -35
  915. package/src/components/ui/__snapshots__/Drawer.test.tsx.snap +0 -67
  916. package/src/components/ui/__snapshots__/Expandable.test.tsx.snap +0 -159
  917. package/src/components/ui/__snapshots__/Modal.test.tsx.snap +0 -59
  918. package/src/components/ui/__snapshots__/Select.test.tsx.snap +0 -254
  919. package/src/components/ui/__snapshots__/Spin.test.tsx.snap +0 -193
  920. package/src/components/ui/__snapshots__/Tooltip.test.tsx.snap +0 -113
  921. package/src/components/ui/definitions.stories.tsx +0 -139
@@ -1,38 +1,29 @@
1
- import Drawer from '../ui/Drawer';
1
+ import { Drawer, useAlertManager, createAlertOptions } from '@memori.ai/ui';
2
2
  import { useTranslation } from 'react-i18next';
3
3
  import memoriApiClient from '@memori.ai/memori-api-client';
4
- import React, {
5
- useEffect,
6
- useMemo,
7
- useState,
8
- useCallback,
9
- ChangeEvent,
10
- } from 'react';
4
+ import React, { useEffect, useMemo, useState, useCallback } from 'react';
11
5
  import {
12
6
  ChatLog,
13
7
  ChatLogLine,
14
8
  Memori,
15
- Medium,
16
9
  Message,
17
10
  ChatLogFilters,
18
11
  } from '@memori.ai/memori-api-client/dist/types';
19
- import Card from '../ui/Card';
20
- import Button from '../ui/Button';
21
- import ChatRound from '../icons/Chat';
12
+ import { Button } from '@memori.ai/ui';
13
+ import {
14
+ MessageCircle,
15
+ ChevronLeft,
16
+ ChevronRight,
17
+ Download,
18
+ } from 'lucide-react';
22
19
  import { stripHTML } from '../../helpers/utils';
23
20
  import { stripAllInternalTags } from '../../helpers/message';
24
- import { Dialog } from '@headlessui/react';
25
21
  import debounce from 'lodash/debounce';
26
- import Spin from '../ui/Spin';
27
- import Chat from '../Chat/Chat';
28
- import Download from '../icons/Download';
29
- import MessageIcon from '../icons/Message';
30
- import ArrowUpIcon from '../icons/ArrowUp';
31
- import Select from '../ui/Select';
32
- import ChevronLeft from '../icons/ChevronLeft';
22
+ import { Spin } from '@memori.ai/ui';
23
+ import { SelectBox } from '@memori.ai/ui';
33
24
  // Helpers / Utils
34
25
  import { getTranslation } from '../../helpers/translations';
35
- import Close from '../icons/Close';
26
+ import ChatResumeDrawer from './ChatResumeDrawer';
36
27
 
37
28
  export interface Props {
38
29
  open: boolean;
@@ -52,6 +43,19 @@ export interface Props {
52
43
 
53
44
  const ITEMS_PER_PAGE = 8;
54
45
  const DEBOUNCE_DELAY = 300;
46
+ const ICON_BACKGROUND_COLORS = [
47
+ 'var(--chat-history-icon-purple, #EEEDFE)',
48
+ 'var(--chat-history-icon-teal, #E1F5EE)',
49
+ 'var(--chat-history-icon-amber, #FAEEDA)',
50
+ 'var(--chat-history-icon-coral, #FAECE7)',
51
+ ] as const;
52
+
53
+ type ContentTypeFilter = 'all' | 'with_images' | 'with_files';
54
+
55
+ const isImageMimeType = (mimeType?: string) =>
56
+ mimeType?.startsWith('image/') ?? false;
57
+
58
+ const isFileMimeType = (mimeType?: string) => !isImageMimeType(mimeType);
55
59
 
56
60
  // This function calculates the title of the chat log based on the most meaningful user message
57
61
  const calculateTitle = (lines: ChatLogLine[]): string => {
@@ -437,6 +441,7 @@ const ChatHistoryDrawer = ({
437
441
  isMultilanguageEnabled = false,
438
442
  }: Props) => {
439
443
  const { t } = useTranslation();
444
+ const { add } = useAlertManager();
440
445
  const { getUserChatLogsByTokenPaged } = apiClient.chatLogs;
441
446
 
442
447
  const textCurrentChat = `${t(
@@ -470,6 +475,52 @@ const ChatHistoryDrawer = ({
470
475
  useState<number>(3);
471
476
 
472
477
  const [customMinimumMessages, setCustomMinimumMessages] = useState<number>(1);
478
+ const [contentTypeFilter, setContentTypeFilter] =
479
+ useState<ContentTypeFilter>('all');
480
+
481
+ const isSameDay = (dateA: Date, dateB: Date) =>
482
+ dateA.getFullYear() === dateB.getFullYear() &&
483
+ dateA.getMonth() === dateB.getMonth() &&
484
+ dateA.getDate() === dateB.getDate();
485
+
486
+ const getChatLogStats = (chatLog: ChatLog) => {
487
+ const imageCount = chatLog.lines.reduce((total, line) => {
488
+ const imagesInLine =
489
+ line.media?.filter(medium => isImageMimeType(medium.mimeType))
490
+ .length || 0;
491
+ return total + imagesInLine;
492
+ }, 0);
493
+
494
+ const fileCount = chatLog.lines.reduce((total, line) => {
495
+ const filesInLine =
496
+ line.media?.filter(medium => isFileMimeType(medium.mimeType))
497
+ .length || 0;
498
+ return total + filesInLine;
499
+ }, 0);
500
+
501
+ const assistantReplies = chatLog.lines.filter(
502
+ line => !line.inbound && line.text?.trim()
503
+ );
504
+ const previewSource = assistantReplies[1] || assistantReplies[0];
505
+ const preview = stripHTML(previewSource?.text || '')
506
+ .replace(/\s+/g, ' ')
507
+ .trim();
508
+
509
+ const allText = chatLog.lines
510
+ .map(line => line.text || '')
511
+ .join(' ')
512
+ .toLowerCase();
513
+ const isTestConversation =
514
+ /\b(test|testing|experiment|esperimento|prova)\b/.test(allText);
515
+
516
+ return {
517
+ imageCount,
518
+ fileCount,
519
+ preview,
520
+ isTestConversation,
521
+ messageCount: chatLog.lines.length,
522
+ };
523
+ };
473
524
 
474
525
  const formatDateForAPI = (date: Date) => {
475
526
  const year = date.getFullYear();
@@ -662,31 +713,68 @@ const ChatHistoryDrawer = ({
662
713
  setCurrentPage(1);
663
714
  setIndexPage(0);
664
715
  }
665
- }, [sortOrder, dateRange, minimumMessagesPerChat, customMinimumMessages, open]);
716
+ }, [
717
+ sortOrder,
718
+ dateRange,
719
+ minimumMessagesPerChat,
720
+ customMinimumMessages,
721
+ open,
722
+ ]);
666
723
 
667
724
  // Fetch chat logs when current page, date range, or minimum messages filter changes
668
725
  useEffect(() => {
669
726
  if (open && currentPage > 0) {
670
727
  fetchChatLogs(dateRange);
671
728
  }
672
- }, [currentPage, dateRange, minimumMessagesPerChat, customMinimumMessages, fetchChatLogs, open]);
729
+ }, [
730
+ currentPage,
731
+ dateRange,
732
+ minimumMessagesPerChat,
733
+ customMinimumMessages,
734
+ fetchChatLogs,
735
+ open,
736
+ ]);
673
737
 
674
738
  const debouncedSearch = useMemo(
675
739
  () => debounce((value: string) => setSearchText(value), DEBOUNCE_DELAY),
676
740
  []
677
741
  );
678
742
  // Remove client-side pagination since we're now using server-side pagination
679
- const paginatedChatLogs = chatLogs;
743
+ const paginatedChatLogs = useMemo(() => {
744
+ if (contentTypeFilter === 'all') {
745
+ return chatLogs;
746
+ }
747
+
748
+ return chatLogs.filter(chatLog => {
749
+ const stats = getChatLogStats(chatLog);
750
+ if (contentTypeFilter === 'with_images') {
751
+ return stats.imageCount > 0;
752
+ }
753
+ return stats.fileCount > 0;
754
+ });
755
+ }, [chatLogs, contentTypeFilter]);
680
756
 
681
- const handleResumeChat = async () => {
757
+ const handleResumeChat = async (_prompt?: string) => {
682
758
  if (selectedChatLog) {
683
759
  resumeSession(selectedChatLog);
760
+ add(
761
+ createAlertOptions({
762
+ description:
763
+ t('write_and_speak.chatResumed') || 'Conversation resumed.',
764
+ severity: 'success',
765
+ })
766
+ );
684
767
  onClose();
685
768
  }
686
769
  };
687
770
 
771
+ const handleCloseResumeDrawer = () => {
772
+ setIsViewingChatDetail(false);
773
+ setSelectedChatLog(null);
774
+ };
775
+
688
776
  const handleExportChat = (chatLog: ChatLog, e: React.MouseEvent) => {
689
- e.stopPropagation(); // Prevent the card from toggling
777
+ e.stopPropagation(); // Prevent the list item from toggling
690
778
  const text = `${t(
691
779
  'write_and_speak.conversationStartedLabel'
692
780
  )} ${new Intl.DateTimeFormat(navigator.language, {
@@ -707,6 +795,28 @@ const ChatHistoryDrawer = ({
707
795
  );
708
796
  };
709
797
 
798
+ const handleExportSelectedChat = () => {
799
+ if (!selectedChatLog) return;
800
+ const text = `${t(
801
+ 'write_and_speak.conversationStartedLabel'
802
+ )} ${new Intl.DateTimeFormat(navigator.language, {
803
+ dateStyle: 'short',
804
+ timeStyle: 'short',
805
+ }).format(new Date())}\n\n`.concat(
806
+ selectedChatLog.lines
807
+ .map(line => `${line.inbound ? 'YOU' : memori.name}: ${line.text}`)
808
+ .join('\n')
809
+ );
810
+
811
+ downloadFile(
812
+ text,
813
+ `${memori.name.replace(
814
+ /\W+/g,
815
+ '-'
816
+ )}-chat-${selectedChatLog.chatLogID.substring(0, 4)}.txt`
817
+ );
818
+ };
819
+
710
820
  const formatDate = (timestamp: string) => {
711
821
  return new Intl.DateTimeFormat(navigator.language, {
712
822
  dateStyle: 'medium',
@@ -714,6 +824,73 @@ const ChatHistoryDrawer = ({
714
824
  }).format(new Date(timestamp));
715
825
  };
716
826
 
827
+ const formatCountLabel = (count: number, singular: string, plural: string) =>
828
+ `${count} ${count === 1 ? singular : plural}`;
829
+
830
+ const selectedChatSession = useMemo(() => {
831
+ if (!selectedChatLog) return null;
832
+
833
+ const title =
834
+ calculateTitle(selectedChatLog.lines) ||
835
+ 'Chat-' + selectedChatLog.chatLogID.substring(0, 4);
836
+
837
+ const hasInterruptedLine = selectedChatLog.lines.some(
838
+ line => !line.inbound && !line.text?.trim()
839
+ );
840
+ const lastMessageDate = Math.max(
841
+ ...selectedChatLog.lines.map(line => new Date(line.timestamp).getTime())
842
+ );
843
+
844
+ return {
845
+ title,
846
+ subtitle: `${formatDate(new Date(lastMessageDate).toISOString())} · ${
847
+ selectedChatLog.lines.length
848
+ } ${t('write_and_speak.messages') || 'messages'}`,
849
+ summary:
850
+ t('write_and_speak.sessionSummaryDescription') ||
851
+ 'Hai caricato un file Markdown con la presentazione del gruppo. L’AI stava elaborando una risposta.',
852
+ messages: selectedChatLog.lines.map((line, index) => ({
853
+ id: `${selectedChatLog.chatLogID}-${index}`,
854
+ role: line.inbound ? ('user' as const) : ('assistant' as const),
855
+ content: line.text || '',
856
+ timestamp: line.timestamp,
857
+ media: (line.media || []).map((medium, mediumIndex) => ({
858
+ ...medium,
859
+ mediumID:
860
+ (medium as { mediumID?: string }).mediumID ||
861
+ `${selectedChatLog.chatLogID}-${index}-${mediumIndex}`,
862
+ })),
863
+ status:
864
+ !line.inbound && !line.text?.trim() && hasInterruptedLine
865
+ ? ('interrupted' as const)
866
+ : ('completed' as const),
867
+ attachment:
868
+ line.inbound && Array.isArray(line.media) && line.media.length > 0
869
+ ? {
870
+ name:
871
+ line.media[0].url?.split('/').pop() ||
872
+ line.media[0].url ||
873
+ 'Attachment file',
874
+ type: 'Markdown',
875
+ size: '2.4 KB',
876
+ ext: 'MD',
877
+ }
878
+ : undefined,
879
+ })),
880
+ quickActions: [
881
+ {
882
+ label:
883
+ t('write_and_speak.summarizeSession') || 'Riassumi la sessione',
884
+ prompt: 'Riassumi la sessione',
885
+ },
886
+ {
887
+ label: t('write_and_speak.retryRequest') || 'Riprova la richiesta',
888
+ prompt: 'Riprova la richiesta',
889
+ },
890
+ ],
891
+ };
892
+ }, [selectedChatLog, t]);
893
+
717
894
  const escapeUnderScore = (value: string) => {
718
895
  return value.replace(/_/g, ' ');
719
896
  };
@@ -746,7 +923,7 @@ const ChatHistoryDrawer = ({
746
923
  if (!chatLogs.length) {
747
924
  return (
748
925
  <div className="memori-chat-history-drawer--empty">
749
- <ChatRound className="memori-chat-history-drawer--empty--icon" />
926
+ <MessageCircle className="memori-chat-history-drawer--empty--icon" />
750
927
  <p className="memori-chat-history-drawer--empty--text">
751
928
  {t('write_and_speak.noChatHistoryAvailable') ||
752
929
  'No chat history available'}
@@ -755,7 +932,7 @@ const ChatHistoryDrawer = ({
755
932
  );
756
933
  }
757
934
 
758
- if (chatLogs.length === 0) {
935
+ if (paginatedChatLogs.length === 0) {
759
936
  return (
760
937
  <div className="memori-chat-history-drawer--no-results">
761
938
  <p>
@@ -769,338 +946,191 @@ const ChatHistoryDrawer = ({
769
946
 
770
947
  return (
771
948
  <>
772
- <ul className="memori-chat-history-drawer--list">
773
- {paginatedChatLogs.map((chatLog: ChatLog) => {
949
+ <ul
950
+ className="memori-chat-history-drawer--list"
951
+ aria-label={t('write_and_speak.chatHistory') || 'Chat history'}
952
+ >
953
+ {paginatedChatLogs.map((chatLog: ChatLog, index: number) => {
774
954
  const lastMessageDate = Math.max(
775
955
  ...chatLog.lines.map(line => new Date(line.timestamp).getTime())
776
956
  );
957
+ const stats = getChatLogStats(chatLog);
958
+ const iconSymbol = stats.fileCount > 0
959
+ ? '📄'
960
+ : stats.isTestConversation
961
+ ? '🧪'
962
+ : '💬';
963
+ const iconBackgroundColor =
964
+ ICON_BACKGROUND_COLORS[index % ICON_BACKGROUND_COLORS.length];
965
+ const isUpdatedToday = isSameDay(
966
+ new Date(lastMessageDate),
967
+ new Date()
968
+ );
969
+ const title =
970
+ calculateTitle(chatLog.lines) ||
971
+ 'Chat-' + chatLog.chatLogID.substring(0, 4);
972
+
973
+ const isCurrentSession = chatLog?.sessionID === sessionId;
777
974
 
778
975
  return (
779
- <Card
780
- hoverable={chatLog?.sessionID !== sessionId}
781
- onClick={async () => {
782
- // the active chat
783
- if (chatLog?.sessionID === sessionId) {
784
- return;
785
- }
786
- if (selectedChatLog?.chatLogID === chatLog.chatLogID) {
787
- setSelectedChatLog(null);
788
- if (isMobile) {
789
- setIsViewingChatDetail(false);
976
+ <li key={chatLog.chatLogID}>
977
+ <button
978
+ type="button"
979
+ aria-disabled={isCurrentSession || undefined}
980
+ aria-label={title}
981
+ className={`memori-chat-history-drawer--list-item ${
982
+ selectedChatLog?.chatLogID === chatLog.chatLogID
983
+ ? 'memori-chat-history-drawer--list-item--selected'
984
+ : ''
985
+ } ${
986
+ !isCurrentSession
987
+ ? 'memori-chat-history-drawer--list-item--hoverable'
988
+ : ''
989
+ } ${
990
+ isCurrentSession
991
+ ? 'memori-chat-history-drawer--list-item--disabled'
992
+ : ''
993
+ }`}
994
+ onKeyDown={event => {
995
+ if (
996
+ isCurrentSession &&
997
+ (event.key === 'Enter' || event.key === ' ')
998
+ ) {
999
+ event.preventDefault();
790
1000
  }
791
- return;
792
- }
793
- setSelectedChatLog(chatLog);
794
- // if (isMobile) {
795
- setIsViewingChatDetail(true);
796
- // }
797
- }}
798
- key={chatLog.chatLogID}
799
- className={`memori-chat-history-drawer--card ${
800
- selectedChatLog?.chatLogID === chatLog.chatLogID
801
- ? 'memori-chat-history-drawer--card--selected'
802
- : ''
803
- } ${
804
- chatLog?.sessionID === sessionId
805
- ? 'memori-chat-history-drawer--card--disabled'
806
- : 'memori-chat-history-drawer--card--hoverable'
807
- }`}
808
- >
809
- <>
810
- <div className="memori-chat-history-drawer--card--header">
811
- <div className="memori-chat-history-drawer--card--header--content">
812
- <div className="memori-chat-history-drawer--card--header--info">
813
- <div className="memori-chat-history-drawer--card--header--title-wrapper">
814
- <Dialog.Title
815
- as="h3"
816
- className="memori-chat-history-drawer--card--header--title"
817
- >
818
- {calculateTitle(chatLog.lines) ||
819
- 'Chat-' + chatLog.chatLogID.substring(0, 4)}
820
- </Dialog.Title>
821
- {chatLog.boardOfExperts && (
822
- <div className="memori-chat-history-drawer--card--header--badge">
823
- BOE
824
- </div>
825
- )}
826
- </div>
827
- </div>
1001
+ }}
1002
+ onClick={async () => {
1003
+ if (isCurrentSession) {
1004
+ return;
1005
+ }
1006
+ if (selectedChatLog?.chatLogID === chatLog.chatLogID) {
1007
+ setSelectedChatLog(null);
1008
+ if (isMobile) {
1009
+ setIsViewingChatDetail(false);
1010
+ }
1011
+ return;
1012
+ }
1013
+ setSelectedChatLog(chatLog);
1014
+ // if (isMobile) {
1015
+ setIsViewingChatDetail(true);
1016
+ // }
1017
+ }}
1018
+ >
1019
+ {/* <div
1020
+ className="memori-chat-history-drawer--list-item--icon"
1021
+ style={{ backgroundColor: iconBackgroundColor }}
1022
+ aria-hidden="true"
1023
+ >
1024
+ {iconSymbol}
1025
+ </div> */}
1026
+ <div className="memori-chat-history-drawer--list-item--content">
1027
+ <div className="memori-chat-history-drawer--list-item--title-wrapper">
1028
+ <span className="memori-chat-history-drawer--list-item--title">
1029
+ {title}
1030
+ </span>
1031
+ {isUpdatedToday && (
1032
+ <span className="memori-chat-history-drawer--list-item--today-pill">
1033
+ {t('today') || 'Today'}
1034
+ </span>
1035
+ )}
828
1036
  </div>
829
- </div>
830
- <div className="memori-chat-history-drawer--card--header--meta">
831
- <time
832
- className="memori-chat-history-drawer--card--header--meta--time"
833
- dateTime={new Date(lastMessageDate).toISOString()}
834
- >
835
- {/* <svg
836
- className="memori-chat-history-drawer--card--header--meta--icon"
837
- fill="none"
838
- viewBox="0 0 24 24"
839
- stroke="currentColor"
1037
+ {/* {stats.preview && (
1038
+ <p className="memori-chat-history-drawer--list-item--preview">
1039
+ {stats.preview}
1040
+ </p>
1041
+ )} */}
1042
+ <div className="memori-chat-history-drawer--list-item--meta">
1043
+ <time
1044
+ className="memori-chat-history-drawer--list-item--meta--time"
1045
+ dateTime={new Date(lastMessageDate).toISOString()}
840
1046
  >
841
- <path
842
- strokeLinecap="round"
843
- strokeLinejoin="round"
844
- strokeWidth={2}
845
- d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"
846
- />
847
- </svg> */}
848
- {formatDate(new Date(lastMessageDate).toISOString())}
849
- </time>
850
- {chatLog.lines.some(
851
- line =>
852
- line.media &&
853
- line.media.filter(
854
- m =>
855
- m.mimeType !== 'text/html' &&
856
- m.mimeType !== 'text/plain'
857
- ).length > 0
858
- ) && (
859
- <span className="memori-chat-history-drawer--card--header--meta--messages">
860
- <svg
861
- className="memori-chat-history-drawer--card--header--meta--icon"
862
- fill="none"
863
- viewBox="0 0 24 24"
864
- stroke="currentColor"
865
- >
866
- <path
867
- strokeLinecap="round"
868
- strokeLinejoin="round"
869
- strokeWidth={2}
870
- d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"
871
- />
872
- </svg>
873
- {chatLog.lines.reduce(
874
- (acc, line) =>
875
- acc +
876
- (line.media?.filter(
877
- m =>
878
- m.mimeType !== 'text/html' &&
879
- m.mimeType !== 'text/plain'
880
- ).length || 0),
881
- 0
1047
+ {formatDate(new Date(lastMessageDate).toISOString())}
1048
+ </time>
1049
+ <span className="memori-chat-history-drawer--list-item--meta-badge memori-chat-history-drawer--list-item--meta-badge-messages">
1050
+ {formatCountLabel(
1051
+ stats.messageCount,
1052
+ t('write_and_speak.message') || 'message',
1053
+ t('write_and_speak.messages') || 'messages'
882
1054
  )}
883
1055
  </span>
884
- )}
885
- <span className="memori-chat-history-drawer--card--header--meta--messages">
886
- <svg
887
- className="memori-chat-history-drawer--card--header--meta--icon"
888
- fill="none"
889
- viewBox="0 0 24 24"
890
- stroke="currentColor"
891
- >
892
- <path
893
- strokeLinecap="round"
894
- strokeLinejoin="round"
895
- strokeWidth={2}
896
- d="M8 10h.01M12 10h.01M16 10h.01M9 16H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-5l-5 5v-5z"
897
- />
898
- </svg>
899
- {chatLog.lines.length}
900
- </span>
901
- {!isMobile && (
902
- <div className="memori-chat-history-drawer--card--content--header">
903
- <Button
904
- className="memori-chat-history-drawer--card--content--export-button"
905
- onClick={e => handleExportChat(chatLog, e)}
906
- disabled={chatLog?.sessionID === sessionId}
907
- >
908
- <div className="memori-chat-history-drawer--card--content--export-button--content">
909
- <Download className="memori-chat-history-drawer--card--content--export-button--icon" />
910
- {/* <span className="memori-chat-history-drawer--card--content--export-button--text">
911
- {t('write_and_speak.exportChat') || 'Export Chat'}
912
- </span> */}
913
- </div>
914
- </Button>
915
- </div>
916
- )}
1056
+ {stats.imageCount > 0 && (
1057
+ <span className="memori-chat-history-drawer--list-item--meta-badge memori-chat-history-drawer--list-item--meta-badge-images">
1058
+ {formatCountLabel(
1059
+ stats.imageCount,
1060
+ t('write_and_speak.image') || 'image',
1061
+ t('write_and_speak.images') || 'images'
1062
+ )}
1063
+ </span>
1064
+ )}
1065
+ {stats.fileCount > 0 && (
1066
+ <span className="memori-chat-history-drawer--list-item--meta-badge memori-chat-history-drawer--list-item--meta-badge-files">
1067
+ {formatCountLabel(
1068
+ stats.fileCount,
1069
+ t('write_and_speak.file') || 'file',
1070
+ t('write_and_speak.files') || 'files'
1071
+ )}
1072
+ </span>
1073
+ )}
1074
+ {chatLog.boardOfExperts && (
1075
+ <span className="memori-chat-history-drawer--list-item--meta-badge memori-chat-history-drawer--list-item--meta-badge-boe">
1076
+ boe
1077
+ </span>
1078
+ )}
1079
+ </div>
917
1080
  </div>
918
-
919
- {/* {selectedChatLog?.chatLogID === chatLog.chatLogID &&
920
- !isMobile && (
921
- <div className="memori-chat-history-drawer--card--content">
922
- <div className="memori-chat-history-drawer--card--content--messages">
923
- <Chat
924
- key={`${chatLog.chatLogID}-${chatLog.lines.length}`}
925
- baseUrl={baseUrl}
926
- apiUrl={apiUrl}
927
- memoriTyping={false}
928
- showTypingText={false}
929
- showAIicon={true}
930
- showTranslationOriginal={false}
931
- showWhyThisAnswer={false}
932
- showCopyButton={false}
933
- isChatlogPanel={true}
934
- showInputs={false}
935
- history={chatLog.lines.map(line => ({
936
- text: line.text, // Don't truncate to preserve document_attachment tags
937
- contextVars: line.contextVars,
938
- media: line.media as Medium[],
939
- fromUser: line.inbound,
940
- timestamp: line.timestamp,
941
- }))}
942
- memori={memori}
943
- sessionID={sessionId}
944
- pushMessage={() => {}}
945
- simulateUserPrompt={() => {}}
946
- setSendOnEnter={() => {}}
947
- attachmentsMenuOpen={undefined}
948
- setAttachmentsMenuOpen={() => {}}
949
- userMessage={''}
950
- onChangeUserMessage={() => {}}
951
- sendMessage={() => {}}
952
- startListening={() => {}}
953
- stopListening={() => {}}
954
- listening={false}
955
- setEnableFocusChatInput={() => {}}
956
- stopAudio={() => {}}
957
- isHistoryView={true}
958
- />
959
- </div>
960
- <div className="memori-chat-history-drawer--card--content--actions">
961
- <Button
962
- className="memori-chat-history-drawer--card--content--resume-button"
963
- primary
964
- onClick={handleResumeChat}
965
- >
966
- <div className="memori-chat-history-drawer--card--content--resume-button--content">
967
- <ChatRound className="memori-chat-history-drawer--card--content--resume-button--icon" />
968
- <span className="memori-chat-history-drawer--card--content--resume-button--text">
969
- {t('write_and_speak.resumeButton') ||
970
- 'Resume chat'}
971
- </span>
972
- </div>
973
- </Button>
974
- </div>
975
- </div>
976
- )} */}
977
- </>
978
- </Card>
1081
+ </button>
1082
+ {/* {!isMobile && (
1083
+ <div className="memori-chat-history-drawer--list-item--actions">
1084
+ <Button
1085
+ variant="ghost"
1086
+ onClick={(e: React.MouseEvent<HTMLButtonElement>) =>
1087
+ handleExportChat(chatLog, e)
1088
+ }
1089
+ disabled={chatLog?.sessionID === sessionId}
1090
+ icon={<Download />}
1091
+ />
1092
+ </div>
1093
+ )} */}
1094
+ </li>
979
1095
  );
980
1096
  })}
981
1097
  </ul>
982
-
983
- {totalPages > 1 && (
984
- <div className="memori-chat-history-drawer--pagination">
985
- <Button
986
- primary
987
- onClick={() => {
988
- setCurrentPage(p => Math.max(1, p - 1));
989
- // fetchChatLogs will be triggered by the useEffect that depends on currentPage
990
- }}
991
- disabled={currentPage === 1}
992
- className="memori-chat-history-drawer--pagination--button"
993
- >
994
- {t('previous') || 'Previous'}
995
- </Button>
996
- <span className="memori-chat-history-drawer--pagination--info">
997
- {t('write_and_speak.page', {
998
- current: currentPage,
999
- total: totalPages,
1000
- })}
1001
- </span>
1002
- <Button
1003
- primary
1004
- onClick={() => {
1005
- setCurrentPage(p => Math.min(totalPages, p + 1));
1006
- // fetchChatLogs will be triggered by the useEffect that depends on currentPage
1007
- }}
1008
- disabled={currentPage === totalPages}
1009
- className="memori-chat-history-drawer--pagination--button"
1010
- >
1011
- {t('next') || 'Next'}
1012
- </Button>
1013
- </div>
1014
- )}
1015
1098
  </>
1016
1099
  );
1017
1100
  };
1018
1101
 
1019
- const renderChatDetailView = () => {
1020
- if (!selectedChatLog) return null;
1021
-
1022
- // Calculate the date of the chat (using the last message timestamp)
1023
- const lastMessageDate = Math.max(
1024
- ...selectedChatLog.lines.map(line => new Date(line.timestamp).getTime())
1025
- );
1026
- const chatDate = formatDate(new Date(lastMessageDate).toISOString());
1027
-
1102
+ const renderListPagination = () => {
1103
+ if (totalPages <= 1) return null;
1028
1104
  return (
1029
- <div className="memori-chat-history-drawer--detail-view">
1030
- <div className="memori-chat-history-drawer--detail-view--header">
1031
- <Button
1032
- className="memori-chat-history-drawer--detail-view--back-button"
1033
- onClick={() => {
1034
- setIsViewingChatDetail(false);
1035
- setSelectedChatLog(null);
1036
- }}
1037
- icon={<ChevronLeft />}
1038
- />
1039
- <div className="memori-chat-history-drawer--detail-view--header--title-wrapper">
1040
- <div className="memori-chat-history-drawer--detail-view--header--title">
1041
- {calculateTitle(selectedChatLog.lines) ||
1042
- 'Chat-' + selectedChatLog.chatLogID.substring(0, 4)}
1043
- </div>
1044
- <div className="memori-chat-history-drawer--detail-view--header--date">
1045
- {chatDate}
1046
- </div>
1047
- </div>
1048
- </div>
1049
- <div className="memori-chat-history-drawer--detail-view--content">
1050
- <div className="memori-chat-history-drawer--detail-view--messages">
1051
- <Chat
1052
- key={`${selectedChatLog.chatLogID}-${selectedChatLog.lines.length}`}
1053
- baseUrl={baseUrl}
1054
- apiUrl={apiUrl}
1055
- memoriTyping={false}
1056
- showTypingText={false}
1057
- showAIicon={true}
1058
- showTranslationOriginal={false}
1059
- showWhyThisAnswer={false}
1060
- showCopyButton={false}
1061
- isChatlogPanel={true}
1062
- showInputs={false}
1063
- history={selectedChatLog.lines.map(line => ({
1064
- text: line.text,
1065
- contextVars: line.contextVars,
1066
- media: line.media as Medium[],
1067
- fromUser: line.inbound,
1068
- timestamp: line.timestamp,
1069
- }))}
1070
- memori={memori}
1071
- sessionID={sessionId}
1072
- pushMessage={() => {}}
1073
- simulateUserPrompt={() => {}}
1074
- setSendOnEnter={() => {}}
1075
- attachmentsMenuOpen={undefined}
1076
- setAttachmentsMenuOpen={() => {}}
1077
- userMessage={''}
1078
- onChangeUserMessage={() => {}}
1079
- sendMessage={() => {}}
1080
- startListening={() => {}}
1081
- stopListening={() => {}}
1082
- listening={false}
1083
- setEnableFocusChatInput={() => {}}
1084
- stopAudio={() => {}}
1085
- isHistoryView={true}
1086
- />
1087
- </div>
1088
- <div className="memori-chat-history-drawer--detail-view--actions">
1089
- <Button
1090
- className="memori-chat-history-drawer--detail-view--resume-button"
1091
- primary
1092
- onClick={handleResumeChat}
1093
- >
1094
- <div className="memori-chat-history-drawer--detail-view--resume-button--content">
1095
- {/* <ChatRound className="memori-chat-history-drawer--detail-view--resume-button--icon" /> */}
1096
- <span className="memori-chat-history-drawer--detail-view--resume-button--text">
1097
- {t('write_and_speak.resumeButton') || 'Resume chat'}
1098
- </span>
1099
- </div>
1100
- </Button>
1101
- </div>
1102
- </div>
1103
- </div>
1105
+ <nav
1106
+ className="memori-chat-history-drawer--pagination"
1107
+ aria-label={
1108
+ t('write_and_speak.chatHistory') || 'Chat history pagination'
1109
+ }
1110
+ >
1111
+ <Button
1112
+ variant="outline"
1113
+ onClick={() => setCurrentPage(p => Math.max(1, p - 1))}
1114
+ disabled={currentPage === 1}
1115
+ className="memori-chat-history-drawer--pagination--button memori-chat-history-drawer--pagination--prev"
1116
+ icon={<ChevronLeft />}
1117
+ title={t('previous') || 'Previous'}
1118
+ />
1119
+ <span className="memori-chat-history-drawer--pagination--info">
1120
+ {t('write_and_speak.page', {
1121
+ current: currentPage,
1122
+ total: totalPages,
1123
+ })}
1124
+ </span>
1125
+ <Button
1126
+ variant="outline"
1127
+ onClick={() => setCurrentPage(p => Math.min(totalPages, p + 1))}
1128
+ disabled={currentPage === totalPages}
1129
+ className="memori-chat-history-drawer--pagination--button memori-chat-history-drawer--pagination--next"
1130
+ icon={<ChevronRight />}
1131
+ title={t('next') || 'Next'}
1132
+ />
1133
+ </nav>
1104
1134
  );
1105
1135
  };
1106
1136
 
@@ -1109,186 +1139,150 @@ const ChatHistoryDrawer = ({
1109
1139
  className="memori-chat-history-drawer"
1110
1140
  open={open}
1111
1141
  onClose={onClose}
1112
- titleWithClosable={{
1113
- title: t('write_and_speak.chatHistory') || 'Chat History',
1114
- actions: [
1115
- {
1116
- icon: <Download />,
1117
- visible: isViewingChatDetail,
1118
- onClick: () => {
1119
- //download the chat already opened
1120
- const fileName = `${memori.name.replace(/\W+/g, '-')}-chat-${
1121
- new Date().toISOString().split('T')[0]
1122
- }.txt`;
1123
- const text =
1124
- selectedChatLog?.lines
1125
- .map(
1126
- line =>
1127
- `${line.inbound ? 'YOU' : memori.name}: ${stripAllInternalTags(line.text)}`
1128
- )
1129
- .join('\n')
1130
- .replaceAll(/<think.*?>(.*?)<\/think>/gs, '')
1131
- .replaceAll(
1132
- /<output.*?<\/output>/gsi,
1133
- ''
1134
- )
1135
- .replaceAll(/```markdown([^```]+)```/g, '$1')
1136
- .replaceAll('($', '( $')
1137
- .replaceAll(':$', ': $')
1138
- .replaceAll('\frac', '\\frac')
1139
- .replaceAll('\beta', '\\beta')
1140
- .replaceAll('cdot', '\\cdot') || 'No chat history available';
1141
- downloadFile(text, fileName);
1142
- },
1143
- },
1144
- ],
1145
- showClosable: true,
1146
- }}
1147
- title={
1148
- <div
1149
- className="memori-chat-history-drawer--title-wrapper"
1150
- style={{
1151
- display: 'flex',
1152
- justifyContent: 'space-between',
1153
- alignItems: 'center',
1154
- width: '100%',
1155
- }}
1156
- >
1157
- <span>{t('write_and_speak.chatHistory') || 'Chat History'}</span>
1158
- </div>
1159
- }
1160
- description={
1161
- !isViewingChatDetail
1162
- ? t('write_and_speak.chatHistoryDescription')
1163
- : undefined
1164
- }
1142
+ title={t('write_and_speak.chatHistory') || 'Chat History'}
1143
+ closable={true}
1144
+ anchor="left"
1145
+ size="md"
1146
+ description={t('write_and_speak.chatHistoryDescription')}
1165
1147
  >
1166
- {isViewingChatDetail ? (
1167
- renderChatDetailView()
1148
+ {selectedChatSession && isViewingChatDetail ? (
1149
+ <div className="memori-chat-history-drawer--content memori-chat-history-drawer--content-with-footer">
1150
+ <ChatResumeDrawer
1151
+ embedded={true}
1152
+ isOpen={true}
1153
+ session={selectedChatSession}
1154
+ onResume={handleResumeChat}
1155
+ onBack={handleCloseResumeDrawer}
1156
+ onClose={handleCloseResumeDrawer}
1157
+ onExportChat={handleExportSelectedChat}
1158
+ />
1159
+ </div>
1168
1160
  ) : (
1169
- <div className="memori-chat-history-drawer--content">
1170
- <div className="memori-chat-history-drawer--toolbar">
1171
- {/* New minimum messages filter */}
1172
- <div className="memori-chat-history-drawer--toolbar--min-messages-filter">
1173
- {/* <label className={styles.filterLabel}>
1161
+ <div className="memori-chat-history-drawer--content memori-chat-history-drawer--content-with-footer">
1162
+ <div className="memori-chat-history-drawer--scrollable">
1163
+ <div className="memori-chat-history-drawer--toolbar">
1164
+ {/* New minimum messages filter */}
1165
+ <div className="memori-chat-history-drawer--toolbar--min-messages-filter">
1166
+ {/* <label className={styles.filterLabel}>
1174
1167
  {t('chatLogs.minimumMessages', { ns: 'admin' })}
1175
1168
  </label> */}
1176
- <Select
1177
- displayValue={
1178
- minimumMessagesPerChat === 0
1179
- ? (t('chatLogs.customMinimumMessages') ||
1180
- 'Customize the number of messages') ??
1181
- 'Customize the number of messages'
1182
- : minimumMessagesPerChat === 1
1183
- ? (t('chatLogs.anyMessage') || 'Any message') ??
1184
- 'Any message'
1185
- : t('chatLogs.atLeast', {
1186
- count: minimumMessagesPerChat,
1187
- }) ?? `At least ${minimumMessagesPerChat} messages`
1188
- }
1189
- placeholder={
1190
- (t('chatLogs.customMinimumMessages') ||
1191
- 'Customize the number of messages') ??
1192
- 'Customize the number of messages'
1193
- }
1194
- value={minimumMessagesPerChat}
1195
- onChange={value => {
1196
- setMinimumMessagesPerChat(value);
1197
- }}
1198
- className="memori-chat-history-drawer--toolbar--min-messages-filter--select"
1199
- options={[
1200
- {
1201
- value: 1,
1202
- label: t('chatLogs.anyMessage') || 'Any message',
1203
- },
1204
- {
1205
- value: 2,
1206
- label: t('chatLogs.atLeast2') || 'At least 2 messages',
1207
- },
1208
- {
1209
- value: 3,
1210
- label: t('chatLogs.atLeast3') || 'At least 3 messages',
1211
- },
1212
- {
1213
- value: 5,
1214
- label: t('chatLogs.atLeast5') || 'At least 5 messages',
1215
- },
1216
- {
1217
- value: 10,
1218
- label: t('chatLogs.atLeast10') || 'At least 10 messages',
1219
- },
1220
- {
1221
- value: 15,
1222
- label: t('chatLogs.atLeast15') || 'At least 15 messages',
1223
- },
1224
- {
1225
- value: 20,
1226
- label: t('chatLogs.atLeast20') || 'At least 20 messages',
1227
- },
1228
- {
1229
- value: 0,
1230
- label:
1231
- t('chatLogs.customMinimumMessages') ||
1232
- 'Customize the number of messages',
1233
- },
1234
- ]}
1235
- />
1236
- {minimumMessagesPerChat === 0 && (
1237
- <input
1238
- type="number"
1239
- min={1}
1240
- value={customMinimumMessages}
1241
- onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
1242
- const value = parseInt(e.target.value, 10);
1243
- setCustomMinimumMessages(value);
1169
+ <SelectBox
1170
+ placeholder={
1171
+ (t('chatLogs.customMinimumMessages') ||
1172
+ 'Customize the number of messages') ??
1173
+ 'Customize the number of messages'
1174
+ }
1175
+ value={String(minimumMessagesPerChat)}
1176
+ onChange={value => {
1177
+ setMinimumMessagesPerChat(value ? Number(value) : 0);
1244
1178
  }}
1245
- style={{ minWidth: 50 }}
1246
- className="memori-chat-history-drawer--toolbar--min-messages-filter--input-number"
1179
+ displayValue={
1180
+ minimumMessagesPerChat === 0
1181
+ ? t('chatLogs.customMinimumMessages') ||
1182
+ 'Customize the number of messages'
1183
+ : t('chatLogs.atLeast' + minimumMessagesPerChat) ||
1184
+ 'At least ' + minimumMessagesPerChat + ' messages'
1185
+ }
1186
+ className="memori-chat-history-drawer--toolbar--min-messages-filter--select"
1187
+ options={[
1188
+ {
1189
+ value: '1',
1190
+ label: t('chatLogs.anyMessage') || 'Any message',
1191
+ },
1192
+ {
1193
+ value: '2',
1194
+ label: t('chatLogs.atLeast2') || 'At least 2 messages',
1195
+ },
1196
+ {
1197
+ value: '3',
1198
+ label: t('chatLogs.atLeast3') || 'At least 3 messages',
1199
+ },
1200
+ {
1201
+ value: '5',
1202
+ label: t('chatLogs.atLeast5') || 'At least 5 messages',
1203
+ },
1204
+ {
1205
+ value: '10',
1206
+ label: t('chatLogs.atLeast10') || 'At least 10 messages',
1207
+ },
1208
+ {
1209
+ value: '15',
1210
+ label: t('chatLogs.atLeast15') || 'At least 15 messages',
1211
+ },
1212
+ {
1213
+ value: '20',
1214
+ label: t('chatLogs.atLeast20') || 'At least 20 messages',
1215
+ },
1216
+ {
1217
+ value: '0',
1218
+ label:
1219
+ t('chatLogs.customMinimumMessages') ||
1220
+ 'Customize the number of messages',
1221
+ },
1222
+ ]}
1247
1223
  />
1248
- )}
1249
- </div>
1250
- <div className="memori-chat-history-drawer--toolbar--actions">
1251
- <Select
1252
- options={[
1253
- {
1254
- label: t('all') || 'All',
1255
- value: 'all',
1256
- },
1257
- {
1258
- label: t('today') || 'Today',
1259
- value: 'today',
1260
- },
1261
- {
1262
- label: t('yesterday') || 'Yesterday',
1263
- value: 'yesterday',
1264
- },
1265
- {
1266
- label: t('last_7_days') || 'Last 7 days',
1267
- value: 'last_7_days',
1268
- },
1269
- {
1270
- label: t('last_30_days') || 'Last 30 days',
1271
- value: 'last_30_days',
1272
- },
1273
- ]}
1274
- value={t(dateRange) || 'All'}
1275
- className="memori-chat-history-drawer--toolbar--actions--select"
1276
- onChange={(value: string) => {
1277
- setDateRange(
1278
- value as
1279
- | 'today'
1280
- | 'yesterday'
1281
- | 'last_7_days'
1282
- | 'last_30_days'
1283
- | 'all'
1284
- );
1285
- setCurrentPage(1);
1286
- // fetchChatLogs will be triggered by the useEffect that depends on dateRange
1287
- }}
1288
- />
1224
+ {minimumMessagesPerChat === 0 && (
1225
+ <input
1226
+ type="number"
1227
+ min={1}
1228
+ value={customMinimumMessages}
1229
+ onChange={(e: React.ChangeEvent<HTMLInputElement>) => {
1230
+ const value = parseInt(e.target.value, 10);
1231
+ setCustomMinimumMessages(value);
1232
+ }}
1233
+ style={{ minWidth: 50 }}
1234
+ className="memori-chat-history-drawer--toolbar--min-messages-filter--input-number"
1235
+ />
1236
+ )}
1237
+ </div>
1238
+ <div className="memori-chat-history-drawer--toolbar--actions">
1239
+ <SelectBox
1240
+ options={[
1241
+ { label: t('all') || 'All', value: 'all' },
1242
+ { label: t('today') || 'Today', value: 'today' },
1243
+ {
1244
+ label: t('yesterday') || 'Yesterday',
1245
+ value: 'yesterday',
1246
+ },
1247
+ {
1248
+ label: t('last_7_days') || 'Last 7 days',
1249
+ value: 'last_7_days',
1250
+ },
1251
+ {
1252
+ label: t('last_30_days') || 'Last 30 days',
1253
+ value: 'last_30_days',
1254
+ },
1255
+ ]}
1256
+ value={dateRange}
1257
+ displayValue={
1258
+ dateRange === 'all'
1259
+ ? t('all') || 'All'
1260
+ : t(dateRange) || dateRange
1261
+ }
1262
+ className="memori-chat-history-drawer--toolbar--actions--select"
1263
+ onChange={value => {
1264
+ if (value) {
1265
+ setDateRange(
1266
+ value as
1267
+ | 'today'
1268
+ | 'yesterday'
1269
+ | 'last_7_days'
1270
+ | 'last_30_days'
1271
+ | 'all'
1272
+ );
1273
+ setCurrentPage(1);
1274
+ }
1275
+ }}
1276
+ />
1277
+ </div>
1289
1278
  </div>
1279
+ {renderContent()}
1290
1280
  </div>
1291
- {renderContent()}
1281
+ {totalPages > 1 && (
1282
+ <div className="memori-chat-history-drawer--pagination-footer">
1283
+ {renderListPagination()}
1284
+ </div>
1285
+ )}
1292
1286
  </div>
1293
1287
  )}
1294
1288
  </Drawer>