@memori.ai/memori-react 1.2.1 → 2.0.1

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 (327) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/README.md +12 -2
  3. package/dist/components/AgeVerificationModal/AgeVerificationModal.css +63 -0
  4. package/dist/components/AgeVerificationModal/AgeVerificationModal.d.ts +7 -0
  5. package/dist/components/AgeVerificationModal/AgeVerificationModal.js +39 -0
  6. package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -0
  7. package/dist/components/AgeVerificationModal/AgeVerificationModal.test.d.ts +1 -0
  8. package/dist/components/AgeVerificationModal/AgeVerificationModal.test.js +27 -0
  9. package/dist/components/AgeVerificationModal/AgeVerificationModal.test.js.map +1 -0
  10. package/dist/components/AttachmentLinkModal/AttachmentLinkModal.stories.d.ts +2 -2
  11. package/dist/components/AttachmentMediaModal/AttachmentMediaModal.stories.d.ts +2 -2
  12. package/dist/components/Auth/Auth.stories.d.ts +5 -5
  13. package/dist/components/Avatar/Avatar.js +2 -2
  14. package/dist/components/Avatar/Avatar.js.map +1 -1
  15. package/dist/components/Avatar/Avatar.stories.d.ts +5 -5
  16. package/dist/components/AvatarView/AvatarView.stories.d.ts +10 -10
  17. package/dist/components/AvatarView/components/fullbodyAvatar.d.ts +2 -1
  18. package/dist/components/AvatarView/components/fullbodyAvatar.js +6 -3
  19. package/dist/components/AvatarView/components/fullbodyAvatar.js.map +1 -1
  20. package/dist/components/AvatarView/components/loader.js +3 -1
  21. package/dist/components/AvatarView/components/loader.js.map +1 -1
  22. package/dist/components/AvatarView/index.d.ts +2 -1
  23. package/dist/components/AvatarView/index.js +2 -2
  24. package/dist/components/AvatarView/index.js.map +1 -1
  25. package/dist/components/AvatarView/utils/useMouthSpeaking.js +3 -1
  26. package/dist/components/AvatarView/utils/useMouthSpeaking.js.map +1 -1
  27. package/dist/components/Blob/Blob.stories.d.ts +4 -4
  28. package/dist/components/BlockedMemoriBadge/BlockedMemoriBadge.stories.d.ts +5 -5
  29. package/dist/components/ChangeMode/ChangeMode.stories.d.ts +3 -3
  30. package/dist/components/Chat/Chat.stories.d.ts +12 -12
  31. package/dist/components/ChatBubble/ChatBubble.css +1 -2
  32. package/dist/components/ChatBubble/ChatBubble.stories.d.ts +7 -7
  33. package/dist/components/ChatInputs/ChatInputs.css +17 -6
  34. package/dist/components/ChatInputs/ChatInputs.js +2 -1
  35. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  36. package/dist/components/ChatInputs/ChatInputs.stories.d.ts +9 -9
  37. package/dist/components/ChatTextArea/ChatTextArea.stories.d.ts +4 -4
  38. package/dist/components/CustomGLBModelViewer/ModelViewer.stories.d.ts +2 -2
  39. package/dist/components/DateSelector/DateSelector.css +135 -0
  40. package/dist/components/DateSelector/DateSelector.d.ts +9 -0
  41. package/dist/components/DateSelector/DateSelector.js +61 -0
  42. package/dist/components/DateSelector/DateSelector.js.map +1 -0
  43. package/dist/components/DateSelector/DateSelector.test.d.ts +1 -0
  44. package/dist/components/DateSelector/DateSelector.test.js +24 -0
  45. package/dist/components/DateSelector/DateSelector.test.js.map +1 -0
  46. package/dist/components/ExportHistoryButton/ExportHistoryButton.stories.d.ts +5 -5
  47. package/dist/components/FeedbackButtons/FeedbackButtons.stories.d.ts +4 -4
  48. package/dist/components/Header/Header.d.ts +1 -0
  49. package/dist/components/Header/Header.js +26 -2
  50. package/dist/components/Header/Header.js.map +1 -1
  51. package/dist/components/Header/Header.stories.d.ts +7 -7
  52. package/dist/components/ImageUpload/ImageUpload.css +2 -2
  53. package/dist/components/ImageUpload/ImageUpload.stories.d.ts +8 -8
  54. package/dist/components/MediaWidget/LinkItemWidget.d.ts +2 -1
  55. package/dist/components/MediaWidget/LinkItemWidget.js +10 -2
  56. package/dist/components/MediaWidget/LinkItemWidget.js.map +1 -1
  57. package/dist/components/MediaWidget/LinkItemWidget.stories.d.ts +2 -2
  58. package/dist/components/MediaWidget/MediaItemWidget.css +67 -0
  59. package/dist/components/MediaWidget/MediaItemWidget.d.ts +3 -1
  60. package/dist/components/MediaWidget/MediaItemWidget.js +44 -72
  61. package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
  62. package/dist/components/MediaWidget/MediaItemWidget.stories.d.ts +3 -3
  63. package/dist/components/MediaWidget/MediaWidget.css +13 -4
  64. package/dist/components/MediaWidget/MediaWidget.js +10 -7
  65. package/dist/components/MediaWidget/MediaWidget.js.map +1 -1
  66. package/dist/components/MediaWidget/MediaWidget.stories.d.ts +5 -5
  67. package/dist/components/MemoriWidget/MemoriWidget.css +1 -23
  68. package/dist/components/MemoriWidget/MemoriWidget.d.ts +3 -2
  69. package/dist/components/MemoriWidget/MemoriWidget.js +92 -25
  70. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  71. package/dist/components/MemoriWidget/MemoriWidget.stories.d.ts +8 -8
  72. package/dist/components/PoweredBy/PoweredBy.css +45 -0
  73. package/dist/components/PoweredBy/PoweredBy.stories.d.ts +4 -4
  74. package/dist/components/SendOnEnterMenu/SendOnEnterMenu.stories.d.ts +3 -3
  75. package/dist/components/SettingsDrawer/SettingsDrawer.css +5 -0
  76. package/dist/components/SettingsDrawer/SettingsDrawer.d.ts +13 -0
  77. package/dist/components/SettingsDrawer/SettingsDrawer.js +27 -0
  78. package/dist/components/SettingsDrawer/SettingsDrawer.js.map +1 -0
  79. package/dist/components/SettingsDrawer/SettingsDrawer.test.d.ts +1 -0
  80. package/dist/components/SettingsDrawer/SettingsDrawer.test.js +27 -0
  81. package/dist/components/SettingsDrawer/SettingsDrawer.test.js.map +1 -0
  82. package/dist/components/ShareButton/ShareButton.stories.d.ts +4 -4
  83. package/dist/components/Snippet/Snippet.stories.d.ts +15 -15
  84. package/dist/components/StartPanel/StartPanel.css +11 -5
  85. package/dist/components/StartPanel/StartPanel.d.ts +1 -1
  86. package/dist/components/StartPanel/StartPanel.js +10 -7
  87. package/dist/components/StartPanel/StartPanel.js.map +1 -1
  88. package/dist/components/StartPanel/StartPanel.stories.d.ts +6 -6
  89. package/dist/components/StartPanel/StartPanel.test.js +7 -0
  90. package/dist/components/StartPanel/StartPanel.test.js.map +1 -1
  91. package/dist/components/UploadMenu/UploadMenu.stories.d.ts +4 -4
  92. package/dist/components/icons/Refresh.d.ts +5 -0
  93. package/dist/components/icons/Refresh.js +6 -0
  94. package/dist/components/icons/Refresh.js.map +1 -0
  95. package/dist/components/icons/SelectIcon.d.ts +5 -0
  96. package/dist/components/icons/SelectIcon.js +6 -0
  97. package/dist/components/icons/SelectIcon.js.map +1 -0
  98. package/dist/components/icons/icons.stories.d.ts +2 -2
  99. package/dist/components/layouts/FullPage.d.ts +17 -0
  100. package/dist/components/layouts/FullPage.js +8 -0
  101. package/dist/components/layouts/FullPage.js.map +1 -0
  102. package/dist/components/layouts/FullPage.test.d.ts +1 -0
  103. package/dist/components/layouts/FullPage.test.js +12 -0
  104. package/dist/components/layouts/FullPage.test.js.map +1 -0
  105. package/dist/components/layouts/Totem.d.ts +17 -0
  106. package/dist/components/layouts/Totem.js +8 -0
  107. package/dist/components/layouts/Totem.js.map +1 -0
  108. package/dist/components/layouts/Totem.test.d.ts +1 -0
  109. package/dist/components/layouts/Totem.test.js +12 -0
  110. package/dist/components/layouts/Totem.test.js.map +1 -0
  111. package/dist/components/layouts/totem.css +148 -0
  112. package/dist/components/ui/Button.css +4 -10
  113. package/dist/components/ui/Button.stories.d.ts +14 -14
  114. package/dist/components/ui/Card.stories.d.ts +7 -7
  115. package/dist/components/ui/Checkbox.css +1 -5
  116. package/dist/components/ui/Checkbox.d.ts +2 -0
  117. package/dist/components/ui/Checkbox.js +2 -2
  118. package/dist/components/ui/Checkbox.js.map +1 -1
  119. package/dist/components/ui/Checkbox.stories.d.ts +5 -5
  120. package/dist/components/ui/Drawer.css +24 -2
  121. package/dist/components/ui/Drawer.stories.d.ts +9 -9
  122. package/dist/components/ui/Modal.stories.d.ts +9 -9
  123. package/dist/components/ui/Select.css +135 -0
  124. package/dist/components/ui/Select.d.ts +15 -0
  125. package/dist/components/ui/Select.js +17 -0
  126. package/dist/components/ui/Select.js.map +1 -0
  127. package/dist/components/ui/Select.test.d.ts +1 -0
  128. package/dist/components/ui/Select.test.js +47 -0
  129. package/dist/components/ui/Select.test.js.map +1 -0
  130. package/dist/components/ui/Spin.css +2 -0
  131. package/dist/components/ui/Spin.stories.d.ts +4 -4
  132. package/dist/components/ui/Tooltip.stories.d.ts +6 -6
  133. package/dist/components/ui/definitions.stories.d.ts +2 -3
  134. package/dist/helpers/configuration.js +2 -0
  135. package/dist/helpers/configuration.js.map +1 -1
  136. package/dist/helpers/utils.js +1 -1
  137. package/dist/helpers/utils.js.map +1 -1
  138. package/dist/index.d.ts +2 -0
  139. package/dist/index.js +2 -2
  140. package/dist/index.js.map +1 -1
  141. package/dist/index.stories.d.ts +2 -2
  142. package/dist/locales/en.json +17 -0
  143. package/dist/locales/it.json +17 -0
  144. package/dist/mocks/data.js +5 -2
  145. package/dist/mocks/data.js.map +1 -1
  146. package/dist/styles.css +51 -1
  147. package/esm/components/AgeVerificationModal/AgeVerificationModal.css +63 -0
  148. package/esm/components/AgeVerificationModal/AgeVerificationModal.d.ts +7 -0
  149. package/esm/components/AgeVerificationModal/AgeVerificationModal.js +36 -0
  150. package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -0
  151. package/esm/components/AgeVerificationModal/AgeVerificationModal.test.d.ts +1 -0
  152. package/esm/components/AgeVerificationModal/AgeVerificationModal.test.js +24 -0
  153. package/esm/components/AgeVerificationModal/AgeVerificationModal.test.js.map +1 -0
  154. package/esm/components/Avatar/Avatar.js +2 -2
  155. package/esm/components/Avatar/Avatar.js.map +1 -1
  156. package/esm/components/AvatarView/components/fullbodyAvatar.d.ts +2 -1
  157. package/esm/components/AvatarView/components/fullbodyAvatar.js +7 -4
  158. package/esm/components/AvatarView/components/fullbodyAvatar.js.map +1 -1
  159. package/esm/components/AvatarView/components/loader.js +2 -1
  160. package/esm/components/AvatarView/components/loader.js.map +1 -1
  161. package/esm/components/AvatarView/index.d.ts +2 -1
  162. package/esm/components/AvatarView/index.js +2 -2
  163. package/esm/components/AvatarView/index.js.map +1 -1
  164. package/esm/components/AvatarView/utils/useMouthSpeaking.js +3 -1
  165. package/esm/components/AvatarView/utils/useMouthSpeaking.js.map +1 -1
  166. package/esm/components/ChatBubble/ChatBubble.css +1 -2
  167. package/esm/components/ChatInputs/ChatInputs.css +17 -6
  168. package/esm/components/ChatInputs/ChatInputs.js +2 -1
  169. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  170. package/esm/components/DateSelector/DateSelector.css +135 -0
  171. package/esm/components/DateSelector/DateSelector.d.ts +9 -0
  172. package/esm/components/DateSelector/DateSelector.js +58 -0
  173. package/esm/components/DateSelector/DateSelector.js.map +1 -0
  174. package/esm/components/DateSelector/DateSelector.test.d.ts +1 -0
  175. package/esm/components/DateSelector/DateSelector.test.js +21 -0
  176. package/esm/components/DateSelector/DateSelector.test.js.map +1 -0
  177. package/esm/components/Header/Header.d.ts +1 -0
  178. package/esm/components/Header/Header.js +26 -2
  179. package/esm/components/Header/Header.js.map +1 -1
  180. package/esm/components/ImageUpload/ImageUpload.css +2 -2
  181. package/esm/components/MediaWidget/LinkItemWidget.d.ts +2 -1
  182. package/esm/components/MediaWidget/LinkItemWidget.js +10 -2
  183. package/esm/components/MediaWidget/LinkItemWidget.js.map +1 -1
  184. package/esm/components/MediaWidget/MediaItemWidget.css +67 -0
  185. package/esm/components/MediaWidget/MediaItemWidget.d.ts +3 -1
  186. package/esm/components/MediaWidget/MediaItemWidget.js +44 -72
  187. package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
  188. package/esm/components/MediaWidget/MediaWidget.css +13 -4
  189. package/esm/components/MediaWidget/MediaWidget.js +11 -8
  190. package/esm/components/MediaWidget/MediaWidget.js.map +1 -1
  191. package/esm/components/MemoriWidget/MemoriWidget.css +1 -23
  192. package/esm/components/MemoriWidget/MemoriWidget.d.ts +3 -2
  193. package/esm/components/MemoriWidget/MemoriWidget.js +92 -25
  194. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  195. package/esm/components/PoweredBy/PoweredBy.css +45 -0
  196. package/esm/components/SettingsDrawer/SettingsDrawer.css +5 -0
  197. package/esm/components/SettingsDrawer/SettingsDrawer.d.ts +13 -0
  198. package/esm/components/SettingsDrawer/SettingsDrawer.js +24 -0
  199. package/esm/components/SettingsDrawer/SettingsDrawer.js.map +1 -0
  200. package/esm/components/SettingsDrawer/SettingsDrawer.test.d.ts +1 -0
  201. package/esm/components/SettingsDrawer/SettingsDrawer.test.js +24 -0
  202. package/esm/components/SettingsDrawer/SettingsDrawer.test.js.map +1 -0
  203. package/esm/components/StartPanel/StartPanel.css +11 -5
  204. package/esm/components/StartPanel/StartPanel.d.ts +1 -1
  205. package/esm/components/StartPanel/StartPanel.js +10 -7
  206. package/esm/components/StartPanel/StartPanel.js.map +1 -1
  207. package/esm/components/StartPanel/StartPanel.test.js +7 -0
  208. package/esm/components/StartPanel/StartPanel.test.js.map +1 -1
  209. package/esm/components/icons/Refresh.d.ts +5 -0
  210. package/esm/components/icons/Refresh.js +4 -0
  211. package/esm/components/icons/Refresh.js.map +1 -0
  212. package/esm/components/icons/SelectIcon.d.ts +5 -0
  213. package/esm/components/icons/SelectIcon.js +4 -0
  214. package/esm/components/icons/SelectIcon.js.map +1 -0
  215. package/esm/components/layouts/FullPage.d.ts +17 -0
  216. package/esm/components/layouts/FullPage.js +5 -0
  217. package/esm/components/layouts/FullPage.js.map +1 -0
  218. package/esm/components/layouts/FullPage.test.d.ts +1 -0
  219. package/esm/components/layouts/FullPage.test.js +9 -0
  220. package/esm/components/layouts/FullPage.test.js.map +1 -0
  221. package/esm/components/layouts/Totem.d.ts +17 -0
  222. package/esm/components/layouts/Totem.js +5 -0
  223. package/esm/components/layouts/Totem.js.map +1 -0
  224. package/esm/components/layouts/Totem.test.d.ts +1 -0
  225. package/esm/components/layouts/Totem.test.js +9 -0
  226. package/esm/components/layouts/Totem.test.js.map +1 -0
  227. package/esm/components/layouts/totem.css +148 -0
  228. package/esm/components/ui/Button.css +4 -10
  229. package/esm/components/ui/Checkbox.css +1 -5
  230. package/esm/components/ui/Checkbox.d.ts +2 -0
  231. package/esm/components/ui/Checkbox.js +2 -2
  232. package/esm/components/ui/Checkbox.js.map +1 -1
  233. package/esm/components/ui/Drawer.css +24 -2
  234. package/esm/components/ui/Select.css +135 -0
  235. package/esm/components/ui/Select.d.ts +15 -0
  236. package/esm/components/ui/Select.js +14 -0
  237. package/esm/components/ui/Select.js.map +1 -0
  238. package/esm/components/ui/Select.test.d.ts +1 -0
  239. package/esm/components/ui/Select.test.js +44 -0
  240. package/esm/components/ui/Select.test.js.map +1 -0
  241. package/esm/components/ui/Spin.css +2 -0
  242. package/esm/helpers/configuration.js +2 -0
  243. package/esm/helpers/configuration.js.map +1 -1
  244. package/esm/helpers/utils.js +1 -1
  245. package/esm/helpers/utils.js.map +1 -1
  246. package/esm/index.d.ts +2 -0
  247. package/esm/index.js +2 -2
  248. package/esm/index.js.map +1 -1
  249. package/esm/locales/en.json +17 -0
  250. package/esm/locales/it.json +17 -0
  251. package/esm/mocks/data.js +5 -2
  252. package/esm/mocks/data.js.map +1 -1
  253. package/esm/styles.css +51 -1
  254. package/package.json +21 -18
  255. package/src/components/AgeVerificationModal/AgeVerificationModal.css +63 -0
  256. package/src/components/AgeVerificationModal/AgeVerificationModal.stories.tsx +41 -0
  257. package/src/components/AgeVerificationModal/AgeVerificationModal.test.tsx +33 -0
  258. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +89 -0
  259. package/src/components/AgeVerificationModal/__snapshots__/AgeVerificationModal.test.tsx.snap +19 -0
  260. package/src/components/Avatar/Avatar.stories.tsx +20 -1
  261. package/src/components/Avatar/Avatar.tsx +2 -1
  262. package/src/components/Avatar/__snapshots__/Avatar.test.tsx.snap +2 -2
  263. package/src/components/AvatarView/AvatarView.stories.tsx +31 -0
  264. package/src/components/AvatarView/components/fullbodyAvatar.tsx +8 -6
  265. package/src/components/AvatarView/components/loader.tsx +15 -12
  266. package/src/components/AvatarView/index.tsx +4 -1
  267. package/src/components/AvatarView/utils/useMouthSpeaking.ts +3 -1
  268. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +67 -67
  269. package/src/components/ChatBubble/ChatBubble.css +1 -2
  270. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +4 -4
  271. package/src/components/ChatInputs/ChatInputs.css +14 -3
  272. package/src/components/ChatInputs/ChatInputs.tsx +2 -0
  273. package/src/components/ChatInputs/__snapshots__/ChatInputs.test.tsx.snap +5 -5
  274. package/src/components/DateSelector/DateSelector.css +135 -0
  275. package/src/components/DateSelector/DateSelector.stories.tsx +34 -0
  276. package/src/components/DateSelector/DateSelector.test.tsx +38 -0
  277. package/src/components/DateSelector/DateSelector.tsx +203 -0
  278. package/src/components/DateSelector/__snapshots__/DateSelector.test.tsx.snap +14938 -0
  279. package/src/components/Header/Header.stories.tsx +23 -5
  280. package/src/components/Header/Header.tsx +47 -1
  281. package/src/components/MediaWidget/LinkItemWidget.tsx +20 -1
  282. package/src/components/MediaWidget/MediaItemWidget.css +67 -0
  283. package/src/components/MediaWidget/MediaItemWidget.tsx +72 -71
  284. package/src/components/MediaWidget/MediaWidget.css +9 -0
  285. package/src/components/MediaWidget/MediaWidget.stories.tsx +8 -0
  286. package/src/components/MediaWidget/MediaWidget.tsx +44 -27
  287. package/src/components/MediaWidget/__snapshots__/MediaItemWidget.test.tsx.snap +1 -1
  288. package/src/components/MemoriWidget/MemoriWidget.css +1 -1
  289. package/src/components/MemoriWidget/MemoriWidget.stories.tsx +12 -0
  290. package/src/components/MemoriWidget/MemoriWidget.tsx +178 -33
  291. package/src/components/SettingsDrawer/SettingsDrawer.css +5 -0
  292. package/src/components/SettingsDrawer/SettingsDrawer.stories.tsx +57 -0
  293. package/src/components/SettingsDrawer/SettingsDrawer.test.tsx +61 -0
  294. package/src/components/SettingsDrawer/SettingsDrawer.tsx +108 -0
  295. package/src/components/SettingsDrawer/__snapshots__/SettingsDrawer.test.tsx.snap +19 -0
  296. package/src/components/StartPanel/StartPanel.css +8 -2
  297. package/src/components/StartPanel/StartPanel.stories.tsx +66 -2
  298. package/src/components/StartPanel/StartPanel.test.tsx +21 -0
  299. package/src/components/StartPanel/StartPanel.tsx +28 -23
  300. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +420 -67
  301. package/src/components/icons/Refresh.tsx +30 -0
  302. package/src/components/icons/SelectIcon.tsx +28 -0
  303. package/src/components/layouts/FullPage.test.tsx +17 -0
  304. package/src/components/layouts/{Default.tsx → FullPage.tsx} +2 -2
  305. package/src/components/layouts/Totem.test.tsx +17 -0
  306. package/src/components/layouts/Totem.tsx +52 -0
  307. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +391 -0
  308. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +422 -0
  309. package/src/components/layouts/layouts.stories.tsx +155 -0
  310. package/src/components/layouts/totem.css +148 -0
  311. package/src/components/ui/Button.css +4 -0
  312. package/src/components/ui/Checkbox.tsx +6 -0
  313. package/src/components/ui/Drawer.css +24 -2
  314. package/src/components/ui/Select.css +135 -0
  315. package/src/components/ui/Select.stories.tsx +79 -0
  316. package/src/components/ui/Select.test.tsx +84 -0
  317. package/src/components/ui/Select.tsx +73 -0
  318. package/src/components/ui/Spin.css +2 -0
  319. package/src/components/ui/__snapshots__/Select.test.tsx.snap +278 -0
  320. package/src/helpers/configuration.ts +4 -2
  321. package/src/helpers/utils.ts +3 -2
  322. package/src/index.stories.tsx +41 -1
  323. package/src/index.tsx +7 -2
  324. package/src/locales/en.json +17 -0
  325. package/src/locales/it.json +17 -0
  326. package/src/mocks/data.ts +5 -2
  327. package/src/styles.css +24 -2
