@draftbit/core 43.4.11-ca8fc3.1 → 43.4.12

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 (69) hide show
  1. package/lib/commonjs/components/Accordion/AccordionGroup.js +2 -2
  2. package/lib/commonjs/components/Accordion/AccordionGroup.js.map +1 -1
  3. package/lib/commonjs/components/Accordion/AccordionItem.js +5 -21
  4. package/lib/commonjs/components/Accordion/AccordionItem.js.map +1 -1
  5. package/lib/commonjs/components/Checkbox/Checkbox.js +6 -6
  6. package/lib/commonjs/components/Checkbox/Checkbox.js.map +1 -1
  7. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js +142 -0
  8. package/lib/commonjs/components/Checkbox/CheckboxGroupRow.js.map +1 -0
  9. package/lib/commonjs/components/Checkbox/CheckboxRow.js +55 -46
  10. package/lib/commonjs/components/Checkbox/CheckboxRow.js.map +1 -1
  11. package/lib/commonjs/components/DatePicker/DatePicker.js +2 -9
  12. package/lib/commonjs/components/DatePicker/DatePicker.js.map +1 -1
  13. package/lib/commonjs/components/Divider.js +13 -3
  14. package/lib/commonjs/components/Divider.js.map +1 -1
  15. package/lib/commonjs/components/FAB.js +5 -19
  16. package/lib/commonjs/components/FAB.js.map +1 -1
  17. package/lib/commonjs/components/NumberInput.js +15 -17
  18. package/lib/commonjs/components/NumberInput.js.map +1 -1
  19. package/lib/commonjs/components/RadioButton/RadioButtonRow.js +1 -1
  20. package/lib/commonjs/components/RadioButton/RadioButtonRow.js.map +1 -1
  21. package/lib/commonjs/components/TextField.js +8 -5
  22. package/lib/commonjs/components/TextField.js.map +1 -1
  23. package/lib/commonjs/mappings/CheckboxRow.js +25 -6
  24. package/lib/commonjs/mappings/CheckboxRow.js.map +1 -1
  25. package/lib/module/components/Accordion/AccordionGroup.js +2 -2
  26. package/lib/module/components/Accordion/AccordionGroup.js.map +1 -1
  27. package/lib/module/components/Checkbox/Checkbox.js +6 -6
  28. package/lib/module/components/Checkbox/Checkbox.js.map +1 -1
  29. package/lib/module/components/Checkbox/CheckboxGroupRow.js +120 -0
  30. package/lib/module/components/Checkbox/CheckboxGroupRow.js.map +1 -0
  31. package/lib/module/components/Checkbox/CheckboxRow.js +53 -46
  32. package/lib/module/components/Checkbox/CheckboxRow.js.map +1 -1
  33. package/lib/module/components/DatePicker/DatePicker.js +3 -9
  34. package/lib/module/components/DatePicker/DatePicker.js.map +1 -1
  35. package/lib/module/components/NumberInput.js +15 -17
  36. package/lib/module/components/NumberInput.js.map +1 -1
  37. package/lib/module/components/Picker/PickerComponent.ios.js +29 -10
  38. package/lib/module/components/Picker/PickerComponent.ios.js.map +1 -1
  39. package/lib/module/components/Picker/PickerTypes.js.map +1 -1
  40. package/lib/module/components/RadioButton/RadioButtonRow.js +1 -1
  41. package/lib/module/components/RadioButton/RadioButtonRow.js.map +1 -1
  42. package/lib/module/components/TextField.js +8 -5
  43. package/lib/module/components/TextField.js.map +1 -1
  44. package/lib/module/components/Touchable.web.js.map +1 -1
  45. package/lib/module/components/Typography.js.map +1 -1
  46. package/lib/module/mappings/CheckboxRow.js +26 -7
  47. package/lib/module/mappings/CheckboxRow.js.map +1 -1
  48. package/lib/typescript/src/components/Checkbox/CheckboxGroupRow.d.ts +21 -0
  49. package/lib/typescript/src/components/Checkbox/CheckboxRow.d.ts +3 -7
  50. package/lib/typescript/src/mappings/CheckboxRow.d.ts +50 -9
  51. package/package.json +2 -2
  52. package/src/components/Accordion/AccordionGroup.js +1 -1
  53. package/src/components/Accordion/AccordionGroup.tsx +1 -1
  54. package/src/components/Checkbox/Checkbox.js +6 -6
  55. package/src/components/Checkbox/Checkbox.tsx +8 -6
  56. package/src/components/Checkbox/CheckboxGroupRow.js +77 -0
  57. package/src/components/Checkbox/CheckboxGroupRow.tsx +152 -0
  58. package/src/components/Checkbox/CheckboxRow.js +33 -32
  59. package/src/components/Checkbox/CheckboxRow.tsx +67 -62
  60. package/src/components/DatePicker/DatePicker.js +2 -4
  61. package/src/components/DatePicker/DatePicker.tsx +1 -14
  62. package/src/components/NumberInput.js +13 -14
  63. package/src/components/NumberInput.tsx +16 -31
  64. package/src/components/RadioButton/RadioButtonRow.js +1 -1
  65. package/src/components/RadioButton/RadioButtonRow.tsx +1 -1
  66. package/src/components/TextField.js +5 -4
  67. package/src/components/TextField.tsx +6 -5
  68. package/src/mappings/CheckboxRow.js +26 -7
  69. package/src/mappings/CheckboxRow.ts +28 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["TextField.tsx"],"names":["AnimatedText","Animated","createAnimatedComponent","Text","FOCUS_ANIMATION_DURATION","BLUR_ANIMATION_DURATION","ICON_SIZE","TextField","React","Component","labeled","Value","props","value","error","focused","placeholder","labelLayout","measured","width","setTimeout","clearTimeout","_timer","setState","timing","state","toValue","duration","useNativeDriver","start","disabled","onChangeText","nativeEvent","text","undefined","getDerivedStateFromProps","nextProps","prevState","componentDidMount","defaultValue","_handleChangeText","_minmizeLabel","componentDidUpdate","prevProps","_restoreLabel","label","_showPlaceholder","_hidePlaceholder","componentWillUnmount","toggleFocus","setNativeProps","args","_root","isFocused","clear","focus","blur","render","Icon","type","leftIconName","leftIconMode","rightIconName","assistiveText","underlineColor","underlineColorProp","multiline","numberOfLines","style","theme","colors","typography","roundness","disabledOpacity","rest","MINIMIZED_LABEL_Y_OFFSET","caption","lineHeight","OUTLINE_MINIMIZED_LABEL_Y_OFFSET","MAXIMIZED_LABEL_FONT_SIZE","subtitle1","fontSize","MINIMIZED_LABEL_FONT_SIZE","hasActiveOutline","inputTextColor","activeColor","borderColor","placeholderColor","containerStyle","backgroundColor","inputStyle","strong","light","divider","primary","background","placeholderTextColor","paddingVertical","color","paddingLeft","paddingRight","height","assistiveTextLeftMargin","borderTopLeftRadius","borderTopRightRadius","paddingBottom","marginTop","borderRadius","borderWidth","paddingTop","opacity","paddingHorizontal","marginLeft","leftIconColor","leftIconProps","size","name","leftIconStyle","position","labelStyle","top","left","transform","translateY","interpolate","inputRange","outputRange","scale","translateX","textStyles","inputStyles","styles","input","marginHorizontal","bgColor","padding","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderCol","styleProp","StyleSheet","flatten","container","underline","scaleY","absoluteFill","e","layout","ref","c","onChange","editable","selectionColor","onFocus","_handleFocus","onBlur","_handleBlur","underlineColorAndroid","right","create","alignSelf","bottom","flexGrow","justifyContent","textAlignVertical","margin","textAlign","I18nManager","isRTL"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n Animated,\n TextInput as NativeTextInput,\n StyleSheet,\n Text,\n I18nManager,\n StyleProp,\n TextInputProps,\n NativeSyntheticEvent,\n TextInputChangeEventData,\n ViewStyle,\n TextStyle,\n LayoutChangeEvent,\n ImageStyle,\n} from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\nimport { applyStyles, extractStyles } from \"../utilities\";\n\nconst AnimatedText = Animated.createAnimatedComponent(Text);\n\nconst FOCUS_ANIMATION_DURATION = 150;\nconst BLUR_ANIMATION_DURATION = 180;\nconst ICON_SIZE = 24;\n\nexport type Props = {\n type?: \"solid\" | \"underline\";\n defaultValue?: string;\n disabled?: boolean;\n label?: string;\n error?: boolean;\n leftIconName?: string;\n leftIconMode?: \"inset\" | \"outset\";\n onChangeText: (\n text: string | NativeSyntheticEvent<TextInputChangeEventData>\n ) => void;\n rightIconName?: string;\n assistiveText?: string;\n multiline?: boolean;\n numberOfLines: number;\n underlineColor?: string;\n style?: StyleProp<ViewStyle> & { height?: number };\n theme: Theme;\n render?: (\n props: TextInputProps & { ref: (c: NativeTextInput) => void }\n ) => React.ReactNode;\n} & TextInputProps &\n IconSlot;\n\ninterface State {\n labeled: Animated.Value;\n focused?: boolean;\n placeholder?: string | undefined;\n labelLayout: {\n measured: boolean;\n width: number;\n };\n value?: string;\n}\n\nclass TextField extends React.Component<Props, State> {\n static getDerivedStateFromProps(nextProps: Props, prevState: State) {\n return {\n value:\n typeof nextProps.value !== \"undefined\"\n ? nextProps.value\n : prevState.value,\n };\n }\n\n state: State = {\n labeled: new Animated.Value(this.props.value || this.props.error ? 0 : 1),\n focused: false,\n placeholder: this.props.error ? this.props.placeholder : \"\",\n labelLayout: {\n measured: false,\n width: 0,\n },\n };\n\n componentDidMount() {\n if (this.props.defaultValue) {\n this._handleChangeText(this.props.defaultValue);\n }\n\n if (this.props.placeholder) {\n this._minmizeLabel();\n }\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n if (\n prevState.focused !== this.state.focused ||\n prevState.value !== this.state.value\n ) {\n // The label should be minimized if the text input is focused, or has text\n // In minimized mode, the label moves up and becomes small\n if (\n this.state.value ||\n this.state.focused ||\n this.props.error ||\n this.props.placeholder\n ) {\n this._minmizeLabel();\n } else {\n this._restoreLabel();\n }\n }\n\n if (\n prevState.focused !== this.state.focused ||\n prevProps.label !== this.props.label\n ) {\n // Show placeholder text only if the input is focused, or has error, or there's no label\n // We don't show placeholder if there's a label because the label acts as placeholder\n // When focused, the label moves up, so we can show a placeholder\n if (this.state.focused || this.props.error || !this.props.label) {\n this._showPlaceholder();\n } else {\n this._hidePlaceholder();\n }\n }\n }\n\n _timer = setTimeout(() => {}, 0);\n\n componentWillUnmount() {\n clearTimeout(this._timer);\n }\n\n _showPlaceholder = () => {\n clearTimeout(this._timer);\n\n // Set the placeholder in a delay to offset the label animation\n // If we show it immediately, they'll overlap and look ugly\n this._timer = setTimeout(\n () =>\n this.setState({\n placeholder: this.props.placeholder,\n }),\n 50\n );\n };\n\n _hidePlaceholder = () =>\n this.setState({\n placeholder: \"\",\n });\n\n _restoreLabel = () =>\n Animated.timing(this.state.labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n\n _minmizeLabel = () =>\n Animated.timing(this.state.labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n\n _handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focused: true });\n };\n\n _handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focused: false });\n };\n\n _handleChangeText = (\n value: NativeSyntheticEvent<TextInputChangeEventData> | string\n ) => {\n if (this.props.disabled) {\n return;\n }\n\n if (typeof value === \"string\") {\n this.setState({ value });\n this.props.onChangeText && this.props.onChangeText(value);\n } else {\n this.setState({ value: value.nativeEvent.text });\n this.props.onChangeText &&\n this.props.onChangeText(value.nativeEvent.text);\n }\n };\n\n toggleFocus() {\n this.setState((prevState: State) => ({ focused: !prevState.focused }));\n }\n\n _root: NativeTextInput | undefined = undefined;\n /**\n * @internal\n */\n setNativeProps(args: Props) {\n return this._root && this._root.setNativeProps(args);\n }\n\n isFocused() {\n return this._root && this._root.isFocused();\n }\n\n clear() {\n return this._root && this._root.clear();\n }\n\n focus() {\n return this._root && this._root.focus();\n }\n\n blur() {\n return this._root && this._root.blur();\n }\n\n render() {\n const {\n Icon,\n type = \"underline\",\n disabled = false,\n label,\n error = false,\n leftIconName,\n leftIconMode,\n rightIconName,\n assistiveText,\n underlineColor: underlineColorProp,\n multiline = false,\n numberOfLines = 4,\n style,\n theme: { colors, typography, roundness, disabledOpacity },\n render = (props) => <NativeTextInput {...props} />,\n ...rest\n } = this.props;\n\n const MINIMIZED_LABEL_Y_OFFSET = -(typography.caption.lineHeight + 4);\n const OUTLINE_MINIMIZED_LABEL_Y_OFFSET = -(16 * 0.5 + 4);\n const MAXIMIZED_LABEL_FONT_SIZE = typography.subtitle1.fontSize;\n const MINIMIZED_LABEL_FONT_SIZE = typography.caption.fontSize;\n\n const hasActiveOutline = this.state.focused || error;\n\n let inputTextColor,\n activeColor,\n underlineColor,\n borderColor,\n placeholderColor,\n containerStyle: StyleProp<ViewStyle>,\n backgroundColor,\n inputStyle: StyleProp<TextStyle>;\n\n inputTextColor = colors.strong;\n if (disabled) {\n activeColor = colors.light;\n placeholderColor = colors.light;\n borderColor = \"transparent\";\n underlineColor = \"transparent\";\n backgroundColor = colors.divider;\n } else {\n activeColor = error ? colors.error : colors.primary;\n placeholderColor = borderColor = colors.light;\n underlineColor = underlineColorProp;\n backgroundColor = colors.background;\n }\n\n if (rest.placeholderTextColor) {\n placeholderColor = rest.placeholderTextColor;\n }\n\n const { lineHeight, ...subtitle1 } = typography.subtitle1;\n\n inputStyle = {\n paddingVertical: 0,\n color: inputTextColor,\n paddingLeft:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + 12 + (type === \"solid\" ? 16 : 0)\n : 0,\n paddingRight: rightIconName ? ICON_SIZE + 16 + 4 : 12,\n ...subtitle1,\n };\n\n if (!multiline) {\n inputStyle.height = lineHeight;\n }\n\n let assistiveTextLeftMargin;\n if (type === \"underline\") {\n containerStyle = {\n borderTopLeftRadius: roundness,\n borderTopRightRadius: roundness,\n paddingBottom: 12,\n marginTop: 16,\n };\n\n if (leftIconName && leftIconMode === \"outset\") {\n assistiveTextLeftMargin = ICON_SIZE + 8;\n } else {\n assistiveTextLeftMargin = 0;\n }\n } else {\n containerStyle = {\n borderRadius: roundness,\n borderColor: hasActiveOutline ? activeColor : borderColor,\n borderWidth: 1,\n paddingTop: label ? 16 * 1.5 : 16,\n paddingBottom: label ? 16 * 0.5 : 16,\n opacity: disabled ? disabledOpacity : 1,\n backgroundColor,\n };\n\n if (leftIconName && leftIconMode === \"inset\") {\n assistiveTextLeftMargin = 16 + 4;\n } else if (leftIconName && leftIconMode === \"outset\") {\n assistiveTextLeftMargin = ICON_SIZE + 8 + 12;\n } else {\n assistiveTextLeftMargin = 12;\n }\n\n inputStyle.paddingHorizontal = 12;\n }\n\n if (leftIconName && leftIconMode === \"outset\") {\n containerStyle.marginLeft = ICON_SIZE + 8;\n }\n\n let leftIconColor;\n if (error) {\n leftIconColor = colors.error;\n } else if (this.state.focused) {\n leftIconColor = colors.primary;\n } else {\n leftIconColor = colors.light;\n }\n\n const leftIconProps = {\n size: 24,\n color: leftIconColor,\n name: leftIconName || \"\",\n };\n\n const leftIconStyle: ImageStyle = {\n position: \"absolute\",\n marginTop:\n type === \"solid\"\n ? MINIMIZED_LABEL_FONT_SIZE + 4\n : leftIconMode === \"outset\"\n ? 16\n : 0,\n };\n\n const labelStyle = {\n ...typography.subtitle1,\n top: type === \"solid\" ? 16 : 0,\n left:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n transform: [\n {\n // Move label to top\n translateY: this.state.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n type === \"solid\"\n ? OUTLINE_MINIMIZED_LABEL_Y_OFFSET\n : MINIMIZED_LABEL_Y_OFFSET,\n 0,\n ],\n }),\n },\n {\n // Make label smaller\n scale: this.state.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE,\n 1,\n ],\n }),\n },\n {\n // Offset label scale since RN doesn't support transform origin\n translateX: this.state.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n -(1 - MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE) *\n (this.state.labelLayout.width / 2),\n 0,\n ],\n }),\n },\n ],\n };\n\n const { textStyles } = extractStyles(style);\n const inputStyles = applyStyles(\n [\n styles.input,\n inputStyle,\n type === \"solid\" ? { marginHorizontal: 12 } : {},\n ],\n textStyles\n );\n\n const {\n backgroundColor: bgColor,\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n borderRadius,\n borderWidth,\n borderTopWidth,\n borderRightWidth,\n borderBottomWidth,\n borderLeftWidth,\n borderColor: borderCol,\n ...styleProp\n } = StyleSheet.flatten(style || {}) as ViewStyle & { height?: number };\n\n return (\n <View style={[styles.container, styleProp]}>\n {leftIconName && leftIconMode === \"outset\" ? (\n <Icon {...leftIconProps} style={leftIconStyle} />\n ) : null}\n <View\n style={applyStyles([containerStyle], {\n height: style?.height,\n backgroundColor: bgColor,\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n borderRadius,\n borderWidth,\n borderTopWidth,\n borderRightWidth,\n borderBottomWidth,\n borderLeftWidth,\n borderColor: borderCol,\n })}\n >\n {type === \"underline\" ? (\n // When type === 'flat', render an underline\n <Animated.View\n style={[\n styles.underline,\n {\n backgroundColor:\n bgColor ||\n (error\n ? colors.error\n : this.state.focused\n ? activeColor\n : underlineColor),\n // Underlines is thinner when input is not focused\n transform: [{ scaleY: this.state.focused ? 1 : 0.5 }],\n },\n ]}\n />\n ) : null}\n\n {label ? (\n // Position colored placeholder and gray placeholder on top of each other and crossfade them\n // This gives the effect of animating the color, but allows us to use native driver\n <View\n pointerEvents=\"none\"\n style={[\n StyleSheet.absoluteFill,\n {\n opacity:\n // Hide the label in minimized state until we measure its width\n this.state.value || this.state.focused\n ? this.state.labelLayout.measured\n ? 1\n : 0\n : 1,\n },\n ]}\n >\n <AnimatedText\n onLayout={(e: LayoutChangeEvent) =>\n this.setState({\n labelLayout: {\n width: e.nativeEvent.layout.width,\n measured: true,\n },\n })\n }\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: placeholderColor,\n opacity: this.state.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0],\n }),\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n <AnimatedText\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: placeholderColor,\n opacity: hasActiveOutline ? this.state.labeled : 1,\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n </View>\n ) : null}\n\n {leftIconName && leftIconMode === \"inset\" ? (\n <Icon\n {...leftIconProps}\n style={{\n ...leftIconStyle,\n marginLeft: type === \"solid\" ? 16 : 0,\n }}\n />\n ) : null}\n\n {render({\n ref: (c: NativeTextInput) => {\n this._root = c;\n },\n onChange: this._handleChangeText,\n placeholder: label\n ? this.state.placeholder\n : this.props.placeholder,\n placeholderTextColor: placeholderColor,\n editable: !disabled,\n selectionColor: activeColor,\n multiline,\n numberOfLines,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n underlineColorAndroid: \"transparent\",\n style: inputStyles,\n ...rest,\n value: this.state.value,\n })}\n </View>\n {rightIconName ? (\n <Icon\n name={rightIconName}\n size={ICON_SIZE}\n color={colors.light}\n style={{\n position: \"absolute\",\n right: 16,\n marginTop: type === \"solid\" ? MINIMIZED_LABEL_FONT_SIZE + 4 : 16,\n }}\n />\n ) : null}\n\n {assistiveText ? (\n <Text\n style={[\n {\n color: error ? colors.error : colors.light,\n marginTop: 8,\n marginLeft: assistiveTextLeftMargin,\n },\n ]}\n >\n {assistiveText}\n </Text>\n ) : null}\n </View>\n );\n }\n}\n\nexport default withTheme(TextField);\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n placeholder: {\n position: \"absolute\",\n left: 0,\n },\n underline: {\n position: \"absolute\",\n left: 0,\n right: 0,\n bottom: 0,\n height: 2,\n },\n input: {\n flexGrow: 1,\n justifyContent: \"center\",\n textAlignVertical: \"center\",\n margin: 0,\n textAlign: I18nManager.isRTL ? \"right\" : \"left\",\n },\n});\n"]}
