@magmamath/students-features 0.10.0 → 0.11.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) hide show
  1. package/dist/commonjs/features/celebrations/helpers.js +4 -1
  2. package/dist/commonjs/features/celebrations/helpers.js.map +1 -1
  3. package/dist/commonjs/features/chatbot/TTS_HIGHLIGHTING.md +120 -0
  4. package/dist/commonjs/features/chatbot/components/Chat/Chat.js +66 -30
  5. package/dist/commonjs/features/chatbot/components/Chat/Chat.js.map +1 -1
  6. package/dist/commonjs/features/chatbot/components/Chat/CloseButton.js +61 -0
  7. package/dist/commonjs/features/chatbot/components/Chat/CloseButton.js.map +1 -0
  8. package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js +44 -54
  9. package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
  10. package/dist/commonjs/features/chatbot/components/ChatInput/ChatInput.js +3 -1
  11. package/dist/commonjs/features/chatbot/components/ChatInput/ChatInput.js.map +1 -1
  12. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js +2 -2
  13. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js.map +1 -1
  14. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/SendMessageButton.js +1 -1
  15. package/dist/commonjs/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
  16. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js +16 -4
  17. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js.map +1 -1
  18. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageLoader.js +12 -20
  19. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageLoader.js.map +1 -1
  20. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js +13 -8
  21. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  22. package/dist/commonjs/features/chatbot/components/ChatMessage/SentMessage.js +1 -1
  23. package/dist/commonjs/features/chatbot/components/Chatbot.js +29 -7
  24. package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
  25. package/dist/commonjs/features/chatbot/constants.js +2 -1
  26. package/dist/commonjs/features/chatbot/constants.js.map +1 -1
  27. package/dist/commonjs/features/chatbot/helpers/ttsHighlight.js +29 -0
  28. package/dist/commonjs/features/chatbot/helpers/ttsHighlight.js.map +1 -0
  29. package/dist/commonjs/features/chatbot/helpers.js +19 -2
  30. package/dist/commonjs/features/chatbot/helpers.js.map +1 -1
  31. package/dist/commonjs/features/chatbot/index.js.map +1 -1
  32. package/dist/commonjs/features/chatbot/model/ChatBotModel.js +59 -17
  33. package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
  34. package/dist/commonjs/features/chatbot/model/ChatBotThreadManager.js +2 -2
  35. package/dist/commonjs/features/chatbot/model/ChatBotThreadManager.js.map +1 -1
  36. package/dist/commonjs/features/chatbot/model/ChatTTSHighlightModel.js +56 -0
  37. package/dist/commonjs/features/chatbot/model/ChatTTSHighlightModel.js.map +1 -0
  38. package/dist/commonjs/features/chatbot/model/ChatTTSModel.js +154 -0
  39. package/dist/commonjs/features/chatbot/model/ChatTTSModel.js.map +1 -0
  40. package/dist/commonjs/features/chatbot/model/ChatbotApi.js +1 -1
  41. package/dist/commonjs/features/chatbot/model/ChatbotApi.js.map +1 -1
  42. package/dist/commonjs/features/chatbot/model/ChatsCacheModel.js +9 -0
  43. package/dist/commonjs/features/chatbot/model/ChatsCacheModel.js.map +1 -1
  44. package/dist/commonjs/features/chatbot/types/model.types.js.map +1 -1
  45. package/dist/commonjs/features/chatbot/types/t2s.types.js.map +1 -1
  46. package/dist/commonjs/features/feedback/model/model.js.map +1 -1
  47. package/dist/commonjs/features/feedback/model/sockets.js +8 -5
  48. package/dist/commonjs/features/feedback/model/sockets.js.map +1 -1
  49. package/dist/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.js +2 -2
  50. package/dist/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.js.map +1 -1
  51. package/dist/commonjs/features/keyboard/components/BasicLayout/BasicLayout.js +2 -2
  52. package/dist/commonjs/features/keyboard/components/BasicLayout/BasicLayout.js.map +1 -1
  53. package/dist/commonjs/features/keyboard/components/BasicPlusLayout/keyboardGroups.js +4 -4
  54. package/dist/commonjs/features/keyboard/components/BasicPlusLayout/keyboardGroups.js.map +1 -1
  55. package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js +2 -2
  56. package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js.map +1 -1
  57. package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.js +4 -4
  58. package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.js.map +1 -1
  59. package/dist/commonjs/features/keyboard/components/Keyboard.js +4 -2
  60. package/dist/commonjs/features/keyboard/components/Keyboard.js.map +1 -1
  61. package/dist/commonjs/features/keyboard/components/MainLayout/MainLayout.js +1 -6
  62. package/dist/commonjs/features/keyboard/components/MainLayout/MainLayout.js.map +1 -1
  63. package/dist/commonjs/features/keyboard/components/UnitsLayout/UnitTabs.js +1 -1
  64. package/dist/commonjs/features/keyboard/components/UnitsLayout/helpers.js +3 -1
  65. package/dist/commonjs/features/keyboard/components/UnitsLayout/helpers.js.map +1 -1
  66. package/dist/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js +27 -6
  67. package/dist/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js.map +1 -1
  68. package/dist/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.js +9 -1
  69. package/dist/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.js.map +1 -1
  70. package/dist/commonjs/features/keyboard/components/UnitsLayout/types.js +1 -0
  71. package/dist/commonjs/features/keyboard/components/UnitsLayout/types.js.map +1 -1
  72. package/dist/commonjs/features/keyboard/constants/constants.js +1 -1
  73. package/dist/commonjs/features/keyboard/constants/keyboardGroupsByLocale.js +2 -1
  74. package/dist/commonjs/features/keyboard/constants/keyboardGroupsByLocale.js.map +1 -1
  75. package/dist/commonjs/features/keyboard/constants/keyboardLayouts.js +20 -4
  76. package/dist/commonjs/features/keyboard/constants/keyboardLayouts.js.map +1 -1
  77. package/dist/commonjs/features/keyboard/helpers.js +7 -0
  78. package/dist/commonjs/features/keyboard/helpers.js.map +1 -1
  79. package/dist/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.js +20 -3
  80. package/dist/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.js.map +1 -1
  81. package/dist/commonjs/features/keyboard/types/MathKeysGroups/units.js +6 -3
  82. package/dist/commonjs/features/keyboard/types/MathKeysGroups/units.js.map +1 -1
  83. package/dist/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.js +34 -0
  84. package/dist/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.js.map +1 -0
  85. package/dist/commonjs/features/openEnded/components/OpenEndedScoreLabel.js +77 -0
  86. package/dist/commonjs/features/openEnded/components/OpenEndedScoreLabel.js.map +1 -0
  87. package/dist/commonjs/features/openEnded/index.js +48 -0
  88. package/dist/commonjs/features/openEnded/index.js.map +1 -0
  89. package/dist/commonjs/features/openEnded/oe.helpers.js +26 -0
  90. package/dist/commonjs/features/openEnded/oe.helpers.js.map +1 -0
  91. package/dist/commonjs/features/openEnded/oe.types.js +14 -0
  92. package/dist/commonjs/features/openEnded/oe.types.js.map +1 -0
  93. package/dist/commonjs/index.js +13 -1
  94. package/dist/commonjs/index.js.map +1 -1
  95. package/dist/commonjs/lib/components/ConditionalWrapper.js +23 -0
  96. package/dist/commonjs/lib/components/ConditionalWrapper.js.map +1 -0
  97. package/dist/commonjs/shared/common.constants.js +9 -0
  98. package/dist/commonjs/shared/common.constants.js.map +1 -0
  99. package/dist/commonjs/shared/icons/TimeIcon.js +37 -0
  100. package/dist/commonjs/shared/icons/TimeIcon.js.map +1 -0
  101. package/dist/commonjs/shared/icons/keyboard/CDotIcon/CDotIcon.js +4 -4
  102. package/dist/commonjs/shared/icons/keyboard/CDotIcon/CDotIcon.js.map +1 -1
  103. package/dist/commonjs/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.js +32 -0
  104. package/dist/commonjs/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.js.map +1 -0
  105. package/dist/commonjs/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.js +32 -0
  106. package/dist/commonjs/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.js.map +1 -0
  107. package/dist/commonjs/shared/translation/localization/ca.json +2 -1
  108. package/dist/commonjs/shared/translation/localization/de.json +2 -1
  109. package/dist/commonjs/shared/translation/localization/en.json +2 -1
  110. package/dist/commonjs/shared/translation/localization/gb.json +2 -1
  111. package/dist/commonjs/shared/translation/localization/sct.json +2 -1
  112. package/dist/commonjs/shared/translation/localization/sw.json +2 -1
  113. package/dist/commonjs/types/common.types.js +4 -0
  114. package/dist/module/features/celebrations/helpers.js +4 -1
  115. package/dist/module/features/celebrations/helpers.js.map +1 -1
  116. package/dist/module/features/chatbot/TTS_HIGHLIGHTING.md +120 -0
  117. package/dist/module/features/chatbot/components/Chat/Chat.js +66 -30
  118. package/dist/module/features/chatbot/components/Chat/Chat.js.map +1 -1
  119. package/dist/module/features/chatbot/components/Chat/CloseButton.js +55 -0
  120. package/dist/module/features/chatbot/components/Chat/CloseButton.js.map +1 -0
  121. package/dist/module/features/chatbot/components/ChatControls/ChatControls.js +44 -55
  122. package/dist/module/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
  123. package/dist/module/features/chatbot/components/ChatInput/ChatInput.js +3 -1
  124. package/dist/module/features/chatbot/components/ChatInput/ChatInput.js.map +1 -1
  125. package/dist/module/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js +2 -2
  126. package/dist/module/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js.map +1 -1
  127. package/dist/module/features/chatbot/components/ChatInput/FreeText/SendMessageButton.js +1 -1
  128. package/dist/module/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
  129. package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js +16 -4
  130. package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js.map +1 -1
  131. package/dist/module/features/chatbot/components/ChatMessage/MessageLoader.js +12 -20
  132. package/dist/module/features/chatbot/components/ChatMessage/MessageLoader.js.map +1 -1
  133. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js +13 -8
  134. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  135. package/dist/module/features/chatbot/components/ChatMessage/SentMessage.js +1 -1
  136. package/dist/module/features/chatbot/components/Chatbot.js +27 -6
  137. package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
  138. package/dist/module/features/chatbot/constants.js +1 -0
  139. package/dist/module/features/chatbot/constants.js.map +1 -1
  140. package/dist/module/features/chatbot/helpers/ttsHighlight.js +23 -0
  141. package/dist/module/features/chatbot/helpers/ttsHighlight.js.map +1 -0
  142. package/dist/module/features/chatbot/helpers.js +19 -2
  143. package/dist/module/features/chatbot/helpers.js.map +1 -1
  144. package/dist/module/features/chatbot/index.js.map +1 -1
  145. package/dist/module/features/chatbot/model/ChatBotModel.js +59 -17
  146. package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
  147. package/dist/module/features/chatbot/model/ChatBotThreadManager.js +2 -2
  148. package/dist/module/features/chatbot/model/ChatBotThreadManager.js.map +1 -1
  149. package/dist/module/features/chatbot/model/ChatTTSHighlightModel.js +52 -0
  150. package/dist/module/features/chatbot/model/ChatTTSHighlightModel.js.map +1 -0
  151. package/dist/module/features/chatbot/model/ChatTTSModel.js +149 -0
  152. package/dist/module/features/chatbot/model/ChatTTSModel.js.map +1 -0
  153. package/dist/module/features/chatbot/model/ChatbotApi.js +1 -1
  154. package/dist/module/features/chatbot/model/ChatbotApi.js.map +1 -1
  155. package/dist/module/features/chatbot/model/ChatsCacheModel.js +9 -0
  156. package/dist/module/features/chatbot/model/ChatsCacheModel.js.map +1 -1
  157. package/dist/module/features/chatbot/types/model.types.js.map +1 -1
  158. package/dist/module/features/chatbot/types/t2s.types.js.map +1 -1
  159. package/dist/module/features/feedback/model/model.js.map +1 -1
  160. package/dist/module/features/feedback/model/sockets.js +8 -5
  161. package/dist/module/features/feedback/model/sockets.js.map +1 -1
  162. package/dist/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.js +3 -3
  163. package/dist/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.js.map +1 -1
  164. package/dist/module/features/keyboard/components/BasicLayout/BasicLayout.js +2 -2
  165. package/dist/module/features/keyboard/components/BasicLayout/BasicLayout.js.map +1 -1
  166. package/dist/module/features/keyboard/components/BasicPlusLayout/keyboardGroups.js +4 -4
  167. package/dist/module/features/keyboard/components/BasicPlusLayout/keyboardGroups.js.map +1 -1
  168. package/dist/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js +2 -2
  169. package/dist/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js.map +1 -1
  170. package/dist/module/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.js +4 -4
  171. package/dist/module/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.js.map +1 -1
  172. package/dist/module/features/keyboard/components/Keyboard.js +4 -2
  173. package/dist/module/features/keyboard/components/Keyboard.js.map +1 -1
  174. package/dist/module/features/keyboard/components/KeysList/KeysList.js.map +1 -1
  175. package/dist/module/features/keyboard/components/MainLayout/MainLayout.js +2 -7
  176. package/dist/module/features/keyboard/components/MainLayout/MainLayout.js.map +1 -1
  177. package/dist/module/features/keyboard/components/UnitsLayout/UnitTabs.js +1 -1
  178. package/dist/module/features/keyboard/components/UnitsLayout/helpers.js +2 -1
  179. package/dist/module/features/keyboard/components/UnitsLayout/helpers.js.map +1 -1
  180. package/dist/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js +27 -6
  181. package/dist/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js.map +1 -1
  182. package/dist/module/features/keyboard/components/UnitsLayout/keyboardGroups.js +9 -1
  183. package/dist/module/features/keyboard/components/UnitsLayout/keyboardGroups.js.map +1 -1
  184. package/dist/module/features/keyboard/components/UnitsLayout/types.js +1 -0
  185. package/dist/module/features/keyboard/components/UnitsLayout/types.js.map +1 -1
  186. package/dist/module/features/keyboard/constants/constants.js +1 -1
  187. package/dist/module/features/keyboard/constants/keyboardGroupsByLocale.js +3 -2
  188. package/dist/module/features/keyboard/constants/keyboardGroupsByLocale.js.map +1 -1
  189. package/dist/module/features/keyboard/constants/keyboardLayouts.js +19 -4
  190. package/dist/module/features/keyboard/constants/keyboardLayouts.js.map +1 -1
  191. package/dist/module/features/keyboard/helpers.js +5 -0
  192. package/dist/module/features/keyboard/helpers.js.map +1 -1
  193. package/dist/module/features/keyboard/types/MathKeysGroups/basicOperators.js +20 -3
  194. package/dist/module/features/keyboard/types/MathKeysGroups/basicOperators.js.map +1 -1
  195. package/dist/module/features/keyboard/types/MathKeysGroups/units.js +6 -3
  196. package/dist/module/features/keyboard/types/MathKeysGroups/units.js.map +1 -1
  197. package/dist/module/features/openEnded/components/OpenEndedAttemptsLimit.js +28 -0
  198. package/dist/module/features/openEnded/components/OpenEndedAttemptsLimit.js.map +1 -0
  199. package/dist/module/features/openEnded/components/OpenEndedScoreLabel.js +71 -0
  200. package/dist/module/features/openEnded/components/OpenEndedScoreLabel.js.map +1 -0
  201. package/dist/module/features/openEnded/index.js +7 -0
  202. package/dist/module/features/openEnded/index.js.map +1 -0
  203. package/dist/module/features/openEnded/oe.helpers.js +21 -0
  204. package/dist/module/features/openEnded/oe.helpers.js.map +1 -0
  205. package/dist/module/features/openEnded/oe.types.js +10 -0
  206. package/dist/module/features/openEnded/oe.types.js.map +1 -0
  207. package/dist/module/index.js +1 -0
  208. package/dist/module/index.js.map +1 -1
  209. package/dist/module/lib/components/ConditionalWrapper.js +17 -0
  210. package/dist/module/lib/components/ConditionalWrapper.js.map +1 -0
  211. package/dist/module/shared/common.constants.js +5 -0
  212. package/dist/module/shared/common.constants.js.map +1 -0
  213. package/dist/module/shared/icons/TimeIcon.js +29 -0
  214. package/dist/module/shared/icons/TimeIcon.js.map +1 -0
  215. package/dist/module/shared/icons/keyboard/CDotIcon/CDotIcon.js +4 -4
  216. package/dist/module/shared/icons/keyboard/CDotIcon/CDotIcon.js.map +1 -1
  217. package/dist/module/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.js +24 -0
  218. package/dist/module/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.js.map +1 -0
  219. package/dist/module/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.js +24 -0
  220. package/dist/module/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.js.map +1 -0
  221. package/dist/module/shared/translation/localization/ca.json +2 -1
  222. package/dist/module/shared/translation/localization/de.json +2 -1
  223. package/dist/module/shared/translation/localization/en.json +2 -1
  224. package/dist/module/shared/translation/localization/gb.json +2 -1
  225. package/dist/module/shared/translation/localization/sct.json +2 -1
  226. package/dist/module/shared/translation/localization/sw.json +2 -1
  227. package/dist/module/types/common.types.js +2 -0
  228. package/dist/typescript/commonjs/features/celebrations/helpers.d.ts.map +1 -1
  229. package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts +7 -2
  230. package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
  231. package/dist/typescript/commonjs/features/chatbot/components/Chat/CloseButton.d.ts +7 -0
  232. package/dist/typescript/commonjs/features/chatbot/components/Chat/CloseButton.d.ts.map +1 -0
  233. package/dist/typescript/commonjs/features/chatbot/components/ChatControls/ChatControls.d.ts +3 -2
  234. package/dist/typescript/commonjs/features/chatbot/components/ChatControls/ChatControls.d.ts.map +1 -1
  235. package/dist/typescript/commonjs/features/chatbot/components/ChatInput/ChatInput.d.ts.map +1 -1
  236. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts +3 -1
  237. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  238. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageContent.d.ts +4 -2
  239. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +1 -1
  240. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageLoader.d.ts +1 -6
  241. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageLoader.d.ts.map +1 -1
  242. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
  243. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  244. package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts +4 -1
  245. package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts.map +1 -1
  246. package/dist/typescript/commonjs/features/chatbot/constants.d.ts +1 -0
  247. package/dist/typescript/commonjs/features/chatbot/constants.d.ts.map +1 -1
  248. package/dist/typescript/commonjs/features/chatbot/helpers/ttsHighlight.d.ts +8 -0
  249. package/dist/typescript/commonjs/features/chatbot/helpers/ttsHighlight.d.ts.map +1 -0
  250. package/dist/typescript/commonjs/features/chatbot/helpers.d.ts.map +1 -1
  251. package/dist/typescript/commonjs/features/chatbot/index.d.ts +3 -2
  252. package/dist/typescript/commonjs/features/chatbot/index.d.ts.map +1 -1
  253. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts +6 -3
  254. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  255. package/dist/typescript/commonjs/features/chatbot/model/ChatBotThreadManager.d.ts +4 -3
  256. package/dist/typescript/commonjs/features/chatbot/model/ChatBotThreadManager.d.ts.map +1 -1
  257. package/dist/typescript/commonjs/features/chatbot/model/ChatTTSHighlightModel.d.ts +25 -0
  258. package/dist/typescript/commonjs/features/chatbot/model/ChatTTSHighlightModel.d.ts.map +1 -0
  259. package/dist/typescript/commonjs/features/chatbot/model/ChatTTSModel.d.ts +38 -0
  260. package/dist/typescript/commonjs/features/chatbot/model/ChatTTSModel.d.ts.map +1 -0
  261. package/dist/typescript/commonjs/features/chatbot/model/ChatsCacheModel.d.ts +1 -0
  262. package/dist/typescript/commonjs/features/chatbot/model/ChatsCacheModel.d.ts.map +1 -1
  263. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts +28 -16
  264. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts.map +1 -1
  265. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts +14 -11
  266. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts.map +1 -1
  267. package/dist/typescript/commonjs/features/chatbot/types/t2s.types.d.ts +25 -0
  268. package/dist/typescript/commonjs/features/chatbot/types/t2s.types.d.ts.map +1 -1
  269. package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts +1 -0
  270. package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts.map +1 -1
  271. package/dist/typescript/commonjs/features/feedback/model/model.d.ts +4 -1
  272. package/dist/typescript/commonjs/features/feedback/model/model.d.ts.map +1 -1
  273. package/dist/typescript/commonjs/features/feedback/model/sockets.d.ts.map +1 -1
  274. package/dist/typescript/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.d.ts.map +1 -1
  275. package/dist/typescript/commonjs/features/keyboard/components/BasicPlusLayout/keyboardGroups.d.ts.map +1 -1
  276. package/dist/typescript/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.d.ts.map +1 -1
  277. package/dist/typescript/commonjs/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.d.ts.map +1 -1
  278. package/dist/typescript/commonjs/features/keyboard/components/Keyboard.d.ts +2 -1
  279. package/dist/typescript/commonjs/features/keyboard/components/Keyboard.d.ts.map +1 -1
  280. package/dist/typescript/commonjs/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -1
  281. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/helpers.d.ts +1 -0
  282. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/helpers.d.ts.map +1 -1
  283. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts +4 -7
  284. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts.map +1 -1
  285. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts +1 -0
  286. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts.map +1 -1
  287. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/types.d.ts +7 -1
  288. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/types.d.ts.map +1 -1
  289. package/dist/typescript/commonjs/features/keyboard/constants/constants.d.ts +1 -1
  290. package/dist/typescript/commonjs/features/keyboard/constants/keyboardGroupsByLocale.d.ts.map +1 -1
  291. package/dist/typescript/commonjs/features/keyboard/constants/keyboardLayouts.d.ts +4 -0
  292. package/dist/typescript/commonjs/features/keyboard/constants/keyboardLayouts.d.ts.map +1 -1
  293. package/dist/typescript/commonjs/features/keyboard/helpers.d.ts +1 -0
  294. package/dist/typescript/commonjs/features/keyboard/helpers.d.ts.map +1 -1
  295. package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.d.ts +10 -0
  296. package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.d.ts.map +1 -1
  297. package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/units.d.ts +36 -0
  298. package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/units.d.ts.map +1 -1
  299. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.d.ts +7 -0
  300. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.d.ts.map +1 -0
  301. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedScoreLabel.d.ts +12 -0
  302. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedScoreLabel.d.ts.map +1 -0
  303. package/dist/typescript/commonjs/features/openEnded/index.d.ts +5 -0
  304. package/dist/typescript/commonjs/features/openEnded/index.d.ts.map +1 -0
  305. package/dist/typescript/commonjs/features/openEnded/oe.helpers.d.ts +13 -0
  306. package/dist/typescript/commonjs/features/openEnded/oe.helpers.d.ts.map +1 -0
  307. package/dist/typescript/commonjs/features/openEnded/oe.types.d.ts +7 -0
  308. package/dist/typescript/commonjs/features/openEnded/oe.types.d.ts.map +1 -0
  309. package/dist/typescript/commonjs/index.d.ts +1 -0
  310. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  311. package/dist/typescript/commonjs/lib/components/ConditionalWrapper.d.ts +9 -0
  312. package/dist/typescript/commonjs/lib/components/ConditionalWrapper.d.ts.map +1 -0
  313. package/dist/typescript/commonjs/lib/effector/createControllerEffect.d.ts +1 -1
  314. package/dist/typescript/commonjs/lib/effector/createControllerEffect.d.ts.map +1 -1
  315. package/dist/typescript/commonjs/shared/common.constants.d.ts +2 -0
  316. package/dist/typescript/commonjs/shared/common.constants.d.ts.map +1 -0
  317. package/dist/typescript/commonjs/shared/icons/TimeIcon.d.ts +4 -0
  318. package/dist/typescript/commonjs/shared/icons/TimeIcon.d.ts.map +1 -0
  319. package/dist/typescript/commonjs/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.d.ts +4 -0
  320. package/dist/typescript/commonjs/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.d.ts.map +1 -0
  321. package/dist/typescript/commonjs/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.d.ts +4 -0
  322. package/dist/typescript/commonjs/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.d.ts.map +1 -0
  323. package/dist/typescript/commonjs/shared/translation/constants.d.ts +6 -0
  324. package/dist/typescript/commonjs/shared/translation/constants.d.ts.map +1 -1
  325. package/dist/typescript/commonjs/shared/translation/model.d.ts +2 -0
  326. package/dist/typescript/commonjs/shared/translation/model.d.ts.map +1 -1
  327. package/dist/typescript/commonjs/types/common.types.d.ts +2 -0
  328. package/dist/typescript/commonjs/types/common.types.d.ts.map +1 -1
  329. package/dist/typescript/module/features/celebrations/helpers.d.ts.map +1 -1
  330. package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts +7 -2
  331. package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
  332. package/dist/typescript/module/features/chatbot/components/Chat/CloseButton.d.ts +7 -0
  333. package/dist/typescript/module/features/chatbot/components/Chat/CloseButton.d.ts.map +1 -0
  334. package/dist/typescript/module/features/chatbot/components/ChatControls/ChatControls.d.ts +3 -2
  335. package/dist/typescript/module/features/chatbot/components/ChatControls/ChatControls.d.ts.map +1 -1
  336. package/dist/typescript/module/features/chatbot/components/ChatInput/ChatInput.d.ts.map +1 -1
  337. package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts +3 -1
  338. package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  339. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts +4 -2
  340. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +1 -1
  341. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageLoader.d.ts +1 -6
  342. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageLoader.d.ts.map +1 -1
  343. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
  344. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  345. package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts +4 -1
  346. package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts.map +1 -1
  347. package/dist/typescript/module/features/chatbot/constants.d.ts +1 -0
  348. package/dist/typescript/module/features/chatbot/constants.d.ts.map +1 -1
  349. package/dist/typescript/module/features/chatbot/helpers/ttsHighlight.d.ts +8 -0
  350. package/dist/typescript/module/features/chatbot/helpers/ttsHighlight.d.ts.map +1 -0
  351. package/dist/typescript/module/features/chatbot/helpers.d.ts.map +1 -1
  352. package/dist/typescript/module/features/chatbot/index.d.ts +3 -2
  353. package/dist/typescript/module/features/chatbot/index.d.ts.map +1 -1
  354. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts +6 -3
  355. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  356. package/dist/typescript/module/features/chatbot/model/ChatBotThreadManager.d.ts +4 -3
  357. package/dist/typescript/module/features/chatbot/model/ChatBotThreadManager.d.ts.map +1 -1
  358. package/dist/typescript/module/features/chatbot/model/ChatTTSHighlightModel.d.ts +25 -0
  359. package/dist/typescript/module/features/chatbot/model/ChatTTSHighlightModel.d.ts.map +1 -0
  360. package/dist/typescript/module/features/chatbot/model/ChatTTSModel.d.ts +38 -0
  361. package/dist/typescript/module/features/chatbot/model/ChatTTSModel.d.ts.map +1 -0
  362. package/dist/typescript/module/features/chatbot/model/ChatsCacheModel.d.ts +1 -0
  363. package/dist/typescript/module/features/chatbot/model/ChatsCacheModel.d.ts.map +1 -1
  364. package/dist/typescript/module/features/chatbot/types/api.types.d.ts +28 -16
  365. package/dist/typescript/module/features/chatbot/types/api.types.d.ts.map +1 -1
  366. package/dist/typescript/module/features/chatbot/types/model.types.d.ts +14 -11
  367. package/dist/typescript/module/features/chatbot/types/model.types.d.ts.map +1 -1
  368. package/dist/typescript/module/features/chatbot/types/t2s.types.d.ts +25 -0
  369. package/dist/typescript/module/features/chatbot/types/t2s.types.d.ts.map +1 -1
  370. package/dist/typescript/module/features/chatbot/types/units.types.d.ts +1 -0
  371. package/dist/typescript/module/features/chatbot/types/units.types.d.ts.map +1 -1
  372. package/dist/typescript/module/features/feedback/model/model.d.ts +4 -1
  373. package/dist/typescript/module/features/feedback/model/model.d.ts.map +1 -1
  374. package/dist/typescript/module/features/feedback/model/sockets.d.ts.map +1 -1
  375. package/dist/typescript/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.d.ts.map +1 -1
  376. package/dist/typescript/module/features/keyboard/components/BasicPlusLayout/keyboardGroups.d.ts.map +1 -1
  377. package/dist/typescript/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.d.ts.map +1 -1
  378. package/dist/typescript/module/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.d.ts.map +1 -1
  379. package/dist/typescript/module/features/keyboard/components/Keyboard.d.ts +2 -1
  380. package/dist/typescript/module/features/keyboard/components/Keyboard.d.ts.map +1 -1
  381. package/dist/typescript/module/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -1
  382. package/dist/typescript/module/features/keyboard/components/UnitsLayout/helpers.d.ts +1 -0
  383. package/dist/typescript/module/features/keyboard/components/UnitsLayout/helpers.d.ts.map +1 -1
  384. package/dist/typescript/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts +4 -7
  385. package/dist/typescript/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts.map +1 -1
  386. package/dist/typescript/module/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts +1 -0
  387. package/dist/typescript/module/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts.map +1 -1
  388. package/dist/typescript/module/features/keyboard/components/UnitsLayout/types.d.ts +7 -1
  389. package/dist/typescript/module/features/keyboard/components/UnitsLayout/types.d.ts.map +1 -1
  390. package/dist/typescript/module/features/keyboard/constants/constants.d.ts +1 -1
  391. package/dist/typescript/module/features/keyboard/constants/keyboardGroupsByLocale.d.ts.map +1 -1
  392. package/dist/typescript/module/features/keyboard/constants/keyboardLayouts.d.ts +4 -0
  393. package/dist/typescript/module/features/keyboard/constants/keyboardLayouts.d.ts.map +1 -1
  394. package/dist/typescript/module/features/keyboard/helpers.d.ts +1 -0
  395. package/dist/typescript/module/features/keyboard/helpers.d.ts.map +1 -1
  396. package/dist/typescript/module/features/keyboard/types/MathKeysGroups/basicOperators.d.ts +10 -0
  397. package/dist/typescript/module/features/keyboard/types/MathKeysGroups/basicOperators.d.ts.map +1 -1
  398. package/dist/typescript/module/features/keyboard/types/MathKeysGroups/units.d.ts +36 -0
  399. package/dist/typescript/module/features/keyboard/types/MathKeysGroups/units.d.ts.map +1 -1
  400. package/dist/typescript/module/features/openEnded/components/OpenEndedAttemptsLimit.d.ts +7 -0
  401. package/dist/typescript/module/features/openEnded/components/OpenEndedAttemptsLimit.d.ts.map +1 -0
  402. package/dist/typescript/module/features/openEnded/components/OpenEndedScoreLabel.d.ts +12 -0
  403. package/dist/typescript/module/features/openEnded/components/OpenEndedScoreLabel.d.ts.map +1 -0
  404. package/dist/typescript/module/features/openEnded/index.d.ts +5 -0
  405. package/dist/typescript/module/features/openEnded/index.d.ts.map +1 -0
  406. package/dist/typescript/module/features/openEnded/oe.helpers.d.ts +13 -0
  407. package/dist/typescript/module/features/openEnded/oe.helpers.d.ts.map +1 -0
  408. package/dist/typescript/module/features/openEnded/oe.types.d.ts +7 -0
  409. package/dist/typescript/module/features/openEnded/oe.types.d.ts.map +1 -0
  410. package/dist/typescript/module/index.d.ts +1 -0
  411. package/dist/typescript/module/index.d.ts.map +1 -1
  412. package/dist/typescript/module/lib/components/ConditionalWrapper.d.ts +9 -0
  413. package/dist/typescript/module/lib/components/ConditionalWrapper.d.ts.map +1 -0
  414. package/dist/typescript/module/lib/effector/createControllerEffect.d.ts +1 -1
  415. package/dist/typescript/module/lib/effector/createControllerEffect.d.ts.map +1 -1
  416. package/dist/typescript/module/shared/common.constants.d.ts +2 -0
  417. package/dist/typescript/module/shared/common.constants.d.ts.map +1 -0
  418. package/dist/typescript/module/shared/icons/TimeIcon.d.ts +4 -0
  419. package/dist/typescript/module/shared/icons/TimeIcon.d.ts.map +1 -0
  420. package/dist/typescript/module/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.d.ts +4 -0
  421. package/dist/typescript/module/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.d.ts.map +1 -0
  422. package/dist/typescript/module/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.d.ts +4 -0
  423. package/dist/typescript/module/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.d.ts.map +1 -0
  424. package/dist/typescript/module/shared/translation/constants.d.ts +6 -0
  425. package/dist/typescript/module/shared/translation/constants.d.ts.map +1 -1
  426. package/dist/typescript/module/shared/translation/model.d.ts +2 -0
  427. package/dist/typescript/module/shared/translation/model.d.ts.map +1 -1
  428. package/dist/typescript/module/types/common.types.d.ts +2 -0
  429. package/dist/typescript/module/types/common.types.d.ts.map +1 -1
  430. package/package.json +1 -1
  431. package/src/features/celebrations/helpers.ts +35 -33
  432. package/src/features/chatbot/TTS_HIGHLIGHTING.md +120 -0
  433. package/src/features/chatbot/components/Chat/Chat.tsx +76 -33
  434. package/src/features/chatbot/components/Chat/CloseButton.tsx +60 -0
  435. package/src/features/chatbot/components/ChatControls/ChatControls.tsx +45 -60
  436. package/src/features/chatbot/components/ChatInput/ChatInput.tsx +3 -1
  437. package/src/features/chatbot/components/ChatInput/FreeText/ChatTextInput.tsx +2 -2
  438. package/src/features/chatbot/components/ChatInput/FreeText/SendMessageButton.tsx +1 -1
  439. package/src/features/chatbot/components/ChatMessage/ChatMessage.tsx +3 -1
  440. package/src/features/chatbot/components/ChatMessage/MessageContent.tsx +25 -3
  441. package/src/features/chatbot/components/ChatMessage/MessageLoader.tsx +9 -21
  442. package/src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx +11 -6
  443. package/src/features/chatbot/components/ChatMessage/SentMessage.tsx +1 -1
  444. package/src/features/chatbot/components/Chatbot.tsx +28 -3
  445. package/src/features/chatbot/constants.ts +2 -0
  446. package/src/features/chatbot/helpers/ttsHighlight.ts +25 -0
  447. package/src/features/chatbot/helpers.ts +14 -1
  448. package/src/features/chatbot/index.ts +17 -2
  449. package/src/features/chatbot/model/ChatBotModel.ts +67 -16
  450. package/src/features/chatbot/model/ChatBotThreadManager.ts +12 -4
  451. package/src/features/chatbot/model/ChatTTSHighlightModel.ts +64 -0
  452. package/src/features/chatbot/model/ChatTTSModel.ts +168 -0
  453. package/src/features/chatbot/model/ChatbotApi.ts +1 -1
  454. package/src/features/chatbot/model/ChatsCacheModel.ts +11 -0
  455. package/src/features/chatbot/types/api.types.ts +25 -19
  456. package/src/features/chatbot/types/model.types.ts +23 -12
  457. package/src/features/chatbot/types/t2s.types.ts +33 -0
  458. package/src/features/chatbot/types/units.types.ts +1 -0
  459. package/src/features/feedback/model/model.ts +4 -1
  460. package/src/features/feedback/model/sockets.ts +8 -6
  461. package/src/features/keyboard/components/AlgebraLayout/AlgebraLayout.tsx +4 -3
  462. package/src/features/keyboard/components/BasicLayout/BasicLayout.tsx +2 -2
  463. package/src/features/keyboard/components/BasicPlusLayout/keyboardGroups.ts +27 -17
  464. package/src/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.tsx +3 -2
  465. package/src/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.ts +30 -24
  466. package/src/features/keyboard/components/Keyboard.tsx +14 -4
  467. package/src/features/keyboard/components/KeysList/KeysList.tsx +1 -1
  468. package/src/features/keyboard/components/MainLayout/MainLayout.tsx +2 -6
  469. package/src/features/keyboard/components/UnitsLayout/UnitTabs.tsx +1 -1
  470. package/src/features/keyboard/components/UnitsLayout/helpers.tsx +3 -0
  471. package/src/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts +36 -22
  472. package/src/features/keyboard/components/UnitsLayout/keyboardGroups.ts +11 -0
  473. package/src/features/keyboard/components/UnitsLayout/types.ts +7 -0
  474. package/src/features/keyboard/constants/constants.ts +1 -1
  475. package/src/features/keyboard/constants/keyboardGroupsByLocale.ts +2 -0
  476. package/src/features/keyboard/constants/keyboardLayouts.ts +18 -1
  477. package/src/features/keyboard/helpers.ts +6 -0
  478. package/src/features/keyboard/types/MathKeysGroups/basicOperators.tsx +15 -3
  479. package/src/features/keyboard/types/MathKeysGroups/units.tsx +3 -0
  480. package/src/features/openEnded/components/OpenEndedAttemptsLimit.tsx +26 -0
  481. package/src/features/openEnded/components/OpenEndedScoreLabel.tsx +81 -0
  482. package/src/features/openEnded/index.ts +4 -0
  483. package/src/features/openEnded/oe.helpers.ts +31 -0
  484. package/src/features/openEnded/oe.types.ts +6 -0
  485. package/src/index.ts +1 -0
  486. package/src/lib/components/ConditionalWrapper.tsx +15 -0
  487. package/src/lib/effector/createControllerEffect.ts +1 -1
  488. package/src/shared/common.constants.ts +3 -0
  489. package/src/shared/icons/TimeIcon.tsx +23 -0
  490. package/src/shared/icons/keyboard/CDotIcon/CDotIcon.tsx +2 -2
  491. package/src/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.tsx +18 -0
  492. package/src/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.tsx +18 -0
  493. package/src/shared/translation/localization/ca.json +2 -1
  494. package/src/shared/translation/localization/de.json +2 -1
  495. package/src/shared/translation/localization/en.json +2 -1
  496. package/src/shared/translation/localization/gb.json +2 -1
  497. package/src/shared/translation/localization/sct.json +2 -1
  498. package/src/shared/translation/localization/sw.json +2 -1
  499. package/src/types/common.types.ts +4 -0
  500. package/dist/commonjs/features/chatbot/model/t2s.js +0 -107
  501. package/dist/commonjs/features/chatbot/model/t2s.js.map +0 -1
  502. package/dist/module/features/chatbot/model/t2s.js +0 -102
  503. package/dist/module/features/chatbot/model/t2s.js.map +0 -1
  504. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts +0 -34
  505. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts.map +0 -1
  506. package/dist/typescript/module/features/chatbot/model/t2s.d.ts +0 -34
  507. package/dist/typescript/module/features/chatbot/model/t2s.d.ts.map +0 -1
  508. package/src/features/chatbot/model/t2s.ts +0 -123
