feat: add gallery add icon and implement RStepper widget for poultry farm inspection

This commit is contained in:
2025-11-19 16:50:37 +03:30
parent 246b64c562
commit 6b7a12c4ad
18 changed files with 1919 additions and 133 deletions

View File

@@ -389,6 +389,7 @@ class AppColor {
static const Color bgIcon = Color(0xFF797979); // #797979
static const Color bgDark = Color(0xFF979797); // #083940 rgb(8, 57, 64)
static const Color textColor = Color(0xFF5B5B5B); // #083940 rgb(8, 57, 64)
static const Color textColor2 = Color(0xFF636363); // #636363 rgb(99, 99, 99)
static const Color labelTextColor = Color(0xFF808080);
static const Color textColorLight = Color(0xFFB2B2B2);
static const Color iconColor = Color(0xFF444444); // #444444 rgb(68, 68, 68)

View File

@@ -187,6 +187,9 @@ class $AssetsIconsGen {
/// File path: assets/icons/filter_outline.svg
SvgGenImage get filterOutline => const SvgGenImage('assets/icons/filter_outline.svg');
/// File path: assets/icons/gallery_add.svg
SvgGenImage get galleryAdd => const SvgGenImage('assets/icons/gallery_add.svg');
/// File path: assets/icons/gps.svg
SvgGenImage get gps => const SvgGenImage('assets/icons/gps.svg');
@@ -418,6 +421,7 @@ class $AssetsIconsGen {
farms,
filter,
filterOutline,
galleryAdd,
gps,
hashtag,
home,
@@ -674,6 +678,9 @@ class $AssetsVecGen {
/// File path: assets/vec/filter_outline.svg.vec
SvgGenImage get filterOutlineSvg => const SvgGenImage.vec('assets/vec/filter_outline.svg.vec');
/// File path: assets/vec/gallery_add.svg.vec
SvgGenImage get galleryAddSvg => const SvgGenImage.vec('assets/vec/gallery_add.svg.vec');
/// File path: assets/vec/gps.svg.vec
SvgGenImage get gpsSvg => const SvgGenImage.vec('assets/vec/gps.svg.vec');
@@ -905,6 +912,7 @@ class $AssetsVecGen {
farmsSvg,
filterSvg,
filterOutlineSvg,
galleryAddSvg,
gpsSvg,
hashtagSvg,
homeSvg,

View File

@@ -0,0 +1,55 @@
import 'package:flutter/material.dart';
import 'package:rasadyar_core/core.dart';
class RStepper extends StatelessWidget {
const RStepper({
super.key,
required this.activeStepColor,
this.deactiveStepColor,
this.dividerColor,
required this.stepsCount,
required this.activeStep,
});
final Color activeStepColor;
final Color? deactiveStepColor;
final Color? dividerColor;
final int stepsCount;
final int activeStep;
@override
Widget build(BuildContext context) {
return SizedBox(
height: 24.h,
width: Get.width,
child: Row(
children: List.generate(stepsCount, (index) {
final isFirst = index == 0;
return SizedBox(
width: (Get.width) / (stepsCount - 1),
child: Container(
alignment: Alignment.center,
decoration: BoxDecoration(
color: index == activeStep
? activeStepColor
: deactiveStepColor ?? AppColor.whiteNormalActive,
shape: BoxShape.circle,
),
width: 24.w,
height: 24.h,
child: Center(
child: Text(
(index + 1).toString(),
style: AppFonts.yekan14.copyWith(color: AppColor.textColor),
textAlign: TextAlign.center,
),
),
),
);
}),
),
);
}
}

View File

@@ -45,6 +45,7 @@ export 'overlay_dropdown_widget/resource_overlay_dropdown.dart';
export 'pagination/pagination_from_until.dart';
export 'pagination/show_more.dart';
export 'slider/slider.dart';
export 'stepper/r_stepper.dart';
export 'tabs/new_tab.dart';
export 'tabs/r_segment.dart';
export 'tabs/tab.dart';