What is the top part of 姜 and why does it differ? If you look at the character 姜, it seems like the top part is ⺷ and the bottom is 女, however some sources, Chinese-Characters, HanziJS and Wikimedia Commons show the phonetic radical as 羊. 

I'm the creator of HanziJS and use the data created by Gavin Grover for decomposition. This is why I'm asking. I want to understand why there could be a discrepancy in the decomposition.

The Chinese Characters's page also mentions a term "apparent" components, which seems to refer to the original decomposition of the characters. However, in terms of phonetic radicals, it seems 羊 would be more suitable in determining the pronunciation than ⺷, which seems to be an archaic character. The Chinese wiktionary page says that, ⺷, is made up of 羊. Now it's getting confusing!

I have heard that some have also suggest that the top part is 美?

What would be the correct decomposition and why are there discrepancies? What will a native Chinese person say when asked what components 姜 is made up of?
I'm also finding conflicting sources. For example according to the reference work Chinese Characters: A Genealogy and Dictionary it's also 羊 + 女.

Similarly, still in the same work, 美 is 羊 + 大.

Often when characters are combined they are slightly changed to make the character more compact and I think that is what has happened here.

However when I look at the following online Classical Chinese dictionary they say that it is ⺷ + 女.
However if you look at the seal script of 羊 on the same site and compare it with the seal script of 姜 you'll clearly see the 羊. Also from the ⺷ page, one can  interpret  that the character ⺷ isn't that old. So it seems more likely that it indeed comes from 羊. 

I could be wrong about this, but I think the average Chinese doesn't care about how the character is made up. Their way of learning them is to drill them (rote learning), not by trying to see how there are made-up.

EDIT: I have been doing some more searching and actually ⺷ is 羊, but in radical form. See for example unicodelookup.com.
So it doesn't exist as a separate character, but is used when it is used as a radical. Similarly as 手 is changed when used as a radical in 打.