@react-native-ohos/react-native-keyboard-controller 1.16.8 → 1.17.0

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 (352) hide show
  1. package/README.OpenSource +2 -2
  2. package/README.md +105 -29
  3. package/harmony/keyboard_controller/BuildProfile.ets +1 -1
  4. package/harmony/keyboard_controller/Index.ets +1 -0
  5. package/harmony/keyboard_controller/oh-package-lock.json5 +7 -7
  6. package/harmony/keyboard_controller/oh-package.json5 +1 -1
  7. package/harmony/keyboard_controller/src/main/cpp/ClippingScrollViewComponentDescriptor.h +86 -0
  8. package/harmony/keyboard_controller/src/main/cpp/ClippingScrollViewComponentInstance.cpp +104 -0
  9. package/harmony/keyboard_controller/src/main/cpp/ClippingScrollViewComponentInstance.h +64 -0
  10. package/harmony/keyboard_controller/src/main/cpp/ClippingScrollViewJSIBinder.h +60 -0
  11. package/harmony/keyboard_controller/src/main/cpp/KeyboardControllerViewComponentInstance.cpp +8 -1
  12. package/harmony/keyboard_controller/src/main/cpp/KeyboardGestureAreaComponentInstance.cpp +2 -2
  13. package/harmony/keyboard_controller/src/main/cpp/KeyboardToolbarGroupViewComponentDescriptor.h +46 -0
  14. package/harmony/keyboard_controller/src/main/cpp/KeyboardToolbarGroupViewComponentInstance.cpp +37 -0
  15. package/harmony/keyboard_controller/src/main/cpp/KeyboardToolbarGroupViewComponentInstance.h +32 -0
  16. package/harmony/keyboard_controller/src/main/cpp/KeyboardToolbarGroupViewJSIBinder.h +23 -0
  17. package/harmony/keyboard_controller/src/main/cpp/RNKeyboardController.cpp +58 -1
  18. package/harmony/keyboard_controller/src/main/cpp/RNKeyboardControllerPackage.h +20 -0
  19. package/harmony/keyboard_controller/src/main/cpp/ViewHierarchyNavigator.cpp +65 -44
  20. package/harmony/keyboard_controller/src/main/cpp/ViewHierarchyNavigator.h +22 -3
  21. package/harmony/keyboard_controller/src/main/cpp/keyboardControllerPackage.cpp +17 -4
  22. package/harmony/keyboard_controller/src/main/cpp/keyboardControllerPackage.h +9 -1
  23. package/harmony/keyboard_controller/src/main/ets/{RNKeyboardControllerPackage.ts → RNKeyboardControllerPackage.ets} +9 -5
  24. package/harmony/keyboard_controller/src/main/ets/RNKeyboardControllerTurboModule.ts +29 -5
  25. package/harmony/keyboard_controller/src/main/ets/Type.ts +2 -1
  26. package/harmony/keyboard_controller.har +0 -0
  27. package/lib/commonjs/animated.js +20 -9
  28. package/lib/commonjs/animated.js.map +1 -1
  29. package/lib/commonjs/architecture.js +8 -0
  30. package/lib/commonjs/architecture.js.map +1 -0
  31. package/lib/commonjs/bindings.js +37 -2
  32. package/lib/commonjs/bindings.js.map +1 -1
  33. package/lib/commonjs/bindings.native.js +25 -2
  34. package/lib/commonjs/bindings.native.js.map +1 -1
  35. package/lib/commonjs/compat.js +50 -0
  36. package/lib/commonjs/compat.js.map +1 -0
  37. package/lib/commonjs/components/KeyboardAvoidingView/hooks.js +21 -15
  38. package/lib/commonjs/components/KeyboardAvoidingView/hooks.js.map +1 -1
  39. package/lib/commonjs/components/KeyboardAvoidingView/index.js +36 -11
  40. package/lib/commonjs/components/KeyboardAvoidingView/index.js.map +1 -1
  41. package/lib/commonjs/components/KeyboardAwareScrollView/index.js +51 -16
  42. package/lib/commonjs/components/KeyboardAwareScrollView/index.js.map +1 -1
  43. package/lib/commonjs/components/KeyboardAwareScrollView/useSmoothKeyboardHandler.js +2 -2
  44. package/lib/commonjs/components/KeyboardAwareScrollView/useSmoothKeyboardHandler.js.map +1 -1
  45. package/lib/commonjs/components/KeyboardChatScrollView/hooks.js +13 -0
  46. package/lib/commonjs/components/KeyboardChatScrollView/hooks.js.map +1 -0
  47. package/lib/commonjs/components/KeyboardChatScrollView/index.js +122 -0
  48. package/lib/commonjs/components/KeyboardChatScrollView/index.js.map +1 -0
  49. package/lib/commonjs/components/KeyboardChatScrollView/types.js +6 -0
  50. package/lib/commonjs/components/KeyboardChatScrollView/types.js.map +1 -0
  51. package/lib/commonjs/components/KeyboardChatScrollView/useChatKeyboard/helpers.js +221 -0
  52. package/lib/commonjs/components/KeyboardChatScrollView/useChatKeyboard/helpers.js.map +1 -0
  53. package/lib/commonjs/components/KeyboardChatScrollView/useChatKeyboard/index.ios.js +149 -0
  54. package/lib/commonjs/components/KeyboardChatScrollView/useChatKeyboard/index.ios.js.map +1 -0
  55. package/lib/commonjs/components/KeyboardChatScrollView/useChatKeyboard/index.js +240 -0
  56. package/lib/commonjs/components/KeyboardChatScrollView/useChatKeyboard/index.js.map +1 -0
  57. package/lib/commonjs/components/KeyboardChatScrollView/useChatKeyboard/types.js +6 -0
  58. package/lib/commonjs/components/KeyboardChatScrollView/useChatKeyboard/types.js.map +1 -0
  59. package/lib/commonjs/components/KeyboardChatScrollView/useEndVisible.js +40 -0
  60. package/lib/commonjs/components/KeyboardChatScrollView/useEndVisible.js.map +1 -0
  61. package/lib/commonjs/components/KeyboardChatScrollView/useExtraContentPadding/index.js +92 -0
  62. package/lib/commonjs/components/KeyboardChatScrollView/useExtraContentPadding/index.js.map +1 -0
  63. package/lib/commonjs/components/KeyboardToolbar/Arrow.js +2 -3
  64. package/lib/commonjs/components/KeyboardToolbar/Arrow.js.map +1 -1
  65. package/lib/commonjs/components/KeyboardToolbar/Button.js +2 -3
  66. package/lib/commonjs/components/KeyboardToolbar/Button.js.map +1 -1
  67. package/lib/commonjs/components/KeyboardToolbar/compound/components/Background.js +13 -0
  68. package/lib/commonjs/components/KeyboardToolbar/compound/components/Background.js.map +1 -0
  69. package/lib/commonjs/components/KeyboardToolbar/compound/components/Content.js +25 -0
  70. package/lib/commonjs/components/KeyboardToolbar/compound/components/Content.js.map +1 -0
  71. package/lib/commonjs/components/KeyboardToolbar/compound/components/Done.js +58 -0
  72. package/lib/commonjs/components/KeyboardToolbar/compound/components/Done.js.map +1 -0
  73. package/lib/commonjs/components/KeyboardToolbar/compound/components/Next.js +49 -0
  74. package/lib/commonjs/components/KeyboardToolbar/compound/components/Next.js.map +1 -0
  75. package/lib/commonjs/components/KeyboardToolbar/compound/components/Prev.js +49 -0
  76. package/lib/commonjs/components/KeyboardToolbar/compound/components/Prev.js.map +1 -0
  77. package/lib/commonjs/components/KeyboardToolbar/compound/components/index.js +42 -0
  78. package/lib/commonjs/components/KeyboardToolbar/compound/components/index.js.map +1 -0
  79. package/lib/commonjs/components/KeyboardToolbar/compound/components/types.js +6 -0
  80. package/lib/commonjs/components/KeyboardToolbar/compound/components/types.js.map +1 -0
  81. package/lib/commonjs/components/KeyboardToolbar/compound/context.js +17 -0
  82. package/lib/commonjs/components/KeyboardToolbar/compound/context.js.map +1 -0
  83. package/lib/commonjs/components/KeyboardToolbar/constants.js +17 -0
  84. package/lib/commonjs/components/KeyboardToolbar/constants.js.map +1 -0
  85. package/lib/commonjs/components/KeyboardToolbar/index.js +95 -84
  86. package/lib/commonjs/components/KeyboardToolbar/index.js.map +1 -1
  87. package/lib/commonjs/components/KeyboardToolbar/types.js.map +1 -1
  88. package/lib/commonjs/components/ScrollViewWithBottomPadding/index.js +120 -0
  89. package/lib/commonjs/components/ScrollViewWithBottomPadding/index.js.map +1 -0
  90. package/lib/commonjs/components/ScrollViewWithBottomPadding/styles.js +15 -0
  91. package/lib/commonjs/components/ScrollViewWithBottomPadding/styles.js.map +1 -0
  92. package/lib/commonjs/components/hooks/useColorScheme.js +1 -1
  93. package/lib/commonjs/components/hooks/useColorScheme.js.map +1 -1
  94. package/lib/commonjs/components/hooks/useCombinedRef.js +24 -0
  95. package/lib/commonjs/components/hooks/useCombinedRef.js.map +1 -0
  96. package/lib/commonjs/components/hooks/useScrollState.js +62 -0
  97. package/lib/commonjs/components/hooks/useScrollState.js.map +1 -0
  98. package/lib/commonjs/components/index.js +7 -0
  99. package/lib/commonjs/components/index.js.map +1 -1
  100. package/lib/commonjs/constants.js +3 -1
  101. package/lib/commonjs/constants.js.map +1 -1
  102. package/lib/commonjs/context.js +1 -0
  103. package/lib/commonjs/context.js.map +1 -1
  104. package/lib/commonjs/hooks/index.js +14 -1
  105. package/lib/commonjs/hooks/index.js.map +1 -1
  106. package/lib/commonjs/hooks/useKeyboardState/index.js +39 -0
  107. package/lib/commonjs/hooks/useKeyboardState/index.js.map +1 -0
  108. package/lib/commonjs/index.js +27 -1
  109. package/lib/commonjs/index.js.map +1 -1
  110. package/lib/commonjs/internal.js +36 -0
  111. package/lib/commonjs/internal.js.map +1 -1
  112. package/lib/commonjs/module.js +21 -12
  113. package/lib/commonjs/module.js.map +1 -1
  114. package/lib/commonjs/specs/ClippingScrollViewDecoratorViewNativeComponent.js +12 -0
  115. package/lib/commonjs/specs/ClippingScrollViewDecoratorViewNativeComponent.js.map +1 -0
  116. package/lib/commonjs/specs/KeyboardControllerViewNativeComponent.js +8 -2
  117. package/lib/commonjs/specs/KeyboardControllerViewNativeComponent.js.map +1 -1
  118. package/lib/commonjs/specs/KeyboardGestureAreaNativeComponent.js +2 -1
  119. package/lib/commonjs/specs/KeyboardGestureAreaNativeComponent.js.map +1 -1
  120. package/lib/commonjs/specs/KeyboardToolbarGroupViewNativeComponent.js +12 -0
  121. package/lib/commonjs/specs/KeyboardToolbarGroupViewNativeComponent.js.map +1 -0
  122. package/lib/commonjs/specs/NativeKeyboardController.js.map +1 -1
  123. package/lib/commonjs/types.js.map +1 -1
  124. package/lib/commonjs/utils/findNodeHandle/index.js +9 -0
  125. package/lib/commonjs/utils/findNodeHandle/index.js.map +1 -0
  126. package/lib/commonjs/utils/findNodeHandle/index.native.js +13 -0
  127. package/lib/commonjs/utils/findNodeHandle/index.native.js.map +1 -0
  128. package/lib/commonjs/views/KeyboardExtender/index.js +30 -0
  129. package/lib/commonjs/views/KeyboardExtender/index.js.map +1 -0
  130. package/lib/commonjs/views/index.js +7 -0
  131. package/lib/commonjs/views/index.js.map +1 -1
  132. package/lib/module/animated.js +22 -11
  133. package/lib/module/animated.js.map +1 -1
  134. package/lib/module/architecture.js +2 -0
  135. package/lib/module/architecture.js.map +1 -0
  136. package/lib/module/bindings.js +36 -2
  137. package/lib/module/bindings.js.map +1 -1
  138. package/lib/module/bindings.native.js +24 -2
  139. package/lib/module/bindings.native.js.map +1 -1
  140. package/lib/module/compat.js +43 -0
  141. package/lib/module/compat.js.map +1 -0
  142. package/lib/module/components/KeyboardAvoidingView/hooks.js +22 -16
  143. package/lib/module/components/KeyboardAvoidingView/hooks.js.map +1 -1
  144. package/lib/module/components/KeyboardAvoidingView/index.js +35 -11
  145. package/lib/module/components/KeyboardAvoidingView/index.js.map +1 -1
  146. package/lib/module/components/KeyboardAwareScrollView/index.js +54 -19
  147. package/lib/module/components/KeyboardAwareScrollView/index.js.map +1 -1
  148. package/lib/module/components/KeyboardAwareScrollView/useSmoothKeyboardHandler.js +2 -2
  149. package/lib/module/components/KeyboardAwareScrollView/useSmoothKeyboardHandler.js.map +1 -1
  150. package/lib/module/components/KeyboardChatScrollView/hooks.js +2 -0
  151. package/lib/module/components/KeyboardChatScrollView/hooks.js.map +1 -0
  152. package/lib/module/components/KeyboardChatScrollView/index.js +115 -0
  153. package/lib/module/components/KeyboardChatScrollView/index.js.map +1 -0
  154. package/lib/module/components/KeyboardChatScrollView/types.js +2 -0
  155. package/lib/module/components/KeyboardChatScrollView/types.js.map +1 -0
  156. package/lib/module/components/KeyboardChatScrollView/useChatKeyboard/helpers.js +207 -0
  157. package/lib/module/components/KeyboardChatScrollView/useChatKeyboard/helpers.js.map +1 -0
  158. package/lib/module/components/KeyboardChatScrollView/useChatKeyboard/index.ios.js +143 -0
  159. package/lib/module/components/KeyboardChatScrollView/useChatKeyboard/index.ios.js.map +1 -0
  160. package/lib/module/components/KeyboardChatScrollView/useChatKeyboard/index.js +234 -0
  161. package/lib/module/components/KeyboardChatScrollView/useChatKeyboard/index.js.map +1 -0
  162. package/lib/module/components/KeyboardChatScrollView/useChatKeyboard/types.js +2 -0
  163. package/lib/module/components/KeyboardChatScrollView/useChatKeyboard/types.js.map +1 -0
  164. package/lib/module/components/KeyboardChatScrollView/useEndVisible.js +33 -0
  165. package/lib/module/components/KeyboardChatScrollView/useEndVisible.js.map +1 -0
  166. package/lib/module/components/KeyboardChatScrollView/useExtraContentPadding/index.js +87 -0
  167. package/lib/module/components/KeyboardChatScrollView/useExtraContentPadding/index.js.map +1 -0
  168. package/lib/module/components/KeyboardToolbar/Arrow.js +2 -2
  169. package/lib/module/components/KeyboardToolbar/Arrow.js.map +1 -1
  170. package/lib/module/components/KeyboardToolbar/Button.js +2 -2
  171. package/lib/module/components/KeyboardToolbar/Button.js.map +1 -1
  172. package/lib/module/components/KeyboardToolbar/compound/components/Background.js +6 -0
  173. package/lib/module/components/KeyboardToolbar/compound/components/Background.js.map +1 -0
  174. package/lib/module/components/KeyboardToolbar/compound/components/Content.js +18 -0
  175. package/lib/module/components/KeyboardToolbar/compound/components/Content.js.map +1 -0
  176. package/lib/module/components/KeyboardToolbar/compound/components/Done.js +50 -0
  177. package/lib/module/components/KeyboardToolbar/compound/components/Done.js.map +1 -0
  178. package/lib/module/components/KeyboardToolbar/compound/components/Next.js +41 -0
  179. package/lib/module/components/KeyboardToolbar/compound/components/Next.js.map +1 -0
  180. package/lib/module/components/KeyboardToolbar/compound/components/Prev.js +41 -0
  181. package/lib/module/components/KeyboardToolbar/compound/components/Prev.js.map +1 -0
  182. package/lib/module/components/KeyboardToolbar/compound/components/index.js +6 -0
  183. package/lib/module/components/KeyboardToolbar/compound/components/index.js.map +1 -0
  184. package/lib/module/components/KeyboardToolbar/compound/components/types.js +2 -0
  185. package/lib/module/components/KeyboardToolbar/compound/components/types.js.map +1 -0
  186. package/lib/module/components/KeyboardToolbar/compound/context.js +10 -0
  187. package/lib/module/components/KeyboardToolbar/compound/context.js.map +1 -0
  188. package/lib/module/components/KeyboardToolbar/constants.js +11 -0
  189. package/lib/module/components/KeyboardToolbar/constants.js.map +1 -0
  190. package/lib/module/components/KeyboardToolbar/index.js +95 -85
  191. package/lib/module/components/KeyboardToolbar/index.js.map +1 -1
  192. package/lib/module/components/KeyboardToolbar/types.js.map +1 -1
  193. package/lib/module/components/ScrollViewWithBottomPadding/index.js +112 -0
  194. package/lib/module/components/ScrollViewWithBottomPadding/index.js.map +1 -0
  195. package/lib/module/components/ScrollViewWithBottomPadding/styles.js +9 -0
  196. package/lib/module/components/ScrollViewWithBottomPadding/styles.js.map +1 -0
  197. package/lib/module/components/hooks/useColorScheme.js +1 -1
  198. package/lib/module/components/hooks/useColorScheme.js.map +1 -1
  199. package/lib/module/components/hooks/useCombinedRef.js +18 -0
  200. package/lib/module/components/hooks/useCombinedRef.js.map +1 -0
  201. package/lib/module/components/hooks/useScrollState.js +56 -0
  202. package/lib/module/components/hooks/useScrollState.js.map +1 -0
  203. package/lib/module/components/index.js +1 -0
  204. package/lib/module/components/index.js.map +1 -1
  205. package/lib/module/constants.js +3 -0
  206. package/lib/module/constants.js.map +1 -1
  207. package/lib/module/context.js +1 -0
  208. package/lib/module/context.js.map +1 -1
  209. package/lib/module/hooks/index.js +3 -1
  210. package/lib/module/hooks/index.js.map +1 -1
  211. package/lib/module/hooks/useKeyboardState/index.js +33 -0
  212. package/lib/module/hooks/useKeyboardState/index.js.map +1 -0
  213. package/lib/module/index.js +3 -2
  214. package/lib/module/index.js.map +1 -1
  215. package/lib/module/internal.js +35 -0
  216. package/lib/module/internal.js.map +1 -1
  217. package/lib/module/module.js +21 -12
  218. package/lib/module/module.js.map +1 -1
  219. package/lib/module/specs/ClippingScrollViewDecoratorViewNativeComponent.js +6 -0
  220. package/lib/module/specs/ClippingScrollViewDecoratorViewNativeComponent.js.map +1 -0
  221. package/lib/module/specs/KeyboardControllerViewNativeComponent.js +7 -1
  222. package/lib/module/specs/KeyboardControllerViewNativeComponent.js.map +1 -1
  223. package/lib/module/specs/KeyboardGestureAreaNativeComponent.js +2 -1
  224. package/lib/module/specs/KeyboardGestureAreaNativeComponent.js.map +1 -1
  225. package/lib/module/specs/KeyboardToolbarGroupViewNativeComponent.js +5 -0
  226. package/lib/module/specs/KeyboardToolbarGroupViewNativeComponent.js.map +1 -0
  227. package/lib/module/specs/NativeKeyboardController.js.map +1 -1
  228. package/lib/module/types.js.map +1 -1
  229. package/lib/module/utils/findNodeHandle/index.js +2 -0
  230. package/lib/module/utils/findNodeHandle/index.js.map +1 -0
  231. package/lib/module/utils/findNodeHandle/index.native.js +3 -0
  232. package/lib/module/utils/findNodeHandle/index.native.js.map +1 -0
  233. package/lib/module/views/KeyboardExtender/index.js +23 -0
  234. package/lib/module/views/KeyboardExtender/index.js.map +1 -0
  235. package/lib/module/views/index.js +1 -0
  236. package/lib/module/views/index.js.map +1 -1
  237. package/lib/typescript/animated.d.ts +2 -38
  238. package/lib/typescript/architecture.d.ts +1 -0
  239. package/lib/typescript/bindings.d.ts +15 -1
  240. package/lib/typescript/bindings.native.d.ts +10 -1
  241. package/lib/typescript/compat.d.ts +12 -0
  242. package/lib/typescript/components/KeyboardAvoidingView/index.d.ts +5 -0
  243. package/lib/typescript/components/KeyboardAwareScrollView/index.d.ts +4 -1
  244. package/lib/typescript/components/KeyboardChatScrollView/hooks.d.ts +2 -0
  245. package/lib/typescript/components/KeyboardChatScrollView/index.d.ts +17 -0
  246. package/lib/typescript/components/KeyboardChatScrollView/types.d.ts +113 -0
  247. package/lib/typescript/components/KeyboardChatScrollView/useChatKeyboard/helpers.d.ts +132 -0
  248. package/lib/typescript/components/KeyboardChatScrollView/useChatKeyboard/index.d.ts +18 -0
  249. package/lib/typescript/components/KeyboardChatScrollView/useChatKeyboard/index.ios.d.ts +21 -0
  250. package/lib/typescript/components/KeyboardChatScrollView/useChatKeyboard/types.d.ts +37 -0
  251. package/lib/typescript/components/KeyboardChatScrollView/useEndVisible.d.ts +17 -0
  252. package/lib/typescript/components/KeyboardChatScrollView/useExtraContentPadding/index.d.ts +45 -0
  253. package/lib/typescript/components/KeyboardToolbar/Button.d.ts +2 -2
  254. package/lib/typescript/components/KeyboardToolbar/compound/components/Background.d.ts +6 -0
  255. package/lib/typescript/components/KeyboardToolbar/compound/components/Content.d.ts +7 -0
  256. package/lib/typescript/components/KeyboardToolbar/compound/components/Done.d.ts +7 -0
  257. package/lib/typescript/components/KeyboardToolbar/compound/components/Next.d.ts +4 -0
  258. package/lib/typescript/components/KeyboardToolbar/compound/components/Prev.d.ts +4 -0
  259. package/lib/typescript/components/KeyboardToolbar/compound/components/index.d.ts +5 -0
  260. package/lib/typescript/components/KeyboardToolbar/compound/components/types.d.ts +14 -0
  261. package/lib/typescript/components/KeyboardToolbar/compound/context.d.ts +9 -0
  262. package/lib/typescript/components/KeyboardToolbar/constants.d.ts +10 -0
  263. package/lib/typescript/components/KeyboardToolbar/index.d.ts +12 -45
  264. package/lib/typescript/components/KeyboardToolbar/types.d.ts +24 -1
  265. package/lib/typescript/components/ScrollViewWithBottomPadding/index.d.ts +30 -0
  266. package/lib/typescript/components/ScrollViewWithBottomPadding/styles.d.ts +7 -0
  267. package/lib/typescript/components/hooks/useCombinedRef.d.ts +3 -0
  268. package/lib/typescript/components/hooks/useScrollState.d.ts +17 -0
  269. package/lib/typescript/components/index.d.ts +3 -0
  270. package/lib/typescript/constants.d.ts +1 -0
  271. package/lib/typescript/context.d.ts +1 -0
  272. package/lib/typescript/hooks/index.d.ts +2 -0
  273. package/lib/typescript/hooks/useKeyboardState/index.d.ts +4 -0
  274. package/lib/typescript/index.d.ts +4 -3
  275. package/lib/typescript/internal.d.ts +4 -0
  276. package/lib/typescript/specs/ClippingScrollViewDecoratorViewNativeComponent.d.ts +10 -0
  277. package/lib/typescript/specs/KeyboardControllerViewNativeComponent.d.ts +4 -0
  278. package/lib/typescript/specs/KeyboardToolbarGroupViewNativeComponent.d.ts +6 -0
  279. package/lib/typescript/specs/NativeKeyboardController.d.ts +6 -2
  280. package/lib/typescript/types.d.ts +80 -5
  281. package/lib/typescript/utils/findNodeHandle/index.d.ts +4 -0
  282. package/lib/typescript/utils/findNodeHandle/index.native.d.ts +2 -0
  283. package/lib/typescript/views/KeyboardExtender/index.d.ts +5 -0
  284. package/lib/typescript/views/index.d.ts +1 -0
  285. package/package.json +15 -9
  286. package/src/animated.tsx +41 -48
  287. package/src/architecture.ts +1 -0
  288. package/src/bindings.native.ts +37 -2
  289. package/src/bindings.ts +40 -1
  290. package/src/compat.ts +44 -0
  291. package/src/components/KeyboardAvoidingView/hooks.ts +24 -17
  292. package/src/components/KeyboardAvoidingView/index.tsx +62 -18
  293. package/src/components/KeyboardAwareScrollView/index.tsx +75 -20
  294. package/src/components/KeyboardAwareScrollView/useSmoothKeyboardHandler.ts +2 -2
  295. package/src/components/KeyboardChatScrollView/hooks.ts +2 -0
  296. package/src/components/KeyboardChatScrollView/index.tsx +164 -0
  297. package/src/components/KeyboardChatScrollView/types.ts +117 -0
  298. package/src/components/KeyboardChatScrollView/useChatKeyboard/helpers.ts +268 -0
  299. package/src/components/KeyboardChatScrollView/useChatKeyboard/index.ios.ts +260 -0
  300. package/src/components/KeyboardChatScrollView/useChatKeyboard/index.ts +374 -0
  301. package/src/components/KeyboardChatScrollView/useChatKeyboard/types.ts +39 -0
  302. package/src/components/KeyboardChatScrollView/useEndVisible.ts +66 -0
  303. package/src/components/KeyboardChatScrollView/useExtraContentPadding/index.ts +149 -0
  304. package/src/components/KeyboardToolbar/Arrow.tsx +2 -2
  305. package/src/components/KeyboardToolbar/Button.tsx +4 -4
  306. package/src/components/KeyboardToolbar/compound/components/Background.tsx +9 -0
  307. package/src/components/KeyboardToolbar/compound/components/Content.tsx +25 -0
  308. package/src/components/KeyboardToolbar/compound/components/Done.tsx +57 -0
  309. package/src/components/KeyboardToolbar/compound/components/Next.tsx +49 -0
  310. package/src/components/KeyboardToolbar/compound/components/Prev.tsx +49 -0
  311. package/src/components/KeyboardToolbar/compound/components/index.ts +5 -0
  312. package/src/components/KeyboardToolbar/compound/components/types.ts +15 -0
  313. package/src/components/KeyboardToolbar/compound/context.ts +25 -0
  314. package/src/components/KeyboardToolbar/constants.ts +14 -0
  315. package/src/components/KeyboardToolbar/index.tsx +143 -146
  316. package/src/components/KeyboardToolbar/types.ts +33 -1
  317. package/src/components/ScrollViewWithBottomPadding/index.tsx +216 -0
  318. package/src/components/ScrollViewWithBottomPadding/styles.ts +10 -0
  319. package/src/components/hooks/useColorScheme.ts +2 -1
  320. package/src/components/hooks/useCombinedRef.ts +22 -0
  321. package/src/components/hooks/useScrollState.ts +81 -0
  322. package/src/components/index.ts +3 -0
  323. package/src/constants.ts +4 -0
  324. package/src/context.ts +2 -0
  325. package/src/hooks/index.ts +2 -1
  326. package/src/hooks/useKeyboardState/index.ts +52 -0
  327. package/src/index.ts +5 -1
  328. package/src/internal.ts +62 -0
  329. package/src/module.ts +21 -9
  330. package/src/specs/ClippingScrollViewDecoratorViewNativeComponent.ts +19 -0
  331. package/src/specs/KeyboardControllerViewNativeComponent.ts +14 -3
  332. package/src/specs/KeyboardGestureAreaNativeComponent.ts +1 -0
  333. package/src/specs/KeyboardToolbarGroupViewNativeComponent.ts +10 -0
  334. package/src/specs/NativeKeyboardController.ts +6 -2
  335. package/src/types.ts +91 -5
  336. package/src/utils/findNodeHandle/index.native.ts +3 -0
  337. package/src/utils/findNodeHandle/index.ts +6 -0
  338. package/src/views/KeyboardExtender/index.tsx +30 -0
  339. package/src/views/index.ts +1 -0
  340. package/lib/commonjs/monkey-patch.android.js +0 -57
  341. package/lib/commonjs/monkey-patch.android.js.map +0 -1
  342. package/lib/commonjs/monkey-patch.js +0 -11
  343. package/lib/commonjs/monkey-patch.js.map +0 -1
  344. package/lib/module/monkey-patch.android.js +0 -47
  345. package/lib/module/monkey-patch.android.js.map +0 -1
  346. package/lib/module/monkey-patch.js +0 -5
  347. package/lib/module/monkey-patch.js.map +0 -1
  348. package/lib/typescript/monkey-patch.android.d.ts +0 -2
  349. package/lib/typescript/monkey-patch.d.ts +0 -2
  350. package/src/monkey-patch.android.ts +0 -44
  351. package/src/monkey-patch.ts +0 -4
  352. /package/harmony/keyboard_controller/{ts.ts → ts.ets} +0 -0
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _hooks = require("../../../../hooks");
10
+ var _module = require("../../../../module");
11
+ var _Button = _interopRequireDefault(require("../../Button"));
12
+ var _constants = require("../../constants");
13
+ var _context = require("../context");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
16
+ const Done = ({
17
+ children,
18
+ onPress,
19
+ rippleRadius = 28,
20
+ text,
21
+ button: ButtonContainer = _Button.default
22
+ }) => {
23
+ const colorScheme = (0, _hooks.useKeyboardState)(state => state.appearance);
24
+ const {
25
+ theme
26
+ } = (0, _context.useToolbarContext)();
27
+ const doneStyle = (0, _react.useMemo)(() => [styles.doneButton, {
28
+ color: theme[colorScheme].primary
29
+ }], [colorScheme, theme]);
30
+ const onPressDone = (0, _react.useCallback)(event => {
31
+ onPress === null || onPress === void 0 || onPress(event);
32
+ if (!event.isDefaultPrevented()) _module.KeyboardController.dismiss();
33
+ }, [onPress]);
34
+ return /*#__PURE__*/_react.default.createElement(ButtonContainer, {
35
+ accessibilityHint: "Closes the keyboard",
36
+ accessibilityLabel: "Done",
37
+ rippleRadius: rippleRadius,
38
+ style: styles.doneButtonContainer,
39
+ testID: _constants.TEST_ID_KEYBOARD_TOOLBAR_DONE,
40
+ theme: theme,
41
+ onPress: onPressDone
42
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
43
+ maxFontSizeMultiplier: 1.3,
44
+ style: doneStyle
45
+ }, children ?? text ?? "Done"));
46
+ };
47
+ const styles = _reactNative.StyleSheet.create({
48
+ doneButton: {
49
+ fontWeight: "600",
50
+ fontSize: 15
51
+ },
52
+ doneButtonContainer: {
53
+ marginRight: 16,
54
+ marginLeft: 8
55
+ }
56
+ });
57
+ var _default = exports.default = Done;
58
+ //# sourceMappingURL=Done.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_hooks","_module","_Button","_interopRequireDefault","_constants","_context","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Done","children","onPress","rippleRadius","text","button","ButtonContainer","Button","colorScheme","useKeyboardState","state","appearance","theme","useToolbarContext","doneStyle","useMemo","styles","doneButton","color","primary","onPressDone","useCallback","event","isDefaultPrevented","KeyboardController","dismiss","createElement","accessibilityHint","accessibilityLabel","style","doneButtonContainer","testID","TEST_ID_KEYBOARD_TOOLBAR_DONE","Text","maxFontSizeMultiplier","StyleSheet","create","fontWeight","fontSize","marginRight","marginLeft","_default","exports"],"sources":["Done.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport { StyleSheet, Text } from \"react-native\";\n\nimport { useKeyboardState } from \"../../../../hooks\";\nimport { KeyboardController } from \"../../../../module\";\nimport Button from \"../../Button\";\nimport { TEST_ID_KEYBOARD_TOOLBAR_DONE } from \"../../constants\";\nimport { useToolbarContext } from \"../context\";\n\nimport type { ButtonSubProps } from \"./types\";\nimport type { ReactNode } from \"react\";\nimport type { GestureResponderEvent } from \"react-native\";\n\nconst Done: React.FC<Omit<ButtonSubProps, \"icon\"> & { text?: ReactNode }> = ({\n children,\n onPress,\n rippleRadius = 28,\n text,\n button: ButtonContainer = Button,\n}) => {\n const colorScheme = useKeyboardState((state) => state.appearance);\n const { theme } = useToolbarContext();\n const doneStyle = useMemo(\n () => [styles.doneButton, { color: theme[colorScheme].primary }],\n [colorScheme, theme],\n );\n const onPressDone = useCallback(\n (event: GestureResponderEvent) => {\n onPress?.(event);\n if (!event.isDefaultPrevented()) KeyboardController.dismiss();\n },\n [onPress],\n );\n\n return (\n <ButtonContainer\n accessibilityHint=\"Closes the keyboard\"\n accessibilityLabel=\"Done\"\n rippleRadius={rippleRadius}\n style={styles.doneButtonContainer}\n testID={TEST_ID_KEYBOARD_TOOLBAR_DONE}\n theme={theme}\n onPress={onPressDone}\n >\n <Text maxFontSizeMultiplier={1.3} style={doneStyle}>\n {children ?? text ?? \"Done\"}\n </Text>\n </ButtonContainer>\n );\n};\n\nconst styles = StyleSheet.create({\n doneButton: { fontWeight: \"600\", fontSize: 15 },\n doneButtonContainer: { marginRight: 16, marginLeft: 8 },\n});\n\nexport default Done;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _module = require("../../../../module");
9
+ var _Arrow = _interopRequireDefault(require("../../Arrow"));
10
+ var _Button = _interopRequireDefault(require("../../Button"));
11
+ var _constants = require("../../constants");
12
+ var _context = require("../context");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ const Next = ({
16
+ children,
17
+ onPress,
18
+ disabled,
19
+ rippleRadius,
20
+ style,
21
+ button: ButtonContainer = _Button.default,
22
+ icon: IconContainer = _Arrow.default
23
+ }) => {
24
+ const {
25
+ theme,
26
+ isNextDisabled
27
+ } = (0, _context.useToolbarContext)();
28
+ const isDisabled = disabled ?? isNextDisabled;
29
+ const onPressNext = (0, _react.useCallback)(event => {
30
+ onPress === null || onPress === void 0 || onPress(event);
31
+ if (!event.isDefaultPrevented()) _module.KeyboardController.setFocusTo("next");
32
+ }, [onPress]);
33
+ return /*#__PURE__*/_react.default.createElement(ButtonContainer, {
34
+ accessibilityHint: "Moves focus to the next field",
35
+ accessibilityLabel: "Next",
36
+ disabled: isDisabled,
37
+ rippleRadius: rippleRadius,
38
+ style: style,
39
+ testID: _constants.TEST_ID_KEYBOARD_TOOLBAR_NEXT,
40
+ theme: theme,
41
+ onPress: onPressNext
42
+ }, children ?? /*#__PURE__*/_react.default.createElement(IconContainer, {
43
+ disabled: isDisabled,
44
+ theme: theme,
45
+ type: "next"
46
+ }));
47
+ };
48
+ var _default = exports.default = Next;
49
+ //# sourceMappingURL=Next.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_module","_Arrow","_interopRequireDefault","_Button","_constants","_context","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Next","children","onPress","disabled","rippleRadius","style","button","ButtonContainer","Button","icon","IconContainer","Arrow","theme","isNextDisabled","useToolbarContext","isDisabled","onPressNext","useCallback","event","isDefaultPrevented","KeyboardController","setFocusTo","createElement","accessibilityHint","accessibilityLabel","testID","TEST_ID_KEYBOARD_TOOLBAR_NEXT","type","_default","exports"],"sources":["Next.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\n\nimport { KeyboardController } from \"../../../../module\";\nimport Arrow from \"../../Arrow\";\nimport Button from \"../../Button\";\nimport { TEST_ID_KEYBOARD_TOOLBAR_NEXT } from \"../../constants\";\nimport { useToolbarContext } from \"../context\";\n\nimport type { ButtonSubProps } from \"./types\";\nimport type { GestureResponderEvent } from \"react-native\";\n\nconst Next: React.FC<ButtonSubProps> = ({\n children,\n onPress,\n disabled,\n rippleRadius,\n style,\n button: ButtonContainer = Button,\n icon: IconContainer = Arrow,\n}) => {\n const { theme, isNextDisabled } = useToolbarContext();\n const isDisabled = disabled ?? isNextDisabled;\n const onPressNext = useCallback(\n (event: GestureResponderEvent) => {\n onPress?.(event);\n if (!event.isDefaultPrevented()) KeyboardController.setFocusTo(\"next\");\n },\n [onPress],\n );\n\n return (\n <ButtonContainer\n accessibilityHint=\"Moves focus to the next field\"\n accessibilityLabel=\"Next\"\n disabled={isDisabled}\n rippleRadius={rippleRadius}\n style={style}\n testID={TEST_ID_KEYBOARD_TOOLBAR_NEXT}\n theme={theme}\n onPress={onPressNext}\n >\n {children ?? (\n <IconContainer disabled={isDisabled} theme={theme} type=\"next\" />\n )}\n </ButtonContainer>\n );\n};\n\nexport default Next;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _module = require("../../../../module");
9
+ var _Arrow = _interopRequireDefault(require("../../Arrow"));
10
+ var _Button = _interopRequireDefault(require("../../Button"));
11
+ var _constants = require("../../constants");
12
+ var _context = require("../context");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
+ const Prev = ({
16
+ children,
17
+ onPress,
18
+ disabled,
19
+ rippleRadius,
20
+ style,
21
+ button: ButtonContainer = _Button.default,
22
+ icon: IconContainer = _Arrow.default
23
+ }) => {
24
+ const {
25
+ theme,
26
+ isPrevDisabled
27
+ } = (0, _context.useToolbarContext)();
28
+ const isDisabled = disabled ?? isPrevDisabled;
29
+ const onPressPrev = (0, _react.useCallback)(event => {
30
+ onPress === null || onPress === void 0 || onPress(event);
31
+ if (!event.isDefaultPrevented()) _module.KeyboardController.setFocusTo("prev");
32
+ }, [onPress]);
33
+ return /*#__PURE__*/_react.default.createElement(ButtonContainer, {
34
+ accessibilityHint: "Moves focus to the previous field",
35
+ accessibilityLabel: "Previous",
36
+ disabled: isDisabled,
37
+ rippleRadius: rippleRadius,
38
+ style: style,
39
+ testID: _constants.TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS,
40
+ theme: theme,
41
+ onPress: onPressPrev
42
+ }, children ?? /*#__PURE__*/_react.default.createElement(IconContainer, {
43
+ disabled: isDisabled,
44
+ theme: theme,
45
+ type: "prev"
46
+ }));
47
+ };
48
+ var _default = exports.default = Prev;
49
+ //# sourceMappingURL=Prev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_module","_Arrow","_interopRequireDefault","_Button","_constants","_context","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Prev","children","onPress","disabled","rippleRadius","style","button","ButtonContainer","Button","icon","IconContainer","Arrow","theme","isPrevDisabled","useToolbarContext","isDisabled","onPressPrev","useCallback","event","isDefaultPrevented","KeyboardController","setFocusTo","createElement","accessibilityHint","accessibilityLabel","testID","TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS","type","_default","exports"],"sources":["Prev.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\n\nimport { KeyboardController } from \"../../../../module\";\nimport Arrow from \"../../Arrow\";\nimport Button from \"../../Button\";\nimport { TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS } from \"../../constants\";\nimport { useToolbarContext } from \"../context\";\n\nimport type { ButtonSubProps } from \"./types\";\nimport type { GestureResponderEvent } from \"react-native\";\n\nconst Prev: React.FC<ButtonSubProps> = ({\n children,\n onPress,\n disabled,\n rippleRadius,\n style,\n button: ButtonContainer = Button,\n icon: IconContainer = Arrow,\n}) => {\n const { theme, isPrevDisabled } = useToolbarContext();\n const isDisabled = disabled ?? isPrevDisabled;\n const onPressPrev = useCallback(\n (event: GestureResponderEvent) => {\n onPress?.(event);\n if (!event.isDefaultPrevented()) KeyboardController.setFocusTo(\"prev\");\n },\n [onPress],\n );\n\n return (\n <ButtonContainer\n accessibilityHint=\"Moves focus to the previous field\"\n accessibilityLabel=\"Previous\"\n disabled={isDisabled}\n rippleRadius={rippleRadius}\n style={style}\n testID={TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS}\n theme={theme}\n onPress={onPressPrev}\n >\n {children ?? (\n <IconContainer disabled={isDisabled} theme={theme} type=\"prev\" />\n )}\n </ButtonContainer>\n );\n};\n\nexport default Prev;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Background", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Background.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "Content", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _Content.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "Done", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _Done.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "Next", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _Next.default;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "Prev", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _Prev.default;
34
+ }
35
+ });
36
+ var _Background = _interopRequireDefault(require("./Background"));
37
+ var _Content = _interopRequireDefault(require("./Content"));
38
+ var _Done = _interopRequireDefault(require("./Done"));
39
+ var _Next = _interopRequireDefault(require("./Next"));
40
+ var _Prev = _interopRequireDefault(require("./Prev"));
41
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Background","_interopRequireDefault","require","_Content","_Done","_Next","_Prev","e","__esModule","default"],"sources":["index.ts"],"sourcesContent":["export { default as Background } from \"./Background\";\nexport { default as Content } from \"./Content\";\nexport { default as Done } from \"./Done\";\nexport { default as Next } from \"./Next\";\nexport { default as Prev } from \"./Prev\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,KAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAyC,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type Arrow from \"../../Arrow\";\nimport type Button from \"../../Button\";\nimport type { ReactNode } from \"react\";\nimport type { GestureResponderEvent, ViewStyle } from \"react-native\";\n\nexport type ButtonSubProps = {\n children?: ReactNode;\n onPress?: (event: GestureResponderEvent) => void;\n disabled?: boolean;\n testID?: string;\n rippleRadius?: number;\n style?: ViewStyle;\n button?: typeof Button;\n icon?: typeof Arrow;\n};\n"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useToolbarContext = exports.ToolbarContext = void 0;
7
+ var _react = require("react");
8
+ const ToolbarContext = exports.ToolbarContext = /*#__PURE__*/(0, _react.createContext)(undefined);
9
+ const useToolbarContext = () => {
10
+ const context = (0, _react.useContext)(ToolbarContext);
11
+ if (!context) {
12
+ throw new Error("KeyboardToolbar.* component must be used inside <KeyboardToolbar>");
13
+ }
14
+ return context;
15
+ };
16
+ exports.useToolbarContext = useToolbarContext;
17
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","ToolbarContext","exports","createContext","undefined","useToolbarContext","context","useContext","Error"],"sources":["context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nimport type { KeyboardToolbarTheme } from \"../types\";\n\ntype ToolbarContextType = {\n theme: KeyboardToolbarTheme;\n isPrevDisabled: boolean;\n isNextDisabled: boolean;\n};\n\nexport const ToolbarContext = createContext<ToolbarContextType | undefined>(\n undefined,\n);\n\nexport const useToolbarContext = () => {\n const context = useContext(ToolbarContext);\n\n if (!context) {\n throw new Error(\n \"KeyboardToolbar.* component must be used inside <KeyboardToolbar>\",\n );\n }\n\n return context;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAUO,MAAMC,cAAc,GAAAC,OAAA,CAAAD,cAAA,gBAAG,IAAAE,oBAAa,EACzCC,SACF,CAAC;AAEM,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EACrC,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACN,cAAc,CAAC;EAE1C,IAAI,CAACK,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CACb,mEACF,CAAC;EACH;EAEA,OAAOF,OAAO;AAChB,CAAC;AAACJ,OAAA,CAAAG,iBAAA,GAAAA,iBAAA","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS = exports.TEST_ID_KEYBOARD_TOOLBAR_NEXT = exports.TEST_ID_KEYBOARD_TOOLBAR_DONE = exports.TEST_ID_KEYBOARD_TOOLBAR_CONTENT = exports.TEST_ID_KEYBOARD_TOOLBAR = exports.OPENED_OFFSET = exports.KEYBOARD_TOOLBAR_HEIGHT = exports.KEYBOARD_HAS_ROUNDED_CORNERS = exports.DEFAULT_OPACITY = void 0;
7
+ var _constants = require("../../constants");
8
+ const TEST_ID_KEYBOARD_TOOLBAR = exports.TEST_ID_KEYBOARD_TOOLBAR = "keyboard.toolbar";
9
+ const TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS = exports.TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS = `${TEST_ID_KEYBOARD_TOOLBAR}.previous`;
10
+ const TEST_ID_KEYBOARD_TOOLBAR_NEXT = exports.TEST_ID_KEYBOARD_TOOLBAR_NEXT = `${TEST_ID_KEYBOARD_TOOLBAR}.next`;
11
+ const TEST_ID_KEYBOARD_TOOLBAR_CONTENT = exports.TEST_ID_KEYBOARD_TOOLBAR_CONTENT = `${TEST_ID_KEYBOARD_TOOLBAR}.content`;
12
+ const TEST_ID_KEYBOARD_TOOLBAR_DONE = exports.TEST_ID_KEYBOARD_TOOLBAR_DONE = `${TEST_ID_KEYBOARD_TOOLBAR}.done`;
13
+ const KEYBOARD_TOOLBAR_HEIGHT = exports.KEYBOARD_TOOLBAR_HEIGHT = 42;
14
+ const DEFAULT_OPACITY = exports.DEFAULT_OPACITY = "FF";
15
+ const KEYBOARD_HAS_ROUNDED_CORNERS = exports.KEYBOARD_HAS_ROUNDED_CORNERS = _constants.KEYBOARD_BORDER_RADIUS > 0;
16
+ const OPENED_OFFSET = exports.OPENED_OFFSET = KEYBOARD_HAS_ROUNDED_CORNERS ? -11 : 0;
17
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_constants","require","TEST_ID_KEYBOARD_TOOLBAR","exports","TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS","TEST_ID_KEYBOARD_TOOLBAR_NEXT","TEST_ID_KEYBOARD_TOOLBAR_CONTENT","TEST_ID_KEYBOARD_TOOLBAR_DONE","KEYBOARD_TOOLBAR_HEIGHT","DEFAULT_OPACITY","KEYBOARD_HAS_ROUNDED_CORNERS","KEYBOARD_BORDER_RADIUS","OPENED_OFFSET"],"sources":["constants.ts"],"sourcesContent":["import { KEYBOARD_BORDER_RADIUS } from \"../../constants\";\n\nimport type { HEX } from \"./types\";\n\nexport const TEST_ID_KEYBOARD_TOOLBAR = \"keyboard.toolbar\";\nexport const TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS = `${TEST_ID_KEYBOARD_TOOLBAR}.previous`;\nexport const TEST_ID_KEYBOARD_TOOLBAR_NEXT = `${TEST_ID_KEYBOARD_TOOLBAR}.next`;\nexport const TEST_ID_KEYBOARD_TOOLBAR_CONTENT = `${TEST_ID_KEYBOARD_TOOLBAR}.content`;\nexport const TEST_ID_KEYBOARD_TOOLBAR_DONE = `${TEST_ID_KEYBOARD_TOOLBAR}.done`;\n\nexport const KEYBOARD_TOOLBAR_HEIGHT = 42;\nexport const DEFAULT_OPACITY: HEX = \"FF\";\nexport const KEYBOARD_HAS_ROUNDED_CORNERS = KEYBOARD_BORDER_RADIUS > 0;\nexport const OPENED_OFFSET = KEYBOARD_HAS_ROUNDED_CORNERS ? -11 : 0;\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAIO,MAAMC,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAG,kBAAkB;AACnD,MAAME,iCAAiC,GAAAD,OAAA,CAAAC,iCAAA,GAAG,GAAGF,wBAAwB,WAAW;AAChF,MAAMG,6BAA6B,GAAAF,OAAA,CAAAE,6BAAA,GAAG,GAAGH,wBAAwB,OAAO;AACxE,MAAMI,gCAAgC,GAAAH,OAAA,CAAAG,gCAAA,GAAG,GAAGJ,wBAAwB,UAAU;AAC9E,MAAMK,6BAA6B,GAAAJ,OAAA,CAAAI,6BAAA,GAAG,GAAGL,wBAAwB,OAAO;AAExE,MAAMM,uBAAuB,GAAAL,OAAA,CAAAK,uBAAA,GAAG,EAAE;AAClC,MAAMC,eAAoB,GAAAN,OAAA,CAAAM,eAAA,GAAG,IAAI;AACjC,MAAMC,4BAA4B,GAAAP,OAAA,CAAAO,4BAAA,GAAGC,iCAAsB,GAAG,CAAC;AAC/D,MAAMC,aAAa,GAAAT,OAAA,CAAAS,aAAA,GAAGF,4BAA4B,GAAG,CAAC,EAAE,GAAG,CAAC","ignoreList":[]}
@@ -13,33 +13,26 @@ exports.default = void 0;
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _reactNative = require("react-native");
15
15
  var _bindings = require("../../bindings");
