Technically if input isn’t consumed you still bubble, but its pointless.
Only add code for the mouse click “listen” to the widget.
That way when you add the widget component (normally a custom widget button you use everywhere so that the base underlying functions are all identical everywhere) is present, it’ll automatically know if its clicked.
You may go as far as implementing interfaces, but i cant recall if the wisget stuff does indeed support them or not.
Once thing is certain, for keyboard + gamepad to work you need to manually script OnKeyDown like you would in JS applications.
Since you have to have the specific widget which is focused listen for the same button press (or click, or controller trigger) that another similar widget would also listen to.
The process for that is obviously more complex, but still easily created as a default thing you can then re-use for every button throught your UI, making it simple.