@memori.ai/memori-react 8.45.1 → 8.45.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (511) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/components/Chat/Chat.js +4 -1
  3. package/dist/components/Chat/Chat.js.map +1 -1
  4. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +4 -1
  5. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +7 -57
  6. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  7. package/dist/components/IconButton/IconButton.d.ts +1 -1
  8. package/dist/components/MemoriWidget/MemoriWidget.d.ts +1 -1
  9. package/dist/components/MemoriWidget/MemoriWidget.js +2 -1
  10. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  11. package/dist/components/PositionPopover/PositionPopover.js +38 -25
  12. package/dist/components/PositionPopover/PositionPopover.js.map +1 -1
  13. package/dist/components/UploadButton/UploadButton.js +3 -0
  14. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  15. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +14 -2
  16. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  17. package/dist/components/layouts/chat.css +27 -4
  18. package/dist/context/widgetSurfaceContext.js +2 -2
  19. package/dist/context/widgetSurfaceContext.js.map +1 -1
  20. package/dist/helpers/constants.d.ts +3 -2
  21. package/dist/helpers/constants.js +19 -20
  22. package/dist/helpers/constants.js.map +1 -1
  23. package/dist/helpers/positionPopover.d.ts +2 -1
  24. package/dist/helpers/positionPopover.js +12 -3
  25. package/dist/helpers/positionPopover.js.map +1 -1
  26. package/dist/helpers/tts/muteSpeaker.js +4 -3
  27. package/dist/helpers/tts/muteSpeaker.js.map +1 -1
  28. package/dist/helpers/usePressTooltip.js +2 -1
  29. package/dist/helpers/usePressTooltip.js.map +1 -1
  30. package/dist/helpers/utils.d.ts +2 -1
  31. package/dist/helpers/utils.js +7 -1
  32. package/dist/helpers/utils.js.map +1 -1
  33. package/dist/icons/MemoriIcon.js +1 -1
  34. package/dist/icons/MemoriIcon.js.map +1 -1
  35. package/dist/styles.css +1 -2
  36. package/dist/version.d.ts +1 -1
  37. package/dist/version.js +1 -1
  38. package/esm/components/Chat/Chat.js +4 -1
  39. package/esm/components/Chat/Chat.js.map +1 -1
  40. package/esm/components/MemoriWidget/MemoriWidget.d.ts +1 -1
  41. package/esm/components/MemoriWidget/MemoriWidget.js +2 -1
  42. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  43. package/esm/components/UploadButton/UploadButton.js +4 -1
  44. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  45. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +16 -4
  46. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  47. package/esm/components/layouts/chat.css +27 -4
  48. package/esm/helpers/constants.d.ts +3 -2
  49. package/esm/helpers/constants.js +18 -19
  50. package/esm/helpers/constants.js.map +1 -1
  51. package/esm/helpers/utils.d.ts +2 -1
  52. package/esm/helpers/utils.js +6 -1
  53. package/esm/helpers/utils.js.map +1 -1
  54. package/esm/styles.css +1 -2
  55. package/esm/version.d.ts +1 -1
  56. package/esm/version.js +1 -1
  57. package/package.json +6 -7
  58. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.d.ts +0 -3
  59. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js +0 -64
  60. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js.map +0 -1
  61. package/dist/testUtils.d.ts +0 -5
  62. package/dist/testUtils.js +0 -18
  63. package/dist/testUtils.js.map +0 -1
  64. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.d.ts +0 -3
  65. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js +0 -62
  66. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.js.map +0 -1
  67. package/src/I18nWrapper.tsx +0 -13
  68. package/src/__snapshots__/index.test.tsx.snap +0 -96
  69. package/src/components/AgeVerificationModal/AgeVerificationModal.css +0 -95
  70. package/src/components/AgeVerificationModal/AgeVerificationModal.stories.tsx +0 -46
  71. package/src/components/AgeVerificationModal/AgeVerificationModal.test.tsx +0 -33
  72. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +0 -99
  73. package/src/components/AgeVerificationModal/__snapshots__/AgeVerificationModal.test.tsx.snap +0 -19
  74. package/src/components/Auth/Auth.css +0 -57
  75. package/src/components/Auth/Auth.stories.tsx +0 -90
  76. package/src/components/Auth/Auth.test.tsx +0 -63
  77. package/src/components/Auth/Auth.tsx +0 -201
  78. package/src/components/Auth/__snapshots__/Auth.test.tsx.snap +0 -143
  79. package/src/components/Avatar/Avatar.css +0 -151
  80. package/src/components/Avatar/Avatar.stories.tsx +0 -160
  81. package/src/components/Avatar/Avatar.test.tsx +0 -158
  82. package/src/components/Avatar/Avatar.tsx +0 -245
  83. package/src/components/Avatar/AvatarView/AvatarComponent/Shadow/DynamicShadow.tsx +0 -103
  84. package/src/components/Avatar/AvatarView/AvatarComponent/avatarComponent.tsx +0 -105
  85. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx +0 -338
  86. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/types.ts +0 -44
  87. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.ts +0 -1091
  88. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarPositionController.ts +0 -83
  89. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.ts +0 -301
  90. package/src/components/Avatar/AvatarView/AvatarComponent/components/controls.tsx +0 -100
  91. package/src/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.tsx +0 -152
  92. package/src/components/Avatar/AvatarView/AvatarComponent/components/loader.tsx +0 -31
  93. package/src/components/Avatar/AvatarView/AvatarComponent/constants.ts +0 -141
  94. package/src/components/Avatar/AvatarView/AvatarComponent/lights/Lights.tsx +0 -145
  95. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +0 -111
  96. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.tsx +0 -201
  97. package/src/components/Avatar/AvatarView/AvatarView.stories.tsx +0 -254
  98. package/src/components/Avatar/AvatarView/index.tsx +0 -194
  99. package/src/components/Avatar/AvatarView/utils/hideHands.ts +0 -11
  100. package/src/components/Avatar/AvatarView/utils/useEyeBlink.ts +0 -100
  101. package/src/components/Avatar/AvatarView/utils/useHeadMovement.ts +0 -72
  102. package/src/components/Avatar/AvatarView/utils/useLoadingMorphAnim.ts +0 -38
  103. package/src/components/Avatar/AvatarView/utils/useMouthAnimation.ts +0 -93
  104. package/src/components/Avatar/AvatarView/utils/useSmile.ts +0 -39
  105. package/src/components/Avatar/AvatarView/utils/utils.ts +0 -55
  106. package/src/components/Avatar/__snapshots__/Avatar.test.tsx.snap +0 -246
  107. package/src/components/Blob/Blob.css +0 -286
  108. package/src/components/Blob/Blob.stories.tsx +0 -53
  109. package/src/components/Blob/Blob.test.tsx +0 -18
  110. package/src/components/Blob/Blob.tsx +0 -26
  111. package/src/components/Blob/__snapshots__/Blob.test.tsx.snap +0 -80
  112. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.css +0 -40
  113. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.stories.tsx +0 -58
  114. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.test.tsx +0 -53
  115. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.tsx +0 -74
  116. package/src/components/BlockedMemoriBadge/__snapshots__/BlockedMemoriBadge.test.tsx.snap +0 -181
  117. package/src/components/ChangeMode/ChangeMode.css +0 -22
  118. package/src/components/ChangeMode/ChangeMode.stories.tsx +0 -50
  119. package/src/components/ChangeMode/ChangeMode.test.tsx +0 -24
  120. package/src/components/ChangeMode/ChangeMode.tsx +0 -51
  121. package/src/components/ChangeMode/__snapshots__/ChangeMode.test.tsx.snap +0 -107
  122. package/src/components/Chat/Chat.css +0 -285
  123. package/src/components/Chat/Chat.stories.tsx +0 -1684
  124. package/src/components/Chat/Chat.test.tsx +0 -372
  125. package/src/components/Chat/Chat.tsx +0 -778
  126. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +0 -6816
  127. package/src/components/ChatBubble/ChatBubble.css +0 -430
  128. package/src/components/ChatBubble/ChatBubble.stories.tsx +0 -1192
  129. package/src/components/ChatBubble/ChatBubble.test.tsx +0 -481
  130. package/src/components/ChatBubble/ChatBubble.tsx +0 -776
  131. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +0 -8734
  132. package/src/components/ChatHistoryDrawer/ChatHistory.css +0 -587
  133. package/src/components/ChatHistoryDrawer/ChatHistory.stories.tsx +0 -410
  134. package/src/components/ChatHistoryDrawer/ChatHistory.test.tsx +0 -107
  135. package/src/components/ChatHistoryDrawer/ChatHistory.tsx +0 -1298
  136. package/src/components/ChatHistoryDrawer/__snapshots__/ChatHistory.test.tsx.snap +0 -27
  137. package/src/components/ChatInputs/ChatInputs.css +0 -340
  138. package/src/components/ChatInputs/ChatInputs.stories.tsx +0 -251
  139. package/src/components/ChatInputs/ChatInputs.tsx +0 -487
  140. package/src/components/ChatTextArea/ChatTextArea.css +0 -185
  141. package/src/components/ChatTextArea/ChatTextArea.stories.tsx +0 -55
  142. package/src/components/ChatTextArea/ChatTextArea.test.tsx +0 -28
  143. package/src/components/ChatTextArea/ChatTextArea.tsx +0 -171
  144. package/src/components/ChatTextArea/__snapshots__/ChatTextArea.test.tsx.snap +0 -68
  145. package/src/components/CompletionProviderStatus/CompletionProviderStatus.css +0 -36
  146. package/src/components/CompletionProviderStatus/CompletionProviderStatus.stories.tsx +0 -296
  147. package/src/components/CompletionProviderStatus/CompletionProviderStatus.test.tsx +0 -31
  148. package/src/components/CompletionProviderStatus/CompletionProviderStatus.tsx +0 -232
  149. package/src/components/CompletionProviderStatus/__snapshots__/CompletionProviderStatus.test.tsx.snap +0 -96
  150. package/src/components/ContentPreviewModal/ContentPreviewModal.css +0 -128
  151. package/src/components/ContentPreviewModal/ContentPreviewModal.tsx +0 -67
  152. package/src/components/ContentPreviewModal/index.ts +0 -2
  153. package/src/components/CustomGLBModelViewer/ModelViewer.css +0 -11
  154. package/src/components/CustomGLBModelViewer/ModelViewer.stories.tsx +0 -58
  155. package/src/components/CustomGLBModelViewer/ModelViewer.test.tsx +0 -13
  156. package/src/components/CustomGLBModelViewer/ModelViewer.tsx +0 -37
  157. package/src/components/CustomGLBModelViewer/__snapshots__/ModelViewer.test.tsx.snap +0 -20
  158. package/src/components/DateSelector/DateSelector.css +0 -158
  159. package/src/components/DateSelector/DateSelector.stories.tsx +0 -47
  160. package/src/components/DateSelector/DateSelector.test.tsx +0 -149
  161. package/src/components/DateSelector/DateSelector.tsx +0 -251
  162. package/src/components/DateSelector/__snapshots__/DateSelector.test.tsx.snap +0 -1954
  163. package/src/components/ErrorBoundary/ErrorBoundary.tsx +0 -54
  164. package/src/components/ExpertsDrawer/ExpertsDrawer.css +0 -67
  165. package/src/components/ExpertsDrawer/ExpertsDrawer.stories.tsx +0 -54
  166. package/src/components/ExpertsDrawer/ExpertsDrawer.test.tsx +0 -53
  167. package/src/components/ExpertsDrawer/ExpertsDrawer.tsx +0 -69
  168. package/src/components/ExpertsDrawer/__snapshots__/ExpertsDrawer.test.tsx.snap +0 -11
  169. package/src/components/ExportHistoryButton/ExportHistoryButton.css +0 -22
  170. package/src/components/FeedbackButtons/FeedbackButtons.css +0 -107
  171. package/src/components/FeedbackButtons/FeedbackButtons.stories.tsx +0 -52
  172. package/src/components/FeedbackButtons/FeedbackButtons.test.tsx +0 -11
  173. package/src/components/FeedbackButtons/FeedbackButtons.tsx +0 -152
  174. package/src/components/FeedbackButtons/__snapshots__/FeedbackButtons.test.tsx.snap +0 -42
  175. package/src/components/FilePreview/FilePreview.css +0 -358
  176. package/src/components/FilePreview/FilePreview.stories.tsx +0 -63
  177. package/src/components/FilePreview/FilePreview.test.tsx +0 -26
  178. package/src/components/FilePreview/FilePreview.tsx +0 -277
  179. package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +0 -185
  180. package/src/components/Header/ChatConsumptionDropdown.test.tsx +0 -117
  181. package/src/components/Header/ChatConsumptionDropdown.tsx +0 -275
  182. package/src/components/Header/Header.css +0 -282
  183. package/src/components/Header/Header.stories.tsx +0 -338
  184. package/src/components/Header/Header.test.tsx +0 -371
  185. package/src/components/Header/Header.tsx +0 -442
  186. package/src/components/Header/__snapshots__/Header.test.tsx.snap +0 -964
  187. package/src/components/KnownFacts/KnownFacts.css +0 -19
  188. package/src/components/KnownFacts/KnownFacts.stories.tsx +0 -80
  189. package/src/components/KnownFacts/KnownFacts.test.tsx +0 -57
  190. package/src/components/KnownFacts/KnownFacts.tsx +0 -376
  191. package/src/components/KnownFacts/__snapshots__/KnownFacts.test.tsx.snap +0 -19
  192. package/src/components/LoginDrawer/LoginDrawer.css +0 -1616
  193. package/src/components/LoginDrawer/LoginDrawer.stories.tsx +0 -102
  194. package/src/components/LoginDrawer/LoginDrawer.test.tsx +0 -199
  195. package/src/components/LoginDrawer/LoginDrawer.tsx +0 -600
  196. package/src/components/LoginDrawer/__snapshots__/LoginDrawer.test.tsx.snap +0 -91
  197. package/src/components/MediaWidget/DocumentCard.test.tsx +0 -45
  198. package/src/components/MediaWidget/DocumentCard.tsx +0 -19
  199. package/src/components/MediaWidget/MediaItemWidget.css +0 -1398
  200. package/src/components/MediaWidget/MediaItemWidget.stories.tsx +0 -423
  201. package/src/components/MediaWidget/MediaItemWidget.test.tsx +0 -248
  202. package/src/components/MediaWidget/MediaItemWidget.tsx +0 -997
  203. package/src/components/MediaWidget/MediaItemWidget.types.ts +0 -65
  204. package/src/components/MediaWidget/MediaItemWidget.utils.test.ts +0 -367
  205. package/src/components/MediaWidget/MediaItemWidget.utils.ts +0 -227
  206. package/src/components/MediaWidget/MediaPreviewModal.test.tsx +0 -271
  207. package/src/components/MediaWidget/MediaPreviewModal.tsx +0 -425
  208. package/src/components/MediaWidget/MediaWidget.css +0 -131
  209. package/src/components/MediaWidget/MediaWidget.stories.tsx +0 -319
  210. package/src/components/MediaWidget/MediaWidget.test.tsx +0 -41
  211. package/src/components/MediaWidget/MediaWidget.tsx +0 -107
  212. package/src/components/MediaWidget/__snapshots__/DocumentCard.test.tsx.snap +0 -24
  213. package/src/components/MediaWidget/__snapshots__/MediaItemWidget.test.tsx.snap +0 -791
  214. package/src/components/MediaWidget/__snapshots__/MediaWidget.test.tsx.snap +0 -154
  215. package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +0 -2299
  216. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +0 -163
  217. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +0 -250
  218. package/src/components/MemoriArtifactSystem/components/ArtifactActions/CopyButton.stories.tsx +0 -30
  219. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.tsx +0 -467
  220. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.tsx +0 -89
  221. package/src/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.ts +0 -619
  222. package/src/components/MemoriArtifactSystem/components/ArtifactActions/index.ts +0 -9
  223. package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +0 -489
  224. package/src/components/MemoriArtifactSystem/components/ArtifactActions/test/CopyButtonTest.tsx +0 -90
  225. package/src/components/MemoriArtifactSystem/components/ArtifactActions/types.ts +0 -73
  226. package/src/components/MemoriArtifactSystem/components/ArtifactActions/utils/PDFExporter.ts +0 -454
  227. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +0 -1059
  228. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +0 -431
  229. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +0 -150
  230. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.tsx +0 -79
  231. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +0 -253
  232. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +0 -561
  233. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +0 -355
  234. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +0 -160
  235. package/src/components/MemoriArtifactSystem/context/ArtifactContext.tsx +0 -167
  236. package/src/components/MemoriArtifactSystem/types/artifact.types.ts +0 -35
  237. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.test.tsx +0 -308
  238. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.tsx +0 -379
  239. package/src/components/MemoriArtifactSystem/utils/applyEdits.test.ts +0 -85
  240. package/src/components/MemoriArtifactSystem/utils/applyEdits.ts +0 -173
  241. package/src/components/MemoriWidget/MemoriWidget.css +0 -220
  242. package/src/components/MemoriWidget/MemoriWidget.stories.tsx +0 -274
  243. package/src/components/MemoriWidget/MemoriWidget.tsx +0 -3930
  244. package/src/components/MicrophoneButton/MicrophoneButton.css +0 -142
  245. package/src/components/MicrophoneButton/MicrophoneButton.stories.tsx +0 -52
  246. package/src/components/MicrophoneButton/MicrophoneButton.tsx +0 -128
  247. package/src/components/PositionDrawer/PositionDrawer.stories.tsx +0 -51
  248. package/src/components/PositionDrawer/PositionDrawer.test.tsx +0 -39
  249. package/src/components/PositionDrawer/PositionDrawer.tsx +0 -50
  250. package/src/components/PositionDrawer/__snapshots__/PositionDrawer.test.tsx.snap +0 -17
  251. package/src/components/PoweredBy/PoweredBy.css +0 -47
  252. package/src/components/PoweredBy/PoweredBy.stories.tsx +0 -75
  253. package/src/components/PoweredBy/PoweredBy.test.tsx +0 -15
  254. package/src/components/PoweredBy/PoweredBy.tsx +0 -44
  255. package/src/components/PoweredBy/__snapshots__/PoweredBy.test.tsx.snap +0 -55
  256. package/src/components/SendOnEnterMenu/SendOnEnterMenu.css +0 -47
  257. package/src/components/SendOnEnterMenu/SendOnEnterMenu.stories.tsx +0 -58
  258. package/src/components/SendOnEnterMenu/SendOnEnterMenu.test.tsx +0 -17
  259. package/src/components/SendOnEnterMenu/SendOnEnterMenu.tsx +0 -82
  260. package/src/components/SendOnEnterMenu/__snapshots__/SendOnEnterMenu.test.tsx.snap +0 -57
  261. package/src/components/SettingsDrawer/SettingsDrawer.css +0 -24
  262. package/src/components/SettingsDrawer/SettingsDrawer.stories.tsx +0 -94
  263. package/src/components/SettingsDrawer/SettingsDrawer.test.tsx +0 -202
  264. package/src/components/SettingsDrawer/SettingsDrawer.tsx +0 -255
  265. package/src/components/SettingsDrawer/__snapshots__/SettingsDrawer.test.tsx.snap +0 -59
  266. package/src/components/ShareButton/ShareButton.css +0 -73
  267. package/src/components/ShareButton/ShareButton.stories.tsx +0 -98
  268. package/src/components/ShareButton/ShareButton.test.tsx +0 -53
  269. package/src/components/ShareButton/ShareButton.tsx +0 -395
  270. package/src/components/ShareButton/__snapshots__/ShareButton.test.tsx.snap +0 -316
  271. package/src/components/Snippet/Snippet.css +0 -142
  272. package/src/components/Snippet/Snippet.stories.tsx +0 -286
  273. package/src/components/Snippet/Snippet.test.tsx +0 -176
  274. package/src/components/Snippet/Snippet.tsx +0 -148
  275. package/src/components/Snippet/__snapshots__/Snippet.test.tsx.snap +0 -603
  276. package/src/components/StartPanel/StartPanel.css +0 -273
  277. package/src/components/StartPanel/StartPanel.stories.tsx +0 -404
  278. package/src/components/StartPanel/StartPanel.test.tsx +0 -360
  279. package/src/components/StartPanel/StartPanel.tsx +0 -426
  280. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +0 -1986
  281. package/src/components/Typing/Typing.stories.tsx +0 -130
  282. package/src/components/Typing/Typing.test.tsx +0 -62
  283. package/src/components/Typing/Typing.tsx +0 -154
  284. package/src/components/Typing/__snapshots__/Typing.test.tsx.snap +0 -133
  285. package/src/components/UploadButton/UploadButton.css +0 -542
  286. package/src/components/UploadButton/UploadButton.stories.tsx +0 -376
  287. package/src/components/UploadButton/UploadButton.test.tsx +0 -11
  288. package/src/components/UploadButton/UploadButton.tsx +0 -684
  289. package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +0 -405
  290. package/src/components/UploadButton/UploadImages/UploadImages.tsx +0 -538
  291. package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +0 -165
  292. package/src/components/VenueWidget/VenueWidget.css +0 -163
  293. package/src/components/VenueWidget/VenueWidget.stories.tsx +0 -66
  294. package/src/components/VenueWidget/VenueWidget.test.tsx +0 -49
  295. package/src/components/VenueWidget/VenueWidget.tsx +0 -458
  296. package/src/components/VenueWidget/__snapshots__/VenueWidget.test.tsx.snap +0 -370
  297. package/src/components/WhyThisAnswer/WhyThisAnswer.css +0 -171
  298. package/src/components/WhyThisAnswer/WhyThisAnswer.stories.tsx +0 -285
  299. package/src/components/WhyThisAnswer/WhyThisAnswer.test.tsx +0 -245
  300. package/src/components/WhyThisAnswer/WhyThisAnswer.tsx +0 -233
  301. package/src/components/WhyThisAnswer/__snapshots__/WhyThisAnswer.test.tsx.snap +0 -27
  302. package/src/components/icons/AI.tsx +0 -34
  303. package/src/components/icons/Alert.tsx +0 -31
  304. package/src/components/icons/ArrowUp.tsx +0 -28
  305. package/src/components/icons/Bug.tsx +0 -81
  306. package/src/components/icons/Chat.tsx +0 -30
  307. package/src/components/icons/ChevronDown.tsx +0 -26
  308. package/src/components/icons/ChevronLeft.tsx +0 -28
  309. package/src/components/icons/ChevronRight.tsx +0 -28
  310. package/src/components/icons/ChevronUp.tsx +0 -24
  311. package/src/components/icons/Clear.tsx +0 -23
  312. package/src/components/icons/Close.tsx +0 -30
  313. package/src/components/icons/Code.tsx +0 -24
  314. package/src/components/icons/Copy.tsx +0 -23
  315. package/src/components/icons/DeepThought.tsx +0 -38
  316. package/src/components/icons/Delete.tsx +0 -23
  317. package/src/components/icons/Document.tsx +0 -50
  318. package/src/components/icons/Download.tsx +0 -23
  319. package/src/components/icons/Edit.tsx +0 -17
  320. package/src/components/icons/Expand.tsx +0 -23
  321. package/src/components/icons/Eye.tsx +0 -17
  322. package/src/components/icons/EyeInvisible.tsx +0 -24
  323. package/src/components/icons/Facebook.tsx +0 -23
  324. package/src/components/icons/Feedback.tsx +0 -24
  325. package/src/components/icons/File.tsx +0 -17
  326. package/src/components/icons/FileExcel.tsx +0 -23
  327. package/src/components/icons/FilePdf.tsx +0 -23
  328. package/src/components/icons/FileWord.tsx +0 -23
  329. package/src/components/icons/Fullscreen.tsx +0 -23
  330. package/src/components/icons/FullscreenExit.tsx +0 -23
  331. package/src/components/icons/GasStation.tsx +0 -36
  332. package/src/components/icons/Group.tsx +0 -30
  333. package/src/components/icons/History.tsx +0 -33
  334. package/src/components/icons/Image.tsx +0 -37
  335. package/src/components/icons/Info.tsx +0 -31
  336. package/src/components/icons/Link.tsx +0 -17
  337. package/src/components/icons/Linkedin.tsx +0 -23
  338. package/src/components/icons/Loading.tsx +0 -28
  339. package/src/components/icons/Logout.tsx +0 -27
  340. package/src/components/icons/Mail.tsx +0 -17
  341. package/src/components/icons/MapMarker.tsx +0 -26
  342. package/src/components/icons/MenuHorizontal.tsx +0 -29
  343. package/src/components/icons/MenuVertical.tsx +0 -29
  344. package/src/components/icons/Message.tsx +0 -23
  345. package/src/components/icons/Microphone.tsx +0 -23
  346. package/src/components/icons/Minus.tsx +0 -23
  347. package/src/components/icons/MinusCircle.tsx +0 -24
  348. package/src/components/icons/PaperClip.tsx +0 -23
  349. package/src/components/icons/Picture.tsx +0 -23
  350. package/src/components/icons/Plus.tsx +0 -18
  351. package/src/components/icons/Preview.tsx +0 -29
  352. package/src/components/icons/Print.tsx +0 -38
  353. package/src/components/icons/QuestionHelp.tsx +0 -30
  354. package/src/components/icons/Refresh.tsx +0 -30
  355. package/src/components/icons/SelectIcon.tsx +0 -28
  356. package/src/components/icons/Send.tsx +0 -17
  357. package/src/components/icons/Setting.tsx +0 -23
  358. package/src/components/icons/Share.tsx +0 -23
  359. package/src/components/icons/Sound.tsx +0 -23
  360. package/src/components/icons/SoundDeactivated.tsx +0 -27
  361. package/src/components/icons/Telegram.tsx +0 -26
  362. package/src/components/icons/ThumbDown.tsx +0 -29
  363. package/src/components/icons/ThumbUp.tsx +0 -29
  364. package/src/components/icons/Translation.tsx +0 -24
  365. package/src/components/icons/Twitter.tsx +0 -23
  366. package/src/components/icons/Upload.tsx +0 -34
  367. package/src/components/icons/User.tsx +0 -17
  368. package/src/components/icons/Warning.tsx +0 -24
  369. package/src/components/icons/WhatsApp.tsx +0 -24
  370. package/src/components/icons/icons.stories.css +0 -5
  371. package/src/components/icons/icons.stories.tsx +0 -81
  372. package/src/components/icons/loading.css +0 -14
  373. package/src/components/layouts/Chat.test.tsx +0 -40
  374. package/src/components/layouts/Chat.tsx +0 -69
  375. package/src/components/layouts/FullBody/FullBody.stories.tsx +0 -110
  376. package/src/components/layouts/FullPage.test.tsx +0 -65
  377. package/src/components/layouts/FullPage.tsx +0 -80
  378. package/src/components/layouts/HiddenChat.test.tsx +0 -40
  379. package/src/components/layouts/HiddenChat.tsx +0 -233
  380. package/src/components/layouts/Totem/Totem.stories.tsx +0 -131
  381. package/src/components/layouts/Totem.test.tsx +0 -40
  382. package/src/components/layouts/Totem.tsx +0 -49
  383. package/src/components/layouts/WebsiteAssistant.test.tsx +0 -40
  384. package/src/components/layouts/WebsiteAssistant.tsx +0 -132
  385. package/src/components/layouts/ZoomedFullBody/ZoomedFullBody.stories.tsx +0 -131
  386. package/src/components/layouts/ZoomedFullBody.test.tsx +0 -40
  387. package/src/components/layouts/ZoomedFullBody.tsx +0 -81
  388. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +0 -457
  389. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +0 -1045
  390. package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +0 -460
  391. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +0 -566
  392. package/src/components/layouts/__snapshots__/WebsiteAssistant.test.tsx.snap +0 -59
  393. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +0 -523
  394. package/src/components/layouts/chat.css +0 -451
  395. package/src/components/layouts/hidden-chat.css +0 -276
  396. package/src/components/layouts/layouts.stories.tsx +0 -231
  397. package/src/components/layouts/totem.css +0 -221
  398. package/src/components/layouts/website-assistant.css +0 -677
  399. package/src/components/layouts/zoomed-full-body.css +0 -18
  400. package/src/components/ui/Alert.css +0 -93
  401. package/src/components/ui/Alert.stories.tsx +0 -137
  402. package/src/components/ui/Alert.test.tsx +0 -129
  403. package/src/components/ui/Alert.tsx +0 -123
  404. package/src/components/ui/Button.css +0 -167
  405. package/src/components/ui/Button.stories.tsx +0 -156
  406. package/src/components/ui/Button.test.tsx +0 -74
  407. package/src/components/ui/Button.tsx +0 -107
  408. package/src/components/ui/Card.css +0 -65
  409. package/src/components/ui/Card.stories.tsx +0 -95
  410. package/src/components/ui/Card.test.tsx +0 -47
  411. package/src/components/ui/Card.tsx +0 -48
  412. package/src/components/ui/Checkbox.css +0 -116
  413. package/src/components/ui/Checkbox.stories.tsx +0 -74
  414. package/src/components/ui/Checkbox.test.tsx +0 -28
  415. package/src/components/ui/Checkbox.tsx +0 -58
  416. package/src/components/ui/ConfirmDialog.css +0 -42
  417. package/src/components/ui/ConfirmDialog.stories.tsx +0 -216
  418. package/src/components/ui/ConfirmDialog.test.tsx +0 -124
  419. package/src/components/ui/ConfirmDialog.tsx +0 -58
  420. package/src/components/ui/Details.css +0 -66
  421. package/src/components/ui/Drawer.css +0 -270
  422. package/src/components/ui/Drawer.stories.tsx +0 -267
  423. package/src/components/ui/Drawer.test.tsx +0 -130
  424. package/src/components/ui/Drawer.tsx +0 -293
  425. package/src/components/ui/Dropdown.css +0 -173
  426. package/src/components/ui/Dropdown.tsx +0 -63
  427. package/src/components/ui/Expandable.css +0 -15
  428. package/src/components/ui/Expandable.stories.tsx +0 -180
  429. package/src/components/ui/Expandable.test.tsx +0 -107
  430. package/src/components/ui/Expandable.tsx +0 -121
  431. package/src/components/ui/Modal.css +0 -98
  432. package/src/components/ui/Modal.stories.tsx +0 -171
  433. package/src/components/ui/Modal.test.tsx +0 -111
  434. package/src/components/ui/Modal.tsx +0 -117
  435. package/src/components/ui/Select.css +0 -138
  436. package/src/components/ui/Select.stories.tsx +0 -79
  437. package/src/components/ui/Select.test.tsx +0 -84
  438. package/src/components/ui/Select.tsx +0 -79
  439. package/src/components/ui/Slider.css +0 -192
  440. package/src/components/ui/Slider.stories.tsx +0 -63
  441. package/src/components/ui/Slider.tsx +0 -142
  442. package/src/components/ui/Spin.css +0 -31
  443. package/src/components/ui/Spin.stories.tsx +0 -64
  444. package/src/components/ui/Spin.test.tsx +0 -41
  445. package/src/components/ui/Spin.tsx +0 -31
  446. package/src/components/ui/Table.css +0 -132
  447. package/src/components/ui/Tooltip.css +0 -171
  448. package/src/components/ui/Tooltip.stories.tsx +0 -109
  449. package/src/components/ui/Tooltip.test.tsx +0 -102
  450. package/src/components/ui/Tooltip.tsx +0 -163
  451. package/src/components/ui/__snapshots__/Alert.test.tsx.snap +0 -59
  452. package/src/components/ui/__snapshots__/Button.test.tsx.snap +0 -204
  453. package/src/components/ui/__snapshots__/Card.test.tsx.snap +0 -321
  454. package/src/components/ui/__snapshots__/Checkbox.test.tsx.snap +0 -131
  455. package/src/components/ui/__snapshots__/ConfirmDialog.test.tsx.snap +0 -35
  456. package/src/components/ui/__snapshots__/Drawer.test.tsx.snap +0 -67
  457. package/src/components/ui/__snapshots__/Expandable.test.tsx.snap +0 -159
  458. package/src/components/ui/__snapshots__/Modal.test.tsx.snap +0 -59
  459. package/src/components/ui/__snapshots__/Select.test.tsx.snap +0 -254
  460. package/src/components/ui/__snapshots__/Spin.test.tsx.snap +0 -193
  461. package/src/components/ui/__snapshots__/Tooltip.test.tsx.snap +0 -113
  462. package/src/components/ui/definitions.stories.tsx +0 -139
  463. package/src/context/visemeContext.tsx +0 -384
  464. package/src/helpers/chatPdfExport.ts +0 -544
  465. package/src/helpers/configuration.ts +0 -42
  466. package/src/helpers/constants.ts +0 -267
  467. package/src/helpers/convertDocument.test.ts +0 -67
  468. package/src/helpers/convertDocument.ts +0 -35
  469. package/src/helpers/credits.ts +0 -54
  470. package/src/helpers/error.test.ts +0 -29
  471. package/src/helpers/error.ts +0 -278
  472. package/src/helpers/imageCompression.ts +0 -230
  473. package/src/helpers/llmUsage.ts +0 -328
  474. package/src/helpers/markedExtendedTables.js +0 -217
  475. package/src/helpers/media.test.ts +0 -169
  476. package/src/helpers/media.ts +0 -81
  477. package/src/helpers/message.test.ts +0 -126
  478. package/src/helpers/message.ts +0 -219
  479. package/src/helpers/nats/getNatsConfig.ts +0 -148
  480. package/src/helpers/nats/isSessionExpiredError.test.ts +0 -38
  481. package/src/helpers/nats/isSessionExpiredError.ts +0 -51
  482. package/src/helpers/nats/useNats.test.tsx +0 -81
  483. package/src/helpers/nats/useNats.ts +0 -204
  484. package/src/helpers/nats/useNatsSession.test.ts +0 -16
  485. package/src/helpers/nats/useNatsSession.ts +0 -460
  486. package/src/helpers/piiDetection.test.ts +0 -186
  487. package/src/helpers/piiDetection.ts +0 -91
  488. package/src/helpers/sanitizer.ts +0 -17
  489. package/src/helpers/statistics.ts +0 -58
  490. package/src/helpers/stt/useSTT.ts +0 -515
  491. package/src/helpers/translations.ts +0 -39
  492. package/src/helpers/tts/ttsVoiceUtility.ts +0 -275
  493. package/src/helpers/tts/useTTS.ts +0 -621
  494. package/src/helpers/utils.test.ts +0 -321
  495. package/src/helpers/utils.ts +0 -586
  496. package/src/helpers/venue.ts +0 -36
  497. package/src/i18n.ts +0 -39
  498. package/src/index.stories.tsx +0 -220
  499. package/src/index.test.tsx +0 -156
  500. package/src/index.tsx +0 -592
  501. package/src/locales/de.json +0 -680
  502. package/src/locales/en.json +0 -754
  503. package/src/locales/es.json +0 -682
  504. package/src/locales/fr.json +0 -682
  505. package/src/locales/it.json +0 -750
  506. package/src/mocks/data.ts +0 -790
  507. package/src/styles.css +0 -126
  508. package/src/types/integration.test.ts +0 -32
  509. package/src/types/integration.ts +0 -31
  510. package/src/types/layout.ts +0 -50
  511. package/src/version.ts +0 -2
