diff --git a/addons/web_editor/static/src/scss/secondary_variables.scss b/addons/web_editor/static/src/scss/secondary_variables.scss index 421e6670aa5..1785bb09591 100644 --- a/addons/web_editor/static/src/scss/secondary_variables.scss +++ b/addons/web_editor/static/src/scss/secondary_variables.scss @@ -21,7 +21,6 @@ $o-color-palette: map-get($o-color-palettes, $o-color-palette-name) or (); // Original color palette can contain override of the default combinations (so keep 'null' values for this merge) $o-color-palette: map-merge($-combination-additions, $o-color-palette); $o-color-palette: map-merge($o-base-color-palette, $o-color-palette); -$o-color-palette: o-map-force-nulls($o-color-palette); // Theme colors $o-theme-color-palette: map-get($o-theme-color-palettes, $o-theme-color-palette-name) or () !default; @@ -43,7 +42,6 @@ $o-theme-color-palette: map-merge(( 'dark': darken(desaturate($-main-color, 80%), min(70%, max(0%, $-main-color-lightness - 10%))), // Does not lower under 10% lightness ), $o-theme-color-palette); $o-theme-color-palette: map-merge($o-base-theme-color-palette, $o-theme-color-palette); -$o-theme-color-palette: o-map-force-nulls($o-theme-color-palette); // Gray colors // Extend grays with transparent ones (for some reason, BS4 create black-50 and @@ -51,7 +49,6 @@ $o-theme-color-palette: o-map-force-nulls($o-theme-color-palette); $o-gray-color-palette: map-get($o-gray-color-palettes, $o-gray-color-palette-name) or () !default; $o-gray-color-palette: map-merge($o-transparent-grays, $o-gray-color-palette); $o-gray-color-palette: map-merge($o-base-gray-color-palette, $o-gray-color-palette); -$o-gray-color-palette: o-map-force-nulls($o-gray-color-palette); $o-color-system-initialized: false; diff --git a/addons/web_editor/static/src/scss/web_editor.variables.scss b/addons/web_editor/static/src/scss/web_editor.variables.scss index 5a0365e1cf9..904dfe72d4d 100644 --- a/addons/web_editor/static/src/scss/web_editor.variables.scss +++ b/addons/web_editor/static/src/scss/web_editor.variables.scss @@ -446,21 +446,6 @@ $o-we-sidebar-content-field-toggle-control-shadow: 0 2px 3px 0 $o-we-bg-darkest // Edited content //------------------------------------------------------------------------------ -// Useful to force null values (in website, null values set by the user -// are removed to act as "removing the user custo and resetting to theme -// default": ideally, we should review that system to actually removing the -// custos in that case instead of setting a null value but this cannot be -// migrated at the moment). -@function o-map-force-nulls($map) { - $-map: (); - @each $key, $value in $map { - $-map: map-merge($-map, ( - $key: if($value == 'NULL', null, $value), - )); - } - @return $-map; -} - $o-support-13-0-color-system: false !default; $o-checklist-margin-left: 20px; diff --git a/addons/website/static/src/scss/primary_variables.scss b/addons/website/static/src/scss/primary_variables.scss index 12c0d432f39..ef0c3a8d00d 100644 --- a/addons/website/static/src/scss/primary_variables.scss +++ b/addons/website/static/src/scss/primary_variables.scss @@ -2055,3 +2055,19 @@ $o-theme-font-configs: ( background-image: $-gradient; } }; + +// Replaces 'NULL' string values in a map by the sass null value (this is useful +// as a "hack" to allow users to define null values in their custom palette as +// normal null values are immediately removed to act as "removing the user custo +// and resetting to theme default": ideally, we should review that system to +// actually removing the custos in those cases instead of setting a null value +// but this cannot be migrated at the moment). +@function o-map-force-nulls($map) { + $-map: (); + @each $key, $value in $map { + $-map: map-merge($-map, ( + $key: if($value == 'NULL', null, $value), + )); + } + @return $-map; +} diff --git a/addons/website/static/src/scss/secondary_variables.scss b/addons/website/static/src/scss/secondary_variables.scss index 14c27077550..cef3c0e5f93 100644 --- a/addons/website/static/src/scss/secondary_variables.scss +++ b/addons/website/static/src/scss/secondary_variables.scss @@ -53,9 +53,10 @@ $o-fonts-similar: ( // By default, most website palette values are null. Each null value is // automatically replaced with corresponsing values in chosen default values // palette. +$o-user-website-values: o-map-force-nulls($o-user-website-values); +$o-user-website-values: o-map-font-aliases($o-user-website-values); $-website-values-default: o-safe-nth($o-website-values-palettes, $o-website-values-palette-number, ()); $-website-values-default: map-merge($o-base-website-values-palette, $-website-values-default); -$o-user-website-values: o-map-font-aliases($o-user-website-values); $-actual-user-website-values-palette: map-merge($-website-values-default, $o-user-website-values); // Default font selection + User font selection have been merged, now need to // add the right associated font default config @@ -67,7 +68,7 @@ $o-website-values-palettes: append($o-website-values-palettes, $-actual-user-web // Enable last website values palette, which is now the user customized one $o-website-values-palette-number: length($o-website-values-palettes); -$o-website-values: o-map-force-nulls($-actual-user-website-values-palette) !default; +$o-website-values: $-actual-user-website-values-palette !default; @function o-website-value($key) { @return map-get($o-website-values, $key); } @@ -132,6 +133,7 @@ $o-has-customized-colors: // By default, most user color palette values are null. Each null value is // automatically replaced with corresponsing colors in chosen default color // palette. +$o-user-color-palette: o-map-force-nulls($o-user-color-palette); $-palette-default: map-get($o-color-palettes, $o-color-palette-name) or (); $-actual-user-color-palette: map-merge($-palette-default, $o-user-color-palette); // Compatibility with old values in old names @@ -162,6 +164,7 @@ $o-color-palettes: map-merge($o-color-palettes, ('user-palette': $-actual-user-c // By default, most user gray palette values are null. Each null value is // automatically replaced with corresponsing colors in chosen default color // palette. +$o-user-gray-color-palette: o-map-force-nulls($o-user-gray-color-palette); $-palette-default: map-get($o-gray-color-palettes, $o-gray-color-palette-name) or (); $-actual-user-gray-color-palette: map-merge($-palette-default, $o-user-gray-color-palette); $o-gray-color-palettes: map-merge($o-gray-color-palettes, ('user-palette': $-actual-user-gray-color-palette)); @@ -184,6 +187,7 @@ $-alpha: map-get($o-user-theme-color-palette, 'alpha'); // By default, all user theme color palette values are null. Each null value is // automatically replaced with corresponsing colors in chosen default theme // color palette. +$o-user-theme-color-palette: o-map-force-nulls($o-user-theme-color-palette); $-palette-default: map-get($o-theme-color-palettes, $o-theme-color-palette-name) or (); $-actual-user-theme-color-palette: map-merge($-palette-default, $o-user-theme-color-palette); // Always remove the primary/secondary which were customizable in some theme