Commit graph

4992 commits

Author SHA1 Message Date
Jack
16ad0e285a
refactor: test word centering behavior, words input position update (@miodc) (#6962)
brrr
2025-09-17 19:03:01 +02:00
Miodec
10130d7348 fix(language): fix typo
closes #6952
2025-09-12 18:12:19 +02:00
Nad Alaba
05c1b9e533
perf(quote search): optimize highlighting search matches (@NadAlaba) (#6944)
- use a simpler and 6x faster `highlightMatches` method.
- add tests.
2025-09-12 10:36:58 +02:00
Miodec
a33b464511 chore: change oxlint config to jsonc
also disable one rule
2025-09-11 22:04:48 +02:00
Miodec
1fa473744a chore: bump oxlint 2025-09-11 22:04:48 +02:00
Christian Fehmer
d1e118a01d
refactor: page loadingOptions rework (@miodec, @fehmer) (#6949)
Co-authored-by: Miodec <jack@monkeytype.com>
2025-09-11 15:56:14 +02:00
Miodec
1512e46dfc chore: update debug function 2025-09-11 12:18:34 +02:00
dependabot[bot]
b25bcb13e9
build(deps-dev): bump vite from 6.3.4 to 6.3.6 in /frontend (#6948)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 6.3.4 to 6.3.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v6.3.6</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.3.6/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
<h2>v6.3.5</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v6.3.5/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v6.3.6/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->6.3.6 (2025-09-08)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: apply <code>fs.strict</code> check to HTML files (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20736">#20736</a>)
(<a
href="0ab19ea9fc">0ab19ea</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/20736">#20736</a></li>
<li>fix: upgrade sirv to 3.0.2 (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20735">#20735</a>)
(<a
href="e11d24008b">e11d240</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/20735">#20735</a></li>
<li>test: detect ts support via <code>process.features</code> (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20544">#20544</a>)
(<a
href="7d9922972b">7d99229</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/20544">#20544</a></li>
</ul>
<h2><!-- raw HTML omitted -->6.3.5 (2025-05-05)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix(ssr): handle uninitialized export access as undefined (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19959">#19959</a>)
(<a
href="fd38d076fe">fd38d07</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19959">#19959</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="3f337c5e24"><code>3f337c5</code></a>
release: v6.3.6</li>
<li><a
href="e11d24008b"><code>e11d240</code></a>
fix: upgrade sirv to 3.0.2 (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20735">#20735</a>)</li>
<li><a
href="0ab19ea9fc"><code>0ab19ea</code></a>
fix: apply <code>fs.strict</code> check to HTML files (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20736">#20736</a>)</li>
<li><a
href="7d9922972b"><code>7d99229</code></a>
test: detect ts support via <code>process.features</code> (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/20544">#20544</a>)</li>
<li><a
href="84e4647efa"><code>84e4647</code></a>
release: v6.3.5</li>
<li><a
href="fd38d076fe"><code>fd38d07</code></a>
fix(ssr): handle uninitialized export access as undefined (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19959">#19959</a>)</li>
<li>See full diff in <a
href="https://github.com/vitejs/vite/commits/v6.3.6/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=6.3.4&new-version=6.3.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/monkeytypegame/monkeytype/network/alerts).

</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Miodec <jack@monkeytype.com>
2025-09-10 16:58:43 +02:00
Miodec
29fb547978 chore: remove dead leaderboards code 2025-09-10 12:26:25 +02:00
Jack
e529f1e177
fix(navigation): level up animation showing wrong level (@miodec) (#6946)
Introduced in #6865, caused by account button reacting to the
`snapshotUpdate` triggered by `addXp` function.

Fixed by merging result related snapshot functions into one and adding a
`noDispatchEvent` param to `setSnapshot` and using it in the new
function and `addXp`. This works because result and alerts panel both
call the `XPBar.update` directly to animate the xp gain.
2025-09-10 11:56:10 +02:00
Miodec
ec14538c3f chore: fix snapshotresult type 2025-09-09 12:37:19 +02:00
Miodec
29e7700390 chore: add debug module to analyse function execution time 2025-09-08 23:40:37 +02:00
Miodec
bfebb36b91 perf: speed up focus.set by ~22x 2025-09-08 16:14:14 +02:00
Jack
6c10c13722
refactor: remove removedUIWordCount, add wordIndex to word dom elements (@miodec) (#6932)
Removes confusing `removedUIWordCount`, simplifying "word at index"
access.
2025-09-08 13:57:51 +02:00
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