@magmamath/students-features 1.3.3 → 1.3.4-rc.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 (325) hide show
  1. package/dist/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.js +72 -20
  2. package/dist/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.js.map +1 -1
  3. package/dist/commonjs/features/keyboard/components/AlgebraLayout/helpers.js +41 -0
  4. package/dist/commonjs/features/keyboard/components/AlgebraLayout/helpers.js.map +1 -0
  5. package/dist/commonjs/features/keyboard/components/{SwitchableLayout → AlgebraLayout}/types.js +1 -1
  6. package/dist/commonjs/features/keyboard/components/AlgebraLayout/types.js.map +1 -0
  7. package/dist/commonjs/features/keyboard/constants/groups/index.js +0 -11
  8. package/dist/commonjs/features/keyboard/constants/groups/index.js.map +1 -1
  9. package/dist/commonjs/features/keyboard/constants/keyboard.constants.js +1 -6
  10. package/dist/commonjs/features/keyboard/constants/keyboard.constants.js.map +1 -1
  11. package/dist/commonjs/features/keyboard/constants/keyboard.helpers.js +0 -2
  12. package/dist/commonjs/features/keyboard/constants/keyboard.helpers.js.map +1 -1
  13. package/dist/commonjs/features/keyboard/constants/keyboardLayouts.js +8 -18
  14. package/dist/commonjs/features/keyboard/constants/keyboardLayouts.js.map +1 -1
  15. package/dist/commonjs/features/keyboard/constants/keys/geometry.constants.js +1 -86
  16. package/dist/commonjs/features/keyboard/constants/keys/geometry.constants.js.map +1 -1
  17. package/dist/commonjs/features/keyboard/constants/keys/text.constants.js +9 -9
  18. package/dist/commonjs/features/keyboard/constants/keys/units.constants.js +1 -2
  19. package/dist/commonjs/features/keyboard/constants/keys/units.constants.js.map +1 -1
  20. package/dist/commonjs/features/keyboard/types/types.js +0 -1
  21. package/dist/commonjs/features/keyboard/types/types.js.map +1 -1
  22. package/dist/commonjs/features/voice/constants.js +13 -3
  23. package/dist/commonjs/features/voice/constants.js.map +1 -1
  24. package/dist/commonjs/features/voice/recording/components/VoiceRecord.js +19 -5
  25. package/dist/commonjs/features/voice/recording/components/VoiceRecord.js.map +1 -1
  26. package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js +71 -20
  27. package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
  28. package/dist/commonjs/features/voice/recording/components/VoiceRecordDeleteButton.js +2 -2
  29. package/dist/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.js +3 -3
  30. package/dist/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.js.map +1 -1
  31. package/dist/commonjs/features/voice/recording/model/VoiceRecord.model.js +5 -0
  32. package/dist/commonjs/features/voice/recording/model/VoiceRecord.model.js.map +1 -1
  33. package/dist/commonjs/features/voice/types.js +6 -0
  34. package/dist/commonjs/features/voice/types.js.map +1 -1
  35. package/dist/commonjs/shared/icons/keyboard/AngleIcon.js +3 -4
  36. package/dist/commonjs/shared/icons/keyboard/AngleIcon.js.map +1 -1
  37. package/dist/commonjs/shared/icons/keyboard/BidirectionalSegmentIcon.js +8 -12
  38. package/dist/commonjs/shared/icons/keyboard/BidirectionalSegmentIcon.js.map +1 -1
  39. package/dist/commonjs/shared/icons/keyboard/LineSegmentIcon.js +6 -11
  40. package/dist/commonjs/shared/icons/keyboard/LineSegmentIcon.js.map +1 -1
  41. package/dist/commonjs/shared/icons/keyboard/RightDirectedSegmentIcon.js +8 -12
  42. package/dist/commonjs/shared/icons/keyboard/RightDirectedSegmentIcon.js.map +1 -1
  43. package/dist/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.js +72 -21
  44. package/dist/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.js.map +1 -1
  45. package/dist/module/features/keyboard/components/AlgebraLayout/helpers.js +36 -0
  46. package/dist/module/features/keyboard/components/AlgebraLayout/helpers.js.map +1 -0
  47. package/dist/module/features/keyboard/components/{SwitchableLayout → AlgebraLayout}/types.js +1 -1
  48. package/dist/module/features/keyboard/components/AlgebraLayout/types.js.map +1 -0
  49. package/dist/module/features/keyboard/constants/groups/index.js +0 -1
  50. package/dist/module/features/keyboard/constants/groups/index.js.map +1 -1
  51. package/dist/module/features/keyboard/constants/keyboard.constants.js +0 -5
  52. package/dist/module/features/keyboard/constants/keyboard.constants.js.map +1 -1
  53. package/dist/module/features/keyboard/constants/keyboard.helpers.js +1 -3
  54. package/dist/module/features/keyboard/constants/keyboard.helpers.js.map +1 -1
  55. package/dist/module/features/keyboard/constants/keyboardLayouts.js +9 -19
  56. package/dist/module/features/keyboard/constants/keyboardLayouts.js.map +1 -1
  57. package/dist/module/features/keyboard/constants/keys/geometry.constants.js +1 -86
  58. package/dist/module/features/keyboard/constants/keys/geometry.constants.js.map +1 -1
  59. package/dist/module/features/keyboard/constants/keys/text.constants.js +9 -9
  60. package/dist/module/features/keyboard/constants/keys/units.constants.js +1 -2
  61. package/dist/module/features/keyboard/constants/keys/units.constants.js.map +1 -1
  62. package/dist/module/features/keyboard/types/types.js +0 -1
  63. package/dist/module/features/keyboard/types/types.js.map +1 -1
  64. package/dist/module/features/voice/constants.js +12 -2
  65. package/dist/module/features/voice/constants.js.map +1 -1
  66. package/dist/module/features/voice/recording/components/VoiceRecord.js +20 -6
  67. package/dist/module/features/voice/recording/components/VoiceRecord.js.map +1 -1
  68. package/dist/module/features/voice/recording/components/VoiceRecordButton.js +73 -22
  69. package/dist/module/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
  70. package/dist/module/features/voice/recording/components/VoiceRecordDeleteButton.js +2 -2
  71. package/dist/module/features/voice/recording/hooks/useVoiceRecorderAnimation.js +3 -3
  72. package/dist/module/features/voice/recording/hooks/useVoiceRecorderAnimation.js.map +1 -1
  73. package/dist/module/features/voice/recording/model/VoiceRecord.model.js +5 -0
  74. package/dist/module/features/voice/recording/model/VoiceRecord.model.js.map +1 -1
  75. package/dist/module/features/voice/types.js +5 -1
  76. package/dist/module/features/voice/types.js.map +1 -1
  77. package/dist/module/shared/icons/keyboard/AngleIcon.js +3 -4
  78. package/dist/module/shared/icons/keyboard/AngleIcon.js.map +1 -1
  79. package/dist/module/shared/icons/keyboard/BidirectionalSegmentIcon.js +9 -13
  80. package/dist/module/shared/icons/keyboard/BidirectionalSegmentIcon.js.map +1 -1
  81. package/dist/module/shared/icons/keyboard/LineSegmentIcon.js +7 -12
  82. package/dist/module/shared/icons/keyboard/LineSegmentIcon.js.map +1 -1
  83. package/dist/module/shared/icons/keyboard/RightDirectedSegmentIcon.js +9 -13
  84. package/dist/module/shared/icons/keyboard/RightDirectedSegmentIcon.js.map +1 -1
  85. package/dist/typescript/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.d.ts +1 -1
  86. package/dist/typescript/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.d.ts.map +1 -1
  87. package/dist/typescript/commonjs/features/keyboard/components/AlgebraLayout/helpers.d.ts +15 -0
  88. package/dist/typescript/commonjs/features/keyboard/components/AlgebraLayout/helpers.d.ts.map +1 -0
  89. package/dist/typescript/commonjs/features/keyboard/components/AlgebraLayout/types.d.ts +5 -0
  90. package/dist/typescript/commonjs/features/keyboard/components/AlgebraLayout/types.d.ts.map +1 -0
  91. package/dist/typescript/commonjs/features/keyboard/constants/groups/index.d.ts +0 -1
  92. package/dist/typescript/commonjs/features/keyboard/constants/groups/index.d.ts.map +1 -1
  93. package/dist/typescript/commonjs/features/keyboard/constants/keyboard.constants.d.ts +0 -5
  94. package/dist/typescript/commonjs/features/keyboard/constants/keyboard.constants.d.ts.map +1 -1
  95. package/dist/typescript/commonjs/features/keyboard/constants/keyboard.helpers.d.ts.map +1 -1
  96. package/dist/typescript/commonjs/features/keyboard/constants/keyboardLayouts.d.ts +4 -13
  97. package/dist/typescript/commonjs/features/keyboard/constants/keyboardLayouts.d.ts.map +1 -1
  98. package/dist/typescript/commonjs/features/keyboard/constants/keys/geometry.constants.d.ts.map +1 -1
  99. package/dist/typescript/commonjs/features/keyboard/constants/keys/units.constants.d.ts.map +1 -1
  100. package/dist/typescript/commonjs/features/keyboard/types/types.d.ts +0 -1
  101. package/dist/typescript/commonjs/features/keyboard/types/types.d.ts.map +1 -1
  102. package/dist/typescript/commonjs/features/voice/constants.d.ts +12 -2
  103. package/dist/typescript/commonjs/features/voice/constants.d.ts.map +1 -1
  104. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecord.d.ts.map +1 -1
  105. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordButton.d.ts +1 -3
  106. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
  107. package/dist/typescript/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts +2 -1
  108. package/dist/typescript/commonjs/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts.map +1 -1
  109. package/dist/typescript/commonjs/features/voice/recording/model/VoiceRecord.model.d.ts +3 -1
  110. package/dist/typescript/commonjs/features/voice/recording/model/VoiceRecord.model.d.ts.map +1 -1
  111. package/dist/typescript/commonjs/features/voice/types.d.ts +4 -0
  112. package/dist/typescript/commonjs/features/voice/types.d.ts.map +1 -1
  113. package/dist/typescript/commonjs/shared/icons/keyboard/AngleIcon.d.ts.map +1 -1
  114. package/dist/typescript/commonjs/shared/icons/keyboard/BidirectionalSegmentIcon.d.ts.map +1 -1
  115. package/dist/typescript/commonjs/shared/icons/keyboard/LineSegmentIcon.d.ts.map +1 -1
  116. package/dist/typescript/commonjs/shared/icons/keyboard/RightDirectedSegmentIcon.d.ts.map +1 -1
  117. package/dist/typescript/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.d.ts +1 -1
  118. package/dist/typescript/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.d.ts.map +1 -1
  119. package/dist/typescript/module/features/keyboard/components/AlgebraLayout/helpers.d.ts +15 -0
  120. package/dist/typescript/module/features/keyboard/components/AlgebraLayout/helpers.d.ts.map +1 -0
  121. package/dist/typescript/module/features/keyboard/components/AlgebraLayout/types.d.ts +5 -0
  122. package/dist/typescript/module/features/keyboard/components/AlgebraLayout/types.d.ts.map +1 -0
  123. package/dist/typescript/module/features/keyboard/constants/groups/index.d.ts +0 -1
  124. package/dist/typescript/module/features/keyboard/constants/groups/index.d.ts.map +1 -1
  125. package/dist/typescript/module/features/keyboard/constants/keyboard.constants.d.ts +0 -5
  126. package/dist/typescript/module/features/keyboard/constants/keyboard.constants.d.ts.map +1 -1
  127. package/dist/typescript/module/features/keyboard/constants/keyboard.helpers.d.ts.map +1 -1
  128. package/dist/typescript/module/features/keyboard/constants/keyboardLayouts.d.ts +4 -13
  129. package/dist/typescript/module/features/keyboard/constants/keyboardLayouts.d.ts.map +1 -1
  130. package/dist/typescript/module/features/keyboard/constants/keys/geometry.constants.d.ts.map +1 -1
  131. package/dist/typescript/module/features/keyboard/constants/keys/units.constants.d.ts.map +1 -1
  132. package/dist/typescript/module/features/keyboard/types/types.d.ts +0 -1
  133. package/dist/typescript/module/features/keyboard/types/types.d.ts.map +1 -1
  134. package/dist/typescript/module/features/voice/constants.d.ts +12 -2
  135. package/dist/typescript/module/features/voice/constants.d.ts.map +1 -1
  136. package/dist/typescript/module/features/voice/recording/components/VoiceRecord.d.ts.map +1 -1
  137. package/dist/typescript/module/features/voice/recording/components/VoiceRecordButton.d.ts +1 -3
  138. package/dist/typescript/module/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
  139. package/dist/typescript/module/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts +2 -1
  140. package/dist/typescript/module/features/voice/recording/hooks/useVoiceRecorderAnimation.d.ts.map +1 -1
  141. package/dist/typescript/module/features/voice/recording/model/VoiceRecord.model.d.ts +3 -1
  142. package/dist/typescript/module/features/voice/recording/model/VoiceRecord.model.d.ts.map +1 -1
  143. package/dist/typescript/module/features/voice/types.d.ts +4 -0
  144. package/dist/typescript/module/features/voice/types.d.ts.map +1 -1
  145. package/dist/typescript/module/shared/icons/keyboard/AngleIcon.d.ts.map +1 -1
  146. package/dist/typescript/module/shared/icons/keyboard/BidirectionalSegmentIcon.d.ts.map +1 -1
  147. package/dist/typescript/module/shared/icons/keyboard/LineSegmentIcon.d.ts.map +1 -1
  148. package/dist/typescript/module/shared/icons/keyboard/RightDirectedSegmentIcon.d.ts.map +1 -1
  149. package/package.json +1 -1
  150. package/src/features/keyboard/components/AlgebraLayout/AlgebraLayout.tsx +73 -17
  151. package/src/features/keyboard/components/AlgebraLayout/helpers.tsx +52 -0
  152. package/src/features/keyboard/components/AlgebraLayout/types.ts +4 -0
  153. package/src/features/keyboard/constants/groups/index.ts +0 -1
  154. package/src/features/keyboard/constants/keyboard.constants.ts +0 -6
  155. package/src/features/keyboard/constants/keyboard.helpers.ts +0 -3
  156. package/src/features/keyboard/constants/keyboardLayouts.ts +5 -15
  157. package/src/features/keyboard/constants/keys/geometry.constants.tsx +1 -61
  158. package/src/features/keyboard/constants/keys/text.constants.tsx +9 -9
  159. package/src/features/keyboard/constants/keys/units.constants.tsx +0 -1
  160. package/src/features/keyboard/types/types.ts +0 -1
  161. package/src/features/voice/constants.ts +13 -2
  162. package/src/features/voice/recording/components/VoiceRecord.tsx +28 -5
  163. package/src/features/voice/recording/components/VoiceRecordButton.tsx +99 -30
  164. package/src/features/voice/recording/components/VoiceRecordDeleteButton.tsx +2 -2
  165. package/src/features/voice/recording/hooks/useVoiceRecorderAnimation.ts +8 -4
  166. package/src/features/voice/recording/model/VoiceRecord.model.ts +7 -0
  167. package/src/features/voice/types.ts +5 -0
  168. package/src/shared/icons/keyboard/AngleIcon.tsx +2 -4
  169. package/src/shared/icons/keyboard/BidirectionalSegmentIcon.tsx +8 -5
  170. package/src/shared/icons/keyboard/LineSegmentIcon.tsx +7 -6
  171. package/src/shared/icons/keyboard/RightDirectedSegmentIcon.tsx +8 -5
  172. package/.claude/settings.local.json +0 -25
  173. package/.editorconfig +0 -15
  174. package/.eslintignore +0 -2
  175. package/.eslintrc +0 -22
  176. package/.gitattributes +0 -3
  177. package/.github/actions/setup/action.yml +0 -37
  178. package/.github/workflows/ci.yml +0 -73
  179. package/.gitignore +0 -84
  180. package/.idea/.gitignore +0 -8
  181. package/.idea/codeStyles/Project.xml +0 -62
  182. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  183. package/.idea/copilot.data.migration.agent.xml +0 -6
  184. package/.idea/copilot.data.migration.ask.xml +0 -6
  185. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  186. package/.idea/copilot.data.migration.edit.xml +0 -6
  187. package/.idea/inspectionProfiles/Project_Default.xml +0 -8
  188. package/.idea/jsLinters/eslint.xml +0 -6
  189. package/.idea/modules.xml +0 -8
  190. package/.idea/prettier.xml +0 -7
  191. package/.idea/students-features.iml +0 -12
  192. package/.idea/vcs.xml +0 -6
  193. package/.idea/workspace.xml +0 -667
  194. package/.nvmrc +0 -1
  195. package/.prettierrc +0 -11
  196. package/.release-it.json +0 -17
  197. package/.watchmanconfig +0 -1
  198. package/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +0 -541
  199. package/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs +0 -28
  200. package/.yarn/releases/yarn-3.6.1.cjs +0 -874
  201. package/babel.config.js +0 -5
  202. package/bob.config.js +0 -25
  203. package/dist/commonjs/features/keyboard/components/GeometryLayout/GeometryLayout.js +0 -33
  204. package/dist/commonjs/features/keyboard/components/GeometryLayout/GeometryLayout.js.map +0 -1
  205. package/dist/commonjs/features/keyboard/components/SwitchableLayout/SwitchableLayout.js +0 -94
  206. package/dist/commonjs/features/keyboard/components/SwitchableLayout/SwitchableLayout.js.map +0 -1
  207. package/dist/commonjs/features/keyboard/components/SwitchableLayout/helpers.js +0 -25
  208. package/dist/commonjs/features/keyboard/components/SwitchableLayout/helpers.js.map +0 -1
  209. package/dist/commonjs/features/keyboard/components/SwitchableLayout/types.js.map +0 -1
  210. package/dist/commonjs/features/keyboard/constants/groups/geometry.constants.js +0 -11
  211. package/dist/commonjs/features/keyboard/constants/groups/geometry.constants.js.map +0 -1
  212. package/dist/commonjs/shared/icons/GeometryIcon.js +0 -32
  213. package/dist/commonjs/shared/icons/GeometryIcon.js.map +0 -1
  214. package/dist/commonjs/shared/icons/keyboard/ImpliesIcon.js +0 -30
  215. package/dist/commonjs/shared/icons/keyboard/ImpliesIcon.js.map +0 -1
  216. package/dist/commonjs/shared/icons/keyboard/LetterAIcon.js +0 -29
  217. package/dist/commonjs/shared/icons/keyboard/LetterAIcon.js.map +0 -1
  218. package/dist/commonjs/shared/icons/keyboard/LetterBIcon.js +0 -29
  219. package/dist/commonjs/shared/icons/keyboard/LetterBIcon.js.map +0 -1
  220. package/dist/commonjs/shared/icons/keyboard/LetterCIcon.js +0 -29
  221. package/dist/commonjs/shared/icons/keyboard/LetterCIcon.js.map +0 -1
  222. package/dist/commonjs/shared/icons/keyboard/ThereforeIcon.js +0 -42
  223. package/dist/commonjs/shared/icons/keyboard/ThereforeIcon.js.map +0 -1
  224. package/dist/commonjs/shared/icons/keyboard/TriangleIcon.js +0 -32
  225. package/dist/commonjs/shared/icons/keyboard/TriangleIcon.js.map +0 -1
  226. package/dist/module/features/keyboard/components/GeometryLayout/GeometryLayout.js +0 -27
  227. package/dist/module/features/keyboard/components/GeometryLayout/GeometryLayout.js.map +0 -1
  228. package/dist/module/features/keyboard/components/SwitchableLayout/SwitchableLayout.js +0 -87
  229. package/dist/module/features/keyboard/components/SwitchableLayout/SwitchableLayout.js.map +0 -1
  230. package/dist/module/features/keyboard/components/SwitchableLayout/helpers.js +0 -21
  231. package/dist/module/features/keyboard/components/SwitchableLayout/helpers.js.map +0 -1
  232. package/dist/module/features/keyboard/components/SwitchableLayout/types.js.map +0 -1
  233. package/dist/module/features/keyboard/constants/groups/geometry.constants.js +0 -7
  234. package/dist/module/features/keyboard/constants/groups/geometry.constants.js.map +0 -1
  235. package/dist/module/shared/icons/GeometryIcon.js +0 -24
  236. package/dist/module/shared/icons/GeometryIcon.js.map +0 -1
  237. package/dist/module/shared/icons/keyboard/ImpliesIcon.js +0 -22
  238. package/dist/module/shared/icons/keyboard/ImpliesIcon.js.map +0 -1
  239. package/dist/module/shared/icons/keyboard/LetterAIcon.js +0 -21
  240. package/dist/module/shared/icons/keyboard/LetterAIcon.js.map +0 -1
  241. package/dist/module/shared/icons/keyboard/LetterBIcon.js +0 -21
  242. package/dist/module/shared/icons/keyboard/LetterBIcon.js.map +0 -1
  243. package/dist/module/shared/icons/keyboard/LetterCIcon.js +0 -21
  244. package/dist/module/shared/icons/keyboard/LetterCIcon.js.map +0 -1
  245. package/dist/module/shared/icons/keyboard/ThereforeIcon.js +0 -34
  246. package/dist/module/shared/icons/keyboard/ThereforeIcon.js.map +0 -1
  247. package/dist/module/shared/icons/keyboard/TriangleIcon.js +0 -24
  248. package/dist/module/shared/icons/keyboard/TriangleIcon.js.map +0 -1
  249. package/dist/typescript/commonjs/features/keyboard/components/GeometryLayout/GeometryLayout.d.ts +0 -4
  250. package/dist/typescript/commonjs/features/keyboard/components/GeometryLayout/GeometryLayout.d.ts.map +0 -1
  251. package/dist/typescript/commonjs/features/keyboard/components/SwitchableLayout/SwitchableLayout.d.ts +0 -4
  252. package/dist/typescript/commonjs/features/keyboard/components/SwitchableLayout/SwitchableLayout.d.ts.map +0 -1
  253. package/dist/typescript/commonjs/features/keyboard/components/SwitchableLayout/helpers.d.ts +0 -12
  254. package/dist/typescript/commonjs/features/keyboard/components/SwitchableLayout/helpers.d.ts.map +0 -1
  255. package/dist/typescript/commonjs/features/keyboard/components/SwitchableLayout/types.d.ts +0 -21
  256. package/dist/typescript/commonjs/features/keyboard/components/SwitchableLayout/types.d.ts.map +0 -1
  257. package/dist/typescript/commonjs/features/keyboard/constants/groups/geometry.constants.d.ts +0 -3
  258. package/dist/typescript/commonjs/features/keyboard/constants/groups/geometry.constants.d.ts.map +0 -1
  259. package/dist/typescript/commonjs/shared/icons/GeometryIcon.d.ts +0 -4
  260. package/dist/typescript/commonjs/shared/icons/GeometryIcon.d.ts.map +0 -1
  261. package/dist/typescript/commonjs/shared/icons/keyboard/ImpliesIcon.d.ts +0 -4
  262. package/dist/typescript/commonjs/shared/icons/keyboard/ImpliesIcon.d.ts.map +0 -1
  263. package/dist/typescript/commonjs/shared/icons/keyboard/LetterAIcon.d.ts +0 -4
  264. package/dist/typescript/commonjs/shared/icons/keyboard/LetterAIcon.d.ts.map +0 -1
  265. package/dist/typescript/commonjs/shared/icons/keyboard/LetterBIcon.d.ts +0 -4
  266. package/dist/typescript/commonjs/shared/icons/keyboard/LetterBIcon.d.ts.map +0 -1
  267. package/dist/typescript/commonjs/shared/icons/keyboard/LetterCIcon.d.ts +0 -4
  268. package/dist/typescript/commonjs/shared/icons/keyboard/LetterCIcon.d.ts.map +0 -1
  269. package/dist/typescript/commonjs/shared/icons/keyboard/ThereforeIcon.d.ts +0 -4
  270. package/dist/typescript/commonjs/shared/icons/keyboard/ThereforeIcon.d.ts.map +0 -1
  271. package/dist/typescript/commonjs/shared/icons/keyboard/TriangleIcon.d.ts +0 -4
  272. package/dist/typescript/commonjs/shared/icons/keyboard/TriangleIcon.d.ts.map +0 -1
  273. package/dist/typescript/module/features/keyboard/components/GeometryLayout/GeometryLayout.d.ts +0 -4
  274. package/dist/typescript/module/features/keyboard/components/GeometryLayout/GeometryLayout.d.ts.map +0 -1
  275. package/dist/typescript/module/features/keyboard/components/SwitchableLayout/SwitchableLayout.d.ts +0 -4
  276. package/dist/typescript/module/features/keyboard/components/SwitchableLayout/SwitchableLayout.d.ts.map +0 -1
  277. package/dist/typescript/module/features/keyboard/components/SwitchableLayout/helpers.d.ts +0 -12
  278. package/dist/typescript/module/features/keyboard/components/SwitchableLayout/helpers.d.ts.map +0 -1
  279. package/dist/typescript/module/features/keyboard/components/SwitchableLayout/types.d.ts +0 -21
  280. package/dist/typescript/module/features/keyboard/components/SwitchableLayout/types.d.ts.map +0 -1
  281. package/dist/typescript/module/features/keyboard/constants/groups/geometry.constants.d.ts +0 -3
  282. package/dist/typescript/module/features/keyboard/constants/groups/geometry.constants.d.ts.map +0 -1
  283. package/dist/typescript/module/shared/icons/GeometryIcon.d.ts +0 -4
  284. package/dist/typescript/module/shared/icons/GeometryIcon.d.ts.map +0 -1
  285. package/dist/typescript/module/shared/icons/keyboard/ImpliesIcon.d.ts +0 -4
  286. package/dist/typescript/module/shared/icons/keyboard/ImpliesIcon.d.ts.map +0 -1
  287. package/dist/typescript/module/shared/icons/keyboard/LetterAIcon.d.ts +0 -4
  288. package/dist/typescript/module/shared/icons/keyboard/LetterAIcon.d.ts.map +0 -1
  289. package/dist/typescript/module/shared/icons/keyboard/LetterBIcon.d.ts +0 -4
  290. package/dist/typescript/module/shared/icons/keyboard/LetterBIcon.d.ts.map +0 -1
  291. package/dist/typescript/module/shared/icons/keyboard/LetterCIcon.d.ts +0 -4
  292. package/dist/typescript/module/shared/icons/keyboard/LetterCIcon.d.ts.map +0 -1
  293. package/dist/typescript/module/shared/icons/keyboard/ThereforeIcon.d.ts +0 -4
  294. package/dist/typescript/module/shared/icons/keyboard/ThereforeIcon.d.ts.map +0 -1
  295. package/dist/typescript/module/shared/icons/keyboard/TriangleIcon.d.ts +0 -4
  296. package/dist/typescript/module/shared/icons/keyboard/TriangleIcon.d.ts.map +0 -1
  297. package/example/.expo/README.md +0 -8
  298. package/example/.expo/devices.json +0 -3
  299. package/example/.expo/web/cache/production/images/favicon/favicon-24272cdaeff82cc5facdaccd982a6f05b60c4504704bbf94c19a6388659880bb-contain-transparent/favicon-48.png +0 -0
  300. package/example/app.json +0 -30
  301. package/example/assets/adaptive-icon.png +0 -0
  302. package/example/assets/favicon.png +0 -0
  303. package/example/assets/icon.png +0 -0
  304. package/example/assets/splash-icon.png +0 -0
  305. package/example/babel.config.js +0 -28
  306. package/example/index.js +0 -8
  307. package/example/metro.config.js +0 -18
  308. package/example/package.json +0 -25
  309. package/example/src/App.tsx +0 -8
  310. package/example/tsconfig.json +0 -6
  311. package/src/features/keyboard/components/GeometryLayout/GeometryLayout.tsx +0 -21
  312. package/src/features/keyboard/components/SwitchableLayout/SwitchableLayout.tsx +0 -100
  313. package/src/features/keyboard/components/SwitchableLayout/helpers.tsx +0 -31
  314. package/src/features/keyboard/components/SwitchableLayout/types.ts +0 -24
  315. package/src/features/keyboard/constants/groups/geometry.constants.ts +0 -25
  316. package/src/shared/icons/GeometryIcon.tsx +0 -18
  317. package/src/shared/icons/keyboard/ImpliesIcon.tsx +0 -16
  318. package/src/shared/icons/keyboard/LetterAIcon.tsx +0 -14
  319. package/src/shared/icons/keyboard/LetterBIcon.tsx +0 -14
  320. package/src/shared/icons/keyboard/LetterCIcon.tsx +0 -14
  321. package/src/shared/icons/keyboard/ThereforeIcon.tsx +0 -15
  322. package/src/shared/icons/keyboard/TriangleIcon.tsx +0 -18
  323. package/tsconfig.build.json +0 -4
  324. package/tsconfig.json +0 -34
  325. package/yarn.lock +0 -10957
