@memori.ai/memori-react 8.45.2 → 8.45.5

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 (729) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/components/Chat/Chat.d.ts +1 -0
  3. package/dist/components/Chat/Chat.js +6 -3
  4. package/dist/components/Chat/Chat.js.map +1 -1
  5. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +78 -0
  6. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +39 -0
  7. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +43 -0
  8. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -0
  9. package/dist/components/ChatInputs/ChatInputs.d.ts +1 -0
  10. package/dist/components/ChatInputs/ChatInputs.js +2 -2
  11. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  12. package/dist/components/ContentPreviewModal/DocumentMarkdown.d.ts +7 -0
  13. package/dist/components/ContentPreviewModal/DocumentMarkdown.js +31 -0
  14. package/dist/components/ContentPreviewModal/DocumentMarkdown.js.map +1 -0
  15. package/dist/components/DrawerFooter/DrawerFooter.css +62 -0
  16. package/dist/components/DrawerFooter/DrawerFooter.d.ts +12 -0
  17. package/dist/components/DrawerFooter/DrawerFooter.js +10 -0
  18. package/dist/components/DrawerFooter/DrawerFooter.js.map +1 -0
  19. package/dist/components/IconButton/IconButton.css +135 -0
  20. package/dist/components/IconButton/IconButton.d.ts +9 -0
  21. package/dist/components/IconButton/IconButton.js +36 -0
  22. package/dist/components/IconButton/IconButton.js.map +1 -0
  23. package/dist/components/LoginModal/LoginModal.css +270 -0
  24. package/dist/components/LoginModal/LoginModal.d.ts +19 -0
  25. package/dist/components/LoginModal/LoginModal.js +355 -0
  26. package/dist/components/LoginModal/LoginModal.js.map +1 -0
  27. package/dist/components/MemoriWidget/MemoriWidget.d.ts +2 -2
  28. package/dist/components/MemoriWidget/MemoriWidget.js +13 -21
  29. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  30. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +540 -0
  31. package/dist/components/MobileSessionPanel/MobileSessionPanel.d.ts +65 -0
  32. package/dist/components/MobileSessionPanel/MobileSessionPanel.js +254 -0
  33. package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -0
  34. package/dist/components/PositionPopover/PositionPopover.css +218 -0
  35. package/dist/components/PositionPopover/PositionPopover.d.ts +22 -0
  36. package/dist/components/PositionPopover/PositionPopover.js +208 -0
  37. package/dist/components/PositionPopover/PositionPopover.js.map +1 -0
  38. package/dist/components/ReasoningBlock/ReasoningBlock.css +156 -0
  39. package/dist/components/ReasoningBlock/ReasoningBlock.d.ts +7 -0
  40. package/dist/components/ReasoningBlock/ReasoningBlock.js +61 -0
  41. package/dist/components/ReasoningBlock/ReasoningBlock.js.map +1 -0
  42. package/dist/components/SideDrawer/SideDrawer.css +112 -0
  43. package/dist/components/SideDrawer/SideDrawer.d.ts +22 -0
  44. package/dist/components/SideDrawer/SideDrawer.js +17 -0
  45. package/dist/components/SideDrawer/SideDrawer.js.map +1 -0
  46. package/dist/components/UploadButton/UploadButton.d.ts +2 -0
  47. package/dist/components/UploadButton/UploadButton.js +2 -2
  48. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  49. package/dist/components/UploadButton/UploadImages/UploadImages.d.ts +2 -0
  50. package/dist/components/UploadButton/UploadImages/UploadImages.js +7 -1
  51. package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  52. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +4 -0
  53. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +144 -0
  54. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -0
  55. package/{src/components/layouts → dist/components/layouts/WebsiteAssistant}/website-assistant.css +298 -86
  56. package/dist/components/layouts/chat.css +27 -4
  57. package/dist/components/layouts/fullpage.css +628 -0
  58. package/dist/helpers/artifactPanel.d.ts +6 -0
  59. package/dist/helpers/artifactPanel.js +42 -0
  60. package/dist/helpers/artifactPanel.js.map +1 -0
  61. package/dist/helpers/chatScroll.d.ts +12 -0
  62. package/dist/helpers/chatScroll.js +14 -0
  63. package/dist/helpers/chatScroll.js.map +1 -0
  64. package/dist/helpers/conversationHistory.d.ts +16 -0
  65. package/dist/helpers/conversationHistory.js +89 -0
  66. package/dist/helpers/conversationHistory.js.map +1 -0
  67. package/dist/helpers/conversationTitle.d.ts +8 -0
  68. package/dist/helpers/conversationTitle.js +27 -0
  69. package/dist/helpers/conversationTitle.js.map +1 -0
  70. package/dist/helpers/enhanceBubbleCodeBlocks.d.ts +5 -0
  71. package/dist/helpers/enhanceBubbleCodeBlocks.js +97 -0
  72. package/dist/helpers/enhanceBubbleCodeBlocks.js.map +1 -0
  73. package/dist/helpers/highlightMatches.d.ts +2 -0
  74. package/dist/helpers/highlightMatches.js +54 -0
  75. package/dist/helpers/highlightMatches.js.map +1 -0
  76. package/dist/helpers/nats/dialogStateCatchUp.d.ts +3 -0
  77. package/dist/helpers/nats/dialogStateCatchUp.js +40 -0
  78. package/dist/helpers/nats/dialogStateCatchUp.js.map +1 -0
  79. package/dist/helpers/positionPopover.d.ts +3 -0
  80. package/dist/helpers/positionPopover.js +22 -0
  81. package/dist/helpers/positionPopover.js.map +1 -0
  82. package/dist/helpers/prism.d.ts +16 -0
  83. package/dist/helpers/prism.js +78 -0
  84. package/dist/helpers/prism.js.map +1 -0
  85. package/dist/helpers/reasoning.d.ts +7 -0
  86. package/dist/helpers/reasoning.js +43 -0
  87. package/dist/helpers/reasoning.js.map +1 -0
  88. package/dist/helpers/relativeTime.d.ts +3 -0
  89. package/dist/helpers/relativeTime.js +56 -0
  90. package/dist/helpers/relativeTime.js.map +1 -0
  91. package/dist/helpers/sourcesCount.d.ts +2 -0
  92. package/dist/helpers/sourcesCount.js +22 -0
  93. package/dist/helpers/sourcesCount.js.map +1 -0
  94. package/dist/helpers/tts/muteSpeaker.d.ts +13 -0
  95. package/dist/helpers/tts/muteSpeaker.js +26 -0
  96. package/dist/helpers/tts/muteSpeaker.js.map +1 -0
  97. package/dist/helpers/usePressTooltip.d.ts +18 -0
  98. package/dist/helpers/usePressTooltip.js +38 -0
  99. package/dist/helpers/usePressTooltip.js.map +1 -0
  100. package/dist/icons/FacebookIcon.d.ts +3 -0
  101. package/dist/icons/FacebookIcon.js +6 -0
  102. package/dist/icons/FacebookIcon.js.map +1 -0
  103. package/dist/icons/LinkedinIcon.d.ts +3 -0
  104. package/dist/icons/LinkedinIcon.js +6 -0
  105. package/dist/icons/LinkedinIcon.js.map +1 -0
  106. package/dist/icons/MemoriIcon.d.ts +3 -0
  107. package/dist/icons/MemoriIcon.js +8 -0
  108. package/dist/icons/MemoriIcon.js.map +1 -0
  109. package/dist/icons/TelegramIcon.d.ts +3 -0
  110. package/dist/icons/TelegramIcon.js +6 -0
  111. package/dist/icons/TelegramIcon.js.map +1 -0
  112. package/dist/icons/TwitterIcon.d.ts +3 -0
  113. package/dist/icons/TwitterIcon.js +6 -0
  114. package/dist/icons/TwitterIcon.js.map +1 -0
  115. package/dist/icons/WhatsappIcon.d.ts +3 -0
  116. package/dist/icons/WhatsappIcon.js +6 -0
  117. package/dist/icons/WhatsappIcon.js.map +1 -0
  118. package/dist/icons/artifacts/DocumentIcon.d.ts +3 -0
  119. package/dist/icons/artifacts/DocumentIcon.js +6 -0
  120. package/dist/icons/artifacts/DocumentIcon.js.map +1 -0
  121. package/dist/icons/artifacts/HtmlIcon.d.ts +3 -0
  122. package/dist/icons/artifacts/HtmlIcon.js +6 -0
  123. package/dist/icons/artifacts/HtmlIcon.js.map +1 -0
  124. package/dist/icons/artifacts/JavascriptIcon.d.ts +3 -0
  125. package/dist/icons/artifacts/JavascriptIcon.js +6 -0
  126. package/dist/icons/artifacts/JavascriptIcon.js.map +1 -0
  127. package/dist/icons/artifacts/MarkdownIcon.d.ts +3 -0
  128. package/dist/icons/artifacts/MarkdownIcon.js +6 -0
  129. package/dist/icons/artifacts/MarkdownIcon.js.map +1 -0
  130. package/dist/icons/artifacts/PythonIcon.d.ts +3 -0
  131. package/dist/icons/artifacts/PythonIcon.js +6 -0
  132. package/dist/icons/artifacts/PythonIcon.js.map +1 -0
  133. package/dist/icons/artifacts/SvgIcon.d.ts +3 -0
  134. package/dist/icons/artifacts/SvgIcon.js +6 -0
  135. package/dist/icons/artifacts/SvgIcon.js.map +1 -0
  136. package/dist/icons/artifacts/XmlIcon.d.ts +3 -0
  137. package/dist/icons/artifacts/XmlIcon.js +6 -0
  138. package/dist/icons/artifacts/XmlIcon.js.map +1 -0
  139. package/dist/icons/artifacts/cssIcon.d.ts +3 -0
  140. package/dist/icons/artifacts/cssIcon.js +6 -0
  141. package/dist/icons/artifacts/cssIcon.js.map +1 -0
  142. package/dist/styles/motion.css +25 -0
  143. package/dist/styles.css +1 -2
  144. package/dist/version.d.ts +1 -1
  145. package/dist/version.js +1 -1
  146. package/esm/components/Chat/Chat.d.ts +1 -0
  147. package/esm/components/Chat/Chat.js +6 -3
  148. package/esm/components/Chat/Chat.js.map +1 -1
  149. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +39 -0
  150. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +40 -0
  151. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -0
  152. package/esm/components/ChatInputs/ChatInputs.d.ts +1 -0
  153. package/esm/components/ChatInputs/ChatInputs.js +2 -2
  154. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  155. package/esm/components/ContentPreviewModal/DocumentMarkdown.d.ts +7 -0
  156. package/esm/components/ContentPreviewModal/DocumentMarkdown.js +28 -0
  157. package/esm/components/ContentPreviewModal/DocumentMarkdown.js.map +1 -0
  158. package/esm/components/DrawerFooter/DrawerFooter.d.ts +12 -0
  159. package/esm/components/DrawerFooter/DrawerFooter.js +8 -0
  160. package/esm/components/DrawerFooter/DrawerFooter.js.map +1 -0
  161. package/esm/components/IconButton/IconButton.d.ts +9 -0
  162. package/esm/components/IconButton/IconButton.js +33 -0
  163. package/esm/components/IconButton/IconButton.js.map +1 -0
  164. package/esm/components/LoginModal/LoginModal.d.ts +19 -0
  165. package/esm/components/LoginModal/LoginModal.js +352 -0
  166. package/esm/components/LoginModal/LoginModal.js.map +1 -0
  167. package/esm/components/MemoriWidget/MemoriWidget.d.ts +2 -2
  168. package/esm/components/MemoriWidget/MemoriWidget.js +8 -17
  169. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  170. package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +65 -0
  171. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +251 -0
  172. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -0
  173. package/esm/components/PositionPopover/PositionPopover.d.ts +22 -0
  174. package/esm/components/PositionPopover/PositionPopover.js +203 -0
  175. package/esm/components/PositionPopover/PositionPopover.js.map +1 -0
  176. package/esm/components/ReasoningBlock/ReasoningBlock.d.ts +7 -0
  177. package/esm/components/ReasoningBlock/ReasoningBlock.js +58 -0
  178. package/esm/components/ReasoningBlock/ReasoningBlock.js.map +1 -0
  179. package/esm/components/SideDrawer/SideDrawer.d.ts +22 -0
  180. package/esm/components/SideDrawer/SideDrawer.js +12 -0
  181. package/esm/components/SideDrawer/SideDrawer.js.map +1 -0
  182. package/esm/components/UploadButton/UploadButton.d.ts +2 -0
  183. package/esm/components/UploadButton/UploadButton.js +2 -2
  184. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  185. package/esm/components/UploadButton/UploadImages/UploadImages.d.ts +2 -0
  186. package/esm/components/UploadButton/UploadImages/UploadImages.js +7 -1
  187. package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  188. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +4 -0
  189. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +141 -0
  190. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -0
  191. package/esm/components/layouts/chat.css +27 -4
  192. package/esm/helpers/artifactPanel.d.ts +6 -0
  193. package/esm/helpers/artifactPanel.js +37 -0
  194. package/esm/helpers/artifactPanel.js.map +1 -0
  195. package/esm/helpers/chatScroll.d.ts +12 -0
  196. package/esm/helpers/chatScroll.js +9 -0
  197. package/esm/helpers/chatScroll.js.map +1 -0
  198. package/esm/helpers/conversationHistory.d.ts +16 -0
  199. package/esm/helpers/conversationHistory.js +82 -0
  200. package/esm/helpers/conversationHistory.js.map +1 -0
  201. package/esm/helpers/conversationTitle.d.ts +8 -0
  202. package/esm/helpers/conversationTitle.js +23 -0
  203. package/esm/helpers/conversationTitle.js.map +1 -0
  204. package/esm/helpers/enhanceBubbleCodeBlocks.d.ts +5 -0
  205. package/esm/helpers/enhanceBubbleCodeBlocks.js +94 -0
  206. package/esm/helpers/enhanceBubbleCodeBlocks.js.map +1 -0
  207. package/esm/helpers/highlightMatches.d.ts +2 -0
  208. package/esm/helpers/highlightMatches.js +49 -0
  209. package/esm/helpers/highlightMatches.js.map +1 -0
  210. package/esm/helpers/nats/dialogStateCatchUp.d.ts +3 -0
  211. package/esm/helpers/nats/dialogStateCatchUp.js +35 -0
  212. package/esm/helpers/nats/dialogStateCatchUp.js.map +1 -0
  213. package/esm/helpers/positionPopover.d.ts +3 -0
  214. package/esm/helpers/positionPopover.js +17 -0
  215. package/esm/helpers/positionPopover.js.map +1 -0
  216. package/esm/helpers/prism.d.ts +16 -0
  217. package/esm/helpers/prism.js +74 -0
  218. package/esm/helpers/prism.js.map +1 -0
  219. package/esm/helpers/reasoning.d.ts +7 -0
  220. package/esm/helpers/reasoning.js +39 -0
  221. package/esm/helpers/reasoning.js.map +1 -0
  222. package/esm/helpers/relativeTime.d.ts +3 -0
  223. package/esm/helpers/relativeTime.js +50 -0
  224. package/esm/helpers/relativeTime.js.map +1 -0
  225. package/esm/helpers/sourcesCount.d.ts +2 -0
  226. package/esm/helpers/sourcesCount.js +18 -0
  227. package/esm/helpers/sourcesCount.js.map +1 -0
  228. package/esm/helpers/tts/muteSpeaker.d.ts +13 -0
  229. package/esm/helpers/tts/muteSpeaker.js +21 -0
  230. package/esm/helpers/tts/muteSpeaker.js.map +1 -0
  231. package/esm/helpers/usePressTooltip.d.ts +18 -0
  232. package/esm/helpers/usePressTooltip.js +35 -0
  233. package/esm/helpers/usePressTooltip.js.map +1 -0
  234. package/esm/icons/FacebookIcon.d.ts +3 -0
  235. package/esm/icons/FacebookIcon.js +4 -0
  236. package/esm/icons/FacebookIcon.js.map +1 -0
  237. package/esm/icons/LinkedinIcon.d.ts +3 -0
  238. package/esm/icons/LinkedinIcon.js +4 -0
  239. package/esm/icons/LinkedinIcon.js.map +1 -0
  240. package/esm/icons/MemoriIcon.d.ts +3 -0
  241. package/esm/icons/MemoriIcon.js +6 -0
  242. package/esm/icons/MemoriIcon.js.map +1 -0
  243. package/esm/icons/TelegramIcon.d.ts +3 -0
  244. package/esm/icons/TelegramIcon.js +4 -0
  245. package/esm/icons/TelegramIcon.js.map +1 -0
  246. package/esm/icons/TwitterIcon.d.ts +3 -0
  247. package/esm/icons/TwitterIcon.js +4 -0
  248. package/esm/icons/TwitterIcon.js.map +1 -0
  249. package/esm/icons/WhatsappIcon.d.ts +3 -0
  250. package/esm/icons/WhatsappIcon.js +4 -0
  251. package/esm/icons/WhatsappIcon.js.map +1 -0
  252. package/esm/icons/artifacts/DocumentIcon.d.ts +3 -0
  253. package/esm/icons/artifacts/DocumentIcon.js +4 -0
  254. package/esm/icons/artifacts/DocumentIcon.js.map +1 -0
  255. package/esm/icons/artifacts/HtmlIcon.d.ts +3 -0
  256. package/esm/icons/artifacts/HtmlIcon.js +4 -0
  257. package/esm/icons/artifacts/HtmlIcon.js.map +1 -0
  258. package/esm/icons/artifacts/JavascriptIcon.d.ts +3 -0
  259. package/esm/icons/artifacts/JavascriptIcon.js +4 -0
  260. package/esm/icons/artifacts/JavascriptIcon.js.map +1 -0
  261. package/esm/icons/artifacts/MarkdownIcon.d.ts +3 -0
  262. package/esm/icons/artifacts/MarkdownIcon.js +4 -0
  263. package/esm/icons/artifacts/MarkdownIcon.js.map +1 -0
  264. package/esm/icons/artifacts/PythonIcon.d.ts +3 -0
  265. package/esm/icons/artifacts/PythonIcon.js +4 -0
  266. package/esm/icons/artifacts/PythonIcon.js.map +1 -0
  267. package/esm/icons/artifacts/SvgIcon.d.ts +3 -0
  268. package/esm/icons/artifacts/SvgIcon.js +4 -0
  269. package/esm/icons/artifacts/SvgIcon.js.map +1 -0
  270. package/esm/icons/artifacts/XmlIcon.d.ts +3 -0
  271. package/esm/icons/artifacts/XmlIcon.js +4 -0
  272. package/esm/icons/artifacts/XmlIcon.js.map +1 -0
  273. package/esm/icons/artifacts/cssIcon.d.ts +3 -0
  274. package/esm/icons/artifacts/cssIcon.js +4 -0
  275. package/esm/icons/artifacts/cssIcon.js.map +1 -0
  276. package/esm/styles.css +1 -2
  277. package/esm/version.d.ts +1 -1
  278. package/esm/version.js +1 -1
  279. package/package.json +7 -7
  280. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.d.ts +0 -3
  281. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js +0 -64
  282. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js.map +0 -1
  283. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.d.ts +0 -3
  284. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js +0 -62
  285. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js.map +0 -1
  286. package/src/I18nWrapper.tsx +0 -13
  287. package/src/__snapshots__/index.test.tsx.snap +0 -96
  288. package/src/components/AgeVerificationModal/AgeVerificationModal.css +0 -95
  289. package/src/components/AgeVerificationModal/AgeVerificationModal.stories.tsx +0 -46
  290. package/src/components/AgeVerificationModal/AgeVerificationModal.test.tsx +0 -33
  291. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +0 -99
  292. package/src/components/AgeVerificationModal/__snapshots__/AgeVerificationModal.test.tsx.snap +0 -19
  293. package/src/components/Auth/Auth.css +0 -57
  294. package/src/components/Auth/Auth.stories.tsx +0 -90
  295. package/src/components/Auth/Auth.test.tsx +0 -63
  296. package/src/components/Auth/Auth.tsx +0 -201
  297. package/src/components/Auth/__snapshots__/Auth.test.tsx.snap +0 -143
  298. package/src/components/Avatar/Avatar.css +0 -151
  299. package/src/components/Avatar/Avatar.stories.tsx +0 -160
  300. package/src/components/Avatar/Avatar.test.tsx +0 -158
  301. package/src/components/Avatar/Avatar.tsx +0 -245
  302. package/src/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.tsx +0 -103
  303. package/src/components/Avatar/AvatarView/AvatarComponent/avatarComponent.tsx +0 -105
  304. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx +0 -338
  305. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/types.ts +0 -44
  306. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.ts +0 -1091
  307. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarPositionController.ts +0 -83
  308. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.ts +0 -301
  309. package/src/components/Avatar/AvatarView/AvatarComponent/components/controls.tsx +0 -100
  310. package/src/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.tsx +0 -152
  311. package/src/components/Avatar/AvatarView/AvatarComponent/components/loader.tsx +0 -31
  312. package/src/components/Avatar/AvatarView/AvatarComponent/constants.ts +0 -141
  313. package/src/components/Avatar/AvatarView/AvatarComponent/lights/Lights.tsx +0 -145
  314. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +0 -111
  315. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.tsx +0 -201
  316. package/src/components/Avatar/AvatarView/AvatarView.stories.tsx +0 -254
  317. package/src/components/Avatar/AvatarView/index.tsx +0 -194
  318. package/src/components/Avatar/AvatarView/utils/hideHands.ts +0 -11
  319. package/src/components/Avatar/AvatarView/utils/useEyeBlink.ts +0 -100
  320. package/src/components/Avatar/AvatarView/utils/useHeadMovement.ts +0 -72
  321. package/src/components/Avatar/AvatarView/utils/useLoadingMorphAnim.ts +0 -38
  322. package/src/components/Avatar/AvatarView/utils/useMouthAnimation.ts +0 -93
  323. package/src/components/Avatar/AvatarView/utils/useSmile.ts +0 -39
  324. package/src/components/Avatar/AvatarView/utils/utils.ts +0 -55
  325. package/src/components/Avatar/__snapshots__/Avatar.test.tsx.snap +0 -246
  326. package/src/components/Blob/Blob.css +0 -286
  327. package/src/components/Blob/Blob.stories.tsx +0 -53
  328. package/src/components/Blob/Blob.test.tsx +0 -18
  329. package/src/components/Blob/Blob.tsx +0 -26
  330. package/src/components/Blob/__snapshots__/Blob.test.tsx.snap +0 -80
  331. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.css +0 -40
  332. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.stories.tsx +0 -58
  333. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.test.tsx +0 -53
  334. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.tsx +0 -74
  335. package/src/components/BlockedMemoriBadge/__snapshots__/BlockedMemoriBadge.test.tsx.snap +0 -181
  336. package/src/components/ChangeMode/ChangeMode.css +0 -22
  337. package/src/components/ChangeMode/ChangeMode.stories.tsx +0 -50
  338. package/src/components/ChangeMode/ChangeMode.test.tsx +0 -24
  339. package/src/components/ChangeMode/ChangeMode.tsx +0 -51
  340. package/src/components/ChangeMode/__snapshots__/ChangeMode.test.tsx.snap +0 -107
  341. package/src/components/Chat/Chat.css +0 -285
  342. package/src/components/Chat/Chat.stories.tsx +0 -1684
  343. package/src/components/Chat/Chat.test.tsx +0 -372
  344. package/src/components/Chat/Chat.tsx +0 -778
  345. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +0 -6816
  346. package/src/components/ChatBubble/ChatBubble.css +0 -430
  347. package/src/components/ChatBubble/ChatBubble.stories.tsx +0 -1192
  348. package/src/components/ChatBubble/ChatBubble.test.tsx +0 -481
  349. package/src/components/ChatBubble/ChatBubble.tsx +0 -776
  350. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +0 -8734
  351. package/src/components/ChatHistoryDrawer/ChatHistory.css +0 -587
  352. package/src/components/ChatHistoryDrawer/ChatHistory.stories.tsx +0 -410
  353. package/src/components/ChatHistoryDrawer/ChatHistory.test.tsx +0 -107
  354. package/src/components/ChatHistoryDrawer/ChatHistory.tsx +0 -1298
  355. package/src/components/ChatHistoryDrawer/__snapshots__/ChatHistory.test.tsx.snap +0 -27
  356. package/src/components/ChatInputs/ChatInputs.css +0 -340
  357. package/src/components/ChatInputs/ChatInputs.stories.tsx +0 -251
  358. package/src/components/ChatInputs/ChatInputs.tsx +0 -487
  359. package/src/components/ChatTextArea/ChatTextArea.css +0 -185
  360. package/src/components/ChatTextArea/ChatTextArea.stories.tsx +0 -55
  361. package/src/components/ChatTextArea/ChatTextArea.test.tsx +0 -28
  362. package/src/components/ChatTextArea/ChatTextArea.tsx +0 -171
  363. package/src/components/ChatTextArea/__snapshots__/ChatTextArea.test.tsx.snap +0 -68
  364. package/src/components/CompletionProviderStatus/CompletionProviderStatus.css +0 -36
  365. package/src/components/CompletionProviderStatus/CompletionProviderStatus.stories.tsx +0 -296
  366. package/src/components/CompletionProviderStatus/CompletionProviderStatus.test.tsx +0 -31
  367. package/src/components/CompletionProviderStatus/CompletionProviderStatus.tsx +0 -232
  368. package/src/components/CompletionProviderStatus/__snapshots__/CompletionProviderStatus.test.tsx.snap +0 -96
  369. package/src/components/ContentPreviewModal/ContentPreviewModal.css +0 -128
  370. package/src/components/ContentPreviewModal/ContentPreviewModal.tsx +0 -67
  371. package/src/components/ContentPreviewModal/index.ts +0 -2
  372. package/src/components/CustomGLBModelViewer/ModelViewer.css +0 -11
  373. package/src/components/CustomGLBModelViewer/ModelViewer.stories.tsx +0 -58
  374. package/src/components/CustomGLBModelViewer/ModelViewer.test.tsx +0 -13
  375. package/src/components/CustomGLBModelViewer/ModelViewer.tsx +0 -37
  376. package/src/components/CustomGLBModelViewer/__snapshots__/ModelViewer.test.tsx.snap +0 -20
  377. package/src/components/DateSelector/DateSelector.css +0 -158
  378. package/src/components/DateSelector/DateSelector.stories.tsx +0 -47
  379. package/src/components/DateSelector/DateSelector.test.tsx +0 -149
  380. package/src/components/DateSelector/DateSelector.tsx +0 -251
  381. package/src/components/DateSelector/__snapshots__/DateSelector.test.tsx.snap +0 -1954
  382. package/src/components/ErrorBoundary/ErrorBoundary.tsx +0 -54
  383. package/src/components/ExpertsDrawer/ExpertsDrawer.css +0 -67
  384. package/src/components/ExpertsDrawer/ExpertsDrawer.stories.tsx +0 -54
  385. package/src/components/ExpertsDrawer/ExpertsDrawer.test.tsx +0 -53
  386. package/src/components/ExpertsDrawer/ExpertsDrawer.tsx +0 -69
  387. package/src/components/ExpertsDrawer/__snapshots__/ExpertsDrawer.test.tsx.snap +0 -11
  388. package/src/components/ExportHistoryButton/ExportHistoryButton.css +0 -22
  389. package/src/components/FeedbackButtons/FeedbackButtons.css +0 -107
  390. package/src/components/FeedbackButtons/FeedbackButtons.stories.tsx +0 -52
  391. package/src/components/FeedbackButtons/FeedbackButtons.test.tsx +0 -11
  392. package/src/components/FeedbackButtons/FeedbackButtons.tsx +0 -152
  393. package/src/components/FeedbackButtons/__snapshots__/FeedbackButtons.test.tsx.snap +0 -42
  394. package/src/components/FilePreview/FilePreview.css +0 -358
  395. package/src/components/FilePreview/FilePreview.stories.tsx +0 -63
  396. package/src/components/FilePreview/FilePreview.test.tsx +0 -26
  397. package/src/components/FilePreview/FilePreview.tsx +0 -277
  398. package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +0 -185
  399. package/src/components/Header/ChatConsumptionDropdown.test.tsx +0 -117
  400. package/src/components/Header/ChatConsumptionDropdown.tsx +0 -275
  401. package/src/components/Header/Header.css +0 -282
  402. package/src/components/Header/Header.stories.tsx +0 -338
  403. package/src/components/Header/Header.test.tsx +0 -371
  404. package/src/components/Header/Header.tsx +0 -442
  405. package/src/components/Header/__snapshots__/Header.test.tsx.snap +0 -964
  406. package/src/components/KnownFacts/KnownFacts.css +0 -19
  407. package/src/components/KnownFacts/KnownFacts.stories.tsx +0 -80
  408. package/src/components/KnownFacts/KnownFacts.test.tsx +0 -57
  409. package/src/components/KnownFacts/KnownFacts.tsx +0 -376
  410. package/src/components/KnownFacts/__snapshots__/KnownFacts.test.tsx.snap +0 -19
  411. package/src/components/LoginDrawer/LoginDrawer.css +0 -1616
  412. package/src/components/LoginDrawer/LoginDrawer.stories.tsx +0 -102
  413. package/src/components/LoginDrawer/LoginDrawer.test.tsx +0 -199
  414. package/src/components/LoginDrawer/LoginDrawer.tsx +0 -600
  415. package/src/components/LoginDrawer/__snapshots__/LoginDrawer.test.tsx.snap +0 -91
  416. package/src/components/MediaWidget/DocumentCard.test.tsx +0 -45
  417. package/src/components/MediaWidget/DocumentCard.tsx +0 -19
  418. package/src/components/MediaWidget/MediaItemWidget.css +0 -1398
  419. package/src/components/MediaWidget/MediaItemWidget.stories.tsx +0 -423
  420. package/src/components/MediaWidget/MediaItemWidget.test.tsx +0 -248
  421. package/src/components/MediaWidget/MediaItemWidget.tsx +0 -997
  422. package/src/components/MediaWidget/MediaItemWidget.types.ts +0 -65
  423. package/src/components/MediaWidget/MediaItemWidget.utils.test.ts +0 -367
  424. package/src/components/MediaWidget/MediaItemWidget.utils.ts +0 -227
  425. package/src/components/MediaWidget/MediaPreviewModal.test.tsx +0 -271
  426. package/src/components/MediaWidget/MediaPreviewModal.tsx +0 -425
  427. package/src/components/MediaWidget/MediaWidget.css +0 -131
  428. package/src/components/MediaWidget/MediaWidget.stories.tsx +0 -319
  429. package/src/components/MediaWidget/MediaWidget.test.tsx +0 -41
  430. package/src/components/MediaWidget/MediaWidget.tsx +0 -107
  431. package/src/components/MediaWidget/__snapshots__/DocumentCard.test.tsx.snap +0 -24
  432. package/src/components/MediaWidget/__snapshots__/MediaItemWidget.test.tsx.snap +0 -791
  433. package/src/components/MediaWidget/__snapshots__/MediaWidget.test.tsx.snap +0 -154
  434. package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +0 -2299
  435. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +0 -163
  436. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +0 -250
  437. package/src/components/MemoriArtifactSystem/components/ArtifactActions/CopyButton.stories.tsx +0 -30
  438. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.tsx +0 -467
  439. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.tsx +0 -89
  440. package/src/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.ts +0 -619
  441. package/src/components/MemoriArtifactSystem/components/ArtifactActions/index.ts +0 -9
  442. package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +0 -489
  443. package/src/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.tsx +0 -90
  444. package/src/components/MemoriArtifactSystem/components/ArtifactActions/types.ts +0 -73
  445. package/src/components/MemoriArtifactSystem/components/ArtifactActions/utils/PDFExporter.ts +0 -454
  446. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +0 -1059
  447. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +0 -431
  448. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +0 -150
  449. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.tsx +0 -79
  450. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +0 -253
  451. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +0 -561
  452. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +0 -355
  453. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +0 -160
  454. package/src/components/MemoriArtifactSystem/context/ArtifactContext.tsx +0 -167
  455. package/src/components/MemoriArtifactSystem/types/artifact.types.ts +0 -35
  456. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.test.tsx +0 -308
  457. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.tsx +0 -379
  458. package/src/components/MemoriArtifactSystem/utils/applyEdits.test.ts +0 -85
  459. package/src/components/MemoriArtifactSystem/utils/applyEdits.ts +0 -173
  460. package/src/components/MemoriWidget/MemoriWidget.css +0 -220
  461. package/src/components/MemoriWidget/MemoriWidget.stories.tsx +0 -274
  462. package/src/components/MemoriWidget/MemoriWidget.tsx +0 -3930
  463. package/src/components/MicrophoneButton/MicrophoneButton.css +0 -142
  464. package/src/components/MicrophoneButton/MicrophoneButton.stories.tsx +0 -52
  465. package/src/components/MicrophoneButton/MicrophoneButton.tsx +0 -128
  466. package/src/components/PositionDrawer/PositionDrawer.stories.tsx +0 -51
  467. package/src/components/PositionDrawer/PositionDrawer.test.tsx +0 -39
  468. package/src/components/PositionDrawer/PositionDrawer.tsx +0 -50
  469. package/src/components/PositionDrawer/__snapshots__/PositionDrawer.test.tsx.snap +0 -17
  470. package/src/components/PoweredBy/PoweredBy.css +0 -47
  471. package/src/components/PoweredBy/PoweredBy.stories.tsx +0 -75
  472. package/src/components/PoweredBy/PoweredBy.test.tsx +0 -15
  473. package/src/components/PoweredBy/PoweredBy.tsx +0 -44
  474. package/src/components/PoweredBy/__snapshots__/PoweredBy.test.tsx.snap +0 -55
  475. package/src/components/SendOnEnterMenu/SendOnEnterMenu.css +0 -47
  476. package/src/components/SendOnEnterMenu/SendOnEnterMenu.stories.tsx +0 -58
  477. package/src/components/SendOnEnterMenu/SendOnEnterMenu.test.tsx +0 -17
  478. package/src/components/SendOnEnterMenu/SendOnEnterMenu.tsx +0 -82
  479. package/src/components/SendOnEnterMenu/__snapshots__/SendOnEnterMenu.test.tsx.snap +0 -57
  480. package/src/components/SettingsDrawer/SettingsDrawer.css +0 -24
  481. package/src/components/SettingsDrawer/SettingsDrawer.stories.tsx +0 -94
  482. package/src/components/SettingsDrawer/SettingsDrawer.test.tsx +0 -202
  483. package/src/components/SettingsDrawer/SettingsDrawer.tsx +0 -255
  484. package/src/components/SettingsDrawer/__snapshots__/SettingsDrawer.test.tsx.snap +0 -59
  485. package/src/components/ShareButton/ShareButton.css +0 -73
  486. package/src/components/ShareButton/ShareButton.stories.tsx +0 -98
  487. package/src/components/ShareButton/ShareButton.test.tsx +0 -53
  488. package/src/components/ShareButton/ShareButton.tsx +0 -395
  489. package/src/components/ShareButton/__snapshots__/ShareButton.test.tsx.snap +0 -316
  490. package/src/components/Snippet/Snippet.css +0 -142
  491. package/src/components/Snippet/Snippet.stories.tsx +0 -286
  492. package/src/components/Snippet/Snippet.test.tsx +0 -176
  493. package/src/components/Snippet/Snippet.tsx +0 -148
  494. package/src/components/Snippet/__snapshots__/Snippet.test.tsx.snap +0 -603
  495. package/src/components/StartPanel/StartPanel.css +0 -273
  496. package/src/components/StartPanel/StartPanel.stories.tsx +0 -404
  497. package/src/components/StartPanel/StartPanel.test.tsx +0 -360
  498. package/src/components/StartPanel/StartPanel.tsx +0 -426
  499. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +0 -1986
  500. package/src/components/Typing/Typing.stories.tsx +0 -130
  501. package/src/components/Typing/Typing.test.tsx +0 -62
  502. package/src/components/Typing/Typing.tsx +0 -154
  503. package/src/components/Typing/__snapshots__/Typing.test.tsx.snap +0 -133
  504. package/src/components/UploadButton/UploadButton.css +0 -542
  505. package/src/components/UploadButton/UploadButton.stories.tsx +0 -376
  506. package/src/components/UploadButton/UploadButton.test.tsx +0 -11
  507. package/src/components/UploadButton/UploadButton.tsx +0 -688
  508. package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +0 -421
  509. package/src/components/UploadButton/UploadImages/UploadImages.tsx +0 -538
  510. package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +0 -165
  511. package/src/components/VenueWidget/VenueWidget.css +0 -163
  512. package/src/components/VenueWidget/VenueWidget.stories.tsx +0 -66
  513. package/src/components/VenueWidget/VenueWidget.test.tsx +0 -49
  514. package/src/components/VenueWidget/VenueWidget.tsx +0 -458
  515. package/src/components/VenueWidget/__snapshots__/VenueWidget.test.tsx.snap +0 -370
  516. package/src/components/WhyThisAnswer/WhyThisAnswer.css +0 -171
  517. package/src/components/WhyThisAnswer/WhyThisAnswer.stories.tsx +0 -285
  518. package/src/components/WhyThisAnswer/WhyThisAnswer.test.tsx +0 -245
  519. package/src/components/WhyThisAnswer/WhyThisAnswer.tsx +0 -233
  520. package/src/components/WhyThisAnswer/__snapshots__/WhyThisAnswer.test.tsx.snap +0 -27
  521. package/src/components/icons/AI.tsx +0 -34
  522. package/src/components/icons/Alert.tsx +0 -31
  523. package/src/components/icons/ArrowUp.tsx +0 -28
  524. package/src/components/icons/Bug.tsx +0 -81
  525. package/src/components/icons/Chat.tsx +0 -30
  526. package/src/components/icons/ChevronDown.tsx +0 -26
  527. package/src/components/icons/ChevronLeft.tsx +0 -28
  528. package/src/components/icons/ChevronRight.tsx +0 -28
  529. package/src/components/icons/ChevronUp.tsx +0 -24
  530. package/src/components/icons/Clear.tsx +0 -23
  531. package/src/components/icons/Close.tsx +0 -30
  532. package/src/components/icons/Code.tsx +0 -24
  533. package/src/components/icons/Copy.tsx +0 -23
  534. package/src/components/icons/DeepThought.tsx +0 -38
  535. package/src/components/icons/Delete.tsx +0 -23
  536. package/src/components/icons/Document.tsx +0 -50
  537. package/src/components/icons/Download.tsx +0 -23
  538. package/src/components/icons/Edit.tsx +0 -17
  539. package/src/components/icons/Expand.tsx +0 -23
  540. package/src/components/icons/Eye.tsx +0 -17
  541. package/src/components/icons/EyeInvisible.tsx +0 -24
  542. package/src/components/icons/Facebook.tsx +0 -23
  543. package/src/components/icons/Feedback.tsx +0 -24
  544. package/src/components/icons/File.tsx +0 -17
  545. package/src/components/icons/FileExcel.tsx +0 -23
  546. package/src/components/icons/FilePdf.tsx +0 -23
  547. package/src/components/icons/FileWord.tsx +0 -23
  548. package/src/components/icons/Fullscreen.tsx +0 -23
  549. package/src/components/icons/FullscreenExit.tsx +0 -23
  550. package/src/components/icons/GasStation.tsx +0 -36
  551. package/src/components/icons/Group.tsx +0 -30
  552. package/src/components/icons/History.tsx +0 -33
  553. package/src/components/icons/Image.tsx +0 -37
  554. package/src/components/icons/Info.tsx +0 -31
  555. package/src/components/icons/Link.tsx +0 -17
  556. package/src/components/icons/Linkedin.tsx +0 -23
  557. package/src/components/icons/Loading.tsx +0 -28
  558. package/src/components/icons/Logout.tsx +0 -27
  559. package/src/components/icons/Mail.tsx +0 -17
  560. package/src/components/icons/MapMarker.tsx +0 -26
  561. package/src/components/icons/MenuHorizontal.tsx +0 -29
  562. package/src/components/icons/MenuVertical.tsx +0 -29
  563. package/src/components/icons/Message.tsx +0 -23
  564. package/src/components/icons/Microphone.tsx +0 -23
  565. package/src/components/icons/Minus.tsx +0 -23
  566. package/src/components/icons/MinusCircle.tsx +0 -24
  567. package/src/components/icons/PaperClip.tsx +0 -23
  568. package/src/components/icons/Picture.tsx +0 -23
  569. package/src/components/icons/Plus.tsx +0 -18
  570. package/src/components/icons/Preview.tsx +0 -29
  571. package/src/components/icons/Print.tsx +0 -38
  572. package/src/components/icons/QuestionHelp.tsx +0 -30
  573. package/src/components/icons/Refresh.tsx +0 -30
  574. package/src/components/icons/SelectIcon.tsx +0 -28
  575. package/src/components/icons/Send.tsx +0 -17
  576. package/src/components/icons/Setting.tsx +0 -23
  577. package/src/components/icons/Share.tsx +0 -23
  578. package/src/components/icons/Sound.tsx +0 -23
  579. package/src/components/icons/SoundDeactivated.tsx +0 -27
  580. package/src/components/icons/Telegram.tsx +0 -26
  581. package/src/components/icons/ThumbDown.tsx +0 -29
  582. package/src/components/icons/ThumbUp.tsx +0 -29
  583. package/src/components/icons/Translation.tsx +0 -24
  584. package/src/components/icons/Twitter.tsx +0 -23
  585. package/src/components/icons/Upload.tsx +0 -34
  586. package/src/components/icons/User.tsx +0 -17
  587. package/src/components/icons/Warning.tsx +0 -24
  588. package/src/components/icons/WhatsApp.tsx +0 -24
  589. package/src/components/icons/icons.stories.css +0 -5
  590. package/src/components/icons/icons.stories.tsx +0 -81
  591. package/src/components/icons/loading.css +0 -14
  592. package/src/components/layouts/Chat.test.tsx +0 -40
  593. package/src/components/layouts/Chat.tsx +0 -69
  594. package/src/components/layouts/FullBody/FullBody.stories.tsx +0 -110
  595. package/src/components/layouts/FullPage.test.tsx +0 -65
  596. package/src/components/layouts/FullPage.tsx +0 -80
  597. package/src/components/layouts/HiddenChat.test.tsx +0 -40
  598. package/src/components/layouts/HiddenChat.tsx +0 -233
  599. package/src/components/layouts/Totem/Totem.stories.tsx +0 -131
  600. package/src/components/layouts/Totem.test.tsx +0 -40
  601. package/src/components/layouts/Totem.tsx +0 -49
  602. package/src/components/layouts/WebsiteAssistant.test.tsx +0 -40
  603. package/src/components/layouts/WebsiteAssistant.tsx +0 -132
  604. package/src/components/layouts/ZoomedFullBody/ZoomedFullBody.stories.tsx +0 -131
  605. package/src/components/layouts/ZoomedFullBody.test.tsx +0 -40
  606. package/src/components/layouts/ZoomedFullBody.tsx +0 -81
  607. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +0 -457
  608. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +0 -1045
  609. package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +0 -460
  610. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +0 -566
  611. package/src/components/layouts/__snapshots__/WebsiteAssistant.test.tsx.snap +0 -59
  612. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +0 -523
  613. package/src/components/layouts/chat.css +0 -451
  614. package/src/components/layouts/hidden-chat.css +0 -276
  615. package/src/components/layouts/layouts.stories.tsx +0 -231
  616. package/src/components/layouts/totem.css +0 -221
  617. package/src/components/layouts/zoomed-full-body.css +0 -18
  618. package/src/components/ui/Alert.css +0 -93
  619. package/src/components/ui/Alert.stories.tsx +0 -137
  620. package/src/components/ui/Alert.test.tsx +0 -129
  621. package/src/components/ui/Alert.tsx +0 -123
  622. package/src/components/ui/Button.css +0 -167
  623. package/src/components/ui/Button.stories.tsx +0 -156
  624. package/src/components/ui/Button.test.tsx +0 -74
  625. package/src/components/ui/Button.tsx +0 -107
  626. package/src/components/ui/Card.css +0 -65
  627. package/src/components/ui/Card.stories.tsx +0 -95
  628. package/src/components/ui/Card.test.tsx +0 -47
  629. package/src/components/ui/Card.tsx +0 -48
  630. package/src/components/ui/Checkbox.css +0 -116
  631. package/src/components/ui/Checkbox.stories.tsx +0 -74
  632. package/src/components/ui/Checkbox.test.tsx +0 -28
  633. package/src/components/ui/Checkbox.tsx +0 -58
  634. package/src/components/ui/ConfirmDialog.css +0 -42
  635. package/src/components/ui/ConfirmDialog.stories.tsx +0 -216
  636. package/src/components/ui/ConfirmDialog.test.tsx +0 -124
  637. package/src/components/ui/ConfirmDialog.tsx +0 -58
  638. package/src/components/ui/Details.css +0 -66
  639. package/src/components/ui/Drawer.css +0 -270
  640. package/src/components/ui/Drawer.stories.tsx +0 -267
  641. package/src/components/ui/Drawer.test.tsx +0 -130
  642. package/src/components/ui/Drawer.tsx +0 -293
  643. package/src/components/ui/Dropdown.css +0 -173
  644. package/src/components/ui/Dropdown.tsx +0 -63
  645. package/src/components/ui/Expandable.css +0 -15
  646. package/src/components/ui/Expandable.stories.tsx +0 -180
  647. package/src/components/ui/Expandable.test.tsx +0 -107
  648. package/src/components/ui/Expandable.tsx +0 -121
  649. package/src/components/ui/Modal.css +0 -98
  650. package/src/components/ui/Modal.stories.tsx +0 -171
  651. package/src/components/ui/Modal.test.tsx +0 -111
  652. package/src/components/ui/Modal.tsx +0 -117
  653. package/src/components/ui/Select.css +0 -138
  654. package/src/components/ui/Select.stories.tsx +0 -79
  655. package/src/components/ui/Select.test.tsx +0 -84
  656. package/src/components/ui/Select.tsx +0 -79
  657. package/src/components/ui/Slider.css +0 -192
  658. package/src/components/ui/Slider.stories.tsx +0 -63
  659. package/src/components/ui/Slider.tsx +0 -142
  660. package/src/components/ui/Spin.css +0 -31
  661. package/src/components/ui/Spin.stories.tsx +0 -64
  662. package/src/components/ui/Spin.test.tsx +0 -41
  663. package/src/components/ui/Spin.tsx +0 -31
  664. package/src/components/ui/Table.css +0 -132
  665. package/src/components/ui/Tooltip.css +0 -171
  666. package/src/components/ui/Tooltip.stories.tsx +0 -109
  667. package/src/components/ui/Tooltip.test.tsx +0 -102
  668. package/src/components/ui/Tooltip.tsx +0 -163
  669. package/src/components/ui/__snapshots__/Alert.test.tsx.snap +0 -59
  670. package/src/components/ui/__snapshots__/Button.test.tsx.snap +0 -204
  671. package/src/components/ui/__snapshots__/Card.test.tsx.snap +0 -321
  672. package/src/components/ui/__snapshots__/Checkbox.test.tsx.snap +0 -131
  673. package/src/components/ui/__snapshots__/ConfirmDialog.test.tsx.snap +0 -35
  674. package/src/components/ui/__snapshots__/Drawer.test.tsx.snap +0 -67
  675. package/src/components/ui/__snapshots__/Expandable.test.tsx.snap +0 -159
  676. package/src/components/ui/__snapshots__/Modal.test.tsx.snap +0 -59
  677. package/src/components/ui/__snapshots__/Select.test.tsx.snap +0 -254
  678. package/src/components/ui/__snapshots__/Spin.test.tsx.snap +0 -193
  679. package/src/components/ui/__snapshots__/Tooltip.test.tsx.snap +0 -113
  680. package/src/components/ui/definitions.stories.tsx +0 -139
  681. package/src/context/visemeContext.tsx +0 -384
  682. package/src/helpers/chatPdfExport.ts +0 -544
  683. package/src/helpers/configuration.ts +0 -42
  684. package/src/helpers/constants.ts +0 -268
  685. package/src/helpers/convertDocument.test.ts +0 -67
  686. package/src/helpers/convertDocument.ts +0 -35
  687. package/src/helpers/credits.ts +0 -54
  688. package/src/helpers/error.test.ts +0 -29
  689. package/src/helpers/error.ts +0 -278
  690. package/src/helpers/imageCompression.ts +0 -230
  691. package/src/helpers/llmUsage.ts +0 -328
  692. package/src/helpers/markedExtendedTables.js +0 -217
  693. package/src/helpers/media.test.ts +0 -169
  694. package/src/helpers/media.ts +0 -81
  695. package/src/helpers/message.test.ts +0 -126
  696. package/src/helpers/message.ts +0 -219
  697. package/src/helpers/nats/getNatsConfig.ts +0 -148
  698. package/src/helpers/nats/isSessionExpiredError.test.ts +0 -38
  699. package/src/helpers/nats/isSessionExpiredError.ts +0 -51
  700. package/src/helpers/nats/useNats.test.tsx +0 -81
  701. package/src/helpers/nats/useNats.ts +0 -204
  702. package/src/helpers/nats/useNatsSession.test.ts +0 -16
  703. package/src/helpers/nats/useNatsSession.ts +0 -460
  704. package/src/helpers/piiDetection.test.ts +0 -186
  705. package/src/helpers/piiDetection.ts +0 -91
  706. package/src/helpers/sanitizer.ts +0 -17
  707. package/src/helpers/statistics.ts +0 -58
  708. package/src/helpers/stt/useSTT.ts +0 -515
  709. package/src/helpers/translations.ts +0 -39
  710. package/src/helpers/tts/ttsVoiceUtility.ts +0 -275
  711. package/src/helpers/tts/useTTS.ts +0 -621
  712. package/src/helpers/utils.test.ts +0 -331
  713. package/src/helpers/utils.ts +0 -591
  714. package/src/helpers/venue.ts +0 -36
  715. package/src/i18n.ts +0 -39
  716. package/src/index.stories.tsx +0 -220
  717. package/src/index.test.tsx +0 -156
  718. package/src/index.tsx +0 -592
  719. package/src/locales/de.json +0 -680
  720. package/src/locales/en.json +0 -754
  721. package/src/locales/es.json +0 -682
  722. package/src/locales/fr.json +0 -682
  723. package/src/locales/it.json +0 -750
  724. package/src/mocks/data.ts +0 -790
  725. package/src/styles.css +0 -126
  726. package/src/types/integration.test.ts +0 -32
  727. package/src/types/integration.ts +0 -31
  728. package/src/types/layout.ts +0 -50
  729. package/src/version.ts +0 -2