@@ -18,13 +18,16 @@ const Header_1 = tslib_1.__importDefault(require("../Header/Header"));
18
18
  const AttachmentMediaModal_1 = tslib_1.__importDefault(require("../AttachmentMediaModal/AttachmentMediaModal"));
19
19
  const AttachmentLinkModal_1 = tslib_1.__importDefault(require("../AttachmentLinkModal/AttachmentLinkModal"));
20
20
  const PoweredBy_1 = tslib_1.__importDefault(require("../PoweredBy/PoweredBy"));
21
- const Default_1 = tslib_1.__importDefault(require("../layouts/Default"));
21
+ const FullPage_1 = tslib_1.__importDefault(require("../layouts/FullPage"));
22
+ const Totem_1 = tslib_1.__importDefault(require("../layouts/Totem"));
22
23
  const translations_1 = require("../../helpers/translations");
23
24
  const configuration_1 = require("../../helpers/configuration");
24
25
  const utils_1 = require("../../helpers/utils");
25
26
  const constants_1 = require("../../helpers/constants");
26
27
  const error_1 = require("../../helpers/error");
27
28
  const statistics_1 = require("../../helpers/statistics");
29
+ const AgeVerificationModal_1 = tslib_1.__importDefault(require("../AgeVerificationModal/AgeVerificationModal"));
30
+ const SettingsDrawer_1 = tslib_1.__importDefault(require("../SettingsDrawer/SettingsDrawer"));
28
31
  const getMemoriState = (integrationId) => {
29
32
  var _a, _b, _c, _d, _f;
30
33
  let widget = integrationId
@@ -77,13 +80,12 @@ const typeMessage = (message) => {
77
80
  };
78
81
  window.getMemoriState = getMemoriState;
79
82
  window.typeMessage = typeMessage;
80
- const silenceSeconds = [2, 3, 5, 10, 15, 20, 30, 60];
81
83
  let recognizer;
82
84
  let speechConfig;
83
85
  let speechSynthesizer;
84
86
  let audioDestination;
85
87
  let audioContext;
86
- const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInstruct = false, showShare = true, preview = false, embed = false, showInputs = true, showDates = false, showContextPerLine = false, showSettings = false, height = '100vh', secret, baseUrl = 'https://app.twincreator.com', apiUrl = 'https://backend.memori.ai', initialContextVars, initialQuestion, ogImage, sessionID: initialSessionID, tenant, personification, authToken, AZURE_COGNITIVE_SERVICES_TTS_KEY, onStateChange, }) => {
88
+ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, layout = 'DEFAULT', showInstruct = false, showShare = true, preview = false, embed = false, showInputs = true, showDates = false, showContextPerLine = false, showSettings = true, height = '100vh', secret, baseUrl = 'https://app.twincreator.com', apiUrl = 'https://backend.memori.ai', initialContextVars, initialQuestion, ogImage, sessionID: initialSessionID, tenant, personification, authToken, AZURE_COGNITIVE_SERVICES_TTS_KEY, onStateChange, }) => {
87
89
  var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _t, _u, _v;
88
90
  const { t, i18n } = (0, react_i18next_1.useTranslation)();
89
91
  const [isClient, setIsClient] = (0, react_1.useState)(false);
@@ -92,7 +94,6 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
92
94
  }, []);
