import 'package:flutter/widgets.dart'; import 'package:flutter_svg/flutter_svg.dart'; /// The Lucide "heart" silhouette rendered as either an outline (stroke) /// or a solid fill. Lucide ships only an outline heart, so the liked /// state fills the same authoritative Lucide path (verified verbatim /// from lucide-icons/lucide) — keeping both states visually Lucide /// rather than introducing a Material filled heart. Used by LikeButton /// (and, re-derived to a VectorDrawable, by the media notification). class LucideHeart extends StatelessWidget { const LucideHeart({ required this.filled, required this.color, this.size = 22, super.key, }); final bool filled; final Color color; final double size; static const _path = 'M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 ' '22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5' '-3-3.2-3-5.5'; @override Widget build(BuildContext context) { final svg = filled ? '' '' : '' ''; return SvgPicture.string( svg, width: size, height: size, colorFilter: ColorFilter.mode(color, BlendMode.srcIn), ); } }