@memori.ai/memori-react 8.33.0 → 8.35.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.
Files changed (55) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +7 -1
  3. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +4 -1
  4. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +3 -3
  5. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  6. package/dist/components/Header/ChatConsumptionDropdown.d.ts +1 -0
  7. package/dist/components/Header/ChatConsumptionDropdown.js +3 -2
  8. package/dist/components/Header/ChatConsumptionDropdown.js.map +1 -1
  9. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +139 -89
  10. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  11. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +377 -0
  12. package/dist/components/MobileSessionPanel/MobileSessionPanel.d.ts +57 -0
  13. package/dist/components/MobileSessionPanel/MobileSessionPanel.js +159 -0
  14. package/dist/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -0
  15. package/dist/components/PositionPopover/PositionPopover.js +6 -1
  16. package/dist/components/PositionPopover/PositionPopover.js.map +1 -1
  17. package/dist/components/StartPanel/StartPanel.js +1 -0
  18. package/dist/components/StartPanel/StartPanel.js.map +1 -1
  19. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js +2 -2
  20. package/dist/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  21. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +23 -25
  22. package/dist/components/layouts/fullpage.css +21 -9
  23. package/dist/version.d.ts +1 -1
  24. package/dist/version.js +1 -1
  25. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +7 -1
  26. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +4 -1
  27. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +4 -4
  28. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  29. package/esm/components/Header/ChatConsumptionDropdown.d.ts +1 -0
  30. package/esm/components/Header/ChatConsumptionDropdown.js +3 -2
  31. package/esm/components/Header/ChatConsumptionDropdown.js.map +1 -1
  32. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +139 -89
  33. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  34. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +377 -0
  35. package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +57 -0
  36. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +157 -0
  37. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +1 -0
  38. package/esm/components/PositionPopover/PositionPopover.js +6 -1
  39. package/esm/components/PositionPopover/PositionPopover.js.map +1 -1
  40. package/esm/components/StartPanel/StartPanel.js +1 -0
  41. package/esm/components/StartPanel/StartPanel.js.map +1 -1
  42. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +2 -2
  43. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +1 -1
  44. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +23 -25
  45. package/esm/components/layouts/fullpage.css +21 -9
  46. package/esm/version.d.ts +1 -1
  47. package/esm/version.js +1 -1
  48. package/package.json +2 -2
  49. package/src/components/Chat/Chat.stories.tsx +127 -1
  50. package/src/components/Header/ChatConsumptionDropdown.test.tsx +31 -0
  51. package/src/components/Header/ChatConsumptionDropdown.tsx +20 -11
  52. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +300 -162
  53. package/src/components/StartPanel/StartPanel.tsx +1 -0
  54. package/src/mocks/data.ts +143 -13
  55. package/src/version.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
 
2
2
 
