@memori.ai/memori-react 9.0.0-alpha.16 → 9.0.0-alpha.18

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 (186) hide show
  1. package/CHANGELOG.md +4 -6944
  2. package/dist/components/Chat/Chat.css +11 -15
  3. package/dist/components/Chat/Chat.js +11 -3
  4. package/dist/components/Chat/Chat.js.map +1 -1
  5. package/dist/components/ChatBubble/ChatBubble.css +96 -22
  6. package/dist/components/ChatBubble/ChatBubble.js +31 -2
  7. package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
  8. package/dist/components/ChatHistoryDrawer/ChatHistory.css +1 -0
  9. package/dist/components/ChatInputs/ChatInputs.css +72 -147
  10. package/dist/components/ChatInputs/ChatInputs.js +3 -4
  11. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  12. package/dist/components/Header/ChatConsumptionDropdown.js +2 -1
  13. package/dist/components/Header/ChatConsumptionDropdown.js.map +1 -1
  14. package/dist/components/Header/Header.css +199 -34
  15. package/dist/components/Header/Header.d.ts +1 -0
  16. package/dist/components/Header/Header.js +42 -34
  17. package/dist/components/Header/Header.js.map +1 -1
  18. package/dist/components/IconButton/IconButton.css +144 -0
  19. package/dist/components/IconButton/IconButton.d.ts +9 -0
  20. package/dist/components/IconButton/IconButton.js +36 -0
  21. package/dist/components/IconButton/IconButton.js.map +1 -0
  22. package/dist/components/KnownFacts/KnownFacts.css +22 -9
  23. package/dist/components/KnownFacts/KnownFacts.js +13 -4
  24. package/dist/components/KnownFacts/KnownFacts.js.map +1 -1
  25. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +29 -44
  26. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +3 -2
  27. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  28. package/dist/components/MemoriWidget/MemoriWidget.css +2 -1
  29. package/dist/components/MemoriWidget/MemoriWidget.js +27 -30
  30. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  31. package/dist/components/MicrophoneButton/MicrophoneButton.css +2 -183
  32. package/dist/components/MicrophoneButton/MicrophoneButton.js +3 -1
  33. package/dist/components/MicrophoneButton/MicrophoneButton.js.map +1 -1
  34. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +22 -7
  35. package/dist/components/MobileSessionPanel/MobileSessionPanel.d.ts +1 -0
  36. package/dist/components/MobileSessionPanel/MobileSessionPanel.js +6 -4
  37. package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
  38. package/dist/components/PositionPopover/PositionPopover.d.ts +2 -0
  39. package/dist/components/PositionPopover/PositionPopover.js +18 -4
  40. package/dist/components/PositionPopover/PositionPopover.js.map +1 -1
  41. package/dist/components/ShareButton/ShareButton.css +3 -2
  42. package/dist/components/ShareButton/ShareButton.js +3 -2
  43. package/dist/components/ShareButton/ShareButton.js.map +1 -1
  44. package/dist/components/UploadButton/UploadButton.css +2 -20
  45. package/dist/components/UploadButton/UploadButton.js +2 -1
  46. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  47. package/dist/components/layouts/Chat.js +59 -73
  48. package/dist/components/layouts/Chat.js.map +1 -1
  49. package/dist/components/layouts/FullPage.js +53 -34
  50. package/dist/components/layouts/FullPage.js.map +1 -1
  51. package/dist/components/layouts/HiddenChat.js +3 -3
  52. package/dist/components/layouts/HiddenChat.js.map +1 -1
  53. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +3 -3
  54. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  55. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +28 -15
  56. package/dist/components/layouts/ZoomedFullBody.js +53 -34
  57. package/dist/components/layouts/ZoomedFullBody.js.map +1 -1
  58. package/dist/components/layouts/chat.css +76 -41
  59. package/dist/components/layouts/fullpage.css +18 -9
  60. package/dist/components/layouts/hidden-chat.css +45 -69
  61. package/dist/components/layouts/zoomed-full-body.css +6 -5
  62. package/dist/helpers/positionPopover.d.ts +1 -1
  63. package/dist/helpers/positionPopover.js +2 -2
  64. package/dist/helpers/positionPopover.js.map +1 -1
  65. package/dist/styles.css +1 -1
  66. package/dist/version.d.ts +1 -1
  67. package/dist/version.js +1 -1
  68. package/esm/components/Chat/Chat.css +11 -15
  69. package/esm/components/Chat/Chat.js +11 -3
  70. package/esm/components/Chat/Chat.js.map +1 -1
  71. package/esm/components/ChatBubble/ChatBubble.css +96 -22
  72. package/esm/components/ChatBubble/ChatBubble.js +31 -2
  73. package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
  74. package/esm/components/ChatHistoryDrawer/ChatHistory.css +1 -0
  75. package/esm/components/ChatInputs/ChatInputs.css +72 -147
  76. package/esm/components/ChatInputs/ChatInputs.js +3 -4
  77. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  78. package/esm/components/Header/ChatConsumptionDropdown.js +3 -2
  79. package/esm/components/Header/ChatConsumptionDropdown.js.map +1 -1
  80. package/esm/components/Header/Header.css +199 -34
  81. package/esm/components/Header/Header.d.ts +1 -0
  82. package/esm/components/Header/Header.js +42 -34
  83. package/esm/components/Header/Header.js.map +1 -1
  84. package/esm/components/IconButton/IconButton.css +144 -0
  85. package/esm/components/IconButton/IconButton.d.ts +9 -0
  86. package/esm/components/IconButton/IconButton.js +33 -0
  87. package/esm/components/IconButton/IconButton.js.map +1 -0
  88. package/esm/components/KnownFacts/KnownFacts.css +22 -9
  89. package/esm/components/KnownFacts/KnownFacts.js +13 -4
  90. package/esm/components/KnownFacts/KnownFacts.js.map +1 -1
  91. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +29 -44
  92. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +3 -2
  93. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  94. package/esm/components/MemoriWidget/MemoriWidget.css +2 -1
  95. package/esm/components/MemoriWidget/MemoriWidget.js +27 -30
  96. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  97. package/esm/components/MicrophoneButton/MicrophoneButton.css +2 -183
  98. package/esm/components/MicrophoneButton/MicrophoneButton.js +3 -2
  99. package/esm/components/MicrophoneButton/MicrophoneButton.js.map +1 -1
  100. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +22 -7
  101. package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +1 -0
  102. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +6 -4
  103. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
  104. package/esm/components/PositionPopover/PositionPopover.d.ts +2 -0
  105. package/esm/components/PositionPopover/PositionPopover.js +18 -4
  106. package/esm/components/PositionPopover/PositionPopover.js.map +1 -1
  107. package/esm/components/ShareButton/ShareButton.css +3 -2
  108. package/esm/components/ShareButton/ShareButton.js +4 -3
  109. package/esm/components/ShareButton/ShareButton.js.map +1 -1
  110. package/esm/components/UploadButton/UploadButton.css +2 -20
  111. package/esm/components/UploadButton/UploadButton.js +2 -1
  112. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  113. package/esm/components/layouts/Chat.js +62 -76
  114. package/esm/components/layouts/Chat.js.map +1 -1
  115. package/esm/components/layouts/FullPage.js +54 -35
  116. package/esm/components/layouts/FullPage.js.map +1 -1
  117. package/esm/components/layouts/HiddenChat.js +3 -3
  118. package/esm/components/layouts/HiddenChat.js.map +1 -1
  119. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +3 -3
  120. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  121. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +28 -15
  122. package/esm/components/layouts/ZoomedFullBody.js +54 -35
  123. package/esm/components/layouts/ZoomedFullBody.js.map +1 -1
  124. package/esm/components/layouts/chat.css +76 -41
  125. package/esm/components/layouts/fullpage.css +18 -9
  126. package/esm/components/layouts/hidden-chat.css +45 -69
  127. package/esm/components/layouts/zoomed-full-body.css +6 -5
  128. package/esm/helpers/positionPopover.d.ts +1 -1
  129. package/esm/helpers/positionPopover.js +2 -2
  130. package/esm/helpers/positionPopover.js.map +1 -1
  131. package/esm/styles.css +1 -1
  132. package/esm/version.d.ts +1 -1
  133. package/esm/version.js +1 -1
  134. package/package.json +1 -1
  135. package/src/components/Chat/Chat.css +11 -15
  136. package/src/components/Chat/Chat.tsx +13 -2
  137. package/src/components/ChatBubble/ChatBubble.css +96 -22
  138. package/src/components/ChatBubble/ChatBubble.tsx +39 -0
  139. package/src/components/ChatHistoryDrawer/ChatHistory.css +1 -0
  140. package/src/components/ChatInputs/ChatInputs.css +72 -147
  141. package/src/components/ChatInputs/ChatInputs.tsx +7 -7
  142. package/src/components/Header/ChatConsumptionDropdown.tsx +3 -2
  143. package/src/components/Header/Header.css +199 -34
  144. package/src/components/Header/Header.tsx +120 -100
  145. package/src/components/Header/__snapshots__/Header.test.tsx.snap +90 -57
  146. package/src/components/IconButton/IconButton.css +144 -0
  147. package/src/components/IconButton/IconButton.tsx +89 -0
  148. package/src/components/KnownFacts/KnownFacts.css +22 -9
  149. package/src/components/KnownFacts/KnownFacts.tsx +13 -3
  150. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +29 -44
  151. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +11 -20
  152. package/src/components/MemoriWidget/MemoriWidget.css +2 -1
  153. package/src/components/MemoriWidget/MemoriWidget.tsx +38 -31
  154. package/src/components/MicrophoneButton/MicrophoneButton.css +2 -183
  155. package/src/components/MicrophoneButton/MicrophoneButton.tsx +5 -5
  156. package/src/components/MobileSessionPanel/MobileSessionPanel.css +22 -7
  157. package/src/components/MobileSessionPanel/MobileSessionPanel.tsx +8 -6
  158. package/src/components/PositionPopover/PositionPopover.tsx +30 -4
  159. package/src/components/ShareButton/ShareButton.css +3 -2
  160. package/src/components/ShareButton/ShareButton.tsx +8 -9
  161. package/src/components/ShareButton/__snapshots__/ShareButton.test.tsx.snap +9 -9
  162. package/src/components/StartPanel/StartPanel.stories.tsx +1 -1
  163. package/src/components/UploadButton/UploadButton.css +2 -20
  164. package/src/components/UploadButton/UploadButton.tsx +3 -5
  165. package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +29 -25
  166. package/src/components/layouts/Chat.tsx +210 -232
  167. package/src/components/layouts/FullPage.tsx +61 -40
  168. package/src/components/layouts/HiddenChat.tsx +5 -6
  169. package/src/components/layouts/WebsiteAssistant/WebsiteAssistant.tsx +2 -2
  170. package/src/components/layouts/WebsiteAssistant/__snapshots__/WebsiteAssistant.test.tsx.snap +2 -0
  171. package/src/components/layouts/WebsiteAssistant/website-assistant.css +28 -15
  172. package/src/components/layouts/ZoomedFullBody.tsx +61 -40
  173. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +145 -143
  174. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +22 -18
  175. package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +10 -145
  176. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +12 -10
  177. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +11 -9
  178. package/src/components/layouts/chat.css +76 -41
  179. package/src/components/layouts/fullpage.css +18 -9
  180. package/src/components/layouts/hidden-chat.css +45 -69
  181. package/src/components/layouts/layouts.stories.tsx +1 -1
  182. package/src/components/layouts/zoomed-full-body.css +6 -5
  183. package/src/helpers/positionPopover.test.ts +10 -4
  184. package/src/helpers/positionPopover.ts +8 -5
  185. package/src/styles.css +1 -0
  186. package/src/version.ts +1 -1
