Thank you to all the contributors who made this release possible!
Features
- allow user to use local file as background (@fehmer, @byseif21, @Miodec) (#6663) (f2b34a541)
You can now use a local image as a custom background, which will take priorty over the URL background. Note that this will NOT persist across devices. - language: add ABAP programming language (@hottek) (#6784) (21230abaa)
- language: add moroccan arabic (@Soufi-ane) (#6743) (da720ac13)
- language: add Gleam coding language (@binajmen) (#6771) (3757744b2)
- sound: add play time warning (@Miodec) (#6759) (6dad5415c)
You can now play a short time warning sound when you are close to the end of a timed test. - font: add 0xProto font (@0x7375) (#6750) (5b9f7be35)
Improvements
- add validations to settings input (@fehmer) (#6751) (e32155edb)
- quotes: polish quotes and law of physics for polish language (@sobczaktm) (#6772) (fc438ec45)
- modes-notice: make average wpm and accuracy show decimal places when appropriate (@blru) (#6749) (dc7c94f6c)
- quotes: 15 polish proverbs and other quotes for polish language (@sobczaktm) (#6760) (fb82a5288)
- quotes: add quotes in various languages (@Eric-Zhang-Developer) (#6773) (b6a7662fa)
Fixes
- cursor not changing to pointer on button hover (@NadAlaba) (#6801) (dd55a7257)
- filter section doesn't toggle using local image (@byseif21) (#6796) (d8fd64182)
- settings: dismiss tooltips on funbox buttons after click (@byseif21) (#6803) (d48ddcaac)
- commandline: missing initialize input validation handler for commandOverride (@byseif21) (#6788) (926b36940)
- test not reacting to font size change (bf9e53355)
- custom background not working (b024e8ea4)
- settings: ensure themes UI is always up-to-date when renavigating (@byseif21) (#6581) (e5b0978d4)
- login: clear data on logout (@fehmer) (#6791) (32ff95a2a)
- partially completed last words not being counted in custom timed mode (28c1cccd5)
- settings: skip update settings page if not active (@fehmer) (#6783) (0ee4b2960)
- themes: clipped logo letters in some themes (@byseif21) (#6745) (2fc7aa598)
- account-settings: prevent unauthorized error on ape keys after logout (@hussain-alsayedali) (#6746) (4a14ae45e)
- quotes: code_java compilation fixes (@nafets-st) (#6778) (2af1f7901)
- commandline: tags not showing active state correctly (363e21b54)
- account-history: highlight animation is not working on result selection (@byseif21) (#6744) (27019d189)
- quotes: code_rust compilation and whitespace (@nafets-st) (#6755) (231cd2ecb)
- german_250k.json: remove non-german accents (@8e3) (#6756) (62a5145f0)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- fix: config applying issues (@Miodec, @fehmer) (#6812) (4ec51a2d2)
- docs(example.env): improve clarity of docker/example.env config for self-hosting (@nitin-is-me) (#6777) (2df72cc69)
- docs(self-hosting): improve grammar and structure of setup guide (@nitin-is-me) (#6774) (e5f8cb398)
- refactor(config): cleanup handling for fontSize, tapeMargin and maxLineWidth (@fehmer) (#6775) (3ddb3c68c)
- refactor(commandline): rework commandline to use metadata approach (@Miodec, @fehmer) (#6779) (4dd8755aa)
- refactor(schema): move font config to schema (@fehmer) (#6780) (060a753be)
- refactor(config): split config and config-metadata tests (@fehmer) (#6770) (4f57418b6)
- refactor(config meta): split into its own file (@Miodec) (#6769) (9567e07dc)
- refactor(contracts / schemas): move schemas into their own package (@Miodec) (#6754) (69cbbe4ab)
- refactor(config): config metadata (@Miodec) (#6753) (92790f368)
- test: split integration tests (@fehmer) (#6807) (c1a681c17)
- chore: update nodejs to 20.19.4 (@fehmer) (#6805) (aa94a8afe)
- chore: correct usage of font family (@fehmer) (#6793) (a9a99947a)
- chore: remove duplicates (be1774e21)
- chore: update contributors list (f12369eb9)
- chore(deps): upgrade oxlint to 1.8.0, fix errors (@camc314) (#6776) (2180e3b60)
- chore(funbox): increase layout_mirror difficulty to level 3 (@ShizukoV) (#6761) (e357efc43)