feat(modal): add $modal module