Initial commit

This commit is contained in:
2026-01-13 22:09:40 +01:00
commit cc849be7c4
139 changed files with 5445 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
import 'package:flutter/material.dart';
Widget buildInfoItem({
required IconData icon,
required String text,
required Color color,
}) {
return Row(
children: [
Container(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: color.withAlpha(25),
borderRadius: BorderRadius.circular(8),
),
child: Icon(icon, color: color, size: 20),
),
SizedBox(width: 12),
Expanded(
child: Text(
text,
style: TextStyle(fontSize: 14, color: Colors.grey.shade700),
),
),
],
);
}

View File

@@ -0,0 +1,32 @@
import 'package:flutter/material.dart';
Widget buildPrimaryButton({
required BuildContext context,
required IconData icon,
required String label,
required VoidCallback onPressed,
required Color color,
}) {
return ElevatedButton(
onPressed: onPressed,
style: ElevatedButton.styleFrom(
backgroundColor: color,
foregroundColor: Colors.white,
padding: EdgeInsets.symmetric(vertical: 16),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
elevation: 4,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(icon),
SizedBox(width: 12),
Text(
label,
style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
),
],
),
);
}

View File

@@ -0,0 +1,34 @@
import 'package:flutter/material.dart';
Widget buildSecondaryButton({
required BuildContext context,
required IconData icon,
required String label,
required VoidCallback onPressed,
required Color color,
}) {
return ElevatedButton(
onPressed: onPressed,
style: ElevatedButton.styleFrom(
backgroundColor: Colors.white,
foregroundColor: color,
padding: EdgeInsets.symmetric(vertical: 16),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
side: BorderSide(color: color.withOpacity(0.3)),
),
elevation: 2,
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Icon(icon, size: 28),
SizedBox(height: 4),
Text(
label,
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600),
),
],
),
);
}