3
+ ## [8.35.0](https://github.com/memori-ai/memori-react/compare/v8.34.0...v8.35.0) (2026-04-28)
4
+
5
+
6
+ ### Features
7
+
8
+ * implement enhanced artifact detection and processing in ArtifactHandler component ([00d0b36](https://github.com/memori-ai/memori-react/commit/00d0b36803a5a8584de4397301a08e12c1413f82))
9
+
10
+
11
+ ### Maintenance
12
+
13
+ * enhance artifact handling in Chat component with new test cases ([d64f5cb](https://github.com/memori-ai/memori-react/commit/d64f5cb2f65b30a0ce81cf1564cb67053e59f94f))
14
+ * update [@memori](https://github.com/memori).ai/memori-api-client to version 6.22.0 ([a425cec](https://github.com/memori-ai/memori-react/commit/a425cec379a9086ea12b1407f718c7de3a01d46f))
15
+
16
+ ## [8.34.0](https://github.com/memori-ai/memori-react/compare/v8.33.0...v8.34.0) (2026-04-20)
17
+
18
+
19
+ ### Features
20
+
21
+ * add support for custom trigger node in ChatConsumptionDropdown component ([0563208](https://github.com/memori-ai/memori-react/commit/0563208cc661e130f322429545e9df84a58ee581))
22
+
3
23
  ## [8.33.0](https://github.com/memori-ai/memori-react/compare/v8.32.0...v8.33.0) (2026-04-17)
4
24
 
5
25
 
@@ -293,12 +293,18 @@
293
293
  display: flex;
294
294
  flex-direction: column;
295
295
  flex-shrink: 0;
296
- padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
296
+ padding: 16px 24px;
297
+ margin-bottom: 1rem;
297
298
  /* border-top: 0.5px solid var(--color-border-tertiary, var(--memori-border-color, #e5e7eb)); */
298
299
  background: var(--memori-main-background);
299
300
  gap: 12px;
300
301
  }
301
302
 
303
+ .memori-chat-history-drawer--header-download-button {
304
+ display: flex;
305
+ align-self: baseline;
306
+ }
307
+
302
308
  .memori-chat-resume-drawer--chips-row {
303
309
  display: flex;
304
310
  flex-wrap: wrap;
@@ -1,3 +1,5 @@
1
+ import React from 'react';
2
+ import { ChatLog } from '@memori.ai/memori-api-client/dist/types';
1
3
  import './ChatResumeDrawer.css';
2
4
  export interface ResumeDrawerMessage {
3
5
  id: string;
@@ -16,6 +18,7 @@ export interface ChatResumeDrawerProps {
16
18
  isOpen: boolean;
17
19
  onClose: () => void;
18
20
  onBack?: () => void;
21
+ onExportChat: (chatLog: ChatLog, e: React.MouseEvent) => void;
19
22
  embedded?: boolean;
20
23
  session: {
21
24
  title: string;
@@ -30,5 +33,5 @@ export interface ChatResumeDrawerProps {
30
33
  onResume: (prompt?: string) => void;
31
34
  isLoading?: boolean;
32
35
  }
33
- declare const ChatResumeDrawer: ({ isOpen, onClose, onBack, embedded, session, onResume, isLoading, }: ChatResumeDrawerProps) => JSX.Element | null;
36
+ declare const ChatResumeDrawer: ({ isOpen, onClose, onBack, embedded, session, onResume, isLoading, onExportChat, }: ChatResumeDrawerProps) => JSX.Element | null;
34
37
  export default ChatResumeDrawer;
@@ -25,7 +25,7 @@ const stripMarkdownChars = (value) => {
25
25
  .trim();
26
26
  };
27
27
  const escapeAttachmentAttr = (value) => value.replaceAll('"', '"');
28
- const ChatResumeDrawer = ({ isOpen, onClose, onBack, embedded = false, session, onResume, isLoading = false, }) => {
28
+ const ChatResumeDrawer = ({ isOpen, onClose, onBack, embedded = false, session, onResume, isLoading = false, onExportChat, }) => {
29
29
  const panelRef = (0, react_1.useRef)(null);
30
30
  const backButtonRef = (0, react_1.useRef)(null);
31
31
  const [shouldRender, setShouldRender] = (0, react_1.useState)(isOpen);
@@ -95,9 +95,9 @@ const ChatResumeDrawer = ({ isOpen, onClose, onBack, embedded = false, session,
95
95
  }), [session.messages]);
96
96
  if (!embedded && !shouldRender)
97
97
  return null;
98
- const content = ((0, jsx_runtime_1.jsxs)("div", { ref: panelRef, className: `memori-chat-resume-drawer--panel ${embedded ? 'memori-chat-resume-drawer--panel-embedded' : ''}`, onClick: event => event.stopPropagation(), children: [(0, jsx_runtime_1.jsxs)("header", { className: "memori-chat-resume-drawer--header", children: [(0, jsx_runtime_1.jsx)(ui_1.Button, { ref: backButtonRef, variant: "ghost", type: "button", className: "memori-chat-resume-drawer--header-icon-button", onClick: onBack || onClose, "aria-label": "Back", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowLeft, { size: 16 }) }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-chat-resume-drawer--header-main", children: [(0, jsx_runtime_1.jsx)("h2", { className: "memori-chat-resume-drawer--title", title: safeTitle, children: safeTitle }), (0, jsx_runtime_1.jsx)("p", { className: "memori-chat-resume-drawer--subtitle", children: session.subtitle })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-chat-resume-drawer--thread", children: [isLoading && ((0, jsx_runtime_1.jsx)("div", { className: "memori-chat-resume-drawer--skeletons", children: [0, 1, 2].map(item => ((0, jsx_runtime_1.jsx)("div", { className: "memori-chat-resume-drawer--skeleton-bubble" }, item))) })), !isLoading && ((0, jsx_runtime_1.jsx)("div", { className: "memori-chat-resume-drawer--embedded-chat", children: (0, jsx_runtime_1.jsx)(Chat_1.default, { memori: EMPTY_MEMORI, sessionID: "chat-resume-drawer", history: history, pushMessage: NOOP, simulateUserPrompt: NOOP, setSendOnEnter: NOOP, setAttachmentsMenuOpen: NOOP, onChangeUserMessage: NOOP, sendMessage: NOOP, setEnableFocusChatInput: NOOP, stopAudio: NOOP, startListening: NOOP, stopListening: NOOP, showInputs: false, showAIicon: true, showCopyButton: true, isHistoryView: true }) }))] }), (0, jsx_runtime_1.jsx)("footer", { className: "memori-chat-resume-drawer--actions", children: (0, jsx_runtime_1.jsxs)(ui_1.Button, { className: "memori-chat-resume-drawer--resume-cta", variant: "primary", onClick: () => onResume(), children: ["Riprendi conversazione ", (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowUpRight, { size: 16 })] }) })] }));
98
+ const content = ((0, jsx_runtime_1.jsxs)("div", { ref: panelRef, className: `memori-chat-resume-drawer--panel ${embedded ? 'memori-chat-resume-drawer--panel-embedded' : ''}`, onClick: event => event.stopPropagation(), children: [(0, jsx_runtime_1.jsxs)("header", { className: "memori-chat-resume-drawer--header", children: [(0, jsx_runtime_1.jsx)(ui_1.Button, { ref: backButtonRef, variant: "ghost", type: "button", className: "memori-chat-resume-drawer--header-icon-button", onClick: onBack || onClose, "aria-label": "Back", children: (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowLeft, { size: 16 }) }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-chat-resume-drawer--header-main", children: [(0, jsx_runtime_1.jsx)("h2", { className: "memori-chat-resume-drawer--title", title: safeTitle, children: safeTitle }), (0, jsx_runtime_1.jsx)("p", { className: "memori-chat-resume-drawer--subtitle", children: session.subtitle })] }), (0, jsx_runtime_1.jsx)(ui_1.Button, { variant: "ghost", size: "sm", className: "memori-chat-history-drawer--header-download-button", "aria-label": "Download", title: "Download", icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Download, {}), onClick: (e) => onExportChat(session, e) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-chat-resume-drawer--thread", children: [isLoading && ((0, jsx_runtime_1.jsx)("div", { className: "memori-chat-resume-drawer--skeletons", children: [0, 1, 2].map(item => ((0, jsx_runtime_1.jsx)("div", { className: "memori-chat-resume-drawer--skeleton-bubble" }, item))) })), !isLoading && ((0, jsx_runtime_1.jsx)("div", { className: "memori-chat-resume-drawer--embedded-chat", children: (0, jsx_runtime_1.jsx)(Chat_1.default, { memori: EMPTY_MEMORI, sessionID: "chat-resume-drawer", history: history, pushMessage: NOOP, simulateUserPrompt: NOOP, setSendOnEnter: NOOP, setAttachmentsMenuOpen: NOOP, onChangeUserMessage: NOOP, sendMessage: NOOP, setEnableFocusChatInput: NOOP, stopAudio: NOOP, startListening: NOOP, stopListening: NOOP, showInputs: false, showAIicon: true, showCopyButton: true, isHistoryView: true }) }))] }), (0, jsx_runtime_1.jsx)("footer", { className: "memori-chat-resume-drawer--actions", children: (0, jsx_runtime_1.jsxs)(ui_1.Button, { className: "memori-chat-resume-drawer--resume-cta", variant: "primary", onClick: () => onResume(), children: ["Riprendi conversazione ", (0, jsx_runtime_1.jsx)(lucide_react_1.ArrowUpRight, { size: 16 })] }) })] }));
99
99
  if (embedded) {
100
- return (0, jsx_runtime_1.jsx)("div", { className: "memori-chat-resume-drawer--embedded-shell", children: content });
100
+ return ((0, jsx_runtime_1.jsx)("div", { className: "memori-chat-resume-drawer--embedded-shell", children: content }));
101
101
  }
102
102
  return ((0, jsx_runtime_1.jsxs)("div", { className: `memori-chat-resume-drawer ${isVisible ? 'memori-chat-resume-drawer--open' : ''}`, role: "dialog", "aria-modal": "true", "aria-label": "Riprendi conversazione", children: [(0, jsx_runtime_1.jsx)(ui_1.Button, { className: "memori-chat-resume-drawer--backdrop", type: "button", "aria-label": "Close resume drawer", onClick: onClose }), content] }));
103
103
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ChatResumeDrawer.js","sourceRoot":"","sources":["../../../src/components/ChatHistoryDrawer/ChatResumeDrawer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatResumeDrawer.js","sourceRoot":"","sources":["../../../src/components/ChatHistoryDrawer/ChatResumeDrawer.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { Message } from '@memori.ai/memori-api-client/dist/types';
3
3
  export interface ChatConsumptionDropdownProps {
4
4
  history: Message[];
5
5
  hasSpacedButtons?: boolean;
6
+ trigger?: React.ReactNode;
6
7
  }
7
8
  declare const ChatConsumptionDropdown: React.FC<ChatConsumptionDropdownProps>;
8
9
  export default ChatConsumptionDropdown;
@@ -57,7 +57,7 @@ const formatImpactInReadableUnit = (value, metricType, locale) => {
57
57
  return `${formatMetricValue(ml, locale)} mL`;
58
58
  return `${formatMetricValue(ml * 1000, locale)} μL`;
59
59
  };
60
- const ChatConsumptionDropdown = ({ history, hasSpacedButtons = false, }) => {
60
+ const ChatConsumptionDropdown = ({ history, hasSpacedButtons = false, trigger, }) => {
61
61
  const { t, i18n } = (0, react_i18next_1.useTranslation)();
62
62
  const currentLocale = i18n.language || navigator.language || 'en';
63
63
  const chatLog = (0, react_1.useMemo)(() => ({ lines: history }), [history]);
@@ -97,7 +97,8 @@ const ChatConsumptionDropdown = ({ history, hasSpacedButtons = false, }) => {
97
97
  }, [chatLog]);
98
98
  if (!hasConsumptionData)
99
99
  return null;
100
- return ((0, jsx_runtime_1.jsx)(Dropdown_1.default, { placement: "bottom-right", trigger: (0, jsx_runtime_1.jsx)(Button_1.default, { primary: true, shape: "circle", className: (0, classnames_1.default)('memori-header--button', 'memori-header--button--sustainability', hasSpacedButtons && 'memori-header--button-spaced'), title: t('write_and_speak.showMessageConsumptionLabel') || 'LLM consumption', icon: (0, jsx_runtime_1.jsx)(GasStation_1.default, { className: "memori-header--button--sustainability-icon" }) }), children: (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability", children: [(0, jsx_runtime_1.jsx)("h4", { className: "memori-dropdown--sustainability-title", children: t('chatLogs.totalChatConsumptionTitle') || 'Consumo Totale Chat' }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-section", children: [(0, jsx_runtime_1.jsx)("h5", { className: "memori-dropdown--sustainability-section-title", children: t('chatLogs.modelUsage') || 'Model usage' }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-summary", children: [(0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-stat", children: [(0, jsx_runtime_1.jsx)("span", { className: "memori-dropdown--sustainability-stat-label", children: t('chatLogs.input') || 'Input' }), (0, jsx_runtime_1.jsx)("strong", { className: "memori-dropdown--sustainability-stat-value", children: formatCountValue(chatConsumptionTotals.totalInputTokens, currentLocale) }), (0, jsx_runtime_1.jsx)("span", { className: "memori-dropdown--sustainability-stat-meta", children: t('chatLogs.tokens') || 'Tokens' })] }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-stat", children: [(0, jsx_runtime_1.jsx)("span", { className: "memori-dropdown--sustainability-stat-label", children: t('chatLogs.output') || 'Output' }), (0, jsx_runtime_1.jsx)("strong", { className: "memori-dropdown--sustainability-stat-value", children: formatCountValue(chatConsumptionTotals.totalOutputTokens, currentLocale) }), (0, jsx_runtime_1.jsx)("span", { className: "memori-dropdown--sustainability-stat-meta", children: t('chatLogs.tokens') || 'Tokens' })] })] }), llmUsageModels.length > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-row memori-dropdown--sustainability-row--stacked", children: [(0, jsx_runtime_1.jsxs)("span", { className: "memori-dropdown--sustainability-label", children: [t('chatLogs.provider') || 'Provider', " /", ' ', t('chatLogs.model') || 'Model'] }), (0, jsx_runtime_1.jsx)("div", { className: "memori-dropdown--sustainability-tags", children: llmUsageModels.map(modelLabel => ((0, jsx_runtime_1.jsx)("span", { className: "memori-dropdown--sustainability-tag", children: modelLabel }, modelLabel))) })] }))] }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-metrics", children: [(0, jsx_runtime_1.jsx)("h5", { className: "memori-dropdown--sustainability-section-title", children: t('chatLogs.environmentalImpact') || 'Environmental impact' }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-row", children: [(0, jsx_runtime_1.jsxs)("span", { className: "memori-dropdown--sustainability-label", children: [(0, jsx_runtime_1.jsx)("span", { "aria-hidden": "true", children: llmUsage_1.BADGE_EMOJI.energy }), ' ', t('chatLogs.energy') || 'Energy'] }), (0, jsx_runtime_1.jsx)("strong", { className: "memori-dropdown--sustainability-value", children: formatImpactInReadableUnit(chatConsumptionTotals.energy, 'energy', currentLocale) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-row", children: [(0, jsx_runtime_1.jsxs)("span", { className: "memori-dropdown--sustainability-label", children: [(0, jsx_runtime_1.jsx)("span", { "aria-hidden": "true", children: llmUsage_1.BADGE_EMOJI.co2 }), ' ', t('chatLogs.co2') || 'CO2'] }), (0, jsx_runtime_1.jsx)("strong", { className: "memori-dropdown--sustainability-value", children: formatImpactInReadableUnit(chatConsumptionTotals.gwp, 'co2', currentLocale) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-row", children: [(0, jsx_runtime_1.jsxs)("span", { className: "memori-dropdown--sustainability-label", children: [(0, jsx_runtime_1.jsx)("span", { "aria-hidden": "true", children: llmUsage_1.BADGE_EMOJI.water }), ' ', t('chatLogs.water') || 'Water'] }), (0, jsx_runtime_1.jsx)("strong", { className: "memori-dropdown--sustainability-value", children: formatImpactInReadableUnit(chatConsumptionTotals.wcf, 'water', currentLocale) })] })] })] }) }));
100
+ return ((0, jsx_runtime_1.jsx)(Dropdown_1.default, { placement: "bottom-right", trigger: trigger !== null && trigger !== void 0 ? trigger : ((0, jsx_runtime_1.jsx)(Button_1.default, { primary: true, shape: "circle", className: (0, classnames_1.default)('memori-header--button', 'memori-header--button--sustainability', hasSpacedButtons && 'memori-header--button-spaced'), title: t('write_and_speak.showMessageConsumptionLabel') ||
101
+ 'LLM consumption', icon: (0, jsx_runtime_1.jsx)(GasStation_1.default, { className: "memori-header--button--sustainability-icon" }) })), children: (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability", children: [(0, jsx_runtime_1.jsx)("h4", { className: "memori-dropdown--sustainability-title", children: t('chatLogs.totalChatConsumptionTitle') || 'Consumo Totale Chat' }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-section", children: [(0, jsx_runtime_1.jsx)("h5", { className: "memori-dropdown--sustainability-section-title", children: t('chatLogs.modelUsage') || 'Model usage' }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-summary", children: [(0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-stat", children: [(0, jsx_runtime_1.jsx)("span", { className: "memori-dropdown--sustainability-stat-label", children: t('chatLogs.input') || 'Input' }), (0, jsx_runtime_1.jsx)("strong", { className: "memori-dropdown--sustainability-stat-value", children: formatCountValue(chatConsumptionTotals.totalInputTokens, currentLocale) }), (0, jsx_runtime_1.jsx)("span", { className: "memori-dropdown--sustainability-stat-meta", children: t('chatLogs.tokens') || 'Tokens' })] }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-stat", children: [(0, jsx_runtime_1.jsx)("span", { className: "memori-dropdown--sustainability-stat-label", children: t('chatLogs.output') || 'Output' }), (0, jsx_runtime_1.jsx)("strong", { className: "memori-dropdown--sustainability-stat-value", children: formatCountValue(chatConsumptionTotals.totalOutputTokens, currentLocale) }), (0, jsx_runtime_1.jsx)("span", { className: "memori-dropdown--sustainability-stat-meta", children: t('chatLogs.tokens') || 'Tokens' })] })] }), llmUsageModels.length > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-row memori-dropdown--sustainability-row--stacked", children: [(0, jsx_runtime_1.jsxs)("span", { className: "memori-dropdown--sustainability-label", children: [t('chatLogs.provider') || 'Provider', " /", ' ', t('chatLogs.model') || 'Model'] }), (0, jsx_runtime_1.jsx)("div", { className: "memori-dropdown--sustainability-tags", children: llmUsageModels.map(modelLabel => ((0, jsx_runtime_1.jsx)("span", { className: "memori-dropdown--sustainability-tag", children: modelLabel }, modelLabel))) })] }))] }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-metrics", children: [(0, jsx_runtime_1.jsx)("h5", { className: "memori-dropdown--sustainability-section-title", children: t('chatLogs.environmentalImpact') || 'Environmental impact' }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-row", children: [(0, jsx_runtime_1.jsxs)("span", { className: "memori-dropdown--sustainability-label", children: [(0, jsx_runtime_1.jsx)("span", { "aria-hidden": "true", children: llmUsage_1.BADGE_EMOJI.energy }), ' ', t('chatLogs.energy') || 'Energy'] }), (0, jsx_runtime_1.jsx)("strong", { className: "memori-dropdown--sustainability-value", children: formatImpactInReadableUnit(chatConsumptionTotals.energy, 'energy', currentLocale) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-row", children: [(0, jsx_runtime_1.jsxs)("span", { className: "memori-dropdown--sustainability-label", children: [(0, jsx_runtime_1.jsx)("span", { "aria-hidden": "true", children: llmUsage_1.BADGE_EMOJI.co2 }), ' ', t('chatLogs.co2') || 'CO2'] }), (0, jsx_runtime_1.jsx)("strong", { className: "memori-dropdown--sustainability-value", children: formatImpactInReadableUnit(chatConsumptionTotals.gwp, 'co2', currentLocale) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--sustainability-row", children: [(0, jsx_runtime_1.jsxs)("span", { className: "memori-dropdown--sustainability-label", children: [(0, jsx_runtime_1.jsx)("span", { "aria-hidden": "true", children: llmUsage_1.BADGE_EMOJI.water }), ' ', t('chatLogs.water') || 'Water'] }), (0, jsx_runtime_1.jsx)("strong", { className: "memori-dropdown--sustainability-value", children: formatImpactInReadableUnit(chatConsumptionTotals.wcf, 'water', currentLocale) })] })] })] }) }));
101
102
  };
