@magmamath/students-features 0.9.9 → 0.9.14-rc.10

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 (338) hide show
  1. package/.editorconfig +15 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc +22 -0
  4. package/.gitattributes +3 -0
  5. package/.github/actions/setup/action.yml +37 -0
  6. package/.github/workflows/ci.yml +73 -0
  7. package/.gitignore +84 -0
  8. package/.idea/.gitignore +8 -0
  9. package/.idea/codeStyles/Project.xml +62 -0
  10. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  11. package/.idea/copilot.data.migration.agent.xml +6 -0
  12. package/.idea/copilot.data.migration.ask.xml +6 -0
  13. package/.idea/copilot.data.migration.ask2agent.xml +6 -0
  14. package/.idea/copilot.data.migration.edit.xml +6 -0
  15. package/.idea/inspectionProfiles/Project_Default.xml +8 -0
  16. package/.idea/jsLinters/eslint.xml +6 -0
  17. package/.idea/modules.xml +8 -0
  18. package/.idea/prettier.xml +7 -0
  19. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_29_12_2025,_13_10_[Changes]/shelved.patch +18 -0
  20. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_29_12_2025,_13_11_[Changes]/shelved.patch +19 -0
  21. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_29_12_2025__13_10__Changes_.xml +4 -0
  22. package/.idea/shelf/Uncommitted_changes_before_Checkout_at_29_12_2025__13_11__Changes_.xml +4 -0
  23. package/.idea/students-features.iml +12 -0
  24. package/.idea/vcs.xml +6 -0
  25. package/.idea/workspace.xml +643 -0
  26. package/.nvmrc +1 -0
  27. package/.prettierrc +11 -0
  28. package/.release-it.json +17 -0
  29. package/.watchmanconfig +1 -0
  30. package/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +541 -0
  31. package/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs +28 -0
  32. package/.yarn/releases/yarn-3.6.1.cjs +874 -0
  33. package/babel.config.js +5 -0
  34. package/bob.config.js +25 -0
  35. package/dist/commonjs/features/celebrations/helpers.js +4 -1
  36. package/dist/commonjs/features/celebrations/helpers.js.map +1 -1
  37. package/dist/commonjs/features/chatbot/components/Chatbot.js +2 -2
  38. package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
  39. package/dist/commonjs/features/chatbot/model/ChatBotModel.js +8 -6
  40. package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
  41. package/dist/commonjs/features/chatbot/model/t2s.js +4 -3
  42. package/dist/commonjs/features/chatbot/model/t2s.js.map +1 -1
  43. package/dist/commonjs/features/chatbot/types/model.types.js.map +1 -1
  44. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js +3 -2
  45. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.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/BasicLayout/keyboardGroups.js +5 -1
  50. package/dist/commonjs/features/keyboard/components/BasicLayout/keyboardGroups.js.map +1 -1
  51. package/dist/commonjs/features/keyboard/components/Keyboard.js +24 -9
  52. package/dist/commonjs/features/keyboard/components/Keyboard.js.map +1 -1
  53. package/dist/commonjs/features/keyboard/components/{MainLayout.js → MainLayout/MainLayout.js} +9 -7
  54. package/dist/commonjs/features/keyboard/components/MainLayout/MainLayout.js.map +1 -0
  55. package/dist/commonjs/features/keyboard/components/{constants.js → MainLayout/constants.js} +7 -2
  56. package/dist/commonjs/features/keyboard/components/MainLayout/constants.js.map +1 -0
  57. package/dist/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js +3 -2
  58. package/dist/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js.map +1 -1
  59. package/dist/commonjs/features/keyboard/components/UnderlinedLayout/keyboardGroups.js +2 -1
  60. package/dist/commonjs/features/keyboard/components/UnderlinedLayout/keyboardGroups.js.map +1 -1
  61. package/dist/commonjs/features/keyboard/components/UnitsLayout/UnitsLayout.js +2 -1
  62. package/dist/commonjs/features/keyboard/components/UnitsLayout/UnitsLayout.js.map +1 -1
  63. package/dist/commonjs/features/keyboard/components/UnitsLayout/helpers.js +3 -1
  64. package/dist/commonjs/features/keyboard/components/UnitsLayout/helpers.js.map +1 -1
  65. package/dist/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js +26 -6
  66. package/dist/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js.map +1 -1
  67. package/dist/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.js +9 -1
  68. package/dist/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.js.map +1 -1
  69. package/dist/commonjs/features/keyboard/components/UnitsLayout/types.js +1 -0
  70. package/dist/commonjs/features/keyboard/components/UnitsLayout/types.js.map +1 -1
  71. package/dist/commonjs/features/keyboard/constants/keyboardGroupsByLocale.js +22 -1
  72. package/dist/commonjs/features/keyboard/constants/keyboardGroupsByLocale.js.map +1 -1
  73. package/dist/commonjs/features/keyboard/constants/keyboardLayouts.js +7 -0
  74. package/dist/commonjs/features/keyboard/constants/keyboardLayouts.js.map +1 -1
  75. package/dist/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.js +3 -30
  76. package/dist/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.js.map +1 -1
  77. package/dist/commonjs/features/keyboard/types/MathKeysGroups/specialOperators.js +27 -0
  78. package/dist/commonjs/features/keyboard/types/MathKeysGroups/specialOperators.js.map +1 -1
  79. package/dist/commonjs/features/keyboard/types/MathKeysGroups/units.js +18 -3
  80. package/dist/commonjs/features/keyboard/types/MathKeysGroups/units.js.map +1 -1
  81. package/dist/commonjs/features/keyboard/types/keyboardGroupIds.js +1 -0
  82. package/dist/commonjs/features/keyboard/types/keyboardGroupIds.js.map +1 -1
  83. package/dist/commonjs/lib/helpers/helpers.js +28 -5
  84. package/dist/commonjs/lib/helpers/helpers.js.map +1 -1
  85. package/dist/commonjs/lib/types/requests.js +2 -0
  86. package/dist/commonjs/lib/types/requests.js.map +1 -0
  87. package/dist/commonjs/shared/icons/TimeIcon.js +37 -0
  88. package/dist/commonjs/shared/icons/TimeIcon.js.map +1 -0
  89. package/dist/commonjs/shared/translation/constants.js +3 -1
  90. package/dist/commonjs/shared/translation/constants.js.map +1 -1
  91. package/dist/commonjs/shared/translation/localization/ca.json +7 -6
  92. package/dist/commonjs/shared/translation/localization/de.json +43 -0
  93. package/dist/commonjs/shared/translation/localization/en.json +7 -6
  94. package/dist/commonjs/shared/translation/localization/gb.json +7 -6
  95. package/dist/commonjs/shared/translation/localization/sct.json +7 -6
  96. package/dist/commonjs/shared/translation/localization/sw.json +7 -6
  97. package/dist/commonjs/shared/translation/types.js +1 -0
  98. package/dist/commonjs/shared/translation/types.js.map +1 -1
  99. package/dist/module/features/celebrations/helpers.js +4 -1
  100. package/dist/module/features/celebrations/helpers.js.map +1 -1
  101. package/dist/module/features/chatbot/components/Chatbot.js +2 -2
  102. package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
  103. package/dist/module/features/chatbot/model/ChatBotModel.js +8 -6
  104. package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
  105. package/dist/module/features/chatbot/model/t2s.js +4 -3
  106. package/dist/module/features/chatbot/model/t2s.js.map +1 -1
  107. package/dist/module/features/chatbot/types/model.types.js.map +1 -1
  108. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js +3 -2
  109. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -1
  110. package/dist/module/features/feedback/model/model.js.map +1 -1
  111. package/dist/module/features/feedback/model/sockets.js +8 -5
  112. package/dist/module/features/feedback/model/sockets.js.map +1 -1
  113. package/dist/module/features/keyboard/components/BasicLayout/keyboardGroups.js +4 -0
  114. package/dist/module/features/keyboard/components/BasicLayout/keyboardGroups.js.map +1 -1
  115. package/dist/module/features/keyboard/components/Keyboard.js +23 -8
  116. package/dist/module/features/keyboard/components/Keyboard.js.map +1 -1
  117. package/dist/module/features/keyboard/components/KeysList/KeysList.js.map +1 -1
  118. package/dist/module/features/keyboard/components/{MainLayout.js → MainLayout/MainLayout.js} +9 -7
  119. package/dist/module/features/keyboard/components/MainLayout/MainLayout.js.map +1 -0
  120. package/dist/module/features/keyboard/components/{constants.js → MainLayout/constants.js} +6 -1
  121. package/dist/module/features/keyboard/components/MainLayout/constants.js.map +1 -0
  122. package/dist/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js +3 -2
  123. package/dist/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js.map +1 -1
  124. package/dist/module/features/keyboard/components/UnderlinedLayout/keyboardGroups.js +2 -1
  125. package/dist/module/features/keyboard/components/UnderlinedLayout/keyboardGroups.js.map +1 -1
  126. package/dist/module/features/keyboard/components/UnitsLayout/UnitsLayout.js +2 -1
  127. package/dist/module/features/keyboard/components/UnitsLayout/UnitsLayout.js.map +1 -1
  128. package/dist/module/features/keyboard/components/UnitsLayout/helpers.js +2 -1
  129. package/dist/module/features/keyboard/components/UnitsLayout/helpers.js.map +1 -1
  130. package/dist/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js +26 -6
  131. package/dist/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js.map +1 -1
  132. package/dist/module/features/keyboard/components/UnitsLayout/keyboardGroups.js +9 -1
  133. package/dist/module/features/keyboard/components/UnitsLayout/keyboardGroups.js.map +1 -1
  134. package/dist/module/features/keyboard/components/UnitsLayout/types.js +1 -0
  135. package/dist/module/features/keyboard/components/UnitsLayout/types.js.map +1 -1
  136. package/dist/module/features/keyboard/constants/keyboardGroupsByLocale.js +24 -3
  137. package/dist/module/features/keyboard/constants/keyboardGroupsByLocale.js.map +1 -1
  138. package/dist/module/features/keyboard/constants/keyboardLayouts.js +6 -0
  139. package/dist/module/features/keyboard/constants/keyboardLayouts.js.map +1 -1
  140. package/dist/module/features/keyboard/types/MathKeysGroups/basicOperators.js +3 -30
  141. package/dist/module/features/keyboard/types/MathKeysGroups/basicOperators.js.map +1 -1
  142. package/dist/module/features/keyboard/types/MathKeysGroups/specialOperators.js +27 -0
  143. package/dist/module/features/keyboard/types/MathKeysGroups/specialOperators.js.map +1 -1
  144. package/dist/module/features/keyboard/types/MathKeysGroups/units.js +18 -3
  145. package/dist/module/features/keyboard/types/MathKeysGroups/units.js.map +1 -1
  146. package/dist/module/features/keyboard/types/keyboardGroupIds.js +1 -0
  147. package/dist/module/features/keyboard/types/keyboardGroupIds.js.map +1 -1
  148. package/dist/module/lib/helpers/helpers.js +28 -5
  149. package/dist/module/lib/helpers/helpers.js.map +1 -1
  150. package/dist/module/lib/types/requests.js +2 -0
  151. package/dist/module/lib/types/requests.js.map +1 -0
  152. package/dist/module/shared/icons/TimeIcon.js +29 -0
  153. package/dist/module/shared/icons/TimeIcon.js.map +1 -0
  154. package/dist/module/shared/translation/constants.js +3 -1
  155. package/dist/module/shared/translation/constants.js.map +1 -1
  156. package/dist/module/shared/translation/localization/ca.json +7 -6
  157. package/dist/module/shared/translation/localization/de.json +43 -0
  158. package/dist/module/shared/translation/localization/en.json +7 -6
  159. package/dist/module/shared/translation/localization/gb.json +7 -6
  160. package/dist/module/shared/translation/localization/sct.json +7 -6
  161. package/dist/module/shared/translation/localization/sw.json +7 -6
  162. package/dist/module/shared/translation/types.js +1 -0
  163. package/dist/module/shared/translation/types.js.map +1 -1
  164. package/dist/typescript/commonjs/features/celebrations/helpers.d.ts.map +1 -1
  165. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts +8 -7
  166. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  167. package/dist/typescript/commonjs/features/chatbot/model/ChatbotApi.d.ts +2 -2
  168. package/dist/typescript/commonjs/features/chatbot/model/ChatbotApi.d.ts.map +1 -1
  169. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts.map +1 -1
  170. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts +11 -1
  171. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts.map +1 -1
  172. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts +8 -5
  173. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts.map +1 -1
  174. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -1
  175. package/dist/typescript/commonjs/features/feedback/model/model.d.ts +4 -1
  176. package/dist/typescript/commonjs/features/feedback/model/model.d.ts.map +1 -1
  177. package/dist/typescript/commonjs/features/feedback/model/sockets.d.ts.map +1 -1
  178. package/dist/typescript/commonjs/features/keyboard/components/BasicLayout/keyboardGroups.d.ts +1 -0
  179. package/dist/typescript/commonjs/features/keyboard/components/BasicLayout/keyboardGroups.d.ts.map +1 -1
  180. package/dist/typescript/commonjs/features/keyboard/components/Keyboard.d.ts +3 -2
  181. package/dist/typescript/commonjs/features/keyboard/components/Keyboard.d.ts.map +1 -1
  182. package/dist/typescript/commonjs/features/keyboard/components/{MainLayout.d.ts → MainLayout/MainLayout.d.ts} +1 -1
  183. package/dist/typescript/commonjs/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -0
  184. package/dist/typescript/{module/features/keyboard/components → commonjs/features/keyboard/components/MainLayout}/constants.d.ts +5 -0
  185. package/dist/typescript/commonjs/features/keyboard/components/MainLayout/constants.d.ts.map +1 -0
  186. package/dist/typescript/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.d.ts +5 -1
  187. package/dist/typescript/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.d.ts.map +1 -1
  188. package/dist/typescript/commonjs/features/keyboard/components/UnderlinedLayout/keyboardGroups.d.ts.map +1 -1
  189. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/helpers.d.ts +1 -0
  190. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/helpers.d.ts.map +1 -1
  191. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts +4 -7
  192. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts.map +1 -1
  193. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts +1 -0
  194. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts.map +1 -1
  195. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/types.d.ts +7 -1
  196. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/types.d.ts.map +1 -1
  197. package/dist/typescript/commonjs/features/keyboard/constants/keyboardGroupsByLocale.d.ts.map +1 -1
  198. package/dist/typescript/commonjs/features/keyboard/constants/keyboardLayouts.d.ts +1 -0
  199. package/dist/typescript/commonjs/features/keyboard/constants/keyboardLayouts.d.ts.map +1 -1
  200. package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.d.ts +0 -18
  201. package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.d.ts.map +1 -1
  202. package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/specialOperators.d.ts +18 -0
  203. package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/specialOperators.d.ts.map +1 -1
  204. package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/units.d.ts +15 -0
  205. package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/units.d.ts.map +1 -1
  206. package/dist/typescript/commonjs/features/keyboard/types/keyboardGroupIds.d.ts +1 -0
  207. package/dist/typescript/commonjs/features/keyboard/types/keyboardGroupIds.d.ts.map +1 -1
  208. package/dist/typescript/commonjs/lib/helpers/helpers.d.ts.map +1 -1
  209. package/dist/typescript/commonjs/lib/types/requests.d.ts +4 -0
  210. package/dist/typescript/commonjs/lib/types/requests.d.ts.map +1 -0
  211. package/dist/typescript/commonjs/shared/icons/TimeIcon.d.ts +4 -0
  212. package/dist/typescript/commonjs/shared/icons/TimeIcon.d.ts.map +1 -0
  213. package/dist/typescript/commonjs/shared/translation/constants.d.ts +48 -0
  214. package/dist/typescript/commonjs/shared/translation/constants.d.ts.map +1 -1
  215. package/dist/typescript/commonjs/shared/translation/model.d.ts +2 -0
  216. package/dist/typescript/commonjs/shared/translation/model.d.ts.map +1 -1
  217. package/dist/typescript/commonjs/shared/translation/types.d.ts +2 -1
  218. package/dist/typescript/commonjs/shared/translation/types.d.ts.map +1 -1
  219. package/dist/typescript/module/features/celebrations/helpers.d.ts.map +1 -1
  220. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts +8 -7
  221. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  222. package/dist/typescript/module/features/chatbot/model/ChatbotApi.d.ts +2 -2
  223. package/dist/typescript/module/features/chatbot/model/ChatbotApi.d.ts.map +1 -1
  224. package/dist/typescript/module/features/chatbot/model/t2s.d.ts.map +1 -1
  225. package/dist/typescript/module/features/chatbot/types/api.types.d.ts +11 -1
  226. package/dist/typescript/module/features/chatbot/types/api.types.d.ts.map +1 -1
  227. package/dist/typescript/module/features/chatbot/types/model.types.d.ts +8 -5
  228. package/dist/typescript/module/features/chatbot/types/model.types.d.ts.map +1 -1
  229. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -1
  230. package/dist/typescript/module/features/feedback/model/model.d.ts +4 -1
  231. package/dist/typescript/module/features/feedback/model/model.d.ts.map +1 -1
  232. package/dist/typescript/module/features/feedback/model/sockets.d.ts.map +1 -1
  233. package/dist/typescript/module/features/keyboard/components/BasicLayout/keyboardGroups.d.ts +1 -0
  234. package/dist/typescript/module/features/keyboard/components/BasicLayout/keyboardGroups.d.ts.map +1 -1
  235. package/dist/typescript/module/features/keyboard/components/Keyboard.d.ts +3 -2
  236. package/dist/typescript/module/features/keyboard/components/Keyboard.d.ts.map +1 -1
  237. package/dist/typescript/module/features/keyboard/components/{MainLayout.d.ts → MainLayout/MainLayout.d.ts} +1 -1
  238. package/dist/typescript/module/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -0
  239. package/dist/typescript/{commonjs/features/keyboard/components → module/features/keyboard/components/MainLayout}/constants.d.ts +5 -0
  240. package/dist/typescript/module/features/keyboard/components/MainLayout/constants.d.ts.map +1 -0
  241. package/dist/typescript/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.d.ts +5 -1
  242. package/dist/typescript/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.d.ts.map +1 -1
  243. package/dist/typescript/module/features/keyboard/components/UnderlinedLayout/keyboardGroups.d.ts.map +1 -1
  244. package/dist/typescript/module/features/keyboard/components/UnitsLayout/helpers.d.ts +1 -0
  245. package/dist/typescript/module/features/keyboard/components/UnitsLayout/helpers.d.ts.map +1 -1
  246. package/dist/typescript/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts +4 -7
  247. package/dist/typescript/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts.map +1 -1
  248. package/dist/typescript/module/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts +1 -0
  249. package/dist/typescript/module/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts.map +1 -1
  250. package/dist/typescript/module/features/keyboard/components/UnitsLayout/types.d.ts +7 -1
  251. package/dist/typescript/module/features/keyboard/components/UnitsLayout/types.d.ts.map +1 -1
  252. package/dist/typescript/module/features/keyboard/constants/keyboardGroupsByLocale.d.ts.map +1 -1
  253. package/dist/typescript/module/features/keyboard/constants/keyboardLayouts.d.ts +1 -0
  254. package/dist/typescript/module/features/keyboard/constants/keyboardLayouts.d.ts.map +1 -1
  255. package/dist/typescript/module/features/keyboard/types/MathKeysGroups/basicOperators.d.ts +0 -18
  256. package/dist/typescript/module/features/keyboard/types/MathKeysGroups/basicOperators.d.ts.map +1 -1
  257. package/dist/typescript/module/features/keyboard/types/MathKeysGroups/specialOperators.d.ts +18 -0
  258. package/dist/typescript/module/features/keyboard/types/MathKeysGroups/specialOperators.d.ts.map +1 -1
  259. package/dist/typescript/module/features/keyboard/types/MathKeysGroups/units.d.ts +15 -0
  260. package/dist/typescript/module/features/keyboard/types/MathKeysGroups/units.d.ts.map +1 -1
  261. package/dist/typescript/module/features/keyboard/types/keyboardGroupIds.d.ts +1 -0
  262. package/dist/typescript/module/features/keyboard/types/keyboardGroupIds.d.ts.map +1 -1
  263. package/dist/typescript/module/lib/helpers/helpers.d.ts.map +1 -1
  264. package/dist/typescript/module/lib/types/requests.d.ts +4 -0
  265. package/dist/typescript/module/lib/types/requests.d.ts.map +1 -0
  266. package/dist/typescript/module/shared/icons/TimeIcon.d.ts +4 -0
  267. package/dist/typescript/module/shared/icons/TimeIcon.d.ts.map +1 -0
  268. package/dist/typescript/module/shared/translation/constants.d.ts +48 -0
  269. package/dist/typescript/module/shared/translation/constants.d.ts.map +1 -1
  270. package/dist/typescript/module/shared/translation/model.d.ts +2 -0
  271. package/dist/typescript/module/shared/translation/model.d.ts.map +1 -1
  272. package/dist/typescript/module/shared/translation/types.d.ts +2 -1
  273. package/dist/typescript/module/shared/translation/types.d.ts.map +1 -1
  274. package/example/.expo/README.md +8 -0
  275. package/example/.expo/devices.json +3 -0
  276. package/example/.expo/web/cache/production/images/favicon/favicon-24272cdaeff82cc5facdaccd982a6f05b60c4504704bbf94c19a6388659880bb-contain-transparent/favicon-48.png +0 -0
  277. package/example/app.json +30 -0
  278. package/example/assets/adaptive-icon.png +0 -0
  279. package/example/assets/favicon.png +0 -0
  280. package/example/assets/icon.png +0 -0
  281. package/example/assets/splash-icon.png +0 -0
  282. package/example/babel.config.js +28 -0
  283. package/example/index.js +8 -0
  284. package/example/metro.config.js +18 -0
  285. package/example/package.json +25 -0
  286. package/example/src/App.tsx +8 -0
  287. package/example/tsconfig.json +6 -0
  288. package/example/yarn.lock +6552 -0
  289. package/package.json +1 -1
  290. package/src/features/celebrations/helpers.ts +35 -33
  291. package/src/features/chatbot/components/Chatbot.tsx +2 -2
  292. package/src/features/chatbot/model/ChatBotModel.ts +10 -5
  293. package/src/features/chatbot/model/t2s.ts +3 -2
  294. package/src/features/chatbot/types/api.types.ts +14 -1
  295. package/src/features/chatbot/types/model.types.ts +12 -5
  296. package/src/features/endOfAssignment/ui/PracticeButtonGroup.tsx +4 -3
  297. package/src/features/feedback/model/model.ts +4 -1
  298. package/src/features/feedback/model/sockets.ts +8 -6
  299. package/src/features/keyboard/components/BasicLayout/keyboardGroups.ts +4 -0
  300. package/src/features/keyboard/components/Keyboard.tsx +44 -11
  301. package/src/features/keyboard/components/KeysList/KeysList.tsx +1 -1
  302. package/src/features/keyboard/components/{MainLayout.tsx → MainLayout/MainLayout.tsx} +6 -7
  303. package/src/features/keyboard/components/{constants.ts → MainLayout/constants.ts} +6 -1
  304. package/src/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.tsx +7 -2
  305. package/src/features/keyboard/components/UnderlinedLayout/keyboardGroups.ts +5 -3
  306. package/src/features/keyboard/components/UnitsLayout/UnitsLayout.tsx +1 -0
  307. package/src/features/keyboard/components/UnitsLayout/helpers.tsx +3 -0
  308. package/src/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts +32 -21
  309. package/src/features/keyboard/components/UnitsLayout/keyboardGroups.ts +11 -0
  310. package/src/features/keyboard/components/UnitsLayout/types.ts +7 -0
  311. package/src/features/keyboard/constants/keyboardGroupsByLocale.ts +23 -0
  312. package/src/features/keyboard/constants/keyboardLayouts.ts +11 -0
  313. package/src/features/keyboard/types/MathKeysGroups/basicOperators.tsx +3 -24
  314. package/src/features/keyboard/types/MathKeysGroups/specialOperators.tsx +21 -0
  315. package/src/features/keyboard/types/MathKeysGroups/units.tsx +15 -0
  316. package/src/features/keyboard/types/keyboardGroupIds.ts +1 -0
  317. package/src/lib/helpers/helpers.ts +23 -8
  318. package/src/lib/types/requests.ts +1 -0
  319. package/src/shared/icons/TimeIcon.tsx +23 -0
  320. package/src/shared/translation/constants.ts +2 -0
  321. package/src/shared/translation/localization/ca.json +7 -6
  322. package/src/shared/translation/localization/de.json +43 -0
  323. package/src/shared/translation/localization/en.json +7 -6
  324. package/src/shared/translation/localization/gb.json +7 -6
  325. package/src/shared/translation/localization/sct.json +7 -6
  326. package/src/shared/translation/localization/sw.json +7 -6
  327. package/src/shared/translation/types.ts +4 -0
  328. package/tsconfig.build.json +4 -0
  329. package/tsconfig.json +34 -0
  330. package/yarn.lock +8623 -0
  331. package/dist/commonjs/features/keyboard/components/MainLayout.js.map +0 -1
  332. package/dist/commonjs/features/keyboard/components/constants.js.map +0 -1
  333. package/dist/module/features/keyboard/components/MainLayout.js.map +0 -1
  334. package/dist/module/features/keyboard/components/constants.js.map +0 -1
  335. package/dist/typescript/commonjs/features/keyboard/components/MainLayout.d.ts.map +0 -1
  336. package/dist/typescript/commonjs/features/keyboard/components/constants.d.ts.map +0 -1
  337. package/dist/typescript/module/features/keyboard/components/MainLayout.d.ts.map +0 -1
  338. package/dist/typescript/module/features/keyboard/components/constants.d.ts.map +0 -1
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  MATH_AREA_UNITS,
3
3
  MATH_LENGTH_UNITS,
