Thank you to all the contributors who made this release possible!
Features
- create new sPoNgEcAsE and modify raNDOmcASe to be random (@Justiniscoding) (#7295) (4da82d0f2)
- layout: add tamil99 layout (@ving-sh) (#7313) (bd2df3971)
- layout: add night_stic layout (@mikebartGN) (#7301) (fe2f15107)
- sound: add fart (@emmaqwe) (#7245) (03e306f3b)
- commandline: add sign out (@fehmer) (#7283) (ef5ef0c42)
- theme: add spiderman theme (@asifMalik78) (#7240) (91d64dc92)
- layout: add colemak_angle layout (@ALAMO276) (#7200) (38cc8e12d)
- add composition display setting (443e27fbf)
Improvements
- quote: Added an English and Portuguese quote (@h-queiroz) (#7297) (1b193532c)
- burst-history: Use end time when calculating burst if test ended (@Leonabcd123) (#7302) (ace96b3a6)
- streak hour offset: support 30 min offsets (@large-r0dent) (#7269) (090dd0152)
- add reset function to promiseWithResolvers (@Miodec) (#7280) (16b4ec88a)
- quotes: Add English quotes from XCOM: EU (@Zeden19) (#7264) (1e2109bf6)
- add copy details to notification history (@fehmer) (#7262) (8a2a3e4d2)
- language: add bulgarian 1k (@100daysummer) (#7232) (74bafad7d)
- add multiple elements found warning in dom utils (@fehmer) (#7242) (36b59ae8e)
- ignore enter key when trying to bail out via shift+enter (872027c16)
- quotes: add quotes in various languages (@norwd, @Leonabcd123, @lorenzjdr, @AintJierie, @MythicalWillbur, @JuniorKlumpy) (#7294, #7261, #7214, #7207, #7192, #7180) (31aa70a50, 9d709c7c7, 95bd39a20, 9309c0c5f, d1011bd1f, 204fffebe)
Fixes
- themes ui list shows clipped when selected or hovered (1294499d0)
- custom: ignore prototype properties in British English replacement rules (@byseif21) (#7317) (0c168af84)
- custom-mode: chart problems in custom mode (@Leonabcd123) (#7293) (f8ec9da43)
- friendlist: handle legacy pbs in friendlist frontend (show less details) (@wRadion) (#7296) (2dc99e9e7)
- tiny bug of using wrong port for creating app (@rizwanmustafa) (#7309) (785619c5e)
- tags: selected tags not being highlighted in test result (@Leonabcd123) (#7312) (d09969f1e)
- caret: caret problems when typing ltr characters in rtl word (@Leonabcd123) (#7287) (332b90833)
- missing backend schema update (38771f652)
- dom-utils onChild calling handler for elements outside the parent (@fehmer) (#7279) (dd2ec8c6b)
- british-english: adds british english spelling for english-medical.json (@AlexRusbridge) (#7278) (5093dbe12)
- preset: Fix qsa warning on preset modal (@Leonabcd123) (#7277) (8148b05dd)
- blind-mode: make blind mode "on" text invisible (@Leonabcd123) (#7274) (47712857f)
- hide-extra-letters: extra letters with hideExtraLetters enabled causing caret problems (@Leonabcd123) (#7272) (805c7ae7d)
- account icon alignment when not using an avatar (8d1eefc5b)
- previous commit nuking the timer (c222098a0)
- lazy-mode: respect manual toggle after unsupported language (@byseif21) (#7260) (0e5dd85db)
- timer resetting to initial value when test finishes (bd9951931)
- caret: align caret correctly in RTL tape mode (@byseif21) (#7259) (96169a149)
- blind mode: Extra letters in blind mode causing caret problems (@Leonabcd123) (#7254) (b7c06d1dd)
- out of focus warning sometimes showing even though words were focused (65aadb7e8)
- account settings: some buttons being visible when they shouldnt be (ee2e680ff)
- account settings: buttons not working (469a2f633)
- account settings: tabs not deselecting (69684edda)
- tape: stuck after restarting (d6484109b)
- custom-text: Reset long custom text progress to start of word (@Leonabcd123) (#7213) (fd8001ca7)
- pace-caret: prevent null dereference in update() (@byseif21) (#7226) (b1aa14c6b)
- test-timer: test timer doesn't stop right after a test ends (@Leonabcd123) (#7230) (9654ac505)
- config: sanitize config failing on array with multiple problems (@fehmer) (#7221) (d42c1b2a8)
- typing issues when wikipedia was requesting words (b9dd15005)
- background loader not showing (d43fcba22)
- two line jumps in a row breaking caret positioning (67a34e093)
- uncaught throw when trying to find newline key element (f6421e721)
- british-english: Apply british english after punctuation (@Leonabcd123) (#7202) (3d902bb15)
- sounds: Clear all sounds on test finish (@Leonabcd123) (#7196) (893266167)
- caps-lock warning stuck on linux (@fehmer) (#7195) (64a0bdc3e)
- indicate typos: Replace tabs with _ when indicate typos is replace or both (@Leonabcd123) (#7191) (348224266)
- lazy-mode: Save lazy mode in local storage after getting not supported message (@Leonabcd123) (#7171) (de4e87299)
- custom-text: Don't trim custom text (@Leonabcd123) (#7170) (6d8ef9115)
- composition-display: Add compositionDisplay SettingsGroup (@Leonabcd123) (#7211) (5d3bcb7ca)
- composition issues with ending test and new line handling (@Miodec) (#7210) (ea37960b3)
- theme: duplicate definition of fadeIn animation in dark note theme (@fehmer) (#7205) (1d3abf3f4)
- safari broken input (0c1a8a789)
- ctrl backspace not working in firefox (713e6b2f8)
- theme: fix dark note theme converting typed words to dots multiple times (@fehmer) (#7198) (b92121f18)
- tape mode: rare issue where previous line would be shifted on line jump (943c1deb9)
- tape mode: tab and newline characters breaking caret alignment (e90e35e71)
- tape mode: some words sometimes being removed on test restart (f99c843e8)
- use the right env in env-config plugin (132bdc309)
- rare issue where previous test mistakes would show in a new test (2f9195ee5)
- show all lines causing timed tests to not scroll (088ca5dc0)
- stored xss in quote approve modal (d6d062a77)
Nerd stuff
These changes will not be visible to users, but are included for completeness and to credit contributors.
- impr: replace vite-plugin-checker with
vibe(@Miodec) (#7271) (eb92e1af0) - impr(dom utils): rename ondocumentready, add onwindowload (64436ee2b)
- fix: getting value of select elements not working at all (89e7e68f7)
- docs: remove jquery (@fehmer) (#7320) (8d42ae057)
- docs: fix typo in funbox JSDoc (@mpodhaisky) (#7306) (be4649c90)
- docs: improve language in pull request template (@Leonabcd123) (#7252) (71e78cd52)
- refactor(states): Replace jQuery with dom utils in states (@thanoskn) (#7314) (a4b667104)
- refactor: Remove jQuery from event-handlers (@Leonabcd123) (#7311) (7e0d99244)
- refactor: remove jQuery from email-handler (@Leonabcd123) (#7304) (8c9ca7de1)
- refactor(cmdline): change getList to support commands for configKeys (@fehmer) (#7288) (7f499f063)
- refactor: move navbar to display flex (d3d4d14e2)
- refactor: move custom text schema to shared package (f5054e65d)
- refactor: remove jq from simple-modals (@Miodec) (#7307) (a51424a05)
- refactor: use dom utils in animated-modal (@Miodec) (#7303) (8fb18d61b)
- refactor: move result html into its own file (d6233f340)
- refactor: use loadingOptions for leaderboards page (765ca9569)
- refactor: remove JQuery from pages directory (@Leonabcd123) (#7237) (5d169e933)
- refactor: clean up zen mode element removal (a1240d3d7)
- refactor: result saving code flow (d11bdaa71)
- refactor: move code around (1f4e616d7)
- refactor: add currentTarget back to regular listeners, add childTarget to onChild listeners (@fehmer) (#7273) (bd3cd75c9)
- refactor: remove currentTarget from dom-utils event handlers (@fehmer) (#7270) (ca9dac17a)
- refactor: replace jQuery with DOM utils for alt and shift key trackers (@MoushufAlam) (#7266) (9e93af465)
- refactor: replace jQuery with DOM utils in caps lock warning (@MoushufAlam) (#7265) (d6a6dad55)
- refactor: replace jquery with dom utils in scroll-to-top button (@MoushufAlam) (#7257) (97b9085f7)
- refactor(account settings): use show and hide functions (@Leonabcd123) (#7241) (8c9c6a88d)
- refactor: Remove JQuery from account-settings (@Leonabcd123, @fehmer) (#7219) (38f3fc251)
- refactor: clean up test-ui and test-logic (@Miodec) (#7229) (e51550683)
- refactor: add options object to setConfig (@Miodec) (#7228) (e0b5c465c)
- refactor: use ElementWithUtils in page class (@fehmer) (#7223) (2b380bb93)
- refactor: change config event params to an options object (@Miodec) (#7227) (735740da9)
- refactor: mock ElementWithUtils (@fehmer) (#7224) (9a9b6d72a)
- refactor: move configGroup to config-metadata (@fehmer) (#7222) (92533e2bd)
- refactor: use dom utils in caret code (@Miodec) (#7218) (da535a6f3)
- refactor(config): remove helper functions (@fehmer) (#7216) (c7927bcd8)
- refactor(config): rename genericSet to setConfig (@fehmer) (#7217) (40b53c4d6)
- refactor: move navigate options to the navigation event (fa3bac35e)
- refactor: begin transition away from jquery (@Miodec, @fehmer) (#7185) (1dd0ca70e)
- perf: add preconnect to firebase and google recaptcha (@fehmer) (#7236) (4893e44d5)
- test: fix dom-utils mock (@fehmer) (#7319) (d2c93792f)
- build: restore vendor.css (@fehmer) (#7235) (331ca1a26)
- build: fix fontawesome font path in development mode (@fehmer) (#7233) (766056180)
- build: combine vite config into a single file (@fehmer) (#7190) (8cce5bfc7)
- chore: bump oxc (b9ee8b7d2)
- chore: format files (5b0cc3c76)
- chore: upgrade oxc (a7715fd05)
- chore: TypeError when deleting in zen (@byseif21) (#7282) (fd177c9ed)
- chore: missing setInvalid calls (58b6162b1)
- chore: reorder (11c2bff30)
- chore: move result code to result file (4fae28c0f)
- chore: remove unnecessary code (5f5062811)
- chore: move ui code to result (2cba7576b)
- chore: move ui code out of the test-logic file (10f4a13c1)
- chore: ignore pnpm-lock (86ed9c257)
- chore: use innerText on generate data modal (@fehmer) (#7276) (65e490c96)
- chore: bump oxc packages (96e30b141)
- chore: remove jquery from toggleSettingsGroup (484ab1bd5)
- chore: update vitest/testcontainer versions, try to fix container teardown on macos (@fehmer) (#7248) (3f21023fc)
- chore: update contributors list (d990b42c1)
- chore: move main linting to oxlint (@Miodec) (#7144) (a067a32b7)
- chore: use oxfmt for formatting (@Miodec) (#7187) (660668c53)
- chore: dont check for uncommited changes when deploying to preview (4f8d8c557)
- chore: add script to deploy preview frontend (d997ae874)
- chore: use pnpm on pre-push (dd970cced)
- chore: configure eslint/curly rule (2ee582a59)
- chore(linting): enable prefer-nullish-coalescing (@Miodec) (#7209) (b5a03e004)
- chore: better debug css (fb9f33915)
- chore: remember to call onComplete (b746ef844)
- chore: protect against word letter self overflow (12f5c5ecd)