feat(sheets): fit-and-finish — auto-format, color palette, color sync, horizontal fill (v0.58.0)
Four Excel/Sheets-parity wins for daily spreadsheet work:
- Auto-format on entry: typing $1,234.56, 75%, 2025-03-15, or 1,234 now
stores the parsed numeric value and stamps the appropriate format
instead of keeping the raw string. Existing formats are preserved.
New src/sheets/auto-format.ts (30 unit tests).
- Preset color palette: both text-color and background-color pickers
gain a ▾ dropdown with 14 curated swatches (7×2 grid). Native picker
still works; palette short-circuits it for the common case. New
src/sheets/color-palette.ts (15 jsdom tests).
- Toolbar color sync: selecting a styled cell now reflects its s.color
/ s.bg in the toolbar pickers (input value + visible swatch). New
updateColorPickerState() in toolbar-wiring.ts; normalizes 3-char hex
and passes oklch()/rgb() through verbatim. 8 new jsdom tests.
- Horizontal drag-to-fill: fill handle now supports left/right drag.
Axis picked by whichever direction is further out of the source
range (mirrors Excel/Sheets). Arithmetic sequences, text repeat,
and formula column references all propagate; adjustFormulaRef runs
with dCol on the horizontal branch. Auto-scroll near left/right
edges added. 8 new jsdom tests.
Closes #691