OP,
She's 21 and needs to take responsibility as do you.
You have allowed her to speak to you like that, therefore she does.
Some kids as they get older can try this, the thing is not to accept it.
Her behaviour is awful but she has been given the firm message it is ok to speak to you like that.
What you should do is write her a little letter and tell her in it that you would like her to leave the house and move out asap as a direct result of her dreadful behaviour towards you.
Then go with the letter and hand it to her and tell her, I'd like you to move out.
I have no wish to share my home with you or your dreadful behaviour any longer.
Take your behaviour somewhere else because I am done.
I doubt you will do the above but believe me this is what should be done.
She is an abusive spoiled disrespectful brat.
You have swapped one abuser for another.
You are doing her NO favours and have failed in your job as her mother accepting such rudeness and abuse from her.
Tell her the truth, you don't want her in YOUR home anymore.
Tell her she clearly isn't happy with the roof you provide so you want her out.
Until you play hardball and insist on respect from her you are never going to get any.
You have allowed the situation to get to this point.
If you want your children to speak to you respectfully, you call them out on rudeness the first time you hear it with Dont you speak to me like that.
It will happen, but you can never allow it to go unchallenged.
Every time you challenge it.
She is never going to suddenly show you respect with you allowing her to be so rude to you.
Have some respect for yourself first and then insist she does, or get the hell out of YOUR home.