@draftbit/core 46.8.2-fee87c.2 → 46.9.1-01e871.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 (80) hide show
  1. package/lib/commonjs/components/BottomSheet/BottomSheet.js +89 -0
  2. package/lib/commonjs/components/BottomSheet/BottomSheetComponent.js +464 -0
  3. package/lib/commonjs/components/BottomSheet/index.js +13 -0
  4. package/lib/commonjs/components/CircleImage.js +15 -1
  5. package/lib/commonjs/components/Markdown.js +30 -0
  6. package/lib/commonjs/components/Shadow.js +46 -0
  7. package/lib/commonjs/components/TabView/TabView.js +22 -6
  8. package/lib/commonjs/index.js +21 -0
  9. package/lib/commonjs/mappings/BottomSheet.js +75 -0
  10. package/lib/commonjs/mappings/FlashList.js +2 -8
  11. package/lib/commonjs/mappings/Markdown.js +27 -0
  12. package/lib/commonjs/mappings/Shadow.js +102 -0
  13. package/lib/commonjs/mappings/TabView.js +6 -5
  14. package/lib/commonjs/mappings/TabViewItem.js +5 -3
  15. package/lib/module/components/BottomSheet/BottomSheet.js +81 -0
  16. package/lib/module/components/BottomSheet/BottomSheetComponent.js +470 -0
  17. package/lib/module/components/BottomSheet/index.js +1 -0
  18. package/lib/module/components/Markdown.js +20 -0
  19. package/lib/module/components/Shadow.js +38 -0
  20. package/lib/module/components/TabView/TabView.js +22 -5
  21. package/lib/module/index.js +3 -0
  22. package/lib/module/mappings/BottomSheet.js +68 -0
  23. package/lib/module/mappings/FlashList.js +3 -9
  24. package/lib/module/mappings/Markdown.js +20 -0
  25. package/lib/module/mappings/Shadow.js +95 -0
  26. package/lib/module/mappings/TabView.js +7 -6
  27. package/lib/module/mappings/TabViewItem.js +6 -4
  28. package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts +20 -0
  29. package/lib/typescript/src/components/BottomSheet/BottomSheet.d.ts.map +1 -0
  30. package/lib/typescript/src/components/BottomSheet/BottomSheetComponent.d.ts +170 -0
  31. package/lib/typescript/src/components/BottomSheet/BottomSheetComponent.d.ts.map +1 -0
  32. package/lib/typescript/src/components/BottomSheet/index.d.ts +2 -0
  33. package/lib/typescript/src/components/BottomSheet/index.d.ts.map +1 -0
  34. package/lib/typescript/src/components/Markdown.d.ts +8 -0
  35. package/lib/typescript/src/components/Markdown.d.ts.map +1 -0
  36. package/lib/typescript/src/components/Shadow.d.ts +24 -0
  37. package/lib/typescript/src/components/Shadow.d.ts.map +1 -0
  38. package/lib/typescript/src/components/TabView/TabView.d.ts.map +1 -1
  39. package/lib/typescript/src/components/TabView/TabViewItem.d.ts +1 -1
  40. package/lib/typescript/src/components/TabView/TabViewItem.d.ts.map +1 -1
  41. package/lib/typescript/src/index.d.ts +3 -0
  42. package/lib/typescript/src/index.d.ts.map +1 -1
  43. package/lib/typescript/src/mappings/BottomSheet.d.ts +120 -0
  44. package/lib/typescript/src/mappings/BottomSheet.d.ts.map +1 -0
  45. package/lib/typescript/src/mappings/FlashList.d.ts +0 -6
  46. package/lib/typescript/src/mappings/FlashList.d.ts.map +1 -1
  47. package/lib/typescript/src/mappings/Markdown.d.ts +20 -0
  48. package/lib/typescript/src/mappings/Markdown.d.ts.map +1 -0
  49. package/lib/typescript/src/mappings/Shadow.d.ts +173 -0
  50. package/lib/typescript/src/mappings/Shadow.d.ts.map +1 -0
  51. package/lib/typescript/src/mappings/TabView.d.ts.map +1 -1
  52. package/lib/typescript/src/mappings/TabViewItem.d.ts.map +1 -1
  53. package/package.json +6 -3
  54. package/src/components/BottomSheet/BottomSheet.js +57 -0
  55. package/src/components/BottomSheet/BottomSheet.tsx +121 -0
  56. package/src/components/BottomSheet/BottomSheetComponent.js +437 -0
  57. package/src/components/BottomSheet/BottomSheetComponent.tsx +895 -0
  58. package/src/components/BottomSheet/index.js +1 -0
  59. package/src/components/BottomSheet/index.ts +1 -0
  60. package/src/components/Markdown.js +10 -0
  61. package/src/components/Markdown.tsx +22 -0
  62. package/src/components/Shadow.js +16 -0
  63. package/src/components/Shadow.tsx +62 -0
  64. package/src/components/TabView/TabView.js +16 -7
  65. package/src/components/TabView/TabView.tsx +25 -7
  66. package/src/components/TabView/TabViewItem.tsx +1 -1
  67. package/src/index.js +3 -0
  68. package/src/index.tsx +5 -0
  69. package/src/mappings/BottomSheet.js +64 -0
  70. package/src/mappings/BottomSheet.ts +78 -0
  71. package/src/mappings/FlashList.js +9 -9
  72. package/src/mappings/FlashList.ts +9 -9
  73. package/src/mappings/Markdown.js +25 -0
  74. package/src/mappings/Markdown.ts +32 -0
  75. package/src/mappings/Shadow.js +95 -0
  76. package/src/mappings/Shadow.ts +104 -0
  77. package/src/mappings/TabView.js +11 -5
  78. package/src/mappings/TabView.ts +11 -5
  79. package/src/mappings/TabViewItem.js +4 -2
  80. package/src/mappings/TabViewItem.ts +4 -1
