@memori.ai/memori-react 8.11.0 → 8.13.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 +74 -0
- package/dist/components/AgeVerificationModal/AgeVerificationModal.css +41 -14
- package/dist/components/AgeVerificationModal/AgeVerificationModal.js +2 -2
- package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
- package/dist/components/Auth/Auth.js +36 -8
- package/dist/components/Auth/Auth.js.map +1 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +2 -2
- package/dist/components/Chat/Chat.css +37 -3
- package/dist/components/Chat/Chat.js +61 -23
- package/dist/components/Chat/Chat.js.map +1 -1
- package/dist/components/ChatBubble/ChatBubble.css +87 -15
- package/dist/components/ChatBubble/ChatBubble.js +129 -19
- package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
- package/dist/components/ChatHistoryDrawer/ChatHistory.css +5 -1
- package/dist/components/ChatInputs/ChatInputs.css +293 -17
- package/dist/components/ChatInputs/ChatInputs.d.ts +1 -0
- package/dist/components/ChatInputs/ChatInputs.js +48 -27
- package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
- package/dist/components/ChatTextArea/ChatTextArea.css +75 -31
- package/dist/components/ChatTextArea/ChatTextArea.js +47 -18
- package/dist/components/ChatTextArea/ChatTextArea.js.map +1 -1
- package/dist/components/DateSelector/DateSelector.css +125 -104
- package/dist/components/DateSelector/DateSelector.d.ts +1 -1
- package/dist/components/DateSelector/DateSelector.js +110 -52
- package/dist/components/DateSelector/DateSelector.js.map +1 -1
- package/dist/components/FilePreview/FilePreview.css +225 -146
- package/dist/components/FilePreview/FilePreview.d.ts +1 -2
- package/dist/components/FilePreview/FilePreview.js +20 -6
- package/dist/components/FilePreview/FilePreview.js.map +1 -1
- package/dist/components/Header/Header.css +2 -2
- package/dist/components/Header/Header.js +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/LoginDrawer/LoginDrawer.css +37 -5
- package/dist/components/LoginDrawer/LoginDrawer.d.ts +1 -2
- package/dist/components/LoginDrawer/LoginDrawer.js +2 -9
- package/dist/components/LoginDrawer/LoginDrawer.js.map +1 -1
- package/dist/components/MediaWidget/MediaItemWidget.js +2 -1
- package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +1 -1
- 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/ArtifactDrawer/ArtifactDrawer.js +2 -2
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +16 -7
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +6 -4
- package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
- package/dist/components/MemoriWidget/MemoriWidget.css +11 -2
- package/dist/components/MemoriWidget/MemoriWidget.js +105 -25
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/components/MicrophoneButton/MicrophoneButton.css +2 -2
- package/dist/components/StartPanel/StartPanel.css +8 -0
- package/dist/components/UploadButton/UploadButton.css +20 -17
- package/dist/components/UploadButton/UploadButton.js +218 -87
- package/dist/components/UploadButton/UploadButton.js.map +1 -1
- package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +14 -4
- package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
- package/dist/components/UploadButton/UploadImages/UploadImages.js +143 -16
- package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
- package/dist/components/layouts/chat.css +1 -1
- package/dist/components/ui/Drawer.css +8 -0
- package/dist/components/ui/Drawer.d.ts +2 -0
- package/dist/components/ui/Drawer.js +2 -2
- package/dist/components/ui/Drawer.js.map +1 -1
- package/dist/components/ui/Tooltip.css +49 -1
- package/dist/components/ui/Tooltip.d.ts +1 -1
- package/dist/helpers/constants.d.ts +1 -0
- package/dist/helpers/constants.js +2 -1
- package/dist/helpers/constants.js.map +1 -1
- package/dist/helpers/imageCompression.d.ts +7 -0
- package/dist/helpers/imageCompression.js +123 -0
- package/dist/helpers/imageCompression.js.map +1 -0
- package/dist/locales/de.json +13 -5
- package/dist/locales/en.json +17 -6
- package/dist/locales/es.json +13 -5
- package/dist/locales/fr.json +12 -5
- package/dist/locales/it.json +16 -6
- package/dist/styles.css +4 -4
- package/esm/components/AgeVerificationModal/AgeVerificationModal.css +41 -14
- package/esm/components/AgeVerificationModal/AgeVerificationModal.js +2 -2
- package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
- package/esm/components/Auth/Auth.js +36 -8
- package/esm/components/Auth/Auth.js.map +1 -1
- package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +2 -2
- package/esm/components/Chat/Chat.css +37 -3
- package/esm/components/Chat/Chat.js +61 -23
- package/esm/components/Chat/Chat.js.map +1 -1
- package/esm/components/ChatBubble/ChatBubble.css +87 -15
- package/esm/components/ChatBubble/ChatBubble.js +130 -20
- package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
- package/esm/components/ChatHistoryDrawer/ChatHistory.css +5 -1
- package/esm/components/ChatInputs/ChatInputs.css +293 -17
- package/esm/components/ChatInputs/ChatInputs.d.ts +1 -0
- package/esm/components/ChatInputs/ChatInputs.js +49 -28
- package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
- package/esm/components/ChatTextArea/ChatTextArea.css +75 -31
- package/esm/components/ChatTextArea/ChatTextArea.js +49 -20
- package/esm/components/ChatTextArea/ChatTextArea.js.map +1 -1
- package/esm/components/DateSelector/DateSelector.css +125 -104
- package/esm/components/DateSelector/DateSelector.d.ts +1 -1
- package/esm/components/DateSelector/DateSelector.js +111 -52
- package/esm/components/DateSelector/DateSelector.js.map +1 -1
- package/esm/components/FilePreview/FilePreview.css +225 -146
- package/esm/components/FilePreview/FilePreview.d.ts +1 -2
- package/esm/components/FilePreview/FilePreview.js +21 -7
- package/esm/components/FilePreview/FilePreview.js.map +1 -1
- package/esm/components/Header/Header.css +2 -2
- package/esm/components/Header/Header.js +1 -1
- package/esm/components/Header/Header.js.map +1 -1
- package/esm/components/LoginDrawer/LoginDrawer.css +37 -5
- package/esm/components/LoginDrawer/LoginDrawer.d.ts +1 -2
- package/esm/components/LoginDrawer/LoginDrawer.js +2 -9
- package/esm/components/LoginDrawer/LoginDrawer.js.map +1 -1
- package/esm/components/MediaWidget/MediaItemWidget.js +2 -1
- package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +1 -1
- 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/ArtifactDrawer/ArtifactDrawer.js +2 -2
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +16 -7
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +6 -4
- package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -1
- package/esm/components/MemoriWidget/MemoriWidget.css +11 -2
- package/esm/components/MemoriWidget/MemoriWidget.js +105 -25
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/components/MicrophoneButton/MicrophoneButton.css +2 -2
- package/esm/components/StartPanel/StartPanel.css +8 -0
- package/esm/components/UploadButton/UploadButton.css +20 -17
- package/esm/components/UploadButton/UploadButton.js +219 -88
- package/esm/components/UploadButton/UploadButton.js.map +1 -1
- package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +14 -4
- package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
- package/esm/components/UploadButton/UploadImages/UploadImages.js +143 -16
- package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
- package/esm/components/layouts/chat.css +1 -1
- package/esm/components/ui/Drawer.css +8 -0
- package/esm/components/ui/Drawer.d.ts +2 -0
- package/esm/components/ui/Drawer.js +2 -2
- package/esm/components/ui/Drawer.js.map +1 -1
- package/esm/components/ui/Tooltip.css +49 -1
- package/esm/components/ui/Tooltip.d.ts +1 -1
- package/esm/helpers/constants.d.ts +1 -0
- package/esm/helpers/constants.js +1 -0
- package/esm/helpers/constants.js.map +1 -1
- package/esm/helpers/imageCompression.d.ts +7 -0
- package/esm/helpers/imageCompression.js +119 -0
- package/esm/helpers/imageCompression.js.map +1 -0
- package/esm/locales/de.json +13 -5
- package/esm/locales/en.json +17 -6
- package/esm/locales/es.json +13 -5
- package/esm/locales/fr.json +12 -5
- package/esm/locales/it.json +16 -6
- package/esm/styles.css +4 -4
- package/package.json +2 -2
- package/src/components/AgeVerificationModal/AgeVerificationModal.css +41 -14
- package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +3 -1
- package/src/components/Auth/Auth.tsx +55 -11
- package/src/components/Avatar/Avatar.stories.tsx +3 -0
- package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +2 -2
- package/src/components/Chat/Chat.css +37 -3
- package/src/components/Chat/Chat.stories.tsx +16 -2
- package/src/components/Chat/Chat.tsx +90 -21
- package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +1752 -812
- package/src/components/ChatBubble/ChatBubble.css +87 -15
- package/src/components/ChatBubble/ChatBubble.stories.tsx +16 -2
- package/src/components/ChatBubble/ChatBubble.test.tsx +17 -0
- package/src/components/ChatBubble/ChatBubble.tsx +237 -33
- package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +304 -8
- package/src/components/ChatHistoryDrawer/ChatHistory.css +5 -1
- package/src/components/ChatInputs/ChatInputs.css +293 -17
- package/src/components/ChatInputs/ChatInputs.tsx +156 -86
- package/src/components/ChatInputs/__snapshots__/ChatInputs.test.tsx.snap +430 -424
- package/src/components/ChatTextArea/ChatTextArea.css +75 -31
- package/src/components/ChatTextArea/ChatTextArea.test.tsx +1 -16
- package/src/components/ChatTextArea/ChatTextArea.tsx +51 -22
- package/src/components/ChatTextArea/__snapshots__/ChatTextArea.test.tsx.snap +9 -72
- package/src/components/DateSelector/DateSelector.css +125 -104
- package/src/components/DateSelector/DateSelector.stories.tsx +1 -1
- package/src/components/DateSelector/DateSelector.test.tsx +137 -23
- package/src/components/DateSelector/DateSelector.tsx +203 -177
- package/src/components/FilePreview/FilePreview.css +225 -146
- package/src/components/FilePreview/FilePreview.tsx +49 -36
- package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +2 -2
- package/src/components/Header/Header.css +2 -2
- package/src/components/Header/Header.stories.tsx +5 -1
- package/src/components/Header/Header.tsx +1 -1
- package/src/components/Header/__snapshots__/Header.test.tsx.snap +1 -1
- package/src/components/LoginDrawer/LoginDrawer.css +37 -5
- package/src/components/LoginDrawer/LoginDrawer.stories.tsx +0 -1
- package/src/components/LoginDrawer/LoginDrawer.test.tsx +0 -1
- package/src/components/LoginDrawer/LoginDrawer.tsx +0 -19
- package/src/components/MediaWidget/MediaItemWidget.tsx +2 -1
- package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +996 -204
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +2 -2
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.tsx +1 -1
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.tsx +3 -0
- package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +56 -54
- package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +16 -7
- package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +12 -3
- package/src/components/MemoriWidget/MemoriWidget.css +11 -2
- package/src/components/MemoriWidget/MemoriWidget.stories.tsx +6 -3
- package/src/components/MemoriWidget/MemoriWidget.tsx +173 -49
- package/src/components/MicrophoneButton/MicrophoneButton.css +2 -2
- package/src/components/StartPanel/StartPanel.css +8 -0
- package/src/components/UploadButton/UploadButton.css +20 -17
- package/src/components/UploadButton/UploadButton.stories.tsx +247 -35
- package/src/components/UploadButton/UploadButton.tsx +280 -173
- package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +19 -4
- package/src/components/UploadButton/UploadImages/UploadImages.tsx +196 -35
- package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +10 -1
- package/src/components/layouts/FullBody/FullBody.stories.tsx +9 -10
- package/src/components/layouts/Totem/Totem.stories.tsx +8 -9
- package/src/components/layouts/ZoomedFullBody/ZoomedFullBody.stories.tsx +8 -9
- package/src/components/layouts/chat.css +1 -1
- package/src/components/layouts/layouts.stories.tsx +10 -9
- package/src/components/ui/Drawer.css +8 -0
- package/src/components/ui/Drawer.tsx +16 -12
- package/src/components/ui/Tooltip.css +49 -1
- package/src/components/ui/Tooltip.tsx +1 -1
- package/src/helpers/constants.ts +1 -1
- package/src/helpers/imageCompression.ts +230 -0
- package/src/index.stories.tsx +18 -0
- package/src/locales/de.json +13 -5
- package/src/locales/en.json +17 -6
- package/src/locales/es.json +13 -5
- package/src/locales/fr.json +12 -5
- package/src/locales/it.json +16 -6
- package/src/mocks/data.ts +4 -2
- package/src/styles.css +4 -4
- package/src/components/SignupForm/SignupForm.test.tsx +0 -40
- package/src/components/SignupForm/SignupForm.tsx +0 -457
- package/src/components/SignupForm/__snapshots__/SignupForm.test.tsx.snap +0 -247
- package/src/components/UploadMenu/UploadMenu.css +0 -47
- package/src/components/UploadMenu/UploadMenu.stories.tsx +0 -66
- package/src/components/UploadMenu/UploadMenu.test.tsx +0 -34
- package/src/components/UploadMenu/UploadMenu.tsx +0 -68
- package/src/components/UploadMenu/__snapshots__/UploadMenu.test.tsx.snap +0 -137
|
@@ -215,7 +215,7 @@ const ArtifactActions: React.FC<{
|
|
|
215
215
|
<Button
|
|
216
216
|
onClick={handlePrint}
|
|
217
217
|
disabled={loading}
|
|
218
|
-
className="memori-artifact-action-btn"
|
|
218
|
+
className="memori-artifact-action-btn memori-artifact-action-btn--print"
|
|
219
219
|
ghost
|
|
220
220
|
icon={<PrintIcon className="memori-artifact-action-icon" />}
|
|
221
221
|
title={t('artifact.print') || 'Print'}
|
|
@@ -228,7 +228,7 @@ const ArtifactActions: React.FC<{
|
|
|
228
228
|
<Button
|
|
229
229
|
onClick={handleOpenExternal}
|
|
230
230
|
disabled={loading}
|
|
231
|
-
className="memori-artifact-action-btn"
|
|
231
|
+
className="memori-artifact-action-btn memori-artifact-action-btn--external"
|
|
232
232
|
ghost
|
|
233
233
|
icon={<Link className="memori-artifact-action-icon" />}
|
|
234
234
|
title={t('artifact.external') || 'External'}
|
|
@@ -374,7 +374,7 @@ const CopyButtonWithDropdown: React.FC<CopyButtonWithDropdownProps> = ({
|
|
|
374
374
|
onClick={handleCopyClick}
|
|
375
375
|
disabled={disabled || loading || copyState.loading}
|
|
376
376
|
className={cx(
|
|
377
|
-
'memori-copy-button memori-copy-button--main',
|
|
377
|
+
'memori-copy-button memori-copy-button--main ',
|
|
378
378
|
{
|
|
379
379
|
'memori-copy-button--success': copyState.success,
|
|
380
380
|
'memori-copy-button--error': copyState.error,
|
package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyMenuItem.tsx
CHANGED
|
@@ -54,6 +54,9 @@ const CopyMenuItem: React.FC<CopyMenuItemProps & { active?: boolean }> = ({
|
|
|
54
54
|
'memori-copy-menu-item--pdf': format.action === 'pdf',
|
|
55
55
|
'memori-copy-menu-item--print': format.action === 'print',
|
|
56
56
|
'memori-copy-menu-item--active': active,
|
|
57
|
+
'memori-copy-menu-item--external': format.action === 'link',
|
|
58
|
+
'memori-copy-menu-item--copy': format.action === 'copy',
|
|
59
|
+
'memori-copy-menu-item--download': format.action === 'download',
|
|
57
60
|
})}
|
|
58
61
|
onClick={handleClick}
|
|
59
62
|
disabled={disabled || loading}
|
|
@@ -148,6 +148,8 @@ const ArtifactDrawer: React.FC<{ isChatLogPanel?: boolean }> = ({
|
|
|
148
148
|
widthLg="50%"
|
|
149
149
|
closable={false}
|
|
150
150
|
animated={true}
|
|
151
|
+
enterDuration={isMobile ? 'duration-500' : 'duration-300'}
|
|
152
|
+
leaveDuration={isMobile ? 'duration-400' : 'duration-200'}
|
|
151
153
|
showBackdrop={false}
|
|
152
154
|
preventBackdropClose={true}
|
|
153
155
|
confirmDialogTitle={
|
|
@@ -158,70 +160,70 @@ const ArtifactDrawer: React.FC<{ isChatLogPanel?: boolean }> = ({
|
|
|
158
160
|
t('artifact.confirmDialogMessage') ||
|
|
159
161
|
'This action cannot be undone.'
|
|
160
162
|
}
|
|
161
|
-
|
|
163
|
+
// className="memori-artifact-panel"
|
|
162
164
|
>
|
|
163
165
|
{children}
|
|
164
166
|
</Drawer>
|
|
165
167
|
);
|
|
166
168
|
}
|
|
167
169
|
},
|
|
168
|
-
[isChatLogPanel, handleClose, state.isDrawerOpen, state.isFullscreen]
|
|
170
|
+
[isChatLogPanel, handleClose, state.isDrawerOpen, state.isFullscreen, isMobile]
|
|
169
171
|
);
|
|
170
172
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
+
/**
|
|
174
|
+
* Get MIME type string for downloads
|
|
175
|
+
*/
|
|
176
|
+
const getMimeTypeString = useCallback((mimeType: string): string => {
|
|
177
|
+
const mimeTypes: Record<string, string> = {
|
|
178
|
+
html: 'text/html',
|
|
179
|
+
json: 'application/json',
|
|
180
|
+
markdown: 'text/markdown',
|
|
181
|
+
css: 'text/css',
|
|
182
|
+
javascript: 'text/javascript',
|
|
183
|
+
typescript: 'text/typescript',
|
|
184
|
+
svg: 'image/svg+xml',
|
|
185
|
+
xml: 'text/xml',
|
|
186
|
+
text: 'text/plain',
|
|
187
|
+
python: 'text/x-python',
|
|
188
|
+
java: 'text/x-java',
|
|
189
|
+
cpp: 'text/x-c++',
|
|
190
|
+
csharp: 'text/x-csharp',
|
|
191
|
+
php: 'text/x-php',
|
|
192
|
+
ruby: 'text/x-ruby',
|
|
193
|
+
go: 'text/x-go',
|
|
194
|
+
rust: 'text/x-rust',
|
|
195
|
+
yaml: 'text/yaml',
|
|
196
|
+
sql: 'text/x-sql',
|
|
197
|
+
};
|
|
198
|
+
return mimeTypes[mimeType] || 'text/plain';
|
|
199
|
+
}, []);
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Handle external open action
|
|
173
203
|
*/
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
java: 'text/x-java',
|
|
187
|
-
cpp: 'text/x-c++',
|
|
188
|
-
csharp: 'text/x-csharp',
|
|
189
|
-
php: 'text/x-php',
|
|
190
|
-
ruby: 'text/x-ruby',
|
|
191
|
-
go: 'text/x-go',
|
|
192
|
-
rust: 'text/x-rust',
|
|
193
|
-
yaml: 'text/yaml',
|
|
194
|
-
sql: 'text/x-sql',
|
|
195
|
-
};
|
|
196
|
-
return mimeTypes[mimeType] || 'text/plain';
|
|
197
|
-
}, []);
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Handle external open action
|
|
201
|
-
*/
|
|
202
|
-
const handleOpenExternal = useCallback((artifact: ArtifactData) => {
|
|
203
|
-
try {
|
|
204
|
-
const mimeType = getMimeTypeString(artifact.mimeType);
|
|
205
|
-
const blob = new Blob([artifact.content], { type: mimeType });
|
|
206
|
-
const url = URL.createObjectURL(blob);
|
|
207
|
-
|
|
208
|
-
const externalWindow = window.open(url, '_blank');
|
|
209
|
-
if (!externalWindow) {
|
|
210
|
-
alert(
|
|
211
|
-
'Popup blocked! Please enable popups to open the artifact in a new window.'
|
|
212
|
-
);
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
// Cleanup URL after a delay
|
|
217
|
-
setTimeout(() => {
|
|
218
|
-
URL.revokeObjectURL(url);
|
|
219
|
-
}, 60000);
|
|
220
|
-
|
|
221
|
-
} catch (error) {
|
|
222
|
-
console.error('External open failed:', error);
|
|
204
|
+
const handleOpenExternal = useCallback((artifact: ArtifactData) => {
|
|
205
|
+
try {
|
|
206
|
+
const mimeType = getMimeTypeString(artifact.mimeType);
|
|
207
|
+
const blob = new Blob([artifact.content], { type: mimeType });
|
|
208
|
+
const url = URL.createObjectURL(blob);
|
|
209
|
+
|
|
210
|
+
const externalWindow = window.open(url, '_blank');
|
|
211
|
+
if (!externalWindow) {
|
|
212
|
+
alert(
|
|
213
|
+
'Popup blocked! Please enable popups to open the artifact in a new window.'
|
|
214
|
+
);
|
|
215
|
+
return;
|
|
223
216
|
}
|
|
224
|
-
|
|
217
|
+
|
|
218
|
+
// Cleanup URL after a delay
|
|
219
|
+
setTimeout(() => {
|
|
220
|
+
URL.revokeObjectURL(url);
|
|
221
|
+
}, 60000);
|
|
222
|
+
|
|
223
|
+
} catch (error) {
|
|
224
|
+
console.error('External open failed:', error);
|
|
225
|
+
}
|
|
226
|
+
}, []);
|
|
225
227
|
|
|
226
228
|
// Render web split panel
|
|
227
229
|
return (
|
|
@@ -42,11 +42,6 @@
|
|
|
42
42
|
white-space: nowrap;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
/* .memori-artifact-tab:hover:not(.memori-artifact-tab--active) {
|
|
46
|
-
background: rgba(0, 123, 255, 0.05);
|
|
47
|
-
color: var(--memori-text-color, #333);
|
|
48
|
-
} */
|
|
49
|
-
|
|
50
45
|
.memori-artifact-tab--active, .memori-artifact-tab:hover, .memori-artifact-tab:active, .memori-artifact-tab:focus {
|
|
51
46
|
background: var(--memori-chat-bubble-bg, #fff);
|
|
52
47
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
@@ -101,8 +96,11 @@
|
|
|
101
96
|
/* Preview Content */
|
|
102
97
|
.memori-artifact-preview-content {
|
|
103
98
|
position: relative;
|
|
99
|
+
display: flex;
|
|
104
100
|
overflow: hidden;
|
|
101
|
+
min-height: 0;
|
|
105
102
|
flex: 1;
|
|
103
|
+
flex-direction: column;
|
|
106
104
|
/* border: 1px solid var(--memori-button-border-color, #e9ecef); */
|
|
107
105
|
border-radius: var(--memori-border-radius, 6px);
|
|
108
106
|
/* margin: 1rem; */
|
|
@@ -110,14 +108,25 @@
|
|
|
110
108
|
background: var(--memori-chat-bubble-bg, #fff);
|
|
111
109
|
}
|
|
112
110
|
|
|
111
|
+
.memori-artifact-preview-iframe {
|
|
112
|
+
overflow: auto;
|
|
113
|
+
width: 100%;
|
|
114
|
+
height: 100%;
|
|
115
|
+
min-height: 0;
|
|
116
|
+
flex: 1;
|
|
117
|
+
border: none;
|
|
118
|
+
border-radius: var(--memori-border-radius, 6px);
|
|
119
|
+
}
|
|
120
|
+
|
|
113
121
|
/* Markdown Preview */
|
|
114
122
|
.memori-artifact-preview-markdown {
|
|
115
|
-
height:
|
|
123
|
+
min-height: 0;
|
|
124
|
+
flex: 1;
|
|
116
125
|
padding: 1rem;
|
|
117
126
|
color: var(--memori-text-color, #333);
|
|
118
127
|
font-family: var(--memori-font-family);
|
|
119
128
|
line-height: 1.6;
|
|
120
|
-
overflow-y:
|
|
129
|
+
overflow-y: auto;
|
|
121
130
|
}
|
|
122
131
|
|
|
123
132
|
.memori-artifact-preview-markdown h1,
|
|
@@ -28,6 +28,7 @@ const ArtifactPreview: React.FC<{
|
|
|
28
28
|
case 'html':
|
|
29
29
|
return (
|
|
30
30
|
<iframe
|
|
31
|
+
className="memori-artifact-preview-iframe"
|
|
31
32
|
srcDoc={artifact.content}
|
|
32
33
|
style={{
|
|
33
34
|
width: '100%',
|
|
@@ -36,6 +37,7 @@ const ArtifactPreview: React.FC<{
|
|
|
36
37
|
borderRadius: '6px',
|
|
37
38
|
}}
|
|
38
39
|
title={`${artifact.title} Preview`}
|
|
40
|
+
scrolling="auto"
|
|
39
41
|
/>
|
|
40
42
|
);
|
|
41
43
|
|
|
@@ -48,9 +50,16 @@ const ArtifactPreview: React.FC<{
|
|
|
48
50
|
}}
|
|
49
51
|
/>
|
|
50
52
|
);
|
|
51
|
-
|
|
53
|
+
|
|
52
54
|
default:
|
|
53
|
-
return
|
|
55
|
+
return (
|
|
56
|
+
<div
|
|
57
|
+
className="memori-artifact-preview-text"
|
|
58
|
+
dangerouslySetInnerHTML={{
|
|
59
|
+
__html: artifact.content,
|
|
60
|
+
}}
|
|
61
|
+
/>
|
|
62
|
+
);
|
|
54
63
|
}
|
|
55
64
|
}, [artifact]);
|
|
56
65
|
|
|
@@ -110,7 +119,7 @@ const ArtifactPreview: React.FC<{
|
|
|
110
119
|
);
|
|
111
120
|
|
|
112
121
|
const hasPreview =
|
|
113
|
-
artifact.mimeType === 'html' || artifact.mimeType === 'markdown';
|
|
122
|
+
artifact.mimeType === 'html' || artifact.mimeType === 'markdown' || artifact.mimeType === 'svg';
|
|
114
123
|
|
|
115
124
|
return (
|
|
116
125
|
<div className="memori-artifact-preview">
|
|
@@ -13,6 +13,15 @@
|
|
|
13
13
|
height: calc(100vh - 50px);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
@media (max-width: 425px) {
|
|
17
|
+
.memori-widget {
|
|
18
|
+
overflow-y: hidden;
|
|
19
|
+
}
|
|
20
|
+
.memori-widget > .memori-spin {
|
|
21
|
+
height: calc(100vh - 100px);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
16
25
|
.memori--grid {
|
|
17
26
|
display: flex;
|
|
18
27
|
height: calc(100% - 50px);
|
|
@@ -26,7 +35,7 @@
|
|
|
26
35
|
align-items: flex-start;
|
|
27
36
|
justify-content: flex-start;
|
|
28
37
|
overflow-x: visible;
|
|
29
|
-
overflow-y:
|
|
38
|
+
overflow-y: hidden;
|
|
30
39
|
}
|
|
31
40
|
}
|
|
32
41
|
|
|
@@ -192,7 +201,7 @@
|
|
|
192
201
|
|
|
193
202
|
.memori--conversation-button:active,
|
|
194
203
|
.memori--conversation-button:focus {
|
|
195
|
-
box-shadow: 0 0.2rem 0.33rem #b5b6c4 !important;
|
|
204
|
+
/* box-shadow: 0 0.2rem 0.33rem #b5b6c4 !important; */
|
|
196
205
|
color: var(--memori-primary) !important;
|
|
197
206
|
}
|
|
198
207
|
|
|
@@ -6,6 +6,7 @@ import MemoriWidget, { Props } from './MemoriWidget';
|
|
|
6
6
|
|
|
7
7
|
import './MemoriWidget.css';
|
|
8
8
|
import { VisemeProvider } from '../../context/visemeContext';
|
|
9
|
+
import { ArtifactProvider } from '../MemoriArtifactSystem/context/ArtifactContext';
|
|
9
10
|
|
|
10
11
|
const meta: Meta = {
|
|
11
12
|
title: 'Widget/Default',
|
|
@@ -37,9 +38,11 @@ export default meta;
|
|
|
37
38
|
|
|
38
39
|
const Template: Story<Props> = args => (
|
|
39
40
|
<I18nWrapper>
|
|
40
|
-
<
|
|
41
|
-
<
|
|
42
|
-
|
|
41
|
+
<ArtifactProvider>
|
|
42
|
+
<VisemeProvider>
|
|
43
|
+
<MemoriWidget {...args} />
|
|
44
|
+
</VisemeProvider>
|
|
45
|
+
</ArtifactProvider>
|
|
43
46
|
</I18nWrapper>
|
|
44
47
|
);
|
|
45
48
|
// By passing using the Args format for exported stories, you can control the props for a component for reuse in a test
|