1
+ {"version":3,"sources":["TextField.tsx"],"names":["AnimatedText","Animated","createAnimatedComponent","Text","FOCUS_ANIMATION_DURATION","BLUR_ANIMATION_DURATION","ICON_SIZE","TextField","React","Component","labeled","Value","props","value","error","focused","placeholder","labelLayout","measured","width","setTimeout","clearTimeout","_timer","setState","timing","state","toValue","duration","useNativeDriver","start","disabled","onChangeText","nativeEvent","text","undefined","getDerivedStateFromProps","nextProps","prevState","componentDidMount","defaultValue","_handleChangeText","_minmizeLabel","componentDidUpdate","prevProps","_restoreLabel","label","_showPlaceholder","_hidePlaceholder","componentWillUnmount","toggleFocus","setNativeProps","args","_root","isFocused","clear","focus","blur","render","Icon","type","leftIconName","leftIconMode","rightIconName","assistiveText","underlineColor","underlineColorProp","multiline","numberOfLines","style","theme","colors","typography","roundness","disabledOpacity","rest","MINIMIZED_LABEL_Y_OFFSET","caption","lineHeight","OUTLINE_MINIMIZED_LABEL_Y_OFFSET","MAXIMIZED_LABEL_FONT_SIZE","subtitle1","fontSize","MINIMIZED_LABEL_FONT_SIZE","hasActiveOutline","inputTextColor","activeColor","borderColor","placeholderColor","containerStyle","backgroundColor","inputStyle","strong","light","divider","primary","background","placeholderTextColor","paddingVertical","color","paddingLeft","paddingRight","height","assistiveTextLeftMargin","borderTopLeftRadius","borderTopRightRadius","paddingBottom","marginTop","borderRadius","borderWidth","paddingTop","opacity","paddingHorizontal","marginLeft","leftIconColor","leftIconProps","size","name","leftIconStyle","position","labelStyle","top","left","transform","translateY","interpolate","inputRange","outputRange","scale","translateX","textStyles","inputStyles","styles","input","marginHorizontal","bgColor","padding","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderCol","styleProp","StyleSheet","flatten","container","underline","scaleY","absoluteFill","e","layout","justifyContent","ref","c","onChange","editable","selectionColor","onFocus","_handleFocus","onBlur","_handleBlur","underlineColorAndroid","right","create","alignSelf","bottom","flexGrow","textAlignVertical","margin","textAlign","I18nManager","isRTL"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n Animated,\n TextInput as NativeTextInput,\n StyleSheet,\n Text,\n I18nManager,\n StyleProp,\n TextInputProps,\n NativeSyntheticEvent,\n TextInputChangeEventData,\n ViewStyle,\n TextStyle,\n LayoutChangeEvent,\n ImageStyle,\n} from \"react-native\";\nimport { withTheme } from \"../theming\";\nimport type { Theme } from \"../styles/DefaultTheme\";\nimport type { IconSlot } from \"../interfaces/Icon\";\nimport { applyStyles, extractStyles } from \"../utilities\";\n\nconst AnimatedText = Animated.createAnimatedComponent(Text);\n\nconst FOCUS_ANIMATION_DURATION = 150;\nconst BLUR_ANIMATION_DURATION = 180;\nconst ICON_SIZE = 24;\n\nexport type Props = {\n type?: \"solid\" | \"underline\";\n defaultValue?: string;\n disabled?: boolean;\n label?: string;\n error?: boolean;\n leftIconName?: string;\n leftIconMode?: \"inset\" | \"outset\";\n onChangeText: (\n text: string | NativeSyntheticEvent<TextInputChangeEventData>\n ) => void;\n rightIconName?: string;\n assistiveText?: string;\n multiline?: boolean;\n numberOfLines: number;\n underlineColor?: string;\n style?: StyleProp<ViewStyle> & { height?: number };\n theme: Theme;\n render?: (\n props: TextInputProps & { ref: (c: NativeTextInput) => void }\n ) => React.ReactNode;\n} & TextInputProps &\n IconSlot;\n\ninterface State {\n labeled: Animated.Value;\n focused?: boolean;\n placeholder?: string | undefined;\n labelLayout: {\n measured: boolean;\n width: number;\n };\n value?: string;\n}\n\nclass TextField extends React.Component<Props, State> {\n static getDerivedStateFromProps(nextProps: Props, prevState: State) {\n return {\n value:\n typeof nextProps.value !== \"undefined\"\n ? nextProps.value\n : prevState.value,\n };\n }\n\n state: State = {\n labeled: new Animated.Value(this.props.value || this.props.error ? 0 : 1),\n focused: false,\n placeholder: this.props.error ? this.props.placeholder : \"\",\n labelLayout: {\n measured: false,\n width: 0,\n },\n };\n\n componentDidMount() {\n if (this.props.defaultValue) {\n this._handleChangeText(this.props.defaultValue);\n }\n\n if (this.props.placeholder) {\n this._minmizeLabel();\n }\n }\n\n componentDidUpdate(prevProps: Props, prevState: State) {\n if (\n prevState.focused !== this.state.focused ||\n prevState.value !== this.state.value\n ) {\n // The label should be minimized if the text input is focused, or has text\n // In minimized mode, the label moves up and becomes small\n if (\n this.state.value ||\n this.state.focused ||\n this.props.error ||\n this.props.placeholder\n ) {\n this._minmizeLabel();\n } else {\n this._restoreLabel();\n }\n }\n\n if (\n prevState.focused !== this.state.focused ||\n prevProps.label !== this.props.label\n ) {\n // Show placeholder text only if the input is focused, or has error, or there's no label\n // We don't show placeholder if there's a label because the label acts as placeholder\n // When focused, the label moves up, so we can show a placeholder\n if (this.state.focused || this.props.error || !this.props.label) {\n this._showPlaceholder();\n } else {\n this._hidePlaceholder();\n }\n }\n }\n\n _timer = setTimeout(() => {}, 0);\n\n componentWillUnmount() {\n clearTimeout(this._timer);\n }\n\n _showPlaceholder = () => {\n clearTimeout(this._timer);\n\n // Set the placeholder in a delay to offset the label animation\n // If we show it immediately, they'll overlap and look ugly\n this._timer = setTimeout(\n () =>\n this.setState({\n placeholder: this.props.placeholder,\n }),\n 50\n );\n };\n\n _hidePlaceholder = () =>\n this.setState({\n placeholder: \"\",\n });\n\n _restoreLabel = () =>\n Animated.timing(this.state.labeled, {\n toValue: 1,\n duration: FOCUS_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n\n _minmizeLabel = () =>\n Animated.timing(this.state.labeled, {\n toValue: 0,\n duration: BLUR_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start();\n\n _handleFocus = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focused: true });\n };\n\n _handleBlur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ focused: false });\n };\n\n _handleChangeText = (\n value: NativeSyntheticEvent<TextInputChangeEventData> | string\n ) => {\n if (this.props.disabled) {\n return;\n }\n\n if (typeof value === \"string\") {\n this.setState({ value });\n this.props.onChangeText && this.props.onChangeText(value);\n } else {\n this.setState({ value: value.nativeEvent.text });\n this.props.onChangeText &&\n this.props.onChangeText(value.nativeEvent.text);\n }\n };\n\n toggleFocus() {\n this.setState((prevState: State) => ({ focused: !prevState.focused }));\n }\n\n _root: NativeTextInput | undefined = undefined;\n /**\n * @internal\n */\n setNativeProps(args: Props) {\n return this._root && this._root.setNativeProps(args);\n }\n\n isFocused() {\n return this._root && this._root.isFocused();\n }\n\n clear() {\n return this._root && this._root.clear();\n }\n\n focus() {\n return this._root && this._root.focus();\n }\n\n blur() {\n return this._root && this._root.blur();\n }\n\n render() {\n const {\n Icon,\n type = \"underline\",\n disabled = false,\n label,\n error = false,\n leftIconName,\n leftIconMode,\n rightIconName,\n assistiveText,\n underlineColor: underlineColorProp,\n multiline = false,\n numberOfLines = 4,\n style,\n theme: { colors, typography, roundness, disabledOpacity },\n render = (props) => <NativeTextInput {...props} />,\n ...rest\n } = this.props;\n\n const MINIMIZED_LABEL_Y_OFFSET = -(typography.caption.lineHeight + 4);\n const OUTLINE_MINIMIZED_LABEL_Y_OFFSET = -(16 * 0.5 + 4);\n const MAXIMIZED_LABEL_FONT_SIZE = typography.subtitle1.fontSize;\n const MINIMIZED_LABEL_FONT_SIZE = typography.caption.fontSize;\n\n const hasActiveOutline = this.state.focused || error;\n\n let inputTextColor,\n activeColor,\n underlineColor,\n borderColor,\n placeholderColor,\n containerStyle: StyleProp<ViewStyle>,\n backgroundColor,\n inputStyle: StyleProp<TextStyle>;\n\n inputTextColor = colors.strong;\n if (disabled) {\n activeColor = colors.light;\n placeholderColor = colors.light;\n borderColor = \"transparent\";\n underlineColor = \"transparent\";\n backgroundColor = colors.divider;\n } else {\n activeColor = error ? colors.error : colors.primary;\n placeholderColor = borderColor = colors.light;\n underlineColor = underlineColorProp;\n backgroundColor = colors.background;\n }\n\n if (rest.placeholderTextColor) {\n placeholderColor = rest.placeholderTextColor;\n }\n\n const { lineHeight, ...subtitle1 } = typography.subtitle1;\n\n inputStyle = {\n paddingVertical: 0,\n color: inputTextColor,\n paddingLeft:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + 12 + (type === \"solid\" ? 16 : 0)\n : 0,\n paddingRight: rightIconName ? ICON_SIZE + 16 + 4 : 12,\n ...subtitle1,\n };\n\n if (!multiline) {\n inputStyle.height = lineHeight;\n }\n\n let assistiveTextLeftMargin;\n if (type === \"underline\") {\n containerStyle = {\n borderTopLeftRadius: roundness,\n borderTopRightRadius: roundness,\n paddingBottom: 12,\n marginTop: 16,\n };\n\n if (leftIconName && leftIconMode === \"outset\") {\n assistiveTextLeftMargin = ICON_SIZE + 8;\n } else {\n assistiveTextLeftMargin = 0;\n }\n } else {\n containerStyle = {\n borderRadius: roundness,\n borderColor: hasActiveOutline ? activeColor : borderColor,\n borderWidth: 1,\n paddingTop: label ? 16 * 1.5 : 16,\n paddingBottom: label ? 16 * 0.5 : 16,\n opacity: disabled ? disabledOpacity : 1,\n backgroundColor,\n };\n\n if (leftIconName && leftIconMode === \"inset\") {\n assistiveTextLeftMargin = 16 + 4;\n } else if (leftIconName && leftIconMode === \"outset\") {\n assistiveTextLeftMargin = ICON_SIZE + 8 + 12;\n } else {\n assistiveTextLeftMargin = 12;\n }\n\n inputStyle.paddingHorizontal = 12;\n }\n\n if (leftIconName && leftIconMode === \"outset\") {\n containerStyle.marginLeft = ICON_SIZE + 8;\n }\n\n let leftIconColor;\n if (error) {\n leftIconColor = colors.error;\n } else if (this.state.focused) {\n leftIconColor = colors.primary;\n } else {\n leftIconColor = colors.light;\n }\n\n const leftIconProps = {\n size: 24,\n color: leftIconColor,\n name: leftIconName || \"\",\n };\n\n const leftIconStyle: ImageStyle = {\n position: \"absolute\",\n marginTop:\n type === \"solid\"\n ? MINIMIZED_LABEL_FONT_SIZE + 4\n : leftIconMode === \"outset\"\n ? 16\n : 0,\n marginLeft: leftIconMode === \"inset\" && type === \"solid\" ? 16 : 0,\n };\n\n const labelStyle = {\n ...typography.subtitle1,\n top: type === \"solid\" ? 16 : 0,\n left:\n leftIconName && leftIconMode === \"inset\"\n ? ICON_SIZE + (type === \"solid\" ? 16 : 12)\n : 0,\n transform: [\n {\n // Move label to top\n translateY: this.state.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n type === \"solid\"\n ? OUTLINE_MINIMIZED_LABEL_Y_OFFSET\n : MINIMIZED_LABEL_Y_OFFSET,\n 0,\n ],\n }),\n },\n {\n // Make label smaller\n scale: this.state.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE,\n 1,\n ],\n }),\n },\n {\n // Offset label scale since RN doesn't support transform origin\n translateX: this.state.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [\n -(1 - MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE) *\n (this.state.labelLayout.width / 2),\n 0,\n ],\n }),\n },\n ],\n };\n\n const { textStyles } = extractStyles(style);\n const inputStyles = applyStyles(\n [\n styles.input,\n inputStyle,\n type === \"solid\" ? { marginHorizontal: 12 } : {},\n ],\n textStyles\n );\n\n const {\n backgroundColor: bgColor,\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n borderRadius,\n borderWidth,\n borderTopWidth,\n borderRightWidth,\n borderBottomWidth,\n borderLeftWidth,\n borderColor: borderCol,\n ...styleProp\n } = StyleSheet.flatten(style || {}) as ViewStyle & { height?: number };\n\n return (\n <View style={[styles.container, styleProp]}>\n {leftIconName && leftIconMode === \"outset\" ? (\n <Icon {...leftIconProps} style={leftIconStyle} />\n ) : null}\n <View\n style={applyStyles([containerStyle], {\n height: style?.height,\n backgroundColor: bgColor,\n padding,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n borderRadius,\n borderWidth,\n borderTopWidth,\n borderRightWidth,\n borderBottomWidth,\n borderLeftWidth,\n borderColor: borderCol,\n })}\n >\n {type === \"underline\" ? (\n // When type === 'flat', render an underline\n <Animated.View\n style={[\n styles.underline,\n {\n backgroundColor:\n bgColor ||\n (error\n ? colors.error\n : this.state.focused\n ? activeColor\n : underlineColor),\n // Underlines is thinner when input is not focused\n transform: [{ scaleY: this.state.focused ? 1 : 0.5 }],\n },\n ]}\n />\n ) : null}\n\n {label ? (\n // Position colored placeholder and gray placeholder on top of each other and crossfade them\n // This gives the effect of animating the color, but allows us to use native driver\n <View\n pointerEvents=\"none\"\n style={[\n StyleSheet.absoluteFill,\n {\n opacity:\n // Hide the label in minimized state until we measure its width\n this.state.value || this.state.focused\n ? this.state.labelLayout.measured\n ? 1\n : 0\n : 1,\n },\n ]}\n >\n <AnimatedText\n onLayout={(e: LayoutChangeEvent) =>\n this.setState({\n labelLayout: {\n width: e.nativeEvent.layout.width,\n measured: true,\n },\n })\n }\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: placeholderColor,\n opacity: this.state.labeled.interpolate({\n inputRange: [0, 1],\n outputRange: [hasActiveOutline ? 1 : 0, 0],\n }),\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n <AnimatedText\n style={[\n styles.placeholder,\n type === \"solid\" ? { paddingHorizontal: 12 } : {},\n labelStyle,\n {\n color: placeholderColor,\n opacity: hasActiveOutline ? this.state.labeled : 1,\n },\n ]}\n numberOfLines={1}\n >\n {label}\n </AnimatedText>\n </View>\n ) : null}\n\n {leftIconName && leftIconMode === \"inset\" ? (\n <View\n style={{\n justifyContent: type === \"solid\" ? \"center\" : undefined,\n }}\n >\n <Icon {...leftIconProps} style={leftIconStyle} />\n </View>\n ) : null}\n\n {render({\n ref: (c: NativeTextInput) => {\n this._root = c;\n },\n onChange: this._handleChangeText,\n placeholder: label\n ? this.state.placeholder\n : this.props.placeholder,\n placeholderTextColor: placeholderColor,\n editable: !disabled,\n selectionColor: activeColor,\n multiline,\n numberOfLines,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n underlineColorAndroid: \"transparent\",\n style: inputStyles,\n ...rest,\n value: this.state.value,\n })}\n </View>\n {rightIconName ? (\n <Icon\n name={rightIconName}\n size={ICON_SIZE}\n color={colors.light}\n style={{\n position: \"absolute\",\n right: 16,\n marginTop: type === \"solid\" ? MINIMIZED_LABEL_FONT_SIZE + 4 : 16,\n }}\n />\n ) : null}\n\n {assistiveText ? (\n <Text\n style={[\n {\n color: error ? colors.error : colors.light,\n marginTop: 8,\n marginLeft: assistiveTextLeftMargin,\n },\n ]}\n >\n {assistiveText}\n </Text>\n ) : null}\n </View>\n );\n }\n}\n\nexport default withTheme(TextField);\n\nconst styles = StyleSheet.create({\n container: {\n alignSelf: \"stretch\",\n },\n placeholder: {\n position: \"absolute\",\n left: 0,\n },\n underline: {\n position: \"absolute\",\n left: 0,\n right: 0,\n bottom: 0,\n height: 2,\n },\n input: {\n flexGrow: 1,\n justifyContent: \"center\",\n textAlignVertical: \"center\",\n margin: 0,\n textAlign: I18nManager.isRTL ? \"right\" : \"left\",\n },\n});\n"]}
@@ -14,8 +14,13 @@ const SEED_DATA = {
14
14
  layout: {
15
15
  minHeight: 50
16
16
  },
17
- triggers: [_types.Triggers.OnPress],
17
+ triggers: [_types.Triggers.OnPress, _types.Triggers.OnCheck, _types.Triggers.OnUncheck],
18
18
  props: {
19
+ fieldName: (0, _types.createFieldNameProp)({
20
+ defaultValue: "checkboxRowValue",
21
+ valuePropName: "value",
22
+ handlerPropName: "onPress"
23
+ }),
19
24
  label: (0, _types.createTextProp)({
20
25
  label: "Label",
21
26
  description: "Label to show with the checkbox",
@@ -29,17 +34,31 @@ const SEED_DATA = {
29
34
  editable: false
30
35
  }),
31
36
  direction: (0, _types.createRowDirectionProp)(),
32
- fieldName: (0, _types.createFieldNameProp)({
33
- defaultValue: "checkboxRowValue",
34
- valuePropName: "value",
35
- handlerPropName: "onPress"
36
- }),
37
37
  color: (0, _types.createColorProp)({
38
38
  description: "Color for the button (used when the checkbox is checked)"
39
39
  }),
40
40
  uncheckedColor: (0, _types.createColorProp)({
41
41
  label: "Unselected Color",
42
42
  description: "Color for the button when the checkbox is unchecked"
43
+ }),
44
+ disabled: (0, _types.createBoolProp)({
45
+ label: "Disabled",
46
+ description: "Whether the checkbox is disabled"
47
+ }),
48
+ size: (0, _types.createStaticNumberProp)({
49
+ label: "Size",
50
+ description: "Specifies the size of the icon",
51
+ defaultValue: null
52
+ }),
53
+ checkedIcon: (0, _types.createIconProp)({
54
+ label: "Checked Icon",
55
+ description: 'Icon to show when the checkbox status is "checked"',
56
+ defaultValue: null
57
+ }),
58
+ uncheckedIcon: (0, _types.createIconProp)({
59
+ label: "Unchecked Icon",
60
+ description: 'Icon to show when the checkbox status is "unchecked"',
61
+ defaultValue: null
43
62
  })
44
63
  }
45
64
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["CheckboxRow.ts"],"names":["SEED_DATA","name","tag","category","COMPONENT_TYPES","input","layout","minHeight","triggers","Triggers","OnPress","props","label","description","required","defaultValue","labelStyle","editable","direction","fieldName","valuePropName","handlerPropName","color","uncheckedColor"],"mappings":";;;;;;;AAAA;;AAUO,MAAMA,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,cADiB;AAEvBC,EAAAA,GAAG,EAAE,aAFkB;AAGvBC,EAAAA,QAAQ,EAAEC,uBAAgBC,KAHH;AAIvBC,EAAAA,MAAM,EAAE;AACNC,IAAAA,SAAS,EAAE;AADL,GAJe;AAOvBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,OAAV,CAPa;AAQvBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAE,2BAAe;AACpBA,MAAAA,KAAK,EAAE,OADa;AAEpBC,MAAAA,WAAW,EAAE,iCAFO;AAGpBC,MAAAA,QAAQ,EAAE,IAHU;AAIpBC,MAAAA,YAAY,EAAE;AAJM,KAAf,CADF;AAOLC,IAAAA,UAAU,EAAE,4BAAgB;AAC1BJ,MAAAA,KAAK,EAAE,aADmB;AAE1BC,MAAAA,WAAW,EAAE,gCAFa;AAG1BC,MAAAA,QAAQ,EAAE,KAHgB;AAI1BG,MAAAA,QAAQ,EAAE;AAJgB,KAAhB,CAPP;AAaLC,IAAAA,SAAS,EAAE,oCAbN;AAcLC,IAAAA,SAAS,EAAE,gCAAoB;AAC7BJ,MAAAA,YAAY,EAAE,kBADe;AAE7BK,MAAAA,aAAa,EAAE,OAFc;AAG7BC,MAAAA,eAAe,EAAE;AAHY,KAApB,CAdN;AAmBLC,IAAAA,KAAK,EAAE,4BAAgB;AACrBT,MAAAA,WAAW,EAAE;AADQ,KAAhB,CAnBF;AAsBLU,IAAAA,cAAc,EAAE,4BAAgB;AAC9BX,MAAAA,KAAK,EAAE,kBADuB;AAE9BC,MAAAA,WAAW,EAAE;AAFiB,KAAhB;AAtBX;AARgB,CAAlB","sourcesContent":["import {\n createTextProp,\n createTextStyle,\n createRowDirectionProp,\n createFieldNameProp,\n COMPONENT_TYPES,\n Triggers,\n createColorProp,\n} from \"@draftbit/types\";\n\nexport const SEED_DATA = {\n name: \"Checkbox Row\",\n tag: \"CheckboxRow\",\n category: COMPONENT_TYPES.input,\n layout: {\n minHeight: 50,\n },\n triggers: [Triggers.OnPress],\n props: {\n label: createTextProp({\n label: \"Label\",\n description: \"Label to show with the checkbox\",\n required: true,\n defaultValue: \"First Option\",\n }),\n labelStyle: createTextStyle({\n label: \"Label Style\",\n description: \"Change the styles of the label\",\n required: false,\n editable: false,\n }),\n direction: createRowDirectionProp(),\n fieldName: createFieldNameProp({\n defaultValue: \"checkboxRowValue\",\n valuePropName: \"value\",\n handlerPropName: \"onPress\",\n }),\n color: createColorProp({\n description: \"Color for the button (used when the checkbox is checked)\",\n }),\n uncheckedColor: createColorProp({\n label: \"Unselected Color\",\n description: \"Color for the button when the checkbox is unchecked\",\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["CheckboxRow.ts"],"names":["SEED_DATA","name","tag","category","COMPONENT_TYPES","input","layout","minHeight","triggers","Triggers","OnPress","OnCheck","OnUncheck","props","fieldName","defaultValue","valuePropName","handlerPropName","label","description","required","labelStyle","editable","direction","color","uncheckedColor","disabled","size","checkedIcon","uncheckedIcon"],"mappings":";;;;;;;AAAA;;AAaO,MAAMA,SAAS,GAAG;AACvBC,EAAAA,IAAI,EAAE,cADiB;AAEvBC,EAAAA,GAAG,EAAE,aAFkB;AAGvBC,EAAAA,QAAQ,EAAEC,uBAAgBC,KAHH;AAIvBC,EAAAA,MAAM,EAAE;AACNC,IAAAA,SAAS,EAAE;AADL,GAJe;AAOvBC,EAAAA,QAAQ,EAAE,CAACC,gBAASC,OAAV,EAAmBD,gBAASE,OAA5B,EAAqCF,gBAASG,SAA9C,CAPa;AAQvBC,EAAAA,KAAK,EAAE;AACLC,IAAAA,SAAS,EAAE,gCAAoB;AAC7BC,MAAAA,YAAY,EAAE,kBADe;AAE7BC,MAAAA,aAAa,EAAE,OAFc;AAG7BC,MAAAA,eAAe,EAAE;AAHY,KAApB,CADN;AAMLC,IAAAA,KAAK,EAAE,2BAAe;AACpBA,MAAAA,KAAK,EAAE,OADa;AAEpBC,MAAAA,WAAW,EAAE,iCAFO;AAGpBC,MAAAA,QAAQ,EAAE,IAHU;AAIpBL,MAAAA,YAAY,EAAE;AAJM,KAAf,CANF;AAYLM,IAAAA,UAAU,EAAE,4BAAgB;AAC1BH,MAAAA,KAAK,EAAE,aADmB;AAE1BC,MAAAA,WAAW,EAAE,gCAFa;AAG1BC,MAAAA,QAAQ,EAAE,KAHgB;AAI1BE,MAAAA,QAAQ,EAAE;AAJgB,KAAhB,CAZP;AAkBLC,IAAAA,SAAS,EAAE,oCAlBN;AAmBLC,IAAAA,KAAK,EAAE,4BAAgB;AACrBL,MAAAA,WAAW,EAAE;AADQ,KAAhB,CAnBF;AAsBLM,IAAAA,cAAc,EAAE,4BAAgB;AAC9BP,MAAAA,KAAK,EAAE,kBADuB;AAE9BC,MAAAA,WAAW,EAAE;AAFiB,KAAhB,CAtBX;AA0BLO,IAAAA,QAAQ,EAAE,2BAAe;AACvBR,MAAAA,KAAK,EAAE,UADgB;AAEvBC,MAAAA,WAAW,EAAE;AAFU,KAAf,CA1BL;AA8BLQ,IAAAA,IAAI,EAAE,mCAAuB;AAC3BT,MAAAA,KAAK,EAAE,MADoB;AAE3BC,MAAAA,WAAW,EAAE,gCAFc;AAG3BJ,MAAAA,YAAY,EAAE;AAHa,KAAvB,CA9BD;AAmCLa,IAAAA,WAAW,EAAE,2BAAe;AAC1BV,MAAAA,KAAK,EAAE,cADmB;AAE1BC,MAAAA,WAAW,EAAE,oDAFa;AAG1BJ,MAAAA,YAAY,EAAE;AAHY,KAAf,CAnCR;AAwCLc,IAAAA,aAAa,EAAE,2BAAe;AAC5BX,MAAAA,KAAK,EAAE,gBADqB;AAE5BC,MAAAA,WAAW,EAAE,sDAFe;AAG5BJ,MAAAA,YAAY,EAAE;AAHc,KAAf;AAxCV;AARgB,CAAlB","sourcesContent":["import {\n createBoolProp,\n createTextProp,\n createTextStyle,\n createRowDirectionProp,\n createFieldNameProp,\n createIconProp,\n createStaticNumberProp,\n COMPONENT_TYPES,\n Triggers,\n createColorProp,\n} from \"@draftbit/types\";\n\nexport const SEED_DATA = {\n name: \"Checkbox Row\",\n tag: \"CheckboxRow\",\n category: COMPONENT_TYPES.input,\n layout: {\n minHeight: 50,\n },\n triggers: [Triggers.OnPress, Triggers.OnCheck, Triggers.OnUncheck],\n props: {\n fieldName: createFieldNameProp({\n defaultValue: \"checkboxRowValue\",\n valuePropName: \"value\",\n handlerPropName: \"onPress\",\n }),\n label: createTextProp({\n label: \"Label\",\n description: \"Label to show with the checkbox\",\n required: true,\n defaultValue: \"First Option\",\n }),\n labelStyle: createTextStyle({\n label: \"Label Style\",\n description: \"Change the styles of the label\",\n required: false,\n editable: false,\n }),\n direction: createRowDirectionProp(),\n color: createColorProp({\n description: \"Color for the button (used when the checkbox is checked)\",\n }),\n uncheckedColor: createColorProp({\n label: \"Unselected Color\",\n description: \"Color for the button when the checkbox is unchecked\",\n }),\n disabled: createBoolProp({\n label: \"Disabled\",\n description: \"Whether the checkbox is disabled\",\n }),\n size: createStaticNumberProp({\n label: \"Size\",\n description: \"Specifies the size of the icon\",\n defaultValue: null,\n }),\n checkedIcon: createIconProp({\n label: \"Checked Icon\",\n description: 'Icon to show when the checkbox status is \"checked\"',\n defaultValue: null,\n }),\n uncheckedIcon: createIconProp({\n label: \"Unchecked Icon\",\n description: 'Icon to show when the checkbox status is \"unchecked\"',\n defaultValue: null,\n }),\n },\n};\n"]}
@@ -45,9 +45,9 @@ const AccordionGroup = _ref => {
45
45
  style: styles.content
46
46
  }, /*#__PURE__*/React.createElement(Text, {
47
47
  selectable: false,
48
- style: [{
48
+ style: [textStyles, {
49
49
  color: labelColor
50
- }, textStyles]
50
+ }]
51
51
  }, label)), /*#__PURE__*/React.createElement(Icon, {
52
52
  name: expanded ? "MaterialIcons/keyboard-arrow-up" : "MaterialIcons/keyboard-arrow-down",
53
53
  color: caretColor,
@@ -1 +1 @@
1
- {"version":3,"sources":["AccordionGroup.tsx"],"names":["React","View","StyleSheet","Pressable","Text","withTheme","extractStyles","AccordionGroup","Icon","openColor","closedColor","caretColor","icon","iconSize","style","label","children","expanded","expandedProp","theme","setExpanded","useState","handlePressAction","expandedInternal","undefined","expandedColor","colors","primary","collapsedColor","labelColor","textStyles","viewStyles","styles","row","content","color","create","flexDirection","alignItems","flex","justifyContent","marginRight"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,IADF,EAEEC,UAFF,EAKEC,SALF,QAMO,cANP;AAOA,OAAOC,IAAP,MAAiB,SAAjB;AACA,SAASC,SAAT,QAA0B,eAA1B;AAGA,SAASC,aAAT,QAA8B,iBAA9B;;AAeA,MAAMC,cAAc,GAAG,QAYV;AAAA,MAZW;AACtBC,IAAAA,IADsB;AAEtBC,IAAAA,SAFsB;AAGtBC,IAAAA,WAHsB;AAItBC,IAAAA,UAJsB;AAKtBC,IAAAA,IALsB;AAMtBC,IAAAA,QAAQ,GAAG,EANW;AAOtBC,IAAAA,KAPsB;AAQtBC,IAAAA,KARsB;AAStBC,IAAAA,QATsB;AAUtBC,IAAAA,QAAQ,EAAEC,YAVY;AAWtBC,IAAAA;AAXsB,GAYX;AACX,QAAM,CAACF,QAAD,EAAWG,WAAX,IAA0BpB,KAAK,CAACqB,QAAN,CAC9BH,YAAY,IAAI,KADc,CAAhC;;AAIA,QAAMI,iBAAiB,GAAG,MAAM;AAC9BF,IAAAA,WAAW,CAAC,CAACH,QAAF,CAAX;AACD,GAFD;;AAIA,QAAMM,gBAAgB,GAAGL,YAAY,KAAKM,SAAjB,GAA6BN,YAA7B,GAA4CD,QAArE;AAEA,QAAMQ,aAAa,GAAGhB,SAAS,IAAIU,KAAK,CAACO,MAAN,CAAaC,OAAhD;AACA,QAAMC,cAAc,GAAGlB,WAAW,IAAIS,KAAK,CAACO,MAAN,CAAaC,OAAnD;AAEA,QAAME,UAAU,GAAGZ,QAAQ,GAAGQ,aAAH,GAAmBG,cAA9C;AAEA,QAAM;AAAEE,IAAAA,UAAF;AAAcC,IAAAA;AAAd,MAA6BzB,aAAa,CAACQ,KAAD,CAAhD;AAEA,sBACE,uDACE,oBAAC,SAAD;AACE,IAAA,KAAK,EAAE,CAACkB,MAAM,CAACC,GAAR,EAAaF,UAAb,CADT;AAEE,IAAA,OAAO,EAAET,iBAFX;AAGE,IAAA,iBAAiB,EAAC;AAHpB,KAKGV,IAAI,gBACH,oBAAC,IAAD;AACE,IAAA,IAAI,EAAEA,IADR;AAEE,IAAA,IAAI,EAAEC,QAFR;AAGE,IAAA,KAAK,EAAEgB,UAHT;AAIE,IAAA,KAAK,EAAEG,MAAM,CAACpB;AAJhB,IADG,GAOD,IAZN,eAaE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEoB,MAAM,CAACE;AAApB,kBACE,oBAAC,IAAD;AACE,IAAA,UAAU,EAAE,KADd;AAEE,IAAA,KAAK,EAAE,CACL;AACEC,MAAAA,KAAK,EAAEN;AADT,KADK,EAILC,UAJK;AAFT,KASGf,KATH,CADF,CAbF,eA0BE,oBAAC,IAAD;AACE,IAAA,IAAI,EACFE,QAAQ,GACJ,iCADI,GAEJ,mCAJR;AAME,IAAA,KAAK,EAAEN,UANT;AAOE,IAAA,IAAI,EAAE;AAPR,IA1BF,CADF,EAqCGY,gBAAgB,GAAGP,QAAH,GAAc,IArCjC,CADF;AAyCD,CAvED;;AAyEA,MAAMgB,MAAM,GAAG9B,UAAU,CAACkC,MAAX,CAAkB;AAC/BH,EAAAA,GAAG,EAAE;AACHI,IAAAA,aAAa,EAAE,KADZ;AAEHC,IAAAA,UAAU,EAAE;AAFT,GAD0B;AAK/BJ,EAAAA,OAAO,EAAE;AACPK,IAAAA,IAAI,EAAE,CADC;AAEPC,IAAAA,cAAc,EAAE;AAFT,GALsB;AAS/B5B,EAAAA,IAAI,EAAE;AACJ6B,IAAAA,WAAW,EAAE;AADT;AATyB,CAAlB,CAAf;AAcA,eAAepC,SAAS,CAACE,cAAD,CAAxB","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n StyleProp,\n TextStyle,\n Pressable,\n} from \"react-native\";\nimport Text from \"../Text\";\nimport { withTheme } from \"../../theming\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport { extractStyles } from \"../../utilities\";\n\ntype Props = {\n openColor: string;\n closedColor: string;\n caretColor: string;\n icon?: string;\n iconSize: number;\n style?: StyleProp<TextStyle>;\n children: React.ReactNode;\n label: string;\n expanded?: boolean;\n theme: Theme;\n} & IconSlot;\n\nconst AccordionGroup = ({\n Icon,\n openColor,\n closedColor,\n caretColor,\n icon,\n iconSize = 24,\n style,\n label,\n children,\n expanded: expandedProp,\n theme,\n}: Props) => {\n const [expanded, setExpanded] = React.useState<boolean>(\n expandedProp || false\n );\n\n const handlePressAction = () => {\n setExpanded(!expanded);\n };\n\n const expandedInternal = expandedProp !== undefined ? expandedProp : expanded;\n\n const expandedColor = openColor || theme.colors.primary;\n const collapsedColor = closedColor || theme.colors.primary;\n\n const labelColor = expanded ? expandedColor : collapsedColor;\n\n const { textStyles, viewStyles } = extractStyles(style);\n\n return (\n <>\n <Pressable\n style={[styles.row, viewStyles]}\n onPress={handlePressAction}\n accessibilityRole=\"button\"\n >\n {icon ? (\n <Icon\n name={icon}\n size={iconSize}\n color={labelColor}\n style={styles.icon}\n />\n ) : null}\n <View style={styles.content}>\n <Text\n selectable={false}\n style={[\n {\n color: labelColor,\n },\n textStyles,\n ]}\n >\n {label}\n </Text>\n </View>\n <Icon\n name={\n expanded\n ? \"MaterialIcons/keyboard-arrow-up\"\n : \"MaterialIcons/keyboard-arrow-down\"\n }\n color={caretColor}\n size={24}\n />\n </Pressable>\n {expandedInternal ? children : null}\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n row: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n content: {\n flex: 1,\n justifyContent: \"center\",\n },\n icon: {\n marginRight: 8,\n },\n});\n\nexport default withTheme(AccordionGroup);\n"]}
1
+ {"version":3,"sources":["AccordionGroup.tsx"],"names":["React","View","StyleSheet","Pressable","Text","withTheme","extractStyles","AccordionGroup","Icon","openColor","closedColor","caretColor","icon","iconSize","style","label","children","expanded","expandedProp","theme","setExpanded","useState","handlePressAction","expandedInternal","undefined","expandedColor","colors","primary","collapsedColor","labelColor","textStyles","viewStyles","styles","row","content","color","create","flexDirection","alignItems","flex","justifyContent","marginRight"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SACEC,IADF,EAEEC,UAFF,EAKEC,SALF,QAMO,cANP;AAOA,OAAOC,IAAP,MAAiB,SAAjB;AACA,SAASC,SAAT,QAA0B,eAA1B;AAGA,SAASC,aAAT,QAA8B,iBAA9B;;AAeA,MAAMC,cAAc,GAAG,QAYV;AAAA,MAZW;AACtBC,IAAAA,IADsB;AAEtBC,IAAAA,SAFsB;AAGtBC,IAAAA,WAHsB;AAItBC,IAAAA,UAJsB;AAKtBC,IAAAA,IALsB;AAMtBC,IAAAA,QAAQ,GAAG,EANW;AAOtBC,IAAAA,KAPsB;AAQtBC,IAAAA,KARsB;AAStBC,IAAAA,QATsB;AAUtBC,IAAAA,QAAQ,EAAEC,YAVY;AAWtBC,IAAAA;AAXsB,GAYX;AACX,QAAM,CAACF,QAAD,EAAWG,WAAX,IAA0BpB,KAAK,CAACqB,QAAN,CAC9BH,YAAY,IAAI,KADc,CAAhC;;AAIA,QAAMI,iBAAiB,GAAG,MAAM;AAC9BF,IAAAA,WAAW,CAAC,CAACH,QAAF,CAAX;AACD,GAFD;;AAIA,QAAMM,gBAAgB,GAAGL,YAAY,KAAKM,SAAjB,GAA6BN,YAA7B,GAA4CD,QAArE;AAEA,QAAMQ,aAAa,GAAGhB,SAAS,IAAIU,KAAK,CAACO,MAAN,CAAaC,OAAhD;AACA,QAAMC,cAAc,GAAGlB,WAAW,IAAIS,KAAK,CAACO,MAAN,CAAaC,OAAnD;AAEA,QAAME,UAAU,GAAGZ,QAAQ,GAAGQ,aAAH,GAAmBG,cAA9C;AAEA,QAAM;AAAEE,IAAAA,UAAF;AAAcC,IAAAA;AAAd,MAA6BzB,aAAa,CAACQ,KAAD,CAAhD;AAEA,sBACE,uDACE,oBAAC,SAAD;AACE,IAAA,KAAK,EAAE,CAACkB,MAAM,CAACC,GAAR,EAAaF,UAAb,CADT;AAEE,IAAA,OAAO,EAAET,iBAFX;AAGE,IAAA,iBAAiB,EAAC;AAHpB,KAKGV,IAAI,gBACH,oBAAC,IAAD;AACE,IAAA,IAAI,EAAEA,IADR;AAEE,IAAA,IAAI,EAAEC,QAFR;AAGE,IAAA,KAAK,EAAEgB,UAHT;AAIE,IAAA,KAAK,EAAEG,MAAM,CAACpB;AAJhB,IADG,GAOD,IAZN,eAaE,oBAAC,IAAD;AAAM,IAAA,KAAK,EAAEoB,MAAM,CAACE;AAApB,kBACE,oBAAC,IAAD;AACE,IAAA,UAAU,EAAE,KADd;AAEE,IAAA,KAAK,EAAE,CACLJ,UADK,EAEL;AACEK,MAAAA,KAAK,EAAEN;AADT,KAFK;AAFT,KASGd,KATH,CADF,CAbF,eA0BE,oBAAC,IAAD;AACE,IAAA,IAAI,EACFE,QAAQ,GACJ,iCADI,GAEJ,mCAJR;AAME,IAAA,KAAK,EAAEN,UANT;AAOE,IAAA,IAAI,EAAE;AAPR,IA1BF,CADF,EAqCGY,gBAAgB,GAAGP,QAAH,GAAc,IArCjC,CADF;AAyCD,CAvED;;AAyEA,MAAMgB,MAAM,GAAG9B,UAAU,CAACkC,MAAX,CAAkB;AAC/BH,EAAAA,GAAG,EAAE;AACHI,IAAAA,aAAa,EAAE,KADZ;AAEHC,IAAAA,UAAU,EAAE;AAFT,GAD0B;AAK/BJ,EAAAA,OAAO,EAAE;AACPK,IAAAA,IAAI,EAAE,CADC;AAEPC,IAAAA,cAAc,EAAE;AAFT,GALsB;AAS/B5B,EAAAA,IAAI,EAAE;AACJ6B,IAAAA,WAAW,EAAE;AADT;AATyB,CAAlB,CAAf;AAcA,eAAepC,SAAS,CAACE,cAAD,CAAxB","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n StyleProp,\n TextStyle,\n Pressable,\n} from \"react-native\";\nimport Text from \"../Text\";\nimport { withTheme } from \"../../theming\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport type { Theme } from \"../../styles/DefaultTheme\";\nimport { extractStyles } from \"../../utilities\";\n\ntype Props = {\n openColor: string;\n closedColor: string;\n caretColor: string;\n icon?: string;\n iconSize: number;\n style?: StyleProp<TextStyle>;\n children: React.ReactNode;\n label: string;\n expanded?: boolean;\n theme: Theme;\n} & IconSlot;\n\nconst AccordionGroup = ({\n Icon,\n openColor,\n closedColor,\n caretColor,\n icon,\n iconSize = 24,\n style,\n label,\n children,\n expanded: expandedProp,\n theme,\n}: Props) => {\n const [expanded, setExpanded] = React.useState<boolean>(\n expandedProp || false\n );\n\n const handlePressAction = () => {\n setExpanded(!expanded);\n };\n\n const expandedInternal = expandedProp !== undefined ? expandedProp : expanded;\n\n const expandedColor = openColor || theme.colors.primary;\n const collapsedColor = closedColor || theme.colors.primary;\n\n const labelColor = expanded ? expandedColor : collapsedColor;\n\n const { textStyles, viewStyles } = extractStyles(style);\n\n return (\n <>\n <Pressable\n style={[styles.row, viewStyles]}\n onPress={handlePressAction}\n accessibilityRole=\"button\"\n >\n {icon ? (\n <Icon\n name={icon}\n size={iconSize}\n color={labelColor}\n style={styles.icon}\n />\n ) : null}\n <View style={styles.content}>\n <Text\n selectable={false}\n style={[\n textStyles,\n {\n color: labelColor,\n },\n ]}\n >\n {label}\n </Text>\n </View>\n <Icon\n name={\n expanded\n ? \"MaterialIcons/keyboard-arrow-up\"\n : \"MaterialIcons/keyboard-arrow-down\"\n }\n color={caretColor}\n size={24}\n />\n </Pressable>\n {expandedInternal ? children : null}\n </>\n );\n};\n\nconst styles = StyleSheet.create({\n row: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n content: {\n flex: 1,\n justifyContent: \"center\",\n },\n icon: {\n marginRight: 8,\n },\n});\n\nexport default withTheme(AccordionGroup);\n"]}
@@ -11,7 +11,7 @@ const Checkbox = _ref => {
11
11
  Icon,
12
12
  status,
13
13
  disabled = false,
14
- onPress = () => {},
14
+ onPress,
15
15
  onCheck,
16
16
  onUncheck,
17
17
  color,
@@ -45,14 +45,14 @@ const Checkbox = _ref => {
45
45
  const handlePress = () => {
46
46
  const newValue = !internalValue;
47
47
  setInternalValue(newValue);
48
- onPress(newValue);
48
+ onPress === null || onPress === void 0 ? void 0 : onPress(newValue);
49
49
 
50
- if (onCheck && newValue) {
51
- onCheck();
50
+ if (newValue) {
51
+ onCheck === null || onCheck === void 0 ? void 0 : onCheck();
52
52
  }
53
53
 
54
- if (onUncheck && !newValue) {
55
- onUncheck();
54
+ if (!newValue) {
55
+ onUncheck === null || onUncheck === void 0 ? void 0 : onUncheck();
56
56
  }
57
57
  };
58
58
 
@@ -1 +1 @@
1
- {"version":3,"sources":["Checkbox.tsx"],"names":["React","View","StyleSheet","useTheme","Touchable","usePrevious","Checkbox","Icon","status","disabled","onPress","onCheck","onUncheck","color","uncheckedColor","defaultValue","checkedIcon","uncheckedIcon","size","style","rest","internalValue","setInternalValue","useState","useEffect","previousDefaultValue","Boolean","colors","checkboxColor","primary","handlePress","newValue","styles","container","width","height","icon","absoluteFill","fillContainer","fill","opacity","borderColor","create","borderRadius","alignItems","justifyContent","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n TouchableHighlightProps,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport { useTheme } from \"../../theming\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport Touchable from \"../Touchable\";\nimport { usePrevious } from \"../../hooks\";\n\nexport interface CheckboxProps {\n status?: boolean;\n disabled?: boolean;\n onPress?: (checked: boolean) => void;\n onCheck?: () => void;\n onUncheck?: () => void;\n color?: string;\n uncheckedColor?: string;\n checkedIcon?: string;\n uncheckedIcon?: string;\n defaultValue?: boolean;\n size?: number;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Checkbox: React.FC<CheckboxProps & TouchableHighlightProps & IconSlot> =\n ({\n Icon,\n status,\n disabled = false,\n onPress = () => {},\n onCheck,\n onUncheck,\n color,\n uncheckedColor,\n defaultValue,\n checkedIcon = \"MaterialCommunityIcons/checkbox-marked\",\n uncheckedIcon = \"MaterialCommunityIcons/checkbox-blank-outline\",\n size = 24,\n style,\n ...rest\n }) => {\n const [internalValue, setInternalValue] = React.useState<boolean>(\n status || defaultValue || false\n );\n\n React.useEffect(() => {\n if (status != null) {\n setInternalValue(status);\n }\n }, [status]);\n\n // This special logic is to handle weird APIs like Airtable that return\n // true or undefined for a boolean\n const previousDefaultValue = usePrevious(defaultValue) as\n | boolean\n | undefined;\n React.useEffect(() => {\n if (defaultValue !== previousDefaultValue) {\n setInternalValue(Boolean(defaultValue));\n }\n }, [defaultValue, previousDefaultValue]);\n\n const { colors } = useTheme();\n\n const checkboxColor = internalValue\n ? color || colors.primary\n : uncheckedColor || colors.primary;\n\n const handlePress = () => {\n const newValue = !internalValue;\n setInternalValue(newValue);\n onPress(newValue);\n\n if (onCheck && newValue) {\n onCheck();\n }\n\n if (onUncheck && !newValue) {\n onUncheck();\n }\n };\n\n return (\n <Touchable\n {...rest}\n onPress={handlePress}\n disabled={disabled}\n accessibilityState={{ disabled }}\n accessibilityRole=\"button\"\n accessibilityLiveRegion=\"polite\"\n style={[styles.container, style, { width: size, height: size }]}\n >\n <Icon\n style={styles.icon}\n name={internalValue ? checkedIcon : uncheckedIcon}\n size={size}\n color={checkboxColor}\n />\n <View style={[StyleSheet.absoluteFill, styles.fillContainer]}>\n <View\n style={[\n styles.fill,\n { opacity: disabled ? 0.5 : 1 },\n { borderColor: checkboxColor },\n ]}\n />\n </View>\n </Touchable>\n );\n };\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n },\n fillContainer: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n icon: {\n alignSelf: \"center\",\n },\n fill: {\n borderRadius: 5,\n width: 30,\n height: 30,\n alignSelf: \"center\",\n },\n});\n\nexport default Checkbox;\n"]}
1
+ {"version":3,"sources":["Checkbox.tsx"],"names":["React","View","StyleSheet","useTheme","Touchable","usePrevious","Checkbox","Icon","status","disabled","onPress","onCheck","onUncheck","color","uncheckedColor","defaultValue","checkedIcon","uncheckedIcon","size","style","rest","internalValue","setInternalValue","useState","useEffect","previousDefaultValue","Boolean","colors","checkboxColor","primary","handlePress","newValue","styles","container","width","height","icon","absoluteFill","fillContainer","fill","opacity","borderColor","create","borderRadius","alignItems","justifyContent","alignSelf"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n View,\n StyleSheet,\n TouchableHighlightProps,\n StyleProp,\n ViewStyle,\n} from \"react-native\";\nimport { useTheme } from \"../../theming\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\n\nimport Touchable from \"../Touchable\";\nimport { usePrevious } from \"../../hooks\";\n\nexport interface CheckboxProps {\n status?: boolean;\n disabled?: boolean;\n onPress?: (checked: boolean) => void;\n onCheck?: () => void;\n onUncheck?: () => void;\n color?: string;\n uncheckedColor?: string;\n checkedIcon?: string;\n uncheckedIcon?: string;\n defaultValue?: boolean;\n size?: number;\n style?: StyleProp<ViewStyle>;\n}\n\nconst Checkbox: React.FC<CheckboxProps & TouchableHighlightProps & IconSlot> =\n ({\n Icon,\n status,\n disabled = false,\n onPress,\n onCheck,\n onUncheck,\n color,\n uncheckedColor,\n defaultValue,\n checkedIcon = \"MaterialCommunityIcons/checkbox-marked\",\n uncheckedIcon = \"MaterialCommunityIcons/checkbox-blank-outline\",\n size = 24,\n style,\n ...rest\n }) => {\n const [internalValue, setInternalValue] = React.useState<boolean>(\n status || defaultValue || false\n );\n\n React.useEffect(() => {\n if (status != null) {\n setInternalValue(status);\n }\n }, [status]);\n\n // This special logic is to handle weird APIs like Airtable that return\n // true or undefined for a boolean\n const previousDefaultValue = usePrevious(defaultValue) as\n | boolean\n | undefined;\n\n React.useEffect(() => {\n if (defaultValue !== previousDefaultValue) {\n setInternalValue(Boolean(defaultValue));\n }\n }, [defaultValue, previousDefaultValue]);\n\n const { colors } = useTheme();\n\n const checkboxColor = internalValue\n ? color || colors.primary\n : uncheckedColor || colors.primary;\n\n const handlePress = () => {\n const newValue = !internalValue;\n\n setInternalValue(newValue);\n onPress?.(newValue);\n\n if (newValue) {\n onCheck?.();\n }\n\n if (!newValue) {\n onUncheck?.();\n }\n };\n\n return (\n <Touchable\n {...rest}\n onPress={handlePress}\n disabled={disabled}\n accessibilityState={{ disabled }}\n accessibilityRole=\"button\"\n accessibilityLiveRegion=\"polite\"\n style={[styles.container, style, { width: size, height: size }]}\n >\n <Icon\n style={styles.icon}\n name={internalValue ? checkedIcon : uncheckedIcon}\n size={size}\n color={checkboxColor}\n />\n <View style={[StyleSheet.absoluteFill, styles.fillContainer]}>\n <View\n style={[\n styles.fill,\n { opacity: disabled ? 0.5 : 1 },\n { borderColor: checkboxColor },\n ]}\n />\n </View>\n </Touchable>\n );\n };\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 18,\n },\n fillContainer: {\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n icon: {\n alignSelf: \"center\",\n },\n fill: {\n borderRadius: 5,\n width: 30,\n height: 30,\n alignSelf: \"center\",\n },\n});\n\nexport default Checkbox;\n"]}
@@ -0,0 +1,120 @@
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
+
3
+ import * as React from "react";
4
+ import { StyleSheet, View, Platform } from "react-native";
5
+ import Checkbox from "./Checkbox";
6
+ import Text from "../Text";
7
+ import { useCheckboxGroupContext } from "./context";
8
+ import { Direction as GroupDirection } from "./context";
9
+ import Touchable from "../Touchable";
10
+ import { extractStyles } from "../../utilities";
11
+ export let Direction;
12
+
13
+ (function (Direction) {
14
+ Direction["Row"] = "row";
15
+ Direction["RowReverse"] = "row-reverse";
16
+ })(Direction || (Direction = {}));
17
+
18
+ const getCheckboxAlignment = (parentDirection, direction) => {
19
+ if (parentDirection === GroupDirection.Horizontal) {
20
+ return direction === Direction.Row ? "flex-start" : "flex-end";
21
+ } else if (direction === Direction.RowReverse) {
22
+ return "flex-start";
23
+ } else {
24
+ return "flex-end";
25
+ }
26
+ };
27
+
28
+ const renderLabel = (value, labelStyle, textStyle) => {
29
+ if (typeof value === "string") {
30
+ return /*#__PURE__*/React.createElement(Text, {
31
+ style: [labelStyle, textStyle]
32
+ }, value);
33
+ } else {
34
+ return /*#__PURE__*/React.createElement(React.Fragment, null, value);
35
+ }
36
+ };
37
+
38
+ const CheckboxGroupRow = _ref => {
39
+ let {
40
+ Icon,
41
+ label = "Label",
42
+ status,
43
+ value,
44
+ onPress,
45
+ labelContainerStyle,
46
+ labelStyle,
47
+ checkboxStyle,
48
+ direction = Direction.Row,
49
+ disabled,
50
+ style,
51
+ color,
52
+ uncheckedColor,
53
+ ...rest
54
+ } = _ref;
55
+ const {
56
+ values: selectedValues,
57
+ onValueChange,
58
+ direction: parentDirection
59
+ } = useCheckboxGroupContext();
60
+ const values = Array.isArray(selectedValues) ? selectedValues : [];
61
+ const isChecked = status || values.includes(value);
62
+
63
+ const handlePress = () => {
64
+ if (!disabled) {
65
+ onPress === null || onPress === void 0 ? void 0 : onPress(!isChecked);
66
+ onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(value, !isChecked);
67
+ }
68
+ };
69
+
70
+ const {
71
+ textStyles,
72
+ viewStyles
73
+ } = extractStyles(style);
74
+ return /*#__PURE__*/React.createElement(Touchable, _extends({
75
+ onPress: handlePress,
76
+ style: [styles.mainParent, {
77
+ flexDirection: direction
78
+ }, viewStyles],
79
+ disabled: disabled
80
+ }, rest), /*#__PURE__*/React.createElement(View, {
81
+ style: [styles.label, {
82
+ alignItems: direction === Direction.Row ? "flex-start" : "flex-end"
83
+ }, labelContainerStyle]
84
+ }, renderLabel(label, labelStyle, textStyles)), /*#__PURE__*/React.createElement(View, {
85
+ style: {
86
+ flex: 1,
87
+ alignItems: getCheckboxAlignment(parentDirection, direction)
88
+ }
89
+ }, /*#__PURE__*/React.createElement(Checkbox, {
90
+ Icon: Icon,
91
+ status: isChecked,
92
+ onPress: handlePress,
93
+ style: checkboxStyle,
94
+ disabled: disabled,
95
+ color: color,
96
+ uncheckedColor: uncheckedColor
97
+ })));
98
+ };
99
+
100
+ const styles = StyleSheet.create({
101
+ mainParent: {
102
+ alignItems: "center",
103
+ justifyContent: "space-around",
104
+ paddingStart: 20,
105
+ minHeight: 50,
106
+ paddingEnd: 20,
107
+ display: "flex",
108
+ ...Platform.select({
109
+ web: {
110
+ cursor: "pointer",
111
+ userSelect: "none"
112
+ }
113
+ })
114
+ },
115
+ label: {
116
+ flex: 3
117
+ }
118
+ });
119
+ export default CheckboxGroupRow;
120
+ //# sourceMappingURL=CheckboxGroupRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["CheckboxGroupRow.tsx"],"names":["React","StyleSheet","View","Platform","Checkbox","Text","useCheckboxGroupContext","Direction","GroupDirection","Touchable","extractStyles","getCheckboxAlignment","parentDirection","direction","Horizontal","Row","RowReverse","renderLabel","value","labelStyle","textStyle","CheckboxGroupRow","Icon","label","status","onPress","labelContainerStyle","checkboxStyle","disabled","style","color","uncheckedColor","rest","values","selectedValues","onValueChange","Array","isArray","isChecked","includes","handlePress","textStyles","viewStyles","styles","mainParent","flexDirection","alignItems","flex","create","justifyContent","paddingStart","minHeight","paddingEnd","display","select","web","cursor","userSelect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport {\n StyleProp,\n ViewStyle,\n StyleSheet,\n TextStyle,\n View,\n Platform,\n} from \"react-native\";\nimport Checkbox, { CheckboxProps } from \"./Checkbox\";\nimport Text from \"../Text\";\nimport { useCheckboxGroupContext } from \"./context\";\nimport type { IconSlot } from \"../../interfaces/Icon\";\nimport { Direction as GroupDirection } from \"./context\";\nimport Touchable from \"../Touchable\";\nimport { extractStyles } from \"../../utilities\";\n\nexport enum Direction {\n Row = \"row\",\n RowReverse = \"row-reverse\",\n}\n\nexport interface CheckboxGroupRowProps extends Omit<CheckboxProps, \"onPress\"> {\n label: string | React.ReactNode;\n value: string; // A string that this checkbox represents\n labelContainerStyle: StyleProp<ViewStyle>;\n checkboxStyle?: StyleProp<ViewStyle>;\n labelStyle?: StyleProp<TextStyle>;\n onPress?: (value: boolean) => void;\n direction?: Direction;\n color: string;\n unselectedColor: string;\n}\n\nconst getCheckboxAlignment = (\n parentDirection: GroupDirection | undefined,\n direction: Direction\n) => {\n if (parentDirection === GroupDirection.Horizontal) {\n return direction === Direction.Row ? \"flex-start\" : \"flex-end\";\n } else if (direction === Direction.RowReverse) {\n return \"flex-start\";\n } else {\n return \"flex-end\";\n }\n};\n\nconst renderLabel = (\n value: string | React.ReactNode,\n labelStyle: StyleProp<TextStyle>,\n textStyle: StyleProp<TextStyle>\n) => {\n if (typeof value === \"string\") {\n return <Text style={[labelStyle, textStyle]}>{value}</Text>;\n } else {\n return <>{value}</>;\n }\n};\n\nconst CheckboxGroupRow: React.FC<CheckboxGroupRowProps & IconSlot> = ({\n Icon,\n label = \"Label\",\n status,\n value,\n onPress,\n labelContainerStyle,\n labelStyle,\n checkboxStyle,\n direction = Direction.Row,\n disabled,\n style,\n color,\n uncheckedColor,\n ...rest\n}) => {\n const {\n values: selectedValues,\n onValueChange,\n direction: parentDirection,\n } = useCheckboxGroupContext();\n\n const values = Array.isArray(selectedValues) ? selectedValues : [];\n const isChecked = status || values.includes(value);\n\n const handlePress = () => {\n if (!disabled) {\n onPress?.(!isChecked);\n onValueChange?.(value, !isChecked);\n }\n };\n\n const { textStyles, viewStyles } = extractStyles(style);\n\n return (\n <Touchable\n onPress={handlePress}\n style={[styles.mainParent, { flexDirection: direction }, viewStyles]}\n disabled={disabled}\n {...rest}\n >\n <View\n style={[\n styles.label,\n {\n alignItems: direction === Direction.Row ? \"flex-start\" : \"flex-end\",\n },\n labelContainerStyle,\n ]}\n >\n {renderLabel(label, labelStyle, textStyles)}\n </View>\n <View\n style={{\n flex: 1,\n alignItems: getCheckboxAlignment(parentDirection, direction),\n }}\n >\n <Checkbox\n Icon={Icon}\n status={isChecked}\n onPress={handlePress}\n style={checkboxStyle}\n disabled={disabled}\n color={color}\n uncheckedColor={uncheckedColor}\n />\n </View>\n </Touchable>\n );\n};\n\nconst styles = StyleSheet.create({\n mainParent: {\n alignItems: \"center\",\n justifyContent: \"space-around\",\n paddingStart: 20,\n minHeight: 50,\n paddingEnd: 20,\n display: \"flex\",\n ...Platform.select({\n web: {\n cursor: \"pointer\",\n userSelect: \"none\",\n },\n }),\n },\n label: {\n flex: 3,\n },\n});\n\nexport default CheckboxGroupRow;\n"]}