-
-
-
-
+
+
{{ $t('settings.style.themes3.editor.title') }}
-
-
-
+
-
-
-
selectedPaletteId = e"
- />
-
-
+
-
+ {{ p.name }}
+
+
+ selectedPaletteId = e"
/>
-
+
- {{ $t('settings.style.themes3.editor.variables.label') }}
+ {{ $t('settings.style.themes3.variables.label') }}
{{ ' ' }}
-
-
+
diff --git a/src/components/shadow_control/shadow_control.js b/src/components/shadow_control/shadow_control.js
index 0ffba1834..03797fc53 100644
--- a/src/components/shadow_control/shadow_control.js
+++ b/src/components/shadow_control/shadow_control.js
@@ -46,7 +46,6 @@ export default {
'separateInset',
'noPreview',
'disabled',
- 'computeColor',
'compact'
],
emits: ['update:modelValue', 'subShadowSelected'],
@@ -108,13 +107,6 @@ export default {
usingFallback () {
return this.modelValue == null
},
- getFallback () {
- if (typeof this.computeColor === 'function' && this.selected?.color) {
- return this.computeColor(this.selected.color)
- } else {
- return this.currentFallback?.color
- }
- },
style () {
try {
if (this.separateInset) {
diff --git a/src/components/shadow_control/shadow_control.scss b/src/components/shadow_control/shadow_control.scss
index 7e998cdf7..06381b1b3 100644
--- a/src/components/shadow_control/shadow_control.scss
+++ b/src/components/shadow_control/shadow_control.scss
@@ -5,6 +5,8 @@
grid-template-areas: "selector preview tweak";
grid-gap: 0.5em;
justify-content: stretch;
+ margin-bottom: 1em;
+ width: 100%;
&.-compact {
grid-template-columns: 10em 1fr;
@@ -110,7 +112,7 @@
.shadow-preview {
grid-area: preview;
- min-width: 25em;
+ min-width: 10em;
margin-left: 0.125em;
align-self: start;
justify-self: center;
diff --git a/src/components/shadow_control/shadow_control.vue b/src/components/shadow_control/shadow_control.vue
index 1bbdbe2f7..4f0906c70 100644
--- a/src/components/shadow_control/shadow_control.vue
+++ b/src/components/shadow_control/shadow_control.vue
@@ -165,7 +165,7 @@
:model-value="selected?.color"
:disabled="disabled || !present"
:label="$t('settings.style.common.color')"
- :fallback="getFallback"
+ :fallback="currentFallback?.color"
:show-optional-tickbox="false"
name="shadow"
@update:modelValue="e => updateProperty('color', e)"
diff --git a/src/i18n/en.json b/src/i18n/en.json
index d993b5495..0f2a47812 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -757,8 +757,7 @@
"themes3": {
"define": "Override",
"palette": {
- "label": "Color schemes",
- "name_label": "Color scheme name",
+ "label": "Palettes",
"import": "Import",
"export": "Export",
"bg": "Panel background",
@@ -775,6 +774,11 @@
"extra3": "Extra 3",
"v2_unsupported": "Older v2 themes don't support palettes. Switch to v3 theme to make use of palettes"
},
+ "variables": {
+ "label": "Variables",
+ "name_label": "Name:",
+ "type_label": "Type:"
+ },
"editor": {
"title": "Style",
"new_style": "New",
@@ -794,9 +798,6 @@
"icon_color": "Icon color",
"link_color": "Link color",
"include_in_rule": "Add to rule",
- "test_string": "TEST",
- "refresh_preview": "Refresh preview",
- "apply_preview": "Apply",
"text_auto": {
"label": "Auto-contrast",
"no-preserve": "Black or White",
@@ -804,17 +805,8 @@
"no-auto": "Disabled"
},
"component_tab": "Components style",
- "palette_tab": "Color schemes",
- "variables_tab": "Variables (Advanced)",
- "variables": {
- "label": "Variables",
- "name_label": "Name:",
- "type_label": "Type:",
- "type_shadow": "Shadow",
- "type_color": "Color",
- "type_generic": "Generic",
- "virtual_color": "Variable color value"
- },
+ "palette_tab": "Color presets",
+ "variables_tab": "Variables (Advanced)"
},
"hacks": {
"underlay_overrides": "Change underlay",
diff --git a/src/services/export_import/export_import.js b/src/services/export_import/export_import.js
index 8865061fc..b8f84351b 100644
--- a/src/services/export_import/export_import.js
+++ b/src/services/export_import/export_import.js
@@ -16,8 +16,7 @@ export const newExporter = ({
// Create an invisible link with a data url and simulate a click
const e = document.createElement('a')
- const realFilename = typeof filename === 'function' ? filename() : filename
- e.setAttribute('download', `${realFilename}.${extension}`)
+ e.setAttribute('download', `${filename}.${extension}`)
e.setAttribute('href', `data:${mime};base64, ${window.btoa(stringified)}`)
e.style.display = 'none'
@@ -29,7 +28,6 @@ export const newExporter = ({
export const newImporter = ({
accept = '.json',
- parser = (string) => JSON.parse(string),
onImport,
onImportFailure,
validator = () => true
@@ -46,7 +44,7 @@ export const newImporter = ({
const reader = new FileReader()
reader.onload = ({ target }) => {
try {
- const parsed = parser(target.result)
+ const parsed = JSON.parse(target.result)
const validationResult = validator(parsed, filename)
if (validationResult === true) {
onImport(parsed, filename)
diff --git a/src/services/theme_data/iss_deserializer.js b/src/services/theme_data/iss_deserializer.js
index cdde6b14b..3ac8826f2 100644
--- a/src/services/theme_data/iss_deserializer.js
+++ b/src/services/theme_data/iss_deserializer.js
@@ -21,11 +21,7 @@ export const parseShadow = string => {
const regex = new RegExp(regexPrep, 'gis') // global, (stable) indices, single-string
const result = regex.exec(string)
if (result == null) {
- if (string.startsWith('$') || string.startsWith('--')) {
- return string
- } else {
- throw new Error(`Invalid shadow definition: ${string}`)
- }
+ return string
} else {
const numeric = new Set(['x', 'y', 'blur', 'spread', 'alpha'])
const { x, y, blur, spread, alpha, inset, color } = Object.fromEntries(modes.map((mode, i) => {
diff --git a/src/services/theme_data/iss_serializer.js b/src/services/theme_data/iss_serializer.js
index e4df416e9..8b7cf5d88 100644
--- a/src/services/theme_data/iss_serializer.js
+++ b/src/services/theme_data/iss_serializer.js
@@ -1,6 +1,6 @@
import { unroll } from './iss_utils.js'
-export const serializeShadow = (s, throwOnInvalid) => {
+const serializeShadow = s => {
if (typeof s === 'object') {
return `${s.inset ? 'inset ' : ''}${s.x} ${s.y} ${s.blur} ${s.spread} ${s.color} / ${s.alpha}`
} else {
diff --git a/src/services/theme_data/theme_data_3.service.js b/src/services/theme_data/theme_data_3.service.js
index aaa253283..e45d2cefd 100644
--- a/src/services/theme_data/theme_data_3.service.js
+++ b/src/services/theme_data/theme_data_3.service.js
@@ -62,7 +62,7 @@ const findShadow = (shadows, { dynamicVars, staticVars }) => {
})
}
-export const findColor = (color, { dynamicVars, staticVars }) => {
+const findColor = (color, { dynamicVars, staticVars }) => {
if (typeof color !== 'string' || (!color.startsWith('--') && !color.startsWith('$'))) return color
let targetColor = null
if (color.startsWith('--')) {