render method
Renders the component into the provided CanvasBuffer
using the given bounds as the drawing area.
Implementation
@override
void render(CanvasBuffer buffer, Rect bounds) {
  Logger.trace("Checkbox", "Checkbox is being called and drawn");
  // Determine checkbox symbol based on state
  String checkbox = (checked) ? '[X]' : '[ ]';
  if ((isFocused || isHovered) && checked) {
    checkbox = '[-]';
  } else if ((isFocused || isHovered) && !checked) {
    checkbox = '[.]';
  }
  // Full string to render
  final renderedComponent = '$checkbox ${component.label}';
  // Add fixed width padding if configured
  final padded = '$renderedComponent${' ' * component.width}';
  // Determine style based on state
  TextComponentStyle style = TextComponentStyle(
    color: component.textColor ?? Colors.white,
  );
  if (checked) {
    style = TextComponentStyle(
      color: component.textColor ?? Colors.white,
      bgColor: component.selectionColor ?? Colors.black,
      padding: EdgeInsets.symmetric(horizontal: component.width),
    );
  } else if (isHovered || isFocused) {
    style = TextComponentStyle(
      color: component.textColor ?? Colors.white,
      bgColor: component.hoverColor ?? Colors.black,
      padding: EdgeInsets.symmetric(horizontal: component.width),
    );
  }
  // Draw checkbox at position
  buffer.drawAt(bounds.x, bounds.y, padded, style);
}