# 2026-07-17 — P1-4 modal migration: admin/Library.tsx (3 of 3) Branch: `feat/p1-4-modals-library` Worktree: `.worktrees/feat-p1-4-modals-library` ## Why P1-4 from the readiness audit asks for every inline modal to use the shared `` component. Continues the sweep with `admin/Library.tsx`. ## Changes ### `client/src/pages/admin/Library.tsx` Migrated 3 of 3 modals to `` + ``: - **Register / Update Book** — multi-section form (title, author, ISBN, publisher, year, category, shelf location, total copies, image URL, status) - **Circulate Asset** (issue) — borrower dropdown, due-date, notes - **Finalize Circulation** (return) — condition, return notes Each modal's inline `bg-card rounded-[2.5rem]` shell + custom header + × close button are removed; `` injects its own header / close. Body content is wrapped in ``. ## Verification - `node scripts/lint-no-inline-modals.js` → `admin/Library.tsx` count dropped 3 → 0.