first pass web component widget