own library

Classes

EasyBaseWidget<T>
Base widget for Easy components providing shared selection APIs.
EasyBloc<T>
EasyBottomSheet<T>
EasyBottomSheetAdvanced<T>
EasyBottomSheetBloc<T>
EasyBottomSheetHook<T>
EasyBottomSheetNotifier<T>
EasyBottomSheetProvider<T>
EasyBuilders
Simple helpers for common item builders.
EasyButton<T>
EasyButtonAdvanced<T>
EasyButtonBloc<T>
EasyButtonHook<T>
EasyButtonNotifier<T>
EasyButtonProvider<T>
EasyCheckbox<T>
EasyCheckboxAdvanced<T>
EasyCheckboxBloc<T>
EasyCheckboxHook<T>
EasyCheckboxNotifier<T>
EasyCheckboxProvider<T>
EasyChips<T>
Simple chips-based selector.
EasyChipsAdvanced<T>
EasyChipsBloc<T>
EasyChipsHook<T>
EasyChipsNotifier<T>
EasyChipsProvider<T>
EasyContainer
A wrapper around Container that simplifies common styling and layout tasks.
EasyDateField
EasyEquals
Predefined equality callbacks for common types.
EasyEvent<T>
Base event for Easy widgets
EasyFileCategoryConfig
EasyFilePicker<T>
EasyFilePickerAdvanced<T>
EasyFilterBar
Responsive container for combining multiple filter controls (chips, dropdowns, search fields) into a single, cohesive bar.
EasyFormController
A lightweight form controller that manages a map of values and errors.
EasyFormFieldConfig<T>
Generic form field registration model.
EasyFormFieldController<T>
Typed view of a single field within an EasyFormController.
EasyFormValueNotifier<T>
Bridge between EasyFormController and EasyValueNotifier.
EasyGrid<T>
Generic selectable grid with single/multi selection support.
EasyImage
A wrapper around Image that simplifies loading from network, assets, or files.
EasyImagePicker<T>
EasyLabels
Common label builders for primitive types.
EasyList<T>
Generic selectable list with single/multi selection support.
EasyMenu<T>
Generic popup menu for single-select actions.
EasyPagination
Generic pagination control for lists and tables.
EasyPopup<T>
EasyPopupAdvanced<T>
EasyPopupBloc<T>
EasyPopupHook<T>
EasyPopupNotifier<T>
EasyPopupProvider<T>
EasyRadioGroup<T>
EasyRadioGroupAdvanced<T>
EasyRadioGroupBloc<T>
EasyRadioGroupHook<T>
EasyRadioGroupNotifier<T>
EasyRadioGroupProvider<T>
EasyResponsiveScaffold
Adaptive scaffold that switches between a drawer / bottom navigation layout on narrow screens and a navigation rail layout on wide screens.
EasyScroll
A wrapper around SingleChildScrollView that simplifies scrolling.
EasySearchableGrid<T>
Searchable grid that filters items by label and delegates selection to EasyGrid.
EasySearchableList<T>
Searchable list that filters items by label and delegates selection to EasyList.
EasySegmented<T>
Generic segmented control built on Material SegmentedButton.
EasySelectionController<T>
Base controller shared across widgets for synchronised value handling.
EasyState<T>
EasyStateBridge
EasyStepConfig<T>
Declarative configuration for a single step.
EasyStepper<T>
Visual representation of progress through a multi‑step flow.
EasySwitch<T>
EasySwitchAdvanced<T>
EasySwitchBloc<T>
EasySwitchHook<T>
EasySwitchNotifier<T>
EasySwitchProvider<T>
EasyTable<T>
Lightweight data-table that plugs into the Easy selection primitives.
EasyTagInput<T>
Chip-based tag input that turns free-form text into strongly-typed values.
EasyText
A wrapper around Text that simplifies styling.
EasyTextField<T>
EasyTextFieldAdvanced<T>
EasyTextFieldBloc<T>
EasyTextFieldHook<T>
EasyTextFieldNotifier<T>
EasyTextFieldProvider<T>
EasyTextFormField<T>
EasyValueChanged<T>
EasyValueNotifier<T>
A notifier that manages a selected value and exposes changes via ValueListenable.
SearchRecommendationController<T>
Controller to imperatively interact with SearchRecommendationWidget.
SearchRecommendationWidget<T>
Generic, material-style search + recommendation field with optional multi-select and optional remote (server) search.

Enums

EasyFileCategory
EasyImageSource
EasyStepStatus
Status of a step in the indicator.