@@ -1,6 +1,9 @@
1
1
  .memori-widget.memori-layout-chat {
2
2
  overflow: hidden;
3
3
  height: 100vh !important;
4
+ height: 100dvh !important;
5
+ max-height: 100vh;
6
+ max-height: 100dvh;
4
7
  padding: 0;
5
8
  }
6
9
 
@@ -26,9 +29,6 @@
26
29
  }
27
30
 
28
31
  @media (max-width: 600px) {
29
- .memori-widget.memori-layout-chat .memori-chat-inputs-wrapper {
30
- margin-bottom: var(--memori-spacing-md);
31
- }
32
32
  .memori-widget.memori-layout-chat .memori--start-description {
33
33
  display: none;
34
34
  }
@@ -43,6 +43,7 @@
43
43
 
44
44
  .memori-widget.memori-layout-chat .memori-fullpage-header-actions {
45
45
  min-width: 0;
46
+ flex: 1 1 auto;
46
47
  flex-wrap: nowrap;
47
48
  -webkit-overflow-scrolling: touch;
48
49
  overflow-x: auto;
@@ -50,29 +51,43 @@
50
51
  }
51
52
 
52
53
  .memori-widget.memori-layout-chat .memori-fullpage-header-actions .memori-header.memori-header--fullpage {
53
- min-width: 0;
54
+ min-width: max-content;
55
+ flex-shrink: 0;
54
56
  flex-wrap: nowrap;
55
57
  }
58
+
59
+ .memori-widget.memori-layout-chat .memori-fullpage-header-actions .memori-icon-button,
60
+ .memori-widget.memori-layout-chat .memori-fullpage-header-actions .memori-button {
61
+ flex-shrink: 0;
62
+ }
56
63
  }
