@draftbit/core 44.1.11-4476d0.0 → 44.1.11-b60547.0

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["ActionSheetCancel.tsx"],"names":["ActionSheetCancel","label","color","style","onPress"],"mappings":";;;;;;;AAAA;;AAEA;;;;AASA,MAAMA,iBAAkC,GAAG,QAKrC;AAAA,MALsC;AAC1CC,IAAAA,KAAK,GAAG,QADkC;AAE1CC,IAAAA,KAF0C;AAG1CC,IAAAA,KAH0C;AAI1CC,IAAAA;AAJ0C,GAKtC;AACJ,sBACE,6BAAC,wBAAD;AACE,IAAA,KAAK,EAAEH,KADT;AAEE,IAAA,KAAK,EAAEC,KAAK,IAAI,SAFlB;AAGE,IAAA,KAAK,EAAE,CAACC,KAAD,CAHT;AAIE,IAAA,OAAO,EAAEC;AAJX,IADF;AAQD,CAdD;;eAgBeJ,iB","sourcesContent":["import React from \"react\";\nimport { StyleProp, ViewStyle, TextStyle } from \"react-native\";\nimport ActionSheetItem from \"./ActionSheetItem\";\n\ntype Props = {\n label: string;\n color: string;\n style?: StyleProp<ViewStyle | TextStyle>;\n onPress?: () => void;\n};\n\nconst ActionSheetCancel: React.FC<Props> = ({\n label = \"Cancel\",\n color,\n style,\n onPress,\n}) => {\n return (\n <ActionSheetItem\n label={label}\n color={color || \"#FF453A\"}\n style={[style]}\n onPress={onPress}\n />\n );\n};\n\nexport default ActionSheetCancel;\n"]}
1
+ {"version":3,"sources":["ActionSheetCancel.js"],"names":["ActionSheetCancel","label","color","style","onPress","React","createElement","ActionSheetItem"],"mappings":";;;;;;;AAAA;;AACA;;;;AACA,MAAMA,iBAAiB,GAAG,QAAkD;AAAA,MAAjD;AAAEC,IAAAA,KAAK,GAAG,QAAV;AAAoBC,IAAAA,KAApB;AAA2BC,IAAAA,KAA3B;AAAkCC,IAAAA;AAAlC,GAAiD;AACxE,sBAAQC,eAAMC,aAAN,CAAoBC,wBAApB,EAAqC;AAAEN,IAAAA,KAAK,EAAEA,KAAT;AAAgBC,IAAAA,KAAK,EAAEA,KAAK,IAAI,SAAhC;AAA2CC,IAAAA,KAAK,EAAE,CAACA,KAAD,CAAlD;AAA2DC,IAAAA,OAAO,EAAEA;AAApE,GAArC,CAAR;AACH,CAFD;;eAGeJ,iB","sourcesContent":["import React from \"react\";\nimport ActionSheetItem from \"./ActionSheetItem\";\nconst ActionSheetCancel = ({ label = \"Cancel\", color, style, onPress, }) => {\n return (React.createElement(ActionSheetItem, { label: label, color: color || \"#FF453A\", style: [style], onPress: onPress }));\n};\nexport default ActionSheetCancel;\n"]}
@@ -107,10 +107,12 @@ const Picker = _ref => {
107
107
  viewStyles,
108
108
  textStyles
109
109
  } = (0, _utilities.extractStyles)(style);
110
+ const additionalBorderStyles = ["backgroundColor"];
111
+ const additionalMarginStyles = ["bottom", "height", "left", "maxHeight", "maxWidth", "minHeight", "minWidth", "overflow", "position", "right", "top", "width", "zIndex"];
110
112
  const {
111
- marginStyles,
112
- borderStyles: extractedBorderStyles
113
- } = (0, _utilities.extractBorderAndMarginStyles)(viewStyles, ["backgroundColor"]);
113
+ borderStyles: extractedBorderStyles,
114
+ marginStyles: extractedMarginStyles
115
+ } = (0, _utilities.extractBorderAndMarginStyles)(viewStyles, additionalBorderStyles, additionalMarginStyles);
114
116
  const borderStyles = { ...{ ...(type === "solid" ? {
115
117
  borderTopLeftRadius: 5,
116
118
  borderTopRightRadius: 5,
@@ -121,7 +123,7 @@ const Picker = _ref => {
121
123
  borderLeftWidth: 1
122
124
  } : {}),
123
125
  borderBottomWidth: 1,
124
- borderColor: "green",
126
+ borderColor: unstyledColor,
125
127
  borderStyle: "solid"
126
128
  },
127
129
  ...extractedBorderStyles,
@@ -133,13 +135,12 @@ const Picker = _ref => {
133
135
  backgroundColor: disabledColor
134
136
  } : {})
135
137
  };
