react-native-external-keyboard 0.9.1 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/README.md +95 -600
  2. package/android/build.gradle +0 -18
  3. package/android/src/main/java/com/externalkeyboard/events/EventHelper.java +10 -13
  4. package/android/src/main/java/com/externalkeyboard/helper/FocusHelper.java +1 -2
  5. package/android/src/main/java/com/externalkeyboard/services/FocusMemoryService.java +64 -0
  6. package/android/src/main/java/com/externalkeyboard/services/KeyboardFocusService.java +41 -0
  7. package/android/src/main/java/com/externalkeyboard/views/ExternalKeyboardView/ExternalKeyboardView.java +2 -8
  8. package/android/src/main/java/com/externalkeyboard/views/ExternalKeyboardView/ExternalKeyboardViewManager.java +20 -13
  9. package/android/src/main/java/com/externalkeyboard/views/TextInputFocusWrapper/TextInputFocusWrapper.java +99 -21
  10. package/android/src/main/java/com/externalkeyboard/views/TextInputFocusWrapper/TextInputFocusWrapperManager.java +11 -0
  11. package/android/src/main/java/com/externalkeyboard/views/base/FocusHighlightBase.java +11 -5
  12. package/android/src/main/java/com/externalkeyboard/views/base/FocusableBase.java +54 -0
  13. package/android/src/main/java/com/externalkeyboard/views/base/keyboard/ViewFocusChangeBase.java +2 -3
  14. package/android/src/main/java/com/externalkeyboard/views/base/keyboard/ViewFocusRequestBase.java +10 -61
  15. package/android/src/newarch/ExternalKeyboardLockViewManagerInterface.java +11 -0
  16. package/android/src/newarch/ExternalKeyboardLockViewManagerSpec.java +0 -1
  17. package/android/src/newarch/ExternalKeyboardViewManagerInterface.java +42 -0
  18. package/android/src/newarch/ExternalKeyboardViewManagerSpec.java +0 -1
  19. package/android/src/newarch/KeyboardFocusGroupManagerInterface.java +12 -0
  20. package/android/src/newarch/KeyboardFocusGroupManagerSpec.java +0 -1
  21. package/android/src/newarch/TextInputFocusWrapperManagerInterface.java +34 -0
  22. package/android/src/newarch/TextInputFocusWrapperManagerSpec.java +0 -7
  23. package/android/src/newarch/helper/ReactNativeEventDispatcher.java +28 -0
  24. package/android/src/oldarch/ExternalKeyboardViewManagerSpec.java +6 -4
  25. package/android/src/oldarch/TextInputFocusWrapperManagerSpec.java +4 -0
  26. package/android/src/oldarch/helper/ReactNativeEventDispatcher.java +15 -0
  27. package/ios/Delegates/RNCEKVFocusDelegate/RNCEKVFocusDelegate.mm +1 -1
  28. package/ios/Delegates/RNCEKVFocusDelegate/RNCEKVFocusProtocol.h +1 -1
  29. package/ios/Delegates/RNCEKVHaloDelegate/RNCEKVHaloDelegate.h +2 -1
  30. package/ios/Delegates/RNCEKVHaloDelegate/RNCEKVHaloDelegate.mm +41 -5
  31. package/ios/Delegates/RNCEKVHaloDelegate/RNCEKVHaloProtocol.h +1 -0
  32. package/ios/Extensions/RCTCustomScrollView+RNCEKVExternalKeyboard.mm +5 -6
  33. package/ios/Extensions/RCTEnhancedScrollView+RNCEKVExternalKeyboard.mm +8 -9
  34. package/ios/Extensions/RCTTextInputComponentView+RNCEKVExternalKeyboard.mm +1 -1
  35. package/ios/Extensions/RCTViewComponentView+RNCEKVExternalKeyboard.h +0 -1
  36. package/ios/Extensions/RCTViewComponentView+RNCEKVExternalKeyboard.mm +16 -4
  37. package/ios/Extensions/UIViewController+RNCEKVExternalKeyboard.mm +7 -10
  38. package/ios/Helpers/RNCEKVNativeProps/RNCEKVNativeProps.h +4 -4
  39. package/ios/Helpers/RNCEKVSwizzleInstanceMethod/RNCEKVSwizzleInstanceMethod.h +19 -0
  40. package/ios/Protocols/RNCEKVCustomFocusEffectProtocol.h +1 -1
  41. package/ios/Services/RNCEKVFocusMemoryService.h +39 -0
  42. package/ios/Services/RNCEKVFocusMemoryService.mm +42 -0
  43. package/ios/Services/RNCEKVKeyboardFocusService.h +28 -0
  44. package/ios/Services/RNCEKVKeyboardFocusService.mm +54 -0
  45. package/ios/Views/Base/FocusChange/RNCEKVViewFocusChangeBase.h +2 -0
  46. package/ios/Views/Base/FocusChange/RNCEKVViewFocusChangeBase.mm +12 -10
  47. package/ios/Views/Base/FocusRequest/RNCEKVViewFocusRequestBase.h +1 -1
  48. package/ios/Views/Base/FocusRequest/RNCEKVViewFocusRequestBase.mm +6 -17
  49. package/ios/Views/Base/KeyboardHallo/RNCEKVExternalKeyboardHalloBase.h +1 -0
  50. package/ios/Views/Base/KeyboardHallo/RNCEKVExternalKeyboardHalloBase.mm +146 -6
  51. package/ios/Views/Base/ViewGroup/RNCEKVViewGroupBase.h +2 -0
  52. package/ios/Views/Base/ViewGroup/RNCEKVViewGroupBase.mm +4 -0
  53. package/ios/Views/RNCEKVExternalKeyboardView/RNCEKVExternalKeyboardView.h +1 -1
  54. package/ios/Views/RNCEKVExternalKeyboardView/RNCEKVExternalKeyboardView.mm +8 -4
  55. package/ios/Views/RNCEKVExternalKeyboardView/RNCEKVExternalKeyboardViewManager.mm +22 -11
  56. package/ios/Views/RNCEKVTextInputFocusWrapper/RNCEKVTextInputFocusWrapper.mm +17 -0
  57. package/ios/Views/RNCEKVTextInputFocusWrapper/RNCEKVTextInputFocusWrapperManager.mm +12 -0
  58. package/lib/commonjs/components/BaseKeyboardView/BaseKeyboardView.js +67 -65
  59. package/lib/commonjs/components/BaseKeyboardView/BaseKeyboardView.js.map +1 -1
  60. package/lib/commonjs/components/KeyboardExtendedInput/KeyboardExtendedInput.js +49 -97
  61. package/lib/commonjs/components/KeyboardExtendedInput/KeyboardExtendedInput.js.map +1 -1
  62. package/lib/commonjs/components/KeyboardFocusGroup/KeyboardFocusGroup.android.js.map +1 -1
  63. package/lib/commonjs/components/KeyboardFocusGroup/KeyboardFocusGroup.ios.js.map +1 -1
  64. package/lib/commonjs/components/KeyboardFocusGroup/KeyboardFocusGroup.js.map +1 -1
  65. package/lib/commonjs/components/{KeyboardExtendedInput/KeyboardExtendedInput.types.js → KeyboardFocusGroup/KeyboardFocusGroup.types.js} +1 -1
  66. package/lib/commonjs/components/KeyboardFocusGroup/KeyboardFocusGroup.types.js.map +1 -0
  67. package/lib/commonjs/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.js +2 -1
  68. package/lib/commonjs/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.js.map +1 -1
  69. package/lib/commonjs/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.js +2 -1
  70. package/lib/commonjs/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.js.map +1 -1
  71. package/lib/commonjs/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.js +2 -1
  72. package/lib/commonjs/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.js.map +1 -1
  73. package/lib/commonjs/components/KeyboardFocusView/KeyboardFocusView.js +14 -51
  74. package/lib/commonjs/components/KeyboardFocusView/KeyboardFocusView.js.map +1 -1
  75. package/lib/commonjs/components/index.js +47 -0
  76. package/lib/commonjs/components/index.js.map +1 -1
  77. package/lib/commonjs/index.js +37 -19
  78. package/lib/commonjs/index.js.map +1 -1
  79. package/lib/commonjs/nativeSpec/ExternalKeyboardViewNativeComponent.ts +6 -4
  80. package/lib/commonjs/nativeSpec/TextInputFocusWrapperNativeComponent.ts +2 -0
  81. package/lib/commonjs/types/KeyboardFocusLock.types.js +13 -0
  82. package/lib/commonjs/types/KeyboardFocusLock.types.js.map +1 -1
  83. package/lib/commonjs/types/baseKeyboardView.types.js +6 -0
  84. package/lib/commonjs/types/baseKeyboardView.types.js.map +1 -0
  85. package/lib/commonjs/types/{FocusStyle.js → focus.types.js} +1 -1
  86. package/lib/commonjs/types/{FocusStyle.js.map → focus.types.js.map} +1 -1
  87. package/lib/commonjs/types/focusOrder.types.js +33 -0
  88. package/lib/commonjs/types/focusOrder.types.js.map +1 -0
  89. package/lib/commonjs/types/{WithKeyboardFocus.js → focusStyle.types.js} +1 -1
  90. package/lib/commonjs/types/{WithKeyboardFocus.js.map → focusStyle.types.js.map} +1 -1
  91. package/lib/commonjs/types/index.js +18 -0
  92. package/lib/commonjs/types/index.js.map +1 -1
  93. package/lib/commonjs/types/keyPress.types.js +6 -0
  94. package/lib/{module/types/WithKeyboardFocus.js.map → commonjs/types/keyPress.types.js.map} +1 -1
  95. package/lib/commonjs/types/keyboardInput.types.js +6 -0
  96. package/lib/commonjs/types/keyboardInput.types.js.map +1 -0
  97. package/lib/commonjs/types/withKeyboardFocus.types.js +6 -0
  98. package/lib/commonjs/types/withKeyboardFocus.types.js.map +1 -0
  99. package/lib/commonjs/utils/mapLockFocus.js +37 -0
  100. package/lib/commonjs/utils/mapLockFocus.js.map +1 -0
  101. package/lib/commonjs/utils/useFocusStyle.js +4 -21
  102. package/lib/commonjs/utils/useFocusStyle.js.map +1 -1
  103. package/lib/commonjs/utils/useKeyboardFocusContainer.js +79 -0
  104. package/lib/commonjs/utils/useKeyboardFocusContainer.js.map +1 -0
  105. package/lib/commonjs/utils/useKeyboardPress/useKeyboardPress.android.js +4 -7
  106. package/lib/commonjs/utils/useKeyboardPress/useKeyboardPress.android.js.map +1 -1
  107. package/lib/commonjs/utils/useKeyboardPress/useKeyboardPress.ios.js +3 -6
  108. package/lib/commonjs/utils/useKeyboardPress/useKeyboardPress.ios.js.map +1 -1
  109. package/lib/commonjs/utils/useKeyboardPress/useKeyboardPress.js +9 -7
  110. package/lib/commonjs/utils/useKeyboardPress/useKeyboardPress.js.map +1 -1
  111. package/lib/commonjs/utils/useKeyboardPressState.js +65 -0
  112. package/lib/commonjs/utils/useKeyboardPressState.js.map +1 -0
  113. package/lib/commonjs/utils/useOnFocusChange.js +1 -1
  114. package/lib/commonjs/utils/useOnFocusChange.js.map +1 -1
  115. package/lib/commonjs/utils/useOrderValidation.js +35 -0
  116. package/lib/commonjs/utils/useOrderValidation.js.map +1 -0
  117. package/lib/commonjs/utils/useRenderedChildren.js +34 -0
  118. package/lib/commonjs/utils/useRenderedChildren.js.map +1 -0
  119. package/lib/commonjs/utils/useWrappedOrderProps.js +35 -0
  120. package/lib/commonjs/utils/useWrappedOrderProps.js.map +1 -0
  121. package/lib/commonjs/utils/withKeyboardFocus.js +81 -96
  122. package/lib/commonjs/utils/withKeyboardFocus.js.map +1 -1
  123. package/lib/module/components/BaseKeyboardView/BaseKeyboardView.js +57 -55
  124. package/lib/module/components/BaseKeyboardView/BaseKeyboardView.js.map +1 -1
  125. package/lib/module/components/KeyboardExtendedInput/KeyboardExtendedInput.js +51 -99
  126. package/lib/module/components/KeyboardExtendedInput/KeyboardExtendedInput.js.map +1 -1
  127. package/lib/module/components/KeyboardFocusGroup/KeyboardFocusGroup.android.js.map +1 -1
  128. package/lib/module/components/KeyboardFocusGroup/KeyboardFocusGroup.ios.js.map +1 -1
  129. package/lib/module/components/KeyboardFocusGroup/KeyboardFocusGroup.js.map +1 -1
  130. package/lib/module/components/KeyboardFocusGroup/KeyboardFocusGroup.types.js +4 -0
  131. package/lib/module/components/KeyboardFocusGroup/KeyboardFocusGroup.types.js.map +1 -0
  132. package/lib/module/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.js +2 -1
  133. package/lib/module/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.js.map +1 -1
  134. package/lib/module/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.js +2 -1
  135. package/lib/module/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.js.map +1 -1
  136. package/lib/module/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.js +2 -1
  137. package/lib/module/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.js.map +1 -1
  138. package/lib/module/components/KeyboardFocusView/KeyboardFocusView.js +16 -53
  139. package/lib/module/components/KeyboardFocusView/KeyboardFocusView.js.map +1 -1
  140. package/lib/module/components/index.js +5 -0
  141. package/lib/module/components/index.js.map +1 -1
  142. package/lib/module/index.js +20 -7
  143. package/lib/module/index.js.map +1 -1
  144. package/lib/module/nativeSpec/ExternalKeyboardViewNativeComponent.ts +6 -4
  145. package/lib/module/nativeSpec/TextInputFocusWrapperNativeComponent.ts +2 -0
  146. package/lib/module/types/KeyboardFocusLock.types.js +12 -1
  147. package/lib/module/types/KeyboardFocusLock.types.js.map +1 -1
  148. package/lib/module/types/baseKeyboardView.types.js +4 -0
  149. package/lib/module/types/baseKeyboardView.types.js.map +1 -0
  150. package/lib/module/types/focus.types.js +4 -0
  151. package/lib/module/types/{FocusStyle.js.map → focus.types.js.map} +1 -1
  152. package/lib/module/types/focusOrder.types.js +31 -0
  153. package/lib/module/types/focusOrder.types.js.map +1 -0
  154. package/lib/module/types/focusStyle.types.js +4 -0
  155. package/lib/module/types/focusStyle.types.js.map +1 -0
  156. package/lib/module/types/index.js +3 -0
  157. package/lib/module/types/index.js.map +1 -1
  158. package/lib/module/types/keyPress.types.js +4 -0
  159. package/lib/module/types/keyPress.types.js.map +1 -0
  160. package/lib/module/types/keyboardInput.types.js +4 -0
  161. package/lib/module/types/keyboardInput.types.js.map +1 -0
  162. package/lib/module/types/withKeyboardFocus.types.js +4 -0
  163. package/lib/module/types/withKeyboardFocus.types.js.map +1 -0
  164. package/lib/module/utils/mapLockFocus.js +32 -0
  165. package/lib/module/utils/mapLockFocus.js.map +1 -0
  166. package/lib/module/utils/useFocusStyle.js +4 -21
  167. package/lib/module/utils/useFocusStyle.js.map +1 -1
  168. package/lib/module/utils/useKeyboardFocusContainer.js +74 -0
  169. package/lib/module/utils/useKeyboardFocusContainer.js.map +1 -0
  170. package/lib/module/utils/useKeyboardPress/useKeyboardPress.android.js +4 -7
  171. package/lib/module/utils/useKeyboardPress/useKeyboardPress.android.js.map +1 -1
  172. package/lib/module/utils/useKeyboardPress/useKeyboardPress.ios.js +3 -6
  173. package/lib/module/utils/useKeyboardPress/useKeyboardPress.ios.js.map +1 -1
  174. package/lib/module/utils/useKeyboardPress/useKeyboardPress.js +9 -7
  175. package/lib/module/utils/useKeyboardPress/useKeyboardPress.js.map +1 -1
  176. package/lib/module/utils/useKeyboardPressState.js +60 -0
  177. package/lib/module/utils/useKeyboardPressState.js.map +1 -0
  178. package/lib/module/utils/useOnFocusChange.js +1 -1
  179. package/lib/module/utils/useOnFocusChange.js.map +1 -1
  180. package/lib/module/utils/useOrderValidation.js +30 -0
  181. package/lib/module/utils/useOrderValidation.js.map +1 -0
  182. package/lib/module/utils/useRenderedChildren.js +29 -0
  183. package/lib/module/utils/useRenderedChildren.js.map +1 -0
  184. package/lib/module/utils/useWrappedOrderProps.js +30 -0
  185. package/lib/module/utils/useWrappedOrderProps.js.map +1 -0
  186. package/lib/module/utils/withKeyboardFocus.js +84 -99
  187. package/lib/module/utils/withKeyboardFocus.js.map +1 -1
  188. package/lib/typescript/src/components/BaseKeyboardView/BaseKeyboardView.d.ts +19 -125
  189. package/lib/typescript/src/components/BaseKeyboardView/BaseKeyboardView.d.ts.map +1 -1
  190. package/lib/typescript/src/components/KeyboardExtendedInput/KeyboardExtendedInput.d.ts +13 -204
  191. package/lib/typescript/src/components/KeyboardExtendedInput/KeyboardExtendedInput.d.ts.map +1 -1
  192. package/lib/typescript/src/components/KeyboardFocusGroup/KeyboardFocusGroup.android.d.ts +4 -146
  193. package/lib/typescript/src/components/KeyboardFocusGroup/KeyboardFocusGroup.android.d.ts.map +1 -1
  194. package/lib/typescript/src/components/KeyboardFocusGroup/KeyboardFocusGroup.d.ts +2 -12
  195. package/lib/typescript/src/components/KeyboardFocusGroup/KeyboardFocusGroup.d.ts.map +1 -1
  196. package/lib/typescript/src/components/KeyboardFocusGroup/KeyboardFocusGroup.ios.d.ts +4 -146
  197. package/lib/typescript/src/components/KeyboardFocusGroup/KeyboardFocusGroup.ios.d.ts.map +1 -1
  198. package/lib/typescript/src/components/KeyboardFocusGroup/KeyboardFocusGroup.types.d.ts +13 -0
  199. package/lib/typescript/src/components/KeyboardFocusGroup/KeyboardFocusGroup.types.d.ts.map +1 -0
  200. package/lib/typescript/src/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.d.ts +1 -1
  201. package/lib/typescript/src/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.d.ts.map +1 -1
  202. package/lib/typescript/src/components/KeyboardFocusLock/FocusFrame/FocusFrame.d.ts +1 -1
  203. package/lib/typescript/src/components/KeyboardFocusLock/FocusFrame/FocusFrame.d.ts.map +1 -1
  204. package/lib/typescript/src/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.d.ts +1 -1
  205. package/lib/typescript/src/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.d.ts.map +1 -1
  206. package/lib/typescript/src/components/KeyboardFocusLock/FocusTrap/FocusTrap.d.ts +2 -2
  207. package/lib/typescript/src/components/KeyboardFocusLock/FocusTrap/FocusTrap.d.ts.map +1 -1
  208. package/lib/typescript/src/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.d.ts +1 -1
  209. package/lib/typescript/src/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.d.ts.map +1 -1
  210. package/lib/typescript/src/components/KeyboardFocusView/KeyboardFocusView.d.ts +20 -133
  211. package/lib/typescript/src/components/KeyboardFocusView/KeyboardFocusView.d.ts.map +1 -1
  212. package/lib/typescript/src/components/Touchable/Pressable.d.ts +3 -160
  213. package/lib/typescript/src/components/Touchable/Pressable.d.ts.map +1 -1
  214. package/lib/typescript/src/components/index.d.ts +5 -0
  215. package/lib/typescript/src/components/index.d.ts.map +1 -1
  216. package/lib/typescript/src/context/OrderFocusContext.d.ts +1 -1
  217. package/lib/typescript/src/context/OrderFocusContext.d.ts.map +1 -1
  218. package/lib/typescript/src/index.d.ts +48 -10
  219. package/lib/typescript/src/index.d.ts.map +1 -1
  220. package/lib/typescript/src/nativeSpec/ExternalKeyboardLockViewNativeComponent.d.ts +1 -3
  221. package/lib/typescript/src/nativeSpec/ExternalKeyboardLockViewNativeComponent.d.ts.map +1 -1
  222. package/lib/typescript/src/nativeSpec/ExternalKeyboardViewNativeComponent.d.ts +5 -6
  223. package/lib/typescript/src/nativeSpec/ExternalKeyboardViewNativeComponent.d.ts.map +1 -1
  224. package/lib/typescript/src/nativeSpec/KeyboardFocusGroupNativeComponent.d.ts +1 -3
  225. package/lib/typescript/src/nativeSpec/KeyboardFocusGroupNativeComponent.d.ts.map +1 -1
  226. package/lib/typescript/src/nativeSpec/NativeExternalKeyboardModule.d.ts +1 -1
  227. package/lib/typescript/src/nativeSpec/TextInputFocusWrapperNativeComponent.d.ts +3 -3
  228. package/lib/typescript/src/nativeSpec/TextInputFocusWrapperNativeComponent.d.ts.map +1 -1
  229. package/lib/typescript/src/types/KeyboardFocusLock.types.d.ts +15 -1
  230. package/lib/typescript/src/types/KeyboardFocusLock.types.d.ts.map +1 -1
  231. package/lib/typescript/src/types/KeyboardFocusView.types.d.ts +16 -14
  232. package/lib/typescript/src/types/KeyboardFocusView.types.d.ts.map +1 -1
  233. package/lib/typescript/src/types/baseKeyboardView.types.d.ts +119 -0
  234. package/lib/typescript/src/types/baseKeyboardView.types.d.ts.map +1 -0
  235. package/lib/typescript/src/types/focus.types.d.ts +44 -0
  236. package/lib/typescript/src/types/focus.types.d.ts.map +1 -0
  237. package/lib/typescript/src/types/focusOrder.types.d.ts +57 -0
  238. package/lib/typescript/src/types/focusOrder.types.d.ts.map +1 -0
  239. package/lib/typescript/src/types/focusStyle.types.d.ts +11 -0
  240. package/lib/typescript/src/types/focusStyle.types.d.ts.map +1 -0
  241. package/lib/typescript/src/types/index.d.ts +11 -2
  242. package/lib/typescript/src/types/index.d.ts.map +1 -1
  243. package/lib/typescript/src/types/keyPress.types.d.ts +7 -0
  244. package/lib/typescript/src/types/keyPress.types.d.ts.map +1 -0
  245. package/lib/typescript/src/types/keyboardInput.types.d.ts +53 -0
  246. package/lib/typescript/src/types/keyboardInput.types.d.ts.map +1 -0
  247. package/lib/typescript/src/types/withKeyboardFocus.types.d.ts +109 -0
  248. package/lib/typescript/src/types/withKeyboardFocus.types.d.ts.map +1 -0
  249. package/lib/typescript/src/utils/mapLockFocus.d.ts +3 -0
  250. package/lib/typescript/src/utils/mapLockFocus.d.ts.map +1 -0
  251. package/lib/typescript/src/utils/useFocusStyle.d.ts +7 -1017
  252. package/lib/typescript/src/utils/useFocusStyle.d.ts.map +1 -1
  253. package/lib/typescript/src/utils/useKeyboardFocusContainer.d.ts +34 -0
  254. package/lib/typescript/src/utils/useKeyboardFocusContainer.d.ts.map +1 -0
  255. package/lib/typescript/src/utils/useKeyboardPress/useKeyboardPress.android.d.ts +2 -2
  256. package/lib/typescript/src/utils/useKeyboardPress/useKeyboardPress.android.d.ts.map +1 -1
  257. package/lib/typescript/src/utils/useKeyboardPress/useKeyboardPress.d.ts +4 -3
  258. package/lib/typescript/src/utils/useKeyboardPress/useKeyboardPress.d.ts.map +1 -1
  259. package/lib/typescript/src/utils/useKeyboardPress/useKeyboardPress.ios.d.ts +3 -3
  260. package/lib/typescript/src/utils/useKeyboardPress/useKeyboardPress.ios.d.ts.map +1 -1
  261. package/lib/typescript/src/utils/useKeyboardPress/useKeyboardPress.types.d.ts +1 -2
  262. package/lib/typescript/src/utils/useKeyboardPress/useKeyboardPress.types.d.ts.map +1 -1
  263. package/lib/typescript/src/utils/useKeyboardPressState.d.ts +29 -0
  264. package/lib/typescript/src/utils/useKeyboardPressState.d.ts.map +1 -0
  265. package/lib/typescript/src/utils/useOnFocusChange.d.ts +3 -3
  266. package/lib/typescript/src/utils/useOnFocusChange.d.ts.map +1 -1
  267. package/lib/typescript/src/utils/useOrderValidation.d.ts +8 -0
  268. package/lib/typescript/src/utils/useOrderValidation.d.ts.map +1 -0
  269. package/lib/typescript/src/utils/useRenderedChildren.d.ts +18 -0
  270. package/lib/typescript/src/utils/useRenderedChildren.d.ts.map +1 -0
  271. package/lib/typescript/src/utils/useWrappedOrderProps.d.ts +13 -0
  272. package/lib/typescript/src/utils/useWrappedOrderProps.d.ts.map +1 -0
  273. package/lib/typescript/src/utils/withKeyboardFocus.d.ts +3 -8
  274. package/lib/typescript/src/utils/withKeyboardFocus.d.ts.map +1 -1
  275. package/package.json +10 -5
  276. package/src/components/BaseKeyboardView/BaseKeyboardView.tsx +74 -94
  277. package/src/components/KeyboardExtendedInput/KeyboardExtendedInput.tsx +49 -149
  278. package/src/components/KeyboardFocusGroup/KeyboardFocusGroup.android.tsx +23 -32
  279. package/src/components/KeyboardFocusGroup/KeyboardFocusGroup.ios.tsx +32 -41
  280. package/src/components/KeyboardFocusGroup/KeyboardFocusGroup.tsx +3 -14
  281. package/src/components/KeyboardFocusGroup/KeyboardFocusGroup.types.ts +15 -0
  282. package/src/components/KeyboardFocusLock/FocusFrame/FocusFrame.android.tsx +2 -2
  283. package/src/components/KeyboardFocusLock/FocusTrap/FocusTrap.android.tsx +2 -2
  284. package/src/components/KeyboardFocusLock/FocusTrap/FocusTrap.tsx +1 -1
  285. package/src/components/KeyboardFocusLock/KeyboardFocusLockBase/KeyboardFocusLockBase.tsx +2 -2
  286. package/src/components/KeyboardFocusView/KeyboardFocusView.tsx +29 -68
  287. package/src/components/Touchable/Pressable.tsx +2 -2
  288. package/src/components/index.ts +12 -0
  289. package/src/index.tsx +44 -32
  290. package/src/nativeSpec/ExternalKeyboardViewNativeComponent.ts +6 -4
  291. package/src/nativeSpec/TextInputFocusWrapperNativeComponent.ts +2 -0
  292. package/src/types/KeyboardFocusLock.types.ts +16 -1
  293. package/src/types/KeyboardFocusView.types.ts +17 -18
  294. package/src/types/baseKeyboardView.types.ts +122 -0
  295. package/src/types/focus.types.ts +49 -0
  296. package/src/types/focusOrder.types.ts +59 -0
  297. package/src/types/{FocusStyle.ts → focusStyle.types.ts} +5 -0
  298. package/src/types/index.ts +32 -2
  299. package/src/types/keyPress.types.ts +8 -0
  300. package/src/types/keyboardInput.types.ts +81 -0
  301. package/src/types/withKeyboardFocus.types.ts +178 -0
  302. package/src/utils/mapLockFocus.ts +31 -0
  303. package/src/utils/useFocusStyle.tsx +13 -41
  304. package/src/utils/useKeyboardFocusContainer.ts +102 -0
  305. package/src/utils/useKeyboardPress/useKeyboardPress.android.ts +4 -7
  306. package/src/utils/useKeyboardPress/useKeyboardPress.ios.ts +3 -6
  307. package/src/utils/useKeyboardPress/useKeyboardPress.ts +9 -7
  308. package/src/utils/useKeyboardPress/useKeyboardPress.types.ts +1 -2
  309. package/src/utils/useKeyboardPressState.ts +81 -0
  310. package/src/utils/useOnFocusChange.ts +4 -7
  311. package/src/utils/useOrderValidation.ts +74 -0
  312. package/src/utils/useRenderedChildren.ts +42 -0
  313. package/src/utils/useWrappedOrderProps.ts +48 -0
  314. package/src/utils/withKeyboardFocus.tsx +105 -125
  315. package/lib/commonjs/components/KeyboardExtendedInput/KeyboardExtendedInput.types.js.map +0 -1
  316. package/lib/commonjs/components/KeyboardFocusView/hooks/index.js +0 -13
  317. package/lib/commonjs/components/KeyboardFocusView/hooks/index.js.map +0 -1
  318. package/lib/commonjs/components/KeyboardFocusView/hooks/useFocusStyle/index.js +0 -13
  319. package/lib/commonjs/components/KeyboardFocusView/hooks/useFocusStyle/index.js.map +0 -1
  320. package/lib/commonjs/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.js +0 -33
  321. package/lib/commonjs/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.js.map +0 -1
  322. package/lib/commonjs/components/KeyboardFocusView/hooks/useFocusStyle/useTintStyle.js +0 -39
  323. package/lib/commonjs/components/KeyboardFocusView/hooks/useFocusStyle/useTintStyle.js.map +0 -1
  324. package/lib/commonjs/components/RenderPropComponent/RenderPropComponent.js +0 -23
  325. package/lib/commonjs/components/RenderPropComponent/RenderPropComponent.js.map +0 -1
  326. package/lib/commonjs/types/BaseKeyboardView.js +0 -18
  327. package/lib/commonjs/types/BaseKeyboardView.js.map +0 -1
  328. package/lib/module/components/KeyboardExtendedInput/KeyboardExtendedInput.types.js +0 -4
  329. package/lib/module/components/KeyboardExtendedInput/KeyboardExtendedInput.types.js.map +0 -1
  330. package/lib/module/components/KeyboardFocusView/hooks/index.js +0 -4
  331. package/lib/module/components/KeyboardFocusView/hooks/index.js.map +0 -1
  332. package/lib/module/components/KeyboardFocusView/hooks/useFocusStyle/index.js +0 -4
  333. package/lib/module/components/KeyboardFocusView/hooks/useFocusStyle/index.js.map +0 -1
  334. package/lib/module/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.js +0 -28
  335. package/lib/module/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.js.map +0 -1
  336. package/lib/module/components/KeyboardFocusView/hooks/useFocusStyle/useTintStyle.js +0 -34
  337. package/lib/module/components/KeyboardFocusView/hooks/useFocusStyle/useTintStyle.js.map +0 -1
  338. package/lib/module/components/RenderPropComponent/RenderPropComponent.js +0 -17
  339. package/lib/module/components/RenderPropComponent/RenderPropComponent.js.map +0 -1
  340. package/lib/module/types/BaseKeyboardView.js +0 -14
  341. package/lib/module/types/BaseKeyboardView.js.map +0 -1
  342. package/lib/module/types/FocusStyle.js +0 -4
  343. package/lib/module/types/WithKeyboardFocus.js +0 -4
  344. package/lib/typescript/src/components/KeyboardExtendedInput/KeyboardExtendedInput.types.d.ts +0 -45
  345. package/lib/typescript/src/components/KeyboardExtendedInput/KeyboardExtendedInput.types.d.ts.map +0 -1
  346. package/lib/typescript/src/components/KeyboardFocusView/hooks/index.d.ts +0 -2
  347. package/lib/typescript/src/components/KeyboardFocusView/hooks/index.d.ts.map +0 -1
  348. package/lib/typescript/src/components/KeyboardFocusView/hooks/useFocusStyle/index.d.ts +0 -2
  349. package/lib/typescript/src/components/KeyboardFocusView/hooks/useFocusStyle/index.d.ts.map +0 -1
  350. package/lib/typescript/src/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.d.ts +0 -175
  351. package/lib/typescript/src/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.d.ts.map +0 -1
  352. package/lib/typescript/src/components/KeyboardFocusView/hooks/useFocusStyle/useTintStyle.d.ts +0 -181
  353. package/lib/typescript/src/components/KeyboardFocusView/hooks/useFocusStyle/useTintStyle.d.ts.map +0 -1
  354. package/lib/typescript/src/components/RenderPropComponent/RenderPropComponent.d.ts +0 -6
  355. package/lib/typescript/src/components/RenderPropComponent/RenderPropComponent.d.ts.map +0 -1
  356. package/lib/typescript/src/types/BaseKeyboardView.d.ts +0 -70
  357. package/lib/typescript/src/types/BaseKeyboardView.d.ts.map +0 -1
  358. package/lib/typescript/src/types/FocusStyle.d.ts +0 -6
  359. package/lib/typescript/src/types/FocusStyle.d.ts.map +0 -1
  360. package/lib/typescript/src/types/WithKeyboardFocus.d.ts +0 -47
  361. package/lib/typescript/src/types/WithKeyboardFocus.d.ts.map +0 -1
  362. package/src/components/KeyboardExtendedInput/KeyboardExtendedInput.types.ts +0 -73
  363. package/src/components/KeyboardFocusView/hooks/index.ts +0 -1
  364. package/src/components/KeyboardFocusView/hooks/useFocusStyle/index.ts +0 -1
  365. package/src/components/KeyboardFocusView/hooks/useFocusStyle/useFocusStyle.ts +0 -34
  366. package/src/components/KeyboardFocusView/hooks/useFocusStyle/useTintStyle.ts +0 -41
  367. package/src/components/RenderPropComponent/RenderPropComponent.tsx +0 -18
  368. package/src/types/BaseKeyboardView.ts +0 -74
  369. package/src/types/WithKeyboardFocus.ts +0 -115
