@codeleap/mobile 1.8.3 → 1.9.1

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 (196) hide show
  1. package/CodeLeap-Mobile-Packages.code-workspace +7 -7
  2. package/dist/components/ActivityIndicator.d.ts +13 -13
  3. package/dist/components/ActivityIndicator.js +54 -50
  4. package/dist/components/ActivityIndicator.js.map +1 -1
  5. package/dist/components/Animated.d.ts +15 -15
  6. package/dist/components/Animated.js +58 -54
  7. package/dist/components/Animated.js.map +1 -1
  8. package/dist/components/Button.d.ts +125 -125
  9. package/dist/components/Button.js +82 -78
  10. package/dist/components/Button.js.map +1 -1
  11. package/dist/components/Checkbox/index.d.ts +15 -14
  12. package/dist/components/Checkbox/index.js +77 -73
  13. package/dist/components/Checkbox/index.js.map +1 -1
  14. package/dist/components/Checkbox/styles.d.ts +55 -55
  15. package/dist/components/Checkbox/styles.js +48 -48
  16. package/dist/components/Checkbox/styles.js.map +0 -0
  17. package/dist/components/ContentView.d.ts +10 -10
  18. package/dist/components/ContentView.js +50 -50
  19. package/dist/components/ContentView.js.map +0 -0
  20. package/dist/components/FileInput.d.ts +27 -26
  21. package/dist/components/FileInput.js +178 -174
  22. package/dist/components/FileInput.js.map +1 -1
  23. package/dist/components/Icon.d.ts +12 -12
  24. package/dist/components/Icon.js +70 -66
  25. package/dist/components/Icon.js.map +1 -1
  26. package/dist/components/Image.d.ts +18 -18
  27. package/dist/components/Image.js +59 -55
  28. package/dist/components/Image.js.map +1 -1
  29. package/dist/components/List.d.ts +13 -13
  30. package/dist/components/List.js +82 -78
  31. package/dist/components/List.js.map +1 -1
  32. package/dist/components/Modal/index.d.ts +26 -26
  33. package/dist/components/Modal/index.js +112 -108
  34. package/dist/components/Modal/index.js.map +1 -1
  35. package/dist/components/Modal/styles.d.ts +69 -69
  36. package/dist/components/Modal/styles.js +64 -64
  37. package/dist/components/Modal/styles.js.map +0 -0
  38. package/dist/components/Navigation/Navigation.d.ts +3 -3
  39. package/dist/components/Navigation/Navigation.js +87 -83
  40. package/dist/components/Navigation/Navigation.js.map +1 -1
  41. package/dist/components/Navigation/constants.d.ts +5 -5
  42. package/dist/components/Navigation/constants.js +10 -10
  43. package/dist/components/Navigation/constants.js.map +0 -0
  44. package/dist/components/Navigation/index.d.ts +3 -3
  45. package/dist/components/Navigation/index.js +19 -15
  46. package/dist/components/Navigation/index.js.map +1 -1
  47. package/dist/components/Navigation/types.d.ts +26 -26
  48. package/dist/components/Navigation/types.js +7 -7
  49. package/dist/components/Navigation/types.js.map +0 -0
  50. package/dist/components/Navigation/utils.d.ts +3 -3
  51. package/dist/components/Navigation/utils.js +69 -69
  52. package/dist/components/Navigation/utils.js.map +0 -0
  53. package/dist/components/Overlay.d.ts +16 -16
  54. package/dist/components/Overlay.js +69 -65
  55. package/dist/components/Overlay.js.map +1 -1
  56. package/dist/components/Pager/index.d.ts +20 -20
  57. package/dist/components/Pager/index.js +167 -163
  58. package/dist/components/Pager/index.js.map +1 -1
  59. package/dist/components/Pager/styles.d.ts +54 -54
  60. package/dist/components/Pager/styles.js +43 -43
  61. package/dist/components/Pager/styles.js.map +0 -0
  62. package/dist/components/RadioInput/index.d.ts +26 -26
  63. package/dist/components/RadioInput/index.js +72 -68
  64. package/dist/components/RadioInput/index.js.map +1 -1
  65. package/dist/components/RadioInput/styles.d.ts +57 -57
  66. package/dist/components/RadioInput/styles.js +44 -44
  67. package/dist/components/RadioInput/styles.js.map +0 -0
  68. package/dist/components/Scroll.d.ts +12 -12
  69. package/dist/components/Scroll.js +80 -76
  70. package/dist/components/Scroll.js.map +1 -1
  71. package/dist/components/Sections.d.ts +11 -11
  72. package/dist/components/Sections.js +80 -76
  73. package/dist/components/Sections.js.map +1 -1
  74. package/dist/components/Select/index.d.ts +5 -5
  75. package/dist/components/Select/index.js +150 -146
  76. package/dist/components/Select/index.js.map +1 -1
  77. package/dist/components/Select/styles.d.ts +9 -9
  78. package/dist/components/Select/styles.js +56 -56
  79. package/dist/components/Select/styles.js.map +0 -0
  80. package/dist/components/Select/types.d.ts +39 -39
  81. package/dist/components/Select/types.js +2 -2
  82. package/dist/components/Select/types.js.map +0 -0
  83. package/dist/components/Slider/Mark.d.ts +3 -3
  84. package/dist/components/Slider/Mark.js +31 -31
  85. package/dist/components/Slider/Mark.js.map +0 -0
  86. package/dist/components/Slider/Thumb.d.ts +7 -7
  87. package/dist/components/Slider/Thumb.js +29 -29
  88. package/dist/components/Slider/Thumb.js.map +0 -0
  89. package/dist/components/Slider/index.d.ts +3 -3
  90. package/dist/components/Slider/index.js +97 -93
  91. package/dist/components/Slider/index.js.map +1 -1
  92. package/dist/components/Slider/types.d.ts +25 -25
  93. package/dist/components/Slider/types.js +2 -2
  94. package/dist/components/Slider/types.js.map +0 -0
  95. package/dist/components/Switch.d.ts +13 -13
  96. package/dist/components/Switch.js +75 -71
  97. package/dist/components/Switch.js.map +1 -1
  98. package/dist/components/Text.d.ts +12 -12
  99. package/dist/components/Text.js +52 -48
  100. package/dist/components/Text.js.map +1 -1
  101. package/dist/components/TextInput.d.ts +183 -171
  102. package/dist/components/TextInput.js +178 -157
  103. package/dist/components/TextInput.js.map +1 -1
  104. package/dist/components/Touchable.d.ts +14 -14
  105. package/dist/components/Touchable.js +61 -57
  106. package/dist/components/Touchable.js.map +1 -1
  107. package/dist/components/View.d.ts +120 -120
  108. package/dist/components/View.js +54 -50
  109. package/dist/components/View.js.map +1 -1
  110. package/dist/components/components.d.ts +25 -24
  111. package/dist/components/components.js +41 -36
  112. package/dist/components/components.js.map +1 -1
  113. package/dist/index.d.ts +5 -5
  114. package/dist/index.js +28 -24
  115. package/dist/index.js.map +1 -1
  116. package/dist/modules/documentPicker.d.ts +3 -3
  117. package/dist/modules/documentPicker.js +11 -11
  118. package/dist/modules/documentPicker.js.map +0 -0
  119. package/dist/modules/fastImage.d.ts +1 -1
  120. package/dist/modules/fastImage.js +9 -9
  121. package/dist/modules/fastImage.js.map +0 -0
  122. package/dist/modules/reactNavigation.d.ts +3 -3
  123. package/dist/modules/reactNavigation.js +10 -10
  124. package/dist/modules/reactNavigation.js.map +0 -0
  125. package/dist/modules/textInputMask.d.ts +7 -0
  126. package/dist/modules/textInputMask.js +10 -0
  127. package/dist/modules/textInputMask.js.map +1 -0
  128. package/dist/modules/types/fileTypes.d.ts +138 -138
  129. package/dist/modules/types/fileTypes.js +2 -2
  130. package/dist/modules/types/fileTypes.js.map +0 -0
  131. package/dist/modules/types/textInputMask.d.ts +9 -0
  132. package/dist/modules/types/textInputMask.js +3 -0
  133. package/dist/modules/types/textInputMask.js.map +1 -0
  134. package/dist/types/utility.d.ts +2 -2
  135. package/dist/types/utility.js +2 -2
  136. package/dist/types/utility.js.map +0 -0
  137. package/dist/utils/OSAlert.d.ts +31 -31
  138. package/dist/utils/OSAlert.js +141 -141
  139. package/dist/utils/OSAlert.js.map +1 -1
  140. package/dist/utils/misc.d.ts +2 -2
  141. package/dist/utils/misc.js +25 -25
  142. package/dist/utils/misc.js.map +0 -0
  143. package/dist/utils/styles.d.ts +1 -1
  144. package/dist/utils/styles.js +12 -12
  145. package/dist/utils/styles.js.map +0 -0
  146. package/package.json +39 -38
  147. package/src/components/ActivityIndicator.tsx +46 -46
  148. package/src/components/Animated.tsx +34 -34
  149. package/src/components/Button.tsx +95 -95
  150. package/src/components/Checkbox/index.tsx +83 -81
  151. package/src/components/Checkbox/styles.ts +72 -72
  152. package/src/components/ContentView.tsx +58 -58
  153. package/src/components/FileInput.tsx +181 -179
  154. package/src/components/Icon.tsx +58 -58
  155. package/src/components/Image.tsx +61 -61
  156. package/src/components/List.tsx +109 -109
  157. package/src/components/Modal/index.tsx +161 -161
  158. package/src/components/Modal/styles.ts +133 -133
  159. package/src/components/Navigation/Navigation.tsx +58 -58
  160. package/src/components/Navigation/constants.ts +8 -8
  161. package/src/components/Navigation/index.tsx +3 -3
  162. package/src/components/Navigation/types.ts +35 -35
  163. package/src/components/Navigation/utils.tsx +59 -59
  164. package/src/components/Overlay.tsx +77 -77
  165. package/src/components/Pager/index.tsx +242 -242
  166. package/src/components/Pager/styles.ts +51 -51
  167. package/src/components/RadioInput/index.tsx +101 -101
  168. package/src/components/RadioInput/styles.ts +67 -67
  169. package/src/components/Scroll.tsx +104 -104
  170. package/src/components/Sections.tsx +101 -101
  171. package/src/components/Select/index.tsx +195 -195
  172. package/src/components/Select/styles.ts +81 -81
  173. package/src/components/Select/types.ts +45 -45
  174. package/src/components/Slider/Mark.tsx +46 -46
  175. package/src/components/Slider/Thumb.tsx +29 -29
  176. package/src/components/Slider/index.tsx +123 -123
  177. package/src/components/Slider/types.ts +25 -25
  178. package/src/components/Switch.tsx +81 -81
  179. package/src/components/Text.tsx +30 -30
  180. package/src/components/TextInput.tsx +246 -218
  181. package/src/components/Touchable.tsx +64 -64
  182. package/src/components/View.tsx +46 -46
  183. package/src/components/components.ts +26 -26
  184. package/src/index.ts +6 -6
  185. package/src/modules/documentPicker.ts +7 -7
  186. package/src/modules/fastImage.ts +2 -2
  187. package/src/modules/index.d.ts +496 -496
  188. package/src/modules/reactNavigation.ts +4 -4
  189. package/src/modules/textInputMask.ts +7 -0
  190. package/src/modules/types/documentPicker.d.ts +215 -215
  191. package/src/modules/types/fileTypes.ts +138 -138
  192. package/src/modules/types/textInputMask.ts +9 -0
  193. package/src/types/utility.ts +3 -3
  194. package/src/utils/OSAlert.ts +180 -180
  195. package/src/utils/misc.ts +24 -24
  196. package/src/utils/styles.ts +14 -14