Extensions

EasyFileCategoryX on EasyFileCategory
EasyFormControllerX on EasyFormController
Convenience helpers for string / bool / int based values.
EasyImageSourceX on EasyImageSource

Functions

defaultEasyEquals<T>() EasyIsEqual<T>
Default implementation of EasyIsEqual that uses ==.
easyBottomSheetSelectOf<T>({required List<T> items, T? value, List<T>? values, ValueChanged<T?>? onChanged, ValueChanged<List<T>>? onChangedMany, bool multiSelect = false, String label(T)?, Widget? sheetTitle}) Widget
Easy bottom sheet selector.
easyButtonGroupOf<T>({required List<T> items, T? value, List<T>? values, ValueChanged<T?>? onChanged, ValueChanged<List<T>>? onChangedMany, bool multiSelect = false, String label(T)?}) Widget
Easy button group (ChoiceChip-like) from values.
easyCheckboxOf<T>({required List<T> items, T? value, List<T>? values, ValueChanged<T?>? onChanged, ValueChanged<List<T>>? onChangedMany, bool multiSelect = false, String label(T)?}) Widget
Easy multi/single checkbox list with minimal config.
easyChipsOf<T>({required List<T> items, T? value, List<T>? values, ValueChanged<T?>? onChanged, ValueChanged<List<T>>? onChangedMany, bool multiSelect = false, String label(T)?}) Widget
Easy chips selection from values.
easyDateFieldOf({required DateTime? value, required ValueChanged<DateTime?> onChanged, String label(DateTime)?, DateTime? firstDate, DateTime? lastDate, DateTime? initialDate}) Widget
Easy date field that opens a date picker on tap.
easyDoubleFieldOf({required double? value, required ValueChanged<double?>? onChanged, String? hintText}) Widget
Convenient double text field with numeric keyboard and parsing.
easyDropdownOf<T>({required List<T> items, T? value, ValueChanged<T?>? onChanged, String label(T)?}) Widget
Easy dropdown: just pass items, current value and onChanged.
easyFilterBarOf({required List<Widget> filters, Widget? leading, Widget? trailing, EdgeInsetsGeometry padding = const EdgeInsets.all(12), double spacing = 12, double runSpacing = 8, Color? backgroundColor, BorderRadius borderRadius = const BorderRadius.all(Radius.circular(16))}) Widget
Easy filter bar for composing multiple filter controls.
easyGridOf<T>({required List<T> items, T? value, List<T>? values, ValueChanged<T?>? onChanged, ValueChanged<List<T>>? onChangedMany, bool multiSelect = false, String label(T)?, int crossAxisCount = 2, double mainAxisSpacing = 12, double crossAxisSpacing = 12, double childAspectRatio = 1}) Widget
Easy grid view for card-like selections.
easyIntFieldOf({required int? value, required ValueChanged<int?>? onChanged, String? hintText}) Widget
Convenient integer text field with numeric keyboard and parsing.
easyListOf<T>({required List<T> items, T? value, ValueChanged<T?>? onChanged, bool multiSelect = false, List<T>? values, ValueChanged<List<T>>? onChangedMany, String label(T)?, bool divided = true, bool dense = false}) Widget
Easy selectable list with generic items.
easyMenuOf<T>({required List<T> items, T? value, ValueChanged<T?>? onChanged, String label(T)?, Widget? child, String? tooltip, Icon? icon}) Widget
Easy popup menu for single-select actions.
easyPaginationOf({required int itemCount, required int pageIndex, required int pageSize, required ValueChanged<int> onPageChanged, ValueChanged<int>? onPageSizeChanged, List<int> pageSizeOptions = const [10, 25, 50], String labelBuilder(int start, int end, int total)?}) Widget
Easy pagination control for lists and tables.
easyPopupSelectOf<T>({required List<T> items, T? value, List<T>? values, ValueChanged<T?>? onChanged, ValueChanged<List<T>>? onChangedMany, bool multiSelect = false, String label(T)?, Widget? title}) Widget
Easy popup selector using the advanced popup dialog.
easyRadioOf<T>({required List<T> items, T? value, ValueChanged<T?>? onChanged, String label(T)?}) Widget
Easy radio group with just items, selected value and onChanged.
easyResponsiveScaffoldOf({required Widget body, PreferredSizeWidget? appBar, Widget? navigationRail, Widget? drawer, Widget? bottomNavigationBar, EdgeInsetsGeometry? bodyPadding, double breakpoint = 900}) Widget
Easy responsive scaffold wrapper.
easySearchableGridOf<T>({required List<T> items, required String label(T), required EasyItemBuilder<T> itemBuilder, T? value, List<T>? values, ValueChanged<T?>? onChanged, ValueChanged<List<T>>? onChangedMany, bool multiSelect = false, String hintText = 'Search...', Widget? emptyState, int crossAxisCount = 2, double mainAxisSpacing = 12, double crossAxisSpacing = 12, double childAspectRatio = 1}) Widget
Easy searchable grid: text field + filtered grid.
easySearchableListOf<T>({required List<T> items, required String label(T), T? value, List<T>? values, ValueChanged<T?>? onChanged, ValueChanged<List<T>>? onChangedMany, bool multiSelect = false, String hintText = 'Search...', Widget? emptyState}) Widget
Easy searchable list: text field + filtered list.
easySearchOf<T>({required List<T> items, required String label(T), void onSelected(T selectedItem)?, void onSelectedMany(List<T> selectedItems)?, bool multiSelect = false, SearchRemoteResolver<T>? remoteSearch, String hintText = 'Search...'}) Widget
Easy search + recommendation widget: just pass items, label mapper and callbacks.
easySegmentedOf<T>({required List<T> items, T? value, ValueChanged<T?>? onChanged, bool multiSelect = false, List<T>? values, String label(T)?}) Widget
Easy segmented control with generic items and selection.
easyStepperOf<T>({required List<EasyStepConfig<T>> steps, required T? currentStep, ValueChanged<T>? onStepChanged, Axis axis = Axis.horizontal, bool allowStepTap = true}) Widget
Easy multi-step indicator for onboarding and wizards.
easySwitchOf<T>({required List<T> items, T? value, List<T>? values, ValueChanged<T?>? onChanged, ValueChanged<List<T>>? onChangedMany, bool multiSelect = false, String label(T)?}) Widget
Easy switch group for toggling one or many options.
easyTableOf<T>({required List<T> items, required List<DataColumn> columns, required EasyTableCellBuilder<T> cellBuilder, T? value, ValueChanged<T?>? onChanged, EasyIsEqual<T>? isEqual, bool multiSelect = false, List<T>? selectedValues, ValueChanged<List<T>>? onChangedMany, bool showCheckboxColumn = true, double? dataRowHeight, double? headingRowHeight}) Widget
Easy table convenience for quick rendering.
easyTagInputOf({required List<String> tags, required ValueChanged<List<String>> onChanged, String hintText = 'Add tag and press Enter', bool allowDuplicates = false, int? maxTags}) Widget
Easy tag input with String values and chips.
easyTextFieldOf<T>({required T? value, required ValueChanged<T?>? onChanged, String label(T)?, T? parser(String text)?, String? hintText, TextInputType? keyboardType, bool obscureText = false}) Widget
Easy text field bound directly to a value of type T.
easyTextFormFieldOf<T>({required EasyFormController form, required String name, String label(T)?, T? parser(String text)?, String? hintText, TextInputType? keyboardType, bool obscureText = false}) Widget
Easy TextFormField bound to an EasyFormController and field name.

