diff --git a/package.json b/package.json index fa08593f0..403a2b231 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,6 @@ "hash-sum": "^2.0.0", "js-cookie": "3.0.5", "localforage": "1.10.0", - "pako": "^2.1.0", "parse-link-header": "2.0.0", "phoenix": "1.7.7", "punycode.js": "2.3.0", diff --git a/src/components/attachment/attachment.style.js b/src/components/attachment/attachment.style.js index fde8a50a6..5fb4701c3 100644 --- a/src/components/attachment/attachment.style.js +++ b/src/components/attachment/attachment.style.js @@ -1,7 +1,6 @@ export default { name: 'Attachment', selector: '.Attachment', - notEditable: true, validInnerComponents: [ 'Border', 'ButtonUnstyled', diff --git a/src/components/palette_editor/palette_editor.vue b/src/components/palette_editor/palette_editor.vue index be5dee448..9dd8d8683 100644 --- a/src/components/palette_editor/palette_editor.vue +++ b/src/components/palette_editor/palette_editor.vue @@ -1,8 +1,5 @@ @@ -53,34 +43,12 @@ library.add( faFileExport ) -const paletteKeys = [ - 'bg', - 'fg', - 'text', - 'link', - 'accent', - 'cRed', - 'cBlue', - 'cGreen', - 'cOrange', - 'wallpaper' -] - -const props = defineProps(['modelValue', 'compact', 'apply']) -const emit = defineEmits(['update:modelValue', 'applyPalette']) -const getExportedObject = () => paletteKeys.reduce((acc, key) => { - const value = props.modelValue[key] - if (value == null) { - return acc - } else { - return { ...acc, [key]: props.modelValue[key] } - } -}, {}) - +const props = defineProps(['modelValue']) +const emit = defineEmits(['update:modelValue']) const paletteExporter = newExporter({ filename: 'pleroma_palette', extension: 'json', - getExportedObject + getExportedObject: () => props.modelValue }) const paletteImporter = newImporter({ accept: '.json', @@ -97,9 +65,18 @@ const importPalette = () => { paletteImporter.importData() } -const applyPalette = (data) => { - emit('applyPalette', getExportedObject()) -} +const paletteKeys = [ + 'bg', + 'fg', + 'text', + 'link', + 'accent', + 'cRed', + 'cBlue', + 'cGreen', + 'cOrange', + 'wallpaper' +] const fallback = (key) => { if (key === 'accent') { @@ -141,33 +118,8 @@ const updatePalette = (paletteKey, value) => { grid-column: 3 / span 2; } - .palette-apply-button { - grid-column: 1 / span 2; - } - .color-input.style-control { margin: 0; } - - &.-compact { - grid-template-columns: repeat(2, 1fr); - grid-template-rows: repeat(5, 1fr) auto; - - .palette-import-button { - grid-column: 1; - } - - .palette-export-button { - grid-column: 2; - } - - &.-apply { - grid-template-rows: repeat(5, 1fr) auto auto; - - .palette-apply-button { - grid-column: 1 / span 2; - } - } - } } diff --git a/src/components/rich_content/rich_content.style.js b/src/components/rich_content/rich_content.style.js index d9cd17aee..c83140003 100644 --- a/src/components/rich_content/rich_content.style.js +++ b/src/components/rich_content/rich_content.style.js @@ -1,7 +1,6 @@ export default { name: 'RichContent', selector: '.RichContent', - notEditable: true, validInnerComponents: [ 'Text', 'FunText', diff --git a/src/components/settings_modal/settings_modal_user_content.scss b/src/components/settings_modal/settings_modal_user_content.scss index b7e258fda..74172c82c 100644 --- a/src/components/settings_modal/settings_modal_user_content.scss +++ b/src/components/settings_modal/settings_modal_user_content.scss @@ -1,21 +1,6 @@ .settings_tab-switcher { height: 100%; - h1 { - margin-bottom: 0.5em; - margin-top: 0.5em; - } - - h4 { - margin-bottom: 0; - margin-top: 0.25em; - } - - h5 { - margin-bottom: 0; - margin-top: 0.25em; - } - .setting-item { border-bottom: 2px solid var(--border); margin: 1em 1em 1.4em; diff --git a/src/components/settings_modal/tabs/appearance_tab.js b/src/components/settings_modal/tabs/appearance_tab.js index b4b401574..1e8f596f2 100644 --- a/src/components/settings_modal/tabs/appearance_tab.js +++ b/src/components/settings_modal/tabs/appearance_tab.js @@ -3,7 +3,6 @@ import ChoiceSetting from '../helpers/choice_setting.vue' import IntegerSetting from '../helpers/integer_setting.vue' import FloatSetting from '../helpers/float_setting.vue' import UnitSetting, { defaultHorizontalUnits } from '../helpers/unit_setting.vue' -import PaletteEditor from 'src/components/palette_editor/palette_editor.vue' import FontControl from 'src/components/font_control/font_control.vue' @@ -51,7 +50,6 @@ const AppearanceTab = { 'cBlue', 'cOrange' ], - userPalette: {}, intersectionObserver: null, thirdColumnModeOptions: ['none', 'notifications', 'postform'].map(mode => ({ key: mode, @@ -78,8 +76,7 @@ const AppearanceTab = { UnitSetting, ProfileSettingIndicator, FontControl, - Preview, - PaletteEditor + Preview }, mounted () { const updateIndex = (resource) => { @@ -108,7 +105,6 @@ const AppearanceTab = { updateIndex('palette').then(bundledPalettes => { bundledPalettes.forEach(([key, palettePromise]) => palettePromise.then(v => { - let palette if (Array.isArray(v)) { const [ name, @@ -121,15 +117,9 @@ const AppearanceTab = { cBlue = '#0000FF', cOrange = '#E3FF00' ] = v - palette = { key, name, bg, fg, text, link, cRed, cBlue, cGreen, cOrange } - this.bundledPalettes.push() + this.bundledPalettes.push({ key, name, bg, fg, text, link, cRed, cBlue, cGreen, cOrange }) } else { - palette = { key, ...v } - } - this.bundledPalettes.push(palette) - - if (this.isPaletteActive(key)) { - this.userPalette = palette + this.bundledPalettes.push({ key, ...v }) } })) }) @@ -293,21 +283,30 @@ const AppearanceTab = { return key === palette }, setStyle (name) { + this.$store.dispatch('resetThemeV2') this.$store.dispatch('setTheme', name) + this.$store.dispatch('applyTheme') }, setTheme (name) { + this.$store.dispatch('resetThemeV3') this.$store.dispatch('setTheme', name) + this.$store.dispatch('applyTheme') }, - setPalette (name, data) { + setPalette (name) { + this.$store.dispatch('resetThemeV2') this.$store.dispatch('setPalette', name) - this.userPalette = data + this.$store.dispatch('applyTheme') }, - setPaletteCustom (data) { - this.$store.dispatch('setPaletteCustom', data) - this.userPalette = data + setPaletteCustom (p) { + this.$store.dispatch('resetThemeV2') + this.$store.dispatch('setPaletteCustom', p) + this.$store.dispatch('applyTheme') }, resetTheming (name) { + this.$store.dispatch('resetThemeV2') + this.$store.dispatch('resetThemeV3') this.$store.dispatch('setStyle', 'stock') + this.$store.dispatch('applyTheme') }, previewTheme (key, input) { let theme3 diff --git a/src/components/settings_modal/tabs/appearance_tab.scss b/src/components/settings_modal/tabs/appearance_tab.scss index ede4b3424..c78b4accc 100644 --- a/src/components/settings_modal/tabs/appearance_tab.scss +++ b/src/components/settings_modal/tabs/appearance_tab.scss @@ -26,8 +26,7 @@ grid-gap: 0.5em; h4, - .unsupported-theme-v2, - .userPalette { + .unsupported-theme-v2 { grid-column: 1 / span 2; } } @@ -72,7 +71,6 @@ border-radius: var(--roundness); border: 1px solid var(--border); padding: 0; - margin-bottom: 1em; .theme-preview { font-size: 1rem; // fix for firefox diff --git a/src/components/settings_modal/tabs/appearance_tab.vue b/src/components/settings_modal/tabs/appearance_tab.vue index 6ec84eb28..1b43a690b 100644 --- a/src/components/settings_modal/tabs/appearance_tab.vue +++ b/src/components/settings_modal/tabs/appearance_tab.vue @@ -3,8 +3,17 @@ class="appearance-tab" :label="$t('settings.general')" > -
+

{{ $t('settings.theme') }}

+ +
+
-
- -
-
-

{{ $t('settings.style.themes3.palette.label') }}

-
- +
+
+ {{ $t("settings.style.appearance_tab_note") }} +

{{ $t('settings.scale_and_layout') }}

-
- {{ $t("settings.style.appearance_tab_note") }} -
  • { - const tabSwitcher = getCurrentInstance().parent.ctx - console.log('TABSW', tabSwitcher) - return tabSwitcher ? tabSwitcher.isActive('style') : false - }) - // ## Meta stuff exports.name = ref('') exports.author = ref('') @@ -380,7 +374,7 @@ export default { exports.editedOpacity = getEditedElement(null, 'opacity') exports.isOpacityPresent = isElementPresent(null, 'opacity', 1) exports.editedRoundness = getEditedElement(null, 'roundness') - exports.isRoundnessPresent = isElementPresent(null, 'roundness', '0') + exports.isRoundnessPresent = isElementPresent(null, 'roundness', 0) exports.editedTextColor = getEditedElement('Text', 'textColor') exports.isTextColorPresent = isElementPresent('Text', 'textColor', '#000000') exports.editedTextAuto = getEditedElement('Text', 'textAuto') diff --git a/src/components/settings_modal/tabs/style_tab/style_tab.scss b/src/components/settings_modal/tabs/style_tab/style_tab.scss index a9c35c085..1f63e9c6b 100644 --- a/src/components/settings_modal/tabs/style_tab/style_tab.scss +++ b/src/components/settings_modal/tabs/style_tab/style_tab.scss @@ -48,42 +48,6 @@ } } - .meta-preview { - display: grid; - grid-template: - "meta meta preview preview" - "meta meta preview preview" - "meta meta preview preview" - "meta meta preview preview"; - grid-gap: 0.5em; - grid-template-columns: min-content min-content 6fr max-content; - - ul.setting-list { - padding: 0; - margin: 0; - display: grid; - grid-template-rows: subgrid; - grid-area: meta; - - > li { - margin: 0; - } - - .meta-field { - margin: 0; - - .setting-label { - display: inline-block; - margin-bottom: 0.5em; - } - } - } - - #edited-style-preview { - grid-area: preview; - } - } - .setting-item { padding-bottom: 0; @@ -98,6 +62,65 @@ &:not(:last-child) { margin-bottom: 0.5em; } + + &.heading { + display: grid; + grid-template: + "meta meta preview preview" + "meta meta preview preview" + "meta meta preview preview" + "meta meta preview preview" + "new new preview preview" + "load save refresh apply"; + grid-gap: 0.5em; + grid-template-columns: min-content min-content 6fr max-content; + grid-template-rows: repeat(4, min-content) repeat(2, 2em); + + ul.setting-list { + padding: 0; + margin: 0; + display: grid; + grid-template-rows: subgrid; + grid-area: meta; + + > li { + margin: 0; + } + + .meta-field { + margin: 0; + + .setting-label { + display: inline-block; + margin-bottom: 0.5em; + } + } + } + + #edited-style-preview { + grid-area: preview; + } + + .button-save { + grid-area: save; + } + + .button-load { + grid-area: load; + } + + .button-new { + grid-area: new; + } + + .button-refresh { + grid-area: refresh; + } + + .button-apply { + grid-area: apply; + } + } } .list-editor { @@ -248,17 +271,3 @@ } } } - -.extra-content { - .style-actions-container { - width: 100%; - display: flex; - justify-content: end; - - .style-actions { - display: grid; - grid-template-columns: repeat(4, minmax(7em, 1fr)); - grid-gap: 0.25em; - } - } -} diff --git a/src/components/settings_modal/tabs/style_tab/style_tab.vue b/src/components/settings_modal/tabs/style_tab/style_tab.vue index eabbb582f..f95c7aca3 100644 --- a/src/components/settings_modal/tabs/style_tab/style_tab.vue +++ b/src/components/settings_modal/tabs/style_tab/style_tab.vue @@ -4,75 +4,70 @@