@@ -5,15 +5,6 @@ import { DegreeIcon } from '../../../../shared/icons/keyboard/DegreeIcon'
5
5
  import { AngleIcon } from '../../../../shared/icons/keyboard/AngleIcon'
6
6
  import { ParallelIcon } from '../../../../shared/icons/keyboard/ParallelIcon'
7
7
  import { PerpendicularIcon } from '../../../../shared/icons/keyboard/PerpendicularIcon'
8
- import { TriangleIcon } from '../../../../shared/icons/keyboard/TriangleIcon'
9
- import { ThereforeIcon } from '../../../../shared/icons/keyboard/ThereforeIcon'
10
- import { ImpliesIcon } from '../../../../shared/icons/keyboard/ImpliesIcon'
11
- import { LineSegmentIcon } from '../../../../shared/icons/keyboard/LineSegmentIcon'
12
- import { RightDirectedSegmentIcon } from '../../../../shared/icons/keyboard/RightDirectedSegmentIcon'
13
- import { BidirectionalSegmentIcon } from '../../../../shared/icons/keyboard/BidirectionalSegmentIcon'
14
- import { LetterAIcon } from '../../../../shared/icons/keyboard/LetterAIcon'
15
- import { LetterBIcon } from '../../../../shared/icons/keyboard/LetterBIcon'
16
- import { LetterCIcon } from '../../../../shared/icons/keyboard/LetterCIcon'
17
8
  import { DEFAULT_KEY_ICON_PROPS } from '../keyboard.constants'
