Parity contract
The authoritative parity artifact is resources/parity.json in the PAM Mobile UI repository.
Captured reference
Section titled “Captured reference”| Field | Value |
|---|---|
| Source | Versioned PamUI component inventory |
| Reference commit | be060b5d184826d34623e490447a467ffb5cfe56 |
| Package version | 5.0.3 |
| Captured | July 23, 2026 |
| Modules | 61 |
| Exports | 404 |
| Typed PHP facades | 326 |
PAM tracks the complete source tree, including modules that are not prominent in the upstream documentation navigation.
Maturity
Section titled “Maturity”The catalog labels a component as stable or alpha based on its source maturity. Alpha modules remain in the parity contract; they are not presented as stable merely because a PAM implementation exists.
Current alpha surfaces include BottomSheet, Calendar, DateTimePicker, Grid, ImageViewer, LiquidGlass, Skeleton, Table, and Tabs.
Implementation kinds
Section titled “Implementation kinds”A module can be:
- PHP composition;
- Android native host;
- PAM Native passthrough; or
- service/provider or build-time infrastructure.
Implementation kind describes where behavior lives, not its quality level.
Verification statuses
Section titled “Verification statuses”| ID | Status | Meaning |
|---|---|---|
1 |
Planned | The gate still requires implementation or evidence |
2 |
Implemented | Behavior exists but lacks complete verification |
3 |
Verified | The applicable contract and evidence pass |
4 |
Not applicable | The gate does not apply to this module |
Verification gates
Section titled “Verification gates”Every module has ten ordered gates:
| ID | Gate |
|---|---|
1 |
Typed PHP facade and raw escape hatch |
2 |
Root and documented subcomponent tags |
3 |
Android behavior |
4 |
Variants, placements, sizes, and orientations |
5 |
Controlled, disabled, loading, invalid, and read-only states |
6 |
TalkBack, focus, font scale, contrast, and target size |
7 |
Light, dark, and custom theme tokens |
8 |
.pam and PHP examples |
9 |
PHP static analysis plus Android tests |
10 |
Cold start, mount, update, event, and frame-time evidence |
A module reaches verified only when every applicable gate passes.
Native passthrough detail
Section titled “Native passthrough detail”Core passthroughs remain part of the public catalog:
SafeAreaViewforwards independent inset edges and padding or margin mode.KeyboardAvoidingViewforwards resize, position, padding, offset, and enabled state.RefreshControlkeeps gesture arbitration and indicator animation native.- lists use PAM Native’s recycled AndroidX
RecyclerViewhost; - scroll views use one native host for both axes;
- image components share the cancelable measured-size image pipeline;
- status bars merge by mount order; and
- text and inputs retain the complete native accessibility and input surface.
Machine-readable rules
Section titled “Machine-readable rules”All coded fields use sequential integer IDs represented by PHP enums. Human names in definitions are documentation labels; module records store IDs.
resources/parity.schema.json fixes the module count at 61 and rejects unknown fields.
Claim boundary
Section titled “Claim boundary”The presence of a component in the catalog does not mean every gate is verified. Check maturity, implementation kind, and the machine-readable verification array before selecting a component for production.