@memori.ai/memori-react 9.0.0-alpha.7 → 9.0.0-alpha.9

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 (102) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/components/Chat/Chat.css +48 -7
  3. package/dist/components/Chat/Chat.d.ts +1 -0
  4. package/dist/components/Chat/Chat.js +7 -2
  5. package/dist/components/Chat/Chat.js.map +1 -1
  6. package/dist/components/ChatBubble/ChatBubble.css +16 -14
  7. package/dist/components/ChatInputs/ChatInputs.css +233 -100
  8. package/dist/components/ChatTextArea/ChatTextArea.css +28 -6
  9. package/dist/components/KnownFacts/KnownFacts.js +2 -2
  10. package/dist/components/KnownFacts/KnownFacts.js.map +1 -1
  11. package/dist/components/MemoriWidget/MemoriWidget.css +1 -3
  12. package/dist/components/MemoriWidget/MemoriWidget.js +18 -15
  13. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  14. package/dist/components/MicrophoneButton/MicrophoneButton.css +50 -18
  15. package/dist/components/PoweredBy/PoweredBy.css +10 -2
  16. package/dist/components/UploadButton/UploadImages/UploadImages.js +1 -1
  17. package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  18. package/dist/components/layouts/Chat.js +5 -5
  19. package/dist/components/layouts/Chat.js.map +1 -1
  20. package/dist/components/layouts/HiddenChat.js +10 -236
  21. package/dist/components/layouts/HiddenChat.js.map +1 -1
  22. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +23 -2
  23. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  24. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +138 -55
  25. package/dist/components/layouts/ZoomedFullBody.js +2 -2
  26. package/dist/components/layouts/ZoomedFullBody.js.map +1 -1
  27. package/dist/components/layouts/chat.css +42 -29
  28. package/dist/components/layouts/fullpage.css +29 -22
  29. package/dist/components/layouts/hidden-chat.css +147 -33
  30. package/dist/components/layouts/zoomed-full-body.css +33 -32
  31. package/dist/helpers/positionPopover.d.ts +1 -0
  32. package/dist/helpers/positionPopover.js +7 -0
  33. package/dist/helpers/positionPopover.js.map +1 -0
  34. package/dist/styles.css +1 -1
  35. package/dist/version.d.ts +1 -1
  36. package/dist/version.js +1 -1
  37. package/esm/components/Chat/Chat.css +48 -7
  38. package/esm/components/Chat/Chat.d.ts +1 -0
  39. package/esm/components/Chat/Chat.js +7 -2
  40. package/esm/components/Chat/Chat.js.map +1 -1
  41. package/esm/components/ChatBubble/ChatBubble.css +16 -14
  42. package/esm/components/ChatInputs/ChatInputs.css +233 -100
  43. package/esm/components/ChatTextArea/ChatTextArea.css +28 -6
  44. package/esm/components/KnownFacts/KnownFacts.js +2 -2
  45. package/esm/components/KnownFacts/KnownFacts.js.map +1 -1
  46. package/esm/components/MemoriWidget/MemoriWidget.css +1 -3
  47. package/esm/components/MemoriWidget/MemoriWidget.js +18 -15
  48. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  49. package/esm/components/MicrophoneButton/MicrophoneButton.css +50 -18
  50. package/esm/components/PoweredBy/PoweredBy.css +10 -2
  51. package/esm/components/UploadButton/UploadImages/UploadImages.js +1 -1
  52. package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  53. package/esm/components/layouts/Chat.js +5 -5
  54. package/esm/components/layouts/Chat.js.map +1 -1
  55. package/esm/components/layouts/HiddenChat.js +12 -238
  56. package/esm/components/layouts/HiddenChat.js.map +1 -1
  57. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +23 -2
  58. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  59. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +138 -55
  60. package/esm/components/layouts/ZoomedFullBody.js +2 -2
  61. package/esm/components/layouts/ZoomedFullBody.js.map +1 -1
  62. package/esm/components/layouts/chat.css +42 -29
  63. package/esm/components/layouts/fullpage.css +29 -22
  64. package/esm/components/layouts/hidden-chat.css +147 -33
  65. package/esm/components/layouts/zoomed-full-body.css +33 -32
  66. package/esm/helpers/positionPopover.d.ts +1 -0
  67. package/esm/helpers/positionPopover.js +4 -0
  68. package/esm/helpers/positionPopover.js.map +1 -0
  69. package/esm/styles.css +1 -1
  70. package/esm/version.d.ts +1 -1
  71. package/esm/version.js +1 -1
  72. package/package.json +1 -1
  73. package/src/components/Chat/Chat.css +48 -7
  74. package/src/components/Chat/Chat.tsx +11 -0
  75. package/src/components/ChatBubble/ChatBubble.css +16 -14
  76. package/src/components/ChatInputs/ChatInputs.css +233 -100
  77. package/src/components/ChatTextArea/ChatTextArea.css +28 -6
  78. package/src/components/KnownFacts/KnownFacts.tsx +2 -0
  79. package/src/components/MemoriWidget/MemoriWidget.css +1 -3
  80. package/src/components/MemoriWidget/MemoriWidget.tsx +397 -384
  81. package/src/components/MicrophoneButton/MicrophoneButton.css +50 -18
  82. package/src/components/PoweredBy/PoweredBy.css +10 -2
  83. package/src/components/UploadButton/UploadImages/UploadImages.tsx +1 -1
  84. package/src/components/layouts/Chat.tsx +42 -44
  85. package/src/components/layouts/HiddenChat.tsx +16 -413
  86. package/src/components/layouts/WebsiteAssistant/WebsiteAssistant.tsx +59 -15
  87. package/src/components/layouts/WebsiteAssistant/website-assistant.css +138 -55
  88. package/src/components/layouts/ZoomedFullBody.tsx +3 -1
  89. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +227 -236
  90. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +30 -40
  91. package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +165 -66
  92. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +15 -20
  93. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +153 -158
  94. package/src/components/layouts/chat.css +42 -29
  95. package/src/components/layouts/fullpage.css +29 -22
  96. package/src/components/layouts/hidden-chat.css +147 -33
  97. package/src/components/layouts/layouts.stories.tsx +1 -0
  98. package/src/components/layouts/zoomed-full-body.css +33 -32
  99. package/src/helpers/positionPopover.test.ts +33 -0
  100. package/src/helpers/positionPopover.ts +13 -0
  101. package/src/styles.css +34 -13
  102. package/src/version.ts +1 -1
