liqkit_ui
Inputs

Pickers

The picker family gives you a single-column tap-to-open sheet, multi-column wheel pickers, number / measurement steppers, inline wheel-style date and time pickers (5 modes), trigger-button list rows that open a wheel sheet, date-range coupling, and four timer-picker modes for countdowns.

Every variant below is the same widget the showcase app on the App Store uses — sourced from package:liqkit_ui/examples.dart so the docs and the mobile app stay in sync.

Inline Calendar

// ignore_for_file: file_names // hyphenated name required by snippet manifest conventionimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget pickerInlineCalendarBuilder(BuildContext context) {  return const SnippetFrame(    maxWidth: 420,    height: 360,    child: _InlineCalendarExample(),  );}class _InlineCalendarExample extends StatefulWidget {  const _InlineCalendarExample();  @override  State<_InlineCalendarExample> createState() => _InlineCalendarExampleState();}class _InlineCalendarExampleState extends State<_InlineCalendarExample> {  DateTime _visibleMonth = DateTime(2026, 4);  int? _selectedDay = 15;  void _shiftMonth(int delta) {    setState(() {      _visibleMonth = DateTime(_visibleMonth.year, _visibleMonth.month + delta);      _selectedDay = null;    });  }  @override  Widget build(BuildContext context) {    return LiqDatePicker(      year: _visibleMonth.year,      month: _visibleMonth.month,      selectedDay: _selectedDay,      currentDay:          _visibleMonth.year == 2026 && _visibleMonth.month == 4 ? 27 : null,      onPrev: () => _shiftMonth(-1),      onNext: () => _shiftMonth(1),      onDayTap: (day) => setState(() => _selectedDay = day),    );  }}

Single Column

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerSingleColumnBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 360, child: PickerSingleColumnExample());}

Multi Column

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerMultiColumnBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 380, height: 280, child: PickerMultiColumnExample());}

Number

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerNumberBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 320, child: PickerNumberExample());}

Measurement

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerMeasurementBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 280, height: 240, child: PickerMeasurementExample());}

Wheel Date

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerWheelDateBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 380, height: 260, child: PickerWheelDateExample());}

Wheel Time

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerWheelTimeBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 380, height: 260, child: PickerWheelTimeExample());}

Wheel Date Time

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerWheelDateTimeBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 380, height: 260, child: PickerWheelDateTimeExample());}

Wheel Month Year

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerWheelMonthYearBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 380, height: 260, child: PickerWheelMonthYearExample());}

Wheel Time 24h

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerWheelTime24hBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 380, height: 260, child: PickerWheelTime24hExample());}

Trigger Buttons

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerTriggerButtonsBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 420, child: PickerTriggerButtonsExample());}

Date Range

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerDateRangeBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 420, child: PickerDateRangeExample());}

Timer Hms

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerTimerHmsBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 360, height: 240, child: PickerTimerHmsExample());}

Timer Hm

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerTimerHmBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 360, height: 220, child: PickerTimerHmExample());}

Timer Ms

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerTimerMsBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 360, height: 220, child: PickerTimerMsExample());}

Timer Interval

// ignore_for_file: file_namesimport 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/examples.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`./// Sources its widget tree from `package:liqkit_ui/examples.dart` so the/// docs preview stays in lockstep with the showcase app.Widget pickerTimerIntervalBuilder(BuildContext context) {  return const SnippetFrame(maxWidth: 360, height: 220, child: PickerTimerIntervalExample());}