@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.
- package/dist/commonjs/features/voice/constants.js +15 -3
- package/dist/commonjs/features/voice/constants.js.map +1 -1
- package/dist/commonjs/features/voice/recording/components/VoiceRecord.js +19 -7
- package/dist/commonjs/features/voice/recording/components/VoiceRecord.js.map +1 -1
- package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js +84 -27
- package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
- package/dist/commonjs/features/voice/recording/components/VoiceRecordDeleteButton.js +2 -2
- package/dist/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.js +3 -3
- package/dist/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.js.map +1 -1
- package/dist/commonjs/features/voice/types.js +6 -0
- package/dist/commonjs/features/voice/types.js.map +1 -1
- package/dist/module/features/voice/constants.js +14 -2
- package/dist/module/features/voice/constants.js.map +1 -1
- package/dist/module/features/voice/recording/components/VoiceRecord.js +20 -8
- package/dist/module/features/voice/recording/components/VoiceRecord.js.map +1 -1
- package/dist/module/features/voice/recording/components/VoiceRecordButton.js +86 -29
- package/dist/module/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
- package/dist/module/features/voice/recording/components/VoiceRecordDeleteButton.js +2 -2
- package/dist/module/features/voice/recording/hooks/useVoiceRecorderAnimation.js +3 -3
- package/dist/module/features/voice/recording/hooks/useVoiceRecorderAnimation.js.map +1 -1
- package/dist/module/features/voice/types.js +5 -1
- package/dist/module/features/voice/types.js.map +1 -1
- package/dist/typescript/commonjs/features/voice/constants.d.ts +12 -2
- package/dist/typescript/commonjs/features/voice/constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecord.d.ts +3 -1
- package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecord.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordButton.d.ts +3 -3
- package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts +2 -1
- package/dist/typescript/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/voice/types.d.ts +4 -0
- package/dist/typescript/commonjs/features/voice/types.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/constants.d.ts +12 -2
- package/dist/typescript/module/features/voice/constants.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/recording/components/VoiceRecord.d.ts +3 -1
- package/dist/typescript/module/features/voice/recording/components/VoiceRecord.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/recording/components/VoiceRecordButton.d.ts +3 -3
- package/dist/typescript/module/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts +2 -1
- package/dist/typescript/module/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts.map +1 -1
- package/dist/typescript/module/features/voice/types.d.ts +4 -0
- package/dist/typescript/module/features/voice/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/voice/constants.ts +14 -2
- package/src/features/voice/recording/components/VoiceRecord.tsx +27 -7
- package/src/features/voice/recording/components/VoiceRecordButton.tsx +113 -30
- package/src/features/voice/recording/components/VoiceRecordDeleteButton.tsx +2 -2
- package/src/features/voice/recording/hooks/useVoiceRecorderAnimation.ts +8 -4
- package/src/features/voice/types.ts +5 -0
- package/.claude/settings.local.json +0 -25
- package/.editorconfig +0 -15
- package/.eslintignore +0 -2
- package/.eslintrc +0 -22
- package/.gitattributes +0 -3
- package/.github/actions/setup/action.yml +0 -37
- package/.github/workflows/ci.yml +0 -73
- package/.gitignore +0 -84
- package/.idea/.gitignore +0 -8
- package/.idea/codeStyles/Project.xml +0 -62
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/copilot.data.migration.agent.xml +0 -6
- package/.idea/copilot.data.migration.ask.xml +0 -6
- package/.idea/copilot.data.migration.ask2agent.xml +0 -6
- package/.idea/copilot.data.migration.edit.xml +0 -6
- package/.idea/inspectionProfiles/Project_Default.xml +0 -8
- package/.idea/jsLinters/eslint.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/prettier.xml +0 -7
- package/.idea/students-features.iml +0 -12
- package/.idea/vcs.xml +0 -6
- package/.idea/workspace.xml +0 -672
- package/.nvmrc +0 -1
- package/.prettierrc +0 -11
- package/.release-it.json +0 -17
- package/.watchmanconfig +0 -1
- package/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +0 -541
- package/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs +0 -28
- package/.yarn/releases/yarn-3.6.1.cjs +0 -874
- package/babel.config.js +0 -5
- package/bob.config.js +0 -25
- package/example/.expo/README.md +0 -8
- package/example/.expo/devices.json +0 -3
- package/example/.expo/web/cache/production/images/favicon/favicon-24272cdaeff82cc5facdaccd982a6f05b60c4504704bbf94c19a6388659880bb-contain-transparent/favicon-48.png +0 -0
- package/example/app.json +0 -30
- package/example/assets/adaptive-icon.png +0 -0
- package/example/assets/favicon.png +0 -0
- package/example/assets/icon.png +0 -0
- package/example/assets/splash-icon.png +0 -0
- package/example/babel.config.js +0 -28
- package/example/index.js +0 -8
- package/example/metro.config.js +0 -18
- package/example/package.json +0 -25
- package/example/src/App.tsx +0 -8
- package/example/tsconfig.json +0 -6
- package/tsconfig.build.json +0 -4
- package/tsconfig.json +0 -34
- package/yarn.lock +0 -10984
|
@@ -3,10 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.VoiceRecorderState = exports.VOICE_RECORDER_MIN_DURATION_MS = exports.VOICE_RECORDER_MAX_DURATION_MS = exports.VOICE_RECORDER_CONTAINER_SIZES = exports.TRANSCRIPT_RETRY_INTERVAL_MS = exports.TRANSCRIPT_MAX_RETRIES = exports.NO_AUDIO_BE_MESSAGE = exports.DROPDOWN_MAX_CONTENT_HEIGHT = void 0;
|
|
6
|
+
exports.VoiceRecorderState = exports.VOICE_RECORD_SHADOWS = exports.VOICE_RECORDER_MIN_DURATION_MS = exports.VOICE_RECORDER_MAX_DURATION_MS = exports.VOICE_RECORDER_CONTAINER_SIZES = exports.TRANSCRIPT_RETRY_INTERVAL_MS = exports.TRANSCRIPT_MAX_RETRIES = exports.NO_AUDIO_BE_MESSAGE = exports.DROPDOWN_MAX_CONTENT_HEIGHT = void 0;
|
|
7
7
|
const VOICE_RECORDER_CONTAINER_SIZES = exports.VOICE_RECORDER_CONTAINER_SIZES = {
|
|
8
|
-
COLLAPSED:
|
|
9
|
-
|
|
8
|
+
COLLAPSED: {
|
|
9
|
+
default: 61,
|
|
10
|
+
advanced: 52
|
|
11
|
+
},
|
|
12
|
+
EXPANDED: {
|
|
13
|
+
default: 152,
|
|
14
|
+
advanced: 136
|
|
15
|
+
}
|
|
10
16
|
};
|
|
11
17
|
const VOICE_RECORDER_MAX_DURATION_MS = exports.VOICE_RECORDER_MAX_DURATION_MS = 60000; // 1 minute
|
|
12
18
|
const VOICE_RECORDER_MIN_DURATION_MS = exports.VOICE_RECORDER_MIN_DURATION_MS = 300;
|
|
@@ -20,4 +26,10 @@ const DROPDOWN_MAX_CONTENT_HEIGHT = exports.DROPDOWN_MAX_CONTENT_HEIGHT = 330;
|
|
|
20
26
|
const TRANSCRIPT_RETRY_INTERVAL_MS = exports.TRANSCRIPT_RETRY_INTERVAL_MS = 4000;
|
|
21
27
|
const TRANSCRIPT_MAX_RETRIES = exports.TRANSCRIPT_MAX_RETRIES = 15;
|
|
22
28
|
const NO_AUDIO_BE_MESSAGE = exports.NO_AUDIO_BE_MESSAGE = 'No audio';
|
|
29
|
+
|
|
30
|
+
//todo: remove native shadows from rn-ui and set from WEB for both platforms
|
|
31
|
+
const VOICE_RECORD_SHADOWS = exports.VOICE_RECORD_SHADOWS = {
|
|
32
|
+
default: '0 1px 3px 0 rgba(51, 51, 51, 0.10), 0 0 1px 0 rgba(51, 51, 51, 0.40)',
|
|
33
|
+
advanced: '0 0 1px 0 rgba(51, 51, 51, 0.20), 0 3px 10px 0 rgba(51, 51, 51, 0.16)'
|
|
34
|
+
};
|
|
23
35
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VOICE_RECORDER_CONTAINER_SIZES","exports","COLLAPSED","EXPANDED","VOICE_RECORDER_MAX_DURATION_MS","VOICE_RECORDER_MIN_DURATION_MS","VoiceRecorderState","DROPDOWN_MAX_CONTENT_HEIGHT","TRANSCRIPT_RETRY_INTERVAL_MS","TRANSCRIPT_MAX_RETRIES","NO_AUDIO_BE_MESSAGE"],"sourceRoot":"../../../../src","sources":["features/voice/constants.ts"],"mappings":";;;;;;AAAO,MAAMA,8BAA8B,GAAAC,OAAA,CAAAD,8BAAA,GAAG;EAC5CE,SAAS,EAAE,EAAE;
|
|
1
|
+
{"version":3,"names":["VOICE_RECORDER_CONTAINER_SIZES","exports","COLLAPSED","default","advanced","EXPANDED","VOICE_RECORDER_MAX_DURATION_MS","VOICE_RECORDER_MIN_DURATION_MS","VoiceRecorderState","DROPDOWN_MAX_CONTENT_HEIGHT","TRANSCRIPT_RETRY_INTERVAL_MS","TRANSCRIPT_MAX_RETRIES","NO_AUDIO_BE_MESSAGE","VOICE_RECORD_SHADOWS"],"sourceRoot":"../../../../src","sources":["features/voice/constants.ts"],"mappings":";;;;;;AAAO,MAAMA,8BAA8B,GAAAC,OAAA,CAAAD,8BAAA,GAAG;EAC5CE,SAAS,EAAE;IACTC,OAAO,EAAE,EAAE;IACXC,QAAQ,EAAE;EACZ,CAAC;EACDC,QAAQ,EAAE;IACRF,OAAO,EAAE,GAAG;IACZC,QAAQ,EAAE;EACZ;AACF,CAAC;AACM,MAAME,8BAA8B,GAAAL,OAAA,CAAAK,8BAAA,GAAG,KAAK,EAAC;AAC7C,MAAMC,8BAA8B,GAAAN,OAAA,CAAAM,8BAAA,GAAG,GAAG;AAAA,IACrCC,kBAAkB,GAAAP,OAAA,CAAAO,kBAAA,0BAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AAKvB,MAAMC,2BAA2B,GAAAR,OAAA,CAAAQ,2BAAA,GAAG,GAAG;AACvC,MAAMC,4BAA4B,GAAAT,OAAA,CAAAS,4BAAA,GAAG,IAAI;AACzC,MAAMC,sBAAsB,GAAAV,OAAA,CAAAU,sBAAA,GAAG,EAAE;AACjC,MAAMC,mBAAmB,GAAAX,OAAA,CAAAW,mBAAA,GAAG,UAAU;;AAE7C;AACO,MAAMC,oBAAoB,GAAAZ,OAAA,CAAAY,oBAAA,GAAG;EAClCV,OAAO,EAAE,sEAAsE;EAC/EC,QAAQ,EAAE;AACZ,CAAC","ignoreList":[]}
|
|
@@ -15,12 +15,15 @@ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reani
|
|
|
15
15
|
var _useVoiceRecorder = require("../hooks/useVoiceRecorder.js");
|
|
16
16
|
var _useVoiceRecorderAnimation = require("../hooks/useVoiceRecorderAnimation.js");
|
|
17
17
|
var _effectorReact = require("effector-react");
|
|
18
|
+
var _types = require("../../types.js");
|
|
19
|
+
var _constants = require("../../constants.js");
|
|
18
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
21
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
22
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
21
23
|
const VoiceRecord = ({
|
|
22
24
|
style,
|
|
23
|
-
model
|
|
25
|
+
model,
|
|
26
|
+
buttonVariant
|
|
24
27
|
}) => {
|
|
25
28
|
const {
|
|
26
29
|
recorderState
|
|
@@ -28,22 +31,25 @@ const VoiceRecord = ({
|
|
|
28
31
|
const [isExpanded, isDisabled] = (0, _effectorReact.useUnit)([model.$isExpanded, model.$isButtonDisabled]);
|
|
29
32
|
const {
|
|
30
33
|
containerAnimatedStyle
|
|
31
|
-
} = (0, _useVoiceRecorderAnimation.useVoiceRecorderAnimation)(isExpanded);
|
|
34
|
+
} = (0, _useVoiceRecorderAnimation.useVoiceRecorderAnimation)(isExpanded, buttonVariant);
|
|
32
35
|
(0, _react.useEffect)(() => {
|
|
33
36
|
return () => {
|
|
34
37
|
model.cleanup();
|
|
35
38
|
};
|
|
36
39
|
}, [model]);
|
|
37
40
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeReanimated.default.View, {
|
|
38
|
-
style: [styles.container,
|
|
41
|
+
style: [styles.container, buttonVariant === _types.RecordButtonVariant.ADVANCED && styles.advancedVariantContainer, {
|
|
42
|
+
boxShadow: _constants.VOICE_RECORD_SHADOWS[buttonVariant]
|
|
43
|
+
}, style, containerAnimatedStyle],
|
|
39
44
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_VoiceRecordButton.VoiceRecordButton, {
|
|
40
|
-
model: model
|
|
45
|
+
model: model,
|
|
46
|
+
buttonVariant: buttonVariant
|
|
41
47
|
}), isExpanded && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeReanimated.default.View, {
|
|
42
48
|
entering: _reactNativeReanimated.FadeIn,
|
|
43
49
|
exiting: _reactNativeReanimated.FadeOut,
|
|
44
50
|
style: styles.expendedContainer,
|
|
45
51
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_VoiceRecordTimer.VoiceRecordTimer, {
|
|
46
|
-
style: styles.timer,
|
|
52
|
+
style: [styles.timer, buttonVariant === _types.RecordButtonVariant.ADVANCED && styles.advancedVariantTimer],
|
|
47
53
|
model: model,
|
|
48
54
|
recordingFileDurationMs: recorderState.durationMillis
|
|
49
55
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_VoiceRecordDivider.VoiceRecordDivider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_VoiceRecordDeleteButton.VoiceRecordDeleteButton, {
|
|
@@ -60,13 +66,19 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
60
66
|
padding: 3,
|
|
61
67
|
paddingBottom: 6,
|
|
62
68
|
backgroundColor: _reactNativeUi.COLORS.NEUTRAL_3,
|
|
63
|
-
borderRadius: 32
|
|
64
|
-
|
|
69
|
+
borderRadius: 32
|
|
70
|
+
},
|
|
71
|
+
advancedVariantContainer: {
|
|
72
|
+
borderRadius: _reactNativeUi.BORDER_RADIUS[300],
|
|
73
|
+
padding: 0,
|
|
65
74
|
overflow: 'hidden'
|
|
66
75
|
},
|
|
67
76
|
timer: {
|
|
68
77
|
marginTop: _reactNativeUi.SPACING[400]
|
|
69
78
|
},
|
|
79
|
+
advancedVariantTimer: {
|
|
80
|
+
marginTop: _reactNativeUi.SPACING[150]
|
|
81
|
+
},
|
|
70
82
|
expendedContainer: {
|
|
71
83
|
alignItems: 'center'
|
|
72
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_VoiceRecordButton","_react","_interopRequireWildcard","_reactNativeUi","_VoiceRecordDeleteButton","_VoiceRecordDivider","_VoiceRecordTimer","_reactNativeReanimated","_useVoiceRecorder","_useVoiceRecorderAnimation","_effectorReact","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","VoiceRecord","style","model","recorderState","useVoiceRecorder","isExpanded","isDisabled","useUnit","$isExpanded","$isButtonDisabled","containerAnimatedStyle","useVoiceRecorderAnimation","useEffect","cleanup","jsxs","View","styles","container","children","jsx","VoiceRecordButton","entering","FadeIn","exiting","FadeOut","expendedContainer","VoiceRecordTimer","timer","recordingFileDurationMs","durationMillis","VoiceRecordDivider","VoiceRecordDeleteButton","onPress","events","deleteRecord","exports","StyleSheet","create","alignItems","padding","paddingBottom","backgroundColor","COLORS","NEUTRAL_3","borderRadius","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_VoiceRecordButton","_react","_interopRequireWildcard","_reactNativeUi","_VoiceRecordDeleteButton","_VoiceRecordDivider","_VoiceRecordTimer","_reactNativeReanimated","_useVoiceRecorder","_useVoiceRecorderAnimation","_effectorReact","_types","_constants","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","VoiceRecord","style","model","buttonVariant","recorderState","useVoiceRecorder","isExpanded","isDisabled","useUnit","$isExpanded","$isButtonDisabled","containerAnimatedStyle","useVoiceRecorderAnimation","useEffect","cleanup","jsxs","View","styles","container","RecordButtonVariant","ADVANCED","advancedVariantContainer","boxShadow","VOICE_RECORD_SHADOWS","children","jsx","VoiceRecordButton","entering","FadeIn","exiting","FadeOut","expendedContainer","VoiceRecordTimer","timer","advancedVariantTimer","recordingFileDurationMs","durationMillis","VoiceRecordDivider","VoiceRecordDeleteButton","onPress","events","deleteRecord","exports","StyleSheet","create","alignItems","padding","paddingBottom","backgroundColor","COLORS","NEUTRAL_3","borderRadius","BORDER_RADIUS","overflow","marginTop","SPACING"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/components/VoiceRecord.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,60 +4,117 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.VoiceRecordButton = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _reactNativeUi = require("@magmamath/react-native-ui");
|
|
9
9
|
var _reactNative = require("react-native");
|
|
10
10
|
var _effectorReact = require("effector-react");
|
|
11
11
|
var _constants = require("../../constants.js");
|
|
12
12
|
var _index = require("../../../../shared/translation/index.js");
|
|
13
|
+
var _types = require("../../types.js");
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
-
function
|
|
15
|
-
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
const defaultButtonStyles = {
|
|
17
|
+
button: {
|
|
18
|
+
width: 50,
|
|
19
|
+
height: 50
|
|
20
|
+
}
|
|
21
|
+
};
|
|
16
22
|
const VoiceRecordButton = ({
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
model,
|
|
24
|
+
buttonVariant
|
|
19
25
|
}) => {
|
|
20
26
|
const t = (0, _index.useText)();
|
|
21
27
|
const availableInputs = (0, _effectorReact.useUnit)(model.recorderModel.$availableInputs);
|
|
22
28
|
const voiceRecordState = (0, _effectorReact.useUnit)(model.recorderModel.$voiceRecordState);
|
|
23
29
|
const isButtonDisabled = (0, _effectorReact.useUnit)(model.$isButtonDisabled);
|
|
24
30
|
const isInitializing = (0, _effectorReact.useUnit)(model.initializeRecording.pending);
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
width: 50,
|
|
29
|
-
height: 50
|
|
30
|
-
}, style?.button],
|
|
31
|
-
container: [style?.container],
|
|
32
|
-
text: [style?.text]
|
|
33
|
-
};
|
|
34
|
-
}, [style]);
|
|
31
|
+
const isRecording = voiceRecordState === _constants.VoiceRecorderState.RECORDING;
|
|
32
|
+
const isIdle = voiceRecordState === _constants.VoiceRecorderState.IDLE;
|
|
33
|
+
const hasInputs = availableInputs.length > 0;
|
|
35
34
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
36
35
|
onPressIn: e => {
|
|
37
|
-
if (
|
|
36
|
+
if (hasInputs) return;
|
|
38
37
|
e.preventDefault();
|
|
39
38
|
model.notification.warning(t('voice.noMicrophoneFound'));
|
|
40
39
|
},
|
|
41
|
-
pointerEvents: !
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
pointerEvents: !hasInputs || isInitializing ? 'box-only' : 'auto',
|
|
41
|
+
style: [isButtonDisabled ? styles.disabledCursor : undefined],
|
|
42
|
+
children: buttonVariant === _types.RecordButtonVariant.ADVANCED ? /*#__PURE__*/(0, _jsxRuntime.jsx)(AdvancedButton, {
|
|
43
|
+
isRecording: isRecording,
|
|
44
|
+
isIdle: isIdle,
|
|
45
|
+
disabled: isButtonDisabled,
|
|
46
|
+
onPressIn: () => model.recorderButtonHandler()
|
|
47
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.Button, {
|
|
48
|
+
disabled: isButtonDisabled,
|
|
44
49
|
onPressIn: () => model.recorderButtonHandler(),
|
|
45
|
-
style:
|
|
50
|
+
style: defaultButtonStyles,
|
|
46
51
|
size: _reactNativeUi.ButtonSize.LARGE,
|
|
47
52
|
variant: _reactNativeUi.ButtonVariant.SECONDARY,
|
|
48
53
|
colorScheme: _reactNativeUi.ButtonColor.WHITE,
|
|
49
|
-
icon:
|
|
54
|
+
icon: isRecording ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.CheckIcon, {
|
|
50
55
|
size: 25
|
|
51
56
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.MicrophoneIcon, {
|
|
52
|
-
style: _reactNativeUi.IS_WEB ?
|
|
53
|
-
width: 19
|
|
54
|
-
} : {
|
|
55
|
-
minWidth: 23,
|
|
56
|
-
minHeight: 23
|
|
57
|
-
}
|
|
57
|
+
style: _reactNativeUi.IS_WEB ? styles.microphoneIconWeb : styles.microphoneIconNative
|
|
58
58
|
})
|
|
59
59
|
})
|
|
60
60
|
});
|
|
61
61
|
};
|
|
62
62
|
exports.VoiceRecordButton = VoiceRecordButton;
|
|
63
|
+
const AdvancedButton = ({
|
|
64
|
+
isRecording,
|
|
65
|
+
isIdle,
|
|
66
|
+
disabled,
|
|
67
|
+
onPressIn
|
|
68
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
69
|
+
style: [styles.advancedButtonContainer, disabled && styles.disabledCursor],
|
|
70
|
+
onPressIn: onPressIn,
|
|
71
|
+
disabled: disabled,
|
|
72
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
73
|
+
style: [styles.advancedIconContainer, !isIdle && styles.advancedIconContainerActive],
|
|
74
|
+
children: isRecording ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.CheckIcon, {
|
|
75
|
+
size: 18,
|
|
76
|
+
color: _reactNativeUi.COLORS.NEUTRAL_1
|
|
77
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.MicrophoneIcon, {
|
|
78
|
+
style: styles.advancedMicrophoneIcon,
|
|
79
|
+
color: disabled ? _reactNativeUi.COLORS.NEUTRAL_5 : isIdle ? _reactNativeUi.COLORS.NEUTRAL_9 : _reactNativeUi.COLORS.NEUTRAL_1
|
|
80
|
+
})
|
|
81
|
+
})
|
|
82
|
+
});
|
|
83
|
+
const styles = _reactNative.StyleSheet.create({
|
|
84
|
+
advancedButtonContainer: {
|
|
85
|
+
width: 52,
|
|
86
|
+
height: 52,
|
|
87
|
+
backgroundColor: 'white',
|
|
88
|
+
alignItems: 'center',
|
|
89
|
+
justifyContent: 'center',
|
|
90
|
+
borderRadius: _reactNativeUi.BORDER_RADIUS[300],
|
|
91
|
+
boxShadow: _constants.VOICE_RECORD_SHADOWS[_types.RecordButtonVariant.ADVANCED]
|
|
92
|
+
},
|
|
93
|
+
advancedIconContainer: {
|
|
94
|
+
width: 36,
|
|
95
|
+
height: 36,
|
|
96
|
+
borderRadius: _reactNativeUi.BORDER_RADIUS[300],
|
|
97
|
+
justifyContent: 'center',
|
|
98
|
+
alignItems: 'center'
|
|
99
|
+
},
|
|
100
|
+
disabledCursor: {
|
|
101
|
+
// @ts-expect-error web-only property
|
|
102
|
+
cursor: 'not-allowed'
|
|
103
|
+
},
|
|
104
|
+
microphoneIconWeb: {
|
|
105
|
+
width: 19
|
|
106
|
+
},
|
|
107
|
+
microphoneIconNative: {
|
|
108
|
+
minWidth: 23,
|
|
109
|
+
minHeight: 23
|
|
110
|
+
},
|
|
111
|
+
advancedIconContainerActive: {
|
|
112
|
+
borderRadius: 32,
|
|
113
|
+
backgroundColor: _reactNativeUi.COLORS.PRIMARY_BLUE
|
|
114
|
+
},
|
|
115
|
+
advancedMicrophoneIcon: {
|
|
116
|
+
width: 14,
|
|
117
|
+
height: 19
|
|
118
|
+
}
|
|
119
|
+
});
|
|
63
120
|
//# sourceMappingURL=VoiceRecordButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNativeUi","_reactNative","_effectorReact","_constants","_index","_types","_jsxRuntime","e","__esModule","default","defaultButtonStyles","button","width","height","VoiceRecordButton","model","buttonVariant","t","useText","availableInputs","useUnit","recorderModel","$availableInputs","voiceRecordState","$voiceRecordState","isButtonDisabled","$isButtonDisabled","isInitializing","initializeRecording","pending","isRecording","VoiceRecorderState","RECORDING","isIdle","IDLE","hasInputs","length","jsx","Pressable","onPressIn","preventDefault","notification","warning","pointerEvents","style","styles","disabledCursor","undefined","children","RecordButtonVariant","ADVANCED","AdvancedButton","disabled","recorderButtonHandler","Button","size","ButtonSize","LARGE","variant","ButtonVariant","SECONDARY","colorScheme","ButtonColor","WHITE","icon","CheckIcon","MicrophoneIcon","IS_WEB","microphoneIconWeb","microphoneIconNative","exports","advancedButtonContainer","View","advancedIconContainer","advancedIconContainerActive","color","COLORS","NEUTRAL_1","advancedMicrophoneIcon","NEUTRAL_5","NEUTRAL_9","StyleSheet","create","backgroundColor","alignItems","justifyContent","borderRadius","BORDER_RADIUS","boxShadow","VOICE_RECORD_SHADOWS","cursor","minWidth","minHeight","PRIMARY_BLUE"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/components/VoiceRecordButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -26,8 +26,8 @@ const VoiceRecordDeleteButton = ({
|
|
|
26
26
|
exports.VoiceRecordDeleteButton = VoiceRecordDeleteButton;
|
|
27
27
|
const styles = _reactNative.StyleSheet.create({
|
|
28
28
|
container: {
|
|
29
|
-
width:
|
|
30
|
-
height:
|
|
29
|
+
width: 32,
|
|
30
|
+
height: 32,
|
|
31
31
|
alignItems: 'center',
|
|
32
32
|
justifyContent: 'center'
|
|
33
33
|
}
|
|
@@ -6,14 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useVoiceRecorderAnimation = void 0;
|
|
7
7
|
var _reactNativeReanimated = require("react-native-reanimated");
|
|
8
8
|
var _constants = require("../../constants.js");
|
|
9
|
-
const useVoiceRecorderAnimation = isExpanded => {
|
|
9
|
+
const useVoiceRecorderAnimation = (isExpanded, buttonVariant) => {
|
|
10
10
|
const containerAnimatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
11
11
|
return {
|
|
12
|
-
height: (0, _reactNativeReanimated.withTiming)(isExpanded ? _constants.VOICE_RECORDER_CONTAINER_SIZES.EXPANDED : _constants.VOICE_RECORDER_CONTAINER_SIZES.COLLAPSED, {
|
|
12
|
+
height: (0, _reactNativeReanimated.withTiming)(isExpanded ? _constants.VOICE_RECORDER_CONTAINER_SIZES.EXPANDED[buttonVariant] : _constants.VOICE_RECORDER_CONTAINER_SIZES.COLLAPSED[buttonVariant], {
|
|
13
13
|
duration: 280
|
|
14
14
|
})
|
|
15
15
|
};
|
|
16
|
-
}, [isExpanded]);
|
|
16
|
+
}, [isExpanded, buttonVariant]);
|
|
17
17
|
return {
|
|
18
18
|
containerAnimatedStyle
|
|
19
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeReanimated","require","_constants","useVoiceRecorderAnimation","isExpanded","containerAnimatedStyle","useAnimatedStyle","height","withTiming","VOICE_RECORDER_CONTAINER_SIZES","EXPANDED","COLLAPSED","duration","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/hooks/useVoiceRecorderAnimation.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactNativeReanimated","require","_constants","useVoiceRecorderAnimation","isExpanded","buttonVariant","containerAnimatedStyle","useAnimatedStyle","height","withTiming","VOICE_RECORDER_CONTAINER_SIZES","EXPANDED","COLLAPSED","duration","exports"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/hooks/useVoiceRecorderAnimation.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAGO,MAAME,yBAAyB,GAAGA,CACvCC,UAAmB,EACnBC,aAAkC,KAC/B;EACH,MAAMC,sBAAsB,GAAG,IAAAC,uCAAgB,EAAC,MAAM;IACpD,OAAO;MACLC,MAAM,EAAE,IAAAC,iCAAU,EAChBL,UAAU,GACNM,yCAA8B,CAACC,QAAQ,CAACN,aAAa,CAAC,GACtDK,yCAA8B,CAACE,SAAS,CAACP,aAAa,CAAC,EAC3D;QACEQ,QAAQ,EAAE;MACZ,CACF;IACF,CAAC;EACH,CAAC,EAAE,CAACT,UAAU,EAAEC,aAAa,CAAC,CAAC;EAE/B,OAAO;IAAEC;EAAuB,CAAC;AACnC,CAAC;AAAAQ,OAAA,CAAAX,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -3,4 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.RecordButtonVariant = void 0;
|
|
7
|
+
let RecordButtonVariant = exports.RecordButtonVariant = /*#__PURE__*/function (RecordButtonVariant) {
|
|
8
|
+
RecordButtonVariant["DEFAULT"] = "default";
|
|
9
|
+
RecordButtonVariant["ADVANCED"] = "advanced";
|
|
10
|
+
return RecordButtonVariant;
|
|
11
|
+
}({});
|
|
6
12
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["features/voice/types.ts"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["RecordButtonVariant","exports"],"sourceRoot":"../../../../src","sources":["features/voice/types.ts"],"mappings":";;;;;;IAqFYA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA","ignoreList":[]}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
export const VOICE_RECORDER_CONTAINER_SIZES = {
|
|
4
|
-
COLLAPSED:
|
|
5
|
-
|
|
4
|
+
COLLAPSED: {
|
|
5
|
+
default: 61,
|
|
6
|
+
advanced: 52
|
|
7
|
+
},
|
|
8
|
+
EXPANDED: {
|
|
9
|
+
default: 152,
|
|
10
|
+
advanced: 136
|
|
11
|
+
}
|
|
6
12
|
};
|
|
7
13
|
export const VOICE_RECORDER_MAX_DURATION_MS = 60000; // 1 minute
|
|
8
14
|
export const VOICE_RECORDER_MIN_DURATION_MS = 300;
|
|
@@ -16,4 +22,10 @@ export const DROPDOWN_MAX_CONTENT_HEIGHT = 330;
|
|
|
16
22
|
export const TRANSCRIPT_RETRY_INTERVAL_MS = 4000;
|
|
17
23
|
export const TRANSCRIPT_MAX_RETRIES = 15;
|
|
18
24
|
export const NO_AUDIO_BE_MESSAGE = 'No audio';
|
|
25
|
+
|
|
26
|
+
//todo: remove native shadows from rn-ui and set from WEB for both platforms
|
|
27
|
+
export const VOICE_RECORD_SHADOWS = {
|
|
28
|
+
default: '0 1px 3px 0 rgba(51, 51, 51, 0.10), 0 0 1px 0 rgba(51, 51, 51, 0.40)',
|
|
29
|
+
advanced: '0 0 1px 0 rgba(51, 51, 51, 0.20), 0 3px 10px 0 rgba(51, 51, 51, 0.16)'
|
|
30
|
+
};
|
|
19
31
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["VOICE_RECORDER_CONTAINER_SIZES","COLLAPSED","EXPANDED","VOICE_RECORDER_MAX_DURATION_MS","VOICE_RECORDER_MIN_DURATION_MS","VoiceRecorderState","DROPDOWN_MAX_CONTENT_HEIGHT","TRANSCRIPT_RETRY_INTERVAL_MS","TRANSCRIPT_MAX_RETRIES","NO_AUDIO_BE_MESSAGE"],"sourceRoot":"../../../../src","sources":["features/voice/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,8BAA8B,GAAG;EAC5CC,SAAS,EAAE,EAAE;
|
|
1
|
+
{"version":3,"names":["VOICE_RECORDER_CONTAINER_SIZES","COLLAPSED","default","advanced","EXPANDED","VOICE_RECORDER_MAX_DURATION_MS","VOICE_RECORDER_MIN_DURATION_MS","VoiceRecorderState","DROPDOWN_MAX_CONTENT_HEIGHT","TRANSCRIPT_RETRY_INTERVAL_MS","TRANSCRIPT_MAX_RETRIES","NO_AUDIO_BE_MESSAGE","VOICE_RECORD_SHADOWS"],"sourceRoot":"../../../../src","sources":["features/voice/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,8BAA8B,GAAG;EAC5CC,SAAS,EAAE;IACTC,OAAO,EAAE,EAAE;IACXC,QAAQ,EAAE;EACZ,CAAC;EACDC,QAAQ,EAAE;IACRF,OAAO,EAAE,GAAG;IACZC,QAAQ,EAAE;EACZ;AACF,CAAC;AACD,OAAO,MAAME,8BAA8B,GAAG,KAAK,EAAC;AACpD,OAAO,MAAMC,8BAA8B,GAAG,GAAG;AACjD,WAAYC,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAlBA,kBAAkB,CAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AAK9B,OAAO,MAAMC,2BAA2B,GAAG,GAAG;AAC9C,OAAO,MAAMC,4BAA4B,GAAG,IAAI;AAChD,OAAO,MAAMC,sBAAsB,GAAG,EAAE;AACxC,OAAO,MAAMC,mBAAmB,GAAG,UAAU;;AAE7C;AACA,OAAO,MAAMC,oBAAoB,GAAG;EAClCV,OAAO,EAAE,sEAAsE;EAC/EC,QAAQ,EAAE;AACZ,CAAC","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { StyleSheet } from 'react-native';
|
|
4
4
|
import { VoiceRecordButton } from "./VoiceRecordButton.js";
|
|
5
5
|
import React, { useEffect } from 'react';
|
|
6
|
-
import { COLORS, SPACING } from '@magmamath/react-native-ui';
|
|
6
|
+
import { BORDER_RADIUS, COLORS, SPACING } from '@magmamath/react-native-ui';
|
|
7
7
|
import { VoiceRecordDeleteButton } from "./VoiceRecordDeleteButton.js";
|
|
8
8
|
import { VoiceRecordDivider } from "./VoiceRecordDivider.js";
|
|
9
9
|
import { VoiceRecordTimer } from "./VoiceRecordTimer.js";
|
|
@@ -11,10 +11,13 @@ import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
|
|
|
11
11
|
import { useVoiceRecorder } from "../hooks/useVoiceRecorder.js";
|
|
12
12
|
import { useVoiceRecorderAnimation } from "../hooks/useVoiceRecorderAnimation.js";
|
|
13
13
|
import { useUnit } from 'effector-react';
|
|
14
|
+
import { RecordButtonVariant } from "../../types.js";
|
|
15
|
+
import { VOICE_RECORD_SHADOWS } from "../../constants.js";
|
|
14
16
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
17
|
export const VoiceRecord = ({
|
|
16
18
|
style,
|
|
17
|
-
model
|
|
19
|
+
model,
|
|
20
|
+
buttonVariant
|
|
18
21
|
}) => {
|
|
19
22
|
const {
|
|
20
23
|
recorderState
|
|
@@ -22,22 +25,25 @@ export const VoiceRecord = ({
|
|
|
22
25
|
const [isExpanded, isDisabled] = useUnit([model.$isExpanded, model.$isButtonDisabled]);
|
|
23
26
|
const {
|
|
24
27
|
containerAnimatedStyle
|
|
25
|
-
} = useVoiceRecorderAnimation(isExpanded);
|
|
28
|
+
} = useVoiceRecorderAnimation(isExpanded, buttonVariant);
|
|
26
29
|
useEffect(() => {
|
|
27
30
|
return () => {
|
|
28
31
|
model.cleanup();
|
|
29
32
|
};
|
|
30
33
|
}, [model]);
|
|
31
34
|
return /*#__PURE__*/_jsxs(Animated.View, {
|
|
32
|
-
style: [styles.container,
|
|
35
|
+
style: [styles.container, buttonVariant === RecordButtonVariant.ADVANCED && styles.advancedVariantContainer, {
|
|
36
|
+
boxShadow: VOICE_RECORD_SHADOWS[buttonVariant]
|
|
37
|
+
}, style, containerAnimatedStyle],
|
|
33
38
|
children: [/*#__PURE__*/_jsx(VoiceRecordButton, {
|
|
34
|
-
model: model
|
|
39
|
+
model: model,
|
|
40
|
+
buttonVariant: buttonVariant
|
|
35
41
|
}), isExpanded && /*#__PURE__*/_jsxs(Animated.View, {
|
|
36
42
|
entering: FadeIn,
|
|
37
43
|
exiting: FadeOut,
|
|
38
44
|
style: styles.expendedContainer,
|
|
39
45
|
children: [/*#__PURE__*/_jsx(VoiceRecordTimer, {
|
|
40
|
-
style: styles.timer,
|
|
46
|
+
style: [styles.timer, buttonVariant === RecordButtonVariant.ADVANCED && styles.advancedVariantTimer],
|
|
41
47
|
model: model,
|
|
42
48
|
recordingFileDurationMs: recorderState.durationMillis
|
|
43
49
|
}), /*#__PURE__*/_jsx(VoiceRecordDivider, {}), /*#__PURE__*/_jsx(VoiceRecordDeleteButton, {
|
|
@@ -53,13 +59,19 @@ const styles = StyleSheet.create({
|
|
|
53
59
|
padding: 3,
|
|
54
60
|
paddingBottom: 6,
|
|
55
61
|
backgroundColor: COLORS.NEUTRAL_3,
|
|
56
|
-
borderRadius: 32
|
|
57
|
-
|
|
62
|
+
borderRadius: 32
|
|
63
|
+
},
|
|
64
|
+
advancedVariantContainer: {
|
|
65
|
+
borderRadius: BORDER_RADIUS[300],
|
|
66
|
+
padding: 0,
|
|
58
67
|
overflow: 'hidden'
|
|
59
68
|
},
|
|
60
69
|
timer: {
|
|
61
70
|
marginTop: SPACING[400]
|
|
62
71
|
},
|
|
72
|
+
advancedVariantTimer: {
|
|
73
|
+
marginTop: SPACING[150]
|
|
74
|
+
},
|
|
63
75
|
expendedContainer: {
|
|
64
76
|
alignItems: 'center'
|
|
65
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","VoiceRecordButton","React","useEffect","COLORS","SPACING","VoiceRecordDeleteButton","VoiceRecordDivider","VoiceRecordTimer","Animated","FadeIn","FadeOut","useVoiceRecorder","useVoiceRecorderAnimation","useUnit","jsx","_jsx","jsxs","_jsxs","VoiceRecord","style","model","recorderState","isExpanded","isDisabled","$isExpanded","$isButtonDisabled","containerAnimatedStyle","cleanup","View","styles","container","children","entering","exiting","expendedContainer","timer","recordingFileDurationMs","durationMillis","onPress","events","deleteRecord","create","alignItems","padding","paddingBottom","backgroundColor","NEUTRAL_3","borderRadius","
|
|
1
|
+
{"version":3,"names":["StyleSheet","VoiceRecordButton","React","useEffect","BORDER_RADIUS","COLORS","SPACING","VoiceRecordDeleteButton","VoiceRecordDivider","VoiceRecordTimer","Animated","FadeIn","FadeOut","useVoiceRecorder","useVoiceRecorderAnimation","useUnit","RecordButtonVariant","VOICE_RECORD_SHADOWS","jsx","_jsx","jsxs","_jsxs","VoiceRecord","style","model","buttonVariant","recorderState","isExpanded","isDisabled","$isExpanded","$isButtonDisabled","containerAnimatedStyle","cleanup","View","styles","container","ADVANCED","advancedVariantContainer","boxShadow","children","entering","exiting","expendedContainer","timer","advancedVariantTimer","recordingFileDurationMs","durationMillis","onPress","events","deleteRecord","create","alignItems","padding","paddingBottom","backgroundColor","NEUTRAL_3","borderRadius","overflow","marginTop"],"sourceRoot":"../../../../../../src","sources":["features/voice/recording/components/VoiceRecord.tsx"],"mappings":";;AAAA,SAA+BA,UAAU,QAAQ,cAAc;AAC/D,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,OAAOC,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,aAAa,EAAEC,MAAM,EAAEC,OAAO,QAAQ,4BAA4B;AAC3E,SAASC,uBAAuB,QAAQ,8BAA2B;AACnE,SAASC,kBAAkB,QAAQ,yBAAsB;AACzD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,OAAOC,QAAQ,IAAIC,MAAM,EAAEC,OAAO,QAAQ,yBAAyB;AAEnE,SAASC,gBAAgB,QAAQ,8BAA2B;AAC5D,SAASC,yBAAyB,QAAQ,uCAAoC;AAC9E,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,mBAAmB,QAAQ,gBAAa;AACjD,SAASC,oBAAoB,QAAQ,oBAAiB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQtD,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAAEC,KAAK;EAAEC,KAAK;EAAEC;AAAgC,CAAC,KAAK;EAChF,MAAM;IAAEC;EAAc,CAAC,GAAGb,gBAAgB,CAACW,KAAK,CAAC;EACjD,MAAM,CAACG,UAAU,EAAEC,UAAU,CAAC,GAAGb,OAAO,CAAC,CAACS,KAAK,CAACK,WAAW,EAAEL,KAAK,CAACM,iBAAiB,CAAC,CAAC;EAEtF,MAAM;IAAEC;EAAuB,CAAC,GAAGjB,yBAAyB,CAACa,UAAU,EAAEF,aAAa,CAAC;EAEvFtB,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXqB,KAAK,CAACQ,OAAO,CAAC,CAAC;IACjB,CAAC;EACH,CAAC,EAAE,CAACR,KAAK,CAAC,CAAC;EAEX,oBACEH,KAAA,CAACX,QAAQ,CAACuB,IAAI;IACZV,KAAK,EAAE,CACLW,MAAM,CAACC,SAAS,EAChBV,aAAa,KAAKT,mBAAmB,CAACoB,QAAQ,IAAIF,MAAM,CAACG,wBAAwB,EACjF;MAAEC,SAAS,EAAErB,oBAAoB,CAACQ,aAAa;IAAE,CAAC,EAClDF,KAAK,EACLQ,sBAAsB,CACtB;IAAAQ,QAAA,gBAEFpB,IAAA,CAAClB,iBAAiB;MAACuB,KAAK,EAAEA,KAAM;MAACC,aAAa,EAAEA;IAAc,CAAE,CAAC,EAChEE,UAAU,iBACTN,KAAA,CAACX,QAAQ,CAACuB,IAAI;MAACO,QAAQ,EAAE7B,MAAO;MAAC8B,OAAO,EAAE7B,OAAQ;MAACW,KAAK,EAAEW,MAAM,CAACQ,iBAAkB;MAAAH,QAAA,gBACjFpB,IAAA,CAACV,gBAAgB;QACfc,KAAK,EAAE,CACLW,MAAM,CAACS,KAAK,EACZlB,aAAa,KAAKT,mBAAmB,CAACoB,QAAQ,IAAIF,MAAM,CAACU,oBAAoB,CAC7E;QACFpB,KAAK,EAAEA,KAAM;QACbqB,uBAAuB,EAAEnB,aAAa,CAACoB;MAAe,CACvD,CAAC,eACF3B,IAAA,CAACX,kBAAkB,IAAE,CAAC,eACtBW,IAAA,CAACZ,uBAAuB;QAACqB,UAAU,EAAEA,UAAW;QAACmB,OAAO,EAAEvB,KAAK,CAACwB,MAAM,CAACC;MAAa,CAAE,CAAC;IAAA,CAC1E,CAChB;EAAA,CACY,CAAC;AAEpB,CAAC;AAED,MAAMf,MAAM,GAAGlC,UAAU,CAACkD,MAAM,CAAC;EAC/Bf,SAAS,EAAE;IACTgB,UAAU,EAAE,QAAQ;IACpBC,OAAO,EAAE,CAAC;IACVC,aAAa,EAAE,CAAC;IAChBC,eAAe,EAAEjD,MAAM,CAACkD,SAAS;IACjCC,YAAY,EAAE;EAChB,CAAC;EACDnB,wBAAwB,EAAE;IACxBmB,YAAY,EAAEpD,aAAa,CAAC,GAAG,CAAC;IAChCgD,OAAO,EAAE,CAAC;IACVK,QAAQ,EAAE;EACZ,CAAC;EACDd,KAAK,EAAE;IACLe,SAAS,EAAEpD,OAAO,CAAC,GAAG;EACxB,CAAC;EACDsC,oBAAoB,EAAE;IACpBc,SAAS,EAAEpD,OAAO,CAAC,GAAG;EACxB,CAAC;EACDoC,iBAAiB,EAAE;IACjBS,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|