react-native-acoustic-connect-beta 18.0.7 → 18.0.8

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 (327) hide show
  1. package/Examples/SampleUI/.bundle/config +2 -0
  2. package/Examples/SampleUI/.eslintrc.js +4 -0
  3. package/Examples/SampleUI/.prettierrc.js +7 -0
  4. package/Examples/SampleUI/.watchmanconfig +1 -0
  5. package/Examples/SampleUI/App.js +1 -0
  6. package/Examples/SampleUI/Gemfile +10 -0
  7. package/Examples/SampleUI/Gemfile.lock +121 -0
  8. package/Examples/SampleUI/README.md +79 -0
  9. package/Examples/SampleUI/__tests__/App.test.tsx +17 -0
  10. package/Examples/SampleUI/android/app/build.gradle +124 -0
  11. package/Examples/SampleUI/android/app/debug.keystore +0 -0
  12. package/Examples/SampleUI/android/app/proguard-rules.pro +10 -0
  13. package/Examples/SampleUI/android/app/src/debug/AndroidManifest.xml +9 -0
  14. package/Examples/SampleUI/android/app/src/main/AndroidManifest.xml +26 -0
  15. package/Examples/SampleUI/android/app/src/main/java/com/sampleui/MainActivity.kt +23 -0
  16. package/Examples/SampleUI/android/app/src/main/java/com/sampleui/MainApplication.kt +53 -0
  17. package/Examples/SampleUI/android/app/src/main/res/drawable/rn_edit_text_material.xml +37 -0
  18. package/Examples/SampleUI/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  19. package/Examples/SampleUI/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  20. package/Examples/SampleUI/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  21. package/Examples/SampleUI/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  22. package/Examples/SampleUI/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  23. package/Examples/SampleUI/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  24. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  25. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  26. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  27. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  28. package/Examples/SampleUI/android/app/src/main/res/values/strings.xml +3 -0
  29. package/Examples/SampleUI/android/app/src/main/res/values/styles.xml +9 -0
  30. package/Examples/SampleUI/android/build.gradle +21 -0
  31. package/Examples/SampleUI/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  32. package/Examples/SampleUI/android/gradle/wrapper/gradle-wrapper.properties +7 -0
  33. package/Examples/SampleUI/android/gradle.properties +39 -0
  34. package/Examples/SampleUI/android/gradlew +252 -0
  35. package/Examples/SampleUI/android/gradlew.bat +94 -0
  36. package/Examples/SampleUI/android/settings.gradle +21 -0
  37. package/Examples/SampleUI/app.json +51 -0
  38. package/Examples/SampleUI/assets/fonts/Abel-Regular.ttf +0 -0
  39. package/Examples/SampleUI/assets/fonts/NotoSans-Regular.ttf +0 -0
  40. package/Examples/SampleUI/assets/images/android-icon.png +0 -0
  41. package/Examples/SampleUI/assets/images/artist-1.jpg +0 -0
  42. package/Examples/SampleUI/assets/images/artist-2.jpg +0 -0
  43. package/Examples/SampleUI/assets/images/avatar.png +0 -0
  44. package/Examples/SampleUI/assets/images/beach.jpg +0 -0
  45. package/Examples/SampleUI/assets/images/bridge.jpg +0 -0
  46. package/Examples/SampleUI/assets/images/chameleon.jpg +0 -0
  47. package/Examples/SampleUI/assets/images/city.jpg +0 -0
  48. package/Examples/SampleUI/assets/images/email-icon.png +0 -0
  49. package/Examples/SampleUI/assets/images/favorite.png +0 -0
  50. package/Examples/SampleUI/assets/images/forest.jpg +0 -0
  51. package/Examples/SampleUI/assets/images/paper-icon.png +0 -0
  52. package/Examples/SampleUI/assets/images/players-2.jpg +0 -0
  53. package/Examples/SampleUI/assets/images/players.jpg +0 -0
  54. package/Examples/SampleUI/assets/images/restaurant-1.jpg +0 -0
  55. package/Examples/SampleUI/assets/images/restaurant-2.jpg +0 -0
  56. package/Examples/SampleUI/assets/images/song-1.jpg +0 -0
  57. package/Examples/SampleUI/assets/images/song-2.jpg +0 -0
  58. package/Examples/SampleUI/assets/images/splash.png +0 -0
  59. package/Examples/SampleUI/assets/images/strawberries.jpg +0 -0
  60. package/Examples/SampleUI/assets/images/wrecked-ship.jpg +0 -0
  61. package/Examples/SampleUI/assets/styles/fonts.css +47 -0
  62. package/Examples/SampleUI/babel.config.js +22 -0
  63. package/Examples/SampleUI/index.js +9 -0
  64. package/Examples/SampleUI/ios/.xcode.env +11 -0
  65. package/Examples/SampleUI/ios/Podfile +58 -0
  66. package/Examples/SampleUI/ios/SampleUI/AppDelegate.h +7 -0
  67. package/Examples/SampleUI/ios/SampleUI/AppDelegate.mm +31 -0
  68. package/Examples/SampleUI/ios/SampleUI/Images.xcassets/AppIcon.appiconset/Contents.json +53 -0
  69. package/Examples/SampleUI/ios/SampleUI/Images.xcassets/Contents.json +6 -0
  70. package/Examples/SampleUI/ios/SampleUI/Info.plist +52 -0
  71. package/Examples/SampleUI/ios/SampleUI/LaunchScreen.storyboard +47 -0
  72. package/Examples/SampleUI/ios/SampleUI/PrivacyInfo.xcprivacy +48 -0
  73. package/Examples/SampleUI/ios/SampleUI/main.m +10 -0
  74. package/Examples/SampleUI/ios/SampleUI.xcodeproj/project.pbxproj +785 -0
  75. package/Examples/SampleUI/ios/SampleUI.xcodeproj/xcshareddata/xcschemes/SampleUI.xcscheme +88 -0
  76. package/Examples/SampleUI/ios/SampleUI.xcworkspace/contents.xcworkspacedata +10 -0
  77. package/Examples/SampleUI/ios/SampleUITests/Info.plist +24 -0
  78. package/Examples/SampleUI/ios/SampleUITests/SampleUITests.m +66 -0
  79. package/Examples/SampleUI/jest.config.js +3 -0
  80. package/Examples/SampleUI/metro.config.js +53 -0
  81. package/Examples/SampleUI/package-lock.json +17033 -0
  82. package/Examples/SampleUI/package.json +62 -0
  83. package/Examples/SampleUI/src/DrawerItems.tsx +322 -0
  84. package/Examples/SampleUI/src/ExampleList.tsx +175 -0
  85. package/Examples/SampleUI/src/Examples/ActivityIndicatorExample.tsx +73 -0
  86. package/Examples/SampleUI/src/Examples/AnimatedFABExample/AnimatedFABExample.tsx +220 -0
  87. package/Examples/SampleUI/src/Examples/AnimatedFABExample/CustomFAB.tsx +70 -0
  88. package/Examples/SampleUI/src/Examples/AnimatedFABExample/CustomFABControls.tsx +146 -0
  89. package/Examples/SampleUI/src/Examples/AnimatedFABExample/index.ts +1 -0
  90. package/Examples/SampleUI/src/Examples/AppbarExample.tsx +263 -0
  91. package/Examples/SampleUI/src/Examples/AvatarExample.tsx +76 -0
  92. package/Examples/SampleUI/src/Examples/BadgeExample.tsx +97 -0
  93. package/Examples/SampleUI/src/Examples/BannerExample.tsx +152 -0
  94. package/Examples/SampleUI/src/Examples/BottomNavigationBarExample.tsx +94 -0
  95. package/Examples/SampleUI/src/Examples/BottomNavigationExample.tsx +205 -0
  96. package/Examples/SampleUI/src/Examples/ButtonExample.tsx +405 -0
  97. package/Examples/SampleUI/src/Examples/CardExample.tsx +245 -0
  98. package/Examples/SampleUI/src/Examples/CheckboxExample.tsx +87 -0
  99. package/Examples/SampleUI/src/Examples/CheckboxItemExample.tsx +72 -0
  100. package/Examples/SampleUI/src/Examples/ChipExample.tsx +432 -0
  101. package/Examples/SampleUI/src/Examples/DataTableExample.tsx +128 -0
  102. package/Examples/SampleUI/src/Examples/DialogExample.tsx +131 -0
  103. package/Examples/SampleUI/src/Examples/Dialogs/DialogTextComponent.tsx +31 -0
  104. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithCustomColors.tsx +57 -0
  105. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithDismissableBackButton.tsx +38 -0
  106. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithIcon.tsx +42 -0
  107. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithLoadingIndicator.tsx +48 -0
  108. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithLongText.tsx +81 -0
  109. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithRadioBtns.tsx +111 -0
  110. package/Examples/SampleUI/src/Examples/Dialogs/UndismissableDialog.tsx +30 -0
  111. package/Examples/SampleUI/src/Examples/Dialogs/index.tsx +7 -0
  112. package/Examples/SampleUI/src/Examples/DividerExample.tsx +30 -0
  113. package/Examples/SampleUI/src/Examples/FABExample.tsx +226 -0
  114. package/Examples/SampleUI/src/Examples/IconButtonExample.tsx +230 -0
  115. package/Examples/SampleUI/src/Examples/IconExample.tsx +50 -0
  116. package/Examples/SampleUI/src/Examples/ListAccordionExample.tsx +65 -0
  117. package/Examples/SampleUI/src/Examples/ListAccordionGroupExample.tsx +80 -0
  118. package/Examples/SampleUI/src/Examples/ListItemExample.tsx +310 -0
  119. package/Examples/SampleUI/src/Examples/ListSectionExample.tsx +159 -0
  120. package/Examples/SampleUI/src/Examples/MaterialBottomTabNavigatorExample.tsx +87 -0
  121. package/Examples/SampleUI/src/Examples/MenuExample.tsx +211 -0
  122. package/Examples/SampleUI/src/Examples/ProgressBarExample.tsx +142 -0
  123. package/Examples/SampleUI/src/Examples/RadioButtonExample.tsx +104 -0
  124. package/Examples/SampleUI/src/Examples/RadioButtonGroupExample.tsx +67 -0
  125. package/Examples/SampleUI/src/Examples/RadioButtonItemExample.tsx +77 -0
  126. package/Examples/SampleUI/src/Examples/SearchbarExample.tsx +249 -0
  127. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonCustomColorCheck.tsx +93 -0
  128. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonDefault.tsx +49 -0
  129. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonDisabled.tsx +47 -0
  130. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselect.tsx +50 -0
  131. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselectIcons.tsx +49 -0
  132. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselectRealCase.tsx +114 -0
  133. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonOnlyIcons.tsx +40 -0
  134. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonOnlyIconsWithCheck.tsx +43 -0
  135. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonRealCase.tsx +97 -0
  136. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonWithDensity.tsx +47 -0
  137. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonWithSelectedCheck.tsx +52 -0
  138. package/Examples/SampleUI/src/Examples/SegmentedButtons/index.ts +9 -0
  139. package/Examples/SampleUI/src/Examples/SegmentedButtonsExample.tsx +57 -0
  140. package/Examples/SampleUI/src/Examples/SnackbarExample.tsx +141 -0
  141. package/Examples/SampleUI/src/Examples/SurfaceExample.tsx +130 -0
  142. package/Examples/SampleUI/src/Examples/SwitchExample.tsx +105 -0
  143. package/Examples/SampleUI/src/Examples/TeamDetails.tsx +291 -0
  144. package/Examples/SampleUI/src/Examples/TeamsList.tsx +57 -0
  145. package/Examples/SampleUI/src/Examples/TextExample.tsx +132 -0
  146. package/Examples/SampleUI/src/Examples/TextInputExample.tsx +914 -0
  147. package/Examples/SampleUI/src/Examples/ThemeExample.tsx +41 -0
  148. package/Examples/SampleUI/src/Examples/ThemingWithReactNavigation.tsx +75 -0
  149. package/Examples/SampleUI/src/Examples/ToggleButtonExample.tsx +128 -0
  150. package/Examples/SampleUI/src/Examples/TooltipExample.tsx +191 -0
  151. package/Examples/SampleUI/src/Examples/TouchableRippleExample.tsx +37 -0
  152. package/Examples/SampleUI/src/RootNavigator.tsx +86 -0
  153. package/Examples/SampleUI/src/ScreenWrapper.tsx +67 -0
  154. package/Examples/SampleUI/src/components/ActivityIndicator.tsx +254 -0
  155. package/Examples/SampleUI/src/components/Appbar/Appbar.tsx +364 -0
  156. package/Examples/SampleUI/src/components/Appbar/AppbarAction.tsx +132 -0
  157. package/Examples/SampleUI/src/components/Appbar/AppbarBackAction.tsx +77 -0
  158. package/Examples/SampleUI/src/components/Appbar/AppbarBackIcon.tsx +52 -0
  159. package/Examples/SampleUI/src/components/Appbar/AppbarContent.tsx +249 -0
  160. package/Examples/SampleUI/src/components/Appbar/AppbarHeader.tsx +174 -0
  161. package/Examples/SampleUI/src/components/Appbar/index.ts +22 -0
  162. package/Examples/SampleUI/src/components/Appbar/utils.ts +188 -0
  163. package/Examples/SampleUI/src/components/Avatar/Avatar.tsx +8 -0
  164. package/Examples/SampleUI/src/components/Avatar/AvatarIcon.tsx +87 -0
  165. package/Examples/SampleUI/src/components/Avatar/AvatarImage.tsx +128 -0
  166. package/Examples/SampleUI/src/components/Avatar/AvatarText.tsx +127 -0
  167. package/Examples/SampleUI/src/components/Badge.tsx +138 -0
  168. package/Examples/SampleUI/src/components/Banner.tsx +302 -0
  169. package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigation.tsx +643 -0
  170. package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigationBar.tsx +1039 -0
  171. package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigationRouteScreen.tsx +31 -0
  172. package/Examples/SampleUI/src/components/BottomNavigation/utils.ts +70 -0
  173. package/Examples/SampleUI/src/components/Button/Button.tsx +503 -0
  174. package/Examples/SampleUI/src/components/Button/utils.tsx +272 -0
  175. package/Examples/SampleUI/src/components/Card/Card.tsx +373 -0
  176. package/Examples/SampleUI/src/components/Card/CardActions.tsx +74 -0
  177. package/Examples/SampleUI/src/components/Card/CardContent.tsx +99 -0
  178. package/Examples/SampleUI/src/components/Card/CardCover.tsx +96 -0
  179. package/Examples/SampleUI/src/components/Card/CardTitle.tsx +236 -0
  180. package/Examples/SampleUI/src/components/Card/utils.tsx +110 -0
  181. package/Examples/SampleUI/src/components/Checkbox/Checkbox.tsx +78 -0
  182. package/Examples/SampleUI/src/components/Checkbox/CheckboxAndroid.tsx +180 -0
  183. package/Examples/SampleUI/src/components/Checkbox/CheckboxIOS.tsx +104 -0
  184. package/Examples/SampleUI/src/components/Checkbox/CheckboxItem.tsx +236 -0
  185. package/Examples/SampleUI/src/components/Checkbox/index.ts +19 -0
  186. package/Examples/SampleUI/src/components/Checkbox/utils.ts +183 -0
  187. package/Examples/SampleUI/src/components/Chip/Chip.tsx +513 -0
  188. package/Examples/SampleUI/src/components/Chip/helpers.tsx +322 -0
  189. package/Examples/SampleUI/src/components/CrossFadeIcon.tsx +140 -0
  190. package/Examples/SampleUI/src/components/DataTable/DataTable.tsx +138 -0
  191. package/Examples/SampleUI/src/components/DataTable/DataTableCell.tsx +132 -0
  192. package/Examples/SampleUI/src/components/DataTable/DataTableHeader.tsx +82 -0
  193. package/Examples/SampleUI/src/components/DataTable/DataTablePagination.tsx +407 -0
  194. package/Examples/SampleUI/src/components/DataTable/DataTableRow.tsx +107 -0
  195. package/Examples/SampleUI/src/components/DataTable/DataTableTitle.tsx +208 -0
  196. package/Examples/SampleUI/src/components/Dialog/Dialog.tsx +191 -0
  197. package/Examples/SampleUI/src/components/Dialog/DialogActions.tsx +94 -0
  198. package/Examples/SampleUI/src/components/Dialog/DialogContent.tsx +54 -0
  199. package/Examples/SampleUI/src/components/Dialog/DialogIcon.tsx +100 -0
  200. package/Examples/SampleUI/src/components/Dialog/DialogScrollArea.tsx +88 -0
  201. package/Examples/SampleUI/src/components/Dialog/DialogTitle.tsx +94 -0
  202. package/Examples/SampleUI/src/components/Divider.tsx +102 -0
  203. package/Examples/SampleUI/src/components/Drawer/Drawer.tsx +8 -0
  204. package/Examples/SampleUI/src/components/Drawer/DrawerCollapsedItem.tsx +282 -0
  205. package/Examples/SampleUI/src/components/Drawer/DrawerItem.tsx +209 -0
  206. package/Examples/SampleUI/src/components/Drawer/DrawerSection.tsx +138 -0
  207. package/Examples/SampleUI/src/components/FAB/AnimatedFAB.tsx +619 -0
  208. package/Examples/SampleUI/src/components/FAB/FAB.tsx +371 -0
  209. package/Examples/SampleUI/src/components/FAB/FABGroup.tsx +532 -0
  210. package/Examples/SampleUI/src/components/FAB/index.ts +13 -0
  211. package/Examples/SampleUI/src/components/FAB/utils.ts +474 -0
  212. package/Examples/SampleUI/src/components/HelperText/HelperText.tsx +168 -0
  213. package/Examples/SampleUI/src/components/HelperText/utils.ts +30 -0
  214. package/Examples/SampleUI/src/components/Icon.tsx +170 -0
  215. package/Examples/SampleUI/src/components/IconButton/IconButton.tsx +234 -0
  216. package/Examples/SampleUI/src/components/IconButton/utils.ts +190 -0
  217. package/Examples/SampleUI/src/components/List/List.tsx +20 -0
  218. package/Examples/SampleUI/src/components/List/ListAccordion.tsx +391 -0
  219. package/Examples/SampleUI/src/components/List/ListAccordionGroup.tsx +88 -0
  220. package/Examples/SampleUI/src/components/List/ListIcon.tsx +79 -0
  221. package/Examples/SampleUI/src/components/List/ListImage.tsx +89 -0
  222. package/Examples/SampleUI/src/components/List/ListItem.tsx +313 -0
  223. package/Examples/SampleUI/src/components/List/ListSection.tsx +87 -0
  224. package/Examples/SampleUI/src/components/List/ListSubheader.tsx +79 -0
  225. package/Examples/SampleUI/src/components/List/utils.ts +113 -0
  226. package/Examples/SampleUI/src/components/MaterialCommunityIcon.tsx +121 -0
  227. package/Examples/SampleUI/src/components/Menu/Menu.tsx +711 -0
  228. package/Examples/SampleUI/src/components/Menu/MenuItem.tsx +257 -0
  229. package/Examples/SampleUI/src/components/Menu/utils.ts +110 -0
  230. package/Examples/SampleUI/src/components/Modal.tsx +245 -0
  231. package/Examples/SampleUI/src/components/Portal/Portal.tsx +69 -0
  232. package/Examples/SampleUI/src/components/Portal/PortalConsumer.tsx +44 -0
  233. package/Examples/SampleUI/src/components/Portal/PortalHost.tsx +143 -0
  234. package/Examples/SampleUI/src/components/Portal/PortalManager.tsx +54 -0
  235. package/Examples/SampleUI/src/components/ProgressBar.tsx +292 -0
  236. package/Examples/SampleUI/src/components/RadioButton/RadioButton.tsx +86 -0
  237. package/Examples/SampleUI/src/components/RadioButton/RadioButtonAndroid.tsx +202 -0
  238. package/Examples/SampleUI/src/components/RadioButton/RadioButtonGroup.tsx +67 -0
  239. package/Examples/SampleUI/src/components/RadioButton/RadioButtonIOS.tsx +130 -0
  240. package/Examples/SampleUI/src/components/RadioButton/RadioButtonItem.tsx +268 -0
  241. package/Examples/SampleUI/src/components/RadioButton/index.ts +22 -0
  242. package/Examples/SampleUI/src/components/RadioButton/utils.ts +37 -0
  243. package/Examples/SampleUI/src/components/Searchbar.tsx +459 -0
  244. package/Examples/SampleUI/src/components/SegmentedButtons/SegmentedButtonItem.tsx +271 -0
  245. package/Examples/SampleUI/src/components/SegmentedButtons/SegmentedButtons.tsx +197 -0
  246. package/Examples/SampleUI/src/components/SegmentedButtons/utils.ts +179 -0
  247. package/Examples/SampleUI/src/components/Snackbar.tsx +430 -0
  248. package/Examples/SampleUI/src/components/Surface.tsx +376 -0
  249. package/Examples/SampleUI/src/components/Switch/Switch.tsx +108 -0
  250. package/Examples/SampleUI/src/components/Switch/utils.ts +113 -0
  251. package/Examples/SampleUI/src/components/TextInput/Addons/Outline.tsx +64 -0
  252. package/Examples/SampleUI/src/components/TextInput/Addons/Underline.tsx +78 -0
  253. package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputAdornment.tsx +208 -0
  254. package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputAffix.tsx +212 -0
  255. package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputIcon.tsx +195 -0
  256. package/Examples/SampleUI/src/components/TextInput/Adornment/enums.tsx +12 -0
  257. package/Examples/SampleUI/src/components/TextInput/Adornment/types.tsx +11 -0
  258. package/Examples/SampleUI/src/components/TextInput/Adornment/utils.ts +48 -0
  259. package/Examples/SampleUI/src/components/TextInput/Label/InputLabel.tsx +217 -0
  260. package/Examples/SampleUI/src/components/TextInput/Label/LabelBackground.tsx +100 -0
  261. package/Examples/SampleUI/src/components/TextInput/TextInput.tsx +572 -0
  262. package/Examples/SampleUI/src/components/TextInput/TextInputFlat.tsx +475 -0
  263. package/Examples/SampleUI/src/components/TextInput/TextInputOutlined.tsx +450 -0
  264. package/Examples/SampleUI/src/components/TextInput/constants.tsx +48 -0
  265. package/Examples/SampleUI/src/components/TextInput/helpers.tsx +612 -0
  266. package/Examples/SampleUI/src/components/TextInput/types.tsx +155 -0
  267. package/Examples/SampleUI/src/components/ToggleButton/ToggleButton.tsx +187 -0
  268. package/Examples/SampleUI/src/components/ToggleButton/ToggleButtonGroup.tsx +72 -0
  269. package/Examples/SampleUI/src/components/ToggleButton/ToggleButtonRow.tsx +107 -0
  270. package/Examples/SampleUI/src/components/ToggleButton/index.ts +16 -0
  271. package/Examples/SampleUI/src/components/ToggleButton/utils.ts +26 -0
  272. package/Examples/SampleUI/src/components/Tooltip/Tooltip.tsx +249 -0
  273. package/Examples/SampleUI/src/components/Tooltip/utils.ts +129 -0
  274. package/Examples/SampleUI/src/components/TouchableRipple/Pressable.tsx +41 -0
  275. package/Examples/SampleUI/src/components/TouchableRipple/TouchableRipple.native.tsx +145 -0
  276. package/Examples/SampleUI/src/components/TouchableRipple/TouchableRipple.tsx +317 -0
  277. package/Examples/SampleUI/src/components/TouchableRipple/utils.ts +66 -0
  278. package/Examples/SampleUI/src/components/Typography/AnimatedText.tsx +107 -0
  279. package/Examples/SampleUI/src/components/Typography/Text.tsx +184 -0
  280. package/Examples/SampleUI/src/components/Typography/types.tsx +5 -0
  281. package/Examples/SampleUI/src/components/Typography/v2/Caption.tsx +50 -0
  282. package/Examples/SampleUI/src/components/Typography/v2/Headline.tsx +52 -0
  283. package/Examples/SampleUI/src/components/Typography/v2/Paragraph.tsx +49 -0
  284. package/Examples/SampleUI/src/components/Typography/v2/StyledText.tsx +56 -0
  285. package/Examples/SampleUI/src/components/Typography/v2/Subheading.tsx +50 -0
  286. package/Examples/SampleUI/src/components/Typography/v2/Text.tsx +62 -0
  287. package/Examples/SampleUI/src/components/Typography/v2/Title.tsx +49 -0
  288. package/Examples/SampleUI/src/components/Typography/v2/index.ts +5 -0
  289. package/Examples/SampleUI/src/core/PaperProvider.tsx +122 -0
  290. package/Examples/SampleUI/src/core/SafeAreaProviderCompat.tsx +65 -0
  291. package/Examples/SampleUI/src/core/settings.tsx +23 -0
  292. package/Examples/SampleUI/src/core/theming.tsx +170 -0
  293. package/Examples/SampleUI/src/index.native.tsx +270 -0
  294. package/Examples/SampleUI/src/index.tsx +226 -0
  295. package/Examples/SampleUI/src/react-navigation/index.tsx +19 -0
  296. package/Examples/SampleUI/src/react-navigation/navigators/createMaterialBottomTabNavigator.tsx +72 -0
  297. package/Examples/SampleUI/src/react-navigation/types.tsx +126 -0
  298. package/Examples/SampleUI/src/react-navigation/views/MaterialBottomTabView.tsx +140 -0
  299. package/Examples/SampleUI/src/styles/__tests__/fonts.test.js +290 -0
  300. package/Examples/SampleUI/src/styles/fonts.tsx +143 -0
  301. package/Examples/SampleUI/src/styles/overlay.tsx +70 -0
  302. package/Examples/SampleUI/src/styles/shadow.tsx +109 -0
  303. package/Examples/SampleUI/src/styles/themes/index.ts +4 -0
  304. package/Examples/SampleUI/src/styles/themes/v2/DarkTheme.tsx +30 -0
  305. package/Examples/SampleUI/src/styles/themes/v2/LightTheme.tsx +30 -0
  306. package/Examples/SampleUI/src/styles/themes/v2/colors.tsx +277 -0
  307. package/Examples/SampleUI/src/styles/themes/v3/DarkTheme.tsx +66 -0
  308. package/Examples/SampleUI/src/styles/themes/v3/LightTheme.tsx +69 -0
  309. package/Examples/SampleUI/src/styles/themes/v3/tokens.tsx +230 -0
  310. package/Examples/SampleUI/src/utils/BackHandler/BackHandler.native.tsx +3 -0
  311. package/Examples/SampleUI/src/utils/BackHandler/BackHandler.tsx +11 -0
  312. package/Examples/SampleUI/src/utils/addEventListener.tsx +56 -0
  313. package/Examples/SampleUI/src/utils/forwardRef.tsx +23 -0
  314. package/Examples/SampleUI/src/utils/getContrastingColor.tsx +15 -0
  315. package/Examples/SampleUI/src/utils/hasTouchHandler.tsx +23 -0
  316. package/Examples/SampleUI/src/utils/roundLayoutSize.ts +2 -0
  317. package/Examples/SampleUI/src/utils/splitStyles.ts +60 -0
  318. package/Examples/SampleUI/src/utils/useAnimatedValue.tsx +9 -0
  319. package/Examples/SampleUI/src/utils/useAnimatedValueArray.tsx +13 -0
  320. package/Examples/SampleUI/src/utils/useIsKeyboardShown.tsx +55 -0
  321. package/Examples/SampleUI/src/utils/useLayout.tsx +29 -0
  322. package/Examples/SampleUI/src/utils/useLazyRef.tsx +11 -0
  323. package/Examples/SampleUI/tsconfig.json +3 -0
  324. package/Examples/SampleUI/utils/index.ts +1426 -0
  325. package/lib/typescript/jslib/TLTRN.d.ts +5 -5
  326. package/lib/typescript/jslib/TLTRN.d.ts.map +1 -1
  327. package/package.json +7 -2
