  
      def check_config_choices(self):
          """ Check that config items are valid choices """
          logger.debug("Checking config choices")
          for section, items in self.defaults.items():
              for item, opt in items.items():
                  if item == "helptext" or not opt["choices"]:
                      continue
                  if opt["type"] == list:  # Multi-select items
                      opt_value = self._parse_list(section, item)
                      if not opt_value:  # No option selected
                          continue
 
</s> remove                 if opt["type"] == list:  # Multi-select items
                    opt_value = self._parse_list(section, item)
                    if not opt_value:  # No option selected
 </s> add                 if opt.datatype == list:  # Multi-select items
                    opt_values = self._parse_list(section_name, item)
                    if not opt_values:  # No option selected </s> remove     def check_config_choices(self):
 </s> add     def _check_config_choices(self) -> None: </s> remove                     if not all(val in opt["choices"] for val in opt_value):
                        invalid = [val for val in opt_value if val not in opt["choices"]]
                        valid = ", ".join(val for val in opt_value if val in opt["choices"])
 </s> add                     if not all(val in opt.choices for val in opt_values):
                        invalid = [val for val in opt_values if val not in opt.choices]
                        valid = ", ".join(val for val in opt_values if val in opt.choices) </s> remove                     opt_value = self.config.get(section, item)
 </s> add                     if opt.choices == "colorchooser":
                        continue
                    opt_value = self.config.get(section_name, item) </s> remove         for section, items in self.defaults.items():
            self.insert_config_section(section, items["helptext"], new_config)
            for item, opt in items.items():
                if item == "helptext":
                    continue
                if section not in self.config.sections():
                    logger.debug("Adding new config section: '%s'", section)
                    opt_value = opt["default"]
 </s> add         for section_name, section in self.defaults.items():
            self.insert_config_section(section_name, section.helptext, new_config)
            for item, opt in section.items.items():
                if section_name not in self.config.sections():
                    logger.debug("Adding new config section: '%s'", section_name)
                    opt_value = opt.default
        for section_name, section in self.defaults.items():
            for item, opt in section.items.items():
                if not opt.choices:
  
      def check_config_choices(self):
          """ Check that config items are valid choices """
          logger.debug("Checking config choices")
        for section_name, section in self.defaults.items():
            for item, opt in section.items.items():
                if not opt.choices:
        for section_name, section in self.defaults.items():
            for item, opt in section.items.items():
                if not opt.choices:
        for section_name, section in self.defaults.items():
            for item, opt in section.items.items():
                if not opt.choices:
                      continue
                  if opt["type"] == list:  # Multi-select items
                      opt_value = self._parse_list(section, item)
                      if not opt_value:  # No option selected
                          continue
keep keep keep keep replace replace replace keep keep keep keep keep
 Preview - Allow mask color/opacity configuration
  - typing: lib.config
  - docs: lib.config
  - bugfix: popup_configure - keep assets on top 
lib/config.py