From 4d7d0c8070315796a86f517e3d8d2efb30ad6410 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pierzcha=C5=82a?= Date: Tue, 13 Oct 2026 12:42:00 +0200 Subject: [PATCH] docs(contracts): scope the iOS keyboard class claim to instantiation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The IOS_KEYBOARD_* docblock said the classes are "private to the keyboard surfaces — an app cannot host one in its own view tree", while the marker bullet below it describes hosts the app CAN fill. Limit the sentence to what is true of the classes themselves (an app cannot instantiate them) and leave the subtree question to the per-table bullets, which already answer it. Follow-up to #3482's final review note; no behavior change. --- packages/contracts/src/android-input-ownership.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/contracts/src/android-input-ownership.ts b/packages/contracts/src/android-input-ownership.ts index 1e916da134..bb6249c209 100644 --- a/packages/contracts/src/android-input-ownership.ts +++ b/packages/contracts/src/android-input-ownership.ts @@ -154,8 +154,8 @@ function normalizeAndroidPackageName(value: string | null | undefined): string | * cannot reach them; each node still carries its producing UIKit class in `role`. The table is * exact class names only, so a near miss fails closed rather than widening what counts as * keyboard-owned (the same discipline the snapshot geometry policy applies to private UIKit - * roles). Classes are locale-independent, unlike every label these nodes carry, and private to - * the keyboard surfaces — an app cannot host one in its own view tree. + * roles). Classes are locale-independent, unlike every label these nodes carry, and an app cannot + * instantiate them. * * Four ownership shapes, because "produced by the keyboard" is not one question: * - {@link IOS_KEYBOARD_SURFACE_ROLES}: nodes the keyboard owns PER NODE, safe for geometry