tane/apps/app_seeds/lib
vjrj bf091bf852 feat(labels): print seed labels with QR from an inventory selection
Add multi-select to the inventory and a "Print labels" flow that renders a
PDF sheet of labels (small stickers or large cards), each carrying the seed's
common name, variety, scientific name, year/origin and a tanemaki://seed QR
that holds the seed's data offline (future scan-to-import).

- SeedLabelCodec: compact, versioned tanemaki://seed URI (encode/decode)
- LabelSheetService: pure-Dart PDF grid (pdf + barcode + DejaVu), RTL-aware
- VarietyRepository.labelRows: one row per lot, locale-picked common name
- InventoryCubit selection mode; contextual app bar + label print sheet
- i18n en/es/pt (printLabels.*)

Tests: codec, PDF service (both formats + RTL), labelRows, selection cubit,
inventory widget selection.
2026-07-10 19:14:04 +02:00
..
data feat(labels): print seed labels with QR from an inventory selection 2026-07-10 19:14:04 +02:00
db feat(inventory): photo-first drafts + on-device OCR (digitization R2+R4) 2026-07-09 21:23:46 +02:00
di feat(labels): print seed labels with QR from an inventory selection 2026-07-10 19:14:04 +02:00
domain Solve lint issue 2026-07-10 10:34:43 +02:00
i18n feat(labels): print seed labels with QR from an inventory selection 2026-07-10 19:14:04 +02:00
security feat(backup): sealed backups + printable recovery sheet 2026-07-09 22:32:13 +02:00
services feat(labels): print seed labels with QR from an inventory selection 2026-07-10 19:14:04 +02:00
state feat(labels): print seed labels with QR from an inventory selection 2026-07-10 19:14:04 +02:00
ui feat(labels): print seed labels with QR from an inventory selection 2026-07-10 19:14:04 +02:00
app.dart feat(block2): messages inbox + drawer 'Chat' link (was unreachable) 2026-07-10 12:26:33 +02:00
main.dart feat(block2): persist chat history (messages survive leaving the chat) 2026-07-10 12:20:25 +02:00