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

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 (283) hide show
  1. package/CHANGELOG.md +453 -0
  2. package/dist/components/AgeVerificationModal/AgeVerificationModal.css +1 -7
  3. package/dist/components/AgeVerificationModal/AgeVerificationModal.js +1 -1
  4. package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  5. package/dist/components/Auth/Auth.css +12 -5
  6. package/dist/components/Auth/Auth.d.ts +1 -1
  7. package/dist/components/Auth/Auth.js +46 -32
  8. package/dist/components/Auth/Auth.js.map +1 -1
  9. package/dist/components/BlockedMemoriBadge/BlockedMemoriBadge.css +7 -6
  10. package/dist/components/Chat/Chat.css +1 -0
  11. package/dist/components/Chat/Chat.js +1 -1
  12. package/dist/components/Chat/Chat.js.map +1 -1
  13. package/dist/components/ChatBubble/ChatBubble.css +32 -5
  14. package/dist/components/ChatBubble/ChatBubble.js +14 -11
  15. package/dist/components/ChatBubble/ChatBubble.js.map +1 -1
  16. package/dist/components/ChatHistoryDrawer/ChatHistory.d.ts +3 -1
  17. package/dist/components/ChatHistoryDrawer/ChatHistory.js +2 -2
  18. package/dist/components/ChatHistoryDrawer/ChatHistory.js.map +1 -1
  19. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +1 -1
  20. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +3 -1
  21. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js +7 -57
  22. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  23. package/dist/components/ChatInputs/ChatInputs.js +10 -1
  24. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  25. package/dist/components/ChatTextArea/ChatTextArea.css +1 -1
  26. package/dist/components/ContentPreviewModal/ContentPreviewModal.css +1 -10
  27. package/dist/components/ContentPreviewModal/ContentPreviewModal.js +1 -1
  28. package/dist/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -1
  29. package/dist/components/ExpertsDrawer/ExpertsDrawer.css +0 -6
  30. package/dist/components/FeedbackButtons/FeedbackButtons.js +2 -2
  31. package/dist/components/FeedbackButtons/FeedbackButtons.js.map +1 -1
  32. package/dist/components/Header/Header.css +8 -3
  33. package/dist/components/Header/Header.js +15 -18
  34. package/dist/components/Header/Header.js.map +1 -1
  35. package/dist/components/IconButton/IconButton.d.ts +1 -1
  36. package/dist/components/KnownFacts/KnownFacts.css +1 -1
  37. package/dist/components/KnownFacts/KnownFacts.js +2 -5
  38. package/dist/components/KnownFacts/KnownFacts.js.map +1 -1
  39. package/dist/components/LoginDrawer/LoginDrawer.css +16 -14
  40. package/dist/components/LoginDrawer/LoginDrawer.js +19 -11
  41. package/dist/components/LoginDrawer/LoginDrawer.js.map +1 -1
  42. package/dist/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +4 -4
  43. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +28 -5
  44. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +2 -2
  45. package/dist/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  46. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +1 -1
  47. package/dist/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  48. package/dist/components/MemoriWidget/MemoriWidget.d.ts +1 -0
  49. package/dist/components/MemoriWidget/MemoriWidget.js +93 -32
  50. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  51. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +2 -2
  52. package/dist/components/PositionPopover/PositionPopover.css +3 -3
  53. package/dist/components/PositionPopover/PositionPopover.js +38 -25
  54. package/dist/components/PositionPopover/PositionPopover.js.map +1 -1
  55. package/dist/components/Snippet/Snippet.css +1 -1
  56. package/dist/components/StartPanel/StartPanel.css +19 -3
  57. package/dist/components/StartPanel/StartPanel.js +12 -18
  58. package/dist/components/StartPanel/StartPanel.js.map +1 -1
  59. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +3 -3
  60. package/dist/components/layouts/chat.css +5 -2
  61. package/dist/components/layouts/totem.css +43 -9
  62. package/dist/helpers/nats/getNatsConfig.js.map +1 -1
  63. package/dist/helpers/nats/useNats.d.ts +2 -1
  64. package/dist/helpers/nats/useNats.js +87 -20
  65. package/dist/helpers/nats/useNats.js.map +1 -1
  66. package/dist/helpers/nats/useNatsSession.d.ts +6 -1
  67. package/dist/helpers/nats/useNatsSession.js +48 -7
  68. package/dist/helpers/nats/useNatsSession.js.map +1 -1
  69. package/dist/helpers/positionPopover.d.ts +2 -1
  70. package/dist/helpers/positionPopover.js +10 -2
  71. package/dist/helpers/positionPopover.js.map +1 -1
  72. package/dist/icons/MemoriIcon.js +1 -1
  73. package/dist/icons/MemoriIcon.js.map +1 -1
  74. package/dist/locales/de.json +4 -1
  75. package/dist/locales/en.json +3 -1
  76. package/dist/locales/es.json +3 -1
  77. package/dist/locales/fr.json +3 -1
  78. package/dist/locales/it.json +3 -1
  79. package/dist/styles.css +1 -1
  80. package/dist/version.d.ts +1 -1
  81. package/dist/version.js +1 -1
  82. package/esm/components/AgeVerificationModal/AgeVerificationModal.css +1 -7
  83. package/esm/components/AgeVerificationModal/AgeVerificationModal.js +1 -1
  84. package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  85. package/esm/components/Auth/Auth.css +12 -5
  86. package/esm/components/Auth/Auth.d.ts +1 -1
  87. package/esm/components/Auth/Auth.js +47 -33
  88. package/esm/components/Auth/Auth.js.map +1 -1
  89. package/esm/components/BlockedMemoriBadge/BlockedMemoriBadge.css +7 -6
  90. package/esm/components/Chat/Chat.css +1 -0
  91. package/esm/components/Chat/Chat.js +1 -1
  92. package/esm/components/Chat/Chat.js.map +1 -1
  93. package/esm/components/ChatBubble/ChatBubble.css +32 -5
  94. package/esm/components/ChatBubble/ChatBubble.js +14 -11
  95. package/esm/components/ChatBubble/ChatBubble.js.map +1 -1
  96. package/esm/components/ChatHistoryDrawer/ChatHistory.d.ts +3 -1
  97. package/esm/components/ChatHistoryDrawer/ChatHistory.js +2 -2
  98. package/esm/components/ChatHistoryDrawer/ChatHistory.js.map +1 -1
  99. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +1 -1
  100. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +3 -1
  101. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +9 -59
  102. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +1 -1
  103. package/esm/components/ChatInputs/ChatInputs.js +11 -2
  104. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  105. package/esm/components/ChatTextArea/ChatTextArea.css +1 -1
  106. package/esm/components/ContentPreviewModal/ContentPreviewModal.css +1 -10
  107. package/esm/components/ContentPreviewModal/ContentPreviewModal.js +1 -1
  108. package/esm/components/ContentPreviewModal/ContentPreviewModal.js.map +1 -1
  109. package/esm/components/ExpertsDrawer/ExpertsDrawer.css +0 -6
  110. package/esm/components/FeedbackButtons/FeedbackButtons.js +2 -2
  111. package/esm/components/FeedbackButtons/FeedbackButtons.js.map +1 -1
  112. package/esm/components/Header/Header.css +8 -3
  113. package/esm/components/Header/Header.js +15 -18
  114. package/esm/components/Header/Header.js.map +1 -1
  115. package/esm/components/IconButton/IconButton.d.ts +1 -1
  116. package/esm/components/KnownFacts/KnownFacts.css +1 -1
  117. package/esm/components/KnownFacts/KnownFacts.js +2 -5
  118. package/esm/components/KnownFacts/KnownFacts.js.map +1 -1
  119. package/esm/components/LoginDrawer/LoginDrawer.css +16 -14
  120. package/esm/components/LoginDrawer/LoginDrawer.js +20 -12
  121. package/esm/components/LoginDrawer/LoginDrawer.js.map +1 -1
  122. package/esm/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +4 -4
  123. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +28 -5
  124. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js +2 -2
  125. package/esm/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.js.map +1 -1
  126. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js +1 -1
  127. package/esm/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.js.map +1 -1
  128. package/esm/components/MemoriWidget/MemoriWidget.d.ts +1 -0
  129. package/esm/components/MemoriWidget/MemoriWidget.js +93 -33
  130. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  131. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +2 -2
  132. package/esm/components/PositionPopover/PositionPopover.css +3 -3
  133. package/esm/components/PositionPopover/PositionPopover.js +39 -26
  134. package/esm/components/PositionPopover/PositionPopover.js.map +1 -1
  135. package/esm/components/Snippet/Snippet.css +1 -1
  136. package/esm/components/StartPanel/StartPanel.css +19 -3
  137. package/esm/components/StartPanel/StartPanel.js +12 -18
  138. package/esm/components/StartPanel/StartPanel.js.map +1 -1
  139. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +3 -3
  140. package/esm/components/layouts/chat.css +5 -2
  141. package/esm/components/layouts/totem.css +43 -9
  142. package/esm/helpers/nats/getNatsConfig.js.map +1 -1
  143. package/esm/helpers/nats/useNats.d.ts +2 -1
  144. package/esm/helpers/nats/useNats.js +87 -20
  145. package/esm/helpers/nats/useNats.js.map +1 -1
  146. package/esm/helpers/nats/useNatsSession.d.ts +6 -1
  147. package/esm/helpers/nats/useNatsSession.js +48 -8
  148. package/esm/helpers/nats/useNatsSession.js.map +1 -1
  149. package/esm/helpers/positionPopover.d.ts +2 -1
  150. package/esm/helpers/positionPopover.js +9 -2
  151. package/esm/helpers/positionPopover.js.map +1 -1
  152. package/esm/icons/MemoriIcon.js +1 -1
  153. package/esm/icons/MemoriIcon.js.map +1 -1
  154. package/esm/locales/de.json +4 -1
  155. package/esm/locales/en.json +3 -1
  156. package/esm/locales/es.json +3 -1
  157. package/esm/locales/fr.json +3 -1
  158. package/esm/locales/it.json +3 -1
  159. package/esm/styles.css +1 -1
  160. package/esm/version.d.ts +1 -1
  161. package/esm/version.js +1 -1
  162. package/package.json +8 -5
  163. package/src/Live/Agents.stories.tsx +49 -0
  164. package/src/Live/KnownFacts.stories.tsx +50 -0
  165. package/src/Showcase.stories.tsx +3 -14
  166. package/src/components/AgeVerificationModal/AgeVerificationModal.css +1 -7
  167. package/src/components/AgeVerificationModal/AgeVerificationModal.stories.tsx +1 -1
  168. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +1 -0
  169. package/src/components/Auth/Auth.css +12 -5
  170. package/src/components/Auth/Auth.stories.tsx +1 -1
  171. package/src/components/Auth/Auth.test.tsx +68 -1
  172. package/src/components/Auth/Auth.tsx +69 -54
  173. package/src/components/Auth/__snapshots__/Auth.test.tsx.snap +5 -6
  174. package/src/components/Avatar/Avatar.stories.tsx +1 -18
  175. package/src/components/Avatar/AvatarView/AvatarView.stories.tsx +1 -103
  176. package/src/components/Blob/Blob.stories.tsx +1 -1
  177. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.css +7 -6
  178. package/src/components/BlockedMemoriBadge/BlockedMemoriBadge.stories.tsx +1 -1
  179. package/src/components/ChangeMode/ChangeMode.stories.tsx +1 -1
  180. package/src/components/Chat/Chat.css +1 -0
  181. package/src/components/Chat/Chat.stories.tsx +61 -7
  182. package/src/components/Chat/Chat.tsx +1 -0
  183. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +151 -151
  184. package/src/components/ChatBubble/ChatBubble.css +32 -5
  185. package/src/components/ChatBubble/ChatBubble.stories.tsx +24 -2
  186. package/src/components/ChatBubble/ChatBubble.test.tsx +37 -1
  187. package/src/components/ChatBubble/ChatBubble.tsx +308 -299
  188. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +384 -264
  189. package/src/components/ChatHistoryDrawer/ChatHistory.stories.tsx +1 -1
  190. package/src/components/ChatHistoryDrawer/ChatHistory.tsx +6 -0
  191. package/src/components/ChatHistoryDrawer/ChatResumeDrawer.css +1 -1
  192. package/src/components/ChatHistoryDrawer/ChatResumeDrawer.tsx +24 -81
  193. package/src/components/ChatInputs/ChatInputs.stories.tsx +1 -39
  194. package/src/components/ChatInputs/ChatInputs.test.tsx +47 -0
  195. package/src/components/ChatInputs/ChatInputs.tsx +12 -2
  196. package/src/components/ChatTextArea/ChatTextArea.css +1 -1
  197. package/src/components/CompletionProviderStatus/CompletionProviderStatus.stories.tsx +1 -1
  198. package/src/components/ContentPreviewModal/ContentPreviewModal.css +1 -10
  199. package/src/components/ContentPreviewModal/ContentPreviewModal.tsx +1 -1
  200. package/src/components/ExpertsDrawer/ExpertsDrawer.css +0 -6
  201. package/src/components/ExpertsDrawer/ExpertsDrawer.stories.tsx +1 -1
  202. package/src/components/FeedbackButtons/FeedbackButtons.stories.tsx +29 -10
  203. package/src/components/FeedbackButtons/FeedbackButtons.tsx +2 -0
  204. package/src/components/FeedbackButtons/__snapshots__/FeedbackButtons.test.tsx.snap +1 -1
  205. package/src/components/Header/Header.css +8 -3
  206. package/src/components/Header/Header.stories.tsx +1 -1
  207. package/src/components/Header/Header.tsx +146 -117
  208. package/src/components/KnownFacts/KnownFacts.css +1 -1
  209. package/src/components/KnownFacts/KnownFacts.stories.tsx +1 -23
  210. package/src/components/KnownFacts/KnownFacts.tsx +4 -9
  211. package/src/components/KnownFacts/__snapshots__/KnownFacts.test.tsx.snap +6 -2
  212. package/src/components/LoginDrawer/LoginDrawer.css +16 -14
  213. package/src/components/LoginDrawer/LoginDrawer.stories.tsx +2 -52
  214. package/src/components/LoginDrawer/LoginDrawer.tsx +51 -39
  215. package/src/components/LoginDrawer/__snapshots__/LoginDrawer.test.tsx.snap +33 -11
  216. package/src/components/MediaWidget/MediaItemWidget.stories.tsx +1 -15
  217. package/src/components/MediaWidget/MediaWidget.stories.tsx +1 -45
  218. package/src/components/MemoriArtifactSystem/components/ArtifactActions/CopyButton.stories.tsx +1 -1
  219. package/src/components/MemoriArtifactSystem/components/ArtifactActions/styles.css +4 -4
  220. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.css +28 -5
  221. package/src/components/MemoriArtifactSystem/components/ArtifactDrawer/ArtifactDrawer.tsx +4 -6
  222. package/src/components/MemoriArtifactSystem/components/ArtifactHandler/ArtifactHandler.tsx +1 -1
  223. package/src/components/MemoriArtifactSystem/utils/ArtifactAPI.test.tsx +32 -28
  224. package/src/components/MemoriWidget/MemoriUIProvider.contract.test.tsx +55 -0
  225. package/src/components/MemoriWidget/MemoriWidget.stories.tsx +55 -77
  226. package/src/components/MemoriWidget/MemoriWidget.tsx +114 -45
  227. package/src/components/MemoriWidget/getChatStyles.test.ts +24 -0
  228. package/src/components/MicrophoneButton/MicrophoneButton.stories.tsx +1 -1
  229. package/src/components/MobileSessionPanel/MobileSessionPanel.css +2 -2
  230. package/src/components/PositionPopover/PositionPopover.css +3 -3
  231. package/src/components/PositionPopover/PositionPopover.stories.tsx +1 -1
  232. package/src/components/PositionPopover/PositionPopover.tsx +50 -28
  233. package/src/components/PoweredBy/PoweredBy.stories.tsx +1 -54
  234. package/src/components/PoweredBy/__snapshots__/PoweredBy.test.tsx.snap +2 -2
  235. package/src/components/SendOnEnterMenu/SendOnEnterMenu.stories.tsx +1 -1
  236. package/src/components/SettingsDrawer/SettingsDrawer.stories.tsx +1 -1
  237. package/src/components/ShareButton/ShareButton.stories.tsx +1 -1
  238. package/src/components/Snippet/Snippet.css +1 -1
  239. package/src/components/Snippet/Snippet.stories.tsx +1 -1
  240. package/src/components/StartPanel/StartPanel.css +19 -3
  241. package/src/components/StartPanel/StartPanel.stories.tsx +2 -2
  242. package/src/components/StartPanel/StartPanel.tsx +22 -35
  243. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +177 -121
  244. package/src/components/Typing/Typing.stories.tsx +1 -1
  245. package/src/components/WhyThisAnswer/WhyThisAnswer.stories.tsx +22 -44
  246. package/src/components/WhyThisAnswer/__snapshots__/WhyThisAnswer.test.tsx.snap +9 -3
  247. package/src/components/layouts/FullBody/FullBody.stories.tsx +55 -68
  248. package/src/components/layouts/Totem/Totem.stories.tsx +69 -87
  249. package/src/components/layouts/WebsiteAssistant/website-assistant.css +3 -3
  250. package/src/components/layouts/ZoomedFullBody/ZoomedFullBody.stories.tsx +69 -87
  251. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +19 -41
  252. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +39 -83
  253. package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +15 -11
  254. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +116 -42
  255. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +18 -40
  256. package/src/components/layouts/chat.css +5 -2
  257. package/src/components/layouts/layouts.stories.tsx +96 -179
  258. package/src/components/layouts/totem.css +43 -9
  259. package/src/helpers/nats/getNatsConfig.ts +4 -1
  260. package/src/helpers/nats/useNats.test.tsx +81 -0
  261. package/src/helpers/nats/useNats.ts +109 -29
  262. package/src/helpers/nats/useNatsSession.test.ts +16 -0
  263. package/src/helpers/nats/useNatsSession.ts +79 -13
  264. package/src/helpers/positionPopover.test.ts +36 -1
  265. package/src/helpers/positionPopover.ts +21 -4
  266. package/src/i18n.knownFacts.test.ts +40 -0
  267. package/src/icons/MemoriIcon.tsx +1 -1
  268. package/src/index.stories.tsx +1 -47
  269. package/src/locales/de.json +4 -1
  270. package/src/locales/en.json +3 -1
  271. package/src/locales/es.json +3 -1
  272. package/src/locales/fr.json +3 -1
  273. package/src/locales/it.json +3 -1
  274. package/src/styles.css +13 -27
  275. package/src/version.ts +1 -1
  276. package/src/components/ChatTextArea/ChatTextArea.stories.tsx +0 -55
  277. package/src/components/CustomGLBModelViewer/ModelViewer.stories.tsx +0 -58
  278. package/src/components/DateSelector/DateSelector.stories.tsx +0 -47
  279. package/src/components/FilePreview/FilePreview.stories.tsx +0 -63
  280. package/src/components/MemoriArtifactSystem/ArtifactDrawer.stories.tsx +0 -265
  281. package/src/components/UploadButton/UploadButton.stories.tsx +0 -510
  282. package/src/components/VenueWidget/VenueWidget.stories.tsx +0 -69
  283. package/src/components/layouts/WebsiteAssistant/WebsiteAssistant.stories.tsx +0 -115