136
- const platform = _reactNative.Platform.OS;
137
- const stylesWithoutBordersAndMargins = { ...{
138
- height: 60,
139
- width: "100%"
140
- },
141
- ...(0, _lodash.omit)(viewStyles, [..._utilities.borderStyleNames, ..._utilities.marginStyleNames, "backgroundColor"])
138
+ const marginStyles = {
139
+ height: 60,
140
+ ...extractedMarginStyles
142
141
  };
142
+ const platform = _reactNative.Platform.OS;
143
+ const stylesWithoutBordersAndMargins = (0, _lodash.omit)(viewStyles, [..._utilities.borderStyleNames, ..._utilities.marginStyleNames, ...additionalBorderStyles, ...additionalMarginStyles]);
143
144
  const selectedLabel = internalValue && ((_find$label = (_find = pickerOptions.find(option => option.value === internalValue)) === null || _find === void 0 ? void 0 : _find.label) !== null && _find$label !== void 0 ? _find$label : internalValue);
144
145
  const labelText = label ? /*#__PURE__*/React.createElement(_reactNative.Text, {
145
146
  style: {
@@ -168,14 +169,25 @@ const Picker = _ref => {
168
169
  marginLeft: 8
169
170
  }
170
171
  }) : null;
171
- const width = stylesWithoutBordersAndMargins === null || stylesWithoutBordersAndMargins === void 0 ? void 0 : stylesWithoutBordersAndMargins.width;
172
172
  const textAlign = textStyles === null || textStyles === void 0 ? void 0 : textStyles.textAlign;
173
- const paddingLeft = leftIconOutset && (!textAlign || textAlign === "left" || textAlign === "justify") ? iconSize + 4 : 0;
173
+
174
+ const calculateLeftPadding = () => {
175
+ if (leftIconOutset) {
176
+ if (textAlign === "center") {
177
+ return iconSize - Math.abs(8 - iconSize);
178
+ }
179
+
180
+ return iconSize + 8;
181
+ }
182
+
183
+ return 0;
184
+ };
185
+
174
186
  const assistiveTextLabel = assistiveText ? /*#__PURE__*/React.createElement(_reactNative.Text, {
175
187
  style: {
176
188
  textAlign,
177
- width,
178
- paddingLeft,
189
+ width: "100%",
190
+ paddingLeft: calculateLeftPadding(),
179
191
  color: unstyledColor,
180
192
  fontSize: 12,
181
193
  paddingTop: 4
@@ -258,13 +270,20 @@ exports.default = _default;
258
270
 
259
271
  const styles = _reactNative.StyleSheet.create({
260
272
  marginsContainer: {
261
- alignSelf: "stretch"
273
+ alignSelf: "stretch",
274
+ alignItems: "center"
262
275
  },
263
276
  touchableContainer: {
277
+ flex: 1,
278
+ height: "100%",
279
+ width: "100%",
264
280
  alignSelf: "stretch",
265
281
  alignItems: "center"
266
282
  },
267
283
  outsetContainer: {
284
+ flex: 1,
285
+ height: "100%",
286
+ width: "100%",
268
287
  flexDirection: "row",
269
288
  alignItems: "center",
270
289
  justifyContent: "space-between"
@@ -272,6 +291,7 @@ const styles = _reactNative.StyleSheet.create({
272
291
  insetContainer: {
273
292
  flex: 1,
274
293
  height: "100%",
294
+ width: "100%",
275
295
  flexDirection: "row",
276
296
  alignItems: "center",
277
297
  justifyContent: "space-between",
@@ -310,10 +330,4 @@ const styles = _reactNative.StyleSheet.create({
310
330
  width: "100%"
311
331
  }
312
332
  });
313
- //# sourceMappingURL=Picker.js.mapft: 0,
314
- right: 0,
315
- bottom: 0,
316
- width: "100%"
317
- }
318
- });
319
333
  //# sourceMappingURL=Picker.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["Picker.tsx"],"names":["normalizeOptions","options","length","map","option","label","String","value","Error","unstyledColor","disabledColor","errorColor","Picker","error","onValueChange","defaultValue","Icon","style","placeholder","disabled","theme","assistiveText","iconColor","iconSize","leftIconMode","leftIconName","placeholderTextColor","rightIconName","type","internalValue","setInternalValue","React","useState","pickerVisible","togglePickerVisible","useReducer","state","useEffect","normalizedOptions","pickerOptions","colors","viewStyles","textStyles","marginStyles","borderStyles","extractedBorderStyles","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderTopWidth","borderRightWidth","borderLeftWidth","borderBottomWidth","borderColor","borderStyle","backgroundColor","platform","Platform","OS","stylesWithoutBordersAndMargins","height","width","borderStyleNames","marginStyleNames","selectedLabel","find","labelText","textAlign","color","fontSize","paddingBottom","leftIconOutset","leftIcon","marginRight","marginLeft","rightIcon","paddingLeft","assistiveTextLabel","paddingTop","primaryTextStyle","identity","handleValueChange","newValue","itemIndex","styles","marginsContainer","touchableContainer","outsetContainer","insetContainer","primaryTextContainer","iosPicker","divider","iosSafeArea","iosButton","iosNativePicker","nonIosPicker","StyleSheet","create","alignSelf","alignItems","flexDirection","justifyContent","flex","paddingRight","position","bottom","left","right","opacity","top"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n Text,\n Platform,\n ViewStyle,\n StyleProp,\n} from \"react-native\";\nimport { omit, pickBy, identity, isObject } from \"lodash\";\nimport { SafeAreaView } from \"react-native-safe-area-context\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport { withTheme } from \"../../theming\";\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport Touchable from \"../Touchable\";\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport {\n extractStyles,\n extractBorderAndMarginStyles,\n borderStyleNames,\n marginStyleNames,\n} from \"../../utilities\";\n\nexport interface PickerOption {\n value: string;\n label: string;\n}\n\nexport type PickerProps = {\n error?: any;\n placeholder?: string;\n disabled?: boolean;\n style?: StyleProp<ViewStyle> & { height?: number };\n value?: string;\n options: PickerOption[] | string[];\n onValueChange: (value: string, index: number) => void;\n defaultValue?: string;\n assistiveText?: string;\n label?: string;\n iconColor?: string;\n iconSize?: number;\n leftIconMode?: \"inset\" | \"outset\";\n leftIconName?: string;\n placeholderTextColor?: string;\n rightIconName?: string;\n type?: \"solid\" | \"underline\";\n theme: Theme;\n Icon: IconSlot[\"Icon\"];\n};\n\nfunction normalizeOptions(options: PickerProps[\"options\"]): PickerOption[] {\n if (options.length === 0) {\n return [];\n }\n\n if (typeof options[0] === (\"string\" || \"number\")) {\n return (options as string[]).map((option) => ({\n label: String(option),\n value: String(option),\n }));\n }\n\n if (\n isObject(options[0]) &&\n options[0].value !== null &&\n options[0].label !== null\n ) {\n return (options as PickerOption[]).map((option) => {\n return {\n label: String(option.label),\n value: String(option.value),\n };\n });\n }\n\n throw new Error(\n 'Picker options must be either an array of strings or array of { \"label\": string; \"value\": string; } objects.'\n );\n}\n\nconst unstyledColor = \"rgba(165, 173, 183, 1)\";\nconst disabledColor = \"rgb(240, 240, 240)\";\nconst errorColor = \"rgba(255, 69, 100, 1)\";\n\nconst Picker: React.FC<PickerProps> = ({\n error,\n options = [],\n onValueChange,\n defaultValue,\n Icon,\n style,\n placeholder,\n value,\n disabled = false,\n theme,\n assistiveText,\n label,\n iconColor = unstyledColor,\n iconSize = 24,\n leftIconMode = \"inset\",\n leftIconName,\n placeholderTextColor = unstyledColor,\n rightIconName,\n type = \"solid\",\n}) => {\n const [internalValue, setInternalValue] = React.useState<string | undefined>(\n value || defaultValue\n );\n\n const [pickerVisible, togglePickerVisible] = React.useReducer(\n (state) => !state,\n false\n );\n\n React.useEffect(() => {\n if (value != null) {\n setInternalValue(value);\n }\n }, [value]);\n\n React.useEffect(() => {\n if (defaultValue != null) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n const normalizedOptions = normalizeOptions(options);\n\n const pickerOptions = placeholder\n ? [{ value: placeholder, label: placeholder }, ...normalizedOptions]\n : normalizedOptions;\n\n const { colors } = theme;\n\n const { viewStyles, textStyles } = extractStyles(style);\n\n const { marginStyles, borderStyles: extractedBorderStyles } =\n extractBorderAndMarginStyles(viewStyles, [\"backgroundColor\"]);\n\n const borderStyles = {\n ...{\n ...(type === \"solid\"\n ? {\n borderTopLeftRadius: 5,\n borderTopRightRadius: 5,\n borderBottomRightRadius: 5,\n borderBottomLeftRadius: 5,\n borderTopWidth: 1,\n borderRightWidth: 1,\n borderLeftWidth: 1,\n }\n : {}),\n borderBottomWidth: 1,\n borderColor: \"green\",\n borderStyle: \"solid\",\n },\n ...extractedBorderStyles,\n ...(error ? { borderColor: errorColor } : {}),\n ...(disabled\n ? { borderColor: \"transparent\", backgroundColor: disabledColor }\n : {}),\n };\n\n const platform = Platform.OS;\n\n const stylesWithoutBordersAndMargins = {\n ...{\n height: 60,\n width: \"100%\",\n },\n ...omit(viewStyles, [\n ...borderStyleNames,\n ...marginStyleNames,\n \"backgroundColor\",\n ]),\n };\n\n const selectedLabel =\n internalValue &&\n ((pickerOptions as unknown as PickerOption[]).find(\n (option) => option.value === internalValue\n )?.label ??\n internalValue);\n\n const labelText = label ? (\n <Text\n style={{\n textAlign: textStyles.textAlign,\n color: unstyledColor,\n fontSize: 12,\n paddingBottom: 4,\n }}\n >\n {label}\n </Text>\n ) : null;\n\n const leftIconOutset = leftIconMode === \"outset\";\n\n const leftIcon = leftIconName ? (\n <Icon\n name={leftIconName}\n color={disabled ? unstyledColor : iconColor}\n size={iconSize}\n style={{\n marginRight: 4,\n marginLeft: 4,\n }}\n />\n ) : null;\n\n const rightIcon = rightIconName ? (\n <Icon\n name={rightIconName}\n color={disabled ? unstyledColor : iconColor}\n size={iconSize}\n style={{\n marginRight: -10,\n marginLeft: 8,\n }}\n />\n ) : null;\n\n const width = stylesWithoutBordersAndMargins?.width;\n\n const textAlign = textStyles?.textAlign;\n\n const paddingLeft =\n leftIconOutset &&\n (!textAlign || textAlign === \"left\" || textAlign === \"justify\")\n ? iconSize + 4\n : 0;\n\n const assistiveTextLabel = assistiveText ? (\n <Text\n style={{\n textAlign,\n width,\n paddingLeft,\n color: unstyledColor,\n fontSize: 12,\n paddingTop: 4,\n }}\n >\n {assistiveText}\n </Text>\n ) : null;\n\n const primaryTextStyle = {\n color: unstyledColor,\n fontSize: 14,\n ...pickBy(textStyles, identity),\n ...(placeholder === internalValue ? { color: placeholderTextColor } : {}),\n ...(disabled ? { color: unstyledColor } : {}),\n };\n\n const handleValueChange = (newValue: string, itemIndex: number) => {\n if (!placeholder || itemIndex > 0) {\n onValueChange?.(newValue, itemIndex);\n }\n setInternalValue(newValue);\n };\n\n return (\n /* marginsContainer */\n <View style={[styles.marginsContainer, marginStyles]}>\n {/* touchableContainer */}\n <Touchable\n disabled={disabled}\n onPress={togglePickerVisible}\n style={styles.touchableContainer}\n >\n {/* outsetContainer */}\n <View\n pointerEvents=\"none\"\n style={[\n styles.outsetContainer,\n stylesWithoutBordersAndMargins,\n !leftIconOutset ? (borderStyles as PickerProps[\"style\"]) : {},\n ]}\n >\n {leftIcon}\n\n {/* insetContainer */}\n <View\n style={[\n styles.insetContainer,\n leftIconOutset ? (borderStyles as PickerProps[\"style\"]) : {},\n ]}\n >\n {/* primaryTextContainer */}\n <View style={styles.primaryTextContainer}>\n {labelText}\n\n <Text style={primaryTextStyle}>\n {String(selectedLabel ?? placeholder)}\n </Text>\n </View>\n\n {rightIcon}\n </View>\n </View>\n {assistiveTextLabel}\n </Touchable>\n\n {/* iosPicker */}\n {platform === \"ios\" && pickerVisible ? (\n <Portal>\n <View\n style={[\n styles.iosPicker,\n {\n backgroundColor: colors.divider,\n },\n ]}\n >\n <SafeAreaView style={styles.iosSafeArea}>\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={togglePickerVisible}\n style={styles.iosButton}\n >\n {\"Close\"}\n </Button>\n\n <NativePicker\n style={styles.iosNativePicker}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n </SafeAreaView>\n </View>\n </Portal>\n ) : null}\n\n {/* nonIosPicker */}\n {platform !== \"ios\" ? (\n <NativePicker\n enabled={!disabled}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n style={styles.nonIosPicker}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n ) : null}\n </View>\n );\n};\n\nexport default withTheme(Picker);\n\nconst styles = StyleSheet.create({\n marginsContainer: {\n alignSelf: \"stretch\",\n },\n touchableContainer: {\n alignSelf: \"stretch\",\n alignItems: \"center\",\n },\n outsetContainer: {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n },\n insetContainer: {\n flex: 1,\n height: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingLeft: 12,\n paddingRight: 12,\n },\n primaryTextContainer: {\n flex: 1,\n },\n iosPicker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n iosSafeArea: {\n backgroundColor: \"white\",\n flexDirection: \"column\",\n width: \"100%\",\n },\n iosButton: {\n alignSelf: \"flex-end\",\n },\n iosNativePicker: {\n backgroundColor: \"white\",\n },\n nonIosPicker: {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n },\n});\n"]}
1
+ {"version":3,"sources":["Picker.tsx"],"names":["normalizeOptions","options","length","map","option","label","String","value","Error","unstyledColor","disabledColor","errorColor","Picker","error","onValueChange","defaultValue","Icon","style","placeholder","disabled","theme","assistiveText","iconColor","iconSize","leftIconMode","leftIconName","placeholderTextColor","rightIconName","type","internalValue","setInternalValue","React","useState","pickerVisible","togglePickerVisible","useReducer","state","useEffect","normalizedOptions","pickerOptions","colors","viewStyles","textStyles","additionalBorderStyles","additionalMarginStyles","borderStyles","extractedBorderStyles","marginStyles","extractedMarginStyles","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderTopWidth","borderRightWidth","borderLeftWidth","borderBottomWidth","borderColor","borderStyle","backgroundColor","height","platform","Platform","OS","stylesWithoutBordersAndMargins","borderStyleNames","marginStyleNames","selectedLabel","find","labelText","textAlign","color","fontSize","paddingBottom","leftIconOutset","leftIcon","marginRight","marginLeft","rightIcon","calculateLeftPadding","Math","abs","assistiveTextLabel","width","paddingLeft","paddingTop","primaryTextStyle","identity","handleValueChange","newValue","itemIndex","styles","marginsContainer","touchableContainer","outsetContainer","insetContainer","primaryTextContainer","iosPicker","divider","iosSafeArea","iosButton","iosNativePicker","nonIosPicker","StyleSheet","create","alignSelf","alignItems","flex","flexDirection","justifyContent","paddingRight","position","bottom","left","right","opacity","top"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n Text,\n Platform,\n ViewStyle,\n StyleProp,\n} from \"react-native\";\nimport { omit, pickBy, identity, isObject } from \"lodash\";\nimport { SafeAreaView } from \"react-native-safe-area-context\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport { withTheme } from \"../../theming\";\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport Touchable from \"../Touchable\";\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport {\n extractStyles,\n extractBorderAndMarginStyles,\n borderStyleNames,\n marginStyleNames,\n} from \"../../utilities\";\n\nexport interface PickerOption {\n value: string;\n label: string;\n}\n\nexport type PickerProps = {\n error?: any;\n placeholder?: string;\n disabled?: boolean;\n style?: StyleProp<ViewStyle> & { height?: number };\n value?: string;\n options: PickerOption[] | string[];\n onValueChange: (value: string, index: number) => void;\n defaultValue?: string;\n assistiveText?: string;\n label?: string;\n iconColor?: string;\n iconSize?: number;\n leftIconMode?: \"inset\" | \"outset\";\n leftIconName?: string;\n placeholderTextColor?: string;\n rightIconName?: string;\n type?: \"solid\" | \"underline\";\n theme: Theme;\n Icon: IconSlot[\"Icon\"];\n};\n\nfunction normalizeOptions(options: PickerProps[\"options\"]): PickerOption[] {\n if (options.length === 0) {\n return [];\n }\n\n if (typeof options[0] === (\"string\" || \"number\")) {\n return (options as string[]).map((option) => ({\n label: String(option),\n value: String(option),\n }));\n }\n\n if (\n isObject(options[0]) &&\n options[0].value !== null &&\n options[0].label !== null\n ) {\n return (options as PickerOption[]).map((option) => {\n return {\n label: String(option.label),\n value: String(option.value),\n };\n });\n }\n\n throw new Error(\n 'Picker options must be either an array of strings or array of { \"label\": string; \"value\": string; } objects.'\n );\n}\n\nconst unstyledColor = \"rgba(165, 173, 183, 1)\";\nconst disabledColor = \"rgb(240, 240, 240)\";\nconst errorColor = \"rgba(255, 69, 100, 1)\";\n\nconst Picker: React.FC<PickerProps> = ({\n error,\n options = [],\n onValueChange,\n defaultValue,\n Icon,\n style,\n placeholder,\n value,\n disabled = false,\n theme,\n assistiveText,\n label,\n iconColor = unstyledColor,\n iconSize = 24,\n leftIconMode = \"inset\",\n leftIconName,\n placeholderTextColor = unstyledColor,\n rightIconName,\n type = \"solid\",\n}) => {\n const [internalValue, setInternalValue] = React.useState<string | undefined>(\n value || defaultValue\n );\n\n const [pickerVisible, togglePickerVisible] = React.useReducer(\n (state) => !state,\n false\n );\n\n React.useEffect(() => {\n if (value != null) {\n setInternalValue(value);\n }\n }, [value]);\n\n React.useEffect(() => {\n if (defaultValue != null) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n const normalizedOptions = normalizeOptions(options);\n\n const pickerOptions = placeholder\n ? [{ value: placeholder, label: placeholder }, ...normalizedOptions]\n : normalizedOptions;\n\n const { colors } = theme;\n\n const { viewStyles, textStyles } = extractStyles(style);\n\n const additionalBorderStyles = [\"backgroundColor\"];\n\n const additionalMarginStyles = [\n \"bottom\",\n \"height\",\n \"left\",\n \"maxHeight\",\n \"maxWidth\",\n \"minHeight\",\n \"minWidth\",\n \"overflow\",\n \"position\",\n \"right\",\n \"top\",\n \"width\",\n \"zIndex\",\n ];\n\n const {\n borderStyles: extractedBorderStyles,\n marginStyles: extractedMarginStyles,\n } = extractBorderAndMarginStyles(\n viewStyles,\n additionalBorderStyles,\n additionalMarginStyles\n );\n\n const borderStyles = {\n ...{\n ...(type === \"solid\"\n ? {\n borderTopLeftRadius: 5,\n borderTopRightRadius: 5,\n borderBottomRightRadius: 5,\n borderBottomLeftRadius: 5,\n borderTopWidth: 1,\n borderRightWidth: 1,\n borderLeftWidth: 1,\n }\n : {}),\n borderBottomWidth: 1,\n borderColor: unstyledColor,\n borderStyle: \"solid\",\n },\n ...extractedBorderStyles,\n ...(error ? { borderColor: errorColor } : {}),\n ...(disabled\n ? { borderColor: \"transparent\", backgroundColor: disabledColor }\n : {}),\n };\n\n const marginStyles = {\n height: 60,\n ...extractedMarginStyles,\n };\n\n const platform = Platform.OS;\n\n const stylesWithoutBordersAndMargins = omit(viewStyles, [\n ...borderStyleNames,\n ...marginStyleNames,\n ...additionalBorderStyles,\n ...additionalMarginStyles,\n ]);\n\n const selectedLabel =\n internalValue &&\n ((pickerOptions as unknown as PickerOption[]).find(\n (option) => option.value === internalValue\n )?.label ??\n internalValue);\n\n const labelText = label ? (\n <Text\n style={{\n textAlign: textStyles.textAlign,\n color: unstyledColor,\n fontSize: 12,\n paddingBottom: 4,\n }}\n >\n {label}\n </Text>\n ) : null;\n\n const leftIconOutset = leftIconMode === \"outset\";\n\n const leftIcon = leftIconName ? (\n <Icon\n name={leftIconName}\n color={disabled ? unstyledColor : iconColor}\n size={iconSize}\n style={{\n marginRight: 4,\n marginLeft: 4,\n }}\n />\n ) : null;\n\n const rightIcon = rightIconName ? (\n <Icon\n name={rightIconName}\n color={disabled ? unstyledColor : iconColor}\n size={iconSize}\n style={{\n marginRight: -10,\n marginLeft: 8,\n }}\n />\n ) : null;\n\n const textAlign = textStyles?.textAlign;\n\n const calculateLeftPadding = () => {\n if (leftIconOutset) {\n if (textAlign === \"center\") {\n return iconSize - Math.abs(8 - iconSize);\n }\n\n return iconSize + 8;\n }\n\n return 0;\n };\n\n const assistiveTextLabel = assistiveText ? (\n <Text\n style={{\n textAlign,\n width: \"100%\",\n paddingLeft: calculateLeftPadding(),\n color: unstyledColor,\n fontSize: 12,\n paddingTop: 4,\n }}\n >\n {assistiveText}\n </Text>\n ) : null;\n\n const primaryTextStyle = {\n color: unstyledColor,\n fontSize: 14,\n ...pickBy(textStyles, identity),\n ...(placeholder === internalValue ? { color: placeholderTextColor } : {}),\n ...(disabled ? { color: unstyledColor } : {}),\n };\n\n const handleValueChange = (newValue: string, itemIndex: number) => {\n if (!placeholder || itemIndex > 0) {\n onValueChange?.(newValue, itemIndex);\n }\n setInternalValue(newValue);\n };\n\n return (\n /* marginsContainer */\n <View style={[styles.marginsContainer, marginStyles]}>\n {/* touchableContainer */}\n <Touchable\n disabled={disabled}\n onPress={togglePickerVisible}\n style={styles.touchableContainer}\n >\n {/* outsetContainer */}\n <View\n pointerEvents=\"none\"\n style={[\n styles.outsetContainer,\n stylesWithoutBordersAndMargins,\n !leftIconOutset ? (borderStyles as PickerProps[\"style\"]) : {},\n ]}\n >\n {leftIcon}\n\n {/* insetContainer */}\n <View\n style={[\n styles.insetContainer,\n leftIconOutset ? (borderStyles as PickerProps[\"style\"]) : {},\n ]}\n >\n {/* primaryTextContainer */}\n <View style={styles.primaryTextContainer}>\n {labelText}\n\n <Text style={primaryTextStyle}>\n {String(selectedLabel ?? placeholder)}\n </Text>\n </View>\n\n {rightIcon}\n </View>\n </View>\n {assistiveTextLabel}\n </Touchable>\n\n {/* iosPicker */}\n {platform === \"ios\" && pickerVisible ? (\n <Portal>\n <View\n style={[\n styles.iosPicker,\n {\n backgroundColor: colors.divider,\n },\n ]}\n >\n <SafeAreaView style={styles.iosSafeArea}>\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={togglePickerVisible}\n style={styles.iosButton}\n >\n {\"Close\"}\n </Button>\n\n <NativePicker\n style={styles.iosNativePicker}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n </SafeAreaView>\n </View>\n </Portal>\n ) : null}\n\n {/* nonIosPicker */}\n {platform !== \"ios\" ? (\n <NativePicker\n enabled={!disabled}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n style={styles.nonIosPicker}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n ) : null}\n </View>\n );\n};\n\nexport default withTheme(Picker);\n\nconst styles = StyleSheet.create({\n marginsContainer: {\n alignSelf: \"stretch\",\n alignItems: \"center\",\n },\n touchableContainer: {\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n alignSelf: \"stretch\",\n alignItems: \"center\",\n },\n outsetContainer: {\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n },\n insetContainer: {\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingLeft: 12,\n paddingRight: 12,\n },\n primaryTextContainer: {\n flex: 1,\n },\n iosPicker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n iosSafeArea: {\n backgroundColor: \"white\",\n flexDirection: \"column\",\n width: \"100%\",\n },\n iosButton: {\n alignSelf: \"flex-end\",\n },\n iosNativePicker: {\n backgroundColor: \"white\",\n },\n nonIosPicker: {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n },\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA","sourcesContent":["export { default as RadioButton } from \"./RadioButton\";\nexport { default as RadioButtonGroup } from \"./RadioButtonGroup\";\nexport { default as RadioButtonRow } from \"./RadioButtonRow\";\nexport { default as RadioButtonFieldGroup } from \"./RadioButtonFieldGroup\";\n"]}
1
+ {"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA","sourcesContent":["export { default as RadioButton } from \"./RadioButton\";\nexport { default as RadioButtonGroup } from \"./RadioButtonGroup\";\nexport { default as RadioButtonRow } from \"./RadioButtonRow\";\nexport { default as RadioButtonFieldGroup } from \"./RadioButtonFieldGroup\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["RadioButtonGroup.js"],"names":["SEED_DATA","name","tag","category","COMPONENT_TYPES","input","layout","triggers","Triggers","OnValueChange","props","direction","fieldName","handlerPropName","valuePropName","defaultValue"],"mappings":";;;;;;;AAAA;;AACO,MAAMA,SAAS,GAAG;AACrBC,EAAAA,IAAI,EAAE,oBADe;AAErBC,EAAAA,GAAG,EAAE,kBAFgB;AAGrBC,EAAAA,QAAQ,EAAEC,uBAAgBC,KAHL;AAIrBC,EAAAA,MAAM,EAAE,EAJa;AAKrBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,aAAV,CALW;AAMrBC,EAAAA,KAAK,EAAE;AACHC,IAAAA,SAAS,EAAE,iCADR;AAEHC,IAAAA,SAAS,EAAE,gCAAoB;AAC3BC,MAAAA,eAAe,EAAE,eADU;AAE3BC,MAAAA,aAAa,EAAE,OAFY;AAG3BC,MAAAA,YAAY,EAAE;AAHa,KAApB;AAFR;AANc,CAAlB","sourcesContent":["import { COMPONENT_TYPES, createFieldNameProp, createDirectionProp, Triggers, } from \"@draftbit/types\";\nexport const SEED_DATA = {\n name: \"Radio Button Group\",\n tag: \"RadioButtonGroup\",\n category: COMPONENT_TYPES.input,\n layout: {},\n triggers: [Triggers.OnValueChange],\n props: {\n direction: createDirectionProp(),\n fieldName: createFieldNameProp({\n handlerPropName: \"onValueChange\",\n valuePropName: \"value\",\n defaultValue: \"radioButtonGroupValue\",\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["RadioButtonGroup.ts"],"names":["SEED_DATA","name","tag","category","COMPONENT_TYPES","input","layout","triggers","Triggers","OnValueChange","props","direction","fieldName","handlerPropName","valuePropName","defaultValue"],"mappings":";;;;;;;AAAA;;AAOO,MAAMA,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,oBADiB;AAEvBC,EAAAA,GAAG,EAAE,kBAFkB;AAGvBC,EAAAA,QAAQ,EAAEC,uBAAgBC,KAHH;AAIvBC,EAAAA,MAAM,EAAE,EAJe;AAKvBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,aAAV,CALa;AAMvBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,SAAS,EAAE,iCADN;AAELC,IAAAA,SAAS,EAAE,gCAAoB;AAC7BC,MAAAA,eAAe,EAAE,eADY;AAE7BC,MAAAA,aAAa,EAAE,OAFc;AAG7BC,MAAAA,YAAY,EAAE;AAHe,KAApB;AAFN;AANgB,CAAlB","sourcesContent":["import {\n COMPONENT_TYPES,\n createFieldNameProp,\n createDirectionProp,\n Triggers,\n} from \"@draftbit/types\";\n\nexport const SEED_DATA = {\n name: \"Radio Button Group\",\n tag: \"RadioButtonGroup\",\n category: COMPONENT_TYPES.input,\n layout: {},\n triggers: [Triggers.OnValueChange],\n props: {\n direction: createDirectionProp(),\n fieldName: createFieldNameProp({\n handlerPropName: \"onValueChange\",\n valuePropName: \"value\",\n defaultValue: \"radioButtonGroupValue\",\n }),\n },\n};\n"]}
@@ -85,10 +85,12 @@ const Picker = _ref => {
85
85
  viewStyles,
86
86
  textStyles
87
87
  } = extractStyles(style);
88
+ const additionalBorderStyles = ["backgroundColor"];
89
+ const additionalMarginStyles = ["bottom", "height", "left", "maxHeight", "maxWidth", "minHeight", "minWidth", "overflow", "position", "right", "top", "width", "zIndex"];
88
90
  const {
89
- marginStyles,
90
- borderStyles: extractedBorderStyles
91
- } = extractBorderAndMarginStyles(viewStyles, ["backgroundColor"]);
91
+ borderStyles: extractedBorderStyles,
92
+ marginStyles: extractedMarginStyles
93
+ } = extractBorderAndMarginStyles(viewStyles, additionalBorderStyles, additionalMarginStyles);
92
94
  const borderStyles = { ...{ ...(type === "solid" ? {
93
95
  borderTopLeftRadius: 5,
94
96
  borderTopRightRadius: 5,
@@ -99,7 +101,7 @@ const Picker = _ref => {
99
101
  borderLeftWidth: 1
100
102
  } : {}),
101
103
  borderBottomWidth: 1,
102
- borderColor: "green",
104
+ borderColor: unstyledColor,
103
105
  borderStyle: "solid"
104
106
  },
105
107
  ...extractedBorderStyles,
@@ -111,13 +113,12 @@ const Picker = _ref => {
111
113
  backgroundColor: disabledColor
112
114
  } : {})
113
115
  };
114
- const platform = Platform.OS;
115
- const stylesWithoutBordersAndMargins = { ...{
116
- height: 60,
117
- width: "100%"
118
- },
119
- ...omit(viewStyles, [...borderStyleNames, ...marginStyleNames, "backgroundColor"])
116
+ const marginStyles = {
117
+ height: 60,
118
+ ...extractedMarginStyles
120
119
  };
120
+ const platform = Platform.OS;
121
+ const stylesWithoutBordersAndMargins = omit(viewStyles, [...borderStyleNames, ...marginStyleNames, ...additionalBorderStyles, ...additionalMarginStyles]);
121
122
  const selectedLabel = internalValue && ((_find$label = (_find = pickerOptions.find(option => option.value === internalValue)) === null || _find === void 0 ? void 0 : _find.label) !== null && _find$label !== void 0 ? _find$label : internalValue);
122
123
  const labelText = label ? /*#__PURE__*/React.createElement(Text, {
123
124
  style: {
@@ -146,14 +147,25 @@ const Picker = _ref => {
146
147
  marginLeft: 8
147
148
  }
148
149
  }) : null;
149
- const width = stylesWithoutBordersAndMargins === null || stylesWithoutBordersAndMargins === void 0 ? void 0 : stylesWithoutBordersAndMargins.width;
150
150
  const textAlign = textStyles === null || textStyles === void 0 ? void 0 : textStyles.textAlign;
151
- const paddingLeft = leftIconOutset && (!textAlign || textAlign === "left" || textAlign === "justify") ? iconSize + 4 : 0;
151
+
152
+ const calculateLeftPadding = () => {
153
+ if (leftIconOutset) {
154
+ if (textAlign === "center") {
155
+ return iconSize - Math.abs(8 - iconSize);
156
+ }
157
+
158
+ return iconSize + 8;
159
+ }
160
+
161
+ return 0;
162
+ };
163
+
152
164
  const assistiveTextLabel = assistiveText ? /*#__PURE__*/React.createElement(Text, {
153
165
  style: {
154
166
  textAlign,
155
- width,
156
- paddingLeft,
167
+ width: "100%",
168
+ paddingLeft: calculateLeftPadding(),
157
169
  color: unstyledColor,
158
170
  fontSize: 12,
159
171
  paddingTop: 4
@@ -233,13 +245,20 @@ const Picker = _ref => {
233
245
  export default withTheme(Picker);
234
246
  const styles = StyleSheet.create({
235
247
  marginsContainer: {
236
- alignSelf: "stretch"
248
+ alignSelf: "stretch",
249
+ alignItems: "center"
237
250
  },
238
251
  touchableContainer: {
252
+ flex: 1,
253
+ height: "100%",
254
+ width: "100%",
239
255
  alignSelf: "stretch",
240
256
  alignItems: "center"
241
257
  },
242
258
  outsetContainer: {
259
+ flex: 1,
260
+ height: "100%",
261
+ width: "100%",
243
262
  flexDirection: "row",
244
263
  alignItems: "center",
245
264
  justifyContent: "space-between"
@@ -247,6 +266,7 @@ const styles = StyleSheet.create({
247
266
  insetContainer: {
248
267
  flex: 1,
249
268
  height: "100%",
269
+ width: "100%",
250
270
  flexDirection: "row",
251
271
  alignItems: "center",
252
272
  justifyContent: "space-between",
@@ -1 +1 @@
1
- {"version":3,"sources":["Picker.tsx"],"names":["React","View","StyleSheet","Text","Platform","omit","pickBy","identity","isObject","SafeAreaView","Picker","NativePicker","withTheme","Portal","Button","Touchable","extractStyles","extractBorderAndMarginStyles","borderStyleNames","marginStyleNames","normalizeOptions","options","length","map","option","label","String","value","Error","unstyledColor","disabledColor","errorColor","error","onValueChange","defaultValue","Icon","style","placeholder","disabled","theme","assistiveText","iconColor","iconSize","leftIconMode","leftIconName","placeholderTextColor","rightIconName","type","internalValue","setInternalValue","useState","pickerVisible","togglePickerVisible","useReducer","state","useEffect","normalizedOptions","pickerOptions","colors","viewStyles","textStyles","marginStyles","borderStyles","extractedBorderStyles","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderTopWidth","borderRightWidth","borderLeftWidth","borderBottomWidth","borderColor","borderStyle","backgroundColor","platform","OS","stylesWithoutBordersAndMargins","height","width","selectedLabel","find","labelText","textAlign","color","fontSize","paddingBottom","leftIconOutset","leftIcon","marginRight","marginLeft","rightIcon","paddingLeft","assistiveTextLabel","paddingTop","primaryTextStyle","handleValueChange","newValue","itemIndex","styles","marginsContainer","touchableContainer","outsetContainer","insetContainer","primaryTextContainer","iosPicker","divider","iosSafeArea","iosButton","iosNativePicker","nonIosPicker","create","alignSelf","alignItems","flexDirection","justifyContent","flex","paddingRight","position","bottom","left","right","opacity","top"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n Text,\n Platform,\n ViewStyle,\n StyleProp,\n} from \"react-native\";\nimport { omit, pickBy, identity, isObject } from \"lodash\";\nimport { SafeAreaView } from \"react-native-safe-area-context\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport { withTheme } from \"../../theming\";\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport Touchable from \"../Touchable\";\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport {\n extractStyles,\n extractBorderAndMarginStyles,\n borderStyleNames,\n marginStyleNames,\n} from \"../../utilities\";\n\nexport interface PickerOption {\n value: string;\n label: string;\n}\n\nexport type PickerProps = {\n error?: any;\n placeholder?: string;\n disabled?: boolean;\n style?: StyleProp<ViewStyle> & { height?: number };\n value?: string;\n options: PickerOption[] | string[];\n onValueChange: (value: string, index: number) => void;\n defaultValue?: string;\n assistiveText?: string;\n label?: string;\n iconColor?: string;\n iconSize?: number;\n leftIconMode?: \"inset\" | \"outset\";\n leftIconName?: string;\n placeholderTextColor?: string;\n rightIconName?: string;\n type?: \"solid\" | \"underline\";\n theme: Theme;\n Icon: IconSlot[\"Icon\"];\n};\n\nfunction normalizeOptions(options: PickerProps[\"options\"]): PickerOption[] {\n if (options.length === 0) {\n return [];\n }\n\n if (typeof options[0] === (\"string\" || \"number\")) {\n return (options as string[]).map((option) => ({\n label: String(option),\n value: String(option),\n }));\n }\n\n if (\n isObject(options[0]) &&\n options[0].value !== null &&\n options[0].label !== null\n ) {\n return (options as PickerOption[]).map((option) => {\n return {\n label: String(option.label),\n value: String(option.value),\n };\n });\n }\n\n throw new Error(\n 'Picker options must be either an array of strings or array of { \"label\": string; \"value\": string; } objects.'\n );\n}\n\nconst unstyledColor = \"rgba(165, 173, 183, 1)\";\nconst disabledColor = \"rgb(240, 240, 240)\";\nconst errorColor = \"rgba(255, 69, 100, 1)\";\n\nconst Picker: React.FC<PickerProps> = ({\n error,\n options = [],\n onValueChange,\n defaultValue,\n Icon,\n style,\n placeholder,\n value,\n disabled = false,\n theme,\n assistiveText,\n label,\n iconColor = unstyledColor,\n iconSize = 24,\n leftIconMode = \"inset\",\n leftIconName,\n placeholderTextColor = unstyledColor,\n rightIconName,\n type = \"solid\",\n}) => {\n const [internalValue, setInternalValue] = React.useState<string | undefined>(\n value || defaultValue\n );\n\n const [pickerVisible, togglePickerVisible] = React.useReducer(\n (state) => !state,\n false\n );\n\n React.useEffect(() => {\n if (value != null) {\n setInternalValue(value);\n }\n }, [value]);\n\n React.useEffect(() => {\n if (defaultValue != null) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n const normalizedOptions = normalizeOptions(options);\n\n const pickerOptions = placeholder\n ? [{ value: placeholder, label: placeholder }, ...normalizedOptions]\n : normalizedOptions;\n\n const { colors } = theme;\n\n const { viewStyles, textStyles } = extractStyles(style);\n\n const { marginStyles, borderStyles: extractedBorderStyles } =\n extractBorderAndMarginStyles(viewStyles, [\"backgroundColor\"]);\n\n const borderStyles = {\n ...{\n ...(type === \"solid\"\n ? {\n borderTopLeftRadius: 5,\n borderTopRightRadius: 5,\n borderBottomRightRadius: 5,\n borderBottomLeftRadius: 5,\n borderTopWidth: 1,\n borderRightWidth: 1,\n borderLeftWidth: 1,\n }\n : {}),\n borderBottomWidth: 1,\n borderColor: \"green\",\n borderStyle: \"solid\",\n },\n ...extractedBorderStyles,\n ...(error ? { borderColor: errorColor } : {}),\n ...(disabled\n ? { borderColor: \"transparent\", backgroundColor: disabledColor }\n : {}),\n };\n\n const platform = Platform.OS;\n\n const stylesWithoutBordersAndMargins = {\n ...{\n height: 60,\n width: \"100%\",\n },\n ...omit(viewStyles, [\n ...borderStyleNames,\n ...marginStyleNames,\n \"backgroundColor\",\n ]),\n };\n\n const selectedLabel =\n internalValue &&\n ((pickerOptions as unknown as PickerOption[]).find(\n (option) => option.value === internalValue\n )?.label ??\n internalValue);\n\n const labelText = label ? (\n <Text\n style={{\n textAlign: textStyles.textAlign,\n color: unstyledColor,\n fontSize: 12,\n paddingBottom: 4,\n }}\n >\n {label}\n </Text>\n ) : null;\n\n const leftIconOutset = leftIconMode === \"outset\";\n\n const leftIcon = leftIconName ? (\n <Icon\n name={leftIconName}\n color={disabled ? unstyledColor : iconColor}\n size={iconSize}\n style={{\n marginRight: 4,\n marginLeft: 4,\n }}\n />\n ) : null;\n\n const rightIcon = rightIconName ? (\n <Icon\n name={rightIconName}\n color={disabled ? unstyledColor : iconColor}\n size={iconSize}\n style={{\n marginRight: -10,\n marginLeft: 8,\n }}\n />\n ) : null;\n\n const width = stylesWithoutBordersAndMargins?.width;\n\n const textAlign = textStyles?.textAlign;\n\n const paddingLeft =\n leftIconOutset &&\n (!textAlign || textAlign === \"left\" || textAlign === \"justify\")\n ? iconSize + 4\n : 0;\n\n const assistiveTextLabel = assistiveText ? (\n <Text\n style={{\n textAlign,\n width,\n paddingLeft,\n color: unstyledColor,\n fontSize: 12,\n paddingTop: 4,\n }}\n >\n {assistiveText}\n </Text>\n ) : null;\n\n const primaryTextStyle = {\n color: unstyledColor,\n fontSize: 14,\n ...pickBy(textStyles, identity),\n ...(placeholder === internalValue ? { color: placeholderTextColor } : {}),\n ...(disabled ? { color: unstyledColor } : {}),\n };\n\n const handleValueChange = (newValue: string, itemIndex: number) => {\n if (!placeholder || itemIndex > 0) {\n onValueChange?.(newValue, itemIndex);\n }\n setInternalValue(newValue);\n };\n\n return (\n /* marginsContainer */\n <View style={[styles.marginsContainer, marginStyles]}>\n {/* touchableContainer */}\n <Touchable\n disabled={disabled}\n onPress={togglePickerVisible}\n style={styles.touchableContainer}\n >\n {/* outsetContainer */}\n <View\n pointerEvents=\"none\"\n style={[\n styles.outsetContainer,\n stylesWithoutBordersAndMargins,\n !leftIconOutset ? (borderStyles as PickerProps[\"style\"]) : {},\n ]}\n >\n {leftIcon}\n\n {/* insetContainer */}\n <View\n style={[\n styles.insetContainer,\n leftIconOutset ? (borderStyles as PickerProps[\"style\"]) : {},\n ]}\n >\n {/* primaryTextContainer */}\n <View style={styles.primaryTextContainer}>\n {labelText}\n\n <Text style={primaryTextStyle}>\n {String(selectedLabel ?? placeholder)}\n </Text>\n </View>\n\n {rightIcon}\n </View>\n </View>\n {assistiveTextLabel}\n </Touchable>\n\n {/* iosPicker */}\n {platform === \"ios\" && pickerVisible ? (\n <Portal>\n <View\n style={[\n styles.iosPicker,\n {\n backgroundColor: colors.divider,\n },\n ]}\n >\n <SafeAreaView style={styles.iosSafeArea}>\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={togglePickerVisible}\n style={styles.iosButton}\n >\n {\"Close\"}\n </Button>\n\n <NativePicker\n style={styles.iosNativePicker}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n </SafeAreaView>\n </View>\n </Portal>\n ) : null}\n\n {/* nonIosPicker */}\n {platform !== \"ios\" ? (\n <NativePicker\n enabled={!disabled}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n style={styles.nonIosPicker}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n ) : null}\n </View>\n );\n};\n\nexport default withTheme(Picker);\n\nconst styles = StyleSheet.create({\n marginsContainer: {\n alignSelf: \"stretch\",\n },\n touchableContainer: {\n alignSelf: \"stretch\",\n alignItems: \"center\",\n },\n outsetContainer: {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n },\n insetContainer: {\n flex: 1,\n height: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingLeft: 12,\n paddingRight: 12,\n },\n primaryTextContainer: {\n flex: 1,\n },\n iosPicker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n iosSafeArea: {\n backgroundColor: \"white\",\n flexDirection: \"column\",\n width: \"100%\",\n },\n iosButton: {\n alignSelf: \"flex-end\",\n },\n iosNativePicker: {\n backgroundColor: \"white\",\n },\n nonIosPicker: {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n },\n});\n"]}
1
+ {"version":3,"sources":["Picker.tsx"],"names":["React","View","StyleSheet","Text","Platform","omit","pickBy","identity","isObject","SafeAreaView","Picker","NativePicker","withTheme","Portal","Button","Touchable","extractStyles","extractBorderAndMarginStyles","borderStyleNames","marginStyleNames","normalizeOptions","options","length","map","option","label","String","value","Error","unstyledColor","disabledColor","errorColor","error","onValueChange","defaultValue","Icon","style","placeholder","disabled","theme","assistiveText","iconColor","iconSize","leftIconMode","leftIconName","placeholderTextColor","rightIconName","type","internalValue","setInternalValue","useState","pickerVisible","togglePickerVisible","useReducer","state","useEffect","normalizedOptions","pickerOptions","colors","viewStyles","textStyles","additionalBorderStyles","additionalMarginStyles","borderStyles","extractedBorderStyles","marginStyles","extractedMarginStyles","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderTopWidth","borderRightWidth","borderLeftWidth","borderBottomWidth","borderColor","borderStyle","backgroundColor","height","platform","OS","stylesWithoutBordersAndMargins","selectedLabel","find","labelText","textAlign","color","fontSize","paddingBottom","leftIconOutset","leftIcon","marginRight","marginLeft","rightIcon","calculateLeftPadding","Math","abs","assistiveTextLabel","width","paddingLeft","paddingTop","primaryTextStyle","handleValueChange","newValue","itemIndex","styles","marginsContainer","touchableContainer","outsetContainer","insetContainer","primaryTextContainer","iosPicker","divider","iosSafeArea","iosButton","iosNativePicker","nonIosPicker","create","alignSelf","alignItems","flex","flexDirection","justifyContent","paddingRight","position","bottom","left","right","opacity","top"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n Text,\n Platform,\n ViewStyle,\n StyleProp,\n} from \"react-native\";\nimport { omit, pickBy, identity, isObject } from \"lodash\";\nimport { SafeAreaView } from \"react-native-safe-area-context\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport { withTheme } from \"../../theming\";\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport Touchable from \"../Touchable\";\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport {\n extractStyles,\n extractBorderAndMarginStyles,\n borderStyleNames,\n marginStyleNames,\n} from \"../../utilities\";\n\nexport interface PickerOption {\n value: string;\n label: string;\n}\n\nexport type PickerProps = {\n error?: any;\n placeholder?: string;\n disabled?: boolean;\n style?: StyleProp<ViewStyle> & { height?: number };\n value?: string;\n options: PickerOption[] | string[];\n onValueChange: (value: string, index: number) => void;\n defaultValue?: string;\n assistiveText?: string;\n label?: string;\n iconColor?: string;\n iconSize?: number;\n leftIconMode?: \"inset\" | \"outset\";\n leftIconName?: string;\n placeholderTextColor?: string;\n rightIconName?: string;\n type?: \"solid\" | \"underline\";\n theme: Theme;\n Icon: IconSlot[\"Icon\"];\n};\n\nfunction normalizeOptions(options: PickerProps[\"options\"]): PickerOption[] {\n if (options.length === 0) {\n return [];\n }\n\n if (typeof options[0] === (\"string\" || \"number\")) {\n return (options as string[]).map((option) => ({\n label: String(option),\n value: String(option),\n }));\n }\n\n if (\n isObject(options[0]) &&\n options[0].value !== null &&\n options[0].label !== null\n ) {\n return (options as PickerOption[]).map((option) => {\n return {\n label: String(option.label),\n value: String(option.value),\n };\n });\n }\n\n throw new Error(\n 'Picker options must be either an array of strings or array of { \"label\": string; \"value\": string; } objects.'\n );\n}\n\nconst unstyledColor = \"rgba(165, 173, 183, 1)\";\nconst disabledColor = \"rgb(240, 240, 240)\";\nconst errorColor = \"rgba(255, 69, 100, 1)\";\n\nconst Picker: React.FC<PickerProps> = ({\n error,\n options = [],\n onValueChange,\n defaultValue,\n Icon,\n style,\n placeholder,\n value,\n disabled = false,\n theme,\n assistiveText,\n label,\n iconColor = unstyledColor,\n iconSize = 24,\n leftIconMode = \"inset\",\n leftIconName,\n placeholderTextColor = unstyledColor,\n rightIconName,\n type = \"solid\",\n}) => {\n const [internalValue, setInternalValue] = React.useState<string | undefined>(\n value || defaultValue\n );\n\n const [pickerVisible, togglePickerVisible] = React.useReducer(\n (state) => !state,\n false\n );\n\n React.useEffect(() => {\n if (value != null) {\n setInternalValue(value);\n }\n }, [value]);\n\n React.useEffect(() => {\n if (defaultValue != null) {\n setInternalValue(defaultValue);\n }\n }, [defaultValue]);\n\n const normalizedOptions = normalizeOptions(options);\n\n const pickerOptions = placeholder\n ? [{ value: placeholder, label: placeholder }, ...normalizedOptions]\n : normalizedOptions;\n\n const { colors } = theme;\n\n const { viewStyles, textStyles } = extractStyles(style);\n\n const additionalBorderStyles = [\"backgroundColor\"];\n\n const additionalMarginStyles = [\n \"bottom\",\n \"height\",\n \"left\",\n \"maxHeight\",\n \"maxWidth\",\n \"minHeight\",\n \"minWidth\",\n \"overflow\",\n \"position\",\n \"right\",\n \"top\",\n \"width\",\n \"zIndex\",\n ];\n\n const {\n borderStyles: extractedBorderStyles,\n marginStyles: extractedMarginStyles,\n } = extractBorderAndMarginStyles(\n viewStyles,\n additionalBorderStyles,\n additionalMarginStyles\n );\n\n const borderStyles = {\n ...{\n ...(type === \"solid\"\n ? {\n borderTopLeftRadius: 5,\n borderTopRightRadius: 5,\n borderBottomRightRadius: 5,\n borderBottomLeftRadius: 5,\n borderTopWidth: 1,\n borderRightWidth: 1,\n borderLeftWidth: 1,\n }\n : {}),\n borderBottomWidth: 1,\n borderColor: unstyledColor,\n borderStyle: \"solid\",\n },\n ...extractedBorderStyles,\n ...(error ? { borderColor: errorColor } : {}),\n ...(disabled\n ? { borderColor: \"transparent\", backgroundColor: disabledColor }\n : {}),\n };\n\n const marginStyles = {\n height: 60,\n ...extractedMarginStyles,\n };\n\n const platform = Platform.OS;\n\n const stylesWithoutBordersAndMargins = omit(viewStyles, [\n ...borderStyleNames,\n ...marginStyleNames,\n ...additionalBorderStyles,\n ...additionalMarginStyles,\n ]);\n\n const selectedLabel =\n internalValue &&\n ((pickerOptions as unknown as PickerOption[]).find(\n (option) => option.value === internalValue\n )?.label ??\n internalValue);\n\n const labelText = label ? (\n <Text\n style={{\n textAlign: textStyles.textAlign,\n color: unstyledColor,\n fontSize: 12,\n paddingBottom: 4,\n }}\n >\n {label}\n </Text>\n ) : null;\n\n const leftIconOutset = leftIconMode === \"outset\";\n\n const leftIcon = leftIconName ? (\n <Icon\n name={leftIconName}\n color={disabled ? unstyledColor : iconColor}\n size={iconSize}\n style={{\n marginRight: 4,\n marginLeft: 4,\n }}\n />\n ) : null;\n\n const rightIcon = rightIconName ? (\n <Icon\n name={rightIconName}\n color={disabled ? unstyledColor : iconColor}\n size={iconSize}\n style={{\n marginRight: -10,\n marginLeft: 8,\n }}\n />\n ) : null;\n\n const textAlign = textStyles?.textAlign;\n\n const calculateLeftPadding = () => {\n if (leftIconOutset) {\n if (textAlign === \"center\") {\n return iconSize - Math.abs(8 - iconSize);\n }\n\n return iconSize + 8;\n }\n\n return 0;\n };\n\n const assistiveTextLabel = assistiveText ? (\n <Text\n style={{\n textAlign,\n width: \"100%\",\n paddingLeft: calculateLeftPadding(),\n color: unstyledColor,\n fontSize: 12,\n paddingTop: 4,\n }}\n >\n {assistiveText}\n </Text>\n ) : null;\n\n const primaryTextStyle = {\n color: unstyledColor,\n fontSize: 14,\n ...pickBy(textStyles, identity),\n ...(placeholder === internalValue ? { color: placeholderTextColor } : {}),\n ...(disabled ? { color: unstyledColor } : {}),\n };\n\n const handleValueChange = (newValue: string, itemIndex: number) => {\n if (!placeholder || itemIndex > 0) {\n onValueChange?.(newValue, itemIndex);\n }\n setInternalValue(newValue);\n };\n\n return (\n /* marginsContainer */\n <View style={[styles.marginsContainer, marginStyles]}>\n {/* touchableContainer */}\n <Touchable\n disabled={disabled}\n onPress={togglePickerVisible}\n style={styles.touchableContainer}\n >\n {/* outsetContainer */}\n <View\n pointerEvents=\"none\"\n style={[\n styles.outsetContainer,\n stylesWithoutBordersAndMargins,\n !leftIconOutset ? (borderStyles as PickerProps[\"style\"]) : {},\n ]}\n >\n {leftIcon}\n\n {/* insetContainer */}\n <View\n style={[\n styles.insetContainer,\n leftIconOutset ? (borderStyles as PickerProps[\"style\"]) : {},\n ]}\n >\n {/* primaryTextContainer */}\n <View style={styles.primaryTextContainer}>\n {labelText}\n\n <Text style={primaryTextStyle}>\n {String(selectedLabel ?? placeholder)}\n </Text>\n </View>\n\n {rightIcon}\n </View>\n </View>\n {assistiveTextLabel}\n </Touchable>\n\n {/* iosPicker */}\n {platform === \"ios\" && pickerVisible ? (\n <Portal>\n <View\n style={[\n styles.iosPicker,\n {\n backgroundColor: colors.divider,\n },\n ]}\n >\n <SafeAreaView style={styles.iosSafeArea}>\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={togglePickerVisible}\n style={styles.iosButton}\n >\n {\"Close\"}\n </Button>\n\n <NativePicker\n style={styles.iosNativePicker}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n </SafeAreaView>\n </View>\n </Portal>\n ) : null}\n\n {/* nonIosPicker */}\n {platform !== \"ios\" ? (\n <NativePicker\n enabled={!disabled}\n selectedValue={internalValue}\n onValueChange={handleValueChange}\n style={styles.nonIosPicker}\n >\n {(pickerOptions as unknown as PickerOption[]).map((option) => (\n <NativePicker.Item\n label={option.label}\n value={option.value}\n key={option.value}\n />\n ))}\n </NativePicker>\n ) : null}\n </View>\n );\n};\n\nexport default withTheme(Picker);\n\nconst styles = StyleSheet.create({\n marginsContainer: {\n alignSelf: \"stretch\",\n alignItems: \"center\",\n },\n touchableContainer: {\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n alignSelf: \"stretch\",\n alignItems: \"center\",\n },\n outsetContainer: {\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n },\n insetContainer: {\n flex: 1,\n height: \"100%\",\n width: \"100%\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingLeft: 12,\n paddingRight: 12,\n },\n primaryTextContainer: {\n flex: 1,\n },\n iosPicker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n iosSafeArea: {\n backgroundColor: \"white\",\n flexDirection: \"column\",\n width: \"100%\",\n },\n iosButton: {\n alignSelf: \"flex-end\",\n },\n iosNativePicker: {\n backgroundColor: \"white\",\n },\n nonIosPicker: {\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n },\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draftbit/core",
3
- "version": "44.1.11-4476d0.0+4476d041",
3
+ "version": "44.1.11-b60547.0+b605472c",
4
4
  "description": "Core (non-native) Components",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -79,5 +79,5 @@
79
79
  ]
80
80
  ]
81
81
  },
82
- "gitHead": "4476d0415f341d23248b783043e85fab49b8f6eb"
82
+ "gitHead": "b605472c73a169ad0d824dd0338822e10d39b259"
83
83
  }
@@ -52,7 +52,23 @@ const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style,
52
52
  : normalizedOptions;
53
53
  const { colors } = theme;
54
54
  const { viewStyles, textStyles } = extractStyles(style);
55
- const { marginStyles, borderStyles: extractedBorderStyles } = extractBorderAndMarginStyles(viewStyles, ["backgroundColor"]);
55
+ const additionalBorderStyles = ["backgroundColor"];
56
+ const additionalMarginStyles = [
57
+ "bottom",
58
+ "height",
59
+ "left",
60
+ "maxHeight",
61
+ "maxWidth",
62
+ "minHeight",
63
+ "minWidth",
64
+ "overflow",
65
+ "position",
66
+ "right",
67
+ "top",
68
+ "width",
69
+ "zIndex",
70
+ ];
71
+ const { borderStyles: extractedBorderStyles, marginStyles: extractedMarginStyles, } = extractBorderAndMarginStyles(viewStyles, additionalBorderStyles, additionalMarginStyles);
56
72
  const borderStyles = {
57
73
  ...{
58
74
  ...(type === "solid"
@@ -67,7 +83,7 @@ const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style,
67
83
  }
68
84
  : {}),
69
85
  borderBottomWidth: 1,
70
- borderColor: "green",
86
+ borderColor: unstyledColor,
71
87
  borderStyle: "solid",
72
88
  },
73
89
  ...extractedBorderStyles,
@@ -76,18 +92,17 @@ const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style,
76
92
  ? { borderColor: "transparent", backgroundColor: disabledColor }
77
93
  : {}),
78
94
  };
79
- const platform = Platform.OS;
80
- const stylesWithoutBordersAndMargins = {
81
- ...{
82
- height: 60,
83
- width: "100%",
84
- },
85
- ...omit(viewStyles, [
86
- ...borderStyleNames,
87
- ...marginStyleNames,
88
- "backgroundColor",
89
- ]),
95
+ const marginStyles = {
96
+ height: 60,
97
+ ...extractedMarginStyles,
90
98
  };
99
+ const platform = Platform.OS;
100
+ const stylesWithoutBordersAndMargins = omit(viewStyles, [
101
+ ...borderStyleNames,
102
+ ...marginStyleNames,
103
+ ...additionalBorderStyles,
104
+ ...additionalMarginStyles,
105
+ ]);
91
106
  const selectedLabel = internalValue &&
92
107
  (pickerOptions.find((option) => option.value === internalValue)?.label ??
93
108
  internalValue);
@@ -106,16 +121,20 @@ const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style,
106
121
  marginRight: -10,
107
122
  marginLeft: 8,
108
123
  } })) : null;
109
- const width = stylesWithoutBordersAndMargins?.width;
110
124
  const textAlign = textStyles?.textAlign;
111
- const paddingLeft = leftIconOutset &&
112
- (!textAlign || textAlign === "left" || textAlign === "justify")
113
- ? iconSize + 4
114
- : 0;
125
+ const calculateLeftPadding = () => {
126
+ if (leftIconOutset) {
127
+ if (textAlign === "center") {
128
+ return iconSize - Math.abs(8 - iconSize);
129
+ }
130
+ return iconSize + 8;
131
+ }
132
+ return 0;
133
+ };
115
134
  const assistiveTextLabel = assistiveText ? (React.createElement(Text, { style: {
116
135
  textAlign,
117
- width,
118
- paddingLeft,
136
+ width: "100%",
137
+ paddingLeft: calculateLeftPadding(),
119
138
  color: unstyledColor,
120
139
  fontSize: 12,
121
140
  paddingTop: 4,
@@ -168,12 +187,19 @@ export default withTheme(Picker);
168
187
  const styles = StyleSheet.create({
169
188
  marginsContainer: {
170
189
  alignSelf: "stretch",
190
+ alignItems: "center",
171
191
  },
172
192
  touchableContainer: {
193
+ flex: 1,
194
+ height: "100%",
195
+ width: "100%",
173
196
  alignSelf: "stretch",
174
197
  alignItems: "center",
175
198
  },
176
199
  outsetContainer: {
200
+ flex: 1,
201
+ height: "100%",
202
+ width: "100%",
177
203
  flexDirection: "row",
178
204
  alignItems: "center",
179
205
  justifyContent: "space-between",
@@ -181,6 +207,7 @@ const styles = StyleSheet.create({
181
207
  insetContainer: {
182
208
  flex: 1,
183
209
  height: "100%",
210
+ width: "100%",
184
211
  flexDirection: "row",
185
212
  alignItems: "center",
186
213
  justifyContent: "space-between",
@@ -137,8 +137,32 @@ const Picker: React.FC<PickerProps> = ({
137
137
 
138
138
  const { viewStyles, textStyles } = extractStyles(style);
139
139
 
140
- const { marginStyles, borderStyles: extractedBorderStyles } =
141
- extractBorderAndMarginStyles(viewStyles, ["backgroundColor"]);
140
+ const additionalBorderStyles = ["backgroundColor"];
141
+
142
+ const additionalMarginStyles = [
143
+ "bottom",
144
+ "height",
145
+ "left",
146
+ "maxHeight",
147
+ "maxWidth",
148
+ "minHeight",
149
+ "minWidth",
150
+ "overflow",
151
+ "position",
152
+ "right",
153
+ "top",
154
+ "width",
155
+ "zIndex",
156
+ ];
157
+
158
+ const {
159
+ borderStyles: extractedBorderStyles,
160
+ marginStyles: extractedMarginStyles,
161
+ } = extractBorderAndMarginStyles(
162
+ viewStyles,
163
+ additionalBorderStyles,
164
+ additionalMarginStyles
165
+ );
142
166
 
143
167
  const borderStyles = {
144
168
  ...{
@@ -154,7 +178,7 @@ const Picker: React.FC<PickerProps> = ({
154
178
  }
155
179
  : {}),
156
180
  borderBottomWidth: 1,
157
- borderColor: "green",
181
+ borderColor: unstyledColor,
158
182
  borderStyle: "solid",
159
183
  },
160
184
  ...extractedBorderStyles,
@@ -164,19 +188,19 @@ const Picker: React.FC<PickerProps> = ({
164
188
  : {}),
165
189
  };
166
190
 
191
+ const marginStyles = {
192
+ height: 60,
193
+ ...extractedMarginStyles,
194
+ };
195
+
167
196
  const platform = Platform.OS;
168
197
 
169
- const stylesWithoutBordersAndMargins = {
170
- ...{
171
- height: 60,
172
- width: "100%",
173
- },
174
- ...omit(viewStyles, [
175
- ...borderStyleNames,
176
- ...marginStyleNames,
177
- "backgroundColor",
178
- ]),
179
- };
198
+ const stylesWithoutBordersAndMargins = omit(viewStyles, [
199
+ ...borderStyleNames,
200
+ ...marginStyleNames,
201
+ ...additionalBorderStyles,
202
+ ...additionalMarginStyles,
203
+ ]);
180
204
 
181
205
  const selectedLabel =
182
206
  internalValue &&
@@ -224,22 +248,26 @@ const Picker: React.FC<PickerProps> = ({
224
248
  />
225
249
  ) : null;
226
250
 
227
- const width = stylesWithoutBordersAndMargins?.width;
228
-
229
251
  const textAlign = textStyles?.textAlign;
230
252
 
231
- const paddingLeft =
232
- leftIconOutset &&
233
- (!textAlign || textAlign === "left" || textAlign === "justify")
234
- ? iconSize + 4
235
- : 0;
253
+ const calculateLeftPadding = () => {
254
+ if (leftIconOutset) {
255
+ if (textAlign === "center") {
256
+ return iconSize - Math.abs(8 - iconSize);
257
+ }
258
+
259
+ return iconSize + 8;
260
+ }
261
+
262
+ return 0;
263
+ };
236
264
 
237
265
  const assistiveTextLabel = assistiveText ? (
238
266
  <Text
239
267
  style={{
240
268
  textAlign,
241
- width,
242
- paddingLeft,
269
+ width: "100%",
270
+ paddingLeft: calculateLeftPadding(),
243
271
  color: unstyledColor,
244
272
  fontSize: 12,
245
273
  paddingTop: 4,
@@ -371,12 +399,19 @@ export default withTheme(Picker);
371
399
  const styles = StyleSheet.create({
372
400
  marginsContainer: {
373
401
  alignSelf: "stretch",
402
+ alignItems: "center",
374
403
  },
375
404
  touchableContainer: {
405
+ flex: 1,
406
+ height: "100%",
407
+ width: "100%",
376
408
  alignSelf: "stretch",
377
409
  alignItems: "center",
378
410
  },
379
411
  outsetContainer: {
412
+ flex: 1,
413
+ height: "100%",
414
+ width: "100%",
380
415
  flexDirection: "row",
381
416
  alignItems: "center",
382
417
  justifyContent: "space-between",
@@ -384,6 +419,7 @@ const styles = StyleSheet.create({
384
419
  insetContainer: {
385
420
  flex: 1,
386
421
  height: "100%",
422
+ width: "100%",
387
423
  flexDirection: "row",
388
424
  alignItems: "center",
389
425
  justifyContent: "space-between",