feat(typeahead): add typeahead directive