diff --git a/changelog.d/batch2.skip b/changelog.d/batch2.skip new file mode 100644 index 000000000..e69de29bb diff --git a/changelog.d/muted_user_en_translation.skip b/changelog.d/muted_user_en_translation.skip new file mode 100644 index 000000000..1d39e49d1 --- /dev/null +++ b/changelog.d/muted_user_en_translation.skip @@ -0,0 +1 @@ +Added missing EN translation key for status.muted_user diff --git a/changelog.d/vuex-devtools.skip b/changelog.d/vuex-devtools.skip new file mode 100644 index 000000000..e69de29bb diff --git a/package.json b/package.json index b3c44aa2a..2587202c5 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "lint-fix": "eslint --fix --ext .js,.vue src test/unit/specs test/e2e/specs" }, "dependencies": { - "@babel/runtime": "7.21.5", + "@babel/runtime": "7.26.0", "@chenfengyuan/vue-qrcode": "2.0.0", "@fortawesome/fontawesome-svg-core": "6.4.0", "@fortawesome/free-regular-svg-icons": "6.4.0", @@ -24,7 +24,7 @@ "@fortawesome/vue-fontawesome": "3.0.3", "@kazvmoe-infra/pinch-zoom-element": "1.2.0", "@kazvmoe-infra/unicode-emoji-json": "0.4.0", - "@ruffle-rs/ruffle": "0.1.0-nightly.2024.8.21", + "@ruffle-rs/ruffle": "0.1.0-nightly.2025.1.13", "@vuelidate/core": "2.0.3", "@vuelidate/validators": "2.0.4", "body-scroll-lock": "3.1.5", @@ -37,11 +37,11 @@ "localforage": "1.10.0", "pako": "^2.1.0", "parse-link-header": "2.0.0", - "phoenix": "1.7.7", - "punycode.js": "2.3.0", - "qrcode": "1.5.3", + "phoenix": "1.7.18", + "punycode.js": "2.3.1", + "qrcode": "1.5.4", "querystring-es3": "0.2.1", - "url": "0.11.0", + "url": "0.11.4", "utf8": "3.0.0", "vue": "3.2.45", "vue-i18n": "10", @@ -51,18 +51,18 @@ "vuex": "4.1.0" }, "devDependencies": { - "@babel/core": "7.21.8", - "@babel/eslint-parser": "7.21.8", - "@babel/plugin-transform-runtime": "7.21.4", - "@babel/preset-env": "7.21.5", - "@babel/register": "7.21.0", + "@babel/core": "7.26.0", + "@babel/eslint-parser": "7.26.5", + "@babel/plugin-transform-runtime": "7.25.9", + "@babel/preset-env": "7.26.0", + "@babel/register": "7.25.9", "@intlify/vue-i18n-loader": "5.0.1", "@ungap/event-target": "0.2.4", "@vue/babel-helper-vue-jsx-merge-props": "1.4.0", - "@vue/babel-plugin-jsx": "1.2.2", + "@vue/babel-plugin-jsx": "1.2.5", "@vue/compiler-sfc": "3.2.45", "@vue/test-utils": "2.2.8", - "autoprefixer": "10.4.19", + "autoprefixer": "10.4.20", "babel-loader": "9.1.3", "babel-plugin-lodash": "3.3.4", "chai": "4.3.7", @@ -70,7 +70,7 @@ "chromedriver": "108.0.0", "connect-history-api-fallback": "2.0.0", "copy-webpack-plugin": "11.0.0", - "cross-spawn": "7.0.3", + "cross-spawn": "7.0.6", "css-loader": "6.10.0", "css-minimizer-webpack-plugin": "4.2.2", "custom-event-polyfill": "1.0.7", @@ -83,14 +83,14 @@ "eslint-plugin-vue": "9.9.0", "eslint-webpack-plugin": "3.2.0", "eventsource-polyfill": "0.9.6", - "express": "4.18.2", - "function-bind": "1.1.1", + "express": "4.21.2", + "function-bind": "1.1.2", "html-webpack-plugin": "5.5.1", - "http-proxy-middleware": "2.0.6", + "http-proxy-middleware": "2.0.7", "iso-639-1": "2.1.15", "json-loader": "0.5.7", "karma": "6.4.4", - "karma-coverage": "2.2.0", + "karma-coverage": "2.2.1", "karma-firefox-launcher": "2.1.3", "karma-mocha": "2.0.1", "karma-mocha-reporter": "2.2.5", @@ -110,7 +110,7 @@ "postcss-scss": "^4.0.6", "sass": "1.60.0", "sass-loader": "13.2.2", - "selenium-server": "2.53.1", + "selenium-server": "3.141.59", "semver": "7.3.8", "serviceworker-webpack5-plugin": "2.0.0", "shelljs": "0.8.5", diff --git a/src/components/button.style.js b/src/components/button.style.js index 747cfd5eb..410d2f7e0 100644 --- a/src/components/button.style.js +++ b/src/components/button.style.js @@ -35,11 +35,11 @@ export default { { component: 'Root', directives: { - '--buttonDefaultHoverGlow': 'shadow | 0 0 4 --text / 0.5', - '--buttonDefaultFocusGlow': 'shadow | 0 0 4 4 --link / 0.5', + '--buttonDefaultHoverGlow': 'shadow | 0 0 1 2 --text / 0.4', + '--buttonDefaultFocusGlow': 'shadow | 0 0 1 2 --link / 0.5', '--buttonDefaultShadow': 'shadow | 0 0 2 #000000', - '--buttonDefaultBevel': 'shadow | $borderSide(#FFFFFF top 0.2 2), $borderSide(#000000 bottom 0.2 2)', - '--buttonPressedBevel': 'shadow | $borderSide(#FFFFFF bottom 0.2 2), $borderSide(#000000 top 0.2 2)' + '--buttonDefaultBevel': 'shadow | $borderSide(#FFFFFF top 0.2 1), $borderSide(#000000 bottom 0.2 1)', + '--buttonPressedBevel': 'shadow | inset 0 0 4 #000000, $borderSide(#FFFFFF bottom 0.2 1), $borderSide(#000000 top 0.2 1)' } }, { @@ -78,28 +78,28 @@ export default { { state: ['toggled'], directives: { - background: '--inheritedBackground,-14.2', + background: '--accent,-24.2', shadow: ['--buttonDefaultShadow', '--buttonPressedBevel'] } }, { state: ['toggled', 'hover'], directives: { - background: '--inheritedBackground,-14.2', + background: '--accent,-24.2', shadow: ['--buttonDefaultHoverGlow', '--buttonPressedBevel'] } }, { state: ['toggled', 'disabled'], directives: { - background: '$blend(--inheritedBackground 0.25 --parent)', + background: '$blend(--accent 0.25 --parent)', shadow: ['--buttonPressedBevel'] } }, { state: ['disabled'], directives: { - background: '$blend(--inheritedBackground 0.25 --parent)', + background: '$blend(--accent 0.25 --parent)', shadow: ['--buttonDefaultBevel'] } }, diff --git a/src/components/chat_message/chat_message.js b/src/components/chat_message/chat_message.js index ebe09814c..530a1ec70 100644 --- a/src/components/chat_message/chat_message.js +++ b/src/components/chat_message/chat_message.js @@ -66,7 +66,6 @@ const ChatMessage = { return this.message.attachments.length > 0 }, ...mapState({ - betterShadow: state => state.interface.browserSupport.cssFilter, currentUser: state => state.users.currentUser, restrictedNicknames: state => state.instance.restrictedNicknames }), diff --git a/src/components/chat_message/chat_message.vue b/src/components/chat_message/chat_message.vue index 9ed30bc59..0efdf7977 100644 --- a/src/components/chat_message/chat_message.vue +++ b/src/components/chat_message/chat_message.vue @@ -20,7 +20,6 @@ > diff --git a/src/components/dialog_modal/dialog_modal.js b/src/components/dialog_modal/dialog_modal.js index f14e3fe9a..b39851fe7 100644 --- a/src/components/dialog_modal/dialog_modal.js +++ b/src/components/dialog_modal/dialog_modal.js @@ -8,6 +8,11 @@ const DialogModal = { default: () => {}, type: Function } + }, + computed: { + mobileCenter () { + return this.$store.getters.mergedConfig.modalMobileCenter + } } } diff --git a/src/components/dialog_modal/dialog_modal.vue b/src/components/dialog_modal/dialog_modal.vue index 096c8ac8c..1eb88efb5 100644 --- a/src/components/dialog_modal/dialog_modal.vue +++ b/src/components/dialog_modal/dialog_modal.vue @@ -1,7 +1,7 @@ @@ -134,6 +138,15 @@ min-width: 20em; max-width: 20em; } + + .font-input { + margin-left: 2em; + margin-top: 0.5em; + } + + .font-checkbox { + margin-left: 1em; + } } .invalid-tooltip { diff --git a/src/components/input.style.js b/src/components/input.style.js index c60ac1e4e..30715ec1d 100644 --- a/src/components/input.style.js +++ b/src/components/input.style.js @@ -18,7 +18,7 @@ export default { { component: 'Root', directives: { - '--defaultInputBevel': 'shadow | $borderSide(#FFFFFF bottom 0.2), $borderSide(#000000 top 0.2)', + '--defaultInputBevel': 'shadow | $borderSide(#FFFFFF bottom 0.2), $borderSide(#000000 top 0.2), inset 0 0 2 #000000 / 0.15', '--defaultInputHoverGlow': 'shadow | 0 0 4 --text / 0.5', '--defaultInputFocusGlow': 'shadow | 0 0 4 4 --link / 0.5' } diff --git a/src/components/notification/notification.js b/src/components/notification/notification.js index 0e938c422..043be1b1a 100644 --- a/src/components/notification/notification.js +++ b/src/components/notification/notification.js @@ -43,7 +43,6 @@ const Notification = { data () { return { statusExpanded: false, - betterShadow: this.$store.state.interface.browserSupport.cssFilter, unmuted: false, showingApproveConfirmDialog: false, showingDenyConfirmDialog: false diff --git a/src/components/notification/notification.vue b/src/components/notification/notification.vue index 044d43dbc..0930e0990 100644 --- a/src/components/notification/notification.vue +++ b/src/components/notification/notification.vue @@ -48,7 +48,6 @@ diff --git a/src/components/panel.style.js b/src/components/panel.style.js index 1bba4766d..a017a52bc 100644 --- a/src/components/panel.style.js +++ b/src/components/panel.style.js @@ -38,12 +38,20 @@ export default { roundness: 3, blur: '5px', shadow: [{ - x: 1, - y: 1, - blur: 4, + x: 0, + y: 0, + blur: 3, spread: 0, color: '#000000', - alpha: 0.6 + alpha: 0.5 + }, + { + x: 0, + y: 4, + blur: 6, + spread: 3, + color: '#000000', + alpha: 0.3 }] } } diff --git a/src/components/panel_header.style.js b/src/components/panel_header.style.js index 32464bc50..226ff9e16 100644 --- a/src/components/panel_header.style.js +++ b/src/components/panel_header.style.js @@ -17,7 +17,23 @@ export default { directives: { backgroundNoCssColor: 'yes', background: '--fg', - shadow: [] + shadow: [{ + x: 0, + y: 1, + blur: 3, + spread: 0, + color: '#000000', + alpha: 0.4 + }, + { + x: 0, + y: 1, + blur: 0, + spread: 0, + color: '#ffffff', + alpha: 0.2, + inset: true + }] } } ] diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index c31b86be0..d5be3fe89 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -101,6 +101,8 @@ const PostStatusForm = { 'disableSubmit', 'disablePreview', 'disableDraft', + 'hideDraft', + 'closeable', 'placeholder', 'maxHeight', 'postHandler', @@ -115,6 +117,7 @@ const PostStatusForm = { ], emits: [ 'posted', + 'draft-done', 'resize', 'mediaplay', 'mediapause', @@ -232,6 +235,9 @@ const PostStatusForm = { showAllScopes () { return !this.mergedConfig.minimalScopesMode }, + hideExtraActions () { + return this.disableDraft || this.hideDraft + }, emojiUserSuggestor () { return suggestor({ emoji: [ @@ -353,10 +359,12 @@ const PostStatusForm = { } }, safeToSaveDraft () { - return this.newStatus.status || + return ( + this.newStatus.status || this.newStatus.spoilerText || this.newStatus.files?.length || this.newStatus.hasPoll + ) && this.saveable }, ...mapGetters(['mergedConfig']), ...mapState({ @@ -760,12 +768,20 @@ const PostStatusForm = { this.newStatus.id = id } this.saveable = false + if (!this.shouldAutoSaveDraft) { + this.clearStatus() + this.$emit('draft-done') + } }) } else if (this.newStatus.id) { // There is a draft, but there is nothing in it, clear it return this.abandonDraft() .then(() => { this.saveable = false + if (!this.shouldAutoSaveDraft) { + this.clearStatus() + this.$emit('draft-done') + } }) } } @@ -773,7 +789,7 @@ const PostStatusForm = { }, maybeAutoSaveDraft () { if (this.shouldAutoSaveDraft) { - this.saveDraft() + this.saveDraft(false) } }, abandonDraft () { diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue index 0f9e609fc..55e853d73 100644 --- a/src/components/post_status_form/post_status_form.vue +++ b/src/components/post_status_form/post_status_form.vue @@ -316,13 +316,12 @@ diff --git a/src/components/post_status_modal/post_status_modal.vue b/src/components/post_status_modal/post_status_modal.vue index 2bdf41d55..414dd5bd1 100644 --- a/src/components/post_status_modal/post_status_modal.vue +++ b/src/components/post_status_modal/post_status_modal.vue @@ -14,7 +14,9 @@ diff --git a/src/components/settings_modal/tabs/appearance_tab.vue b/src/components/settings_modal/tabs/appearance_tab.vue index bda0ab144..4a6de3286 100644 --- a/src/components/settings_modal/tabs/appearance_tab.vue +++ b/src/components/settings_modal/tabs/appearance_tab.vue @@ -57,7 +57,7 @@ :key="style.key" :data-theme-key="style.key" class="button-default theme-preview" - :class="{ toggled: isStyleActive(style.key), disabled: switchInProgress }" + :class="{ toggled: isThemeActive(style.key), disabled: switchInProgress }" @click="style.version === 'v2' ? setTheme(style.key) : setStyle(style.key)" :disabled="switchInProgress" > @@ -206,51 +206,6 @@ -
  • -

    {{ $t('settings.style.interface_font_user_override') }}

    -
      -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    • - -
    • -
    -
  • +

    {{ $t('settings.style.interface_font_user_override') }}

    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • {{ $t('settings.columns') }}

  • {{ $t('settings.visual_tweaks') }}

      +
    • + + {{ $t('settings.mobile_center_dialog') }} + +