(key: 'cx' | 'cy' | 'r', side: 'rest' | 'hover', v: number)
| 733 | }) |
| 734 | |
| 735 | const setGradPair = (key: 'cx' | 'cy' | 'r', side: 'rest' | 'hover', v: number) => |
| 736 | setConfigs((prev) => { |
| 737 | const next = structuredClone(prev) |
| 738 | next[markId].gradient[key][side] = v |
| 739 | return next |
| 740 | }) |
| 741 | |
| 742 | const readout = useMemo(() => { |
| 743 | const restGeo: Record<string, number> = {} |