toSnakeCase function
Converts a string to snake_case. e.g. productCard → product_card, MyBanner → my_banner
Implementation
String toSnakeCase(String input) {
if (input.isEmpty) return '';
// Handle camelCase / PascalCase
final exp = RegExp(r'(?<=[a-z])([A-Z])|(?<=[A-Z])([A-Z][a-z])');
final snake =
input.replaceAllMapped(exp, (m) => '_${m.group(0)}').toLowerCase();
return snake.replaceAll('-', '_').replaceAll(RegExp(r'_+'), '_');
}