lerp method
Linear interpolation between two tokens
Implementation
FlyColorToken lerp(FlyColorToken other, double t) {
final result = <String, Color>{};
final allKeys = {..._allValues.keys, ...other._allValues.keys};
for (final key in allKeys) {
final valueA = _allValues[key];
final valueB = other._allValues[key];
if (valueA != null && valueB != null) {
result[key] = Color.lerp(valueA, valueB, t) ?? valueA;
} else if (valueA != null) {
result[key] = valueA;
} else if (valueB != null) {
result[key] = valueB;
}
}
return FlyColorToken(
red50: result['red50']!,
red100: result['red100']!,
red200: result['red200']!,
red300: result['red300']!,
red400: result['red400']!,
red500: result['red500']!,
red600: result['red600']!,
red700: result['red700']!,
red800: result['red800']!,
red900: result['red900']!,
red950: result['red950']!,
orange50: result['orange50']!,
orange100: result['orange100']!,
orange200: result['orange200']!,
orange300: result['orange300']!,
orange400: result['orange400']!,
orange500: result['orange500']!,
orange600: result['orange600']!,
orange700: result['orange700']!,
orange800: result['orange800']!,
orange900: result['orange900']!,
orange950: result['orange950']!,
amber50: result['amber50']!,
amber100: result['amber100']!,
amber200: result['amber200']!,
amber300: result['amber300']!,
amber400: result['amber400']!,
amber500: result['amber500']!,
amber600: result['amber600']!,
amber700: result['amber700']!,
amber800: result['amber800']!,
amber900: result['amber900']!,
amber950: result['amber950']!,
yellow50: result['yellow50']!,
yellow100: result['yellow100']!,
yellow200: result['yellow200']!,
yellow300: result['yellow300']!,
yellow400: result['yellow400']!,
yellow500: result['yellow500']!,
yellow600: result['yellow600']!,
yellow700: result['yellow700']!,
yellow800: result['yellow800']!,
yellow900: result['yellow900']!,
yellow950: result['yellow950']!,
lime50: result['lime50']!,
lime100: result['lime100']!,
lime200: result['lime200']!,
lime300: result['lime300']!,
lime400: result['lime400']!,
lime500: result['lime500']!,
lime600: result['lime600']!,
lime700: result['lime700']!,
lime800: result['lime800']!,
lime900: result['lime900']!,
lime950: result['lime950']!,
green50: result['green50']!,
green100: result['green100']!,
green200: result['green200']!,
green300: result['green300']!,
green400: result['green400']!,
green500: result['green500']!,
green600: result['green600']!,
green700: result['green700']!,
green800: result['green800']!,
green900: result['green900']!,
green950: result['green950']!,
emerald50: result['emerald50']!,
emerald100: result['emerald100']!,
emerald200: result['emerald200']!,
emerald300: result['emerald300']!,
emerald400: result['emerald400']!,
emerald500: result['emerald500']!,
emerald600: result['emerald600']!,
emerald700: result['emerald700']!,
emerald800: result['emerald800']!,
emerald900: result['emerald900']!,
emerald950: result['emerald950']!,
teal50: result['teal50']!,
teal100: result['teal100']!,
teal200: result['teal200']!,
teal300: result['teal300']!,
teal400: result['teal400']!,
teal500: result['teal500']!,
teal600: result['teal600']!,
teal700: result['teal700']!,
teal800: result['teal800']!,
teal900: result['teal900']!,
teal950: result['teal950']!,
cyan50: result['cyan50']!,
cyan100: result['cyan100']!,
cyan200: result['cyan200']!,
cyan300: result['cyan300']!,
cyan400: result['cyan400']!,
cyan500: result['cyan500']!,
cyan600: result['cyan600']!,
cyan700: result['cyan700']!,
cyan800: result['cyan800']!,
cyan900: result['cyan900']!,
cyan950: result['cyan950']!,
sky50: result['sky50']!,
sky100: result['sky100']!,
sky200: result['sky200']!,
sky300: result['sky300']!,
sky400: result['sky400']!,
sky500: result['sky500']!,
sky600: result['sky600']!,
sky700: result['sky700']!,
sky800: result['sky800']!,
sky900: result['sky900']!,
sky950: result['sky950']!,
blue50: result['blue50']!,
blue100: result['blue100']!,
blue200: result['blue200']!,
blue300: result['blue300']!,
blue400: result['blue400']!,
blue500: result['blue500']!,
blue600: result['blue600']!,
blue700: result['blue700']!,
blue800: result['blue800']!,
blue900: result['blue900']!,
blue950: result['blue950']!,
indigo50: result['indigo50']!,
indigo100: result['indigo100']!,
indigo200: result['indigo200']!,
indigo300: result['indigo300']!,
indigo400: result['indigo400']!,
indigo500: result['indigo500']!,
indigo600: result['indigo600']!,
indigo700: result['indigo700']!,
indigo800: result['indigo800']!,
indigo900: result['indigo900']!,
indigo950: result['indigo950']!,
violet50: result['violet50']!,
violet100: result['violet100']!,
violet200: result['violet200']!,
violet300: result['violet300']!,
violet400: result['violet400']!,
violet500: result['violet500']!,
violet600: result['violet600']!,
violet700: result['violet700']!,
violet800: result['violet800']!,
violet900: result['violet900']!,
violet950: result['violet950']!,
purple50: result['purple50']!,
purple100: result['purple100']!,
purple200: result['purple200']!,
purple300: result['purple300']!,
purple400: result['purple400']!,
purple500: result['purple500']!,
purple600: result['purple600']!,
purple700: result['purple700']!,
purple800: result['purple800']!,
purple900: result['purple900']!,
purple950: result['purple950']!,
fuchsia50: result['fuchsia50']!,
fuchsia100: result['fuchsia100']!,
fuchsia200: result['fuchsia200']!,
fuchsia300: result['fuchsia300']!,
fuchsia400: result['fuchsia400']!,
fuchsia500: result['fuchsia500']!,
fuchsia600: result['fuchsia600']!,
fuchsia700: result['fuchsia700']!,
fuchsia800: result['fuchsia800']!,
fuchsia900: result['fuchsia900']!,
fuchsia950: result['fuchsia950']!,
pink50: result['pink50']!,
pink100: result['pink100']!,
pink200: result['pink200']!,
pink300: result['pink300']!,
pink400: result['pink400']!,
pink500: result['pink500']!,
pink600: result['pink600']!,
pink700: result['pink700']!,
pink800: result['pink800']!,
pink900: result['pink900']!,
pink950: result['pink950']!,
rose50: result['rose50']!,
rose100: result['rose100']!,
rose200: result['rose200']!,
rose300: result['rose300']!,
rose400: result['rose400']!,
rose500: result['rose500']!,
rose600: result['rose600']!,
rose700: result['rose700']!,
rose800: result['rose800']!,
rose900: result['rose900']!,
rose950: result['rose950']!,
slate50: result['slate50']!,
slate100: result['slate100']!,
slate200: result['slate200']!,
slate300: result['slate300']!,
slate400: result['slate400']!,
slate500: result['slate500']!,
slate600: result['slate600']!,
slate700: result['slate700']!,
slate800: result['slate800']!,
slate900: result['slate900']!,
slate950: result['slate950']!,
gray50: result['gray50']!,
gray100: result['gray100']!,
gray200: result['gray200']!,
gray300: result['gray300']!,
gray400: result['gray400']!,
gray500: result['gray500']!,
gray600: result['gray600']!,
gray700: result['gray700']!,
gray800: result['gray800']!,
gray900: result['gray900']!,
gray950: result['gray950']!,
zinc50: result['zinc50']!,
zinc100: result['zinc100']!,
zinc200: result['zinc200']!,
zinc300: result['zinc300']!,
zinc400: result['zinc400']!,
zinc500: result['zinc500']!,
zinc600: result['zinc600']!,
zinc700: result['zinc700']!,
zinc800: result['zinc800']!,
zinc900: result['zinc900']!,
zinc950: result['zinc950']!,
neutral50: result['neutral50']!,
neutral100: result['neutral100']!,
neutral200: result['neutral200']!,
neutral300: result['neutral300']!,
neutral400: result['neutral400']!,
neutral500: result['neutral500']!,
neutral600: result['neutral600']!,
neutral700: result['neutral700']!,
neutral800: result['neutral800']!,
neutral900: result['neutral900']!,
neutral950: result['neutral950']!,
stone50: result['stone50']!,
stone100: result['stone100']!,
stone200: result['stone200']!,
stone300: result['stone300']!,
stone400: result['stone400']!,
stone500: result['stone500']!,
stone600: result['stone600']!,
stone700: result['stone700']!,
stone800: result['stone800']!,
stone900: result['stone900']!,
stone950: result['stone950']!,
black: result['black']!,
white: result['white']!,
extras: Map.fromEntries(
result.entries.where(
(e) => ![
'red50',
'red100',
'red200',
'red300',
'red400',
'red500',
'red600',
'red700',
'red800',
'red900',
'red950',
'orange50',
'orange100',
'orange200',
'orange300',
'orange400',
'orange500',
'orange600',
'orange700',
'orange800',
'orange900',
'orange950',
'amber50',
'amber100',
'amber200',
'amber300',
'amber400',
'amber500',
'amber600',
'amber700',
'amber800',
'amber900',
'amber950',
'yellow50',
'yellow100',
'yellow200',
'yellow300',
'yellow400',
'yellow500',
'yellow600',
'yellow700',
'yellow800',
'yellow900',
'yellow950',
'lime50',
'lime100',
'lime200',
'lime300',
'lime400',
'lime500',
'lime600',
'lime700',
'lime800',
'lime900',
'lime950',
'green50',
'green100',
'green200',
'green300',
'green400',
'green500',
'green600',
'green700',
'green800',
'green900',
'green950',
'emerald50',
'emerald100',
'emerald200',
'emerald300',
'emerald400',
'emerald500',
'emerald600',
'emerald700',
'emerald800',
'emerald900',
'emerald950',
'teal50',
'teal100',
'teal200',
'teal300',
'teal400',
'teal500',
'teal600',
'teal700',
'teal800',
'teal900',
'teal950',
'cyan50',
'cyan100',
'cyan200',
'cyan300',
'cyan400',
'cyan500',
'cyan600',
'cyan700',
'cyan800',
'cyan900',
'cyan950',
'sky50',
'sky100',
'sky200',
'sky300',
'sky400',
'sky500',
'sky600',
'sky700',
'sky800',
'sky900',
'sky950',
'blue50',
'blue100',
'blue200',
'blue300',
'blue400',
'blue500',
'blue600',
'blue700',
'blue800',
'blue900',
'blue950',
'indigo50',
'indigo100',
'indigo200',
'indigo300',
'indigo400',
'indigo500',
'indigo600',
'indigo700',
'indigo800',
'indigo900',
'indigo950',
'violet50',
'violet100',
'violet200',
'violet300',
'violet400',
'violet500',
'violet600',
'violet700',
'violet800',
'violet900',
'violet950',
'purple50',
'purple100',
'purple200',
'purple300',
'purple400',
'purple500',
'purple600',
'purple700',
'purple800',
'purple900',
'purple950',
'fuchsia50',
'fuchsia100',
'fuchsia200',
'fuchsia300',
'fuchsia400',
'fuchsia500',
'fuchsia600',
'fuchsia700',
'fuchsia800',
'fuchsia900',
'fuchsia950',
'pink50',
'pink100',
'pink200',
'pink300',
'pink400',
'pink500',
'pink600',
'pink700',
'pink800',
'pink900',
'pink950',
'rose50',
'rose100',
'rose200',
'rose300',
'rose400',
'rose500',
'rose600',
'rose700',
'rose800',
'rose900',
'rose950',
'slate50',
'slate100',
'slate200',
'slate300',
'slate400',
'slate500',
'slate600',
'slate700',
'slate800',
'slate900',
'slate950',
'gray50',
'gray100',
'gray200',
'gray300',
'gray400',
'gray500',
'gray600',
'gray700',
'gray800',
'gray900',
'gray950',
'zinc50',
'zinc100',
'zinc200',
'zinc300',
'zinc400',
'zinc500',
'zinc600',
'zinc700',
'zinc800',
'zinc900',
'zinc950',
'neutral50',
'neutral100',
'neutral200',
'neutral300',
'neutral400',
'neutral500',
'neutral600',
'neutral700',
'neutral800',
'neutral900',
'neutral950',
'stone50',
'stone100',
'stone200',
'stone300',
'stone400',
'stone500',
'stone600',
'stone700',
'stone800',
'stone900',
'stone950',
'black',
'white',
].contains(e.key),
),
),
);
}