102
103
  exports.default = ChatConsumptionDropdown;
103
104
  //# sourceMappingURL=ChatConsumptionDropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatConsumptionDropdown.js","sourceRoot":"","sources":["../../../src/components/Header/ChatConsumptionDropdown.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatConsumptionDropdown.js","sourceRoot":"","sources":["../../../src/components/Header/ChatConsumptionDropdown.tsx"],"names":[],"mappings":"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"}
@@ -10,84 +10,143 @@ const ChevronDown_1 = tslib_1.__importDefault(require("../../../icons/ChevronDow
10
10
  const ChevronLeft_1 = tslib_1.__importDefault(require("../../../icons/ChevronLeft"));
11
11
  const ChevronUp_1 = tslib_1.__importDefault(require("../../../icons/ChevronUp"));
12
12
  const utils_1 = require("../../../../helpers/utils");
13
+ const formatBytes = (bytes) => {
14
+ if (bytes === 0)
15
+ return '0 Bytes';
16
+ const k = 1024;
17
+ const sizes = ['Bytes', 'KB', 'MB'];
18
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
19
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
20
+ };
21
+ const hashContent = (str) => {
22
+ let hash = 0;
23
+ const len = Math.min(str.length, 200);
24
+ for (let i = 0; i < len; i++) {
25
+ hash = (hash << 5) - hash + str.charCodeAt(i);
26
+ hash |= 0;
27
+ }
28
+ return Math.abs(hash).toString(36);
29
+ };
30
+ const CLASS_ATTR_RE = /class\s*=\s*["']([^"']*)["']/i;
31
+ const hasMemoriArtifactClass = (openingTag) => {
32
+ const m = openingTag.match(CLASS_ATTR_RE);
33
+ if (!m)
34
+ return false;
35
+ return /\bmemori-artifact\b/.test(m[1]);
36
+ };
37
+ const detectArtifacts = (text, isFromUser, messageKey) => {
38
+ var _a;
39
+ if (!text || isFromUser)
40
+ return [];
41
+ const cleaned = (0, utils_1.stripReasoningTags)(text);
42
+ const artifacts = [];
43
+ let searchFrom = 0;
44
+ let artifactNum = 0;
45
+ const OPEN_TAG_RE = /<output\b([^>]*)>/gi;
46
+ while (searchFrom < cleaned.length) {
47
+ OPEN_TAG_RE.lastIndex = searchFrom;
48
+ const openMatch = OPEN_TAG_RE.exec(cleaned);
49
+ if (!openMatch)
50
+ break;
51
+ const fullOpenTag = openMatch[0];
52
+ const openStart = openMatch.index;
53
+ const openEnd = openStart + fullOpenTag.length;
54
+ if (!hasMemoriArtifactClass(fullOpenTag)) {
55
+ searchFrom = openEnd;
56
+ continue;
57
+ }
58
+ let depth = 1;
59
+ let pos = openEnd;
60
+ let closeStart = -1;
61
+ while (pos < cleaned.length && depth > 0) {
62
+ const nextOpen = cleaned.indexOf('<output', pos);
63
+ const nextClose = cleaned.indexOf('</output>', pos);
64
+ if (nextClose === -1) {
65
+ closeStart = cleaned.length;
66
+ depth = 0;
67
+ break;
68
+ }
69
+ if (nextOpen !== -1 && nextOpen < nextClose) {
70
+ depth++;
71
+ pos = nextOpen + '<output'.length;
72
+ }
73
+ else {
74
+ depth--;
75
+ if (depth === 0) {
76
+ closeStart = nextClose;
77
+ }
78
+ else {
79
+ pos = nextClose + '</output>'.length;
80
+ }
81
+ }
82
+ }
83
+ if (closeStart === -1) {
84
+ searchFrom = openEnd;
85
+ continue;
86
+ }
87
+ const content = cleaned.slice(openEnd, closeStart).trim();
88
+ const mimeTypeMatch = fullOpenTag.match(/data-mimetype\s*=\s*["']([^"']+)["']/i);
89
+ const mimeType = ((_a = mimeTypeMatch === null || mimeTypeMatch === void 0 ? void 0 : mimeTypeMatch[1]) === null || _a === void 0 ? void 0 : _a.trim()) || 'text/plain';
90
+ const dataTitleMatch = fullOpenTag.match(/data-title\s*=\s*["']([^"']+)["']/i);
91
+ const htmlTitleMatch = content.match(/<title>([^<]+)<\/title>/i);
92
+ const title = (dataTitleMatch === null || dataTitleMatch === void 0 ? void 0 : dataTitleMatch[1]) ||
93
+ (htmlTitleMatch === null || htmlTitleMatch === void 0 ? void 0 : htmlTitleMatch[1]) ||
94
+ `${mimeType.toUpperCase()} Artifact`;
95
+ artifactNum++;
96
+ const stableId = `artifact-${messageKey}-${artifactNum}-${hashContent(content)}`;
97
+ artifacts.push({
98
+ id: stableId,
99
+ content,
100
+ mimeType,
101
+ title,
102
+ timestamp: new Date(),
103
+ size: content.length,
104
+ });
105
+ searchFrom =
106
+ closeStart === cleaned.length
107
+ ? cleaned.length
108
+ : closeStart + '</output>'.length;
109
+ }
110
+ return artifacts;
111
+ };
13
112
  const ArtifactHandler = ({ isChatlogPanel = false, message, }) => {
14
113
  var _a;
15
114
  const { openArtifact, state, closeArtifact } = (0, ArtifactContext_1.useArtifact)();
16
- const messageText = (0, react_1.useMemo)(() => {
17
- return message.translatedText || message.text || '';
18
- }, [message.translatedText, message.text]);
19
- const messageId = (0, react_1.useMemo)(() => {
20
- return `${message.timestamp}-${message.fromUser}`;
21
- }, [message.timestamp, message.fromUser]);
115
+ const messageText = (0, react_1.useMemo)(() => message.text || '', [message.text]);
116
+ const translatedMessageText = (0, react_1.useMemo)(() => message.translatedText || '', [message.translatedText]);
117
+ const messageKey = (0, react_1.useMemo)(() => `${message.timestamp}-${message.fromUser ? '1' : '0'}`, [message.timestamp, message.fromUser]);
22
118
  const dispatchArtifactCreatedEvent = (0, react_1.useCallback)((artifact) => {
23
119
  const event = new CustomEvent('artifactCreated', {
24
- detail: {
25
- artifact,
26
- message,
27
- },
120
+ detail: { artifact, message },
28
121
  });
29
122
  document.dispatchEvent(event);
30
123
  }, [message]);
31
- const detectArtifacts = (0, react_1.useCallback)((text, isFromUser) => {
32
- if (!text || isFromUser) {
33
- return [];
34
- }
35
- text = (0, utils_1.stripReasoningTags)(text);
36
- const artifacts = [];
37
- const artifactRegex = /<output\s+class="memori-artifact"[^>]*data-mimetype="([^"]+)"[^>]*>([\s\S]*?)<\/output>/gi;
38
- const titleRegex = {
39
- dataTitle: /data-title\s*=\s*["\']([^"']+)["\']/i,
40
- htmlTitle: /<title>([^<]+)<\/title>/gi
41
- };
42
- const findTitle = (mimeType, content, outputTag) => {
43
- const dataTitleMatch = outputTag.match(/data-title\s*=\s*["\']([^"']+)["\']/i);
44
- if (dataTitleMatch) {
45
- return dataTitleMatch[1];
46
- }
47
- const htmlTitleMatch = content.match(/<title>([^<]+)<\/title>/i);
48
- if (htmlTitleMatch) {
49
- return htmlTitleMatch[1];
50
- }
51
- return `${mimeType.toUpperCase()} Artifact`;
52
- };
53
- let match;
54
- let artifactNum = 0;
55
- while ((match = artifactRegex.exec(text)) !== null) {
56
- artifactNum++;
57
- const mimeType = match[1];
58
- const content = match[2].trim();
59
- const outputTag = match[0];
60
- const artifact = {
61
- id: `artifact-${Date.now()}-${artifactNum}-${Math.random().toString(36).substr(2, 9)}`,
62
- content,
63
- mimeType,
64
- title: findTitle(mimeType, content, outputTag),
65
- timestamp: new Date(),
66
- size: content.length,
67
- };
68
- artifacts.push(artifact);
69
- }
70
- return artifacts;
71
- }, []);
72
124
  const artifacts = (0, react_1.useMemo)(() => {
73
- return detectArtifacts(messageText, message.fromUser || false);
74
- }, [messageText, message.fromUser, detectArtifacts]);
125
+ const fromUser = message.fromUser || false;
126
+ const primary = detectArtifacts(messageText, fromUser, messageKey);
127
+ if (primary.length > 0)
128
+ return primary;
129
+ return detectArtifacts(translatedMessageText, fromUser, messageKey);
130
+ }, [messageText, translatedMessageText, message.fromUser, messageKey]);
75
131
  (0, react_1.useEffect)(() => {
76
- if (messageText.length > 0 && artifacts.length > 0) {
77
- artifacts.forEach(artifact => {
78
- dispatchArtifactCreatedEvent(artifact);
79
- });
80
- if (!isChatlogPanel) {
81
- setTimeout(() => {
82
- openArtifact(artifacts[0]);
83
- }, 100);
84
- }
132
+ if (!messageText || artifacts.length === 0)
133
+ return;
134
+ artifacts.forEach(artifact => dispatchArtifactCreatedEvent(artifact));
135
+ if (!isChatlogPanel) {
136
+ const timer = setTimeout(() => openArtifact(artifacts[0]), 100);
137
+ return () => clearTimeout(timer);
85
138
  }
86
- }, [messageId, artifacts, dispatchArtifactCreatedEvent, isChatlogPanel, openArtifact]);
139
+ }, [
140
+ messageKey,
141
+ messageText,
142
+ artifacts,
143
+ dispatchArtifactCreatedEvent,
144
+ isChatlogPanel,
145
+ openArtifact,
146
+ ]);
87
147
  const handleArtifactClick = (0, react_1.useCallback)((artifact) => {
88
148
  var _a;
89
- if (state.isDrawerOpen &&
90
- ((_a = state.currentArtifact) === null || _a === void 0 ? void 0 : _a.id) === artifact.id) {
149
+ if (state.isDrawerOpen && ((_a = state.currentArtifact) === null || _a === void 0 ? void 0 : _a.id) === artifact.id) {
91
150
  closeArtifact();
92
151
  }
93
152
  else {
@@ -115,33 +174,24 @@ const ArtifactHandler = ({ isChatlogPanel = false, message, }) => {
115
174
  }, []);
116
175
  if (artifacts.length === 0)
117
176
  return null;
118
- return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: artifacts.map((artifact) => {
119
- var _a, _b, _c, _d;
177
+ return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column', gap: '10px' }, children: artifacts.map(artifact => {
178
+ var _a;
120
179
  const isSelected = state.isDrawerOpen && ((_a = state.currentArtifact) === null || _a === void 0 ? void 0 : _a.id) === artifact.id;
121
- return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: `memori-artifact-handler${isSelected ? ' memori-artifact-handler--selected' : ''}`, onClick: () => handleArtifactClick(artifact), style: isSelected ? {
122
- border: '2px solid var(--memori-primary, #3b82f6)',
123
- boxShadow: '0 0 0 3px rgba(59, 130, 246, 0.1)',
124
- } : undefined, children: [(0, jsx_runtime_1.jsx)("div", { className: "memori-artifact-handler-icon", children: getIconForMimeType(artifact.mimeType) }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-artifact-handler-info", children: [(0, jsx_runtime_1.jsx)("div", { className: "memori-artifact-handler-title", children: artifact.title }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-artifact-handler-meta", children: [artifact.mimeType, " \u2022", ' ', formatBytes(artifact.size || 0)] })] }), (0, jsx_runtime_1.jsx)("div", { className: "memori-artifact-handler-action", children: isChatlogPanel ? (state.isDrawerOpen &&
125
- ((_b = state.currentArtifact) === null || _b === void 0 ? void 0 : _b.id) === artifact.id ? ((0, jsx_runtime_1.jsx)(ChevronUp_1.default, { className: "memori-artifact-handler-action-icon" })) : ((0, jsx_runtime_1.jsx)(ChevronDown_1.default, { className: "memori-artifact-handler-action-icon" }))) : state.isDrawerOpen &&
126
- ((_c = state.currentArtifact) === null || _c === void 0 ? void 0 : _c.id) === artifact.id ? ((0, jsx_runtime_1.jsx)(ChevronLeft_1.default, { className: "memori-artifact-handler-action-icon" })) : ((0, jsx_runtime_1.jsx)(ChevronRight_1.default, { className: "memori-artifact-handler-action-icon" })) })] }), state.isDrawerOpen &&
127
- ((_d = state.currentArtifact) === null || _d === void 0 ? void 0 : _d.id) === artifact.id && ((0, jsx_runtime_1.jsx)(ArtifactDrawer_1.default, { isChatLogPanel: isChatlogPanel }))] }, artifact.id));
180
+ return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: `memori-artifact-handler${isSelected ? ' memori-artifact-handler--selected' : ''}`, onClick: () => handleArtifactClick(artifact), style: isSelected
181
+ ? {
182
+ border: '2px solid var(--memori-primary, #3b82f6)',
183
+ boxShadow: '0 0 0 3px rgba(59, 130, 246, 0.1)',
184
+ }
185
+ : undefined, children: [(0, jsx_runtime_1.jsx)("div", { className: "memori-artifact-handler-icon", children: getIconForMimeType(artifact.mimeType) }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-artifact-handler-info", children: [(0, jsx_runtime_1.jsx)("div", { className: "memori-artifact-handler-title", children: artifact.title }), (0, jsx_runtime_1.jsxs)("div", { className: "memori-artifact-handler-meta", children: [artifact.mimeType, " \u2022 ", formatBytes(artifact.size || 0)] })] }), (0, jsx_runtime_1.jsx)("div", { className: "memori-artifact-handler-action", children: isChatlogPanel ? (isSelected ? ((0, jsx_runtime_1.jsx)(ChevronUp_1.default, { className: "memori-artifact-handler-action-icon" })) : ((0, jsx_runtime_1.jsx)(ChevronDown_1.default, { className: "memori-artifact-handler-action-icon" }))) : isSelected ? ((0, jsx_runtime_1.jsx)(ChevronLeft_1.default, { className: "memori-artifact-handler-action-icon" })) : ((0, jsx_runtime_1.jsx)(ChevronRight_1.default, { className: "memori-artifact-handler-action-icon" })) })] }), isSelected && (0, jsx_runtime_1.jsx)(ArtifactDrawer_1.default, { isChatLogPanel: isChatlogPanel })] }, artifact.id));
128
186
  }) }));
