@memori.ai/memori-react 8.45.6 → 8.46.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/components/ChatBubble/ChatBubble.css +94 -9
  3. package/dist/components/ChatInputs/ChatInputs.css +7 -5
  4. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +27 -0
  5. package/dist/components/MemoriWidget/MemoriWidget.js +36 -29
  6. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  7. package/dist/components/layouts/chat.css +11 -1
  8. package/dist/components/layouts/totem.css +2 -0
  9. package/dist/helpers/message.js +45 -1
  10. package/dist/helpers/message.js.map +1 -1
  11. package/dist/styles.css +19 -0
  12. package/dist/version.d.ts +1 -1
  13. package/dist/version.js +1 -1
  14. package/esm/components/ChatBubble/ChatBubble.css +94 -9
  15. package/esm/components/ChatInputs/ChatInputs.css +7 -5
  16. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +27 -0
  17. package/esm/components/MemoriWidget/MemoriWidget.js +36 -29
  18. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  19. package/esm/components/layouts/chat.css +11 -1
  20. package/esm/components/layouts/totem.css +2 -0
  21. package/esm/helpers/message.js +45 -1
  22. package/esm/helpers/message.js.map +1 -1
  23. package/esm/styles.css +19 -0
  24. package/esm/version.d.ts +1 -1
  25. package/esm/version.js +1 -1
  26. package/package.json +2 -2
  27. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +0 -78
  28. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +0 -39
  29. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +0 -43
  30. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +0 -1
  31. package/dist/components/ContentPreviewModal/DocumentMarkdown.d.ts +0 -7
  32. package/dist/components/ContentPreviewModal/DocumentMarkdown.js +0 -31
  33. package/dist/components/ContentPreviewModal/DocumentMarkdown.js.map +0 -1
  34. package/dist/components/DrawerFooter/DrawerFooter.css +0 -62
  35. package/dist/components/DrawerFooter/DrawerFooter.d.ts +0 -12
  36. package/dist/components/DrawerFooter/DrawerFooter.js +0 -10
  37. package/dist/components/DrawerFooter/DrawerFooter.js.map +0 -1
  38. package/dist/components/IconButton/IconButton.css +0 -135
  39. package/dist/components/IconButton/IconButton.d.ts +0 -9
  40. package/dist/components/IconButton/IconButton.js +0 -36
  41. package/dist/components/IconButton/IconButton.js.map +0 -1
  42. package/dist/components/LoginModal/LoginModal.css +0 -270
  43. package/dist/components/LoginModal/LoginModal.d.ts +0 -19
  44. package/dist/components/LoginModal/LoginModal.js +0 -355
  45. package/dist/components/LoginModal/LoginModal.js.map +0 -1
  46. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +0 -540
  47. package/dist/components/MobileSessionPanel/MobileSessionPanel.d.ts +0 -65
  48. package/dist/components/MobileSessionPanel/MobileSessionPanel.js +0 -254
  49. package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +0 -1
  50. package/dist/components/PositionPopover/PositionPopover.css +0 -218
  51. package/dist/components/PositionPopover/PositionPopover.d.ts +0 -22
  52. package/dist/components/PositionPopover/PositionPopover.js +0 -208
  53. package/dist/components/PositionPopover/PositionPopover.js.map +0 -1
  54. package/dist/components/ReasoningBlock/ReasoningBlock.css +0 -156
  55. package/dist/components/ReasoningBlock/ReasoningBlock.d.ts +0 -7
  56. package/dist/components/ReasoningBlock/ReasoningBlock.js +0 -61
  57. package/dist/components/ReasoningBlock/ReasoningBlock.js.map +0 -1
  58. package/dist/components/SideDrawer/SideDrawer.css +0 -112
  59. package/dist/components/SideDrawer/SideDrawer.d.ts +0 -22
  60. package/dist/components/SideDrawer/SideDrawer.js +0 -17
  61. package/dist/components/SideDrawer/SideDrawer.js.map +0 -1
  62. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +0 -4
  63. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +0 -144
  64. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +0 -1
  65. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +0 -889
  66. package/dist/components/layouts/fullpage.css +0 -628
  67. package/dist/helpers/artifactPanel.d.ts +0 -6
  68. package/dist/helpers/artifactPanel.js +0 -42
  69. package/dist/helpers/artifactPanel.js.map +0 -1
  70. package/dist/helpers/chatScroll.d.ts +0 -12
  71. package/dist/helpers/chatScroll.js +0 -14
  72. package/dist/helpers/chatScroll.js.map +0 -1
  73. package/dist/helpers/conversationHistory.d.ts +0 -16
  74. package/dist/helpers/conversationHistory.js +0 -89
  75. package/dist/helpers/conversationHistory.js.map +0 -1
  76. package/dist/helpers/conversationTitle.d.ts +0 -8
  77. package/dist/helpers/conversationTitle.js +0 -27
  78. package/dist/helpers/conversationTitle.js.map +0 -1
  79. package/dist/helpers/enhanceBubbleCodeBlocks.d.ts +0 -5
  80. package/dist/helpers/enhanceBubbleCodeBlocks.js +0 -97
  81. package/dist/helpers/enhanceBubbleCodeBlocks.js.map +0 -1
  82. package/dist/helpers/highlightMatches.d.ts +0 -2
  83. package/dist/helpers/highlightMatches.js +0 -54
  84. package/dist/helpers/highlightMatches.js.map +0 -1
  85. package/dist/helpers/positionPopover.d.ts +0 -3
  86. package/dist/helpers/positionPopover.js +0 -22
  87. package/dist/helpers/positionPopover.js.map +0 -1
  88. package/dist/helpers/prism.d.ts +0 -16
  89. package/dist/helpers/prism.js +0 -78
  90. package/dist/helpers/prism.js.map +0 -1
  91. package/dist/helpers/reasoning.d.ts +0 -7
  92. package/dist/helpers/reasoning.js +0 -43
  93. package/dist/helpers/reasoning.js.map +0 -1
  94. package/dist/helpers/relativeTime.d.ts +0 -3
  95. package/dist/helpers/relativeTime.js +0 -56
  96. package/dist/helpers/relativeTime.js.map +0 -1
  97. package/dist/helpers/sourcesCount.d.ts +0 -2
  98. package/dist/helpers/sourcesCount.js +0 -22
  99. package/dist/helpers/sourcesCount.js.map +0 -1
  100. package/dist/helpers/tts/muteSpeaker.d.ts +0 -13
  101. package/dist/helpers/tts/muteSpeaker.js +0 -26
  102. package/dist/helpers/tts/muteSpeaker.js.map +0 -1
  103. package/dist/helpers/usePressTooltip.d.ts +0 -18
  104. package/dist/helpers/usePressTooltip.js +0 -38
  105. package/dist/helpers/usePressTooltip.js.map +0 -1
  106. package/dist/icons/FacebookIcon.d.ts +0 -3
  107. package/dist/icons/FacebookIcon.js +0 -6
  108. package/dist/icons/FacebookIcon.js.map +0 -1
  109. package/dist/icons/LinkedinIcon.d.ts +0 -3
  110. package/dist/icons/LinkedinIcon.js +0 -6
  111. package/dist/icons/LinkedinIcon.js.map +0 -1
  112. package/dist/icons/MemoriIcon.d.ts +0 -3
  113. package/dist/icons/MemoriIcon.js +0 -8
  114. package/dist/icons/MemoriIcon.js.map +0 -1
  115. package/dist/icons/TelegramIcon.d.ts +0 -3
  116. package/dist/icons/TelegramIcon.js +0 -6
  117. package/dist/icons/TelegramIcon.js.map +0 -1
  118. package/dist/icons/TwitterIcon.d.ts +0 -3
  119. package/dist/icons/TwitterIcon.js +0 -6
  120. package/dist/icons/TwitterIcon.js.map +0 -1
  121. package/dist/icons/WhatsappIcon.d.ts +0 -3
  122. package/dist/icons/WhatsappIcon.js +0 -6
  123. package/dist/icons/WhatsappIcon.js.map +0 -1
  124. package/dist/icons/artifacts/DocumentIcon.d.ts +0 -3
  125. package/dist/icons/artifacts/DocumentIcon.js +0 -6
  126. package/dist/icons/artifacts/DocumentIcon.js.map +0 -1
  127. package/dist/icons/artifacts/HtmlIcon.d.ts +0 -3
  128. package/dist/icons/artifacts/HtmlIcon.js +0 -6
  129. package/dist/icons/artifacts/HtmlIcon.js.map +0 -1
  130. package/dist/icons/artifacts/JavascriptIcon.d.ts +0 -3
  131. package/dist/icons/artifacts/JavascriptIcon.js +0 -6
  132. package/dist/icons/artifacts/JavascriptIcon.js.map +0 -1
  133. package/dist/icons/artifacts/MarkdownIcon.d.ts +0 -3
  134. package/dist/icons/artifacts/MarkdownIcon.js +0 -6
  135. package/dist/icons/artifacts/MarkdownIcon.js.map +0 -1
  136. package/dist/icons/artifacts/PythonIcon.d.ts +0 -3
  137. package/dist/icons/artifacts/PythonIcon.js +0 -6
  138. package/dist/icons/artifacts/PythonIcon.js.map +0 -1
  139. package/dist/icons/artifacts/SvgIcon.d.ts +0 -3
  140. package/dist/icons/artifacts/SvgIcon.js +0 -6
  141. package/dist/icons/artifacts/SvgIcon.js.map +0 -1
  142. package/dist/icons/artifacts/XmlIcon.d.ts +0 -3
  143. package/dist/icons/artifacts/XmlIcon.js +0 -6
  144. package/dist/icons/artifacts/XmlIcon.js.map +0 -1
  145. package/dist/icons/artifacts/cssIcon.d.ts +0 -3
  146. package/dist/icons/artifacts/cssIcon.js +0 -6
  147. package/dist/icons/artifacts/cssIcon.js.map +0 -1
  148. package/dist/styles/motion.css +0 -25
  149. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +0 -78
  150. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +0 -39
  151. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +0 -40
  152. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +0 -1
  153. package/esm/components/ContentPreviewModal/DocumentMarkdown.d.ts +0 -7
  154. package/esm/components/ContentPreviewModal/DocumentMarkdown.js +0 -28
  155. package/esm/components/ContentPreviewModal/DocumentMarkdown.js.map +0 -1
  156. package/esm/components/DrawerFooter/DrawerFooter.css +0 -62
  157. package/esm/components/DrawerFooter/DrawerFooter.d.ts +0 -12
  158. package/esm/components/DrawerFooter/DrawerFooter.js +0 -8
  159. package/esm/components/DrawerFooter/DrawerFooter.js.map +0 -1
  160. package/esm/components/IconButton/IconButton.css +0 -135
  161. package/esm/components/IconButton/IconButton.d.ts +0 -9
  162. package/esm/components/IconButton/IconButton.js +0 -33
  163. package/esm/components/IconButton/IconButton.js.map +0 -1
  164. package/esm/components/LoginModal/LoginModal.css +0 -270
  165. package/esm/components/LoginModal/LoginModal.d.ts +0 -19
  166. package/esm/components/LoginModal/LoginModal.js +0 -352
  167. package/esm/components/LoginModal/LoginModal.js.map +0 -1
  168. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +0 -540
  169. package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +0 -65
  170. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +0 -251
  171. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +0 -1
  172. package/esm/components/PositionPopover/PositionPopover.css +0 -218
  173. package/esm/components/PositionPopover/PositionPopover.d.ts +0 -22
  174. package/esm/components/PositionPopover/PositionPopover.js +0 -203
  175. package/esm/components/PositionPopover/PositionPopover.js.map +0 -1
  176. package/esm/components/ReasoningBlock/ReasoningBlock.css +0 -156
  177. package/esm/components/ReasoningBlock/ReasoningBlock.d.ts +0 -7
  178. package/esm/components/ReasoningBlock/ReasoningBlock.js +0 -58
  179. package/esm/components/ReasoningBlock/ReasoningBlock.js.map +0 -1
  180. package/esm/components/SideDrawer/SideDrawer.css +0 -112
  181. package/esm/components/SideDrawer/SideDrawer.d.ts +0 -22
  182. package/esm/components/SideDrawer/SideDrawer.js +0 -12
  183. package/esm/components/SideDrawer/SideDrawer.js.map +0 -1
  184. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +0 -4
  185. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +0 -141
  186. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +0 -1
  187. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +0 -889
  188. package/esm/components/layouts/fullpage.css +0 -628
  189. package/esm/helpers/artifactPanel.d.ts +0 -6
  190. package/esm/helpers/artifactPanel.js +0 -37
  191. package/esm/helpers/artifactPanel.js.map +0 -1
  192. package/esm/helpers/chatScroll.d.ts +0 -12
  193. package/esm/helpers/chatScroll.js +0 -9
  194. package/esm/helpers/chatScroll.js.map +0 -1
  195. package/esm/helpers/conversationHistory.d.ts +0 -16
  196. package/esm/helpers/conversationHistory.js +0 -82
  197. package/esm/helpers/conversationHistory.js.map +0 -1
  198. package/esm/helpers/conversationTitle.d.ts +0 -8
  199. package/esm/helpers/conversationTitle.js +0 -23
  200. package/esm/helpers/conversationTitle.js.map +0 -1
  201. package/esm/helpers/enhanceBubbleCodeBlocks.d.ts +0 -5
  202. package/esm/helpers/enhanceBubbleCodeBlocks.js +0 -94
  203. package/esm/helpers/enhanceBubbleCodeBlocks.js.map +0 -1
  204. package/esm/helpers/highlightMatches.d.ts +0 -2
  205. package/esm/helpers/highlightMatches.js +0 -49
  206. package/esm/helpers/highlightMatches.js.map +0 -1
  207. package/esm/helpers/positionPopover.d.ts +0 -3
  208. package/esm/helpers/positionPopover.js +0 -17
  209. package/esm/helpers/positionPopover.js.map +0 -1
  210. package/esm/helpers/prism.d.ts +0 -16
  211. package/esm/helpers/prism.js +0 -74
  212. package/esm/helpers/prism.js.map +0 -1
  213. package/esm/helpers/reasoning.d.ts +0 -7
  214. package/esm/helpers/reasoning.js +0 -39
  215. package/esm/helpers/reasoning.js.map +0 -1
  216. package/esm/helpers/relativeTime.d.ts +0 -3
  217. package/esm/helpers/relativeTime.js +0 -50
  218. package/esm/helpers/relativeTime.js.map +0 -1
  219. package/esm/helpers/sourcesCount.d.ts +0 -2
  220. package/esm/helpers/sourcesCount.js +0 -18
  221. package/esm/helpers/sourcesCount.js.map +0 -1
  222. package/esm/helpers/tts/muteSpeaker.d.ts +0 -13
  223. package/esm/helpers/tts/muteSpeaker.js +0 -21
  224. package/esm/helpers/tts/muteSpeaker.js.map +0 -1
  225. package/esm/helpers/usePressTooltip.d.ts +0 -18
  226. package/esm/helpers/usePressTooltip.js +0 -35
  227. package/esm/helpers/usePressTooltip.js.map +0 -1
  228. package/esm/icons/FacebookIcon.d.ts +0 -3
  229. package/esm/icons/FacebookIcon.js +0 -4
  230. package/esm/icons/FacebookIcon.js.map +0 -1
  231. package/esm/icons/LinkedinIcon.d.ts +0 -3
  232. package/esm/icons/LinkedinIcon.js +0 -4
  233. package/esm/icons/LinkedinIcon.js.map +0 -1
  234. package/esm/icons/MemoriIcon.d.ts +0 -3
  235. package/esm/icons/MemoriIcon.js +0 -6
  236. package/esm/icons/MemoriIcon.js.map +0 -1
  237. package/esm/icons/TelegramIcon.d.ts +0 -3
  238. package/esm/icons/TelegramIcon.js +0 -4
  239. package/esm/icons/TelegramIcon.js.map +0 -1
  240. package/esm/icons/TwitterIcon.d.ts +0 -3
  241. package/esm/icons/TwitterIcon.js +0 -4
  242. package/esm/icons/TwitterIcon.js.map +0 -1
  243. package/esm/icons/WhatsappIcon.d.ts +0 -3
  244. package/esm/icons/WhatsappIcon.js +0 -4
  245. package/esm/icons/WhatsappIcon.js.map +0 -1
  246. package/esm/icons/artifacts/DocumentIcon.d.ts +0 -3
  247. package/esm/icons/artifacts/DocumentIcon.js +0 -4
  248. package/esm/icons/artifacts/DocumentIcon.js.map +0 -1
  249. package/esm/icons/artifacts/HtmlIcon.d.ts +0 -3
  250. package/esm/icons/artifacts/HtmlIcon.js +0 -4
  251. package/esm/icons/artifacts/HtmlIcon.js.map +0 -1
  252. package/esm/icons/artifacts/JavascriptIcon.d.ts +0 -3
  253. package/esm/icons/artifacts/JavascriptIcon.js +0 -4
  254. package/esm/icons/artifacts/JavascriptIcon.js.map +0 -1
  255. package/esm/icons/artifacts/MarkdownIcon.d.ts +0 -3
  256. package/esm/icons/artifacts/MarkdownIcon.js +0 -4
  257. package/esm/icons/artifacts/MarkdownIcon.js.map +0 -1
  258. package/esm/icons/artifacts/PythonIcon.d.ts +0 -3
  259. package/esm/icons/artifacts/PythonIcon.js +0 -4
  260. package/esm/icons/artifacts/PythonIcon.js.map +0 -1
  261. package/esm/icons/artifacts/SvgIcon.d.ts +0 -3
  262. package/esm/icons/artifacts/SvgIcon.js +0 -4
  263. package/esm/icons/artifacts/SvgIcon.js.map +0 -1
  264. package/esm/icons/artifacts/XmlIcon.d.ts +0 -3
  265. package/esm/icons/artifacts/XmlIcon.js +0 -4
  266. package/esm/icons/artifacts/XmlIcon.js.map +0 -1
  267. package/esm/icons/artifacts/cssIcon.d.ts +0 -3
  268. package/esm/icons/artifacts/cssIcon.js +0 -4
  269. package/esm/icons/artifacts/cssIcon.js.map +0 -1
  270. package/esm/styles/motion.css +0 -25
