@draftbit/core 47.0.0-0362d7.2 → 47.0.0-3bcd8b.2
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/lib/commonjs/components/Banner.js +168 -0
- package/lib/commonjs/components/Banner.js.map +1 -0
- package/lib/commonjs/components/FormRow.js +3 -17
- package/lib/commonjs/components/FormRow.js.map +1 -1
- package/lib/commonjs/components/Picker/PickerComponent.ios.js +11 -30
- package/lib/commonjs/components/Picker/PickerComponent.ios.js.map +1 -1
- package/lib/commonjs/components/Portal/PortalHost.js +15 -45
- package/lib/commonjs/components/Portal/PortalHost.js.map +1 -1
- package/lib/commonjs/components/RadioButton/RadioButton.js +3 -14
- package/lib/commonjs/components/RadioButton/RadioButton.js.map +1 -1
- package/lib/commonjs/components/Surface.js +2 -13
- package/lib/commonjs/components/Surface.js.map +1 -1
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/components/Accordion/AccordionItem.js +4 -23
- package/lib/module/components/Accordion/AccordionItem.js.map +1 -1
- package/lib/module/components/Banner.js +158 -0
- package/lib/module/components/Banner.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/components/Banner.d.ts +23 -0
- package/lib/typescript/src/components/Banner.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/components/Banner.js +109 -0
- package/src/components/Banner.tsx +204 -0
- package/src/index.js +1 -0
- package/src/index.tsx +1 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _Surface = _interopRequireDefault(require("./Surface"));
|
|
10
|
+
var _shadow = _interopRequireDefault(require("../styles/shadow"));
|
|
11
|
+
var _theming = require("../theming");
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
16
|
+
const ELEVATION = 1;
|
|
17
|
+
const DEFAULT_MAX_WIDTH = 960;
|
|
18
|
+
const Banner = _ref => {
|
|
19
|
+
let {
|
|
20
|
+
initiallyVisible = true,
|
|
21
|
+
dismissable = true,
|
|
22
|
+
icon,
|
|
23
|
+
buttonColor,
|
|
24
|
+
content,
|
|
25
|
+
contentStyle,
|
|
26
|
+
style,
|
|
27
|
+
theme,
|
|
28
|
+
Icon,
|
|
29
|
+
...rest
|
|
30
|
+
} = _ref;
|
|
31
|
+
const [visible, setVisible] = React.useState(initiallyVisible);
|
|
32
|
+
React.useEffect(() => {
|
|
33
|
+
if (initiallyVisible) {
|
|
34
|
+
setVisible(true);
|
|
35
|
+
}
|
|
36
|
+
}, [initiallyVisible]);
|
|
37
|
+
const {
|
|
38
|
+
current: position
|
|
39
|
+
} = React.useRef(new _reactNative.Animated.Value(visible ? 1 : 0));
|
|
40
|
+
const [layout, setLayout] = React.useState({
|
|
41
|
+
height: 0,
|
|
42
|
+
measured: false
|
|
43
|
+
});
|
|
44
|
+
React.useEffect(() => {
|
|
45
|
+
if (visible) {
|
|
46
|
+
// show
|
|
47
|
+
_reactNative.Animated.timing(position, {
|
|
48
|
+
duration: 250,
|
|
49
|
+
toValue: 1,
|
|
50
|
+
useNativeDriver: false
|
|
51
|
+
}).start();
|
|
52
|
+
} else {
|
|
53
|
+
// hide
|
|
54
|
+
_reactNative.Animated.timing(position, {
|
|
55
|
+
duration: 200,
|
|
56
|
+
toValue: 0,
|
|
57
|
+
useNativeDriver: false
|
|
58
|
+
}).start();
|
|
59
|
+
}
|
|
60
|
+
}, [visible, position]);
|
|
61
|
+
const handleLayout = _ref2 => {
|
|
62
|
+
let {
|
|
63
|
+
nativeEvent
|
|
64
|
+
} = _ref2;
|
|
65
|
+
const {
|
|
66
|
+
height
|
|
67
|
+
} = nativeEvent.layout;
|
|
68
|
+
setLayout({
|
|
69
|
+
height,
|
|
70
|
+
measured: true
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// The banner animation has 2 parts:
|
|
75
|
+
// 1. Blank spacer element which animates its height to move the content
|
|
76
|
+
// 2. Actual banner which animates its translateY
|
|
77
|
+
// In initial render, we position everything normally and measure the height of the banner
|
|
78
|
+
// Once we have the height, we apply the height to the spacer and switch the banner to position: absolute
|
|
79
|
+
// We need this because we need to move the content below as if banner's height was being animated
|
|
80
|
+
// However we can't animated banner's height directly as it'll also resize the content inside
|
|
81
|
+
const height = _reactNative.Animated.multiply(position, layout.height);
|
|
82
|
+
const translateY = _reactNative.Animated.multiply(_reactNative.Animated.add(position, -1), layout.height);
|
|
83
|
+
return /*#__PURE__*/React.createElement(_Surface.default, _extends({}, rest, {
|
|
84
|
+
style: [styles.container, (0, _shadow.default)(ELEVATION), style]
|
|
85
|
+
}), /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
86
|
+
style: [styles.wrapper, contentStyle]
|
|
87
|
+
}, /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
|
|
88
|
+
style: {
|
|
89
|
+
height
|
|
90
|
+
}
|
|
91
|
+
}), /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
|
|
92
|
+
onLayout: handleLayout,
|
|
93
|
+
style: [layout.measured || !visible ?
|
|
94
|
+
// If we have measured banner's height or it's invisible,
|
|
95
|
+
// Position it absolutely, the layout will be taken care of the spacer
|
|
96
|
+
[styles.absolute, {
|
|
97
|
+
transform: [{
|
|
98
|
+
translateY
|
|
99
|
+
}]
|
|
100
|
+
}] :
|
|
101
|
+
// Otherwise position it normally
|
|
102
|
+
null, !layout.measured && !visible ?
|
|
103
|
+
// If we haven't measured banner's height yet and it's invisible,
|
|
104
|
+
// hide it with opacity: 0 so user doesn't see it
|
|
105
|
+
{
|
|
106
|
+
opacity: 0
|
|
107
|
+
} : null]
|
|
108
|
+
}, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
109
|
+
style: [styles.content, {
|
|
110
|
+
marginBottom: dismissable ? 0 : 16
|
|
111
|
+
}]
|
|
112
|
+
}, icon ? /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
113
|
+
style: styles.icon
|
|
114
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
115
|
+
name: icon,
|
|
116
|
+
size: 40
|
|
117
|
+
})) : null, /*#__PURE__*/React.createElement(_reactNative.Text, {
|
|
118
|
+
style: [styles.message, {
|
|
119
|
+
color: theme.colors.text
|
|
120
|
+
}],
|
|
121
|
+
accessibilityLiveRegion: visible ? "polite" : "none",
|
|
122
|
+
accessibilityRole: "alert"
|
|
123
|
+
}, content)), dismissable ? /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
124
|
+
style: styles.actions
|
|
125
|
+
}, /*#__PURE__*/React.createElement(_reactNative.Button, {
|
|
126
|
+
color: buttonColor || theme.colors.primary,
|
|
127
|
+
title: "Close",
|
|
128
|
+
onPress: () => setVisible(false)
|
|
129
|
+
})) : null)));
|
|
130
|
+
};
|
|
131
|
+
const styles = _reactNative.StyleSheet.create({
|
|
132
|
+
container: {
|
|
133
|
+
elevation: ELEVATION
|
|
134
|
+
},
|
|
135
|
+
wrapper: {
|
|
136
|
+
overflow: "hidden",
|
|
137
|
+
alignSelf: "center",
|
|
138
|
+
width: "100%",
|
|
139
|
+
maxWidth: DEFAULT_MAX_WIDTH
|
|
140
|
+
},
|
|
141
|
+
absolute: {
|
|
142
|
+
position: "absolute",
|
|
143
|
+
top: 0,
|
|
144
|
+
width: "100%"
|
|
145
|
+
},
|
|
146
|
+
content: {
|
|
147
|
+
flexDirection: "row",
|
|
148
|
+
justifyContent: "flex-start",
|
|
149
|
+
marginHorizontal: 8,
|
|
150
|
+
marginTop: 16,
|
|
151
|
+
marginBottom: 0
|
|
152
|
+
},
|
|
153
|
+
icon: {
|
|
154
|
+
margin: 8
|
|
155
|
+
},
|
|
156
|
+
message: {
|
|
157
|
+
flex: 1,
|
|
158
|
+
margin: 8
|
|
159
|
+
},
|
|
160
|
+
actions: {
|
|
161
|
+
flexDirection: "row",
|
|
162
|
+
justifyContent: "flex-end",
|
|
163
|
+
margin: 8
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
var _default = (0, _theming.withTheme)(Banner);
|
|
167
|
+
exports.default = _default;
|
|
168
|
+
//# sourceMappingURL=Banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ELEVATION","DEFAULT_MAX_WIDTH","Banner","initiallyVisible","dismissable","icon","buttonColor","content","contentStyle","style","theme","Icon","rest","visible","setVisible","React","useState","useEffect","current","position","useRef","Animated","Value","layout","setLayout","height","measured","timing","duration","toValue","useNativeDriver","start","handleLayout","nativeEvent","multiply","translateY","add","styles","container","shadow","wrapper","absolute","transform","opacity","marginBottom","message","color","colors","text","actions","primary","StyleSheet","create","elevation","overflow","alignSelf","width","maxWidth","top","flexDirection","justifyContent","marginHorizontal","marginTop","margin","flex","withTheme"],"sourceRoot":"../../src","sources":["Banner.tsx"],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ var _Touchable = _interopRequireDefault(require("./Touchable"));
|
|
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
12
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
13
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
14
15
|
function FormRow(_ref) {
|
|
15
16
|
let {
|
|
16
17
|
disabled,
|
|
@@ -25,27 +26,12 @@ function FormRow(_ref) {
|
|
|
25
26
|
textStyles,
|
|
26
27
|
viewStyles
|
|
27
28
|
} = (0, _utilities.extractStyles)(style);
|
|
28
|
-
return /*#__PURE__*/React.createElement(_Touchable.default, {
|
|
29
|
+
return /*#__PURE__*/React.createElement(_Touchable.default, _extends({
|
|
29
30
|
disabled: disabled,
|
|
30
31
|
onPress: onPress,
|
|
31
32
|
style: [styles.row, {
|
|
32
33
|
flexDirection: direction
|
|
33
|
-
}, viewStyles]
|
|
34
|
-
...rest
|
|
35
|
-
}, /*#__PURE__*/React.createElement(_reactNative.Text, {
|
|
36
|
-
style: textStyles
|
|
37
|
-
}, label), children);
|
|
38
|
-
}
|
|
39
|
-
const styles = _reactNative.StyleSheet.create({
|
|
40
|
-
row: {
|
|
41
|
-
marginLeft: 8,
|
|
42
|
-
marginRight: 8,
|
|
43
|
-
flexDirection: "row",
|
|
44
|
-
justifyContent: "space-between",
|
|
45
|
-
alignItems: "center"
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
//# sourceMappingURL=FormRow.js.map]
|
|
34
|
+
}, viewStyles]
|
|
49
35
|
}, rest), /*#__PURE__*/React.createElement(_reactNative.Text, {
|
|
50
36
|
style: textStyles
|
|
51
37
|
}, label), children);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FormRow","disabled","direction","children","label","style","onPress","rest","textStyles","viewStyles","extractStyles","
|
|
1
|
+
{"version":3,"names":["FormRow","disabled","direction","children","label","style","onPress","rest","textStyles","viewStyles","extractStyles","styles","row","flexDirection","StyleSheet","create","marginLeft","marginRight","justifyContent","alignItems"],"sourceRoot":"../../src","sources":["FormRow.tsx"],"mappings":";;;;;;AAAA;AACA;AAEA;AACA;AAAoC;AAAA;AAAA;AAAA;AAWrB,SAASA,OAAO,OAQrB;EAAA,IARsB;IAC9BC,QAAQ;IACRC,SAAS;IACTC,QAAQ;IACRC,KAAK;IACLC,KAAK;IACLC,OAAO;IACP,GAAGC;EACE,CAAC;EACN,MAAM;IAAEC,UAAU;IAAEC;EAAW,CAAC,GAAG,IAAAC,wBAAa,EAACL,KAAK,CAAC;EACvD,oBACE,oBAAC,kBAAS;IACR,QAAQ,EAAEJ,QAAS;IACnB,OAAO,EAAEK,OAAQ;IACjB,KAAK,EAAE,CAACK,MAAM,CAACC,GAAG,EAAE;MAAEC,aAAa,EAAEX;IAAU,CAAC,EAAEO,UAAU;EAAE,GAC1DF,IAAI,gBAER,oBAAC,iBAAI;IAAC,KAAK,EAAEC;EAAW,GAAEJ,KAAK,CAAQ,EACtCD,QAAQ,CACC;AAEhB;AAEA,MAAMQ,MAAM,GAAGG,uBAAU,CAACC,MAAM,CAAC;EAC/BH,GAAG,EAAE;IACHI,UAAU,EAAE,CAAC;IACbC,WAAW,EAAE,CAAC;IACdJ,aAAa,EAAE,KAAK;IACpBK,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE;EACd;AACF,CAAC,CAAC"}
|
|
@@ -18,7 +18,9 @@ var _utilities = require("../../utilities");
|
|
|
18
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
19
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
20
20
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
21
22
|
const Picker = _ref => {
|
|
23
|
+
var _options$find;
|
|
22
24
|
let {
|
|
23
25
|
Icon,
|
|
24
26
|
style,
|
|
@@ -32,7 +34,6 @@ const Picker = _ref => {
|
|
|
32
34
|
},
|
|
33
35
|
...props
|
|
34
36
|
} = _ref;
|
|
35
|
-
var _a, _b;
|
|
36
37
|
const {
|
|
37
38
|
viewStyles: {
|
|
38
39
|
borderRadius,
|
|
@@ -73,24 +74,26 @@ const Picker = _ref => {
|
|
|
73
74
|
};
|
|
74
75
|
|
|
75
76
|
const stylesWithoutMargin = style && (0, _lodash.default)(_reactNative.StyleSheet.flatten(style), ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
|
|
76
|
-
const selectedLabel = selectedValue && ((
|
|
77
|
+
const selectedLabel = selectedValue && (((_options$find = options.find(o => o.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) ?? selectedValue);
|
|
77
78
|
return /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
78
79
|
style: [styles.container, viewStyles]
|
|
79
80
|
}, /*#__PURE__*/React.createElement(_Touchable.default, {
|
|
80
81
|
disabled: disabled,
|
|
81
82
|
onPress: toggleVisibility
|
|
82
|
-
}, /*#__PURE__*/React.createElement(_TextField.default, {
|
|
83
|
-
...props,
|
|
83
|
+
}, /*#__PURE__*/React.createElement(_TextField.default, _extends({}, props, {
|
|
84
84
|
value: String(selectedLabel),
|
|
85
|
-
placeholder: placeholder
|
|
85
|
+
placeholder: placeholder
|
|
86
86
|
// @ts-ignore
|
|
87
|
-
|
|
87
|
+
,
|
|
88
|
+
ref: textField // cannot determine if ref is of correct type due to component being wrapped in a withTheme()
|
|
89
|
+
,
|
|
88
90
|
disabled: disabled,
|
|
89
|
-
pointerEvents: "none"
|
|
91
|
+
pointerEvents: "none"
|
|
90
92
|
// @ts-expect-error
|
|
93
|
+
,
|
|
91
94
|
style: stylesWithoutMargin,
|
|
92
95
|
Icon: Icon
|
|
93
|
-
})), pickerVisible && /*#__PURE__*/React.createElement(_Portal.default, null, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
96
|
+
}))), pickerVisible && /*#__PURE__*/React.createElement(_Portal.default, null, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
94
97
|
style: [styles.picker, {
|
|
95
98
|
backgroundColor: colors.divider
|
|
96
99
|
}]
|
|
@@ -136,26 +139,4 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
136
139
|
});
|
|
137
140
|
var _default = (0, _theming.withTheme)(Picker);
|
|
138
141
|
exports.default = _default;
|
|
139
|
-
//# sourceMappingURL=PickerComponent.ios.js.map container: {
|
|
140
|
-
alignSelf: "stretch"
|
|
141
|
-
},
|
|
142
|
-
picker: {
|
|
143
|
-
position: "absolute",
|
|
144
|
-
bottom: 0,
|
|
145
|
-
left: 0,
|
|
146
|
-
right: 0,
|
|
147
|
-
flexDirection: "row",
|
|
148
|
-
justifyContent: "center"
|
|
149
|
-
},
|
|
150
|
-
pickerContainer: {
|
|
151
|
-
backgroundColor: "white",
|
|
152
|
-
flexDirection: "column",
|
|
153
|
-
width: "100%"
|
|
154
|
-
},
|
|
155
|
-
closeButton: {
|
|
156
|
-
alignSelf: "flex-end"
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
var _default = (0, _theming.withTheme)(Picker);
|
|
160
|
-
exports.default = _default;
|
|
161
142
|
//# sourceMappingURL=PickerComponent.ios.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Picker","Icon","style","options","placeholder","selectedValue","disabled","onValueChange","theme","colors","props","
|
|
1
|
+
{"version":3,"names":["Picker","Icon","style","options","placeholder","selectedValue","disabled","onValueChange","theme","colors","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","extractStyles","textField","React","useRef","undefined","pickerVisible","setIsPickerVisible","useState","toggleVisibility","current","toggleFocus","stylesWithoutMargin","omit","StyleSheet","flatten","selectedLabel","find","o","value","label","styles","container","String","picker","divider","pickerContainer","closeButton","map","create","alignSelf","position","bottom","left","right","flexDirection","justifyContent","width","withTheme"],"sourceRoot":"../../src","sources":["PickerComponent.ios.tsx"],"mappings":"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"}
|
|
@@ -10,7 +10,11 @@ var _PortalManager = _interopRequireDefault(require("./PortalManager"));
|
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
11
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
12
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
14
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
15
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
13
16
|
const PortalContext = /*#__PURE__*/React.createContext(null);
|
|
17
|
+
|
|
14
18
|
/**
|
|
15
19
|
* Portal host renders all of its children `Portal` elements.
|
|
16
20
|
* For example, you can wrap a screen in `Portal.Host` to render items above the screen.
|
|
@@ -39,10 +43,10 @@ exports.PortalContext = PortalContext;
|
|
|
39
43
|
class PortalHost extends React.Component {
|
|
40
44
|
constructor() {
|
|
41
45
|
super(...arguments);
|
|
42
|
-
this
|
|
46
|
+
_defineProperty(this, "setManager", manager => {
|
|
43
47
|
this.manager = manager;
|
|
44
|
-
};
|
|
45
|
-
this
|
|
48
|
+
});
|
|
49
|
+
_defineProperty(this, "mount", children => {
|
|
46
50
|
const key = this.nextKey++;
|
|
47
51
|
if (this.manager) {
|
|
48
52
|
this.manager.mount(key, children);
|
|
@@ -54,8 +58,8 @@ class PortalHost extends React.Component {
|
|
|
54
58
|
});
|
|
55
59
|
}
|
|
56
60
|
return key;
|
|
57
|
-
};
|
|
58
|
-
this
|
|
61
|
+
});
|
|
62
|
+
_defineProperty(this, "update", (key, children) => {
|
|
59
63
|
if (this.manager) {
|
|
60
64
|
this.manager.update(key, children);
|
|
61
65
|
} else {
|
|
@@ -72,8 +76,8 @@ class PortalHost extends React.Component {
|
|
|
72
76
|
this.queue.push(op);
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
|
-
};
|
|
76
|
-
this
|
|
79
|
+
});
|
|
80
|
+
_defineProperty(this, "unmount", key => {
|
|
77
81
|
if (this.manager) {
|
|
78
82
|
this.manager.unmount(key);
|
|
79
83
|
} else {
|
|
@@ -82,9 +86,10 @@ class PortalHost extends React.Component {
|
|
|
82
86
|
key
|
|
83
87
|
});
|
|
84
88
|
}
|
|
85
|
-
};
|
|
86
|
-
this
|
|
87
|
-
this
|
|
89
|
+
});
|
|
90
|
+
_defineProperty(this, "nextKey", 0);
|
|
91
|
+
_defineProperty(this, "queue", []);
|
|
92
|
+
_defineProperty(this, "manager", void 0);
|
|
88
93
|
}
|
|
89
94
|
componentDidMount() {
|
|
90
95
|
const manager = this.manager;
|
|
@@ -123,41 +128,6 @@ class PortalHost extends React.Component {
|
|
|
123
128
|
}
|
|
124
129
|
}
|
|
125
130
|
exports.default = PortalHost;
|
|
126
|
-
PortalHost.displayName = "Portal.Host";
|
|
127
|
-
const styles = _reactNative.StyleSheet.create({
|
|
128
|
-
container: {
|
|
129
|
-
flex: 1
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
//# sourceMappingURL=PortalHost.js.map);
|
|
133
|
-
break;
|
|
134
|
-
case "update":
|
|
135
|
-
manager.update(action.key, action.children);
|
|
136
|
-
break;
|
|
137
|
-
case "unmount":
|
|
138
|
-
manager.unmount(action.key);
|
|
139
|
-
break;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
render() {
|
|
145
|
-
return /*#__PURE__*/React.createElement(PortalContext.Provider, {
|
|
146
|
-
value: {
|
|
147
|
-
mount: this.mount,
|
|
148
|
-
update: this.update,
|
|
149
|
-
unmount: this.unmount
|
|
150
|
-
}
|
|
151
|
-
}, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
152
|
-
style: styles.container,
|
|
153
|
-
collapsable: false,
|
|
154
|
-
pointerEvents: "box-none"
|
|
155
|
-
}, this.props.children), /*#__PURE__*/React.createElement(_PortalManager.default, {
|
|
156
|
-
ref: this.setManager
|
|
157
|
-
}));
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
exports.default = PortalHost;
|
|
161
131
|
_defineProperty(PortalHost, "displayName", "Portal.Host");
|
|
162
132
|
const styles = _reactNative.StyleSheet.create({
|
|
163
133
|
container: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PortalContext","React","createContext","PortalHost","Component","
|
|
1
|
+
{"version":3,"names":["PortalContext","React","createContext","PortalHost","Component","manager","children","key","nextKey","mount","queue","push","type","update","op","index","findIndex","o","unmount","componentDidMount","length","action","pop","render","styles","container","props","setManager","StyleSheet","create","flex"],"sourceRoot":"../../src","sources":["PortalHost.tsx"],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ var _context = require("./context");
|
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
15
16
|
const RadioButton = _ref => {
|
|
16
17
|
let {
|
|
17
18
|
Icon,
|
|
@@ -33,25 +34,13 @@ const RadioButton = _ref => {
|
|
|
33
34
|
} = (0, _context.useRadioButtonGroupContext)();
|
|
34
35
|
const realValue = (0, _utilities.getValueForRadioButton)(value);
|
|
35
36
|
const realContextValue = (0, _utilities.getValueForRadioButton)(contextValue);
|
|
36
|
-
const isSelected = selected
|
|
37
|
+
const isSelected = selected ?? realContextValue === realValue;
|
|
37
38
|
const handlePress = () => {
|
|
38
39
|
onPress === null || onPress === void 0 ? void 0 : onPress(realValue);
|
|
39
40
|
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(realValue);
|
|
40
41
|
};
|
|
41
|
-
return /*#__PURE__*/React.createElement(_IconButton.default, {
|
|
42
|
+
return /*#__PURE__*/React.createElement(_IconButton.default, _extends({
|
|
42
43
|
Icon: Icon,
|
|
43
|
-
icon: isSelected ? selectedIcon : unselectedIcon,
|
|
44
|
-
color: isSelected ? color : unselectedColor,
|
|
45
|
-
disabled: disabled,
|
|
46
|
-
onPress: handlePress,
|
|
47
|
-
size: size,
|
|
48
|
-
style: style,
|
|
49
|
-
...rest
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
var _default = RadioButton;
|
|
53
|
-
exports.default = _default;
|
|
54
|
-
//# sourceMappingURL=RadioButton.js.mapon,
|
|
55
44
|
icon: isSelected ? selectedIcon : unselectedIcon,
|
|
56
45
|
color: isSelected ? color : unselectedColor,
|
|
57
46
|
disabled: disabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RadioButton","Icon","disabled","color","value","selected","unselectedColor","onPress","size","Config","radioButtonSize","selectedIcon","unselectedIcon","style","rest","contextValue","onValueChange","useRadioButtonGroupContext","realValue","getValueForRadioButton","realContextValue","isSelected","handlePress"
|
|
1
|
+
{"version":3,"names":["RadioButton","Icon","disabled","color","value","selected","unselectedColor","onPress","size","Config","radioButtonSize","selectedIcon","unselectedIcon","style","rest","contextValue","onValueChange","useRadioButtonGroupContext","realValue","getValueForRadioButton","realContextValue","isSelected","handlePress"],"sourceRoot":"../../src","sources":["RadioButton.tsx"],"mappings":";;;;;;AAAA;AAGA;AACA;AACA;AACA;AAAuD;AAAA;AAAA;AAAA;AAiBvD,MAAMA,WAAuC,GAAG,QAa1C;EAAA,IAb2C;IAC/CC,IAAI;IACJC,QAAQ,GAAG,KAAK;IAChBC,KAAK;IACLC,KAAK,GAAG,EAAE;IACVC,QAAQ;IACRC,eAAe;IACfC,OAAO;IACPC,IAAI,GAAGC,eAAM,CAACC,eAAe;IAC7BC,YAAY,GAAG,oCAAoC;IACnDC,cAAc,GAAG,sCAAsC;IACvDC,KAAK;IACL,GAAGC;EACL,CAAC;EACC,MAAM;IAAEV,KAAK,EAAEW,YAAY;IAAEC;EAAc,CAAC,GAAG,IAAAC,mCAA0B,GAAE;EAE3E,MAAMC,SAAS,GAAG,IAAAC,iCAAsB,EAACf,KAAK,CAAC;EAC/C,MAAMgB,gBAAgB,GAAG,IAAAD,iCAAsB,EAACJ,YAAY,CAAC;EAC7D,MAAMM,UAAU,GAAGhB,QAAQ,IAAIe,gBAAgB,KAAKF,SAAS;EAE7D,MAAMI,WAAW,GAAG,MAAM;IACxBf,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGW,SAAS,CAAC;IACpBF,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAGE,SAAS,CAAC;EAC5B,CAAC;EAED,oBACE,oBAAC,mBAAU;IACT,IAAI,EAAEjB,IAAK;IACX,IAAI,EAAEoB,UAAU,GAAGV,YAAY,GAAGC,cAAe;IACjD,KAAK,EAAES,UAAU,GAAGlB,KAAK,GAAGG,eAAgB;IAC5C,QAAQ,EAAEJ,QAAS;IACnB,OAAO,EAAEoB,WAAY;IACrB,IAAI,EAAEd,IAAK;IACX,KAAK,EAAEK;EAAM,GACTC,IAAI,EACR;AAEN,CAAC;AAAC,eAEad,WAAW;AAAA"}
|
|
@@ -12,8 +12,7 @@ var _theming = require("../theming");
|
|
|
12
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
17
16
|
const Surface = _ref => {
|
|
18
17
|
let {
|
|
19
18
|
elevation: propElevation,
|
|
@@ -43,23 +42,13 @@ const Surface = _ref => {
|
|
|
43
42
|
return colors.surface;
|
|
44
43
|
}
|
|
45
44
|
};
|
|
46
|
-
return /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
|
|
47
|
-
...rest,
|
|
45
|
+
return /*#__PURE__*/React.createElement(_reactNative.Animated.View, _extends({}, rest, {
|
|
48
46
|
style: [{
|
|
49
47
|
backgroundColor: getBackgroundColor(),
|
|
50
48
|
elevation,
|
|
51
49
|
...evalationStyles,
|
|
52
50
|
...restStyle
|
|
53
51
|
}]
|
|
54
|
-
}, children);
|
|
55
|
-
};
|
|
56
|
-
var _default = (0, _theming.withTheme)(Surface);
|
|
57
|
-
exports.default = _default;
|
|
58
|
-
//# sourceMappingURL=Surface.js.map backgroundColor: getBackgroundColor(),
|
|
59
|
-
elevation,
|
|
60
|
-
...evalationStyles,
|
|
61
|
-
...restStyle
|
|
62
|
-
}]
|
|
63
52
|
}), children);
|
|
64
53
|
};
|
|
65
54
|
var _default = (0, _theming.withTheme)(Surface);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Surface","elevation","propElevation","style","theme","children","rest","styleElevation","backgroundColor","restStyle","StyleSheet","flatten","dark","isDarkTheme","mode","colors","evalationStyles","shadow","getBackgroundColor","overlay","surface","
|
|
1
|
+
{"version":3,"names":["Surface","elevation","propElevation","style","theme","children","rest","styleElevation","backgroundColor","restStyle","StyleSheet","flatten","dark","isDarkTheme","mode","colors","evalationStyles","shadow","getBackgroundColor","overlay","surface","withTheme"],"sourceRoot":"../../src","sources":["Surface.tsx"],"mappings":";;;;;;AACA;AACA;AAQA;AACA;AACA;AAAuC;AAAA;AAAA;AAAA;AASvC,MAAMA,OAAiD,GAAG,QAMpD;EAAA,IANqD;IACzDC,SAAS,EAAEC,aAAa;IACxBC,KAAK;IACLC,KAAK;IACLC,QAAQ;IACR,GAAGC;EACL,CAAC;EACC,MAAM;IACJL,SAAS,EAAEM,cAAc,GAAG,CAAC;IAC7BC,eAAe;IACf,GAAGC;EACL,CAAC,GAAIC,uBAAU,CAACC,OAAO,CAACR,KAAK,CAAC,IAAI,CAAC,CAAe;EAElD,MAAM;IAAES,IAAI,EAAEC,WAAW;IAAEC,IAAI;IAAEC;EAAO,CAAC,GAAGX,KAAK;EAEjD,MAAMH,SAAS,GAAGC,aAAa,IAAIK,cAAc;EAEjD,MAAMS,eAAe,GAAGf,SAAS,GAAG,IAAAgB,eAAM,EAAChB,SAAS,CAAC,GAAG,CAAC,CAAC;EAE1D,MAAMiB,kBAAkB,GAAG,MAAM;IAC/B,IAAIV,eAAe,EAAE;MACnB,OAAOA,eAAe;IACxB,CAAC,MAAM,IAAIK,WAAW,IAAIC,IAAI,KAAK,UAAU,EAAE;MAC7C,OAAO,IAAAK,gBAAO,EAAClB,SAAS,EAAEc,MAAM,CAACK,OAAO,CAAC;IAC3C,CAAC,MAAM;MACL,OAAOL,MAAM,CAACK,OAAO;IACvB;EACF,CAAC;EAED,oBACE,oBAAC,qBAAQ,CAAC,IAAI,eACRd,IAAI;IACR,KAAK,EAAE,CACL;MACEE,eAAe,EAAEU,kBAAkB,EAAE;MACrCjB,SAAS;MACT,GAAGe,eAAe;MAClB,GAAGP;IACL,CAAC;EACD,IAEDJ,QAAQ,CACK;AAEpB,CAAC;AAAC,eAEa,IAAAgB,kBAAS,EAACrB,OAAO,CAAC;AAAA"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -33,6 +33,12 @@ Object.defineProperty(exports, "ActionSheetItem", {
|
|
|
33
33
|
return _ActionSheet.ActionSheetItem;
|
|
34
34
|
}
|
|
35
35
|
});
|
|
36
|
+
Object.defineProperty(exports, "Banner", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _Banner.default;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
36
42
|
Object.defineProperty(exports, "Button", {
|
|
37
43
|
enumerable: true,
|
|
38
44
|
get: function () {
|
|
@@ -248,6 +254,7 @@ var _theming = require("./theming");
|
|
|
248
254
|
var _Provider = _interopRequireDefault(require("./Provider"));
|
|
249
255
|
var _DefaultTheme = _interopRequireDefault(require("./styles/DefaultTheme"));
|
|
250
256
|
var _ScreenContainer = _interopRequireDefault(require("./components/ScreenContainer"));
|
|
257
|
+
var _Banner = _interopRequireDefault(require("./components/Banner"));
|
|
251
258
|
var _Button = require("./components/Button");
|
|
252
259
|
var _Text = require("./components/Text");
|
|
253
260
|
var _IconButton = _interopRequireDefault(require("./components/IconButton"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAGA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AACA;AACA;AAGA;AACA;AAMA;AACA;AACA;AACA;AAGA;AAGA;AAUA;AAGA;AAGA;AAIkC;AAAA;AAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
1
2
|
import * as React from "react";
|
|
2
3
|
import { Pressable, StyleSheet, View } from "react-native";
|
|
3
4
|
import Text from "../Text";
|
|
@@ -17,10 +18,9 @@ const AccordionItem = _ref => {
|
|
|
17
18
|
textStyles,
|
|
18
19
|
viewStyles
|
|
19
20
|
} = extractStyles(style);
|
|
20
|
-
return /*#__PURE__*/React.createElement(Pressable, {
|
|
21
|
-
style: [styles.container, viewStyles]
|
|
22
|
-
|
|
23
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
21
|
+
return /*#__PURE__*/React.createElement(Pressable, _extends({
|
|
22
|
+
style: [styles.container, viewStyles]
|
|
23
|
+
}, rest), /*#__PURE__*/React.createElement(View, {
|
|
24
24
|
style: styles.row
|
|
25
25
|
}, icon ? /*#__PURE__*/React.createElement(Icon, {
|
|
26
26
|
name: icon,
|
|
@@ -52,23 +52,4 @@ const styles = StyleSheet.create({
|
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
54
|
export default withTheme(AccordionItem);
|
|
55
|
-
//# sourceMappingURL=AccordionItem.js.map StyleSheet.create({
|
|
56
|
-
container: {
|
|
57
|
-
padding: 8
|
|
58
|
-
},
|
|
59
|
-
row: {
|
|
60
|
-
flexDirection: "row",
|
|
61
|
-
alignItems: "center",
|
|
62
|
-
paddingLeft: 8
|
|
63
|
-
},
|
|
64
|
-
item: {
|
|
65
|
-
marginVertical: 6,
|
|
66
|
-
paddingLeft: 8
|
|
67
|
-
},
|
|
68
|
-
content: {
|
|
69
|
-
flex: 1,
|
|
70
|
-
justifyContent: "center"
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
export default withTheme(AccordionItem);
|
|
74
55
|
//# sourceMappingURL=AccordionItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","StyleSheet","View","Text","extractStyles","withTheme","AccordionItem","Icon","icon","label","style","iconColor","theme","rest","textStyles","viewStyles","
|
|
1
|
+
{"version":3,"names":["React","Pressable","StyleSheet","View","Text","extractStyles","withTheme","AccordionItem","Icon","icon","label","style","iconColor","theme","rest","textStyles","viewStyles","styles","container","row","colors","primary","item","content","create","padding","flexDirection","alignItems","paddingLeft","marginVertical","flex","justifyContent"],"sourceRoot":"../../src","sources":["AccordionItem.tsx"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SACEC,SAAS,EACTC,UAAU,EACVC,IAAI,QAGC,cAAc;AAErB,OAAOC,IAAI,MAAM,SAAS;AAE1B,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,SAAS,QAAQ,eAAe;AAWzC,MAAMC,aAAa,GAAG,QAQT;EAAA,IARU;IACrBC,IAAI;IACJC,IAAI;IACJC,KAAK;IACLC,KAAK;IACLC,SAAS;IACTC,KAAK;IACL,GAAGC;EACE,CAAC;EACN,MAAM;IAAEC,UAAU;IAAEC;EAAW,CAAC,GAAGX,aAAa,CAACM,KAAK,CAAC;EAEvD,oBACE,oBAAC,SAAS;IAAC,KAAK,EAAE,CAACM,MAAM,CAACC,SAAS,EAAEF,UAAU;EAAE,GAAKF,IAAI,gBACxD,oBAAC,IAAI;IAAC,KAAK,EAAEG,MAAM,CAACE;EAAI,GACrBV,IAAI,gBACH,oBAAC,IAAI;IACH,IAAI,EAAEA,IAAK;IACX,IAAI,EAAE,EAAG;IACT,KAAK,EAAEG,SAAS,IAAIC,KAAK,CAACO,MAAM,CAACC;EAAQ,EACzC,GACA,IAAI,eACR,oBAAC,IAAI;IAAC,KAAK,EAAE,CAACJ,MAAM,CAACK,IAAI,EAAEL,MAAM,CAACM,OAAO;EAAE,gBACzC,oBAAC,IAAI;IAAC,UAAU,EAAE,KAAM;IAAC,KAAK,EAAER;EAAW,GACxCL,KAAK,CACD,CACF,CACF,CACG;AAEhB,CAAC;AAED,MAAMO,MAAM,GAAGf,UAAU,CAACsB,MAAM,CAAC;EAC/BN,SAAS,EAAE;IACTO,OAAO,EAAE;EACX,CAAC;EACDN,GAAG,EAAE;IACHO,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,WAAW,EAAE;EACf,CAAC;EACDN,IAAI,EAAE;IACJO,cAAc,EAAE,CAAC;IACjBD,WAAW,EAAE;EACf,CAAC;EACDL,OAAO,EAAE;IACPO,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC;AAEF,eAAezB,SAAS,CAACC,aAAa,CAAC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Button, Text, View, StyleSheet, Animated } from "react-native";
|
|
4
|
+
import Surface from "./Surface";
|
|
5
|
+
import shadow from "../styles/shadow";
|
|
6
|
+
import { withTheme } from "../theming";
|
|
7
|
+
const ELEVATION = 1;
|
|
8
|
+
const DEFAULT_MAX_WIDTH = 960;
|
|
9
|
+
const Banner = _ref => {
|
|
10
|
+
let {
|
|
11
|
+
initiallyVisible = true,
|
|
12
|
+
dismissable = true,
|
|
13
|
+
icon,
|
|
14
|
+
buttonColor,
|
|
15
|
+
content,
|
|
16
|
+
contentStyle,
|
|
17
|
+
style,
|
|
18
|
+
theme,
|
|
19
|
+
Icon,
|
|
20
|
+
...rest
|
|
21
|
+
} = _ref;
|
|
22
|
+
const [visible, setVisible] = React.useState(initiallyVisible);
|
|
23
|
+
React.useEffect(() => {
|
|
24
|
+
if (initiallyVisible) {
|
|
25
|
+
setVisible(true);
|
|
26
|
+
}
|
|
27
|
+
}, [initiallyVisible]);
|
|
28
|
+
const {
|
|
29
|
+
current: position
|
|
30
|
+
} = React.useRef(new Animated.Value(visible ? 1 : 0));
|
|
31
|
+
const [layout, setLayout] = React.useState({
|
|
32
|
+
height: 0,
|
|
33
|
+
measured: false
|
|
34
|
+
});
|
|
35
|
+
React.useEffect(() => {
|
|
36
|
+
if (visible) {
|
|
37
|
+
// show
|
|
38
|
+
Animated.timing(position, {
|
|
39
|
+
duration: 250,
|
|
40
|
+
toValue: 1,
|
|
41
|
+
useNativeDriver: false
|
|
42
|
+
}).start();
|
|
43
|
+
} else {
|
|
44
|
+
// hide
|
|
45
|
+
Animated.timing(position, {
|
|
46
|
+
duration: 200,
|
|
47
|
+
toValue: 0,
|
|
48
|
+
useNativeDriver: false
|
|
49
|
+
}).start();
|
|
50
|
+
}
|
|
51
|
+
}, [visible, position]);
|
|
52
|
+
const handleLayout = _ref2 => {
|
|
53
|
+
let {
|
|
54
|
+
nativeEvent
|
|
55
|
+
} = _ref2;
|
|
56
|
+
const {
|
|
57
|
+
height
|
|
58
|
+
} = nativeEvent.layout;
|
|
59
|
+
setLayout({
|
|
60
|
+
height,
|
|
61
|
+
measured: true
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// The banner animation has 2 parts:
|
|
66
|
+
// 1. Blank spacer element which animates its height to move the content
|
|
67
|
+
// 2. Actual banner which animates its translateY
|
|
68
|
+
// In initial render, we position everything normally and measure the height of the banner
|
|
69
|
+
// Once we have the height, we apply the height to the spacer and switch the banner to position: absolute
|
|
70
|
+
// We need this because we need to move the content below as if banner's height was being animated
|
|
71
|
+
// However we can't animated banner's height directly as it'll also resize the content inside
|
|
72
|
+
const height = Animated.multiply(position, layout.height);
|
|
73
|
+
const translateY = Animated.multiply(Animated.add(position, -1), layout.height);
|
|
74
|
+
return /*#__PURE__*/React.createElement(Surface, _extends({}, rest, {
|
|
75
|
+
style: [styles.container, shadow(ELEVATION), style]
|
|
76
|
+
}), /*#__PURE__*/React.createElement(View, {
|
|
77
|
+
style: [styles.wrapper, contentStyle]
|
|
78
|
+
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
79
|
+
style: {
|
|
80
|
+
height
|
|
81
|
+
}
|
|
82
|
+
}), /*#__PURE__*/React.createElement(Animated.View, {
|
|
83
|
+
onLayout: handleLayout,
|
|
84
|
+
style: [layout.measured || !visible ?
|
|
85
|
+
// If we have measured banner's height or it's invisible,
|
|
86
|
+
// Position it absolutely, the layout will be taken care of the spacer
|
|
87
|
+
[styles.absolute, {
|
|
88
|
+
transform: [{
|
|
89
|
+
translateY
|
|
90
|
+
}]
|
|
91
|
+
}] :
|
|
92
|
+
// Otherwise position it normally
|
|
93
|
+
null, !layout.measured && !visible ?
|
|
94
|
+
// If we haven't measured banner's height yet and it's invisible,
|
|
95
|
+
// hide it with opacity: 0 so user doesn't see it
|
|
96
|
+
{
|
|
97
|
+
opacity: 0
|
|
98
|
+
} : null]
|
|
99
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
100
|
+
style: [styles.content, {
|
|
101
|
+
marginBottom: dismissable ? 0 : 16
|
|
102
|
+
}]
|
|
103
|
+
}, icon ? /*#__PURE__*/React.createElement(View, {
|
|
104
|
+
style: styles.icon
|
|
105
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
106
|
+
name: icon,
|
|
107
|
+
size: 40
|
|
108
|
+
})) : null, /*#__PURE__*/React.createElement(Text, {
|
|
109
|
+
style: [styles.message, {
|
|
110
|
+
color: theme.colors.text
|
|
111
|
+
}],
|
|
112
|
+
accessibilityLiveRegion: visible ? "polite" : "none",
|
|
113
|
+
accessibilityRole: "alert"
|
|
114
|
+
}, content)), dismissable ? /*#__PURE__*/React.createElement(View, {
|
|
115
|
+
style: styles.actions
|
|
116
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
117
|
+
color: buttonColor || theme.colors.primary,
|
|
118
|
+
title: "Close",
|
|
119
|
+
onPress: () => setVisible(false)
|
|
120
|
+
})) : null)));
|
|
121
|
+
};
|
|
122
|
+
const styles = StyleSheet.create({
|
|
123
|
+
container: {
|
|
124
|
+
elevation: ELEVATION
|
|
125
|
+
},
|
|
126
|
+
wrapper: {
|
|
127
|
+
overflow: "hidden",
|
|
128
|
+
alignSelf: "center",
|
|
129
|
+
width: "100%",
|
|
130
|
+
maxWidth: DEFAULT_MAX_WIDTH
|
|
131
|
+
},
|
|
132
|
+
absolute: {
|
|
133
|
+
position: "absolute",
|
|
134
|
+
top: 0,
|
|
135
|
+
width: "100%"
|
|
136
|
+
},
|
|
137
|
+
content: {
|
|
138
|
+
flexDirection: "row",
|
|
139
|
+
justifyContent: "flex-start",
|
|
140
|
+
marginHorizontal: 8,
|
|
141
|
+
marginTop: 16,
|
|
142
|
+
marginBottom: 0
|
|
143
|
+
},
|
|
144
|
+
icon: {
|
|
145
|
+
margin: 8
|
|
146
|
+
},
|
|
147
|
+
message: {
|
|
148
|
+
flex: 1,
|
|
149
|
+
margin: 8
|
|
150
|
+
},
|
|
151
|
+
actions: {
|
|
152
|
+
flexDirection: "row",
|
|
153
|
+
justifyContent: "flex-end",
|
|
154
|
+
margin: 8
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
export default withTheme(Banner);
|
|
158
|
+
//# sourceMappingURL=Banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Button","Text","View","StyleSheet","Animated","Surface","shadow","withTheme","ELEVATION","DEFAULT_MAX_WIDTH","Banner","initiallyVisible","dismissable","icon","buttonColor","content","contentStyle","style","theme","Icon","rest","visible","setVisible","useState","useEffect","current","position","useRef","Value","layout","setLayout","height","measured","timing","duration","toValue","useNativeDriver","start","handleLayout","nativeEvent","multiply","translateY","add","styles","container","wrapper","absolute","transform","opacity","marginBottom","message","color","colors","text","actions","primary","create","elevation","overflow","alignSelf","width","maxWidth","top","flexDirection","justifyContent","marginHorizontal","marginTop","margin","flex"],"sourceRoot":"../../src","sources":["Banner.tsx"],"mappings":"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"}
|
package/lib/module/index.js
CHANGED
|
@@ -5,6 +5,7 @@ export { default as DefaultTheme } from "./styles/DefaultTheme";
|
|
|
5
5
|
|
|
6
6
|
// BASIC
|
|
7
7
|
export { default as ScreenContainer } from "./components/ScreenContainer";
|
|
8
|
+
export { default as Banner } from "./components/Banner";
|
|
8
9
|
|
|
9
10
|
// BUTTONS
|
|
10
11
|
export { Button } from "./components/Button";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["injectIcon","withTheme","ThemeProvider","default","Provider","DefaultTheme","ScreenContainer","Button","Link","IconButton","Touchable","DatePicker","NumberInput","TextField","Picker","Checkbox","CheckboxGroup","CheckboxRow","RadioButton","RadioButtonGroup","RadioButtonRow","RadioButtonFieldGroup","Slider","Stepper","StarRating","Switch","SwitchRow","SVG","Center","Circle","Square","Row","Stack","Spacer","Swiper","SwiperItem","AccordionGroup","AccordionItem","ActionSheet","ActionSheetItem","ActionSheetCancel"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,SAAS,EAAEC,aAAa,QAAQ,WAAW;AACpD,SAASC,OAAO,IAAIC,QAAQ,QAAQ,YAAY;AAChD,SAASD,OAAO,IAAIE,YAAY,QAAQ,uBAAuB;;AAE/D;AACA,SAASF,OAAO,IAAIG,eAAe,QAAQ,8BAA8B;;
|
|
1
|
+
{"version":3,"names":["injectIcon","withTheme","ThemeProvider","default","Provider","DefaultTheme","ScreenContainer","Banner","Button","Link","IconButton","Touchable","DatePicker","NumberInput","TextField","Picker","Checkbox","CheckboxGroup","CheckboxRow","RadioButton","RadioButtonGroup","RadioButtonRow","RadioButtonFieldGroup","Slider","Stepper","StarRating","Switch","SwitchRow","SVG","Center","Circle","Square","Row","Stack","Spacer","Swiper","SwiperItem","AccordionGroup","AccordionItem","ActionSheet","ActionSheetItem","ActionSheetCancel"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,SAAS,EAAEC,aAAa,QAAQ,WAAW;AACpD,SAASC,OAAO,IAAIC,QAAQ,QAAQ,YAAY;AAChD,SAASD,OAAO,IAAIE,YAAY,QAAQ,uBAAuB;;AAE/D;AACA,SAASF,OAAO,IAAIG,eAAe,QAAQ,8BAA8B;AACzE,SAASH,OAAO,IAAII,MAAM,QAAQ,qBAAqB;;AAEvD;AACA,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,IAAI,QAAQ,mBAAmB;AACxC,SAASN,OAAO,IAAIO,UAAU,QAAQ,yBAAyB;AAC/D,SAASP,OAAO,IAAIQ,SAAS,QAAQ,wBAAwB;;AAE7D;AACA,SAASR,OAAO,IAAIS,UAAU,QAAQ,oCAAoC;AAC1E,SAAST,OAAO,IAAIU,WAAW,QAAQ,0BAA0B;AACjE,SAASV,OAAO,IAAIW,SAAS,QAAQ,wBAAwB;AAC7D,SAASX,OAAO,IAAIY,MAAM,QAAQ,4BAA4B;;AAE9D;AACA,SAASC,QAAQ,EAAEC,aAAa,EAAEC,WAAW,QAAQ,uBAAuB;AAC5E,SACEC,WAAW,EACXC,gBAAgB,EAChBC,cAAc,EACdC,qBAAqB,QAChB,gCAAgC;AACvC,SAASnB,OAAO,IAAIoB,MAAM,QAAQ,qBAAqB;AACvD,SAASpB,OAAO,IAAIqB,OAAO,QAAQ,sBAAsB;AACzD,SAASrB,OAAO,IAAIsB,UAAU,QAAQ,yBAAyB;AAC/D,SAAStB,OAAO,IAAIuB,MAAM,EAAEC,SAAS,QAAQ,qBAAqB;;AAElE;AACA,SAASxB,OAAO,IAAIyB,GAAG,QAAQ,kBAAkB;;AAEjD;AACA,SACEC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,GAAG,EACHC,KAAK,EACLC,MAAM,QACD,qBAAqB;;AAE5B;AACA,SAASC,MAAM,EAAEC,UAAU,QAAQ,qBAAqB;;AAExD;AACA,SAASC,cAAc,EAAEC,aAAa,QAAQ,wBAAwB;;AAEtE;AACA,SACEC,WAAW,EACXC,eAAe,EACfC,iBAAiB,QACZ,0BAA0B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { View, ViewStyle, StyleProp } from "react-native";
|
|
3
|
+
import type { IconSlot } from "../interfaces/Icon";
|
|
4
|
+
import type { Theme } from "../styles/DefaultTheme";
|
|
5
|
+
type Props = {
|
|
6
|
+
initiallyVisible: boolean;
|
|
7
|
+
dismissable: boolean;
|
|
8
|
+
buttonColor?: string;
|
|
9
|
+
icon?: string;
|
|
10
|
+
content?: string;
|
|
11
|
+
contentStyle?: StyleProp<ViewStyle>;
|
|
12
|
+
style?: StyleProp<ViewStyle>;
|
|
13
|
+
ref?: React.RefObject<View>;
|
|
14
|
+
/**
|
|
15
|
+
* @optional
|
|
16
|
+
*/
|
|
17
|
+
theme: Theme;
|
|
18
|
+
} & IconSlot;
|
|
19
|
+
declare const _default: React.ComponentType<import("@draftbit/react-theme-provider").$Without<React.PropsWithChildren<Props>, "theme"> & {
|
|
20
|
+
theme?: import("@draftbit/react-theme-provider").$DeepPartial<any> | undefined;
|
|
21
|
+
}> & import("@draftbit/react-theme-provider/typings/hoist-non-react-statics").NonReactStatics<React.ComponentType<React.PropsWithChildren<Props>> & React.FC<React.PropsWithChildren<Props>>, {}>;
|
|
22
|
+
export default _default;
|
|
23
|
+
//# sourceMappingURL=Banner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../../src/components/Banner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAGL,IAAI,EACJ,SAAS,EAET,SAAS,EAEV,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAKpD,KAAK,KAAK,GAAG;IACX,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5B;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;CACd,GAAG,QAAQ,CAAC;;;;AA2Kb,wBAAiC"}
|
|
@@ -3,6 +3,7 @@ export { withTheme, ThemeProvider } from "./theming";
|
|
|
3
3
|
export { default as Provider } from "./Provider";
|
|
4
4
|
export { default as DefaultTheme } from "./styles/DefaultTheme";
|
|
5
5
|
export { default as ScreenContainer } from "./components/ScreenContainer";
|
|
6
|
+
export { default as Banner } from "./components/Banner";
|
|
6
7
|
export { Button } from "./components/Button";
|
|
7
8
|
export { Link } from "./components/Text";
|
|
8
9
|
export { default as IconButton } from "./components/IconButton";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGhE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAG/D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGnE,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,GAAG,EACH,KAAK,EACL,MAAM,GACP,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAGvE,OAAO,EACL,WAAW,EACX,eAAe,EACf,iBAAiB,GAClB,MAAM,0BAA0B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@draftbit/core",
|
|
3
|
-
"version": "47.0.0-
|
|
3
|
+
"version": "47.0.0-3bcd8b.2+3bcd8b6",
|
|
4
4
|
"description": "Core (non-native) Components",
|
|
5
5
|
"main": "lib/commonjs/index.js",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@date-io/date-fns": "^1.3.13",
|
|
43
43
|
"@draftbit/react-theme-provider": "^2.1.1",
|
|
44
|
-
"@draftbit/types": "^47.0.0-
|
|
44
|
+
"@draftbit/types": "^47.0.0-3bcd8b.2+3bcd8b6",
|
|
45
45
|
"@material-ui/core": "^4.11.0",
|
|
46
46
|
"@material-ui/pickers": "^3.2.10",
|
|
47
47
|
"@react-native-community/slider": "4.2.3",
|
|
@@ -81,5 +81,5 @@
|
|
|
81
81
|
]
|
|
82
82
|
]
|
|
83
83
|
},
|
|
84
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "3bcd8b649dd4d465eb5fba1664077ccc7fc8b878"
|
|
85
85
|
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Button, Text, View, StyleSheet, Animated, } from "react-native";
|
|
3
|
+
import Surface from "./Surface";
|
|
4
|
+
import shadow from "../styles/shadow";
|
|
5
|
+
import { withTheme } from "../theming";
|
|
6
|
+
const ELEVATION = 1;
|
|
7
|
+
const DEFAULT_MAX_WIDTH = 960;
|
|
8
|
+
const Banner = ({ initiallyVisible = true, dismissable = true, icon, buttonColor, content, contentStyle, style, theme, Icon, ...rest }) => {
|
|
9
|
+
const [visible, setVisible] = React.useState(initiallyVisible);
|
|
10
|
+
React.useEffect(() => {
|
|
11
|
+
if (initiallyVisible) {
|
|
12
|
+
setVisible(true);
|
|
13
|
+
}
|
|
14
|
+
}, [initiallyVisible]);
|
|
15
|
+
const { current: position } = React.useRef(new Animated.Value(visible ? 1 : 0));
|
|
16
|
+
const [layout, setLayout] = React.useState({
|
|
17
|
+
height: 0,
|
|
18
|
+
measured: false,
|
|
19
|
+
});
|
|
20
|
+
React.useEffect(() => {
|
|
21
|
+
if (visible) {
|
|
22
|
+
// show
|
|
23
|
+
Animated.timing(position, {
|
|
24
|
+
duration: 250,
|
|
25
|
+
toValue: 1,
|
|
26
|
+
useNativeDriver: false,
|
|
27
|
+
}).start();
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// hide
|
|
31
|
+
Animated.timing(position, {
|
|
32
|
+
duration: 200,
|
|
33
|
+
toValue: 0,
|
|
34
|
+
useNativeDriver: false,
|
|
35
|
+
}).start();
|
|
36
|
+
}
|
|
37
|
+
}, [visible, position]);
|
|
38
|
+
const handleLayout = ({ nativeEvent }) => {
|
|
39
|
+
const { height } = nativeEvent.layout;
|
|
40
|
+
setLayout({ height, measured: true });
|
|
41
|
+
};
|
|
42
|
+
// The banner animation has 2 parts:
|
|
43
|
+
// 1. Blank spacer element which animates its height to move the content
|
|
44
|
+
// 2. Actual banner which animates its translateY
|
|
45
|
+
// In initial render, we position everything normally and measure the height of the banner
|
|
46
|
+
// Once we have the height, we apply the height to the spacer and switch the banner to position: absolute
|
|
47
|
+
// We need this because we need to move the content below as if banner's height was being animated
|
|
48
|
+
// However we can't animated banner's height directly as it'll also resize the content inside
|
|
49
|
+
const height = Animated.multiply(position, layout.height);
|
|
50
|
+
const translateY = Animated.multiply(Animated.add(position, -1), layout.height);
|
|
51
|
+
return (React.createElement(Surface, { ...rest, style: [styles.container, shadow(ELEVATION), style] },
|
|
52
|
+
React.createElement(View, { style: [styles.wrapper, contentStyle] },
|
|
53
|
+
React.createElement(Animated.View, { style: { height } }),
|
|
54
|
+
React.createElement(Animated.View, { onLayout: handleLayout, style: [
|
|
55
|
+
layout.measured || !visible
|
|
56
|
+
? // If we have measured banner's height or it's invisible,
|
|
57
|
+
// Position it absolutely, the layout will be taken care of the spacer
|
|
58
|
+
[styles.absolute, { transform: [{ translateY }] }]
|
|
59
|
+
: // Otherwise position it normally
|
|
60
|
+
null,
|
|
61
|
+
!layout.measured && !visible
|
|
62
|
+
? // If we haven't measured banner's height yet and it's invisible,
|
|
63
|
+
// hide it with opacity: 0 so user doesn't see it
|
|
64
|
+
{ opacity: 0 }
|
|
65
|
+
: null,
|
|
66
|
+
] },
|
|
67
|
+
React.createElement(View, { style: [styles.content, { marginBottom: dismissable ? 0 : 16 }] },
|
|
68
|
+
icon ? (React.createElement(View, { style: styles.icon },
|
|
69
|
+
React.createElement(Icon, { name: icon, size: 40 }))) : null,
|
|
70
|
+
React.createElement(Text, { style: [styles.message, { color: theme.colors.text }], accessibilityLiveRegion: visible ? "polite" : "none", accessibilityRole: "alert" }, content)),
|
|
71
|
+
dismissable ? (React.createElement(View, { style: styles.actions },
|
|
72
|
+
React.createElement(Button, { color: buttonColor || theme.colors.primary, title: "Close", onPress: () => setVisible(false) }))) : null))));
|
|
73
|
+
};
|
|
74
|
+
const styles = StyleSheet.create({
|
|
75
|
+
container: {
|
|
76
|
+
elevation: ELEVATION,
|
|
77
|
+
},
|
|
78
|
+
wrapper: {
|
|
79
|
+
overflow: "hidden",
|
|
80
|
+
alignSelf: "center",
|
|
81
|
+
width: "100%",
|
|
82
|
+
maxWidth: DEFAULT_MAX_WIDTH,
|
|
83
|
+
},
|
|
84
|
+
absolute: {
|
|
85
|
+
position: "absolute",
|
|
86
|
+
top: 0,
|
|
87
|
+
width: "100%",
|
|
88
|
+
},
|
|
89
|
+
content: {
|
|
90
|
+
flexDirection: "row",
|
|
91
|
+
justifyContent: "flex-start",
|
|
92
|
+
marginHorizontal: 8,
|
|
93
|
+
marginTop: 16,
|
|
94
|
+
marginBottom: 0,
|
|
95
|
+
},
|
|
96
|
+
icon: {
|
|
97
|
+
margin: 8,
|
|
98
|
+
},
|
|
99
|
+
message: {
|
|
100
|
+
flex: 1,
|
|
101
|
+
margin: 8,
|
|
102
|
+
},
|
|
103
|
+
actions: {
|
|
104
|
+
flexDirection: "row",
|
|
105
|
+
justifyContent: "flex-end",
|
|
106
|
+
margin: 8,
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
export default withTheme(Banner);
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import {
|
|
3
|
+
Button,
|
|
4
|
+
Text,
|
|
5
|
+
View,
|
|
6
|
+
ViewStyle,
|
|
7
|
+
StyleSheet,
|
|
8
|
+
StyleProp,
|
|
9
|
+
Animated,
|
|
10
|
+
} from "react-native";
|
|
11
|
+
import Surface from "./Surface";
|
|
12
|
+
import type { IconSlot } from "../interfaces/Icon";
|
|
13
|
+
import shadow from "../styles/shadow";
|
|
14
|
+
import { withTheme } from "../theming";
|
|
15
|
+
import type { Theme } from "../styles/DefaultTheme";
|
|
16
|
+
|
|
17
|
+
const ELEVATION = 1;
|
|
18
|
+
const DEFAULT_MAX_WIDTH = 960;
|
|
19
|
+
|
|
20
|
+
type Props = {
|
|
21
|
+
initiallyVisible: boolean;
|
|
22
|
+
dismissable: boolean;
|
|
23
|
+
buttonColor?: string;
|
|
24
|
+
icon?: string;
|
|
25
|
+
content?: string;
|
|
26
|
+
contentStyle?: StyleProp<ViewStyle>;
|
|
27
|
+
style?: StyleProp<ViewStyle>;
|
|
28
|
+
ref?: React.RefObject<View>;
|
|
29
|
+
/**
|
|
30
|
+
* @optional
|
|
31
|
+
*/
|
|
32
|
+
theme: Theme;
|
|
33
|
+
} & IconSlot;
|
|
34
|
+
|
|
35
|
+
type NativeEvent = {
|
|
36
|
+
nativeEvent: {
|
|
37
|
+
layout: {
|
|
38
|
+
x: number;
|
|
39
|
+
y: number;
|
|
40
|
+
width: number;
|
|
41
|
+
height: number;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const Banner: React.FC<React.PropsWithChildren<Props>> = ({
|
|
47
|
+
initiallyVisible = true,
|
|
48
|
+
dismissable = true,
|
|
49
|
+
icon,
|
|
50
|
+
buttonColor,
|
|
51
|
+
content,
|
|
52
|
+
contentStyle,
|
|
53
|
+
style,
|
|
54
|
+
theme,
|
|
55
|
+
Icon,
|
|
56
|
+
...rest
|
|
57
|
+
}) => {
|
|
58
|
+
const [visible, setVisible] = React.useState(initiallyVisible);
|
|
59
|
+
|
|
60
|
+
React.useEffect(() => {
|
|
61
|
+
if (initiallyVisible) {
|
|
62
|
+
setVisible(true);
|
|
63
|
+
}
|
|
64
|
+
}, [initiallyVisible]);
|
|
65
|
+
|
|
66
|
+
const { current: position } = React.useRef<Animated.Value>(
|
|
67
|
+
new Animated.Value(visible ? 1 : 0)
|
|
68
|
+
);
|
|
69
|
+
const [layout, setLayout] = React.useState<{
|
|
70
|
+
height: number;
|
|
71
|
+
measured: boolean;
|
|
72
|
+
}>({
|
|
73
|
+
height: 0,
|
|
74
|
+
measured: false,
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
React.useEffect(() => {
|
|
78
|
+
if (visible) {
|
|
79
|
+
// show
|
|
80
|
+
Animated.timing(position, {
|
|
81
|
+
duration: 250,
|
|
82
|
+
toValue: 1,
|
|
83
|
+
useNativeDriver: false,
|
|
84
|
+
}).start();
|
|
85
|
+
} else {
|
|
86
|
+
// hide
|
|
87
|
+
Animated.timing(position, {
|
|
88
|
+
duration: 200,
|
|
89
|
+
toValue: 0,
|
|
90
|
+
useNativeDriver: false,
|
|
91
|
+
}).start();
|
|
92
|
+
}
|
|
93
|
+
}, [visible, position]);
|
|
94
|
+
|
|
95
|
+
const handleLayout = ({ nativeEvent }: NativeEvent) => {
|
|
96
|
+
const { height } = nativeEvent.layout;
|
|
97
|
+
setLayout({ height, measured: true });
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
// The banner animation has 2 parts:
|
|
101
|
+
// 1. Blank spacer element which animates its height to move the content
|
|
102
|
+
// 2. Actual banner which animates its translateY
|
|
103
|
+
// In initial render, we position everything normally and measure the height of the banner
|
|
104
|
+
// Once we have the height, we apply the height to the spacer and switch the banner to position: absolute
|
|
105
|
+
// We need this because we need to move the content below as if banner's height was being animated
|
|
106
|
+
// However we can't animated banner's height directly as it'll also resize the content inside
|
|
107
|
+
const height = Animated.multiply(position, layout.height);
|
|
108
|
+
|
|
109
|
+
const translateY = Animated.multiply(
|
|
110
|
+
Animated.add(position, -1),
|
|
111
|
+
layout.height
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
return (
|
|
115
|
+
<Surface
|
|
116
|
+
{...rest}
|
|
117
|
+
style={[styles.container, shadow(ELEVATION) as ViewStyle, style]}
|
|
118
|
+
>
|
|
119
|
+
<View style={[styles.wrapper, contentStyle]}>
|
|
120
|
+
<Animated.View style={{ height }} />
|
|
121
|
+
<Animated.View
|
|
122
|
+
onLayout={handleLayout}
|
|
123
|
+
style={[
|
|
124
|
+
layout.measured || !visible
|
|
125
|
+
? // If we have measured banner's height or it's invisible,
|
|
126
|
+
// Position it absolutely, the layout will be taken care of the spacer
|
|
127
|
+
[styles.absolute, { transform: [{ translateY }] }]
|
|
128
|
+
: // Otherwise position it normally
|
|
129
|
+
null,
|
|
130
|
+
!layout.measured && !visible
|
|
131
|
+
? // If we haven't measured banner's height yet and it's invisible,
|
|
132
|
+
// hide it with opacity: 0 so user doesn't see it
|
|
133
|
+
{ opacity: 0 }
|
|
134
|
+
: null,
|
|
135
|
+
]}
|
|
136
|
+
>
|
|
137
|
+
<View
|
|
138
|
+
style={[styles.content, { marginBottom: dismissable ? 0 : 16 }]}
|
|
139
|
+
>
|
|
140
|
+
{icon ? (
|
|
141
|
+
<View style={styles.icon}>
|
|
142
|
+
<Icon name={icon} size={40} />
|
|
143
|
+
</View>
|
|
144
|
+
) : null}
|
|
145
|
+
<Text
|
|
146
|
+
style={[styles.message, { color: theme.colors.text }]}
|
|
147
|
+
accessibilityLiveRegion={visible ? "polite" : "none"}
|
|
148
|
+
accessibilityRole="alert"
|
|
149
|
+
>
|
|
150
|
+
{content}
|
|
151
|
+
</Text>
|
|
152
|
+
</View>
|
|
153
|
+
{dismissable ? (
|
|
154
|
+
<View style={styles.actions}>
|
|
155
|
+
<Button
|
|
156
|
+
color={buttonColor || theme.colors.primary}
|
|
157
|
+
title="Close"
|
|
158
|
+
onPress={() => setVisible(false)}
|
|
159
|
+
/>
|
|
160
|
+
</View>
|
|
161
|
+
) : null}
|
|
162
|
+
</Animated.View>
|
|
163
|
+
</View>
|
|
164
|
+
</Surface>
|
|
165
|
+
);
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
const styles = StyleSheet.create({
|
|
169
|
+
container: {
|
|
170
|
+
elevation: ELEVATION,
|
|
171
|
+
},
|
|
172
|
+
wrapper: {
|
|
173
|
+
overflow: "hidden",
|
|
174
|
+
alignSelf: "center",
|
|
175
|
+
width: "100%",
|
|
176
|
+
maxWidth: DEFAULT_MAX_WIDTH,
|
|
177
|
+
},
|
|
178
|
+
absolute: {
|
|
179
|
+
position: "absolute",
|
|
180
|
+
top: 0,
|
|
181
|
+
width: "100%",
|
|
182
|
+
},
|
|
183
|
+
content: {
|
|
184
|
+
flexDirection: "row",
|
|
185
|
+
justifyContent: "flex-start",
|
|
186
|
+
marginHorizontal: 8,
|
|
187
|
+
marginTop: 16,
|
|
188
|
+
marginBottom: 0,
|
|
189
|
+
},
|
|
190
|
+
icon: {
|
|
191
|
+
margin: 8,
|
|
192
|
+
},
|
|
193
|
+
message: {
|
|
194
|
+
flex: 1,
|
|
195
|
+
margin: 8,
|
|
196
|
+
},
|
|
197
|
+
actions: {
|
|
198
|
+
flexDirection: "row",
|
|
199
|
+
justifyContent: "flex-end",
|
|
200
|
+
margin: 8,
|
|
201
|
+
},
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
export default withTheme(Banner);
|
package/src/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export { default as Provider } from "./Provider";
|
|
|
4
4
|
export { default as DefaultTheme } from "./styles/DefaultTheme";
|
|
5
5
|
// BASIC
|
|
6
6
|
export { default as ScreenContainer } from "./components/ScreenContainer";
|
|
7
|
+
export { default as Banner } from "./components/Banner";
|
|
7
8
|
// BUTTONS
|
|
8
9
|
export { Button } from "./components/Button";
|
|
9
10
|
export { Link } from "./components/Text";
|
package/src/index.tsx
CHANGED
|
@@ -5,6 +5,7 @@ export { default as DefaultTheme } from "./styles/DefaultTheme";
|
|
|
5
5
|
|
|
6
6
|
// BASIC
|
|
7
7
|
export { default as ScreenContainer } from "./components/ScreenContainer";
|
|
8
|
+
export { default as Banner } from "./components/Banner";
|
|
8
9
|
|
|
9
10
|
// BUTTONS
|
|
10
11
|
export { Button } from "./components/Button";
|