Expand description
TimeEdit — text input for time-of-day, bound to Signal<Option<Time>>.
Single-line editable time field with strftime-pattern parse/format
and optional 12h/24h mode + AM/PM. Same compositional pattern as
DateEdit (TextInputField + commit on
Enter/blur + step keys), without a popover (desktop convention is no
graphical time picker).
§Behaviour
- Value binding:
Signal<Option<Time>>—Noneshows the placeholder. - Pattern: 24h default
%H:%M; 12h is%I:%M %p. Override viaformat_pattern. Add seconds withseconds(SecondsMode::Editable). - Keyboard (preview-pass on the wrapper):
- Arrow Up / Down → ±
step_minutes - PageUp / PageDown → ±60 minutes
- Shift+ on either → ×10 multiplier (×600 max so values stay sane)
- Arrow Up / Down → ±
§Accessibility
- Container —
Role::TimeInputwithset_valueformatted asHH:MM:SSandset_labelfrom.label(). - Underlying TextInputField keeps
Role::TextInputso AT knows it’s editable.
ⓘ
use teksilo_core::signal::Signal;
use teksilo_widgets::time_edit::{TimeEdit, TimeFormat, SecondsMode};
let value = Signal::new(None);
let _field = TimeEdit::new(value)
.format(TimeFormat::Hour24)
.seconds(SecondsMode::Hidden);Structs§
- Time
Edit - Single-line editable time-of-day field.
Enums§
- Seconds
Mode - Whether the seconds segment is shown in
TimeEdit. - Time
Format - 12h vs 24h time formatting.