@@ -1,431 +0,0 @@
1
- /**
2
- * ArtifactDrawer Component
3
- * Displays artifacts as a drawer on mobile and as a split panel on web
4
- * Following the project's design system and responsive patterns
5
- */
6
-
7
- import React, { useState, useCallback, useMemo, useEffect } from 'react';
8
- import { useTranslation } from 'react-i18next';
9
- import { Dialog, Transition, Menu } from '@headlessui/react';
10
- import Button from '../../../ui/Button';
11
- import Close from '../../../icons/Close';
12
- import ArtifactActions from '../ArtifactActions/ArtifactActions';
13
- import { useArtifact } from '../../context/ArtifactContext';
14
- import ArtifactPreview from '../ArtifactPreview/ArtifactPreview';
15
- import { ArtifactData, ArtifactTab } from '../../types/artifact.types';
16
- import cx from 'classnames';
17
- import Drawer from '../../../ui/Drawer';
18
- import Fullscreen from '../../../icons/Fullscreen';
19
- import FullscreenExit from '../../../icons/FullscreenExit';
20
- import MenuVertical from '../../../icons/MenuVertical';
21
- import Download from '../../../icons/Download';
22
- import Link from '../../../icons/Link';
23
- import PrintIcon from '../../../icons/Print';
24
- import { useCopyArtifact } from '../ArtifactActions/hooks/useCopyArtifact';
25
- import TabSwitch from './components/TabSwitch';
26
-
27
- const ArtifactDrawer: React.FC<{ isChatLogPanel?: boolean }> = ({
28
- isChatLogPanel = false,
29
- }) => {
30
- const { state, closeArtifact, toggleFullscreen } =
31
- useArtifact();
32
- const { t } = useTranslation();
33
- const [isMobile, setIsMobile] = useState(false);
34
-
35
- const [activeTab, setActiveTab] = useState<ArtifactTab>('preview');
36
-
37
- /**
38
- * Handle tab switching
39
- */
40
- const handleTabChange = useCallback(
41
- (tab: ArtifactTab) => {
42
- setActiveTab(tab);
43
- },
44
- [activeTab]
45
- );
46
-
47
- // Use copy artifact hook for dynamic actions
48
- const {
49
- copyState,
50
- formats,
51
- handleCopy: handleCopyFormat,
52
- handleCopyClick,
53
- } = useCopyArtifact(
54
- state.currentArtifact || { content: '', mimeType: 'text/plain' },
55
- () => console.log('Copy completed'),
56
- () => console.log('Download completed'),
57
- () => console.log('Print completed')
58
- );
59
-
60
- // Mobile detection
61
- useEffect(() => {
62
- const checkMobile = () => {
63
- setIsMobile(window.innerWidth <= 768);
64
- };
65
-
66
- checkMobile();
67
- window.addEventListener('resize', checkMobile);
68
-
69
- return () => window.removeEventListener('resize', checkMobile);
70
- }, []);
71
-
72
- /**
73
- * Handle copy action
74
- */
75
- const handleCopy = useCallback(async () => {
76
- if (!state.currentArtifact) return;
77
-
78
- try {
79
- if (navigator.clipboard && navigator.clipboard.writeText) {
80
- await navigator.clipboard.writeText(state.currentArtifact.content);
81
- } else {
82
- // Fallback for older browsers
83
- const textArea = document.createElement('textarea');
84
- textArea.value = state.currentArtifact.content;
85
- textArea.style.position = 'fixed';
86
- textArea.style.left = '-999999px';
87
- textArea.style.top = '-999999px';
88
- document.body.appendChild(textArea);
89
- textArea.focus();
90
- textArea.select();
91
- document.execCommand('copy');
92
- document.body.removeChild(textArea);
93
- }
94
- } catch (error) {
95
- console.error('Copy failed:', error);
96
- throw error;
97
- }
98
- }, [state.currentArtifact]);
99
-
100
- /**
101
- * Handle fullscreen toggle
102
- */
103
- const handleToggleFullscreen = useCallback(() => {
104
- if (toggleFullscreen) {
105
- toggleFullscreen();
106
- }
107
- }, [toggleFullscreen]);
108
-
109
- /**
110
- * Handle close with escape key
111
- */
112
- const handleClose = useCallback(() => {
113
- closeArtifact();
114
- }, [closeArtifact]);
115
-
116
- if (!state.currentArtifact) {
117
- return null;
118
- }
119
-
120
- const hasPreview =
121
- state.currentArtifact.mimeType === 'html' ||
122
- state.currentArtifact.mimeType === 'markdown';
123
-
124
- const ContentContainer = useCallback(
125
- ({ children }: { children: React.ReactNode }) => {
126
- if (isChatLogPanel) {
127
- return (
128
- <div
129
- style={{ minHeight: '75vh', maxHeight: '75vh' }}
130
- className="memori-artifact-panel"
131
- >
132
- {children}
133
- </div>
134
- );
135
- } else {
136
- return (
137
- <Drawer
138
- open={state.isDrawerOpen}
139
- onClose={handleClose}
140
- placement="right"
141
- width="50%"
142
- className={
143
- state.isFullscreen
144
- ? 'memori-artifact-panel-drawer-fullscreen'
145
- : 'memori-artifact-panel-drawer'
146
- }
147
- widthMd="100%"
148
- widthLg="50%"
149
- closable={false}
150
- animated={true}
151
- enterDuration={isMobile ? 'duration-500' : 'duration-300'}
152
- leaveDuration={isMobile ? 'duration-400' : 'duration-200'}
153
- showBackdrop={false}
154
- preventBackdropClose={true}
155
- confirmDialogTitle={
156
- t('artifact.confirmDialogTitle') ||
157
- 'Are you sure you want to close this artifact?'
158
- }
159
- confirmDialogMessage={
160
- t('artifact.confirmDialogMessage') ||
161
- 'This action cannot be undone.'
162
- }
163
- // className="memori-artifact-panel"
164
- >
165
- {children}
166
- </Drawer>
167
- );
168
- }
169
- },
170
- [isChatLogPanel, handleClose, state.isDrawerOpen, state.isFullscreen, isMobile]
171
- );
172
-
173
- /**
174
- * Get MIME type string for downloads
175
- */
176
- const getMimeTypeString = useCallback((mimeType: string): string => {
177
- const mimeTypes: Record<string, string> = {
178
- html: 'text/html',
179
- json: 'application/json',
180
- markdown: 'text/markdown',
181
- css: 'text/css',
182
- javascript: 'text/javascript',
183
- typescript: 'text/typescript',
184
- svg: 'image/svg+xml',
185
- xml: 'text/xml',
186
- text: 'text/plain',
187
- python: 'text/x-python',
188
- java: 'text/x-java',
189
- cpp: 'text/x-c++',
190
- csharp: 'text/x-csharp',
191
- php: 'text/x-php',
192
- ruby: 'text/x-ruby',
193
- go: 'text/x-go',
194
- rust: 'text/x-rust',
195
- yaml: 'text/yaml',
196
- sql: 'text/x-sql',
197
- };
198
- return mimeTypes[mimeType] || 'text/plain';
199
- }, []);
200
-
201
- /**
202
- * Handle external open action
203
- */
204
- const handleOpenExternal = useCallback((artifact: ArtifactData) => {
205
- try {
206
- const mimeType = getMimeTypeString(artifact.mimeType);
207
- const blob = new Blob([artifact.content], { type: mimeType });
208
- const url = URL.createObjectURL(blob);
209
-
210
- const externalWindow = window.open(url, '_blank');
211
- if (!externalWindow) {
212
- alert(
213
- 'Popup blocked! Please enable popups to open the artifact in a new window.'
214
- );
215
- return;
216
- }
217
-
218
- // Cleanup URL after a delay
219
- setTimeout(() => {
220
- URL.revokeObjectURL(url);
221
- }, 60000);
222
-
223
- } catch (error) {
224
- console.error('External open failed:', error);
225
- }
226
- }, []);
227
-
228
- // Render web split panel
229
- return (
230
- <ContentContainer>
231
- {/* Header */}
232
- <div
233
- className={cx('memori-artifact-drawer-container-actions', {
234
- 'memori-artifact-drawer-container-actions--no-preview': !hasPreview,
235
- 'memori-artifact-drawer-container-actions--chatlog': isChatLogPanel,
236
- })}
237
- >
238
- {/* Desktop Actions */}
239
- {!isMobile && (
240
- <>
241
- {/* Modern Tab Switch */}
242
- {hasPreview && (
243
- <TabSwitch
244
- activeTab={activeTab}
245
- onTabChange={handleTabChange}
246
- hasPreview={hasPreview}
247
- />
248
- )}
249
- <ArtifactActions
250
- artifact={state.currentArtifact}
251
- onCopy={handleCopy}
252
- loading={false}
253
- isMobile={isMobile}
254
- />
255
- <Button
256
- onClick={closeArtifact}
257
- className={cx(
258
- 'memori-artifact-drawer--close',
259
- 'memori-button--icon-only',
260
- {
261
- 'memori-artifact-drawer--close-desktop': !hasPreview,
262
- }
263
- )}
264
- ghost
265
- title={t('artifact.close') || 'Close'}
266
- >
267
- <Close className="memori-artifact-panel--close-icon" />
268
- </Button>
269
- </>
270
- )}
271
- </div>
272
-
273
- {/* Top Right Header Section */}
274
- <div
275
- className={cx('memori-artifact-drawer-top-right', {
276
- 'memori-artifact-drawer-top-right--no-preview': !hasPreview,
277
- 'memori-artifact-drawer-top-right--chatlog': isChatLogPanel,
278
- })}
279
- >
280
- {/* Mobile Dropdown Menu */}
281
- {isMobile && (
282
- <>
283
- {hasPreview && (
284
- <TabSwitch
285
- activeTab={activeTab}
286
- onTabChange={handleTabChange}
287
- hasPreview={hasPreview}
288
- />
289
- )}
290
- <Menu as="div" className="memori-mobile-actions-menu">
291
- <Menu.Button as="div" className="memori-mobile-actions-trigger">
292
- <Button
293
- className={cx(
294
- 'memori-button',
295
- 'memori-button--more-options',
296
- 'memori-button--icon-only'
297
- )}
298
- ghost
299
- title={t('artifact.actions') || 'Actions'}
300
- >
301
- <MenuVertical className="memori-artifact-action-icon" />
302
- </Button>
303
- </Menu.Button>
304
-
305
- <Transition
306
- as={React.Fragment}
307
- enter="memori-mobile-dropdown-enter"
308
- enterFrom="memori-mobile-dropdown-enter-from"
309
- enterTo="memori-mobile-dropdown-enter-to"
310
- leave="memori-mobile-dropdown-leave"
311
- leaveFrom="memori-mobile-dropdown-leave-from"
312
- leaveTo="memori-mobile-dropdown-leave-to"
313
- >
314
- <Menu.Items className="memori-mobile-dropdown">
315
- <div className="memori-mobile-dropdown-list">
316
- <Button
317
- onClick={handleCopy}
318
- disabled={false}
319
- className="memori-artifact-action-btn"
320
- ghost
321
- title={t('artifact.copy') || 'Copy'}
322
- >
323
- <span className="memori-artifact-action-text">
324
- {t('artifact.copy') || 'Copy'}
325
- </span>
326
- </Button>
327
-
328
- {formats.map(format => {
329
- // Get appropriate icon based on action type
330
- const getIcon = () => {
331
- switch (format.action) {
332
- case 'copy':
333
- return (
334
- <Link className="memori-artifact-action-icon" />
335
- );
336
- case 'download':
337
- return (
338
- <Download className="memori-artifact-action-icon" />
339
- );
340
- case 'print':
341
- case 'pdf':
342
- return (
343
- <PrintIcon className="memori-artifact-action-icon" />
344
- );
345
- default:
346
- return (
347
- <Link className="memori-artifact-action-icon" />
348
- );
349
- }
350
- };
351
-
352
- return (
353
- <Button
354
- key={format.id}
355
- onClick={() => handleCopyFormat(format)}
356
- disabled={
357
- copyState.loading &&
358
- copyState.activeFormat === format.id
359
- }
360
- className="memori-artifact-action-btn"
361
- ghost
362
- icon={getIcon()}
363
- title={format.label}
364
- >
365
- <span className="memori-artifact-action-text">
366
- {format.label}
367
- </span>
368
- </Button>
369
- );
370
- })}
371
-
372
- {/* External open action (not from hook) */}
373
- <Button
374
- onClick={() => handleOpenExternal(state.currentArtifact ?? {
375
- content: '',
376
- mimeType: '',
377
- title: '',
378
- timestamp: new Date(),
379
- size: 0,
380
- id: '',
381
- artifactId: '',
382
- })}
383
- disabled={false}
384
- className="memori-artifact-action-btn"
385
- ghost
386
- icon={<Link className="memori-artifact-action-icon" />}
387
- title={t('artifact.external') || 'External'}
388
- >
389
- <span className="memori-artifact-action-text">
390
- {t('artifact.external') || 'External'}
391
- </span>
392
- </Button>
393
- </div>
394
- </Menu.Items>
395
- </Transition>
396
- </Menu>
397
- </>
398
- )}
399
-
400
- {/* Close Button */}
401
- {isMobile && (
402
- <Button
403
- onClick={closeArtifact}
404
- className={cx(
405
- 'memori-artifact-drawer--close',
406
- 'memori-button--icon-only'
407
- )}
408
- ghost
409
- title={t('artifact.close') || 'Close'}
410
- >
411
- <Close className="memori-artifact-panel--close-icon" />
412
- </Button>
413
- )}
414
- </div>
415
-
416
- <div className="memori-artifact-panel--header"></div>
417
-
418
- {/* Content */}
419
- <div className="memori-artifact-panel--content">
420
- <div className="memori-artifact-panel--main">
421
- <ArtifactPreview
422
- artifact={state.currentArtifact}
423
- activeTab={activeTab}
424
- />
425
- </div>
426
- </div>
427
- </ContentContainer>
428
- );
429
- };
430
-
431
- export default ArtifactDrawer;
@@ -1,150 +0,0 @@
1
- /**
2
- * TabSwitch CSS Styles
3
- * Modern animated switch component with smooth transitions
4
- */
5
-
6
- .memori-tab-switch {
7
- display: flex;
8
- align-items: center;
9
- justify-content: center;
10
- }
11
-
12
- .memori-tab-switch__container {
13
- position: relative;
14
- display: inline-flex;
15
- overflow: hidden;
16
- border: 1px solid #e9ecef;
17
- border-radius: 6px;
18
- background: #f8f9fa;
19
- box-shadow: none;
20
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
21
- }
22
-
23
- .memori-tab-switch__track {
24
- position: relative;
25
- display: flex;
26
- overflow: hidden;
27
- border-radius: 8px;
28
- background: transparent;
29
- }
30
-
31
- .memori-tab-switch__indicator {
32
- position: absolute;
33
- z-index: 1;
34
- top: 2px;
35
- bottom: 2px;
36
- left: 2px;
37
- width: calc((100% - 4px) / var(--tab-count, 2));
38
- border-radius: 6px;
39
- animation: tab-switch-slide 0.3s cubic-bezier(0.4, 0, 0.2, 1);
40
- background: #ffffff;
41
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
42
- transform: translateX(calc(var(--active-index, 0) * 100%));
43
- transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
44
- }
45
-
46
- .memori-tab-switch__indicator::before {
47
- position: absolute;
48
- top: 0;
49
- right: 0;
50
- bottom: 0;
51
- left: 0;
52
- border-radius: 6px;
53
- background: linear-gradient(135deg, rgba(0, 0, 0, 0.02) 0%, rgba(0, 0, 0, 0) 100%);
54
- content: '';
55
- pointer-events: none;
56
- }
57
-
58
- .memori-tab-switch__button {
59
- position: relative;
60
- z-index: 2;
61
- display: flex;
62
- min-width: 70px;
63
- height: 36px;
64
- align-items: center;
65
- justify-content: center;
66
- padding: 6px 12px;
67
- border: none;
68
- border-radius: 6px;
69
- background: transparent;
70
- color: #6b7280;
71
- cursor: pointer;
72
- font-size: 0.875rem;
73
- font-weight: 500;
74
- gap: 6px;
75
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
76
- white-space: nowrap;
77
- }
78
-
79
- .memori-tab-switch__button:hover {
80
- color: #374151;
81
- transform: none;
82
- }
83
-
84
- .memori-tab-switch__button--active {
85
- /* color: #1´ç11827; */
86
- font-weight: 600;
87
- }
88
-
89
- .memori-tab-switch__button:focus {
90
- box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
91
- outline: none;
92
- }
93
-
94
- .memori-tab-switch__button:active {
95
- transform: none;
96
- }
97
-
98
- .memori-tab-switch__icon {
99
- width: 18px;
100
- height: 18px;
101
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
102
- }
103
-
104
- .memori-tab-switch__button--active .memori-tab-switch__icon {
105
- filter: none;
106
- }
107
-
108
- .memori-tab-switch__label {
109
- font-size: 0.875rem;
110
- font-weight: 500;
111
- letter-spacing: 0.01em;
112
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
113
- }
114
-
115
- /* Hover effects for the entire switch */
116
- .memori-tab-switch__container:hover {
117
- border-color: #d1d5db;
118
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
119
- }
120
-
121
- .memori-tab-switch__container:hover .memori-tab-switch__indicator {
122
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
123
- }
124
-
125
- /* Animation for tab switching */
126
- @keyframes tab-switch-slide {
127
- from {
128
- transform: translateX(calc((var(--active-index, 0) - 1) * 100%));
129
- }
130
- to {
131
- transform: translateX(calc(var(--active-index, 0) * 100%));
132
- }
133
- }
134
-
135
- /* Responsive design */
136
-
137
- /* High contrast mode support */
138
- @media (prefers-contrast: high) {
139
- .memori-tab-switch__container {
140
- border-width: 2px;
141
- }
142
-
143
- .memori-tab-switch__indicator {
144
- box-shadow: 0 0 0 2px white, 0 2px 8px var(--memori-primary);
145
- }
146
-
147
- .memori-tab-switch__button:focus {
148
- box-shadow: 0 0 0 4px var(--memori-primary);
149
- }
150
- }
@@ -1,79 +0,0 @@
1
- /**
2
- * TabSwitch Component
3
- * Modern animated switch for toggling between code and preview tabs
4
- */
5
-
6
- import React from 'react';
7
- import { ArtifactTab } from '../../../types/artifact.types';
8
- import cx from 'classnames';
9
- import Code from '../../../../icons/Code';
10
- import { PreviewIcon } from '../../../../icons/Preview';
11
-
12
- interface TabSwitchProps {
13
- activeTab: ArtifactTab;
14
- onTabChange: (tab: ArtifactTab) => void;
15
- hasPreview: boolean;
16
- }
17
-
18
- const TabSwitch: React.FC<TabSwitchProps> = ({
19
- activeTab,
20
- onTabChange,
21
- hasPreview,
22
- }) => {
23
- const tabs = [
24
- {
25
- id: 'code' as ArtifactTab,
26
- icon: Code,
27
- // label: 'Code',
28
- },
29
- ...(hasPreview
30
- ? [
31
- {
32
- id: 'preview' as ArtifactTab,
33
- icon: PreviewIcon,
34
- // label: 'Preview',
35
- },
36
- ]
37
- : []),
38
- ];
39
-
40
- return (
41
- <div className="memori-tab-switch">
42
- <div className="memori-tab-switch__container">
43
- <div
44
- className="memori-tab-switch__track"
45
- style={{
46
- '--tab-count': tabs.length,
47
- } as React.CSSProperties}
48
- >
49
- <div
50
- className="memori-tab-switch__indicator"
51
- style={{
52
- '--active-index': tabs.findIndex(tab => tab.id === activeTab),
53
- } as React.CSSProperties}
54
- />
55
- {tabs.map((tab) => {
56
- const IconComponent = tab.icon;
57
- return (
58
- <button
59
- key={tab.id}
60
- type="button"
61
- className={cx('memori-tab-switch__button', {
62
- 'memori-tab-switch__button--active': activeTab === tab.id,
63
- })}
64
- onClick={() => onTabChange(tab.id)}
65
- aria-pressed={activeTab === tab.id}
66
- // title={tab.label}
67
- >
68
- <IconComponent className="memori-tab-switch__icon" />
69
- {/* <span className="memori-tab-switch__label">{tab.label}</span> */}
70
- </button>
71
- );
72
- })}
73
- </div>
74
- </div>
75
- </div>
76
- );
77
- };
78
-
79
- export default TabSwitch;