Loading component…
Loading component…
What automated tests prove about each implementation — separate from whether the package itself is a finished product. Derived from the test files; how the levels are earned.
React
Package maturity: stable · Implementation verification: Beta
This platform’s whole catalogue is verified to React beta. The catalogue figure is the weakest component on that platform, not an average.
npx @kinetixui/cli add address-fieldsnpm i @kinetixui/ui @kinetixui/tokens@kinetixui/ui on npm@kinetixui/tokens on npmThe CLI copies React source. Usage imports from @kinetixui/ui require the npm package; for copied source, use your configured local import instead.
Not implemented yet · data display wave.
Composition · KinetixUI ships no SwiftUI component for this.
Composition · KinetixUI ships no Jetpack Compose component for this.
Composition · KinetixUI ships no Flutter component for this.
The fields of a postal address in the order, wording and requiredness the app decides, inside a named fieldset, with the right autofill token on each.
Reduced motion: off · your browser setting
npx @kinetixui/cli add address-fieldsimport { AddressFields } from "@kinetixui/ui";
<AddressFields
legend="Delivery address"
section="shipping"
fields={[
{ name: "building", label: "Building number", required: true, width: "half", inputMode: "numeric" },
{ name: "street", label: "Street", required: true, width: "half" },
{ name: "district", label: "District", required: true },
{ name: "locality", label: "City", required: true, width: "half" },
{ name: "postalCode", label: "Postal code", required: true, width: "half", inputMode: "numeric" },
{ name: "additional", label: "Additional number" },
]}
value={address}
onValueChange={setAddress}
errors={errors}
/>This is the roadmap's AddressForm, delivered as fields rather than a <form>: it goes inside your checkout, profile or
booking form. There is no universal address, so it owns no address model and no postal database. You pass the
fields in the order, wording and requiredness each country needs; the example above is a Saudi national address.
autocomplete token, prefixed by section ("shipping address-line1") so a
browser can fill a shipping and a billing address on one page. Any field can override it.render swaps the default Input for your own control, such as a CountrySelect.optionalLabel ("(optional)") beside the label instead of marking required ones with a bare
asterisk.<fieldset> named by its <legend>. Every field has a visible label; descriptions and errors are linked with
aria-describedby, and an error marks its field invalid.sm breakpoint, one below, all logical, so it mirrors under RTL and reflows at 200% text.The props of @kinetixui/ui, generated from its TypeScript. Props inherited from the underlying DOM element (className, id, event handlers) are accepted too and are not listed.
This table is React-specific. The SwiftUI, Jetpack Compose, Flutter and Angular implementations share the design contract — the same variants, sizes, states and tokens — but each exposes its own idiomatic interface. Their real usage is in the platform tabs on the example above, not here.
| Prop | Type | Notes |
|---|---|---|
| legendrequired | React.ReactNodeThe fieldset's legend — "Shipping address". | The fieldset's legend — "Shipping address". |
| fieldsrequired | AddressFieldConfig[] | |
| valuerequired | Record<string, string> | |
| onValueChangerequired | (value: Record<string, string>) => void | |
| errors | Record<string, React.ReactNode>Error message per field name. A field with a message is marked invalid. | Error message per field name. A field with a message is marked invalid. |
| section | "shipping" | "billing"Which address this is, for autofill: prefixes every token ("shipping address-line1"). | Which address this is, for autofill: prefixes every token ("shipping address-line1"). |
| optionalLabel | stringShown beside the label of a field that is not required. Default "(optional)". Pass "" to hide. | Shown beside the label of a field that is not required. Default "(optional)". Pass "" to hide. |