Compare commits

...

16 commits

Author SHA1 Message Date
Henry Jameson
83e3a6c628 Merge branch 'fixes-roundup4' into shigusegubu-themes3 2025-02-18 22:40:41 +02:00
Henry Jameson
8912664ab3 remove useAtIcon since pretty much everyone hated that and it outlived its usefulness 2025-02-18 22:37:45 +02:00
Henry Jameson
bcc9d9b851 fix sass warnings 2025-02-18 22:31:33 +02:00
Henry Jameson
97c9b6e25d fix and improve tests 2025-02-18 18:30:08 +02:00
Henry Jameson
f7f09f0dbc attachment buttons 2025-02-18 00:07:45 +02:00
Henry Jameson
bcea217705 fix status pinning 2025-02-17 23:57:36 +02:00
Henry Jameson
4e130375a7 fix http-proxy-middleware 2025-02-17 23:56:33 +02:00
Henry Jameson
74fe330e4a Merge remote-tracking branch 'origin/develop' into fixes-roundup4 2025-02-17 23:38:24 +02:00
HJ
bf2101124d Merge branch 'renovate/postcss-8.x' into 'develop'
Update dependency postcss to v8.5.2

See merge request pleroma/pleroma-fe!2042
2025-02-11 09:50:33 +00:00
HJ
7ade2bf1b5 Merge branch 'renovate/babel-monorepo' into 'develop'
Update babel monorepo to v7.26.8

See merge request pleroma/pleroma-fe!2041
2025-02-11 09:50:19 +00:00
HJ
aadf86dee6 Merge branch 'renovate/http-proxy-middleware-3.x' into 'develop'
Update dependency http-proxy-middleware to v3

See merge request pleroma/pleroma-fe!2036
2025-02-11 09:50:09 +00:00
HJ
2a1a4d63a1 Merge branch 'renovate/eslint-plugin-n-17.x' into 'develop'
Update dependency eslint-plugin-n to v17

See merge request pleroma/pleroma-fe!2033
2025-02-11 09:50:02 +00:00
Pleroma Renovate Bot
8fe85e75d1 Update dependency http-proxy-middleware to v3 2025-02-11 08:52:32 +00:00
Pleroma Renovate Bot
78a5377e77 Update dependency eslint-plugin-n to v17 2025-02-11 08:52:18 +00:00
Pleroma Renovate Bot
e7c8e77a7f Update dependency postcss to v8.5.2 2025-02-11 08:52:02 +00:00
Pleroma Renovate Bot
7bfee03530 Update babel monorepo to v7.26.8 2025-02-11 08:51:29 +00:00
24 changed files with 470 additions and 462 deletions

View file

@ -53,7 +53,8 @@ Object.keys(proxyTable).forEach(function (context) {
if (typeof options === 'string') { if (typeof options === 'string') {
options = { target: options } options = { target: options }
} }
app.use(proxyMiddleware.createProxyMiddleware(context, options)) options.pathFilter = context
app.use(proxyMiddleware.createProxyMiddleware(options))
}) })
// handle fallback for HTML5 history API // handle fallback for HTML5 history API

View file

@ -51,10 +51,10 @@
"vuex": "4.1.0" "vuex": "4.1.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.26.7", "@babel/core": "7.26.8",
"@babel/eslint-parser": "7.26.5", "@babel/eslint-parser": "7.26.8",
"@babel/plugin-transform-runtime": "7.25.9", "@babel/plugin-transform-runtime": "7.26.8",
"@babel/preset-env": "7.26.7", "@babel/preset-env": "7.26.8",
"@babel/register": "7.25.9", "@babel/register": "7.25.9",
"@intlify/vue-i18n-loader": "5.0.1", "@intlify/vue-i18n-loader": "5.0.1",
"@ungap/event-target": "0.2.4", "@ungap/event-target": "0.2.4",
@ -78,7 +78,7 @@
"eslint-config-standard": "17.1.0", "eslint-config-standard": "17.1.0",
"eslint-formatter-friendly": "7.0.0", "eslint-formatter-friendly": "7.0.0",
"eslint-plugin-import": "2.31.0", "eslint-plugin-import": "2.31.0",
"eslint-plugin-n": "15.7.0", "eslint-plugin-n": "17.15.1",
"eslint-plugin-promise": "7.2.1", "eslint-plugin-promise": "7.2.1",
"eslint-plugin-vue": "9.32.0", "eslint-plugin-vue": "9.32.0",
"eslint-webpack-plugin": "4.2.0", "eslint-webpack-plugin": "4.2.0",
@ -86,7 +86,7 @@
"express": "4.21.2", "express": "4.21.2",
"function-bind": "1.1.2", "function-bind": "1.1.2",
"html-webpack-plugin": "5.6.3", "html-webpack-plugin": "5.6.3",
"http-proxy-middleware": "2.0.7", "http-proxy-middleware": "3.0.3",
"iso-639-1": "3.1.5", "iso-639-1": "3.1.5",
"json-loader": "0.5.7", "json-loader": "0.5.7",
"karma": "6.4.4", "karma": "6.4.4",
@ -104,7 +104,7 @@
"nightwatch": "2.6.25", "nightwatch": "2.6.25",
"opn": "5.5.0", "opn": "5.5.0",
"ora": "0.4.1", "ora": "0.4.1",
"postcss": "8.5.1", "postcss": "8.5.2",
"postcss-html": "^1.5.0", "postcss-html": "^1.5.0",
"postcss-loader": "7.3.4", "postcss-loader": "7.3.4",
"postcss-scss": "^4.0.6", "postcss-scss": "^4.0.6",