@@ -0,0 +1,119 @@
1
+ import type { ViewProps, ColorValue } from 'react-native';
2
+ import type { OnFocusChangeFn } from './focus.types';
3
+ import type { OnKeyPressFn } from './keyPress.types';
4
+ import type { FocusOrderProps, LockFocusType } from './focusOrder.types';
5
+ /** Focus props shared by every keyboard-focusable component. */
6
+ export type CommonFocusProps = {
7
+ /** Whether the component can receive keyboard focus. Defaults to `true`. */
8
+ focusable?: boolean;
9
+ /**
10
+ * Enables the halo highlight ring drawn around the component on focus.
11
+ *
12
+ * @platform ios
13
+ */
14
+ haloEffect?: boolean;
15
+ /**
16
+ * Keeps a disabled halo (`haloEffect={false}`) suppressed on views that have
17
+ * a `borderRadius`. UIKit re-arms the halo from the view's
18
+ * `layer.cornerRadius` (set by RN from `borderRadius`) on every layout pass,
19
+ * so the halo can reappear after being disabled; this watches layout changes
20
+ * and resets the focus effect each pass. Only takes effect when
21
+ * `haloEffect={false}`. Alternatively, move `borderRadius` to `containerStyle`
22
+ * so the focused view itself stays square.
23
+ *
24
+ * @platform ios
25
+ */
26
+ roundedHaloFix?: boolean;
27
+ /** Color used to tint the component on focus. */
28
+ tintColor?: ColorValue;
29
+ /**
30
+ * iOS `focusGroupIdentifier` — the identifier of the focus group this view belongs to.
31
+ *
32
+ * @platform ios
33
+ */
34
+ groupIdentifier?: string;
35
+ /** Directions in which focus movement is locked. See {@link LockFocusType}. */
36
+ lockFocus?: LockFocusType[];
37
+ /**
38
+ * Enables Android's default focus highlight for the focused native view.
39
+ *
40
+ * @platform android
41
+ * @default true
42
+ */
43
+ defaultFocusHighlightEnabled?: boolean;
44
+ /**
45
+ * Cross-platform focus highlight mode. `'none'` disables the focus highlight
46
+ * entirely — the iOS halo and the Android default highlight — equivalent to
47
+ * `haloEffect={false}` / `defaultFocusHighlightEnabled={false}`. `'default'`
48
+ * (the default) keeps the platform highlight.
49
+ *
50
+ * @default 'default'
51
+ */
52
+ tintType?: 'default' | 'none';
53
+ };
54
+ export type BaseFocusViewProps = {
55
+ /** Treats the view as a transparent focus wrapper rather than a focusable target itself. */
56
+ focusableWrapper?: boolean;
57
+ /** Called when the component gains or loses keyboard focus. */
58
+ onFocusChange?: OnFocusChangeFn;
59
+ /** Handler for the physical key-up event. */
60
+ onKeyUpPress?: OnKeyPressFn;
61
+ /** Handler for the physical key-down event. */
62
+ onKeyDownPress?: OnKeyPressFn;
63
+ /**
64
+ * Handler for long-press events triggered by the context-menu command.
65
+ *
66
+ * @platform ios
67
+ */
68
+ onContextMenuPress?: () => void;
69
+ /**
70
+ * Bubbling variant of {@link BaseFocusViewProps.onContextMenuPress} — fires for
71
+ * context-menu presses that bubble up from descendants.
72
+ *
73
+ * @platform ios
74
+ */
75
+ onBubbledContextMenuPress?: () => void;
76
+ /** Whether the component should automatically gain focus on mount. */
77
+ autoFocus?: boolean;
78
+ /** Called when the component gains keyboard focus. */
79
+ onFocus?: () => void;
80
+ /** Called when the component loses keyboard focus. */
81
+ onBlur?: () => void;
82
+ /**
83
+ * Corner radius of the halo ring, in points.
84
+ *
85
+ * @platform ios
86
+ */
87
+ haloCornerRadius?: number;
88
+ /**
89
+ * Horizontal expansion of the halo ring beyond the view bounds, in points.
90
+ *
91
+ * @platform ios
92
+ */
93
+ haloExpendX?: number;
94
+ /**
95
+ * Vertical expansion of the halo ring beyond the view bounds, in points.
96
+ *
97
+ * @platform ios
98
+ */
99
+ haloExpendY?: number;
100
+ /** Enables the context-menu interaction on the view. */
101
+ enableContextMenu?: boolean;
102
+ /** Enables moving screen reader focus to this component automatically. */
103
+ screenAutoA11yFocus?: boolean;
104
+ /**
105
+ * Delay before screen reader auto-focus is applied. On Android focus can only be
106
+ * applied after render, which may take 300–500 ms.
107
+ *
108
+ * @platform android
109
+ * @default 300
110
+ */
111
+ screenAutoA11yFocusDelay?: number;
112
+ /**
113
+ * @deprecated No longer has any effect — kept only for backwards compatibility.
114
+ */
115
+ enableA11yFocus?: boolean;
116
+ } & CommonFocusProps & FocusOrderProps;
117
+ /** Props for `BaseKeyboardView` — standard `ViewProps` plus all focus props. */
118
+ export type BaseKeyboardViewProps = ViewProps & BaseFocusViewProps;
119
+ //# sourceMappingURL=baseKeyboardView.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseKeyboardView.types.d.ts","sourceRoot":"","sources":["../../../../src/types/baseKeyboardView.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEzE,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iDAAiD;IACjD,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAC5B;;;;;OAKG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+DAA+D;IAC/D,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,6CAA6C;IAC7C,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,+CAA+C;IAC/C,cAAc,CAAC,EAAE,YAAY,CAAC;IAC9B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,MAAM,IAAI,CAAC;IACvC,sEAAsE;IACtE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,gBAAgB,GAClB,eAAe,CAAC;AAElB,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { ElementRef } from 'react';
2
+ import type { HostComponent, NativeSyntheticEvent } from 'react-native';
3
+ /**
4
+ * The host view ref instance (`measure`, `measureInWindow`, `setNativeProps`, …).
5
+ *
6
+ * RN exposes this as `HostInstance` from 0.77 onward; we derive it from
7
+ * `HostComponent` so the type also resolves on older RN (e.g. 0.76).
8
+ */
9
+ type HostInstance = ElementRef<HostComponent<unknown>>;
10
+ /**
11
+ * Handler invoked when a view gains or loses keyboard focus.
12
+ *
13
+ * @param isFocused `true` on focus, `false` on blur.
14
+ * @param tag Native view tag of the affected element, when available.
15
+ */
16
+ export type OnFocusChangeFn = (isFocused: boolean, tag?: number) => void;
17
+ /** Imperative focus handle exposed via `ref` on keyboard-focusable components. */
18
+ export type KeyboardFocusHandle = {
19
+ /** Moves both physical-keyboard and screen-reader focus to this element. */
20
+ focus: () => void;
21
+ /** Moves physical-keyboard focus to this element. */
22
+ keyboardFocus: () => void;
23
+ /** Moves screen reader (VoiceOver / TalkBack) focus to this element. */
24
+ screenReaderFocus: () => void;
25
+ };
26
+ /**
27
+ * The underlying native view instance augmented with the imperative
28
+ * {@link KeyboardFocusHandle}. Uses RN's `HostInstance` (the host view ref —
29
+ * `measure`, `measureInWindow`, `setNativeProps`, …) rather than the `View`
30
+ * component type, so it resolves correctly under both the legacy and strict
31
+ * (`react-native-strict-api`) RN type sets.
32
+ */
33
+ export type KeyboardFocus = HostInstance & KeyboardFocusHandle;
34
+ /** Alias of {@link KeyboardFocus}. */
35
+ export type BaseKeyboardViewType = KeyboardFocus;
36
+ /** Native event payload emitted by the view's focus-change callback. */
37
+ export type KeyboardFocusEvent = NativeSyntheticEvent<{
38
+ isFocused: boolean;
39
+ target?: number;
40
+ }>;
41
+ /** Handler receiving the raw {@link KeyboardFocusEvent} from the native view. */
42
+ export type NativeFocusChangeHandler = (e: KeyboardFocusEvent) => void;
43
+ export {};
44
+ //# sourceMappingURL=focus.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus.types.d.ts","sourceRoot":"","sources":["../../../../src/types/focus.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAExE;;;;;GAKG;AACH,KAAK,YAAY,GAAG,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzE,kFAAkF;AAClF,MAAM,MAAM,mBAAmB,GAAG;IAChC,4EAA4E;IAC5E,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,qDAAqD;IACrD,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,wEAAwE;IACxE,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,mBAAmB,CAAC;AAE/D,sCAAsC;AACtC,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAAC;AAEjD,wEAAwE;AACxE,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC,CAAC;AAEH,iFAAiF;AACjF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { Int32 } from 'react-native/Libraries/Types/CodegenTypes';
2
+ /**
3
+ * Directions in which keyboard focus movement can be locked via {@link CommonFocusProps.lockFocus}.
4
+ *
5
+ * - `Up` / `Down` / `Left` / `Right` — block directional (arrow / DPad) movement.
6
+ * - `Forward` / `Backward` — block `Tab` and `Shift + Tab` movement.
7
+ * - `First` / `Last` — block jumping to the first / last focusable element.
8
+ */
9
+ export declare enum LockFocusEnum {
10
+ Up = "up",
11
+ Down = "down",
12
+ Right = "right",
13
+ Left = "left",
14
+ Forward = "forward",
15
+ Backward = "backward",
16
+ First = "first",
17
+ Last = "last"
18
+ }
19
+ /** String-literal form of {@link LockFocusEnum} — `'up' | 'down' | 'left' | …`. */
20
+ export type LockFocusType = `${LockFocusEnum}`;
21
+ /**
22
+ * Link-based focus ordering props. Each `order*` target names the {@link FocusOrderProps.orderId orderId}
23
+ * of the element that should receive focus when moving in that direction.
24
+ *
25
+ * > `orderId` values are global. In repeated content (lists, cards) duplicate IDs cause
26
+ * > incorrect focus jumps — namespace them with `orderPrefix` or a `KeyboardOrderFocusGroup`.
27
+ */
28
+ export type FocusOrderProps = {
29
+ /** Unique ID used as the link target for other elements' `order*` props. */
30
+ orderId?: string;
31
+ /** ID of the target focused when navigating left. */
32
+ orderLeft?: string;
33
+ /** ID of the target focused when navigating right. */
34
+ orderRight?: string;
35
+ /** ID of the target focused when navigating upward. */
36
+ orderUp?: string;
37
+ /** ID of the target focused when navigating downward. */
38
+ orderDown?: string;
39
+ /** ID of the target focused on forward navigation (`Tab`). */
40
+ orderForward?: string;
41
+ /** ID of the target focused on backward navigation (`Shift + Tab`). */
42
+ orderBackward?: string;
43
+ /** ID of the target focused when jumping to the first element. `null` clears the link. */
44
+ orderFirst?: string | null;
45
+ /** ID of the target focused when jumping to the last element. `null` clears the link. */
46
+ orderLast?: string | null;
47
+ /** Name of the group for index-based focus ordering. Pair with {@link FocusOrderProps.orderIndex orderIndex}. */
48
+ orderGroup?: string;
49
+ /** Position of this element within its {@link FocusOrderProps.orderGroup orderGroup}; lower indices are focused first. */
50
+ orderIndex?: Int32;
51
+ /**
52
+ * Prefix prepended to this component's `orderId` and all `order*` target IDs.
53
+ * Use it to namespace IDs in repeated components (lists, cards) so global IDs stay unique.
54
+ */
55
+ orderPrefix?: string;
56
+ };
57
+ //# sourceMappingURL=focusOrder.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusOrder.types.d.ts","sourceRoot":"","sources":["../../../../src/types/focusOrder.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC;AAEvE;;;;;;GAMG;AACH,oBAAY,aAAa;IACvB,EAAE,OAAO;IACT,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG,GAAG,aAAa,EAAE,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iHAAiH;IACjH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0HAA0H;IAC1H,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { StyleProp, ViewStyle } from 'react-native';
2
+ /** State argument passed to a {@link FocusStyle} callback. */
3
+ export type FocusStateCallbackType = {
4
+ readonly focused: boolean;
5
+ };
6
+ /**
7
+ * A style applied based on focus state. Either a static style, or a callback that
8
+ * receives `{ focused }` and returns the style to apply for the current state.
9
+ */
10
+ export type FocusStyle = StyleProp<ViewStyle> | ((state: FocusStateCallbackType) => StyleProp<ViewStyle>) | undefined;
11
+ //# sourceMappingURL=focusStyle.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusStyle.types.d.ts","sourceRoot":"","sources":["../../../../src/types/focusStyle.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,8DAA8D;AAC9D,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB,SAAS,CAAC,SAAS,CAAC,GACpB,CAAC,CAAC,KAAK,EAAE,sBAAsB,KAAK,SAAS,CAAC,SAAS,CAAC,CAAC,GACzD,SAAS,CAAC"}
@@ -1,3 +1,12 @@
1
- export type { KeyboardFocusViewProps, OnFocusChangeFn, } from './KeyboardFocusView.types';
2
- export type { FocusStateCallbackType, FocusStyle } from './FocusStyle';
1
+ export type { FocusViewProps, KeyboardFocusViewProps, } from './KeyboardFocusView.types';
2
+ export type { KeyboardFocusLockProps } from './KeyboardFocusLock.types';
3
+ export { LockComponentType } from './KeyboardFocusLock.types';
4
+ export type { OnFocusChangeFn, KeyboardFocus, BaseKeyboardViewType, KeyboardFocusEvent, NativeFocusChangeHandler, } from './focus.types';
5
+ export type { OnKeyPress, OnKeyPressFn } from './keyPress.types';
6
+ export type { FocusOrderProps, LockFocusType } from './focusOrder.types';
7
+ export { LockFocusEnum } from './focusOrder.types';
8
+ export type { BaseFocusViewProps, BaseKeyboardViewProps, } from './baseKeyboardView.types';
9
+ export type { FocusStateCallbackType, FocusStyle } from './focusStyle.types';
10
+ export type { ExtraKeyboardProps, KeyboardInputProps, KeyboardInputPropsDeclaration, } from './keyboardInput.types';
11
+ export type { WithKeyboardFocusProps, WithKeyboardFocusPropsWithRef, KeyboardFocusableComponent, KeyboardFocusableComponentDeclaration, WithKeyboardProps, KeyboardPressType, ChildrenRenderState, } from './withKeyboardFocus.types';
3
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,sBAAsB,EACtB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EACV,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EACV,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC7E,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,sBAAsB,EACtB,6BAA6B,EAC7B,0BAA0B,EAC1B,qCAAqC,EACrC,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { NativeSyntheticEvent } from 'react-native';
2
+ import type { KeyPress } from '../nativeSpec/ExternalKeyboardViewNativeComponent';
3
+ /** Native event payload for a physical key press (key down / key up). */
4
+ export type OnKeyPress = NativeSyntheticEvent<KeyPress>;
5
+ /** Handler receiving a physical {@link OnKeyPress} event. */
6
+ export type OnKeyPressFn = (e: OnKeyPress) => void;
7
+ //# sourceMappingURL=keyPress.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyPress.types.d.ts","sourceRoot":"","sources":["../../../../src/types/keyPress.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAElF,yEAAyE;AACzE,MAAM,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAExD,6DAA6D;AAC7D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { type TextInputProps, type StyleProp, type ViewStyle } from 'react-native';
2
+ import type { FocusStyle } from './focusStyle.types';
3
+ import type { FocusOrderProps } from './focusOrder.types';
4
+ import type { CommonFocusProps } from './baseKeyboardView.types';
5
+ /** Keyboard-focus props added on top of React Native's `TextInputProps`. */
6
+ export type ExtraKeyboardProps = {
7
+ /**
8
+ * How the input acquires focus.
9
+ *
10
+ * - `'default'` — platform default (Android focuses the input; iOS requires a press).
11
+ * - `'press'` — press the spacebar to focus the input.
12
+ * - `'auto'` — focus automatically; keyboard focus targets the input.
13
+ */
14
+ focusType?: 'default' | 'press' | 'auto';
15
+ /**
16
+ * How the input blurs when keyboard focus moves away.
17
+ *
18
+ * - `'default'` — keep typing allowed while focus is on another component.
19
+ * - `'disable'` — blur the input when focus moves away.
20
+ * - `'auto'` — platform-managed blur behavior.
21
+ *
22
+ * @platform ios
23
+ */
24
+ blurType?: 'default' | 'disable' | 'auto';
25
+ /** Style for the container wrapping the input. */
26
+ containerStyle?: StyleProp<ViewStyle>;
27
+ /** Called when the input gains or loses keyboard focus. */
28
+ onFocusChange?: (isFocused: boolean) => void;
29
+ /** Style applied to the inner `TextInput` while focused. */
30
+ focusStyle?: FocusStyle;
31
+ /** Style applied to the container while focused. */
32
+ containerFocusStyle?: FocusStyle;
33
+ /** Behavior of the submit / return key. */
34
+ submitBehavior?: string;
35
+ } & CommonFocusProps & FocusOrderProps;
36
+ /**
37
+ * `TextInput` props that differ across React Native versions and so are loosened
38
+ * to also accept `null` for backward/forward compatibility.
39
+ */
40
+ type IgnoreForCompatibility = 'rejectResponderTermination' | 'selectionHandleColor' | 'cursorColor' | 'maxFontSizeMultiplier';
41
+ type CompatibleInputProp<TextInputPropsType extends object, CompatibilityProp extends IgnoreForCompatibility> = CompatibilityProp extends keyof TextInputPropsType ? TextInputPropsType[CompatibilityProp] : CompatibilityProp extends keyof TextInputProps ? TextInputProps[CompatibilityProp] : never;
42
+ type ReactNativeInputCompatibility<TextInputPropsType extends object = TextInputProps> = Omit<TextInputPropsType, IgnoreForCompatibility> & {
43
+ [CompatibilityProp in IgnoreForCompatibility]?: CompatibleInputProp<TextInputPropsType, CompatibilityProp> | null;
44
+ };
45
+ /**
46
+ * Generic form of {@link KeyboardInputProps}. Combines a (version-compatible)
47
+ * `TextInputProps` shape with the library's {@link ExtraKeyboardProps}.
48
+ */
49
+ export type KeyboardInputPropsDeclaration<TextInputPropsType extends object = TextInputProps> = ReactNativeInputCompatibility<TextInputPropsType> & ExtraKeyboardProps;
50
+ /** Props for `KeyboardExtendedInput` — RN `TextInputProps` plus keyboard-focus props. */
51
+ export type KeyboardInputProps = KeyboardInputPropsDeclaration<TextInputProps>;
52
+ export {};
53
+ //# sourceMappingURL=keyboardInput.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboardInput.types.d.ts","sourceRoot":"","sources":["../../../../src/types/keyboardInput.types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IACzC;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC1C,kDAAkD;IAClD,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACtC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,4DAA4D;IAC5D,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,gBAAgB,GAClB,eAAe,CAAC;AAElB;;;GAGG;AACH,KAAK,sBAAsB,GACvB,4BAA4B,GAC5B,sBAAsB,GACtB,aAAa,GACb,uBAAuB,CAAC;AAE5B,KAAK,mBAAmB,CACtB,kBAAkB,SAAS,MAAM,EACjC,iBAAiB,SAAS,sBAAsB,IAC9C,iBAAiB,SAAS,MAAM,kBAAkB,GAClD,kBAAkB,CAAC,iBAAiB,CAAC,GACrC,iBAAiB,SAAS,MAAM,cAAc,GAC9C,cAAc,CAAC,iBAAiB,CAAC,GACjC,KAAK,CAAC;AAEV,KAAK,6BAA6B,CAChC,kBAAkB,SAAS,MAAM,GAAG,cAAc,IAChD,IAAI,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,GAAG;KACpD,iBAAiB,IAAI,sBAAsB,CAAC,CAAC,EAAE,mBAAmB,CACjE,kBAAkB,EAClB,iBAAiB,CAClB,GAAG,IAAI;CACT,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,6BAA6B,CACvC,kBAAkB,SAAS,MAAM,GAAG,cAAc,IAChD,6BAA6B,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAAC;AAE3E,yFAAyF;AACzF,MAAM,MAAM,kBAAkB,GAAG,6BAA6B,CAAC,cAAc,CAAC,CAAC"}
@@ -0,0 +1,109 @@
1
+ import type { PressableProps, View, ViewProps } from 'react-native';
2
+ import type { FocusStyle } from './focusStyle.types';
3
+ import type { KeyboardFocus } from './focus.types';
4
+ import type { OnKeyPress } from './keyPress.types';
5
+ import type { FocusViewProps } from './KeyboardFocusView.types';
6
+ import type { RefAttributes } from 'react';
7
+ /** Fallback press handler used when the wrapped component declares no matching prop. */
8
+ type KeyboardPressHandler = (e?: OnKeyPress) => void;
9
+ /**
10
+ * Resolves a press-handler prop type: reuses the wrapped component's own signature
11
+ * if it declares `PropName`, otherwise falls back to {@link KeyboardPressHandler}.
12
+ */
13
+ type PressHandlerProp<ComponentProps extends object, PropName extends 'onPress' | 'onLongPress' | 'onPressIn' | 'onPressOut'> = PropName extends keyof ComponentProps ? ComponentProps[PropName] : KeyboardPressHandler;
14
+ /** Picks the wrapped component's prop type for `PropName`, or `unknown` if absent. */
15
+ type PickProp<ComponentProps extends object, PropName extends string> = PropName extends keyof ComponentProps ? ComponentProps[PropName] : unknown;
16
+ /** A component constructor that {@link WithKeyboardFocusProps} can enhance. */
17
+ export type KeyboardFocusableComponent<ComponentProps extends object> = React.JSXElementConstructor<ComponentProps>;
18
+ /**
19
+ * Press and focus callbacks layered onto the wrapped component. Press handlers reuse
20
+ * the wrapped component's own signatures where possible; `onComponent{Focus,Blur}`
21
+ * forward to the wrapped component's native `onFocus` / `onBlur`.
22
+ */
23
+ export type KeyboardPressType<ComponentProps extends object> = {
24
+ /** Called on press (touch or physical key). */
25
+ onPress?: PressHandlerProp<ComponentProps, 'onPress'>;
26
+ /** Called on long press (touch or physical key). */
27
+ onLongPress?: PressHandlerProp<ComponentProps, 'onLongPress'>;
28
+ /** Called when a press begins. */
29
+ onPressIn?: PressHandlerProp<ComponentProps, 'onPressIn'>;
30
+ /** Called when a press ends. */
31
+ onPressOut?: PressHandlerProp<ComponentProps, 'onPressOut'>;
32
+ /** Forwarded to the wrapped component's own `onFocus`. */
33
+ onComponentFocus?: PickProp<ComponentProps, 'onFocus'>;
34
+ /** Forwarded to the wrapped component's own `onBlur`. */
35
+ onComponentBlur?: PickProp<ComponentProps, 'onBlur'>;
36
+ };
37
+ /** Extracts the state argument from a component's children render prop, or `never`. */
38
+ type ExtractRenderPropState<T> = T extends (state: infer S) => any ? S : never;
39
+ /** The render-prop state of the wrapped component's `children`, or `never` if it has none. */
40
+ export type ChildrenRenderState<CP extends object> = 'children' extends keyof CP ? ExtractRenderPropState<NonNullable<CP['children']>> : never;
41
+ /**
42
+ * `renderContent` signature — receives the wrapped component's own render-prop state
43
+ * merged with `{ focused }`. Resolves to `never` when the component has no render-prop children.
44
+ */
45
+ type RenderContentProp<CP extends object> = ChildrenRenderState<CP> extends never ? never : (state: ChildrenRenderState<CP> & {
46
+ focused: boolean;
47
+ }) => React.ReactNode;
48
+ /**
49
+ * `renderFocusable` signature — receives only `{ focused }`. Use it on components
50
+ * (e.g. `TouchableOpacity`) that don't expose a render-prop `children`.
51
+ */
52
+ type RenderFocusableProp = (state: {
53
+ focused: boolean;
54
+ }) => React.ReactNode;
55
+ type RenderSlot<CP extends object> = {
56
+ renderContent?: RenderContentProp<CP>;
57
+ renderFocusable?: RenderFocusableProp;
58
+ };
59
+ type WithKeyboardBaseProps<ViewType, ViewStyleType> = {
60
+ /**
61
+ * Enables the `pressed` style handler for custom components. Always effectively
62
+ * `true` for the standard `Pressable`.
63
+ *
64
+ * @default false
65
+ */
66
+ withPressedStyle?: boolean;
67
+ /**
68
+ * Android only. Physical-keyboard activation (Enter / Space / DPad-center)
69
+ * does not flow through the touch responder, so the wrapped component's
70
+ * `pressed` state stays `false` for keyboard presses. When enabled, the
71
+ * press is tracked from the key down/up events and merged into the `pressed`
72
+ * value passed to `renderContent` and to the `style({ pressed })` function.
73
+ * No-op on iOS, where native focus already drives `pressed`.
74
+ */
75
+ androidKeyboardPressState?: boolean;
76
+ /** Style for the container wrapping the component. */
77
+ containerStyle?: ViewStyleType | ViewProps['style'];
78
+ /** Style applied to the container while focused. */
79
+ containerFocusStyle?: FocusStyle;
80
+ /** Ref to the wrapped component instance. */
81
+ componentRef?: React.RefObject<ViewType>;
82
+ /** Style for the wrapped component. */
83
+ style?: PressableProps['style'];
84
+ /** Called when the component loses keyboard focus. */
85
+ onBlur?: (() => void) | null;
86
+ /** Called when the component gains keyboard focus. */
87
+ onFocus?: (() => void) | null;
88
+ };
89
+ /**
90
+ * The keyboard-focus-specific props added by {@link WithKeyboardFocusProps}: container
91
+ * styling, refs, focus callbacks, and the mutually-exclusive `renderContent` /
92
+ * `renderFocusable` slot.
93
+ */
94
+ export type WithKeyboardProps<ViewType = View, ViewStyleType = unknown, ComponentProps extends object = {}> = WithKeyboardBaseProps<ViewType, ViewStyleType> & RenderSlot<ComponentProps>;
95
+ type KeyboardFocusBaseProps = Omit<FocusViewProps, 'onPress' | 'onLongPress' | 'onBlur' | 'onFocus'>;
96
+ type MergeProps<BaseProps extends object, OverrideProps extends object> = Omit<BaseProps, keyof OverrideProps> & OverrideProps;
97
+ type KeyboardFocusOverrideProps<ComponentProps extends object, ViewStyleType, ViewType = View> = KeyboardPressType<ComponentProps> & KeyboardFocusBaseProps & WithKeyboardProps<ViewType, ViewStyleType, ComponentProps>;
98
+ /**
99
+ * Full prop type for a `withKeyboardFocus`-wrapped component: the wrapped component's
100
+ * own props, with the library's press/focus/order props merged in (library props win
101
+ * on conflict).
102
+ */
103
+ export type WithKeyboardFocusProps<ComponentProps extends object, ViewStyleType, ViewType = View> = MergeProps<ComponentProps, KeyboardFocusOverrideProps<ComponentProps, ViewStyleType, ViewType>>;
104
+ /** {@link WithKeyboardFocusProps} plus a `ref` exposing the {@link KeyboardFocus} handle. */
105
+ export type WithKeyboardFocusPropsWithRef<ComponentProps extends object, ViewStyleType, ViewType = View> = WithKeyboardFocusProps<ComponentProps, ViewStyleType, ViewType> & RefAttributes<KeyboardFocus>;
106
+ /** Type of the component returned by `withKeyboardFocus`. */
107
+ export type KeyboardFocusableComponentDeclaration<ComponentProps extends object, ViewStyleType, ViewType = View> = React.JSXElementConstructor<WithKeyboardFocusPropsWithRef<ComponentProps, ViewStyleType, ViewType>>;
108
+ export {};
109
+ //# sourceMappingURL=withKeyboardFocus.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withKeyboardFocus.types.d.ts","sourceRoot":"","sources":["../../../../src/types/withKeyboardFocus.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type LockFocusType } from '../types';
2
+ export declare const mapLockFocus: (values: LockFocusType[] | undefined) => number;
3
+ //# sourceMappingURL=mapLockFocus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapLockFocus.d.ts","sourceRoot":"","sources":["../../../../src/utils/mapLockFocus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AA0B7D,eAAO,MAAM,YAAY,GAAI,QAAQ,aAAa,EAAE,GAAG,SAAS,KAAG,MAIlE,CAAC"}