Adds SwipeableRow, MorphTabs, SwipeableTabs, and StackedMeter, plus a glass-theme fade for swipeable action rails and a heroui-native 1.0.10 peer bump.
The eleventh beta of HeroUI Native Pro ships four new surfaces — a compound SwipeableRow that reveals start and end action rails with the finger, MorphTabs whose header pills expand from icon to icon-and-label as you swipe, SwipeableTabs with an indicator that tracks the pager in real time, and a StackedMeter for proportional part-to-whole breakdowns. SwipeableRow action rails also fade under the glass theme so translucent cards no longer show actions through at rest, and the heroui-native peer moves to 1.0.10.
Follow the installation guide to authenticate the private registry with your HEROUI_PERSONAL_TOKEN, install heroui-native-pro, and wire up HeroUINativeProvider.
This release introduces 4 new components across data display, navigation, and charts:
Tabs look and variants with a swipeable pager and an indicator that interpolates with the finger. (Documentation)Reveal contextual actions by swiping a row toward its logical start or end edge. The whole rounded content card travels with the finger and uncovers the actions resting behind it as separate rounded buttons. Gestures and rails mirror automatically in RTL.
Features:
SwipeableRow.Actions, SwipeableRow.Content, SwipeableRow.ContentBackground, SwipeableRow.Action, and SwipeableRow.ActionLabelstart / end rails with automatic width measurement, rubber-band overshoot, and per-action reveal zoomstandalone (rounded card) and inline (square at rest, corners round while dragged) variantsopenSide / onOpenSideChange) and uncontrolled (defaultOpenSide) open state, plus imperative open, close, and resetglass, action rails mount only while uncovered and fade in/outUsage:
import { SwipeableRow } from "heroui-native-pro";
export function Example() {
return (
<SwipeableRow>
<SwipeableRow.Actions side="end">
<SwipeableRow.Action variant="accent" onPress={archiveMessage}>
<SwipeableRow.ActionLabel>Archive</SwipeableRow.ActionLabel>
</SwipeableRow.Action>
<SwipeableRow.Action variant="danger" onPress={remove}>
Delete
</SwipeableRow.Action>
</SwipeableRow.Actions>
<SwipeableRow.Content>
<MessageRow />
</SwipeableRow.Content>
</SwipeableRow>
);
}For complete documentation and examples, see the SwipeableRow component page.
Tabs that expand from an icon to an icon and label as you swipe between pages. The active pill fills leftover row space; neighbouring pills split it mid-swipe. Extra list children (for example an avatar) keep their natural size while triggers share the rest.
Features:
MorphTabs.List, MorphTabs.Trigger, MorphTabs.TriggerBackground, MorphTabs.Icon, MorphTabs.Label, MorphTabs.Pager, and MorphTabs.Contentvalue / onValueChange) and uncontrolled (defaultValue) selection, plus imperative goTo(value, animated?)renderLazyPlaceholderreact-native-pager-view required for MorphTabs.Pager (rebuild after install)Usage:
import { MorphTabs } from "heroui-native-pro";
export function Example() {
return (
<MorphTabs defaultValue="home">
<MorphTabs.List>
<MorphTabs.Trigger value="home">
<MorphTabs.Icon>
<HomeIcon />
</MorphTabs.Icon>
<MorphTabs.Label>Home</MorphTabs.Label>
</MorphTabs.Trigger>
<MorphTabs.Trigger value="today">
<MorphTabs.Icon>
<CalendarIcon />
</MorphTabs.Icon>
<MorphTabs.Label>Today</MorphTabs.Label>
</MorphTabs.Trigger>
</MorphTabs.List>
<MorphTabs.Pager>
<MorphTabs.Content value="home">...</MorphTabs.Content>
<MorphTabs.Content value="today">...</MorphTabs.Content>
</MorphTabs.Pager>
</MorphTabs>
);
}For complete documentation and examples, see the MorphTabs component page.
Tabs whose pages you can swipe between, with an indicator that follows your finger. It reuses heroui-native Tabs parts and variants (primary / secondary) so the list looks, behaves, and themes exactly like Tabs, while the indicator interpolates between measured triggers during the swipe.
Features:
SwipeableTabs.List, ListBackground, ScrollView, Indicator, Trigger, Label, Separator, Pager, and Contentprimary (segmented pill) and secondary (underlined) variants matching heroui-native TabsscrollAlign, plus separators that hide while either neighbour is selectedgoTo(value, animated?)react-native-pager-view required for SwipeableTabs.Pager (rebuild after install)Usage:
import { SwipeableTabs } from "heroui-native-pro";
export function Example() {
return (
<SwipeableTabs defaultValue="overview">
<SwipeableTabs.List>
<SwipeableTabs.Indicator />
<SwipeableTabs.Trigger value="overview">
<SwipeableTabs.Label>Overview</SwipeableTabs.Label>
</SwipeableTabs.Trigger>
<SwipeableTabs.Trigger value="activity">
<SwipeableTabs.Label>Activity</SwipeableTabs.Label>
</SwipeableTabs.Trigger>
</SwipeableTabs.List>
<SwipeableTabs.Pager>
<SwipeableTabs.Content value="overview">...</SwipeableTabs.Content>
<SwipeableTabs.Content value="activity">...</SwipeableTabs.Content>
</SwipeableTabs.Pager>
</SwipeableTabs>
);
}For complete documentation and examples, see the SwipeableTabs component page.
A stacked meter that splits a single track into proportional colored segments to show how a whole breaks down into parts — repository languages, storage quotas, status mix, and similar part-to-whole views. Pass segments and compose label, track, and legend, or use the string-children shortcut.
Features:
StackedMeter.Label, StackedMeter.Track, StackedMeter.TrackBackground, StackedMeter.Segment, StackedMeter.Legend, LegendItem, LegendIndicator, LegendLabel, and LegendValuemaxValue capacity with empty remainder, and sm / md / lg sizescolorClassName, chart-token defaults (chart-1…chart-5), and formatOptions for locale-aware valuesglassUsage:
import { StackedMeter } from "heroui-native-pro";
const LANGUAGES = [
{ id: "ts", label: "TypeScript", value: 96.3 },
{ id: "css", label: "CSS", value: 2.6 },
{ id: "js", label: "JavaScript", value: 1.1 },
];
export function Example() {
return (
<StackedMeter segments={LANGUAGES}>
<StackedMeter.Label>Languages</StackedMeter.Label>
<StackedMeter.Track />
<StackedMeter.Legend />
</StackedMeter>
);
}For complete documentation and examples, see the StackedMeter component page.
Under translucent themes such as glass, SwipeableRow action rails no longer show through the frosted card at rest. Rails mount only while the card uncovers them and fade in and out with Reanimated FadeIn / FadeOut (~200ms); the actions ref is null while hidden. The public API is unchanged.
Improvements:
Peer dependency bumped to ^1.0.10.
Declared as an optional peer dependency (>=6.0.0) and required only when using MorphTabs.Pager or SwipeableTabs.Pager. Install and rebuild so the native module is linked:
npx expo install react-native-pager-viewThe following documentation has been added or updated to reflect the changes in this release:
react-native-pager-view peerThanks to @vvv-sss for SwipeableRow (#84), MorphTabs / SwipeableTabs (#86), and StackedMeter plus the SwipeableRow glass fade (#87).