Typedefs

DateFormatter = String Function(DateTime value)
EasyFilePickHandler<T> = FutureOr<List<T>> Function(EasyFileCategory category, bool allowMultiple)
EasyImagePickHandler<T> = FutureOr<List<T>> Function(EasyImageSource source, bool allowMultiple)
EasyIsEqual<T> = bool Function(T? a, T? b)
Equality callback used by Easy widgets to compare values of type T.
EasyItemBuilder<T> = Widget Function(BuildContext context, T item, bool isSelected)
Signature for builders that turn an item into a widget.
EasyLabelBuilder<T> = String Function(T item)
Callback that converts a value of type T into a user-facing label.
EasyMultiBuilder<T> = Widget Function(BuildContext context, List<T> values, ValueChanged<List<T>> onChanged)
EasySingleBuilder<T> = Widget Function(BuildContext context, T? value, ValueChanged<T?> onChanged)
EasyTableCellBuilder<T> = Widget Function(BuildContext context, T row, int columnIndex, bool selected)
EasyTagLabelBuilder<T> = String Function(T value)
EasyTagParser<T> = T? Function(String text)
EasyValidator<T> = String? Function(T? value)
Signature for validating a value of type T. Return null when valid.
EasyValueParser<T> = T? Function(String text)
SearchRemoteResolver<T> = Future<List<T>> Function(String query)
Optional remote search callback used for server-side searching.