react-native-acoustic-connect 19.0.11 → 19.0.34

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 (380) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/ConnectConfig.example.json +1 -1
  3. package/README.md +426 -3
  4. package/android/build.gradle +119 -3
  5. package/android/config.gradle +123 -13
  6. package/android/src/main/assets/ConnectAdvancedConfig.json +1 -1
  7. package/android/src/main/assets/EOCoreAdvancedConfig.json +1 -1
  8. package/android/src/main/assets/TealeafAdvancedConfig.json +1 -1
  9. package/android/src/main/java/com/acousticconnectrn/HybridAcousticConnectRN.kt +457 -37
  10. package/app.plugin.js +2 -2
  11. package/ios/AcousticConnectRNConfig.json +2 -2
  12. package/ios/ConnectRNParsing.swift +229 -0
  13. package/ios/HybridAcousticConnectRN.swift +290 -30
  14. package/lib/commonjs/TLTRN.js +116 -3
  15. package/lib/commonjs/TLTRN.js.map +1 -1
  16. package/lib/commonjs/components/Connect.js +145 -27
  17. package/lib/commonjs/components/Connect.js.map +1 -1
  18. package/lib/commonjs/index.js +3 -0
  19. package/lib/commonjs/index.js.map +1 -1
  20. package/lib/module/TLTRN.js +116 -3
  21. package/lib/module/TLTRN.js.map +1 -1
  22. package/lib/module/components/Connect.js +146 -28
  23. package/lib/module/components/Connect.js.map +1 -1
  24. package/lib/module/index.js +5 -0
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/typescript/src/TLTRN.d.ts +85 -1
  27. package/lib/typescript/src/TLTRN.d.ts.map +1 -1
  28. package/lib/typescript/src/components/Connect.d.ts.map +1 -1
  29. package/lib/typescript/src/index.d.ts +1 -0
  30. package/lib/typescript/src/index.d.ts.map +1 -1
  31. package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts +190 -10
  32. package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts.map +1 -1
  33. package/nitrogen/generated/android/c++/JHybridAcousticConnectRNSpec.cpp +5 -9
  34. package/nitrogen/generated/android/c++/JHybridAcousticConnectRNSpec.hpp +1 -1
  35. package/nitrogen/generated/android/kotlin/com/margelo/nitro/acousticconnectrn/HybridAcousticConnectRNSpec.kt +2 -1
  36. package/nitrogen/generated/ios/AcousticConnectRN-Swift-Cxx-Umbrella.hpp +1 -0
  37. package/nitrogen/generated/ios/c++/HybridAcousticConnectRNSpecSwift.hpp +2 -1
  38. package/nitrogen/generated/ios/swift/HybridAcousticConnectRNSpec.swift +1 -1
  39. package/nitrogen/generated/ios/swift/HybridAcousticConnectRNSpec_cxx.swift +2 -25
  40. package/nitrogen/generated/shared/c++/HybridAcousticConnectRNSpec.hpp +2 -1
  41. package/package.json +6 -8
  42. package/plugin/build/withConnectAndroidConfig.d.ts +2 -2
  43. package/plugin/build/withConnectAndroidConfig.js +2 -2
  44. package/plugin/build/withConnectIosSigning.d.ts +1 -1
  45. package/plugin/build/withConnectIosSigning.js +1 -1
  46. package/plugin/src/withConnectAndroidConfig.ts +2 -2
  47. package/plugin/src/withConnectIosSigning.ts +1 -1
  48. package/scripts/gradleParser.js +1 -1
  49. package/src/TLTRN.ts +125 -4
  50. package/src/components/Connect.tsx +150 -27
  51. package/src/index.ts +5 -0
  52. package/src/specs/react-native-acoustic-connect.nitro.ts +192 -10
  53. package/Examples/SampleUI/.bundle/config +0 -2
  54. package/Examples/SampleUI/.detoxrc.js +0 -83
  55. package/Examples/SampleUI/.eslintrc.js +0 -4
  56. package/Examples/SampleUI/.prettierrc.js +0 -7
  57. package/Examples/SampleUI/.watchmanconfig +0 -1
  58. package/Examples/SampleUI/App.js +0 -1
  59. package/Examples/SampleUI/Gemfile +0 -10
  60. package/Examples/SampleUI/Gemfile.lock +0 -121
  61. package/Examples/SampleUI/README.md +0 -79
  62. package/Examples/SampleUI/__tests__/App.test.tsx +0 -17
  63. package/Examples/SampleUI/android/app/build.gradle +0 -129
  64. package/Examples/SampleUI/android/app/debug.keystore +0 -0
  65. package/Examples/SampleUI/android/app/proguard-rules.pro +0 -10
  66. package/Examples/SampleUI/android/app/src/debug/AndroidManifest.xml +0 -9
  67. package/Examples/SampleUI/android/app/src/main/AndroidManifest.xml +0 -31
  68. package/Examples/SampleUI/android/app/src/main/java/com/sampleui/MainActivity.kt +0 -30
  69. package/Examples/SampleUI/android/app/src/main/java/com/sampleui/MainApplication.kt +0 -53
  70. package/Examples/SampleUI/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -37
  71. package/Examples/SampleUI/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  72. package/Examples/SampleUI/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  73. package/Examples/SampleUI/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  74. package/Examples/SampleUI/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  75. package/Examples/SampleUI/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  76. package/Examples/SampleUI/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  77. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  78. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  79. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  80. package/Examples/SampleUI/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  81. package/Examples/SampleUI/android/app/src/main/res/values/strings.xml +0 -3
  82. package/Examples/SampleUI/android/app/src/main/res/values/styles.xml +0 -9
  83. package/Examples/SampleUI/android/build.gradle +0 -21
  84. package/Examples/SampleUI/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  85. package/Examples/SampleUI/android/gradle/wrapper/gradle-wrapper.properties +0 -7
  86. package/Examples/SampleUI/android/gradle.properties +0 -39
  87. package/Examples/SampleUI/android/gradlew +0 -252
  88. package/Examples/SampleUI/android/gradlew.bat +0 -94
  89. package/Examples/SampleUI/android/settings.gradle +0 -21
  90. package/Examples/SampleUI/app.json +0 -51
  91. package/Examples/SampleUI/assets/fonts/Abel-Regular.ttf +0 -0
  92. package/Examples/SampleUI/assets/fonts/NotoSans-Regular.ttf +0 -0
  93. package/Examples/SampleUI/assets/images/android-icon.png +0 -0
  94. package/Examples/SampleUI/assets/images/artist-1.jpg +0 -0
  95. package/Examples/SampleUI/assets/images/artist-2.jpg +0 -0
  96. package/Examples/SampleUI/assets/images/avatar.png +0 -0
  97. package/Examples/SampleUI/assets/images/beach.jpg +0 -0
  98. package/Examples/SampleUI/assets/images/bridge.jpg +0 -0
  99. package/Examples/SampleUI/assets/images/chameleon.jpg +0 -0
  100. package/Examples/SampleUI/assets/images/city.jpg +0 -0
  101. package/Examples/SampleUI/assets/images/email-icon.png +0 -0
  102. package/Examples/SampleUI/assets/images/favorite.png +0 -0
  103. package/Examples/SampleUI/assets/images/forest.jpg +0 -0
  104. package/Examples/SampleUI/assets/images/paper-icon.png +0 -0
  105. package/Examples/SampleUI/assets/images/players-2.jpg +0 -0
  106. package/Examples/SampleUI/assets/images/players.jpg +0 -0
  107. package/Examples/SampleUI/assets/images/restaurant-1.jpg +0 -0
  108. package/Examples/SampleUI/assets/images/restaurant-2.jpg +0 -0
  109. package/Examples/SampleUI/assets/images/song-1.jpg +0 -0
  110. package/Examples/SampleUI/assets/images/song-2.jpg +0 -0
  111. package/Examples/SampleUI/assets/images/splash.png +0 -0
  112. package/Examples/SampleUI/assets/images/strawberries.jpg +0 -0
  113. package/Examples/SampleUI/assets/images/wrecked-ship.jpg +0 -0
  114. package/Examples/SampleUI/assets/styles/fonts.css +0 -47
  115. package/Examples/SampleUI/babel.config.js +0 -22
  116. package/Examples/SampleUI/index.js +0 -9
  117. package/Examples/SampleUI/ios/.xcode.env +0 -11
  118. package/Examples/SampleUI/ios/Podfile +0 -71
  119. package/Examples/SampleUI/ios/Podfile.lock +0 -2276
  120. package/Examples/SampleUI/ios/SampleUI/AppDelegate.h +0 -7
  121. package/Examples/SampleUI/ios/SampleUI/AppDelegate.mm +0 -31
  122. package/Examples/SampleUI/ios/SampleUI/Images.xcassets/AppIcon.appiconset/Contents.json +0 -53
  123. package/Examples/SampleUI/ios/SampleUI/Images.xcassets/Contents.json +0 -6
  124. package/Examples/SampleUI/ios/SampleUI/Info.plist +0 -52
  125. package/Examples/SampleUI/ios/SampleUI/LaunchScreen.storyboard +0 -47
  126. package/Examples/SampleUI/ios/SampleUI/PrivacyInfo.xcprivacy +0 -48
  127. package/Examples/SampleUI/ios/SampleUI/main.m +0 -10
  128. package/Examples/SampleUI/ios/SampleUI.xcodeproj/project.pbxproj +0 -785
  129. package/Examples/SampleUI/ios/SampleUI.xcodeproj/xcshareddata/xcschemes/SampleUI.xcscheme +0 -105
  130. package/Examples/SampleUI/ios/SampleUI.xcworkspace/contents.xcworkspacedata +0 -10
  131. package/Examples/SampleUI/ios/SampleUITests/Info.plist +0 -24
  132. package/Examples/SampleUI/ios/SampleUITests/SampleUITests.m +0 -66
  133. package/Examples/SampleUI/jest.config.js +0 -3
  134. package/Examples/SampleUI/metro.config.js +0 -54
  135. package/Examples/SampleUI/package.json +0 -65
  136. package/Examples/SampleUI/scripts/integration-test-android.sh +0 -292
  137. package/Examples/SampleUI/src/DrawerItems.tsx +0 -322
  138. package/Examples/SampleUI/src/ExampleList.tsx +0 -175
  139. package/Examples/SampleUI/src/Examples/ActivityIndicatorExample.tsx +0 -73
  140. package/Examples/SampleUI/src/Examples/AnimatedFABExample/AnimatedFABExample.tsx +0 -220
  141. package/Examples/SampleUI/src/Examples/AnimatedFABExample/CustomFAB.tsx +0 -70
  142. package/Examples/SampleUI/src/Examples/AnimatedFABExample/CustomFABControls.tsx +0 -146
  143. package/Examples/SampleUI/src/Examples/AnimatedFABExample/index.ts +0 -1
  144. package/Examples/SampleUI/src/Examples/AppbarExample.tsx +0 -263
  145. package/Examples/SampleUI/src/Examples/AvatarExample.tsx +0 -76
  146. package/Examples/SampleUI/src/Examples/BadgeExample.tsx +0 -97
  147. package/Examples/SampleUI/src/Examples/BannerExample.tsx +0 -152
  148. package/Examples/SampleUI/src/Examples/BottomNavigationBarExample.tsx +0 -94
  149. package/Examples/SampleUI/src/Examples/BottomNavigationExample.tsx +0 -205
  150. package/Examples/SampleUI/src/Examples/ButtonExample.tsx +0 -405
  151. package/Examples/SampleUI/src/Examples/CardExample.tsx +0 -245
  152. package/Examples/SampleUI/src/Examples/CheckboxExample.tsx +0 -87
  153. package/Examples/SampleUI/src/Examples/CheckboxItemExample.tsx +0 -72
  154. package/Examples/SampleUI/src/Examples/ChipExample.tsx +0 -432
  155. package/Examples/SampleUI/src/Examples/DataTableExample.tsx +0 -128
  156. package/Examples/SampleUI/src/Examples/DialogExample.tsx +0 -217
  157. package/Examples/SampleUI/src/Examples/Dialogs/DialogTextComponent.tsx +0 -31
  158. package/Examples/SampleUI/src/Examples/Dialogs/DialogTrackingTest.tsx +0 -307
  159. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithCustomColors.tsx +0 -57
  160. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithDismissableBackButton.tsx +0 -38
  161. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithIcon.tsx +0 -42
  162. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithLoadingIndicator.tsx +0 -48
  163. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithLongText.tsx +0 -81
  164. package/Examples/SampleUI/src/Examples/Dialogs/DialogWithRadioBtns.tsx +0 -111
  165. package/Examples/SampleUI/src/Examples/Dialogs/UndismissableDialog.tsx +0 -30
  166. package/Examples/SampleUI/src/Examples/Dialogs/index.tsx +0 -44
  167. package/Examples/SampleUI/src/Examples/DividerExample.tsx +0 -30
  168. package/Examples/SampleUI/src/Examples/FABExample.tsx +0 -226
  169. package/Examples/SampleUI/src/Examples/IconButtonExample.tsx +0 -230
  170. package/Examples/SampleUI/src/Examples/IconExample.tsx +0 -50
  171. package/Examples/SampleUI/src/Examples/ListAccordionExample.tsx +0 -65
  172. package/Examples/SampleUI/src/Examples/ListAccordionGroupExample.tsx +0 -80
  173. package/Examples/SampleUI/src/Examples/ListItemExample.tsx +0 -310
  174. package/Examples/SampleUI/src/Examples/ListSectionExample.tsx +0 -159
  175. package/Examples/SampleUI/src/Examples/MaterialBottomTabNavigatorExample.tsx +0 -87
  176. package/Examples/SampleUI/src/Examples/MenuExample.tsx +0 -211
  177. package/Examples/SampleUI/src/Examples/ProgressBarExample.tsx +0 -142
  178. package/Examples/SampleUI/src/Examples/RadioButtonExample.tsx +0 -104
  179. package/Examples/SampleUI/src/Examples/RadioButtonGroupExample.tsx +0 -67
  180. package/Examples/SampleUI/src/Examples/RadioButtonItemExample.tsx +0 -77
  181. package/Examples/SampleUI/src/Examples/SearchbarExample.tsx +0 -249
  182. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonCustomColorCheck.tsx +0 -93
  183. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonDefault.tsx +0 -49
  184. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonDisabled.tsx +0 -47
  185. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselect.tsx +0 -50
  186. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselectIcons.tsx +0 -49
  187. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselectRealCase.tsx +0 -114
  188. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonOnlyIcons.tsx +0 -40
  189. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonOnlyIconsWithCheck.tsx +0 -43
  190. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonRealCase.tsx +0 -97
  191. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonWithDensity.tsx +0 -47
  192. package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonWithSelectedCheck.tsx +0 -52
  193. package/Examples/SampleUI/src/Examples/SegmentedButtons/index.ts +0 -9
  194. package/Examples/SampleUI/src/Examples/SegmentedButtonsExample.tsx +0 -57
  195. package/Examples/SampleUI/src/Examples/SnackbarExample.tsx +0 -141
  196. package/Examples/SampleUI/src/Examples/SurfaceExample.tsx +0 -130
  197. package/Examples/SampleUI/src/Examples/SwitchExample.tsx +0 -105
  198. package/Examples/SampleUI/src/Examples/TeamDetails.tsx +0 -291
  199. package/Examples/SampleUI/src/Examples/TeamsList.tsx +0 -57
  200. package/Examples/SampleUI/src/Examples/TextExample.tsx +0 -132
  201. package/Examples/SampleUI/src/Examples/TextInputExample.tsx +0 -914
  202. package/Examples/SampleUI/src/Examples/ThemeExample.tsx +0 -41
  203. package/Examples/SampleUI/src/Examples/ThemingWithReactNavigation.tsx +0 -75
  204. package/Examples/SampleUI/src/Examples/ToggleButtonExample.tsx +0 -128
  205. package/Examples/SampleUI/src/Examples/TooltipExample.tsx +0 -191
  206. package/Examples/SampleUI/src/Examples/TouchableRippleExample.tsx +0 -37
  207. package/Examples/SampleUI/src/RootNavigator.tsx +0 -95
  208. package/Examples/SampleUI/src/ScreenWrapper.tsx +0 -67
  209. package/Examples/SampleUI/src/components/ActivityIndicator.tsx +0 -254
  210. package/Examples/SampleUI/src/components/Appbar/Appbar.tsx +0 -364
  211. package/Examples/SampleUI/src/components/Appbar/AppbarAction.tsx +0 -132
  212. package/Examples/SampleUI/src/components/Appbar/AppbarBackAction.tsx +0 -77
  213. package/Examples/SampleUI/src/components/Appbar/AppbarBackIcon.tsx +0 -52
  214. package/Examples/SampleUI/src/components/Appbar/AppbarContent.tsx +0 -249
  215. package/Examples/SampleUI/src/components/Appbar/AppbarHeader.tsx +0 -174
  216. package/Examples/SampleUI/src/components/Appbar/index.ts +0 -22
  217. package/Examples/SampleUI/src/components/Appbar/utils.ts +0 -188
  218. package/Examples/SampleUI/src/components/Avatar/Avatar.tsx +0 -8
  219. package/Examples/SampleUI/src/components/Avatar/AvatarIcon.tsx +0 -87
  220. package/Examples/SampleUI/src/components/Avatar/AvatarImage.tsx +0 -128
  221. package/Examples/SampleUI/src/components/Avatar/AvatarText.tsx +0 -127
  222. package/Examples/SampleUI/src/components/Badge.tsx +0 -138
  223. package/Examples/SampleUI/src/components/Banner.tsx +0 -302
  224. package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigation.tsx +0 -643
  225. package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigationBar.tsx +0 -1039
  226. package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigationRouteScreen.tsx +0 -31
  227. package/Examples/SampleUI/src/components/BottomNavigation/utils.ts +0 -70
  228. package/Examples/SampleUI/src/components/Button/Button.tsx +0 -503
  229. package/Examples/SampleUI/src/components/Button/utils.tsx +0 -272
  230. package/Examples/SampleUI/src/components/Card/Card.tsx +0 -373
  231. package/Examples/SampleUI/src/components/Card/CardActions.tsx +0 -74
  232. package/Examples/SampleUI/src/components/Card/CardContent.tsx +0 -99
  233. package/Examples/SampleUI/src/components/Card/CardCover.tsx +0 -96
  234. package/Examples/SampleUI/src/components/Card/CardTitle.tsx +0 -236
  235. package/Examples/SampleUI/src/components/Card/utils.tsx +0 -110
  236. package/Examples/SampleUI/src/components/Checkbox/Checkbox.tsx +0 -78
  237. package/Examples/SampleUI/src/components/Checkbox/CheckboxAndroid.tsx +0 -180
  238. package/Examples/SampleUI/src/components/Checkbox/CheckboxIOS.tsx +0 -104
  239. package/Examples/SampleUI/src/components/Checkbox/CheckboxItem.tsx +0 -236
  240. package/Examples/SampleUI/src/components/Checkbox/index.ts +0 -19
  241. package/Examples/SampleUI/src/components/Checkbox/utils.ts +0 -183
  242. package/Examples/SampleUI/src/components/Chip/Chip.tsx +0 -513
  243. package/Examples/SampleUI/src/components/Chip/helpers.tsx +0 -322
  244. package/Examples/SampleUI/src/components/CrossFadeIcon.tsx +0 -140
  245. package/Examples/SampleUI/src/components/DataTable/DataTable.tsx +0 -138
  246. package/Examples/SampleUI/src/components/DataTable/DataTableCell.tsx +0 -132
  247. package/Examples/SampleUI/src/components/DataTable/DataTableHeader.tsx +0 -82
  248. package/Examples/SampleUI/src/components/DataTable/DataTablePagination.tsx +0 -407
  249. package/Examples/SampleUI/src/components/DataTable/DataTableRow.tsx +0 -107
  250. package/Examples/SampleUI/src/components/DataTable/DataTableTitle.tsx +0 -208
  251. package/Examples/SampleUI/src/components/Dialog/Dialog.tsx +0 -191
  252. package/Examples/SampleUI/src/components/Dialog/DialogActions.tsx +0 -94
  253. package/Examples/SampleUI/src/components/Dialog/DialogContent.tsx +0 -54
  254. package/Examples/SampleUI/src/components/Dialog/DialogIcon.tsx +0 -100
  255. package/Examples/SampleUI/src/components/Dialog/DialogScrollArea.tsx +0 -88
  256. package/Examples/SampleUI/src/components/Dialog/DialogTitle.tsx +0 -94
  257. package/Examples/SampleUI/src/components/Divider.tsx +0 -102
  258. package/Examples/SampleUI/src/components/Drawer/Drawer.tsx +0 -8
  259. package/Examples/SampleUI/src/components/Drawer/DrawerCollapsedItem.tsx +0 -282
  260. package/Examples/SampleUI/src/components/Drawer/DrawerItem.tsx +0 -209
  261. package/Examples/SampleUI/src/components/Drawer/DrawerSection.tsx +0 -138
  262. package/Examples/SampleUI/src/components/FAB/AnimatedFAB.tsx +0 -619
  263. package/Examples/SampleUI/src/components/FAB/FAB.tsx +0 -371
  264. package/Examples/SampleUI/src/components/FAB/FABGroup.tsx +0 -532
  265. package/Examples/SampleUI/src/components/FAB/index.ts +0 -13
  266. package/Examples/SampleUI/src/components/FAB/utils.ts +0 -474
  267. package/Examples/SampleUI/src/components/HelperText/HelperText.tsx +0 -168
  268. package/Examples/SampleUI/src/components/HelperText/utils.ts +0 -30
  269. package/Examples/SampleUI/src/components/Icon.tsx +0 -170
  270. package/Examples/SampleUI/src/components/IconButton/IconButton.tsx +0 -234
  271. package/Examples/SampleUI/src/components/IconButton/utils.ts +0 -190
  272. package/Examples/SampleUI/src/components/List/List.tsx +0 -20
  273. package/Examples/SampleUI/src/components/List/ListAccordion.tsx +0 -391
  274. package/Examples/SampleUI/src/components/List/ListAccordionGroup.tsx +0 -88
  275. package/Examples/SampleUI/src/components/List/ListIcon.tsx +0 -79
  276. package/Examples/SampleUI/src/components/List/ListImage.tsx +0 -89
  277. package/Examples/SampleUI/src/components/List/ListItem.tsx +0 -313
  278. package/Examples/SampleUI/src/components/List/ListSection.tsx +0 -87
  279. package/Examples/SampleUI/src/components/List/ListSubheader.tsx +0 -79
  280. package/Examples/SampleUI/src/components/List/utils.ts +0 -113
  281. package/Examples/SampleUI/src/components/MaterialCommunityIcon.tsx +0 -121
  282. package/Examples/SampleUI/src/components/Menu/Menu.tsx +0 -711
  283. package/Examples/SampleUI/src/components/Menu/MenuItem.tsx +0 -257
  284. package/Examples/SampleUI/src/components/Menu/utils.ts +0 -110
  285. package/Examples/SampleUI/src/components/Modal.tsx +0 -245
  286. package/Examples/SampleUI/src/components/Portal/Portal.tsx +0 -69
  287. package/Examples/SampleUI/src/components/Portal/PortalConsumer.tsx +0 -44
  288. package/Examples/SampleUI/src/components/Portal/PortalHost.tsx +0 -143
  289. package/Examples/SampleUI/src/components/Portal/PortalManager.tsx +0 -54
  290. package/Examples/SampleUI/src/components/ProgressBar.tsx +0 -292
  291. package/Examples/SampleUI/src/components/RadioButton/RadioButton.tsx +0 -86
  292. package/Examples/SampleUI/src/components/RadioButton/RadioButtonAndroid.tsx +0 -202
  293. package/Examples/SampleUI/src/components/RadioButton/RadioButtonGroup.tsx +0 -67
  294. package/Examples/SampleUI/src/components/RadioButton/RadioButtonIOS.tsx +0 -130
  295. package/Examples/SampleUI/src/components/RadioButton/RadioButtonItem.tsx +0 -268
  296. package/Examples/SampleUI/src/components/RadioButton/index.ts +0 -22
  297. package/Examples/SampleUI/src/components/RadioButton/utils.ts +0 -37
  298. package/Examples/SampleUI/src/components/Searchbar.tsx +0 -459
  299. package/Examples/SampleUI/src/components/SegmentedButtons/SegmentedButtonItem.tsx +0 -271
  300. package/Examples/SampleUI/src/components/SegmentedButtons/SegmentedButtons.tsx +0 -197
  301. package/Examples/SampleUI/src/components/SegmentedButtons/utils.ts +0 -179
  302. package/Examples/SampleUI/src/components/Snackbar.tsx +0 -430
  303. package/Examples/SampleUI/src/components/Surface.tsx +0 -376
  304. package/Examples/SampleUI/src/components/Switch/Switch.tsx +0 -108
  305. package/Examples/SampleUI/src/components/Switch/utils.ts +0 -113
  306. package/Examples/SampleUI/src/components/TextInput/Addons/Outline.tsx +0 -64
  307. package/Examples/SampleUI/src/components/TextInput/Addons/Underline.tsx +0 -78
  308. package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputAdornment.tsx +0 -208
  309. package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputAffix.tsx +0 -212
  310. package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputIcon.tsx +0 -195
  311. package/Examples/SampleUI/src/components/TextInput/Adornment/enums.tsx +0 -12
  312. package/Examples/SampleUI/src/components/TextInput/Adornment/types.tsx +0 -11
  313. package/Examples/SampleUI/src/components/TextInput/Adornment/utils.ts +0 -48
  314. package/Examples/SampleUI/src/components/TextInput/Label/InputLabel.tsx +0 -217
  315. package/Examples/SampleUI/src/components/TextInput/Label/LabelBackground.tsx +0 -100
  316. package/Examples/SampleUI/src/components/TextInput/TextInput.tsx +0 -572
  317. package/Examples/SampleUI/src/components/TextInput/TextInputFlat.tsx +0 -475
  318. package/Examples/SampleUI/src/components/TextInput/TextInputOutlined.tsx +0 -450
  319. package/Examples/SampleUI/src/components/TextInput/constants.tsx +0 -48
  320. package/Examples/SampleUI/src/components/TextInput/helpers.tsx +0 -612
  321. package/Examples/SampleUI/src/components/TextInput/types.tsx +0 -155
  322. package/Examples/SampleUI/src/components/ToggleButton/ToggleButton.tsx +0 -187
  323. package/Examples/SampleUI/src/components/ToggleButton/ToggleButtonGroup.tsx +0 -72
  324. package/Examples/SampleUI/src/components/ToggleButton/ToggleButtonRow.tsx +0 -107
  325. package/Examples/SampleUI/src/components/ToggleButton/index.ts +0 -16
  326. package/Examples/SampleUI/src/components/ToggleButton/utils.ts +0 -26
  327. package/Examples/SampleUI/src/components/Tooltip/Tooltip.tsx +0 -249
  328. package/Examples/SampleUI/src/components/Tooltip/utils.ts +0 -129
  329. package/Examples/SampleUI/src/components/TouchableRipple/Pressable.tsx +0 -41
  330. package/Examples/SampleUI/src/components/TouchableRipple/TouchableRipple.native.tsx +0 -145
  331. package/Examples/SampleUI/src/components/TouchableRipple/TouchableRipple.tsx +0 -317
  332. package/Examples/SampleUI/src/components/TouchableRipple/utils.ts +0 -66
  333. package/Examples/SampleUI/src/components/Typography/AnimatedText.tsx +0 -107
  334. package/Examples/SampleUI/src/components/Typography/Text.tsx +0 -184
  335. package/Examples/SampleUI/src/components/Typography/types.tsx +0 -5
  336. package/Examples/SampleUI/src/components/Typography/v2/Caption.tsx +0 -50
  337. package/Examples/SampleUI/src/components/Typography/v2/Headline.tsx +0 -52
  338. package/Examples/SampleUI/src/components/Typography/v2/Paragraph.tsx +0 -49
  339. package/Examples/SampleUI/src/components/Typography/v2/StyledText.tsx +0 -56
  340. package/Examples/SampleUI/src/components/Typography/v2/Subheading.tsx +0 -50
  341. package/Examples/SampleUI/src/components/Typography/v2/Text.tsx +0 -62
  342. package/Examples/SampleUI/src/components/Typography/v2/Title.tsx +0 -49
  343. package/Examples/SampleUI/src/components/Typography/v2/index.ts +0 -5
  344. package/Examples/SampleUI/src/core/PaperProvider.tsx +0 -122
  345. package/Examples/SampleUI/src/core/SafeAreaProviderCompat.tsx +0 -65
  346. package/Examples/SampleUI/src/core/settings.tsx +0 -23
  347. package/Examples/SampleUI/src/core/theming.tsx +0 -170
  348. package/Examples/SampleUI/src/index.native.tsx +0 -285
  349. package/Examples/SampleUI/src/index.tsx +0 -226
  350. package/Examples/SampleUI/src/react-navigation/index.tsx +0 -19
  351. package/Examples/SampleUI/src/react-navigation/navigators/createMaterialBottomTabNavigator.tsx +0 -72
  352. package/Examples/SampleUI/src/react-navigation/types.tsx +0 -126
  353. package/Examples/SampleUI/src/react-navigation/views/MaterialBottomTabView.tsx +0 -140
  354. package/Examples/SampleUI/src/styles/__tests__/fonts.test.js +0 -290
  355. package/Examples/SampleUI/src/styles/fonts.tsx +0 -143
  356. package/Examples/SampleUI/src/styles/overlay.tsx +0 -70
  357. package/Examples/SampleUI/src/styles/shadow.tsx +0 -109
  358. package/Examples/SampleUI/src/styles/themes/index.ts +0 -4
  359. package/Examples/SampleUI/src/styles/themes/v2/DarkTheme.tsx +0 -30
  360. package/Examples/SampleUI/src/styles/themes/v2/LightTheme.tsx +0 -30
  361. package/Examples/SampleUI/src/styles/themes/v2/colors.tsx +0 -277
  362. package/Examples/SampleUI/src/styles/themes/v3/DarkTheme.tsx +0 -66
  363. package/Examples/SampleUI/src/styles/themes/v3/LightTheme.tsx +0 -69
  364. package/Examples/SampleUI/src/styles/themes/v3/tokens.tsx +0 -230
  365. package/Examples/SampleUI/src/utils/BackHandler/BackHandler.native.tsx +0 -3
  366. package/Examples/SampleUI/src/utils/BackHandler/BackHandler.tsx +0 -11
  367. package/Examples/SampleUI/src/utils/addEventListener.tsx +0 -56
  368. package/Examples/SampleUI/src/utils/forwardRef.tsx +0 -23
  369. package/Examples/SampleUI/src/utils/getContrastingColor.tsx +0 -15
  370. package/Examples/SampleUI/src/utils/hasTouchHandler.tsx +0 -23
  371. package/Examples/SampleUI/src/utils/roundLayoutSize.ts +0 -2
  372. package/Examples/SampleUI/src/utils/splitStyles.ts +0 -60
  373. package/Examples/SampleUI/src/utils/useAnimatedValue.tsx +0 -9
  374. package/Examples/SampleUI/src/utils/useAnimatedValueArray.tsx +0 -13
  375. package/Examples/SampleUI/src/utils/useIsKeyboardShown.tsx +0 -55
  376. package/Examples/SampleUI/src/utils/useLayout.tsx +0 -29
  377. package/Examples/SampleUI/src/utils/useLazyRef.tsx +0 -11
  378. package/Examples/SampleUI/tsconfig.json +0 -3
  379. package/Examples/SampleUI/utils/index.ts +0 -1426
  380. package/cli/__tests__/doctor.test.mjs +0 -88
@@ -1,572 +0,0 @@
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;