@draftbit/core 42.2.0 → 42.2.3-428e28.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.
Files changed (63) hide show
  1. package/lib/commonjs/components/ActionSheet/ActionSheet.js +1 -1
  2. package/lib/commonjs/components/ActionSheet/ActionSheet.js.map +1 -1
  3. package/lib/commonjs/components/DeprecatedFAB.js +15 -4
  4. package/lib/commonjs/components/DeprecatedFAB.js.map +1 -1
  5. package/lib/commonjs/components/Picker/Picker.js +11 -6
  6. package/lib/commonjs/components/Picker/Picker.js.map +1 -1
  7. package/lib/commonjs/components/Picker/PickerComponent.android.js +24 -9
  8. package/lib/commonjs/components/Picker/PickerComponent.android.js.map +1 -1
  9. package/lib/commonjs/components/Picker/PickerComponent.ios.js +9 -2
  10. package/lib/commonjs/components/Picker/PickerComponent.ios.js.map +1 -1
  11. package/lib/commonjs/components/Picker/PickerComponent.web.js +8 -5
  12. package/lib/commonjs/components/Picker/PickerComponent.web.js.map +1 -1
  13. package/lib/commonjs/components/StarRating.js +1 -0
  14. package/lib/commonjs/components/StarRating.js.map +1 -1
  15. package/lib/commonjs/components/Swiper/Swiper.js +12 -7
  16. package/lib/commonjs/components/Swiper/Swiper.js.map +1 -1
  17. package/lib/commonjs/components/TextField.js +5 -2
  18. package/lib/commonjs/components/TextField.js.map +1 -1
  19. package/lib/commonjs/mappings/TextArea.js +47 -0
  20. package/lib/commonjs/mappings/TextArea.js.map +1 -0
  21. package/lib/commonjs/mappings/TextInput.js +1 -1
  22. package/lib/commonjs/mappings/TextInput.js.map +1 -1
  23. package/lib/module/components/ActionSheet/ActionSheet.js +1 -1
  24. package/lib/module/components/ActionSheet/ActionSheet.js.map +1 -1
  25. package/lib/module/components/Picker/Picker.js +11 -6
  26. package/lib/module/components/Picker/Picker.js.map +1 -1
  27. package/lib/module/components/Picker/PickerComponent.android.js +4 -3
  28. package/lib/module/components/Picker/PickerComponent.android.js.map +1 -1
  29. package/lib/module/components/Picker/PickerComponent.ios.js +9 -2
  30. package/lib/module/components/Picker/PickerComponent.ios.js.map +1 -1
  31. package/lib/module/components/Picker/PickerComponent.web.js +6 -4
  32. package/lib/module/components/Picker/PickerComponent.web.js.map +1 -1
  33. package/lib/module/components/StarRating.js +2 -1
  34. package/lib/module/components/StarRating.js.map +1 -1
  35. package/lib/module/components/Swiper/Swiper.js +14 -8
  36. package/lib/module/components/Swiper/Swiper.js.map +1 -1
  37. package/lib/module/components/TextField.js +6 -3
  38. package/lib/module/components/TextField.js.map +1 -1
  39. package/lib/module/mappings/TextArea.js +38 -0
  40. package/lib/module/mappings/TextArea.js.map +1 -0
  41. package/lib/module/mappings/TextInput.js +2 -2
  42. package/lib/module/mappings/TextInput.js.map +1 -1
  43. package/lib/typescript/src/components/Swiper/Swiper.d.ts +4 -0
  44. package/lib/typescript/src/components/TextField.d.ts +12 -32
  45. package/package.json +6 -5
  46. package/src/components/ActionSheet/ActionSheet.js +1 -1
  47. package/src/components/ActionSheet/ActionSheet.tsx +1 -1
  48. package/src/components/Picker/Picker.js +12 -6
  49. package/src/components/Picker/Picker.tsx +12 -6
  50. package/src/components/Picker/PickerComponent.android.js +3 -3
  51. package/src/components/Picker/PickerComponent.android.tsx +3 -5
  52. package/src/components/Picker/PickerComponent.ios.js +9 -3
  53. package/src/components/Picker/PickerComponent.ios.tsx +12 -5
  54. package/src/components/Picker/PickerComponent.web.js +5 -4
  55. package/src/components/Picker/PickerComponent.web.tsx +5 -6
  56. package/src/components/StarRating.js +2 -1
  57. package/src/components/StarRating.tsx +2 -0
  58. package/src/components/Swiper/Swiper.js +14 -8
  59. package/src/components/Swiper/Swiper.tsx +14 -8
  60. package/src/components/TextField.js +6 -3
  61. package/src/components/TextField.tsx +6 -2
  62. package/src/mappings/TextArea.js +46 -0
  63. package/src/mappings/TextInput.js +2 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["Picker.tsx"],"names":["React","withTheme","PickerComponent","GROUPS","COMPONENT_TYPES","FORM_TYPES","PROP_TYPES","FIELD_NAME","Triggers","usePrevious","normalizeOptions","options","length","map","option","label","value","Error","Picker","placeholder","onValueChange","onValueChangeOverride","initialValue","props","useCallback","itemValue","itemIndex","normalizedOptions","previousInitialValue","useEffect","index","findIndex","opt","pickerOptions","SEED_DATA_PROPS","group","data","description","formType","string","propType","STRING","defaultValue","editable","required","basic","placeholderTextColor","color","assistiveText","array","OBJECT","disabled","boolean","BOOLEAN","error","leftIconName","icon","ASSET","leftIconMode","flatArray","rightIconName","fieldName","handlerPropName","SEED_DATA_TRIGGERS","OnValueChange","SEED_DATA","name","tag","category","input","preview_image_url","supports_list_render","triggers","type","layout","uncategorized"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { withTheme } from \"../../theming\";\n//@ts-ignore\nimport PickerComponent from \"./PickerComponent\"; //unable to find file due to using .android/.web/.ios\nimport { PickerComponentProps, PickerOption } from \"./PickerTypes\";\n\nimport {\n GROUPS,\n COMPONENT_TYPES,\n FORM_TYPES,\n PROP_TYPES,\n FIELD_NAME,\n Triggers,\n} from \"@draftbit/types\";\nimport { usePrevious } from \"../../hooks\";\n\ntype Props = PickerComponentProps & {\n placeholder?: string;\n value: string;\n options: PickerOption[] | string[];\n};\n\nfunction normalizeOptions(options: Props[\"options\"]): PickerOption[] {\n if (options.length === 0) {\n return [];\n }\n\n if (typeof options[0] === \"string\") {\n return (options as string[]).map((option) => ({\n label: option,\n value: option,\n }));\n }\n\n if (options[0].label && options[0].value) {\n return options as PickerOption[];\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 Picker: React.FC<Props> = ({\n options = [],\n placeholder,\n onValueChange: onValueChangeOverride,\n value,\n initialValue,\n ...props\n}) => {\n const onValueChange = React.useCallback(\n (itemValue: string, itemIndex: number) => {\n if (placeholder && itemIndex === 0) {\n return;\n }\n onValueChangeOverride && onValueChangeOverride(itemValue, itemIndex);\n },\n [placeholder, onValueChangeOverride]\n );\n\n const normalizedOptions = normalizeOptions(options);\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (initialValue !== previousInitialValue) {\n const index = normalizedOptions.findIndex(\n (opt) => opt.value === initialValue\n );\n\n if (index == null) {\n return;\n }\n\n onValueChange(initialValue, index);\n }\n }, [initialValue, previousInitialValue, normalizedOptions, onValueChange]);\n\n const pickerOptions = placeholder\n ? [{ value: placeholder, label: placeholder }, ...normalizedOptions]\n : normalizedOptions;\n\n return (\n <PickerComponent\n {...props}\n selectedValue={value}\n placeholder={placeholder}\n options={pickerOptions}\n onValueChange={onValueChange}\n />\n );\n};\n\nexport default withTheme(Picker);\n\nconst SEED_DATA_PROPS = {\n label: {\n group: GROUPS.data,\n label: \"Label\",\n description: \"The label to be displayed on the picker\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: true,\n },\n placeholder: {\n group: GROUPS.basic,\n label: \"Placeholder\",\n description: \"The placeholder text of the picker\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"Select an option\",\n editable: true,\n required: false,\n },\n placeholderTextColor: {\n group: GROUPS.basic,\n label: \"Placeholder Text Color\",\n description: \"The color of the placeholder text.\",\n editable: true,\n required: false,\n defaultValue: null,\n formType: FORM_TYPES.color,\n propType: PROP_TYPES.STRING,\n },\n assistiveText: {\n group: GROUPS.basic,\n label: \"Assistive text\",\n description: \"Helper text to display below the picker\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: false,\n },\n options: {\n group: GROUPS.data,\n label: \"Options\",\n description:\n \"Array of picker options. An array of objects containing a label and value.\",\n editable: true,\n required: false,\n formType: FORM_TYPES.array,\n propType: PROP_TYPES.OBJECT,\n options: [],\n defaultValue: null,\n },\n disabled: {\n group: GROUPS.basic,\n label: \"Disabled\",\n description:\n \"Whether the picker should be disabled. Will prevent selection and show a greyed out state.\",\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: false,\n editable: true,\n required: false,\n },\n error: {\n group: GROUPS.data,\n label: \"Error\",\n description: \"Whether the picker should display the error state\",\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: false,\n editable: true,\n required: false,\n },\n leftIconName: {\n group: GROUPS.basic,\n label: \"Left icon name\",\n description: \"The icon to display on the left\",\n formType: FORM_TYPES.icon,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n leftIconMode: {\n group: GROUPS.basic,\n label: \"Left icon mode\",\n description:\n \"The mode of the icon to display on the left. 'inset' or 'outset'.\",\n formType: FORM_TYPES.flatArray,\n propType: PROP_TYPES.STRING,\n defaultValue: \"inset\",\n options: [\"inset\", \"outset\"],\n editable: true,\n required: true,\n },\n rightIconName: {\n group: GROUPS.basic,\n label: \"Right icon name\",\n description: \"The icon to display on the right\",\n formType: FORM_TYPES.icon,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n fieldName: {\n ...FIELD_NAME,\n defaultValue: \"pickerValue\",\n handlerPropName: \"onValueChange\",\n },\n};\n\nconst SEED_DATA_TRIGGERS = [Triggers.OnValueChange];\nexport const SEED_DATA = [\n {\n name: \"Picker\",\n tag: \"Picker\",\n description: \"A component used to pick a value from a set of options\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/Picker.png\",\n supports_list_render: false,\n triggers: SEED_DATA_TRIGGERS,\n props: {\n ...SEED_DATA_PROPS,\n type: {\n label: \"Appearance\",\n description: \"Type of Picker\",\n formType: FORM_TYPES.flatArray,\n propType: PROP_TYPES.STRING,\n defaultValue: \"solid\",\n options: [\"solid\", \"underline\"],\n editable: true,\n required: true,\n group: GROUPS.basic,\n },\n },\n layout: {},\n },\n {\n name: \"Picker - Underline\",\n tag: \"Picker\",\n description: \"A picker with an underline\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/Picker.png\",\n supports_list_render: false,\n triggers: SEED_DATA_TRIGGERS,\n props: {\n ...SEED_DATA_PROPS,\n type: {\n label: \"Type\",\n description: \"Type\",\n group: GROUPS.uncategorized,\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"underline\",\n editable: false,\n required: false,\n },\n },\n layout: {},\n },\n];\n"]}
