feat(collapse): add collapse module