@memori.ai/memori-react 8.45.5 → 8.46.0

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 (271) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/MemoriWidget/MemoriWidget.js +61 -32
  3. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  4. package/dist/helpers/speech/speechRequest.d.ts +15 -0
  5. package/dist/helpers/speech/speechRequest.js +76 -0
  6. package/dist/helpers/speech/speechRequest.js.map +1 -0
  7. package/dist/helpers/stt/useSTT.d.ts +4 -0
  8. package/dist/helpers/stt/useSTT.js +20 -13
  9. package/dist/helpers/stt/useSTT.js.map +1 -1
  10. package/dist/helpers/tts/useTTS.d.ts +5 -0
  11. package/dist/helpers/tts/useTTS.js +12 -4
  12. package/dist/helpers/tts/useTTS.js.map +1 -1
  13. package/dist/locales/de.json +4 -0
  14. package/dist/locales/en.json +4 -0
  15. package/dist/locales/es.json +4 -0
  16. package/dist/locales/fr.json +4 -0
  17. package/dist/locales/it.json +4 -0
  18. package/dist/version.d.ts +1 -1
  19. package/dist/version.js +1 -1
  20. package/esm/components/MemoriWidget/MemoriWidget.js +61 -32
  21. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  22. package/esm/helpers/speech/speechRequest.d.ts +15 -0
  23. package/esm/helpers/speech/speechRequest.js +68 -0
  24. package/esm/helpers/speech/speechRequest.js.map +1 -0
  25. package/esm/helpers/stt/useSTT.d.ts +4 -0
  26. package/esm/helpers/stt/useSTT.js +20 -13
  27. package/esm/helpers/stt/useSTT.js.map +1 -1
  28. package/esm/helpers/tts/useTTS.d.ts +5 -0
  29. package/esm/helpers/tts/useTTS.js +12 -4
  30. package/esm/helpers/tts/useTTS.js.map +1 -1
  31. package/esm/locales/de.json +4 -0
  32. package/esm/locales/en.json +4 -0
  33. package/esm/locales/es.json +4 -0
  34. package/esm/locales/fr.json +4 -0
  35. package/esm/locales/it.json +4 -0
  36. package/esm/version.d.ts +1 -1
  37. package/esm/version.js +1 -1
  38. package/package.json +1 -1
  39. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +0 -78
  40. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +0 -39
  41. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +0 -43
  42. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +0 -1
  43. package/dist/components/ContentPreviewModal/DocumentMarkdown.d.ts +0 -7
  44. package/dist/components/ContentPreviewModal/DocumentMarkdown.js +0 -31
  45. package/dist/components/ContentPreviewModal/DocumentMarkdown.js.map +0 -1
  46. package/dist/components/DrawerFooter/DrawerFooter.css +0 -62
  47. package/dist/components/DrawerFooter/DrawerFooter.d.ts +0 -12
  48. package/dist/components/DrawerFooter/DrawerFooter.js +0 -10
  49. package/dist/components/DrawerFooter/DrawerFooter.js.map +0 -1
  50. package/dist/components/IconButton/IconButton.css +0 -135
  51. package/dist/components/IconButton/IconButton.d.ts +0 -9
  52. package/dist/components/IconButton/IconButton.js +0 -36
  53. package/dist/components/IconButton/IconButton.js.map +0 -1
  54. package/dist/components/LoginModal/LoginModal.css +0 -270
  55. package/dist/components/LoginModal/LoginModal.d.ts +0 -19
  56. package/dist/components/LoginModal/LoginModal.js +0 -355
  57. package/dist/components/LoginModal/LoginModal.js.map +0 -1
  58. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +0 -540
  59. package/dist/components/MobileSessionPanel/MobileSessionPanel.d.ts +0 -65
  60. package/dist/components/MobileSessionPanel/MobileSessionPanel.js +0 -254
  61. package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +0 -1
  62. package/dist/components/PositionPopover/PositionPopover.css +0 -218
  63. package/dist/components/PositionPopover/PositionPopover.d.ts +0 -22
  64. package/dist/components/PositionPopover/PositionPopover.js +0 -208
  65. package/dist/components/PositionPopover/PositionPopover.js.map +0 -1
  66. package/dist/components/ReasoningBlock/ReasoningBlock.css +0 -156
  67. package/dist/components/ReasoningBlock/ReasoningBlock.d.ts +0 -7
  68. package/dist/components/ReasoningBlock/ReasoningBlock.js +0 -61
  69. package/dist/components/ReasoningBlock/ReasoningBlock.js.map +0 -1
  70. package/dist/components/SideDrawer/SideDrawer.css +0 -112
  71. package/dist/components/SideDrawer/SideDrawer.d.ts +0 -22
  72. package/dist/components/SideDrawer/SideDrawer.js +0 -17
  73. package/dist/components/SideDrawer/SideDrawer.js.map +0 -1
  74. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +0 -4
  75. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +0 -144
  76. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +0 -1
  77. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +0 -889
  78. package/dist/components/layouts/fullpage.css +0 -628
  79. package/dist/helpers/artifactPanel.d.ts +0 -6
  80. package/dist/helpers/artifactPanel.js +0 -42
  81. package/dist/helpers/artifactPanel.js.map +0 -1
  82. package/dist/helpers/chatScroll.d.ts +0 -12
  83. package/dist/helpers/chatScroll.js +0 -14
  84. package/dist/helpers/chatScroll.js.map +0 -1
  85. package/dist/helpers/conversationHistory.d.ts +0 -16
  86. package/dist/helpers/conversationHistory.js +0 -89
  87. package/dist/helpers/conversationHistory.js.map +0 -1
  88. package/dist/helpers/conversationTitle.d.ts +0 -8
  89. package/dist/helpers/conversationTitle.js +0 -27
  90. package/dist/helpers/conversationTitle.js.map +0 -1
  91. package/dist/helpers/enhanceBubbleCodeBlocks.d.ts +0 -5
  92. package/dist/helpers/enhanceBubbleCodeBlocks.js +0 -97
  93. package/dist/helpers/enhanceBubbleCodeBlocks.js.map +0 -1
  94. package/dist/helpers/highlightMatches.d.ts +0 -2
  95. package/dist/helpers/highlightMatches.js +0 -54
  96. package/dist/helpers/highlightMatches.js.map +0 -1
  97. package/dist/helpers/positionPopover.d.ts +0 -3
  98. package/dist/helpers/positionPopover.js +0 -22
  99. package/dist/helpers/positionPopover.js.map +0 -1
  100. package/dist/helpers/prism.d.ts +0 -16
  101. package/dist/helpers/prism.js +0 -78
  102. package/dist/helpers/prism.js.map +0 -1
  103. package/dist/helpers/reasoning.d.ts +0 -7
  104. package/dist/helpers/reasoning.js +0 -43
  105. package/dist/helpers/reasoning.js.map +0 -1
  106. package/dist/helpers/relativeTime.d.ts +0 -3
  107. package/dist/helpers/relativeTime.js +0 -56
  108. package/dist/helpers/relativeTime.js.map +0 -1
  109. package/dist/helpers/sourcesCount.d.ts +0 -2
  110. package/dist/helpers/sourcesCount.js +0 -22
  111. package/dist/helpers/sourcesCount.js.map +0 -1
  112. package/dist/helpers/tts/muteSpeaker.d.ts +0 -13
  113. package/dist/helpers/tts/muteSpeaker.js +0 -26
  114. package/dist/helpers/tts/muteSpeaker.js.map +0 -1
  115. package/dist/helpers/usePressTooltip.d.ts +0 -18
  116. package/dist/helpers/usePressTooltip.js +0 -38
  117. package/dist/helpers/usePressTooltip.js.map +0 -1
  118. package/dist/icons/FacebookIcon.d.ts +0 -3
  119. package/dist/icons/FacebookIcon.js +0 -6
  120. package/dist/icons/FacebookIcon.js.map +0 -1
  121. package/dist/icons/LinkedinIcon.d.ts +0 -3
  122. package/dist/icons/LinkedinIcon.js +0 -6
  123. package/dist/icons/LinkedinIcon.js.map +0 -1
  124. package/dist/icons/MemoriIcon.d.ts +0 -3
  125. package/dist/icons/MemoriIcon.js +0 -8
  126. package/dist/icons/MemoriIcon.js.map +0 -1
  127. package/dist/icons/TelegramIcon.d.ts +0 -3
  128. package/dist/icons/TelegramIcon.js +0 -6
  129. package/dist/icons/TelegramIcon.js.map +0 -1
  130. package/dist/icons/TwitterIcon.d.ts +0 -3
  131. package/dist/icons/TwitterIcon.js +0 -6
  132. package/dist/icons/TwitterIcon.js.map +0 -1
  133. package/dist/icons/WhatsappIcon.d.ts +0 -3
  134. package/dist/icons/WhatsappIcon.js +0 -6
  135. package/dist/icons/WhatsappIcon.js.map +0 -1
  136. package/dist/icons/artifacts/DocumentIcon.d.ts +0 -3
  137. package/dist/icons/artifacts/DocumentIcon.js +0 -6
  138. package/dist/icons/artifacts/DocumentIcon.js.map +0 -1
  139. package/dist/icons/artifacts/HtmlIcon.d.ts +0 -3
  140. package/dist/icons/artifacts/HtmlIcon.js +0 -6
  141. package/dist/icons/artifacts/HtmlIcon.js.map +0 -1
  142. package/dist/icons/artifacts/JavascriptIcon.d.ts +0 -3
  143. package/dist/icons/artifacts/JavascriptIcon.js +0 -6
  144. package/dist/icons/artifacts/JavascriptIcon.js.map +0 -1
  145. package/dist/icons/artifacts/MarkdownIcon.d.ts +0 -3
  146. package/dist/icons/artifacts/MarkdownIcon.js +0 -6
  147. package/dist/icons/artifacts/MarkdownIcon.js.map +0 -1
  148. package/dist/icons/artifacts/PythonIcon.d.ts +0 -3
  149. package/dist/icons/artifacts/PythonIcon.js +0 -6
  150. package/dist/icons/artifacts/PythonIcon.js.map +0 -1
  151. package/dist/icons/artifacts/SvgIcon.d.ts +0 -3
  152. package/dist/icons/artifacts/SvgIcon.js +0 -6
  153. package/dist/icons/artifacts/SvgIcon.js.map +0 -1
  154. package/dist/icons/artifacts/XmlIcon.d.ts +0 -3
  155. package/dist/icons/artifacts/XmlIcon.js +0 -6
  156. package/dist/icons/artifacts/XmlIcon.js.map +0 -1
  157. package/dist/icons/artifacts/cssIcon.d.ts +0 -3
  158. package/dist/icons/artifacts/cssIcon.js +0 -6
  159. package/dist/icons/artifacts/cssIcon.js.map +0 -1
  160. package/dist/styles/motion.css +0 -25
  161. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +0 -39
  162. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +0 -40
  163. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +0 -1
  164. package/esm/components/ContentPreviewModal/DocumentMarkdown.d.ts +0 -7
  165. package/esm/components/ContentPreviewModal/DocumentMarkdown.js +0 -28
  166. package/esm/components/ContentPreviewModal/DocumentMarkdown.js.map +0 -1
  167. package/esm/components/DrawerFooter/DrawerFooter.d.ts +0 -12
  168. package/esm/components/DrawerFooter/DrawerFooter.js +0 -8
  169. package/esm/components/DrawerFooter/DrawerFooter.js.map +0 -1
  170. package/esm/components/IconButton/IconButton.d.ts +0 -9
  171. package/esm/components/IconButton/IconButton.js +0 -33
  172. package/esm/components/IconButton/IconButton.js.map +0 -1
  173. package/esm/components/LoginModal/LoginModal.d.ts +0 -19
  174. package/esm/components/LoginModal/LoginModal.js +0 -352
  175. package/esm/components/LoginModal/LoginModal.js.map +0 -1
  176. package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +0 -65
  177. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +0 -251
  178. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +0 -1
  179. package/esm/components/PositionPopover/PositionPopover.d.ts +0 -22
  180. package/esm/components/PositionPopover/PositionPopover.js +0 -203
  181. package/esm/components/PositionPopover/PositionPopover.js.map +0 -1
  182. package/esm/components/ReasoningBlock/ReasoningBlock.d.ts +0 -7
  183. package/esm/components/ReasoningBlock/ReasoningBlock.js +0 -58
  184. package/esm/components/ReasoningBlock/ReasoningBlock.js.map +0 -1
  185. package/esm/components/SideDrawer/SideDrawer.d.ts +0 -22
  186. package/esm/components/SideDrawer/SideDrawer.js +0 -12
  187. package/esm/components/SideDrawer/SideDrawer.js.map +0 -1
  188. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +0 -4
  189. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +0 -141
  190. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +0 -1
  191. package/esm/helpers/artifactPanel.d.ts +0 -6
  192. package/esm/helpers/artifactPanel.js +0 -37
  193. package/esm/helpers/artifactPanel.js.map +0 -1
  194. package/esm/helpers/chatScroll.d.ts +0 -12
  195. package/esm/helpers/chatScroll.js +0 -9
  196. package/esm/helpers/chatScroll.js.map +0 -1
  197. package/esm/helpers/conversationHistory.d.ts +0 -16
  198. package/esm/helpers/conversationHistory.js +0 -82
  199. package/esm/helpers/conversationHistory.js.map +0 -1
  200. package/esm/helpers/conversationTitle.d.ts +0 -8
  201. package/esm/helpers/conversationTitle.js +0 -23
  202. package/esm/helpers/conversationTitle.js.map +0 -1
  203. package/esm/helpers/enhanceBubbleCodeBlocks.d.ts +0 -5
  204. package/esm/helpers/enhanceBubbleCodeBlocks.js +0 -94
  205. package/esm/helpers/enhanceBubbleCodeBlocks.js.map +0 -1
  206. package/esm/helpers/highlightMatches.d.ts +0 -2
  207. package/esm/helpers/highlightMatches.js +0 -49
  208. package/esm/helpers/highlightMatches.js.map +0 -1
  209. package/esm/helpers/positionPopover.d.ts +0 -3
  210. package/esm/helpers/positionPopover.js +0 -17
  211. package/esm/helpers/positionPopover.js.map +0 -1
  212. package/esm/helpers/prism.d.ts +0 -16
  213. package/esm/helpers/prism.js +0 -74
  214. package/esm/helpers/prism.js.map +0 -1
  215. package/esm/helpers/reasoning.d.ts +0 -7
  216. package/esm/helpers/reasoning.js +0 -39
  217. package/esm/helpers/reasoning.js.map +0 -1
  218. package/esm/helpers/relativeTime.d.ts +0 -3
  219. package/esm/helpers/relativeTime.js +0 -50
  220. package/esm/helpers/relativeTime.js.map +0 -1
  221. package/esm/helpers/sourcesCount.d.ts +0 -2
  222. package/esm/helpers/sourcesCount.js +0 -18
  223. package/esm/helpers/sourcesCount.js.map +0 -1
  224. package/esm/helpers/tts/muteSpeaker.d.ts +0 -13
  225. package/esm/helpers/tts/muteSpeaker.js +0 -21
  226. package/esm/helpers/tts/muteSpeaker.js.map +0 -1
  227. package/esm/helpers/usePressTooltip.d.ts +0 -18
  228. package/esm/helpers/usePressTooltip.js +0 -35
  229. package/esm/helpers/usePressTooltip.js.map +0 -1
  230. package/esm/icons/FacebookIcon.d.ts +0 -3
  231. package/esm/icons/FacebookIcon.js +0 -4
  232. package/esm/icons/FacebookIcon.js.map +0 -1
  233. package/esm/icons/LinkedinIcon.d.ts +0 -3
  234. package/esm/icons/LinkedinIcon.js +0 -4
  235. package/esm/icons/LinkedinIcon.js.map +0 -1
  236. package/esm/icons/MemoriIcon.d.ts +0 -3
  237. package/esm/icons/MemoriIcon.js +0 -6
  238. package/esm/icons/MemoriIcon.js.map +0 -1
  239. package/esm/icons/TelegramIcon.d.ts +0 -3
  240. package/esm/icons/TelegramIcon.js +0 -4
  241. package/esm/icons/TelegramIcon.js.map +0 -1
  242. package/esm/icons/TwitterIcon.d.ts +0 -3
  243. package/esm/icons/TwitterIcon.js +0 -4
  244. package/esm/icons/TwitterIcon.js.map +0 -1
  245. package/esm/icons/WhatsappIcon.d.ts +0 -3
  246. package/esm/icons/WhatsappIcon.js +0 -4
  247. package/esm/icons/WhatsappIcon.js.map +0 -1
  248. package/esm/icons/artifacts/DocumentIcon.d.ts +0 -3
  249. package/esm/icons/artifacts/DocumentIcon.js +0 -4
  250. package/esm/icons/artifacts/DocumentIcon.js.map +0 -1
  251. package/esm/icons/artifacts/HtmlIcon.d.ts +0 -3
  252. package/esm/icons/artifacts/HtmlIcon.js +0 -4
  253. package/esm/icons/artifacts/HtmlIcon.js.map +0 -1
  254. package/esm/icons/artifacts/JavascriptIcon.d.ts +0 -3
  255. package/esm/icons/artifacts/JavascriptIcon.js +0 -4
  256. package/esm/icons/artifacts/JavascriptIcon.js.map +0 -1
  257. package/esm/icons/artifacts/MarkdownIcon.d.ts +0 -3
  258. package/esm/icons/artifacts/MarkdownIcon.js +0 -4
  259. package/esm/icons/artifacts/MarkdownIcon.js.map +0 -1
  260. package/esm/icons/artifacts/PythonIcon.d.ts +0 -3
  261. package/esm/icons/artifacts/PythonIcon.js +0 -4
  262. package/esm/icons/artifacts/PythonIcon.js.map +0 -1
  263. package/esm/icons/artifacts/SvgIcon.d.ts +0 -3
  264. package/esm/icons/artifacts/SvgIcon.js +0 -4
  265. package/esm/icons/artifacts/SvgIcon.js.map +0 -1
  266. package/esm/icons/artifacts/XmlIcon.d.ts +0 -3
  267. package/esm/icons/artifacts/XmlIcon.js +0 -4
  268. package/esm/icons/artifacts/XmlIcon.js.map +0 -1
  269. package/esm/icons/artifacts/cssIcon.d.ts +0 -3
  270. package/esm/icons/artifacts/cssIcon.js +0 -4
  271. package/esm/icons/artifacts/cssIcon.js.map +0 -1
