@draftbit/core 46.7.2-9358f4.2 → 46.7.4

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.
Files changed (241) hide show
  1. package/lib/commonjs/components/Justification.js +1 -5
  2. package/lib/commonjs/components/ResizeMode.js +1 -5
  3. package/lib/commonjs/index.js +0 -56
  4. package/lib/commonjs/utilities.js +2 -1
  5. package/lib/module/components/Justification.js +0 -1
  6. package/lib/module/components/ResizeMode.js +0 -1
  7. package/lib/module/index.js +0 -8
  8. package/lib/typescript/src/index.d.ts +0 -8
  9. package/lib/typescript/src/index.d.ts.map +1 -1
  10. package/package.json +3 -3
  11. package/src/index.tsx +0 -8
  12. package/lib/commonjs/components/CardBlock.js +0 -106
  13. package/lib/commonjs/components/CardContainer.js +0 -138
  14. package/lib/commonjs/components/CardContainerRating.js +0 -133
  15. package/lib/commonjs/components/CardContainerShortImage.js +0 -84
  16. package/lib/commonjs/components/CardInline.js +0 -91
  17. package/lib/commonjs/components/Carousel.js +0 -130
  18. package/lib/commonjs/components/Header.js +0 -82
  19. package/lib/commonjs/components/HeaderLarge.js +0 -38
  20. package/lib/commonjs/components/HeaderMedium.js +0 -38
  21. package/lib/commonjs/components/HeaderOverline.js +0 -39
  22. package/lib/module/components/CardBlock.js +0 -98
  23. package/lib/module/components/CardContainer.js +0 -121
  24. package/lib/module/components/CardContainerRating.js +0 -125
  25. package/lib/module/components/CardContainerShortImage.js +0 -76
  26. package/lib/module/components/CardInline.js +0 -82
  27. package/lib/module/components/Carousel.js +0 -120
  28. package/lib/module/components/Header.js +0 -72
  29. package/lib/module/components/HeaderLarge.js +0 -28
  30. package/lib/module/components/HeaderMedium.js +0 -28
  31. package/lib/module/components/HeaderOverline.js +0 -29
  32. package/lib/typescript/src/components/CardBlock.d.ts +0 -21
  33. package/lib/typescript/src/components/CardBlock.d.ts.map +0 -1
  34. package/lib/typescript/src/components/CardContainer.d.ts +0 -23
  35. package/lib/typescript/src/components/CardContainer.d.ts.map +0 -1
  36. package/lib/typescript/src/components/CardContainerRating.d.ts +0 -24
  37. package/lib/typescript/src/components/CardContainerRating.d.ts.map +0 -1
  38. package/lib/typescript/src/components/CardContainerShortImage.d.ts +0 -19
  39. package/lib/typescript/src/components/CardContainerShortImage.d.ts.map +0 -1
  40. package/lib/typescript/src/components/CardInline.d.ts +0 -20
  41. package/lib/typescript/src/components/CardInline.d.ts.map +0 -1
  42. package/lib/typescript/src/components/Carousel.d.ts +0 -15
  43. package/lib/typescript/src/components/Carousel.d.ts.map +0 -1
  44. package/lib/typescript/src/components/Header.d.ts +0 -20
  45. package/lib/typescript/src/components/Header.d.ts.map +0 -1
  46. package/lib/typescript/src/components/HeaderLarge.d.ts +0 -17
  47. package/lib/typescript/src/components/HeaderLarge.d.ts.map +0 -1
  48. package/lib/typescript/src/components/HeaderMedium.d.ts +0 -17
  49. package/lib/typescript/src/components/HeaderMedium.d.ts.map +0 -1
  50. package/lib/typescript/src/components/HeaderOverline.d.ts +0 -17
  51. package/lib/typescript/src/components/HeaderOverline.d.ts.map +0 -1
  52. package/src/Provider.js +0 -9
  53. package/src/components/Accordion/AccordionGroup.js +0 -44
  54. package/src/components/Accordion/AccordionItem.js +0 -32
  55. package/src/components/Accordion/index.js +0 -2
  56. package/src/components/ActionSheet/ActionSheet.js +0 -45
  57. package/src/components/ActionSheet/ActionSheetCancel.js +0 -6
  58. package/src/components/ActionSheet/ActionSheetItem.js +0 -30
  59. package/src/components/ActionSheet/index.js +0 -3
  60. package/src/components/AnimatedCircularProgress.js +0 -43
  61. package/src/components/AspectRatio.js +0 -18
  62. package/src/components/AvatarEdit.js +0 -30
  63. package/src/components/Banner.js +0 -109
  64. package/src/components/Button.js +0 -114
  65. package/src/components/Card.js +0 -57
  66. package/src/components/CardBlock.js +0 -54
  67. package/src/components/CardBlock.tsx +0 -127
  68. package/src/components/CardContainer.js +0 -69
  69. package/src/components/CardContainer.tsx +0 -165
  70. package/src/components/CardContainerRating.js +0 -79
  71. package/src/components/CardContainerRating.tsx +0 -175
  72. package/src/components/CardContainerShortImage.js +0 -33
  73. package/src/components/CardContainerShortImage.tsx +0 -101
  74. package/src/components/CardInline.js +0 -36
  75. package/src/components/CardInline.tsx +0 -93
  76. package/src/components/Carousel.js +0 -68
  77. package/src/components/Carousel.tsx +0 -134
  78. package/src/components/Checkbox/Checkbox.js +0 -62
  79. package/src/components/Checkbox/CheckboxGroup.js +0 -21
  80. package/src/components/Checkbox/CheckboxGroupRow.js +0 -76
  81. package/src/components/Checkbox/CheckboxRow.js +0 -77
  82. package/src/components/Checkbox/context.js +0 -14
  83. package/src/components/Checkbox/index.js +0 -3
  84. package/src/components/CircleImage.js +0 -8
  85. package/src/components/CircularProgress.js +0 -81
  86. package/src/components/Config.js +0 -64
  87. package/src/components/Container.js +0 -43
  88. package/src/components/DatePicker/DatePicker.js +0 -377
  89. package/src/components/DatePicker/DatePickerComponent.js +0 -13
  90. package/src/components/DatePicker/DatePickerComponent.web.js +0 -30
  91. package/src/components/DatePicker/DatePickerComponentType.js +0 -1
  92. package/src/components/DeprecatedButton.js +0 -83
  93. package/src/components/DeprecatedCardWrapper.js +0 -18
  94. package/src/components/DeprecatedFAB.js +0 -114
  95. package/src/components/Divider.js +0 -13
  96. package/src/components/Elevation.js +0 -20
  97. package/src/components/FAB.js +0 -46
  98. package/src/components/FieldSearchBarFull.js +0 -53
  99. package/src/components/FormRow.js +0 -19
  100. package/src/components/Header.js +0 -44
  101. package/src/components/Header.tsx +0 -105
  102. package/src/components/HeaderLarge.js +0 -7
  103. package/src/components/HeaderLarge.tsx +0 -40
  104. package/src/components/HeaderMedium.js +0 -7
  105. package/src/components/HeaderMedium.tsx +0 -41
  106. package/src/components/HeaderOverline.js +0 -7
  107. package/src/components/HeaderOverline.tsx +0 -42
  108. package/src/components/IconButton.js +0 -35
  109. package/src/components/Image.js +0 -47
  110. package/src/components/Justification.js +0 -1
  111. package/src/components/Layout.js +0 -50
  112. package/src/components/NumberInput.js +0 -49
  113. package/src/components/Picker/Picker.js +0 -267
  114. package/src/components/Picker/PickerComponent.android.js +0 -69
  115. package/src/components/Picker/PickerComponent.ios.js +0 -79
  116. package/src/components/Picker/PickerComponent.web.js +0 -70
  117. package/src/components/Picker/PickerTypes.js +0 -1
  118. package/src/components/Portal/Portal.js +0 -35
  119. package/src/components/Portal/PortalConsumer.js +0 -27
  120. package/src/components/Portal/PortalHost.js +0 -107
  121. package/src/components/Portal/PortalManager.js +0 -32
  122. package/src/components/Pressable.js +0 -12
  123. package/src/components/ProgressBar.js +0 -118
  124. package/src/components/ProgressCircle.js +0 -13
  125. package/src/components/ProgressIndicator.js +0 -27
  126. package/src/components/RadioButton/RadioButton.js +0 -17
  127. package/src/components/RadioButton/RadioButtonFieldGroup.js +0 -17
  128. package/src/components/RadioButton/RadioButtonGroup.js +0 -43
  129. package/src/components/RadioButton/RadioButtonRow.js +0 -76
  130. package/src/components/RadioButton/context.js +0 -14
  131. package/src/components/RadioButton/index.js +0 -4
  132. package/src/components/ResizeMode.js +0 -1
  133. package/src/components/Row.js +0 -48
  134. package/src/components/RowBodyIcon.js +0 -8
  135. package/src/components/RowHeadlineImageCaption.js +0 -12
  136. package/src/components/RowHeadlineImageIcon.js +0 -14
  137. package/src/components/SVG.js +0 -13
  138. package/src/components/ScreenContainer.js +0 -34
  139. package/src/components/Slider.js +0 -63
  140. package/src/components/StarRating.js +0 -50
  141. package/src/components/StepIndicator.js +0 -346
  142. package/src/components/Stepper.js +0 -41
  143. package/src/components/Surface.js +0 -32
  144. package/src/components/Swiper/Swiper.js +0 -29
  145. package/src/components/Swiper/SwiperItem.js +0 -9
  146. package/src/components/Swiper/index.js +0 -2
  147. package/src/components/Switch.js +0 -56
  148. package/src/components/Text.js +0 -33
  149. package/src/components/TextField.js +0 -428
  150. package/src/components/ToggleButton.js +0 -39
  151. package/src/components/Touchable.js +0 -12
  152. package/src/components/Touchable.web.js +0 -2
  153. package/src/components/Typography.js +0 -36
  154. package/src/components/useAuthState.js +0 -31
  155. package/src/constants.js +0 -10
  156. package/src/hooks.js +0 -12
  157. package/src/index.js +0 -53
  158. package/src/interfaces/Icon.js +0 -8
  159. package/src/mappings/Accordion.js +0 -41
  160. package/src/mappings/AccordionItem.js +0 -16
  161. package/src/mappings/ActionSheet.js +0 -13
  162. package/src/mappings/ActionSheetCancel.js +0 -19
  163. package/src/mappings/ActionSheetItem.js +0 -23
  164. package/src/mappings/ActivityIndicator.js +0 -58
  165. package/src/mappings/AudioPlayer.js +0 -57
  166. package/src/mappings/AvatarEdit.js +0 -38
  167. package/src/mappings/Banner.js +0 -32
  168. package/src/mappings/BlurView.js +0 -42
  169. package/src/mappings/Button.js +0 -116
  170. package/src/mappings/Card.js +0 -52
  171. package/src/mappings/CardBlock.js +0 -123
  172. package/src/mappings/CardContainer.js +0 -104
  173. package/src/mappings/CardContainerRating.js +0 -126
  174. package/src/mappings/CardContainerShortImage.js +0 -120
  175. package/src/mappings/CardInline.js +0 -52
  176. package/src/mappings/Carousel.js +0 -19
  177. package/src/mappings/Checkbox.js +0 -46
  178. package/src/mappings/CheckboxGroup.js +0 -26
  179. package/src/mappings/CheckboxRow.js +0 -61
  180. package/src/mappings/CircleImage.js +0 -25
  181. package/src/mappings/Container.js +0 -30
  182. package/src/mappings/CustomCode.js +0 -8
  183. package/src/mappings/DatePicker.js +0 -176
  184. package/src/mappings/Divider.js +0 -27
  185. package/src/mappings/FAB.js +0 -37
  186. package/src/mappings/Fetch.js +0 -13
  187. package/src/mappings/FieldSearchBarFull.js +0 -50
  188. package/src/mappings/FlashList.js +0 -85
  189. package/src/mappings/FlatList.js +0 -37
  190. package/src/mappings/HeaderLarge.js +0 -29
  191. package/src/mappings/HeaderMedium.js +0 -55
  192. package/src/mappings/HeaderOverline.js +0 -55
  193. package/src/mappings/Icon.js +0 -32
  194. package/src/mappings/IconButton.js +0 -35
  195. package/src/mappings/Image.js +0 -35
  196. package/src/mappings/ImageBackground.js +0 -29
  197. package/src/mappings/KeyboardAvoidingView.js +0 -41
  198. package/src/mappings/KeyboardAwareScrollView.js +0 -50
  199. package/src/mappings/Layout.js +0 -200
  200. package/src/mappings/LinearGradient.js +0 -77
  201. package/src/mappings/MapCallout.js +0 -21
  202. package/src/mappings/MapMarker.js +0 -47
  203. package/src/mappings/MapView.js +0 -139
  204. package/src/mappings/Modal.js +0 -42
  205. package/src/mappings/NumberInput.js +0 -254
  206. package/src/mappings/Picker.js +0 -148
  207. package/src/mappings/ProgressBar.js +0 -101
  208. package/src/mappings/ProgressCircle.js +0 -109
  209. package/src/mappings/ProgressIndicator.js +0 -181
  210. package/src/mappings/RadioButton.js +0 -51
  211. package/src/mappings/RadioButtonGroup.js +0 -17
  212. package/src/mappings/RadioButtonRow.js +0 -42
  213. package/src/mappings/RowBodyIcon.js +0 -75
  214. package/src/mappings/RowHeadlineImageCaption.js +0 -167
  215. package/src/mappings/RowHeadlineImageIcon.js +0 -99
  216. package/src/mappings/SVG.js +0 -20
  217. package/src/mappings/SafeAreaView.js +0 -33
  218. package/src/mappings/ScrollView.js +0 -31
  219. package/src/mappings/Slider.js +0 -60
  220. package/src/mappings/StarRating.js +0 -43
  221. package/src/mappings/Stepper.js +0 -32
  222. package/src/mappings/Surface.js +0 -14
  223. package/src/mappings/Swiper.js +0 -62
  224. package/src/mappings/SwiperItem.js +0 -8
  225. package/src/mappings/Switch.js +0 -81
  226. package/src/mappings/Text.js +0 -251
  227. package/src/mappings/TextArea.js +0 -274
  228. package/src/mappings/TextField.js +0 -391
  229. package/src/mappings/TextInput.js +0 -402
  230. package/src/mappings/ToggleButton.js +0 -50
  231. package/src/mappings/Touchable.js +0 -60
  232. package/src/mappings/Video.js +0 -81
  233. package/src/mappings/View.js +0 -207
  234. package/src/mappings/WebView.js +0 -88
  235. package/src/styles/DarkTheme.js +0 -26
  236. package/src/styles/DefaultTheme.js +0 -111
  237. package/src/styles/fonts.js +0 -62
  238. package/src/styles/overlay.js +0 -60
  239. package/src/styles/shadow.js +0 -51
  240. package/src/theming.js +0 -3
  241. package/src/utilities.js +0 -102
