From 9d04e34507bcc8c5db22b640cafea367313279cf Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Thu, 20 Mar 2025 09:05:35 +0000 Subject: [PATCH 01/11] Update dependency sass to v1.86.0 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 10c0ce613..45125951d 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "postcss": "8.5.3", "postcss-html": "^1.5.0", "postcss-scss": "^4.0.6", - "sass": "1.85.1", + "sass": "1.86.0", "selenium-server": "3.141.59", "semver": "7.7.1", "serve-static": "1.16.2", diff --git a/yarn.lock b/yarn.lock index e6bd59973..515f9a3de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6888,10 +6888,10 @@ safe-regex-test@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@1.85.1: - version "1.85.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.85.1.tgz#18ab0bb48110ae99163778f06445b406148ca0d5" - integrity sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag== +sass@1.86.0: + version "1.86.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.86.0.tgz#f49464fb6237a903a93f4e8760ef6e37a5030114" + integrity sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA== dependencies: chokidar "^4.0.0" immutable "^5.0.2" From ae68a571c25a7ab8cab102d1f67df4a1e9e0a17b Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Mon, 24 Mar 2025 08:52:29 +0000 Subject: [PATCH 02/11] Update dependency chromedriver to v134.0.5 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d1b8e07f0..8aff660f1 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "babel-plugin-lodash": "3.3.4", "chai": "4.5.0", "chalk": "5.4.1", - "chromedriver": "134.0.3", + "chromedriver": "134.0.5", "connect-history-api-fallback": "2.0.0", "cross-spawn": "7.0.6", "custom-event-polyfill": "1.0.7", diff --git a/yarn.lock b/yarn.lock index 74c5de1c3..bb3cc4551 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2904,10 +2904,10 @@ chromatism@3.0.0: resolved "https://registry.yarnpkg.com/chromatism/-/chromatism-3.0.0.tgz#a7249d353c1e4f3577e444ac41171c4e2e624b12" integrity sha512-slVGC45odKFB6KzD/hpXP8XgS/Y+x72X1ckAhxU/9YZecCy8VwCJUSZsn0O4gQUwaTogun6IfrSiK3YuQaADFw== -chromedriver@134.0.3: - version "134.0.3" - resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-134.0.3.tgz#185a52526c193cc7ceb0a27d1266858f0f65f0fd" - integrity sha512-pRS401K3VRJMhFrK4NNceVE6xdoNOHC0P3sBylkLOb5p4MfrbXkjiCCipXoBD8jvui76t44FS5/taoVQNz9XUg== +chromedriver@134.0.5: + version "134.0.5" + resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-134.0.5.tgz#9432404d7da7412df4ea5ae4072b579bcc098ed7" + integrity sha512-edXbiuShAvH6Elx8Hobl4NQkgNRMIozcW7ZlEiE8TBynZHRazrepO9hfftQzZgztPvjMQiSWeWjZaDV3SecYaw== dependencies: "@testim/chrome-version" "^1.1.4" axios "^1.7.4" From 7fbff6e899f248b26868b6a3d62ccbbd08ac7708 Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Mon, 24 Mar 2025 08:52:42 +0000 Subject: [PATCH 03/11] Update dependency eslint to v9.23.0 --- package.json | 2 +- yarn.lock | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index d1b8e07f0..9327fc7f0 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "connect-history-api-fallback": "2.0.0", "cross-spawn": "7.0.6", "custom-event-polyfill": "1.0.7", - "eslint": "9.22.0", + "eslint": "9.23.0", "eslint-config-standard": "17.1.0", "eslint-formatter-friendly": "7.0.0", "eslint-plugin-import": "2.31.0", diff --git a/yarn.lock b/yarn.lock index 74c5de1c3..992261712 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1183,10 +1183,10 @@ debug "^4.3.1" minimatch "^3.1.2" -"@eslint/config-helpers@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.1.0.tgz#62f1b7821e9d9ced1b3f512c7ea731825765d1cc" - integrity sha512-kLrdPDJE1ckPo94kmPPf9Hfd0DU0Jw6oKYrhe+pwSC0iTUInmTa+w6fw8sGgcfkFJGNdWOUeOaDM4quW4a7OkA== +"@eslint/config-helpers@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.2.0.tgz#12dc8d65c31c4b6c3ebf0758db6601eb7692ce59" + integrity sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ== "@eslint/core@^0.12.0": version "0.12.0" @@ -1195,10 +1195,10 @@ dependencies: "@types/json-schema" "^7.0.15" -"@eslint/eslintrc@^3.3.0": - version "3.3.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.0.tgz#96a558f45842989cca7ea1ecd785ad5491193846" - integrity sha512-yaVPAiNAalnCZedKLdR21GOGILMLKPyqSLWaAjQFvYA2i/ciDi8ArYVr69Anohb6cH2Ukhqti4aFnYyPm8wdwQ== +"@eslint/eslintrc@^3.3.1": + version "3.3.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964" + integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1210,10 +1210,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.22.0": - version "9.22.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.22.0.tgz#4ff53649ded7cbce90b444b494c234137fa1aa3d" - integrity sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ== +"@eslint/js@9.23.0": + version "9.23.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.23.0.tgz#c09ded4f3dc63b40b933bcaeb853fceddb64da30" + integrity sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw== "@eslint/object-schema@^2.1.6": version "2.1.6" @@ -3927,18 +3927,18 @@ eslint-visitor-keys@^4.2.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== -eslint@9.22.0: - version "9.22.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.22.0.tgz#0760043809fbf836f582140345233984d613c552" - integrity sha512-9V/QURhsRN40xuHXWjV64yvrzMjcz7ZyNoF2jJFmy9j/SLk0u1OLSZgXi28MrXjymnjEGSR80WCdab3RGMDveQ== +eslint@9.23.0: + version "9.23.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.23.0.tgz#b88f3ab6dc83bcb927fdb54407c69ffe5f2441a6" + integrity sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.12.1" "@eslint/config-array" "^0.19.2" - "@eslint/config-helpers" "^0.1.0" + "@eslint/config-helpers" "^0.2.0" "@eslint/core" "^0.12.0" - "@eslint/eslintrc" "^3.3.0" - "@eslint/js" "9.22.0" + "@eslint/eslintrc" "^3.3.1" + "@eslint/js" "9.23.0" "@eslint/plugin-kit" "^0.2.7" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" From d49a4196c77c59fe6005ca763188808ce92f50dd Mon Sep 17 00:00:00 2001 From: Phantasm Date: Tue, 25 Mar 2025 22:24:58 +0100 Subject: [PATCH 04/11] Use pinia oauth store in mfa forms Taken from 216d318bb522d02c092b3a4be26cfa31f7e918a3 --- changelog.d/pinia-oauth-mfa.skip | 0 src/components/mfa_form/recovery_form.js | 6 ++++-- src/components/mfa_form/totp_form.js | 6 ++++-- 3 files changed, 8 insertions(+), 4 deletions(-) create mode 100644 changelog.d/pinia-oauth-mfa.skip diff --git a/changelog.d/pinia-oauth-mfa.skip b/changelog.d/pinia-oauth-mfa.skip new file mode 100644 index 000000000..e69de29bb diff --git a/src/components/mfa_form/recovery_form.js b/src/components/mfa_form/recovery_form.js index 01a62a503..66778b4f6 100644 --- a/src/components/mfa_form/recovery_form.js +++ b/src/components/mfa_form/recovery_form.js @@ -1,5 +1,7 @@ import mfaApi from '../../services/new_api/mfa.js' import { mapState, mapGetters, mapActions, mapMutations } from 'vuex' +import { mapStores } from 'pinia' +import { useOAuthStore } from 'src/stores/oauth.js' import { library } from '@fortawesome/fontawesome-svg-core' import { faTimes @@ -18,9 +20,9 @@ export default { ...mapGetters({ authSettings: 'authFlow/settings' }), + ...mapStores(useOAuthStore), ...mapState({ instance: 'instance', - oauth: 'oauth' }) }, methods: { @@ -28,7 +30,7 @@ export default { ...mapActions({ login: 'authFlow/login' }), clearError () { this.error = false }, submit () { - const { clientId, clientSecret } = this.oauth + const { clientId, clientSecret } = this.oauthStore const data = { clientId, diff --git a/src/components/mfa_form/totp_form.js b/src/components/mfa_form/totp_form.js index 6ee823ed3..e347e017a 100644 --- a/src/components/mfa_form/totp_form.js +++ b/src/components/mfa_form/totp_form.js @@ -1,5 +1,7 @@ import mfaApi from '../../services/new_api/mfa.js' import { mapState, mapGetters, mapActions, mapMutations } from 'vuex' +import { mapStores } from 'pinia' +import { useOAuthStore } from 'src/stores/oauth.js' import { library } from '@fortawesome/fontawesome-svg-core' import { faTimes @@ -18,9 +20,9 @@ export default { ...mapGetters({ authSettings: 'authFlow/settings' }), + ...mapStores(useOAuthStore), ...mapState({ instance: 'instance', - oauth: 'oauth' }) }, methods: { @@ -28,7 +30,7 @@ export default { ...mapActions({ login: 'authFlow/login' }), clearError () { this.error = false }, submit () { - const { clientId, clientSecret } = this.oauth + const { clientId, clientSecret } = this.oauthStore const data = { clientId, From dcc2acfe5d0709a50622575b228bd8db5ef40c2e Mon Sep 17 00:00:00 2001 From: Phantasm Date: Tue, 25 Mar 2025 23:01:50 +0100 Subject: [PATCH 05/11] Use correct CSS class in MFA forms, focus code input on error --- src/components/mfa_form/recovery_form.js | 8 ++++++++ src/components/mfa_form/recovery_form.vue | 4 +++- src/components/mfa_form/totp_form.js | 8 ++++++++ src/components/mfa_form/totp_form.vue | 4 +++- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/components/mfa_form/recovery_form.js b/src/components/mfa_form/recovery_form.js index 66778b4f6..2d0f4fdff 100644 --- a/src/components/mfa_form/recovery_form.js +++ b/src/components/mfa_form/recovery_form.js @@ -29,6 +29,13 @@ export default { ...mapMutations('authFlow', ['requireTOTP', 'abortMFA']), ...mapActions({ login: 'authFlow/login' }), clearError () { this.error = false }, + + focusOnCodeInput () { + const codeInput = this.$refs.codeInput + codeInput.focus() + codeInput.setSelectionRange(0, codeInput.value.length) + }, + submit () { const { clientId, clientSecret } = this.oauthStore @@ -44,6 +51,7 @@ export default { if (result.error) { this.error = result.error this.code = null + this.focusOnCodeInput() return } diff --git a/src/components/mfa_form/recovery_form.vue b/src/components/mfa_form/recovery_form.vue index f8c3e6a04..02f27ddaf 100644 --- a/src/components/mfa_form/recovery_form.vue +++ b/src/components/mfa_form/recovery_form.vue @@ -1,5 +1,5 @@ + diff --git a/src/components/mfa_form/totp_form.js b/src/components/mfa_form/totp_form.js index e347e017a..857d055ff 100644 --- a/src/components/mfa_form/totp_form.js +++ b/src/components/mfa_form/totp_form.js @@ -29,6 +29,13 @@ export default { ...mapMutations('authFlow', ['requireRecovery', 'abortMFA']), ...mapActions({ login: 'authFlow/login' }), clearError () { this.error = false }, + + focusOnCodeInput () { + const codeInput = this.$refs.codeInput + codeInput.focus() + codeInput.setSelectionRange(0, codeInput.value.length) + }, + submit () { const { clientId, clientSecret } = this.oauthStore @@ -44,6 +51,7 @@ export default { if (result.error) { this.error = result.error this.code = null + this.focusOnCodeInput() return } diff --git a/src/components/mfa_form/totp_form.vue b/src/components/mfa_form/totp_form.vue index 26fc1e804..b057f0413 100644 --- a/src/components/mfa_form/totp_form.vue +++ b/src/components/mfa_form/totp_form.vue @@ -1,5 +1,5 @@ + From aa51c42b7f10fc4d2cc80ce9ffaf0cca34c8117f Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Wed, 26 Mar 2025 09:06:17 +0000 Subject: [PATCH 06/11] Update babel monorepo to v7.27.0 --- package.json | 4 ++-- yarn.lock | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index d1b8e07f0..ebcc5d5cb 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "lint-fix": "eslint --fix src test/unit/specs test/e2e/specs" }, "dependencies": { - "@babel/runtime": "7.26.10", + "@babel/runtime": "7.27.0", "@chenfengyuan/vue-qrcode": "2.0.0", "@fortawesome/fontawesome-svg-core": "6.7.2", "@fortawesome/free-regular-svg-icons": "6.7.2", @@ -54,7 +54,7 @@ }, "devDependencies": { "@babel/core": "7.26.10", - "@babel/eslint-parser": "7.26.10", + "@babel/eslint-parser": "7.27.0", "@babel/plugin-transform-runtime": "7.26.10", "@babel/preset-env": "7.26.9", "@babel/register": "7.25.9", diff --git a/yarn.lock b/yarn.lock index aeb777ca7..7bb0cf75d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -68,10 +68,10 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/eslint-parser@7.26.10": - version "7.26.10" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.26.10.tgz#4423cb3f84c26978439feabfe23c5aa929400737" - integrity sha512-QsfQZr4AiLpKqn7fz+j7SN+f43z2DZCgGyYbNJ2vJOqKfG4E6MZer1+jqGZqKJaxq/gdO2DC/nUu45+pOL5p2Q== +"@babel/eslint-parser@7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.27.0.tgz#d55e52a5ef3b164139a799dc522c338faba3507c" + integrity sha512-dtnzmSjXfgL/HDgMcmsLSzyGbEosi4DrGWoCNfuI+W4IkVJw6izpTe7LtOdwAXnkDqw5yweboYCTkM2rQizCng== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" @@ -865,10 +865,10 @@ pirates "^4.0.6" source-map-support "^0.5.16" -"@babel/runtime@7.26.10": - version "7.26.10" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.10.tgz#a07b4d8fa27af131a633d7b3524db803eb4764c2" - integrity sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw== +"@babel/runtime@7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.0.tgz#fbee7cf97c709518ecc1f590984481d5460d4762" + integrity sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw== dependencies: regenerator-runtime "^0.14.0" From 11adf48f4a4c676a4cb73b3f315ae18f1f231cea Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 26 Mar 2025 13:55:25 +0200 Subject: [PATCH 07/11] fix menu-item magenta --- src/services/theme_data/theme3_slot_functions.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/services/theme_data/theme3_slot_functions.js b/src/services/theme_data/theme3_slot_functions.js index d1441aebb..e7293a03c 100644 --- a/src/services/theme_data/theme3_slot_functions.js +++ b/src/services/theme_data/theme3_slot_functions.js @@ -112,7 +112,10 @@ export const colorFunctions = { const color = convert(findColor(colorArg, { dynamicVars, staticVars })).rgb const amount = Number(amountArg) - const effectiveBackground = dynamicVars.lowerLevelBackground + const effectiveBackground = dynamicVars.lowerLevelBackground ?? + dynamicVars.background ?? + dynamicVars.inheritedBackground ?? + staticVars[colorArg] const isLightOnDark = relativeLuminance(convert(effectiveBackground).rgb) < 0.5 const mod = isLightOnDark ? 1 : -1 return brightness(amount * mod, color).rgb From 00eabd24474538f7cdbffa1ec38740f1e7ab23b9 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 26 Mar 2025 16:20:42 +0200 Subject: [PATCH 08/11] fix breezy theme --- public/static/styles/Breezy DX.iss | 14 +++++++------- src/services/theme_data/theme_data_3.service.js | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/public/static/styles/Breezy DX.iss b/public/static/styles/Breezy DX.iss index fcaa7a8eb..e6ef9dfec 100644 --- a/public/static/styles/Breezy DX.iss +++ b/public/static/styles/Breezy DX.iss @@ -25,7 +25,7 @@ accent: #1CA4F3; cBlue: #1CA4F3; cRed: #f41a51; - cGreen: #1af46e; + cGreen: #0b6a30; cOrange: #f4af1a; border: #d8e6f9; link: #1CA4F3; @@ -39,7 +39,7 @@ accent: #1CA4F3; cRed: #f41a51; cBlue: #1CA4F3; - cGreen: #1af46e; + cGreen: #0b6a30; cOrange: #f4af1a; } @@ -47,10 +47,10 @@ Root { --badgeNotification: color | --cRed; --buttonDefaultHoverGlow: shadow | inset 0 0 0 1 --accent / 1; --buttonDefaultFocusGlow: shadow | inset 0 0 0 1 --accent / 1; - --buttonDefaultShadow: shadow | inset 0 0 0 1 --parent--text / 0.35, 0 5 5 -5 #000000 / 0.35; + --buttonDefaultShadow: shadow | inset 0 0 0 1 --text / 0.35, 0 5 5 -5 #000000 / 0.35; --buttonDefaultBevel: shadow | inset 0 14 14 -14 #FFFFFF / 0.1; --buttonPressedBevel: shadow | inset 0 -20 20 -20 #000000 / 0.05; - --defaultInputBevel: shadow | inset 0 0 0 1 --parent--text / 0.35; + --defaultInputBevel: shadow | inset 0 0 0 1 --text / 0.35; --defaultInputHoverGlow: shadow | 0 0 0 1 --accent / 1; --defaultInputFocusGlow: shadow | 0 0 0 1 --link / 1; } @@ -80,12 +80,12 @@ Button:toggled:hover { } Button { - background: --parent; + background: --bg; } Input { shadow: --defaultInputBevel; - background: --parent; + background: $mod(--bg -10); } PanelHeader { @@ -97,5 +97,5 @@ Tab:hover { } Tab { - background: --parent; + background: --bg; } diff --git a/src/services/theme_data/theme_data_3.service.js b/src/services/theme_data/theme_data_3.service.js index 320196493..810aec489 100644 --- a/src/services/theme_data/theme_data_3.service.js +++ b/src/services/theme_data/theme_data_3.service.js @@ -109,7 +109,7 @@ export const findColor = (color, { dynamicVars, staticVars }) => { try { targetColor = process(color, colorFunctions, { findColor }, { dynamicVars, staticVars }) } catch (e) { - console.error('Failure executing color function', e) + console.error('Failure executing color function', e ,'\n Function: ' + color) targetColor = '#FF00FF' } } From 926f45df8527f115540966e8cbeb966c688dc1b5 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 26 Mar 2025 16:21:41 +0200 Subject: [PATCH 09/11] add that teeny tiny nudge to buttons when they are pressed --- src/App.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/App.scss b/src/App.scss index 34cb590a2..521be05c6 100644 --- a/src/App.scss +++ b/src/App.scss @@ -388,6 +388,10 @@ nav { &:disabled { cursor: not-allowed; } + + &:active { + transform: translate(1px, 1px); + } } .menu-item { From a2d9c4db6aa0bb62bf5a18163e5bd6472c26a220 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 26 Mar 2025 17:37:41 +0200 Subject: [PATCH 10/11] simplify theme3 variable code and fix some issues --- .../theme_data/theme3_slot_functions.js | 5 +--- .../theme_data/theme_data_3.service.js | 25 ++++++++++--------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/services/theme_data/theme3_slot_functions.js b/src/services/theme_data/theme3_slot_functions.js index e7293a03c..137f19bf0 100644 --- a/src/services/theme_data/theme3_slot_functions.js +++ b/src/services/theme_data/theme3_slot_functions.js @@ -112,10 +112,7 @@ export const colorFunctions = { const color = convert(findColor(colorArg, { dynamicVars, staticVars })).rgb const amount = Number(amountArg) - const effectiveBackground = dynamicVars.lowerLevelBackground ?? - dynamicVars.background ?? - dynamicVars.inheritedBackground ?? - staticVars[colorArg] + const effectiveBackground = dynamicVars.lowerLevelBackground ?? color const isLightOnDark = relativeLuminance(convert(effectiveBackground).rgb) < 0.5 const mod = isLightOnDark ? 1 : -1 return brightness(amount * mod, color).rgb diff --git a/src/services/theme_data/theme_data_3.service.js b/src/services/theme_data/theme_data_3.service.js index 810aec489..b85d917de 100644 --- a/src/services/theme_data/theme_data_3.service.js +++ b/src/services/theme_data/theme_data_3.service.js @@ -78,23 +78,24 @@ export const findColor = (color, { dynamicVars, staticVars }) => { targetColor = { r, g, b } } else if (variableSlot.startsWith('parent')) { if (variableSlot === 'parent') { - const { r, g, b } = dynamicVars.lowerLevelBackground + const { r, g, b } = dynamicVars.lowerLevelBackground ?? {} targetColor = { r, g, b } } else { const virtualSlot = variableSlot.replace(/^parent/, '') targetColor = convert(dynamicVars.lowerLevelVirtualDirectivesRaw[virtualSlot]).rgb } } else { - switch (variableSlot) { - case 'inheritedBackground': - targetColor = convert(dynamicVars.inheritedBackground).rgb - break - case 'background': - targetColor = convert(dynamicVars.background).rgb - break - default: - targetColor = convert(staticVars[variableSlot]).rgb + const staticVar = staticVars[variableSlot] + const dynamicVar = dynamicVars[variableSlot] + if (!staticVar && !dynamicVar) { + console.warn(dynamicVars, variableSlot, dynamicVars[variableSlot]) + console.warn(`Couldn't find variable "${variableSlot}", falling back to magenta. Variables are: +Static: +${JSON.stringify(staticVars, null, 2)} +Dynamic: +${JSON.stringify(dynamicVars, null, 2)}`) } + targetColor = convert(staticVar ?? dynamicVar ?? '#FF00FF').rgb } if (modifier) { @@ -120,7 +121,7 @@ export const findColor = (color, { dynamicVars, staticVars }) => { Static: ${JSON.stringify(staticVars, null, 2)} Dynamic: -${JSON.stringify(dynamicVars, null, 2)}`, e) +${JSON.stringify(dynamicVars, null, 2)}\nError: ${e}`) } } @@ -516,7 +517,7 @@ export const init = ({ .filter(c => virtualComponents.has(c) && !nonEditableComponents.has(c)) } else if (liteMode) { validInnerComponents = (component.validInnerComponentsLite || component.validInnerComponents || []) - } else if (component.name === 'Root' || component.states != null) { + } else if (component.name === 'Root' || component.states != null || component.background?.includes('--parent')) { validInnerComponents = component.validInnerComponents || [] } else { validInnerComponents = component From 7e0bc054d041f3e20b2cff6a3e6e68ca8d72ce88 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 26 Mar 2025 17:37:59 +0200 Subject: [PATCH 11/11] update BreezyDX --- public/static/styles/Breezy DX.iss | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/public/static/styles/Breezy DX.iss b/public/static/styles/Breezy DX.iss index e6ef9dfec..69cc3befe 100644 --- a/public/static/styles/Breezy DX.iss +++ b/public/static/styles/Breezy DX.iss @@ -55,32 +55,33 @@ Root { --defaultInputFocusGlow: shadow | 0 0 0 1 --link / 1; } +Button { + background: --parent; +} + Button:disabled { shadow: --buttonDefaultBevel, --buttonDefaultShadow } Button:hover { + background: --inheritedBackground; shadow: --buttonDefaultHoverGlow, --buttonDefaultBevel, --buttonDefaultShadow } Button:toggled { - background: $blend(--bg 0.3 --accent) + background: $blend(--inheritedBackground 0.3 --accent) } Button:pressed { - background: $blend(--bg 0.8 --accent) + background: $blend(--inheritedBackground 0.8 --accent) } Button:pressed:toggled { - background: $blend(--bg 0.2 --accent) + background: $blend(--inheritedBackground 0.2 --accent) } Button:toggled:hover { - background: $blend(--bg 0.3 --accent) -} - -Button { - background: --bg; + background: $blend(--inheritedBackground 0.3 --accent) } Input {