@memori.ai/memori-react 9.0.0-alpha.9 → 9.0.0-rc.1

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 (878) hide show
  1. package/CHANGELOG.md +754 -37
  2. package/README.md +430 -171
  3. package/dist/components/AgeVerificationModal/AgeVerificationModal.css +8 -9
  4. package/dist/components/AgeVerificationModal/AgeVerificationModal.js +1 -3
  5. package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  6. package/dist/components/Auth/Auth.css +14 -7
  7. package/dist/components/Auth/Auth.d.ts +1 -1
  8. package/dist/components/Auth/Auth.js +47 -34
  9. package/dist/components/Auth/Auth.js.map +1 -1
  10. package/dist/components/Avatar/Avatar.js +1 -1
  11. package/dist/components/Avatar/Avatar.js.map +1 -1
  12. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +1 -1
  13. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  14. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.d.ts +2 -2
  15. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js +6 -6
  16. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js.map +1 -1
  17. package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +3 -3
  18. package/dist/components/BlockedMemoriBadge/BlockedMemoriBadge.css +8 -7
  19. package/dist/components/ChangeMode/ChangeMode.css +1 -1
  20. package/dist/components/Chat/Chat.css +191 -49
  21. package/dist/components/Chat/Chat.d.ts +2 -0
  22. package/dist/components/Chat/Chat.js +123 -82
  23. package/dist/components/Chat/Chat.js.map +1 -1
  24. package/dist/components/ChatBubble/ChatBubble.css +539 -88
  25. package/dist/components/ChatBubble/ChatBubble.d.ts +2 -0
  26. package/dist/components/ChatBubble/ChatBubble.js +202 -108
  27. package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
  28. package/dist/components/ChatHistoryDrawer/ChatHistory.css +195 -700
  29. package/dist/components/ChatHistoryDrawer/ChatHistory.d.ts +3 -1
  30. package/dist/components/ChatHistoryDrawer/ChatHistory.js +235 -613
  31. package/dist/components/ChatHistoryDrawer/ChatHistory.js.map +1 -1
  32. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +9 -298
  33. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +5 -2
  34. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +7 -80
  35. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  36. package/dist/components/ChatInputs/ChatInputs.css +181 -166
  37. package/dist/components/ChatInputs/ChatInputs.d.ts +2 -0
  38. package/dist/components/ChatInputs/ChatInputs.js +15 -9
  39. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  40. package/dist/components/ChatTextArea/ChatTextArea.css +30 -19
  41. package/dist/components/ChatTextArea/ChatTextArea.js +0 -17
  42. package/dist/components/ChatTextArea/ChatTextArea.js.map +1 -1
  43. package/dist/components/CompletionProviderStatus/CompletionProviderStatus.css +1 -1
  44. package/dist/components/ContentPreviewModal/ContentPreviewModal.css +380 -68
  45. package/dist/components/ContentPreviewModal/ContentPreviewModal.d.ts +4 -1
  46. package/dist/components/ContentPreviewModal/ContentPreviewModal.js +71 -6
  47. package/dist/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -1
  48. package/dist/components/ContentPreviewModal/DocumentMarkdown.d.ts +7 -0
  49. package/dist/components/ContentPreviewModal/DocumentMarkdown.js +31 -0
  50. package/dist/components/ContentPreviewModal/DocumentMarkdown.js.map +1 -0
  51. package/dist/components/ContentPreviewModal/index.d.ts +2 -0
  52. package/dist/components/ContentPreviewModal/index.js +5 -1
  53. package/dist/components/ContentPreviewModal/index.js.map +1 -1
  54. package/dist/components/DateSelector/DateSelector.css +93 -7
  55. package/dist/components/DateSelector/DateSelector.js +5 -1
  56. package/dist/components/DateSelector/DateSelector.js.map +1 -1
  57. package/dist/components/DrawerFooter/DrawerFooter.css +39 -39
  58. package/dist/components/ExpertsDrawer/ExpertsDrawer.css +1 -7
  59. package/dist/components/ExpertsDrawer/ExpertsDrawer.js +1 -3
  60. package/dist/components/ExpertsDrawer/ExpertsDrawer.js.map +1 -1
  61. package/dist/components/ExportHistoryButton/ExportHistoryButton.css +1 -1
  62. package/dist/components/FeedbackButtons/FeedbackButtons.css +3 -3
  63. package/dist/components/FeedbackButtons/FeedbackButtons.js +2 -2
  64. package/dist/components/FeedbackButtons/FeedbackButtons.js.map +1 -1
  65. package/dist/components/FilePreview/FilePreview.css +123 -223
  66. package/dist/components/FilePreview/FilePreview.d.ts +2 -1
  67. package/dist/components/FilePreview/FilePreview.js +37 -86
  68. package/dist/components/FilePreview/FilePreview.js.map +1 -1
  69. package/dist/components/Header/ChatConsumptionDropdown.d.ts +3 -1
  70. package/dist/components/Header/ChatConsumptionDropdown.js +31 -6
  71. package/dist/components/Header/ChatConsumptionDropdown.js.map +1 -1
  72. package/dist/components/Header/Header.css +216 -53
  73. package/dist/components/Header/Header.d.ts +1 -0
  74. package/dist/components/Header/Header.js +201 -105
  75. package/dist/components/Header/Header.js.map +1 -1
  76. package/dist/components/IconButton/IconButton.css +135 -0
  77. package/dist/components/IconButton/IconButton.d.ts +9 -0
  78. package/dist/components/IconButton/IconButton.js +36 -0
  79. package/dist/components/IconButton/IconButton.js.map +1 -0
  80. package/dist/components/KnownFacts/KnownFacts.css +147 -35
  81. package/dist/components/KnownFacts/KnownFacts.js +184 -182
  82. package/dist/components/KnownFacts/KnownFacts.js.map +1 -1
  83. package/dist/components/LoginDrawer/LoginDrawer.css +114 -74
  84. package/dist/components/LoginDrawer/LoginDrawer.d.ts +1 -1
  85. package/dist/components/LoginDrawer/LoginDrawer.js +67 -17
  86. package/dist/components/LoginDrawer/LoginDrawer.js.map +1 -1
  87. package/dist/components/MediaWidget/MediaItemWidget.css +141 -121
  88. package/dist/components/MediaWidget/MediaItemWidget.js +15 -14
  89. package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
  90. package/dist/components/MediaWidget/MediaItemWidget.utils.d.ts +14 -0
  91. package/dist/components/MediaWidget/MediaItemWidget.utils.js +68 -4
  92. package/dist/components/MediaWidget/MediaItemWidget.utils.js.map +1 -1
  93. package/dist/components/MediaWidget/MediaPreviewModal.js +12 -19
  94. package/dist/components/MediaWidget/MediaPreviewModal.js.map +1 -1
  95. package/dist/components/MediaWidget/MediaWidget.css +2 -2
  96. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +9 -4
  97. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
  98. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
  99. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +14 -12
  100. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
  101. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +43 -132
  102. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +393 -211
  103. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +48 -56
  104. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  105. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +48 -10
  106. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.js +20 -16
  107. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.js.map +1 -1
  108. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +46 -25
  109. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +206 -62
  110. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  111. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +30 -21
  112. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +1 -1
  113. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
  114. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.d.ts +3 -1
  115. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.js +65 -1
  116. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.js.map +1 -1
  117. package/dist/components/MemoriArtifactSystem/types/artifact.types.d.ts +11 -0
  118. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.js +19 -14
  119. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.js.map +1 -1
  120. package/dist/components/MemoriArtifactSystem/utils/applyEdits.d.ts +8 -0
  121. package/dist/components/MemoriArtifactSystem/utils/applyEdits.js +117 -0
  122. package/dist/components/MemoriArtifactSystem/utils/applyEdits.js.map +1 -0
  123. package/dist/components/MemoriWidget/MemoriWidget.css +8 -3
  124. package/dist/components/MemoriWidget/MemoriWidget.d.ts +4 -1
  125. package/dist/components/MemoriWidget/MemoriWidget.js +143 -77
  126. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  127. package/dist/components/MicrophoneButton/MicrophoneButton.css +2 -161
  128. package/dist/components/MicrophoneButton/MicrophoneButton.js +3 -1
  129. package/dist/components/MicrophoneButton/MicrophoneButton.js.map +1 -1
  130. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +122 -19
  131. package/dist/components/MobileSessionPanel/MobileSessionPanel.d.ts +3 -0
  132. package/dist/components/MobileSessionPanel/MobileSessionPanel.js +75 -113
  133. package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
  134. package/dist/components/PositionPopover/PositionPopover.css +9 -10
  135. package/dist/components/PositionPopover/PositionPopover.d.ts +2 -0
  136. package/dist/components/PositionPopover/PositionPopover.js +57 -36
  137. package/dist/components/PositionPopover/PositionPopover.js.map +1 -1
  138. package/dist/components/PoweredBy/PoweredBy.css +1 -8
  139. package/dist/components/ReasoningBlock/ReasoningBlock.css +156 -0
  140. package/dist/components/ReasoningBlock/ReasoningBlock.d.ts +7 -0
  141. package/dist/components/ReasoningBlock/ReasoningBlock.js +61 -0
  142. package/dist/components/ReasoningBlock/ReasoningBlock.js.map +1 -0
  143. package/dist/components/SendOnEnterMenu/SendOnEnterMenu.css +1 -1
  144. package/dist/components/SettingsDrawer/SettingsDrawer.js +2 -4
  145. package/dist/components/SettingsDrawer/SettingsDrawer.js.map +1 -1
  146. package/dist/components/ShareButton/ShareButton.css +101 -57
  147. package/dist/components/ShareButton/ShareButton.js +10 -9
  148. package/dist/components/ShareButton/ShareButton.js.map +1 -1
  149. package/dist/components/SideDrawer/SideDrawer.css +112 -0
  150. package/dist/components/SideDrawer/SideDrawer.d.ts +22 -0
  151. package/dist/components/SideDrawer/SideDrawer.js +17 -0
  152. package/dist/components/SideDrawer/SideDrawer.js.map +1 -0
  153. package/dist/components/Snippet/Snippet.css +10 -40
  154. package/dist/components/Snippet/Snippet.js +3 -1
  155. package/dist/components/Snippet/Snippet.js.map +1 -1
  156. package/dist/components/StartPanel/StartPanel.css +299 -50
  157. package/dist/components/StartPanel/StartPanel.d.ts +1 -0
  158. package/dist/components/StartPanel/StartPanel.js +45 -30
  159. package/dist/components/StartPanel/StartPanel.js.map +1 -1
  160. package/dist/components/Typing/Typing.js +1 -1
  161. package/dist/components/Typing/Typing.js.map +1 -1
  162. package/dist/components/UploadButton/UploadButton.css +44 -62
  163. package/dist/components/UploadButton/UploadButton.d.ts +1 -0
  164. package/dist/components/UploadButton/UploadButton.js +17 -21
  165. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  166. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.d.ts +1 -6
  167. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +23 -144
  168. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  169. package/dist/components/UploadButton/UploadImages/UploadImages.js +2 -8
  170. package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  171. package/dist/components/VenueWidget/VenueWidget.css +6 -6
  172. package/dist/components/WhyThisAnswer/WhyThisAnswer.css +181 -107
  173. package/dist/components/WhyThisAnswer/WhyThisAnswer.d.ts +4 -1
  174. package/dist/components/WhyThisAnswer/WhyThisAnswer.js +169 -20
  175. package/dist/components/WhyThisAnswer/WhyThisAnswer.js.map +1 -1
  176. package/dist/components/layouts/Chat.js +66 -73
  177. package/dist/components/layouts/Chat.js.map +1 -1
  178. package/dist/components/layouts/FullPage.js +160 -39
  179. package/dist/components/layouts/FullPage.js.map +1 -1
  180. package/dist/components/layouts/HiddenChat.js +24 -7
  181. package/dist/components/layouts/HiddenChat.js.map +1 -1
  182. package/dist/components/layouts/Totem.js +10 -1
  183. package/dist/components/layouts/Totem.js.map +1 -1
  184. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +88 -8
  185. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  186. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +142 -39
  187. package/dist/components/layouts/ZoomedFullBody.js +158 -39
  188. package/dist/components/layouts/ZoomedFullBody.js.map +1 -1
  189. package/dist/components/layouts/chat.css +231 -59
  190. package/dist/components/layouts/fullpage.css +283 -81
  191. package/dist/components/layouts/hidden-chat.css +116 -96
  192. package/dist/components/layouts/totem.css +194 -51
  193. package/dist/components/layouts/zoomed-full-body.css +276 -77
  194. package/dist/helpers/artifactPanel.d.ts +6 -0
  195. package/dist/helpers/artifactPanel.js +42 -0
  196. package/dist/helpers/artifactPanel.js.map +1 -0
  197. package/dist/helpers/chatScroll.d.ts +12 -0
  198. package/dist/helpers/chatScroll.js +14 -0
  199. package/dist/helpers/chatScroll.js.map +1 -0
  200. package/dist/helpers/constants.d.ts +3 -1
  201. package/dist/helpers/constants.js +25 -3
  202. package/dist/helpers/constants.js.map +1 -1
  203. package/dist/helpers/conversationHistory.d.ts +16 -0
  204. package/dist/helpers/conversationHistory.js +89 -0
  205. package/dist/helpers/conversationHistory.js.map +1 -0
  206. package/dist/helpers/conversationTitle.d.ts +8 -0
  207. package/dist/helpers/conversationTitle.js +27 -0
  208. package/dist/helpers/conversationTitle.js.map +1 -0
  209. package/dist/helpers/convertDocument.d.ts +1 -0
  210. package/dist/helpers/convertDocument.js +24 -0
  211. package/dist/helpers/convertDocument.js.map +1 -0
  212. package/dist/helpers/error.js +2 -1
  213. package/dist/helpers/error.js.map +1 -1
  214. package/dist/helpers/highlightMatches.d.ts +2 -0
  215. package/dist/helpers/highlightMatches.js +54 -0
  216. package/dist/helpers/highlightMatches.js.map +1 -0
  217. package/dist/helpers/media.js +18 -3
  218. package/dist/helpers/media.js.map +1 -1
  219. package/dist/helpers/message.js +5 -1
  220. package/dist/helpers/message.js.map +1 -1
  221. package/dist/helpers/nats/getNatsConfig.js.map +1 -1
  222. package/dist/helpers/nats/useNats.d.ts +2 -1
  223. package/dist/helpers/nats/useNats.js +87 -20
  224. package/dist/helpers/nats/useNats.js.map +1 -1
  225. package/dist/helpers/nats/useNatsSession.d.ts +6 -1
  226. package/dist/helpers/nats/useNatsSession.js +48 -7
  227. package/dist/helpers/nats/useNatsSession.js.map +1 -1
  228. package/dist/helpers/positionPopover.d.ts +3 -1
  229. package/dist/helpers/positionPopover.js +17 -2
  230. package/dist/helpers/positionPopover.js.map +1 -1
  231. package/dist/helpers/reasoning.d.ts +7 -0
  232. package/dist/helpers/reasoning.js +43 -0
  233. package/dist/helpers/reasoning.js.map +1 -0
  234. package/dist/helpers/relativeTime.d.ts +3 -0
  235. package/dist/helpers/relativeTime.js +56 -0
  236. package/dist/helpers/relativeTime.js.map +1 -0
  237. package/dist/helpers/sourcesCount.d.ts +2 -0
  238. package/dist/helpers/sourcesCount.js +22 -0
  239. package/dist/helpers/sourcesCount.js.map +1 -0
  240. package/dist/helpers/tts/muteSpeaker.d.ts +13 -0
  241. package/dist/helpers/tts/muteSpeaker.js +26 -0
  242. package/dist/helpers/tts/muteSpeaker.js.map +1 -0
  243. package/dist/helpers/tts/useTTS.js +18 -9
  244. package/dist/helpers/tts/useTTS.js.map +1 -1
  245. package/dist/helpers/usePressTooltip.d.ts +6 -1
  246. package/dist/helpers/usePressTooltip.js +16 -1
  247. package/dist/helpers/usePressTooltip.js.map +1 -1
  248. package/dist/helpers/utils.d.ts +3 -1
  249. package/dist/helpers/utils.js +20 -6
  250. package/dist/helpers/utils.js.map +1 -1
  251. package/dist/icons/MemoriIcon.js +1 -1
  252. package/dist/icons/MemoriIcon.js.map +1 -1
  253. package/dist/index.js +17 -17
  254. package/dist/index.js.map +1 -1
  255. package/dist/locales/de.json +82 -8
  256. package/dist/locales/en.json +80 -11
  257. package/dist/locales/es.json +79 -9
  258. package/dist/locales/fr.json +79 -9
  259. package/dist/locales/it.json +80 -11
  260. package/dist/styles/motion.css +25 -0
  261. package/dist/styles.css +1 -1
  262. package/dist/version.d.ts +1 -1
  263. package/dist/version.js +1 -1
  264. package/dist/version.js.map +1 -1
  265. package/esm/components/AgeVerificationModal/AgeVerificationModal.css +8 -9
  266. package/esm/components/AgeVerificationModal/AgeVerificationModal.js +1 -3
  267. package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  268. package/esm/components/Auth/Auth.css +14 -7
  269. package/esm/components/Auth/Auth.d.ts +1 -1
  270. package/esm/components/Auth/Auth.js +48 -35
  271. package/esm/components/Auth/Auth.js.map +1 -1
  272. package/esm/components/Avatar/Avatar.js +1 -1
  273. package/esm/components/Avatar/Avatar.js.map +1 -1
  274. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +2 -2
  275. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  276. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.d.ts +2 -2
  277. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js +4 -5
  278. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js.map +1 -1
  279. package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +3 -3
  280. package/esm/components/BlockedMemoriBadge/BlockedMemoriBadge.css +8 -7
  281. package/esm/components/ChangeMode/ChangeMode.css +1 -1
  282. package/esm/components/Chat/Chat.css +191 -49
  283. package/esm/components/Chat/Chat.d.ts +2 -0
  284. package/esm/components/Chat/Chat.js +125 -84
  285. package/esm/components/Chat/Chat.js.map +1 -1
  286. package/esm/components/ChatBubble/ChatBubble.css +539 -88
  287. package/esm/components/ChatBubble/ChatBubble.d.ts +2 -0
  288. package/esm/components/ChatBubble/ChatBubble.js +204 -110
  289. package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
  290. package/esm/components/ChatHistoryDrawer/ChatHistory.css +195 -700
  291. package/esm/components/ChatHistoryDrawer/ChatHistory.d.ts +3 -1
  292. package/esm/components/ChatHistoryDrawer/ChatHistory.js +239 -617
  293. package/esm/components/ChatHistoryDrawer/ChatHistory.js.map +1 -1
  294. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +9 -298
  295. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +5 -2
  296. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +9 -82
  297. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  298. package/esm/components/ChatInputs/ChatInputs.css +181 -166
  299. package/esm/components/ChatInputs/ChatInputs.d.ts +2 -0
  300. package/esm/components/ChatInputs/ChatInputs.js +16 -10
  301. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  302. package/esm/components/ChatTextArea/ChatTextArea.css +30 -19
  303. package/esm/components/ChatTextArea/ChatTextArea.js +0 -17
  304. package/esm/components/ChatTextArea/ChatTextArea.js.map +1 -1
  305. package/esm/components/CompletionProviderStatus/CompletionProviderStatus.css +1 -1
  306. package/esm/components/ContentPreviewModal/ContentPreviewModal.css +380 -68
  307. package/esm/components/ContentPreviewModal/ContentPreviewModal.d.ts +4 -1
  308. package/esm/components/ContentPreviewModal/ContentPreviewModal.js +72 -7
  309. package/esm/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -1
  310. package/esm/components/ContentPreviewModal/DocumentMarkdown.d.ts +7 -0
  311. package/esm/components/ContentPreviewModal/DocumentMarkdown.js +28 -0
  312. package/esm/components/ContentPreviewModal/DocumentMarkdown.js.map +1 -0
  313. package/esm/components/ContentPreviewModal/index.d.ts +2 -0
  314. package/esm/components/ContentPreviewModal/index.js +2 -0
  315. package/esm/components/ContentPreviewModal/index.js.map +1 -1
  316. package/esm/components/DateSelector/DateSelector.css +93 -7
  317. package/esm/components/DateSelector/DateSelector.js +5 -1
  318. package/esm/components/DateSelector/DateSelector.js.map +1 -1
  319. package/esm/components/DrawerFooter/DrawerFooter.css +39 -39
  320. package/esm/components/ExpertsDrawer/ExpertsDrawer.css +1 -7
  321. package/esm/components/ExpertsDrawer/ExpertsDrawer.js +1 -3
  322. package/esm/components/ExpertsDrawer/ExpertsDrawer.js.map +1 -1
  323. package/esm/components/ExportHistoryButton/ExportHistoryButton.css +1 -1
  324. package/esm/components/FeedbackButtons/FeedbackButtons.css +3 -3
  325. package/esm/components/FeedbackButtons/FeedbackButtons.js +2 -2
  326. package/esm/components/FeedbackButtons/FeedbackButtons.js.map +1 -1
  327. package/esm/components/FilePreview/FilePreview.css +123 -223
  328. package/esm/components/FilePreview/FilePreview.d.ts +2 -1
  329. package/esm/components/FilePreview/FilePreview.js +39 -88
  330. package/esm/components/FilePreview/FilePreview.js.map +1 -1
  331. package/esm/components/Header/ChatConsumptionDropdown.d.ts +3 -1
  332. package/esm/components/Header/ChatConsumptionDropdown.js +33 -8
  333. package/esm/components/Header/ChatConsumptionDropdown.js.map +1 -1
  334. package/esm/components/Header/Header.css +216 -53
  335. package/esm/components/Header/Header.d.ts +1 -0
  336. package/esm/components/Header/Header.js +202 -106
  337. package/esm/components/Header/Header.js.map +1 -1
  338. package/esm/components/IconButton/IconButton.css +135 -0
  339. package/esm/components/IconButton/IconButton.d.ts +9 -0
  340. package/esm/components/IconButton/IconButton.js +33 -0
  341. package/esm/components/IconButton/IconButton.js.map +1 -0
  342. package/esm/components/KnownFacts/KnownFacts.css +147 -35
  343. package/esm/components/KnownFacts/KnownFacts.js +185 -184
  344. package/esm/components/KnownFacts/KnownFacts.js.map +1 -1
  345. package/esm/components/LoginDrawer/LoginDrawer.css +114 -74
  346. package/esm/components/LoginDrawer/LoginDrawer.d.ts +1 -1
  347. package/esm/components/LoginDrawer/LoginDrawer.js +68 -18
  348. package/esm/components/LoginDrawer/LoginDrawer.js.map +1 -1
  349. package/esm/components/MediaWidget/MediaItemWidget.css +141 -121
  350. package/esm/components/MediaWidget/MediaItemWidget.js +16 -15
  351. package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
  352. package/esm/components/MediaWidget/MediaItemWidget.utils.d.ts +14 -0
  353. package/esm/components/MediaWidget/MediaItemWidget.utils.js +65 -4
  354. package/esm/components/MediaWidget/MediaItemWidget.utils.js.map +1 -1
  355. package/esm/components/MediaWidget/MediaPreviewModal.js +13 -20
  356. package/esm/components/MediaWidget/MediaPreviewModal.js.map +1 -1
  357. package/esm/components/MediaWidget/MediaWidget.css +2 -2
  358. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +9 -4
  359. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
  360. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
  361. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +15 -13
  362. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
  363. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +43 -132
  364. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +393 -211
  365. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +50 -58
  366. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  367. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +48 -10
  368. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.js +21 -18
  369. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.js.map +1 -1
  370. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +46 -25
  371. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +208 -64
  372. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  373. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +30 -21
  374. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +2 -2
  375. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
  376. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.d.ts +3 -1
  377. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.js +66 -2
  378. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.js.map +1 -1
  379. package/esm/components/MemoriArtifactSystem/types/artifact.types.d.ts +11 -0
  380. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.js +19 -14
  381. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.js.map +1 -1
  382. package/esm/components/MemoriArtifactSystem/utils/applyEdits.d.ts +8 -0
  383. package/esm/components/MemoriArtifactSystem/utils/applyEdits.js +112 -0
  384. package/esm/components/MemoriArtifactSystem/utils/applyEdits.js.map +1 -0
  385. package/esm/components/MemoriWidget/MemoriWidget.css +8 -3
  386. package/esm/components/MemoriWidget/MemoriWidget.d.ts +4 -1
  387. package/esm/components/MemoriWidget/MemoriWidget.js +145 -80
  388. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  389. package/esm/components/MicrophoneButton/MicrophoneButton.css +2 -161
  390. package/esm/components/MicrophoneButton/MicrophoneButton.js +3 -2
  391. package/esm/components/MicrophoneButton/MicrophoneButton.js.map +1 -1
  392. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +122 -19
  393. package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +3 -0
  394. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +76 -114
  395. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
  396. package/esm/components/PositionPopover/PositionPopover.css +9 -10
  397. package/esm/components/PositionPopover/PositionPopover.d.ts +2 -0
  398. package/esm/components/PositionPopover/PositionPopover.js +58 -37
  399. package/esm/components/PositionPopover/PositionPopover.js.map +1 -1
  400. package/esm/components/PoweredBy/PoweredBy.css +1 -8
  401. package/esm/components/ReasoningBlock/ReasoningBlock.css +156 -0
  402. package/esm/components/ReasoningBlock/ReasoningBlock.d.ts +7 -0
  403. package/esm/components/ReasoningBlock/ReasoningBlock.js +58 -0
  404. package/esm/components/ReasoningBlock/ReasoningBlock.js.map +1 -0
  405. package/esm/components/SendOnEnterMenu/SendOnEnterMenu.css +1 -1
  406. package/esm/components/SettingsDrawer/SettingsDrawer.js +2 -4
  407. package/esm/components/SettingsDrawer/SettingsDrawer.js.map +1 -1
  408. package/esm/components/ShareButton/ShareButton.css +101 -57
  409. package/esm/components/ShareButton/ShareButton.js +11 -10
  410. package/esm/components/ShareButton/ShareButton.js.map +1 -1
  411. package/esm/components/SideDrawer/SideDrawer.css +112 -0
  412. package/esm/components/SideDrawer/SideDrawer.d.ts +22 -0
  413. package/esm/components/SideDrawer/SideDrawer.js +12 -0
  414. package/esm/components/SideDrawer/SideDrawer.js.map +1 -0
  415. package/esm/components/Snippet/Snippet.css +10 -40
  416. package/esm/components/Snippet/Snippet.js +4 -2
  417. package/esm/components/Snippet/Snippet.js.map +1 -1
  418. package/esm/components/StartPanel/StartPanel.css +299 -50
  419. package/esm/components/StartPanel/StartPanel.d.ts +1 -0
  420. package/esm/components/StartPanel/StartPanel.js +46 -31
  421. package/esm/components/StartPanel/StartPanel.js.map +1 -1
  422. package/esm/components/Typing/Typing.js +1 -1
  423. package/esm/components/Typing/Typing.js.map +1 -1
  424. package/esm/components/UploadButton/UploadButton.css +44 -62
  425. package/esm/components/UploadButton/UploadButton.d.ts +1 -0
  426. package/esm/components/UploadButton/UploadButton.js +18 -22
  427. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  428. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.d.ts +1 -6
  429. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +25 -146
  430. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  431. package/esm/components/UploadButton/UploadImages/UploadImages.js +2 -8
  432. package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  433. package/esm/components/VenueWidget/VenueWidget.css +6 -6
  434. package/esm/components/WhyThisAnswer/WhyThisAnswer.css +181 -107
  435. package/esm/components/WhyThisAnswer/WhyThisAnswer.d.ts +4 -1
  436. package/esm/components/WhyThisAnswer/WhyThisAnswer.js +172 -23
  437. package/esm/components/WhyThisAnswer/WhyThisAnswer.js.map +1 -1
  438. package/esm/components/layouts/Chat.js +69 -76
  439. package/esm/components/layouts/Chat.js.map +1 -1
  440. package/esm/components/layouts/FullPage.js +162 -41
  441. package/esm/components/layouts/FullPage.js.map +1 -1
  442. package/esm/components/layouts/HiddenChat.js +24 -7
  443. package/esm/components/layouts/HiddenChat.js.map +1 -1
  444. package/esm/components/layouts/Totem.js +10 -1
  445. package/esm/components/layouts/Totem.js.map +1 -1
  446. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +89 -9
  447. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  448. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +142 -39
  449. package/esm/components/layouts/ZoomedFullBody.js +160 -41
  450. package/esm/components/layouts/ZoomedFullBody.js.map +1 -1
  451. package/esm/components/layouts/chat.css +231 -59
  452. package/esm/components/layouts/fullpage.css +283 -81
  453. package/esm/components/layouts/hidden-chat.css +116 -96
  454. package/esm/components/layouts/totem.css +194 -51
  455. package/esm/components/layouts/zoomed-full-body.css +276 -77
  456. package/esm/helpers/artifactPanel.d.ts +6 -0
  457. package/esm/helpers/artifactPanel.js +37 -0
  458. package/esm/helpers/artifactPanel.js.map +1 -0
  459. package/esm/helpers/chatScroll.d.ts +12 -0
  460. package/esm/helpers/chatScroll.js +9 -0
  461. package/esm/helpers/chatScroll.js.map +1 -0
  462. package/esm/helpers/constants.d.ts +3 -1
  463. package/esm/helpers/constants.js +24 -2
  464. package/esm/helpers/constants.js.map +1 -1
  465. package/esm/helpers/conversationHistory.d.ts +16 -0
  466. package/esm/helpers/conversationHistory.js +82 -0
  467. package/esm/helpers/conversationHistory.js.map +1 -0
  468. package/esm/helpers/conversationTitle.d.ts +8 -0
  469. package/esm/helpers/conversationTitle.js +23 -0
  470. package/esm/helpers/conversationTitle.js.map +1 -0
  471. package/esm/helpers/convertDocument.d.ts +1 -0
  472. package/esm/helpers/convertDocument.js +20 -0
  473. package/esm/helpers/convertDocument.js.map +1 -0
  474. package/esm/helpers/error.js +2 -1
  475. package/esm/helpers/error.js.map +1 -1
  476. package/esm/helpers/highlightMatches.d.ts +2 -0
  477. package/esm/helpers/highlightMatches.js +49 -0
  478. package/esm/helpers/highlightMatches.js.map +1 -0
  479. package/esm/helpers/media.js +18 -3
  480. package/esm/helpers/media.js.map +1 -1
  481. package/esm/helpers/message.js +6 -2
  482. package/esm/helpers/message.js.map +1 -1
  483. package/esm/helpers/nats/getNatsConfig.js.map +1 -1
  484. package/esm/helpers/nats/useNats.d.ts +2 -1
  485. package/esm/helpers/nats/useNats.js +87 -20
  486. package/esm/helpers/nats/useNats.js.map +1 -1
  487. package/esm/helpers/nats/useNatsSession.d.ts +6 -1
  488. package/esm/helpers/nats/useNatsSession.js +48 -8
  489. package/esm/helpers/nats/useNatsSession.js.map +1 -1
  490. package/esm/helpers/positionPopover.d.ts +3 -1
  491. package/esm/helpers/positionPopover.js +15 -2
  492. package/esm/helpers/positionPopover.js.map +1 -1
  493. package/esm/helpers/reasoning.d.ts +7 -0
  494. package/esm/helpers/reasoning.js +39 -0
  495. package/esm/helpers/reasoning.js.map +1 -0
  496. package/esm/helpers/relativeTime.d.ts +3 -0
  497. package/esm/helpers/relativeTime.js +50 -0
  498. package/esm/helpers/relativeTime.js.map +1 -0
  499. package/esm/helpers/sourcesCount.d.ts +2 -0
  500. package/esm/helpers/sourcesCount.js +18 -0
  501. package/esm/helpers/sourcesCount.js.map +1 -0
  502. package/esm/helpers/tts/muteSpeaker.d.ts +13 -0
  503. package/esm/helpers/tts/muteSpeaker.js +21 -0
  504. package/esm/helpers/tts/muteSpeaker.js.map +1 -0
  505. package/esm/helpers/tts/useTTS.js +18 -9
  506. package/esm/helpers/tts/useTTS.js.map +1 -1
  507. package/esm/helpers/usePressTooltip.d.ts +6 -1
  508. package/esm/helpers/usePressTooltip.js +17 -2
  509. package/esm/helpers/usePressTooltip.js.map +1 -1
  510. package/esm/helpers/utils.d.ts +3 -1
  511. package/esm/helpers/utils.js +18 -6
  512. package/esm/helpers/utils.js.map +1 -1
  513. package/esm/icons/MemoriIcon.js +1 -1
  514. package/esm/icons/MemoriIcon.js.map +1 -1
  515. package/esm/index.js +18 -18
  516. package/esm/index.js.map +1 -1
  517. package/esm/locales/de.json +82 -8
  518. package/esm/locales/en.json +80 -11
  519. package/esm/locales/es.json +79 -9
  520. package/esm/locales/fr.json +79 -9
  521. package/esm/locales/it.json +80 -11
  522. package/esm/styles/motion.css +25 -0
  523. package/esm/styles.css +1 -1
  524. package/esm/version.d.ts +1 -1
  525. package/esm/version.js +1 -1
  526. package/esm/version.js.map +1 -1
  527. package/package.json +15 -55
  528. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.d.ts +0 -3
  529. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js +0 -64
  530. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js.map +0 -1
  531. package/dist/context/widgetSurfaceContext.d.ts +0 -3
  532. package/dist/context/widgetSurfaceContext.js +0 -11
  533. package/dist/context/widgetSurfaceContext.js.map +0 -1
  534. package/dist/testUtils.d.ts +0 -5
  535. package/dist/testUtils.js +0 -18
  536. package/dist/testUtils.js.map +0 -1
  537. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.d.ts +0 -3
  538. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js +0 -62
  539. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js.map +0 -1
  540. package/esm/context/widgetSurfaceContext.d.ts +0 -3
  541. package/esm/context/widgetSurfaceContext.js +0 -7
  542. package/esm/context/widgetSurfaceContext.js.map +0 -1
  543. package/esm/testUtils.d.ts +0 -5
  544. package/esm/testUtils.js +0 -15
  545. package/esm/testUtils.js.map +0 -1
  546. package/src/I18nWrapper.tsx +0 -13
  547. package/src/Showcase.stories.tsx +0 -641
  548. package/src/__snapshots__/index.test.tsx.snap +0 -126
  549. package/src/components/AgeVerificationModal/AgeVerificationModal.css +0 -118
  550. package/src/components/AgeVerificationModal/AgeVerificationModal.stories.tsx +0 -49
  551. package/src/components/AgeVerificationModal/AgeVerificationModal.test.tsx +0 -34
  552. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +0 -125
  553. package/src/components/AgeVerificationModal/__snapshots__/AgeVerificationModal.test.tsx.snap +0 -43
  554. package/src/components/Auth/Auth.css +0 -61
  555. package/src/components/Auth/Auth.stories.tsx +0 -90
  556. package/src/components/Auth/Auth.test.tsx +0 -63
  557. package/src/components/Auth/Auth.tsx +0 -216
  558. package/src/components/Auth/__snapshots__/Auth.test.tsx.snap +0 -199
  559. package/src/components/Avatar/Avatar.css +0 -151
  560. package/src/components/Avatar/Avatar.stories.tsx +0 -160
  561. package/src/components/Avatar/Avatar.test.tsx +0 -158
  562. package/src/components/Avatar/Avatar.tsx +0 -248
  563. package/src/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.tsx +0 -103
  564. package/src/components/Avatar/AvatarView/AvatarComponent/avatarComponent.tsx +0 -105
  565. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx +0 -338
  566. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/types.ts +0 -44
  567. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.ts +0 -1091
  568. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarPositionController.ts +0 -83
  569. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.ts +0 -301
  570. package/src/components/Avatar/AvatarView/AvatarComponent/components/controls.tsx +0 -100
  571. package/src/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.tsx +0 -152
  572. package/src/components/Avatar/AvatarView/AvatarComponent/components/loader.tsx +0 -31
  573. package/src/components/Avatar/AvatarView/AvatarComponent/constants.ts +0 -141
  574. package/src/components/Avatar/AvatarView/AvatarComponent/lights/Lights.tsx +0 -145
  575. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +0 -111
  576. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.tsx +0 -199
  577. package/src/components/Avatar/AvatarView/AvatarView.stories.tsx +0 -254
  578. package/src/components/Avatar/AvatarView/index.tsx +0 -194
  579. package/src/components/Avatar/AvatarView/utils/hideHands.ts +0 -11
  580. package/src/components/Avatar/AvatarView/utils/useEyeBlink.ts +0 -100
  581. package/src/components/Avatar/AvatarView/utils/useHeadMovement.ts +0 -72
  582. package/src/components/Avatar/AvatarView/utils/useLoadingMorphAnim.ts +0 -38
  583. package/src/components/Avatar/AvatarView/utils/useMouthAnimation.ts +0 -93
  584. package/src/components/Avatar/AvatarView/utils/useSmile.ts +0 -39
  585. package/src/components/Avatar/AvatarView/utils/utils.ts +0 -55
  586. package/src/components/Avatar/__snapshots__/Avatar.test.tsx.snap +0 -284
  587. package/src/components/Blob/Blob.css +0 -288
  588. package/src/components/Blob/Blob.stories.tsx +0 -53
  589. package/src/components/Blob/Blob.test.tsx +0 -18
  590. package/src/components/Blob/Blob.tsx +0 -26
  591. package/src/components/Blob/__snapshots__/Blob.test.tsx.snap +0 -80
  592. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.css +0 -40
  593. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.stories.tsx +0 -58
  594. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.test.tsx +0 -53
  595. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.tsx +0 -74
  596. package/src/components/BlockedMemoriBadge/__snapshots__/BlockedMemoriBadge.test.tsx.snap +0 -226
  597. package/src/components/ChangeMode/ChangeMode.css +0 -24
  598. package/src/components/ChangeMode/ChangeMode.stories.tsx +0 -50
  599. package/src/components/ChangeMode/ChangeMode.test.tsx +0 -24
  600. package/src/components/ChangeMode/ChangeMode.tsx +0 -52
  601. package/src/components/ChangeMode/__snapshots__/ChangeMode.test.tsx.snap +0 -77
  602. package/src/components/Chat/Chat.css +0 -402
  603. package/src/components/Chat/Chat.stories.tsx +0 -1687
  604. package/src/components/Chat/Chat.test.tsx +0 -381
  605. package/src/components/Chat/Chat.tsx +0 -779
  606. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +0 -10134
  607. package/src/components/ChatBubble/ChatBubble.css +0 -570
  608. package/src/components/ChatBubble/ChatBubble.stories.tsx +0 -1185
  609. package/src/components/ChatBubble/ChatBubble.test.tsx +0 -486
  610. package/src/components/ChatBubble/ChatBubble.tsx +0 -887
  611. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +0 -9849
  612. package/src/components/ChatHistoryDrawer/ChatHistory.css +0 -848
  613. package/src/components/ChatHistoryDrawer/ChatHistory.stories.tsx +0 -449
  614. package/src/components/ChatHistoryDrawer/ChatHistory.test.tsx +0 -116
  615. package/src/components/ChatHistoryDrawer/ChatHistory.tsx +0 -1295
  616. package/src/components/ChatHistoryDrawer/ChatResumeDrawer.css +0 -367
  617. package/src/components/ChatHistoryDrawer/ChatResumeDrawer.tsx +0 -295
  618. package/src/components/ChatHistoryDrawer/__snapshots__/ChatHistory.test.tsx.snap +0 -24
  619. package/src/components/ChatInputs/ChatInputs.css +0 -490
  620. package/src/components/ChatInputs/ChatInputs.stories.tsx +0 -254
  621. package/src/components/ChatInputs/ChatInputs.tsx +0 -510
  622. package/src/components/ChatTextArea/ChatTextArea.css +0 -233
  623. package/src/components/ChatTextArea/ChatTextArea.stories.tsx +0 -55
  624. package/src/components/ChatTextArea/ChatTextArea.test.tsx +0 -28
  625. package/src/components/ChatTextArea/ChatTextArea.tsx +0 -175
  626. package/src/components/ChatTextArea/__snapshots__/ChatTextArea.test.tsx.snap +0 -74
  627. package/src/components/CompletionProviderStatus/CompletionProviderStatus.css +0 -36
  628. package/src/components/CompletionProviderStatus/CompletionProviderStatus.stories.tsx +0 -296
  629. package/src/components/CompletionProviderStatus/CompletionProviderStatus.test.tsx +0 -31
  630. package/src/components/CompletionProviderStatus/CompletionProviderStatus.tsx +0 -230
  631. package/src/components/CompletionProviderStatus/__snapshots__/CompletionProviderStatus.test.tsx.snap +0 -111
  632. package/src/components/ContentPreviewModal/ContentPreviewModal.css +0 -173
  633. package/src/components/ContentPreviewModal/ContentPreviewModal.tsx +0 -71
  634. package/src/components/ContentPreviewModal/index.ts +0 -2
  635. package/src/components/CustomGLBModelViewer/ModelViewer.css +0 -11
  636. package/src/components/CustomGLBModelViewer/ModelViewer.stories.tsx +0 -58
  637. package/src/components/CustomGLBModelViewer/ModelViewer.test.tsx +0 -13
  638. package/src/components/CustomGLBModelViewer/ModelViewer.tsx +0 -37
  639. package/src/components/CustomGLBModelViewer/__snapshots__/ModelViewer.test.tsx.snap +0 -20
  640. package/src/components/DateSelector/DateSelector.css +0 -156
  641. package/src/components/DateSelector/DateSelector.stories.tsx +0 -47
  642. package/src/components/DateSelector/DateSelector.test.tsx +0 -149
  643. package/src/components/DateSelector/DateSelector.tsx +0 -258
  644. package/src/components/DateSelector/__snapshots__/DateSelector.test.tsx.snap +0 -1954
  645. package/src/components/DrawerFooter/DrawerFooter.css +0 -62
  646. package/src/components/DrawerFooter/DrawerFooter.tsx +0 -58
  647. package/src/components/ErrorBoundary/ErrorBoundary.tsx +0 -54
  648. package/src/components/ExpertsDrawer/ExpertsDrawer.css +0 -64
  649. package/src/components/ExpertsDrawer/ExpertsDrawer.stories.tsx +0 -54
  650. package/src/components/ExpertsDrawer/ExpertsDrawer.test.tsx +0 -53
  651. package/src/components/ExpertsDrawer/ExpertsDrawer.tsx +0 -72
  652. package/src/components/ExpertsDrawer/__snapshots__/ExpertsDrawer.test.tsx.snap +0 -10
  653. package/src/components/ExportHistoryButton/ExportHistoryButton.css +0 -22
  654. package/src/components/FeedbackButtons/FeedbackButtons.css +0 -109
  655. package/src/components/FeedbackButtons/FeedbackButtons.stories.tsx +0 -55
  656. package/src/components/FeedbackButtons/FeedbackButtons.test.tsx +0 -11
  657. package/src/components/FeedbackButtons/FeedbackButtons.tsx +0 -179
  658. package/src/components/FeedbackButtons/__snapshots__/FeedbackButtons.test.tsx.snap +0 -55
  659. package/src/components/FilePreview/FilePreview.css +0 -374
  660. package/src/components/FilePreview/FilePreview.stories.tsx +0 -66
  661. package/src/components/FilePreview/FilePreview.test.tsx +0 -26
  662. package/src/components/FilePreview/FilePreview.tsx +0 -286
  663. package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +0 -254
  664. package/src/components/Header/ChatConsumptionDropdown.test.tsx +0 -154
  665. package/src/components/Header/ChatConsumptionDropdown.tsx +0 -353
  666. package/src/components/Header/Header.css +0 -746
  667. package/src/components/Header/Header.stories.tsx +0 -404
  668. package/src/components/Header/Header.test.tsx +0 -399
  669. package/src/components/Header/Header.tsx +0 -1235
  670. package/src/components/Header/__snapshots__/Header.test.tsx.snap +0 -2016
  671. package/src/components/KnownFacts/KnownFacts.css +0 -58
  672. package/src/components/KnownFacts/KnownFacts.stories.tsx +0 -83
  673. package/src/components/KnownFacts/KnownFacts.test.tsx +0 -57
  674. package/src/components/KnownFacts/KnownFacts.tsx +0 -394
  675. package/src/components/KnownFacts/__snapshots__/KnownFacts.test.tsx.snap +0 -43
  676. package/src/components/LoginDrawer/LoginDrawer.css +0 -1741
  677. package/src/components/LoginDrawer/LoginDrawer.stories.tsx +0 -105
  678. package/src/components/LoginDrawer/LoginDrawer.test.tsx +0 -199
  679. package/src/components/LoginDrawer/LoginDrawer.tsx +0 -781
  680. package/src/components/LoginDrawer/__snapshots__/LoginDrawer.test.tsx.snap +0 -169
  681. package/src/components/MediaWidget/DocumentCard.test.tsx +0 -45
  682. package/src/components/MediaWidget/DocumentCard.tsx +0 -19
  683. package/src/components/MediaWidget/MediaItemWidget.css +0 -1444
  684. package/src/components/MediaWidget/MediaItemWidget.stories.tsx +0 -423
  685. package/src/components/MediaWidget/MediaItemWidget.test.tsx +0 -248
  686. package/src/components/MediaWidget/MediaItemWidget.tsx +0 -983
  687. package/src/components/MediaWidget/MediaItemWidget.types.ts +0 -65
  688. package/src/components/MediaWidget/MediaItemWidget.utils.test.ts +0 -367
  689. package/src/components/MediaWidget/MediaItemWidget.utils.ts +0 -227
  690. package/src/components/MediaWidget/MediaPreviewModal.test.tsx +0 -271
  691. package/src/components/MediaWidget/MediaPreviewModal.tsx +0 -425
  692. package/src/components/MediaWidget/MediaWidget.css +0 -131
  693. package/src/components/MediaWidget/MediaWidget.stories.tsx +0 -319
  694. package/src/components/MediaWidget/MediaWidget.test.tsx +0 -41
  695. package/src/components/MediaWidget/MediaWidget.tsx +0 -97
  696. package/src/components/MediaWidget/__snapshots__/DocumentCard.test.tsx.snap +0 -24
  697. package/src/components/MediaWidget/__snapshots__/MediaItemWidget.test.tsx.snap +0 -608
  698. package/src/components/MediaWidget/__snapshots__/MediaWidget.test.tsx.snap +0 -140
  699. package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +0 -265
  700. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +0 -159
  701. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +0 -240
  702. package/src/components/MemoriArtifactSystem/components/ArtifactActions/CopyButton.stories.tsx +0 -30
  703. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.tsx +0 -464
  704. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.tsx +0 -91
  705. package/src/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.ts +0 -620
  706. package/src/components/MemoriArtifactSystem/components/ArtifactActions/index.ts +0 -9
  707. package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +0 -500
  708. package/src/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.tsx +0 -90
  709. package/src/components/MemoriArtifactSystem/components/ArtifactActions/types.ts +0 -73
  710. package/src/components/MemoriArtifactSystem/components/ArtifactActions/utils/PDFExporter.ts +0 -454
  711. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +0 -1100
  712. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +0 -440
  713. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +0 -20
  714. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.tsx +0 -63
  715. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +0 -283
  716. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +0 -397
  717. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +0 -354
  718. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +0 -159
  719. package/src/components/MemoriArtifactSystem/context/ArtifactContext.tsx +0 -80
  720. package/src/components/MemoriArtifactSystem/types/artifact.types.ts +0 -18
  721. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.test.tsx +0 -308
  722. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.tsx +0 -384
  723. package/src/components/MemoriWidget/MemoriWidget.css +0 -165
  724. package/src/components/MemoriWidget/MemoriWidget.stories.tsx +0 -295
  725. package/src/components/MemoriWidget/MemoriWidget.tsx +0 -4059
  726. package/src/components/MicrophoneButton/MicrophoneButton.css +0 -194
  727. package/src/components/MicrophoneButton/MicrophoneButton.stories.tsx +0 -52
  728. package/src/components/MicrophoneButton/MicrophoneButton.tsx +0 -135
  729. package/src/components/MobileSessionPanel/MobileSessionPanel.css +0 -437
  730. package/src/components/MobileSessionPanel/MobileSessionPanel.tsx +0 -808
  731. package/src/components/PositionPopover/PositionPopover.css +0 -219
  732. package/src/components/PositionPopover/PositionPopover.stories.tsx +0 -37
  733. package/src/components/PositionPopover/PositionPopover.tsx +0 -367
  734. package/src/components/PoweredBy/PoweredBy.css +0 -57
  735. package/src/components/PoweredBy/PoweredBy.stories.tsx +0 -75
  736. package/src/components/PoweredBy/PoweredBy.test.tsx +0 -15
  737. package/src/components/PoweredBy/PoweredBy.tsx +0 -36
  738. package/src/components/PoweredBy/__snapshots__/PoweredBy.test.tsx.snap +0 -287
  739. package/src/components/SendOnEnterMenu/SendOnEnterMenu.css +0 -47
  740. package/src/components/SendOnEnterMenu/SendOnEnterMenu.stories.tsx +0 -58
  741. package/src/components/SendOnEnterMenu/SendOnEnterMenu.test.tsx +0 -17
  742. package/src/components/SendOnEnterMenu/SendOnEnterMenu.tsx +0 -48
  743. package/src/components/SendOnEnterMenu/__snapshots__/SendOnEnterMenu.test.tsx.snap +0 -105
  744. package/src/components/SettingsDrawer/SettingsDrawer.css +0 -24
  745. package/src/components/SettingsDrawer/SettingsDrawer.stories.tsx +0 -94
  746. package/src/components/SettingsDrawer/SettingsDrawer.test.tsx +0 -202
  747. package/src/components/SettingsDrawer/SettingsDrawer.tsx +0 -247
  748. package/src/components/SettingsDrawer/__snapshots__/SettingsDrawer.test.tsx.snap +0 -52
  749. package/src/components/ShareButton/ShareButton.css +0 -319
  750. package/src/components/ShareButton/ShareButton.stories.tsx +0 -103
  751. package/src/components/ShareButton/ShareButton.test.tsx +0 -53
  752. package/src/components/ShareButton/ShareButton.tsx +0 -749
  753. package/src/components/ShareButton/__snapshots__/ShareButton.test.tsx.snap +0 -739
  754. package/src/components/Snippet/Snippet.css +0 -178
  755. package/src/components/Snippet/Snippet.stories.tsx +0 -286
  756. package/src/components/Snippet/Snippet.test.tsx +0 -176
  757. package/src/components/Snippet/Snippet.tsx +0 -148
  758. package/src/components/Snippet/__snapshots__/Snippet.test.tsx.snap +0 -619
  759. package/src/components/StartPanel/StartPanel.css +0 -896
  760. package/src/components/StartPanel/StartPanel.stories.tsx +0 -394
  761. package/src/components/StartPanel/StartPanel.test.tsx +0 -371
  762. package/src/components/StartPanel/StartPanel.tsx +0 -745
  763. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +0 -3347
  764. package/src/components/Typing/Typing.stories.tsx +0 -130
  765. package/src/components/Typing/Typing.test.tsx +0 -62
  766. package/src/components/Typing/Typing.tsx +0 -232
  767. package/src/components/Typing/__snapshots__/Typing.test.tsx.snap +0 -173
  768. package/src/components/UploadButton/UploadButton.css +0 -573
  769. package/src/components/UploadButton/UploadButton.stories.tsx +0 -510
  770. package/src/components/UploadButton/UploadButton.test.tsx +0 -14
  771. package/src/components/UploadButton/UploadButton.tsx +0 -705
  772. package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +0 -585
  773. package/src/components/UploadButton/UploadImages/UploadImages.tsx +0 -554
  774. package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +0 -160
  775. package/src/components/VenueWidget/VenueWidget.css +0 -223
  776. package/src/components/VenueWidget/VenueWidget.stories.tsx +0 -69
  777. package/src/components/VenueWidget/VenueWidget.test.tsx +0 -49
  778. package/src/components/VenueWidget/VenueWidget.tsx +0 -578
  779. package/src/components/VenueWidget/__snapshots__/VenueWidget.test.tsx.snap +0 -776
  780. package/src/components/WhyThisAnswer/WhyThisAnswer.css +0 -171
  781. package/src/components/WhyThisAnswer/WhyThisAnswer.stories.tsx +0 -288
  782. package/src/components/WhyThisAnswer/WhyThisAnswer.test.tsx +0 -245
  783. package/src/components/WhyThisAnswer/WhyThisAnswer.tsx +0 -245
  784. package/src/components/WhyThisAnswer/__snapshots__/WhyThisAnswer.test.tsx.snap +0 -57
  785. package/src/components/icons/GasStation.tsx +0 -36
  786. package/src/components/layouts/Chat.test.tsx +0 -41
  787. package/src/components/layouts/Chat.tsx +0 -428
  788. package/src/components/layouts/FullBody/FullBody.stories.tsx +0 -110
  789. package/src/components/layouts/FullPage.test.tsx +0 -66
  790. package/src/components/layouts/FullPage.tsx +0 -382
  791. package/src/components/layouts/HiddenChat.test.tsx +0 -41
  792. package/src/components/layouts/HiddenChat.tsx +0 -366
  793. package/src/components/layouts/Totem/Totem.stories.tsx +0 -131
  794. package/src/components/layouts/Totem.test.tsx +0 -41
  795. package/src/components/layouts/Totem.tsx +0 -53
  796. package/src/components/layouts/WebsiteAssistant/WebsiteAssistant.stories.tsx +0 -115
  797. package/src/components/layouts/WebsiteAssistant/WebsiteAssistant.test.tsx +0 -43
  798. package/src/components/layouts/WebsiteAssistant/WebsiteAssistant.tsx +0 -194
  799. package/src/components/layouts/WebsiteAssistant/__snapshots__/WebsiteAssistant.test.tsx.snap +0 -80
  800. package/src/components/layouts/WebsiteAssistant/website-assistant.css +0 -793
  801. package/src/components/layouts/ZoomedFullBody/ZoomedFullBody.stories.tsx +0 -131
  802. package/src/components/layouts/ZoomedFullBody.test.tsx +0 -41
  803. package/src/components/layouts/ZoomedFullBody.tsx +0 -381
  804. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +0 -753
  805. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +0 -1487
  806. package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +0 -700
  807. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +0 -797
  808. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +0 -744
  809. package/src/components/layouts/chat.css +0 -658
  810. package/src/components/layouts/fullpage.css +0 -426
  811. package/src/components/layouts/hidden-chat.css +0 -636
  812. package/src/components/layouts/layouts.stories.tsx +0 -232
  813. package/src/components/layouts/totem.css +0 -230
  814. package/src/components/layouts/zoomed-full-body.css +0 -374
  815. package/src/context/visemeContext.tsx +0 -384
  816. package/src/context/widgetSurfaceContext.tsx +0 -14
  817. package/src/helpers/chatPdfExport.ts +0 -547
  818. package/src/helpers/configuration.ts +0 -42
  819. package/src/helpers/constants.ts +0 -244
  820. package/src/helpers/credits.ts +0 -54
  821. package/src/helpers/error.test.ts +0 -29
  822. package/src/helpers/error.ts +0 -278
  823. package/src/helpers/imageCompression.ts +0 -230
  824. package/src/helpers/llmUsage.ts +0 -328
  825. package/src/helpers/markedExtendedTables.js +0 -217
  826. package/src/helpers/media.test.ts +0 -133
  827. package/src/helpers/media.ts +0 -54
  828. package/src/helpers/message.test.ts +0 -126
  829. package/src/helpers/message.ts +0 -204
  830. package/src/helpers/nats/getNatsConfig.ts +0 -145
  831. package/src/helpers/nats/isSessionExpiredError.test.ts +0 -38
  832. package/src/helpers/nats/isSessionExpiredError.ts +0 -51
  833. package/src/helpers/nats/useNats.ts +0 -124
  834. package/src/helpers/nats/useNatsSession.ts +0 -394
  835. package/src/helpers/piiDetection.test.ts +0 -186
  836. package/src/helpers/piiDetection.ts +0 -91
  837. package/src/helpers/positionPopover.test.ts +0 -33
  838. package/src/helpers/positionPopover.ts +0 -13
  839. package/src/helpers/sanitizer.ts +0 -17
  840. package/src/helpers/statistics.ts +0 -58
  841. package/src/helpers/stt/useSTT.ts +0 -515
  842. package/src/helpers/translations.ts +0 -39
  843. package/src/helpers/tts/ttsVoiceUtility.ts +0 -275
  844. package/src/helpers/tts/useTTS.ts +0 -621
  845. package/src/helpers/usePressTooltip.ts +0 -29
  846. package/src/helpers/utils.test.ts +0 -321
  847. package/src/helpers/utils.ts +0 -588
  848. package/src/helpers/venue.ts +0 -36
  849. package/src/i18n.ts +0 -41
  850. package/src/icons/FacebookIcon.tsx +0 -23
  851. package/src/icons/LinkedinIcon.tsx +0 -23
  852. package/src/icons/MemoriIcon.tsx +0 -80
  853. package/src/icons/TelegramIcon.tsx +0 -19
  854. package/src/icons/TwitterIcon.tsx +0 -8
  855. package/src/icons/WhatsappIcon.tsx +0 -23
  856. package/src/icons/artifacts/DocumentIcon.tsx +0 -19
  857. package/src/icons/artifacts/HtmlIcon.tsx +0 -38
  858. package/src/icons/artifacts/JavascriptIcon.tsx +0 -19
  859. package/src/icons/artifacts/MarkdownIcon.tsx +0 -19
  860. package/src/icons/artifacts/PythonIcon.tsx +0 -17
  861. package/src/icons/artifacts/SvgIcon.tsx +0 -34
  862. package/src/icons/artifacts/XmlIcon.tsx +0 -34
  863. package/src/icons/artifacts/cssIcon.tsx +0 -34
  864. package/src/index.stories.tsx +0 -226
  865. package/src/index.test.tsx +0 -156
  866. package/src/index.tsx +0 -595
  867. package/src/locales/de.json +0 -738
  868. package/src/locales/en.json +0 -812
  869. package/src/locales/es.json +0 -739
  870. package/src/locales/fr.json +0 -740
  871. package/src/locales/it.json +0 -808
  872. package/src/mocks/data.ts +0 -790
  873. package/src/styles.css +0 -244
  874. package/src/testUtils.tsx +0 -42
  875. package/src/types/integration.test.ts +0 -32
  876. package/src/types/integration.ts +0 -31
  877. package/src/types/layout.ts +0 -50
  878. package/src/version.ts +0 -2