16
+ var _hooks = require("../../hooks");
16
17
  var _KeyboardStickyView = _interopRequireDefault(require("../KeyboardStickyView"));
17
- var _useColorScheme = _interopRequireDefault(require("../hooks/useColorScheme"));
18
18
  var _Arrow = _interopRequireDefault(require("./Arrow"));
19
19
  var _Button = _interopRequireDefault(require("./Button"));
20
20
  var _colors = require("./colors");
21
+ var _components = require("./compound/components");
22
+ var _context = require("./compound/context");
23
+ var _constants = require("./constants");
21
24
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
25
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
23
26
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
24
- const TEST_ID_KEYBOARD_TOOLBAR = "keyboard.toolbar";
25
- const TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS = `${TEST_ID_KEYBOARD_TOOLBAR}.previous`;
26
- const TEST_ID_KEYBOARD_TOOLBAR_NEXT = `${TEST_ID_KEYBOARD_TOOLBAR}.next`;
27
- const TEST_ID_KEYBOARD_TOOLBAR_CONTENT = `${TEST_ID_KEYBOARD_TOOLBAR}.content`;
28
- const TEST_ID_KEYBOARD_TOOLBAR_DONE = `${TEST_ID_KEYBOARD_TOOLBAR}.done`;
29
- const KEYBOARD_TOOLBAR_HEIGHT = 42;
30
- const DEFAULT_OPACITY = "FF";
31
- const dismissKeyboard = () => _bindings.KeyboardControllerNative.dismiss(false);
32
- const goToNextField = () => _bindings.KeyboardControllerNative.setFocusTo("next");
33
- const goToPrevField = () => _bindings.KeyboardControllerNative.setFocusTo("prev");
34
-
35
27
  /**
36
28
  * `KeyboardToolbar` is a component that is shown above the keyboard with `Prev`/`Next` and
37
29
  * `Done` buttons.
38
30
  */
