From b9161ef6971b1392bb65b1de77ea64aab7a61ac6 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Thu, 12 Jun 2025 20:04:39 +0300 Subject: [PATCH 001/491] some basic expiration modal. "don't as again" doesn't work yet --- src/App.scss | 5 --- src/boot/after_store.js | 2 + .../account_actions/account_actions.js | 21 +++++----- .../account_actions/account_actions.vue | 9 ++++- src/components/confirm_modal/mute_confirm.js | 33 ++------------- src/components/confirm_modal/mute_confirm.vue | 30 -------------- .../settings_modal/tabs/filtering_tab.js | 2 +- .../action_button_container.js | 4 +- .../action_button_container.vue | 7 ++-- src/components/user_card/user_card.js | 32 ++++++++------- src/components/user_card/user_card.scss | 5 +++ src/components/user_card/user_card.vue | 12 +++--- src/i18n/en.json | 4 ++ src/modules/default_config_state.js | 8 ++++ src/modules/instance.js | 1 + src/modules/users.js | 40 +++++++++++-------- src/services/api/api.service.js | 26 +++++++++--- 17 files changed, 117 insertions(+), 124 deletions(-) diff --git a/src/App.scss b/src/App.scss index 704d51cea..24afac8ab 100644 --- a/src/App.scss +++ b/src/App.scss @@ -675,11 +675,6 @@ option { } } -.btn-block { - display: block; - width: 100%; -} - .btn-group { position: relative; display: inline-flex; diff --git a/src/boot/after_store.js b/src/boot/after_store.js index 1b133a089..28ff1e530 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -247,6 +247,7 @@ const getNodeInfo = async ({ store }) => { const data = await res.json() const metadata = data.metadata const features = metadata.features + console.log(features) store.dispatch('setInstanceOption', { name: 'name', value: metadata.nodeName }) store.dispatch('setInstanceOption', { name: 'registrationOpen', value: data.openRegistrations }) store.dispatch('setInstanceOption', { name: 'mediaProxyAvailable', value: features.includes('media_proxy') }) @@ -262,6 +263,7 @@ const getNodeInfo = async ({ store }) => { store.dispatch('setInstanceOption', { name: 'mailerEnabled', value: metadata.mailerEnabled }) store.dispatch('setInstanceOption', { name: 'quotingAvailable', value: features.includes('quote_posting') }) store.dispatch('setInstanceOption', { name: 'groupActorAvailable', value: features.includes('pleroma:group_actors') }) + store.dispatch('setInstanceOption', { name: 'blockExpiration', value: features.includes('pleroma:block_expiration') }) const uploadLimits = metadata.uploadLimits store.dispatch('setInstanceOption', { name: 'uploadlimit', value: parseInt(uploadLimits.general) }) diff --git a/src/components/account_actions/account_actions.js b/src/components/account_actions/account_actions.js index 9a63f57eb..f8ad0e11b 100644 --- a/src/components/account_actions/account_actions.js +++ b/src/components/account_actions/account_actions.js @@ -3,6 +3,7 @@ import ProgressButton from '../progress_button/progress_button.vue' import Popover from '../popover/popover.vue' import UserListMenu from 'src/components/user_list_menu/user_list_menu.vue' import ConfirmModal from '../confirm_modal/confirm_modal.vue' +import UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue' import { library } from '@fortawesome/fontawesome-svg-core' import { faEllipsisV @@ -27,15 +28,10 @@ const AccountActions = { ProgressButton, Popover, UserListMenu, - ConfirmModal + ConfirmModal, + UserTimedFilterModal }, methods: { - showConfirmBlock () { - this.showingConfirmBlock = true - }, - hideConfirmBlock () { - this.showingConfirmBlock = false - }, showConfirmRemoveUserFromFollowers () { this.showingConfirmRemoveFollower = true }, @@ -49,10 +45,14 @@ const AccountActions = { this.$store.dispatch('hideReblogs', this.user.id) }, blockUser () { - if (!this.shouldConfirmBlock) { - this.doBlockUser() + if (this.$refs.timedBlockDialog) { + this.$refs.timedBlockDialog.optionallyPrompt() } else { - this.showConfirmBlock() + if (!this.shouldConfirmBlock) { + this.doBlockUser() + } else { + this.showingConfirmBlock = true + } } }, doBlockUser () { @@ -91,6 +91,7 @@ const AccountActions = { return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers }, ...mapState({ + blockExpirationSupported: state => state.instance.blockExpiration, pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable }) } diff --git a/src/components/account_actions/account_actions.vue b/src/components/account_actions/account_actions.vue index fd4837ee4..f3cca45d0 100644 --- a/src/components/account_actions/account_actions.vue +++ b/src/components/account_actions/account_actions.vue @@ -96,7 +96,8 @@ + diff --git a/src/components/confirm_modal/mute_confirm.js b/src/components/confirm_modal/mute_confirm.js index 1bef9f620..a279dc716 100644 --- a/src/components/confirm_modal/mute_confirm.js +++ b/src/components/confirm_modal/mute_confirm.js @@ -1,4 +1,3 @@ -import { unitToSeconds } from 'src/services/date_utils/date_utils.js' import { mapGetters } from 'vuex' import ConfirmModal from './confirm_modal.vue' @@ -8,21 +7,13 @@ export default { props: ['type', 'user', 'status'], emits: ['hide', 'show', 'muted'], data: () => ({ - showing: false, - muteExpiryAmount: 2, - muteExpiryUnit: 'hours' + showing: false }), components: { ConfirmModal, Select }, computed: { - muteExpiryValue () { - unitToSeconds(this.muteExpiryUnit, this.muteExpiryAmount) - }, - muteExpiryUnits () { - return ['minutes', 'hours', 'days'] - }, domain () { return this.user.fqn.split('@')[1] }, @@ -31,13 +22,8 @@ export default { return 'status.mute_domain_confirm' } else if (this.type === 'conversation') { return 'status.mute_conversation_confirm' - } else { - return 'user_card.mute_confirm' } }, - userIsMuted () { - return this.$store.getters.relationship(this.user.id).muting - }, conversationIsMuted () { return this.status.conversation_muted }, @@ -49,12 +35,9 @@ export default { case 'domain': { return this.mergedConfig.modalOnMuteDomain } - case 'conversation': { + default: { // conversation return this.mergedConfig.modalOnMuteConversation } - default: { - return this.mergedConfig.modalOnMute - } } }, ...mapGetters(['mergedConfig']) @@ -79,7 +62,7 @@ export default { switch (this.type) { case 'domain': { if (!this.domainIsMuted) { - this.$store.dispatch('muteDomain', { id: this.domain, expiresIn: this.muteExpiryValue }) + this.$store.dispatch('muteDomain', { id: this.domain }) } else { this.$store.dispatch('unmuteDomain', { id: this.domain }) } @@ -87,20 +70,12 @@ export default { } case 'conversation': { if (!this.conversationIsMuted) { - this.$store.dispatch('muteConversation', { id: this.status.id, expiresIn: this.muteExpiryValue }) + this.$store.dispatch('muteConversation', { id: this.status.id }) } else { this.$store.dispatch('unmuteConversation', { id: this.status.id }) } break } - default: { - if (!this.userIsMuted) { - this.$store.dispatch('muteUser', { id: this.user.id, expiresIn: this.muteExpiryValue }) - } else { - this.$store.dispatch('unmuteUser', { id: this.user.id }) - } - break - } } this.$emit('muted') this.hide() diff --git a/src/components/confirm_modal/mute_confirm.vue b/src/components/confirm_modal/mute_confirm.vue index bf7ab338f..7c754b006 100644 --- a/src/components/confirm_modal/mute_confirm.vue +++ b/src/components/confirm_modal/mute_confirm.vue @@ -18,36 +18,6 @@ -
-

- - - {{ ' ' }} - -

-
diff --git a/src/components/settings_modal/tabs/filtering_tab.js b/src/components/settings_modal/tabs/filtering_tab.js index 5ff137062..f78f6815c 100644 --- a/src/components/settings_modal/tabs/filtering_tab.js +++ b/src/components/settings_modal/tabs/filtering_tab.js @@ -107,7 +107,7 @@ const FilteringTab = { ...mapActions(useServerSideStorageStore, ['setPreference', 'unsetPreference', 'pushServerSideStorage']), getDatetimeLocal (timestamp) { const date = new Date(timestamp) - let fmt = new Intl.NumberFormat("en-US", {minimumIntegerDigits: 2}) + const fmt = new Intl.NumberFormat("en-US", {minimumIntegerDigits: 2}) const datetime = [ date.getFullYear(), '-', diff --git a/src/components/status_action_buttons/action_button_container.js b/src/components/status_action_buttons/action_button_container.js index 313e3022f..a8f20800b 100644 --- a/src/components/status_action_buttons/action_button_container.js +++ b/src/components/status_action_buttons/action_button_container.js @@ -1,6 +1,7 @@ import ActionButton from './action_button.vue' import Popover from 'src/components/popover/popover.vue' import MuteConfirm from 'src/components/confirm_modal/mute_confirm.vue' +import UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue' import { library } from '@fortawesome/fontawesome-svg-core' import { @@ -19,7 +20,8 @@ export default { components: { ActionButton, Popover, - MuteConfirm + MuteConfirm, + UserTimedFilterModal }, props: ['button', 'status'], emits: ['interacted'], diff --git a/src/components/status_action_buttons/action_button_container.vue b/src/components/status_action_buttons/action_button_container.vue index 931a40349..75f5010ee 100644 --- a/src/components/status_action_buttons/action_button_container.vue +++ b/src/components/status_action_buttons/action_button_container.vue @@ -94,11 +94,10 @@ :status="status" :user="user" /> - diff --git a/src/components/user_card/user_card.js b/src/components/user_card/user_card.js index be81b8ad5..addb49afb 100644 --- a/src/components/user_card/user_card.js +++ b/src/components/user_card/user_card.js @@ -8,7 +8,8 @@ import UserNote from '../user_note/user_note.vue' import Select from '../select/select.vue' import UserLink from '../user_link/user_link.vue' import RichContent from 'src/components/rich_content/rich_content.jsx' -import MuteConfirm from '../confirm_modal/mute_confirm.vue' +import UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue' + import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator' import { mapGetters } from 'vuex' import { usePostStatusStore } from 'src/stores/post_status' @@ -48,6 +49,19 @@ export default { 'onClose', 'hasNoteEditor' ], + components: { + UserAvatar, + RemoteFollow, + ModerationTools, + AccountActions, + ProgressButton, + FollowButton, + Select, + RichContent, + UserLink, + UserNote, + UserTimedFilterModal + }, data () { return { followRequestInProgress: false, @@ -63,6 +77,7 @@ export default { return this.$store.getters.findUser(this.userId) }, relationship () { + console.log(this.$store.getters.relationship(this.userId)) return this.$store.getters.relationship(this.userId) }, classes () { @@ -144,22 +159,9 @@ export default { }, ...mapGetters(['mergedConfig']) }, - components: { - UserAvatar, - RemoteFollow, - ModerationTools, - AccountActions, - ProgressButton, - FollowButton, - Select, - RichContent, - UserLink, - UserNote, - MuteConfirm - }, methods: { muteUser () { - this.$refs.confirmation.optionallyPrompt() + this.$refs.timedMuteDialog.optionallyPrompt() }, unmuteUser () { this.$store.dispatch('unmuteUser', this.user.id) diff --git a/src/components/user_card/user_card.scss b/src/components/user_card/user_card.scss index d263be1c0..418bef08b 100644 --- a/src/components/user_card/user_card.scss +++ b/src/components/user_card/user_card.scss @@ -8,6 +8,11 @@ --_still-image-label-visibility: hidden; } + .btn-mute, .btn-mention { + display: block; + width: 100%; + } + .panel-heading { padding: 0.5em 0; text-align: center; diff --git a/src/components/user_card/user_card.vue b/src/components/user_card/user_card.vue index 36935424d..d05f9a6e4 100644 --- a/src/components/user_card/user_card.vue +++ b/src/components/user_card/user_card.vue @@ -232,7 +232,7 @@
- diff --git a/src/i18n/en.json b/src/i18n/en.json index 019beba1c..64d11b07c 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -1392,6 +1392,10 @@ "mute_confirm": "Do you really want to mute {user}?", "mute_confirm_accept_button": "Mute", "mute_confirm_cancel_button": "Do not mute", + "expire_at": "Expire at", + "dont_ask_again": "Do not ask again", + "mute_block_temporarily": "Temporarily", + "mute_block_forever": "Forever", "mute_duration_prompt": "Mute this user for (0 for indefinite time):", "per_day": "per day", "remote_follow": "Remote follow", diff --git a/src/modules/default_config_state.js b/src/modules/default_config_state.js index eb12d2df1..8ccf79e70 100644 --- a/src/modules/default_config_state.js +++ b/src/modules/default_config_state.js @@ -97,8 +97,11 @@ export const defaultState = { alwaysShowSubjectInput: undefined, // instance default postContentType: undefined, // instance default minimalScopesMode: undefined, // instance default + // This hides statuses filtered via a word filter hideFilteredStatuses: undefined, // instance default + + // Confirmations modalOnRepeat: undefined, // instance default modalOnUnfollow: undefined, // instance default modalOnBlock: undefined, // instance default @@ -110,6 +113,11 @@ export const defaultState = { modalOnApproveFollow: undefined, // instance default modalOnDenyFollow: undefined, // instance default modalOnRemoveUserFromFollowers: undefined, // instance default + + // Expiry confirmations/default actions + onMuteDefaultAction: 'ask', + onBlockDefaultAction: 'ask', + modalMobileCenter: undefined, playVideosInModal: false, useOneClickNsfw: false, diff --git a/src/modules/instance.js b/src/modules/instance.js index 83671a881..cee039ccc 100644 --- a/src/modules/instance.js +++ b/src/modules/instance.js @@ -162,6 +162,7 @@ const defaultState = { suggestionsWeb: '', quotingAvailable: false, groupActorAvailable: false, + blockExpiration: false, // Html stuff instanceSpecificPanelContent: '', diff --git a/src/modules/users.js b/src/modules/users.js index 01936c716..8779376b0 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -43,11 +43,20 @@ const getNotificationPermission = () => { return Promise.resolve(Notification.permission) } -const blockUser = (store, id) => { - return store.rootState.api.backendInteractor.blockUser({ id }) +const blockUser = (store, args) => { + const id = args.id + const expiresIn = typeof args === 'object' ? args.expiresIn : 0 + + const predictedRelationship = store.state.relationships[id] || { id } + store.commit('updateUserRelationship', [predictedRelationship]) + store.commit('addBlockId', id) + + return store.rootState.api.backendInteractor.blockUser({ id, expiresIn }) .then((relationship) => { + console.log(relationship) store.commit('updateUserRelationship', [relationship]) store.commit('addBlockId', id) + store.commit('removeStatus', { timeline: 'friends', userId: id }) store.commit('removeStatus', { timeline: 'public', userId: id }) store.commit('removeStatus', { timeline: 'publicAndExternal', userId: id }) @@ -74,7 +83,6 @@ const muteUser = (store, args) => { const expiresIn = typeof args === 'object' ? args.expiresIn : 0 const predictedRelationship = store.state.relationships[id] || { id } - predictedRelationship.muting = true store.commit('updateUserRelationship', [predictedRelationship]) store.commit('addMuteId', id) @@ -360,20 +368,20 @@ const users = { return blocks }) }, - blockUser (store, id) { - return blockUser(store, id) + blockUser (store, data) { + return blockUser(store, data) }, - unblockUser (store, id) { - return unblockUser(store, id) + unblockUser (store, data) { + return unblockUser(store, data) }, removeUserFromFollowers (store, id) { return removeUserFromFollowers(store, id) }, - blockUsers (store, ids = []) { - return Promise.all(ids.map(id => blockUser(store, id))) + blockUsers (store, data = []) { + return Promise.all(data.map(d => blockUser(store, d))) }, - unblockUsers (store, ids = []) { - return Promise.all(ids.map(id => unblockUser(store, id))) + unblockUsers (store, data = []) { + return Promise.all(data.map(d => unblockUser(store, d))) }, editUserNote (store, args) { return editUserNote(store, args) @@ -396,8 +404,8 @@ const users = { return mutes }) }, - muteUser (store, id) { - return muteUser(store, id) + muteUser (store, data) { + return muteUser(store, data) }, unmuteUser (store, id) { return unmuteUser(store, id) @@ -408,11 +416,11 @@ const users = { showReblogs (store, id) { return showReblogs(store, id) }, - muteUsers (store, ids = []) { - return Promise.all(ids.map(id => muteUser(store, id))) + muteUsers (store, data = []) { + return Promise.all(data.map(d => muteUser(store, d))) }, unmuteUsers (store, ids = []) { - return Promise.all(ids.map(id => unmuteUser(store, id))) + return Promise.all(ids.map(d => unmuteUser(store, d))) }, fetchDomainMutes (store) { return store.rootState.api.backendInteractor.fetchDomainMutes() diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index 117c621d9..9328c8edc 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -319,11 +319,19 @@ const unmuteConversation = ({ id, credentials }) => { .then((data) => parseStatus(data)) } -const blockUser = ({ id, credentials }) => { - return fetch(MASTODON_BLOCK_USER_URL(id), { - headers: authHeaders(credentials), - method: 'POST' - }).then((data) => data.json()) +const blockUser = ({ id, expiresIn, credentials }) => { + const payload = {} + if (expiresIn) { + payload.expires_in = expiresIn + } + + console.log(payload) + return promisedRequest({ + url: MASTODON_BLOCK_USER_URL(id), + credentials, + method: 'POST', + payload + }) } const unblockUser = ({ id, credentials }) => { @@ -1172,7 +1180,13 @@ const muteUser = ({ id, expiresIn, credentials }) => { if (expiresIn) { payload.expires_in = expiresIn } - return promisedRequest({ url: MASTODON_MUTE_USER_URL(id), credentials, method: 'POST', payload }) + + return promisedRequest({ + url: MASTODON_MUTE_USER_URL(id), + credentials, + method: 'POST', + payload + }) } const unmuteUser = ({ id, credentials }) => { From c9a4aee9547e3bc3ea8caf714d0dcc3c0b87d79a Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Thu, 12 Jun 2025 22:03:15 +0300 Subject: [PATCH 002/491] forgotten files --- .../user_timed_filter_modal.js | 93 +++++++++++++++++++ .../user_timed_filter_modal.scss | 9 ++ .../user_timed_filter_modal.vue | 61 ++++++++++++ 3 files changed, 163 insertions(+) create mode 100644 src/components/user_timed_filter_modal/user_timed_filter_modal.js create mode 100644 src/components/user_timed_filter_modal/user_timed_filter_modal.scss create mode 100644 src/components/user_timed_filter_modal/user_timed_filter_modal.vue diff --git a/src/components/user_timed_filter_modal/user_timed_filter_modal.js b/src/components/user_timed_filter_modal/user_timed_filter_modal.js new file mode 100644 index 000000000..ff920dcca --- /dev/null +++ b/src/components/user_timed_filter_modal/user_timed_filter_modal.js @@ -0,0 +1,93 @@ +import DialogModal from 'src/components/dialog_modal/dialog_modal.vue' +import Checkbox from 'src/components/checkbox/checkbox.vue' + +const UserTimedFilterModal = { + data () { + return { + showing: false, + dontAskAgain: false, + expiration: (() => { + const date = new Date() + const fmt = new Intl.NumberFormat("en-US", {minimumIntegerDigits: 2}) + return [ + date.getFullYear(), + '-', + fmt.format(date.getMonth() + 1), + '-', + fmt.format(date.getDate()), + 'T', + fmt.format(date.getHours()), + ':', + fmt.format(date.getMinutes()) + ].join('') + })() + } + }, + components: { + DialogModal, + Checkbox + }, + props: { + isMute: Boolean, + user: Object + }, + emits: [ + 'timed', + 'forever', + 'user' + ], + computed: { + dateValid () { + return (new Date(this.expiration).toJSON() != null) && + new Date(this.expiration) > new Date() + }, + expiryTime () { + return Math.floor((new Date(this.expiration).valueOf() - Date.now()) / 1000) + }, + shouldConfirm () { + if (this.isMute) { + return this.mergedConfig.onMuteDefaultAction === 'ask' + } else { + return this.mergedConfig.onBlockDefaultAction === 'ask' + } + } + }, + methods: { + optionallyPrompt () { + this.showing = true + }, + temporarily () { + if (this.isMute) { + this.muteUserTemporarily() + } else { + this.blockUserTemporarily() + } + this.showing = false + }, + forever () { + if (this.isMute) { + this.muteUserForever() + } else { + this.blockUserForever() + } + this.showing = false + }, + blockUserForever () { + this.$store.dispatch('blockUser', { id: this.user.id }) + }, + blockUserTemporarily () { + this.$store.dispatch('blockUser', { id: this.user.id, expiresIn: this.expiryTime }) + }, + muteUserForever () { + this.$store.dispatch('muteUser', { id: this.user.id }) + }, + muteUserTemporarily () { + this.$store.dispatch('muteUser', { id: this.user.id, expiresIn: this.expiryTime }) + }, + cancel () { + this.showing = false + } + } +} + +export default UserTimedFilterModal diff --git a/src/components/user_timed_filter_modal/user_timed_filter_modal.scss b/src/components/user_timed_filter_modal/user_timed_filter_modal.scss new file mode 100644 index 000000000..0fdb66eea --- /dev/null +++ b/src/components/user_timed_filter_modal/user_timed_filter_modal.scss @@ -0,0 +1,9 @@ +.UserTimedFilterModal { + .input-dont-ask-again { + margin-left: 1em; + } + + .input-expire-at { + margin-left: 0.25em; + } +} diff --git a/src/components/user_timed_filter_modal/user_timed_filter_modal.vue b/src/components/user_timed_filter_modal/user_timed_filter_modal.vue new file mode 100644 index 000000000..b3f6fbe27 --- /dev/null +++ b/src/components/user_timed_filter_modal/user_timed_filter_modal.vue @@ -0,0 +1,61 @@ + + + + + + + diff --git a/src/i18n/en.json b/src/i18n/en.json index 5363eda98..39d0978a2 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -1215,6 +1215,8 @@ "download_as_name_full": "New name, leave blank to reuse", "files": "Files", "editing": "Editing {0}", + "copying": "Copying {0}", + "copy_to": "Copy to", "delete_title": "Delete?", "metadata_changed": "Metadata different from saved", "emoji_changed": "Unsaved emoji file changes, check highlighted emoji", From ec635426c3df4f70e88f0ecfe972c0d8ecbb7470 Mon Sep 17 00:00:00 2001 From: Ekaterina Vaartis Date: Wed, 6 Aug 2025 20:02:15 +0300 Subject: [PATCH 133/491] Allow uploading single emojis from URL --- .../helpers/emoji_editing_popover.vue | 69 +++++++++++++------ src/i18n/en.json | 2 + 2 files changed, 50 insertions(+), 21 deletions(-) diff --git a/src/components/settings_modal/helpers/emoji_editing_popover.vue b/src/components/settings_modal/helpers/emoji_editing_popover.vue index 48c5f1a5e..e95701493 100644 --- a/src/components/settings_modal/helpers/emoji_editing_popover.vue +++ b/src/components/settings_modal/helpers/emoji_editing_popover.vue @@ -27,17 +27,26 @@ class="emoji" /> -
- +
+

{{ $t('admin_dash.emoji.emoji_source') }}

+ +
+ +
+
+ +
+
-
+
@@ -97,7 +109,7 @@ class="button button-default btn" type="button" :disabled="saveButtonDisabled" - @click="(newUpload || this.remote !== undefined) ? uploadEmoji() : saveEditedEmoji()" + @click="(newUpload || remote !== undefined) ? uploadEmoji() : saveEditedEmoji()" > {{ $t('admin_dash.emoji.save') }} @@ -137,10 +149,10 @@ import Popover from 'components/popover/popover.vue' import ConfirmModal from 'components/confirm_modal/confirm_modal.vue' import StillImage from 'components/still-image/still-image.vue' -import Select from 'components/select/select.vue' +import SelectComponent from 'components/select/select.vue' export default { - components: { Popover, ConfirmModal, StillImage, Select }, + components: { Popover, ConfirmModal, StillImage, SelectComponent }, inject: ['emojiAddr'], props: { placement: { @@ -171,16 +183,19 @@ export default { // Only exists for emojis from remote packs remote: { - type: Object + type: Object, + default: undefined }, knownLocalPacks: { - type: Object + type: Object, + default: undefined } }, emits: ['updatePackFiles', 'displayError'], data () { return { uploadFile: [], + uploadURL: "", editedShortcode: this.shortcode, editedFile: this.file, deleteModalVisible: false, @@ -191,6 +206,8 @@ export default { emojiPreview () { if (this.newUpload && this.uploadFile.length > 0) { return URL.createObjectURL(this.uploadFile[0]) + } else if (this.newUpload && this.uploadURL != "") { + return this.uploadURL } else if (!this.newUpload) { return this.emojiAddr(this.file) } @@ -202,7 +219,7 @@ export default { }, saveButtonDisabled() { if (this.remote === undefined) - return this.newUpload ? this.uploadFile.length == 0 : !this.isEdited + return this.newUpload ? (this.uploadURL === "" && this.uploadFile.length == 0) : !this.isEdited else return this.copyToPack === "" } @@ -226,7 +243,8 @@ export default { let packName = this.remote === undefined ? this.packName : this.copyToPack this.$store.state.api.backendInteractor.addNewEmojiFile({ packName: packName, - file: this.remote === undefined ? this.uploadFile[0] : this.emojiAddr(this.file), + file: this.remote === undefined ? + (this.uploadURL !== "" ? this.uploadURL : this.uploadFile[0]) : this.emojiAddr(this.file), shortcode: this.editedShortcode, filename: this.editedFile }).then(resp => resp.json()).then(resp => { @@ -271,13 +289,22 @@ export default { padding-right: 0.5em; padding-bottom: 0.5em; + .emoji-tab-popover-new-upload { + margin-bottom: 2em; + } + .emoji { width: 32px; height: 32px; } - .Select { + .SelectComponent { display: inline-block; } + + h4 { + margin-bottom: 1em; + margin-top: 1em; + } } diff --git a/src/i18n/en.json b/src/i18n/en.json index 39d0978a2..8bf3a9bc7 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -1205,6 +1205,8 @@ "adding_new": "Adding new emoji", "shortcode": "Shortcode", "filename": "Filename", + "emoji_source": "Emoji file source", + "upload_url": "Upload from URL", "new_shortcode": "Shortcode, leave blank to infer", "new_filename": "Filename, leave blank to infer", "delete_confirm": "Are you sure you want to delete {0}?", From 04c180e0d9ae72cecc525fda5b594fde41ca4bfe Mon Sep 17 00:00:00 2001 From: Ekaterina Vaartis Date: Wed, 6 Aug 2025 21:51:10 +0300 Subject: [PATCH 134/491] Allow copying emoji from posts --- src/components/rich_content/rich_content.jsx | 5 +- .../helpers/emoji_editing_popover.vue | 2 +- .../still-image/still-image-emoji-popover.vue | 184 ++++++++++++++++++ src/i18n/en.json | 1 + 4 files changed, 189 insertions(+), 3 deletions(-) create mode 100644 src/components/still-image/still-image-emoji-popover.vue diff --git a/src/components/rich_content/rich_content.jsx b/src/components/rich_content/rich_content.jsx index 9466603cd..ac04c538e 100644 --- a/src/components/rich_content/rich_content.jsx +++ b/src/components/rich_content/rich_content.jsx @@ -2,7 +2,7 @@ import { unescape, flattenDeep } from 'lodash' import { getTagName, processTextForEmoji, getAttrs } from 'src/services/html_converter/utility.service.js' import { convertHtmlToTree } from 'src/services/html_converter/html_tree_converter.service.js' import { convertHtmlToLines } from 'src/services/html_converter/html_line_converter.service.js' -import StillImage from 'src/components/still-image/still-image.vue' +import StillImageEmojiPopover from 'src/components/still-image/still-image-emoji-popover.vue' import MentionsLine from 'src/components/mentions_line/mentions_line.vue' import { MENTIONS_LIMIT } from 'src/components/mentions_line/mentions_line.js' import HashtagLink from 'src/components/hashtag_link/hashtag_link.vue' @@ -162,9 +162,10 @@ export default { item, this.emoji, ({ shortcode, url }) => { - return diff --git a/src/components/settings_modal/helpers/emoji_editing_popover.vue b/src/components/settings_modal/helpers/emoji_editing_popover.vue index e95701493..7e7453129 100644 --- a/src/components/settings_modal/helpers/emoji_editing_popover.vue +++ b/src/components/settings_modal/helpers/emoji_editing_popover.vue @@ -298,7 +298,7 @@ export default { height: 32px; } - .SelectComponent { + .Select { display: inline-block; } diff --git a/src/components/still-image/still-image-emoji-popover.vue b/src/components/still-image/still-image-emoji-popover.vue new file mode 100644 index 000000000..0e8a68171 --- /dev/null +++ b/src/components/still-image/still-image-emoji-popover.vue @@ -0,0 +1,184 @@ + + + + + diff --git a/src/i18n/en.json b/src/i18n/en.json index 8bf3a9bc7..4a3df9472 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -1219,6 +1219,7 @@ "editing": "Editing {0}", "copying": "Copying {0}", "copy_to": "Copy to", + "copy_to_pack": "Copy to local pack", "delete_title": "Delete?", "metadata_changed": "Metadata different from saved", "emoji_changed": "Unsaved emoji file changes, check highlighted emoji", From 0ccff2019fcca6121fe306ee9b75a373681bdf03 Mon Sep 17 00:00:00 2001 From: Ekaterina Vaartis Date: Wed, 6 Aug 2025 22:03:19 +0300 Subject: [PATCH 135/491] Changelogs --- changelog.d/emoji-copying-post.add | 1 + changelog.d/emoji-copying.add | 1 + changelog.d/emoji-popover.add | 1 + 3 files changed, 3 insertions(+) create mode 100644 changelog.d/emoji-copying-post.add create mode 100644 changelog.d/emoji-copying.add create mode 100644 changelog.d/emoji-popover.add diff --git a/changelog.d/emoji-copying-post.add b/changelog.d/emoji-copying-post.add new file mode 100644 index 000000000..f25ce9792 --- /dev/null +++ b/changelog.d/emoji-copying-post.add @@ -0,0 +1 @@ +Allow copying an emoji from a remote post into a local pack diff --git a/changelog.d/emoji-copying.add b/changelog.d/emoji-copying.add new file mode 100644 index 000000000..875e04401 --- /dev/null +++ b/changelog.d/emoji-copying.add @@ -0,0 +1 @@ +Allow copying one emoji from a remote pack into a local pack diff --git a/changelog.d/emoji-popover.add b/changelog.d/emoji-popover.add new file mode 100644 index 000000000..f55ad10a3 --- /dev/null +++ b/changelog.d/emoji-popover.add @@ -0,0 +1 @@ +When an emoji is clicked in a post, show a popover with its name and a bigger image. Admins can also copy it to a local pack From e04d7d2c9772e8c2d8f3a55e90848911e0973036 Mon Sep 17 00:00:00 2001 From: Ekaterina Vaartis Date: Wed, 6 Aug 2025 22:24:49 +0300 Subject: [PATCH 136/491] Check if emoji is already a local one --- src/components/chat_title/chat_title.vue | 1 + src/components/notification/notification.vue | 1 + src/components/rich_content/rich_content.jsx | 10 +++++++++- src/components/status/status.vue | 2 ++ src/components/status_body/status_body.vue | 2 ++ .../still-image/still-image-emoji-popover.vue | 13 +++++++++++-- 6 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/components/chat_title/chat_title.vue b/src/components/chat_title/chat_title.vue index 72660cca0..00521260f 100644 --- a/src/components/chat_title/chat_title.vue +++ b/src/components/chat_title/chat_title.vue @@ -19,6 +19,7 @@ :title="'@'+(user && user.screen_name_ui)" :html="htmlTitle" :emoji="user.emoji || []" + :is-local="user.is_local" />
diff --git a/src/components/notification/notification.vue b/src/components/notification/notification.vue index 0930e0990..648bdb41f 100644 --- a/src/components/notification/notification.vue +++ b/src/components/notification/notification.vue @@ -62,6 +62,7 @@ :title="'@'+notification.from_profile.screen_name_ui" :html="notification.from_profile.name_html" :emoji="notification.from_profile.emoji" + :is-local="notification.from_profile.is_local" /> diff --git a/src/components/rich_content/rich_content.jsx b/src/components/rich_content/rich_content.jsx index ac04c538e..cdad60f74 100644 --- a/src/components/rich_content/rich_content.jsx +++ b/src/components/rich_content/rich_content.jsx @@ -86,6 +86,12 @@ export default { required: false, type: Boolean, default: false + }, + // Assume is local to be true if unspecified, so the button isn't show where it probably should not be + isLocal: { + required: false, + type: Boolean, + default: true } }, // NEVER EVER TOUCH DATA INSIDE RENDER @@ -165,9 +171,11 @@ export default { return } )] diff --git a/src/components/status/status.vue b/src/components/status/status.vue index d0af91aef..fbc455ee6 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -79,6 +79,7 @@

-
+
@@ -71,7 +71,7 @@
-
+
@@ -149,7 +149,7 @@ export default { background-position: 50% 50%; .theme-preview-content { - padding: 20px; + padding: 1.5em; } .dummy { @@ -203,19 +203,21 @@ export default { .avatar-alt { flex: 0 auto; - margin-left: 28px; - font-size: 12px; - min-width: 20px; - min-height: 20px; - line-height: 20px; + margin-left: 2em; + font-size: 0.85em; + min-width: 2.2rem; + min-height: 2.2rem; + line-height: 1.5em; + align-content: center; } .avatar { flex: 0 auto; - width: 48px; - height: 48px; - font-size: 14px; - line-height: 48px; + width: 3.5em; + height: 3.5em; + font-size: 1rem; + line-height: 3.5em; + justify-content: center; } .actions { @@ -241,7 +243,7 @@ export default { .underlay-preview { position: absolute; - inset: 0 10px; + inset: 0 0.9em; } } diff --git a/src/components/settings_modal/tabs/theme_tab/theme_tab.scss b/src/components/settings_modal/tabs/theme_tab/theme_tab.scss index d83beffa0..ae2364dcc 100644 --- a/src/components/settings_modal/tabs/theme_tab/theme_tab.scss +++ b/src/components/settings_modal/tabs/theme_tab/theme_tab.scss @@ -107,7 +107,7 @@ justify-content: space-between; align-items: baseline; width: 100%; - min-height: 30px; + min-height: 2.1em; margin-bottom: 1em; p { @@ -212,7 +212,7 @@ .theme-color-cl, .theme-radius-in, .theme-color-in { - margin-left: 4px; + margin-left: 0.3em; } .theme-radius-in { diff --git a/src/components/shout_panel/shout_panel.vue b/src/components/shout_panel/shout_panel.vue index 1b2b591c2..184fe81e0 100644 --- a/src/components/shout_panel/shout_panel.vue +++ b/src/components/shout_panel/shout_panel.vue @@ -122,8 +122,8 @@ .shout-avatar { img { - height: 24px; - width: 24px; + height: 0.6em; + width: 0.6em; border-radius: var(--roundness); margin-right: 0.5em; margin-top: 0.25em; diff --git a/src/components/tab_switcher/tab_switcher.scss b/src/components/tab_switcher/tab_switcher.scss index 60413c5f4..b7274d86d 100644 --- a/src/components/tab_switcher/tab_switcher.scss +++ b/src/components/tab_switcher/tab_switcher.scss @@ -202,9 +202,9 @@ } img { - max-height: 26px; + max-height: 1.9em; vertical-align: top; - margin-top: -5px; + margin-top: -0.3em; } } diff --git a/src/components/user_reporting_modal/user_reporting_modal.vue b/src/components/user_reporting_modal/user_reporting_modal.vue index 0e93824b7..dbd7e7e56 100644 --- a/src/components/user_reporting_modal/user_reporting_modal.vue +++ b/src/components/user_reporting_modal/user_reporting_modal.vue @@ -10,7 +10,7 @@ keypath="user_reporting.title" class="title" > - +
@@ -74,10 +74,14 @@ From 7b2f3b648ad0e2377ea352a900663490a7738030 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Fri, 15 Aug 2025 10:03:34 +0300 Subject: [PATCH 182/491] improve visibilty of attachment buttons --- src/App.scss | 4 ++++ src/components/button.style.js | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/App.scss b/src/App.scss index 01f24d0ca..00a8e9547 100644 --- a/src/App.scss +++ b/src/App.scss @@ -382,6 +382,10 @@ nav { font-family: sans-serif; font-family: var(--font); + &.-transparent { + backdrop-filter: blur(0.125em) contrast(60%); + } + &::-moz-focus-inner { border: none; } diff --git a/src/components/button.style.js b/src/components/button.style.js index ecbf54d9e..c32a232f4 100644 --- a/src/components/button.style.js +++ b/src/components/button.style.js @@ -64,6 +64,26 @@ export default { opacity: 0.5 } }, + { + component: 'Text', + parent: { + component: 'Button', + variant: 'transparent' + }, + directives: { + textColor: '--text' + } + }, + { + component: 'Icon', + parent: { + component: 'Button', + variant: 'transparent' + }, + directives: { + textColor: '--text' + } + }, { state: ['hover'], directives: { From 202f5d87b3692d578ad384816aa3edcdd90377b2 Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Fri, 15 Aug 2025 09:04:59 +0000 Subject: [PATCH 183/491] Update babel monorepo to v7.28.3 --- package.json | 10 ++-- yarn.lock | 162 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 108 insertions(+), 64 deletions(-) diff --git a/package.json b/package.json index 3c6a2909b..7f7d6f6a6 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.28.2", + "@babel/runtime": "7.28.3", "@chenfengyuan/vue-qrcode": "2.0.0", "@fortawesome/fontawesome-svg-core": "6.7.2", "@fortawesome/free-regular-svg-icons": "6.7.2", @@ -54,11 +54,11 @@ "vuex": "4.1.0" }, "devDependencies": { - "@babel/core": "7.28.0", + "@babel/core": "7.28.3", "@babel/eslint-parser": "7.28.0", - "@babel/plugin-transform-runtime": "7.28.0", - "@babel/preset-env": "7.28.0", - "@babel/register": "7.27.1", + "@babel/plugin-transform-runtime": "7.28.3", + "@babel/preset-env": "7.28.3", + "@babel/register": "7.28.3", "@ungap/event-target": "0.2.4", "@vitejs/plugin-vue": "^5.2.1", "@vitejs/plugin-vue-jsx": "^4.1.1", diff --git a/yarn.lock b/yarn.lock index beeb7031f..06ac006ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -61,21 +61,21 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.0.tgz#9fc6fd58c2a6a15243cd13983224968392070790" integrity sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw== -"@babel/core@7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.0.tgz#55dad808d5bf3445a108eefc88ea3fdf034749a4" - integrity sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ== +"@babel/core@7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.3.tgz#aceddde69c5d1def69b839d09efa3e3ff59c97cb" + integrity sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.0" + "@babel/generator" "^7.28.3" "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-module-transforms" "^7.27.3" - "@babel/helpers" "^7.27.6" - "@babel/parser" "^7.28.0" + "@babel/helper-module-transforms" "^7.28.3" + "@babel/helpers" "^7.28.3" + "@babel/parser" "^7.28.3" "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.0" - "@babel/types" "^7.28.0" + "@babel/traverse" "^7.28.3" + "@babel/types" "^7.28.2" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -145,6 +145,17 @@ "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" +"@babel/generator@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.3.tgz#9626c1741c650cbac39121694a0f2d7451b8ef3e" + integrity sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw== + dependencies: + "@babel/parser" "^7.28.3" + "@babel/types" "^7.28.2" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + "@babel/helper-annotate-as-pure@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" @@ -214,6 +225,19 @@ "@babel/traverse" "^7.27.1" semver "^6.3.1" +"@babel/helper-create-class-features-plugin@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz#3e747434ea007910c320c4d39a6b46f20f371d46" + integrity sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/traverse" "^7.28.3" + semver "^6.3.1" + "@babel/helper-create-regexp-features-plugin@^7.18.6": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.0.tgz#0e41f7d38c2ebe06ebd9cf0e02fb26019c77cd95" @@ -298,14 +322,14 @@ "@babel/helper-validator-identifier" "^7.27.1" "@babel/traverse" "^7.27.1" -"@babel/helper-module-transforms@^7.27.3": - version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz#db0bbcfba5802f9ef7870705a7ef8788508ede02" - integrity sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg== +"@babel/helper-module-transforms@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6" + integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== dependencies: "@babel/helper-module-imports" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.27.3" + "@babel/traverse" "^7.28.3" "@babel/helper-optimise-call-expression@^7.25.9": version "7.25.9" @@ -416,10 +440,10 @@ "@babel/template" "^7.27.0" "@babel/types" "^7.27.0" -"@babel/helpers@^7.27.6": - version "7.28.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.2.tgz#80f0918fecbfebea9af856c419763230040ee850" - integrity sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw== +"@babel/helpers@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.3.tgz#b83156c0a2232c133d1b535dd5d3452119c7e441" + integrity sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw== dependencies: "@babel/template" "^7.27.2" "@babel/types" "^7.28.2" @@ -455,6 +479,13 @@ dependencies: "@babel/types" "^7.28.0" +"@babel/parser@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.3.tgz#d2d25b814621bca5fe9d172bc93792547e7a2a71" + integrity sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA== + dependencies: + "@babel/types" "^7.28.2" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz#61dd8a8e61f7eb568268d1b5f129da3eee364bf9" @@ -486,13 +517,13 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" "@babel/plugin-transform-optional-chaining" "^7.27.1" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz#bb1c25af34d75115ce229a1de7fa44bf8f955670" - integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz#373f6e2de0016f73caf8f27004f61d167743742a" + integrity sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.27.1" + "@babel/traverse" "^7.28.3" "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" @@ -582,25 +613,25 @@ "@babel/helper-create-class-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-class-static-block@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz#7e920d5625b25bbccd3061aefbcc05805ed56ce4" - integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== +"@babel/plugin-transform-class-static-block@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz#d1b8e69b54c9993bc558203e1f49bfc979bfd852" + integrity sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.28.3" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-classes@^7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz#12fa46cffc32a6e084011b650539e880add8a0f8" - integrity sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA== +"@babel/plugin-transform-classes@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.3.tgz#598297260343d0edbd51cb5f5075e07dee91963a" + integrity sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg== dependencies: "@babel/helper-annotate-as-pure" "^7.27.3" "@babel/helper-compilation-targets" "^7.27.2" "@babel/helper-globals" "^7.28.0" "@babel/helper-plugin-utils" "^7.27.1" "@babel/helper-replace-supers" "^7.27.1" - "@babel/traverse" "^7.28.0" + "@babel/traverse" "^7.28.3" "@babel/plugin-transform-computed-properties@^7.27.1": version "7.27.1" @@ -843,10 +874,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-regenerator@^7.28.0": - version "7.28.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.1.tgz#bde80603442ff4bb4e910bc8b35485295d556ab1" - integrity sha512-P0QiV/taaa3kXpLY+sXla5zec4E+4t4Aqc9ggHlfZ7a2cp8/x/Gv08jfwEtn9gnnYIMvHx6aoOZ8XJL8eU71Dg== +"@babel/plugin-transform-regenerator@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.3.tgz#b8eee0f8aed37704bbcc932fd0b1a0a34d0b7344" + integrity sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -865,10 +896,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-runtime@7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.0.tgz#462e79008cc7bdac03e4c5e1765b9de2bcd31c21" - integrity sha512-dGopk9nZrtCs2+nfIem25UuHyt5moSJamArzIoh9/vezUQPmYDOzjaHDCkAzuGJibCIkPup8rMT2+wYB6S73cA== +"@babel/plugin-transform-runtime@7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.28.3.tgz#f5990a1b2d2bde950ed493915e0719841c8d0eaa" + integrity sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg== dependencies: "@babel/helper-module-imports" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" @@ -955,10 +986,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.27.1" "@babel/helper-plugin-utils" "^7.27.1" -"@babel/preset-env@7.28.0": - version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.0.tgz#d23a6bc17b43227d11db77081a0779c706b5569c" - integrity sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg== +"@babel/preset-env@7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.28.3.tgz#2b18d9aff9e69643789057ae4b942b1654f88187" + integrity sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg== dependencies: "@babel/compat-data" "^7.28.0" "@babel/helper-compilation-targets" "^7.27.2" @@ -968,7 +999,7 @@ "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.28.3" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-import-assertions" "^7.27.1" "@babel/plugin-syntax-import-attributes" "^7.27.1" @@ -979,8 +1010,8 @@ "@babel/plugin-transform-block-scoped-functions" "^7.27.1" "@babel/plugin-transform-block-scoping" "^7.28.0" "@babel/plugin-transform-class-properties" "^7.27.1" - "@babel/plugin-transform-class-static-block" "^7.27.1" - "@babel/plugin-transform-classes" "^7.28.0" + "@babel/plugin-transform-class-static-block" "^7.28.3" + "@babel/plugin-transform-classes" "^7.28.3" "@babel/plugin-transform-computed-properties" "^7.27.1" "@babel/plugin-transform-destructuring" "^7.28.0" "@babel/plugin-transform-dotall-regex" "^7.27.1" @@ -1012,7 +1043,7 @@ "@babel/plugin-transform-private-methods" "^7.27.1" "@babel/plugin-transform-private-property-in-object" "^7.27.1" "@babel/plugin-transform-property-literals" "^7.27.1" - "@babel/plugin-transform-regenerator" "^7.28.0" + "@babel/plugin-transform-regenerator" "^7.28.3" "@babel/plugin-transform-regexp-modifiers" "^7.27.1" "@babel/plugin-transform-reserved-words" "^7.27.1" "@babel/plugin-transform-shorthand-properties" "^7.27.1" @@ -1040,10 +1071,10 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/register@7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.27.1.tgz#ea4d701649d788d7cb8a064b7540fd21083147f1" - integrity sha512-K13lQpoV54LATKkzBpBAEu1GGSIRzxR9f4IN4V8DCDgiUMo2UDGagEZr3lPeVNJPLkWUi5JE4hCHKneVTwQlYQ== +"@babel/register@7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.28.3.tgz#abd8a3753480c799bdaf9c9092d6745d16e052c2" + integrity sha512-CieDOtd8u208eI49bYl4z1J22ySFw87IGwE+IswFEExH7e3rLgKb0WNQeumnacQ1+VoDJLYI5QFA3AJZuyZQfA== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" @@ -1051,10 +1082,10 @@ pirates "^4.0.6" source-map-support "^0.5.16" -"@babel/runtime@7.28.2": - version "7.28.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.2.tgz#2ae5a9d51cc583bd1f5673b3bb70d6d819682473" - integrity sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA== +"@babel/runtime@7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.3.tgz#75c5034b55ba868121668be5d5bb31cc64e6e61a" + integrity sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA== "@babel/runtime@^7.12.5": version "7.27.1" @@ -1105,7 +1136,7 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/traverse@^7.27.3", "@babel/traverse@^7.28.0": +"@babel/traverse@^7.28.0": version "7.28.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.0.tgz#518aa113359b062042379e333db18380b537e34b" integrity sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg== @@ -1118,6 +1149,19 @@ "@babel/types" "^7.28.0" debug "^4.3.1" +"@babel/traverse@^7.28.3": + version "7.28.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.3.tgz#6911a10795d2cce43ec6a28cffc440cca2593434" + integrity sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.3" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.28.3" + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.2" + debug "^4.3.1" + "@babel/types@^7.0.0-beta.49", "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.26.9", "@babel/types@^7.27.0", "@babel/types@^7.4.4": version "7.27.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" From 7ff72e5ae2b4aad77783bb7854ff65d5173fd3d7 Mon Sep 17 00:00:00 2001 From: Ekaterina Vaartis Date: Fri, 15 Aug 2025 22:12:56 +0300 Subject: [PATCH 184/491] Correct shortcode attr, sort names instead of emoji, success info --- .../still-image/still-image-emoji-popover.vue | 28 +++++++++---------- src/i18n/en.json | 3 +- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/components/still-image/still-image-emoji-popover.vue b/src/components/still-image/still-image-emoji-popover.vue index 5224168c2..8588d5165 100644 --- a/src/components/still-image/still-image-emoji-popover.vue +++ b/src/components/still-image/still-image-emoji-popover.vue @@ -98,13 +98,18 @@ this.$store.state.api.backendInteractor.addNewEmojiFile({ packName: this.packName, file: this.$attrs.src, - shortcode: this.$attrs.shortcode, + shortcode: this.shortcode, filename: "" }).then(resp => resp.json()).then(resp => { if (resp.error !== undefined) { this.displayError(resp.error) return } + useInterfaceStore().pushGlobalNotice({ + messageKey: 'admin_dash.emoji.copied_successfully', + messageArgs: [this.shortcode, this.packName], + level: 'success' + }) this.$refs.emojiPopover.hidePopover() this.packName = '' @@ -143,21 +148,14 @@ this.loadPacksPaginated(this.$store.state.api.backendInteractor.listEmojiPacks) .then(allPacks => { - this.knownLocalPacks = allPacks - - for (const name of Object.keys(this.knownLocalPacks)) { - this.sortPackFiles(name) - } + // Sort by key + const sorted = Object.keys(allPacks).sort().reduce((acc, key) => { + if (key.length === 0) return acc + acc[key] = allPacks[key] + return acc + }, {}) + this.knownLocalPacks = sorted }) - }, - sortPackFiles (nameOfPack) { - // Sort by key - const sorted = Object.keys(this.knownLocalPacks[nameOfPack].files).sort().reduce((acc, key) => { - if (key.length === 0) return acc - acc[key] = this.knownLocalPacks[nameOfPack].files[key] - return acc - }, {}) - this.knownLocalPacks[nameOfPack].files = sorted } } } diff --git a/src/i18n/en.json b/src/i18n/en.json index 4a3df9472..b2601ea51 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -1223,7 +1223,8 @@ "delete_title": "Delete?", "metadata_changed": "Metadata different from saved", "emoji_changed": "Unsaved emoji file changes, check highlighted emoji", - "replace_warning": "This will REPLACE the local pack of the same name" + "replace_warning": "This will REPLACE the local pack of the same name", + "copied_successfully": "Successfully copied emoji \"{0}\" to pack \"{1}\"" }, "temp_overrides": { ":pleroma": { From 3ba9c01e15e25548cbac6d4410d791fdc80fd0b6 Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Sat, 16 Aug 2025 09:06:10 +0000 Subject: [PATCH 185/491] Update dependency @vue/babel-plugin-jsx to v1.5.0 --- package.json | 2 +- yarn.lock | 44 +++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 7f7d6f6a6..4ab2a5d46 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "@vitest/browser": "^3.0.7", "@vitest/ui": "^3.0.7", "@vue/babel-helper-vue-jsx-merge-props": "1.4.0", - "@vue/babel-plugin-jsx": "1.4.0", + "@vue/babel-plugin-jsx": "1.5.0", "@vue/compiler-sfc": "3.5.18", "@vue/test-utils": "2.4.6", "autoprefixer": "10.4.21", diff --git a/yarn.lock b/yarn.lock index 06ac006ed..58dfd7b40 100644 --- a/yarn.lock +++ b/yarn.lock @@ -551,6 +551,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.25.9" +"@babel/plugin-syntax-jsx@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c" + integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-syntax-typescript@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399" @@ -2410,7 +2417,27 @@ resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.4.0.tgz#616020488692a9c42a613280d62ed1b727045d95" integrity sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw== -"@vue/babel-plugin-jsx@1.4.0", "@vue/babel-plugin-jsx@^1.2.5": +"@vue/babel-helper-vue-transform-on@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.5.0.tgz#b7e99d37eeb144d7b9757d7a1f40cd977fde748a" + integrity sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA== + +"@vue/babel-plugin-jsx@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.5.0.tgz#1b988b497cb1f79725da94463e75cebe60b72e70" + integrity sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/template" "^7.27.2" + "@babel/traverse" "^7.28.0" + "@babel/types" "^7.28.2" + "@vue/babel-helper-vue-transform-on" "1.5.0" + "@vue/babel-plugin-resolve-type" "1.5.0" + "@vue/shared" "^3.5.18" + +"@vue/babel-plugin-jsx@^1.2.5": version "1.4.0" resolved "https://registry.yarnpkg.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.4.0.tgz#c155c795ce980edf46aa6feceed93945a95ca658" integrity sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA== @@ -2436,6 +2463,17 @@ "@babel/parser" "^7.26.9" "@vue/compiler-sfc" "^3.5.13" +"@vue/babel-plugin-resolve-type@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.5.0.tgz#6881d7b1478e9fc0ea4bb08aaad1f4d206655568" + integrity sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/parser" "^7.28.0" + "@vue/compiler-sfc" "^3.5.18" + "@vue/compiler-core@3.5.13": version "3.5.13" resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.13.tgz#b0ae6c4347f60c03e849a05d34e5bf747c9bda05" @@ -2474,7 +2512,7 @@ "@vue/compiler-core" "3.5.18" "@vue/shared" "3.5.18" -"@vue/compiler-sfc@3.5.18": +"@vue/compiler-sfc@3.5.18", "@vue/compiler-sfc@^3.5.18": version "3.5.18" resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz#ba1e849561337d809937994cdaf900539542eeca" integrity sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA== @@ -2590,7 +2628,7 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.13.tgz#87b309a6379c22b926e696893237826f64339b6f" integrity sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ== -"@vue/shared@3.5.18": +"@vue/shared@3.5.18", "@vue/shared@^3.5.18": version "3.5.18" resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.18.tgz#529f24a88d3ed678d50fd5c07455841fbe8ac95e" integrity sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA== From 15239cf92d31b38de0954f0a160d5e5689bd3aad Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Sun, 17 Aug 2025 08:52:59 +0000 Subject: [PATCH 186/491] Update dependency chalk to v5.6.0 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7f7d6f6a6..cfea50a24 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "autoprefixer": "10.4.21", "babel-plugin-lodash": "3.3.4", "chai": "5.2.1", - "chalk": "5.4.1", + "chalk": "5.6.0", "chromedriver": "135.0.4", "connect-history-api-fallback": "2.0.0", "cross-spawn": "7.0.6", diff --git a/yarn.lock b/yarn.lock index 06ac006ed..6ed15c117 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3246,10 +3246,10 @@ chalk@2.4.2, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.4.1.tgz#1b48bf0963ec158dce2aacf69c093ae2dd2092d8" - integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== +chalk@5.6.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.0.tgz#a1a8d294ea3526dbb77660f12649a08490e33ab8" + integrity sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ== chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" From 7b3ef62b963f7da2269556b2ededc59f63b67e0c Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Sun, 17 Aug 2025 08:53:36 +0000 Subject: [PATCH 187/491] Update dependency eslint-plugin-n to v17.21.3 --- package.json | 2 +- yarn.lock | 25 +++++++++++++++++++------ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 7f7d6f6a6..70d547a41 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "eslint-config-standard": "17.1.0", "eslint-formatter-friendly": "7.0.0", "eslint-plugin-import": "2.31.0", - "eslint-plugin-n": "17.18.0", + "eslint-plugin-n": "17.21.3", "eslint-plugin-promise": "7.2.1", "eslint-plugin-vue": "10.1.0", "eventsource-polyfill": "0.9.6", diff --git a/yarn.lock b/yarn.lock index 06ac006ed..c128a5e28 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4219,19 +4219,20 @@ eslint-plugin-import@2.31.0: string.prototype.trimend "^1.0.8" tsconfig-paths "^3.15.0" -eslint-plugin-n@17.18.0: - version "17.18.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-17.18.0.tgz#8515979b49ef8db7bb16e457b8ed22cc695d2a84" - integrity sha512-hvZ/HusueqTJ7VDLoCpjN0hx4N4+jHIWTXD4TMLHy9F23XkDagR9v+xQWRWR57yY55GPF8NnD4ox9iGTxirY8A== +eslint-plugin-n@17.21.3: + version "17.21.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-17.21.3.tgz#a07592c28390ac742bf52acae89048c997a7b91c" + integrity sha512-MtxYjDZhMQgsWRm/4xYLL0i2EhusWT7itDxlJ80l1NND2AL2Vi5Mvneqv/ikG9+zpran0VsVRXTEHrpLmUZRNw== dependencies: "@eslint-community/eslint-utils" "^4.5.0" enhanced-resolve "^5.17.1" eslint-plugin-es-x "^7.8.0" get-tsconfig "^4.8.1" globals "^15.11.0" + globrex "^0.1.2" ignore "^5.3.2" - minimatch "^9.0.5" semver "^7.6.3" + ts-declaration-location "^1.0.6" eslint-plugin-promise@7.2.1: version "7.2.1" @@ -4917,6 +4918,11 @@ globjoin@^0.1.4: resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== +globrex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098" + integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg== + gopd@^1.0.1, gopd@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" @@ -5937,7 +5943,7 @@ minimatch@^5.0.1, minimatch@^5.1.0: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.4, minimatch@^9.0.5: +minimatch@^9.0.4: version "9.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== @@ -7749,6 +7755,13 @@ tr46@^5.1.0: dependencies: punycode "^2.3.1" +ts-declaration-location@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/ts-declaration-location/-/ts-declaration-location-1.0.7.tgz#d4068fe9975828b3b453b3ab112b4711d8267688" + integrity sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA== + dependencies: + picomatch "^4.0.2" + tsconfig-paths@^3.15.0: version "3.15.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" From 80b0117ba271d63da35e5080eba08395df880edd Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Mon, 18 Aug 2025 08:53:12 +0000 Subject: [PATCH 188/491] Update dependency eslint-plugin-vue to v10.4.0 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7f7d6f6a6..cd12cf7fb 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "eslint-plugin-import": "2.31.0", "eslint-plugin-n": "17.18.0", "eslint-plugin-promise": "7.2.1", - "eslint-plugin-vue": "10.1.0", + "eslint-plugin-vue": "10.4.0", "eventsource-polyfill": "0.9.6", "express": "5.1.0", "function-bind": "1.1.2", diff --git a/yarn.lock b/yarn.lock index 06ac006ed..07cc2811b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4240,10 +4240,10 @@ eslint-plugin-promise@7.2.1: dependencies: "@eslint-community/eslint-utils" "^4.4.0" -eslint-plugin-vue@10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-10.1.0.tgz#434cb84eecfa0a69b7cd95bf913f11ded259308e" - integrity sha512-/VTiJ1eSfNLw6lvG9ENySbGmcVvz6wZ9nA7ZqXlLBY2RkaF15iViYKxglWiIch12KiLAj0j1iXPYU6W4wTROFA== +eslint-plugin-vue@10.4.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-10.4.0.tgz#2ae20df43801d20515c58ec2ae0555bf1127a080" + integrity sha512-K6tP0dW8FJVZLQxa2S7LcE1lLw3X8VvB3t887Q6CLrFVxHYBXGANbXvwNzYIu6Ughx1bSJ5BDT0YB3ybPT39lw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" natural-compare "^1.4.0" From 0d6453baecbb1385b19fc159bce04c1b861cce5a Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 19 Aug 2025 16:21:30 +0300 Subject: [PATCH 189/491] fix emoji reactions notifs being non-expandable --- src/components/notification/notification.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/notification/notification.js b/src/components/notification/notification.js index 247b73848..8692c6190 100644 --- a/src/components/notification/notification.js +++ b/src/components/notification/notification.js @@ -138,7 +138,7 @@ const Notification = { return highlightStyle(highlight[user.screen_name]) }, expandable () { - return (new Set(['like', '-pleroma:emoji_reaction', 'repeat'])).has(this.notification.type) + return (new Set(['like', 'pleroma:emoji_reaction', 'repeat'])).has(this.notification.type) }, user () { return this.$store.getters.findUser(this.notification.from_profile.id) From 26a2232e1841a359d3f34200d38ca9c897b1f30a Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 19 Aug 2025 16:21:44 +0300 Subject: [PATCH 190/491] fix incorrect collapse state --- src/components/notification/notification.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/notification/notification.vue b/src/components/notification/notification.vue index 28ab1b9b8..76ede11e2 100644 --- a/src/components/notification/notification.vue +++ b/src/components/notification/notification.vue @@ -255,7 +255,7 @@ class="status-content" :compact="!statusExpanded" :status="notification.status" - :collapse="statusExpanded" + :collapse="!statusExpanded" @click="toggleStatusExpanded()" /> From 8780e0191e7213b141cf36efa40365401304b06d Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 19 Aug 2025 16:35:40 +0300 Subject: [PATCH 191/491] proper collapse --- src/components/rich_content/rich_content.jsx | 19 +++++++++++++++++-- src/components/status_body/status_body.vue | 3 ++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/components/rich_content/rich_content.jsx b/src/components/rich_content/rich_content.jsx index 9466603cd..599985c3b 100644 --- a/src/components/rich_content/rich_content.jsx +++ b/src/components/rich_content/rich_content.jsx @@ -86,6 +86,12 @@ export default { required: false, type: Boolean, default: false + }, + // Collapse newlines + collapse: { + required: false, + type: Boolean, + default: false } }, // NEVER EVER TOUCH DATA INSIDE RENDER @@ -281,11 +287,20 @@ export default { const pass1 = convertHtmlToTree(html).map(processItem) const pass2 = [...pass1].reverse().map(processItemReverse).reverse() + // DO NOT USE SLOTS they cause a re-render feedback loop here. // slots updated -> rerender -> emit -> update up the tree -> rerender -> ... // at least until vue3? - const result = - { pass2 } + const result = + + { + this.collapse + ? pass2.map(x => { + if (!Array.isArray(x)) return x.replace(/\n/g, ' ') + return x.map(y => y.type === 'br' ? ' ' : y) + }) + : pass2 + } const event = { diff --git a/src/components/status_body/status_body.vue b/src/components/status_body/status_body.vue index 1291533c9..0735e8d98 100644 --- a/src/components/status_body/status_body.vue +++ b/src/components/status_body/status_body.vue @@ -38,7 +38,8 @@ v-if="!hideSubjectStatus && !(singleLine && status.summary_raw_html)" :class="{ '-single-line': singleLine }" class="text media-body" - :html="collapse ? collapsedStatus : status.raw_html" + :html="status.raw_html" + :collapse="collapse" :emoji="status.emojis" :handle-links="true" :faint="compact" From bebb3fcfa62270ee0d358febe241ebde2f4d73e3 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 19 Aug 2025 17:28:19 +0300 Subject: [PATCH 192/491] better click handler --- src/components/notification/notification.js | 25 +++++++++++++++++++ src/components/notification/notification.vue | 4 ++- src/components/status_body/status_body.js | 1 + .../status_content/status_content.js | 1 + 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/components/notification/notification.js b/src/components/notification/notification.js index 8692c6190..3edf21de7 100644 --- a/src/components/notification/notification.js +++ b/src/components/notification/notification.js @@ -42,6 +42,7 @@ library.add( const Notification = { data () { return { + selecting: false, statusExpanded: false, unmuted: false, showingApproveConfirmDialog: false, @@ -62,11 +63,35 @@ const Notification = { UserLink, ConfirmModal }, + mounted () { + document.addEventListener('selectionchange', this.onContentSelect) + }, + unmounted () { + document.removeEventListener('selectionchange', this.onContentSelect) + }, methods: { toggleStatusExpanded () { if (!this.expandable) return this.statusExpanded = !this.statusExpanded }, + onContentSelect () { + const { isCollapsed, anchorNode, offsetNode } = document.getSelection() + if (isCollapsed) { + this.selecting = false + return + } + const within = this.$refs.root.contains(anchorNode) || this.$refs.root.contains(offsetNode) + if (within) { + this.selecting = true + } else { + this.selecting = false + } + }, + onContentClick (e) { + if (!this.selecting && !e.target.closest('a') && !e.target.closest('button')) { + this.toggleStatusExpanded() + } + }, generateUserProfileLink (user) { return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames) }, diff --git a/src/components/notification/notification.vue b/src/components/notification/notification.vue index 76ede11e2..b639b9c88 100644 --- a/src/components/notification/notification.vue +++ b/src/components/notification/notification.vue @@ -1,6 +1,7 @@
diff --git a/src/components/status_body/status_body.js b/src/components/status_body/status_body.js index e89d1d173..f23055955 100644 --- a/src/components/status_body/status_body.js +++ b/src/components/status_body/status_body.js @@ -41,6 +41,7 @@ const StatusContent = { parseReadyDone: false } }, + emits: ['parseReady'], computed: { localCollapseSubjectDefault () { return this.mergedConfig.collapseMessageWithSubject diff --git a/src/components/status_content/status_content.js b/src/components/status_content/status_content.js index f61ba0d05..364123f49 100644 --- a/src/components/status_content/status_content.js +++ b/src/components/status_content/status_content.js @@ -65,6 +65,7 @@ const StatusContent = { 'controlledShowingLongSubject', 'controlledToggleShowingLongSubject' ], + emits: ['parseReady', 'mediaplay', 'mediapause'], data () { return { uncontrolledShowingTall: this.fullContent || (this.inConversation && this.focused), From b3ba505e517a70943730f5b502e11f2690171758 Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Wed, 20 Aug 2025 09:05:57 +0000 Subject: [PATCH 193/491] Update dependency chai to v5.3.1 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f689eab2e..5b50c181a 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "@vue/test-utils": "2.4.6", "autoprefixer": "10.4.21", "babel-plugin-lodash": "3.3.4", - "chai": "5.2.1", + "chai": "5.3.1", "chalk": "5.6.0", "chromedriver": "135.0.4", "connect-history-api-fallback": "2.0.0", diff --git a/yarn.lock b/yarn.lock index 85da36bf0..43aeb55f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3253,10 +3253,10 @@ chai-nightwatch@^0.5.3: dependencies: assertion-error "1.1.0" -chai@5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/chai/-/chai-5.2.1.tgz#a9502462bdc79cf90b4a0953537a9908aa638b47" - integrity sha512-5nFxhUrX0PqtyogoYOA8IPswy5sZFTOsBFl/9bNsmDLgsxYTzSZQJDPppDnZPTQbzSEm0hqGjWPzRemQCYbD6A== +chai@5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-5.3.1.tgz#f9e9a7e03f93d69e24b78d30db253780e26deb44" + integrity sha512-48af6xm9gQK8rhIcOxWwdGzIervm8BVTin+yRp9HEvU20BtVZ2lBywlIJBzwaDtvo0FvjeL7QdCADoUoqIbV3A== dependencies: assertion-error "^2.0.1" check-error "^2.1.1" From 91ab21b37be3bff6e951b726561d31815743a360 Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Wed, 20 Aug 2025 09:06:11 +0000 Subject: [PATCH 194/491] Update dependency eslint-plugin-import to v2.32.0 --- package.json | 2 +- yarn.lock | 139 ++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 104 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index f689eab2e..eff0839ef 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "vue-eslint-parser": "10.1.3", "eslint-config-standard": "17.1.0", "eslint-formatter-friendly": "7.0.0", - "eslint-plugin-import": "2.31.0", + "eslint-plugin-import": "2.32.0", "eslint-plugin-n": "17.21.3", "eslint-plugin-promise": "7.2.1", "eslint-plugin-vue": "10.4.0", diff --git a/yarn.lock b/yarn.lock index 85da36bf0..727ff3f89 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2858,24 +2858,26 @@ array-buffer-byte-length@^1.0.0, array-buffer-byte-length@^1.0.1, array-buffer-b call-bound "^1.0.3" is-array-buffer "^3.0.5" -array-includes@^3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" - integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== +array-includes@^3.1.9: + version "3.1.9" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.9.tgz#1f0ccaa08e90cdbc3eb433210f903ad0f17c3f3a" + integrity sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.4" - is-string "^1.0.7" + es-abstract "^1.24.0" + es-object-atoms "^1.1.1" + get-intrinsic "^1.3.0" + is-string "^1.1.1" + math-intrinsics "^1.1.0" array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.findlastindex@^1.2.5: +array.prototype.findlastindex@^1.2.6: version "1.2.6" resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz#cfa1065c81dcb64e34557c9b81d012f6a421c564" integrity sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ== @@ -2888,7 +2890,7 @@ array.prototype.findlastindex@^1.2.5: es-object-atoms "^1.1.1" es-shim-unscopables "^1.1.0" -array.prototype.flat@^1.3.2: +array.prototype.flat@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== @@ -2898,7 +2900,7 @@ array.prototype.flat@^1.3.2: es-abstract "^1.23.5" es-shim-unscopables "^1.0.2" -array.prototype.flatmap@^1.3.2: +array.prototype.flatmap@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== @@ -4059,6 +4061,66 @@ es-abstract@^1.23.2, es-abstract@^1.23.5, es-abstract@^1.23.9: unbox-primitive "^1.1.0" which-typed-array "^1.1.18" +es-abstract@^1.24.0: + version "1.24.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.0.tgz#c44732d2beb0acc1ed60df840869e3106e7af328" + integrity sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg== + dependencies: + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + es-set-tostringtag "^2.1.0" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.3.0" + get-proto "^1.0.1" + get-symbol-description "^1.1.0" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" + is-callable "^1.2.7" + is-data-view "^1.0.2" + is-negative-zero "^2.0.3" + is-regex "^1.2.1" + is-set "^2.0.3" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.1" + math-intrinsics "^1.1.0" + object-inspect "^1.13.4" + object-keys "^1.1.1" + object.assign "^4.1.7" + own-keys "^1.0.1" + regexp.prototype.flags "^1.5.4" + safe-array-concat "^1.1.3" + safe-push-apply "^1.0.0" + safe-regex-test "^1.1.0" + set-proto "^1.0.0" + stop-iteration-iterator "^1.1.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.19" + es-define-property@^1.0.0, es-define-property@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" @@ -4216,10 +4278,10 @@ eslint-import-resolver-node@^0.3.9: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-module-utils@^2.12.0: - version "2.12.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz#fe4cfb948d61f49203d7b08871982b65b9af0b0b" - integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== +eslint-module-utils@^2.12.1: + version "2.12.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz#f76d3220bfb83c057651359295ab5854eaad75ff" + integrity sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw== dependencies: debug "^3.2.7" @@ -4232,29 +4294,29 @@ eslint-plugin-es-x@^7.8.0: "@eslint-community/regexpp" "^4.11.0" eslint-compat-utils "^0.5.1" -eslint-plugin-import@2.31.0: - version "2.31.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz#310ce7e720ca1d9c0bb3f69adfd1c6bdd7d9e0e7" - integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== +eslint-plugin-import@2.32.0: + version "2.32.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz#602b55faa6e4caeaa5e970c198b5c00a37708980" + integrity sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA== dependencies: "@rtsao/scc" "^1.1.0" - array-includes "^3.1.8" - array.prototype.findlastindex "^1.2.5" - array.prototype.flat "^1.3.2" - array.prototype.flatmap "^1.3.2" + array-includes "^3.1.9" + array.prototype.findlastindex "^1.2.6" + array.prototype.flat "^1.3.3" + array.prototype.flatmap "^1.3.3" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.12.0" + eslint-module-utils "^2.12.1" hasown "^2.0.2" - is-core-module "^2.15.1" + is-core-module "^2.16.1" is-glob "^4.0.3" minimatch "^3.1.2" object.fromentries "^2.0.8" object.groupby "^1.0.3" - object.values "^1.2.0" + object.values "^1.2.1" semver "^6.3.1" - string.prototype.trimend "^1.0.8" + string.prototype.trimend "^1.0.9" tsconfig-paths "^3.15.0" eslint-plugin-n@17.21.3: @@ -5279,7 +5341,7 @@ is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0, is-core-module@^2.15.1, is-core-module@^2.16.0: +is-core-module@^2.13.0, is-core-module@^2.16.0, is-core-module@^2.16.1: version "2.16.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== @@ -5352,6 +5414,11 @@ is-map@^2.0.2, is-map@^2.0.3: resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + is-node-process@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-node-process/-/is-node-process-1.2.0.tgz#ea02a1b90ddb3934a19aea414e88edef7e11d134" @@ -5463,7 +5530,7 @@ is-weakmap@^2.0.2: resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== -is-weakref@^1.0.2, is-weakref@^1.1.0: +is-weakref@^1.0.2, is-weakref@^1.1.0, is-weakref@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293" integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== @@ -6196,7 +6263,7 @@ nwsapi@^2.2.12: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.20.tgz#22e53253c61e7b0e7e93cef42c891154bcca11ef" integrity sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA== -object-inspect@^1.13.3: +object-inspect@^1.13.3, object-inspect@^1.13.4: version "1.13.4" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== @@ -6245,7 +6312,7 @@ object.groupby@^1.0.3: define-properties "^1.2.1" es-abstract "^1.23.2" -object.values@^1.2.0: +object.values@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== @@ -6867,7 +6934,7 @@ regenerate@^1.4.2: resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== -regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.3: +regexp.prototype.flags@^1.5.1, regexp.prototype.flags@^1.5.3, regexp.prototype.flags@^1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== @@ -7403,7 +7470,7 @@ std-env@^3.9.0: resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.9.0.tgz#1a6f7243b339dca4c9fd55e1c7504c77ef23e8f1" integrity sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw== -stop-iteration-iterator@^1.0.0: +stop-iteration-iterator@^1.0.0, stop-iteration-iterator@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz#f481ff70a548f6124d0312c3aa14cbfa7aa542ad" integrity sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ== @@ -7456,7 +7523,7 @@ string.prototype.trim@^1.2.10: es-object-atoms "^1.0.0" has-property-descriptors "^1.0.2" -string.prototype.trimend@^1.0.8, string.prototype.trimend@^1.0.9: +string.prototype.trimend@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== @@ -8243,7 +8310,7 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.13, which-typed-array@^1.1.16, which-typed-array@^1.1.18: +which-typed-array@^1.1.13, which-typed-array@^1.1.16, which-typed-array@^1.1.18, which-typed-array@^1.1.19: version "1.1.19" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956" integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== From 4ce9a011da8eefc5c211dc8c4f726948ece2cd3e Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Wed, 20 Aug 2025 09:06:26 +0000 Subject: [PATCH 195/491] Update dependency globals to v16.3.0 --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 85da36bf0..85155f9e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4927,9 +4927,9 @@ globals@^15.11.0: integrity sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg== globals@^16.0.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-16.1.0.tgz#ee6ab147d41c64e9f2beaaaf66572d18df8e1e60" - integrity sha512-aibexHNbb/jiUSObBgpHLj+sIuUmJnYcgXBlrfsiDZ9rt4aF2TFRbyLgZ2iFQuVZ1K5Mx3FVkbKRSgKrbK3K2g== + version "16.3.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-16.3.0.tgz#66118e765ddaf9e2d880f7e17658543f93f1f667" + integrity sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ== globalthis@^1.0.4: version "1.0.4" From 0ad18d3e5eb7742e357385f04a9a58cfd61a6fdf Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Thu, 21 Aug 2025 09:05:57 +0000 Subject: [PATCH 196/491] Update vue monorepo to v3.5.19 --- package.json | 4 +- yarn.lock | 131 ++++++++++++++++++++++++++++++++++----------------- 2 files changed, 91 insertions(+), 44 deletions(-) diff --git a/package.json b/package.json index f689eab2e..4491f8148 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "url": "0.11.4", "utf8": "3.0.0", "uuid": "11.1.0", - "vue": "3.5.18", + "vue": "3.5.19", "vue-i18n": "11", "vue-router": "4.5.1", "vue-virtual-scroller": "^2.0.0-beta.7", @@ -66,7 +66,7 @@ "@vitest/ui": "^3.0.7", "@vue/babel-helper-vue-jsx-merge-props": "1.4.0", "@vue/babel-plugin-jsx": "1.5.0", - "@vue/compiler-sfc": "3.5.18", + "@vue/compiler-sfc": "3.5.19", "@vue/test-utils": "2.4.6", "autoprefixer": "10.4.21", "babel-plugin-lodash": "3.3.4", diff --git a/yarn.lock b/yarn.lock index 85da36bf0..b56e91ce4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2496,6 +2496,17 @@ estree-walker "^2.0.2" source-map-js "^1.2.1" +"@vue/compiler-core@3.5.19": + version "3.5.19" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.19.tgz#f141d35b61b55ce72c3cbb4dc9eeca3821d451aa" + integrity sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA== + dependencies: + "@babel/parser" "^7.28.3" + "@vue/shared" "3.5.19" + entities "^4.5.0" + estree-walker "^2.0.2" + source-map-js "^1.2.1" + "@vue/compiler-dom@3.5.13": version "3.5.13" resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz#bb1b8758dbc542b3658dda973b98a1c9311a8a58" @@ -2512,16 +2523,24 @@ "@vue/compiler-core" "3.5.18" "@vue/shared" "3.5.18" -"@vue/compiler-sfc@3.5.18", "@vue/compiler-sfc@^3.5.18": - version "3.5.18" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz#ba1e849561337d809937994cdaf900539542eeca" - integrity sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA== +"@vue/compiler-dom@3.5.19": + version "3.5.19" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz#fc57d9dca4987df67d6ce64dbddaac6d73f1a6ef" + integrity sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA== dependencies: - "@babel/parser" "^7.28.0" - "@vue/compiler-core" "3.5.18" - "@vue/compiler-dom" "3.5.18" - "@vue/compiler-ssr" "3.5.18" - "@vue/shared" "3.5.18" + "@vue/compiler-core" "3.5.19" + "@vue/shared" "3.5.19" + +"@vue/compiler-sfc@3.5.19": + version "3.5.19" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz#7f9792ad7de5d4be9b6a32129c75e1f6cd4da015" + integrity sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg== + dependencies: + "@babel/parser" "^7.28.3" + "@vue/compiler-core" "3.5.19" + "@vue/compiler-dom" "3.5.19" + "@vue/compiler-ssr" "3.5.19" + "@vue/shared" "3.5.19" estree-walker "^2.0.2" magic-string "^0.30.17" postcss "^8.5.6" @@ -2542,6 +2561,21 @@ postcss "^8.4.48" source-map-js "^1.2.0" +"@vue/compiler-sfc@^3.5.18": + version "3.5.18" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz#ba1e849561337d809937994cdaf900539542eeca" + integrity sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA== + dependencies: + "@babel/parser" "^7.28.0" + "@vue/compiler-core" "3.5.18" + "@vue/compiler-dom" "3.5.18" + "@vue/compiler-ssr" "3.5.18" + "@vue/shared" "3.5.18" + estree-walker "^2.0.2" + magic-string "^0.30.17" + postcss "^8.5.6" + source-map-js "^1.2.1" + "@vue/compiler-ssr@3.5.13": version "3.5.13" resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz#e771adcca6d3d000f91a4277c972a996d07f43ba" @@ -2558,6 +2592,14 @@ "@vue/compiler-dom" "3.5.18" "@vue/shared" "3.5.18" +"@vue/compiler-ssr@3.5.19": + version "3.5.19" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz#1719e7fda6d54f5696ca63d4d40281668c0e601c" + integrity sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw== + dependencies: + "@vue/compiler-dom" "3.5.19" + "@vue/shared" "3.5.19" + "@vue/devtools-api@^6.0.0-beta.11", "@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.6.4": version "6.6.4" resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343" @@ -2590,38 +2632,38 @@ dependencies: rfdc "^1.4.1" -"@vue/reactivity@3.5.18": - version "3.5.18" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.18.tgz#fe32166e3938832c54b4134e60e9b58ca7d9bdb4" - integrity sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg== +"@vue/reactivity@3.5.19": + version "3.5.19" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.19.tgz#c06f172da26e2fc74060cc490d1c3aaffc024622" + integrity sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA== dependencies: - "@vue/shared" "3.5.18" + "@vue/shared" "3.5.19" -"@vue/runtime-core@3.5.18": - version "3.5.18" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.18.tgz#9e9ae8b9491548b53d0cea2bf25746d27c52e191" - integrity sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w== +"@vue/runtime-core@3.5.19": + version "3.5.19" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.19.tgz#7af375addd88b8be0a3a90162112bb98f92a9359" + integrity sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA== dependencies: - "@vue/reactivity" "3.5.18" - "@vue/shared" "3.5.18" + "@vue/reactivity" "3.5.19" + "@vue/shared" "3.5.19" -"@vue/runtime-dom@3.5.18": - version "3.5.18" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.18.tgz#1150952d1048b5822e4f1dd8aed24665cbb22107" - integrity sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw== +"@vue/runtime-dom@3.5.19": + version "3.5.19" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.19.tgz#b8cb4101778a306bdb64b5faba539a90ecce712c" + integrity sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ== dependencies: - "@vue/reactivity" "3.5.18" - "@vue/runtime-core" "3.5.18" - "@vue/shared" "3.5.18" + "@vue/reactivity" "3.5.19" + "@vue/runtime-core" "3.5.19" + "@vue/shared" "3.5.19" csstype "^3.1.3" -"@vue/server-renderer@3.5.18": - version "3.5.18" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.18.tgz#e9fa267b95b3a1d8cddca762377e5de2ae9122bd" - integrity sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA== +"@vue/server-renderer@3.5.19": + version "3.5.19" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.19.tgz#68269701e73640ec0b861fcaff5cc77331d245e9" + integrity sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg== dependencies: - "@vue/compiler-ssr" "3.5.18" - "@vue/shared" "3.5.18" + "@vue/compiler-ssr" "3.5.19" + "@vue/shared" "3.5.19" "@vue/shared@3.5.13", "@vue/shared@^3.5.13": version "3.5.13" @@ -2633,6 +2675,11 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.18.tgz#529f24a88d3ed678d50fd5c07455841fbe8ac95e" integrity sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA== +"@vue/shared@3.5.19": + version "3.5.19" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.19.tgz#5301967a910cb62145e4f17131f3bee88b463c83" + integrity sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q== + "@vue/test-utils@2.4.6": version "2.4.6" resolved "https://registry.yarnpkg.com/@vue/test-utils/-/test-utils-2.4.6.tgz#7d534e70c4319d2a587d6a3b45a39e9695ade03c" @@ -8141,16 +8188,16 @@ vue-virtual-scroller@^2.0.0-beta.7: vue-observe-visibility "^2.0.0-alpha.1" vue-resize "^2.0.0-alpha.1" -vue@3.5.18: - version "3.5.18" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.18.tgz#3d622425ad1391a2b0138323211ec784f4415686" - integrity sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA== +vue@3.5.19: + version "3.5.19" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.19.tgz#973ba643a331bd35578eec2a27fa115f500eb25b" + integrity sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg== dependencies: - "@vue/compiler-dom" "3.5.18" - "@vue/compiler-sfc" "3.5.18" - "@vue/runtime-dom" "3.5.18" - "@vue/server-renderer" "3.5.18" - "@vue/shared" "3.5.18" + "@vue/compiler-dom" "3.5.19" + "@vue/compiler-sfc" "3.5.19" + "@vue/runtime-dom" "3.5.19" + "@vue/server-renderer" "3.5.19" + "@vue/shared" "3.5.19" vuex@4.1.0: version "4.1.0" From 0b9547b289f35f06141bf06f6da6000e21da67b2 Mon Sep 17 00:00:00 2001 From: Pleroma Renovate Bot Date: Thu, 21 Aug 2025 09:06:13 +0000 Subject: [PATCH 197/491] Update dependency phoenix to v1.8.0 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f689eab2e..d8619d386 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "js-cookie": "3.0.5", "localforage": "1.10.0", "parse-link-header": "2.0.0", - "phoenix": "1.7.21", + "phoenix": "1.8.0", "pinia": "^3.0.0", "punycode.js": "2.3.1", "qrcode": "1.5.4", diff --git a/yarn.lock b/yarn.lock index 85da36bf0..6ef36b6de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6507,10 +6507,10 @@ perfect-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== -phoenix@1.7.21: - version "1.7.21" - resolved "https://registry.yarnpkg.com/phoenix/-/phoenix-1.7.21.tgz#b1ff7d21f5bd8ceee35953f3ca3921e31d15d88a" - integrity sha512-8wOvJ8pQXRxNbyFlMI+wQhK3bvX4Ps3FtUX2+0cV6lkcebe9VTIl+xS60FLAeaPieFg80djor5z/AKofnwqAUw== +phoenix@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/phoenix/-/phoenix-1.8.0.tgz#b651a3f4c45531acf181b53158d412bf330ecb0f" + integrity sha512-hRBoaOuxQIGrN/JPbCYjC5Xkdz83sbkzBLT41lSROsQmkFUyE+w3ElhwaW4z/i2nkPtrLYoXyVunvntE6Zm1DA== picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" From 528cc9f388c1abb893152c89a1113b1e1210c635 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Thu, 21 Aug 2025 17:20:33 +0300 Subject: [PATCH 198/491] fix emoji vertical alignment when using stealer --- src/components/rich_content/rich_content.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/components/rich_content/rich_content.scss b/src/components/rich_content/rich_content.scss index 6b70d1356..400b553ce 100644 --- a/src/components/rich_content/rich_content.scss +++ b/src/components/rich_content/rich_content.scss @@ -78,6 +78,11 @@ max-height: 400px; vertical-align: middle; object-fit: contain; + + // fix vertical alignment of stealable emoji + button { + display: inline-flex; + } } .greentext { From 8f320faa2d45d16427b61ba7366ba50f39991566 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Thu, 21 Aug 2025 17:33:57 +0300 Subject: [PATCH 199/491] lint --- src/components/notification/notification.vue | 4 ++-- .../settings_modal/helpers/emoji_editing_popover.vue | 5 ++++- .../settings_modal/tabs/theme_tab/theme_preview.vue | 10 ++++++++-- src/components/status_content/status_content.vue | 5 ++++- .../still-image/still-image-emoji-popover.vue | 2 +- .../user_reporting_modal/user_reporting_modal.vue | 5 ++++- 6 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/components/notification/notification.vue b/src/components/notification/notification.vue index 118c1ba0e..7165289dc 100644 --- a/src/components/notification/notification.vue +++ b/src/components/notification/notification.vue @@ -11,10 +11,10 @@ />
-
+

{{ $t('admin_dash.emoji.emoji_source') }}

diff --git a/src/components/settings_modal/tabs/theme_tab/theme_preview.vue b/src/components/settings_modal/tabs/theme_tab/theme_preview.vue index 016d84c49..df2d9f9e9 100644 --- a/src/components/settings_modal/tabs/theme_tab/theme_preview.vue +++ b/src/components/settings_modal/tabs/theme_tab/theme_preview.vue @@ -21,7 +21,10 @@
-