18
9
 
19
10
  export const MATH_GEOMETRY_SYMBOLS: MathOperatorsGroup = {
@@ -23,7 +14,7 @@ export const MATH_GEOMETRY_SYMBOLS: MathOperatorsGroup = {
23
14
  katexValue: '°',
24
15
  },
25
16
  ANGLE: {
26
- icon: <AngleIcon {...DEFAULT_KEY_ICON_PROPS} size={20} />,
17
+ icon: <AngleIcon {...DEFAULT_KEY_ICON_PROPS} />,
27
18
  mathliveValue: '\\angle',
28
19
  katexValue: '∠',
29
20
  },
@@ -54,55 +45,4 @@ export const MATH_GEOMETRY_SYMBOLS: MathOperatorsGroup = {
54
45
  },
55
46
  },
56
47
  },
57
- TRIANGLE: {
58
- icon: <TriangleIcon {...DEFAULT_KEY_ICON_PROPS} size={20} />,
59
- mathliveValue: '\\triangle',
60
- katexValue: '△',
61
- },
62
- THEREFORE: {
63
- icon: <ThereforeIcon {...DEFAULT_KEY_ICON_PROPS} size={20} />,
64
- mathliveValue: '\\therefore',
65
- katexValue: '∴',
66
- },
67
- IMPLIES: {
68
- icon: <ImpliesIcon {...DEFAULT_KEY_ICON_PROPS} size={20} />,
69
- mathliveValue: '\\Rightarrow',
70
- katexValue: '⇒',
71
- },
72
- LINE_SEGMENT: {
73
- icon: <LineSegmentIcon {...DEFAULT_KEY_ICON_PROPS} size={20} />,
74
- mathliveValue: '\\overline{\\placeholder{}}',
75
- katexValue: 'LINE_SEGMENT',
76
- spreadsheetValue: 'LINE_SEGMENT',
77
- isSpecialSymbol: true,
78
- },
79
- RIGHT_DIRECTED_SEGMENT: {
80
- icon: <RightDirectedSegmentIcon {...DEFAULT_KEY_ICON_PROPS} size={20} />,
81
- mathliveValue: '\\overrightarrow{\\placeholder{}}',
82
- katexValue: 'RIGHT_DIRECTED_SEGMENT',
83
- spreadsheetValue: 'RIGHT_DIRECTED_SEGMENT',
84
- isSpecialSymbol: true,
85
- },
86
- BIDIRECTIONAL_SEGMENT: {
87
- icon: <BidirectionalSegmentIcon {...DEFAULT_KEY_ICON_PROPS} size={20} />,
88
- mathliveValue: '\\overleftrightarrow{\\placeholder{}}',
89
- katexValue: 'BIDIRECTIONAL_SEGMENT',
90
- spreadsheetValue: 'BIDIRECTIONAL_SEGMENT',
91
- isSpecialSymbol: true,
92
- },
93
- A: {
94
- icon: <LetterAIcon {...DEFAULT_KEY_ICON_PROPS} />,
95
- mathliveValue: '𝐴',
96
- katexValue: 'A',
97
- },
98
- B: {
99
- icon: <LetterBIcon {...DEFAULT_KEY_ICON_PROPS} />,
100
- mathliveValue: '𝐵',
101
- katexValue: 'B',
102
- },
103
- C: {
104
- icon: <LetterCIcon {...DEFAULT_KEY_ICON_PROPS} />,
105
- mathliveValue: '𝐶',
106
- katexValue: 'C',
107
- },
108
48
  } as const
