ArcaneDateField class

Form field widget for date selection in the Arcane component library, leveraging DatePicker for intuitive calendar-based interaction.

This class extends StatelessWidget and integrates with ArcaneField<DateTime> to manage form state and validation, supporting both popover and dialog modes via PromptMode for flexible user experiences in various device contexts. It allows customization of the initial calendar view (e.g., day, month, year), popover positioning to avoid overlaps, and a stateBuilder for dynamic date enabling/disabling based on business rules like exclusions or ranges. Ideal for inputs such as date of birth, due dates, or event scheduling, the widget automatically handles value conversion and provider updates, ensuring consistency with other temporal fields like ArcaneTimeField in comprehensive forms.

The build process fetches the current DateTime from the provider, passes it to DatePicker, and updates on selection with null fallback to default, supporting optional fields. It enhances form usability by respecting theme and locale.

Usage example:

ArcaneDateField(
  mode: PromptMode.dialog,
  initialViewType: CalendarViewType.month,
  onChanged: (date) {
    // Handle date change, e.g., validate range or update time field
  },
  stateBuilder: (context, date) => DateState.disabled if date.isAfter(DateTime.now()) else DateState.normal,
)
Inheritance
Available extensions

Constructors

ArcaneDateField({Key? key, PromptMode mode = PromptMode.popover, CalendarViewType? initialViewType, Widget? dialogTitle, CalendarView? initialView, AlignmentGeometry? popoverAlignment, AlignmentGeometry? popoverAnchorAlignment, EdgeInsetsGeometry? popoverPadding, DateStateBuilder? stateBuilder})
Constructs an ArcaneDateField instance, initializing it with parameters for date picker configuration.
const

Properties

asBuilder NeverWidgetBuilder

Available on Widget, provided by the WidgetExtension extension

no setter
asSliver Widget

Available on Widget, provided by the XWidgetArcane extension

no setter
base TextModifier

Available on Widget, provided by the TextExtension extension

no setter
black TextModifier

Available on Widget, provided by the TextExtension extension

no setter
blockQuote TextModifier

Available on Widget, provided by the TextExtension extension

no setter
blurIn Widget

Available on Widget, provided by the XWidgetEffect extension

no setter
bold TextModifier

Available on Widget, provided by the TextExtension extension

no setter
centered Widget

Available on Widget, provided by the XWidget extension

no setter
dialogTitle Widget?
Custom title widget for dialog mode, of type Widget?, providing contextual guidance such as "Choose Event Date" or branded headers. Ignored in popover mode; enhances user orientation in full-screen PromptMode.dialog sessions integrated with ArcaneField<DateTime>.
final
ellipsis TextModifier

Available on Widget, provided by the TextExtension extension

no setter
expand Widget

Available on Widget, provided by the XWidget extension

no setter
extraBold TextModifier

Available on Widget, provided by the TextExtension extension

no setter
extraLight TextModifier

Available on Widget, provided by the TextExtension extension

no setter
firstP TextModifier

Available on Widget, provided by the TextExtension extension

no setter
flexible Widget

Available on Widget, provided by the XWidget extension

no setter
foreground TextModifier

Available on Widget, provided by the TextExtension extension

no setter
h1 TextModifier

Available on Widget, provided by the TextExtension extension

no setter
h2 TextModifier

Available on Widget, provided by the TextExtension extension

no setter
h3 TextModifier

Available on Widget, provided by the TextExtension extension

no setter
h4 TextModifier

Available on Widget, provided by the TextExtension extension

no setter
hashCode int
The hash code for this object.
no setterinherited
ih Widget

Available on Widget, provided by the XWidgetArcane extension

no setter
initialView CalendarView?
Starting calendar view instance, of type CalendarView?, pre-set to a specific date, month, or year for focused selection. Useful for contextual defaults, like opening to the current month; if null, defaults to today. This field customizes the DatePicker's initial state for better UX in time-sensitive Arcane forms.
final
initialViewType CalendarViewType?
Initial view type for the calendar, of type CalendarViewType?, controlling the starting granularity (e.g., day, month, year views). If null, uses the picker's default based on context and user gesture. This parameter focuses the DatePicker on relevant periods, improving efficiency for inputs like month selection in reports.
final
inlineCode TextModifier