93
95
  const client = (0, memori_api_client_1.default)(apiUrl);
94
96
  const { initSession, postTextEnteredEvent, postPlaceChangedEvent, postTimeoutEvent, postTagChangedEvent, getSession, getContentQualityIndexes, } = client;
95
- const { uploadAsset, getUploadAssetURL, deleteAsset } = client.backend;
96
97
  const [instruct, setInstruct] = (0, react_1.useState)(false);
97
98
  const [clickedStart, setClickedStart] = (0, react_1.useState)(false);
98
99
  const [gotErrorInOpening, setGotErrorInOpening] = (0, react_1.useState)(false);
@@ -104,21 +105,24 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
104
105
  const isMultilanguageEnabled = !!(integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.multilanguage);
105
106
  const [loading, setLoading] = (0, react_1.useState)(false);
106
107
  const [memoriTyping, setMemoriTyping] = (0, react_1.useState)(false);
108
+ const selectedLayout = layout || (integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.layout) || 'DEFAULT';
107
109
  const [hasUserActivatedSpeak, setHasUserActivatedSpeak] = (0, react_1.useState)(false);
108
110
  const [hasUserActivatedListening, setHasUserActivatedListening] = (0, react_1.useState)(false);
109
111
  const [showPositionDrawer, setShowPositionDrawer] = (0, react_1.useState)(false);