@@ -1,22 +0,0 @@
1
- import React from 'react';
2
- export interface SideDrawerProps {
3
- open?: boolean;
4
- onClose: () => void;
5
- title: React.ReactNode;
6
- description?: React.ReactNode;
7
- footer?: React.ReactNode;
8
- children?: React.ReactNode;
9
- className?: string;
10
- size?: 'sm' | 'md' | 'lg';
11
- loading?: boolean;
12
- closeLabel?: string;
13
- }
14
- declare const SideDrawer: React.FC<SideDrawerProps>;
15
- export interface SideDrawerEmptyProps {
16
- icon?: React.ReactNode;
17
- title: React.ReactNode;
18
- description?: React.ReactNode;
19
- children?: React.ReactNode;
20
- }
21
- export declare const SideDrawerEmpty: React.FC<SideDrawerEmptyProps>;
22
- export default SideDrawer;
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import cx from 'classnames';
3
- import { Drawer } from '@memori.ai/ui';
4
- const SideDrawer = ({ open = true, onClose, title, description, footer, children, className, size = 'md', loading, closeLabel, }) => {
5
- return (_jsx(Drawer, { open: open, anchor: "right", size: size, loading: loading, closeLabel: closeLabel, className: cx('memori-side-drawer', className), title: title, description: description, footer: footer, onClose: onClose, onOpenChange: nextOpen => {
6
- if (!nextOpen)
7
- onClose();
8
- }, children: _jsx("div", { className: "memori-side-drawer__body", children: children }) }));
9
- };
10
- export const SideDrawerEmpty = ({ icon, title, description, children, }) => (_jsxs("div", { className: "memori-side-drawer-empty", role: "status", children: [icon != null && (_jsx("span", { className: "memori-side-drawer-empty__icon", "aria-hidden": true, children: icon })), _jsx("p", { className: "memori-side-drawer-empty__title", children: title }), description != null && (_jsx("p", { className: "memori-side-drawer-empty__text", children: description })), children] }));
11
- export default SideDrawer;
12
- //# sourceMappingURL=SideDrawer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SideDrawer.js","sourceRoot":"","sources":["../../../src/components/SideDrawer/SideDrawer.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAoBvC,MAAM,UAAU,GAA8B,CAAC,EAC7C,IAAI,GAAG,IAAI,EACX,OAAO,EACP,KAAK,EACL,WAAW,EACX,MAAM,EACN,QAAQ,EACR,SAAS,EACT,IAAI,GAAG,IAAI,EACX,OAAO,EACP,UAAU,GACX,EAAE,EAAE;IACH,OAAO,CACL,KAAC,MAAM,IACL,IAAI,EAAE,IAAI,EACV,MAAM,EAAC,OAAO,EACd,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAC9C,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,QAAQ,CAAC,EAAE;YACvB,IAAI,CAAC,QAAQ;gBAAE,OAAO,EAAE,CAAC;QAC3B,CAAC,YAED,cAAK,SAAS,EAAC,0BAA0B,YAAE,QAAQ,GAAO,GACnD,CACV,CAAC;AACJ,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC9D,IAAI,EACJ,KAAK,EACL,WAAW,EACX,QAAQ,GACT,EAAE,EAAE,CAAC,CACJ,eAAK,SAAS,EAAC,0BAA0B,EAAC,IAAI,EAAC,QAAQ,aACpD,IAAI,IAAI,IAAI,IAAI,CACf,eAAM,SAAS,EAAC,gCAAgC,iCAC7C,IAAI,GACA,CACR,EACD,YAAG,SAAS,EAAC,iCAAiC,YAAE,KAAK,GAAK,EACzD,WAAW,IAAI,IAAI,IAAI,CACtB,YAAG,SAAS,EAAC,gCAAgC,YAAE,WAAW,GAAK,CAChE,EACA,QAAQ,IACL,CACP,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { LayoutProps } from '../../MemoriWidget/MemoriWidget';
3
- declare const WebsiteAssistantLayout: React.FC<LayoutProps>;
4
- export default WebsiteAssistantLayout;
@@ -1,141 +0,0 @@
1
- import { createElement as _createElement } from "react";
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { useState, useMemo, useEffect, useRef } from 'react';
4
- import { Spin, Button } from '@memori.ai/ui';
5
- import Blob from '../../Blob/Blob';
6
- import { X } from 'lucide-react';
7
- import { useTranslation } from 'react-i18next';
8
- import { useArtifact } from '../../MemoriArtifactSystem/context/ArtifactContext';
9
- import ArtifactDrawer from '../../MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer';
10
- import { getResourceUrl } from '../../../helpers/media';
11
- const PANEL_SELECTOR = '.memori-website_assistant--expanded';
12
- const FULLSCREEN_CLASS = 'memori-website_assistant--fullscreen';
13
- const WebsiteAssistantLayout = ({ Header, headerProps, Avatar, avatarProps, Chat, chatProps, StartPanel, startPanelProps, integrationStyle, sessionId, hasUserActivatedSpeak, loading = false, avatar3dHidden = true, sideDrawerOpen = false, }) => {
14
- var _a, _b;
15
- const { t } = useTranslation();
16
- const { state: artifactState } = useArtifact();
17
- const useSideArtifactChrome = artifactState.isDrawerOpen && !artifactState.isChatLogPanelPresentation;
18
- const useSideDrawerChrome = useSideArtifactChrome || sideDrawerOpen;
19
- const [collapsed, _setCollapsed] = useState(true);
20
- const [expandedKey, setExpandedKey] = useState();
21
- const [fullScreen, setFullScreen] = useState(false);
22
- const originalPanelStyles = useRef({
23
- left: '',
24
- right: '',
25
- width: '',
26
- maxWidth: '',
27
- height: '',
28
- backgroundColor: '',
29
- });
30
- const stopAudio = useMemo(() => chatProps === null || chatProps === void 0 ? void 0 : chatProps.stopAudio, [chatProps === null || chatProps === void 0 ? void 0 : chatProps.stopAudio]);
31
- const memori = headerProps === null || headerProps === void 0 ? void 0 : headerProps.memori;
32
- const tenant = headerProps === null || headerProps === void 0 ? void 0 : headerProps.tenant;
33
- const baseUrl = headerProps === null || headerProps === void 0 ? void 0 : headerProps.baseUrl;
34
- const isSessionStarted = Boolean(sessionId && hasUserActivatedSpeak);
35
- const brandAvatarSrc = memori
36
- ? memori.avatarURL && memori.avatarURL.length > 0
37
- ? getResourceUrl({
38
- type: 'avatar',
39
- tenantID: tenant === null || tenant === void 0 ? void 0 : tenant.name,
40
- resourceURI: memori.avatarURL,
41
- baseURL: baseUrl,
42
- apiURL: '',
43
- })
44
- : getResourceUrl({
45
- type: 'avatar',
46
- tenantID: tenant === null || tenant === void 0 ? void 0 : tenant.name,
47
- baseURL: baseUrl,
48
- apiURL: '',
49
- })
50
- : undefined;
51
- const restoreFromFullscreen = () => {
52
- const panelElement = document.querySelector(PANEL_SELECTOR);
53
- if (panelElement) {
54
- const panel = panelElement;
55
- panel.style.left = originalPanelStyles.current.left;
56
- panel.style.right = originalPanelStyles.current.right;
57
- panel.style.width = originalPanelStyles.current.width;
58
- panel.style.maxWidth = originalPanelStyles.current.maxWidth;
59
- panel.style.height = originalPanelStyles.current.height;
60
- panel.style.backgroundColor = originalPanelStyles.current.backgroundColor;
61
- panel.classList.remove(FULLSCREEN_CLASS);
62
- }
63
- setFullScreen(false);
64
- };
65
- useEffect(() => {
66
- const handleFullscreenChange = () => {
67
- if (!document.fullscreenElement && fullScreen) {
68
- restoreFromFullscreen();
69
- }
70
- };
71
- document.addEventListener('fullscreenchange', handleFullscreenChange);
72
- return () => {
73
- document.removeEventListener('fullscreenchange', handleFullscreenChange);
74
- };
75
- }, [fullScreen]);
76
- const handleFullscreenToggle = () => {
77
- if (!document.fullscreenElement) {
78
- const panelElement = document.querySelector(PANEL_SELECTOR);
79
- if (panelElement) {
80
- const panel = panelElement;
81
- originalPanelStyles.current = {
82
- left: panel.style.left,
83
- right: panel.style.right,
84
- width: panel.style.width,
85
- maxWidth: panel.style.maxWidth,
86
- height: panel.style.height,
87
- backgroundColor: panel.style.backgroundColor,
88
- };
89
- panel.style.left = '0';
90
- panel.style.right = '0';
91
- panel.style.width = '100%';
92
- panel.style.maxWidth = 'none';
93
- panel.style.height = '100%';
94
- panel.style.backgroundColor = '';
95
- panel.classList.add(FULLSCREEN_CLASS);
96
- panel.requestFullscreen().catch(err => {
97
- console.warn('[WebsiteAssistantLayout] Error enabling fullscreen:', err);
98
- });
99
- }
100
- setFullScreen(true);
101
- }
102
- else {
103
- if (document.exitFullscreen) {
104
- document.exitFullscreen().catch(err => {
105
- console.warn('[WebsiteAssistantLayout] Error exiting fullscreen:', err);
106
- });
107
- }
108
- restoreFromFullscreen();
109
- }
110
- };
111
- const setCollapsed = (nextCollapsed) => {
112
- if (nextCollapsed && fullScreen) {
113
- if (document.fullscreenElement) {
114
- document.exitFullscreen().catch(err => {
115
- console.warn('[WebsiteAssistantLayout] Error exiting fullscreen:', err);
116
- });
117
- }
118
- restoreFromFullscreen();
119
- }
120
- _setCollapsed(nextCollapsed);
121
- setExpandedKey(nextCollapsed ? undefined : new Date().toISOString());
122
- try {
123
- stopAudio === null || stopAudio === void 0 ? void 0 : stopAudio();
124
- }
125
- catch (e) {
126
- console.log(e);
127
- }
128
- };
129
- return (_jsxs(_Fragment, { children: [collapsed && (_jsx("div", { className: "memori-website_assistant--trigger", children: _jsx(Button, { className: "memori-website_assistant--trigger-button", variant: "ghost", shape: "circle", onClick: () => setCollapsed(false), "aria-label": t('expand') || 'Expand', "aria-expanded": false, title: t('expand') || 'Expand', children: _jsx(Blob, { avatar: avatarProps === null || avatarProps === void 0 ? void 0 : avatarProps.memori.avatarURL }) }) })), _jsx("div", { className: `memori-website_assistant--${collapsed ? 'collapsed' : 'expanded'}${useSideDrawerChrome
130
- ? ' memori-website_assistant--drawer-open memori-website_assistant--artifact-open'
131
- : ''}${fullScreen ? ` ${FULLSCREEN_CLASS}` : ''}`, children: !collapsed && (_jsxs(_Fragment, { children: [integrationStyle, _jsxs(Spin, { spinning: loading, className: "memori-website_assistant-layout", children: [_jsxs("div", { className: "memori-website_assistant-layout--header-row", children: [memori && brandAvatarSrc && (_jsxs("div", { className: "memori-chat-layout--brand", children: [_jsx("img", { className: "memori-chat-layout--brand-avatar", src: brandAvatarSrc, alt: "", role: "presentation" }), _jsx("div", { className: "memori-chat-layout--brand-text", children: isSessionStarted && (_jsx("span", { className: "memori-chat-layout--brand-name", title: memori.name, children: memori.name })) })] })), _jsxs("div", { className: "memori-website_assistant-layout--header-actions", children: [Header && headerProps && (_jsx(Header, { buttonVariant: "outline", ...headerProps, showSettings: false, showReload: false, showChatHistory: false, fullScreenHandler: handleFullscreenToggle })), _jsx("button", { type: "button", className: "memori-website_assistant--close-button", onClick: () => setCollapsed(true), "aria-label": t('collapse') || 'Close', title: t('collapse') || 'Close', children: _jsx(X, { className: "memori-icon-close", "aria-hidden": true }) })] })] }), !(avatar3dHidden === true || avatar3dHidden === 'true') && (_jsx("div", { className: "memori-website_assistant-layout--avatar", children: Avatar && avatarProps && (_createElement(Avatar, { ...avatarProps, integrationConfig: avatarProps.integrationConfig
132
- ? {
133
- ...avatarProps.integrationConfig,
134
- avatarURL: ((_a = avatarProps.integrationConfig) === null || _a === void 0 ? void 0 : _a.avatarURL)
135
- ? `${(_b = avatarProps.integrationConfig) === null || _b === void 0 ? void 0 : _b.avatarURL.split('#')[0]}#${expandedKey}`
136
- : undefined,
137
- }
138
- : {}, key: expandedKey })) })), _jsx("div", { id: "extension" }), _jsx("div", { className: "memori-website_assistant-layout--controls", children: sessionId && hasUserActivatedSpeak && Chat && chatProps ? (_jsx(Chat, { ...chatProps })) : startPanelProps ? (_jsx(StartPanel, { ...startPanelProps, showFullDescriptionOnMobile: true, showChatHistory: false })) : null })] })] })) }), useSideArtifactChrome && _jsx(ArtifactDrawer, {})] }));
139
- };
140
- export default WebsiteAssistantLayout;
141
- //# sourceMappingURL=WebsiteAssistant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebsiteAssistant.js","sourceRoot":"","sources":["../../../../src/components/layouts/WebsiteAssistant/WebsiteAssistant.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export declare const ARTIFACT_COLUMN_DEFAULT_WIDTH = 720;
2
- export declare const ARTIFACT_CHAT_MIN_WIDTH = 400;
3
- export declare const ARTIFACT_COLUMN_MIN_WIDTH = 360;
4
- export declare const ARTIFACT_OVERLAY_BREAKPOINT = 1200;
5
- export declare function formatArtifactType(mimeType: string): string;
6
- export declare function clampArtifactColumnWidth(requestedWidth: number, containerWidth: number, overlay: boolean): number;
@@ -1,37 +0,0 @@
1
- export const ARTIFACT_COLUMN_DEFAULT_WIDTH = 720;
2
- export const ARTIFACT_CHAT_MIN_WIDTH = 400;
3
- export const ARTIFACT_COLUMN_MIN_WIDTH = 360;
4
- export const ARTIFACT_OVERLAY_BREAKPOINT = 1200;
5
- const MIME_LABELS = {
6
- html: 'HTML',
7
- markdown: 'Markdown',
8
- json: 'JSON',
9
- css: 'CSS',
10
- javascript: 'JavaScript',
11
- typescript: 'TypeScript',
12
- svg: 'SVG',
13
- xml: 'XML',
14
- text: 'Text',
15
- python: 'Python',
16
- java: 'Java',
17
- cpp: 'C++',
18
- csharp: 'C#',
19
- php: 'PHP',
20
- ruby: 'Ruby',
21
- go: 'Go',
22
- rust: 'Rust',
23
- yaml: 'YAML',
24
- sql: 'SQL',
25
- };
26
- export function formatArtifactType(mimeType) {
27
- return MIME_LABELS[mimeType.toLowerCase()] || mimeType;
28
- }
29
- export function clampArtifactColumnWidth(requestedWidth, containerWidth, overlay) {
30
- const reserved = overlay ? 0 : ARTIFACT_CHAT_MIN_WIDTH;
31
- const upperBound = Math.max(0, containerWidth - reserved);
32
- if (upperBound <= ARTIFACT_COLUMN_MIN_WIDTH) {
33
- return upperBound;
34
- }
35
- return Math.min(Math.max(requestedWidth, ARTIFACT_COLUMN_MIN_WIDTH), upperBound);
36
- }
37
- //# sourceMappingURL=artifactPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifactPanel.js","sourceRoot":"","sources":["../../src/helpers/artifactPanel.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAC7C,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEhD,MAAM,WAAW,GAA2B;IAC1C,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,IAAI;IACZ,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;CACX,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,QAAQ,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,cAAsB,EACtB,cAAsB,EACtB,OAAgB;IAEhB,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC,CAAC;IAE1D,IAAI,UAAU,IAAI,yBAAyB,EAAE,CAAC;QAC5C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CACb,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,yBAAyB,CAAC,EACnD,UAAU,CACX,CAAC;AACJ,CAAC"}
@@ -1,12 +0,0 @@
1
- export declare const CHAT_SCROLL_BOTTOM_THRESHOLD_PX = 80;
2
- type ScrollMetrics = {
3
- scrollTop: number;
4
- scrollHeight: number;
5
- clientHeight: number;
6
- };
7
- export declare function isChatScrolledToBottom(element: ScrollMetrics, thresholdPx?: number): boolean;
8
- export declare function scrollChatToBottom(element: {
9
- scrollTop: number;
10
- scrollHeight: number;
11
- }): void;
12
- export {};
@@ -1,9 +0,0 @@
1
- export const CHAT_SCROLL_BOTTOM_THRESHOLD_PX = 80;
2
- export function isChatScrolledToBottom(element, thresholdPx = CHAT_SCROLL_BOTTOM_THRESHOLD_PX) {
3
- return (element.scrollHeight - element.scrollTop - element.clientHeight <=
4
- thresholdPx);
5
- }
6
- export function scrollChatToBottom(element) {
7
- element.scrollTop = element.scrollHeight;
8
- }
9
- //# sourceMappingURL=chatScroll.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chatScroll.js","sourceRoot":"","sources":["../../src/helpers/chatScroll.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAQlD,MAAM,UAAU,sBAAsB,CACpC,OAAsB,EACtB,WAAW,GAAG,+BAA+B;IAE7C,OAAO,CACL,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY;QAC/D,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAGlC;IACC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;AAC3C,CAAC"}
@@ -1,16 +0,0 @@
1
- export type ConversationGroupKey = {
2
- type: 'thisWeek';
3
- } | {
4
- type: 'month';
5
- year: number;
6
- month: number;
7
- };
8
- export declare const getLastMessageDate: (lines: Array<{
9
- timestamp?: string;
10
- }>) => Date | null;
11
- export declare const formatConversationListDate: (value: string | Date, locale: string, now?: Date) => string;
12
- export declare const getConversationGroupKey: (date: Date, now?: Date) => ConversationGroupKey;
13
- export declare const groupConversations: <T>(items: T[], getDate: (item: T) => Date | null, now?: Date) => Array<{
14
- key: ConversationGroupKey;
15
- items: T[];
16
- }>;
@@ -1,82 +0,0 @@
1
- import { parseTimestamp } from './relativeTime';
2
- const DAY = 24 * 60 * 60 * 1000;
3
- const startOfDay = (date) => {
4
- const next = new Date(date);
5
- next.setHours(0, 0, 0, 0);
6
- return next;
7
- };
8
- const startOfWeek = (date) => {
9
- const next = startOfDay(date);
10
- const weekday = next.getDay();
11
- const mondayOffset = (weekday + 6) % 7;
12
- next.setDate(next.getDate() - mondayOffset);
13
- return next;
14
- };
15
- const capitalize = (value) => value ? `${value.charAt(0).toUpperCase()}${value.slice(1)}` : value;
16
- export const getLastMessageDate = (lines) => {
17
- let latest = null;
18
- for (const line of lines) {
19
- const date = parseTimestamp(line.timestamp);
20
- if (!date)
21
- continue;
22
- if (!latest || date.getTime() > latest.getTime())
23
- latest = date;
24
- }
25
- return latest;
26
- };
27
- export const formatConversationListDate = (value, locale, now = new Date()) => {
28
- const date = parseTimestamp(value);
29
- if (!date)
30
- return '';
31
- const time = new Intl.DateTimeFormat(locale, {
32
- hour: '2-digit',
33
- minute: '2-digit',
34
- }).format(date);
35
- const dayDiff = Math.round((startOfDay(date).getTime() - startOfDay(now).getTime()) / DAY);
36
- if (dayDiff === 0 || dayDiff === -1) {
37
- const dayLabel = new Intl.RelativeTimeFormat(locale, {
38
- numeric: 'auto',
39
- }).format(dayDiff, 'day');
40
- return `${capitalize(dayLabel)}, ${time}`;
41
- }
42
- const datePart = new Intl.DateTimeFormat(locale, {
43
- day: 'numeric',
44
- month: 'short',
45
- ...(date.getFullYear() === now.getFullYear() ? {} : { year: 'numeric' }),
46
- }).format(date);
47
- return `${datePart}, ${time}`;
48
- };
49
- export const getConversationGroupKey = (date, now = new Date()) => {
50
- if (date.getTime() >= startOfWeek(now).getTime()) {
51
- return { type: 'thisWeek' };
52
- }
53
- return {
54
- type: 'month',
55
- year: date.getFullYear(),
56
- month: date.getMonth(),
57
- };
58
- };
59
- export const groupConversations = (items, getDate, now = new Date()) => {
60
- const groups = [];
61
- for (const item of items) {
62
- const date = getDate(item);
63
- if (!date)
64
- continue;
65
- const key = getConversationGroupKey(date, now);
66
- const last = groups[groups.length - 1];
67
- const sameGroup = last &&
68
- ((key.type === 'thisWeek' && last.key.type === 'thisWeek') ||
69
- (key.type === 'month' &&
70
- last.key.type === 'month' &&
71
- key.year === last.key.year &&
72
- key.month === last.key.month));
73
- if (sameGroup) {
74
- last.items.push(item);
75
- }
76
- else {
77
- groups.push({ key, items: [item] });
78
- }
79
- }
80
- return groups;
81
- };
82
- //# sourceMappingURL=conversationHistory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversationHistory.js","sourceRoot":"","sources":["../../src/helpers/conversationHistory.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export type ConversationTitleLine = {
2
- inbound?: boolean;
3
- text?: string;
4
- };
5
- export declare const getConversationTitle: ({ title, lines, }: {
6
- title?: string | null;
7
- lines: ConversationTitleLine[];
8
- }) => string;
@@ -1,23 +0,0 @@
1
- import { stripHTML } from './utils';
2
- import { stripAllInternalTags } from './message';
3
- const TITLE_MAX_LENGTH = 140;
4
- const toSingleLine = (value) => value.replace(/\s+/g, ' ').trim();
5
- const truncateTitle = (value, maxLength = TITLE_MAX_LENGTH) => {
6
- if (value.length <= maxLength)
7
- return value;
8
- const sliced = value.slice(0, maxLength).trimEnd();
9
- const lastSpace = sliced.lastIndexOf(' ');
10
- const cut = lastSpace > maxLength * 0.7 ? sliced.slice(0, lastSpace) : sliced;
11
- return `${cut}...`;
12
- };
13
- const cleanText = (value) => toSingleLine(stripHTML(stripAllInternalTags(value)));
14
- export const getConversationTitle = ({ title, lines, }) => {
15
- const backendTitle = title ? cleanText(title) : '';
16
- if (backendTitle)
17
- return backendTitle;
18
- const firstUserMessage = lines.find(line => line.inbound && cleanText(line.text || ''));
19
- if (!(firstUserMessage === null || firstUserMessage === void 0 ? void 0 : firstUserMessage.text))
20
- return '';
21
- return truncateTitle(cleanText(firstUserMessage.text));
22
- };
23
- //# sourceMappingURL=conversationTitle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversationTitle.js","sourceRoot":"","sources":["../../src/helpers/conversationTitle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAO7B,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE,CAC7C,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAEpC,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,SAAS,GAAG,gBAAgB,EAAU,EAAE;IAC5E,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9E,OAAO,GAAG,GAAG,KAAK,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE,CAC1C,YAAY,CAAC,SAAS,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAOvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,KAAK,EACL,KAAK,GAIN,EAAU,EAAE;IACX,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IAEtC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CACjC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CACnD,CAAC;IACF,IAAI,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAA;QAAE,OAAO,EAAE,CAAC;IAEvC,OAAO,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- export type BubbleCodeBlockLabels = {
2
- copy: string;
3
- copied: string;
4
- };
5
- export declare function enhanceBubbleCodeBlocks(root: HTMLElement, labels: BubbleCodeBlockLabels): () => void;
@@ -1,94 +0,0 @@
1
- import { highlightUnder, loadPrism } from './prism';
2
- const COPY_ICON = `<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></svg>`;
3
- const CHECK_ICON = `<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg>`;
4
- function languageFromCode(code) {
5
- if (!code)
6
- return '';
7
- const match = Array.from(code.classList)
8
- .map(c => { var _a; return (_a = c.match(/^language-([\w+-]+)/)) === null || _a === void 0 ? void 0 : _a[1]; })
9
- .find(Boolean);
10
- return match && match !== 'plaintext' && match !== 'text' ? match : '';
11
- }
12
- export function enhanceBubbleCodeBlocks(root, labels) {
13
- const cleanups = [];
14
- const timers = [];
15
- root.querySelectorAll('pre').forEach(pre => {
16
- if (pre.closest('.memori-chat--code-block'))
17
- return;
18
- const code = pre.querySelector('code');
19
- const lang = languageFromCode(code);
20
- const wrapper = document.createElement('div');
21
- wrapper.className = 'memori-chat--code-block';
22
- const toolbar = document.createElement('div');
23
- toolbar.className = 'memori-chat--code-block-toolbar';
24
- if (lang) {
25
- const langEl = document.createElement('span');
26
- langEl.className = 'memori-chat--code-block-lang';
27
- langEl.textContent = lang;
28
- toolbar.appendChild(langEl);
29
- }
30
- else {
31
- const spacer = document.createElement('span');
32
- spacer.className = 'memori-chat--code-block-lang memori-chat--code-block-lang--empty';
33
- toolbar.appendChild(spacer);
34
- }
35
- const copyBtn = document.createElement('button');
36
- copyBtn.type = 'button';
37
- copyBtn.className = 'memori-chat--code-block-copy';
38
- copyBtn.setAttribute('aria-label', labels.copy);
39
- copyBtn.title = labels.copy;
40
- copyBtn.innerHTML = COPY_ICON;
41
- let resetTimer;
42
- const onCopy = async (event) => {
43
- var _a, _b, _c;
44
- event.preventDefault();
45
- event.stopPropagation();
46
- const text = (_b = (_a = code === null || code === void 0 ? void 0 : code.textContent) !== null && _a !== void 0 ? _a : pre.textContent) !== null && _b !== void 0 ? _b : '';
47
- try {
48
- if ((_c = navigator.clipboard) === null || _c === void 0 ? void 0 : _c.writeText) {
49
- await navigator.clipboard.writeText(text);
50
- }
51
- else {
52
- return;
53
- }
54
- copyBtn.classList.add('memori-chat--code-block-copy--copied');
55
- copyBtn.setAttribute('aria-label', labels.copied);
56
- copyBtn.title = labels.copied;
57
- copyBtn.innerHTML = CHECK_ICON;
58
- if (resetTimer)
59
- window.clearTimeout(resetTimer);
60
- resetTimer = window.setTimeout(() => {
61
- copyBtn.classList.remove('memori-chat--code-block-copy--copied');
62
- copyBtn.setAttribute('aria-label', labels.copy);
63
- copyBtn.title = labels.copy;
64
- copyBtn.innerHTML = COPY_ICON;
65
- }, 2000);
66
- timers.push(resetTimer);
67
- }
68
- catch (err) {
69
- console.error('Failed to copy code block:', err);
70
- }
71
- };
72
- copyBtn.addEventListener('click', onCopy);
73
- cleanups.push(() => {
74
- copyBtn.removeEventListener('click', onCopy);
75
- if (resetTimer)
76
- window.clearTimeout(resetTimer);
77
- });
78
- toolbar.appendChild(copyBtn);
79
- const parent = pre.parentNode;
80
- if (!parent)
81
- return;
82
- parent.insertBefore(wrapper, pre);
83
- wrapper.appendChild(toolbar);
84
- wrapper.appendChild(pre);
85
- });
86
- void loadPrism().then(() => {
87
- highlightUnder(root);
88
- });
89
- return () => {
90
- cleanups.forEach(fn => fn());
91
- timers.forEach(id => window.clearTimeout(id));
92
- };
93
- }
94
- //# sourceMappingURL=enhanceBubbleCodeBlocks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"enhanceBubbleCodeBlocks.js","sourceRoot":"","sources":["../../src/helpers/enhanceBubbleCodeBlocks.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import React from 'react';
2
- export declare const highlightMatches: (text: string, query: string) => React.ReactNode;
@@ -1,49 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import React from 'react';
3
- const escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
4
- const STOPWORDS = new Set([
5
- 'the',
6
- 'and',
7
- 'for',
8
- 'are',
9
- 'but',
10
- 'not',
11
- 'you',
12
- 'that',
13
- 'this',
14
- 'with',
15
- 'from',
16
- 'was',
17
- 'have',
18
- 'has',
19
- 'had',
20
- 'per',
21
- 'del',
22
- 'della',
23
- 'delle',
24
- 'che',
25
- 'non',
26
- 'una',
27
- 'uno',
28
- 'con',
29
- 'come',
30
- 'quali',
31
- 'quale',
32
- 'questa',
33
- 'questo',
34
- ]);
35
- const tokenize = (query) => query
36
- .split(/\s+/)
37
- .map(token => token.replace(/[^\p{L}\p{N}]+/gu, ''))
38
- .filter(token => token.length >= 3 && !STOPWORDS.has(token.toLowerCase()));
39
- export const highlightMatches = (text, query) => {
40
- const terms = Array.from(new Set(tokenize(query)));
41
- if (!text || terms.length === 0)
42
- return text;
43
- const pattern = new RegExp(`(${terms.map(escapeRegExp).join('|')})`, 'gi');
44
- const parts = text.split(pattern);
45
- if (parts.length === 1)
46
- return text;
47
- return parts.map((part, index) => terms.some(term => part.toLowerCase() === term.toLowerCase()) ? (_jsx("mark", { className: "memori-whythisanswer-mark", children: part }, `${part}-${index}`)) : (_jsx(React.Fragment, { children: part }, `${part}-${index}`)));
48
- };
49
- //# sourceMappingURL=highlightMatches.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"highlightMatches.js","sourceRoot":"","sources":["../../src/helpers/highlightMatches.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,YAAY,GAAG,CAAC,KAAa,EAAE,EAAE,CACrC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACxB,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAY,EAAE,CAC3C,KAAK;KACF,KAAK,CAAC,KAAK,CAAC;KACZ,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;KACnD,MAAM,CACL,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAClE,CAAC;AAEN,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,KAAa,EACI,EAAE;IACnB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7C,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAC9D,eAA+B,SAAS,EAAC,2BAA2B,YACjE,IAAI,IADI,GAAG,IAAI,IAAI,KAAK,EAAE,CAEtB,CACR,CAAC,CAAC,CAAC,CACF,KAAC,KAAK,CAAC,QAAQ,cAA2B,IAAI,IAAzB,GAAG,IAAI,IAAI,KAAK,EAAE,CAAyB,CACjE,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare function shouldHoldAutoStartForPosition(needsPosition: boolean, hasPosition: boolean): boolean;
2
- export declare function isHeaderPositionPopoverAvailable(isMobile: boolean, layoutStripsNeedsPositionOnMobile: boolean): boolean;
3
- export declare function shouldRestartSessionOnPositionPopoverClose(wasOpen: boolean, nextOpen: boolean, autoStart: boolean, sessionAlreadyStarted?: boolean, hasPosition?: boolean): boolean;
@@ -1,17 +0,0 @@
1
- export function shouldHoldAutoStartForPosition(needsPosition, hasPosition) {
2
- return !!needsPosition && !hasPosition;
3
- }
4
- export function isHeaderPositionPopoverAvailable(isMobile, layoutStripsNeedsPositionOnMobile) {
5
- if (isMobile && layoutStripsNeedsPositionOnMobile) {
6
- return false;
7
- }
8
- return true;
9
- }
10
- export function shouldRestartSessionOnPositionPopoverClose(wasOpen, nextOpen, autoStart, sessionAlreadyStarted = false, hasPosition = true) {
11
- return (wasOpen &&
12
- !nextOpen &&
13
- !!autoStart &&
14
- !sessionAlreadyStarted &&
15
- hasPosition);
16
- }
17
- //# sourceMappingURL=positionPopover.js.map