@memori.ai/memori-react 1.2.0 → 2.0.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 (291) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/README.md +12 -2
  3. package/dist/components/AgeVerificationModal/AgeVerificationModal.d.ts +7 -0
  4. package/dist/components/AgeVerificationModal/AgeVerificationModal.js +39 -0
  5. package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -0
  6. package/dist/components/AgeVerificationModal/AgeVerificationModal.test.d.ts +1 -0
  7. package/dist/components/AgeVerificationModal/AgeVerificationModal.test.js +27 -0
  8. package/dist/components/AgeVerificationModal/AgeVerificationModal.test.js.map +1 -0
  9. package/dist/components/AttachmentLinkModal/AttachmentLinkModal.stories.d.ts +2 -2
  10. package/dist/components/AttachmentMediaModal/AttachmentMediaModal.stories.d.ts +2 -2
  11. package/dist/components/Auth/Auth.stories.d.ts +5 -5
  12. package/dist/components/Avatar/Avatar.js +2 -2
  13. package/dist/components/Avatar/Avatar.js.map +1 -1
  14. package/dist/components/Avatar/Avatar.stories.d.ts +5 -5
  15. package/dist/components/AvatarView/AvatarView.stories.d.ts +10 -10
  16. package/dist/components/AvatarView/components/fullbodyAvatar.d.ts +2 -1
  17. package/dist/components/AvatarView/components/fullbodyAvatar.js +6 -3
  18. package/dist/components/AvatarView/components/fullbodyAvatar.js.map +1 -1
  19. package/dist/components/AvatarView/components/loader.js +3 -1
  20. package/dist/components/AvatarView/components/loader.js.map +1 -1
  21. package/dist/components/AvatarView/index.d.ts +2 -1
  22. package/dist/components/AvatarView/index.js +2 -2
  23. package/dist/components/AvatarView/index.js.map +1 -1
  24. package/dist/components/AvatarView/utils/useMouthSpeaking.js +3 -1
  25. package/dist/components/AvatarView/utils/useMouthSpeaking.js.map +1 -1
  26. package/dist/components/Blob/Blob.stories.d.ts +4 -4
  27. package/dist/components/BlockedMemoriBadge/BlockedMemoriBadge.stories.d.ts +5 -5
  28. package/dist/components/ChangeMode/ChangeMode.stories.d.ts +3 -3
  29. package/dist/components/Chat/Chat.stories.d.ts +12 -12
  30. package/dist/components/ChatBubble/ChatBubble.stories.d.ts +7 -7
  31. package/dist/components/ChatInputs/ChatInputs.js +2 -1
  32. package/dist/components/ChatInputs/ChatInputs.js.map +1 -1
  33. package/dist/components/ChatInputs/ChatInputs.stories.d.ts +9 -9
  34. package/dist/components/ChatTextArea/ChatTextArea.stories.d.ts +4 -4
  35. package/dist/components/CustomGLBModelViewer/ModelViewer.stories.d.ts +2 -2
  36. package/dist/components/DateSelector/DateSelector.d.ts +9 -0
  37. package/dist/components/DateSelector/DateSelector.js +61 -0
  38. package/dist/components/DateSelector/DateSelector.js.map +1 -0
  39. package/dist/components/DateSelector/DateSelector.test.d.ts +1 -0
  40. package/dist/components/DateSelector/DateSelector.test.js +24 -0
  41. package/dist/components/DateSelector/DateSelector.test.js.map +1 -0
  42. package/dist/components/ExportHistoryButton/ExportHistoryButton.stories.d.ts +5 -5
  43. package/dist/components/FeedbackButtons/FeedbackButtons.stories.d.ts +4 -4
  44. package/dist/components/Header/Header.d.ts +1 -0
  45. package/dist/components/Header/Header.js +26 -2
  46. package/dist/components/Header/Header.js.map +1 -1
  47. package/dist/components/Header/Header.stories.d.ts +7 -7
  48. package/dist/components/ImageUpload/ImageUpload.stories.d.ts +8 -8
  49. package/dist/components/MediaWidget/LinkItemWidget.d.ts +2 -1
  50. package/dist/components/MediaWidget/LinkItemWidget.js +10 -2
  51. package/dist/components/MediaWidget/LinkItemWidget.js.map +1 -1
  52. package/dist/components/MediaWidget/LinkItemWidget.stories.d.ts +2 -2
  53. package/dist/components/MediaWidget/MediaItemWidget.d.ts +3 -1
  54. package/dist/components/MediaWidget/MediaItemWidget.js +44 -72
  55. package/dist/components/MediaWidget/MediaItemWidget.js.map +1 -1
  56. package/dist/components/MediaWidget/MediaItemWidget.stories.d.ts +3 -3
  57. package/dist/components/MediaWidget/MediaWidget.js +10 -7
  58. package/dist/components/MediaWidget/MediaWidget.js.map +1 -1
  59. package/dist/components/MediaWidget/MediaWidget.stories.d.ts +5 -5
  60. package/dist/components/MemoriWidget/MemoriWidget.d.ts +3 -2
  61. package/dist/components/MemoriWidget/MemoriWidget.js +92 -25
  62. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  63. package/dist/components/MemoriWidget/MemoriWidget.stories.d.ts +8 -8
  64. package/dist/components/PoweredBy/PoweredBy.stories.d.ts +4 -4
  65. package/dist/components/SendOnEnterMenu/SendOnEnterMenu.stories.d.ts +3 -3
  66. package/dist/components/SettingsDrawer/SettingsDrawer.d.ts +13 -0
  67. package/dist/components/SettingsDrawer/SettingsDrawer.js +27 -0
  68. package/dist/components/SettingsDrawer/SettingsDrawer.js.map +1 -0
  69. package/dist/components/SettingsDrawer/SettingsDrawer.test.d.ts +1 -0
  70. package/dist/components/SettingsDrawer/SettingsDrawer.test.js +27 -0
  71. package/dist/components/SettingsDrawer/SettingsDrawer.test.js.map +1 -0
  72. package/dist/components/ShareButton/ShareButton.stories.d.ts +4 -4
  73. package/dist/components/Snippet/Snippet.stories.d.ts +15 -15
  74. package/dist/components/StartPanel/StartPanel.d.ts +1 -1
  75. package/dist/components/StartPanel/StartPanel.js +10 -7
  76. package/dist/components/StartPanel/StartPanel.js.map +1 -1
  77. package/dist/components/StartPanel/StartPanel.stories.d.ts +6 -6
  78. package/dist/components/StartPanel/StartPanel.test.js +7 -0
  79. package/dist/components/StartPanel/StartPanel.test.js.map +1 -1
  80. package/dist/components/UploadMenu/UploadMenu.stories.d.ts +4 -4
  81. package/dist/components/icons/Refresh.d.ts +5 -0
  82. package/dist/components/icons/Refresh.js +6 -0
  83. package/dist/components/icons/Refresh.js.map +1 -0
  84. package/dist/components/icons/SelectIcon.d.ts +5 -0
  85. package/dist/components/icons/SelectIcon.js +6 -0
  86. package/dist/components/icons/SelectIcon.js.map +1 -0
  87. package/dist/components/icons/icons.stories.d.ts +2 -2
  88. package/dist/components/layouts/FullPage.d.ts +17 -0
  89. package/dist/components/layouts/FullPage.js +8 -0
  90. package/dist/components/layouts/FullPage.js.map +1 -0
  91. package/dist/components/layouts/FullPage.test.d.ts +1 -0
  92. package/dist/components/layouts/FullPage.test.js +12 -0
  93. package/dist/components/layouts/FullPage.test.js.map +1 -0
  94. package/dist/components/layouts/Totem.d.ts +17 -0
  95. package/dist/components/layouts/Totem.js +8 -0
  96. package/dist/components/layouts/Totem.js.map +1 -0
  97. package/dist/components/layouts/Totem.test.d.ts +1 -0
  98. package/dist/components/layouts/Totem.test.js +12 -0
  99. package/dist/components/layouts/Totem.test.js.map +1 -0
  100. package/dist/components/ui/Button.stories.d.ts +14 -14
  101. package/dist/components/ui/Card.stories.d.ts +7 -7
  102. package/dist/components/ui/Checkbox.d.ts +2 -0
  103. package/dist/components/ui/Checkbox.js +2 -2
  104. package/dist/components/ui/Checkbox.js.map +1 -1
  105. package/dist/components/ui/Checkbox.stories.d.ts +5 -5
  106. package/dist/components/ui/Drawer.stories.d.ts +9 -9
  107. package/dist/components/ui/Modal.stories.d.ts +9 -9
  108. package/dist/components/ui/Select.d.ts +15 -0
  109. package/dist/components/ui/Select.js +17 -0
  110. package/dist/components/ui/Select.js.map +1 -0
  111. package/dist/components/ui/Select.test.d.ts +1 -0
  112. package/dist/components/ui/Select.test.js +47 -0
  113. package/dist/components/ui/Select.test.js.map +1 -0
  114. package/dist/components/ui/Spin.stories.d.ts +4 -4
  115. package/dist/components/ui/Tooltip.stories.d.ts +6 -6
  116. package/dist/components/ui/definitions.stories.d.ts +2 -3
  117. package/dist/helpers/configuration.js +2 -0
  118. package/dist/helpers/configuration.js.map +1 -1
  119. package/dist/helpers/utils.js +1 -1
  120. package/dist/helpers/utils.js.map +1 -1
  121. package/dist/index.d.ts +2 -0
  122. package/dist/index.js +2 -2
  123. package/dist/index.js.map +1 -1
  124. package/dist/index.stories.d.ts +2 -2
  125. package/dist/locales/en.json +17 -0
  126. package/dist/locales/it.json +17 -0
  127. package/dist/mocks/data.js +5 -2
  128. package/dist/mocks/data.js.map +1 -1
  129. package/esm/components/AgeVerificationModal/AgeVerificationModal.d.ts +7 -0
  130. package/esm/components/AgeVerificationModal/AgeVerificationModal.js +36 -0
  131. package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -0
  132. package/esm/components/AgeVerificationModal/AgeVerificationModal.test.d.ts +1 -0
  133. package/esm/components/AgeVerificationModal/AgeVerificationModal.test.js +24 -0
  134. package/esm/components/AgeVerificationModal/AgeVerificationModal.test.js.map +1 -0
  135. package/esm/components/Avatar/Avatar.js +2 -2
  136. package/esm/components/Avatar/Avatar.js.map +1 -1
  137. package/esm/components/AvatarView/components/fullbodyAvatar.d.ts +2 -1
  138. package/esm/components/AvatarView/components/fullbodyAvatar.js +7 -4
  139. package/esm/components/AvatarView/components/fullbodyAvatar.js.map +1 -1
  140. package/esm/components/AvatarView/components/loader.js +2 -1
  141. package/esm/components/AvatarView/components/loader.js.map +1 -1
  142. package/esm/components/AvatarView/index.d.ts +2 -1
  143. package/esm/components/AvatarView/index.js +2 -2
  144. package/esm/components/AvatarView/index.js.map +1 -1
  145. package/esm/components/AvatarView/utils/useMouthSpeaking.js +3 -1
  146. package/esm/components/AvatarView/utils/useMouthSpeaking.js.map +1 -1
  147. package/esm/components/ChatInputs/ChatInputs.js +2 -1
  148. package/esm/components/ChatInputs/ChatInputs.js.map +1 -1
  149. package/esm/components/DateSelector/DateSelector.d.ts +9 -0
  150. package/esm/components/DateSelector/DateSelector.js +58 -0
  151. package/esm/components/DateSelector/DateSelector.js.map +1 -0
  152. package/esm/components/DateSelector/DateSelector.test.d.ts +1 -0
  153. package/esm/components/DateSelector/DateSelector.test.js +21 -0
  154. package/esm/components/DateSelector/DateSelector.test.js.map +1 -0
  155. package/esm/components/Header/Header.d.ts +1 -0
  156. package/esm/components/Header/Header.js +26 -2
  157. package/esm/components/Header/Header.js.map +1 -1
  158. package/esm/components/MediaWidget/LinkItemWidget.d.ts +2 -1
  159. package/esm/components/MediaWidget/LinkItemWidget.js +10 -2
  160. package/esm/components/MediaWidget/LinkItemWidget.js.map +1 -1
  161. package/esm/components/MediaWidget/MediaItemWidget.d.ts +3 -1
  162. package/esm/components/MediaWidget/MediaItemWidget.js +44 -72
  163. package/esm/components/MediaWidget/MediaItemWidget.js.map +1 -1
  164. package/esm/components/MediaWidget/MediaWidget.js +11 -8
  165. package/esm/components/MediaWidget/MediaWidget.js.map +1 -1
  166. package/esm/components/MemoriWidget/MemoriWidget.d.ts +3 -2
  167. package/esm/components/MemoriWidget/MemoriWidget.js +92 -25
  168. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  169. package/esm/components/SettingsDrawer/SettingsDrawer.d.ts +13 -0
  170. package/esm/components/SettingsDrawer/SettingsDrawer.js +24 -0
  171. package/esm/components/SettingsDrawer/SettingsDrawer.js.map +1 -0
  172. package/esm/components/SettingsDrawer/SettingsDrawer.test.d.ts +1 -0
  173. package/esm/components/SettingsDrawer/SettingsDrawer.test.js +24 -0
  174. package/esm/components/SettingsDrawer/SettingsDrawer.test.js.map +1 -0
  175. package/esm/components/StartPanel/StartPanel.d.ts +1 -1
  176. package/esm/components/StartPanel/StartPanel.js +10 -7
  177. package/esm/components/StartPanel/StartPanel.js.map +1 -1
  178. package/esm/components/StartPanel/StartPanel.test.js +7 -0
  179. package/esm/components/StartPanel/StartPanel.test.js.map +1 -1
  180. package/esm/components/icons/Refresh.d.ts +5 -0
  181. package/esm/components/icons/Refresh.js +4 -0
  182. package/esm/components/icons/Refresh.js.map +1 -0
  183. package/esm/components/icons/SelectIcon.d.ts +5 -0
  184. package/esm/components/icons/SelectIcon.js +4 -0
  185. package/esm/components/icons/SelectIcon.js.map +1 -0
  186. package/esm/components/layouts/FullPage.d.ts +17 -0
  187. package/esm/components/layouts/FullPage.js +5 -0
  188. package/esm/components/layouts/FullPage.js.map +1 -0
  189. package/esm/components/layouts/FullPage.test.d.ts +1 -0
  190. package/esm/components/layouts/FullPage.test.js +9 -0
  191. package/esm/components/layouts/FullPage.test.js.map +1 -0
  192. package/esm/components/layouts/Totem.d.ts +17 -0
  193. package/esm/components/layouts/Totem.js +5 -0
  194. package/esm/components/layouts/Totem.js.map +1 -0
  195. package/esm/components/layouts/Totem.test.d.ts +1 -0
  196. package/esm/components/layouts/Totem.test.js +9 -0
  197. package/esm/components/layouts/Totem.test.js.map +1 -0
  198. package/esm/components/ui/Checkbox.d.ts +2 -0
  199. package/esm/components/ui/Checkbox.js +2 -2
  200. package/esm/components/ui/Checkbox.js.map +1 -1
  201. package/esm/components/ui/Select.d.ts +15 -0
  202. package/esm/components/ui/Select.js +14 -0
  203. package/esm/components/ui/Select.js.map +1 -0
  204. package/esm/components/ui/Select.test.d.ts +1 -0
  205. package/esm/components/ui/Select.test.js +44 -0
  206. package/esm/components/ui/Select.test.js.map +1 -0
  207. package/esm/helpers/configuration.js +2 -0
  208. package/esm/helpers/configuration.js.map +1 -1
  209. package/esm/helpers/utils.js +1 -1
  210. package/esm/helpers/utils.js.map +1 -1
  211. package/esm/index.d.ts +2 -0
  212. package/esm/index.js +2 -2
  213. package/esm/index.js.map +1 -1
  214. package/esm/locales/en.json +17 -0
  215. package/esm/locales/it.json +17 -0
  216. package/esm/mocks/data.js +5 -2
  217. package/esm/mocks/data.js.map +1 -1
  218. package/package.json +20 -16
  219. package/src/components/AgeVerificationModal/AgeVerificationModal.css +63 -0
  220. package/src/components/AgeVerificationModal/AgeVerificationModal.stories.tsx +41 -0
  221. package/src/components/AgeVerificationModal/AgeVerificationModal.test.tsx +33 -0
  222. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +89 -0
  223. package/src/components/AgeVerificationModal/__snapshots__/AgeVerificationModal.test.tsx.snap +19 -0
  224. package/src/components/Avatar/Avatar.stories.tsx +20 -1
  225. package/src/components/Avatar/Avatar.tsx +2 -1
  226. package/src/components/Avatar/__snapshots__/Avatar.test.tsx.snap +2 -2
  227. package/src/components/AvatarView/AvatarView.stories.tsx +31 -0
  228. package/src/components/AvatarView/components/fullbodyAvatar.tsx +8 -6
  229. package/src/components/AvatarView/components/loader.tsx +15 -12
  230. package/src/components/AvatarView/index.tsx +4 -1
  231. package/src/components/AvatarView/utils/useMouthSpeaking.ts +3 -1
  232. package/src/components/Chat/__snapshots__/Chat.test.tsx.snap +67 -67
  233. package/src/components/ChatBubble/ChatBubble.css +1 -2
  234. package/src/components/ChatBubble/__snapshots__/ChatBubble.test.tsx.snap +4 -4
  235. package/src/components/ChatInputs/ChatInputs.css +14 -3
  236. package/src/components/ChatInputs/ChatInputs.tsx +2 -0
  237. package/src/components/ChatInputs/__snapshots__/ChatInputs.test.tsx.snap +5 -5
  238. package/src/components/DateSelector/DateSelector.css +135 -0
  239. package/src/components/DateSelector/DateSelector.stories.tsx +34 -0
  240. package/src/components/DateSelector/DateSelector.test.tsx +38 -0
  241. package/src/components/DateSelector/DateSelector.tsx +203 -0
  242. package/src/components/DateSelector/__snapshots__/DateSelector.test.tsx.snap +14938 -0
  243. package/src/components/Header/Header.stories.tsx +23 -5
  244. package/src/components/Header/Header.tsx +47 -1
  245. package/src/components/MediaWidget/LinkItemWidget.tsx +20 -1
  246. package/src/components/MediaWidget/MediaItemWidget.css +67 -0
  247. package/src/components/MediaWidget/MediaItemWidget.tsx +72 -71
  248. package/src/components/MediaWidget/MediaWidget.css +9 -0
  249. package/src/components/MediaWidget/MediaWidget.stories.tsx +8 -0
  250. package/src/components/MediaWidget/MediaWidget.tsx +44 -27
  251. package/src/components/MediaWidget/__snapshots__/MediaItemWidget.test.tsx.snap +1 -1
  252. package/src/components/MemoriWidget/MemoriWidget.css +1 -1
  253. package/src/components/MemoriWidget/MemoriWidget.stories.tsx +12 -0
  254. package/src/components/MemoriWidget/MemoriWidget.tsx +178 -33
  255. package/src/components/SettingsDrawer/SettingsDrawer.css +5 -0
  256. package/src/components/SettingsDrawer/SettingsDrawer.stories.tsx +57 -0
  257. package/src/components/SettingsDrawer/SettingsDrawer.test.tsx +61 -0
  258. package/src/components/SettingsDrawer/SettingsDrawer.tsx +108 -0
  259. package/src/components/SettingsDrawer/__snapshots__/SettingsDrawer.test.tsx.snap +19 -0
  260. package/src/components/StartPanel/StartPanel.css +8 -2
  261. package/src/components/StartPanel/StartPanel.stories.tsx +66 -2
  262. package/src/components/StartPanel/StartPanel.test.tsx +21 -0
  263. package/src/components/StartPanel/StartPanel.tsx +28 -23
  264. package/src/components/StartPanel/__snapshots__/StartPanel.test.tsx.snap +420 -67
  265. package/src/components/icons/Refresh.tsx +30 -0
  266. package/src/components/icons/SelectIcon.tsx +28 -0
  267. package/src/components/layouts/FullPage.test.tsx +17 -0
  268. package/src/components/layouts/{Default.tsx → FullPage.tsx} +2 -2
  269. package/src/components/layouts/Totem.test.tsx +17 -0
  270. package/src/components/layouts/Totem.tsx +52 -0
  271. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +391 -0
  272. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +422 -0
  273. package/src/components/layouts/layouts.stories.tsx +155 -0
  274. package/src/components/layouts/totem.css +148 -0
  275. package/src/components/ui/Button.css +4 -0
  276. package/src/components/ui/Checkbox.tsx +6 -0
  277. package/src/components/ui/Drawer.css +24 -2
  278. package/src/components/ui/Select.css +135 -0
  279. package/src/components/ui/Select.stories.tsx +79 -0
  280. package/src/components/ui/Select.test.tsx +84 -0
  281. package/src/components/ui/Select.tsx +73 -0
  282. package/src/components/ui/Spin.css +2 -0
  283. package/src/components/ui/__snapshots__/Select.test.tsx.snap +278 -0
  284. package/src/helpers/configuration.ts +4 -2
  285. package/src/helpers/utils.ts +3 -2
  286. package/src/index.stories.tsx +41 -1
  287. package/src/index.tsx +7 -2
  288. package/src/locales/en.json +17 -0
  289. package/src/locales/it.json +17 -0
  290. package/src/mocks/data.ts +5 -2
  291. package/src/styles.css +24 -2
