You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/CONTINUE.md

66 lines
3.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# CONTINUE — hand-off (2026-06-26 → next session)
Branch `active-uix`. This session's work is **committed + pushed**. Pick up the
**DateTimePicker refactor** next.
## Next task — shared "time-in-popover" for DatePicker + DateRangePicker
Full plan: `C:\Users\dev\.claude\plans\woolly-knitting-fairy.md` (approved).
Decisions locked with the user: composable `<DatePicker.Time />` part (not
auto-rendered) · DateRangePicker shows **start + end** (two time pickers).
Goal: lift the ad-hoc time editor out of the DatePicker **demo** into a
**shared, reusable mechanism**, then give DateRangePicker the same. DatePicker
becomes effectively a DateTimePicker (granularity reaching `hour|minute|second`
surfaces the time editor); the **hour cycle derives from `locale`** when
`hourCycle` is unset (en-US → 12h, es-ES → 24h), for input **and** time editor.
Both soma providers already plumb `granularity` + `hourCycle`; the missing piece
is the popover time editor (today hand-composed in the date-picker demo).
Execution order (see plan §1–6):
1. `picker-shell/picker-time.ts` (new) — pure helpers: `localeHourCycle`,
`granularityHasTime`, `timeOf`, `withTimeOn`, `withoutTime` (reuse `$libs/days`).
2. `picker-shell/picker-time-row.svelte` (new) — value-agnostic time row (knows
only `TimeValue`); self-hides when granularity has no time; composes the
`<TimePicker>` namespace; owns the relocated time-row CSS.
3. Both `*-picker.svelte` roots derive `hourCycle ?? localeHourCycle(locale)` →
pass to the soma Provider (input honours it); publish a bridge context
(value get/set + granularity/locale/resolved hourCycle).
4. `.Time` parts: `date-picker-time.svelte` (one row) + `date-range-picker-time.svelte`
(two rows, start/end); register in each `index.ts` + `types.ts`.
5. langs: `picker-shell.ts` keys `time` / `start` / `end`.
6. Demos: date-picker uses `<DatePicker.Time />` (drop the local bridge/CSS);
date-range-picker gains a granularity control + `<DateRangePicker.Time />`.
Verify: `npx svelte-check … --threshold error` (0 new; the only pre-existing
time-picker error is `time-picker-content.svelte` size/Popover) ·
`npx vitest run src/uix/soma/components/{date-picker,date-range-picker,time-picker}` ·
browser DOM checks (preview 5180; `:hover`/screenshot tooling is flaky).
## Done this session (in the commit)
- **Calendar-nav unification** — shared `CalendarNav` context so
Calendar/RangeCalendar/DateRangePicker reuse the refined month/year selects +
prev/next buttons (deleted the range pickers' bespoke selects). New
`calendar-nav-button`, `calendar-select.css`, `visual-context`, soma `calendar-nav`.
- **Popover** — fixed trigger re-click bounce.
- **TimePicker → datetime building blocks**: `DayPeriodToggle` now composes the
system `<ToggleGroup>` (was native radios; `type=single` `deselectable=false`
solid/primary, right-aligned); sliders self-hide per granularity; `ruler` →
`showScales`; slider labels follow the canonical label scale per size;
active-toggle hover fixed (no wash; `archetypes.css` hover rule now excludes
`data-state=on` so a pressed toggle keeps its accent instead of going
content-primary/black in light).
- **DatePicker demo** — locale-derived hour cycle + composed TimePicker time row
(this is what the next-task plan generalises to the component).
- **Perf (audit A31)** — lifted selection/checked sets across 9 providers.
- **langs** — picker-shell footer strings.
## Do NOT commit (active / separate tracks)
`soma/components/words/**`, `eidos/components/palabras/**` (firm rule), the
untracked `chronos/` component, `web/routes/demos/**`, and the loose untracked
docs (`README.md`, `SYSTEM-AUDIT-*`, `Disenando_*`, `COMPARATIVA_SIUM_*`).
`metrics.ts` langs rode along this commit only because `langs/index.ts` imports it.

Powered by TurnKey Linux.