* fix error from race condition `Cannot read properties of null (reading
'remove')` when deletion in zen mode, added null check.
The active word could already be removed when the debounced update runs,
which caused a null error
---------
Co-authored-by: Jack <jack@monkeytype.com>
rework `onChild` to behave mostly like jQuery `.on` with selector.
- we remove `currentTarget` from the `onChild` event handler because
native events and jQuery events have different values for it
- the jQuery `currentTarget` is available with `childTarget` in our
events
---------
Co-authored-by: Miodec <jack@monkeytype.com>
### Description
<!-- Please describe the change(s) made in your PR -->
### Checks
- [ ] Adding/modifying Typescript code?
- [ ] I have used `qs`, `qsa` or `qsr` instead of JQuery selectors.
- [X] Adding quotes?
- [ ] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
- [ ] Adding a language?
- Make sure to follow the [languages
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md)
- [ ] Add language to `packages/schemas/src/languages.ts`
- [ ] Add language to exactly one group in
`frontend/src/ts/constants/languages.ts`
- [ ] Add language json file to `frontend/static/languages`
- [ ] Adding a theme?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/THEMES.md)
- [ ] Add theme to `packages/schemas/src/themes.ts`
- [ ] Add theme to `frontend/src/ts/constants/themes.ts`
- [ ] Add theme css file to `frontend/static/themes`
- [ ] Add some screenshots of the theme, especially with different test
settings (colorful, flip colors) to your pull request
- [ ] Adding a layout?
- [ ] Make sure to follow the [layouts
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md)
- [ ] Add layout to `packages/schemas/src/layouts.ts`
- [ ] Add layout json file to `frontend/static/layouts`
- [ ] Adding a font?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/FONTS.md)
- [ ] Add font file to `frontend/static/webfonts`
- [ ] Add font to `packages/schemas/src/fonts.ts`
- [ ] Add font to `frontend/src/ts/constants/fonts.ts`
- [X] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [X] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [X] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
<!-- label(optional scope): pull request title (@your_github_username)
-->
<!-- I know I know they seem boring but please do them, they help us and
you will find out it also helps you.-->
Closes #
<!-- the issue(s) your PR resolves if any (delete if that is not the
case) -->
<!-- please also reference any issues and or PRs related to your pull
request -->
<!-- Also remove it if you are not following any issues. -->
<!-- pro tip: you can mention an issue, PR, or discussion on GitHub by
referencing its hash number e.g:
[#1234](https://github.com/monkeytypegame/monkeytype/pull/1234) -->
<!-- pro tip: you can press . (dot or period) in the code tab of any
GitHub repo to get access to GitHub's VS Code web editor Enjoy! :) -->
### Description
Adds British English spelling for words found in the english-medical
word list.
- Hematology terms (`hemo-`/`hema-` -> `haemo-`/`haema-`)
- Blood condition suffixes (`-emia` -> `-aemia`)
- White blood cell terms (`leuko-` -> `leuco-`)
- Respiratory terms (`-pnea` -> `-pnoea`)
- Other notable conversions (common patterns like `-ize` and other
cases)
### Checks
- [ ] ~Adding/modifying Typescript code?~
- [ ] ~Adding quotes?comment) so we can verify their content.~
- [ ] ~Adding a language?~
- [ ] ~Adding a theme?~
- [ ] ~Adding a layout?~
- [ ] ~Adding a font?~
- [x] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
---------
Co-authored-by: Jack <jack@monkeytype.com>
vite plugin checker seems to happily spawn a new linting process per
file save, causing issues. This vibe coded solution kills the previously
running process. It also splits linting into two steps to get some fast
fail behavior.
I (AI) tried to merge it into one file but the overlay refused to show
that way.
!nuf
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Add details to notifications.
If details are available show share icon on hover in the notification
history. On click the full content is copied to the clipboard. With this
is easier for an user to share the full details of an error on github or
discord.
<img width="377" height="107" alt="image"
src="https://github.com/user-attachments/assets/f22638a1-bafd-4708-8d8a-0ec48db10f1d"
/>
<img width="377" height="107" alt="image"
src="https://github.com/user-attachments/assets/d4a66860-f99f-4ac1-992c-81e31ab13eba"
/>
```json
{
"title": "Error",
"message": "Failed to save config",
"details": {
"status": 422,
"validationErrors": [
"Unrecognized key(s) in object: 'invalid'"
]
}
}
```
---------
Co-authored-by: Jack <jack@monkeytype.com>
### Description
Make text wrapped in `""` required when searching for quotes (meaning
only quotes that contain this exact text will appear in the results).
This allows case insensitivity (so "hello" will match "Hello").
### Description
Replaces jQuery usage with DOM utils for alt and shift key trackers.
Scope intentionally kept small per contributing guidelines.
### Checks
- [x] Adding/modifying Typescript code?
- [x] I have used `qs`, `qsa` or `qsr` instead of JQuery selectors.
- [x] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
<!-- label(optional scope): pull request title (@your_github_username)
-->
<!-- I know I know they seem boring but please do them, they help us and
you will find out it also helps you.-->
Related to #7186
<!-- the issue(s) your PR resolves if any (delete if that is not the
case) -->
<!-- please also reference any issues and or PRs related to your pull
request -->
<!-- Also remove it if you are not following any issues. -->
<!-- pro tip: you can mention an issue, PR, or discussion on GitHub by
referencing its hash number e.g:
[#1234](https://github.com/monkeytypegame/monkeytype/pull/1234) -->
<!-- pro tip: you can press . (dot or period) in the code tab of any
GitHub repo to get access to GitHub's VS Code web editor Enjoy! :) -->
### Description
Replaces jQuery usage with DOM utils for the caps lock warning.
Scope intentionally kept small per contributing guidelines.
### Checks
- [x] Adding/modifying Typescript code?
- [x] I have used `qs`, `qsa` or `qsr` instead of JQuery selectors.
- [x] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
<!-- label(optional scope): pull request title (@your_github_username)
-->
<!-- I know I know they seem boring but please do them, they help us and
you will find out it also helps you.-->
Related to #7186
<!-- the issue(s) your PR resolves if any (delete if that is not the
case) -->
<!-- please also reference any issues and or PRs related to your pull
request -->
<!-- Also remove it if you are not following any issues. -->
<!-- pro tip: you can mention an issue, PR, or discussion on GitHub by
referencing its hash number e.g:
[#1234](https://github.com/monkeytypegame/monkeytype/pull/1234) -->
<!-- pro tip: you can press . (dot or period) in the code tab of any
GitHub repo to get access to GitHub's VS Code web editor Enjoy! :) -->
### Description
* lazy mode status “stuck” after switching to a language that does not
support it then goes back to the one that supports it.
* to reproduce
After seeing the “This language does not support lazy mode” warning,
switch back to the one that was working with and manually toggling lazy
mode. It would not update to the selected option.
### Description
This commit expands the two bulgarian wordlists - bulgarian.json and
bulgarian_latin.json
### Checks
- [ ] Adding/modifying Typescript code?
- [ ] I have used `qs`,`qsa` or `qsr` instead of JQuery selectors.
- [ ] Adding quotes?
- [ ] Make sure to include translations for the quotes in the
description (or another comment) so we can verify their content.
- [x] Adding a language?
- Make sure to follow the [languages
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LANGUAGES.md)
- [x] Add language to `packages/schemas/src/languages.ts`
- [x] Add language to exactly one group in
`frontend/src/ts/constants/languages.ts`
- [x] Add language json file to `frontend/static/languages`
- [ ] Adding a theme?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/THEMES.md)
- [ ] Add theme to `packages/schemas/src/themes.ts`
- [ ] Add theme to `frontend/src/ts/constants/themes.ts`
- [ ] Add theme css file to `frontend/static/themes`
- [ ] Add some screenshot of the theme, especially with different test
settings (colorful, flip colors) to your pull request
- [ ] Adding a layout?
- [ ] Make sure to follow the [layouts
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md)
- [ ] Add layout to `packages/schemas/src/layouts.ts`
- [ ] Add layout json file to `frontend/static/layouts`
- [ ] Adding a font?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/FONTS.md)
- [ ] Add font file to `frontend/static/webfonts`
- [ ] Add font to `packages/schemas/src/fonts.ts`
- [ ] Add font to `frontend/src/ts/constants/fonts.ts`
- [ ] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
---------
Co-authored-by: Jack <jack@monkeytype.com>
### Description
Replaces jQuery usage with dom utils in the scroll-to-top button.
Scope intentionally kept small per contributing guidelines.
### Checks
- [x] Adding/modifying Typescript code?
- [x] I have used `qs`, `qsa` or `qsr` instead of JQuery selectors.
- [x] Check if any open issues are related to this PR; if so, be sure to
tag them below.
- [x] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.
<!-- label(optional scope): pull request title (@your_github_username)
-->
<!-- I know I know they seem boring but please do them, they help us and
you will find out it also helps you.-->
Related to #7186
<!-- the issue(s) your PR resolves if any (delete if that is not the
case) -->
<!-- please also reference any issues and or PRs related to your pull
request -->
<!-- Also remove it if you are not following any issues. -->
<!-- pro tip: you can mention an issue, PR, or discussion on GitHub by
referencing its hash number e.g:
[#1234](https://github.com/monkeytypegame/monkeytype/pull/1234) -->
<!-- pro tip: you can press . (dot or period) in the code tab of any
GitHub repo to get access to GitHub's VS Code web editor Enjoy! :) -->
* In RTL tests, enabling tape mode causes the main caret to be
misaligned from the start of the test and remain offset while typing.
The tape margin was always calculated from the left side, which is
correct for LTR but incorrect for RTL layouts.
fix
* we should have mirrored the margin from the right side.