@xaui/native 0.2.8 → 0.9.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-KFCORXWW.cjs +150 -0
- package/dist/chunk-M7P46XKI.cjs +100 -0
- package/dist/chunk-N357EQCZ.js +150 -0
- package/dist/chunk-NHPQQQ7P.cjs +734 -0
- package/dist/chunk-PBVPOX7D.js +734 -0
- package/dist/chunk-RBNCR5KB.js +100 -0
- package/dist/index.cjs +40 -1
- package/dist/index.d.cts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +40 -0
- package/dist/system/index.cjs +7 -0
- package/dist/system/index.d.cts +83 -0
- package/dist/system/index.d.ts +83 -0
- package/dist/system/index.js +7 -0
- package/dist/theme/index.cjs +36 -0
- package/dist/theme/index.d.cts +539 -0
- package/dist/theme/index.d.ts +539 -0
- package/dist/theme/index.js +36 -0
- package/dist/theme.type-B3ODSLbB.d.cts +153 -0
- package/dist/theme.type-B3ODSLbB.d.ts +153 -0
- package/package.json +30 -248
- package/README.md +0 -178
- package/dist/alert/index.cjs +0 -340
- package/dist/alert/index.d.cts +0 -46
- package/dist/alert/index.d.ts +0 -46
- package/dist/alert/index.js +0 -340
- package/dist/app-bar/index.cjs +0 -148
- package/dist/app-bar/index.d.cts +0 -59
- package/dist/app-bar/index.d.ts +0 -59
- package/dist/app-bar/index.js +0 -148
- package/dist/autocomplete/index.cjs +0 -1122
- package/dist/autocomplete/index.d.cts +0 -88
- package/dist/autocomplete/index.d.ts +0 -88
- package/dist/autocomplete/index.js +0 -1122
- package/dist/avatar/index.cjs +0 -281
- package/dist/avatar/index.d.cts +0 -123
- package/dist/avatar/index.d.ts +0 -123
- package/dist/avatar/index.js +0 -281
- package/dist/badge/index.cjs +0 -197
- package/dist/badge/index.d.cts +0 -94
- package/dist/badge/index.d.ts +0 -94
- package/dist/badge/index.js +0 -197
- package/dist/bottom-sheet/index.cjs +0 -9
- package/dist/bottom-sheet/index.d.cts +0 -84
- package/dist/bottom-sheet/index.d.ts +0 -84
- package/dist/bottom-sheet/index.js +0 -9
- package/dist/bottom-tab-bar/index.cjs +0 -497
- package/dist/bottom-tab-bar/index.d.cts +0 -211
- package/dist/bottom-tab-bar/index.d.ts +0 -211
- package/dist/bottom-tab-bar/index.js +0 -497
- package/dist/button/index.cjs +0 -392
- package/dist/button/index.d.cts +0 -174
- package/dist/button/index.d.ts +0 -174
- package/dist/button/index.js +0 -392
- package/dist/button.type-j1ZdkkSl.d.cts +0 -4
- package/dist/button.type-j1ZdkkSl.d.ts +0 -4
- package/dist/card/index.cjs +0 -338
- package/dist/card/index.d.cts +0 -191
- package/dist/card/index.d.ts +0 -191
- package/dist/card/index.js +0 -338
- package/dist/carousel/index.cjs +0 -381
- package/dist/carousel/index.d.cts +0 -147
- package/dist/carousel/index.d.ts +0 -147
- package/dist/carousel/index.js +0 -381
- package/dist/chart/index.cjs +0 -1026
- package/dist/chart/index.d.cts +0 -218
- package/dist/chart/index.d.ts +0 -218
- package/dist/chart/index.js +0 -1026
- package/dist/checkbox/index.cjs +0 -443
- package/dist/checkbox/index.d.cts +0 -73
- package/dist/checkbox/index.d.ts +0 -73
- package/dist/checkbox/index.js +0 -443
- package/dist/chip/index.cjs +0 -503
- package/dist/chip/index.d.cts +0 -195
- package/dist/chip/index.d.ts +0 -195
- package/dist/chip/index.js +0 -503
- package/dist/chunk-4JFWQ5XT.js +0 -368
- package/dist/chunk-56RPWZD2.cjs +0 -9
- package/dist/chunk-7UFBLUMV.cjs +0 -136
- package/dist/chunk-A45TVXU5.js +0 -337
- package/dist/chunk-BYWUAPC4.cjs +0 -368
- package/dist/chunk-DECMUMCI.js +0 -0
- package/dist/chunk-DHSTKO3K.cjs +0 -19
- package/dist/chunk-DJ4Q37UT.cjs +0 -75
- package/dist/chunk-EUQDGTST.cjs +0 -1
- package/dist/chunk-GBHQCAKW.js +0 -19
- package/dist/chunk-RBSA4NH4.js +0 -136
- package/dist/chunk-SHBDANQN.js +0 -9
- package/dist/chunk-UGEINZM7.cjs +0 -290
- package/dist/chunk-UU4HHBDN.js +0 -290
- package/dist/chunk-VSZEXOUN.js +0 -384
- package/dist/chunk-YIEUN3G5.cjs +0 -384
- package/dist/chunk-ZH6ZSV2Q.cjs +0 -337
- package/dist/chunk-ZY7IUTAT.js +0 -75
- package/dist/color-picker/index.cjs +0 -457
- package/dist/color-picker/index.d.cts +0 -124
- package/dist/color-picker/index.d.ts +0 -124
- package/dist/color-picker/index.js +0 -457
- package/dist/core/index.cjs +0 -24
- package/dist/core/index.d.cts +0 -28
- package/dist/core/index.d.ts +0 -28
- package/dist/core/index.js +0 -24
- package/dist/datepicker/index.cjs +0 -1625
- package/dist/datepicker/index.d.cts +0 -45
- package/dist/datepicker/index.d.ts +0 -45
- package/dist/datepicker/index.js +0 -1625
- package/dist/dialog/index.cjs +0 -372
- package/dist/dialog/index.d.cts +0 -151
- package/dist/dialog/index.d.ts +0 -151
- package/dist/dialog/index.js +0 -372
- package/dist/divider/index.cjs +0 -8
- package/dist/divider/index.d.cts +0 -30
- package/dist/divider/index.d.ts +0 -30
- package/dist/divider/index.js +0 -8
- package/dist/drawer/index.cjs +0 -237
- package/dist/drawer/index.d.cts +0 -58
- package/dist/drawer/index.d.ts +0 -58
- package/dist/drawer/index.js +0 -237
- package/dist/expansion-panel/index.cjs +0 -441
- package/dist/expansion-panel/index.d.cts +0 -153
- package/dist/expansion-panel/index.d.ts +0 -153
- package/dist/expansion-panel/index.js +0 -441
- package/dist/fab/index.cjs +0 -9
- package/dist/fab/index.d.cts +0 -10
- package/dist/fab/index.d.ts +0 -10
- package/dist/fab/index.js +0 -9
- package/dist/fab-menu/index.cjs +0 -330
- package/dist/fab-menu/index.d.cts +0 -125
- package/dist/fab-menu/index.d.ts +0 -125
- package/dist/fab-menu/index.js +0 -330
- package/dist/fab.type-CkUHmXU_.d.ts +0 -86
- package/dist/fab.type-DN0vtAh6.d.cts +0 -86
- package/dist/feature-discovery/index.cjs +0 -464
- package/dist/feature-discovery/index.d.cts +0 -82
- package/dist/feature-discovery/index.d.ts +0 -82
- package/dist/feature-discovery/index.js +0 -464
- package/dist/indicator/index.cjs +0 -8
- package/dist/indicator/index.d.cts +0 -47
- package/dist/indicator/index.d.ts +0 -47
- package/dist/indicator/index.js +0 -8
- package/dist/input/index.cjs +0 -1462
- package/dist/input/index.d.cts +0 -522
- package/dist/input/index.d.ts +0 -522
- package/dist/input/index.js +0 -1462
- package/dist/input-trigger/index.cjs +0 -197
- package/dist/input-trigger/index.d.cts +0 -11
- package/dist/input-trigger/index.d.ts +0 -11
- package/dist/input-trigger/index.js +0 -197
- package/dist/input-trigger.type-Ba4bM3Qp.d.cts +0 -180
- package/dist/input-trigger.type-Ba4bM3Qp.d.ts +0 -180
- package/dist/list/index.cjs +0 -395
- package/dist/list/index.d.cts +0 -188
- package/dist/list/index.d.ts +0 -188
- package/dist/list/index.js +0 -395
- package/dist/menu/index.cjs +0 -316
- package/dist/menu/index.d.cts +0 -115
- package/dist/menu/index.d.ts +0 -115
- package/dist/menu/index.js +0 -316
- package/dist/menubox/index.cjs +0 -297
- package/dist/menubox/index.d.cts +0 -98
- package/dist/menubox/index.d.ts +0 -98
- package/dist/menubox/index.js +0 -297
- package/dist/pager/index.cjs +0 -205
- package/dist/pager/index.d.cts +0 -93
- package/dist/pager/index.d.ts +0 -93
- package/dist/pager/index.js +0 -205
- package/dist/picker/index.cjs +0 -244
- package/dist/picker/index.d.cts +0 -121
- package/dist/picker/index.d.ts +0 -121
- package/dist/picker/index.js +0 -244
- package/dist/progress/index.cjs +0 -219
- package/dist/progress/index.d.cts +0 -47
- package/dist/progress/index.d.ts +0 -47
- package/dist/progress/index.js +0 -219
- package/dist/radio/index.cjs +0 -465
- package/dist/radio/index.d.cts +0 -145
- package/dist/radio/index.d.ts +0 -145
- package/dist/radio/index.js +0 -465
- package/dist/refresh-control/index.cjs +0 -45
- package/dist/refresh-control/index.d.cts +0 -55
- package/dist/refresh-control/index.d.ts +0 -55
- package/dist/refresh-control/index.js +0 -45
- package/dist/segment-button/index.cjs +0 -405
- package/dist/segment-button/index.d.cts +0 -141
- package/dist/segment-button/index.d.ts +0 -141
- package/dist/segment-button/index.js +0 -405
- package/dist/select/index.cjs +0 -878
- package/dist/select/index.d.cts +0 -192
- package/dist/select/index.d.ts +0 -192
- package/dist/select/index.js +0 -878
- package/dist/skeleton/index.cjs +0 -89
- package/dist/skeleton/index.d.cts +0 -45
- package/dist/skeleton/index.d.ts +0 -45
- package/dist/skeleton/index.js +0 -89
- package/dist/slider/index.cjs +0 -576
- package/dist/slider/index.d.cts +0 -171
- package/dist/slider/index.d.ts +0 -171
- package/dist/slider/index.js +0 -576
- package/dist/snackbar/index.cjs +0 -436
- package/dist/snackbar/index.d.cts +0 -174
- package/dist/snackbar/index.d.ts +0 -174
- package/dist/snackbar/index.js +0 -436
- package/dist/snippet/index.cjs +0 -314
- package/dist/snippet/index.d.cts +0 -95
- package/dist/snippet/index.d.ts +0 -95
- package/dist/snippet/index.js +0 -314
- package/dist/stepper/index.cjs +0 -550
- package/dist/stepper/index.d.cts +0 -137
- package/dist/stepper/index.d.ts +0 -137
- package/dist/stepper/index.js +0 -550
- package/dist/switch/index.cjs +0 -358
- package/dist/switch/index.d.cts +0 -28
- package/dist/switch/index.d.ts +0 -28
- package/dist/switch/index.js +0 -358
- package/dist/tabs/index.cjs +0 -440
- package/dist/tabs/index.d.cts +0 -180
- package/dist/tabs/index.d.ts +0 -180
- package/dist/tabs/index.js +0 -440
- package/dist/timepicker/index.cjs +0 -823
- package/dist/timepicker/index.d.cts +0 -215
- package/dist/timepicker/index.d.ts +0 -215
- package/dist/timepicker/index.js +0 -823
- package/dist/toolbar/index.cjs +0 -333
- package/dist/toolbar/index.d.cts +0 -100
- package/dist/toolbar/index.d.ts +0 -100
- package/dist/toolbar/index.js +0 -333
- package/dist/typography/index.cjs +0 -238
- package/dist/typography/index.d.cts +0 -113
- package/dist/typography/index.d.ts +0 -113
- package/dist/typography/index.js +0 -238
- package/dist/view/index.cjs +0 -1361
- package/dist/view/index.d.cts +0 -833
- package/dist/view/index.d.ts +0 -833
- package/dist/view/index.js +0 -1361
package/dist/menubox/index.js
DELETED
|
@@ -1,297 +0,0 @@
|
|
|
1
|
-
import "../chunk-SHBDANQN.js";
|
|
2
|
-
import {
|
|
3
|
-
useXUITheme
|
|
4
|
-
} from "../chunk-RBSA4NH4.js";
|
|
5
|
-
|
|
6
|
-
// src/components/menubox/menubox.tsx
|
|
7
|
-
import React, { useMemo, Children, isValidElement } from "react";
|
|
8
|
-
import { View } from "react-native";
|
|
9
|
-
|
|
10
|
-
// src/components/menubox/menubox-context.ts
|
|
11
|
-
import { createContext, useContext } from "react";
|
|
12
|
-
var MenuBoxContext = createContext(null);
|
|
13
|
-
|
|
14
|
-
// src/components/menubox/menubox.style.ts
|
|
15
|
-
import { StyleSheet } from "react-native";
|
|
16
|
-
var styles = StyleSheet.create({
|
|
17
|
-
container: {
|
|
18
|
-
overflow: "hidden"
|
|
19
|
-
},
|
|
20
|
-
item: {
|
|
21
|
-
flexDirection: "row",
|
|
22
|
-
alignItems: "center",
|
|
23
|
-
gap: 12
|
|
24
|
-
},
|
|
25
|
-
content: {
|
|
26
|
-
flex: 1,
|
|
27
|
-
gap: 2
|
|
28
|
-
},
|
|
29
|
-
title: {
|
|
30
|
-
fontWeight: "500"
|
|
31
|
-
},
|
|
32
|
-
description: {
|
|
33
|
-
opacity: 0.6
|
|
34
|
-
},
|
|
35
|
-
disabled: {
|
|
36
|
-
opacity: 0.5
|
|
37
|
-
},
|
|
38
|
-
divider: {
|
|
39
|
-
height: 1,
|
|
40
|
-
marginLeft: 56
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
// src/components/menubox/menubox.tsx
|
|
45
|
-
var MenuBox = ({
|
|
46
|
-
children,
|
|
47
|
-
size = "md",
|
|
48
|
-
radius = "lg",
|
|
49
|
-
themeColor = "default",
|
|
50
|
-
spacing = 0,
|
|
51
|
-
style,
|
|
52
|
-
backgroundColor
|
|
53
|
-
}) => {
|
|
54
|
-
const theme = useXUITheme();
|
|
55
|
-
const itemCount = Children.count(children);
|
|
56
|
-
const itemKeys = useMemo(() => {
|
|
57
|
-
const keys = [];
|
|
58
|
-
Children.forEach(children, (child) => {
|
|
59
|
-
if (isValidElement(child)) {
|
|
60
|
-
const props = child.props;
|
|
61
|
-
if (props.itemKey) {
|
|
62
|
-
keys.push(props.itemKey);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
return keys;
|
|
67
|
-
}, [children]);
|
|
68
|
-
const getItemIndex = (itemKey) => {
|
|
69
|
-
return itemKeys.indexOf(itemKey);
|
|
70
|
-
};
|
|
71
|
-
const bgColor = backgroundColor ?? theme.colors.default.container;
|
|
72
|
-
const contextValue = useMemo(
|
|
73
|
-
() => ({
|
|
74
|
-
size,
|
|
75
|
-
radius,
|
|
76
|
-
themeColor,
|
|
77
|
-
backgroundColor: bgColor,
|
|
78
|
-
itemCount,
|
|
79
|
-
spacing,
|
|
80
|
-
getItemIndex
|
|
81
|
-
}),
|
|
82
|
-
[size, radius, themeColor, bgColor, itemCount, spacing, getItemIndex]
|
|
83
|
-
);
|
|
84
|
-
return /* @__PURE__ */ React.createElement(MenuBoxContext.Provider, { value: contextValue }, /* @__PURE__ */ React.createElement(View, { style: [styles.container, style] }, children));
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
// src/components/menubox/menubox-item.tsx
|
|
88
|
-
import React2, { useContext as useContext2 } from "react";
|
|
89
|
-
import { Animated as Animated2, Pressable, Text, View as View2 } from "react-native";
|
|
90
|
-
|
|
91
|
-
// src/components/menubox/menubox.hook.ts
|
|
92
|
-
import { useMemo as useMemo2 } from "react";
|
|
93
|
-
var useMenuBoxItemSizeStyles = (size) => {
|
|
94
|
-
const theme = useXUITheme();
|
|
95
|
-
return useMemo2(() => {
|
|
96
|
-
const sizes = {
|
|
97
|
-
xs: {
|
|
98
|
-
paddingVertical: theme.spacing.sm,
|
|
99
|
-
paddingHorizontal: theme.spacing.sm,
|
|
100
|
-
titleSize: theme.fontSizes.xs,
|
|
101
|
-
descriptionSize: theme.fontSizes.xs
|
|
102
|
-
},
|
|
103
|
-
sm: {
|
|
104
|
-
paddingVertical: theme.spacing.sm,
|
|
105
|
-
paddingHorizontal: theme.spacing.md,
|
|
106
|
-
titleSize: theme.fontSizes.sm,
|
|
107
|
-
descriptionSize: theme.fontSizes.xs
|
|
108
|
-
},
|
|
109
|
-
md: {
|
|
110
|
-
paddingVertical: theme.spacing.md,
|
|
111
|
-
paddingHorizontal: theme.spacing.md,
|
|
112
|
-
titleSize: theme.fontSizes.md,
|
|
113
|
-
descriptionSize: theme.fontSizes.sm
|
|
114
|
-
},
|
|
115
|
-
lg: {
|
|
116
|
-
paddingVertical: theme.spacing.lg,
|
|
117
|
-
paddingHorizontal: theme.spacing.lg,
|
|
118
|
-
titleSize: theme.fontSizes.lg,
|
|
119
|
-
descriptionSize: theme.fontSizes.md
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
return sizes[size];
|
|
123
|
-
}, [size, theme]);
|
|
124
|
-
};
|
|
125
|
-
var useMenuBoxRadiusStyles = (radius, isFirst, isLast) => {
|
|
126
|
-
const theme = useXUITheme();
|
|
127
|
-
return useMemo2(() => {
|
|
128
|
-
const radiusMap = {
|
|
129
|
-
none: theme.borderRadius.none,
|
|
130
|
-
sm: theme.borderRadius.md,
|
|
131
|
-
md: theme.borderRadius.lg,
|
|
132
|
-
lg: theme.borderRadius.xl,
|
|
133
|
-
full: theme.borderRadius.full
|
|
134
|
-
};
|
|
135
|
-
const r = radiusMap[radius];
|
|
136
|
-
return {
|
|
137
|
-
borderTopLeftRadius: isFirst ? r : 0,
|
|
138
|
-
borderTopRightRadius: isFirst ? r : 0,
|
|
139
|
-
borderBottomLeftRadius: isLast ? r : 0,
|
|
140
|
-
borderBottomRightRadius: isLast ? r : 0
|
|
141
|
-
};
|
|
142
|
-
}, [radius, isFirst, isLast, theme]);
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
// src/components/menubox/menubox.animation.ts
|
|
146
|
-
import { Animated } from "react-native";
|
|
147
|
-
var runMenuBoxPressInAnimation = (animatedScale, animatedOpacity) => {
|
|
148
|
-
Animated.parallel([
|
|
149
|
-
Animated.spring(animatedScale, {
|
|
150
|
-
toValue: 0.99,
|
|
151
|
-
useNativeDriver: true,
|
|
152
|
-
speed: 50,
|
|
153
|
-
bounciness: 0
|
|
154
|
-
}),
|
|
155
|
-
Animated.timing(animatedOpacity, {
|
|
156
|
-
toValue: 0.8,
|
|
157
|
-
duration: 100,
|
|
158
|
-
useNativeDriver: true
|
|
159
|
-
})
|
|
160
|
-
]).start();
|
|
161
|
-
};
|
|
162
|
-
var runMenuBoxPressOutAnimation = (animatedScale, animatedOpacity) => {
|
|
163
|
-
Animated.parallel([
|
|
164
|
-
Animated.spring(animatedScale, {
|
|
165
|
-
toValue: 1,
|
|
166
|
-
useNativeDriver: true,
|
|
167
|
-
speed: 50,
|
|
168
|
-
bounciness: 0
|
|
169
|
-
}),
|
|
170
|
-
Animated.timing(animatedOpacity, {
|
|
171
|
-
toValue: 1,
|
|
172
|
-
duration: 100,
|
|
173
|
-
useNativeDriver: true
|
|
174
|
-
})
|
|
175
|
-
]).start();
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
// src/components/menubox/menubox-item.tsx
|
|
179
|
-
var MenuBoxItem = (props) => {
|
|
180
|
-
const context = useContext2(MenuBoxContext);
|
|
181
|
-
const theme = useXUITheme();
|
|
182
|
-
const animatedScale = React2.useRef(new Animated2.Value(1)).current;
|
|
183
|
-
const animatedOpacity = React2.useRef(new Animated2.Value(1)).current;
|
|
184
|
-
const {
|
|
185
|
-
itemKey,
|
|
186
|
-
title,
|
|
187
|
-
description,
|
|
188
|
-
startContent,
|
|
189
|
-
endContent,
|
|
190
|
-
isDisabled = false,
|
|
191
|
-
customAppearance,
|
|
192
|
-
onPress
|
|
193
|
-
} = props;
|
|
194
|
-
const size = context?.size ?? "md";
|
|
195
|
-
const radius = context?.radius ?? "lg";
|
|
196
|
-
const itemBackgroundColor = context?.backgroundColor ?? (theme.mode === "dark" ? theme.colors.default.container : theme.colors.background);
|
|
197
|
-
const spacing = context?.spacing ?? 0;
|
|
198
|
-
const itemCount = context?.itemCount ?? 1;
|
|
199
|
-
const index = context?.getItemIndex(itemKey) ?? 0;
|
|
200
|
-
const isFirst = index === 0;
|
|
201
|
-
const isLast = index === itemCount - 1;
|
|
202
|
-
const sizeStyles = useMenuBoxItemSizeStyles(size);
|
|
203
|
-
const radiusStyles = useMenuBoxRadiusStyles(radius, isFirst, isLast);
|
|
204
|
-
const titleColor = isDisabled ? theme.colors.foreground + "50" : theme.colors.foreground;
|
|
205
|
-
const descriptionColor = isDisabled ? theme.colors.foreground + "50" : theme.colors.foreground + "99";
|
|
206
|
-
const handlePress = () => {
|
|
207
|
-
if (isDisabled) {
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
onPress?.({});
|
|
211
|
-
};
|
|
212
|
-
const handlePressIn = () => {
|
|
213
|
-
if (!isDisabled) {
|
|
214
|
-
runMenuBoxPressInAnimation(animatedScale, animatedOpacity);
|
|
215
|
-
}
|
|
216
|
-
};
|
|
217
|
-
const handlePressOut = () => {
|
|
218
|
-
if (!isDisabled) {
|
|
219
|
-
runMenuBoxPressOutAnimation(animatedScale, animatedOpacity);
|
|
220
|
-
}
|
|
221
|
-
};
|
|
222
|
-
const renderTitle = () => {
|
|
223
|
-
if (typeof title === "string" || typeof title === "number") {
|
|
224
|
-
return /* @__PURE__ */ React2.createElement(
|
|
225
|
-
Text,
|
|
226
|
-
{
|
|
227
|
-
style: [
|
|
228
|
-
styles.title,
|
|
229
|
-
{ fontSize: sizeStyles.titleSize, color: titleColor },
|
|
230
|
-
customAppearance?.title
|
|
231
|
-
],
|
|
232
|
-
numberOfLines: 1
|
|
233
|
-
},
|
|
234
|
-
title
|
|
235
|
-
);
|
|
236
|
-
}
|
|
237
|
-
return title;
|
|
238
|
-
};
|
|
239
|
-
const renderDescription = () => {
|
|
240
|
-
if (!description) return null;
|
|
241
|
-
if (typeof description === "string" || typeof description === "number") {
|
|
242
|
-
return /* @__PURE__ */ React2.createElement(
|
|
243
|
-
Text,
|
|
244
|
-
{
|
|
245
|
-
style: [
|
|
246
|
-
styles.description,
|
|
247
|
-
{ fontSize: sizeStyles.descriptionSize, color: descriptionColor },
|
|
248
|
-
customAppearance?.description
|
|
249
|
-
],
|
|
250
|
-
numberOfLines: 1
|
|
251
|
-
},
|
|
252
|
-
description
|
|
253
|
-
);
|
|
254
|
-
}
|
|
255
|
-
return description;
|
|
256
|
-
};
|
|
257
|
-
const content = /* @__PURE__ */ React2.createElement(
|
|
258
|
-
Animated2.View,
|
|
259
|
-
{
|
|
260
|
-
style: [
|
|
261
|
-
styles.item,
|
|
262
|
-
{
|
|
263
|
-
paddingVertical: sizeStyles.paddingVertical,
|
|
264
|
-
paddingHorizontal: sizeStyles.paddingHorizontal,
|
|
265
|
-
backgroundColor: itemBackgroundColor,
|
|
266
|
-
transform: [{ scale: animatedScale }],
|
|
267
|
-
opacity: animatedOpacity
|
|
268
|
-
},
|
|
269
|
-
radiusStyles,
|
|
270
|
-
isDisabled && styles.disabled,
|
|
271
|
-
customAppearance?.container
|
|
272
|
-
]
|
|
273
|
-
},
|
|
274
|
-
startContent && /* @__PURE__ */ React2.createElement(View2, { style: customAppearance?.content }, startContent),
|
|
275
|
-
/* @__PURE__ */ React2.createElement(View2, { style: [styles.content, customAppearance?.content] }, renderTitle(), renderDescription()),
|
|
276
|
-
endContent && /* @__PURE__ */ React2.createElement(View2, { style: customAppearance?.content }, endContent)
|
|
277
|
-
);
|
|
278
|
-
return /* @__PURE__ */ React2.createElement(
|
|
279
|
-
Pressable,
|
|
280
|
-
{
|
|
281
|
-
onPress: handlePress,
|
|
282
|
-
onPressIn: handlePressIn,
|
|
283
|
-
onPressOut: handlePressOut,
|
|
284
|
-
disabled: isDisabled,
|
|
285
|
-
style: [
|
|
286
|
-
radiusStyles,
|
|
287
|
-
{ overflow: "hidden" },
|
|
288
|
-
!isLast && { marginBottom: spacing }
|
|
289
|
-
]
|
|
290
|
-
},
|
|
291
|
-
content
|
|
292
|
-
);
|
|
293
|
-
};
|
|
294
|
-
export {
|
|
295
|
-
MenuBox,
|
|
296
|
-
MenuBoxItem
|
|
297
|
-
};
|
package/dist/pager/index.cjs
DELETED
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/components/pager/pager.tsx
|
|
2
|
-
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
3
|
-
var _reactnative = require('react-native');
|
|
4
|
-
|
|
5
|
-
// src/components/pager/pager.style.ts
|
|
6
|
-
|
|
7
|
-
var styles = _reactnative.StyleSheet.create({
|
|
8
|
-
container: {
|
|
9
|
-
width: "100%"
|
|
10
|
-
},
|
|
11
|
-
fullscreenContainer: {
|
|
12
|
-
flex: 1
|
|
13
|
-
},
|
|
14
|
-
fullscreenScrollView: {
|
|
15
|
-
flex: 1
|
|
16
|
-
},
|
|
17
|
-
page: {
|
|
18
|
-
width: "100%"
|
|
19
|
-
},
|
|
20
|
-
fullscreenPage: {
|
|
21
|
-
flex: 1
|
|
22
|
-
},
|
|
23
|
-
indicatorContainer: {
|
|
24
|
-
marginTop: 12,
|
|
25
|
-
flexDirection: "row",
|
|
26
|
-
alignItems: "center",
|
|
27
|
-
justifyContent: "center"
|
|
28
|
-
},
|
|
29
|
-
fullscreenIndicatorContainer: {
|
|
30
|
-
position: "absolute",
|
|
31
|
-
bottom: 16,
|
|
32
|
-
left: 16,
|
|
33
|
-
right: 16,
|
|
34
|
-
marginTop: 0,
|
|
35
|
-
zIndex: 1,
|
|
36
|
-
elevation: 1
|
|
37
|
-
},
|
|
38
|
-
indicator: {
|
|
39
|
-
width: 8,
|
|
40
|
-
height: 8,
|
|
41
|
-
marginHorizontal: 3,
|
|
42
|
-
borderRadius: 999,
|
|
43
|
-
backgroundColor: "#D1D5DB"
|
|
44
|
-
},
|
|
45
|
-
activeIndicator: {
|
|
46
|
-
width: 18,
|
|
47
|
-
backgroundColor: "#111827"
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
// src/components/pager/pager-item.tsx
|
|
52
|
-
var PagerItem = () => null;
|
|
53
|
-
PagerItem.displayName = "PagerItem";
|
|
54
|
-
|
|
55
|
-
// src/components/pager/pager.tsx
|
|
56
|
-
function clampPage(page, max) {
|
|
57
|
-
return Math.max(0, Math.min(page, max));
|
|
58
|
-
}
|
|
59
|
-
function toPages(children) {
|
|
60
|
-
return _react2.default.Children.toArray(children).flatMap((child, index) => {
|
|
61
|
-
if (!_react2.default.isValidElement(child) || child.type !== PagerItem) {
|
|
62
|
-
return [];
|
|
63
|
-
}
|
|
64
|
-
return [
|
|
65
|
-
{
|
|
66
|
-
key: child.key != null ? String(child.key) : `page-${String(index)}`,
|
|
67
|
-
content: child.props.children
|
|
68
|
-
}
|
|
69
|
-
];
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
var Pager = ({
|
|
73
|
-
isFullscreen = false,
|
|
74
|
-
isfullscreen,
|
|
75
|
-
page: controlledPage,
|
|
76
|
-
defaultPage = 0,
|
|
77
|
-
onPageChange,
|
|
78
|
-
swipeEnabled = true,
|
|
79
|
-
showIndicator = true,
|
|
80
|
-
renderIndicator,
|
|
81
|
-
children,
|
|
82
|
-
customAppearance
|
|
83
|
-
}) => {
|
|
84
|
-
const isPagerFullscreen = isFullscreen || isfullscreen === true;
|
|
85
|
-
const pages = _react.useMemo.call(void 0, () => toPages(children), [children]);
|
|
86
|
-
const maxPage = Math.max(0, pages.length - 1);
|
|
87
|
-
const isControlled = controlledPage !== void 0;
|
|
88
|
-
const [internalPage, setInternalPage] = _react.useState.call(void 0, clampPage(defaultPage, maxPage));
|
|
89
|
-
const [containerWidth, setContainerWidth] = _react.useState.call(void 0, 0);
|
|
90
|
-
const scrollViewRef = _react.useRef.call(void 0, null);
|
|
91
|
-
const initialScrollAppliedRef = _react.useRef.call(void 0, false);
|
|
92
|
-
const activePage = clampPage(
|
|
93
|
-
isControlled ? _nullishCoalesce(controlledPage, () => ( 0)) : internalPage,
|
|
94
|
-
maxPage
|
|
95
|
-
);
|
|
96
|
-
_react.useEffect.call(void 0, () => {
|
|
97
|
-
if (isControlled || pages.length === 0) return;
|
|
98
|
-
setInternalPage((prev) => clampPage(prev, maxPage));
|
|
99
|
-
}, [isControlled, maxPage, pages.length]);
|
|
100
|
-
_react.useEffect.call(void 0, () => {
|
|
101
|
-
if (containerWidth <= 0) return;
|
|
102
|
-
if (pages.length <= 1) return;
|
|
103
|
-
const x = activePage * containerWidth;
|
|
104
|
-
if (!initialScrollAppliedRef.current) {
|
|
105
|
-
initialScrollAppliedRef.current = true;
|
|
106
|
-
_optionalChain([scrollViewRef, 'access', _2 => _2.current, 'optionalAccess', _3 => _3.scrollTo, 'call', _4 => _4({ x, animated: false })]);
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
_optionalChain([scrollViewRef, 'access', _5 => _5.current, 'optionalAccess', _6 => _6.scrollTo, 'call', _7 => _7({ x, animated: true })]);
|
|
110
|
-
}, [activePage, containerWidth, pages.length]);
|
|
111
|
-
const handleLayout = _react.useCallback.call(void 0, (event) => {
|
|
112
|
-
setContainerWidth(event.nativeEvent.layout.width);
|
|
113
|
-
}, []);
|
|
114
|
-
const commitPageChange = _react.useCallback.call(void 0,
|
|
115
|
-
(nextPage) => {
|
|
116
|
-
if (!isControlled) {
|
|
117
|
-
setInternalPage(nextPage);
|
|
118
|
-
}
|
|
119
|
-
_optionalChain([onPageChange, 'optionalCall', _8 => _8(nextPage)]);
|
|
120
|
-
},
|
|
121
|
-
[isControlled, onPageChange]
|
|
122
|
-
);
|
|
123
|
-
const handleMomentumScrollEnd = _react.useCallback.call(void 0,
|
|
124
|
-
(event) => {
|
|
125
|
-
if (containerWidth <= 0 || pages.length === 0) return;
|
|
126
|
-
const rawPage = Math.round(event.nativeEvent.contentOffset.x / containerWidth);
|
|
127
|
-
const nextPage = clampPage(rawPage, maxPage);
|
|
128
|
-
if (nextPage !== activePage) {
|
|
129
|
-
commitPageChange(nextPage);
|
|
130
|
-
}
|
|
131
|
-
},
|
|
132
|
-
[activePage, commitPageChange, containerWidth, maxPage, pages.length]
|
|
133
|
-
);
|
|
134
|
-
return /* @__PURE__ */ _react2.default.createElement(
|
|
135
|
-
_reactnative.View,
|
|
136
|
-
{
|
|
137
|
-
onLayout: handleLayout,
|
|
138
|
-
style: [
|
|
139
|
-
styles.container,
|
|
140
|
-
isPagerFullscreen && styles.fullscreenContainer,
|
|
141
|
-
_optionalChain([customAppearance, 'optionalAccess', _9 => _9.container])
|
|
142
|
-
]
|
|
143
|
-
},
|
|
144
|
-
/* @__PURE__ */ _react2.default.createElement(
|
|
145
|
-
_reactnative.ScrollView,
|
|
146
|
-
{
|
|
147
|
-
ref: scrollViewRef,
|
|
148
|
-
horizontal: true,
|
|
149
|
-
pagingEnabled: true,
|
|
150
|
-
showsHorizontalScrollIndicator: false,
|
|
151
|
-
scrollEnabled: swipeEnabled,
|
|
152
|
-
onMomentumScrollEnd: handleMomentumScrollEnd,
|
|
153
|
-
style: [
|
|
154
|
-
isPagerFullscreen && styles.fullscreenScrollView,
|
|
155
|
-
_optionalChain([customAppearance, 'optionalAccess', _10 => _10.scrollView])
|
|
156
|
-
]
|
|
157
|
-
},
|
|
158
|
-
pages.map((pagerPage) => /* @__PURE__ */ _react2.default.createElement(
|
|
159
|
-
_reactnative.View,
|
|
160
|
-
{
|
|
161
|
-
key: pagerPage.key,
|
|
162
|
-
style: [
|
|
163
|
-
styles.page,
|
|
164
|
-
isPagerFullscreen && styles.fullscreenPage,
|
|
165
|
-
_optionalChain([customAppearance, 'optionalAccess', _11 => _11.page]),
|
|
166
|
-
containerWidth > 0 && { width: containerWidth }
|
|
167
|
-
]
|
|
168
|
-
},
|
|
169
|
-
pagerPage.content
|
|
170
|
-
))
|
|
171
|
-
),
|
|
172
|
-
showIndicator && pages.length > 1 && /* @__PURE__ */ _react2.default.createElement(
|
|
173
|
-
_reactnative.View,
|
|
174
|
-
{
|
|
175
|
-
style: [
|
|
176
|
-
styles.indicatorContainer,
|
|
177
|
-
_optionalChain([customAppearance, 'optionalAccess', _12 => _12.indicatorContainer]),
|
|
178
|
-
isPagerFullscreen && styles.fullscreenIndicatorContainer
|
|
179
|
-
]
|
|
180
|
-
},
|
|
181
|
-
pages.map((_, index) => {
|
|
182
|
-
const isActive = index === activePage;
|
|
183
|
-
if (renderIndicator) {
|
|
184
|
-
return /* @__PURE__ */ _react2.default.createElement(_react2.default.Fragment, { key: `indicator-${String(index)}` }, renderIndicator({ index, isActive, total: pages.length }));
|
|
185
|
-
}
|
|
186
|
-
return /* @__PURE__ */ _react2.default.createElement(
|
|
187
|
-
_reactnative.View,
|
|
188
|
-
{
|
|
189
|
-
key: `indicator-${String(index)}`,
|
|
190
|
-
style: [
|
|
191
|
-
styles.indicator,
|
|
192
|
-
_optionalChain([customAppearance, 'optionalAccess', _13 => _13.indicator]),
|
|
193
|
-
isActive && styles.activeIndicator,
|
|
194
|
-
isActive && _optionalChain([customAppearance, 'optionalAccess', _14 => _14.activeIndicator])
|
|
195
|
-
]
|
|
196
|
-
}
|
|
197
|
-
);
|
|
198
|
-
})
|
|
199
|
-
)
|
|
200
|
-
);
|
|
201
|
-
};
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
exports.Pager = Pager; exports.PagerItem = PagerItem;
|
package/dist/pager/index.d.cts
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import React, { ReactNode } from 'react';
|
|
2
|
-
import { ViewStyle } from 'react-native';
|
|
3
|
-
|
|
4
|
-
type PagerIndicatorRenderState = {
|
|
5
|
-
index: number;
|
|
6
|
-
isActive: boolean;
|
|
7
|
-
total: number;
|
|
8
|
-
};
|
|
9
|
-
type PagerCustomAppearance = {
|
|
10
|
-
/**
|
|
11
|
-
* Custom styles for the outer wrapper.
|
|
12
|
-
*/
|
|
13
|
-
container?: ViewStyle;
|
|
14
|
-
/**
|
|
15
|
-
* Custom styles for the internal scroll view.
|
|
16
|
-
*/
|
|
17
|
-
scrollView?: ViewStyle;
|
|
18
|
-
/**
|
|
19
|
-
* Custom styles applied to each page wrapper.
|
|
20
|
-
*/
|
|
21
|
-
page?: ViewStyle;
|
|
22
|
-
/**
|
|
23
|
-
* Custom styles for the indicator row.
|
|
24
|
-
*/
|
|
25
|
-
indicatorContainer?: ViewStyle;
|
|
26
|
-
/**
|
|
27
|
-
* Custom styles for each indicator item.
|
|
28
|
-
*/
|
|
29
|
-
indicator?: ViewStyle;
|
|
30
|
-
/**
|
|
31
|
-
* Custom styles for the active indicator item.
|
|
32
|
-
*/
|
|
33
|
-
activeIndicator?: ViewStyle;
|
|
34
|
-
};
|
|
35
|
-
type PagerProps = {
|
|
36
|
-
/**
|
|
37
|
-
* Whether the pager should fill its parent and render indicators inside.
|
|
38
|
-
* @default false
|
|
39
|
-
*/
|
|
40
|
-
isFullscreen?: boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Alias of `isFullscreen`.
|
|
43
|
-
* @default false
|
|
44
|
-
*/
|
|
45
|
-
isfullscreen?: boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Controlled active page index.
|
|
48
|
-
*/
|
|
49
|
-
page?: number;
|
|
50
|
-
/**
|
|
51
|
-
* Default active page index (uncontrolled mode).
|
|
52
|
-
* @default 0
|
|
53
|
-
*/
|
|
54
|
-
defaultPage?: number;
|
|
55
|
-
/**
|
|
56
|
-
* Callback fired when active page changes.
|
|
57
|
-
*/
|
|
58
|
-
onPageChange?: (page: number) => void;
|
|
59
|
-
/**
|
|
60
|
-
* Whether swipe gesture is enabled.
|
|
61
|
-
* @default true
|
|
62
|
-
*/
|
|
63
|
-
swipeEnabled?: boolean;
|
|
64
|
-
/**
|
|
65
|
-
* Whether to render indicators.
|
|
66
|
-
* @default true
|
|
67
|
-
*/
|
|
68
|
-
showIndicator?: boolean;
|
|
69
|
-
/**
|
|
70
|
-
* Optional custom indicator renderer.
|
|
71
|
-
*/
|
|
72
|
-
renderIndicator?: (state: PagerIndicatorRenderState) => ReactNode;
|
|
73
|
-
/**
|
|
74
|
-
* Pager pages. Prefer using `PagerItem`.
|
|
75
|
-
*/
|
|
76
|
-
children: ReactNode;
|
|
77
|
-
/**
|
|
78
|
-
* Appearance overrides.
|
|
79
|
-
*/
|
|
80
|
-
customAppearance?: PagerCustomAppearance;
|
|
81
|
-
};
|
|
82
|
-
type PagerItemProps = {
|
|
83
|
-
/**
|
|
84
|
-
* Page content.
|
|
85
|
-
*/
|
|
86
|
-
children?: ReactNode;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
declare const Pager: React.FC<PagerProps>;
|
|
90
|
-
|
|
91
|
-
declare const PagerItem: React.FC<PagerItemProps>;
|
|
92
|
-
|
|
93
|
-
export { Pager, type PagerIndicatorRenderState, PagerItem, type PagerItemProps, type PagerProps };
|
package/dist/pager/index.d.ts
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import React, { ReactNode } from 'react';
|
|
2
|
-
import { ViewStyle } from 'react-native';
|
|
3
|
-
|
|
4
|
-
type PagerIndicatorRenderState = {
|
|
5
|
-
index: number;
|
|
6
|
-
isActive: boolean;
|
|
7
|
-
total: number;
|
|
8
|
-
};
|
|
9
|
-
type PagerCustomAppearance = {
|
|
10
|
-
/**
|
|
11
|
-
* Custom styles for the outer wrapper.
|
|
12
|
-
*/
|
|
13
|
-
container?: ViewStyle;
|
|
14
|
-
/**
|
|
15
|
-
* Custom styles for the internal scroll view.
|
|
16
|
-
*/
|
|
17
|
-
scrollView?: ViewStyle;
|
|
18
|
-
/**
|
|
19
|
-
* Custom styles applied to each page wrapper.
|
|
20
|
-
*/
|
|
21
|
-
page?: ViewStyle;
|
|
22
|
-
/**
|
|
23
|
-
* Custom styles for the indicator row.
|
|
24
|
-
*/
|
|
25
|
-
indicatorContainer?: ViewStyle;
|
|
26
|
-
/**
|
|
27
|
-
* Custom styles for each indicator item.
|
|
28
|
-
*/
|
|
29
|
-
indicator?: ViewStyle;
|
|
30
|
-
/**
|
|
31
|
-
* Custom styles for the active indicator item.
|
|
32
|
-
*/
|
|
33
|
-
activeIndicator?: ViewStyle;
|
|
34
|
-
};
|
|
35
|
-
type PagerProps = {
|
|
36
|
-
/**
|
|
37
|
-
* Whether the pager should fill its parent and render indicators inside.
|
|
38
|
-
* @default false
|
|
39
|
-
*/
|
|
40
|
-
isFullscreen?: boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Alias of `isFullscreen`.
|
|
43
|
-
* @default false
|
|
44
|
-
*/
|
|
45
|
-
isfullscreen?: boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Controlled active page index.
|
|
48
|
-
*/
|
|
49
|
-
page?: number;
|
|
50
|
-
/**
|
|
51
|
-
* Default active page index (uncontrolled mode).
|
|
52
|
-
* @default 0
|
|
53
|
-
*/
|
|
54
|
-
defaultPage?: number;
|
|
55
|
-
/**
|
|
56
|
-
* Callback fired when active page changes.
|
|
57
|
-
*/
|
|
58
|
-
onPageChange?: (page: number) => void;
|
|
59
|
-
/**
|
|
60
|
-
* Whether swipe gesture is enabled.
|
|
61
|
-
* @default true
|
|
62
|
-
*/
|
|
63
|
-
swipeEnabled?: boolean;
|
|
64
|
-
/**
|
|
65
|
-
* Whether to render indicators.
|
|
66
|
-
* @default true
|
|
67
|
-
*/
|
|
68
|
-
showIndicator?: boolean;
|
|
69
|
-
/**
|
|
70
|
-
* Optional custom indicator renderer.
|
|
71
|
-
*/
|
|
72
|
-
renderIndicator?: (state: PagerIndicatorRenderState) => ReactNode;
|
|
73
|
-
/**
|
|
74
|
-
* Pager pages. Prefer using `PagerItem`.
|
|
75
|
-
*/
|
|
76
|
-
children: ReactNode;
|
|
77
|
-
/**
|
|
78
|
-
* Appearance overrides.
|
|
79
|
-
*/
|
|
80
|
-
customAppearance?: PagerCustomAppearance;
|
|
81
|
-
};
|
|
82
|
-
type PagerItemProps = {
|
|
83
|
-
/**
|
|
84
|
-
* Page content.
|
|
85
|
-
*/
|
|
86
|
-
children?: ReactNode;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
declare const Pager: React.FC<PagerProps>;
|
|
90
|
-
|
|
91
|
-
declare const PagerItem: React.FC<PagerItemProps>;
|
|
92
|
-
|
|
93
|
-
export { Pager, type PagerIndicatorRenderState, PagerItem, type PagerItemProps, type PagerProps };
|