Web components (UI) in TypeScript/Javascript