@memori.ai/memori-react 8.2.0 → 8.4.0-rc.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 (146) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/components/Chat/Chat.js +8 -1
  3. package/dist/components/Chat/Chat.js.map +1 -1
  4. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +160 -0
  5. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.d.ts +4 -0
  6. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +166 -0
  7. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -0
  8. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +877 -0
  9. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.d.ts +3 -0
  10. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +115 -0
  11. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -0
  12. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +238 -0
  13. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.d.ts +4 -0
  14. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +104 -0
  15. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -0
  16. package/dist/components/MemoriArtifactSystem/components/ArtifactHistory/ArtifactHistory.css +319 -0
  17. package/dist/components/MemoriArtifactSystem/components/ArtifactHistory/ArtifactHistory.d.ts +4 -0
  18. package/dist/components/MemoriArtifactSystem/components/ArtifactHistory/ArtifactHistory.js +50 -0
  19. package/dist/components/MemoriArtifactSystem/components/ArtifactHistory/ArtifactHistory.js.map +1 -0
  20. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +343 -0
  21. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.d.ts +4 -0
  22. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +78 -0
  23. package/dist/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -0
  24. package/dist/components/MemoriArtifactSystem/context/ArtifactSystemContext.d.ts +12 -0
  25. package/dist/components/MemoriArtifactSystem/context/ArtifactSystemContext.js +22 -0
  26. package/dist/components/MemoriArtifactSystem/context/ArtifactSystemContext.js.map +1 -0
  27. package/dist/components/MemoriArtifactSystem/hooks/useArtifactSystem.d.ts +12 -0
  28. package/dist/components/MemoriArtifactSystem/hooks/useArtifactSystem.js +288 -0
  29. package/dist/components/MemoriArtifactSystem/hooks/useArtifactSystem.js.map +1 -0
  30. package/dist/components/MemoriArtifactSystem/index.d.ts +9 -0
  31. package/dist/components/MemoriArtifactSystem/index.js +28 -0
  32. package/dist/components/MemoriArtifactSystem/index.js.map +1 -0
  33. package/dist/components/MemoriArtifactSystem/types/artifact.types.d.ts +108 -0
  34. package/dist/components/MemoriArtifactSystem/types/artifact.types.js +31 -0
  35. package/dist/components/MemoriArtifactSystem/types/artifact.types.js.map +1 -0
  36. package/dist/components/icons/Print.d.ts +6 -0
  37. package/dist/components/icons/Print.js +6 -0
  38. package/dist/components/icons/Print.js.map +1 -0
  39. package/dist/components/layouts/Chat.js +29 -1
  40. package/dist/components/layouts/Chat.js.map +1 -1
  41. package/dist/components/layouts/FullPage.js +33 -1
  42. package/dist/components/layouts/FullPage.js.map +1 -1
  43. package/dist/components/layouts/ZoomedFullBody.js +29 -2
  44. package/dist/components/layouts/ZoomedFullBody.js.map +1 -1
  45. package/dist/components/layouts/chat.css +335 -13
  46. package/dist/components/layouts/zoomed-full-body.css +1 -3
  47. package/dist/helpers/message.js +1 -0
  48. package/dist/helpers/message.js.map +1 -1
  49. package/dist/helpers/stt/useSTT.js +76 -9
  50. package/dist/helpers/stt/useSTT.js.map +1 -1
  51. package/dist/index.js +58 -15
  52. package/dist/index.js.map +1 -1
  53. package/dist/styles.css +5 -0
  54. package/esm/components/Chat/Chat.js +8 -1
  55. package/esm/components/Chat/Chat.js.map +1 -1
  56. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +160 -0
  57. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.d.ts +4 -0
  58. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js +163 -0
  59. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.js.map +1 -0
  60. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +877 -0
  61. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.d.ts +3 -0
  62. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +112 -0
  63. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -0
  64. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +238 -0
  65. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.d.ts +4 -0
  66. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +101 -0
  67. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -0
  68. package/esm/components/MemoriArtifactSystem/components/ArtifactHistory/ArtifactHistory.css +319 -0
  69. package/esm/components/MemoriArtifactSystem/components/ArtifactHistory/ArtifactHistory.d.ts +4 -0
  70. package/esm/components/MemoriArtifactSystem/components/ArtifactHistory/ArtifactHistory.js +47 -0
  71. package/esm/components/MemoriArtifactSystem/components/ArtifactHistory/ArtifactHistory.js.map +1 -0
  72. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +343 -0
  73. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.d.ts +4 -0
  74. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js +75 -0
  75. package/esm/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.js.map +1 -0
  76. package/esm/components/MemoriArtifactSystem/context/ArtifactSystemContext.d.ts +12 -0
  77. package/esm/components/MemoriArtifactSystem/context/ArtifactSystemContext.js +17 -0
  78. package/esm/components/MemoriArtifactSystem/context/ArtifactSystemContext.js.map +1 -0
  79. package/esm/components/MemoriArtifactSystem/hooks/useArtifactSystem.d.ts +12 -0
  80. package/esm/components/MemoriArtifactSystem/hooks/useArtifactSystem.js +281 -0
  81. package/esm/components/MemoriArtifactSystem/hooks/useArtifactSystem.js.map +1 -0
  82. package/esm/components/MemoriArtifactSystem/index.d.ts +9 -0
  83. package/esm/components/MemoriArtifactSystem/index.js +9 -0
  84. package/esm/components/MemoriArtifactSystem/index.js.map +1 -0
  85. package/esm/components/MemoriArtifactSystem/types/artifact.types.d.ts +108 -0
  86. package/esm/components/MemoriArtifactSystem/types/artifact.types.js +28 -0
  87. package/esm/components/MemoriArtifactSystem/types/artifact.types.js.map +1 -0
  88. package/esm/components/icons/Print.d.ts +6 -0
  89. package/esm/components/icons/Print.js +4 -0
  90. package/esm/components/icons/Print.js.map +1 -0
  91. package/esm/components/layouts/Chat.js +29 -1
  92. package/esm/components/layouts/Chat.js.map +1 -1
  93. package/esm/components/layouts/FullPage.js +33 -1
  94. package/esm/components/layouts/FullPage.js.map +1 -1
  95. package/esm/components/layouts/ZoomedFullBody.js +30 -3
  96. package/esm/components/layouts/ZoomedFullBody.js.map +1 -1
  97. package/esm/components/layouts/chat.css +335 -13
  98. package/esm/components/layouts/zoomed-full-body.css +1 -3
  99. package/esm/helpers/message.js +1 -0
  100. package/esm/helpers/message.js.map +1 -1
  101. package/esm/helpers/stt/useSTT.js +76 -9
  102. package/esm/helpers/stt/useSTT.js.map +1 -1
  103. package/esm/index.js +58 -15
  104. package/esm/index.js.map +1 -1
  105. package/esm/styles.css +5 -0
  106. package/package.json +1 -1
  107. package/src/components/Avatar/Avatar.test.tsx +13 -0
  108. package/src/components/Chat/Chat.stories.tsx +33 -2
  109. package/src/components/Chat/Chat.test.tsx +340 -213
  110. package/src/components/Chat/Chat.tsx +27 -4
  111. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css +160 -0
  112. package/src/components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.tsx +278 -0
  113. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +877 -0
  114. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +308 -0
  115. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css +238 -0
  116. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +282 -0
  117. package/src/components/MemoriArtifactSystem/components/ArtifactHistory/ArtifactHistory.css +319 -0
  118. package/src/components/MemoriArtifactSystem/components/ArtifactHistory/ArtifactHistory.tsx +178 -0
  119. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css +343 -0
  120. package/src/components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.tsx +190 -0
  121. package/src/components/MemoriArtifactSystem/context/ArtifactSystemContext.tsx +57 -0
  122. package/src/components/MemoriArtifactSystem/hooks/useArtifactSystem.ts +419 -0
  123. package/src/components/MemoriArtifactSystem/index.ts +45 -0
  124. package/src/components/MemoriArtifactSystem/types/artifact.types.ts +180 -0
  125. package/src/components/icons/Print.tsx +34 -0
  126. package/src/components/layouts/Chat.test.tsx +13 -0
  127. package/src/components/layouts/Chat.tsx +80 -25
  128. package/src/components/layouts/FullPage.test.tsx +40 -11
  129. package/src/components/layouts/FullPage.tsx +92 -24
  130. package/src/components/layouts/HiddenChat.test.tsx +13 -0
  131. package/src/components/layouts/Totem.test.tsx +13 -0
  132. package/src/components/layouts/WebsiteAssistant.test.tsx +13 -0
  133. package/src/components/layouts/ZoomedFullBody.test.tsx +13 -0
  134. package/src/components/layouts/ZoomedFullBody.tsx +78 -14
  135. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +252 -248
  136. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +504 -496
  137. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +252 -248
  138. package/src/components/layouts/chat.css +335 -13
  139. package/src/components/layouts/layouts.stories.tsx +13 -2
  140. package/src/components/layouts/zoomed-full-body.css +1 -3
  141. package/src/helpers/message.ts +1 -0
  142. package/src/helpers/stt/useSTT.ts +101 -16
  143. package/src/index.stories.tsx +26 -22
  144. package/src/index.tsx +46 -0
  145. package/src/mocks/data.ts +258 -0
  146. package/src/styles.css +5 -0