package/src/styles.css CHANGED
@@ -1,8 +1,8 @@
1
1
  /* ==========================================================================
2
2
  MEMORI REACT – FOGLIO DI STILE GLOBALE
3
3
  ========================================================================== */
4
- /* Layer order: theme (defaults) < integration (integrationConfig overrides) */
5
- @layer theme, integration;
4
+ /* Layer order matches @memori.ai/ui: theme < components < host overrides */
5
+ @layer memori.theme, memori.components, memori.overrides;
6
6
 
7
7
  /* --- 1. Design system esterno (variabili, reset, token) ---
8
8
  NOTE: the bundler-style specifier below is intentional for dev/Storybook.
@@ -113,6 +113,11 @@
113
113
  flex-direction: column;
114
114
  }
115
115
 
116
+ /*
117
+ * Nested dialogs: use Modal stacking="stacked" from @memori.ai/ui (z-index 1600).
118
+ * Do not reintroduce max int z-index overrides here.
119
+ */
120
+
116
121
  .memori.memori-widget.memori-layout-chat > .memori-widget__surface,
117
122
  .memori.memori-widget.memori-layout-fullpage > .memori-widget__surface,
118
123
  .memori.memori-widget.memori-layout-zoomed_full_body > .memori-widget__surface {
@@ -122,6 +127,7 @@
122
127
  /* After inserting .memori-widget__surface, Spin is no longer a direct child of
123
128
  .memori-widget — keep it a stretching flex column so fullpage/chat fill the viewport. */
124
129
  .memori-widget > .memori-widget__surface > .memori-spin {
130
+ position: relative;
125
131
  display: flex !important;
126
132
  overflow: hidden;
127
133
  width: 100%;
@@ -142,8 +148,8 @@
142
148
  flex-shrink: 0;
143
149
  }
144
150
 
145
- /* --- 6. Base: brand e tema di default (in layer così integration può sovrascrivere --memori-primary) --- */
146
- @layer theme {
151
+ /* --- 6. Base: brand e tema di default (in layer così overrides possono sovrascrivere --memori-primary) --- */
152
+ @layer memori.overrides {
147
153
  :root,
148
154
  body,
149
155
  memori-client,
@@ -172,15 +178,14 @@
172
178
  background-color: var(--memori-secondary-background);
173
179
  }
174
180
 
175
- /* --- 8. Dark mode: override quando c’è data-theme="dark" (in layer theme) --- */
176
- @layer theme {
181
+ /* --- 8. Dark mode: surface contrast only — keep --memori-primary on the brand hook --- */
182
+ @layer memori.overrides {
177
183
  [data-theme='dark'] memori-client,
178
184
  [data-theme='dark'] memori-client #root,
179
185
  [data-theme='dark'] #headlessui-portal-root,
180
186
  [data-theme='dark'] .memori-widget,
181
187
  memori-client[data-theme='dark'],
182
188
  .memori-widget[data-theme='dark'] {
183
- --memori-primary: var(--memori-primary-hover);
184
189
  /* Align with @memori.ai/ui: contrast = ink, inverse = surface */
185
190
  --memori-surface-contrast: #fff;
186
191
  --memori-surface-contrast-inverse: #000;
@@ -200,26 +205,7 @@
200
205
  );
201
206
  } */
202
207
 
203
- /* --- 10. HIDDEN_CHAT / WEBSITE_ASSISTANT tooltip labels ---
204
- * Both layouts park their UI in position:fixed children, so .memori-widget
205
- * (MemoriUIProvider portal root) often collapses to a near-zero in-flow box.
206
- * Base UI tooltips position with position:absolute inside that root, so the
207
- * popup shrink-to-fits to a tiny width and overflow-wrap:anywhere (from
208
- * @memori.ai/ui) stacks each letter vertically. Force content-sized popups. */
209
- .memori-widget.memori-layout-hidden_chat .memori-tooltip__popup,
210
- .memori-widget.memori-layout-website_assistant .memori-tooltip__popup {
211
- width: max-content;
212
- max-width: min(20rem, calc(100vw - 2rem));
213
- overflow-wrap: break-word;
214
- text-orientation: mixed;
215
- word-break: normal;
216
- writing-mode: horizontal-tb;
217
- }
218
-
219
- .memori-widget.memori-layout-hidden_chat .memori-tooltip__surface,
220
- .memori-widget.memori-layout-website_assistant .memori-tooltip__surface {
221
- max-width: none;
222
- }
208
+ /* Tooltip width/wrap is fixed in @memori.ai/ui 1.17 no consumer patch. */
223
209
 
224
210
  /* --- 11. Utility responsive --- */
225
211
  @media (max-width: 768px) {
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  // This file is auto-generated. Do not edit manually.
2
- export const version = '9.0.0-alpha.21';
2
+ export const version = '9.0.0-alpha.23';
@@ -1,55 +0,0 @@
1
- import React from 'react';
2
- import { Meta, Story } from '@storybook/react';
3
- import ChatTextArea, { Props } from './ChatTextArea';
4
- import I18nWrapper from '../../I18nWrapper';
5
- import './ChatTextArea.css';
6
-
7
- const meta: Meta = {
8
- title: 'Widget/Chat textarea',
9
- component: ChatTextArea,
10
- argTypes: {
11
- disabled: {
12
- control: {
13
- type: 'boolean',
14
- },
15
- },
16
- },
17
- parameters: {
18
- controls: { expanded: true },
19
- },
20
- };
21
-
22
- export default meta;
23
-
24
- const Template: Story<Props> = args => {
25
- const [userMessage, setUserMessage] = React.useState(args.value);
26
-
27
- return (
28
- <I18nWrapper>
29
- <div style={{ paddingTop: '10rem' }}>
30
- <ChatTextArea {...args} value={userMessage} onChange={setUserMessage} />
31
- </div>
32
- </I18nWrapper>
33
- );
34
- };
35
-
36
- // By passing using the Args format for exported stories, you can control the props for a component for reuse in a test
37
- // https://storybook.js.org/docs/react/workflows/unit-testing
38
- export const Default = Template.bind({});
39
- Default.args = {
40
- value: '',
41
- onChange: () => {},
42
- };
43
-
44
- export const WithValue = Template.bind({});
45
- WithValue.args = {
46
- value: 'Suspendisse sit amet volutpat velit.',
47
- onChange: () => {},
48
- };
49
-
50
- export const WithLongText = Template.bind({});
51
- WithLongText.args = {
52
- value:
53
- 'Suspendisse sit amet volutpat velit. Nunc at commodo tortor, id rutrum nunc. Vivamus condimentum vel nunc et congue. Ut laoreet imperdiet nisi ac finibus. Suspendisse molestie risus a justo sagittis efficitur. Suspendisse sit amet volutpat velit. Nunc at commodo tortor, id rutrum nunc. Vivamus condimentum vel nunc et congue. Ut laoreet imperdiet nisi ac finibus. Suspendisse molestie risus a justo sagittis efficitur.',
54
- onChange: () => {},
55
- };
@@ -1,58 +0,0 @@
1
- import React from 'react';
2
- import { Meta, Story } from '@storybook/react';
3
- import ModelViewer, { Props } from './ModelViewer';
4
- import './ModelViewer.css';
5
-
6
- const meta: Meta = {
7
- title: 'Custom GLB Avatar',
8
- component: ModelViewer,
9
- argTypes: {
10
- src: {
11
- control: {
12
- type: 'text',
13
- },
14
- },
15
- poster: {
16
- control: {
17
- type: 'text',
18
- },
19
- },
20
- alt: {
21
- control: {
22
- type: 'text',
23
- },
24
- },
25
- },
26
- parameters: {
27
- controls: { expanded: true },
28
- },
29
- };
30
-
31
- export default meta;
32
-
33
- const Template: Story<Props> = args => {
34
- const [hydrated, setHydrated] = React.useState(false);
35
- React.useEffect(() => {
36
- setHydrated(true);
37
- }, []);
38
-
39
- return hydrated ? (
40
- <ModelViewer
41
- {...args}
42
- src={args.src + `#${new Date(Date.now()).toISOString()}`}
43
- key={Date.now()}
44
- />
45
- ) : (
46
- <></>
47
- );
48
- };
49
-
50
- // By passing using the Args format for exported stories, you can control the props for a component for reuse in a test
51
- // https://storybook.js.org/docs/react/workflows/unit-testing
52
- export const Default = Template.bind({});
53
- Default.args = {
54
- alt: '',
55
- src: 'https://assets.memori.ai/api/v2/asset/7383f05a-0788-49b0-b9b9-3bfc402c7ddf.glb#1669136149862',
56
- poster:
57
- 'https://assets.memori.ai/api/v2/asset/596382ce-381a-4a66-9740-c7adc3bfa4a8.png',
58
- };
@@ -1,47 +0,0 @@
1
- import React from 'react';
2
- import { Meta, Story } from '@storybook/react';
3
- import I18nWrapper from '../../I18nWrapper';
4
- import DateSelector, { Props } from './DateSelector';
5
-
6
- import './DateSelector.css';
7
-
8
- const meta: Meta = {
9
- title: 'DateSelector',
10
- component: DateSelector,
11
- parameters: {
12
- controls: { expanded: true },
13
- layout: 'fullscreen',
14
- },
15
- };
16
-
17
- export default meta;
18
-
19
- const Template: Story<Props> = args => (
20
- <I18nWrapper>
21
- <DateSelector {...args} />
22
- </I18nWrapper>
23
- );
24
- // By passing using the Args format for exported stories, you can control the props for a component for reuse in a test
25
- // https://storybook.js.org/docs/react/workflows/unit-testing
26
- export const Default = Template.bind({});
27
- Default.args = {
28
- defaultDate: '1990-06-15',
29
- minAge: 18,
30
- onChange: console.log,
31
- disabled: false,
32
- };
33
-
34
- export const MinAge14 = Template.bind({});
35
- MinAge14.args = {
36
- minAge: 14,
37
- onChange: console.log,
38
- disabled: false,
39
- };
40
-
41
- export const Disabled = Template.bind({});
42
- Disabled.args = {
43
- defaultDate: '1990-06-15',
44
- minAge: 18,
45
- onChange: () => {},
46
- disabled: true,
47
- };
@@ -1,63 +0,0 @@
1
- import React, { useState } from 'react';
2
- import { Meta, Story } from '@storybook/react';
3
- import I18nWrapper from '../../I18nWrapper';
4
- import FilePreview from './FilePreview';
5
-
6
- import './FilePreview.css';
7
-
8
- const meta: Meta = {
9
- title: 'Widget/File Preview',
10
- component: FilePreview,
11
- argTypes: {
12
- disabled: {
13
- control: {
14
- type: 'boolean',
15
- },
16
- },
17
- },
18
- parameters: {
19
- controls: { expanded: true },
20
- },
21
- };
22
-
23
-
24
- type Props = {
25
- onUpload: (text: string) => void;
26
- };
27
-
28
- export default meta;
29
-
30
- const Template: Story<Props> = args => {
31
- const [previewFiles, setPreviewFiles] = useState<{ name: string; id: string; content: string; }[]>([]);
32
-
33
- return (
34
- <I18nWrapper>
35
- <div
36
- style={{
37
- minHeight: '200px',
38
- display: 'flex',
39
- alignItems: 'flex-end',
40
- }}
41
- >
42
- <FilePreview {...args} previewFiles={previewFiles} removeFile={
43
- (id: string) => {
44
- setPreviewFiles(previewFiles.filter(file => file.id !== id));
45
- }
46
- } />
47
- </div>
48
- </I18nWrapper>
49
- );
50
- };
51
-
52
- // By passing using the Args format for exported stories, you can control the props for a component for reuse in a test
53
- // https://storybook.js.org/docs/react/workflows/unit-testing
54
- export const Default = Template.bind({});
55
- Default.args = {
56
- onUpload: () => {},
57
- };
58
-
59
- export const Disabled = Template.bind({});
60
- Disabled.args = {
61
- onUpload: () => {},
62
- disabled: true,
63
- };
@@ -1,265 +0,0 @@
1
- import React, { useEffect } from 'react';
2
- import type { Meta, StoryObj } from '@storybook/react';
3
- import { Message } from '@memori.ai/memori-api-client/dist/types';
4
- import { AlertProvider } from '@memori.ai/ui';
5
- import I18nWrapper from '../../I18nWrapper';
6
- import {
7
- ArtifactProvider,
8
- useArtifact,
9
- } from './context/ArtifactContext';
10
- import ArtifactDrawer from './components/ArtifactDrawer/ArtifactDrawer';
11
- import ArtifactHandler from './components/ArtifactHandler/ArtifactHandler';
12
- import { ArtifactData } from './types/artifact.types';
13
-
14
- const HTML_ARTIFACT_CONTENT = `<!DOCTYPE html>
15
- <html lang="en">
16
- <head>
17
- <meta charset="UTF-8">
18
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
19
- <title>Product Dashboard</title>
20
- <style>
21
- * { box-sizing: border-box; }
22
- body {
23
- margin: 0;
24
- padding: 24px;
25
- font-family: system-ui, -apple-system, sans-serif;
26
- background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
27
- color: #0f172a;
28
- }
29
- .grid {
30
- display: grid;
31
- grid-template-columns: repeat(2, minmax(0, 1fr));
32
- gap: 16px;
33
- }
34
- .card {
35
- background: #fff;
36
- border-radius: 12px;
37
- padding: 20px;
38
- box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
39
- }
40
- .metric {
41
- font-size: 28px;
42
- font-weight: 700;
43
- margin: 8px 0 0;
44
- }
45
- .label {
46
- color: #64748b;
47
- font-size: 13px;
48
- text-transform: uppercase;
49
- letter-spacing: 0.04em;
50
- }
51
- h1 { margin-top: 0; font-size: 22px; }
52
- </style>
53
- </head>
54
- <body>
55
- <h1>Product Dashboard</h1>
56
- <p>Interactive HTML artifact shown in the side drawer panel.</p>
57
- <div class="grid">
58
- <div class="card">
59
- <div class="label">Active users</div>
60
- <div class="metric">12,480</div>
61
- </div>
62
- <div class="card">
63
- <div class="label">Conversion</div>
64
- <div class="metric">4.8%</div>
65
- </div>
66
- <div class="card">
67
- <div class="label">Revenue</div>
68
- <div class="metric">€84,200</div>
69
- </div>
70
- <div class="card">
71
- <div class="label">Support tickets</div>
72
- <div class="metric">37</div>
73
- </div>
74
- </div>
75
- </body>
76
- </html>`;
77
-
78
- const MARKDOWN_ARTIFACT_CONTENT = `# Weekly Report
79
-
80
- This artifact expands **inline in the chat log** instead of opening the side drawer.
81
-
82
- ## Highlights
83
-
84
- | Metric | Value | Change |
85
- |--------|-------|--------|
86
- | Sessions | 18,420 | +12% |
87
- | Avg. response time | 1.4s | -8% |
88
- | Satisfaction | 4.7/5 | +0.2 |
89
-
90
- ## Next steps
91
-
92
- - Review artifact preview and code tabs
93
- - Try copy, download, and print actions
94
- - Collapse the panel with the artifact handler button
95
-
96
- \`\`\`typescript
97
- export function summarize(report: WeeklyReport) {
98
- return report.highlights.map(item => item.title).join(', ');
99
- }
100
- \`\`\`
101
- `;
102
-
103
- const wrapArtifactTag = (
104
- content: string,
105
- mimeType: string,
106
- title: string
107
- ): string =>
108
- `<output class="memori-artifact" data-mimetype="${mimeType}" data-title="${title}">${content}</output>`;
109
-
110
- const createArtifactMessage = (
111
- content: string,
112
- mimeType: string,
113
- title: string,
114
- timestamp: string
115
- ): Message => ({
116
- text: wrapArtifactTag(content, mimeType, title),
117
- fromUser: false,
118
- timestamp,
119
- generatedByAI: true,
120
- });
121
-
122
- const htmlArtifactMessage = createArtifactMessage(
123
- HTML_ARTIFACT_CONTENT,
124
- 'html',
125
- 'Product Dashboard',
126
- '2026-05-27T10:00:00.000Z'
127
- );
128
-
129
- const markdownArtifactMessage = createArtifactMessage(
130
- MARKDOWN_ARTIFACT_CONTENT,
131
- 'markdown',
132
- 'Weekly Report',
133
- '2026-05-27T11:00:00.000Z'
134
- );
135
-
136
- const StoryProviders: React.FC<{ children: React.ReactNode }> = ({
137
- children,
138
- }) => (
139
- <I18nWrapper>
140
- <AlertProvider defaultDuration={5000}>
141
- <ArtifactProvider>{children}</ArtifactProvider>
142
- </AlertProvider>
143
- </I18nWrapper>
144
- );
145
-
146
- const OpenArtifactOnMount: React.FC<{
147
- artifact: ArtifactData;
148
- isChatLogPanel?: boolean;
149
- }> = ({ artifact, isChatLogPanel = false }) => {
150
- const { openArtifact } = useArtifact();
151
-
152
- useEffect(() => {
153
- openArtifact(artifact, { isChatLogPanel });
154
- }, [artifact, isChatLogPanel, openArtifact]);
155
-
156
- return null;
157
- };
158
-
159
- const DrawerModeDemo: React.FC = () => (
160
- <div
161
- style={{
162
- display: 'flex',
163
- height: '100vh',
164
- background: 'var(--memori-main-background)',
165
- }}
166
- >
167
- <div
168
- style={{
169
- flex: 1,
170
- minWidth: 0,
171
- padding: '24px',
172
- borderRight: '1px solid var(--memori-border-primary)',
173
- overflow: 'auto',
174
- }}
175
- >
176
- <p style={{ marginTop: 0, color: 'var(--memori-text-color)' }}>
177
- Side-drawer mode: the artifact opens in a dedicated layout column while
178
- the chat stays visible on the left.
179
- </p>
180
- <ArtifactHandler
181
- isChatlogPanel={false}
182
- message={htmlArtifactMessage}
183
- />
184
- </div>
185
- <div style={{ width: '55%', minWidth: 360 }}>
186
- <ArtifactDrawer isLayoutColumn />
187
- </div>
188
- </div>
189
- );
190
-
191
- const ChatLogModeDemo: React.FC = () => {
192
- const markdownArtifact: ArtifactData = {
193
- id: 'storybook-chatlog-artifact',
194
- content: MARKDOWN_ARTIFACT_CONTENT,
195
- mimeType: 'markdown',
196
- title: 'Weekly Report',
197
- timestamp: new Date('2026-05-27T11:00:00.000Z'),
198
- size: MARKDOWN_ARTIFACT_CONTENT.length,
199
- };
200
-
201
- return (
202
- <div
203
- style={{
204
- maxWidth: 760,
205
- margin: '0 auto',
206
- padding: '24px',
207
- background: 'var(--memori-main-background)',
208
- minHeight: '100vh',
209
- }}
210
- >
211
- <p style={{ marginTop: 0, color: 'var(--memori-text-color)' }}>
212
- Chatlog mode: the artifact expands inline below the handler button inside
213
- the conversation.
214
- </p>
215
- <OpenArtifactOnMount artifact={markdownArtifact} isChatLogPanel />
216
- <ArtifactHandler
217
- isChatlogPanel
218
- message={markdownArtifactMessage}
219
- />
220
- </div>
221
- );
222
- };
223
-
224
- const meta: Meta = {
225
- title: 'Artifact System/ArtifactDrawer',
226
- parameters: {
227
- layout: 'fullscreen',
228
- },
229
- };
230
-
231
- export default meta;
232
-
233
- type Story = StoryObj;
234
-
235
- export const DrawerMode: Story = {
236
- render: () => (
237
- <StoryProviders>
238
- <DrawerModeDemo />
239
- </StoryProviders>
240
- ),
241
- parameters: {
242
- docs: {
243
- description: {
244
- story:
245
- 'HTML artifact opened in side-drawer mode. The handler auto-opens the artifact in the layout column, matching FullPage and Chat layouts.',
246
- },
247
- },
248
- },
249
- };
250
-
251
- export const ChatLogMode: Story = {
252
- render: () => (
253
- <StoryProviders>
254
- <ChatLogModeDemo />
255
- </StoryProviders>
256
- ),
257
- parameters: {
258
- docs: {
259
- description: {
260
- story:
261
- 'Markdown artifact shown inline in chatlog mode. The drawer renders below the artifact handler inside the message flow.',
262
- },
263
- },
264
- },
265
- };