Principles for Building Successful Component Libraries