@memori.ai/memori-react 9.0.0-alpha.20 → 9.0.0-alpha.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/CHANGELOG.md +438 -1
  2. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +1 -1
  3. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  4. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.d.ts +2 -2
  5. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js +6 -6
  6. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js.map +1 -1
  7. package/dist/components/ChatInputs/ChatInputs.js +1 -1
  8. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  9. package/dist/components/ContentPreviewModal/ContentPreviewModal.css +6 -22
  10. package/dist/components/FilePreview/FilePreview.css +41 -20
  11. package/dist/components/FilePreview/FilePreview.d.ts +2 -1
  12. package/dist/components/FilePreview/FilePreview.js +6 -2
  13. package/dist/components/FilePreview/FilePreview.js.map +1 -1
  14. package/dist/components/KnownFacts/KnownFacts.js +2 -2
  15. package/dist/components/KnownFacts/KnownFacts.js.map +1 -1
  16. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
  17. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
  18. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +14 -12
  19. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
  20. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +1 -106
  21. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +8 -9
  22. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +1 -0
  23. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  24. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +7 -0
  25. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +210 -62
  26. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  27. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.d.ts +3 -1
  28. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.js +65 -1
  29. package/dist/components/MemoriArtifactSystem/context/ArtifactContext.js.map +1 -1
  30. package/dist/components/MemoriArtifactSystem/types/artifact.types.d.ts +11 -0
  31. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.js +18 -13
  32. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.js.map +1 -1
  33. package/dist/components/MemoriArtifactSystem/utils/applyEdits.d.ts +8 -0
  34. package/dist/components/MemoriArtifactSystem/utils/applyEdits.js +117 -0
  35. package/dist/components/MemoriArtifactSystem/utils/applyEdits.js.map +1 -0
  36. package/dist/components/MemoriWidget/MemoriWidget.css +59 -0
  37. package/dist/components/Snippet/Snippet.css +6 -36
  38. package/dist/components/Snippet/Snippet.js +3 -1
  39. package/dist/components/Snippet/Snippet.js.map +1 -1
  40. package/dist/components/StartPanel/StartPanel.css +106 -0
  41. package/dist/components/StartPanel/StartPanel.js +1 -1
  42. package/dist/components/StartPanel/StartPanel.js.map +1 -1
  43. package/dist/components/UploadButton/UploadButton.css +0 -19
  44. package/dist/components/UploadButton/UploadButton.js +1 -3
  45. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  46. package/dist/components/UploadButton/UploadImages/UploadImages.js +1 -1
  47. package/dist/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  48. package/dist/components/layouts/chat.css +2 -0
  49. package/dist/components/layouts/zoomed-full-body.css +1 -0
  50. package/dist/helpers/message.js +3 -0
  51. package/dist/helpers/message.js.map +1 -1
  52. package/dist/locales/de.json +3 -0
  53. package/dist/locales/en.json +3 -0
  54. package/dist/locales/es.json +3 -0
  55. package/dist/locales/fr.json +3 -0
  56. package/dist/locales/it.json +3 -0
  57. package/dist/styles.css +1 -1
  58. package/dist/version.d.ts +1 -1
  59. package/dist/version.js +1 -1
  60. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +2 -2
  61. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  62. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.d.ts +2 -2
  63. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js +4 -5
  64. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js.map +1 -1
  65. package/esm/components/ChatInputs/ChatInputs.js +1 -1
  66. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  67. package/esm/components/ContentPreviewModal/ContentPreviewModal.css +6 -22
  68. package/esm/components/FilePreview/FilePreview.css +41 -20
  69. package/esm/components/FilePreview/FilePreview.d.ts +2 -1
  70. package/esm/components/FilePreview/FilePreview.js +7 -3
  71. package/esm/components/FilePreview/FilePreview.js.map +1 -1
  72. package/esm/components/KnownFacts/KnownFacts.js +2 -2
  73. package/esm/components/KnownFacts/KnownFacts.js.map +1 -1
  74. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +1 -1
  75. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -1
  76. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js +15 -13
  77. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.js.map +1 -1
  78. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +1 -106
  79. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +8 -9
  80. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +1 -0
  81. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  82. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +7 -0
  83. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +211 -63
  84. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  85. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.d.ts +3 -1
  86. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.js +66 -2
  87. package/esm/components/MemoriArtifactSystem/context/ArtifactContext.js.map +1 -1
  88. package/esm/components/MemoriArtifactSystem/types/artifact.types.d.ts +11 -0
  89. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.js +18 -13
  90. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.js.map +1 -1
  91. package/esm/components/MemoriArtifactSystem/utils/applyEdits.d.ts +8 -0
  92. package/esm/components/MemoriArtifactSystem/utils/applyEdits.js +112 -0
  93. package/esm/components/MemoriArtifactSystem/utils/applyEdits.js.map +1 -0
  94. package/esm/components/MemoriWidget/MemoriWidget.css +59 -0
  95. package/esm/components/Snippet/Snippet.css +6 -36
  96. package/esm/components/Snippet/Snippet.js +4 -2
  97. package/esm/components/Snippet/Snippet.js.map +1 -1
  98. package/esm/components/StartPanel/StartPanel.css +106 -0
  99. package/esm/components/StartPanel/StartPanel.js +2 -2
  100. package/esm/components/StartPanel/StartPanel.js.map +1 -1
  101. package/esm/components/UploadButton/UploadButton.css +0 -19
  102. package/esm/components/UploadButton/UploadButton.js +1 -3
  103. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  104. package/esm/components/UploadButton/UploadImages/UploadImages.js +1 -1
  105. package/esm/components/UploadButton/UploadImages/UploadImages.js.map +1 -1
  106. package/esm/components/layouts/chat.css +2 -0
  107. package/esm/components/layouts/zoomed-full-body.css +1 -0
  108. package/esm/helpers/message.js +3 -0
  109. package/esm/helpers/message.js.map +1 -1
  110. package/esm/locales/de.json +3 -0
  111. package/esm/locales/en.json +3 -0
  112. package/esm/locales/es.json +3 -0
  113. package/esm/locales/fr.json +3 -0
  114. package/esm/locales/it.json +3 -0
  115. package/esm/styles.css +1 -1
  116. package/esm/version.d.ts +1 -1
  117. package/esm/version.js +1 -1
  118. package/package.json +1 -1
  119. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx +2 -2
  120. package/src/components/Avatar/AvatarView/AvatarComponent/constants.test.ts +19 -0
  121. package/src/components/Avatar/AvatarView/AvatarComponent/constants.ts +9 -6
  122. package/src/components/ChatInputs/ChatInputs.tsx +1 -0
  123. package/src/components/ContentPreviewModal/ContentPreviewModal.css +6 -22
  124. package/src/components/FilePreview/FilePreview.css +41 -20
  125. package/src/components/FilePreview/FilePreview.tsx +14 -0
  126. package/src/components/FilePreview/__snapshots__/FilePreview.test.tsx.snap +14 -0
  127. package/src/components/KnownFacts/KnownFacts.tsx +0 -2
  128. package/src/components/MediaWidget/MediaPreviewModal.test.tsx +2 -3
  129. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +19 -33
  130. package/src/components/MemoriArtifactSystem/components/ArtifactActions/components/CopyButtonWithDropdown.tsx +44 -45
  131. package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +1 -106
  132. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +8 -9
  133. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +24 -20
  134. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/components/TabSwitch.css +7 -0
  135. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +357 -148
  136. package/src/components/MemoriArtifactSystem/context/ArtifactContext.tsx +111 -9
  137. package/src/components/MemoriArtifactSystem/types/artifact.types.ts +20 -1
  138. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.test.tsx +1 -0
  139. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.tsx +19 -13
  140. package/src/components/MemoriArtifactSystem/utils/applyEdits.test.ts +85 -0
  141. package/src/components/MemoriArtifactSystem/utils/applyEdits.ts +173 -0
  142. package/src/components/MemoriWidget/MemoriWidget.css +59 -0
  143. package/src/components/Snippet/Snippet.css +6 -36
  144. package/src/components/Snippet/Snippet.tsx +6 -7
  145. package/src/components/StartPanel/StartPanel.css +106 -0
  146. package/src/components/StartPanel/StartPanel.stories.tsx +20 -0
  147. package/src/components/StartPanel/StartPanel.tsx +8 -0
  148. package/src/components/UploadButton/UploadButton.css +0 -19
  149. package/src/components/UploadButton/UploadButton.tsx +0 -11
  150. package/src/components/UploadButton/UploadImages/UploadImages.tsx +1 -1
  151. package/src/components/layouts/chat.css +2 -0
  152. package/src/components/layouts/zoomed-full-body.css +1 -0
  153. package/src/helpers/message.ts +15 -0
  154. package/src/locales/de.json +3 -0
  155. package/src/locales/en.json +3 -0
  156. package/src/locales/es.json +3 -0
  157. package/src/locales/fr.json +3 -0
  158. package/src/locales/it.json +3 -0
  159. package/src/version.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  import React, { useEffect, useState } from 'react';