@@ -0,0 +1,278 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`renders Select disabled unchanged 1`] = `
4
+ <div>
5
+ <div
6
+ class="memori-select"
7
+ >
8
+ <input
9
+ hidden=""
10
+ name="day"
11
+ readonly=""
12
+ style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
13
+ type="hidden"
14
+ value="2"
15
+ />
16
+ <label
17
+ class="memori-select--label"
18
+ data-headlessui-state="disabled"
19
+ id="headlessui-listbox-label-:r8:"
20
+ >
21
+ Select me
22
+ :
23
+ </label>
24
+ <button
25
+ aria-haspopup="true"
26
+ aria-label="Select me"
27
+ aria-labelledby="headlessui-listbox-label-:r8: headlessui-listbox-button-:r9:"
28
+ class="memori-select--button"
29
+ data-headlessui-state="disabled"
30
+ disabled=""
31
+ id="headlessui-listbox-button-:r9:"
32
+ type="button"
33
+ >
34
+ <span
35
+ class="memori-select--value"
36
+ >
37
+ 2
38
+ </span>
39
+ <span
40
+ class="memori-select--icon"
41
+ >
42
+ <svg
43
+ aria-hidden="true"
44
+ fill="currentColor"
45
+ focusable="false"
46
+ role="img"
47
+ viewBox="0 0 20 20"
48
+ xmlns="http://www.w3.org/2000/svg"
49
+ >
50
+ <path
51
+ clip-rule="evenodd"
52
+ d="M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z"
53
+ fill-rule="evenodd"
54
+ />
55
+ </svg>
56
+ </span>
57
+ </button>
58
+ </div>
59
+ </div>
60
+ `;
61
+
62
+ exports[`renders Select unchanged 1`] = `
63
+ <div>
64
+ <div
65
+ class="memori-select"
66
+ >
67
+ <label
68
+ class="memori-select--label"
69
+ data-headlessui-state=""
70
+ id="headlessui-listbox-label-:r0:"
71
+ >
72
+ Select me
73
+ :
74
+ </label>
75
+ <button
76
+ aria-expanded="false"
77
+ aria-haspopup="true"
78
+ aria-label="Select me"
79
+ aria-labelledby="headlessui-listbox-label-:r0: headlessui-listbox-button-:r1:"
80
+ class="memori-select--button"
81
+ data-headlessui-state=""
82
+ id="headlessui-listbox-button-:r1:"
83
+ type="button"
84
+ >
85
+ <span
86
+ class="memori-select--value memori-select--value-placeholder"
87
+ />
88
+ <span
89
+ class="memori-select--icon"
90
+ >
91
+ <svg
92
+ aria-hidden="true"
93
+ fill="currentColor"
94
+ focusable="false"
95
+ role="img"
96
+ viewBox="0 0 20 20"
97
+ xmlns="http://www.w3.org/2000/svg"
98
+ >
99
+ <path
100
+ clip-rule="evenodd"
101
+ d="M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z"
102
+ fill-rule="evenodd"
103
+ />
104
+ </svg>
105
+ </span>
106
+ </button>
107
+ </div>
108
+ </div>
109
+ `;
110
+
111
+ exports[`renders Select with custom value display unchanged 1`] = `
112
+ <div>
113
+ <div
114
+ class="memori-select"
115
+ >
116
+ <input
117
+ hidden=""
118
+ name="day"
119
+ readonly=""
120
+ style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
121
+ type="hidden"
122
+ value="2"
123
+ />
124
+ <label
125
+ class="memori-select--label"
126
+ data-headlessui-state=""
127
+ id="headlessui-listbox-label-:r6:"
128
+ >
129
+ Select me
130
+ :
131
+ </label>
132
+ <button
133
+ aria-expanded="false"
134
+ aria-haspopup="true"
135
+ aria-label="Select me"
136
+ aria-labelledby="headlessui-listbox-label-:r6: headlessui-listbox-button-:r7:"
137
+ class="memori-select--button"
138
+ data-headlessui-state=""
139
+ id="headlessui-listbox-button-:r7:"
140
+ type="button"
141
+ >
142
+ <span
143
+ class="memori-select--value"
144
+ >
145
+ Two
146
+ </span>
147
+ <span
148
+ class="memori-select--icon"
149
+ >
150
+ <svg
151
+ aria-hidden="true"
152
+ fill="currentColor"
153
+ focusable="false"
154
+ role="img"
155
+ viewBox="0 0 20 20"
156
+ xmlns="http://www.w3.org/2000/svg"
157
+ >
158
+ <path
159
+ clip-rule="evenodd"
160
+ d="M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z"
161
+ fill-rule="evenodd"
162
+ />
163
+ </svg>
164
+ </span>
165
+ </button>
166
+ </div>
167
+ </div>
168
+ `;
169
+
170
+ exports[`renders Select with placeholder unchanged 1`] = `
171
+ <div>
172
+ <div
173
+ class="memori-select"
174
+ >
175
+ <label
176
+ class="memori-select--label"
177
+ data-headlessui-state=""
178
+ id="headlessui-listbox-label-:r2:"
179
+ >
180
+ Select me
181
+ :
182
+ </label>
183
+ <button
184
+ aria-expanded="false"
185
+ aria-haspopup="true"
186
+ aria-label="Select me"
187
+ aria-labelledby="headlessui-listbox-label-:r2: headlessui-listbox-button-:r3:"
188
+ class="memori-select--button"
189
+ data-headlessui-state=""
190
+ id="headlessui-listbox-button-:r3:"
191
+ type="button"
192
+ >
193
+ <span
194
+ class="memori-select--value memori-select--value-placeholder"
195
+ >
196
+ Select me
197
+ </span>
198
+ <span
199
+ class="memori-select--icon"
200
+ >
201
+ <svg
202
+ aria-hidden="true"
203
+ fill="currentColor"
204
+ focusable="false"
205
+ role="img"
206
+ viewBox="0 0 20 20"
207
+ xmlns="http://www.w3.org/2000/svg"
208
+ >
209
+ <path
210
+ clip-rule="evenodd"
211
+ d="M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z"
212
+ fill-rule="evenodd"
213
+ />
214
+ </svg>
215
+ </span>
216
+ </button>
217
+ </div>
218
+ </div>
219
+ `;
220
+
221
+ exports[`renders Select with value unchanged 1`] = `
222
+ <div>
223
+ <div
224
+ class="memori-select"
225
+ >
226
+ <input
227
+ hidden=""
228
+ name="day"
229
+ readonly=""
230
+ style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
231
+ type="hidden"
232
+ value="2"
233
+ />
234
+ <label
235
+ class="memori-select--label"
236
+ data-headlessui-state=""
237
+ id="headlessui-listbox-label-:r4:"
238
+ >
239
+ Select me
240
+ :
241
+ </label>
242
+ <button
243
+ aria-expanded="false"
244
+ aria-haspopup="true"
245
+ aria-label="Select me"
246
+ aria-labelledby="headlessui-listbox-label-:r4: headlessui-listbox-button-:r5:"
247
+ class="memori-select--button"
248
+ data-headlessui-state=""
249
+ id="headlessui-listbox-button-:r5:"
250
+ type="button"
251
+ >
252
+ <span
253
+ class="memori-select--value"
254
+ >
255
+ 2
256
+ </span>
257
+ <span
258
+ class="memori-select--icon"
259
+ >
260
+ <svg
261
+ aria-hidden="true"
262
+ fill="currentColor"
263
+ focusable="false"
264
+ role="img"
265
+ viewBox="0 0 20 20"
266
+ xmlns="http://www.w3.org/2000/svg"
267
+ >
268
+ <path
269
+ clip-rule="evenodd"
270
+ d="M10 3a.75.75 0 01.55.24l3.25 3.5a.75.75 0 11-1.1 1.02L10 4.852 7.3 7.76a.75.75 0 01-1.1-1.02l3.25-3.5A.75.75 0 0110 3zm-3.76 9.2a.75.75 0 011.06.04l2.7 2.908 2.7-2.908a.75.75 0 111.1 1.02l-3.25 3.5a.75.75 0 01-1.1 0l-3.25-3.5a.75.75 0 01.04-1.06z"
271
+ fill-rule="evenodd"
272
+ />
273
+ </svg>
274
+ </span>
275
+ </button>
276
+ </div>
277
+ </div>
278
+ `;
@@ -3,6 +3,8 @@ export const keys: { [key: string]: string } = {
3
3
  continuousSpeech: '@memori:continuousSpeech',
4
4
  continuousSpeechTimeout: '@memori:continuousSpeechTimeout',
5
5
  sendOnEnter: '@memori:sendOnEnter',
6
+ birthDate: '@memori:birthDate',
7
+ controlsPosition: '@memori:controlsPosition',
6
8
  };