110
112
  const [showSettingsDrawer, setShowSettingsDrawer] = (0, react_1.useState)(false);
111
113
  const [muteSpeaker, setMuteSpeaker] = (0, react_1.useState)(false);
112
114
  const [continuousSpeech, setContinuousSpeech] = (0, react_1.useState)(true);
113
- const [continuousSpeechTimeout, setContinuousSpeechTimeout] = (0, react_1.useState)(3);
115
+ const [continuousSpeechTimeout, setContinuousSpeechTimeout] = (0, react_1.useState)(2);
114
116
  const [isPlayingAudio, setIsPlayingAudio] = (0, react_1.useState)(false);
117
+ const [controlsPosition, setControlsPosition] = (0, react_1.useState)('center');
115
118
  (0, react_1.useEffect)(() => {
116
119
  setIsPlayingAudio(!!speechSynthesizer);
117
120
  }, [speechSynthesizer]);
118
121
  (0, react_1.useEffect)(() => {
119
122
  setMuteSpeaker((0, configuration_1.getLocalConfig)('muteSpeaker', false));
120
123
  setContinuousSpeech((0, configuration_1.getLocalConfig)('continuousSpeech', true));
121
- setContinuousSpeechTimeout((0, configuration_1.getLocalConfig)('continuousSpeechTimeout', 3));
124
+ setContinuousSpeechTimeout((0, configuration_1.getLocalConfig)('continuousSpeechTimeout', 2));
125
+ setControlsPosition((0, configuration_1.getLocalConfig)('controlsPosition', 'center'));
122
126
  }, []);
