Conversation
🦋 Changeset detectedLatest commit: 59200fa The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
There was a problem hiding this comment.
Pull Request Overview
This PR introduces a new @bento/input primitive component that provides a universal input element with React Aria interactions, supporting all HTML input types with proper accessibility features. Additionally, the PR performs cleanup by removing trailing whitespace from various configuration files and removing an unused @bento/portal dependency.
Key changes:
- New
Inputcomponent with comprehensive accessibility support (focus management, hover states, ARIA attributes) - Data attribute system for state-based styling
- Support for controlled and uncontrolled input patterns
Reviewed Changes
Copilot reviewed 33 out of 35 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| packages/input/src/index.tsx | Core Input component implementation with React Aria hooks |
| packages/input/package.json | Package configuration and dependencies for the new @bento/input package |
| packages/input/README.mdx | Comprehensive documentation including usage examples and accessibility guidelines |
| packages/input/test/*.tsx | Test suites covering SSR, browser rendering, and example usage |
| packages/input/examples/*.tsx | Example implementations demonstrating controlled, uncontrolled, and form usage |
| packages/focus-lock/package.json | Removal of unused @bento/portal dependency |
| apps/docs/package.json | Addition of new packages to documentation dependencies |
| .changeset/hot-hornets-poke.md | Changeset documenting the new feature and cleanup changes |
| packages/*/vitest.config.ts, tsup.config.ts, tsconfig.json | Removal of trailing whitespace from configuration files |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
These changes introduce a new
Inputprimitive based on the Input Primitive PDR. The only major difference between them is that I did not end up implementing the prop filtering that I mentioned in the PDR. I decided not to include it because it went against the patterns established in Bento/my idea for this component, which was to keep its functionality as close to the native HTMLinputas possible, with slight enhancements (data-attributes, slot-ability, react aria hooks for accessibility).Also, the unrelated file changes are due to the linter auto fixing them on each commit.
Running into strange issues with tests that I am still looking into. Everything seems fine in Storybook.
Checklist
npm run changesetif this affects packages)