gitextract_i5_to3kl/ ├── .circleci/ │ └── config.yml ├── .dockerignore ├── .editorconfig ├── .eslintrc ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE.md │ ├── copilot-instructions.md │ ├── prompts/ │ │ └── tests.prompt.md │ └── workflows/ │ └── codeql-analysis.yml ├── .gitignore ├── .grenrc.json ├── .nvmrc ├── .prettierrc ├── .vscode/ │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── CBOARD_SYMBOLS_INTEGRATION.md ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE.txt ├── Makefile ├── README.md ├── __mocks__/ │ ├── browser-image-resizer.js │ ├── react-redux.js │ └── undici.js ├── browserstack.yml ├── cboard.njsproj.user ├── craco.config.js ├── env/ │ ├── local-private.gpg │ ├── local.js │ ├── prod-private.gpg │ └── prod.js ├── funding.json ├── package.json ├── playwright.config.ts ├── public/ │ ├── .well-known/ │ │ └── assetlinks.json │ ├── _redirects │ ├── index.html │ ├── manifest.json │ └── ogv/ │ ├── ogv-decoder-audio-opus-wasm.js │ ├── ogv-decoder-audio-opus-wasm.wasm │ ├── ogv-demuxer-ogg-wasm.js │ ├── ogv-demuxer-ogg-wasm.wasm │ └── ogv-worker-audio.js ├── roadmap.md ├── rootfs/ │ └── etc/ │ └── nginx/ │ └── conf.d/ │ ├── default.conf │ └── gzip.conf ├── scripts/ │ ├── arasaac-create-files.js │ ├── arasaac-download-symbols.js │ ├── crowdin-fetch-latest.js │ ├── crowdin-push-changes.js │ ├── decrypt-private.sh │ └── encrypt-private.sh ├── src/ │ ├── __mocks__/ │ │ ├── axios.js │ │ ├── react-intl.js │ │ ├── store.js │ │ └── styleMock.js │ ├── __test__/ │ │ ├── helpers.test.js │ │ ├── i18n.test.js │ │ ├── reducers.test.js │ │ ├── registerServiceWorker.test.js │ │ └── store.test.js │ ├── analytics.js │ ├── api/ │ │ ├── __mocks__/ │ │ │ └── api.js │ │ ├── api.js │ │ ├── api.test.js │ │ ├── boards.json │ │ ├── cboard-symbols.js │ │ ├── communicators.json │ │ ├── corePicSeePal.json │ │ ├── index.js │ │ └── mulberry-symbols.json │ ├── appInsights.js │ ├── common/ │ │ └── test_utils.js │ ├── components/ │ │ ├── Account/ │ │ │ ├── Activate/ │ │ │ │ ├── Activate.actions.js │ │ │ │ ├── Activate.container.js │ │ │ │ ├── Activate.css │ │ │ │ ├── Activate.messages.js │ │ │ │ └── index.js │ │ │ ├── ChangePassword/ │ │ │ │ ├── ChangePassword.actions.js │ │ │ │ ├── ChangePassword.component.js │ │ │ │ ├── ChangePassword.constants.js │ │ │ │ ├── ChangePassword.css │ │ │ │ ├── ChangePassword.messages.js │ │ │ │ ├── index.js │ │ │ │ └── validationSchema.js │ │ │ ├── Login/ │ │ │ │ ├── Login.actions.js │ │ │ │ ├── Login.actions.test.js │ │ │ │ ├── Login.component.js │ │ │ │ ├── Login.component.test.js │ │ │ │ ├── Login.constants.js │ │ │ │ ├── Login.css │ │ │ │ ├── Login.messages.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Login.component.test.js.snap │ │ │ │ ├── index.js │ │ │ │ └── validationSchema.js │ │ │ ├── OAuthLogin/ │ │ │ │ ├── OAuthLogin.container.js │ │ │ │ ├── OAuthLogin.css │ │ │ │ ├── OAuthLogin.messages.js │ │ │ │ └── index.js │ │ │ ├── ResetPassword/ │ │ │ │ ├── ResetPassword.actions.js │ │ │ │ ├── ResetPassword.component.js │ │ │ │ ├── ResetPassword.constants.js │ │ │ │ ├── ResetPassword.css │ │ │ │ ├── ResetPassword.messages.js │ │ │ │ ├── index.js │ │ │ │ └── validationSchema.js │ │ │ └── SignUp/ │ │ │ ├── SignUp.actions.js │ │ │ ├── SignUp.component.js │ │ │ ├── SignUp.css │ │ │ ├── SignUp.messages.js │ │ │ ├── Signup.component.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── Signup.component.test.js.snap │ │ │ ├── index.js │ │ │ └── validationSchema.js │ │ ├── Analytics/ │ │ │ ├── Analytics.component.js │ │ │ ├── Analytics.container.js │ │ │ ├── Analytics.css │ │ │ ├── Analytics.messages.js │ │ │ └── index.js │ │ ├── App/ │ │ │ ├── App.actions.js │ │ │ ├── App.component.js │ │ │ ├── App.constants.js │ │ │ ├── App.container.js │ │ │ ├── App.css │ │ │ ├── App.messages.js │ │ │ ├── App.reducer.js │ │ │ ├── App.selectors.js │ │ │ ├── __tests__/ │ │ │ │ ├── App.actions.test.js │ │ │ │ └── App.reducer.test.js │ │ │ └── index.js │ │ ├── AppLoading/ │ │ │ ├── AppLoading.css │ │ │ ├── AppLoading.js │ │ │ └── index.js │ │ ├── AuthScreen/ │ │ │ ├── Auth.helpers.js │ │ │ ├── AuthScreen.component.js │ │ │ ├── AuthScreen.component.test.js │ │ │ ├── AuthScreen.css │ │ │ ├── AuthScreen.messages.js │ │ │ ├── __snapshots__/ │ │ │ │ └── AuthScreen.component.test.js.snap │ │ │ └── index.js │ │ ├── Board/ │ │ │ ├── Board.actions.js │ │ │ ├── Board.analytics.js │ │ │ ├── Board.component.js │ │ │ ├── Board.constants.js │ │ │ ├── Board.container.js │ │ │ ├── Board.css │ │ │ ├── Board.messages.js │ │ │ ├── Board.reducer.js │ │ │ ├── BoardShare/ │ │ │ │ ├── BoardShare.component.js │ │ │ │ ├── BoardShare.css │ │ │ │ ├── BoardShare.messages.js │ │ │ │ └── index.js │ │ │ ├── BoardTour/ │ │ │ │ └── BoardTour.js │ │ │ ├── EditToolbar/ │ │ │ │ ├── EditToolbar.component.js │ │ │ │ ├── EditToolbar.css │ │ │ │ ├── EditToolbar.messages.js │ │ │ │ ├── EditToolbar.test.js │ │ │ │ └── index.js │ │ │ ├── EmptyBoard/ │ │ │ │ ├── EmptyBoard.component.js │ │ │ │ ├── EmptyBoard.css │ │ │ │ ├── EmptyBoard.messages.js │ │ │ │ ├── EmptyBoard.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── EmptyBoard.test.js.snap │ │ │ │ └── index.js │ │ │ ├── ImageEditor/ │ │ │ │ ├── ImageEditor.component.js │ │ │ │ ├── ImageEditor.css │ │ │ │ ├── ImageEditor.messages.js │ │ │ │ └── index.js │ │ │ ├── ImprovePhraseOutput/ │ │ │ │ ├── ImprovePhraseOutput.js │ │ │ │ ├── ImprovePhraseOutput.module.css │ │ │ │ └── index.js │ │ │ ├── Navbar/ │ │ │ │ ├── Navbar.css │ │ │ │ ├── Navbar.js │ │ │ │ ├── Navbar.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Navbar.test.js.snap │ │ │ │ └── index.js │ │ │ ├── Output/ │ │ │ │ ├── Output.container.js │ │ │ │ ├── PhraseShare/ │ │ │ │ │ ├── PhraseShare.component.js │ │ │ │ │ ├── PhraseShare.css │ │ │ │ │ ├── PhraseShare.messages.js │ │ │ │ │ └── index.js │ │ │ │ ├── SymbolOutput/ │ │ │ │ │ ├── BackspaceButton/ │ │ │ │ │ │ ├── BackspaceButton.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── ClearButton/ │ │ │ │ │ │ ├── ClearButton.js │ │ │ │ │ │ ├── ClearButton.test.js │ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ │ └── ClearButton.test.js.snap │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── Scroll/ │ │ │ │ │ │ ├── Scroll.css │ │ │ │ │ │ ├── Scroll.js │ │ │ │ │ │ ├── Scroll.test.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── ShareButton/ │ │ │ │ │ │ ├── ShareButton.js │ │ │ │ │ │ └── index.js │ │ │ │ │ ├── SymbolOutput.css │ │ │ │ │ ├── SymbolOutput.js │ │ │ │ │ ├── SymbolOutput.test.js │ │ │ │ │ └── index.js │ │ │ │ └── index.js │ │ │ ├── Symbol/ │ │ │ │ ├── Symbol.css │ │ │ │ ├── Symbol.js │ │ │ │ ├── Symbol.test.js │ │ │ │ └── index.js │ │ │ ├── SymbolSearch/ │ │ │ │ ├── SymbolNotFound/ │ │ │ │ │ ├── SymbolNotFound.component.js │ │ │ │ │ ├── SymbolNotFound.css │ │ │ │ │ ├── SymbolNotFound.messages.js │ │ │ │ │ └── index.js │ │ │ │ ├── SymbolSearch.component.js │ │ │ │ ├── SymbolSearch.component.test.js │ │ │ │ ├── SymbolSearch.css │ │ │ │ ├── SymbolSearch.messages.js │ │ │ │ ├── SymbolSearchTour.component.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── SymbolSearch.component.test.js.snap │ │ │ │ └── index.js │ │ │ ├── Tile/ │ │ │ │ ├── Tile.component.js │ │ │ │ ├── Tile.css │ │ │ │ ├── Tile.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Tile.test.js.snap │ │ │ │ └── index.js │ │ │ ├── TileEditor/ │ │ │ │ ├── LoadBoardEditor/ │ │ │ │ │ ├── LoadBoardEditor.js │ │ │ │ │ ├── LoadBoardEditor.messages.js │ │ │ │ │ ├── LoadBoardEditor.module.css │ │ │ │ │ └── useAllBoardsFetcher.js │ │ │ │ ├── LostedFolderForLoadBoardAlert/ │ │ │ │ │ ├── LostedFolderForLoadBoardAlert.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── TileEditor.component.js │ │ │ │ ├── TileEditor.css │ │ │ │ ├── TileEditor.messages.js │ │ │ │ ├── TileEditor.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── TileEditor.test.js.snap │ │ │ │ └── index.js │ │ │ ├── __tests__/ │ │ │ │ ├── Board.actions.test.js │ │ │ │ ├── Board.component.test.js │ │ │ │ └── Board.reducer.test.js │ │ │ └── index.js │ │ ├── Communicator/ │ │ │ ├── Communicator.actions.js │ │ │ ├── Communicator.constants.js │ │ │ ├── Communicator.reducer.js │ │ │ ├── CommunicatorDialog/ │ │ │ │ ├── CommunicatorDialog.component.js │ │ │ │ ├── CommunicatorDialog.constants.js │ │ │ │ ├── CommunicatorDialog.container.js │ │ │ │ ├── CommunicatorDialog.css │ │ │ │ ├── CommunicatorDialog.messages.js │ │ │ │ ├── CommunicatorDialog.test.js │ │ │ │ ├── CommunicatorDialogBoardItem.component.js │ │ │ │ ├── CommunicatorDialogButtons.component.js │ │ │ │ ├── CommunicatorDialogButtons.test.js │ │ │ │ ├── CommunicatorDialogTour.component.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ ├── CommunicatorDialog.test.js.snap │ │ │ │ │ └── CommunicatorDialogButtons.test.js.snap │ │ │ │ └── index.js │ │ │ ├── CommunicatorToolbar/ │ │ │ │ ├── CommunicatorToolbar.component.js │ │ │ │ ├── CommunicatorToolbar.container.js │ │ │ │ ├── CommunicatorToolbar.css │ │ │ │ ├── CommunicatorToolbar.messages.js │ │ │ │ ├── CommunicatorToolbar.test.js │ │ │ │ ├── DefaultBoardSelector/ │ │ │ │ │ ├── DefaultBoardOption.js │ │ │ │ │ ├── DefaultBoardSelector.js │ │ │ │ │ ├── DefaultBoardSelector.module.css │ │ │ │ │ ├── DefaultBoardsGallery.js │ │ │ │ │ └── index.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── CommunicatorToolbar.test.js.snap │ │ │ │ └── index.js │ │ │ └── __tests__/ │ │ │ ├── Communicator.actions.test.js │ │ │ └── Communicator.reducer.test.js │ │ ├── EditGridButtons/ │ │ │ ├── EditGridButtons.component.js │ │ │ ├── EditGridButtons.css │ │ │ └── index.js │ │ ├── FixedGrid/ │ │ │ ├── DraggableItem/ │ │ │ │ ├── DraggableItem.js │ │ │ │ └── DraggableItem.module.css │ │ │ ├── DroppableCell/ │ │ │ │ ├── DroppableCell.js │ │ │ │ └── DroppableCell.module.css │ │ │ ├── Grid.js │ │ │ ├── Grid.module.css │ │ │ ├── GridBase.js │ │ │ ├── GridBase.module.css │ │ │ ├── Row/ │ │ │ │ ├── Row.js │ │ │ │ └── Row.module.css │ │ │ ├── index.js │ │ │ └── utils.ts │ │ ├── Grid/ │ │ │ ├── Grid.constants.js │ │ │ ├── Grid.container.js │ │ │ ├── Grid.css │ │ │ └── index.js │ │ ├── LoggedInFeature/ │ │ │ ├── LoginRequiredModal.js │ │ │ ├── LoginRequiredModal.messages.js │ │ │ └── LoginRequiredModal.module.css │ │ ├── NavigationButtons/ │ │ │ ├── NavigationButtons.component.js │ │ │ ├── NavigationButtons.css │ │ │ ├── NavigationButtons.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── NavigationButtons.test.js.snap │ │ │ └── index.js │ │ ├── NotFound/ │ │ │ ├── NotFound.css │ │ │ ├── NotFound.js │ │ │ ├── __tests__/ │ │ │ │ ├── NotFound.test.js │ │ │ │ └── __snapshots__/ │ │ │ │ └── NotFound.test.js.snap │ │ │ └── index.js │ │ ├── Notifications/ │ │ │ ├── Notifications.actions.js │ │ │ ├── Notifications.component.js │ │ │ ├── Notifications.constants.js │ │ │ ├── Notifications.container.js │ │ │ ├── Notifications.messages.js │ │ │ ├── Notifications.reducer.js │ │ │ ├── __tests__/ │ │ │ │ ├── Notifications.actions.test.js │ │ │ │ ├── Notifications.component.test.js │ │ │ │ └── __snapshots__/ │ │ │ │ └── Notifications.component.test.js.snap │ │ │ └── index.js │ │ ├── PremiumFeature/ │ │ │ ├── PremiumFeature.js │ │ │ ├── PremiumFeature.messages.js │ │ │ ├── PremiumRequiredModal.js │ │ │ ├── PremiumRequiredModal.module.css │ │ │ └── index.js │ │ ├── ScrollButtons/ │ │ │ ├── ScrollButtons.js │ │ │ └── index.js │ │ ├── Settings/ │ │ │ ├── About/ │ │ │ │ ├── About.component.js │ │ │ │ ├── About.css │ │ │ │ ├── About.messages.js │ │ │ │ ├── About.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── About.test.js.snap │ │ │ │ └── index.js │ │ │ ├── Display/ │ │ │ │ ├── Display.component.js │ │ │ │ ├── Display.constants.js │ │ │ │ ├── Display.container.js │ │ │ │ ├── Display.css │ │ │ │ ├── Display.messages.js │ │ │ │ ├── Display.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Display.test.js.snap │ │ │ │ └── index.js │ │ │ ├── Export/ │ │ │ │ ├── Export.component.js │ │ │ │ ├── Export.constants.js │ │ │ │ ├── Export.container.js │ │ │ │ ├── Export.css │ │ │ │ ├── Export.helpers.js │ │ │ │ ├── Export.messages.js │ │ │ │ ├── Export.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Export.test.js.snap │ │ │ │ └── index.js │ │ │ ├── Help/ │ │ │ │ ├── Help.component.js │ │ │ │ ├── Help.css │ │ │ │ └── index.js │ │ │ ├── Import/ │ │ │ │ ├── Import.component.js │ │ │ │ ├── Import.constants.js │ │ │ │ ├── Import.container.js │ │ │ │ ├── Import.css │ │ │ │ ├── Import.helpers.js │ │ │ │ ├── Import.messages.js │ │ │ │ ├── Import.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Import.test.js.snap │ │ │ │ └── index.js │ │ │ ├── Language/ │ │ │ │ ├── DownloadDialog.js │ │ │ │ ├── Language.component.js │ │ │ │ ├── Language.container.js │ │ │ │ ├── Language.messages.js │ │ │ │ ├── downloadablesTts.json │ │ │ │ ├── downloadingLangErrorDialog.js │ │ │ │ └── index.js │ │ │ ├── Navigation/ │ │ │ │ ├── Navigation.component.js │ │ │ │ ├── Navigation.constants.js │ │ │ │ ├── Navigation.container.js │ │ │ │ ├── Navigation.css │ │ │ │ ├── Navigation.messages.js │ │ │ │ ├── Navigation.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Navigation.test.js.snap │ │ │ │ └── index.js │ │ │ ├── People/ │ │ │ │ ├── DeleteConfirmationDialog.js │ │ │ │ ├── People.component.js │ │ │ │ ├── People.component.test.js │ │ │ │ ├── People.container.js │ │ │ │ ├── People.messages.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── People.component.test.js.snap │ │ │ │ └── index.js │ │ │ ├── Scanning/ │ │ │ │ ├── Scanning.component.js │ │ │ │ ├── Scanning.constants.js │ │ │ │ ├── Scanning.container.js │ │ │ │ ├── Scanning.css │ │ │ │ ├── Scanning.messages.js │ │ │ │ ├── Scanning.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Scanning.test.js.snap │ │ │ │ └── index.js │ │ │ ├── Settings.component.js │ │ │ ├── Settings.container.js │ │ │ ├── Settings.css │ │ │ ├── Settings.messages.js │ │ │ ├── Settings.wrapper.js │ │ │ ├── SettingsSection.component.js │ │ │ ├── SettingsTour.component.js │ │ │ ├── Speech/ │ │ │ │ ├── Speech.component.js │ │ │ │ ├── Speech.component.test.js │ │ │ │ ├── Speech.constants.js │ │ │ │ ├── Speech.container.js │ │ │ │ ├── Speech.css │ │ │ │ ├── Speech.messages.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Speech.component.test.js.snap │ │ │ │ └── index.js │ │ │ ├── Subscribe/ │ │ │ │ ├── Subscribe.component.js │ │ │ │ ├── Subscribe.component.test.js │ │ │ │ ├── Subscribe.constants.js │ │ │ │ ├── Subscribe.container.js │ │ │ │ ├── Subscribe.css │ │ │ │ ├── Subscribe.helpers.js │ │ │ │ ├── Subscribe.messages.js │ │ │ │ ├── SubscriptionInfo.js │ │ │ │ ├── SubscriptionPlans.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── Subscribe.component.test.js.snap │ │ │ │ └── index.js │ │ │ ├── Symbols/ │ │ │ │ ├── DeleteArasaacDialog.js │ │ │ │ ├── DownloadArasaacDialog.js │ │ │ │ ├── NoConnectionDialog.js │ │ │ │ ├── Symbols.component.js │ │ │ │ ├── Symbols.container.js │ │ │ │ ├── Symbols.css │ │ │ │ ├── Symbols.messages.js │ │ │ │ └── index.js │ │ │ └── index.js │ │ ├── UI/ │ │ │ ├── AnalyticsButton/ │ │ │ │ ├── AnalyticsButton.js │ │ │ │ ├── AnalyticsButton.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── AnalyticsButton.test.js.snap │ │ │ │ └── index.js │ │ │ ├── BackButton/ │ │ │ │ ├── BackButton.js │ │ │ │ ├── BackButton.messages.js │ │ │ │ ├── BackButton.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── BackButton.test.js.snap │ │ │ │ └── index.js │ │ │ ├── Barchart/ │ │ │ │ ├── Barchart.component.js │ │ │ │ ├── Barchart.css │ │ │ │ └── index.js │ │ │ ├── ColorSelect/ │ │ │ │ ├── Circle/ │ │ │ │ │ ├── Circle.js │ │ │ │ │ ├── Circle.test.js │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── Circle.test.js.snap │ │ │ │ │ └── index.js │ │ │ │ ├── ColorSelect.js │ │ │ │ ├── ColorSelect.messages.js │ │ │ │ ├── ColorSelect.test.js │ │ │ │ ├── ColorSelectDropdown.css │ │ │ │ ├── HairColor.messages.js │ │ │ │ ├── HairColorSelect.js │ │ │ │ ├── HairColorSelect.test.js │ │ │ │ ├── SkinTone.messages.js │ │ │ │ ├── SkinToneSelect.js │ │ │ │ ├── SkinToneSelect.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ ├── ColorSelect.test.js.snap │ │ │ │ │ ├── HairColorSelect.test.js.snap │ │ │ │ │ └── SkinToneSelect.test.js.snap │ │ │ │ └── index.js │ │ │ ├── Doughnut/ │ │ │ │ ├── Doughnut.component.js │ │ │ │ ├── Doughnut.css │ │ │ │ └── index.js │ │ │ ├── Downloader/ │ │ │ │ ├── Downloader.css │ │ │ │ ├── Downloader.js │ │ │ │ ├── Downloader.messages.js │ │ │ │ └── index.js │ │ │ ├── FilterBar/ │ │ │ │ ├── FilterBar.css │ │ │ │ ├── FilterBar.js │ │ │ │ ├── FilterBar.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── FilterBar.test.js.snap │ │ │ │ └── index.js │ │ │ ├── FormDialog/ │ │ │ │ ├── FormDialog.css │ │ │ │ ├── FormDialog.js │ │ │ │ ├── FormDialog.messages.js │ │ │ │ ├── FormDialog.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── FormDialog.test.js.snap │ │ │ │ └── index.js │ │ │ ├── FormItems/ │ │ │ │ ├── ApiKeyTextField.js │ │ │ │ ├── FormItems.messages.js │ │ │ │ ├── PasswordTextField.js │ │ │ │ ├── TextField.js │ │ │ │ ├── TextField.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── TextField.test.js.snap │ │ │ │ └── index.js │ │ │ ├── FullScreenButton/ │ │ │ │ ├── FullScreenButton.js │ │ │ │ ├── FullScreenButton.messages.js │ │ │ │ ├── FullScreenButton.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── FullScreenButton.test.js.snap │ │ │ │ └── index.js │ │ │ ├── FullScreenDialog/ │ │ │ │ ├── FullScreenDialog.css │ │ │ │ ├── FullScreenDialog.js │ │ │ │ ├── FullScreenDialog.test.js │ │ │ │ ├── FullScreenDialogContent.js │ │ │ │ ├── FullScreenDialogContent.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── FullScreenDialog.test.js.snap │ │ │ │ └── index.js │ │ │ ├── HelpButton/ │ │ │ │ ├── HelpButton.js │ │ │ │ └── index.js │ │ │ ├── IconButton/ │ │ │ │ ├── IconButton.js │ │ │ │ ├── IconButton.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── IconButton.test.js.snap │ │ │ │ └── index.js │ │ │ ├── InputImage/ │ │ │ │ ├── InputImage.component.js │ │ │ │ ├── InputImage.css │ │ │ │ ├── InputImage.messages.js │ │ │ │ ├── InputImage.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── InputImage.test.js.snap │ │ │ │ └── index.js │ │ │ ├── LoadingIcon/ │ │ │ │ ├── LoadingIcon.css │ │ │ │ ├── LoadingIcon.js │ │ │ │ ├── LoadingIcon.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── LoadingIcon.test.js.snap │ │ │ │ └── index.js │ │ │ ├── LockToggle/ │ │ │ │ ├── LockToggle.js │ │ │ │ ├── LockToggle.messages.js │ │ │ │ ├── __test__/ │ │ │ │ │ ├── LockToggle.test.js │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── LockToggle.test.js.snap │ │ │ │ │ │ └── childProof.test.js.snap │ │ │ │ │ └── childProof.test.js │ │ │ │ ├── childProof.js │ │ │ │ └── index.js │ │ │ ├── ModifiedAreaChart/ │ │ │ │ ├── ModifiedAreaChart.component.js │ │ │ │ └── index.js │ │ │ ├── PrintBoardButton/ │ │ │ │ ├── PrintBoardButton.component.js │ │ │ │ ├── PrintBoardButton.container.js │ │ │ │ ├── PrintBoardButton.messages.js │ │ │ │ ├── PrintBoardButton.test.js │ │ │ │ ├── PrintBoardDialog.component.js │ │ │ │ ├── PrintBoardDialog.css │ │ │ │ ├── PrintBoardDialog.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ ├── PrintBoardButton.test.js.snap │ │ │ │ │ └── PrintBoardDialog.test.js.snap │ │ │ │ └── index.js │ │ │ ├── ResetToursItem/ │ │ │ │ ├── ResetToursItem.component.js │ │ │ │ ├── ResetToursItem.container.js │ │ │ │ ├── ResetToursItem.messages.js │ │ │ │ └── index.js │ │ │ ├── SelectedCounter/ │ │ │ │ ├── SelectedCounter.component.js │ │ │ │ ├── SelectedCounter.css │ │ │ │ ├── SelectedCounter.messages.js │ │ │ │ ├── SelectedCounter.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── SelectedCounter.test.js.snap │ │ │ │ └── index.js │ │ │ ├── SettingsButton/ │ │ │ │ ├── SettingsButton.js │ │ │ │ ├── SettingsButton.messages.js │ │ │ │ ├── SettingsButton.test.js │ │ │ │ ├── __snapshots__/ │ │ │ │ │ └── SettingsButton.test.js.snap │ │ │ │ └── index.js │ │ │ ├── StatCards/ │ │ │ │ ├── StatCards.component.js │ │ │ │ ├── StatCards.css │ │ │ │ └── index.js │ │ │ ├── StatCards2/ │ │ │ │ ├── StatCards2.component.js │ │ │ │ ├── StatCards2.css │ │ │ │ └── index.js │ │ │ ├── StyledTable/ │ │ │ │ ├── StyledTable.component.js │ │ │ │ ├── StyledTable.css │ │ │ │ └── index.js │ │ │ ├── TableCard/ │ │ │ │ ├── TableCard.component.js │ │ │ │ ├── TableCard.css │ │ │ │ └── index.js │ │ │ └── UserIcon/ │ │ │ ├── UserIcon.component.js │ │ │ ├── UserIcon.container.js │ │ │ ├── UserIcon.messages.js │ │ │ ├── UserIcon.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── UserIcon.test.js.snap │ │ │ └── index.js │ │ ├── VoiceRecorder/ │ │ │ ├── VoiceRecorder.component.js │ │ │ ├── VoiceRecorder.container.js │ │ │ ├── VoiceRecorder.css │ │ │ ├── VoiceRecorder.messages.js │ │ │ ├── __test__/ │ │ │ │ ├── VoiceRecorder.component.test.js │ │ │ │ └── __snapshots__/ │ │ │ │ └── VoiceRecorder.component.test.js.snap │ │ │ └── index.js │ │ └── WelcomeScreen/ │ │ ├── CboardLogo/ │ │ │ ├── CboardLogo.component.js │ │ │ ├── CboardLogo.css │ │ │ ├── CboardLogo.test.js │ │ │ ├── __snapshots__/ │ │ │ │ └── CboardLogo.test.js.snap │ │ │ └── index.js │ │ ├── WelcomeScreen.container.js │ │ ├── WelcomeScreen.css │ │ ├── WelcomeScreen.messages.js │ │ ├── WelcomeScreen.test.js │ │ └── index.js │ ├── config.js │ ├── constants.js │ ├── cordova-util.js │ ├── env.js │ ├── helpers.js │ ├── history.js │ ├── i18n.js │ ├── idb/ │ │ └── arasaac/ │ │ ├── arasaacdb.ts │ │ └── jszip.ts │ ├── index.css │ ├── index.js │ ├── polyfills.js │ ├── providers/ │ │ ├── LanguageProvider/ │ │ │ ├── LanguageProvider.actions.js │ │ │ ├── LanguageProvider.constants.js │ │ │ ├── LanguageProvider.container.js │ │ │ ├── LanguageProvider.reducer.js │ │ │ ├── __tests__/ │ │ │ │ ├── LanguageProvider.actions.test.js │ │ │ │ ├── LanguageProvider.reducer.test.js │ │ │ │ └── LanguageProvider.test.js │ │ │ └── index.js │ │ ├── ScannerProvider/ │ │ │ ├── ScannerProvider.actions.js │ │ │ ├── ScannerProvider.constants.js │ │ │ ├── ScannerProvider.reducer.js │ │ │ └── __tests__/ │ │ │ ├── ScannerProvider.actions.test.js │ │ │ └── ScannerProvider.reducer.test.js │ │ ├── SpeechProvider/ │ │ │ ├── SpeechProvider.actions.js │ │ │ ├── SpeechProvider.analytics.js │ │ │ ├── SpeechProvider.constants.js │ │ │ ├── SpeechProvider.container.js │ │ │ ├── SpeechProvider.messages.js │ │ │ ├── SpeechProvider.reducer.js │ │ │ ├── __tests__/ │ │ │ │ ├── SpeechProvider.actions.test.js │ │ │ │ └── SpeechProvider.reducer.test.js │ │ │ ├── engine/ │ │ │ │ └── elevenlabs.js │ │ │ ├── index.js │ │ │ └── tts.js │ │ ├── SubscriptionProvider/ │ │ │ ├── SubscriptionProvider.actions.js │ │ │ ├── SubscriptionProvider.constants.js │ │ │ ├── SubscriptionProvider.container.js │ │ │ ├── SubscriptionProvider.reducer.js │ │ │ ├── SubscriptionProvider.selectors.js │ │ │ └── index.js │ │ └── ThemeProvider/ │ │ ├── RTLSupport.js │ │ ├── ThemeProvider.constants.js │ │ ├── ThemeProvider.container.js │ │ └── index.js │ ├── react-app-env.d.ts │ ├── reducers.js │ ├── registerServiceWorker.js │ ├── setupPolyfills.js │ ├── setupTests.js │ ├── store.js │ ├── translations/ │ │ ├── ar-EG.json │ │ ├── ar-SA.json │ │ ├── be-BY.json │ │ ├── bg-BG.json │ │ ├── bn-BD.json │ │ ├── ca-ES.json │ │ ├── cs-CZ.json │ │ ├── da-DK.json │ │ ├── de-DE.json │ │ ├── el-GR.json │ │ ├── en-GB.json │ │ ├── en-US.json │ │ ├── es-ES.json │ │ ├── fa-IR.json │ │ ├── fi-FI.json │ │ ├── fr-FR.json │ │ ├── he-IL.json │ │ ├── help/ │ │ │ ├── ar-SA.md │ │ │ ├── be-BY.md │ │ │ ├── bg-BG.md │ │ │ ├── bn-BD.md │ │ │ ├── ca-ES.md │ │ │ ├── cs-CZ.md │ │ │ ├── da-DK.md │ │ │ ├── de-DE.md │ │ │ ├── el-GR.md │ │ │ ├── en-GB.md │ │ │ ├── en-US.md │ │ │ ├── es-ES.md │ │ │ ├── fa-IR.md │ │ │ ├── fi-FI.md │ │ │ ├── fr-FR.md │ │ │ ├── he-IL.md │ │ │ ├── hi-IN.md │ │ │ ├── hr-HR.md │ │ │ ├── hu-HU.md │ │ │ ├── id-ID.md │ │ │ ├── it-IT.md │ │ │ ├── ja-JP.md │ │ │ ├── km-KH.md │ │ │ ├── ko-KR.md │ │ │ ├── me-ME.md │ │ │ ├── mk-MK.md │ │ │ ├── ml-IN.md │ │ │ ├── nb-NO.md │ │ │ ├── ne-NP.md │ │ │ ├── nl-NL.md │ │ │ ├── no-NO.md │ │ │ ├── pl-PL.md │ │ │ ├── pt-BR.md │ │ │ ├── pt-PT.md │ │ │ ├── pt-TL.md │ │ │ ├── ro-RO.md │ │ │ ├── ru-MD.md │ │ │ ├── ru-RU.md │ │ │ ├── sh-HR.md │ │ │ ├── si-LK.md │ │ │ ├── sk-SK.md │ │ │ ├── so-SO.md │ │ │ ├── sq-AL.md │ │ │ ├── sq-MK.md │ │ │ ├── sr-CS.md │ │ │ ├── sr-ME.md │ │ │ ├── sr-RS.md │ │ │ ├── sr-SP.md │ │ │ ├── sv-SE.md │ │ │ ├── tg-TJ.md │ │ │ ├── th-TH.md │ │ │ ├── tk-TM.md │ │ │ ├── tr-TR.md │ │ │ ├── tu-TI.md │ │ │ ├── uk-UA.md │ │ │ ├── ur-PK.md │ │ │ ├── vi-VN.md │ │ │ ├── zh-CN.md │ │ │ └── zu-ZA.md │ │ ├── hi-IN.json │ │ ├── hr-HR.json │ │ ├── hu-HU.json │ │ ├── id-ID.json │ │ ├── ig-NG.json │ │ ├── it-IT.json │ │ ├── ja-JP.json │ │ ├── ka-GE.json │ │ ├── km-KH.json │ │ ├── ko-KR.json │ │ ├── lo-LA.json │ │ ├── me-ME.json │ │ ├── mk-MK.json │ │ ├── ml-IN.json │ │ ├── moreLanguages/ │ │ │ ├── ar-SA.md │ │ │ ├── be-BY.md │ │ │ ├── bg-BG.md │ │ │ ├── bn-BD.md │ │ │ ├── ca-ES.md │ │ │ ├── cs-CZ.md │ │ │ ├── da-DK.md │ │ │ ├── de-DE.md │ │ │ ├── el-GR.md │ │ │ ├── en-GB.md │ │ │ ├── en-US.md │ │ │ ├── es-ES.md │ │ │ ├── fa-IR.md │ │ │ ├── fi-FI.md │ │ │ ├── fr-FR.md │ │ │ ├── he-IL.md │ │ │ ├── hi-IN.md │ │ │ ├── hr-HR.md │ │ │ ├── hu-HU.md │ │ │ ├── id-ID.md │ │ │ ├── it-IT.md │ │ │ ├── ja-JP.md │ │ │ ├── km-KH.md │ │ │ ├── ko-KR.md │ │ │ ├── lo-LA.md │ │ │ ├── me-ME.md │ │ │ ├── mk-MK.md │ │ │ ├── ml-IN.md │ │ │ ├── ne-NP.md │ │ │ ├── nl-NL.md │ │ │ ├── no-NO.md │ │ │ ├── pl-PL.md │ │ │ ├── pt-BR.md │ │ │ ├── pt-PT.md │ │ │ ├── ro-RO.md │ │ │ ├── ru-MD.md │ │ │ ├── ru-RU.md │ │ │ ├── sh-HR.md │ │ │ ├── si-LK.md │ │ │ ├── sk-SK.md │ │ │ ├── so-SO.md │ │ │ ├── sq-AL.md │ │ │ ├── sq-MK.md │ │ │ ├── sr-CS.md │ │ │ ├── sr-SP.md │ │ │ ├── sv-SE.md │ │ │ ├── tg-TJ.md │ │ │ ├── th-TH.md │ │ │ ├── tk-TM.md │ │ │ ├── tr-TR.md │ │ │ ├── tu-TI.md │ │ │ ├── uk-UA.md │ │ │ ├── ur-PK.md │ │ │ ├── vi-VN.md │ │ │ ├── zh-CN.md │ │ │ └── zu-ZA.md │ │ ├── mr-IN.json │ │ ├── ms-MY.json │ │ ├── my-MM.json │ │ ├── nb-NO.json │ │ ├── ne-NP.json │ │ ├── nl-NL.json │ │ ├── no-NO.json │ │ ├── pl-PL.json │ │ ├── pt-BR.json │ │ ├── pt-PT.json │ │ ├── pt-TL.json │ │ ├── ro-RO.json │ │ ├── ru-MD.json │ │ ├── ru-RU.json │ │ ├── sh-HR.json │ │ ├── si-LK.json │ │ ├── sk-SK.json │ │ ├── so-SO.json │ │ ├── sq-AL.json │ │ ├── sq-MK.json │ │ ├── sr-CS.json │ │ ├── sr-ME.json │ │ ├── sr-RS.json │ │ ├── sr-SP.json │ │ ├── src/ │ │ │ └── cboard.json │ │ ├── sv-SE.json │ │ ├── ta-IN.json │ │ ├── tg-TJ.json │ │ ├── th-TH.json │ │ ├── tk-TM.json │ │ ├── tr-TR.json │ │ ├── tu-TI.json │ │ ├── uk-UA.json │ │ ├── ur-PK.json │ │ ├── vi-VN.json │ │ ├── zh-CN.json │ │ └── zu-ZA.json │ ├── types.ts │ └── vfs_fonts.js ├── sw-precache-config.js ├── tests/ │ ├── README.md │ ├── helpers/ │ │ ├── communication-utils.js │ │ ├── index.js │ │ ├── navigation-utils.js │ │ └── overlay-utils.js │ ├── logged/ │ │ ├── authentication.spec.js │ │ └── settings/ │ │ └── speech.spec.js │ ├── page-objects/ │ │ ├── cboard.js │ │ └── index.js │ ├── smoke.spec.js │ ├── unlogged/ │ │ ├── accessibility.spec.js │ │ ├── basic-functionality.spec.js │ │ ├── communication-bar.spec.js │ │ ├── mobile-responsiveness.spec.js │ │ ├── navigation.spec.js │ │ ├── public-board-report-restriction.spec.js │ │ ├── settings/ │ │ │ ├── display.spec.js │ │ │ ├── export.spec.js │ │ │ ├── import.spec.js │ │ │ ├── language.spec.js │ │ │ ├── scanning.spec.js │ │ │ └── symbols.spec.js │ │ └── unlock.spec.js │ └── utilities/ │ ├── assertions.js │ ├── index.js │ ├── test-setup.js │ └── test-utils.js └── tsconfig.json