@@ -0,0 +1,572 @@
1
+ import * as React from 'react';
2
+ import {
3
+ Animated,
4
+ LayoutChangeEvent,
5
+ StyleProp,
6
+ TextInput as NativeTextInput,
7
+ TextStyle,
8
+ ViewStyle,
9
+ NativeSyntheticEvent,
10
+ TextLayoutEventData,
11
+ } from 'react-native';
12
+
13
+ import TextInputAffix, {
14
+ Props as TextInputAffixProps,
15
+ } from './Adornment/TextInputAffix';
16
+ import TextInputIcon, {
17
+ Props as TextInputIconProps,
18
+ } from './Adornment/TextInputIcon';
19
+ import TextInputFlat from './TextInputFlat';
20
+ import TextInputOutlined from './TextInputOutlined';
21
+ import type { RenderProps, TextInputLabelProp } from './types';
22
+ import { useInternalTheme } from '../../core/theming';
23
+ import type { ThemeProp } from '../../types';
24
+ import { forwardRef } from '../../utils/forwardRef';
25
+ import { roundLayoutSize } from '../../utils/roundLayoutSize';
26
+
27
+ const BLUR_ANIMATION_DURATION = 180;
28
+ const FOCUS_ANIMATION_DURATION = 150;
29
+
30
+ export type Props = React.ComponentPropsWithRef<typeof NativeTextInput> & {
31
+ /**
32
+ * Mode of the TextInput.
33
+ * - `flat` - flat input with an underline.
34
+ * - `outlined` - input with an outline.
35
+ *
36
+ * In `outlined` mode, the background color of the label is derived from `colors?.background` in theme or the `backgroundColor` style.
37
+ * This component render TextInputOutlined or TextInputFlat based on that props
38
+ */
39
+ mode?: 'flat' | 'outlined';
40
+ left?: React.ReactNode;
41
+ right?: React.ReactNode;
42
+ /**
43
+ * If true, user won't be able to interact with the component.
44
+ */
45
+ disabled?: boolean;
46
+ /**
47
+ * The text or component to use for the floating label.
48
+ */
49
+ label?: TextInputLabelProp;
50
+ /**
51
+ * Placeholder for the input.
52
+ */
53
+ placeholder?: string;
54
+ /**
55
+ * Whether to style the TextInput with error style.
56
+ */
57
+ error?: boolean;
58
+ /**
59
+ * Callback that is called when the text input's text changes. Changed text is passed as an argument to the callback handler.
60
+ */
61
+ onChangeText?: Function;
62
+ /**
63
+ * Selection color of the input. On iOS, it sets both the selection color and cursor color.
64
+ * On Android, it sets only the selection color.
65
+ */
66
+ selectionColor?: string;
67
+ /**
68
+ * @platform Android only
69
+ * Cursor (or "caret") color of the input on Android.
70
+ * This property has no effect on iOS.
71
+ */
72
+ cursorColor?: string;
73
+ /**
74
+ * Inactive underline color of the input.
75
+ */
76
+ underlineColor?: string;
77
+ /**
78
+ * Active underline color of the input.
79
+ */
80
+ activeUnderlineColor?: string;
81
+ /**
82
+ * Inactive outline color of the input.
83
+ */
84
+ outlineColor?: string;
85
+ /**
86
+ * Active outline color of the input.
87
+ */
88
+ activeOutlineColor?: string;
89
+ /**
90
+ * Color of the text in the input.
91
+ */
92
+ textColor?: string;
93
+ /**
94
+ * Sets min height with densed layout. For `TextInput` in `flat` mode
95
+ * height is `64dp` or in dense layout - `52dp` with label or `40dp` without label.
96
+ * For `TextInput` in `outlined` mode
97
+ * height is `56dp` or in dense layout - `40dp` regardless of label.
98
+ * When you apply `height` prop in style the `dense` prop affects only `paddingVertical` inside `TextInput`
99
+ */
100
+ dense?: boolean;
101
+ /**
102
+ * Whether the input can have multiple lines.
103
+ */
104
+ multiline?: boolean;
105
+ /**
106
+ * @platform Android only
107
+ * The number of lines to show in the input (Android only).
108
+ */
109
+ numberOfLines?: number;
110
+ /**
111
+ * Callback that is called when the text input is focused.
112
+ */
113
+ onFocus?: (args: any) => void;
114
+ /**
115
+ * Callback that is called when the text input is blurred.
116
+ */
117
+ onBlur?: (args: any) => void;
118
+ /**
119
+ *
120
+ * Callback to render a custom input component such as `react-native-text-input-mask`
121
+ * instead of the default `TextInput` component from `react-native`.
122
+ *
123
+ * Example:
124
+ * ```js
125
+ * <TextInput
126
+ * label="Phone number"
127
+ * render={props =>
128
+ * <TextInputMask
129
+ * {...props}
130
+ * mask="+[00] [000] [000] [000]"
131
+ * />
132
+ * }
133
+ * />
134
+ * ```
135
+ */
136
+ render?: (props: RenderProps) => React.ReactNode;
137
+ /**
138
+ * Value of the text input.
139
+ */
140
+ value?: string;
141
+ /**
142
+ * Pass `fontSize` prop to modify the font size inside `TextInput`.
143
+ * Pass `height` prop to set `TextInput` height. When `height` is passed,
144
+ * `dense` prop will affect only input's `paddingVertical`.
145
+ * Pass `paddingHorizontal` to modify horizontal padding.
146
+ * This can be used to get MD Guidelines v1 TextInput look.
147
+ */
148
+ style?: StyleProp<TextStyle>;
149
+ /**
150
+ * @optional
151
+ */
152
+ theme?: ThemeProp;
153
+ /**
154
+ * testID to be used on tests.
155
+ */
156
+ testID?: string;
157
+ /**
158
+ * Pass custom style directly to the input itself.
159
+ * Overrides input style
160
+ * Example: `paddingLeft`, `backgroundColor`
161
+ */
162
+ contentStyle?: StyleProp<TextStyle>;
163
+ /**
164
+ * Pass style to override the default style of outlined wrapper.
165
+ * Overrides style when mode is set to `outlined`
166
+ * Example: `borderRadius`, `borderColor`
167
+ */
168
+ outlineStyle?: StyleProp<ViewStyle>;
169
+ /**
170
+ * Pass style to override the default style of underlined wrapper.
171
+ * Overrides style when mode is set to `flat`
172
+ * Example: `borderRadius`, `borderColor`
173
+ */
174
+ underlineStyle?: StyleProp<ViewStyle>;
175
+ };
176
+
177
+ interface CompoundedComponent
178
+ extends React.ForwardRefExoticComponent<
179
+ Props & React.RefAttributes<TextInputHandles>
180
+ > {
181
+ Icon: React.FunctionComponent<TextInputIconProps>;
182
+ Affix: React.FunctionComponent<Partial<TextInputAffixProps>>;
183
+ }
184
+
185
+ type TextInputHandles = Pick<
186
+ NativeTextInput,
187
+ 'focus' | 'clear' | 'blur' | 'isFocused' | 'setNativeProps' | 'setSelection'
188
+ >;
189
+
190
+ const DefaultRenderer = (props: RenderProps) => <NativeTextInput {...props} />;
191
+
192
+ /**
193
+ * A component to allow users to input text.
194
+ *
195
+ * ## Usage
196
+ * ```js
197
+ * import * as React from 'react';
198
+ * import { TextInput } from 'react-native-paper';
199
+ *
200
+ * const MyComponent = () => {
201
+ * const [text, setText] = React.useState("");
202
+ *
203
+ * return (
204
+ * <TextInput
205
+ * label="Email"
206
+ * value={text}
207
+ * onChangeText={text => setText(text)}
208
+ * />
209
+ * );
210
+ * };
211
+ *
212
+ * export default MyComponent;
213
+ * ```
214
+ *
215
+ * @extends TextInput props https://reactnative.dev/docs/textinput#props
216
+ */
217
+ const TextInput = forwardRef<TextInputHandles, Props>(
218
+ (
219
+ {
220
+ mode = 'flat',
221
+ dense = false,
222
+ disabled = false,
223
+ error: errorProp = false,
224
+ multiline = false,
225
+ editable = true,
226
+ contentStyle,
227
+ render = DefaultRenderer,
228
+ theme: themeOverrides,
229
+ ...rest
230
+ }: Props,
231
+ ref
232
+ ) => {
233
+ const theme = useInternalTheme(themeOverrides);
234
+ const isControlled = rest.value !== undefined;
235
+ const validInputValue = isControlled ? rest.value : rest.defaultValue;
236
+
237
+ const { current: labeled } = React.useRef<Animated.Value>(
238
+ new Animated.Value(validInputValue ? 0 : 1)
239
+ );
240
+ const { current: error } = React.useRef<Animated.Value>(
241
+ new Animated.Value(errorProp ? 1 : 0)
242
+ );
243
+ const [focused, setFocused] = React.useState<boolean>(false);
244
+ const [displayPlaceholder, setDisplayPlaceholder] =
245
+ React.useState<boolean>(false);
246
+ const [uncontrolledValue, setUncontrolledValue] = React.useState<
247
+ string | undefined
248
+ >(validInputValue);
249
+ // Use value from props instead of local state when input is controlled
250
+ const value = isControlled ? rest.value : uncontrolledValue;
251
+
252
+ const [labelTextLayout, setLabelTextLayout] = React.useState({
253
+ width: 33,
254
+ });
255
+
256
+ const [inputContainerLayout, setInputContainerLayout] = React.useState({
257
+ width: 65,
258
+ });
259
+
260
+ const [labelLayout, setLabelLayout] = React.useState<{
261
+ measured: boolean;
262
+ width: number;
263
+ height: number;
264
+ }>({
265
+ measured: false,
266
+ width: 0,
267
+ height: 0,
268
+ });
269
+ const [leftLayout, setLeftLayout] = React.useState<{
270
+ height: number | null;
271
+ width: number | null;
272
+ }>({
273
+ width: null,
274
+ height: null,
275
+ });
276
+ const [rightLayout, setRightLayout] = React.useState<{
277
+ height: number | null;
278
+ width: number | null;
279
+ }>({
280
+ width: null,
281
+ height: null,
282
+ });
283
+
284
+ const timer = React.useRef<NodeJS.Timeout | undefined>();
285
+
286
+ const root = React.useRef<NativeTextInput | undefined | null>();
287
+
288
+ const { scale } = theme.animation;
289
+
290
+ React.useImperativeHandle(ref, () => ({
291
+ focus: () => root.current?.focus(),
292
+ clear: () => root.current?.clear(),
293
+ setNativeProps: (args: Object) => root.current?.setNativeProps(args),
294
+ isFocused: () => root.current?.isFocused() || false,
295
+ blur: () => root.current?.blur(),
296
+ forceFocus: () => root.current?.focus(),
297
+ setSelection: (start: number, end: number) =>
298
+ root.current?.setSelection(start, end),
299
+ }));
300
+
301
+ React.useEffect(() => {
302
+ // When the input has an error, we wiggle the label and apply error styles
303
+ if (errorProp) {
304
+ // show error
305
+ Animated.timing(error, {
306
+ toValue: 1,
307
+ duration: FOCUS_ANIMATION_DURATION * scale,
308
+ // To prevent this - https://github.com/callstack/react-native-paper/issues/941
309
+ useNativeDriver: true,
310
+ }).start();
311
+ } else {
312
+ // hide error
313
+ {
314
+ Animated.timing(error, {
315
+ toValue: 0,
316
+ duration: BLUR_ANIMATION_DURATION * scale,
317
+ // To prevent this - https://github.com/callstack/react-native-paper/issues/941
318
+ useNativeDriver: true,
319
+ }).start();
320
+ }
321
+ }
322
+ }, [errorProp, scale, error]);
323
+
324
+ React.useEffect(() => {
325
+ // Show placeholder text only if the input is focused, or there's no label
326
+ // We don't show placeholder if there's a label because the label acts as placeholder
327
+ // When focused, the label moves up, so we can show a placeholder
328
+ if (focused || !rest.label) {
329
+ // If the user wants to use the contextMenu, when changing the placeholder, the contextMenu is closed
330
+ // This is a workaround to mitigate this behavior in scenarios where the placeholder is not specified.
331
+ if (rest.placeholder) {
332
+ // Display placeholder in a delay to offset the label animation
333
+ // If we show it immediately, they'll overlap and look ugly
334
+ timer.current = setTimeout(
335
+ () => setDisplayPlaceholder(true),
336
+ 50
337
+ ) as unknown as NodeJS.Timeout;
338
+ }
339
+ } else {
340
+ // hidePlaceholder
341
+ setDisplayPlaceholder(false);
342
+ }
343
+
344
+ return () => {
345
+ if (timer.current) {
346
+ clearTimeout(timer.current);
347
+ }
348
+ };
349
+ }, [focused, rest.label, rest.placeholder]);
350
+
351
+ React.useEffect(() => {
352
+ labeled.stopAnimation();
353
+ // The label should be minimized if the text input is focused, or has text
354
+ // In minimized mode, the label moves up and becomes small
355
+ // workaround for animated regression for react native > 0.61
356
+ // https://github.com/callstack/react-native-paper/pull/1440
357
+ if (value || focused) {
358
+ // minimize label
359
+ Animated.timing(labeled, {
360
+ toValue: 0,
361
+ duration: BLUR_ANIMATION_DURATION * scale,
362
+ // To prevent this - https://github.com/callstack/react-native-paper/issues/941
363
+ useNativeDriver: true,
364
+ }).start();
365
+ } else {
366
+ // restore label
367
+ Animated.timing(labeled, {
368
+ toValue: 1,
369
+ duration: FOCUS_ANIMATION_DURATION * scale,
370
+ // To prevent this - https://github.com/callstack/react-native-paper/issues/941
371
+ useNativeDriver: true,
372
+ }).start();
373
+ }
374
+ }, [focused, value, labeled, scale]);
375
+
376
+ const onLeftAffixLayoutChange = React.useCallback(
377
+ (event: LayoutChangeEvent) => {
378
+ const height = roundLayoutSize(event.nativeEvent.layout.height);
379
+ const width = roundLayoutSize(event.nativeEvent.layout.width);
380
+
381
+ if (width !== leftLayout.width || height !== leftLayout.height) {
382
+ setLeftLayout({
383
+ width,
384
+ height,
385
+ });
386
+ }
387
+ },
388
+ [leftLayout.height, leftLayout.width]
389
+ );
390
+
391
+ const onRightAffixLayoutChange = React.useCallback(
392
+ (event: LayoutChangeEvent) => {
393
+ const width = roundLayoutSize(event.nativeEvent.layout.width);
394
+ const height = roundLayoutSize(event.nativeEvent.layout.height);
395
+
396
+ if (width !== rightLayout.width || height !== rightLayout.height) {
397
+ setRightLayout({
398
+ width,
399
+ height,
400
+ });
401
+ }
402
+ },
403
+ [rightLayout.height, rightLayout.width]
404
+ );
405
+
406
+ const handleFocus = (args: any) => {
407
+ if (disabled || !editable) {
408
+ return;
409
+ }
410
+
411
+ setFocused(true);
412
+
413
+ rest.onFocus?.(args);
414
+ };
415
+
416
+ const handleBlur = (args: Object) => {
417
+ if (!editable) {
418
+ return;
419
+ }
420
+
421
+ setFocused(false);
422
+ rest.onBlur?.(args);
423
+ };
424
+
425
+ const handleChangeText = (value: string) => {
426
+ if (!editable || disabled) {
427
+ return;
428
+ }
429
+
430
+ if (!isControlled) {
431
+ // Keep track of value in local state when input is not controlled
432
+ setUncontrolledValue(value);
433
+ }
434
+ rest.onChangeText?.(value);
435
+ };
436
+
437
+ const handleLayoutAnimatedText = React.useCallback(
438
+ (e: LayoutChangeEvent) => {
439
+ const width = roundLayoutSize(e.nativeEvent.layout.width);
440
+ const height = roundLayoutSize(e.nativeEvent.layout.height);
441
+
442
+ if (width !== labelLayout.width || height !== labelLayout.height) {
443
+ setLabelLayout({
444
+ width,
445
+ height,
446
+ measured: true,
447
+ });
448
+ }
449
+ },
450
+ [labelLayout.height, labelLayout.width]
451
+ );
452
+
453
+ const handleLabelTextLayout = React.useCallback(
454
+ ({ nativeEvent }: NativeSyntheticEvent<TextLayoutEventData>) => {
455
+ setLabelTextLayout({
456
+ width: nativeEvent.lines.reduce(
457
+ (acc, line) => acc + Math.ceil(line.width),
458
+ 0
459
+ ),
460
+ });
461
+ },
462
+ []
463
+ );
464
+
465
+ const handleInputContainerLayout = React.useCallback(
466
+ ({ nativeEvent: { layout } }: LayoutChangeEvent) => {
467
+ setInputContainerLayout({
468
+ width: layout.width,
469
+ });
470
+ },
471
+ []
472
+ );
473
+
474
+ const forceFocus = React.useCallback(() => root.current?.focus(), []);
475
+
476
+ const { maxFontSizeMultiplier = 1.5 } = rest;
477
+
478
+ const scaledLabel = !!(value || focused);
479
+
480
+ if (mode === 'outlined') {
481
+ return (
482
+ <TextInputOutlined
483
+ dense={dense}
484
+ disabled={disabled}
485
+ error={errorProp}
486
+ multiline={multiline}
487
+ editable={editable}
488
+ render={render}
489
+ {...rest}
490
+ theme={theme}
491
+ value={value}
492
+ parentState={{
493
+ labeled,
494
+ error,
495
+ focused,
496
+ displayPlaceholder,
497
+ value,
498
+ labelTextLayout,
499
+ labelLayout,
500
+ leftLayout,
501
+ rightLayout,
502
+ inputContainerLayout,
503
+ }}
504
+ innerRef={(ref) => {
505
+ root.current = ref;
506
+ }}
507
+ onFocus={handleFocus}
508
+ forceFocus={forceFocus}
509
+ onBlur={handleBlur}
510
+ onChangeText={handleChangeText}
511
+ onLayoutAnimatedText={handleLayoutAnimatedText}
512
+ onInputLayout={handleInputContainerLayout}
513
+ onLabelTextLayout={handleLabelTextLayout}
514
+ onLeftAffixLayoutChange={onLeftAffixLayoutChange}
515
+ onRightAffixLayoutChange={onRightAffixLayoutChange}
516
+ maxFontSizeMultiplier={maxFontSizeMultiplier}
517
+ contentStyle={contentStyle}
518
+ scaledLabel={scaledLabel}
519
+ />
520
+ );
521
+ }
522
+
523
+ return (
524
+ <TextInputFlat
525
+ dense={dense}
526
+ disabled={disabled}
527
+ error={errorProp}
528
+ multiline={multiline}
529
+ editable={editable}
530
+ render={render}
531
+ {...rest}
532
+ theme={theme}
533
+ value={value}
534
+ parentState={{
535
+ labeled,
536
+ error,
537
+ focused,
538
+ displayPlaceholder,
539
+ value,
540
+ labelTextLayout,
541
+ labelLayout,
542
+ leftLayout,
543
+ rightLayout,
544
+ inputContainerLayout,
545
+ }}
546
+ innerRef={(ref) => {
547
+ root.current = ref;
548
+ }}
549
+ onFocus={handleFocus}
550
+ forceFocus={forceFocus}
551
+ onBlur={handleBlur}
552
+ onInputLayout={handleInputContainerLayout}
553
+ onChangeText={handleChangeText}
554
+ onLayoutAnimatedText={handleLayoutAnimatedText}
555
+ onLabelTextLayout={handleLabelTextLayout}
556
+ onLeftAffixLayoutChange={onLeftAffixLayoutChange}
557
+ onRightAffixLayoutChange={onRightAffixLayoutChange}
558
+ maxFontSizeMultiplier={maxFontSizeMultiplier}
559
+ contentStyle={contentStyle}
560
+ scaledLabel={scaledLabel}
561
+ />
562
+ );
563
+ }
564
+ ) as CompoundedComponent;
565
+ // @component ./Adornment/TextInputIcon.tsx
566
+ TextInput.Icon = TextInputIcon;
567
+
568
+ // @component ./Adornment/TextInputAffix.tsx
569
+ // @ts-ignore Types of property 'theme' are incompatible.
570
+ TextInput.Affix = TextInputAffix;
571
+
572
+ export default TextInput;