Hardens the shared formatters ahead of all three frontends finally consuming this package (fixes "NaN miles", "Range: 100 150mi", "Level2"):
- `formatLabel`: letter→digit boundary spacing ("level2" → "Level 2"), acronym casing (DCFC/EV/SUV/VIN/DC/A\/C), bare numeric ranges pass through untouched
- new `formatRange`: "150-200" → "150–200 mi", "200+" → "200+ mi"; empty → '' (callers render "Not specified")
- `formatBudget` is now the numeric (min, max) dollar formatter matching the API payload; the wizard's slug map moves to `formatBudgetBucket`
- new `vehicleName({year, make, model, commissioned})`
Breaking rename is safe — nothing consumes 0.1.0. Publish to the Gitea registry follows merge.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
- formatLabel: letter→digit boundary spacing ("level2" → "Level 2"),
acronym casing (DCFC/EV/SUV/VIN/DC/A\C), bare numeric ranges pass
through untouched
- new formatRange: "150-200" → "150–200 mi", "200-plus"/"200+" →
"200+ mi"; empty → '' (callers render their own placeholder)
- formatBudget is now the numeric (min, max) dollar formatter matching
the API payload; the wizard's slug map moves to formatBudgetBucket
- new vehicleName({year, make, model, commissioned})
Breaking rename of formatBudget is safe: no frontend consumes 0.1.0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
bastian
merged commit 2b54028495 into main2026-06-09 21:08:37 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Hardens the shared formatters ahead of all three frontends finally consuming this package (fixes "NaN miles", "Range: 100 150mi", "Level2"):
formatLabel: letter→digit boundary spacing ("level2" → "Level 2"), acronym casing (DCFC/EV/SUV/VIN/DC/A/C), bare numeric ranges pass through untouchedformatRange: "150-200" → "150–200 mi", "200+" → "200+ mi"; empty → '' (callers render "Not specified")formatBudgetis now the numeric (min, max) dollar formatter matching the API payload; the wizard's slug map moves toformatBudgetBucketvehicleName({year, make, model, commissioned})Breaking rename is safe — nothing consumes 0.1.0. Publish to the Gitea registry follows merge.
🤖 Generated with Claude Code
- formatLabel: letter→digit boundary spacing ("level2" → "Level 2"), acronym casing (DCFC/EV/SUV/VIN/DC/A\C), bare numeric ranges pass through untouched - new formatRange: "150-200" → "150–200 mi", "200-plus"/"200+" → "200+ mi"; empty → '' (callers render their own placeholder) - formatBudget is now the numeric (min, max) dollar formatter matching the API payload; the wizard's slug map moves to formatBudgetBucket - new vehicleName({year, make, model, commissioned}) Breaking rename of formatBudget is safe: no frontend consumes 0.1.0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>