@memori.ai/memori-react 9.0.0-alpha.23 → 9.0.0-alpha.25

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 (285) hide show
  1. package/CHANGELOG.md +300 -1100
  2. package/dist/components/AgeVerificationModal/AgeVerificationModal.js +1 -3
  3. package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  4. package/dist/components/Auth/Auth.js +1 -3
  5. package/dist/components/Auth/Auth.js.map +1 -1
  6. package/dist/components/Chat/Chat.css +10 -1
  7. package/dist/components/Chat/Chat.js +1 -3
  8. package/dist/components/Chat/Chat.js.map +1 -1
  9. package/dist/components/ChatBubble/ChatBubble.css +103 -5
  10. package/dist/components/ChatBubble/ChatBubble.js +48 -8
  11. package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
  12. package/dist/components/ChatHistoryDrawer/ChatHistory.js +1 -3
  13. package/dist/components/ChatHistoryDrawer/ChatHistory.js.map +1 -1
  14. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +33 -10
  15. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +2 -4
  16. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  17. package/dist/components/ChatInputs/ChatInputs.css +17 -52
  18. package/dist/components/ChatInputs/ChatInputs.js +1 -3
  19. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  20. package/dist/components/ContentPreviewModal/ContentPreviewModal.css +3 -3
  21. package/dist/components/ContentPreviewModal/ContentPreviewModal.js +1 -3
  22. package/dist/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -1
  23. package/dist/components/DateSelector/DateSelector.css +66 -3
  24. package/dist/components/DateSelector/DateSelector.js +5 -1
  25. package/dist/components/DateSelector/DateSelector.js.map +1 -1
  26. package/dist/components/ExpertsDrawer/ExpertsDrawer.js +1 -3
  27. package/dist/components/ExpertsDrawer/ExpertsDrawer.js.map +1 -1
  28. package/dist/components/FilePreview/FilePreview.css +94 -220
  29. package/dist/components/FilePreview/FilePreview.js +25 -71
  30. package/dist/components/FilePreview/FilePreview.js.map +1 -1
  31. package/dist/components/IconButton/IconButton.css +2 -11
  32. package/dist/components/KnownFacts/KnownFacts.css +3 -4
  33. package/dist/components/KnownFacts/KnownFacts.js +3 -5
  34. package/dist/components/KnownFacts/KnownFacts.js.map +1 -1
  35. package/dist/components/LoginDrawer/LoginDrawer.css +3 -7
  36. package/dist/components/LoginDrawer/LoginDrawer.js +51 -9
  37. package/dist/components/LoginDrawer/LoginDrawer.js.map +1 -1
  38. package/dist/components/MediaWidget/MediaItemWidget.css +77 -57
  39. package/dist/components/MediaWidget/MediaItemWidget.js +4 -4
  40. package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
  41. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +1 -1
  42. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +2 -5
  43. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  44. package/dist/components/MemoriWidget/MemoriWidget.css +0 -55
  45. package/dist/components/MemoriWidget/MemoriWidget.js +115 -117
  46. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  47. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +20 -0
  48. package/dist/components/MobileSessionPanel/MobileSessionPanel.js +77 -117
  49. package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
  50. package/dist/components/PositionPopover/PositionPopover.css +1 -1
  51. package/dist/components/SettingsDrawer/SettingsDrawer.js +1 -3
  52. package/dist/components/SettingsDrawer/SettingsDrawer.js.map +1 -1
  53. package/dist/components/StartPanel/StartPanel.css +12 -1
  54. package/dist/components/StartPanel/StartPanel.js +30 -7
  55. package/dist/components/StartPanel/StartPanel.js.map +1 -1
  56. package/dist/components/UploadButton/UploadButton.css +7 -7
  57. package/dist/components/UploadButton/UploadButton.js +3 -0
  58. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  59. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +15 -5
  60. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  61. package/dist/components/UploadButton/UploadImages/UploadImages.js +1 -3
  62. package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  63. package/dist/components/WhyThisAnswer/WhyThisAnswer.js +1 -3
  64. package/dist/components/WhyThisAnswer/WhyThisAnswer.js.map +1 -1
  65. package/dist/components/layouts/HiddenChat.js +9 -1
  66. package/dist/components/layouts/HiddenChat.js.map +1 -1
  67. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +84 -5
  68. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  69. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +36 -12
  70. package/dist/components/layouts/fullpage.css +1 -0
  71. package/dist/components/layouts/hidden-chat.css +29 -5
  72. package/dist/helpers/constants.d.ts +3 -2
  73. package/dist/helpers/constants.js +19 -20
  74. package/dist/helpers/constants.js.map +1 -1
  75. package/dist/helpers/error.js +2 -1
  76. package/dist/helpers/error.js.map +1 -1
  77. package/dist/helpers/positionPopover.d.ts +1 -0
  78. package/dist/helpers/positionPopover.js +7 -0
  79. package/dist/helpers/positionPopover.js.map +1 -1
  80. package/dist/helpers/usePressTooltip.d.ts +6 -1
  81. package/dist/helpers/usePressTooltip.js +16 -1
  82. package/dist/helpers/usePressTooltip.js.map +1 -1
  83. package/dist/helpers/utils.d.ts +2 -1
  84. package/dist/helpers/utils.js +7 -1
  85. package/dist/helpers/utils.js.map +1 -1
  86. package/dist/locales/de.json +8 -2
  87. package/dist/locales/en.json +6 -3
  88. package/dist/locales/es.json +6 -3
  89. package/dist/locales/fr.json +6 -3
  90. package/dist/locales/it.json +6 -3
  91. package/dist/styles.css +1 -1
  92. package/dist/version.d.ts +1 -1
  93. package/dist/version.js +1 -1
  94. package/esm/components/AgeVerificationModal/AgeVerificationModal.js +1 -3
  95. package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  96. package/esm/components/Auth/Auth.js +1 -3
  97. package/esm/components/Auth/Auth.js.map +1 -1
  98. package/esm/components/Chat/Chat.css +10 -1
  99. package/esm/components/Chat/Chat.js +1 -3
  100. package/esm/components/Chat/Chat.js.map +1 -1
  101. package/esm/components/ChatBubble/ChatBubble.css +103 -5
  102. package/esm/components/ChatBubble/ChatBubble.js +48 -8
  103. package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
  104. package/esm/components/ChatHistoryDrawer/ChatHistory.js +1 -3
  105. package/esm/components/ChatHistoryDrawer/ChatHistory.js.map +1 -1
  106. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +33 -10
  107. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +2 -4
  108. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  109. package/esm/components/ChatInputs/ChatInputs.css +17 -52
  110. package/esm/components/ChatInputs/ChatInputs.js +1 -3
  111. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  112. package/esm/components/ContentPreviewModal/ContentPreviewModal.css +3 -3
  113. package/esm/components/ContentPreviewModal/ContentPreviewModal.js +1 -3
  114. package/esm/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -1
  115. package/esm/components/DateSelector/DateSelector.css +66 -3
  116. package/esm/components/DateSelector/DateSelector.js +5 -1
  117. package/esm/components/DateSelector/DateSelector.js.map +1 -1
  118. package/esm/components/ExpertsDrawer/ExpertsDrawer.js +1 -3
  119. package/esm/components/ExpertsDrawer/ExpertsDrawer.js.map +1 -1
  120. package/esm/components/FilePreview/FilePreview.css +94 -220
  121. package/esm/components/FilePreview/FilePreview.js +25 -71
  122. package/esm/components/FilePreview/FilePreview.js.map +1 -1
  123. package/esm/components/IconButton/IconButton.css +2 -11
  124. package/esm/components/KnownFacts/KnownFacts.css +3 -4
  125. package/esm/components/KnownFacts/KnownFacts.js +3 -5
  126. package/esm/components/KnownFacts/KnownFacts.js.map +1 -1
  127. package/esm/components/LoginDrawer/LoginDrawer.css +3 -7
  128. package/esm/components/LoginDrawer/LoginDrawer.js +51 -9
  129. package/esm/components/LoginDrawer/LoginDrawer.js.map +1 -1
  130. package/esm/components/MediaWidget/MediaItemWidget.css +77 -57
  131. package/esm/components/MediaWidget/MediaItemWidget.js +5 -5
  132. package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
  133. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +1 -1
  134. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +2 -5
  135. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  136. package/esm/components/MemoriWidget/MemoriWidget.css +0 -55
  137. package/esm/components/MemoriWidget/MemoriWidget.js +115 -117
  138. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  139. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +20 -0
  140. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +78 -118
  141. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
  142. package/esm/components/PositionPopover/PositionPopover.css +1 -1
  143. package/esm/components/SettingsDrawer/SettingsDrawer.js +1 -3
  144. package/esm/components/SettingsDrawer/SettingsDrawer.js.map +1 -1
  145. package/esm/components/StartPanel/StartPanel.css +12 -1
  146. package/esm/components/StartPanel/StartPanel.js +30 -7
  147. package/esm/components/StartPanel/StartPanel.js.map +1 -1
  148. package/esm/components/UploadButton/UploadButton.css +7 -7
  149. package/esm/components/UploadButton/UploadButton.js +4 -1
  150. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  151. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +17 -7
  152. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  153. package/esm/components/UploadButton/UploadImages/UploadImages.js +1 -3
  154. package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  155. package/esm/components/WhyThisAnswer/WhyThisAnswer.js +1 -3
  156. package/esm/components/WhyThisAnswer/WhyThisAnswer.js.map +1 -1
  157. package/esm/components/layouts/HiddenChat.js +9 -1
  158. package/esm/components/layouts/HiddenChat.js.map +1 -1
  159. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +85 -6
  160. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  161. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +36 -12
  162. package/esm/components/layouts/fullpage.css +1 -0
  163. package/esm/components/layouts/hidden-chat.css +29 -5
  164. package/esm/helpers/constants.d.ts +3 -2
  165. package/esm/helpers/constants.js +18 -19
  166. package/esm/helpers/constants.js.map +1 -1
  167. package/esm/helpers/error.js +2 -1
  168. package/esm/helpers/error.js.map +1 -1
  169. package/esm/helpers/positionPopover.d.ts +1 -0
  170. package/esm/helpers/positionPopover.js +6 -0
  171. package/esm/helpers/positionPopover.js.map +1 -1
  172. package/esm/helpers/usePressTooltip.d.ts +6 -1
  173. package/esm/helpers/usePressTooltip.js +17 -2
  174. package/esm/helpers/usePressTooltip.js.map +1 -1
  175. package/esm/helpers/utils.d.ts +2 -1
  176. package/esm/helpers/utils.js +6 -1
  177. package/esm/helpers/utils.js.map +1 -1
  178. package/esm/locales/de.json +8 -2
  179. package/esm/locales/en.json +6 -3
  180. package/esm/locales/es.json +6 -3
  181. package/esm/locales/fr.json +6 -3
  182. package/esm/locales/it.json +6 -3
  183. package/esm/styles.css +1 -1
  184. package/esm/version.d.ts +1 -1
  185. package/esm/version.js +1 -1
  186. package/package.json +4 -46
  187. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +0 -3
  188. package/src/components/Auth/Auth.tsx +0 -3
  189. package/src/components/Auth/__snapshots__/Auth.test.tsx.snap +1 -0
  190. package/src/components/BlockedMemoriBadge/__snapshots__/BlockedMemoriBadge.test.tsx.snap +5 -0
  191. package/src/components/Chat/Chat.css +10 -1
  192. package/src/components/Chat/Chat.tsx +0 -3
  193. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +1735 -1765
  194. package/src/components/ChatBubble/ChatBubble.css +103 -5
  195. package/src/components/ChatBubble/ChatBubble.test.tsx +33 -0
  196. package/src/components/ChatBubble/ChatBubble.tsx +524 -273
  197. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +655 -684
  198. package/src/components/ChatHistoryDrawer/ChatHistory.tsx +0 -3
  199. package/src/components/ChatHistoryDrawer/ChatResumeDrawer.css +33 -10
  200. package/src/components/ChatHistoryDrawer/ChatResumeDrawer.tsx +3 -6
  201. package/src/components/ChatInputs/ChatInputs.css +17 -52
  202. package/src/components/ChatInputs/ChatInputs.tsx +2 -4
  203. package/src/components/CompletionProviderStatus/__snapshots__/CompletionProviderStatus.test.tsx.snap +3 -0
  204. package/src/components/ContentPreviewModal/ContentPreviewModal.css +3 -3
  205. package/src/components/ContentPreviewModal/ContentPreviewModal.tsx +0 -3
  206. package/src/components/DateSelector/DateSelector.css +66 -3
  207. package/src/components/DateSelector/DateSelector.test.tsx +33 -4
  208. package/src/components/DateSelector/DateSelector.tsx +37 -11
  209. package/src/components/ExpertsDrawer/ExpertsDrawer.tsx +0 -3
  210. package/src/components/FeedbackButtons/__snapshots__/FeedbackButtons.test.tsx.snap +2 -1
  211. package/src/components/FilePreview/FilePreview.css +94 -220
  212. package/src/components/FilePreview/FilePreview.tsx +77 -124
  213. package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +33 -81
  214. package/src/components/Header/ChatConsumptionDropdown.test.tsx +53 -86
  215. package/src/components/Header/__snapshots__/Header.test.tsx.snap +60 -44
  216. package/src/components/IconButton/IconButton.css +2 -11
  217. package/src/components/KnownFacts/KnownFacts.css +3 -4
  218. package/src/components/KnownFacts/KnownFacts.tsx +0 -5
  219. package/src/components/KnownFacts/__snapshots__/KnownFacts.test.tsx.snap +2 -6
  220. package/src/components/LoginDrawer/LoginDrawer.css +3 -7
  221. package/src/components/LoginDrawer/LoginDrawer.tsx +101 -54
  222. package/src/components/LoginDrawer/__snapshots__/LoginDrawer.test.tsx.snap +11 -33
  223. package/src/components/MediaWidget/MediaItemWidget.css +77 -57
  224. package/src/components/MediaWidget/MediaItemWidget.test.tsx +33 -0
  225. package/src/components/MediaWidget/MediaItemWidget.tsx +6 -12
  226. package/src/components/MediaWidget/__snapshots__/MediaItemWidget.test.tsx.snap +2 -0
  227. package/src/components/MediaWidget/__snapshots__/MediaWidget.test.tsx.snap +1 -1
  228. package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +1 -1
  229. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +0 -5
  230. package/src/components/MemoriWidget/MemoriUIProvider.contract.test.tsx +25 -7
  231. package/src/components/MemoriWidget/MemoriWidget.css +0 -55
  232. package/src/components/MemoriWidget/MemoriWidget.tsx +18 -12
  233. package/src/components/MobileSessionPanel/MobileSessionPanel.css +20 -0
  234. package/src/components/MobileSessionPanel/MobileSessionPanel.tsx +29 -68
  235. package/src/components/PositionPopover/PositionPopover.css +1 -1
  236. package/src/components/SettingsDrawer/SettingsDrawer.tsx +0 -3
  237. package/src/components/ShareButton/__snapshots__/ShareButton.test.tsx.snap +9 -9
  238. package/src/components/Snippet/__snapshots__/Snippet.test.tsx.snap +8 -0
  239. package/src/components/StartPanel/StartPanel.css +12 -1
  240. package/src/components/StartPanel/StartPanel.test.tsx +57 -0
  241. package/src/components/StartPanel/StartPanel.tsx +41 -4
  242. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +41 -6
  243. package/src/components/UploadButton/UploadButton.css +7 -7
  244. package/src/components/UploadButton/UploadButton.tsx +4 -0
  245. package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +21 -8
  246. package/src/components/UploadButton/UploadImages/UploadImages.tsx +0 -3
  247. package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +10 -12
  248. package/src/components/WhyThisAnswer/WhyThisAnswer.tsx +0 -3
  249. package/src/components/WhyThisAnswer/__snapshots__/WhyThisAnswer.test.tsx.snap +3 -9
  250. package/src/components/layouts/HiddenChat.tsx +9 -1
  251. package/src/components/layouts/WebsiteAssistant/WebsiteAssistant.tsx +103 -6
  252. package/src/components/layouts/WebsiteAssistant/__snapshots__/WebsiteAssistant.test.tsx.snap +63 -57
  253. package/src/components/layouts/WebsiteAssistant/website-assistant.css +36 -12
  254. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +7 -4
  255. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +12 -8
  256. package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +7 -4
  257. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +10 -5
  258. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +6 -4
  259. package/src/components/layouts/fullpage.css +1 -0
  260. package/src/components/layouts/hidden-chat.css +29 -5
  261. package/src/components/layouts/layouts.stories.tsx +2 -2
  262. package/src/helpers/constants.ts +21 -20
  263. package/src/helpers/error.ts +2 -1
  264. package/src/helpers/positionPopover.test.ts +15 -0
  265. package/src/helpers/positionPopover.ts +16 -0
  266. package/src/helpers/usePressTooltip.test.ts +30 -0
  267. package/src/helpers/usePressTooltip.ts +31 -1
  268. package/src/helpers/utils.test.ts +14 -4
  269. package/src/helpers/utils.ts +6 -1
  270. package/src/index.tsx +1 -1
  271. package/src/locales/de.json +8 -2
  272. package/src/locales/en.json +6 -3
  273. package/src/locales/es.json +6 -3
  274. package/src/locales/fr.json +6 -3
  275. package/src/locales/it.json +6 -3
  276. package/src/styles.brandTokens.test.js +52 -0
  277. package/src/styles.css +27 -2
  278. package/src/version.ts +1 -1
  279. package/dist/context/widgetSurfaceContext.d.ts +0 -3
  280. package/dist/context/widgetSurfaceContext.js +0 -11
  281. package/dist/context/widgetSurfaceContext.js.map +0 -1
  282. package/esm/context/widgetSurfaceContext.d.ts +0 -3
  283. package/esm/context/widgetSurfaceContext.js +0 -7
  284. package/esm/context/widgetSurfaceContext.js.map +0 -1
  285. package/src/context/widgetSurfaceContext.tsx +0 -14
