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,128 @@
1
+ import * as React from 'react';
2
+ import { StyleSheet } from 'react-native';
3
+
4
+ import { DataTable, Card } from 'react-native-paper';
5
+
6
+ import ScreenWrapper from '../ScreenWrapper';
7
+
8
+ type ItemsState = Array<{
9
+ key: number;
10
+ name: string;
11
+ calories: number;
12
+ fat: number;
13
+ }>;
14
+
15
+ const DataTableExample = () => {
16
+ const [sortAscending, setSortAscending] = React.useState<boolean>(true);
17
+ const [page, setPage] = React.useState<number>(0);
18
+ const [items] = React.useState<ItemsState>([
19
+ {
20
+ key: 1,
21
+ name: 'Cupcake',
22
+ calories: 356,
23
+ fat: 16,
24
+ },
25
+ {
26
+ key: 2,
27
+ name: 'Eclair',
28
+ calories: 262,
29
+ fat: 16,
30
+ },
31
+ {
32
+ key: 3,
33
+ name: 'Frozen yogurt',
34
+ calories: 159,
35
+ fat: 6,
36
+ },
37
+ {
38
+ key: 4,
39
+ name: 'Gingerbread',
40
+ calories: 305,
41
+ fat: 3.7,
42
+ },
43
+ {
44
+ key: 5,
45
+ name: 'Ice cream sandwich',
46
+ calories: 237,
47
+ fat: 9,
48
+ },
49
+ {
50
+ key: 6,
51
+ name: 'Jelly Bean',
52
+ calories: 375,
53
+ fat: 0,
54
+ },
55
+ ]);
56
+ const [numberOfItemsPerPageList] = React.useState([2, 3, 4, 200]);
57
+ const [itemsPerPage, onItemsPerPageChange] = React.useState(
58
+ numberOfItemsPerPageList[0]
59
+ );
60
+ const sortedItems = items
61
+ .slice()
62
+ .sort((item1, item2) =>
63
+ sortAscending
64
+ ? item1.name.localeCompare(item2.name)
65
+ : item2.name.localeCompare(item1.name)
66
+ );
67
+ const from = page * itemsPerPage;
68
+ const to = Math.min((page + 1) * itemsPerPage, items.length);
69
+
70
+ React.useEffect(() => {
71
+ setPage(0);
72
+ }, [itemsPerPage]);
73
+
74
+ return (
75
+ <ScreenWrapper contentContainerStyle={styles.content}>
76
+ <Card>
77
+ <DataTable>
78
+ <DataTable.Header>
79
+ <DataTable.Title
80
+ sortDirection={sortAscending ? 'ascending' : 'descending'}
81
+ onPress={() => setSortAscending(!sortAscending)}
82
+ style={styles.first}
83
+ >
84
+ Dessert
85
+ </DataTable.Title>
86
+ <DataTable.Title numberOfLines={2} numeric>
87
+ Calories per piece
88
+ </DataTable.Title>
89
+ <DataTable.Title numeric>Fat (g)</DataTable.Title>
90
+ </DataTable.Header>
91
+
92
+ {sortedItems.slice(from, to).map((item) => (
93
+ <DataTable.Row key={item.key}>
94
+ <DataTable.Cell style={styles.first}>{item.name}</DataTable.Cell>
95
+ <DataTable.Cell numeric>{item.calories}</DataTable.Cell>
96
+ <DataTable.Cell numeric>{item.fat}</DataTable.Cell>
97
+ </DataTable.Row>
98
+ ))}
99
+
100
+ <DataTable.Pagination
101
+ page={page}
102
+ numberOfPages={Math.ceil(sortedItems.length / itemsPerPage)}
103
+ onPageChange={(page) => setPage(page)}
104
+ label={`${from + 1}-${to} of ${sortedItems.length}`}
105
+ numberOfItemsPerPageList={numberOfItemsPerPageList}
106
+ numberOfItemsPerPage={itemsPerPage}
107
+ onItemsPerPageChange={onItemsPerPageChange}
108
+ showFastPaginationControls
109
+ selectPageDropdownLabel={'Rows per page'}
110
+ />
111
+ </DataTable>
112
+ </Card>
113
+ </ScreenWrapper>
114
+ );
115
+ };
116
+
117
+ DataTableExample.title = 'Data Table';
118
+
119
+ const styles = StyleSheet.create({
120
+ content: {
121
+ padding: 8,
122
+ },
123
+ first: {
124
+ flex: 2,
125
+ },
126
+ });
127
+
128
+ export default DataTableExample;
@@ -0,0 +1,131 @@
1
+ import * as React from 'react';
2
+ import { Platform, StyleSheet } from 'react-native';
3
+
4
+ import { Button } from 'react-native-paper';
5
+
6
+ import {
7
+ DialogWithCustomColors,
8
+ DialogWithDismissableBackButton,
9
+ DialogWithIcon,
10
+ DialogWithLoadingIndicator,
11
+ DialogWithLongText,
12
+ DialogWithRadioBtns,
13
+ UndismissableDialog,
14
+ } from './Dialogs';
15
+ import { useExampleTheme } from '..';
16
+ import ScreenWrapper from '../ScreenWrapper';
17
+
18
+ type ButtonVisibility = {
19
+ [key: string]: boolean | undefined;
20
+ };
21
+
22
+ const DialogExample = () => {
23
+ const [visible, setVisible] = React.useState<ButtonVisibility>({});
24
+ const { isV3 } = useExampleTheme();
25
+
26
+ const _toggleDialog = (name: string) => () =>
27
+ setVisible({ ...visible, [name]: !visible[name] });
28
+
29
+ const _getVisible = (name: string) => !!visible[name];
30
+
31
+ return (
32
+ <ScreenWrapper style={styles.container}>
33
+ <Button
34
+ mode="outlined"
35
+ onPress={_toggleDialog('dialog1')}
36
+ style={styles.button}
37
+ >
38
+ Long text
39
+ </Button>
40
+ <Button
41
+ mode="outlined"
42
+ onPress={_toggleDialog('dialog2')}
43
+ style={styles.button}
44
+ >
45
+ Radio buttons
46
+ </Button>
47
+ <Button
48
+ mode="outlined"
49
+ onPress={_toggleDialog('dialog3')}
50
+ style={styles.button}
51
+ >
52
+ Progress indicator
53
+ </Button>
54
+ <Button
55
+ mode="outlined"
56
+ onPress={_toggleDialog('dialog4')}
57
+ style={styles.button}
58
+ >
59
+ Undismissable Dialog
60
+ </Button>
61
+ <Button
62
+ mode="outlined"
63
+ onPress={_toggleDialog('dialog5')}
64
+ style={styles.button}
65
+ >
66
+ Custom colors
67
+ </Button>
68
+ {isV3 && (
69
+ <Button
70
+ mode="outlined"
71
+ onPress={_toggleDialog('dialog6')}
72
+ style={styles.button}
73
+ >
74
+ With icon
75
+ </Button>
76
+ )}
77
+ {Platform.OS === 'android' && (
78
+ <Button
79
+ mode="outlined"
80
+ onPress={_toggleDialog('dialog7')}
81
+ style={styles.button}
82
+ >
83
+ Dismissable back button
84
+ </Button>
85
+ )}
86
+ <DialogWithLongText
87
+ visible={_getVisible('dialog1')}
88
+ close={_toggleDialog('dialog1')}
89
+ />
90
+ <DialogWithRadioBtns
91
+ visible={_getVisible('dialog2')}
92
+ close={_toggleDialog('dialog2')}
93
+ />
94
+ <DialogWithLoadingIndicator
95
+ visible={_getVisible('dialog3')}
96
+ close={_toggleDialog('dialog3')}
97
+ />
98
+ <UndismissableDialog
99
+ visible={_getVisible('dialog4')}
100
+ close={_toggleDialog('dialog4')}
101
+ />
102
+ <DialogWithCustomColors
103
+ visible={_getVisible('dialog5')}
104
+ close={_toggleDialog('dialog5')}
105
+ />
106
+ {isV3 && (
107
+ <DialogWithIcon
108
+ visible={_getVisible('dialog6')}
109
+ close={_toggleDialog('dialog6')}
110
+ />
111
+ )}
112
+ <DialogWithDismissableBackButton
113
+ visible={_getVisible('dialog7')}
114
+ close={_toggleDialog('dialog7')}
115
+ />
116
+ </ScreenWrapper>
117
+ );
118
+ };
119
+
120
+ DialogExample.title = 'Dialog';
121
+
122
+ const styles = StyleSheet.create({
123
+ container: {
124
+ padding: 12,
125
+ },
126
+ button: {
127
+ margin: 4,
128
+ },
129
+ });
130
+
131
+ export default DialogExample;
@@ -0,0 +1,31 @@
1
+ import * as React from 'react';
2
+
3
+ import {
4
+ Paragraph,
5
+ Subheading,
6
+ Text as NativeText,
7
+ Text,
8
+ } from 'react-native-paper';
9
+
10
+ import { useExampleTheme } from '../..';
11
+
12
+ type Props = React.ComponentProps<typeof NativeText> & {
13
+ isSubheading?: boolean;
14
+ };
15
+
16
+ export const TextComponent = ({ isSubheading = false, ...props }: Props) => {
17
+ const theme = useExampleTheme();
18
+
19
+ if (theme.isV3) {
20
+ return (
21
+ <Text
22
+ variant={isSubheading ? 'bodyLarge' : 'bodyMedium'}
23
+ style={{ color: theme.colors.onSurfaceVariant }}
24
+ {...props}
25
+ />
26
+ );
27
+ } else if (isSubheading) {
28
+ return <Subheading {...props} />;
29
+ }
30
+ return <Paragraph {...props} />;
31
+ };
@@ -0,0 +1,57 @@
1
+ import * as React from 'react';
2
+
3
+ import {
4
+ Button,
5
+ Portal,
6
+ Dialog,
7
+ MD2Colors,
8
+ MD3Colors,
9
+ } from 'react-native-paper';
10
+
11
+ import { TextComponent } from './DialogTextComponent';
12
+ import { useExampleTheme } from '../..';
13
+
14
+ const DialogWithCustomColors = ({
15
+ visible,
16
+ close,
17
+ }: {
18
+ visible: boolean;
19
+ close: () => void;
20
+ }) => {
21
+ const { isV3 } = useExampleTheme();
22
+
23
+ return (
24
+ <Portal>
25
+ <Dialog
26
+ onDismiss={close}
27
+ style={{
28
+ backgroundColor: isV3 ? MD3Colors.primary10 : MD2Colors.purple900,
29
+ }}
30
+ visible={visible}
31
+ >
32
+ <Dialog.Title
33
+ style={{ color: isV3 ? MD3Colors.primary95 : MD2Colors.white }}
34
+ >
35
+ Alert
36
+ </Dialog.Title>
37
+ <Dialog.Content>
38
+ <TextComponent
39
+ style={{ color: isV3 ? MD3Colors.primary95 : MD2Colors.white }}
40
+ >
41
+ This is a dialog with custom colors
42
+ </TextComponent>
43
+ </Dialog.Content>
44
+ <Dialog.Actions>
45
+ <Button
46
+ color={isV3 ? MD3Colors.primary95 : MD2Colors.white}
47
+ onPress={close}
48
+ >
49
+ Ok
50
+ </Button>
51
+ </Dialog.Actions>
52
+ </Dialog>
53
+ </Portal>
54
+ );
55
+ };
56
+
57
+ export default DialogWithCustomColors;
@@ -0,0 +1,38 @@
1
+ import * as React from 'react';
2
+
3
+ import { Button, Portal, Dialog, MD2Colors } from 'react-native-paper';
4
+
5
+ import { TextComponent } from './DialogTextComponent';
6
+
7
+ const DialogWithDismissableBackButton = ({
8
+ visible,
9
+ close,
10
+ }: {
11
+ visible: boolean;
12
+ close: () => void;
13
+ }) => (
14
+ <Portal>
15
+ <Dialog
16
+ onDismiss={close}
17
+ visible={visible}
18
+ dismissable={false}
19
+ dismissableBackButton
20
+ >
21
+ <Dialog.Title>Alert</Dialog.Title>
22
+ <Dialog.Content>
23
+ <TextComponent>
24
+ This is an undismissable dialog, however you can use hardware back
25
+ button to close it!
26
+ </TextComponent>
27
+ </Dialog.Content>
28
+ <Dialog.Actions>
29
+ <Button color={MD2Colors.teal500} disabled>
30
+ Disagree
31
+ </Button>
32
+ <Button onPress={close}>Agree</Button>
33
+ </Dialog.Actions>
34
+ </Dialog>
35
+ </Portal>
36
+ );
37
+
38
+ export default DialogWithDismissableBackButton;
@@ -0,0 +1,42 @@
1
+ import * as React from 'react';
2
+ import { StyleSheet } from 'react-native';
3
+
4
+ import { Button, Portal, Dialog, MD3Colors } from 'react-native-paper';
5
+
6
+ import { TextComponent } from './DialogTextComponent';
7
+
8
+ const DialogWithIcon = ({
9
+ visible,
10
+ close,
11
+ }: {
12
+ visible: boolean;
13
+ close: () => void;
14
+ }) => {
15
+ return (
16
+ <Portal>
17
+ <Dialog onDismiss={close} visible={visible}>
18
+ <Dialog.Icon icon="alert" />
19
+ <Dialog.Title style={styles.title}>Dialog with Icon</Dialog.Title>
20
+ <Dialog.Content>
21
+ <TextComponent>
22
+ This is a dialog with new component called DialogIcon. When icon is
23
+ displayed you should center the header.
24
+ </TextComponent>
25
+ </Dialog.Content>
26
+ <Dialog.Actions>
27
+ <Button onPress={close} color={MD3Colors.error50}>
28
+ Disagree
29
+ </Button>
30
+ <Button onPress={close}>Agree</Button>
31
+ </Dialog.Actions>
32
+ </Dialog>
33
+ </Portal>
34
+ );
35
+ };
36
+
37
+ const styles = StyleSheet.create({
38
+ title: {
39
+ textAlign: 'center',
40
+ },
41
+ });
42
+ export default DialogWithIcon;
@@ -0,0 +1,48 @@
1
+ import * as React from 'react';
2
+ import { ActivityIndicator, Platform, StyleSheet, View } from 'react-native';
3
+
4
+ import { Dialog, MD2Colors, MD3Colors, Portal } from 'react-native-paper';
5
+
6
+ import { TextComponent } from './DialogTextComponent';
7
+ import { useExampleTheme } from '../..';
8
+
9
+ const isIOS = Platform.OS === 'ios';
10
+
11
+ const DialogWithLoadingIndicator = ({
12
+ visible,
13
+ close,
14
+ }: {
15
+ visible: boolean;
16
+ close: () => void;
17
+ }) => {
18
+ const { isV3 } = useExampleTheme();
19
+ return (
20
+ <Portal>
21
+ <Dialog onDismiss={close} visible={visible}>
22
+ <Dialog.Title>Progress Dialog</Dialog.Title>
23
+ <Dialog.Content>
24
+ <View style={styles.flexing}>
25
+ <ActivityIndicator
26
+ color={isV3 ? MD3Colors.tertiary30 : MD2Colors.indigo500}
27
+ size={isIOS ? 'large' : 48}
28
+ style={styles.marginRight}
29
+ />
30
+ <TextComponent>Loading.....</TextComponent>
31
+ </View>
32
+ </Dialog.Content>
33
+ </Dialog>
34
+ </Portal>
35
+ );
36
+ };
37
+
38
+ const styles = StyleSheet.create({
39
+ flexing: {
40
+ flexDirection: 'row',
41
+ alignItems: 'center',
42
+ },
43
+ marginRight: {
44
+ marginRight: 16,
45
+ },
46
+ });
47
+
48
+ export default DialogWithLoadingIndicator;
@@ -0,0 +1,81 @@
1
+ import * as React from 'react';
2
+ import { Dimensions, ScrollView, StyleSheet } from 'react-native';
3
+
4
+ import { Button, Portal, Dialog } from 'react-native-paper';
5
+
6
+ import { TextComponent } from './DialogTextComponent';
7
+
8
+ const DialogWithLongText = ({
9
+ visible,
10
+ close,
11
+ }: {
12
+ visible: boolean;
13
+ close: () => void;
14
+ }) => (
15
+ <Portal>
16
+ <Dialog
17
+ onDismiss={close}
18
+ visible={visible}
19
+ style={{ maxHeight: 0.6 * Dimensions.get('window').height }}
20
+ >
21
+ <Dialog.Title>Alert</Dialog.Title>
22
+ <Dialog.ScrollArea style={styles.smallPadding}>
23
+ <ScrollView contentContainerStyle={styles.biggerPadding}>
24
+ <TextComponent>
25
+ Material is the metaphor
26
+ {'\n'}
27
+ {'\n'}A material metaphor is the unifying theory of a rationalized
28
+ space and a system of motion. The material is grounded in tactile
29
+ reality, inspired by the study of paper and ink, yet technologically
30
+ advanced and open to imagination and magic.
31
+ {'\n'}
32
+ {'\n'}
33
+ Surfaces and edges of the material provide visual cues that are
34
+ grounded in reality. The use of familiar tactile attributes helps
35
+ users quickly understand affordances. Yet the flexibility of the
36
+ material creates new affordances that supersede those in the
37
+ physical world, without breaking the rules of physics.
38
+ {'\n'}
39
+ {'\n'}
40
+ The fundamentals of light, surface, and movement are key to
41
+ conveying how objects move, interact, and exist in space and in
42
+ relation to each other. Realistic lighting shows seams, divides
43
+ space, and indicates moving parts.
44
+ {'\n'}
45
+ {'\n'}A material metaphor is the unifying theory of a rationalized
46
+ space and a system of motion. The material is grounded in tactile
47
+ reality, inspired by the study of paper and ink, yet technologically
48
+ advanced and open to imagination and magic.
49
+ {'\n'}
50
+ {'\n'}
51
+ Surfaces and edges of the material provide visual cues that are
52
+ grounded in reality. The use of familiar tactile attributes helps
53
+ users quickly understand affordances. Yet the flexibility of the
54
+ material creates new affordances that supersede those in the
55
+ physical world, without breaking the rules of physics.
56
+ {'\n'}
57
+ {'\n'}
58
+ The fundamentals of light, surface, and movement are key to
59
+ conveying how objects move, interact, and exist in space and in
60
+ relation to each other. Realistic lighting shows seams, divides
61
+ space, and indicates moving parts.
62
+ </TextComponent>
63
+ </ScrollView>
64
+ </Dialog.ScrollArea>
65
+ <Dialog.Actions>
66
+ <Button onPress={close}>Ok</Button>
67
+ </Dialog.Actions>
68
+ </Dialog>
69
+ </Portal>
70
+ );
71
+
72
+ const styles = StyleSheet.create({
73
+ smallPadding: {
74
+ paddingHorizontal: 0,
75
+ },
76
+ biggerPadding: {
77
+ paddingHorizontal: 24,
78
+ },
79
+ });
80
+
81
+ export default DialogWithLongText;
@@ -0,0 +1,111 @@
1
+ import * as React from 'react';
2
+ import { ScrollView, View, StyleSheet } from 'react-native';
3
+
4
+ import {
5
+ Button,
6
+ Portal,
7
+ Dialog,
8
+ RadioButton,
9
+ TouchableRipple,
10
+ } from 'react-native-paper';
11
+
12
+ import { TextComponent } from './DialogTextComponent';
13
+
14
+ type Props = {
15
+ visible: boolean;
16
+ close: () => void;
17
+ };
18
+
19
+ type CheckedState = 'normal' | 'first' | 'second' | 'third' | 'fourth';
20
+
21
+ const DialogWithRadioBtns = ({ visible, close }: Props) => {
22
+ const [checked, setChecked] = React.useState<CheckedState>('normal');
23
+
24
+ return (
25
+ <Portal>
26
+ <Dialog onDismiss={close} visible={visible}>
27
+ <Dialog.Title>Choose an option</Dialog.Title>
28
+ <Dialog.ScrollArea style={styles.container}>
29
+ <ScrollView>
30
+ <View>
31
+ <TouchableRipple onPress={() => setChecked('normal')}>
32
+ <View style={styles.row}>
33
+ <View pointerEvents="none">
34
+ <RadioButton
35
+ value="normal"
36
+ status={checked === 'normal' ? 'checked' : 'unchecked'}
37
+ />
38
+ </View>
39
+ <TextComponent isSubheading style={styles.text}>
40
+ Option 1
41
+ </TextComponent>
42
+ </View>
43
+ </TouchableRipple>
44
+ <TouchableRipple onPress={() => setChecked('second')}>
45
+ <View style={styles.row}>
46
+ <View pointerEvents="none">
47
+ <RadioButton
48
+ value="second"
49
+ status={checked === 'second' ? 'checked' : 'unchecked'}
50
+ />
51
+ </View>
52
+ <TextComponent isSubheading style={styles.text}>
53
+ Option 2
54
+ </TextComponent>
55
+ </View>
56
+ </TouchableRipple>
57
+ <TouchableRipple onPress={() => setChecked('third')}>
58
+ <View style={styles.row}>
59
+ <View pointerEvents="none">
60
+ <RadioButton
61
+ value="third"
62
+ status={checked === 'third' ? 'checked' : 'unchecked'}
63
+ />
64
+ </View>
65
+ <TextComponent isSubheading style={styles.text}>
66
+ Option 3
67
+ </TextComponent>
68
+ </View>
69
+ </TouchableRipple>
70
+ <TouchableRipple onPress={() => setChecked('fourth')}>
71
+ <View style={styles.row}>
72
+ <View pointerEvents="none">
73
+ <RadioButton
74
+ value="fourth"
75
+ status={checked === 'fourth' ? 'checked' : 'unchecked'}
76
+ />
77
+ </View>
78
+ <TextComponent isSubheading style={styles.text}>
79
+ Option 4
80
+ </TextComponent>
81
+ </View>
82
+ </TouchableRipple>
83
+ </View>
84
+ </ScrollView>
85
+ </Dialog.ScrollArea>
86
+ <Dialog.Actions>
87
+ <Button onPress={close}>Cancel</Button>
88
+ <Button onPress={close}>Ok</Button>
89
+ </Dialog.Actions>
90
+ </Dialog>
91
+ </Portal>
92
+ );
93
+ };
94
+
95
+ export default DialogWithRadioBtns;
96
+
97
+ const styles = StyleSheet.create({
98
+ container: {
99
+ maxHeight: 170,
100
+ paddingHorizontal: 0,
101
+ },
102
+ row: {
103
+ flexDirection: 'row',
104
+ alignItems: 'center',
105
+ paddingHorizontal: 16,
106
+ paddingVertical: 8,
107
+ },
108
+ text: {
109
+ paddingLeft: 8,
110
+ },
111
+ });
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+
3
+ import { Button, Portal, Dialog, MD2Colors } from 'react-native-paper';
4
+
5
+ import { TextComponent } from './DialogTextComponent';
6
+
7
+ const UndismissableDialog = ({
8
+ visible,
9
+ close,
10
+ }: {
11
+ visible: boolean;
12
+ close: () => void;
13
+ }) => (
14
+ <Portal>
15
+ <Dialog onDismiss={close} visible={visible} dismissable={false}>
16
+ <Dialog.Title>Alert</Dialog.Title>
17
+ <Dialog.Content>
18
+ <TextComponent>This is an undismissable dialog!!</TextComponent>
19
+ </Dialog.Content>
20
+ <Dialog.Actions>
21
+ <Button color={MD2Colors.teal500} disabled>
22
+ Disagree
23
+ </Button>
24
+ <Button onPress={close}>Agree</Button>
25
+ </Dialog.Actions>
26
+ </Dialog>
27
+ </Portal>
28
+ );
29
+
30
+ export default UndismissableDialog;