@memori.ai/memori-react 8.45.4 → 8.45.6

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 (264) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/Chat/Chat.d.ts +1 -0
  3. package/dist/components/Chat/Chat.js +2 -2
  4. package/dist/components/Chat/Chat.js.map +1 -1
  5. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +78 -0
  6. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +3 -3
  7. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +5 -28
  8. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  9. package/dist/components/ChatInputs/ChatInputs.d.ts +1 -0
  10. package/dist/components/ChatInputs/ChatInputs.js +2 -2
  11. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  12. package/dist/components/ContentPreviewModal/DocumentMarkdown.d.ts +7 -0
  13. package/dist/components/ContentPreviewModal/DocumentMarkdown.js +31 -0
  14. package/dist/components/ContentPreviewModal/DocumentMarkdown.js.map +1 -0
  15. package/dist/components/DrawerFooter/DrawerFooter.css +62 -0
  16. package/dist/components/IconButton/IconButton.css +135 -0
  17. package/dist/components/IconButton/IconButton.d.ts +1 -1
  18. package/dist/components/LoginModal/LoginModal.css +270 -0
  19. package/dist/components/LoginModal/LoginModal.d.ts +19 -0
  20. package/dist/components/LoginModal/LoginModal.js +355 -0
  21. package/dist/components/LoginModal/LoginModal.js.map +1 -0
  22. package/dist/components/MemoriWidget/MemoriWidget.d.ts +1 -1
  23. package/dist/components/MemoriWidget/MemoriWidget.js +45 -23
  24. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  25. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +540 -0
  26. package/dist/components/MobileSessionPanel/MobileSessionPanel.js +72 -112
  27. package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
  28. package/dist/components/PositionPopover/PositionPopover.css +218 -0
  29. package/dist/components/ReasoningBlock/ReasoningBlock.css +156 -0
  30. package/dist/components/ReasoningBlock/ReasoningBlock.d.ts +7 -0
  31. package/dist/components/ReasoningBlock/ReasoningBlock.js +61 -0
  32. package/dist/components/ReasoningBlock/ReasoningBlock.js.map +1 -0
  33. package/dist/components/SideDrawer/SideDrawer.css +112 -0
  34. package/dist/components/SideDrawer/SideDrawer.d.ts +22 -0
  35. package/dist/components/SideDrawer/SideDrawer.js +17 -0
  36. package/dist/components/SideDrawer/SideDrawer.js.map +1 -0
  37. package/dist/components/UploadButton/UploadButton.d.ts +2 -0
  38. package/dist/components/UploadButton/UploadButton.js +2 -2
  39. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  40. package/dist/components/UploadButton/UploadImages/UploadImages.d.ts +2 -0
  41. package/dist/components/UploadButton/UploadImages/UploadImages.js +7 -1
  42. package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  43. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +87 -7
  44. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  45. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +889 -0
  46. package/dist/components/layouts/fullpage.css +628 -0
  47. package/dist/helpers/artifactPanel.d.ts +6 -0
  48. package/dist/helpers/artifactPanel.js +42 -0
  49. package/dist/helpers/artifactPanel.js.map +1 -0
  50. package/dist/helpers/chatScroll.d.ts +12 -0
  51. package/dist/helpers/chatScroll.js +14 -0
  52. package/dist/helpers/chatScroll.js.map +1 -0
  53. package/dist/helpers/conversationHistory.d.ts +16 -0
  54. package/dist/helpers/conversationHistory.js +89 -0
  55. package/dist/helpers/conversationHistory.js.map +1 -0
  56. package/dist/helpers/conversationTitle.d.ts +8 -0
  57. package/dist/helpers/conversationTitle.js +27 -0
  58. package/dist/helpers/conversationTitle.js.map +1 -0
  59. package/dist/helpers/enhanceBubbleCodeBlocks.d.ts +5 -0
  60. package/dist/helpers/enhanceBubbleCodeBlocks.js +97 -0
  61. package/dist/helpers/enhanceBubbleCodeBlocks.js.map +1 -0
  62. package/dist/helpers/highlightMatches.d.ts +2 -0
  63. package/dist/helpers/highlightMatches.js +54 -0
  64. package/dist/helpers/highlightMatches.js.map +1 -0
  65. package/dist/helpers/nats/dialogStateCatchUp.d.ts +3 -0
  66. package/dist/helpers/nats/dialogStateCatchUp.js +40 -0
  67. package/dist/helpers/nats/dialogStateCatchUp.js.map +1 -0
  68. package/dist/helpers/positionPopover.d.ts +1 -0
  69. package/dist/helpers/positionPopover.js +9 -3
  70. package/dist/helpers/positionPopover.js.map +1 -1
  71. package/dist/helpers/prism.d.ts +16 -0
  72. package/dist/helpers/prism.js +78 -0
  73. package/dist/helpers/prism.js.map +1 -0
  74. package/dist/helpers/reasoning.d.ts +7 -0
  75. package/dist/helpers/reasoning.js +43 -0
  76. package/dist/helpers/reasoning.js.map +1 -0
  77. package/dist/helpers/relativeTime.d.ts +3 -0
  78. package/dist/helpers/relativeTime.js +56 -0
  79. package/dist/helpers/relativeTime.js.map +1 -0
  80. package/dist/helpers/sourcesCount.d.ts +2 -0
  81. package/dist/helpers/sourcesCount.js +22 -0
  82. package/dist/helpers/sourcesCount.js.map +1 -0
  83. package/dist/helpers/speech/speechRequest.d.ts +15 -0
  84. package/dist/helpers/speech/speechRequest.js +76 -0
  85. package/dist/helpers/speech/speechRequest.js.map +1 -0
  86. package/dist/helpers/stt/useSTT.d.ts +4 -0
  87. package/dist/helpers/stt/useSTT.js +20 -13
  88. package/dist/helpers/stt/useSTT.js.map +1 -1
  89. package/dist/helpers/tts/muteSpeaker.js +3 -4
  90. package/dist/helpers/tts/muteSpeaker.js.map +1 -1
  91. package/dist/helpers/tts/useTTS.d.ts +5 -0
  92. package/dist/helpers/tts/useTTS.js +12 -4
  93. package/dist/helpers/tts/useTTS.js.map +1 -1
  94. package/dist/helpers/usePressTooltip.d.ts +6 -1
  95. package/dist/helpers/usePressTooltip.js +17 -3
  96. package/dist/helpers/usePressTooltip.js.map +1 -1
  97. package/dist/locales/de.json +4 -0
  98. package/dist/locales/en.json +4 -0
  99. package/dist/locales/es.json +4 -0
  100. package/dist/locales/fr.json +4 -0
  101. package/dist/locales/it.json +4 -0
  102. package/dist/styles/motion.css +25 -0
  103. package/dist/version.d.ts +1 -1
  104. package/dist/version.js +1 -1
  105. package/esm/components/Chat/Chat.d.ts +1 -0
  106. package/esm/components/Chat/Chat.js +2 -2
  107. package/esm/components/Chat/Chat.js.map +1 -1
  108. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +78 -0
  109. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +39 -0
  110. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +40 -0
  111. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -0
  112. package/esm/components/ChatInputs/ChatInputs.d.ts +1 -0
  113. package/esm/components/ChatInputs/ChatInputs.js +2 -2
  114. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  115. package/esm/components/ContentPreviewModal/DocumentMarkdown.d.ts +7 -0
  116. package/esm/components/ContentPreviewModal/DocumentMarkdown.js +28 -0
  117. package/esm/components/ContentPreviewModal/DocumentMarkdown.js.map +1 -0
  118. package/esm/components/DrawerFooter/DrawerFooter.css +62 -0
  119. package/esm/components/DrawerFooter/DrawerFooter.d.ts +12 -0
  120. package/esm/components/DrawerFooter/DrawerFooter.js +8 -0
  121. package/esm/components/DrawerFooter/DrawerFooter.js.map +1 -0
  122. package/esm/components/IconButton/IconButton.css +135 -0
  123. package/esm/components/IconButton/IconButton.d.ts +9 -0
  124. package/esm/components/IconButton/IconButton.js +33 -0
  125. package/esm/components/IconButton/IconButton.js.map +1 -0
  126. package/esm/components/LoginModal/LoginModal.css +270 -0
  127. package/esm/components/LoginModal/LoginModal.d.ts +19 -0
  128. package/esm/components/LoginModal/LoginModal.js +352 -0
  129. package/esm/components/LoginModal/LoginModal.js.map +1 -0
  130. package/esm/components/MemoriWidget/MemoriWidget.d.ts +1 -1
  131. package/esm/components/MemoriWidget/MemoriWidget.js +40 -19
  132. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  133. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +540 -0
  134. package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +65 -0
  135. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +251 -0
  136. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -0
  137. package/esm/components/PositionPopover/PositionPopover.css +218 -0
  138. package/esm/components/PositionPopover/PositionPopover.d.ts +22 -0
  139. package/esm/components/PositionPopover/PositionPopover.js +203 -0
  140. package/esm/components/PositionPopover/PositionPopover.js.map +1 -0
  141. package/esm/components/ReasoningBlock/ReasoningBlock.css +156 -0
  142. package/esm/components/ReasoningBlock/ReasoningBlock.d.ts +7 -0
  143. package/esm/components/ReasoningBlock/ReasoningBlock.js +58 -0
  144. package/esm/components/ReasoningBlock/ReasoningBlock.js.map +1 -0
  145. package/esm/components/SideDrawer/SideDrawer.css +112 -0
  146. package/esm/components/SideDrawer/SideDrawer.d.ts +22 -0
  147. package/esm/components/SideDrawer/SideDrawer.js +12 -0
  148. package/esm/components/SideDrawer/SideDrawer.js.map +1 -0
  149. package/esm/components/UploadButton/UploadButton.d.ts +2 -0
  150. package/esm/components/UploadButton/UploadButton.js +2 -2
  151. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  152. package/esm/components/UploadButton/UploadImages/UploadImages.d.ts +2 -0
  153. package/esm/components/UploadButton/UploadImages/UploadImages.js +7 -1
  154. package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  155. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +4 -0
  156. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +141 -0
  157. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -0
  158. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +889 -0
  159. package/esm/components/layouts/fullpage.css +628 -0
  160. package/esm/helpers/artifactPanel.d.ts +6 -0
  161. package/esm/helpers/artifactPanel.js +37 -0
  162. package/esm/helpers/artifactPanel.js.map +1 -0
  163. package/esm/helpers/chatScroll.d.ts +12 -0
  164. package/esm/helpers/chatScroll.js +9 -0
  165. package/esm/helpers/chatScroll.js.map +1 -0
  166. package/esm/helpers/conversationHistory.d.ts +16 -0
  167. package/esm/helpers/conversationHistory.js +82 -0
  168. package/esm/helpers/conversationHistory.js.map +1 -0
  169. package/esm/helpers/conversationTitle.d.ts +8 -0
  170. package/esm/helpers/conversationTitle.js +23 -0
  171. package/esm/helpers/conversationTitle.js.map +1 -0
  172. package/esm/helpers/enhanceBubbleCodeBlocks.d.ts +5 -0
  173. package/esm/helpers/enhanceBubbleCodeBlocks.js +94 -0
  174. package/esm/helpers/enhanceBubbleCodeBlocks.js.map +1 -0
  175. package/esm/helpers/highlightMatches.d.ts +2 -0
  176. package/esm/helpers/highlightMatches.js +49 -0
  177. package/esm/helpers/highlightMatches.js.map +1 -0
  178. package/esm/helpers/nats/dialogStateCatchUp.d.ts +3 -0
  179. package/esm/helpers/nats/dialogStateCatchUp.js +35 -0
  180. package/esm/helpers/nats/dialogStateCatchUp.js.map +1 -0
  181. package/esm/helpers/positionPopover.d.ts +3 -0
  182. package/esm/helpers/positionPopover.js +17 -0
  183. package/esm/helpers/positionPopover.js.map +1 -0
  184. package/esm/helpers/prism.d.ts +16 -0
  185. package/esm/helpers/prism.js +74 -0
  186. package/esm/helpers/prism.js.map +1 -0
  187. package/esm/helpers/reasoning.d.ts +7 -0
  188. package/esm/helpers/reasoning.js +39 -0
  189. package/esm/helpers/reasoning.js.map +1 -0
  190. package/esm/helpers/relativeTime.d.ts +3 -0
  191. package/esm/helpers/relativeTime.js +50 -0
  192. package/esm/helpers/relativeTime.js.map +1 -0
  193. package/esm/helpers/sourcesCount.d.ts +2 -0
  194. package/esm/helpers/sourcesCount.js +18 -0
  195. package/esm/helpers/sourcesCount.js.map +1 -0
  196. package/esm/helpers/speech/speechRequest.d.ts +15 -0
  197. package/esm/helpers/speech/speechRequest.js +68 -0
  198. package/esm/helpers/speech/speechRequest.js.map +1 -0
  199. package/esm/helpers/stt/useSTT.d.ts +4 -0
  200. package/esm/helpers/stt/useSTT.js +20 -13
  201. package/esm/helpers/stt/useSTT.js.map +1 -1
  202. package/esm/helpers/tts/muteSpeaker.d.ts +13 -0
  203. package/esm/helpers/tts/muteSpeaker.js +21 -0
  204. package/esm/helpers/tts/muteSpeaker.js.map +1 -0
  205. package/esm/helpers/tts/useTTS.d.ts +5 -0
  206. package/esm/helpers/tts/useTTS.js +12 -4
  207. package/esm/helpers/tts/useTTS.js.map +1 -1
  208. package/esm/helpers/usePressTooltip.d.ts +18 -0
  209. package/esm/helpers/usePressTooltip.js +35 -0
  210. package/esm/helpers/usePressTooltip.js.map +1 -0
  211. package/esm/icons/FacebookIcon.d.ts +3 -0
  212. package/esm/icons/FacebookIcon.js +4 -0
  213. package/esm/icons/FacebookIcon.js.map +1 -0
  214. package/esm/icons/LinkedinIcon.d.ts +3 -0
  215. package/esm/icons/LinkedinIcon.js +4 -0
  216. package/esm/icons/LinkedinIcon.js.map +1 -0
  217. package/esm/icons/MemoriIcon.d.ts +3 -0
  218. package/esm/icons/MemoriIcon.js +6 -0
  219. package/esm/icons/MemoriIcon.js.map +1 -0
  220. package/esm/icons/TelegramIcon.d.ts +3 -0
  221. package/esm/icons/TelegramIcon.js +4 -0
  222. package/esm/icons/TelegramIcon.js.map +1 -0
  223. package/esm/icons/TwitterIcon.d.ts +3 -0
  224. package/esm/icons/TwitterIcon.js +4 -0
  225. package/esm/icons/TwitterIcon.js.map +1 -0
  226. package/esm/icons/WhatsappIcon.d.ts +3 -0
  227. package/esm/icons/WhatsappIcon.js +4 -0
  228. package/esm/icons/WhatsappIcon.js.map +1 -0
  229. package/esm/icons/artifacts/DocumentIcon.d.ts +3 -0
  230. package/esm/icons/artifacts/DocumentIcon.js +4 -0
  231. package/esm/icons/artifacts/DocumentIcon.js.map +1 -0
  232. package/esm/icons/artifacts/HtmlIcon.d.ts +3 -0
  233. package/esm/icons/artifacts/HtmlIcon.js +4 -0
  234. package/esm/icons/artifacts/HtmlIcon.js.map +1 -0
  235. package/esm/icons/artifacts/JavascriptIcon.d.ts +3 -0
  236. package/esm/icons/artifacts/JavascriptIcon.js +4 -0
  237. package/esm/icons/artifacts/JavascriptIcon.js.map +1 -0
  238. package/esm/icons/artifacts/MarkdownIcon.d.ts +3 -0
  239. package/esm/icons/artifacts/MarkdownIcon.js +4 -0
  240. package/esm/icons/artifacts/MarkdownIcon.js.map +1 -0
  241. package/esm/icons/artifacts/PythonIcon.d.ts +3 -0
  242. package/esm/icons/artifacts/PythonIcon.js +4 -0
  243. package/esm/icons/artifacts/PythonIcon.js.map +1 -0
  244. package/esm/icons/artifacts/SvgIcon.d.ts +3 -0
  245. package/esm/icons/artifacts/SvgIcon.js +4 -0
  246. package/esm/icons/artifacts/SvgIcon.js.map +1 -0
  247. package/esm/icons/artifacts/XmlIcon.d.ts +3 -0
  248. package/esm/icons/artifacts/XmlIcon.js +4 -0
  249. package/esm/icons/artifacts/XmlIcon.js.map +1 -0
  250. package/esm/icons/artifacts/cssIcon.d.ts +3 -0
  251. package/esm/icons/artifacts/cssIcon.js +4 -0
  252. package/esm/icons/artifacts/cssIcon.js.map +1 -0
  253. package/esm/locales/de.json +4 -0
  254. package/esm/locales/en.json +4 -0
  255. package/esm/locales/es.json +4 -0
  256. package/esm/locales/fr.json +4 -0
  257. package/esm/locales/it.json +4 -0
  258. package/esm/styles/motion.css +25 -0
  259. package/esm/version.d.ts +1 -1
  260. package/esm/version.js +1 -1
  261. package/package.json +2 -1
  262. package/dist/context/widgetSurfaceContext.d.ts +0 -3
  263. package/dist/context/widgetSurfaceContext.js +0 -11
  264. package/dist/context/widgetSurfaceContext.js.map +0 -1
