@memori.ai/memori-react 8.45.1 → 8.45.4

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 (511) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/components/Chat/Chat.js +4 -1
  3. package/dist/components/Chat/Chat.js.map +1 -1
  4. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +4 -1
  5. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +7 -57
  6. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  7. package/dist/components/IconButton/IconButton.d.ts +1 -1
  8. package/dist/components/MemoriWidget/MemoriWidget.d.ts +1 -1
  9. package/dist/components/MemoriWidget/MemoriWidget.js +2 -1
  10. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  11. package/dist/components/PositionPopover/PositionPopover.js +38 -25
  12. package/dist/components/PositionPopover/PositionPopover.js.map +1 -1
  13. package/dist/components/UploadButton/UploadButton.js +3 -0
  14. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  15. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +14 -2
  16. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  17. package/dist/components/layouts/chat.css +27 -4
  18. package/dist/context/widgetSurfaceContext.js +2 -2
  19. package/dist/context/widgetSurfaceContext.js.map +1 -1
  20. package/dist/helpers/constants.d.ts +3 -2
  21. package/dist/helpers/constants.js +19 -20
  22. package/dist/helpers/constants.js.map +1 -1
  23. package/dist/helpers/positionPopover.d.ts +2 -1
  24. package/dist/helpers/positionPopover.js +12 -3
  25. package/dist/helpers/positionPopover.js.map +1 -1
  26. package/dist/helpers/tts/muteSpeaker.js +4 -3
  27. package/dist/helpers/tts/muteSpeaker.js.map +1 -1
  28. package/dist/helpers/usePressTooltip.js +2 -1
  29. package/dist/helpers/usePressTooltip.js.map +1 -1
  30. package/dist/helpers/utils.d.ts +2 -1
  31. package/dist/helpers/utils.js +7 -1
  32. package/dist/helpers/utils.js.map +1 -1
  33. package/dist/icons/MemoriIcon.js +1 -1
  34. package/dist/icons/MemoriIcon.js.map +1 -1
  35. package/dist/styles.css +1 -2
  36. package/dist/version.d.ts +1 -1
  37. package/dist/version.js +1 -1
  38. package/esm/components/Chat/Chat.js +4 -1
  39. package/esm/components/Chat/Chat.js.map +1 -1
  40. package/esm/components/MemoriWidget/MemoriWidget.d.ts +1 -1
  41. package/esm/components/MemoriWidget/MemoriWidget.js +2 -1
  42. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  43. package/esm/components/UploadButton/UploadButton.js +4 -1
  44. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  45. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +16 -4
  46. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  47. package/esm/components/layouts/chat.css +27 -4
  48. package/esm/helpers/constants.d.ts +3 -2
  49. package/esm/helpers/constants.js +18 -19
  50. package/esm/helpers/constants.js.map +1 -1
  51. package/esm/helpers/utils.d.ts +2 -1
  52. package/esm/helpers/utils.js +6 -1
  53. package/esm/helpers/utils.js.map +1 -1
  54. package/esm/styles.css +1 -2
  55. package/esm/version.d.ts +1 -1
  56. package/esm/version.js +1 -1
  57. package/package.json +6 -7
  58. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.d.ts +0 -3
  59. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js +0 -64
  60. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js.map +0 -1
  61. package/dist/testUtils.d.ts +0 -5
  62. package/dist/testUtils.js +0 -18
  63. package/dist/testUtils.js.map +0 -1
  64. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.d.ts +0 -3
  65. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js +0 -62
  66. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js.map +0 -1
  67. package/src/I18nWrapper.tsx +0 -13
  68. package/src/__snapshots__/index.test.tsx.snap +0 -96
  69. package/src/components/AgeVerificationModal/AgeVerificationModal.css +0 -95
  70. package/src/components/AgeVerificationModal/AgeVerificationModal.stories.tsx +0 -46
  71. package/src/components/AgeVerificationModal/AgeVerificationModal.test.tsx +0 -33
  72. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +0 -99
  73. package/src/components/AgeVerificationModal/__snapshots__/AgeVerificationModal.test.tsx.snap +0 -19
  74. package/src/components/Auth/Auth.css +0 -57
  75. package/src/components/Auth/Auth.stories.tsx +0 -90
  76. package/src/components/Auth/Auth.test.tsx +0 -63
  77. package/src/components/Auth/Auth.tsx +0 -201
  78. package/src/components/Auth/__snapshots__/Auth.test.tsx.snap +0 -143
  79. package/src/components/Avatar/Avatar.css +0 -151
  80. package/src/components/Avatar/Avatar.stories.tsx +0 -160
  81. package/src/components/Avatar/Avatar.test.tsx +0 -158
  82. package/src/components/Avatar/Avatar.tsx +0 -245
  83. package/src/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.tsx +0 -103
  84. package/src/components/Avatar/AvatarView/AvatarComponent/avatarComponent.tsx +0 -105
  85. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx +0 -338
  86. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/types.ts +0 -44
  87. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.ts +0 -1091
  88. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarPositionController.ts +0 -83
  89. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.ts +0 -301
  90. package/src/components/Avatar/AvatarView/AvatarComponent/components/controls.tsx +0 -100
  91. package/src/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.tsx +0 -152
  92. package/src/components/Avatar/AvatarView/AvatarComponent/components/loader.tsx +0 -31
  93. package/src/components/Avatar/AvatarView/AvatarComponent/constants.ts +0 -141
  94. package/src/components/Avatar/AvatarView/AvatarComponent/lights/Lights.tsx +0 -145
  95. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +0 -111
  96. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.tsx +0 -201
  97. package/src/components/Avatar/AvatarView/AvatarView.stories.tsx +0 -254
  98. package/src/components/Avatar/AvatarView/index.tsx +0 -194
  99. package/src/components/Avatar/AvatarView/utils/hideHands.ts +0 -11
  100. package/src/components/Avatar/AvatarView/utils/useEyeBlink.ts +0 -100
  101. package/src/components/Avatar/AvatarView/utils/useHeadMovement.ts +0 -72
  102. package/src/components/Avatar/AvatarView/utils/useLoadingMorphAnim.ts +0 -38
  103. package/src/components/Avatar/AvatarView/utils/useMouthAnimation.ts +0 -93
  104. package/src/components/Avatar/AvatarView/utils/useSmile.ts +0 -39
  105. package/src/components/Avatar/AvatarView/utils/utils.ts +0 -55
  106. package/src/components/Avatar/__snapshots__/Avatar.test.tsx.snap +0 -246
  107. package/src/components/Blob/Blob.css +0 -286
  108. package/src/components/Blob/Blob.stories.tsx +0 -53
  109. package/src/components/Blob/Blob.test.tsx +0 -18
  110. package/src/components/Blob/Blob.tsx +0 -26
  111. package/src/components/Blob/__snapshots__/Blob.test.tsx.snap +0 -80
  112. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.css +0 -40
  113. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.stories.tsx +0 -58
  114. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.test.tsx +0 -53
  115. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.tsx +0 -74
  116. package/src/components/BlockedMemoriBadge/__snapshots__/BlockedMemoriBadge.test.tsx.snap +0 -181
  117. package/src/components/ChangeMode/ChangeMode.css +0 -22
  118. package/src/components/ChangeMode/ChangeMode.stories.tsx +0 -50
  119. package/src/components/ChangeMode/ChangeMode.test.tsx +0 -24
  120. package/src/components/ChangeMode/ChangeMode.tsx +0 -51
  121. package/src/components/ChangeMode/__snapshots__/ChangeMode.test.tsx.snap +0 -107
  122. package/src/components/Chat/Chat.css +0 -285
  123. package/src/components/Chat/Chat.stories.tsx +0 -1684
  124. package/src/components/Chat/Chat.test.tsx +0 -372
  125. package/src/components/Chat/Chat.tsx +0 -778
  126. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +0 -6816
  127. package/src/components/ChatBubble/ChatBubble.css +0 -430
  128. package/src/components/ChatBubble/ChatBubble.stories.tsx +0 -1192
  129. package/src/components/ChatBubble/ChatBubble.test.tsx +0 -481
  130. package/src/components/ChatBubble/ChatBubble.tsx +0 -776
  131. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +0 -8734
  132. package/src/components/ChatHistoryDrawer/ChatHistory.css +0 -587
  133. package/src/components/ChatHistoryDrawer/ChatHistory.stories.tsx +0 -410
  134. package/src/components/ChatHistoryDrawer/ChatHistory.test.tsx +0 -107
  135. package/src/components/ChatHistoryDrawer/ChatHistory.tsx +0 -1298
  136. package/src/components/ChatHistoryDrawer/__snapshots__/ChatHistory.test.tsx.snap +0 -27
  137. package/src/components/ChatInputs/ChatInputs.css +0 -340
  138. package/src/components/ChatInputs/ChatInputs.stories.tsx +0 -251
  139. package/src/components/ChatInputs/ChatInputs.tsx +0 -487
  140. package/src/components/ChatTextArea/ChatTextArea.css +0 -185
  141. package/src/components/ChatTextArea/ChatTextArea.stories.tsx +0 -55
  142. package/src/components/ChatTextArea/ChatTextArea.test.tsx +0 -28
  143. package/src/components/ChatTextArea/ChatTextArea.tsx +0 -171
  144. package/src/components/ChatTextArea/__snapshots__/ChatTextArea.test.tsx.snap +0 -68
  145. package/src/components/CompletionProviderStatus/CompletionProviderStatus.css +0 -36
  146. package/src/components/CompletionProviderStatus/CompletionProviderStatus.stories.tsx +0 -296
  147. package/src/components/CompletionProviderStatus/CompletionProviderStatus.test.tsx +0 -31
  148. package/src/components/CompletionProviderStatus/CompletionProviderStatus.tsx +0 -232
  149. package/src/components/CompletionProviderStatus/__snapshots__/CompletionProviderStatus.test.tsx.snap +0 -96
  150. package/src/components/ContentPreviewModal/ContentPreviewModal.css +0 -128
  151. package/src/components/ContentPreviewModal/ContentPreviewModal.tsx +0 -67
  152. package/src/components/ContentPreviewModal/index.ts +0 -2
  153. package/src/components/CustomGLBModelViewer/ModelViewer.css +0 -11
  154. package/src/components/CustomGLBModelViewer/ModelViewer.stories.tsx +0 -58
  155. package/src/components/CustomGLBModelViewer/ModelViewer.test.tsx +0 -13
  156. package/src/components/CustomGLBModelViewer/ModelViewer.tsx +0 -37
  157. package/src/components/CustomGLBModelViewer/__snapshots__/ModelViewer.test.tsx.snap +0 -20
  158. package/src/components/DateSelector/DateSelector.css +0 -158
  159. package/src/components/DateSelector/DateSelector.stories.tsx +0 -47
  160. package/src/components/DateSelector/DateSelector.test.tsx +0 -149
  161. package/src/components/DateSelector/DateSelector.tsx +0 -251
  162. package/src/components/DateSelector/__snapshots__/DateSelector.test.tsx.snap +0 -1954
  163. package/src/components/ErrorBoundary/ErrorBoundary.tsx +0 -54
  164. package/src/components/ExpertsDrawer/ExpertsDrawer.css +0 -67
  165. package/src/components/ExpertsDrawer/ExpertsDrawer.stories.tsx +0 -54
  166. package/src/components/ExpertsDrawer/ExpertsDrawer.test.tsx +0 -53
  167. package/src/components/ExpertsDrawer/ExpertsDrawer.tsx +0 -69
  168. package/src/components/ExpertsDrawer/__snapshots__/ExpertsDrawer.test.tsx.snap +0 -11
  169. package/src/components/ExportHistoryButton/ExportHistoryButton.css +0 -22
  170. package/src/components/FeedbackButtons/FeedbackButtons.css +0 -107
  171. package/src/components/FeedbackButtons/FeedbackButtons.stories.tsx +0 -52
  172. package/src/components/FeedbackButtons/FeedbackButtons.test.tsx +0 -11
  173. package/src/components/FeedbackButtons/FeedbackButtons.tsx +0 -152
  174. package/src/components/FeedbackButtons/__snapshots__/FeedbackButtons.test.tsx.snap +0 -42
  175. package/src/components/FilePreview/FilePreview.css +0 -358
  176. package/src/components/FilePreview/FilePreview.stories.tsx +0 -63
  177. package/src/components/FilePreview/FilePreview.test.tsx +0 -26
  178. package/src/components/FilePreview/FilePreview.tsx +0 -277
  179. package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +0 -185
  180. package/src/components/Header/ChatConsumptionDropdown.test.tsx +0 -117
  181. package/src/components/Header/ChatConsumptionDropdown.tsx +0 -275
  182. package/src/components/Header/Header.css +0 -282
  183. package/src/components/Header/Header.stories.tsx +0 -338
  184. package/src/components/Header/Header.test.tsx +0 -371
  185. package/src/components/Header/Header.tsx +0 -442
  186. package/src/components/Header/__snapshots__/Header.test.tsx.snap +0 -964
  187. package/src/components/KnownFacts/KnownFacts.css +0 -19
  188. package/src/components/KnownFacts/KnownFacts.stories.tsx +0 -80
  189. package/src/components/KnownFacts/KnownFacts.test.tsx +0 -57
  190. package/src/components/KnownFacts/KnownFacts.tsx +0 -376
  191. package/src/components/KnownFacts/__snapshots__/KnownFacts.test.tsx.snap +0 -19
  192. package/src/components/LoginDrawer/LoginDrawer.css +0 -1616
  193. package/src/components/LoginDrawer/LoginDrawer.stories.tsx +0 -102
  194. package/src/components/LoginDrawer/LoginDrawer.test.tsx +0 -199
  195. package/src/components/LoginDrawer/LoginDrawer.tsx +0 -600
  196. package/src/components/LoginDrawer/__snapshots__/LoginDrawer.test.tsx.snap +0 -91
  197. package/src/components/MediaWidget/DocumentCard.test.tsx +0 -45
  198. package/src/components/MediaWidget/DocumentCard.tsx +0 -19
  199. package/src/components/MediaWidget/MediaItemWidget.css +0 -1398
  200. package/src/components/MediaWidget/MediaItemWidget.stories.tsx +0 -423
  201. package/src/components/MediaWidget/MediaItemWidget.test.tsx +0 -248
  202. package/src/components/MediaWidget/MediaItemWidget.tsx +0 -997
  203. package/src/components/MediaWidget/MediaItemWidget.types.ts +0 -65
  204. package/src/components/MediaWidget/MediaItemWidget.utils.test.ts +0 -367
  205. package/src/components/MediaWidget/MediaItemWidget.utils.ts +0 -227
  206. package/src/components/MediaWidget/MediaPreviewModal.test.tsx +0 -271
  207. package/src/components/MediaWidget/MediaPreviewModal.tsx +0 -425
  208. package/src/components/MediaWidget/MediaWidget.css +0 -131
  209. package/src/components/MediaWidget/MediaWidget.stories.tsx +0 -319
  210. package/src/components/MediaWidget/MediaWidget.test.tsx +0 -41
  211. package/src/components/MediaWidget/MediaWidget.tsx +0 -107
  212. package/src/components/MediaWidget/__snapshots__/DocumentCard.test.tsx.snap +0 -24
  213. package/src/components/MediaWidget/__snapshots__/MediaItemWidget.test.tsx.snap +0 -791
  214. package/src/components/MediaWidget/__snapshots__/MediaWidget.test.tsx.snap +0 -154
  215. package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +0 -2299
  216. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +0 -163
  217. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +0 -250
  218. package/src/components/MemoriArtifactSystem/components/ArtifactActions/CopyButton.stories.tsx +0 -30
  219. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.tsx +0 -467
  220. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.tsx +0 -89
  221. package/src/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.ts +0 -619
  222. package/src/components/MemoriArtifactSystem/components/ArtifactActions/index.ts +0 -9
  223. package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +0 -489
  224. package/src/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.tsx +0 -90
  225. package/src/components/MemoriArtifactSystem/components/ArtifactActions/types.ts +0 -73
  226. package/src/components/MemoriArtifactSystem/components/ArtifactActions/utils/PDFExporter.ts +0 -454
  227. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +0 -1059
  228. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +0 -431
  229. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +0 -150
  230. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.tsx +0 -79
  231. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +0 -253
  232. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +0 -561
  233. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +0 -355
  234. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +0 -160
  235. package/src/components/MemoriArtifactSystem/context/ArtifactContext.tsx +0 -167
  236. package/src/components/MemoriArtifactSystem/types/artifact.types.ts +0 -35
  237. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.test.tsx +0 -308
  238. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.tsx +0 -379
  239. package/src/components/MemoriArtifactSystem/utils/applyEdits.test.ts +0 -85
  240. package/src/components/MemoriArtifactSystem/utils/applyEdits.ts +0 -173
  241. package/src/components/MemoriWidget/MemoriWidget.css +0 -220
  242. package/src/components/MemoriWidget/MemoriWidget.stories.tsx +0 -274
  243. package/src/components/MemoriWidget/MemoriWidget.tsx +0 -3930
  244. package/src/components/MicrophoneButton/MicrophoneButton.css +0 -142
  245. package/src/components/MicrophoneButton/MicrophoneButton.stories.tsx +0 -52
  246. package/src/components/MicrophoneButton/MicrophoneButton.tsx +0 -128
  247. package/src/components/PositionDrawer/PositionDrawer.stories.tsx +0 -51
  248. package/src/components/PositionDrawer/PositionDrawer.test.tsx +0 -39
  249. package/src/components/PositionDrawer/PositionDrawer.tsx +0 -50
  250. package/src/components/PositionDrawer/__snapshots__/PositionDrawer.test.tsx.snap +0 -17
  251. package/src/components/PoweredBy/PoweredBy.css +0 -47
  252. package/src/components/PoweredBy/PoweredBy.stories.tsx +0 -75
  253. package/src/components/PoweredBy/PoweredBy.test.tsx +0 -15
  254. package/src/components/PoweredBy/PoweredBy.tsx +0 -44
  255. package/src/components/PoweredBy/__snapshots__/PoweredBy.test.tsx.snap +0 -55
  256. package/src/components/SendOnEnterMenu/SendOnEnterMenu.css +0 -47
  257. package/src/components/SendOnEnterMenu/SendOnEnterMenu.stories.tsx +0 -58
  258. package/src/components/SendOnEnterMenu/SendOnEnterMenu.test.tsx +0 -17
  259. package/src/components/SendOnEnterMenu/SendOnEnterMenu.tsx +0 -82
  260. package/src/components/SendOnEnterMenu/__snapshots__/SendOnEnterMenu.test.tsx.snap +0 -57
  261. package/src/components/SettingsDrawer/SettingsDrawer.css +0 -24
  262. package/src/components/SettingsDrawer/SettingsDrawer.stories.tsx +0 -94
  263. package/src/components/SettingsDrawer/SettingsDrawer.test.tsx +0 -202
  264. package/src/components/SettingsDrawer/SettingsDrawer.tsx +0 -255
  265. package/src/components/SettingsDrawer/__snapshots__/SettingsDrawer.test.tsx.snap +0 -59
  266. package/src/components/ShareButton/ShareButton.css +0 -73
  267. package/src/components/ShareButton/ShareButton.stories.tsx +0 -98
  268. package/src/components/ShareButton/ShareButton.test.tsx +0 -53
  269. package/src/components/ShareButton/ShareButton.tsx +0 -395
  270. package/src/components/ShareButton/__snapshots__/ShareButton.test.tsx.snap +0 -316
  271. package/src/components/Snippet/Snippet.css +0 -142
  272. package/src/components/Snippet/Snippet.stories.tsx +0 -286
  273. package/src/components/Snippet/Snippet.test.tsx +0 -176
  274. package/src/components/Snippet/Snippet.tsx +0 -148
  275. package/src/components/Snippet/__snapshots__/Snippet.test.tsx.snap +0 -603
  276. package/src/components/StartPanel/StartPanel.css +0 -273
  277. package/src/components/StartPanel/StartPanel.stories.tsx +0 -404
  278. package/src/components/StartPanel/StartPanel.test.tsx +0 -360
  279. package/src/components/StartPanel/StartPanel.tsx +0 -426
  280. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +0 -1986
  281. package/src/components/Typing/Typing.stories.tsx +0 -130
  282. package/src/components/Typing/Typing.test.tsx +0 -62
  283. package/src/components/Typing/Typing.tsx +0 -154
  284. package/src/components/Typing/__snapshots__/Typing.test.tsx.snap +0 -133
  285. package/src/components/UploadButton/UploadButton.css +0 -542
  286. package/src/components/UploadButton/UploadButton.stories.tsx +0 -376
  287. package/src/components/UploadButton/UploadButton.test.tsx +0 -11
  288. package/src/components/UploadButton/UploadButton.tsx +0 -684
  289. package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +0 -405
  290. package/src/components/UploadButton/UploadImages/UploadImages.tsx +0 -538
  291. package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +0 -165
  292. package/src/components/VenueWidget/VenueWidget.css +0 -163
  293. package/src/components/VenueWidget/VenueWidget.stories.tsx +0 -66
  294. package/src/components/VenueWidget/VenueWidget.test.tsx +0 -49
  295. package/src/components/VenueWidget/VenueWidget.tsx +0 -458
  296. package/src/components/VenueWidget/__snapshots__/VenueWidget.test.tsx.snap +0 -370
  297. package/src/components/WhyThisAnswer/WhyThisAnswer.css +0 -171
  298. package/src/components/WhyThisAnswer/WhyThisAnswer.stories.tsx +0 -285
  299. package/src/components/WhyThisAnswer/WhyThisAnswer.test.tsx +0 -245
  300. package/src/components/WhyThisAnswer/WhyThisAnswer.tsx +0 -233
  301. package/src/components/WhyThisAnswer/__snapshots__/WhyThisAnswer.test.tsx.snap +0 -27
  302. package/src/components/icons/AI.tsx +0 -34
  303. package/src/components/icons/Alert.tsx +0 -31
  304. package/src/components/icons/ArrowUp.tsx +0 -28
  305. package/src/components/icons/Bug.tsx +0 -81
  306. package/src/components/icons/Chat.tsx +0 -30
  307. package/src/components/icons/ChevronDown.tsx +0 -26
  308. package/src/components/icons/ChevronLeft.tsx +0 -28
  309. package/src/components/icons/ChevronRight.tsx +0 -28
  310. package/src/components/icons/ChevronUp.tsx +0 -24
  311. package/src/components/icons/Clear.tsx +0 -23
  312. package/src/components/icons/Close.tsx +0 -30
  313. package/src/components/icons/Code.tsx +0 -24
  314. package/src/components/icons/Copy.tsx +0 -23
  315. package/src/components/icons/DeepThought.tsx +0 -38
  316. package/src/components/icons/Delete.tsx +0 -23
  317. package/src/components/icons/Document.tsx +0 -50
  318. package/src/components/icons/Download.tsx +0 -23
  319. package/src/components/icons/Edit.tsx +0 -17
  320. package/src/components/icons/Expand.tsx +0 -23
  321. package/src/components/icons/Eye.tsx +0 -17
  322. package/src/components/icons/EyeInvisible.tsx +0 -24
  323. package/src/components/icons/Facebook.tsx +0 -23
  324. package/src/components/icons/Feedback.tsx +0 -24
  325. package/src/components/icons/File.tsx +0 -17
  326. package/src/components/icons/FileExcel.tsx +0 -23
  327. package/src/components/icons/FilePdf.tsx +0 -23
  328. package/src/components/icons/FileWord.tsx +0 -23
  329. package/src/components/icons/Fullscreen.tsx +0 -23
  330. package/src/components/icons/FullscreenExit.tsx +0 -23
  331. package/src/components/icons/GasStation.tsx +0 -36
  332. package/src/components/icons/Group.tsx +0 -30
  333. package/src/components/icons/History.tsx +0 -33
  334. package/src/components/icons/Image.tsx +0 -37
  335. package/src/components/icons/Info.tsx +0 -31
  336. package/src/components/icons/Link.tsx +0 -17
  337. package/src/components/icons/Linkedin.tsx +0 -23
  338. package/src/components/icons/Loading.tsx +0 -28
  339. package/src/components/icons/Logout.tsx +0 -27
  340. package/src/components/icons/Mail.tsx +0 -17
  341. package/src/components/icons/MapMarker.tsx +0 -26
  342. package/src/components/icons/MenuHorizontal.tsx +0 -29
  343. package/src/components/icons/MenuVertical.tsx +0 -29
  344. package/src/components/icons/Message.tsx +0 -23
  345. package/src/components/icons/Microphone.tsx +0 -23
  346. package/src/components/icons/Minus.tsx +0 -23
  347. package/src/components/icons/MinusCircle.tsx +0 -24
  348. package/src/components/icons/PaperClip.tsx +0 -23
  349. package/src/components/icons/Picture.tsx +0 -23
  350. package/src/components/icons/Plus.tsx +0 -18
  351. package/src/components/icons/Preview.tsx +0 -29
  352. package/src/components/icons/Print.tsx +0 -38
  353. package/src/components/icons/QuestionHelp.tsx +0 -30
  354. package/src/components/icons/Refresh.tsx +0 -30
  355. package/src/components/icons/SelectIcon.tsx +0 -28
  356. package/src/components/icons/Send.tsx +0 -17
  357. package/src/components/icons/Setting.tsx +0 -23
  358. package/src/components/icons/Share.tsx +0 -23
  359. package/src/components/icons/Sound.tsx +0 -23
  360. package/src/components/icons/SoundDeactivated.tsx +0 -27
  361. package/src/components/icons/Telegram.tsx +0 -26
  362. package/src/components/icons/ThumbDown.tsx +0 -29
  363. package/src/components/icons/ThumbUp.tsx +0 -29
  364. package/src/components/icons/Translation.tsx +0 -24
  365. package/src/components/icons/Twitter.tsx +0 -23
  366. package/src/components/icons/Upload.tsx +0 -34
  367. package/src/components/icons/User.tsx +0 -17
  368. package/src/components/icons/Warning.tsx +0 -24
  369. package/src/components/icons/WhatsApp.tsx +0 -24
  370. package/src/components/icons/icons.stories.css +0 -5
  371. package/src/components/icons/icons.stories.tsx +0 -81
  372. package/src/components/icons/loading.css +0 -14
  373. package/src/components/layouts/Chat.test.tsx +0 -40
  374. package/src/components/layouts/Chat.tsx +0 -69
  375. package/src/components/layouts/FullBody/FullBody.stories.tsx +0 -110
  376. package/src/components/layouts/FullPage.test.tsx +0 -65
  377. package/src/components/layouts/FullPage.tsx +0 -80
  378. package/src/components/layouts/HiddenChat.test.tsx +0 -40
  379. package/src/components/layouts/HiddenChat.tsx +0 -233
  380. package/src/components/layouts/Totem/Totem.stories.tsx +0 -131
  381. package/src/components/layouts/Totem.test.tsx +0 -40
  382. package/src/components/layouts/Totem.tsx +0 -49
  383. package/src/components/layouts/WebsiteAssistant.test.tsx +0 -40
  384. package/src/components/layouts/WebsiteAssistant.tsx +0 -132
  385. package/src/components/layouts/ZoomedFullBody/ZoomedFullBody.stories.tsx +0 -131
  386. package/src/components/layouts/ZoomedFullBody.test.tsx +0 -40
  387. package/src/components/layouts/ZoomedFullBody.tsx +0 -81
  388. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +0 -457
  389. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +0 -1045
  390. package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +0 -460
  391. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +0 -566
  392. package/src/components/layouts/__snapshots__/WebsiteAssistant.test.tsx.snap +0 -59
  393. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +0 -523
  394. package/src/components/layouts/chat.css +0 -451
  395. package/src/components/layouts/hidden-chat.css +0 -276
  396. package/src/components/layouts/layouts.stories.tsx +0 -231
  397. package/src/components/layouts/totem.css +0 -221
  398. package/src/components/layouts/website-assistant.css +0 -677
  399. package/src/components/layouts/zoomed-full-body.css +0 -18
  400. package/src/components/ui/Alert.css +0 -93
  401. package/src/components/ui/Alert.stories.tsx +0 -137
  402. package/src/components/ui/Alert.test.tsx +0 -129
  403. package/src/components/ui/Alert.tsx +0 -123
  404. package/src/components/ui/Button.css +0 -167
  405. package/src/components/ui/Button.stories.tsx +0 -156
  406. package/src/components/ui/Button.test.tsx +0 -74
  407. package/src/components/ui/Button.tsx +0 -107
  408. package/src/components/ui/Card.css +0 -65
  409. package/src/components/ui/Card.stories.tsx +0 -95
  410. package/src/components/ui/Card.test.tsx +0 -47
  411. package/src/components/ui/Card.tsx +0 -48
  412. package/src/components/ui/Checkbox.css +0 -116
  413. package/src/components/ui/Checkbox.stories.tsx +0 -74
  414. package/src/components/ui/Checkbox.test.tsx +0 -28
  415. package/src/components/ui/Checkbox.tsx +0 -58
  416. package/src/components/ui/ConfirmDialog.css +0 -42
  417. package/src/components/ui/ConfirmDialog.stories.tsx +0 -216
  418. package/src/components/ui/ConfirmDialog.test.tsx +0 -124
  419. package/src/components/ui/ConfirmDialog.tsx +0 -58
  420. package/src/components/ui/Details.css +0 -66
  421. package/src/components/ui/Drawer.css +0 -270
  422. package/src/components/ui/Drawer.stories.tsx +0 -267
  423. package/src/components/ui/Drawer.test.tsx +0 -130
  424. package/src/components/ui/Drawer.tsx +0 -293
  425. package/src/components/ui/Dropdown.css +0 -173
  426. package/src/components/ui/Dropdown.tsx +0 -63
  427. package/src/components/ui/Expandable.css +0 -15
  428. package/src/components/ui/Expandable.stories.tsx +0 -180
  429. package/src/components/ui/Expandable.test.tsx +0 -107
  430. package/src/components/ui/Expandable.tsx +0 -121
  431. package/src/components/ui/Modal.css +0 -98
  432. package/src/components/ui/Modal.stories.tsx +0 -171
  433. package/src/components/ui/Modal.test.tsx +0 -111
  434. package/src/components/ui/Modal.tsx +0 -117
  435. package/src/components/ui/Select.css +0 -138
  436. package/src/components/ui/Select.stories.tsx +0 -79
  437. package/src/components/ui/Select.test.tsx +0 -84
  438. package/src/components/ui/Select.tsx +0 -79
  439. package/src/components/ui/Slider.css +0 -192
  440. package/src/components/ui/Slider.stories.tsx +0 -63
  441. package/src/components/ui/Slider.tsx +0 -142
  442. package/src/components/ui/Spin.css +0 -31
  443. package/src/components/ui/Spin.stories.tsx +0 -64
  444. package/src/components/ui/Spin.test.tsx +0 -41
  445. package/src/components/ui/Spin.tsx +0 -31
  446. package/src/components/ui/Table.css +0 -132
  447. package/src/components/ui/Tooltip.css +0 -171
  448. package/src/components/ui/Tooltip.stories.tsx +0 -109
  449. package/src/components/ui/Tooltip.test.tsx +0 -102
  450. package/src/components/ui/Tooltip.tsx +0 -163
  451. package/src/components/ui/__snapshots__/Alert.test.tsx.snap +0 -59
  452. package/src/components/ui/__snapshots__/Button.test.tsx.snap +0 -204
  453. package/src/components/ui/__snapshots__/Card.test.tsx.snap +0 -321
  454. package/src/components/ui/__snapshots__/Checkbox.test.tsx.snap +0 -131
  455. package/src/components/ui/__snapshots__/ConfirmDialog.test.tsx.snap +0 -35
  456. package/src/components/ui/__snapshots__/Drawer.test.tsx.snap +0 -67
  457. package/src/components/ui/__snapshots__/Expandable.test.tsx.snap +0 -159
  458. package/src/components/ui/__snapshots__/Modal.test.tsx.snap +0 -59
  459. package/src/components/ui/__snapshots__/Select.test.tsx.snap +0 -254
  460. package/src/components/ui/__snapshots__/Spin.test.tsx.snap +0 -193
  461. package/src/components/ui/__snapshots__/Tooltip.test.tsx.snap +0 -113
  462. package/src/components/ui/definitions.stories.tsx +0 -139
  463. package/src/context/visemeContext.tsx +0 -384
  464. package/src/helpers/chatPdfExport.ts +0 -544
  465. package/src/helpers/configuration.ts +0 -42
  466. package/src/helpers/constants.ts +0 -267
  467. package/src/helpers/convertDocument.test.ts +0 -67
  468. package/src/helpers/convertDocument.ts +0 -35
  469. package/src/helpers/credits.ts +0 -54
  470. package/src/helpers/error.test.ts +0 -29
  471. package/src/helpers/error.ts +0 -278
  472. package/src/helpers/imageCompression.ts +0 -230
  473. package/src/helpers/llmUsage.ts +0 -328
  474. package/src/helpers/markedExtendedTables.js +0 -217
  475. package/src/helpers/media.test.ts +0 -169
  476. package/src/helpers/media.ts +0 -81
  477. package/src/helpers/message.test.ts +0 -126
  478. package/src/helpers/message.ts +0 -219
  479. package/src/helpers/nats/getNatsConfig.ts +0 -148
  480. package/src/helpers/nats/isSessionExpiredError.test.ts +0 -38
  481. package/src/helpers/nats/isSessionExpiredError.ts +0 -51
  482. package/src/helpers/nats/useNats.test.tsx +0 -81
  483. package/src/helpers/nats/useNats.ts +0 -204
  484. package/src/helpers/nats/useNatsSession.test.ts +0 -16
  485. package/src/helpers/nats/useNatsSession.ts +0 -460
  486. package/src/helpers/piiDetection.test.ts +0 -186
  487. package/src/helpers/piiDetection.ts +0 -91
  488. package/src/helpers/sanitizer.ts +0 -17
  489. package/src/helpers/statistics.ts +0 -58
  490. package/src/helpers/stt/useSTT.ts +0 -515
  491. package/src/helpers/translations.ts +0 -39
  492. package/src/helpers/tts/ttsVoiceUtility.ts +0 -275
  493. package/src/helpers/tts/useTTS.ts +0 -621
  494. package/src/helpers/utils.test.ts +0 -321
  495. package/src/helpers/utils.ts +0 -586
  496. package/src/helpers/venue.ts +0 -36
  497. package/src/i18n.ts +0 -39
  498. package/src/index.stories.tsx +0 -220
  499. package/src/index.test.tsx +0 -156
  500. package/src/index.tsx +0 -592
  501. package/src/locales/de.json +0 -680
  502. package/src/locales/en.json +0 -754
  503. package/src/locales/es.json +0 -682
  504. package/src/locales/fr.json +0 -682
  505. package/src/locales/it.json +0 -750
  506. package/src/mocks/data.ts +0 -790
  507. package/src/styles.css +0 -126
  508. package/src/types/integration.test.ts +0 -32
  509. package/src/types/integration.ts +0 -31
  510. package/src/types/layout.ts +0 -50
  511. package/src/version.ts +0 -2
