* created file which holds skeletons for popups
* using skeleton
* saving skeleton after the events are bound
* moved click event to a static element
* using skeleton
* added hide and show functions
using skeleton
* using skeleton
* using skeleton
* using skeleton
* using skeleton
* using skeleton
* fixed a bug where updating the preset name would not immediately show the update
* using skeleton
* shorter link transition
* using skeleton
* using skeleton
* using skeleton
* fixed a bug where accounts with no pbs would cause misplaced "show all pbs" button
* using skeleton
* using skeleton
* using skeleton
* using skeleton
* fixed quote mod not being sent to the client
* using skeleton
* using skeleton
* using skeleton
* using skeleton
* using skeleton
* using state object instead of html attributes
fixed a bug where no tags text would persist even when tags were added to the test
using skeleton
* using skeleton
* using skeleton
* using skeleton
* using skeleton
* using skeleton
* removed unused code
* unnecessary import
* unused code
* using skeleton
* changed click handling element
only hiding and restarting the test if init returned true
* using skeleton
returning boolean from init function
* removed console log
* added function to check if a popup is visible
* better visibility check
* rewrote alerts to use state object instead of pushing straight to dom
using skeleton
* better visibility check
* not using skeleton for now
* using skeleton
using state object
better visibility check
* added parent override
* unnecessary code
* changed function to a more generic one
* fixed cookie popup text possibly overflowing popup
* using "isPopupVisible" function instead of a "hasClass" check
added some missing escape key handlers
* using skeleton
* using skeleton
* using skeleton
* using skeleton
* standard popup animation length
* consistent animation timing
* using iselementvisible function
* removed unused function
* using isElementVisible
* proper show and hide functions, added callback funciton on hide,
added noAnim params
* fixed no animation on the logo sub text
* reordered click handlers
* moved code to a fill function
* using proper show and hide functions
added callback on hide param
added no anim and no callback parameters
* added no anim parameter
callback func is optional
* also applying noanimation to hiding animation
* using proper hide and show functions
* using iselementvisible
* using skeleton
* missing space
* storing text area state in custom text
* using skeleton
* setting state on show instead of on hide
* moved click handler
* unused code
* missing parent override
* using skeleton
* no longer waiting for document to be ready
* settings using skeleton
* profile search using skeleton
* page profile using skeleton
* navigating to account if already logged in
* using skeleton
* using skeleton
* emptying result replay and words history on restart
* optimised theme picker
* optimised settings page fill
* performance optimisation
* awaiting promises
* brought back code that was accidentally removed
* async
* addad param to avoid duplicate group update on settings page load
* added main thread yields to remove long tasks
* optimising performance of about page loading
* not awaiting
* breaking up long tasks to optimise performance
* optimised button appending
* fixed avatar being too big
* optimisation
splitting up code
added yields to split tasks
* fixed merge
* removed sleep
* missing chart color update
* updating main chart first
* disabling animation during update
* updating chart colors once instead of on every update
* added one more sleep
* removed sleep causing graphical issues
* update chart regardless if it has data or not
* hiding estimated words typed when no data was found
* Updated spanish.json with 11 quotes
Added 11 quotes in spanish
* Fixed typos
Fixed typos I made on the previous quotes I made on spanish
* Last typo i found on the quotes
* Added more 7 quotes to spanish
Added 7 quotes to spanish and deleted one word that was wrong from a prevoius quote
* Changed quotation marks
One quote uses quotation marks, now it is as \", not sure if that's the correct way
* Updated quote's lenght which was wrong
* Changed swear from last quote.
Changed the swear on quote 126, new translation:
This "New Era" that everyone is talking about is trash. the time where pirates dreams have ended?! People dreams never end!
* Updated spanish.json with 11 quotes
Added 11 quotes in spanish
* Fixed typos
Fixed typos I made on the previous quotes I made on spanish
* Last typo i found on the quotes
* Fix french punctuation typo - missing space
In french, there is always a space character before ! ? or : signs. Fixing the few quotes missing this space character.
* Fix invalid quote length
no longer using main, sub or error color as background
using outline instead to symbolise level
using text color on sub alt background to maximise readability
* Added two quotes from Homer translated by Robert Fagles
* Added Yiddish
* First Addition of Yiddish
Added nouns, adverbs and adjectives and basic rules of language, though I may be wrong and overwrite some of this commit.
* Added ligatures requirement
* Deleted Yiddish
* Update _list.json
* Added (hopefully) everything for yiddish, except for quotes
* Added Yiddish to groups
* Stupid mistake :/
* Removed keyboard layout for Yiddish
I'll fix it later
* Fixed build issue in List
* moved yiddish and other languages before code
* fixed hopefully
* Yea like an hour of headaches for this
Made it a name property not a text property
* Removed Duplicates
* Added language binary
* Removed binary, waiting for pull request to close
* added customStyle
* added music for KeyK
* undid accidental changes
* removed unnecessary changes
* added font-family support in commandline interface
* fixed formatting for single-list-command-line mode while viewing font family
* added themes
* fixed activeMouse CSS selector
* Added styling of favourites too
* fixed github action error
* fixed css issue
* colored block within singleline command line
* added custom data property to commands
using custom data to show theme bubbles on theme commands
Co-authored-by: Miodec <jack@monkeytype.com>
* Added more Latin Vocab
* Added font Georgia
* Create latin.json
* Added longer and more quotes
* Added commas, should work now
* Added another quote
* Created txt file for beep boop challenge
* Added Beep Boop as a challenge in the website
* add new theme: dark note
* change caret color of dark note theme
* theme dark note: replace typing animation with a more subtle effect
* theme dark note: bring back less jumpy dot animation
* adjusted animation
* faster animations
Co-authored-by: Miodec <jack@monkeytype.com>
* feat(words): add words for latynka layout in ukrainian language
* feat(lists): add ukrainian_latynka to lists of languages
* feat(dygrafs): update spelling of them
* fix(name): in json files of languages
* fix: swap letter i to the right one
* Apply debounce on restart test focus state
* Replace sleep and ignore modifier keys for test autofocus
* Update autofocus warning text
Co-authored-by: Andrew Chang <achang3@atlassian.com>
* feat(words): add words for latynka layout in ukrainian language
* feat(lists): add ukrainian_latynka to lists of languages
* feat(dygrafs): update spelling of them
* fix(name): in json files of languages
* Initial GDScript addition
* Add parentheses and a couple extra types/symbols
* Reorganization to make it understandable
Co-authored-by: [Error_27] <43973418+Error-In-Code@users.noreply.github.com>
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Finishing logic
* Numbers + layoutfluid
* One interface
* Filter results
* tts error on undefined
Extencions like NoScript can partly block scripts on the page.
If speech synthesis is not loaded, notification shows up
without freezing the page
* Improved randomcase
* Prevent dublicates in command line
* Change filter logic
* Prettier
* Convert numbers
* num
* Quote and zen modes
* withWords
* Misc
* Expand funboxes list for pb saving
* Move list to backend
* Move to constants
* Async withWords, checkFunbox tweak
* Prettier
* Forbid nonexistent funboxes
* Disable speech if language is ignored
TtS's init() uses setLanguage()
* canGetPb
* Less circular imports
* Ligatures typo
* Simon says blocks word highlight
* blockWordHighlight backend
* Changed imports
* usesLayout
* JSON schema
* IP funbox
* Split
* Display notification instead of reseting
* canGetPB
* One getWordHtml
* Dividing properties
* No sync
* blockedModes
* forcedConfig
* Infinitness parameter, list sync
* applyConfig, memory
Remove extra applyConfig somewhere;
Memory in quotes and custom modes
* I lost this code after merging
* Remove arrowKeys
* isFunboxCompatible
* Fix logic
* sync canGetPb
* remove FunboxObjectType
* baloons
* moved cangetpb function to pb utils
* updated the pb check to be easier to understand
* Refactor isFunboxCompatible
* Check modes conflicts
* Strict highlightMode type
* Only one allowed or blocked highlight mode
* More checks
* Undefined only, not false
* Prettier
* Highlight modes
* added intersect helper function
* reworked forced config
- storing allowed modes as an array, not string
- first value will be used if config is outside of the allowed values
- instead of checking if highlight mode is allowed, checking if the whole config is available
- removed the "Finite" forced config and replaced it with "noInfiniteDuration" property
- config event listener now checks every config change, not just highlight mode. this will ensure any future forced configs will work straight out of the box
* ManualRestart in commandline
* fixed funbox commands not correctly showing which funbox is active
* Upd list
* Merge
* canGetPB for ip
* Reduce list
* split funbox into smaller files
moved funbox files into its own folder
* missing none command
* added function to convert camel case to space separated words
* changed config validation to be blocking the change rather than reacting to the change
* reduced code duplication
* allowing sub color flash
* moved keymap key higlighting and flashing into an observable event
* moved tts into a observable event
* passing funbox into config validation funcitons
* replaced getActive with get
* only keeping functions structure in the list, moved the actual function bodies to funbox.ts
done to remove a circular dependency
still need to finish the rest of the funboxes
* removed empty function definitions (typing issues)
* removed unnecessary type
* unnecessary check
* moved mode checking to config validation
* longer notification
* checking funboxes before changing mode
* moved more functions
* fixed incorrect type
* checking funboxes when setting punctuation and numbers
* Rest of funboxes
* fixed funbox commands showing tags text and icon
* checking if funbox can be set with the current config
* better error message
* validating with setting time and words
importing from a new file
* added a function to capitalise the first letter of a string
* using function from a new file
new parameters
* moved test length check to a function in a different file
* moved some funbox validation into its own file
* only showing notifications if the setWordCount returned true
* moved funbox validation to its own file
* setting manual restart when trying to set funbox to nonoe
* moving this validation to before activating the funbox
* returning forcedConfigs along side if current value is allowed
moved infinite check to checkFunboxForcedConfigs
* removed function, replaced by funox validation
* removing duplicates
* throwing if no intersection
* wrong type
* always allowing setting funbox
sometimes it might be possible to update the config
* checking forced configs first, and updating config if possible
only setting funbox to none when couldnt update config
* basic difficulty levels
* xp funbox bonus
* Delete old file
* Difficulty level
* removed console logs
* renamed import, renamed type
* lowercase b for consistency across the codebase
* renamed variable for readability
* renamed for clarity
* converted metadata to object
* changed from beforesubgroup on the command to before list on the subgroup
* using code suggested by bruce
* renamed type
* removed console log
* merch banner fix
* important animation
* updating the icon of "none" funbox command
* removed unnecessary import
* lowercase b
* updated description
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Miodec <jack@monkeytype.com>
* input-controller
* result
* Finishing logic
* Numbers + layoutfluid
* One interface
* Filter results
* tts error on undefined
Extencions like NoScript can partly block scripts on the page.
If speech synthesis is not loaded, notification shows up
without freezing the page
* Improved randomcase
* Prevent dublicates in command line
* Change filter logic
* Prettier
* Convert numbers
* num
* Quote and zen modes
* withWords
* Misc
* Expand funboxes list for pb saving
* Move list to backend
* Move to constants
* Async withWords, checkFunbox tweak
* Prettier
* Forbid nonexistent funboxes
* Disable speech if language is ignored
TtS's init() uses setLanguage()
* canGetPb
* Less circular imports
* Ligatures typo
* Simon says blocks word highlight
* blockWordHighlight backend
* Changed imports
* usesLayout
* JSON schema
* Display notification instead of reseting
* canGetPB
* One getWordHtml
* Dividing properties
* No sync
* blockedModes
* forcedConfig
* Infinitness parameter, list sync
* applyConfig, memory
Remove extra applyConfig somewhere;
Memory in quotes and custom modes
* I lost this code after merging
* Remove arrowKeys
* isFunboxCompatible
* Fix logic
* sync canGetPb
* remove FunboxObjectType
* baloons
* moved cangetpb function to pb utils
* updated the pb check to be easier to understand
* Refactor isFunboxCompatible
* Check modes conflicts
* Strict highlightMode type
* Only one allowed or blocked highlight mode
* More checks
* Undefined only, not false
* Prettier
* Highlight modes
* added intersect helper function
* reworked forced config
- storing allowed modes as an array, not string
- first value will be used if config is outside of the allowed values
- instead of checking if highlight mode is allowed, checking if the whole config is available
- removed the "Finite" forced config and replaced it with "noInfiniteDuration" property
- config event listener now checks every config change, not just highlight mode. this will ensure any future forced configs will work straight out of the box
* ManualRestart in commandline
* fixed funbox commands not correctly showing which funbox is active
* Upd list
* Reduce list
* split funbox into smaller files
moved funbox files into its own folder
* missing none command
* added function to convert camel case to space separated words
* changed config validation to be blocking the change rather than reacting to the change
* reduced code duplication
* allowing sub color flash
* moved keymap key higlighting and flashing into an observable event
* moved tts into a observable event
* passing funbox into config validation funcitons
* replaced getActive with get
* only keeping functions structure in the list, moved the actual function bodies to funbox.ts
done to remove a circular dependency
still need to finish the rest of the funboxes
* removed empty function definitions (typing issues)
* removed unnecessary type
* unnecessary check
* moved mode checking to config validation
* longer notification
* checking funboxes before changing mode
* moved more functions
* fixed incorrect type
* checking funboxes when setting punctuation and numbers
* Rest of funboxes
* fixed funbox commands showing tags text and icon
* checking if funbox can be set with the current config
* better error message
* validating with setting time and words
importing from a new file
* added a function to capitalise the first letter of a string
* using function from a new file
new parameters
* moved test length check to a function in a different file
* moved some funbox validation into its own file
* only showing notifications if the setWordCount returned true
* moved funbox validation to its own file
* setting manual restart when trying to set funbox to nonoe
* moving this validation to before activating the funbox
* returning forcedConfigs along side if current value is allowed
moved infinite check to checkFunboxForcedConfigs
* removed function, replaced by funox validation
* removing duplicates
* throwing if no intersection
* wrong type
* always allowing setting funbox
sometimes it might be possible to update the config
* checking forced configs first, and updating config if possible
only setting funbox to none when couldnt update config
* basic difficulty levels
* xp funbox bonus
* removed console logs
* renamed import, renamed type
* lowercase b for consistency across the codebase
* renamed variable for readability
* renamed for clarity
* converted metadata to object
* changed from beforesubgroup on the command to before list on the subgroup
* using code suggested by bruce
* renamed type
* removed console log
* merch banner fix
* important animation
* updating the icon of "none" funbox command
* removed unnecessary import
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Miodec <jack@monkeytype.com>
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Added quote to english.json
* Add memoize async util
* Stricter types
* type cast
* added getjson function
* removed unnecessary code
removed comments
* ignoring cache if value is undefined
* checking if layouts list exists
* messed up merge
* checking if layouts exist
* throwing if layouts list or layout is undefined
* catching in case layouts or layout is undefined
* catching in case layouts list or layout is undefined
* breaking in case layouts list is undefined
* showing a message if layout list is undefined
* removed console log
* themes list can return undefined
* removed catch from fetch json
* getlayoutslist no longer can return undefined
* console logging then throwing again
* rethrowing with a different message
* try catch
* catch
* try catching
* try catching
* typo
* url fix
* moved definition up
* moved functions up
* moved functions up
* removed unnecessary update
* catching errors
* updated return type
not returning
* try catching
* updated return type
throwing if list ends up undefined
* removed return
* moved functions up
* try catching
* checking if not undefined
* removed unused file
* try catching
* try catching
* rewrote language getting
* rewrote funbox
* try catching
* notification instead of console error
* notification instead of console error
* rewrote fonts
* rewrote challenges
* try catch
* typo
* rewrote contributors and supporters
Co-authored-by: Miodec <jack@monkeytype.com>
* New language: english doubleletter -> A 200-word list only including words that have the same letter used consecutively.
* english doubleletter error, comma syntax fixed!
* english doubleletter -> english_doubleletter
* A list of roughly 200 lorem-ipsum type words generated by AI bots!
* renamed file
* removed duplicates
Co-authored-by: Miodec <jack@monkeytype.com>
* Added 'Add current theme to favorite...' command
* Remove toggle for 'Add current theme to favorite...' command
* Added 'Remove current theme from favorite...' command
* Merge add/remove commands in a single file
* removed dots
* updated icon
* only showing favorite commands if custom theme is disabled
Co-authored-by: Miodec <jack@monkeytype.com>
* More french quotes
Translation:
"text": "You are sitting and you only want to wait, wait only until there is nothing left to wait for: until the night comes, until the hours ring, until the days go by, until the memories fade away",
"source": "A Sleeping Man (1967) by Georges Perec",
"length": 207,
"id": 117
},
{
"text": "I love peanuts. You're drinking a beer and you're sick of the taste. So you eat peanuts. Peanuts are sweet and salty, strong and tender, like a woman. Eating peanuts, it's a really strong feeling. And then you feel like drinking beer again. Peanuts are the perpetual motion within the reach of man,
"source": "JCVD cult quotes from Jean-Claude Van Damme",
"length": 342,
"id": 118
},
{
"text": "To live is to go from one space to another trying as much as possible not to bump into each other.",
"source": "Espèces d'espaces (1974) by Georges Perec",
"length": 100,
"id": 119
},
{
"text": "He was a word killer: he worked on updating the Larousse dictionaries.",
"source": "La Vie mode d'emploi (1978) by Georges Perec",
"length": 84,
"id": 120
},
{
"text": "The law is implacable, but the law is unpredictable. No one is supposed to ignore it, but no one can know it.",
"source": "W. ou le Souvenir d'enfance (1975) by Georges Perec",
"length": 110,
"id": 121
},
{
"text": "You have everything to learn, everything that cannot be learned: solitude, indifference, patience, silence.",
"source": "A Sleeping Man by Georges Perec",
"length": 107,
"id": 122
},
{
"text": "You can be God of the dogs, God of the cats, God of the poor, all you need is a leash, some slack, some fortune, but you will never be master of the tree. You will never be able to but want to become a tree in your turn.",
"source": "A Sleeping Man by Georges Perec",
"length": 229,
"id": 123
},
{
"text": "Yea, though I walk through the valley of the shadow of death, I will fear no evil: for thou art with me, thy rod and thy staff, they comfort me.",
"source": "Psalm 23:4 Darby Bible",
"length": 164,
"id": 124
},
{
"text": "Nature has not made each of us like each other, but different in ability, and fit for this or that purpose.",
"source": "Plato's Republic",
"length": 88,
"id": 125
},
{
"text": "None of the human things are worth taking with great seriousness.",
"source": "Plato's Republic",
"length": 65,
"id": 126
},
{
"text": "True philosophers guard against all the passions of the body, resist them and do not give themselves over to them.",
"source": "Phaedo, 82b by Plato",
"length": 107,
"id": 127
},
{
"text": "Some call the body the tomb of the soul where it is presently buried.",
"source": "Cratylus of Plato",
"length": 106,
"id": 128
}
]
}
* Removed the peanut and word killer quote
Translation of the changes:
id 120
Your room is the most beautiful of the deserted islands, and Paris is a desert that nobody ever crossed. You don't need anything else but this calm, this sleep, this silence, this torpor. Let the days begin and let the days end, let time pass, let your mouth close, let the muscles of your neck, your jaw, your chin, relax completely, let only the heaving of your ribcage, the beating of your heart, still testify to your patient survival.
id 118
Plants, for example, which have no hands and no ears, feel things, vibrations, they are more aware than other species.
* Update french.json
* More french quotes about typing
Translation:
1) She attended a typing school. In front of the school desks, girls of all ages were whispering while a woman sitting at a table was reading aloud... * Les Destinées Sentimentales (1934-1936) by Jacques Chardonne
2) A typist is a person whose striking power is not always a deterrent for her boss. * Dictionnaire français-rosse de Noctuel
* Update french.json
* More french quotes
Translation:
"text": "You are sitting and you only want to wait, wait only until there is nothing left to wait for: until the night comes, until the hours ring, until the days go by, until the memories fade away",
"source": "A Sleeping Man (1967) by Georges Perec",
"length": 207,
"id": 117
},
{
"text": "I love peanuts. You're drinking a beer and you're sick of the taste. So you eat peanuts. Peanuts are sweet and salty, strong and tender, like a woman. Eating peanuts, it's a really strong feeling. And then you feel like drinking beer again. Peanuts are the perpetual motion within the reach of man,
"source": "JCVD cult quotes from Jean-Claude Van Damme",
"length": 342,
"id": 118
},
{
"text": "To live is to go from one space to another trying as much as possible not to bump into each other.",
"source": "Espèces d'espaces (1974) by Georges Perec",
"length": 100,
"id": 119
},
{
"text": "He was a word killer: he worked on updating the Larousse dictionaries.",
"source": "La Vie mode d'emploi (1978) by Georges Perec",
"length": 84,
"id": 120
},
{
"text": "The law is implacable, but the law is unpredictable. No one is supposed to ignore it, but no one can know it.",
"source": "W. ou le Souvenir d'enfance (1975) by Georges Perec",
"length": 110,
"id": 121
},
{
"text": "You have everything to learn, everything that cannot be learned: solitude, indifference, patience, silence.",
"source": "A Sleeping Man by Georges Perec",
"length": 107,
"id": 122
},
{
"text": "You can be God of the dogs, God of the cats, God of the poor, all you need is a leash, some slack, some fortune, but you will never be master of the tree. You will never be able to but want to become a tree in your turn.",
"source": "A Sleeping Man by Georges Perec",
"length": 229,
"id": 123
},
{
"text": "Yea, though I walk through the valley of the shadow of death, I will fear no evil: for thou art with me, thy rod and thy staff, they comfort me.",
"source": "Psalm 23:4 Darby Bible",
"length": 164,
"id": 124
},
{
"text": "Nature has not made each of us like each other, but different in ability, and fit for this or that purpose.",
"source": "Plato's Republic",
"length": 88,
"id": 125
},
{
"text": "None of the human things are worth taking with great seriousness.",
"source": "Plato's Republic",
"length": 65,
"id": 126
},
{
"text": "True philosophers guard against all the passions of the body, resist them and do not give themselves over to them.",
"source": "Phaedo, 82b by Plato",
"length": 107,
"id": 127
},
{
"text": "Some call the body the tomb of the soul where it is presently buried.",
"source": "Cratylus of Plato",
"length": 106,
"id": 128
}
]
}
* Removed the peanut and word killer quote
Translation of the changes:
id 120
Your room is the most beautiful of the deserted islands, and Paris is a desert that nobody ever crossed. You don't need anything else but this calm, this sleep, this silence, this torpor. Let the days begin and let the days end, let time pass, let your mouth close, let the muscles of your neck, your jaw, your chin, relax completely, let only the heaving of your ribcage, the beating of your heart, still testify to your patient survival.
id 118
Plants, for example, which have no hands and no ears, feel things, vibrations, they are more aware than other species.
* Update french.json
* Save speed stats in leaderboard update
Saves a histogram data structure of speeds for buckets rounded to the nearest 10.
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* API endpoint to get public speed stats
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Add APE class for public stats (WIP)
I created an APE class for accessing public stats. Also stubbed getting and showing the public speed stats on the about page. Haven't implemented the histogram yet though.
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Draw histogram for global speed stats
On about page
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Update histogram colors on theme change
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Fixed out-of-order data in speed histogram
Data was not sorted correctly, which resulted in an incorrect histogram being drawn.
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Public speed stats PR fixes
Small fixes based on PR feedback:
- changed _req to req
- removed unnecessary client version header
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Add endpoint for typing stats
New endpoint to retrieve the public typing stats such as global count of tests completed.
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Renamed public-stats to public
Except in cases where it would cause an identifier named `public` as this is forbidden in strict mode.
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Add stats section to about page
In this commit:
- add a section above about called stats
- display typing stats in three columns
- underneath show the histogram of speeds on english time 60
- make chart responsive
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* Add unit test for Public DAL
Signed-off-by: Brian Evans <ebrian101@gmail.com>
* updated styling
* only requesting data once per session
* going one column on narrow screens
* added option to specify number of decimal poitns
* just showing million instead of abbreviating
updated structure
updated styling
Signed-off-by: Brian Evans <ebrian101@gmail.com>
Co-authored-by: Miodec <jack@monkeytype.com>
* New language: english doubleletter -> A 200-word list only including words that have the same letter used consecutively.
* english doubleletter error, comma syntax fixed!
* english doubleletter -> english_doubleletter
* Add English quote
* Add more English quote
* Add more English quotes from Eighty Six
* Fix quote length
* Add more quotes
* Remove some quotes
* Remove more quotes
clearing dom element after closing the popup
only requesting one release when setting footer version name
only requesting 5 releases
updated releases api url
* Create state for storing custom text name
* Save custom text name on click
* Add todo
* add some utility functions to custom-text.ts
* Set custom text name to empty upon modification
* now update the custom text progress in localStorage
* rework logic for updating progress in test-logic.ts
* more logic changes
* Keep progress in mind when starting next test after bailout
* reset test once they complete it and minor refactor
* Now set custom text progress to 0 when it is modified
* Add UI for continuing and change var name
* Reset progress if they start it again
* Move functions
* remove debug log
* replaced simple popup with custom popup
* fixed media query
* also setting opacity to 1
* saving long custom text into a separate object
* fixed incorrect saving function
fixed get custom text names function
* setting to empty object structure first
* long list style fix
* showing long texts
handling delete and progress reset
* renamed file
tracking if custom text is long
* unnecessary comment
* showing a warning that editing will disable progress tracking
* checking if text is long
updating progress
* added notifications
* setting custom text
* showing if progress tracking is working
* showing if progress tracking was disabled
* longer notification
* corrected button text
* joining with space
* checking if name is taken
added indicator
Co-authored-by: Miodec <jack@monkeytype.com>