import 'package:flutter/material.dart'; import '../../../core/design/tokens.dart'; import '../../../core/design/tripz_colors.dart'; /// خمس نجوم — أهداف لمس ≥ 48 لأن الشاشة تُستعمل عادةً والمستخدم مستعجل. class StarRow extends StatelessWidget { const StarRow({super.key, required this.value, required this.onChanged}); final int value; final ValueChanged onChanged; @override Widget build(BuildContext context) { return Row( mainAxisAlignment: MainAxisAlignment.center, // النجوم تُقرأ يساراً-ليميناً في اللغتين: ترتيبها ليس نصّاً. textDirection: TextDirection.ltr, children: List.generate(5, (i) { final star = i + 1; final filled = star <= value; return IconButton( onPressed: () => onChanged(star), iconSize: Sizes.iconLg, constraints: const BoxConstraints( minWidth: Sizes.touchTarget, minHeight: Sizes.touchTarget, ), icon: AnimatedSwitcher( duration: Motion.tap, child: Icon( filled ? Icons.star_rounded : Icons.star_outline_rounded, key: ValueKey(filled), color: filled ? context.tripzColors.warning : context.colors.onSurfaceVariant, ), ), ); }), ); } }