Releases
The notes for @xaui/native, as the changesets wrote them at publish time. These land on the beta dist-tag; latest still points at the previous line.
0.9.1-beta.99
BetaLatestPatch Changes
-
65dbac6: feat(autocomplete): the field gets its label, its hint and its error
AutocompleteandComboboxhad no label. They are fields — a combobox sits on the line where aTextFieldwould — so a form using one had to label it from outside the component, which is a second column to keep in step and a label a screen reader never associates with the control.The root is now the column, the
DatePicker's shape: aViewthat stacksAutocomplete.Label, the trigger andAutocomplete.Description/.Errorwith onegap, so JSX order is screen order.Comboboxgets the same three slots under its own name — its root is theAutocomplete's, so the column comes with it, and a combobox labelled differently from the text field beside it is exactly the drift this sharing prevents.The column, the label and the help lines resolve through
textFieldReciperather than a second table, so they are theTextField's token for token.isInvalidturns the label and the descriptiondanger; it never mountsAutocomplete.Error, which stays yours to write.The trigger — and the
Combobox's input — points at the two slots througharia-labelledbyandaria-describedby, so what is announced is what the field asked for rather than only the row that happens to be chosen. Mounting the slots is all it takes; your own is still the last word.disablednow dims the column once instead of dimming the trigger a second time inside it. The root takesref,style,asChildand R14's style props for that column; the control keeps its own onAutocomplete.Trigger.
History
- 0.9.1-beta.98feat(agenda-calendar): the Today pill answers the variant
- 0.9.1-beta.97SlideButton — slide-to-confirm, the Slider's gesture without the value (P5.35d)
- 0.9.1-beta.96Reword the third-party library attribution in doc comments and component docs
- 0.9.1-beta.95Move the pre-release line from alpha to beta.
- 0.9.1-alpha.94Allow the built-in TimePicker and DateTimePicker indicators to render without custom icon props.
- 0.9.1-alpha.93Pager — the indicator is one colour at two opacities
- 0.9.1-alpha.92NumberPad, Pager and Rating
- 0.9.1-alpha.91MorphButton — Collapsed · Expanded · Label · Title · Description · Icon
- 0.9.1-alpha.90Rename the floating-action compounds from Fab.Menu and Fab.Discovery to FabMenu and
- 0.9.1-alpha.89Add the virtualized List component with themed compound rows and final-row-aware hairline separators.
- 0.9.1-alpha.88Add the v1 Snackbar notification API, including a vertical Snackbar.Stack for displaying
- 0.9.1-alpha.87Rename the compound row container from List to ListBox and reduce the default primary
- 0.9.1-alpha.86feat(toggle-button): add exclusive ToggleButton.Group selection
- 0.9.1-alpha.85fix(native): preserve Fab.Discovery target refs and backdrop dismissal while lifted
- 0.9.1-alpha.84Scaffold — Root · StatusBar · Navigator
- 0.9.1-alpha.83Add Fab.Menu at @xaui/native/fab: a FAB that opens its two or three actions as separate pills. The trigger is never re-parented — it measures itself and the actions are anchored to that rectangle — so the FAB stays exactly where the layout put it, where the legacy FabMenu moved it into the portal's own corner.
- 0.9.1-alpha.82Add ColorPicker at @xaui/native/color-picker: a DummyField that opens a Dialog over the Tailwind palette, or that palette on its own as a grid. Two layouts — ramps, one named row per hue, and mosaic, every colour touching in one block with no labels. Ships TAILWIND_PALETTE — the seventeen hues plus Zinc, at eight steps each — with Group and Swatch to compose a palette of your own.
- 0.9.1-alpha.81Add SearchField at @xaui/native/search-field: a TextField with a built-in magnifier, a clear button and a search key, in two fills — a flat primary and a soft secondary, neither carrying the field shadow.
- 0.9.1-alpha.80Add PhoneNumberField with a country prefix, searchable country sheet, national number editing and E.164 output. libphonenumber-js is a new optional peer dependency, needed only by this component.
- 0.9.1-alpha.79DummyField — Label · Field · Value · Indicator · Description · Error
- 0.9.1-alpha.78NumberStepper — Track · Decrement · Value · Increment
- 0.9.1-alpha.77RadialChart — several quantities, each as far round its own ring as it has got
- 0.9.1-alpha.76Fix a FieldGroup prefix or suffix taking no touches on a primary field, on Android
- 0.9.1-alpha.75feat(range-calendar, date-range-picker): a month that takes two days
- 0.9.1-alpha.74feat(date-time-picker): a field that opens a month, and then a clock
- 0.9.1-alpha.73feat(table): rows and columns, with a shell round them
- 0.9.1-alpha.72feat(timeline): what happened, in order, with a line through it
- 0.9.1-alpha.71feat(flip-card): a card with two faces, and a turn between them
- 0.9.1-alpha.70feat(fab): the one thing to do on a screen, floating over it
- 0.9.1-alpha.69feat(empty-state): what is on the screen when there is nothing on the screen
- 0.9.1-alpha.68feat(time-field): a time, typed
- 0.9.1-alpha.67feat(mask-field): a value typed into a shape
- 0.9.1-alpha.66feat(carousel): a series of slides, and the controls to move between them
- 0.9.1-alpha.65feat(widget): a card held in a soft frame
- 0.9.1-alpha.64feat(chart): Chart — the card a figure is read on
- 0.9.1-alpha.63feat(charts): LineChart, AreaChart, BarChart, PieChart and RadarChart — drawn here
- 0.9.1-alpha.62feat(date-picker): a field that opens a month
- 0.9.1-alpha.61feat(agenda-calendar): one week, and what is on it
- 0.9.1-alpha.60feat(calendar): a month, and the day chosen in it
- 0.9.1-alpha.59A WheelPicker reads at a glance again, and turns under a parent scroll:
- 0.9.1-alpha.58feat(combobox): a field you type in, over a list you must choose from
- 0.9.1-alpha.57feat(list): ListGroup — the sectioned list
- 0.9.1-alpha.56Emit declarations with tsc, not one rollup-plugin-dts worker
- 0.9.1-alpha.55feat(progress): ProgressBar and ProgressCircle — how far along something is
- 0.9.1-alpha.54feat(close-button): the dismiss affordance, on its own
- 0.9.1-alpha.53List — rows on a ground.
- 0.9.1-alpha.52Segment — a filter: one of a few options, chosen in place.
- 0.9.1-alpha.51Autocomplete — a field that opens a list you search.
- 0.9.1-alpha.50feat(radio): Radio.Group — the set an option belongs to
- 0.9.1-alpha.49Stepper — where you are in a sequence of steps.
- 0.9.1-alpha.48BottomSheet gets a reduced state.
- 0.9.1-alpha.47Surface — a ground for other things to sit on
- 0.9.1-alpha.46TagGroup — List · Item · ItemLabel · ItemRemoveButton
- 0.9.1-alpha.45The toast stack collapses, like the reference implementation's.
- 0.9.1-alpha.44Dialog.Close draws a cross when it is empty, like the reference implementation's.
- 0.9.1-alpha.43BottomSheet — Trigger · Overlay · Content · Handle · Title · Description · Close
- 0.9.1-alpha.42Slider — Output · Track · Fill · Thumb
- 0.9.1-alpha.41Tabs — List · Trigger · Label · Indicator · Content
- 0.9.1-alpha.40Menu — Trigger · Overlay · Content · Label · Group · Item · ItemTitle · ItemDescription ·
- 0.9.1-alpha.39Popover — Trigger · Overlay · Content · Title · Description · Close
- 0.9.1-alpha.38Accordion — Item · Trigger · Indicator · Content
- 0.9.1-alpha.37The overlay shadow gets lighter
- 0.9.1-alpha.36Input becomes TextField, InputGroup becomes FieldGroup
- 0.9.1-alpha.35Skeleton drops its variant
- 0.9.1-alpha.34feat(badge): the v1 Badge — a count, a dot, and the corner it hangs off
- 0.9.1-alpha.33feat(avatar): the v1 Avatar — Image · Fallback · Initials, the fallback as a layer
- 0.9.1-alpha.32feat(skeleton): the v1 Skeleton — two fills, one pulse, sized by R14 alone
- 0.9.1-alpha.31feat(divider): the v1 Divider — no variant, one alignSelf for both axes
- 0.9.1-alpha.30feat(spinner): the v1 Spinner — seven inks, two rings, no SVG
- 0.9.1-alpha.29feat(switch): the v1 Switch — two shapes, one flip
- 0.9.1-alpha.28feat(radio): the v1 Radio — the Checkbox in a circle, with one rule changed
- 0.9.1-alpha.27feat(checkbox): the v1 Checkbox — a box, a mark and the label that toggles it
- 0.9.1-alpha.26feat(input-group): InputGroup — a field with something beside it
- 0.9.1-alpha.25The field radius aligns on the reference implementation's — 21 points becomes 12
- 0.9.1-alpha.24feat(input-otp): InputOTP — a one-time code, one character to a box
- 0.9.1-alpha.23feat(input): the v1 Input — P3.7
- 0.9.1-alpha.22feat(alert): the v1 Alert — P3.6
- 0.9.1-alpha.21Card — the v1 surface, and the control it becomes.
- 0.9.1-alpha.20Stack and Grid join the layout lot
- 0.9.1-alpha.19Row and Column — the two axes of a layout
- 0.9.1-alpha.18Icon's R14 boundary moves from a comment into the type
- 0.9.1-alpha.17Typography and TextSpan — the first entry of the v1 core
- 0.9.1-alpha.16The default variant reads as grey rather than as near-white
- 0.9.1-alpha.15asChild reached Slot as an array, so every pressable threw
- 0.9.1-alpha.14R14 reaches every component that renders a node, not only the Button.
- 0.9.1-alpha.13A pressed fill now moves one way: towards the ink of the mode.
- 0.9.1-alpha.12Fix the press scale, which lurched on wide controls, and align the touch feedback with
- 0.9.1-alpha.11Ship workletized code, or every animation is a hard crash.
- 0.9.1-alpha.10Fix what the blocking P2 API review found, before fifteen components copy it.
- 0.9.1-alpha.9Add Button — the first v1 component, on @xaui/native/button.
- 0.9.1-alpha.8Fix asChild on PressableFeedback, which silently dropped every pressable prop.
- 0.9.1-alpha.7Declare semver where it is used. tooling/pack-check checks, against the **packed**
- 0.9.1-alpha.6Add the shared hooks: useControllableState, usePressState, useMergedRef and
- 0.9.1-alpha.5Add Icon to @xaui/native/system.
- 0.9.1-alpha.4Add Portal and PortalHost to @xaui/native/system.
- 0.9.1-alpha.3Add PressableFeedback to @xaui/native/system: the touch feedback every pressable
- 0.9.1-alpha.2Add the slot primitives to @xaui/native/system: createSlotContext,
- 0.9.1-alpha.1Add the style engine, on the new @xaui/native/system subpath.
- 0.9.1-alpha.0Publish to npm again, under the alpha dist-tag.
- 0.9.0Add an ESLint rule (R13) that forbids directional style properties (left, right, paddingLeft, marginRight, borderLeftWidth…) in packages/native/src — use the Start/End equivalents instead so React Native mirrors layout correctly under RTL.