@memori.ai/memori-react 8.8.4 → 8.9.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 (188) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +28 -0
  3. package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js +0 -1
  4. package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js.map +1 -1
  5. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +0 -10
  6. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  7. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.d.ts +0 -4
  8. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.js +0 -85
  9. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.js.map +1 -1
  10. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js +1 -2
  11. package/dist/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js.map +1 -1
  12. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js +2 -1
  13. package/dist/components/Avatar/AvatarView/AvatarComponent/constants.js.map +1 -1
  14. package/dist/components/Chat/Chat.css +31 -0
  15. package/dist/components/Chat/Chat.js +18 -4
  16. package/dist/components/Chat/Chat.js.map +1 -1
  17. package/dist/components/ChatBubble/ChatBubble.js +1 -2
  18. package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
  19. package/dist/components/ChatInputs/ChatInputs.css +23 -0
  20. package/dist/components/ChatInputs/ChatInputs.d.ts +1 -0
  21. package/dist/components/ChatInputs/ChatInputs.js +37 -21
  22. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  23. package/dist/components/ChatTextArea/ChatTextArea.css +31 -0
  24. package/dist/components/ChatTextArea/ChatTextArea.d.ts +1 -0
  25. package/dist/components/ChatTextArea/ChatTextArea.js +9 -2
  26. package/dist/components/ChatTextArea/ChatTextArea.js.map +1 -1
  27. package/dist/components/FilePreview/FilePreview.css +39 -0
  28. package/dist/components/Header/Header.js +3 -16
  29. package/dist/components/Header/Header.js.map +1 -1
  30. package/dist/components/MediaWidget/LinkItemWidget.js +1 -1
  31. package/dist/components/MediaWidget/LinkItemWidget.js.map +1 -1
  32. package/dist/components/MediaWidget/MediaItemWidget.js +5 -9
  33. package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
  34. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +65 -51
  35. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  36. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.d.ts +5 -0
  37. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.js +287 -0
  38. package/dist/components/MemoriArtifactSystem/utils/ArtifactAPI.js.map +1 -0
  39. package/dist/components/MemoriWidget/MemoriWidget.d.ts +12 -0
  40. package/dist/components/MemoriWidget/MemoriWidget.js +31 -22
  41. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  42. package/dist/components/Snippet/Snippet.js +4 -3
  43. package/dist/components/Snippet/Snippet.js.map +1 -1
  44. package/dist/components/StartPanel/StartPanel.css +14 -0
  45. package/dist/components/StartPanel/StartPanel.js +2 -2
  46. package/dist/components/StartPanel/StartPanel.js.map +1 -1
  47. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js +0 -21
  48. package/dist/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  49. package/dist/components/VenueWidget/VenueWidget.js +0 -1
  50. package/dist/components/VenueWidget/VenueWidget.js.map +1 -1
  51. package/dist/components/layouts/HiddenChat.js +0 -15
  52. package/dist/components/layouts/HiddenChat.js.map +1 -1
  53. package/dist/components/layouts/chat.css +2 -2
  54. package/dist/context/visemeContext.js +0 -6
  55. package/dist/context/visemeContext.js.map +1 -1
  56. package/dist/helpers/constants.d.ts +11 -0
  57. package/dist/helpers/constants.js +24 -2
  58. package/dist/helpers/constants.js.map +1 -1
  59. package/dist/helpers/tts/useTTS.js +0 -4
  60. package/dist/helpers/tts/useTTS.js.map +1 -1
  61. package/dist/helpers/utils.d.ts +1 -0
  62. package/dist/helpers/utils.js +6 -1
  63. package/dist/helpers/utils.js.map +1 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/locales/de.json +2 -0
  66. package/dist/locales/en.json +2 -0
  67. package/dist/locales/es.json +2 -0
  68. package/dist/locales/fr.json +2 -0
  69. package/dist/locales/it.json +2 -0
  70. package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js +0 -1
  71. package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js.map +1 -1
  72. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +0 -10
  73. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  74. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.d.ts +0 -4
  75. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.js +0 -85
  76. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.js.map +1 -1
  77. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js +1 -2
  78. package/esm/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.js.map +1 -1
  79. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js +2 -1
  80. package/esm/components/Avatar/AvatarView/AvatarComponent/constants.js.map +1 -1
  81. package/esm/components/Chat/Chat.css +31 -0
  82. package/esm/components/Chat/Chat.js +19 -5
  83. package/esm/components/Chat/Chat.js.map +1 -1
  84. package/esm/components/ChatBubble/ChatBubble.js +1 -2
  85. package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
  86. package/esm/components/ChatInputs/ChatInputs.css +23 -0
  87. package/esm/components/ChatInputs/ChatInputs.d.ts +1 -0
  88. package/esm/components/ChatInputs/ChatInputs.js +37 -21
  89. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  90. package/esm/components/ChatTextArea/ChatTextArea.css +31 -0
  91. package/esm/components/ChatTextArea/ChatTextArea.d.ts +1 -0
  92. package/esm/components/ChatTextArea/ChatTextArea.js +9 -2
  93. package/esm/components/ChatTextArea/ChatTextArea.js.map +1 -1
  94. package/esm/components/FilePreview/FilePreview.css +39 -0
  95. package/esm/components/Header/Header.js +3 -16
  96. package/esm/components/Header/Header.js.map +1 -1
  97. package/esm/components/MediaWidget/LinkItemWidget.js +1 -1
  98. package/esm/components/MediaWidget/LinkItemWidget.js.map +1 -1
  99. package/esm/components/MediaWidget/MediaItemWidget.js +5 -9
  100. package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
  101. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +65 -51
  102. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  103. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.d.ts +5 -0
  104. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.js +282 -0
  105. package/esm/components/MemoriArtifactSystem/utils/ArtifactAPI.js.map +1 -0
  106. package/esm/components/MemoriWidget/MemoriWidget.d.ts +12 -0
  107. package/esm/components/MemoriWidget/MemoriWidget.js +31 -22
  108. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  109. package/esm/components/Snippet/Snippet.js +4 -3
  110. package/esm/components/Snippet/Snippet.js.map +1 -1
  111. package/esm/components/StartPanel/StartPanel.css +14 -0
  112. package/esm/components/StartPanel/StartPanel.js +3 -3
  113. package/esm/components/StartPanel/StartPanel.js.map +1 -1
  114. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js +0 -21
  115. package/esm/components/UploadButton/UploadDocuments/UploadDocuments.js.map +1 -1
  116. package/esm/components/VenueWidget/VenueWidget.js +0 -1
  117. package/esm/components/VenueWidget/VenueWidget.js.map +1 -1
  118. package/esm/components/layouts/HiddenChat.js +0 -15
  119. package/esm/components/layouts/HiddenChat.js.map +1 -1
  120. package/esm/components/layouts/chat.css +2 -2
  121. package/esm/context/visemeContext.js +0 -6
  122. package/esm/context/visemeContext.js.map +1 -1
  123. package/esm/helpers/constants.d.ts +11 -0
  124. package/esm/helpers/constants.js +22 -1
  125. package/esm/helpers/constants.js.map +1 -1
  126. package/esm/helpers/tts/useTTS.js +0 -4
  127. package/esm/helpers/tts/useTTS.js.map +1 -1
  128. package/esm/helpers/utils.d.ts +1 -0
  129. package/esm/helpers/utils.js +4 -0
  130. package/esm/helpers/utils.js.map +1 -1
  131. package/esm/index.js.map +1 -1
  132. package/esm/locales/de.json +2 -0
  133. package/esm/locales/en.json +2 -0
  134. package/esm/locales/es.json +2 -0
  135. package/esm/locales/fr.json +2 -0
  136. package/esm/locales/it.json +2 -0
  137. package/package.json +1 -1
  138. package/src/components/Avatar/AvatarView/AvatarComponent/avatarComponent.tsx +0 -1
  139. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx +0 -17
  140. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/AvatarAnimator.ts +0 -159
  141. package/src/components/Avatar/AvatarView/AvatarComponent/components/controllers/MorphTargetController.ts +1 -2
  142. package/src/components/Avatar/AvatarView/AvatarComponent/constants.ts +2 -1
  143. package/src/components/Chat/Chat.css +31 -0
  144. package/src/components/Chat/Chat.stories.tsx +503 -9
  145. package/src/components/Chat/Chat.tsx +23 -3
  146. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +73 -73
  147. package/src/components/ChatBubble/ChatBubble.tsx +1 -2
  148. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +25 -25
  149. package/src/components/ChatInputs/ChatInputs.css +23 -0
  150. package/src/components/ChatInputs/ChatInputs.tsx +36 -14
  151. package/src/components/ChatTextArea/ChatTextArea.css +31 -0
  152. package/src/components/ChatTextArea/ChatTextArea.tsx +11 -1
  153. package/src/components/FilePreview/FilePreview.css +39 -0
  154. package/src/components/Header/Header.tsx +0 -13
  155. package/src/components/MediaWidget/LinkItemWidget.tsx +1 -1
  156. package/src/components/MediaWidget/MediaItemWidget.stories.tsx +33 -0
  157. package/src/components/MediaWidget/MediaItemWidget.tsx +7 -10
  158. package/src/components/MediaWidget/__snapshots__/LinkItemWidget.test.tsx.snap +4 -4
  159. package/src/components/MediaWidget/__snapshots__/MediaItemWidget.test.tsx.snap +6 -6
  160. package/src/components/MediaWidget/__snapshots__/MediaWidget.test.tsx.snap +2 -2
  161. package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +766 -2
  162. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +103 -89
  163. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.test.tsx +307 -0
  164. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.tsx +373 -0
  165. package/src/components/MemoriWidget/MemoriWidget.tsx +35 -9
  166. package/src/components/Snippet/Snippet.tsx +3 -2
  167. package/src/components/StartPanel/StartPanel.css +14 -0
  168. package/src/components/StartPanel/StartPanel.tsx +23 -10
  169. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +206 -84
  170. package/src/components/UploadButton/UploadDocuments/UploadDocuments.tsx +0 -23
  171. package/src/components/VenueWidget/VenueWidget.tsx +0 -1
  172. package/src/components/layouts/HiddenChat.tsx +0 -16
  173. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +204 -82
  174. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +408 -164
  175. package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +204 -82
  176. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +204 -82
  177. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +204 -82
  178. package/src/components/layouts/chat.css +2 -2
  179. package/src/context/visemeContext.tsx +0 -7
  180. package/src/helpers/constants.ts +28 -3
  181. package/src/helpers/tts/useTTS.ts +10 -4
  182. package/src/helpers/utils.ts +5 -0
  183. package/src/index.tsx +0 -1
  184. package/src/locales/de.json +2 -0
  185. package/src/locales/en.json +2 -0
  186. package/src/locales/es.json +2 -0
  187. package/src/locales/fr.json +2 -0
  188. package/src/locales/it.json +2 -0
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArtifactAPIBridge = exports.initMemoriArtifactAPI = void 0;
4
+ const react_1 = require("react");
5
+ const ArtifactContext_1 = require("../context/ArtifactContext");
6
+ const pendingCalls = [];
7
+ let isReady = false;
8
+ const initMemoriArtifactAPI = () => {
9
+ if (typeof window === 'undefined')
10
+ return;
11
+ if (window.MemoriArtifactAPI) {
12
+ return;
13
+ }
14
+ window.MemoriArtifactAPI = {
15
+ _isReady: () => isReady,
16
+ _setReady: (ready) => { isReady = ready; },
17
+ _getPendingCalls: () => pendingCalls,
18
+ _clearPendingCalls: () => { pendingCalls.length = 0; },
19
+ openArtifact: (artifact) => {
20
+ if (!isReady) {
21
+ pendingCalls.push({ method: 'openArtifact', args: [artifact] });
22
+ }
23
+ },
24
+ createAndOpenArtifact: (content, mimeType, title) => {
25
+ if (!isReady) {
26
+ pendingCalls.push({ method: 'createAndOpenArtifact', args: [content, mimeType, title] });
27
+ }
28
+ },
29
+ createFromOutputElement: (outputElement) => {
30
+ if (!isReady) {
31
+ pendingCalls.push({ method: 'createFromOutputElement', args: [outputElement] });
32
+ return 'pending';
33
+ }
34
+ return 'not-ready';
35
+ },
36
+ closeArtifact: () => {
37
+ if (!isReady) {
38
+ pendingCalls.push({ method: 'closeArtifact', args: [] });
39
+ }
40
+ },
41
+ toggleFullscreen: () => {
42
+ if (!isReady) {
43
+ pendingCalls.push({ method: 'toggleFullscreen', args: [] });
44
+ }
45
+ },
46
+ getState: () => {
47
+ if (!isReady) {
48
+ return { currentArtifact: null, isDrawerOpen: false, isFullscreen: false };
49
+ }
50
+ return { currentArtifact: null, isDrawerOpen: false, isFullscreen: false };
51
+ },
52
+ };
53
+ };
54
+ exports.initMemoriArtifactAPI = initMemoriArtifactAPI;
55
+ (0, exports.initMemoriArtifactAPI)();
56
+ const ArtifactAPIBridge = ({ pushMessage, }) => {
57
+ const { openArtifact, closeArtifact, toggleFullscreen, state } = (0, ArtifactContext_1.useArtifact)();
58
+ const apiRef = (0, react_1.useRef)(null);
59
+ (0, react_1.useEffect)(() => {
60
+ if (typeof window !== 'undefined') {
61
+ const windowApi = window.MemoriArtifactAPI;
62
+ apiRef.current = {
63
+ openArtifact: (artifact) => {
64
+ openArtifact(artifact);
65
+ },
66
+ createAndOpenArtifact: (content, mimeType = 'html', title) => {
67
+ const autoTitle = title || getTitleFromMimeType(mimeType);
68
+ const artifact = {
69
+ id: `artifact-${Date.now()}-${Math.random()
70
+ .toString(36)
71
+ .substr(2, 9)}`,
72
+ content,
73
+ mimeType,
74
+ title: autoTitle,
75
+ timestamp: new Date(),
76
+ size: content.length,
77
+ };
78
+ let messageText = content;
79
+ if (!messageText.includes('<output class="memori-artifact">')) {
80
+ messageText = `<output class="memori-artifact" data-mimetype="${mimeType}" data-title="${autoTitle}">${content}</output>`;
81
+ }
82
+ pushMessage({
83
+ text: messageText,
84
+ timestamp: new Date().toISOString(),
85
+ fromUser: false,
86
+ media: [],
87
+ initial: false,
88
+ translatedText: undefined,
89
+ questionAnswered: undefined,
90
+ generatedByAI: false,
91
+ contextVars: undefined,
92
+ date: undefined,
93
+ placeName: undefined,
94
+ placeLatitude: undefined,
95
+ placeLongitude: undefined,
96
+ placeUncertaintyKm: undefined,
97
+ });
98
+ openArtifact(artifact);
99
+ },
100
+ createFromOutputElement: (outputElement) => {
101
+ const content = outputElement.innerHTML;
102
+ const mimeType = outputElement.getAttribute('data-mimetype') || 'html';
103
+ const title = outputElement.getAttribute('data-title') ||
104
+ getTitleFromMimeType(mimeType);
105
+ outputElement.style.display = 'none';
106
+ outputElement.setAttribute('data-memori-processed', 'true');
107
+ const artifact = {
108
+ id: `artifact-${Date.now()}-${Math.random()
109
+ .toString(36)
110
+ .substr(2, 9)}`,
111
+ content,
112
+ mimeType,
113
+ title,
114
+ timestamp: new Date(),
115
+ size: content.length,
116
+ };
117
+ let messageText = content;
118
+ if (!messageText.includes('<output class="memori-artifact">')) {
119
+ messageText = `<output class="memori-artifact" data-mimetype="${mimeType}" data-title="${title}">${content}</output>`;
120
+ }
121
+ pushMessage({
122
+ text: messageText,
123
+ timestamp: new Date().toISOString(),
124
+ fromUser: false,
125
+ media: [],
126
+ initial: false,
127
+ translatedText: undefined,
128
+ questionAnswered: undefined,
129
+ generatedByAI: false,
130
+ contextVars: undefined,
131
+ date: undefined,
132
+ placeName: undefined,
133
+ placeLatitude: undefined,
134
+ placeLongitude: undefined,
135
+ placeUncertaintyKm: undefined,
136
+ });
137
+ openArtifact(artifact);
138
+ return artifact.id;
139
+ },
140
+ closeArtifact: () => {
141
+ closeArtifact();
142
+ },
143
+ toggleFullscreen: () => {
144
+ toggleFullscreen();
145
+ },
146
+ getState: () => {
147
+ return {
148
+ currentArtifact: state.currentArtifact,
149
+ isDrawerOpen: state.isDrawerOpen,
150
+ isFullscreen: state.isFullscreen,
151
+ };
152
+ },
153
+ };
154
+ if (windowApi) {
155
+ windowApi.openArtifact = apiRef.current.openArtifact;
156
+ windowApi.createAndOpenArtifact = apiRef.current.createAndOpenArtifact;
157
+ windowApi.createFromOutputElement = apiRef.current.createFromOutputElement;
158
+ windowApi.closeArtifact = apiRef.current.closeArtifact;
159
+ windowApi.toggleFullscreen = apiRef.current.toggleFullscreen;
160
+ windowApi.getState = apiRef.current.getState;
161
+ windowApi._setReady(true);
162
+ const pendingCalls = windowApi._getPendingCalls();
163
+ if (pendingCalls.length > 0) {
164
+ pendingCalls.forEach((call) => {
165
+ try {
166
+ const method = apiRef.current[call.method];
167
+ if (method) {
168
+ method(...call.args);
169
+ }
170
+ }
171
+ catch (error) {
172
+ }
173
+ });
174
+ windowApi._clearPendingCalls();
175
+ }
176
+ }
177
+ else {
178
+ window.MemoriArtifactAPI = {
179
+ ...apiRef.current,
180
+ _isReady: true,
181
+ _pendingCalls: [],
182
+ _setReady: (ready) => {
183
+ window.MemoriArtifactAPI._isReady = ready;
184
+ },
185
+ _getPendingCalls: () => {
186
+ return window.MemoriArtifactAPI._pendingCalls;
187
+ },
188
+ _clearPendingCalls: () => {
189
+ window.MemoriArtifactAPI._pendingCalls = [];
190
+ },
191
+ };
192
+ }
193
+ }
194
+ return () => {
195
+ if (typeof window !== 'undefined') {
196
+ delete window.MemoriArtifactAPI;
197
+ }
198
+ };
199
+ }, [openArtifact, closeArtifact, toggleFullscreen, state, pushMessage]);
200
+ return null;
201
+ };
202
+ exports.ArtifactAPIBridge = ArtifactAPIBridge;
203
+ function getTitleFromMimeType(mimeType) {
204
+ if (mimeType.includes('html'))
205
+ return 'HTML Document';
206
+ if (mimeType.includes('markdown'))
207
+ return 'Markdown Document';
208
+ if (mimeType.includes('javascript'))
209
+ return 'JavaScript Code';
210
+ if (mimeType.includes('python'))
211
+ return 'Python Code';
212
+ if (mimeType.includes('json'))
213
+ return 'JSON Data';
214
+ if (mimeType.includes('css'))
215
+ return 'CSS Stylesheet';
216
+ if (mimeType.includes('typescript'))
217
+ return 'TypeScript Code';
218
+ if (mimeType.includes('xml'))
219
+ return 'XML Document';
220
+ if (mimeType.includes('svg'))
221
+ return 'SVG Image';
222
+ return 'Document';
223
+ }
224
+ function createArtifactHandler(content, mimeType, title) {
225
+ const handler = document.createElement('div');
226
+ handler.className = 'memori-artifact-handler';
227
+ handler.style.cssText = `
228
+ display: flex;
229
+ align-items: center;
230
+ gap: 12px;
231
+ padding: 16px;
232
+ margin: 12px 0;
233
+ background: white;
234
+ border: 1px solid #e5e7eb;
235
+ border-radius: 12px;
236
+ cursor: pointer;
237
+ transition: all 0.2s ease;
238
+ `;
239
+ const icon = getIconForMimeType(mimeType);
240
+ const size = `${(content.length / 1024).toFixed(1)} KB`;
241
+ handler.innerHTML = `
242
+ <div style="font-size: 32px;">${icon}</div>
243
+ <div style="flex: 1;">
244
+ <div style="font-weight: 600; margin-bottom: 4px;">${escapeHtml(title)}</div>
245
+ <div style="font-size: 13px; color: #6b7280;">${mimeType} • ${size}</div>
246
+ </div>
247
+ <div>
248
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
249
+ <polyline points="9 18 15 12 9 6"></polyline>
250
+ </svg>
251
+ </div>
252
+ `;
253
+ handler.addEventListener('mouseenter', () => {
254
+ handler.style.background = '#faf5ff';
255
+ handler.style.borderColor = '#9333ea';
256
+ });
257
+ handler.addEventListener('mouseleave', () => {
258
+ handler.style.background = 'white';
259
+ handler.style.borderColor = '#e5e7eb';
260
+ });
261
+ return handler;
262
+ }
263
+ function getIconForMimeType(mimeType) {
264
+ if (mimeType.includes('html'))
265
+ return '🌐';
266
+ if (mimeType.includes('markdown'))
267
+ return '📝';
268
+ if (mimeType.includes('javascript') || mimeType.includes('typescript'))
269
+ return '📜';
270
+ if (mimeType.includes('python'))
271
+ return '🐍';
272
+ if (mimeType.includes('json'))
273
+ return '📊';
274
+ if (mimeType.includes('css'))
275
+ return '🎨';
276
+ if (mimeType.includes('xml'))
277
+ return '📋';
278
+ if (mimeType.includes('svg'))
279
+ return '🖼️';
280
+ return '📄';
281
+ }
282
+ function escapeHtml(text) {
283
+ const div = document.createElement('div');
284
+ div.textContent = text;
285
+ return div.innerHTML;
286
+ }
287
+ //# sourceMappingURL=ArtifactAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArtifactAPI.js","sourceRoot":"","sources":["../../../../src/components/MemoriArtifactSystem/utils/ArtifactAPI.tsx"],"names":[],"mappings":"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"}
@@ -46,6 +46,18 @@ declare global {
46
46
  typeMessage: typeof typeMessage;
47
47
  typeMessageHidden: typeof typeMessageHidden;
48
48
  typeBatchMessages: typeof typeBatchMessages;
49
+ MemoriArtifactAPI?: {
50
+ openArtifact: (artifact: ArtifactData) => void;
51
+ createAndOpenArtifact: (content: string, mimeType?: string, title?: string) => void;
52
+ createFromOutputElement: (outputElement: HTMLOutputElement) => string;
53
+ closeArtifact: () => void;
54
+ toggleFullscreen: () => void;
55
+ getState: () => {
56
+ currentArtifact: ArtifactData | null;
57
+ isDrawerOpen: boolean;
58
+ isFullscreen: boolean;
59
+ };
60
+ };
49
61
  }
