Port ui/context components to JavaScript

Signed-off-by: Byron Ruth <b@devel.io>