Available on Widget, provided by the TextExtension extension

no setter
intrinsicHeight Widget

Available on Widget, provided by the XWidget extension

no setter
intrinsicSize Widget

Available on Widget, provided by the XWidget extension

no setter
intrinsicWidth Widget

Available on Widget, provided by the XWidget extension

no setter
italic TextModifier

Available on Widget, provided by the TextExtension extension

no setter
iw Widget

Available on Widget, provided by the XWidgetArcane extension

no setter
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
lead TextModifier

Available on Widget, provided by the TextExtension extension

no setter
li TextModifier

Available on Widget, provided by the TextExtension extension

no setter
light TextModifier

Available on Widget, provided by the TextExtension extension

no setter
medium TextModifier

Available on Widget, provided by the TextExtension extension

no setter
mode PromptMode
Presentation mode for the date picker, of type PromptMode, determining popover for inline selection or dialog for immersive calendar viewing. Defaults to PromptMode.popover to preserve form flow and space efficiency. This field controls the DatePicker's display context within the ArcaneFieldWrapper, suitable for quick picks in compact forms or detailed navigation in planning scenarios.
final
modify TextModifier

Available on Widget, provided by the TextExtension extension

no setter
mono TextModifier

Available on Widget, provided by the TextExtension extension

no setter
muted TextModifier

Available on Widget, provided by the TextExtension extension

no setter
normal TextModifier

Available on Widget, provided by the TextExtension extension

no setter
p TextModifier

Available on Widget, provided by the TextExtension extension

no setter
popoverAlignment AlignmentGeometry?
Alignment of the popover relative to the field, of type AlignmentGeometry?, for layout adjustments in tight spaces or responsive designs. Applies only in popover mode; null uses system default to position the DatePicker overlay without obscuring the ArcaneFieldWrapper.
final
popoverAnchorAlignment AlignmentGeometry?
Anchor alignment for popover attachment, of type AlignmentGeometry?, ensuring proper positioning over the input field. Fine-tunes attachment in edge cases; exclusive to PromptMode.popover for precise calendar placement.
final
popoverPadding EdgeInsetsGeometry?
Internal padding for the popover container, of type EdgeInsetsGeometry?, adding space around the calendar UI elements. Customizes breathing room for readability on small screens; defaults to standard if null.
final
primaryForeground TextModifier

Available on Widget, provided by the TextExtension extension

no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
safeArea Widget

Available on Widget, provided by the XWidget extension

no setter
sans TextModifier

Available on Widget, provided by the TextExtension extension

no setter
scrollable Widget

Available on Widget, provided by the XWidget extension

no setter
scrollableHorizontal Widget

Available on Widget, provided by the XWidget extension

no setter
secondaryForeground TextModifier

Available on Widget, provided by the TextExtension extension

no setter
semiBold TextModifier

Available on Widget, provided by the TextExtension extension

no setter
singleLine TextModifier

Available on Widget, provided by the TextExtension extension

no setter
small TextModifier

Available on Widget, provided by the TextExtension extension

no setter
stateBuilder DateStateBuilder?
Custom builder for date states in the DatePicker, of type DateStateBuilder?, enabling dynamic enabling, disabling, or highlighting of dates based on rules (e.g., weekends disabled). Receives context and date; enhances validation integration with ArcaneField<DateTime> provider for business logic in forms.
final
textCenter TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textEnd TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textJustify TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textLarge TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textLeft TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textMuted TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textRight TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textSmall TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textStart TextModifier

Available on Widget, provided by the TextExtension extension

no setter
thin TextModifier

Available on Widget, provided by the TextExtension extension

no setter
underline TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x2Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x3Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x4Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x5Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x6Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x7Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x8Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x9Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
xLarge TextModifier

Available on Widget, provided by the TextExtension extension

no setter
xSmall TextModifier

Available on Widget, provided by the TextExtension extension

no setter

Methods

animate({Key? key, List<Effect>? effects, AnimateCallback? onInit, AnimateCallback? onPlay, AnimateCallback? onComplete, bool? autoPlay, Duration? delay, AnimationController? controller, Adapter? adapter, double? target, double? value}) Animate

Available on Widget, provided by the AnimateWidgetExtensions extension