2
2
  import { Medium } from '@memori.ai/memori-api-client/dist/types';
3
3
  import { Button } from '@memori.ai/ui';
4
- import { Copy } from 'lucide-react';
4
+ import { Check, Copy } from 'lucide-react';
5
5
  import { prismSyntaxLangs } from '../../helpers/constants';
6
6
  import { useTranslation } from 'react-i18next';
7
7
  import cx from 'classnames';
@@ -127,15 +127,14 @@ const Snippet = ({
127
127
 
128
128
  {showCopyButton && (
129
129
  <div className="memori-snippet--copy-wrapper">
130
- {copied && (
131
- <span className="memori-snippet--copied-text">{t('copied') || 'Copied!'}</span>
132
- )}
133
130
  <Button
134
131
  variant="ghost"
135
132
  shape="circle"
136
- className="memori-snippet--copy-button"
137
- title={t('copy') || 'Copy'}
138
- icon={<Copy />}
133
+ className={cx('memori-snippet--copy-button', {
134
+ 'memori-snippet--copy-button--copied': copied,
135
+ })}
136
+ title={copied ? t('copied') || 'Copied' : t('copy') || 'Copy'}
137
+ icon={copied ? <Check /> : <Copy />}
139
138
  onMouseDown={handleCopy}
140
139
  />
141
140
  </div>
@@ -182,6 +182,84 @@
182
182
  line-height: var(--memori-text-line-tight);
183
183
  overflow-wrap: break-word;
184
184
  overflow-x: hidden;
185
+ padding-inline-end: 8px;
186
+ }
187
+
188
+ @supports not selector(::-webkit-scrollbar) {
189
+ .memori--start-panel,
190
+ .memori--description-text,
191
+ .memori-chat-layout--start-panel-wrap {
192
+ scrollbar-color: color-mix(in oklch, var(--memori-text-color) 14%, transparent) transparent;
193
+ scrollbar-width: thin;
194
+ }
195
+
196
+ .memori--start-panel:hover,
197
+ .memori--start-panel:focus-within,
198
+ .memori--start-panel:active,
199
+ .memori--description-text:hover,
200
+ .memori--description-text:focus-within,
201
+ .memori--description-text:active,
202
+ .memori-chat-layout--start-panel-wrap:hover,
203
+ .memori-chat-layout--start-panel-wrap:focus-within,
204
+ .memori-chat-layout--start-panel-wrap:active {
205
+ scrollbar-color: color-mix(in oklch, var(--memori-text-color) 38%, transparent) transparent;
206
+ }
207
+ }
208
+
209
+ .memori--start-panel::-webkit-scrollbar,
210
+ .memori--description-text::-webkit-scrollbar,
211
+ .memori-chat-layout--start-panel-wrap::-webkit-scrollbar {
212
+ width: 5px;
213
+ height: 5px;
214
+ }
215
+
216
+ .memori--start-panel::-webkit-scrollbar-track,
217
+ .memori--description-text::-webkit-scrollbar-track,
218
+ .memori-chat-layout--start-panel-wrap::-webkit-scrollbar-track {
219
+ margin: 4px 0;
220
+ background: transparent;
221
+ }
222
+
223
+ .memori--start-panel::-webkit-scrollbar-thumb,
224
+ .memori--description-text::-webkit-scrollbar-thumb,
225
+ .memori-chat-layout--start-panel-wrap::-webkit-scrollbar-thumb {
226
+ border-radius: 999px;
227
+ background-color: color-mix(in oklch, var(--memori-text-color) 14%, transparent);
228
+ }
229
+
230
+ .memori--start-panel:hover::-webkit-scrollbar-thumb,
231
+ .memori--start-panel:focus-within::-webkit-scrollbar-thumb,
232
+ .memori--start-panel:active::-webkit-scrollbar-thumb,
233
+ .memori--description-text:hover::-webkit-scrollbar-thumb,
234
+ .memori--description-text:focus-within::-webkit-scrollbar-thumb,
235
+ .memori--description-text:active::-webkit-scrollbar-thumb,
236
+ .memori-chat-layout--start-panel-wrap:hover::-webkit-scrollbar-thumb,
237
+ .memori-chat-layout--start-panel-wrap:focus-within::-webkit-scrollbar-thumb,
238
+ .memori-chat-layout--start-panel-wrap:active::-webkit-scrollbar-thumb,
239
+ .memori--start-panel::-webkit-scrollbar-thumb:hover,
240
+ .memori--description-text::-webkit-scrollbar-thumb:hover,
241
+ .memori-chat-layout--start-panel-wrap::-webkit-scrollbar-thumb:hover {
242
+ background-color: color-mix(in oklch, var(--memori-text-color) 38%, transparent);
243
+ }
244
+
245
+ .memori--start-panel::-webkit-scrollbar-thumb:active,
246
+ .memori--description-text::-webkit-scrollbar-thumb:active,
247
+ .memori-chat-layout--start-panel-wrap::-webkit-scrollbar-thumb:active {
248
+ background-color: color-mix(in oklch, var(--memori-text-color) 52%, transparent);
249
+ }
250
+
251
+ @media (hover: none) {
252
+ .memori--start-panel,
253
+ .memori--description-text,
254
+ .memori-chat-layout--start-panel-wrap {
255
+ scrollbar-color: color-mix(in oklch, var(--memori-text-color) 28%, transparent) transparent;
256
+ }
257
+
258
+ .memori--start-panel::-webkit-scrollbar-thumb,
259
+ .memori--description-text::-webkit-scrollbar-thumb,
260
+ .memori-chat-layout--start-panel-wrap::-webkit-scrollbar-thumb {
261
+ background-color: color-mix(in oklch, var(--memori-text-color) 28%, transparent);
262
+ }
185
263
  }
186
264
 
187
265
  .memori--description-text--full {
@@ -473,6 +551,12 @@
473
551
  text-align: left;
474
552
  }
475
553
 
554
+ .memori--description-text--expand-symbol,
555
+ .memori--description-text--collapse-symbol {
556
+ width: 100%;
557
+ justify-content: space-between;
558
+ }
559
+
476
560
  .memori--description-text > button svg,
477
561
  .memori--description-text .memori-expandable__button svg {
478
562
  margin-left: auto;
@@ -525,6 +609,16 @@
525
609
  text-align: left;
526
610
  }
527
611
 
612
+ .memori--title-container__content
613
+ .memori--description-text--collapsible:has(.memori--description-text--expand-symbol)
614
+ .memori-expandable__inner {
615
+ display: -webkit-box;
616
+ overflow: hidden;
617
+ -webkit-box-orient: vertical;
618
+ -webkit-line-clamp: 3;
619
+ text-overflow: ellipsis;
620
+ }
621
+
528
622
  .memori--description-text--expand-symbol,
529
623
  .memori--description-text--collapse-symbol {
530
624
  display: inline-flex;
@@ -532,9 +626,21 @@
532
626
  color: var(--memori-primary);
533
627
  font-size: 0.8rem;
534
628
  font-weight: var(--memori-text-weight-medium);
629
+ gap: var(--memori-spacing-xs);
535
630
  line-height: 1.2;
536
631
  }
537
632
 
633
+ .memori--description-text--toggle-chevron {
634
+ width: 0.85rem;
635
+ height: 0.85rem;
636
+ flex-shrink: 0;
637
+ transition: transform 0.2s ease;
638
+ }
639
+
640
+ .memori--description-text--toggle-chevron--up {
641
+ transform: rotate(180deg);
642
+ }
643
+
538
644
  /* The Expandable toggle is a memori-button ghost, which inherits a global
539
645
  `transform: scale(1.015)` on hover from @memori.ai/ui. Disable it here. */
540
646
  .memori-expandable.memori--description-text--collapsible .memori-button:hover:not(:disabled, .memori-button--disabled),
@@ -84,6 +84,26 @@ Default.args = {
84
84
  onClickStart: () => {},
85
85
  };
86
86
 
87
+ export const WithLongDescription = Template.bind({});
88
+ WithLongDescription.args = {
89
+ memori: {
90
+ ...memori,
91
+ enableCompletions: false,
92
+ description:
93
+ 'Un agente conversazionale pensato per accogliere visitatori, rispondere alle domande più frequenti e accompagnare le persone nella scoperta di contenuti, servizi e storie. La descrizione è volutamente lunga così da verificare il troncamento a tre righe, l’ellipsis e il toggle Espandi/Riduci.',
94
+ },
95
+ tenant,
96
+ language: 'it',
97
+ userLang: 'it',
98
+ setUserLang: () => {},
99
+ setVenue: () => {},
100
+ openPositionPopover: () => {},
101
+ instruct: false,
102
+ sessionId: sessionID,
103
+ clickedStart: false,
104
+ onClickStart: () => {},
105
+ };
106
+
87
107
  export const WithExistingSession = Template.bind({});
88
108
  WithExistingSession.args = {
89
109
  memori: {
@@ -304,11 +304,19 @@ const StartPanel: React.FC<Props> = ({
304
304
  expandSymbol={_lang => (
305
305
  <span className="memori--description-text--expand-symbol">
306
306
  {t('expand')}
307
+ <ChevronDown
308
+ className="memori--description-text--toggle-chevron"
309
+ aria-hidden
310
+ />
307
311
  </span>
308
312
  )}
309
313
  collapseSymbol={_lang => (
310
314
  <span className="memori--description-text--collapse-symbol">
311
315
  {t('collapse')}
316
+ <ChevronDown
317
+ className="memori--description-text--toggle-chevron memori--description-text--toggle-chevron--up"
318
+ aria-hidden
319
+ />
312
320
  </span>
313
321
  )}
314
322
  >
@@ -435,25 +435,6 @@
435
435
  background-color: #fa5252;
436
436
  }
437
437
 
438
- /* Document count indicator */
439
- .memori--document-count {
440
- position: absolute;
441
- z-index: 5;
442
- top: -20px;
443
- right: -10px;
444
- padding: calc(var(--memori-spacing-xs) / 4) calc(var(--memori-spacing-xs) + 2px);
445
- border-radius: var(--memori-radius-box);
446
- background-color: #51cf66;
447
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
448
- color: var(--memori-text-color);
449
- font-size: 11px;
450
- font-weight: bold;
451
- }
452
-
453
- .memori--document-count-full {
454
- background-color: #fa5252;
455
- }
456
-
457
438
  /* Styled upload slots info */
458
439
  .memori--upload-slots-info {
459
440
  margin-left: var(--memori-spacing-xs);
@@ -652,17 +652,6 @@ ${file.textAssetUrl || ''}
652
652
  )}
653
653
  </Tooltip>
654
654
 
655
- {/* Media count indicator */}
656
- {currentMediaCount > 0 && (
657
- <div
658
- className={cx('memori--document-count', {
659
- 'memori--document-count-full': hasReachedMediaLimit,
660
- })}
661
- >
662
- {currentMediaCount}/{maxDocumentsPerMessage}
663
- </div>
664
- )}
665
-
666
655
  {/* Hidden components */}
667
656
  <div className="memori--hidden-uploader" ref={documentRef} aria-hidden>
668
657
  <UploadDocuments
@@ -499,7 +499,7 @@ const UploadImages: React.FC<UploadImagesProps> = ({
499
499
  borderTop: '1px solid rgba(255, 255, 255, 0.2)',
500
500
  }}
501
501
  >
502
- <Button onClick={handleCancelUpload} variant="outline" danger>
502
+ <Button onClick={handleCancelUpload} variant="outline">
503
503
  {t('cancel') ?? 'Cancel'}
504
504
  </Button>
505
505
  <Button
@@ -25,6 +25,7 @@
25
25
  line-height: 1.2;
26
26
  overflow-x: hidden;
27
27
  overflow-y: auto;
28
+ padding-inline-end: 8px;
28
29
  text-align: left;
29
30
  }
30
31
 
@@ -105,6 +106,7 @@
105
106
  flex-direction: column;
106
107
  align-items: center;
107
108
  justify-content: center;
109
+ padding-inline-end: 6px;
108
110
  }
109
111
 
110
112
  /* Full-bleed input strip across the chat column; field stays on the conversation axis */
@@ -212,6 +212,7 @@
212
212
  /* Avatar column: its own rounded panel, wider than the chat sidebar it replaced. */
213
213
  .memori-widget.memori-layout-zoomed_full_body .memori--grid-column-left {
214
214
  position: relative;
215
+ z-index: 10;
215
216
  display: flex;
216
217
  overflow: hidden;
217
218
  width: clamp(240px, 34%, 420px);
@@ -114,6 +114,21 @@ export const renderMsg = (
114
114
  /<output\s+class\s*=\s*["\']memori-artifact["\'][^>]*data-mimetype\s*=\s*["\']([^"']+)["\'][^>]*>([\s\S]*?)(?:<\/output>|$)/gi,
115
115
  ''
116
116
  )
117
+ // Preferred: data-action="update" on memori-artifact
118
+ .replaceAll(
119
+ /<output\s+class\s*=\s*["\']memori-artifact["\'][^>]*data-action\s*=\s*["\']update["\'][^>]*>([\s\S]*?)(?:<\/output>|$)/gi,
120
+ ''
121
+ )
122
+ // data-action may appear before class
123
+ .replaceAll(
124
+ /<output\s+[^>]*data-action\s*=\s*["\']update["\'][^>]*class\s*=\s*["\'][^"']*memori-artifact[^"']*["\'][^>]*>([\s\S]*?)(?:<\/output>|$)/gi,
125
+ ''
126
+ )
127
+ // Legacy class name
128
+ .replaceAll(
129
+ /<output\s+class\s*=\s*["\']memori-artifact-update["\'][^>]*>([\s\S]*?)(?:<\/output>|$)/gi,
130
+ ''
131
+ )
117
132
  .replaceAll(/```markdown([^```]+)```/g, '$1')
118
133
  .replaceAll('($', '( $')
119
134
  .replaceAll(':$', ': $')
@@ -263,6 +263,9 @@
263
263
  "artifact": {
264
264
  "close": "Schließen",
265
265
  "size": "Größe",
266
+ "updated": "aktualisiert",
267
+ "updateFailed": "Update konnte nicht angewendet werden",
268
+ "updateFailedHint": "Der Patch stimmt nicht mit dem aktuellen Inhalt überein. Bitten Sie um ein Neuschreiben des Artifacts.",
266
269
  "generated": "Generiert",
267
270
  "download": "Herunterladen",
268
271
  "print": "Drucken",
@@ -276,6 +276,9 @@
276
276
  "artifact": {
277
277
  "close": "Close",
278
278
  "size": "Size",
279
+ "updated": "updated",
280
+ "updateFailed": "Update could not be applied",
281
+ "updateFailedHint": "The patch did not match the current content. Ask to rewrite the artifact.",
279
282
  "generated": "Generated",
280
283
  "download": "Download",
281
284
  "print": "Print",
@@ -262,6 +262,9 @@
262
262
  "artifact": {
263
263
  "close": "Cerrar",
264
264
  "size": "Tamaño",
265
+ "updated": "actualizado",
266
+ "updateFailed": "No se pudo aplicar la actualización",
267
+ "updateFailedHint": "El parche no coincide con el contenido actual. Pide reescribir el artifact.",
265
268
  "generated": "Generado",
266
269
  "download": "Descargar",
267
270
  "print": "Imprimir",
@@ -262,6 +262,9 @@
262
262
  "artifact": {
263
263
  "close": "Fermer",
264
264
  "size": "Taille",
265
+ "updated": "mis à jour",
266
+ "updateFailed": "Mise à jour non appliquée",
267
+ "updateFailedHint": "Le correctif ne correspond pas au contenu actuel. Demandez de réécrire l'artifact.",
265
268
  "generated": "Généré",
266
269
  "download": "Télécharger",
267
270
  "print": "Imprimer",
@@ -278,6 +278,9 @@
278
278
  "artifact": {
279
279
  "close": "Chiudi",
280
280
  "size": "Dimensione",
281
+ "updated": "aggiornato",
282
+ "updateFailed": "Aggiornamento non applicato",
283
+ "updateFailedHint": "Il patch non corrisponde al contenuto attuale. Chiedi di riscrivere l'artifact.",
281
284
  "generated": "Generato",
282
285
  "download": "Scarica",
283
286
  "print": "Stampa",
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  // This file is auto-generated. Do not edit manually.
2
- export const version = '9.0.0-alpha.20';
2
+ export const version = '9.0.0-alpha.21';