Twenty people have been killed and 26 injured in a mass shooting at a Walmart store in the Texas city of El Paso.
Governor Greg Abbott described it as “one of the most deadly days in the history of Texas”.
Police are investigating whether the attack, which happened a few miles from the US-Mexico border, was a hate crime.
A 21-year-old man is in custody. Police said the suspect lived in Allen, Dallas, about 650 miles (1,046km) east of El Paso.
He has been named by US media as Patrick Crusius.
CCTV images said to be of the gunman and broadcast on US media show a man in a dark T-shirt wearing ear protectors and brandishing an assault-style rifle.
The Texas shooting is believed to be the eighth deadliest in modern US history.
The police and FBI are investigating whether an anonymous white nationalist “manifesto”, shared on an online forum, was written by the gunman. The document claims the attack was targeted at the local Hispanic community.
The Walmart, which is near the Cielo Vista Mall, was full of shoppers buying back-to-school supplies at the time of the shooting.
US President Donald Trump described the attack as “an act of cowardice”.
“I know that I stand with everyone in this country to condemn today’s hateful act. There are no reasons or excuses that will ever justify killing innocent people,” he wrote on Twitter.
The victims have not yet been named but Mexico’s President Andres Manuel Lopez Obrador said three Mexicans were among the dead, according to Reuters news agency.
“We as a state unite in support of these victims and their family members,” Mr Abbott said.
“We must do one thing today, one thing tomorrow and each and every day after this – we must unite.”
El Paso Police Chief Greg Allen said reports of an active shooter were received at 10:39 local time (16:39 GMT), and law enforcement officers were on the scene within six minutes.
The 21-year-old is the only suspect in custody and police say no officers fired their weapons while arresting him.
Mr Allen said the ages of victims were “numerous” as he described the situation as “horrific”.
El Paso Police Department had earlier tweeted that blood donations were “needed urgently”.
Kianna Long said she was at the Walmart with her husband when they heard gunfire.
“People were panicking and running, saying that there was a shooter,” Ms Long told reporters. “They were running close to the floor, people were dropping on the floor.”
Ms Long said she and her husband ran through a stock room before taking cover with other customers.
The latest mass shooting has led to an outpouring of sympathy, but also fresh calls for gun control.
Walmart tweeted that it was “in shock over the tragic events” and was “working closely with law enforcement”.
The Texas attack is the second deadly shooting to take place in a Walmart store this week, after an ex-employee of the company killed two former co-workers at a Mississipi branch on Tuesday.
Walmart’s CEO Doug McMillon posted on Instagram: “I can’t believe I’m sending a note like this twice in one week. My heart aches for the community in El Paso.”
Democratic presidential candidate Beto O’Rourke abandoned a campaign event in Las Vegas to return to his home town.
Earlier, he spoke at a labour forum, telling the crowd the shooting shattered any illusion that gun reform will “come of its own accord” in the US.
“We know that there’s a lot of injury, a lot of suffering in El Paso right now,” he said.
Other Democratic presidential candidates also responded with calls for gun control.
New Jersey Senator Cory Booker was among them, saying the US seemed to be “accepting the idea that these [shootings] are going to be a regular occurrence”.
Texas Attorney General Ken Paxton, however, said gun control would probably not have stopped the attack.
He added that if a “crazy” gunman launched such an attack, there was no way that law enforcement officers could be there to stop it.
“The best way is to be prepared to defend yourself,” he told CBS News.