Wraps the target Widget in an Animate instance, and returns the instance for chaining calls. Ex. myWidget.animate() is equivalent to Animate(child: myWidget).
asSkeleton({bool enabled = true, bool leaf = false, Widget? replacement, bool unite = false, AsyncSnapshot? snapshot}) Widget

Available on Widget, provided by the SkeletonExtension extension

Converts the widget to a skeleton with advanced configuration options.
asSkeletonSliver({bool enabled = true}) Widget

Available on Widget, provided by the SkeletonExtension extension

Converts the widget to a skeleton suitable for sliver layouts.
ast(int ml) Widget

Available on Widget, provided by the XAST extension

build(BuildContext context) Widget
Renders the date field by embedding a DatePicker within ArcaneFieldWrapper<DateTime> for form integration.
override
center({Key? key}) Widget

Available on Widget, provided by the WidgetExtension extension

clip({Clip clipBehavior = Clip.hardEdge}) Widget

Available on Widget, provided by the WidgetExtension extension

clipOval({Clip clipBehavior = Clip.antiAlias}) Widget

Available on Widget, provided by the WidgetExtension extension

clipPath({Clip clipBehavior = Clip.antiAlias, required CustomClipper<Path> clipper}) Widget

Available on Widget, provided by the WidgetExtension extension

clipRRect({BorderRadiusGeometry borderRadius = BorderRadius.zero, Clip clipBehavior = Clip.antiAlias}) Widget

Available on Widget, provided by the WidgetExtension extension

constrained({double? minWidth, double? maxWidth, double? minHeight, double? maxHeight, double? width, double? height}) Widget

Available on Widget, provided by the WidgetExtension extension

createElement() StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugContainer([Color color = Colors.red]) Widget

Available on Widget, provided by the DebugContainer extension

debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
excludeSkeleton({bool exclude = true}) Widget

Available on Widget, provided by the SkeletonExtension extension

Controls whether the widget should be preserved in skeleton mode.
expanded({int flex = 1}) Widget

Available on Widget, provided by the WidgetExtension extension

iconDestructiveForeground() Widget

Available on Widget, provided by the IconExtension extension

iconLarge() Widget

Available on Widget, provided by the IconExtension extension

iconMedium() Widget

Available on Widget, provided by the IconExtension extension

iconMutedForeground() Widget

Available on Widget, provided by the IconExtension extension

iconPrimary() Widget

Available on Widget, provided by the IconExtension extension

iconPrimaryForeground() Widget

Available on Widget, provided by the IconExtension extension

iconSecondary() Widget

Available on Widget, provided by the IconExtension extension

iconSecondaryForeground() Widget

Available on Widget, provided by the IconExtension extension

iconSmall() Widget

Available on Widget, provided by the IconExtension extension

iconX2Large() Widget

Available on Widget, provided by the IconExtension extension

iconX2Small() Widget

Available on Widget, provided by the IconExtension extension

iconX3Large() Widget

Available on Widget, provided by the IconExtension extension

iconX3Small() Widget

Available on Widget, provided by the IconExtension extension

iconX4Large() Widget

Available on Widget, provided by the IconExtension extension

iconX4Small() Widget

Available on Widget, provided by the IconExtension extension

iconXLarge() Widget

Available on Widget, provided by the IconExtension extension

iconXSmall() Widget

Available on Widget, provided by the IconExtension extension

ignoreSkeleton() Widget

Available on Widget, provided by the SkeletonExtension extension

Excludes the widget from skeleton effects in its parent skeleton context.
intrinsic({double? stepWidth, double? stepHeight}) Widget

Available on Widget, provided by the WidgetExtension extension

intrinsicHeight() Widget

Available on Widget, provided by the WidgetExtension extension

intrinsicWidth({double? stepWidth, double? stepHeight}) Widget

Available on Widget, provided by the WidgetExtension extension

isSliver(BuildContext context) bool

Available on Widget, provided by the XSliverWidget extension

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onDoublePressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for double press/tap gestures to this widget in Arcane UI.
onHover(void action(bool hovering)) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for hover events to this widget in Arcane UI.
onLongPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for long press gestures with the primary button to this widget in Arcane UI.
onLongSecondaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for long press gestures with the secondary button to this widget in Arcane UI.
onLongTertiaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for long press gestures with the tertiary button to this widget in Arcane UI.
onPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for primary press/tap gestures to this widget in Arcane UI.
onSecondaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for secondary press gestures (right-click) to this widget in Arcane UI.
onTertiaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for tertiary press gestures (middle-click) to this widget in Arcane UI.
pad(double all) Widget