1
+ {"version":3,"sources":["Picker.tsx"],"names":["React","withTheme","PickerComponent","GROUPS","COMPONENT_TYPES","FORM_TYPES","PROP_TYPES","FIELD_NAME","Triggers","usePrevious","normalizeOptions","options","length","map","option","label","value","String","Error","Picker","placeholder","onValueChange","onValueChangeOverride","initialValue","props","useCallback","itemValue","itemIndex","normalizedOptions","previousInitialValue","useEffect","index","findIndex","opt","pickerOptions","SEED_DATA_PROPS","group","data","description","formType","string","propType","STRING","defaultValue","editable","required","basic","placeholderTextColor","color","assistiveText","array","OBJECT","disabled","boolean","BOOLEAN","error","leftIconName","icon","ASSET","leftIconMode","flatArray","rightIconName","fieldName","handlerPropName","SEED_DATA_TRIGGERS","OnValueChange","SEED_DATA","name","tag","category","input","preview_image_url","supports_list_render","triggers","type","layout","uncategorized"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { withTheme } from \"../../theming\";\n//@ts-ignore\nimport PickerComponent from \"./PickerComponent\"; //unable to find file due to using .android/.web/.ios\nimport { PickerComponentProps, PickerOption } from \"./PickerTypes\";\n\nimport {\n GROUPS,\n COMPONENT_TYPES,\n FORM_TYPES,\n PROP_TYPES,\n FIELD_NAME,\n Triggers,\n} from \"@draftbit/types\";\nimport { usePrevious } from \"../../hooks\";\n\ntype Props = PickerComponentProps & {\n placeholder?: string;\n value: string;\n options: PickerOption[] | string[];\n};\n\nfunction normalizeOptions(options: Props[\"options\"]): PickerOption[] {\n if (options.length === 0) {\n return [];\n }\n\n if (typeof options[0] === \"string\") {\n return (options as string[]).map((option) => ({\n label: option,\n value: String(option),\n }));\n }\n\n if (options[0].label && options[0].value) {\n return options.map((option) => {\n return {\n label: 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 Picker: React.FC<Props> = ({\n options = [],\n placeholder,\n onValueChange: onValueChangeOverride,\n value,\n initialValue,\n ...props\n}) => {\n const onValueChange = React.useCallback(\n (itemValue: string, itemIndex: number) => {\n if (placeholder && itemIndex === 0) {\n return;\n }\n onValueChangeOverride &&\n onValueChangeOverride(String(itemValue), itemIndex);\n },\n [placeholder, onValueChangeOverride]\n );\n\n const normalizedOptions = normalizeOptions(options);\n\n const previousInitialValue = usePrevious(initialValue);\n React.useEffect(() => {\n if (String(initialValue) !== String(previousInitialValue)) {\n const index = normalizedOptions.findIndex(\n (opt) => opt.value === initialValue\n );\n\n if (index == null) {\n return;\n }\n\n onValueChange(String(initialValue), index);\n }\n }, [initialValue, previousInitialValue, normalizedOptions, onValueChange]);\n\n const pickerOptions = placeholder\n ? [{ value: placeholder, label: placeholder }, ...normalizedOptions]\n : normalizedOptions;\n\n return (\n <PickerComponent\n {...props}\n selectedValue={String(value)}\n placeholder={placeholder}\n options={pickerOptions}\n onValueChange={onValueChange}\n />\n );\n};\n\nexport default withTheme(Picker);\n\nconst SEED_DATA_PROPS = {\n label: {\n group: GROUPS.data,\n label: \"Label\",\n description: \"The label to be displayed on the picker\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: true,\n },\n placeholder: {\n group: GROUPS.basic,\n label: \"Placeholder\",\n description: \"The placeholder text of the picker\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"Select an option\",\n editable: true,\n required: false,\n },\n placeholderTextColor: {\n group: GROUPS.basic,\n label: \"Placeholder Text Color\",\n description: \"The color of the placeholder text.\",\n editable: true,\n required: false,\n defaultValue: null,\n formType: FORM_TYPES.color,\n propType: PROP_TYPES.STRING,\n },\n assistiveText: {\n group: GROUPS.basic,\n label: \"Assistive text\",\n description: \"Helper text to display below the picker\",\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: null,\n editable: true,\n required: false,\n },\n options: {\n group: GROUPS.data,\n label: \"Options\",\n description:\n \"Array of picker options. An array of objects containing a label and value.\",\n editable: true,\n required: false,\n formType: FORM_TYPES.array,\n propType: PROP_TYPES.OBJECT,\n options: [],\n defaultValue: null,\n },\n disabled: {\n group: GROUPS.basic,\n label: \"Disabled\",\n description:\n \"Whether the picker should be disabled. Will prevent selection and show a greyed out state.\",\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: false,\n editable: true,\n required: false,\n },\n error: {\n group: GROUPS.data,\n label: \"Error\",\n description: \"Whether the picker should display the error state\",\n formType: FORM_TYPES.boolean,\n propType: PROP_TYPES.BOOLEAN,\n defaultValue: false,\n editable: true,\n required: false,\n },\n leftIconName: {\n group: GROUPS.basic,\n label: \"Left icon name\",\n description: \"The icon to display on the left\",\n formType: FORM_TYPES.icon,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n leftIconMode: {\n group: GROUPS.basic,\n label: \"Left icon mode\",\n description:\n \"The mode of the icon to display on the left. 'inset' or 'outset'.\",\n formType: FORM_TYPES.flatArray,\n propType: PROP_TYPES.STRING,\n defaultValue: \"inset\",\n options: [\"inset\", \"outset\"],\n editable: true,\n required: true,\n },\n rightIconName: {\n group: GROUPS.basic,\n label: \"Right icon name\",\n description: \"The icon to display on the right\",\n formType: FORM_TYPES.icon,\n propType: PROP_TYPES.ASSET,\n defaultValue: null,\n editable: true,\n required: false,\n },\n fieldName: {\n ...FIELD_NAME,\n defaultValue: \"pickerValue\",\n handlerPropName: \"onValueChange\",\n },\n};\n\nconst SEED_DATA_TRIGGERS = [Triggers.OnValueChange];\nexport const SEED_DATA = [\n {\n name: \"Picker\",\n tag: \"Picker\",\n description: \"A component used to pick a value from a set of options\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/Picker.png\",\n supports_list_render: false,\n triggers: SEED_DATA_TRIGGERS,\n props: {\n ...SEED_DATA_PROPS,\n type: {\n label: \"Appearance\",\n description: \"Type of Picker\",\n formType: FORM_TYPES.flatArray,\n propType: PROP_TYPES.STRING,\n defaultValue: \"solid\",\n options: [\"solid\", \"underline\"],\n editable: true,\n required: true,\n group: GROUPS.basic,\n },\n },\n layout: {},\n },\n {\n name: \"Picker - Underline\",\n tag: \"Picker\",\n description: \"A picker with an underline\",\n category: COMPONENT_TYPES.input,\n preview_image_url: \"{CLOUDINARY_URL}/Picker.png\",\n supports_list_render: false,\n triggers: SEED_DATA_TRIGGERS,\n props: {\n ...SEED_DATA_PROPS,\n type: {\n label: \"Type\",\n description: \"Type\",\n group: GROUPS.uncategorized,\n formType: FORM_TYPES.string,\n propType: PROP_TYPES.STRING,\n defaultValue: \"underline\",\n editable: false,\n required: false,\n },\n },\n layout: {},\n },\n];\n"]}
@@ -66,7 +66,7 @@ const Picker = ({
66
66
  };
67
67
 
68
68
  const stylesWithoutMargin = style && omit(StyleSheet.flatten(style), ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
69
- const selectedLabel = selectedValue && ((_options$find$label = (_options$find = options.find(opt => opt.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) !== null && _options$find$label !== void 0 ? _options$find$label : selectedValue);
69
+ const selectedLabel = selectedValue && ((_options$find$label = (_options$find = options.find(o => o.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) !== null && _options$find$label !== void 0 ? _options$find$label : selectedValue);
70
70
  return /*#__PURE__*/React.createElement(Touchable, {
71
71
  disabled: disabled,
72
72
  onPress: toggleFocus,
@@ -74,14 +74,15 @@ const Picker = ({
74
74
  }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(NativePicker, {
75
75
  enabled: !disabled,
76
76
  selectedValue: selectedValue,
77
- onValueChange: (value, index) => onValueChange(value.toString(), index),
77
+ onValueChange: onValueChange,
78
78
  style: {
79
79
  opacity: 0,
80
80
  position: "absolute",
81
81
  top: 0,
82
82
  left: 0,
83
83
  right: 0,
84
- bottom: 0
84
+ bottom: 0,
85
+ width: "100%"
85
86
  }
86
87
  }, options.map(o => /*#__PURE__*/React.createElement(NativePicker.Item, {
87
88
  label: o.label,
@@ -1 +1 @@
1
- {"version":3,"sources":["PickerComponent.android.tsx"],"names":["React","View","StyleSheet","omit","withTheme","Picker","NativePicker","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","selectedLabel","find","opt","value","label","styles","container","index","toString","opacity","position","top","left","right","bottom","map","o","create","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport omit from \"lodash.omit\";\nimport { withTheme } from \"../../theming\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\nimport { extractStyles } from \"../../utilities\";\n\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\n\nconst Picker: React.FC<PickerComponentProps> = ({\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange: onValueChangeOverride = () => {},\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n\n const onValueChange = (itemValue: string, itemIndex: number) => {\n toggleFocus();\n onValueChangeOverride(itemValue, itemIndex);\n };\n\n const toggleFocus = () => {\n if (!disabled) {\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n }\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((opt) => opt.value === selectedValue)?.label ??\n selectedValue);\n\n return (\n <Touchable\n disabled={disabled}\n onPress={toggleFocus}\n style={[styles.container, viewStyles]}\n >\n <View>\n <NativePicker\n enabled={!disabled}\n selectedValue={selectedValue}\n onValueChange={(value, index) =>\n onValueChange(value.toString(), index)\n }\n style={{\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n }}\n >\n {options.map((o) => (\n <NativePicker.Item label={o.label} value={o.value} key={o.value} />\n ))}\n </NativePicker>\n <View pointerEvents=\"none\">\n <TextField\n {...props}\n value={selectedLabel}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </View>\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n});\n\nexport default withTheme(Picker);\n"]}
1
+ {"version":3,"sources":["PickerComponent.android.tsx"],"names":["React","View","StyleSheet","omit","withTheme","Picker","NativePicker","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","selectedLabel","find","o","value","label","styles","container","opacity","position","top","left","right","bottom","width","map","create","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport omit from \"lodash.omit\";\nimport { withTheme } from \"../../theming\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\nimport { extractStyles } from \"../../utilities\";\n\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\n\nconst Picker: React.FC<PickerComponentProps> = ({\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange: onValueChangeOverride = () => {},\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n\n const onValueChange = (itemValue: string, itemIndex: number) => {\n toggleFocus();\n onValueChangeOverride(itemValue, itemIndex);\n };\n\n const toggleFocus = () => {\n if (!disabled) {\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n }\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((o) => o.value === selectedValue)?.label ?? selectedValue);\n\n return (\n <Touchable\n disabled={disabled}\n onPress={toggleFocus}\n style={[styles.container, viewStyles]}\n >\n <View>\n <NativePicker\n enabled={!disabled}\n selectedValue={selectedValue}\n onValueChange={onValueChange}\n style={{\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n }}\n >\n {options.map((o) => (\n <NativePicker.Item label={o.label} value={o.value} key={o.value} />\n ))}\n </NativePicker>\n <View pointerEvents=\"none\">\n <TextField\n {...props}\n value={selectedLabel}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </View>\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n});\n\nexport default withTheme(Picker);\n"]}
@@ -25,6 +25,8 @@ const Picker = ({
25
25
  },
26
26
  ...props
27
27
  }) => {
28
+ var _options$find$label, _options$find;
29
+
28
30
  const {
29
31
  viewStyles: {
30
32
  borderRadius,
@@ -66,13 +68,14 @@ const Picker = ({
66
68
  };
67
69
 
68
70
  const stylesWithoutMargin = style && omit(StyleSheet.flatten(style), ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
71
+ const selectedLabel = selectedValue && ((_options$find$label = (_options$find = options.find(o => o.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) !== null && _options$find$label !== void 0 ? _options$find$label : selectedValue);
69
72
  return /*#__PURE__*/React.createElement(View, {
70
73
  style: [styles.container, viewStyles]
71
74
  }, /*#__PURE__*/React.createElement(Touchable, {
72
75
  disabled: disabled,
73
76
  onPress: toggleVisibility
74
77
  }, /*#__PURE__*/React.createElement(TextField, _extends({}, props, {
75
- value: selectedValue,
78
+ value: String(selectedLabel),
76
79
  placeholder: placeholder // @ts-ignore
77
80
  ,
78
81
  ref: textField // cannot determine if ref is of correct type due to component being wrapped in a withTheme()
@@ -93,8 +96,11 @@ const Picker = ({
93
96
  onPress: toggleVisibility,
94
97
  style: styles.closeButton
95
98
  }, "Close"), /*#__PURE__*/React.createElement(NativePicker, {
99
+ style: {
100
+ backgroundColor: "white"
101
+ },
96
102
  selectedValue: selectedValue,
97
- onValueChange: (value, index) => onValueChange(value.toString(), index)
103
+ onValueChange: onValueChange
98
104
  }, options.map(o => /*#__PURE__*/React.createElement(NativePicker.Item, {
99
105
  label: o.label,
100
106
  value: o.value,
@@ -115,6 +121,7 @@ const styles = StyleSheet.create({
115
121
  justifyContent: "center"
116
122
  },
117
123
  pickerContainer: {
124
+ backgroundColor: "white",
118
125
  flexDirection: "column",
119
126
  width: "100%"
120
127
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["PickerComponent.ios.tsx"],"names":["React","View","StyleSheet","SafeAreaView","omit","Picker","NativePicker","withTheme","Portal","Button","TextField","Touchable","extractStyles","Icon","style","options","placeholder","selectedValue","disabled","onValueChange","theme","colors","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","pickerVisible","setIsPickerVisible","useState","toggleVisibility","current","toggleFocus","stylesWithoutMargin","flatten","styles","container","picker","divider","pickerContainer","closeButton","value","index","toString","map","o","label","create","alignSelf","position","bottom","left","right","flexDirection","justifyContent","width"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport { SafeAreaView } from \"react-native-safe-area-context\";\nimport omit from \"lodash.omit\";\n\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport { withTheme } from \"../../theming\";\n\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\nimport { extractStyles } from \"../../utilities\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nconst Picker: React.FC<PickerComponentProps & IconSlot> = ({\n Icon,\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange = () => {},\n theme: { colors },\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n const [pickerVisible, setIsPickerVisible] = React.useState(false);\n\n const toggleVisibility = () => {\n setIsPickerVisible(!pickerVisible);\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n return (\n <View style={[styles.container, viewStyles]}>\n <Touchable disabled={disabled} onPress={toggleVisibility}>\n <TextField\n {...props}\n value={selectedValue}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n pointerEvents=\"none\"\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </Touchable>\n {pickerVisible && (\n <Portal>\n <View style={[styles.picker, { backgroundColor: colors.divider }]}>\n <SafeAreaView style={styles.pickerContainer}>\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={toggleVisibility}\n style={styles.closeButton}\n >\n Close\n </Button>\n <NativePicker\n selectedValue={selectedValue}\n onValueChange={(value, index) =>\n onValueChange(value.toString(), index)\n }\n >\n {options.map((o: any) => (\n <NativePicker.Item\n label={o.label}\n value={o.value}\n key={o.value}\n />\n ))}\n </NativePicker>\n </SafeAreaView>\n </View>\n </Portal>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n picker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n pickerContainer: { flexDirection: \"column\", width: \"100%\" },\n closeButton: {\n alignSelf: \"flex-end\",\n },\n});\n\nexport default withTheme(Picker);\n"]}
1
+ {"version":3,"sources":["PickerComponent.ios.tsx"],"names":["React","View","StyleSheet","SafeAreaView","omit","Picker","NativePicker","withTheme","Portal","Button","TextField","Touchable","extractStyles","Icon","style","options","placeholder","selectedValue","disabled","onValueChange","theme","colors","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","pickerVisible","setIsPickerVisible","useState","toggleVisibility","current","toggleFocus","stylesWithoutMargin","flatten","selectedLabel","find","o","value","label","styles","container","String","picker","divider","pickerContainer","closeButton","map","create","alignSelf","position","bottom","left","right","flexDirection","justifyContent","width"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,IAAT,EAAeC,UAAf,QAAiC,cAAjC;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,OAAOC,IAAP,MAAiB,aAAjB;AAEA,SAASC,MAAM,IAAIC,YAAnB,QAAuC,6BAAvC;AAEA,SAASC,SAAT,QAA0B,eAA1B;AAEA,OAAOC,MAAP,MAAmB,kBAAnB;AACA,OAAOC,MAAP,MAAmB,qBAAnB;AACA,OAAOC,SAAP,MAAsB,cAAtB;AACA,OAAOC,SAAP,MAAsB,cAAtB;AAEA,SAASC,aAAT,QAA8B,iBAA9B;;AAGA,MAAMP,MAAiD,GAAG,CAAC;AACzDQ,EAAAA,IADyD;AAEzDC,EAAAA,KAFyD;AAGzDC,EAAAA,OAHyD;AAIzDC,EAAAA,WAJyD;AAKzDC,EAAAA,aALyD;AAMzDC,EAAAA,QAAQ,GAAG,KAN8C;AAOzDC,EAAAA,aAAa,GAAG,MAAM,CAAE,CAPiC;AAQzDC,EAAAA,KAAK,EAAE;AAAEC,IAAAA;AAAF,GARkD;AASzD,KAAGC;AATsD,CAAD,KAUpD;AAAA;;AACJ,QAAM;AACJC,IAAAA,UAAU,EAAE;AACVC,MAAAA,YADU;AACI;AACdC,MAAAA,WAFU;AAEG;AACbC,MAAAA,cAHU;AAGM;AAChBC,MAAAA,gBAJU;AAIQ;AAClBC,MAAAA,iBALU;AAKS;AACnBC,MAAAA,eANU;AAMO;AACjBC,MAAAA,WAPU;AAOG;AACbC,MAAAA,eARU;AAQO;AACjBC,MAAAA,OATU;AASD;AACTC,MAAAA,UAVU;AAUE;AACZC,MAAAA,YAXU;AAWI;AACdC,MAAAA,aAZU;AAYK;AACfC,MAAAA,WAbU;AAaG;AACb,SAAGb;AAdO;AADR,MAiBFX,aAAa,CAACE,KAAD,CAjBjB;AAmBA,QAAMuB,SAAS,GAAGrC,KAAK,CAACsC,MAAN,CAA2CC,SAA3C,CAAlB;AACA,QAAM,CAACC,aAAD,EAAgBC,kBAAhB,IAAsCzC,KAAK,CAAC0C,QAAN,CAAe,KAAf,CAA5C;;AAEA,QAAMC,gBAAgB,GAAG,MAAM;AAC7BF,IAAAA,kBAAkB,CAAC,CAACD,aAAF,CAAlB,CAD6B,CAE7B;;AACAH,IAAAA,SAAS,CAACO,OAAV,CAAkBC,WAAlB,GAH6B,CAGI;AAClC,GAJD;;AAMA,QAAMC,mBAAmB,GACvBhC,KAAK,IACLV,IAAI,CAACF,UAAU,CAAC6C,OAAX,CAAmBjC,KAAnB,CAAD,EAA4B,CAC9B,QAD8B,EAE9B,WAF8B,EAG9B,aAH8B,EAI9B,cAJ8B,EAK9B,YAL8B,CAA5B,CAFN;AAUA,QAAMkC,aAAa,GACjB/B,aAAa,6CACZF,OAAO,CAACkC,IAAR,CAAcC,CAAD,IAAOA,CAAC,CAACC,KAAF,KAAYlC,aAAhC,CADY,kDACZ,cAAgDmC,KADpC,qEAC6CnC,aAD7C,CADf;AAIA,sBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE,CAACoC,MAAM,CAACC,SAAR,EAAmB/B,UAAnB;AAAb,kBACE,oBAAC,SAAD;AAAW,IAAA,QAAQ,EAAEL,QAArB;AAA+B,IAAA,OAAO,EAAEyB;AAAxC,kBACE,oBAAC,SAAD,eACMrB,KADN;AAEE,IAAA,KAAK,EAAEiC,MAAM,CAACP,aAAD,CAFf;AAGE,IAAA,WAAW,EAAEhC,WAHf,CAIE;AAJF;AAKE,IAAA,GAAG,EAAEqB,SALP,CAKkB;AALlB;AAME,IAAA,QAAQ,EAAEnB,QANZ;AAOE,IAAA,aAAa,EAAC,MAPhB,CAQE;AARF;AASE,IAAA,KAAK,EAAE4B;AATT,KADF,CADF,EAcGN,aAAa,iBACZ,oBAAC,MAAD,qBACE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAE,CAACa,MAAM,CAACG,MAAR,EAAgB;AAAEzB,MAAAA,eAAe,EAAEV,MAAM,CAACoC;AAA1B,KAAhB;AAAb,kBACE,oBAAC,YAAD;AAAc,IAAA,KAAK,EAAEJ,MAAM,CAACK;AAA5B,kBACE,oBAAC,MAAD;AACE,IAAA,IAAI,EAAE7C,IADR;AAEE,IAAA,IAAI,EAAC,MAFP;AAGE,IAAA,OAAO,EAAE8B,gBAHX;AAIE,IAAA,KAAK,EAAEU,MAAM,CAACM;AAJhB,aADF,eASE,oBAAC,YAAD;AACE,IAAA,KAAK,EAAE;AAAE5B,MAAAA,eAAe,EAAE;AAAnB,KADT;AAEE,IAAA,aAAa,EAAEd,aAFjB;AAGE,IAAA,aAAa,EAAEE;AAHjB,KAKGJ,OAAO,CAAC6C,GAAR,CAAaV,CAAD,iBACX,oBAAC,YAAD,CAAc,IAAd;AACE,IAAA,KAAK,EAAEA,CAAC,CAACE,KADX;AAEE,IAAA,KAAK,EAAEF,CAAC,CAACC,KAFX;AAGE,IAAA,GAAG,EAAED,CAAC,CAACC;AAHT,IADD,CALH,CATF,CADF,CADF,CAfJ,CADF;AA8CD,CAnGD;;AAqGA,MAAME,MAAM,GAAGnD,UAAU,CAAC2D,MAAX,CAAkB;AAC/BP,EAAAA,SAAS,EAAE;AACTQ,IAAAA,SAAS,EAAE;AADF,GADoB;AAI/BN,EAAAA,MAAM,EAAE;AACNO,IAAAA,QAAQ,EAAE,UADJ;AAENC,IAAAA,MAAM,EAAE,CAFF;AAGNC,IAAAA,IAAI,EAAE,CAHA;AAINC,IAAAA,KAAK,EAAE,CAJD;AAKNC,IAAAA,aAAa,EAAE,KALT;AAMNC,IAAAA,cAAc,EAAE;AANV,GAJuB;AAY/BV,EAAAA,eAAe,EAAE;AACf3B,IAAAA,eAAe,EAAE,OADF;AAEfoC,IAAAA,aAAa,EAAE,QAFA;AAGfE,IAAAA,KAAK,EAAE;AAHQ,GAZc;AAiB/BV,EAAAA,WAAW,EAAE;AACXG,IAAAA,SAAS,EAAE;AADA;AAjBkB,CAAlB,CAAf;AAsBA,eAAevD,SAAS,CAACF,MAAD,CAAxB","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport { SafeAreaView } from \"react-native-safe-area-context\";\nimport omit from \"lodash.omit\";\n\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\n\nimport { withTheme } from \"../../theming\";\n\nimport Portal from \"../Portal/Portal\";\nimport Button from \"../DeprecatedButton\";\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\nimport { extractStyles } from \"../../utilities\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nconst Picker: React.FC<PickerComponentProps & IconSlot> = ({\n Icon,\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange = () => {},\n theme: { colors },\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n const [pickerVisible, setIsPickerVisible] = React.useState(false);\n\n const toggleVisibility = () => {\n setIsPickerVisible(!pickerVisible);\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((o) => o.value === selectedValue)?.label ?? selectedValue);\n\n return (\n <View style={[styles.container, viewStyles]}>\n <Touchable disabled={disabled} onPress={toggleVisibility}>\n <TextField\n {...props}\n value={String(selectedLabel)}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n pointerEvents=\"none\"\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </Touchable>\n {pickerVisible && (\n <Portal>\n <View style={[styles.picker, { backgroundColor: colors.divider }]}>\n <SafeAreaView style={styles.pickerContainer}>\n <Button\n Icon={Icon}\n type=\"text\"\n onPress={toggleVisibility}\n style={styles.closeButton}\n >\n Close\n </Button>\n <NativePicker\n style={{ backgroundColor: \"white\" }}\n selectedValue={selectedValue}\n onValueChange={onValueChange}\n >\n {options.map((o: any) => (\n <NativePicker.Item\n label={o.label}\n value={o.value}\n key={o.value}\n />\n ))}\n </NativePicker>\n </SafeAreaView>\n </View>\n </Portal>\n )}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n picker: {\n position: \"absolute\",\n bottom: 0,\n left: 0,\n right: 0,\n flexDirection: \"row\",\n justifyContent: \"center\",\n },\n pickerContainer: {\n backgroundColor: \"white\",\n flexDirection: \"column\",\n width: \"100%\",\n },\n closeButton: {\n alignSelf: \"flex-end\",\n },\n});\n\nexport default withTheme(Picker);\n"]}
@@ -1,7 +1,8 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
 
3
3
  import * as React from "react";
4
- import { View, StyleSheet, Picker as NativePicker } from "react-native";
4
+ import { View, StyleSheet } from "react-native";
5
+ import { Picker as NativePicker } from "@react-native-picker/picker";
5
6
  import omit from "lodash.omit";
6
7
  import { withTheme } from "../../theming";
7
8
  import { extractStyles } from "../../utilities";
@@ -65,7 +66,7 @@ const Picker = ({
65
66
  };
66
67
 
67
68
  const stylesWithoutMargin = style && omit(StyleSheet.flatten(style), ["margin", "marginTop", "marginRight", "marginBottom", "marginLeft"]);
68
- const selectedLabel = selectedValue && ((_options$find$label = (_options$find = options.find(opt => opt.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) !== null && _options$find$label !== void 0 ? _options$find$label : selectedValue);
69
+ const selectedLabel = selectedValue && ((_options$find$label = (_options$find = options.find(o => o.value === selectedValue)) === null || _options$find === void 0 ? void 0 : _options$find.label) !== null && _options$find$label !== void 0 ? _options$find$label : selectedValue);
69
70
  return /*#__PURE__*/React.createElement(Touchable, {
70
71
  disabled: disabled,
71
72
  onPress: toggleFocus,
@@ -73,7 +74,7 @@ const Picker = ({
73
74
  }, /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(NativePicker, {
74
75
  enabled: !disabled,
75
76
  selectedValue: selectedValue,
76
- onValueChange: (value, index) => onValueChange(value.toString(), index),
77
+ onValueChange: onValueChange,
77
78
  style: {
78
79
  flex: 1,
79
80
  opacity: 0,
@@ -81,7 +82,8 @@ const Picker = ({
81
82
  top: 0,
82
83
  left: 0,
83
84
  right: 0,
84
- bottom: 0
85
+ bottom: 0,
86
+ width: "100%"
85
87
  }
86
88
  }, options.map(o => /*#__PURE__*/React.createElement(NativePicker.Item, {
87
89
  label: o.label,
@@ -1 +1 @@
1
- {"version":3,"sources":["PickerComponent.web.tsx"],"names":["React","View","StyleSheet","Picker","NativePicker","omit","withTheme","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","selectedLabel","find","opt","value","label","styles","container","index","toString","flex","opacity","position","top","left","right","bottom","map","o","create","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet, Picker as NativePicker } from \"react-native\";\nimport omit from \"lodash.omit\";\nimport { withTheme } from \"../../theming\";\nimport { extractStyles } from \"../../utilities\";\n\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\n\nconst Picker: React.FC<PickerComponentProps> = ({\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange: onValueChangeOverride = () => {},\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n\n const onValueChange = (itemValue: string, itemIndex: number) => {\n toggleFocus();\n onValueChangeOverride(itemValue, itemIndex);\n };\n\n const toggleFocus = () => {\n if (!disabled) {\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n }\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((opt) => opt.value === selectedValue)?.label ??\n selectedValue);\n\n return (\n <Touchable\n disabled={disabled}\n onPress={toggleFocus}\n style={[styles.container, viewStyles]}\n >\n <View>\n <NativePicker\n enabled={!disabled}\n selectedValue={selectedValue}\n onValueChange={(value, index) =>\n onValueChange(value.toString(), index)\n }\n style={{\n flex: 1,\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n }}\n >\n {options.map((o) => (\n <NativePicker.Item label={o.label} value={o.value} key={o.value} />\n ))}\n </NativePicker>\n <View pointerEvents=\"none\">\n <TextField\n {...props}\n value={selectedLabel}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </View>\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n});\n\nexport default withTheme(Picker);\n"]}
1
+ {"version":3,"sources":["PickerComponent.web.tsx"],"names":["React","View","StyleSheet","Picker","NativePicker","omit","withTheme","extractStyles","TextField","Touchable","style","options","placeholder","selectedValue","disabled","onValueChange","onValueChangeOverride","props","viewStyles","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderColor","backgroundColor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","textField","useRef","undefined","itemValue","itemIndex","toggleFocus","current","stylesWithoutMargin","flatten","selectedLabel","find","o","value","label","styles","container","flex","opacity","position","top","left","right","bottom","width","map","create","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { View, StyleSheet } from \"react-native\";\nimport { Picker as NativePicker } from \"@react-native-picker/picker\";\nimport omit from \"lodash.omit\";\nimport { withTheme } from \"../../theming\";\nimport { extractStyles } from \"../../utilities\";\n\nimport TextField from \"../TextField\";\nimport Touchable from \"../Touchable\";\nimport { PickerComponentProps } from \"./PickerTypes\";\n\nconst Picker: React.FC<PickerComponentProps> = ({\n style,\n options,\n placeholder,\n selectedValue,\n disabled = false,\n onValueChange: onValueChangeOverride = () => {},\n ...props\n}) => {\n const {\n viewStyles: {\n borderRadius, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderTopWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderRightWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderBottomWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderLeftWidth, // eslint-disable-line @typescript-eslint/no-unused-vars\n borderColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n backgroundColor, // eslint-disable-line @typescript-eslint/no-unused-vars\n padding, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingTop, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingRight, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingBottom, // eslint-disable-line @typescript-eslint/no-unused-vars\n paddingLeft, // eslint-disable-line @typescript-eslint/no-unused-vars\n ...viewStyles\n },\n } = extractStyles(style);\n\n const textField = React.useRef<typeof TextField | undefined>(undefined);\n\n const onValueChange = (itemValue: string, itemIndex: number) => {\n toggleFocus();\n onValueChangeOverride(itemValue, itemIndex);\n };\n\n const toggleFocus = () => {\n if (!disabled) {\n // @ts-ignore\n textField.current.toggleFocus(); // cannot determine if method exists due to component being wrapped in a withTheme()\n }\n };\n\n const stylesWithoutMargin =\n style &&\n omit(StyleSheet.flatten(style), [\n \"margin\",\n \"marginTop\",\n \"marginRight\",\n \"marginBottom\",\n \"marginLeft\",\n ]);\n\n const selectedLabel =\n selectedValue &&\n (options.find((o) => o.value === selectedValue)?.label ?? selectedValue);\n\n return (\n <Touchable\n disabled={disabled}\n onPress={toggleFocus}\n style={[styles.container, viewStyles]}\n >\n <View>\n <NativePicker\n enabled={!disabled}\n selectedValue={selectedValue}\n onValueChange={onValueChange}\n style={{\n flex: 1,\n opacity: 0,\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: \"100%\",\n }}\n >\n {options.map((o) => (\n <NativePicker.Item label={o.label} value={o.value} key={o.value} />\n ))}\n </NativePicker>\n <View pointerEvents=\"none\">\n <TextField\n {...props}\n value={selectedLabel}\n placeholder={placeholder}\n // @ts-ignore\n ref={textField} // cannot determine if ref is of correct type due to component being wrapped in a withTheme()\n disabled={disabled}\n // @ts-expect-error\n style={stylesWithoutMargin}\n />\n </View>\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n});\n\nexport default withTheme(Picker);\n"]}
@@ -3,7 +3,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
3
3
  import * as React from "react";
4
4
  import { View, StyleSheet, Pressable } from "react-native";
5
5
  import { withTheme } from "../theming";
6
- import { COMPONENT_TYPES, createStaticNumberProp, createFieldNameProp, createStaticBoolProp, Triggers, createColorProp } from "@draftbit/types";
6
+ import { COMPONENT_TYPES, createStaticNumberProp, createFieldNameProp, createStaticBoolProp, Triggers, createColorProp, GROUPS } from "@draftbit/types";
7
7
 
8
8
  const StarRating = ({
9
9
  Icon,
@@ -102,6 +102,7 @@ export const SEED_DATA = {
102
102
  step: 1
103
103
  }),
104
104
  rating: createStaticNumberProp({
105
+ group: GROUPS.data,
105
106
  label: "Rating"
106
107
  }),
107
108
  isEditable: createStaticBoolProp({
@@ -1 +1 @@
1
- {"version":3,"sources":["StarRating.tsx"],"names":["React","View","StyleSheet","Pressable","withTheme","COMPONENT_TYPES","createStaticNumberProp","createFieldNameProp","createStaticBoolProp","Triggers","createColorProp","StarRating","Icon","starSize","maxStars","rating","isEditable","activeColor","inactiveColor","style","onPress","rest","localRating","setLocalRating","useState","useEffect","ratingHandler","useCallback","r","ratingRounded","Math","round","styles","container","Array","map","_","i","display","touchContainer","pressable","create","flexDirection","alignItems","position","top","right","left","bottom","zIndex","flex","height","width","SEED_DATA","name","tag","description","category","button","triggers","OnPress","props","label","defaultValue","min","max","step","fieldName","handlerPropName","valuePropName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n StyleProp,\n ViewStyle,\n Pressable,\n} from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\n\nimport {\n COMPONENT_TYPES,\n createStaticNumberProp,\n createFieldNameProp,\n createStaticBoolProp,\n Triggers,\n createColorProp,\n} from \"@draftbit/types\";\n\ntype Props = {\n starSize?: number;\n maxStars?: number;\n rating?: number;\n isEditable?: boolean;\n activeColor?: string;\n inactiveColor?: string;\n theme: Theme;\n style?: StyleProp<ViewStyle>;\n onPress?: (newValue: number) => void;\n} & IconSlot;\n\nconst StarRating: React.FC<Props> = ({\n Icon,\n starSize = 16,\n maxStars = 5,\n rating = 0,\n isEditable = false,\n activeColor,\n inactiveColor,\n style,\n onPress,\n ...rest\n}) => {\n const [localRating, setLocalRating] = React.useState(rating);\n\n React.useEffect(() => {\n setLocalRating(rating);\n }, [rating]);\n\n const ratingHandler = React.useCallback(\n (r) => {\n setLocalRating(r);\n !!onPress && onPress(r);\n },\n [onPress]\n );\n\n const ratingRounded = Math.round(localRating * 2) / 2;\n\n return (\n <View style={[styles.container, style]} {...rest}>\n {[...Array(maxStars)].map((_, i) => (\n <View key={i} style={{ display: \"flex\" }}>\n <Icon\n name={\n ratingRounded - i === 0.5\n ? \"MaterialIcons/star-half\"\n : \"MaterialIcons/star\"\n }\n size={starSize}\n color={ratingRounded > i ? activeColor : inactiveColor}\n />\n {isEditable && (\n <View style={styles.touchContainer}>\n <Pressable\n style={styles.pressable}\n onPress={() => ratingHandler(i + 0.5)}\n />\n <Pressable\n style={styles.pressable}\n onPress={() => ratingHandler(i + 1)}\n />\n </View>\n )}\n </View>\n ))}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n touchContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n position: \"absolute\",\n top: 0,\n right: 0,\n left: 0,\n bottom: 0,\n zIndex: 1,\n },\n pressable: {\n flex: 1,\n height: \"100%\",\n width: \"50%\",\n },\n});\n\nexport default withTheme(StarRating);\n\nexport const SEED_DATA = {\n name: \"Star Rating\",\n tag: \"StarRating\",\n description: \"A star rating component\",\n category: COMPONENT_TYPES.button,\n triggers: [Triggers.OnPress],\n props: {\n starSize: createStaticNumberProp({\n label: \"Star size\",\n description: \"Size of each individual star\",\n defaultValue: 16,\n min: 8,\n max: 36,\n step: 1,\n }),\n fieldName: createFieldNameProp({\n defaultValue: \"ratingValue\", // this is the name of the variable declared on the screen in Draftbit\n handlerPropName: \"onPress\", // the change handler prop in this component\n valuePropName: \"rating\", // the value prop in this component\n }),\n maxStars: createStaticNumberProp({\n label: \"Max stars\",\n description: \"The max number of stars\",\n defaultValue: 5,\n min: 0,\n max: 10,\n step: 1,\n }),\n rating: createStaticNumberProp({\n label: \"Rating\",\n }),\n isEditable: createStaticBoolProp({\n label: \"Editable\",\n }),\n activeColor: createColorProp({\n label: \"Active Color\",\n defaultValue: \"primary\",\n }),\n inactiveColor: createColorProp({\n label: \"Inactive Color\",\n defaultValue: \"divider\",\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["StarRating.tsx"],"names":["React","View","StyleSheet","Pressable","withTheme","COMPONENT_TYPES","createStaticNumberProp","createFieldNameProp","createStaticBoolProp","Triggers","createColorProp","GROUPS","StarRating","Icon","starSize","maxStars","rating","isEditable","activeColor","inactiveColor","style","onPress","rest","localRating","setLocalRating","useState","useEffect","ratingHandler","useCallback","r","ratingRounded","Math","round","styles","container","Array","map","_","i","display","touchContainer","pressable","create","flexDirection","alignItems","position","top","right","left","bottom","zIndex","flex","height","width","SEED_DATA","name","tag","description","category","button","triggers","OnPress","props","label","defaultValue","min","max","step","fieldName","handlerPropName","valuePropName","group","data"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n StyleProp,\n ViewStyle,\n Pressable,\n} from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\n\nimport {\n COMPONENT_TYPES,\n createStaticNumberProp,\n createFieldNameProp,\n createStaticBoolProp,\n Triggers,\n createColorProp,\n GROUPS,\n} from \"@draftbit/types\";\n\ntype Props = {\n starSize?: number;\n maxStars?: number;\n rating?: number;\n isEditable?: boolean;\n activeColor?: string;\n inactiveColor?: string;\n theme: Theme;\n style?: StyleProp<ViewStyle>;\n onPress?: (newValue: number) => void;\n} & IconSlot;\n\nconst StarRating: React.FC<Props> = ({\n Icon,\n starSize = 16,\n maxStars = 5,\n rating = 0,\n isEditable = false,\n activeColor,\n inactiveColor,\n style,\n onPress,\n ...rest\n}) => {\n const [localRating, setLocalRating] = React.useState(rating);\n\n React.useEffect(() => {\n setLocalRating(rating);\n }, [rating]);\n\n const ratingHandler = React.useCallback(\n (r) => {\n setLocalRating(r);\n !!onPress && onPress(r);\n },\n [onPress]\n );\n\n const ratingRounded = Math.round(localRating * 2) / 2;\n\n return (\n <View style={[styles.container, style]} {...rest}>\n {[...Array(maxStars)].map((_, i) => (\n <View key={i} style={{ display: \"flex\" }}>\n <Icon\n name={\n ratingRounded - i === 0.5\n ? \"MaterialIcons/star-half\"\n : \"MaterialIcons/star\"\n }\n size={starSize}\n color={ratingRounded > i ? activeColor : inactiveColor}\n />\n {isEditable && (\n <View style={styles.touchContainer}>\n <Pressable\n style={styles.pressable}\n onPress={() => ratingHandler(i + 0.5)}\n />\n <Pressable\n style={styles.pressable}\n onPress={() => ratingHandler(i + 1)}\n />\n </View>\n )}\n </View>\n ))}\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n touchContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n position: \"absolute\",\n top: 0,\n right: 0,\n left: 0,\n bottom: 0,\n zIndex: 1,\n },\n pressable: {\n flex: 1,\n height: \"100%\",\n width: \"50%\",\n },\n});\n\nexport default withTheme(StarRating);\n\nexport const SEED_DATA = {\n name: \"Star Rating\",\n tag: \"StarRating\",\n description: \"A star rating component\",\n category: COMPONENT_TYPES.button,\n triggers: [Triggers.OnPress],\n props: {\n starSize: createStaticNumberProp({\n label: \"Star size\",\n description: \"Size of each individual star\",\n defaultValue: 16,\n min: 8,\n max: 36,\n step: 1,\n }),\n fieldName: createFieldNameProp({\n defaultValue: \"ratingValue\", // this is the name of the variable declared on the screen in Draftbit\n handlerPropName: \"onPress\", // the change handler prop in this component\n valuePropName: \"rating\", // the value prop in this component\n }),\n maxStars: createStaticNumberProp({\n label: \"Max stars\",\n description: \"The max number of stars\",\n defaultValue: 5,\n min: 0,\n max: 10,\n step: 1,\n }),\n rating: createStaticNumberProp({\n group: GROUPS.data,\n label: \"Rating\",\n }),\n isEditable: createStaticBoolProp({\n label: \"Editable\",\n }),\n activeColor: createColorProp({\n label: \"Active Color\",\n defaultValue: \"primary\",\n }),\n inactiveColor: createColorProp({\n label: \"Inactive Color\",\n defaultValue: \"divider\",\n }),\n },\n};\n"]}
@@ -1,12 +1,7 @@
1
- import { COMPONENT_TYPES, createBoolProp, createNumberProp, createTextProp } from "@draftbit/types";
1
+ import { COMPONENT_TYPES, createBoolProp, createNumberProp, createTextProp, GROUPS } from "@draftbit/types";
2
2
  import React from "react";
3
- import { View, StyleSheet } from "react-native";
3
+ import { View } from "react-native";
4
4
  import SwiperComponent from "react-native-web-swiper";
5
- const styles = StyleSheet.create({
6
- wrapper: {
7
- flex: 1
8
- }
9
- });
10
5
 
11
6
  const Swiper = ({
12
7
  vertical = false,
@@ -19,7 +14,7 @@ const Swiper = ({
19
14
  children,
20
15
  style
21
16
  }) => /*#__PURE__*/React.createElement(View, {
22
- style: [styles.wrapper, style]
17
+ style: style
23
18
  }, /*#__PURE__*/React.createElement(SwiperComponent, {
24
19
  from: from,
25
20
  loop: loop,
@@ -38,30 +33,41 @@ export const SEED_DATA = {
38
33
  tag: "Swiper",
39
34
  description: "Swiper container",
40
35
  category: COMPONENT_TYPES.container,
36
+ layout: {
37
+ height: 300,
38
+ width: "100%"
39
+ },
41
40
  props: {
42
41
  from: createNumberProp({
42
+ group: GROUPS.basic,
43
43
  label: "Initial Slide"
44
44
  }),
45
45
  loop: createBoolProp({
46
+ group: GROUPS.basic,
46
47
  label: "Loop"
47
48
  }),
48
49
  timeout: createNumberProp({
50
+ group: GROUPS.basic,
49
51
  label: "Timeout",
50
52
  defaultValue: 0
51
53
  }),
52
54
  vertical: createBoolProp({
55
+ group: GROUPS.basic,
53
56
  label: "Vertical",
54
57
  defaultValue: false
55
58
  }),
56
59
  prevTitle: createTextProp({
60
+ group: GROUPS.basic,
57
61
  label: "Previous Title",
58
62
  defaultValue: ""
59
63
  }),
60
64
  nextTitle: createTextProp({
65
+ group: GROUPS.basic,
61
66
  label: "Next Title",
62
67
  defaultValue: ""
63
68
  }),
64
69
  dotsTouchable: createBoolProp({
70
+ group: GROUPS.basic,
65
71
  label: "Dots Touchable",
66
72
  defaultValue: true
67
73
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["Swiper.tsx"],"names":["COMPONENT_TYPES","createBoolProp","createNumberProp","createTextProp","React","View","StyleSheet","SwiperComponent","styles","create","wrapper","flex","Swiper","vertical","loop","timeout","from","prevTitle","nextTitle","dotsTouchable","children","style","SEED_DATA","name","tag","description","category","container","props","label","defaultValue"],"mappings":"AAAA,SACEA,eADF,EAEEC,cAFF,EAGEC,gBAHF,EAIEC,cAJF,QAKO,iBALP;AAMA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,EAAeC,UAAf,QAAuD,cAAvD;AACA,OAAOC,eAAP,MAA4B,yBAA5B;AAEA,MAAMC,MAAM,GAAGF,UAAU,CAACG,MAAX,CAAkB;AAC/BC,EAAAA,OAAO,EAAE;AACPC,IAAAA,IAAI,EAAE;AADC;AADsB,CAAlB,CAAf;;AAkBA,MAAMC,MAAM,GAAG,CAAC;AACdC,EAAAA,QAAQ,GAAG,KADG;AAEdC,EAAAA,IAAI,GAAG,KAFO;AAGdC,EAAAA,OAAO,GAAG,CAHI;AAIdC,EAAAA,IAAI,GAAG,CAJO;AAKdC,EAAAA,SAAS,GAAG,EALE;AAMdC,EAAAA,SAAS,GAAG,EANE;AAOdC,EAAAA,aAAa,GAAG,IAPF;AAQdC,EAAAA,QARc;AASdC,EAAAA;AATc,CAAD,kBAWb,oBAAC,IAAD;AAAM,EAAA,KAAK,EAAE,CAACb,MAAM,CAACE,OAAR,EAAiBW,KAAjB;AAAb,gBACE,oBAAC,eAAD;AACE,EAAA,IAAI,EAAEL,IADR;AAEE,EAAA,IAAI,EAAEF,IAFR;AAGE,EAAA,OAAO,EAAEC,OAHX;AAIE,EAAA,QAAQ,EAAEF,QAJZ;AAKE,EAAA,aAAa,EAAE;AACbI,IAAAA,SADa;AAEbC,IAAAA,SAFa;AAGbC,IAAAA;AAHa;AALjB,GAWGC,QAXH,CADF,CAXF;;AA4BA,eAAeR,MAAf;AAEA,OAAO,MAAMU,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,QADiB;AAEvBC,EAAAA,GAAG,EAAE,QAFkB;AAGvBC,EAAAA,WAAW,EAAE,kBAHU;AAIvBC,EAAAA,QAAQ,EAAE1B,eAAe,CAAC2B,SAJH;AAKvBC,EAAAA,KAAK,EAAE;AACLZ,IAAAA,IAAI,EAAEd,gBAAgB,CAAC;AACrB2B,MAAAA,KAAK,EAAE;AADc,KAAD,CADjB;AAILf,IAAAA,IAAI,EAAEb,cAAc,CAAC;AACnB4B,MAAAA,KAAK,EAAE;AADY,KAAD,CAJf;AAOLd,IAAAA,OAAO,EAAEb,gBAAgB,CAAC;AACxB2B,MAAAA,KAAK,EAAE,SADiB;AAExBC,MAAAA,YAAY,EAAE;AAFU,KAAD,CAPpB;AAWLjB,IAAAA,QAAQ,EAAEZ,cAAc,CAAC;AACvB4B,MAAAA,KAAK,EAAE,UADgB;AAEvBC,MAAAA,YAAY,EAAE;AAFS,KAAD,CAXnB;AAeLb,IAAAA,SAAS,EAAEd,cAAc,CAAC;AACxB0B,MAAAA,KAAK,EAAE,gBADiB;AAExBC,MAAAA,YAAY,EAAE;AAFU,KAAD,CAfpB;AAmBLZ,IAAAA,SAAS,EAAEf,cAAc,CAAC;AACxB0B,MAAAA,KAAK,EAAE,YADiB;AAExBC,MAAAA,YAAY,EAAE;AAFU,KAAD,CAnBpB;AAuBLX,IAAAA,aAAa,EAAElB,cAAc,CAAC;AAC5B4B,MAAAA,KAAK,EAAE,gBADqB;AAE5BC,MAAAA,YAAY,EAAE;AAFc,KAAD;AAvBxB;AALgB,CAAlB","sourcesContent":["import {\n COMPONENT_TYPES,\n createBoolProp,\n createNumberProp,\n createTextProp,\n} from \"@draftbit/types\";\nimport React from \"react\";\nimport { View, StyleSheet, StyleProp, ViewStyle } from \"react-native\";\nimport SwiperComponent from \"react-native-web-swiper\";\n\nconst styles = StyleSheet.create({\n wrapper: {\n flex: 1,\n },\n});\n\nexport interface SwiperProps {\n vertical?: boolean;\n loop?: boolean;\n from?: number;\n timeout?: number;\n prevTitle?: string;\n nextTitle?: string;\n dotsTouchable?: boolean;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Swiper = ({\n vertical = false,\n loop = false,\n timeout = 0,\n from = 0,\n prevTitle = \"\",\n nextTitle = \"\",\n dotsTouchable = true,\n children,\n style,\n}: SwiperProps) => (\n <View style={[styles.wrapper, style]}>\n <SwiperComponent\n from={from}\n loop={loop}\n timeout={timeout}\n vertical={vertical}\n controlsProps={{\n prevTitle,\n nextTitle,\n dotsTouchable,\n }}\n >\n {children}\n </SwiperComponent>\n </View>\n);\n\nexport default Swiper;\n\nexport const SEED_DATA = {\n name: \"Swiper\",\n tag: \"Swiper\",\n description: \"Swiper container\",\n category: COMPONENT_TYPES.container,\n props: {\n from: createNumberProp({\n label: \"Initial Slide\",\n }),\n loop: createBoolProp({\n label: \"Loop\",\n }),\n timeout: createNumberProp({\n label: \"Timeout\",\n defaultValue: 0,\n }),\n vertical: createBoolProp({\n label: \"Vertical\",\n defaultValue: false,\n }),\n prevTitle: createTextProp({\n label: \"Previous Title\",\n defaultValue: \"\",\n }),\n nextTitle: createTextProp({\n label: \"Next Title\",\n defaultValue: \"\",\n }),\n dotsTouchable: createBoolProp({\n label: \"Dots Touchable\",\n defaultValue: true,\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["Swiper.tsx"],"names":["COMPONENT_TYPES","createBoolProp","createNumberProp","createTextProp","GROUPS","React","View","SwiperComponent","Swiper","vertical","loop","timeout","from","prevTitle","nextTitle","dotsTouchable","children","style","SEED_DATA","name","tag","description","category","container","layout","height","width","props","group","basic","label","defaultValue"],"mappings":"AAAA,SACEA,eADF,EAEEC,cAFF,EAGEC,gBAHF,EAIEC,cAJF,EAKEC,MALF,QAMO,iBANP;AAOA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAA2C,cAA3C;AACA,OAAOC,eAAP,MAA4B,yBAA5B;;AAcA,MAAMC,MAAM,GAAG,CAAC;AACdC,EAAAA,QAAQ,GAAG,KADG;AAEdC,EAAAA,IAAI,GAAG,KAFO;AAGdC,EAAAA,OAAO,GAAG,CAHI;AAIdC,EAAAA,IAAI,GAAG,CAJO;AAKdC,EAAAA,SAAS,GAAG,EALE;AAMdC,EAAAA,SAAS,GAAG,EANE;AAOdC,EAAAA,aAAa,GAAG,IAPF;AAQdC,EAAAA,QARc;AASdC,EAAAA;AATc,CAAD,kBAWb,oBAAC,IAAD;AAAM,EAAA,KAAK,EAAEA;AAAb,gBACE,oBAAC,eAAD;AACE,EAAA,IAAI,EAAEL,IADR;AAEE,EAAA,IAAI,EAAEF,IAFR;AAGE,EAAA,OAAO,EAAEC,OAHX;AAIE,EAAA,QAAQ,EAAEF,QAJZ;AAKE,EAAA,aAAa,EAAE;AACbI,IAAAA,SADa;AAEbC,IAAAA,SAFa;AAGbC,IAAAA;AAHa;AALjB,GAWGC,QAXH,CADF,CAXF;;AA4BA,eAAeR,MAAf;AAEA,OAAO,MAAMU,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,QADiB;AAEvBC,EAAAA,GAAG,EAAE,QAFkB;AAGvBC,EAAAA,WAAW,EAAE,kBAHU;AAIvBC,EAAAA,QAAQ,EAAEtB,eAAe,CAACuB,SAJH;AAKvBC,EAAAA,MAAM,EAAE;AACNC,IAAAA,MAAM,EAAE,GADF;AAENC,IAAAA,KAAK,EAAE;AAFD,GALe;AASvBC,EAAAA,KAAK,EAAE;AACLf,IAAAA,IAAI,EAAEV,gBAAgB,CAAC;AACrB0B,MAAAA,KAAK,EAAExB,MAAM,CAACyB,KADO;AAErBC,MAAAA,KAAK,EAAE;AAFc,KAAD,CADjB;AAKLpB,IAAAA,IAAI,EAAET,cAAc,CAAC;AACnB2B,MAAAA,KAAK,EAAExB,MAAM,CAACyB,KADK;AAEnBC,MAAAA,KAAK,EAAE;AAFY,KAAD,CALf;AASLnB,IAAAA,OAAO,EAAET,gBAAgB,CAAC;AACxB0B,MAAAA,KAAK,EAAExB,MAAM,CAACyB,KADU;AAExBC,MAAAA,KAAK,EAAE,SAFiB;AAGxBC,MAAAA,YAAY,EAAE;AAHU,KAAD,CATpB;AAcLtB,IAAAA,QAAQ,EAAER,cAAc,CAAC;AACvB2B,MAAAA,KAAK,EAAExB,MAAM,CAACyB,KADS;AAEvBC,MAAAA,KAAK,EAAE,UAFgB;AAGvBC,MAAAA,YAAY,EAAE;AAHS,KAAD,CAdnB;AAmBLlB,IAAAA,SAAS,EAAEV,cAAc,CAAC;AACxByB,MAAAA,KAAK,EAAExB,MAAM,CAACyB,KADU;AAExBC,MAAAA,KAAK,EAAE,gBAFiB;AAGxBC,MAAAA,YAAY,EAAE;AAHU,KAAD,CAnBpB;AAwBLjB,IAAAA,SAAS,EAAEX,cAAc,CAAC;AACxByB,MAAAA,KAAK,EAAExB,MAAM,CAACyB,KADU;AAExBC,MAAAA,KAAK,EAAE,YAFiB;AAGxBC,MAAAA,YAAY,EAAE;AAHU,KAAD,CAxBpB;AA6BLhB,IAAAA,aAAa,EAAEd,cAAc,CAAC;AAC5B2B,MAAAA,KAAK,EAAExB,MAAM,CAACyB,KADc;AAE5BC,MAAAA,KAAK,EAAE,gBAFqB;AAG5BC,MAAAA,YAAY,EAAE;AAHc,KAAD;AA7BxB;AATgB,CAAlB","sourcesContent":["import {\n COMPONENT_TYPES,\n createBoolProp,\n createNumberProp,\n createTextProp,\n GROUPS,\n} from \"@draftbit/types\";\nimport React from \"react\";\nimport { View, StyleProp, ViewStyle } from \"react-native\";\nimport SwiperComponent from \"react-native-web-swiper\";\n\nexport interface SwiperProps {\n vertical?: boolean;\n loop?: boolean;\n from?: number;\n timeout?: number;\n prevTitle?: string;\n nextTitle?: string;\n dotsTouchable?: boolean;\n children: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Swiper = ({\n vertical = false,\n loop = false,\n timeout = 0,\n from = 0,\n prevTitle = \"\",\n nextTitle = \"\",\n dotsTouchable = true,\n children,\n style,\n}: SwiperProps) => (\n <View style={style}>\n <SwiperComponent\n from={from}\n loop={loop}\n timeout={timeout}\n vertical={vertical}\n controlsProps={{\n prevTitle,\n nextTitle,\n dotsTouchable,\n }}\n >\n {children}\n </SwiperComponent>\n </View>\n);\n\nexport default Swiper;\n\nexport const SEED_DATA = {\n name: \"Swiper\",\n tag: \"Swiper\",\n description: \"Swiper container\",\n category: COMPONENT_TYPES.container,\n layout: {\n height: 300,\n width: \"100%\",\n },\n props: {\n from: createNumberProp({\n group: GROUPS.basic,\n label: \"Initial Slide\",\n }),\n loop: createBoolProp({\n group: GROUPS.basic,\n label: \"Loop\",\n }),\n timeout: createNumberProp({\n group: GROUPS.basic,\n label: \"Timeout\",\n defaultValue: 0,\n }),\n vertical: createBoolProp({\n group: GROUPS.basic,\n label: \"Vertical\",\n defaultValue: false,\n }),\n prevTitle: createTextProp({\n group: GROUPS.basic,\n label: \"Previous Title\",\n defaultValue: \"\",\n }),\n nextTitle: createTextProp({\n group: GROUPS.basic,\n label: \"Next Title\",\n defaultValue: \"\",\n }),\n dotsTouchable: createBoolProp({\n group: GROUPS.basic,\n label: \"Dots Touchable\",\n defaultValue: true,\n }),\n },\n};\n"]}
@@ -5,7 +5,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
5
5
  import * as React from "react";
6
6
  import { View, Animated, TextInput as NativeTextInput, StyleSheet, Text, I18nManager } from "react-native";
7
7
  import { withTheme } from "../theming";
8
- import { GROUPS, COMPONENT_TYPES, FORM_TYPES, PROP_TYPES, FIELD_NAME, TEXT_INPUT_PROPS, Triggers, createColorProp, createNumberProp } from "@draftbit/types";
8
+ import { GROUPS, COMPONENT_TYPES, FORM_TYPES, PROP_TYPES, FIELD_NAME, TEXT_INPUT_PROPS, Triggers, createColorProp, createNumberProp, createFieldNameProp } from "@draftbit/types";
9
9
  import { applyStyles, extractStyles } from "../utilities";
10
10
  const AnimatedText = Animated.createAnimatedComponent(Text);
11
11
  const FOCUS_ANIMATION_DURATION = 150;
@@ -532,7 +532,7 @@ const SEED_DATA_PROPS = { ...TEXT_INPUT_PROPS,
532
532
  };
533
533
  const SEED_DATA_TRIGGERS = [Triggers.OnChangeText];
534
534
  export const SEED_DATA = [{
535
- name: "Text Field",
535
+ name: "Styled Text Field",
536
536
  tag: "TextField",
537
537
  description: "A text input with a solid border or underline",
538
538
  category: COMPONENT_TYPES.input,
@@ -568,7 +568,7 @@ export const SEED_DATA = [{
568
568
  },
569
569
  layout: {}
570
570
  }, {
571
- name: "Text Area",
571
+ name: "Styled Text Area",
572
572
  tag: "TextField",
573
573
  description: "A text area with a solid border or underline",
574
574
  category: COMPONENT_TYPES.input,
@@ -602,6 +602,9 @@ export const SEED_DATA = [{
602
602
  description: "Number of Lines for Multiline Field",
603
603
  defaultValue: 4,
604
604
  group: GROUPS.basic
605
+ }),
606
+ fieldName: createFieldNameProp({
607
+ defaultValue: "textAreaValue"
605
608
  })
606
609
  },
607
610
  layout: {}