@@ -2,8 +2,6 @@ import type { Store, StoreWritable } from 'effector'
2
2
  import {
3
3
  ChatHintPayload,
4
4
  ChatHintResponse,
5
- ErrorSpottingPayload,
6
- ErrorSpottingResponse,
7
5
  GetAlternativesPayload,
8
6
  GetAlternativesResponse,
9
7
  GoogleText2SpeechPayload,
@@ -12,12 +10,14 @@ import {
12
10
  GoogleTranslateResponse,
13
11
  PostMessagePayload,
14
12
  PostMessageResponse,
13
+ ProblemStandard,
15
14
  SendMessagePayload,
16
15
  SendMessageResponse,
17
16
  } from './api.types'
18
17
  import { ExtendWithOptional } from '../../../lib/helpers/types'
19
18
  import { ChatAnswer, ChatItem, ConversationMessage, FullStrokeData } from './units.types'
20
19
  import { WithAbortSignal } from '../../../lib/types/requests'
20
+ import { RequestOptionalConfig } from '../../../lib/effector/createControllerEffect'
21
21
 
22
22
  export type ChatbotMessages = {
23
23
  error: ConversationMessage
@@ -28,18 +28,20 @@ export type ChatbotMessages = {
28
28
 
29
29
  export type ChatbotApiRequests = {
30
30
  getAlternatives: (props: GetAlternativesPayload) => Promise<GetAlternativesResponse>
31
- sendMessage: (props: WithAbortSignal<SendMessagePayload>) => Promise<SendMessageResponse>
32
- postMessage: (props: WithAbortSignal<PostMessagePayload>) => Promise<PostMessageResponse>
31
+ sendMessage: (
32
+ props: WithAbortSignal<SendMessagePayload>,
33
+ requestConfig?: RequestOptionalConfig,
34
+ ) => Promise<SendMessageResponse>
35
+ postMessage: (
36
+ props: WithAbortSignal<PostMessagePayload>,
37
+ requestConfig?: RequestOptionalConfig,
38
+ ) => Promise<PostMessageResponse>
33
39
  postTranslateText: (
34
40
  props: WithAbortSignal<GoogleTranslatePayload>,
35
41
  ) => Promise<GoogleTranslateResponse>
36
42
  postTextToSpeech: (
37
43
  props: WithAbortSignal<GoogleText2SpeechPayload>,
38
44
  ) => Promise<GoogleText2SpeechResponse>
39
- /**
40
- * @deprecated merged with hint
41
- */
42
- spotError?: (props: ErrorSpottingPayload) => Promise<ErrorSpottingResponse>
43
45
  }
44
46
 
45
47
  type ChatbotSettings = {
@@ -49,7 +51,10 @@ type ChatbotSettings = {
49
51
  export type ChatbotModelProps = {
50
52
  $key?: Store<string>
51
53
  api: Omit<ChatbotApiRequests, 'postMessage'> & {
52
- requestHint: (props: ChatHintPayload) => Promise<ChatHintResponse>
54
+ requestHint: (
55
+ props: ChatHintPayload,
56
+ requestConfig?: RequestOptionalConfig,
57
+ ) => Promise<ChatHintResponse>
53
58
  }
54
59
  threadMessagesLimit?: number
55
60
  chatAccess: StoreWritable<boolean>
@@ -60,12 +65,14 @@ export type SendHelpParams = {
60
65
  message: string
61
66
  translatedMessage?: string
62
67
  isFreeText?: boolean
68
+ skipOwnMessage?: boolean
63
69
  }
64
70
 
65
71
  export type SendHelpProps = SendHelpParams & {
66
72
  key: string
67
73
  context: ChatbotContext | null
68
74
  cache: Record<string, ChatItem>
75
+ alternatives?: GetAlternativesResponse | null
69
76
  isFreeText?: boolean
70
77
  }
71
78
 
@@ -75,6 +82,7 @@ export type SetHintMessageProps = {
75
82
 
76
83
  export type StartConversationProps = {
77
84
  initOnly?: boolean
85
+ withGreetingMessage?: boolean
78
86
  }
79
87
 
80
88
  export type StartConversationFxData = {
@@ -118,13 +126,16 @@ export type IChatDrawBoardAdapter = {
118
126
 
119
127
  export type ChatbotContext = {
120
128
  language: string
121
- problem: string
129
+ problemDescription: string
122
130
  problemAnswer: string[]
131
+ translationTargetLanguage: string
132
+ assignmentId?: string
123
133
  answer?: string | string[]
124
134
  answerOptions?: string[]
125
- translationTargetLanguage: string
126
135
  imageDescription?: string
127
136
  imageCdnId?: string
137
+ problemId?: string
138
+ problemStandards?: ProblemStandard[]
128
139
  }
129
140
 
130
141
  export type ReinitConversationProps = {
@@ -138,7 +149,7 @@ export enum ChatRequestType {
138
149
 
139
150
  type FreeTextWithConversationId = {
140
151
  type: ChatRequestType.FREETEXT
141
- data: Pick<SendMessagePayload, 'message' | 'conversationId'>
152
+ data: Pick<SendMessagePayload, 'message' | 'conversationId' | 'chatHistory'>
142
153
  }
143
154
 
144
155
  type FreeTextNewConversation = {
@@ -1,4 +1,10 @@
1
+ import React from 'react'
2
+ import { ColorScheme } from './style.types'
1
3
  import { ConversationMessage } from './units.types'
4
+ import { ChatbotAPI } from '../model/ChatbotApi'
5
+ import { ChatTTSHighlightModel } from '../model/ChatTTSHighlightModel'
6
+ import { AUDIO_CONFIG, DEFAULT_VOICE } from '../constants'
7
+ import { Timepoint } from './api.types'
2
8
 
3
9
  export enum AudioStatus {
4
10
  PLAYING = 'playing',
@@ -6,13 +12,24 @@ export enum AudioStatus {
6
12
  PAUSED = 'paused',
7
13
  }
8
14
 
15
+ export type OnTimeUpdate = (callback: ((time: number) => void) | null) => void
16
+
9
17
  export type AudioProvider = {
10
18
  play: (audioPath: string, onPlaybackComplete: () => void) => Promise<void>
11
19
  pause: () => void
12
20
  resume: () => void
13
21
  stop: () => void
22
+ onTimeUpdate?: OnTimeUpdate
23
+ }
24
+
25
+ export type TTSHighlightRendererProps = {
26
+ text: string
27
+ highlightedIndex: number
28
+ colorScheme?: ColorScheme
14
29
  }
15
30
 
31
+ export type TTSHighlightRenderer = React.ComponentType<TTSHighlightRendererProps>
32
+
16
33
  export type PlayTextToSpeechProps = {
17
34
  message: ConversationMessage
18
35
  isTranslated: boolean
@@ -25,3 +42,19 @@ export type T2SState = {
25
42
  isLoading: boolean
26
43
  isEnabled: boolean
27
44
  }
45
+
46
+ export type T2SConfig = {
47
+ audioProvider?: AudioProvider
48
+ textSanitizer?: (speech: string) => string
49
+ isWordHighlightEnabled?: boolean
50
+ }
51
+
52
+ export type AudioConfig = {
53
+ voice?: typeof DEFAULT_VOICE
54
+ audioConfig?: typeof AUDIO_CONFIG
55
+ }
56
+
57
+ export type AudioCache = {
58
+ audioPath: string
59
+ timepoints: Timepoint[]
60
+ }
@@ -36,4 +36,5 @@ export type ChatItem = {
36
36
  isAvailable: boolean
37
37
  currentThread: IThreadItem | null
38
38
  conversationId?: string | null
39
+ hasBeenOpened?: boolean
39
40
  }
@@ -11,7 +11,10 @@ export type TeacherFeedbackModelProps = {
11
11
  getComments: (props: GetCommentsPayload) => Promise<GetCommentsResponse>
12
12
  updateCommentStatusSeen: (props: UpdateCommentStatusSeenPayload) => Promise<void>
13
13
  }
14
- socket: any
14
+ /**
15
+ * @deprecated - use socket and events directly in the client
16
+ */
17
+ socket?: any
15
18
  credits: {
16
19
  $assignmentId: Store<string>
17
20
  $problemId: Store<string>
@@ -2,21 +2,23 @@ import { createEvent } from 'effector'
2
2
  import { TeacherComment, FeedbackSocketEvents } from '../types'
3
3
 
4
4
  export class TeacherFeedbackSockets {
5
- private readonly socket: any
5
+ private readonly socket: any = null
6
6
  public readonly commentAdded = createEvent<TeacherComment>()
7
7
  public readonly commentDeleted = createEvent<TeacherComment>()
8
8
 
9
9
  constructor(socket: any) {
10
- this.socket = socket
10
+ if (socket) {
11
+ this.socket = socket
12
+ }
11
13
  }
12
14
 
13
15
  connect() {
14
- this.socket.on(FeedbackSocketEvents.COMMENT_ADDED, this.commentAdded)
15
- this.socket.on(FeedbackSocketEvents.COMMENT_DELETED, this.commentDeleted)
16
+ this.socket?.on(FeedbackSocketEvents.COMMENT_ADDED, this.commentAdded)
17
+ this.socket?.on(FeedbackSocketEvents.COMMENT_DELETED, this.commentDeleted)
16
18
  }
17
19
 
18
20
  off() {
19
- this.socket.off(FeedbackSocketEvents.COMMENT_ADDED, this.commentAdded)
20
- this.socket.off(FeedbackSocketEvents.COMMENT_DELETED, this.commentDeleted)
21
+ this.socket?.off(FeedbackSocketEvents.COMMENT_ADDED, this.commentAdded)
22
+ this.socket?.off(FeedbackSocketEvents.COMMENT_DELETED, this.commentDeleted)
21
23
  }
22
24
  }
@@ -1,20 +1,21 @@
1
1
  import React, { useMemo, useState } from 'react'
2
2
  import { KeysList } from '../KeysList/KeysList'
3
3
  import { StyleSheet, useWindowDimensions, View } from 'react-native'
4
- import { COLORS, SelectGroup, SelectOptionSize, IS_MOBILE } from '@magmamath/react-native-ui'
4
+ import { COLORS, IS_MOBILE, SelectGroup, SelectOptionSize } from '@magmamath/react-native-ui'
5
5
  import { Locale, useText } from '../../../../shared/translation'
6
6
  import { KeyboardLayoutProps, KeyboardType } from '../../types/types'
7
- import { MOBILE_LAYOUT_WIDTH } from '../../constants/constants'
8
7
  import { SelectedLayout } from './types'
9
8
  import { getKeyboardGroup } from '../../helpers'
10
9
  import { getSelectOptions } from './helpers'
10
+ import { KEYBOARD_LAYOUTS } from '../../constants/keyboardLayouts'
11
11
 
12
12
  export const AlgebraLayout = ({ onLayoutChange, ...props }: KeyboardLayoutProps) => {
13
13
  const [selectedLayout, setSelectedLayout] = useState<SelectedLayout>(SelectedLayout.BASIC)
14
14
  const t = useText()
15
15
  const { width } = useWindowDimensions()
16
16
  const selectOptions = getSelectOptions({ selectedLayout, setSelectedLayout, onLayoutChange })
17
- const isDesktop = width > MOBILE_LAYOUT_WIDTH && !IS_MOBILE
17
+ const isDesktop =
18
+ width > KEYBOARD_LAYOUTS[KeyboardType.AlgebraAdvanced].mobileBreakpoint && !IS_MOBILE
18
19
  const locale = t('locale') as Locale
19
20
 
20
21
  const keyboardGroups = useMemo(() => {
@@ -2,17 +2,17 @@ import React, { PropsWithChildren } from 'react'
2
2
  import { KeysList } from '../KeysList/KeysList'
3
3
  import { StyleSheet, useWindowDimensions, View } from 'react-native'
4
4
  import { KeyboardLayoutProps, KeyboardType } from '../../types/types'
5
- import { MOBILE_LAYOUT_WIDTH } from '../../constants/constants'
6
5
  import { Locale, useText } from '../../../../shared/translation'
7
6
  import { KEYBOARD_GROUPS_BY_LOCALE } from '../../constants/keyboardGroupsByLocale'
8
7
  import { IS_MOBILE } from '@magmamath/react-native-ui'
8
+ import { KEYBOARD_LAYOUTS } from '../../constants/keyboardLayouts'
9
9
 
10
10
  export const BasicLayout = (props: KeyboardLayoutProps & PropsWithChildren) => {
11
11
  const t = useText()
12
12
  const keysByLocale = KEYBOARD_GROUPS_BY_LOCALE[t('locale') as Locale][KeyboardType.Basic]
13
13
  const keys = props.children ? keysByLocale.keys : keysByLocale.keys.slice(0, -1)
14
14
  const { width } = useWindowDimensions()
15
- const isMobile = width <= MOBILE_LAYOUT_WIDTH || IS_MOBILE
15
+ const isMobile = width <= KEYBOARD_LAYOUTS[KeyboardType.Basic].mobileBreakpoint || IS_MOBILE
16
16
 
17
17
  if (isMobile && !props.children) {
18
18
  return null
@@ -9,19 +9,21 @@ export const MATH_ENTRY_BASIC_SW_PLUS: KeyboardGroup = {
9
9
  MATH_BASIC_OPERATORS.ADDITION,
10
10
  MATH_BASIC_OPERATORS.SUBTRACTION,
11
11
  MATH_BASIC_OPERATORS.EQUALS,
12
- MATH_BASIC_OPERATORS.PARENTHESES,
13
- MATH_BASIC_OPERATORS.SQUARE_POWER,
14
- MATH_BASIC_OPERATORS.SQUARE_ROOT,
12
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_LEFT,
13
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_RIGHT,
14
+ MATH_BASIC_OPERATORS.FRACTION,
15
15
  MATH_BASIC_OPERATORS.C_DOT,
16
16
  MATH_BASIC_OPERATORS.DIVISION,
17
17
  MATH_BASIC_OPERATORS.DOT,
18
18
  MATH_BASIC_OPERATORS.PERCENT,
19
- MATH_BASIC_OPERATORS.NTH_POWER,
20
- MATH_BASIC_OPERATORS.NTH_ROOT,
19
+ MATH_BASIC_OPERATORS.SQUARE_POWER,
20
+ MATH_BASIC_OPERATORS.SQUARE_ROOT,
21
21
  MATH_TEXT_SYMBOLS.X,
22
22
  MATH_TEXT_SYMBOLS.Y,
23
23
  MATH_TEXT_SYMBOLS.Z,
24
24
  MATH_BASIC_OPERATORS.PERMILLE,
25
+ MATH_BASIC_OPERATORS.NTH_POWER,
26
+ MATH_BASIC_OPERATORS.NTH_ROOT,
25
27
  ],
26
28
  }
27
29
 
@@ -31,17 +33,20 @@ export const MATH_ENTRY_BASIC_PLUS_MOBILE_SW: KeyboardGroup = {
31
33
  MATH_BASIC_OPERATORS.ADDITION,
32
34
  MATH_BASIC_OPERATORS.SUBTRACTION,
33
35
  MATH_BASIC_OPERATORS.EQUALS,
34
- MATH_BASIC_OPERATORS.SQUARE_POWER,
35
- MATH_BASIC_OPERATORS.SQUARE_ROOT,
36
- MATH_BASIC_OPERATORS.MULTIPLICATION,
36
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_LEFT,
37
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_RIGHT,
38
+ MATH_BASIC_OPERATORS.FRACTION,
39
+ MATH_BASIC_OPERATORS.C_DOT,
37
40
  MATH_BASIC_OPERATORS.DIVISION,
38
41
  MATH_BASIC_OPERATORS.DOT,
39
42
  MATH_BASIC_OPERATORS.PERCENT,
40
- MATH_BASIC_OPERATORS.NTH_POWER,
43
+ MATH_BASIC_OPERATORS.SQUARE_POWER,
44
+ MATH_BASIC_OPERATORS.SQUARE_ROOT,
41
45
  MATH_TEXT_SYMBOLS.X,
42
46
  MATH_TEXT_SYMBOLS.Y,
43
47
  MATH_TEXT_SYMBOLS.Z,
44
48
  MATH_BASIC_OPERATORS.PERMILLE,
49
+ MATH_BASIC_OPERATORS.NTH_POWER,
45
50
  ],
46
51
  }
47
52
 
@@ -51,19 +56,21 @@ export const MATH_ENTRY_BASIC_US_PLUS: KeyboardGroup = {
51
56
  MATH_BASIC_OPERATORS.ADDITION,
52
57
  MATH_BASIC_OPERATORS.SUBTRACTION,
53
58
  MATH_BASIC_OPERATORS.EQUALS,
54
- MATH_BASIC_OPERATORS.PARENTHESES,
55
- MATH_BASIC_OPERATORS.SQUARE_POWER,
56
- MATH_BASIC_OPERATORS.SQUARE_ROOT,
59
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_LEFT,
60
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_RIGHT,
61
+ MATH_BASIC_OPERATORS.FRACTION,
57
62
  MATH_BASIC_OPERATORS.MULTIPLICATION,
58
63
  MATH_BASIC_OPERATORS.DIVISION,
59
64
  MATH_BASIC_OPERATORS.COMMA,
60
65
  MATH_BASIC_OPERATORS.PERCENT,
61
- MATH_BASIC_OPERATORS.NTH_POWER,
62
- MATH_BASIC_OPERATORS.NTH_ROOT,
66
+ MATH_BASIC_OPERATORS.SQUARE_POWER,
67
+ MATH_BASIC_OPERATORS.SQUARE_ROOT,
63
68
  MATH_TEXT_SYMBOLS.X,
64
69
  MATH_TEXT_SYMBOLS.Y,
65
70
  MATH_TEXT_SYMBOLS.Z,
66
71
  MATH_BASIC_OPERATORS.PERMILLE,
72
+ MATH_BASIC_OPERATORS.NTH_POWER,
73
+ MATH_BASIC_OPERATORS.NTH_ROOT,
67
74
  ],
68
75
  }
69
76
 
@@ -73,16 +80,19 @@ export const MATH_ENTRY_BASIC_PLUS_MOBILE: KeyboardGroup = {
73
80
  MATH_BASIC_OPERATORS.ADDITION,
74
81
  MATH_BASIC_OPERATORS.SUBTRACTION,
75
82
  MATH_BASIC_OPERATORS.EQUALS,
76
- MATH_BASIC_OPERATORS.SQUARE_POWER,
77
- MATH_BASIC_OPERATORS.SQUARE_ROOT,
83
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_LEFT,
84
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_RIGHT,
85
+ MATH_BASIC_OPERATORS.FRACTION,
78
86
  MATH_BASIC_OPERATORS.MULTIPLICATION,
79
87
  MATH_BASIC_OPERATORS.DIVISION,
80
88
  MATH_BASIC_OPERATORS.COMMA,
81
89
  MATH_BASIC_OPERATORS.PERCENT,
82
- MATH_BASIC_OPERATORS.NTH_POWER,
90
+ MATH_BASIC_OPERATORS.SQUARE_POWER,
91
+ MATH_BASIC_OPERATORS.SQUARE_ROOT,
83
92
  MATH_TEXT_SYMBOLS.X,
84
93
  MATH_TEXT_SYMBOLS.Y,
85
94
  MATH_TEXT_SYMBOLS.Z,
86
95
  MATH_BASIC_OPERATORS.PERMILLE,
96
+ MATH_BASIC_OPERATORS.NTH_POWER,
87
97
  ],
88
98
  }
@@ -3,15 +3,16 @@ import { StyleSheet, useWindowDimensions, View } from 'react-native'
3
3
  import { KeysList } from '../KeysList/KeysList'
4
4
  import { KeyboardLayoutProps, KeyboardType } from '../../types/types'
5
5
  import { Locale, useText } from '../../../../shared/translation'
6
- import { MOBILE_LAYOUT_WIDTH } from '../../constants/constants'
7
6
  import { getKeyboardGroup } from '../../helpers'
8
7
  import { IS_MOBILE } from '@magmamath/react-native-ui'
8
+ import { KEYBOARD_LAYOUTS } from '../../constants/keyboardLayouts'
9
9
 
10
10
  export const BasicPlusPlusLayout = (props: KeyboardLayoutProps) => {
11
11
  const t = useText()
12
12
  const { width } = useWindowDimensions()
13
13
  const locale = t('locale') as Locale
14
- const isDesktop = width > MOBILE_LAYOUT_WIDTH && !IS_MOBILE
14
+ const isDesktop =
15
+ width > KEYBOARD_LAYOUTS[KeyboardType.BasicPlusPlus].mobileBreakpoint && !IS_MOBILE
15
16
  const keysGroup = getKeyboardGroup(
16
17
  locale,
17
18
  isDesktop ? KeyboardType.BasicPlusPlus : KeyboardType.BasicPlusPlusMobile,
@@ -11,21 +11,22 @@ export const MATH_ENTRY_BASIC_PLUS_PLUS: KeyboardGroup = {
11
11
  MATH_BASIC_OPERATORS.ADDITION,
12
12
  MATH_BASIC_OPERATORS.SUBTRACTION,
13
13
  MATH_BASIC_OPERATORS.EQUALS,
14
- MATH_BASIC_OPERATORS.PARENTHESES,
14
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_LEFT,
15
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_RIGHT,
15
16
  MATH_BASIC_OPERATORS.SQUARE_POWER,
16
17
  MATH_BASIC_OPERATORS.SQUARE_ROOT,
17
- MATH_BASIC_OPERATORS.PLUS_MINUS,
18
18
  MATH_SYMBOLS.PI,
19
19
  MATH_GEOMETRY_SYMBOLS.RADIAN,
20
20
  MATH_BASIC_OPERATORS.MULTIPLICATION,
21
21
  MATH_BASIC_OPERATORS.FRACTION,
22
22
  MATH_BASIC_OPERATORS.SLASH,
23
- MATH_BASIC_OPERATORS.COMMA,
23
+ MATH_BASIC_OPERATORS.PLUS_MINUS,
24
24
  MATH_BASIC_OPERATORS.PERCENT,
25
25
  MATH_BASIC_OPERATORS.NTH_POWER,
26
26
  MATH_BASIC_OPERATORS.NTH_ROOT,
27
27
  MATH_SYMBOLS.THETA,
28
28
  MATH_GEOMETRY_SYMBOLS.DEGREE,
29
+ MATH_BASIC_OPERATORS.COMMA,
29
30
  MATH_TEXT_SYMBOLS.X,
30
31
  MATH_TEXT_SYMBOLS.Y,
31
32
  MATH_TEXT_SYMBOLS.Z,
@@ -43,21 +44,23 @@ export const MATH_ENTRY_BASIC_PLUS_PLUS_MOBILE: KeyboardGroup = {
43
44
  MATH_BASIC_OPERATORS.ADDITION,
44
45
  MATH_BASIC_OPERATORS.SUBTRACTION,
45
46
  MATH_BASIC_OPERATORS.EQUALS,
46
- MATH_BASIC_OPERATORS.SQUARE_POWER,
47
- MATH_BASIC_OPERATORS.SQUARE_ROOT,
48
- MATH_BASIC_OPERATORS.GREATER_THAN,
47
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_LEFT,
48
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_RIGHT,
49
+ MATH_SYMBOLS.PI,
50
+ MATH_GEOMETRY_SYMBOLS.RADIAN,
49
51
  MATH_BASIC_OPERATORS.MULTIPLICATION,
50
52
  MATH_BASIC_OPERATORS.FRACTION,
51
53
  MATH_BASIC_OPERATORS.COMMA,
52
- MATH_BASIC_OPERATORS.NTH_POWER,
53
- MATH_SYMBOLS.PI,
54
- MATH_BASIC_OPERATORS.LESS_THAN,
54
+ MATH_BASIC_OPERATORS.SQUARE_POWER,
55
+ MATH_BASIC_OPERATORS.SQUARE_ROOT,
56
+ MATH_SYMBOLS.THETA,
57
+ MATH_GEOMETRY_SYMBOLS.DEGREE,
55
58
  MATH_TEXT_SYMBOLS.X,
56
59
  MATH_TEXT_SYMBOLS.Y,
57
60
  MATH_TEXT_SYMBOLS.Z,
58
- MATH_SYMBOLS.THETA,
59
- MATH_GEOMETRY_SYMBOLS.DEGREE,
60
- MATH_GEOMETRY_SYMBOLS.RADIAN,
61
+ MATH_BASIC_OPERATORS.NTH_POWER,
62
+ MATH_BASIC_OPERATORS.LESS_THAN,
63
+ MATH_BASIC_OPERATORS.GREATER_THAN,
61
64
  ],
62
65
  }
63
66
 
@@ -67,21 +70,22 @@ export const MATH_ENTRY_BASIC_PLUS_PLUS_SW: KeyboardGroup = {
67
70
  MATH_BASIC_OPERATORS.ADDITION,
68
71
  MATH_BASIC_OPERATORS.SUBTRACTION,
69
72
  MATH_BASIC_OPERATORS.EQUALS,
70
- MATH_BASIC_OPERATORS.PARENTHESES,
73
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_LEFT,
74
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_RIGHT,
71
75
  MATH_BASIC_OPERATORS.SQUARE_POWER,
72
76
  MATH_BASIC_OPERATORS.SQUARE_ROOT,
73
- MATH_BASIC_OPERATORS.PLUS_MINUS,
74
77
  MATH_SYMBOLS.PI,
75
78
  MATH_GEOMETRY_SYMBOLS.RADIAN,
76
79
  MATH_BASIC_OPERATORS.C_DOT,
77
80
  MATH_BASIC_OPERATORS.FRACTION,
78
81
  MATH_BASIC_OPERATORS.SLASH,
79
- MATH_BASIC_OPERATORS.DOT,
82
+ MATH_BASIC_OPERATORS.PLUS_MINUS,
80
83
  MATH_BASIC_OPERATORS.PERCENT,
81
84
  MATH_BASIC_OPERATORS.NTH_POWER,
82
85
  MATH_BASIC_OPERATORS.NTH_ROOT,
83
86
  MATH_SYMBOLS.THETA,
84
87
  MATH_GEOMETRY_SYMBOLS.DEGREE,
88
+ MATH_BASIC_OPERATORS.DOT,
85
89
  MATH_TEXT_SYMBOLS.X,
86
90
  MATH_TEXT_SYMBOLS.Y,
87
91
  MATH_TEXT_SYMBOLS.Z,
@@ -99,20 +103,22 @@ export const MATH_ENTRY_BASIC_PLUS_PLUS_MOBILE_SW: KeyboardGroup = {
99
103
  MATH_BASIC_OPERATORS.ADDITION,
100
104
  MATH_BASIC_OPERATORS.SUBTRACTION,
101
105
  MATH_BASIC_OPERATORS.EQUALS,
102
- MATH_BASIC_OPERATORS.SQUARE_POWER,
103
- MATH_BASIC_OPERATORS.SQUARE_ROOT,
104
- MATH_BASIC_OPERATORS.GREATER_THAN,
106
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_LEFT,
107
+ MATH_BASIC_OPERATORS.ROUND_BRACKET_RIGHT,
108
+ MATH_SYMBOLS.PI,
109
+ MATH_GEOMETRY_SYMBOLS.RADIAN,
105
110
  MATH_BASIC_OPERATORS.C_DOT,
106
111
  MATH_BASIC_OPERATORS.FRACTION,
107
112
  MATH_BASIC_OPERATORS.DOT,
108
- MATH_BASIC_OPERATORS.NTH_POWER,
109
- MATH_SYMBOLS.PI,
110
- MATH_BASIC_OPERATORS.LESS_THAN,
113
+ MATH_BASIC_OPERATORS.SQUARE_POWER,
114
+ MATH_BASIC_OPERATORS.SQUARE_ROOT,
115
+ MATH_SYMBOLS.THETA,
116
+ MATH_GEOMETRY_SYMBOLS.DEGREE,
111
117
  MATH_TEXT_SYMBOLS.X,
112
118
  MATH_TEXT_SYMBOLS.Y,
113
119
  MATH_TEXT_SYMBOLS.Z,
114
- MATH_SYMBOLS.THETA,
115
- MATH_GEOMETRY_SYMBOLS.DEGREE,
116
- MATH_GEOMETRY_SYMBOLS.RADIAN,
120
+ MATH_BASIC_OPERATORS.NTH_POWER,
121
+ MATH_BASIC_OPERATORS.LESS_THAN,
122
+ MATH_BASIC_OPERATORS.GREATER_THAN,
117
123
  ],
118
124
  }
@@ -9,7 +9,7 @@ import {
9
9
  KEYBOARD_SLIDE_DISTANCE,
10
10
  slideInAnimationSettings,
11
11
  } from './MainLayout/constants'
12
- import { MOBILE_LAYOUT_WIDTH } from '../constants/constants'
12
+ import { isMobileWidth } from '../helpers'
13
13
 
14
14
  type KeyboardProps = {
15
15
  onKeyPress: (key: KeyboardKeyValue) => void
@@ -17,15 +17,21 @@ type KeyboardProps = {
17
17
  style?: StyleProp<ViewStyle>
18
18
  color?: SelectOptionColor
19
19
  isDisabled?: boolean
20
+ isMainLayoutDisabled?: boolean
20
21
  showUnderlinedKeys?: boolean
21
22
  disabledKeys?: KeyboardKey[]
22
23
  }
23
24
 
24
- export const Keyboard = ({ style, characterType, ...props }: KeyboardProps) => {
25
+ export const Keyboard = ({
26
+ style,
27
+ characterType,
28
+ isMainLayoutDisabled,
29
+ ...props
30
+ }: KeyboardProps) => {
25
31
  const slideAnim = useRef(new Animated.Value(KEYBOARD_SLIDE_DISTANCE)).current
26
32
 
27
33
  const { width } = useWindowDimensions()
28
- const isMobile = width <= MOBILE_LAYOUT_WIDTH || IS_MOBILE
34
+ const isMobile = IS_MOBILE || isMobileWidth(width, characterType)
29
35
  const mobileStyles = useMemo(
30
36
  () => getLayoutConfigStyles(characterType, isMobile),
31
37
  [characterType, isMobile],
@@ -54,7 +60,11 @@ export const Keyboard = ({ style, characterType, ...props }: KeyboardProps) => {
54
60
  },
55
61
  ]}
56
62
  >
57
- <MainLayout {...props} characterType={characterType} />
63
+ <MainLayout
64
+ {...props}
65
+ isDisabled={isMainLayoutDisabled || props.isDisabled}
66
+ characterType={characterType}
67
+ />
58
68
  <Numpad {...props} style={mobileStyles} />
59
69
  </Animated.View>
60
70
  )
@@ -1,5 +1,5 @@
1
1
  import React, { useMemo } from 'react'
2
- import { StyleProp, StyleSheet, ViewStyle } from 'react-native'
2
+ import { StyleSheet } from 'react-native'
3
3
  import {
4
4
  ButtonStyle,
5
5
  SelectGroup,
@@ -1,10 +1,9 @@
1
1
  import React, { useEffect, useMemo, useRef, useState, useCallback } from 'react'
2
- import { Animated, StyleSheet, useWindowDimensions, View } from 'react-native'
2
+ import { Animated, StyleSheet, View } from 'react-native'
3
3
  import { SelectOptionColor, IS_MOBILE, IS_WEB } from '@magmamath/react-native-ui'
4
4
  import { getLayoutByCharType, isBasicPlusPlusLayout } from '../../constants/keyboardLayouts'
5
5
  import { KeyboardKey, KeyboardKeyValue } from '../../types/types'
6
6
  import { UnderlinedLayout } from '../UnderlinedLayout/UnderlinedLayout'
7
- import { MOBILE_LAYOUT_WIDTH } from '../../constants/constants'
8
7
 
9
8
  type LayoutProps = {
10
9
  onKeyPress: (key: KeyboardKeyValue) => void
@@ -27,11 +26,8 @@ export const MainLayout = ({
27
26
  const fadeAnim = useRef(new Animated.Value(showUnderlinedKeys ? 1 : 0)).current
28
27
  const fadeRef = useRef<Animated.CompositeAnimation | null>(null)
29
28
 
30
- const { width } = useWindowDimensions()
31
- const isMobile = width <= MOBILE_LAYOUT_WIDTH || IS_MOBILE
32
-
33
29
  const Layout = useMemo(() => getLayoutByCharType(characterType), [characterType])
34
- const isUnderlinedLayoutVisible = isUnderlinedVisible && !isSecondaryLayoutSelected && !isMobile
30
+ const isUnderlinedLayoutVisible = isUnderlinedVisible && !isSecondaryLayoutSelected && !IS_MOBILE
35
31
 
36
32
  const animateFade = useCallback(
37
33
  (toValue: number, onComplete?: () => void) => {
@@ -61,7 +61,7 @@ const styles = StyleSheet.create({
61
61
  borderBottomWidth: 1,
62
62
  borderBottomColor: COLORS.NEUTRAL_3,
63
63
  paddingTop: 0,
64
- gap: 24,
64
+ gap: 12,
65
65
  },
66
66
  keyGroupContainer: {
67
67
  gap: 8,
@@ -50,3 +50,6 @@ export const getSelectOptions = ({
50
50
  ]
51
51
  }
52
52
  }
53
+
54
+ export const isKeyboardUnitsGroupType = (k: string): k is KeyboardUnitsGroupType =>
55
+ (Object.values(KeyboardUnitsGroupType) as string[]).includes(k)
@@ -1,32 +1,46 @@
1
1
  import { useText } from '../../../../../shared/translation'
2
2
  import { useMemo, useState } from 'react'
3
- import { TabOptionProps } from '@magmamath/react-native-ui'
4
-
5
- import { KeyboardUnitsGroupType } from '../types'
3
+ import { KeyboardUnitsGroupType, UnitTab } from '../types'
4
+ import { useWindowDimensions } from 'react-native'
5
+ import { IS_MOBILE, TabOptionProps } from '@magmamath/react-native-ui'
6
+ import { isKeyboardUnitsGroupType } from '../helpers'
6
7
 
7
8
  export const useUnitTabs = () => {
8
9
  const t = useText()
9
- const tabs = useMemo(
10
+ const { width } = useWindowDimensions()
11
+
12
+ const allTabs = useMemo<UnitTab[]>(
10
13
  () => [
11
- {
12
- title: t('keyboard.length'),
13
- key: KeyboardUnitsGroupType.LENGTH,
14
- },
15
- {
16
- title: t('keyboard.area'),
17
- key: KeyboardUnitsGroupType.AREA,
18
- },
19
- {
20
- title: t('keyboard.volume'),
21
- key: KeyboardUnitsGroupType.VOLUME,
22
- },
23
- {
24
- title: t('keyboard.weight'),
25
- key: KeyboardUnitsGroupType.WEIGHT,
26
- },
14
+ { title: t('keyboard.length'), key: KeyboardUnitsGroupType.LENGTH },
15
+ { title: t('keyboard.area'), key: KeyboardUnitsGroupType.AREA, minBreakpoint: 1005 },
16
+ { title: t('keyboard.volume'), key: KeyboardUnitsGroupType.VOLUME, minBreakpoint: 1060 },
17
+ { title: t('keyboard.weight'), key: KeyboardUnitsGroupType.WEIGHT, minBreakpoint: 1060 },
18
+ { title: t('keyboard.time'), key: KeyboardUnitsGroupType.TIME, minBreakpoint: 1125 },
27
19
  ],
28
20
  [t],
29
21
  )
30
- const [activeTab, setActiveTab] = useState<TabOptionProps>(tabs[0])
31
- return { tabs, activeTab, setActiveTab }
22
+
23
+ const tabs = useMemo(
24
+ () =>
25
+ allTabs.filter(
26
+ (tab) => IS_MOBILE || tab.minBreakpoint === undefined || width >= tab.minBreakpoint,
27
+ ),
28
+ [allTabs, width],
29
+ )
30
+
31
+ const [activeKey, setActiveKey] = useState<KeyboardUnitsGroupType | undefined>(() => tabs[0]?.key)
32
+
33
+ const activeTab = useMemo(() => {
34
+ return tabs.find((t) => t?.key && t.key === activeKey) ?? tabs[0]
35
+ }, [tabs, activeKey])
36
+
37
+ return {
38
+ tabs,
39
+ activeTab,
40
+ setActiveTab: (tab: TabOptionProps) => {
41
+ if (isKeyboardUnitsGroupType(tab.key)) {
42
+ setActiveKey(tab.key)
43
+ }
44
+ },
45
+ }
32
46
  }