@memori.ai/memori-react 8.38.5 → 8.38.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/components/Chat/Chat.js +11 -23
  3. package/dist/components/Chat/Chat.js.map +1 -1
  4. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +1 -1
  5. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +0 -1
  6. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +0 -1
  7. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  8. package/dist/components/FilePreview/FilePreview.js +20 -2
  9. package/dist/components/FilePreview/FilePreview.js.map +1 -1
  10. package/dist/components/MediaWidget/MediaItemWidget.js +9 -6
  11. package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
  12. package/dist/components/MediaWidget/MediaItemWidget.utils.d.ts +1 -0
  13. package/dist/components/MediaWidget/MediaItemWidget.utils.js +27 -7
  14. package/dist/components/MediaWidget/MediaItemWidget.utils.js.map +1 -1
  15. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +30 -4
  16. package/dist/components/MobileSessionPanel/MobileSessionPanel.d.ts +3 -2
  17. package/dist/components/MobileSessionPanel/MobileSessionPanel.js +16 -13
  18. package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
  19. package/dist/components/UploadButton/UploadButton.js +20 -6
  20. package/dist/components/UploadButton/UploadButton.js.map +1 -1
  21. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +45 -8
  22. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  23. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +5 -1
  24. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  25. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +1 -3
  26. package/dist/components/layouts/fullpage.css +55 -21
  27. package/dist/helpers/constants.d.ts +3 -0
  28. package/dist/helpers/constants.js +24 -1
  29. package/dist/helpers/constants.js.map +1 -1
  30. package/dist/helpers/usePressTooltip.d.ts +13 -0
  31. package/dist/helpers/usePressTooltip.js +23 -0
  32. package/dist/helpers/usePressTooltip.js.map +1 -0
  33. package/dist/helpers/utils.d.ts +15 -0
  34. package/dist/helpers/utils.js +45 -1
  35. package/dist/helpers/utils.js.map +1 -1
  36. package/dist/version.d.ts +1 -1
  37. package/dist/version.js +1 -1
  38. package/esm/components/Chat/Chat.js +12 -24
  39. package/esm/components/Chat/Chat.js.map +1 -1
  40. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +1 -1
  41. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +0 -1
  42. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +0 -1
  43. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  44. package/esm/components/FilePreview/FilePreview.js +22 -4
  45. package/esm/components/FilePreview/FilePreview.js.map +1 -1
  46. package/esm/components/MediaWidget/MediaItemWidget.js +11 -8
  47. package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
  48. package/esm/components/MediaWidget/MediaItemWidget.utils.d.ts +1 -0
  49. package/esm/components/MediaWidget/MediaItemWidget.utils.js +25 -6
  50. package/esm/components/MediaWidget/MediaItemWidget.utils.js.map +1 -1
  51. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +30 -4
  52. package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +3 -2
  53. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +17 -14
  54. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -1
  55. package/esm/components/UploadButton/UploadButton.js +20 -6
  56. package/esm/components/UploadButton/UploadButton.js.map +1 -1
  57. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +45 -8
  58. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  59. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +5 -1
  60. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  61. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +1 -3
  62. package/esm/components/layouts/fullpage.css +55 -21
  63. package/esm/helpers/constants.d.ts +3 -0
  64. package/esm/helpers/constants.js +23 -0
  65. package/esm/helpers/constants.js.map +1 -1
  66. package/esm/helpers/usePressTooltip.d.ts +13 -0
  67. package/esm/helpers/usePressTooltip.js +20 -0
  68. package/esm/helpers/usePressTooltip.js.map +1 -0
  69. package/esm/helpers/utils.d.ts +15 -0
  70. package/esm/helpers/utils.js +39 -0
  71. package/esm/helpers/utils.js.map +1 -1
  72. package/esm/version.d.ts +1 -1
  73. package/esm/version.js +1 -1
  74. package/package.json +1 -1
  75. package/src/components/Chat/Chat.tsx +19 -44
  76. package/src/components/FilePreview/FilePreview.tsx +26 -4
  77. package/src/components/MediaWidget/MediaItemWidget.tsx +19 -7
  78. package/src/components/MediaWidget/MediaItemWidget.utils.test.ts +45 -2
  79. package/src/components/MediaWidget/MediaItemWidget.utils.ts +37 -6
  80. package/src/components/UploadButton/UploadButton.tsx +27 -12
  81. package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +48 -9
  82. package/src/components/UploadButton/__snapshots__/UploadButton.test.tsx.snap +2 -2
  83. package/src/helpers/constants.ts +29 -1
  84. package/src/helpers/utils.test.ts +101 -0
  85. package/src/helpers/utils.ts +66 -0
  86. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/helpers/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/helpers/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { type MouseEvent, type PointerEvent } from 'react';