@@ -25,36 +25,20 @@ exports[`renders FilePreview with one file 1`] = `
25
25
  class="memori--preview-item-trigger"
26
26
  type="button"
27
27
  >
28
- <svg
29
- aria-hidden="true"
30
- class="lucide lucide-file memori--preview-icon"
31
- fill="none"
32
- height="24"
33
- stroke="currentColor"
34
- stroke-linecap="round"
35
- stroke-linejoin="round"
36
- stroke-width="2"
37
- viewBox="0 0 24 24"
38
- width="24"
39
- xmlns="http://www.w3.org/2000/svg"
40
- >
41
- <path
42
- d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"
43
- />
44
- <path
45
- d="M14 2v4a2 2 0 0 0 2 2h4"
46
- />
47
- </svg>
48
28
  <div
49
- class="memori--preview-file-info"
29
+ class="memori-media-item--document"
50
30
  >
51
- <span
52
- class="memori--preview-filename"
31
+ <div
32
+ class="memori-media-item--document-header"
53
33
  >
54
- test.pdf
55
- </span>
34
+ <div
35
+ class="memori-media-item--document-title"
36
+ >
37
+ test.pdf
38
+ </div>
39
+ </div>
56
40
  <span
57
- class="memori--preview-filetype"
41
+ class="memori-media-item--document-badge"
58
42
  >
59
43
  PDF
60
44
  </span>
@@ -62,7 +46,7 @@ exports[`renders FilePreview with one file 1`] = `
62
46
  </button>
