A button web-component with a loading state and capable of inferring the loading state from click event handler promises.