applyTheme method

  1. @override
void applyTheme(
  1. GeneratedPalette palette
)
override

Apply colors from a GeneratedPalette to this component's state.

This method is called when the theme changes or when a new palette is generated. It should update all color properties based on the palette's values.

Implementation should use ThemeColorMapper.forComponent() for component-specific color resolution.

Implementation

@override
void applyTheme(GeneratedPalette palette) {
  // Call base implementation to set common colors and palette
  super.applyTheme(palette);

  // Get colors for toggle-specific mapping
  final colors = ThemeColorMapper.forComponent(palette, componentName);

  // Rest state - Track OFF uses base color, Track ON uses accent
  restTrackColorOffLight = colors.restBaseColorLight;
  restTrackColorOnLight = colors.accentColorLight;
  restKnobColorLight = colors.restBaseColorLight;
  restTrackColorOffDark = colors.restBaseColorDark;
  restTrackColorOnDark = colors.accentColorDark;
  restKnobColorDark = colors.hoverBaseColorDark;

  // Hover state
  hoverTrackColorOffLight = colors.hoverBaseColorLight;
  hoverTrackColorOnLight = colors.accentColorLight;
  hoverKnobColorLight = colors.hoverBaseColorLight;
  hoverTrackColorOffDark = colors.hoverBaseColorDark;
  hoverTrackColorOnDark = colors.accentColorDark;
  hoverKnobColorDark = colors.pressedBaseColorDark;

  // Pressed state
  pressedTrackColorOffLight = colors.pressedBaseColorLight;
  pressedTrackColorOnLight = colors.accentColorLight;
  pressedKnobColorLight = colors.pressedBaseColorLight;
  pressedTrackColorOffDark = colors.pressedBaseColorDark;
  pressedTrackColorOnDark = colors.accentColorDark;
  pressedKnobColorDark = colors.restBaseColorDark;

  // Disabled state
  disabledTrackColorLight = colors.disabledBaseColorLight;
  disabledKnobColorLight = colors.disabledIconColorLight;
  disabledTrackColorDark = colors.disabledBaseColorDark;
  disabledKnobColorDark = colors.disabledIconColorDark;
}