Commit graph

24 commits

Author SHA1 Message Date
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
Jack
ea84adfb42
refactor: input rewrite v3 (@miodec) (#7119)
input goes brr
2025-11-23 15:52:52 +01: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
Miodec
b9feaf538b chore(linting): enable restrict-plus-operands 2025-08-27 11:36:50 +02:00
Jack
e4c0c28150
chore: bump eslint typescript plugin (@miodec) (#6915) 2025-08-26 22:12:27 +02:00
Jack
4ec51a2d21
fix: config applying issues (@miodec, @fehmer) (#6812)
!nuf
2025-07-31 12:10:58 +02:00
Shizuko
e357efc435
chore(funbox): increase layout_mirror difficulty to level 3 (@ShizukoV) (#6761)
### Description
I've changed the difficulty of the `layout_mirror` funbox from 1 to 3.

The `layout_mirror` funbox completely mirrors the keyboard layout,
significantly increasing difficulty compared to other funboxes currently
labeled as difficulty level 1, (`earthquake`, `capitals`, `gibberish`),
which are much less disruptive.

The `layout_mirror` funbox is also similar to the `mirror` funbox (which
mirrors the screen), currently rated at difficulty level 3. Since
`layout_mirror` alters the entire keyboard layout itself, making even
basic typing extremely challenging, it makes sense for it to also be
difficulty level 3.
2025-07-22 19:25:23 +02:00
Jack
69cbbe4ab2
refactor(contracts / schemas): move schemas into their own package (@miodec) (#6754) 2025-07-21 14:55:54 +02:00
Jack
5e4478c97a
feat(funbox): add no quit (@miodec) (#6741)
Brrrr
2025-07-16 15:53:36 +02:00
Miodec
ee6a9293c4 fix(funbox): remove difficulty xp bonus from instant messaging funbox 2025-07-01 19:14:11 +02:00
Jack
ea90e0a99e
refactor: dont allow nullable numbers (@miodec) (#6564)
Enables strict boolean expressions rule for nullable numbers
2025-05-16 16:04:19 +02:00
Christian Fehmer
212b8d38cb
refactor: make funbox settings an array (@fehmer) (#6487)
change funbox from "hash separated values" to array.

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-04-29 11:31:44 +02:00
Miodec
a424f96480 chore: upgrade oxlint 2025-04-23 18:54:33 +02:00
Christian Fehmer
ac1d6f0847
feat(funbox): add ASL (@fehmer) (#6485) 2025-04-23 18:45:52 +02:00
Christian Fehmer
da671337c5
feat(funbox): add polyglot (@fehmer) (#6454)
Add polyglot funbox which let you practice on multiple languages at once
in a single test.

---------

Co-authored-by: Miodec <jack@monkeytype.com>
2025-04-18 16:48:35 +02:00
megalodon2710
bf002c02ec
feat(funbox): add layout mirror (@megalodon2710) (#6463)
### Description

Added layout mirror item in the funbox with functionality.

Tweaked how active funbox items are detected in the commandline (names
included in other names no long appear as active if the item they're
included in is active).

### 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 or a theme?
- [ ] If is a language, did you edit `_list.json`, `_groups.json` and
add `languages.json`?
  - [ ] If is a theme, did you add the theme.css?
- Also please add a screenshot of the theme, it would be extra awesome
if you do so!
- [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 #5573

<!-- the issue(s) your PR resolves if any (delete if that is not the
case) -->
<!-- please also reference any issues and or PRs related to your pull
request -->
<!-- Also remove it if you are not following any issues. -->

<!-- pro tip: you can mention an issue, PR, or discussion on GitHub by
referencing its hash number e.g:
[#1234](https://github.com/monkeytypegame/monkeytype/pull/1234) -->

<!-- pro tip: you can press . (dot or period) in the code tab of any
GitHub repo to get access to GitHub's VS Code web editor Enjoy! :) -->

---------

Co-authored-by: jeffrey <jeffrey.tiger@telecom-paris.fr>
Co-authored-by: Miodec <jack@monkeytype.com>
2025-04-17 16:10:19 +02:00
Miodec
bf0ce6607d fix: lint issues
!nuf
2025-04-16 19:39:07 +02:00
Jack
cac8835c77
chore: add oxlint (@miodec) (#6455)
Use oxlint for general linting to provide much quicker feedback. Keep
eslint for type-aware rules. Fully switch to oxlint once it supports
type-aware.
2025-04-16 17:18:50 +02:00
Tamion
a4b7c00ef9
impr: allow multiple funboxes with css (@notTamion, @miodec, @fehmer) (#6017)
### Description
Allows enabling multiple funboxes that have a stylesheet. Which funboxes
should be deemed compatible with each other will need some discussion

---------

Co-authored-by: Jack <jack@monkeytype.com>
Co-authored-by: Christian Fehmer <cfe@sexy-developer.com>
2025-02-04 17:52:50 +01:00
Christian Fehmer
e2684c925c
fix: some funboxes not working if reduced motion is preferred (@fehmer) (#6104) 2025-01-06 11:34:08 +01:00
Spurk
aa58a733a7
feat(funbox): add underscore_spaces funbox (@spurkus) (#6094) 2024-12-09 13:25:23 +01:00
Miodec
52fda9d8ed feat(funbox): add ALL CAPS 2024-12-09 13:10:02 +01:00
Jack
fdadb4ae83
refactor: move funboxes to a shared package (@miodec) (#6063) 2024-12-04 16:11:07 +01:00