63
47
  <button
64
48
  aria-label="upload.removeFile"
65
- class="memori-button memori-button--danger memori-button--md memori-button--circle memori-button--icon-only memori--remove-button"
49
+ class="memori-button memori-button--ghost memori-button--sm memori-button--circle memori-button--icon-only memori--remove-button"
66
50
  tabindex="0"
67
51
  type="button"
68
52
  >
@@ -120,36 +104,20 @@ exports[`renders FilePreview with two files 1`] = `
120
104
  class="memori--preview-item-trigger"
121
105
  type="button"
122
106
  >
123
- <svg
124
- aria-hidden="true"
125
- class="lucide lucide-file memori--preview-icon"
126
- fill="none"
127
- height="24"
128
- stroke="currentColor"
129
- stroke-linecap="round"
130
- stroke-linejoin="round"
131
- stroke-width="2"
132
- viewBox="0 0 24 24"
133
- width="24"
134
- xmlns="http://www.w3.org/2000/svg"
135
- >
136
- <path
137
- d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"
138
- />
139
- <path
140
- d="M14 2v4a2 2 0 0 0 2 2h4"
141
- />
142
- </svg>
143
107
  <div
144
- class="memori--preview-file-info"
108
+ class="memori-media-item--document"
145
109
  >
146
- <span
147
- class="memori--preview-filename"
110
+ <div
111
+ class="memori-media-item--document-header"
148
112
  >
149
- test.pdf
150
- </span>
113
+ <div
114
+ class="memori-media-item--document-title"
115
+ >
116
+ test.pdf
117
+ </div>
118
+ </div>
151
119
  <span
152
- class="memori--preview-filetype"
120
+ class="memori-media-item--document-badge"
153
121
  >
154
122
  PDF
155
123
  </span>
@@ -157,7 +125,7 @@ exports[`renders FilePreview with two files 1`] = `
157
125
  </button>
