fix(ui-kit): declare react-hook-form as a dependency of @loopover/ui-kit#8494
Conversation
form.tsx imports react-hook-form directly, but it was never declared in package.json -- only apps/loopover-ui installs it, so resolution only succeeded here via npm workspace hoisting. Added it to dependencies (version-matched to apps/loopover-ui's existing range) and a manifest test asserting every external import across the package's non-test components has a matching dependencies/peerDependencies entry, so this class of gap is caught automatically going forward. Closes JSONbored#8309
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8494 +/- ##
===========================================
+ Coverage 79.49% 92.51% +13.01%
===========================================
Files 791 791
Lines 79333 79343 +10
Branches 23960 23967 +7
===========================================
+ Hits 63067 73403 +10336
+ Misses 13112 4807 -8305
+ Partials 3154 1133 -2021
Flags with carried forward coverage won't be shown. Click here to find out more. |
|
Tip ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-24 15:55:40 UTC
Review summary Nits — 4 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
Summary
@loopover/ui-kitis a real, published npm package (publishConfig.access: "public"). Every other component that wraps an external library declares that library underdependencies— 23 separate@radix-ui/react-*packages pluscmdk,embla-carousel-react,input-otp,react-day-picker,react-resizable-panels,recharts,sonner,tailwind-merge,vaul,class-variance-authority, andclsx.form.tsximports directly fromreact-hook-form, but that package was never declared anywhere inpackages/loopover-ui-kit/package.json— resolution only succeeded inside this monorepo because npm workspaces hoistapps/loopover-ui's ownreact-hook-forminstall to the shared rootnode_modules. A consumer installing@loopover/ui-kitin isolation (or a workspace member that doesn't happen to hoist it, e.g.apps/loopover-miner-ui) would hit an unresolved import.react-hook-formtopackages/loopover-ui-kit/package.json'sdependencies, version-matched toapps/loopover-ui's existing^7.80.0range.package-lock.jsonto reflect the new declared dependency.test/unit/ui-kit-manifest-dependencies.test.ts, asserting every external import across the package's non-testsrc/components/*.tsxfiles has a matchingdependencies/peerDependenciesentry — catching this class of gap automatically for any future component instead of only failing for a consumer outside this monorepo's hoisting.No changes to
form.tsxor any other component logic — manifest/lockfile fix plus a drift-check test only.Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Closes #8309
Validation
git diff --checknpm run typechecknpm run docs:drift-checknpm run manifest:drift-checknpm --workspace @loopover/ui-kit run typecheckform.tsx: react-hook-formas undeclared when the dependency is absent, and reports nothing once it's declared.Safety