import React, { useState } from 'react'; import { Scale, Brain, AlertTriangle, CheckCircle, XCircle, TrendingUp, Activity, BookOpen, Info } from 'lucide-react'; const Card = ({ children, className = "" }) => (
{children}
); const Badge = ({ children, type = "neutral" }) => { const colors = { neutral: "bg-slate-700 text-slate-200", success: "bg-emerald-900 text-emerald-200 border border-emerald-700", warning: "bg-amber-900 text-amber-200 border border-amber-700", danger: "bg-rose-900 text-rose-200 border border-rose-700", }; return ( {children} ); }; export default function App() { const [activeTab, setActiveTab] = useState('calculator'); // Calculator State const [experience, setExperience] = useState(''); const [bodyFat, setBodyFat] = useState(''); const [status, setStatus] = useState(''); const [result, setResult] = useState(null); const calculateRecomp = () => { let score = 0; // 1. Опыт тренировок const expPoints = { newbie: 30, intermediate: 15, advanced: 7.5 }; score += expPoints[experience] || 0; // 2. Статус const statusPoints = { detrained: 70, // Возврат после паузы just_started: 50, // Только начал active: 0 // Непрерывно тренируюсь }; score += statusPoints[status] || 0; // 3. Процент жира const fatPoints = { cat1: 0, // Сухие cat2: 20, cat3: 40, cat4: 40 // Высокий жир = высокая доступность энергии }; score += fatPoints[bodyFat] || 0; // Определение вердикта let message = ""; let type = "neutral"; let strategy = ""; if (score >= 100) { message = "Очень высокая вероятность"; type = "success"; strategy = "У вас комбо факторов: либо мышечная память, либо избыток энергии в жире при новом стимуле. Используйте это время максимально."; } else if (score >= 75) { message = "Высокая вероятность"; type = "success"; strategy = "Отличные шансы. Держите белок 2.2г+ и создайте минимальный дефицит. Организм охотно отдаст жир на стройку мышц."; } else if (score >= 50) { message = "Средняя вероятность"; type = "warning"; strategy = "Рекомпозиция возможна, но прогресс будет нелинейным. Требуется ювелирный контроль питания и тяжелый тренинг."; } else if (score >= 30) { message = "Низкая вероятность"; type = "warning"; strategy = "Процесс будет идти крайне медленно. Вы рискуете потратить месяцы ради граммов мышц. Циклирование (набор/сушка) будет эффективнее."; } else { message = "Очень низкая вероятность"; type = "danger"; strategy = "Вы опытный и сухой. Физиологических ресурсов для рекомпозиции нет. Не тратьте время на попытки 'усидеть на двух стульях'."; } setResult({ score, message, type, strategy }); }; return (
{/* Header */}

TFA

{/* CALCULATOR TAB */} {activeTab === 'calculator' && (

РЕАЛЬНОСТЬ РЕКОМПОЗИЦИИ

Хватит верить маркетингу. Проверь свой физиологический потенциал по системе баллов TFA.

Твой профиль

{/* Experience */}
{[ { id: 'newbie', label: 'Новичок', sub: '< 1 года (+30%)' }, { id: 'intermediate', label: 'Средний', sub: '1-3 года (+15%)' }, { id: 'advanced', label: 'Опытный', sub: '> 3 лет (+7.5%)' } ].map((opt) => ( ))}
{/* Status */}
{[ { id: 'just_started', label: 'Только начинаю', sub: '+50%' }, { id: 'detrained', label: 'Возврат после паузы', sub: '2+ мес (+70%)' }, { id: 'active', label: 'Непрерывно тренируюсь', sub: '+0%' } ].map((opt) => ( ))}
{/* Body Fat */}
{[ { id: 'cat1', range: 'М: <10% | Ж: <18%', desc: 'Сухие (+0%)' }, { id: 'cat2', range: 'М: 10-15% | Ж: 18-24%', desc: '+20%' }, { id: 'cat3', range: 'М: 15-24% | Ж: 24-31%', desc: '+40%' }, { id: 'cat4', range: 'М: 25%+ | Ж: 32%+', desc: '+40%' }, ].map((cat) => ( ))}
{/* Result Area */}
{result ? (

Анализ потенциала

{result.type === 'success' && } {result.type === 'danger' && } {result.type === 'warning' && }
{result.score > 100 ? '100+' : result.score}%
{result.message}

Стратегия TFA

{result.strategy}

Расчет основан на кумулятивном эффекте нейромышечной адаптации и доступности эндогенных запасов энергии.

) : (

Ждем твои данные

Выбери параметры слева, чтобы запустить алгоритм

)}
)} {/* THEORY TAB */} {activeTab === 'science' && (

ТЕОРИЯ: ЧИСТАЯ ФИЗИОЛОГИЯ

ОШИБКА ВЫЖИВШЕГО

LBM — ЭТО НЕ МЫШЦЫ

Многие верят в рекомпозицию, глядя на цифры весов. Но наука говорит об обратном.

Жесткий факт:
DEXA и BodPod считают воду, гликоген и остатки еды как "мышцы" (LBM). Отек от белка — это не гипертрофия.
ЛИМИТ ЭНЕРГИИ

ПОРОГ 500 ККАЛ

Исследования (Murphy et al.) подтверждают: дефицит энергии блокирует анаболизм.

Лимит:
Дефицит > 500 ккал/день обнуляет рост мышечной ткани у натурального атлета.

Биохимический конфликт

mTOR

Строительство

Условие:
Избыток энергии + Инсулин
VS
AMPK

Выживание

Условие:
Дефицит энергии
[БЛОКИРУЕТ mTOR]
"Невозможно строить небоскреб, пока рабочие разбирают фундамент на дрова."
)} {/* STRATEGY TAB */} {activeTab === 'strategy' && (

АЛГОРИТМ TFA

Сценарий: ЗЕЛЕНАЯ ЗОНА

Вероятность 50%+
01. ПИТАНИЕ

Белок 2.5–3.2 г/кг. Малый дефицит (200-300 ккал). Максимум нутриентной плотности.

02. ТРЕНИНГ

Силовая прогрессия. Если рабочие веса не растут — вы просто теряете время.

03. СОН

8+ часов. Рекомпозиция — это экстремальное восстановление. Без сна она невозможна.

Сценарий: КРАСНАЯ ЗОНА

Вероятность < 30%

Хватит пытаться обмануть физиологию. Переходи на циклическую модель.

ФАЗА НАБОРА
  • Профицит 10% от поддержки
  • Фокус на объеме и весах
  • Длительность: 6-9 месяцев
ФАЗА СУШКИ
  • Дефицит 20-25%
  • Сохранение интенсивности
  • Длительность: до 12 недель
)}
{/* Footer */}
TFA SCIENCE

Strict DocMed Approach. No Bullshit.
Построено на мета-анализах 2021-2024 гг.

); }