@memori.ai/memori-react 8.4.2 → 8.5.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.
- package/CHANGELOG.md +13 -0
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +0 -4
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.d.ts +1 -0
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +3 -3
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +110 -8
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js +3 -0
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.js +42 -38
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +1 -2
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/types.d.ts +2 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +428 -15
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.d.ts +1 -0
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +47 -8
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +150 -0
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.d.ts +9 -0
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.js +35 -0
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.js.map +1 -0
- package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +2 -0
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.d.ts +2 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +15 -26
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/context/ArtifactContext.js +1 -5
- package/dist/components/MemoriArtifactSystem/context/ArtifactContext.js.map +1 -1
- package/dist/components/icons/Close.d.ts +2 -1
- package/dist/components/icons/Close.js +1 -1
- package/dist/components/icons/Close.js.map +1 -1
- package/dist/components/icons/MenuVertical.d.ts +7 -0
- package/dist/components/icons/MenuVertical.js +6 -0
- package/dist/components/icons/MenuVertical.js.map +1 -0
- package/dist/components/layouts/Chat.js +1 -1
- package/dist/components/layouts/Chat.js.map +1 -1
- package/dist/components/layouts/FullPage.js +1 -1
- package/dist/components/layouts/FullPage.js.map +1 -1
- package/dist/components/layouts/ZoomedFullBody.js +1 -1
- package/dist/components/layouts/ZoomedFullBody.js.map +1 -1
- package/dist/components/layouts/chat.css +67 -80
- package/dist/components/ui/Drawer.d.ts +1 -0
- package/dist/components/ui/Drawer.js +2 -2
- package/dist/components/ui/Drawer.js.map +1 -1
- package/dist/locales/de.json +37 -1
- package/dist/locales/en.json +37 -1
- package/dist/locales/es.json +37 -1
- package/dist/locales/fr.json +37 -1
- package/dist/locales/it.json +37 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +0 -4
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.d.ts +1 -0
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +3 -3
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +110 -8
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js +3 -0
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.js +42 -38
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +1 -2
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/types.d.ts +2 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +428 -15
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.d.ts +1 -0
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +48 -9
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +150 -0
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.d.ts +9 -0
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.js +32 -0
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.js.map +1 -0
- package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +2 -0
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.d.ts +2 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +16 -27
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/context/ArtifactContext.js +1 -5
- package/esm/components/MemoriArtifactSystem/context/ArtifactContext.js.map +1 -1
- package/esm/components/icons/Close.d.ts +2 -1
- package/esm/components/icons/Close.js +1 -1
- package/esm/components/icons/Close.js.map +1 -1
- package/esm/components/icons/MenuVertical.d.ts +7 -0
- package/esm/components/icons/MenuVertical.js +4 -0
- package/esm/components/icons/MenuVertical.js.map +1 -0
- package/esm/components/layouts/Chat.js +1 -1
- package/esm/components/layouts/Chat.js.map +1 -1
- package/esm/components/layouts/FullPage.js +1 -1
- package/esm/components/layouts/FullPage.js.map +1 -1
- package/esm/components/layouts/ZoomedFullBody.js +1 -1
- package/esm/components/layouts/ZoomedFullBody.js.map +1 -1
- package/esm/components/layouts/chat.css +67 -80
- package/esm/components/ui/Drawer.d.ts +1 -0
- package/esm/components/ui/Drawer.js +2 -2
- package/esm/components/ui/Drawer.js.map +1 -1
- package/esm/locales/de.json +37 -1
- package/esm/locales/en.json +37 -1
- package/esm/locales/es.json +37 -1
- package/esm/locales/fr.json +37 -1
- package/esm/locales/it.json +37 -1
- package/package.json +1 -1
- package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +9 -0
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +0 -4
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +7 -5
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.tsx +148 -12
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.tsx +3 -0
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/hooks/useCopyArtifact.ts +54 -47
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +1 -2
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/types.ts +2 -1
- package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +428 -15
- package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +240 -42
- package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +150 -0
- package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.tsx +79 -0
- package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +2 -0
- package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +1 -1
- package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +2 -41
- package/src/components/MemoriArtifactSystem/context/ArtifactContext.tsx +1 -5
- package/src/components/icons/Close.tsx +8 -1
- package/src/components/icons/MenuVertical.tsx +29 -0
- package/src/components/layouts/Chat.tsx +3 -1
- package/src/components/layouts/FullPage.tsx +7 -2
- package/src/components/layouts/ZoomedFullBody.tsx +8 -3
- package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +1 -1
- package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +112 -104
- package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +3 -0
- package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +56 -52
- package/src/components/layouts/chat.css +67 -80
- package/src/components/ui/Drawer.tsx +3 -1
- package/src/components/ui/__snapshots__/Alert.test.tsx.snap +3 -0
- package/src/locales/de.json +37 -1
- package/src/locales/en.json +37 -1
- package/src/locales/es.json +37 -1
- package/src/locales/fr.json +37 -1
- package/src/locales/it.json +38 -1
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
/* Override drawer width for ArtifactDrawer */
|
|
21
21
|
.memori-artifact-panel-drawer {
|
|
22
22
|
--memori-drawer--width-lg: 46%;
|
|
23
|
+
/* Ensure drawer doesn't block left side chat interaction */
|
|
24
|
+
pointer-events: none;
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
/* Main Drawer Container (Mobile Only) */
|
|
@@ -31,6 +33,7 @@
|
|
|
31
33
|
|
|
32
34
|
.memori-artifact-panel-drawer > div > div > div {
|
|
33
35
|
box-shadow: rgba(100, 100, 111, 0.2) 0px 7px 29px 0px;
|
|
36
|
+
pointer-events: auto;
|
|
34
37
|
}
|
|
35
38
|
/* Web Split Panel Container */
|
|
36
39
|
.memori-artifact-panel {
|
|
@@ -154,7 +157,7 @@
|
|
|
154
157
|
.memori-artifact-panel--close-icon {
|
|
155
158
|
width: 18px;
|
|
156
159
|
height: 18px;
|
|
157
|
-
|
|
160
|
+
color: #000 !important;
|
|
158
161
|
}
|
|
159
162
|
|
|
160
163
|
/* Web Split Panel Content */
|
|
@@ -346,19 +349,263 @@
|
|
|
346
349
|
margin-right: 0.5rem;
|
|
347
350
|
}
|
|
348
351
|
|
|
349
|
-
.memori-artifact-drawer--close {
|
|
350
|
-
position: absolute;
|
|
351
|
-
z-index: 10;
|
|
352
|
-
top: 1.5rem;
|
|
353
|
-
right: 1.5rem;
|
|
354
|
-
margin-left: 0.5rem;
|
|
355
|
-
}
|
|
356
352
|
|
|
357
353
|
.memori-artifact-drawer-fullscreen {
|
|
358
354
|
display: flex;
|
|
359
355
|
margin-left: 0.5rem;
|
|
360
356
|
}
|
|
361
357
|
|
|
358
|
+
/* New Header Actions Layout */
|
|
359
|
+
.memori-artifact-drawer-header-actions {
|
|
360
|
+
display: flex;
|
|
361
|
+
align-items: center;
|
|
362
|
+
justify-content: space-between;
|
|
363
|
+
padding: 1rem 1.5rem;
|
|
364
|
+
border-bottom: 1px solid var(--artifact-drawer-border);
|
|
365
|
+
background: var(--artifact-drawer-bg);
|
|
366
|
+
gap: 1rem;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
/* View Mode Toggle */
|
|
370
|
+
.memori-artifact-view-toggle {
|
|
371
|
+
display: flex;
|
|
372
|
+
overflow: hidden;
|
|
373
|
+
align-items: center;
|
|
374
|
+
border: 1px solid var(--artifact-drawer-border);
|
|
375
|
+
border-radius: 8px;
|
|
376
|
+
background: var(--artifact-drawer-bg);
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
.memori-artifact-toggle-button {
|
|
380
|
+
display: flex;
|
|
381
|
+
min-width: 40px;
|
|
382
|
+
height: 36px;
|
|
383
|
+
align-items: center;
|
|
384
|
+
justify-content: center;
|
|
385
|
+
padding: 8px 12px;
|
|
386
|
+
border: none;
|
|
387
|
+
background: transparent;
|
|
388
|
+
color: var(--artifact-drawer-text-muted);
|
|
389
|
+
cursor: pointer;
|
|
390
|
+
transition: all 0.2s ease;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.memori-artifact-toggle-button:hover {
|
|
394
|
+
background: rgba(0, 123, 255, 0.1);
|
|
395
|
+
color: var(--artifact-drawer-accent);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
.memori-artifact-toggle-button--active {
|
|
399
|
+
border: 1px solid var(--artifact-drawer-border);
|
|
400
|
+
background: var(--artifact-drawer-bg);
|
|
401
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
402
|
+
color: var(--artifact-drawer-text);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
.memori-artifact-toggle-icon {
|
|
406
|
+
width: 16px;
|
|
407
|
+
height: 16px;
|
|
408
|
+
fill: currentColor;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/* Refresh Button */
|
|
412
|
+
.memori-artifact-refresh-button {
|
|
413
|
+
display: flex;
|
|
414
|
+
width: 36px;
|
|
415
|
+
height: 36px;
|
|
416
|
+
align-items: center;
|
|
417
|
+
justify-content: center;
|
|
418
|
+
border: 1px solid var(--artifact-drawer-border);
|
|
419
|
+
border-radius: 6px;
|
|
420
|
+
background: var(--artifact-drawer-bg);
|
|
421
|
+
color: var(--artifact-drawer-text-muted);
|
|
422
|
+
transition: all 0.2s ease;
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
.memori-artifact-refresh-button:hover {
|
|
426
|
+
border-color: var(--artifact-drawer-accent);
|
|
427
|
+
background: rgba(0, 123, 255, 0.05);
|
|
428
|
+
color: var(--artifact-drawer-accent);
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
/* Copy Group */
|
|
432
|
+
.memori-artifact-copy-group {
|
|
433
|
+
display: flex;
|
|
434
|
+
overflow: hidden;
|
|
435
|
+
align-items: center;
|
|
436
|
+
border: 1px solid var(--artifact-drawer-border);
|
|
437
|
+
border-radius: 6px;
|
|
438
|
+
background: var(--artifact-drawer-bg);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
.memori-artifact-copy-button {
|
|
442
|
+
display: flex;
|
|
443
|
+
align-items: center;
|
|
444
|
+
padding: 8px 16px;
|
|
445
|
+
border: none;
|
|
446
|
+
border-right: 1px solid var(--artifact-drawer-border);
|
|
447
|
+
background: transparent;
|
|
448
|
+
color: var(--artifact-drawer-text);
|
|
449
|
+
cursor: pointer;
|
|
450
|
+
font-size: 14px;
|
|
451
|
+
font-weight: 500;
|
|
452
|
+
transition: all 0.2s ease;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
.memori-artifact-copy-button:hover {
|
|
456
|
+
background: rgba(0, 123, 255, 0.05);
|
|
457
|
+
color: var(--artifact-drawer-accent);
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
.memori-artifact-copy-button--success {
|
|
461
|
+
background: #f0fdf4;
|
|
462
|
+
color: #15803d;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
.memori-artifact-copy-button--error {
|
|
466
|
+
background: #fef2f2;
|
|
467
|
+
color: #dc2626;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
.memori-artifact-copy-button--loading {
|
|
471
|
+
cursor: wait;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
.memori-artifact-copy-text {
|
|
475
|
+
font-size: 14px;
|
|
476
|
+
font-weight: 500;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
.memori-artifact-copy-dropdown-wrapper {
|
|
480
|
+
position: relative;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
.memori-artifact-copy-dropdown-trigger {
|
|
484
|
+
display: flex;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
.memori-artifact-copy-dropdown-button {
|
|
488
|
+
display: flex;
|
|
489
|
+
width: 36px;
|
|
490
|
+
height: 36px;
|
|
491
|
+
align-items: center;
|
|
492
|
+
justify-content: center;
|
|
493
|
+
padding: 8px 12px;
|
|
494
|
+
border: none;
|
|
495
|
+
background: transparent;
|
|
496
|
+
color: var(--artifact-drawer-text-muted);
|
|
497
|
+
cursor: pointer;
|
|
498
|
+
transition: all 0.2s ease;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
.memori-artifact-copy-dropdown-button:hover {
|
|
502
|
+
background: rgba(0, 123, 255, 0.05);
|
|
503
|
+
color: var(--artifact-drawer-accent);
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
.memori-artifact-copy-chevron {
|
|
507
|
+
width: 12px;
|
|
508
|
+
height: 12px;
|
|
509
|
+
fill: currentColor;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
.memori-artifact-copy-dropdown {
|
|
513
|
+
position: absolute;
|
|
514
|
+
z-index: 1000;
|
|
515
|
+
top: 100%;
|
|
516
|
+
right: 0;
|
|
517
|
+
min-width: 200px;
|
|
518
|
+
border: 1px solid var(--artifact-drawer-border);
|
|
519
|
+
border-radius: 6px;
|
|
520
|
+
margin-top: 4px;
|
|
521
|
+
background: var(--artifact-drawer-bg);
|
|
522
|
+
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
.memori-artifact-copy-dropdown-list {
|
|
526
|
+
padding: 4px 0;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
.memori-artifact-copy-dropdown-item {
|
|
530
|
+
display: flex;
|
|
531
|
+
width: 100%;
|
|
532
|
+
align-items: center;
|
|
533
|
+
padding: 8px 16px;
|
|
534
|
+
border: none;
|
|
535
|
+
background: transparent;
|
|
536
|
+
color: var(--artifact-drawer-text);
|
|
537
|
+
cursor: pointer;
|
|
538
|
+
font-size: 14px;
|
|
539
|
+
text-align: left;
|
|
540
|
+
transition: all 0.2s ease;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
.memori-artifact-copy-dropdown-item:hover,
|
|
544
|
+
.memori-artifact-copy-dropdown-item--active {
|
|
545
|
+
background: rgba(0, 123, 255, 0.05);
|
|
546
|
+
color: var(--artifact-drawer-accent);
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
.memori-artifact-copy-dropdown-text {
|
|
550
|
+
margin-left: 8px;
|
|
551
|
+
font-size: 14px;
|
|
552
|
+
font-weight: 500;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
/* Share Button */
|
|
556
|
+
.memori-artifact-share-button {
|
|
557
|
+
display: flex;
|
|
558
|
+
align-items: center;
|
|
559
|
+
padding: 8px 16px;
|
|
560
|
+
border: 1px solid var(--artifact-drawer-border);
|
|
561
|
+
border-radius: 6px;
|
|
562
|
+
background: var(--artifact-drawer-bg);
|
|
563
|
+
color: var(--artifact-drawer-text);
|
|
564
|
+
cursor: pointer;
|
|
565
|
+
font-size: 14px;
|
|
566
|
+
font-weight: 500;
|
|
567
|
+
gap: 8px;
|
|
568
|
+
transition: all 0.2s ease;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
.memori-artifact-share-button:hover {
|
|
572
|
+
border-color: var(--artifact-drawer-accent);
|
|
573
|
+
background: var(--artifact-drawer-accent);
|
|
574
|
+
color: white;
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
.memori-artifact-share-text {
|
|
578
|
+
font-size: 14px;
|
|
579
|
+
font-weight: 500;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
/* Close Button */
|
|
583
|
+
.memori-artifact-close-button {
|
|
584
|
+
display: flex;
|
|
585
|
+
width: 36px;
|
|
586
|
+
height: 36px;
|
|
587
|
+
align-items: center;
|
|
588
|
+
justify-content: center;
|
|
589
|
+
border: 1px solid var(--artifact-drawer-border);
|
|
590
|
+
border-radius: 6px;
|
|
591
|
+
background: var(--artifact-drawer-bg);
|
|
592
|
+
color: var(--artifact-drawer-text-muted);
|
|
593
|
+
cursor: pointer;
|
|
594
|
+
transition: all 0.2s ease;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
.memori-artifact-close-button:hover {
|
|
598
|
+
border-color: #ef4444;
|
|
599
|
+
background: #fef2f2;
|
|
600
|
+
color: #ef4444;
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
/* Mobile Actions */
|
|
604
|
+
.memori-artifact-mobile-actions {
|
|
605
|
+
display: none;
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
/* Legacy container for backward compatibility */
|
|
362
609
|
.memori-artifact-drawer-container-actions{
|
|
363
610
|
display: flex;
|
|
364
611
|
flex-flow: row;
|
|
@@ -409,6 +656,18 @@
|
|
|
409
656
|
content: '';
|
|
410
657
|
}
|
|
411
658
|
|
|
659
|
+
.memori-button--more-options{
|
|
660
|
+
padding: 8px 16px;
|
|
661
|
+
border: 1px solid #e1e5e9;
|
|
662
|
+
border-radius: 6px;
|
|
663
|
+
border-top-color: rgb(225, 229, 233);
|
|
664
|
+
border-right-color: rgb(225, 229, 233);
|
|
665
|
+
border-bottom-color: rgb(225, 229, 233);
|
|
666
|
+
border-left-color: rgb(225, 229, 233);
|
|
667
|
+
border-bottom-right-radius: 6px;
|
|
668
|
+
border-top-right-radius: 6px;
|
|
669
|
+
}
|
|
670
|
+
|
|
412
671
|
.memori-artifact-drawer--sidebar {
|
|
413
672
|
width: 300px;
|
|
414
673
|
flex-shrink: 0;
|
|
@@ -439,6 +698,14 @@
|
|
|
439
698
|
font-family: var(--memori-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);
|
|
440
699
|
}
|
|
441
700
|
|
|
701
|
+
.memori-artifact-drawer--close {
|
|
702
|
+
display: flex;
|
|
703
|
+
align-items: center;
|
|
704
|
+
justify-content: center;
|
|
705
|
+
border-radius: 6px;
|
|
706
|
+
/* background: var(--artifact-drawer-bg); */
|
|
707
|
+
margin-left: auto;
|
|
708
|
+
}
|
|
442
709
|
|
|
443
710
|
@media (max-width: 1024px) {
|
|
444
711
|
.memori-artifact-panel-drawer > div > div > div {
|
|
@@ -461,6 +728,19 @@
|
|
|
461
728
|
display: none !important;
|
|
462
729
|
}
|
|
463
730
|
|
|
731
|
+
/* Mobile header actions */
|
|
732
|
+
.memori-artifact-drawer-header-actions {
|
|
733
|
+
display: none;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
.memori-artifact-mobile-actions {
|
|
737
|
+
position: absolute;
|
|
738
|
+
z-index: 1001;
|
|
739
|
+
top: 1rem;
|
|
740
|
+
right: 1rem;
|
|
741
|
+
display: block;
|
|
742
|
+
}
|
|
743
|
+
|
|
464
744
|
/* Mobile drawer styles */
|
|
465
745
|
.memori-artifact-drawer--panel-mobile {
|
|
466
746
|
position: fixed !important;
|
|
@@ -518,13 +798,6 @@
|
|
|
518
798
|
transform: none;
|
|
519
799
|
}
|
|
520
800
|
|
|
521
|
-
.memori-artifact-drawer--close {
|
|
522
|
-
position: absolute !important;
|
|
523
|
-
top: 1.5rem !important;
|
|
524
|
-
right: 1.5rem !important;
|
|
525
|
-
margin: 0 !important;
|
|
526
|
-
}
|
|
527
|
-
|
|
528
801
|
.memori-artifact-drawer--content {
|
|
529
802
|
overflow: hidden;
|
|
530
803
|
min-height: 0;
|
|
@@ -621,6 +894,146 @@
|
|
|
621
894
|
background-color: rgba(0, 0, 0, 0.5) !important;
|
|
622
895
|
}
|
|
623
896
|
|
|
897
|
+
/* Top Right Header Section */
|
|
898
|
+
.memori-artifact-drawer-top-right {
|
|
899
|
+
z-index: 1001;
|
|
900
|
+
display: flex;
|
|
901
|
+
align-items: center;
|
|
902
|
+
gap: 0.5rem;
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
/* Mobile Actions Dropdown */
|
|
906
|
+
.memori-mobile-actions-menu {
|
|
907
|
+
position: relative;
|
|
908
|
+
display: inline-block;
|
|
909
|
+
margin-left: auto;
|
|
910
|
+
}
|
|
911
|
+
|
|
912
|
+
.memori-mobile-actions-trigger {
|
|
913
|
+
display: inline-block;
|
|
914
|
+
}
|
|
915
|
+
|
|
916
|
+
.memori-mobile-dropdown {
|
|
917
|
+
position: absolute;
|
|
918
|
+
z-index: 1000;
|
|
919
|
+
top: 100%;
|
|
920
|
+
right: 0;
|
|
921
|
+
min-width: 200px;
|
|
922
|
+
border: 1px solid var(--artifact-drawer-border);
|
|
923
|
+
border-radius: var(--artifact-drawer-radius);
|
|
924
|
+
margin-top: 0.5rem;
|
|
925
|
+
backdrop-filter: blur(10px);
|
|
926
|
+
background: var(--artifact-drawer-bg);
|
|
927
|
+
box-shadow: var(--artifact-drawer-shadow);
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
/* Mobile-specific dropdown positioning */
|
|
931
|
+
@media (max-width: 768px) {
|
|
932
|
+
|
|
933
|
+
.memori-artifact-drawer--close{
|
|
934
|
+
margin-left: 0;
|
|
935
|
+
}
|
|
936
|
+
|
|
937
|
+
.memori-artifact-panel--header{
|
|
938
|
+
margin-bottom: 0.5rem;
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
.memori-mobile-dropdown {
|
|
942
|
+
right: 0;
|
|
943
|
+
left: auto;
|
|
944
|
+
min-width: 180px;
|
|
945
|
+
max-width: calc(100vw - 2rem);
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
.memori-mobile-dropdown-list {
|
|
949
|
+
padding: 0.25rem;
|
|
950
|
+
gap: 0.125rem;
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
.memori-mobile-dropdown .memori-artifact-action-btn {
|
|
954
|
+
min-height: 44px; /* Ensure touch-friendly size */
|
|
955
|
+
padding: 0.625rem 0.75rem;
|
|
956
|
+
font-size: 0.875rem;
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
.memori-mobile-dropdown .memori-artifact-action-text {
|
|
960
|
+
color: var(--artifact-drawer-text);
|
|
961
|
+
font-size: 0.8125rem;
|
|
962
|
+
font-weight: 600;
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
.memori-mobile-dropdown .memori-artifact-action-icon {
|
|
966
|
+
width: 16px;
|
|
967
|
+
height: 16px;
|
|
968
|
+
flex-shrink: 0;
|
|
969
|
+
}
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
.memori-mobile-dropdown-list {
|
|
973
|
+
display: flex;
|
|
974
|
+
flex-direction: column;
|
|
975
|
+
padding: 0.5rem;
|
|
976
|
+
gap: 0.25rem;
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
.memori-mobile-dropdown .memori-artifact-action-btn {
|
|
980
|
+
display: flex;
|
|
981
|
+
width: 100%;
|
|
982
|
+
align-items: center;
|
|
983
|
+
justify-content: flex-start;
|
|
984
|
+
padding: 0.75rem 1rem;
|
|
985
|
+
border: 1px solid transparent;
|
|
986
|
+
border-radius: var(--artifact-drawer-radius);
|
|
987
|
+
background: transparent;
|
|
988
|
+
color: var(--artifact-drawer-text);
|
|
989
|
+
text-align: left;
|
|
990
|
+
transition: all 0.2s ease;
|
|
991
|
+
}
|
|
992
|
+
|
|
993
|
+
.memori-mobile-dropdown .memori-artifact-action-btn:hover {
|
|
994
|
+
border-color: var(--memori-primary);
|
|
995
|
+
background: var(--memori-button-hover-bg, rgba(0, 123, 255, 0.1));
|
|
996
|
+
color: var(--memori-primary);
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
.memori-mobile-dropdown .memori-artifact-action-text {
|
|
1000
|
+
overflow: visible;
|
|
1001
|
+
margin-left: 0.5rem;
|
|
1002
|
+
color: inherit;
|
|
1003
|
+
font-size: 0.875rem;
|
|
1004
|
+
font-weight: 500;
|
|
1005
|
+
white-space: nowrap;
|
|
1006
|
+
}
|
|
1007
|
+
|
|
1008
|
+
/* Mobile Dropdown Animations */
|
|
1009
|
+
.memori-mobile-dropdown-enter {
|
|
1010
|
+
transition: all 0.2s ease-out;
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
.memori-mobile-dropdown-enter-from {
|
|
1014
|
+
opacity: 0;
|
|
1015
|
+
transform: translateY(-10px) scale(0.95);
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
.memori-mobile-dropdown-enter-to {
|
|
1019
|
+
opacity: 1;
|
|
1020
|
+
transform: translateY(0) scale(1);
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
.memori-mobile-dropdown-leave {
|
|
1024
|
+
transition: all 0.15s ease-in;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
.memori-mobile-dropdown-leave-from {
|
|
1028
|
+
opacity: 1;
|
|
1029
|
+
transform: translateY(0) scale(1);
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
.memori-mobile-dropdown-leave-to {
|
|
1033
|
+
opacity: 0;
|
|
1034
|
+
transform: translateY(-10px) scale(0.95);
|
|
1035
|
+
}
|
|
1036
|
+
|
|
624
1037
|
/* Focus and Accessibility */
|
|
625
1038
|
.memori-artifact-drawer--panel:focus {
|
|
626
1039
|
outline: none;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useState, useCallback } from 'react';
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React, { useState, useCallback, useEffect } from 'react';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import { Transition, Menu } from '@headlessui/react';
|
|
4
5
|
import Button from '../../../ui/Button';
|
|
5
6
|
import Close from '../../../icons/Close';
|
|
6
7
|
import ArtifactActions from '../ArtifactActions/ArtifactActions';
|
|
@@ -8,13 +9,32 @@ import { useArtifact } from '../../context/ArtifactContext';
|
|
|
8
9
|
import ArtifactPreview from '../ArtifactPreview/ArtifactPreview';
|
|
9
10
|
import cx from 'classnames';
|
|
10
11
|
import Drawer from '../../../ui/Drawer';
|
|
11
|
-
import
|
|
12
|
-
import
|
|
12
|
+
import MenuVertical from '../../../icons/MenuVertical';
|
|
13
|
+
import Download from '../../../icons/Download';
|
|
14
|
+
import Link from '../../../icons/Link';
|
|
15
|
+
import PrintIcon from '../../../icons/Print';
|
|
16
|
+
import { useCopyArtifact } from '../ArtifactActions/hooks/useCopyArtifact';
|
|
17
|
+
import TabSwitch from './components/TabSwitch';
|
|
18
|
+
import './components/TabSwitch.css';
|
|
13
19
|
const ArtifactDrawer = ({ isChatLogPanel = false, }) => {
|
|
14
20
|
const { state, openArtifact, closeArtifact, toggleFullscreen } = useArtifact();
|
|
15
21
|
const { t } = useTranslation();
|
|
16
22
|
const [showHistory, setShowHistory] = useState(false);
|
|
17
23
|
const [isAnimating, setIsAnimating] = useState(false);
|
|
24
|
+
const [isMobile, setIsMobile] = useState(false);
|
|
25
|
+
const [activeTab, setActiveTab] = useState('preview');
|
|
26
|
+
const handleTabChange = useCallback((tab) => {
|
|
27
|
+
setActiveTab(tab);
|
|
28
|
+
}, [activeTab]);
|
|
29
|
+
const { copyState, formats, handleCopy: handleCopyFormat, handleCopyClick, } = useCopyArtifact(state.currentArtifact || { content: '', mimeType: 'text/plain' }, () => console.log('Copy completed'), () => console.log('Download completed'), () => console.log('Print completed'));
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
const checkMobile = () => {
|
|
32
|
+
setIsMobile(window.innerWidth <= 768);
|
|
33
|
+
};
|
|
34
|
+
checkMobile();
|
|
35
|
+
window.addEventListener('resize', checkMobile);
|
|
36
|
+
return () => window.removeEventListener('resize', checkMobile);
|
|
37
|
+
}, []);
|
|
18
38
|
const handleCopy = useCallback(async () => {
|
|
19
39
|
if (!state.currentArtifact)
|
|
20
40
|
return;
|
|
@@ -60,9 +80,14 @@ const ArtifactDrawer = ({ isChatLogPanel = false, }) => {
|
|
|
60
80
|
const toggleHistory = useCallback(() => {
|
|
61
81
|
setShowHistory(prev => !prev);
|
|
62
82
|
}, []);
|
|
83
|
+
const handleMobileOpenExternal = useCallback(() => {
|
|
84
|
+
handleOpenExternal();
|
|
85
|
+
}, [handleOpenExternal]);
|
|
63
86
|
if (!state.currentArtifact) {
|
|
64
87
|
return null;
|
|
65
88
|
}
|
|
89
|
+
const hasPreview = state.currentArtifact.mimeType === 'html' ||
|
|
90
|
+
state.currentArtifact.mimeType === 'markdown';
|
|
66
91
|
const ContentContainer = useCallback(({ children }) => {
|
|
67
92
|
if (isChatLogPanel) {
|
|
68
93
|
return (_jsx("div", { style: isChatLogPanel ? { minHeight: '75vh', maxHeight: '75vh' } : {}, className: "memori-artifact-panel", children: children }));
|
|
@@ -70,14 +95,28 @@ const ArtifactDrawer = ({ isChatLogPanel = false, }) => {
|
|
|
70
95
|
else {
|
|
71
96
|
return (_jsx(Drawer, { open: state.isDrawerOpen, onClose: handleClose, placement: "right", width: "50%", className: state.isFullscreen
|
|
72
97
|
? 'memori-artifact-panel-drawer-fullscreen'
|
|
73
|
-
: 'memori-artifact-panel-drawer', widthMd: "100%", widthLg: "50%", closable: false, animated: true, showBackdrop: false, confirmDialogTitle: t('artifact.confirmDialogTitle') ||
|
|
98
|
+
: 'memori-artifact-panel-drawer', widthMd: "100%", widthLg: "50%", closable: false, animated: true, showBackdrop: false, preventBackdropClose: true, confirmDialogTitle: t('artifact.confirmDialogTitle') ||
|
|
74
99
|
'Are you sure you want to close this artifact?', confirmDialogMessage: t('artifact.confirmDialogMessage') ||
|
|
75
100
|
'This action cannot be undone.', children: children }));
|
|
76
101
|
}
|
|
77
|
-
}, [isChatLogPanel, handleClose, state.isDrawerOpen, state.isFullscreen
|
|
78
|
-
return (_jsxs(ContentContainer, { children: [
|
|
79
|
-
|
|
80
|
-
|
|
102
|
+
}, [isChatLogPanel, handleClose, state.isDrawerOpen, state.isFullscreen]);
|
|
103
|
+
return (_jsxs(ContentContainer, { children: [_jsx("div", { className: "memori-artifact-drawer-container-actions", children: !isMobile && (_jsxs(_Fragment, { children: [_jsx(TabSwitch, { activeTab: activeTab, onTabChange: handleTabChange, hasPreview: hasPreview }), _jsx(ArtifactActions, { artifact: state.currentArtifact, onCopy: handleCopy, onDownload: handleDownload, loading: false, onPrint: handlePrint, onOpenExternal: handleOpenExternal, isMobile: isMobile }), _jsx(Button, { onClick: closeArtifact, className: cx('memori-artifact-drawer--close', 'memori-button--icon-only'), ghost: true, title: t('artifact.close') || 'Close', children: _jsx(Close, { className: "memori-artifact-panel--close-icon" }) })] })) }), _jsxs("div", { className: "memori-artifact-drawer-top-right", children: [isMobile && (_jsxs(_Fragment, { children: [_jsx(TabSwitch, { activeTab: activeTab, onTabChange: handleTabChange, hasPreview: hasPreview }), _jsxs(Menu, { as: "div", className: "memori-mobile-actions-menu", children: [_jsx(Menu.Button, { as: "div", className: "memori-mobile-actions-trigger", children: _jsx(Button, { className: cx('memori-button', 'memori-button--more-options', 'memori-button--icon-only'), ghost: true, title: t('artifact.actions') || 'Actions', children: _jsx(MenuVertical, { className: "memori-artifact-action-icon" }) }) }), _jsx(Transition, { as: React.Fragment, enter: "memori-mobile-dropdown-enter", enterFrom: "memori-mobile-dropdown-enter-from", enterTo: "memori-mobile-dropdown-enter-to", leave: "memori-mobile-dropdown-leave", leaveFrom: "memori-mobile-dropdown-leave-from", leaveTo: "memori-mobile-dropdown-leave-to", children: _jsx(Menu.Items, { className: "memori-mobile-dropdown", children: _jsxs("div", { className: "memori-mobile-dropdown-list", children: [_jsx(Button, { onClick: handleCopy, disabled: false, className: "memori-artifact-action-btn", ghost: true, title: t('artifact.copy') || 'Copy', children: _jsx("span", { className: "memori-artifact-action-text", children: t('artifact.copy') || 'Copy' }) }), formats.map(format => {
|
|
104
|
+
const getIcon = () => {
|
|
105
|
+
switch (format.action) {
|
|
106
|
+
case 'copy':
|
|
107
|
+
return (_jsx(Link, { className: "memori-artifact-action-icon" }));
|
|
108
|
+
case 'download':
|
|
109
|
+
return (_jsx(Download, { className: "memori-artifact-action-icon" }));
|
|
110
|
+
case 'print':
|
|
111
|
+
case 'pdf':
|
|
112
|
+
return (_jsx(PrintIcon, { className: "memori-artifact-action-icon" }));
|
|
113
|
+
default:
|
|
114
|
+
return (_jsx(Link, { className: "memori-artifact-action-icon" }));
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
return (_jsx(Button, { onClick: () => handleCopyFormat(format), disabled: copyState.loading &&
|
|
118
|
+
copyState.activeFormat === format.id, className: "memori-artifact-action-btn", ghost: true, icon: getIcon(), title: format.label, children: _jsx("span", { className: "memori-artifact-action-text", children: format.label }) }, format.id));
|
|
119
|
+
}), _jsx(Button, { onClick: handleMobileOpenExternal, disabled: false, className: "memori-artifact-action-btn", ghost: true, icon: _jsx(Link, { className: "memori-artifact-action-icon" }), title: t('artifact.external') || 'External', children: _jsx("span", { className: "memori-artifact-action-text", children: t('artifact.external') || 'External' }) })] }) }) })] })] })), isMobile && (_jsx(Button, { onClick: closeArtifact, className: cx('memori-artifact-drawer--close', 'memori-button--icon-only'), ghost: true, title: t('artifact.close') || 'Close', children: _jsx(Close, { className: "memori-artifact-panel--close-icon" }) }))] }), _jsx("div", { className: "memori-artifact-panel--header" }), _jsx("div", { className: "memori-artifact-panel--content", children: _jsx("div", { className: "memori-artifact-panel--main", children: _jsx(ArtifactPreview, { artifact: state.currentArtifact, activeTab: activeTab }) }) })] }));
|
|
81
120
|
};
|
|
82
121
|
export default ArtifactDrawer;
|
|
83
122
|
//# sourceMappingURL=ArtifactDrawer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArtifactDrawer.js","sourceRoot":"","sources":["../../../../../src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx"],"names":[],"mappings":";AAMA,
|
|
1
|
+
{"version":3,"file":"ArtifactDrawer.js","sourceRoot":"","sources":["../../../../../src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx"],"names":[],"mappings":"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"}
|