@@ -27,10 +27,6 @@
27
27
  transition: all 0.3s ease;
28
28
  }
29
29
 
30
- .memori-widget.memori-layout-website_assistant .memori-chat-inputs-wrapper {
31
- margin-bottom: var(--memori-spacing-xl);
32
- }
33
-
34
30
  .memori-website_assistant--trigger-button .memori-blob,
35
31
  .memori-website_assistant--trigger-button .memori-blob .mainDiv,
36
32
  .memori-website_assistant--trigger-button .memori-blob figure {
@@ -113,30 +109,37 @@
113
109
 
114
110
  /* ============================================
115
111
  CLOSE BUTTON
112
+ Matches HiddenChat header close (bordered icon control)
116
113
  ============================================ */
117
114
 
118
- .memori-website_assistant--close-button-wrapper {
119
- position: relative;
120
- z-index: 1001;
121
- flex-shrink: 0;
122
- transition: transform 0.2s ease;
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-box, 0.5rem);
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;
123
132
  }
124
133
 
125
- .memori-website_assistant--close-button-wrapper:hover {
126
- transform: scale(1.1);
134
+ .memori-website_assistant--close-button:hover {
135
+ background: color-mix(in srgb, var(--memori-text-color, #111827) 6%, transparent);
127
136
  }
128
137
 
129
- .memori-website_assistant--close-button-wrapper button.memori-website_assistant--close-button {
130
- width: 44px !important;
131
- min-width: 44px !important;
132
- height: 44px !important;
133
- min-height: 44px !important;
134
- padding: 0.75rem;
135
- border: none;
136
- background-color: var(--memori-main-background);
137
- box-shadow: none;
138
- color: var(--memori-text-color);
139
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
138
+ .memori-website_assistant--close-button .memori-icon-close {
139
+ width: 1.125rem;
140
+ height: 1.125rem;
141
+ fill: none;
142
+ stroke: currentColor;
140
143
  }
141
144
 
142
145
  /* ============================================
@@ -191,6 +194,7 @@
191
194
  height: min(85vh, calc(100vh - var(--memori-spacing-5xl)));
192
195
  padding: 0.5rem 0rem;
193
196
  margin-bottom: 0;
197
+ background: var(--memori-secondary-background);
194
198
  opacity: 1;
195
199
  pointer-events: all;
196
200
  }
@@ -289,30 +293,22 @@
289
293
  background: none;
290
294
  }
291
295
 
296
+ /* Powered-by sits as a static footer under the input on --memori-secondary-background */
292
297
  .memori-website_assistant-layout .memori--powered-by {
298
+ position: relative;
299
+ z-index: 5;
300
+ top: auto;
293
301
  right: auto;
294
- left: 50%;
302
+ bottom: auto;
303
+ left: auto;
304
+ width: 100%;
305
+ flex-shrink: 0;
295
306
  justify-content: center;
307
+ padding: 0.5rem 1rem 0.75rem;
308
+ border-radius: 0;
309
+ margin: 0;
310
+ background: var(--memori-secondary-background);
296
311
  text-align: center;
297
- transform: translateX(-50%);
298
- }
299
-
300
- .memori-widget.memori-layout-website_assistant.memori--avatar-readyplayerme
301
- .memori-website_assistant-layout
302
- .memori--powered-by,
303
- .memori-widget.memori-layout-website_assistant.memori--avatar-readyplayerme-full
304
- .memori-website_assistant-layout
305
- .memori--powered-by,
306
- .memori-widget.memori-layout-website_assistant.memori--avatar-customglb
307
- .memori-website_assistant-layout
308
- .memori--powered-by,
309
- .memori-widget.memori-layout-website_assistant.memori--avatar-customrpm
310
- .memori-website_assistant-layout
311
- .memori--powered-by {
312
- right: auto;
313
- left: 1rem;
314
- justify-content: flex-start;
315
- text-align: left;
316
312
  transform: none;
317
313
  }
318
314
 
@@ -327,6 +323,7 @@
327
323
  right: 0.75rem;
328
324
  padding: 0.5rem;
329
325
  border-radius: var(--memori-radius-box);
326
+ background: var(--memori-secondary-background);
330
327
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
331
328
  text-align: right;
332
329
  }
@@ -361,14 +358,74 @@
361
358
  }
362
359
 
363
360
  .memori-website_assistant-layout--header-row {
364
- position: absolute;
361
+ position: relative;
365
362
  z-index: 1001;
366
- top: 0.75rem;
367
- right: 0.75rem;
368
363
  display: flex;
364
+ width: 100%;
365
+ flex-shrink: 0;
369
366
  align-items: center;
370
- justify-content: flex-end;
371
- gap: 0.5rem;
367
+ justify-content: space-between;
368
+ padding: 0.75rem 1rem;
369
+ border-bottom: 1px solid var(--memori-border-color);
370
+ background: var(--memori-secondary-background);
371
+ gap: 0.75rem;
372
+ }
373
+
374
+ .memori-website_assistant-layout--header-actions {
375
+ display: inline-flex;
376
+ flex: 0 0 auto;
377
+ align-items: center;
378
+ margin-left: auto;
379
+ gap: 0.35rem;
380
+ }
381
+
382
+ .memori-website_assistant-layout .memori-chat-layout--brand {
383
+ display: flex;
384
+ overflow: hidden;
385
+ min-width: 0;
386
+ flex: 1 1 auto;
387
+ align-items: center;
388
+ gap: 0.75rem;
389
+ }
390
+
391
+ .memori-website_assistant-layout .memori-chat-layout--brand-avatar {
392
+ width: 40px;
393
+ height: 40px;
394
+ flex-shrink: 0;
395
+ border: 1px solid rgba(0, 0, 0, 0.06);
396
+ border-radius: 50%;
397
+ object-fit: cover;
398
+ }
399
+
400
+ .memori-website_assistant-layout .memori-chat-layout--brand-text {
401
+ display: flex;
402
+ min-width: 0;
403
+ flex: 1 1 auto;
404
+ flex-direction: column;
405
+ align-items: flex-start;
406
+ gap: 0.125rem;
407
+ }
408
+
409
+ .memori-website_assistant-layout .memori-chat-layout--brand-name {
410
+ display: block;
411
+ overflow: hidden;
412
+ width: 100%;
413
+ min-width: 0;
414
+ max-width: 100%;
415
+ color: var(--memori-text-color, #111);
416
+ font-size: 1rem;
417
+ font-weight: 600;
418
+ line-height: 1.2;
419
+ text-overflow: ellipsis;
420
+ white-space: nowrap;
421
+ }
422
+
423
+ @media (max-width: 480px) {
424
+ .memori-website_assistant-layout .memori-chat-layout--brand {
425
+ min-width: 0;
426
+ max-width: calc(100% - 6.5rem);
427
+ flex: 1 1 auto;
428
+ }
372
429
  }
373
430
 
374
431
  /* Position dropdown below the trigger so it does not cover the share button */
@@ -476,6 +533,7 @@
476
533
  flex: 1;
477
534
  flex-direction: column;
478
535
  padding: 1rem;
536
+ padding-bottom: 0;
479
537
  background-color: var(--memori-secondary-background);
480
538
  }
481
539
 
@@ -486,7 +544,7 @@
486
544
 
487
545
  .memori-website_assistant-layout--controls .memori-chat--history {
488
546
  padding: 0;
489
- margin-top: var(--memori-spacing-3xl);
547
+ /* margin-top: var(--memori-spacing-3xl); */
490
548
  -webkit-backdrop-filter: none;
491
549
  backdrop-filter: none;
492
550
  }
@@ -529,10 +587,41 @@
529
587
  flex: 1;
530
588
  flex-direction: column;
531
589
  padding: 0.75rem;
590
+ padding-bottom: 0;
532
591
  border: 0px !important;
592
+ background: var(--memori-secondary-background);
533
593
  box-shadow: none !important;
534
594
  }
535
595
 
596
+ .memori-website_assistant-layout--controls .memori-chat--content--has-global-background,
597
+ .memori-website_assistant-layout--controls
598
+ .memori-chat--history:has(.memori-chat--content--has-global-background),
599
+ .memori-website_assistant-layout--controls
600
+ .memori-chat--wrapper:has(.memori-chat--content--has-global-background) {
601
+ background: transparent;
602
+ }
603
+
604
+ /* Input bar styles (dark compact pill) live in ChatInputs.css.
605
+ Anchor the bar at the bottom of the assistant panel. */
606
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant-layout--controls .memori-chat--wrapper {
607
+ display: flex;
608
+ min-height: 0;
609
+ flex: 1;
610
+ flex-direction: column;
611
+ }
612
+
613
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant-layout--controls .memori-chat--history {
614
+ min-height: 0;
615
+ flex: 1 1 auto;
616
+ margin-bottom: 0;
617
+ }
618
+
619
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant-layout--controls .memori-chat-inputs-wrapper {
620
+ width: 100%;
621
+ flex-shrink: 0;
622
+ margin-bottom: 0;
623
+ }
624
+
536
625
  /* Tablet and up */
537
626
  @media (min-width: 601px) {
538
627
  .memori-website_assistant-layout--controls .memori--start-panel,
@@ -680,7 +769,7 @@
680
769
  @media (prefers-reduced-motion: reduce) {
681
770
  .memori-website_assistant--trigger,
682
771
  .memori-website_assistant--trigger-button,
683
- .memori-website_assistant--close-button-wrapper,
772
+ .memori-website_assistant--close-button,
684
773
  .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed,
685
774
  .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded,
686
775
  .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded .memori-website_assistant-layout,
@@ -701,10 +790,4 @@
701
790
  width: 72px !important;
702
791
  height: 72px !important;
703
792
  }
704
-
705
- .memori-website_assistant--close-button-wrapper button.memori-website_assistant--close-button {
706
- width: 48px;
707
- height: 48px;
708
- padding: 0.875rem;
709
- }
710
793
  }
@@ -216,7 +216,7 @@ const ZoomedFullBodyLayout: React.FC<LayoutProps> = ({
216
216
  {integrationBackground}
217
217
 
218
218
  <Spin spinning={loading}>
219
- {poweredBy}
219
+ {useSideArtifactChrome && poweredBy}
220
220
 
221
221
  {Header && headerProps && mobileHeaderProps && (
222
222
  <div className="memori-fullpage-top-header">
@@ -340,6 +340,8 @@ const ZoomedFullBodyLayout: React.FC<LayoutProps> = ({
340
340
  )}
341
341
 
342
342
  <div id="extension" />
343
+
344
+ {poweredBy}
343
345
  </div>
344
346
 
345
347
  {/* Chat column — flex:1, shrinks naturally when artifact column grows */}