Nice! Looks really polished!
One thing I'm wondering about... if this is React based, do you reassign and recalculate the whole grid upon every change? Because the grid is probably a component, and has the table as props. I could imagine that is inefficient... Not to even speak of then rendering the whole component and sending it through DOM reconciliation every time a key is pressed.
Well, OTOH I guess it doesn't matter for small tables. The demo feels really snappy!