# Compatibility

The React, React Native and react-native-screens versions TerraUI supports, the platforms it targets, and how its versions move.

## Peer versions

TerraUI supports exactly the versions it is built and tested with:

| Peer | Range | Version |
| --- | --- | --- |
| `react` | `~19.3.0` | React 19.3 |
| `react-native` | `~0.88.0` | React Native 0.88 |
| `react-native-screens` | `~4.30.0` | react-native-screens 4.30 |

These are the versions Expo SDK 58 ships. Older and newer releases are not claimed. A range widens only after a CI run proves the wider one works.

TerraUI needs nothing else: no Expo module, no styling library, no animation library and no icon set. Expo is optional.

## Platforms

- **iOS and Android:** the supported targets.
- **Web:** not supported. These docs render components through react-native-web for the "Try it (web)" tabs, as an approximation; the iOS and Android captures are the reference.

## What the package ships

- **Compiled JavaScript:** unminified ES modules, so your bundler needs no extra setup to compile TerraUI.
- **Type declarations:** `.d.ts` files that keep their documentation comments, so your editor explains every prop.
- **Docs:** these pages as Markdown, in the version you installed.

There is no source and there are no source maps.

## Entry points

The root, `@terratcg/ui`, exports everything public. Each component family also has a subpath, such as `@terratcg/ui/button` or `@terratcg/ui/theme`. Anything not listed in the package's `exports` is internal, and may change in any release.

## Versions

TerraUI is on 0.x. Until 1.0:

- **Minor** (0.1 to 0.2): may break your code. Read the changelog before upgrading.
- **Patch** (0.1.0 to 0.1.1): compatible fixes.

Pin a minor range, such as `~0.1.0`, and upgrade deliberately. Every release has a changelog entry. These docs describe the latest release, whose version is in the header.
