feat(tour): add tour component