@memori.ai/memori-react 9.0.0-alpha.4 → 9.0.0-alpha.6
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 +62 -0
- package/dist/components/AgeVerificationModal/AgeVerificationModal.js +5 -2
- package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
- package/dist/components/Avatar/Avatar.js +5 -10
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +8 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js +1 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js.map +1 -1
- package/dist/components/Avatar/AvatarView/AvatarComponent/constants.d.ts +2 -0
- package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js +14 -5
- package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js.map +1 -1
- package/dist/components/ChatBubble/ChatBubble.js +22 -16
- package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
- package/dist/components/CompletionProviderStatus/CompletionProviderStatus.js +6 -3
- package/dist/components/CompletionProviderStatus/CompletionProviderStatus.js.map +1 -1
- package/dist/components/DateSelector/DateSelector.d.ts +2 -1
- package/dist/components/DateSelector/DateSelector.js +17 -7
- package/dist/components/DateSelector/DateSelector.js.map +1 -1
- package/dist/components/FilePreview/FilePreview.js +22 -5
- package/dist/components/FilePreview/FilePreview.js.map +1 -1
- package/dist/components/Header/ChatConsumptionDropdown.js +1 -1
- package/dist/components/Header/ChatConsumptionDropdown.js.map +1 -1
- package/dist/components/Header/Header.css +2 -1
- package/dist/components/Header/Header.js +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/MediaWidget/MediaItemWidget.js +14 -12
- package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/dist/components/MediaWidget/MediaItemWidget.utils.d.ts +3 -2
- package/dist/components/MediaWidget/MediaItemWidget.utils.js +28 -6
- package/dist/components/MediaWidget/MediaItemWidget.utils.js.map +1 -1
- package/dist/components/MediaWidget/MediaPreviewModal.js +6 -7
- package/dist/components/MediaWidget/MediaPreviewModal.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +5 -4
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +90 -38
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.d.ts +1 -0
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +14 -9
- package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
- package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +2 -2
- package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
- package/dist/components/MemoriWidget/MemoriWidget.js +632 -280
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/components/StartPanel/StartPanel.js +10 -5
- package/dist/components/StartPanel/StartPanel.js.map +1 -1
- package/dist/components/UploadButton/UploadButton.js +21 -5
- package/dist/components/UploadButton/UploadButton.js.map +1 -1
- package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +123 -59
- package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
- package/dist/components/layouts/Chat.js +25 -30
- package/dist/components/layouts/Chat.js.map +1 -1
- package/dist/components/layouts/FullPage.js +5 -8
- package/dist/components/layouts/FullPage.js.map +1 -1
- package/dist/components/layouts/HiddenChat.js +2 -1
- package/dist/components/layouts/HiddenChat.js.map +1 -1
- package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +5 -1
- package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
- package/dist/components/layouts/WebsiteAssistant/website-assistant.css +3 -4
- package/dist/components/layouts/ZoomedFullBody.js +4 -7
- package/dist/components/layouts/ZoomedFullBody.js.map +1 -1
- package/dist/components/layouts/chat.css +19 -31
- package/dist/components/layouts/fullpage.css +52 -19
- package/dist/components/layouts/zoomed-full-body.css +40 -1
- package/dist/helpers/constants.d.ts +3 -0
- package/dist/helpers/constants.js +27 -1
- package/dist/helpers/constants.js.map +1 -1
- package/dist/helpers/credits.d.ts +5 -2
- package/dist/helpers/credits.js +5 -1
- package/dist/helpers/credits.js.map +1 -1
- package/dist/helpers/message.d.ts +1 -1
- package/dist/helpers/message.js +4 -4
- package/dist/helpers/message.js.map +1 -1
- package/dist/helpers/nats/getNatsConfig.d.ts +9 -0
- package/dist/helpers/nats/getNatsConfig.js +65 -0
- package/dist/helpers/nats/getNatsConfig.js.map +1 -0
- package/dist/helpers/nats/isSessionExpiredError.d.ts +3 -0
- package/dist/helpers/nats/isSessionExpiredError.js +36 -0
- package/dist/helpers/nats/isSessionExpiredError.js.map +1 -0
- package/dist/helpers/nats/useNats.d.ts +12 -0
- package/dist/helpers/nats/useNats.js +75 -0
- package/dist/helpers/nats/useNats.js.map +1 -0
- package/dist/helpers/nats/useNatsSession.d.ts +28 -0
- package/dist/helpers/nats/useNatsSession.js +212 -0
- package/dist/helpers/nats/useNatsSession.js.map +1 -0
- package/dist/helpers/usePressTooltip.d.ts +13 -0
- package/dist/helpers/usePressTooltip.js +23 -0
- package/dist/helpers/usePressTooltip.js.map +1 -0
- package/dist/helpers/utils.d.ts +21 -0
- package/dist/helpers/utils.js +75 -4
- package/dist/helpers/utils.js.map +1 -1
- package/dist/locales/de.json +1 -0
- package/dist/locales/en.json +1 -0
- package/dist/locales/es.json +1 -0
- package/dist/locales/fr.json +1 -0
- package/dist/locales/it.json +1 -0
- package/dist/styles.css +1 -1
- package/dist/types/integration.d.ts +3 -0
- package/dist/types/integration.js +16 -0
- package/dist/types/integration.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/esm/components/AgeVerificationModal/AgeVerificationModal.js +5 -2
- package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
- package/esm/components/Avatar/Avatar.js +5 -10
- package/esm/components/Avatar/Avatar.js.map +1 -1
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +9 -2
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js +2 -2
- package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js.map +1 -1
- package/esm/components/Avatar/AvatarView/AvatarComponent/constants.d.ts +2 -0
- package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js +13 -4
- package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js.map +1 -1
- package/esm/components/ChatBubble/ChatBubble.js +22 -16
- package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
- package/esm/components/CompletionProviderStatus/CompletionProviderStatus.js +6 -3
- package/esm/components/CompletionProviderStatus/CompletionProviderStatus.js.map +1 -1
- package/esm/components/DateSelector/DateSelector.d.ts +2 -1
- package/esm/components/DateSelector/DateSelector.js +17 -7
- package/esm/components/DateSelector/DateSelector.js.map +1 -1
- package/esm/components/FilePreview/FilePreview.js +24 -7
- package/esm/components/FilePreview/FilePreview.js.map +1 -1
- package/esm/components/Header/ChatConsumptionDropdown.js +1 -1
- package/esm/components/Header/ChatConsumptionDropdown.js.map +1 -1
- package/esm/components/Header/Header.css +2 -1
- package/esm/components/Header/Header.js +1 -1
- package/esm/components/Header/Header.js.map +1 -1
- package/esm/components/MediaWidget/MediaItemWidget.js +16 -14
- package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
- package/esm/components/MediaWidget/MediaItemWidget.utils.d.ts +3 -2
- package/esm/components/MediaWidget/MediaItemWidget.utils.js +27 -6
- package/esm/components/MediaWidget/MediaItemWidget.utils.js.map +1 -1
- package/esm/components/MediaWidget/MediaPreviewModal.js +6 -7
- package/esm/components/MediaWidget/MediaPreviewModal.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +5 -4
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +90 -38
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.d.ts +1 -0
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +14 -9
- package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
- package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +2 -2
- package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
- package/esm/components/MemoriWidget/MemoriWidget.js +632 -280
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/components/StartPanel/StartPanel.js +10 -5
- package/esm/components/StartPanel/StartPanel.js.map +1 -1
- package/esm/components/UploadButton/UploadButton.js +21 -5
- package/esm/components/UploadButton/UploadButton.js.map +1 -1
- package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +123 -59
- package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
- package/esm/components/layouts/Chat.js +25 -30
- package/esm/components/layouts/Chat.js.map +1 -1
- package/esm/components/layouts/FullPage.js +5 -8
- package/esm/components/layouts/FullPage.js.map +1 -1
- package/esm/components/layouts/HiddenChat.js +2 -1
- package/esm/components/layouts/HiddenChat.js.map +1 -1
- package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +5 -1
- package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
- package/esm/components/layouts/WebsiteAssistant/website-assistant.css +3 -4
- package/esm/components/layouts/ZoomedFullBody.js +4 -7
- package/esm/components/layouts/ZoomedFullBody.js.map +1 -1
- package/esm/components/layouts/chat.css +19 -31
- package/esm/components/layouts/fullpage.css +52 -19
- package/esm/components/layouts/zoomed-full-body.css +40 -1
- package/esm/helpers/constants.d.ts +3 -0
- package/esm/helpers/constants.js +26 -0
- package/esm/helpers/constants.js.map +1 -1
- package/esm/helpers/credits.d.ts +5 -2
- package/esm/helpers/credits.js +5 -1
- package/esm/helpers/credits.js.map +1 -1
- package/esm/helpers/message.d.ts +1 -1
- package/esm/helpers/message.js +2 -2
- package/esm/helpers/message.js.map +1 -1
- package/esm/helpers/nats/getNatsConfig.d.ts +9 -0
- package/esm/helpers/nats/getNatsConfig.js +61 -0
- package/esm/helpers/nats/getNatsConfig.js.map +1 -0
- package/esm/helpers/nats/isSessionExpiredError.d.ts +3 -0
- package/esm/helpers/nats/isSessionExpiredError.js +32 -0
- package/esm/helpers/nats/isSessionExpiredError.js.map +1 -0
- package/esm/helpers/nats/useNats.d.ts +12 -0
- package/esm/helpers/nats/useNats.js +72 -0
- package/esm/helpers/nats/useNats.js.map +1 -0
- package/esm/helpers/nats/useNatsSession.d.ts +28 -0
- package/esm/helpers/nats/useNatsSession.js +208 -0
- package/esm/helpers/nats/useNatsSession.js.map +1 -0
- package/esm/helpers/usePressTooltip.d.ts +13 -0
- package/esm/helpers/usePressTooltip.js +20 -0
- package/esm/helpers/usePressTooltip.js.map +1 -0
- package/esm/helpers/utils.d.ts +21 -0
- package/esm/helpers/utils.js +68 -3
- package/esm/helpers/utils.js.map +1 -1
- package/esm/locales/de.json +1 -0
- package/esm/locales/en.json +1 -0
- package/esm/locales/es.json +1 -0
- package/esm/locales/fr.json +1 -0
- package/esm/locales/it.json +1 -0
- package/esm/styles.css +1 -1
- package/esm/types/integration.d.ts +3 -0
- package/esm/types/integration.js +11 -0
- package/esm/types/integration.js.map +1 -0
- package/esm/version.d.ts +1 -1
- package/esm/version.js +1 -1
- package/package.json +6 -4
- package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +6 -1
- package/src/components/Avatar/Avatar.stories.tsx +45 -28
- package/src/components/Avatar/Avatar.test.tsx +54 -0
- package/src/components/Avatar/Avatar.tsx +8 -12
- package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx +12 -5
- package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.ts +2 -1
- package/src/components/Avatar/AvatarView/AvatarComponent/constants.ts +16 -4
- package/src/components/Avatar/__snapshots__/Avatar.test.tsx.snap +164 -0
- package/src/components/ChatBubble/ChatBubble.tsx +41 -12
- package/src/components/CompletionProviderStatus/CompletionProviderStatus.tsx +8 -4
- package/src/components/DateSelector/DateSelector.stories.tsx +11 -2
- package/src/components/DateSelector/DateSelector.tsx +28 -9
- package/src/components/FilePreview/FilePreview.tsx +28 -7
- package/src/components/Header/ChatConsumptionDropdown.tsx +5 -1
- package/src/components/Header/Header.css +2 -1
- package/src/components/Header/Header.tsx +1 -0
- package/src/components/MediaWidget/MediaItemWidget.tsx +26 -13
- package/src/components/MediaWidget/MediaItemWidget.utils.test.ts +45 -2
- package/src/components/MediaWidget/MediaItemWidget.utils.ts +39 -6
- package/src/components/MediaWidget/MediaPreviewModal.tsx +9 -7
- package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +218 -2252
- package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +5 -4
- package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +90 -38
- package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +31 -14
- package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +4 -3
- package/src/components/MemoriWidget/MemoriWidget.tsx +785 -331
- package/src/components/StartPanel/StartPanel.stories.tsx +22 -0
- package/src/components/StartPanel/StartPanel.test.tsx +64 -1
- package/src/components/StartPanel/StartPanel.tsx +26 -3
- package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +261 -0
- package/src/components/UploadButton/UploadButton.tsx +30 -11
- package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +148 -61
- package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +2 -2
- package/src/components/layouts/Chat.tsx +16 -19
- package/src/components/layouts/FullPage.tsx +32 -25
- package/src/components/layouts/HiddenChat.tsx +4 -0
- package/src/components/layouts/WebsiteAssistant/WebsiteAssistant.tsx +8 -0
- package/src/components/layouts/WebsiteAssistant/website-assistant.css +3 -4
- package/src/components/layouts/ZoomedFullBody.tsx +30 -24
- package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +6 -3
- package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +824 -810
- package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +280 -273
- package/src/components/layouts/chat.css +19 -31
- package/src/components/layouts/fullpage.css +52 -19
- package/src/components/layouts/layouts.stories.tsx +131 -12
- package/src/components/layouts/zoomed-full-body.css +40 -1
- package/src/helpers/constants.ts +32 -1
- package/src/helpers/credits.ts +16 -1
- package/src/helpers/message.test.ts +28 -1
- package/src/helpers/message.ts +4 -4
- package/src/helpers/nats/getNatsConfig.ts +145 -0
- package/src/helpers/nats/isSessionExpiredError.test.ts +38 -0
- package/src/helpers/nats/isSessionExpiredError.ts +51 -0
- package/src/helpers/nats/useNats.ts +124 -0
- package/src/helpers/nats/useNatsSession.ts +394 -0
- package/src/helpers/usePressTooltip.ts +29 -0
- package/src/helpers/utils.test.ts +162 -0
- package/src/helpers/utils.ts +108 -3
- package/src/index.stories.tsx +32 -0
- package/src/locales/de.json +1 -0
- package/src/locales/en.json +1 -0
- package/src/locales/es.json +1 -0
- package/src/locales/fr.json +1 -0
- package/src/locales/it.json +1 -0
- package/src/styles.css +4 -7
- package/src/types/integration.test.ts +32 -0
- package/src/types/integration.ts +31 -0
- package/src/version.ts +1 -1
|
@@ -63,14 +63,14 @@
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
.memori-copy-button--success {
|
|
66
|
-
border-color:
|
|
67
|
-
background: color-mix(in oklch, var(--memori-main-background) 82%,
|
|
66
|
+
border-color: var(--memori-success-color);
|
|
67
|
+
background: color-mix(in oklch, var(--memori-main-background) 82%, var(--memori-success-color) 18%);
|
|
68
68
|
color: var(--memori-text-color);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
.memori-copy-button--error {
|
|
72
|
-
border-color:
|
|
73
|
-
background: color-mix(in oklch, var(--memori-main-background) 84%,
|
|
72
|
+
border-color: var(--memori-error-color);
|
|
73
|
+
background: color-mix(in oklch, var(--memori-main-background) 84%, var(--memori-error-color) 16%);
|
|
74
74
|
color: var(--memori-text-color);
|
|
75
75
|
}
|
|
76
76
|
|
|
@@ -180,6 +180,7 @@
|
|
|
180
180
|
min-width: 280px;
|
|
181
181
|
max-width: 320px;
|
|
182
182
|
border: 1px solid var(--memori-copy-border);
|
|
183
|
+
border: var(--memori-border) solid var(--memori-border-color);
|
|
183
184
|
border-radius: 0.5rem;
|
|
184
185
|
margin-top: var(--memori-spacing-xs);
|
|
185
186
|
background: var(--memori-secondary-background);
|
|
@@ -21,8 +21,23 @@
|
|
|
21
21
|
.memori-artifact-panel-drawer {
|
|
22
22
|
--memori-drawer--width-lg: 46%;
|
|
23
23
|
/* background-color: var(--memori-main-background); */
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Hide the Drawer backdrop so the chat remains fully visible on the left
|
|
27
|
+
(applies to the mobile/legacy Drawer-overlay path) */
|
|
28
|
+
body:has(.memori-artifact-panel-drawer) .memori-drawer__backdrop,
|
|
29
|
+
body:has(.memori-artifact-panel-drawer-fullscreen) .memori-drawer__backdrop {
|
|
30
|
+
display: none !important;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* Inline layout column — renders inside the flex grid, not as a fixed overlay */
|
|
34
|
+
.memori-artifact-layout-column {
|
|
35
|
+
display: flex;
|
|
36
|
+
overflow: hidden;
|
|
37
|
+
width: 100%;
|
|
38
|
+
height: 100%;
|
|
39
|
+
min-height: 100vh;
|
|
40
|
+
flex-direction: column;
|
|
26
41
|
}
|
|
27
42
|
|
|
28
43
|
/* Main Drawer Container (Mobile Only) */
|
|
@@ -32,9 +47,6 @@
|
|
|
32
47
|
font-family: var(--memori-font-family);
|
|
33
48
|
}
|
|
34
49
|
|
|
35
|
-
.memori-artifact-panel-drawer > div > div > div {
|
|
36
|
-
pointer-events: auto;
|
|
37
|
-
}
|
|
38
50
|
/* Web Split Panel Container */
|
|
39
51
|
.memori-artifact-panel {
|
|
40
52
|
position: relative;
|
|
@@ -595,6 +607,7 @@
|
|
|
595
607
|
display: flex;
|
|
596
608
|
flex-flow: row;
|
|
597
609
|
align-items: center;
|
|
610
|
+
padding: 0 var(--memori-spacing-md);
|
|
598
611
|
margin-top: var(--memori-spacing-lg);
|
|
599
612
|
/* justify-content: space-between; */
|
|
600
613
|
gap: var(--memori-spacing-sm);
|
|
@@ -642,14 +655,8 @@
|
|
|
642
655
|
|
|
643
656
|
.memori-button--more-options {
|
|
644
657
|
padding: var(--memori-spacing-sm) var(--memori-spacing-md);
|
|
645
|
-
border: 1px solid #e1e5e9;
|
|
658
|
+
border: 1px solid var(--memori-border-color, #e1e5e9);
|
|
646
659
|
border-radius: var(--memori-radius-box);
|
|
647
|
-
border-top-color: rgb(225, 229, 233);
|
|
648
|
-
border-right-color: rgb(225, 229, 233);
|
|
649
|
-
border-bottom-color: rgb(225, 229, 233);
|
|
650
|
-
border-left-color: rgb(225, 229, 233);
|
|
651
|
-
border-bottom-right-radius: 6px;
|
|
652
|
-
border-top-right-radius: 6px;
|
|
653
660
|
}
|
|
654
661
|
|
|
655
662
|
.memori-artifact-drawer--sidebar {
|
|
@@ -658,10 +665,25 @@
|
|
|
658
665
|
padding: 1rem;
|
|
659
666
|
padding-left: 1rem;
|
|
660
667
|
border-radius: var(--memori-radius-box);
|
|
661
|
-
border-left: var(--memori-border) solid var(--memori-
|
|
668
|
+
border-left: var(--memori-border) solid var(--memori-primary);
|
|
662
669
|
background: var(--memori-primary-subtle);
|
|
663
670
|
}
|
|
664
671
|
|
|
672
|
+
.memori-artifact-drawer--close-desktop {
|
|
673
|
+
width: 48px;
|
|
674
|
+
min-width: 48px;
|
|
675
|
+
height: 48px;
|
|
676
|
+
min-height: 48px;
|
|
677
|
+
padding: 0;
|
|
678
|
+
border: var(--memori-border) solid var(--memori-border-color);
|
|
679
|
+
margin: 0;
|
|
680
|
+
margin-left: 0 !important;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
.memori-artifact-drawer--close-desktop:hover {
|
|
684
|
+
color: #fff !important;
|
|
685
|
+
}
|
|
686
|
+
|
|
665
687
|
/* Mobile Drawer Panel */
|
|
666
688
|
.memori-artifact-drawer--panel-mobile {
|
|
667
689
|
position: fixed;
|
|
@@ -696,18 +718,64 @@
|
|
|
696
718
|
}
|
|
697
719
|
|
|
698
720
|
@media (max-width: 1024px) {
|
|
699
|
-
.memori-artifact-panel-drawer > div > div > div {
|
|
700
|
-
z-index: 0;
|
|
701
|
-
box-shadow: none !important;
|
|
702
|
-
}
|
|
703
|
-
|
|
704
721
|
.memori-artifact-drawer-fullscreen {
|
|
705
722
|
display: none;
|
|
706
723
|
}
|
|
707
724
|
}
|
|
708
725
|
|
|
709
726
|
/* Responsive Design */
|
|
710
|
-
@media (max-width:
|
|
727
|
+
@media (max-width: 1260px) {
|
|
728
|
+
/* Hide the empty desktop-only action bar on mobile — all actions live in top-right */
|
|
729
|
+
.memori-artifact-drawer-container-actions {
|
|
730
|
+
display: none;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
/* Mobile header: full-width bar with tabs on left, actions on right */
|
|
734
|
+
.memori-artifact-drawer-top-right {
|
|
735
|
+
width: 100%;
|
|
736
|
+
justify-content: space-between;
|
|
737
|
+
padding: var(--memori-spacing-sm) var(--memori-spacing-md);
|
|
738
|
+
border-bottom: 1px solid var(--memori-border-color);
|
|
739
|
+
margin-bottom: var(--memori-spacing-xs);
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
/* Make mobile action buttons match the tab switch height */
|
|
743
|
+
.memori-artifact-drawer-top-right .memori-button--more-options,
|
|
744
|
+
.memori-artifact-drawer-top-right .memori-artifact-drawer--close {
|
|
745
|
+
display: flex;
|
|
746
|
+
width: 40px;
|
|
747
|
+
min-width: 40px;
|
|
748
|
+
height: 40px;
|
|
749
|
+
min-height: 40px;
|
|
750
|
+
align-items: center;
|
|
751
|
+
justify-content: center;
|
|
752
|
+
padding: 0;
|
|
753
|
+
border: 1px solid var(--memori-border-color);
|
|
754
|
+
border-radius: var(--memori-radius-box);
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
.memori-artifact-drawer-top-right .memori-artifact-drawer--close {
|
|
758
|
+
margin-left: 0;
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
/* Solid opaque dropdown popover on mobile */
|
|
762
|
+
.memori-artifact-drawer-top-right .memori-mobile-dropdown {
|
|
763
|
+
z-index: 1100;
|
|
764
|
+
border: 1px solid var(--memori-border-color);
|
|
765
|
+
backdrop-filter: none;
|
|
766
|
+
background: var(--memori-main-background, #fff);
|
|
767
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
/* Dropdown icon visibility */
|
|
771
|
+
.memori-artifact-drawer-top-right .memori-mobile-dropdown .memori-artifact-action-icon {
|
|
772
|
+
width: 18px;
|
|
773
|
+
height: 18px;
|
|
774
|
+
color: var(--memori-text-color);
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
@media (max-width: 1260px) {
|
|
711
779
|
/* Mobile header actions */
|
|
712
780
|
.memori-artifact-drawer-header-actions {
|
|
713
781
|
display: none;
|
|
@@ -811,8 +879,8 @@
|
|
|
811
879
|
}
|
|
812
880
|
}
|
|
813
881
|
|
|
814
|
-
@media (min-width:
|
|
815
|
-
/* Hide mobile drawer on desktop */
|
|
882
|
+
@media (min-width: 1261px) {
|
|
883
|
+
/* Hide mobile drawer on desktop — inline column layout takes over */
|
|
816
884
|
.memori-artifact-drawer {
|
|
817
885
|
display: none !important;
|
|
818
886
|
}
|
|
@@ -823,18 +891,6 @@
|
|
|
823
891
|
}
|
|
824
892
|
}
|
|
825
893
|
|
|
826
|
-
@media (min-width: 769px) and (max-width: 1024px) {
|
|
827
|
-
.memori-artifact-drawer--panel {
|
|
828
|
-
width: 70%;
|
|
829
|
-
}
|
|
830
|
-
}
|
|
831
|
-
|
|
832
|
-
@media (min-width: 1025px) {
|
|
833
|
-
.memori-artifact-drawer--panel {
|
|
834
|
-
width: 50%;
|
|
835
|
-
}
|
|
836
|
-
}
|
|
837
|
-
|
|
838
894
|
/* Fullscreen Mode */
|
|
839
895
|
.memori-artifact-drawer--fullscreen .memori-artifact-drawer--panel {
|
|
840
896
|
width: 100% !important;
|
|
@@ -871,10 +927,6 @@
|
|
|
871
927
|
justify-content: flex-end;
|
|
872
928
|
}
|
|
873
929
|
|
|
874
|
-
.memori-artifact-drawer--close-desktop {
|
|
875
|
-
margin-left: 0 !important;
|
|
876
|
-
}
|
|
877
|
-
|
|
878
930
|
.memori-artifact-drawer-container-actions--chatlog {
|
|
879
931
|
padding: 0rem 1rem;
|
|
880
932
|
}
|
|
@@ -918,7 +970,7 @@
|
|
|
918
970
|
}
|
|
919
971
|
|
|
920
972
|
/* Mobile-specific dropdown positioning */
|
|
921
|
-
@media (max-width:
|
|
973
|
+
@media (max-width: 1260px) {
|
|
922
974
|
.memori-artifact-drawer--close {
|
|
923
975
|
margin-left: 0;
|
|
924
976
|
}
|
|
@@ -24,9 +24,13 @@ import cx from 'classnames';
|
|
|
24
24
|
import { useCopyArtifact } from '../ArtifactActions/hooks/useCopyArtifact';
|
|
25
25
|
import TabSwitch from './components/TabSwitch';
|
|
26
26
|
|
|
27
|
-
const ArtifactDrawer: React.FC<{
|
|
28
|
-
isChatLogPanel
|
|
29
|
-
|
|
27
|
+
const ArtifactDrawer: React.FC<{
|
|
28
|
+
isChatLogPanel?: boolean;
|
|
29
|
+
/** Render as a plain flex column (no Drawer overlay). Used when the drawer
|
|
30
|
+
* is mounted as a proper flex sibling in the page layout. On mobile the
|
|
31
|
+
* component falls back to the Drawer overlay regardless of this flag. */
|
|
32
|
+
isLayoutColumn?: boolean;
|
|
33
|
+
}> = ({ isChatLogPanel = false, isLayoutColumn = false }) => {
|
|
30
34
|
const { state, closeArtifact, toggleFullscreen } = useArtifact();
|
|
31
35
|
const { t } = useTranslation();
|
|
32
36
|
const [isMobile, setIsMobile] = useState(false);
|
|
@@ -59,7 +63,7 @@ const ArtifactDrawer: React.FC<{ isChatLogPanel?: boolean }> = ({
|
|
|
59
63
|
// Mobile detection
|
|
60
64
|
useEffect(() => {
|
|
61
65
|
const checkMobile = () => {
|
|
62
|
-
setIsMobile(window.innerWidth <=
|
|
66
|
+
setIsMobile(window.innerWidth <= 1260);
|
|
63
67
|
};
|
|
64
68
|
|
|
65
69
|
checkMobile();
|
|
@@ -112,13 +116,9 @@ const ArtifactDrawer: React.FC<{ isChatLogPanel?: boolean }> = ({
|
|
|
112
116
|
closeArtifact();
|
|
113
117
|
}, [closeArtifact]);
|
|
114
118
|
|
|
115
|
-
if (!state.currentArtifact) {
|
|
116
|
-
return null;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
119
|
const hasPreview =
|
|
120
|
-
state.currentArtifact
|
|
121
|
-
state.currentArtifact
|
|
120
|
+
state.currentArtifact?.mimeType === 'html' ||
|
|
121
|
+
state.currentArtifact?.mimeType === 'markdown';
|
|
122
122
|
|
|
123
123
|
const ContentContainer = useCallback(
|
|
124
124
|
({ children }: { children: React.ReactNode }) => {
|
|
@@ -137,7 +137,11 @@ const ArtifactDrawer: React.FC<{ isChatLogPanel?: boolean }> = ({
|
|
|
137
137
|
{children}
|
|
138
138
|
</div>
|
|
139
139
|
);
|
|
140
|
+
} else if (isLayoutColumn && !isMobile) {
|
|
141
|
+
// Desktop inline column — rendered as a normal flex child by the layout
|
|
142
|
+
return <div className="memori-artifact-layout-column">{children}</div>;
|
|
140
143
|
} else {
|
|
144
|
+
// Mobile or legacy: floating Drawer overlay
|
|
141
145
|
return (
|
|
142
146
|
<Drawer
|
|
143
147
|
open={state.isDrawerOpen}
|
|
@@ -158,6 +162,7 @@ const ArtifactDrawer: React.FC<{ isChatLogPanel?: boolean }> = ({
|
|
|
158
162
|
},
|
|
159
163
|
[
|
|
160
164
|
isChatLogPanel,
|
|
165
|
+
isLayoutColumn,
|
|
161
166
|
handleClose,
|
|
162
167
|
state.isDrawerOpen,
|
|
163
168
|
state.isFullscreen,
|
|
@@ -217,7 +222,11 @@ const ArtifactDrawer: React.FC<{ isChatLogPanel?: boolean }> = ({
|
|
|
217
222
|
} catch (error) {
|
|
218
223
|
console.error('External open failed:', error);
|
|
219
224
|
}
|
|
220
|
-
}, []);
|
|
225
|
+
}, [getMimeTypeString]);
|
|
226
|
+
|
|
227
|
+
if (!state.currentArtifact) {
|
|
228
|
+
return null;
|
|
229
|
+
}
|
|
221
230
|
|
|
222
231
|
// Render web split panel
|
|
223
232
|
return (
|
|
@@ -249,9 +258,15 @@ const ArtifactDrawer: React.FC<{ isChatLogPanel?: boolean }> = ({
|
|
|
249
258
|
{!isChatLogPanel && (
|
|
250
259
|
<Button
|
|
251
260
|
onClick={closeArtifact}
|
|
252
|
-
variant="
|
|
261
|
+
variant="outline"
|
|
253
262
|
aria-label={t('artifact.close') || 'Close'}
|
|
254
|
-
|
|
263
|
+
className="memori-artifact-drawer--close-desktop"
|
|
264
|
+
icon={
|
|
265
|
+
<X
|
|
266
|
+
className="memori-artifact-panel--close-icon"
|
|
267
|
+
aria-hidden
|
|
268
|
+
/>
|
|
269
|
+
}
|
|
255
270
|
title={t('artifact.close') || 'Close'}
|
|
256
271
|
/>
|
|
257
272
|
)}
|
|
@@ -396,7 +411,9 @@ const ArtifactDrawer: React.FC<{ isChatLogPanel?: boolean }> = ({
|
|
|
396
411
|
variant="ghost"
|
|
397
412
|
aria-label={t('artifact.close') || 'Close'}
|
|
398
413
|
title={t('artifact.close') || 'Close'}
|
|
399
|
-
icon={
|
|
414
|
+
icon={
|
|
415
|
+
<X className="memori-artifact-panel--close-icon" aria-hidden />
|
|
416
|
+
}
|
|
400
417
|
/>
|
|
401
418
|
)}
|
|
402
419
|
</div>
|
|
@@ -361,10 +361,11 @@ const ArtifactHandler: React.FC<ArtifactHandlerProps> = ({
|
|
|
361
361
|
</div>
|
|
362
362
|
</button>
|
|
363
363
|
|
|
364
|
-
{/* Render
|
|
365
|
-
|
|
364
|
+
{/* Render inline drawer only for chatlog-panel mode.
|
|
365
|
+
In layout-column mode the drawer is mounted by the page layout. */}
|
|
366
|
+
{isChatlogPanel && state.isDrawerOpen &&
|
|
366
367
|
state.currentArtifact?.id === artifact.id && (
|
|
367
|
-
<ArtifactDrawer isChatLogPanel={
|
|
368
|
+
<ArtifactDrawer isChatLogPanel={true} />
|
|
368
369
|
)}
|
|
369
370
|
</React.Fragment>
|
|
370
371
|
);
|