123
127
  const [memoriPwd, setMemoriPwd] = (0, react_1.useState)(secret);
124
128
  const [memoriTokens, setMemoriTokens] = (0, react_1.useState)();
@@ -328,6 +332,15 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
328
332
  }
329
333
  return translatedState;
330
334
  };
335
+ const minAge = memori.ageRestriction
336
+ ? memori.ageRestriction
337
+ : memori.nsfw
338
+ ? 18
339
+ : memori.enableCompletions
340
+ ? 14
341
+ : 0;
342
+ const [birthDate, setBirthDate] = (0, react_1.useState)();
343
+ const [showAgeVerification, setShowAgeVerification] = (0, react_1.useState)(false);
331
344
  const [sessionId, setSessionId] = (0, react_1.useState)(initialSessionID);
332
345
  const [currentDialogState, _setCurrentDialogState] = (0, react_1.useState)();
333
346
  const setCurrentDialogState = (state) => {
@@ -345,6 +358,11 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
345
358
  setAuthModalState('password');
346
359
  return;
347
360
  }
361
+ let storageBirthDate = (0, configuration_1.getLocalConfig)('birthDate', undefined);
362
+ if (!(birthDate || storageBirthDate) && !!minAge) {
363
+ setShowAgeVerification(true);
364
+ return;
365
+ }
348
366
  setLoading(true);
349
367
  try {
350
368
  if (!memori.giverTag && !!((_a = memori.receivedInvitations) === null || _a === void 0 ? void 0 : _a.length)) {
@@ -367,6 +385,11 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
367
385
  sessionID: session.sessionID,
368
386
  };
369
387
  }
388
+ else if (session === null || session === void 0 ? void 0 : session.resultMessage.startsWith('This Memori is aged restricted')) {
389
+ console.error(session);
390
+ Message_1.default.error(t('underageTwinSession', { age: minAge }));
391
+ setGotErrorInOpening(true);
392
+ }
370
393
  else {
371
394
  console.error(session);
372
395
  Message_1.default.error(t((0, error_1.getErrori18nKey)(session === null || session === void 0 ? void 0 : session.resultCode)));
@@ -378,10 +401,11 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
378
401
  new Error('Error fetching session');
379
402
  }
380
403
  };
