├── .deco ├── communication │ └── GiftedMessenger.jsx.deco ├── core │ ├── ActivityIndicatorIOS.jsx.deco │ ├── DatePickerIOS.jsx.deco │ ├── Image.jsx.deco │ ├── MapView.jsx.deco │ ├── Modal.jsx.deco │ ├── NavigationBar.jsx.deco │ ├── Navigator.jsx.deco │ ├── Picker.jsx.deco │ ├── ProgressViewIOS.jsx.deco │ ├── RefreshControl.jsx.deco │ ├── ScrollView.jsx.deco │ ├── SegmentedControlIOS.jsx.deco │ ├── Switch.jsx.deco │ ├── Text.jsx.deco │ ├── TextInput.jsx.deco │ ├── TouchableHighlight.jsx.deco │ ├── TouchableOpacity.jsx.deco │ ├── View.jsx.deco │ ├── convert.js.deco │ └── index.ios.js.deco ├── navigation │ └── react-native-navbar.js.deco └── official │ └── Lightbox.jsx.deco ├── LICENSE.md ├── README.md ├── assets ├── deco-activity-indicator.png ├── deco-date-picker.png ├── deco-image.png ├── deco-map.png ├── deco-navigator.png ├── deco-picker.png ├── deco-progress-view-ios.png ├── deco-uber-toggle.png ├── gifted-messenger.png └── react-native-navbar.png ├── communication └── GiftedMessenger.jsx ├── core ├── ActivityIndicatorIOS.jsx ├── DatePickerIOS.jsx ├── Image.jsx ├── MapView.jsx ├── Modal.jsx ├── NavigationBar.jsx ├── Navigator.jsx ├── Picker.jsx ├── ProgressViewIOS.jsx ├── RefreshControl.jsx ├── ScrollView.jsx ├── SegmentedControlIOS.jsx ├── Switch.jsx ├── Text.jsx ├── TextInput.jsx ├── TouchableHighlight.jsx ├── TouchableOpacity.jsx ├── View.jsx └── package.json ├── navigation └── react-native-navbar.js ├── official └── Lightbox.jsx └── package.json /.deco/communication/GiftedMessenger.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 11, 7 | "ch": 20 8 | }, 9 | "to": { 10 | "line": 11, 11 | "ch": 22 12 | } 13 | }, 14 | "type": "number", 15 | "name": "MarginLeft" 16 | }, 17 | { 18 | "range": { 19 | "from": { 20 | "line": 12, 21 | "ch": 25 22 | }, 23 | "to": { 24 | "line": 12, 25 | "ch": 34 26 | } 27 | }, 28 | "editWith": "colorPicker", 29 | "type": "string", 30 | "name": "BackgroundColor" 31 | }, 32 | { 33 | "range": { 34 | "from": { 35 | "line": 15, 36 | "ch": 15 37 | }, 38 | "to": { 39 | "line": 15, 40 | "ch": 20 41 | } 42 | }, 43 | "type": "boolean", 44 | "name": "AutoFocus" 45 | }, 46 | { 47 | "range": { 48 | "from": { 49 | "line": 41, 50 | "ch": 15 51 | }, 52 | "to": { 53 | "line": 41, 54 | "ch": 34 55 | } 56 | }, 57 | "editWith": "inputField", 58 | "type": "string", 59 | "name": "SenderName" 60 | }, 61 | { 62 | "range": { 63 | "from": { 64 | "line": 44, 65 | "ch": 18 66 | }, 67 | "to": { 68 | "line": 44, 69 | "ch": 22 70 | } 71 | }, 72 | "type": "boolean", 73 | "name": "DisplayNames" 74 | }, 75 | { 76 | "range": { 77 | "from": { 78 | "line": 46, 79 | "ch": 15 80 | }, 81 | "to": { 82 | "line": 46, 83 | "ch": 19 84 | } 85 | }, 86 | "type": "boolean", 87 | "name": "ParseText" 88 | }, 89 | { 90 | "range": { 91 | "from": { 92 | "line": 51, 93 | "ch": 30 94 | }, 95 | "to": { 96 | "line": 51, 97 | "ch": 35 98 | } 99 | }, 100 | "type": "boolean", 101 | "name": "IsLoadingEarlierMessages" 102 | }, 103 | { 104 | "range": { 105 | "from": { 106 | "line": 53, 107 | "ch": 19 108 | }, 109 | "to": { 110 | "line": 53, 111 | "ch": 21 112 | } 113 | }, 114 | "editWith": "inputField", 115 | "type": "string", 116 | "name": "TypingMessage" 117 | } 118 | ] 119 | } 120 | -------------------------------------------------------------------------------- /.deco/core/ActivityIndicatorIOS.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 2, 7 | "ch": 16 8 | }, 9 | "to": { 10 | "line": 2, 11 | "ch": 24 12 | } 13 | }, 14 | "editWith": "dropdown", 15 | "dropdownOptions": "AlignItems", 16 | "type": "string", 17 | "name": "AlignItems" 18 | }, 19 | { 20 | "range": { 21 | "from": { 22 | "line": 3, 23 | "ch": 20 24 | }, 25 | "to": { 26 | "line": 3, 27 | "ch": 28 28 | } 29 | }, 30 | "editWith": "dropdown", 31 | "dropdownOptions": "JustifyContent", 32 | "type": "string", 33 | "name": "JustifyContent" 34 | }, 35 | { 36 | "range": { 37 | "from": { 38 | "line": 5, 39 | "ch": 13 40 | }, 41 | "to": { 42 | "line": 5, 43 | "ch": 17 44 | } 45 | }, 46 | "type": "boolean", 47 | "name": "Animating" 48 | }, 49 | { 50 | "range": { 51 | "from": { 52 | "line": 6, 53 | "ch": 8 54 | }, 55 | "to": { 56 | "line": 6, 57 | "ch": 15 58 | } 59 | }, 60 | "editWith": "inputField", 61 | "type": "string", 62 | "name": "Size" 63 | }, 64 | { 65 | "range": { 66 | "from": { 67 | "line": 7, 68 | "ch": 9 69 | }, 70 | "to": { 71 | "line": 7, 72 | "ch": 16 73 | } 74 | }, 75 | "editWith": "colorPicker", 76 | "type": "string", 77 | "name": "Color" 78 | } 79 | ] 80 | } -------------------------------------------------------------------------------- /.deco/core/DatePickerIOS.jsx.deco: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /.deco/core/Image.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 2, 7 | "ch": 11 8 | }, 9 | "to": { 10 | "line": 2, 11 | "ch": 14 12 | } 13 | }, 14 | "type": "number", 15 | "name": "Width", 16 | "max": 600 17 | }, 18 | { 19 | "range": { 20 | "from": { 21 | "line": 3, 22 | "ch": 12 23 | }, 24 | "to": { 25 | "line": 3, 26 | "ch": 15 27 | } 28 | }, 29 | "type": "number", 30 | "name": "Height", 31 | "max": 600 32 | }, 33 | { 34 | "range": { 35 | "from": { 36 | "line": 5, 37 | "ch": 14 38 | }, 39 | "to": { 40 | "line": 5, 41 | "ch": 23 42 | } 43 | }, 44 | "editWith": "dropdown", 45 | "dropdownOptions": "ResizeMode", 46 | "type": "string", 47 | "name": "ResizeMode" 48 | } 49 | ] 50 | } -------------------------------------------------------------------------------- /.deco/core/MapView.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 2, 7 | "ch": 12 8 | }, 9 | "to": { 10 | "line": 2, 11 | "ch": 15 12 | } 13 | }, 14 | "type": "number", 15 | "name": "Height", 16 | "max": 600 17 | }, 18 | { 19 | "range": { 20 | "from": { 21 | "line": 3, 22 | "ch": 11 23 | }, 24 | "to": { 25 | "line": 3, 26 | "ch": 14 27 | } 28 | }, 29 | "type": "number", 30 | "name": "Width", 31 | "max": 600 32 | }, 33 | { 34 | "range": { 35 | "from": { 36 | "line": 7, 37 | "ch": 21 38 | }, 39 | "to": { 40 | "line": 7, 41 | "ch": 25 42 | } 43 | }, 44 | "type": "boolean", 45 | "name": "ShowUserLocation" 46 | } 47 | ] 48 | } -------------------------------------------------------------------------------- /.deco/core/Modal.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 2, 7 | "ch": 14 8 | }, 9 | "to": { 10 | "line": 2, 11 | "ch": 18 12 | } 13 | }, 14 | "type": "boolean", 15 | "name": "Animated" 16 | }, 17 | { 18 | "range": { 19 | "from": { 20 | "line": 3, 21 | "ch": 17 22 | }, 23 | "to": { 24 | "line": 3, 25 | "ch": 22 26 | } 27 | }, 28 | "type": "boolean", 29 | "name": "Transparent" 30 | } 31 | ] 32 | } -------------------------------------------------------------------------------- /.deco/core/NavigationBar.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 1, 7 | "ch": 48 8 | }, 9 | "to": { 10 | "line": 1, 11 | "ch": 55 12 | } 13 | }, 14 | "editWith": "colorPicker", 15 | "type": "string", 16 | "name": "BackgroundColor" 17 | }, 18 | { 19 | "range": { 20 | "from": { 21 | "line": 6, 22 | "ch": 31 23 | }, 24 | "to": { 25 | "line": 6, 26 | "ch": 40 27 | } 28 | }, 29 | "editWith": "colorPicker", 30 | "type": "string", 31 | "name": "Color" 32 | }, 33 | { 34 | "range": { 35 | "from": { 36 | "line": 13, 37 | "ch": 31 38 | }, 39 | "to": { 40 | "line": 13, 41 | "ch": 40 42 | } 43 | }, 44 | "editWith": "colorPicker", 45 | "type": "string", 46 | "name": "Color" 47 | } 48 | ] 49 | } -------------------------------------------------------------------------------- /.deco/core/Navigator.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 9, 7 | "ch": 25 8 | }, 9 | "to": { 10 | "line": 9, 11 | "ch": 45 12 | } 13 | }, 14 | "editWith": "colorPicker", 15 | "type": "string", 16 | "name": "BackgroundColor" 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /.deco/core/Picker.jsx.deco: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /.deco/core/ProgressViewIOS.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 2, 7 | "ch": 12 8 | }, 9 | "to": { 10 | "line": 2, 11 | "ch": 14 12 | } 13 | }, 14 | "type": "number", 15 | "name": "Margin" 16 | }, 17 | { 18 | "range": { 19 | "from": { 20 | "line": 3, 21 | "ch": 11 22 | }, 23 | "to": { 24 | "line": 3, 25 | "ch": 14 26 | } 27 | }, 28 | "type": "number", 29 | "name": "Width", 30 | "max": 600 31 | }, 32 | { 33 | "range": { 34 | "from": { 35 | "line": 5, 36 | "ch": 12 37 | }, 38 | "to": { 39 | "line": 5, 40 | "ch": 14 41 | } 42 | }, 43 | "type": "number", 44 | "name": "Progress" 45 | }, 46 | { 47 | "range": { 48 | "from": { 49 | "line": 6, 50 | "ch": 21 51 | }, 52 | "to": { 53 | "line": 6, 54 | "ch": 41 55 | } 56 | }, 57 | "editWith": "colorPicker", 58 | "type": "string", 59 | "name": "ProgressTintColor" 60 | } 61 | ] 62 | } -------------------------------------------------------------------------------- /.deco/core/RefreshControl.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 10, 7 | "ch": 13 8 | }, 9 | "to": { 10 | "line": 10, 11 | "ch": 33 12 | } 13 | }, 14 | "editWith": "colorPicker", 15 | "type": "string", 16 | "name": "TintColor" 17 | }, 18 | { 19 | "range": { 20 | "from": { 21 | "line": 11, 22 | "ch": 9 23 | }, 24 | "to": { 25 | "line": 11, 26 | "ch": 21 27 | } 28 | }, 29 | "editWith": "inputField", 30 | "type": "string", 31 | "name": "Title" 32 | }, 33 | { 34 | "range": { 35 | "from": { 36 | "line": 13, 37 | "ch": 27 38 | }, 39 | "to": { 40 | "line": 13, 41 | "ch": 48 42 | } 43 | }, 44 | "editWith": "colorPicker", 45 | "type": "string", 46 | "name": "ProgressBackgroundColor" 47 | } 48 | ] 49 | } -------------------------------------------------------------------------------- /.deco/core/ScrollView.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 1, 7 | "ch": 14 8 | }, 9 | "to": { 10 | "line": 1, 11 | "ch": 19 12 | } 13 | }, 14 | "type": "boolean", 15 | "name": "Horizontal" 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /.deco/core/SegmentedControlIOS.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 2, 7 | "ch": 13 8 | }, 9 | "to": { 10 | "line": 2, 11 | "ch": 17 12 | } 13 | }, 14 | "type": "boolean", 15 | "name": "Momentary" 16 | }, 17 | { 18 | "range": { 19 | "from": { 20 | "line": 3, 21 | "ch": 13 22 | }, 23 | "to": { 24 | "line": 3, 25 | "ch": 20 26 | } 27 | }, 28 | "editWith": "colorPicker", 29 | "type": "string", 30 | "name": "TintColor" 31 | } 32 | ] 33 | } -------------------------------------------------------------------------------- /.deco/core/Switch.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 7, 7 | "ch": 13 8 | }, 9 | "to": { 10 | "line": 7, 11 | "ch": 34 12 | } 13 | }, 14 | "editWith": "colorPicker", 15 | "type": "string", 16 | "name": "TintColor" 17 | }, 18 | { 19 | "range": { 20 | "from": { 21 | "line": 8, 22 | "ch": 15 23 | }, 24 | "to": { 25 | "line": 8, 26 | "ch": 34 27 | } 28 | }, 29 | "editWith": "colorPicker", 30 | "type": "string", 31 | "name": "OnTintColor" 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /.deco/core/Text.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 2, 7 | "ch": 11 8 | }, 9 | "to": { 10 | "line": 2, 11 | "ch": 18 12 | } 13 | }, 14 | "editWith": "colorPicker", 15 | "type": "string", 16 | "name": "Color" 17 | }, 18 | { 19 | "range": { 20 | "from": { 21 | "line": 3, 22 | "ch": 14 23 | }, 24 | "to": { 25 | "line": 3, 26 | "ch": 16 27 | } 28 | }, 29 | "type": "number", 30 | "name": "FontSize" 31 | }, 32 | { 33 | "range": { 34 | "from": { 35 | "line": 4, 36 | "ch": 16 37 | }, 38 | "to": { 39 | "line": 4, 40 | "ch": 24 41 | } 42 | }, 43 | "editWith": "dropdown", 44 | "dropdownOptions": "FontWeight", 45 | "type": "string", 46 | "name": "FontWeight" 47 | }, 48 | { 49 | "range": { 50 | "from": { 51 | "line": 5, 52 | "ch": 16 53 | }, 54 | "to": { 55 | "line": 5, 56 | "ch": 32 57 | } 58 | }, 59 | "editWith": "dropdown", 60 | "dropdownOptions": "FontFamily", 61 | "type": "string", 62 | "name": "FontFamily" 63 | } 64 | ] 65 | } -------------------------------------------------------------------------------- /.deco/core/TextInput.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 2, 7 | "ch": 12 8 | }, 9 | "to": { 10 | "line": 2, 11 | "ch": 14 12 | } 13 | }, 14 | "type": "number", 15 | "name": "Height" 16 | }, 17 | { 18 | "range": { 19 | "from": { 20 | "line": 3, 21 | "ch": 11 22 | }, 23 | "to": { 24 | "line": 3, 25 | "ch": 14 26 | } 27 | }, 28 | "type": "number", 29 | "name": "Width" 30 | }, 31 | { 32 | "range": { 33 | "from": { 34 | "line": 5, 35 | "ch": 17 36 | }, 37 | "to": { 38 | "line": 5, 39 | "ch": 34 40 | } 41 | }, 42 | "editWith": "colorPicker", 43 | "type": "string", 44 | "name": "BorderColor" 45 | }, 46 | { 47 | "range": { 48 | "from": { 49 | "line": 7, 50 | "ch": 15 51 | }, 52 | "to": { 53 | "line": 7, 54 | "ch": 26 55 | } 56 | }, 57 | "editWith": "inputField", 58 | "type": "string", 59 | "name": "Placeholder" 60 | }, 61 | { 62 | "range": { 63 | "from": { 64 | "line": 8, 65 | "ch": 24 66 | }, 67 | "to": { 68 | "line": 8, 69 | "ch": 45 70 | } 71 | }, 72 | "editWith": "colorPicker", 73 | "type": "string", 74 | "name": "PlaceholderTextColor" 75 | } 76 | ] 77 | } -------------------------------------------------------------------------------- /.deco/core/TouchableHighlight.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 2, 7 | "ch": 17 8 | }, 9 | "to": { 10 | "line": 2, 11 | "ch": 19 12 | } 13 | }, 14 | "type": "number", 15 | "name": "ActiveOpacity", 16 | "min": 0, 17 | "max": 100 18 | }, 19 | { 20 | "range": { 21 | "from": { 22 | "line": 3, 23 | "ch": 17 24 | }, 25 | "to": { 26 | "line": 3, 27 | "ch": 35 28 | } 29 | }, 30 | "editWith": "colorPicker", 31 | "type": "string", 32 | "name": "UnderlayColor" 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /.deco/core/TouchableOpacity.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 2, 7 | "ch": 17 8 | }, 9 | "to": { 10 | "line": 2, 11 | "ch": 19 12 | } 13 | }, 14 | "type": "number", 15 | "name": "ActiveOpacity", 16 | "min": 0, 17 | "max": 100 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /.deco/core/View.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 3, 7 | "ch": 20 8 | }, 9 | "to": { 10 | "line": 3, 11 | "ch": 32 12 | } 13 | }, 14 | "editWith": "dropdown", 15 | "dropdownOptions": "JustifyContent", 16 | "type": "string", 17 | "name": "JustifyContent" 18 | }, 19 | { 20 | "range": { 21 | "from": { 22 | "line": 4, 23 | "ch": 16 24 | }, 25 | "to": { 26 | "line": 4, 27 | "ch": 25 28 | } 29 | }, 30 | "editWith": "dropdown", 31 | "dropdownOptions": "AlignItems", 32 | "type": "string", 33 | "name": "AlignItems" 34 | }, 35 | { 36 | "range": { 37 | "from": { 38 | "line": 5, 39 | "ch": 21 40 | }, 41 | "to": { 42 | "line": 5, 43 | "ch": 41 44 | } 45 | }, 46 | "editWith": "colorPicker", 47 | "type": "string", 48 | "name": "BackgroundColor" 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /.deco/core/convert.js.deco: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /.deco/core/index.ios.js.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 14, 7 | "ch": 26 8 | }, 9 | "to": { 10 | "line": 14, 11 | "ch": 38 12 | } 13 | }, 14 | "editWith": "dropdown", 15 | "dropdownOptions": "JustifyContent", 16 | "type": "string", 17 | "name": "JustifyContent" 18 | }, 19 | { 20 | "range": { 21 | "from": { 22 | "line": 15, 23 | "ch": 22 24 | }, 25 | "to": { 26 | "line": 15, 27 | "ch": 31 28 | } 29 | }, 30 | "editWith": "dropdown", 31 | "dropdownOptions": "AlignItems", 32 | "type": "string", 33 | "name": "AlignItems" 34 | }, 35 | { 36 | "range": { 37 | "from": { 38 | "line": 16, 39 | "ch": 27 40 | }, 41 | "to": { 42 | "line": 16, 43 | "ch": 47 44 | } 45 | }, 46 | "editWith": "colorPicker", 47 | "type": "string", 48 | "name": "BackgroundColor" 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /.deco/navigation/react-native-navbar.js.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 1, 7 | "ch": 18 8 | }, 9 | "to": { 10 | "line": 1, 11 | "ch": 25 12 | } 13 | }, 14 | "editWith": "inputField", 15 | "type": "string", 16 | "name": "Title" 17 | }, 18 | { 19 | "range": { 20 | "from": { 21 | "line": 1, 22 | "ch": 38 23 | }, 24 | "to": { 25 | "line": 1, 26 | "ch": 45 27 | } 28 | }, 29 | "editWith": "colorPicker", 30 | "type": "string", 31 | "name": "Title Color" 32 | }, 33 | { 34 | "range": { 35 | "from": { 36 | "line": 4, 37 | "ch": 28 38 | }, 39 | "to": { 40 | "line": 4, 41 | "ch": 35 42 | } 43 | }, 44 | "editWith": "colorPicker", 45 | "type": "string", 46 | "name": "Background Color" 47 | }, 48 | { 49 | "range": { 50 | "from": { 51 | "line": 5, 52 | "ch": 26 53 | }, 54 | "to": { 55 | "line": 5, 56 | "ch": 33 57 | } 58 | }, 59 | "editWith": "colorPicker", 60 | "type": "string", 61 | "name": "Status Bar Color" 62 | } 63 | ] 64 | } -------------------------------------------------------------------------------- /.deco/official/Lightbox.jsx.deco: -------------------------------------------------------------------------------- 1 | { 2 | "liveValues": [ 3 | { 4 | "range": { 5 | "from": { 6 | "line": 3, 7 | "ch": 14 8 | }, 9 | "to": { 10 | "line": 3, 11 | "ch": 17 12 | } 13 | }, 14 | "type": "number", 15 | "name": "Height", 16 | "max": 600 17 | }, 18 | { 19 | "range": { 20 | "from": { 21 | "line": 4, 22 | "ch": 13 23 | }, 24 | "to": { 25 | "line": 4, 26 | "ch": 16 27 | } 28 | }, 29 | "type": "number", 30 | "name": "Width", 31 | "max": 600 32 | } 33 | ] 34 | } -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Deco Software Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Deco Components 2 | 3 | ### What are Deco Components? 4 | 5 | Deco Components are templates and dependencies that can be downloaded and inserted into your project through the Deco IDE. 6 | 7 | Currently, templates are snippets of JSX with associated metadata. This metadata is used to identify important properties and build up the Deco UI for quickly tweaking the component. 8 | 9 | Metadata files should not be created manually - they are created automatically in Deco as you add properties to the property panel through ⌥ Option + click. 10 | 11 | ### Contributing Components 12 | 13 | Want to add components to Deco? 14 | 15 | Please submit a pull request which adds your component(s) to the `package.json`, following the schema described below. 16 | 17 | For now, we'll review every component to make sure it works as expected in Deco. We plan to expand on the schema and make the "registry" more scalable moving forward :) 18 | 19 | ### FAQ 20 | 21 | ##### What about native modules? 22 | 23 | * We plan to at least automatically run `rnpm link` after the `npm install` succeeds. You'll have to reload the simulator manually in order for these components to show up though (can't hot reload binaries... yet). Maybe there's more we can do here to make inserting native modules just as awesome as inserting pure-JS components. 24 | 25 | ##### What about components that aren't JSX / React Native? 26 | 27 | * We plan to support other kinds of templates and frameworks. The format and IDE are agnostic to the kind of data and dependencies, but to keep it simple, we're limiting components to React-Native-compatible JSX for now. 28 | 29 | ### Component Schema 30 | 31 | ```javascript 32 | { 33 | // (String) Component name 34 | "name": "Activity Indicator IOS", 35 | 36 | // (String) Component publisher 37 | "publisher": "deco", 38 | 39 | // (String) Semver string of the component schema 40 | "schemaVersion": "0.0.1", 41 | 42 | // (String[]) Searchable tags 43 | "tags": ["core", "ui", "react-native"], 44 | 45 | // (String) Image to display in the insert menu 46 | "thumbnail": "https://placehold.it/100/100", 47 | 48 | // (String) A brief description 49 | "description": "A React Native component", 50 | 51 | // (Object) Metadata for the property inspector 52 | "inspector": { 53 | 54 | // (String) Automatically group properties - can be overriden individually 55 | "group": "ACTIVITY INDICATOR IOS" 56 | 57 | }, 58 | 59 | // (Object) Where to find the component's text/metadata 60 | "template": { 61 | 62 | // (String) URL or relative path to the component's text 63 | "text": "https://rawgit.com/dabbott/deco-packages-test/master/core/ActivityIndicatorIOS.jsx", 64 | 65 | // (String) URL or relative path to the component's metadata 66 | "metadata": "https://rawgit.com/dabbott/deco-packages-test/master/.deco/core/ActivityIndicatorIOS.jsx.deco" 67 | }, 68 | 69 | // (Object) Imports to insert at the top of the file 70 | "imports": { 71 | 72 | // (String|String[]|Object) 73 | // => import React from "react-native" 74 | "react-native": "React", 75 | 76 | // (String|String[]|Object) 77 | // => import { ActivityIndicatorIOS } from "react-native-2" 78 | "react-native-2": [ 79 | 80 | // (String) Member to import 81 | "ActivityIndicatorIOS" 82 | 83 | ], 84 | 85 | // (String|String[]|Object) 86 | // => import React, * as R, { View, Text as T } from "react-native-3" 87 | "react-native-3": { 88 | 89 | // (String) Default import name 90 | default: 'React', 91 | 92 | // (Boolean) Should include * 93 | star: true, 94 | 95 | // (String) Alias for * 96 | alias: 'R', 97 | 98 | // ((String|Object)[]) 99 | members: [ 100 | 101 | // (String) Member to import 102 | 'View', 103 | 104 | { 105 | // (String) Member to import 106 | name: 'Text', 107 | 108 | // (String) Alias for imported member 109 | alias: 'T' 110 | } 111 | 112 | ] 113 | 114 | } 115 | 116 | }, 117 | 118 | // (Object) Dependencies to install 119 | "dependencies": { 120 | 121 | // (String) Will run `npm install react-native --save` 122 | "react-native": "*" 123 | 124 | }, 125 | } 126 | ``` 127 | 128 | -------------------------------------------------------------------------------- /assets/deco-activity-indicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decosoftware/deco-components/7a86667ba573f038a9346f65e73fdeb6a3feaccb/assets/deco-activity-indicator.png -------------------------------------------------------------------------------- /assets/deco-date-picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decosoftware/deco-components/7a86667ba573f038a9346f65e73fdeb6a3feaccb/assets/deco-date-picker.png -------------------------------------------------------------------------------- /assets/deco-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decosoftware/deco-components/7a86667ba573f038a9346f65e73fdeb6a3feaccb/assets/deco-image.png -------------------------------------------------------------------------------- /assets/deco-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decosoftware/deco-components/7a86667ba573f038a9346f65e73fdeb6a3feaccb/assets/deco-map.png -------------------------------------------------------------------------------- /assets/deco-navigator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decosoftware/deco-components/7a86667ba573f038a9346f65e73fdeb6a3feaccb/assets/deco-navigator.png -------------------------------------------------------------------------------- /assets/deco-picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decosoftware/deco-components/7a86667ba573f038a9346f65e73fdeb6a3feaccb/assets/deco-picker.png -------------------------------------------------------------------------------- /assets/deco-progress-view-ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decosoftware/deco-components/7a86667ba573f038a9346f65e73fdeb6a3feaccb/assets/deco-progress-view-ios.png -------------------------------------------------------------------------------- /assets/deco-uber-toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decosoftware/deco-components/7a86667ba573f038a9346f65e73fdeb6a3feaccb/assets/deco-uber-toggle.png -------------------------------------------------------------------------------- /assets/gifted-messenger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decosoftware/deco-components/7a86667ba573f038a9346f65e73fdeb6a3feaccb/assets/gifted-messenger.png -------------------------------------------------------------------------------- /assets/react-native-navbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/decosoftware/deco-components/7a86667ba573f038a9346f65e73fdeb6a3feaccb/assets/react-native-navbar.png -------------------------------------------------------------------------------- /communication/GiftedMessenger.jsx: -------------------------------------------------------------------------------- 1 | 5 | this._GiftedMessenger = c} 7 | styles={{ 8 | container: { 9 | width: Dimensions.get('window').width, 10 | }, 11 | bubbleRight: { 12 | marginLeft: 70, 13 | backgroundColor: "#007aff", 14 | }, 15 | }} 16 | autoFocus={false} 17 | messages={[ 18 | { 19 | text: 'Are you building a chat app?', 20 | name: 'React-Bot', 21 | image: {uri: 'https://facebook.github.io/react/img/logo_og.png'}, 22 | position: 'left', 23 | date: new Date(2016, 3, 14, 13, 0), 24 | uniqueId: Math.round(Math.random() * 10000), // simulating server-side unique id generation 25 | }, 26 | { 27 | text: "Yes, and I use Gifted Messenger!", 28 | name: 'Awesome Developer', 29 | image: null, 30 | position: 'right', 31 | date: new Date(2016, 3, 14, 13, 1), 32 | uniqueId: Math.round(Math.random() * 10000), // simulating server-side unique id generation 33 | }, 34 | ]} 35 | handleSend={() => {}} 36 | onErrorButtonPress={() => {}} 37 | maxHeight={Dimensions.get('window').height - 20} 38 | 39 | loadEarlierMessagesButton={false} 40 | onLoadEarlierMessages={() => {}} 41 | 42 | senderName='Awesome Developer' 43 | senderImage={null} 44 | onImagePress={() => {}} 45 | displayNames={true} 46 | 47 | parseText={true} 48 | handlePhonePress={() => {}} 49 | handleUrlPress={() => {}} 50 | handleEmailPress={() => {}} 51 | 52 | isLoadingEarlierMessages={false} 53 | 54 | typingMessage={""} 55 | /> 56 | 57 | -------------------------------------------------------------------------------- /core/ActivityIndicatorIOS.jsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/DatePickerIOS.jsx: -------------------------------------------------------------------------------- 1 | { 4 | this.setState({date: newDate}) 5 | }} 6 | mode={'datetime'} 7 | timeZoneOffsetInMinutes={-1 * new Date().getTimezoneOffset()} 8 | /> -------------------------------------------------------------------------------- /core/Image.jsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/MapView.jsx: -------------------------------------------------------------------------------- 1 | {}} 7 | onRegionChangeComplete={() => {}} 8 | showsUserLocation={true} 9 | /> -------------------------------------------------------------------------------- /core/Modal.jsx: -------------------------------------------------------------------------------- 1 | 2 | 6 | 14 | Hello Modal 15 | 16 | 17 | -------------------------------------------------------------------------------- /core/NavigationBar.jsx: -------------------------------------------------------------------------------- 1 | { 5 | return ( 6 | {}}> 7 | {'Next'} 8 | 9 | ) 10 | }, 11 | LeftButton: (route, navigator, index, navState) => { 12 | return ( 13 | {}}> 14 | {'Previous'} 15 | 16 | ) 17 | }, 18 | Title: (route, navigator, index, navState) => { 19 | return {route.title} 20 | }, 21 | }} 22 | /> -------------------------------------------------------------------------------- /core/Navigator.jsx: -------------------------------------------------------------------------------- 1 | { 16 | return ( 17 | 18 | My Scene 19 | 20 | ) 21 | }} 22 | /> -------------------------------------------------------------------------------- /core/Picker.jsx: -------------------------------------------------------------------------------- 1 | { 7 | this.setState({value}) 8 | }}> 9 | 10 | 11 | -------------------------------------------------------------------------------- /core/ProgressViewIOS.jsx: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /core/RefreshControl.jsx: -------------------------------------------------------------------------------- 1 | { 4 | // setTimeout is just for this example and is not safe to use in practice 5 | this.setState({refreshing: true}) 6 | setTimeout(() => { 7 | this.setState({refreshing: false}) 8 | }, 1000) 9 | }} 10 | refreshing={(this.state && this.state.refreshing) || false} 11 | tintColor={"rgba(74,144,226,1)"} 12 | title={'Loading...'} 13 | colors={['#ff0000', '#00ff00', '#0000ff']} 14 | progressBackgroundColor={"rgba(100,100,100,1)"} 15 | /> -------------------------------------------------------------------------------- /core/ScrollView.jsx: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /core/SegmentedControlIOS.jsx: -------------------------------------------------------------------------------- 1 | {}} 10 | onChange={(event) => { 11 | this.setState({ 12 | scIndex: event.nativeEvent.selectedSegmentIndex 13 | }) 14 | }} 15 | /> -------------------------------------------------------------------------------- /core/Switch.jsx: -------------------------------------------------------------------------------- 1 | { 4 | this.setState({switchValue: value}) 5 | }} 6 | // Color props are iOS-only 7 | // thumbTintColor={'white'} // Removes shadow 8 | tintColor={"rgba(230,230,230,1)"} 9 | onTintColor={"rgba(68,219,94,1)"} 10 | /> -------------------------------------------------------------------------------- /core/Text.jsx: -------------------------------------------------------------------------------- 1 | 8 | My Text 9 | -------------------------------------------------------------------------------- /core/TextInput.jsx: -------------------------------------------------------------------------------- 1 | {this.setState({text})}} 11 | onSubmitEditing={() => {this.setState({text: ''})}} 12 | value={(this.state && this.state.text) || ''} 13 | /> -------------------------------------------------------------------------------- /core/TouchableHighlight.jsx: -------------------------------------------------------------------------------- 1 | {}} 3 | activeOpacity={75 / 100} 4 | underlayColor={"rgb(210,210,210)"}> 5 | Press 6 | -------------------------------------------------------------------------------- /core/TouchableOpacity.jsx: -------------------------------------------------------------------------------- 1 | {}} 3 | activeOpacity={75 / 100}> 4 | Press 5 | -------------------------------------------------------------------------------- /core/View.jsx: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /core/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Project", 3 | "version": "0.0.1", 4 | "private": "true", 5 | "dependencies": { 6 | "react-native": "0.21.0" 7 | } 8 | } -------------------------------------------------------------------------------- /navigation/react-native-navbar.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /official/Lightbox.jsx: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "deco-package-registry", 3 | "version": "1.0.0", 4 | "description": "Deco Packages", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/decosoftware/deco-components.git" 12 | }, 13 | "author": "", 14 | "license": "ISC", 15 | "bugs": { 16 | "url": "https://github.com/decosoftware/deco-components/issues" 17 | }, 18 | "homepage": "https://github.com/decosoftware/deco-components#readme", 19 | "deco": { 20 | "components": [ 21 | { 22 | "name": "Activity Indicator IOS", 23 | "publisher": "deco", 24 | "schemaVersion": "0.0.1", 25 | "tags": ["core", "ui", "react-native"], 26 | "thumbnail": "https://rawgit.com/decosoftware/deco-components/master/assets/deco-activity-indicator.png", 27 | "description": "An animated progress or activity indicator.", 28 | "inspector": { 29 | "group": "ACTIVITY INDICATOR IOS" 30 | }, 31 | "template": { 32 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/ActivityIndicatorIOS.jsx", 33 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/ActivityIndicatorIOS.jsx.deco" 34 | }, 35 | "imports": { 36 | "react-native": [ 37 | "ActivityIndicatorIOS" 38 | ] 39 | } 40 | }, 41 | { 42 | "name": "Date Picker IOS", 43 | "publisher": "deco", 44 | "schemaVersion": "0.0.1", 45 | "tags": ["core", "input", "ui", "react-native"], 46 | "thumbnail": "https://rawgit.com/decosoftware/deco-components/master/assets/deco-date-picker.png", 47 | "description": "An input field for choosing a date.", 48 | "inspector": { 49 | "group": "DATE PICKER IOS" 50 | }, 51 | "template": { 52 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/DatePickerIOS.jsx", 53 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/DatePickerIOS.jsx.deco" 54 | }, 55 | "imports": { 56 | "react-native": [ 57 | "DatePickerIOS" 58 | ] 59 | } 60 | }, 61 | { 62 | "name": "Image", 63 | "publisher": "deco", 64 | "schemaVersion": "0.0.1", 65 | "tags": ["core", "ui", "react-native"], 66 | "thumbnail": "https://rawgit.com/decosoftware/deco-components/master/assets/deco-image.png", 67 | "description": "Display an image, either from a remote URI or bundled as a static asset.", 68 | "inspector": { 69 | "group": "IMAGE" 70 | }, 71 | "template": { 72 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/Image.jsx", 73 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/Image.jsx.deco" 74 | }, 75 | "imports": { 76 | "react-native": [ 77 | "Image" 78 | ] 79 | } 80 | }, 81 | { 82 | "name": "Map View", 83 | "publisher": "deco", 84 | "schemaVersion": "0.0.1", 85 | "tags": ["core", "ui", "react-native"], 86 | "thumbnail": "https://rawgit.com/decosoftware/deco-components/master/assets/deco-map.png", 87 | "description": "Display a native map with optional annotations and overlays.", 88 | "inspector": { 89 | "group": "MAP VIEW" 90 | }, 91 | "template": { 92 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/MapView.jsx", 93 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/MapView.jsx.deco" 94 | }, 95 | "imports": { 96 | "react-native": [ 97 | "MapView" 98 | ] 99 | } 100 | }, 101 | { 102 | "name": "Modal", 103 | "publisher": "deco", 104 | "schemaVersion": "0.0.1", 105 | "tags": ["core", "ui", "react-native"], 106 | "description": "Display content in a view which overlays the entire app.", 107 | "inspector": { 108 | "group": "MODAL" 109 | }, 110 | "template": { 111 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/Modal.jsx", 112 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/Modal.jsx.deco" 113 | }, 114 | "imports": { 115 | "react-native": [ 116 | "Modal", 117 | "View", 118 | "Text" 119 | ] 120 | } 121 | }, 122 | { 123 | "name": "Picker", 124 | "publisher": "deco", 125 | "schemaVersion": "0.0.1", 126 | "tags": ["core", "input", "ui", "react-native"], 127 | "thumbnail": "https://rawgit.com/decosoftware/deco-components/master/assets/deco-picker.png", 128 | "description": "An input field for choosing one option from a list. Also see: Segmented Control.", 129 | "inspector": { 130 | "group": "PICKER" 131 | }, 132 | "template": { 133 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/Picker.jsx", 134 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/Picker.jsx.deco" 135 | }, 136 | "imports": { 137 | "react-native": [ 138 | "Picker" 139 | ] 140 | } 141 | }, 142 | { 143 | "name": "Progress View IOS", 144 | "publisher": "deco", 145 | "schemaVersion": "0.0.1", 146 | "tags": ["core", "ui", "react-native"], 147 | "thumbnail": "https://rawgit.com/decosoftware/deco-components/master/assets/deco-progress-view-ios.png", 148 | "description": "A progress bar, to display progress from 0 to 100. If total progress is not known, consider an ActivityIndicator.", 149 | "inspector": { 150 | "group": "PROGRESS VIEW IOS" 151 | }, 152 | "template": { 153 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/ProgressViewIOS.jsx", 154 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/ProgressViewIOS.jsx.deco" 155 | }, 156 | "imports": { 157 | "react-native": [ 158 | "ProgressViewIOS" 159 | ] 160 | } 161 | }, 162 | { 163 | "name": "Refresh Control", 164 | "publisher": "deco", 165 | "schemaVersion": "0.0.1", 166 | "tags": ["core", "ui", "react-native"], 167 | "description": "A spinner for use in a ScrollView, useful for pull-to-refresh.", 168 | "inspector": { 169 | "group": "REFRESH CONTROL" 170 | }, 171 | "template": { 172 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/RefreshControl.jsx", 173 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/RefreshControl.jsx.deco" 174 | }, 175 | "imports": { 176 | "react-native": [ 177 | "RefreshControl" 178 | ] 179 | } 180 | }, 181 | { 182 | "name": "Scroll View", 183 | "publisher": "deco", 184 | "schemaVersion": "0.0.1", 185 | "tags": ["core", "ui", "react-native"], 186 | "description": "Shows scrollable content within. Scrolls vertically, horizontally, or both.", 187 | "inspector": { 188 | "group": "SCROLL VIEW" 189 | }, 190 | "template": { 191 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/ScrollView.jsx", 192 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/ScrollView.jsx.deco" 193 | }, 194 | "imports": { 195 | "react-native": [ 196 | "ScrollView", 197 | "Text", 198 | "View" 199 | ] 200 | } 201 | }, 202 | { 203 | "name": "Segmented Control IOS", 204 | "publisher": "deco", 205 | "schemaVersion": "0.0.1", 206 | "tags": ["core", "input", "ui", "react-native"], 207 | "description": "An input field for choosing an option from a list. Also see: Picker.", 208 | "inspector": { 209 | "group": "SEGMENTED CONTROL IOS" 210 | }, 211 | "template": { 212 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/SegmentedControlIOS.jsx", 213 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/SegmentedControlIOS.jsx.deco" 214 | }, 215 | "imports": { 216 | "react-native": [ 217 | "SegmentedControlIOS" 218 | ] 219 | } 220 | }, 221 | { 222 | "name": "Switch", 223 | "publisher": "deco", 224 | "schemaVersion": "0.0.1", 225 | "tags": ["core", "input", "ui", "react-native"], 226 | "description": "An input field for choosing 'on' or 'off'.", 227 | "inspector": { 228 | "group": "SWITCH" 229 | }, 230 | "template": { 231 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/Switch.jsx", 232 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/Switch.jsx.deco" 233 | }, 234 | "imports": { 235 | "react-native": [ 236 | "Switch" 237 | ] 238 | } 239 | }, 240 | { 241 | "name": "Text", 242 | "publisher": "deco", 243 | "schemaVersion": "0.0.1", 244 | "tags": ["core", "ui", "react-native"], 245 | "description": "Display text.", 246 | "inspector": { 247 | "group": "TEXT" 248 | }, 249 | "template": { 250 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/Text.jsx", 251 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/Text.jsx.deco" 252 | }, 253 | "imports": { 254 | "react-native": [ 255 | "Text" 256 | ] 257 | } 258 | }, 259 | { 260 | "name": "Text Input", 261 | "publisher": "deco", 262 | "schemaVersion": "0.0.1", 263 | "tags": ["core", "input", "ui", "react-native"], 264 | "description": "An input field for entering text. Can be single-line or multi-line.", 265 | "inspector": { 266 | "group": "TEXT INPUT" 267 | }, 268 | "template": { 269 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/TextInput.jsx", 270 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/TextInput.jsx.deco" 271 | }, 272 | "imports": { 273 | "react-native": [ 274 | "TextInput" 275 | ] 276 | } 277 | }, 278 | { 279 | "name": "TouchableOpacity", 280 | "publisher": "deco", 281 | "schemaVersion": "0.0.1", 282 | "tags": ["core", "ui", "react-native"], 283 | "description": "A view that fires an onPress callback when tapped.", 284 | "inspector": { 285 | "group": "TOUCHABLE OPACITY" 286 | }, 287 | "template": { 288 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/TouchableOpacity.jsx", 289 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/TouchableOpacity.jsx.deco" 290 | }, 291 | "imports": { 292 | "react-native": [ 293 | "TouchableOpacity", 294 | "Text" 295 | ] 296 | } 297 | }, 298 | { 299 | "name": "TouchableHighlight", 300 | "publisher": "deco", 301 | "schemaVersion": "0.0.1", 302 | "tags": ["core", "ui", "react-native"], 303 | "description": "A view that fires an onPress callback when tapped.", 304 | "inspector": { 305 | "group": "TOUCHABLE HIGHLIGHT" 306 | }, 307 | "template": { 308 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/TouchableHighlight.jsx", 309 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/TouchableHighlight.jsx.deco" 310 | }, 311 | "imports": { 312 | "react-native": [ 313 | "TouchableHighlight", 314 | "Text" 315 | ] 316 | } 317 | }, 318 | { 319 | "name": "View", 320 | "publisher": "deco", 321 | "schemaVersion": "0.0.1", 322 | "tags": ["core", "ui", "react-native"], 323 | "description": "One view to rule them all.", 324 | "inspector": { 325 | "group": "VIEW" 326 | }, 327 | "template": { 328 | "text": "https://rawgit.com/decosoftware/deco-components/master/core/View.jsx", 329 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/core/View.jsx.deco" 330 | }, 331 | "imports": { 332 | "react-native": [ 333 | "View" 334 | ] 335 | } 336 | }, 337 | { 338 | "name": "Toggle Button", 339 | "publisher": "deco", 340 | "schemaVersion": "0.0.1", 341 | "tags": ["toggle", "button", "uber", "deco", "ui", "react-native"], 342 | "thumbnail": "https://rawgit.com/decosoftware/deco-components/master/assets/deco-uber-toggle.png", 343 | "description": "From the Deco Uber Demo: an input field for choosing an option from a list.", 344 | "inspector": { 345 | "group": "TOGGLE BUTTON" 346 | }, 347 | "template": { 348 | "text": "https://rawgit.com/dabbott/ride-share/74c55a13a083d86f2fba18e8dbd4189e9b4b390c/templates/Toggle.jsx", 349 | "metadata": "https://rawgit.com/dabbott/ride-share/74c55a13a083d86f2fba18e8dbd4189e9b4b390c/.deco/templates/Toggle.jsx.deco" 350 | }, 351 | "dependencies": { 352 | "deco-ride-share-demo": "^1.1.0" 353 | }, 354 | "imports": { 355 | "deco-ride-share-demo": [ 356 | "ToggleContainer", 357 | "ToggleItem" 358 | ] 359 | } 360 | }, 361 | { 362 | "name": "React Native Navbar", 363 | "publisher": "deco", 364 | "schemaVersion": "0.0.1", 365 | "tags": ["navigator", "ui", "react-native"], 366 | "thumbnail": "https://rawgit.com/decosoftware/deco-components/master/assets/react-native-navbar.png", 367 | "description": "A highly customizable Navigation Bar from react-native-fellowship/react-native-navbar.", 368 | "inspector": { 369 | "group": "REACT NATIVE NAVBAR" 370 | }, 371 | "template": { 372 | "text": "https://rawgit.com/decosoftware/deco-components/master/navigation/react-native-navbar.js", 373 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/navigation/react-native-navbar.js.deco" 374 | }, 375 | "dependencies": { 376 | "react-native-navbar": "*" 377 | }, 378 | "imports": { 379 | "react-native-navbar": "NavigationBar" 380 | } 381 | }, 382 | { 383 | "name": "Value Store", 384 | "publisher": "deco", 385 | "schemaVersion": "0.0.2", 386 | "tags": [ 387 | "core", 388 | "persistence", 389 | "storage", 390 | "AsyncStorage", 391 | "ui", 392 | "react-native" 393 | ], 394 | "description": "A simple wrapper for storing a value in AsyncStorage", 395 | "inspector": { 396 | "group": "VALUE STORE" 397 | }, 398 | "template": { 399 | "text": "https://rawgit.com/dabbott/react-native-value-store/9b77cea5b32c24338229a2d3574e77ee90085573/templates/ValueStore.js", 400 | "metadata": "https://rawgit.com/dabbott/react-native-value-store/9b77cea5b32c24338229a2d3574e77ee90085573/.deco/templates/ValueStore.js.deco" 401 | }, 402 | "dependencies": { 403 | "react-native-value-store": "^0.1.0" 404 | }, 405 | "imports": { 406 | "react-native-value-store": "ValueStore", 407 | "react-native": [ 408 | "Text", 409 | "TouchableOpacity" 410 | ] 411 | } 412 | }, 413 | { 414 | "name": "Lightbox", 415 | "publisher": "deco", 416 | "schemaVersion": "0.0.2", 417 | "tags": [ 418 | "image", 419 | "gallery", 420 | "ui", 421 | "react-native" 422 | ], 423 | "thumbnail": "http://i.imgur.com/GLn3WmF.png", 424 | "description": "A lightbox for full-screen image viewing, from react-native-lightbox.", 425 | "inspector": { 426 | "group": "LIGHTBOX" 427 | }, 428 | "template": { 429 | "text": "https://rawgit.com/decosoftware/deco-components/master/official/Lightbox.jsx", 430 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/official/Lightbox.jsx.deco" 431 | }, 432 | "dependencies": { 433 | "react-native-lightbox": "^0.6.0" 434 | }, 435 | "imports": { 436 | "react-native-lightbox": "Lightbox", 437 | "react-native": [ 438 | "Image" 439 | ] 440 | } 441 | }, 442 | { 443 | "name": "Gifted Messenger", 444 | "publisher": "deco", 445 | "schemaVersion": "0.0.2", 446 | "tags": [ 447 | "chat", 448 | "communication", 449 | "ui", 450 | "react-native" 451 | ], 452 | "thumbnail": "https://rawgit.com/decosoftware/deco-components/master/assets/gifted-messenger.png", 453 | "description": "Ready-to-use chat interface for React Native apps from FaridSafi/react-native-gifted-messenger", 454 | "inspector": { 455 | "group": "GIFTED MESSENGER" 456 | }, 457 | "template": { 458 | "text": "https://rawgit.com/decosoftware/deco-components/master/communication/GiftedMessenger.jsx", 459 | "metadata": "https://rawgit.com/decosoftware/deco-components/master/.deco/communication/GiftedMessenger.jsx.deco" 460 | }, 461 | "dependencies": { 462 | "react-native-gifted-messenger": "^0.1.4" 463 | }, 464 | "imports": { 465 | "react-native-gifted-messenger": "GiftedMessenger", 466 | "react-native": [ 467 | "View", 468 | "Dimensions" 469 | ] 470 | } 471 | } 472 | ] 473 | } 474 | } 475 | --------------------------------------------------------------------------------