@@ -0,0 +1,889 @@
1
+ /* ============================================
2
+ MOBILE-FIRST WEBSITE ASSISTANT LAYOUT
3
+ Enhanced UI/UX with modern design patterns
4
+ ============================================ */
5
+
6
+ /* ============================================
7
+ TRIGGER BUTTON (Mobile First)
8
+ ============================================ */
9
+
10
+ .memori-website_assistant--trigger {
11
+ position: fixed;
12
+ z-index: calc(var(--memori-z-index-base, 0) + 1800);
13
+ right: 0px;
14
+ bottom: 0px;
15
+ display: flex;
16
+ opacity: 1;
17
+ pointer-events: all;
18
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
19
+ visibility: visible;
20
+ }
21
+
22
+ .memori-website_assistant--trigger-button .memori-blob .mainDiv {
23
+ width: 64px !important;
24
+ height: 64px !important;
25
+ box-shadow: 0 0 0.5em 0.2em rgba(0, 0, 0, 0.15) inset, 0 0 0.15em 0 rgba(255, 255, 255, 0.9),
26
+ 0 2px 8px rgba(130, 70, 175, 0.2);
27
+ transition: all 0.3s ease;
28
+ }
29
+
30
+ .memori-website_assistant--trigger-button .memori-blob,
31
+ .memori-website_assistant--trigger-button .memori-blob .mainDiv,
32
+ .memori-website_assistant--trigger-button .memori-blob figure {
33
+ pointer-events: none;
34
+ touch-action: none;
35
+ }
36
+
37
+ .memori-website_assistant--trigger-button:hover .memori-blob .mainDiv {
38
+ box-shadow: 0 0 0.6em 0.25em rgba(0, 0, 0, 0.1) inset, 0 0 0.2em 0 rgba(255, 255, 255, 0.95),
39
+ 0 4px 16px rgba(130, 70, 175, 0.3);
40
+ }
41
+
42
+ .memori-website_assistant--trigger:hover {
43
+ transform: scale(1.05);
44
+ }
45
+
46
+ .memori-website_assistant--trigger:active {
47
+ transform: scale(0.95);
48
+ }
49
+
50
+ .memori-website_assistant--trigger-button {
51
+ position: relative;
52
+ width: 64px;
53
+ height: 64px;
54
+ padding: 0;
55
+ border: none !important;
56
+ border-radius: 50%;
57
+ -webkit-backdrop-filter: blur(10px);
58
+ backdrop-filter: blur(10px);
59
+ box-shadow: none !important;
60
+ cursor: pointer;
61
+ transform: translate(-12px, -12px);
62
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
63
+ }
64
+
65
+ .memori-website_assistant--trigger-button:active {
66
+ transform: translateY(0) scale(0.95);
67
+ }
68
+
69
+ .memori-website_assistant--trigger-button .memori-blob {
70
+ position: relative !important;
71
+ display: block;
72
+ width: 100%;
73
+ height: 100%;
74
+ margin: 0;
75
+ }
76
+
77
+ .memori-website_assistant--trigger-button .memori-blob figure {
78
+ width: 85%;
79
+ border-radius: 0;
80
+ opacity: 1;
81
+ transition: transform 0.3s ease;
82
+ }
83
+
84
+ /* Tablet and up */
85
+ @media (min-width: 601px) {
86
+ .memori-website_assistant--trigger-button {
87
+ width: 80px;
88
+ height: 80px;
89
+ }
90
+
91
+ .memori-website_assistant--trigger-button .memori-blob .mainDiv {
92
+ width: 80px !important;
93
+ height: 80px !important;
94
+ }
95
+ }
96
+
97
+ /* Desktop */
98
+ @media (min-width: 1024px) {
99
+ .memori-website_assistant--trigger-button {
100
+ width: 96px !important;
101
+ height: 96px !important;
102
+ }
103
+
104
+ .memori-website_assistant--trigger-button .memori-blob .mainDiv {
105
+ width: 96px !important;
106
+ height: 96px !important;
107
+ }
108
+ }
109
+
110
+ /* ============================================
111
+ CLOSE BUTTON
112
+ Matches HiddenChat header close (bordered icon control)
113
+ ============================================ */
114
+
115
+ .memori-website_assistant--close-button {
116
+ display: inline-flex;
117
+ width: 2.5rem;
118
+ min-width: 2.5rem;
119
+ height: 2.5rem;
120
+ min-height: 2.5rem;
121
+ align-items: center;
122
+ justify-content: center;
123
+ padding: 0;
124
+ border: var(--memori-border, 1px) solid color-mix(in srgb, var(--memori-text-color, #111827) 18%, transparent);
125
+ border-radius: var(--memori-radius-control);
126
+ margin: 0;
127
+ background: transparent;
128
+ color: var(--memori-text-color, #111827);
129
+ cursor: pointer;
130
+ line-height: 1;
131
+ transition: background-color 0.15s ease, border-color 0.15s ease;
132
+ }
133
+
134
+ .memori-website_assistant--close-button:hover {
135
+ background: color-mix(in srgb, var(--memori-text-color, #111827) 6%, transparent);
136
+ }
137
+
138
+ .memori-website_assistant--close-button .memori-icon-close {
139
+ width: 1.125rem;
140
+ height: 1.125rem;
141
+ fill: none;
142
+ stroke: currentColor;
143
+ }
144
+
145
+ /* ============================================
146
+ MAIN CONTAINER (Mobile First)
147
+ ============================================ */
148
+
149
+ .memori-widget.memori-layout-website_assistant {
150
+ position: relative;
151
+ font-size: var(--memori-text-size-sm);
152
+ }
153
+
154
+ /*
155
+ * Drawers portal into the widget surface (containment). UI 2.0 Drawer uses
156
+ * memori-drawer__backdrop on the panel root classes from @memori.ai/ui.
157
+ */
158
+ .memori-drawer.memori-drawer--above-website-assistant,
159
+ .memori-drawer.memori-drawer--above-website-assistant.memori-drawer,
160
+ .memori-drawer.memori-drawer--above-website-assistant .memori-drawer__backdrop {
161
+ z-index: calc(var(--memori-z-index-base, 0) + 1400);
162
+ }
163
+
164
+ /*
165
+ * Split-panel width for side drawers (history / known facts / experts)
166
+ * — keep in sync with ArtifactDrawer and panel shift (`right: 55%`).
167
+ * Login is a centered modal gate (not a drawer), so it is excluded.
168
+ */
169
+ .memori-widget.memori-layout-website_assistant .memori-drawer--right.memori-chat-history-drawer,
170
+ .memori-widget.memori-layout-website_assistant .memori-drawer--right.memori-known-facts-drawer,
171
+ .memori-widget.memori-layout-website_assistant .memori-drawer--right.memori--experts-drawer,
172
+ .memori-widget.memori-layout-website_assistant .memori-drawer--right.memori-side-drawer {
173
+ --memori-modal-size-sm: 55%;
174
+ --memori-modal-size-md: 55%;
175
+ --memori-modal-size-lg: 55%;
176
+ width: 55%;
177
+ max-width: 100vw;
178
+ }
179
+
180
+ .memori-widget.memori-layout-website_assistant .memori-modal.memori-modal--above-website-assistant {
181
+ z-index: calc(var(--memori-z-index-base, 0) + 1600);
182
+ }
183
+
184
+ @media (max-width: 1260px) {
185
+ .memori-widget.memori-layout-website_assistant .memori-drawer--right.memori-chat-history-drawer,
186
+ .memori-widget.memori-layout-website_assistant .memori-drawer--right.memori-known-facts-drawer,
187
+ .memori-widget.memori-layout-website_assistant .memori-drawer--right.memori--experts-drawer,
188
+ .memori-widget.memori-layout-website_assistant .memori-drawer--right.memori-side-drawer {
189
+ --memori-modal-size-sm: 100%;
190
+ --memori-modal-size-md: 100%;
191
+ --memori-modal-size-lg: 100%;
192
+ width: 100% !important;
193
+ max-width: 100% !important;
194
+ }
195
+ }
196
+
197
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed,
198
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
199
+ position: fixed;
200
+ right: 0;
201
+ bottom: 0;
202
+ overflow: hidden;
203
+ width: 100vw;
204
+ max-width: 100vw;
205
+ border-radius: var(--memori-radius-overlay) var(--memori-radius-overlay) 0 0;
206
+ -webkit-backdrop-filter: blur(20px);
207
+ backdrop-filter: blur(20px);
208
+ box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.12), 0 -2px 8px rgba(0, 0, 0, 0.08);
209
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
210
+ }
211
+
212
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed {
213
+ overflow: visible;
214
+ height: 0;
215
+ opacity: 0;
216
+ pointer-events: none;
217
+ }
218
+
219
+ /* Ensure trigger button is always visible even when container is collapsed */
220
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed .memori-website_assistant--trigger {
221
+ opacity: 1;
222
+ pointer-events: all;
223
+ visibility: visible;
224
+ }
225
+
226
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
227
+ height: min(85vh, calc(100vh - var(--memori-spacing-5xl)));
228
+ height: min(85dvh, calc(100dvh - var(--memori-spacing-5xl)));
229
+ max-height: 100dvh;
230
+ padding: 0.5rem 0rem;
231
+ margin-bottom: 0;
232
+ background: var(--memori-secondary-background);
233
+ opacity: 1;
234
+ pointer-events: all;
235
+ }
236
+
237
+ /*
238
+ * Fullscreen: same approach as HiddenChat — class + inline styles expand the
239
+ * docked panel to the full window; browser Fullscreen API is requested on the panel.
240
+ */
241
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded.memori-website_assistant--fullscreen,
242
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded:fullscreen,
243
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded:-webkit-full-screen {
244
+ top: 0 !important;
245
+ right: 0 !important;
246
+ bottom: 0 !important;
247
+ left: 0 !important;
248
+ width: 100% !important;
249
+ max-width: none !important;
250
+ height: 100% !important;
251
+ padding: 0.5rem 0;
252
+ border-radius: 0 !important;
253
+ margin-bottom: 0;
254
+ box-shadow: none;
255
+ }
256
+
257
+ /*
258
+ * Keep in sync with ArtifactDrawer / side-drawer split width (55%).
259
+ * `--drawer-open` covers login/history/known-facts/experts; `--artifact-open`
260
+ * kept for backward compatibility (both applied together from the layout).
261
+ */
262
+ .memori-widget.memori-layout-website_assistant
263
+ .memori-website_assistant--expanded.memori-website_assistant--drawer-open,
264
+ .memori-widget.memori-layout-website_assistant
265
+ .memori-website_assistant--expanded.memori-website_assistant--artifact-open {
266
+ right: 55%;
267
+ }
268
+
269
+ /* Fullscreen must win over the drawer/artifact split offset */
270
+ .memori-widget.memori-layout-website_assistant
271
+ .memori-website_assistant--expanded.memori-website_assistant--fullscreen.memori-website_assistant--drawer-open,
272
+ .memori-widget.memori-layout-website_assistant
273
+ .memori-website_assistant--expanded:fullscreen.memori-website_assistant--drawer-open,
274
+ .memori-widget.memori-layout-website_assistant
275
+ .memori-website_assistant--expanded:-webkit-full-screen.memori-website_assistant--drawer-open,
276
+ .memori-widget.memori-layout-website_assistant
277
+ .memori-website_assistant--expanded.memori-website_assistant--fullscreen.memori-website_assistant--artifact-open,
278
+ .memori-widget.memori-layout-website_assistant
279
+ .memori-website_assistant--expanded:fullscreen.memori-website_assistant--artifact-open,
280
+ .memori-widget.memori-layout-website_assistant
281
+ .memori-website_assistant--expanded:-webkit-full-screen.memori-website_assistant--artifact-open {
282
+ right: 0 !important;
283
+ }
284
+
285
+ /* Tablet */
286
+ @media (min-width: 601px) {
287
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed,
288
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
289
+ right: 0;
290
+ width: 90vw;
291
+ max-width: 480px;
292
+ border-radius: var(--memori-radius-overlay) 0 0 0;
293
+ }
294
+
295
+ .memori-widget.memori-layout-website_assistant
296
+ .memori-website_assistant--expanded.memori-website_assistant--drawer-open,
297
+ .memori-widget.memori-layout-website_assistant
298
+ .memori-website_assistant--expanded.memori-website_assistant--artifact-open {
299
+ right: 55%;
300
+ }
301
+
302
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
303
+ height: min(75vh, calc(100vh - var(--memori-spacing-5xl)));
304
+ height: min(75dvh, calc(100dvh - var(--memori-spacing-5xl)));
305
+ max-height: 100dvh;
306
+ }
307
+ }
308
+
309
+ /* Desktop */
310
+ @media (min-width: 1024px) {
311
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed,
312
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
313
+ width: 480px;
314
+ border-radius: var(--memori-radius-overlay) 0 0 0;
315
+ }
316
+
317
+ .memori-widget.memori-layout-website_assistant
318
+ .memori-website_assistant--expanded.memori-website_assistant--drawer-open,
319
+ .memori-widget.memori-layout-website_assistant
320
+ .memori-website_assistant--expanded.memori-website_assistant--artifact-open {
321
+ right: 55%;
322
+ }
323
+
324
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
325
+ height: 100vh;
326
+ height: 100dvh;
327
+ max-height: 100dvh;
328
+ border-radius: 0;
329
+ margin-bottom: 0;
330
+ }
331
+ }
332
+
333
+ /* ============================================
334
+ ANIMATIONS
335
+ ============================================ */
336
+
337
+ @keyframes showup {
338
+ 0% {
339
+ opacity: 0;
340
+ transform: translateY(20px) scale(0.95);
341
+ }
342
+ 100% {
343
+ opacity: 1;
344
+ transform: translateY(0) scale(1);
345
+ }
346
+ }
347
+
348
+ @keyframes slideUp {
349
+ from {
350
+ opacity: 0;
351
+ transform: translateY(100%);
352
+ }
353
+ to {
354
+ opacity: 1;
355
+ transform: translateY(0);
356
+ }
357
+ }
358
+
359
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded .memori-website_assistant-layout {
360
+ animation: showup 0.4s cubic-bezier(0.4, 0, 0.2, 1);
361
+ }
362
+
363
+ /* ============================================
364
+ LAYOUT STRUCTURE
365
+ ============================================ */
366
+
367
+ .memori-widget .memori-spin.memori-website_assistant-layout {
368
+ position: relative;
369
+ display: flex;
370
+ height: 100%;
371
+ flex-direction: column;
372
+ }
373
+
374
+ .memori-widget.memori-layout-website_assistant .memori--global-background {
375
+ background: none;
376
+ }
377
+
378
+ /* Powered-by is not shown in WEBSITE_ASSISTANT; AI disclaimer wraps under the input. */
379
+ .memori-website_assistant-layout .memori--powered-by,
380
+ .memori-widget.memori-layout-website_assistant .memori--powered-by {
381
+ display: none !important;
382
+ }
383
+
384
+ /* Never show chat history control in this layout */
385
+ .memori-widget.memori-layout-website_assistant .memori-header--chat-history-button {
386
+ display: none !important;
387
+ }
388
+
389
+ .memori-widget.memori-layout-website_assistant .memori-conversation-footer {
390
+ flex-wrap: wrap;
391
+ justify-content: center;
392
+ }
393
+
394
+ .memori-widget.memori-layout-website_assistant .memori-conversation-footer .memori-chat-inputs--ai-note {
395
+ overflow: visible;
396
+ flex: 1 1 100%;
397
+ text-align: center;
398
+ text-overflow: unset;
399
+ white-space: normal;
400
+ }
401
+
402
+ .memori-widget.memori--active.memori-layout-website_assistant .memori-conversation-footer .memori-chat-inputs--ai-note {
403
+ text-align: left;
404
+ }
405
+
406
+ /* ============================================
407
+ HEADER
408
+ ============================================ */
409
+
410
+ .memori-website_assistant-layout--header {
411
+ position: absolute;
412
+ z-index: 1000;
413
+ top: 0.75rem;
414
+ right: 0.75rem;
415
+ padding: 0.5rem;
416
+ border-radius: var(--memori-radius-surface);
417
+ background: var(--memori-secondary-background);
418
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
419
+ text-align: right;
420
+ }
421
+
422
+ .memori-website_assistant-layout--header-hidden {
423
+ display: none;
424
+ }
425
+
426
+ .memori-website_assistant-layout .memori-header {
427
+ z-index: 1000;
428
+ display: inline-flex;
429
+ overflow: visible;
430
+ width: auto;
431
+ height: auto;
432
+ flex-direction: row;
433
+ flex-shrink: 0;
434
+ flex-wrap: nowrap;
435
+ padding: 0;
436
+ gap: 0.35rem;
437
+ }
438
+
439
+ /* Less specific first (no-descending-specificity): single .memori-header--button */
440
+ .memori-website_assistant-layout .memori-header .memori-header--button,
441
+ .memori-website_assistant-layout .memori-header .memori-share-button {
442
+ margin-top: 0;
443
+ margin-right: 0;
444
+ margin-left: 0;
445
+ }
446
+
447
+ /* More specific: adjacent sibling (must come after general .memori-header--button rules) */
448
+ .memori-website_assistant-layout .memori-header .memori-header--button + .memori-header--button {
449
+ margin-top: 0;
450
+ margin-right: 0;
451
+ margin-left: 0;
452
+ }
453
+
454
+ .memori-website_assistant-layout--header-row {
455
+ position: relative;
456
+ z-index: 1001;
457
+ display: flex;
458
+ overflow: visible;
459
+ width: 100%;
460
+ min-width: 0;
461
+ flex-shrink: 0;
462
+ align-items: center;
463
+ justify-content: space-between;
464
+ padding: 0.75rem 1rem;
465
+ border-bottom: 1px solid var(--memori-border-color);
466
+ background: var(--memori-secondary-background);
467
+ gap: 0.75rem;
468
+ }
469
+
470
+ .memori-website_assistant-layout--header-actions {
471
+ display: inline-flex;
472
+ overflow: visible;
473
+ flex: 0 0 auto;
474
+ flex-shrink: 0;
475
+ align-items: center;
476
+ margin-left: auto;
477
+ gap: 0.35rem;
478
+ }
479
+
480
+ .memori-website_assistant-layout .memori-chat-layout--brand {
481
+ display: flex;
482
+ overflow: hidden;
483
+ min-width: 0;
484
+ flex: 1 1 auto;
485
+ align-items: center;
486
+ gap: 0.75rem;
487
+ }
488
+
489
+ .memori-website_assistant-layout .memori-chat-layout--brand-avatar {
490
+ width: 40px;
491
+ height: 40px;
492
+ flex-shrink: 0;
493
+ border: 1px solid rgba(0, 0, 0, 0.06);
494
+ border-radius: 50%;
495
+ object-fit: cover;
496
+ }
497
+
498
+ .memori-website_assistant-layout .memori-chat-layout--brand-text {
499
+ display: flex;
500
+ min-width: 0;
501
+ flex: 1 1 auto;
502
+ flex-direction: column;
503
+ align-items: flex-start;
504
+ gap: 0.125rem;
505
+ }
506
+
507
+ .memori-website_assistant-layout .memori-chat-layout--brand-name {
508
+ display: block;
509
+ overflow: hidden;
510
+ width: 100%;
511
+ min-width: 0;
512
+ max-width: 100%;
513
+ color: var(--memori-text-color, #111);
514
+ font-size: 1rem;
515
+ font-weight: 600;
516
+ line-height: 1.2;
517
+ text-overflow: ellipsis;
518
+ white-space: nowrap;
519
+ }
520
+
521
+ @media (max-width: 480px) {
522
+ .memori-website_assistant-layout .memori-chat-layout--brand {
523
+ min-width: 0;
524
+ max-width: none;
525
+ flex: 1 1 auto;
526
+ }
527
+ }
528
+
529
+ /* Position dropdown below the trigger so it does not cover the share button */
530
+ .memori-widget.memori-layout-website_assistant .memori-share-button .memori-share-button--overlay {
531
+ z-index: 1002;
532
+ top: 100%;
533
+ margin-top: 0.5rem;
534
+ }
535
+
536
+ .memori-widget.memori-layout-website_assistant .memori-header--button--fullscreen {
537
+ display: none;
538
+ }
539
+
540
+ /* ============================================
541
+ AVATAR SECTION
542
+ ============================================ */
543
+
544
+ .memori-website_assistant-layout--avatar {
545
+ position: relative;
546
+ overflow: hidden;
547
+ min-height: 0;
548
+ max-height: 35vh;
549
+ flex: 1;
550
+ /* Prevent avatar/blob from growing unbounded and overlapping header/controls */
551
+ contain: layout style;
552
+ }
553
+
554
+ .memori-website_assistant-layout--avatar .memori--avatar-wrapper {
555
+ position: absolute;
556
+ z-index: 0;
557
+ top: 0;
558
+ left: 0;
559
+ overflow: hidden;
560
+ width: 100%;
561
+ height: 100%;
562
+ }
563
+
564
+ .memori-website_assistant-layout--avatar .memori--blob-container {
565
+ display: block;
566
+ }
567
+
568
+ .memori-website_assistant-layout--avatar .memori-blob {
569
+ z-index: 2;
570
+ }
571
+
572
+ .memori-website_assistant-layout--avatar .memori--avatar-wrapper .avatar-loader {
573
+ display: flex;
574
+ width: 100%;
575
+ height: 100%;
576
+ align-items: center;
577
+ justify-content: center;
578
+ transform: none !important;
579
+ }
580
+
581
+ .memori-layout-website_assistant .memori--avatar-wrapper > div {
582
+ overflow: visible !important;
583
+ width: auto !important;
584
+ height: 100%;
585
+ border-radius: 0;
586
+ }
587
+
588
+ .memori-layout-website_assistant .memori--avatar-wrapper > div canvas + div {
589
+ position: absolute !important;
590
+ width: 100%;
591
+ height: 100%;
592
+ transform: none !important;
593
+ }
594
+
595
+ .memori-layout-website_assistant.memori--avatar-readyplayerme-full .memori--avatar-wrapper > div,
596
+ .memori-layout-website_assistant.memori--avatar-avatar-configurator .memori--avatar-wrapper > div {
597
+ transform: scale(1.7) translate(0px, 10vh);
598
+ }
599
+
600
+ .memori-website_assistant-layout--avatar .memori--avatar-wrapper canvas {
601
+ width: auto !important;
602
+ max-width: 100%;
603
+ height: 100%;
604
+ object-fit: contain;
605
+ }
606
+
607
+ .memori-website_assistant-layout--avatar .memori--avatar-wrapper .avatar-loader figure {
608
+ text-align: center;
609
+ }
610
+
611
+ .memori-layout-website_assistant.memori--avatar-readyplayerme
612
+ .memori-website_assistant--trigger-button
613
+ .memori-blob
614
+ figure {
615
+ width: 100%;
616
+ }
617
+
618
+ .memori-website_assistant-layout--avatar .memori--avatar-wrapper .avatar-loader .memori-spin--spinner {
619
+ background: none;
620
+ }
621
+
622
+ /* ============================================
623
+ CONTROLS SECTION
624
+ ============================================ */
625
+
626
+ .memori-website_assistant-layout--controls {
627
+ position: relative;
628
+ z-index: 5;
629
+ display: flex;
630
+ min-height: 0;
631
+ flex: 1;
632
+ flex-direction: column;
633
+ padding: 1rem;
634
+ padding-bottom: 0;
635
+ background-color: var(--memori-secondary-background);
636
+ }
637
+
638
+ .memori-website_assistant-layout--controls .memori-chat--history,
639
+ .memori-website_assistant-layout--controls .memori-chat--content {
640
+ background: var(--memori-secondary-background);
641
+ }
642
+
643
+ .memori-website_assistant-layout--controls .memori-chat--history {
644
+ padding: 0;
645
+ /* margin-top: var(--memori-spacing-3xl); */
646
+ -webkit-backdrop-filter: none;
647
+ backdrop-filter: none;
648
+ }
649
+
650
+ .memori-website_assistant-layout--controls .memori-chat--content {
651
+ padding: 0;
652
+ }
653
+
654
+ .memori-website_assistant-layout--controls .memori-chat--bubble-initial + .memori-chat--bubble-container {
655
+ margin-top: auto;
656
+ }
657
+
658
+ .memori-website_assistant-layout--controls .memori-chat--content .memori-chat--bubble-container:first-of-type {
659
+ margin-top: auto;
660
+ }
661
+
662
+ .memori-website_assistant-layout--controls .memori--start-panel,
663
+ .memori-website_assistant-layout--controls .memori-chat--wrapper {
664
+ width: 100%;
665
+ max-width: 100%;
666
+ padding: 0;
667
+ margin: auto;
668
+ }
669
+
670
+ .memori-website_assistant-layout--controls .memori--start-panel {
671
+ flex: 1;
672
+ align-content: center;
673
+ align-self: center;
674
+ padding: 1rem;
675
+ border: 0px;
676
+ border-radius: var(--memori-radius-surface);
677
+ margin: 0.75rem;
678
+ margin-bottom: var(--memori-spacing-2xl) !important;
679
+ box-shadow: none !important;
680
+ }
681
+
682
+ .memori-website_assistant-layout--controls .memori-chat--wrapper {
683
+ display: flex;
684
+ min-height: 0;
685
+ flex: 1;
686
+ flex-direction: column;
687
+ padding: 0.75rem;
688
+ padding-bottom: 0;
689
+ border: 0px !important;
690
+ background: var(--memori-secondary-background);
691
+ box-shadow: none !important;
692
+ }
693
+
694
+ .memori-website_assistant-layout--controls .memori-chat--content--has-global-background,
695
+ .memori-website_assistant-layout--controls .memori-chat--history:has(.memori-chat--content--has-global-background),
696
+ .memori-website_assistant-layout--controls .memori-chat--wrapper:has(.memori-chat--content--has-global-background) {
697
+ background: transparent;
698
+ }
699
+
700
+ /* Input bar styles (dark compact pill) live in ChatInputs.css.
701
+ Anchor the bar at the bottom of the assistant panel. */
702
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant-layout--controls .memori-chat--wrapper {
703
+ display: flex;
704
+ min-height: 0;
705
+ flex: 1;
706
+ flex-direction: column;
707
+ }
708
+
709
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant-layout--controls .memori-chat--history {
710
+ min-height: 0;
711
+ flex: 1 1 auto;
712
+ margin-bottom: 0;
713
+ }
714
+
715
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant-layout--controls .memori-chat-inputs-wrapper {
716
+ width: 100%;
717
+ flex-shrink: 0;
718
+ margin-bottom: 0;
719
+ }
720
+
721
+ /* Tablet and up */
722
+ @media (min-width: 601px) {
723
+ .memori-website_assistant-layout--controls .memori--start-panel,
724
+ .memori-website_assistant-layout--controls .memori-chat--wrapper {
725
+ max-width: 100%;
726
+ }
727
+
728
+ .memori-website_assistant-layout--controls .memori-chat--wrapper {
729
+ padding: 0;
730
+ }
731
+
732
+ .memori-website_assistant-layout--controls .memori--start-panel {
733
+ padding: 1.5rem;
734
+ margin: 0 auto;
735
+ }
736
+ }
737
+
738
+ /* Desktop */
739
+ @media (min-width: 1024px) {
740
+ .memori-website_assistant-layout--controls .memori--start-panel,
741
+ .memori-website_assistant-layout--controls .memori-chat--wrapper {
742
+ max-width: 800px;
743
+ }
744
+ }
745
+
746
+ /* ============================================
747
+ CHAT STYLING
748
+ ============================================ */
749
+
750
+ .memori-website_assistant-layout .memori-chat--cover {
751
+ display: none;
752
+ }
753
+
754
+ .memori-website_assistant-layout .memori--cover {
755
+ padding: 0;
756
+ background: none;
757
+ }
758
+
759
+ .memori-website_assistant-layout .memori-chat--bubble,
760
+ .memori-website_assistant-layout .memori-chat--bubble.memori-chat--user-bubble {
761
+ animation: showup 0.3s ease-out;
762
+ opacity: 1;
763
+ transition: all 0.2s ease-in-out;
764
+ }
765
+
766
+ .memori-website_assistant-layout .memori-chat--bubble:hover,
767
+ .memori-website_assistant-layout .memori-chat--bubble.memori-chat--user-bubble:hover {
768
+ opacity: 1;
769
+ transform: translateY(-1px);
770
+ }
771
+
772
+ .memori-website_assistant-layout .memori-chat--bubble p,
773
+ .memori-website_assistant-layout .memori-chat--bubble.memori-chat--user-bubble p {
774
+ opacity: 1;
775
+ }
776
+
777
+ /* ============================================
778
+ OTHER ELEMENTS
779
+ ============================================ */
780
+
781
+ .memori-website_assistant-layout .memori--avatar-toggle {
782
+ display: none;
783
+ width: 100%;
784
+ justify-content: center;
785
+ }
786
+
787
+ .memori-website_assistant-layout .memori--title,
788
+ .memori-website_assistant-layout .memori--description,
789
+ .memori-website_assistant-layout .memori--needsPosition {
790
+ color: var(--memori-text-color);
791
+ }
792
+
793
+ .memori-website_assistant-layout .memori--global-background-image {
794
+ background: none;
795
+ }
796
+
797
+ .memori-website_assistant-layout .memori--description-text,
798
+ .memori-website_assistant-layout .memori--translation-toggle {
799
+ display: none;
800
+ }
801
+
802
+ /* ============================================
803
+ RESPONSIVE ADJUSTMENTS
804
+ ============================================ */
805
+
806
+ @media (max-width: 480px) {
807
+ .memori-website_assistant-layout .memori-send-on-enter-menu {
808
+ display: none;
809
+ }
810
+
811
+ .memori-website_assistant-layout .memori-header--button-settings {
812
+ display: none;
813
+ }
814
+
815
+ .memori-website_assistant-layout--controls {
816
+ padding: 0.75rem;
817
+ }
818
+
819
+ .memori-website_assistant-layout--controls .memori-chat--wrapper {
820
+ padding: 0.5rem;
821
+ }
822
+
823
+ .memori-website_assistant-layout--controls .memori--start-panel {
824
+ padding: 1rem;
825
+ margin: 0.5rem;
826
+ }
827
+ }
828
+
829
+ /* After controls .memori--start-panel rules (no-descending-specificity: 3-class selector wins over 2-class) */
830
+ .memori-widget.memori-layout-website_assistant .memori--start-panel {
831
+ border: none;
832
+ }
833
+
834
+ @media (max-width: 768px) {
835
+ .memori-website_assistant--trigger-button {
836
+ width: 80px !important;
837
+ height: 80px !important;
838
+ -webkit-backdrop-filter: blur(12px);
839
+ backdrop-filter: blur(12px);
840
+ background: rgba(255, 255, 255, 0.25);
841
+ }
842
+
843
+ /* Keep blob container as positioning context and centered in button */
844
+ .memori-website_assistant--trigger-button .memori-blob {
845
+ position: relative !important;
846
+ top: 0 !important;
847
+ display: flex;
848
+ align-items: center;
849
+ justify-content: center;
850
+ }
851
+
852
+ /* Center .mainDiv in button: use percentage translate so blob aligns with button (override Blob.css mobile pixel offsets) */
853
+ .memori-website_assistant--trigger-button .memori-blob .mainDiv {
854
+ top: 50% !important;
855
+ left: 50% !important;
856
+ --memori-blob-x: -50%;
857
+ --memori-blob-y: -50%;
858
+ }
859
+ }
860
+
861
+ /* ============================================
862
+ ACCESSIBILITY & PERFORMANCE
863
+ ============================================ */
864
+
865
+ @media (prefers-reduced-motion: reduce) {
866
+ .memori-website_assistant--trigger,
867
+ .memori-website_assistant--trigger-button,
868
+ .memori-website_assistant--close-button,
869
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed,
870
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded,
871
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded .memori-website_assistant-layout,
872
+ .memori-website_assistant-layout .memori-chat--bubble {
873
+ animation: none !important;
874
+ transition: none !important;
875
+ }
876
+ }
877
+
878
+ /* Touch device optimizations */
879
+ @media (hover: none) and (pointer: coarse) {
880
+ .memori-website_assistant--trigger-button {
881
+ width: 80px;
882
+ height: 80px;
883
+ }
884
+
885
+ .memori-website_assistant--trigger-button .memori-blob .mainDiv {
886
+ width: 72px !important;
887
+ height: 72px !important;
888
+ }
889
+ }