View file

@ -1,6 +1,6 @@
// stylelint-disable rscss/class-format // stylelint-disable rscss/class-format
/* stylelint-disable no-descending-specificity */ /* stylelint-disable no-descending-specificity */
@import "./panel"; @use "panel";
:root { :root {
--status-margin: 0.75em; --status-margin: 0.75em;

View file

@ -4,7 +4,7 @@ export default {
notEditable: true, notEditable: true,
validInnerComponents: [ validInnerComponents: [
'Border', 'Border',
'ButtonUnstyled', 'Button',
'Input' 'Input'
], ],
defaultRules: [ defaultRules: [
@ -14,7 +14,7 @@ export default {
} }
}, },
{ {
component: 'ButtonUnstyled', component: 'Button',
parent: { component: 'Attachment' }, parent: { component: 'Attachment' },
directives: { directives: {
background: '#FFFFFF', background: '#FFFFFF',

View file

@ -1,7 +1,7 @@
<template> <template>
<button <button
v-if="usePlaceholder" v-if="usePlaceholder"
class="Attachment -placeholder button-unstyled" class="Attachment -placeholder button-default"
:class="classNames" :class="classNames"
@click="openModal" @click="openModal"
> >
@ -23,7 +23,7 @@
> >
<button <button
v-if="remove" v-if="remove"
class="button-unstyled attachment-button" class="button-default attachment-button"
@click.prevent="onRemove" @click.prevent="onRemove"
> >
<FAIcon icon="trash-alt" /> <FAIcon icon="trash-alt" />
@ -81,7 +81,7 @@
> >
<button <button
v-if="type === 'flash' && flashLoaded" v-if="type === 'flash' && flashLoaded"
class="button-unstyled attachment-button" class="button-default attachment-button"
:title="$t('status.attachment_stop_flash')" :title="$t('status.attachment_stop_flash')"
@click.prevent="stopFlash" @click.prevent="stopFlash"
> >
@ -89,7 +89,7 @@
</button> </button>
<button <button
v-if="attachment.description && size !== 'small' && !edit && type !== 'unknown'" v-if="attachment.description && size !== 'small' && !edit && type !== 'unknown'"
class="button-unstyled attachment-button" class="button-default attachment-button"
:title="$t('status.show_attachment_description')" :title="$t('status.show_attachment_description')"
@click.prevent="toggleDescription" @click.prevent="toggleDescription"
> >
@ -97,7 +97,7 @@
</button> </button>
<button <button
v-if="!useModal && type !== 'unknown'" v-if="!useModal && type !== 'unknown'"
class="button-unstyled attachment-button" class="button-default attachment-button"
:title="$t('status.show_attachment_in_modal')" :title="$t('status.show_attachment_in_modal')"
@click.prevent="openModalForce" @click.prevent="openModalForce"
> >
@ -105,7 +105,7 @@
</button> </button>
<button <button
v-if="nsfw && hideNsfwLocal" v-if="nsfw && hideNsfwLocal"
class="button-unstyled attachment-button" class="button-default attachment-button"
:title="$t('status.hide_attachment')" :title="$t('status.hide_attachment')"
@click.prevent="toggleHidden" @click.prevent="toggleHidden"
> >
@ -113,7 +113,7 @@
</button> </button>
<button <button
v-if="shiftUp" v-if="shiftUp"
class="button-unstyled attachment-button" class="button-default attachment-button"
:title="$t('status.move_up')" :title="$t('status.move_up')"
@click.prevent="onShiftUp" @click.prevent="onShiftUp"
> >
@ -121,7 +121,7 @@
</button> </button>
<button <button
v-if="shiftDn" v-if="shiftDn"
class="button-unstyled attachment-button" class="button-default attachment-button"
:title="$t('status.move_down')" :title="$t('status.move_down')"
@click.prevent="onShiftDn" @click.prevent="onShiftDn"
> >
@ -129,7 +129,7 @@
</button> </button>
<button <button
v-if="remove" v-if="remove"
class="button-unstyled attachment-button" class="button-default attachment-button"
:title="$t('status.remove_attachment')" :title="$t('status.remove_attachment')"
@click.prevent="onRemove" @click.prevent="onRemove"
> >

View file

@ -95,6 +95,4 @@
</template> </template>
<script src="./chat.js"></script> <script src="./chat.js"></script>
<style lang="scss"> <style src="./chat.scss" lang="scss" />
@import "./chat";
</style>

View file

@ -47,6 +47,4 @@
<script src="./chat_list_item.js"></script> <script src="./chat_list_item.js"></script>
<style lang="scss"> <style src="./chat_list_item.scss" lang="scss" />
@import "./chat_list_item";
</style>

View file

@ -98,7 +98,5 @@
</template> </template>
<script src="./chat_message.js"></script> <script src="./chat_message.js"></script>
<style lang="scss">
@import "./chat_message";
</style> <style src="./chat_message.scss" lang="scss" />

View file

@ -47,6 +47,5 @@
</template> </template>
<script src="./chat_new.js"></script> <script src="./chat_new.js"></script>
<style lang="scss">
@import "./chat_new"; <style src="./chat_new.scss" lang="scss" />
</style>

View file

@ -63,8 +63,6 @@ export default {
</script> </script>
<style lang="scss"> <style lang="scss">
@import "../../mixins";
.checkbox { .checkbox {
position: relative; position: relative;
display: inline-block; display: inline-block;

View file

@ -0,0 +1,121 @@
@use "../../mixins";
.EmojiReactions {
display: flex;
margin-top: 0.25em;
flex-wrap: wrap;
--emoji-size: calc(var(--emojiSize, 1.25em) * var(--emojiReactionsScale, 1));
.emoji-reaction-container {
display: flex;
align-items: stretch;
margin-top: 0.5em;
margin-right: 0.5em;
.emoji-reaction-popover {
padding: 0;
.emoji-reaction-count-button {
margin: 0;
height: 100%;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
box-sizing: border-box;
min-width: 2em;
display: inline-flex;
justify-content: center;
align-items: center;
}
}
}
.emoji-reaction {
padding-left: 0.5em;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
margin: 0;
.reaction-emoji {
width: var(--emoji-size);
height: var(--emoji-size);
margin-right: 0.25em;
line-height: var(--emoji-size);
display: flex;
justify-content: center;
align-items: center;
--_still_image-label-scale: 0.3;
}
.reaction-emoji-content {
max-width: 100%;
max-height: 100%;
width: var(--emoji-size);
height: var(--emoji-size);
line-height: inherit;
overflow: hidden;
font-size: calc(var(--emoji-size) * 0.8);
margin: 0;
img {
object-fit: contain;
}
}
&:focus {
outline: none;
}
.svg-inline--fa {
color: var(--text);
}
&.-picked-reaction {
.svg-inline--fa {
color: var(--accent);
}
}
@include mixins.unfocused-style {
.focus-marker {
visibility: hidden;
}
.active-marker {
visibility: visible;
}
}
@include mixins.focused-style {
.svg-inline--fa {
color: var(--accent);
}
.focus-marker {
visibility: visible;
}
.active-marker {
visibility: hidden;
}
}
}
.emoji-reaction-expand {
padding: 0 0.5em;
margin-right: 0.5em;
margin-top: 0.5em;
display: flex;
align-items: center;
justify-content: center;
&:hover {
text-decoration: underline;
}
}
}

View file

@ -70,126 +70,5 @@
</template> </template>
<script src="./emoji_reactions.js"></script> <script src="./emoji_reactions.js"></script>
<style lang="scss">
@import "../../mixins";
.EmojiReactions { <style src="./emoji_reactions.scss" lang="scss" />
display: flex;
margin-top: 0.25em;
flex-wrap: wrap;
--emoji-size: calc(var(--emojiSize, 1.25em) * var(--emojiReactionsScale, 1));
.emoji-reaction-container {
display: flex;
align-items: stretch;
margin-top: 0.5em;
margin-right: 0.5em;
.emoji-reaction-popover {
padding: 0;
.emoji-reaction-count-button {
margin: 0;
height: 100%;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
box-sizing: border-box;
min-width: 2em;
display: inline-flex;
justify-content: center;
align-items: center;
}
}
}
.emoji-reaction {
padding-left: 0.5em;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
margin: 0;
.reaction-emoji {
width: var(--emoji-size);
height: var(--emoji-size);
margin-right: 0.25em;
line-height: var(--emoji-size);
display: flex;
justify-content: center;
align-items: center;
--_still_image-label-scale: 0.3;
}
.reaction-emoji-content {
max-width: 100%;
max-height: 100%;
width: var(--emoji-size);
height: var(--emoji-size);
line-height: inherit;
overflow: hidden;
font-size: calc(var(--emoji-size) * 0.8);
margin: 0;
img {
object-fit: contain;
}
}
&:focus {
outline: none;
}
.svg-inline--fa {
color: var(--text);
}
&.-picked-reaction {
.svg-inline--fa {
color: var(--accent);
}
}
@include unfocused-style {
.focus-marker {
visibility: hidden;
}
.active-marker {
visibility: visible;
}
}
@include focused-style {
.svg-inline--fa {
color: var(--accent);
}
.focus-marker {
visibility: visible;
}
.active-marker {
visibility: hidden;
}
}
}
.emoji-reaction-expand {
padding: 0 0.5em;
margin-right: 0.5em;
margin-top: 0.5em;
display: flex;
align-items: center;
justify-content: center;
&:hover {
text-decoration: underline;
}
}
}
</style>

View file

@ -117,9 +117,6 @@ const MentionLink = {
this.highlightType this.highlightType
] ]
}, },
useAtIcon () {
return this.mergedConfig.useAtIcon
},
isRemote () { isRemote () {
return this.userName !== this.userNameFull return this.userName !== this.userNameFull
}, },

View file

@ -34,12 +34,7 @@
:user="user" :user="user"
/><span /><span
class="shortName" class="shortName"
><FAIcon >@<span
v-if="useAtIcon"
size="sm"
icon="at"
class="at"
/>{{ !useAtIcon ? '@' : '' }}<span
class="userName" class="userName"
v-html="userName" v-html="userName"
/><span /><span

View file

@ -238,6 +238,4 @@
<script src="./mrf_transparency_panel.js"></script> <script src="./mrf_transparency_panel.js"></script>
<style lang="scss"> <style src="./mrf_transparency_panel.scss" lang="scss"/>
@import "./mrf_transparency_panel";
</style>

View file

@ -365,14 +365,6 @@
{{ $t('settings.mention_link_use_tooltip') }} {{ $t('settings.mention_link_use_tooltip') }}
</BooleanSetting> </BooleanSetting>
</li> </li>
<li>
<BooleanSetting
path="useAtIcon"
expert="1"
>
{{ $t('settings.use_at_icon') }}
</BooleanSetting>
</li>
<li> <li>
<BooleanSetting path="mentionLinkShowAvatar"> <BooleanSetting path="mentionLinkShowAvatar">
{{ $t('settings.mention_link_show_avatar') }} {{ $t('settings.mention_link_show_avatar') }}

View file

@ -1,4 +1,4 @@
@import "../../mixins"; @use "../../mixins";
/* stylelint-disable declaration-no-important */ /* stylelint-disable declaration-no-important */
.quick-action { .quick-action {
@ -52,7 +52,7 @@
grid-auto-columns: max-content; grid-auto-columns: max-content;
align-items: center; align-items: center;
@include unfocused-style { @include mixins.unfocused-style {
.focus-marker { .focus-marker {
visibility: hidden; visibility: hidden;
} }
@ -62,7 +62,7 @@
} }
} }
@include focused-style { @include mixins.focused-style {
.focus-marker { .focus-marker {
visibility: visible; visibility: visible;
} }

View file

@ -112,9 +112,9 @@ export const BUTTONS = [{
}, },
action ({ status, dispatch }) { action ({ status, dispatch }) {
if (status.pinned) { if (status.pinned) {
return dispatch('unpinStatus', { id: status.id }) return dispatch('unpinStatus', status.id)
} else { } else {
return dispatch('pinStatus', { id: status.id }) return dispatch('pinStatus', status.id)
} }
} }
}, { }, {

View file

@ -1,4 +1,4 @@
@import "../../mixins"; @use "../../mixins";
.StatusActionButtons { .StatusActionButtons {
.quick-action-buttons { .quick-action-buttons {

View file

@ -129,7 +129,6 @@ export const defaultState = {
forcedRoundness: undefined, // instance default forcedRoundness: undefined, // instance default
navbarColumnStretch: false, navbarColumnStretch: false,
greentext: undefined, // instance default greentext: undefined, // instance default
useAtIcon: undefined, // instance default
mentionLinkDisplay: undefined, // instance default mentionLinkDisplay: undefined, // instance default
mentionLinkShowTooltip: undefined, // instance default mentionLinkShowTooltip: undefined, // instance default
mentionLinkShowAvatar: undefined, // instance default mentionLinkShowAvatar: undefined, // instance default

View file

@ -57,7 +57,6 @@ const defaultState = {
embeddedToS: true, embeddedToS: true,
collapseMessageWithSubject: false, collapseMessageWithSubject: false,
greentext: false, greentext: false,
useAtIcon: false,
mentionLinkDisplay: 'short', mentionLinkDisplay: 'short',
mentionLinkShowTooltip: true, mentionLinkShowTooltip: true,
mentionLinkShowAvatar: false, mentionLinkShowAvatar: false,

View file

@ -33,9 +33,11 @@ const components = {
Icon: null, Icon: null,
Border: null, Border: null,
PanelHeader: null, PanelHeader: null,
Attachment: null,
Panel: null, Panel: null,
Chat: null, Chat: null,
ChatMessage: null ChatMessage: null,
Button: null
} }
export const findShadow = (shadows, { dynamicVars, staticVars }) => { export const findShadow = (shadows, { dynamicVars, staticVars }) => {
@ -152,13 +154,13 @@ componentsContext.keys().forEach(key => {
} }
components[component.name] = component components[component.name] = component
}) })
Object.keys(components).forEach(key => { Object.keys(components).forEach(key => {
if (key === 'Root') return if (key === 'Root') return
components.Root.validInnerComponents = components.Root.validInnerComponents || [] components.Root.validInnerComponents = components.Root.validInnerComponents || []
components.Root.validInnerComponents.push(key) components.Root.validInnerComponents.push(key)
}) })
Object.keys(components).forEach(key => { Object.keys(components).forEach(key => {
const component = components[key] const component = components[key]
const { validInnerComponents = [] } = component const { validInnerComponents = [] } = component
@ -569,6 +571,7 @@ export const init = ({
} }
if ( if (
!liteMode &&
parent?.component !== 'Root' && parent?.component !== 'Root' &&
!virtualComponents.has(component.name) && !virtualComponents.has(component.name) &&
!transparentComponents.has(component.name) && !transparentComponents.has(component.name) &&

View file

@ -1,4 +1,3 @@
// import { topoSort } from 'src/services/theme_data/theme_data.service.js'
import { import {
getAllPossibleCombinations getAllPossibleCombinations
} from 'src/services/theme_data/iss_utils.js' } from 'src/services/theme_data/iss_utils.js'
@ -120,6 +119,7 @@ describe('Theme Data 3', () => {
opacity: 0.5 opacity: 0.5
} }
}], }],
onlyNormalState: true,
ultimateBackgroundColor: '#DEADAF' ultimateBackgroundColor: '#DEADAF'
}) })
@ -142,9 +142,9 @@ describe('Theme Data 3', () => {
*/ */
expect(panelRule).to.have.nested.deep.property('dynamicVars.stacked.r').that.is.closeTo(88.8, 0.01) expect(panelRule).to.have.nested.deep.property('dynamicVars.stacked.r').that.is.closeTo(111, 0.01)
expect(panelRule).to.have.nested.deep.property('dynamicVars.stacked.g').that.is.closeTo(133.2, 0.01) expect(panelRule).to.have.nested.deep.property('dynamicVars.stacked.g').that.is.closeTo(150.5, 0.01)
expect(panelRule).to.have.nested.deep.property('dynamicVars.stacked.b').that.is.closeTo(134, 0.01) expect(panelRule).to.have.nested.deep.property('dynamicVars.stacked.b').that.is.closeTo(151.5, 0.01)
}) })
}) })
}) })

577
yarn.lock

File diff suppressed because it is too large Load diff