import 'package:flutter/material.dart' show Icons;
import 'package:flutter/widgets.dart';
import 'package:lucide_icons_flutter/lucide_icons.dart';

/// Central icon registry for the kit.
///
/// Keep UI code using semantic names from this class so the icon pack can be
/// swapped in a single file in the future.
abstract final class KasyIcons {
  static const IconData add = LucideIcons.plus300;

  /// Assistente / IA (sparkles).
  static const IconData assistant = LucideIcons.sparkles300;
  static const IconData arrowBack = LucideIcons.arrowLeft300;
  static const IconData arrowBackIos = LucideIcons.chevronLeft300;
  static const IconData arrowForwardIos = LucideIcons.chevronRight300;
  static const IconData arrowUp = LucideIcons.arrowUp300;
  static const IconData chevronUp = LucideIcons.chevronUp300;
  static const IconData chevronUpBold = LucideIcons.chevronUp400;
  static const IconData voteUp = LucideIcons.chevronUp400;
  static const IconData book = LucideIcons.book300;
  static const IconData calendar = LucideIcons.calendar300;
  static const IconData cameraAlt = LucideIcons.camera400;
  static const IconData check = LucideIcons.check300;
  static const IconData checkCircle = LucideIcons.circleCheck300;
  static const IconData chevronRight = LucideIcons.chevronRight300;
  static const IconData chevronDown = LucideIcons.chevronDown300;
  static const IconData close = LucideIcons.x300;
  static const IconData copy = LucideIcons.copy300;
  static const IconData darkMode = LucideIcons.moon300;
  static const IconData error = LucideIcons.circleAlert300;
  static const IconData eye = LucideIcons.eye300;
  static const IconData eyeOff = LucideIcons.eyeOff300;
  static const IconData favorite = LucideIcons.heart300;
  static const IconData favoriteOutline = LucideIcons.heartOff300;

  /// Coração preenchido (usa glifo Material junto aos Lucides quando precisa fill).
  static const IconData favoriteFilled = Icons.favorite_rounded;
  static const IconData flash = LucideIcons.zap300;
  static const IconData idea = LucideIcons.lightbulb300;
  static const IconData flashOff = LucideIcons.zapOff300;
  static const IconData flashlight = LucideIcons.flashlight300;
  static const IconData gallery = LucideIcons.images300;
  static const IconData help = LucideIcons.circleQuestionMark300;
  static const IconData info = LucideIcons.info300;
  static const IconData home = LucideIcons.house300;
  static const IconData language = LucideIcons.languages300;
  static const IconData lightMode = LucideIcons.sun300;
  static const IconData logout = LucideIcons.logOut300;
  static const IconData download = LucideIcons.download300;
  static const IconData linkOutlined = LucideIcons.link300;
  static const IconData message = LucideIcons.messageSquare300;
  static const IconData moreVert = LucideIcons.ellipsisVertical300;
  static const IconData microphone = LucideIcons.mic300;
  static const IconData northEast = LucideIcons.arrowUpRight300;
  static const IconData notification = LucideIcons.bell300;
  static const IconData notificationActive = LucideIcons.bellRing300;
  static const IconData notificationAdd = LucideIcons.bellPlus300;
  static const IconData notificationOff = LucideIcons.bellOff300;
  static const IconData note = LucideIcons.notebook300;
  static const IconData packageOutline = LucideIcons.package300;
  static const IconData payment = LucideIcons.wallet300;
  static const IconData palette = LucideIcons.palette300;
  static const IconData trash = LucideIcons.trash300;
  static const IconData person = LucideIcons.userRound300;
  static const IconData phone = LucideIcons.phone300;
  static const IconData phoneAndroid = LucideIcons.smartphone300;
  static const IconData fingerprint = LucideIcons.fingerprintPattern300;
  static const IconData privacy = LucideIcons.shieldAlert300;
  static const IconData refresh = LucideIcons.refreshCw300;
  static const IconData search = LucideIcons.search300;
  static const IconData security = LucideIcons.shield300;
  static const IconData send = LucideIcons.send300;

  /// Compartilhar (Lucide «share» peso 300).
  static const IconData share = LucideIcons.share300;
  static const IconData settings = LucideIcons.settings300;
  static const IconData sms = LucideIcons.messagesSquare300;
  static const IconData shoppingBag = LucideIcons.shoppingBag300;
  static const IconData star = LucideIcons.star300;
  static const IconData time = LucideIcons.clock300;
  static const IconData ticket = LucideIcons.ticket300;
  static const IconData upload = LucideIcons.upload300;
  static const IconData video = LucideIcons.video300;
  static const IconData widgets = LucideIcons.component300;
}
