{ pkgs, inputs }: let schemesConfig = import ../config/schemes.nix { inherit pkgs inputs; }; availableSchemes = builtins.attrNames schemesConfig.schemes; in { inherit availableSchemes; lightSchemes = builtins.filter ( name: schemesConfig.schemes.${name}.polarity == "light" ) availableSchemes; darkSchemes = builtins.filter ( name: schemesConfig.schemes.${name}.polarity == "dark" ) availableSchemes; schemesByColor = color: builtins.filter (name: schemesConfig.schemes.${name}.color == color) availableSchemes; getScheme = name: schemesConfig.schemes.${name}; isValidScheme = name: builtins.hasAttr name schemesConfig.schemes; availableColors = pkgs.lib.unique ( builtins.filter (color: color != null) ( builtins.map (name: schemesConfig.schemes.${name}.color) availableSchemes ) ); availableBase16Schemes = pkgs.lib.unique ( builtins.filter (name: name != null) ( builtins.map (name: schemesConfig.schemes.${name}.name) availableSchemes ) ); }