Commit Graph

4 Commits

Author SHA1 Message Date
fireshaper 3542739786 Design pass: contrast, shared form controls, dialogs, mobile layouts
A - accessibility
- on-accent-warm text token (For Sale badge, flags) and darker Sunset/Ocean
  colors to meet WCAG AA contrast
- 44px touch targets for Herd and Shows filters on phones
- status badge on non-active Herd grid cards; drop redundant View Herd

B - consistency
- FormControls (Field, FieldGroup, Input, Select, Textarea, FileInput,
  Segmented) used by every form, with labels wired to their inputs
- ConfirmDialog + useConfirm replace window.confirm and hand-built modals
- ErrorPanel with Try Again for failed lists; LoadError built on it

C - layout
- ActionMenu: rabbit header is Edit, Status, More
- Herd folds Status/Sort/view behind a Filters button on phones
- Dashboard status counts as a compact second row
- Shows list as stacked cards below xl
- SVG timeline icons instead of emoji

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 22:45:34 -04:00
fireshaper afff8388b0 Polish layout for mobile and desktop
- Mobile bottom nav: icons, 56px targets, safe-area padding, and a
  "More" menu so Genetics/Shows/Settings are reachable on phones
- Sticky sidebar, max-width content column, min-w-0 so wide children
  (pedigree tree, tables) scroll in place instead of widening the page
- PageHeader owns no gutter and stacks actions on small screens; pages
  share one flex/gap structure and a consistent loading header
- 16px inputs on mobile to stop iOS focus zoom; disabled button styling
- Remove placeholder "0 litters / 0 kits" on rabbit cards, duplicate
  name on Rabbit Detail; proper Genetics placeholder and 404 pages

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 09:42:14 -04:00
fireshaper 4544aa8060 Add ARBA Shows feature (browse, events, entries, judges, placements)
Adds a self-hosted Shows section that scrapes the ARBA show-search
listing and lets the user build show events, enter herd rabbits, and
track judges and placements.

Server:
- lib/arba.ts: Cloudflare-aware scraper + normalizer (cheerio), US-only,
  cavy-excluded; cached in arba_shows_cache (re-scrape when >24h stale or
  on demand). Rows are read from server-rendered Ninja Tables cells.
- routes/shows.ts: cached ARBA listing + force refresh.
- routes/showEvents.ts: event CRUD, ARBA-show snapshots, entries, judges,
  placements (PUT upsert), and the plain-text entries report.
- schema: show_events, show_event_shows, show_event_entries,
  show_event_judges, show_event_placements; breed column on rabbits.
- migrations 0007-0010.

Client:
- /shows browser with filters + 'Add to Event'.
- /shows/events list + detail with Shows / Entries / Results tabs,
  rabbit picker, inline class/notes, placement entry, and report modal.
- breed surfaced in add/edit/detail/review.

Also folds in two previously-uncommitted bodies of work that share
schema.ts / index.ts / api.js with the above and can't be split out
cleanly: the rabbit timeline (rabbit_events, migrations 0004-0006,
routes/events.ts, RabbitTimeline) and the breed-select / default-breed
herd work (BreedSelect, lib/breeds.js, settings default_breed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-22 23:13:30 -04:00
fireshaper c961e48953 Initial commit: MyKindlebox rabbitry management app
React + Vite client and Express + SQLite/Drizzle server, plus
memory-bank design docs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 23:29:56 -04:00