fix: restrict search inputs

CA
5h ago
+15-3

Summary

Restricts what can be typed into three manual search fields so invalid characters are dropped on input instead of being sent to the API. Section Code keeps digits plus commas, hyphens, and spaces so comma lists and ranges like 29000-29100 still work. Instructor rejects digits, and Units accepts either a number or the literal VAR, typed letter by letter.

Screenshots

Test Plan

use nuqs to verify sanitizing

  • Section Code: type 1a4b2c and see 142. Type 14200, 29000-29100 and confirm it's accepted and the search returns results for the range.
  • Instructor: type letters with numbers and see only letters
  • Units: type v, a, r one at a time and see VAR. Type VAR4 or VARX and see VAR. Type 4 and see 4. Type x into an empty field and see nothing.
  • Paste a bad value into each field and confirm it's sanitized the same as typing.

Issues

Closes #2065