@draftbit/core 46.8.2-fee87c.2 → 46.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/lib/commonjs/components/Justification.js +1 -5
  2. package/lib/commonjs/components/ResizeMode.js +1 -5
  3. package/lib/commonjs/index.js +0 -13
  4. package/lib/module/components/Justification.js +0 -1
  5. package/lib/module/components/ResizeMode.js +0 -1
  6. package/lib/module/index.js +0 -1
  7. package/lib/typescript/src/index.d.ts +0 -1
  8. package/lib/typescript/src/index.d.ts.map +1 -1
  9. package/package.json +4 -6
  10. package/src/index.tsx +0 -2
  11. package/lib/commonjs/components/TabView/TabView.js +0 -100
  12. package/lib/commonjs/components/TabView/TabViewItem.js +0 -25
  13. package/lib/commonjs/components/TabView/index.js +0 -20
  14. package/lib/commonjs/mappings/TabView.js +0 -73
  15. package/lib/commonjs/mappings/TabViewItem.js +0 -35
  16. package/lib/module/components/TabView/TabView.js +0 -90
  17. package/lib/module/components/TabView/TabViewItem.js +0 -20
  18. package/lib/module/components/TabView/index.js +0 -2
  19. package/lib/module/mappings/TabView.js +0 -66
  20. package/lib/module/mappings/TabViewItem.js +0 -28
  21. package/lib/typescript/src/components/TabView/TabView.d.ts +0 -26
  22. package/lib/typescript/src/components/TabView/TabView.d.ts.map +0 -1
  23. package/lib/typescript/src/components/TabView/TabViewItem.d.ts +0 -11
  24. package/lib/typescript/src/components/TabView/TabViewItem.d.ts.map +0 -1
  25. package/lib/typescript/src/components/TabView/index.d.ts +0 -3
  26. package/lib/typescript/src/components/TabView/index.d.ts.map +0 -1
  27. package/lib/typescript/src/mappings/TabView.d.ts +0 -123
  28. package/lib/typescript/src/mappings/TabView.d.ts.map +0 -1
  29. package/lib/typescript/src/mappings/TabViewItem.d.ts +0 -25
  30. package/lib/typescript/src/mappings/TabViewItem.d.ts.map +0 -1
  31. package/src/Provider.js +0 -9
  32. package/src/components/Accordion/AccordionGroup.js +0 -44
  33. package/src/components/Accordion/AccordionItem.js +0 -32
  34. package/src/components/Accordion/index.js +0 -2
  35. package/src/components/ActionSheet/ActionSheet.js +0 -45
  36. package/src/components/ActionSheet/ActionSheetCancel.js +0 -6
  37. package/src/components/ActionSheet/ActionSheetItem.js +0 -30
  38. package/src/components/ActionSheet/index.js +0 -3
  39. package/src/components/AnimatedCircularProgress.js +0 -43
  40. package/src/components/AspectRatio.js +0 -18
  41. package/src/components/AvatarEdit.js +0 -30
  42. package/src/components/Banner.js +0 -109
  43. package/src/components/Button.js +0 -114
  44. package/src/components/Card.js +0 -57
  45. package/src/components/Checkbox/Checkbox.js +0 -62
  46. package/src/components/Checkbox/CheckboxGroup.js +0 -21
  47. package/src/components/Checkbox/CheckboxGroupRow.js +0 -76
  48. package/src/components/Checkbox/CheckboxRow.js +0 -77
  49. package/src/components/Checkbox/context.js +0 -14
  50. package/src/components/Checkbox/index.js +0 -3
  51. package/src/components/CircleImage.js +0 -8
  52. package/src/components/CircularProgress.js +0 -81
  53. package/src/components/Config.js +0 -64
  54. package/src/components/Container.js +0 -43
  55. package/src/components/DatePicker/DatePicker.js +0 -382
  56. package/src/components/DatePicker/DatePickerComponent.js +0 -13
  57. package/src/components/DatePicker/DatePickerComponent.web.js +0 -30
  58. package/src/components/DatePicker/DatePickerComponentType.js +0 -1
  59. package/src/components/DeckSwiper/DeckSwiper.js +0 -65
  60. package/src/components/DeckSwiper/DeckSwiperCard.js +0 -21
  61. package/src/components/DeckSwiper/index.js +0 -2
  62. package/src/components/DeprecatedButton.js +0 -83
  63. package/src/components/DeprecatedCardWrapper.js +0 -18
  64. package/src/components/DeprecatedFAB.js +0 -114
  65. package/src/components/Divider.js +0 -13
  66. package/src/components/Elevation.js +0 -20
  67. package/src/components/FAB.js +0 -46
  68. package/src/components/FieldSearchBarFull.js +0 -53
  69. package/src/components/FormRow.js +0 -19
  70. package/src/components/IconButton.js +0 -35
  71. package/src/components/Image.js +0 -47
  72. package/src/components/Justification.js +0 -1
  73. package/src/components/Layout.js +0 -50
  74. package/src/components/NumberInput.js +0 -49
  75. package/src/components/Picker/Picker.js +0 -266
  76. package/src/components/Picker/PickerComponent.android.js +0 -69
  77. package/src/components/Picker/PickerComponent.ios.js +0 -79
  78. package/src/components/Picker/PickerComponent.web.js +0 -70
  79. package/src/components/Picker/PickerTypes.js +0 -1
  80. package/src/components/Portal/Portal.js +0 -35
  81. package/src/components/Portal/PortalConsumer.js +0 -27
  82. package/src/components/Portal/PortalHost.js +0 -107
  83. package/src/components/Portal/PortalManager.js +0 -32
  84. package/src/components/Pressable.js +0 -12
  85. package/src/components/ProgressBar.js +0 -118
  86. package/src/components/ProgressCircle.js +0 -13
  87. package/src/components/ProgressIndicator.js +0 -27
  88. package/src/components/RadioButton/RadioButton.js +0 -17
  89. package/src/components/RadioButton/RadioButtonFieldGroup.js +0 -17
  90. package/src/components/RadioButton/RadioButtonGroup.js +0 -43
  91. package/src/components/RadioButton/RadioButtonRow.js +0 -76
  92. package/src/components/RadioButton/context.js +0 -14
  93. package/src/components/RadioButton/index.js +0 -4
  94. package/src/components/ResizeMode.js +0 -1
  95. package/src/components/Row.js +0 -48
  96. package/src/components/RowBodyIcon.js +0 -8
  97. package/src/components/RowHeadlineImageCaption.js +0 -12
  98. package/src/components/RowHeadlineImageIcon.js +0 -14
  99. package/src/components/SVG.js +0 -13
  100. package/src/components/ScreenContainer.js +0 -35
  101. package/src/components/Slider.js +0 -63
  102. package/src/components/StarRating.js +0 -50
  103. package/src/components/StepIndicator.js +0 -346
  104. package/src/components/Stepper.js +0 -41
  105. package/src/components/Surface.js +0 -32
  106. package/src/components/Swiper/Swiper.js +0 -29
  107. package/src/components/Swiper/SwiperItem.js +0 -9
  108. package/src/components/Swiper/index.js +0 -2
  109. package/src/components/Switch.js +0 -56
  110. package/src/components/TabView/TabView.js +0 -45
  111. package/src/components/TabView/TabView.tsx +0 -129
  112. package/src/components/TabView/TabViewItem.js +0 -11
  113. package/src/components/TabView/TabViewItem.tsx +0 -25
  114. package/src/components/TabView/index.js +0 -2
  115. package/src/components/TabView/index.tsx +0 -2
  116. package/src/components/Text.js +0 -33
  117. package/src/components/TextField.js +0 -428
  118. package/src/components/ToggleButton.js +0 -39
  119. package/src/components/Touchable.js +0 -12
  120. package/src/components/Touchable.web.js +0 -2
  121. package/src/components/Typography.js +0 -36
  122. package/src/components/useAuthState.js +0 -31
  123. package/src/constants.js +0 -10
  124. package/src/hooks.js +0 -12
  125. package/src/index.js +0 -47
  126. package/src/interfaces/Icon.js +0 -8
  127. package/src/mappings/Accordion.js +0 -50
  128. package/src/mappings/AccordionItem.js +0 -17
  129. package/src/mappings/ActionSheet.js +0 -14
  130. package/src/mappings/ActionSheetCancel.js +0 -20
  131. package/src/mappings/ActionSheetItem.js +0 -24
  132. package/src/mappings/ActivityIndicator.js +0 -58
  133. package/src/mappings/AudioPlayer.js +0 -57
  134. package/src/mappings/AvatarEdit.js +0 -38
  135. package/src/mappings/Banner.js +0 -32
  136. package/src/mappings/BlurView.js +0 -42
  137. package/src/mappings/Button.js +0 -116
  138. package/src/mappings/Card.js +0 -52
  139. package/src/mappings/CardBlock.js +0 -123
  140. package/src/mappings/CardContainer.js +0 -104
  141. package/src/mappings/CardContainerRating.js +0 -126
  142. package/src/mappings/CardContainerShortImage.js +0 -120
  143. package/src/mappings/CardInline.js +0 -52
  144. package/src/mappings/Carousel.js +0 -19
  145. package/src/mappings/Checkbox.js +0 -46
  146. package/src/mappings/CheckboxGroup.js +0 -26
  147. package/src/mappings/CheckboxRow.js +0 -61
  148. package/src/mappings/CircleImage.js +0 -25
  149. package/src/mappings/Container.js +0 -30
  150. package/src/mappings/CustomCode.js +0 -8
  151. package/src/mappings/DatePicker.js +0 -182
  152. package/src/mappings/DeckSwiper.js +0 -48
  153. package/src/mappings/DeckSwiperCard.js +0 -16
  154. package/src/mappings/Divider.js +0 -27
  155. package/src/mappings/FAB.js +0 -37
  156. package/src/mappings/Fetch.js +0 -13
  157. package/src/mappings/FieldSearchBarFull.js +0 -50
  158. package/src/mappings/FlashList.js +0 -113
  159. package/src/mappings/FlatList.js +0 -51
  160. package/src/mappings/HeaderLarge.js +0 -29
  161. package/src/mappings/HeaderMedium.js +0 -55
  162. package/src/mappings/HeaderOverline.js +0 -55
  163. package/src/mappings/Icon.js +0 -32
  164. package/src/mappings/IconButton.js +0 -33
  165. package/src/mappings/Image.js +0 -35
  166. package/src/mappings/ImageBackground.js +0 -29
  167. package/src/mappings/KeyboardAvoidingView.js +0 -41
  168. package/src/mappings/KeyboardAwareScrollView.js +0 -50
  169. package/src/mappings/Layout.js +0 -200
  170. package/src/mappings/LinearGradient.js +0 -82
  171. package/src/mappings/MapCallout.js +0 -22
  172. package/src/mappings/MapMarker.js +0 -48
  173. package/src/mappings/MapView.js +0 -142
  174. package/src/mappings/Modal.js +0 -42
  175. package/src/mappings/NumberInput.js +0 -254
  176. package/src/mappings/Picker.js +0 -153
  177. package/src/mappings/ProgressBar.js +0 -101
  178. package/src/mappings/ProgressCircle.js +0 -109
  179. package/src/mappings/ProgressIndicator.js +0 -181
  180. package/src/mappings/RadioButton.js +0 -51
  181. package/src/mappings/RadioButtonGroup.js +0 -17
  182. package/src/mappings/RadioButtonRow.js +0 -42
  183. package/src/mappings/RowBodyIcon.js +0 -75
  184. package/src/mappings/RowHeadlineImageCaption.js +0 -167
  185. package/src/mappings/RowHeadlineImageIcon.js +0 -99
  186. package/src/mappings/SVG.js +0 -20
  187. package/src/mappings/SafeAreaView.js +0 -33
  188. package/src/mappings/ScrollView.js +0 -37
  189. package/src/mappings/Slider.js +0 -60
  190. package/src/mappings/StarRating.js +0 -43
  191. package/src/mappings/Stepper.js +0 -32
  192. package/src/mappings/Surface.js +0 -14
  193. package/src/mappings/Swiper.js +0 -71
  194. package/src/mappings/SwiperItem.js +0 -9
  195. package/src/mappings/Switch.js +0 -81
  196. package/src/mappings/TabView.js +0 -69
  197. package/src/mappings/TabView.ts +0 -79
  198. package/src/mappings/TabViewItem.js +0 -28
  199. package/src/mappings/TabViewItem.ts +0 -35
  200. package/src/mappings/Text.js +0 -251
  201. package/src/mappings/TextArea.js +0 -283
  202. package/src/mappings/TextField.js +0 -400
  203. package/src/mappings/TextInput.js +0 -402
  204. package/src/mappings/ToggleButton.js +0 -50
  205. package/src/mappings/Touchable.js +0 -67
  206. package/src/mappings/Video.js +0 -81
  207. package/src/mappings/View.js +0 -207
  208. package/src/mappings/WebView.js +0 -88
  209. package/src/styles/DarkTheme.js +0 -26
  210. package/src/styles/DefaultTheme.js +0 -111
  211. package/src/styles/fonts.js +0 -62
  212. package/src/styles/overlay.js +0 -60
  213. package/src/styles/shadow.js +0 -51
  214. package/src/theming.js +0 -3
  215. package/src/utilities.js +0 -102