57
64
 
65
+ /* Column fills the chat pane so the input strip can go edge-to-edge;
66
+ message reading width is applied on --body / the input field itself. */
58
67
  .memori-widget.memori-layout-chat .memori-chat-layout--controls > .memori-conversation-column {
59
68
  display: flex;
60
69
  width: 100%;
70
+ max-width: none;
61
71
  min-height: 0;
62
72
  flex: 1 1 auto;
63
73
  flex-direction: column;
74
+ margin-inline: 0;
75
+ padding-inline: 0;
64
76
  }
65
77
 
66
78
  .memori-widget.memori-layout-chat .memori-chat-layout--body {
67
79
  display: flex;
68
80
  overflow: hidden;
69
81
  width: 100%;
82
+ max-width: var(--memori-conversation-max-width, 48rem);
70
83
  min-height: 0;
84
+ box-sizing: border-box;
71
85
  flex: 1;
72
86
  flex-direction: column;
73
87
  align-items: stretch;
74
- margin: 0 auto;
75
88
  background: var(--memori-secondary-background);
89
+ margin-inline: auto;
90
+ padding-inline: var(--memori-conversation-inline-padding, var(--memori-spacing-md));
76
91
  }
77
92
 
78
93
  /* When a global background is on chat content, keep the body strip neutral. */
