@draftbit/core 46.7.9-fa5e7c.2 → 46.8.1-1b6459.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js +23 -5
  2. package/lib/commonjs/components/Checkbox/CheckboxRow.js +23 -6
  3. package/lib/commonjs/components/Checkbox/context.js +1 -1
  4. package/lib/commonjs/components/CircleImage.js +15 -1
  5. package/lib/commonjs/components/CircularProgress.js +26 -8
  6. package/lib/commonjs/components/Container.js +15 -4
  7. package/lib/commonjs/components/DatePicker/DatePicker.js +14 -1
  8. package/lib/commonjs/components/DeprecatedButton.js +20 -3
  9. package/lib/commonjs/components/DeprecatedCardWrapper.js +15 -1
  10. package/lib/commonjs/components/Divider.js +14 -1
  11. package/lib/commonjs/components/Elevation.js +14 -2
  12. package/lib/commonjs/components/FAB.js +18 -4
  13. package/lib/commonjs/components/NumberInput.js +10 -10
  14. package/lib/commonjs/components/Picker/Picker.js +10 -3
  15. package/lib/commonjs/components/Portal/PortalHost.js +44 -15
  16. package/lib/commonjs/components/Portal/PortalManager.js +34 -8
  17. package/lib/commonjs/components/Pressable.js +15 -2
  18. package/lib/commonjs/components/ProgressBar.js +37 -7
  19. package/lib/commonjs/components/RadioButton/RadioButton.js +13 -2
  20. package/lib/commonjs/components/RadioButton/RadioButtonGroup.js +15 -2
  21. package/lib/commonjs/mappings/DatePicker.js +8 -2
  22. package/lib/commonjs/mappings/DeckSwiper.js +3 -0
  23. package/lib/commonjs/mappings/DeckSwiperCard.js +7 -0
  24. package/lib/commonjs/mappings/Picker.js +5 -0
  25. package/lib/module/components/DatePicker/DatePicker.js +15 -2
  26. package/lib/module/components/NumberInput.js +10 -10
  27. package/lib/module/components/Picker/Picker.js +11 -4
  28. package/lib/module/mappings/DatePicker.js +9 -3
  29. package/lib/module/mappings/DeckSwiper.js +3 -0
  30. package/lib/module/mappings/DeckSwiperCard.js +7 -0
  31. package/lib/module/mappings/Picker.js +6 -1
  32. package/lib/typescript/src/components/DatePicker/DatePicker.d.ts +1 -0
  33. package/lib/typescript/src/components/DatePicker/DatePicker.d.ts.map +1 -1
  34. package/lib/typescript/src/components/Picker/Picker.d.ts +1 -0
  35. package/lib/typescript/src/components/Picker/Picker.d.ts.map +1 -1
  36. package/lib/typescript/src/mappings/DatePicker.d.ts +10 -0
  37. package/lib/typescript/src/mappings/DatePicker.d.ts.map +1 -1
  38. package/lib/typescript/src/mappings/DeckSwiper.d.ts +3 -0
  39. package/lib/typescript/src/mappings/DeckSwiper.d.ts.map +1 -1
  40. package/lib/typescript/src/mappings/DeckSwiperCard.d.ts +7 -0
  41. package/lib/typescript/src/mappings/DeckSwiperCard.d.ts.map +1 -1
  42. package/lib/typescript/src/mappings/Picker.d.ts +10 -0
  43. package/lib/typescript/src/mappings/Picker.d.ts.map +1 -1
  44. package/package.json +3 -3
  45. package/src/components/DatePicker/DatePicker.js +8 -3
  46. package/src/components/DatePicker/DatePicker.tsx +10 -1
  47. package/src/components/NumberInput.js +9 -9
  48. package/src/components/NumberInput.tsx +11 -11
  49. package/src/components/Picker/Picker.js +9 -3
  50. package/src/components/Picker/Picker.tsx +14 -2
  51. package/src/mappings/DatePicker.js +8 -2
  52. package/src/mappings/DatePicker.ts +8 -1
  53. package/src/mappings/DeckSwiper.js +3 -0
  54. package/src/mappings/DeckSwiper.ts +3 -0
  55. package/src/mappings/DeckSwiperCard.js +7 -0
  56. package/src/mappings/DeckSwiperCard.ts +7 -0
  57. package/src/mappings/Picker.js +6 -1
  58. package/src/mappings/Picker.ts +6 -0
