smart_search_list library

A highly performant, customizable searchable list and grid widget for Flutter.

Provides offline and async data modes, fuzzy search, grouped lists and grids, multi-select, pagination, and accessibility support — with zero dependencies.

Classes

AccessibilityConfiguration
Configuration for accessibility and screen reader behavior.
DefaultEmptySearchWidget
Default empty search widget for when search returns no results.
DefaultEmptyWidget
Default empty widget for when there's no data initially.
DefaultErrorWidget
Displays an error icon, message, and retry button.
DefaultGroupHeader
Default group header widget for grouped lists.
DefaultLoadingWidget
Displays a centered circular progress indicator for loading states.
DefaultLoadMoreWidget
Displays a centered progress indicator for pagination loading.
DefaultSearchField
A Material Design search text field with clear and submit buttons.
FuzzyMatcher
Provides fuzzy-matching via static, pure methods for subsequence and edit-distance searches.
FuzzyMatchResult
Result of a fuzzy match attempt.
GridConfiguration
Configuration for grid layout behavior.
ListConfiguration
Configuration for list behavior.
PaginationConfiguration
Configuration for pagination behavior.
SearchConfiguration
Configuration for search behavior.
SearchHighlightText
A widget that highlights matched portions of text based on searchTerms.
SelectionConfiguration
Configuration for multi-select behavior.
SliverSmartSearchGrid<T extends Object>
A sliver version of SmartSearchGrid for use in CustomScrollView.
SliverSmartSearchList<T extends Object>
A sliver version of SmartSearchList for use in CustomScrollView.
SmartSearchController<T extends Object>
Controller for managing search, filter, sort, and pagination state.
SmartSearchGrid<T extends Object>
A highly customizable searchable grid widget.
SmartSearchList<T extends Object>
A highly customizable searchable list widget.

Enums

CheckboxPosition
Position of selection checkbox relative to item content.
SearchTriggerMode
Controls when search is triggered.

Typedefs

EmptySearchStateBuilder = Widget Function(BuildContext context, String searchQuery)
Builder for the full-screen empty state shown when a search returns no results.
EmptyStateBuilder = Widget Function(BuildContext context)
Builder for the full-screen empty state shown when no data exists.
ErrorStateBuilder = Widget Function(BuildContext context, Object error, VoidCallback onRetry)
Builder for the full-screen error state shown when an async operation fails.
FilterBuilder<T> = Widget Function(BuildContext context, Map<String, bool Function(T)> activeFilters, void onFilterChanged(String key, bool predicate(T)), void onFilterRemoved(String key))
Builder function for filter controls.
GroupHeaderBuilder = Widget Function(BuildContext context, Object groupValue, int itemCount)
Builder function for group section headers.
ItemBuilder<T> = Widget Function(BuildContext context, T item, int index, {List<String> searchTerms})
Builder function for list items.
LoadingStateBuilder = Widget Function(BuildContext context)
Builder for the full-screen loading state shown when data is first loading and no items exist yet.
ProgressIndicatorBuilder = Widget Function(BuildContext context, bool isLoading)
Builder for an inline progress indicator shown during async operations.
SearchFieldBuilder = Widget Function(BuildContext context, TextEditingController textController, FocusNode focusNode, VoidCallback onClear)
Builder function for a custom search field.
SeparatorBuilder = Widget Function(BuildContext context, int index)
Builder function for separators.
SortBuilder<T> = Widget Function(BuildContext context, int currentComparator(T, T)?, void onSortChanged(int (T, T)?))
Builder function for sort controls.