* wip
* wip frontend
* cleanup
* wip
* refactoring
* wip
* first working version
* wip
* update calendar with new result
* add migration script
* dates are hard
* fix naming inconsistencies
* requested changes on migration
* timezones
* update date-fns, use date-fns/utc
* resolve cyclic dependency by extracting test activity calender into new file
* cleanup
* fix increment
* fix
* tests
* test coverage
* test migration
* migration more logging
* migration add unique index on uid if missing
* update legend styling
* 53 columns
* wip
* move dropdown and legend to the top
add dropdown border
yeet hotpink
invisible filler boxes
remove year from month format
* responsive update
* lowercase months
* handle current year, fix tests
* handle year change
* make days square again
* handle newly created users correctly
* move css
* add wrapper for easier styling
rework some font sizes/widths
reorder styles
* media queries
* align
* rework styling once more
* dont commit debug
* add days full to fill the space a bit
* show partial months
* hover on 0 tests
* start dynamic calendar on sunday
* no activity
* hover
* remove label on fillers
* remove label on fillers
* fix months, update tests for months
* adjust tests to new requirements
* cleanup
* fix migration
* impr(commandline): add "add/remove quote to favorites" commands
closes#5368
* chore: remove daily lb which is no longer in the backend
* fix: dropdown element flashing for couple frames on page load
* feat(language): add japanese romaji 1k (nthngnssmnnglss)
* fix: optional chaining
!nuf
* fix(words generator): infinite custom text tests not working correctly
* chore: missing languages in list and group files
* fix(language): remove duplicates
!nuf
* add readline sync to confirm
* gh action complaints
* unnecessary check
* premium only
* add years to drop down only if premium
* Update setup-tests.ts
* test fix
* cleanup
---------
Co-authored-by: Miodec <jack@monkeytype.com>
* impr: replace JSONSchema with ajv for faster validation
* Remove JSONSchema from packages
* Add ajv in dev-dependencies
* move dep to frontend
* Fix validation schema for different languages and error messages
* fix double space
* different way of showing errors
* por que no los dos
* return on failed schema
---------
Co-authored-by: Miodec <jack@monkeytype.com>
* move user to shared definitions
this includes whatever user can have on it, tags, presets and so on
* profiles, mail and others
* fix logic
* yeet
* same as master for now
* tsc fixes
* remove comment
* fix tests
* chore: omit ips
* fix(language): remove some unnecessarily capitalised words in german 1k
* fix(typing): first space sometimes soft locking the website
* perf: speed up settings page loading
* fix: use selected typing speed unit on personal best popup (fehmer) (#5070)
* fix: Use selected typing speed unit on personal best popup
* refactor
* refactor
* test coverage
* use Format in more places
* Make config mockable
* dependency injection
* wip
* fix
* test
* touch
* fix(language): typos in russian_10k.json (kae) (#5082)
* Update russian_10k.json
- fixed typos
- removed duplicates
* - fixed extra typos
* remove duplicates
* fix(language): typos in russian_10k.json
* feat: add copy missed words to result screen (fehmer) (#5086)
* feat: Add copy missed words to result screen
* remove margin
* update icons
---------
Co-authored-by: Miodec <jack@monkeytype.com>
* impr(funbox): add 46 group languages to wikipedia funbox (RealCyGuy) (#5078)
* impr: provide all-time LB results during LB update (fehmer) (#5074)
Try to provide LB results during the LB update. There is a very small time-frame where
already running queries might fail during the update. For now we keep the 503 error in this
cases and monitor how often this happens on production.
* impr(funbox): add ` (grave accent, 96) and ~ (tilde, 126) to specials (#5073)
* impr: add testWords and wordsHistory to copy result stats (#5085)
* feat: add testWords and wordsHistory to copy result stats
* fix
* add fe ts dep
---------
Co-authored-by: Christian Fehmer <fehmer@users.noreply.github.com>
Co-authored-by: Andrey Kuznetsov <akuznetsov@outlook.com>
Co-authored-by: Cyrus Yip <cyruscmyip1@gmail.com>
Co-authored-by: fitzsim <fitzsim@fitzsim.org>
* i cant figure this oooout
* fix: closing commandline causing settings page update
* remove log
* fix event looping issues
rerendering selects when updating settings
* remove comment
* move section back to where it should be
* update styling
* move redrawing to settings group
* no need to save to a variable
* types
* fix styles
* search placeholder
* fix structure
* fix styles
* using slim for the rest of selects
* disabled styling
* use slim
* styling
* use slim
* multi select styling
* use slim
* use slim
* use slim
* use slim
* remove everything else related to select2
* last select2 mention
* comment
* fix(settings page): font family buttons not working
* fix: input indicators remaining visible after leaving the login page (underscoore) (#5062)
* chore: update node version to 18.19.1 (#5060)
* impr(quote): add Code C quotes (penguin-teal) (#5053)
* fix: question mark appearing next to unrated quotes
* removed unnecessary link
---------
Co-authored-by: Ajay kumar <ajaykumar.bit.1995@gmail.com>
Co-authored-by: Christian Fehmer <fehmer@users.noreply.github.com>
Co-authored-by: penguin-teal <130006737+penguin-teal@users.noreply.github.com>
* fix: error on leaderboard when no user is present
* refactor simple popups
* popups, commandline
* fixes?
* more
* more
* review comments
---------
Co-authored-by: Jack <jack@monkeytype.com>
* refactor: import jquery and jquery plugins using webpack
* move select import to index
* moved imports to the top
* unnecessary types
* ignoring requires in this file
* importing html2cavnas as needed instead of globally
---------
Co-authored-by: Jack <jack@monkeytype.com>
* impr: detect development mode based on config instead of window.location
* Allow access to /configure on the backend using non-local ip
* Use webpack define plugin
* take BACKEND_URL from env
* include confetti sound
* include confetti-canvas
* include canvas-confetti
* include confetti sound
* create confetti func
* import confetti sound
* add confetti
* add confetti to daily leaderboard
* change confetti color
* revert to main color
* save exact version
* updated confetti parameters
added one more color
made duration shorter
more particles
higher spread
* removed sound
* only showing confetti if user already has a pb (doesn't show on the first pb)
* regenerated package lock
* not showing confetti if timer is slow
Co-authored-by: Miodec <jack@monkeytype.com>