Commit graph

3244 commits

Author SHA1 Message Date
Christian Fehmer
6adfcb092d
refactor: use virtual module for env-config (@fehmer) (#7095) 2025-11-12 14:23:03 +01:00
Adam Al Shouli
027e572617
fix: ae/oe chars being registered as two mistakes when mistyped (@thedev0ps) (#7090)
### Description

Remove the ae/oe character check which makes it register as seperate
characters of the next character is not ae/oe, causing two mistakes
instead of one.

<!-- 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`
- [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 #6482 

<!-- 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-11-12 12:34:43 +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
Aman Pal
c76f8dc664
fix: add input validation for new filter preset modal (@amandevelops) (#7073)
### Description

Added input validation for `New filter preset` modal in frontend and
display appropriate indicators in realtime

#### Updated UI
<img width="610" height="333" alt="Screenshot From 2025-11-03 02-08-40"
src="https://github.com/user-attachments/assets/0f0f3628-5e61-4de9-8100-d96475f8bf08"
/>

<img width="610" height="333" alt="Screenshot From 2025-11-03 02-08-26"
src="https://github.com/user-attachments/assets/df0fd478-7d54-4a99-b7ed-198f1f9ebae6"
/>


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

<!-- 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 #7063

<!-- 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-11-12 12:30:04 +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
Miodec
8aa1f51c2c fix: wpm sometimes goes negative in zen mode
kind of a band aid fix but its ok

closes #7099
2025-11-12 11:52:38 +01:00
Miodec
a3765b9b52 fix: partially correct last words counting towards final wpm in non timed modes 2025-11-09 09:54:29 +01:00
Miodec
df06b62636 refactor: rework keypress tracking
removes the need for a setTimeout which causes issues during lag
2025-11-09 09:41:34 +01:00
Miodec
52b7d963b9 chore: disable sentry replays for now 2025-11-07 16:12:52 +01:00
Christian Fehmer
70dfd2aa6c
chore: language integrity check (@fehmer) (#7074)
Co-authored-by: Miodec <jack@monkeytype.com>
2025-11-07 16:12:35 +01:00
Miodec
bf37029f6c fix: 404 page not working 2025-11-06 20:11:22 +01:00
Adam Al Shouli
feb91bdb61
style: add space between connected sentences in security policy (@thedev0ps) (#7078)
### 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`
- [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-11-06 14:26:41 +01:00
Christian Fehmer
35be4bdfd5
impr(leaderboard): fix icons on friend leaderboards (@fehmer) (#7086) 2025-11-06 13:30:19 +01:00
Miodec
2f5cb164cb fix: xp leaderboards missing first column 2025-10-31 19:12:25 +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
e930d0c3f3 fix: unable to delete a preset in some cases
closes #7068
closes #7064
2025-10-31 18:17:35 +01:00
Rajyavardhan Singh
ffd55c532c
feat: add custom character generator to custom text modal (@imrajyavardhan12) (#7037)
- Add new "custom generator" button to custom text modal
- Create generator modal with character input and presets
- Support min/max word length and word count configuration
- Include presets for alphas, numbers, symbols, bigrams, trigrams
- Add code-specific patterns for programming practice

Closes #6941

### Description

Adds a custom character generator to the custom text modal, allowing
users to generate random "words" from a custom set of characters or
strings. Useful for practicing specific character combinations,
especially for programmers who want to improve typing speed with symbols
and patterns commonly used in code.

### Testing

1. Open custom text modal
2. Click "custom generator"
3. Try presets or enter custom characters
4. Adjust word length and count
5. Click "Set" or "Add"

---------

Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Miodec <jack@monkeytype.com>
2025-10-31 15:57:03 +01:00
Christian Fehmer
08165adc2c
impr(friends): remember sorting of friends list (@fehmer) (#7062)
Store sorting of the friends list in local storage and apply on load
2025-10-31 13:36:40 +01:00
Christian Fehmer
78b0eb25ab
refactor(accounts): use sortedTable for history (@fehmer) (#6747)
replace sortable table on accounts page with `SortedTable`
2025-10-29 11:56:35 +01:00
Christian Fehmer
1cf316a772
impr(friends): validate username on add friend (@fehmer) (#7059)
fixes #7058
2025-10-28 17:33:19 +01:00
Christian Fehmer
caae0d404e
fix(friends): not able to sort by 'friends for' column (@fehmer) (#7057) 2025-10-28 17:32:54 +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
Miodec
9aa30a2a41 refactor: rework html/css of custom theme edit section 2025-10-28 09:38:06 +01:00
Miodec
d77169ae2b impr: apply reduced motion to live stats 2025-10-27 17:42:00 +01:00
Miodec
7f8e205723 fix: config glob pattern, string replace
!nuf
2025-10-27 17:36:45 +01:00
Jack
7e6a73aac2
chore: upgrade to vite 7 (@miodec) (#7051) 2025-10-27 17:17:21 +01:00
Christian Fehmer
6902b407e7
fix: run without firebase-config (@fehmer) (#7030)
Co-authored-by: Miodec <jack@monkeytype.com>
2025-10-27 13:01:29 +01:00
Rowan Monk
42d6dc8a72
fix: Advanced filters does not contain tags after first tag was added (@Rowan441) (#7025)
### Description

fixes #6972

The setup logic for the "tags", "funbox", and "language" advanced
filters are only run on the first load. So adding a tag in the /settings
won't make the "tags" multiselect render when you navigate back to the
/account page unless you reload.

Added logic to add / destroy the "tags" multiselect if you create your
first tag or delete your last tag.

<!-- 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`
- [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 #6972

<!-- 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-27 12:25:59 +01:00
Nad Alaba
05123e8ddb
fix: wrapper height not updated when tape is turned off mid-test (@nadalaba) (#7043)
- this happens if words were removed (due to overflowing the wrapper)
before turning the tape off


https://github.com/user-attachments/assets/97be5efb-4a37-46b7-baa2-dd482e84a43c

this is a regression introduced in #6932
2025-10-27 12:15:02 +01:00
Nad Alaba
a0c9decc3f
fix(caret): caret not resetting position on quick restart (@nadalaba) (#7038)
- quick restarting immediately after some input makes the caret fail to
reset its position sometimes.


https://github.com/user-attachments/assets/d9e1def5-d8f6-4af2-845c-778c89279849

this happens because the reset of caret's position that should happen on
the callback inside `requestAnimationFrame` in `caret.goTo()` (triggered
in `TestUI.updateWordsWrapperClasses()`) is cancelled by a later call to
`caret.goTo()` (triggered by `TestUI.focusWords()`). However the second
call sets the position directly without stopping previous animation
`$('#caret').stop().animate()`. As a result, the earlier animation
(caused by last input) continues after the reset, if the restart was
done fast enough.

- update some previous comments.
2025-10-27 12:14:26 +01:00
Miodec
c95b6bd362 impr(input): extract visual equivalence check to a util function
!nuf

also adds greek characters
closes #7036
2025-10-22 09:47:53 +02:00
Miodec
1cf4b079cd fix(pace caret): stopping at the end of the word in blind mode 2025-10-21 13:53:53 +02:00
Miodec
da01d294c6 fix(caret): incorrect position in blind mode 2025-10-21 13:53:53 +02:00
Miodec
22922004dc fix(pace caret): go back to using self-correcting timing 2025-10-21 13:53:53 +02:00
Miodec
c4ffa5febb fix(caret): invisible caret when quick restarting 2025-10-17 19:48:15 +02:00
Miodec
79b79e0519 fix(caret): incorrect underline positioning 2025-10-17 16:54:41 +02:00
Miodec
5526088142 fix: caret disappearing when changing font size through commandline 2025-10-17 16:42:30 +02:00
Jack
9ae232925d
refactor: caret rewrite (@miodec) (#6955)
Moves common logic to a new Caret class with single responsibility
principles.

---------

Co-authored-by: Nad Alaba <37968805+NadAlaba@users.noreply.github.com>
2025-10-17 15:07:43 +02:00
Miodec
fa9c50cab8 fix: false positive typo for gmx.de email domain 2025-10-16 12:14:12 +02:00
Christian Fehmer
d9d375d05a
fix: discord avatars not loading (@fehmer) (#6999)
fixes #6998

Seems it was fixed by discord in the meantime. Still I think this is a
better approach because it only takes one rest call to the discord cdn
instead of two for each avatar.

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-10-15 13:07:57 +02:00
Miodec
015252120f impr(british english): replace double quotes with single quotes
closes #7015
2025-10-15 12:56:10 +02:00
Miodec
be106b8f1c fix: local typing stats not updated on result save
closes #7016
2025-10-15 12:56:10 +02:00
Seif Soliman
acbd1de113
impr(funbox): proper per-language handling in polyglot mode (@byseif21, @fehmer) (#6666)
### Description

#### fixes some polyglot issues

* when mixing RTL (e.g. Arabic) with LTR (e.g. English), ligatures were
broken if the main `Config.Language` was a LTR lang.
* lazy mode: previously, if the main language didn’t support lazy mode,
none of the languages would, even if they did individually.

closes #6665

---------

Co-authored-by: Jack <jack@monkeytype.com>
2025-10-15 12:43:24 +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
Miodec
8699351be9 fix: additional accents not applied correctly 2025-10-12 16:20:06 +02:00
Jack
de847fc314
refactor(input validation): rework getting current validation status (@miodec) (#6988)
Rename to diffrentiate between the predicate `isValid` and the element
`isValid`
Return `ValidationResult` instead of just a boolean
Update usage to the new format
Move config specific `resetIfEmpty` to the `ConfigInputOptions` type
2025-09-24 16:00:37 +02:00
Miodec
f025b121cb impr(save custom text modal): add validation for custom text name input 2025-09-24 14:46:19 +02:00