Inputs and better event handling for widgets, including focus/hover/active state