158
126
  <button
159
127
  aria-label="upload.removeFile"
160
- class="memori-button memori-button--danger memori-button--md memori-button--circle memori-button--icon-only memori--remove-button"
128
+ class="memori-button memori-button--ghost memori-button--sm memori-button--circle memori-button--icon-only memori--remove-button"
161
129
  tabindex="0"
162
130
  type="button"
163
131
  >
@@ -195,36 +163,20 @@ exports[`renders FilePreview with two files 1`] = `
195
163
  class="memori--preview-item-trigger"
196
164
  type="button"
197
165
  >
198
- <svg
199
- aria-hidden="true"
200
- class="lucide lucide-file memori--preview-icon"
201
- fill="none"
202
- height="24"
203
- stroke="currentColor"
204
- stroke-linecap="round"
205
- stroke-linejoin="round"
206
- stroke-width="2"
207
- viewBox="0 0 24 24"
208
- width="24"
209
- xmlns="http://www.w3.org/2000/svg"
210
- >
211
- <path
212
- d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"
213
- />
214
- <path
215
- d="M14 2v4a2 2 0 0 0 2 2h4"
216
- />
217
- </svg>
218
166
  <div
219
- class="memori--preview-file-info"
167
+ class="memori-media-item--document"
220
168
  >
221
- <span
222
- class="memori--preview-filename"
169
+ <div
170
+ class="memori-media-item--document-header"
223
171
  >
224
- test.pdf
225
- </span>
172
+ <div
173
+ class="memori-media-item--document-title"
174
+ >
175
+ test.pdf
176
+ </div>
177
+ </div>
226
178
  <span
227
- class="memori--preview-filetype"
179
+ class="memori-media-item--document-badge"
228
180
  >
229
181
  PDF
230
182
  </span>
@@ -232,7 +184,7 @@ exports[`renders FilePreview with two files 1`] = `
232
184
  </button>