7
9
 
8
10
  export const getLocalConfig = <Type>(key: string, defaultValue: Type): Type => {
@@ -10,9 +12,9 @@ export const getLocalConfig = <Type>(key: string, defaultValue: Type): Type => {
10
12
  if (!value) return defaultValue;
11
13
 
12
14
  try {
13
- return (JSON.parse(value) as unknown) as Type;
15
+ return JSON.parse(value) as unknown as Type;
14
16
  } catch {
15
- return (value as unknown) as Type;
17
+ return value as unknown as Type;
16
18
  }
17
19
  };
18
20
 
@@ -61,8 +61,9 @@ export const isAndroid = (): boolean => {
61
61
  return isAndroid;
62
62
  };
63
63
 
64
- export const pwdRegEx = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$_:;|,~+={}[]%^&*-]).{8,}$/;
65
- export const mailRegEx = /^\w+([.-]?[+]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/;
64
+ export const pwdRegEx =
65
+ /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$_:;|,~+={}[]%^&*-]).{8,}$/;
66
+ export const mailRegEx = /^\w+([.-]?[+]?\w+)*@\w+([.-]?\w+)*(\.\w{2,4})+$/;
66
67
  export const usernameRegEx = /^(?!.*\.\.)(?!.*\.$)[^\W][\w.+-]{3,32}$/;