381
- const reopenSession = async (updateDialogState = false, password, recoveryTokens, tag, pin, initialContextVars, initialQuestion) => {
404
+ const reopenSession = async (updateDialogState = false, password, recoveryTokens, tag, pin, initialContextVars, initialQuestion, birthDate) => {
382
405
  var _a;
383
406
  setLoading(true);
384
407
  try {
408
+ let storageBirthDate = (0, configuration_1.getLocalConfig)('birthDate', undefined);
385
409
  const { sessionID, currentState, ...response } = await initSession({
386
410
  memoriID: (_a = memori.engineMemoriID) !== null && _a !== void 0 ? _a : '',
387
411
  password,
@@ -390,6 +414,7 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
390
414
  pin,
391
415
  initialContextVars,
392
416
  initialQuestion,
417
+ birthDate: birthDate || storageBirthDate || undefined,
393
418
  });
394
419
  if (sessionID && currentState && response.resultCode === 0) {
395
420
  setSessionId(sessionID);
@@ -419,6 +444,11 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
419
444
  sessionID,
420
445
  };
421
446
  }
447
+ else if (response === null || response === void 0 ? void 0 : response.resultMessage.startsWith('This Memori is aged restricted')) {
448
+ console.error(response);
449
+ Message_1.default.error(t('underageTwinSession', { age: minAge }));
450
+ setGotErrorInOpening(true);
451
+ }
422
452
  else {
423
453
  console.error(response);
424
454
  Message_1.default.error(t((0, error_1.getErrori18nKey)(response.resultCode)));
@@ -462,6 +492,7 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
462
492
  }
463
493
  else if ([400, 401, 403, 404, 500].includes(resultCode)) {
464
494
  console.warn('[APPCONTEXT/CHANGETAG]', resultCode);
495
+ let storageBirthDate = (0, configuration_1.getLocalConfig)('birthDate', undefined);
465
496
  fetchSession({
466
497
  memoriID: (_a = memori.engineMemoriID) !== null && _a !== void 0 ? _a : '',
467
498
  password: secret || memori.secretToken,
@@ -469,6 +500,7 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
469
500
  pin: memori.giverPIN,
470
501
  initialContextVars,
471
502
  initialQuestion,
503
+ birthDate: birthDate || storageBirthDate || undefined,
472
504
  });
473
505
  }
474
506
  else if (!!currentState) {
@@ -749,6 +781,7 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
749
781
  const speak = (text) => {
750
782
  if (!AZURE_COGNITIVE_SERVICES_TTS_KEY)
751
783
  return;
784
+ stopListening();
752
785
  if (preview)
753
786
  return;
754
787
  if (muteSpeaker) {
@@ -757,9 +790,6 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
757
790
  }
758
791
  return;
759
792
  }
760
- if (listening) {
761
- stopListening();
762
- }
763
793
  if (audioDestination)
764
794
  audioDestination.pause();
765
795
  let isSafari = window.navigator.userAgent.includes('Safari') &&
@@ -814,9 +844,7 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
814
844
  audioDestination.onAudioEnd = () => {
815
845
  setIsPlayingAudio(false);
816
846
  source.disconnect();
817
- if (continuousSpeech) {
818
- document.dispatchEvent(new Event('endSpeakStartListen'));
819
- }
847
+ onEndSpeakStartListen();
820
848
  };
821
849
  setIsPlayingAudio(true);
822
850
  speechSynthesizer.speakSsmlAsync(`<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xmlns:emo="http://www.w3.org/2009/10/emotionml" xml:lang="${getCultureCodeByLanguage(userLang)}"><voice name="${getTTSVoice(userLang)}"><s>${replaceTextWithPhonemes(text, userLang.toLowerCase())}</s></voice></speak>`, result => {
@@ -944,6 +972,8 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
944
972
  recognizer = new speechSdk.SpeechRecognizer(speechConfig, audioConfig);
945
973
  setListening(true);
946
974
  recognizer.recognized = (_s, e) => {
975
+ if (!e.result.text)
976
+ return;
947
977
  if (e.result.reason === speechSdk.ResultReason.RecognizedSpeech) {
948
978
  let transcript = e.result.text;
949
979
  setTranscript(transcript || '');
@@ -1017,7 +1047,10 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1017
1047
  }
1018
1048
  }, [continuousSpeech, hasUserActivatedListening]);
1019
1049
  (0, react_1.useEffect)(() => {
1020
- if (!isPlayingAudio && continuousSpeech && hasUserActivatedListening)
1050
+ if (history.length > 1 &&
1051
+ !isPlayingAudio &&
1052
+ continuousSpeech &&
1053
+ (hasUserActivatedListening || !requestedListening))
1021
1054
  startListening();
1022
1055
  else if (isPlayingAudio && listening) {
1023
1056
  stopListening();
@@ -1097,8 +1130,10 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1097
1130
  : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showAIicon;
1098
1131
  const [avatar3dVisible, setAvatar3dVisible] = (0, react_1.useState)(false);
1099
1132
  (0, react_1.useEffect)(() => {
1100
- if (window.innerWidth >= 768)
1133
+ if ((window.innerWidth >= 768 && selectedLayout === 'FULLPAGE') ||
1134
+ selectedLayout !== 'FULLPAGE') {
1101
1135
  setAvatar3dVisible(true);
1136
+ }
1102
1137
  }, []);
1103
1138
  const [gamificationLevel, setGamificationLevel] = (0, react_1.useState)();
1104
1139
  const getGamificationPoints = async (memoriID) => {
@@ -1208,6 +1243,7 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1208
1243
  };
1209
1244
  const simulateUserPrompt = (text, translatedText) => {
1210
1245
  stopListening();
1246
+ stopAudio();
1211
1247
  sendMessage(text, undefined, undefined, false, translatedText);
1212
1248
  };
1213
1249
  const onClickStart = async (session) => {
@@ -1223,6 +1259,8 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1223
1259
  console.error('error playing intro audio', e);
1224
1260
  });
1225
1261
  }
1262
+ let storageBirthDate = (0, configuration_1.getLocalConfig)('birthDate', undefined);
1263
+ let birth = birthDate || storageBirthDate || undefined;
1226
1264
  if ((!sessionID &&
1227
1265
  memori.privacyType !== 'PUBLIC' &&
1228
1266
  !memori.secretToken &&
@@ -1233,6 +1271,10 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1233
1271
  setClickedStart(false);
1234
1272
  return;
1235
1273
  }
1274
+ else if (!sessionID && !!minAge && !birth) {
1275
+ setShowAgeVerification(true);
1276
+ setClickedStart(false);
1277
+ }
1236
1278
  else if (!sessionID) {
1237
1279
  setClickedStart(false);
1238
1280
  setGotErrorInOpening(false);
@@ -1243,6 +1285,7 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1243
1285
  pin: personification === null || personification === void 0 ? void 0 : personification.pin,
1244
1286
  initialContextVars,
1245
1287
  initialQuestion,
1288
+ birthDate: birth,
1246
1289
  });
1247
1290
  if (session === null || session === void 0 ? void 0 : session.dialogState) {
1248
1291
  setHistory([]);
@@ -1297,7 +1340,7 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1297
1340
  }
1298
1341
  catch (e) {
1299
1342
  console.error('session #2', e);
1300
- reopenSession(true, memori === null || memori === void 0 ? void 0 : memori.secretToken, undefined, memori === null || memori === void 0 ? void 0 : memori.giverTag, memori === null || memori === void 0 ? void 0 : memori.giverPIN, initialContextVars, initialQuestion).then(() => {
1343
+ reopenSession(true, memori === null || memori === void 0 ? void 0 : memori.secretToken, undefined, memori === null || memori === void 0 ? void 0 : memori.giverTag, memori === null || memori === void 0 ? void 0 : memori.giverPIN, initialContextVars, initialQuestion, birth).then(() => {
1301
1344
  setHasUserActivatedSpeak(true);
1302
1345
  });
1303
1346
  }
@@ -1327,7 +1370,7 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1327
1370
  }
1328
1371
  catch (e) {
1329
1372
  console.error('session #5', e);
1330
- reopenSession(true, memori === null || memori === void 0 ? void 0 : memori.secretToken, undefined, personification.tag, personification.pin, initialContextVars, initialQuestion).then(() => {
1373
+ reopenSession(true, memori === null || memori === void 0 ? void 0 : memori.secretToken, undefined, personification.tag, personification.pin, initialContextVars, initialQuestion, birth).then(() => {
1331
1374
  setHasUserActivatedSpeak(true);
1332
1375
  });
1333
1376
  }
@@ -1357,7 +1400,7 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1357
1400
  }
1358
1401
  catch (e) {
1359
1402
  console.error('session #8', e);
1360
- reopenSession(true, memori === null || memori === void 0 ? void 0 : memori.secretToken, undefined, undefined, undefined, initialContextVars, initialQuestion).then(() => {
1403
+ reopenSession(true, memori === null || memori === void 0 ? void 0 : memori.secretToken, undefined, undefined, undefined, initialContextVars, initialQuestion, birth).then(() => {
1361
1404
  setHasUserActivatedSpeak(true);
1362
1405
  });
1363
1406
  }
@@ -1429,20 +1472,21 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1429
1472
  source.buffer = buffer;
1430
1473
  source.connect(audioContext.destination);
1431
1474
  }
1432
- }, showSettings: showSettings, hasUserActivatedSpeak: hasUserActivatedSpeak }));
1475
+ }, showSettings: showSettings, hasUserActivatedSpeak: hasUserActivatedSpeak, showReload: selectedLayout === 'TOTEM' }));
1433
1476
  const avatar = ((0, jsx_runtime_1.jsx)(Avatar_1.default, { memori: memori, integration: integration, integrationConfig: integrationConfig, tenant: tenant, instruct: instruct, avatar3dVisible: avatar3dVisible, setAvatar3dVisible: setAvatar3dVisible, hasUserActivatedSpeak: hasUserActivatedSpeak, isPlayingAudio: isPlayingAudio, loading: memoriTyping, baseUrl: baseUrl, apiUrl: apiUrl }));
