diff --git a/package-lock.json b/package-lock.json index d30cf007..7b2362c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -186,6 +186,7 @@ "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -709,6 +710,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=20.19.0" }, @@ -749,6 +751,7 @@ } ], "license": "MIT", + "peer": true, "engines": { "node": ">=20.19.0" } @@ -1358,7 +1361,6 @@ "dev": true, "license": "BSD-2-Clause", "optional": true, - "peer": true, "dependencies": { "cross-dirname": "^0.1.0", "debug": "^4.3.4", @@ -1380,7 +1382,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -1397,7 +1398,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "universalify": "^2.0.0" }, @@ -1412,7 +1412,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "engines": { "node": ">= 10.0.0" } @@ -4864,6 +4863,7 @@ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -4897,6 +4897,7 @@ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -5453,6 +5454,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -6103,8 +6105,7 @@ "integrity": "sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q==", "dev": true, "license": "MIT", - "optional": true, - "peer": true + "optional": true }, "node_modules/cross-env": { "version": "10.1.0", @@ -6452,6 +6453,7 @@ "integrity": "sha512-glMJgnTreo8CFINujtAhCgN96QAqApDMZ8Vl1r8f0QT8QprvC1UCltV4CcWj20YoIyLZx6IUskaJZ0NV8fokcg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "app-builder-lib": "26.8.1", "builder-util": "26.8.1", @@ -6918,7 +6920,6 @@ "dev": true, "hasInstallScript": true, "license": "MIT", - "peer": true, "dependencies": { "@electron/asar": "^3.2.1", "debug": "^4.1.1", @@ -6939,7 +6940,6 @@ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -6971,7 +6971,8 @@ "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz", "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/embla-carousel-reactive-utils": { "version": "8.6.0", @@ -7004,17 +7005,6 @@ "dev": true, "license": "MIT" }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, "node_modules/end-of-stream": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", @@ -7204,6 +7194,7 @@ "integrity": "sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -7264,6 +7255,7 @@ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", + "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -9728,7 +9720,6 @@ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "minimist": "^1.2.6" }, @@ -10343,6 +10334,7 @@ "integrity": "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vue/devtools-api": "^7.7.7" }, @@ -10424,7 +10416,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "commander": "^9.4.0" }, @@ -10442,7 +10433,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "engines": { "node": "^12.20.0 || >=14" } @@ -10463,6 +10453,7 @@ "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -10786,7 +10777,6 @@ "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -10801,7 +10791,6 @@ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10823,7 +10812,6 @@ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -11467,6 +11455,7 @@ "integrity": "sha512-/BUbeOwPGruiBOm0YQQ6ZMcLIZ6tf/W+Jcm7dxZyAX0tK3WP9/sq7/NAWBxPIxVahdGjCJoGwej0Gdrv0DxlQQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "events": "^3.3.0", "graphology-utils": "^2.5.2" @@ -11956,7 +11945,6 @@ "integrity": "sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "mkdirp": "^0.5.1", "rimraf": "~2.6.2" @@ -12092,6 +12080,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -12482,6 +12471,7 @@ "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -12575,6 +12565,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -12588,6 +12579,7 @@ "integrity": "sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/expect": "4.0.18", "@vitest/mocker": "4.0.18", @@ -12689,6 +12681,7 @@ "integrity": "sha512-BZqN4Ze6mDQVNAni0IHeMJ5mwr8VAJ3MQC9FmprRhcBYENw+wOAAjRj8jfmN6FLl0j96OXbR+CjWhmAmM+QGnA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.29", "@vue/compiler-sfc": "3.5.29", @@ -13415,6 +13408,7 @@ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } diff --git a/src/localization/en.json b/src/localization/en.json index 155e9284..f5cf2acf 100644 --- a/src/localization/en.json +++ b/src/localization/en.json @@ -1339,6 +1339,7 @@ "android_performance": "Android Performance", "ios_performance": "iOS Performance", "time_spent": "Time Spent", + "visibility": "Visibility", "tags": "Tags", "memo": "Memo", "memo_placeholder": "Click to add a memo", diff --git a/src/views/MyAvatars/MyAvatars.vue b/src/views/MyAvatars/MyAvatars.vue index b753f6ec..13d72b0c 100644 --- a/src/views/MyAvatars/MyAvatars.vue +++ b/src/views/MyAvatars/MyAvatars.vue @@ -27,7 +27,7 @@
- {{ t('dialog.avatar.tags.public') }} + {{ t('dialog.avatar.info.visibility') }} a.id === avatarId); const oldEntries = avatar?.$tags || []; @@ -469,6 +501,10 @@ avatarTagsMap.value = new Map(avatarTagsMap.value); } + /** + * + * @param e + */ function onFileChangeAvatarImage(e) { const { file, clearInput } = handleImageUploadInput(e, { inputSelector: imageUploadInput.value, @@ -483,6 +519,10 @@ cropDialogOpen.value = true; } + /** + * + * @param blob + */ async function onCropConfirmAvatar(blob) { const avatarRef = changeImageAvatarRef.value; if (!avatarRef) return; @@ -527,10 +567,18 @@ currentAvatarId }); + /** + * + * @param row + */ function handleRowClick(row) { handleWearAvatar(row.original.id); } + /** + * + * @param row + */ function getRowClass(row) { if (row.original.id === currentAvatarId.value) { return 'bg-primary/10 hover:bg-primary/15'; @@ -561,6 +609,9 @@ table.setPageSize(size); }); + /** + * + */ async function refreshAvatars() { if (isLoading.value) { return; diff --git a/src/views/MyAvatars/columns.jsx b/src/views/MyAvatars/columns.jsx index 8f8e620f..c198b1e0 100644 --- a/src/views/MyAvatars/columns.jsx +++ b/src/views/MyAvatars/columns.jsx @@ -203,11 +203,11 @@ export function getColumns({ } }, { - id: 'releaseStatus', + id: 'visibility', accessorKey: 'releaseStatus', - header: () => t('dialog.avatar.tags.public'), + header: () => t('dialog.avatar.info.visibility'), size: 120, - meta: { label: () => t('dialog.avatar.tags.public') }, + meta: { label: () => t('dialog.avatar.info.visibility') }, cell: ({ row }) => { const ref = row.original; return ( diff --git a/src/vite.config.js b/src/vite.config.js index ac9c98e6..2ea9a679 100644 --- a/src/vite.config.js +++ b/src/vite.config.js @@ -3,13 +3,19 @@ import { resolve } from 'node:path'; import fs from 'node:fs'; import { defineConfig, loadEnv } from 'vite'; +import { browserslistToTargets } from 'lightningcss'; +import browserslist from 'browserslist'; import tailwindcss from '@tailwindcss/vite'; import vue from '@vitejs/plugin-vue'; import vueJsx from '@vitejs/plugin-vue-jsx'; import { languageCodes } from './localization/locales'; +/** + * + * @param assetId + */ function getAssetLanguage(assetId) { if (!assetId) return null; @@ -31,6 +37,10 @@ function getAssetLanguage(assetId) { return language || null; } +/** + * + * @param moduleId + */ function getManualChunk(moduleId) { const language = getAssetLanguage(moduleId); if (!language) return; @@ -40,6 +50,11 @@ function getManualChunk(moduleId) { const defaultAssetName = '[hash][extname]'; +/** + * + * @param root0 + * @param root0.name + */ function getAssetFilename({ name }) { const language = getAssetLanguage(name); if (!language) return `assets/${defaultAssetName}`; @@ -94,12 +109,27 @@ export default defineConfig(({ mode }) => { css: { transformer: 'lightningcss', lightningcss: { - minify: true, - targets: { - chrome: 140 - } + drafts: { + nesting: true, + customMedia: true + }, + errorRecovery: true, + targets: browserslistToTargets(browserslist('Chrome 144')) } }, + optimizeDeps: { + include: [ + 'vue', + 'vue/jsx-runtime', + 'reka-ui', + 'pinia', + 'vue-i18n', + 'lucide-vue-next', + '@vueuse/core', + 'vue-sonner', + 'dayjs' + ] + }, define: { LINUX: JSON.stringify(process.env.PLATFORM === 'linux'), WINDOWS: JSON.stringify(process.env.PLATFORM === 'windows'), @@ -111,7 +141,8 @@ export default defineConfig(({ mode }) => { strictPort: true }, build: { - target: 'chrome140', + target: 'chrome144', + cssTarget: 'chrome144', outDir: '../build/html', license: true, emptyOutDir: true,