4
+ MATH_TIME_UNITS,
4
5
  MATH_VOLUME_UNITS,
5
6
  MATH_WEIGHT_UNITS,
6
7
  } from '../../types/MathKeysGroups/units'
@@ -10,6 +11,7 @@ import { VolumeIcon } from '../../../../shared/icons/VolumeIcon'
10
11
  import { WeightIcon } from '../../../../shared/icons/WeightIcon'
11
12
  import { KeyboardUnitsGroupType, UnitKeyboardGroups } from './types'
12
13
  import { MathEntryKeyboardGroupId } from '../../types/keyboardGroupIds'
14
+ import { TimeIcon } from '../../../../shared/icons/TimeIcon'
13
15
 
14
16
  export const MATH_ENTRY_LENGTH_UNITS_SW_KEYBOARD_GROUPS: UnitKeyboardGroups = {
15
17
  id: MathEntryKeyboardGroupId.LENGTH_UNITS_SW,
@@ -171,6 +173,11 @@ export const MATH_ENTRY_WEIGHT_UNITS_SW_KEYBOARD_GROUPS: UnitKeyboardGroups = {
171
173
  ],
172
174
  }
173
175
 
176
+ export const MATH_ENTRY_TIME_UNITS_SW_KEYBOARD_GROUPS: UnitKeyboardGroups = {
177
+ id: MathEntryKeyboardGroupId.TIME_SW,
178
+ keys: [[MATH_TIME_UNITS.S, MATH_TIME_UNITS.M, MATH_TIME_UNITS.H]],
179
+ }
180
+
174
181
  export const MATH_ENTRY_WEIGHT_UNITS_US_KEYBOARD_GROUPS: UnitKeyboardGroups = {
175
182
  id: MathEntryKeyboardGroupId.WEIGHT_UNITS_US,
176
183
  keys: [
@@ -199,4 +206,8 @@ export const UNITS_KEYBOARD_GROUPS = new Map([
199
206
  KeyboardUnitsGroupType.WEIGHT,
200
207
  { keys: MATH_ENTRY_WEIGHT_UNITS_SW_KEYBOARD_GROUPS.keys, icon: WeightIcon },
201
208
  ],
209
+ [
210
+ KeyboardUnitsGroupType.TIME,
211
+ { keys: MATH_ENTRY_TIME_UNITS_SW_KEYBOARD_GROUPS.keys, icon: TimeIcon },
212
+ ],
202
213
  ])
@@ -1,4 +1,5 @@
1
1
  import { KeyboardGroup, KeyboardKey } from '@magmamath/students-features'
2
+ import { TabOptionProps } from '@magmamath/react-native-ui'
2
3
 
3
4
  export enum SelectedLayout {
4
5
  ALGEBRA = 'algebra',
@@ -10,8 +11,14 @@ export enum KeyboardUnitsGroupType {
10
11
  AREA = 'area',
11
12
  VOLUME = 'volume',
12
13
  WEIGHT = 'weight',
14
+ TIME = 'time',
13
15
  }
14
16
 
15
17
  export type UnitKeyboardGroups = {
16
18
  keys: KeyboardKey[][]
17
19
  } & Omit<KeyboardGroup, 'keys'>
20
+
21
+ export type UnitTab = Omit<TabOptionProps, 'key'> & {
22
+ key: KeyboardUnitsGroupType
23
+ minWidth?: number
24
+ }
@@ -1,5 +1,6 @@
1
1
  import { KeyboardGroup, KeyboardType } from '../types/types'
2
2
  import {
3
+ MATH_CURRENCY_DE_KEYBOARD_GROUP,
3
4
  MATH_CURRENCY_SW_KEYBOARD_GROUP,
4
5
  MATH_CURRENCY_UK_KEYBOARD_GROUP,
5
6
  MATH_CURRENCY_US_KEYBOARD_GROUP,
@@ -30,6 +31,7 @@ import {
30
31
  MATH_ENTRY_AREA_UNITS_US_KEYBOARD_GROUPS,
31
32
  MATH_ENTRY_LENGTH_UNITS_SW_KEYBOARD_GROUPS,
32
33
  MATH_ENTRY_LENGTH_UNITS_US_KEYBOARD_GROUPS,
34
+ MATH_ENTRY_TIME_UNITS_SW_KEYBOARD_GROUPS,
33
35
  MATH_ENTRY_VOLUME_UNITS_SW_KEYBOARD_GROUPS,
34
36
  MATH_ENTRY_VOLUME_UNITS_UK_KEYBOARD_GROUPS,
35
37
  MATH_ENTRY_VOLUME_UNITS_US_KEYBOARD_GROUPS,
@@ -69,6 +71,7 @@ function createKeyboardUnitsLocale(
69
71
  [KeyboardUnitsGroupType.AREA]: MATH_ENTRY_AREA_UNITS_US_KEYBOARD_GROUPS,
70
72
  [KeyboardUnitsGroupType.VOLUME]: MATH_ENTRY_VOLUME_UNITS_US_KEYBOARD_GROUPS,
71
73
  [KeyboardUnitsGroupType.WEIGHT]: MATH_ENTRY_WEIGHT_UNITS_US_KEYBOARD_GROUPS,
74
+ [KeyboardUnitsGroupType.TIME]: MATH_ENTRY_TIME_UNITS_SW_KEYBOARD_GROUPS,
72
75
  }
73
76
  return { ...base, ...overrides }
74
77
  }
@@ -98,6 +101,20 @@ export const KEYBOARD_GROUPS_BY_LOCALE: Record<Locale, Record<KeyboardType, Keyb
98
101
  [KeyboardType.BasicTime]: MATH_TIME_SW_KEYBOARD_GROUP,
99
102
  [KeyboardType.Numpad]: MATH_ENTRY_NUMBERS_SW_KEYBOARD_GROUP,
100
103
  }),
104
+ [Locale.DE]: createKeyboardLocale({
105
+ [KeyboardType.Basic]: MATH_ENTRY_BASIC_SW_KEYBOARD_GROUP,
106
+ [KeyboardType.BasicPlus]: MATH_ENTRY_BASIC_SW_PLUS,
107
+ [KeyboardType.BasicPlusMobile]: MATH_ENTRY_BASIC_PLUS_MOBILE_SW,
108
+ [KeyboardType.BasicPlusPlus]: MATH_ENTRY_BASIC_PLUS_PLUS_SW,
109
+ [KeyboardType.BasicPlusPlusMobile]: MATH_ENTRY_BASIC_PLUS_PLUS_MOBILE_SW,
110
+ [KeyboardType.BasicUnits]: {
111
+ ...MATH_ENTRY_LENGTH_UNITS_US_KEYBOARD_GROUPS,
112
+ keys: MATH_ENTRY_LENGTH_UNITS_US_KEYBOARD_GROUPS.keys[0],
113
+ },
114
+ [KeyboardType.BasicCurrency]: MATH_CURRENCY_DE_KEYBOARD_GROUP,
115
+ [KeyboardType.BasicTime]: MATH_TIME_SW_KEYBOARD_GROUP,
116
+ [KeyboardType.Numpad]: MATH_ENTRY_NUMBERS_SW_KEYBOARD_GROUP,
117
+ }),
101
118
  }
