bee_date_picker 0.1.1 copy "bee_date_picker: ^0.1.1" to clipboard
bee_date_picker: ^0.1.1 copied to clipboard

A highly customizable, performant, and accessible date picker widget for Flutter. Supports single date selection, date range selection, custom themes, and localization out of the box.

🐝 Bee Date Picker #

A highly customizable and lightweight date selection suite for Flutter.

bee_date_picker provides a reliable and responsive set of widgets for selecting dates and ranges. It's designed to be easy to integrate, deeply customizable through themes, and keeps your project lightweight with zero external dependencies.

pub package flutter GitHub stars


🍯 Showcase #

Experience the fluid interaction and premium design of Bee Date Picker. Please check the Example Project.

Bee Date Picker Showcase

🌓 Professional Dark & Light Support #

Light Mode Dark Mode

✨ Features Matrix #

Feature Single Range Month Year
Inline Widget
Dialog Helper
Dark/Light Theme
Localization
Custom Builders
Min/Max Constraints

🚀 Getting Started #

1. Installation #

Add to your pubspec.yaml:

dependencies:
  bee_date_picker: ^0.1.0

2. High-Fidelity Dialogs (The "One-Liner") #

Launch a professional, pre-styled picker dialog immediately.

import 'package:bee_date_picker/bee_date_picker.dart';

void _pickDate() async {
  // 1. Single Date
  final DateTime? date = await showBeeDatePicker(context: context);

  // 2. Date Range
  final DateRange? range = await showBeeDateRangePicker(context: context);

  // 3. Specialized
  final DateTime? month = await showBeeMonthPicker(context: context);
  final int? year = await showBeeYearPicker(context: context);
}

3. Inline Picker (The "Embedded" Way) #

Use widgets directly in your layouts for custom integration.

BeeDatePicker(
  controller: BeeDateController(initialDate: DateTime.now()),
  onDateSelected: (date) => print(date),
)

🏗️ Mastering the Theme (Signature Pro) #

Bee Date Picker uses a centralized BeePickerTheme that adaptations dynamically to system brightness.

Theme Priority #

  1. Provided theme parameter in individual pickers.
  2. Parent BeePickerThemeScope in the widget tree.
  3. Default BeePickerDefaults (adapts to Light/Dark mode).

Key Theme Properties #

Property Summary
selectedDayColor The primary brand color for selected days.
rangeDayColor Background color for dates within a range selection.
borderRadius Curvature of picker container and selection markers.
headerTitleTextStyle Styling for the Month/Year navigation title.
todayBorderColor Indicator color for the current date.
dialogBackgroundColor Background color of the popup dialog.
BeePickerThemeScope(
  theme: BeePickerTheme(
    selectedDayColor: Color(0xFFFACC15), // Bee Yellow
    borderRadius: 16,
    headerIconColor: Colors.black,
  ),
  child: MyApp(),
)

⚙️ Behavior Configuration #

Fine-tune how the picker behaves using BeePickerConfig.

Constraints & Formatting

Property Type Description
minDate DateTime Earliest date allowed.
maxDate DateTime Latest date allowed.
firstDayOfWeek Enum monday or sunday.
showOutsideDays bool Show dates from next/prev months.
locale Locale Force a specific language/formatting.

Controlling Disabled Dates

config: BeePickerConfig(
  disabledDates: DisabledDates(
    weekdays: [DateTime.sunday], // No selection on Sundays
    predicate: (date) {
      // Custom business logic: e.g., no selection on national holidays
      return isPublicHoliday(date);
    },
  ),
)

🎮 Advanced: BeeDateController #

For power users, BeeDateController provides programmatic control over the picker's state.

final controller = BeeDateController();

// Navigate programmatically
controller.nextPage();
controller.goToMonth(DateTime(2025, 12));

// Switch View Mode
controller.switchView(BeeCalendarView.year);

// Clear or Set Selection
controller.selectDate(DateTime(2024, 1, 1));

🛠️ Extensibility (Custom Builders) #

Wish to replace the header or the day cells entirely? Use our builder API.

BeeDatePicker(
  controller: controller,
  config: BeePickerConfig(
    dayCellBuilder: (context, date, isSelected, isDisabled, isToday, isOutside) {
      return Center(
        child: Text(
          '${date.day}',
          style: TextStyle(color: isSelected ? Colors.amber : Colors.black),
        ),
      );
    },
  ),
)

🐝 Powered by Orion B Project #

"Making coding feels like magic."

1
likes
150
points
107
downloads

Documentation

Documentation
API reference

Publisher

verified publisherorionbproject.web.id

Weekly Downloads

A highly customizable, performant, and accessible date picker widget for Flutter. Supports single date selection, date range selection, custom themes, and localization out of the box.

Homepage
Repository (GitHub)
View/report issues
Contributing

Topics

#date-picker #calendar #widget #date-range #ui

License

BSD-3-Clause (license)

Dependencies

flutter, intl

More

Packages that depend on bee_date_picker