@@ -126,6 +126,100 @@
126
126
  margin-bottom: 0;
127
127
  }
128
128
 
129
+ .memori-chat--bubble strong,
130
+ .memori-chat--bubble b {
131
+ font-weight: 700;
132
+ }
133
+
134
+ .memori-chat--bubble em,
135
+ .memori-chat--bubble i {
136
+ font-style: italic;
137
+ }
138
+
139
+ .memori-chat--bubble h1,
140
+ .memori-chat--bubble h2,
141
+ .memori-chat--bubble h3,
142
+ .memori-chat--bubble h4,
143
+ .memori-chat--bubble h5,
144
+ .memori-chat--bubble h6 {
145
+ margin: 0.75em 0 0.35em;
146
+ color: inherit;
147
+ font-weight: 700;
148
+ line-height: 1.3;
149
+ }
150
+
151
+ .memori-chat--bubble h1 {
152
+ font-size: 1.25em;
153
+ }
154
+
155
+ .memori-chat--bubble h2 {
156
+ font-size: 1.15em;
157
+ }
158
+
159
+ .memori-chat--bubble h3 {
160
+ font-size: 1.05em;
161
+ }
162
+
163
+ .memori-chat--bubble h1:first-child,
164
+ .memori-chat--bubble h2:first-child,
165
+ .memori-chat--bubble h3:first-child,
166
+ .memori-chat--bubble h4:first-child,
167
+ .memori-chat--bubble h5:first-child,
168
+ .memori-chat--bubble h6:first-child {
169
+ margin-top: 0;
170
+ }
171
+
172
+ .memori-chat--bubble blockquote {
173
+ padding-left: 0.75em;
174
+ border-left: 3px solid rgba(20, 21, 21, 0.25);
175
+ margin: 0.65em 0;
176
+ }
177
+
178
+ .memori-chat--bubble.memori-chat--user-bubble blockquote {
179
+ border-left-color: rgba(255, 255, 255, 0.55);
180
+ }
181
+
182
+ .memori-chat--bubble code {
183
+ padding: 0.1em 0.35em;
184
+ border-radius: 4px;
185
+ background: rgba(20, 21, 21, 0.06);
186
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
187
+ font-size: 0.9em;
188
+ }
189
+
190
+ .memori-chat--bubble pre {
191
+ max-width: 100%;
192
+ box-sizing: border-box;
193
+ padding: 10px 12px;
194
+ border-radius: 8px;
195
+ margin: 0.65em 0;
196
+ background: #161b22;
197
+ color: #e6edf3;
198
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
199
+ font-size: 0.85em;
200
+ line-height: 1.45;
201
+ overflow-x: auto;
202
+ white-space: pre-wrap;
203
+ word-break: break-word;
204
+ }
205
+
206
+ .memori-chat--bubble pre code {
207
+ padding: 0;
208
+ background: transparent;
209
+ color: inherit;
210
+ font-size: inherit;
211
+ }
212
+
213
+ .memori-chat--bubble.memori-chat--user-bubble code {
214
+ background: rgba(255, 255, 255, 0.18);
215
+ color: inherit;
216
+ }
217
+
218
+ .memori-chat--bubble.memori-chat--user-bubble pre code {
219
+ background: transparent;
220
+ color: inherit;
221
+ }
222
+
129
223
  .memori-chat--bubble ul,