package/src/index.tsx CHANGED
@@ -21,6 +21,7 @@ import { safeParseJSON } from './helpers/utils';
21
21
  import i18n from './i18n';
22
22
  import { useTranslation } from 'react-i18next';
23
23
  import I18nWrapper from './I18nWrapper';
24
+ import { ArtifactSystemProvider } from './components/MemoriArtifactSystem';
24
25
 
25
26
  export interface Props {
26
27
  memoriName?: string | null;
@@ -332,6 +333,50 @@ const Memori: React.FC<Props> = ({
332
333
  return (
333
334
  <I18nWrapper>
334
335
  <VisemeProvider>
336
+ <ArtifactSystemProvider config={{
337
+ supportedMimeTypes: {
338
+ html: {
339
+ name: 'HTML',
340
+ icon: '🌐',
341
+ hasPreview: true,
342
+ language: 'html',
343
+ mimeType: 'text/html',
344
+ },
345
+ css: {
346
+ name: 'CSS',
347
+ icon: '🎨',
348
+ hasPreview: false,
349
+ language: 'css',
350
+ mimeType: 'text/css',
351
+ },
352
+ javascript: {
353
+ name: 'JavaScript',
354
+ icon: '⚡',
355
+ hasPreview: false,
356
+ language: 'javascript',
357
+ mimeType: 'text/javascript',
358
+ },
359
+ typescript: {
360
+ name: 'TypeScript',
361
+ icon: '🔷',
362
+ hasPreview: false,
363
+ language: 'typescript',
364
+ mimeType: 'text/typescript',
365
+ },
366
+ markdown: {
367
+ name: 'Markdown',
368
+ icon: '📝',
369
+ hasPreview: true,
370
+ language: 'markdown',
371
+ mimeType: 'text/markdown',
372
+ },
373
+ },
374
+ autoOpenArtifacts: true,
375
+ enableSyntaxHighlighting: true,
376
+ showLineNumbers: true,
377
+ maxHistoryItems: 10,
378
+ }}>
379
+
335
380
  <Toaster position="top-center" reverseOrder={true} />
336
381
  {memori ? (
337
382
  <MemoriWidget
@@ -393,6 +438,7 @@ const Memori: React.FC<Props> = ({
393
438
  </p>
394
439
  </div>
395
440
  )}
441
+ </ArtifactSystemProvider>
396
442
  </VisemeProvider>
397
443
  </I18nWrapper>
398
444
  );
package/src/mocks/data.ts CHANGED
@@ -89,6 +89,264 @@ export const memori: Memori = {
89
89
  coverURL: 'https://aisuru.com/images/aisuru/og-image.png',
90
90
  };
91
91
 
92
+ export const historyWithArtifacts: Message[] = [
93
+ {
94
+ text: "Ciao, io sono test, c'è qualcosa che vorresti chiedermi?",
95
+ timestamp: '2021-03-01T12:00:00.000Z',
96
+ },
97
+ {
98
+ text: 'Prova',
99
+ fromUser: true,
100
+ timestamp: '2021-03-01T12:00:00.000Z',
101
+ },
102
+
103
+ {
104
+ text: "Mi dispiace, le mie risposte sono limitate. Devi farmi le domande giuste. C'è altro che vuoi sapere?",
105
+ timestamp: '2021-03-01T12:00:00.000Z',
106
+ },
107
+
108
+ {
109
+ text: 'Come faccio a fare delle cose con questa cosa?',
110
+ fromUser: true,
111
+ timestamp: '2021-03-01T12:00:00.000Z',
112
+ },
113
+
114
+
115
+ {
116
+ text: `Ecco qui come. <think>L'utente mi sta chiedendo di generare un'immagine di gattini. Per fare questo devo utilizzare il sistema di generazione immagini. Prima devo controllare quali strumenti sono disponibili per la generazione di immagini. Dovrei:1. Prima chiamare LISTA_TOOLS_FREE_IMAGE_GENERATOR_MCP_PROD per vedere gli strumenti disponibili2. Poi usare ESEGUI_TOOL_FREE_IMAGE_GENERATOR_MCP_PROD per generare l'immagine 2. Poi usare ESEGUI_TOOL_FREE_IMAGE_GENERATOR_MCP_PROD per generare l'immagine Dalle istruzioni so che devo provare i modelli in questo ordine: turbo, flux, kontext (iniziando sempre con turbo). Inoltre, dalle istruzioni specifiche, vedo che se ho ARTIFACT attivo posso usare JavaScript e ARTIFACT per effetti più avanzati, altrimenti devo avvisare che l'immagine ci può mettere un po' a caricarsi e predisporre il bordo width:100%. Dato che sto lavorando con il sistema Memori Artifact, dovrei avere ARTIFACT disponibile, quindi userò quello per una gestione più bella del loading.</think>Perfetto! Ho generato per te un'adorabile immagine di gattini! 🐱✨ <output class="memori-artifact" data-mimetype="html" data-title="Gattini Adorabili">
117
+ <!DOCTYPE html>
118
+ <html lang="it">
119
+ <head>
120
+ <meta charset="UTF-8">
121
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
122
+ <title>Gattini Adorabili</title>
123
+ <style>
124
+ * {
125
+ margin: 0;
126
+ padding: 0;
127
+ box-sizing: border-box;
128
+ }
129
+
130
+ body {
131
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
132
+ background: linear-gradient(135deg, #ff9a9e 0%, #fecfef 50%, #fecfef 100%);
133
+ min-height: 100vh;
134
+ display: flex;
135
+ flex-direction: column;
136
+ align-items: center;
137
+ justify-content: center;
138
+ padding: 20px;
139
+ }
140
+
141
+ .container {
142
+ background: rgba(255, 255, 255, 0.95);
143
+ border-radius: 20px;
144
+ padding: 30px;
145
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
146
+ max-width: 800px;
147
+ width: 100%;
148
+ text-align: center;
149
+ backdrop-filter: blur(10px);
150
+ border: 1px solid rgba(255, 255, 255, 0.3);
151
+ }
152
+
153
+ h1 {
154
+ color: #ff6b9d;
155
+ margin-bottom: 20px;
156
+ font-size: 2.5rem;
157
+ text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
158
+ }
159
+
160
+ .image-container {
161
+ position: relative;
162
+ border-radius: 15px;
163
+ overflow: hidden;
164
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
165
+ margin: 20px 0;
166
+ background: #f0f0f0;
167
+ min-height: 400px;
168
+ display: flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ }
172
+
173
+ .loading {
174
+ position: absolute;
175
+ top: 50%;
176
+ left: 50%;
177
+ transform: translate(-50%, -50%);
178
+ color: #ff6b9d;
179
+ font-size: 1.2rem;
180
+ z-index: 1;
181
+ }
182
+
183
+ .spinner {
184
+ border: 4px solid #f3f3f3;
185
+ border-top: 4px solid #ff6b9d;
186
+ border-radius: 50%;
187
+ width: 40px;
188
+ height: 40px;
189
+ animation: spin 1s linear infinite;
190
+ margin: 0 auto 15px;
191
+ }
192
+
193
+ @keyframes spin {
194
+ 0% { transform: rotate(0deg); }
195
+ 100% { transform: rotate(360deg); }
196
+ }
197
+
198
+ .generated-image {
199
+ width: 100%;
200
+ max-width: 100%;
201
+ height: auto;
202
+ border-radius: 15px;
203
+ opacity: 0;
204
+ transition: opacity 0.5s ease-in-out;
205
+ }
206
+
207
+ .generated-image.loaded {
208
+ opacity: 1;
209
+ }
210
+
211
+ .description {
212
+ color: #666;
213
+ font-size: 1.1rem;
214
+ line-height: 1.6;
215
+ margin-top: 20px;
216
+ }
217
+
218
+ .features {
219
+ display: grid;
220
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
221
+ gap: 15px;
222
+ margin-top: 25px;
223
+ }
224
+
225
+ .feature {
226
+ background: linear-gradient(135deg, #ff9a9e, #fecfef);
227
+ color: white;
228
+ padding: 15px;
229
+ border-radius: 10px;
230
+ font-weight: 600;
231
+ text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.2);
232
+ }
233
+
234
+ .download-btn {
235
+ margin-top: 25px;
236
+ padding: 12px 25px;
237
+ background: linear-gradient(135deg, #ff6b9d, #c44569);
238
+ color: white;
239
+ border: none;
240
+ border-radius: 25px;
241
+ font-size: 1rem;
242
+ font-weight: 600;
243
+ cursor: pointer;
244
+ transition: all 0.3s ease;
245
+ text-decoration: none;
246
+ display: inline-block;
247
+ }
248
+
249
+ .download-btn:hover {
250
+ transform: translateY(-2px);
251
+ box-shadow: 0 8px 25px rgba(255, 107, 157, 0.3);
252
+ }
253
+ </style>
254
+ </head>
255
+ <body>
256
+ <div class="container">
257
+ <h1>🐱 Gattini Adorabili 🐱</h1>
258
+
259
+ <div class="image-container">
260
+ <div class="loading" id="loading">
261
+ <div class="spinner"></div>
262
+ Generando i gattini più adorabili del mondo...
263
+ </div>
264
+ <img
265
+ class="generated-image"
266
+ id="kittenImage"
267
+ src="https://image.pollinations.ai/prompt/adorable%20fluffy%20kittens%20playing%20together%2C%20cute%20baby%20cats%20with%20big%20eyes%2C%20soft%20fur%2C%20playful%20pose%2C%20warm%20lighting%2C%20high%20quality%2C%20detailed?model=turbo&seed=908545&width=1024&height=1024&enhance=true&nologo=true&private=true&safe=false"
268
+ alt="Adorabili gattini che giocano insieme"
269
+ >
270
+ </div>
271
+
272
+ <div class="description">
273
+ <p>Ecco la tua immagine di <strong>gattini adorabili</strong> generata con AI!
274
+ Questi piccoli felini con i loro occhi grandi e il pelo soffice sono pronti a riempire la tua giornata di dolcezza.</p>
275
+ </div>
276
+
277
+ <div class="features">
278
+ <div class="feature">🎨 Alta Qualità</div>
279
+ <div class="feature">✨ AI Generata</div>
280
+ <div class="feature">💕 Adorabili</div>
281
+ <div class="feature">🐾 Dettagliata</div>
282
+ </div>
283
+
284
+ <a href="https://image.pollinations.ai/prompt/adorable%20fluffy%20kittens%20playing%20together%2C%20cute%20baby%20cats%20with%20big%20eyes%2C%20soft%20fur%2C%20playful%20pose%2C%20warm%20lighting%2C%20high%20quality%2C%20detailed?model=turbo&seed=908545&width=1024&height=1024&enhance=true&nologo=true&private=true&safe=false"
285
+ download="gattini-adorabili.jpg"
286
+ class="download-btn">
287
+ 📥 Scarica Immagine
288
+ </a>
289
+ </div>
290
+
291
+ <script>
292
+ const image = document.getElementById('kittenImage');
293
+ const loading = document.getElementById('loading');
294
+
295
+ image.onload = function() {
296
+ loading.style.display = 'none';
297
+ image.classList.add('loaded');
298
+ };
299
+
300
+ image.onerror = function() {
301
+ loading.innerHTML = '😿 Ops! Errore nel caricamento dell\'immagine';
302
+ };
303
+
304
+ // Preload dell'immagine per un caricamento più fluido
305
+ setTimeout(() => {
306
+ if (!image.complete) {
307
+ loading.innerHTML = '<div class="spinner"></div>I gattini stanno arrivando... 🐱';
308
+ }
309
+ }, 3000);
310
+ </script>
311
+ </body>
312
+ </html>
313
+ </output>
314
+
315
+ Ho creato per te un'immagine di gattini adorabili utilizzando il modello AI "turbo"! 🐱✨
316
+
317
+ **Caratteristiche dell'immagine:**
318
+ - 🎨 **Qualità**: 1024x1024 pixel, alta risoluzione
319
+ - 🐾 **Soggetto**: Gattini soffici che giocano insieme con grandi occhi dolci
320
+ - ✨ **Stile**: Illuminazione calda, dettagli realistici, pelo morbido
321
+ - 💕 **Mood**: Adorabile e giocoso
322
+
323
+ L'immagine è visualizzata in una pagina web interattiva con:
324
+ - Loading animation mentre si carica
325
+ - Design responsive e moderno
326
+ - Pulsante per scaricare l'immagine
327
+ - Effetti di transizione fluidi
328
+
329
+ Se vuoi provare variazioni diverse, posso generare altre immagini con stili o pose differenti! 🎨`,
330
+ timestamp: '2021-03-01T12:00:00.000Z',
331
+ },
332
+
333
+
334
+ {
335
+ text: 'Ah, grazie! Ciao!',
336
+ fromUser: true,
337
+ timestamp: '2021-03-01T12:00:00.000Z',
338
+ },
339
+
340
+
341
+ {
342
+ text: 'Arrivederci.',
343
+ timestamp: '2021-03-01T12:00:00.000Z',
344
+ },
345
+
346
+
347
+ ];
348
+
349
+
92
350
  export const history: Message[] = [
93
351
  {
94
352
  text: "Ciao, io sono test, c'è qualcosa che vorresti chiedermi?",
package/src/styles.css CHANGED
@@ -52,6 +52,11 @@
52
52
  @import url('./components/MemoriWidget/MemoriWidget.css');
53
53
  @import url('./components/UploadButton/UploadButton.css');
54
54
  @import url('./components/FilePreview/FilePreview.css');
55
+ @import url('./components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css');
56
+ @import url('./components/MemoriArtifactSystem/components/ArtifactActions/ArtifactActions.css');
57
+ @import url('./components/MemoriArtifactSystem/components/ArtifactPreview/ArtifactPreview.css');
58
+ @import url('./components/MemoriArtifactSystem/components/ArtifactHistory/ArtifactHistory.css');
59
+ @import url('./components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.css');
55
60
 
56
61
  @import url('./components/layouts/hidden-chat.css');
57
62
  @import url('./components/layouts/totem.css');