@@ -1,267 +0,0 @@
1
- import * as React from "react";
2
- import { View, StyleSheet, Text, Platform, Dimensions, } from "react-native";
3
- import { omit, pickBy, identity, isObject } from "lodash";
4
- import { SafeAreaView } from "react-native-safe-area-context";
5
- import { Picker as NativePicker } from "@react-native-picker/picker";
6
- import { withTheme } from "../../theming";
7
- import Portal from "../Portal/Portal";
8
- import Button from "../DeprecatedButton";
9
- import Touchable from "../Touchable";
10
- import { extractStyles, extractBorderAndMarginStyles, borderStyleNames, marginStyleNames, } from "../../utilities";
11
- function normalizeOptions(options) {
12
- if (options.length === 0) {
13
- return [];
14
- }
15
- if (typeof options[0] === ("string" || "number")) {
16
- return options.map((option) => ({
17
- label: String(option),
18
- value: String(option),
19
- }));
20
- }
21
- if (isObject(options[0]) &&
22
- options[0].value !== null &&
23
- options[0].label !== null) {
24
- return options.map((option) => {
25
- return {
26
- label: String(option.label),
27
- value: String(option.value),
28
- };
29
- });
30
- }
31
- throw new Error('Picker options must be either an array of strings or array of { "label": string; "value": string; } objects.');
32
- }
33
- const { width: deviceWidth, height: deviceHeight } = Dimensions.get("screen");
34
- const isIos = Platform.OS === "ios";
35
- const unstyledColor = "rgba(165, 173, 183, 1)";
36
- const disabledColor = "rgb(240, 240, 240)";
37
- const errorColor = "rgba(255, 69, 100, 1)";
38
- const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style, placeholder, value, disabled = false, theme, assistiveText, label, iconColor = unstyledColor, iconSize = 24, leftIconMode = "inset", leftIconName, placeholderTextColor = unstyledColor, rightIconName, type = "solid", }) => {
39
- var _a, _b;
40
- const androidPickerRef = React.useRef(undefined);
41
- const [internalValue, setInternalValue] = React.useState(value || defaultValue);
42
- const [pickerVisible, setPickerVisible] = React.useState(false);
43
- const togglePickerVisible = () => {
44
- setPickerVisible(!pickerVisible);
45
- };
46
- React.useEffect(() => {
47
- if (value != null) {
48
- setInternalValue(value);
49
- }
50
- }, [value]);
51
- React.useEffect(() => {
52
- if (defaultValue != null) {
53
- setInternalValue(defaultValue);
54
- }
55
- }, [defaultValue]);
56
- React.useEffect(() => {
57
- var _a;
58
- if (pickerVisible && androidPickerRef.current) {
59
- (_a = androidPickerRef === null || androidPickerRef === void 0 ? void 0 : androidPickerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
60
- }
61
- }, [pickerVisible, androidPickerRef]);
62
- const normalizedOptions = normalizeOptions(options);
63
- const pickerOptions = placeholder
64
- ? [{ value: placeholder, label: placeholder }, ...normalizedOptions]
65
- : normalizedOptions;
66
- const { colors } = theme;
67
- const { viewStyles, textStyles } = extractStyles(style);
68
- const additionalBorderStyles = ["backgroundColor"];
69
- const additionalMarginStyles = [
70
- "bottom",
71
- "height",
72
- "left",
73
- "maxHeight",
74
- "maxWidth",
75
- "minHeight",
76
- "minWidth",
77
- "overflow",
78
- "position",
79
- "right",
80
- "top",
81
- "width",
82
- "zIndex",
83
- ];
84
- const { borderStyles: extractedBorderStyles, marginStyles: extractedMarginStyles, } = extractBorderAndMarginStyles(viewStyles, additionalBorderStyles, additionalMarginStyles);
85
- const borderStyles = {
86
- ...{
87
- ...(type === "solid"
88
- ? {
89
- borderTopLeftRadius: 5,
90
- borderTopRightRadius: 5,
91
- borderBottomRightRadius: 5,
92
- borderBottomLeftRadius: 5,
93
- borderTopWidth: 1,
94
- borderRightWidth: 1,
95
- borderLeftWidth: 1,
96
- }
97
- : {}),
98
- borderBottomWidth: 1,
99
- borderColor: unstyledColor,
100
- borderStyle: "solid",
101
- },
102
- ...extractedBorderStyles,
103
- ...(error ? { borderColor: errorColor } : {}),
104
- ...(disabled
105
- ? { borderColor: "transparent", backgroundColor: disabledColor }
106
- : {}),
107
- };
108
- const marginStyles = {
109
- height: 60,
110
- ...extractedMarginStyles,
111
- };
112
- const stylesWithoutBordersAndMargins = omit(viewStyles, [
113
- ...borderStyleNames,
114
- ...marginStyleNames,
115
- ...additionalBorderStyles,
116
- ...additionalMarginStyles,
117
- ]);
118
- const selectedLabel = internalValue &&
119
- ((_b = (_a = pickerOptions.find((option) => option.value === internalValue)) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : internalValue);
120
- const labelText = label ? (React.createElement(Text, { style: {
121
- textAlign: textStyles.textAlign,
122
- color: unstyledColor,
123
- fontSize: 12,
124
- paddingBottom: 4,
125
- } }, label)) : null;
126
- const leftIconOutset = leftIconMode === "outset";
127
- const leftIcon = leftIconName ? (React.createElement(Icon, { name: leftIconName, color: disabled ? unstyledColor : iconColor, size: iconSize, style: {
128
- marginRight: 4,
129
- marginLeft: 4,
130
- } })) : null;
131
- const rightIcon = rightIconName ? (React.createElement(Icon, { name: rightIconName, color: disabled ? unstyledColor : iconColor, size: iconSize, style: {
132
- marginRight: -10,
133
- marginLeft: 8,
134
- } })) : null;
135
- const textAlign = textStyles === null || textStyles === void 0 ? void 0 : textStyles.textAlign;
136
- const calculateLeftPadding = () => {
137
- if (leftIconOutset) {
138
- if (textAlign === "center") {
139
- return iconSize - Math.abs(8 - iconSize);
140
- }
141
- return iconSize + 8;
142
- }
143
- return 0;
144
- };
145
- const assistiveTextLabel = assistiveText ? (React.createElement(Text, { style: {
146
- textAlign,
147
- width: "100%",
148
- paddingLeft: calculateLeftPadding(),
149
- color: unstyledColor,
150
- fontSize: 12,
151
- paddingTop: 4,
152
- } }, assistiveText)) : null;
153
- const primaryTextStyle = {
154
- color: unstyledColor,
155
- fontSize: 14,
156
- ...pickBy(textStyles, identity),
157
- ...(placeholder === internalValue ? { color: placeholderTextColor } : {}),
158
- ...(disabled ? { color: unstyledColor } : {}),
159
- };
160
- const handleValueChange = (newValue, itemIndex) => {
161
- if (!placeholder || itemIndex > 0) {
162
- onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(newValue, itemIndex);
163
- }
164
- setInternalValue(newValue);
165
- };
166
- return (
167
- /* marginsContainer */
168
- React.createElement(View, { style: [styles.marginsContainer, marginStyles] },
169
- React.createElement(Touchable, { disabled: disabled, onPress: togglePickerVisible, style: styles.touchableContainer },
170
- React.createElement(View, { pointerEvents: "none", style: [
171
- styles.outsetContainer,
172
- stylesWithoutBordersAndMargins,
173
- !leftIconOutset ? borderStyles : {},
174
- ] },
175
- leftIcon,
176
- React.createElement(View, { style: [
177
- styles.insetContainer,
178
- leftIconOutset ? borderStyles : {},
179
- ] },
180
- React.createElement(View, { style: styles.primaryTextContainer },
181
- labelText,
182
- React.createElement(Text, { style: primaryTextStyle }, String(selectedLabel !== null && selectedLabel !== void 0 ? selectedLabel : placeholder))),
183
- rightIcon)),
184
- assistiveTextLabel),
185
- isIos && pickerVisible ? (React.createElement(Portal, null,
186
- React.createElement(View, { style: [
187
- styles.iosPicker,
188
- {
189
- backgroundColor: colors.divider,
190
- },
191
- ] },
192
- React.createElement(SafeAreaView, { style: styles.iosSafeArea },
193
- React.createElement(Button, { Icon: Icon, type: "text", onPress: togglePickerVisible, style: styles.iosButton }, "Close"),
194
- React.createElement(NativePicker, { style: styles.iosNativePicker, selectedValue: internalValue, onValueChange: handleValueChange }, pickerOptions.map((option) => (React.createElement(NativePicker.Item, { label: option.label, value: option.value, key: option.value })))))))) : null,
195
- !isIos && pickerVisible ? (React.createElement(NativePicker, { enabled: pickerVisible, selectedValue: internalValue, onValueChange: handleValueChange, style: styles.nonIosPicker, ref: androidPickerRef, onBlur: () => setPickerVisible(false) }, pickerOptions.map((option) => (React.createElement(NativePicker.Item, { label: option.label, value: option.value, key: option.value }))))) : null));
196
- };
197
- const styles = StyleSheet.create({
198
- marginsContainer: {
199
- alignSelf: "stretch",
200
- alignItems: "center",
201
- width: "100%",
202
- maxWidth: deviceWidth,
203
- },
204
- touchableContainer: {
205
- flex: 1,
206
- height: "100%",
207
- width: "100%",
208
- alignSelf: "stretch",
209
- alignItems: "center",
210
- },
211
- outsetContainer: {
212
- flex: 1,
213
- height: "100%",
214
- width: "100%",
215
- flexDirection: "row",
216
- alignItems: "center",
217
- justifyContent: "space-between",
218
- },
219
- insetContainer: {
220
- flex: 1,
221
- height: "100%",
222
- width: "100%",
223
- flexDirection: "row",
224
- alignItems: "center",
225
- justifyContent: "space-between",
226
- paddingLeft: 12,
227
- paddingRight: 12,
228
- },
229
- primaryTextContainer: {
230
- flex: 1,
231
- },
232
- iosPicker: {
233
- position: "absolute",
234
- bottom: 0,
235
- left: 0,
236
- right: 0,
237
- flexDirection: "row",
238
- justifyContent: "center",
239
- width: "100%",
240
- maxWidth: deviceWidth,
241
- maxHeight: deviceHeight,
242
- },
243
- iosSafeArea: {
244
- backgroundColor: "white",
245
- flexDirection: "column",
246
- width: "100%",
247
- maxWidth: deviceWidth,
248
- },
249
- iosButton: {
250
- alignSelf: "flex-end",
251
- },
252
- iosNativePicker: {
253
- backgroundColor: "white",
254
- },
255
- nonIosPicker: {
256
- opacity: 0,
257
- position: "absolute",
258
- top: 0,
259
- left: 0,
260
- right: 0,
261
- bottom: 0,
262
- width: "100%",
263
- maxWidth: deviceWidth,
264
- maxHeight: deviceHeight,
265
- },
266
- });
267
- export default withTheme(Picker);
@@ -1,69 +0,0 @@
1
- import * as React from "react";
2
- import { View, StyleSheet } from "react-native";
3
- import omit from "lodash.omit";
4
- import { withTheme } from "../../theming";
5
- import { Picker as NativePicker } from "@react-native-picker/picker";
6
- import { extractStyles } from "../../utilities";
7
- import TextField from "../TextField";
8
- import Touchable from "../Touchable";
9
- const Picker = ({ style, options, placeholder, selectedValue, disabled = false, onValueChange: onValueChangeOverride = () => { }, ...props }) => {
10
- var _a, _b;
11
- const { viewStyles: { borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars
12
- borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
13
- borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
14
- borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
15
- borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
16
- borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
17
- borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars
18
- backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars
19
- padding, // eslint-disable-line @typescript-eslint/no-unused-vars
20
- paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars
21
- paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars
22
- paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars
23
- paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars
24
- ...viewStyles }, } = extractStyles(style);
25
- const textField = React.useRef(undefined);
26
- const onValueChange = (itemValue, itemIndex) => {
27
- toggleFocus();
28
- onValueChangeOverride(itemValue, itemIndex);
29
- };
30
- const toggleFocus = () => {
31
- if (!disabled) {
32
- // @ts-ignore
33
- textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()
34
- }
35
- };
36
- const stylesWithoutMargin = style &&
37
- omit(StyleSheet.flatten(style), [
38
- "margin",
39
- "marginTop",
40
- "marginRight",
41
- "marginBottom",
42
- "marginLeft",
43
- ]);
44
- const selectedLabel = selectedValue &&
45
- ((_b = (_a = options.find((o) => o.value === selectedValue)) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : selectedValue);
46
- return (React.createElement(Touchable, { disabled: disabled, onPress: toggleFocus, style: [styles.container, viewStyles] },
47
- React.createElement(View, null,
48
- React.createElement(NativePicker, { enabled: !disabled, selectedValue: selectedValue, onValueChange: onValueChange, style: {
49
- opacity: 0,
50
- position: "absolute",
51
- top: 0,
52
- left: 0,
53
- right: 0,
54
- bottom: 0,
55
- width: "100%",
56
- } }, options.map((o) => (React.createElement(NativePicker.Item, { label: o.label, value: o.value, key: o.value })))),
57
- React.createElement(View, { pointerEvents: "none" },
58
- React.createElement(TextField, { ...props, value: selectedLabel, placeholder: placeholder,
59
- // @ts-ignore
60
- ref: textField, disabled: disabled,
61
- // @ts-expect-error
62
- style: stylesWithoutMargin })))));
63
- };
64
- const styles = StyleSheet.create({
65
- container: {
66
- alignSelf: "stretch",
67
- },
68
- });
69
- export default withTheme(Picker);
@@ -1,79 +0,0 @@
1
- import * as React from "react";
2
- import { View, StyleSheet } from "react-native";
3
- import { SafeAreaView } from "react-native-safe-area-context";
4
- import omit from "lodash.omit";
5
- import { Picker as NativePicker } from "@react-native-picker/picker";
6
- import { withTheme } from "../../theming";
7
- import Portal from "../Portal/Portal";
8
- import Button from "../DeprecatedButton";
9
- import TextField from "../TextField";
10
- import Touchable from "../Touchable";
11
- import { extractStyles } from "../../utilities";
12
- const Picker = ({ Icon, style, options, placeholder, selectedValue, disabled = false, onValueChange = () => { }, theme: { colors }, ...props }) => {
13
- var _a, _b;
14
- const { viewStyles: { borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars
15
- borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
16
- borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
17
- borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
18
- borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
19
- borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
20
- borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars
21
- backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars
22
- padding, // eslint-disable-line @typescript-eslint/no-unused-vars
23
- paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars
24
- paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars
25
- paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars
26
- paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars
27
- ...viewStyles }, } = extractStyles(style);
28
- const textField = React.useRef(undefined);
29
- const [pickerVisible, setIsPickerVisible] = React.useState(false);
30
- const toggleVisibility = () => {
31
- setIsPickerVisible(!pickerVisible);
32
- // @ts-ignore
33
- textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()
34
- };
35
- const stylesWithoutMargin = style &&
36
- omit(StyleSheet.flatten(style), [
37
- "margin",
38
- "marginTop",
39
- "marginRight",
40
- "marginBottom",
41
- "marginLeft",
42
- ]);
43
- const selectedLabel = selectedValue &&
44
- ((_b = (_a = options.find((o) => o.value === selectedValue)) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : selectedValue);
45
- return (React.createElement(View, { style: [styles.container, viewStyles] },
46
- React.createElement(Touchable, { disabled: disabled, onPress: toggleVisibility },
47
- React.createElement(TextField, { ...props, value: String(selectedLabel), placeholder: placeholder,
48
- // @ts-ignore
49
- ref: textField, disabled: disabled, pointerEvents: "none",
50
- // @ts-expect-error
51
- style: stylesWithoutMargin, Icon: Icon })),
52
- pickerVisible && (React.createElement(Portal, null,
53
- React.createElement(View, { style: [styles.picker, { backgroundColor: colors.divider }] },
54
- React.createElement(SafeAreaView, { style: styles.pickerContainer },
55
- React.createElement(Button, { Icon: Icon, type: "text", onPress: toggleVisibility, style: styles.closeButton }, "Close"),
56
- React.createElement(NativePicker, { style: { backgroundColor: "white" }, selectedValue: selectedValue, onValueChange: onValueChange }, options.map((o) => (React.createElement(NativePicker.Item, { label: o.label, value: o.value, key: o.value }))))))))));
57
- };
58
- const styles = StyleSheet.create({
59
- container: {
60
- alignSelf: "stretch",
61
- },
62
- picker: {
63
- position: "absolute",
64
- bottom: 0,
65
- left: 0,
66
- right: 0,
67
- flexDirection: "row",
68
- justifyContent: "center",
69
- },
70
- pickerContainer: {
71
- backgroundColor: "white",
72
- flexDirection: "column",
73
- width: "100%",
74
- },
75
- closeButton: {
76
- alignSelf: "flex-end",
77
- },
78
- });
79
- export default withTheme(Picker);
@@ -1,70 +0,0 @@
1
- import * as React from "react";
2
- import { View, StyleSheet } from "react-native";
3
- import { Picker as NativePicker } from "@react-native-picker/picker";
4
- import omit from "lodash.omit";
5
- import { withTheme } from "../../theming";
6
- import { extractStyles } from "../../utilities";
7
- import TextField from "../TextField";
8
- import Touchable from "../Touchable";
9
- const Picker = ({ style, options, placeholder, selectedValue, disabled = false, onValueChange: onValueChangeOverride = () => { }, ...props }) => {
10
- var _a, _b;
11
- const { viewStyles: { borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars
12
- borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
13
- borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
14
- borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
15
- borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
16
- borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars
17
- borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars
18
- backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars
19
- padding, // eslint-disable-line @typescript-eslint/no-unused-vars
20
- paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars
21
- paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars
22
- paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars
23
- paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars
24
- ...viewStyles }, } = extractStyles(style);
25
- const textField = React.useRef(undefined);
26
- const onValueChange = (itemValue, itemIndex) => {
27
- toggleFocus();
28
- onValueChangeOverride(itemValue, itemIndex);
29
- };
30
- const toggleFocus = () => {
31
- if (!disabled) {
32
- // @ts-ignore
33
- textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()
34
- }
35
- };
36
- const stylesWithoutMargin = style &&
37
- omit(StyleSheet.flatten(style), [
38
- "margin",
39
- "marginTop",
40
- "marginRight",
41
- "marginBottom",
42
- "marginLeft",
43
- ]);
44
- const selectedLabel = selectedValue &&
45
- ((_b = (_a = options.find((o) => o.value === selectedValue)) === null || _a === void 0 ? void 0 : _a.label) !== null && _b !== void 0 ? _b : selectedValue);
46
- return (React.createElement(Touchable, { disabled: disabled, onPress: toggleFocus, style: [styles.container, viewStyles] },
47
- React.createElement(View, null,
48
- React.createElement(NativePicker, { enabled: !disabled, selectedValue: selectedValue, onValueChange: onValueChange, style: {
49
- flex: 1,
50
- opacity: 0,
51
- position: "absolute",
52
- top: 0,
53
- left: 0,
54
- right: 0,
55
- bottom: 0,
56
- width: "100%",
57
- } }, options.map((o) => (React.createElement(NativePicker.Item, { label: o.label, value: o.value, key: o.value })))),
58
- React.createElement(View, { pointerEvents: "none" },
59
- React.createElement(TextField, { ...props, value: selectedLabel, placeholder: placeholder,
60
- // @ts-ignore
61
- ref: textField, disabled: disabled,
62
- // @ts-expect-error
63
- style: stylesWithoutMargin })))));
64
- };
65
- const styles = StyleSheet.create({
66
- container: {
67
- alignSelf: "stretch",
68
- },
69
- });
70
- export default withTheme(Picker);
@@ -1 +0,0 @@
1
- export {};
@@ -1,35 +0,0 @@
1
- import * as React from "react";
2
- import PortalConsumer from "./PortalConsumer";
3
- import PortalHost, { PortalContext } from "./PortalHost";
4
- import { ThemeProvider, withTheme } from "../../theming";
5
- /**
6
- * Portal allows to render a component at a different place in the parent tree.
7
- * You can use it to render content which should appear above other elements, similar to `Modal`.
8
- * It requires a [`Portal.Host`](portal-host.html) component to be rendered somewhere in the parent tree.
9
- *
10
- * ## Usage
11
- * ```js
12
- * import * as React from 'react';
13
- * import { Portal, Text } from 'react-native-paper';
14
- *
15
- * export default class MyComponent extends React.Component {
16
- * render() {
17
- * return (
18
- * <Portal>
19
- * <Text>This is rendered at a different place</Text>
20
- * </Portal>
21
- * );
22
- * }
23
- * }
24
- * ```
25
- */
26
- class Portal extends React.Component {
27
- render() {
28
- const { children, theme } = this.props;
29
- return (React.createElement(PortalContext.Consumer, null, (manager) => (React.createElement(PortalConsumer, { manager: manager },
30
- React.createElement(ThemeProvider, { theme: theme }, children)))));
31
- }
32
- }
33
- // @component ./PortalHost.tsx
34
- Portal.Host = PortalHost;
35
- export default withTheme(Portal);
@@ -1,27 +0,0 @@
1
- import * as React from "react";
2
- export default class PortalConsumer extends React.Component {
3
- async componentDidMount() {
4
- this.checkManager();
5
- // Delay updating to prevent React from going to infinite loop
6
- await Promise.resolve();
7
- this.key = this.props.manager.mount(this.props.children);
8
- }
9
- componentDidUpdate() {
10
- this.checkManager();
11
- this.props.manager.update(this.key, this.props.children);
12
- }
13
- componentWillUnmount() {
14
- this.checkManager();
15
- this.props.manager.unmount(this.key);
16
- }
17
- checkManager() {
18
- if (!this.props.manager) {
19
- throw new Error("Looks like you forgot to wrap your root component with `Provider` component from `react-native-paper`.\n\n" +
20
- "Please read our getting-started guide and make sure you've followed all the required steps.\n\n" +
21
- "https://callstack.github.io/react-native-paper/getting-started.html");
22
- }
23
- }
24
- render() {
25
- return null;
26
- }
27
- }
@@ -1,107 +0,0 @@
1
- import * as React from "react";
2
- import { View, StyleSheet } from "react-native";
3
- import PortalManager from "./PortalManager";
4
- export const PortalContext = React.createContext(null);
5
- /**
6
- * Portal host renders all of its children `Portal` elements.
7
- * For example, you can wrap a screen in `Portal.Host` to render items above the screen.
8
- * If you're using the `Provider` component, it already includes `Portal.Host`.
9
- *
10
- * ## Usage
11
- * ```js
12
- * import * as React from 'react';
13
- * import { Text } from 'react-native';
14
- * import { Portal } from 'react-native-paper';
15
- *
16
- * export default class MyComponent extends React.Component {
17
- * render() {
18
- * return (
19
- * <Portal.Host>
20
- * <Text>Content of the app</Text>
21
- * </Portal.Host>
22
- * );
23
- * }
24
- * }
25
- * ```
26
- *
27
- * Here any `Portal` elements under `<App />` are rendered alongside `<App />` and will appear above `<App />` like a `Modal`.
28
- */
29
- export default class PortalHost extends React.Component {
30
- constructor() {
31
- super(...arguments);
32
- this.setManager = (manager) => {
33
- this.manager = manager;
34
- };
35
- this.mount = (children) => {
36
- const key = this.nextKey++;
37
- if (this.manager) {
38
- this.manager.mount(key, children);
39
- }
40
- else {
41
- this.queue.push({ type: "mount", key, children });
42
- }
43
- return key;
44
- };
45
- this.update = (key, children) => {
46
- if (this.manager) {
47
- this.manager.update(key, children);
48
- }
49
- else {
50
- const op = { type: "mount", key, children };
51
- const index = this.queue.findIndex((o) => o.type === "mount" || (o.type === "update" && o.key === key));
52
- if (index > -1) {
53
- // @ts-ignore
54
- this.queue[index] = op;
55
- }
56
- else {
57
- this.queue.push(op);
58
- }
59
- }
60
- };
61
- this.unmount = (key) => {
62
- if (this.manager) {
63
- this.manager.unmount(key);
64
- }
65
- else {
66
- this.queue.push({ type: "unmount", key });
67
- }
68
- };
69
- this.nextKey = 0;
70
- this.queue = [];
71
- }
72
- componentDidMount() {
73
- const manager = this.manager;
74
- const queue = this.queue;
75
- while (queue.length && manager) {
76
- const action = queue.pop();
77
- if (action) {
78
- switch (action.type) {
79
- case "mount":
80
- manager.mount(action.key, action.children);
81
- break;
82
- case "update":
83
- manager.update(action.key, action.children);
84
- break;
85
- case "unmount":
86
- manager.unmount(action.key);
87
- break;
88
- }
89
- }
90
- }
91
- }
92
- render() {
93
- return (React.createElement(PortalContext.Provider, { value: {
94
- mount: this.mount,
95
- update: this.update,
96
- unmount: this.unmount,
97
- } },
98
- React.createElement(View, { style: styles.container, collapsable: false, pointerEvents: "box-none" }, this.props.children),
99
- React.createElement(PortalManager, { ref: this.setManager })));
100
- }
101
- }
102
- PortalHost.displayName = "Portal.Host";
103
- const styles = StyleSheet.create({
104
- container: {
105
- flex: 1,
106
- },
107
- });