* 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>
* start work on saved texts popup
* passing options through, async fill to not block animation
* handle apply
* custom text modal start
* full save custom text modal refactor
* remove import
* full finish on saved texts modal
* fill when chain re-shows it
* fix issues where opening chains within chains would show two modals
* extract type
* add support for passing data between modals
* dont leave the popup if no words were found
* use modalchaindata instead of setting popup state directly
* handling set and append modes in chain data
* move tab insertion code into the custom text modal file
* use chain data instead of state module
* move event handlers to a different file / to the setup function
* move file
* rename file
* rename id
* remove unused line
* add generics to incoming and outgoing modal chain data
* rework the way custom text textarea is handled
* update long custom text warning
* remove variable
* remember to update the state
* fix: Prevent theme switch when opening theme commandline from the footer
fixes#5103
* refactor(utils/misc): move functions and adjust usages
also renamed some functions for clarity
for #5187
* refactor(utils/misc): move color utils into separate file & add docstring
for #5187
* refactor(utils/misc): separte out number-related utils and more
add docstring to the functions in `utils/numbers`
also, move `getDiscordAvatarUrl` back into misc
because it was causing mt to not open somehow
for #5187
* refactor(utils/misc): move get-text functions into separate file & add docstring for them
for #5187
* refactor(utils/misc): move get-data type functions into separate file & add docstrings
for #5187
* Fix cyclic dependency by moving function
* Move strings utils to separate file and other minor changes to utils
* Shift Date & Time util functions to a separate file and add docstrings
* Shift more string functions to string util file
* separate out Arrays functions from misc utils
* Rename some utility files and move some functions
* lowercase filename
* rename module imports
* move ddr stuff into its own file
* temp file rename
* file rename
---------
Co-authored-by: Miodec <jack@monkeytype.com>