@indra-inter/neobrutalism-components 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1330 -0
- package/dist/module/assets/avatar-profile.png +0 -0
- package/dist/module/components/accordion/accordion.js +203 -0
- package/dist/module/components/accordion/accordion.js.map +1 -0
- package/dist/module/components/app-bar/app-bar.js +140 -0
- package/dist/module/components/app-bar/app-bar.js.map +1 -0
- package/dist/module/components/avatar/avatar.js +184 -0
- package/dist/module/components/avatar/avatar.js.map +1 -0
- package/dist/module/components/badge/badge.js +133 -0
- package/dist/module/components/badge/badge.js.map +1 -0
- package/dist/module/components/bottom-navigation/bottom-navigation.js +166 -0
- package/dist/module/components/bottom-navigation/bottom-navigation.js.map +1 -0
- package/dist/module/components/bottom-sheet/bottom-sheet.js +285 -0
- package/dist/module/components/bottom-sheet/bottom-sheet.js.map +1 -0
- package/dist/module/components/button/button.js +253 -0
- package/dist/module/components/button/button.js.map +1 -0
- package/dist/module/components/calendar/calendar.js +458 -0
- package/dist/module/components/calendar/calendar.js.map +1 -0
- package/dist/module/components/call-item/call-item.js +128 -0
- package/dist/module/components/call-item/call-item.js.map +1 -0
- package/dist/module/components/card/card.js +189 -0
- package/dist/module/components/card/card.js.map +1 -0
- package/dist/module/components/chat-list-item/chat-list-item.js +212 -0
- package/dist/module/components/chat-list-item/chat-list-item.js.map +1 -0
- package/dist/module/components/checkbox/checkbox.js +141 -0
- package/dist/module/components/checkbox/checkbox.js.map +1 -0
- package/dist/module/components/dialog/dialog.js +342 -0
- package/dist/module/components/dialog/dialog.js.map +1 -0
- package/dist/module/components/divider/divider.js +41 -0
- package/dist/module/components/divider/divider.js.map +1 -0
- package/dist/module/components/dropdown/dropdown-menu.js +214 -0
- package/dist/module/components/dropdown/dropdown-menu.js.map +1 -0
- package/dist/module/components/dropdown/dropdown.js +616 -0
- package/dist/module/components/dropdown/dropdown.js.map +1 -0
- package/dist/module/components/dropdown/types.js +4 -0
- package/dist/module/components/dropdown/types.js.map +1 -0
- package/dist/module/components/icon-button/icon-button.js +140 -0
- package/dist/module/components/icon-button/icon-button.js.map +1 -0
- package/dist/module/components/input/currency-input.js +60 -0
- package/dist/module/components/input/currency-input.js.map +1 -0
- package/dist/module/components/input/input.js +281 -0
- package/dist/module/components/input/input.js.map +1 -0
- package/dist/module/components/input/otp-input.js +196 -0
- package/dist/module/components/input/otp-input.js.map +1 -0
- package/dist/module/components/input/password-input.js +74 -0
- package/dist/module/components/input/password-input.js.map +1 -0
- package/dist/module/components/input/phone-input.js +68 -0
- package/dist/module/components/input/phone-input.js.map +1 -0
- package/dist/module/components/input/url-input.js +43 -0
- package/dist/module/components/input/url-input.js.map +1 -0
- package/dist/module/components/list-item/list-item.js +148 -0
- package/dist/module/components/list-item/list-item.js.map +1 -0
- package/dist/module/components/pin-code-field/pin-code-field.js +164 -0
- package/dist/module/components/pin-code-field/pin-code-field.js.map +1 -0
- package/dist/module/components/progress/progress.js +261 -0
- package/dist/module/components/progress/progress.js.map +1 -0
- package/dist/module/components/radio/radio.js +135 -0
- package/dist/module/components/radio/radio.js.map +1 -0
- package/dist/module/components/skeleton/skeleton.js +328 -0
- package/dist/module/components/skeleton/skeleton.js.map +1 -0
- package/dist/module/components/switch/switch.js +170 -0
- package/dist/module/components/switch/switch.js.map +1 -0
- package/dist/module/components/tabs/tabs.js +197 -0
- package/dist/module/components/tabs/tabs.js.map +1 -0
- package/dist/module/components/toast/toast-provider.js +117 -0
- package/dist/module/components/toast/toast-provider.js.map +1 -0
- package/dist/module/components/toast/toast.js +154 -0
- package/dist/module/components/toast/toast.js.map +1 -0
- package/dist/module/index.js +38 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/package.json +1 -0
- package/dist/module/theme/design-tokens.generated.js +379 -0
- package/dist/module/theme/design-tokens.generated.js.map +1 -0
- package/dist/module/theme/theme-provider.js +20 -0
- package/dist/module/theme/theme-provider.js.map +1 -0
- package/dist/module/theme/theme.js +56 -0
- package/dist/module/theme/theme.js.map +1 -0
- package/dist/typescript/components/accordion/accordion.d.ts +40 -0
- package/dist/typescript/components/accordion/accordion.d.ts.map +1 -0
- package/dist/typescript/components/app-bar/app-bar.d.ts +34 -0
- package/dist/typescript/components/app-bar/app-bar.d.ts.map +1 -0
- package/dist/typescript/components/avatar/avatar.d.ts +17 -0
- package/dist/typescript/components/avatar/avatar.d.ts.map +1 -0
- package/dist/typescript/components/badge/badge.d.ts +20 -0
- package/dist/typescript/components/badge/badge.d.ts.map +1 -0
- package/dist/typescript/components/bottom-navigation/bottom-navigation.d.ts +28 -0
- package/dist/typescript/components/bottom-navigation/bottom-navigation.d.ts.map +1 -0
- package/dist/typescript/components/bottom-sheet/bottom-sheet.d.ts +38 -0
- package/dist/typescript/components/bottom-sheet/bottom-sheet.d.ts.map +1 -0
- package/dist/typescript/components/button/button.d.ts +21 -0
- package/dist/typescript/components/button/button.d.ts.map +1 -0
- package/dist/typescript/components/calendar/calendar.d.ts +41 -0
- package/dist/typescript/components/calendar/calendar.d.ts.map +1 -0
- package/dist/typescript/components/call-item/call-item.d.ts +21 -0
- package/dist/typescript/components/call-item/call-item.d.ts.map +1 -0
- package/dist/typescript/components/card/card.d.ts +37 -0
- package/dist/typescript/components/card/card.d.ts.map +1 -0
- package/dist/typescript/components/chat-list-item/chat-list-item.d.ts +37 -0
- package/dist/typescript/components/chat-list-item/chat-list-item.d.ts.map +1 -0
- package/dist/typescript/components/checkbox/checkbox.d.ts +15 -0
- package/dist/typescript/components/checkbox/checkbox.d.ts.map +1 -0
- package/dist/typescript/components/dialog/dialog.d.ts +34 -0
- package/dist/typescript/components/dialog/dialog.d.ts.map +1 -0
- package/dist/typescript/components/divider/divider.d.ts +10 -0
- package/dist/typescript/components/divider/divider.d.ts.map +1 -0
- package/dist/typescript/components/dropdown/dropdown-menu.d.ts +27 -0
- package/dist/typescript/components/dropdown/dropdown-menu.d.ts.map +1 -0
- package/dist/typescript/components/dropdown/dropdown.d.ts +4 -0
- package/dist/typescript/components/dropdown/dropdown.d.ts.map +1 -0
- package/dist/typescript/components/dropdown/types.d.ts +52 -0
- package/dist/typescript/components/dropdown/types.d.ts.map +1 -0
- package/dist/typescript/components/icon-button/icon-button.d.ts +20 -0
- package/dist/typescript/components/icon-button/icon-button.d.ts.map +1 -0
- package/dist/typescript/components/input/currency-input.d.ts +10 -0
- package/dist/typescript/components/input/currency-input.d.ts.map +1 -0
- package/dist/typescript/components/input/input.d.ts +32 -0
- package/dist/typescript/components/input/input.d.ts.map +1 -0
- package/dist/typescript/components/input/otp-input.d.ts +23 -0
- package/dist/typescript/components/input/otp-input.d.ts.map +1 -0
- package/dist/typescript/components/input/password-input.d.ts +14 -0
- package/dist/typescript/components/input/password-input.d.ts.map +1 -0
- package/dist/typescript/components/input/phone-input.d.ts +13 -0
- package/dist/typescript/components/input/phone-input.d.ts.map +1 -0
- package/dist/typescript/components/input/url-input.d.ts +10 -0
- package/dist/typescript/components/input/url-input.d.ts.map +1 -0
- package/dist/typescript/components/list-item/list-item.d.ts +30 -0
- package/dist/typescript/components/list-item/list-item.d.ts.map +1 -0
- package/dist/typescript/components/pin-code-field/pin-code-field.d.ts +25 -0
- package/dist/typescript/components/pin-code-field/pin-code-field.d.ts.map +1 -0
- package/dist/typescript/components/progress/progress.d.ts +18 -0
- package/dist/typescript/components/progress/progress.d.ts.map +1 -0
- package/dist/typescript/components/radio/radio.d.ts +12 -0
- package/dist/typescript/components/radio/radio.d.ts.map +1 -0
- package/dist/typescript/components/skeleton/skeleton.d.ts +16 -0
- package/dist/typescript/components/skeleton/skeleton.d.ts.map +1 -0
- package/dist/typescript/components/switch/switch.d.ts +12 -0
- package/dist/typescript/components/switch/switch.d.ts.map +1 -0
- package/dist/typescript/components/tabs/tabs.d.ts +37 -0
- package/dist/typescript/components/tabs/tabs.d.ts.map +1 -0
- package/dist/typescript/components/toast/toast-provider.d.ts +22 -0
- package/dist/typescript/components/toast/toast-provider.d.ts.map +1 -0
- package/dist/typescript/components/toast/toast.d.ts +15 -0
- package/dist/typescript/components/toast/toast.d.ts.map +1 -0
- package/dist/typescript/index.d.ts +36 -0
- package/dist/typescript/index.d.ts.map +1 -0
- package/dist/typescript/package.json +1 -0
- package/dist/typescript/theme/design-tokens.generated.d.ts +375 -0
- package/dist/typescript/theme/design-tokens.generated.d.ts.map +1 -0
- package/dist/typescript/theme/theme-provider.d.ts +8 -0
- package/dist/typescript/theme/theme-provider.d.ts.map +1 -0
- package/dist/typescript/theme/theme.d.ts +52 -0
- package/dist/typescript/theme/theme.d.ts.map +1 -0
- package/package.json +88 -0
- package/tokens.css +132 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Platform, StyleSheet, Text, View } from 'react-native';
|
|
4
|
+
import { cssInterop } from 'nativewind';
|
|
5
|
+
import { useTheme } from "../../theme/theme-provider.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
export function Badge({
|
|
8
|
+
children,
|
|
9
|
+
leadingIcon,
|
|
10
|
+
radius,
|
|
11
|
+
rounded = 'rounded',
|
|
12
|
+
shadow = true,
|
|
13
|
+
shadowColor,
|
|
14
|
+
size = 'md',
|
|
15
|
+
style,
|
|
16
|
+
trailingIcon,
|
|
17
|
+
type = 'default',
|
|
18
|
+
...props
|
|
19
|
+
}) {
|
|
20
|
+
const theme = useTheme();
|
|
21
|
+
const styles = createStyles(theme);
|
|
22
|
+
const resolvedRadius = radius ?? (rounded === 'sharp' ? 0 : 4);
|
|
23
|
+
const resolvedShadowColor = shadowColor ?? theme.shadow.color;
|
|
24
|
+
const usesAndroidHardShadow = Platform.OS === 'android' && shadow;
|
|
25
|
+
const usesIOSNativeShadow = Platform.OS === 'ios' && shadow;
|
|
26
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
27
|
+
style: [styles.container, usesAndroidHardShadow && styles.androidShadowContainer],
|
|
28
|
+
children: [usesAndroidHardShadow && /*#__PURE__*/_jsx(View, {
|
|
29
|
+
pointerEvents: "none",
|
|
30
|
+
style: [styles.androidHardShadow, {
|
|
31
|
+
backgroundColor: resolvedShadowColor,
|
|
32
|
+
borderRadius: resolvedRadius
|
|
33
|
+
}],
|
|
34
|
+
testID: "badge-hard-shadow"
|
|
35
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
36
|
+
style: [styles.base, styles[type], styles[size], {
|
|
37
|
+
borderRadius: resolvedRadius
|
|
38
|
+
}, usesIOSNativeShadow && styles.iosShadow, usesIOSNativeShadow && {
|
|
39
|
+
shadowColor: resolvedShadowColor
|
|
40
|
+
}, style],
|
|
41
|
+
...props,
|
|
42
|
+
children: [leadingIcon, /*#__PURE__*/_jsx(Text, {
|
|
43
|
+
style: [styles.label, styles[`${size}Label`], type === 'error' && styles.errorLabel],
|
|
44
|
+
children: children
|
|
45
|
+
}), trailingIcon]
|
|
46
|
+
})]
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
cssInterop(Badge, {
|
|
50
|
+
className: 'style'
|
|
51
|
+
});
|
|
52
|
+
function createStyles(theme) {
|
|
53
|
+
return StyleSheet.create({
|
|
54
|
+
container: {
|
|
55
|
+
alignSelf: 'flex-start'
|
|
56
|
+
},
|
|
57
|
+
base: {
|
|
58
|
+
alignItems: 'center',
|
|
59
|
+
borderColor: theme.border.color,
|
|
60
|
+
flexDirection: 'row',
|
|
61
|
+
gap: 4,
|
|
62
|
+
justifyContent: 'center'
|
|
63
|
+
},
|
|
64
|
+
default: {
|
|
65
|
+
backgroundColor: theme.colors.background
|
|
66
|
+
},
|
|
67
|
+
primary: {
|
|
68
|
+
backgroundColor: theme.colors.primary
|
|
69
|
+
},
|
|
70
|
+
info: {
|
|
71
|
+
backgroundColor: theme.colors.info
|
|
72
|
+
},
|
|
73
|
+
error: {
|
|
74
|
+
backgroundColor: theme.colors.destructive
|
|
75
|
+
},
|
|
76
|
+
warning: {
|
|
77
|
+
backgroundColor: theme.colors.warning
|
|
78
|
+
},
|
|
79
|
+
success: {
|
|
80
|
+
backgroundColor: theme.colors.success
|
|
81
|
+
},
|
|
82
|
+
sm: {
|
|
83
|
+
borderRadius: 4,
|
|
84
|
+
borderWidth: 1,
|
|
85
|
+
paddingHorizontal: 3,
|
|
86
|
+
paddingVertical: 0
|
|
87
|
+
},
|
|
88
|
+
md: {
|
|
89
|
+
borderRadius: 4,
|
|
90
|
+
borderWidth: 2,
|
|
91
|
+
paddingHorizontal: 6,
|
|
92
|
+
paddingVertical: 2
|
|
93
|
+
},
|
|
94
|
+
androidShadowContainer: {
|
|
95
|
+
paddingBottom: theme.shadow.xsOffset,
|
|
96
|
+
paddingRight: theme.shadow.xsOffset,
|
|
97
|
+
position: 'relative'
|
|
98
|
+
},
|
|
99
|
+
androidHardShadow: {
|
|
100
|
+
bottom: 0,
|
|
101
|
+
left: theme.shadow.xsOffset,
|
|
102
|
+
position: 'absolute',
|
|
103
|
+
right: 0,
|
|
104
|
+
top: theme.shadow.xsOffset
|
|
105
|
+
},
|
|
106
|
+
iosShadow: {
|
|
107
|
+
marginBottom: theme.shadow.xsOffset,
|
|
108
|
+
marginRight: theme.shadow.xsOffset,
|
|
109
|
+
shadowOffset: {
|
|
110
|
+
width: theme.shadow.xsOffset,
|
|
111
|
+
height: theme.shadow.xsOffset
|
|
112
|
+
},
|
|
113
|
+
shadowOpacity: 1,
|
|
114
|
+
shadowRadius: 0
|
|
115
|
+
},
|
|
116
|
+
label: {
|
|
117
|
+
color: theme.colors.primaryForeground,
|
|
118
|
+
fontWeight: '700'
|
|
119
|
+
},
|
|
120
|
+
smLabel: {
|
|
121
|
+
fontSize: theme.typography.xsSmall,
|
|
122
|
+
lineHeight: theme.typography.xsSmallLineHeight
|
|
123
|
+
},
|
|
124
|
+
mdLabel: {
|
|
125
|
+
fontSize: theme.typography.xs,
|
|
126
|
+
lineHeight: theme.typography.xsLineHeight
|
|
127
|
+
},
|
|
128
|
+
errorLabel: {
|
|
129
|
+
color: theme.colors.destructiveForeground
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Platform","StyleSheet","Text","View","cssInterop","useTheme","jsx","_jsx","jsxs","_jsxs","Badge","children","leadingIcon","radius","rounded","shadow","shadowColor","size","style","trailingIcon","type","props","theme","styles","createStyles","resolvedRadius","resolvedShadowColor","color","usesAndroidHardShadow","OS","usesIOSNativeShadow","container","androidShadowContainer","pointerEvents","androidHardShadow","backgroundColor","borderRadius","testID","base","iosShadow","label","errorLabel","className","create","alignSelf","alignItems","borderColor","border","flexDirection","gap","justifyContent","default","colors","background","primary","info","error","destructive","warning","success","sm","borderWidth","paddingHorizontal","paddingVertical","md","paddingBottom","xsOffset","paddingRight","position","bottom","left","right","top","marginBottom","marginRight","shadowOffset","width","height","shadowOpacity","shadowRadius","primaryForeground","fontWeight","smLabel","fontSize","typography","xsSmall","lineHeight","xsSmallLineHeight","mdLabel","xs","xsLineHeight","destructiveForeground"],"sourceRoot":"../../../../src","sources":["components/badge/badge.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
4
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
5
|
+
import { useTheme } from "../../theme/theme-provider.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
export function BottomNavigation({
|
|
8
|
+
accessibilityLabel = 'Bottom navigation',
|
|
9
|
+
containerStyle,
|
|
10
|
+
contentStyle,
|
|
11
|
+
indicatorRadius = 0,
|
|
12
|
+
items,
|
|
13
|
+
onValueChange,
|
|
14
|
+
radius,
|
|
15
|
+
safeArea = true,
|
|
16
|
+
shadow = true,
|
|
17
|
+
shadowColor,
|
|
18
|
+
shadowVariant = 'primary',
|
|
19
|
+
style,
|
|
20
|
+
value
|
|
21
|
+
}) {
|
|
22
|
+
const theme = useTheme();
|
|
23
|
+
const insets = useSafeAreaInsets();
|
|
24
|
+
const styles = createStyles(theme);
|
|
25
|
+
const resolvedRadius = radius ?? theme.border.radius;
|
|
26
|
+
const resolvedShadowColor = shadowColor ?? resolveShadowColor(shadowVariant, theme);
|
|
27
|
+
return /*#__PURE__*/_jsx(View, {
|
|
28
|
+
style: containerStyle,
|
|
29
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
30
|
+
accessibilityLabel: accessibilityLabel,
|
|
31
|
+
accessibilityRole: "tablist",
|
|
32
|
+
style: [styles.root, {
|
|
33
|
+
paddingBottom: safeArea ? Math.max(insets.bottom, theme.spacing.md) : theme.spacing.md
|
|
34
|
+
}, style],
|
|
35
|
+
testID: "bottom-navigation",
|
|
36
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
37
|
+
style: [styles.shadowContainer, !shadow && styles.shadowContainerWithoutShadow],
|
|
38
|
+
testID: "bottom-navigation-shadow-container",
|
|
39
|
+
children: [shadow ? /*#__PURE__*/_jsx(View, {
|
|
40
|
+
pointerEvents: "none",
|
|
41
|
+
style: [styles.hardShadow, {
|
|
42
|
+
backgroundColor: resolvedShadowColor,
|
|
43
|
+
borderRadius: resolvedRadius
|
|
44
|
+
}],
|
|
45
|
+
testID: "bottom-navigation-hard-shadow"
|
|
46
|
+
}) : null, /*#__PURE__*/_jsx(View, {
|
|
47
|
+
style: [styles.content, {
|
|
48
|
+
borderRadius: resolvedRadius
|
|
49
|
+
}, contentStyle],
|
|
50
|
+
testID: "bottom-navigation-content",
|
|
51
|
+
children: items.map(item => {
|
|
52
|
+
const selected = item.value === value;
|
|
53
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
54
|
+
accessibilityLabel: item.accessibilityLabel ?? item.label,
|
|
55
|
+
accessibilityRole: "tab",
|
|
56
|
+
accessibilityState: {
|
|
57
|
+
disabled: item.disabled,
|
|
58
|
+
selected
|
|
59
|
+
},
|
|
60
|
+
disabled: item.disabled,
|
|
61
|
+
onPress: () => onValueChange?.(item.value),
|
|
62
|
+
style: [styles.item, selected && [styles.selectedItem, {
|
|
63
|
+
borderBottomLeftRadius: indicatorRadius,
|
|
64
|
+
borderBottomRightRadius: indicatorRadius
|
|
65
|
+
}], item.disabled && styles.disabledItem],
|
|
66
|
+
testID: `bottom-navigation-item-${item.value}`,
|
|
67
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
68
|
+
style: styles.icon,
|
|
69
|
+
children: selected && item.activeIcon ? item.activeIcon : item.icon
|
|
70
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
71
|
+
numberOfLines: 1,
|
|
72
|
+
style: [styles.label, selected && styles.selectedLabel, item.disabled && styles.disabledLabel],
|
|
73
|
+
children: item.label
|
|
74
|
+
})]
|
|
75
|
+
}, item.value);
|
|
76
|
+
})
|
|
77
|
+
})]
|
|
78
|
+
})
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function resolveShadowColor(variant, theme) {
|
|
83
|
+
const colors = {
|
|
84
|
+
default: theme.shadow.color,
|
|
85
|
+
destructive: theme.colors.destructive,
|
|
86
|
+
info: theme.colors.info,
|
|
87
|
+
primary: theme.colors.primary,
|
|
88
|
+
secondary: theme.colors.secondary,
|
|
89
|
+
success: theme.colors.success,
|
|
90
|
+
warning: theme.colors.warning
|
|
91
|
+
};
|
|
92
|
+
return colors[variant];
|
|
93
|
+
}
|
|
94
|
+
function createStyles(theme) {
|
|
95
|
+
return StyleSheet.create({
|
|
96
|
+
root: {
|
|
97
|
+
backgroundColor: theme.colors.background,
|
|
98
|
+
paddingHorizontal: 14,
|
|
99
|
+
paddingTop: theme.spacing.xs,
|
|
100
|
+
width: '100%'
|
|
101
|
+
},
|
|
102
|
+
shadowContainer: {
|
|
103
|
+
paddingBottom: theme.shadow.offset,
|
|
104
|
+
paddingRight: theme.shadow.offset,
|
|
105
|
+
position: 'relative'
|
|
106
|
+
},
|
|
107
|
+
shadowContainerWithoutShadow: {
|
|
108
|
+
paddingBottom: 0,
|
|
109
|
+
paddingRight: 0
|
|
110
|
+
},
|
|
111
|
+
hardShadow: {
|
|
112
|
+
bottom: 0,
|
|
113
|
+
left: theme.shadow.offset,
|
|
114
|
+
position: 'absolute',
|
|
115
|
+
right: 0,
|
|
116
|
+
top: theme.shadow.offset
|
|
117
|
+
},
|
|
118
|
+
content: {
|
|
119
|
+
backgroundColor: theme.colors.background,
|
|
120
|
+
borderColor: theme.border.color,
|
|
121
|
+
borderWidth: theme.border.width,
|
|
122
|
+
flexDirection: 'row',
|
|
123
|
+
minHeight: 64,
|
|
124
|
+
overflow: 'hidden',
|
|
125
|
+
paddingHorizontal: theme.spacing.md,
|
|
126
|
+
paddingVertical: 6,
|
|
127
|
+
width: '100%'
|
|
128
|
+
},
|
|
129
|
+
item: {
|
|
130
|
+
alignItems: 'center',
|
|
131
|
+
borderBottomColor: 'transparent',
|
|
132
|
+
borderBottomWidth: 0,
|
|
133
|
+
flex: 1,
|
|
134
|
+
gap: 4,
|
|
135
|
+
justifyContent: 'center',
|
|
136
|
+
minWidth: 0
|
|
137
|
+
},
|
|
138
|
+
selectedItem: {
|
|
139
|
+
borderBottomColor: theme.colors.primary,
|
|
140
|
+
borderBottomWidth: theme.border.width
|
|
141
|
+
},
|
|
142
|
+
disabledItem: {
|
|
143
|
+
opacity: 0.5
|
|
144
|
+
},
|
|
145
|
+
icon: {
|
|
146
|
+
alignItems: 'center',
|
|
147
|
+
height: 24,
|
|
148
|
+
justifyContent: 'center',
|
|
149
|
+
width: 24
|
|
150
|
+
},
|
|
151
|
+
label: {
|
|
152
|
+
color: theme.colors.foreground,
|
|
153
|
+
fontSize: theme.typography.sm,
|
|
154
|
+
fontWeight: '500',
|
|
155
|
+
lineHeight: 20
|
|
156
|
+
},
|
|
157
|
+
selectedLabel: {
|
|
158
|
+
color: theme.colors.primary,
|
|
159
|
+
fontWeight: '700'
|
|
160
|
+
},
|
|
161
|
+
disabledLabel: {
|
|
162
|
+
color: theme.colors.mutedForeground
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=bottom-navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Pressable","StyleSheet","Text","View","useSafeAreaInsets","useTheme","jsx","_jsx","jsxs","_jsxs","BottomNavigation","accessibilityLabel","containerStyle","contentStyle","indicatorRadius","items","onValueChange","radius","safeArea","shadow","shadowColor","shadowVariant","style","value","theme","insets","styles","createStyles","resolvedRadius","border","resolvedShadowColor","resolveShadowColor","children","accessibilityRole","root","paddingBottom","Math","max","bottom","spacing","md","testID","shadowContainer","shadowContainerWithoutShadow","pointerEvents","hardShadow","backgroundColor","borderRadius","content","map","item","selected","label","accessibilityState","disabled","onPress","selectedItem","borderBottomLeftRadius","borderBottomRightRadius","disabledItem","icon","activeIcon","numberOfLines","selectedLabel","disabledLabel","variant","colors","default","color","destructive","info","primary","secondary","success","warning","create","background","paddingHorizontal","paddingTop","xs","width","offset","paddingRight","position","left","right","top","borderColor","borderWidth","flexDirection","minHeight","overflow","paddingVertical","alignItems","borderBottomColor","borderBottomWidth","flex","gap","justifyContent","minWidth","opacity","height","foreground","fontSize","typography","sm","fontWeight","lineHeight","mutedForeground"],"sourceRoot":"../../../../src","sources":["components/bottom-navigation/bottom-navigation.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
|
+
import { Animated, Easing, Keyboard, PanResponder, Platform, StyleSheet, View, useWindowDimensions } from 'react-native';
|
|
5
|
+
import * as DialogPrimitive from '@rn-primitives/dialog';
|
|
6
|
+
import { FullWindowOverlay as NativeFullWindowOverlay } from 'react-native-screens';
|
|
7
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
8
|
+
import { useTheme } from "../../theme/theme-provider.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
const FullWindowOverlay = Platform.OS === 'ios' ? NativeFullWindowOverlay : Fragment;
|
|
11
|
+
export function BottomSheet({
|
|
12
|
+
animation = 'slide',
|
|
13
|
+
animationDuration = 220,
|
|
14
|
+
bottomPadding,
|
|
15
|
+
children,
|
|
16
|
+
dragToDismiss = false,
|
|
17
|
+
keyboardVerticalOffset = 0,
|
|
18
|
+
onCloseComplete,
|
|
19
|
+
onOpenChange,
|
|
20
|
+
open,
|
|
21
|
+
radius,
|
|
22
|
+
shadow = true
|
|
23
|
+
}) {
|
|
24
|
+
const theme = useTheme();
|
|
25
|
+
const insets = useSafeAreaInsets();
|
|
26
|
+
const {
|
|
27
|
+
height: windowHeight
|
|
28
|
+
} = useWindowDimensions();
|
|
29
|
+
const componentStyles = createStyles(theme);
|
|
30
|
+
const [keyboardBottom, setKeyboardBottom] = useState(0);
|
|
31
|
+
const [isPresent, setIsPresent] = useState(open);
|
|
32
|
+
const animationProgress = useRef(new Animated.Value(0)).current;
|
|
33
|
+
const dragTranslation = useRef(new Animated.Value(0)).current;
|
|
34
|
+
const onCloseCompleteRef = useRef(onCloseComplete);
|
|
35
|
+
const resolvedRadius = radius ?? theme.border.radius;
|
|
36
|
+
const resolvedBottomPadding = bottomPadding ?? Math.max(insets.bottom, theme.spacing.lg);
|
|
37
|
+
const resetDragPosition = useCallback(() => {
|
|
38
|
+
Animated.spring(dragTranslation, {
|
|
39
|
+
toValue: 0,
|
|
40
|
+
useNativeDriver: true
|
|
41
|
+
}).start();
|
|
42
|
+
}, [dragTranslation]);
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
onCloseCompleteRef.current = onCloseComplete;
|
|
45
|
+
}, [onCloseComplete]);
|
|
46
|
+
const panResponder = useMemo(() => PanResponder.create({
|
|
47
|
+
onMoveShouldSetPanResponder: (_event, gestureState) => gestureState.dy > 6 && Math.abs(gestureState.dy) > Math.abs(gestureState.dx),
|
|
48
|
+
onPanResponderMove: (_event, gestureState) => {
|
|
49
|
+
dragTranslation.setValue(Math.max(0, gestureState.dy));
|
|
50
|
+
},
|
|
51
|
+
onPanResponderRelease: (_event, gestureState) => {
|
|
52
|
+
if (gestureState.dy > 80 || gestureState.vy > 0.8) {
|
|
53
|
+
onOpenChange(false);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
resetDragPosition();
|
|
57
|
+
},
|
|
58
|
+
onPanResponderTerminate: resetDragPosition
|
|
59
|
+
}), [dragTranslation, onOpenChange, resetDragPosition]);
|
|
60
|
+
useEffect(() => {
|
|
61
|
+
const showEvent = Platform.OS === 'ios' ? 'keyboardWillShow' : 'keyboardDidShow';
|
|
62
|
+
const hideEvent = Platform.OS === 'ios' ? 'keyboardWillHide' : 'keyboardDidHide';
|
|
63
|
+
const showSubscription = Keyboard.addListener(showEvent, event => {
|
|
64
|
+
setKeyboardBottom(event.endCoordinates.height);
|
|
65
|
+
});
|
|
66
|
+
const hideSubscription = Keyboard.addListener(hideEvent, () => {
|
|
67
|
+
setKeyboardBottom(0);
|
|
68
|
+
});
|
|
69
|
+
return () => {
|
|
70
|
+
showSubscription.remove();
|
|
71
|
+
hideSubscription.remove();
|
|
72
|
+
};
|
|
73
|
+
}, []);
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
if (!open) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
dragTranslation.stopAnimation();
|
|
79
|
+
dragTranslation.setValue(0);
|
|
80
|
+
}, [dragTranslation, open]);
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
animationProgress.stopAnimation();
|
|
83
|
+
if (animation === 'none') {
|
|
84
|
+
animationProgress.setValue(open ? 1 : 0);
|
|
85
|
+
setIsPresent(open);
|
|
86
|
+
if (!open && isPresent) {
|
|
87
|
+
onCloseCompleteRef.current?.();
|
|
88
|
+
}
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (open) {
|
|
92
|
+
setIsPresent(true);
|
|
93
|
+
Animated.timing(animationProgress, {
|
|
94
|
+
duration: animationDuration,
|
|
95
|
+
easing: Easing.out(Easing.cubic),
|
|
96
|
+
toValue: 1,
|
|
97
|
+
useNativeDriver: true
|
|
98
|
+
}).start();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (!isPresent) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
Animated.timing(animationProgress, {
|
|
105
|
+
duration: animationDuration,
|
|
106
|
+
easing: Easing.in(Easing.cubic),
|
|
107
|
+
toValue: 0,
|
|
108
|
+
useNativeDriver: true
|
|
109
|
+
}).start();
|
|
110
|
+
const unmountTimeout = setTimeout(() => {
|
|
111
|
+
setIsPresent(false);
|
|
112
|
+
onCloseCompleteRef.current?.();
|
|
113
|
+
}, animationDuration);
|
|
114
|
+
return () => clearTimeout(unmountTimeout);
|
|
115
|
+
}, [animation, animationDuration, animationProgress, isPresent, open]);
|
|
116
|
+
const slideTranslation = animation === 'slide' ? animationProgress.interpolate({
|
|
117
|
+
inputRange: [0, 1],
|
|
118
|
+
outputRange: [windowHeight, 0]
|
|
119
|
+
}) : dragTranslation;
|
|
120
|
+
const animatedStyle = {
|
|
121
|
+
transform: [{
|
|
122
|
+
translateY: animation === 'slide' ? Animated.add(slideTranslation, dragTranslation) : dragTranslation
|
|
123
|
+
}]
|
|
124
|
+
};
|
|
125
|
+
return /*#__PURE__*/_jsx(DialogPrimitive.Root, {
|
|
126
|
+
onOpenChange: onOpenChange,
|
|
127
|
+
open: open,
|
|
128
|
+
children: /*#__PURE__*/_jsx(DialogPrimitive.Portal, {
|
|
129
|
+
forceMount: isPresent ? true : undefined,
|
|
130
|
+
children: /*#__PURE__*/_jsxs(FullWindowOverlay, {
|
|
131
|
+
children: [/*#__PURE__*/_jsx(DialogPrimitive.Overlay, {
|
|
132
|
+
closeOnPress: open,
|
|
133
|
+
forceMount: isPresent ? true : undefined,
|
|
134
|
+
pointerEvents: open ? 'auto' : 'none',
|
|
135
|
+
style: componentStyles.overlay,
|
|
136
|
+
testID: "bottom-sheet-overlay"
|
|
137
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
138
|
+
pointerEvents: "box-none",
|
|
139
|
+
style: componentStyles.viewport,
|
|
140
|
+
testID: "bottom-sheet-viewport",
|
|
141
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
142
|
+
pointerEvents: "box-none",
|
|
143
|
+
style: [componentStyles.positioner, {
|
|
144
|
+
bottom: Math.max(0, keyboardBottom - keyboardVerticalOffset)
|
|
145
|
+
}],
|
|
146
|
+
testID: "bottom-sheet-positioner",
|
|
147
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
148
|
+
pointerEvents: open ? 'auto' : 'none',
|
|
149
|
+
style: [componentStyles.animatedSurface, animatedStyle],
|
|
150
|
+
...(dragToDismiss ? panResponder.panHandlers : {}),
|
|
151
|
+
children: /*#__PURE__*/_jsx(DialogPrimitive.Content, {
|
|
152
|
+
forceMount: isPresent ? true : undefined,
|
|
153
|
+
style: [componentStyles.surface, shadow && componentStyles.surfaceShadow, {
|
|
154
|
+
borderTopLeftRadius: resolvedRadius,
|
|
155
|
+
borderTopRightRadius: resolvedRadius,
|
|
156
|
+
paddingBottom: resolvedBottomPadding
|
|
157
|
+
}],
|
|
158
|
+
testID: "bottom-sheet-content",
|
|
159
|
+
children: children
|
|
160
|
+
})
|
|
161
|
+
})
|
|
162
|
+
})
|
|
163
|
+
})]
|
|
164
|
+
})
|
|
165
|
+
})
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
export function BottomSheetHeader({
|
|
169
|
+
title,
|
|
170
|
+
titleNumberOfLines = 2
|
|
171
|
+
}) {
|
|
172
|
+
const componentStyles = createStyles(useTheme());
|
|
173
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
174
|
+
style: componentStyles.header,
|
|
175
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
176
|
+
style: componentStyles.handle,
|
|
177
|
+
testID: "bottom-sheet-handle"
|
|
178
|
+
}), /*#__PURE__*/_jsx(DialogPrimitive.Title, {
|
|
179
|
+
ellipsizeMode: "tail",
|
|
180
|
+
numberOfLines: titleNumberOfLines,
|
|
181
|
+
style: componentStyles.title,
|
|
182
|
+
children: title
|
|
183
|
+
})]
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
export function BottomSheetBody({
|
|
187
|
+
children,
|
|
188
|
+
style,
|
|
189
|
+
...props
|
|
190
|
+
}) {
|
|
191
|
+
const componentStyles = createStyles(useTheme());
|
|
192
|
+
return /*#__PURE__*/_jsx(View, {
|
|
193
|
+
style: [componentStyles.body, style],
|
|
194
|
+
...props,
|
|
195
|
+
children: children
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
export function BottomSheetFooter({
|
|
199
|
+
children,
|
|
200
|
+
style,
|
|
201
|
+
...props
|
|
202
|
+
}) {
|
|
203
|
+
const componentStyles = createStyles(useTheme());
|
|
204
|
+
return /*#__PURE__*/_jsx(View, {
|
|
205
|
+
style: [componentStyles.footer, style],
|
|
206
|
+
...props,
|
|
207
|
+
children: children
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
function createStyles(theme) {
|
|
211
|
+
return StyleSheet.create({
|
|
212
|
+
overlay: {
|
|
213
|
+
...StyleSheet.absoluteFill,
|
|
214
|
+
backgroundColor: 'rgba(0, 0, 0, 0.5)'
|
|
215
|
+
},
|
|
216
|
+
viewport: {
|
|
217
|
+
...StyleSheet.absoluteFill,
|
|
218
|
+
justifyContent: 'flex-end'
|
|
219
|
+
},
|
|
220
|
+
positioner: {
|
|
221
|
+
alignItems: 'center',
|
|
222
|
+
bottom: 0,
|
|
223
|
+
justifyContent: 'flex-end',
|
|
224
|
+
left: 0,
|
|
225
|
+
position: 'absolute',
|
|
226
|
+
right: 0,
|
|
227
|
+
width: '100%'
|
|
228
|
+
},
|
|
229
|
+
animatedSurface: {
|
|
230
|
+
width: '100%'
|
|
231
|
+
},
|
|
232
|
+
surface: {
|
|
233
|
+
backgroundColor: theme.colors.surface,
|
|
234
|
+
borderColor: theme.border.color,
|
|
235
|
+
borderTopLeftRadius: theme.border.radius,
|
|
236
|
+
borderTopRightRadius: theme.border.radius,
|
|
237
|
+
borderTopWidth: theme.border.width,
|
|
238
|
+
overflow: 'hidden',
|
|
239
|
+
width: '100%'
|
|
240
|
+
},
|
|
241
|
+
surfaceShadow: {
|
|
242
|
+
elevation: 6,
|
|
243
|
+
shadowColor: theme.shadow.color,
|
|
244
|
+
shadowOffset: {
|
|
245
|
+
height: -theme.shadow.offset,
|
|
246
|
+
width: 0
|
|
247
|
+
},
|
|
248
|
+
shadowOpacity: 0.25,
|
|
249
|
+
shadowRadius: theme.shadow.offset
|
|
250
|
+
},
|
|
251
|
+
header: {
|
|
252
|
+
alignItems: 'center',
|
|
253
|
+
gap: theme.spacing.md,
|
|
254
|
+
paddingHorizontal: theme.spacing.md,
|
|
255
|
+
paddingTop: theme.spacing.md
|
|
256
|
+
},
|
|
257
|
+
handle: {
|
|
258
|
+
backgroundColor: theme.colors.foreground,
|
|
259
|
+
borderRadius: 999,
|
|
260
|
+
height: 5,
|
|
261
|
+
opacity: 0.25,
|
|
262
|
+
width: 100
|
|
263
|
+
},
|
|
264
|
+
title: {
|
|
265
|
+
color: theme.colors.foreground,
|
|
266
|
+
fontSize: 20,
|
|
267
|
+
fontWeight: '700',
|
|
268
|
+
lineHeight: 28,
|
|
269
|
+
textAlign: 'center',
|
|
270
|
+
width: '100%'
|
|
271
|
+
},
|
|
272
|
+
body: {
|
|
273
|
+
gap: theme.spacing.md,
|
|
274
|
+
paddingHorizontal: theme.spacing.md
|
|
275
|
+
},
|
|
276
|
+
footer: {
|
|
277
|
+
flexDirection: 'row',
|
|
278
|
+
gap: theme.spacing.sm,
|
|
279
|
+
paddingBottom: 0,
|
|
280
|
+
paddingHorizontal: theme.spacing.md,
|
|
281
|
+
paddingTop: theme.spacing.md
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=bottom-sheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Fragment","useCallback","useEffect","useMemo","useRef","useState","Animated","Easing","Keyboard","PanResponder","Platform","StyleSheet","View","useWindowDimensions","DialogPrimitive","FullWindowOverlay","NativeFullWindowOverlay","useSafeAreaInsets","useTheme","jsx","_jsx","jsxs","_jsxs","OS","BottomSheet","animation","animationDuration","bottomPadding","children","dragToDismiss","keyboardVerticalOffset","onCloseComplete","onOpenChange","open","radius","shadow","theme","insets","height","windowHeight","componentStyles","createStyles","keyboardBottom","setKeyboardBottom","isPresent","setIsPresent","animationProgress","Value","current","dragTranslation","onCloseCompleteRef","resolvedRadius","border","resolvedBottomPadding","Math","max","bottom","spacing","lg","resetDragPosition","spring","toValue","useNativeDriver","start","panResponder","create","onMoveShouldSetPanResponder","_event","gestureState","dy","abs","dx","onPanResponderMove","setValue","onPanResponderRelease","vy","onPanResponderTerminate","showEvent","hideEvent","showSubscription","addListener","event","endCoordinates","hideSubscription","remove","stopAnimation","timing","duration","easing","out","cubic","in","unmountTimeout","setTimeout","clearTimeout","slideTranslation","interpolate","inputRange","outputRange","animatedStyle","transform","translateY","add","Root","Portal","forceMount","undefined","Overlay","closeOnPress","pointerEvents","style","overlay","testID","viewport","positioner","animatedSurface","panHandlers","Content","surface","surfaceShadow","borderTopLeftRadius","borderTopRightRadius","paddingBottom","BottomSheetHeader","title","titleNumberOfLines","header","handle","Title","ellipsizeMode","numberOfLines","BottomSheetBody","props","body","BottomSheetFooter","footer","absoluteFill","backgroundColor","justifyContent","alignItems","left","position","right","width","colors","borderColor","color","borderTopWidth","overflow","elevation","shadowColor","shadowOffset","offset","shadowOpacity","shadowRadius","gap","md","paddingHorizontal","paddingTop","foreground","borderRadius","opacity","fontSize","fontWeight","lineHeight","textAlign","flexDirection","sm"],"sourceRoot":"../../../../src","sources":["components/bottom-sheet/bottom-sheet.tsx"],"mappings":";;AAAA,SACEA,QAAQ,EACRC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QAEH,OAAO;AACd,SACEC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACRC,YAAY,EACZC,QAAQ,EACRC,UAAU,EACVC,IAAI,EACJC,mBAAmB,QAId,cAAc;AACrB,OAAO,KAAKC,eAAe,MAAM,uBAAuB;AACxD,SAASC,iBAAiB,IAAIC,uBAAuB,QAAQ,sBAAsB;AACnF,SAASC,iBAAiB,QAAQ,gCAAgC;AAGlE,SAASC,QAAQ,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAMtD,MAAMP,iBAAiB,GACrBL,QAAQ,CAACa,EAAE,KAAK,KAAK,GAAGP,uBAAuB,GAAGhB,QAAQ;AAgC5D,OAAO,SAASwB,WAAWA,CAAC;EAC1BC,SAAS,GAAG,OAAO;EACnBC,iBAAiB,GAAG,GAAG;EACvBC,aAAa;EACbC,QAAQ;EACRC,aAAa,GAAG,KAAK;EACrBC,sBAAsB,GAAG,CAAC;EAC1BC,eAAe;EACfC,YAAY;EACZC,IAAI;EACJC,MAAM;EACNC,MAAM,GAAG;AACO,CAAC,EAAE;EACnB,MAAMC,KAAK,GAAGlB,QAAQ,CAAC,CAAC;EACxB,MAAMmB,MAAM,GAAGpB,iBAAiB,CAAC,CAAC;EAClC,MAAM;IAAEqB,MAAM,EAAEC;EAAa,CAAC,GAAG1B,mBAAmB,CAAC,CAAC;EACtD,MAAM2B,eAAe,GAAGC,YAAY,CAACL,KAAK,CAAC;EAC3C,MAAM,CAACM,cAAc,EAAEC,iBAAiB,CAAC,GAAGtC,QAAQ,CAAC,CAAC,CAAC;EACvD,MAAM,CAACuC,SAAS,EAAEC,YAAY,CAAC,GAAGxC,QAAQ,CAAC4B,IAAI,CAAC;EAChD,MAAMa,iBAAiB,GAAG1C,MAAM,CAAC,IAAIE,QAAQ,CAACyC,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAC/D,MAAMC,eAAe,GAAG7C,MAAM,CAAC,IAAIE,QAAQ,CAACyC,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAC7D,MAAME,kBAAkB,GAAG9C,MAAM,CAAC2B,eAAe,CAAC;EAClD,MAAMoB,cAAc,GAAGjB,MAAM,IAAIE,KAAK,CAACgB,MAAM,CAAClB,MAAM;EACpD,MAAMmB,qBAAqB,GACzB1B,aAAa,IAAI2B,IAAI,CAACC,GAAG,CAAClB,MAAM,CAACmB,MAAM,EAAEpB,KAAK,CAACqB,OAAO,CAACC,EAAE,CAAC;EAC5D,MAAMC,iBAAiB,GAAG1D,WAAW,CAAC,MAAM;IAC1CK,QAAQ,CAACsD,MAAM,CAACX,eAAe,EAAE;MAC/BY,OAAO,EAAE,CAAC;MACVC,eAAe,EAAE;IACnB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;EACZ,CAAC,EAAE,CAACd,eAAe,CAAC,CAAC;EAErB/C,SAAS,CAAC,MAAM;IACdgD,kBAAkB,CAACF,OAAO,GAAGjB,eAAe;EAC9C,CAAC,EAAE,CAACA,eAAe,CAAC,CAAC;EACrB,MAAMiC,YAAY,GAAG7D,OAAO,CAC1B,MACEM,YAAY,CAACwD,MAAM,CAAC;IAClBC,2BAA2B,EAAEA,CAACC,MAAM,EAAEC,YAAY,KAChDA,YAAY,CAACC,EAAE,GAAG,CAAC,IACnBf,IAAI,CAACgB,GAAG,CAACF,YAAY,CAACC,EAAE,CAAC,GAAGf,IAAI,CAACgB,GAAG,CAACF,YAAY,CAACG,EAAE,CAAC;IACvDC,kBAAkB,EAAEA,CAACL,MAAM,EAAEC,YAAY,KAAK;MAC5CnB,eAAe,CAACwB,QAAQ,CAACnB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEa,YAAY,CAACC,EAAE,CAAC,CAAC;IACxD,CAAC;IACDK,qBAAqB,EAAEA,CAACP,MAAM,EAAEC,YAAY,KAAK;MAC/C,IAAIA,YAAY,CAACC,EAAE,GAAG,EAAE,IAAID,YAAY,CAACO,EAAE,GAAG,GAAG,EAAE;QACjD3C,YAAY,CAAC,KAAK,CAAC;QACnB;MACF;MAEA2B,iBAAiB,CAAC,CAAC;IACrB,CAAC;IACDiB,uBAAuB,EAAEjB;EAC3B,CAAC,CAAC,EACJ,CAACV,eAAe,EAAEjB,YAAY,EAAE2B,iBAAiB,CACnD,CAAC;EAEDzD,SAAS,CAAC,MAAM;IACd,MAAM2E,SAAS,GAAGnE,QAAQ,CAACa,EAAE,KAAK,KAAK,GAAG,kBAAkB,GAAG,iBAAiB;IAChF,MAAMuD,SAAS,GAAGpE,QAAQ,CAACa,EAAE,KAAK,KAAK,GAAG,kBAAkB,GAAG,iBAAiB;IAChF,MAAMwD,gBAAgB,GAAGvE,QAAQ,CAACwE,WAAW,CAACH,SAAS,EAAGI,KAAK,IAAK;MAClEtC,iBAAiB,CAACsC,KAAK,CAACC,cAAc,CAAC5C,MAAM,CAAC;IAChD,CAAC,CAAC;IACF,MAAM6C,gBAAgB,GAAG3E,QAAQ,CAACwE,WAAW,CAACF,SAAS,EAAE,MAAM;MAC7DnC,iBAAiB,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO,MAAM;MACXoC,gBAAgB,CAACK,MAAM,CAAC,CAAC;MACzBD,gBAAgB,CAACC,MAAM,CAAC,CAAC;IAC3B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAENlF,SAAS,CAAC,MAAM;IACd,IAAI,CAAC+B,IAAI,EAAE;MACT;IACF;IAEAgB,eAAe,CAACoC,aAAa,CAAC,CAAC;IAC/BpC,eAAe,CAACwB,QAAQ,CAAC,CAAC,CAAC;EAC7B,CAAC,EAAE,CAACxB,eAAe,EAAEhB,IAAI,CAAC,CAAC;EAE3B/B,SAAS,CAAC,MAAM;IACd4C,iBAAiB,CAACuC,aAAa,CAAC,CAAC;IAEjC,IAAI5D,SAAS,KAAK,MAAM,EAAE;MACxBqB,iBAAiB,CAAC2B,QAAQ,CAACxC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;MACxCY,YAAY,CAACZ,IAAI,CAAC;MAClB,IAAI,CAACA,IAAI,IAAIW,SAAS,EAAE;QACtBM,kBAAkB,CAACF,OAAO,GAAG,CAAC;MAChC;MACA;IACF;IAEA,IAAIf,IAAI,EAAE;MACRY,YAAY,CAAC,IAAI,CAAC;MAClBvC,QAAQ,CAACgF,MAAM,CAACxC,iBAAiB,EAAE;QACjCyC,QAAQ,EAAE7D,iBAAiB;QAC3B8D,MAAM,EAAEjF,MAAM,CAACkF,GAAG,CAAClF,MAAM,CAACmF,KAAK,CAAC;QAChC7B,OAAO,EAAE,CAAC;QACVC,eAAe,EAAE;MACnB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;MACV;IACF;IAEA,IAAI,CAACnB,SAAS,EAAE;MACd;IACF;IAEAtC,QAAQ,CAACgF,MAAM,CAACxC,iBAAiB,EAAE;MACjCyC,QAAQ,EAAE7D,iBAAiB;MAC3B8D,MAAM,EAAEjF,MAAM,CAACoF,EAAE,CAACpF,MAAM,CAACmF,KAAK,CAAC;MAC/B7B,OAAO,EAAE,CAAC;MACVC,eAAe,EAAE;IACnB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;IAEV,MAAM6B,cAAc,GAAGC,UAAU,CAAC,MAAM;MACtChD,YAAY,CAAC,KAAK,CAAC;MACnBK,kBAAkB,CAACF,OAAO,GAAG,CAAC;IAChC,CAAC,EAAEtB,iBAAiB,CAAC;IAErB,OAAO,MAAMoE,YAAY,CAACF,cAAc,CAAC;EAC3C,CAAC,EAAE,CAACnE,SAAS,EAAEC,iBAAiB,EAAEoB,iBAAiB,EAAEF,SAAS,EAAEX,IAAI,CAAC,CAAC;EAEtE,MAAM8D,gBAAgB,GACpBtE,SAAS,KAAK,OAAO,GACjBqB,iBAAiB,CAACkD,WAAW,CAAC;IAC5BC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClBC,WAAW,EAAE,CAAC3D,YAAY,EAAE,CAAC;EAC/B,CAAC,CAAC,GACFU,eAAe;EACrB,MAAMkD,aAAa,GAAG;IACpBC,SAAS,EAAE,CACT;MACEC,UAAU,EACR5E,SAAS,KAAK,OAAO,GACjBnB,QAAQ,CAACgG,GAAG,CAACP,gBAAgB,EAAE9C,eAAe,CAAC,GAC/CA;IACR,CAAC;EAEL,CAAC;EAED,oBACE7B,IAAA,CAACN,eAAe,CAACyF,IAAI;IAACvE,YAAY,EAAEA,YAAa;IAACC,IAAI,EAAEA,IAAK;IAAAL,QAAA,eAC3DR,IAAA,CAACN,eAAe,CAAC0F,MAAM;MAACC,UAAU,EAAE7D,SAAS,GAAG,IAAI,GAAG8D,SAAU;MAAA9E,QAAA,eAC/DN,KAAA,CAACP,iBAAiB;QAAAa,QAAA,gBAChBR,IAAA,CAACN,eAAe,CAAC6F,OAAO;UACtBC,YAAY,EAAE3E,IAAK;UACnBwE,UAAU,EAAE7D,SAAS,GAAG,IAAI,GAAG8D,SAAU;UACzCG,aAAa,EAAE5E,IAAI,GAAG,MAAM,GAAG,MAAO;UACtC6E,KAAK,EAAEtE,eAAe,CAACuE,OAAQ;UAC/BC,MAAM,EAAC;QAAsB,CAC9B,CAAC,eACF5F,IAAA,CAACR,IAAI;UACHiG,aAAa,EAAC,UAAU;UACxBC,KAAK,EAAEtE,eAAe,CAACyE,QAAS;UAChCD,MAAM,EAAC,uBAAuB;UAAApF,QAAA,eAChCR,IAAA,CAACR,IAAI;YACHiG,aAAa,EAAC,UAAU;YACxBC,KAAK,EAAE,CACLtE,eAAe,CAAC0E,UAAU,EAC1B;cAAE1D,MAAM,EAAEF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEb,cAAc,GAAGZ,sBAAsB;YAAE,CAAC,CAChE;YACFkF,MAAM,EAAC,yBAAyB;YAAApF,QAAA,eAC9BR,IAAA,CAACd,QAAQ,CAACM,IAAI;cACZiG,aAAa,EAAE5E,IAAI,GAAG,MAAM,GAAG,MAAO;cACtC6E,KAAK,EAAE,CAACtE,eAAe,CAAC2E,eAAe,EAAEhB,aAAa,CAAE;cAAA,IACnDtE,aAAa,GAAGmC,YAAY,CAACoD,WAAW,GAAG,CAAC,CAAC;cAAAxF,QAAA,eAClDR,IAAA,CAACN,eAAe,CAACuG,OAAO;gBACtBZ,UAAU,EAAE7D,SAAS,GAAG,IAAI,GAAG8D,SAAU;gBACzCI,KAAK,EAAE,CACLtE,eAAe,CAAC8E,OAAO,EACvBnF,MAAM,IAAIK,eAAe,CAAC+E,aAAa,EACvC;kBACEC,mBAAmB,EAAErE,cAAc;kBACnCsE,oBAAoB,EAAEtE,cAAc;kBACpCuE,aAAa,EAAErE;gBACjB,CAAC,CACD;gBACF2D,MAAM,EAAC,sBAAsB;gBAAApF,QAAA,EAC5BA;cAAQ,CACc;YAAC,CACb;UAAC,CACZ;QAAC,CACH,CAAC;MAAA,CACU;IAAC,CACE;EAAC,CACL,CAAC;AAE3B;AAEA,OAAO,SAAS+F,iBAAiBA,CAAC;EAChCC,KAAK;EACLC,kBAAkB,GAAG;AACC,CAAC,EAAE;EACzB,MAAMrF,eAAe,GAAGC,YAAY,CAACvB,QAAQ,CAAC,CAAC,CAAC;EAEhD,oBACEI,KAAA,CAACV,IAAI;IAACkG,KAAK,EAAEtE,eAAe,CAACsF,MAAO;IAAAlG,QAAA,gBAClCR,IAAA,CAACR,IAAI;MAACkG,KAAK,EAAEtE,eAAe,CAACuF,MAAO;MAACf,MAAM,EAAC;IAAqB,CAAE,CAAC,eACpE5F,IAAA,CAACN,eAAe,CAACkH,KAAK;MACpBC,aAAa,EAAC,MAAM;MACpBC,aAAa,EAAEL,kBAAmB;MAClCf,KAAK,EAAEtE,eAAe,CAACoF,KAAM;MAAAhG,QAAA,EAC5BgG;IAAK,CACe,CAAC;EAAA,CACpB,CAAC;AAEX;AAEA,OAAO,SAASO,eAAeA,CAAC;EAAEvG,QAAQ;EAAEkF,KAAK;EAAE,GAAGsB;AAAqB,CAAC,EAAE;EAC5E,MAAM5F,eAAe,GAAGC,YAAY,CAACvB,QAAQ,CAAC,CAAC,CAAC;EAEhD,oBACEE,IAAA,CAACR,IAAI;IAACkG,KAAK,EAAE,CAACtE,eAAe,CAAC6F,IAAI,EAAEvB,KAAK,CAAE;IAAA,GAAKsB,KAAK;IAAAxG,QAAA,EAClDA;EAAQ,CACL,CAAC;AAEX;AAEA,OAAO,SAAS0G,iBAAiBA,CAAC;EAChC1G,QAAQ;EACRkF,KAAK;EACL,GAAGsB;AACU,CAAC,EAAE;EAChB,MAAM5F,eAAe,GAAGC,YAAY,CAACvB,QAAQ,CAAC,CAAC,CAAC;EAEhD,oBACEE,IAAA,CAACR,IAAI;IAACkG,KAAK,EAAE,CAACtE,eAAe,CAAC+F,MAAM,EAAEzB,KAAK,CAAE;IAAA,GAAKsB,KAAK;IAAAxG,QAAA,EACpDA;EAAQ,CACL,CAAC;AAEX;AAEA,SAASa,YAAYA,CAACL,KAAY,EAAE;EAClC,OAAOzB,UAAU,CAACsD,MAAM,CAAC;IACvB8C,OAAO,EAAE;MACP,GAAGpG,UAAU,CAAC6H,YAAY;MAC1BC,eAAe,EAAE;IACnB,CAAC;IACDxB,QAAQ,EAAE;MACR,GAAGtG,UAAU,CAAC6H,YAAY;MAC1BE,cAAc,EAAE;IAClB,CAAC;IACDxB,UAAU,EAAE;MACVyB,UAAU,EAAE,QAAQ;MACpBnF,MAAM,EAAE,CAAC;MACTkF,cAAc,EAAE,UAAU;MAC1BE,IAAI,EAAE,CAAC;MACPC,QAAQ,EAAE,UAAU;MACpBC,KAAK,EAAE,CAAC;MACRC,KAAK,EAAE;IACT,CAAC;IACD5B,eAAe,EAAE;MACf4B,KAAK,EAAE;IACT,CAAC;IACDzB,OAAO,EAAE;MACPmB,eAAe,EAAErG,KAAK,CAAC4G,MAAM,CAAC1B,OAAO;MACrC2B,WAAW,EAAE7G,KAAK,CAACgB,MAAM,CAAC8F,KAAK;MAC/B1B,mBAAmB,EAAEpF,KAAK,CAACgB,MAAM,CAAClB,MAAM;MACxCuF,oBAAoB,EAAErF,KAAK,CAACgB,MAAM,CAAClB,MAAM;MACzCiH,cAAc,EAAE/G,KAAK,CAACgB,MAAM,CAAC2F,KAAK;MAClCK,QAAQ,EAAE,QAAQ;MAClBL,KAAK,EAAE;IACT,CAAC;IACDxB,aAAa,EAAE;MACb8B,SAAS,EAAE,CAAC;MACZC,WAAW,EAAElH,KAAK,CAACD,MAAM,CAAC+G,KAAK;MAC/BK,YAAY,EAAE;QAAEjH,MAAM,EAAE,CAACF,KAAK,CAACD,MAAM,CAACqH,MAAM;QAAET,KAAK,EAAE;MAAE,CAAC;MACxDU,aAAa,EAAE,IAAI;MACnBC,YAAY,EAAEtH,KAAK,CAACD,MAAM,CAACqH;IAC7B,CAAC;IACD1B,MAAM,EAAE;MACNa,UAAU,EAAE,QAAQ;MACpBgB,GAAG,EAAEvH,KAAK,CAACqB,OAAO,CAACmG,EAAE;MACrBC,iBAAiB,EAAEzH,KAAK,CAACqB,OAAO,CAACmG,EAAE;MACnCE,UAAU,EAAE1H,KAAK,CAACqB,OAAO,CAACmG;IAC5B,CAAC;IACD7B,MAAM,EAAE;MACNU,eAAe,EAAErG,KAAK,CAAC4G,MAAM,CAACe,UAAU;MACxCC,YAAY,EAAE,GAAG;MACjB1H,MAAM,EAAE,CAAC;MACT2H,OAAO,EAAE,IAAI;MACblB,KAAK,EAAE;IACT,CAAC;IACDnB,KAAK,EAAE;MACLsB,KAAK,EAAE9G,KAAK,CAAC4G,MAAM,CAACe,UAAU;MAC9BG,QAAQ,EAAE,EAAE;MACZC,UAAU,EAAE,KAAK;MACjBC,UAAU,EAAE,EAAE;MACdC,SAAS,EAAE,QAAQ;MACnBtB,KAAK,EAAE;IACT,CAAC;IACDV,IAAI,EAAE;MACJsB,GAAG,EAAEvH,KAAK,CAACqB,OAAO,CAACmG,EAAE;MACrBC,iBAAiB,EAAEzH,KAAK,CAACqB,OAAO,CAACmG;IACnC,CAAC;IACDrB,MAAM,EAAE;MACN+B,aAAa,EAAE,KAAK;MACpBX,GAAG,EAAEvH,KAAK,CAACqB,OAAO,CAAC8G,EAAE;MACrB7C,aAAa,EAAE,CAAC;MAChBmC,iBAAiB,EAAEzH,KAAK,CAACqB,OAAO,CAACmG,EAAE;MACnCE,UAAU,EAAE1H,KAAK,CAACqB,OAAO,CAACmG;IAC5B;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|