1434
1477
  const startPanel = ((0, jsx_runtime_1.jsx)(StartPanel_1.default, { memori: memori, tenant: tenant, gamificationLevel: gamificationLevel, language: language, userLang: userLang, setUserLang: setUserLang, baseUrl: baseUrl, apiUrl: apiUrl, position: position, openPositionDrawer: () => setShowPositionDrawer(true), integrationConfig: integrationConfig, instruct: instruct, sessionId: sessionId, clickedStart: clickedStart, onClickStart: onClickStart, initializeTTS: initializeTTS }));
1435
1478
  const chat = sessionId ? ((0, jsx_runtime_1.jsx)(Chat_1.default, { memori: memori, sessionID: sessionId, tenant: tenant, translateTo: isMultilanguageEnabled &&
1436
1479
  userLang.toUpperCase() !==
1437
1480
  ((_u = ((_t = (_r = (_q = (_p = memori.culture) === null || _p === void 0 ? void 0 : _p.split('-')) === null || _q === void 0 ? void 0 : _q[0]) !== null && _r !== void 0 ? _r : i18n.language) !== null && _t !== void 0 ? _t : 'IT')) === null || _u === void 0 ? void 0 : _u.toUpperCase())
1438
1481
  ? userLang
1439
- : undefined, baseUrl: baseUrl, apiUrl: apiUrl, memoriTyping: memoriTyping, history: history, authToken: loginToken, dialogState: currentDialogState, setDialogState: setCurrentDialogState, pushMessage: pushMessage, simulateUserPrompt: simulateUserPrompt, showDates: showDates, showContextPerLine: showContextPerLine, showAIicon: showAIicon, client: client, selectReceiverTag: selectReceiverTag, preview: preview, sendOnEnter: sendOnEnter, setSendOnEnter: setSendOnEnter, attachmentsMenuOpen: attachmentsMenuOpen, setAttachmentsMenuOpen: setAttachmentsMenuOpen, instruct: instruct, showInputs: showInputs, showMicrophone: !!AZURE_COGNITIVE_SERVICES_TTS_KEY, userMessage: userMessage, onChangeUserMessage: onChangeUserMessage, sendMessage: (msg) => {
1482
+ : undefined, baseUrl: baseUrl, apiUrl: apiUrl, memoriTyping: memoriTyping, history: layout === 'TOTEM' ? history.slice(-2) : history, authToken: loginToken, dialogState: currentDialogState, setDialogState: setCurrentDialogState, pushMessage: pushMessage, simulateUserPrompt: simulateUserPrompt, showDates: showDates, showContextPerLine: showContextPerLine, showAIicon: showAIicon, client: client, selectReceiverTag: selectReceiverTag, preview: preview, sendOnEnter: sendOnEnter, setSendOnEnter: setSendOnEnter, attachmentsMenuOpen: attachmentsMenuOpen, setAttachmentsMenuOpen: setAttachmentsMenuOpen, instruct: instruct, showInputs: showInputs, showMicrophone: !!AZURE_COGNITIVE_SERVICES_TTS_KEY, userMessage: userMessage, onChangeUserMessage: onChangeUserMessage, sendMessage: (msg) => {
1483
+ stopAudio();
1440
1484
  stopListening();
1441
1485
  sendMessage(msg);
1442
1486
  setUserMessage('');
1443
1487
  resetTranscript();
1444
1488
  }, stopListening: clearListening, startListening: startListening, stopAudio: stopAudio, resetTranscript: resetTranscript, listening: listening, isPlayingAudio: isPlayingAudio })) : null;
1445
- const integrationBackground = integration && globalBackgroundUrl ? ((0, jsx_runtime_1.jsx)("div", { className: "memori--global-background", children: (0, jsx_runtime_1.jsx)("div", { className: "memori--global-background-image", style: { backgroundImage: globalBackgroundUrl } }) })) : null;
1489
+ const integrationBackground = integration && globalBackgroundUrl ? ((0, jsx_runtime_1.jsx)("div", { className: "memori--global-background", children: (0, jsx_runtime_1.jsx)("div", { className: "memori--global-background-image", style: { backgroundImage: globalBackgroundUrl } }) })) : ((0, jsx_runtime_1.jsx)("div", { className: "memori--global-background no-background-image" }));
1446
1490
  const integrationStyle = integration ? ((0, jsx_runtime_1.jsx)("style", { dangerouslySetInnerHTML: { __html: integrationStylesheet } })) : null;
1447
1491
  const onChangeMode = (mode) => {
1448
1492
  setInstruct(mode === 'instruct');
@@ -1451,7 +1495,12 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1451
1495
  };
1452
1496
  const changeMode = ((0, jsx_runtime_1.jsx)(ChangeMode_1.default, { canInstruct: !!memori.giverTag, instruct: instruct, onChangeMode: onChangeMode }));
1453
1497
  const poweredBy = (0, jsx_runtime_1.jsx)(PoweredBy_1.default, { tenant: tenant, userLang: userLang });
1454
- return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('memori', 'memori-widget', {
1498
+ const Layout = selectedLayout === 'TOTEM'
1499
+ ? Totem_1.default
1500
+ : selectedLayout === 'FULLPAGE'
1501
+ ? FullPage_1.default
1502
+ : FullPage_1.default;
1503
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('memori', 'memori-widget', `memori-layout-${layout.toLowerCase()}`, `memori-controls-${controlsPosition.toLowerCase()}`, {
1455
1504
  'memori--preview': preview,
1456
1505
  'memori--embed': embed,
1457
1506
  'memori--with-integration': integration,
@@ -1459,12 +1508,12 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1459
1508
  }), "data-memori-name": memori === null || memori === void 0 ? void 0 : memori.name, "data-memori-id": memori === null || memori === void 0 ? void 0 : memori.engineMemoriID, "data-memori-secondary-id": memori === null || memori === void 0 ? void 0 : memori.memoriID, "data-memori-session-id": sessionId, "data-memori-integration": integration === null || integration === void 0 ? void 0 : integration.integrationID, "data-memori-engine-state": JSON.stringify({
1460
1509
  ...currentDialogState,
1461
1510
  sessionID: sessionId,
1462
- }), style: { height }, children: [(0, jsx_runtime_1.jsx)(Default_1.default, { header: header, avatar: avatar, chat: chat, startPanel: startPanel, integrationStyle: integrationStyle, integrationBackground: integrationBackground, changeMode: changeMode, poweredBy: poweredBy, sessionId: sessionId, hasUserActivatedSpeak: hasUserActivatedSpeak, showInstruct: showInstruct, loading: loading }), (0, jsx_runtime_1.jsx)("audio", { id: "memori-audio", style: { display: 'none' }, src: "https://app.twincreator.com/intro.mp3" }), isClient && ((0, jsx_runtime_1.jsx)(Auth_1.default, { withModal: true, pwdOrTokens: authModalState, openModal: !!authModalState, setPwdOrTokens: setAuthModalState, showTokens: memori.privacyType === 'SECRET', onFinish: async (values) => {
1511
+ }), style: { height }, children: [(0, jsx_runtime_1.jsx)(Layout, { header: header, avatar: avatar, chat: chat, startPanel: startPanel, integrationStyle: integrationStyle, integrationBackground: integrationBackground, changeMode: changeMode, poweredBy: poweredBy, sessionId: sessionId, hasUserActivatedSpeak: hasUserActivatedSpeak, showInstruct: showInstruct, loading: loading }), (0, jsx_runtime_1.jsx)("audio", { id: "memori-audio", style: { display: 'none' }, src: "https://app.twincreator.com/intro.mp3" }), isClient && ((0, jsx_runtime_1.jsx)(Auth_1.default, { withModal: true, pwdOrTokens: authModalState, openModal: !!authModalState, setPwdOrTokens: setAuthModalState, showTokens: memori.privacyType === 'SECRET', onFinish: async (values) => {
1463
1512
  if (values['password'])
1464
1513
  setMemoriPwd(values['password']);
1465
1514
  if (values['tokens'])
1466
1515
  setMemoriTokens(values['tokens']);
1467
- reopenSession(!sessionId, values['password'], values['tokens'], instruct ? memori.giverTag : undefined, instruct ? memori.giverPIN : undefined, initialContextVars, initialQuestion)
1516
+ reopenSession(!sessionId, values['password'], values['tokens'], instruct ? memori.giverTag : undefined, instruct ? memori.giverPIN : undefined, initialContextVars, initialQuestion, birthDate)
1468
1517
  .then(state => {
1469
1518
  setAuthModalState(null);
1470
1519
  onClickStart(state || undefined);
@@ -1473,7 +1522,25 @@ const MemoriWidget = ({ memori, memoriConfigs, memoriLang, integration, showInst
1473
1522
  setAuthModalState(null);
1474
1523
  setGotErrorInOpening(true);
1475
1524
  });
1476
- }, minimumNumberOfRecoveryTokens: (_v = memori === null || memori === void 0 ? void 0 : memori.minimumNumberOfRecoveryTokens) !== null && _v !== void 0 ? _v : 1 })), sessionId && ((0, jsx_runtime_1.jsx)(AttachmentLinkModal_1.default, { apiURL: apiUrl, visible: attachmentsMenuOpen === 'link', onCancel: () => setAttachmentsMenuOpen(undefined), onOk: async (link) => {
1525
+ }, minimumNumberOfRecoveryTokens: (_v = memori === null || memori === void 0 ? void 0 : memori.minimumNumberOfRecoveryTokens) !== null && _v !== void 0 ? _v : 1 })), isClient && ((0, jsx_runtime_1.jsx)(AgeVerificationModal_1.default, { visible: showAgeVerification, minAge: minAge, onClose: birthDate => {
1526
+ if (birthDate) {
1527
+ setBirthDate(birthDate);
1528
+ (0, configuration_1.setLocalConfig)('birthDate', birthDate);
1529
+ reopenSession(!sessionId, memori === null || memori === void 0 ? void 0 : memori.secretToken, undefined, instruct ? memori.giverTag : undefined, instruct ? memori.giverPIN : undefined, initialContextVars, initialQuestion, birthDate)
1530
+ .then(state => {
1531
+ setShowAgeVerification(false);
1532
+ onClickStart(state || undefined);
1533
+ })
1534
+ .catch(() => {
1535
+ setShowAgeVerification(false);
1536
+ setGotErrorInOpening(true);
1537
+ });
1538
+ }
1539
+ else {
1540
+ setShowAgeVerification(false);
1541
+ setClickedStart(false);
1542
+ }
1543
+ } })), showSettingsDrawer && ((0, jsx_runtime_1.jsx)(SettingsDrawer_1.default, { layout: selectedLayout, open: !!showSettingsDrawer, onClose: () => setShowSettingsDrawer(false), continuousSpeech: continuousSpeech, continuousSpeechTimeout: continuousSpeechTimeout, setContinuousSpeech: setContinuousSpeech, setContinuousSpeechTimeout: setContinuousSpeechTimeout, controlsPosition: controlsPosition, setControlsPosition: setControlsPosition })), sessionId && ((0, jsx_runtime_1.jsx)(AttachmentLinkModal_1.default, { apiURL: apiUrl, visible: attachmentsMenuOpen === 'link', onCancel: () => setAttachmentsMenuOpen(undefined), onOk: async (link) => {
1477
1544
  if (!sessionId)
1478
1545
  return;
1479
1546
  let medium = {