1# llimphi-widget-datetime-picker
2
3Date and time pickers.
4
5Both share the shape of any native picker: a **trigger** in the form, showing
6the formatted value (or the placeholder when empty) and emitting a `Msg` when
7clicked, and a **popup** the host mounts in `App::view_overlay`, with a scrim
8that dismisses on outside click.
9
10The widget keeps **no state**: the value, whether it is open and —for dates—
11the focused month live in the caller's `Model`. That is what lets the same
12picker serve a form, a table cell or a filter.
13
14The date picker **composes `llimphi-widget-calendar`** rather than
15reimplementing a grid: it inherits min/max limits, range selection, year jump
16and the key map. The time picker is a grid of hours plus a grid of minutes by
17step — no scrolling, no extra state, which is what a compact picker needs.
18
19What belongs to this crate is **formatting and parsing**, which is where a
20picker becomes usable or not: `formatear_fecha` / `parsear_fecha` (ISO and
21day-first, with `-`, `/` or `.`), and `Hora` with
22`formatear`/`parsear`/`mover`/`al_paso` in 24 h or AM/PM. All pure and testable.
23
24---
25
26Part of **llimphi** — see [llimphi](../../README.md).
README.md
llimphi-widget-datetime-picker
Date and time pickers.
Both share the shape of any native picker: a trigger in the form, showing
the formatted value (or the placeholder when empty) and emitting a Msg when
clicked, and a popup the host mounts in App::view_overlay, with a scrim
that dismisses on outside click.
The widget keeps no state: the value, whether it is open and —for dates—
the focused month live in the caller's Model. That is what lets the same
picker serve a form, a table cell or a filter.
The date picker composes llimphi-widget-calendar rather than
reimplementing a grid: it inherits min/max limits, range selection, year jump
and the key map. The time picker is a grid of hours plus a grid of minutes by
step — no scrolling, no extra state, which is what a compact picker needs.
What belongs to this crate is formatting and parsing, which is where a
picker becomes usable or not: formatear_fecha / parsear_fecha (ISO and
day-first, with -, / or .), and Hora with
formatear/parsear/mover/al_paso in 24 h or AM/PM. All pure and testable.
Part of llimphi — see llimphi.