├── .babelrc ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .npmignore ├── .npmrc ├── .travis.yml ├── LICENSE ├── README.md ├── RNCommon.podspec ├── android ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── com │ │ └── kajoo │ │ └── reactnativecommon │ │ ├── highlighterview │ │ ├── HighlightFrame.java │ │ ├── HighlightViewTagParams.java │ │ ├── HighlighterView.java │ │ ├── HighlighterViewManager.java │ │ ├── HighlighterViewPackage.java │ │ ├── ReactHacks.java │ │ ├── ReflectionUtils.java │ │ └── UiUtils.java │ │ ├── textinput │ │ ├── DefaultKeyListener.java │ │ ├── KeyListenerProxy.java │ │ ├── TextInputDelKeyHandlerModule.java │ │ ├── TextInputDelKeyHandlerPackage.java │ │ └── ViewUtils.java │ │ └── wheelpicker │ │ ├── WheelPicker.java │ │ ├── WheelPickerManager.java │ │ └── WheelPickerPackage.java │ └── res │ ├── layout │ └── wheel_picker.xml │ └── values │ ├── colors.xml │ └── styles.xml ├── default_installation.md ├── example ├── .buckconfig ├── .flowconfig ├── .gitattributes ├── .gitignore ├── .watchmanconfig ├── App.js ├── __tests__ │ └── App-test.js ├── android │ ├── app │ │ ├── BUCK │ │ ├── build.gradle │ │ ├── build_defs.bzl │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ ├── MainActivity.java │ │ │ │ └── MainApplication.java │ │ │ └── res │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ │ └── values │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── keystores │ │ ├── BUCK │ │ └── debug.keystore.properties │ └── settings.gradle ├── app.json ├── babel.config.js ├── index.js ├── ios │ ├── example-tvOS │ │ └── Info.plist │ ├── example-tvOSTests │ │ └── Info.plist │ ├── example.xcodeproj │ │ ├── project.pbxproj │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ ├── example-tvOS.xcscheme │ │ │ └── example.xcscheme │ ├── example │ │ ├── AppDelegate.h │ │ ├── AppDelegate.m │ │ ├── Base.lproj │ │ │ └── LaunchScreen.xib │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Info.plist │ │ └── main.m │ └── exampleTests │ │ ├── Info.plist │ │ └── exampleTests.m ├── metro.config.js ├── package.json └── yarn.lock ├── ios ├── RNCommon.xcodeproj │ └── project.pbxproj └── reactnativecommon │ ├── highlighterview │ ├── HighlighterView.h │ ├── HighlighterView.m │ ├── HighlighterViewManager.h │ └── HighlighterViewManager.m │ └── safearea │ ├── SafeAreaManager.h │ ├── SafeAreaManager.m │ ├── SafeAreaSpacerShadowView.h │ ├── SafeAreaSpacerShadowView.m │ ├── SafeAreaSpacerView.h │ ├── SafeAreaSpacerView.m │ ├── SafeAreaSpacerViewLocalData.h │ ├── SafeAreaSpacerViewLocalData.m │ ├── SafeAreaSpacerViewManager.h │ └── SafeAreaSpacerViewManager.m ├── jest-setup.js ├── jsconfig.json ├── package.json ├── scripts ├── build-ts.sh └── build-typings.sh ├── simple.sh ├── src ├── assets │ ├── emojis │ │ └── index.js │ ├── icons │ │ ├── check-small.png │ │ ├── check-small@2x.png │ │ ├── check-small@3x.png │ │ ├── check.png │ │ ├── check@1.5x.png │ │ ├── check@2x.png │ │ ├── check@3x.png │ │ ├── check@4x.png │ │ ├── index.js │ │ ├── search.png │ │ ├── search@1.5x.png │ │ ├── search@2x.png │ │ ├── search@3x.png │ │ ├── search@4x.png │ │ ├── x.png │ │ ├── x@2x.png │ │ └── x@3x.png │ └── index.js ├── components │ ├── Colors.js │ ├── LoadingView.js │ ├── RGFText.js │ ├── SettingsList.js │ ├── connection │ │ ├── __test__ │ │ │ └── index.spec.js │ │ └── index.js │ ├── containers │ │ ├── ListContainer.js │ │ ├── PageContainer.js │ │ └── index.js │ ├── header │ │ ├── ItemWrapper.js │ │ └── index.js │ ├── images │ │ ├── AnimatedImage.js │ │ ├── Image.js │ │ ├── NetworkImage.js │ │ ├── __test__ │ │ │ └── Image.spec.js │ │ └── index.js │ ├── img │ │ ├── add@2x.png │ │ ├── disclosure.png │ │ ├── disclosure@2x.png │ │ ├── disclosure@3x.png │ │ ├── filter.png │ │ ├── filter@2x.png │ │ ├── filter@3x.png │ │ ├── hamburger-unread.png │ │ ├── hamburger-unread@2x.png │ │ ├── hamburger-unread@3x.png │ │ ├── hamburger.png │ │ ├── hamburger@2x.png │ │ └── hamburger@3x.png │ ├── index.js │ ├── inputs │ │ ├── BaseInput.js │ │ ├── TagsInput.js │ │ ├── TextArea.js │ │ ├── TextField.js │ │ ├── TextInput.js │ │ ├── __test__ │ │ │ ├── TagsInput.spec.js │ │ │ └── TextField.spec.js │ │ └── index.js │ ├── loading │ │ └── index.js │ ├── multiple-shadow │ │ └── index.js │ ├── nav-icons │ │ ├── BackIcon.js │ │ ├── BackWhiteIcon.js │ │ ├── ForwardIcon.js │ │ ├── ForwardWhiteIcon.js │ │ ├── XIcon.js │ │ ├── XWhiteIcon.js │ │ ├── img │ │ │ ├── back.android.png │ │ │ ├── back.ios.png │ │ │ ├── back@2x.android.png │ │ │ ├── back@2x.ios.png │ │ │ ├── back@3x.android.png │ │ │ ├── back@3x.ios.png │ │ │ ├── back_white.android.png │ │ │ ├── back_white.ios.png │ │ │ ├── back_white@2x.android.png │ │ │ ├── back_white@2x.ios.png │ │ │ ├── back_white@3x.android.png │ │ │ ├── back_white@3x.ios.png │ │ │ ├── forward.android.png │ │ │ ├── forward.ios.png │ │ │ ├── forward@2x.android.png │ │ │ ├── forward@2x.ios.png │ │ │ ├── forward@3x.android.png │ │ │ ├── forward@3x.ios.png │ │ │ ├── forward_white.android.png │ │ │ ├── forward_white.ios.png │ │ │ ├── forward_white@2x.android.png │ │ │ ├── forward_white@2x.ios.png │ │ │ ├── forward_white@3x.android.png │ │ │ ├── forward_white@3x.ios.png │ │ │ ├── x-white.png │ │ │ ├── x-white@2x.png │ │ │ ├── x-white@3x.png │ │ │ ├── x.png │ │ │ ├── x@2x.png │ │ │ └── x@3x.png │ │ └── index.js │ ├── other │ │ ├── InfiniteScrollView.js │ │ ├── ItemsWithSeparator.js │ │ ├── KeyboardSpacer.js │ │ ├── PageControl.js │ │ ├── Popover.js │ │ ├── PureListView.js │ │ ├── SegmentedControl.js │ │ └── StyleSheet.js │ ├── picker │ │ ├── NativePicker.js │ │ ├── PickerDialog.android.js │ │ ├── PickerDialog.ios.js │ │ ├── PickerItem.js │ │ ├── PickerModal.js │ │ ├── PickerPresenter.js │ │ ├── __test__ │ │ │ ├── PickerPresenter.spec.js │ │ │ └── index.spec.js │ │ └── index.js │ └── touchables │ │ ├── Touchable.js │ │ └── index.js ├── index.js └── style │ ├── BorderRadiuses.js │ ├── Colors.js │ ├── ColorsPalette.js │ ├── Shadows.js │ ├── Spacings.js │ ├── ThemeManager.js │ ├── Typography.js │ └── index.js └── tsconfig.json /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["react-native"] 3 | } 4 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | **/node_modules/** 2 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: 'eslint-config-kajoo', 3 | // "globals": { 4 | // "__DEV__": true, 5 | // "__dirname": false, 6 | // "console": false, 7 | // "document": false, 8 | // "jest": false, 9 | // "Map": true, 10 | // "Promise": true, 11 | // "Set": true, 12 | // 13 | // // Flow global types. 14 | // "ReactElement": false, 15 | // }, 16 | rules: { 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | project.xcworkspace 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | 33 | # node.js 34 | # 35 | node_modules/ 36 | npm-debug.log 37 | yarn-error.log 38 | 39 | # BUCK 40 | buck-out/ 41 | \.buckd/ 42 | *.keystore 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md 50 | 51 | fastlane/report.xml 52 | fastlane/Preview.html 53 | fastlane/screenshots 54 | 55 | # Custom 56 | package-lock.json 57 | dist-ts/ 58 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | example/ 3 | docs/ 4 | .travis.yml 5 | npm-debug.log 6 | package-lock.json 7 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "10" 4 | cache: 5 | yarn: true 6 | directories: 7 | - node_modules 8 | branches: 9 | only: 10 | - master 11 | install: 12 | - yarn 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2016 Reza Ghorbani Farid 5 | Copyright for portions of project react-native-common are held by WIX 2017 as part of project react-native-ui-lib. All other copyright for project react-native-common are held by Reza Ghorbani Farid, 2016. 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |

3 | React Native Common 4 |

5 | 6 |

7 | Cross Platform React Native UI Toolkit & API 8 |

9 | 10 |

11 | 12 | 13 | 14 |

15 | 16 |

17 | 18 |

19 | 20 |
21 | 22 | ## Get Started 23 | 24 | ### Installation 25 | 26 | `$ yarn add react-native-common` 27 | 28 | or 29 | 30 | `$ npm install react-native-common --save` 31 | 32 | ## Native Dependencies 33 | Some of the components are using these native dependencies, they are not a requirement but will allow you to create 34 | better lookings apps :) 35 | 36 | * react-native-animatable 37 | * react-native-blur 38 | 39 | ## Usage 40 | 41 | ```javascript 42 | import { Button } from 'react-native-common'; 43 | 44 |