diff --git a/src/components/medications/scheduling/CadencePicker.tsx b/src/components/medications/scheduling/CadencePicker.tsx new file mode 100644 index 000000000..64b498682 --- /dev/null +++ b/src/components/medications/scheduling/CadencePicker.tsx @@ -0,0 +1,586 @@ +"use client"; + +/** + * v1.5.0 — CadencePicker component. + * + * Single picker exposing all 8 cadence kinds as a flat-grouped radio + * list (per design-synthesis R-1 + R-4). One native radio drives the + * `kind`; conditional sub-controls render only when their parent + * radio is selected (hide-not-grey-out). + * + * Emits a `CadenceValue` (`{ kind, rrule, rollingIntervalDays, + * oneShot }`) via `onChange`. The wizard / form layer maps that to + * the wire shape — `oneShot` to the medication level, `rrule` + + * `rollingIntervalDays` to the schedule. + * + * No new dependencies. Uses native `` for the + * grouped-flat-list semantic (no `RadioGroup` primitive ships in + * `src/components/ui/`); shadcn `