feat(tab): new tab directive