@@ -98,21 +113,32 @@
98
113
  justify-content: center;
99
114
  }
100
115
 
101
- /* Input bar is a flex sibling of body inside the shared conversation column */
116
+ /* Full-bleed input strip across the chat column; field stays on the conversation axis */
102
117
  .memori-widget.memori-layout-chat .memori-conversation-column > .memori-chat-inputs-wrapper {
103
118
  overflow: hidden;
104
119
  width: 100%;
120
+ max-width: none;
121
+ box-sizing: border-box;
105
122
  flex-shrink: 0;
106
123
  border-top: none;
107
124
  background: var(--memori-secondary-background);
108
125
  border-bottom-left-radius: 0;
109
126
  border-bottom-right-radius: 0;
127
+ margin-inline: 0;
128
+ padding-inline: var(--memori-conversation-inline-padding, var(--memori-spacing-md));
110
129
  }
111
130
 
112
131
  .memori-widget.memori-layout-chat .memori-chat-inputs {
113
132
  background: transparent;
114
133
  }
115
134
 
135
+ .memori-widget.memori-layout-chat .memori-conversation-column > .memori-chat-inputs-wrapper .memori-chat-inputs,
136
+ .memori-widget.memori-layout-chat .memori-conversation-column > .memori-chat-inputs-wrapper .memori-conversation-footer {
137
+ width: 100%;
138
+ max-width: var(--memori-conversation-max-width, 48rem);
139
+ margin-inline: auto;
140
+ }
141
+
116
142
  .memori-chat-layout--header-with-artifact {
117
143
  display: none;
118
144
  }
@@ -204,6 +230,15 @@
204
230
  text-overflow: unset;
205
231
  white-space: normal;
206
232
  }
233
+
234
+ .memori-widget.memori--active.memori-layout-chat .memori-conversation-footer {
235
+ justify-content: flex-start;
236
+ }
237
+
238
+ .memori-widget.memori--active.memori-layout-chat .memori-conversation-footer .memori-chat-inputs--ai-note {
239
+ flex: 1 1 auto;
240
+ text-align: left;
241
+ }
207
242
  }
208
243
 
209
244
  .memori-chat-layout--controls .memori-chat--wrapper {
@@ -300,14 +335,20 @@
300
335
  .memori-chat-layout--main {
301
336
  position: relative;
302
337
  display: flex;
303
- overflow: hidden;
338
+ /* clip (not hidden): the blurred/scaled global-background ::before expands
339
+ scrollable overflow; overflow:hidden still creates a scrollport, so
340
+ Chat's scrollIntoView can shift the whole chrome upward and clip the header. */
341
+ overflow: clip;
304
342
  width: 100%;
343
+ min-width: 0;
305
344
  height: 100%;
306
- flex: 1;
345
+ min-height: 0;
346
+ flex: 1 1 0%;
307
347
  flex-direction: row;
308
- align-items: center;
309
- justify-content: center;
310
- /* max-width: 1200px; */
348
+ /* Stretch — never center the column vertically or an overflowing
349
+ controls pane gets clipped at the top (header) and leaves a gap below. */
350
+ align-items: stretch;
351
+ justify-content: flex-start;
311
352
  transition: all 0.05s ease-in-out;
312
353
  }
313
354
 
@@ -318,6 +359,7 @@
318
359
  overflow: hidden;
319
360
  min-width: 0;
320
361
  height: 100%;
362
+ min-height: 0;
321
363
  max-height: 100%;
322
364
  flex: 1;
323
365
  flex-direction: column;
@@ -335,23 +377,34 @@
335
377
  background: var(--memori-secondary-background);
336
378
  }
337
379
 