@@ -0,0 +1,120 @@
1
+ export declare const SEED_DATA: {
2
+ name: string;
3
+ tag: string;
4
+ description: string;
5
+ category: string;
6
+ stylesPanelSections: string[];
7
+ layout: {
8
+ paddingHorizontal: number;
9
+ paddingVertical: number;
10
+ flex: number;
11
+ };
12
+ triggers: string[];
13
+ props: {
14
+ onSettle: {
15
+ label: string;
16
+ description: string;
17
+ editable: boolean;
18
+ required: boolean;
19
+ formType: string;
20
+ propType: string;
21
+ defaultValue: null;
22
+ group: string;
23
+ };
24
+ snapPoints: {
25
+ group: string;
26
+ label: string;
27
+ description: string;
28
+ editable: boolean;
29
+ required: boolean;
30
+ formType: string;
31
+ propType: string;
32
+ options: never[];
33
+ defaultValue: null;
34
+ };
35
+ initialSnapIndex: {
36
+ label: string;
37
+ description: string;
38
+ formType: string;
39
+ propType: string;
40
+ group: string;
41
+ defaultValue: null;
42
+ editable: boolean;
43
+ required: boolean;
44
+ step: number;
45
+ };
46
+ showHandle: {
47
+ label: string;
48
+ description: string;
49
+ formType: string;
50
+ propType: string;
51
+ defaultValue: boolean;
52
+ editable: boolean;
53
+ required: boolean;
54
+ group: string;
55
+ };
56
+ handleColor: {
57
+ group: string;
58
+ label: string;
59
+ description: string;
60
+ editable: boolean;
61
+ required: boolean;
62
+ defaultValue: null;
63
+ formType: string;
64
+ propType: string;
65
+ };
66
+ topBorderRadius: {
67
+ label: string;
68
+ description: string;
69
+ formType: string;
70
+ propType: string;
71
+ group: string;
72
+ defaultValue: null;
73
+ editable: boolean;
74
+ required: boolean;
75
+ step: number;
76
+ };
77
+ borderWidth: {
78
+ label: string;
79
+ description: string;
80
+ formType: string;
81
+ propType: string;
82
+ group: string;
83
+ defaultValue: null;
84
+ editable: boolean;
85
+ required: boolean;
86
+ step: number;
87
+ };
88
+ borderColor: {
89
+ group: string;
90
+ label: string;
91
+ description: string;
92
+ editable: boolean;
93
+ required: boolean;
94
+ defaultValue: null;
95
+ formType: string;
96
+ propType: string;
97
+ };
98
+ showsVerticalScrollIndicator: {
99
+ label: string;
100
+ description: string;
101
+ formType: string;
102
+ propType: string;
103
+ defaultValue: boolean;
104
+ editable: boolean;
105
+ required: boolean;
106
+ group: string;
107
+ };
108
+ bounces: {
109
+ label: string;
110
+ description: string;
111
+ formType: string;
112
+ propType: string;
113
+ defaultValue: boolean;
114
+ editable: boolean;
115
+ required: boolean;
116
+ group: string;
117
+ };
118
+ };
119
+ };
120
+ //# sourceMappingURL=BottomSheet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomSheet.d.ts","sourceRoot":"","sources":["../../../../src/mappings/BottomSheet.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkErB,CAAC"}
@@ -5,9 +5,6 @@ export declare const SEED_DATA: ({
5
5
  packageName: string;
6
6
  category: string;
7
7
  stylesPanelSections: string[];
8
- layout: {
9
- flex: number;
10
- };
11
8
  triggers: string[];
12
9
  props: {
13
10
  onRefresh: {
@@ -113,9 +110,6 @@ export declare const SEED_DATA: ({
113
110
  packageName: string;
114
111
  category: string;
115
112
  stylesPanelSections: string[];
116
- layout: {
117
- flex: number;
118
- };
119
113
  triggers: string[];
120
114
  props: {
121
115
  onRefresh: {
@@ -1 +1 @@
1
- {"version":3,"file":"FlashList.d.ts","sourceRoot":"","sources":["../../../../src/mappings/FlashList.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqHrB,CAAC"}
1
+ {"version":3,"file":"FlashList.d.ts","sourceRoot":"","sources":["../../../../src/mappings/FlashList.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqHrB,CAAC"}
@@ -0,0 +1,20 @@
1
+ export declare const SEED_DATA: {
2
+ name: string;
3
+ tag: string;
4
+ description: string;
5
+ category: string;
6
+ stylesPanelSections: string[];
7
+ props: {
8
+ children: {
9
+ group: string;
10
+ label: string;
11
+ description: string;
12
+ editable: boolean;
13
+ required: boolean;
14
+ formType: string;
15
+ propType: string;
16
+ defaultValue: string;
17
+ };
18
+ };
19
+ };
20
+ //# sourceMappingURL=Markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Markdown.d.ts","sourceRoot":"","sources":["../../../../src/mappings/Markdown.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;CAuBrB,CAAC"}
@@ -0,0 +1,173 @@
1
+ export declare const SEED_DATA: {
2
+ name: string;
3
+ tag: string;
4
+ description: string;
5
+ category: string;
6
+ stylesPanelSections: string[];
7
+ props: {
8
+ disabled: {
9
+ label: string;
10
+ description: string;
11
+ group: string;
12
+ editable: boolean;
13
+ required: boolean;
14
+ formType: string;
15
+ propType: string;
16
+ defaultValue: null;
17
+ };
18
+ startColor: {
19
+ group: string;
20
+ label: string;
21
+ description: string;
22
+ editable: boolean;
23
+ required: boolean;
24
+ defaultValue: null;
25
+ formType: string;
26
+ propType: string;
27
+ };
28
+ endColor: {
29
+ group: string;
30
+ label: string;
31
+ description: string;
32
+ editable: boolean;
33
+ required: boolean;
34
+ defaultValue: null;
35
+ formType: string;
36
+ propType: string;
37
+ };
38
+ distance: {
39
+ label: string;
40
+ description: string;
41
+ formType: string;
42
+ propType: string;
43
+ group: string;
44
+ defaultValue: null;
45
+ editable: boolean;
46
+ required: boolean;
47
+ step: number;
48
+ };
49
+ paintInside: {
50
+ label: string;
51
+ description: string;
52
+ formType: string;
53
+ propType: string;
54
+ defaultValue: boolean;
55
+ editable: boolean;
56
+ required: boolean;
57
+ group: string;
58
+ };
59
+ stretch: {
60
+ label: string;
61
+ description: string;
62
+ formType: string;
63
+ propType: string;
64
+ defaultValue: boolean;
65
+ editable: boolean;
66
+ required: boolean;
67
+ group: string;
68
+ };
69
+ offsetX: {
70
+ label: string;
71
+ description: string;
72
+ formType: string;
73
+ propType: string;
74
+ group: string;
75
+ defaultValue: null;
76
+ editable: boolean;
77
+ required: boolean;
78
+ step: number;
79
+ };
80
+ offsetY: {
81
+ label: string;
82
+ description: string;
83
+ formType: string;
84
+ propType: string;
85
+ group: string;
86
+ defaultValue: null;
87
+ editable: boolean;
88
+ required: boolean;
89
+ step: number;
90
+ };
91
+ showShadowSideStart: {
92
+ label: string;
93
+ description: string;
94
+ formType: string;
95
+ propType: string;
96
+ defaultValue: boolean;
97
+ editable: boolean;
98
+ required: boolean;
99
+ group: string;
100
+ };
101
+ showShadowSideEnd: {
102
+ label: string;
103
+ description: string;
104
+ formType: string;
105
+ propType: string;
106
+ defaultValue: boolean;
107
+ editable: boolean;
108
+ required: boolean;
109
+ group: string;
110
+ };
111
+ showShadowSideTop: {
112
+ label: string;
113
+ description: string;
114
+ formType: string;
115
+ propType: string;
116
+ defaultValue: boolean;
117
+ editable: boolean;
118
+ required: boolean;
119
+ group: string;
120
+ };
121
+ showShadowSideBottom: {
122
+ label: string;
123
+ description: string;
124
+ formType: string;
125
+ propType: string;
126
+ defaultValue: boolean;
127
+ editable: boolean;
128
+ required: boolean;
129
+ group: string;
130
+ };
131
+ showShadowCornerTopStart: {
132
+ label: string;
133
+ description: string;
134
+ formType: string;
135
+ propType: string;
136
+ defaultValue: boolean;
137
+ editable: boolean;
138
+ required: boolean;
139
+ group: string;
140
+ };
141
+ showShadowCornerTopEnd: {
142
+ label: string;
143
+ description: string;
144
+ formType: string;
145
+ propType: string;
146
+ defaultValue: boolean;
147
+ editable: boolean;
148
+ required: boolean;
149
+ group: string;
150
+ };
151
+ showShadowCornerBottomStart: {
152
+ label: string;
153
+ description: string;
154
+ formType: string;
155
+ propType: string;
156
+ defaultValue: boolean;
157
+ editable: boolean;
158
+ required: boolean;
159
+ group: string;
160
+ };
161
+ showShadowCornerBottomEnd: {
162
+ label: string;
163
+ description: string;
164
+ formType: string;
165
+ propType: string;
166
+ defaultValue: boolean;
167
+ editable: boolean;
168
+ required: boolean;
169
+ group: string;
170
+ };
171
+ };
172
+ };
173
+ //# sourceMappingURL=Shadow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Shadow.d.ts","sourceRoot":"","sources":["../../../../src/mappings/Shadow.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6FrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabView.d.ts","sourceRoot":"","sources":["../../../../src/mappings/TabView.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmErB,CAAC"}
1
+ {"version":3,"file":"TabView.d.ts","sourceRoot":"","sources":["../../../../src/mappings/TabView.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyErB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabViewItem.d.ts","sourceRoot":"","sources":["../../../../src/mappings/TabViewItem.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;CA2BrB,CAAC"}
1
+ {"version":3,"file":"TabViewItem.d.ts","sourceRoot":"","sources":["../../../../src/mappings/TabViewItem.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;CA6BrB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@draftbit/core",
3
- "version": "46.8.2-fee87c.2+fee87cb",
3
+ "version": "46.9.1-01e871.2+01e871a",
4
4
  "description": "Core (non-native) Components",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -41,7 +41,7 @@
41
41
  "dependencies": {
42
42
  "@date-io/date-fns": "^1.3.13",
43
43
  "@draftbit/react-theme-provider": "^2.1.1",
44
- "@draftbit/types": "^46.8.2-fee87c.2+fee87cb",
44
+ "@draftbit/types": "^46.9.1-01e871.2+01e871a",
45
45
  "@material-ui/core": "^4.11.0",
46
46
  "@material-ui/pickers": "^3.2.10",
47
47
  "@react-native-community/slider": "4.2.3",
@@ -54,8 +54,11 @@
54
54
  "lodash.omit": "^4.5.0",
55
55
  "lodash.tonumber": "^4.0.3",
56
56
  "react-native-deck-swiper": "^2.0.12",
57
+ "react-native-gesture-handler": "^2.9.0",
58
+ "react-native-markdown-display": "^7.0.0-alpha.2",
57
59
  "react-native-modal-datetime-picker": "^13.0.0",
58
60
  "react-native-pager-view": "5.4.24",
61
+ "react-native-shadow-2": "^7.0.6",
59
62
  "react-native-svg": "12.3.0",
60
63
  "react-native-tab-view": "^3.4.0",
61
64
  "react-native-typography": "^1.4.1",
@@ -94,5 +97,5 @@
94
97
  ]
95
98
  ]
96
99
  },
97
- "gitHead": "fee87cb4bc771a1e2aa0cd8648590bc42903c400"
100
+ "gitHead": "01e871a0a7d195a2b843ef1317f1535e5f377a2e"
98
101
  }
@@ -0,0 +1,57 @@
1
+ import React from "react";
2
+ import { StyleSheet, View, } from "react-native";
3
+ import BottomSheetComponent from "./BottomSheetComponent";
4
+ import { withTheme } from "../../theming";
5
+ const BottomSheet = ({ theme, snapPoints = ["10%", "50%", "80%"], initialSnapIndex = 0, showHandle = true, handleColor = theme.colors.divider, topBorderRadius = 20, borderWidth = 1, borderColor = theme.colors.divider, onSettle, style, children, ...rest }) => {
6
+ const backgroundColor = (style === null || style === void 0 ? void 0 : style.backgroundColor) || theme.colors.background;
7
+ return (React.createElement(View, { style: styles.parentContainer, pointerEvents: "box-none" },
8
+ React.createElement(BottomSheetComponent, { componentType: "ScrollView", snapPoints: snapPoints, initialSnapIndex: initialSnapIndex, renderHandle: () => (React.createElement(React.Fragment, null, showHandle && (React.createElement(View, { style: [
9
+ styles.handleContainer,
10
+ {
11
+ backgroundColor,
12
+ borderTopLeftRadius: topBorderRadius,
13
+ borderTopRightRadius: topBorderRadius,
14
+ },
15
+ ] },
16
+ React.createElement(View, { style: [styles.handle, { backgroundColor: handleColor }] }))))), contentContainerStyle: [styles.contentContainerStyle, style], containerStyle: StyleSheet.flatten([
17
+ styles.containerStyle,
18
+ {
19
+ backgroundColor,
20
+ borderTopLeftRadius: topBorderRadius,
21
+ borderTopRightRadius: topBorderRadius,
22
+ borderWidth,
23
+ borderColor,
24
+ },
25
+ ]), onSettle: onSettle, ...rest }, children)));
26
+ };
27
+ const styles = StyleSheet.create({
28
+ //Render on top of everything
29
+ parentContainer: {
30
+ position: "absolute",
31
+ left: 0,
32
+ right: 0,
33
+ top: 0,
34
+ bottom: 0,
35
+ zIndex: 10,
36
+ overflow: "hidden",
37
+ },
38
+ contentContainerStyle: {
39
+ paddingHorizontal: 16,
40
+ paddingVertical: 10,
41
+ flex: 1,
42
+ },
43
+ containerStyle: {
44
+ flex: 1,
45
+ overflow: "hidden",
46
+ },
47
+ handleContainer: {
48
+ alignItems: "center",
49
+ paddingVertical: 20,
50
+ },
51
+ handle: {
52
+ width: 40,
53
+ height: 2,
54
+ borderRadius: 4,
55
+ },
56
+ });
57
+ export default withTheme(BottomSheet);
@@ -0,0 +1,121 @@
1
+ import React from "react";
2
+ import {
3
+ StyleSheet,
4
+ View,
5
+ StyleProp,
6
+ ViewStyle,
7
+ ScrollViewProps,
8
+ } from "react-native";
9
+
10
+ import BottomSheetComponent from "./BottomSheetComponent";
11
+ import type { Theme } from "../../styles/DefaultTheme";
12
+ import { withTheme } from "../../theming";
13
+
14
+ export interface BottomSheetProps extends ScrollViewProps {
15
+ snapPoints?: (string | number)[];
16
+ initialSnapIndex?: number;
17
+ showHandle?: boolean;
18
+ handleColor?: string;
19
+ topBorderRadius?: number;
20
+ borderWidth?: number;
21
+ borderColor?: string;
22
+ onSettle?: (index: number) => void;
23
+ style?: StyleProp<ViewStyle>;
24
+ theme: Theme;
25
+ }
26
+
27
+ const BottomSheet: React.FC<React.PropsWithChildren<BottomSheetProps>> = ({
28
+ theme,
29
+ snapPoints = ["10%", "50%", "80%"],
30
+ initialSnapIndex = 0,
31
+ showHandle = true,
32
+ handleColor = theme.colors.divider,
33
+ topBorderRadius = 20,
34
+ borderWidth = 1,
35
+ borderColor = theme.colors.divider,
36
+ onSettle,
37
+ style,
38
+ children,
39
+ ...rest
40
+ }) => {
41
+ const backgroundColor =
42
+ (style as ViewStyle)?.backgroundColor || theme.colors.background;
43
+
44
+ return (
45
+ <View style={styles.parentContainer} pointerEvents="box-none">
46
+ <BottomSheetComponent
47
+ componentType="ScrollView"
48
+ snapPoints={snapPoints}
49
+ initialSnapIndex={initialSnapIndex}
50
+ renderHandle={() => (
51
+ <>
52
+ {showHandle && (
53
+ <View
54
+ style={[
55
+ styles.handleContainer,
56
+ {
57
+ backgroundColor,
58
+ borderTopLeftRadius: topBorderRadius,
59
+ borderTopRightRadius: topBorderRadius,
60
+ },
61
+ ]}
62
+ >
63
+ <View
64
+ style={[styles.handle, { backgroundColor: handleColor }]}
65
+ />
66
+ </View>
67
+ )}
68
+ </>
69
+ )}
70
+ contentContainerStyle={[styles.contentContainerStyle, style]}
71
+ containerStyle={StyleSheet.flatten([
72
+ styles.containerStyle,
73
+ {
74
+ backgroundColor,
75
+ borderTopLeftRadius: topBorderRadius,
76
+ borderTopRightRadius: topBorderRadius,
77
+ borderWidth,
78
+ borderColor,
79
+ },
80
+ ])}
81
+ onSettle={onSettle}
82
+ {...rest}
83
+ >
84
+ {children}
85
+ </BottomSheetComponent>
86
+ </View>
87
+ );
88
+ };
89
+
90
+ const styles = StyleSheet.create({
91
+ //Render on top of everything
92
+ parentContainer: {
93
+ position: "absolute",
94
+ left: 0,
95
+ right: 0,
96
+ top: 0,
97
+ bottom: 0,
98
+ zIndex: 10,
99
+ overflow: "hidden",
100
+ },
101
+ contentContainerStyle: {
102
+ paddingHorizontal: 16,
103
+ paddingVertical: 10,
104
+ flex: 1,
105
+ },
106
+ containerStyle: {
107
+ flex: 1,
108
+ overflow: "hidden",
109
+ },
110
+ handleContainer: {
111
+ alignItems: "center",
112
+ paddingVertical: 20,
113
+ },
114
+ handle: {
115
+ width: 40,
116
+ height: 2,
117
+ borderRadius: 4,
118
+ },
119
+ });
120
+
121
+ export default withTheme(BottomSheet);