@gaozh1024/rn-kit 0.3.0 → 0.3.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/README.md +1 -0
- package/dist/index.js +131 -106
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +28 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -2
package/dist/index.js
CHANGED
|
@@ -1723,7 +1723,8 @@ function Card({
|
|
|
1723
1723
|
}
|
|
1724
1724
|
|
|
1725
1725
|
// src/ui/display/Icon.tsx
|
|
1726
|
-
var
|
|
1726
|
+
var import_react_native10 = require("react-native");
|
|
1727
|
+
var import_vector_icons = require("@expo/vector-icons");
|
|
1727
1728
|
var import_jsx_runtime16 = require("nativewind/jsx-runtime");
|
|
1728
1729
|
var sizeMap2 = {
|
|
1729
1730
|
xs: 16,
|
|
@@ -1732,6 +1733,12 @@ var sizeMap2 = {
|
|
|
1732
1733
|
lg: 32,
|
|
1733
1734
|
xl: 48
|
|
1734
1735
|
};
|
|
1736
|
+
function isComponentLike(value) {
|
|
1737
|
+
if (typeof value === "function") return true;
|
|
1738
|
+
if (typeof value !== "object" || value === null) return false;
|
|
1739
|
+
return "$$typeof" in value;
|
|
1740
|
+
}
|
|
1741
|
+
var MaterialIconComponent = isComponentLike(import_vector_icons.MaterialIcons) ? import_vector_icons.MaterialIcons : void 0;
|
|
1735
1742
|
function resolveSize(size = "md") {
|
|
1736
1743
|
if (typeof size === "number") return size;
|
|
1737
1744
|
return sizeMap2[size] || 24;
|
|
@@ -1740,11 +1747,29 @@ function Icon({ name, size = "md", color = "gray-600", style, onPress, testID })
|
|
|
1740
1747
|
const { theme, isDark } = useOptionalTheme();
|
|
1741
1748
|
const resolvedSize = resolveSize(size);
|
|
1742
1749
|
const resolvedColor = resolveNamedColor(color, theme, isDark) ?? color;
|
|
1750
|
+
const fallback = /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1751
|
+
import_react_native10.Text,
|
|
1752
|
+
{
|
|
1753
|
+
style: [
|
|
1754
|
+
{
|
|
1755
|
+
color: resolvedColor,
|
|
1756
|
+
fontSize: resolvedSize,
|
|
1757
|
+
lineHeight: resolvedSize
|
|
1758
|
+
},
|
|
1759
|
+
style
|
|
1760
|
+
],
|
|
1761
|
+
testID,
|
|
1762
|
+
children: "\u25A1"
|
|
1763
|
+
}
|
|
1764
|
+
);
|
|
1765
|
+
if (!MaterialIconComponent) {
|
|
1766
|
+
return onPress ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AppPressable, { onPress, children: fallback }) : fallback;
|
|
1767
|
+
}
|
|
1743
1768
|
if (onPress) {
|
|
1744
|
-
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AppPressable, { onPress, testID, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1769
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(AppPressable, { onPress, testID, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(MaterialIconComponent, { name, size: resolvedSize, color: resolvedColor, style }) });
|
|
1745
1770
|
}
|
|
1746
1771
|
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1747
|
-
|
|
1772
|
+
MaterialIconComponent,
|
|
1748
1773
|
{
|
|
1749
1774
|
name,
|
|
1750
1775
|
size: resolvedSize,
|
|
@@ -1800,7 +1825,7 @@ var FileIcons = {
|
|
|
1800
1825
|
|
|
1801
1826
|
// src/ui/display/AppImage.tsx
|
|
1802
1827
|
var import_react14 = require("react");
|
|
1803
|
-
var
|
|
1828
|
+
var import_react_native11 = require("react-native");
|
|
1804
1829
|
var import_jsx_runtime17 = require("nativewind/jsx-runtime");
|
|
1805
1830
|
var radiusMap = {
|
|
1806
1831
|
none: 0,
|
|
@@ -1863,7 +1888,7 @@ function AppImage({
|
|
|
1863
1888
|
if (!isLoading) return null;
|
|
1864
1889
|
if (placeholder) {
|
|
1865
1890
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1866
|
-
|
|
1891
|
+
import_react_native11.Image,
|
|
1867
1892
|
{
|
|
1868
1893
|
source: placeholder,
|
|
1869
1894
|
style: {
|
|
@@ -1884,7 +1909,7 @@ function AppImage({
|
|
|
1884
1909
|
center: true,
|
|
1885
1910
|
className: "absolute inset-0 bg-gray-100",
|
|
1886
1911
|
style: { borderRadius: resolvedRadius },
|
|
1887
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1912
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react_native11.ActivityIndicator, { color: theme.colors.primary?.[500] })
|
|
1888
1913
|
}
|
|
1889
1914
|
);
|
|
1890
1915
|
}
|
|
@@ -1896,7 +1921,7 @@ function AppImage({
|
|
|
1896
1921
|
if (!hasError) return null;
|
|
1897
1922
|
if (errorPlaceholder) {
|
|
1898
1923
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1899
|
-
|
|
1924
|
+
import_react_native11.Image,
|
|
1900
1925
|
{
|
|
1901
1926
|
source: errorPlaceholder,
|
|
1902
1927
|
style: {
|
|
@@ -1925,7 +1950,7 @@ function AppImage({
|
|
|
1925
1950
|
const isNumberWidth = typeof width === "number";
|
|
1926
1951
|
const isNumberHeight = typeof height === "number";
|
|
1927
1952
|
const content = /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
1928
|
-
|
|
1953
|
+
import_react_native11.View,
|
|
1929
1954
|
{
|
|
1930
1955
|
className: cn("overflow-hidden", className),
|
|
1931
1956
|
style: {
|
|
@@ -1937,7 +1962,7 @@ function AppImage({
|
|
|
1937
1962
|
children: [
|
|
1938
1963
|
renderLoading(),
|
|
1939
1964
|
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1940
|
-
|
|
1965
|
+
import_react_native11.Image,
|
|
1941
1966
|
{
|
|
1942
1967
|
source,
|
|
1943
1968
|
style: imageStyle,
|
|
@@ -1958,7 +1983,7 @@ function AppImage({
|
|
|
1958
1983
|
|
|
1959
1984
|
// src/ui/display/AppList.tsx
|
|
1960
1985
|
var import_react15 = require("react");
|
|
1961
|
-
var
|
|
1986
|
+
var import_react_native12 = require("react-native");
|
|
1962
1987
|
var import_jsx_runtime18 = require("nativewind/jsx-runtime");
|
|
1963
1988
|
function SkeletonItem2({ render }) {
|
|
1964
1989
|
const colors = useThemeColors();
|
|
@@ -2007,7 +2032,7 @@ function ErrorState({ error, onRetry }) {
|
|
|
2007
2032
|
}
|
|
2008
2033
|
function LoadMoreFooter({ loading }) {
|
|
2009
2034
|
if (!loading) return null;
|
|
2010
|
-
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Center, { py: 4, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2035
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Center, { py: 4, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_react_native12.ActivityIndicator, { size: "small" }) });
|
|
2011
2036
|
}
|
|
2012
2037
|
function Divider({ style }) {
|
|
2013
2038
|
const colors = useThemeColors();
|
|
@@ -2086,7 +2111,7 @@ function AppList({
|
|
|
2086
2111
|
);
|
|
2087
2112
|
if (loading && data.length === 0) {
|
|
2088
2113
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2089
|
-
|
|
2114
|
+
import_react_native12.FlatList,
|
|
2090
2115
|
{
|
|
2091
2116
|
data: skeletonData,
|
|
2092
2117
|
renderItem: skeletonRenderItem,
|
|
@@ -2112,13 +2137,13 @@ function AppList({
|
|
|
2112
2137
|
] });
|
|
2113
2138
|
}, [isLoadingMore, ListFooterComponent]);
|
|
2114
2139
|
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2115
|
-
|
|
2140
|
+
import_react_native12.FlatList,
|
|
2116
2141
|
{
|
|
2117
2142
|
data,
|
|
2118
2143
|
renderItem: wrappedRenderItem,
|
|
2119
2144
|
keyExtractor: defaultKeyExtractor,
|
|
2120
2145
|
refreshControl: onRefresh ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
2121
|
-
|
|
2146
|
+
import_react_native12.RefreshControl,
|
|
2122
2147
|
{
|
|
2123
2148
|
refreshing,
|
|
2124
2149
|
onRefresh,
|
|
@@ -2145,7 +2170,7 @@ function AppList({
|
|
|
2145
2170
|
}
|
|
2146
2171
|
);
|
|
2147
2172
|
}
|
|
2148
|
-
var styles3 =
|
|
2173
|
+
var styles3 = import_react_native12.StyleSheet.create({
|
|
2149
2174
|
retryButton: {
|
|
2150
2175
|
borderWidth: 0.5
|
|
2151
2176
|
}
|
|
@@ -2153,7 +2178,7 @@ var styles3 = import_react_native11.StyleSheet.create({
|
|
|
2153
2178
|
|
|
2154
2179
|
// src/ui/display/PageDrawer.tsx
|
|
2155
2180
|
var import_react16 = __toESM(require("react"));
|
|
2156
|
-
var
|
|
2181
|
+
var import_react_native13 = require("react-native");
|
|
2157
2182
|
var import_jsx_runtime19 = require("nativewind/jsx-runtime");
|
|
2158
2183
|
function PageDrawer({
|
|
2159
2184
|
visible,
|
|
@@ -2181,14 +2206,14 @@ function PageDrawer({
|
|
|
2181
2206
|
}, [onClose]);
|
|
2182
2207
|
import_react16.default.useEffect(() => {
|
|
2183
2208
|
if (!visible) return;
|
|
2184
|
-
const subscription =
|
|
2209
|
+
const subscription = import_react_native13.BackHandler.addEventListener("hardwareBackPress", () => {
|
|
2185
2210
|
handleClose();
|
|
2186
2211
|
return true;
|
|
2187
2212
|
});
|
|
2188
2213
|
return () => subscription.remove();
|
|
2189
2214
|
}, [handleClose, visible]);
|
|
2190
2215
|
const panResponder = import_react16.default.useMemo(
|
|
2191
|
-
() =>
|
|
2216
|
+
() => import_react_native13.PanResponder.create({
|
|
2192
2217
|
onMoveShouldSetPanResponder: (_event, gestureState) => {
|
|
2193
2218
|
if (!swipeEnabled) return false;
|
|
2194
2219
|
const isHorizontal = Math.abs(gestureState.dx) > Math.abs(gestureState.dy);
|
|
@@ -2272,7 +2297,7 @@ function PageDrawer({
|
|
|
2272
2297
|
]
|
|
2273
2298
|
}
|
|
2274
2299
|
);
|
|
2275
|
-
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2300
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react_native13.Modal, { visible: true, transparent: true, animationType: "fade", onRequestClose: handleClose, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
2276
2301
|
AppView,
|
|
2277
2302
|
{
|
|
2278
2303
|
testID,
|
|
@@ -2295,7 +2320,7 @@ function PageDrawer({
|
|
|
2295
2320
|
}
|
|
2296
2321
|
) });
|
|
2297
2322
|
}
|
|
2298
|
-
var styles4 =
|
|
2323
|
+
var styles4 = import_react_native13.StyleSheet.create({
|
|
2299
2324
|
drawer: {
|
|
2300
2325
|
height: "100%"
|
|
2301
2326
|
},
|
|
@@ -2323,7 +2348,7 @@ function GradientView({
|
|
|
2323
2348
|
|
|
2324
2349
|
// src/ui/form/AppInput.tsx
|
|
2325
2350
|
var import_react17 = require("react");
|
|
2326
|
-
var
|
|
2351
|
+
var import_react_native14 = require("react-native");
|
|
2327
2352
|
var import_jsx_runtime21 = require("nativewind/jsx-runtime");
|
|
2328
2353
|
var AppInput = (0, import_react17.forwardRef)(
|
|
2329
2354
|
({ label, error, disabled = false, leftIcon, rightIcon, className, style, ...props }, ref) => {
|
|
@@ -2352,9 +2377,9 @@ var AppInput = (0, import_react17.forwardRef)(
|
|
|
2352
2377
|
}
|
|
2353
2378
|
],
|
|
2354
2379
|
children: [
|
|
2355
|
-
leftIcon && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2380
|
+
leftIcon && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native14.View, { style: styles5.icon, children: leftIcon }),
|
|
2356
2381
|
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2357
|
-
|
|
2382
|
+
import_react_native14.TextInput,
|
|
2358
2383
|
{
|
|
2359
2384
|
ref,
|
|
2360
2385
|
className: "flex-1 py-3 text-base",
|
|
@@ -2372,7 +2397,7 @@ var AppInput = (0, import_react17.forwardRef)(
|
|
|
2372
2397
|
...props
|
|
2373
2398
|
}
|
|
2374
2399
|
),
|
|
2375
|
-
rightIcon && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
2400
|
+
rightIcon && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_react_native14.View, { style: styles5.icon, children: rightIcon })
|
|
2376
2401
|
]
|
|
2377
2402
|
}
|
|
2378
2403
|
),
|
|
@@ -2381,7 +2406,7 @@ var AppInput = (0, import_react17.forwardRef)(
|
|
|
2381
2406
|
}
|
|
2382
2407
|
);
|
|
2383
2408
|
AppInput.displayName = "AppInput";
|
|
2384
|
-
var styles5 =
|
|
2409
|
+
var styles5 = import_react_native14.StyleSheet.create({
|
|
2385
2410
|
inputContainer: {
|
|
2386
2411
|
borderWidth: 0.5,
|
|
2387
2412
|
minHeight: 48
|
|
@@ -2397,7 +2422,7 @@ var styles5 = import_react_native13.StyleSheet.create({
|
|
|
2397
2422
|
|
|
2398
2423
|
// src/ui/form/Checkbox.tsx
|
|
2399
2424
|
var import_react18 = require("react");
|
|
2400
|
-
var
|
|
2425
|
+
var import_react_native15 = require("react-native");
|
|
2401
2426
|
var import_jsx_runtime22 = require("nativewind/jsx-runtime");
|
|
2402
2427
|
function Checkbox({
|
|
2403
2428
|
checked,
|
|
@@ -2421,7 +2446,7 @@ function Checkbox({
|
|
|
2421
2446
|
};
|
|
2422
2447
|
const disabledOpacity = 0.4;
|
|
2423
2448
|
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
2424
|
-
|
|
2449
|
+
import_react_native15.TouchableOpacity,
|
|
2425
2450
|
{
|
|
2426
2451
|
onPress: toggle,
|
|
2427
2452
|
disabled,
|
|
@@ -2452,7 +2477,7 @@ function Checkbox({
|
|
|
2452
2477
|
}
|
|
2453
2478
|
);
|
|
2454
2479
|
}
|
|
2455
|
-
var styles6 =
|
|
2480
|
+
var styles6 = import_react_native15.StyleSheet.create({
|
|
2456
2481
|
checkbox: {
|
|
2457
2482
|
borderWidth: 0.5
|
|
2458
2483
|
}
|
|
@@ -2497,7 +2522,7 @@ function CheckboxGroup({
|
|
|
2497
2522
|
|
|
2498
2523
|
// src/ui/form/Radio.tsx
|
|
2499
2524
|
var import_react19 = require("react");
|
|
2500
|
-
var
|
|
2525
|
+
var import_react_native16 = require("react-native");
|
|
2501
2526
|
var import_jsx_runtime24 = require("nativewind/jsx-runtime");
|
|
2502
2527
|
function Radio({
|
|
2503
2528
|
checked,
|
|
@@ -2521,7 +2546,7 @@ function Radio({
|
|
|
2521
2546
|
};
|
|
2522
2547
|
const disabledOpacity = 0.4;
|
|
2523
2548
|
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
2524
|
-
|
|
2549
|
+
import_react_native16.TouchableOpacity,
|
|
2525
2550
|
{
|
|
2526
2551
|
onPress: toggle,
|
|
2527
2552
|
disabled,
|
|
@@ -2556,7 +2581,7 @@ function Radio({
|
|
|
2556
2581
|
}
|
|
2557
2582
|
);
|
|
2558
2583
|
}
|
|
2559
|
-
var styles7 =
|
|
2584
|
+
var styles7 = import_react_native16.StyleSheet.create({
|
|
2560
2585
|
radio: {
|
|
2561
2586
|
borderWidth: 0.5
|
|
2562
2587
|
},
|
|
@@ -2590,7 +2615,7 @@ function RadioGroup({
|
|
|
2590
2615
|
|
|
2591
2616
|
// src/ui/form/Switch.tsx
|
|
2592
2617
|
var import_react20 = require("react");
|
|
2593
|
-
var
|
|
2618
|
+
var import_react_native17 = require("react-native");
|
|
2594
2619
|
var import_jsx_runtime26 = require("nativewind/jsx-runtime");
|
|
2595
2620
|
function Switch({
|
|
2596
2621
|
checked,
|
|
@@ -2624,7 +2649,7 @@ function Switch({
|
|
|
2624
2649
|
const config = sizes[size];
|
|
2625
2650
|
const thumbPosition = isChecked ? config.width - config.thumb - config.padding : config.padding;
|
|
2626
2651
|
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2627
|
-
|
|
2652
|
+
import_react_native17.TouchableOpacity,
|
|
2628
2653
|
{
|
|
2629
2654
|
onPress: toggle,
|
|
2630
2655
|
disabled,
|
|
@@ -2669,7 +2694,7 @@ function Switch({
|
|
|
2669
2694
|
}
|
|
2670
2695
|
);
|
|
2671
2696
|
}
|
|
2672
|
-
var styles8 =
|
|
2697
|
+
var styles8 = import_react_native17.StyleSheet.create({
|
|
2673
2698
|
track: {
|
|
2674
2699
|
justifyContent: "center",
|
|
2675
2700
|
padding: 2
|
|
@@ -2685,7 +2710,7 @@ var styles8 = import_react_native16.StyleSheet.create({
|
|
|
2685
2710
|
|
|
2686
2711
|
// src/ui/form/Slider.tsx
|
|
2687
2712
|
var import_react22 = require("react");
|
|
2688
|
-
var
|
|
2713
|
+
var import_react_native18 = require("react-native");
|
|
2689
2714
|
|
|
2690
2715
|
// src/ui/form/useFormTheme.ts
|
|
2691
2716
|
var import_react21 = require("react");
|
|
@@ -2753,7 +2778,7 @@ function Slider({
|
|
|
2753
2778
|
[value, min, max, onChange]
|
|
2754
2779
|
);
|
|
2755
2780
|
const panResponder = (0, import_react22.useRef)(
|
|
2756
|
-
|
|
2781
|
+
import_react_native18.PanResponder.create({
|
|
2757
2782
|
onStartShouldSetPanResponder: () => !disabled,
|
|
2758
2783
|
onMoveShouldSetPanResponder: () => !disabled,
|
|
2759
2784
|
onPanResponderGrant: () => {
|
|
@@ -2816,7 +2841,7 @@ function Slider({
|
|
|
2816
2841
|
}
|
|
2817
2842
|
),
|
|
2818
2843
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
2819
|
-
|
|
2844
|
+
import_react_native18.View,
|
|
2820
2845
|
{
|
|
2821
2846
|
onLayout,
|
|
2822
2847
|
className: "rounded-full",
|
|
@@ -2875,7 +2900,7 @@ function Slider({
|
|
|
2875
2900
|
)
|
|
2876
2901
|
] });
|
|
2877
2902
|
}
|
|
2878
|
-
var styles9 =
|
|
2903
|
+
var styles9 = import_react_native18.StyleSheet.create({
|
|
2879
2904
|
track: {
|
|
2880
2905
|
height: 6,
|
|
2881
2906
|
width: "100%"
|
|
@@ -2917,7 +2942,7 @@ var styles9 = import_react_native17.StyleSheet.create({
|
|
|
2917
2942
|
|
|
2918
2943
|
// src/ui/form/Select.tsx
|
|
2919
2944
|
var import_react23 = require("react");
|
|
2920
|
-
var
|
|
2945
|
+
var import_react_native19 = require("react-native");
|
|
2921
2946
|
var import_jsx_runtime28 = require("nativewind/jsx-runtime");
|
|
2922
2947
|
function Select({
|
|
2923
2948
|
value,
|
|
@@ -3023,15 +3048,15 @@ function Select({
|
|
|
3023
3048
|
children: displayText
|
|
3024
3049
|
}
|
|
3025
3050
|
),
|
|
3026
|
-
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
3027
|
-
clearable && selectedValues.length > 0 && !disabled && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3051
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_react_native19.View, { className: "flex-row items-center", children: [
|
|
3052
|
+
clearable && selectedValues.length > 0 && !disabled && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native19.TouchableOpacity, { onPress: handleClear, className: "mr-2 p-1", children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { name: "close", size: "sm", color: colors.icon }) }),
|
|
3028
3053
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { name: "keyboard-arrow-down", size: "md", color: colors.icon })
|
|
3029
3054
|
] })
|
|
3030
3055
|
]
|
|
3031
3056
|
}
|
|
3032
3057
|
),
|
|
3033
3058
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3034
|
-
|
|
3059
|
+
import_react_native19.Modal,
|
|
3035
3060
|
{
|
|
3036
3061
|
visible,
|
|
3037
3062
|
transparent: true,
|
|
@@ -3053,7 +3078,7 @@ function Select({
|
|
|
3053
3078
|
style: [styles10.header, { borderBottomColor: colors.divider }],
|
|
3054
3079
|
children: [
|
|
3055
3080
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(AppText, { className: "text-lg font-semibold", style: { color: colors.text }, children: multiple ? "\u9009\u62E9\u9009\u9879" : "\u8BF7\u9009\u62E9" }),
|
|
3056
|
-
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3081
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native19.TouchableOpacity, { onPress: () => setVisible(false), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { name: "close", size: "md", color: colors.icon }) })
|
|
3057
3082
|
]
|
|
3058
3083
|
}
|
|
3059
3084
|
),
|
|
@@ -3070,9 +3095,9 @@ function Select({
|
|
|
3070
3095
|
className: "px-3 py-2 rounded-lg",
|
|
3071
3096
|
style: { backgroundColor: colors.surfaceMuted },
|
|
3072
3097
|
children: [
|
|
3073
|
-
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3098
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native19.View, { style: { marginRight: 8 }, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { name: "search", size: "sm", color: colors.icon }) }),
|
|
3074
3099
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3075
|
-
|
|
3100
|
+
import_react_native19.TextInput,
|
|
3076
3101
|
{
|
|
3077
3102
|
className: "flex-1 text-base",
|
|
3078
3103
|
style: { color: colors.text },
|
|
@@ -3083,14 +3108,14 @@ function Select({
|
|
|
3083
3108
|
autoFocus: true
|
|
3084
3109
|
}
|
|
3085
3110
|
),
|
|
3086
|
-
searchKeyword.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3111
|
+
searchKeyword.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_react_native19.TouchableOpacity, { onPress: () => setSearchKeyword(""), children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { name: "close", size: "sm", color: colors.icon }) })
|
|
3087
3112
|
]
|
|
3088
3113
|
}
|
|
3089
3114
|
)
|
|
3090
3115
|
}
|
|
3091
3116
|
),
|
|
3092
3117
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3093
|
-
|
|
3118
|
+
import_react_native19.FlatList,
|
|
3094
3119
|
{
|
|
3095
3120
|
data: filteredOptions,
|
|
3096
3121
|
keyExtractor: (item) => item.value,
|
|
@@ -3113,7 +3138,7 @@ function Select({
|
|
|
3113
3138
|
" \u9879"
|
|
3114
3139
|
] }),
|
|
3115
3140
|
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
3116
|
-
|
|
3141
|
+
import_react_native19.TouchableOpacity,
|
|
3117
3142
|
{
|
|
3118
3143
|
className: "px-4 py-2 rounded-lg",
|
|
3119
3144
|
style: { backgroundColor: colors.primary },
|
|
@@ -3131,7 +3156,7 @@ function Select({
|
|
|
3131
3156
|
)
|
|
3132
3157
|
] });
|
|
3133
3158
|
}
|
|
3134
|
-
var styles10 =
|
|
3159
|
+
var styles10 = import_react_native19.StyleSheet.create({
|
|
3135
3160
|
trigger: {
|
|
3136
3161
|
borderWidth: 0.5
|
|
3137
3162
|
},
|
|
@@ -3151,7 +3176,7 @@ var styles10 = import_react_native18.StyleSheet.create({
|
|
|
3151
3176
|
|
|
3152
3177
|
// src/ui/form/DatePicker.tsx
|
|
3153
3178
|
var import_react24 = require("react");
|
|
3154
|
-
var
|
|
3179
|
+
var import_react_native20 = require("react-native");
|
|
3155
3180
|
var import_jsx_runtime29 = require("nativewind/jsx-runtime");
|
|
3156
3181
|
function PickerColumn({
|
|
3157
3182
|
title,
|
|
@@ -3177,7 +3202,7 @@ function PickerColumn({
|
|
|
3177
3202
|
const selected = selectedValue === value;
|
|
3178
3203
|
const disabled = isDisabled(value);
|
|
3179
3204
|
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3180
|
-
|
|
3205
|
+
import_react_native20.TouchableOpacity,
|
|
3181
3206
|
{
|
|
3182
3207
|
className: cn("py-2 items-center", selected && "bg-primary-50"),
|
|
3183
3208
|
style: selected ? { backgroundColor: colors.primarySurface } : void 0,
|
|
@@ -3287,7 +3312,7 @@ function DatePicker({
|
|
|
3287
3312
|
}
|
|
3288
3313
|
),
|
|
3289
3314
|
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3290
|
-
|
|
3315
|
+
import_react_native20.Modal,
|
|
3291
3316
|
{
|
|
3292
3317
|
visible,
|
|
3293
3318
|
transparent: true,
|
|
@@ -3303,9 +3328,9 @@ function DatePicker({
|
|
|
3303
3328
|
className: "px-4 py-3",
|
|
3304
3329
|
style: [styles11.header, { borderBottomColor: colors.divider }],
|
|
3305
3330
|
children: [
|
|
3306
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3331
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native20.TouchableOpacity, { onPress: () => setVisible(false), children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(AppText, { style: { color: colors.textMuted }, children: "\u53D6\u6D88" }) }),
|
|
3307
3332
|
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(AppText, { className: "text-lg font-semibold", style: { color: colors.text }, children: "\u9009\u62E9\u65E5\u671F" }),
|
|
3308
|
-
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3333
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_react_native20.TouchableOpacity, { onPress: handleConfirm, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(AppText, { style: { color: colors.primary }, className: "font-medium", children: "\u786E\u5B9A" }) })
|
|
3309
3334
|
]
|
|
3310
3335
|
}
|
|
3311
3336
|
),
|
|
@@ -3356,7 +3381,7 @@ function DatePicker({
|
|
|
3356
3381
|
style: [styles11.footer, { borderTopColor: colors.divider }],
|
|
3357
3382
|
children: [
|
|
3358
3383
|
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3359
|
-
|
|
3384
|
+
import_react_native20.TouchableOpacity,
|
|
3360
3385
|
{
|
|
3361
3386
|
className: "flex-1 py-2 items-center rounded-lg",
|
|
3362
3387
|
style: { backgroundColor: colors.surfaceMuted },
|
|
@@ -3365,7 +3390,7 @@ function DatePicker({
|
|
|
3365
3390
|
}
|
|
3366
3391
|
),
|
|
3367
3392
|
minDate && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3368
|
-
|
|
3393
|
+
import_react_native20.TouchableOpacity,
|
|
3369
3394
|
{
|
|
3370
3395
|
className: "flex-1 py-2 items-center rounded-lg",
|
|
3371
3396
|
style: { backgroundColor: colors.surfaceMuted },
|
|
@@ -3374,7 +3399,7 @@ function DatePicker({
|
|
|
3374
3399
|
}
|
|
3375
3400
|
),
|
|
3376
3401
|
maxDate && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
3377
|
-
|
|
3402
|
+
import_react_native20.TouchableOpacity,
|
|
3378
3403
|
{
|
|
3379
3404
|
className: "flex-1 py-2 items-center rounded-lg",
|
|
3380
3405
|
style: { backgroundColor: colors.surfaceMuted },
|
|
@@ -3390,7 +3415,7 @@ function DatePicker({
|
|
|
3390
3415
|
)
|
|
3391
3416
|
] });
|
|
3392
3417
|
}
|
|
3393
|
-
var styles11 =
|
|
3418
|
+
var styles11 = import_react_native20.StyleSheet.create({
|
|
3394
3419
|
trigger: {
|
|
3395
3420
|
borderWidth: 0.5
|
|
3396
3421
|
},
|
|
@@ -3625,7 +3650,7 @@ function useThrottle(value, delay = 200) {
|
|
|
3625
3650
|
|
|
3626
3651
|
// src/ui/hooks/useKeyboard.ts
|
|
3627
3652
|
var import_react30 = require("react");
|
|
3628
|
-
var
|
|
3653
|
+
var import_react_native21 = require("react-native");
|
|
3629
3654
|
function useKeyboard() {
|
|
3630
3655
|
const [visible, setVisible] = (0, import_react30.useState)(false);
|
|
3631
3656
|
const [height, setHeight] = (0, import_react30.useState)(0);
|
|
@@ -3646,13 +3671,13 @@ function useKeyboard() {
|
|
|
3646
3671
|
setVisible(false);
|
|
3647
3672
|
setHeight(0);
|
|
3648
3673
|
};
|
|
3649
|
-
const willShowSub =
|
|
3650
|
-
|
|
3651
|
-
|
|
3674
|
+
const willShowSub = import_react_native21.Keyboard.addListener(
|
|
3675
|
+
import_react_native21.Platform.OS === "ios" ? "keyboardWillShow" : "keyboardDidShow",
|
|
3676
|
+
import_react_native21.Platform.OS === "ios" ? handleKeyboardWillShow : handleKeyboardDidShow
|
|
3652
3677
|
);
|
|
3653
|
-
const willHideSub =
|
|
3654
|
-
|
|
3655
|
-
|
|
3678
|
+
const willHideSub = import_react_native21.Keyboard.addListener(
|
|
3679
|
+
import_react_native21.Platform.OS === "ios" ? "keyboardWillHide" : "keyboardDidHide",
|
|
3680
|
+
import_react_native21.Platform.OS === "ios" ? handleKeyboardWillHide : handleKeyboardDidHide
|
|
3656
3681
|
);
|
|
3657
3682
|
return () => {
|
|
3658
3683
|
willShowSub.remove();
|
|
@@ -3660,17 +3685,17 @@ function useKeyboard() {
|
|
|
3660
3685
|
};
|
|
3661
3686
|
}, []);
|
|
3662
3687
|
const dismiss = (0, import_react30.useCallback)(() => {
|
|
3663
|
-
|
|
3688
|
+
import_react_native21.Keyboard.dismiss();
|
|
3664
3689
|
}, []);
|
|
3665
3690
|
return { visible, height, dismiss };
|
|
3666
3691
|
}
|
|
3667
3692
|
|
|
3668
3693
|
// src/ui/hooks/useDimensions.ts
|
|
3669
3694
|
var import_react31 = require("react");
|
|
3670
|
-
var
|
|
3695
|
+
var import_react_native22 = require("react-native");
|
|
3671
3696
|
function useDimensions() {
|
|
3672
3697
|
const [dimensions, setDimensions] = (0, import_react31.useState)(() => {
|
|
3673
|
-
const window =
|
|
3698
|
+
const window = import_react_native22.Dimensions.get("window");
|
|
3674
3699
|
return {
|
|
3675
3700
|
width: window.width,
|
|
3676
3701
|
height: window.height,
|
|
@@ -3687,7 +3712,7 @@ function useDimensions() {
|
|
|
3687
3712
|
fontScale: window.fontScale
|
|
3688
3713
|
});
|
|
3689
3714
|
};
|
|
3690
|
-
const subscription =
|
|
3715
|
+
const subscription = import_react_native22.Dimensions.addEventListener("change", handleChange);
|
|
3691
3716
|
return () => {
|
|
3692
3717
|
subscription.remove();
|
|
3693
3718
|
};
|
|
@@ -3697,10 +3722,10 @@ function useDimensions() {
|
|
|
3697
3722
|
|
|
3698
3723
|
// src/ui/hooks/useOrientation.ts
|
|
3699
3724
|
var import_react32 = require("react");
|
|
3700
|
-
var
|
|
3725
|
+
var import_react_native23 = require("react-native");
|
|
3701
3726
|
function useOrientation() {
|
|
3702
3727
|
const getOrientation = () => {
|
|
3703
|
-
const { width, height } =
|
|
3728
|
+
const { width, height } = import_react_native23.Dimensions.get("window");
|
|
3704
3729
|
return width > height ? "landscape" : "portrait";
|
|
3705
3730
|
};
|
|
3706
3731
|
const [orientation, setOrientation] = (0, import_react32.useState)(getOrientation);
|
|
@@ -3709,7 +3734,7 @@ function useOrientation() {
|
|
|
3709
3734
|
const newOrientation = window.width > window.height ? "landscape" : "portrait";
|
|
3710
3735
|
setOrientation(newOrientation);
|
|
3711
3736
|
};
|
|
3712
|
-
const subscription =
|
|
3737
|
+
const subscription = import_react_native23.Dimensions.addEventListener("change", handleChange);
|
|
3713
3738
|
return () => {
|
|
3714
3739
|
subscription.remove();
|
|
3715
3740
|
};
|
|
@@ -3817,7 +3842,7 @@ var import_react34 = __toESM(require("react"));
|
|
|
3817
3842
|
var import_bottom_tabs = require("@react-navigation/bottom-tabs");
|
|
3818
3843
|
|
|
3819
3844
|
// src/navigation/components/BottomTabBar.tsx
|
|
3820
|
-
var
|
|
3845
|
+
var import_react_native24 = require("react-native");
|
|
3821
3846
|
var import_react_native_safe_area_context2 = require("react-native-safe-area-context");
|
|
3822
3847
|
var import_jsx_runtime33 = require("nativewind/jsx-runtime");
|
|
3823
3848
|
var DEFAULT_TAB_BAR_HEIGHT = 65;
|
|
@@ -3842,7 +3867,7 @@ function BottomTabBar({
|
|
|
3842
3867
|
const backgroundColor = style?.backgroundColor || colors.card;
|
|
3843
3868
|
const borderTopColor = colors.divider;
|
|
3844
3869
|
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
3845
|
-
|
|
3870
|
+
import_react_native24.View,
|
|
3846
3871
|
{
|
|
3847
3872
|
style: [
|
|
3848
3873
|
styles12.container,
|
|
@@ -3877,7 +3902,7 @@ function BottomTabBar({
|
|
|
3877
3902
|
}) : null;
|
|
3878
3903
|
const badge = options.tabBarBadge;
|
|
3879
3904
|
return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
3880
|
-
|
|
3905
|
+
import_react_native24.TouchableOpacity,
|
|
3881
3906
|
{
|
|
3882
3907
|
accessibilityRole: "button",
|
|
3883
3908
|
accessibilityState: isFocused ? { selected: true } : {},
|
|
@@ -3892,9 +3917,9 @@ function BottomTabBar({
|
|
|
3892
3917
|
}
|
|
3893
3918
|
],
|
|
3894
3919
|
children: [
|
|
3895
|
-
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
3920
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(import_react_native24.View, { style: [styles12.iconContainer, iconStyle], children: [
|
|
3896
3921
|
iconName,
|
|
3897
|
-
badge != null && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
3922
|
+
badge != null && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react_native24.View, { style: [styles12.badge, { backgroundColor: activeColor }], children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(AppText, { style: styles12.badgeText, children: typeof badge === "number" && badge > 99 ? "99+" : badge }) })
|
|
3898
3923
|
] }),
|
|
3899
3924
|
showLabel && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
3900
3925
|
AppText,
|
|
@@ -3916,7 +3941,7 @@ function BottomTabBar({
|
|
|
3916
3941
|
}
|
|
3917
3942
|
);
|
|
3918
3943
|
}
|
|
3919
|
-
var styles12 =
|
|
3944
|
+
var styles12 = import_react_native24.StyleSheet.create({
|
|
3920
3945
|
container: {
|
|
3921
3946
|
flexDirection: "row",
|
|
3922
3947
|
borderTopWidth: 0.5,
|
|
@@ -4116,7 +4141,7 @@ function createDrawerScreens(routes) {
|
|
|
4116
4141
|
}
|
|
4117
4142
|
|
|
4118
4143
|
// src/navigation/components/AppHeader.tsx
|
|
4119
|
-
var
|
|
4144
|
+
var import_react_native25 = require("react-native");
|
|
4120
4145
|
var import_react_native_safe_area_context3 = require("react-native-safe-area-context");
|
|
4121
4146
|
var import_jsx_runtime36 = require("nativewind/jsx-runtime");
|
|
4122
4147
|
function AppHeader({
|
|
@@ -4173,7 +4198,7 @@ function AppHeader({
|
|
|
4173
4198
|
}
|
|
4174
4199
|
);
|
|
4175
4200
|
}
|
|
4176
|
-
var styles13 =
|
|
4201
|
+
var styles13 = import_react_native25.StyleSheet.create({
|
|
4177
4202
|
container: {
|
|
4178
4203
|
height: 44
|
|
4179
4204
|
// iOS 标准导航栏高度
|
|
@@ -4224,7 +4249,7 @@ var styles13 = import_react_native24.StyleSheet.create({
|
|
|
4224
4249
|
});
|
|
4225
4250
|
|
|
4226
4251
|
// src/navigation/components/DrawerContent.tsx
|
|
4227
|
-
var
|
|
4252
|
+
var import_react_native26 = require("react-native");
|
|
4228
4253
|
var import_drawer2 = require("@react-navigation/drawer");
|
|
4229
4254
|
var import_jsx_runtime37 = require("nativewind/jsx-runtime");
|
|
4230
4255
|
function DrawerContent({
|
|
@@ -4256,19 +4281,19 @@ function DrawerContent({
|
|
|
4256
4281
|
};
|
|
4257
4282
|
});
|
|
4258
4283
|
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_drawer2.DrawerContentScrollView, { style: [styles14.container, { backgroundColor }], children: [
|
|
4259
|
-
header && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4284
|
+
header && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_native26.View, { style: [styles14.header, { borderBottomColor: dividerColor }], children: header }),
|
|
4260
4285
|
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(AppView, { className: "py-2", children: drawerItems.map((item) => {
|
|
4261
4286
|
const isFocused = state.routes[state.index].name === item.name;
|
|
4262
4287
|
const onPress = () => {
|
|
4263
4288
|
navigation.navigate(item.name);
|
|
4264
4289
|
};
|
|
4265
4290
|
return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
4266
|
-
|
|
4291
|
+
import_react_native26.TouchableOpacity,
|
|
4267
4292
|
{
|
|
4268
4293
|
onPress,
|
|
4269
4294
|
style: [styles14.item, isFocused && { backgroundColor: activeBgColor }],
|
|
4270
4295
|
children: [
|
|
4271
|
-
item.icon && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4296
|
+
item.icon && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_native26.View, { style: styles14.iconContainer, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4272
4297
|
Icon,
|
|
4273
4298
|
{
|
|
4274
4299
|
name: item.icon,
|
|
@@ -4288,16 +4313,16 @@ function DrawerContent({
|
|
|
4288
4313
|
children: item.label
|
|
4289
4314
|
}
|
|
4290
4315
|
),
|
|
4291
|
-
item.badge != null && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4316
|
+
item.badge != null && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_native26.View, { style: [styles14.badge, { backgroundColor: activeColor }], children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(AppText, { style: styles14.badgeText, children: typeof item.badge === "number" && item.badge > 99 ? "99+" : item.badge }) })
|
|
4292
4317
|
]
|
|
4293
4318
|
},
|
|
4294
4319
|
item.name
|
|
4295
4320
|
);
|
|
4296
4321
|
}) }),
|
|
4297
|
-
footer && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
4322
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_native26.View, { style: [styles14.footer, { borderTopColor: dividerColor }], children: footer })
|
|
4298
4323
|
] });
|
|
4299
4324
|
}
|
|
4300
|
-
var styles14 =
|
|
4325
|
+
var styles14 = import_react_native26.StyleSheet.create({
|
|
4301
4326
|
container: {
|
|
4302
4327
|
flex: 1
|
|
4303
4328
|
},
|
|
@@ -4392,7 +4417,7 @@ var import_native5 = require("@react-navigation/native");
|
|
|
4392
4417
|
var import_react_native_safe_area_context4 = require("react-native-safe-area-context");
|
|
4393
4418
|
|
|
4394
4419
|
// src/overlay/AppStatusBar.tsx
|
|
4395
|
-
var
|
|
4420
|
+
var import_react_native27 = require("react-native");
|
|
4396
4421
|
var import_jsx_runtime38 = require("nativewind/jsx-runtime");
|
|
4397
4422
|
function AppStatusBar({
|
|
4398
4423
|
barStyle = "auto",
|
|
@@ -4404,7 +4429,7 @@ function AppStatusBar({
|
|
|
4404
4429
|
const resolvedBarStyle = barStyle === "auto" ? isDark ? "light-content" : "dark-content" : barStyle;
|
|
4405
4430
|
const resolvedBackgroundColor = backgroundColor ?? (translucent ? "transparent" : theme.colors.background?.[500] || "#ffffff");
|
|
4406
4431
|
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
4407
|
-
|
|
4432
|
+
import_react_native27.StatusBar,
|
|
4408
4433
|
{
|
|
4409
4434
|
barStyle: resolvedBarStyle,
|
|
4410
4435
|
backgroundColor: resolvedBackgroundColor,
|
|
@@ -4427,15 +4452,15 @@ function useLoadingContext() {
|
|
|
4427
4452
|
}
|
|
4428
4453
|
|
|
4429
4454
|
// src/overlay/loading/component.tsx
|
|
4430
|
-
var
|
|
4455
|
+
var import_react_native28 = require("react-native");
|
|
4431
4456
|
var import_jsx_runtime39 = require("nativewind/jsx-runtime");
|
|
4432
4457
|
function LoadingModal({ visible, text }) {
|
|
4433
|
-
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
4434
|
-
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
4458
|
+
return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_native28.Modal, { transparent: true, visible, animationType: "fade", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_native28.View, { style: styles15.overlay, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_react_native28.View, { style: [styles15.loadingBox, { backgroundColor: "rgba(0,0,0,0.8)" }], children: [
|
|
4459
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_react_native28.ActivityIndicator, { size: "large", color: "#fff" }),
|
|
4435
4460
|
text && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(AppText, { className: "text-white mt-3 text-sm", children: text })
|
|
4436
4461
|
] }) }) });
|
|
4437
4462
|
}
|
|
4438
|
-
var styles15 =
|
|
4463
|
+
var styles15 = import_react_native28.StyleSheet.create({
|
|
4439
4464
|
overlay: {
|
|
4440
4465
|
flex: 1,
|
|
4441
4466
|
backgroundColor: "rgba(0,0,0,0.5)",
|
|
@@ -4468,7 +4493,7 @@ function LoadingProvider({ children }) {
|
|
|
4468
4493
|
|
|
4469
4494
|
// src/overlay/toast/provider.tsx
|
|
4470
4495
|
var import_react41 = require("react");
|
|
4471
|
-
var
|
|
4496
|
+
var import_react_native30 = require("react-native");
|
|
4472
4497
|
|
|
4473
4498
|
// src/overlay/toast/context.ts
|
|
4474
4499
|
var import_react39 = require("react");
|
|
@@ -4481,15 +4506,15 @@ function useToastContext() {
|
|
|
4481
4506
|
|
|
4482
4507
|
// src/overlay/toast/component.tsx
|
|
4483
4508
|
var import_react40 = require("react");
|
|
4484
|
-
var
|
|
4509
|
+
var import_react_native29 = require("react-native");
|
|
4485
4510
|
var import_jsx_runtime41 = require("nativewind/jsx-runtime");
|
|
4486
4511
|
function ToastItemView({ message, type, onHide }) {
|
|
4487
|
-
const fadeAnim = (0, import_react40.useRef)(new
|
|
4512
|
+
const fadeAnim = (0, import_react40.useRef)(new import_react_native29.Animated.Value(0)).current;
|
|
4488
4513
|
(0, import_react40.useEffect)(() => {
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
4514
|
+
import_react_native29.Animated.sequence([
|
|
4515
|
+
import_react_native29.Animated.timing(fadeAnim, { toValue: 1, duration: 200, useNativeDriver: true }),
|
|
4516
|
+
import_react_native29.Animated.delay(2500),
|
|
4517
|
+
import_react_native29.Animated.timing(fadeAnim, { toValue: 0, duration: 200, useNativeDriver: true })
|
|
4493
4518
|
]).start(onHide);
|
|
4494
4519
|
}, []);
|
|
4495
4520
|
const bgColors = {
|
|
@@ -4499,7 +4524,7 @@ function ToastItemView({ message, type, onHide }) {
|
|
|
4499
4524
|
info: "bg-primary-500"
|
|
4500
4525
|
};
|
|
4501
4526
|
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
4502
|
-
|
|
4527
|
+
import_react_native29.Animated.View,
|
|
4503
4528
|
{
|
|
4504
4529
|
style: {
|
|
4505
4530
|
opacity: fadeAnim,
|
|
@@ -4558,10 +4583,10 @@ function ToastProvider({ children }) {
|
|
|
4558
4583
|
);
|
|
4559
4584
|
return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(ToastContext.Provider, { value: { show, success, error, info, warning }, children: [
|
|
4560
4585
|
children,
|
|
4561
|
-
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4586
|
+
/* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_react_native30.View, { style: styles16.toastContainer, pointerEvents: "none", children: toasts.map((toast) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ToastItemView, { ...toast, onHide: () => remove(toast.id) }, toast.id)) })
|
|
4562
4587
|
] });
|
|
4563
4588
|
}
|
|
4564
|
-
var styles16 =
|
|
4589
|
+
var styles16 = import_react_native30.StyleSheet.create({
|
|
4565
4590
|
toastContainer: {
|
|
4566
4591
|
position: "absolute",
|
|
4567
4592
|
top: 60,
|
|
@@ -4584,7 +4609,7 @@ function useAlertContext() {
|
|
|
4584
4609
|
}
|
|
4585
4610
|
|
|
4586
4611
|
// src/overlay/alert/component.tsx
|
|
4587
|
-
var
|
|
4612
|
+
var import_react_native31 = require("react-native");
|
|
4588
4613
|
var import_jsx_runtime43 = require("nativewind/jsx-runtime");
|
|
4589
4614
|
function AlertModal({
|
|
4590
4615
|
visible,
|
|
@@ -4597,7 +4622,7 @@ function AlertModal({
|
|
|
4597
4622
|
onCancel
|
|
4598
4623
|
}) {
|
|
4599
4624
|
if (!visible) return null;
|
|
4600
|
-
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4625
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_native31.Modal, { transparent: true, visible: true, animationType: "fade", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_react_native31.View, { style: styles17.overlay, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_react_native31.View, { style: styles17.alertBox, children: [
|
|
4601
4626
|
title && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(AppText, { className: "text-lg font-semibold text-center mb-2", children: title }),
|
|
4602
4627
|
message && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(AppText, { className: "text-gray-600 text-center mb-4", children: message }),
|
|
4603
4628
|
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(AppView, { row: true, gap: 3, className: "mt-2", children: [
|
|
@@ -4606,7 +4631,7 @@ function AlertModal({
|
|
|
4606
4631
|
] })
|
|
4607
4632
|
] }) }) });
|
|
4608
4633
|
}
|
|
4609
|
-
var styles17 =
|
|
4634
|
+
var styles17 = import_react_native31.StyleSheet.create({
|
|
4610
4635
|
overlay: {
|
|
4611
4636
|
flex: 1,
|
|
4612
4637
|
backgroundColor: "rgba(0,0,0,0.5)",
|