@memori.ai/memori-react 9.0.0-alpha.12 → 9.0.0-alpha.14

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 (60) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/components/Chat/Chat.css +19 -0
  3. package/dist/components/ChatInputs/ChatInputs.css +77 -3
  4. package/dist/components/ChatTextArea/ChatTextArea.css +5 -25
  5. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +7 -2
  6. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +31 -14
  7. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +169 -138
  8. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +7 -7
  9. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  10. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +7 -2
  11. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +1 -0
  12. package/dist/components/MemoriWidget/MemoriWidget.js +5 -1
  13. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  14. package/dist/components/MicrophoneButton/MicrophoneButton.css +22 -0
  15. package/dist/components/layouts/chat.css +22 -2
  16. package/dist/components/layouts/fullpage.css +5 -5
  17. package/dist/components/layouts/zoomed-full-body.css +5 -5
  18. package/dist/styles.css +1 -1
  19. package/dist/version.d.ts +1 -1
  20. package/dist/version.js +1 -1
  21. package/esm/components/Chat/Chat.css +19 -0
  22. package/esm/components/ChatInputs/ChatInputs.css +77 -3
  23. package/esm/components/ChatTextArea/ChatTextArea.css +5 -25
  24. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +7 -2
  25. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +31 -14
  26. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +169 -138
  27. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +8 -8
  28. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  29. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +7 -2
  30. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +1 -0
  31. package/esm/components/MemoriWidget/MemoriWidget.js +5 -1
  32. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  33. package/esm/components/MicrophoneButton/MicrophoneButton.css +22 -0
  34. package/esm/components/layouts/chat.css +22 -2
  35. package/esm/components/layouts/fullpage.css +5 -5
  36. package/esm/components/layouts/zoomed-full-body.css +5 -5
  37. package/esm/styles.css +1 -1
  38. package/esm/version.d.ts +1 -1
  39. package/esm/version.js +1 -1
  40. package/package.json +1 -1
  41. package/src/components/Chat/Chat.css +19 -0
  42. package/src/components/ChatInputs/ChatInputs.css +77 -3
  43. package/src/components/ChatTextArea/ChatTextArea.css +5 -25
  44. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +7 -2
  45. package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +31 -14
  46. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +169 -138
  47. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +63 -72
  48. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +7 -2
  49. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +1 -0
  50. package/src/components/MemoriWidget/MemoriWidget.tsx +5 -1
  51. package/src/components/MicrophoneButton/MicrophoneButton.css +22 -0
  52. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +5 -1
  53. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +10 -2
  54. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +5 -1
  55. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +5 -1
  56. package/src/components/layouts/chat.css +22 -2
  57. package/src/components/layouts/fullpage.css +5 -5
  58. package/src/components/layouts/zoomed-full-body.css +5 -5
  59. package/src/styles.css +2 -5
  60. package/src/version.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
 
2
2
 
3
+ ## [9.0.0-alpha.14](https://github.com/memori-ai/memori-react/compare/v9.0.0-alpha.13...v9.0.0-alpha.14) (2026-08-25)
4
+
5
+ ## [9.0.0-alpha.13](https://github.com/memori-ai/memori-react/compare/v9.0.0-alpha.12...v9.0.0-alpha.13) (2026-08-25)
6
+
3
7
  ## [9.0.0-alpha.12](https://github.com/memori-ai/memori-react/compare/v9.0.0-alpha.11...v9.0.0-alpha.12) (2026-08-24)
4
8
 
5
9
  ## [9.0.0-alpha.11](https://github.com/memori-ai/memori-react/compare/v9.0.0-alpha.10...v9.0.0-alpha.11) (2026-08-24)
@@ -67,6 +67,25 @@
67
67
  /* mask-image: linear-gradient(transparent, black 5%, black 95%, transparent 100%); */
68
68
  overflow-y: auto;
69
69
  scroll-behavior: smooth;
