@magmamath/students-features 1.3.7 → 1.3.8-rc.2

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 (97) hide show
  1. package/dist/commonjs/features/voice/constants.js +15 -3
  2. package/dist/commonjs/features/voice/constants.js.map +1 -1
  3. package/dist/commonjs/features/voice/recording/components/VoiceRecord.js +19 -7
  4. package/dist/commonjs/features/voice/recording/components/VoiceRecord.js.map +1 -1
  5. package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js +84 -27
  6. package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
  7. package/dist/commonjs/features/voice/recording/components/VoiceRecordDeleteButton.js +2 -2
  8. package/dist/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.js +3 -3
  9. package/dist/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.js.map +1 -1
  10. package/dist/commonjs/features/voice/types.js +6 -0
  11. package/dist/commonjs/features/voice/types.js.map +1 -1
  12. package/dist/module/features/voice/constants.js +14 -2
  13. package/dist/module/features/voice/constants.js.map +1 -1
  14. package/dist/module/features/voice/recording/components/VoiceRecord.js +20 -8
  15. package/dist/module/features/voice/recording/components/VoiceRecord.js.map +1 -1
  16. package/dist/module/features/voice/recording/components/VoiceRecordButton.js +86 -29
  17. package/dist/module/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
  18. package/dist/module/features/voice/recording/components/VoiceRecordDeleteButton.js +2 -2
  19. package/dist/module/features/voice/recording/hooks/useVoiceRecorderAnimation.js +3 -3
  20. package/dist/module/features/voice/recording/hooks/useVoiceRecorderAnimation.js.map +1 -1
  21. package/dist/module/features/voice/types.js +5 -1
  22. package/dist/module/features/voice/types.js.map +1 -1
  23. package/dist/typescript/commonjs/features/voice/constants.d.ts +12 -2
  24. package/dist/typescript/commonjs/features/voice/constants.d.ts.map +1 -1
  25. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecord.d.ts +3 -1
  26. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecord.d.ts.map +1 -1
  27. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordButton.d.ts +3 -3
  28. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
  29. package/dist/typescript/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts +2 -1
  30. package/dist/typescript/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts.map +1 -1
  31. package/dist/typescript/commonjs/features/voice/types.d.ts +4 -0
  32. package/dist/typescript/commonjs/features/voice/types.d.ts.map +1 -1
  33. package/dist/typescript/module/features/voice/constants.d.ts +12 -2
  34. package/dist/typescript/module/features/voice/constants.d.ts.map +1 -1
  35. package/dist/typescript/module/features/voice/recording/components/VoiceRecord.d.ts +3 -1
  36. package/dist/typescript/module/features/voice/recording/components/VoiceRecord.d.ts.map +1 -1
  37. package/dist/typescript/module/features/voice/recording/components/VoiceRecordButton.d.ts +3 -3
  38. package/dist/typescript/module/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
  39. package/dist/typescript/module/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts +2 -1
  40. package/dist/typescript/module/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts.map +1 -1
  41. package/dist/typescript/module/features/voice/types.d.ts +4 -0
  42. package/dist/typescript/module/features/voice/types.d.ts.map +1 -1
  43. package/package.json +1 -1
  44. package/src/features/voice/constants.ts +14 -2
  45. package/src/features/voice/recording/components/VoiceRecord.tsx +27 -7
  46. package/src/features/voice/recording/components/VoiceRecordButton.tsx +113 -30
  47. package/src/features/voice/recording/components/VoiceRecordDeleteButton.tsx +2 -2
  48. package/src/features/voice/recording/hooks/useVoiceRecorderAnimation.ts +8 -4
  49. package/src/features/voice/types.ts +5 -0
  50. package/.claude/settings.local.json +0 -25
  51. package/.editorconfig +0 -15
  52. package/.eslintignore +0 -2
  53. package/.eslintrc +0 -22
  54. package/.gitattributes +0 -3
  55. package/.github/actions/setup/action.yml +0 -37
  56. package/.github/workflows/ci.yml +0 -73
  57. package/.gitignore +0 -84
  58. package/.idea/.gitignore +0 -8
  59. package/.idea/codeStyles/Project.xml +0 -62
  60. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  61. package/.idea/copilot.data.migration.agent.xml +0 -6
  62. package/.idea/copilot.data.migration.ask.xml +0 -6
  63. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  64. package/.idea/copilot.data.migration.edit.xml +0 -6
  65. package/.idea/inspectionProfiles/Project_Default.xml +0 -8
  66. package/.idea/jsLinters/eslint.xml +0 -6
  67. package/.idea/modules.xml +0 -8
  68. package/.idea/prettier.xml +0 -7
  69. package/.idea/students-features.iml +0 -12
  70. package/.idea/vcs.xml +0 -6
  71. package/.idea/workspace.xml +0 -672
  72. package/.nvmrc +0 -1
  73. package/.prettierrc +0 -11
  74. package/.release-it.json +0 -17
  75. package/.watchmanconfig +0 -1
  76. package/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +0 -541
  77. package/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs +0 -28
  78. package/.yarn/releases/yarn-3.6.1.cjs +0 -874
  79. package/babel.config.js +0 -5
  80. package/bob.config.js +0 -25
  81. package/example/.expo/README.md +0 -8
  82. package/example/.expo/devices.json +0 -3
  83. package/example/.expo/web/cache/production/images/favicon/favicon-24272cdaeff82cc5facdaccd982a6f05b60c4504704bbf94c19a6388659880bb-contain-transparent/favicon-48.png +0 -0
  84. package/example/app.json +0 -30
  85. package/example/assets/adaptive-icon.png +0 -0
  86. package/example/assets/favicon.png +0 -0
  87. package/example/assets/icon.png +0 -0
  88. package/example/assets/splash-icon.png +0 -0
  89. package/example/babel.config.js +0 -28
  90. package/example/index.js +0 -8
  91. package/example/metro.config.js +0 -18
  92. package/example/package.json +0 -25
  93. package/example/src/App.tsx +0 -8
  94. package/example/tsconfig.json +0 -6
  95. package/tsconfig.build.json +0 -4
  96. package/tsconfig.json +0 -34
  97. package/yarn.lock +0 -10984