@@ -1,95 +1,95 @@
1
- import * as React from 'react'
2
- import {
3
- useDefaultComponentStyle,
4
- ButtonStyles,
5
- ComponentVariants,
6
- ButtonComposition,
7
- ButtonParts,
8
- IconPlaceholder,
9
- } from '@codeleap/common'
10
- import { forwardRef } from 'react'
11
- import { StylesOf } from '../types/utility'
12
- import { Text } from './Text'
13
- import { Touchable, TouchableProps } from './Touchable'
14
- import { Icon } from './Icon'
15
- import { ActivityIndicator } from './ActivityIndicator'
16
- import { StyleSheet, TouchableOpacity } from 'react-native'
17
-
18
- export type ButtonProps = Omit<TouchableProps, 'variants'> &
19
- ComponentVariants<typeof ButtonStyles> & {
20
- text?: string
21
- rightIcon?: IconPlaceholder
22
- icon?: IconPlaceholder
23
- styles?: StylesOf<ButtonComposition>
24
- loading?: boolean
25
- debounce?: number
26
- debugName: string
27
- }
28
-
29
- export const Button = forwardRef<TouchableOpacity, ButtonProps>((buttonProps, ref) => {
30
- const {
31
- variants = [],
32
- children,
33
- icon,
34
- text,
35
- loading,
36
- styles = {},
37
- onPress,
38
- disabled,
39
- rightIcon,
40
- debounce = 600,
41
- style,
42
- ...props
43
- } = buttonProps
44
- const [pressed, setPressed] = React.useState(false)
45
-
46
- const variantStyles = useDefaultComponentStyle('Button', {
47
- variants,
48
- transform: StyleSheet.flatten,
49
- styles,
50
- })
51
-
52
- function handlePress() {
53
- if (!pressed) {
54
- setPressed(true)
55
-
56
- setTimeout(() => setPressed(false), debounce)
57
-
58
- onPress && onPress()
59
- }
60
- }
61
-
62
- function getStyles(key: ButtonParts) {
63
- return [
64
- variantStyles[key],
65
- key === 'wrapper' && style,
66
- disabled && variantStyles[key + ':disabled'],
67
- styles[key],
68
- disabled && styles[key + ':disabled'],
69
- ]
70
- }
71
-
72
- const iconStyle = getStyles('icon')
73
-
74
- const leftIconStyle = StyleSheet.flatten([iconStyle, getStyles('leftIcon')])
75
- const rightIconStyle = StyleSheet.flatten([iconStyle, getStyles('rightIcon')])
76
-
77
- const hasText = !!(text || children)
78
- return (
79
- <Touchable
80
- style={getStyles('wrapper')}
81
- onPress={handlePress}
82
- ref={ref}
83
- disabled={disabled}
84
- debugComponent={'Button'}
85
- {...props}
86
- >
87
-
88
- {loading && <ActivityIndicator style={getStyles('loader')} />}
89
- {!loading && <Icon name={icon} style={leftIconStyle} renderEmptySpace={hasText}/>}
90
- {text ? <Text text={text} style={getStyles('text')} /> : null}
91
- {children}
92
- <Icon name={rightIcon} style={rightIconStyle} renderEmptySpace={hasText} />
93
- </Touchable>
94
- )
95
- })
1
+ import * as React from 'react'
2
+ import {
3
+ useDefaultComponentStyle,
4
+ ButtonStyles,
5
+ ComponentVariants,
6
+ ButtonComposition,
7
+ ButtonParts,
8
+ IconPlaceholder,
9
+ } from '@codeleap/common'
10
+ import { forwardRef } from 'react'
11
+ import { StylesOf } from '../types/utility'
12
+ import { Text } from './Text'
13
+ import { Touchable, TouchableProps } from './Touchable'
14
+ import { Icon } from './Icon'
15
+ import { ActivityIndicator } from './ActivityIndicator'
16
+ import { StyleSheet, TouchableOpacity } from 'react-native'
17
+
18
+ export type ButtonProps = Omit<TouchableProps, 'variants'> &
19
+ ComponentVariants<typeof ButtonStyles> & {
20
+ text?: string
21
+ rightIcon?: IconPlaceholder
22
+ icon?: IconPlaceholder
23
+ styles?: StylesOf<ButtonComposition>
24
+ loading?: boolean
25
+ debounce?: number
26
+ debugName: string
27
+ }
28
+
29
+ export const Button = forwardRef<TouchableOpacity, ButtonProps>((buttonProps, ref) => {
30
+ const {
31
+ variants = [],
32
+ children,
33
+ icon,
34
+ text,
35
+ loading,
36
+ styles = {},
37
+ onPress,
38
+ disabled,
39
+ rightIcon,
40
+ debounce = 600,
41
+ style,
42
+ ...props
43
+ } = buttonProps
44
+ const [pressed, setPressed] = React.useState(false)
45
+
46
+ const variantStyles = useDefaultComponentStyle('Button', {
47
+ variants,
48
+ transform: StyleSheet.flatten,
49
+ styles,
50
+ })
51
+
52
+ function handlePress() {
53
+ if (!pressed) {
54
+ setPressed(true)
55
+
56
+ setTimeout(() => setPressed(false), debounce)
57
+
58
+ onPress && onPress()
59
+ }
60
+ }
61
+
62
+ function getStyles(key: ButtonParts) {
63
+ return [
64
+ variantStyles[key],
65
+ key === 'wrapper' && style,
66
+ disabled && variantStyles[key + ':disabled'],
67
+ styles[key],
68
+ disabled && styles[key + ':disabled'],
69
+ ]
70
+ }
71
+
72
+ const iconStyle = getStyles('icon')
73
+
74
+ const leftIconStyle = StyleSheet.flatten([iconStyle, getStyles('leftIcon')])
75
+ const rightIconStyle = StyleSheet.flatten([iconStyle, getStyles('rightIcon')])
76
+
77
+ const hasText = !!(text || children)
78
+ return (
79
+ <Touchable
80
+ style={getStyles('wrapper')}
81
+ onPress={handlePress}
82
+ ref={ref}
83
+ disabled={disabled}
84
+ debugComponent={'Button'}
85
+ {...props}
86
+ >
87
+
88
+ {loading && <ActivityIndicator style={getStyles('loader')} />}
89
+ {!loading && <Icon name={icon} style={leftIconStyle} renderEmptySpace={hasText}/>}
90
+ {text ? <Text text={text} style={getStyles('text')} /> : null}
91
+ {children}
92
+ <Icon name={rightIcon} style={rightIconStyle} renderEmptySpace={hasText} />
93
+ </Touchable>
94
+ )
95
+ })
@@ -1,81 +1,83 @@
1
- import * as React from 'react'
2
- import {
3
- ComponentVariants,
4
- useDefaultComponentStyle,
5
- StylesOf,
6
- Form,
7
- useValidate,
8
- } from '@codeleap/common'
9
- import { ComponentPropsWithRef, forwardRef, ReactNode } from 'react'
10
- import { Switch as NativeCheckbox } from 'react-native'
11
- import { InputLabel, FormError } from '../TextInput'
12
- import { View } from '../View'
13
- import { Touchable } from '../Touchable'
14
- import {
15
- MobileCheckboxStyles as CheckboxStyles,
16
- MobileCheckboxComposition as CheckboxComposition,
17
- } from './styles'
18
- export * from './styles'
19
-
20
- type NativeCheckboxProps = Omit<
21
- ComponentPropsWithRef<typeof NativeCheckbox>,
22
- 'thumbColor' | 'trackColor'
23
- >
24
- type CheckboxProps = NativeCheckboxProps & {
25
- variants?: ComponentVariants<typeof CheckboxStyles>['variants']
26
- label?: ReactNode
27
- styles?: StylesOf<CheckboxComposition>
28
- validate?: Form.ValidatorFunctionWithoutForm | string
29
- }
30
-
31
- export const Checkbox = forwardRef<NativeCheckbox, CheckboxProps>(
32
- (checkboxProps, ref) => {
33
- const {
34
- variants = [],
35
- style = {},
36
- styles = {},
37
- label,
38
- value,
39
- onValueChange,
40
- validate,
41
- ...props
42
- } = checkboxProps
43
-
44
- const variantStyles = useDefaultComponentStyle('Checkbox', {
45
- // @ts-ignore
46
- variants,
47
- })
48
-
49
- const { error, showError } = useValidate(value, validate)
50
-
51
- function getStyles(key: CheckboxComposition) {
52
- return [
53
- variantStyles[key],
54
- variantStyles[key],
55
- key === 'wrapper' ? style : {},
56
- value ? variantStyles[key + ':checked'] : {},
57
- value ? styles[key + ':checked'] : {},
58
- showError ? variantStyles[key + ':error'] : {},
59
- showError ? styles[key + ':error'] : {},
60
- checkboxProps.disabled ? variantStyles[key + ':disabled'] : {},
61
- checkboxProps.disabled ? styles[key + ':disabled'] : {},
62
- ]
63
- }
64
-
65
- return (
66
- <View style={getStyles('wrapper')} {...props}>
67
- <Touchable
68
- debugName={`Set checkbox value to ${!value}`}
69
- style={getStyles('input')}
70
- onPress={() => onValueChange(!value)}
71
- >
72
- <View style={getStyles('checkmarkWrapper')}>
73
- <View style={getStyles('checkmark')} />
74
- </View>
75
- <InputLabel label={label} style={getStyles('label')} />
76
- </Touchable>
77
- <FormError message={error.message} style={getStyles('error')} />
78
- </View>
79
- )
80
- },
81
- )
1
+ import * as React from 'react'
2
+ import {
3
+ ComponentVariants,
4
+ useDefaultComponentStyle,
5
+ StylesOf,
6
+ Form,
7
+ useValidate,
8
+ } from '@codeleap/common'
9
+ import { ComponentPropsWithRef, forwardRef, ReactNode } from 'react'
10
+ import { Switch as NativeCheckbox } from 'react-native'
11
+ import { InputLabel, FormError } from '../TextInput'
12
+ import { View } from '../View'
13
+ import { Touchable } from '../Touchable'
14
+ import {
15
+ MobileCheckboxStyles as CheckboxStyles,
16
+ MobileCheckboxComposition as CheckboxComposition,
17
+ } from './styles'
18
+ export * from './styles'
19
+
20
+ type NativeCheckboxProps = Omit<
21
+ ComponentPropsWithRef<typeof NativeCheckbox>,
22
+ 'thumbColor' | 'trackColor'
23
+ >
24
+ type CheckboxProps = NativeCheckboxProps & {
25
+ variants?: ComponentVariants<typeof CheckboxStyles>['variants']
26
+ label?: ReactNode
27
+ styles?: StylesOf<CheckboxComposition>
28
+ validate?: Form.ValidatorFunctionWithoutForm | string
29
+ required?: boolean
30
+ }
31
+
32
+ export const Checkbox = forwardRef<NativeCheckbox, CheckboxProps>(
33
+ (checkboxProps, ref) => {
34
+ const {
35
+ variants = [],
36
+ style = {},
37
+ styles = {},
38
+ label,
39
+ value,
40
+ onValueChange,
41
+ validate,
42
+ required,
43
+ ...props
44
+ } = checkboxProps
45
+
46
+ const variantStyles = useDefaultComponentStyle('Checkbox', {
47
+ // @ts-ignore
48
+ variants,
49
+ })
50
+
51
+ const { error, showError } = useValidate(value, validate)
52
+
53
+ function getStyles(key: CheckboxComposition) {
54
+ return [
55
+ variantStyles[key],
56
+ variantStyles[key],
57
+ key === 'wrapper' ? style : {},
58
+ value ? variantStyles[key + ':checked'] : {},
59
+ value ? styles[key + ':checked'] : {},
60
+ showError ? variantStyles[key + ':error'] : {},
61
+ showError ? styles[key + ':error'] : {},
62
+ checkboxProps.disabled ? variantStyles[key + ':disabled'] : {},
63
+ checkboxProps.disabled ? styles[key + ':disabled'] : {},
64
+ ]
65
+ }
66
+
67
+ return (
68
+ <View style={getStyles('wrapper')} {...props}>
69
+ <Touchable
70
+ debugName={`Set checkbox value to ${!value}`}
71
+ style={getStyles('input')}
72
+ onPress={() => onValueChange(!value)}
73
+ >
74
+ <View style={getStyles('checkmarkWrapper')}>
75
+ <View style={getStyles('checkmark')} />
76
+ </View>
77
+ <InputLabel label={label} style={getStyles('label')} required={required}/>
78
+ </Touchable>
79
+ <FormError message={error.message} style={getStyles('error')} />
80
+ </View>
81
+ )
82
+ },
83
+ )
@@ -1,72 +1,72 @@
1
- import { createDefaultVariantFactory, includePresets } from '@codeleap/common'
2
-
3
- type CheckboxParts =
4
- | 'wrapper'
5
- | 'label'
6
- | 'input'
7
- | 'checkmark'
8
- | 'checkmarkWrapper'
9
- | 'error'
10
-
11
- export type MobileCheckboxComposition =
12
- | CheckboxParts
13
- | `${CheckboxParts}:checked`
14
- | `${CheckboxParts}:disabled`
15
- | `${CheckboxParts}:error`
16
- const createCheckboxStyle =
17
- createDefaultVariantFactory<MobileCheckboxComposition>()
18
-
19
- const presets = includePresets((styles) => createCheckboxStyle(() => ({ wrapper: styles })),
20
- )
21
-
22
- export const MobileCheckboxStyles = {
23
- ...presets,
24
- default: createCheckboxStyle((theme) => {
25
- const size = theme.typography.baseFontSize * 1.2
26
-
27
- const markHeight = size * 0.5
28
- const markWidth = size * 0.25
29
-
30
- const translateX = -(markWidth / 2)
31
- const translateY = -(markHeight / 2)
32
- return {
33
- wrapper: {},
34
- input: {
35
- flexDirection: 'row',
36
- ...theme.presets.alignCenter,
37
- borderRadius: theme.borderRadius.small,
38
- },
39
- label: {
40
- ...theme.spacing.marginLeft(0.5),
41
- },
42
-
43
- checkmark: {
44
- position: 'absolute',
45
- top: '40%',
46
- left: '50%',
47
-
48
- height: markHeight,
49
- width: markWidth,
50
- transform: [{ translateX }, { translateY }, { rotate: '45deg' }],
51
- },
52
- 'checkmark:checked': {
53
- ...theme.border.white({
54
- width: 2,
55
- directions: ['right', 'bottom'],
56
- }),
57
- },
58
- checkmarkWrapper: {
59
- position: 'relative',
60
- width: size,
61
- height: size,
62
- ...theme.border.neutral(1),
63
- },
64
- 'checkmarkWrapper:checked': {
65
- backgroundColor: theme.colors.primary,
66
- },
67
- error: {
68
- color: theme.colors.negative,
69
- },
70
- }
71
- }),
72
- }
1
+ import { createDefaultVariantFactory, includePresets } from '@codeleap/common'
2
+
3
+ type CheckboxParts =
4
+ | 'wrapper'
5
+ | 'label'
6
+ | 'input'
7
+ | 'checkmark'
8
+ | 'checkmarkWrapper'
9
+ | 'error'
10
+
11
+ export type MobileCheckboxComposition =
12
+ | CheckboxParts
13
+ | `${CheckboxParts}:checked`
14
+ | `${CheckboxParts}:disabled`
15
+ | `${CheckboxParts}:error`
16
+ const createCheckboxStyle =
17
+ createDefaultVariantFactory<MobileCheckboxComposition>()
18
+
19
+ const presets = includePresets((styles) => createCheckboxStyle(() => ({ wrapper: styles })),
20
+ )
21
+
22
+ export const MobileCheckboxStyles = {
23
+ ...presets,
24
+ default: createCheckboxStyle((theme) => {
25
+ const size = theme.typography.baseFontSize * 1.2
26
+
27
+ const markHeight = size * 0.5
28
+ const markWidth = size * 0.25
29
+
30
+ const translateX = -(markWidth / 2)
31
+ const translateY = -(markHeight / 2)
32
+ return {
33
+ wrapper: {},
34
+ input: {
35
+ flexDirection: 'row',
36
+ ...theme.presets.alignCenter,
37
+ borderRadius: theme.borderRadius.small,
38
+ },
39
+ label: {
40
+ ...theme.spacing.marginLeft(0.5),
41
+ },
42
+
43
+ checkmark: {
44
+ position: 'absolute',
45
+ top: '40%',
46
+ left: '50%',
47
+
48
+ height: markHeight,
49
+ width: markWidth,
50
+ transform: [{ translateX }, { translateY }, { rotate: '45deg' }],
51
+ },
52
+ 'checkmark:checked': {
53
+ ...theme.border.white({
54
+ width: 2,
55
+ directions: ['right', 'bottom'],
56
+ }),
57
+ },
58
+ checkmarkWrapper: {
59
+ position: 'relative',
60
+ width: size,
61
+ height: size,
62
+ ...theme.border.neutral(1),
63
+ },
64
+ 'checkmarkWrapper:checked': {
65
+ backgroundColor: theme.colors.primary,
66
+ },
67
+ error: {
68
+ color: theme.colors.negative,
69
+ },
70
+ }
71
+ }),
72
+ }
@@ -1,58 +1,58 @@
1
- import React from 'react'
2
- import {
3
- ComponentVariants,
4
- ContentViewStyles,
5
- useDefaultComponentStyle,
6
- ViewComposition,
7
- } from '@codeleap/common'
8
- import { ViewProps, View } from './View'
9
- import { Text } from './Text'
10
- import { StylesOf } from '../types/utility'
11
- import { ActivityIndicator } from './ActivityIndicator'
12
- import { StyleSheet } from 'react-native'
13
-
14
- export type ContentViewProps = Omit<
15
- ViewProps,
16
- 'variants' | 'responsiveVariants'
17
- > & {
18
- placeholderMsg: string
19
- loading?: boolean
20
- styles?: StylesOf<ViewComposition>
21
- } & ComponentVariants<typeof ContentViewStyles>
22
-
23
- const WrapContent = ({ children, ...props }) => (
24
- <View {...props}>{children}</View>
25
- )
26
-
27
- export const ContentView: React.FC<ContentViewProps> = (rawProps) => {
28
- const { children, placeholderMsg, loading, variants, styles, ...props } =
29
- rawProps
30
-
31
- const variantStyle = useDefaultComponentStyle('ContentView', {
32
- variants,
33
- transform: StyleSheet.flatten,
34
- styles,
35
- })
36
-
37
- if (loading) {
38
- return (
39
- <WrapContent {...props} style={variantStyle.wrapper}>
40
- <ActivityIndicator styles={{ wrapper: variantStyle.loader }} />
41
- </WrapContent>
42
- )
43
- }
44
- const hasChildren = Object.keys(children || {}).length > 0
45
- if (hasChildren) {
46
- return (
47
- <WrapContent {...props} style={variantStyle.wrapper}>
48
- {children}
49
- </WrapContent>
50
- )
51
- }
52
-
53
- return (
54
- <WrapContent {...props} style={styles}>
55
- <Text text={placeholderMsg} />
56
- </WrapContent>
57
- )
58
- }
1
+ import React from 'react'
2
+ import {
3
+ ComponentVariants,
4
+ ContentViewStyles,
5
+ useDefaultComponentStyle,
6
+ ViewComposition,
7
+ } from '@codeleap/common'
8
+ import { ViewProps, View } from './View'
9
+ import { Text } from './Text'
10
+ import { StylesOf } from '../types/utility'
11
+ import { ActivityIndicator } from './ActivityIndicator'
12
+ import { StyleSheet } from 'react-native'
13
+
14
+ export type ContentViewProps = Omit<
15
+ ViewProps,
16
+ 'variants' | 'responsiveVariants'
17
+ > & {
18
+ placeholderMsg: string
19
+ loading?: boolean
20
+ styles?: StylesOf<ViewComposition>
21
+ } & ComponentVariants<typeof ContentViewStyles>
22
+
23
+ const WrapContent = ({ children, ...props }) => (
24
+ <View {...props}>{children}</View>
25
+ )
26
+
27
+ export const ContentView: React.FC<ContentViewProps> = (rawProps) => {
28
+ const { children, placeholderMsg, loading, variants, styles, ...props } =
29
+ rawProps
30
+
31
+ const variantStyle = useDefaultComponentStyle('ContentView', {
32
+ variants,
33
+ transform: StyleSheet.flatten,
34
+ styles,
35
+ })
36
+
37
+ if (loading) {
38
+ return (
39
+ <WrapContent {...props} style={variantStyle.wrapper}>
40
+ <ActivityIndicator styles={{ wrapper: variantStyle.loader }} />
41
+ </WrapContent>
42
+ )
43
+ }
44
+ const hasChildren = Object.keys(children || {}).length > 0
45
+ if (hasChildren) {
46
+ return (
47
+ <WrapContent {...props} style={variantStyle.wrapper}>
48
+ {children}
49
+ </WrapContent>
50
+ )
51
+ }
52
+
53
+ return (
54
+ <WrapContent {...props} style={styles}>
55
+ <Text text={placeholderMsg} />
56
+ </WrapContent>
57
+ )
58
+ }