Files
tabler/shared
codecalm ad42cfc76e Replace remaining any casts in shared with proper types
- ui/Table.astro: type the people rows with a local Person interface
  instead of Record<string, any>[]. Surfaced a latent type mismatch:
  <Avatar personId={person.id}> passed a string id into a prop typed
  as number (only silently worked because of the any cast) — replaced
  with <Avatar person={person}>, which resolves to the same person
  object without the redundant numeric re-lookup.
- ui/Select.astro: add SelectOption/SelectData types for selects.json
  entries instead of two Record<string, any> casts.
- components/navbar/NavbarMenu.astro: type Level1.children as
  Record<string, Level2> (matching NavbarMenuItem's own Level2/Level3
  shapes) instead of Record<string, unknown>, removing the `as any`
  casts at both NavbarMenuItem call sites.
- components/parts/Tasks.astro: add a Task interface instead of
  Record<string, any>[]; also drops the now-redundant inline subtask
  type annotation.

No behavior change other than the Table.astro Avatar fix above.
Verified: astro check 0/0/0 in shared, astro build succeeds for
preview (127 pages) and docs (128 pages), vitest passes (38 tests).
2026-08-08 18:11:46 +02:00
..