date static method

ArcaneField date({
  1. String? name,
  2. String? description,
  3. IconData? icon,
  4. DateTime? defaultValue,
  5. required Future<DateTime> getter(),
  6. required Future setter(
    1. DateTime
    ),
  7. PromptMode mode = PromptMode.popover,
  8. CalendarViewType? initialViewType,
  9. Widget? dialogTitle,
  10. CalendarView? initialView,
  11. AlignmentGeometry? popoverAlignment,
  12. AlignmentGeometry? popoverAnchorAlignment,
  13. EdgeInsetsGeometry? popoverPadding,
  14. DateStateBuilder? stateBuilder,
})

Creates a date input field for selecting and setting DateTime values. This field integrates a calendar view for date selection, supporting popover or full dialog modes. It is designed for use within Form components in the Arcane UI system, allowing customization of the initial calendar view and state building for dynamic date displays.

Parameters:

  • name: Optional display name for the field.
  • description: Optional descriptive text.
  • icon: Optional icon for the field.
  • defaultValue: Initial date (defaults to current date if null).
  • getter: Async function to fetch the current date.
  • setter: Async function to update the date.
  • mode: Picker mode (PromptMode.popover default).
  • initialViewType: Starting calendar view type (e.g., day, month).
  • dialogTitle: Custom dialog title widget.
  • initialView: Pre-configured calendar view.
  • popoverAlignment, popoverAnchorAlignment, popoverPadding: Popover positioning.
  • stateBuilder: Custom builder for date state display.

Returns: An ArcaneField<DateTime> for date input.

Implementation

static ArcaneField date({
  String? name,
  String? description,
  IconData? icon,
  DateTime? defaultValue,
  required Future<DateTime> Function() getter,
  required Future Function(DateTime) setter,
  PromptMode mode = PromptMode.popover,
  CalendarViewType? initialViewType,
  Widget? dialogTitle,
  CalendarView? initialView,
  AlignmentGeometry? popoverAlignment,
  AlignmentGeometry? popoverAnchorAlignment,
  EdgeInsetsGeometry? popoverPadding,
  DateStateBuilder? stateBuilder,
}) =>
    ArcaneField<DateTime>(
        meta: ArcaneFieldMetadata(
          name: name,
          description: description,
          icon: icon,
        ),
        provider: ArcaneFieldDirectProvider(
            defaultValue: defaultValue ?? DateTime.now(),
            getter: (_) => getter(),
            setter: (_, v) => setter(v)),
        builder: (context) => ArcaneDateField(
              mode: mode,
              initialViewType: initialViewType,
              dialogTitle: dialogTitle,
              initialView: initialView,
              popoverAlignment: popoverAlignment,
              popoverAnchorAlignment: popoverAnchorAlignment,
              popoverPadding: popoverPadding,
              stateBuilder: stateBuilder,
            ));