@memori.ai/memori-react 8.30.0 → 8.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/components/Header/Header.css +45 -0
  3. package/dist/components/Header/Header.d.ts +1 -0
  4. package/dist/components/Header/Header.js +74 -3
  5. package/dist/components/Header/Header.js.map +1 -1
  6. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +5 -17
  7. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
  8. package/dist/components/MemoriWidget/MemoriWidget.js +1 -0
  9. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  10. package/dist/components/PositionPopover/PositionPopover.css +194 -0
  11. package/dist/components/PositionPopover/PositionPopover.d.ts +15 -0
  12. package/dist/components/PositionPopover/PositionPopover.js +181 -0
  13. package/dist/components/PositionPopover/PositionPopover.js.map +1 -0
  14. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +4 -0
  15. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +37 -0
  16. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -0
  17. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +671 -0
  18. package/dist/components/layouts/chat.css +14 -0
  19. package/dist/components/layouts/fullpage.css +2 -0
  20. package/dist/version.d.ts +1 -1
  21. package/dist/version.js +1 -1
  22. package/esm/components/Header/Header.css +45 -0
  23. package/esm/components/Header/Header.d.ts +1 -0
  24. package/esm/components/Header/Header.js +75 -4
  25. package/esm/components/Header/Header.js.map +1 -1
  26. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +5 -17
  27. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
  28. package/esm/components/MemoriWidget/MemoriWidget.js +1 -0
  29. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  30. package/esm/components/PositionPopover/PositionPopover.css +194 -0
  31. package/esm/components/PositionPopover/PositionPopover.d.ts +15 -0
  32. package/esm/components/PositionPopover/PositionPopover.js +178 -0
  33. package/esm/components/PositionPopover/PositionPopover.js.map +1 -0
  34. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +4 -0
  35. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +34 -0
  36. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -0
  37. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +671 -0
  38. package/esm/components/layouts/chat.css +14 -0
  39. package/esm/components/layouts/fullpage.css +2 -0
  40. package/esm/version.d.ts +1 -1
  41. package/esm/version.js +1 -1
  42. package/package.json +3 -4
  43. package/src/components/Header/Header.css +45 -0
  44. package/src/components/Header/Header.stories.tsx +46 -0
  45. package/src/components/Header/Header.tsx +151 -2
  46. package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +71 -0
  47. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +10 -24
  48. package/src/components/MemoriWidget/MemoriWidget.tsx +1 -0
  49. package/src/components/layouts/chat.css +14 -0
  50. package/src/components/layouts/layouts.stories.tsx +14 -14
  51. package/src/version.ts +1 -1
