Add custom UI component supporting event handling