@@ -7,19 +7,19 @@ import { DEFAULT_KEY_ICON_PROPS } from '../keyboard.constants'
7
7
 
8
8
  export const MATH_TEXT_SYMBOLS: MathOperatorsGroup = {
9
9
  A: {
10
- label: 'A',
11
- mathliveValue: 'A',
12
- katexValue: 'A',
10
+ label: 'a',
11
+ mathliveValue: 'a',
12
+ katexValue: 'a',
13
13
  },
14
14
  B: {
15
- label: 'B',
16
- mathliveValue: 'B',
17
- katexValue: 'B',
15
+ label: 'b',
16
+ mathliveValue: 'b',
17
+ katexValue: 'b',
18
18
  },
19
19
  C: {
20
- label: 'C',
21
- mathliveValue: 'C',
22
- katexValue: 'C',
20
+ label: 'c',
21
+ mathliveValue: 'c',
22
+ katexValue: 'c',
23
23
  },
24
24
  F: {
25
25
  label: 'f',
@@ -460,6 +460,5 @@ export const MATH_TIME_UNITS: MathOperatorsGroup = {
460
460
  label: 'pm',
461
461
  mathliveValue: '\\mathrm{pm}',
462
462
  katexValue: 'pm',
463
- mathQuillValue: 'pm',
464
463
  },
465
464
  } as const
@@ -23,7 +23,6 @@ export enum KeyboardType {
23
23
  BasicUnits = 'BasicUnits',
24
24
  BasicPlusPlus = 'BasicPlusPlus',
25
25
  BasicPlusPlusMobile = 'BasicPlusPlusMobile',
26
- Geometry = 'Geometry',
27
26
  Numpad = 'Numpad',
28
27
  Underlined = 'Underlined',
29
28
  }
@@ -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,8 @@ 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
+ export const VOICE_RECORD_SHAWODS = {
24
+ default: '0 1px 3px 0 rgba(51, 51, 51, 0.10), 0 0 1px 0 rgba(51, 51, 51, 0.40)',
25
+ advanced: '0 0 1px 0 rgba(51, 51, 51, 0.20), 0 3px 10px 0 rgba(51, 51, 51, 0.16)',
26
+ }
@@ -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,6 +10,8 @@ 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_SHAWODS } from '../../constants'
13
15
 