@@ -1,781 +0,0 @@
1
- import { User, Tenant } from '@memori.ai/memori-api-client/dist/types';
2
- import React, { useEffect, useRef, useState } from 'react';
3
- import {
4
- Button,
5
- Checkbox,
6
- Drawer,
7
- Input,
8
- useAlertManager,
9
- createAlertOptions,
10
- Card,
11
- Form,
12
- } from '@memori.ai/ui';
13
- import { useTranslation } from 'react-i18next';
14
- import { useWidgetSurfaceEl } from '../../context/widgetSurfaceContext';
15
- import cx from 'classnames';
16
- import memoriApiClient from '@memori.ai/memori-api-client';
17
- import { getErrori18nKey } from '../../helpers/error';
18
- import { mailRegEx, pwdRegEx } from '../../helpers/utils';
19
- import {
20
- AlertTriangle,
21
- ArrowLeftIcon,
22
- Check,
23
- RefreshCcwIcon,
24
- } from 'lucide-react';
25
-
26
- export interface Props {
27
- open?: boolean;
28
- onClose: () => void;
29
- user?: User;
30
- loginToken?: string;
31
- onLogin: (user: User, token: string) => void;
32
- onLogout: () => void;
33
- tenant: Tenant;
34
- apiClient: ReturnType<typeof memoriApiClient>;
35
- __TEST__signup?: boolean;
36
- __TEST__needMissingData?: boolean;
37
- setUser: (user: User) => void;
38
- /** Optional class for the drawer root (e.g. for z-index when layout is WEBSITE_ASSISTANT). */
39
- drawerClassName?: string;
40
- }
41
-
42
- const LoginDrawer = ({
43
- open = false,
44
- onClose,
45
- onLogin,
46
- user,
47
- loginToken,
48
- setUser,
49
- tenant,
50
- apiClient,
51
- __TEST__signup = false,
52
- __TEST__needMissingData = false,
53
- }: Props) => {
54
- const surfaceEl = useWidgetSurfaceEl();
55
- const { t, i18n } = useTranslation();
56
- const { add } = useAlertManager();
57
- const lang = i18n.language === 'it' ? 'it' : 'en';
58
-
59
- const {
60
- pwlUpdateUser,
61
- loginWithOTP,
62
- validateOTPCode,
63
- pwlGetCurrentUser,
64
- uploadAsset,
65
- } = apiClient.backend;
66
-
67
- const isUserLoggedIn = user?.userID && loginToken;
68
-
69
- const [loading, setLoading] = useState(false);
70
- const [error, setError] = useState<string | null>(null);
71
-
72
- // OTP-related state
73
- const [otpCode, setOtpCode] = useState<string>('');
74
- const [otpEmail, setOtpEmail] = useState<string>('');
75
- const [otpError, setOtpError] = useState<string | null>(null);
76
- const [showOtpForm, setShowOtpForm] = useState(true);
77
- const [showOtpCodeForm, setShowOtpCodeForm] = useState(false);
78
- const [otpTimer, setOtpTimer] = useState<number | null>(null);
79
- const [otpSent, setOtpSent] = useState(false);
80
- const [avatar, setAvatar] = useState<Blob | null>(null);
81
- const [isResending, setIsResending] = useState(false);
82
- const [otpSuccess, setOtpSuccess] = useState(false);
83
- const [emailValid, setEmailValid] = useState(false);
84
- const [otpFocusedIndex, setOtpFocusedIndex] = useState(0);
85
- const [birthDate, setBirthDate] = useState<string>('');
86
- const [isBirthDateFocused, setIsBirthDateFocused] = useState(false);
87
- const [isMobileViewport, setIsMobileViewport] = useState(false);
88
- const [tnCAndPPAccepted, setTnCAndPPAccepted] = useState(false);
89
- const [pAndCUAccepted, setPAndCUAccepted] = useState(false);
90
-
91
- const [showSignup, setShowSignup] = useState(__TEST__signup);
92
- const otpInputRefs = useRef<Array<HTMLInputElement | null>>([]);
93
- const [needsMissingData, setNeedsMissingData] = useState<{
94
- token: string;
95
- birthDate?: boolean;
96
- tnCAndPPAccepted?: boolean;
97
- }>(
98
- __TEST__needMissingData
99
- ? {
100
- token: 'token',
101
- birthDate: true,
102
- tnCAndPPAccepted: true,
103
- }
104
- : ({} as any)
105
- );
106
-
107
- // OTP timer effect
108
- useEffect(() => {
109
- let interval: NodeJS.Timeout;
110
- if (otpTimer && otpTimer > 0) {
111
- interval = setInterval(() => {
112
- setOtpTimer(prev => (prev && prev > 0 ? prev - 1 : 0));
113
- }, 1000);
114
- }
115
- return () => {
116
- if (interval) clearInterval(interval);
117
- };
118
- }, [otpTimer]);
119
-
120
- useEffect(() => {
121
- const mediaQuery = window.matchMedia('(max-width: 768px)');
122
- const onChange = () => setIsMobileViewport(mediaQuery.matches);
123
- onChange();
124
- mediaQuery.addEventListener('change', onChange);
125
- return () => mediaQuery.removeEventListener('change', onChange);
126
- }, []);
127
-
128
- // Send OTP to email
129
- const sendOtpToEmail = async (email: string, isResend = false) => {
130
- if (!email || !mailRegEx.test(email)) {
131
- setOtpError(t('login.emailInvalid'));
132
- return;
133
- }
134
-
135
- if (isResend) {
136
- setIsResending(true);
137
- } else {
138
- setLoading(true);
139
- }
140
- setOtpError(null);
141
-
142
- try {
143
- const response = await loginWithOTP({
144
- tenant: tenant.name,
145
- eMail: email.trim(),
146
- });
147
-
148
- if (response.resultCode === 0) {
149
- add(
150
- createAlertOptions({
151
- description: isResend ? t('login.otpResent') : t('login.otpSent'),
152
- severity: 'success',
153
- })
154
- );
155
- setOtpEmail(email.trim());
156
- setOtpSent(true);
157
- setShowOtpCodeForm(true);
158
- startOtpTimer();
159
- setOtpSuccess(false);
160
- } else {
161
- setOtpError(response.resultMessage || t('login.otpSendError'));
162
- }
163
- } catch (err) {
164
- console.error('[OTP SEND]', err);
165
- setOtpError(t('login.otpSendError'));
166
- } finally {
167
- setLoading(false);
168
- setIsResending(false);
169
- }
170
- };
171
-
172
- // Validate OTP code
173
- const validateOtp = async (otp: string) => {
174
- if (!otp || otp.length !== 4) {
175
- setOtpError(t('login.otpInvalidFormat'));
176
- return;
177
- }
178
-
179
- if (!otpEmail || otpEmail.trim().length === 0) {
180
- setOtpError(t('login.emailRequired'));
181
- return;
182
- }
183
-
184
- setLoading(true);
185
- setOtpError(null);
186
-
187
- try {
188
- const response = await validateOTPCode(
189
- otp,
190
- tenant.name,
191
- undefined,
192
- otpEmail.trim()
193
- );
194
-
195
- if (response.resultCode === 0) {
196
- setOtpSuccess(true);
197
- add(
198
- createAlertOptions({
199
- description: t('login.otpSuccess'),
200
- severity: 'success',
201
- })
202
- );
203
-
204
- // Add a small delay for better UX
205
- setTimeout(async () => {
206
- try {
207
- // Call the get user with the new token
208
- const { user, ...resp } = await pwlGetCurrentUser(
209
- response.newSessionToken
210
- );
211
-
212
- if (!user.age || !user.tnCAndPPAccepted) {
213
- setUser(user);
214
- setBirthDate(user?.birthDate ?? '');
215
- setTnCAndPPAccepted(user?.tnCAndPPAccepted ?? false);
216
- setPAndCUAccepted(user?.pAndCUAccepted ?? false);
217
- setNeedsMissingData({
218
- token: response.newSessionToken,
219
- birthDate: !user.age,
220
- tnCAndPPAccepted: !user.tnCAndPPAccepted,
221
- });
222
- } else {
223
- onLogin(user, response.newSessionToken);
224
- }
225
- } catch (err) {
226
- console.error('[GET USER]', err);
227
- add(
228
- createAlertOptions({
229
- description: t('login.userFetchError'),
230
- severity: 'error',
231
- })
232
- );
233
- }
234
- }, 1000);
235
-
236
- // Reset states
237
- setTimeout(() => {
238
- setShowOtpForm(false);
239
- setShowOtpCodeForm(false);
240
- setOtpCode('');
241
- setOtpEmail('');
242
- setOtpSent(false);
243
- setOtpSuccess(false);
244
- }, 2000);
245
- } else {
246
- // Handle specific error codes
247
- if (response.resultCode === -107) {
248
- setOtpError(t('login.otpNotFound'));
249
- } else if (response.resultCode === -108) {
250
- setOtpError(t('login.otpExpired'));
251
- } else if (response.resultCode === -109) {
252
- setOtpError(t('login.otpMissing'));
253
- } else {
254
- setOtpError(response.resultMessage || t('login.otpInvalid'));
255
- }
256
- }
257
- } catch (err) {
258
- console.error('[OTP VALIDATION]', err);
259
- setOtpError(t('login.otpError'));
260
- } finally {
261
- setLoading(false);
262
- }
263
- };
264
-
265
- useEffect(() => {
266
- if (showOtpCodeForm && !loading) {
267
- window.setTimeout(() => {
268
- otpInputRefs.current[0]?.focus();
269
- }, 50);
270
- }
271
- }, [showOtpCodeForm, loading]);
272
-
273
- const handleOtpDigitChange = (index: number, value: string) => {
274
- const digits = value.replace(/\D/g, '');
275
- const current = otpCode.padEnd(4, ' ').split('');
276
-
277
- if (!digits.length) {
278
- current[index] = ' ';
279
- setOtpCode(current.join('').replace(/\s/g, ''));
280
- setOtpError(null);
281
- return;
282
- }
283
-
284
- if (digits.length > 1) {
285
- const next = [...current];
286
- digits
287
- .slice(0, 4)
288
- .split('')
289
- .forEach((digit, i) => {
290
- if (index + i < 4) {
291
- next[index + i] = digit;
292
- }
293
- });
294
- const nextCode = next.join('').replace(/\s/g, '').slice(0, 4);
295
- setOtpCode(nextCode);
296
- setOtpError(null);
297
- const nextFocus = Math.min(index + digits.length, 3);
298
- otpInputRefs.current[nextFocus]?.focus();
299
- setOtpFocusedIndex(nextFocus);
300
- if (nextCode.length === 4 && otpEmail.trim().length > 0) {
301
- validateOtp(nextCode);
302
- }
303
- return;
304
- }
305
-
306
- current[index] = digits[0];
307
- const nextCode = current.join('').replace(/\s/g, '').slice(0, 4);
308
- setOtpCode(nextCode);
309
- setOtpError(null);
310
- if (nextCode.length === 4 && otpEmail.trim().length > 0) {
311
- validateOtp(nextCode);
312
- }
313
- if (index < 3) {
314
- otpInputRefs.current[index + 1]?.focus();
315
- setOtpFocusedIndex(index + 1);
316
- }
317
- };
318
-
319
- const handleOtpDigitKeyDown = (
320
- index: number,
321
- event: React.KeyboardEvent<HTMLInputElement>
322
- ) => {
323
- if (event.key === 'Backspace' && !otpCode[index] && index > 0) {
324
- otpInputRefs.current[index - 1]?.focus();
325
- setOtpFocusedIndex(index - 1);
326
- }
327
-
328
- if (event.key === 'ArrowLeft' && index > 0) {
329
- event.preventDefault();
330
- otpInputRefs.current[index - 1]?.focus();
331
- setOtpFocusedIndex(index - 1);
332
- }
333
-
334
- if (event.key === 'ArrowRight' && index < 3) {
335
- event.preventDefault();
336
- otpInputRefs.current[index + 1]?.focus();
337
- setOtpFocusedIndex(index + 1);
338
- }
339
- };
340
-
341
- const handleOtpDigitPaste = (
342
- index: number,
343
- event: React.ClipboardEvent<HTMLInputElement>
344
- ) => {
345
- const pasted = event.clipboardData.getData('text');
346
- const digits = pasted.replace(/\D/g, '').slice(0, 4);
347
-
348
- if (!digits.length) return;
349
-
350
- event.preventDefault();
351
-
352
- const current = otpCode.padEnd(4, ' ').split('');
353
- digits.split('').forEach((digit, i) => {
354
- if (index + i < 4) {
355
- current[index + i] = digit;
356
- }
357
- });
358
-
359
- const nextCode = current.join('').replace(/\s/g, '').slice(0, 4);
360
- setOtpCode(nextCode);
361
- setOtpError(null);
362
-
363
- const nextFocus = Math.min(index + digits.length, 3);
364
- otpInputRefs.current[nextFocus]?.focus();
365
- setOtpFocusedIndex(nextFocus);
366
-
367
- if (nextCode.length === 4 && otpEmail.trim().length > 0) {
368
- validateOtp(nextCode);
369
- }
370
- };
371
-
372
- // Handle email input change
373
- const handleEmailChange = (value: string) => {
374
- setOtpEmail(value);
375
- setOtpError(null);
376
- setEmailValid(mailRegEx.test(value));
377
- };
378
-
379
- // Handle resend OTP
380
- const handleResendOtp = () => {
381
- if (otpEmail && mailRegEx.test(otpEmail)) {
382
- sendOtpToEmail(otpEmail, true);
383
- }
384
- };
385
-
386
- // Start OTP timer
387
- const startOtpTimer = () => {
388
- setOtpTimer(60);
389
- };
390
-
391
- const updateMissingData = async (e: React.FormEvent<HTMLFormElement>) => {
392
- e.preventDefault();
393
-
394
- if (!user?.userID || !needsMissingData?.token) {
395
- setError(t('login.userNotFound'));
396
- return;
397
- }
398
- if (!birthDate || !tnCAndPPAccepted) {
399
- setError(t('missingData'));
400
- return;
401
- }
402
-
403
- let newUser: Partial<User> = {
404
- userID: user.userID,
405
- birthDate:
406
- user?.birthDate || !needsMissingData.birthDate ? undefined : birthDate,
407
- tnCAndPPAccepted: tnCAndPPAccepted || user?.tnCAndPPAccepted,
408
- tnCAndPPAcceptanceDate: tnCAndPPAccepted
409
- ? new Date().toISOString()
410
- : undefined,
411
- pAndCUAccepted: pAndCUAccepted || user?.pAndCUAccepted,
412
- pAndCUAcceptanceDate: pAndCUAccepted
413
- ? new Date().toISOString()
414
- : undefined,
415
- };
416
-
417
- const { user: patchedUser, ...resp } = await pwlUpdateUser(
418
- needsMissingData.token,
419
- user.userID,
420
- newUser
421
- );
422
- if (resp.resultCode !== 0) {
423
- console.error(resp);
424
- add(
425
- createAlertOptions({
426
- description: t(getErrori18nKey(resp.resultCode)),
427
- severity: 'error',
428
- })
429
- );
430
- setError(resp.resultMessage);
431
- } else {
432
- add(
433
- createAlertOptions({ description: t('success'), severity: 'success' })
434
- );
435
- onLogin(patchedUser || newUser, needsMissingData.token);
436
- }
437
- };
438
-
439
- return (
440
- <Drawer
441
- container={surfaceEl ?? undefined}
442
- open={open}
443
- onClose={onClose}
444
- className={cx('memori--login-drawer', {
445
- 'memori--login-drawer--logged': isUserLoggedIn,
446
- 'memori--login-drawer--signup': showSignup,
447
- })}
448
- size="lg"
449
- title={t('login.title')}
450
- >
451
- {needsMissingData?.token?.length ? (
452
- <div className="memori--login-drawer--missing-data">
453
- <h3>{t('login.missingData')}</h3>
454
- <p>{t('login.missingDataHelper')}</p>
455
-
456
- <Form
457
- name="updateMissingData"
458
- className="memori--login-drawer--form"
459
- onSubmit={updateMissingData}
460
- >
461
- {needsMissingData.birthDate && (
462
- <>
463
- <label htmlFor="#birthDate">
464
- {t('login.birthDate')}
465
- <Input
466
- id="birthDate"
467
- name="birthDate"
468
- type={
469
- isMobileViewport && !birthDate && !isBirthDateFocused
470
- ? 'text'
471
- : 'date'
472
- }
473
- required
474
- onChange={e => setBirthDate(e.target.value)}
475
- value={birthDate}
476
- placeholder={
477
- isMobileViewport
478
- ? t('login.birthDatePlaceholder') || 'DD/MM/YYYY'
479
- : undefined
480
- }
481
- onFocus={() => setIsBirthDateFocused(true)}
482
- onBlur={() => setIsBirthDateFocused(false)}
483
- autoComplete="bday"
484
- />
485
- </label>
486
- <p>
487
- <small>{t('login.birthDateHelper')}</small>
488
- </p>
489
- </>
490
- )}
491
-
492
- {needsMissingData?.tnCAndPPAccepted && (
493
- <>
494
- <label className="memori-checkbox">
495
- <span className="memori-checkbox--input-wrapper">
496
- <Checkbox
497
- name="tnCAndPPAccepted"
498
- checked={tnCAndPPAccepted}
499
- onChange={checked => setTnCAndPPAccepted(checked)}
500
- />
501
- </span>
502
- <span className="memori-checkbox--text">
503
- {t('login.privacyLabel')}{' '}
504
- <a
505
- href={`https://memori.ai/${lang}/privacy_and_cookie`}
506
- target="_blank"
507
- rel="noopener noreferrer"
508
- >
509
- {t('login.privacyAndCookiePolicy')}
510
- </a>{' '}
511
- {t('login.and')}{' '}
512
- <a
513
- href={`https://memori.ai/${lang}/tos`}
514
- target="_blank"
515
- rel="noopener noreferrer"
516
- >
517
- {t('login.termsOfService')}
518
- </a>
519
- </span>
520
- </label>
521
-
522
- <label className="memori-checkbox">
523
- <span className="memori-checkbox--input-wrapper">
524
- <Checkbox
525
- name="pAndCUAccepted"
526
- checked={pAndCUAccepted}
527
- onChange={checked => setPAndCUAccepted(checked)}
528
- />
529
- </span>
530
- <span className="memori-checkbox--text">
531
- {t('login.pAndCUAccepted')}{' '}
532
- <small>
533
- <em>({t('login.optional')})</em>
534
- </small>
535
- </span>
536
- </label>
537
- <p>
538
- <small>{t('login.goToAccountToChangeYourPreferences')}</small>
539
- </p>
540
- <p>
541
- <small>{t('login.deepThoughtExplaination')}</small>
542
- </p>
543
- </>
544
- )}
545
-
546
- {error && (
547
- <p className="memori--login-drawer--inline-error">{error}</p>
548
- )}
549
-
550
- <Button type="submit" variant="primary" loading={loading}>
551
- {t('login.save')}
552
- </Button>
553
- </Form>
554
- </div>
555
- ) : showOtpCodeForm ? (
556
- <>
557
- <Card
558
- className="memori--login-drawer--otp-card memori--login-drawer--otp-card--code"
559
- variant="flat"
560
- padding="md"
561
- title={
562
- otpSuccess ? (
563
- <span className="memori--login-drawer--otp-card-title">
564
- <span
565
- className="memori--login-drawer--otp-icon"
566
- aria-hidden="true"
567
- >
568
- <Check className="icon" />
569
- </span>
570
- {t('login.otpTitle')}
571
- </span>
572
- ) : (
573
- t('login.otpTitle')
574
- )
575
- }
576
- description={
577
- otpSuccess
578
- ? t('login.otpSuccessMessage')
579
- : t('login.otpCodeDescription', { email: otpEmail })
580
- }
581
- >
582
- {!otpSuccess && (
583
- <div
584
- className={cx(
585
- 'memori--login-drawer--otp-form memori--login-drawer--otp-form--code',
586
- { loading }
587
- )}
588
- >
589
- <fieldset
590
- className="memori--login-drawer--otp-label"
591
- aria-describedby="otp-help"
592
- >
593
- <legend
594
- className="memori--login-drawer--otp-label-text"
595
- style={{ textAlign: 'center' }}
596
- >
597
- {t('login.otpCode')}
598
- </legend>
599
- <div className="memori--login-drawer--otp-segmented-inputs">
600
- {[0, 1, 2, 3].map(index => (
601
- <Input
602
- key={index}
603
- id={index === 0 ? 'otp-code' : `otp-code-${index}`}
604
- name={`otp-code-${index}`}
605
- aria-label={`${t('login.otpCode')} ${index + 1} / 4`}
606
- type="text"
607
- inputMode="numeric"
608
- pattern="[0-9]*"
609
- enterKeyHint={index === 3 ? 'done' : 'next'}
610
- autoComplete={index === 0 ? 'one-time-code' : 'off'}
611
- spellCheck={false}
612
- className={cx('memori--login-drawer--otp-digit-input', {
613
- active: otpFocusedIndex === index,
614
- success: otpCode.length === 4 && !otpError,
615
- error: otpError,
616
- loading: loading,
617
- })}
618
- value={otpCode[index] || ''}
619
- onChange={e =>
620
- handleOtpDigitChange(index, e.target.value)
621
- }
622
- onFocus={() => setOtpFocusedIndex(index)}
623
- onKeyDown={e => handleOtpDigitKeyDown(index, e)}
624
- onPaste={e => handleOtpDigitPaste(index, e)}
625
- maxLength={1}
626
- required
627
- disabled={loading}
628
- ref={el => {
629
- otpInputRefs.current[index] = el;
630
- }}
631
- />
632
- ))}
633
- </div>
634
- <p id="otp-help" className="sr-only">
635
- {t('login.otpCodeDescription', { email: otpEmail })}
636
- </p>
637
- </fieldset>
638
- </div>
639
- )}
640
-
641
- {otpTimer && otpTimer > 0 && !otpSuccess && (
642
- <div className="memori--login-drawer--otp-timer">
643
- {/* <span className="memori--login-drawer--otp-timer-icon">⏱️</span> */}
644
- <span>{t('login.otpTimer', { seconds: otpTimer })}</span>
645
- </div>
646
- )}
647
-
648
- {!otpSuccess && (
649
- <div className="memori--login-drawer--otp-actions">
650
- <Button
651
- variant="ghost"
652
- onClick={() => {
653
- setShowOtpCodeForm(false);
654
- setOtpCode('');
655
- setOtpError(null);
656
- }}
657
- disabled={loading}
658
- icon={<ArrowLeftIcon className="icon" />}
659
- >
660
- {t('login.backToEmail')}
661
- </Button>
662
-
663
- <Button
664
- variant="ghost"
665
- onClick={handleResendOtp}
666
- disabled={
667
- loading ||
668
- isResending ||
669
- (otpTimer && otpTimer > 0) ||
670
- !otpEmail
671
- }
672
- loading={isResending}
673
- icon={<RefreshCcwIcon className="icon" />}
674
- >
675
- {isResending ? t('login.resending') : t('login.resendOtp')}
676
- </Button>
677
- </div>
678
- )}
679
- {otpError && (
680
- <div role="alert" className="memori--login-drawer--otp-error">
681
- <span
682
- className="memori--login-drawer--otp-error-icon"
683
- aria-hidden="true"
684
- >
685
- <AlertTriangle className="icon" />
686
- </span>
687
- <span>{otpError}</span>
688
- </div>
689
- )}
690
- </Card>
691
- </>
692
- ) : showOtpForm ? (
693
- <>
694
- <Card
695
- className="memori--login-drawer--otp-card"
696
- variant="flat"
697
- padding="md"
698
- title={
699
- <h3 className="memori--login-drawer--otp-card-heading">
700
- {t('login.otpEmailTitle')}
701
- </h3>
702
- }
703
- description={t('login.otpEmailDescription')}
704
- >
705
- <p id="email-help" className="sr-only">
706
- {t('login.otpEmailDescription')}
707
- </p>
708
- <div className={cx('memori--login-drawer--otp-form', { loading })}>
709
- <label
710
- htmlFor="otp-email"
711
- className="memori--login-drawer--otp-label"
712
- >
713
- <span className="memori--login-drawer--otp-label-text">
714
- {t('login.email')}
715
- </span>
716
- <div className="memori--login-drawer--otp-input-container">
717
- <Input
718
- id="otp-email"
719
- name="email"
720
- type="email"
721
- className={cx('memori--login-drawer--otp-email-input', {
722
- error: otpError && !mailRegEx.test(otpEmail),
723
- valid: emailValid && !otpError,
724
- loading: loading,
725
- })}
726
- value={otpEmail}
727
- onChange={e => handleEmailChange(e.target.value)}
728
- placeholder={
729
- t('login.emailPlaceholder') || 'Enter your email…'
730
- }
731
- autoComplete="email"
732
- spellCheck={false}
733
- required
734
- disabled={loading}
735
- aria-describedby="email-help"
736
- />
737
- {emailValid && !loading && (
738
- <div
739
- className="memori--login-drawer--otp-valid-icon"
740
- aria-hidden="true"
741
- >
742
- <Check className="icon" />
743
- </div>
744
- )}
745
- </div>
746
- </label>
747
- </div>
748
-
749
- <div className="memori--login-drawer--otp-actions memori--login-drawer--otp-actions-primary">
750
- <Button
751
- variant="primary"
752
- onClick={() => {
753
- sendOtpToEmail(otpEmail);
754
- }}
755
- disabled={loading || !emailValid}
756
- loading={loading}
757
- size="lg"
758
- >
759
- {t('login.sendOtp')}
760
- </Button>
761
- </div>
762
-
763
- {otpError && (
764
- <div role="alert" className="memori--login-drawer--otp-error">
765
- <span
766
- className="memori--login-drawer--otp-error-icon"
767
- aria-hidden="true"
768
- >
769
- <AlertTriangle className="icon" size={24} />
770
- </span>
771
- <span>{otpError}</span>
772
- </div>
773
- )}
774
- </Card>
775
- </>
776
- ) : null}
777
- </Drawer>
778
- );
779
- };
780
-
781
- export default LoginDrawer;