102
119
  export const KEYBOARD_UNITS_GROUPS_BY_LOCALE: Record<
103
120
  Locale,
@@ -119,4 +136,10 @@ export const KEYBOARD_UNITS_GROUPS_BY_LOCALE: Record<
119
136
  [KeyboardUnitsGroupType.VOLUME]: MATH_ENTRY_VOLUME_UNITS_SW_KEYBOARD_GROUPS,
120
137
  [KeyboardUnitsGroupType.WEIGHT]: MATH_ENTRY_WEIGHT_UNITS_SW_KEYBOARD_GROUPS,
121
138
  }),
139
+ [Locale.DE]: createKeyboardUnitsLocale({
140
+ [KeyboardUnitsGroupType.LENGTH]: MATH_ENTRY_LENGTH_UNITS_SW_KEYBOARD_GROUPS,
141
+ [KeyboardUnitsGroupType.AREA]: MATH_ENTRY_AREA_UNITS_SW_KEYBOARD_GROUPS,
142
+ [KeyboardUnitsGroupType.VOLUME]: MATH_ENTRY_VOLUME_UNITS_SW_KEYBOARD_GROUPS,
143
+ [KeyboardUnitsGroupType.WEIGHT]: MATH_ENTRY_WEIGHT_UNITS_SW_KEYBOARD_GROUPS,
144
+ }),
122
145
  }
