/// DataGrid component for displaying tabular data. /// /// This library provides a configurable, feature-rich data grid widget /// for Flutter applications using Riverpod for state management. /// /// Features: /// - Sortable columns /// - Row selection (single and bulk) /// - Per-row and bulk actions with confirmations /// - Search/filtering /// - Pagination or infinite scroll /// - Custom cell rendering /// - Empty, loading, and error states /// - Responsive column widths /// /// Example: /// ```dart /// // Define your data source /// final usersSource = InMemoryDataSource( /// items: users, /// searchMatcher: (user, query) => /// user.name.toLowerCase().contains(query.toLowerCase()), /// ); /// /// // Define grid configuration /// final usersConfig = DataGridConfig( /// columns: [ /// DataGridColumn( /// header: 'Name', /// valueBuilder: (u) => u.name, /// sortable: true, /// searchable: true, /// ), /// DataGridColumn( /// header: 'Email', /// valueBuilder: (u) => u.email, /// ), /// DataGridColumn( /// header: 'Status', /// valueBuilder: (u) => u.status, /// cellBuilder: (context, u) => StatusBadge(status: u.status), /// ), /// ], /// actions: [ /// DataGridAction( /// icon: Icons.edit, /// label: 'Edit', /// onTap: (user) async => editUser(user), /// ), /// DataGridAction( /// icon: Icons.delete, /// label: 'Delete', /// onTap: (user) async => deleteUser(user), /// destructive: true, /// requiresConfirmation: true, /// ), /// ], /// rowsSelectable: true, /// enableSearch: true, /// ); /// /// // Create the provider /// final usersGridProvider = dataGridProvider( /// source: usersSource, /// config: usersConfig, /// idSelector: (u) => u.id, /// ); /// /// // Use in widget /// DataGrid( /// provider: usersGridProvider, /// config: usersConfig, /// idSelector: (u) => u.id, /// ) /// ``` library; export 'data_grid.dart'; export 'data_grid_action.dart'; export 'data_grid_column.dart'; export 'data_grid_config.dart'; export 'data_grid_provider.dart'; export 'data_grid_source.dart'; export 'data_grid_state.dart'; export 'widgets/data_grid_empty_state.dart';