selection_sheet 1.0.0 copy "selection_sheet: ^1.0.0" to clipboard
selection_sheet: ^1.0.0 copied to clipboard

A production-ready adaptive selection workflow for Flutter.

1.0.0 #

Breaking changes

  • SelectionSheetThemeData string fields (searchHintText, doneLabel, emptyLabel, errorLabel, retryLabel) are now nullable (String?). They default to null and fall back to SelectionSheetLocalizations at render time, enabling full localisation without touching theme data.

New features

  • Adds SelectionSheetLocalizations abstract class and SelectionSheetLocalizationsScope inherited widget for full i18n support.
  • Adds SelectionSheetDefaultLocalizations with English fallback strings.
  • Adds barrierColor to SelectionSheetThemeData (and its copyWith) so the modal scrim colour is fully themeable.
  • Adds SelectionSheetController.isLoading — reflects whether an attached remote sheet is currently performing an initial or pagination load.
  • SelectionSheetFormField and SelectionSheetMultiFormField now accept all parameters that the modal helpers support: isItemEnabled, sectionLabelBuilder, stickySectionHeaders, loadingBuilder, emptyBuilder, errorBuilder, loadingMoreBuilder, loadMoreErrorBuilder, presentation, useRootNavigator, and isDismissible.

Bug fixes

  • Fixes operator-precedence bug in _showDragHandle that caused the handle to appear even when showDragHandle: false was set while a custom dragHandleBuilder was provided.
  • Custom loadingBuilder, emptyBuilder, and errorBuilder widgets are no longer unconditionally wrapped in a Center; layout control is returned to the caller.
  • Semantics for list items now uses checked (not selected) for multi-select rows, correctly mapping to a checkbox role on Android TalkBack.
  • _validateSource logic is rewritten with explicit bothNull || bothSet guards instead of the opaque XNOR expression.
  • SelectionSheetMultiFormField.clear() no longer allocates an intermediate List.of(<Never>[]).

Internal

  • analysis_options.yaml now enables strict-casts, strict-raw-types, and several high-value lint rules (prefer_final_fields, avoid_dynamic_calls, always_declare_return_types, require_trailing_commas, …).
  • Scroll-threshold (240 px) and dismiss-velocity (900 px/s) magic numbers are replaced with named constants.
  • Boilerplate template comments removed from pubspec.yaml.

0.6.1 #

  • Prevents Android handle gestures from being processed by two drag owners, which could pop two routes and leave a black screen.
  • Makes a downward list drag at scroll offset zero dismiss the sheet consistently on Android and iOS.

0.6.0 #

  • Makes default and custom drag handles resize Material and Cupertino sheets.
  • Adds drag-to-dismiss behavior for Cupertino sheet handles.
  • Adds enableDrag: false for a strict initial sheet height with independently scrolling content.

0.5.1 #

  • Prevents sticky section headers from accumulating and obscuring the final section while scrolling.
  • Adds per-workflow showDragHandle control and hides the handle by default for non-draggable embedded views.
  • Adds global and per-workflow dragHandleBuilder customization.
  • Updates the example with a full-height embedded workflow and custom handle.

0.5.0 #

  • Adds stable item identity with itemKeyBuilder for selection matching and pagination deduplication.
  • Adds custom search inputs with global theme defaults and per-sheet overrides.
  • Exposes SelectionSheetView<T> for embedded single and multi-selection workflows.
  • Propagates item identity and custom search inputs through native form fields.
  • Adds the optional SelectionSheetViewItem<T> configuration object to showSingle and showMulti.
  • Refreshes the example app with interactive form, modal, remote grid, custom search, and embedded-view demonstrations.

0.4.0 #

  • Adds cooperative cancellation tokens to every async page request.
  • Cancels superseded search, refresh, pagination, and dismissed-sheet requests.
  • Adds globally and locally configurable grid presentation.
  • Adds native single and multi Flutter FormField widgets.
  • Keeps form-field hints optional to avoid duplicating an input label.

0.3.0 #

  • Adds debounced remote search with stale-response protection.
  • Adds page-number and cursor pagination through a shared request contract.
  • Adds grouped sections with optional sticky and custom headers.
  • Adds removable selected-item chips with typed custom builders.
  • Adds global and per-sheet loading, empty, error, pagination loading, and pagination error builders.
  • Adds retry handling for initial and pagination failures.
  • Adds programmatic and pull-to-refresh support for remote sheets.

0.2.0 #

  • Adds a 300 ms default debounce for local search.
  • Adds global and per-sheet search debounce configuration.
  • Allows debouncing to be disabled with Duration.zero.

0.1.0 #

  • Adds typed single and multi-selection sheets.
  • Adds local search and disabled-item support.
  • Adds draggable heights and keyboard avoidance.
  • Adds adaptive Material and Cupertino presentation.
  • Adds global theming and per-sheet item builder overrides.
0
likes
160
points
75
downloads

Documentation

API reference

Publisher

verified publisherpinz.dev

Weekly Downloads

A production-ready adaptive selection workflow for Flutter.

Repository (GitHub)
View/report issues

Topics

#bottom-sheet #selection #search #picker #flutter

License

MIT (license)

Dependencies

flutter

More

Packages that depend on selection_sheet