ArcaneTimeField class
A specialized form field widget for time selection within the Arcane UI component system.
This class extends StatelessWidget and provides an intuitive interface for users to select TimeOfDay values, integrating seamlessly with ArcaneField<DateTime> for form state management and ArcaneFieldWrapper for consistent styling and validation in the overall form structure. It supports flexible presentation modes via PromptMode, allowing compact popover overlays for quick inline editing or full-screen dialogs for detailed time input in complex forms. Key features include customizable popover positioning and alignment to fit various layouts, support for 24-hour format to match user preferences, optional seconds display for precise timing needs, and automatic conversion of selected TimeOfDay to DateTime for standardized storage in the form provider. This widget is particularly ideal for forms requiring temporal inputs such as scheduling appointments, setting timers, or specifying event times, ensuring accessibility, theme consistency, and smooth integration with other Arcane components like ArcaneDateField for date-time combinations.
The widget retrieves the current DateTime value from the ArcaneField provider, extracts the time portion for display in a TimePicker, and updates the provider upon user selection or clearance, handling null values by reverting to the provider's default. This enables optional fields and real-time validation within the form ecosystem.
Usage example:
ArcaneTimeField(
mode: PromptMode.dialog,
onChanged: (time) {
// Handle time change, e.g., trigger validation or update related fields
},
showSeconds: true,
use24HourFormat: true,
dialogTitle: Text('Select Appointment Time'),
)
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- ArcaneTimeField
- Available extensions
Constructors
-
ArcaneTimeField({Key? key, PromptMode mode = PromptMode.popover, ValueChanged<
TimeOfDay?> ? onChanged, AlignmentGeometry? popoverAlignment, AlignmentGeometry? popoverAnchorAlignment, EdgeInsetsGeometry? popoverPadding, bool? use24HourFormat, bool showSeconds = false, Widget? dialogTitle}) -
Constructs an ArcaneTimeField instance with the provided configuration parameters.
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 displayed at the top of the dialog when using dialog mode, of type Widget?.
It allows adding branding, contextual instructions, or icons, such as "Select Meeting Time", to guide users.
This field is ignored in popover mode and enhances the immersive experience in PromptMode.dialog within forms.
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 - 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
-
The presentation mode for the time picker, of type PromptMode, controlling whether it appears as a compact
popover overlay or a full-screen dialog. This field defaults to PromptMode.popover for inline editing within
forms to maintain user flow. Use PromptMode.dialog for more comprehensive time selection in complex forms or
when additional contextual controls are beneficial. It influences how the underlying TimePicker is rendered
relative to the ArcaneFieldWrapper, impacting layout and interaction in the Arcane form system.
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 -
onChanged
→ ValueChanged<
TimeOfDay?> ? -
Optional callback of type ValueChanged<TimeOfDay?>, triggered when the user selects or clears a time value.
It receives the new TimeOfDay or null if cleared, enabling real-time form updates, custom validation logic,
or notifications outside the ArcaneField provider. This field is useful for reactive behaviors, such as
enabling/disabling dependent fields based on time selection in multi-step forms.
final
- p → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - popoverAlignment → AlignmentGeometry?
-
Alignment for the popover relative to its anchor, of type AlignmentGeometry, useful for positioning the
time picker in constrained layouts or responsive designs. If null, it defaults to the system's standard alignment.
This field only applies in popover mode and helps ensure the TimePicker overlay does not obscure important
form elements within the ArcaneFieldWrapper.
final
- popoverAnchorAlignment → AlignmentGeometry?
-
Alignment of the popover's anchor point, of type AlignmentGeometry, fine-tuning how the time picker attaches
to the field widget. Commonly used to adjust for edge cases in responsive designs or when the field is positioned
near screen boundaries. This parameter is exclusive to popover mode and enhances usability in the Arcane UI.
final
- popoverPadding → EdgeInsetsGeometry?
-
Padding applied inside the popover container, of type EdgeInsetsGeometry, providing breathing room around the
time picker UI elements. It helps prevent cramped interfaces on smaller screens or in dense forms. If null,
defaults to standard padding; customize for themed spacing in conjunction with ArcaneFieldWrapper styles.
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 - showSeconds → bool
-
Determines whether the time picker includes seconds in the selection interface, of type bool, defaulting to false.
Set to true for precise timing requirements like alarms or logs; false suits general use cases such as event scheduling.
This field affects the granularity of input in the TimePicker and subsequent DateTime storage via the provider.
final
- singleLine → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - small → TextModifier
-
Available on Widget, provided by the TextExtension extension
no setter - 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 - use24HourFormat → bool?
-
Flag to enable 24-hour time format (e.g., 14:30) instead of 12-hour with AM/PM, of type bool?.
When null, it respects the device's locale preferences for cultural consistency. Explicitly setting this ensures
uniform display across users in the Arcane form system, particularly useful for international applications.
final
- 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 toAnimate(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 -
build(
BuildContext context) → Widget -
Builds the widget tree for the time field, encapsulating a TimePicker within an ArcaneFieldWrapper
for consistent form styling, validation, and state management.
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 -
padBottom(
double value) → Widget -
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 -
padOnly(
{double left = 0, double top = 0, double right = 0, double bottom = 0}) → Widget -
padRight(
double value) → Widget -
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 -
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 -
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