Commit graph

4978 commits

Author SHA1 Message Date
Brandon
81ea9e6891
impr(language): add 15 new code go words (@bmarse) (#6936)
### Description
Adding in an updated list of more golang builtins for the `code go`
language.

For current builtin list see official docs: https://pkg.go.dev/builtin

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

<!-- 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-09-08 13:06:10 +02:00
Seif Soliman
634f7911af
fix(theme-controller): flashing issue when switching between custom & preset (@byseif21) (#6943)
Closes #6939
2025-09-08 13:01:42 +02:00
Miodec
ed9aa8769a impr: prevent space from scrolling the page when on the result page 2025-09-07 21:38:12 +02:00
Miodec
892b7d020b impr(result): add tag pb button to chart legend buttons 2025-09-05 08:23:48 +02:00
Miodec
01d09cef01 fix(input): issues with typing accented characters in certain linux distros 2025-09-04 22:04:35 +02:00
Miodec
8a3fa87388 fix(practice slow words): too many words being passed into practice mode in timed tests 2025-09-04 19:32:21 +02:00
Seif Soliman
01d8363e19
impr(caret): handle mixed language direction (@byseif21) (#6695)
### Description
enhances the caret positioning logic to support mixed language
directions (LTR and RTL) within words. It introduces a new
hasRTLCharacters utility function to detect RTL characters in individual
words, allowing the caret to adjust dynamically based on word-specific
direction rather than relying solely on the language's default direction

#### notes:
* tested no affect to the normal single direction.
* no tap mode handle included 
 * related #6694 #6666

---------

Co-authored-by: Jack <jack@monkeytype.com>
2025-09-04 12:36:59 +02:00
Seif Soliman
64473e4e69
fix(commandline): prevent false theme apply during perview (@byseif21) (#6930)
* When leaving a theme item to a non‑theme item inside the mixed
commandline list, the preview theme temporarily applied after closing
the commandline without selecting it. so switched back to clearPreview()
as it was,
#### to REPRODUCE: type e.g "theme off" in the commandline then close
the commandline.

* and to fix the preview flashing issue that the false was added for, in
custom themes included setCustomThemeId with changeTheme in the check ,
so custom theme hovers are now treated as the same preview context and
no longer clear the preview between items.
2025-09-04 11:42:51 +02:00
Christian Fehmer
56b25f30bc
build: rename json-validation to check-assets, improve error messages (@fehmer) (#6933)
- **improve error messages**
- **rename json-validation to check-assets**
2025-09-03 18:10:34 +02:00
Jack
8627235bef
feat(result): rename raw to burst, add raw line to result graph, add ability to hide chart data (@miodec) (#6907) 2025-09-02 11:06:15 +02:00
Miodec
4d46c62982 chore(eslint): add rule to protect against accessing __testing outside of test files 2025-09-01 14:25:58 +02:00
aleksiye
12f78e18cb
feat(layout): add handsdown neu, and neu inverted (@aleksiye) (#6921) 2025-09-01 12:42:10 +02:00
junnaaa
58e6a91fde
feat(layout): add kuntem-jq layout (@junnnaaaaaa) (#6920)
### Description

<!-- Please describe the change(s) made in your PR -->
addition of kuntem-jq, a variation of kuntem featuring a jq swap that is
better in the english languange and what i use personally
### 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` 
- [ ] 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)
- [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-09-01 12:01:34 +02:00
Quiggleson
3bac286017
fix(custom text modal): reset practise words on submit (@quiggleson) (#6927)
### Description

There was a bug in which the displayed text in the custom text modal was
not being saved when submitted. This occurred when users opened the
custom text modal while taking a test with practice words.

The new behavior is clicking "ok" in the custom text modal calls
`resetBefore()` from `practise-words.ts` to prevent the test from
reverting to the previous list of words.

### Tests
|Action|Behavior|
|---|---|
|Submit some text in the custom text modal without practicing words|The
text in the modal's text area is displayed in the test|
|Submit some text in the custom text modal during a test with practice
words|The text in the modal's text area is displayed in the test|
|set the custom text to practice words twice in a row|The text in the
modal's text area is displayed in the test|
|change the custom text during a test with practice words|The text in
the modal's text area is displayed in the test|


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

<!-- 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.-->
2025-09-01 11:59:02 +02:00
Jemson
177eb590fd
fix(profile): prevent profile XP updates on other user profile (@Majestic-Fire) (#6897)
### Description

- Fixed a visual bug in the updateXp() function where claiming rewards
would update any visible profile
- Added same user check when updating XP from alerts modal
- Check uid or displayname, when sameUserCheck is true and the
activePage is "profile".


https://github.com/user-attachments/assets/bd6ec3ca-14ea-4021-a889-7c1931ed6888

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

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-09-01 11:51:07 +02:00
Miodec
667748ad27 chore: fixing zeor's insanity 2025-08-29 13:30:12 +02:00
Christian Fehmer
984cb3cd9d
fix(testSettings): link with custom limit not applied correctly (@fehmer) (#6917)
fix for
https://www.reddit.com/r/monkeytype/comments/1n0p9fk/custom_timer_changes_to_number_of_words_when/
2025-08-27 19:04:26 +02:00
Miodec
a005467107 chore: add joshu badge 2025-08-27 15:46:07 +02:00
Christian Fehmer
4560257110
ci(assets): use zod in json-validation (@fehmer) (#6902) 2025-08-27 15:23:26 +02:00
Christian Fehmer
d264fce323
fix(theme): problems with theme preview (@fehmer) (#6881)
1. when a custom theme is active preview of regular theme was not
applied, introduced with
fdead53ba9
2. when custom theme is active previewing other custom themes set the
color to the active custom theme first, then the selected one causing
flashing

To reproduce:

1. preview of regular theme not working 
- create a custom theme with black background, activate it
- open commandline to preview a regular theme

2. custom theme colors get set multiple times
- create a custom theme with white background called white and activate
it
- create to custom themes with black background called black1 and black2
- switch preview between black1 and black2
2025-08-27 14:52:21 +02:00
Copilot
44ceb7137e
impr(sign up): add temporary email detection to registration form (@copilot) (#6912)
Implements temporary email detection for the registration email input
field on the login page. When users focus on the email input, the system
dynamically imports the `disposable-email-domains-js` package to check
for temporary/disposable email addresses.

## Changes Made

- **Dynamic Import**: Added lazy loading of
`disposable-email-domains-js` package that triggers on email input focus
- **Email Validation Enhancement**: Extended the existing email
validation in `login.ts` to include temporary email detection
- **User Warning**: Shows warning message "Be careful when using
temporary emails - you will need it to log into your account" for
detected temporary emails
- **Graceful Degradation**: Handles module import failures silently
without breaking existing functionality
- **Dependency Management**: Added `disposable-email-domains-js` to
frontend package dependencies

## Technical Implementation

The implementation integrates seamlessly with the existing
`validateWithIndicator` system:

```typescript
// Dynamic import on focus
emailInputEl.addEventListener("focus", async () => {
  if (!moduleLoadAttempted) {
    moduleLoadAttempted = true;
    try {
      disposableEmailModule = await import("disposable-email-domains-js");
    } catch (e) {
      // Silent failure - continues without temp email detection
    }
  }
});

// Validation check
if (disposableEmailModule && disposableEmailModule.isDisposableEmail) {
  if (disposableEmailModule.isDisposableEmail(email)) {
    return {
      warning: "Be careful when using temporary emails - you will need it to log into your account"
    };
  }
}
```

## Key Features

- **Non-blocking**: Module only loads when needed and failures don't
interrupt the user experience
- **Warning Level**: Uses the existing warning system, allowing users to
continue with registration
- **Preserved Functionality**: All existing email validation (education
emails, typos) continues to work unchanged
- **Performance Optimized**: Lazy loading prevents unnecessary network
requests until the feature is actually used

## Testing

Verified that:
- Temporary emails (e.g., mailinator.com, 10minutemail.com) show
appropriate warnings
- Regular emails (e.g., gmail.com, outlook.com) pass validation normally
- Education emails continue to show existing warnings
- Module import failures are handled gracefully
- All existing validation behavior is preserved

<screenshot>
![Education email validation still
works](https://github.com/user-attachments/assets/c035e0f8-df39-407b-95aa-85abc4409f38)

![Regular emails pass
validation](https://github.com/user-attachments/assets/f1925ecc-e81e-4dec-867c-a2bc0c19b469)
</screenshot>

Resolves the requirement to detect temporary emails while maintaining a
smooth user experience and backward compatibility.

> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> -
`https://api.github.com/repos/mziyut/disposable-email-domains-js/contents/package.json`
>   - Triggering command: `curl -s REDACTED` (http block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/monkeytypegame/monkeytype/settings/copilot/coding_agent)
(admins only)
>
> </details>



<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/monkeytypegame/monkeytype/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Miodec <13181393+Miodec@users.noreply.github.com>
Co-authored-by: Jack <jack@monkeytype.com>
2025-08-27 14:51:01 +02:00
Miodec
b9feaf538b chore(linting): enable restrict-plus-operands 2025-08-27 11:36:50 +02:00
Vivien Garcia
02f17eec67
feat(layout): add ergo_split46 layout (@viviengarcia) (#6914)
### Description

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

### 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` 
- [ ] 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)
- [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-26 22:17:24 +02:00
Christian Fehmer
576b35f4d3
fix(test): lazy mode set via command line does not restart test (@fehmer) (#6908) 2025-08-26 22:16:59 +02:00
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
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
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
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