14
16
  type VoiceRecordProps = {
15
17
  style?: StyleProp<ViewStyle>
@@ -20,7 +22,8 @@ export const VoiceRecord = ({ style, model }: VoiceRecordProps) => {
20
22
  const { recorderState } = useVoiceRecorder(model)
21
23
  const [isExpanded, isDisabled] = useUnit([model.$isExpanded, model.$isButtonDisabled])
22
24
 
23
- const { containerAnimatedStyle } = useVoiceRecorderAnimation(isExpanded)
25
+ const recordButtonVariant = model.recordButtonVariant
26
+ const { containerAnimatedStyle } = useVoiceRecorderAnimation(isExpanded, recordButtonVariant)
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]}>
35
+ <Animated.View
36
+ style={[
37
+ styles.container,
38
+ recordButtonVariant === RecordButtonVariant.ADVANCED && styles.advancedVariantContainer,
39
+ { boxShadow: VOICE_RECORD_SHAWODS[recordButtonVariant] },
40
+ style,
41
+ containerAnimatedStyle,
42
+ ]}
43
+ >
33
44
  <VoiceRecordButton model={model} />
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
+ recordButtonVariant === RecordButtonVariant.ADVANCED && styles.advancedVariantTimer,
51
+ ]}
38
52
  model={model}
39
53
  recordingFileDurationMs={recorderState.durationMillis}
40
54
  />
@@ -53,12 +67,21 @@ 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
+ defaultTimer: {
80
+ marginTop: SPACING[300],
81
+ },
82
+ advancedVariantTimer: {
83
+ marginTop: SPACING[150],
84
+ },
62
85
  expendedContainer: {
63
86
  alignItems: 'center',
64
87
  },
@@ -1,25 +1,35 @@
1
- import React, { useMemo } from 'react'
1
+ import React from 'react'
2
2
  import {
3
+ BORDER_RADIUS,
3
4
  Button,
4
5
  ButtonColor,
5
6
  ButtonSize,
6
7
  ButtonStyle,
7
8
  ButtonVariant,
9
+ CheckIcon,
10
+ COLORS,
8
11
  IS_WEB,
12
+ MicrophoneIcon,
9
13
  } from '@magmamath/react-native-ui'
10
- import { Pressable } from 'react-native'
11
- import { MicrophoneIcon, CheckIcon } from '@magmamath/react-native-ui'
14
+ import { Pressable, StyleSheet, View } from 'react-native'
12
15
  import { VoiceRecordModel } from '../model/VoiceRecord.model'
13
16
  import { useUnit } from 'effector-react'
14
- import { VoiceRecorderState } from '../../constants'
17
+ import { VOICE_RECORD_SHAWODS, VoiceRecorderState } from '../../constants'
15
18
  import { useText } from '../../../../shared/translation'
19
+ import { RecordButtonVariant } from '../../types'
16
20
 
17
21
  type VoiceRecordButtonProps = {
18
- style?: ButtonStyle
19
22
  model: VoiceRecordModel
20
23
  }
21
24
 
