Skip to main content

super_daily_extensions 1.0.2 copy "super_daily_extensions: ^1.0.2" to clipboard
super_daily_extensions: ^1.0.2 copied to clipboard

A comprehensive Flutter toolkit featuring country & city pickers, custom UI widgets, responsive utilities, and daily developer extensions.

super_daily_extensions #

A modern, comprehensive Flutter toolkit providing country & city pickers, custom UI components, responsive utilities, and daily developer extensions to boost productivity.

pub package license


✨ Features #

  • 🌍 All World Countries & Cities: Complete database of countries with flags, dial codes, and auto-filtered cities.
  • 📍 Smart Pickers:
    • CountryDropdown — Searchable country dropdown.
    • CityDropdown — Dynamic city dropdown auto-linked to selected country.
    • CountryPhoneField — Phone input with integrated flag & dial code picker.
    • CountryCityPhonePicker — Composite country, city, and phone form picker.
  • 🎨 Professional UI Components:
    • CustomButton — Primary, outlined, text variants, loading spinners, and icon support.
    • CustomContainer — Responsive percentage-based sizing (w: 90, h: 30), shadows, gradients, borders.
    • CustomText — Semantic typography (heading, subheading, body, caption) with responsive scaling and click handling.
    • CustomTextField — Status-aware (normal, success, warning, error), outline/filled/rounded variants.
    • CustomAlertDialog — Animated backdrop blur dialogs with semantic types (success, warning, error, confirm).
    • CustomSnackBar — Floating semantic snackbars accessible via context or global key.
    • CustomDatePickerField, CustomTimePickerField, CustomDateRangePicker — Clean form pickers with intl formatting.
    • CustomImagePreview — Base64/memory thumbnail with interactive pinch-to-zoom full-screen viewer.
    • ProfessionalDataTable — Sortable, zebra-striped, responsive data table with dual-axis scrolling.
  • ⚡ Daily Developer Extensions:
    • Context: context.width, context.isMobile, context.push(), context.showSuccessDialog(), context.showConfirmDialog(), context.showCustomSnackBar(), context.pickDate(), context.pickTime().
    • Widget: .p(), .px(), .py(), .center(), .expanded(), .onTap(), .card(), .cornerRadius(), .toCustomContainer().
    • String: 'test@email.com'.isValidEmail, 'flutter_dev'.toTitleCase, '0300-1234567'.cleanPhoneNumber, 'Title'.toHeading(), 'Sub'.toSubheading().
    • Num & DateTime: 16.h, 10.w, 2.seconds, 500.ms, dateTime.toDisplayDate(), timeOfDay.formatPattern().

📸 Screenshots #

🎨 Custom UI Widgets & Pickers #

Custom Buttons & TextFields Country, City & Phone Picker Date, Time & Image Preview
Buttons and TextFields Country City Phone Picker Date Time and Image Preview

🎨 Semantic Alert Dialogs & Modals #

Success Alert Warning Alert Error Alert Confirm Modal
Success Dialog Warning Dialog Error Dialog Confirm Dialog

📊 Data Tables & Dialog Overview #

Professional Data Table Dialogs & Alerts Overview
Professional Data Table Dialogs and Alerts

📦 Installation #

Add this to your pubspec.yaml:

dependencies:
  super_daily_extensions: ^1.0.2

Then run:

flutter pub get

🚀 Quick Start #

1. Import the package #

import 'package:super_daily_extensions/super_daily_extensions.dart';

2. Country & City Dropdowns #

// Standalone Country Dropdown
CountryDropdown(
  selectedCountry: selectedCountry,
  onChanged: (country) {
    setState(() => selectedCountry = country);
  },
)

// Dynamic City Dropdown (Filtered by Country)
CityDropdown(
  country: selectedCountry,
  selectedCity: selectedCity,
  onChanged: (city) {
    setState(() => selectedCity = city);
  },
)

// Phone Field with Country Flag
CountryPhoneField(
  selectedCountry: selectedCountry,
  onPhoneChanged: (fullPhone, rawNumber, dialCode) {
    print('Full: $fullPhone, Number: $rawNumber');
  },
)