130
224
  .memori-chat--bubble ol {
131
225
  padding-left: 1rem;
@@ -154,15 +248,6 @@
154
248
  color: var(--memori-primary-text);
155
249
  }
156
250
 
157
- .memori-chat--bubble h1,
158
- .memori-chat--bubble h2,
159
- .memori-chat--bubble h3,
160
- .memori-chat--bubble h4,
161
- .memori-chat--bubble h5,
162
- .memori-chat--bubble h6 {
163
- color: inherit;
164
- }
165
-
166
251
  @media (max-width: 600px) {
167
252
  .memori-chat--bubble p {
168
253
  font-size: 12px;
@@ -6,7 +6,8 @@
6
6
  padding: 0;
7
7
  padding-bottom: 1.5rem;
8
8
  margin: 0;
9
- /* background: linear-gradient(to top, rgba(255, 255, 255, 0.8) 0%, transparent 100%); */
9
+ /* Solid surface so messages scrolling under the sticky composer stay hidden. */
10
+ background-color: var(--memori-chat-inputs-surface, #fff);
10
11
  }
11
12
 
12
13
  .memori-chat-inputs {
@@ -148,8 +149,8 @@
148
149
  padding: 4px 12px;
149
150
  border-radius: 10px;
150
151
  margin-top: 2px;
151
- background-color: var(--memori-inner-bg, transparent);
152
- color: rgba(0, 0, 0, 0.6);
152
+ background-color: var(--memori-chat-inputs-surface, #fff);
153
+ color: var(--memori-chat-inputs-disclaimer, rgba(0, 0, 0, 0.6));
153
154
  font-size: 12px;
154
155
  line-height: 1.5;
155
156
  text-align: center;
@@ -307,14 +308,15 @@
307
308
  justify-content: center;
308
309
  padding: 8px 60px;
309
310
  margin-top: -4px;
310
- color: rgba(0, 0, 0, 0.6);
311
+ background-color: var(--memori-chat-inputs-surface, #fff);
312
+ color: var(--memori-chat-inputs-disclaimer, rgba(0, 0, 0, 0.6));
311
313
  font-size: 12px;
312
314
  line-height: 1.5;
313
315
  text-align: center;
314
316
  }
315
317
 
316
318
  .memori-chat-inputs--disclaimer a {
317
- color: rgba(0, 0, 0, 0.8);
319
+ color: var(--memori-chat-inputs-disclaimer-link, rgba(0, 0, 0, 0.8));
318
320
  cursor: pointer;
319
321
  text-decoration: underline;
320
322
  }
@@ -24,6 +24,33 @@
24
24
  pointer-events: none;
25
25
  }
26
26
 
27
+ /*
28
+ * Side panel only covers the right half, so the chat column keeps wheel/touch scroll.
29
+ * 50% matches widthLg in ArtifactDrawer.tsx; the Drawer sets its width vars on the panel, not here.
30
+ */
31
+ @media (min-width: 1025px) {
32
+ .memori-artifact-panel-drawer .memori-drawer--container {
33
+ left: auto;
34
+ overflow: hidden;
35
+ width: 50%;
36
+ pointer-events: none;
37
+ }
38
+
39
+ .memori-artifact-panel-drawer .memori-drawer--container-scrollable {
40
+ width: 100%;
41
+ height: 100%;
42
+ min-height: 0;
43
+ justify-content: flex-end;
44
+ pointer-events: none;
45
+ }
46
+
47
+ .memori-artifact-panel-drawer .memori-drawer--panel {
48
+ width: 100%;
49
+ max-width: none;
50
+ pointer-events: auto;
51
+ }
52
+ }
53
+
27
54
  /* Main Drawer Container (Mobile Only) */
28
55
  .memori-artifact-drawer {
29
56
  position: relative;
@@ -81,6 +81,7 @@ function readCorrelationID(response) {
81
81
  const value = response.correlationID;
82
82
  return typeof value === 'string' && value.length > 0 ? value : undefined;
83
83
  }
84
+ const MAX_WAIT_FOR_PREVIOUS_RETRIES = 30;
84
85
  const typeMessage = (message, waitForPrevious = true, hidden = false, typingText, useLoaderTextAsMsg = false, hasBatchQueued = false) => {
85
86
  const e = new CustomEvent('MemoriTextEntered', {
86
87
  detail: {
@@ -496,7 +497,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
496
497
  if (response.resultCode === 0 && correlationID) {
497
498
  registerPendingEnterText(correlationID, {
498
499
  msg,
499
- stateBeforeRequest: dialogStateFingerprint(currentDialogState),
500
+ stateBeforeRequest: engineStateFingerprintRef.current,
500
501
  text,
501
502
  media,
502
503
  translate,
@@ -550,7 +551,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
550
551
  setMemoriTyping(false);
551
552
  }
552
553
  };
553
- const translateDialogState = async (state, userLang, msg, avoidPushingMessage = false) => {
554
+ const translateDialogState = async (state, userLang, msg, avoidPushingMessage = false, engineState = state) => {
554
555
  var _a, _b, _c, _d, _f, _g;
555
556
  const emission = (_a = state === null || state === void 0 ? void 0 : state.emission) !== null && _a !== void 0 ? _a : currentDialogState === null || currentDialogState === void 0 ? void 0 : currentDialogState.emission;
556
557
  let translatedState = { ...state };
@@ -646,7 +647,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
646
647
  };
647
648
  }
648
649
  }
649
- setCurrentDialogState(translatedState);
650
+ setCurrentDialogState(translatedState, engineState);
650
651
  if (!avoidPushingMessage && translatedMsg) {
651
652
  pushMessage(translatedMsg);
652
653
  }
@@ -724,8 +725,10 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
724
725
  setSessionIdState(id);
725
726
  };
726
727
  const [currentDialogState, _setCurrentDialogState] = useState();
727
- const setCurrentDialogState = (state) => {
728
+ const engineStateFingerprintRef = useRef('');
729
+ const setCurrentDialogState = (state, engineState = state) => {
728
730
  var _a, _b;
731
+ engineStateFingerprintRef.current = dialogStateFingerprint(engineState);
729
732
  _setCurrentDialogState(state);
730
733
  if (onStateChange) {
731
734
  onStateChange(state);
@@ -1280,8 +1283,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1280
1283
  if (userLang.toLowerCase() !== language.toLowerCase() &&
1281
1284
  emission &&
1282
1285
  isMultilanguageEnabled) {
1283
- currentState.emission = emission;
1284
- translateDialogState(currentState, userLang, msg).then(ts => {
1286
+ translateDialogState({ ...currentState, emission }, userLang, msg, false, currentState).then(ts => {
1285
1287
  const text = ts.translatedEmission || ts.emission;
1286
1288
  if (text && shouldPlayAudio(text)) {
1287
1289
  handleSpeak(text);
@@ -1292,7 +1294,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1292
1294
  setCurrentDialogState({
1293
1295
  ...currentState,
1294
1296
  emission,
1295
- });
1297
+ }, currentState);
1296
1298
  if (emission) {
1297
1299
  pushMessage({
1298
1300
  text: emission,
@@ -1415,7 +1417,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1415
1417
  reject(new Error('NATS enter-text response timeout'));
1416
1418
  }, timeoutMs);
1417
1419
  registerPendingEnterText(correlationID, {
1418
- stateBeforeRequest: dialogStateFingerprint(currentDialogState),
1420
+ stateBeforeRequest: engineStateFingerprintRef.current,
1419
1421
  waitForResponse: {
1420
1422
  resolve: event => {
1421
1423
  clearTimeout(timeoutId);
@@ -1428,7 +1430,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1428
1430
  timeoutId,
1429
1431
  },
1430
1432
  });
1431
- }), [registerPendingEnterText, clearEnterTextPending, currentDialogState]);
1433
+ }), [registerPendingEnterText, clearEnterTextPending]);
1432
1434
  const catchUpPendingEnterText = useCallback(async () => {
1433
1435
  if (!sessionId || pendingEnterTextRef.current.size === 0)
1434
1436
  return;
@@ -1449,7 +1451,9 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1449
1451
  });
1450
1452
  return;
1451
1453
  }
1452
- if (!isEnterTextCatchUpReady(pending.stateBeforeRequest, currentState)) {
1454
+ if (!isEnterTextCatchUpReady(pending.stateBeforeRequest, currentState) ||
1455
+ dialogStateFingerprint(currentState) ===
1456
+ engineStateFingerprintRef.current) {
1453
1457
  console.info('[NATS] catch-up: pending turn has not completed yet');
1454
1458
  return;
1455
1459
  }
@@ -1579,6 +1583,15 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1579
1583
  '--memori-inner-bg': `rgba(${integrationConfig.innerBgColor === 'dark'
1580
1584
  ? '0, 0, 0'
1581
1585
  : '255, 255, 255'}, ${(_y = integrationConfig.innerBgAlpha) !== null && _y !== void 0 ? _y : 0.4})`,
1586
+ '--memori-chat-inputs-surface': integrationConfig.innerBgColor === 'dark'
1587
+ ? '#141414'
1588
+ : '#ffffff',
1589
+ '--memori-chat-inputs-disclaimer': integrationConfig.innerBgColor === 'dark'
1590
+ ? 'rgba(255, 255, 255, 0.72)'
1591
+ : 'rgba(0, 0, 0, 0.6)',
1592
+ '--memori-chat-inputs-disclaimer-link': integrationConfig.innerBgColor === 'dark'
1593
+ ? 'rgba(255, 255, 255, 0.88)'
1594
+ : 'rgba(0, 0, 0, 0.8)',
1582
1595
  '--memori-inner-content-pad': '1.5rem',
1583
1596
  '--memori-nav-bg-image': 'none',
1584
1597
  '--memori-nav-bg': `rgba(${integrationConfig.innerBgColor === 'dark'
@@ -1644,7 +1657,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1644
1657
  ttsStop();
1645
1658
  sendMessage(text, undefined, undefined, false, translatedText);
1646
1659
  };
1647
- const memoriTextEnteredHandler = useCallback((e) => {
1660
+ const memoriTextEnteredHandler = (e, retries = 0) => {
1648
1661
  if (disableTextEnteredEvents) {
1649
1662
  return;
1650
1663
  }
@@ -1652,9 +1665,10 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1652
1665
  if (text) {
1653
1666
  if (waitForPrevious &&
1654
1667
  !speakerMuted &&
1655
- (memoriSpeaking || !!memoriTyping)) {
1668
+ (memoriSpeaking || pendingEnterTextRef.current.size > 0) &&
1669
+ retries < MAX_WAIT_FOR_PREVIOUS_RETRIES) {
1656
1670
  setTimeout(() => {
1657
- memoriTextEnteredHandler(e);
1671
+ memoriTextEnteredHandlerRef.current(e, retries + 1);
1658
1672
  }, 1000);
1659
1673
  }
1660
1674
  else {
@@ -1662,25 +1676,18 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1662
1676
  sendMessage(text, undefined, undefined, undefined, undefined, hidden, typingText, useLoaderTextAsMsg, hasBatchQueued);
1663
1677
  }
1664
1678
  }
1665
- }, [
1666
- sessionId,
1667
- isPlayingAudio,
1668
- memoriTyping,
1669
- userLang,
1670
- disableTextEnteredEvents,
1671
- speakerMuted,
1672
- ]);
1679
+ };
1680
+ const memoriTextEnteredHandlerRef = useRef(memoriTextEnteredHandler);
1681
+ memoriTextEnteredHandlerRef.current = memoriTextEnteredHandler;
1673
1682
  useEffect(() => {
1674
- if (!disableTextEnteredEvents) {
1675
- document.addEventListener('MemoriTextEntered', memoriTextEnteredHandler);
1676
- }
1677
- else {
1678
- document.removeEventListener('MemoriTextEntered', memoriTextEnteredHandler);
1679
- }
1683
+ if (disableTextEnteredEvents)
1684
+ return;
1685
+ const listener = (e) => memoriTextEnteredHandlerRef.current(e);
1686
+ document.addEventListener('MemoriTextEntered', listener);
1680
1687
  return () => {
1681
- document.removeEventListener('MemoriTextEntered', memoriTextEnteredHandler);
1688
+ document.removeEventListener('MemoriTextEntered', listener);
1682
1689
  };
1683
- }, [sessionId, userLang, disableTextEnteredEvents]);
1690
+ }, [disableTextEnteredEvents]);
1684
1691
  const onClickStart = useCallback(async (session, initialSessionExpired = false, chatLog, targetSessionID) => {
1685
1692
  var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
1686
1693
  const sessionID = chatLog ? undefined : (session === null || session === void 0 ? void 0 : session.sessionID) || sessionId;