22
- export const VoiceRecordButton = ({ style, model }: VoiceRecordButtonProps) => {
25
+ const defaultButtonStyles: ButtonStyle = {
26
+ button: {
27
+ width: 50,
28
+ height: 50,
29
+ },
30
+ }
31
+
32
+ export const VoiceRecordButton = ({ model }: VoiceRecordButtonProps) => {
23
33
  const t = useText()
24
34
 
25
35
  const availableInputs = useUnit(model.recorderModel.$availableInputs)
@@ -27,38 +37,97 @@ export const VoiceRecordButton = ({ style, model }: VoiceRecordButtonProps) => {
27
37
  const isButtonDisabled = useUnit(model.$isButtonDisabled)
28
38
  const isInitializing = useUnit(model.initializeRecording.pending)
29
39
 
30
- const combinedStyles = useMemo((): ButtonStyle => {
31
- return {
32
- button: [{ width: 50, height: 50 }, style?.button],
33
- container: [style?.container],
34
- text: [style?.text],
35
- }
36
- }, [style])
40
+ const isRecording = voiceRecordState === VoiceRecorderState.RECORDING
41
+ const isIdle = voiceRecordState === VoiceRecorderState.IDLE
42
+ const hasInputs = availableInputs.length > 0
37
43
 
38
44
  return (
39
45
  <Pressable
40
46
  onPressIn={(e) => {
41
- if (availableInputs.length) return
47
+ if (hasInputs) return
42
48
  e.preventDefault()
43
49
  model.notification.warning(t('voice.noMicrophoneFound'))
44
50
  }}
45
- pointerEvents={!availableInputs.length || isInitializing ? 'box-only' : 'auto'}
51
+ pointerEvents={!hasInputs || isInitializing ? 'box-only' : 'auto'}
52
+ style={[isButtonDisabled ? styles.disabledCursor : undefined]}
46
53
  >
47
- <Button
48
- disabled={isButtonDisabled || !availableInputs.length}
49
- onPressIn={() => model.recorderButtonHandler()}
50
- style={combinedStyles}
51
- size={ButtonSize.LARGE}
52
- variant={ButtonVariant.SECONDARY}
53
- colorScheme={ButtonColor.WHITE}
54
- icon={
55
- voiceRecordState === VoiceRecorderState.RECORDING ? (
56
- <CheckIcon size={25} />
57
- ) : (
58
- <MicrophoneIcon style={IS_WEB ? { width: 19 } : { minWidth: 23, minHeight: 23 }} />
59
- )
60
- }
61
- />
54
+ {model.recordButtonVariant === RecordButtonVariant.ADVANCED ? (
55
+ <AdvancedButton
56
+ isRecording={isRecording}
57
+ isIdle={isIdle}
58
+ disabled={isButtonDisabled}
59
+ onPressIn={() => model.recorderButtonHandler()}
60
+ />
61
+ ) : (
62
+ <Button
63
+ disabled={isButtonDisabled}
64
+ onPressIn={() => model.recorderButtonHandler()}
65
+ style={defaultButtonStyles}
66
+ size={ButtonSize.LARGE}
67
+ variant={ButtonVariant.SECONDARY}
68
+ colorScheme={ButtonColor.WHITE}
69
+ icon={
70
+ isRecording ? (
71
+ <CheckIcon size={25} />
72
+ ) : (
73
+ <MicrophoneIcon style={IS_WEB ? { width: 19 } : { minWidth: 23, minHeight: 23 }} />
74
+ )
75
+ }
76
+ />
77
+ )}
62
78
  </Pressable>
63
79
  )
64
80
  }
81
+
82
+ type AdvancedButtonProps = {
83
+ isRecording: boolean
84
+ isIdle: boolean
85
+ disabled: boolean
86
+ onPressIn: () => void
87
+ }
88
+
89
+ const AdvancedButton = ({ isRecording, isIdle, disabled, onPressIn }: AdvancedButtonProps) => (
90
+ <Pressable
91
+ style={[styles.advancedButtonContainer, disabled && styles.disabledCursor]}
92
+ onPressIn={onPressIn}
93
+ disabled={disabled}
94
+ >
95
+ <View
96
+ style={[
97
+ styles.advancedIconContainer,
98
+ !isIdle && { borderRadius: 32, backgroundColor: COLORS.PRIMARY_BLUE },
99
+ ]}
100
+ >
101
+ {isRecording ? (
102
+ <CheckIcon size={18} color={COLORS.NEUTRAL_1} />
103
+ ) : (
104
+ <MicrophoneIcon
105
+ style={{ width: 14, height: 19 }}
106
+ color={disabled ? COLORS.NEUTRAL_5 : isIdle ? COLORS.NEUTRAL_9 : COLORS.NEUTRAL_1}
107
+ />
108
+ )}
109
+ </View>
110
+ </Pressable>
111
+ )
112
+
113
+ const styles = StyleSheet.create({
114
+ advancedButtonContainer: {
115
+ width: 52,
116
+ height: 52,
117
+ backgroundColor: 'white',
118
+ alignItems: 'center',
119
+ justifyContent: 'center',
120
+ borderRadius: BORDER_RADIUS[300],
121
+ boxShadow: VOICE_RECORD_SHAWODS[RecordButtonVariant.ADVANCED],
122
+ },
123
+ advancedIconContainer: {
124
+ width: 36,
125
+ height: 36,
126
+ borderRadius: BORDER_RADIUS[300],
127
+ justifyContent: 'center',
128
+ alignItems: 'center',
129
+ },
130
+ disabledCursor: {
131
+ cursor: 'not-allowed' as 'auto',
132
+ },
133
+ })
@@ -17,8 +17,8 @@ export const VoiceRecordDeleteButton = ({ onPress, isDisabled }: VoiceRecordDele
17
17
 
18
18
  const styles = StyleSheet.create({
19
19
  container: {
20
- width: 36,
21
- height: 36,
20
+ width: 32,
21
+ height: 32,
22
22
  alignItems: 'center',
23
23
  justifyContent: 'center',
24
24
  },
@@ -1,19 +1,23 @@
1
1
  import { useAnimatedStyle, withTiming } from 'react-native-reanimated'
2
2
  import { VOICE_RECORDER_CONTAINER_SIZES } from '../../constants'
3
+ import { RecordButtonVariant } from '../../types'
3
4
 
4
- export const useVoiceRecorderAnimation = (isExpanded: boolean) => {
5
+ export const useVoiceRecorderAnimation = (
6
+ isExpanded: boolean,
7
+ recordButtonVariant: RecordButtonVariant,
8
+ ) => {
5
9
  const containerAnimatedStyle = useAnimatedStyle(() => {
6
10
  return {
7
11
  height: withTiming(
8
12
  isExpanded
9
- ? VOICE_RECORDER_CONTAINER_SIZES.EXPANDED
10
- : VOICE_RECORDER_CONTAINER_SIZES.COLLAPSED,
13
+ ? VOICE_RECORDER_CONTAINER_SIZES.EXPANDED[recordButtonVariant]
14
+ : VOICE_RECORDER_CONTAINER_SIZES.COLLAPSED[recordButtonVariant],
11
15
  {
12
16
  duration: 280,
13
17
  },
14
18
  ),
15
19
  }
16
- }, [isExpanded])
20
+ }, [isExpanded, recordButtonVariant])
17
21
 
18
22
  return { containerAnimatedStyle }
19
23
  }
@@ -4,6 +4,7 @@ import { VoiceRecordsCollection } from './VoiceRecordCollection'
4
4
  import { UploaderModel } from './Uploader.model'
5
5
  import { VoiceRecorderState } from '../../constants'
6
6
  import {
7
+ RecordButtonVariant,
7
8
  VoiceRecordCollectionItem,
8
9
  VoiceRecorderApi,
9
10
  VoiceRecordNotificationTypes,
@@ -58,6 +59,8 @@ export class VoiceRecordModel {
58
59
  public readonly events: VoiceRecordEvents
59
60
  private shouldDiscardRecording = false
60
61
 
62
+ public recordButtonVariant = RecordButtonVariant.DEFAULT
63
+
61
64
  public readonly setCurrentKey = createEvent<string>()
62
65
  public readonly setCurrentRecord = createEvent<any>()
63
66
  public readonly reset = createEvent()
@@ -82,6 +85,10 @@ export class VoiceRecordModel {
82
85
  await this.api.deleteAudioFile(audioFileId)
83
86
  })
84
87
 
88
+ public readonly setRecordButtonVariant = createEffect((variant: RecordButtonVariant) => {
89
+ this.recordButtonVariant = variant
90
+ })
91
+
85
92
  public readonly deleteCurrentRecording = attach({
86
93
  source: this.$currentKey,
87
94
  mapParams: (props: DeleteCurrentRecordingProps | void, currentKey) => ({
@@ -82,3 +82,8 @@ export type VoiceTranscriptionItem = {
82
82
  controller?: AbortController
83
83
  hasDrawing?: boolean
84
84
  }
85
+
86
+ export enum RecordButtonVariant {
87
+ DEFAULT = 'default',
88
+ ADVANCED = 'advanced',
89
+ }
@@ -2,13 +2,11 @@ import React from 'react'
2
2
  import { IconProps } from './icon.types'
3
3
  import Svg, { Path } from 'react-native-svg'
4
4
 
5
- const ASPECT_RATIO = 20 / 18
6
-
7
5
  export const AngleIcon = ({ size = 20, color }: IconProps) => {
8
6
  return (
9
- <Svg width={size} height={size / ASPECT_RATIO} viewBox="0 0 20 18" fill="none">
7
+ <Svg width={size} height={size} viewBox="0 0 16 16" fill="none">
10
8
  <Path
11
- d="M11.841 3.87043C12.1077 3.5183 12.6099 3.44943 12.962 3.71614C13.3142 3.98288 13.384 4.48502 13.1173 4.83723L7.17238 12.6866C7.12249 12.7525 7.16947 12.847 7.25209 12.847H14.5587C15.0004 12.8471 15.3584 13.2051 15.3585 13.6468C15.3585 14.0885 15.0004 14.4465 14.5587 14.4466H5.44154C5.13785 14.4466 4.85992 14.2752 4.72474 14.0032C4.58961 13.7314 4.62065 13.4065 4.80384 13.1644L11.841 3.87043Z"
9
+ d="M8.94912 6.74144C9.20676 6.46187 9.63941 6.41761 9.9501 6.65062C10.2606 6.88377 10.3389 7.31141 10.1425 7.63695L10.0995 7.70043L6.49991 12.5002H10.9999C11.4141 12.5002 11.7499 12.836 11.7499 13.2502C11.7499 13.6644 11.4141 14.0002 10.9999 14.0002H4.99991C4.71583 14.0002 4.45605 13.8393 4.32901 13.5852C4.20219 13.3312 4.22994 13.0272 4.4003 12.8L8.9003 6.80004L8.94912 6.74144Z"
12
10
  fill={color}
13
11
  />
14
12
  </Svg>
@@ -1,17 +1,20 @@
1
1
  import React from 'react'
2
2
  import { IconProps } from './icon.types'
3
- import Svg, { Path, Rect } from 'react-native-svg'
3
+ import Svg, { Path } from 'react-native-svg'
4
4
 
5
- const ASPECT_RATIO = 19 / 20
5
+ const ASPECT_RATIO = 20 / 21
6
6
 
7
7
  export const BidirectionalSegmentIcon = ({ size = 20, color }: IconProps) => {
8
8
  return (
9
- <Svg width={size} height={size / ASPECT_RATIO} viewBox="0 0 19 20" fill="none">
9
+ <Svg width={size * ASPECT_RATIO} height={size} viewBox="0 0 20 21" fill="none">
10
10
  <Path
11
- d="M16.1464 1.52657C16.3173 1.35571 16.5813 1.33396 16.7754 1.46212L16.8535 1.52657L18.8535 3.52657L18.9179 3.6047C19.0461 3.79878 19.0243 4.06274 18.8535 4.23361L16.8535 6.23361C16.6582 6.42887 16.3417 6.42887 16.1464 6.23361C15.9512 6.03834 15.9512 5.72184 16.1464 5.52657L17.2929 4.38009H1.70699L2.85348 5.52657L2.91793 5.6047C3.0461 5.79878 3.02434 6.06274 2.85348 6.23361C2.68261 6.40447 2.41865 6.42622 2.22457 6.29806L2.14645 6.23361L0.146447 4.23361C-0.0488155 4.03834 -0.0488155 3.72184 0.146447 3.52657L2.14645 1.52657L2.22457 1.46212C2.41865 1.33396 2.68261 1.35571 2.85348 1.52657C3.02434 1.69744 3.0461 1.9614 2.91793 2.15548L2.85348 2.23361L1.70699 3.38009H17.2929L16.1464 2.23361L16.082 2.15548C15.9538 1.9614 15.9756 1.69744 16.1464 1.52657Z"
11
+ d="M16.6464 0.146692C16.8173 -0.0241721 17.0813 -0.0459256 17.2754 0.0822385L17.3535 0.146692L19.3535 2.14669L19.4179 2.22482C19.5461 2.4189 19.5243 2.68286 19.3535 2.85372L17.3535 4.85372C17.1582 5.04899 16.8417 5.04899 16.6464 4.85372C16.4512 4.65846 16.4512 4.34195 16.6464 4.14669L17.7929 3.00021H2.20699L3.35348 4.14669L3.41793 4.22482C3.5461 4.4189 3.52434 4.68286 3.35348 4.85372C3.18261 5.02459 2.91865 5.04634 2.72457 4.91818L2.64645 4.85372L0.646447 2.85372C0.451184 2.65846 0.451184 2.34195 0.646447 2.14669L2.64645 0.146692L2.72457 0.0822385C2.91865 -0.0459256 3.18261 -0.0241721 3.35348 0.146692C3.52434 0.317555 3.5461 0.581519 3.41793 0.775598L3.35348 0.853723L2.20699 2.00021H17.7929L16.6464 0.853723L16.582 0.775598C16.4538 0.581519 16.4756 0.317555 16.6464 0.146692Z"
12
+ fill={color}
13
+ />
14
+ <Path
15
+ d="M8.07948 17L7.70148 14.55H3.52948L2.01748 17H0.407484L6.55348 7.2H7.91149L9.52148 17H8.07948ZM4.32748 13.22H7.51948L6.87548 9.09L4.32748 13.22ZM16.4822 7.2C18.0922 7.2 18.8762 8.236 18.8762 9.342C18.8762 10.434 18.1762 11.54 16.8322 11.82C17.9662 12.128 18.4842 12.996 18.4842 13.906C18.4842 15.432 17.1402 17 14.8162 17H11.0502L13.3182 7.2H16.4822ZM12.7582 15.698H14.9842C16.3842 15.698 17.0562 14.788 17.0562 13.906C17.0562 13.164 16.4822 12.506 15.4042 12.506H13.5002L12.7582 15.698ZM13.7522 11.358H15.5722C16.7762 11.358 17.4482 10.49 17.4482 9.692C17.4482 8.95 16.9862 8.502 16.0202 8.502H14.4102L13.7522 11.358Z"
12
16
  fill={color}
13
17
  />
14
- <Rect x="4.8801" y="8.87988" width="9.24" height="9.24" rx="1.548" stroke="#B3B3BC" />
15
18
  </Svg>
16
19
  )
17
20
  }
@@ -1,17 +1,18 @@
1
1
  import React from 'react'
2
2
  import { IconProps } from './icon.types'
3
- import Svg, { Path, Rect } from 'react-native-svg'
4
-
5
- const ASPECT_RATIO = 19 / 20
3
+ import Svg, { Path } from 'react-native-svg'
6
4
 
7
5
  export const LineSegmentIcon = ({ size = 20, color }: IconProps) => {
8
6
  return (
9
- <Svg width={size} height={size / ASPECT_RATIO} viewBox="0 0 19 20" fill="none">
7
+ <Svg width={size} height={size} viewBox="0 0 20 20" fill="none">
8
+ <Path
9
+ d="M19 1C19.2761 1 19.5 1.22386 19.5 1.5C19.5 1.77614 19.2761 2 19 2H1C0.723858 2 0.5 1.77614 0.5 1.5C0.5 1.22386 0.723858 1 1 1H19Z"
10
+ fill={color}
11
+ />
10
12
  <Path
11
- d="M18.5 3.37988C18.7761 3.37988 19 3.60374 19 3.87988C19 4.15603 18.7761 4.37988 18.5 4.37988H0.5C0.223858 4.37988 0 4.15603 0 3.87988C0 3.60374 0.223858 3.37988 0.5 3.37988H18.5Z"
13
+ d="M8.07948 16L7.70148 13.55H3.52948L2.01748 16H0.407484L6.55348 6.2H7.91149L9.52148 16H8.07948ZM4.32748 12.22H7.51948L6.87548 8.09L4.32748 12.22ZM16.4822 6.2C18.0922 6.2 18.8762 7.236 18.8762 8.342C18.8762 9.434 18.1762 10.54 16.8322 10.82C17.9662 11.128 18.4842 11.996 18.4842 12.906C18.4842 14.432 17.1402 16 14.8162 16H11.0502L13.3182 6.2H16.4822ZM12.7582 14.698H14.9842C16.3842 14.698 17.0562 13.788 17.0562 12.906C17.0562 12.164 16.4822 11.506 15.4042 11.506H13.5002L12.7582 14.698ZM13.7522 10.358H15.5722C16.7762 10.358 17.4482 9.49 17.4482 8.692C17.4482 7.95 16.9862 7.502 16.0202 7.502H14.4102L13.7522 10.358Z"
12
14
  fill={color}
13
15
  />
14
- <Rect x="4.88" y="8.87988" width="9.24" height="9.24" rx="1.548" stroke="#B3B3BC" />
15
16
  </Svg>
16
17
  )
17
18
  }
@@ -1,17 +1,20 @@
1
1
  import React from 'react'
2
2
  import { IconProps } from './icon.types'
3
- import Svg, { Path, Rect } from 'react-native-svg'
3
+ import Svg, { Path } from 'react-native-svg'
4
4
 
5
- const ASPECT_RATIO = 19 / 20
5
+ const ASPECT_RATIO = 20 / 21
6
6
 
7
7
  export const RightDirectedSegmentIcon = ({ size = 20, color }: IconProps) => {
8
8
  return (
9
- <Svg width={size} height={size / ASPECT_RATIO} viewBox="0 0 19 20" fill="none">
9
+ <Svg width={size * ASPECT_RATIO} height={size} viewBox="0 0 20 21" fill="none">
10
10
  <Path
11
- d="M16.1465 1.52657C16.3173 1.35571 16.5813 1.33396 16.7754 1.46212L16.8535 1.52657L18.8535 3.52657L18.918 3.6047C19.0461 3.79878 19.0244 4.06274 18.8535 4.23361L16.8535 6.23361C16.6583 6.42887 16.3417 6.42887 16.1465 6.23361C15.9512 6.03834 15.9512 5.72184 16.1465 5.52657L17.293 4.38009H0.5C0.223858 4.38009 0 4.15623 0 3.88009C0 3.60395 0.223858 3.38009 0.5 3.38009H17.293L16.1465 2.23361L16.082 2.15548C15.9539 1.9614 15.9756 1.69744 16.1465 1.52657Z"
11
+ d="M16.6465 0.146692C16.8173 -0.0241721 17.0813 -0.0459256 17.2754 0.0822385L17.3535 0.146692L19.3535 2.14669L19.418 2.22482C19.5461 2.4189 19.5244 2.68286 19.3535 2.85372L17.3535 4.85372C17.1583 5.04899 16.8417 5.04899 16.6465 4.85372C16.4512 4.65846 16.4512 4.34195 16.6465 4.14669L17.793 3.00021H1C0.723858 3.00021 0.5 2.77635 0.5 2.50021C0.5 2.22406 0.723858 2.00021 1 2.00021H17.793L16.6465 0.853723L16.582 0.775598C16.4539 0.581519 16.4756 0.317555 16.6465 0.146692Z"
12
+ fill={color}
13
+ />
14
+ <Path
15
+ d="M8.07948 17L7.70148 14.55H3.52948L2.01748 17H0.407484L6.55348 7.2H7.91149L9.52148 17H8.07948ZM4.32748 13.22H7.51948L6.87548 9.09L4.32748 13.22ZM16.4822 7.2C18.0922 7.2 18.8762 8.236 18.8762 9.342C18.8762 10.434 18.1762 11.54 16.8322 11.82C17.9662 12.128 18.4842 12.996 18.4842 13.906C18.4842 15.432 17.1402 17 14.8162 17H11.0502L13.3182 7.2H16.4822ZM12.7582 15.698H14.9842C16.3842 15.698 17.0562 14.788 17.0562 13.906C17.0562 13.164 16.4822 12.506 15.4042 12.506H13.5002L12.7582 15.698ZM13.7522 11.358H15.5722C16.7762 11.358 17.4482 10.49 17.4482 9.692C17.4482 8.95 16.9862 8.502 16.0202 8.502H14.4102L13.7522 11.358Z"
12
16
  fill={color}
13
17
  />
14
- <Rect x="4.8801" y="8.87988" width="9.24" height="9.24" rx="1.548" stroke="#B3B3BC" />
15
18
  </Svg>
16
19
  )
17
20
  }
@@ -1,25 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(npx tsc:*)",
5
- "Bash(find /Users/alesiaskarakhod/Work/students-features -name rn-draw-area -o -name *draw*area*)",
6
- "Bash(grep:*)",
7
- "Bash(find /Users/alesiaskarakhod/Work/magmamath-tools -type f -name \"*.ts*\" ! -path \"*/node_modules/*\" ! -path \"*/.next/*\" ! -path \"*/dist/*\" -exec grep -l \"convertLatexToBrackets\\\\|convertBracketsToLatex\" {})",
8
- "Bash(find /Users/alesiaskarakhod/Work/magmamath-tools -type f \\\\\\(-name *.test.ts* -o -name *.spec.ts* \\\\\\))",
9
- "Bash(ls jest.config* vitest.config* tsconfig*)",
10
- "Bash(npm ls:*)",
11
- "Read(//Users/alesiaskarakhod/node_modules/.bin/**)",
12
- "Bash(yarn add:*)",
13
- "Bash(npx jest:*)",
14
- "Bash(node:*)",
15
- "Bash(npx ts-node:*)",
16
- "Bash(find /Users/alesiaskarakhod/Work/magmamath-tools/packages -name jest.config.* -o -name *.test.ts -o -name *.test.js -o -name *.spec.ts)",
17
- "Bash(find /Users/alesiaskarakhod/Work/magmamath-tools/packages -maxdepth 3 -type f \\\\\\(-name *.test.ts -o -name *.spec.ts -o -name *.test.tsx -o -name *.spec.tsx \\\\\\))",
18
- "Bash(find /Users/alesiaskarakhod/Work/magmamath-tools -type f \\\\\\(-name *.test.ts -o -name *.test.tsx -o -name *.spec.ts -o -name *.spec.tsx \\\\\\))",
19
- "Bash(yarn test:*)",
20
- "Bash(npx vitest:*)",
21
- "Bash(npx tsup:*)",
22
- "Bash(find /Users/alesiaskarakhod/Work/react-native/node_modules/@magmamath/frontend-config -name *.d.ts -o -name *.js)"
23
- ]
24
- }
25
- }
package/.editorconfig DELETED
@@ -1,15 +0,0 @@
1
- # EditorConfig helps developers define and maintain consistent
2
- # coding styles between different editors and IDEs
3
- # editorconfig.org
4
-
5
- root = true
6
-
7
- [*]
8
-
9
- indent_style = space
10
- indent_size = 2
11
-
12
- end_of_line = lf
13
- charset = utf-8
14
- trim_trailing_whitespace = true
15
- insert_final_newline = true
package/.eslintignore DELETED
@@ -1,2 +0,0 @@
1
- node_modules/
2
- ./lib/
package/.eslintrc DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "env": {
3
- "browser": true,
4
- "es2020": true
5
- },
6
- "extends": [
7
- "eslint:recommended",
8
- "plugin:@typescript-eslint/recommended",
9
- "plugin:react-hooks/recommended",
10
- "plugin:storybook/recommended",
11
- "prettier"
12
- ],
13
- "parser": "@typescript-eslint/parser",
14
- "parserOptions": {
15
- "ecmaVersion": "latest",
16
- "sourceType": "module"
17
- },
18
- "plugins": ["react-refresh"],
19
- "rules": {
20
- "react-refresh/only-export-components": "warn"
21
- }
22
- }