@@ -1,129 +0,0 @@
1
- import * as React from "react";
2
- import { StyleProp, ViewStyle } from "react-native";
3
- import {
4
- TabView,
5
- TabBar,
6
- SceneMap,
7
- SceneRendererProps,
8
- NavigationState,
9
- Route,
10
- } from "react-native-tab-view";
11
-
12
- import TabViewItem from "./TabViewItem";
13
- import type { IconSlot } from "../../interfaces/Icon";
14
- import { withTheme } from "../../theming";
15
- import type { Theme } from "../../styles/DefaultTheme";
16
-
17
- type TabBarProps = SceneRendererProps & {
18
- navigationState: NavigationState<any>;
19
- };
20
- type TabBarPosition = "top" | "bottom";
21
- type KeyboardDismissMode = "none" | "auto" | "on-drag";
22
-
23
- type TabViewProps = {
24
- onIndexChanged?: (index: number) => void;
25
- onEndReached?: () => void;
26
- tabBarPosition?: TabBarPosition;
27
- keyboardDismissMode?: KeyboardDismissMode;
28
- swipeEnabled?: boolean;
29
- scrollEnabled?: boolean;
30
- activeColor?: string;
31
- inactiveColor?: string;
32
- pressColor?: string;
33
- indicatorColor?: string;
34
- tabsBackgroundColor?: string;
35
- style?: StyleProp<ViewStyle>;
36
- theme: Theme;
37
- } & IconSlot;
38
-
39
- const TabViewComponent: React.FC<React.PropsWithChildren<TabViewProps>> = ({
40
- Icon,
41
- onIndexChanged,
42
- onEndReached,
43
- tabBarPosition,
44
- keyboardDismissMode,
45
- swipeEnabled,
46
- scrollEnabled,
47
- activeColor,
48
- inactiveColor,
49
- pressColor,
50
- indicatorColor,
51
- tabsBackgroundColor,
52
- style,
53
- theme,
54
- children,
55
- }) => {
56
- const [index, setIndex] = React.useState(0);
57
- const [routes, setRoutes] = React.useState<Route[]>([]);
58
- const [tabScenes, setTabScenes] = React.useState({});
59
-
60
- //Populate routes and scenes based on children
61
- React.useEffect(() => {
62
- const newRoutes: Route[] = [];
63
- const scenes: any = {};
64
-
65
- React.Children.toArray(children)
66
- .filter(
67
- (child) => React.isValidElement(child) && child.type === TabViewItem
68
- )
69
- .forEach((item: any, idx) => {
70
- const child = item as React.ReactElement;
71
- newRoutes.push({
72
- key: idx.toString(),
73
- title: child.props.title,
74
- icon: child.props.icon,
75
- accessibilityLabel: child.props.accessibilityLabel,
76
- });
77
- scenes[idx] = () => child;
78
- });
79
-
80
- setRoutes(newRoutes);
81
- setTabScenes(scenes);
82
- }, [children]);
83
-
84
- const indexChangeHandler = (i: number) => {
85
- setIndex(i);
86
- onIndexChanged?.(i);
87
- if (i === routes.length) {
88
- onEndReached?.();
89
- }
90
- };
91
-
92
- const renderTabBar: React.FC<TabBarProps> = (props) => {
93
- return (
94
- <TabBar
95
- {...props}
96
- activeColor={activeColor || theme.colors.primary}
97
- inactiveColor={inactiveColor || theme.colors.divider}
98
- pressColor={pressColor || theme.colors.primary}
99
- scrollEnabled={scrollEnabled}
100
- indicatorStyle={{
101
- backgroundColor: indicatorColor || theme.colors.primary,
102
- }}
103
- renderIcon={({ route, color }) =>
104
- route?.icon ? (
105
- <Icon name={route.icon} color={color} size={36} />
106
- ) : null
107
- }
108
- style={[
109
- { backgroundColor: tabsBackgroundColor || theme.colors.background },
110
- style,
111
- ]}
112
- />
113
- );
114
- };
115
-
116
- return (
117
- <TabView
118
- navigationState={{ index, routes }}
119
- renderScene={SceneMap(tabScenes)}
120
- renderTabBar={renderTabBar}
121
- onIndexChange={indexChangeHandler}
122
- tabBarPosition={tabBarPosition}
123
- keyboardDismissMode={keyboardDismissMode}
124
- swipeEnabled={swipeEnabled}
125
- />
126
- );
127
- };
128
-
129
- export default withTheme(TabViewComponent);
@@ -1,11 +0,0 @@
1
- import React from "react";
2
- import { StyleSheet, View } from "react-native";
3
- const TabViewItem = ({ style, children, }) => {
4
- return React.createElement(View, { style: [styles.parentContainer, style] }, children);
5
- };
6
- const styles = StyleSheet.create({
7
- parentContainer: {
8
- flex: 1,
9
- },
10
- });
11
- export default TabViewItem;
@@ -1,25 +0,0 @@
1
- import React from "react";
2
- import { StyleProp, ViewStyle, StyleSheet, View } from "react-native";
3
-
4
- //Props used by parent (TabView) to create tabs
5
- interface TabViewItemProps {
6
- title: string;
7
- icon?: string;
8
- accessibilityLabel?: string;
9
- style?: StyleProp<ViewStyle>;
10
- }
11
-
12
- const TabViewItem: React.FC<React.PropsWithChildren<TabViewItemProps>> = ({
13
- style,
14
- children,
15
- }) => {
16
- return <View style={[styles.parentContainer, style]}>{children}</View>;
17
- };
18
-
19
- const styles = StyleSheet.create({
20
- parentContainer: {
21
- flex: 1,
22
- },
23
- });
24
-
25
- export default TabViewItem;
@@ -1,2 +0,0 @@
1
- export { default as TabView } from "./TabView";
2
- export { default as TabViewItem } from "./TabViewItem";
@@ -1,2 +0,0 @@
1
- export { default as TabView } from "./TabView";
2
- export { default as TabViewItem } from "./TabViewItem";
@@ -1,33 +0,0 @@
1
- import * as React from "react";
2
- import { Text as NativeText, I18nManager } from "react-native";
3
- import { withTheme } from "../theming";
4
- class Text extends React.Component {
5
- constructor() {
6
- super(...arguments);
7
- this.state = {
8
- nativeProps: {},
9
- };
10
- }
11
- setNativeProps(args) {
12
- this.state.nativeProps = args || {};
13
- }
14
- render() {
15
- const { style, ...rest } = this.props;
16
- const writingDirection = I18nManager.isRTL ? "rtl" : "ltr";
17
- return (React.createElement(NativeText, { ...rest, ...this.state.nativeProps, ref: (c) => {
18
- this._root = c;
19
- }, style: [
20
- {
21
- textAlign: "left",
22
- writingDirection,
23
- },
24
- style,
25
- ] }));
26
- }
27
- }
28
- export const BaseLink = ({ style, theme, title, ...props }) => {
29
- return (React.createElement(Text, { hitSlop: 8, style: [{ color: theme.colors.primary }, style], theme: theme, ...props }, title));
30
- };
31
- const Link = withTheme(BaseLink);
32
- export { Link };
33
- export default withTheme(Text);
@@ -1,428 +0,0 @@
1
- import * as React from "react";
2
- import { View, Animated, TextInput as NativeTextInput, StyleSheet, Text, I18nManager, } from "react-native";
3
- import { withTheme } from "../theming";
4
- import { applyStyles, extractStyles } from "../utilities";
5
- const AnimatedText = Animated.createAnimatedComponent(Text);
6
- const FOCUS_ANIMATION_DURATION = 150;
7
- const BLUR_ANIMATION_DURATION = 180;
8
- const ICON_SIZE = 24;
9
- class TextField extends React.Component {
10
- constructor() {
11
- super(...arguments);
12
- this.state = {
13
- nativeProps: {},
14
- labeled: new Animated.Value(this.props.value || this.props.error ? 0 : 1),
15
- focused: false,
16
- placeholder: this.props.error ? this.props.placeholder : "",
17
- labelLayout: {
18
- measured: false,
19
- width: 0,
20
- },
21
- };
22
- this._timer = setTimeout(() => { }, 0);
23
- this._showPlaceholder = () => {
24
- clearTimeout(this._timer);
25
- // Set the placeholder in a delay to offset the label animation
26
- // If we show it immediately, they'll overlap and look ugly
27
- this._timer = setTimeout(() => this.setState({
28
- placeholder: this.props.placeholder,
29
- }), 50);
30
- };
31
- this._hidePlaceholder = () => this.setState({
32
- placeholder: "",
33
- });
34
- this._restoreLabel = () => Animated.timing(this.state.labeled, {
35
- toValue: 1,
36
- duration: FOCUS_ANIMATION_DURATION,
37
- useNativeDriver: true,
38
- }).start();
39
- this._minmizeLabel = () => Animated.timing(this.state.labeled, {
40
- toValue: 0,
41
- duration: BLUR_ANIMATION_DURATION,
42
- useNativeDriver: true,
43
- }).start();
44
- this._handleFocus = () => {
45
- if (this.props.disabled) {
46
- return;
47
- }
48
- this.setState({ focused: true });
49
- };
50
- this._handleBlur = () => {
51
- if (this.props.disabled) {
52
- return;
53
- }
54
- this.setState({ focused: false });
55
- };
56
- this._handleChangeText = (value) => {
57
- if (this.props.disabled) {
58
- return;
59
- }
60
- if (typeof value === "string") {
61
- this.setState({ value });
62
- this.props.onChangeText && this.props.onChangeText(value);
63
- }
64
- else {
65
- this.setState({ value: value.nativeEvent.text });
66
- this.props.onChangeText &&
67
- this.props.onChangeText(value.nativeEvent.text);
68
- }
69
- };
70
- this._root = undefined;
71
- }
72
- static getDerivedStateFromProps(nextProps, prevState) {
73
- return {
74
- value: typeof nextProps.value !== "undefined"
75
- ? nextProps.value
76
- : prevState.value,
77
- };
78
- }
79
- componentDidMount() {
80
- if (this.props.defaultValue) {
81
- this._handleChangeText(this.props.defaultValue);
82
- }
83
- if (this.props.placeholder) {
84
- this._minmizeLabel();
85
- }
86
- }
87
- componentDidUpdate(prevProps, prevState) {
88
- if (prevState.focused !== this.state.focused ||
89
- prevState.value !== this.state.value) {
90
- // The label should be minimized if the text input is focused, or has text
91
- // In minimized mode, the label moves up and becomes small
92
- if (this.state.value ||
93
- this.state.focused ||
94
- this.props.error ||
95
- this.props.placeholder) {
96
- this._minmizeLabel();
97
- }
98
- else {
99
- this._restoreLabel();
100
- }
101
- }
102
- if (prevState.focused !== this.state.focused ||
103
- prevProps.label !== this.props.label) {
104
- // Show placeholder text only if the input is focused, or has error, or there's no label
105
- // We don't show placeholder if there's a label because the label acts as placeholder
106
- // When focused, the label moves up, so we can show a placeholder
107
- if (this.state.focused || this.props.error || !this.props.label) {
108
- this._showPlaceholder();
109
- }
110
- else {
111
- this._hidePlaceholder();
112
- }
113
- }
114
- }
115
- componentWillUnmount() {
116
- clearTimeout(this._timer);
117
- }
118
- toggleFocus() {
119
- this.setState((prevState) => ({ focused: !prevState.focused }));
120
- }
121
- /**
122
- * @internal
123
- */
124
- setNativeProps(args) {
125
- this.setState((state) => ({
126
- ...state,
127
- nativeState: args || {},
128
- }));
129
- }
130
- isFocused() {
131
- return this._root && this._root.isFocused();
132
- }
133
- clear() {
134
- return this._root && this._root.clear();
135
- }
136
- focus() {
137
- return this._root && this._root.focus();
138
- }
139
- blur() {
140
- return this._root && this._root.blur();
141
- }
142
- render() {
143
- const { Icon, type = "underline", disabled = false, label, error = false, leftIconName, leftIconMode, rightIconName, assistiveText, underlineColor: underlineColorProp, activeBorderColor: activeBorderColorProp, multiline = false, numberOfLines = 4, style, theme: { colors, typography, roundness, disabledOpacity }, render = (props) => React.createElement(NativeTextInput, { ...props }), ...rest } = this.props;
144
- const MINIMIZED_LABEL_Y_OFFSET = -(typography.caption.lineHeight + 4);
145
- const OUTLINE_MINIMIZED_LABEL_Y_OFFSET = -(16 * 0.5 + 4);
146
- const MAXIMIZED_LABEL_FONT_SIZE = typography.subtitle1.fontSize;
147
- const MINIMIZED_LABEL_FONT_SIZE = typography.caption.fontSize;
148
- const hasActiveOutline = this.state.focused || error;
149
- let inputTextColor, activeColor, underlineColor, borderColor, placeholderColor, containerStyle, backgroundColor, inputStyle;
150
- inputTextColor = colors.strong;
151
- if (disabled) {
152
- activeColor = colors.light;
153
- placeholderColor = colors.light;
154
- borderColor = "transparent";
155
- underlineColor = "transparent";
156
- backgroundColor = colors.divider;
157
- }
158
- else {
159
- activeColor = error ? colors.error : activeBorderColorProp;
160
- placeholderColor = borderColor = colors.light;
161
- underlineColor = underlineColorProp;
162
- backgroundColor = colors.background;
163
- }
164
- if (rest.placeholderTextColor) {
165
- placeholderColor = rest.placeholderTextColor;
166
- }
167
- const { lineHeight, ...subtitle1 } = typography.subtitle1;
168
- inputStyle = {
169
- paddingVertical: 0,
170
- color: inputTextColor,
171
- paddingLeft: leftIconName && leftIconMode === "inset"
172
- ? ICON_SIZE + 12 + (type === "solid" ? 16 : 0)
173
- : 0,
174
- paddingRight: rightIconName ? ICON_SIZE + 16 + 4 : 12,
175
- ...subtitle1,
176
- };
177
- if (!multiline) {
178
- inputStyle.height = lineHeight;
179
- }
180
- let assistiveTextLeftMargin;
181
- if (type === "underline") {
182
- containerStyle = {
183
- borderTopLeftRadius: roundness,
184
- borderTopRightRadius: roundness,
185
- paddingBottom: 12,
186
- marginTop: 16,
187
- };
188
- if (leftIconName && leftIconMode === "outset") {
189
- assistiveTextLeftMargin = ICON_SIZE + 8;
190
- }
191
- else {
192
- assistiveTextLeftMargin = 0;
193
- }
194
- }
195
- else {
196
- containerStyle = {
197
- borderRadius: roundness,
198
- borderColor: hasActiveOutline ? activeColor : borderColor,
199
- borderWidth: 1,
200
- paddingTop: label ? 16 * 1.5 : 16,
201
- paddingBottom: label ? 16 * 0.5 : 16,
202
- opacity: disabled ? disabledOpacity : 1,
203
- backgroundColor,
204
- };
205
- if (leftIconName && leftIconMode === "inset") {
206
- assistiveTextLeftMargin = 16 + 4;
207
- }
208
- else if (leftIconName && leftIconMode === "outset") {
209
- assistiveTextLeftMargin = ICON_SIZE + 8 + 12;
210
- }
211
- else {
212
- assistiveTextLeftMargin = 12;
213
- }
214
- inputStyle.paddingHorizontal = 12;
215
- }
216
- if (leftIconName && leftIconMode === "outset") {
217
- containerStyle.marginLeft = ICON_SIZE + 8;
218
- }
219
- let leftIconColor;
220
- if (error) {
221
- leftIconColor = colors.error;
222
- }
223
- else if (this.state.focused) {
224
- leftIconColor = colors.primary;
225
- }
226
- else {
227
- leftIconColor = colors.light;
228
- }
229
- const leftIconProps = {
230
- size: 24,
231
- color: leftIconColor,
232
- name: leftIconName || "",
233
- };
234
- const leftIconStyle = {
235
- position: "absolute",
236
- marginTop: type === "solid"
237
- ? MINIMIZED_LABEL_FONT_SIZE + 4
238
- : leftIconMode === "outset"
239
- ? 16
240
- : 0,
241
- marginLeft: leftIconMode === "inset" && type === "solid" ? 16 : 0,
242
- };
243
- const labelStyle = {
244
- ...typography.subtitle1,
245
- top: type === "solid" ? 16 : 0,
246
- left: leftIconName && leftIconMode === "inset"
247
- ? ICON_SIZE + (type === "solid" ? 16 : 12)
248
- : 0,
249
- transform: [
250
- {
251
- // Move label to top
252
- translateY: this.state.labeled.interpolate({
253
- inputRange: [0, 1],
254
- outputRange: [
255
- type === "solid"
256
- ? OUTLINE_MINIMIZED_LABEL_Y_OFFSET
257
- : MINIMIZED_LABEL_Y_OFFSET,
258
- 0,
259
- ],
260
- }),
261
- },
262
- {
263
- // Make label smaller
264
- scale: this.state.labeled.interpolate({
265
- inputRange: [0, 1],
266
- outputRange: [
267
- MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE,
268
- 1,
269
- ],
270
- }),
271
- },
272
- {
273
- // Offset label scale since RN doesn't support transform origin
274
- translateX: this.state.labeled.interpolate({
275
- inputRange: [0, 1],
276
- outputRange: [
277
- -(1 - MINIMIZED_LABEL_FONT_SIZE / MAXIMIZED_LABEL_FONT_SIZE) *
278
- (this.state.labelLayout.width / 2),
279
- 0,
280
- ],
281
- }),
282
- },
283
- ],
284
- };
285
- const { textStyles } = extractStyles(style);
286
- const inputStyles = applyStyles([
287
- styles.input,
288
- inputStyle,
289
- type === "solid" ? { marginHorizontal: 12 } : {},
290
- ], textStyles);
291
- const { backgroundColor: bgColor, padding, paddingTop, paddingBottom, paddingLeft, paddingRight, borderRadius, borderWidth, borderTopWidth, borderRightWidth, borderBottomWidth, borderLeftWidth, borderColor: borderCol, ...styleProp } = StyleSheet.flatten(style || {});
292
- return (React.createElement(View, { style: [styles.container, styleProp] },
293
- leftIconName && leftIconMode === "outset" ? (React.createElement(Icon, { ...leftIconProps, style: leftIconStyle })) : null,
294
- React.createElement(View, { style: applyStyles([containerStyle], {
295
- height: style === null || style === void 0 ? void 0 : style.height,
296
- backgroundColor: bgColor,
297
- padding,
298
- paddingTop,
299
- paddingBottom,
300
- paddingLeft,
301
- paddingRight,
302
- borderRadius,
303
- borderWidth,
304
- borderTopWidth,
305
- borderRightWidth,
306
- borderBottomWidth,
307
- borderLeftWidth,
308
- borderColor: borderCol,
309
- }) },
310
- type === "underline" ? (
311
- // When type === 'flat', render an underline
312
- React.createElement(Animated.View, { style: [
313
- styles.underline,
314
- {
315
- backgroundColor: bgColor ||
316
- (error
317
- ? colors.error
318
- : this.state.focused
319
- ? activeColor
320
- : underlineColor),
321
- // Underlines is thinner when input is not focused
322
- transform: [{ scaleY: this.state.focused ? 1 : 0.5 }],
323
- },
324
- ] })) : null,
325
- label ? (
326
- // Position colored placeholder and gray placeholder on top of each other and crossfade them
327
- // This gives the effect of animating the color, but allows us to use native driver
328
- React.createElement(View, { pointerEvents: "none", style: [
329
- StyleSheet.absoluteFill,
330
- {
331
- opacity:
332
- // Hide the label in minimized state until we measure its width
333
- this.state.value || this.state.focused
334
- ? this.state.labelLayout.measured
335
- ? 1
336
- : 0
337
- : 1,
338
- },
339
- ] },
340
- React.createElement(AnimatedText, { onLayout: (e) => this.setState({
341
- labelLayout: {
342
- width: e.nativeEvent.layout.width,
343
- measured: true,
344
- },
345
- }), style: [
346
- styles.placeholder,
347
- type === "solid" ? { paddingHorizontal: 12 } : {},
348
- labelStyle,
349
- {
350
- color: placeholderColor,
351
- opacity: this.state.labeled.interpolate({
352
- inputRange: [0, 1],
353
- outputRange: [hasActiveOutline ? 1 : 0, 0],
354
- }),
355
- },
356
- ], numberOfLines: 1 }, label),
357
- React.createElement(AnimatedText, { style: [
358
- styles.placeholder,
359
- type === "solid" ? { paddingHorizontal: 12 } : {},
360
- labelStyle,
361
- {
362
- color: placeholderColor,
363
- opacity: hasActiveOutline ? this.state.labeled : 1,
364
- },
365
- ], numberOfLines: 1 }, label))) : null,
366
- leftIconName && leftIconMode === "inset" ? (React.createElement(View, { style: {
367
- justifyContent: type === "solid" ? "center" : undefined,
368
- } },
369
- React.createElement(Icon, { ...leftIconProps, style: leftIconStyle }))) : null,
370
- render({
371
- ref: (c) => {
372
- this._root = c;
373
- },
374
- onChange: this._handleChangeText,
375
- placeholder: label
376
- ? this.state.placeholder
377
- : this.props.placeholder,
378
- placeholderTextColor: placeholderColor,
379
- editable: !disabled,
380
- selectionColor: activeColor,
381
- multiline,
382
- numberOfLines,
383
- onFocus: this._handleFocus,
384
- onBlur: this._handleBlur,
385
- underlineColorAndroid: "transparent",
386
- style: inputStyles,
387
- ...rest,
388
- ...this.state.nativeProps,
389
- value: this.state.value,
390
- })),
391
- rightIconName ? (React.createElement(Icon, { name: rightIconName, size: ICON_SIZE, color: colors.light, style: {
392
- position: "absolute",
393
- right: 16,
394
- marginTop: type === "solid" ? MINIMIZED_LABEL_FONT_SIZE + 4 : 16,
395
- } })) : null,
396
- assistiveText ? (React.createElement(Text, { style: [
397
- {
398
- color: error ? colors.error : colors.light,
399
- marginTop: 8,
400
- marginLeft: assistiveTextLeftMargin,
401
- },
402
- ] }, assistiveText)) : null));
403
- }
404
- }
405
- export default withTheme(TextField);
406
- const styles = StyleSheet.create({
407
- container: {
408
- alignSelf: "stretch",
409
- },
410
- placeholder: {
411
- position: "absolute",
412
- left: 0,
413
- },
414
- underline: {
415
- position: "absolute",
416
- left: 0,
417
- right: 0,
418
- bottom: 0,
419
- height: 2,
420
- },
421
- input: {
422
- flexGrow: 1,
423
- justifyContent: "center",
424
- textAlignVertical: "center",
425
- margin: 0,
426
- textAlign: I18nManager.isRTL ? "right" : "left",
427
- },
428
- });
@@ -1,39 +0,0 @@
1
- import * as React from "react";
2
- import { withTheme } from "../theming";
3
- import { StyleSheet } from "react-native";
4
- import IconButton from "./IconButton";
5
- const ToggleButton = ({ Icon, icon, toggled = false, onPress = () => { }, defaultValue, disabled = false, color = "primary", colorSecondary = "surface", borderColor = "divider", iconSize = 25, width = 50, height = 50, theme: { colors }, style, ...rest }) => {
6
- const [internalValue, setInternalValue] = React.useState(toggled || defaultValue || false);
7
- React.useEffect(() => {
8
- if (toggled != null) {
9
- setInternalValue(toggled);
10
- }
11
- }, [toggled]);
12
- React.useEffect(() => {
13
- if (defaultValue != null) {
14
- setInternalValue(defaultValue);
15
- }
16
- }, [defaultValue]);
17
- const handlePress = () => {
18
- setInternalValue(!internalValue);
19
- onPress(!internalValue);
20
- };
21
- return (React.createElement(IconButton, { Icon: Icon, icon: icon, size: iconSize, color: internalValue ? colors[color] : colors[colorSecondary], onPress: handlePress, disabled: disabled, style: [
22
- styles.mainContainer,
23
- {
24
- width,
25
- height,
26
- backgroundColor: internalValue
27
- ? colors[colorSecondary]
28
- : colors[color],
29
- borderColor: colors[borderColor],
30
- },
31
- style,
32
- ], ...rest }));
33
- };
34
- const styles = StyleSheet.create({
35
- mainContainer: {
36
- borderWidth: 1,
37
- },
38
- });
39
- export default withTheme(ToggleButton);
@@ -1,12 +0,0 @@
1
- import React from "react";
2
- import { Pressable } from "react-native";
3
- export default function Touchable({ children, disabled, onPress, activeOpacity = 0.8, disabledOpacity = 0.8, delayLongPress, hitSlop, style, ...props }) {
4
- return (React.createElement(Pressable, { disabled: disabled, onPress: onPress, delayLongPress: delayLongPress ? delayLongPress : 500, hitSlop: hitSlop ? hitSlop : 8, style: ({ pressed }) => {
5
- return [
6
- {
7
- opacity: pressed ? activeOpacity : disabled ? disabledOpacity : 1,
8
- },
9
- style,
10
- ];
11
- }, ...props }, children));
12
- }
@@ -1,2 +0,0 @@
1
- import { TouchableOpacity } from "react-native";
2
- export default TouchableOpacity;