@memori.ai/memori-react 7.8.8 → 7.9.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 (190) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/dist/components/AccountForm/AccountForm.d.ts +3 -2
  3. package/dist/components/AccountForm/AccountForm.js +2 -4
  4. package/dist/components/AccountForm/AccountForm.js.map +1 -1
  5. package/dist/components/Avatar/Avatar.d.ts +4 -0
  6. package/dist/components/Avatar/Avatar.js +6 -6
  7. package/dist/components/Avatar/Avatar.js.map +1 -1
  8. package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.d.ts +3 -0
  9. package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js +3 -3
  10. package/dist/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js.map +1 -1
  11. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/AnimationController.js +1 -1
  12. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/AnimationController.js.map +1 -1
  13. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.d.ts +1 -1
  14. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +48 -10
  15. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  16. package/dist/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/types.d.ts +4 -1
  17. package/dist/components/Avatar/AvatarView/AvatarComponent/components/MorphTargetController.d.ts +17 -0
  18. package/dist/components/Avatar/AvatarView/AvatarComponent/components/MorphTargetController.js +73 -0
  19. package/dist/components/Avatar/AvatarView/AvatarComponent/components/MorphTargetController.js.map +1 -0
  20. package/dist/components/Avatar/AvatarView/AvatarComponent/components/PositionController.d.ts +19 -0
  21. package/dist/components/Avatar/AvatarView/AvatarComponent/components/PositionController.js +60 -0
  22. package/dist/components/Avatar/AvatarView/AvatarComponent/components/PositionController.js.map +1 -0
  23. package/dist/components/Avatar/AvatarView/AvatarComponent/components/constants.d.ts +18 -0
  24. package/dist/components/Avatar/AvatarView/AvatarComponent/components/constants.js +26 -0
  25. package/dist/components/Avatar/AvatarView/AvatarComponent/components/constants.js.map +1 -0
  26. package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.d.ts +8 -7
  27. package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js +65 -78
  28. package/dist/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js.map +1 -1
  29. package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +99 -0
  30. package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.d.ts +12 -0
  31. package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.js +98 -0
  32. package/dist/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.js.map +1 -0
  33. package/dist/components/Avatar/AvatarView/index.d.ts +4 -1
  34. package/dist/components/Avatar/AvatarView/index.js +36 -13
  35. package/dist/components/Avatar/AvatarView/index.js.map +1 -1
  36. package/dist/components/Avatar/AvatarView/utils/hideHands.d.ts +2 -0
  37. package/dist/components/Avatar/AvatarView/utils/hideHands.js +14 -0
  38. package/dist/components/Avatar/AvatarView/utils/hideHands.js.map +1 -0
  39. package/dist/components/Chat/Chat.d.ts +1 -0
  40. package/dist/components/Chat/Chat.js +5 -2
  41. package/dist/components/Chat/Chat.js.map +1 -1
  42. package/dist/components/KnownFacts/KnownFacts.d.ts +3 -2
  43. package/dist/components/KnownFacts/KnownFacts.js +2 -4
  44. package/dist/components/KnownFacts/KnownFacts.js.map +1 -1
  45. package/dist/components/LoginDrawer/LoginDrawer.d.ts +3 -2
  46. package/dist/components/LoginDrawer/LoginDrawer.js +4 -6
  47. package/dist/components/LoginDrawer/LoginDrawer.js.map +1 -1
  48. package/dist/components/MemoriWidget/MemoriWidget.d.ts +3 -2
  49. package/dist/components/MemoriWidget/MemoriWidget.js +36 -10
  50. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  51. package/dist/components/SettingsDrawer/SettingsDrawer.css +4 -2
  52. package/dist/components/SettingsDrawer/SettingsDrawer.d.ts +6 -1
  53. package/dist/components/SettingsDrawer/SettingsDrawer.js +10 -4
  54. package/dist/components/SettingsDrawer/SettingsDrawer.js.map +1 -1
  55. package/dist/components/SignupForm/SignupForm.d.ts +3 -2
  56. package/dist/components/SignupForm/SignupForm.js +2 -4
  57. package/dist/components/SignupForm/SignupForm.js.map +1 -1
  58. package/dist/components/layouts/Totem.js +1 -1
  59. package/dist/components/layouts/Totem.js.map +1 -1
  60. package/dist/components/layouts/totem.css +9 -9
  61. package/dist/components/ui/Button.css +4 -0
  62. package/dist/components/ui/Button.d.ts +1 -0
  63. package/dist/components/ui/Button.js +2 -1
  64. package/dist/components/ui/Button.js.map +1 -1
  65. package/dist/components/ui/Slider.css +177 -0
  66. package/dist/components/ui/Slider.d.ts +12 -0
  67. package/dist/components/ui/Slider.js +78 -0
  68. package/dist/components/ui/Slider.js.map +1 -0
  69. package/dist/index.js +4 -1
  70. package/dist/index.js.map +1 -1
  71. package/dist/locales/en.json +11 -0
  72. package/dist/locales/it.json +11 -0
  73. package/dist/styles.css +1 -0
  74. package/esm/components/AccountForm/AccountForm.d.ts +3 -2
  75. package/esm/components/AccountForm/AccountForm.js +2 -4
  76. package/esm/components/AccountForm/AccountForm.js.map +1 -1
  77. package/esm/components/Avatar/Avatar.d.ts +4 -0
  78. package/esm/components/Avatar/Avatar.js +6 -6
  79. package/esm/components/Avatar/Avatar.js.map +1 -1
  80. package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.d.ts +3 -0
  81. package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js +3 -3
  82. package/esm/components/Avatar/AvatarView/AvatarComponent/avatarComponent.js.map +1 -1
  83. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/AnimationController.js +1 -1
  84. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/AnimationController.js.map +1 -1
  85. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.d.ts +1 -1
  86. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js +45 -8
  87. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.js.map +1 -1
  88. package/esm/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/types.d.ts +4 -1
  89. package/esm/components/Avatar/AvatarView/AvatarComponent/components/MorphTargetController.d.ts +17 -0
  90. package/esm/components/Avatar/AvatarView/AvatarComponent/components/MorphTargetController.js +69 -0
  91. package/esm/components/Avatar/AvatarView/AvatarComponent/components/MorphTargetController.js.map +1 -0
  92. package/esm/components/Avatar/AvatarView/AvatarComponent/components/PositionController.d.ts +19 -0
  93. package/esm/components/Avatar/AvatarView/AvatarComponent/components/PositionController.js +56 -0
  94. package/esm/components/Avatar/AvatarView/AvatarComponent/components/PositionController.js.map +1 -0
  95. package/esm/components/Avatar/AvatarView/AvatarComponent/components/constants.d.ts +18 -0
  96. package/esm/components/Avatar/AvatarView/AvatarComponent/components/constants.js +23 -0
  97. package/esm/components/Avatar/AvatarView/AvatarComponent/components/constants.js.map +1 -0
  98. package/esm/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.d.ts +8 -7
  99. package/esm/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js +66 -80
  100. package/esm/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.js.map +1 -1
  101. package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +99 -0
  102. package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.d.ts +12 -0
  103. package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.js +95 -0
  104. package/esm/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.js.map +1 -0
  105. package/esm/components/Avatar/AvatarView/index.d.ts +4 -1
  106. package/esm/components/Avatar/AvatarView/index.js +38 -15
  107. package/esm/components/Avatar/AvatarView/index.js.map +1 -1
  108. package/esm/components/Avatar/AvatarView/utils/hideHands.d.ts +2 -0
  109. package/esm/components/Avatar/AvatarView/utils/hideHands.js +10 -0
  110. package/esm/components/Avatar/AvatarView/utils/hideHands.js.map +1 -0
  111. package/esm/components/Chat/Chat.d.ts +1 -0
  112. package/esm/components/Chat/Chat.js +5 -2
  113. package/esm/components/Chat/Chat.js.map +1 -1
  114. package/esm/components/KnownFacts/KnownFacts.d.ts +3 -2
  115. package/esm/components/KnownFacts/KnownFacts.js +2 -4
  116. package/esm/components/KnownFacts/KnownFacts.js.map +1 -1
  117. package/esm/components/LoginDrawer/LoginDrawer.d.ts +3 -2
  118. package/esm/components/LoginDrawer/LoginDrawer.js +4 -6
  119. package/esm/components/LoginDrawer/LoginDrawer.js.map +1 -1
  120. package/esm/components/MemoriWidget/MemoriWidget.d.ts +3 -2
  121. package/esm/components/MemoriWidget/MemoriWidget.js +36 -10
  122. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  123. package/esm/components/SettingsDrawer/SettingsDrawer.css +4 -2
  124. package/esm/components/SettingsDrawer/SettingsDrawer.d.ts +6 -1
  125. package/esm/components/SettingsDrawer/SettingsDrawer.js +10 -4
  126. package/esm/components/SettingsDrawer/SettingsDrawer.js.map +1 -1
  127. package/esm/components/SignupForm/SignupForm.d.ts +3 -2
  128. package/esm/components/SignupForm/SignupForm.js +2 -4
  129. package/esm/components/SignupForm/SignupForm.js.map +1 -1
  130. package/esm/components/layouts/Totem.js +1 -1
  131. package/esm/components/layouts/Totem.js.map +1 -1
  132. package/esm/components/layouts/totem.css +9 -9
  133. package/esm/components/ui/Button.css +4 -0
  134. package/esm/components/ui/Button.d.ts +1 -0
  135. package/esm/components/ui/Button.js +2 -1
  136. package/esm/components/ui/Button.js.map +1 -1
  137. package/esm/components/ui/Slider.css +177 -0
  138. package/esm/components/ui/Slider.d.ts +12 -0
  139. package/esm/components/ui/Slider.js +75 -0
  140. package/esm/components/ui/Slider.js.map +1 -0
  141. package/esm/index.js +4 -1
  142. package/esm/index.js.map +1 -1
  143. package/esm/locales/en.json +11 -0
  144. package/esm/locales/it.json +11 -0
  145. package/esm/styles.css +1 -0
  146. package/package.json +3 -2
  147. package/src/components/AccountForm/AccountForm.test.tsx +2 -1
  148. package/src/components/AccountForm/AccountForm.tsx +3 -5
  149. package/src/components/Avatar/Avatar.test.tsx +8 -0
  150. package/src/components/Avatar/Avatar.tsx +19 -6
  151. package/src/components/Avatar/AvatarView/AvatarComponent/avatarComponent.tsx +17 -8
  152. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/AnimationController.ts +1 -1
  153. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/fullbodyAvatar.tsx +69 -18
  154. package/src/components/Avatar/AvatarView/AvatarComponent/components/FullbodyAvatar/types.ts +4 -1
  155. package/src/components/Avatar/AvatarView/AvatarComponent/components/PositionController.ts +83 -0
  156. package/src/components/Avatar/AvatarView/AvatarComponent/components/{FullbodyAvatar/constants.ts → constants.ts} +2 -1
  157. package/src/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.tsx +106 -124
  158. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.css +99 -0
  159. package/src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.tsx +187 -0
  160. package/src/components/Avatar/AvatarView/index.tsx +115 -43
  161. package/src/components/Avatar/AvatarView/utils/hideHands.ts +11 -0
  162. package/src/components/Avatar/__snapshots__/Avatar.test.tsx.snap +32 -93
  163. package/src/components/Chat/Chat.test.tsx +11 -0
  164. package/src/components/Chat/Chat.tsx +8 -1
  165. package/src/components/KnownFacts/KnownFacts.stories.tsx +5 -4
  166. package/src/components/KnownFacts/KnownFacts.test.tsx +6 -3
  167. package/src/components/KnownFacts/KnownFacts.tsx +3 -4
  168. package/src/components/LoginDrawer/LoginDrawer.stories.tsx +2 -1
  169. package/src/components/LoginDrawer/LoginDrawer.test.tsx +9 -8
  170. package/src/components/LoginDrawer/LoginDrawer.tsx +5 -6
  171. package/src/components/MemoriWidget/MemoriWidget.tsx +56 -14
  172. package/src/components/SettingsDrawer/SettingsDrawer.css +4 -2
  173. package/src/components/SettingsDrawer/SettingsDrawer.test.tsx +24 -0
  174. package/src/components/SettingsDrawer/SettingsDrawer.tsx +76 -4
  175. package/src/components/SignupForm/SignupForm.test.tsx +3 -2
  176. package/src/components/SignupForm/SignupForm.tsx +3 -4
  177. package/src/components/layouts/Totem.tsx +1 -1
  178. package/src/components/layouts/layouts.stories.tsx +111 -3
  179. package/src/components/layouts/totem.css +9 -9
  180. package/src/components/ui/Button.css +4 -0
  181. package/src/components/ui/Button.tsx +3 -0
  182. package/src/components/ui/Slider.css +177 -0
  183. package/src/components/ui/Slider.stories.tsx +63 -0
  184. package/src/components/ui/Slider.tsx +142 -0
  185. package/src/index.stories.tsx +1 -1
  186. package/src/index.tsx +5 -1
  187. package/src/locales/en.json +11 -0
  188. package/src/locales/it.json +11 -0
  189. package/src/styles.css +1 -0
  190. /package/src/components/Avatar/AvatarView/AvatarComponent/components/{FullbodyAvatar/MorhTargetController.ts → MorphTargetController.ts} +0 -0