39
31
  const KeyboardToolbar = ({
32
+ children,
40
33
  content,
41
34
  theme = _colors.colors,
42
- doneText,
35
+ doneText = "Done",
43
36
  button,
44
37
  icon,
45
38
  showArrows = true,
@@ -47,98 +40,109 @@ const KeyboardToolbar = ({
47
40
  onPrevCallback,
48
41
  onDoneCallback,
49
42
  blur = null,
50
- opacity = DEFAULT_OPACITY,
43
+ opacity = _constants.DEFAULT_OPACITY,
51
44
  offset: {
52
45
  closed = 0,
53
46
  opened = 0
54
47
  } = {},
55
48
  enabled = true,
49
+ insets,
56
50
  ...rest
57
51
  }) => {
58
- const colorScheme = (0, _useColorScheme.default)();
52
+ const colorScheme = (0, _hooks.useKeyboardState)(state => state.appearance);
59
53
  const [inputs, setInputs] = (0, _react.useState)({
60
54
  current: 0,
61
55
  count: 0
62
56
  });
63
57
  const isPrevDisabled = inputs.current === 0;
64
58
  const isNextDisabled = inputs.current === inputs.count - 1;
59
+ const buttonContainer = button ?? _Button.default;
60
+ const iconContainer = icon ?? _Arrow.default;
65
61
  (0, _react.useEffect)(() => {
66
62
  const subscription = _bindings.FocusedInputEvents.addListener("focusDidSet", e => {
67
63
  setInputs(e);
68
64
  });
69
65
  return subscription.remove;
70
66
  }, []);
71
- const doneStyle = (0, _react.useMemo)(() => [styles.doneButton, {
72
- color: theme[colorScheme].primary
73
- }], [colorScheme, theme]);
74
67
  const toolbarStyle = (0, _react.useMemo)(() => [styles.toolbar, {
75
68
  backgroundColor: `${theme[colorScheme].background}${opacity}`
76
- }], [colorScheme, opacity, theme]);
69
+ }, !_constants.KEYBOARD_HAS_ROUNDED_CORNERS ? {
70
+ paddingLeft: insets === null || insets === void 0 ? void 0 : insets.left,
71
+ paddingRight: insets === null || insets === void 0 ? void 0 : insets.right
72
+ } : null, _constants.KEYBOARD_HAS_ROUNDED_CORNERS ? styles.floating : null], [colorScheme, opacity, theme, insets]);
73
+ const containerStyle = (0, _react.useMemo)(() => [
74
+ // CRUCIAL: gives the native view real bounds
75
+ styles.sticky, _constants.KEYBOARD_HAS_ROUNDED_CORNERS ? {
76
+ left: ((insets === null || insets === void 0 ? void 0 : insets.left) ?? 0) + 16,
77
+ right: ((insets === null || insets === void 0 ? void 0 : insets.right) ?? 0) + 16
78
+ } : null], [insets]);
77
79
  const offset = (0, _react.useMemo)(() => ({
78
- closed: closed + KEYBOARD_TOOLBAR_HEIGHT,
79
- opened
80
+ closed: closed + _constants.KEYBOARD_TOOLBAR_HEIGHT,
81
+ opened: opened + _constants.OPENED_OFFSET
80
82
  }), [closed, opened]);