@@ -0,0 +1,671 @@
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: 2147483647;
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
+ ============================================ */
113
+
114
+ .memori-website_assistant--close-button-wrapper {
115
+ position: absolute;
116
+ z-index: 1001;
117
+ top: 0.75rem;
118
+ left: 0.75rem;
119
+ flex-shrink: 0;
120
+ transition: transform 0.2s ease;
121
+ }
122
+
123
+ .memori-website_assistant--close-button-wrapper:hover {
124
+ transform: scale(1.1);
125
+ }
126
+
127
+ .memori-website_assistant--close-button-wrapper button.memori-website_assistant--close-button {
128
+ width: 44px !important;
129
+ min-width: 44px !important;
130
+ height: 44px !important;
131
+ min-height: 44px !important;
132
+ padding: 0.75rem;
133
+ border: 2px solid rgba(130, 70, 175, 0.1);
134
+ -webkit-backdrop-filter: blur(10px);
135
+ backdrop-filter: blur(10px);
136
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1);
137
+ font-size: var(--memori-text-size-large);
138
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
139
+ }
140
+
141
+ /* ============================================
142
+ MAIN CONTAINER (Mobile First)
143
+ ============================================ */
144
+
145
+ .memori-widget.memori-layout-website_assistant {
146
+ position: relative;
147
+ font-size: var(--memori-text-size-small);
148
+ }
149
+
150
+ /*
151
+ * Login and Position drawers are portaled to body by Headless UI.
152
+ * When layout is WEBSITE_ASSISTANT we pass drawerClassName so they sit above the fixed panel.
153
+ */
154
+ .memori-drawer.memori-drawer--above-website-assistant,
155
+ .memori-drawer.memori-drawer--above-website-assistant .memori-drawer--backdrop,
156
+ .memori-drawer.memori-drawer--above-website-assistant .memori-drawer--container {
157
+ z-index: 2147483648;
158
+ }
159
+
160
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed,
161
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
162
+ position: fixed;
163
+ right: 0;
164
+ bottom: 0;
165
+ overflow: hidden;
166
+ width: 100vw;
167
+ max-width: 100vw;
168
+ border-radius: var(--memori-radius-box) var(--memori-radius-box) 0 0;
169
+ -webkit-backdrop-filter: blur(20px);
170
+ backdrop-filter: blur(20px);
171
+ box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.12), 0 -2px 8px rgba(0, 0, 0, 0.08);
172
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
173
+ }
174
+
175
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed {
176
+ overflow: visible;
177
+ height: 0;
178
+ opacity: 0;
179
+ pointer-events: none;
180
+ }
181
+
182
+ /* Ensure trigger button is always visible even when container is collapsed */
183
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed .memori-website_assistant--trigger {
184
+ opacity: 1;
185
+ pointer-events: all;
186
+ visibility: visible;
187
+ }
188
+
189
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
190
+ height: min(85vh, calc(100vh - var(--memori-spacing-5xl)));
191
+ padding: 0.5rem 0rem;
192
+ margin-bottom: 0;
193
+ opacity: 1;
194
+ pointer-events: all;
195
+ }
196
+
197
+ /* Tablet */
198
+ @media (min-width: 601px) {
199
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed,
200
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
201
+ right: 0;
202
+ width: 90vw;
203
+ max-width: 480px;
204
+ border-radius: var(--memori-radius-box) 0 0 0;
205
+ }
206
+
207
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
208
+ height: min(75vh, calc(100vh - var(--memori-spacing-5xl)));
209
+ }
210
+ }
211
+
212
+ /* Desktop */
213
+ @media (min-width: 1024px) {
214
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed,
215
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
216
+ width: 30vw;
217
+ min-width: 400px;
218
+ max-width: 480px;
219
+ border-radius: var(--memori-radius-box) 0 0 0;
220
+ }
221
+
222
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
223
+ height: 100vh;
224
+ border-radius: 0;
225
+ margin-bottom: 0;
226
+ }
227
+ }
228
+
229
+ /* ============================================
230
+ ANIMATIONS
231
+ ============================================ */
232
+
233
+ @keyframes showup {
234
+ 0% {
235
+ opacity: 0;
236
+ transform: translateY(20px) scale(0.95);
237
+ }
238
+ 100% {
239
+ opacity: 1;
240
+ transform: translateY(0) scale(1);
241
+ }
242
+ }
243
+
244
+ @keyframes slideUp {
245
+ from {
246
+ opacity: 0;
247
+ transform: translateY(100%);
248
+ }
249
+ to {
250
+ opacity: 1;
251
+ transform: translateY(0);
252
+ }
253
+ }
254
+
255
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded .memori-website_assistant-layout {
256
+ animation: showup 0.4s cubic-bezier(0.4, 0, 0.2, 1);
257
+ }
258
+
259
+ /* ============================================
260
+ LAYOUT STRUCTURE
261
+ ============================================ */
262
+
263
+ .memori-widget .memori-spin.memori-website_assistant-layout {
264
+ position: relative;
265
+ display: flex;
266
+ height: 100%;
267
+ flex-direction: column;
268
+ }
269
+
270
+ .memori-widget.memori-layout-website_assistant .memori--global-background {
271
+ background: none;
272
+ }
273
+
274
+ .memori-website_assistant-layout .memori--powered-by {
275
+ right: auto;
276
+ left: 0.75rem;
277
+ background-color: transparent !important;
278
+ font-size: 0.75rem;
279
+ opacity: 0.7;
280
+ }
281
+
282
+ /* ============================================
283
+ HEADER
284
+ ============================================ */
285
+
286
+ .memori-website_assistant-layout--header {
287
+ position: absolute;
288
+ z-index: 1000;
289
+ top: 0.75rem;
290
+ right: 0.75rem;
291
+ padding: 0.5rem;
292
+ border-radius: var(--memori-radius-box);
293
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
294
+ text-align: right;
295
+ }
296
+
297
+ .memori-website_assistant-layout--header-hidden {
298
+ display: none;
299
+ }
300
+
301
+ .memori-website_assistant-layout .memori-header {
302
+ z-index: 1000;
303
+ top: 0.75rem;
304
+ right: 0.75rem;
305
+ display: inline-flex;
306
+ width: auto;
307
+ height: auto;
308
+ flex-direction: column;
309
+ padding: 0.5rem;
310
+ gap: 0.5rem;
311
+ }
312
+
313
+ /* Less specific first (no-descending-specificity): single .memori-header--button */
314
+ .memori-website_assistant-layout .memori-header .memori-header--button,
315
+ .memori-website_assistant-layout .memori-header .memori-share-button {
316
+ margin-top: 0;
317
+ margin-right: 0;
318
+ margin-left: auto;
319
+ }
320
+
321
+ /* More specific: adjacent sibling (must come after general .memori-header--button rules) */
322
+ .memori-website_assistant-layout .memori-header .memori-header--button + .memori-header--button {
323
+ margin-top: 0;
324
+ margin-right: 0;
325
+ margin-left: auto;
326
+ }
327
+
328
+ /* Position dropdown below the trigger so it does not cover the share button */
329
+ .memori-widget.memori-layout-website_assistant .memori-share-button .memori-share-button--overlay {
330
+ z-index: 1002;
331
+ top: 100%;
332
+ margin-top: 0.5rem;
333
+ }
334
+
335
+ .memori-widget.memori-layout-website_assistant .memori-header--button--fullscreen {
336
+ display: none;
337
+ }
338
+
339
+ /* ============================================
340
+ AVATAR SECTION
341
+ ============================================ */
342
+
343
+ .memori-website_assistant-layout--avatar {
344
+ position: relative;
345
+ overflow: hidden;
346
+ min-height: 0;
347
+ max-height: 35vh;
348
+ flex: 1;
349
+ /* Prevent avatar/blob from growing unbounded and overlapping header/controls */
350
+ contain: layout style;
351
+ }
352
+
353
+ .memori-website_assistant-layout--avatar .memori--avatar-wrapper {
354
+ position: absolute;
355
+ z-index: 0;
356
+ top: 0;
357
+ left: 0;
358
+ overflow: hidden;
359
+ width: 100%;
360
+ height: 100%;
361
+ }
362
+
363
+ .memori-website_assistant-layout--avatar .memori--blob-container {
364
+ display: block;
365
+ }
366
+
367
+ .memori-website_assistant-layout--avatar .memori-blob {
368
+ z-index: 2;
369
+ }
370
+
371
+ .memori-website_assistant-layout--avatar .memori--avatar-wrapper .avatar-loader {
372
+ display: flex;
373
+ width: 100%;
374
+ height: 100%;
375
+ align-items: center;
376
+ justify-content: center;
377
+ transform: none !important;
378
+ }
379
+
380
+ .memori-layout-website_assistant .memori--avatar-wrapper > div {
381
+ overflow: visible !important;
382
+ width: auto !important;
383
+ height: 100%;
384
+ border-radius: 0;
385
+ }
386
+
387
+ .memori-layout-website_assistant .memori--avatar-wrapper > div canvas + div {
388
+ position: absolute !important;
389
+ width: 100%;
390
+ height: 100%;
391
+ transform: none !important;
392
+ }
393
+
394
+ .memori-layout-website_assistant.memori--avatar-readyplayerme-full .memori--avatar-wrapper > div {
395
+ transform: scale(1.7) translate(0px, 10vh);
396
+ }
397
+
398
+ .memori-website_assistant-layout--avatar .memori--avatar-wrapper canvas {
399
+ width: auto !important;
400
+ max-width: 100%;
401
+ height: 100%;
402
+ object-fit: contain;
403
+ }
404
+
405
+ .memori-website_assistant-layout--avatar .memori--avatar-wrapper .avatar-loader figure {
406
+ text-align: center;
407
+ }
408
+
409
+ .memori-layout-website_assistant.memori--avatar-readyplayerme
410
+ .memori-website_assistant--trigger-button
411
+ .memori-blob
412
+ figure {
413
+ width: 100%;
414
+ }
415
+
416
+ .memori-website_assistant-layout--avatar .memori--avatar-wrapper .avatar-loader .memori-spin--spinner {
417
+ background: none;
418
+ }
419
+
420
+ /* ============================================
421
+ CONTROLS SECTION
422
+ ============================================ */
423
+
424
+ .memori-website_assistant-layout--controls {
425
+ position: relative;
426
+ z-index: 5;
427
+ display: flex;
428
+ min-height: 0;
429
+ flex: 1;
430
+ flex-direction: column;
431
+ padding: 1rem;
432
+ }
433
+
434
+ .memori-website_assistant-layout--controls .memori-chat--history,
435
+ .memori-website_assistant-layout--controls .memori-chat--content {
436
+ background: var(--memori-secondary-background);
437
+ }
438
+
439
+ .memori-website_assistant-layout--controls .memori-chat--history {
440
+ padding: 0;
441
+ margin-top: 0;
442
+ -webkit-backdrop-filter: none;
443
+ backdrop-filter: none;
444
+ }
445
+
446
+ .memori-website_assistant-layout--controls .memori-chat--content {
447
+ padding: 0;
448
+ }
449
+
450
+ .memori-website_assistant-layout--controls .memori-chat--bubble-initial + .memori-chat--bubble-container {
451
+ margin-top: auto;
452
+ }
453
+
454
+ .memori-website_assistant-layout--controls .memori-chat--content .memori-chat--bubble-container:first-of-type {
455
+ margin-top: auto;
456
+ }
457
+
458
+ .memori-website_assistant-layout--controls .memori--start-panel,
459
+ .memori-website_assistant-layout--controls .memori-chat--wrapper {
460
+ width: 100%;
461
+ max-width: 100%;
462
+ padding: 0;
463
+ margin: auto;
464
+ }
465
+
466
+ .memori-website_assistant-layout--controls .memori--start-panel {
467
+ flex: 1;
468
+ align-content: center;
469
+ align-self: center;
470
+ padding: 1rem;
471
+ border: 0px;
472
+ border-radius: var(--memori-radius-box);
473
+ margin: 0.75rem;
474
+ margin-bottom: var(--memori-spacing-2xl) !important;
475
+ box-shadow: none !important;
476
+ }
477
+
478
+ .memori-website_assistant-layout--controls .memori-chat--wrapper {
479
+ display: flex;
480
+ min-height: 0;
481
+ flex: 1;
482
+ flex-direction: column;
483
+ padding: 0.75rem;
484
+ border: 0px !important;
485
+ box-shadow: none !important;
486
+ }
487
+
488
+ /* Tablet and up */
489
+ @media (min-width: 601px) {
490
+ .memori-website_assistant-layout--controls .memori--start-panel,
491
+ .memori-website_assistant-layout--controls .memori-chat--wrapper {
492
+ max-width: 100%;
493
+ }
494
+
495
+ .memori-website_assistant-layout--controls .memori-chat--wrapper {
496
+ padding: 1rem;
497
+ }
498
+
499
+ .memori-website_assistant-layout--controls .memori--start-panel {
500
+ padding: 1.5rem;
501
+ margin: 0 auto;
502
+ }
503
+ }
504
+
505
+ /* Desktop */
506
+ @media (min-width: 1024px) {
507
+ .memori-website_assistant-layout--controls .memori--start-panel,
508
+ .memori-website_assistant-layout--controls .memori-chat--wrapper {
509
+ max-width: 800px;
510
+ }
511
+ }
512
+
513
+ /* ============================================
514
+ CHAT STYLING
515
+ ============================================ */
516
+
517
+ .memori-website_assistant-layout .memori-chat--cover {
518
+ display: none;
519
+ }
520
+
521
+ .memori-website_assistant-layout .memori--cover {
522
+ padding: 0;
523
+ background: none;
524
+ }
525
+
526
+ .memori-website_assistant-layout .memori-chat--bubble,
527
+ .memori-website_assistant-layout .memori-chat--bubble.memori-chat--user-bubble {
528
+ animation: showup 0.3s ease-out;
529
+ opacity: 1;
530
+ transition: all 0.2s ease-in-out;
531
+ }
532
+
533
+ .memori-website_assistant-layout .memori-chat--bubble:hover,
534
+ .memori-website_assistant-layout .memori-chat--bubble.memori-chat--user-bubble:hover {
535
+ opacity: 1;
536
+ transform: translateY(-1px);
537
+ }
538
+
539
+ .memori-website_assistant-layout .memori-chat--bubble p,
540
+ .memori-website_assistant-layout .memori-chat--bubble.memori-chat--user-bubble p {
541
+ opacity: 1;
542
+ }
543
+
544
+ /* ============================================
545
+ OTHER ELEMENTS
546
+ ============================================ */
547
+
548
+ .memori-website_assistant-layout .memori--avatar-toggle {
549
+ display: none;
550
+ width: 100%;
551
+ justify-content: center;
552
+ }
553
+
554
+ .memori-website_assistant-layout .memori--title,
555
+ .memori-website_assistant-layout .memori--description,
556
+ .memori-website_assistant-layout .memori--needsPosition {
557
+ color: var(--memori-text-color);
558
+ }
559
+
560
+ .memori-website_assistant-layout .memori--global-background-image {
561
+ background: none;
562
+ }
563
+
564
+ .memori-website_assistant-layout .memori--description-text,
565
+ .memori-website_assistant-layout .memori--translation-toggle {
566
+ display: none;
567
+ }
568
+
569
+ /* ============================================
570
+ RESPONSIVE ADJUSTMENTS
571
+ ============================================ */
572
+
573
+ @media (max-width: 480px) {
574
+ .memori-website_assistant-layout .memori-send-on-enter-menu {
575
+ display: none;
576
+ }
577
+
578
+ .memori-website_assistant-layout .memori-header--button-settings {
579
+ display: none;
580
+ }
581
+
582
+ .memori-website_assistant-layout--controls {
583
+ padding: 0.75rem;
584
+ }
585
+
586
+ .memori-website_assistant-layout--controls .memori-chat--wrapper {
587
+ padding: 0.5rem;
588
+ }
589
+
590
+ .memori-website_assistant-layout--controls .memori--start-panel {
591
+ padding: 1rem;
592
+ margin: 0.5rem;
593
+ }
594
+ }
595
+
596
+ /* After controls .memori--start-panel rules (no-descending-specificity: 3-class selector wins over 2-class) */
597
+ .memori-widget.memori-layout-website_assistant .memori--start-panel {
598
+ border: none;
599
+ }
600
+
601
+ @media (max-width: 768px) {
602
+ .memori-website_assistant--trigger-button {
603
+ width: 80px !important;
604
+ height: 80px !important;
605
+ -webkit-backdrop-filter: blur(12px);
606
+ backdrop-filter: blur(12px);
607
+ background: rgba(255, 255, 255, 0.25);
608
+ }
609
+
610
+ /* Keep blob container as positioning context and centered in button */
611
+ .memori-website_assistant--trigger-button .memori-blob {
612
+ position: relative !important;
613
+ top: 0 !important;
614
+ display: flex;
615
+ align-items: center;
616
+ justify-content: center;
617
+ }
618
+
619
+ /* Center .mainDiv in button: use percentage translate so blob aligns with button (override Blob.css mobile pixel offsets) */
620
+ .memori-website_assistant--trigger-button .memori-blob .mainDiv {
621
+ top: 50% !important;
622
+ left: 50% !important;
623
+ --memori-blob-x: -50%;
624
+ --memori-blob-y: -50%;
625
+ }
626
+ }
627
+
628
+ @media (max-width: 870px) {
629
+ .memori-website_assistant-layout .memori-header {
630
+ max-width: 64px;
631
+ margin-right: var(--memori-spacing-lg);
632
+ margin-left: auto;
633
+ }
634
+ }
635
+
636
+ /* ============================================
637
+ ACCESSIBILITY & PERFORMANCE
638
+ ============================================ */
639
+
640
+ @media (prefers-reduced-motion: reduce) {
641
+ .memori-website_assistant--trigger,
642
+ .memori-website_assistant--trigger-button,
643
+ .memori-website_assistant--close-button-wrapper,
644
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed,
645
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded,
646
+ .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded .memori-website_assistant-layout,
647
+ .memori-website_assistant-layout .memori-chat--bubble {
648
+ animation: none !important;
649
+ transition: none !important;
650
+ }
651
+ }
652
+
653
+ /* Touch device optimizations */
654
+ @media (hover: none) and (pointer: coarse) {
655
+ .memori-website_assistant--trigger-button {
656
+ width: 80px;
657
+ height: 80px;
658
+ }
659
+
660
+ .memori-website_assistant--trigger-button .memori-blob .mainDiv {
661
+ width: 72px !important;
662
+ height: 72px !important;
663
+ }
664
+
665
+ .memori-website_assistant--close-button-wrapper button.memori-website_assistant--close-button {
666
+ width: 48px;
667
+ height: 48px;
668
+ padding: 0.875rem;
669
+ }
670
+ }
671
+
@@ -18,6 +18,16 @@
18
18
  transition: all 0.05s ease-in-out;
