Commit graph

12151 commits

Author SHA1 Message Date
Jack
e4c0c28150
chore: bump eslint typescript plugin (@miodec) (#6915) 2025-08-26 22:12:27 +02:00
Miodec
cb68421d72 chore: remove duplicate 2025-08-26 17:43:13 +02:00
Miodec
9f1dacd228 fix(language): split merged words in turkish 1k 2025-08-26 17:41:51 +02:00
Miodec
3496768ee6 chore(oxlint): enable alwys-return with ignoreLastCallback 2025-08-26 17:41:51 +02:00
Miodec
b54052913c chore: bump oxlint version 2025-08-26 17:41:51 +02:00
Miodec
072006277d feat: add icelandic 200 2025-08-26 17:41:51 +02:00
Leonabcd123
c30453e2dd
chore(about page): fix punctuation (@Leonabcd123) (#6911)
### Description

Changed punctuation in the about page. We can also make the text in the
parenthesis a standalone sentence by just removing the parenthesis.
2025-08-25 23:06:46 +02:00
Leonabcd123
7a6a54c3c8
impr(custom text): replace control character improvements (@Leonabcd123) (#6909)
### Description

Made it so all \t are converted to tab characters.

### Closes

Fixes #6906

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-08-25 23:06:02 +02:00
Miodec
c2cee8bdee impr: always count correct partially completed words for wpm 2025-08-24 13:54:13 +02:00
Miodec
55bbedbcc3 chore: remove opacity 2025-08-24 13:52:45 +02:00
Miodec
d4b3d1489b chore: update grid and ticks colors for all charts for consistency 2025-08-24 13:52:22 +02:00
Miodec
258a437c9d impr: add alpha support to colors utils
!nuf
2025-08-24 13:45:43 +02:00
Miodec
1da6fbd35f chore: make failed blend hot pink to make it more obvious something went wrong 2025-08-24 13:26:48 +02:00
Christian Fehmer
5937f49246
ci(assets): Refactor json-validator (@fehmer) (#6901) 2025-08-22 13:37:56 +02:00
Christian Fehmer
d2c627fcc8
ci: convert json-validation to typescript (@fehmer) (#6899)
- convert json-validation to typescript
- integrate tests for assets back into the json-validation script
2025-08-21 00:42:21 +02:00
Seif Soliman
a1af28bb5d
fix: download screenshot button was not shown (@byseif21) (#6900)
Co-authored-by: Jack <jack@monkeytype.com>
2025-08-21 00:08:45 +02:00
Miodec
cc08930de3 fix: sentry lint issues
!nuf
2025-08-20 23:44:00 +02:00
Dilem351
263984f576
impr(quotes): add French quotes (@Dilem) (#6898)
### Description
Translation of the quote : When you give them a great gift, some people
can't help but wonder why the wrapping paper isn't their favorite color.
<!-- Please describe the change(s) made in your PR -->

### Checks

- [x] Adding quotes?
- [x] 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 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`
- [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! :) -->
2025-08-20 22:34:04 +02:00
Christian Fehmer
7d04637f7f
impr: validate username on google signup (@fehmer) (#6895) 2025-08-20 22:30:08 +02:00
Christian Fehmer
76597e6a08
impr(settings): Allow webp format for background images (@fehmer) (#6896) 2025-08-20 22:29:14 +02:00
Miodec
4aeadb9a85 chore: implement manual chunks, make sentry a dynamic import 2025-08-20 21:56:26 +02:00
Miodec
71821e31a9 chore: update browserslist 2025-08-20 20:47:04 +02:00
Miodec
a5d0a3e961 chore: update full-check script 2025-08-20 20:45:44 +02:00
Seif Soliman
e6519b166c
impr(screenshot): switch to modern-screenshot for enhancements (@byseif21) (#6884)
Switching the screenshot library from html2canvas to modern-screenshot.
for both visual for users and some technical/codebase benefits.

### Visual Improvements :
 * Background css filters now shows in the screenshot. 
   fix: #6862 , 
        #1613 ,

https://github.com/monkeytypegame/monkeytype/issues/6249#issuecomment-2651215569
* Sharper, higher-quality screenshots noticeably especially on high-DPI
screens.
* Backgrounds now render correctly on small screens that were previously
missing on mobile or small viewports, now included and properly scaled.
* Previously, with extra height e.g input history opened, the background
failed to cover everything even when it should have.
* The screenshot now more closely matches what users actually see across
devices and layouts.

### Non-Visual (Technical/Codebase) Improvements :
* Supporting modern css makes us now able to use css for the heatmap
instead of the JS.
     #5892 ,
      #5879
  * Reduced bundle size: Dropping html2canvas and its dependencies.
  * Up-to-date library, easier future improvements.

---------

Co-authored-by: Samuel Hautamäki <70753342+SirObby@users.noreply.github.com>
Co-authored-by: samuelhautamaki <samuelhautamaki@noreply.codeberg.org>
Co-authored-by: Miodec <jack@monkeytype.com>
2025-08-20 20:39:15 +02:00
Nad Alaba
a1293e79aa
chore: remove gulp dependency (@NadAlaba) (#6889)
Co-authored-by: Miodec <jack@monkeytype.com>
2025-08-20 20:10:41 +02:00
Miodec
f52f262f71 fix: unclosed word tags in words history
!nuf
2025-08-20 12:09:30 +02:00
Miodec
2a6bfbeefb chore: log high wpm results 2025-08-20 11:57:19 +02:00
Samuel Hautamäki
7018b83e27
feat(language): add hawaiian 200 1k (@SirObby) (#6883)
### Description

Added the hawaiian language, 200 and 1k variants. I used the
"freqlist_haw.txt" file from https://dohliam.github.io/corpus/haw/ which
sorts by frequency.

### Checks

- [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` 
- [x] Make sure to include your GitHub username prefixed with @ inside
parentheses at the end of the PR title.

---------

Co-authored-by: samuelhautamaki <samuelhautamaki@noreply.codeberg.org>
2025-08-19 22:11:04 +02:00
Miodec
9752e481ef refactor: move file 2025-08-19 21:22:21 +02:00
Miodec
ac05fd997d refactor: rename file 2025-08-19 21:22:03 +02:00
Jack
725fde1ae1
impr: loading page improvements (@miodec) (#6893)
- Refactor the loading page and the functions responsible for showing
elements
- Navigate loading options no longer override but they are used BEFORE
the page loading options. Keyframes are scaled accordingly to transition
smoothly
 - Removed the error element from the account page
 - Added a rejection / error handler to the loading page
 - Removed one more dependency from the account controller
2025-08-19 21:10:51 +02:00
TAMOUSS Radouane
b6959552ab
fix: add comma and period to specials funbox (#6870) (@radouane-tamouss) (#6887)
fix: add comma and period to specials funbox (#6870) (@radouane-tamouss)

- Add missing ',' and '.' characters to specials array in getSpecials()
- Add comprehensive tests for getSpecials() function
- Fixes issue where comma and period never appeared in specials funbox

Closes #6870

### Description

This PR fixes issue #6870 where the "specials" funbox was missing comma
(,) and period (.) characters. Users reported that these common
punctuation marks never appeared when using the specials funbox, making
it impossible to practice typing them in that mode.

**Changes made:**
1. Added ',' and '.' to the `specials` array in the `getSpecials()`
function
2. Added comprehensive unit tests to verify the fix works correctly and
prevent future regressions
3. Tests ensure all special characters (including comma and period) can
be generated

**Testing:**
- Added unit tests that specifically verify comma and period are
included
- Tests run multiple iterations to account for randomness in character
generation
- Verified all existing functionality remains unchanged

### Checks
- [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.

Closes #6870
2025-08-19 10:48:15 +02:00
Miodec
057fdf3fed chore: bump oxlint version 2025-08-18 15:38:13 +02:00
Miodec
14ce657273 fix: custom min speed mode setting not saving between sessions
closes #6890
2025-08-18 15:13:42 +02:00
Dilem351
6f50752b69
impr(quotes): add French quotes (@Dilem) (#6892)
### Description

Translation of the quote : "I don't think it's that simple. Some people
never observe anything. They simply endure existence with a kind of
passive insistence, and they resist with angry spite anything that might
shake them from their false serenity."

<!-- Please describe the change(s) made in your PR -->

### Checks

- [x] Adding quotes?
- [x] 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 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`
- [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! :) -->

---------

Co-authored-by: Miodec <13181393+Miodec@users.noreply.github.com>
2025-08-18 14:08:12 +02:00
Jack
ac4a151359
refactor: loading page rework (@miodec) (#6885)
- Moved all loading page logic to the page controller. No other module
handles text or bar updating. The page controller displays either the
spinner or loading bar (depending on the configuration) inbetween the
source and target page. Once a promise resolves the page change
continues.
 - Pages can now say they require a loading page before opening the page
- Navigate function call can override that / add a loading page to any
page load
- Simplified account controller flow a lot - only one `navigate` call
remains
- Removed the preloader from the account page which simplifies things
aswell
 - Moved loading page styles
2025-08-18 14:07:36 +02:00
Miodec
7c27898d0b fix: account menu being shown under the test config
closes #6886
2025-08-16 11:07:24 +02:00
Miodec
1402b3addf refactor: rework change page function
remove unnecessary wrapping promise
use promiseAnimation for easier understanding
2025-08-16 00:01:30 +02:00
Miodec
2b4c3d2efe chore: stronger easing method type, add default easing method 2025-08-15 23:53:29 +02:00
Miodec
3e1c8f2f56 chore: return if element is null to avoid errors 2025-08-15 21:06:43 +02:00
Miodec
3879e58f93 style: use horizontalPadding to calculate right property 2025-08-15 20:47:54 +02:00
Miodec
aac60fe480 impr: add share buttons to desktop and mobile test config 2025-08-15 20:30:37 +02:00
Jack
6bd5240e1a
refactor: add auth event to reduce number of dependencies in account controller (@miodec) (#6865) 2025-08-15 20:29:57 +02:00
Miodec
ab4e1e8ce3 chore: bump turbo version 2025-08-15 18:28:08 +02:00
Majid Shajari
d2f85c9721
fix(layout): correct persian_farsi and persian_standard layouts, also add persian colemak layouts (@MajidShajari) (#6876)
### Description
 
update layouts persian_farsi and persian_standard with correct position
of key and shift modifier
add colemak layouts for personal favorite layout and help to who config
this layout to keyboard can training persian word and quotes (Me 😁)

### Checks

- [ ] 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 screenshot of the theme, especially with different test
settings (colorful, flip colors) to your pull request
- [x] Adding a layout?
- [x] Make sure to follow the [layouts
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/LAYOUTS.md)
  - [x] Add layout to `packages/schemas/src/layouts.ts`
  - [x] Add layout json file to `frontend/static/layouts` 
  - [X] Update 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.
- [ ] Make sure the PR title follows the Conventional Commits standard.
(https://www.conventionalcommits.org for more info)
- [ ] 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! :) -->
2025-08-15 17:06:22 +02:00
Christian Fehmer
c5d43dd673
feat(profile): optionally include test activity on users public profile (@fehmer) (#6824)
Co-authored-by: Miodec <jack@monkeytype.com>
2025-08-15 14:31:58 +02:00
Christian Fehmer
91f64d211e
refactor: replace deepClone with structuredClone (@fehmer) (#6882) 2025-08-15 14:05:47 +02:00
Miodec
a070911fdd chore: remove test code, disable debounce on login
also increases default debounce
2025-08-14 11:49:07 +02:00
Seif Soliman
5fcf964ebc
fix(test): immediately reposition caret and tape on tapeMargin change (@byseif21) (#6860)
### Description

changing `tapeMargin` mid-test didn’t move the caret until typing
resumed because no layout update was triggered for this config.
2025-08-14 11:30:48 +02:00
Christian Fehmer
a3764460e4
impr(validation): don't debounce if delay is zero (@fehmer, @miodec) (#6878)
after #6866 set debounceDelay to 0 for email validation
2025-08-14 11:30:06 +02:00