@memori.ai/memori-react 7.25.1 → 7.26.1
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 +52 -0
- package/dist/components/Chat/Chat.d.ts +5 -10
- package/dist/components/Chat/Chat.js +3 -3
- package/dist/components/Chat/Chat.js.map +1 -1
- package/dist/components/ChatBubble/ChatBubble.css +10 -0
- package/dist/components/ChatBubble/ChatBubble.d.ts +1 -0
- package/dist/components/ChatBubble/ChatBubble.js +24 -20
- package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
- package/dist/components/ChatBubble/VirtualizedContent/VirtualizedContent.d.ts +7 -0
- package/dist/components/ChatBubble/VirtualizedContent/VirtualizedContent.js +69 -0
- package/dist/components/ChatBubble/VirtualizedContent/VirtualizedContent.js.map +1 -0
- package/dist/components/ChatInputs/ChatInputs.d.ts +6 -10
- package/dist/components/ChatInputs/ChatInputs.js +37 -30
- package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
- package/dist/components/FilePreview/FilePreview.css +169 -140
- package/dist/components/FilePreview/FilePreview.d.ts +2 -6
- package/dist/components/FilePreview/FilePreview.js +58 -5
- package/dist/components/FilePreview/FilePreview.js.map +1 -1
- package/dist/components/MediaWidget/LinkItemWidget.css +1 -0
- package/dist/components/MediaWidget/MediaItemWidget.css +10 -0
- package/dist/components/MediaWidget/MediaItemWidget.d.ts +6 -2
- package/dist/components/MediaWidget/MediaItemWidget.js +49 -11
- package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/dist/components/MediaWidget/MediaWidget.d.ts +3 -1
- package/dist/components/MemoriWidget/MemoriWidget.d.ts +2 -1
- package/dist/components/MemoriWidget/MemoriWidget.js +10 -18
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/components/UploadButton/UploadButton.css +506 -27
- package/dist/components/UploadButton/UploadButton.d.ts +14 -11
- package/dist/components/UploadButton/UploadButton.js +121 -288
- package/dist/components/UploadButton/UploadButton.js.map +1 -1
- package/dist/components/UploadButton/UploadDocuments/UploadDocuments.d.ts +19 -0
- package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +211 -0
- package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -0
- package/dist/components/UploadButton/UploadImages/UploadImages.d.ts +13 -0
- package/dist/components/UploadButton/UploadImages/UploadImages.js +198 -0
- package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -0
- package/dist/components/icons/Bug.d.ts +5 -0
- package/dist/components/icons/Bug.js +6 -0
- package/dist/components/icons/Bug.js.map +1 -0
- package/dist/components/icons/Document.d.ts +5 -0
- package/dist/components/icons/Document.js +10 -0
- package/dist/components/icons/Document.js.map +1 -0
- package/dist/components/icons/Image.d.ts +4 -0
- package/dist/components/icons/Image.js +9 -0
- package/dist/components/icons/Image.js.map +1 -0
- package/dist/components/icons/Preview.d.ts +4 -5
- package/dist/components/icons/Preview.js +5 -2
- package/dist/components/icons/Preview.js.map +1 -1
- package/dist/components/icons/Upload.d.ts +4 -5
- package/dist/components/icons/Upload.js +5 -2
- package/dist/components/icons/Upload.js.map +1 -1
- package/dist/components/layouts/HiddenChat.js +100 -10
- package/dist/components/layouts/HiddenChat.js.map +1 -1
- package/dist/components/layouts/hidden-chat.css +189 -119
- package/dist/components/ui/Card.d.ts +1 -0
- package/dist/components/ui/Card.js +2 -2
- package/dist/components/ui/Card.js.map +1 -1
- package/dist/locales/de.json +16 -0
- package/dist/locales/en.json +24 -0
- package/dist/locales/es.json +16 -0
- package/dist/locales/fr.json +16 -0
- package/dist/locales/it.json +22 -0
- package/esm/components/Chat/Chat.d.ts +5 -10
- package/esm/components/Chat/Chat.js +3 -3
- package/esm/components/Chat/Chat.js.map +1 -1
- package/esm/components/ChatBubble/ChatBubble.css +10 -0
- package/esm/components/ChatBubble/ChatBubble.d.ts +1 -0
- package/esm/components/ChatBubble/ChatBubble.js +24 -20
- package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
- package/esm/components/ChatBubble/VirtualizedContent/VirtualizedContent.d.ts +7 -0
- package/esm/components/ChatBubble/VirtualizedContent/VirtualizedContent.js +67 -0
- package/esm/components/ChatBubble/VirtualizedContent/VirtualizedContent.js.map +1 -0
- package/esm/components/ChatInputs/ChatInputs.d.ts +6 -10
- package/esm/components/ChatInputs/ChatInputs.js +37 -30
- package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
- package/esm/components/FilePreview/FilePreview.css +169 -140
- package/esm/components/FilePreview/FilePreview.d.ts +2 -6
- package/esm/components/FilePreview/FilePreview.js +58 -5
- package/esm/components/FilePreview/FilePreview.js.map +1 -1
- package/esm/components/MediaWidget/LinkItemWidget.css +1 -0
- package/esm/components/MediaWidget/MediaItemWidget.css +10 -0
- package/esm/components/MediaWidget/MediaItemWidget.d.ts +6 -2
- package/esm/components/MediaWidget/MediaItemWidget.js +50 -12
- package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/esm/components/MediaWidget/MediaWidget.d.ts +3 -1
- package/esm/components/MemoriWidget/MemoriWidget.d.ts +2 -1
- package/esm/components/MemoriWidget/MemoriWidget.js +10 -18
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/components/UploadButton/UploadButton.css +506 -27
- package/esm/components/UploadButton/UploadButton.d.ts +14 -11
- package/esm/components/UploadButton/UploadButton.js +122 -289
- package/esm/components/UploadButton/UploadButton.js.map +1 -1
- package/esm/components/UploadButton/UploadDocuments/UploadDocuments.d.ts +19 -0
- package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +208 -0
- package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -0
- package/esm/components/UploadButton/UploadImages/UploadImages.d.ts +13 -0
- package/esm/components/UploadButton/UploadImages/UploadImages.js +195 -0
- package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -0
- package/esm/components/icons/Bug.d.ts +5 -0
- package/esm/components/icons/Bug.js +4 -0
- package/esm/components/icons/Bug.js.map +1 -0
- package/esm/components/icons/Document.d.ts +5 -0
- package/esm/components/icons/Document.js +6 -0
- package/esm/components/icons/Document.js.map +1 -0
- package/esm/components/icons/Image.d.ts +4 -0
- package/esm/components/icons/Image.js +5 -0
- package/esm/components/icons/Image.js.map +1 -0
- package/esm/components/icons/Preview.d.ts +4 -5
- package/esm/components/icons/Preview.js +4 -3
- package/esm/components/icons/Preview.js.map +1 -1
- package/esm/components/icons/Upload.d.ts +4 -5
- package/esm/components/icons/Upload.js +4 -3
- package/esm/components/icons/Upload.js.map +1 -1
- package/esm/components/layouts/HiddenChat.js +101 -11
- package/esm/components/layouts/HiddenChat.js.map +1 -1
- package/esm/components/layouts/hidden-chat.css +189 -119
- package/esm/components/ui/Card.d.ts +1 -0
- package/esm/components/ui/Card.js +2 -2
- package/esm/components/ui/Card.js.map +1 -1
- package/esm/locales/de.json +16 -0
- package/esm/locales/en.json +24 -0
- package/esm/locales/es.json +16 -0
- package/esm/locales/fr.json +16 -0
- package/esm/locales/it.json +22 -0
- package/package.json +1 -1
- package/src/components/Chat/Chat.stories.tsx +12 -0
- package/src/components/Chat/Chat.tsx +8 -8
- package/src/components/ChatBubble/ChatBubble.css +10 -0
- package/src/components/ChatBubble/ChatBubble.stories.tsx +203 -1
- package/src/components/ChatBubble/ChatBubble.tsx +49 -22
- package/src/components/ChatInputs/ChatInputs.tsx +92 -43
- package/src/components/FilePreview/FilePreview.css +169 -140
- package/src/components/FilePreview/FilePreview.tsx +106 -14
- package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +146 -29
- package/src/components/MediaWidget/LinkItemWidget.css +1 -0
- package/src/components/MediaWidget/MediaItemWidget.css +10 -0
- package/src/components/MediaWidget/MediaItemWidget.tsx +136 -118
- package/src/components/MediaWidget/MediaWidget.test.tsx +2 -1
- package/src/components/MediaWidget/MediaWidget.tsx +1 -1
- package/src/components/MemoriWidget/MemoriWidget.tsx +7 -19
- package/src/components/UploadButton/UploadButton.css +506 -27
- package/src/components/UploadButton/UploadButton.stories.tsx +122 -20
- package/src/components/UploadButton/UploadButton.test.tsx +1 -1
- package/src/components/UploadButton/UploadButton.tsx +282 -451
- package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +352 -0
- package/src/components/UploadButton/UploadImages/UploadImages.tsx +417 -0
- package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +139 -13
- package/src/components/icons/Bug.tsx +81 -0
- package/src/components/icons/Document.tsx +50 -0
- package/src/components/icons/Image.tsx +37 -0
- package/src/components/icons/Preview.tsx +28 -22
- package/src/components/icons/Upload.tsx +33 -22
- package/src/components/layouts/HiddenChat.tsx +143 -7
- package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +1 -1
- package/src/components/layouts/hidden-chat.css +189 -119
- package/src/components/ui/Card.tsx +3 -0
- package/src/index.stories.tsx +19 -19
- package/src/locales/de.json +16 -0
- package/src/locales/en.json +24 -0
- package/src/locales/es.json +16 -0
- package/src/locales/fr.json +16 -0
- package/src/locales/it.json +22 -0
|
@@ -1,155 +1,184 @@
|
|
|
1
|
-
|
|
2
|
-
min-width: 200px;
|
|
3
|
-
padding: 12px;
|
|
4
|
-
border-radius: 8px;
|
|
5
|
-
margin-bottom: 12px;
|
|
6
|
-
animation: slide-in 0.3s ease;
|
|
7
|
-
background: white;
|
|
8
|
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
9
|
-
transition: all 0.3s ease;
|
|
10
|
-
}
|
|
1
|
+
/* Updated FilePreview Styles */
|
|
11
2
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
3
|
+
.memori--preview-container {
|
|
4
|
+
min-width: 100%;
|
|
5
|
+
padding: 12px;
|
|
6
|
+
border-radius: 8px;
|
|
7
|
+
margin-bottom: 12px;
|
|
8
|
+
animation: slide-in 0.3s ease;
|
|
9
|
+
background: white;
|
|
10
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
11
|
+
transition: all 0.3s ease;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.memori--preview-container.slide-down {
|
|
15
|
+
animation: slide-down 0.3s ease;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.memori--absolute-preview {
|
|
19
|
+
position: absolute;
|
|
20
|
+
bottom: 100%;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.memori--message-preview {
|
|
24
|
+
max-width: 100%;
|
|
25
|
+
margin: 12px 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.memori--preview-list {
|
|
29
|
+
display: flex;
|
|
30
|
+
flex-direction: row;
|
|
31
|
+
gap: 8px;
|
|
32
|
+
overflow-x: auto;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.memori--preview-item {
|
|
36
|
+
position: relative;
|
|
37
|
+
display: flex;
|
|
38
|
+
max-width: fit-content;
|
|
39
|
+
align-items: center;
|
|
40
|
+
padding: 8px;
|
|
41
|
+
border-radius: 8px;
|
|
42
|
+
animation: slide-in 0.3s ease;
|
|
43
|
+
background-color: #f8f9fa;
|
|
44
|
+
cursor: pointer;
|
|
45
|
+
gap: 8px;
|
|
46
|
+
transition: all 0.2s ease;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.memori--preview-item:hover {
|
|
50
|
+
background-color: #f1f3f5;
|
|
51
|
+
transform: translateX(4px);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.memori--preview-icon {
|
|
55
|
+
width: 20px;
|
|
56
|
+
height: 20px;
|
|
57
|
+
flex-shrink: 0;
|
|
58
|
+
color: #fff;
|
|
59
|
+
fill: var(--memori-primary);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.memori--preview-file-info {
|
|
63
|
+
display: flex;
|
|
64
|
+
overflow: hidden;
|
|
65
|
+
flex-direction: column;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.memori--preview-filename {
|
|
69
|
+
overflow: hidden;
|
|
70
|
+
max-width: 200px;
|
|
71
|
+
color: #495057;
|
|
72
|
+
font-size: 14px;
|
|
73
|
+
font-weight: 500;
|
|
74
|
+
text-overflow: ellipsis;
|
|
75
|
+
white-space: nowrap;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.memori--preview-filetype {
|
|
79
|
+
margin-top: 2px;
|
|
80
|
+
color: #868e96;
|
|
81
|
+
font-size: 12px;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.memori--modal-title-preview {
|
|
85
|
+
margin-top: 12px;
|
|
86
|
+
margin-bottom: 12px;
|
|
87
|
+
font-size: 20px;
|
|
88
|
+
font-weight: 600;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.memori--remove-button {
|
|
92
|
+
position: absolute;
|
|
93
|
+
top: -4px;
|
|
94
|
+
right: -4px;
|
|
95
|
+
padding: 4px;
|
|
96
|
+
border: none;
|
|
97
|
+
border-radius: 50%;
|
|
98
|
+
background-color: #e03131;
|
|
99
|
+
color: white;
|
|
100
|
+
cursor: pointer;
|
|
101
|
+
opacity: 0;
|
|
102
|
+
transform: scale(0.75);
|
|
103
|
+
transition: all 0.2s ease;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.memori--remove-button.visible {
|
|
107
|
+
opacity: 1;
|
|
108
|
+
transform: scale(1);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.memori--remove-button:hover {
|
|
112
|
+
background-color: #c92a2a;
|
|
113
|
+
transform: scale(1.1);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.memori--remove-icon {
|
|
117
|
+
width: 12px;
|
|
118
|
+
height: 12px;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.memori--modal-preview-file {
|
|
122
|
+
width: 100%;
|
|
123
|
+
max-width: 800px;
|
|
124
|
+
height: 100%;
|
|
125
|
+
padding: 12px;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.memori--preview-content {
|
|
129
|
+
padding: 16px;
|
|
130
|
+
border-radius: 8px;
|
|
131
|
+
background-color: #f8f9fa;
|
|
132
|
+
font-family: monospace;
|
|
133
|
+
font-size: 14px;
|
|
134
|
+
line-height: 1.5;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
@keyframes fadeIn {
|
|
138
|
+
from { opacity: 0; }
|
|
139
|
+
to { opacity: 1; }
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
@keyframes scaleIn {
|
|
143
|
+
from {
|
|
85
144
|
opacity: 0;
|
|
86
|
-
transform: scale(0.
|
|
87
|
-
transition: all 0.2s ease;
|
|
145
|
+
transform: scale(0.95);
|
|
88
146
|
}
|
|
89
|
-
|
|
90
|
-
.memori--remove-button.visible {
|
|
147
|
+
to {
|
|
91
148
|
opacity: 1;
|
|
92
149
|
transform: scale(1);
|
|
93
150
|
}
|
|
151
|
+
}
|
|
94
152
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
.memori--remove-icon {
|
|
101
|
-
width: 12px;
|
|
102
|
-
height: 12px;
|
|
153
|
+
@keyframes slide-up {
|
|
154
|
+
from {
|
|
155
|
+
opacity: 0;
|
|
156
|
+
transform: translateY(10px);
|
|
103
157
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
max-width: 800px;
|
|
108
|
-
height: 100%;
|
|
109
|
-
padding: 12px;
|
|
158
|
+
to {
|
|
159
|
+
opacity: 1;
|
|
160
|
+
transform: translateY(0);
|
|
110
161
|
}
|
|
162
|
+
}
|
|
111
163
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
164
|
+
@keyframes slide-in {
|
|
165
|
+
from {
|
|
166
|
+
opacity: 0;
|
|
167
|
+
transform: translateY(-10px);
|
|
115
168
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
opacity: 0;
|
|
120
|
-
transform: scale(0.95);
|
|
121
|
-
}
|
|
122
|
-
to {
|
|
123
|
-
opacity: 1;
|
|
124
|
-
transform: scale(1);
|
|
125
|
-
}
|
|
169
|
+
to {
|
|
170
|
+
opacity: 1;
|
|
171
|
+
transform: translateY(0);
|
|
126
172
|
}
|
|
173
|
+
}
|
|
127
174
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
to {
|
|
134
|
-
opacity: 1;
|
|
135
|
-
transform: translateY(0);
|
|
136
|
-
}
|
|
175
|
+
@keyframes slide-down {
|
|
176
|
+
from {
|
|
177
|
+
opacity: 1;
|
|
178
|
+
transform: translateY(0);
|
|
137
179
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
opacity: 0;
|
|
142
|
-
transform: translateY(-10px);
|
|
143
|
-
}
|
|
144
|
-
to {
|
|
145
|
-
opacity: 1;
|
|
146
|
-
transform: translateY(0);
|
|
147
|
-
}
|
|
180
|
+
to {
|
|
181
|
+
opacity: 0;
|
|
182
|
+
transform: translateY(10px);
|
|
148
183
|
}
|
|
149
|
-
|
|
150
|
-
@keyframes slide-down {
|
|
151
|
-
from {
|
|
152
|
-
opacity: 1;
|
|
153
|
-
transform: translateY(0);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
184
|
+
}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
type FilePreviewProps = {
|
|
2
|
-
previewFiles:
|
|
3
|
-
|
|
4
|
-
id: string;
|
|
5
|
-
content: string;
|
|
6
|
-
}[];
|
|
7
|
-
removeFile: (id: string) => void;
|
|
2
|
+
previewFiles: any;
|
|
3
|
+
removeFile: (id: string, mediumID: string | undefined) => void;
|
|
8
4
|
allowRemove?: boolean;
|
|
9
5
|
isMessagePreview?: boolean;
|
|
10
6
|
};
|
|
@@ -1,18 +1,71 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
-
import
|
|
3
|
+
import { DocumentIcon } from '../icons/Document';
|
|
4
4
|
import CloseIcon from '../icons/Close';
|
|
5
5
|
import Button from '../ui/Button';
|
|
6
6
|
import Modal from '../ui/Modal';
|
|
7
|
+
import { stripHTML } from '../../helpers/utils';
|
|
7
8
|
const FilePreview = ({ previewFiles, removeFile, allowRemove = true, isMessagePreview = false, }) => {
|
|
8
9
|
const [selectedFile, setSelectedFile] = useState(null);
|
|
9
10
|
const [hoveredId, setHoveredId] = useState(null);
|
|
10
|
-
|
|
11
|
+
const getFileType = (filename, type) => {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
if (type === 'image') {
|
|
14
|
+
const extension = (_a = filename.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
|
|
15
|
+
switch (extension) {
|
|
16
|
+
case 'jpg':
|
|
17
|
+
case 'jpeg':
|
|
18
|
+
return 'JPEG';
|
|
19
|
+
case 'png':
|
|
20
|
+
return 'PNG';
|
|
21
|
+
default:
|
|
22
|
+
return 'Image';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const extension = (_b = filename.split('.').pop()) === null || _b === void 0 ? void 0 : _b.toLowerCase();
|
|
26
|
+
switch (extension) {
|
|
27
|
+
case 'pdf':
|
|
28
|
+
return 'PDF';
|
|
29
|
+
case 'txt':
|
|
30
|
+
return 'Text';
|
|
31
|
+
case 'json':
|
|
32
|
+
return 'JSON';
|
|
33
|
+
case 'xlsx':
|
|
34
|
+
return 'Excel';
|
|
35
|
+
case 'csv':
|
|
36
|
+
return 'CSV';
|
|
37
|
+
case 'jpg':
|
|
38
|
+
case 'jpeg':
|
|
39
|
+
return 'JPEG';
|
|
40
|
+
case 'png':
|
|
41
|
+
return 'PNG';
|
|
42
|
+
default:
|
|
43
|
+
return 'Document';
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const isImageContent = (content, type) => {
|
|
47
|
+
if (type === 'image')
|
|
48
|
+
return true;
|
|
49
|
+
const hasImageExtension = /\.(jpg|jpeg|png|gif|webp|svg)$/i.test(content);
|
|
50
|
+
const isImageUrl = content.startsWith('http') &&
|
|
51
|
+
(content.includes('/image/') ||
|
|
52
|
+
content.includes('/img/') ||
|
|
53
|
+
hasImageExtension);
|
|
54
|
+
return isImageUrl || hasImageExtension;
|
|
55
|
+
};
|
|
56
|
+
return (_jsxs(_Fragment, { children: [previewFiles.length > 0 && (_jsx("div", { className: `memori--preview-container ${isMessagePreview
|
|
11
57
|
? 'memori--message-preview'
|
|
12
|
-
: 'memori--absolute-preview'}`, children: _jsx("div", { className: "memori--preview-list", children: previewFiles.map(file => (_jsxs("div", { className:
|
|
58
|
+
: 'memori--absolute-preview'}`, children: _jsx("div", { className: "memori--preview-list", children: previewFiles.map((file) => (_jsxs("div", { className: `memori--preview-item ${isImageContent(file.content, file.type)
|
|
59
|
+
? 'memori--preview-item--image'
|
|
60
|
+
: 'memori--preview-item--document'}`, onMouseEnter: () => setHoveredId(file.id), onMouseLeave: () => setHoveredId(null), onClick: () => setSelectedFile(file), children: [isImageContent(file.content, file.type) ? (_jsx("div", { className: "memori--preview-thumbnail", children: _jsx("img", { src: file.content, alt: file.name }) })) : (_jsx(DocumentIcon, { className: "memori--preview-icon" })), _jsxs("div", { className: "memori--preview-file-info", children: [_jsx("span", { className: "memori--preview-filename", children: file.name }), _jsx("span", { className: "memori--preview-filetype", children: getFileType(file.name, file.type) })] }), allowRemove && (_jsx(Button, { shape: "rounded", icon: _jsx(CloseIcon, {}), danger: true, className: `memori--remove-button ${hoveredId === file.id ? 'visible' : ''}`, onClick: e => {
|
|
13
61
|
e.stopPropagation();
|
|
14
|
-
removeFile(file.id);
|
|
15
|
-
} }))] }, file.id))) }) })), _jsx(Modal, { width: "80%", widthMd: "80%", open: !!selectedFile, className: "memori--modal-preview-file", onClose: () => setSelectedFile(null), closable: true, title: selectedFile === null || selectedFile === void 0 ? void 0 : selectedFile.name, children: _jsx("div", { className: "memori--preview-content", style: {
|
|
62
|
+
removeFile(file.id, file === null || file === void 0 ? void 0 : file.mediumID);
|
|
63
|
+
} }))] }, file.id))) }) })), _jsx(Modal, { width: "80%", widthMd: "80%", open: !!selectedFile, className: "memori--modal-preview-file", onClose: () => setSelectedFile(null), closable: true, title: selectedFile === null || selectedFile === void 0 ? void 0 : selectedFile.name, children: _jsx("div", { className: "memori--preview-content", style: {
|
|
64
|
+
maxHeight: '70vh',
|
|
65
|
+
overflowY: 'auto',
|
|
66
|
+
textAlign: 'center',
|
|
67
|
+
whiteSpace: selectedFile && !isImageContent(selectedFile.content, selectedFile.type) ? 'pre-wrap' : 'normal'
|
|
68
|
+
}, children: selectedFile && isImageContent(selectedFile.content, selectedFile.type) ? (_jsx(_Fragment, { children: _jsx("img", { src: selectedFile.content, alt: selectedFile.name, style: { maxWidth: '100%', maxHeight: '60vh' } }) })) : (stripHTML((selectedFile === null || selectedFile === void 0 ? void 0 : selectedFile.content) || '')) }) })] }));
|
|
16
69
|
};
|
|
17
70
|
export default FilePreview;
|
|
18
71
|
//# sourceMappingURL=FilePreview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilePreview.js","sourceRoot":"","sources":["../../../src/components/FilePreview/FilePreview.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FilePreview.js","sourceRoot":"","sources":["../../../src/components/FilePreview/FilePreview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
.memori-media-items--grid {
|
|
2
2
|
display: grid;
|
|
3
3
|
padding: 1rem;
|
|
4
|
+
direction: rtl;
|
|
4
5
|
grid-auto-flow: dense;
|
|
5
6
|
grid-gap: 1rem;
|
|
6
7
|
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
|
|
@@ -143,3 +144,12 @@ a.memori-media-item--link {
|
|
|
143
144
|
border-color: #fff;
|
|
144
145
|
color: #fff;
|
|
145
146
|
}
|
|
147
|
+
|
|
148
|
+
.memori-media-item-preview--modal {
|
|
149
|
+
z-index: 10000;
|
|
150
|
+
width: 100%;
|
|
151
|
+
max-width: 80%;
|
|
152
|
+
height: 100%;
|
|
153
|
+
max-height: 80%;
|
|
154
|
+
background: #fff;
|
|
155
|
+
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Medium } from '@memori.ai/memori-api-client/dist/types';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
export interface Props {
|
|
4
|
-
items: Medium
|
|
4
|
+
items: (Medium & {
|
|
5
|
+
type?: string;
|
|
6
|
+
})[];
|
|
5
7
|
sessionID?: string;
|
|
6
8
|
tenantID?: string;
|
|
7
9
|
translateTo?: string;
|
|
@@ -11,7 +13,9 @@ export interface Props {
|
|
|
11
13
|
}
|
|
12
14
|
export declare const RenderMediaItem: ({ isChild, item, sessionID, tenantID, preview, baseURL, apiURL, onClick, customMediaRenderer, }: {
|
|
13
15
|
isChild?: boolean | undefined;
|
|
14
|
-
item: Medium
|
|
16
|
+
item: Medium & {
|
|
17
|
+
type: string;
|
|
18
|
+
};
|
|
15
19
|
sessionID?: string | undefined;
|
|
16
20
|
tenantID?: string | undefined;
|
|
17
21
|
preview?: boolean | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useEffect, useState, memo } from 'react';
|
|
3
3
|
import { getResourceUrl } from '../../helpers/media';
|
|
4
4
|
import { getTranslation } from '../../helpers/translations';
|
|
@@ -12,8 +12,10 @@ import FilePdf from '../icons/FilePdf';
|
|
|
12
12
|
import FileExcel from '../icons/FileExcel';
|
|
13
13
|
import FileWord from '../icons/FileWord';
|
|
14
14
|
import { Transition } from '@headlessui/react';
|
|
15
|
+
import { stripHTML } from '../../helpers/utils';
|
|
15
16
|
export const RenderMediaItem = ({ isChild = false, item, sessionID, tenantID, preview = false, baseURL, apiURL, onClick, customMediaRenderer, }) => {
|
|
16
17
|
var _a, _b;
|
|
18
|
+
const [modalOpen, setModalOpen] = useState(false);
|
|
17
19
|
const url = getResourceUrl({
|
|
18
20
|
resourceURI: item.url,
|
|
19
21
|
sessionID,
|
|
@@ -25,15 +27,51 @@ export const RenderMediaItem = ({ isChild = false, item, sessionID, tenantID, pr
|
|
|
25
27
|
if (customRenderer) {
|
|
26
28
|
return customRenderer;
|
|
27
29
|
}
|
|
30
|
+
const renderMediaContent = (item) => {
|
|
31
|
+
switch (item.mimeType) {
|
|
32
|
+
case 'image/jpeg':
|
|
33
|
+
case 'image/png':
|
|
34
|
+
case 'image/jpg':
|
|
35
|
+
case 'image/gif':
|
|
36
|
+
return isImageRGB ? (_jsxs("picture", { className: "memori-media-item--figure", children: [_jsx("div", { className: "memori-media-item--rgb-item", style: {
|
|
37
|
+
backgroundColor: item.url,
|
|
38
|
+
} }), item.title && (_jsx("figcaption", { className: "memori-media-item--figure-caption", children: item.title }))] })) : (_jsxs("picture", { className: "memori-media-item--figure", children: [!preview && (_jsx("source", { srcSet: [url, item.url, item.content].join(', '), type: item.mimeType })), _jsx("img", { alt: item.title, src: "data:image/png;base64,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" }), item.title && (_jsx("figcaption", { className: "memori-media-item--figure-caption", children: item.title }))] }));
|
|
39
|
+
case 'application/msword':
|
|
40
|
+
case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
|
|
41
|
+
return _jsx(FileWord, { className: "memori-media-item--icon" });
|
|
42
|
+
case 'application/vnd.ms-excel':
|
|
43
|
+
case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':
|
|
44
|
+
return _jsx(FileExcel, { className: "memori-media-item--icon" });
|
|
45
|
+
case 'application/pdf':
|
|
46
|
+
return _jsx(FilePdf, { className: "memori-media-item--icon" });
|
|
47
|
+
case 'video/mp4':
|
|
48
|
+
case 'video/quicktime':
|
|
49
|
+
case 'video/avi':
|
|
50
|
+
case 'video/mpeg':
|
|
51
|
+
return (_jsxs("video", { style: { width: '100%', height: '100%' }, controls: true, src: url, title: item.title, children: [item.mimeType === 'video/quicktime' && (_jsx("source", { src: item.url, type: "video/mp4" })), _jsx("source", { src: item.url, type: item.mimeType }), "Your browser does not support this video format.", _jsx("br", {}), _jsx("a", { href: item.url, target: "_blank", rel: "noopener noreferrer", children: "Download the video" })] }));
|
|
52
|
+
case 'audio/mpeg3':
|
|
53
|
+
case 'audio/wav':
|
|
54
|
+
case 'audio/mpeg':
|
|
55
|
+
return (_jsx("audio", { style: { width: '100%', height: '100%' }, controls: true, src: url }));
|
|
56
|
+
case 'model/gltf-binary':
|
|
57
|
+
return (_jsx(ModelViewer, { src: url, alt: "", poster: "data:image/png;base64,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" }));
|
|
58
|
+
default:
|
|
59
|
+
return _jsx(File, { className: "memori-media-item--icon" });
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
if (!item.url && (item === null || item === void 0 ? void 0 : item.type) === 'document' && item.content) {
|
|
63
|
+
return (_jsxs(_Fragment, { children: [_jsx("a", { className: "memori-media-item--link", href: "#", onClick: e => {
|
|
64
|
+
e.preventDefault();
|
|
65
|
+
setModalOpen(true);
|
|
66
|
+
}, title: item.title, children: _jsx(Card, { hoverable: true, cover: renderMediaContent(item), title: item.title }) }), _jsx(Modal, { open: modalOpen, onClose: () => setModalOpen(false), title: item.title, className: "memori-media-item-preview--modal", children: _jsx("pre", { children: stripHTML(item.content) }) })] }));
|
|
67
|
+
}
|
|
28
68
|
const isImageRGB = ((_a = item.url) === null || _a === void 0 ? void 0 : _a.startsWith('rgb(')) || ((_b = item.url) === null || _b === void 0 ? void 0 : _b.startsWith('rgba('));
|
|
29
69
|
switch (item.mimeType) {
|
|
30
70
|
case 'image/jpeg':
|
|
31
71
|
case 'image/png':
|
|
32
72
|
case 'image/jpg':
|
|
33
73
|
case 'image/gif':
|
|
34
|
-
return isImageRGB ? (_jsx(Card, { hoverable: true, className: "memori-media-item--card memori-media-item--image", cover:
|
|
35
|
-
backgroundColor: item.url,
|
|
36
|
-
} }), item.title && (_jsx("figcaption", { className: "memori-media-item--figure-caption", children: item.title }))] }) })) : (_jsx("a", { className: "memori-media-item--link", href: item.url, onClick: e => {
|
|
74
|
+
return isImageRGB ? (_jsx(Card, { hoverable: true, className: "memori-media-item--card memori-media-item--image", cover: renderMediaContent(item) })) : (_jsx("a", { className: "memori-media-item--link", href: item.url, onClick: e => {
|
|
37
75
|
if (isChild) {
|
|
38
76
|
e.preventDefault();
|
|
39
77
|
}
|
|
@@ -41,15 +79,13 @@ export const RenderMediaItem = ({ isChild = false, item, sessionID, tenantID, pr
|
|
|
41
79
|
e.preventDefault();
|
|
42
80
|
onClick(item.mediumID);
|
|
43
81
|
}
|
|
44
|
-
}, target: "_blank", rel: "noopener noreferrer", title: item.title, children: _jsx(Card, { hoverable: true, className: "memori-media-item--card memori-media-item--image", cover:
|
|
82
|
+
}, target: "_blank", rel: "noopener noreferrer", title: item.title, children: _jsx(Card, { hoverable: true, className: "memori-media-item--card memori-media-item--image", cover: renderMediaContent(item) }) }));
|
|
45
83
|
case 'application/msword':
|
|
46
84
|
case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
|
|
47
|
-
return (_jsx("a", { className: "memori-media-item--link", href: url, target: "_blank", rel: "noopener noreferrer", title: item.title, children: _jsx(Card, { hoverable: true, cover: _jsx(FileWord, { className: "memori-media-item--icon" }), title: item.title }) }));
|
|
48
85
|
case 'application/vnd.ms-excel':
|
|
49
86
|
case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':
|
|
50
|
-
return (_jsx("a", { className: "memori-media-item--link", href: url, target: "_blank", rel: "noopener noreferrer", title: item.title, children: _jsx(Card, { hoverable: true, cover: _jsx(FileExcel, { className: "memori-media-item--icon" }), title: item.title }) }));
|
|
51
87
|
case 'application/pdf':
|
|
52
|
-
return (_jsx("a", { className: "memori-media-item--link", href: url, target: "_blank", rel: "noopener noreferrer", title: item.title, children: _jsx(Card, { hoverable: true, cover:
|
|
88
|
+
return (_jsx("a", { className: "memori-media-item--link", href: url, target: "_blank", rel: "noopener noreferrer", title: item.title, children: _jsx(Card, { hoverable: true, cover: renderMediaContent(item), title: item.title }) }));
|
|
53
89
|
case 'video/mp4':
|
|
54
90
|
case 'video/quicktime':
|
|
55
91
|
case 'video/avi':
|
|
@@ -62,15 +98,15 @@ export const RenderMediaItem = ({ isChild = false, item, sessionID, tenantID, pr
|
|
|
62
98
|
e.preventDefault();
|
|
63
99
|
onClick(item.mediumID);
|
|
64
100
|
}
|
|
65
|
-
}, target: "_blank", rel: "noopener noreferrer", title: item.title, children: _jsx(Card, { hoverable: true, cover:
|
|
101
|
+
}, target: "_blank", rel: "noopener noreferrer", title: item.title, children: _jsx(Card, { hoverable: true, cover: renderMediaContent(item), title: item.title }) }));
|
|
66
102
|
case 'audio/mpeg3':
|
|
67
103
|
case 'audio/wav':
|
|
68
104
|
case 'audio/mpeg':
|
|
69
|
-
return (_jsx("a", { className: "memori-media-item--link", href: url, target: "_blank", rel: "noopener noreferrer", title: item.title, children: _jsx(Card, { hoverable: true, cover:
|
|
105
|
+
return (_jsx("a", { className: "memori-media-item--link", href: url, target: "_blank", rel: "noopener noreferrer", title: item.title, children: _jsx(Card, { hoverable: true, cover: renderMediaContent(item), title: item.title }) }));
|
|
70
106
|
case 'model/gltf-binary':
|
|
71
|
-
return
|
|
107
|
+
return _jsx(Card, { hoverable: true, cover: renderMediaContent(item) });
|
|
72
108
|
default:
|
|
73
|
-
return (_jsx("a", { className: "memori-media-item--link", href: url, target: "_blank", rel: "noopener noreferrer", title: item.title, children: _jsx(Card, { hoverable: true, cover:
|
|
109
|
+
return (_jsx("a", { className: "memori-media-item--link", href: url, target: "_blank", rel: "noopener noreferrer", title: item.title, children: _jsx(Card, { hoverable: true, cover: renderMediaContent(item), title: item.title }) }));
|
|
74
110
|
}
|
|
75
111
|
};
|
|
76
112
|
const MediaItemWidget = ({ items, sessionID, tenantID, translateTo, baseURL, apiURL, customMediaRenderer, }) => {
|
|
@@ -127,11 +163,13 @@ const MediaItemWidget = ({ items, sessionID, tenantID, translateTo, baseURL, api
|
|
|
127
163
|
title: item.title,
|
|
128
164
|
url: item.url,
|
|
129
165
|
content: item.content,
|
|
166
|
+
type: 'document',
|
|
130
167
|
}, customMediaRenderer: customMediaRenderer }) }, item.url + '&index=' + index))) })), codeSnippets.map(medium => (_jsx(Transition.Child, { as: "div", className: "memori-media-item--snippet", enter: "ease-out duration-500", enterFrom: "opacity-0 translate-y-1", enterTo: "opacity-1 translate-y-0", leave: "ease-in duration-300", leaveFrom: "opacity-1", leaveTo: "opacity-0", children: _jsx(Snippet, { medium: medium }, medium.mediumID) }, medium.mediumID))), cssExecutableCode.map(medium => (_jsx("style", { dangerouslySetInnerHTML: { __html: medium.content || '' } }, medium.mediumID))), (openModalMedium === null || openModalMedium === void 0 ? void 0 : openModalMedium.mediumID) && (_jsx(Modal, { width: "100%", widthMd: "100%", className: "memori-media-item--modal", open: !!openModalMedium, onClose: () => setOpenModalMedium(undefined), footer: null, children: _jsx(RenderMediaItem, { isChild: true, sessionID: sessionID, tenantID: tenantID, baseURL: baseURL, apiURL: apiURL, item: {
|
|
131
168
|
...openModalMedium,
|
|
132
169
|
title: openModalMedium.title,
|
|
133
170
|
url: openModalMedium.url,
|
|
134
171
|
content: openModalMedium.content,
|
|
172
|
+
type: 'document',
|
|
135
173
|
}, customMediaRenderer: customMediaRenderer }) }))] }));
|
|
136
174
|
};
|
|
137
175
|
export default memo(MediaItemWidget);
|