@@ -18,6 +18,16 @@ export declare const SEED_DATA: {
18
18
  required: boolean;
19
19
  group: string;
20
20
  };
21
+ autoDismissKeyboard: {
22
+ label: string;
23
+ description: string;
24
+ formType: string;
25
+ propType: string;
26
+ defaultValue: boolean;
27
+ editable: boolean;
28
+ required: boolean;
29
+ group: string;
30
+ };
21
31
  mode: {
22
32
  label: string;
23
33
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../../src/mappings/DatePicker.ts"],"names":[],"mappings":"AA+JA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BrB,CAAC"}
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../../src/mappings/DatePicker.ts"],"names":[],"mappings":"AAiKA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCrB,CAAC"}
@@ -4,6 +4,9 @@ export declare const SEED_DATA: {
4
4
  description: string;
5
5
  category: string;
6
6
  stylesPanelSections: string[];
7
+ layout: {
8
+ width: string;
9
+ };
7
10
  triggers: string[];
8
11
  props: {
9
12
  onIndexChanged: {
@@ -1 +1 @@
1
- {"version":3,"file":"DeckSwiper.d.ts","sourceRoot":"","sources":["../../../../src/mappings/DeckSwiper.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CrB,CAAC"}
1
+ {"version":3,"file":"DeckSwiper.d.ts","sourceRoot":"","sources":["../../../../src/mappings/DeckSwiper.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CrB,CAAC"}
@@ -4,6 +4,13 @@ export declare const SEED_DATA: {
4
4
  description: string;
5
5
  category: string;
6
6
  stylesPanelSections: string[];
7
+ layout: {
8
+ flex: number;
9
+ alignItems: string;
10
+ justifyContent: string;
11
+ padding: number;
12
+ borderWidth: number;
13
+ };
7
14
  props: {};
8
15
  };
9
16
  //# sourceMappingURL=DeckSwiperCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeckSwiperCard.d.ts","sourceRoot":"","sources":["../../../../src/mappings/DeckSwiperCard.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS;;;;;;;CAOrB,CAAC"}
1
+ {"version":3,"file":"DeckSwiperCard.d.ts","sourceRoot":"","sources":["../../../../src/mappings/DeckSwiperCard.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;CAcrB,CAAC"}
@@ -40,6 +40,16 @@ export declare const SEED_DATA: {
40
40
  formType: string;
41
41
  propType: string;
42
42
  };
43
+ autoDismissKeyboard: {
44
+ label: string;
45
+ description: string;
46
+ formType: string;
47
+ propType: string;
48
+ defaultValue: boolean;
49
+ editable: boolean;
50
+ required: boolean;
51
+ group: string;
52
+ };
43
53
  label: {
44
54
  group: string;
45
55
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../../../src/mappings/Picker.ts"],"names":[],"mappings":"AA8HA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCrB,CAAC"}
1
+ {"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../../../src/mappings/Picker.ts"],"names":[],"mappings":"AA+HA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draftbit/core",
3
- "version": "46.7.9-fa5e7c.2+fa5e7c6",
3
+ "version": "46.8.1-1b6459.2+1b64593",
4
4
  "description": "Core (non-native) Components",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -41,7 +41,7 @@
41
41
  "dependencies": {
42
42
  "@date-io/date-fns": "^1.3.13",
43
43
  "@draftbit/react-theme-provider": "^2.1.1",
44
- "@draftbit/types": "^46.7.9-fa5e7c.2+fa5e7c6",
44
+ "@draftbit/types": "^46.8.1-1b6459.2+1b64593",
45
45
  "@material-ui/core": "^4.11.0",
46
46
  "@material-ui/pickers": "^3.2.10",
47
47
  "@react-native-community/slider": "4.2.3",
@@ -92,5 +92,5 @@
92
92
  ]
93
93
  ]
94
94
  },
95
- "gitHead": "fa5e7c6d081c4ed9d54b91c6f832feeb2b46cb78"
95
+ "gitHead": "1b64593d591a225b64dc1a4fd0afbdcf3de444ef"
96
96
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { View, Animated, Text, StyleSheet, I18nManager, TextInput as NativeTextInput, } from "react-native";
2
+ import { View, Animated, Text, StyleSheet, I18nManager, TextInput as NativeTextInput, Keyboard, } from "react-native";
3
3
  import { useSafeAreaInsets } from "react-native-safe-area-context";
4
4
  import dateFormat from "dateformat";
5
5
  import { withTheme } from "../../theming";
@@ -25,7 +25,7 @@ const MONTHS = [
25
25
  "November",
26
26
  "December",
27
27
  ];
28
- const DatePicker = ({ Icon, style, theme: { colors, typography, roundness, disabledOpacity }, date, onDateChange = () => { }, defaultValue, disabled = false, mode = "date", format, type = "underline", leftIconName, rightIconName, leftIconMode = "inset", label, labelSize, labelColor, placeholder, borderColor: inputBorderColor, borderColorActive: inputBorderColorActive, ...props }) => {
28
+ const DatePicker = ({ Icon, style, theme: { colors, typography, roundness, disabledOpacity }, date, onDateChange = () => { }, defaultValue, disabled = false, mode = "date", format, type = "underline", leftIconName, rightIconName, leftIconMode = "inset", label, labelSize, labelColor, placeholder, borderColor: inputBorderColor, borderColorActive: inputBorderColorActive, autoDismissKeyboard = true, ...props }) => {
29
29
  const [value, setValue] = React.useState(date || defaultValue);
30
30
  React.useEffect(() => {
31
31
  if (defaultValue != null) {
@@ -113,6 +113,11 @@ const DatePicker = ({ Icon, style, theme: { colors, typography, roundness, disab
113
113
  clearTimeout(_showPlaceholder());
114
114
  };
115
115
  }, [focused, label, placeholder]);
116
+ React.useEffect(() => {
117
+ if (pickerVisible && autoDismissKeyboard) {
118
+ Keyboard.dismiss();
119
+ }
120
+ }, [pickerVisible, autoDismissKeyboard]);
116
121
  const _handleFocus = () => {
117
122
  if (disabled) {
118
123
  return;
@@ -132,7 +137,7 @@ const DatePicker = ({ Icon, style, theme: { colors, typography, roundness, disab
132
137
  ? labelSize
133
138
  : typography.caption.fontSize;
134
139
  const hasActiveOutline = focused;
135
- let inputTextColor, activeColor, underlineColor, borderColor, placeholderColor, containerStyle, backgroundColor, inputStyle;
140
+ let inputTextColor, activeColor, underlineColor, borderColor = inputBorderColor, placeholderColor, containerStyle, backgroundColor, inputStyle;
136
141
  inputTextColor = colors.strong;
137
142
  if (disabled) {
138
143
  activeColor = colors.light;
@@ -12,6 +12,7 @@ import {
12
12
  I18nManager,
13
13
  LayoutChangeEvent,
14
14
  TextInput as NativeTextInput,
15
+ Keyboard,
15
16
  } from "react-native";
16
17
  import { useSafeAreaInsets } from "react-native-safe-area-context";
17
18
 
@@ -55,6 +56,7 @@ type Props = {
55
56
  rightIconName?: string;
56
57
  borderColor?: string;
57
58
  borderColorActive?: string;
59
+ autoDismissKeyboard?: boolean;
58
60
  } & IconSlot &
59
61
  TextInputProps;
60
62
 
@@ -93,6 +95,7 @@ const DatePicker: React.FC<React.PropsWithChildren<Props>> = ({
93
95
  placeholder,
94
96
  borderColor: inputBorderColor,
95
97
  borderColorActive: inputBorderColorActive,
98
+ autoDismissKeyboard = true,
96
99
  ...props
97
100
  }) => {
98
101
  const [value, setValue] = React.useState<any>(date || defaultValue);
@@ -204,6 +207,12 @@ const DatePicker: React.FC<React.PropsWithChildren<Props>> = ({
204
207
  };
205
208
  }, [focused, label, placeholder]);
206
209
 
210
+ React.useEffect(() => {
211
+ if (pickerVisible && autoDismissKeyboard) {
212
+ Keyboard.dismiss();
213
+ }
214
+ }, [pickerVisible, autoDismissKeyboard]);
215
+
207
216
  const _handleFocus = () => {
208
217
  if (disabled) {
209
218
  return;
@@ -232,7 +241,7 @@ const DatePicker: React.FC<React.PropsWithChildren<Props>> = ({
232
241
  let inputTextColor,
233
242
  activeColor,
234
243
  underlineColor,
235
- borderColor,
244
+ borderColor = inputBorderColor,
236
245
  placeholderColor,
237
246
  containerStyle: StyleProp<ViewStyle>,
238
247
  backgroundColor,
@@ -20,16 +20,8 @@ const NumberInput = ({ onChangeText, value, defaultValue, ...props }) => {
20
20
  return valueToFormat.toString();
21
21
  }
22
22
  }
23
- return "0";
23
+ return "";
24
24
  };
25
- // set currentStringNumberValue as defaultValue prop if there is a differnce on first render only
26
- useEffect(() => {
27
- const defaultStringNumberValue = formatValueToStringNumber(defaultValue);
28
- if (currentStringNumberValue !== defaultStringNumberValue) {
29
- setCurrentStringNumberValue(defaultStringNumberValue);
30
- }
31
- // eslint-disable-next-line react-hooks/exhaustive-deps
32
- }, []);
33
25
  const handleChangeText = (newValue) => {
34
26
  const newStringNumberValue = formatValueToStringNumber(newValue);
35
27
  const number = parseFloat(newStringNumberValue);
@@ -44,6 +36,14 @@ const NumberInput = ({ onChangeText, value, defaultValue, ...props }) => {
44
36
  }
45
37
  // eslint-disable-next-line react-hooks/exhaustive-deps
46
38
  }, [value]);
39
+ // set currentStringNumberValue as defaultValue prop if there is a differnce on first render only
40
+ useEffect(() => {
41
+ const defaultStringNumberValue = formatValueToStringNumber(defaultValue);
42
+ if (currentStringNumberValue !== defaultStringNumberValue) {
43
+ setCurrentStringNumberValue(defaultStringNumberValue);
44
+ }
45
+ // eslint-disable-next-line react-hooks/exhaustive-deps
46
+ }, []);
47
47
  return (React.createElement(TextInput, { keyboardType: "numeric", value: currentStringNumberValue, onChangeText: handleChangeText, ...props }));
48
48
  };
49
49
  export default NumberInput;
@@ -31,19 +31,9 @@ const NumberInput: FC<Props> = ({
31
31
  }
32
32
  }
33
33
 
34
- return "0";
34
+ return "";
35
35
  };
36
36
 
37
- // set currentStringNumberValue as defaultValue prop if there is a differnce on first render only
38
- useEffect(() => {
39
- const defaultStringNumberValue = formatValueToStringNumber(defaultValue);
40
-
41
- if (currentStringNumberValue !== defaultStringNumberValue) {
42
- setCurrentStringNumberValue(defaultStringNumberValue);
43
- }
44
- // eslint-disable-next-line react-hooks/exhaustive-deps
45
- }, []);
46
-
47
37
  const handleChangeText = (newValue: string) => {
48
38
  const newStringNumberValue = formatValueToStringNumber(newValue);
49
39
  const number = parseFloat(newStringNumberValue);
@@ -62,6 +52,16 @@ const NumberInput: FC<Props> = ({
62
52
  // eslint-disable-next-line react-hooks/exhaustive-deps
63
53
  }, [value]);
64
54
 
55
+ // set currentStringNumberValue as defaultValue prop if there is a differnce on first render only
56
+ useEffect(() => {
57
+ const defaultStringNumberValue = formatValueToStringNumber(defaultValue);
58
+
59
+ if (currentStringNumberValue !== defaultStringNumberValue) {
60
+ setCurrentStringNumberValue(defaultStringNumberValue);
61
+ }
62
+ // eslint-disable-next-line react-hooks/exhaustive-deps
63
+ }, []);
64
+
65
65
  return (
66
66
  <TextInput
67
67
  keyboardType="numeric"
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { View, StyleSheet, Text, Platform, Dimensions, } from "react-native";
2
+ import { View, StyleSheet, Text, Platform, Dimensions, Keyboard, } from "react-native";
3
3
  import { omit, pickBy, identity, isObject } from "lodash";
4
4
  import { SafeAreaView } from "react-native-safe-area-context";
5
5
  import { Picker as NativePicker } from "@react-native-picker/picker";
@@ -32,10 +32,11 @@ function normalizeOptions(options) {
32
32
  }
33
33
  const { width: deviceWidth, height: deviceHeight } = Dimensions.get("screen");
34
34
  const isIos = Platform.OS === "ios";
35
+ const isWeb = Platform.OS === "web";
35
36
  const unstyledColor = "rgba(165, 173, 183, 1)";
36
37
  const disabledColor = "rgb(240, 240, 240)";
37
38
  const errorColor = "rgba(255, 69, 100, 1)";
38
- const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style, placeholder, value, disabled = false, assistiveText, label, iconColor = unstyledColor, iconSize = 24, leftIconMode = "inset", leftIconName, placeholderTextColor = unstyledColor, rightIconName, type = "solid", }) => {
39
+ const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style, placeholder, value, disabled = false, assistiveText, label, iconColor = unstyledColor, iconSize = 24, leftIconMode = "inset", leftIconName, placeholderTextColor = unstyledColor, rightIconName, type = "solid", autoDismissKeyboard = true, }) => {
39
40
  var _a, _b;
40
41
  const androidPickerRef = React.useRef(undefined);
41
42
  const [internalValue, setInternalValue] = React.useState(value || defaultValue);
@@ -59,6 +60,11 @@ const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style,
59
60
  (_a = androidPickerRef === null || androidPickerRef === void 0 ? void 0 : androidPickerRef.current) === null || _a === void 0 ? void 0 : _a.focus();
60
61
  }
61
62
  }, [pickerVisible, androidPickerRef]);
63
+ React.useEffect(() => {
64
+ if (pickerVisible && autoDismissKeyboard) {
65
+ Keyboard.dismiss();
66
+ }
67
+ }, [pickerVisible, autoDismissKeyboard]);
62
68
  const normalizedOptions = normalizeOptions(options);
63
69
  const pickerOptions = placeholder
64
70
  ? [{ value: placeholder, label: placeholder }, ...normalizedOptions]
@@ -186,7 +192,7 @@ const Picker = ({ error, options = [], onValueChange, defaultValue, Icon, style,
186
192
  React.createElement(View, { style: styles.iosPickerContent },
187
193
  React.createElement(Button, { Icon: Icon, type: "text", onPress: togglePickerVisible, style: styles.iosButton }, "Close"),
188
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,
189
- !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));
195
+ !isIos && (pickerVisible || isWeb) ? (React.createElement(NativePicker, { enabled: !disabled, 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));
190
196
  };
191
197
  const styles = StyleSheet.create({
192
198
  marginsContainer: {
@@ -7,6 +7,7 @@ import {
7
7
  ViewStyle,
8
8
  StyleProp,
9
9
  Dimensions,
10
+ Keyboard,
10
11
  } from "react-native";
11
12
  import { omit, pickBy, identity, isObject } from "lodash";
12
13
  import { SafeAreaView } from "react-native-safe-area-context";
@@ -48,6 +49,7 @@ export type PickerProps = {
48
49
  placeholderTextColor?: string;
49
50
  rightIconName?: string;
50
51
  type?: "solid" | "underline";
52
+ autoDismissKeyboard?: boolean;
51
53
  theme: Theme;
52
54
  Icon: IconSlot["Icon"];
53
55
  };
@@ -84,6 +86,8 @@ function normalizeOptions(options: PickerProps["options"]): PickerOption[] {
84
86
 
85
87
  const { width: deviceWidth, height: deviceHeight } = Dimensions.get("screen");
86
88
  const isIos = Platform.OS === "ios";
89
+ const isWeb = Platform.OS === "web";
90
+
87
91
  const unstyledColor = "rgba(165, 173, 183, 1)";
88
92
  const disabledColor = "rgb(240, 240, 240)";
89
93
  const errorColor = "rgba(255, 69, 100, 1)";
@@ -107,6 +111,7 @@ const Picker: React.FC<PickerProps> = ({
107
111
  placeholderTextColor = unstyledColor,
108
112
  rightIconName,
109
113
  type = "solid",
114
+ autoDismissKeyboard = true,
110
115
  }) => {
111
116
  const androidPickerRef = React.useRef<any | undefined>(undefined);
112
117
 
@@ -138,6 +143,12 @@ const Picker: React.FC<PickerProps> = ({
138
143
  }
139
144
  }, [pickerVisible, androidPickerRef]);
140
145
 
146
+ React.useEffect(() => {
147
+ if (pickerVisible && autoDismissKeyboard) {
148
+ Keyboard.dismiss();
149
+ }
150
+ }, [pickerVisible, autoDismissKeyboard]);
151
+
141
152
  const normalizedOptions = normalizeOptions(options);
142
153
 
143
154
  const pickerOptions = placeholder
@@ -374,9 +385,10 @@ const Picker: React.FC<PickerProps> = ({
374
385
  ) : null}
375
386
 
376
387
  {/* nonIosPicker */}
377
- {!isIos && pickerVisible ? (
388
+ {/* Web version is collapsed by default, always show to allow direct expand */}
389
+ {!isIos && (pickerVisible || isWeb) ? (
378
390
  <NativePicker
379
- enabled={pickerVisible}
391
+ enabled={!disabled}
380
392
  selectedValue={internalValue}
381
393
  onValueChange={handleValueChange}
382
394
  style={styles.nonIosPicker}
@@ -1,4 +1,4 @@
1
- import { COMPONENT_TYPES, FORM_TYPES, PROP_TYPES, FIELD_NAME, GROUPS, Triggers, StylesPanelSections, createNumberProp, createColorProp, } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, FORM_TYPES, PROP_TYPES, FIELD_NAME, GROUPS, Triggers, StylesPanelSections, createNumberProp, createColorProp, createStaticBoolProp, } from "@draftbit/types";
2
2
  const SEED_DATA_PROPS = {
3
3
  mode: {
4
4
  label: "Mode",
@@ -31,7 +31,8 @@ const SEED_DATA_PROPS = {
31
31
  label: "Border Color",
32
32
  }),
33
33
  borderColorActive: createColorProp({
34
- label: "Border Color",
34
+ label: "Active Border Color",
35
+ description: "Color of border when date picker is active",
35
36
  }),
36
37
  format: {
37
38
  label: "Format",
@@ -171,6 +172,11 @@ export const SEED_DATA = [
171
172
  required: true,
172
173
  group: GROUPS.basic,
173
174
  },
175
+ autoDismissKeyboard: createStaticBoolProp({
176
+ label: "Auto dismiss keyboard",
177
+ description: "Automatically dismiss keyboard when DatePicker is opened",
178
+ defaultValue: true,
179
+ }),
174
180
  },
175
181
  },
176
182
  ];
@@ -8,6 +8,7 @@ import {
8
8
  StylesPanelSections,
9
9
  createNumberProp,
10
10
  createColorProp,
11
+ createStaticBoolProp,
11
12
  } from "@draftbit/types";
12
13
 
13
14
  const SEED_DATA_PROPS = {
@@ -42,7 +43,8 @@ const SEED_DATA_PROPS = {
42
43
  label: "Border Color",
43
44
  }),
44
45
  borderColorActive: createColorProp({
45
- label: "Border Color",
46
+ label: "Active Border Color",
47
+ description: "Color of border when date picker is active",
46
48
  }),
47
49
  format: {
48
50
  label: "Format",
@@ -185,6 +187,11 @@ export const SEED_DATA = [
185
187
  required: true,
186
188
  group: GROUPS.basic,
187
189
  },
190
+ autoDismissKeyboard: createStaticBoolProp({
191
+ label: "Auto dismiss keyboard",
192
+ description: "Automatically dismiss keyboard when DatePicker is opened",
193
+ defaultValue: true,
194
+ }),
188
195
  },
189
196
  },
190
197
  ];
@@ -5,6 +5,9 @@ export const SEED_DATA = {
5
5
  description: "Deck swiper container",
6
6
  category: COMPONENT_TYPES.swiper,
7
7
  stylesPanelSections: BLOCK_STYLES_SECTIONS,
8
+ layout: {
9
+ width: "100%",
10
+ },
8
11
  triggers: [Triggers.OnIndexChanged, Triggers.OnEndReached],
9
12
  props: {
10
13
  onIndexChanged: createActionProp({
@@ -13,6 +13,9 @@ export const SEED_DATA = {
13
13
  description: "Deck swiper container",
14
14
  category: COMPONENT_TYPES.swiper,
15
15
  stylesPanelSections: BLOCK_STYLES_SECTIONS,
16
+ layout: {
17
+ width: "100%",
18
+ },
16
19
  triggers: [Triggers.OnIndexChanged, Triggers.OnEndReached],
17
20
  props: {
18
21
  onIndexChanged: createActionProp({
@@ -5,5 +5,12 @@ export const SEED_DATA = {
5
5
  description: "Single Deck Swiper Card item to be used in DeckSwiper",
6
6
  category: COMPONENT_TYPES.swiper,
7
7
  stylesPanelSections: CONTAINER_COMPONENT_STYLES_SECTIONS,
8
+ layout: {
9
+ flex: 1,
10
+ alignItems: "center",
11
+ justifyContent: "center",
12
+ padding: 20,
13
+ borderWidth: 2,
14
+ },
8
15
  props: {},
9
16
  };
@@ -9,5 +9,12 @@ export const SEED_DATA = {
9
9
  description: "Single Deck Swiper Card item to be used in DeckSwiper",
10
10
  category: COMPONENT_TYPES.swiper,
11
11
  stylesPanelSections: CONTAINER_COMPONENT_STYLES_SECTIONS,
12
+ layout: {
13
+ flex: 1,
14
+ alignItems: "center",
15
+ justifyContent: "center",
16
+ padding: 20,
17
+ borderWidth: 2,
18
+ },
12
19
  props: {},
13
20
  };
@@ -1,4 +1,4 @@
1
- import { COMPONENT_TYPES, Triggers, GROUPS, FORM_TYPES, PROP_TYPES, FIELD_NAME, createIconSizeProp, createColorProp, StylesPanelSections, } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, Triggers, GROUPS, FORM_TYPES, PROP_TYPES, FIELD_NAME, createIconSizeProp, createColorProp, StylesPanelSections, createStaticBoolProp, } from "@draftbit/types";
2
2
  const SEED_DATA_PROPS = {
3
3
  label: {
4
4
  group: GROUPS.data,
@@ -142,6 +142,11 @@ export const SEED_DATA = [
142
142
  },
143
143
  iconSize: createIconSizeProp({ defaultValue: 24 }),
144
144
  iconColor: createColorProp({ label: "Icon Color" }),
145
+ autoDismissKeyboard: createStaticBoolProp({
146
+ label: "Auto dismiss keyboard",
147
+ description: "Automatically dismiss keyboard when Picker is opened",
148
+ defaultValue: true,
149
+ }),
145
150
  },
146
151
  layout: {},
147
152
  },
@@ -8,6 +8,7 @@ import {
8
8
  createIconSizeProp,
9
9
  createColorProp,
10
10
  StylesPanelSections,
11
+ createStaticBoolProp,
11
12
  } from "@draftbit/types";
12
13
 
13
14
  const SEED_DATA_PROPS = {
@@ -157,6 +158,11 @@ export const SEED_DATA = [
157
158
  },
158
159
  iconSize: createIconSizeProp({ defaultValue: 24 }),
159
160
  iconColor: createColorProp({ label: "Icon Color" }),
161
+ autoDismissKeyboard: createStaticBoolProp({
162
+ label: "Auto dismiss keyboard",
163
+ description: "Automatically dismiss keyboard when Picker is opened",
164
+ defaultValue: true,
165
+ }),
160
166
  },
161
167
  layout: {},
162
168
  },