@@ -0,0 +1,19 @@
1
+ import { Vector3 } from 'three';
2
+ export declare class AvatarPositionController {
3
+ private currentScale;
4
+ private targetScale;
5
+ private currentPosition;
6
+ private basePosition;
7
+ private defaultPosition;
8
+ private zoomedPosition;
9
+ private initialCameraPosition;
10
+ constructor(defaultPosition?: Vector3, zoomedPosition?: Vector3, initialCameraZ?: number);
11
+ private mapHeightToScale;
12
+ private mapDepthToCamera;
13
+ updateHeight(heightValue: number, isHalfBody: boolean): void;
14
+ updateDepth(depthValue: number, isHalfBody: boolean): number;
15
+ updateBasePosition(isZoomed: boolean): void;
16
+ updateScale(lerpFactor: number): Vector3;
17
+ getPosition(): Vector3;
18
+ reset(): void;
19
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AvatarPositionController = void 0;
4
+ const three_1 = require("three");
5
+ const constants_1 = require("./constants");
6
+ class AvatarPositionController {
7
+ constructor(defaultPosition = constants_1.AVATAR_POSITION.clone(), zoomedPosition = constants_1.AVATAR_POSITION_ZOOMED.clone(), initialCameraZ = 0.6) {
8
+ this.defaultPosition = defaultPosition;
9
+ this.zoomedPosition = zoomedPosition;
10
+ this.currentScale = new three_1.Vector3(1, 1, 1);
11
+ this.targetScale = new three_1.Vector3(1, 1, 1);
12
+ this.currentPosition = defaultPosition.clone();
13
+ this.basePosition = defaultPosition.clone();
14
+ this.initialCameraPosition = new three_1.Vector3(0, 0, initialCameraZ);
15
+ }
16
+ mapHeightToScale(sliderValue, isHalfBody) {
17
+ if (isHalfBody) {
18
+ return three_1.MathUtils.lerp(1.4, 2.1, sliderValue / 100);
19
+ }
20
+ else {
21
+ return three_1.MathUtils.lerp(0.5, 1.5, sliderValue / 100);
22
+ }
23
+ }
24
+ mapDepthToCamera(depthValue, isHalfBody) {
25
+ const baseZ = this.initialCameraPosition.z;
26
+ if (isHalfBody) {
27
+ return three_1.MathUtils.lerp(baseZ, baseZ + 3, depthValue / 100);
28
+ }
29
+ else {
30
+ return three_1.MathUtils.lerp(baseZ, baseZ + 3, depthValue / 100);
31
+ }
32
+ }
33
+ updateHeight(heightValue, isHalfBody) {
34
+ const heightScale = this.mapHeightToScale(heightValue, isHalfBody);
35
+ this.targetScale.set(heightScale, heightScale, heightScale);
36
+ }
37
+ updateDepth(depthValue, isHalfBody) {
38
+ return this.mapDepthToCamera(depthValue, isHalfBody);
39
+ }
40
+ updateBasePosition(isZoomed) {
41
+ const newPosition = isZoomed ? this.zoomedPosition : this.defaultPosition;
42
+ this.basePosition.copy(newPosition);
43
+ this.currentPosition.copy(newPosition);
44
+ }
45
+ updateScale(lerpFactor) {
46
+ this.currentScale.lerp(this.targetScale, lerpFactor);
47
+ return this.currentScale;
48
+ }
49
+ getPosition() {
50
+ return this.currentPosition;
51
+ }
52
+ reset() {
53
+ this.currentScale.set(1, 1, 1);
54
+ this.targetScale.set(1, 1, 1);
55
+ this.currentPosition.copy(this.defaultPosition);
56
+ this.basePosition.copy(this.defaultPosition);
57
+ }
58
+ }
59
+ exports.AvatarPositionController = AvatarPositionController;
60
+ //# sourceMappingURL=PositionController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PositionController.js","sourceRoot":"","sources":["../../../../../../src/components/Avatar/AvatarView/AvatarComponent/components/PositionController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Vector3, Euler } from 'three';
2
+ import { AnimationConfig } from './FullbodyAvatar/types';
3
+ export declare const AVATAR_POSITION: Vector3;
4
+ export declare const AVATAR_ROTATION: Euler;
5
+ export declare const AVATAR_POSITION_ZOOMED: Vector3;
6
+ export declare const SCALE_LERP_FACTOR = 0.1;
7
+ export declare const ANIMATION_URLS: {
8
+ MALE: string;
9
+ FEMALE: string;
10
+ };
11
+ export declare const BLINK_CONFIG: {
12
+ minInterval: number;
13
+ maxInterval: number;
14
+ blinkDuration: number;
15
+ };
16
+ export declare const DEFAULT_CONFIG: AnimationConfig;
17
+ export declare const EMOTION_SMOOTHING = 0.3;
18
+ export declare const VISEME_SMOOTHING = 0.5;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VISEME_SMOOTHING = exports.EMOTION_SMOOTHING = exports.DEFAULT_CONFIG = exports.BLINK_CONFIG = exports.ANIMATION_URLS = exports.SCALE_LERP_FACTOR = exports.AVATAR_POSITION_ZOOMED = exports.AVATAR_ROTATION = exports.AVATAR_POSITION = void 0;
4
+ const three_1 = require("three");
5
+ exports.AVATAR_POSITION = new three_1.Vector3(0, -1, 0);
6
+ exports.AVATAR_ROTATION = new three_1.Euler(0.175, 0, 0);
7
+ exports.AVATAR_POSITION_ZOOMED = new three_1.Vector3(0, -1.45, 0);
8
+ exports.SCALE_LERP_FACTOR = 0.1;
9
+ exports.ANIMATION_URLS = {
10
+ MALE: 'https://assets.memori.ai/api/v2/asset/2c5e88a4-cf62-408b-9ef0-518b099dfcb2.glb',
11
+ FEMALE: 'https://assets.memori.ai/api/v2/asset/2adc934b-24b2-45bd-94ad-ffec58d3cb32.glb',
12
+ };
13
+ exports.BLINK_CONFIG = {
14
+ minInterval: 1000,
15
+ maxInterval: 5000,
16
+ blinkDuration: 150,
17
+ };
18
+ exports.DEFAULT_CONFIG = {
19
+ fadeInDuration: 0.8,
20
+ fadeOutDuration: 0.8,
21
+ idleCount: 5,
22
+ timeScale: 1.0,
23
+ };
24
+ exports.EMOTION_SMOOTHING = 0.3;
25
+ exports.VISEME_SMOOTHING = 0.5;
26
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../src/components/Avatar/AvatarView/AvatarComponent/components/constants.ts"],"names":[],"mappings":";;;AAAA,iCAAuC;AAG1B,QAAA,eAAe,GAAG,IAAI,eAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxC,QAAA,eAAe,GAAG,IAAI,aAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,QAAA,sBAAsB,GAAG,IAAI,eAAO,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAClD,QAAA,iBAAiB,GAAG,GAAG,CAAC;AAExB,QAAA,cAAc,GAAG;IAC5B,IAAI,EAAE,gFAAgF;IACtF,MAAM,EACJ,gFAAgF;CACnF,CAAC;AAEW,QAAA,YAAY,GAAG;IAC1B,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,aAAa,EAAE,GAAG;CACnB,CAAC;AAEW,QAAA,cAAc,GAAoB;IAC7C,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,GAAG;IACpB,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,GAAG;CACf,CAAC;AAEW,QAAA,iBAAiB,GAAG,GAAG,CAAC;AACxB,QAAA,gBAAgB,GAAG,GAAG,CAAC"}
@@ -1,14 +1,15 @@
1
1
  interface HalfBodyAvatarProps {
2
2
  url: string;
3
3
  setMorphTargetInfluences: (morphTargetInfluences: any) => void;
4
- headMovement?: boolean;
5
- speaking?: boolean;
6
- onLoaded?: () => void;
7
4
  setMorphTargetDictionary: (morphTargetDictionary: any) => void;
8
- eyeBlink?: boolean;
9
- morphTargetInfluences: any;
10
5
  updateCurrentViseme: (currentTime: number) => any;
11
- morphTargetSmoothing?: number;
6
+ eyeBlink?: boolean;
7
+ heightValue?: number;
8
+ avatarHeight: number;
9
+ avatarDepth: number;
10
+ onLoaded?: () => void;
11
+ onCameraZChange: (value: number) => void;
12
+ headMovement?: boolean;
12
13
  }
13
- export default function HalfBodyAvatar({ url, setMorphTargetInfluences, setMorphTargetDictionary, eyeBlink, onLoaded, morphTargetSmoothing, updateCurrentViseme, }: HalfBodyAvatarProps): JSX.Element;
14
+ export default function HalfBodyAvatar({ url, setMorphTargetInfluences, setMorphTargetDictionary, updateCurrentViseme, eyeBlink, avatarHeight, avatarDepth, headMovement, onLoaded, onCameraZChange, }: HalfBodyAvatarProps): JSX.Element;
14
15
  export {};
@@ -1,102 +1,89 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
3
4
  const jsx_runtime_1 = require("react/jsx-runtime");
4
5
  const react_1 = require("react");
5
6
  const three_1 = require("three");
6
7
  const drei_1 = require("@react-three/drei");
7
- const utils_1 = require("../../../../../helpers/utils");
8
8
  const fiber_1 = require("@react-three/fiber");
9
- const three_2 = require("three");
10
- const AVATAR_POSITION = new three_1.Vector3(0, -0.6, 0);
11
- const BLINK_CONFIG = {
12
- minInterval: 1000,
13
- maxInterval: 5000,
14
- blinkDuration: 150,
15
- };
16
- function HalfBodyAvatar({ url, setMorphTargetInfluences, setMorphTargetDictionary, eyeBlink, onLoaded, morphTargetSmoothing = 0.5, updateCurrentViseme, }) {
9
+ const utils_1 = require("../../../../../helpers/utils");
10
+ const MorphTargetController_1 = require("./MorphTargetController");
11
+ const PositionController_1 = require("./PositionController");
12
+ const constants_1 = require("./constants");
13
+ const utils_2 = require("../../utils/utils");
14
+ const useHeadMovement_1 = tslib_1.__importDefault(require("../../utils/useHeadMovement"));
15
+ function HalfBodyAvatar({ url, setMorphTargetInfluences, setMorphTargetDictionary, updateCurrentViseme, eyeBlink = false, avatarHeight = 50, avatarDepth = 0, headMovement = false, onLoaded, onCameraZChange, }) {
16
+ var _a;
17
17
  const { scene } = (0, drei_1.useGLTF)(url);
18
18
  const { nodes, materials } = (0, fiber_1.useGraph)(scene);
19
- const mixer = (0, react_1.useRef)(new three_2.AnimationMixer(scene));
20
- const avatarMeshRef = (0, react_1.useRef)(null);
21
- const lastBlinkTime = (0, react_1.useRef)(0);
22
- const nextBlinkTime = (0, react_1.useRef)(0);
23
- const isBlinking = (0, react_1.useRef)(false);
24
- const blinkStartTime = (0, react_1.useRef)(0);
25
- const headMeshRef = (0, react_1.useRef)();
26
- (0, react_1.useEffect)(() => {
27
- (0, utils_1.correctMaterials)(materials);
28
- scene.traverse((object) => {
29
- if (object instanceof three_1.SkinnedMesh) {
30
- if (object.name === 'GBNL__Head' || object.name === 'Wolf3D_Avatar') {
31
- headMeshRef.current = object;
32
- if (object.morphTargetDictionary && object.morphTargetInfluences) {
33
- setMorphTargetDictionary(object.morphTargetDictionary);
34
- const initialInfluences = Object.keys(object.morphTargetDictionary).reduce((acc, key) => ({ ...acc, [key]: 0 }), {});
35
- setMorphTargetInfluences(initialInfluences);
36
- }
37
- }
19
+ const { camera } = (0, fiber_1.useThree)();
20
+ const morphTargetControllerRef = (0, react_1.useRef)();
21
+ const positionControllerRef = (0, react_1.useRef)();
22
+ const targetCameraZRef = (0, react_1.useRef)(camera.position.z);
23
+ (0, useHeadMovement_1.default)(headMovement, nodes);
24
+ const blinkStateRef = (0, react_1.useRef)({
25
+ isBlinking: false,
26
+ lastBlinkTime: 0,
27
+ nextBlinkTime: 0,
28
+ blinkStartTime: 0,
29
+ });
30
+ const headMesh = (0, react_1.useMemo)(() => {
31
+ let foundMesh;
32
+ scene === null || scene === void 0 ? void 0 : scene.traverse((object) => {
33
+ if (object instanceof three_1.SkinnedMesh &&
34
+ (object.name === 'GBNL__Head' || object.name === 'Wolf3D_Avatar')) {
35
+ foundMesh = object;
38
36
  }
39
37
  });
38
+ return foundMesh;
39
+ }, [scene]);
40
+ (0, react_1.useEffect)(() => {
41
+ if (!positionControllerRef.current) {
42
+ positionControllerRef.current = new PositionController_1.AvatarPositionController(constants_1.AVATAR_POSITION, constants_1.AVATAR_POSITION_ZOOMED);
43
+ }
44
+ if (headMesh) {
45
+ morphTargetControllerRef.current = new MorphTargetController_1.MorphTargetController(headMesh);
46
+ if (headMesh.morphTargetDictionary && headMesh.morphTargetInfluences) {
47
+ setMorphTargetDictionary(headMesh.morphTargetDictionary);
48
+ const initialInfluences = Object.keys(headMesh.morphTargetDictionary)
49
+ .reduce((acc, key) => ({ ...acc, [key]: 0 }), {});
50
+ setMorphTargetInfluences(initialInfluences);
51
+ }
52
+ }
53
+ (0, utils_1.correctMaterials)(materials);
40
54
  onLoaded === null || onLoaded === void 0 ? void 0 : onLoaded();
55
+ (0, utils_2.hideHands)(nodes);
41
56
  return () => {
42
57
  Object.values(materials).forEach(material => material.dispose());
43
58
  Object.values(nodes)
44
59
  .filter(utils_1.isSkinnedMesh)
45
60
  .forEach(mesh => mesh.geometry.dispose());
46
61
  };
47
- }, [materials, nodes, url, onLoaded, scene]);
48
- (0, fiber_1.useFrame)(state => {
49
- if (headMeshRef.current &&
50
- headMeshRef.current.morphTargetDictionary &&
51
- headMeshRef.current.morphTargetInfluences) {
52
- const currentTime = state.clock.getElapsedTime() * 1000;
53
- let blinkValue = 0;
54
- if (eyeBlink) {
55
- if (currentTime >= nextBlinkTime.current && !isBlinking.current) {
56
- isBlinking.current = true;
57
- blinkStartTime.current = currentTime;
58
- lastBlinkTime.current = currentTime;
59
- nextBlinkTime.current =
60
- currentTime +
61
- Math.random() *
62
- (BLINK_CONFIG.maxInterval - BLINK_CONFIG.minInterval) +
63
- BLINK_CONFIG.minInterval;
64
- }
65
- if (isBlinking.current) {
66
- const blinkProgress = (currentTime - blinkStartTime.current) / BLINK_CONFIG.blinkDuration;
67
- if (blinkProgress <= 0.5) {
68
- blinkValue = blinkProgress * 2;
69
- }
70
- else if (blinkProgress <= 1) {
71
- blinkValue = 2 - blinkProgress * 2;
72
- }
73
- else {
74
- isBlinking.current = false;
75
- blinkValue = 0;
76
- }
77
- }
78
- }
62
+ }, [materials, nodes, url, onLoaded, scene, headMesh]);
63
+ (0, react_1.useEffect)(() => {
64
+ if (positionControllerRef.current) {
65
+ positionControllerRef.current.updateHeight(avatarHeight, true);
66
+ }
67
+ }, [avatarHeight]);
68
+ (0, react_1.useEffect)(() => {
69
+ if (positionControllerRef.current && onCameraZChange) {
70
+ const newCameraZ = positionControllerRef.current.updateDepth(avatarDepth, true);
71
+ onCameraZChange(newCameraZ);
72
+ }
73
+ }, [avatarDepth, onCameraZChange]);
74
+ (0, fiber_1.useFrame)((state) => {
75
+ const currentTime = state.clock.elapsedTime * 1000;
76
+ if (morphTargetControllerRef.current) {
79
77
  const currentViseme = updateCurrentViseme(currentTime / 1000);
80
- Object.entries(headMeshRef.current.morphTargetDictionary).forEach(([key, index]) => {
81
- if (typeof index === 'number') {
82
- let targetValue = 0;
83
- if (currentViseme && key === currentViseme.name) {
84
- targetValue += currentViseme.weight * 1.3;
85
- }
86
- if (key === 'eyesClosed' && eyeBlink) {
87
- targetValue += blinkValue;
88
- }
89
- targetValue = three_2.MathUtils.clamp(targetValue, 0, 1);
90
- if (headMeshRef.current &&
91
- headMeshRef.current.morphTargetInfluences) {
92
- headMeshRef.current.morphTargetInfluences[index] = three_2.MathUtils.lerp(headMeshRef.current.morphTargetInfluences[index], targetValue, morphTargetSmoothing);
93
- }
94
- }
95
- });
96
- mixer.current.update(0.01);
78
+ morphTargetControllerRef.current.updateMorphTargets(currentTime, {}, currentViseme, eyeBlink, blinkStateRef.current);
79
+ }
80
+ if (scene && positionControllerRef.current) {
81
+ const newScale = positionControllerRef.current.updateScale(constants_1.SCALE_LERP_FACTOR);
82
+ scene.scale.copy(newScale);
97
83
  }
98
84
  });
99
- return ((0, jsx_runtime_1.jsx)("group", { position: AVATAR_POSITION, children: (0, jsx_runtime_1.jsx)("primitive", { object: scene }) }));
85
+ const position = ((_a = positionControllerRef.current) === null || _a === void 0 ? void 0 : _a.getPosition()) || constants_1.AVATAR_POSITION;
86
+ return ((0, jsx_runtime_1.jsx)("group", { position: position, children: (0, jsx_runtime_1.jsx)("primitive", { object: scene }) }));
100
87
  }
101
88
  exports.default = HalfBodyAvatar;
102
89
  //# sourceMappingURL=halfbodyAvatar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"halfbodyAvatar.js","sourceRoot":"","sources":["../../../../../../src/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"halfbodyAvatar.js","sourceRoot":"","sources":["../../../../../../src/components/Avatar/AvatarView/AvatarComponent/components/halfbodyAvatar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ .memori--position-controls {
2
+ position: fixed;
3
+ z-index: 1000;
4
+ top: auto; /* Remove top positioning */
5
+ top: 65px; /* Position from bottom to avoid overlapping with buttons */
6
+ left: 15px; /* Remove left positioning */
7
+ display: flex;
8
+ width: 350px; /* Fixed width */
9
+ max-width: 90%; /* Maximum width relative to screen */
10
+ height: 300px;
11
+ flex-direction: column;
12
+ padding: 16px;
13
+ border-radius: 16px;
14
+ -webkit-backdrop-filter: blur(10px);
15
+ backdrop-filter: blur(10px);
16
+ background-color: var(--memori-inner-bg, #fff);
17
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
18
+ gap: 0.5rem;
19
+ text-align: left;
20
+ transform: none; /* Remove transform */
21
+ }
22
+
23
+ /* Slider adjustments */
24
+ .memori--slider-container {
25
+ display: flex;
26
+ flex-direction: column;
27
+ padding: 8px 0;
28
+ gap: 0.75rem;
29
+ }
30
+
31
+ .memori--slider-label {
32
+ margin-bottom: 4px;
33
+ font-size: 1rem;
34
+ }
35
+
36
+ /* Button adjustments */
37
+ .memori--preset-buttons {
38
+ display: flex;
39
+ flex-direction: row;
40
+ justify-content: space-between;
41
+ margin-top: 8px;
42
+ gap: 8px;
43
+ }
44
+
45
+ .memori--preset-buttons button {
46
+ min-height: 36px;
47
+ flex: 1;
48
+ padding: 8px 4px;
49
+ font-size: 0.9rem;
50
+ }
51
+
52
+ /* Close button */
53
+ .memori--position-controls-close {
54
+ position: absolute;
55
+ top: -25px;
56
+ right: -30px;
57
+ border-radius: 50%;
58
+ background-color: var(--memori-inner-bg, #fff);
59
+ }
60
+
61
+ .memori--position-controls-close-button {
62
+ min-width: 36px;
63
+ min-height: 36px;
64
+ padding: 8px;
65
+ }
66
+
67
+ /* Totem specific adjustments */
68
+ @media screen and (max-width: 480px) {
69
+ .memori--position-controls {
70
+ right: 10px;
71
+ bottom: 80px;
72
+ width: 280px;
73
+ }
74
+
75
+ .memori--preset-buttons button {
76
+ padding: 6px 4px;
77
+ font-size: 0.85rem;
78
+ }
79
+
80
+ .memori--slider-container {
81
+ padding: 6px 0;
82
+ }
83
+ }
84
+
85
+ /* Portrait/vertical orientation */
86
+ @media screen and (min-height: 800px) {
87
+ .memori--position-controls {
88
+ bottom: 120px;
89
+ }
90
+
91
+ .memori--slider-label {
92
+ font-size: 1.1rem;
93
+ }
94
+
95
+ .memori--preset-buttons button {
96
+ padding: 10px 6px;
97
+ font-size: 1rem;
98
+ }
99
+ }
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import './positionControls.css';
3
+ interface PositionControlsProps {
4
+ avatarHeight: number;
5
+ avatarDepth: number;
6
+ halfBody: boolean;
7
+ setAvatarHeight: (value: number) => void;
8
+ setAvatarDepth: (value: number) => void;
9
+ setEnablePositionControls: (value: boolean) => void;
10
+ }
11
+ declare const PositionControls: React.FC<PositionControlsProps>;
12
+ export default PositionControls;
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const configuration_1 = require("../../../../../helpers/configuration");
7
+ const react_i18next_1 = require("react-i18next");
8
+ const Slider_1 = tslib_1.__importDefault(require("../../../../../components/ui/Slider"));
9
+ require("./positionControls.css");
10
+ const Button_1 = tslib_1.__importDefault(require("../../../../ui/Button"));
11
+ const Close_1 = tslib_1.__importDefault(require("../../../../icons/Close"));
12
+ const PositionControls = ({ avatarHeight, avatarDepth, setAvatarHeight, setAvatarDepth, halfBody, setEnablePositionControls, }) => {
13
+ const normalPosition = halfBody ? { height: 80, depth: 50 } : { height: 25, depth: 25 };
14
+ const zoomedPosition = halfBody ? { height: 55, depth: 10 } : { height: 15, depth: 5 };
15
+ const farPosition = halfBody ? { height: 100, depth: 80 } : { height: 65, depth: 100 };
16
+ const settingsRef = (0, react_1.useRef)({
17
+ height: avatarHeight,
18
+ depth: avatarDepth,
19
+ zoomed: false,
20
+ normal: false,
21
+ far: false,
22
+ });
23
+ const { t } = (0, react_i18next_1.useTranslation)();
24
+ (0, react_1.useEffect)(() => {
25
+ settingsRef.current.height = avatarHeight;
26
+ settingsRef.current.depth = avatarDepth;
27
+ }, [avatarHeight, avatarDepth]);
28
+ (0, react_1.useEffect)(() => {
29
+ const handleKeyDown = (event) => {
30
+ if (event.key === '-' || event.key === '_' && settingsRef.current.depth < 100) {
31
+ const newValue = Math.min(settingsRef.current.depth + 10, 100);
32
+ setAvatarDepth(newValue);
33
+ (0, configuration_1.setLocalConfig)('avatarDepth', newValue);
34
+ }
35
+ else if ((event.key === '+' || event.key === '=') &&
36
+ settingsRef.current.depth > -100) {
37
+ const newValue = Math.max(settingsRef.current.depth - 10, -100);
38
+ setAvatarDepth(newValue);
39
+ (0, configuration_1.setLocalConfig)('avatarDepth', newValue);
40
+ }
41
+ };
42
+ window.addEventListener('keydown', handleKeyDown);
43
+ return () => {
44
+ window.removeEventListener('keydown', handleKeyDown);
45
+ };
46
+ }, [setAvatarDepth]);
47
+ (0, react_1.useEffect)(() => {
48
+ const handleArrowUp = (event) => {
49
+ if (event.key === 'ArrowUp' && settingsRef.current.height < 100) {
50
+ const newValue = settingsRef.current.height + 5;
51
+ setAvatarHeight(newValue);
52
+ (0, configuration_1.setLocalConfig)('avatarHeight', newValue);
53
+ }
54
+ };
55
+ const handleArrowDown = (event) => {
56
+ if (event.key === 'ArrowDown' && settingsRef.current.height > 0) {
57
+ const newValue = settingsRef.current.height - 5;
58
+ setAvatarHeight(newValue);
59
+ (0, configuration_1.setLocalConfig)('avatarHeight', newValue);
60
+ }
61
+ };
62
+ window.addEventListener('keydown', handleArrowUp);
63
+ window.addEventListener('keydown', handleArrowDown);
64
+ return () => {
65
+ window.removeEventListener('keydown', handleArrowUp);
66
+ window.removeEventListener('keydown', handleArrowDown);
67
+ };
68
+ }, [setAvatarHeight]);
69
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "memori--position-controls", children: [(0, jsx_runtime_1.jsx)("div", { className: "memori--position-controls-close", children: (0, jsx_runtime_1.jsx)(Button_1.default, { ghost: true, icon: (0, jsx_runtime_1.jsx)(Close_1.default, {}), outlined: true, danger: true, shape: "circle", className: "memori--position-controls-close-button", onClick: () => {
70
+ setEnablePositionControls(false);
71
+ } }) }), (0, jsx_runtime_1.jsx)("div", { className: "memori--slider-container", children: (0, jsx_runtime_1.jsx)(Slider_1.default, { defaultValue: settingsRef.current.height, min: 0.5, max: 100, label: (0, jsx_runtime_1.jsx)("label", { className: "memori--slider-label", children: t('write_and_speak.height') }), step: 1, onChange: (value) => {
72
+ setAvatarHeight(value);
73
+ (0, configuration_1.setLocalConfig)('avatarHeight', value);
74
+ } }) }), (0, jsx_runtime_1.jsx)("div", { className: "memori--slider-container", children: (0, jsx_runtime_1.jsx)(Slider_1.default, { defaultValue: settingsRef.current.depth, min: 0.5, max: 100, step: 5, label: (0, jsx_runtime_1.jsx)("label", { className: "memori--slider-label", children: t('write_and_speak.depth') }), onChange: (value) => {
75
+ setAvatarDepth(value);
76
+ (0, configuration_1.setLocalConfig)('avatarDepth', value);
77
+ } }) }), (0, jsx_runtime_1.jsxs)("div", { className: "memori--preset-buttons", children: [(0, jsx_runtime_1.jsx)(Button_1.default, { outlined: true, isActive: avatarHeight === (halfBody ? zoomedPosition.height : normalPosition.height) &&
78
+ avatarDepth === (halfBody ? zoomedPosition.depth : normalPosition.depth), onClick: () => {
79
+ setAvatarHeight(zoomedPosition.height);
80
+ setAvatarDepth(zoomedPosition.depth);
81
+ (0, configuration_1.setLocalConfig)('avatarHeight', zoomedPosition.height);
82
+ (0, configuration_1.setLocalConfig)('avatarDepth', zoomedPosition.depth);
83
+ }, children: t('write_and_speak.zoomed') }), (0, jsx_runtime_1.jsx)(Button_1.default, { outlined: true, isActive: avatarHeight === (halfBody ? normalPosition.height : zoomedPosition.height) &&
84
+ avatarDepth === (halfBody ? normalPosition.depth : zoomedPosition.depth), onClick: () => {
85
+ setAvatarHeight(normalPosition.height);
86
+ setAvatarDepth(normalPosition.depth);
87
+ (0, configuration_1.setLocalConfig)('avatarHeight', normalPosition.height);
88
+ (0, configuration_1.setLocalConfig)('avatarDepth', normalPosition.depth);
89
+ }, children: t('write_and_speak.normal') }), (0, jsx_runtime_1.jsx)(Button_1.default, { outlined: true, isActive: avatarHeight === (halfBody ? farPosition.height : normalPosition.height) &&
90
+ avatarDepth === (halfBody ? farPosition.depth : normalPosition.depth), onClick: () => {
91
+ setAvatarHeight(farPosition.height);
92
+ setAvatarDepth(farPosition.depth);
93
+ (0, configuration_1.setLocalConfig)('avatarHeight', farPosition.height);
94
+ (0, configuration_1.setLocalConfig)('avatarDepth', farPosition.depth);
95
+ }, children: t('write_and_speak.far') })] })] }));
96
+ };
97
+ exports.default = PositionControls;
98
+ //# sourceMappingURL=positionControls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"positionControls.js","sourceRoot":"","sources":["../../../../../../src/components/Avatar/AvatarView/AvatarComponent/positionControls/positionControls.tsx"],"names":[],"mappings":"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"}
@@ -16,6 +16,9 @@ export interface Props {
16
16
  showControls?: boolean;
17
17
  isZoomed?: boolean;
18
18
  chatEmission?: any;
19
+ enablePositionControls?: boolean;
20
+ setEnablePositionControls: (value: boolean) => void;
21
+ isTotem?: boolean;
19
22
  setMeshRef?: any;
20
23
  stopProcessing: () => void;
21
24
  resetVisemeQueue: () => void;
@@ -24,4 +27,4 @@ export interface Props {
24
27
  weight: number;
25
28
  } | null;
26
29
  }
27
- export default function ContainerAvatarView({ url, sex, style, rotateAvatar, eyeBlink, headMovement, speaking, fallback, fallbackImg, halfBody, loading, animation, showControls, isZoomed, chatEmission, stopProcessing, resetVisemeQueue, updateCurrentViseme, }: Props): JSX.Element;
30
+ export default function ContainerAvatarView({ url, sex, style, rotateAvatar, eyeBlink, headMovement, speaking, fallback, fallbackImg, halfBody, loading, animation, showControls, isZoomed, chatEmission, stopProcessing, resetVisemeQueue, updateCurrentViseme, enablePositionControls, setEnablePositionControls, isTotem, }: Props): JSX.Element;