67
68
  export const validURLRegEx = /^(ftp|http|https):\/\/[^ "]+$/;
68
69
 
@@ -3,7 +3,7 @@ import { Meta, Story } from '@storybook/react';
3
3
  import Memori, { Props } from './index';
4
4
 
5
5
  const meta: Meta = {
6
- title: 'Default',
6
+ title: 'General/Default',
7
7
  component: Memori,
8
8
  argTypes: {
9
9
  AZURE_COGNITIVE_SERVICES_TTS_KEY: {
@@ -33,6 +33,7 @@ Anonymous.args = {
33
33
  baseURL: 'https://app.memorytwin.com',
34
34
  uiLang: 'it',
35
35
  showShare: true,
36
+ showSettings: true,
36
37
  };
37
38
 
38
39
  // export const Instruction = Template.bind({});
@@ -48,3 +49,42 @@ Anonymous.args = {
48
49
  // pin: 'giver pin',
49
50
  // authToken: 'your login token',
50
51
  // };
52
+
53
+ export const DemoSophia = Template.bind({});
54
+ DemoSophia.args = {
55
+ layout: 'TOTEM',
56
+ memoriName: 'Sophia',
57
+ ownerUserName: 'francescoimpellizzeri',
58
+ memoriID: '57405959-a2c5-4499-adb8-bb8dcc848ad5',
59
+ ownerUserID: '44ccefdb-d7a2-447e-9851-2a76be055a40',
60
+ tenantID: 'nextpresent.aclambda.online',
61
+ apiURL: 'https://backend.memori.ai',
62
+ baseURL: 'https://nextpresent.aclambda.online',
63
+ uiLang: 'it',
64
+ lang: 'it',
65
+ showShare: true,
66
+ showSettings: true,
67
+ integrationID: 'd10bbffd-26f3-4614-a092-15b215d04ffa',
68
+ initialQuestion: 'Welcome Totem',
69
+ contextVars: 'CONTEXT:TOTEM',
70
+ // https://assets.memori.ai/api/v2/asset/6af08bf1-f011-40ea-92a2-699b7b53a53c.glb
71
+ };
72
+
73
+ export const DemoStefano = Template.bind({});
74
+ DemoStefano.args = {
75
+ layout: 'TOTEM',
76
+ memoriName: 'Stefano Zingoni',
77
+ ownerUserName: 'roberta.bianchi',
78
+ memoriID: 'd6df4c75-8dfb-4e6d-b19f-193fa8a9bcce',
79
+ ownerUserID: 'b242160e-c19c-468f-b7f8-b2dc1ce51045',
80
+ tenantID: 'gruppoe.aclambda.online',
81
+ apiURL: 'https://backend.memori.ai',
82
+ baseURL: 'https://gruppoe.aclambda.online',
83
+ uiLang: 'it',
84
+ lang: 'it',
85
+ showShare: true,
86
+ showSettings: true,
87
+ contextVars: 'CONTEXT:TOTEM',
88
+ integrationID: '5712601d-6174-45e7-bfb1-b4ac71c4ff80',
89
+ // https://assets.memori.ai/api/v2/asset/ed50c6a4-37cd-458b-9209-8cabfa256b30.glb
90
+ };
package/src/index.tsx CHANGED
@@ -5,7 +5,9 @@ import {
5
5
  Memori as IMemori,
6
6
  } from '@memori.ai/memori-api-client/dist/types';
7
7
  import memoriApiClient from '@memori.ai/memori-api-client';
8
- import MemoriWidget from './components/MemoriWidget/MemoriWidget';
8
+ import MemoriWidget, {
9
+ Props as WidgetProps,
10
+ } from './components/MemoriWidget/MemoriWidget';
9
11
 
10
12
  import i18n from './i18n';
11
13
  import { useTranslation } from 'react-i18next';
@@ -19,6 +21,7 @@ export interface Props {
19
21
  tenantID: string;
20
22
  secretToken?: string;
21
23
  sessionID?: string;
24
+ layout?: WidgetProps['layout'];
22
25
  showShare?: boolean;
23
26
  showSettings?: boolean;
24
27
  showInstruct?: boolean;
@@ -62,8 +65,9 @@ const Memori: React.FC<Props> = ({
62
65
  tenantID,
63
66
  secretToken,
64
67
  sessionID,
68
+ layout = 'DEFAULT',
65
69
  showShare = true,
66
- showSettings = false,
70
+ showSettings = true,
67
71
  showInstruct = false,
68
72
  height = '100%',
69
73
  baseURL,
@@ -142,6 +146,7 @@ const Memori: React.FC<Props> = ({
142
146
 
143
147
  return memori ? (
144
148
  <MemoriWidget
149
+ layout={layout}
145
150
  height={height}
146
151
  baseUrl={
147
152
  baseURL ||
@@ -2,6 +2,7 @@
2
2
  "yes": "Yes",
3
3
  "no": "No",
4
4
  "confirm": "Confirm",
5
+ "apply": "Apply",
5
6
  "cancel": "Cancel",
6
7
  "show": "Show",
7
8
  "hide": "Hide",
@@ -10,6 +11,14 @@
10
11
  "edit": "Edit",
11
12
  "delete": "Delete",
12
13
  "loading": "Loading",
14
+ "expand": "Expand",
15
+ "fullscreenEnter": "Enter fullscreen",
16
+ "fullscreenExit": "Exit fullscreen",
17
+ "center": "Center",
18
+ "bottom": "Bottom",
19
+ "day": "Day",
20
+ "month": "Month",
21
+ "year": "Year",
13
22
  "copy": "Copy",
14
23
  "copyToClipboard": "Copy to clipboard",
15
24
  "showOriginalText": "Show original",
@@ -21,6 +30,13 @@
21
30
  "memoriBlockedGiverHelper": "You can still manage it as administrator, but other users will not be able to interact with it.",
22
31
  "generatedByAI": "Answer generated by AI, may occasionally generate incorrect informations",
23
32
  "completionsEnabled": "Advanced AI, can respond with automatically generated answers that may sometimes contain incorrect information",
33
+ "birthDate": "Birth date",
34
+ "birthDateHelper": "We ask for your birth date only to enable or disable functionalities that have age restrictions",
35
+ "underage": "You must be at least {{age}} years old to sign up.",
36
+ "underageTwinSession": "You must be at least {{age}} years old to interact with this Twin.",
37
+ "ageVerification": "Age verification",
38
+ "ageVerificationText": "To interact with this Twin, you must be at least {{minAge}} years old.",
39
+ "nsfw": "NSFW: This Twin contains adult contents",
24
40
  "auth": {
25
41
  "useRecoveryTokens": "Use recovery tokens",
26
42
  "tokens": "Tokens",
@@ -54,6 +70,7 @@
54
70
  "settingsHeaderLabel": "Setup here if you want to set the memori as continuous speech, and change the silence seconds if you want to customize them.",
55
71
  "continuousSpeechLabel": "Continuous speech",
56
72
  "secondsLabel": "Set seconds",
73
+ "controlsPosition": "Controls position",
57
74
  "tryMeHeaderLabel": "TRY",
58
75
  "unknownPosition": "Unknown position",
59
76
  "fieldPlace": "Write the place (eg 'Milano')",
@@ -2,6 +2,7 @@
2
2
  "yes": "Si",
3
3
  "no": "No",
4
4
  "confirm": "Conferma",
5
+ "apply": "Applica",
5
6
  "cancel": "Annulla",
6
7
  "show": "Mostra",
7
8
  "hide": "Nascondi",
@@ -10,6 +11,14 @@
10
11
  "edit": "Modifica",
11
12
  "delete": "Elimina",
12
13
  "loading": "Caricamento",
14
+ "expand": "Espandi",
15
+ "fullscreenEnter": "Passa a schermo intero",
16
+ "fullscreenExit": "Esci da schermo intero",
17
+ "center": "Centro",
18
+ "bottom": "In basso",
19
+ "day": "Giorno",
20
+ "month": "Mese",
21
+ "year": "Anno",
13
22
  "copy": "Copia",
14
23
  "copyToClipboard": "Copia negli appunti",
15
24
  "showOriginalText": "Mostra originale",
@@ -21,6 +30,13 @@
21
30
  "memoriBlockedGiverHelper": "Puoi sempre gestirlo in qualità di amministratore, ma altri utenti non potranno interrogarlo.",
22
31
  "generatedByAI": "Risposta generata da IA, può talvolta generare informazioni non corrette",
23
32
  "completionsEnabled": "IA evoluta, può rispondere con risposte generate automaticamente che talvolta potrebbero contenere informazioni non corrette",
33
+ "birthDate": "Data di nascita",
34
+ "birthDateHelper": "Ti chiediamo la data di nascita esclusivamente per abilitare o disabilitare le funzionalità che hanno restrizioni in base all'età",
35
+ "underage": "Devi avere almeno {{age}} anni per registrarti.",
36
+ "underageTwinSession": "Devi avere almeno {{age}} anni per interagire con questo Twin.",
37
+ "ageVerification": "Verifica dell'età",
38
+ "ageVerificationText": "Per interagire con questo Twin, devi aver almeno {{minAge}} anni.",
39
+ "nsfw": "NSFW: Questo Twin contiene contenuti per adulti",
24
40
  "auth": {
25
41
  "useRecoveryTokens": "Utilizza i token di recupero",
26
42
  "tokens": "Token",
@@ -54,6 +70,7 @@
54
70
  "settingsHeaderLabel": "Configura qui il memori se vuoi impostare una conversazione continua. Setta i secondi di silenzio prima dell'invio.",
55
71
  "continuousSpeechLabel": "Conversazione continua",
56
72
  "secondsLabel": "Secondi",
73
+ "controlsPosition": "Posizione dei controlli",
57
74
  "tryMeHeaderLabel": "PROVA",
58
75
  "unknownPosition": "Posizione sconosciuta",
59
76
  "fieldPlace": "Indica la posizione (es 'Milano')",
package/src/mocks/data.ts CHANGED
@@ -35,6 +35,9 @@ export const memori: Memori = {
35
35
  categories: [],
36
36
  publishedInTheMetaverse: true,
37
37
  exposed: true,
38
+ enableCompletions: true,
39
+ nsfw: false,
40
+ ageRestriction: 14,
38
41
  contentQualityIndex: 66.6,
39
42
  contentQualityIndexTimestamp: '2021-03-01T12:00:00.000Z',
40
43
  ownerUserName: 'username',
@@ -44,8 +47,8 @@ export const memori: Memori = {
44
47
  secretToken: 'awanagana',
45
48
  giverPIN: '1234',
46
49
  giverTag: '🧑‍💻',
47
- avatarURL: 'https://api.lorem.space/image/face?hash=0p9vyl1e',
48
- coverURL: 'https://api.lorem.space/image/pizza?hash=ecz70guu',
50
+ avatarURL: 'https://app.twincreator.com/images/twincreator/square_logo.png',
51
+ coverURL: 'https://app.twincreator.com/images/twincreator/og-image.png',
49
52
  };
50
53
 
51
54
  export const history: Message[] = [
package/src/styles.css CHANGED
@@ -5,7 +5,9 @@
5
5
  @import url('./components/ui/Modal.css');
6
6
  @import url('./components/ui/Spin.css');
7
7
  @import url('./components/ui/Tooltip.css');
8
+ @import url('./components/ui/Select.css');
8
9
 
10
+ @import url('./components/PoweredBy/PoweredBy.css');
9
11
  @import url('./components/AttachmentLinkModal/AttachmentLinkModal.css');
10
12
  @import url('./components/Auth/Auth.css');
11
13
  @import url('./components/Avatar/Avatar.css');
@@ -17,6 +19,7 @@
17
19
  @import url('./components/ChatInputs/ChatInputs.css');
18
20
  @import url('./components/ChatTextArea/ChatTextArea.css');
19
21
  @import url('./components/CustomGLBModelViewer/ModelViewer.css');
22
+ @import url('./components/SettingsDrawer/SettingsDrawer.css');
20
23
  @import url('./components/ExportHistoryButton/ExportHistoryButton.css');
21
24
  @import url('./components/FeedbackButtons/FeedbackButtons.css');
22
25
  @import url('./components/Header/Header.css');
@@ -25,19 +28,37 @@
25
28
  @import url('./components/MediaWidget/LinkItemWidget.css');
26
29
  @import url('./components/MediaWidget/MediaItemWidget.css');
27
30
  @import url('./components/MediaWidget/MediaWidget.css');
28
- @import url('./components/MemoriWidget/MemoriWidget.css');
29
31
  @import url('./components/SendOnEnterMenu/SendOnEnterMenu.css');
30
32
  @import url('./components/ShareButton/ShareButton.css');
31
33
  @import url('./components/Snippet/Snippet.css');
32
34
  @import url('./components/StartPanel/StartPanel.css');
33
35
  @import url('./components/UploadMenu/UploadMenu.css');
34
- @import url('./components/PoweredBy/PoweredBy.css');
36
+ @import url('./components/DateSelector/DateSelector.css');
37
+ @import url('./components/AgeVerificationModal/AgeVerificationModal.css');
38
+ @import url('./components/MemoriWidget/MemoriWidget.css');
35
39
 
36
40
  @import url('https://fonts.bunny.net/css?family=exo-2:200,400,700');
37
41
 
42
+ @import url('./components/layouts/totem.css');
43
+
44
+ .sr-only {
45
+ position: absolute;
46
+ overflow: hidden;
47
+ width: 1px;
48
+ height: 1px;
49
+ padding: 0;
50
+ border-width: 0;
51
+ margin: -1px;
52
+ clip: rect(0, 0, 0, 0);
53
+ white-space: nowrap;
54
+ }
55
+
38
56
  memori-client,
39
57
  memori-client #root,
40
58
  body.sb-show-main #root,
59
+ body.sb-show-main #headlessui-portal-root,
60
+ #storybook-root,
61
+ #storybook-docs,
41
62
  .memori-widget {
42
63
  font-family: 'Exo 2', sans-serif;
43
64
  font-size: 16px;
@@ -60,4 +81,5 @@ body.sb-show-main #root,
60
81
  --memori-drawer--width--lg: 60%;
61
82
  --memori-modal--width: 100%;
62
83
  --memori-modal--width--md: 80%;
84
+ --memori-error-color: #ff4d4f;
63
85
  }