branch: externals/modus-themes
commit 1a7867074edd6f956f9dd2c9580133ed8b26de21
Author: Protesilaos Stavrou <[email protected]>
Commit: Protesilaos Stavrou <[email protected]>

    Make modus-themes-generate-palette require at bg-main and fg-main
---
 modus-themes.el | 28 ++++++++++++----------------
 1 file changed, 12 insertions(+), 16 deletions(-)

diff --git a/modus-themes.el b/modus-themes.el
index 2e55fc9909..fc65072d97 100644
--- a/modus-themes.el
+++ b/modus-themes.el
@@ -7507,10 +7507,6 @@ defined command's symbol is FAMILY-SUFFIX, like 
`modus-themes-rotate'."
 
 ;;;; Generate a palette given the base colors
 
-(defconst modus-themes-generate-palette-names
-  '(bg-main fg-main)
-  "The base named palette entries for `modus-themes-generate-palette'.")
-
 (declare-function color-lighten-name "color" (name percent))
 (declare-function color-darken-name "color" (name percent))
 
@@ -7571,10 +7567,12 @@ PREFERENCE has the same meaning as the fallback 
preference passed to
 ;;;###autoload
 (defun modus-themes-generate-palette (base-colors &optional 
cool-or-warm-preference core-palette mappings)
   "Generate a palette given the BASE-COLORS.
-BASE-COLORS is consists of lists in the form (NAME VALUE).  NAME is at
-least one of `modus-themes-generate-palette-names', while VALUE is a
-string representing a color either by name like in `list-colors-display'
-or hexadecimal RGB of the form #123456.
+BASE-COLORS consists of lists in the form (NAME VALUE).  NAME is at
+least a symbol of `bg-main' or `fg-main', plus any other arbitrary
+symbol, while VALUE is a string representing a color either by name like
+in `list-colors-display' or hexadecimal RGB of the form #123456.  See
+the value of a core Modus palette, like `modus-themes-operandi-palette'
+for all current NAME symbols.
 
 BASE-COLORS is used to derived a palette.  Any entry whose name is
 already present in BASE-COLORS is not derived but taken as-is.
@@ -7599,15 +7597,13 @@ COOL-OR-WARM-PREFERENCE.
 
 With optional MAPPINGS use them instead of trying to derive new ones."
   (require 'color)
-  (let ((names (mapcar #'car base-colors)))
-    (unless (seq-every-p
-             (lambda (name)
-               (memq name modus-themes-generate-palette-names))
-             names)
-      (error "All names must be members of 
`modus-themes-generate-palette-names'"))
-    (let* ((bg-main (car (alist-get 'bg-main base-colors)))
+  (let ((bg-main (alist-get 'bg-main base-colors))
+        (fg-main (alist-get 'fg-main base-colors)))
+    (unless (and bg-main fg-main)
+      (error "The palette must define at least a bg-main and fg-main entry 
with their values"))
+    (let* ((bg-main (car bg-main))
            (bg-main-dark-p (color-dark-p (color-name-to-rgb bg-main)))
-           (fg-main (car (alist-get 'fg-main base-colors)))
+           (fg-main (car fg-main))
            (six-colors (seq-remove
                         (lambda (name)
                           (or (eq (car name) 'bg-main)

Reply via email to