feat: add fuzzy autocomplete and NL quick-add for invoice line items

- Description field now shows a fuzzy-matched dropdown of past line items
  (description, hours, rate) as you type via Fuse.js — zero server cost
- Selecting a suggestion pre-fills description, hours, and rate in one click
- NL quick-add bar lets you type e.g. "3hrs web design @120" + Enter to
  append a fully-parsed line item without clicking through fields
- New tRPC query `getLineItemHistory` returns deduplicated past line items
  for the current user, ordered by recency
- New `parseLineItem` utility handles hours/rate extraction via regex

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-10 03:08:00 -04:00
co-authored by Claude Sonnet 4.6
parent 0ba9c2f029
commit 7819e438df
7 changed files with 286 additions and 58 deletions
+1
View File
@@ -69,6 +69,7 @@
"drizzle-orm": "^0.44.7",
"file-saver": "^2.0.5",
"framer-motion": "^12.23.26",
"fuse.js": "^7.3.0",
"lucide-react": "^0.525.0",
"next": "^16.2.4",
"pg": "8.13.1",