flek_select 0.3.0 copy "flek_select: ^0.3.0" to clipboard
flek_select: ^0.3.0 copied to clipboard

A customizable Flutter select widget library with Select dropdown and ToggleButtonGroup components. Features flexible overlay options and tree-shakable exports.

📋 Changelog #

0.3.0 - 2025-11-11 #

🚀 Major Changes #

  • OverlayEntry-based popup system: Completely rewritten Select widget to use Flutter's OverlayEntry API instead of showDialog
    • Fixes popup closing issues in complex widget hierarchies (e.g., SliverPersistentHeader)
    • Synchronous removal prevents Navigator stack conflicts
    • Uses rootOverlay: true to render above all navigation elements (header, bottom nav, etc.)
    • Centered modal container with max 80% screen height and 90% screen width
    • Scrollable content when options exceed available space

✨ Improved #

  • Better backdrop behavior:
    • Full-screen dark backdrop (87% opacity) that covers entire app including navigation
    • Uses Tappable widget for consistent touch feedback
    • SizedBox.expand() ensures complete screen coverage
  • Proper overlay lifecycle management:
    • Overlay cleanup in dispose() prevents memory leaks
    • Prevents multiple overlays from opening simultaneously
    • Safe removal with mounted state checking

🗑️ Deprecated #

  • showOverlay parameter: Now deprecated as overlay behavior is built-in and optimized
    • Custom overlay integration is no longer needed for most use cases
    • Will be removed in future versions

🔧 Technical Details #

  • Popup now inserts at root overlay level using Overlay.of(context, rootOverlay: true)
  • GlobalKey-based positioning system (prepared for future dropdown-style positioning)
  • No longer dependent on Navigator for close behavior

📝 Breaking Changes #

  • While the API surface remains compatible, the internal behavior has changed significantly
  • If you were relying on showOverlay parameter, you'll need to update your implementation
  • Popup now always renders as centered modal instead of dialog

0.0.2 - 2025-11-10 #

✨ Added #

  • 🎛️ ToggleButtonGroup Widget: New row-based toggle button component for inline selection
    • Displays options as horizontal row of tappable buttons
    • Supports multiline wrapping with customizable spacing
    • Custom buttonBuilder for full design control
    • Rounded edges by default for beautiful appearance
    • Uses same SelectOption model as Select widget
    • Scrollable mode: New scrollable parameter enables horizontal scrolling for buttons
    • Scroll controller support: Optional scrollController parameter for programmatic scrolling
    • Advanced scroll customization:
      • scrollPadding for horizontal padding in scrollable mode
      • scrollPhysics for custom scroll behavior (bouncing, clamping, etc.)
      • clipBehavior for controlling how content is clipped in scroll view
    • Dual alignment system:
      • wrapAlignment and wrapCrossAlignment for Wrap mode (non-scrollable)
      • scrollAlignment and scrollCrossAlignment for scrollable mode
  • 📚 Enhanced documentation with emojis and better organization
  • 🌳 Tree-shakable export for ToggleButtonGroup widget
  • 📖 Comprehensive usage examples for ToggleButtonGroup including scrollable mode with custom physics

🔄 Changed #

  • Updated README.md with fancy emojis throughout
  • Improved API reference documentation structure
  • Breaking: Renamed alignment parameter to wrapAlignment in ToggleButtonGroup for clarity between wrap and scroll modes
  • Breaking: Renamed crossAxisAlignment parameter to wrapCrossAlignment in ToggleButtonGroup for consistency and clarity

0.0.1 - 2025-11-10 #

Added #

  • Initial release of FlekSelect package
  • Select widget with flexible overlay system
  • SelectOption model for defining select options
  • Support for custom overlay via showOverlay callback
  • Tree-shakable exports for widgets and models
  • Integration with Tappable package for responsive touch feedback
  • Comprehensive customization options:
    • Labels, hints, and error messages
    • Disabled state support
    • Custom builders for options and values
    • "Not selected" option support
    • Custom styling via inputDecoration and backgroundColor

Features #

  • Default overlay using Flutter's showDialog
  • Custom overlay integration support for third-party packages
  • Responsive touch feedback from Tappable package
  • Full feature parity with dredge_ui Select widget
2
likes
0
points
150
downloads

Publisher

unverified uploader

Weekly Downloads

A customizable Flutter select widget library with Select dropdown and ToggleButtonGroup components. Features flexible overlay options and tree-shakable exports.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, tappable

More

Packages that depend on flek_select