v1.0.10
Input and TextArea refs resolve as native TextInput instances, BottomSheet stays hidden during Android handle peek and container resize, Skeleton variant="none" skips default enter/exit animations, and Menu/Popover/Select refresh anchors on window resize
HeroUI Native v1.0.10 types Input, TextArea, SearchField, and InputGroup refs as native TextInput instances for React Native's Strict TypeScript API, fixes two BottomSheet visibility bugs on Android, lets Skeleton variant="none" skip default layout animations, and refreshes Menu/Popover/Select anchor positions when the app window resizes.
Installation
Update to the latest version:
npm i heroui-nativepnpm add heroui-nativeyarn add heroui-nativebun add heroui-nativeUsing AI assistants? Simply prompt "Hey Cursor, update HeroUI Native to the latest version" and your AI assistant will automatically compare versions and apply the necessary changes. Learn more about the HeroUI Native MCP Server.
Try It on Your Device
Bug Fixes
This release includes fixes for the following issues:
- Issue #485: Dismissed bottom sheets could flash back into view during container resize (device rotation or iPad split view) because they stayed mounted at a stale closed offset. A closed sheet now stays aligned with the new container and out of the paint until it is opened again.
- BottomSheet on Android: a closed sheet's handle could peek above the bottom edge on edge-to-edge devices because Gorhom parks at
window.height, which is shorter than the measured container. The closed position is now corrected on first layout and Gorhom's own open animations are ignored whileisOpenis stillfalse. - Issue #490 (iOS): Dialog and Select outside taps beside a centered, width-constrained panel were intercepted by internal animated wrappers on iOS. Outer wrappers now use
pointerEvents="box-none"so taps pass through to the overlay dismiss handler. The Android portion of #490 remains open. - Issue #497: Input, TextArea, SearchField, and InputGroup forwarded refs as
typeof TextInput, which fails under React Native's Strict TypeScript API (0.87+). Refs now resolve viaReact.ComponentRefand newInputRefandTextAreaReftypes are exported. - Issue #489: An open Menu, Popover, or Select could detach from its trigger after iPad rotation or app-window resize. The shared positioning hook now uses
useWindowDimensionsand remeasures the trigger ref when width or height changes. - Switch now preserves a consumer-provided
aria-valuetextinstead of silently replacing it with the default'on'/'off'due to an operator-precedence bug. - Select trigger
selectClassNames.trigger()now applies the documented'default'variant styles without requiring an explicitvariantprop, matching the component's own destructuring default. - Input style fix: removed
ios:outline-2in favour ofios:outlineto eliminate an extra outline width on iOS.
Related PRs:
Component Improvements
- Skeleton
variant="none"now skips the defaultFadeIn/FadeOutlayout animations unlessanimation.enteringoranimation.exitingis set explicitly. This keeps static placeholder bones cheap to mount and recycle in lists. (#495)
Dependencies
- Uniwind is pinned to
1.12.0(previously^1.10.0) to resolve edge-to-edge layout measurement on Android. (#498)
Updated Documentation
The following documentation pages have been updated to reflect the changes in this release:
- CloseButton — Corrects the default icon size from
20to18 - Menu — Corrects the SubMenu indicator icon size from
14to16 - Skeleton — Notes that
variant="none"skips default enter/exit animations - GlassView (in-repo docs only) — Corrects the default blur
intensityfrom30to25
Related PRs:
Links
Contributors
Thanks to everyone who contributed to this release!