She realized she had run out of salt.

Literal

She [topic-は] salt [object-を] is-out-of [nominalizer-の] [target-に] noticed.

切らす means 'to run out of (a stock you keep on hand)' — note the transitive framing: she is the agent who 'has let the salt run out' rather than the salt running out on its own. The corresponding intransitive is 切れる ('to be cut off, run out'). The whole clause 塩を切らしている ('is in the state of having run out of salt') is then nominalized by の and marked as the target of 気付く with に — 'noticed [the fact] that ...' This Xのに気付く pattern is the standard way to mark realization of a clause-sized fact.