70
+ scrollbar-color: color-mix(in oklch, var(--memori-neutral, #6b7280) 55%, transparent) transparent;
71
+ scrollbar-width: thin;
72
+ }
73
+
74
+ .memori-chat--content::-webkit-scrollbar {
75
+ width: 8px;
76
+ }
77
+
78
+ .memori-chat--content::-webkit-scrollbar-track {
79
+ background: transparent;
80
+ }
81
+
82
+ .memori-chat--content::-webkit-scrollbar-thumb {
83
+ border-radius: 999px;
84
+ background-color: color-mix(in oklch, var(--memori-neutral, #6b7280) 45%, transparent);
85
+ }
86
+
87
+ .memori-chat--content::-webkit-scrollbar-thumb:hover {
88
+ background-color: color-mix(in oklch, var(--memori-neutral, #6b7280) 60%, transparent);
70
89
  }
71
90
 
72
91
  /* Conversation-column overrides sit between base and layout-scoped rules. */
@@ -278,6 +278,15 @@
278
278
  color: inherit;
279
279
  }
280
280
 
281
+ /* Light hover surface (#f2eef5) — keep the icon black in dark mode for contrast */
282
+ .memori-widget[data-theme='dark'] .memori-chat-inputs--mic-btn:hover,
283
+ .memori-widget[data-theme='dark'] .memori-chat-inputs--mic-btn:hover svg,
284
+ .memori-widget[data-theme='dark'] .memori-chat-inputs--trailing .memori-chat-inputs--mic:hover,
285
+ .memori-widget[data-theme='dark'] .memori-chat-inputs--trailing .memori-chat-inputs--mic:hover .memori-button,
286
+ .memori-widget[data-theme='dark'] .memori-chat-inputs--trailing .memori-chat-inputs--mic:hover svg {
287
+ color: #000 !important;
288
+ }
289
+
281
290
  /* Send button — solid brand fill, high-contrast icon (all layouts) */
282
291
  .memori-chat-inputs--send-btn,
283
292
  .memori-chat-inputs--send-btn.memori-button {
@@ -360,41 +369,52 @@
360
369
  }
361
370
 
362
371
  .memori-chat-inputs--ai-note {
363
- max-width: var(--memori-conversation-max-width, 48rem);
372
+ max-width: 100%;
364
373
  margin: 0;
365
374
  background: transparent;
366
375
  color: color-mix(in srgb, var(--memori-text-color) 72%, transparent);
367
376
  font-size: 0.75rem;
368
377
  line-height: 1.3;
378
+ overflow-wrap: anywhere;
369
379
  text-align: left;
380
+ word-break: break-word;
370
381
  }
371
382
 
372
383
  .memori-conversation-footer {
384
+ position: relative;
373
385
  display: flex;
374
386
  width: 100%;
387
+ max-width: var(--memori-conversation-max-width, 48rem);
375
388
  box-sizing: border-box;
389
+ flex-shrink: 0;
390
+ flex-wrap: nowrap;
376
391
  align-items: center;
377
392
  justify-content: space-between;
378
393
  padding: var(--memori-spacing-sm) 0 0;
379
394
  border-top: 1px solid var(--memori-border-color);
380
395
  margin-top: var(--memori-spacing-sm);
396
+ margin-right: auto;
397
+ margin-left: auto;
381
398
  color: color-mix(in srgb, var(--memori-text-color) 72%, transparent);
382
399
  gap: var(--memori-spacing-md);
383
400
  }
384
401
 
385
402
  .memori-conversation-footer .memori-chat-inputs--ai-note {
403
+ overflow: hidden;
386
404
  min-width: 0;
387
405
  flex: 1 1 auto;
388
406
  margin: 0;
389
407
  text-align: left;
408
+ text-overflow: ellipsis;
409
+ white-space: nowrap;
390
410
  }
391
411
 
392
412
  .memori-conversation-footer .memori--powered-by {
393
- position: static;
413
+ position: static !important;
394
414
  z-index: auto;
395
415
  bottom: auto;
396
416
  left: auto;
397
- display: inline-flex;
417
+ display: inline-flex !important;
398
418
  flex-shrink: 0;
399
419
  padding: 0;
400
420
  border-radius: 0;
@@ -402,6 +422,7 @@
402
422
  background: transparent;
403
423
  color: inherit;
404
424
  transform: none;
425
+ white-space: nowrap;
405
426
  }
406
427
 
407
428
  .memori-conversation-footer .memori--powered-by-icon {
@@ -501,6 +522,59 @@
501
522
  color: color-mix(in srgb, var(--memori-text-color) 72%, transparent);
502
523
  }
503
524
 
525
+ /* Keep disclaimer + brand on the same axis as the input pill */
526
+ .memori-widget.memori-layout-fullpage .memori-conversation-footer,
527
+ .memori-widget.memori-layout-zoomed_full_body .memori-conversation-footer {
528
+ max-width: 100%;
529
+ }
530
+
531
+ /* FULLPAGE + ZOOMED: border-top only after chat has started (under ChatInputs).
532
+ Start-panel footer is a direct child of the conversation column. */
533
+ .memori-widget.memori-layout-fullpage
534
+ .memori-conversation-column
535
+ > .memori-conversation-footer,
536
+ .memori-widget.memori-layout-zoomed_full_body
537
+ .memori-conversation-column
538
+ > .memori-conversation-footer {
539
+ border-top: none;
540
+ }
541
+
542
+ .memori-widget.memori-layout-fullpage
543
+ .memori-chat-inputs-wrapper
544
+ > .memori-conversation-footer,
545
+ .memori-widget.memori-layout-zoomed_full_body
546
+ .memori-chat-inputs-wrapper
547
+ > .memori-conversation-footer {
548
+ border-top: 1px solid var(--memori-border-color);
549
+ }
550
+
551
+ @media (max-width: 768px) {
552
+ .memori-conversation-footer,
553
+ .memori-widget.memori-layout-fullpage
554
+ .memori-chat-inputs-wrapper
555
+ > .memori-conversation-footer,
556
+ .memori-widget.memori-layout-zoomed_full_body
557
+ .memori-chat-inputs-wrapper
558
+ > .memori-conversation-footer {
559
+ justify-content: center;
560
+ border-top: none;
561
+ gap: 0;
562
+ }
563
+
564
+ .memori-conversation-footer .memori--powered-by,
565
+ .memori-widget.memori-layout-chat .memori-conversation-footer > .memori--powered-by {
566
+ display: none !important;
567
+ }
568
+
569
+ .memori-conversation-footer .memori-chat-inputs--ai-note {
570
+ overflow: visible;
571
+ flex: 0 1 auto;
572
+ text-align: center;
573
+ text-overflow: unset;
574
+ white-space: normal;
575
+ }
576
+ }
577
+
504
578
  /* =============================================================================
505
579
  HIDDEN_CHAT + WEBSITE_ASSISTANT + CHAT — bottom-anchored white pill
506
580
  ============================================================================= */
@@ -102,9 +102,10 @@ textarea.memori-chat-textarea--input {
102
102
  font-size: 14.5px;
103
103
  line-height: var(--memori-text-line-normal);
104
104
  outline: none;
105
+ -ms-overflow-style: none; /* IE/Edge */
105
106
  overflow-y: auto;
106
107
  resize: none;
107
- scrollbar-width: thin;
108
+ scrollbar-width: none; /* Firefox */
108
109
  transition: height 0.2s ease-in-out;
109
110
  }
110
111
 
@@ -114,22 +115,10 @@ textarea.memori-chat-textarea--input::placeholder {
114
115
  opacity: 1;
115
116
  }
116
117
 
117
- /* Scrollbar styling */
118
+ /* Hide vertical scrollbar (scroll still works) */
118
119
  textarea.memori-chat-textarea--input::-webkit-scrollbar {
119
- width: 6px;
120
- }
121
-
122
- textarea.memori-chat-textarea--input::-webkit-scrollbar-track {
123
- background: transparent;
124
- }
125
-
126
- textarea.memori-chat-textarea--input::-webkit-scrollbar-thumb {
127
- border-radius: var(--memori-radius-box);
128
- background: rgba(0, 0, 0, 0.2);
129
- }
130
-
131
- textarea.memori-chat-textarea--input::-webkit-scrollbar-thumb:hover {
132
- background: rgba(0, 0, 0, 0.3);
120
+ display: none;
121
+ width: 0;
133
122
  }
134
123
 
135
124
  /* Responsive adjustments for textarea input */
@@ -195,7 +184,6 @@ button.memori-chat-textarea--expand-button:focus {
195
184
 
196
185
  [data-theme='dark'] textarea.memori-chat-textarea--input {
197
186
  color: var(--memori-text-color, rgba(255, 255, 255, 0.92));
198
- scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
199
187
  }
200
188
 
201
189
  [data-theme='dark'] textarea.memori-chat-textarea--input::placeholder {
@@ -222,14 +210,6 @@ button.memori-chat-textarea--expand-button:focus {
222
210
  color: #7d7a86;
223
211
  }
224
212
 
225
- [data-theme='dark'] textarea.memori-chat-textarea--input::-webkit-scrollbar-thumb {
226
- background: rgba(255, 255, 255, 0.25);
227
- }
228
-
229
- [data-theme='dark'] textarea.memori-chat-textarea--input::-webkit-scrollbar-thumb:hover {
230
- background: rgba(255, 255, 255, 0.4);
231
- }
232
-
233
213
  [data-theme='dark'] button.memori-chat-textarea--expand-button {
234
214
  color: var(--memori-text-color, rgba(255, 255, 255, 0.85));
235
215
  }
@@ -23,10 +23,13 @@
23
23
  .memori-artifact-action-icon-fullscreen {
24
24
  width: 16px;
25
25
  height: 16px;
26
+ color: inherit;
27
+ fill: none;
28
+ stroke: currentColor;
26
29
  }
27
30
 
28
31
  .memori-artifact-action-icon {
29
- fill: #000;
32
+ color: var(--memori-text-color);
30
33
  }
31
34
 
32
35
  .memori-artifact-action-btn:disabled {
@@ -122,7 +125,9 @@
122
125
  /* Remove unused styles */
123
126
 
124
127
  .memori-artifact-action-icon-fullscreen {
125
- fill: #fff;
128
+ color: #fff;
129
+ fill: none;
130
+ stroke: currentColor;
126
131
  }
127
132
 
128
133
  /* Animation for Copy Feedback */
@@ -27,11 +27,15 @@
27
27
  position: relative;
28
28
  display: inline-flex;
29
29
  overflow: hidden;
30
- min-height: 48px;
30
+ width: auto;
31
+ min-width: 38px;
32
+ height: 38px;
33
+ min-height: 38px;
31
34
  align-items: center;
32
- padding: var(--memori-spacing-sm) var(--memori-spacing-md);
33
- border: 1px solid var(--memori-copy-border);
34
- border-radius: 0.5rem;
35
+ padding: 8px 12px;
36
+ border: 1px solid color-mix(in srgb, var(--memori-text-color, #111827) 16%, transparent);
37
+ border-radius: var(--memori-radius-box, 8px);
38
+ background: transparent;
35
39
  border-bottom-right-radius: 0px;
36
40
  border-top-right-radius: 0px;
37
41
  color: var(--memori-text-color);
@@ -40,7 +44,7 @@
40
44
  font-weight: var(--memori-text-weight-medium);
41
45
  gap: var(--memori-spacing-sm);
42
46
  line-height: 1.4;
43
- transition: all 0.2s ease;
47
+ transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
44
48
  }
45
49
 
46
50
  .memori-copy-button:disabled {
@@ -54,11 +58,13 @@
54
58
  }
55
59
 
56
60
  .memori-copy-button:hover:not(:disabled) {
57
- border-color: color-mix(in oklch, var(--memori-primary) 28%, var(--memori-border-color));
61
+ border-color: color-mix(in srgb, var(--memori-text-color, #111827) 16%, transparent);
62
+ background: color-mix(in srgb, var(--memori-text-color, #111827) 8%, transparent);
58
63
  }
59
64
 
60
65
  .memori-copy-button:active:not(:disabled) {
61
- border-color: color-mix(in oklch, var(--memori-primary) 40%, var(--memori-border-color));
66
+ border-color: color-mix(in srgb, var(--memori-text-color, #111827) 22%, transparent);
67
+ background: color-mix(in srgb, var(--memori-text-color, #111827) 12%, transparent);
62
68
  }
63
69
 
64
70
  .memori-copy-button--success {
@@ -86,12 +92,16 @@
86
92
  position: relative;
87
93
  display: inline-flex;
88
94
  overflow: hidden;
89
- min-height: 48px;
95
+ width: 38px;
96
+ min-width: 38px;
97
+ height: 38px;
98
+ min-height: 38px;
90
99
  align-items: center;
91
- padding: var(--memori-spacing-sm) var(--memori-spacing-md);
92
- padding-right: calc(var(--memori-spacing-sm) + var(--memori-spacing-xs));
93
- border: 1px solid var(--memori-copy-border);
94
- border-radius: 0.5rem;
100
+ justify-content: center;
101
+ padding: 8px;
102
+ border: 1px solid color-mix(in srgb, var(--memori-text-color, #111827) 16%, transparent);
103
+ border-radius: var(--memori-radius-box, 8px);
104
+ background: transparent;
95
105
  border-bottom-left-radius: 0px !important;
96
106
  border-top-left-radius: 0px !important;
97
107
  color: var(--memori-text-color);
@@ -100,7 +110,12 @@
100
110
  font-weight: var(--memori-text-weight-medium);
101
111
  gap: var(--memori-spacing-sm);
102
112
  line-height: 1.4;
103
- transition: all 0.2s ease;
113
+ transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
114
+ }
115
+
116
+ .memori-copy-button--dropdown:hover:not(:disabled) {
117
+ border-color: color-mix(in srgb, var(--memori-text-color, #111827) 16%, transparent);
118
+ background: color-mix(in srgb, var(--memori-text-color, #111827) 8%, transparent);
104
119
  }
105
120
 
106
121
  /* Button Icons */
@@ -439,7 +454,9 @@
439
454
 
440
455
  .memori-copy-button,
441
456
  .memori-copy-button--dropdown {
442
- padding: calc(var(--memori-spacing-xs) + 2px) calc(var(--memori-spacing-sm) + var(--memori-spacing-xs));
457
+ height: 38px;
458
+ min-height: 38px;
459
+ padding: 8px;
443
460
  font-size: 13px;
444
461
  }
445
462