diff --git a/package.json b/package.json index 1a61380..ae71b3d 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "color": "^4.2.3", "decky-frontend-lib": "^3.22.0", "lodash": "^4.17.21", - "react-icons": "^4.3.1" + "react-icons": "^4.12.0" }, "pnpm": { "peerDependencyRules": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 38e78fe..08c50b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,41 +1,45 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + dependencies: color: specifier: ^4.2.3 version: 4.2.3 decky-frontend-lib: specifier: ^3.22.0 - version: 3.22.0 + version: 3.23.1 lodash: specifier: ^4.17.21 version: 4.17.21 react-icons: - specifier: ^4.3.1 - version: 4.4.0 + specifier: ^4.12.0 + version: 4.12.0 devDependencies: '@rollup/plugin-commonjs': specifier: ^21.1.0 - version: 21.1.0(rollup@2.76.0) + version: 21.1.0(rollup@2.75.6) '@rollup/plugin-json': specifier: ^4.1.0 - version: 4.1.0(rollup@2.76.0) + version: 4.1.0(rollup@2.75.6) '@rollup/plugin-node-resolve': specifier: ^13.2.1 - version: 13.3.0(rollup@2.76.0) + version: 13.3.0(rollup@2.75.6) '@rollup/plugin-replace': specifier: ^4.0.0 - version: 4.0.0(rollup@2.76.0) + version: 4.0.0(rollup@2.75.6) '@rollup/plugin-typescript': specifier: ^8.3.2 - version: 8.3.3(rollup@2.76.0)(tslib@2.4.0)(typescript@4.7.4) + version: 8.3.3(rollup@2.75.6)(tslib@2.4.0)(typescript@4.7.3) '@types/color': specifier: ^3.0.3 - version: 3.0.3 + version: 3.0.6 '@types/lodash': specifier: ^4.14.191 - version: 4.14.191 + version: 4.14.201 '@types/react': specifier: 16.14.0 version: 16.14.0 @@ -44,13 +48,13 @@ devDependencies: version: 5.28.0 rollup: specifier: ^2.70.2 - version: 2.76.0 + version: 2.75.6 rollup-plugin-import-assets: specifier: ^1.1.1 - version: 1.1.1(rollup@2.76.0) + version: 1.1.1(rollup@2.75.6) rollup-plugin-styles: specifier: ^4.0.0 - version: 4.0.0(rollup@2.76.0) + version: 4.0.0(rollup@2.75.6) shx: specifier: ^0.3.4 version: 0.3.4 @@ -59,119 +63,120 @@ devDependencies: version: 2.4.0 typescript: specifier: ^4.6.4 - version: 4.7.4 + version: 4.7.3 packages: - /@babel/code-frame@7.18.6: - resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.18.6 + '@babel/highlight': 7.22.20 + chalk: 2.4.2 dev: true - /@babel/helper-validator-identifier@7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} dev: true - /@babel/highlight@7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.19.1 + '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 dev: true - /@jridgewell/gen-mapping@0.3.2: - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + /@jridgewell/gen-mapping@0.3.1: + resolution: {integrity: sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 - '@jridgewell/trace-mapping': 0.3.14 + '@jridgewell/set-array': 1.1.1 + '@jridgewell/sourcemap-codec': 1.4.13 + '@jridgewell/trace-mapping': 0.3.13 dev: true - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + /@jridgewell/resolve-uri@3.0.7: + resolution: {integrity: sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + /@jridgewell/set-array@1.1.1: + resolution: {integrity: sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==} engines: {node: '>=6.0.0'} dev: true /@jridgewell/source-map@0.3.2: resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} dependencies: - '@jridgewell/gen-mapping': 0.3.2 - '@jridgewell/trace-mapping': 0.3.14 + '@jridgewell/gen-mapping': 0.3.1 + '@jridgewell/trace-mapping': 0.3.13 dev: true - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + /@jridgewell/sourcemap-codec@1.4.13: + resolution: {integrity: sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==} dev: true - /@jridgewell/trace-mapping@0.3.14: - resolution: {integrity: sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==} + /@jridgewell/trace-mapping@0.3.13: + resolution: {integrity: sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==} dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 + '@jridgewell/resolve-uri': 3.0.7 + '@jridgewell/sourcemap-codec': 1.4.13 dev: true - /@rollup/plugin-commonjs@21.1.0(rollup@2.76.0): + /@rollup/plugin-commonjs@21.1.0(rollup@2.75.6): resolution: {integrity: sha512-6ZtHx3VHIp2ReNNDxHjuUml6ur+WcQ28N1yHgCQwsbNkQg2suhxGMDQGJOn/KuDxKtd1xuZP5xSTwBA4GQ8hbA==} engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^2.38.3 dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.76.0) + '@rollup/pluginutils': 3.1.0(rollup@2.75.6) commondir: 1.0.1 estree-walker: 2.0.2 glob: 7.2.3 is-reference: 1.2.1 magic-string: 0.25.9 - resolve: 1.22.1 - rollup: 2.76.0 + resolve: 1.22.0 + rollup: 2.75.6 dev: true - /@rollup/plugin-json@4.1.0(rollup@2.76.0): + /@rollup/plugin-json@4.1.0(rollup@2.75.6): resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.76.0) - rollup: 2.76.0 + '@rollup/pluginutils': 3.1.0(rollup@2.75.6) + rollup: 2.75.6 dev: true - /@rollup/plugin-node-resolve@13.3.0(rollup@2.76.0): + /@rollup/plugin-node-resolve@13.3.0(rollup@2.75.6): resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^2.42.0 dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.76.0) + '@rollup/pluginutils': 3.1.0(rollup@2.75.6) '@types/resolve': 1.17.1 deepmerge: 4.2.2 is-builtin-module: 3.1.0 is-module: 1.0.0 - resolve: 1.22.1 - rollup: 2.76.0 + resolve: 1.22.0 + rollup: 2.75.6 dev: true - /@rollup/plugin-replace@4.0.0(rollup@2.76.0): + /@rollup/plugin-replace@4.0.0(rollup@2.75.6): resolution: {integrity: sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.76.0) + '@rollup/pluginutils': 3.1.0(rollup@2.75.6) magic-string: 0.25.9 - rollup: 2.76.0 + rollup: 2.75.6 dev: true - /@rollup/plugin-typescript@8.3.3(rollup@2.76.0)(tslib@2.4.0)(typescript@4.7.4): + /@rollup/plugin-typescript@8.3.3(rollup@2.75.6)(tslib@2.4.0)(typescript@4.7.3): resolution: {integrity: sha512-55L9SyiYu3r/JtqdjhwcwaECXP7JeJ9h1Sg1VWRJKIutla2MdZQodTgcCNybXLMCnqpNLEhS2vGENww98L1npg==} engines: {node: '>=8.0.0'} peerDependencies: @@ -182,14 +187,14 @@ packages: tslib: optional: true dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.76.0) - resolve: 1.22.1 - rollup: 2.76.0 + '@rollup/pluginutils': 3.1.0(rollup@2.75.6) + resolve: 1.22.0 + rollup: 2.75.6 tslib: 2.4.0 - typescript: 4.7.4 + typescript: 4.7.3 dev: true - /@rollup/pluginutils@3.1.0(rollup@2.76.0): + /@rollup/pluginutils@3.1.0(rollup@2.75.6): resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: @@ -198,7 +203,7 @@ packages: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 - rollup: 2.76.0 + rollup: 2.75.6 dev: true /@rollup/pluginutils@4.2.1: @@ -214,40 +219,40 @@ packages: engines: {node: '>=10.13.0'} dev: true - /@types/color-convert@2.0.0: - resolution: {integrity: sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==} + /@types/color-convert@2.0.3: + resolution: {integrity: sha512-2Q6wzrNiuEvYxVQqhh7sXM2mhIhvZR/Paq4FdsQkOMgWsCIkKvSGj8Le1/XalulrmgOzPMqNa0ix+ePY4hTrfg==} dependencies: - '@types/color-name': 1.1.1 + '@types/color-name': 1.1.3 dev: true - /@types/color-name@1.1.1: - resolution: {integrity: sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==} + /@types/color-name@1.1.3: + resolution: {integrity: sha512-87W6MJCKZYDhLAx/J1ikW8niMvmGRyY+rpUxWpL1cO7F8Uu5CHuQoFv+R0/L5pgNdW4jTyda42kv60uwVIPjLw==} dev: true - /@types/color@3.0.3: - resolution: {integrity: sha512-X//qzJ3d3Zj82J9sC/C18ZY5f43utPbAJ6PhYt/M7uG6etcF6MRpKdN880KBy43B0BMzSfeT96MzrsNjFI3GbA==} + /@types/color@3.0.6: + resolution: {integrity: sha512-NMiNcZFRUAiUUCCf7zkAelY8eV3aKqfbzyFQlXpPIEeoNDbsEHGpb854V3gzTsGKYj830I5zPuOwU/TP5/cW6A==} dependencies: - '@types/color-convert': 2.0.0 + '@types/color-convert': 2.0.3 dev: true - /@types/cssnano@5.1.0(postcss@8.4.20): + /@types/cssnano@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-ikR+18UpFGgvaWSur4og6SJYF/6QEYHXvrIt36dp81p1MG3cAPTYDMBJGeyWa3LCnqEbgNMHKRb+FP0NrXtoWQ==} deprecated: This is a stub types definition. cssnano provides its own type definitions, so you do not need this installed. dependencies: - cssnano: 5.1.14(postcss@8.4.20) + cssnano: 5.1.15(postcss@8.4.31) transitivePeerDependencies: - postcss dev: true - /@types/eslint-scope@3.7.4: - resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} + /@types/eslint-scope@3.7.3: + resolution: {integrity: sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==} dependencies: - '@types/eslint': 8.4.5 + '@types/eslint': 8.4.3 '@types/estree': 0.0.51 dev: true - /@types/eslint@8.4.5: - resolution: {integrity: sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==} + /@types/eslint@8.4.3: + resolution: {integrity: sha512-YP1S7YJRMPs+7KZKDb9G63n8YejIwW9BALq7a5j2+H4yl6iOv9CB29edho+cuFRrvmJbbaH2yiVChKLJVysDGw==} dependencies: '@types/estree': 0.0.51 '@types/json-schema': 7.0.11 @@ -265,16 +270,16 @@ packages: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true - /@types/lodash@4.14.191: - resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==} + /@types/lodash@4.14.201: + resolution: {integrity: sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ==} dev: true - /@types/node@18.0.3: - resolution: {integrity: sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==} + /@types/node@17.0.42: + resolution: {integrity: sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==} dev: true - /@types/parse-json@4.0.0: - resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + /@types/parse-json@4.0.2: + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} dev: true /@types/prop-types@15.7.5: @@ -291,13 +296,13 @@ packages: /@types/resolve@1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 18.0.3 + '@types/node': 17.0.42 dev: true /@types/webpack@5.28.0: resolution: {integrity: sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w==} dependencies: - '@types/node': 18.0.3 + '@types/node': 17.0.42 tapable: 2.2.1 webpack: 5.73.0 transitivePeerDependencies: @@ -474,15 +479,15 @@ packages: concat-map: 0.0.1 dev: true - /browserslist@4.21.4: - resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001441 - electron-to-chromium: 1.4.284 - node-releases: 2.0.6 - update-browserslist-db: 1.0.10(browserslist@4.21.4) + caniuse-lite: 1.0.30001562 + electron-to-chromium: 1.4.587 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) dev: true /buffer-from@1.1.2: @@ -502,14 +507,18 @@ packages: /caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.21.4 - caniuse-lite: 1.0.30001441 + browserslist: 4.22.1 + caniuse-lite: 1.0.30001352 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true - /caniuse-lite@1.0.30001441: - resolution: {integrity: sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==} + /caniuse-lite@1.0.30001352: + resolution: {integrity: sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA==} + dev: true + + /caniuse-lite@1.0.30001562: + resolution: {integrity: sha512-kfte3Hym//51EdX4239i+Rmp20EsLIYGdPkERegTgU19hQWCRhsRFGKHTliUlsry53tv17K7n077Kqa0WJU4ng==} dev: true /chalk@2.4.2: @@ -587,20 +596,20 @@ packages: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} engines: {node: '>=10'} dependencies: - '@types/parse-json': 4.0.0 + '@types/parse-json': 4.0.2 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 dev: true - /css-declaration-sorter@6.3.1(postcss@8.4.20): - resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} + /css-declaration-sorter@6.4.1(postcss@8.4.31): + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 dev: true /css-select@4.3.0: @@ -632,62 +641,62 @@ packages: hasBin: true dev: true - /cssnano-preset-default@5.2.13(postcss@8.4.20): - resolution: {integrity: sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==} + /cssnano-preset-default@5.2.14(postcss@8.4.31): + resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.3.1(postcss@8.4.20) - cssnano-utils: 3.1.0(postcss@8.4.20) - postcss: 8.4.20 - postcss-calc: 8.2.4(postcss@8.4.20) - postcss-colormin: 5.3.0(postcss@8.4.20) - postcss-convert-values: 5.1.3(postcss@8.4.20) - postcss-discard-comments: 5.1.2(postcss@8.4.20) - postcss-discard-duplicates: 5.1.0(postcss@8.4.20) - postcss-discard-empty: 5.1.1(postcss@8.4.20) - postcss-discard-overridden: 5.1.0(postcss@8.4.20) - postcss-merge-longhand: 5.1.7(postcss@8.4.20) - postcss-merge-rules: 5.1.3(postcss@8.4.20) - postcss-minify-font-values: 5.1.0(postcss@8.4.20) - postcss-minify-gradients: 5.1.1(postcss@8.4.20) - postcss-minify-params: 5.1.4(postcss@8.4.20) - postcss-minify-selectors: 5.2.1(postcss@8.4.20) - postcss-normalize-charset: 5.1.0(postcss@8.4.20) - postcss-normalize-display-values: 5.1.0(postcss@8.4.20) - postcss-normalize-positions: 5.1.1(postcss@8.4.20) - postcss-normalize-repeat-style: 5.1.1(postcss@8.4.20) - postcss-normalize-string: 5.1.0(postcss@8.4.20) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.20) - postcss-normalize-unicode: 5.1.1(postcss@8.4.20) - postcss-normalize-url: 5.1.0(postcss@8.4.20) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.20) - postcss-ordered-values: 5.1.3(postcss@8.4.20) - postcss-reduce-initial: 5.1.1(postcss@8.4.20) - postcss-reduce-transforms: 5.1.0(postcss@8.4.20) - postcss-svgo: 5.1.0(postcss@8.4.20) - postcss-unique-selectors: 5.1.1(postcss@8.4.20) - dev: true - - /cssnano-utils@3.1.0(postcss@8.4.20): + css-declaration-sorter: 6.4.1(postcss@8.4.31) + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-calc: 8.2.4(postcss@8.4.31) + postcss-colormin: 5.3.1(postcss@8.4.31) + postcss-convert-values: 5.1.3(postcss@8.4.31) + postcss-discard-comments: 5.1.2(postcss@8.4.31) + postcss-discard-duplicates: 5.1.0(postcss@8.4.31) + postcss-discard-empty: 5.1.1(postcss@8.4.31) + postcss-discard-overridden: 5.1.0(postcss@8.4.31) + postcss-merge-longhand: 5.1.7(postcss@8.4.31) + postcss-merge-rules: 5.1.4(postcss@8.4.31) + postcss-minify-font-values: 5.1.0(postcss@8.4.31) + postcss-minify-gradients: 5.1.1(postcss@8.4.31) + postcss-minify-params: 5.1.4(postcss@8.4.31) + postcss-minify-selectors: 5.2.1(postcss@8.4.31) + postcss-normalize-charset: 5.1.0(postcss@8.4.31) + postcss-normalize-display-values: 5.1.0(postcss@8.4.31) + postcss-normalize-positions: 5.1.1(postcss@8.4.31) + postcss-normalize-repeat-style: 5.1.1(postcss@8.4.31) + postcss-normalize-string: 5.1.0(postcss@8.4.31) + postcss-normalize-timing-functions: 5.1.0(postcss@8.4.31) + postcss-normalize-unicode: 5.1.1(postcss@8.4.31) + postcss-normalize-url: 5.1.0(postcss@8.4.31) + postcss-normalize-whitespace: 5.1.1(postcss@8.4.31) + postcss-ordered-values: 5.1.3(postcss@8.4.31) + postcss-reduce-initial: 5.1.2(postcss@8.4.31) + postcss-reduce-transforms: 5.1.0(postcss@8.4.31) + postcss-svgo: 5.1.0(postcss@8.4.31) + postcss-unique-selectors: 5.1.1(postcss@8.4.31) + dev: true + + /cssnano-utils@3.1.0(postcss@8.4.31): resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 dev: true - /cssnano@5.1.14(postcss@8.4.20): - resolution: {integrity: sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==} + /cssnano@5.1.15(postcss@8.4.31): + resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.13(postcss@8.4.20) - lilconfig: 2.0.6 - postcss: 8.4.20 + cssnano-preset-default: 5.2.14(postcss@8.4.31) + lilconfig: 2.1.0 + postcss: 8.4.31 yaml: 1.10.2 dev: true @@ -702,8 +711,8 @@ packages: resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} dev: true - /decky-frontend-lib@3.22.0: - resolution: {integrity: sha512-MJ0y0bhNMHJyMVxHht3O0L0GxdT9sckUmh35HG7/ERqyZQsfKpDqOeW6pC1R07SnuWwgbl4fY3tzjlrb7qUeoA==} + /decky-frontend-lib@3.23.1: + resolution: {integrity: sha512-6JKtSCjk5liJ+xBqOPZvPSp1HdkaQ+j/I19bGSk+cWuxSrodyduduXKJE4p4GJ/+KgFdn0yg/8tRi+DSqmBvdw==} dev: false /decode-uri-component@0.2.2: @@ -743,12 +752,12 @@ packages: domhandler: 4.3.1 dev: true - /electron-to-chromium@1.4.284: - resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} + /electron-to-chromium@1.4.587: + resolution: {integrity: sha512-RyJX0q/zOkAoefZhB9XHghGeATVP0Q3mwA253XD/zj2OeXc+JZB9pCaEv6R578JUYaWM9PRhye0kXvd/V1cQ3Q==} dev: true - /enhanced-resolve@5.10.0: - resolution: {integrity: sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==} + /enhanced-resolve@5.9.3: + resolution: {integrity: sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.10 @@ -844,15 +853,15 @@ packages: dependencies: graceful-fs: 4.2.10 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 dev: true /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true @@ -899,13 +908,13 @@ packages: function-bind: 1.1.1 dev: true - /icss-utils@5.1.0(postcss@8.4.20): + /icss-utils@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 dev: true /import-fresh@3.3.0: @@ -967,7 +976,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.0.3 + '@types/node': 17.0.42 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -987,13 +996,13 @@ packages: /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.10 dev: true - /lilconfig@2.0.6: - resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} dev: true @@ -1054,8 +1063,8 @@ packages: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} dev: true - /nanoid@3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true @@ -1064,8 +1073,8 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true - /node-releases@2.0.6: - resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} dev: true /normalize-url@6.1.0: @@ -1116,7 +1125,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.18.6 + '@babel/code-frame': 7.22.13 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -1145,346 +1154,346 @@ packages: engines: {node: '>=8.6'} dev: true - /postcss-calc@8.2.4(postcss@8.4.20): + /postcss-calc@8.2.4(postcss@8.4.31): resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.20 - postcss-selector-parser: 6.0.11 + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true - /postcss-colormin@5.3.0(postcss@8.4.20): - resolution: {integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==} + /postcss-colormin@5.3.1(postcss@8.4.31): + resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 + browserslist: 4.22.1 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.20 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-convert-values@5.1.3(postcss@8.4.20): + /postcss-convert-values@5.1.3(postcss@8.4.31): resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 - postcss: 8.4.20 + browserslist: 4.22.1 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-discard-comments@5.1.2(postcss@8.4.20): + /postcss-discard-comments@5.1.2(postcss@8.4.31): resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 dev: true - /postcss-discard-duplicates@5.1.0(postcss@8.4.20): + /postcss-discard-duplicates@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 dev: true - /postcss-discard-empty@5.1.1(postcss@8.4.20): + /postcss-discard-empty@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 dev: true - /postcss-discard-overridden@5.1.0(postcss@8.4.20): + /postcss-discard-overridden@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 dev: true - /postcss-merge-longhand@5.1.7(postcss@8.4.20): + /postcss-merge-longhand@5.1.7(postcss@8.4.31): resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.20) + stylehacks: 5.1.1(postcss@8.4.31) dev: true - /postcss-merge-rules@5.1.3(postcss@8.4.20): - resolution: {integrity: sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==} + /postcss-merge-rules@5.1.4(postcss@8.4.31): + resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 + browserslist: 4.22.1 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.20) - postcss: 8.4.20 - postcss-selector-parser: 6.0.11 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 dev: true - /postcss-minify-font-values@5.1.0(postcss@8.4.20): + /postcss-minify-font-values@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-gradients@5.1.1(postcss@8.4.20): + /postcss-minify-gradients@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.20) - postcss: 8.4.20 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-params@5.1.4(postcss@8.4.20): + /postcss-minify-params@5.1.4(postcss@8.4.31): resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 - cssnano-utils: 3.1.0(postcss@8.4.20) - postcss: 8.4.20 + browserslist: 4.22.1 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-minify-selectors@5.2.1(postcss@8.4.20): + /postcss-minify-selectors@5.2.1(postcss@8.4.31): resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 - postcss-selector-parser: 6.0.11 + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 dev: true - /postcss-modules-extract-imports@3.0.0(postcss@8.4.20): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.31): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 dev: true - /postcss-modules-local-by-default@4.0.0(postcss@8.4.20): - resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} + /postcss-modules-local-by-default@4.0.3(postcss@8.4.31): + resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.20) - postcss: 8.4.20 - postcss-selector-parser: 6.0.11 + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: true - /postcss-modules-scope@3.0.0(postcss@8.4.20): + /postcss-modules-scope@3.0.0(postcss@8.4.31): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.20 - postcss-selector-parser: 6.0.11 + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 dev: true - /postcss-modules-values@4.0.0(postcss@8.4.20): + /postcss-modules-values@4.0.0(postcss@8.4.31): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.20) - postcss: 8.4.20 + icss-utils: 5.1.0(postcss@8.4.31) + postcss: 8.4.31 dev: true - /postcss-normalize-charset@5.1.0(postcss@8.4.20): + /postcss-normalize-charset@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 dev: true - /postcss-normalize-display-values@5.1.0(postcss@8.4.20): + /postcss-normalize-display-values@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-positions@5.1.1(postcss@8.4.20): + /postcss-normalize-positions@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.20): + /postcss-normalize-repeat-style@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-string@5.1.0(postcss@8.4.20): + /postcss-normalize-string@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.20): + /postcss-normalize-timing-functions@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-unicode@5.1.1(postcss@8.4.20): + /postcss-normalize-unicode@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 - postcss: 8.4.20 + browserslist: 4.22.1 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-url@5.1.0(postcss@8.4.20): + /postcss-normalize-url@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 - postcss: 8.4.20 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-normalize-whitespace@5.1.1(postcss@8.4.20): + /postcss-normalize-whitespace@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-ordered-values@5.1.3(postcss@8.4.20): + /postcss-ordered-values@5.1.3(postcss@8.4.31): resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0(postcss@8.4.20) - postcss: 8.4.20 + cssnano-utils: 3.1.0(postcss@8.4.31) + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-reduce-initial@5.1.1(postcss@8.4.20): - resolution: {integrity: sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==} + /postcss-reduce-initial@5.1.2(postcss@8.4.31): + resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 + browserslist: 4.22.1 caniuse-api: 3.0.0 - postcss: 8.4.20 + postcss: 8.4.31 dev: true - /postcss-reduce-transforms@5.1.0(postcss@8.4.20): + /postcss-reduce-transforms@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 postcss-value-parser: 4.2.0 dev: true - /postcss-selector-parser@6.0.11: - resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} engines: {node: '>=4'} dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 dev: true - /postcss-svgo@5.1.0(postcss@8.4.20): + /postcss-svgo@5.1.0(postcss@8.4.31): resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 + postcss: 8.4.31 postcss-value-parser: 4.2.0 svgo: 2.8.0 dev: true - /postcss-unique-selectors@5.1.1(postcss@8.4.20): + /postcss-unique-selectors@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.20 - postcss-selector-parser: 6.0.11 + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 dev: true /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: true - /postcss@8.4.20: - resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==} + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.4 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 dev: true @@ -1510,8 +1519,8 @@ packages: safe-buffer: 5.2.1 dev: true - /react-icons@4.4.0: - resolution: {integrity: sha512-fSbvHeVYo/B5/L4VhB7sBA1i2tS8MkT0Hb9t2H1AVPkwGfVHLJCqyr2Py9dKMxsyM63Eng1GkdZfbWj+Fmv8Rg==} + /react-icons@4.12.0: + resolution: {integrity: sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==} peerDependencies: react: '*' peerDependenciesMeta: @@ -1523,7 +1532,7 @@ packages: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} dependencies: - resolve: 1.22.1 + resolve: 1.22.0 dev: true /resolve-from@4.0.0: @@ -1531,8 +1540,8 @@ packages: engines: {node: '>=4'} dev: true - /resolve@1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + /resolve@1.22.0: + resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} hasBin: true dependencies: is-core-module: 2.9.0 @@ -1540,39 +1549,39 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /rollup-plugin-import-assets@1.1.1(rollup@2.76.0): + /rollup-plugin-import-assets@1.1.1(rollup@2.75.6): resolution: {integrity: sha512-u5zJwOjguTf2N+wETq2weNKGvNkuVc1UX/fPgg215p5xPvGOaI6/BTc024E9brvFjSQTfIYqgvwogQdipknu1g==} peerDependencies: rollup: '>=1.9.0' dependencies: - rollup: 2.76.0 + rollup: 2.75.6 rollup-pluginutils: 2.8.2 url-join: 4.0.1 dev: true - /rollup-plugin-styles@4.0.0(rollup@2.76.0): + /rollup-plugin-styles@4.0.0(rollup@2.75.6): resolution: {integrity: sha512-A2K2sao84OsTmDxXG83JTCdXWrmgvQkkI38XDat46rdtpGMRm9tSYqeCdlwwGDJF4kKIafhV1mUidqu8MxUGig==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} peerDependencies: rollup: ^2.63.0 dependencies: '@rollup/pluginutils': 4.2.1 - '@types/cssnano': 5.1.0(postcss@8.4.20) + '@types/cssnano': 5.1.0(postcss@8.4.31) cosmiconfig: 7.1.0 - cssnano: 5.1.14(postcss@8.4.20) + cssnano: 5.1.15(postcss@8.4.31) fs-extra: 10.1.0 - icss-utils: 5.1.0(postcss@8.4.20) + icss-utils: 5.1.0(postcss@8.4.31) mime-types: 2.1.35 p-queue: 6.6.2 - postcss: 8.4.20 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.20) - postcss-modules-local-by-default: 4.0.0(postcss@8.4.20) - postcss-modules-scope: 3.0.0(postcss@8.4.20) - postcss-modules-values: 4.0.0(postcss@8.4.20) + postcss: 8.4.31 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.31) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.31) + postcss-modules-scope: 3.0.0(postcss@8.4.31) + postcss-modules-values: 4.0.0(postcss@8.4.31) postcss-value-parser: 4.2.0 query-string: 7.1.3 - resolve: 1.22.1 - rollup: 2.76.0 + resolve: 1.22.0 + rollup: 2.75.6 source-map-js: 1.0.2 tslib: 2.4.0 dev: true @@ -1583,12 +1592,12 @@ packages: estree-walker: 0.6.1 dev: true - /rollup@2.76.0: - resolution: {integrity: sha512-9jwRIEY1jOzKLj3nsY/yot41r19ITdQrhs+q3ggNWhr9TQgduHqANvPpS32RNpzGklJu3G1AJfvlZLi/6wFgWA==} + /rollup@2.75.6: + resolution: {integrity: sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true /safe-buffer@5.2.1: @@ -1654,7 +1663,6 @@ packages: /sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead dev: true /split-on-first@1.1.0: @@ -1672,15 +1680,15 @@ packages: engines: {node: '>=4'} dev: true - /stylehacks@5.1.1(postcss@8.4.20): + /stylehacks@5.1.1(postcss@8.4.31): resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.4 - postcss: 8.4.20 - postcss-selector-parser: 6.0.11 + browserslist: 4.22.1 + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 dev: true /supports-color@5.5.0: @@ -1737,7 +1745,7 @@ packages: uglify-js: optional: true dependencies: - '@jridgewell/trace-mapping': 0.3.14 + '@jridgewell/trace-mapping': 0.3.13 jest-worker: 27.5.1 schema-utils: 3.1.1 serialize-javascript: 6.0.0 @@ -1760,24 +1768,24 @@ packages: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} dev: true - /typescript@4.7.4: - resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} + /typescript@4.7.3: + resolution: {integrity: sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==} engines: {node: '>=4.2.0'} hasBin: true dev: true - /universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} dev: true - /update-browserslist-db@1.0.10(browserslist@4.21.4): - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.21.4 + browserslist: 4.22.1 escalade: 3.1.1 picocolors: 1.0.0 dev: true @@ -1819,16 +1827,16 @@ packages: webpack-cli: optional: true dependencies: - '@types/eslint-scope': 3.7.4 + '@types/eslint-scope': 3.7.3 '@types/estree': 0.0.51 '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/wasm-edit': 1.11.1 '@webassemblyjs/wasm-parser': 1.11.1 acorn: 8.7.1 acorn-import-assertions: 1.8.0(acorn@8.7.1) - browserslist: 4.21.4 + browserslist: 4.22.1 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.10.0 + enhanced-resolve: 5.9.3 es-module-lexer: 0.9.3 eslint-scope: 5.1.1 events: 3.3.0 diff --git a/src/components/Modals/ThemeSettingsModal/ThemeSettingsModal.tsx b/src/components/Modals/ThemeSettingsModal/ThemeSettingsModal.tsx index 290e70e..e5556a2 100644 --- a/src/components/Modals/ThemeSettingsModal/ThemeSettingsModal.tsx +++ b/src/components/Modals/ThemeSettingsModal/ThemeSettingsModal.tsx @@ -140,7 +140,7 @@ function ThemeSettingsModal({ <> {themeData.patches.map((x, i, arr) => ( - + ))} diff --git a/src/components/Modals/ThemeSettingsModal/ThemeSettingsModalButtons.tsx b/src/components/Modals/ThemeSettingsModal/ThemeSettingsModalButtons.tsx index e657a18..c123297 100644 --- a/src/components/Modals/ThemeSettingsModal/ThemeSettingsModalButtons.tsx +++ b/src/components/Modals/ThemeSettingsModal/ThemeSettingsModalButtons.tsx @@ -1,10 +1,9 @@ import { DialogButton, Focusable, showModal } from "decky-frontend-lib"; import { LocalThemeStatus, Theme } from "../../../ThemeTypes"; -import { FaTrashAlt } from "react-icons/fa"; +import { FaDownload, FaEye, FaEyeSlash, FaRegStar, FaStar, FaTrashAlt } from "react-icons/fa"; import { DeleteConfirmationModalRoot } from "../DeleteConfirmationModal"; import { useCssLoaderState } from "../../../state"; import * as python from "../../../python"; -import { AiFillEye, AiOutlineEyeInvisible } from "react-icons/ai"; import { genericGET, logInWithShortToken, @@ -13,7 +12,6 @@ import { installTheme, } from "../../../api"; import { useState, useEffect } from "react"; -import { BsStarFill, BsStar, BsFillCloudDownloadFill } from "react-icons/bs"; export function ThemeSettingsModalButtons({ themeData, @@ -91,7 +89,7 @@ export function ThemeSettingsModalButtons({ ); }} > - + Update )} @@ -107,9 +105,9 @@ export function ThemeSettingsModalButtons({ }} > {isPinned ? ( - + ) : ( - + )} {starFetchLoaded && ( @@ -118,7 +116,7 @@ export function ThemeSettingsModalButtons({ className="CSSLoader_ThemeSettingsModalHeader_DialogButton" onClick={toggleStar} > - {isStarred ? : } + {isStarred ? : } )}
{motd?.name} - +
{motd?.description} diff --git a/src/components/QAMTab/QAMThemeToggleList.tsx b/src/components/QAMTab/QAMThemeToggleList.tsx index 3f9be13..7f2aa49 100644 --- a/src/components/QAMTab/QAMThemeToggleList.tsx +++ b/src/components/QAMTab/QAMThemeToggleList.tsx @@ -4,6 +4,7 @@ import { ThemeToggle } from "../ThemeToggle"; import { Flags } from "../../ThemeTypes"; import { ThemeErrorCard } from "../ThemeErrorCard"; import { BsArrowDown } from "react-icons/bs"; +import { FaEyeSlash } from "react-icons/fa"; export function QAMThemeToggleList() { const { localThemeList, unpinnedThemes } = useCssLoaderState(); @@ -11,7 +12,7 @@ export function QAMThemeToggleList() { if (localThemeList.length === 0) { return ( <> - You have no themes currently, get started by clicking the download icon above! + You have no themes installed. Get started by selecting the download icon above! ); } @@ -38,23 +39,30 @@ export function QAMThemeToggleList() { `} - {unpinnedThemes.length === localThemeList.length ? ( - <> - - You have no pinned themes currently, themes that you pin from the "Your Themes" popup - will show up here - - - ) : ( - <> - {localThemeList - .filter((e) => !unpinnedThemes.includes(e.id) && !e.flags.includes(Flags.isPreset)) - .map((x) => ( - - ))} - - )} + <> + {localThemeList + .filter((e) => !unpinnedThemes.includes(e.id) && !e.flags.includes(Flags.isPreset)) + .map((x) => ( + + ))} + + {unpinnedThemes.length > 0 && ( +
+ +
+ {unpinnedThemes.length} theme{unpinnedThemes.length > 1 ? "s are" : "is"} hidden. +
+
+ )} ); } diff --git a/src/components/Styles/ThemeBrowserCardStyles.tsx b/src/components/Styles/ThemeBrowserCardStyles.tsx index 7b1a766..6617e14 100644 --- a/src/components/Styles/ThemeBrowserCardStyles.tsx +++ b/src/components/Styles/ThemeBrowserCardStyles.tsx @@ -88,11 +88,6 @@ export function ThemeBrowserCardStyles({ customCardSize }: { customCardSize?: nu transition-duration: 0.32s; transition-timing-function: cubic-bezier(0.17, 0.45, 0.14, 0.83); } - .gpfocuswithin > div > .CSSLoader_ThemeCard_Image { - filter: saturate(0); - transform: scale(1.03); - transition-delay: 0.1s; - } .CSSLoader_ThemeCard_ImageDarkener { position: absolute; top: 0; @@ -101,7 +96,7 @@ export function ThemeBrowserCardStyles({ customCardSize }: { customCardSize?: nu transition-property: opacity; transition-duration: 0.65s; transition-timing-function: cubic-bezier(0.17, 0.45, 0.14, 0.83); - background-color: #0056d6; + background: linear-gradient(0deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 30%); mix-blend-mode: multiply; width: var(--cssloader-themecard-width); height: var(--cssloader-themecard-imgheight); diff --git a/src/components/ThemeManager/BrowserItemCard.tsx b/src/components/ThemeManager/BrowserItemCard.tsx index dd73e31..06385eb 100644 --- a/src/components/ThemeManager/BrowserItemCard.tsx +++ b/src/components/ThemeManager/BrowserItemCard.tsx @@ -4,8 +4,8 @@ import { Theme } from "../../ThemeTypes"; import { Focusable, Navigation } from "decky-frontend-lib"; import { AiOutlineDownload } from "react-icons/ai"; import { PartialCSSThemeInfo, ThemeQueryRequest } from "../../apiTypes"; -import { BsCloudDownload, BsStar } from "react-icons/bs"; -import { FiTarget } from "react-icons/fi"; +import { FaBullseye, FaDownload, FaStar } from "react-icons/fa"; +import { shortenNumber } from "../../logic/numbers"; const cardWidth = { 5: 152, @@ -87,15 +87,15 @@ export const VariableSizeCard: FC<{
- - {e.download.downloadCount} + + {shortenNumber(e.download.downloadCount) ?? e.download.downloadCount}
- - {e.starCount} + + {shortenNumber(e.starCount) ?? e.starCount}
- + {e.target}
diff --git a/src/components/ThemeManager/BrowserSearchFields.tsx b/src/components/ThemeManager/BrowserSearchFields.tsx index 9c5ea32..ede5102 100644 --- a/src/components/ThemeManager/BrowserSearchFields.tsx +++ b/src/components/ThemeManager/BrowserSearchFields.tsx @@ -11,6 +11,7 @@ import { } from "decky-frontend-lib"; import { useEffect, useMemo, memo } from "react"; import { TiRefreshOutline } from "react-icons/ti"; +import { FaRotate } from "react-icons/fa6"; import { ThemeQueryRequest } from "../../apiTypes"; import { genericGET } from "../../api"; import { useCssLoaderState } from "../../state"; @@ -91,11 +92,11 @@ export function BrowserSearchFields({ style={{ display: "flex", flexDirection: "column", - maxWidth: repoOptions.length <= 1 ? "40%" : "33%", - minWidth: repoOptions.length <= 1 ? "40%" : "33%", + maxWidth: repoOptions.length <= 1 ? "49%" : "33%", + minWidth: repoOptions.length <= 1 ? "49%" : "33%", }} > - Sort + Sort - Filter + Filter - + Refresh
= ({ data, index, fullArr, themeName }) => { + modal?: boolean; +}> = ({ data, index, fullArr, themeName, modal = false }) => { const { selectedPreset } = useCssLoaderState(); const [selectedIndex, setIndex] = useState(data.options.indexOf(data.value)); @@ -54,7 +55,7 @@ export const ThemePatch: VFC<{ } min={0} max={data.options.length - 1} value={selectedIndex} @@ -81,7 +82,7 @@ export const ThemePatch: VFC<{ } checked={data.value === "Yes"} onChange={(bool) => { const newValue = bool ? "Yes" : "No"; @@ -101,7 +102,7 @@ export const ThemePatch: VFC<{ } menuLabel={`${data.name}`} rgOptions={data.options.map((x, i) => { return { data: i, label: x }; @@ -122,8 +123,11 @@ export const ThemePatch: VFC<{ return ( <> - {/* For some reason spans by default have a gray color, so I manually set it to the same white as the other titles */} - ↳ {data.name} + {modal ? ( + {data.name} + ) : ( + + )} @@ -132,3 +136,16 @@ export const ThemePatch: VFC<{ return null; } }; + +const PatchLabel = ({ name }: { name: string }) => { + return ( +
+ {name} +
+ ); +}; diff --git a/src/components/ThemeSettings/FullscreenSingleThemeEntry.tsx b/src/components/ThemeSettings/FullscreenSingleThemeEntry.tsx index 1b015ec..7b3ec10 100644 --- a/src/components/ThemeSettings/FullscreenSingleThemeEntry.tsx +++ b/src/components/ThemeSettings/FullscreenSingleThemeEntry.tsx @@ -3,10 +3,10 @@ import { LocalThemeStatus, Theme } from "../../ThemeTypes"; import { useCssLoaderState } from "../../state"; import * as python from "../../python"; import { ImCog } from "react-icons/im"; -import { AiFillEye, AiOutlineEyeInvisible } from "react-icons/ai"; import { toggleTheme } from "../../backend/backendHelpers/toggleTheme"; import { ThemeSettingsModalRoot } from "../Modals/ThemeSettingsModal"; -import { FaTrash } from "react-icons/fa"; +import { FaEye, FaEyeSlash, FaTrash } from "react-icons/fa"; +import { BsGearFill } from "react-icons/bs"; export function FullscreenSingleThemeEntry({ data: e, @@ -94,9 +94,9 @@ export function FullscreenSingleThemeEntry({ }} > {isPinned ? ( - + ) : ( - + )} ); }} > - +
diff --git a/src/components/ThemeSettings/UpdateAllThemesButton.tsx b/src/components/ThemeSettings/UpdateAllThemesButton.tsx index 2a09fe7..414589e 100644 --- a/src/components/ThemeSettings/UpdateAllThemesButton.tsx +++ b/src/components/ThemeSettings/UpdateAllThemesButton.tsx @@ -1,7 +1,7 @@ import { DialogButton } from "decky-frontend-lib"; import { useCssLoaderState } from "../../state"; import { Theme } from "../../ThemeTypes"; -import { BsFillCloudDownloadFill } from "react-icons/bs"; +import { FaDownload } from "react-icons/fa"; export function UpdateAllThemesButton({ handleUpdate, @@ -22,7 +22,7 @@ export function UpdateAllThemesButton({ <> {updateStatuses.filter((e) => e[1] === "outdated").length > 0 && ( - + Update All Themes )} diff --git a/src/logic/numbers.ts b/src/logic/numbers.ts new file mode 100644 index 0000000..d2e8fce --- /dev/null +++ b/src/logic/numbers.ts @@ -0,0 +1,47 @@ +// Code from the short-number package, could not be imported due +// to TypeScript issues. +// https://www.npmjs.com/package/short-number + +export function shortenNumber(num: number) { + if (typeof num !== "number") { + throw new TypeError("Expected a number"); + } + + if (num > 1e19) { + throw new RangeError("Input expected to be < 1e19"); + } + + if (num < -1e19) { + throw new RangeError("Input expected to be > 1e19"); + } + + if (Math.abs(num) < 1000) { + return num; + } + + var shortNumber; + var exponent; + var size; + var sign = num < 0 ? "-" : ""; + var suffixes = { + K: 6, + M: 9, + B: 12, + T: 16, + }; + + num = Math.abs(num); + size = Math.floor(num).toString().length; + + exponent = size % 3 === 0 ? size - 3 : size - (size % 3); + shortNumber = String(Math.round(10 * (num / Math.pow(10, exponent))) / 10); + + for (var suffix in suffixes) { + if (exponent < suffixes[suffix]) { + shortNumber += suffix; + break; + } + } + + return sign + shortNumber; +} diff --git a/src/pages/settings/PluginSettings.tsx b/src/pages/settings/PluginSettings.tsx index 05d3925..c305bb5 100644 --- a/src/pages/settings/PluginSettings.tsx +++ b/src/pages/settings/PluginSettings.tsx @@ -54,7 +54,7 @@ export function PluginSettings() { { setServer(value); }} @@ -64,7 +64,7 @@ export function PluginSettings() { setNavPatch(value, true)} /> @@ -72,7 +72,7 @@ export function PluginSettings() { diff --git a/src/pages/settings/SettingsPageRouter.tsx b/src/pages/settings/SettingsPageRouter.tsx index a28d687..b2f8952 100644 --- a/src/pages/settings/SettingsPageRouter.tsx +++ b/src/pages/settings/SettingsPageRouter.tsx @@ -1,5 +1,5 @@ import { SidebarNavigation } from "decky-frontend-lib"; -import { BsFolderFill } from "react-icons/bs"; +import { BsFolderFill, BsGearFill } from "react-icons/bs"; import { RiPaintFill, RiSettings2Fill } from "react-icons/ri"; import { ThemeSettings } from "./ThemeSettings"; import { PresetSettings } from "./PresetSettings"; @@ -7,6 +7,7 @@ import { PluginSettings } from "./PluginSettings"; import { Credits } from "./Credits"; import { AiFillGithub, AiFillHeart } from "react-icons/ai"; import { DonatePage } from "./DonatePage"; +import { FaFolder, FaGithub, FaHeart } from "react-icons/fa"; export function SettingsPageRouter() { return ( @@ -24,7 +25,7 @@ export function SettingsPageRouter() { } /* The actual element of the ToggleContainer with the BG */ .CSSLoader_FullTheme_ToggleContainer > div { - background: #23262e; + background: rgba(255,255,255,.15); border-radius: 2px; padding-left: 5px; padding-right: 5px; @@ -71,28 +72,28 @@ export function SettingsPageRouter() { }, { title: "Profiles", - icon: , + icon: , route: "/cssloader/settings/profiles", content: , }, { title: "Settings", - icon: , + icon: , route: "/cssloader/settings/plugin", content: , }, { title: "Donate", - icon: , + icon: , route: "/cssloader/settings/donate", content: , }, { title: "Credits", - icon: , + icon: , route: "/cssloader/settings/credits", content: , diff --git a/src/pages/settings/ThemeSettings.tsx b/src/pages/settings/ThemeSettings.tsx index 8caff78..09c8f50 100644 --- a/src/pages/settings/ThemeSettings.tsx +++ b/src/pages/settings/ThemeSettings.tsx @@ -32,12 +32,15 @@ export function ThemeSettings() { async function handleUpdate(e: Theme) { setInstalling(true); + const unpinned = unpinnedThemes.includes(e.id); await installTheme(e.id); // This just updates the updateStatuses arr to know that this theme now is up to date, no need to re-fetch the API to know that setGlobalState( "updateStatuses", updateStatuses.map((f) => (f[0] === e.id ? [e.id, "installed", false] : e)) ); + // Remove duplicate theme from unpinned list. + if (unpinned) python.pinTheme(e.id); setInstalling(false); } @@ -68,7 +71,7 @@ export function ThemeSettings() { display: flex !important; align-items: center; justify-content: center; - gap: 0.25em; + gap: 0.5em; } .CSSLoader_InstalledThemes_ButtonsContainer { margin-bottom: 1em; diff --git a/src/pages/theme-manager/ExpandedView.tsx b/src/pages/theme-manager/ExpandedView.tsx index df7298c..4451c1f 100644 --- a/src/pages/theme-manager/ExpandedView.tsx +++ b/src/pages/theme-manager/ExpandedView.tsx @@ -18,6 +18,8 @@ import { FullCSSThemeInfo, PartialCSSThemeInfo } from "../../apiTypes"; import { ThemeSettingsModalRoot } from "../../components/Modals/ThemeSettingsModal"; import { AuthorViewModalRoot } from "../../components/Modals/AuthorViewModal"; import { ExpandedViewStyles } from "../../components/Styles"; +import { shortenNumber } from "../../logic/numbers"; +import { FaRegStar, FaStar } from "react-icons/fa"; export const ExpandedViewPage: VFC = () => { const { @@ -331,10 +333,11 @@ export const ExpandedViewPage: VFC = () => {
- {isStarred ? : } + {isStarred ? : } {/* Need to make the text size smaller or else it wraps */} = 100 ? "0.75em" : "1em" }}> - {fullThemeData.starCount} Star{fullThemeData.starCount === 1 ? "" : "s"} + {shortenNumber(fullThemeData.starCount) ?? fullThemeData.starCount} Star + {fullThemeData.starCount === 1 ? "" : "s"}
{
Install {fullThemeData.displayName} - {fullThemeData.download.downloadCount} Download + {shortenNumber(fullThemeData.download.downloadCount) ?? + fullThemeData.download.downloadCount}{" "} + Download {fullThemeData.download.downloadCount === 1 ? "" : "s"} diff --git a/src/pages/theme-manager/LogInPage.tsx b/src/pages/theme-manager/LogInPage.tsx index 26056dd..7c2a6a9 100644 --- a/src/pages/theme-manager/LogInPage.tsx +++ b/src/pages/theme-manager/LogInPage.tsx @@ -5,6 +5,7 @@ import { logInWithShortToken, logOut } from "../../api"; import { useCssLoaderState } from "../../state"; import { enableServer, getServerState, storeWrite } from "../../python"; import { disableNavPatch, enableNavPatch } from "../../deckyPatches/NavPatch"; +import { FaArrowRightToBracket } from "react-icons/fa6"; export const LogInPage: VFC = () => { const { apiShortToken, apiFullToken, apiMeData } = useCssLoaderState(); @@ -76,7 +77,7 @@ export const LogInPage: VFC = () => { gap: "0.5em", }} > - + Log In