19
19
  }
20
20
 
21
+ .memori-chat-layout--header .memori-header {
22
+ display: inline-flex;
23
+ width: calc(50% - 1rem);
24
+ max-width: 100%;
25
+ flex-wrap: wrap;
26
+ align-items: center;
27
+ justify-content: flex-end;
28
+ gap: 0.2rem;
29
+ }
30
+
21
31
  .memori-chat-layout--header-with-artifact {
22
32
  display: none;
23
33
  }
@@ -144,6 +154,10 @@
144
154
  }
145
155
 
146
156
  @media (max-width: 870px) {
157
+ .memori-chat-layout--header .memori-header {
158
+ width: 100%;
159
+ }
160
+
147
161
  .memori-chat-layout .memori--powered-by {
148
162
  top: 3.5rem;
149
163
  bottom: auto;
@@ -16,7 +16,9 @@
16
16
 
17
17
  /* Header spacing */
18
18
  .memori-widget.memori-layout-fullpage .memori-chat-layout--header {
19
+ min-width: 100%;
19
20
  flex-shrink: 0;
21
+ border-radius: var(--memori-radius-box);
20
22
  margin-bottom: var(--memori-spacing-md);
21
23
  }
22
24
 
package/esm/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "8.30.0";
1
+ export declare const version = "8.31.0";
package/esm/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '8.30.0';
1
+ export const version = '8.31.0';
2
2
  //# sourceMappingURL=version.js.map