From 16ac60c963a197b8a6f2f9f3422f73460b376c3c Mon Sep 17 00:00:00 2001 From: Rahman Lawal Date: Mon, 29 Jun 2026 11:57:29 +0100 Subject: [PATCH] feat: Add invoice sharing via QR code modal and resolve Next.js compilation issues --- accessibility-guide.md | 466 ++++++++++++++++++ package-lock.json | 51 ++ package.json | 1 + src/__tests__/InvoiceCard.test.tsx | 21 +- src/__tests__/InvoiceShareQRModal.test.tsx | 60 +++ src/__tests__/batchDuplicateDetection.test.ts | 2 +- src/app/history/page.tsx | 25 +- src/app/invoice/[id]/opengraph-image.tsx | 2 +- src/app/invoice/[id]/page.tsx | 120 ++++- src/app/invoice/batch/page.tsx | 44 +- src/components/DashboardClient.tsx | 24 +- src/components/FundingProgress.tsx | 4 +- src/components/InvoiceCard.tsx | 24 +- src/components/InvoiceSearch.tsx | 27 +- src/components/InvoiceShareQRModal.tsx | 143 ++++++ src/components/PaymentChannelPanel.tsx | 2 +- src/components/RecipientPayoutTracker.tsx | 3 +- src/lib/batchDuplicates.ts | 39 ++ src/lib/freighter.ts | 13 +- src/lib/invoiceSearch.ts | 2 +- vitest.config.ts | 5 + vitest.setup.ts | 3 + 22 files changed, 997 insertions(+), 84 deletions(-) create mode 100644 accessibility-guide.md create mode 100644 src/__tests__/InvoiceShareQRModal.test.tsx create mode 100644 src/components/InvoiceShareQRModal.tsx create mode 100644 src/lib/batchDuplicates.ts diff --git a/accessibility-guide.md b/accessibility-guide.md new file mode 100644 index 0000000..cef9fed --- /dev/null +++ b/accessibility-guide.md @@ -0,0 +1,466 @@ + +--- Guide for accessibility --- +# Accessibility Coding Guidelines + +This guide provides actionable DOs and DON'Ts for AI coding agents to ensure web applications are accessible to all users, including those using assistive technologies. + +Keep these principles in mind throughout: + +- **Accessibility is the minimum, not the ceiling.** Conformance to standards is the floor; aim for genuine usability. +- **Patterns are use-case specific.** No checklist replaces real testing — including testing with disabled users — to confirm a given implementation is actually accessible in context. + +## 1. Content Navigability and Structure + +### Actionable Guidelines + +#### DOs +- **Place all content within landmarks**: Wrap the page in `
`, `