129
187
  };
130
- const formatBytes = (bytes) => {
131
- if (bytes === 0)
132
- return '0 Bytes';
133
- const k = 1024;
134
- const sizes = ['Bytes', 'KB', 'MB'];
135
- const i = Math.floor(Math.log(bytes) / Math.log(k));
136
- return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
137
- };
138
- const MemoizedArtifactHandler = (0, react_1.memo)(ArtifactHandler, (prevProps, nextProps) => {
139
- const prevMessageText = prevProps.message.translatedText || prevProps.message.text || '';
140
- const nextMessageText = nextProps.message.translatedText || nextProps.message.text || '';
141
- return (prevProps.isChatlogPanel === nextProps.isChatlogPanel &&
142
- prevMessageText === nextMessageText &&
143
- prevProps.message.fromUser === nextProps.message.fromUser &&
144
- prevProps.message.timestamp === nextProps.message.timestamp);
188
+ const MemoizedArtifactHandler = (0, react_1.memo)(ArtifactHandler, (prev, next) => {
189
+ const prevText = prev.message.text || prev.message.translatedText || '';
190
+ const nextText = next.message.text || next.message.translatedText || '';
191
+ return (prev.isChatlogPanel === next.isChatlogPanel &&
192
+ prevText === nextText &&
193
+ prev.message.fromUser === next.message.fromUser &&
194
+ prev.message.timestamp === next.message.timestamp);
145
195
  });
146
196
  exports.default = MemoizedArtifactHandler;
147
197
  //# sourceMappingURL=ArtifactHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactHandler.js","sourceRoot":"","sources":["../../../../../src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArtifactHandler.js","sourceRoot":"","sources":["../../../../../src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx"],"names":[],"mappings":"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"}