lerp method
Linear interpolation between two tokens
Implementation
FlyRadiusToken lerp(FlyRadiusToken other, double t) {
final result = <String, double>{};
final allKeys = {..._allValues.keys, ...other._allValues.keys};
for (final key in allKeys) {
final valueA = _allValues[key];
final valueB = other._allValues[key];
final numA = valueA ?? 0.0;
final numB = valueB ?? 0.0;
result[key] = numA + (numB - numA) * t;
}
return FlyRadiusToken(
xs: result['xs']!,
sm: result['sm']!,
md: result['md']!,
lg: result['lg']!,
xl: result['xl']!,
xl2: result['xl2']!,
xl3: result['xl3']!,
xl4: result['xl4']!,
extras: Map.fromEntries(
result.entries.where(
(e) => ![
'xs',
'sm',
'md',
'lg',
'xl',
'xl2',
'xl3',
'xl4',
].contains(e.key),
),
),
);
}