233
185
  <button
234
186
  aria-label="upload.removeFile"
235
- class="memori-button memori-button--danger memori-button--md memori-button--circle memori-button--icon-only memori--remove-button"
187
+ class="memori-button memori-button--ghost memori-button--sm memori-button--circle memori-button--icon-only memori--remove-button"
236
188
  tabindex="0"
237
189
  type="button"
238
190
  >
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
- import { fireEvent, render, screen } from '@testing-library/react';
2
+ import { render, screen } from '@testing-library/react';
3
3
  import { Message } from '@memori.ai/memori-api-client/dist/types';
4
- import ChatConsumptionDropdown from './ChatConsumptionDropdown';
4
+ import ChatConsumptionDropdown, {
5
+ ChatConsumptionContent,
6
+ } from './ChatConsumptionDropdown';
5
7
 
6
8
  type TestMessage = Message & {
7
9
  llmUsage?: {
@@ -17,46 +19,42 @@ type TestMessage = Message & {
17
19
  };
18
20
  };
19
21
 
20
- describe('ChatConsumptionDropdown', () => {
21
- it('renders aggregated token and environmental usage', () => {
22
- const history = [
23
- {
24
- text: 'First response',
25
- timestamp: '2021-03-01T12:00:00.000Z',
26
- llmUsage: {
27
- provider: 'OpenAI',
28
- model: 'gpt-5',
29
- totalInputTokens: 1000,
30
- outputTokens: 200,
31
- energyImpact: {
32
- energy: { parsedValue: 0.0012 },
33
- gwp: { parsedValue: 0.00045 },
34
- wcf: { parsedValue: 0.0021 },
35
- },
36
- },
22
+ const historyWithUsage = [
23
+ {
24
+ text: 'First response',
25
+ timestamp: '2021-03-01T12:00:00.000Z',
26
+ llmUsage: {
27
+ provider: 'OpenAI',
28
+ model: 'gpt-5',
29
+ totalInputTokens: 1000,
30
+ outputTokens: 200,
31
+ energyImpact: {
32
+ energy: { parsedValue: 0.0012 },
33
+ gwp: { parsedValue: 0.00045 },
34
+ wcf: { parsedValue: 0.0021 },
37
35
  },
38
- {
39
- text: 'Second response',
40
- timestamp: '2021-03-01T12:01:00.000Z',
41
- llmUsage: {
42
- provider: 'Anthropic',
43
- model: 'claude-3',
44
- totalInputTokens: 250,
45
- outputTokens: 50,
46
- energyImpact: {
47
- energy: 0.0008,
48
- gwp: { source: '0.00035' },
49
- wcf: { source: '0.0014' },
50
- },
51
- },
36
+ },
37
+ },
38
+ {
39
+ text: 'Second response',
40
+ timestamp: '2021-03-01T12:01:00.000Z',
41
+ llmUsage: {
42
+ provider: 'Anthropic',
43
+ model: 'claude-3',
44
+ totalInputTokens: 250,
45
+ outputTokens: 50,
46
+ energyImpact: {
47
+ energy: 0.0008,
48
+ gwp: { source: '0.00035' },
49
+ wcf: { source: '0.0014' },
52
50
  },
53
- ] as TestMessage[];
51
+ },
52
+ },
53
+ ] as TestMessage[];
54
54
 
55
- render(<ChatConsumptionDropdown history={history} />);
56
-
57
- fireEvent.click(
58
- screen.getByTitle('write_and_speak.showMessageConsumptionLabel')
59
- );
55
+ describe('ChatConsumptionContent', () => {
56
+ it('renders aggregated token and environmental usage', () => {
57
+ render(<ChatConsumptionContent history={historyWithUsage} />);
60
58
 
61
59
  expect(screen.getByText('chatLogs.totalChatConsumptionTitle')).toBeTruthy();
62
60
  expect(screen.getByText('chatLogs.modelUsage')).toBeTruthy();
@@ -69,7 +67,9 @@ describe('ChatConsumptionDropdown', () => {
69
67
  expect(screen.getByText('800 mg')).toBeTruthy();
70
68
  expect(screen.getByText('3.5 mL')).toBeTruthy();
71
69
  });
70
+ });
72
71
 
72
+ describe('ChatConsumptionDropdown', () => {
73
73
  it('does not render when the chat has no llm usage data', () => {
74
74
  const history = [
75
75
  {
@@ -81,33 +81,20 @@ describe('ChatConsumptionDropdown', () => {
81
81
  const { container } = render(<ChatConsumptionDropdown history={history} />);
82
82
 
83
83
  expect(container.firstChild).toBeNull();
84
- // expect(
85
- // screen.queryByTitle('write_and_speak.showMessageConsumptionLabel')
86
- // ).toBeNull();
87
84
  });
88
85
 
89
- it('supports a custom trigger component', () => {
90
- const history = [
91
- {
92
- text: 'Response',
93
- timestamp: '2021-03-01T12:00:00.000Z',
94
- llmUsage: {
95
- provider: 'OpenAI',
96
- model: 'gpt-5',
97
- totalInputTokens: 10,
98
- outputTokens: 5,
99
- energyImpact: {
100
- energy: 0.0002,
101
- gwp: 0.0001,
102
- wcf: 0.0003,
103
- },
104
- },
105
- },
106
- ] as TestMessage[];
86
+ it('renders the default trigger when usage data is present', () => {
87
+ render(<ChatConsumptionDropdown history={historyWithUsage} />);
88
+
89
+ expect(
90
+ screen.getByTitle('write_and_speak.showMessageConsumptionLabel')
91
+ ).toBeTruthy();
92
+ });
107
93
 
94
+ it('supports a custom trigger component', () => {
108
95
  render(
109
96
  <ChatConsumptionDropdown
110
- history={history}
97
+ history={historyWithUsage}
111
98
  trigger={props => (
112
99
  <button type="button" {...props}>
113
100
  Custom Trigger
@@ -116,39 +103,19 @@ describe('ChatConsumptionDropdown', () => {
116
103
  />
117
104
  );
118
105
 
119
- fireEvent.click(screen.getByRole('button', { name: 'Custom Trigger' }));
120
-
121
- expect(screen.getByText('chatLogs.totalChatConsumptionTitle')).toBeTruthy();
106
+ expect(
107
+ screen.getByRole('button', { name: 'Custom Trigger' })
108
+ ).toBeTruthy();
122
109
  });
123
110
 
124
111
  it('supports a custom trigger node', () => {
125
- const history = [
126
- {
127
- text: 'First response',
128
- timestamp: '2021-03-01T12:00:00.000Z',
129
- llmUsage: {
130
- provider: 'OpenAI',
131
- model: 'gpt-5',
132
- totalInputTokens: 1000,
133
- outputTokens: 200,
134
- energyImpact: {
135
- energy: { parsedValue: 0.0012 },
136
- gwp: { parsedValue: 0.00045 },
137
- wcf: { parsedValue: 0.0021 },
138
- },
139
- },
140
- },
141
- ] as TestMessage[];
142
-
143
112
  render(
144
113
  <ChatConsumptionDropdown
145
- history={history}
114
+ history={historyWithUsage}
146
115
  trigger={<button type="button">Open usage</button>}
147
116
  />
148
117
  );
149
118
 
150
- fireEvent.click(screen.getByRole('button', { name: 'Open usage' }));
151
-
152
- expect(screen.getByText('chatLogs.totalChatConsumptionTitle')).toBeTruthy();
119
+ expect(screen.getByRole('button', { name: 'Open usage' })).toBeTruthy();
153
120
  });
154
121
  });