@@ -1,57 +1,114 @@
1
1
  "use strict";
2
2
 
3
- import React, { useMemo } from 'react';
4
- import { Button, ButtonColor, ButtonSize, ButtonVariant, IS_WEB } from '@magmamath/react-native-ui';
5
- import { Pressable } from 'react-native';
6
- import { MicrophoneIcon, CheckIcon } from '@magmamath/react-native-ui';
3
+ import React from 'react';
4
+ import { BORDER_RADIUS, Button, ButtonColor, ButtonSize, ButtonVariant, CheckIcon, COLORS, IS_WEB, MicrophoneIcon } from '@magmamath/react-native-ui';
5
+ import { Pressable, StyleSheet, View } from 'react-native';
7
6
  import { useUnit } from 'effector-react';
8
- import { VoiceRecorderState } from "../../constants.js";
7
+ import { VOICE_RECORD_SHADOWS, VoiceRecorderState } from "../../constants.js";
9
8
  import { useText } from "../../../../shared/translation/index.js";
9
+ import { RecordButtonVariant } from "../../types.js";
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
+ const defaultButtonStyles = {
12
+ button: {
13
+ width: 50,
14
+ height: 50
15
+ }
16
+ };
11
17
  export const VoiceRecordButton = ({
12
- style,
13
- model
18
+ model,
19
+ buttonVariant
14
20
  }) => {
15
21
  const t = useText();
16
22
  const availableInputs = useUnit(model.recorderModel.$availableInputs);
17
23
  const voiceRecordState = useUnit(model.recorderModel.$voiceRecordState);
18
24
  const isButtonDisabled = useUnit(model.$isButtonDisabled);
19
25
  const isInitializing = useUnit(model.initializeRecording.pending);
20
- const combinedStyles = useMemo(() => {
21
- return {
22
- button: [{
23
- width: 50,
24
- height: 50
25
- }, style?.button],
26
- container: [style?.container],
27
- text: [style?.text]
28
- };
29
- }, [style]);
26
+ const isRecording = voiceRecordState === VoiceRecorderState.RECORDING;
27
+ const isIdle = voiceRecordState === VoiceRecorderState.IDLE;
28
+ const hasInputs = availableInputs.length > 0;
30
29
  return /*#__PURE__*/_jsx(Pressable, {
31
30
  onPressIn: e => {
32
- if (availableInputs.length) return;
31
+ if (hasInputs) return;
33
32
  e.preventDefault();
34
33
  model.notification.warning(t('voice.noMicrophoneFound'));
35
34
  },
36
- pointerEvents: !availableInputs.length || isInitializing ? 'box-only' : 'auto',
37
- children: /*#__PURE__*/_jsx(Button, {
38
- disabled: isButtonDisabled || !availableInputs.length,
35
+ pointerEvents: !hasInputs || isInitializing ? 'box-only' : 'auto',
36
+ style: [isButtonDisabled ? styles.disabledCursor : undefined],
37
+ children: buttonVariant === RecordButtonVariant.ADVANCED ? /*#__PURE__*/_jsx(AdvancedButton, {
38
+ isRecording: isRecording,
39
+ isIdle: isIdle,
40
+ disabled: isButtonDisabled,
41
+ onPressIn: () => model.recorderButtonHandler()
42
+ }) : /*#__PURE__*/_jsx(Button, {
43
+ disabled: isButtonDisabled,
39
44
  onPressIn: () => model.recorderButtonHandler(),
40
- style: combinedStyles,
45
+ style: defaultButtonStyles,
41
46
  size: ButtonSize.LARGE,
42
47
  variant: ButtonVariant.SECONDARY,
43
48
  colorScheme: ButtonColor.WHITE,
44
- icon: voiceRecordState === VoiceRecorderState.RECORDING ? /*#__PURE__*/_jsx(CheckIcon, {
49
+ icon: isRecording ? /*#__PURE__*/_jsx(CheckIcon, {
45
50
  size: 25
46
51
  }) : /*#__PURE__*/_jsx(MicrophoneIcon, {
47
- style: IS_WEB ? {
48
- width: 19
49
- } : {
50
- minWidth: 23,
51
- minHeight: 23
52
- }
52
+ style: IS_WEB ? styles.microphoneIconWeb : styles.microphoneIconNative
53
53
  })
54
54
  })
55
55
  });
56
56
  };
57
+ const AdvancedButton = ({
58
+ isRecording,
59
+ isIdle,
60
+ disabled,
61
+ onPressIn
62
+ }) => /*#__PURE__*/_jsx(Pressable, {
63
+ style: [styles.advancedButtonContainer, disabled && styles.disabledCursor],
64
+ onPressIn: onPressIn,
65
+ disabled: disabled,
66
+ children: /*#__PURE__*/_jsx(View, {
67
+ style: [styles.advancedIconContainer, !isIdle && styles.advancedIconContainerActive],
68
+ children: isRecording ? /*#__PURE__*/_jsx(CheckIcon, {
69
+ size: 18,
70
+ color: COLORS.NEUTRAL_1
71
+ }) : /*#__PURE__*/_jsx(MicrophoneIcon, {
72
+ style: styles.advancedMicrophoneIcon,
73
+ color: disabled ? COLORS.NEUTRAL_5 : isIdle ? COLORS.NEUTRAL_9 : COLORS.NEUTRAL_1
74
+ })
75
+ })
76
+ });
77
+ const styles = StyleSheet.create({
78
+ advancedButtonContainer: {
79
+ width: 52,
80
+ height: 52,
81
+ backgroundColor: 'white',
82
+ alignItems: 'center',
83
+ justifyContent: 'center',
84
+ borderRadius: BORDER_RADIUS[300],
85
+ boxShadow: VOICE_RECORD_SHADOWS[RecordButtonVariant.ADVANCED]
86
+ },
87
+ advancedIconContainer: {
88
+ width: 36,
89
+ height: 36,
90
+ borderRadius: BORDER_RADIUS[300],
91
+ justifyContent: 'center',
92
+ alignItems: 'center'
93
+ },
94
+ disabledCursor: {
95
+ // @ts-expect-error web-only property
96
+ cursor: 'not-allowed'
97
+ },
98
+ microphoneIconWeb: {
99
+ width: 19
100
+ },
101
+ microphoneIconNative: {
102
+ minWidth: 23,
103
+ minHeight: 23
104
+ },
105
+ advancedIconContainerActive: {
106
+ borderRadius: 32,
107
+ backgroundColor: COLORS.PRIMARY_BLUE
108
+ },
109
+ advancedMicrophoneIcon: {
110
+ width: 14,
111
+ height: 19
112
+ }
113
+ });
57
114
  //# sourceMappingURL=VoiceRecordButton.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","Button","ButtonColor","ButtonSize","ButtonVariant","IS_WEB","Pressable","MicrophoneIcon","CheckIcon","useUnit","VoiceRecorderState","useText","jsx","_jsx","VoiceRecordButton","style","model","t","availableInputs","recorderModel","$availableInputs","voiceRecordState","$voiceRecordState","isButtonDisabled","$isButtonDisabled","isInitializing","initializeRecording","pending","combinedStyles","button","width","height","container","text","onPressIn","e","length","preventDefault","notification","warning","pointerEvents","children","disabled","recorderButtonHandler","size","LARGE","variant","SECONDARY","colorScheme","WHITE","icon","RECORDING","minWidth","minHeight"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/components/VoiceRecordButton.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SACEC,MAAM,EACNC,WAAW,EACXC,UAAU,EAEVC,aAAa,EACbC,MAAM,QACD,4BAA4B;AACnC,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,cAAc,EAAEC,SAAS,QAAQ,4BAA4B;AAEtE,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,kBAAkB,QAAQ,oBAAiB;AACpD,SAASC,OAAO,QAAQ,yCAAgC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAOxD,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAA8B,CAAC,KAAK;EAC7E,MAAMC,CAAC,GAAGN,OAAO,CAAC,CAAC;EAEnB,MAAMO,eAAe,GAAGT,OAAO,CAACO,KAAK,CAACG,aAAa,CAACC,gBAAgB,CAAC;EACrE,MAAMC,gBAAgB,GAAGZ,OAAO,CAACO,KAAK,CAACG,aAAa,CAACG,iBAAiB,CAAC;EACvE,MAAMC,gBAAgB,GAAGd,OAAO,CAACO,KAAK,CAACQ,iBAAiB,CAAC;EACzD,MAAMC,cAAc,GAAGhB,OAAO,CAACO,KAAK,CAACU,mBAAmB,CAACC,OAAO,CAAC;EAEjE,MAAMC,cAAc,GAAG5B,OAAO,CAAC,MAAmB;IAChD,OAAO;MACL6B,MAAM,EAAE,CAAC;QAAEC,KAAK,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAG,CAAC,EAAEhB,KAAK,EAAEc,MAAM,CAAC;MAClDG,SAAS,EAAE,CAACjB,KAAK,EAAEiB,SAAS,CAAC;MAC7BC,IAAI,EAAE,CAAClB,KAAK,EAAEkB,IAAI;IACpB,CAAC;EACH,CAAC,EAAE,CAAClB,KAAK,CAAC,CAAC;EAEX,oBACEF,IAAA,CAACP,SAAS;IACR4B,SAAS,EAAGC,CAAC,IAAK;MAChB,IAAIjB,eAAe,CAACkB,MAAM,EAAE;MAC5BD,CAAC,CAACE,cAAc,CAAC,CAAC;MAClBrB,KAAK,CAACsB,YAAY,CAACC,OAAO,CAACtB,CAAC,CAAC,yBAAyB,CAAC,CAAC;IAC1D,CAAE;IACFuB,aAAa,EAAE,CAACtB,eAAe,CAACkB,MAAM,IAAIX,cAAc,GAAG,UAAU,GAAG,MAAO;IAAAgB,QAAA,eAE/E5B,IAAA,CAACZ,MAAM;MACLyC,QAAQ,EAAEnB,gBAAgB,IAAI,CAACL,eAAe,CAACkB,MAAO;MACtDF,SAAS,EAAEA,CAAA,KAAMlB,KAAK,CAAC2B,qBAAqB,CAAC,CAAE;MAC/C5B,KAAK,EAAEa,cAAe;MACtBgB,IAAI,EAAEzC,UAAU,CAAC0C,KAAM;MACvBC,OAAO,EAAE1C,aAAa,CAAC2C,SAAU;MACjCC,WAAW,EAAE9C,WAAW,CAAC+C,KAAM;MAC/BC,IAAI,EACF7B,gBAAgB,KAAKX,kBAAkB,CAACyC,SAAS,gBAC/CtC,IAAA,CAACL,SAAS;QAACoC,IAAI,EAAE;MAAG,CAAE,CAAC,gBAEvB/B,IAAA,CAACN,cAAc;QAACQ,KAAK,EAAEV,MAAM,GAAG;UAAEyB,KAAK,EAAE;QAAG,CAAC,GAAG;UAAEsB,QAAQ,EAAE,EAAE;UAAEC,SAAS,EAAE;QAAG;MAAE,CAAE;IAErF,CACF;EAAC,CACO,CAAC;AAEhB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","BORDER_RADIUS","Button","ButtonColor","ButtonSize","ButtonVariant","CheckIcon","COLORS","IS_WEB","MicrophoneIcon","Pressable","StyleSheet","View","useUnit","VOICE_RECORD_SHADOWS","VoiceRecorderState","useText","RecordButtonVariant","jsx","_jsx","defaultButtonStyles","button","width","height","VoiceRecordButton","model","buttonVariant","t","availableInputs","recorderModel","$availableInputs","voiceRecordState","$voiceRecordState","isButtonDisabled","$isButtonDisabled","isInitializing","initializeRecording","pending","isRecording","RECORDING","isIdle","IDLE","hasInputs","length","onPressIn","e","preventDefault","notification","warning","pointerEvents","style","styles","disabledCursor","undefined","children","ADVANCED","AdvancedButton","disabled","recorderButtonHandler","size","LARGE","variant","SECONDARY","colorScheme","WHITE","icon","microphoneIconWeb","microphoneIconNative","advancedButtonContainer","advancedIconContainer","advancedIconContainerActive","color","NEUTRAL_1","advancedMicrophoneIcon","NEUTRAL_5","NEUTRAL_9","create","backgroundColor","alignItems","justifyContent","borderRadius","boxShadow","cursor","minWidth","minHeight","PRIMARY_BLUE"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/components/VoiceRecordButton.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,aAAa,EACbC,MAAM,EACNC,WAAW,EACXC,UAAU,EAEVC,aAAa,EACbC,SAAS,EACTC,MAAM,EACNC,MAAM,EACNC,cAAc,QACT,4BAA4B;AACnC,SAASC,SAAS,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE1D,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,oBAAoB,EAAEC,kBAAkB,QAAQ,oBAAiB;AAC1E,SAASC,OAAO,QAAQ,yCAAgC;AACxD,SAASC,mBAAmB,QAAQ,gBAAa;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAOjD,MAAMC,mBAAgC,GAAG;EACvCC,MAAM,EAAE;IACNC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV;AACF,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAAsC,CAAC,KAAK;EACrF,MAAMC,CAAC,GAAGX,OAAO,CAAC,CAAC;EAEnB,MAAMY,eAAe,GAAGf,OAAO,CAACY,KAAK,CAACI,aAAa,CAACC,gBAAgB,CAAC;EACrE,MAAMC,gBAAgB,GAAGlB,OAAO,CAACY,KAAK,CAACI,aAAa,CAACG,iBAAiB,CAAC;EACvE,MAAMC,gBAAgB,GAAGpB,OAAO,CAACY,KAAK,CAACS,iBAAiB,CAAC;EACzD,MAAMC,cAAc,GAAGtB,OAAO,CAACY,KAAK,CAACW,mBAAmB,CAACC,OAAO,CAAC;EAEjE,MAAMC,WAAW,GAAGP,gBAAgB,KAAKhB,kBAAkB,CAACwB,SAAS;EACrE,MAAMC,MAAM,GAAGT,gBAAgB,KAAKhB,kBAAkB,CAAC0B,IAAI;EAC3D,MAAMC,SAAS,GAAGd,eAAe,CAACe,MAAM,GAAG,CAAC;EAE5C,oBACExB,IAAA,CAACT,SAAS;IACRkC,SAAS,EAAGC,CAAC,IAAK;MAChB,IAAIH,SAAS,EAAE;MACfG,CAAC,CAACC,cAAc,CAAC,CAAC;MAClBrB,KAAK,CAACsB,YAAY,CAACC,OAAO,CAACrB,CAAC,CAAC,yBAAyB,CAAC,CAAC;IAC1D,CAAE;IACFsB,aAAa,EAAE,CAACP,SAAS,IAAIP,cAAc,GAAG,UAAU,GAAG,MAAO;IAClEe,KAAK,EAAE,CAACjB,gBAAgB,GAAGkB,MAAM,CAACC,cAAc,GAAGC,SAAS,CAAE;IAAAC,QAAA,EAE7D5B,aAAa,KAAKT,mBAAmB,CAACsC,QAAQ,gBAC7CpC,IAAA,CAACqC,cAAc;MACblB,WAAW,EAAEA,WAAY;MACzBE,MAAM,EAAEA,MAAO;MACfiB,QAAQ,EAAExB,gBAAiB;MAC3BW,SAAS,EAAEA,CAAA,KAAMnB,KAAK,CAACiC,qBAAqB,CAAC;IAAE,CAChD,CAAC,gBAEFvC,IAAA,CAACjB,MAAM;MACLuD,QAAQ,EAAExB,gBAAiB;MAC3BW,SAAS,EAAEA,CAAA,KAAMnB,KAAK,CAACiC,qBAAqB,CAAC,CAAE;MAC/CR,KAAK,EAAE9B,mBAAoB;MAC3BuC,IAAI,EAAEvD,UAAU,CAACwD,KAAM;MACvBC,OAAO,EAAExD,aAAa,CAACyD,SAAU;MACjCC,WAAW,EAAE5D,WAAW,CAAC6D,KAAM;MAC/BC,IAAI,EACF3B,WAAW,gBACTnB,IAAA,CAACb,SAAS;QAACqD,IAAI,EAAE;MAAG,CAAE,CAAC,gBAEvBxC,IAAA,CAACV,cAAc;QACbyC,KAAK,EAAE1C,MAAM,GAAG2C,MAAM,CAACe,iBAAiB,GAAGf,MAAM,CAACgB;MAAqB,CACxE;IAEJ,CACF;EACF,CACQ,CAAC;AAEhB,CAAC;AASD,MAAMX,cAAc,GAAGA,CAAC;EAAElB,WAAW;EAAEE,MAAM;EAAEiB,QAAQ;EAAEb;AAA+B,CAAC,kBACvFzB,IAAA,CAACT,SAAS;EACRwC,KAAK,EAAE,CAACC,MAAM,CAACiB,uBAAuB,EAAEX,QAAQ,IAAIN,MAAM,CAACC,cAAc,CAAE;EAC3ER,SAAS,EAAEA,SAAU;EACrBa,QAAQ,EAAEA,QAAS;EAAAH,QAAA,eAEnBnC,IAAA,CAACP,IAAI;IAACsC,KAAK,EAAE,CAACC,MAAM,CAACkB,qBAAqB,EAAE,CAAC7B,MAAM,IAAIW,MAAM,CAACmB,2BAA2B,CAAE;IAAAhB,QAAA,EACxFhB,WAAW,gBACVnB,IAAA,CAACb,SAAS;MAACqD,IAAI,EAAE,EAAG;MAACY,KAAK,EAAEhE,MAAM,CAACiE;IAAU,CAAE,CAAC,gBAEhDrD,IAAA,CAACV,cAAc;MACbyC,KAAK,EAAEC,MAAM,CAACsB,sBAAuB;MACrCF,KAAK,EAAEd,QAAQ,GAAGlD,MAAM,CAACmE,SAAS,GAAGlC,MAAM,GAAGjC,MAAM,CAACoE,SAAS,GAAGpE,MAAM,CAACiE;IAAU,CACnF;EACF,CACG;AAAC,CACE,CACZ;AAED,MAAMrB,MAAM,GAAGxC,UAAU,CAACiE,MAAM,CAAC;EAC/BR,uBAAuB,EAAE;IACvB9C,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVsD,eAAe,EAAE,OAAO;IACxBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,YAAY,EAAE/E,aAAa,CAAC,GAAG,CAAC;IAChCgF,SAAS,EAAEnE,oBAAoB,CAACG,mBAAmB,CAACsC,QAAQ;EAC9D,CAAC;EACDc,qBAAqB,EAAE;IACrB/C,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVyD,YAAY,EAAE/E,aAAa,CAAC,GAAG,CAAC;IAChC8E,cAAc,EAAE,QAAQ;IACxBD,UAAU,EAAE;EACd,CAAC;EACD1B,cAAc,EAAE;IACd;IACA8B,MAAM,EAAE;EACV,CAAC;EACDhB,iBAAiB,EAAE;IACjB5C,KAAK,EAAE;EACT,CAAC;EACD6C,oBAAoB,EAAE;IACpBgB,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE;EACb,CAAC;EACDd,2BAA2B,EAAE;IAC3BU,YAAY,EAAE,EAAE;IAChBH,eAAe,EAAEtE,MAAM,CAAC8E;EAC1B,CAAC;EACDZ,sBAAsB,EAAE;IACtBnD,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
@@ -20,8 +20,8 @@ export const VoiceRecordDeleteButton = ({
20
20
  };
21
21
  const styles = StyleSheet.create({
22
22
  container: {
23
- width: 36,
24
- height: 36,
23
+ width: 32,
24
+ height: 32,
25
25
  alignItems: 'center',
26
26
  justifyContent: 'center'
27
27
  }
@@ -2,14 +2,14 @@
2
2
 
3
3
  import { useAnimatedStyle, withTiming } from 'react-native-reanimated';
4
4
  import { VOICE_RECORDER_CONTAINER_SIZES } from "../../constants.js";
5
- export const useVoiceRecorderAnimation = isExpanded => {
5
+ export const useVoiceRecorderAnimation = (isExpanded, buttonVariant) => {
6
6
  const containerAnimatedStyle = useAnimatedStyle(() => {
7
7
  return {
8
- height: withTiming(isExpanded ? VOICE_RECORDER_CONTAINER_SIZES.EXPANDED : VOICE_RECORDER_CONTAINER_SIZES.COLLAPSED, {
8
+ height: withTiming(isExpanded ? VOICE_RECORDER_CONTAINER_SIZES.EXPANDED[buttonVariant] : VOICE_RECORDER_CONTAINER_SIZES.COLLAPSED[buttonVariant], {
9
9
  duration: 280
10
10
  })
11
11
  };
12
- }, [isExpanded]);
12
+ }, [isExpanded, buttonVariant]);
13
13
  return {
14
14
  containerAnimatedStyle
15
15
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useAnimatedStyle","withTiming","VOICE_RECORDER_CONTAINER_SIZES","useVoiceRecorderAnimation","isExpanded","containerAnimatedStyle","height","EXPANDED","COLLAPSED","duration"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/hooks/useVoiceRecorderAnimation.ts"],"mappings":";;AAAA,SAASA,gBAAgB,EAAEC,UAAU,QAAQ,yBAAyB;AACtE,SAASC,8BAA8B,QAAQ,oBAAiB;AAEhE,OAAO,MAAMC,yBAAyB,GAAIC,UAAmB,IAAK;EAChE,MAAMC,sBAAsB,GAAGL,gBAAgB,CAAC,MAAM;IACpD,OAAO;MACLM,MAAM,EAAEL,UAAU,CAChBG,UAAU,GACNF,8BAA8B,CAACK,QAAQ,GACvCL,8BAA8B,CAACM,SAAS,EAC5C;QACEC,QAAQ,EAAE;MACZ,CACF;IACF,CAAC;EACH,CAAC,EAAE,CAACL,UAAU,CAAC,CAAC;EAEhB,OAAO;IAAEC;EAAuB,CAAC;AACnC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useAnimatedStyle","withTiming","VOICE_RECORDER_CONTAINER_SIZES","useVoiceRecorderAnimation","isExpanded","buttonVariant","containerAnimatedStyle","height","EXPANDED","COLLAPSED","duration"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/hooks/useVoiceRecorderAnimation.ts"],"mappings":";;AAAA,SAASA,gBAAgB,EAAEC,UAAU,QAAQ,yBAAyB;AACtE,SAASC,8BAA8B,QAAQ,oBAAiB;AAGhE,OAAO,MAAMC,yBAAyB,GAAGA,CACvCC,UAAmB,EACnBC,aAAkC,KAC/B;EACH,MAAMC,sBAAsB,GAAGN,gBAAgB,CAAC,MAAM;IACpD,OAAO;MACLO,MAAM,EAAEN,UAAU,CAChBG,UAAU,GACNF,8BAA8B,CAACM,QAAQ,CAACH,aAAa,CAAC,GACtDH,8BAA8B,CAACO,SAAS,CAACJ,aAAa,CAAC,EAC3D;QACEK,QAAQ,EAAE;MACZ,CACF;IACF,CAAC;EACH,CAAC,EAAE,CAACN,UAAU,EAAEC,aAAa,CAAC,CAAC;EAE/B,OAAO;IAAEC;EAAuB,CAAC;AACnC,CAAC","ignoreList":[]}
@@ -1,4 +1,8 @@
1
1
  "use strict";
2
2
 
3
- export {};
3
+ export let RecordButtonVariant = /*#__PURE__*/function (RecordButtonVariant) {
4
+ RecordButtonVariant["DEFAULT"] = "default";
5
+ RecordButtonVariant["ADVANCED"] = "advanced";
6
+ return RecordButtonVariant;
7
+ }({});
4
8
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["features/voice/types.ts"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":["RecordButtonVariant"],"sourceRoot":"../../../../src","sources":["features/voice/types.ts"],"mappings":";;AAqFA,WAAYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA","ignoreList":[]}
@@ -1,6 +1,12 @@
1
1
  export declare const VOICE_RECORDER_CONTAINER_SIZES: {
2
- COLLAPSED: number;
3
- EXPANDED: number;
2
+ COLLAPSED: {
3
+ default: number;
4
+ advanced: number;
5
+ };
6
+ EXPANDED: {
7
+ default: number;
8
+ advanced: number;
9
+ };
4
10
  };
5
11
  export declare const VOICE_RECORDER_MAX_DURATION_MS = 60000;
6
12
  export declare const VOICE_RECORDER_MIN_DURATION_MS = 300;
@@ -13,4 +19,8 @@ export declare const DROPDOWN_MAX_CONTENT_HEIGHT = 330;
13
19
  export declare const TRANSCRIPT_RETRY_INTERVAL_MS = 4000;
14
20
  export declare const TRANSCRIPT_MAX_RETRIES = 15;
15
21
  export declare const NO_AUDIO_BE_MESSAGE = "No audio";
22
+ export declare const VOICE_RECORD_SHADOWS: {
23
+ default: string;
24
+ advanced: string;
25
+ };
16
26
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/voice/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B;;;CAG1C,CAAA;AACD,eAAO,MAAM,8BAA8B,QAAQ,CAAA;AACnD,eAAO,MAAM,8BAA8B,MAAM,CAAA;AACjD,oBAAY,kBAAkB;IAC5B,IAAI,IAAA;IACJ,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AACD,eAAO,MAAM,2BAA2B,MAAM,CAAA;AAC9C,eAAO,MAAM,4BAA4B,OAAO,CAAA;AAChD,eAAO,MAAM,sBAAsB,KAAK,CAAA;AACxC,eAAO,MAAM,mBAAmB,aAAa,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/voice/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B;;;;;;;;;CAS1C,CAAA;AACD,eAAO,MAAM,8BAA8B,QAAQ,CAAA;AACnD,eAAO,MAAM,8BAA8B,MAAM,CAAA;AACjD,oBAAY,kBAAkB;IAC5B,IAAI,IAAA;IACJ,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AACD,eAAO,MAAM,2BAA2B,MAAM,CAAA;AAC9C,eAAO,MAAM,4BAA4B,OAAO,CAAA;AAChD,eAAO,MAAM,sBAAsB,KAAK,CAAA;AACxC,eAAO,MAAM,mBAAmB,aAAa,CAAA;AAG7C,eAAO,MAAM,oBAAoB;;;CAGhC,CAAA"}
@@ -1,10 +1,12 @@
1
1
  import { StyleProp, ViewStyle } from 'react-native';
2
2
  import React from 'react';
3
3
  import { VoiceRecordModel } from '../model/VoiceRecord.model';
4
+ import { RecordButtonVariant } from '../../types';
4
5
  type VoiceRecordProps = {
5
6
  style?: StyleProp<ViewStyle>;
6
7
  model: VoiceRecordModel;
8
+ buttonVariant: RecordButtonVariant;
7
9
  };
8
- export declare const VoiceRecord: ({ style, model }: VoiceRecordProps) => React.JSX.Element;
10
+ export declare const VoiceRecord: ({ style, model, buttonVariant }: VoiceRecordProps) => React.JSX.Element;
9
11
  export {};
10
12
  //# sourceMappingURL=VoiceRecord.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceRecord.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/components/VoiceRecord.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAc,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAoB,MAAM,OAAO,CAAA;AAMxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAK7D,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,KAAK,EAAE,gBAAgB,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,WAAW,qBAAsB,gBAAgB,sBA4B7D,CAAA"}
1
+ {"version":3,"file":"VoiceRecord.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/components/VoiceRecord.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAc,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAoB,MAAM,OAAO,CAAA;AAMxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,KAAK,EAAE,gBAAgB,CAAA;IACvB,aAAa,EAAE,mBAAmB,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,WAAW,oCAAqC,gBAAgB,sBAuC5E,CAAA"}
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
- import { ButtonStyle } from '@magmamath/react-native-ui';
3
2
  import { VoiceRecordModel } from '../model/VoiceRecord.model';
3
+ import { RecordButtonVariant } from '../../types';
4
4
  type VoiceRecordButtonProps = {
5
- style?: ButtonStyle;
6
5
  model: VoiceRecordModel;
6
+ buttonVariant: RecordButtonVariant;
7
7
  };
8
- export declare const VoiceRecordButton: ({ style, model }: VoiceRecordButtonProps) => React.JSX.Element;
8
+ export declare const VoiceRecordButton: ({ model, buttonVariant }: VoiceRecordButtonProps) => React.JSX.Element;
9
9
  export {};
10
10
  //# sourceMappingURL=VoiceRecordButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceRecordButton.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/components/VoiceRecordButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AACtC,OAAO,EAIL,WAAW,EAGZ,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAK7D,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,gBAAgB,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,iBAAiB,qBAAsB,sBAAsB,sBA0CzE,CAAA"}
1
+ {"version":3,"file":"VoiceRecordButton.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/components/VoiceRecordButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,gBAAgB,CAAA;IACvB,aAAa,EAAE,mBAAmB,CAAA;CACnC,CAAA;AASD,eAAO,MAAM,iBAAiB,6BAA8B,sBAAsB,sBAkDjF,CAAA"}
@@ -1,4 +1,5 @@
1
- export declare const useVoiceRecorderAnimation: (isExpanded: boolean) => {
1
+ import { RecordButtonVariant } from '../../types';
2
+ export declare const useVoiceRecorderAnimation: (isExpanded: boolean, buttonVariant: RecordButtonVariant) => {
2
3
  containerAnimatedStyle: {
3
4
  height: number;
4
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useVoiceRecorderAnimation.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/hooks/useVoiceRecorderAnimation.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB,eAAgB,OAAO;;;;CAe5D,CAAA"}
1
+ {"version":3,"file":"useVoiceRecorderAnimation.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/hooks/useVoiceRecorderAnimation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,yBAAyB,eACxB,OAAO,iBACJ,mBAAmB;;;;CAgBnC,CAAA"}
@@ -68,5 +68,9 @@ export type VoiceTranscriptionItem = {
68
68
  controller?: AbortController;
69
69
  hasDrawing?: boolean;
70
70
  };
71
+ export declare enum RecordButtonVariant {
72
+ DEFAULT = "default",
73
+ ADVANCED = "advanced"
74
+ }
71
75
  export {};
72
76
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/voice/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/voice/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  export declare const VOICE_RECORDER_CONTAINER_SIZES: {
2
- COLLAPSED: number;
3
- EXPANDED: number;
2
+ COLLAPSED: {
3
+ default: number;
4
+ advanced: number;
5
+ };
6
+ EXPANDED: {
7
+ default: number;
8
+ advanced: number;
9
+ };
4
10
  };
5
11
  export declare const VOICE_RECORDER_MAX_DURATION_MS = 60000;
6
12
  export declare const VOICE_RECORDER_MIN_DURATION_MS = 300;
@@ -13,4 +19,8 @@ export declare const DROPDOWN_MAX_CONTENT_HEIGHT = 330;
13
19
  export declare const TRANSCRIPT_RETRY_INTERVAL_MS = 4000;
14
20
  export declare const TRANSCRIPT_MAX_RETRIES = 15;
15
21
  export declare const NO_AUDIO_BE_MESSAGE = "No audio";
22
+ export declare const VOICE_RECORD_SHADOWS: {
23
+ default: string;
24
+ advanced: string;
25
+ };
16
26
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/voice/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B;;;CAG1C,CAAA;AACD,eAAO,MAAM,8BAA8B,QAAQ,CAAA;AACnD,eAAO,MAAM,8BAA8B,MAAM,CAAA;AACjD,oBAAY,kBAAkB;IAC5B,IAAI,IAAA;IACJ,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AACD,eAAO,MAAM,2BAA2B,MAAM,CAAA;AAC9C,eAAO,MAAM,4BAA4B,OAAO,CAAA;AAChD,eAAO,MAAM,sBAAsB,KAAK,CAAA;AACxC,eAAO,MAAM,mBAAmB,aAAa,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/voice/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B;;;;;;;;;CAS1C,CAAA;AACD,eAAO,MAAM,8BAA8B,QAAQ,CAAA;AACnD,eAAO,MAAM,8BAA8B,MAAM,CAAA;AACjD,oBAAY,kBAAkB;IAC5B,IAAI,IAAA;IACJ,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AACD,eAAO,MAAM,2BAA2B,MAAM,CAAA;AAC9C,eAAO,MAAM,4BAA4B,OAAO,CAAA;AAChD,eAAO,MAAM,sBAAsB,KAAK,CAAA;AACxC,eAAO,MAAM,mBAAmB,aAAa,CAAA;AAG7C,eAAO,MAAM,oBAAoB;;;CAGhC,CAAA"}
@@ -1,10 +1,12 @@
1
1
  import { StyleProp, ViewStyle } from 'react-native';
2
2
  import React from 'react';
3
3
  import { VoiceRecordModel } from '../model/VoiceRecord.model';
4
+ import { RecordButtonVariant } from '../../types';
4
5
  type VoiceRecordProps = {
5
6
  style?: StyleProp<ViewStyle>;
6
7
  model: VoiceRecordModel;
8
+ buttonVariant: RecordButtonVariant;
7
9
  };
8
- export declare const VoiceRecord: ({ style, model }: VoiceRecordProps) => React.JSX.Element;
10
+ export declare const VoiceRecord: ({ style, model, buttonVariant }: VoiceRecordProps) => React.JSX.Element;
9
11
  export {};
10
12
  //# sourceMappingURL=VoiceRecord.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceRecord.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/components/VoiceRecord.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAc,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAoB,MAAM,OAAO,CAAA;AAMxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAK7D,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,KAAK,EAAE,gBAAgB,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,WAAW,qBAAsB,gBAAgB,sBA4B7D,CAAA"}
1
+ {"version":3,"file":"VoiceRecord.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/components/VoiceRecord.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAc,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAoB,MAAM,OAAO,CAAA;AAMxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,KAAK,EAAE,gBAAgB,CAAA;IACvB,aAAa,EAAE,mBAAmB,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,WAAW,oCAAqC,gBAAgB,sBAuC5E,CAAA"}
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
- import { ButtonStyle } from '@magmamath/react-native-ui';
3
2
  import { VoiceRecordModel } from '../model/VoiceRecord.model';
3
+ import { RecordButtonVariant } from '../../types';
4
4
  type VoiceRecordButtonProps = {
5
- style?: ButtonStyle;
6
5
  model: VoiceRecordModel;
6
+ buttonVariant: RecordButtonVariant;
7
7
  };
8
- export declare const VoiceRecordButton: ({ style, model }: VoiceRecordButtonProps) => React.JSX.Element;
8
+ export declare const VoiceRecordButton: ({ model, buttonVariant }: VoiceRecordButtonProps) => React.JSX.Element;
9
9
  export {};
10
10
  //# sourceMappingURL=VoiceRecordButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VoiceRecordButton.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/components/VoiceRecordButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AACtC,OAAO,EAIL,WAAW,EAGZ,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAK7D,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,gBAAgB,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,iBAAiB,qBAAsB,sBAAsB,sBA0CzE,CAAA"}
1
+ {"version":3,"file":"VoiceRecordButton.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/components/VoiceRecordButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAI7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,gBAAgB,CAAA;IACvB,aAAa,EAAE,mBAAmB,CAAA;CACnC,CAAA;AASD,eAAO,MAAM,iBAAiB,6BAA8B,sBAAsB,sBAkDjF,CAAA"}
@@ -1,4 +1,5 @@
1
- export declare const useVoiceRecorderAnimation: (isExpanded: boolean) => {
1
+ import { RecordButtonVariant } from '../../types';
2
+ export declare const useVoiceRecorderAnimation: (isExpanded: boolean, buttonVariant: RecordButtonVariant) => {
2
3
  containerAnimatedStyle: {
3
4
  height: number;
4
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useVoiceRecorderAnimation.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/hooks/useVoiceRecorderAnimation.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB,eAAgB,OAAO;;;;CAe5D,CAAA"}
1
+ {"version":3,"file":"useVoiceRecorderAnimation.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/voice/recording/hooks/useVoiceRecorderAnimation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,eAAO,MAAM,yBAAyB,eACxB,OAAO,iBACJ,mBAAmB;;;;CAgBnC,CAAA"}
@@ -68,5 +68,9 @@ export type VoiceTranscriptionItem = {
68
68
  controller?: AbortController;
69
69
  hasDrawing?: boolean;
70
70
  };
71
+ export declare enum RecordButtonVariant {
72
+ DEFAULT = "default",
73
+ ADVANCED = "advanced"
74
+ }
71
75
  export {};
72
76
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/voice/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/features/voice/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/students-features",
3
- "version": "1.3.7",
3
+ "version": "1.3.8-rc.2",
4
4
  "description": "Magmamath features library",
5
5
  "source": "src/index.ts",
6
6
  "main": "src/index.ts",
@@ -1,6 +1,12 @@
1
1
  export const VOICE_RECORDER_CONTAINER_SIZES = {
2
- COLLAPSED: 61,
3
- EXPANDED: 152,
2
+ COLLAPSED: {
3
+ default: 61,
4
+ advanced: 52,
5
+ },
6
+ EXPANDED: {
7
+ default: 152,
8
+ advanced: 136,
9
+ },
4
10
  }
5
11
  export const VOICE_RECORDER_MAX_DURATION_MS = 60000 // 1 minute
6
12
  export const VOICE_RECORDER_MIN_DURATION_MS = 300
@@ -13,3 +19,9 @@ export const DROPDOWN_MAX_CONTENT_HEIGHT = 330
13
19
  export const TRANSCRIPT_RETRY_INTERVAL_MS = 4000
14
20
  export const TRANSCRIPT_MAX_RETRIES = 15
15
21
  export const NO_AUDIO_BE_MESSAGE = 'No audio'
22
+
23
+ //todo: remove native shadows from rn-ui and set from WEB for both platforms
24
+ export const VOICE_RECORD_SHADOWS = {
25
+ default: '0 1px 3px 0 rgba(51, 51, 51, 0.10), 0 0 1px 0 rgba(51, 51, 51, 0.40)',
26
+ advanced: '0 0 1px 0 rgba(51, 51, 51, 0.20), 0 3px 10px 0 rgba(51, 51, 51, 0.16)',
27
+ }
@@ -1,7 +1,7 @@
1
1
  import { StyleProp, ViewStyle, StyleSheet } from 'react-native'
2
2
  import { VoiceRecordButton } from './VoiceRecordButton'
3
3
  import React, { useEffect } from 'react'
4
- import { COLORS, SPACING } from '@magmamath/react-native-ui'
4
+ import { BORDER_RADIUS, COLORS, SPACING } from '@magmamath/react-native-ui'
5
5
  import { VoiceRecordDeleteButton } from './VoiceRecordDeleteButton'
6
6
  import { VoiceRecordDivider } from './VoiceRecordDivider'
7
7
  import { VoiceRecordTimer } from './VoiceRecordTimer'
@@ -10,17 +10,20 @@ import { VoiceRecordModel } from '../model/VoiceRecord.model'
10
10
  import { useVoiceRecorder } from '../hooks/useVoiceRecorder'
11
11
  import { useVoiceRecorderAnimation } from '../hooks/useVoiceRecorderAnimation'
12
12
  import { useUnit } from 'effector-react'
13
+ import { RecordButtonVariant } from '../../types'
14
+ import { VOICE_RECORD_SHADOWS } from '../../constants'
13
15
 
14
16
  type VoiceRecordProps = {
15
17
  style?: StyleProp<ViewStyle>
16
18
  model: VoiceRecordModel
19
+ buttonVariant: RecordButtonVariant
17
20
  }
18
21
 
19
- export const VoiceRecord = ({ style, model }: VoiceRecordProps) => {
22
+ export const VoiceRecord = ({ style, model, buttonVariant }: VoiceRecordProps) => {
20
23
  const { recorderState } = useVoiceRecorder(model)
21
24
  const [isExpanded, isDisabled] = useUnit([model.$isExpanded, model.$isButtonDisabled])
22
25
 
23
- const { containerAnimatedStyle } = useVoiceRecorderAnimation(isExpanded)
26
+ const { containerAnimatedStyle } = useVoiceRecorderAnimation(isExpanded, buttonVariant)
24
27
 
25
28
  useEffect(() => {
26
29
  return () => {
@@ -29,12 +32,23 @@ export const VoiceRecord = ({ style, model }: VoiceRecordProps) => {
29
32
  }, [model])
30
33
 
31
34
  return (
32
- <Animated.View style={[styles.container, style, containerAnimatedStyle]}>
33
- <VoiceRecordButton model={model} />
35
+ <Animated.View
36
+ style={[
37
+ styles.container,
38
+ buttonVariant === RecordButtonVariant.ADVANCED && styles.advancedVariantContainer,
39
+ { boxShadow: VOICE_RECORD_SHADOWS[buttonVariant] },
40
+ style,
41
+ containerAnimatedStyle,
42
+ ]}
43
+ >
44
+ <VoiceRecordButton model={model} buttonVariant={buttonVariant} />
34
45
  {isExpanded && (
35
46
  <Animated.View entering={FadeIn} exiting={FadeOut} style={styles.expendedContainer}>
36
47
  <VoiceRecordTimer
37
- style={styles.timer}
48
+ style={[
49
+ styles.timer,
50
+ buttonVariant === RecordButtonVariant.ADVANCED && styles.advancedVariantTimer,
51
+ ]}
38
52
  model={model}
39
53
  recordingFileDurationMs={recorderState.durationMillis}
40
54
  />
@@ -53,12 +67,18 @@ const styles = StyleSheet.create({
53
67
  paddingBottom: 6,
54
68
  backgroundColor: COLORS.NEUTRAL_3,
55
69
  borderRadius: 32,
56
- boxShadow: '0 1px 3px 0 rgba(51, 51, 51, 0.10), 0 0 1px 0 rgba(51, 51, 51, 0.40)',
70
+ },
71
+ advancedVariantContainer: {
72
+ borderRadius: BORDER_RADIUS[300],
73
+ padding: 0,
57
74
  overflow: 'hidden',
58
75
  },
59
76
  timer: {
60
77
  marginTop: SPACING[400],
61
78
  },
79
+ advancedVariantTimer: {
80
+ marginTop: SPACING[150],
81
+ },
62
82
  expendedContainer: {
63
83
  alignItems: 'center',
64
84
  },