// All-in-one Master Picker
CountryCityPhonePicker(
  showCountry: true,
  showCity: true,
  showPhone: true,
  onChanged: (country, city, phone) {
    print('Selected: ${country?.name}, $city, $phone');
  },
)

3. Professional UI Widgets #

Buttons & Progress

CustomButton.primary(
  title: 'Save Changes',
  icon: Icons.check,
  onPressed: () {},
)

CustomButton.outlined(
  title: 'Cancel',
  onPressed: () {},
)

CustomButton(
  title: 'Loading',
  isLoading: true,
  onPressed: () {},
)

Responsive Container & Typography

// Responsive container (e.g. 90% screen width, 12px radius)
CustomContainer(
  w: 90,
  radius: 12,
  padding: const EdgeInsets.all(16),
  child: 'Welcome to App'.toHeading(),
)

// Chained widget extension
const Text('Card Content')
  .toCustomContainer(radius: 16, color: Colors.white);

// Typographic string extensions
'Dashboard Overview'.toHeading();
'Monthly Statistics'.toSubheading();
'Standard body description text.'.toBody();
'Updated 5m ago'.toCaption();

Dialogs & SnackBars via Context Extensions

// Semantic alert dialogs
context.showSuccessDialog(
  title: 'Payment Successful',
  message: 'Your order has been placed successfully!',
);

context.showConfirmDialog(
  title: 'Delete Item?',
  message: 'This action cannot be undone.',
  isDanger: true,
  onConfirm: () => deleteItem(),
);

// Floating SnackBars
context.showCustomSnackBar('File uploaded!');

Pickers & Data Table

// Date & Time form pickers
CustomDatePickerField(
  selectedDate: DateTime.now(),
  dateFormat: 'dd/MM/yyyy',
  onDateSelected: (date) {},
)

CustomTimePickerField(
  selectedTime: TimeOfDay.now(),
  timeFormat: 'hh:mm a',
  onTimeSelected: (time) {},
)

CustomDateRangePicker(
  startDate: startDate,
  endDate: endDate,
  onRangeSelected: (start, end) {},
)

// Professional Data Table
ProfessionalDataTable(
  columns: [
    DataTableColumn(label: 'Name', field: 'name', sortable: true),
    DataTableColumn(label: 'Role', field: 'role'),
  ],
  data: [
    {'name': 'Ali Khan', 'role': 'Developer'},
    {'name': 'Sara Ahmed', 'role': 'Designer'},
  ],
  buildActions: (row) => [
    IconButton(icon: const Icon(Icons.edit), onPressed: () {}),
  ],
)

4. Daily Developer Extensions #

Spacing & Layout

16.h // SizedBox(height: 16)
10.w // SizedBox(width: 10)

Text('Save')
  .p(12)
  .center()
  .onTap(() => print('Tapped!'))
  .card(radius: 12)

Context Helpers & Navigation

if (context.isMobile) {
  // Mobile layout
}

print(context.width); // Screen width
context.push(const ProfileScreen());
context.pop();
context.hideKeyboard();

String & Date Helpers

'dev@gmail.com'.isValidEmail;       // true
'flutter_dev'.toTitleCase;           // 'Flutter Dev'
'flutter'.capitalizeFirst;          // 'Flutter'
'0300-1234567'.cleanPhoneNumber;    // '03001234567'

DateTime.now().toDisplayDate();      // '15 Jan 2026'
TimeOfDay.now().formatPattern();     // '02:30 PM'

📄 License #

This project is licensed under the MIT License - see the LICENSE file for details.

3
likes
0
points
189
downloads

Publisher

unverified uploader

Weekly Downloads

A comprehensive Flutter toolkit featuring country & city pickers, custom UI widgets, responsive utilities, and daily developer extensions.

Homepage
Repository (GitHub)
View/report issues

Topics

#country #city #dropdown #extensions #widget

License

unknown (license)

Dependencies

cupertino_icons, flutter, intl

More

Packages that depend on super_daily_extensions