anchor.diff:    }
   
     _TextWithAttr _withState(_TextPacket packet) {
  -    return _TextWithAttr(bold: bold, fg: fg, bg: bg, text: packet.text);
  +    return _TextWithAttr(style: style, fg: fg, bg: bg, text: packet.text);
     }
   }
   
   class _TextWithAttr {
  -  _TextWithAttr({this.fg, this.bg, this.bold = false, this.text = ''});
  +  _TextWithAttr(
  +      {this.fg, this.bg, this.style = StyledText.NONE, this.text = '',});
   
     final AnsiUpColor? fg;
     final AnsiUpColor? bg;
  -  final bool bold;
  +  final int style;
     final String text;
   }
   
  
positive.code:       fragment.text,
        fgColor: fragment.fg?.rgb?.toList(),
        bgColor: fragment.bg?.rgb?.toList(),
        bold: fragment.bold == true,
      );
    }
  
    final String text;
    final List<int>? fgColor;
    final List<int>? bgColor;
    final bool bold;
    final String url;
  
    String get style {
      if (fgColor == null && bgColor == null && !bold) {
        return '';
      }
      final _bgColor = bgColor;
      final _fgColor = fgColor;
      return <String>[
        if (_bgColor != null) 'background-color: ${_colorToCss(_bgColor)}',
        if (_fgColor != null) 'color: ${_colorToCss(_fgColor)}',
        if (bold) 'font-weight: bold',
      ].join(';');
    }
  }
  
negative.code:       final num = int.tryParse(sgrCmdStr, radix: 10);
        if (num == null || num == 0) {
          fg = bg = null;
          style = StyledText.NONE;
        } else if (num == 1) {
          style = style | StyledText.BOLD;
        } else if (num == 2) {
          style = style | StyledText.DIM;
        } else if (num == 3) {
          style = style | StyledText.ITALIC;
        } else if (num == 4) {
          style = style | StyledText.UNDERLINE;
        } else if (num == 5) {
          style = style | StyledText.BLINK;
        } else if (num == 7) {
          style = style | StyledText.REVERSE;
        } else if (num == 8) {
          style = style | StyledText.INVISIBLE;
        } else if (num == 9) {
          style = style | StyledText.STRIKETHROUGH;
        } else if (num == 22) {
          style = style & ~(StyledText.BOLD | StyledText.DIM);
        } else if (num == 23) {
          style = style & ~StyledText.ITALIC;
        } else if (num == 24) {
          style = style & ~StyledText.UNDERLINE;
        } else if (num == 25) {
          style = style & ~StyledText.BLINK;
        } else if (num == 27) {
          style = style & ~StyledText.REVERSE;
        } else if (num == 28) {
          style = style & ~StyledText.INVISIBLE;
        } else if (num == 29) {
          style = style & ~StyledText.STRIKETHROUGH;
        } else if (num == 39) {
          fg = null;
        } else if (num == 49) {
  