You've already forked AstralRinth
forked from didirus/AstralRinth
chore: update to nuxt 3.20 (#4992)
* feat: nuxt 3.14 → 3.15.4 * feat: nuxt 3.15.4 → 3.16.2 (vite 6) * feat: bump nuxt-i18n * feat: nuxt 3.20 * fix: lint * feat: use rolldown-vite * fix: shut the fuck up * fix: silence for app as well * fix: vue-router mismatch --------- Signed-off-by: Calum H. <contact@cal.engineer>
This commit is contained in:
@@ -29,18 +29,18 @@
|
|||||||
"@tauri-apps/plugin-window-state": "^2.2.2",
|
"@tauri-apps/plugin-window-state": "^2.2.2",
|
||||||
"@types/three": "^0.172.0",
|
"@types/three": "^0.172.0",
|
||||||
"intl-messageformat": "^10.7.7",
|
"intl-messageformat": "^10.7.7",
|
||||||
"vue-i18n": "^9.14.0",
|
"vue-i18n": "^10.0.0",
|
||||||
"@vueuse/core": "^11.1.0",
|
"@vueuse/core": "^11.1.0",
|
||||||
"dayjs": "^1.11.10",
|
"dayjs": "^1.11.10",
|
||||||
"floating-vue": "^5.2.2",
|
"floating-vue": "^5.2.2",
|
||||||
"ofetch": "^1.3.4",
|
"ofetch": "^1.3.4",
|
||||||
"pinia": "^2.1.7",
|
"pinia": "^3.0.0",
|
||||||
"posthog-js": "^1.158.2",
|
"posthog-js": "^1.158.2",
|
||||||
"three": "^0.172.0",
|
"three": "^0.172.0",
|
||||||
"vite-svg-loader": "^5.1.0",
|
"vite-svg-loader": "^5.1.0",
|
||||||
"vue": "^3.5.13",
|
"vue": "^3.5.13",
|
||||||
"vue-multiselect": "3.0.0",
|
"vue-multiselect": "3.0.0",
|
||||||
"vue-router": "4.3.0",
|
"vue-router": "^4.6.0",
|
||||||
"vue-virtual-scroller": "v2.0.0-beta.8"
|
"vue-virtual-scroller": "v2.0.0-beta.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
"@modrinth/tooling-config": "workspace:*",
|
"@modrinth/tooling-config": "workspace:*",
|
||||||
"@nuxt/eslint-config": "^0.5.6",
|
"@nuxt/eslint-config": "^0.5.6",
|
||||||
"@taijased/vue-render-tracker": "^1.0.7",
|
"@taijased/vue-render-tracker": "^1.0.7",
|
||||||
"@vitejs/plugin-vue": "^5.0.4",
|
"@vitejs/plugin-vue": "^6.0.3",
|
||||||
"autoprefixer": "^10.4.19",
|
"autoprefixer": "^10.4.19",
|
||||||
"eslint": "^9.9.1",
|
"eslint": "^9.9.1",
|
||||||
"eslint-plugin-turbo": "^2.5.4",
|
"eslint-plugin-turbo": "^2.5.4",
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
"sass": "^1.74.1",
|
"sass": "^1.74.1",
|
||||||
"tailwindcss": "^3.4.4",
|
"tailwindcss": "^3.4.4",
|
||||||
"typescript": "^5.5.4",
|
"typescript": "^5.5.4",
|
||||||
"vite": "^5.4.6",
|
"vite": "^6.0.0",
|
||||||
"vue-component-type-helpers": "^3.1.8",
|
"vue-component-type-helpers": "^3.1.8",
|
||||||
"vue-tsc": "^2.1.6"
|
"vue-tsc": "^2.1.6"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -341,7 +341,7 @@ const create_instance = async () => {
|
|||||||
creating.value = true
|
creating.value = true
|
||||||
const loader_version_value =
|
const loader_version_value =
|
||||||
loader_version.value === 'other' ? specified_loader_version.value : loader_version.value
|
loader_version.value === 'other' ? specified_loader_version.value : loader_version.value
|
||||||
const loaderVersion = loader.value === 'vanilla' ? null : loader_version_value ?? 'stable'
|
const loaderVersion = loader.value === 'vanilla' ? null : (loader_version_value ?? 'stable')
|
||||||
|
|
||||||
hide()
|
hide()
|
||||||
creating.value = false
|
creating.value = false
|
||||||
@@ -350,7 +350,7 @@ const create_instance = async () => {
|
|||||||
profile_name.value,
|
profile_name.value,
|
||||||
game_version.value,
|
game_version.value,
|
||||||
loader.value,
|
loader.value,
|
||||||
loader.value === 'vanilla' ? null : loader_version_value ?? 'stable',
|
loader.value === 'vanilla' ? null : (loader_version_value ?? 'stable'),
|
||||||
icon.value,
|
icon.value,
|
||||||
).catch(handleError)
|
).catch(handleError)
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ const toTransparent = computed(() => {
|
|||||||
<div
|
<div
|
||||||
class="w-full aspect-[2/1] bg-cover bg-center bg-no-repeat"
|
class="w-full aspect-[2/1] bg-cover bg-center bg-no-repeat"
|
||||||
:style="{
|
:style="{
|
||||||
'background-color': project.featured_gallery ?? project.gallery[0] ? null : toColor,
|
'background-color': (project.featured_gallery ?? project.gallery[0]) ? null : toColor,
|
||||||
'background-image': `url(${
|
'background-image': `url(${
|
||||||
project.featured_gallery ??
|
project.featured_gallery ??
|
||||||
project.gallery[0] ??
|
project.gallery[0] ??
|
||||||
|
|||||||
@@ -191,7 +191,8 @@ const handleClose = async () => {
|
|||||||
position: absolute;
|
position: absolute;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
background: linear-gradient(180deg, rgba(66, 131, 92, 0.275) 0%, rgba(17, 35, 43, 0.5) 97.29%),
|
background:
|
||||||
|
linear-gradient(180deg, rgba(66, 131, 92, 0.275) 0%, rgba(17, 35, 43, 0.5) 97.29%),
|
||||||
linear-gradient(0deg, rgba(22, 24, 28, 0.64), rgba(22, 24, 28, 0.64));
|
linear-gradient(0deg, rgba(22, 24, 28, 0.64), rgba(22, 24, 28, 0.64));
|
||||||
z-index: 9997;
|
z-index: 9997;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -189,7 +189,9 @@ const messages = defineMessages({
|
|||||||
>
|
>
|
||||||
<Avatar
|
<Avatar
|
||||||
:src="
|
:src="
|
||||||
world.type === 'server' && serverStatus ? serverStatus.favicon ?? world.icon : world.icon
|
world.type === 'server' && serverStatus
|
||||||
|
? (serverStatus.favicon ?? world.icon)
|
||||||
|
: world.icon
|
||||||
"
|
"
|
||||||
size="48px"
|
size="48px"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -9,6 +9,14 @@ const projectRootDir = resolve(__dirname)
|
|||||||
|
|
||||||
// https://vitejs.dev/config/
|
// https://vitejs.dev/config/
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
|
css: {
|
||||||
|
preprocessorOptions: {
|
||||||
|
scss: {
|
||||||
|
// TODO: dont forget about this
|
||||||
|
silenceDeprecations: ['import'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: [
|
alias: [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
import { buildLocaleMessages, createMessageCompiler, type CrowdinMessages } from '@modrinth/ui'
|
import { buildLocaleMessages, createMessageCompiler, type CrowdinMessages } from '@modrinth/ui'
|
||||||
|
|
||||||
const localeModules = import.meta.glob<{ default: CrowdinMessages }>('./locales/*/index.json', {
|
const localeModules = import.meta.glob<{ default: CrowdinMessages }>(
|
||||||
eager: true,
|
'../src/locales/*/index.json',
|
||||||
})
|
{
|
||||||
|
eager: true,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
export default defineI18nConfig(() => ({
|
export default defineI18nConfig(() => ({
|
||||||
legacy: false,
|
legacy: false,
|
||||||
@@ -11,5 +14,6 @@ export default defineI18nConfig(() => ({
|
|||||||
messageCompiler: createMessageCompiler(),
|
messageCompiler: createMessageCompiler(),
|
||||||
missingWarn: false,
|
missingWarn: false,
|
||||||
fallbackWarn: false,
|
fallbackWarn: false,
|
||||||
|
// @ts-expect-error - buildLocaleMessages returns compatible format at runtime
|
||||||
messages: buildLocaleMessages(localeModules),
|
messages: buildLocaleMessages(localeModules),
|
||||||
}))
|
}))
|
||||||
@@ -56,6 +56,18 @@ export default defineNuxtConfig({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
vite: {
|
vite: {
|
||||||
|
css: {
|
||||||
|
preprocessorOptions: {
|
||||||
|
scss: {
|
||||||
|
// TODO: dont forget about this
|
||||||
|
silenceDeprecations: ['import'],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ssr: {
|
||||||
|
// https://github.com/Akryum/floating-vue/issues/809#issuecomment-1002996240
|
||||||
|
noExternal: ['v-tooltip'],
|
||||||
|
},
|
||||||
define: {
|
define: {
|
||||||
global: {},
|
global: {},
|
||||||
},
|
},
|
||||||
@@ -196,9 +208,24 @@ export default defineNuxtConfig({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
modules: ['@nuxtjs/i18n', '@pinia/nuxt'],
|
modules: ['@nuxtjs/i18n', '@pinia/nuxt', 'floating-vue/nuxt'],
|
||||||
|
floatingVue: {
|
||||||
|
themes: {
|
||||||
|
'ribbit-popout': {
|
||||||
|
$extend: 'dropdown',
|
||||||
|
placement: 'bottom-end',
|
||||||
|
instantMove: true,
|
||||||
|
distance: 8,
|
||||||
|
},
|
||||||
|
'dismissable-prompt': {
|
||||||
|
$extend: 'dropdown',
|
||||||
|
placement: 'bottom-start',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
i18n: {
|
i18n: {
|
||||||
defaultLocale: 'en-US',
|
defaultLocale: 'en-US',
|
||||||
|
// @ts-expect-error - LocaleDefinition is compatible at runtime
|
||||||
locales: LOCALES,
|
locales: LOCALES,
|
||||||
strategy: 'no_prefix',
|
strategy: 'no_prefix',
|
||||||
detectBrowserLanguage: {
|
detectBrowserLanguage: {
|
||||||
@@ -206,11 +233,14 @@ export default defineNuxtConfig({
|
|||||||
cookieKey: 'locale',
|
cookieKey: 'locale',
|
||||||
fallbackLocale: 'en-US',
|
fallbackLocale: 'en-US',
|
||||||
},
|
},
|
||||||
vueI18n: './src/i18n.config.ts',
|
vueI18n: './i18n.config.ts',
|
||||||
|
bundle: {
|
||||||
|
optimizeTranslationDirective: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
nitro: {
|
nitro: {
|
||||||
rollupConfig: {
|
rollupConfig: {
|
||||||
// @ts-expect-error it's not infinite.
|
// @ts-expect-error because of rolldown-vite - completely fine though
|
||||||
plugins: [serverSidedVue()],
|
plugins: [serverSidedVue()],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -255,7 +285,7 @@ export default defineNuxtConfig({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
compatibilityDate: '2024-07-03',
|
compatibilityDate: '2025-01-01',
|
||||||
telemetry: false,
|
telemetry: false,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -10,20 +10,19 @@
|
|||||||
"postinstall": "nuxi prepare",
|
"postinstall": "nuxi prepare",
|
||||||
"lint": "eslint . && prettier --check .",
|
"lint": "eslint . && prettier --check .",
|
||||||
"fix": "eslint . --fix && prettier --write .",
|
"fix": "eslint . --fix && prettier --write .",
|
||||||
"intl:extract": "formatjs extract \"{,src/components,src/composables,src/layouts,src/middleware,src/modules,src/pages,src/plugins,src/utils}/**/*.{vue,ts,tsx,js,jsx,mts,cts,mjs,cjs}\" \"src/error.vue\" --ignore \"**/*.d.ts\" --ignore node_modules --out-file src/locales/en-US/index.json --format crowdin --preserve-whitespace",
|
"intl:extract": "formatjs extract \"src/{components,composables,layouts,middleware,modules,pages,plugins,utils}/**/*.{vue,ts,tsx,js,jsx,mts,cts,mjs,cjs}\" \"src/error.vue\" --ignore \"**/*.d.ts\" --ignore node_modules --out-file src/locales/en-US/index.json --format crowdin --preserve-whitespace",
|
||||||
"test": "nuxi build"
|
"test": "nuxi build"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@formatjs/cli": "^6.2.12",
|
"@formatjs/cli": "^6.2.12",
|
||||||
"@nuxt/devtools": "^1.3.3",
|
"@modrinth/tooling-config": "workspace:*",
|
||||||
"@nuxtjs/i18n": "^8.5.5",
|
"@nuxtjs/i18n": "^9.0.0",
|
||||||
"@types/dompurify": "^3.0.5",
|
"@types/dompurify": "^3.0.5",
|
||||||
"@types/iso-3166-2": "^1.0.4",
|
"@types/iso-3166-2": "^1.0.4",
|
||||||
"@types/node": "^20.1.0",
|
"@types/node": "^20.1.0",
|
||||||
"autoprefixer": "^10.4.19",
|
"autoprefixer": "^10.4.19",
|
||||||
"eslint": "^8.57.0",
|
|
||||||
"glob": "^10.2.7",
|
"glob": "^10.2.7",
|
||||||
"nuxt": "^3.14.1592",
|
"nuxt": "^3.20.2",
|
||||||
"postcss": "^8.4.39",
|
"postcss": "^8.4.39",
|
||||||
"prettier-plugin-tailwindcss": "^0.6.5",
|
"prettier-plugin-tailwindcss": "^0.6.5",
|
||||||
"sass": "^1.58.0",
|
"sass": "^1.58.0",
|
||||||
@@ -43,11 +42,10 @@
|
|||||||
"@modrinth/moderation": "workspace:*",
|
"@modrinth/moderation": "workspace:*",
|
||||||
"@modrinth/ui": "workspace:*",
|
"@modrinth/ui": "workspace:*",
|
||||||
"@modrinth/utils": "workspace:*",
|
"@modrinth/utils": "workspace:*",
|
||||||
"@pinia/nuxt": "^0.5.1",
|
"@pinia/nuxt": "^0.11.3",
|
||||||
"@tanstack/vue-query": "^5.90.7",
|
"@tanstack/vue-query": "^5.90.7",
|
||||||
"@types/three": "^0.172.0",
|
"@types/three": "^0.172.0",
|
||||||
"intl-messageformat": "^10.7.7",
|
"@vitejs/plugin-vue": "^6.0.3",
|
||||||
"@vitejs/plugin-vue": "^5.0.4",
|
|
||||||
"@vue-email/components": "^0.0.21",
|
"@vue-email/components": "^0.0.21",
|
||||||
"@vue-email/render": "^0.0.9",
|
"@vue-email/render": "^0.0.9",
|
||||||
"@vueuse/core": "^11.1.0",
|
"@vueuse/core": "^11.1.0",
|
||||||
@@ -58,12 +56,13 @@
|
|||||||
"floating-vue": "^5.2.2",
|
"floating-vue": "^5.2.2",
|
||||||
"fuse.js": "^6.6.2",
|
"fuse.js": "^6.6.2",
|
||||||
"highlight.js": "^11.7.0",
|
"highlight.js": "^11.7.0",
|
||||||
|
"intl-messageformat": "^10.7.7",
|
||||||
"iso-3166-2": "1.0.0",
|
"iso-3166-2": "1.0.0",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"jszip": "^3.10.1",
|
"jszip": "^3.10.1",
|
||||||
"markdown-it": "14.1.0",
|
"markdown-it": "14.1.0",
|
||||||
"pathe": "^1.1.2",
|
"pathe": "^1.1.2",
|
||||||
"pinia": "^2.1.7",
|
"pinia": "^3.0.0",
|
||||||
"pinia-plugin-persistedstate": "^4.4.1",
|
"pinia-plugin-persistedstate": "^4.4.1",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.6.2",
|
||||||
"qrcode.vue": "^3.4.0",
|
"qrcode.vue": "^3.4.0",
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<NuxtLayout>
|
<NuxtLayout>
|
||||||
|
<NuxtRouteAnnouncer />
|
||||||
<ModrinthLoadingIndicator />
|
<ModrinthLoadingIndicator />
|
||||||
<NotificationPanel />
|
<NotificationPanel />
|
||||||
<NuxtPage />
|
<NuxtPage />
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
import 'floating-vue/dist/style.css'
|
|
||||||
|
|
||||||
import FloatingVue from 'floating-vue'
|
|
||||||
|
|
||||||
export default defineNuxtPlugin((nuxtApp) => {
|
|
||||||
nuxtApp.vueApp.use(FloatingVue, {
|
|
||||||
themes: {
|
|
||||||
'ribbit-popout': {
|
|
||||||
$extend: 'dropdown',
|
|
||||||
placement: 'bottom-end',
|
|
||||||
instantMove: true,
|
|
||||||
distance: 8,
|
|
||||||
},
|
|
||||||
'dismissable-prompt': {
|
|
||||||
$extend: 'dropdown',
|
|
||||||
placement: 'bottom-start',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
})
|
|
||||||
@@ -35,6 +35,15 @@
|
|||||||
"pnpm": {
|
"pnpm": {
|
||||||
"patchedDependencies": {
|
"patchedDependencies": {
|
||||||
"readable-stream@2.3.8": "patches/readable-stream@2.3.8.patch"
|
"readable-stream@2.3.8": "patches/readable-stream@2.3.8.patch"
|
||||||
|
},
|
||||||
|
"overrides": {
|
||||||
|
"vite": "npm:rolldown-vite@7.3.0"
|
||||||
|
},
|
||||||
|
"peerDependencyRules": {
|
||||||
|
"allowedVersions": {
|
||||||
|
"vite": "7",
|
||||||
|
"esbuild": "0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"prettier": "@modrinth/tooling-config/prettier.config.cjs"
|
"prettier": "@modrinth/tooling-config/prettier.config.cjs"
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ export interface AuthConfig extends FeatureConfig {
|
|||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
export class AuthFeature extends AbstractFeature {
|
export class AuthFeature extends AbstractFeature {
|
||||||
protected declare config: AuthConfig
|
declare protected config: AuthConfig
|
||||||
|
|
||||||
async execute<T>(next: () => Promise<T>, context: RequestContext): Promise<T> {
|
async execute<T>(next: () => Promise<T>, context: RequestContext): Promise<T> {
|
||||||
const token = await this.getToken()
|
const token = await this.getToken()
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ export class InMemoryCircuitBreakerStorage implements CircuitBreakerStorage {
|
|||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
export class CircuitBreakerFeature extends AbstractFeature {
|
export class CircuitBreakerFeature extends AbstractFeature {
|
||||||
protected declare config: Required<CircuitBreakerConfig>
|
declare protected config: Required<CircuitBreakerConfig>
|
||||||
private storage: CircuitBreakerStorage
|
private storage: CircuitBreakerStorage
|
||||||
|
|
||||||
constructor(config?: CircuitBreakerConfig) {
|
constructor(config?: CircuitBreakerConfig) {
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ export interface RetryConfig extends FeatureConfig {
|
|||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
export class RetryFeature extends AbstractFeature {
|
export class RetryFeature extends AbstractFeature {
|
||||||
protected declare config: Required<RetryConfig>
|
declare protected config: Required<RetryConfig>
|
||||||
|
|
||||||
constructor(config?: RetryConfig) {
|
constructor(config?: RetryConfig) {
|
||||||
super(config)
|
super(config)
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ export interface NuxtClientConfig extends ClientConfig {
|
|||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
export class NuxtModrinthClient extends AbstractModrinthClient {
|
export class NuxtModrinthClient extends AbstractModrinthClient {
|
||||||
protected declare config: NuxtClientConfig
|
declare protected config: NuxtClientConfig
|
||||||
|
|
||||||
constructor(config: NuxtClientConfig) {
|
constructor(config: NuxtClientConfig) {
|
||||||
super(config)
|
super(config)
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ interface HttpError extends Error {
|
|||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
export class TauriModrinthClient extends AbstractModrinthClient {
|
export class TauriModrinthClient extends AbstractModrinthClient {
|
||||||
protected declare config: TauriClientConfig
|
declare protected config: TauriClientConfig
|
||||||
|
|
||||||
constructor(config: TauriClientConfig) {
|
constructor(config: TauriClientConfig) {
|
||||||
super(config)
|
super(config)
|
||||||
|
|||||||
@@ -46,13 +46,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
> :where(
|
> :where(
|
||||||
input + *,
|
input + *,
|
||||||
.input-group + *,
|
.input-group + *,
|
||||||
.textarea-wrapper + *,
|
.textarea-wrapper + *,
|
||||||
.chips + *,
|
.chips + *,
|
||||||
.resizable-textarea-wrapper + *,
|
.resizable-textarea-wrapper + *,
|
||||||
.input-div + *
|
.input-div + *
|
||||||
) {
|
) {
|
||||||
margin-block-start: var(--gap-md);
|
margin-block-start: var(--gap-md);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,9 @@ body {
|
|||||||
// Defaults
|
// Defaults
|
||||||
background-color: var(--color-bg);
|
background-color: var(--color-bg);
|
||||||
color: var(--color-base);
|
color: var(--color-base);
|
||||||
--font-standard: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Oxygen, Ubuntu, Roboto,
|
--font-standard:
|
||||||
Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
|
Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Oxygen, Ubuntu, Roboto, Cantarell,
|
||||||
|
Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
|
||||||
--mono-font: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
|
--mono-font: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
|
||||||
font-family: var(--font-standard);
|
font-family: var(--font-standard);
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
|
|||||||
@@ -127,10 +127,12 @@
|
|||||||
--shadow-inset-sm: inset 0px -1px 2px hsla(221, 39%, 91%, 0.15);
|
--shadow-inset-sm: inset 0px -1px 2px hsla(221, 39%, 91%, 0.15);
|
||||||
|
|
||||||
--shadow-raised-lg: 0px 2px 4px hsla(221, 39%, 11%, 0.2);
|
--shadow-raised-lg: 0px 2px 4px hsla(221, 39%, 11%, 0.2);
|
||||||
--shadow-raised: 0.3px 0.5px 0.6px hsl(var(--shadow-color) / 0.15),
|
--shadow-raised:
|
||||||
|
0.3px 0.5px 0.6px hsl(var(--shadow-color) / 0.15),
|
||||||
1px 2px 2.2px -1.7px hsl(var(--shadow-color) / 0.12),
|
1px 2px 2.2px -1.7px hsl(var(--shadow-color) / 0.12),
|
||||||
4.4px 8.8px 9.7px -3.4px hsl(var(--shadow-color) / 0.09);
|
4.4px 8.8px 9.7px -3.4px hsl(var(--shadow-color) / 0.09);
|
||||||
--shadow-floating: hsla(0, 0%, 0%, 0) 0px 0px 0px 0px, hsla(0, 0%, 0%, 0) 0px 0px 0px 0px,
|
--shadow-floating:
|
||||||
|
hsla(0, 0%, 0%, 0) 0px 0px 0px 0px, hsla(0, 0%, 0%, 0) 0px 0px 0px 0px,
|
||||||
hsla(0, 0%, 0%, 0.1) 0px 4px 6px -1px, hsla(0, 0%, 0%, 0.1) 0px 2px 4px -1px;
|
hsla(0, 0%, 0%, 0.1) 0px 4px 6px -1px, hsla(0, 0%, 0%, 0.1) 0px 2px 4px -1px;
|
||||||
|
|
||||||
--shadow-card: rgba(50, 50, 100, 0.1) 0px 2px 4px 0px;
|
--shadow-card: rgba(50, 50, 100, 0.1) 0px 2px 4px 0px;
|
||||||
@@ -348,7 +350,8 @@ html {
|
|||||||
|
|
||||||
--shadow-raised-lg: 0px 2px 4px hsla(221, 39%, 11%, 0.2);
|
--shadow-raised-lg: 0px 2px 4px hsla(221, 39%, 11%, 0.2);
|
||||||
--shadow-raised: 0px -2px 4px hsla(221, 39%, 11%, 0.1);
|
--shadow-raised: 0px -2px 4px hsla(221, 39%, 11%, 0.1);
|
||||||
--shadow-floating: hsla(0, 0%, 0%, 0) 0px 0px 0px 0px, hsla(0, 0%, 0%, 0) 0px 0px 0px 0px,
|
--shadow-floating:
|
||||||
|
hsla(0, 0%, 0%, 0) 0px 0px 0px 0px, hsla(0, 0%, 0%, 0) 0px 0px 0px 0px,
|
||||||
hsla(0, 0%, 0%, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;
|
hsla(0, 0%, 0%, 0.1) 0px 4px 6px -1px, rgba(0, 0, 0, 0.06) 0px 2px 4px -1px;
|
||||||
|
|
||||||
--shadow-card: rgba(0, 0, 0, 0.25) 0px 2px 4px 0px;
|
--shadow-card: rgba(0, 0, 0, 0.25) 0px 2px 4px 0px;
|
||||||
|
|||||||
@@ -235,18 +235,18 @@ export const descriptionNags: Nag[] = [
|
|||||||
const summary = context.project.description?.trim() || ''
|
const summary = context.project.description?.trim() || ''
|
||||||
return Boolean(
|
return Boolean(
|
||||||
summary.match(/https:\/\//g) ||
|
summary.match(/https:\/\//g) ||
|
||||||
summary.match(/http:\/\//g) ||
|
summary.match(/http:\/\//g) ||
|
||||||
summary.match(/# .*/g) ||
|
summary.match(/# .*/g) ||
|
||||||
summary.match(/---/g) ||
|
summary.match(/---/g) ||
|
||||||
summary.match(/\n/g) ||
|
summary.match(/\n/g) ||
|
||||||
summary.match(/\[.*\]\(.*\)/g) ||
|
summary.match(/\[.*\]\(.*\)/g) ||
|
||||||
summary.match(/!\[.*\]/g) ||
|
summary.match(/!\[.*\]/g) ||
|
||||||
summary.match(/`.*`/g) ||
|
summary.match(/`.*`/g) ||
|
||||||
summary.match(/\*.*\*/g) ||
|
summary.match(/\*.*\*/g) ||
|
||||||
summary.match(/_.*_/g) ||
|
summary.match(/_.*_/g) ||
|
||||||
summary.match(/~~.*~~/g) ||
|
summary.match(/~~.*~~/g) ||
|
||||||
summary.match(/```/g) ||
|
summary.match(/```/g) ||
|
||||||
summary.match(/> /g),
|
summary.match(/> /g),
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
link: {
|
link: {
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ const links: Stage = {
|
|||||||
shouldShow: (project) =>
|
shouldShow: (project) =>
|
||||||
Boolean(
|
Boolean(
|
||||||
project.issues_url ||
|
project.issues_url ||
|
||||||
project.source_url ||
|
project.source_url ||
|
||||||
project.wiki_url ||
|
project.wiki_url ||
|
||||||
project.discord_url ||
|
project.discord_url ||
|
||||||
project.donation_urls.length > 0,
|
project.donation_urls.length > 0,
|
||||||
),
|
),
|
||||||
text: async (project) => {
|
text: async (project) => {
|
||||||
let text = (await import('../messages/checklist-text/links/base.md?raw')).default
|
let text = (await import('../messages/checklist-text/links/base.md?raw')).default
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ export const configurationNuxtToAppend = [
|
|||||||
'NuxtPage',
|
'NuxtPage',
|
||||||
'NuxtLayout',
|
'NuxtLayout',
|
||||||
'NuxtLink',
|
'NuxtLink',
|
||||||
|
'NuxtRouteAnnouncer',
|
||||||
'ClientOnly',
|
'ClientOnly',
|
||||||
'Teleport',
|
'Teleport',
|
||||||
'Transition',
|
'Transition',
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@modrinth/tooling-config",
|
"name": "@modrinth/tooling-config",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
|
"type": "module",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Unified tooling configuration for Modrinth monorepo",
|
"description": "Unified tooling configuration for Modrinth monorepo",
|
||||||
"main": "./index.js",
|
"main": "./index.js",
|
||||||
@@ -39,6 +40,7 @@
|
|||||||
"eslint-plugin-prettier": "^5.5.3",
|
"eslint-plugin-prettier": "^5.5.3",
|
||||||
"eslint-plugin-simple-import-sort": "^12.1.1",
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
||||||
"eslint-plugin-vue": "^10.4.0",
|
"eslint-plugin-vue": "^10.4.0",
|
||||||
|
"vue-eslint-parser": "^10.1.3",
|
||||||
"globals": "^16.3.0",
|
"globals": "^16.3.0",
|
||||||
"prettier-plugin-sql-cst": "^0.13.0",
|
"prettier-plugin-sql-cst": "^0.13.0",
|
||||||
"prettier-plugin-toml": "^2.0.6",
|
"prettier-plugin-toml": "^2.0.6",
|
||||||
|
|||||||
@@ -28,12 +28,12 @@
|
|||||||
"typescript": "^5.4.5",
|
"typescript": "^5.4.5",
|
||||||
"vue": "^3.5.13",
|
"vue": "^3.5.13",
|
||||||
"vue-component-type-helpers": "^3.1.8",
|
"vue-component-type-helpers": "^3.1.8",
|
||||||
"vue-router": "4.3.0"
|
"vue-router": "^4.6.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@codemirror/commands": "^6.3.2",
|
"@codemirror/commands": "^6.3.2",
|
||||||
"intl-messageformat": "^10.7.7",
|
"intl-messageformat": "^10.7.7",
|
||||||
"vue-i18n": "^9.14.4",
|
"vue-i18n": "^10.0.0",
|
||||||
"@codemirror/lang-markdown": "^6.2.3",
|
"@codemirror/lang-markdown": "^6.2.3",
|
||||||
"@codemirror/language": "^6.9.3",
|
"@codemirror/language": "^6.9.3",
|
||||||
"@codemirror/state": "^6.3.2",
|
"@codemirror/state": "^6.3.2",
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
"@types/markdown-it": "^14.1.1",
|
"@types/markdown-it": "^14.1.1",
|
||||||
"@types/three": "^0.172.0",
|
"@types/three": "^0.172.0",
|
||||||
"@vueuse/core": "^11.1.0",
|
"@vueuse/core": "^11.1.0",
|
||||||
"apexcharts": "^3.44.0",
|
"apexcharts": "^4.0.0",
|
||||||
"dayjs": "^1.11.10",
|
"dayjs": "^1.11.10",
|
||||||
"floating-vue": "^5.2.2",
|
"floating-vue": "^5.2.2",
|
||||||
"fuse.js": "^6.6.2",
|
"fuse.js": "^6.6.2",
|
||||||
|
|||||||
@@ -181,9 +181,9 @@ const dryRunResponse = ref<{
|
|||||||
const pendingDowngradeBody = ref<Labrinth.Billing.Internal.EditSubscriptionRequest | null>(null)
|
const pendingDowngradeBody = ref<Labrinth.Billing.Internal.EditSubscriptionRequest | null>(null)
|
||||||
const currentPlanFromSubscription = computed<Labrinth.Billing.Internal.Product | undefined>(() => {
|
const currentPlanFromSubscription = computed<Labrinth.Billing.Internal.Product | undefined>(() => {
|
||||||
return subscription.value
|
return subscription.value
|
||||||
? pyroProducts.find((p) =>
|
? (pyroProducts.find((p) =>
|
||||||
p.prices.some((price) => price.id === subscription.value?.price_id),
|
p.prices.some((price) => price.id === subscription.value?.price_id),
|
||||||
) ?? undefined
|
) ?? undefined)
|
||||||
: undefined
|
: undefined
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,8 @@ function onImageLoad(type: 'forward' | 'backward') {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.skin-btn-bg.selected {
|
.skin-btn-bg.selected {
|
||||||
background: linear-gradient(
|
background:
|
||||||
|
linear-gradient(
|
||||||
157.61deg,
|
157.61deg,
|
||||||
var(--color-brand) -76.68%,
|
var(--color-brand) -76.68%,
|
||||||
rgba(27, 217, 106, 0.534) -38.61%,
|
rgba(27, 217, 106, 0.534) -38.61%,
|
||||||
|
|||||||
@@ -51,7 +51,8 @@ const pressed = ref(false)
|
|||||||
}
|
}
|
||||||
|
|
||||||
.skin-btn-bg.selected {
|
.skin-btn-bg.selected {
|
||||||
background: linear-gradient(
|
background:
|
||||||
|
linear-gradient(
|
||||||
157.61deg,
|
157.61deg,
|
||||||
var(--color-brand) -76.68%,
|
var(--color-brand) -76.68%,
|
||||||
rgba(27, 217, 106, 0.534) -38.61%,
|
rgba(27, 217, 106, 0.534) -38.61%,
|
||||||
|
|||||||
@@ -617,11 +617,8 @@ onUnmounted(() => {
|
|||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.nametag-bg {
|
.nametag-bg {
|
||||||
background: linear-gradient(
|
background:
|
||||||
308.68deg,
|
linear-gradient(308.68deg, rgba(50, 50, 50, 0.2) -52.46%, rgba(100, 100, 100, 0.2) 94.75%),
|
||||||
rgba(50, 50, 50, 0.2) -52.46%,
|
|
||||||
rgba(100, 100, 100, 0.2) 94.75%
|
|
||||||
),
|
|
||||||
rgba(0, 0, 0, 0.2);
|
rgba(0, 0, 0, 0.2);
|
||||||
box-shadow:
|
box-shadow:
|
||||||
inset -0.5px -0.5px 0px rgba(0, 0, 0, 0.25),
|
inset -0.5px -0.5px 0px rgba(0, 0, 0, 0.25),
|
||||||
|
|||||||
@@ -27,6 +27,9 @@ export interface LocaleDefinition {
|
|||||||
code: string
|
code: string
|
||||||
name: string
|
name: string
|
||||||
dir?: 'ltr' | 'rtl'
|
dir?: 'ltr' | 'rtl'
|
||||||
|
// For @nuxtjs/i18n v9 compatibility
|
||||||
|
iso?: string
|
||||||
|
file?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export const LOCALES: LocaleDefinition[] = [
|
export const LOCALES: LocaleDefinition[] = [
|
||||||
@@ -117,7 +120,7 @@ export function buildLocaleMessages(
|
|||||||
): Record<string, Record<string, string>> {
|
): Record<string, Record<string, string>> {
|
||||||
const messages: Record<string, Record<string, string>> = {}
|
const messages: Record<string, Record<string, string>> = {}
|
||||||
for (const [path, module] of Object.entries(modules)) {
|
for (const [path, module] of Object.entries(modules)) {
|
||||||
// Extract locale code from path like './locales/en-US/index.json'
|
// Extract locale code from path like './locales/en-US/index.json' or './src/locales/en-US/index.json'
|
||||||
const match = path.match(/\/([^/]+)\/index\.json$/)
|
const match = path.match(/\/([^/]+)\/index\.json$/)
|
||||||
if (match) {
|
if (match) {
|
||||||
const locale = match[1]
|
const locale = match[1]
|
||||||
|
|||||||
13193
pnpm-lock.yaml
generated
13193
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user