'use client'; import React from 'react'; import { FileText, Gamepad2, AlertCircle, Check } from 'lucide-react'; import Input from '@/components/ui/Input'; import type { LeagueConfigFormModel } from '@gridpilot/racing/application'; interface LeagueBasicsSectionProps { form: LeagueConfigFormModel; onChange?: (form: LeagueConfigFormModel) => void; errors?: { name?: string; description?: string; }; readOnly?: boolean; } export function LeagueBasicsSection({ form, onChange, errors, readOnly, }: LeagueBasicsSectionProps) { const basics = form.basics; const disabled = readOnly || !onChange; const updateBasics = (patch: Partial) => { if (!onChange) return; onChange({ ...form, basics: { ...form.basics, ...patch, }, }); }; return (
{/* Emotional header for the step */}

Every great championship starts with a name

This is where legends begin. Give your league an identity that drivers will remember.

{/* League name */}
updateBasics({ name: e.target.value })} placeholder="e.g., GridPilot Sprint Series" error={!!errors?.name} errorMessage={errors?.name} disabled={disabled} autoFocus />

Make it memorable — this is what drivers will see first

Try:
{/* Description - Now Required */}