@magmamath/students-features 0.9.9 → 0.9.14-rc.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +15 -0
- package/.eslintignore +2 -0
- package/.eslintrc +22 -0
- package/.gitattributes +3 -0
- package/.github/actions/setup/action.yml +37 -0
- package/.github/workflows/ci.yml +73 -0
- package/.gitignore +84 -0
- package/.idea/.gitignore +8 -0
- package/.idea/codeStyles/Project.xml +62 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/copilot.data.migration.agent.xml +6 -0
- package/.idea/copilot.data.migration.ask.xml +6 -0
- package/.idea/copilot.data.migration.ask2agent.xml +6 -0
- package/.idea/copilot.data.migration.edit.xml +6 -0
- package/.idea/inspectionProfiles/Project_Default.xml +8 -0
- package/.idea/jsLinters/eslint.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/prettier.xml +7 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_29_12_2025,_13_10_[Changes]/shelved.patch +18 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_29_12_2025,_13_11_[Changes]/shelved.patch +19 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_29_12_2025__13_10__Changes_.xml +4 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_29_12_2025__13_11__Changes_.xml +4 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_30_12_2025,_11_06_[Changes]/shelved.patch +18 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_30_12_2025,_11_07_[Changes]/shelved.patch +18 -0
- package/.idea/shelf/Uncommitted_changes_before_Checkout_at_30_12_2025__11_06__Changes_.xml +4 -0
- package/.idea/students-features.iml +12 -0
- package/.idea/vcs.xml +6 -0
- package/.idea/workspace.xml +645 -0
- package/.nvmrc +1 -0
- package/.prettierrc +11 -0
- package/.release-it.json +17 -0
- package/.watchmanconfig +1 -0
- package/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +541 -0
- package/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs +28 -0
- package/.yarn/releases/yarn-3.6.1.cjs +874 -0
- package/babel.config.js +5 -0
- package/bob.config.js +25 -0
- package/dist/commonjs/features/celebrations/helpers.js +4 -1
- package/dist/commonjs/features/celebrations/helpers.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/Chatbot.js +2 -2
- package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/ChatBotModel.js +8 -6
- package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/t2s.js +4 -3
- package/dist/commonjs/features/chatbot/model/t2s.js.map +1 -1
- package/dist/commonjs/features/chatbot/types/model.types.js.map +1 -1
- package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js +3 -2
- package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -1
- package/dist/commonjs/features/feedback/model/model.js.map +1 -1
- package/dist/commonjs/features/feedback/model/sockets.js +8 -5
- package/dist/commonjs/features/feedback/model/sockets.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/BasicLayout/keyboardGroups.js +5 -1
- package/dist/commonjs/features/keyboard/components/BasicLayout/keyboardGroups.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/BasicPlusLayout/keyboardGroups.js +4 -4
- package/dist/commonjs/features/keyboard/components/BasicPlusLayout/keyboardGroups.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.js +4 -4
- package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/Keyboard.js +24 -9
- package/dist/commonjs/features/keyboard/components/Keyboard.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/{MainLayout.js → MainLayout/MainLayout.js} +9 -7
- package/dist/commonjs/features/keyboard/components/MainLayout/MainLayout.js.map +1 -0
- package/dist/commonjs/features/keyboard/components/{constants.js → MainLayout/constants.js} +7 -2
- package/dist/commonjs/features/keyboard/components/MainLayout/constants.js.map +1 -0
- package/dist/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js +3 -2
- package/dist/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/UnderlinedLayout/keyboardGroups.js +2 -1
- package/dist/commonjs/features/keyboard/components/UnderlinedLayout/keyboardGroups.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/UnitsLayout.js +2 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/UnitsLayout.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/helpers.js +3 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/helpers.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js +27 -6
- package/dist/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.js +9 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.js.map +1 -1
- package/dist/commonjs/features/keyboard/components/UnitsLayout/types.js +1 -0
- package/dist/commonjs/features/keyboard/components/UnitsLayout/types.js.map +1 -1
- package/dist/commonjs/features/keyboard/constants/keyboardGroupsByLocale.js +22 -1
- package/dist/commonjs/features/keyboard/constants/keyboardGroupsByLocale.js.map +1 -1
- package/dist/commonjs/features/keyboard/constants/keyboardLayouts.js +7 -0
- package/dist/commonjs/features/keyboard/constants/keyboardLayouts.js.map +1 -1
- package/dist/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.js +20 -30
- package/dist/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.js.map +1 -1
- package/dist/commonjs/features/keyboard/types/MathKeysGroups/specialOperators.js +27 -0
- package/dist/commonjs/features/keyboard/types/MathKeysGroups/specialOperators.js.map +1 -1
- package/dist/commonjs/features/keyboard/types/MathKeysGroups/units.js +6 -3
- package/dist/commonjs/features/keyboard/types/MathKeysGroups/units.js.map +1 -1
- package/dist/commonjs/features/keyboard/types/keyboardGroupIds.js +1 -0
- package/dist/commonjs/features/keyboard/types/keyboardGroupIds.js.map +1 -1
- package/dist/commonjs/lib/helpers/helpers.js +28 -5
- package/dist/commonjs/lib/helpers/helpers.js.map +1 -1
- package/dist/commonjs/lib/types/requests.js +2 -0
- package/dist/commonjs/lib/types/requests.js.map +1 -0
- package/dist/commonjs/shared/icons/TimeIcon.js +37 -0
- package/dist/commonjs/shared/icons/TimeIcon.js.map +1 -0
- package/dist/commonjs/shared/icons/keyboard/CDotIcon/CDotIcon.js +4 -4
- package/dist/commonjs/shared/icons/keyboard/CDotIcon/CDotIcon.js.map +1 -1
- package/dist/commonjs/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.js +32 -0
- package/dist/commonjs/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.js.map +1 -0
- package/dist/commonjs/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.js +32 -0
- package/dist/commonjs/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.js.map +1 -0
- package/dist/commonjs/shared/translation/constants.js +3 -1
- package/dist/commonjs/shared/translation/constants.js.map +1 -1
- package/dist/commonjs/shared/translation/localization/ca.json +7 -6
- package/dist/commonjs/shared/translation/localization/de.json +43 -0
- package/dist/commonjs/shared/translation/localization/en.json +7 -6
- package/dist/commonjs/shared/translation/localization/gb.json +7 -6
- package/dist/commonjs/shared/translation/localization/sct.json +7 -6
- package/dist/commonjs/shared/translation/localization/sw.json +7 -6
- package/dist/commonjs/shared/translation/types.js +1 -0
- package/dist/commonjs/shared/translation/types.js.map +1 -1
- package/dist/module/features/celebrations/helpers.js +4 -1
- package/dist/module/features/celebrations/helpers.js.map +1 -1
- package/dist/module/features/chatbot/components/Chatbot.js +2 -2
- package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
- package/dist/module/features/chatbot/model/ChatBotModel.js +8 -6
- package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
- package/dist/module/features/chatbot/model/t2s.js +4 -3
- package/dist/module/features/chatbot/model/t2s.js.map +1 -1
- package/dist/module/features/chatbot/types/model.types.js.map +1 -1
- package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js +3 -2
- package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -1
- package/dist/module/features/feedback/model/model.js.map +1 -1
- package/dist/module/features/feedback/model/sockets.js +8 -5
- package/dist/module/features/feedback/model/sockets.js.map +1 -1
- package/dist/module/features/keyboard/components/BasicLayout/keyboardGroups.js +4 -0
- package/dist/module/features/keyboard/components/BasicLayout/keyboardGroups.js.map +1 -1
- package/dist/module/features/keyboard/components/BasicPlusLayout/keyboardGroups.js +4 -4
- package/dist/module/features/keyboard/components/BasicPlusLayout/keyboardGroups.js.map +1 -1
- package/dist/module/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.js +4 -4
- package/dist/module/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.js.map +1 -1
- package/dist/module/features/keyboard/components/Keyboard.js +23 -8
- package/dist/module/features/keyboard/components/Keyboard.js.map +1 -1
- package/dist/module/features/keyboard/components/KeysList/KeysList.js.map +1 -1
- package/dist/module/features/keyboard/components/{MainLayout.js → MainLayout/MainLayout.js} +9 -7
- package/dist/module/features/keyboard/components/MainLayout/MainLayout.js.map +1 -0
- package/dist/module/features/keyboard/components/{constants.js → MainLayout/constants.js} +6 -1
- package/dist/module/features/keyboard/components/MainLayout/constants.js.map +1 -0
- package/dist/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js +3 -2
- package/dist/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js.map +1 -1
- package/dist/module/features/keyboard/components/UnderlinedLayout/keyboardGroups.js +2 -1
- package/dist/module/features/keyboard/components/UnderlinedLayout/keyboardGroups.js.map +1 -1
- package/dist/module/features/keyboard/components/UnitsLayout/UnitsLayout.js +2 -1
- package/dist/module/features/keyboard/components/UnitsLayout/UnitsLayout.js.map +1 -1
- package/dist/module/features/keyboard/components/UnitsLayout/helpers.js +2 -1
- package/dist/module/features/keyboard/components/UnitsLayout/helpers.js.map +1 -1
- package/dist/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js +27 -6
- package/dist/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.js.map +1 -1
- package/dist/module/features/keyboard/components/UnitsLayout/keyboardGroups.js +9 -1
- package/dist/module/features/keyboard/components/UnitsLayout/keyboardGroups.js.map +1 -1
- package/dist/module/features/keyboard/components/UnitsLayout/types.js +1 -0
- package/dist/module/features/keyboard/components/UnitsLayout/types.js.map +1 -1
- package/dist/module/features/keyboard/constants/keyboardGroupsByLocale.js +24 -3
- package/dist/module/features/keyboard/constants/keyboardGroupsByLocale.js.map +1 -1
- package/dist/module/features/keyboard/constants/keyboardLayouts.js +6 -0
- package/dist/module/features/keyboard/constants/keyboardLayouts.js.map +1 -1
- package/dist/module/features/keyboard/types/MathKeysGroups/basicOperators.js +20 -30
- package/dist/module/features/keyboard/types/MathKeysGroups/basicOperators.js.map +1 -1
- package/dist/module/features/keyboard/types/MathKeysGroups/specialOperators.js +27 -0
- package/dist/module/features/keyboard/types/MathKeysGroups/specialOperators.js.map +1 -1
- package/dist/module/features/keyboard/types/MathKeysGroups/units.js +6 -3
- package/dist/module/features/keyboard/types/MathKeysGroups/units.js.map +1 -1
- package/dist/module/features/keyboard/types/keyboardGroupIds.js +1 -0
- package/dist/module/features/keyboard/types/keyboardGroupIds.js.map +1 -1
- package/dist/module/lib/helpers/helpers.js +28 -5
- package/dist/module/lib/helpers/helpers.js.map +1 -1
- package/dist/module/lib/types/requests.js +2 -0
- package/dist/module/lib/types/requests.js.map +1 -0
- package/dist/module/shared/icons/TimeIcon.js +29 -0
- package/dist/module/shared/icons/TimeIcon.js.map +1 -0
- package/dist/module/shared/icons/keyboard/CDotIcon/CDotIcon.js +4 -4
- package/dist/module/shared/icons/keyboard/CDotIcon/CDotIcon.js.map +1 -1
- package/dist/module/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.js +24 -0
- package/dist/module/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.js.map +1 -0
- package/dist/module/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.js +24 -0
- package/dist/module/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.js.map +1 -0
- package/dist/module/shared/translation/constants.js +3 -1
- package/dist/module/shared/translation/constants.js.map +1 -1
- package/dist/module/shared/translation/localization/ca.json +7 -6
- package/dist/module/shared/translation/localization/de.json +43 -0
- package/dist/module/shared/translation/localization/en.json +7 -6
- package/dist/module/shared/translation/localization/gb.json +7 -6
- package/dist/module/shared/translation/localization/sct.json +7 -6
- package/dist/module/shared/translation/localization/sw.json +7 -6
- package/dist/module/shared/translation/types.js +1 -0
- package/dist/module/shared/translation/types.js.map +1 -1
- package/dist/typescript/commonjs/features/celebrations/helpers.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts +8 -7
- package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/ChatbotApi.d.ts +2 -2
- package/dist/typescript/commonjs/features/chatbot/model/ChatbotApi.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts +11 -1
- package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts +8 -5
- package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/model/model.d.ts +4 -1
- package/dist/typescript/commonjs/features/feedback/model/model.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/model/sockets.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/BasicLayout/keyboardGroups.d.ts +1 -0
- package/dist/typescript/commonjs/features/keyboard/components/BasicLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/BasicPlusLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/Keyboard.d.ts +3 -2
- package/dist/typescript/commonjs/features/keyboard/components/Keyboard.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/{MainLayout.d.ts → MainLayout/MainLayout.d.ts} +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -0
- package/dist/typescript/{module/features/keyboard/components → commonjs/features/keyboard/components/MainLayout}/constants.d.ts +5 -0
- package/dist/typescript/commonjs/features/keyboard/components/MainLayout/constants.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.d.ts +5 -1
- package/dist/typescript/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/UnderlinedLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/helpers.d.ts +1 -0
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/helpers.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts +4 -7
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts +1 -0
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/types.d.ts +7 -1
- package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/types.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/constants/keyboardGroupsByLocale.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/constants/keyboardLayouts.d.ts +1 -0
- package/dist/typescript/commonjs/features/keyboard/constants/keyboardLayouts.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.d.ts +5 -13
- package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/basicOperators.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/specialOperators.d.ts +18 -0
- package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/specialOperators.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/units.d.ts +36 -0
- package/dist/typescript/commonjs/features/keyboard/types/MathKeysGroups/units.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/keyboard/types/keyboardGroupIds.d.ts +1 -0
- package/dist/typescript/commonjs/features/keyboard/types/keyboardGroupIds.d.ts.map +1 -1
- package/dist/typescript/commonjs/lib/helpers/helpers.d.ts.map +1 -1
- package/dist/typescript/commonjs/lib/types/requests.d.ts +4 -0
- package/dist/typescript/commonjs/lib/types/requests.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/icons/TimeIcon.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/TimeIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.d.ts +4 -0
- package/dist/typescript/commonjs/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/shared/translation/constants.d.ts +48 -0
- package/dist/typescript/commonjs/shared/translation/constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/shared/translation/model.d.ts +2 -0
- package/dist/typescript/commonjs/shared/translation/model.d.ts.map +1 -1
- package/dist/typescript/commonjs/shared/translation/types.d.ts +2 -1
- package/dist/typescript/commonjs/shared/translation/types.d.ts.map +1 -1
- package/dist/typescript/module/features/celebrations/helpers.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts +8 -7
- package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/ChatbotApi.d.ts +2 -2
- package/dist/typescript/module/features/chatbot/model/ChatbotApi.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/t2s.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/types/api.types.d.ts +11 -1
- package/dist/typescript/module/features/chatbot/types/api.types.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/types/model.types.d.ts +8 -5
- package/dist/typescript/module/features/chatbot/types/model.types.d.ts.map +1 -1
- package/dist/typescript/module/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/model/model.d.ts +4 -1
- package/dist/typescript/module/features/feedback/model/model.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/model/sockets.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/BasicLayout/keyboardGroups.d.ts +1 -0
- package/dist/typescript/module/features/keyboard/components/BasicLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/BasicPlusLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/Keyboard.d.ts +3 -2
- package/dist/typescript/module/features/keyboard/components/Keyboard.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/{MainLayout.d.ts → MainLayout/MainLayout.d.ts} +1 -1
- package/dist/typescript/module/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -0
- package/dist/typescript/{commonjs/features/keyboard/components → module/features/keyboard/components/MainLayout}/constants.d.ts +5 -0
- package/dist/typescript/module/features/keyboard/components/MainLayout/constants.d.ts.map +1 -0
- package/dist/typescript/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.d.ts +5 -1
- package/dist/typescript/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/UnderlinedLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/helpers.d.ts +1 -0
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/helpers.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts +4 -7
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts +1 -0
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/keyboardGroups.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/types.d.ts +7 -1
- package/dist/typescript/module/features/keyboard/components/UnitsLayout/types.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/constants/keyboardGroupsByLocale.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/constants/keyboardLayouts.d.ts +1 -0
- package/dist/typescript/module/features/keyboard/constants/keyboardLayouts.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/types/MathKeysGroups/basicOperators.d.ts +5 -13
- package/dist/typescript/module/features/keyboard/types/MathKeysGroups/basicOperators.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/types/MathKeysGroups/specialOperators.d.ts +18 -0
- package/dist/typescript/module/features/keyboard/types/MathKeysGroups/specialOperators.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/types/MathKeysGroups/units.d.ts +36 -0
- package/dist/typescript/module/features/keyboard/types/MathKeysGroups/units.d.ts.map +1 -1
- package/dist/typescript/module/features/keyboard/types/keyboardGroupIds.d.ts +1 -0
- package/dist/typescript/module/features/keyboard/types/keyboardGroupIds.d.ts.map +1 -1
- package/dist/typescript/module/lib/helpers/helpers.d.ts.map +1 -1
- package/dist/typescript/module/lib/types/requests.d.ts +4 -0
- package/dist/typescript/module/lib/types/requests.d.ts.map +1 -0
- package/dist/typescript/module/shared/icons/TimeIcon.d.ts +4 -0
- package/dist/typescript/module/shared/icons/TimeIcon.d.ts.map +1 -0
- package/dist/typescript/module/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.d.ts +4 -0
- package/dist/typescript/module/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.d.ts.map +1 -0
- package/dist/typescript/module/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.d.ts +4 -0
- package/dist/typescript/module/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.d.ts.map +1 -0
- package/dist/typescript/module/shared/translation/constants.d.ts +48 -0
- package/dist/typescript/module/shared/translation/constants.d.ts.map +1 -1
- package/dist/typescript/module/shared/translation/model.d.ts +2 -0
- package/dist/typescript/module/shared/translation/model.d.ts.map +1 -1
- package/dist/typescript/module/shared/translation/types.d.ts +2 -1
- package/dist/typescript/module/shared/translation/types.d.ts.map +1 -1
- package/example/.expo/README.md +8 -0
- package/example/.expo/devices.json +3 -0
- package/example/.expo/web/cache/production/images/favicon/favicon-24272cdaeff82cc5facdaccd982a6f05b60c4504704bbf94c19a6388659880bb-contain-transparent/favicon-48.png +0 -0
- package/example/app.json +30 -0
- package/example/assets/adaptive-icon.png +0 -0
- package/example/assets/favicon.png +0 -0
- package/example/assets/icon.png +0 -0
- package/example/assets/splash-icon.png +0 -0
- package/example/babel.config.js +28 -0
- package/example/index.js +8 -0
- package/example/metro.config.js +18 -0
- package/example/package.json +25 -0
- package/example/src/App.tsx +8 -0
- package/example/tsconfig.json +6 -0
- package/example/yarn.lock +6552 -0
- package/package.json +1 -1
- package/src/features/celebrations/helpers.ts +35 -33
- package/src/features/chatbot/components/Chatbot.tsx +2 -2
- package/src/features/chatbot/model/ChatBotModel.ts +10 -5
- package/src/features/chatbot/model/t2s.ts +3 -2
- package/src/features/chatbot/types/api.types.ts +14 -1
- package/src/features/chatbot/types/model.types.ts +12 -5
- package/src/features/endOfAssignment/ui/PracticeButtonGroup.tsx +4 -3
- package/src/features/feedback/model/model.ts +4 -1
- package/src/features/feedback/model/sockets.ts +8 -6
- package/src/features/keyboard/components/BasicLayout/keyboardGroups.ts +4 -0
- package/src/features/keyboard/components/BasicPlusLayout/keyboardGroups.ts +26 -16
- package/src/features/keyboard/components/BasicPlusPlusLayout/keyboardGroups.ts +30 -24
- package/src/features/keyboard/components/Keyboard.tsx +44 -11
- package/src/features/keyboard/components/KeysList/KeysList.tsx +1 -1
- package/src/features/keyboard/components/{MainLayout.tsx → MainLayout/MainLayout.tsx} +6 -7
- package/src/features/keyboard/components/{constants.ts → MainLayout/constants.ts} +6 -1
- package/src/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.tsx +7 -2
- package/src/features/keyboard/components/UnderlinedLayout/keyboardGroups.ts +5 -3
- package/src/features/keyboard/components/UnitsLayout/UnitsLayout.tsx +1 -0
- package/src/features/keyboard/components/UnitsLayout/helpers.tsx +3 -0
- package/src/features/keyboard/components/UnitsLayout/hooks/useUnitTabs.ts +36 -22
- package/src/features/keyboard/components/UnitsLayout/keyboardGroups.ts +11 -0
- package/src/features/keyboard/components/UnitsLayout/types.ts +7 -0
- package/src/features/keyboard/constants/keyboardGroupsByLocale.ts +23 -0
- package/src/features/keyboard/constants/keyboardLayouts.ts +11 -0
- package/src/features/keyboard/types/MathKeysGroups/basicOperators.tsx +15 -24
- package/src/features/keyboard/types/MathKeysGroups/specialOperators.tsx +21 -0
- package/src/features/keyboard/types/MathKeysGroups/units.tsx +3 -0
- package/src/features/keyboard/types/keyboardGroupIds.ts +1 -0
- package/src/lib/helpers/helpers.ts +23 -8
- package/src/lib/types/requests.ts +1 -0
- package/src/shared/icons/TimeIcon.tsx +23 -0
- package/src/shared/icons/keyboard/CDotIcon/CDotIcon.tsx +2 -2
- package/src/shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon.tsx +18 -0
- package/src/shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon.tsx +18 -0
- package/src/shared/translation/constants.ts +2 -0
- package/src/shared/translation/localization/ca.json +7 -6
- package/src/shared/translation/localization/de.json +43 -0
- package/src/shared/translation/localization/en.json +7 -6
- package/src/shared/translation/localization/gb.json +7 -6
- package/src/shared/translation/localization/sct.json +7 -6
- package/src/shared/translation/localization/sw.json +7 -6
- package/src/shared/translation/types.ts +4 -0
- package/tsconfig.build.json +4 -0
- package/tsconfig.json +34 -0
- package/yarn.lock +8623 -0
- package/dist/commonjs/features/keyboard/components/MainLayout.js.map +0 -1
- package/dist/commonjs/features/keyboard/components/constants.js.map +0 -1
- package/dist/module/features/keyboard/components/MainLayout.js.map +0 -1
- package/dist/module/features/keyboard/components/constants.js.map +0 -1
- package/dist/typescript/commonjs/features/keyboard/components/MainLayout.d.ts.map +0 -1
- package/dist/typescript/commonjs/features/keyboard/components/constants.d.ts.map +0 -1
- package/dist/typescript/module/features/keyboard/components/MainLayout.d.ts.map +0 -1
- package/dist/typescript/module/features/keyboard/components/constants.d.ts.map +0 -1
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import React, { useMemo } from 'react'
|
|
2
|
-
import { StyleProp, StyleSheet, useWindowDimensions, ViewStyle } from 'react-native'
|
|
3
|
-
import { COLORS, IS_MOBILE, SelectOptionColor, SHADOWS } from '@magmamath/react-native-ui'
|
|
4
|
-
import { KeyboardKey, KeyboardKeyValue } from '../types
|
|
1
|
+
import React, { useEffect, useMemo, useRef } from 'react'
|
|
2
|
+
import { Animated, StyleProp, StyleSheet, useWindowDimensions, ViewStyle } from 'react-native'
|
|
3
|
+
import { COLORS, IS_MOBILE, IS_WEB, SelectOptionColor, SHADOWS } from '@magmamath/react-native-ui'
|
|
4
|
+
import { KeyboardKey, KeyboardKeyValue } from '../types'
|
|
5
5
|
import { Numpad } from './Numpad/Numpad'
|
|
6
|
+
import { MainLayout } from './MainLayout/MainLayout'
|
|
7
|
+
import {
|
|
8
|
+
getLayoutConfigStyles,
|
|
9
|
+
KEYBOARD_SLIDE_DISTANCE,
|
|
10
|
+
slideInAnimationSettings,
|
|
11
|
+
} from './MainLayout/constants'
|
|
6
12
|
import { MOBILE_LAYOUT_WIDTH } from '../constants/constants'
|
|
7
|
-
import { getLayoutConfigStyles } from './constants'
|
|
8
|
-
import { MainLayout } from './MainLayout'
|
|
9
|
-
import Animated, { SlideInDown } from 'react-native-reanimated'
|
|
10
13
|
|
|
11
14
|
type KeyboardProps = {
|
|
12
15
|
onKeyPress: (key: KeyboardKeyValue) => void
|
|
@@ -14,11 +17,19 @@ type KeyboardProps = {
|
|
|
14
17
|
style?: StyleProp<ViewStyle>
|
|
15
18
|
color?: SelectOptionColor
|
|
16
19
|
isDisabled?: boolean
|
|
20
|
+
isMainLayoutDisabled?: boolean
|
|
17
21
|
showUnderlinedKeys?: boolean
|
|
18
22
|
disabledKeys?: KeyboardKey[]
|
|
19
23
|
}
|
|
20
24
|
|
|
21
|
-
export const Keyboard = ({
|
|
25
|
+
export const Keyboard = ({
|
|
26
|
+
style,
|
|
27
|
+
characterType,
|
|
28
|
+
isMainLayoutDisabled,
|
|
29
|
+
...props
|
|
30
|
+
}: KeyboardProps) => {
|
|
31
|
+
const slideAnim = useRef(new Animated.Value(KEYBOARD_SLIDE_DISTANCE)).current
|
|
32
|
+
|
|
22
33
|
const { width } = useWindowDimensions()
|
|
23
34
|
const isMobile = width <= MOBILE_LAYOUT_WIDTH || IS_MOBILE
|
|
24
35
|
const mobileStyles = useMemo(
|
|
@@ -26,12 +37,34 @@ export const Keyboard = ({ style, characterType, ...props }: KeyboardProps) => {
|
|
|
26
37
|
[characterType, isMobile],
|
|
27
38
|
)
|
|
28
39
|
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
const anim = Animated.spring(slideAnim, {
|
|
42
|
+
...slideInAnimationSettings,
|
|
43
|
+
mass: 1,
|
|
44
|
+
velocity: 0,
|
|
45
|
+
useNativeDriver: !IS_WEB,
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
anim.start()
|
|
49
|
+
|
|
50
|
+
return () => anim.stop()
|
|
51
|
+
}, [])
|
|
52
|
+
|
|
29
53
|
return (
|
|
30
54
|
<Animated.View
|
|
31
|
-
style={[
|
|
32
|
-
|
|
55
|
+
style={[
|
|
56
|
+
styles.container,
|
|
57
|
+
style,
|
|
58
|
+
{
|
|
59
|
+
transform: [{ translateY: slideAnim }],
|
|
60
|
+
},
|
|
61
|
+
]}
|
|
33
62
|
>
|
|
34
|
-
<MainLayout
|
|
63
|
+
<MainLayout
|
|
64
|
+
{...props}
|
|
65
|
+
isDisabled={isMainLayoutDisabled || props.isDisabled}
|
|
66
|
+
characterType={characterType}
|
|
67
|
+
/>
|
|
35
68
|
<Numpad {...props} style={mobileStyles} />
|
|
36
69
|
</Animated.View>
|
|
37
70
|
)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React, { useEffect, useMemo, useRef, useState, useCallback } from 'react'
|
|
2
2
|
import { Animated, StyleSheet, useWindowDimensions, View } from 'react-native'
|
|
3
3
|
import { SelectOptionColor, IS_MOBILE, IS_WEB } from '@magmamath/react-native-ui'
|
|
4
|
-
import { getLayoutByCharType } from '
|
|
5
|
-
import { KeyboardKey, KeyboardKeyValue } from '
|
|
6
|
-
import { UnderlinedLayout } from '
|
|
7
|
-
import { MOBILE_LAYOUT_WIDTH } from '
|
|
4
|
+
import { getLayoutByCharType, isBasicPlusPlusLayout } from '../../constants/keyboardLayouts'
|
|
5
|
+
import { KeyboardKey, KeyboardKeyValue } from '../../types/types'
|
|
6
|
+
import { UnderlinedLayout } from '../UnderlinedLayout/UnderlinedLayout'
|
|
7
|
+
import { MOBILE_LAYOUT_WIDTH } from '../../constants/constants'
|
|
8
8
|
|
|
9
9
|
type LayoutProps = {
|
|
10
10
|
onKeyPress: (key: KeyboardKeyValue) => void
|
|
@@ -60,11 +60,11 @@ export const MainLayout = ({
|
|
|
60
60
|
}, [showUnderlinedKeys, animateFade])
|
|
61
61
|
|
|
62
62
|
return (
|
|
63
|
-
<View style={styles.container}>
|
|
63
|
+
<View style={[styles.container, IS_MOBILE && { flex: 1 }]}>
|
|
64
64
|
<Layout {...props} onLayoutChange={setIsSecondaryLayoutSelected} />
|
|
65
65
|
{isUnderlinedLayoutVisible && (
|
|
66
66
|
<Animated.View style={{ opacity: fadeAnim }}>
|
|
67
|
-
<UnderlinedLayout {...props} />
|
|
67
|
+
<UnderlinedLayout {...props} showSlashKey={!isBasicPlusPlusLayout(characterType)} />
|
|
68
68
|
</Animated.View>
|
|
69
69
|
)}
|
|
70
70
|
</View>
|
|
@@ -74,6 +74,5 @@ export const MainLayout = ({
|
|
|
74
74
|
const styles = StyleSheet.create({
|
|
75
75
|
container: {
|
|
76
76
|
flexDirection: 'row',
|
|
77
|
-
flex: 1,
|
|
78
77
|
},
|
|
79
78
|
})
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { COLORS, SPACING } from '@magmamath/react-native-ui'
|
|
2
|
-
import { KEYBOARD_LAYOUTS } from '
|
|
2
|
+
import { KEYBOARD_LAYOUTS } from '../../constants/keyboardLayouts'
|
|
3
3
|
|
|
4
4
|
export const KEYBOARD_SLIDE_DISTANCE = 600
|
|
5
5
|
|
|
@@ -20,3 +20,8 @@ export const getLayoutConfigStyles = (characterType?: number, isMobile?: boolean
|
|
|
20
20
|
|
|
21
21
|
return LAYOUT_STYLES_CONFIG.DEFAULT
|
|
22
22
|
}
|
|
23
|
+
export const slideInAnimationSettings = {
|
|
24
|
+
toValue: 0,
|
|
25
|
+
stiffness: 320,
|
|
26
|
+
damping: 40,
|
|
27
|
+
}
|
|
@@ -4,9 +4,14 @@ import { KeyboardLayoutProps, KeyboardType } from '../../types/types'
|
|
|
4
4
|
import { Locale, useText } from '../../../../shared/translation'
|
|
5
5
|
import { getKeyboardGroup } from '../../helpers'
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
type UnderlinedLayoutProps = {
|
|
8
|
+
showSlashKey?: boolean
|
|
9
|
+
} & KeyboardLayoutProps
|
|
10
|
+
|
|
11
|
+
export const UnderlinedLayout = (props: UnderlinedLayoutProps) => {
|
|
8
12
|
const t = useText()
|
|
9
13
|
const keysGroup = getKeyboardGroup(t('locale') as Locale, KeyboardType.Underlined)
|
|
14
|
+
const keys = props.showSlashKey ? keysGroup.keys : keysGroup.keys.slice(0, -1)
|
|
10
15
|
|
|
11
|
-
return <KeysList keys={
|
|
16
|
+
return <KeysList keys={keys} numOfRows={props.showSlashKey ? 2 : keys.length} {...props} />
|
|
12
17
|
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { KeyboardGroup } from '../../types/types'
|
|
2
2
|
import { MathEntryKeyboardGroupId } from '../../types/keyboardGroupIds'
|
|
3
3
|
import { MATH_BASIC_OPERATORS } from '../../types/MathKeysGroups/basicOperators'
|
|
4
|
+
import { MATH_SPECIAL_OPERATORS } from '../../types/MathKeysGroups/specialOperators'
|
|
4
5
|
|
|
5
6
|
export const MATH_ENTRY_UNDERLINED_KEYBOARD_GROUP: KeyboardGroup = {
|
|
6
7
|
id: MathEntryKeyboardGroupId.UNDERLINED,
|
|
7
8
|
keys: [
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
MATH_SPECIAL_OPERATORS.UNDERLINED_TEN,
|
|
10
|
+
MATH_SPECIAL_OPERATORS.UNDERLINED_U,
|
|
11
|
+
MATH_SPECIAL_OPERATORS.UNDERLINED_ONE,
|
|
12
|
+
MATH_BASIC_OPERATORS.SLASH,
|
|
11
13
|
],
|
|
12
14
|
}
|
|
@@ -1,32 +1,46 @@
|
|
|
1
1
|
import { useText } from '../../../../../shared/translation'
|
|
2
2
|
import { useMemo, useState } from 'react'
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import {
|
|
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
|
|
10
|
+
const { width } = useWindowDimensions()
|
|
11
|
+
|
|
12
|
+
const allTabs = useMemo<UnitTab[]>(
|
|
10
13
|
() => [
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
31
|
-
|
|
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
|
}
|
|
@@ -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
|
+
minBreakpoint?: 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,8 @@ 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 {
|
|
46
|
-
import {
|
|
47
|
-
import { UnderlinedUIcon } from '../../../../shared/icons/keyboard/UnderlinedUIcon/UnderlinedUIcon'
|
|
45
|
+
import { RoundBracketLeftIcon } from '../../../../shared/icons/keyboard/RoundBracketLeftIcon/RoundBracketLeftIcon'
|
|
46
|
+
import { RoundBracketRightIcon } from '../../../../shared/icons/keyboard/RoundBracketRightIcon/RoundBracketRightIcon'
|
|
48
47
|
|
|
49
48
|
export const MATH_BASIC_OPERATORS = createMathKeysGroup({
|
|
50
49
|
ADDITION: {
|
|
@@ -98,7 +97,7 @@ export const MATH_BASIC_OPERATORS = createMathKeysGroup({
|
|
|
98
97
|
},
|
|
99
98
|
NOT_EQUAL: {
|
|
100
99
|
icon: <NotEqualIcon {...DEFAULT_KEY_ICON_PROPS} />,
|
|
101
|
-
mathliveValue: '
|
|
100
|
+
mathliveValue: '≠',
|
|
102
101
|
katexValue: '≠',
|
|
103
102
|
},
|
|
104
103
|
APPROXIMATELY_EQUAL: {
|
|
@@ -122,7 +121,7 @@ export const MATH_BASIC_OPERATORS = createMathKeysGroup({
|
|
|
122
121
|
katexValue: ':',
|
|
123
122
|
},
|
|
124
123
|
C_DOT: {
|
|
125
|
-
icon: <CDotIcon {...DEFAULT_KEY_ICON_PROPS} />,
|
|
124
|
+
icon: <CDotIcon {...DEFAULT_KEY_ICON_PROPS} size={6} />,
|
|
126
125
|
mathliveValue: '\\cdot',
|
|
127
126
|
katexValue: '⋅',
|
|
128
127
|
},
|
|
@@ -254,6 +253,16 @@ export const MATH_BASIC_OPERATORS = createMathKeysGroup({
|
|
|
254
253
|
mathliveValue: '$\\left(#@\\right)$',
|
|
255
254
|
katexValue: '( )',
|
|
256
255
|
},
|
|
256
|
+
ROUND_BRACKET_RIGHT: {
|
|
257
|
+
icon: <RoundBracketRightIcon {...DEFAULT_KEY_ICON_PROPS} />,
|
|
258
|
+
mathliveValue: ')',
|
|
259
|
+
katexValue: ')',
|
|
260
|
+
},
|
|
261
|
+
ROUND_BRACKET_LEFT: {
|
|
262
|
+
icon: <RoundBracketLeftIcon {...DEFAULT_KEY_ICON_PROPS} />,
|
|
263
|
+
mathliveValue: '(',
|
|
264
|
+
katexValue: '(',
|
|
265
|
+
},
|
|
257
266
|
ORDERED_PAIR: {
|
|
258
267
|
icon: <OrderedPairIcon {...DEFAULT_KEY_ICON_PROPS} size={20} extraColor={COLORS.NEUTRAL_6} />,
|
|
259
268
|
mathliveValue: '$\\left(\\placeholder{},\\placeholder{}\\right)$',
|
|
@@ -266,25 +275,7 @@ export const MATH_BASIC_OPERATORS = createMathKeysGroup({
|
|
|
266
275
|
},
|
|
267
276
|
INTERVAL: {
|
|
268
277
|
icon: <IntervalIcon {...DEFAULT_KEY_ICON_PROPS} />,
|
|
269
|
-
mathliveValue: '$\\left[
|
|
278
|
+
mathliveValue: '$\\left[\\placeholder{},\\placeholder{}\\right]$',
|
|
270
279
|
katexValue: '[ , ]',
|
|
271
280
|
},
|
|
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
281
|
})
|
|
@@ -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,19 @@ export const MATH_TIME_UNITS = createMathKeysGroup({
|
|
|
427
427
|
label: 's',
|
|
428
428
|
mathliveValue: '\\mathrm{s}',
|
|
429
429
|
katexValue: 's',
|
|
430
|
+
style: STYLE_PRESETS.LARGE,
|
|
430
431
|
},
|
|
431
432
|
M: {
|
|
432
433
|
label: 'min',
|
|
433
434
|
mathliveValue: '$\\mathrm{min}',
|
|
434
435
|
katexValue: 'min',
|
|
436
|
+
style: STYLE_PRESETS.LARGE,
|
|
435
437
|
},
|
|
436
438
|
H: {
|
|
437
439
|
label: 'h',
|
|
438
440
|
mathliveValue: '\\mathrm{h}',
|
|
439
441
|
katexValue: 'h',
|
|
442
|
+
style: STYLE_PRESETS.LARGE,
|
|
440
443
|
},
|
|
441
444
|
DAY: {
|
|
442
445
|
label: 'day',
|
|
@@ -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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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,8 +4,8 @@ import Svg, { Circle } from 'react-native-svg'
|
|
|
4
4
|
|
|
5
5
|
export const CDotIcon = ({ size = 20, color }: IconProps) => {
|
|
6
6
|
return (
|
|
7
|
-
<Svg width={size} height={size} viewBox="0 0
|
|
8
|
-
<Circle cx="
|
|
7
|
+
<Svg width={size} height={size} viewBox="0 0 6 6" fill="none">
|
|
8
|
+
<Circle cx="3.00001" cy="3.00001" r="3.00001" fill={color} />
|
|
9
9
|
</Svg>
|
|
10
10
|
)
|
|
11
11
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { IconProps } from '../../icon.types'
|
|
3
|
+
import Svg, { Path } from 'react-native-svg'
|
|
4
|
+
|
|
5
|
+
const ASPECT_RATIO = 5 / 14
|
|
6
|
+
|
|
7
|
+
export const RoundBracketLeftIcon = ({ size = 20, color }: IconProps) => {
|
|
8
|
+
return (
|
|
9
|
+
<Svg width={size * ASPECT_RATIO} height={size} viewBox="0 0 5 14" fill="none">
|
|
10
|
+
<Path
|
|
11
|
+
fillRule="evenodd"
|
|
12
|
+
clipRule="evenodd"
|
|
13
|
+
d="M3.90533 0.21967C4.19823 0.512563 4.19823 0.987437 3.90533 1.28033C0.67361 4.51206 0.736927 10.001 3.8631 12.6806C4.17759 12.9501 4.21401 13.4236 3.94445 13.7381C3.67488 14.0526 3.20141 14.089 2.88691 13.8194C-0.986916 10.499 -0.923598 3.98794 2.84467 0.21967C3.13757 -0.0732233 3.61244 -0.0732233 3.90533 0.21967Z"
|
|
14
|
+
fill={color}
|
|
15
|
+
/>
|
|
16
|
+
</Svg>
|
|
17
|
+
)
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { IconProps } from '../../icon.types'
|
|
3
|
+
import Svg, { Path } from 'react-native-svg'
|
|
4
|
+
|
|
5
|
+
const ASPECT_RATIO = 5 / 14
|
|
6
|
+
|
|
7
|
+
export const RoundBracketRightIcon = ({ size = 20, color }: IconProps) => {
|
|
8
|
+
return (
|
|
9
|
+
<Svg width={size * ASPECT_RATIO} height={size} viewBox="0 0 5 14" fill="none">
|
|
10
|
+
<Path
|
|
11
|
+
fillRule="evenodd"
|
|
12
|
+
clipRule="evenodd"
|
|
13
|
+
d="M0.219696 0.21967C-0.0731974 0.512563 -0.0731974 0.987437 0.219696 1.28033C3.45142 4.51206 3.3881 10.001 0.261932 12.6806C-0.0525622 12.9501 -0.0889835 13.4236 0.180583 13.7381C0.45015 14.0526 0.923625 14.089 1.23812 13.8194C5.11195 10.499 5.04863 3.98794 1.28036 0.21967C0.987463 -0.0732233 0.512589 -0.0732233 0.219696 0.21967Z"
|
|
14
|
+
fill={color}
|
|
15
|
+
/>
|
|
16
|
+
</Svg>
|
|
17
|
+
)
|
|
18
|
+
}
|
|
@@ -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
|
}
|