Available on Widget, provided by the XWidget extension

padBottom(double value) Widget

Available on Widget, provided by the XWidget extension

padBy({double? left, double? top, double? right, double? bottom, double? horizontal, double? vertical}) Widget

Available on Widget, provided by the XWidgetArcane extension

padHorizontal(double value) Widget

Available on Widget, provided by the XWidgetArcane extension

padLeft(double value) Widget

Available on Widget, provided by the XWidget extension

padOnly({double left = 0, double top = 0, double right = 0, double bottom = 0}) Widget

Available on Widget, provided by the XWidget extension

padRight(double value) Widget

Available on Widget, provided by the XWidget extension

padSliverBy({double? left, double? top, double? right, double? bottom, double? horizontal, double? vertical}) Widget

Available on Widget, provided by the XWidgetArcane extension

padSliverHorizontal(double value) Widget

Available on Widget, provided by the XWidgetArcane extension

padTop(double value) Widget

Available on Widget, provided by the XWidget extension

positioned({Key? key, double? left, double? top, double? right, double? bottom}) Widget

Available on Widget, provided by the WidgetExtension extension

shadeEdge(double radius) Widget

Available on Widget, provided by the XWidgetEdge extension

shadeFrost(double value) Widget

Available on Widget, provided by the XWidgetFrost extension

shadeInvert() Widget

Available on Widget, provided by the XWidgetInvert extension

shadePixelate(double radius) Widget

Available on Widget, provided by the XWidgetPixelate extension

shadePixelateBlur({int samples = 4, double pixelSize = 8, double radius = 2}) Widget

Available on Widget, provided by the XWidgetPixelateBlur extension

shadeRGB({double radius = 5, double spin = 1}) Widget

Available on Widget, provided by the XWidgetRGB extension

shadeWarp({double amplitude = 1, double frequency = 1, double z = 1, int octaves = 2}) Widget

Available on Widget, provided by the XWidgetWarp extension

shadeWarpAnimation({double amplitude = 1, double frequency = 1, double z = 1, double zSpeed = 1, int octaves = 2}) Widget

Available on Widget, provided by the XWidgetWarp extension

shimmer({bool loading = true}) Widget

Available on Widget, provided by the XWidgetArcane extension

sized({double? width, double? height}) Widget

Available on Widget, provided by the WidgetExtension extension

sized({double? width, double? height}) Widget

Available on Widget, provided by the XWidget extension

then(InlineSpan span) Widget

Available on Widget, provided by the TextExtension extension

thenButton({required VoidCallback onPressed, required Widget child}) Widget

Available on Widget, provided by the TextExtension extension

thenInlineCode(String text) Widget

Available on Widget, provided by the TextExtension extension

thenText(String text) Widget

Available on Widget, provided by the TextExtension extension

toBox(BuildContext context, {bool softWarn = true}) Widget

Available on Widget, provided by the XSliverWidget extension

toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toSliver(BuildContext context, {bool fillRemaining = false, bool softWarn = true}) Widget

Available on Widget, provided by the XSliverWidget extension

toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited
transform({Key? key, required Matrix4 transform}) Widget

Available on Widget, provided by the WidgetExtension extension

withAlign(AlignmentGeometry alignment) Widget

Available on Widget, provided by the WidgetExtension extension

withMargin({double? top, double? bottom, double? left, double? right, double? horizontal, double? vertical, double? all}) Widget

Available on Widget, provided by the WidgetExtension extension

withOpacity(double opacity) Widget

Available on Widget, provided by the WidgetExtension extension

withPadding({double? top, double? bottom, double? left, double? right, double? horizontal, double? vertical, double? all, EdgeInsetsGeometry? padding}) Widget

Available on Widget, provided by the WidgetExtension extension

withTooltip(String tooltip) Widget

Available on Widget, provided by the XWidgetArcane extension

Operators

operator ==(Object other) bool
The equality operator.
inherited