|
- Piecewise angleFor: puts go CCW (ATM→bottom), calls go CW (ATM→bottom)
so both wings meet at the same bottom point and the path closes with Z
- Dynamic ivToR computed from actual IV range across all expiries
(inner floor 60px, outer wall 240px) instead of hardcoded percentages
- IV rings: 5 evenly-spaced steps between real ivLo/ivHi
- Curve fill: rgba(194,170,122,0.12) matching design reference
- Non-selected curves: index-based styles (solid fg-1, then dashed fg-2/3/4)
- Eye price at font-size 30, label lowercase 'call · fair'
- Dashed marker-line spoke from center to selected-K dot
- Clicking a curve switches the selected expiry via onPickT
- Strike ticks use round multiples of a price-adaptive step
- Fix IvHeatmap xlabs duplicate key error (key by index, not rounded K)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|