@@ -71,3 +71,14 @@ export function getLayoutByCharType(charType?: number) {
71
71
  }
72
72
  return AlgebraLayout
73
73
  }
74
+
75
+ export function isBasicPlusPlusLayout(charType?: number) {
76
+ if (!charType) {
77
+ return true
78
+ }
79
+
80
+ return (
81
+ KEYBOARD_LAYOUTS[KeyboardType.BasicPlusPlus].characterTypes.includes(charType) ||
82
+ KEYBOARD_LAYOUTS[KeyboardType.AlgebraAdvanced].characterTypes.includes(charType)
83
+ )
84
+ }
@@ -42,9 +42,6 @@ import { EqualsIcon } from '../../../../shared/icons/keyboard/EqualsIcon/EqualsI
42
42
  import { AbsoluteValueIcon } from '../../../../shared/icons/keyboard/AbsoluteValueIcon/AbsoluteValueIcon'
43
43
  import { IntervalIcon } from '../../../../shared/icons/keyboard/IntervalIcon/IntervalIcon'
44
44
  import { createMathKeysGroup } from './helpers'
45
- import { UnderlinedTenIcon } from '../../../../shared/icons/keyboard/UnderlinedTenIcon/UnderlinedTenIcon'
46
- import { UnderlinedOneIcon } from '../../../../shared/icons/keyboard/UnderlinedOneIcon/UnderlinedOneIcon'
47
- import { UnderlinedUIcon } from '../../../../shared/icons/keyboard/UnderlinedUIcon/UnderlinedUIcon'
48
45
 