@@ -1,600 +0,0 @@
1
- import { User, Tenant } from '@memori.ai/memori-api-client/dist/types';
2
- import React, { useEffect, useState } from 'react';
3
- import Button from '../ui/Button';
4
- import Drawer from '../ui/Drawer';
5
- import toast from 'react-hot-toast';
6
- import { useTranslation } from 'react-i18next';
7
- import cx from 'classnames';
8
- import memoriApiClient from '@memori.ai/memori-api-client';
9
- import { getErrori18nKey } from '../../helpers/error';
10
- import { mailRegEx, pwdRegEx } from '../../helpers/utils';
11
-
12
- export interface Props {
13
- open?: boolean;
14
- onClose: () => void;
15
- user?: User;
16
- loginToken?: string;
17
- onLogin: (user: User, token: string) => void;
18
- onLogout: () => void;
19
- tenant: Tenant;
20
- apiClient: ReturnType<typeof memoriApiClient>;
21
- __TEST__signup?: boolean;
22
- __TEST__needMissingData?: boolean;
23
- setUser: (user: User) => void;
24
- /** Optional class for the drawer root (e.g. for z-index when layout is WEBSITE_ASSISTANT). */
25
- drawerClassName?: string;
26
- }
27
-
28
- const LoginDrawer = ({
29
- open = false,
30
- onClose,
31
- onLogin,
32
- user,
33
- loginToken,
34
- setUser,
35
- tenant,
36
- apiClient,
37
- __TEST__signup = false,
38
- __TEST__needMissingData = false,
39
- drawerClassName,
40
- }: Props) => {
41
- const { t, i18n } = useTranslation();
42
- const lang = i18n.language === 'it' ? 'it' : 'en';
43
-
44
- const {
45
- pwlUpdateUser,
46
- loginWithOTP,
47
- validateOTPCode,
48
- pwlGetCurrentUser,
49
- uploadAsset,
50
- } = apiClient.backend;
51
-
52
- const isUserLoggedIn = user?.userID && loginToken;
53
-
54
- const [loading, setLoading] = useState(false);
55
- const [error, setError] = useState<string | null>(null);
56
-
57
- // OTP-related state
58
- const [otpCode, setOtpCode] = useState<string>('');
59
- const [otpEmail, setOtpEmail] = useState<string>('');
60
- const [otpError, setOtpError] = useState<string | null>(null);
61
- const [showOtpForm, setShowOtpForm] = useState(true);
62
- const [showOtpCodeForm, setShowOtpCodeForm] = useState(false);
63
- const [otpTimer, setOtpTimer] = useState<number | null>(null);
64
- const [otpSent, setOtpSent] = useState(false);
65
- const [avatar, setAvatar] = useState<Blob | null>(null);
66
- const [isResending, setIsResending] = useState(false);
67
- const [otpSuccess, setOtpSuccess] = useState(false);
68
- const [emailValid, setEmailValid] = useState(false);
69
- const [birthDate, setBirthDate] = useState<string>('');
70
- const [tnCAndPPAccepted, setTnCAndPPAccepted] = useState(false);
71
- const [pAndCUAccepted, setPAndCUAccepted] = useState(false);
72
-
73
- const [showSignup, setShowSignup] = useState(__TEST__signup);
74
- const [needsMissingData, setNeedsMissingData] = useState<{
75
- token: string;
76
- birthDate?: boolean;
77
- tnCAndPPAccepted?: boolean;
78
- }>(
79
- __TEST__needMissingData
80
- ? {
81
- token: 'token',
82
- birthDate: true,
83
- tnCAndPPAccepted: true,
84
- }
85
- : ({} as any)
86
- );
87
-
88
- // OTP timer effect
89
- useEffect(() => {
90
- let interval: NodeJS.Timeout;
91
- if (otpTimer && otpTimer > 0) {
92
- interval = setInterval(() => {
93
- setOtpTimer(prev => (prev && prev > 0 ? prev - 1 : 0));
94
- }, 1000);
95
- }
96
- return () => {
97
- if (interval) clearInterval(interval);
98
- };
99
- }, [otpTimer]);
100
-
101
- // Send OTP to email
102
- const sendOtpToEmail = async (email: string, isResend = false) => {
103
- if (!email || !mailRegEx.test(email)) {
104
- setOtpError(t('login.emailInvalid'));
105
- return;
106
- }
107
-
108
- if (isResend) {
109
- setIsResending(true);
110
- } else {
111
- setLoading(true);
112
- }
113
- setOtpError(null);
114
-
115
- try {
116
- const response = await loginWithOTP({
117
- tenant: tenant.name,
118
- eMail: email.trim(),
119
- });
120
-
121
- if (response.resultCode === 0) {
122
- toast.success(isResend ? t('login.otpResent') : t('login.otpSent'));
123
- setOtpEmail(email.trim());
124
- setOtpSent(true);
125
- setShowOtpCodeForm(true);
126
- startOtpTimer();
127
- setOtpSuccess(false);
128
- } else {
129
- setOtpError(response.resultMessage || t('login.otpSendError'));
130
- }
131
- } catch (err) {
132
- console.error('[OTP SEND]', err);
133
- setOtpError(t('login.otpSendError'));
134
- } finally {
135
- setLoading(false);
136
- setIsResending(false);
137
- }
138
- };
139
-
140
- // Validate OTP code
141
- const validateOtp = async (otp: string) => {
142
- if (!otp || otp.length !== 4) {
143
- setOtpError(t('login.otpInvalidFormat'));
144
- return;
145
- }
146
-
147
- if (!otpEmail || otpEmail.trim().length === 0) {
148
- setOtpError(t('login.emailRequired'));
149
- return;
150
- }
151
-
152
- setLoading(true);
153
- setOtpError(null);
154
-
155
- try {
156
- const response = await validateOTPCode(
157
- otp,
158
- tenant.name,
159
- undefined,
160
- otpEmail.trim()
161
- );
162
-
163
- if (response.resultCode === 0) {
164
- setOtpSuccess(true);
165
- toast.success(t('login.otpSuccess'));
166
-
167
- // Add a small delay for better UX
168
- setTimeout(async () => {
169
- try {
170
- // Call the get user with the new token
171
- const { user, ...resp } = await pwlGetCurrentUser(
172
- response.newSessionToken
173
- );
174
-
175
- if (!user.age || !user.tnCAndPPAccepted) {
176
- setUser(user);
177
- setBirthDate(user?.birthDate ?? '');
178
- setTnCAndPPAccepted(user?.tnCAndPPAccepted ?? false);
179
- setPAndCUAccepted(user?.pAndCUAccepted ?? false);
180
- setNeedsMissingData({
181
- token: response.newSessionToken,
182
- birthDate: !user.age,
183
- tnCAndPPAccepted: !user.tnCAndPPAccepted,
184
- });
185
- } else {
186
- onLogin(user, response.newSessionToken);
187
- }
188
- } catch (err) {
189
- console.error('[GET USER]', err);
190
- toast.error(t('login.userFetchError'));
191
- }
192
- }, 1000);
193
-
194
- // Reset states
195
- setTimeout(() => {
196
- setShowOtpForm(false);
197
- setShowOtpCodeForm(false);
198
- setOtpCode('');
199
- setOtpEmail('');
200
- setOtpSent(false);
201
- setOtpSuccess(false);
202
- }, 2000);
203
- } else {
204
- // Handle specific error codes
205
- if (response.resultCode === -107) {
206
- setOtpError(t('login.otpNotFound'));
207
- } else if (response.resultCode === -108) {
208
- setOtpError(t('login.otpExpired'));
209
- } else if (response.resultCode === -109) {
210
- setOtpError(t('login.otpMissing'));
211
- } else {
212
- setOtpError(response.resultMessage || t('login.otpInvalid'));
213
- }
214
- }
215
- } catch (err) {
216
- console.error('[OTP VALIDATION]', err);
217
- setOtpError(t('login.otpError'));
218
- } finally {
219
- setLoading(false);
220
- }
221
- };
222
-
223
- // Handle OTP input change
224
- const handleOtpChange = (value: string) => {
225
- const numericValue = value.replace(/\D/g, '').slice(0, 4);
226
- setOtpCode(numericValue);
227
- setOtpError(null);
228
-
229
- if (numericValue.length === 4 && otpEmail.trim().length > 0) {
230
- validateOtp(numericValue);
231
- }
232
- };
233
-
234
- // Handle email input change
235
- const handleEmailChange = (value: string) => {
236
- setOtpEmail(value);
237
- setOtpError(null);
238
- setEmailValid(mailRegEx.test(value));
239
- };
240
-
241
- // Handle resend OTP
242
- const handleResendOtp = () => {
243
- if (otpEmail && mailRegEx.test(otpEmail)) {
244
- sendOtpToEmail(otpEmail, true);
245
- }
246
- };
247
-
248
- // Start OTP timer
249
- const startOtpTimer = () => {
250
- setOtpTimer(60);
251
- };
252
-
253
- const updateMissingData = async (e: React.FormEvent<HTMLFormElement>) => {
254
- e.preventDefault();
255
-
256
- if (!user?.userID || !needsMissingData?.token) {
257
- setError(t('login.userNotFound'));
258
- return;
259
- }
260
- if (!birthDate || !tnCAndPPAccepted) {
261
- setError(t('missingData'));
262
- return;
263
- }
264
-
265
- let newUser: Partial<User> = {
266
- userID: user.userID,
267
- birthDate:
268
- user?.birthDate || !needsMissingData.birthDate ? undefined : birthDate,
269
- tnCAndPPAccepted: tnCAndPPAccepted || user?.tnCAndPPAccepted,
270
- tnCAndPPAcceptanceDate: tnCAndPPAccepted
271
- ? new Date().toISOString()
272
- : undefined,
273
- pAndCUAccepted: pAndCUAccepted || user?.pAndCUAccepted,
274
- pAndCUAcceptanceDate: pAndCUAccepted
275
- ? new Date().toISOString()
276
- : undefined,
277
- };
278
-
279
- const { user: patchedUser, ...resp } = await pwlUpdateUser(
280
- needsMissingData.token,
281
- user.userID,
282
- newUser
283
- );
284
- if (resp.resultCode !== 0) {
285
- console.error(resp);
286
- toast.error(t(getErrori18nKey(resp.resultCode)));
287
- setError(resp.resultMessage);
288
- } else {
289
- toast.success(t('success'));
290
- onLogin(patchedUser || newUser, needsMissingData.token);
291
- }
292
- };
293
-
294
- return (
295
- <Drawer
296
- open={open}
297
- onClose={onClose}
298
- className={cx('memori--login-drawer', {
299
- 'memori--login-drawer--logged': isUserLoggedIn,
300
- 'memori--login-drawer--signup': showSignup,
301
- }, drawerClassName)}
302
- >
303
- {needsMissingData?.token?.length ? (
304
- <>
305
- <h3>{t('login.missingData')}</h3>
306
- <p>{t('login.missingDataHelper')}</p>
307
-
308
- <form
309
- className="memori--login-drawer--form"
310
- onSubmit={updateMissingData}
311
- >
312
- {needsMissingData.birthDate && (
313
- <>
314
- <label htmlFor="#birthDate">
315
- {t('login.birthDate')}
316
- <input
317
- id="birthDate"
318
- name="birthDate"
319
- type="date"
320
- required
321
- onChange={e => setBirthDate(e.target.value)}
322
- value={birthDate}
323
- autoComplete="bday"
324
- />
325
- </label>
326
- <p>
327
- <small>{t('login.birthDateHelper')}</small>
328
- </p>
329
- </>
330
- )}
331
-
332
- {needsMissingData?.tnCAndPPAccepted && (
333
- <>
334
- <label className="memori-checkbox">
335
- <span className="memori-checkbox--input-wrapper">
336
- <input
337
- type="checkbox"
338
- name="tnCAndPPAccepted"
339
- className="memori-checkbox--input"
340
- onChange={e => setTnCAndPPAccepted(e.target.checked)}
341
- checked={tnCAndPPAccepted}
342
- />
343
- <span className="memori-checkbox--inner" />
344
- </span>
345
- <span className="memori-checkbox--text">
346
- {t('login.privacyLabel')}{' '}
347
- <a
348
- href={`https://memori.ai/${lang}/privacy_and_cookie`}
349
- target="_blank"
350
- rel="noopener noreferrer"
351
- >
352
- {t('login.privacyAndCookiePolicy')}
353
- </a>{' '}
354
- {t('login.and')}{' '}
355
- <a
356
- href={`https://memori.ai/${lang}/tos`}
357
- target="_blank"
358
- rel="noopener noreferrer"
359
- >
360
- {t('login.termsOfService')}
361
- </a>
362
- </span>
363
- </label>
364
-
365
- <label className="memori-checkbox">
366
- <span className="memori-checkbox--input-wrapper">
367
- <input
368
- type="checkbox"
369
- name="pAndCUAccepted"
370
- onChange={e => setPAndCUAccepted(e.target.checked)}
371
- checked={pAndCUAccepted}
372
- className="memori-checkbox--input"
373
- />
374
- <span className="memori-checkbox--inner" />
375
- </span>
376
- <span className="memori-checkbox--text">
377
- {t('login.pAndCUAccepted')}{' '}
378
- <small>
379
- <em>({t('login.optional')})</em>
380
- </small>
381
- </span>
382
- </label>
383
- <p>
384
- <small>{t('login.goToAccountToChangeYourPreferences')}</small>
385
- </p>
386
- <p>
387
- <small>{t('login.deepThoughtExplaination')}</small>
388
- </p>
389
- </>
390
- )}
391
-
392
- {error && (
393
- <p className="memori--login-drawer--inline-error">{error}</p>
394
- )}
395
-
396
- <Button htmlType="submit" primary loading={loading}>
397
- {t('login.save')}
398
- </Button>
399
- </form>
400
- </>
401
- ) : showOtpCodeForm ? (
402
- <>
403
- <div className="memori--login-drawer--otp-container">
404
- <div className="memori--login-drawer--otp-header">
405
- {otpSuccess && (
406
- <div className="memori--login-drawer--otp-icon">✅</div>
407
- )}
408
- <h3>{t('login.otpTitle')}</h3>
409
- <p className="memori--login-drawer--otp-description">
410
- {otpSuccess
411
- ? t('login.otpSuccessMessage')
412
- : t('login.otpCodeDescription', { email: otpEmail })}
413
- </p>
414
- </div>
415
-
416
- {!otpSuccess && (
417
- <div
418
- className={cx('memori--login-drawer--otp-form', { loading })}
419
- >
420
- <label
421
- htmlFor="otp-code"
422
- className="memori--login-drawer--otp-label"
423
- >
424
- <span
425
- className="memori--login-drawer--otp-label-text"
426
- style={{ textAlign: 'center' }}
427
- >
428
- {t('login.otpCode')}
429
- </span>
430
- <div className="memori--login-drawer--otp-input-container">
431
- <input
432
- id="otp-code"
433
- type="text"
434
- className={cx('memori--login-drawer--otp-input', {
435
- success: otpCode.length === 4 && !otpError,
436
- error: otpError,
437
- loading: loading,
438
- })}
439
- value={otpCode}
440
- onChange={e => handleOtpChange(e.target.value)}
441
- placeholder="0000"
442
- maxLength={4}
443
- autoComplete="one-time-code"
444
- required
445
- disabled={loading}
446
- aria-describedby="otp-help"
447
- />
448
- {loading && (
449
- <div className="memori--login-drawer--otp-loading">
450
- <div className="memori--login-drawer--otp-spinner"></div>
451
- </div>
452
- )}
453
- </div>
454
- <small
455
- id="otp-help"
456
- className="memori--login-drawer--otp-help"
457
- >
458
- {t('login.otpHelp')}
459
- </small>
460
- </label>
461
- </div>
462
- )}
463
-
464
- {otpTimer && otpTimer > 0 && !otpSuccess && (
465
- <div className="memori--login-drawer--otp-timer">
466
- {/* <span className="memori--login-drawer--otp-timer-icon">⏱️</span> */}
467
- <span>{t('login.otpTimer', { seconds: otpTimer })}</span>
468
- </div>
469
- )}
470
-
471
- {!otpSuccess && (
472
- <div className="memori--login-drawer--otp-actions">
473
- <Button
474
- outlined
475
- onClick={() => {
476
- setShowOtpCodeForm(false);
477
- setOtpCode('');
478
- setOtpError(null);
479
- }}
480
- disabled={loading}
481
- >
482
- {t('login.backToEmail')}
483
- </Button>
484
-
485
- <Button
486
- outlined
487
- onClick={handleResendOtp}
488
- disabled={
489
- loading ||
490
- isResending ||
491
- (otpTimer && otpTimer > 0) ||
492
- !otpEmail
493
- }
494
- loading={isResending}
495
- >
496
- {isResending ? t('login.resending') : t('login.resendOtp')}
497
- </Button>
498
- </div>
499
- )}
500
-
501
- {otpError && (
502
- <div role="alert" className="memori--login-drawer--otp-error">
503
- <span className="memori--login-drawer--otp-error-icon">⚠️</span>
504
- <span>{otpError}</span>
505
- </div>
506
- )}
507
- </div>
508
- </>
509
- ) : showOtpForm ? (
510
- <>
511
- <div className="memori--login-drawer--otp-container">
512
- <div className="memori--login-drawer--otp-header">
513
- {/* <div className="memori--login-drawer--otp-icon">📧</div> */}
514
- <h3>{t('login.otpEmailTitle')}</h3>
515
- <p className="memori--login-drawer--otp-description">
516
- {t('login.otpEmailDescription')}
517
- </p>
518
- </div>
519
-
520
- <div className={cx('memori--login-drawer--otp-form', { loading })}>
521
- <label
522
- htmlFor="otp-email"
523
- className="memori--login-drawer--otp-label"
524
- >
525
- <span className="memori--login-drawer--otp-label-text">
526
- {t('login.email')}
527
- </span>
528
- <div className="memori--login-drawer--otp-input-container">
529
- <input
530
- id="otp-email"
531
- type="email"
532
- className={cx('memori--login-drawer--otp-email-input', {
533
- error: otpError && !mailRegEx.test(otpEmail),
534
- valid: emailValid && !otpError,
535
- loading: loading,
536
- })}
537
- value={otpEmail}
538
- onChange={e => handleEmailChange(e.target.value)}
539
- placeholder={
540
- t('login.emailPlaceholder') || 'Enter your email'
541
- }
542
- autoComplete="email"
543
- required
544
- disabled={loading}
545
- aria-describedby="email-help"
546
- />
547
- {emailValid && !loading && (
548
- <div className="memori--login-drawer--otp-valid-icon">
549
-
550
- </div>
551
- )}
552
- {loading && (
553
- <div className="memori--login-drawer--otp-loading">
554
- <div className="memori--login-drawer--otp-spinner"></div>
555
- </div>
556
- )}
557
- </div>
558
- </label>
559
- </div>
560
-
561
- <div className="memori--login-drawer--otp-actions">
562
- {showOtpCodeForm && <Button
563
- outlined
564
- onClick={() => {
565
- setShowOtpForm(false);
566
- setOtpEmail('');
567
- setOtpError(null);
568
- setEmailValid(false);
569
- }}
570
- disabled={loading}
571
- >
572
- {t('login.backToLogin')}
573
- </Button>}
574
-
575
- <Button
576
- primary
577
- onClick={() => {
578
- sendOtpToEmail(otpEmail);
579
- }}
580
- disabled={loading || !emailValid}
581
- loading={loading}
582
- >
583
- {t('login.sendOtp')}
584
- </Button>
585
- </div>
586
-
587
- {otpError && (
588
- <div role="alert" className="memori--login-drawer--otp-error">
589
- <span className="memori--login-drawer--otp-error-icon">⚠️</span>
590
- <span>{otpError}</span>
591
- </div>
592
- )}
593
- </div>
594
- </>
595
- ) : null}
596
- </Drawer>
597
- );
598
- };
599
-
600
- export default LoginDrawer;
@@ -1,91 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`renders LoginDrawer closed unchanged 1`] = `<div />`;
4
-
5
- exports[`renders LoginDrawer logged in unchanged 1`] = `
6
- <div>
7
- <div
8
- style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
9
- />
10
- </div>
11
- `;
12
-
13
- exports[`renders LoginDrawer logged with missing data unchanged 1`] = `
14
- <div>
15
- <div
16
- style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
17
- />
18
- </div>
19
- `;
20
-
21
- exports[`renders LoginDrawer on change password unchanged 1`] = `
22
- <div>
23
- <div
24
- style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
25
- />
26
- </div>
27
- `;
28
-
29
- exports[`renders LoginDrawer on signup unchanged 1`] = `
30
- <div>
31
- <div
32
- style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
33
- />
34
- </div>
35
- `;
36
-
37
- exports[`renders LoginDrawer on signup waiting for otp unchanged 1`] = `
38
- <div>
39
- <div
40
- style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
41
- />
42
- </div>
43
- `;
44
-
45
- exports[`renders LoginDrawer open unchanged 1`] = `
46
- <div>
47
- <div
48
- style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
49
- />
50
- </div>
51
- `;
52
-
53
- exports[`renders LoginDrawer unlogged unchanged 1`] = `
54
- <div>
55
- <div
56
- style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
57
- />
58
- </div>
59
- `;
60
-
61
- exports[`renders LoginDrawer with OTP form and error unchanged 1`] = `
62
- <div>
63
- <div
64
- style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
65
- />
66
- </div>
67
- `;
68
-
69
- exports[`renders LoginDrawer with OTP form and timer unchanged 1`] = `
70
- <div>
71
- <div
72
- style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
73
- />
74
- </div>
75
- `;
76
-
77
- exports[`renders LoginDrawer with OTP form loading unchanged 1`] = `
78
- <div>
79
- <div
80
- style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
81
- />
82
- </div>
83
- `;
84
-
85
- exports[`renders LoginDrawer with OTP form unchanged 1`] = `
86
- <div>
87
- <div
88
- style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
89
- />
90
- </div>
91
- `;