@xaui/native 0.2.7 → 0.9.1-alpha.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/dist/chunk-JDS6KGCM.cjs +791 -0
- package/dist/chunk-T3ZI2PZ6.js +791 -0
- package/dist/index.cjs +32 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +32 -0
- package/dist/theme/index.cjs +32 -0
- package/dist/theme/index.d.cts +669 -0
- package/dist/theme/index.d.ts +669 -0
- package/dist/theme/index.js +32 -0
- package/package.json +26 -249
- package/README.md +0 -178
- package/dist/alert/index.cjs +0 -356
- package/dist/alert/index.d.cts +0 -90
- package/dist/alert/index.d.ts +0 -90
- package/dist/alert/index.js +0 -356
- 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/avatar/index.js
DELETED
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
import "../chunk-SHBDANQN.js";
|
|
2
|
-
import {
|
|
3
|
-
useXUITheme
|
|
4
|
-
} from "../chunk-RBSA4NH4.js";
|
|
5
|
-
|
|
6
|
-
// src/components/avatar/avatar.tsx
|
|
7
|
-
import React from "react";
|
|
8
|
-
import { Image, Text, View } from "react-native";
|
|
9
|
-
|
|
10
|
-
// src/components/avatar/avatar.style.ts
|
|
11
|
-
import { StyleSheet } from "react-native";
|
|
12
|
-
var styles = StyleSheet.create({
|
|
13
|
-
container: {
|
|
14
|
-
overflow: "hidden",
|
|
15
|
-
alignItems: "center",
|
|
16
|
-
justifyContent: "center"
|
|
17
|
-
},
|
|
18
|
-
image: {
|
|
19
|
-
width: "100%",
|
|
20
|
-
height: "100%"
|
|
21
|
-
},
|
|
22
|
-
fallback: {
|
|
23
|
-
alignItems: "center",
|
|
24
|
-
justifyContent: "center"
|
|
25
|
-
},
|
|
26
|
-
group: {
|
|
27
|
-
flexDirection: "row",
|
|
28
|
-
alignItems: "center"
|
|
29
|
-
},
|
|
30
|
-
grid: {
|
|
31
|
-
flexDirection: "row",
|
|
32
|
-
flexWrap: "wrap",
|
|
33
|
-
alignItems: "flex-start"
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
// src/components/avatar/avatar.hook.ts
|
|
38
|
-
import { useMemo } from "react";
|
|
39
|
-
import { getSafeThemeColor } from "@xaui/core";
|
|
40
|
-
var sizeMap = {
|
|
41
|
-
xs: 24,
|
|
42
|
-
sm: 32,
|
|
43
|
-
md: 40,
|
|
44
|
-
lg: 48
|
|
45
|
-
};
|
|
46
|
-
function resolveAvatarSize(size) {
|
|
47
|
-
if (typeof size === "number") {
|
|
48
|
-
return size;
|
|
49
|
-
}
|
|
50
|
-
return sizeMap[size];
|
|
51
|
-
}
|
|
52
|
-
function useAvatarSizeStyles(size) {
|
|
53
|
-
const theme = useXUITheme();
|
|
54
|
-
const resolvedSize = useMemo(() => resolveAvatarSize(size), [size]);
|
|
55
|
-
const fontSize = useMemo(() => {
|
|
56
|
-
if (typeof size === "number") {
|
|
57
|
-
return Math.max(10, Math.round(size * 0.4));
|
|
58
|
-
}
|
|
59
|
-
return theme.fontSizes[size];
|
|
60
|
-
}, [size, theme]);
|
|
61
|
-
return {
|
|
62
|
-
size: resolvedSize,
|
|
63
|
-
fontSize
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
function useAvatarRadiusStyles(radius, size) {
|
|
67
|
-
const theme = useXUITheme();
|
|
68
|
-
return useMemo(() => {
|
|
69
|
-
if (radius === "full") {
|
|
70
|
-
return { borderRadius: size / 2 };
|
|
71
|
-
}
|
|
72
|
-
const radii = {
|
|
73
|
-
none: theme.borderRadius.none,
|
|
74
|
-
sm: theme.borderRadius.sm,
|
|
75
|
-
md: theme.borderRadius.md,
|
|
76
|
-
lg: theme.borderRadius.lg,
|
|
77
|
-
full: theme.borderRadius.full
|
|
78
|
-
};
|
|
79
|
-
return { borderRadius: radii[radius] };
|
|
80
|
-
}, [radius, size, theme]);
|
|
81
|
-
}
|
|
82
|
-
function useAvatarColors(themeColor, isDisabled) {
|
|
83
|
-
const theme = useXUITheme();
|
|
84
|
-
const safeThemeColor = getSafeThemeColor(themeColor);
|
|
85
|
-
const colorScheme = theme.colors[safeThemeColor];
|
|
86
|
-
const backgroundColor = useMemo(() => {
|
|
87
|
-
if (isDisabled) {
|
|
88
|
-
return theme.colors.background;
|
|
89
|
-
}
|
|
90
|
-
return colorScheme.container;
|
|
91
|
-
}, [colorScheme.container, isDisabled, theme.colors.background]);
|
|
92
|
-
const textColor = useMemo(() => {
|
|
93
|
-
if (safeThemeColor === "default") {
|
|
94
|
-
return theme.colors.foreground;
|
|
95
|
-
}
|
|
96
|
-
return colorScheme.onContainer;
|
|
97
|
-
}, [safeThemeColor, colorScheme.onContainer, theme.colors.foreground]);
|
|
98
|
-
return {
|
|
99
|
-
backgroundColor,
|
|
100
|
-
textColor,
|
|
101
|
-
borderColor: colorScheme.main
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
function getDefaultInitials(name) {
|
|
105
|
-
const trimmed = name.trim();
|
|
106
|
-
if (!trimmed) {
|
|
107
|
-
return "";
|
|
108
|
-
}
|
|
109
|
-
const parts = trimmed.split(/\s+/);
|
|
110
|
-
if (parts.length === 1) {
|
|
111
|
-
return parts[0].slice(0, 2).toUpperCase();
|
|
112
|
-
}
|
|
113
|
-
return `${parts[0][0]}${parts[parts.length - 1][0]}`.toUpperCase();
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// src/components/avatar/avatar.tsx
|
|
117
|
-
var Avatar = ({
|
|
118
|
-
src,
|
|
119
|
-
name,
|
|
120
|
-
icon,
|
|
121
|
-
fallback,
|
|
122
|
-
size = "md",
|
|
123
|
-
radius = "full",
|
|
124
|
-
themeColor = "default",
|
|
125
|
-
isBordered = false,
|
|
126
|
-
isDisabled = false,
|
|
127
|
-
showFallback = false,
|
|
128
|
-
getInitials,
|
|
129
|
-
customAppearance
|
|
130
|
-
}) => {
|
|
131
|
-
const [isError, setIsError] = React.useState(false);
|
|
132
|
-
const { size: resolvedSize, fontSize } = useAvatarSizeStyles(size);
|
|
133
|
-
const radiusStyles = useAvatarRadiusStyles(radius, resolvedSize);
|
|
134
|
-
const { backgroundColor, textColor, borderColor } = useAvatarColors(
|
|
135
|
-
themeColor,
|
|
136
|
-
isDisabled
|
|
137
|
-
);
|
|
138
|
-
const accessibilityLabel = name ?? "Avatar";
|
|
139
|
-
const shouldShowFallback = showFallback || !src || isError;
|
|
140
|
-
const initials = name ? (getInitials ?? getDefaultInitials)(name) : "";
|
|
141
|
-
return /* @__PURE__ */ React.createElement(
|
|
142
|
-
View,
|
|
143
|
-
{
|
|
144
|
-
style: [
|
|
145
|
-
styles.container,
|
|
146
|
-
{
|
|
147
|
-
width: resolvedSize,
|
|
148
|
-
height: resolvedSize,
|
|
149
|
-
backgroundColor,
|
|
150
|
-
opacity: isDisabled ? 0.6 : 1,
|
|
151
|
-
borderWidth: isBordered ? 1 : 0,
|
|
152
|
-
borderColor: isBordered ? borderColor : "transparent"
|
|
153
|
-
},
|
|
154
|
-
radiusStyles,
|
|
155
|
-
customAppearance?.container
|
|
156
|
-
],
|
|
157
|
-
accessible: true,
|
|
158
|
-
accessibilityRole: "image",
|
|
159
|
-
accessibilityLabel
|
|
160
|
-
},
|
|
161
|
-
!shouldShowFallback && src ? /* @__PURE__ */ React.createElement(
|
|
162
|
-
Image,
|
|
163
|
-
{
|
|
164
|
-
source: { uri: src },
|
|
165
|
-
style: [styles.image, radiusStyles, customAppearance?.image],
|
|
166
|
-
accessibilityLabel,
|
|
167
|
-
onError: () => setIsError(true)
|
|
168
|
-
}
|
|
169
|
-
) : /* @__PURE__ */ React.createElement(View, { style: [styles.fallback, { width: "100%", height: "100%" }] }, fallback ?? icon ?? /* @__PURE__ */ React.createElement(
|
|
170
|
-
Text,
|
|
171
|
-
{
|
|
172
|
-
style: [
|
|
173
|
-
{
|
|
174
|
-
color: textColor,
|
|
175
|
-
fontSize,
|
|
176
|
-
fontWeight: "600"
|
|
177
|
-
},
|
|
178
|
-
customAppearance?.text
|
|
179
|
-
]
|
|
180
|
-
},
|
|
181
|
-
initials
|
|
182
|
-
))
|
|
183
|
-
);
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
// src/components/avatar/avatar-group.tsx
|
|
187
|
-
import React2 from "react";
|
|
188
|
-
import { Text as Text2, View as View2 } from "react-native";
|
|
189
|
-
var AvatarGroup = ({
|
|
190
|
-
children,
|
|
191
|
-
max,
|
|
192
|
-
total,
|
|
193
|
-
size = "md",
|
|
194
|
-
radius = "full",
|
|
195
|
-
themeColor = "default",
|
|
196
|
-
isBordered = false,
|
|
197
|
-
isDisabled = false,
|
|
198
|
-
isGrid = false,
|
|
199
|
-
renderCount,
|
|
200
|
-
customAppearance
|
|
201
|
-
}) => {
|
|
202
|
-
const theme = useXUITheme();
|
|
203
|
-
const resolvedSize = resolveAvatarSize(size);
|
|
204
|
-
const spacing = theme.spacing.xs;
|
|
205
|
-
const overlap = Math.round(resolvedSize * 0.28);
|
|
206
|
-
const allChildren = React2.Children.toArray(children).filter(
|
|
207
|
-
(child) => React2.isValidElement(child)
|
|
208
|
-
);
|
|
209
|
-
const totalCount = total ?? allChildren.length;
|
|
210
|
-
const maxCount = max ?? totalCount;
|
|
211
|
-
const visibleChildren = allChildren.slice(0, maxCount);
|
|
212
|
-
const remaining = Math.max(0, totalCount - maxCount);
|
|
213
|
-
const enhanced = visibleChildren.map((child, index) => {
|
|
214
|
-
const childProps = child.props;
|
|
215
|
-
return /* @__PURE__ */ React2.createElement(
|
|
216
|
-
View2,
|
|
217
|
-
{
|
|
218
|
-
key: child.key ?? index,
|
|
219
|
-
style: isGrid ? { marginRight: spacing, marginBottom: spacing } : { marginLeft: index === 0 ? 0 : -overlap, zIndex: index }
|
|
220
|
-
},
|
|
221
|
-
React2.cloneElement(child, {
|
|
222
|
-
size: childProps.size ?? size,
|
|
223
|
-
radius: childProps.radius ?? radius,
|
|
224
|
-
themeColor: childProps.themeColor ?? themeColor,
|
|
225
|
-
isBordered: childProps.isBordered ?? isBordered,
|
|
226
|
-
isDisabled: childProps.isDisabled ?? isDisabled
|
|
227
|
-
})
|
|
228
|
-
);
|
|
229
|
-
});
|
|
230
|
-
const countNode = remaining > 0 ? renderCount?.(remaining) ?? /* @__PURE__ */ React2.createElement(
|
|
231
|
-
Avatar,
|
|
232
|
-
{
|
|
233
|
-
name: `+${remaining}`,
|
|
234
|
-
showFallback: true,
|
|
235
|
-
size,
|
|
236
|
-
radius,
|
|
237
|
-
themeColor,
|
|
238
|
-
isBordered,
|
|
239
|
-
isDisabled,
|
|
240
|
-
fallback: /* @__PURE__ */ React2.createElement(
|
|
241
|
-
Text2,
|
|
242
|
-
{
|
|
243
|
-
style: {
|
|
244
|
-
color: theme.colors.foreground,
|
|
245
|
-
fontSize: Math.max(10, Math.round(resolvedSize * 0.35)),
|
|
246
|
-
fontWeight: "600"
|
|
247
|
-
}
|
|
248
|
-
},
|
|
249
|
-
"+",
|
|
250
|
-
remaining
|
|
251
|
-
)
|
|
252
|
-
}
|
|
253
|
-
) : null;
|
|
254
|
-
if (countNode) {
|
|
255
|
-
enhanced.push(
|
|
256
|
-
/* @__PURE__ */ React2.createElement(
|
|
257
|
-
View2,
|
|
258
|
-
{
|
|
259
|
-
key: "avatar-count",
|
|
260
|
-
style: isGrid ? { marginRight: spacing, marginBottom: spacing } : {
|
|
261
|
-
marginLeft: enhanced.length === 0 ? 0 : -overlap,
|
|
262
|
-
zIndex: enhanced.length
|
|
263
|
-
}
|
|
264
|
-
},
|
|
265
|
-
countNode
|
|
266
|
-
)
|
|
267
|
-
);
|
|
268
|
-
}
|
|
269
|
-
return /* @__PURE__ */ React2.createElement(
|
|
270
|
-
View2,
|
|
271
|
-
{
|
|
272
|
-
style: [isGrid ? styles.grid : styles.group, customAppearance?.container],
|
|
273
|
-
accessible: true
|
|
274
|
-
},
|
|
275
|
-
enhanced
|
|
276
|
-
);
|
|
277
|
-
};
|
|
278
|
-
export {
|
|
279
|
-
Avatar,
|
|
280
|
-
AvatarGroup
|
|
281
|
-
};
|
package/dist/badge/index.cjs
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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; }require('../chunk-56RPWZD2.cjs');
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _chunk7UFBLUMVcjs = require('../chunk-7UFBLUMV.cjs');
|
|
5
|
-
|
|
6
|
-
// src/components/badge/badge.tsx
|
|
7
|
-
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
8
|
-
var _reactnative = require('react-native');
|
|
9
|
-
|
|
10
|
-
// src/components/badge/badge.style.ts
|
|
11
|
-
|
|
12
|
-
var styles = _reactnative.StyleSheet.create({
|
|
13
|
-
container: {
|
|
14
|
-
position: "relative",
|
|
15
|
-
alignSelf: "flex-start"
|
|
16
|
-
},
|
|
17
|
-
badge: {
|
|
18
|
-
position: "absolute",
|
|
19
|
-
alignItems: "center",
|
|
20
|
-
justifyContent: "center"
|
|
21
|
-
},
|
|
22
|
-
text: {
|
|
23
|
-
textAlign: "center",
|
|
24
|
-
fontWeight: "700",
|
|
25
|
-
includeFontPadding: false,
|
|
26
|
-
textAlignVertical: "center"
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
// src/components/badge/badge.hook.ts
|
|
31
|
-
|
|
32
|
-
var _core = require('@xaui/core');
|
|
33
|
-
var sizeMap = {
|
|
34
|
-
sm: { height: 16, minWidth: 16, dot: 8 },
|
|
35
|
-
md: { height: 20, minWidth: 20, dot: 10 },
|
|
36
|
-
lg: { height: 24, minWidth: 24, dot: 12 }
|
|
37
|
-
};
|
|
38
|
-
var fontSizeMap = {
|
|
39
|
-
sm: 9,
|
|
40
|
-
md: 10,
|
|
41
|
-
lg: 12
|
|
42
|
-
};
|
|
43
|
-
function useBadgeSizeStyles(size, isDot, isOneChar) {
|
|
44
|
-
const theme = _chunk7UFBLUMVcjs.useXUITheme.call(void 0, );
|
|
45
|
-
return _react.useMemo.call(void 0, () => {
|
|
46
|
-
const { height, minWidth, dot } = sizeMap[size];
|
|
47
|
-
const fontSize = fontSizeMap[size];
|
|
48
|
-
if (isDot) {
|
|
49
|
-
return {
|
|
50
|
-
height: dot,
|
|
51
|
-
minWidth: dot,
|
|
52
|
-
paddingHorizontal: 0,
|
|
53
|
-
fontSize
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
if (isOneChar) {
|
|
57
|
-
return {
|
|
58
|
-
height,
|
|
59
|
-
minWidth: height,
|
|
60
|
-
paddingHorizontal: 0,
|
|
61
|
-
fontSize
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
const paddingHorizontal = size === "sm" ? theme.spacing.xs : theme.spacing.sm;
|
|
65
|
-
return {
|
|
66
|
-
height,
|
|
67
|
-
minWidth,
|
|
68
|
-
paddingHorizontal,
|
|
69
|
-
fontSize
|
|
70
|
-
};
|
|
71
|
-
}, [isDot, isOneChar, size, theme]);
|
|
72
|
-
}
|
|
73
|
-
function useBadgeVariantStyles(themeColor, variant) {
|
|
74
|
-
const theme = _chunk7UFBLUMVcjs.useXUITheme.call(void 0, );
|
|
75
|
-
const safeThemeColor = _core.getSafeThemeColor.call(void 0, themeColor);
|
|
76
|
-
const colorScheme = theme.colors[safeThemeColor];
|
|
77
|
-
return _react.useMemo.call(void 0, () => {
|
|
78
|
-
if (variant === "flat") {
|
|
79
|
-
return {
|
|
80
|
-
backgroundColor: colorScheme.container,
|
|
81
|
-
color: colorScheme.onContainer
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
if (variant === "faded") {
|
|
85
|
-
return {
|
|
86
|
-
backgroundColor: _core.withOpacity.call(void 0, colorScheme.container, 0.7),
|
|
87
|
-
color: colorScheme.onContainer
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
if (variant === "shadow") {
|
|
91
|
-
return {
|
|
92
|
-
backgroundColor: colorScheme.main,
|
|
93
|
-
color: colorScheme.onMain,
|
|
94
|
-
shadow: theme.shadows.sm
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
return {
|
|
98
|
-
backgroundColor: colorScheme.main,
|
|
99
|
-
color: colorScheme.onMain
|
|
100
|
-
};
|
|
101
|
-
}, [colorScheme, theme, variant]);
|
|
102
|
-
}
|
|
103
|
-
function useBadgeRadiusStyles(radius, height) {
|
|
104
|
-
const theme = _chunk7UFBLUMVcjs.useXUITheme.call(void 0, );
|
|
105
|
-
return _react.useMemo.call(void 0, () => {
|
|
106
|
-
if (radius === "full") {
|
|
107
|
-
return { borderRadius: height / 2 };
|
|
108
|
-
}
|
|
109
|
-
return { borderRadius: theme.borderRadius[radius] };
|
|
110
|
-
}, [height, radius, theme.borderRadius]);
|
|
111
|
-
}
|
|
112
|
-
function useBadgePlacementStyles(placement, height) {
|
|
113
|
-
return _react.useMemo.call(void 0, () => {
|
|
114
|
-
const offset = Math.round(height * 0.3);
|
|
115
|
-
switch (placement) {
|
|
116
|
-
case "top-left":
|
|
117
|
-
return { top: -offset, left: -offset };
|
|
118
|
-
case "bottom-right":
|
|
119
|
-
return { bottom: -offset, right: -offset };
|
|
120
|
-
case "bottom-left":
|
|
121
|
-
return { bottom: -offset, left: -offset };
|
|
122
|
-
case "top-right":
|
|
123
|
-
default:
|
|
124
|
-
return { top: -offset, right: -offset };
|
|
125
|
-
}
|
|
126
|
-
}, [height, placement]);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// src/components/badge/badge.tsx
|
|
130
|
-
var Badge = ({
|
|
131
|
-
children,
|
|
132
|
-
content,
|
|
133
|
-
themeColor = "primary",
|
|
134
|
-
variant = "solid",
|
|
135
|
-
size = "md",
|
|
136
|
-
radius = "full",
|
|
137
|
-
placement = "top-right",
|
|
138
|
-
showOutline = true,
|
|
139
|
-
disableOutline = false,
|
|
140
|
-
isInvisible = false,
|
|
141
|
-
isDot = false,
|
|
142
|
-
isOneChar = false,
|
|
143
|
-
disableAnimation = false,
|
|
144
|
-
customAppearance
|
|
145
|
-
}) => {
|
|
146
|
-
const shouldRender = !isInvisible && (isDot || content !== void 0);
|
|
147
|
-
if (!shouldRender && !children) {
|
|
148
|
-
return null;
|
|
149
|
-
}
|
|
150
|
-
const forceOneChar = isOneChar;
|
|
151
|
-
const sizeStyles = useBadgeSizeStyles(size, isDot, forceOneChar);
|
|
152
|
-
const variantStyles = useBadgeVariantStyles(themeColor, variant);
|
|
153
|
-
const radiusStyles = useBadgeRadiusStyles(radius, sizeStyles.height);
|
|
154
|
-
const placementStyles = useBadgePlacementStyles(placement, sizeStyles.height);
|
|
155
|
-
const outlineEnabled = disableOutline ? false : showOutline;
|
|
156
|
-
const outlineStyles = outlineEnabled ? { borderWidth: 1, borderColor: "#FFFFFF" } : { borderWidth: 0, borderColor: "transparent" };
|
|
157
|
-
const badgeContent = isDot ? null : content;
|
|
158
|
-
return /* @__PURE__ */ _react2.default.createElement(_reactnative.View, { style: [styles.container, _optionalChain([customAppearance, 'optionalAccess', _ => _.container])] }, children, shouldRender && /* @__PURE__ */ _react2.default.createElement(
|
|
159
|
-
_reactnative.View,
|
|
160
|
-
{
|
|
161
|
-
style: [
|
|
162
|
-
styles.badge,
|
|
163
|
-
{
|
|
164
|
-
minWidth: sizeStyles.minWidth,
|
|
165
|
-
height: sizeStyles.height,
|
|
166
|
-
paddingHorizontal: sizeStyles.paddingHorizontal,
|
|
167
|
-
backgroundColor: variantStyles.backgroundColor,
|
|
168
|
-
opacity: disableAnimation ? 1 : 1
|
|
169
|
-
},
|
|
170
|
-
radiusStyles,
|
|
171
|
-
placementStyles,
|
|
172
|
-
outlineStyles,
|
|
173
|
-
variantStyles.shadow,
|
|
174
|
-
_optionalChain([customAppearance, 'optionalAccess', _2 => _2.badge])
|
|
175
|
-
],
|
|
176
|
-
accessible: true,
|
|
177
|
-
accessibilityRole: "text"
|
|
178
|
-
},
|
|
179
|
-
badgeContent !== void 0 && badgeContent !== null && /* @__PURE__ */ _react2.default.createElement(
|
|
180
|
-
_reactnative.Text,
|
|
181
|
-
{
|
|
182
|
-
style: [
|
|
183
|
-
styles.text,
|
|
184
|
-
{
|
|
185
|
-
fontSize: sizeStyles.fontSize,
|
|
186
|
-
color: variantStyles.color
|
|
187
|
-
},
|
|
188
|
-
_optionalChain([customAppearance, 'optionalAccess', _3 => _3.text])
|
|
189
|
-
]
|
|
190
|
-
},
|
|
191
|
-
badgeContent
|
|
192
|
-
)
|
|
193
|
-
));
|
|
194
|
-
};
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
exports.Badge = Badge;
|
package/dist/badge/index.d.cts
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import React, { ReactNode } from 'react';
|
|
2
|
-
import { ViewStyle, TextStyle } from 'react-native';
|
|
3
|
-
import { ThemeColor, Radius } from '@xaui/core/types';
|
|
4
|
-
|
|
5
|
-
type BadgeVariant = 'solid' | 'flat' | 'faded' | 'shadow';
|
|
6
|
-
type BadgeSize = 'sm' | 'md' | 'lg';
|
|
7
|
-
type BadgePlacement = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
|
|
8
|
-
type BadgeCustomAppearance = {
|
|
9
|
-
/**
|
|
10
|
-
* Custom styles for the container
|
|
11
|
-
*/
|
|
12
|
-
container?: ViewStyle;
|
|
13
|
-
/**
|
|
14
|
-
* Custom styles for the badge
|
|
15
|
-
*/
|
|
16
|
-
badge?: ViewStyle;
|
|
17
|
-
/**
|
|
18
|
-
* Custom styles for the text
|
|
19
|
-
*/
|
|
20
|
-
text?: TextStyle;
|
|
21
|
-
};
|
|
22
|
-
type BadgeProps = {
|
|
23
|
-
/**
|
|
24
|
-
* Content rendered inside the badge.
|
|
25
|
-
*/
|
|
26
|
-
content?: ReactNode;
|
|
27
|
-
/**
|
|
28
|
-
* The badge color.
|
|
29
|
-
* @default 'primary'
|
|
30
|
-
*/
|
|
31
|
-
themeColor?: ThemeColor;
|
|
32
|
-
/**
|
|
33
|
-
* The badge variant.
|
|
34
|
-
* @default 'solid'
|
|
35
|
-
*/
|
|
36
|
-
variant?: BadgeVariant;
|
|
37
|
-
/**
|
|
38
|
-
* The badge size.
|
|
39
|
-
* @default 'md'
|
|
40
|
-
*/
|
|
41
|
-
size?: BadgeSize;
|
|
42
|
-
/**
|
|
43
|
-
* The badge radius.
|
|
44
|
-
* @default 'full'
|
|
45
|
-
*/
|
|
46
|
-
radius?: Radius;
|
|
47
|
-
/**
|
|
48
|
-
* Placement relative to children.
|
|
49
|
-
* @default 'top-right'
|
|
50
|
-
*/
|
|
51
|
-
placement?: BadgePlacement;
|
|
52
|
-
/**
|
|
53
|
-
* Show outline around badge.
|
|
54
|
-
* @default true
|
|
55
|
-
*/
|
|
56
|
-
showOutline?: boolean;
|
|
57
|
-
/**
|
|
58
|
-
* Disable outline around badge.
|
|
59
|
-
* @default false
|
|
60
|
-
*/
|
|
61
|
-
disableOutline?: boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Hide the badge.
|
|
64
|
-
* @default false
|
|
65
|
-
*/
|
|
66
|
-
isInvisible?: boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Render dot style badge.
|
|
69
|
-
* @default false
|
|
70
|
-
*/
|
|
71
|
-
isDot?: boolean;
|
|
72
|
-
/**
|
|
73
|
-
* Render badge as one character size.
|
|
74
|
-
* @default false
|
|
75
|
-
*/
|
|
76
|
-
isOneChar?: boolean;
|
|
77
|
-
/**
|
|
78
|
-
* Disable badge animation.
|
|
79
|
-
* @default false
|
|
80
|
-
*/
|
|
81
|
-
disableAnimation?: boolean;
|
|
82
|
-
/**
|
|
83
|
-
* Custom appearance styles for badge parts
|
|
84
|
-
*/
|
|
85
|
-
customAppearance?: BadgeCustomAppearance;
|
|
86
|
-
/**
|
|
87
|
-
* Wrapped component.
|
|
88
|
-
*/
|
|
89
|
-
children?: ReactNode;
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
declare const Badge: React.FC<BadgeProps>;
|
|
93
|
-
|
|
94
|
-
export { Badge, type BadgeProps };
|
package/dist/badge/index.d.ts
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import React, { ReactNode } from 'react';
|
|
2
|
-
import { ViewStyle, TextStyle } from 'react-native';
|
|
3
|
-
import { ThemeColor, Radius } from '@xaui/core/types';
|
|
4
|
-
|
|
5
|
-
type BadgeVariant = 'solid' | 'flat' | 'faded' | 'shadow';
|
|
6
|
-
type BadgeSize = 'sm' | 'md' | 'lg';
|
|
7
|
-
type BadgePlacement = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
|
|
8
|
-
type BadgeCustomAppearance = {
|
|
9
|
-
/**
|
|
10
|
-
* Custom styles for the container
|
|
11
|
-
*/
|
|
12
|
-
container?: ViewStyle;
|
|
13
|
-
/**
|
|
14
|
-
* Custom styles for the badge
|
|
15
|
-
*/
|
|
16
|
-
badge?: ViewStyle;
|
|
17
|
-
/**
|
|
18
|
-
* Custom styles for the text
|
|
19
|
-
*/
|
|
20
|
-
text?: TextStyle;
|
|
21
|
-
};
|
|
22
|
-
type BadgeProps = {
|
|
23
|
-
/**
|
|
24
|
-
* Content rendered inside the badge.
|
|
25
|
-
*/
|
|
26
|
-
content?: ReactNode;
|
|
27
|
-
/**
|
|
28
|
-
* The badge color.
|
|
29
|
-
* @default 'primary'
|
|
30
|
-
*/
|
|
31
|
-
themeColor?: ThemeColor;
|
|
32
|
-
/**
|
|
33
|
-
* The badge variant.
|
|
34
|
-
* @default 'solid'
|
|
35
|
-
*/
|
|
36
|
-
variant?: BadgeVariant;
|
|
37
|
-
/**
|
|
38
|
-
* The badge size.
|
|
39
|
-
* @default 'md'
|
|
40
|
-
*/
|
|
41
|
-
size?: BadgeSize;
|
|
42
|
-
/**
|
|
43
|
-
* The badge radius.
|
|
44
|
-
* @default 'full'
|
|
45
|
-
*/
|
|
46
|
-
radius?: Radius;
|
|
47
|
-
/**
|
|
48
|
-
* Placement relative to children.
|
|
49
|
-
* @default 'top-right'
|
|
50
|
-
*/
|
|
51
|
-
placement?: BadgePlacement;
|
|
52
|
-
/**
|
|
53
|
-
* Show outline around badge.
|
|
54
|
-
* @default true
|
|
55
|
-
*/
|
|
56
|
-
showOutline?: boolean;
|
|
57
|
-
/**
|
|
58
|
-
* Disable outline around badge.
|
|
59
|
-
* @default false
|
|
60
|
-
*/
|
|
61
|
-
disableOutline?: boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Hide the badge.
|
|
64
|
-
* @default false
|
|
65
|
-
*/
|
|
66
|
-
isInvisible?: boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Render dot style badge.
|
|
69
|
-
* @default false
|
|
70
|
-
*/
|
|
71
|
-
isDot?: boolean;
|
|
72
|
-
/**
|
|
73
|
-
* Render badge as one character size.
|
|
74
|
-
* @default false
|
|
75
|
-
*/
|
|
76
|
-
isOneChar?: boolean;
|
|
77
|
-
/**
|
|
78
|
-
* Disable badge animation.
|
|
79
|
-
* @default false
|
|
80
|
-
*/
|
|
81
|
-
disableAnimation?: boolean;
|
|
82
|
-
/**
|
|
83
|
-
* Custom appearance styles for badge parts
|
|
84
|
-
*/
|
|
85
|
-
customAppearance?: BadgeCustomAppearance;
|
|
86
|
-
/**
|
|
87
|
-
* Wrapped component.
|
|
88
|
-
*/
|
|
89
|
-
children?: ReactNode;
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
declare const Badge: React.FC<BadgeProps>;
|
|
93
|
-
|
|
94
|
-
export { Badge, type BadgeProps };
|