49
46
  export const MATH_BASIC_OPERATORS = createMathKeysGroup({
50
47
  ADDITION: {
@@ -98,7 +95,7 @@ export const MATH_BASIC_OPERATORS = createMathKeysGroup({
98
95
  },
99
96
  NOT_EQUAL: {
100
97
  icon: <NotEqualIcon {...DEFAULT_KEY_ICON_PROPS} />,
101
- mathliveValue: '\\neq',
98
+ mathliveValue: '',
102
99
  katexValue: '≠',
103
100
  },
104
101
  APPROXIMATELY_EQUAL: {
@@ -113,7 +110,7 @@ export const MATH_BASIC_OPERATORS = createMathKeysGroup({
113
110
  },
114
111
  COMMA: {
115
112
  icon: <CommaIcon {...DEFAULT_KEY_ICON_PROPS} size={22} />,
116
- mathliveValue: ',',
113
+ mathliveValue: '{,}',
117
114
  katexValue: ',',
118
115
  },
119
116
  COLON: {
@@ -266,25 +263,7 @@ export const MATH_BASIC_OPERATORS = createMathKeysGroup({
266
263
  },
267
264
  INTERVAL: {
268
265
  icon: <IntervalIcon {...DEFAULT_KEY_ICON_PROPS} />,
269
- mathliveValue: '$\\left[, \\right]$',
266
+ mathliveValue: '$\\left[\\placeholder{},\\placeholder{}\\right]$',
270
267
  katexValue: '[ , ]',
271
268
  },
272
- UNDERLINED_TEN: {
273
- icon: <UnderlinedTenIcon {...DEFAULT_KEY_ICON_PROPS} />,
274
- mathliveValue: '\\underline{10}',
275
- katexValue: '10̲',
276
- spreadsheetValue: 'TEN',
277
- },
278
- UNDERLINED_ONE: {
279
- icon: <UnderlinedOneIcon {...DEFAULT_KEY_ICON_PROPS} />,
280
- mathliveValue: '\\underline{1}',
281
- katexValue: '1̲',
282
- spreadsheetValue: 'ONE_FOOT_NOTE',
283
- },
284
- UNDERLINED_U: {
285
- icon: <UnderlinedUIcon {...DEFAULT_KEY_ICON_PROPS} />,
286
- mathliveValue: '\\underline{u}',
287
- katexValue: 'U̲',
288
- spreadsheetValue: 'FRACTION',
289
- },
290
269
  })
@@ -2,6 +2,9 @@ import React from 'react'
2
2
  import { DEFAULT_KEY_ICON_PROPS } from '../../constants/constants'
3
3
  import { BackspaceIcon } from '../../../../shared/icons/keyboard/BackspaceIcon/BackspaceIcon'
4
4
  import { createMathKeysGroup } from './helpers'
5
+ import { UnderlinedTenIcon } from '../../../../shared/icons/keyboard/UnderlinedTenIcon/UnderlinedTenIcon'
6
+ import { UnderlinedOneIcon } from '../../../../shared/icons/keyboard/UnderlinedOneIcon/UnderlinedOneIcon'
7
+ import { UnderlinedUIcon } from '../../../../shared/icons/keyboard/UnderlinedUIcon/UnderlinedUIcon'
5
8
 
6
9
  export const MATH_SPECIAL_OPERATORS = createMathKeysGroup({
7
10
  LIM: {
@@ -49,4 +52,22 @@ export const MATH_SPECIAL_OPERATORS = createMathKeysGroup({
49
52
  mathliveValue: 'backspace',
50
53
  katexValue: 'backspace',
51
54
  },
55
+ UNDERLINED_TEN: {
56
+ icon: <UnderlinedTenIcon {...DEFAULT_KEY_ICON_PROPS} />,
57
+ mathliveValue: '\\underline{10}',
58
+ katexValue: '10̲',
59
+ spreadsheetValue: 'TEN',
60
+ },
61
+ UNDERLINED_ONE: {
62
+ icon: <UnderlinedOneIcon {...DEFAULT_KEY_ICON_PROPS} />,
63
+ mathliveValue: '\\underline{1}',
64
+ katexValue: '1̲',
65
+ spreadsheetValue: 'ONE_FOOT_NOTE',
66
+ },
67
+ UNDERLINED_U: {
68
+ icon: <UnderlinedUIcon {...DEFAULT_KEY_ICON_PROPS} />,
69
+ mathliveValue: '\\underline{u}',
70
+ katexValue: 'U̲',
71
+ spreadsheetValue: 'FRACTION',
72
+ },
52
73
  })
@@ -427,16 +427,31 @@ export const MATH_TIME_UNITS = createMathKeysGroup({
427
427
  label: 's',
428
428
  mathliveValue: '\\mathrm{s}',
429
429
  katexValue: 's',
430
+ style: {
431
+ button: {
432
+ width: 50,
433
+ },
434
+ },
430
435
  },
431
436
  M: {
432
437
  label: 'min',
433
438
  mathliveValue: '$\\mathrm{min}',
434
439
  katexValue: 'min',
440
+ style: {
441
+ button: {
442
+ width: 50,
443
+ },
444
+ },
435
445
  },
436
446
  H: {
437
447
  label: 'h',
438
448
  mathliveValue: '\\mathrm{h}',
439
449
  katexValue: 'h',
450
+ style: {
451
+ button: {
452
+ width: 50,
453
+ },
454
+ },
440
455
  },
441
456
  DAY: {
442
457
  label: 'day',
@@ -27,5 +27,6 @@ export enum MathEntryKeyboardGroupId {
27
27
  CURRENCY_SW = 'math-entry-currency-sw',
28
28
  CURRENCY_UK = 'math-entry-currency-uk',
29
29
  CURRENCY_US = 'math-entry-currency-us',
30
+ CURRENCY_DE = 'math-entry-currency-de',
30
31
  UNDERLINED = 'math-entry-underlined',
31
32
  }
@@ -27,12 +27,27 @@ export const getRelativeTimeText = (date: Date) => {
27
27
  const years = getYears(days)
28
28
 
29
29
  if (seconds < 60) return getText('time.justNow')
30
- if (minutes < 60)
31
- return `${minutes} ${minutes === 1 ? getText('time.minuteAgo') : getText('time.minutesAgo')}`
32
- if (hours < 24)
33
- return `${hours} ${hours === 1 ? getText('time.hourAgo') : getText('time.hoursAgo')}`
34
- if (days < 30) return `${days} ${days === 1 ? getText('time.dayAgo') : getText('time.daysAgo')}`
35
- if (months < 12)
36
- return `${months} ${months === 1 ? getText('time.monthAgo') : getText('time.monthsAgo')}`
37
- return `${years} ${years === 1 ? getText('time.yearAgo') : getText('time.yearsAgo')}`
30
+
31
+ if (minutes < 60) {
32
+ if (minutes === 1) return `1 ${getText('time.minuteAgo')}`
33
+ return getText('time.minutesAgo', { count: minutes.toString() })
34
+ }
35
+
36
+ if (hours < 24) {
37
+ if (hours === 1) return `1 ${getText('time.hourAgo')}`
38
+ return getText('time.hoursAgo', { count: hours.toString() })
39
+ }
40
+
41
+ if (days < 30) {
42
+ if (days === 1) return `1 ${getText('time.dayAgo')}`
43
+ return getText('time.daysAgo', { count: days.toString() })
44
+ }
45
+
46
+ if (months < 12) {
47
+ if (months === 1) return `1 ${getText('time.monthAgo')}`
48
+ return getText('time.monthsAgo', { count: months.toString() })
49
+ }
50
+
51
+ if (years === 1) return `1 ${getText('time.yearAgo')}`
52
+ return getText('time.yearsAgo', { count: years.toString() })
38
53
  }
@@ -0,0 +1 @@
1
+ export type WithAbortSignal<T> = T & { signal?: AbortSignal }
@@ -0,0 +1,23 @@
1
+ import { COLORS } from '@magmamath/react-native-ui'
2
+ import { IconProps } from './icon.types'
3
+ import Svg, { Path } from 'react-native-svg'
4
+ import React from 'react'
5
+
6
+ export const TimeIcon = ({ size = 20, color = COLORS.NEUTRAL_9 }: IconProps) => {
7
+ return (
8
+ <Svg width={size} height={size} viewBox="0 0 17 17" fill="none">
9
+ <Path
10
+ fillRule="evenodd"
11
+ clipRule="evenodd"
12
+ d="M7.84 1.5C4.33851 1.5 1.5 4.33851 1.5 7.84C1.5 11.3415 4.33851 14.18 7.84 14.18C11.3415 14.18 14.18 11.3415 14.18 7.84C14.18 4.33851 11.3415 1.5 7.84 1.5ZM0 7.84C0 3.51009 3.51009 0 7.84 0C12.1699 0 15.68 3.51009 15.68 7.84C15.68 12.1699 12.1699 15.68 7.84 15.68C3.51009 15.68 0 12.1699 0 7.84Z"
13
+ fill={color}
14
+ />
15
+ <Path
16
+ fillRule="evenodd"
17
+ clipRule="evenodd"
18
+ d="M7.83999 3.0826C8.2542 3.0826 8.58999 3.41839 8.58999 3.8326V7.8033L10.4859 9.42838C10.8004 9.69794 10.8368 10.1714 10.5673 10.4859C10.2977 10.8004 9.82421 10.8368 9.50972 10.5673L7.57539 8.90926C7.2673 8.64519 7.08999 8.25967 7.08999 7.85389V3.8326C7.08999 3.41839 7.42578 3.0826 7.83999 3.0826Z"
19
+ fill={color}
20
+ />
21
+ </Svg>
22
+ )
23
+ }
@@ -4,6 +4,7 @@ import GB from './localization/gb.json'
4
4
  import SW from './localization/sw.json'
5
5
  import CA from './localization/ca.json'
6
6
  import SCT from './localization/sct.json'
7
+ import DE from './localization/de.json'
7
8
 
8
9
  export const LOCALIZATION_CONFIGS = {
9
10
  [Locale.EN]: EN,
@@ -11,4 +12,5 @@ export const LOCALIZATION_CONFIGS = {
11
12
  [Locale.SW]: SW,
12
13
  [Locale.CA]: CA,
13
14
  [Locale.SCT]: SCT,
15
+ [Locale.DE]: DE,
14
16
  }
@@ -3,15 +3,15 @@
3
3
  "teacherFeedback.noComments": "No comments yet",
4
4
  "time.justNow": "just now",
5
5
  "time.minuteAgo": "minute ago",
6
- "time.minutesAgo": "minutes ago",
6
+ "time.minutesAgo": "{{count}} minutes ago",
7
7
  "time.hourAgo": "hour ago",
8
- "time.hoursAgo": "hours ago",
8
+ "time.hoursAgo": "{{count}} hours ago",
9
9
  "time.dayAgo": "day ago",
10
- "time.daysAgo": "days ago",
10
+ "time.daysAgo": "{{count}} days ago",
11
11
  "time.monthAgo": "month ago",
12
- "time.monthsAgo": "months ago",
12
+ "time.monthsAgo": "{{count}} months ago",
13
13
  "time.yearAgo": "year ago",
14
- "time.yearsAgo": "years ago",
14
+ "time.yearsAgo": "{{count}} years ago",
15
15
  "chat": {
16
16
  "anotherHint": "Give me another hint",
17
17
  "giveHint": "I need a hint",
@@ -37,6 +37,7 @@
37
37
  "length": "Length",
38
38
  "area": "Area",
39
39
  "volume": "Volume",
40
- "weight": "Weight"
40
+ "weight": "Weight",
41
+ "time": "Time"
41
42
  }
42
43
  }
@@ -0,0 +1,43 @@
1
+ {
2
+ "locale": "de-DE",
3
+ "teacherFeedback.noComments": "Noch keine Kommentare",
4
+ "time.justNow": "gerade eben",
5
+ "time.minuteAgo": "vor einer Minute",
6
+ "time.minutesAgo": "vor {{count}} Minuten",
7
+ "time.hourAgo": "vor einer Stunde",
8
+ "time.hoursAgo": "vor {{count}} Stunden",
9
+ "time.dayAgo": "vor einem Tag",
10
+ "time.daysAgo": "vor {{count}} Tagen",
11
+ "time.monthAgo": "vor einem Monat",
12
+ "time.monthsAgo": "vor {{count}} Monaten",
13
+ "time.yearAgo": "vor einem Jahr",
14
+ "time.yearsAgo": "vor {{count}} Jahren",
15
+ "chat": {
16
+ "anotherHint": "Gib mir noch einen Hinweis",
17
+ "giveHint": "Ich brauche einen Hinweis",
18
+ "giveHintOpenChat": "Ich brauche einen Hinweis",
19
+ "answerAgain": "Noch einmal antworten, um einen weiteren Hinweis zu bekommen!",
20
+ "errorMessage": "Etwas ist schiefgelaufen! Versuch es erneut",
21
+ "howCanIHelp": "Hi! Möchtest du Hilfe?",
22
+ "showError": "Fehler anzeigen",
23
+ "inputPlaceholder": "Tippe..."
24
+ },
25
+ "gifCelebrations": {
26
+ "greatStart": "Toller Start!",
27
+ "onTheWay": "Auf dem Weg!",
28
+ "almostThere": "Fast geschafft"
29
+ },
30
+ "exampleSolution": {
31
+ "exampleSolution": "Beispiellösung",
32
+ "letMeThink": "Lass mich nachdenken...",
33
+ "aha": "Aha!",
34
+ "errorMessage": "Beim Erstellen einer Beispiellösung ist etwas schiefgelaufen"
35
+ },
36
+ "keyboard": {
37
+ "length": "Länge",
38
+ "area": "Fläche",
39
+ "volume": "Volumen",
40
+ "weight": "Gewicht",
41
+ "time": "Zeit"
42
+ }
43
+ }
@@ -3,15 +3,15 @@
3
3
  "teacherFeedback.noComments": "No comments yet",
4
4
  "time.justNow": "just now",
5
5
  "time.minuteAgo": "minute ago",
6
- "time.minutesAgo": "minutes ago",
6
+ "time.minutesAgo": "{{count}} minutes ago",
7
7
  "time.hourAgo": "hour ago",
8
- "time.hoursAgo": "hours ago",
8
+ "time.hoursAgo": "{{count}} hours ago",
9
9
  "time.dayAgo": "day ago",
10
- "time.daysAgo": "days ago",
10
+ "time.daysAgo": "{{count}} days ago",
11
11
  "time.monthAgo": "month ago",
12
- "time.monthsAgo": "months ago",
12
+ "time.monthsAgo": "{{count}} months ago",
13
13
  "time.yearAgo": "year ago",
14
- "time.yearsAgo": "years ago",
14
+ "time.yearsAgo": "{{count}} years ago",
15
15
  "chat": {
16
16
  "anotherHint": "Give me another hint",
17
17
  "giveHint": "I need a hint",
@@ -37,6 +37,7 @@
37
37
  "length": "Length",
38
38
  "area": "Area",
39
39
  "volume": "Volume",
40
- "weight": "Weight"
40
+ "weight": "Weight",
41
+ "time": "Time"
41
42
  }
42
43
  }
@@ -3,15 +3,15 @@
3
3
  "teacherFeedback.noComments": "No comments yet",
4
4
  "time.justNow": "just now",
5
5
  "time.minuteAgo": "minute ago",
6
- "time.minutesAgo": "minutes ago",
6
+ "time.minutesAgo": "{{count}} minutes ago",
7
7
  "time.hourAgo": "hour ago",
8
- "time.hoursAgo": "hours ago",
8
+ "time.hoursAgo": "{{count}} hours ago",
9
9
  "time.dayAgo": "day ago",
10
- "time.daysAgo": "days ago",
10
+ "time.daysAgo": "{{count}} days ago",
11
11
  "time.monthAgo": "month ago",
12
- "time.monthsAgo": "months ago",
12
+ "time.monthsAgo": "{{count}} months ago",
13
13
  "time.yearAgo": "year ago",
14
- "time.yearsAgo": "years ago",
14
+ "time.yearsAgo": "{{count}} years ago",
15
15
  "chat": {
16
16
  "anotherHint": "Give me another hint",
17
17
  "giveHint": "I need a hint",
@@ -37,6 +37,7 @@
37
37
  "length": "Length",
38
38
  "area": "Area",
39
39
  "volume": "Volume",
40
- "weight": "Weight"
40
+ "weight": "Weight",
41
+ "time": "Time"
41
42
  }
42
43
  }
@@ -3,15 +3,15 @@
3
3
  "teacherFeedback.noComments": "No comments yet",
4
4
  "time.justNow": "just now",
5
5
  "time.minuteAgo": "minute ago",
6
- "time.minutesAgo": "minutes ago",
6
+ "time.minutesAgo": "{{count}} minutes ago",
7
7
  "time.hourAgo": "hour ago",
8
- "time.hoursAgo": "hours ago",
8
+ "time.hoursAgo": "{{count}} hours ago",
9
9
  "time.dayAgo": "day ago",
10
- "time.daysAgo": "days ago",
10
+ "time.daysAgo": "{{count}} days ago",
11
11
  "time.monthAgo": "month ago",
12
- "time.monthsAgo": "months ago",
12
+ "time.monthsAgo": "{{count}} months ago",
13
13
  "time.yearAgo": "year ago",
14
- "time.yearsAgo": "years ago",
14
+ "time.yearsAgo": "{{count}} years ago",
15
15
  "chat": {
16
16
  "anotherHint": "Give me another hint",
17
17
  "giveHint": "I need a hint",
@@ -37,6 +37,7 @@
37
37
  "length": "Length",
38
38
  "area": "Area",
39
39
  "volume": "Volume",
40
- "weight": "Weight"
40
+ "weight": "Weight",
41
+ "time": "Time"
41
42
  }
42
43
  }
@@ -3,15 +3,15 @@
3
3
  "teacherFeedback.noComments": "Inga kommentarer än",
4
4
  "time.justNow": "alldeles nyss",
5
5
  "time.minuteAgo": "minut sedan",
6
- "time.minutesAgo": "minuter sedan",
6
+ "time.minutesAgo": "{{count}} minuter sedan",
7
7
  "time.hourAgo": "timme sedan",
8
- "time.hoursAgo": "timmar sedan",
8
+ "time.hoursAgo": "{{count}} timmar sedan",
9
9
  "time.dayAgo": "dag sedan",
10
- "time.daysAgo": "dagar sedan",
10
+ "time.daysAgo": "{{count}} dagar sedan",
11
11
  "time.monthAgo": "månad sedan",
12
- "time.monthsAgo": "månader sedan",
12
+ "time.monthsAgo": "{{count}} månader sedan",
13
13
  "time.yearAgo": "år sedan",
14
- "time.yearsAgo": "år sedan",
14
+ "time.yearsAgo": "{{count}} år sedan",
15
15
  "chat": {
16
16
  "anotherHint": "Ge mig en till ledtråd",
17
17
  "giveHint": "Ge mig en ledtråd",
@@ -37,6 +37,7 @@
37
37
  "length": "Längd",
38
38
  "area": "Area",
39
39
  "volume": "Volym",
40
- "weight": "Vikt"
40
+ "weight": "Vikt",
41
+ "time": "Tid"
41
42
  }
42
43
  }
@@ -3,6 +3,8 @@ import swTranslations from './localization/sw.json'
3
3
  import gbTranslations from './localization/gb.json'
4
4
  import caTranslations from './localization/ca.json'
5
5
  import sctTranslations from './localization/sct.json'
6
+ import deTranslations from "./localization/de.json"
7
+
6
8
  import { RetrieveKeys } from '../../lib/types/keys'
7
9
  import { ISValidTranslation } from './validation.types'
8
10
 
@@ -16,6 +18,7 @@ export enum Locale {
16
18
  GB = 'en-GB',
17
19
  CA = 'en-CA',
18
20
  SCT = 'en-SCT',
21
+ DE = 'de-DE'
19
22
  }
20
23
 
21
24
  // Validation of translations, do not remove
@@ -24,3 +27,4 @@ type ISValidSW = ISValidTranslation<typeof swTranslations>
24
27
  type ISValidGB = ISValidTranslation<typeof gbTranslations>
25
28
  type ISValidCA = ISValidTranslation<typeof caTranslations>
26
29
  type ISValidSCT = ISValidTranslation<typeof sctTranslations>
30
+ type ISValidDE = ISValidTranslation<typeof deTranslations>
@@ -0,0 +1,4 @@
1
+ {
2
+ "extends": "./tsconfig",
3
+ "exclude": ["example", "dist"]
4
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "compilerOptions": {
3
+ "paths": {
4
+ "@magmamath/students-features": ["./src/index"]
5
+ },
6
+ "target": "esnext",
7
+ "baseUrl": "./",
8
+ "lib": [
9
+ "dom",
10
+ "dom.iterable",
11
+ "esnext"
12
+ ],
13
+ "declaration": true,
14
+ "allowJs": true,
15
+ "skipLibCheck": true,
16
+ "esModuleInterop": true,
17
+ "allowSyntheticDefaultImports": true,
18
+ "strict": true,
19
+ "forceConsistentCasingInFileNames": true,
20
+ "module": "esnext",
21
+ "moduleResolution": "node",
22
+ "resolveJsonModule": true,
23
+ "isolatedModules": true,
24
+ "jsx": "react",
25
+ "experimentalDecorators": true
26
+ },
27
+ "include": [
28
+ "src"
29
+ ],
30
+ "exclude": [
31
+ "node_modules",
32
+ "example"
33
+ ]
34
+ }