private static IconValue parseIcon(String id, String value) throws ParseException {
		int modifierIndex = getModifierIndex(value);

		if (modifierIndex < 0) {
			if (value.isBlank()) {
				return null;
			}
			return new IconValue(id, getIcon(value));
		}

		String baseIconString = value.substring(0, modifierIndex).trim();
		if (baseIconString.isBlank()) {
			return null;
		}
		Icon icon = getIcon(baseIconString);
		String iconModifierString = value.substring(modifierIndex);
		IconModifier modifier = IconModifier.parse(iconModifierString);
		return new IconValue(id, icon, modifier);
	}
Parses the value string into an icon or reference and creates a new IconValue using
the given key and the parse results.
@param key the key to associate the parsed value with
@param value the color value to parse
@return an IconValue with the given key and the parsed value
@throws ParseException if the value can't be parsed
Ghidra/Framework/Gui/src/main/java/generic/theme/IconValue.java