Przebudowanie aplikacji, usprawnione AI, dodanie combo buildera
Some checks failed
Build Linux App / build (push) Failing after 1m18s

This commit is contained in:
Kazimierz Ciołek
2026-07-06 23:44:17 +02:00
parent 9dcc4b87de
commit 6dd7213eb0
48 changed files with 3229 additions and 669 deletions

View File

@@ -32,12 +32,12 @@ class DownloadProgress extends StatelessWidget {
),
const SizedBox(height: UIConstants.spacing24),
Text(
'Setting up AI models\u2026',
style: GoogleFonts.inter(
'SETTING UP AI MODELS\u2026',
style: GoogleFonts.chakraPetch(
fontSize: 22,
fontWeight: FontWeight.w700,
color: AppColors.textPrimary,
letterSpacing: -0.3,
letterSpacing: 1,
),
),
const SizedBox(height: UIConstants.spacing8),
@@ -55,8 +55,7 @@ class DownloadProgress extends StatelessWidget {
value: modelState.progress,
minHeight: 6,
backgroundColor: AppColors.zinc800,
valueColor:
const AlwaysStoppedAnimation<Color>(AppColors.accent),
valueColor: const AlwaysStoppedAnimation<Color>(AppColors.accent),
),
),
const SizedBox(height: UIConstants.spacing12),
@@ -105,9 +104,7 @@ class ErrorBanner extends StatelessWidget {
decoration: BoxDecoration(
color: AppColors.destructiveMuted,
borderRadius: BorderRadius.circular(UIConstants.smallBorderRadius),
border: Border.all(
color: AppColors.destructive.withValues(alpha: 0.4),
),
border: Border.all(color: AppColors.destructive.withValues(alpha: 0.4)),
),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,

View File

@@ -46,19 +46,19 @@ class InitialPrompt extends StatelessWidget {
borderRadius: BorderRadius.circular(12),
),
child: const Icon(
Icons.fitness_center,
Icons.sports_martial_arts,
color: AppColors.accent,
size: 24,
),
),
const SizedBox(width: UIConstants.spacing12),
Text(
'TrainHub',
style: GoogleFonts.inter(
'TRAINHUB',
style: GoogleFonts.chakraPetch(
fontSize: 26,
fontWeight: FontWeight.w700,
color: AppColors.textPrimary,
letterSpacing: -0.5,
letterSpacing: 2,
),
),
],
@@ -67,13 +67,13 @@ class InitialPrompt extends StatelessWidget {
Widget _buildHeadline() {
return Text(
'AI-powered coaching,\nright on your device.',
style: GoogleFonts.inter(
'AI-POWERED COACHING,\nRIGHT ON YOUR DEVICE.',
style: GoogleFonts.chakraPetch(
fontSize: 28,
fontWeight: FontWeight.w700,
color: AppColors.textPrimary,
height: 1.25,
letterSpacing: -0.5,
letterSpacing: 0.5,
),
);
}
@@ -101,7 +101,7 @@ class InitialPrompt extends StatelessWidget {
SizedBox(height: UIConstants.spacing12),
FeatureRow(
icon: Icons.psychology_outlined,
label: 'Qwen 2.5 7B chat model for training advice.',
label: 'Qwen3 4B chat model for training advice.',
),
SizedBox(height: UIConstants.spacing12),
FeatureRow(
@@ -121,9 +121,7 @@ class InitialPrompt extends StatelessWidget {
decoration: BoxDecoration(
color: AppColors.accentMuted,
borderRadius: BorderRadius.circular(UIConstants.smallBorderRadius),
border: Border.all(
color: AppColors.accent.withValues(alpha: 0.3),
),
border: Border.all(color: AppColors.accent.withValues(alpha: 0.3)),
),
child: Row(
children: [
@@ -135,7 +133,7 @@ class InitialPrompt extends StatelessWidget {
const SizedBox(width: UIConstants.spacing12),
Expanded(
child: Text(
'The download is ~5 GB and only needs to happen once. '
'The download is ~2.7 GB and only needs to happen once. '
'You can skip now and download later from Settings.',
style: GoogleFonts.inter(
fontSize: 13,

View File

@@ -39,8 +39,7 @@ class _WelcomePrimaryButtonState extends State<WelcomePrimaryButton> {
child: Material(
color: Colors.transparent,
child: InkWell(
borderRadius:
BorderRadius.circular(UIConstants.smallBorderRadius),
borderRadius: BorderRadius.circular(UIConstants.smallBorderRadius),
onTap: widget.onPressed,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
@@ -75,8 +74,7 @@ class WelcomeSecondaryButton extends StatefulWidget {
final VoidCallback onPressed;
@override
State<WelcomeSecondaryButton> createState() =>
_WelcomeSecondaryButtonState();
State<WelcomeSecondaryButton> createState() => _WelcomeSecondaryButtonState();
}
class _WelcomeSecondaryButtonState extends State<WelcomeSecondaryButton> {
@@ -98,8 +96,7 @@ class _WelcomeSecondaryButtonState extends State<WelcomeSecondaryButton> {
child: Material(
color: Colors.transparent,
child: InkWell(
borderRadius:
BorderRadius.circular(UIConstants.smallBorderRadius),
borderRadius: BorderRadius.circular(UIConstants.smallBorderRadius),
onTap: widget.onPressed,
child: Center(
child: Text(