2
+ export declare function usePressTooltip(defaultOpen?: boolean): {
3
+ open: boolean;
4
+ setOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
5
+ pressTriggerProps: {
6
+ readonly onPointerDown: (e: PointerEvent) => void;
7
+ readonly onClick: (e: MouseEvent | PointerEvent) => void;
8
+ };
9
+ tooltipProps: {
10
+ readonly open: boolean;
11
+ readonly onOpenChange: import("react").Dispatch<import("react").SetStateAction<boolean>>;
12
+ };
13
+ };
@@ -0,0 +1,20 @@
1
+ import { useCallback, useState, } from 'react';
2
+ export function usePressTooltip(defaultOpen = false) {
3
+ const [open, setOpen] = useState(defaultOpen);
4
+ const toggleOpen = useCallback((e) => {
5
+ e.stopPropagation();
6
+ setOpen(prev => !prev);
7
+ }, []);
8
+ const pressTriggerProps = {
9
+ onPointerDown: (e) => {
10
+ e.stopPropagation();
11
+ },
12
+ onClick: toggleOpen,
13
+ };
14
+ const tooltipProps = {
15
+ open,
16
+ onOpenChange: setOpen,
17
+ };
18
+ return { open, setOpen, pressTriggerProps, tooltipProps };
19
+ }
20
+ //# sourceMappingURL=usePressTooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePressTooltip.js","sourceRoot":"","sources":["../../src/helpers/usePressTooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,QAAQ,GAGT,MAAM,OAAO,CAAC;AAEf,MAAM,UAAU,eAAe,CAAC,WAAW,GAAG,KAAK;IACjD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAA4B,EAAE,EAAE;QAC9D,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,iBAAiB,GAAG;QACxB,aAAa,EAAE,CAAC,CAAe,EAAE,EAAE;YACjC,CAAC,CAAC,eAAe,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,EAAE,UAAU;KACX,CAAC;IAEX,MAAM,YAAY,GAAG;QACnB,IAAI;QACJ,YAAY,EAAE,OAAO;KACb,CAAC;IAEX,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC;AAC5D,CAAC"}
@@ -15,6 +15,21 @@ export declare function useDebounceFn<T extends (...args: any) => any>(fn: T, de
15
15
  export declare const stripDuplicates: (text: string) => string;
16
16
  export declare const stripEmojis: (text: string) => string;
17
17
  export declare const stripMarkdown: (text: string) => string;
18
+ export declare const OFFICE_NATIVE_EXTENSIONS: readonly [".doc", ".docx", ".xls", ".xltx", ".potx"];
19
+ export declare const isOfficeNativeFilename: (filename: string) => boolean;
20
+ export type ParsedDocumentAttachment = {
21
+ filename: string;
22
+ type: string;
23
+ content: string;
24
+ url: string;
25
+ };
26
+ export declare const parseDocumentAttachmentsFromMessage: (text: string) => ParsedDocumentAttachment[];
27
+ export declare const extractAttachmentLinks: (content: string) => string[];
28
+ export declare const extractAttachmentLink: (content: string) => string | null;
29
+ export declare const isAssetOnlyDocumentAttachment: (attachment: {
30
+ content?: string | null;
31
+ url?: string | null;
32
+ }) => boolean;
18
33
  export declare const stripDocumentAttachmentTags: (text: string) => string;
19
34
  export declare const stripOutputTags: (text: string) => string;
20
35
  export declare const stripReasoningTags: (text: string) => string;
@@ -1,6 +1,7 @@
1
1
  import { useState, useEffect, useRef, useMemo } from 'react';
2
2
  import { MeshStandardMaterial } from 'three';
3
3
  import * as THREE from 'three';
4
+ import { officeNativeExtensions } from './constants';
4
5
  export const hasTouchscreen = () => {
5
6
  let hasTouchScreen = false;
6
7
  if (typeof window === 'undefined' || typeof navigator === 'undefined') {
@@ -168,6 +169,44 @@ export const stripMarkdown = (text) => {
168
169
  text = text.replaceAll(/\s+/g, ' ').trim();
169
170
  return text;
170
171
  };
172
+ export const OFFICE_NATIVE_EXTENSIONS = officeNativeExtensions;
173
+ export const isOfficeNativeFilename = (filename) => {
174
+ var _a;
175
+ const ext = `.${((_a = filename.split('.').pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || ''}`;
176
+ return officeNativeExtensions.includes(ext);
177
+ };
178
+ const DOCUMENT_ATTACHMENT_REGEX = /<document_attachment filename="([^"]+)" type="([^"]+)">([\s\S]*?)<\/document_attachment>/g;
179
+ const ATTACHMENT_LINK_AFTER_REGEX = /<attachment_link>\s*([\s\S]*?)\s*<\/attachment_link>/;
180
+ export const parseDocumentAttachmentsFromMessage = (text) => {
181
+ var _a;
182
+ if (!text)
183
+ return [];
184
+ const attachments = [];
185
+ const regex = new RegExp(DOCUMENT_ATTACHMENT_REGEX.source, 'g');
186
+ let match;
187
+ while ((match = regex.exec(text)) !== null) {
188
+ const [, filename, type, content] = match;
189
+ const afterTag = text.slice(match.index + match[0].length);
190
+ const linkMatch = afterTag.match(ATTACHMENT_LINK_AFTER_REGEX);
191
+ const rawUrl = ((_a = linkMatch === null || linkMatch === void 0 ? void 0 : linkMatch[1]) === null || _a === void 0 ? void 0 : _a.trim()) || '';
192
+ const url = /^https?:\/\//.test(rawUrl) ? rawUrl : '';
193
+ attachments.push({
194
+ filename,
195
+ type,
196
+ content: content.trim(),
197
+ url,
198
+ });
199
+ }
200
+ return attachments;
201
+ };
202
+ export const extractAttachmentLinks = (content) => {
203
+ return parseDocumentAttachmentsFromMessage(content).map(attachment => attachment.url);
204
+ };
205
+ export const extractAttachmentLink = (content) => {
206
+ const match = content === null || content === void 0 ? void 0 : content.match(/<attachment_link>\s*(https?:\/\/[^\s<]+)\s*<\/attachment_link>/);
207
+ return match ? match[1].trim() : null;
208
+ };
209
+ export const isAssetOnlyDocumentAttachment = (attachment) => { var _a, _b; return !((_a = attachment.content) === null || _a === void 0 ? void 0 : _a.trim()) && !!((_b = attachment.url) === null || _b === void 0 ? void 0 : _b.trim()); };
171
210
  export const stripDocumentAttachmentTags = (text) => {
172
211
  const documentAttachmentTagRegex = /<document_attachment filename="([^"]+)" type="([^"]+)">([\s\S]*?)<\/document_attachment>/g;
173
212
  return text
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"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"}
package/esm/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "8.38.5";
1
+ export declare const version = "8.38.6";
package/esm/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '8.38.5';
1
+ export const version = '8.38.6';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "8.38.5",
2
+ "version": "8.38.6",
3
3
  "name": "@memori.ai/memori-react",
4
4
  "author": "Memori Srl",
5
5
  "main": "dist/index.js",
@@ -16,7 +16,10 @@ import {
16
16
  Tenant,
17
17
  User,
18
18
  } from '@memori.ai/memori-api-client/dist/types';
19
- import { hasTouchscreen } from '../../helpers/utils';
19
+ import {
20
+ hasTouchscreen,
21
+ parseDocumentAttachmentsFromMessage,
22
+ } from '../../helpers/utils';
20
23
  import { getResourceUrl } from '../../helpers/media';
21
24
  import ChatBubble from '../ChatBubble/ChatBubble';
22
25
  import MediaWidget, {
@@ -445,49 +448,21 @@ const Chat: React.FC<Props> = ({
445
448
  ?.filter(m => !(m.mimeType === 'text/html' && !!m.url)) ||
446
449
  []),
447
450
 
448
- // Extract document attachments that are embedded in the message text
449
- ...(() => {
450
- // Get the translated or original message text
451
- const text = message.translatedText || message.text;
452
-
453
- // Regex to match document attachments in format:
454
- // <document_attachment filename="name.ext" type="mime/type">content</document_attachment>
455
- const documentAttachmentRegex =
456
- /<document_attachment filename="([^"]+)" type="([^"]+)">([\s\S]*?)<\/document_attachment>/g;
457
-
458
- const attachments: (Medium & { type?: string })[] = [];
459
- let match;
460
- let attachmentIndex = 0;
461
-
462
- // Find all document attachments in the text
463
- while (
464
- (match = documentAttachmentRegex.exec(text)) !== null
465
- ) {
466
- const [, filename, type, content] = match;
467
-
468
- // Create a Medium object for each attachment with:
469
- // - Unique ID using timestamp and random string
470
- // - Empty URL since content is embedded
471
- // - Original mime type and filename
472
- // - Trimmed content from the attachment
473
- // - Properties to mark it as a document attachment
474
- attachments.push({
475
- mediumID: `doc_${Date.now()}_${attachmentIndex}_${Math.random()
476
- .toString(36)
477
- .substr(2, 9)}`,
478
- url: '',
479
- mimeType: type,
480
- title: filename,
481
- content: content.trim(),
482
- properties: { isDocumentAttachment: true },
483
- type: 'document',
484
- });
485
-
486
- attachmentIndex++;
487
- }
488
-
489
- return attachments;
490
- })(),
451
+ // Extract document attachments from the original message text.
452
+ // Use message.text (not translatedText) so internal tags stay intact.
453
+ ...parseDocumentAttachmentsFromMessage(
454
+ message.text || ''
455
+ ).map((attachment, attachmentIndex) => ({
456
+ mediumID: `doc_${Date.now()}_${attachmentIndex}_${Math.random()
457
+ .toString(36)
458
+ .substr(2, 9)}`,
459
+ url: attachment.url,
460
+ mimeType: attachment.type,
461
+ title: attachment.filename,
462
+ content: attachment.content,
463
+ properties: { isDocumentAttachment: true },
464
+ type: 'document' as const,
465
+ })),
491
466
  ]}
492
467
  sessionID={sessionID}
493
468
  baseUrl={baseUrl}
@@ -4,8 +4,13 @@ import CloseIcon from '../icons/Close';
4
4
  import Button from '../ui/Button';
5
5
  import ContentPreviewModal from '../ContentPreviewModal';
6
6
  import Snippet from '../Snippet/Snippet';
7
- import { stripHTML, stripDocumentAttachmentTags } from '../../helpers/utils';
8
- import { getFileExtensionFromMime } from '../MediaWidget/MediaItemWidget.utils';
7
+ import {
8
+ stripHTML,
9
+ stripDocumentAttachmentTags,
10
+ isOfficeNativeFilename,
11
+ extractAttachmentLink,
12
+ } from '../../helpers/utils';
13
+ import { getDocumentBadgeLabel } from '../MediaWidget/MediaItemWidget.utils';
9
14
  import { useTranslation } from 'react-i18next';
10
15
 
11
16
  type FilePreviewProps = {
@@ -61,6 +66,14 @@ const FilePreview = ({
61
66
  return 'CSV';
62
67
  case 'html':
63
68
  return 'HTML';
69
+ case 'doc':
70
+ case 'docx':
71
+ return 'Word';
72
+ case 'xls':
73
+ case 'xltx':
74
+ return 'Excel';
75
+ case 'potx':
76
+ return 'PowerPoint';
64
77
  case 'jpg':
65
78
  case 'jpeg':
66
79
  return 'JPEG';
@@ -166,7 +179,16 @@ const FilePreview = ({
166
179
  ? 'memori--preview-item--image'
167
180
  : 'memori--preview-item--document'
168
181
  }`}
169
- onClick={() => setSelectedFile(file)}
182
+ onClick={() => {
183
+ if (isOfficeNativeFilename(file.name || '')) {
184
+ const url = extractAttachmentLink(file.content);
185
+ if (url) {
186
+ window.open(url, '_blank', 'noopener,noreferrer');
187
+ }
188
+ } else {
189
+ setSelectedFile(file);
190
+ }
191
+ }}
170
192
  >
171
193
  {isImageContent(file.content, file.type) ? (
172
194
  <div className="memori--preview-thumbnail">
@@ -180,7 +202,7 @@ const FilePreview = ({
180
202
  <span className="memori--preview-filename">{file.name}</span>
181
203
  <span className="memori--preview-filetype">
182
204
  {file.mimeType
183
- ? getFileExtensionFromMime(file.mimeType)
205
+ ? getDocumentBadgeLabel(file.mimeType, file.name)
184
206
  : getFileType(file.name, file.type)}
185
207
  </span>
186
208
  </div>
@@ -12,6 +12,7 @@ import { getResourceUrl } from '../../helpers/media';
12
12
  import {
13
13
  withLinksOpenInNewTab,
14
14
  stripDocumentAttachmentTags,
15
+ isAssetOnlyDocumentAttachment,
15
16
  } from '../../helpers/utils';
16
17
  import { getTranslation } from '../../helpers/translations';
17
18
  import { prismSyntaxLangs } from '../../helpers/constants';
@@ -36,7 +37,7 @@ import type {
36
37
  import {
37
38
  formatBytes,
38
39
  getFileExtensionFromUrl,
39
- getFileExtensionFromMime,
40
+ getDocumentBadgeLabel,
40
41
  countLines,
41
42
  shouldUseDarkFileCard,
42
43
  fetchLinkPreview,
@@ -272,7 +273,7 @@ export const RenderMediaItem = memo(function RenderMediaItem({
272
273
  ) : (
273
274
  <DocumentCard
274
275
  title={medium.title || 'File'}
275
- badge={getFileExtensionFromMime(medium.mimeType)}
276
+ badge={getDocumentBadgeLabel(medium.mimeType, medium.title)}
276
277
  meta={(() => {
277
278
  const size = getContentSize(medium);
278
279
  return size != null && size > 0 ? formatBytes(size) : null;
@@ -288,7 +289,7 @@ export const RenderMediaItem = memo(function RenderMediaItem({
288
289
  return (
289
290
  <DocumentCard
290
291
  title={medium.title || 'File'}
291
- badge={getFileExtensionFromMime(medium.mimeType)}
292
+ badge={getDocumentBadgeLabel(medium.mimeType, medium.title)}
292
293
  meta={(() => {
293
294
  const size = getContentSize(medium);
294
295
  return size != null && size > 0 ? formatBytes(size) : null;
@@ -302,7 +303,7 @@ export const RenderMediaItem = memo(function RenderMediaItem({
302
303
  return (
303
304
  <DocumentCard
304
305
  title={medium.title || 'File'}
305
- badge={getFileExtensionFromMime(medium.mimeType)}
306
+ badge={getDocumentBadgeLabel(medium.mimeType, medium.title)}
306
307
  meta={(() => {
307
308
  const size = getContentSize(medium);
308
309
  return size != null && size > 0 ? formatBytes(size) : null;
@@ -328,8 +329,11 @@ export const RenderMediaItem = memo(function RenderMediaItem({
328
329
 
329
330
  // Extension and file detection helpers
330
331
  const fileExtensionFromUrl = getFileExtensionFromUrl(normURL || item.url);
331
- const fileExtensionFromMime = getFileExtensionFromMime(item.mimeType);
332
- const fileExtension = fileExtensionFromUrl || fileExtensionFromMime;
332
+ const fileExtension = getDocumentBadgeLabel(
333
+ item.mimeType,
334
+ item.title,
335
+ normURL || item.url
336
+ );
333
337
  const isFile = shouldUseDarkFileCard(
334
338
  item,
335
339
  fileExtensionFromUrl,
@@ -359,8 +363,16 @@ export const RenderMediaItem = memo(function RenderMediaItem({
359
363
  const metaParts = [lineText, sizeText].filter(Boolean);
360
364
  const metaLine = metaParts.length > 0 ? metaParts.join(' · ') : null;
361
365
 
366
+ // Asset-only attachments (e.g. Office native files) open via URL, not modal
367
+ const isAssetOnlyAttachment = isAssetOnlyDocumentAttachment(item);
368
+
362
369
  // Document attachments and attached files should open in modal, not as links
363
- if ((isDocumentAttachment || isAttachedFile) && item.mediumID && _onClick) {
370
+ if (
371
+ (isDocumentAttachment || isAttachedFile) &&
372
+ item.mediumID &&
373
+ _onClick &&
374
+ !isAssetOnlyAttachment
375
+ ) {
364
376
  return (
365
377
  <div
366
378
  onClick={() => _onClick(item)}
@@ -2,6 +2,7 @@ import {
2
2
  formatBytes,
3
3
  getFileExtensionFromUrl,
4
4
  getFileExtensionFromMime,
5
+ getDocumentBadgeLabel,
5
6
  countLines,
6
7
  shouldUseDarkFileCard,
7
8
  fetchLinkPreview,
@@ -57,8 +58,25 @@ describe('MediaItemWidget.utils', () => {
57
58
  expect(getFileExtensionFromMime('text/html')).toBe('HTML');
58
59
  expect(getFileExtensionFromMime('text/plain')).toBe('TXT');
59
60
  expect(getFileExtensionFromMime('application/json')).toBe('JSON');
60
- expect(getFileExtensionFromMime('application/vnd.ms-excel')).toBe('XLS');
61
- expect(getFileExtensionFromMime('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')).toBe('XLSX');
61
+ expect(getFileExtensionFromMime('application/vnd.ms-excel')).toBe('Excel');
62
+ expect(
63
+ getFileExtensionFromMime(
64
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
65
+ )
66
+ ).toBe('Excel');
67
+ });
68
+
69
+ it('maps office mime types with parameters to short labels', () => {
70
+ expect(
71
+ getFileExtensionFromMime(
72
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary'
73
+ )
74
+ ).toBe('Word');
75
+ expect(
76
+ getFileExtensionFromMime(
77
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.template'
78
+ )
79
+ ).toBe('Excel');
62
80
  });
63
81
 
64
82
  it('uses subtype when not in MIME_TO_EXT map', () => {
@@ -71,6 +89,31 @@ describe('MediaItemWidget.utils', () => {
71
89
  });
72
90
  });
73
91
 
92
+ describe('getDocumentBadgeLabel', () => {
93
+ it('prefers URL extension, then filename, then mime type', () => {
94
+ expect(
95
+ getDocumentBadgeLabel(
96
+ 'application/pdf',
97
+ 'report.docx',
98
+ 'https://example.com/file.pdf'
99
+ )
100
+ ).toBe('PDF');
101
+ expect(
102
+ getDocumentBadgeLabel(
103
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
104
+ 'report.docx',
105
+ 'https://example.com/asset/123'
106
+ )
107
+ ).toBe('Word');
108
+ expect(
109
+ getDocumentBadgeLabel(
110
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
111
+ 'budget.xlsx'
112
+ )
113
+ ).toBe('Excel');
114
+ });
115
+ });
116
+
74
117
  describe('countLines', () => {
75
118
  it('returns 0 for undefined or empty', () => {
76
119
  expect(countLines(undefined)).toBe(0);
@@ -1,4 +1,8 @@
1
1
  import type { Medium } from '@memori.ai/memori-api-client/dist/types';
2
+ import {
3
+ officeExtensionShortLabels,
4
+ officeMimeShortLabels,
5
+ } from '../../helpers/constants';
2
6
  import type { LinkPreviewInfo } from './MediaItemWidget.types';
3
7
 
4
8
  export const FILE_EXTENSIONS_DARK_CARD = [
@@ -54,11 +58,6 @@ export const IMAGE_MIME_TYPES = [
54
58
 
55
59
  const MIME_TO_EXT: Record<string, string> = {
56
60
  'application/pdf': 'PDF',
57
- 'application/msword': 'DOC',
58
- 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
59
- 'DOCX',
60
- 'application/vnd.ms-excel': 'XLS',
61
- 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'XLSX',
62
61
  'text/html': 'HTML',
63
62
  'text/plain': 'TXT',
64
63
  'text/css': 'CSS',
@@ -87,14 +86,46 @@ export function getFileExtensionFromUrl(
87
86
  return match ? match[1].toUpperCase() : null;
88
87
  }
89
88
 
89
+ function normalizeMimeType(mimeType: string): string {
90
+ return mimeType.split(';')[0].trim();
91
+ }
92
+
90
93
  export function getFileExtensionFromMime(mimeType: string): string {
94
+ const normalized = normalizeMimeType(mimeType);
95
+ const normalizedLower = normalized.toLowerCase();
96
+
97
+ const officeLabel =
98
+ officeMimeShortLabels[normalized] ||
99
+ officeMimeShortLabels[normalizedLower];
100
+ if (officeLabel) return officeLabel;
101
+
91
102
  return (
103
+ MIME_TO_EXT[normalized] ||
104
+ MIME_TO_EXT[normalizedLower] ||
92
105
  MIME_TO_EXT[mimeType] ||
93
- mimeType.split('/')[1]?.toUpperCase() ||
106
+ normalized.split('/')[1]?.toUpperCase() ||
94
107
  'FILE'
95
108
  );
96
109
  }
97
110
 
111
+ export function getDocumentBadgeLabel(
112
+ mimeType: string,
113
+ filename?: string | null,
114
+ url?: string | null
115
+ ): string {
116
+ const fromUrl = getFileExtensionFromUrl(url || undefined);
117
+ if (fromUrl) {
118
+ return officeExtensionShortLabels[fromUrl] || fromUrl;
119
+ }
120
+
121
+ const fromFilename = getFileExtensionFromUrl(filename || undefined);
122
+ if (fromFilename) {
123
+ return officeExtensionShortLabels[fromFilename] || fromFilename;
124
+ }
125
+
126
+ return getFileExtensionFromMime(mimeType);
127
+ }
128
+
98
129
  export function countLines(content: string | undefined): number {
99
130
  if (!content) return 0;
100
131
  return content.split(/\r\n|\r|\n/).length;
@@ -9,6 +9,7 @@ import UploadDocuments from './UploadDocuments/UploadDocuments';
9
9
  import UploadImages from './UploadImages/UploadImages';
10
10
  import { useTranslation } from 'react-i18next';
11
11
  import memoriApiClient from '@memori.ai/memori-api-client';
12
+ import { officeNativeExtensions } from '../../helpers/constants';
12
13
  import Tooltip from '../ui/Tooltip';
13
14
  // Props interface
14
15
  interface UploadManagerProps {
@@ -108,6 +109,7 @@ const UploadButton: React.FC<UploadManagerProps> = ({
108
109
  '.csv',
109
110
  '.md',
110
111
  '.html',
112
+ ...officeNativeExtensions,
111
113
  ];
112
114
  const fileExt = `.${file.name.split('.').pop()?.toLowerCase()}`;
113
115
  return documentExtensions.includes(fileExt);
@@ -401,18 +403,29 @@ const UploadButton: React.FC<UploadManagerProps> = ({
401
403
  const processedDocuments = files.map(file => {
402
404
  const escapedFileName = escapeAttributeValue(file.name);
403
405
 
404
- // Truncate only the content that gets inlined inside the message
405
- // <document_attachment> tag. The full text is still available via
406
- // textAssetUrl as an uploaded asset.
407
- const inlinedContent =
408
- file.content.length > effectivePerDocumentLimit
409
- ? file.content.substring(0, effectivePerDocumentLimit) +
410
- '\n\n[Content truncated due to size limits]'
411
- : file.content;
406
+ let formattedContent: string;
412
407
 
413
- const formattedContent = `<document_attachment filename="${escapedFileName}" type="${
414
- file.mimeType
415
- }">
408
+ if (!file.content) {
409
+ // Office native format: metadata-only attachment tag + asset link (no text body)
410
+ formattedContent = `<document_attachment filename="${escapedFileName}" type="${file.mimeType}">
411
+ </document_attachment>
412
+
413
+ <attachment_link>
414
+ ${file.textAssetUrl || ''}
415
+ </attachment_link>`;
416
+ } else {
417
+ // Truncate only the content that gets inlined inside the message
418
+ // <document_attachment> tag. The full text is still available via
419
+ // textAssetUrl as an uploaded asset.
420
+ const inlinedContent =
421
+ file.content.length > effectivePerDocumentLimit
422
+ ? file.content.substring(0, effectivePerDocumentLimit) +
423
+ '\n\n[Content truncated due to size limits]'
424
+ : file.content;
425
+
426
+ formattedContent = `<document_attachment filename="${escapedFileName}" type="${
427
+ file.mimeType
428
+ }">
416
429
 
417
430
  ${inlinedContent}
418
431
 
@@ -421,6 +434,7 @@ ${inlinedContent}
421
434
  <attachment_link>
422
435
  ${file.textAssetUrl || ''}
423
436
  </attachment_link>`;
437
+ }
424
438
 
425
439
  return {
426
440
  name: file.name,
@@ -446,6 +460,7 @@ ${file.textAssetUrl || ''}
446
460
  '.csv',
447
461
  '.md',
448
462
  '.html',
463
+ ...officeNativeExtensions,
449
464
  ];
450
465
  const MAX_FILE_SIZE = 15 * 1024 * 1024; // 15MB
451
466
 
@@ -562,7 +577,7 @@ ${file.textAssetUrl || ''}
562
577
  <input
563
578
  ref={unifiedInputRef}
564
579
  type="file"
565
- accept=".jpg,.jpeg,.png,.pdf,.txt,.json,.xlsx,.csv,.md,.html"
580
+ accept={`.jpg,.jpeg,.png,.pdf,.txt,.json,.xlsx,.csv,.md,.html,${officeNativeExtensions.join(',')}`}
566
581
  multiple
567
582
  className="memori--upload-file-input"
568
583
  onChange={handleFileInputChange}