@@ -1,271 +0,0 @@
1
- import React from 'react';
2
- import { render, screen, fireEvent } from '@testing-library/react';
3
- import '@testing-library/jest-dom';
4
- import { MediaPreviewModal } from './MediaPreviewModal';
5
- import type { Medium } from '@memori.ai/memori-api-client/dist/types';
6
-
7
- beforeAll(() => {
8
- if (typeof window !== 'undefined' && !window.IntersectionObserver) {
9
- (window as unknown as { IntersectionObserver: unknown }).IntersectionObserver = jest.fn().mockImplementation(() => ({
10
- observe: jest.fn(),
11
- unobserve: jest.fn(),
12
- disconnect: jest.fn(),
13
- }));
14
- }
15
- if (typeof global !== 'undefined' && !globalThis.IntersectionObserver) {
16
- (globalThis as unknown as { IntersectionObserver: unknown }).IntersectionObserver = jest.fn().mockImplementation(() => ({
17
- observe: jest.fn(),
18
- unobserve: jest.fn(),
19
- disconnect: jest.fn(),
20
- }));
21
- }
22
- });
23
-
24
- jest.mock('../../helpers/media', () => ({
25
- getResourceUrl: jest.fn(({ resourceURI }: { resourceURI?: string }) =>
26
- resourceURI ? `https://resolved.example.com/${resourceURI}` : ''
27
- ),
28
- }));
29
-
30
- describe('MediaPreviewModal', () => {
31
- const onClose = jest.fn();
32
-
33
- beforeEach(() => {
34
- jest.clearAllMocks();
35
- });
36
-
37
- describe('images', () => {
38
- it('renders image in ContentPreviewModal with title and src', () => {
39
- const medium: Medium = {
40
- mediumID: 'img-1',
41
- mimeType: 'image/jpeg',
42
- title: 'Photo',
43
- url: 'https://example.com/photo.jpg',
44
- };
45
- render(
46
- <MediaPreviewModal medium={medium} onClose={onClose} />
47
- );
48
- expect(screen.getByAltText('Photo')).toBeInTheDocument();
49
- expect(screen.getByAltText('Photo')).toHaveAttribute('src', expect.stringContaining('photo.jpg'));
50
- });
51
-
52
- it('uses base64 data URL when image has content', () => {
53
- const medium: Medium = {
54
- mediumID: 'img-2',
55
- mimeType: 'image/png',
56
- title: 'Inline',
57
- content: 'base64content',
58
- };
59
- render(
60
- <MediaPreviewModal medium={medium} onClose={onClose} />
61
- );
62
- const img = screen.getByAltText('Inline');
63
- expect(img).toHaveAttribute('src', expect.stringMatching(/^data:image\/png;base64,/));
64
- });
65
- });
66
-
67
- describe('code', () => {
68
- it('renders code snippet with Snippet component', () => {
69
- const medium: Medium = {
70
- mediumID: 'code-1',
71
- mimeType: 'text/javascript',
72
- title: 'Script',
73
- content: 'console.log("hello");',
74
- };
75
- render(
76
- <MediaPreviewModal medium={medium} onClose={onClose} />
77
- );
78
- expect(screen.getByText(/console\.log/)).toBeInTheDocument();
79
- });
80
- });
81
-
82
- describe('PDF', () => {
83
- it('renders PDF in iframe when url or content present', () => {
84
- const medium: Medium = {
85
- mediumID: 'pdf-1',
86
- mimeType: 'application/pdf',
87
- title: 'Document',
88
- url: 'https://example.com/doc.pdf',
89
- };
90
- render(
91
- <MediaPreviewModal medium={medium} onClose={onClose} sessionID="s1" baseURL="https://api.example.com" />
92
- );
93
- const iframe = screen.getByTitle('Document');
94
- expect(iframe).toBeInTheDocument();
95
- expect(iframe.tagName).toBe('IFRAME');
96
- });
97
- });
98
-
99
- describe('Excel', () => {
100
- it('renders Excel in iframe when url or content present', () => {
101
- const medium: Medium = {
102
- mediumID: 'xls-1',
103
- mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
104
- title: 'Sheet',
105
- url: 'https://example.com/sheet.xlsx',
106
- };
107
- render(
108
- <MediaPreviewModal medium={medium} onClose={onClose} />
109
- );
110
- const iframe = screen.getByTitle('Sheet');
111
- expect(iframe).toBeInTheDocument();
112
- });
113
- });
114
-
115
- describe('HTML', () => {
116
- it('renders HTML link in iframe when only url', () => {
117
- const medium: Medium = {
118
- mediumID: 'html-1',
119
- mimeType: 'text/html',
120
- title: 'Page',
121
- url: 'example.com/page',
122
- };
123
- render(
124
- <MediaPreviewModal medium={medium} onClose={onClose} />
125
- );
126
- const iframe = screen.getByTitle('Page');
127
- expect(iframe).toBeInTheDocument();
128
- expect(iframe).toHaveAttribute('src', 'https://example.com/page');
129
- });
130
-
131
- it('renders HTML with content as stripped text in Snippet', () => {
132
- const medium: Medium = {
133
- mediumID: 'html-2',
134
- mimeType: 'text/html',
135
- title: 'Inline HTML',
136
- content: '<p>Hello world</p>',
137
- };
138
- render(
139
- <MediaPreviewModal medium={medium} onClose={onClose} />
140
- );
141
- expect(screen.getByText(/Hello world/)).toBeInTheDocument();
142
- });
143
- });
144
-
145
- describe('video and audio', () => {
146
- it('renders video with native controls', () => {
147
- const medium: Medium = {
148
- mediumID: 'vid-1',
149
- mimeType: 'video/mp4',
150
- title: 'Clip',
151
- url: 'https://example.com/video.mp4',
152
- };
153
- render(
154
- <MediaPreviewModal medium={medium} onClose={onClose} />
155
- );
156
- const video = document.querySelector('video');
157
- expect(video).toBeInTheDocument();
158
- expect(video).toHaveAttribute('src', expect.stringContaining('video.mp4'));
159
- });
160
-
161
- it('renders audio with title and controls', () => {
162
- const medium: Medium = {
163
- mediumID: 'aud-1',
164
- mimeType: 'audio/mpeg',
165
- title: 'Track',
166
- url: 'https://example.com/audio.mp3',
167
- };
168
- render(
169
- <MediaPreviewModal medium={medium} onClose={onClose} />
170
- );
171
- expect(screen.getAllByText('Track').length).toBeGreaterThan(0);
172
- const audio = document.querySelector('audio');
173
- expect(audio).toBeInTheDocument();
174
- });
175
- });
176
-
177
- describe('plain text and markdown', () => {
178
- it('renders plain text in Snippet', () => {
179
- const medium: Medium = {
180
- mediumID: 'txt-1',
181
- mimeType: 'text/plain',
182
- title: 'Notes',
183
- content: 'Some plain text.',
184
- };
185
- render(
186
- <MediaPreviewModal medium={medium} onClose={onClose} />
187
- );
188
- expect(screen.getByText(/Some plain text/)).toBeInTheDocument();
189
- });
190
-
191
- it('renders markdown in Snippet', () => {
192
- const medium: Medium = {
193
- mediumID: 'md-1',
194
- mimeType: 'text/markdown',
195
- title: 'Readme',
196
- content: '# Title\n\nParagraph.',
197
- };
198
- render(
199
- <MediaPreviewModal medium={medium} onClose={onClose} />
200
- );
201
- expect(screen.getByText(/# Title/)).toBeInTheDocument();
202
- });
203
- });
204
-
205
- describe('Word / fallback', () => {
206
- it('shows "Preview not available" for Word docs with Open and Download', () => {
207
- const medium: Medium = {
208
- mediumID: 'doc-1',
209
- mimeType: 'application/msword',
210
- title: 'Report.doc',
211
- url: 'https://example.com/report.doc',
212
- };
213
- render(
214
- <MediaPreviewModal medium={medium} onClose={onClose} />
215
- );
216
- expect(screen.getByText(/Preview not available for this document/)).toBeInTheDocument();
217
- expect(screen.getByText(/Open in new tab/)).toBeInTheDocument();
218
- expect(screen.getByText(/Download/)).toBeInTheDocument();
219
- });
220
-
221
- it('shows generic fallback for unknown file type', () => {
222
- const medium: Medium = {
223
- mediumID: 'unk-1',
224
- mimeType: 'application/octet-stream',
225
- title: 'file.bin',
226
- url: 'https://example.com/file.bin',
227
- };
228
- render(
229
- <MediaPreviewModal medium={medium} onClose={onClose} />
230
- );
231
- expect(screen.getByText(/Preview not available for this file type/)).toBeInTheDocument();
232
- });
233
- });
234
-
235
- describe('document attachment content', () => {
236
- it('renders document attachment text in Snippet', () => {
237
- const medium: Medium = {
238
- mediumID: 'att-1',
239
- mimeType: 'text/plain',
240
- title: 'Extracted',
241
- content: 'Extracted text from PDF',
242
- properties: { isDocumentAttachment: true },
243
- };
244
- render(
245
- <MediaPreviewModal medium={medium} onClose={onClose} />
246
- );
247
- expect(screen.getByText(/Extracted text from PDF/)).toBeInTheDocument();
248
- });
249
- });
250
-
251
- describe('onClose', () => {
252
- it('modal can be closed via ContentPreviewModal', () => {
253
- const medium: Medium = {
254
- mediumID: 'img-1',
255
- mimeType: 'image/jpeg',
256
- title: 'Photo',
257
- url: 'https://example.com/photo.jpg',
258
- };
259
- render(
260
- <MediaPreviewModal medium={medium} onClose={onClose} />
261
- );
262
- const closeWrapper = document.querySelector('.memori-modal--close');
263
- expect(closeWrapper).toBeInTheDocument();
264
- const closeButton = closeWrapper?.querySelector('button');
265
- if (closeButton) {
266
- fireEvent.click(closeButton);
267
- expect(onClose).toHaveBeenCalled();
268
- }
269
- });
270
- });
271
- });
@@ -1,425 +0,0 @@
1
- import type { Medium } from '@memori.ai/memori-api-client/dist/types';
2
- import React from 'react';
3
- import { getResourceUrl } from '../../helpers/media';
4
- import { prismSyntaxLangs } from '../../helpers/constants';
5
- import { stripHTML, stripDocumentAttachmentTags } from '../../helpers/utils';
6
- import Snippet from '../Snippet/Snippet';
7
- import ContentPreviewModal from '../ContentPreviewModal';
8
- import ModelViewer from '../CustomGLBModelViewer/ModelViewer';
9
- import {
10
- IMAGE_MIME_TYPES,
11
- getImageDisplaySource,
12
- } from './MediaItemWidget.utils';
13
-
14
- /*
15
- * Media types handled in MediaPreviewModal and recommended UX:
16
- *
17
- * 1. IMAGES (image/jpeg, image/png, image/jpg, image/gif)
18
- * → Full-size in modal with title. Object-fit contain, optional alt.
19
- *
20
- * 2. CODE (text/javascript, text/ecmascript, application/json, text/css, application/xml,
21
- * application/x-sh, text/x-python, text/x-c++src, application/x-php, text/x-ruby, text/x-sql)
22
- * → Snippet with syntax highlighting and copy button.
23
- *
24
- * 3. PDF (application/pdf)
25
- * → Inline iframe preview; base64 or resource URL.
26
- *
27
- * 4. EXCEL (application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
28
- * → Inline iframe preview; base64 or resource URL.
29
- *
30
- * 5. HTML WITH CONTENT (text/html + content)
31
- * → Snippet showing stripped HTML as plain text.
32
- *
33
- * 6. HTML LINK (text/html + url only)
34
- * → Iframe loading the URL (https normalized).
35
- *
36
- * 7. VIDEO (video/mp4, video/quicktime, video/avi, video/mpeg)
37
- * → Native <video> with controls; base64 or resource URL.
38
- *
39
- * 8. AUDIO (audio/mpeg3, audio/wav, audio/mpeg)
40
- * → Native <audio> with controls; clear label and optional poster.
41
- *
42
- * 9. 3D MODEL (model/gltf-binary)
43
- * → ModelViewer in modal with fixed height and camera controls.
44
- *
45
- * 10. PLAIN TEXT (text/plain)
46
- * → Snippet (language-text) for readable, copyable content.
47
- *
48
- * 11. MARKDOWN (text/markdown)
49
- * → Snippet for now (readable as text); can be upgraded to rendered markdown later.
50
- *
51
- * 12. WORD / OTHER DOCS (application/msword, application/vnd...wordprocessingml.document, etc.)
52
- * → No reliable in-browser preview; show “Preview not available” + Open in new tab + Download.
53
- *
54
- * 13. UNKNOWN / FALLBACK
55
- * → Never empty: show title, type, and Open in new tab / Download.
56
- */
57
-
58
- // Collect supported code mime types for quick lookup
59
- const CODE_MIME_TYPES = prismSyntaxLangs.map((l) => l.mimeType);
60
-
61
- // Constants for file type mime types
62
- const MIME_PDF = 'application/pdf';
63
- const MIME_EXCEL_XLS = 'application/vnd.ms-excel';
64
- const MIME_EXCEL_XLSX =
65
- 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
66
- const MIME_HTML = 'text/html';
67
- const MIME_PLAIN = 'text/plain';
68
- const MIME_CSV = 'text/csv';
69
- const MIME_MARKDOWN = 'text/markdown';
70
- const MIME_WORD_DOC = 'application/msword';
71
- const MIME_WORD_DOCX =
72
- 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
73
- const MIME_WORD_DOTX =
74
- 'application/vnd.openxmlformats-officedocument.wordprocessingml.template';
75
-
76
- const VIDEO_MIME_TYPES = [
77
- 'video/mp4',
78
- 'video/quicktime',
79
- 'video/avi',
80
- 'video/mpeg',
81
- ] as const;
82
-
83
- const AUDIO_MIME_TYPES = [
84
- 'audio/mpeg3',
85
- 'audio/wav',
86
- 'audio/mpeg',
87
- ] as const;
88
-
89
- const MIME_3D_GLB = 'model/gltf-binary';
90
-
91
- // Placeholder for 3D model loading (gray 200x200 SVG)
92
- const DEFAULT_GLB_POSTER =
93
- 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cmVjdCB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgZmlsbD0iI2U1ZTdlYiIvPjwvc3ZnPg==';
94
-
95
- function isVideo(mimeType: string): boolean {
96
- return (VIDEO_MIME_TYPES as readonly string[]).includes(mimeType);
97
- }
98
-
99
- function isAudio(mimeType: string): boolean {
100
- return (AUDIO_MIME_TYPES as readonly string[]).includes(mimeType);
101
- }
102
-
103
- function isWordDoc(mimeType: string): boolean {
104
- return (
105
- mimeType === MIME_WORD_DOC ||
106
- mimeType === MIME_WORD_DOCX ||
107
- mimeType === MIME_WORD_DOTX
108
- );
109
- }
110
-
111
- // Document attachments (PDF, XLSX, TXT, CSV, etc.) are extracted as text, not binary.
112
- // Detect when content is actually plain text / XML from document_attachment so we render it as text.
113
- function isDocumentAttachmentContent(content: string | null | undefined): boolean {
114
- if (!content || typeof content !== 'string') return false;
115
- const trimmed = content.trim();
116
- return (
117
- trimmed.includes('document_attachment') ||
118
- trimmed.includes('<document_attachment') ||
119
- trimmed.includes('</document_attachment>') ||
120
- trimmed.includes('&lt;document_attachment') ||
121
- trimmed.includes('&lt;/document_attachment&gt;') ||
122
- (trimmed.startsWith('<') && trimmed.includes('>') && trimmed.length < 10000) // Likely XML/text, not binary
123
- );
124
- }
125
-
126
- // Props for the MediaPreviewModal component
127
- export interface MediaPreviewModalProps {
128
- medium: Medium;
129
- onClose: () => void;
130
- sessionID?: string;
131
- tenantID?: string;
132
- baseURL?: string;
133
- apiURL?: string;
134
- customMediaRenderer?: (mimeType: string) => JSX.Element | null;
135
- descriptionOneLine?: boolean;
136
- onLinkPreviewInfo?: (info: import('./MediaItemWidget.types').LinkPreviewInfo) => void;
137
- onMediumClick?: (mediumID: string) => void;
138
- }
139
-
140
- // MediaPreviewModal displays a modal preview of a media file, including special handling for code, PDF, HTML, etc.
141
- export function MediaPreviewModal({
142
- medium,
143
- onClose,
144
- sessionID,
145
- tenantID,
146
- baseURL,
147
- apiURL,
148
- customMediaRenderer: _customMediaRenderer,
149
- descriptionOneLine: _descriptionOneLine,
150
- onLinkPreviewInfo: _onLinkPreviewInfo,
151
- onMediumClick: _onMediumClick,
152
- }: MediaPreviewModalProps): React.ReactElement {
153
- // Determine the preview url for the medium based on its properties and the current session
154
- const previewUrl = getResourceUrl({
155
- resourceURI: medium.url,
156
- sessionID,
157
- tenantID,
158
- baseURL,
159
- apiURL,
160
- });
161
-
162
- // Check if this is a document attachment (extracted text, not binary file)
163
- // Document attachments can be PDF, XLSX, TXT, CSV, HTML, JSON, MD - all converted to text
164
- // Also check for attached files uploaded by the user
165
- const isDocumentAttachment =
166
- medium.properties?.isDocumentAttachment === true ||
167
- medium.properties?.isAttachedFile === true ||
168
- isDocumentAttachmentContent(medium.content);
169
-
170
- // Detect the type of the medium for custom rendering logic
171
- const isImage = IMAGE_MIME_TYPES.includes(medium.mimeType as (typeof IMAGE_MIME_TYPES)[number]);
172
- const isCode = CODE_MIME_TYPES.includes(medium.mimeType);
173
- const isPdf = medium.mimeType === MIME_PDF && !isDocumentAttachment;
174
- const isExcel =
175
- (medium.mimeType === MIME_EXCEL_XLS || medium.mimeType === MIME_EXCEL_XLSX) &&
176
- !isDocumentAttachment;
177
- const isHtmlWithContent = medium.mimeType === MIME_HTML && !!medium.content;
178
- const isHtmlLink =
179
- medium.mimeType === MIME_HTML && !!medium.url;
180
- const isVideoType = isVideo(medium.mimeType);
181
- const isAudioType = isAudio(medium.mimeType);
182
- const is3D = medium.mimeType === MIME_3D_GLB;
183
- // CSV files are converted to text and should be rendered as plain text
184
- const isCsv = medium.mimeType === MIME_CSV;
185
- const isPlainText = medium.mimeType === MIME_PLAIN || isDocumentAttachment || isCsv;
186
- const isMarkdown = medium.mimeType === MIME_MARKDOWN;
187
- const isWordType = isWordDoc(medium.mimeType);
188
-
189
- // Video/audio src: data URL from content or resource URL
190
- const mediaSrc =
191
- medium.content != null
192
- ? `data:${medium.mimeType};base64,${medium.content}`
193
- : previewUrl;
194
- const hasMediaSrc = !!mediaSrc;
195
- const glbSrc =
196
- medium.content != null
197
- ? `data:model/gltf-binary;base64,${medium.content}`
198
- : previewUrl;
199
-
200
- // Image: use shared resolution (resource URL, base64, or rgb) so modal matches grid
201
- const imageDisplay = isImage
202
- ? getImageDisplaySource(medium, previewUrl)
203
- : { src: undefined as string | undefined, isRgb: false };
204
- const { src: imageSrc, isRgb: isImageRgb } = imageDisplay;
205
-
206
- // For Excel and similar types, prepare an iframe src using either content (data URL) or preview url
207
- const iframeSrcFromContent = medium.content
208
- ? `data:${medium.mimeType};base64,${medium.content}`
209
- : previewUrl;
210
-
211
- // For HTML links, ensure the link src starts with "http" or prepend "https://"
212
- const htmlLinkSrc =
213
- !medium.url || medium.url.startsWith('http')
214
- ? medium.url
215
- : `https://${medium.url}`;
216
-
217
- // HTML/content as text: render inside Snippet (converted to text)
218
- const htmlAsTextMedium: Medium = {
219
- ...medium,
220
- mimeType: 'text/plain',
221
- content: stripHTML(medium.content || ''),
222
- };
223
-
224
- // Image preview: same source as grid (URL, base64, or rgb swatch)
225
- if (isImage) {
226
- if (isImageRgb && medium.url) {
227
- return (
228
- <ContentPreviewModal
229
- open
230
- onClose={onClose}
231
- title={medium.title ?? undefined}
232
- >
233
- <div
234
- className="memori-media-item-preview--content memori-media-item--modal-rgb"
235
- style={{
236
- width: '100%',
237
- minHeight: 200,
238
- backgroundColor: medium.url,
239
- }}
240
- />
241
- </ContentPreviewModal>
242
- );
243
- }
244
- if (imageSrc) {
245
- return (
246
- <ContentPreviewModal
247
- open
248
- onClose={onClose}
249
- title={medium.title ?? undefined}
250
- isImage
251
- imageSrc={imageSrc}
252
- imageAlt={medium.title ?? ''}
253
- />
254
- );
255
- }
256
- }
257
-
258
- return (
259
- <ContentPreviewModal
260
- open
261
- onClose={onClose}
262
- title={medium.title ?? undefined}
263
- >
264
- {isCode ? (
265
- <Snippet preview={false} medium={medium} />
266
- ) : isDocumentAttachment && medium.content ? (
267
- // Document attachments contain extracted text, not binary data
268
- // For HTML document attachments, open in new tab; for others, render as plain text
269
- (() => {
270
- const isHtmlDocumentAttachment =
271
- medium.mimeType === MIME_HTML && isDocumentAttachment;
272
-
273
- if (isHtmlDocumentAttachment) {
274
- // HTML document attachment: display HTML content in a code-like format
275
- let htmlContent = medium.content || '';
276
- if (htmlContent.includes('&lt;') || htmlContent.includes('&quot;')) {
277
- htmlContent = stripHTML(htmlContent) || htmlContent;
278
- } else {
279
- htmlContent = stripDocumentAttachmentTags(htmlContent);
280
- }
281
-
282
- // Create a medium object for HTML content to display in Snippet
283
- // Use 'application/xml' mimeType so Prism highlights it (maps to tsx/HTML highlighting)
284
- const htmlMedium: Medium = {
285
- ...medium,
286
- mimeType: 'application/xml', // Maps to HTML/XML highlighting in Prism
287
- content: htmlContent,
288
- };
289
-
290
- return (
291
- <Snippet preview={false} medium={htmlMedium} />
292
- );
293
- } else {
294
- // Other document attachments: render as plain text
295
- let displayContent = medium.content;
296
- if (displayContent.includes('&lt;') || displayContent.includes('&quot;')) {
297
- displayContent = stripHTML(displayContent) || displayContent;
298
- } else {
299
- displayContent = stripDocumentAttachmentTags(displayContent);
300
- }
301
-
302
- // Improve formatting for PDF text: normalize whitespace and ensure proper line breaks
303
- // Replace multiple spaces with single space, but preserve line breaks
304
- displayContent = displayContent
305
- .replace(/[ \t]+/g, ' ') // Replace multiple spaces/tabs with single space
306
- .replace(/\n{3,}/g, '\n\n') // Replace 3+ newlines with double newline
307
- .trim();
308
-
309
- return (
310
- <Snippet
311
- preview={false}
312
- medium={{
313
- ...medium,
314
- mimeType: 'text/plain',
315
- content: displayContent,
316
- }}
317
- />
318
- );
319
- }
320
- })()
321
- ) : isPdf && (previewUrl || medium.content) ? (
322
- <div className="memori-media-item-preview--content memori-media-item--modal-iframe-wrap">
323
- <iframe
324
- title={medium.title || 'PDF preview'}
325
- src={
326
- medium.content
327
- ? `data:application/pdf;base64,${medium.content}`
328
- : previewUrl
329
- }
330
- className="memori-media-item--modal-iframe"
331
- />
332
- </div>
333
- ) : isExcel && (previewUrl || medium.content) ? (
334
- <div className="memori-media-item-preview--content memori-media-item--modal-iframe-wrap">
335
- <iframe
336
- title={medium.title || 'Spreadsheet preview'}
337
- src={iframeSrcFromContent}
338
- className="memori-media-item--modal-iframe"
339
- />
340
- </div>
341
- ) : isHtmlWithContent && !isDocumentAttachment ? (
342
- // HTML with content (not a document attachment) - show as text
343
- <Snippet preview={false} medium={htmlAsTextMedium} />
344
- ) : isHtmlLink ? (
345
- <div className="memori-media-item-preview--content memori-media-item--modal-iframe-wrap">
346
- <iframe
347
- title={medium.title || 'Link preview'}
348
- src={htmlLinkSrc}
349
- className="memori-media-item--modal-iframe"
350
- />
351
- </div>
352
- ) : isVideoType && hasMediaSrc ? (
353
- <div className="memori-media-item-preview--content memori-media-item--modal-video-wrap">
354
- <video
355
- className="memori-media-item--modal-video"
356
- controls
357
- src={mediaSrc}
358
- title={medium.title || 'Video preview'}
359
- >
360
- {medium.mimeType === 'video/quicktime' && (
361
- <source src={mediaSrc} type="video/mp4" />
362
- )}
363
- Your browser does not support this video format.
364
- </video>
365
- </div>
366
- ) : isAudioType && hasMediaSrc ? (
367
- <div className="memori-media-item-preview--content memori-media-item--modal-audio-wrap">
368
- <p className="memori-media-item--modal-audio-title">
369
- {medium.title || 'Audio'}
370
- </p>
371
- <audio
372
- className="memori-media-item--modal-audio"
373
- controls
374
- src={mediaSrc}
375
- title={medium.title || 'Audio preview'}
376
- >
377
- Your browser does not support this audio format.
378
- </audio>
379
- </div>
380
- ) : is3D && glbSrc ? (
381
- <div className="memori-media-item-preview--content memori-media-item--modal-3d-wrap">
382
- <ModelViewer
383
- src={glbSrc}
384
- poster={DEFAULT_GLB_POSTER}
385
- alt={medium.title || '3D model'}
386
- />
387
- </div>
388
- ) : isPlainText && medium.content ? (
389
- <Snippet preview={false} medium={medium} />
390
- ) : isMarkdown && medium.content ? (
391
- <Snippet preview={false} medium={medium} />
392
- ) : (
393
- <div className="memori-media-item-preview--content memori-media-item--modal-fallback">
394
- <p className="memori-media-item--modal-fallback-message">
395
- {isWordType
396
- ? 'Preview not available for this document.'
397
- : 'Preview not available for this file type.'}
398
- </p>
399
- <p className="memori-media-item--modal-fallback-hint">
400
- You can open it in a new tab or download it.
401
- </p>
402
- {previewUrl && (
403
- <div className="memori-media-item--modal-fallback-actions">
404
- <a
405
- href={previewUrl}
406
- target="_blank"
407
- rel="noopener noreferrer"
408
- className="memori-media-item--modal-fallback-link"
409
- >
410
- Open in new tab
411
- </a>
412
- <a
413
- href={previewUrl}
414
- download={medium.title || undefined}
415
- className="memori-media-item--modal-fallback-link"
416
- >
417
- Download
418
- </a>
419
- </div>
420
- )}
421
- </div>
422
- )}
423
- </ContentPreviewModal>
424
- );
425
- }