50
62
  }
51
63
  export interface LayoutProps {
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ArtifactAPI_1 = require("../MemoriArtifactSystem/utils/ArtifactAPI");
5
6
  const react_1 = require("react");
6
7
  const react_i18next_1 = require("react-i18next");
7
8
  const memori_api_client_1 = tslib_1.__importDefault(require("@memori.ai/memori-api-client"));
@@ -157,7 +158,7 @@ let audioContext;
157
158
  let memoriPassword;
158
159
  let userToken;
159
160
  const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenantID, memoriLang, multilingual, integration, layout, customLayout, showShare, preview = false, embed = false, showCopyButton = true, showTranslationOriginal = false, showInputs = true, showDates = false, showContextPerLine = false, showSettings, showTypingText = false, showClear = false, showLogin = false, showUpload, showOnlyLastMessages, showChatHistory, showReasoning, height = '100vh', secret, baseUrl = 'https://aisuru-staging.aclambda.online', apiURL = 'https://backend-staging.memori.ai', engineURL = 'https://engine-staging.memori.ai', initialContextVars, initialQuestion, ttsProvider, ogImage, sessionID: initialSessionID, tenant, personification, authToken, enableAudio, defaultSpeakerActive = true, disableTextEnteredEvents = false, onStateChange, additionalInfo, additionalSettings, customMediaRenderer, userAvatar, __WEBCOMPONENT__ = false, useMathFormatting = false, autoStart = false, applyVarsToRoot = false, showFunctionCache = false, }) => {
160
- var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7;
161
+ var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13;
161
162
  const { t, i18n } = (0, react_i18next_1.useTranslation)();
162
163
  const [isClient, setIsClient] = (0, react_1.useState)(false);
163
164
  (0, react_1.useEffect)(() => {
@@ -999,7 +1000,6 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
999
1000
  const handleVisibilityChange = () => {
1000
1001
  const isVisible = !document.hidden;
1001
1002
  if (isVisible && !isTabVisible) {
1002
- console.log('Tab is now active/visible - starting date polling');
1003
1003
  sendDateChangedEvent({
1004
1004
  sessionID: sessionId,
1005
1005
  state: currentDialogState,
@@ -1007,7 +1007,6 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1007
1007
  startDatePolling();
1008
1008
  }
1009
1009
  else if (!isVisible && isTabVisible) {
1010
- console.log('Tab is now hidden - stopping date polling');
1011
1010
  stopDatePolling();
1012
1011
  }
1013
1012
  isTabVisible = isVisible;
@@ -1064,7 +1063,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1064
1063
  apiUrl: `${baseUrl}/api/tts`,
1065
1064
  continuousSpeech: continuousSpeech,
1066
1065
  preview: preview,
1067
- }, autoStart, defaultEnableAudio, defaultSpeakerActive);
1066
+ }, autoStart, defaultEnableAudio, (_q = defaultSpeakerActive !== null && defaultSpeakerActive !== void 0 ? defaultSpeakerActive : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.defaultSpeakerActive) !== null && _q !== void 0 ? _q : true);
1068
1067
  const shouldPlayAudio = (text) => {
1069
1068
  const currentSpeakerMuted = (0, configuration_1.getLocalConfig)('muteSpeaker', false);
1070
1069
  console.log('[MemoriWidget] shouldPlayAudio', currentSpeakerMuted);
@@ -1202,7 +1201,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1202
1201
  ? {
1203
1202
  '--memori-chat-bubble-bg': '#fff',
1204
1203
  ...(integrationConfig && !instruct
1205
- ? { '--memori-text-color': (_q = integrationConfig.textColor) !== null && _q !== void 0 ? _q : '#000' }
1204
+ ? { '--memori-text-color': (_r = integrationConfig.textColor) !== null && _r !== void 0 ? _r : '#000' }
1206
1205
  : {}),
1207
1206
  ...((integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.buttonBgColor)
1208
1207
  ? {
@@ -1226,12 +1225,12 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1226
1225
  ? {
1227
1226
  '--memori-inner-bg': `rgba(${integrationConfig.innerBgColor === 'dark'
1228
1227
  ? '0, 0, 0'
1229
- : '255, 255, 255'}, ${(_r = integrationConfig.innerBgAlpha) !== null && _r !== void 0 ? _r : 0.4})`,
1228
+ : '255, 255, 255'}, ${(_s = integrationConfig.innerBgAlpha) !== null && _s !== void 0 ? _s : 0.4})`,
1230
1229
  '--memori-inner-content-pad': '1.5rem',
1231
1230
  '--memori-nav-bg-image': 'none',
1232
1231
  '--memori-nav-bg': `rgba(${integrationConfig.innerBgColor === 'dark'
1233
1232
  ? '0, 0, 0'
1234
- : '255, 255, 255'}, ${(_s = integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.innerBgAlpha) !== null && _s !== void 0 ? _s : 0.4})`,
1233
+ : '255, 255, 255'}, ${(_t = integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.innerBgAlpha) !== null && _t !== void 0 ? _t : 0.4})`,
1235
1234
  }
1236
1235
  : {
1237
1236
  '--memori-inner-content-pad': '0px',
@@ -1687,12 +1686,12 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1687
1686
  const headerProps = {
1688
1687
  memori: {
1689
1688
  ...memori,
1690
- ownerUserID: (_u = (_t = memori.ownerUserID) !== null && _t !== void 0 ? _t : ownerUserID) !== null && _u !== void 0 ? _u : undefined,
1689
+ ownerUserID: (_v = (_u = memori.ownerUserID) !== null && _u !== void 0 ? _u : ownerUserID) !== null && _v !== void 0 ? _v : undefined,
1691
1690
  },
1692
1691
  apiClient: client,
1693
1692
  tenant,
1694
1693
  history,
1695
- showShare: (_v = showShare !== null && showShare !== void 0 ? showShare : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showShare) !== null && _v !== void 0 ? _v : true,
1694
+ showShare: (_w = showShare !== null && showShare !== void 0 ? showShare : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showShare) !== null && _w !== void 0 ? _w : true,
1696
1695
  position,
1697
1696
  layout: selectedLayout,
1698
1697
  additionalSettings,
@@ -1706,13 +1705,13 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1706
1705
  toggleMute(mute);
1707
1706
  },
1708
1707
  setShowChatHistoryDrawer,
1709
- showSettings: (_w = showSettings !== null && showSettings !== void 0 ? showSettings : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showSettings) !== null && _w !== void 0 ? _w : true,
1710
- showChatHistory: (_x = showChatHistory !== null && showChatHistory !== void 0 ? showChatHistory : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showChatHistory) !== null && _x !== void 0 ? _x : true,
1708
+ showSettings: (_x = showSettings !== null && showSettings !== void 0 ? showSettings : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showSettings) !== null && _x !== void 0 ? _x : true,
1709
+ showChatHistory: (_y = showChatHistory !== null && showChatHistory !== void 0 ? showChatHistory : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showChatHistory) !== null && _y !== void 0 ? _y : true,
1711
1710
  hasUserActivatedSpeak,
1712
1711
  showReload: selectedLayout === 'TOTEM',
1713
- showClear,
1712
+ showClear: (_z = showClear !== null && showClear !== void 0 ? showClear : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showClear) !== null && _z !== void 0 ? _z : false,
1714
1713
  clearHistory: () => setHistory(h => h.slice(-1)),
1715
- showLogin: showLogin !== null && showLogin !== void 0 ? showLogin : memori.requireLoginToken,
1714
+ showLogin: (_0 = showLogin !== null && showLogin !== void 0 ? showLogin : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showLogin) !== null && _0 !== void 0 ? _0 : memori.requireLoginToken,
1716
1715
  setShowLoginDrawer,
1717
1716
  loginToken,
1718
1717
  user,
@@ -1741,7 +1740,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1741
1740
  hasUserActivatedSpeak,
1742
1741
  isPlayingAudio: isPlayingAudio &&
1743
1742
  !speakerMuted &&
1744
- ((_y = enableAudio !== null && enableAudio !== void 0 ? enableAudio : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.enableAudio) !== null && _y !== void 0 ? _y : true),
1743
+ ((_1 = enableAudio !== null && enableAudio !== void 0 ? enableAudio : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.enableAudio) !== null && _1 !== void 0 ? _1 : true),
1745
1744
  loading: !!memoriTyping,
1746
1745
  baseUrl,
1747
1746
  apiUrl: client.constants.BACKEND_URL,
@@ -1778,7 +1777,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1778
1777
  tenant,
1779
1778
  translateTo: isMultilanguageEnabled &&
1780
1779
  userLang.toUpperCase() !==
1781
- ((_3 = ((_2 = (_1 = (_0 = (_z = memori.culture) === null || _z === void 0 ? void 0 : _z.split('-')) === null || _0 === void 0 ? void 0 : _0[0]) !== null && _1 !== void 0 ? _1 : i18n.language) !== null && _2 !== void 0 ? _2 : 'IT')) === null || _3 === void 0 ? void 0 : _3.toUpperCase())
1780
+ ((_6 = ((_5 = (_4 = (_3 = (_2 = memori.culture) === null || _2 === void 0 ? void 0 : _2.split('-')) === null || _3 === void 0 ? void 0 : _3[0]) !== null && _4 !== void 0 ? _4 : i18n.language) !== null && _5 !== void 0 ? _5 : 'IT')) === null || _6 === void 0 ? void 0 : _6.toUpperCase())
1782
1781
  ? userLang
1783
1782
  : undefined,
1784
1783
  baseUrl,
@@ -1786,9 +1785,9 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1786
1785
  layout,
1787
1786
  memoriTyping,
1788
1787
  typingText,
1789
- showTypingText,
1788
+ showTypingText: (_7 = showTypingText !== null && showTypingText !== void 0 ? showTypingText : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showTypingText) !== null && _7 !== void 0 ? _7 : false,
1790
1789
  history: showFullHistory ? history : history.slice(-2),
1791
- authToken: (_5 = (_4 = loginToken !== null && loginToken !== void 0 ? loginToken : userToken) !== null && _4 !== void 0 ? _4 : additionalInfo === null || additionalInfo === void 0 ? void 0 : additionalInfo.loginToken) !== null && _5 !== void 0 ? _5 : authToken,
1790
+ authToken: (_9 = (_8 = loginToken !== null && loginToken !== void 0 ? loginToken : userToken) !== null && _8 !== void 0 ? _8 : additionalInfo === null || additionalInfo === void 0 ? void 0 : additionalInfo.loginToken) !== null && _9 !== void 0 ? _9 : authToken,
1792
1791
  dialogState: currentDialogState,
1793
1792
  pushMessage,
1794
1793
  simulateUserPrompt,
@@ -1798,8 +1797,8 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1798
1797
  showUpload: enableUpload,
1799
1798
  showReasoning: enableReasoning,
1800
1799
  showWhyThisAnswer,
1801
- showCopyButton,
1802
- showTranslationOriginal,
1800
+ showCopyButton: (_10 = showCopyButton !== null && showCopyButton !== void 0 ? showCopyButton : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showCopyButton) !== null && _10 !== void 0 ? _10 : true,
1801
+ showTranslationOriginal: (_11 = showTranslationOriginal !== null && showTranslationOriginal !== void 0 ? showTranslationOriginal : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showTranslationOriginal) !== null && _11 !== void 0 ? _11 : false,
1803
1802
  client,
1804
1803
  instruct,
1805
1804
  preview,
@@ -1809,7 +1808,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1809
1808
  attachmentsMenuOpen,
1810
1809
  setAttachmentsMenuOpen,
1811
1810
  showInputs,
1812
- showMicrophone: !!ttsProvider && ((_6 = enableAudio !== null && enableAudio !== void 0 ? enableAudio : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.enableAudio) !== null && _6 !== void 0 ? _6 : true),
1811
+ showMicrophone: !!ttsProvider && ((_12 = enableAudio !== null && enableAudio !== void 0 ? enableAudio : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.enableAudio) !== null && _12 !== void 0 ? _12 : true),
1813
1812
  showFunctionCache,
1814
1813
  userMessage,
1815
1814
  onChangeUserMessage,
@@ -1865,7 +1864,17 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1865
1864
  }), "data-memori-name": memori === null || memori === void 0 ? void 0 : memori.name, "data-memori-id": memori === null || memori === void 0 ? void 0 : memori.engineMemoriID, "data-memori-secondary-id": memori === null || memori === void 0 ? void 0 : memori.memoriID, "data-memori-session-id": sessionId, "data-memori-integration": integration === null || integration === void 0 ? void 0 : integration.integrationID, "data-memori-engine-state": JSON.stringify({
1866
1865
  ...currentDialogState,
1867
1866
  sessionID: sessionId,
1868
- }), style: { height }, children: [(0, jsx_runtime_1.jsx)(Layout, { Header: Header_1.default, headerProps: headerProps, Avatar: Avatar_1.default, avatarProps: avatarProps, Chat: Chat_1.default, chatProps: chatProps, StartPanel: StartPanel_1.default, startPanelProps: startPanelProps, integrationStyle: integrationStyle, integrationBackground: integrationBackground, poweredBy: poweredBy, autoStart: autoStart, sessionId: sessionId, hasUserActivatedSpeak: hasUserActivatedSpeak, loading: loading }), (0, jsx_runtime_1.jsx)("audio", { id: "memori-audio", style: { display: 'none' }, src: "https://aisuru.com/intro.mp3" }), isClient && ((0, jsx_runtime_1.jsx)(Auth_1.default, { withModal: true, pwdOrTokens: authModalState, openModal: !!authModalState, setPwdOrTokens: setAuthModalState, showTokens: memori.privacyType === 'SECRET', onFinish: async (values) => {
1867
+ }), style: { height }, children: [(0, jsx_runtime_1.jsx)(Layout, { Header: Header_1.default, headerProps: headerProps, Avatar: Avatar_1.default, avatarProps: avatarProps, Chat: Chat_1.default, chatProps: chatProps, StartPanel: StartPanel_1.default, startPanelProps: startPanelProps, integrationStyle: integrationStyle, integrationBackground: integrationBackground, poweredBy: poweredBy, autoStart: autoStart, sessionId: sessionId, hasUserActivatedSpeak: hasUserActivatedSpeak, loading: loading }), (0, jsx_runtime_1.jsx)(ArtifactAPI_1.ArtifactAPIBridge, { pushMessage: (message) => {
1868
+ setHistory(history => {
1869
+ if (!history.length)
1870
+ return history;
1871
+ const lastMessage = history[history.length - 1];
1872
+ if (!lastMessage || lastMessage.fromUser)
1873
+ return history;
1874
+ const updatedLastMessage = { ...lastMessage, text: lastMessage.text + message.text };
1875
+ return [...history.slice(0, -1), updatedLastMessage];
1876
+ });
1877
+ } }), (0, jsx_runtime_1.jsx)("audio", { id: "memori-audio", style: { display: 'none' }, src: "https://aisuru.com/intro.mp3" }), isClient && ((0, jsx_runtime_1.jsx)(Auth_1.default, { withModal: true, pwdOrTokens: authModalState, openModal: !!authModalState, setPwdOrTokens: setAuthModalState, showTokens: memori.privacyType === 'SECRET', onFinish: async (values) => {
1869
1878
  var _a, _b, _c, _d;
1870
1879
  if (values['password'])
1871
1880
  setMemoriPwd(values['password']);
@@ -1893,7 +1902,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
1893
1902
  setAuthModalState(null);
1894
1903
  setGotErrorInOpening(true);
1895
1904
  });
1896
- }, minimumNumberOfRecoveryTokens: (_7 = memori === null || memori === void 0 ? void 0 : memori.minimumNumberOfRecoveryTokens) !== null && _7 !== void 0 ? _7 : 1 })), isClient && ((0, jsx_runtime_1.jsx)(AgeVerificationModal_1.default, { visible: showAgeVerification, minAge: minAge, onClose: birthDate => {
1905
+ }, minimumNumberOfRecoveryTokens: (_13 = memori === null || memori === void 0 ? void 0 : memori.minimumNumberOfRecoveryTokens) !== null && _13 !== void 0 ? _13 : 1 })), isClient && ((0, jsx_runtime_1.jsx)(AgeVerificationModal_1.default, { visible: showAgeVerification, minAge: minAge, onClose: birthDate => {
1897
1906
  var _a, _b, _c, _d;
1898
1907
  if (birthDate) {
1899
1908
  setBirthDate(birthDate);