81
- const ButtonContainer = button || _Button.default;
82
- const IconContainer = icon || _Arrow.default;
83
- const onPressNext = (0, _react.useCallback)(() => {
84
- goToNextField();
85
- onNextCallback === null || onNextCallback === void 0 || onNextCallback();
86
- }, [onNextCallback]);
87
- const onPressPrev = (0, _react.useCallback)(() => {
88
- goToPrevField();
89
- onPrevCallback === null || onPrevCallback === void 0 || onPrevCallback();
90
- }, [onPrevCallback]);
91
- const onPressDone = (0, _react.useCallback)(() => {
92
- dismissKeyboard();
93
- onDoneCallback === null || onDoneCallback === void 0 || onDoneCallback();
94
- }, [onDoneCallback]);
95
- return /*#__PURE__*/_react.default.createElement(_KeyboardStickyView.default, {
83
+ let backgroundElement = null;
84
+ let arrowsElement = null;
85
+ let contentContainer = null;
86
+ let doneElement = null;
87
+ if (children) {
88
+ let prevChild = null;
89
+ let nextChild = null;
90
+ let contentChild = null;
91
+ let doneChild = null;
92
+ let backgroundChild = null;
93
+ _react.default.Children.forEach(children, child => {
94
+ if (! /*#__PURE__*/_react.default.isValidElement(child)) return;
95
+ if (child.type === _components.Background) backgroundChild = child;else if (child.type === _components.Content) contentChild = child;else if (child.type === _components.Prev) prevChild = child;else if (child.type === _components.Next) nextChild = child;else if (child.type === _components.Done) doneChild = child;
96
+ });
97
+ backgroundElement = backgroundChild;
98
+ doneElement = doneChild;
99
+ arrowsElement = prevChild || nextChild ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
100
+ style: styles.arrows
101
+ }, prevChild, nextChild) : null;
102
+ contentContainer = contentChild ?? /*#__PURE__*/_react.default.createElement(_components.Content, null, contentChild);
103
+ } else {
104
+ backgroundElement = blur;
105
+ arrowsElement = showArrows ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
106
+ style: styles.arrows
107
+ }, /*#__PURE__*/_react.default.createElement(_components.Prev, {
108
+ button: buttonContainer,
109
+ icon: iconContainer,
110
+ onPress: onPrevCallback
111
+ }), /*#__PURE__*/_react.default.createElement(_components.Next, {
112
+ button: buttonContainer,
113
+ icon: iconContainer,
114
+ onPress: onNextCallback
115
+ })) : null;
116
+ contentContainer = /*#__PURE__*/_react.default.createElement(_components.Content, null, content);
117
+ doneElement = doneText ? /*#__PURE__*/_react.default.createElement(_components.Done, {
118
+ button: buttonContainer,
119
+ text: doneText,
120
+ onPress: onDoneCallback
121
+ }) : null;
122
+ }
123
+ const contextValue = (0, _react.useMemo)(() => ({
124
+ theme,
125
+ isPrevDisabled,
126
+ isNextDisabled
127
+ }), [theme, isPrevDisabled, isNextDisabled]);
128
+ return /*#__PURE__*/_react.default.createElement(_context.ToolbarContext.Provider, {
129
+ value: contextValue
130
+ }, /*#__PURE__*/_react.default.createElement(_KeyboardStickyView.default, {
96
131
  enabled: enabled,
97
- offset: offset
132
+ offset: offset,
133
+ style: containerStyle
98
134
  }, /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({}, rest, {
99
135
  style: toolbarStyle,
100
- testID: TEST_ID_KEYBOARD_TOOLBAR
101
- }), blur, showArrows && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ButtonContainer, {
102
- accessibilityLabel: "Previous",
103
- accessibilityHint: "Will move focus to previous field",
104
- disabled: isPrevDisabled,
105
- onPress: onPressPrev,
106
- testID: TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS,
107
- theme: theme
108
- }, /*#__PURE__*/_react.default.createElement(IconContainer, {
109
- disabled: isPrevDisabled,
110
- type: "prev",
111
- theme: theme
112
- })), /*#__PURE__*/_react.default.createElement(ButtonContainer, {
113
- accessibilityLabel: "Next",
114
- accessibilityHint: "Will move focus to next field",
115
- disabled: isNextDisabled,
116
- onPress: onPressNext,
117
- testID: TEST_ID_KEYBOARD_TOOLBAR_NEXT,
118
- theme: theme
119
- }, /*#__PURE__*/_react.default.createElement(IconContainer, {
120
- disabled: isNextDisabled,
121
- type: "next",
122
- theme: theme
123
- }))), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
124
- style: styles.flex,
125
- testID: TEST_ID_KEYBOARD_TOOLBAR_CONTENT
126
- }, content), /*#__PURE__*/_react.default.createElement(ButtonContainer, {
127
- accessibilityLabel: "Done",
128
- accessibilityHint: "Will close the keyboard",
129
- onPress: onPressDone,
130
- testID: TEST_ID_KEYBOARD_TOOLBAR_DONE,
131
- rippleRadius: 28,
132
- style: styles.doneButtonContainer,
133
- theme: theme
134
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
135
- style: doneStyle,
136
- maxFontSizeMultiplier: 1.3
137
- }, doneText || "Done"))));
136
+ testID: _constants.TEST_ID_KEYBOARD_TOOLBAR
137
+ }), backgroundElement, arrowsElement, contentContainer, doneElement)));
138
138
  };