338
- /* Artifact drawer column inside the Chat layout's flex row */
339
- .memori-chat-layout .memori--grid-column-artifact {
380
+ /* Header sits above the content row (FULLPAGE pattern) so opening the
381
+ artifact only redistributes the chat/artifact columns. */
382
+ .memori-widget.memori-layout-chat .memori-chat-layout--header {
383
+ position: relative;
384
+ z-index: 6;
385
+ width: 100%;
386
+ flex-shrink: 0;
387
+ }
388
+
389
+ /* Artifact drawer column — flex sibling of chat controls inside --main */
390
+ .memori-widget.memori-layout-chat .memori--grid-column-artifact {
340
391
  overflow: hidden;
341
392
  width: 0;
342
393
  min-width: 0;
394
+ height: 100%;
395
+ min-height: 0;
343
396
  flex-shrink: 0;
344
397
  transition: width 0.25s ease;
345
398
  }
346
399
 
347
- .memori-chat-layout .memori--grid-column-artifact--open {
348
- width: 620px;
400
+ .memori-widget.memori-layout-chat .memori--grid-column-artifact--open {
401
+ width: min(620px, 55%);
349
402
  border-left: 1px solid var(--memori-border-color);
350
403
  background: var(--memori-secondary-background);
351
404
  }
352
405
 
353
406
  @media (max-width: 1260px) {
354
- .memori-chat-layout .memori--grid-column-artifact {
407
+ .memori-widget.memori-layout-chat .memori--grid-column-artifact {
355
408
  display: none;
356
409
  }
357
410
  }
@@ -377,10 +430,12 @@
377
430
  background-repeat: no-repeat;
378
431
  background-size: cover;
379
432
  content: '';
433
+ filter: blur(5px);
380
434
  pointer-events: none;
435
+ transform: scale(1.06);
381
436
  }
382
437
 
383
- .memori-chat-layout--main--has-background .memori--grid-column-artifact {
438
+ .memori-widget.memori-layout-chat .memori-chat-layout--main--has-background .memori--grid-column-artifact {
384
439
  position: relative;
385
440
  z-index: 5;
386
441
  }
@@ -390,38 +445,18 @@
390
445
  background: transparent;
391
446
  }
392
447
 
393
- /* The header is a solid strip, so the image starts below it. */
394
- .memori-widget.memori-layout-chat .memori-chat-layout--main--has-background .memori-chat-layout--header {
448
+ /* Header is outside --main; keep it a solid strip above the backgrounded content. */
449
+ .memori-widget.memori-layout-chat:has(.memori-chat-layout--main--has-background) .memori-chat-layout--header {
395
450
  background: var(--memori-secondary-background);
396
451
  }
397
452
 
398
- /* The input bar stays a solid strip, so the image ends where the messages end.
399
- It breaks out of the conversation column to span the whole width; the
400
- surrounding `overflow: hidden` on the controls clips it to the chat column. */
453
+ /* Input strip is already full-bleed (see rules above); keep its solid surface over the image. */
401
454
  .memori-widget.memori-layout-chat
402
455
  .memori-chat-layout--main--has-background
403
456
  .memori-conversation-column
404
457
  > .memori-chat-inputs-wrapper {
405
- width: 100vw;
406
- max-width: 100vw;
407
458
  margin-bottom: 0;
408
459
  background: var(--memori-secondary-background);
409
- margin-inline: calc(50% - 50vw);
410
- padding-inline: var(--memori-conversation-inline-padding, var(--memori-spacing-md));
411
- }
412
-
413
- .memori-widget.memori-layout-chat
414
- .memori-chat-layout--main--has-background
415
- .memori-conversation-column
416
- > .memori-chat-inputs-wrapper
417
- .memori-chat-inputs,
418
- .memori-widget.memori-layout-chat
419
- .memori-chat-layout--main--has-background
420
- .memori-conversation-column
421
- > .memori-chat-inputs-wrapper
422
- .memori-conversation-footer {
423
- max-width: var(--memori-conversation-max-width, 48rem);
424
- margin-inline: auto;
425
460
  }
426
461
 
427
462
  /* The column-scoped image would otherwise paint a second, narrower copy. */
@@ -504,7 +539,7 @@
504
539
  .memori-widget.memori-layout-chat .memori-chat-layout--controls .memori--start-panel,
505
540
  .memori-widget.memori-layout-chat .memori-chat-layout--controls .memori-chat--wrapper {
506
541
  min-width: 0;
507
- margin-top: var(--memori-spacing-lg);
542
+ min-height: 0;
508
543
  }
509
544
 
510
545
  .memori-widget.memori-layout-chat .memori-chat-layout--controls .memori-chat--wrapper {
@@ -162,21 +162,25 @@
162
162
  justify-content: flex-end;
163
163
  }
164
164
 
165
- /* FullPage header controls: compact square actions + rounded login CTA */
166
- .memori-widget.memori-layout-fullpage .memori-header.memori-header--fullpage {
165
+ /* FullPage / Chat / Zoomed header controls: compact square actions + rounded login CTA */
166
+ .memori-widget.memori-layout-fullpage .memori-header.memori-header--fullpage,
167
+ .memori-widget.memori-layout-chat .memori-header.memori-header--fullpage {
167
168
  min-width: 0;
168
169
  flex-wrap: nowrap;
169
170
  justify-content: flex-end;
170
- gap: 0.5rem;
171
+ gap: 0.75rem;
171
172
  }
172
173
 
173
174
  .memori-widget.memori-layout-fullpage .memori-header--fullpage-primary,
174
- .memori-widget.memori-layout-fullpage .memori-header--fullpage-secondary {
175
+ .memori-widget.memori-layout-fullpage .memori-header--fullpage-secondary,
176
+ .memori-widget.memori-layout-chat .memori-header--fullpage-primary,
177
+ .memori-widget.memori-layout-chat .memori-header--fullpage-secondary {
175
178
  flex-wrap: nowrap;
176
179
  gap: 0.5rem;
177
180
  }
178
181
 
179
- .memori-widget.memori-layout-fullpage .memori-header--fullpage-divider {
182
+ .memori-widget.memori-layout-fullpage .memori-header--fullpage-divider,
183
+ .memori-widget.memori-layout-chat .memori-header--fullpage-divider {
180
184
  min-height: 26px;
181
185
  margin: 0;
182
186
  }
@@ -478,8 +482,7 @@
478
482
  flex: 1 1 auto;
479
483
  }
480
484
 
481
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-actions,
482
- .memori-widget.memori-layout-chat .memori-fullpage-header-actions {
485
+ .memori-widget.memori-layout-fullpage .memori-fullpage-header-actions {
483
486
  flex: 0 0 auto;
484
487
  justify-content: flex-end;
485
488
  }
@@ -492,7 +495,7 @@
492
495
 
493
496
  .memori-widget.memori-layout-chat .memori-fullpage-header-actions {
494
497
  min-width: 0;
495
- flex: 0 0 auto;
498
+ flex: 1 1 auto;
496
499
  flex-wrap: nowrap;
497
500
  justify-content: flex-end;
498
501
  -webkit-overflow-scrolling: touch;
@@ -501,7 +504,13 @@
501
504
  }
502
505
 
503
506
  .memori-widget.memori-layout-chat .memori-fullpage-header-actions .memori-header.memori-header--fullpage {
504
- min-width: 0;
507
+ min-width: max-content;
508
+ flex-shrink: 0;
505
509
  flex-wrap: nowrap;
506
510
  }
511
+
512
+ .memori-widget.memori-layout-chat .memori-fullpage-header-actions .memori-icon-button,
513
+ .memori-widget.memori-layout-chat .memori-fullpage-header-actions .memori-button {
514
+ flex-shrink: 0;
515
+ }
507
516
  }
@@ -70,42 +70,19 @@
70
70
  transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out, right 0.3s ease-in-out;
71
71
  }
72
72
 
73
- /* Close control lives in the header icon group (next to mute), not as a mid-page float */
73
+ /* Close control lives in the header icon group (next to mute), not as a mid-page float.
74
+ Visuals come from `.memori-website_assistant--close-button` (shared with WEBSITE_ASSISTANT). */
74
75
  .memori-widget.memori-layout-hidden_chat
75
76
  .memori-sidebar
76
- .memori-hidden-chat-layout--header-close.memori-sidebar-toggle-label {
77
+ .memori-hidden-chat-layout--header-close.memori-website_assistant--close-button {
77
78
  position: relative;
79
+ z-index: 2;
78
80
  top: auto;
79
81
  right: auto;
80
- display: inline-flex;
81
- width: 2.5rem;
82
- min-width: 2.5rem;
83
- height: 2.5rem;
84
- min-height: 2.5rem;
85
- align-items: center;
86
- justify-content: center;
87
- padding: 0;
88
- border: var(--memori-border, 1px) solid color-mix(in srgb, var(--memori-text-color, #111827) 18%, transparent);
89
- border-radius: var(--memori-radius-box, 0.5rem);
90
- margin: 0;
91
- background: transparent;
92
- color: var(--memori-text-color, #111827);
93
- cursor: pointer;
94
- font-size: inherit;
95
- font-weight: inherit;
96
- line-height: 1;
82
+ flex-shrink: 0;
97
83
  opacity: 1;
98
84
  pointer-events: auto;
99
- text-orientation: mixed;
100
- transform: none;
101
- transition: background-color 0.15s ease, border-color 0.15s ease;
102
- writing-mode: horizontal-tb;
103
- }
104
-
105
- .memori-widget.memori-layout-hidden_chat
106
- .memori-sidebar
107
- .memori-hidden-chat-layout--header-close.memori-sidebar-toggle-label:hover {
108
- background: color-mix(in srgb, var(--memori-text-color, #111827) 6%, transparent);
85
+ visibility: visible;
109
86
  }
110
87
 
111
88
  .memori-button--icon > svg {
@@ -127,30 +104,30 @@
127
104
  fill: none;
128
105
  }
129
106
 
130
- .memori-widget.memori-layout-hidden_chat .memori-sidebar .memori-hidden-chat-layout--header-close .memori-icon-close {
131
- width: 1.125rem;
132
- height: 1.125rem;
133
- fill: none;
134
- stroke: currentColor;
107
+ /* Powered-by is not shown in HIDDEN_CHAT; AI disclaimer wraps under the input. */
108
+ .memori-widget.memori-layout-hidden_chat .memori-sidebar .memori--powered-by {
109
+ display: none !important;
135
110
  }
136
111
 
137
- /* Powered-by footer under the input on --memori-secondary-background */
138
- .memori-widget.memori-layout-hidden_chat .memori-sidebar .memori--powered-by {
139
- position: relative;
140
- z-index: 5;
141
- top: auto;
142
- right: auto;
143
- bottom: auto;
144
- left: auto;
145
- display: flex;
146
- width: 100%;
147
- flex-shrink: 0;
112
+ .memori-widget.memori-layout-hidden_chat .memori-conversation-footer {
113
+ flex-wrap: wrap;
148
114
  justify-content: center;
149
- padding: 0.35rem 1rem 0.85rem;
150
- border-radius: 0;
151
- margin: 0;
152
- background: var(--memori-secondary-background);
153
- transform: none;
115
+ }
116
+
117
+ .memori-widget.memori-layout-hidden_chat
118
+ .memori-conversation-footer
119
+ .memori-chat-inputs--ai-note {
120
+ overflow: visible;
121
+ flex: 1 1 100%;
122
+ text-align: center;
123
+ text-overflow: unset;
124
+ white-space: normal;
125
+ }
126
+
127
+ .memori-widget.memori--active.memori-layout-hidden_chat
128
+ .memori-conversation-footer
129
+ .memori-chat-inputs--ai-note {
130
+ text-align: left;
154
131
  }
155
132
 
156
133
  .memori-sidebar {
@@ -165,10 +142,6 @@
165
142
  transition: all 0.3s ease-in-out;
166
143
  }
167
144
 
168
- .memori-widget.memori-layout-hidden_chat .memori-sidebar .memori-chat--content {
169
- padding: var(--memori-spacing-xl);
170
- }
171
-
172
145
  .memori-widget.memori-layout-hidden_chat .memori-sidebar .memori-chat-history {
173
146
  height: calc(100% - var(--memori-spacing-5xl));
174
147
  padding: 0;
@@ -336,6 +309,8 @@
336
309
 
337
310
  .memori-widget.memori-layout-hidden_chat .memori-sidebar .memori-chat-layout--header {
338
311
  width: 100%;
312
+ max-width: 100%;
313
+ box-sizing: border-box;
339
314
  flex-shrink: 0;
340
315
  padding: 0.75rem 1rem;
341
316
  border-bottom: 1px solid var(--memori-border-color);
@@ -346,7 +321,10 @@
346
321
 
347
322
  .memori-widget.memori-layout-hidden_chat .memori-sidebar .memori-chat-layout--header-row {
348
323
  display: flex;
324
+ overflow: hidden;
349
325
  width: 100%;
326
+ min-width: 0;
327
+ max-width: 100%;
350
328
  align-items: center;
351
329
  justify-content: space-between;
352
330
  gap: 0.75rem;
@@ -354,7 +332,10 @@
354
332
 
355
333
  .memori-widget.memori-layout-hidden_chat .memori-sidebar .memori-hidden-chat-layout--header-actions {
356
334
  display: inline-flex;
357
- flex: 0 0 auto;
335
+ min-width: 0;
336
+ max-width: 100%;
337
+ flex: 0 1 auto;
338
+ flex-shrink: 0;
358
339
  align-items: center;
359
340
  margin-left: auto;
360
341
  gap: 0.35rem;
@@ -445,6 +426,7 @@
445
426
  display: flex;
446
427
  overflow: hidden;
447
428
  min-width: 0;
429
+ max-width: calc(100% - 7.5rem);
448
430
  flex: 1 1 auto;
449
431
  align-items: center;
450
432
  gap: 0.75rem;
@@ -586,39 +568,33 @@
586
568
  color: var(--memori-primary-content, #fff);
587
569
  }
588
570
 
589
- /* Dark theme: header controls — white outline and icon (incl. share + position popover) */
571
+ /* Dark theme: header controls — white outline and icon (incl. share + position popover).
572
+ Soft-active / recording IconButtons keep primary/error chrome from IconButton.css. */
590
573
  .memori-widget.memori-layout-hidden_chat[data-theme='dark']
591
574
  .memori-header
592
- .memori-button:not(:disabled):not(.memori-button--disabled),
575
+ .memori-button:not(.memori-icon-button--active, .memori-icon-button--recording, :disabled, .memori-button--disabled),
593
576
  [data-theme='dark']
594
577
  .memori-widget.memori-layout-hidden_chat
595
578
  .memori-header
596
- .memori-button:not(:disabled):not(.memori-button--disabled) {
579
+ .memori-button:not(.memori-icon-button--active, .memori-icon-button--recording, :disabled, .memori-button--disabled) {
597
580
  border: var(--memori-border) solid #fff;
598
581
  color: #fff;
599
582
  }
600
583
 
601
584
  .memori-widget.memori-layout-hidden_chat[data-theme='dark']
602
585
  .memori-header
603
- .memori-button:hover:not(:disabled, .memori-button--disabled),
604
- .memori-widget.memori-layout-hidden_chat[data-theme='dark']
605
- .memori-header
606
- .memori-button:active:not(:disabled, .memori-button--disabled),
586
+ .memori-button:hover:not(.memori-icon-button, .memori-icon-button--active, .memori-icon-button--recording, :disabled, .memori-button--disabled),
607
587
  .memori-widget.memori-layout-hidden_chat[data-theme='dark']
608
588
  .memori-header
609
- .memori-button.memori-button--active:not(:disabled, .memori-button--disabled),
610
- [data-theme='dark']
611
- .memori-widget.memori-layout-hidden_chat
612
- .memori-header
613
- .memori-button:hover:not(:disabled, .memori-button--disabled),
589
+ .memori-button:active:not(.memori-icon-button, .memori-icon-button--active, .memori-icon-button--recording, :disabled, .memori-button--disabled),
614
590
  [data-theme='dark']
615
591
  .memori-widget.memori-layout-hidden_chat
616
592
  .memori-header
617
- .memori-button:active:not(:disabled, .memori-button--disabled),
593
+ .memori-button:hover:not(.memori-icon-button, .memori-icon-button--active, .memori-icon-button--recording, :disabled, .memori-button--disabled),
618
594
  [data-theme='dark']
619
595
  .memori-widget.memori-layout-hidden_chat
620
596
  .memori-header
621
- .memori-button.memori-button--active:not(:disabled, .memori-button--disabled) {
597
+ .memori-button:active:not(.memori-icon-button, .memori-icon-button--active, .memori-icon-button--recording, :disabled, .memori-button--disabled) {
622
598
  border: var(--memori-border) solid #fff;
623
599
  color: #fff;
624
600
  }
@@ -61,8 +61,7 @@
61
61
  margin-left: auto;
62
62
  background: transparent;
63
63
  gap: var(--memori-spacing-md);
64
- transition: background-color var(--memori-motion-duration-fast, 0.15s)
65
- var(--memori-motion-ease, ease);
64
+ transition: background-color var(--memori-motion-duration-fast, 0.15s) var(--memori-motion-ease, ease);
66
65
  }
67
66
 
68
67
  .memori-widget.memori-layout-zoomed_full_body .memori-fullpage-header-row.memori-header--scrolled,
@@ -83,7 +82,7 @@
83
82
  min-height: 0;
84
83
  flex: 1 1 auto;
85
84
  border: none;
86
- border-radius: 0;
85
+ border-radius: var(--memori-radius-box);
87
86
  margin-bottom: 0;
88
87
  background-color: var(--memori-secondary-background);
89
88
  }
@@ -163,7 +162,7 @@
163
162
  min-width: 0;
164
163
  flex-wrap: nowrap;
165
164
  justify-content: flex-end;
166
- gap: 0.5rem;
165
+ gap: 0.75rem;
167
166
  }
168
167
 
169
168
  .memori-widget.memori-layout-zoomed_full_body .memori-header--fullpage-primary,
@@ -313,7 +312,9 @@
313
312
  }
314
313
 
315
314
  /* Hide avatar column when artifact drawer is open */
316
- .memori-widget.memori-layout-zoomed_full_body .memori-fullpage-content-row:has(.memori--grid-column-artifact--open) .memori--grid-column-left {
315
+ .memori-widget.memori-layout-zoomed_full_body
316
+ .memori-fullpage-content-row:has(.memori--grid-column-artifact--open)
317
+ .memori--grid-column-left {
317
318
  display: none;
318
319
  }
319
320
 
@@ -1 +1 @@
1
- export declare function shouldRestartSessionOnPositionPopoverClose(wasOpen: boolean, nextOpen: boolean, autoStart: boolean): boolean;
1
+ export declare function shouldRestartSessionOnPositionPopoverClose(wasOpen: boolean, nextOpen: boolean, autoStart: boolean, sessionAlreadyStarted?: boolean): boolean;
@@ -1,4 +1,4 @@
1
- export function shouldRestartSessionOnPositionPopoverClose(wasOpen, nextOpen, autoStart) {
2
- return wasOpen && !nextOpen && !!autoStart;
1
+ export function shouldRestartSessionOnPositionPopoverClose(wasOpen, nextOpen, autoStart, sessionAlreadyStarted = false) {
2
+ return (wasOpen && !nextOpen && !!autoStart && !sessionAlreadyStarted);
3
3
  }
4
4
  //# sourceMappingURL=positionPopover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"positionPopover.js","sourceRoot":"","sources":["../../src/helpers/positionPopover.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,0CAA0C,CACxD,OAAgB,EAChB,QAAiB,EACjB,SAAkB;IAElB,OAAO,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"positionPopover.js","sourceRoot":"","sources":["../../src/helpers/positionPopover.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,0CAA0C,CACxD,OAAgB,EAChB,QAAiB,EACjB,SAAkB,EAClB,qBAAqB,GAAG,KAAK;IAE7B,OAAO,CACL,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,qBAAqB,CAC9D,CAAC;AACJ,CAAC"}