feat(t5): ein Checkbox-Baustein für alle 35 Stellen (T5a A7)

- ui/checkbox.tsx und form/checkbox-field.tsx: ganze Zeile, Kachel,
  Aufgabe oder Sheet-Zeile ist der Knopf (Base UI), Haken bzw. Strich für
  teilweise; role="switch" mit Daumen und Haken. ToggleChip und SwitchRow
  entfernt.
- 14 Kacheln, 11 native Checkboxen, 3 Schalter-Zeilen, 6 Base-UI-Stellen
  und die Heute-Aufgaben umgestellt; Werte ans Backend unverändert.
- Enter in einer Checkbox schickt kein Formular ab und schaltet nicht
  (Leertaste schaltet); Nachbarn mit mindestens 4 px Abstand; gesperrte
  Felder mit sichtbarem Grund; gesperrte Kacheln ganz gedimmt.
- Baukasten-Wächter: keine eigenen Checkboxen/Schalter, auch bedingte
  role-Werte und setAttribute; Zeilenlisten mit Abstand.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Nick.RosenloecherandClaude Opus 5.5 committed 2026-10-16 19:30:21 +02:00
1 parent 11bccbeb50
commit f307e7da66
40 files changed
+1179 -409

No files matched your search

@@ -5,6 +5,7 @@ import type { InspectionFormValues } from "@/app/(app)/inspections/new/inspectio
import { FEED_CONDITION_LABELS, ratingToCondition } from "@/lib/colonies/condition";
import { COLONY_CONDITION_LABELS } from "@/lib/colonies/labels";
import type { Colony, ColonyCondition } from "@/lib/colonies/types";
import { CheckboxField } from "@/components/form/checkbox-field";
import { COLONY_TAKEOVER_FIELDS, type ColonyTakeoverField } from "@/lib/inspections/types";
export interface ColonyTakeoverSectionProps {
@@ -124,15 +125,12 @@ export function ColonyTakeoverSection({
Diese Angaben auch auf der Volkskarte eintragen:
</p>
{rows.map((row) => (
<label key={row.field} className="flex min-h-11 items-center gap-3 text-sm">
<input
type="checkbox"
className="size-5 shrink-0 accent-primary"
checked={selected.includes(row.field)}
onChange={(event) => toggle(row.field, event.target.checked)}
/>
{row.label}
</label>
<CheckboxField
key={row.field}
label={row.label}
checked={selected.includes(row.field)}
onCheckedChange={(checked) => toggle(row.field, checked)}
/>
))}
</fieldset>
) : null}