react-native-acoustic-connect 19.0.9 → 19.0.28
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.
- package/CHANGELOG.md +91 -0
- package/ConnectConfig.example.json +1 -1
- package/README.md +390 -1
- package/android/build.gradle +86 -3
- package/android/config.gradle +137 -13
- package/android/src/main/assets/ConnectAdvancedConfig.json +1 -1
- package/android/src/main/java/com/acousticconnectrn/HybridAcousticConnectRN.kt +407 -34
- package/app.plugin.js +2 -2
- package/ios/AcousticConnectRNConfig.json +2 -2
- package/ios/ConnectRNParsing.swift +229 -0
- package/ios/HybridAcousticConnectRN.swift +290 -30
- package/lib/commonjs/TLTRN.js +116 -3
- package/lib/commonjs/TLTRN.js.map +1 -1
- package/lib/commonjs/components/Connect.js +145 -27
- package/lib/commonjs/components/Connect.js.map +1 -1
- package/lib/commonjs/index.js +3 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/TLTRN.js +116 -3
- package/lib/module/TLTRN.js.map +1 -1
- package/lib/module/components/Connect.js +146 -28
- package/lib/module/components/Connect.js.map +1 -1
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/TLTRN.d.ts +85 -1
- package/lib/typescript/src/TLTRN.d.ts.map +1 -1
- package/lib/typescript/src/components/Connect.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts +178 -10
- package/lib/typescript/src/specs/react-native-acoustic-connect.nitro.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridAcousticConnectRNSpec.cpp +5 -9
- package/nitrogen/generated/android/c++/JHybridAcousticConnectRNSpec.hpp +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/acousticconnectrn/HybridAcousticConnectRNSpec.kt +2 -1
- package/nitrogen/generated/ios/AcousticConnectRN-Swift-Cxx-Umbrella.hpp +1 -0
- package/nitrogen/generated/ios/c++/HybridAcousticConnectRNSpecSwift.hpp +2 -1
- package/nitrogen/generated/ios/swift/HybridAcousticConnectRNSpec.swift +1 -1
- package/nitrogen/generated/ios/swift/HybridAcousticConnectRNSpec_cxx.swift +2 -25
- package/nitrogen/generated/shared/c++/HybridAcousticConnectRNSpec.hpp +2 -1
- package/package.json +4 -7
- package/plugin/build/withConnectAndroidConfig.d.ts +2 -2
- package/plugin/build/withConnectAndroidConfig.js +2 -2
- package/plugin/build/withConnectIosSigning.d.ts +1 -1
- package/plugin/build/withConnectIosSigning.js +1 -1
- package/plugin/src/withConnectAndroidConfig.ts +2 -2
- package/plugin/src/withConnectIosSigning.ts +1 -1
- package/scripts/gradleParser.js +1 -1
- package/src/TLTRN.ts +125 -4
- package/src/components/Connect.tsx +150 -27
- package/src/index.ts +5 -0
- package/src/specs/react-native-acoustic-connect.nitro.ts +180 -10
- package/Examples/SampleUI/.bundle/config +0 -2
- package/Examples/SampleUI/.detoxrc.js +0 -83
- package/Examples/SampleUI/.eslintrc.js +0 -4
- package/Examples/SampleUI/.prettierrc.js +0 -7
- package/Examples/SampleUI/.watchmanconfig +0 -1
- package/Examples/SampleUI/App.js +0 -1
- package/Examples/SampleUI/Gemfile +0 -10
- package/Examples/SampleUI/Gemfile.lock +0 -121
- package/Examples/SampleUI/README.md +0 -79
- package/Examples/SampleUI/__tests__/App.test.tsx +0 -17
- package/Examples/SampleUI/android/app/build.gradle +0 -129
- package/Examples/SampleUI/android/app/debug.keystore +0 -0
- package/Examples/SampleUI/android/app/proguard-rules.pro +0 -10
- package/Examples/SampleUI/android/app/src/debug/AndroidManifest.xml +0 -9
- package/Examples/SampleUI/android/app/src/main/AndroidManifest.xml +0 -31
- package/Examples/SampleUI/android/app/src/main/java/com/sampleui/MainActivity.kt +0 -30
- package/Examples/SampleUI/android/app/src/main/java/com/sampleui/MainApplication.kt +0 -53
- package/Examples/SampleUI/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -37
- package/Examples/SampleUI/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/Examples/SampleUI/android/app/src/main/res/values/strings.xml +0 -3
- package/Examples/SampleUI/android/app/src/main/res/values/styles.xml +0 -9
- package/Examples/SampleUI/android/build.gradle +0 -21
- package/Examples/SampleUI/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/Examples/SampleUI/android/gradle/wrapper/gradle-wrapper.properties +0 -7
- package/Examples/SampleUI/android/gradle.properties +0 -39
- package/Examples/SampleUI/android/gradlew +0 -252
- package/Examples/SampleUI/android/gradlew.bat +0 -94
- package/Examples/SampleUI/android/settings.gradle +0 -21
- package/Examples/SampleUI/app.json +0 -51
- package/Examples/SampleUI/assets/fonts/Abel-Regular.ttf +0 -0
- package/Examples/SampleUI/assets/fonts/NotoSans-Regular.ttf +0 -0
- package/Examples/SampleUI/assets/images/android-icon.png +0 -0
- package/Examples/SampleUI/assets/images/artist-1.jpg +0 -0
- package/Examples/SampleUI/assets/images/artist-2.jpg +0 -0
- package/Examples/SampleUI/assets/images/avatar.png +0 -0
- package/Examples/SampleUI/assets/images/beach.jpg +0 -0
- package/Examples/SampleUI/assets/images/bridge.jpg +0 -0
- package/Examples/SampleUI/assets/images/chameleon.jpg +0 -0
- package/Examples/SampleUI/assets/images/city.jpg +0 -0
- package/Examples/SampleUI/assets/images/email-icon.png +0 -0
- package/Examples/SampleUI/assets/images/favorite.png +0 -0
- package/Examples/SampleUI/assets/images/forest.jpg +0 -0
- package/Examples/SampleUI/assets/images/paper-icon.png +0 -0
- package/Examples/SampleUI/assets/images/players-2.jpg +0 -0
- package/Examples/SampleUI/assets/images/players.jpg +0 -0
- package/Examples/SampleUI/assets/images/restaurant-1.jpg +0 -0
- package/Examples/SampleUI/assets/images/restaurant-2.jpg +0 -0
- package/Examples/SampleUI/assets/images/song-1.jpg +0 -0
- package/Examples/SampleUI/assets/images/song-2.jpg +0 -0
- package/Examples/SampleUI/assets/images/splash.png +0 -0
- package/Examples/SampleUI/assets/images/strawberries.jpg +0 -0
- package/Examples/SampleUI/assets/images/wrecked-ship.jpg +0 -0
- package/Examples/SampleUI/assets/styles/fonts.css +0 -47
- package/Examples/SampleUI/babel.config.js +0 -22
- package/Examples/SampleUI/index.js +0 -9
- package/Examples/SampleUI/ios/.xcode.env +0 -11
- package/Examples/SampleUI/ios/Podfile +0 -71
- package/Examples/SampleUI/ios/Podfile.lock +0 -2276
- package/Examples/SampleUI/ios/SampleUI/AppDelegate.h +0 -7
- package/Examples/SampleUI/ios/SampleUI/AppDelegate.mm +0 -31
- package/Examples/SampleUI/ios/SampleUI/Images.xcassets/AppIcon.appiconset/Contents.json +0 -53
- package/Examples/SampleUI/ios/SampleUI/Images.xcassets/Contents.json +0 -6
- package/Examples/SampleUI/ios/SampleUI/Info.plist +0 -52
- package/Examples/SampleUI/ios/SampleUI/LaunchScreen.storyboard +0 -47
- package/Examples/SampleUI/ios/SampleUI/PrivacyInfo.xcprivacy +0 -48
- package/Examples/SampleUI/ios/SampleUI/main.m +0 -10
- package/Examples/SampleUI/ios/SampleUI.xcodeproj/project.pbxproj +0 -785
- package/Examples/SampleUI/ios/SampleUI.xcodeproj/xcshareddata/xcschemes/SampleUI.xcscheme +0 -105
- package/Examples/SampleUI/ios/SampleUI.xcworkspace/contents.xcworkspacedata +0 -10
- package/Examples/SampleUI/ios/SampleUITests/Info.plist +0 -24
- package/Examples/SampleUI/ios/SampleUITests/SampleUITests.m +0 -66
- package/Examples/SampleUI/jest.config.js +0 -3
- package/Examples/SampleUI/metro.config.js +0 -54
- package/Examples/SampleUI/package.json +0 -65
- package/Examples/SampleUI/scripts/integration-test-android.sh +0 -292
- package/Examples/SampleUI/src/DrawerItems.tsx +0 -322
- package/Examples/SampleUI/src/ExampleList.tsx +0 -175
- package/Examples/SampleUI/src/Examples/ActivityIndicatorExample.tsx +0 -73
- package/Examples/SampleUI/src/Examples/AnimatedFABExample/AnimatedFABExample.tsx +0 -220
- package/Examples/SampleUI/src/Examples/AnimatedFABExample/CustomFAB.tsx +0 -70
- package/Examples/SampleUI/src/Examples/AnimatedFABExample/CustomFABControls.tsx +0 -146
- package/Examples/SampleUI/src/Examples/AnimatedFABExample/index.ts +0 -1
- package/Examples/SampleUI/src/Examples/AppbarExample.tsx +0 -263
- package/Examples/SampleUI/src/Examples/AvatarExample.tsx +0 -76
- package/Examples/SampleUI/src/Examples/BadgeExample.tsx +0 -97
- package/Examples/SampleUI/src/Examples/BannerExample.tsx +0 -152
- package/Examples/SampleUI/src/Examples/BottomNavigationBarExample.tsx +0 -94
- package/Examples/SampleUI/src/Examples/BottomNavigationExample.tsx +0 -205
- package/Examples/SampleUI/src/Examples/ButtonExample.tsx +0 -405
- package/Examples/SampleUI/src/Examples/CardExample.tsx +0 -245
- package/Examples/SampleUI/src/Examples/CheckboxExample.tsx +0 -87
- package/Examples/SampleUI/src/Examples/CheckboxItemExample.tsx +0 -72
- package/Examples/SampleUI/src/Examples/ChipExample.tsx +0 -432
- package/Examples/SampleUI/src/Examples/DataTableExample.tsx +0 -128
- package/Examples/SampleUI/src/Examples/DialogExample.tsx +0 -217
- package/Examples/SampleUI/src/Examples/Dialogs/DialogTextComponent.tsx +0 -31
- package/Examples/SampleUI/src/Examples/Dialogs/DialogTrackingTest.tsx +0 -307
- package/Examples/SampleUI/src/Examples/Dialogs/DialogWithCustomColors.tsx +0 -57
- package/Examples/SampleUI/src/Examples/Dialogs/DialogWithDismissableBackButton.tsx +0 -38
- package/Examples/SampleUI/src/Examples/Dialogs/DialogWithIcon.tsx +0 -42
- package/Examples/SampleUI/src/Examples/Dialogs/DialogWithLoadingIndicator.tsx +0 -48
- package/Examples/SampleUI/src/Examples/Dialogs/DialogWithLongText.tsx +0 -81
- package/Examples/SampleUI/src/Examples/Dialogs/DialogWithRadioBtns.tsx +0 -111
- package/Examples/SampleUI/src/Examples/Dialogs/UndismissableDialog.tsx +0 -30
- package/Examples/SampleUI/src/Examples/Dialogs/index.tsx +0 -44
- package/Examples/SampleUI/src/Examples/DividerExample.tsx +0 -30
- package/Examples/SampleUI/src/Examples/FABExample.tsx +0 -226
- package/Examples/SampleUI/src/Examples/IconButtonExample.tsx +0 -230
- package/Examples/SampleUI/src/Examples/IconExample.tsx +0 -50
- package/Examples/SampleUI/src/Examples/ListAccordionExample.tsx +0 -65
- package/Examples/SampleUI/src/Examples/ListAccordionGroupExample.tsx +0 -80
- package/Examples/SampleUI/src/Examples/ListItemExample.tsx +0 -310
- package/Examples/SampleUI/src/Examples/ListSectionExample.tsx +0 -159
- package/Examples/SampleUI/src/Examples/MaterialBottomTabNavigatorExample.tsx +0 -87
- package/Examples/SampleUI/src/Examples/MenuExample.tsx +0 -211
- package/Examples/SampleUI/src/Examples/ProgressBarExample.tsx +0 -142
- package/Examples/SampleUI/src/Examples/RadioButtonExample.tsx +0 -104
- package/Examples/SampleUI/src/Examples/RadioButtonGroupExample.tsx +0 -67
- package/Examples/SampleUI/src/Examples/RadioButtonItemExample.tsx +0 -77
- package/Examples/SampleUI/src/Examples/SearchbarExample.tsx +0 -249
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonCustomColorCheck.tsx +0 -93
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonDefault.tsx +0 -49
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonDisabled.tsx +0 -47
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselect.tsx +0 -50
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselectIcons.tsx +0 -49
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonMultiselectRealCase.tsx +0 -114
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonOnlyIcons.tsx +0 -40
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonOnlyIconsWithCheck.tsx +0 -43
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonRealCase.tsx +0 -97
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonWithDensity.tsx +0 -47
- package/Examples/SampleUI/src/Examples/SegmentedButtons/SegmentedButtonWithSelectedCheck.tsx +0 -52
- package/Examples/SampleUI/src/Examples/SegmentedButtons/index.ts +0 -9
- package/Examples/SampleUI/src/Examples/SegmentedButtonsExample.tsx +0 -57
- package/Examples/SampleUI/src/Examples/SnackbarExample.tsx +0 -141
- package/Examples/SampleUI/src/Examples/SurfaceExample.tsx +0 -130
- package/Examples/SampleUI/src/Examples/SwitchExample.tsx +0 -105
- package/Examples/SampleUI/src/Examples/TeamDetails.tsx +0 -291
- package/Examples/SampleUI/src/Examples/TeamsList.tsx +0 -57
- package/Examples/SampleUI/src/Examples/TextExample.tsx +0 -132
- package/Examples/SampleUI/src/Examples/TextInputExample.tsx +0 -914
- package/Examples/SampleUI/src/Examples/ThemeExample.tsx +0 -41
- package/Examples/SampleUI/src/Examples/ThemingWithReactNavigation.tsx +0 -75
- package/Examples/SampleUI/src/Examples/ToggleButtonExample.tsx +0 -128
- package/Examples/SampleUI/src/Examples/TooltipExample.tsx +0 -191
- package/Examples/SampleUI/src/Examples/TouchableRippleExample.tsx +0 -37
- package/Examples/SampleUI/src/RootNavigator.tsx +0 -95
- package/Examples/SampleUI/src/ScreenWrapper.tsx +0 -67
- package/Examples/SampleUI/src/components/ActivityIndicator.tsx +0 -254
- package/Examples/SampleUI/src/components/Appbar/Appbar.tsx +0 -364
- package/Examples/SampleUI/src/components/Appbar/AppbarAction.tsx +0 -132
- package/Examples/SampleUI/src/components/Appbar/AppbarBackAction.tsx +0 -77
- package/Examples/SampleUI/src/components/Appbar/AppbarBackIcon.tsx +0 -52
- package/Examples/SampleUI/src/components/Appbar/AppbarContent.tsx +0 -249
- package/Examples/SampleUI/src/components/Appbar/AppbarHeader.tsx +0 -174
- package/Examples/SampleUI/src/components/Appbar/index.ts +0 -22
- package/Examples/SampleUI/src/components/Appbar/utils.ts +0 -188
- package/Examples/SampleUI/src/components/Avatar/Avatar.tsx +0 -8
- package/Examples/SampleUI/src/components/Avatar/AvatarIcon.tsx +0 -87
- package/Examples/SampleUI/src/components/Avatar/AvatarImage.tsx +0 -128
- package/Examples/SampleUI/src/components/Avatar/AvatarText.tsx +0 -127
- package/Examples/SampleUI/src/components/Badge.tsx +0 -138
- package/Examples/SampleUI/src/components/Banner.tsx +0 -302
- package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigation.tsx +0 -643
- package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigationBar.tsx +0 -1039
- package/Examples/SampleUI/src/components/BottomNavigation/BottomNavigationRouteScreen.tsx +0 -31
- package/Examples/SampleUI/src/components/BottomNavigation/utils.ts +0 -70
- package/Examples/SampleUI/src/components/Button/Button.tsx +0 -503
- package/Examples/SampleUI/src/components/Button/utils.tsx +0 -272
- package/Examples/SampleUI/src/components/Card/Card.tsx +0 -373
- package/Examples/SampleUI/src/components/Card/CardActions.tsx +0 -74
- package/Examples/SampleUI/src/components/Card/CardContent.tsx +0 -99
- package/Examples/SampleUI/src/components/Card/CardCover.tsx +0 -96
- package/Examples/SampleUI/src/components/Card/CardTitle.tsx +0 -236
- package/Examples/SampleUI/src/components/Card/utils.tsx +0 -110
- package/Examples/SampleUI/src/components/Checkbox/Checkbox.tsx +0 -78
- package/Examples/SampleUI/src/components/Checkbox/CheckboxAndroid.tsx +0 -180
- package/Examples/SampleUI/src/components/Checkbox/CheckboxIOS.tsx +0 -104
- package/Examples/SampleUI/src/components/Checkbox/CheckboxItem.tsx +0 -236
- package/Examples/SampleUI/src/components/Checkbox/index.ts +0 -19
- package/Examples/SampleUI/src/components/Checkbox/utils.ts +0 -183
- package/Examples/SampleUI/src/components/Chip/Chip.tsx +0 -513
- package/Examples/SampleUI/src/components/Chip/helpers.tsx +0 -322
- package/Examples/SampleUI/src/components/CrossFadeIcon.tsx +0 -140
- package/Examples/SampleUI/src/components/DataTable/DataTable.tsx +0 -138
- package/Examples/SampleUI/src/components/DataTable/DataTableCell.tsx +0 -132
- package/Examples/SampleUI/src/components/DataTable/DataTableHeader.tsx +0 -82
- package/Examples/SampleUI/src/components/DataTable/DataTablePagination.tsx +0 -407
- package/Examples/SampleUI/src/components/DataTable/DataTableRow.tsx +0 -107
- package/Examples/SampleUI/src/components/DataTable/DataTableTitle.tsx +0 -208
- package/Examples/SampleUI/src/components/Dialog/Dialog.tsx +0 -191
- package/Examples/SampleUI/src/components/Dialog/DialogActions.tsx +0 -94
- package/Examples/SampleUI/src/components/Dialog/DialogContent.tsx +0 -54
- package/Examples/SampleUI/src/components/Dialog/DialogIcon.tsx +0 -100
- package/Examples/SampleUI/src/components/Dialog/DialogScrollArea.tsx +0 -88
- package/Examples/SampleUI/src/components/Dialog/DialogTitle.tsx +0 -94
- package/Examples/SampleUI/src/components/Divider.tsx +0 -102
- package/Examples/SampleUI/src/components/Drawer/Drawer.tsx +0 -8
- package/Examples/SampleUI/src/components/Drawer/DrawerCollapsedItem.tsx +0 -282
- package/Examples/SampleUI/src/components/Drawer/DrawerItem.tsx +0 -209
- package/Examples/SampleUI/src/components/Drawer/DrawerSection.tsx +0 -138
- package/Examples/SampleUI/src/components/FAB/AnimatedFAB.tsx +0 -619
- package/Examples/SampleUI/src/components/FAB/FAB.tsx +0 -371
- package/Examples/SampleUI/src/components/FAB/FABGroup.tsx +0 -532
- package/Examples/SampleUI/src/components/FAB/index.ts +0 -13
- package/Examples/SampleUI/src/components/FAB/utils.ts +0 -474
- package/Examples/SampleUI/src/components/HelperText/HelperText.tsx +0 -168
- package/Examples/SampleUI/src/components/HelperText/utils.ts +0 -30
- package/Examples/SampleUI/src/components/Icon.tsx +0 -170
- package/Examples/SampleUI/src/components/IconButton/IconButton.tsx +0 -234
- package/Examples/SampleUI/src/components/IconButton/utils.ts +0 -190
- package/Examples/SampleUI/src/components/List/List.tsx +0 -20
- package/Examples/SampleUI/src/components/List/ListAccordion.tsx +0 -391
- package/Examples/SampleUI/src/components/List/ListAccordionGroup.tsx +0 -88
- package/Examples/SampleUI/src/components/List/ListIcon.tsx +0 -79
- package/Examples/SampleUI/src/components/List/ListImage.tsx +0 -89
- package/Examples/SampleUI/src/components/List/ListItem.tsx +0 -313
- package/Examples/SampleUI/src/components/List/ListSection.tsx +0 -87
- package/Examples/SampleUI/src/components/List/ListSubheader.tsx +0 -79
- package/Examples/SampleUI/src/components/List/utils.ts +0 -113
- package/Examples/SampleUI/src/components/MaterialCommunityIcon.tsx +0 -121
- package/Examples/SampleUI/src/components/Menu/Menu.tsx +0 -711
- package/Examples/SampleUI/src/components/Menu/MenuItem.tsx +0 -257
- package/Examples/SampleUI/src/components/Menu/utils.ts +0 -110
- package/Examples/SampleUI/src/components/Modal.tsx +0 -245
- package/Examples/SampleUI/src/components/Portal/Portal.tsx +0 -69
- package/Examples/SampleUI/src/components/Portal/PortalConsumer.tsx +0 -44
- package/Examples/SampleUI/src/components/Portal/PortalHost.tsx +0 -143
- package/Examples/SampleUI/src/components/Portal/PortalManager.tsx +0 -54
- package/Examples/SampleUI/src/components/ProgressBar.tsx +0 -292
- package/Examples/SampleUI/src/components/RadioButton/RadioButton.tsx +0 -86
- package/Examples/SampleUI/src/components/RadioButton/RadioButtonAndroid.tsx +0 -202
- package/Examples/SampleUI/src/components/RadioButton/RadioButtonGroup.tsx +0 -67
- package/Examples/SampleUI/src/components/RadioButton/RadioButtonIOS.tsx +0 -130
- package/Examples/SampleUI/src/components/RadioButton/RadioButtonItem.tsx +0 -268
- package/Examples/SampleUI/src/components/RadioButton/index.ts +0 -22
- package/Examples/SampleUI/src/components/RadioButton/utils.ts +0 -37
- package/Examples/SampleUI/src/components/Searchbar.tsx +0 -459
- package/Examples/SampleUI/src/components/SegmentedButtons/SegmentedButtonItem.tsx +0 -271
- package/Examples/SampleUI/src/components/SegmentedButtons/SegmentedButtons.tsx +0 -197
- package/Examples/SampleUI/src/components/SegmentedButtons/utils.ts +0 -179
- package/Examples/SampleUI/src/components/Snackbar.tsx +0 -430
- package/Examples/SampleUI/src/components/Surface.tsx +0 -376
- package/Examples/SampleUI/src/components/Switch/Switch.tsx +0 -108
- package/Examples/SampleUI/src/components/Switch/utils.ts +0 -113
- package/Examples/SampleUI/src/components/TextInput/Addons/Outline.tsx +0 -64
- package/Examples/SampleUI/src/components/TextInput/Addons/Underline.tsx +0 -78
- package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputAdornment.tsx +0 -208
- package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputAffix.tsx +0 -212
- package/Examples/SampleUI/src/components/TextInput/Adornment/TextInputIcon.tsx +0 -195
- package/Examples/SampleUI/src/components/TextInput/Adornment/enums.tsx +0 -12
- package/Examples/SampleUI/src/components/TextInput/Adornment/types.tsx +0 -11
- package/Examples/SampleUI/src/components/TextInput/Adornment/utils.ts +0 -48
- package/Examples/SampleUI/src/components/TextInput/Label/InputLabel.tsx +0 -217
- package/Examples/SampleUI/src/components/TextInput/Label/LabelBackground.tsx +0 -100
- package/Examples/SampleUI/src/components/TextInput/TextInput.tsx +0 -572
- package/Examples/SampleUI/src/components/TextInput/TextInputFlat.tsx +0 -475
- package/Examples/SampleUI/src/components/TextInput/TextInputOutlined.tsx +0 -450
- package/Examples/SampleUI/src/components/TextInput/constants.tsx +0 -48
- package/Examples/SampleUI/src/components/TextInput/helpers.tsx +0 -612
- package/Examples/SampleUI/src/components/TextInput/types.tsx +0 -155
- package/Examples/SampleUI/src/components/ToggleButton/ToggleButton.tsx +0 -187
- package/Examples/SampleUI/src/components/ToggleButton/ToggleButtonGroup.tsx +0 -72
- package/Examples/SampleUI/src/components/ToggleButton/ToggleButtonRow.tsx +0 -107
- package/Examples/SampleUI/src/components/ToggleButton/index.ts +0 -16
- package/Examples/SampleUI/src/components/ToggleButton/utils.ts +0 -26
- package/Examples/SampleUI/src/components/Tooltip/Tooltip.tsx +0 -249
- package/Examples/SampleUI/src/components/Tooltip/utils.ts +0 -129
- package/Examples/SampleUI/src/components/TouchableRipple/Pressable.tsx +0 -41
- package/Examples/SampleUI/src/components/TouchableRipple/TouchableRipple.native.tsx +0 -145
- package/Examples/SampleUI/src/components/TouchableRipple/TouchableRipple.tsx +0 -317
- package/Examples/SampleUI/src/components/TouchableRipple/utils.ts +0 -66
- package/Examples/SampleUI/src/components/Typography/AnimatedText.tsx +0 -107
- package/Examples/SampleUI/src/components/Typography/Text.tsx +0 -184
- package/Examples/SampleUI/src/components/Typography/types.tsx +0 -5
- package/Examples/SampleUI/src/components/Typography/v2/Caption.tsx +0 -50
- package/Examples/SampleUI/src/components/Typography/v2/Headline.tsx +0 -52
- package/Examples/SampleUI/src/components/Typography/v2/Paragraph.tsx +0 -49
- package/Examples/SampleUI/src/components/Typography/v2/StyledText.tsx +0 -56
- package/Examples/SampleUI/src/components/Typography/v2/Subheading.tsx +0 -50
- package/Examples/SampleUI/src/components/Typography/v2/Text.tsx +0 -62
- package/Examples/SampleUI/src/components/Typography/v2/Title.tsx +0 -49
- package/Examples/SampleUI/src/components/Typography/v2/index.ts +0 -5
- package/Examples/SampleUI/src/core/PaperProvider.tsx +0 -122
- package/Examples/SampleUI/src/core/SafeAreaProviderCompat.tsx +0 -65
- package/Examples/SampleUI/src/core/settings.tsx +0 -23
- package/Examples/SampleUI/src/core/theming.tsx +0 -170
- package/Examples/SampleUI/src/index.native.tsx +0 -285
- package/Examples/SampleUI/src/index.tsx +0 -226
- package/Examples/SampleUI/src/react-navigation/index.tsx +0 -19
- package/Examples/SampleUI/src/react-navigation/navigators/createMaterialBottomTabNavigator.tsx +0 -72
- package/Examples/SampleUI/src/react-navigation/types.tsx +0 -126
- package/Examples/SampleUI/src/react-navigation/views/MaterialBottomTabView.tsx +0 -140
- package/Examples/SampleUI/src/styles/__tests__/fonts.test.js +0 -290
- package/Examples/SampleUI/src/styles/fonts.tsx +0 -143
- package/Examples/SampleUI/src/styles/overlay.tsx +0 -70
- package/Examples/SampleUI/src/styles/shadow.tsx +0 -109
- package/Examples/SampleUI/src/styles/themes/index.ts +0 -4
- package/Examples/SampleUI/src/styles/themes/v2/DarkTheme.tsx +0 -30
- package/Examples/SampleUI/src/styles/themes/v2/LightTheme.tsx +0 -30
- package/Examples/SampleUI/src/styles/themes/v2/colors.tsx +0 -277
- package/Examples/SampleUI/src/styles/themes/v3/DarkTheme.tsx +0 -66
- package/Examples/SampleUI/src/styles/themes/v3/LightTheme.tsx +0 -69
- package/Examples/SampleUI/src/styles/themes/v3/tokens.tsx +0 -230
- package/Examples/SampleUI/src/utils/BackHandler/BackHandler.native.tsx +0 -3
- package/Examples/SampleUI/src/utils/BackHandler/BackHandler.tsx +0 -11
- package/Examples/SampleUI/src/utils/addEventListener.tsx +0 -56
- package/Examples/SampleUI/src/utils/forwardRef.tsx +0 -23
- package/Examples/SampleUI/src/utils/getContrastingColor.tsx +0 -15
- package/Examples/SampleUI/src/utils/hasTouchHandler.tsx +0 -23
- package/Examples/SampleUI/src/utils/roundLayoutSize.ts +0 -2
- package/Examples/SampleUI/src/utils/splitStyles.ts +0 -60
- package/Examples/SampleUI/src/utils/useAnimatedValue.tsx +0 -9
- package/Examples/SampleUI/src/utils/useAnimatedValueArray.tsx +0 -13
- package/Examples/SampleUI/src/utils/useIsKeyboardShown.tsx +0 -55
- package/Examples/SampleUI/src/utils/useLayout.tsx +0 -29
- package/Examples/SampleUI/src/utils/useLazyRef.tsx +0 -11
- package/Examples/SampleUI/tsconfig.json +0 -3
- package/Examples/SampleUI/utils/index.ts +0 -1426
- package/cli/__tests__/doctor.test.mjs +0 -88
|
@@ -104,6 +104,167 @@ internal enum ConnectRNParsing {
|
|
|
104
104
|
// PushErrorInfo is a C++-backed nitro type, and this file is also
|
|
105
105
|
// compiled into the UnitTests bundle, which builds without C++ interop.
|
|
106
106
|
|
|
107
|
+
/// `Connect` config keys that can carry an iOS layout-config block, in
|
|
108
|
+
/// **base-to-override order**: the shared block is the base, and the
|
|
109
|
+
/// iOS-specific block is layered on top of it.
|
|
110
|
+
///
|
|
111
|
+
/// `layoutConfigIos` is what the shipped `ConnectConfig.json` template
|
|
112
|
+
/// writes, and the podspec copies the consumer's file into the resource
|
|
113
|
+
/// bundle verbatim (no key rename), so that is the key that actually
|
|
114
|
+
/// arrives at runtime. `layoutConfig` is the shared, cross-platform block:
|
|
115
|
+
/// a consumer can set a common baseline there and refine it per platform.
|
|
116
|
+
///
|
|
117
|
+
/// `layoutConfigAndroid` is deliberately absent: applying it here would
|
|
118
|
+
/// push Android screen rules onto the iOS SDK.
|
|
119
|
+
static let layoutConfigKeys = ["layoutConfig", "layoutConfigIos"]
|
|
120
|
+
|
|
121
|
+
/// Entries of the layout-config block that map onto config-store overrides.
|
|
122
|
+
private static let layoutOverrideKeys = ["AutoLayout", "AppendMapIds"]
|
|
123
|
+
|
|
124
|
+
/// Recursively merges `override` onto `base`.
|
|
125
|
+
///
|
|
126
|
+
/// Nested objects merge key by key, so a shared baseline survives a
|
|
127
|
+
/// platform block that only refines part of it. Every other value —
|
|
128
|
+
/// including arrays such as `MaskIdList` — is replaced outright rather than
|
|
129
|
+
/// concatenated, so a platform block can shorten a shared list.
|
|
130
|
+
static func deepMerging(_ base: [String: Any], _ override: [String: Any]) -> [String: Any] {
|
|
131
|
+
var merged = base
|
|
132
|
+
for (key, overrideValue) in override {
|
|
133
|
+
if let baseChild = merged[key] as? [String: Any],
|
|
134
|
+
let overrideChild = overrideValue as? [String: Any] {
|
|
135
|
+
merged[key] = deepMerging(baseChild, overrideChild)
|
|
136
|
+
} else {
|
|
137
|
+
merged[key] = overrideValue
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return merged
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/// Resolves the iOS layout-config block into the config-store overrides to
|
|
144
|
+
/// apply, keyed by the name the native SDK reads. `AutoLayout` becomes
|
|
145
|
+
/// `kConfigurableItemAutoLayout`, which `TLFAutoInstrumentationManger`
|
|
146
|
+
/// consumes for per-screen settings such as `ScreenShot` and
|
|
147
|
+
/// `CaptureScreenshotOn`.
|
|
148
|
+
///
|
|
149
|
+
/// Both keys in ``layoutConfigKeys`` contribute: the shared `layoutConfig`
|
|
150
|
+
/// is applied first and `layoutConfigIos` is deep-merged over it, so an
|
|
151
|
+
/// iOS-specific value wins key by key while the shared baseline is kept for
|
|
152
|
+
/// everything the iOS block does not mention. A malformed block is logged
|
|
153
|
+
/// and skipped rather than aborting the rest of the resolution.
|
|
154
|
+
///
|
|
155
|
+
/// Returns an empty dictionary when nothing is applicable, in which case
|
|
156
|
+
/// the caller applies nothing and the SDK keeps the defaults from its own
|
|
157
|
+
/// bundled `ConnectLayoutConfig.json`.
|
|
158
|
+
static func resolveLayoutOverrides(from connectData: [String: Any]) -> [String: Any] {
|
|
159
|
+
var block: [String: Any] = [:]
|
|
160
|
+
var contributing: [String] = []
|
|
161
|
+
|
|
162
|
+
for name in layoutConfigKeys {
|
|
163
|
+
guard let value = connectData[name] else { continue }
|
|
164
|
+
guard let candidate = value as? [String: Any] else {
|
|
165
|
+
configLog.error("Connect.\(name, privacy: .public) in ConnectConfig.json is not a JSON object. Ignoring it; iOS screen-capture settings fall back to the SDK defaults.")
|
|
166
|
+
continue
|
|
167
|
+
}
|
|
168
|
+
block = deepMerging(block, candidate)
|
|
169
|
+
contributing.append(name)
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
guard !contributing.isEmpty else { return [:] }
|
|
173
|
+
|
|
174
|
+
var overrides: [String: Any] = [:]
|
|
175
|
+
for name in layoutOverrideKeys {
|
|
176
|
+
if let override = block[name] {
|
|
177
|
+
overrides[name] = override
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
let sources = contributing.joined(separator: " <- ")
|
|
182
|
+
if overrides.isEmpty {
|
|
183
|
+
configLog.warning("Connect.\(sources, privacy: .public) carries no recognised override (expected AutoLayout and/or AppendMapIds). iOS screen-capture settings fall back to the SDK defaults.")
|
|
184
|
+
} else {
|
|
185
|
+
let applied = overrides.keys.sorted().joined(separator: ", ")
|
|
186
|
+
configLog.info("Applying layout overrides [\(applied, privacy: .public)] resolved from Connect.\(sources, privacy: .public)")
|
|
187
|
+
}
|
|
188
|
+
return overrides
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// MARK: - Capture-layout delay
|
|
192
|
+
|
|
193
|
+
/// Config-store key holding the resolved `AutoLayout` block. Spelled out
|
|
194
|
+
/// rather than taken from Tealeaf's `kConfigurableItemAutoLayout` macro
|
|
195
|
+
/// because the bridge deliberately links against `Connect` only — see the
|
|
196
|
+
/// note on `ConnectConfigStore`. Same string either way.
|
|
197
|
+
static let autoLayoutConfigKey = "AutoLayout"
|
|
198
|
+
|
|
199
|
+
/// Key holding the per-screen capture delay inside an `AutoLayout` rule.
|
|
200
|
+
/// The value is in **milliseconds** — the auto-instrumentation path
|
|
201
|
+
/// dispatches with `NSEC_PER_MSEC`, and `TLFAutoLayoutConfig` names its
|
|
202
|
+
/// property `delayInMS`.
|
|
203
|
+
private static let captureLayoutDelayKey = "CaptureLayoutDelay"
|
|
204
|
+
|
|
205
|
+
/// Rule names holding the settings that apply to every screen. The second
|
|
206
|
+
/// is the legacy spelling; the native SDK reads whichever is present, so
|
|
207
|
+
/// this does too.
|
|
208
|
+
private static let globalScreenSettingsKeys = ["GlobalScreenSettings", "IBMGlobalScreenSettings"]
|
|
209
|
+
|
|
210
|
+
/// Delay applied when nothing in the resolved `AutoLayout` block names one.
|
|
211
|
+
/// Matches `TLFAutoInstrumentationManger`'s own fallback.
|
|
212
|
+
static let defaultCaptureLayoutDelayMs: Double = 500
|
|
213
|
+
|
|
214
|
+
/// Resolves the `CaptureLayoutDelay` (milliseconds) that applies to
|
|
215
|
+
/// `name`, from the `AutoLayout` block the native SDK holds in its config
|
|
216
|
+
/// store.
|
|
217
|
+
///
|
|
218
|
+
/// Resolution mirrors `TLFAutoInstrumentationManger`: the global rule
|
|
219
|
+
/// supplies the baseline, and a rule named after the screen overrides it.
|
|
220
|
+
/// The JS wrapper looks the screen up by its React Navigation route name,
|
|
221
|
+
/// which is the key `ConnectConfig.json`'s `layoutConfig`/`layoutConfigIos`
|
|
222
|
+
/// blocks are written against.
|
|
223
|
+
///
|
|
224
|
+
/// Returns ``defaultCaptureLayoutDelayMs`` when the block is missing,
|
|
225
|
+
/// malformed, or names no delay — never a value that would make the caller
|
|
226
|
+
/// silently skip the deferral it asked for.
|
|
227
|
+
static func captureLayoutDelayMs(for name: String, in autoLayout: [String: Any]?) -> Double {
|
|
228
|
+
guard let autoLayout else { return defaultCaptureLayoutDelayMs }
|
|
229
|
+
|
|
230
|
+
if let screenDelay = delayValue(in: autoLayout[name]) {
|
|
231
|
+
return screenDelay
|
|
232
|
+
}
|
|
233
|
+
for key in globalScreenSettingsKeys {
|
|
234
|
+
if let globalDelay = delayValue(in: autoLayout[key]) {
|
|
235
|
+
return globalDelay
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return defaultCaptureLayoutDelayMs
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/// Pulls `CaptureLayoutDelay` out of one `AutoLayout` rule. `nil` means
|
|
242
|
+
/// "this rule says nothing about the delay", which is what lets the caller
|
|
243
|
+
/// fall through to the next source rather than treating a missing rule as
|
|
244
|
+
/// an explicit zero.
|
|
245
|
+
private static func delayValue(in rule: Any?) -> Double? {
|
|
246
|
+
guard let rule = rule as? [String: Any] else { return nil }
|
|
247
|
+
guard let raw = rule[captureLayoutDelayKey] else { return nil }
|
|
248
|
+
if let number = raw as? NSNumber { return max(0, number.doubleValue) }
|
|
249
|
+
if let text = raw as? String, let parsed = Double(text) { return max(0, parsed) }
|
|
250
|
+
configLog.warning("\(captureLayoutDelayKey, privacy: .public) is set but is not a number. Ignoring it.")
|
|
251
|
+
return nil
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/// Whether `ConnectConfig.json` supplies an `AutoLayout` block at all.
|
|
255
|
+
///
|
|
256
|
+
/// Equivalent to asking whether ``resolveLayoutOverrides(from:)`` would
|
|
257
|
+
/// return an `AutoLayout` override — `deepMerging` only ever adds keys, so
|
|
258
|
+
/// the merged block carries `AutoLayout` exactly when some contributing
|
|
259
|
+
/// block does — but silent, and cheap enough to run at construction. The
|
|
260
|
+
/// resolver logs which sources it applied; calling it twice would print
|
|
261
|
+
/// that summary twice.
|
|
262
|
+
static func suppliesAutoLayout(_ connectData: [String: Any]) -> Bool {
|
|
263
|
+
return layoutConfigKeys.contains { name in
|
|
264
|
+
(connectData[name] as? [String: Any])?[autoLayoutConfigKey] != nil
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
107
268
|
/// Maps the JS-facing module name to the config store's module name
|
|
108
269
|
/// ("Connect" → "TLFCoreModule").
|
|
109
270
|
static func storeModuleName(for moduleName: String) -> String {
|
|
@@ -130,6 +291,51 @@ internal enum ConnectRNParsing {
|
|
|
130
291
|
return result
|
|
131
292
|
}
|
|
132
293
|
|
|
294
|
+
/// Normalises a dictionary produced by `AnyMap.toDictionary()` into one
|
|
295
|
+
/// that `NSJSONSerialization.isValidJSONObject:` accepts, which is the
|
|
296
|
+
/// only gate `CTSignalMessage` applies before embedding the payload.
|
|
297
|
+
///
|
|
298
|
+
/// Two things need fixing up. `AnyMap` models JS `null` as a Swift `nil`,
|
|
299
|
+
/// and a dictionary holding `Optional.none` is not JSON-representable —
|
|
300
|
+
/// `NSNull` is. And the nesting is optional-typed all the way down
|
|
301
|
+
/// (`[String: Any?]` / `[Any?]`), so the walk has to be recursive rather
|
|
302
|
+
/// than a single top-level pass. Values that are already scalars pass
|
|
303
|
+
/// through untouched, so a flat payload converts to exactly what the
|
|
304
|
+
/// previous scalar-only bridge produced.
|
|
305
|
+
///
|
|
306
|
+
/// Deliberately takes plain Swift collections rather than `AnyMap`: this
|
|
307
|
+
/// file is compiled into the UnitTests bundle, which builds without C++
|
|
308
|
+
/// interop and therefore cannot see nitro's `AnyMap`/`AnyValue` types.
|
|
309
|
+
/// The `AnyMap` unwrapping stays in `HybridAcousticConnectRN`.
|
|
310
|
+
///
|
|
311
|
+
/// - Parameter input: dictionary from `AnyMap.toDictionary()`.
|
|
312
|
+
/// - Returns: the same structure with optionals resolved.
|
|
313
|
+
static func jsonSafeDictionary(_ input: [String: Any?]) -> [String: Any] {
|
|
314
|
+
var result = [String: Any](minimumCapacity: input.count)
|
|
315
|
+
for (key, value) in input {
|
|
316
|
+
result[key] = jsonSafeValue(value)
|
|
317
|
+
}
|
|
318
|
+
return result
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/// Recursive helper for ``jsonSafeDictionary(_:)``. Maps `nil` to `NSNull`
|
|
322
|
+
/// and rebuilds nested dictionaries/arrays; every other value — `String`,
|
|
323
|
+
/// `Double`, `Int64`, `Bool` — is already JSON-representable and is
|
|
324
|
+
/// returned as-is.
|
|
325
|
+
///
|
|
326
|
+
/// - Parameter value: a value from an `AnyMap`-derived container.
|
|
327
|
+
/// - Returns: a JSON-representable equivalent.
|
|
328
|
+
static func jsonSafeValue(_ value: Any?) -> Any {
|
|
329
|
+
guard let value else { return NSNull() }
|
|
330
|
+
if let nested = value as? [String: Any?] {
|
|
331
|
+
return jsonSafeDictionary(nested)
|
|
332
|
+
}
|
|
333
|
+
if let array = value as? [Any?] {
|
|
334
|
+
return array.map { jsonSafeValue($0) }
|
|
335
|
+
}
|
|
336
|
+
return value
|
|
337
|
+
}
|
|
338
|
+
|
|
133
339
|
static func convertVariantToAny(_ variant: Variant_Bool_String_Double) -> Any {
|
|
134
340
|
switch variant {
|
|
135
341
|
case .first(let boolValue):
|
|
@@ -141,6 +347,29 @@ internal enum ConnectRNParsing {
|
|
|
141
347
|
}
|
|
142
348
|
}
|
|
143
349
|
|
|
350
|
+
/// Default `additionalParameters` for an identity signal, matched to the
|
|
351
|
+
/// signal type the bridge will actually send.
|
|
352
|
+
///
|
|
353
|
+
/// Connect's signal schema requires a *method* attribute on identity
|
|
354
|
+
/// signals, and the required key differs per type: `loggedIn` requires
|
|
355
|
+
/// `loginMethod`, `accountRegistered` requires `registrationMethod`.
|
|
356
|
+
/// Supplying the wrong one fails schema validation and the signal is
|
|
357
|
+
/// discarded, while `identity.log` still reports success — so the caller
|
|
358
|
+
/// sees nothing wrong. Before this mapping existed the bridge paired its
|
|
359
|
+
/// `loggedIn` default with `registrationMethod`, which meant every
|
|
360
|
+
/// defaulted identity call was silently dropped.
|
|
361
|
+
///
|
|
362
|
+
/// Only consulted when the caller omits `additionalParameters` entirely;
|
|
363
|
+
/// an explicitly-provided map is passed through untouched.
|
|
364
|
+
static func defaultIdentityParameters(for signalType: String) -> [String: String] {
|
|
365
|
+
switch signalType {
|
|
366
|
+
case "loggedIn":
|
|
367
|
+
return ["loginMethod": "email"]
|
|
368
|
+
default:
|
|
369
|
+
return ["registrationMethod": "email"]
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
|
|
144
373
|
static func logLevel(from level: Double) -> kConnectMonitoringLevelType {
|
|
145
374
|
let intValue: Int = Int(level)
|
|
146
375
|
if intValue == 0 {
|