Commit graph

222 commits

Author SHA1 Message Date
Miodec
443e27fbf8 feat: add composition display setting 2025-12-10 17:19:52 +01:00
Miodec
4f8d8c557c chore: dont check for uncommited changes when deploying to preview 2025-12-10 14:37:08 +01:00
Miodec
d997ae8746 chore: add script to deploy preview frontend 2025-12-10 14:35:22 +01:00
Miodec
2ee582a597 chore: configure eslint/curly rule 2025-12-09 22:41:45 +01:00
Jack
b5a03e0040
chore(linting): enable prefer-nullish-coalescing (@miodec) (#7209) 2025-12-09 20:37:04 +01:00
Miodec
2fcc86dddf chore: make sure to use production env when building for production 2025-12-02 23:33:51 +01:00
Miodec
a9e0db4f88 chore: update timer style schema
also update config and commandline metadata
2025-11-28 21:55:38 +01:00
Gian Peña
d18408700b
impr(timer/progress style): add flashing timer style (@gianpena) (#7139)
### Description

This copies the existing `text` timerstyle except on timed modes, where
it will only show the remaining progress (seconds) on every 15th second
(shows on 1:00, 45, 30, 15 and 0).

The motivation for this addition was that I wanted a middle ground
between the `text` timerstyle (in my opinion just a _little_ too
distracting) and no live progress indicator at all (I lose track of how
much time remains in the test), and I believe this achieves that middle
ground.

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-11-27 11:50:16 +01:00
Jack
f910c8a567
chore: prettier upgrade (@miodec) (#7159) 2025-11-27 00:20:09 +01:00
Leonabcd123
e8339f0a1f
feat(funbox): Add rot13 funbox (@Leonabcd123) (#7116)
### Description

Added a new funbox mode that implements the rot13 cipher, shifting each
character over by 13 places.

I'm not really sure which properties fit best with this...

Implements #6565
2025-11-26 22:40:10 +01:00
Miodec
3dfea100d1 chore: upgrade typescript
also disables declaration file generation since we dont use them anyway
2025-11-24 13:33:49 +01:00
Miodec
032844d023 feat: add show personal best
you can now view the pb for
current test settings right above
the test words, before starting the test
2025-11-23 19:30:30 +01:00
Jack
ea84adfb42
refactor: input rewrite v3 (@miodec) (#7119)
input goes brr
2025-11-23 15:52:52 +01:00
Miodec
2107c87fdb chore: upgrade oxlint
also enables prefer-includes
2025-11-20 12:22:58 +01:00
Miodec
36574b4096 impr: add monkey caret style
also moves caret images to a folder
2025-11-19 11:08:36 +01:00
Christian Fehmer
1009791915
refactor: remove lodash from backend (@fehmer) (#6953) 2025-11-17 12:51:40 +01:00
Leonabcd123
13b75f46bf
feat(test): add indicate typos both (@Leonabcd123) (#7072)
### Description

Added a "both" option to indicate typos that keeps the replace
functionality, and makes the below functionality show the correct
instead of the incorrect letters. We just check whether the mode is
`both` when deciding whether to pass `input` to `createHintsHtml` or to
pass `currentWord`. All functionality of replace and below is kept by
just adding or operators to check whether indicateTypos is `both` OR
replace/below.

Implementing #7024

---------

Co-authored-by: Jack <jack@monkeytype.com>
2025-11-15 10:46:31 +01:00
Sameer Singh
bb6e0d9824
feat(theme): add Vesper Light (@SameerJS6) (#7040)
### Description

Adds Vesper Light and Oscura themes. Oscura by
[Fey](https://github.com/narative/oscura).

<!-- 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` 
- [x] Adding a theme?
- Make sure to follow the [themes
documentation](https://github.com/monkeytypegame/monkeytype/blob/master/docs/THEMES.md)
  - [x] Add theme to `packages/schemas/src/themes.ts`
  - [x] Add theme to `frontend/src/ts/constants/themes.ts`
  - [x] Add theme css file to `frontend/static/themes`
- [x] 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! :) -->


## Preview

### Vesper Light

#### Home Route
<img width="1920" height="1440" alt="vesper-light"
src="https://github.com/user-attachments/assets/f2f43ecf-ee63-4797-a8e0-781c6879551f"
/>

#### Settings Route
<img width="1200" height="676" alt="80_1x_shots_so"
src="https://github.com/user-attachments/assets/e595faa9-9731-4aef-bc0e-95f882391289"
/>

#### Result Route
<img width="1200" height="676" alt="908_1x_shots_so"
src="https://github.com/user-attachments/assets/b86a7bae-dacf-4eba-b987-0620ee533d33"
/>

### Oscura

#### Home Route
<img width="1920" height="1440" alt="789_1x_shots_so"
src="https://github.com/user-attachments/assets/80c3f950-ef60-4ef1-aa35-9cc1c436b426"
/>

#### Settings Route
<img width="1920" height="1440" alt="194_1x_shots_so"
src="https://github.com/user-attachments/assets/08bf81d9-6a6f-4edc-89f2-ed9106a465b0"
/>

#### Result Route
<img width="1920" height="1440" alt="95_1x_shots_so"
src="https://github.com/user-attachments/assets/0d1ee6a5-78e6-4c66-a5e0-b2ab422ffe4e"
/>

### Toasts Theme For Vesper Light & Oscura
<img width="1920" height="1440" alt="585_1x_shots_so"
src="https://github.com/user-attachments/assets/b658811d-3303-4079-9e30-57d465093d04"
/>
2025-11-13 15:34:51 +01:00
Christian Fehmer
d74051e878
feat(leaderboard): add friends filter to daily/weekly leaderboard (@fehmer) (#7084) 2025-11-12 14:41:22 +01:00
Christian Fehmer
8db1140040
chore: update vitest to 4.0.8 (@fehmer) (#7096) 2025-11-12 12:42:30 +01:00
dotleon
05e1b828ae
impr(languages): fixed the default hungarian word list, and also added hungarian_1k list (@dotleon) (#7087)
### Description

Fixed the default hungarian word list (it had less than 200 words and
the words were really weird and rare ones).

Added hungarian 1k. 

The word list is from here:
https://en.wiktionary.org/wiki/Wiktionary:Frequency_lists/Hungarian_webcorpus_frequency_list
, but I removed some words that did not make sense for type test, like
"kft." and "-e" and also removed names

### Checks

- [ ] 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`
- [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 #
2025-11-12 12:33:46 +01:00
Christian Fehmer
946f41835f
impr: randomize themes based on system theme (@fehmer) (#7075)
closes #7069
2025-11-12 12:31:50 +01:00
connermcnicholas
9cb19e3ea9
feat(theme): added pale_nimbus (@conner-mcnicholas) (#7055)
# Description

Created a new theme "pale_nimbus" per instructions.

## Screenshots
 
####  ------Normal Test------
<img width="1244" height="1170" alt="test"
src="https://github.com/user-attachments/assets/9b74bf69-6202-4dde-b011-fa8cea48168a"
/>

####  ------Flipped Test------
<img width="1242" height="1172" alt="flip"
src="https://github.com/user-attachments/assets/589ee12a-ce34-4688-beb3-9f43fe147450"
/>

####  ------Colorful Test------
<img width="1244" height="1170" alt="colorful"
src="https://github.com/user-attachments/assets/7079fc55-461d-4355-a9c8-eeede747f4f8"
/>

####  ------Flipped and Colorful Test------
<img width="1240" height="1166" alt="flip_colorful"
src="https://github.com/user-attachments/assets/30ac5c08-b2cb-4481-99ff-65f6dc4ab77f"
/>

####  ------Settings------
<img width="1238" height="1170" alt="menu"
src="https://github.com/user-attachments/assets/d7818bf0-02af-4433-b6ba-487a426dace1"
/>

####  ------Stats------
<img width="928" height="1156" alt="stats"
src="https://github.com/user-attachments/assets/cef260af-858b-45b3-837b-121c538d450c"
/>
2025-11-12 12:11:00 +01:00
Christian Fehmer
9d64a57daf
feat(leaderboard): add friends filter to all-time leaderboard (@fehmer) (#7061) 2025-10-31 18:57:42 +01:00
Miodec
586a19ad3e chore: upgrade oxlint 2025-10-31 14:18:59 +01:00
Christian Fehmer
d885e70232
feat: add friend requests and list (@fehmer) (#6658)
make some friends on monkeytype

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-10-28 12:36:16 +01:00
Jack
7e6a73aac2
chore: upgrade to vite 7 (@miodec) (#7051) 2025-10-27 17:17:21 +01:00
Andele Swierstra
e4afca1ff1
feat(layout): add Gallium-NL layout (@ririshi) (#7029)
### Description
I recently created a modded version of Gallium that is more suited for
typing a mix of English and Dutch, rather than just being optimized for
English. I'd love to start learning the layout, so having a visual guide
would be very useful. I think others in my situation (who type a mix of
English and Dutch) could also benefit from having this layout added.
<!-- Please describe the change(s) made in your PR -->

### Checks

- [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` 

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

<!-- 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-10-21 13:24:18 +02:00
Christian Fehmer
4268572be4
build: fix scope of dependency @monkeytype/schemas (@fehmer) (#7033) 2025-10-21 13:05:07 +02:00
Ryan Souza
154b88eecf
feat(language): add Erlang programming language support (@Ryrden) (#7013)
### Description

This PR adds support for the Erlang programming language to Monkeytype,
providing developers with a comprehensive set of essential Erlang
keywords, OTP behaviors, and standard library functions for typing
practice.

**Changes made:**
- Add `code_erlang` to language schema
(`packages/schemas/src/languages.ts`)
- Add `code_erlang` to frontend constants in the `code` language group
(`frontend/src/ts/constants/languages.ts`)
- Create `code_erlang.json` with 245 essential Erlang keywords and
functions
- Includes core language constructs (after, and, case, receive, spawn),
OTP behaviors (gen_server, supervisor, application), built-in functions
(spawn_link, monitor, register), and standard library modules (lists,
string, ets, mnesia, file, io)

### Checks

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

<!-- No related issues found -->

Note: Please, is it possible to add the label `hacktoberfest-accepted`
to this PR?

Co-authored-by: Jack <jack@monkeytype.com>
2025-10-15 10:44:50 +02:00
Ryan Souza
260c3a94c3
feat(language): add Clojure programming language support (@Ryrden) (#7012)
### Description

This PR adds support for the Clojure programming language to Monkeytype,
providing developers with a comprehensive set of essential Clojure
keywords and constructs for typing practice.

**Changes made:**
- Add `code_clojure` to language schema
(`packages/schemas/src/languages.ts`)
- Add `code_clojure` to frontend constants in the `code` language group
(`frontend/src/ts/constants/languages.ts`)
- Create `code_clojure.json` with 212 essential Clojure keywords and
functions
- Includes core language constructs (def, defn, let, fn), control flow
(if, when, cond), data manipulation (map, filter, reduce), concurrency
primitives (atom, ref, agent), and utility functions

### Checks

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

<!-- No related issues found -->

Note: Please, is it possible to add the label `hacktoberfest-accepted`
to this PR?
2025-10-15 10:43:14 +02:00
informal-stripes-condo
820ac7148e
feat(languages): add code ocaml language (@informal-stripes-condo) (#7000)
### Description

Add Code OCaml Language

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

<!-- 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-10-15 10:38:03 +02:00
MasterRon
a15d84e0ce
feat(layout): add gust layout (@MasterRon) (#6991)
### 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
- [ ] 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.
- [ ] 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-09-25 13:47:17 +02:00
Nad Alaba
4318601799
fix(funbox): caret/tape/ui issues in backwards funbox (@NadAlaba) (#6956)
### Description

1. refactor:
- store (language direction / state of direction reversing funbox) in
test-state.ts, and set them on `TestLogic.init()` which is called on
each restart which happens on each change of Config.language or funbox.
- use these new direction variables in (caret.ts / test-ui.ts /
pace-caret.ts /result-word-highlight.ts) instead of calling `await
JSONData.getCurrentLanguage(Config.language)`.

2. css changes:
- add `unicode-bidi: bidi-override;` to .words with ligatures in
backwards to fix the direction of LTR words on LTR languages in custom
tests (which now have `.withLigatures` class regardless of language).
- remove `direction: rtl;` from right to left .word and keep it on right
to left #words. This was done because after adding the above
`bidi-override`, (.word)s directioin was being forced to rtl on tests
with RTL language and RTL words (custom and none custom tests), which is
wrong (should be ltr on those tests because of the backwards funbox).
- P.S., removing this from .word does not affect normal tests, because
.word direction is inherited from #words directtion on non
.withLigatures tests (e.g, non custom tests in non withLigatures
languages), and it is calculated using internal browser algorithm based
on characters used in .withLigatures tests (tests in languages with
ligatures and all custom tests).

3. add the property "reverseDirection" to backwards funbox, which
signifies that the direction of the test should be the reverse of the
direction of Config.language, and the direction of a word should be the
reverse of `Strings.isWordRightToLeft()`.

4. allow backwards funbox to work on languages with ligatures.

5. move `void Caret.updatePosition()` call to after the call of
`TestUI.lineJump()` in `input-controller.ts:handleSpace()`.

6. change name of `Strings.getWordDirection()` to
`Strings.isWordRightToLeft()` which explains what does the returned
boolean mean, and add a parameter `reverseDirection` that flips the
final result if true.

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-09-19 22:15:03 +02:00
Christian Fehmer
5026f41954
impr: add custom error codes to contracts and api doc (@fehmer) (#6976) 2025-09-19 18:59:46 +02:00
verdant23
74e4dd7b2a
feat(layout): add pine v4 layout (@verdant23) (#6958)
Adding in pine v4 from https://layouts.wiki/layouts/2021/pine/

### 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)
- [ ] 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-19 18:18:22 +02:00
Christian Fehmer
344e467f87
fix: password validation rules (@fehmer) (#6967)
fixes #6966 , #6965
2025-09-19 18:14:27 +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
Miodec
5a39049035 chore: bump compatibility header 2025-09-04 19:38:26 +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
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
Christian Fehmer
4560257110
ci(assets): use zod in json-validation (@fehmer) (#6902) 2025-08-27 15:23:26 +02:00
Miodec
b9feaf538b chore(linting): enable restrict-plus-operands 2025-08-27 11:36:50 +02:00
Miodec
10557c9dba chore: move rule to the list of unused rules 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
Jack
e4c0c28150
chore: bump eslint typescript plugin (@miodec) (#6915) 2025-08-26 22:12:27 +02:00
Miodec
3496768ee6 chore(oxlint): enable alwys-return with ignoreLastCallback 2025-08-26 17:41:51 +02:00