item_dropper 0.0.2
item_dropper: ^0.0.2 copied to clipboard
Customizable Flutter dropdowns with single and multi-select, search, keyboard navigation, accessibility, and add/delete support.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.0.2 - 2025-12-19 #
- Fixed items for pub.dev.
0.0.1 - 2025-12-08 #
Added #
Core Widgets
SingleItemDropper<T>- Single-select dropdown with search functionalityMultiItemDropper<T>- Multi-select dropdown with chip-based displayItemDropperItem<T>- Generic item model supporting any value type
Features
- Real-time search and filtering for both widgets
- Full keyboard navigation (arrow keys, Enter, Escape)
- Group headers for organizing items
- Add new items on-the-fly with
onAddItemcallback - Delete items from the list with
onDeleteItemcallback - Smart dropdown positioning (automatically positions above or below based on screen space)
- Max selection limit for multi-select widget
- Disabled state support for both widgets
Customization
- Custom text styles for field, popup items, and group headers
- Custom decorations for field container and selected chips
- Custom popup item builder for complete rendering control
- Configurable dimensions (width, height, elevation)
- Scrollbar customization (visibility and thickness)
- Optional mobile keyboard display
Accessibility
- Screen reader support with semantic labels
- Live region announcements for selections
- Keyboard-only navigation support
- ARIA-compliant widget structure
Performance Optimizations
- Cached filtering results for fast search
- Decoration caching to prevent unnecessary rebuilds
- Smart rebuild throttling
- O(1) selection lookups with Set-based storage
- Debounced scroll animations
Architecture
- Manager pattern for clean separation of concerns
KeyboardNavigationManagerfor unified keyboard handlingDecorationCacheManagerfor efficient stylingLiveRegionManagerfor accessibility announcementsMultiSelectFocusManagerfor focus state trackingMultiSelectOverlayManagerfor overlay lifecycleMultiSelectSelectionManagerfor selection state
Fixed #
- None (initial release)
Changed #
- None (initial release)
Deprecated #
- None (initial release)
Removed #
- None (initial release)
Security #
- None (initial release)
Future Releases #
See GitHub Issues for planned features and bug reports.