139
139
  const styles = _reactNative.StyleSheet.create({
140
- flex: {
141
- flex: 1
140
+ sticky: {
141
+ position: "absolute",
142
+ left: 0,
143
+ right: 0,
144
+ bottom: 0,
145
+ height: _constants.KEYBOARD_TOOLBAR_HEIGHT
142
146
  },
143
147
  toolbar: {
144
148
  position: "absolute",
@@ -146,16 +150,23 @@ const styles = _reactNative.StyleSheet.create({
146
150
  alignItems: "center",
147
151
  width: "100%",
148
152
  flexDirection: "row",
149
- height: KEYBOARD_TOOLBAR_HEIGHT,
150
- paddingHorizontal: 8
153
+ height: _constants.KEYBOARD_TOOLBAR_HEIGHT
151
154
  },
152
- doneButton: {
153
- fontWeight: "600",
154
- fontSize: 15
155
+ arrows: {
156
+ flexDirection: "row",
157
+ paddingLeft: 8
155
158
  },
156
- doneButtonContainer: {
157
- marginRight: 8
159
+ floating: {
160
+ alignSelf: "center",
161
+ borderRadius: 20,
162
+ overflow: "hidden"
158
163
  }
159
164
  });
165
+ KeyboardToolbar.Background = _components.Background;
166
+ KeyboardToolbar.Content = _components.Content;
167
+ KeyboardToolbar.Prev = _components.Prev;
168
+ KeyboardToolbar.Next = _components.Next;
169
+ KeyboardToolbar.Done = _components.Done;
170
+ KeyboardToolbar.Group = _bindings.RCTKeyboardToolbarGroupView;
160
171
  var _default = exports.default = KeyboardToolbar;
161
172
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_bindings","_KeyboardStickyView","_interopRequireDefault","_useColorScheme","_Arrow","_Button","_colors","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","TEST_ID_KEYBOARD_TOOLBAR","TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS","TEST_ID_KEYBOARD_TOOLBAR_NEXT","TEST_ID_KEYBOARD_TOOLBAR_CONTENT","TEST_ID_KEYBOARD_TOOLBAR_DONE","KEYBOARD_TOOLBAR_HEIGHT","DEFAULT_OPACITY","dismissKeyboard","KeyboardControllerNative","dismiss","goToNextField","setFocusTo","goToPrevField","KeyboardToolbar","content","theme","colors","doneText","button","icon","showArrows","onNextCallback","onPrevCallback","onDoneCallback","blur","opacity","offset","closed","opened","enabled","rest","colorScheme","useColorScheme","inputs","setInputs","useState","current","count","isPrevDisabled","isNextDisabled","useEffect","subscription","FocusedInputEvents","addListener","remove","doneStyle","useMemo","styles","doneButton","color","primary","toolbarStyle","toolbar","backgroundColor","background","ButtonContainer","Button","IconContainer","Arrow","onPressNext","useCallback","onPressPrev","onPressDone","createElement","View","style","testID","Fragment","accessibilityLabel","accessibilityHint","disabled","onPress","type","flex","rippleRadius","doneButtonContainer","Text","maxFontSizeMultiplier","StyleSheet","create","position","bottom","alignItems","width","flexDirection","height","paddingHorizontal","fontWeight","fontSize","marginRight","_default","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { StyleSheet, Text, View } from \"react-native\";\n\nimport {\n FocusedInputEvents,\n} from \"../../bindings\";\nimport KeyboardStickyView from \"../KeyboardStickyView\"\nimport { KeyboardControllerNative } from \"../../bindings\";\nimport useColorScheme from \"../hooks/useColorScheme\";\n\nimport Arrow from \"./Arrow\";\nimport Button from \"./Button\";\nimport { colors } from \"./colors\";\n\nimport type { HEX, KeyboardToolbarTheme } from \"./types\";\nimport type { KeyboardStickyViewProps } from \"../KeyboardStickyView\";\nimport type { ReactNode } from \"react\";\nimport type { ViewProps } from \"react-native\";\n\nexport type KeyboardToolbarProps = Omit<\n ViewProps,\n \"style\" | \"testID\" | \"children\"\n> & {\n /** An element that is shown in the middle of the toolbar. */\n content?: JSX.Element | null;\n /** A set of dark/light colors consumed by toolbar component. */\n theme?: KeyboardToolbarTheme;\n /** Custom text for done button. */\n doneText?: ReactNode;\n /** Custom touchable component for toolbar (used for prev/next/done buttons). */\n button?: typeof Button;\n /** Custom icon component used to display next/prev buttons. */\n icon?: typeof Arrow;\n /**\n * Whether to show next and previous buttons. Can be useful to set it to `false` if you have only one input\n * and want to show only `Done` button. Default to `true`.\n */\n showArrows?: boolean;\n /**\n * A callback that is called when the user presses the next button along with the default action.\n */\n onNextCallback?: () => void;\n /**\n * A callback that is called when the user presses the previous button along with the default action.\n */\n onPrevCallback?: () => void;\n /**\n * A callback that is called when the user presses the done button along with the default action.\n */\n onDoneCallback?: () => void;\n /**\n * A component that applies blur effect to the toolbar.\n */\n blur?: JSX.Element | null;\n /**\n * A value for container opacity in hexadecimal format (e.g. `ff`). Default value is `ff`.\n */\n opacity?: HEX;\n} & Pick<KeyboardStickyViewProps, \"offset\" | \"enabled\">;\n\nconst TEST_ID_KEYBOARD_TOOLBAR = \"keyboard.toolbar\";\nconst TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS = `${TEST_ID_KEYBOARD_TOOLBAR}.previous`;\nconst TEST_ID_KEYBOARD_TOOLBAR_NEXT = `${TEST_ID_KEYBOARD_TOOLBAR}.next`;\nconst TEST_ID_KEYBOARD_TOOLBAR_CONTENT = `${TEST_ID_KEYBOARD_TOOLBAR}.content`;\nconst TEST_ID_KEYBOARD_TOOLBAR_DONE = `${TEST_ID_KEYBOARD_TOOLBAR}.done`;\n\nconst KEYBOARD_TOOLBAR_HEIGHT = 42;\nconst DEFAULT_OPACITY: HEX = \"FF\";\n\nconst dismissKeyboard = () => KeyboardControllerNative.dismiss(false);\nconst goToNextField = () => KeyboardControllerNative.setFocusTo(\"next\");\nconst goToPrevField = () => KeyboardControllerNative.setFocusTo(\"prev\");\n\n/**\n * `KeyboardToolbar` is a component that is shown above the keyboard with `Prev`/`Next` and\n * `Done` buttons.\n */\nconst KeyboardToolbar: React.FC<KeyboardToolbarProps> = ({\n content,\n theme = colors,\n doneText,\n button,\n icon,\n showArrows = true,\n onNextCallback,\n onPrevCallback,\n onDoneCallback,\n blur = null,\n opacity = DEFAULT_OPACITY,\n offset: { closed = 0, opened = 0 } = {},\n enabled = true,\n ...rest\n}) => {\n const colorScheme = useColorScheme();\n const [inputs, setInputs] = useState({\n current: 0,\n count: 0,\n });\n const isPrevDisabled = inputs.current === 0;\n const isNextDisabled = inputs.current === inputs.count - 1;\n\n useEffect(() => {\n const subscription = FocusedInputEvents.addListener(\"focusDidSet\", (e) => {\n setInputs(e);\n });\n\n return subscription.remove;\n }, []);\n const doneStyle = useMemo(\n () => [styles.doneButton, { color: theme[colorScheme].primary }],\n [colorScheme, theme],\n );\n const toolbarStyle = useMemo(\n () => [\n styles.toolbar,\n {\n backgroundColor: `${theme[colorScheme].background}${opacity}`,\n },\n ],\n [colorScheme, opacity, theme],\n );\n const offset = useMemo(\n () => ({ closed: closed + KEYBOARD_TOOLBAR_HEIGHT, opened }),\n [closed, opened],\n );\n const ButtonContainer = button || Button;\n const IconContainer = icon || Arrow;\n\n const onPressNext = useCallback(() => {\n goToNextField();\n onNextCallback?.();\n }, [onNextCallback]);\n const onPressPrev = useCallback(() => {\n goToPrevField();\n onPrevCallback?.();\n }, [onPrevCallback]);\n const onPressDone = useCallback(() => {\n dismissKeyboard();\n onDoneCallback?.();\n }, [onDoneCallback]);\n\n return (\n <KeyboardStickyView enabled={enabled} offset={offset}>\n <View {...rest} style={toolbarStyle} testID={TEST_ID_KEYBOARD_TOOLBAR}>\n {blur}\n {showArrows && (\n <>\n <ButtonContainer\n accessibilityLabel=\"Previous\"\n accessibilityHint=\"Will move focus to previous field\"\n disabled={isPrevDisabled}\n onPress={onPressPrev}\n testID={TEST_ID_KEYBOARD_TOOLBAR_PREVIOUS}\n theme={theme}\n >\n <IconContainer\n disabled={isPrevDisabled}\n type=\"prev\"\n theme={theme}\n />\n </ButtonContainer>\n <ButtonContainer\n accessibilityLabel=\"Next\"\n accessibilityHint=\"Will move focus to next field\"\n disabled={isNextDisabled}\n onPress={onPressNext}\n testID={TEST_ID_KEYBOARD_TOOLBAR_NEXT}\n theme={theme}\n >\n <IconContainer\n disabled={isNextDisabled}\n type=\"next\"\n theme={theme}\n />\n </ButtonContainer>\n </>\n )}\n\n <View style={styles.flex} testID={TEST_ID_KEYBOARD_TOOLBAR_CONTENT}>\n {content}\n </View>\n <ButtonContainer\n accessibilityLabel=\"Done\"\n accessibilityHint=\"Will close the keyboard\"\n onPress={onPressDone}\n testID={TEST_ID_KEYBOARD_TOOLBAR_DONE}\n rippleRadius={28}\n style={styles.doneButtonContainer}\n theme={theme}\n >\n <Text style={doneStyle} maxFontSizeMultiplier={1.3}>\n {doneText || \"Done\"}\n </Text>\n </ButtonContainer>\n </View>\n </KeyboardStickyView>\n );\n};\n\nconst styles = StyleSheet.create({\n flex: {\n flex: 1,\n },\n toolbar: {\n position: \"absolute\",\n bottom: 0,\n alignItems: \"center\",\n width: \"100%\",\n flexDirection: \"row\",\n height: KEYBOARD_TOOLBAR_HEIGHT,\n paddingHorizontal: 8,\n },\n doneButton: {\n fontWeight: \"600\",\n fontSize: 15,\n },\n doneButtonContainer: {\n marginRight: 8,\n },\n});\n\nexport { colors as DefaultKeyboardToolbarTheme };\nexport default KeyboardToolbar;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_bindings","_hooks","_KeyboardStickyView","_interopRequireDefault","_Arrow","_Button","_colors","_components","_context","_constants","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","KeyboardToolbar","children","content","theme","colors","doneText","button","icon","showArrows","onNextCallback","onPrevCallback","onDoneCallback","blur","opacity","DEFAULT_OPACITY","offset","closed","opened","enabled","insets","rest","colorScheme","useKeyboardState","state","appearance","inputs","setInputs","useState","current","count","isPrevDisabled","isNextDisabled","buttonContainer","Button","iconContainer","Arrow","useEffect","subscription","FocusedInputEvents","addListener","remove","toolbarStyle","useMemo","styles","toolbar","backgroundColor","background","KEYBOARD_HAS_ROUNDED_CORNERS","paddingLeft","left","paddingRight","right","floating","containerStyle","sticky","KEYBOARD_TOOLBAR_HEIGHT","OPENED_OFFSET","backgroundElement","arrowsElement","contentContainer","doneElement","prevChild","nextChild","contentChild","doneChild","backgroundChild","React","Children","forEach","child","isValidElement","type","Background","Content","Prev","Next","Done","createElement","View","style","arrows","onPress","text","contextValue","ToolbarContext","Provider","value","testID","TEST_ID_KEYBOARD_TOOLBAR","StyleSheet","create","position","bottom","height","alignItems","width","flexDirection","alignSelf","borderRadius","overflow","Group","RCTKeyboardToolbarGroupView","_default","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\nimport { StyleSheet, View } from \"react-native\";\n\nimport {\n FocusedInputEvents,\n RCTKeyboardToolbarGroupView,\n} from \"../../bindings\";\nimport { useKeyboardState } from \"../../hooks\";\nimport KeyboardStickyView from \"../KeyboardStickyView\";\n\nimport Arrow from \"./Arrow\";\nimport Button from \"./Button\";\nimport { colors } from \"./colors\";\nimport { Background, Content, Done, Next, Prev } from \"./compound/components\";\nimport { ToolbarContext } from \"./compound/context\";\nimport {\n DEFAULT_OPACITY,\n KEYBOARD_HAS_ROUNDED_CORNERS,\n KEYBOARD_TOOLBAR_HEIGHT,\n OPENED_OFFSET,\n TEST_ID_KEYBOARD_TOOLBAR,\n} from \"./constants\";\n\nimport type { KeyboardToolbarProps } from \"./types\";\nimport type { ReactNode } from \"react\";\n\n/**\n * `KeyboardToolbar` is a component that is shown above the keyboard with `Prev`/`Next` and\n * `Done` buttons.\n */\nconst KeyboardToolbar: React.FC<KeyboardToolbarProps> & {\n Background: typeof Background;\n Content: typeof Content;\n Prev: typeof Prev;\n Next: typeof Next;\n Done: typeof Done;\n Group: typeof RCTKeyboardToolbarGroupView;\n} = ({\n children,\n content,\n theme = colors,\n doneText = \"Done\",\n button,\n icon,\n showArrows = true,\n onNextCallback,\n onPrevCallback,\n onDoneCallback,\n blur = null,\n opacity = DEFAULT_OPACITY,\n offset: { closed = 0, opened = 0 } = {},\n enabled = true,\n insets,\n ...rest\n}) => {\n const colorScheme = useKeyboardState((state) => state.appearance);\n const [inputs, setInputs] = useState({\n current: 0,\n count: 0,\n });\n const isPrevDisabled = inputs.current === 0;\n const isNextDisabled = inputs.current === inputs.count - 1;\n const buttonContainer = button ?? Button;\n const iconContainer = icon ?? Arrow;\n\n useEffect(() => {\n const subscription = FocusedInputEvents.addListener(\"focusDidSet\", (e) => {\n setInputs(e);\n });\n\n return subscription.remove;\n }, []);\n const toolbarStyle = useMemo(\n () => [\n styles.toolbar,\n {\n backgroundColor: `${theme[colorScheme].background}${opacity}`,\n },\n !KEYBOARD_HAS_ROUNDED_CORNERS\n ? {\n paddingLeft: insets?.left,\n paddingRight: insets?.right,\n }\n : null,\n KEYBOARD_HAS_ROUNDED_CORNERS ? styles.floating : null,\n ],\n [colorScheme, opacity, theme, insets],\n );\n const containerStyle = useMemo(\n () => [\n // CRUCIAL: gives the native view real bounds\n styles.sticky,\n KEYBOARD_HAS_ROUNDED_CORNERS\n ? ({\n left: (insets?.left ?? 0) + 16,\n right: (insets?.right ?? 0) + 16,\n } as const)\n : null,\n ],\n [insets],\n );\n const offset = useMemo(\n () => ({\n closed: closed + KEYBOARD_TOOLBAR_HEIGHT,\n opened: opened + OPENED_OFFSET,\n }),\n [closed, opened],\n );\n let backgroundElement: ReactNode = null;\n let arrowsElement: ReactNode = null;\n let contentContainer: ReactNode = null;\n let doneElement: ReactNode = null;\n\n if (children) {\n let prevChild: ReactNode = null;\n let nextChild: ReactNode = null;\n let contentChild: ReactNode = null;\n let doneChild: ReactNode = null;\n let backgroundChild: ReactNode = null;\n\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n if (child.type === Background) backgroundChild = child;\n else if (child.type === Content) contentChild = child;\n else if (child.type === Prev) prevChild = child;\n else if (child.type === Next) nextChild = child;\n else if (child.type === Done) doneChild = child;\n });\n\n backgroundElement = backgroundChild;\n doneElement = doneChild;\n arrowsElement =\n prevChild || nextChild ? (\n <View style={styles.arrows}>\n {prevChild}\n {nextChild}\n </View>\n ) : null;\n contentContainer = contentChild ?? <Content>{contentChild}</Content>;\n } else {\n backgroundElement = blur;\n arrowsElement = showArrows ? (\n <View style={styles.arrows}>\n <Prev\n button={buttonContainer}\n icon={iconContainer}\n onPress={onPrevCallback}\n />\n <Next\n button={buttonContainer}\n icon={iconContainer}\n onPress={onNextCallback}\n />\n </View>\n ) : null;\n contentContainer = <Content>{content}</Content>;\n doneElement = doneText ? (\n <Done button={buttonContainer} text={doneText} onPress={onDoneCallback} />\n ) : null;\n }\n\n const contextValue = useMemo(\n () => ({ theme, isPrevDisabled, isNextDisabled }),\n [theme, isPrevDisabled, isNextDisabled],\n );\n\n return (\n <ToolbarContext.Provider value={contextValue}>\n <KeyboardStickyView\n enabled={enabled}\n offset={offset}\n style={containerStyle}\n >\n <View {...rest} style={toolbarStyle} testID={TEST_ID_KEYBOARD_TOOLBAR}>\n {backgroundElement}\n {arrowsElement}\n {contentContainer}\n {doneElement}\n </View>\n </KeyboardStickyView>\n </ToolbarContext.Provider>\n );\n};\n\nconst styles = StyleSheet.create({\n sticky: {\n position: \"absolute\",\n left: 0,\n right: 0,\n bottom: 0,\n height: KEYBOARD_TOOLBAR_HEIGHT,\n },\n toolbar: {\n position: \"absolute\",\n bottom: 0,\n alignItems: \"center\",\n width: \"100%\",\n flexDirection: \"row\",\n height: KEYBOARD_TOOLBAR_HEIGHT,\n },\n arrows: {\n flexDirection: \"row\",\n paddingLeft: 8,\n },\n floating: {\n alignSelf: \"center\",\n borderRadius: 20,\n overflow: \"hidden\",\n },\n});\n\nKeyboardToolbar.Background = Background;\nKeyboardToolbar.Content = Content;\nKeyboardToolbar.Prev = Prev;\nKeyboardToolbar.Next = Next;\nKeyboardToolbar.Done = Done;\nKeyboardToolbar.Group = RCTKeyboardToolbarGroupView;\n\nexport { colors as DefaultKeyboardToolbarTheme, KeyboardToolbarProps };\nexport default KeyboardToolbar;\n"],"mappings":"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","ignoreList":[]}