* JSlot and JSafeHtml are now functional components
* JView is the new name of AppComp to be in par with other J* components
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
* JApp is the main wrapper that will set all the scripted CSS vars for the whole application. It will also handle all the theming.
* Remove class-based approach in splashscreen and use CSS vars instead
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
The generation pattern of this file changed after an update to unplugin-vue-components.
The prettier-ignore statement changed its position basically.
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
Meta handling was reverted so it happens
again at any time, regardless of query or param changes.
The extra logic is negligible and we avoid edge cases where the path might be the same (like the first navigation)
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
* Inter is going to be one of the brand Jellyfin fonts, as discussed in Matrix's UI/UX channels. Check this: https://matrix.to/#/!xrSDQsdjElWFYUAMoG:matrix.org/$_ZCxjEgHmaYdFo6aiCfqdXSnhEvg8UAksk0NG5PUhZg?via=bonifacelabs.ca&via=t2bot.io&via=matrix.org (Previous messages are also relevant)
* Add radix-vue to use their components as base. There is only one modification I would like to have to their components (the ability to pass arbitrary props to Primitive) but it's something that's likely to be accepted upstream
* Minor cleanup in Carousel styles
* Use the client font as Jassub's font
* Install UnoCSS and it's resets (not enabled yet due to Vuetify inconsistencies)
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
* Switching some of the smallest pieces off Vuetify
* Import the typed RouterView and RouterLink versions of the components
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
We've never been using Suspense to blcok navigation properly (which wasn't so relevant, since we didn't have many long promises like we have now)
We were wrongly swapping the key prop in the div, which effectively killed the inner suspense, not taking into account the async dependency tree
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
With the new composables the store is indeed obsolete
Also remove audios from the resume section
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
We don't have other variants for those languages, so it makes sense to not make assumptions and use them generically
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
In Vite 4, a simple regex was used to replace the variable,
which would lead to undefined at runtime.
That commit was a temporary fix until Vite 5 landed in stable, since supposedly it would
improved upon this: https://vitejs.dev/guide/migration.html#rework-define-and-import-meta-env-replacement-strategy
However, Vite's 5 behaviour it's still pure AST replacement (but consistent between dev and prod this time!)
In order to avoid having the same constant repeated multiple times and increasing our bundle size,
we are using the virtual modules to achieve the same behaviour. This way, we also have:
* Proper TypeScript support
* No need to configure the global in multiple places (like eslint config),
* No need for an environment.d.ts file anymore.
* The commit hash is a pure JavaScript const, we don't need to think about it differently
and workaround the mismatches from Vite that lead us to refactor the commit hash stamping
multiple times already.
Signed-off-by: Fernando Fernández <ferferga@hotmail.com>
* @typescript-eslint fixed a false positive
* Fix @typescript-eslint/no-redundant-type-constituents issues
* .editorconfig is no longer necessary after the lint refactor
- Also generalize the modal dialog for both media info and identify.
- Removed copy code for mediainfo
- Use single content component for all media stream type
Right now, it's using normal Yes/No for boolean with i18n translation key since it would be easier to copy the text.