@memori.ai/memori-react 8.44.0 → 8.45.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 (126) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/components/MemoriWidget/MemoriWidget.d.ts +1 -0
  3. package/dist/components/MemoriWidget/MemoriWidget.js +59 -1
  4. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  5. package/dist/helpers/nats/getNatsConfig.d.ts +1 -1
  6. package/dist/helpers/nats/getNatsConfig.js +2 -2
  7. package/dist/helpers/nats/getNatsConfig.js.map +1 -1
  8. package/dist/helpers/nats/useNats.d.ts +2 -1
  9. package/dist/helpers/nats/useNats.js +87 -20
  10. package/dist/helpers/nats/useNats.js.map +1 -1
  11. package/dist/helpers/nats/useNatsSession.d.ts +6 -1
  12. package/dist/helpers/nats/useNatsSession.js +49 -8
  13. package/dist/helpers/nats/useNatsSession.js.map +1 -1
  14. package/dist/version.d.ts +1 -1
  15. package/dist/version.js +1 -1
  16. package/esm/components/MemoriWidget/MemoriWidget.d.ts +1 -0
  17. package/esm/components/MemoriWidget/MemoriWidget.js +57 -1
  18. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  19. package/esm/helpers/nats/getNatsConfig.d.ts +1 -1
  20. package/esm/helpers/nats/getNatsConfig.js +2 -2
  21. package/esm/helpers/nats/getNatsConfig.js.map +1 -1
  22. package/esm/helpers/nats/useNats.d.ts +2 -1
  23. package/esm/helpers/nats/useNats.js +87 -20
  24. package/esm/helpers/nats/useNats.js.map +1 -1
  25. package/esm/helpers/nats/useNatsSession.d.ts +6 -1
  26. package/esm/helpers/nats/useNatsSession.js +48 -8
  27. package/esm/helpers/nats/useNatsSession.js.map +1 -1
  28. package/esm/version.d.ts +1 -1
  29. package/esm/version.js +1 -1
  30. package/package.json +1 -1
  31. package/src/components/MemoriWidget/MemoriWidget.tsx +65 -1
  32. package/src/helpers/nats/getNatsConfig.ts +8 -3
  33. package/src/helpers/nats/useNats.test.tsx +81 -0
  34. package/src/helpers/nats/useNats.ts +109 -29
  35. package/src/helpers/nats/useNatsSession.test.ts +16 -0
  36. package/src/helpers/nats/useNatsSession.ts +79 -13
  37. package/src/version.ts +1 -1
  38. package/dist/components/ChatHistoryDrawer/ChatResumeDrawer.css +0 -372
  39. package/dist/components/DrawerFooter/DrawerFooter.css +0 -62
  40. package/dist/components/IconButton/IconButton.css +0 -144
  41. package/dist/components/MobileSessionPanel/MobileSessionPanel.css +0 -459
  42. package/dist/components/PositionPopover/PositionPopover.css +0 -219
  43. package/dist/components/layouts/WebsiteAssistant/website-assistant.css +0 -806
  44. package/dist/components/layouts/fullpage.css +0 -522
  45. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.css +0 -372
  46. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.d.ts +0 -36
  47. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js +0 -113
  48. package/esm/components/ChatHistoryDrawer/ChatResumeDrawer.js.map +0 -1
  49. package/esm/components/DrawerFooter/DrawerFooter.css +0 -62
  50. package/esm/components/DrawerFooter/DrawerFooter.d.ts +0 -12
  51. package/esm/components/DrawerFooter/DrawerFooter.js +0 -8
  52. package/esm/components/DrawerFooter/DrawerFooter.js.map +0 -1
  53. package/esm/components/IconButton/IconButton.css +0 -144
  54. package/esm/components/IconButton/IconButton.d.ts +0 -9
  55. package/esm/components/IconButton/IconButton.js +0 -33
  56. package/esm/components/IconButton/IconButton.js.map +0 -1
  57. package/esm/components/MobileSessionPanel/MobileSessionPanel.css +0 -459
  58. package/esm/components/MobileSessionPanel/MobileSessionPanel.d.ts +0 -65
  59. package/esm/components/MobileSessionPanel/MobileSessionPanel.js +0 -291
  60. package/esm/components/MobileSessionPanel/MobileSessionPanel.js.map +0 -1
  61. package/esm/components/PositionPopover/PositionPopover.css +0 -219
  62. package/esm/components/PositionPopover/PositionPopover.d.ts +0 -22
  63. package/esm/components/PositionPopover/PositionPopover.js +0 -190
  64. package/esm/components/PositionPopover/PositionPopover.js.map +0 -1
  65. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.d.ts +0 -4
  66. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js +0 -61
  67. package/esm/components/layouts/WebsiteAssistant/WebsiteAssistant.js.map +0 -1
  68. package/esm/components/layouts/WebsiteAssistant/website-assistant.css +0 -806
  69. package/esm/components/layouts/fullpage.css +0 -522
  70. package/esm/context/widgetSurfaceContext.d.ts +0 -3
  71. package/esm/context/widgetSurfaceContext.js +0 -7
  72. package/esm/context/widgetSurfaceContext.js.map +0 -1
  73. package/esm/helpers/positionPopover.d.ts +0 -1
  74. package/esm/helpers/positionPopover.js +0 -4
  75. package/esm/helpers/positionPopover.js.map +0 -1
  76. package/esm/helpers/tts/muteSpeaker.d.ts +0 -13
  77. package/esm/helpers/tts/muteSpeaker.js +0 -21
  78. package/esm/helpers/tts/muteSpeaker.js.map +0 -1
  79. package/esm/helpers/usePressTooltip.d.ts +0 -13
  80. package/esm/helpers/usePressTooltip.js +0 -20
  81. package/esm/helpers/usePressTooltip.js.map +0 -1
  82. package/esm/icons/FacebookIcon.d.ts +0 -3
  83. package/esm/icons/FacebookIcon.js +0 -4
  84. package/esm/icons/FacebookIcon.js.map +0 -1
  85. package/esm/icons/LinkedinIcon.d.ts +0 -3
  86. package/esm/icons/LinkedinIcon.js +0 -4
  87. package/esm/icons/LinkedinIcon.js.map +0 -1
  88. package/esm/icons/MemoriIcon.d.ts +0 -3
  89. package/esm/icons/MemoriIcon.js +0 -6
  90. package/esm/icons/MemoriIcon.js.map +0 -1
  91. package/esm/icons/TelegramIcon.d.ts +0 -3
  92. package/esm/icons/TelegramIcon.js +0 -4
  93. package/esm/icons/TelegramIcon.js.map +0 -1
  94. package/esm/icons/TwitterIcon.d.ts +0 -3
  95. package/esm/icons/TwitterIcon.js +0 -4
  96. package/esm/icons/TwitterIcon.js.map +0 -1
  97. package/esm/icons/WhatsappIcon.d.ts +0 -3
  98. package/esm/icons/WhatsappIcon.js +0 -4
  99. package/esm/icons/WhatsappIcon.js.map +0 -1
  100. package/esm/icons/artifacts/DocumentIcon.d.ts +0 -3
  101. package/esm/icons/artifacts/DocumentIcon.js +0 -4
  102. package/esm/icons/artifacts/DocumentIcon.js.map +0 -1
  103. package/esm/icons/artifacts/HtmlIcon.d.ts +0 -3
  104. package/esm/icons/artifacts/HtmlIcon.js +0 -4
  105. package/esm/icons/artifacts/HtmlIcon.js.map +0 -1
  106. package/esm/icons/artifacts/JavascriptIcon.d.ts +0 -3
  107. package/esm/icons/artifacts/JavascriptIcon.js +0 -4
  108. package/esm/icons/artifacts/JavascriptIcon.js.map +0 -1
  109. package/esm/icons/artifacts/MarkdownIcon.d.ts +0 -3
  110. package/esm/icons/artifacts/MarkdownIcon.js +0 -4
  111. package/esm/icons/artifacts/MarkdownIcon.js.map +0 -1
  112. package/esm/icons/artifacts/PythonIcon.d.ts +0 -3
  113. package/esm/icons/artifacts/PythonIcon.js +0 -4
  114. package/esm/icons/artifacts/PythonIcon.js.map +0 -1
  115. package/esm/icons/artifacts/SvgIcon.d.ts +0 -3
  116. package/esm/icons/artifacts/SvgIcon.js +0 -4
  117. package/esm/icons/artifacts/SvgIcon.js.map +0 -1
  118. package/esm/icons/artifacts/XmlIcon.d.ts +0 -3
  119. package/esm/icons/artifacts/XmlIcon.js +0 -4
  120. package/esm/icons/artifacts/XmlIcon.js.map +0 -1
  121. package/esm/icons/artifacts/cssIcon.d.ts +0 -3
  122. package/esm/icons/artifacts/cssIcon.js +0 -4
  123. package/esm/icons/artifacts/cssIcon.js.map +0 -1
  124. package/esm/testUtils.d.ts +0 -5
  125. package/esm/testUtils.js +0 -15
  126. package/esm/testUtils.js.map +0 -1
