* update crypto MSRV
* rename `keychain` to `keyring`
* make a start on the keymanager unlock refactor/keychain integration
* update routes
* update bindings
* add const identifiers
* add UI/front-end support for unlocking KM with OS keychains
* remove SK from lib creation dialog
* update query name
* add keyring functions
* attempt to update `change_master_password()` to use the keychain
* cleanup, fix master password change ui, better secret key in keyring detection
* cleanup TS a little
* add route for getting secret key from keyring
* update bindings
* update var names + show secret key in keys settings
* add `react-qr-code` and option to view the secret key (if it's in the OS keyring)
* allow copying SK to clipboard
* add `key_type` so we're not reliant on specific UUIDs for root/verification key handling
* clippy
* fix mobile typecheck
* fix typecheck, fix typo and tweak balloon hash parameters
* minor cleanup + typo fix
* use newtype structs
* WIP type refactoring (major readability boost!)
* update `use`
* add tokio `sync` feature
* too many structs? idk
* more cleanup
* add `generate` and `Nonce`
* `Nonce` and `Key` typesafety (beautiful)
* clippy + cleanup
* update code & examples
* fix bug & remove `ProtectedVec` as it looked out of place
* use `Key`
* add a query invalidation to make the UI extremely responsive
* ci pls work
* remove `keyringHasSk` route
* refactor routes
* use default export for screens
* use "route" relative routing
* don't use absolute import for root screens
* no absolute importing folders!!!
* fine we can absolute import folders
* add `get_queue` and `is_queued` to KM and router
* mark keys as being mounted/finished mounting, use a `DashSet` instead of vec
also includes temporary `dbg!()`s for manual valdiation that it works
* remove dbg and fix build (works great)
* mark key manager as unlocking correctly
* cleanup keys api
* add `KeyAlreadyQueued` error
* use react mounting queue
* fully prevent against multiple mount jobs of the same key with the rust queue
* show keymanager as unlocking in the UI
* handle query invalidation for `isKeyManagerUnlocking` with a closure (semi-temporary)
* revert changing text (doesn't work where the keymanager is unlocked from, only the other unlock screen)
* clippy
* add `useRef` for mounting queue within react
* pass `ref.current` to `Key` instead
* add wip storedkey versioning
* storedkey versioning! (not pretty, but it never will be)
* add version to `StoredKey` and re-gen migrations to handle serde
* use `serde` for interacting with the DB + handle errors
* Fix spacing
* Primitive popup menu
* Sort by & layout menu
* Add sort direction
* Style sort by menu
* new file icons
* thumb wrapper
* update packages & fix folder color
* explorer list & grid views
* Fix grid view spacing
* Grid image sizing
* Explorer store + calculation of grid item size
* Explorer list view
* Explorer store on filerow too
* add encrypted file magic bytes/extension
* use archive icon for encrypted files temporarily
* use pascal case for encrypted extensions
Co-authored-by: Brendan Allan <brendonovich@outlook.com>