* Define Timestamp type
* Implement Timestamp utils
* Implement Timespan input
* Use timestamp input on config page
* Add timespan type to config services
* Refactor maxExpiration to use timespan type across services and components
* Update sessionDuration to use timespan type in config and adjust token expiration logic
* Update localized strings
* Addconfig entries for legal notice
* Add legal route handling to middleware
* Make legal notice public
* Add legal category to config sidebar
* Add legal notice page
* Add German translations for legal notice and configuration options
* Replace legal page with separate imprint and privacy pages
* Update middleware
* Add footer component
* Update legal text descriptions to indicate Markdown support again
* Refactor footer layout
* Add zIndex to footer component
* improve mobile layout
* run formatter
---------
Co-authored-by: Elias Schneider <login@eliasschneider.com>
* Improve file size input component layout
* Fix filesize input value not getting set
* Allow arbitrary props on filesize input
* Update config variables to support filesize type and integrate FileSizeInput component
* Update i18n entries
* WARNING GUESSES: Update translation descriptions for max size and chunk size in multiple languages
* Fix config service not being aware of filesize type
* Fix backend config service not being aware of filesize type
* Move FileSizeInput component to core
* More email share vars + unfinished placeolders config
{desc} {expires} vars
(unfinished) config placeholder vals
* done
* migrate
* edit seed
* removed comments
* refactor: replace dependecy `luxon` with `moment`
* update shareRecipientsMessage message
* chore: remove `luxon`
* fix: grammatically incorrect `shareRecipientsMessage` message
* changed to defaultValue and value instead
* fix: don't expose defaultValue to non admin user
* fix: update default value if default value changes
* refactor: set config value to null instead of a empty string
* refactor: merge two migrations into one
* fix value check empty
---------
Co-authored-by: Elias Schneider <login@eliasschneider.com>