@@ -1,522 +0,0 @@
1
- /* FullPage layout – spacing, typography and structure using global design tokens */
2
-
3
- .memori-widget.memori-layout-fullpage {
4
- /* max-width: var(--memori-layout-max-width); */
5
- /* min-height: 100vh;
6
- min-height: 100dvh; */
7
- padding: var(--memori-spacing-md);
8
- margin-right: auto;
9
- margin-left: auto;
10
- }
11
-
12
- .memori-widget.memori-layout-fullpage > .memori-spin,
13
- .memori-widget.memori-layout-fullpage > .memori-widget__surface > .memori-spin {
14
- display: flex;
15
- overflow: hidden;
16
- height: 100%;
17
- min-height: 0;
18
- flex: 1 1 auto;
19
- flex-direction: column;
20
- gap: 0;
21
- }
22
- /* "Powered by" lives in the conversation footer under the chat input. */
23
-
24
- /* Header spacing + fullpage chrome (brand + actions bar) */
25
- .memori-widget.memori-layout-fullpage .memori-fullpage-top-header {
26
- position: relative;
27
- z-index: 6;
28
- width: 100%;
29
- flex-shrink: 0;
30
- padding: 0;
31
- padding-bottom: 0;
32
- margin-bottom: var(--memori-spacing-sm);
33
- }
34
-
35
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-row,
36
- .memori-widget.memori-layout-chat .memori-fullpage-header-row {
37
- position: sticky;
38
- z-index: 6;
39
- top: 0;
40
- display: flex;
41
- width: 100%;
42
- min-height: 48px;
43
- flex-wrap: nowrap;
44
- align-items: center;
45
- justify-content: flex-end;
46
- padding: var(--memori-spacing-md);
47
- border-bottom: 1px solid var(--memori-border-color);
48
- background: transparent;
49
- gap: var(--memori-spacing-md);
50
- transition: background-color var(--memori-motion-duration-fast, 0.15s) var(--memori-motion-ease, ease);
51
- }
52
-
53
- /* FULLPAGE header shares the same content axis as .memori--grid, so brand,
54
- actions and the divider stay aligned with the card edges at any width. */
55
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-row {
56
- max-width: var(--memori-layout-max-width);
57
- padding-right: var(--memori-spacing-md);
58
- padding-left: var(--memori-spacing-md);
59
- margin-right: auto;
60
- margin-left: auto;
61
- }
62
-
63
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-row.memori-header--scrolled,
64
- .memori-widget.memori-layout-chat .memori-fullpage-header-row.memori-header--scrolled,
65
- .memori-widget.memori-layout-fullpage .memori-chat-layout--header.memori-header--scrolled,
66
- .memori-widget.memori-layout-chat .memori-chat-layout--header.memori-header--scrolled,
67
- .memori-widget.memori-layout-fullpage .memori-fullpage-top-header.memori-header--scrolled {
68
- background: var(--memori-secondary-background);
69
- }
70
-
71
- .memori-widget.memori-layout-fullpage .memori-chat-layout--header {
72
- min-width: 100%;
73
- flex-shrink: 0;
74
- -webkit-backdrop-filter: none;
75
- backdrop-filter: none;
76
- background: transparent;
77
- }
78
-
79
- .memori-widget.memori-layout-fullpage .memori-chat-layout--controls .memori-chat--history {
80
- min-height: 0;
81
- flex: 1 1 auto;
82
- border: none;
83
- border-radius: var(--memori-radius-box);
84
- margin-bottom: 0;
85
- background-color: var(--memori-secondary-background);
86
- }
87
-
88
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-brand,
89
- .memori-widget.memori-layout-chat .memori-fullpage-header-brand {
90
- display: inline-flex;
91
- overflow: hidden;
92
- min-width: 0;
93
- flex: 1 1 auto;
94
- flex-wrap: nowrap;
95
- align-items: center;
96
- margin-right: auto;
97
- gap: 0.625rem;
98
- white-space: nowrap;
99
- }
100
-
101
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-brand-text,
102
- .memori-widget.memori-layout-chat .memori-fullpage-header-brand-text {
103
- display: flex;
104
- overflow: hidden;
105
- min-width: 0;
106
- flex: 1 1 auto;
107
- flex-direction: column;
108
- gap: 0.125rem;
109
- }
110
-
111
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-brand-icon,
112
- .memori-widget.memori-layout-chat .memori-fullpage-header-brand-icon {
113
- display: block;
114
- width: 30px;
115
- height: 30px;
116
- flex-shrink: 0;
117
- border-radius: 50%;
118
- background: var(--memori-primary);
119
- }
120
-
121
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-brand-icon--avatar,
122
- .memori-widget.memori-layout-chat .memori-fullpage-header-brand-icon--avatar {
123
- flex-shrink: 0;
124
- border: 0;
125
- background: none;
126
- box-shadow: none;
127
- object-fit: cover;
128
- }
129
-
130
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-brand-name,
131
- .memori-widget.memori-layout-chat .memori-fullpage-header-brand-name {
132
- display: block;
133
- overflow: hidden;
134
- min-width: 0;
135
- max-width: 100%;
136
- color: var(--memori-text-color, #1f2937);
137
- font-size: 1.05rem;
138
- font-weight: 700;
139
- letter-spacing: -0.02em;
140
- line-height: 1.2;
141
- text-overflow: ellipsis;
142
- white-space: nowrap;
143
- }
144
-
145
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-brand-role,
146
- .memori-widget.memori-layout-chat .memori-fullpage-header-brand-role {
147
- display: block;
148
- overflow: hidden;
149
- min-width: 0;
150
- max-width: 100%;
151
- color: color-mix(in srgb, var(--memori-text-color) 72%, transparent);
152
- font-size: var(--memori-text-size-sm, 0.8125rem);
153
- font-weight: var(--memori-text-weight-normal, 400);
154
- line-height: 1.3;
155
- text-overflow: ellipsis;
156
- white-space: nowrap;
157
- }
158
-
159
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-actions,
160
- .memori-widget.memori-layout-chat .memori-fullpage-header-actions {
161
- display: flex;
162
- min-width: 0;
163
- flex: 0 0 auto;
164
- align-items: center;
165
- justify-content: flex-end;
166
- margin-left: auto;
167
- }
168
-
169
- /* FullPage / Chat / Zoomed header controls: compact square actions + rounded login CTA */
170
- .memori-widget.memori-layout-fullpage .memori-header.memori-header--fullpage,
171
- .memori-widget.memori-layout-chat .memori-header.memori-header--fullpage {
172
- width: auto;
173
- min-width: 0;
174
- flex-wrap: nowrap;
175
- justify-content: flex-end;
176
- margin-left: auto;
177
- gap: 0.5rem;
178
- }
179
-
180
- .memori-widget.memori-layout-fullpage .memori-header--fullpage-primary,
181
- .memori-widget.memori-layout-fullpage .memori-header--fullpage-secondary,
182
- .memori-widget.memori-layout-chat .memori-header--fullpage-primary,
183
- .memori-widget.memori-layout-chat .memori-header--fullpage-secondary {
184
- flex-wrap: nowrap;
185
- gap: 0.5rem;
186
- }
187
-
188
- .memori-widget.memori-layout-fullpage .memori-header--fullpage-divider,
189
- .memori-widget.memori-layout-chat .memori-header--fullpage-divider {
190
- min-height: 26px;
191
- margin: 0;
192
- }
193
-
194
- /* CHAT: title block a sinistra, controlli allineati a destra. */
195
- .memori-widget.memori-layout-chat .memori-fullpage-header-row {
196
- justify-content: flex-end;
197
- }
198
-
199
- .memori-widget.memori-layout-chat .memori-fullpage-header-brand {
200
- margin-right: auto;
201
- }
202
-
203
- .memori-widget.memori-layout-chat .memori-fullpage-header-actions {
204
- flex: 0 0 auto;
205
- }
206
-
207
- /* Full-height flex row: [grid] [artifact column] — outside the grid so artifact
208
- spans the entire content height without inheriting grid padding/max-width */
209
- .memori-widget.memori-layout-fullpage .memori-fullpage-content-row {
210
- display: flex;
211
- overflow: hidden;
212
- min-height: 0;
213
- flex: 1 1 0%;
214
- flex-direction: row;
215
- align-items: stretch;
216
- }
217
-
218
- /* Grid holds avatar + chat as two separate panels: no outer frame, vertical breathing room. */
219
- .memori-widget.memori-layout-fullpage .memori--grid {
220
- display: flex;
221
- overflow: hidden;
222
- width: 100%;
223
- max-width: var(--memori-layout-max-width);
224
- height: 100%;
225
- min-height: 0;
226
- flex: 1 1 0%;
227
- align-items: stretch;
228
- justify-content: center;
229
- padding: var(--memori-spacing-md);
230
- border: none;
231
- margin: 0 auto;
232
- background: var(--memori-secondary-background);
233
- gap: var(--memori-spacing-md);
234
- }
235
-
236
- /* Avatar column: its own rounded panel, wider than the chat sidebar it replaced. */
237
- .memori-widget.memori-layout-fullpage .memori--grid-column-left {
238
- position: relative;
239
- display: flex;
240
- overflow: hidden;
241
- width: clamp(240px, 34%, 420px);
242
- height: 100%;
243
- min-height: 0;
244
- flex-direction: column;
245
- flex-shrink: 0;
246
- align-items: stretch;
247
- align-self: stretch;
248
- border: none;
249
- border-radius: 12px;
250
- margin-right: 0;
251
- background: color-mix(in srgb, var(--memori-text-color) 4%, var(--memori-secondary-background));
252
- }
253
-
254
- /* Agent status indicator above the avatar. */
255
- .memori-widget.memori-layout-fullpage .memori-fullpage-agent-status {
256
- display: flex;
257
- flex-shrink: 0;
258
- align-items: center;
259
- justify-content: center;
260
- padding: var(--memori-spacing-sm) var(--memori-spacing-md);
261
- color: color-mix(in srgb, var(--memori-text-color) 72%, transparent);
262
- font-size: var(--memori-text-size-sm, 0.8125rem);
263
- gap: var(--memori-spacing-xs);
264
- line-height: 1.2;
265
- text-align: center;
266
- }
267
-
268
- .memori-widget.memori-layout-fullpage .memori-fullpage-agent-status--dot {
269
- display: inline-block;
270
- width: 8px;
271
- height: 8px;
272
- flex-shrink: 0;
273
- border-radius: 50%;
274
- background: currentColor;
275
- }
276
-
277
- .memori-widget.memori-layout-fullpage .memori-fullpage-agent-status--dot-speaking {
278
- background: var(--memori-primary);
279
- }
280
-
281
- .memori-widget.memori-layout-fullpage .memori-fullpage-agent-status--dot-processing {
282
- background: color-mix(in srgb, var(--memori-text-color) 55%, transparent);
283
- }
284
-
285
- .memori-widget.memori-layout-fullpage .memori-fullpage-agent-status--dot-listening {
286
- background: var(--memori-primary);
287
- }
288
-
289
- /* Cover banner is removed in FULLPAGE — it wastes the most valuable space. */
290
- .memori-widget.memori-layout-fullpage .memori-chat--cover {
291
- display: none;
292
- }
293
-
294
- .memori-widget.memori-layout-fullpage .memori--grid-column-left .memori--avatar-wrapper {
295
- position: relative;
296
- display: flex;
297
- width: 100%;
298
- height: 100%;
299
- min-height: 0;
300
- flex: 1 1 0%;
301
- align-items: stretch;
302
- justify-content: center;
303
- padding-top: 0;
304
- }
305
-
306
- .memori-widget.memori-layout-fullpage .memori--grid-column-left .memori--avatar-wrapper model-viewer,
307
- .memori-widget.memori-layout-fullpage .memori--grid-column-left .memori--avatar-wrapper canvas,
308
- .memori-widget.memori-layout-fullpage .memori--grid-column-left .memori--avatar-wrapper > div {
309
- width: 100% !important;
310
- max-width: 100%;
311
- height: 100% !important;
312
- max-height: 100%;
313
- }
314
-
315
- .memori-widget.memori-layout-fullpage .memori-chat-layout--main {
316
- display: flex;
317
- min-width: 0;
318
- height: 100%;
319
- min-height: 0;
320
- flex: 1;
321
- flex-direction: column;
322
- align-items: stretch;
323
- align-self: stretch;
324
- justify-content: stretch;
325
- }
326
-
327
- /* Artifact column — flex sibling of .memori--grid inside .memori-fullpage-content-row.
328
- Sits outside the padded grid so it spans the full content height with no padding gaps. */
329
- .memori-widget.memori-layout-fullpage .memori--grid-column-artifact {
330
- overflow: hidden;
331
- width: 0;
332
- min-width: 0;
333
- flex-shrink: 0;
334
- transition: width 0.25s ease;
335
- }
336
-
337
- .memori-widget.memori-layout-fullpage .memori--grid-column-artifact--open {
338
- width: 700px;
339
- border-left: 1px solid color-mix(in srgb, var(--memori-text-color, #111827) 10%, transparent);
340
- background: var(--memori-secondary-background);
341
- }
342
-
343
- /* Hide avatar column when artifact drawer is open.
344
- Selector updated: artifact is now a sibling of .memori--grid, not inside it. */
345
- .memori-widget.memori-layout-fullpage
346
- .memori-fullpage-content-row:has(.memori--grid-column-artifact--open)
347
- .memori--grid-column-left {
348
- display: none;
349
- }
350
-
351
- @media (max-width: 1260px) {
352
- .memori-widget.memori-layout-fullpage .memori--grid-column-artifact {
353
- display: none;
354
- }
355
- }
356
-
357
- .memori-widget.memori-layout-fullpage .memori-chat-layout--controls {
358
- display: flex;
359
- width: 100%;
360
- height: 100%;
361
- min-height: 0;
362
- max-height: 100%;
363
- flex: 1 1 0%;
364
- flex-direction: column;
365
- align-items: stretch;
366
- padding: 0;
367
- background: var(--memori-secondary-background);
368
- }
369
-
370
- .memori-widget.memori-layout-fullpage .memori-conversation-column {
371
- display: flex;
372
- width: 100%;
373
- max-width: none;
374
- min-height: 0;
375
- flex: 1 1 0%;
376
- flex-direction: column;
377
- padding-inline: 0;
378
- }
379
-
380
- .memori-widget.memori-layout-fullpage .memori-chat-layout--controls .memori--start-panel,
381
- .memori-widget.memori-layout-fullpage .memori-chat-layout--controls .memori-chat--wrapper {
382
- display: flex;
383
- width: 100%;
384
- max-width: 100%;
385
- height: 100%;
386
- min-height: 0;
387
- flex: 1 1 0%;
388
- flex-direction: column;
389
- padding: 0 !important;
390
- margin-right: 0;
391
- margin-left: 0;
392
- }
393
-
394
- /* Typography: title and description in fullpage left column */
395
- .memori-widget.memori-layout-fullpage .memori--title {
396
- margin-bottom: var(--memori-spacing-xs);
397
- color: var(--memori-text-color);
398
- font-size: var(--memori-text-size-heading-large);
399
- font-weight: var(--memori-text-weight-semibold);
400
- line-height: var(--memori-text-line-tight);
401
- }
402
-
403
- .memori-widget.memori-layout-fullpage .memori--description,
404
- .memori-widget.memori-layout-fullpage .memori--needsPosition {
405
- padding: var(--memori-spacing-lg);
406
- padding-top: var(--memori-spacing-xs);
407
- color: var(--memori-text-color);
408
- font-size: var(--memori-text-size-base);
409
- line-height: var(--memori-text-line-relaxed);
410
- }
411
-
412
- /* Fullpage: Memori brand lives in the header; no footer watermark.
413
- Input bar styles live in ChatInputs.css (layout-scoped dark pill). */
414
-
415
- /* Keep the input bar inside the chat panel, pinned to the bottom of the column */
416
- .memori-widget.memori-layout-fullpage .memori-chat-layout--controls .memori-chat--wrapper {
417
- display: flex;
418
- min-height: 0;
419
- flex: 1 1 0%;
420
- flex-direction: column;
421
- }
422
-
423
- .memori-widget.memori-layout-fullpage .memori-chat-layout--controls .memori-chat-inputs-wrapper {
424
- width: 100%;
425
- flex-shrink: 0;
426
- border: none;
427
- border-radius: 0;
428
- background: var(--memori-secondary-background);
429
- }
430
-
431
- @media (max-width: 870px) {
432
- .memori-widget.memori-layout-fullpage {
433
- padding: var(--memori-spacing-sm);
434
- }
435
- /*
436
- .memori-widget.memori-layout-fullpage > .memori-spin {
437
- height: calc(100vh - 100px);
438
- height: calc(100dvh - 100px);
439
- gap: var(--memori-spacing-md);
440
- } */
441
-
442
- .memori-widget.memori-layout-fullpage .memori-fullpage-top-header {
443
- padding: 0;
444
- margin-bottom: var(--memori-spacing-md);
445
- }
446
-
447
- .memori-widget.memori-layout-fullpage .memori--grid-column-left {
448
- display: none;
449
- }
450
-
451
- .memori-widget.memori-layout-fullpage .memori--grid {
452
- padding: var(--memori-spacing-sm);
453
- gap: var(--memori-spacing-sm);
454
- }
455
-
456
- .memori-widget.memori-layout-fullpage .memori-chat-layout--controls {
457
- padding: 0;
458
- }
459
- }
460
-
461
- @media (max-width: 480px) {
462
- .memori-widget.memori-layout-fullpage .memori-fullpage-top-header {
463
- padding: 0;
464
- }
465
-
466
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-brand-name {
467
- font-size: 1.1rem;
468
- }
469
-
470
- .memori-widget.memori-layout-fullpage .memori-chat-layout--controls {
471
- padding: 0;
472
- }
473
-
474
- .memori-widget.memori-layout-fullpage .memori--grid {
475
- padding: var(--memori-spacing-xs) var(--memori-spacing-sm);
476
- }
477
-
478
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-row,
479
- .memori-widget.memori-layout-chat .memori-fullpage-header-row {
480
- /* flex-wrap: wrap; */
481
- align-items: flex-start;
482
- }
483
-
484
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-brand,
485
- .memori-widget.memori-layout-chat .memori-fullpage-header-brand {
486
- min-width: 0;
487
- max-width: calc(100% - 6.5rem);
488
- flex: 1 1 auto;
489
- }
490
-
491
- .memori-widget.memori-layout-fullpage .memori-fullpage-header-actions {
492
- flex: 0 0 auto;
493
- justify-content: flex-end;
494
- }
495
-
496
- /* CHAT: keep agent title + toolbar on one row on small phones */
497
- .memori-widget.memori-layout-chat .memori-fullpage-header-row {
498
- flex-wrap: nowrap;
499
- align-items: center;
500
- }
501
-
502
- .memori-widget.memori-layout-chat .memori-fullpage-header-actions {
503
- min-width: 0;
504
- flex: 1 1 auto;
505
- flex-wrap: nowrap;
506
- justify-content: flex-end;
507
- -webkit-overflow-scrolling: touch;
508
- overflow-x: auto;
509
- overflow-y: hidden;
510
- }
511
-
512
- .memori-widget.memori-layout-chat .memori-fullpage-header-actions .memori-header.memori-header--fullpage {
513
- min-width: max-content;
514
- flex-shrink: 0;
515
- flex-wrap: nowrap;
516
- }
517
-
518
- .memori-widget.memori-layout-chat .memori-fullpage-header-actions .memori-icon-button,
519
- .memori-widget.memori-layout-chat .memori-fullpage-header-actions .memori-button {
520
- flex-shrink: 0;
521
- }
522
- }
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- export declare const WidgetSurfaceProvider: React.Provider<HTMLElement | null>;
3
- export declare function useWidgetSurfaceEl(): HTMLElement | null;
@@ -1,7 +0,0 @@
1
- import { createContext, useContext } from 'react';
2
- const WidgetSurfaceContext = createContext(null);
3
- export const WidgetSurfaceProvider = WidgetSurfaceContext.Provider;
4
- export function useWidgetSurfaceEl() {
5
- return useContext(WidgetSurfaceContext);
6
- }
7
- //# sourceMappingURL=widgetSurfaceContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widgetSurfaceContext.js","sourceRoot":"","sources":["../../src/context/widgetSurfaceContext.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAOzD,MAAM,oBAAoB,GAAG,aAAa,CAAqB,IAAI,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,QAAQ,CAAC;AAEnE,MAAM,UAAU,kBAAkB;IAChC,OAAO,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAC1C,CAAC"}
@@ -1 +0,0 @@
1
- export declare function shouldRestartSessionOnPositionPopoverClose(wasOpen: boolean, nextOpen: boolean, autoStart: boolean, sessionAlreadyStarted?: boolean): boolean;
@@ -1,4 +0,0 @@
1
- export function shouldRestartSessionOnPositionPopoverClose(wasOpen, nextOpen, autoStart, sessionAlreadyStarted = false) {
2
- return (wasOpen && !nextOpen && !!autoStart && !sessionAlreadyStarted);
3
- }
4
- //# sourceMappingURL=positionPopover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"positionPopover.js","sourceRoot":"","sources":["../../src/helpers/positionPopover.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,0CAA0C,CACxD,OAAgB,EAChB,QAAiB,EACjB,SAAkB,EAClB,qBAAqB,GAAG,KAAK;IAE7B,OAAO,CACL,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,qBAAqB,CAC9D,CAAC;AACJ,CAAC"}
@@ -1,13 +0,0 @@
1
- export type MuteSpeakerOptions = {
2
- defaultEnableAudio: boolean;
3
- defaultSpeakerActive: boolean;
4
- autoStart: boolean;
5
- speakerMuted: boolean;
6
- storedMute?: boolean;
7
- };
8
- export declare function getMuteSpeakerFallback(defaultEnableAudio: boolean, defaultSpeakerActive: boolean, autoStart: boolean): boolean;
9
- export declare function isSpeakerEffectivelyMuted({ defaultEnableAudio, defaultSpeakerActive, autoStart, speakerMuted, storedMute, }: MuteSpeakerOptions): boolean;
10
- export declare function shouldPlayTtsAudio({ text, preview, ...muteOptions }: MuteSpeakerOptions & {
11
- text?: string;
12
- preview?: boolean;
13
- }): boolean;
@@ -1,21 +0,0 @@
1
- export function getMuteSpeakerFallback(defaultEnableAudio, defaultSpeakerActive, autoStart) {
2
- return !defaultEnableAudio || !defaultSpeakerActive || autoStart;
3
- }
4
- export function isSpeakerEffectivelyMuted({ defaultEnableAudio, defaultSpeakerActive, autoStart, speakerMuted, storedMute, }) {
5
- if (!defaultEnableAudio)
6
- return true;
7
- if (speakerMuted)
8
- return true;
9
- if (storedMute === true)
10
- return true;
11
- if (storedMute === false)
12
- return false;
13
- return getMuteSpeakerFallback(defaultEnableAudio, defaultSpeakerActive, autoStart);
14
- }
15
- export function shouldPlayTtsAudio({ text, preview = false, ...muteOptions }) {
16
- return !!(text &&
17
- text.trim() &&
18
- !preview &&
19
- !isSpeakerEffectivelyMuted(muteOptions));
20
- }
21
- //# sourceMappingURL=muteSpeaker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"muteSpeaker.js","sourceRoot":"","sources":["../../../src/helpers/tts/muteSpeaker.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,sBAAsB,CACpC,kBAA2B,EAC3B,oBAA6B,EAC7B,SAAkB;IAElB,OAAO,CAAC,kBAAkB,IAAI,CAAC,oBAAoB,IAAI,SAAS,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,EACxC,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,YAAY,EACZ,UAAU,GACS;IACnB,IAAI,CAAC,kBAAkB;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,YAAY;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,UAAU,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,sBAAsB,CAC3B,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,GAAG,KAAK,EACf,GAAG,WAAW,EAC4C;IAC1D,OAAO,CAAC,CAAC,CACP,IAAI;QACJ,IAAI,CAAC,IAAI,EAAE;QACX,CAAC,OAAO;QACR,CAAC,yBAAyB,CAAC,WAAW,CAAC,CACxC,CAAC;AACJ,CAAC"}
@@ -1,13 +0,0 @@
1
- import { type MouseEvent, type PointerEvent } from 'react';
2
- export declare function usePressTooltip(defaultOpen?: boolean): {
3
- open: boolean;
4
- setOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
5
- pressTriggerProps: {
6
- readonly onPointerDown: (e: PointerEvent) => void;
7
- readonly onClick: (e: MouseEvent | PointerEvent) => void;
8
- };
9
- tooltipProps: {
10
- readonly open: boolean;
11
- readonly onOpenChange: import("react").Dispatch<import("react").SetStateAction<boolean>>;
12
- };
13
- };
@@ -1,20 +0,0 @@
1
- import { useCallback, useState, } from 'react';
2
- export function usePressTooltip(defaultOpen = false) {
3
- const [open, setOpen] = useState(defaultOpen);
4
- const toggleOpen = useCallback((e) => {
5
- e.stopPropagation();
6
- setOpen(prev => !prev);
7
- }, []);
8
- const pressTriggerProps = {
9
- onPointerDown: (e) => {
10
- e.stopPropagation();
11
- },
12
- onClick: toggleOpen,
13
- };
14
- const tooltipProps = {
15
- open,
16
- onOpenChange: setOpen,
17
- };
18
- return { open, setOpen, pressTriggerProps, tooltipProps };
19
- }
20
- //# sourceMappingURL=usePressTooltip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePressTooltip.js","sourceRoot":"","sources":["../../src/helpers/usePressTooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,QAAQ,GAGT,MAAM,OAAO,CAAC;AAEf,MAAM,UAAU,eAAe,CAAC,WAAW,GAAG,KAAK;IACjD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAE9C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAA4B,EAAE,EAAE;QAC9D,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,iBAAiB,GAAG;QACxB,aAAa,EAAE,CAAC,CAAe,EAAE,EAAE;YACjC,CAAC,CAAC,eAAe,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,EAAE,UAAU;KACX,CAAC;IAEX,MAAM,YAAY,GAAG;QACnB,IAAI;QACJ,YAAY,EAAE,OAAO;KACb,CAAC;IAEX,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC;AAC5D,CAAC"}
@@ -1,3 +0,0 @@
1
- import * as React from "react";
2
- declare const FacebookIcon: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
3
- export default FacebookIcon;
@@ -1,4 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- const FacebookIcon = (props) => (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: 800, height: 800, fill: "currentColor", viewBox: "0 0 24 24", ...props, children: [_jsx("path", { fill: "currentColor", d: "M17.3 9.6a1 1 0 1 0-1.6-1.2l-2.308 3.078-2.185-2.185A1 1 0 0 0 9.7 9.4l-3 4a1 1 0 0 0 1.6 1.2l2.308-3.078 2.185 2.185A1 1 0 0 0 14.3 13.6l3-4Z" }), _jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M12 23c-1.224 0-1.9-.131-3-.5l-2.106 1.053A2 2 0 0 1 4 21.763V19.5c-2.153-2.008-3-4.323-3-7.5C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11Zm-6-4.37-.636-.593C3.691 16.477 3 14.733 3 12a9 9 0 1 1 9 9c-.986 0-1.448-.089-2.364-.396l-.788-.264L6 21.764V18.63Z", clipRule: "evenodd" })] }));
3
- export default FacebookIcon;
4
- //# sourceMappingURL=FacebookIcon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FacebookIcon.js","sourceRoot":"","sources":["../../src/icons/FacebookIcon.tsx"],"names":[],"mappings":";AACA,MAAM,YAAY,GAAG,CAAC,KAAoC,EAAE,EAAE,CAAC,CAC7D,eACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,GAAG,EACX,IAAI,EAAC,cAAc,EACnB,OAAO,EAAC,WAAW,KACf,KAAK,aAET,eACE,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,gJAAgJ,GAClJ,EACF,eACE,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,uQAAuQ,EACzQ,QAAQ,EAAC,SAAS,GAClB,IACE,CACP,CAAA;AACD,eAAe,YAAY,CAAA"}
@@ -1,3 +0,0 @@
1
- import * as React from "react";
2
- declare const LinkedinIcon: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
3
- export default LinkedinIcon;
@@ -1,4 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- const LinkedinIcon = (props) => (_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: 800, height: 800, fill: "currentColor", viewBox: "0 0 24 24", ...props, children: [_jsx("path", { fill: "currentColor", d: "M6.5 8a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM5 10a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-8ZM11 19h1a1 1 0 0 0 1-1v-4.5c0-1.5 3-2.5 3-.5v5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-6c0-2-1.5-3-3.5-3S13 10.5 13 10.5V10a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1Z" }), _jsx("path", { fill: "currentColor", fillRule: "evenodd", d: "M20 1a3 3 0 0 1 3 3v16a3 3 0 0 1-3 3H4a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3h16Zm0 2a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h16Z", clipRule: "evenodd" })] }));
3
- export default LinkedinIcon;
4
- //# sourceMappingURL=LinkedinIcon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinkedinIcon.js","sourceRoot":"","sources":["../../src/icons/LinkedinIcon.tsx"],"names":[],"mappings":";AACA,MAAM,YAAY,GAAG,CAAC,KAAoC,EAAE,EAAE,CAAC,CAC7D,eACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,GAAG,EACX,IAAI,EAAC,cAAc,EACnB,OAAO,EAAC,WAAW,KACf,KAAK,aAET,eACE,IAAI,EAAC,cAAc,EACnB,CAAC,EAAC,sRAAsR,GACxR,EACF,eACE,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,iJAAiJ,EACnJ,QAAQ,EAAC,SAAS,GAClB,IACE,CACP,CAAA;AACD,eAAe,YAAY,CAAA"}
@@ -1,3 +0,0 @@
1
- import * as React from 'react';
2
- declare const MemoriIcon: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
3
- export default MemoriIcon;