@blinkdotnew/mobile-ui 0.1.0 → 0.1.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/index.js +76 -142
- package/dist/index.mjs +57 -143
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3,18 +3,37 @@
|
|
|
3
3
|
var React29 = require('react');
|
|
4
4
|
var reactNative = require('react-native');
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
var LucideIcons = require('lucide-react-native');
|
|
6
7
|
var reactNativeSafeAreaContext = require('react-native-safe-area-context');
|
|
8
|
+
var native = require('@react-navigation/native');
|
|
9
|
+
var expoBlur = require('expo-blur');
|
|
10
|
+
var _ActionSheetPkg = require('react-native-actions-sheet');
|
|
7
11
|
|
|
8
12
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
13
|
|
|
14
|
+
function _interopNamespace(e) {
|
|
15
|
+
if (e && e.__esModule) return e;
|
|
16
|
+
var n = Object.create(null);
|
|
17
|
+
if (e) {
|
|
18
|
+
Object.keys(e).forEach(function (k) {
|
|
19
|
+
if (k !== 'default') {
|
|
20
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
21
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return e[k]; }
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
n.default = e;
|
|
29
|
+
return Object.freeze(n);
|
|
30
|
+
}
|
|
31
|
+
|
|
10
32
|
var React29__default = /*#__PURE__*/_interopDefault(React29);
|
|
33
|
+
var LucideIcons__namespace = /*#__PURE__*/_interopNamespace(LucideIcons);
|
|
34
|
+
var _ActionSheetPkg__default = /*#__PURE__*/_interopDefault(_ActionSheetPkg);
|
|
11
35
|
|
|
12
|
-
|
|
13
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
14
|
-
}) : x)(function(x) {
|
|
15
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
16
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
17
|
-
});
|
|
36
|
+
// src/provider/BlinkMobileUIProvider.tsx
|
|
18
37
|
|
|
19
38
|
// src/theme/palettes.ts
|
|
20
39
|
var baseSpacing = { xs: 4, sm: 8, md: 16, lg: 24, xl: 32, xxl: 48, xxxl: 64 };
|
|
@@ -874,13 +893,7 @@ var styles6 = reactNative.StyleSheet.create({
|
|
|
874
893
|
function Icon({ name, size = 20, color, strokeWidth = 2 }) {
|
|
875
894
|
const colors = useThemeColors();
|
|
876
895
|
const resolvedColor = color ?? colors.text;
|
|
877
|
-
|
|
878
|
-
try {
|
|
879
|
-
const icons = __require("lucide-react-native");
|
|
880
|
-
LucideIcon = icons[name] ?? null;
|
|
881
|
-
} catch {
|
|
882
|
-
return null;
|
|
883
|
-
}
|
|
896
|
+
const LucideIcon = LucideIcons__namespace[name];
|
|
884
897
|
if (!LucideIcon) return null;
|
|
885
898
|
return /* @__PURE__ */ jsxRuntime.jsx(LucideIcon, { size, color: resolvedColor, strokeWidth });
|
|
886
899
|
}
|
|
@@ -1109,12 +1122,7 @@ function BlinkPressable({
|
|
|
1109
1122
|
}
|
|
1110
1123
|
) });
|
|
1111
1124
|
}
|
|
1112
|
-
var SafeAreaView;
|
|
1113
|
-
try {
|
|
1114
|
-
SafeAreaView = __require("react-native-safe-area-context").SafeAreaView;
|
|
1115
|
-
} catch {
|
|
1116
|
-
SafeAreaView = __require("react-native").SafeAreaView;
|
|
1117
|
-
}
|
|
1125
|
+
var SafeAreaView = reactNativeSafeAreaContext.SafeAreaView ?? reactNative.SafeAreaView;
|
|
1118
1126
|
function SafeWrapper({ children, avoidKeyboard = false, style }) {
|
|
1119
1127
|
const colors = useThemeColors();
|
|
1120
1128
|
const safeStyle = {
|
|
@@ -1138,11 +1146,7 @@ function SafeWrapper({ children, avoidKeyboard = false, style }) {
|
|
|
1138
1146
|
var styles11 = reactNative.StyleSheet.create({
|
|
1139
1147
|
flex: { flex: 1 }
|
|
1140
1148
|
});
|
|
1141
|
-
var useIsFocused = null;
|
|
1142
|
-
try {
|
|
1143
|
-
useIsFocused = __require("@react-navigation/native").useIsFocused;
|
|
1144
|
-
} catch {
|
|
1145
|
-
}
|
|
1149
|
+
var useIsFocused = native.useIsFocused ?? null;
|
|
1146
1150
|
var propsAreEqual = (prev, next) => {
|
|
1147
1151
|
if (__DEV__) return false;
|
|
1148
1152
|
return prev.animation === next.animation && prev.duration === next.duration && prev.delay === next.delay && prev.easing === next.easing && prev.shouldResetAnimation === next.shouldResetAnimation && prev.children === next.children && prev.style === next.style;
|
|
@@ -2663,24 +2667,6 @@ var styles24 = reactNative.StyleSheet.create({
|
|
|
2663
2667
|
flex: 1
|
|
2664
2668
|
}
|
|
2665
2669
|
});
|
|
2666
|
-
var useSharedValue = null;
|
|
2667
|
-
var useAnimatedStyle = null;
|
|
2668
|
-
var withSpring = null;
|
|
2669
|
-
var PanGestureHandler = null;
|
|
2670
|
-
var GestureHandlerRootView = null;
|
|
2671
|
-
try {
|
|
2672
|
-
const rnr = __require("react-native-reanimated");
|
|
2673
|
-
useSharedValue = rnr.useSharedValue;
|
|
2674
|
-
useAnimatedStyle = rnr.useAnimatedStyle;
|
|
2675
|
-
withSpring = rnr.withSpring;
|
|
2676
|
-
} catch {
|
|
2677
|
-
}
|
|
2678
|
-
try {
|
|
2679
|
-
const gh = __require("react-native-gesture-handler");
|
|
2680
|
-
PanGestureHandler = gh.PanGestureHandler;
|
|
2681
|
-
GestureHandlerRootView = gh.GestureHandlerRootView;
|
|
2682
|
-
} catch {
|
|
2683
|
-
}
|
|
2684
2670
|
var { width: SCREEN_WIDTH3 } = reactNative.Dimensions.get("window");
|
|
2685
2671
|
function SwipeDeckPanResponder({
|
|
2686
2672
|
data,
|
|
@@ -2884,7 +2870,7 @@ function SwipeCard({
|
|
|
2884
2870
|
style
|
|
2885
2871
|
}) {
|
|
2886
2872
|
const colors = useThemeColors();
|
|
2887
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles27.card, { backgroundColor: colors.card }, style], children: [
|
|
2873
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles27.card, { backgroundColor: colors.card, borderColor: colors.border }, style], children: [
|
|
2888
2874
|
children,
|
|
2889
2875
|
/* @__PURE__ */ jsxRuntime.jsx(SwipeOverlay, { direction: swipeDirection, intensity: swipeIntensity })
|
|
2890
2876
|
] });
|
|
@@ -2894,20 +2880,50 @@ var styles27 = reactNative.StyleSheet.create({
|
|
|
2894
2880
|
flex: 1,
|
|
2895
2881
|
borderRadius: 16,
|
|
2896
2882
|
overflow: "hidden",
|
|
2883
|
+
borderWidth: reactNative.StyleSheet.hairlineWidth,
|
|
2897
2884
|
elevation: 4,
|
|
2898
2885
|
shadowColor: "#000",
|
|
2899
|
-
shadowOffset: { width: 0, height:
|
|
2900
|
-
shadowOpacity: 0.
|
|
2886
|
+
shadowOffset: { width: 0, height: 4 },
|
|
2887
|
+
shadowOpacity: 0.15,
|
|
2901
2888
|
shadowRadius: 8
|
|
2902
2889
|
}
|
|
2903
2890
|
});
|
|
2891
|
+
function ActionButton({
|
|
2892
|
+
onPress,
|
|
2893
|
+
label,
|
|
2894
|
+
size,
|
|
2895
|
+
bg,
|
|
2896
|
+
textColor
|
|
2897
|
+
}) {
|
|
2898
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2899
|
+
reactNative.Pressable,
|
|
2900
|
+
{
|
|
2901
|
+
onPress,
|
|
2902
|
+
style: [
|
|
2903
|
+
styles28.btn,
|
|
2904
|
+
{
|
|
2905
|
+
width: size,
|
|
2906
|
+
height: size,
|
|
2907
|
+
borderRadius: size / 2,
|
|
2908
|
+
backgroundColor: bg,
|
|
2909
|
+
elevation: 3,
|
|
2910
|
+
shadowColor: "#000",
|
|
2911
|
+
shadowOffset: { width: 0, height: 2 },
|
|
2912
|
+
shadowOpacity: 0.15,
|
|
2913
|
+
shadowRadius: 4
|
|
2914
|
+
}
|
|
2915
|
+
],
|
|
2916
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: [styles28.btnText, { color: textColor, fontSize: size * 0.38 }], children: label })
|
|
2917
|
+
}
|
|
2918
|
+
);
|
|
2919
|
+
}
|
|
2904
2920
|
function SwipeActions({ onNope, onLike, onSuperLike, onRewind, style }) {
|
|
2905
2921
|
const colors = useThemeColors();
|
|
2906
2922
|
return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles28.row, style], children: [
|
|
2907
|
-
onRewind && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2908
|
-
onNope && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2909
|
-
onSuperLike && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2910
|
-
onLike && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2923
|
+
onRewind && /* @__PURE__ */ jsxRuntime.jsx(ActionButton, { onPress: onRewind, label: "\u21A9", size: 44, bg: colors.surface, textColor: colors.warning }),
|
|
2924
|
+
onNope && /* @__PURE__ */ jsxRuntime.jsx(ActionButton, { onPress: onNope, label: "\u2715", size: 60, bg: colors.surface, textColor: colors.error }),
|
|
2925
|
+
onSuperLike && /* @__PURE__ */ jsxRuntime.jsx(ActionButton, { onPress: onSuperLike, label: "\u2605", size: 52, bg: colors.surface, textColor: "#4FC3F7" }),
|
|
2926
|
+
onLike && /* @__PURE__ */ jsxRuntime.jsx(ActionButton, { onPress: onLike, label: "\u2665", size: 60, bg: colors.surface, textColor: colors.success })
|
|
2911
2927
|
] });
|
|
2912
2928
|
}
|
|
2913
2929
|
var styles28 = reactNative.StyleSheet.create({
|
|
@@ -2915,22 +2931,14 @@ var styles28 = reactNative.StyleSheet.create({
|
|
|
2915
2931
|
flexDirection: "row",
|
|
2916
2932
|
alignItems: "center",
|
|
2917
2933
|
justifyContent: "center",
|
|
2918
|
-
gap: 16
|
|
2919
|
-
paddingVertical: 16
|
|
2934
|
+
gap: 16
|
|
2920
2935
|
},
|
|
2921
2936
|
btn: {
|
|
2922
|
-
borderWidth: 2,
|
|
2923
|
-
borderRadius: 100,
|
|
2924
2937
|
alignItems: "center",
|
|
2925
|
-
justifyContent: "center"
|
|
2926
|
-
backgroundColor: "transparent"
|
|
2938
|
+
justifyContent: "center"
|
|
2927
2939
|
},
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
large: { width: 64, height: 64 },
|
|
2931
|
-
icon: {
|
|
2932
|
-
fontSize: 24,
|
|
2933
|
-
fontWeight: "600"
|
|
2940
|
+
btnText: {
|
|
2941
|
+
fontWeight: "700"
|
|
2934
2942
|
}
|
|
2935
2943
|
});
|
|
2936
2944
|
var { height: WINDOW_HEIGHT } = reactNative.Dimensions.get("window");
|
|
@@ -3086,11 +3094,7 @@ var styles31 = reactNative.StyleSheet.create({
|
|
|
3086
3094
|
textShadowRadius: 2
|
|
3087
3095
|
}
|
|
3088
3096
|
});
|
|
3089
|
-
var BlurView = null;
|
|
3090
|
-
try {
|
|
3091
|
-
BlurView = __require("expo-blur").BlurView;
|
|
3092
|
-
} catch {
|
|
3093
|
-
}
|
|
3097
|
+
var BlurView = expoBlur.BlurView ?? null;
|
|
3094
3098
|
function GlassView({
|
|
3095
3099
|
children,
|
|
3096
3100
|
intensity = 40,
|
|
@@ -3157,11 +3161,7 @@ var styles33 = reactNative.StyleSheet.create({
|
|
|
3157
3161
|
overflow: "hidden"
|
|
3158
3162
|
}
|
|
3159
3163
|
});
|
|
3160
|
-
var useSafeAreaInsets =
|
|
3161
|
-
try {
|
|
3162
|
-
useSafeAreaInsets = __require("react-native-safe-area-context").useSafeAreaInsets;
|
|
3163
|
-
} catch {
|
|
3164
|
-
}
|
|
3164
|
+
var useSafeAreaInsets = reactNativeSafeAreaContext.useSafeAreaInsets ?? (() => ({ top: 0, bottom: 0, left: 0, right: 0 }));
|
|
3165
3165
|
function GlassHeader({ title, left, right, intensity = 50, style }) {
|
|
3166
3166
|
const colors = useThemeColors();
|
|
3167
3167
|
const insets = useSafeAreaInsets ? useSafeAreaInsets() : { top: reactNative.Platform.OS === "ios" ? 44 : 24 };
|
|
@@ -3211,11 +3211,7 @@ var styles34 = reactNative.StyleSheet.create({
|
|
|
3211
3211
|
fontWeight: "600"
|
|
3212
3212
|
}
|
|
3213
3213
|
});
|
|
3214
|
-
var useSafeAreaInsets2 =
|
|
3215
|
-
try {
|
|
3216
|
-
useSafeAreaInsets2 = __require("react-native-safe-area-context").useSafeAreaInsets;
|
|
3217
|
-
} catch {
|
|
3218
|
-
}
|
|
3214
|
+
var useSafeAreaInsets2 = reactNativeSafeAreaContext.useSafeAreaInsets ?? (() => ({ top: 0, bottom: 0, left: 0, right: 0 }));
|
|
3219
3215
|
var { height: WINDOW_HEIGHT3 } = reactNative.Dimensions.get("window");
|
|
3220
3216
|
function GlassSheet({
|
|
3221
3217
|
children,
|
|
@@ -3316,11 +3312,7 @@ var styles35 = reactNative.StyleSheet.create({
|
|
|
3316
3312
|
fontSize: 18
|
|
3317
3313
|
}
|
|
3318
3314
|
});
|
|
3319
|
-
var useSafeAreaInsets3 =
|
|
3320
|
-
try {
|
|
3321
|
-
useSafeAreaInsets3 = __require("react-native-safe-area-context").useSafeAreaInsets;
|
|
3322
|
-
} catch {
|
|
3323
|
-
}
|
|
3315
|
+
var useSafeAreaInsets3 = reactNativeSafeAreaContext.useSafeAreaInsets ?? (() => ({ top: 0, bottom: 0, left: 0, right: 0 }));
|
|
3324
3316
|
function GlassTabBar({ tabs, activeKey, onChange, intensity = 50, style }) {
|
|
3325
3317
|
const colors = useThemeColors();
|
|
3326
3318
|
const insets = useSafeAreaInsets3 ? useSafeAreaInsets3() : { bottom: reactNative.Platform.OS === "ios" ? 34 : 0 };
|
|
@@ -4260,11 +4252,6 @@ var BlinkSwitch = ({
|
|
|
4260
4252
|
)
|
|
4261
4253
|
] });
|
|
4262
4254
|
};
|
|
4263
|
-
var RNSlider;
|
|
4264
|
-
try {
|
|
4265
|
-
RNSlider = __require("@react-native-community/slider").default;
|
|
4266
|
-
} catch {
|
|
4267
|
-
}
|
|
4268
4255
|
var Slider = ({
|
|
4269
4256
|
value,
|
|
4270
4257
|
onValueChange,
|
|
@@ -4301,28 +4288,6 @@ var Slider = ({
|
|
|
4301
4288
|
}
|
|
4302
4289
|
});
|
|
4303
4290
|
const fillPercent = (value - min) / (max - min) * 100;
|
|
4304
|
-
if (RNSlider) {
|
|
4305
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles41.container, style], children: [
|
|
4306
|
-
showValue && /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles41.valueRow, children: [
|
|
4307
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles41.valueText, children: min }),
|
|
4308
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles41.valueText, children: value.toFixed(2) }),
|
|
4309
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles41.valueText, children: max })
|
|
4310
|
-
] }),
|
|
4311
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4312
|
-
RNSlider,
|
|
4313
|
-
{
|
|
4314
|
-
value,
|
|
4315
|
-
onValueChange,
|
|
4316
|
-
minimumValue: min,
|
|
4317
|
-
maximumValue: max,
|
|
4318
|
-
step,
|
|
4319
|
-
minimumTrackTintColor: colors.primary,
|
|
4320
|
-
maximumTrackTintColor: colors.border,
|
|
4321
|
-
thumbTintColor: colors.primary
|
|
4322
|
-
}
|
|
4323
|
-
)
|
|
4324
|
-
] });
|
|
4325
|
-
}
|
|
4326
4291
|
return /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: [styles41.container, style], children: [
|
|
4327
4292
|
showValue && /* @__PURE__ */ jsxRuntime.jsxs(reactNative.View, { style: styles41.valueRow, children: [
|
|
4328
4293
|
/* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles41.valueText, children: min }),
|
|
@@ -4332,14 +4297,7 @@ var Slider = ({
|
|
|
4332
4297
|
/* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: styles41.fallbackTrack, children: /* @__PURE__ */ jsxRuntime.jsx(reactNative.View, { style: [styles41.fallbackFill, { width: `${fillPercent}%` }] }) })
|
|
4333
4298
|
] });
|
|
4334
4299
|
};
|
|
4335
|
-
|
|
4336
|
-
var SheetManager;
|
|
4337
|
-
try {
|
|
4338
|
-
const pkg = __require("react-native-actions-sheet");
|
|
4339
|
-
ActionSheet = pkg.default;
|
|
4340
|
-
SheetManager = pkg.SheetManager;
|
|
4341
|
-
} catch {
|
|
4342
|
-
}
|
|
4300
|
+
_ActionSheetPkg__default.default?.default ?? _ActionSheetPkg__default.default ?? null;
|
|
4343
4301
|
var Select = ({
|
|
4344
4302
|
options,
|
|
4345
4303
|
value,
|
|
@@ -4451,11 +4409,6 @@ var Select = ({
|
|
|
4451
4409
|
] }) }) })
|
|
4452
4410
|
] });
|
|
4453
4411
|
};
|
|
4454
|
-
var RNDateTimePicker;
|
|
4455
|
-
try {
|
|
4456
|
-
RNDateTimePicker = __require("@react-native-community/datetimepicker").default;
|
|
4457
|
-
} catch {
|
|
4458
|
-
}
|
|
4459
4412
|
var DatePicker = ({
|
|
4460
4413
|
value,
|
|
4461
4414
|
onChange,
|
|
@@ -4555,16 +4508,7 @@ var DatePicker = ({
|
|
|
4555
4508
|
}
|
|
4556
4509
|
)
|
|
4557
4510
|
] }),
|
|
4558
|
-
|
|
4559
|
-
RNDateTimePicker,
|
|
4560
|
-
{
|
|
4561
|
-
style: styles41.nativePicker,
|
|
4562
|
-
value: tempDate,
|
|
4563
|
-
mode,
|
|
4564
|
-
display: "spinner",
|
|
4565
|
-
onChange: (_, d) => d && setTempDate(d)
|
|
4566
|
-
}
|
|
4567
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles41.fallbackText, children: "Install @react-native-community/datetimepicker for native date picker." })
|
|
4511
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { style: styles41.fallbackText, children: "Install @react-native-community/datetimepicker for native date picker." })
|
|
4568
4512
|
] }) }) })
|
|
4569
4513
|
] });
|
|
4570
4514
|
};
|
|
@@ -4655,11 +4599,7 @@ var Counter = ({
|
|
|
4655
4599
|
)
|
|
4656
4600
|
] });
|
|
4657
4601
|
};
|
|
4658
|
-
var BlurView2;
|
|
4659
|
-
try {
|
|
4660
|
-
BlurView2 = __require("expo-blur").BlurView;
|
|
4661
|
-
} catch {
|
|
4662
|
-
}
|
|
4602
|
+
var BlurView2 = expoBlur.BlurView ?? null;
|
|
4663
4603
|
var Header = ({
|
|
4664
4604
|
title,
|
|
4665
4605
|
subtitle,
|
|
@@ -4909,12 +4849,6 @@ var SegmentedControl = ({
|
|
|
4909
4849
|
) }, seg.value))
|
|
4910
4850
|
] });
|
|
4911
4851
|
};
|
|
4912
|
-
var ActionSheet2;
|
|
4913
|
-
try {
|
|
4914
|
-
const pkg = __require("react-native-actions-sheet");
|
|
4915
|
-
ActionSheet2 = pkg.default;
|
|
4916
|
-
} catch {
|
|
4917
|
-
}
|
|
4918
4852
|
var BottomSheetFallback = React29__default.default.forwardRef(
|
|
4919
4853
|
({ children, title, style }, ref) => {
|
|
4920
4854
|
const colors = useThemeColors();
|
package/dist/index.mjs
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import React29, { createContext, memo, useRef, useState, useEffect, useContext, Children, isValidElement, useCallback } from 'react';
|
|
2
2
|
import { Platform, Dimensions, StyleSheet, Animated, Modal, Pressable, View, Text as Text$1, InteractionManager, Easing, useColorScheme, TouchableOpacity, ActivityIndicator, Image, Switch, KeyboardAvoidingView, SafeAreaView as SafeAreaView$1, ScrollView, FlatList, TextInput, RefreshControl, PanResponder } from 'react-native';
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
|
-
import
|
|
4
|
+
import * as LucideIcons from 'lucide-react-native';
|
|
5
|
+
import { useSafeAreaInsets as useSafeAreaInsets$1, SafeAreaView as SafeAreaView$2 } from 'react-native-safe-area-context';
|
|
6
|
+
import { useIsFocused as useIsFocused$1 } from '@react-navigation/native';
|
|
7
|
+
import { BlurView as BlurView$1 } from 'expo-blur';
|
|
8
|
+
import _ActionSheetPkg from 'react-native-actions-sheet';
|
|
5
9
|
|
|
6
|
-
|
|
7
|
-
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
8
|
-
}) : x)(function(x) {
|
|
9
|
-
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
10
|
-
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
11
|
-
});
|
|
10
|
+
// src/provider/BlinkMobileUIProvider.tsx
|
|
12
11
|
|
|
13
12
|
// src/theme/palettes.ts
|
|
14
13
|
var baseSpacing = { xs: 4, sm: 8, md: 16, lg: 24, xl: 32, xxl: 48, xxxl: 64 };
|
|
@@ -868,13 +867,7 @@ var styles6 = StyleSheet.create({
|
|
|
868
867
|
function Icon({ name, size = 20, color, strokeWidth = 2 }) {
|
|
869
868
|
const colors = useThemeColors();
|
|
870
869
|
const resolvedColor = color ?? colors.text;
|
|
871
|
-
|
|
872
|
-
try {
|
|
873
|
-
const icons = __require("lucide-react-native");
|
|
874
|
-
LucideIcon = icons[name] ?? null;
|
|
875
|
-
} catch {
|
|
876
|
-
return null;
|
|
877
|
-
}
|
|
870
|
+
const LucideIcon = LucideIcons[name];
|
|
878
871
|
if (!LucideIcon) return null;
|
|
879
872
|
return /* @__PURE__ */ jsx(LucideIcon, { size, color: resolvedColor, strokeWidth });
|
|
880
873
|
}
|
|
@@ -1103,12 +1096,7 @@ function BlinkPressable({
|
|
|
1103
1096
|
}
|
|
1104
1097
|
) });
|
|
1105
1098
|
}
|
|
1106
|
-
var SafeAreaView;
|
|
1107
|
-
try {
|
|
1108
|
-
SafeAreaView = __require("react-native-safe-area-context").SafeAreaView;
|
|
1109
|
-
} catch {
|
|
1110
|
-
SafeAreaView = __require("react-native").SafeAreaView;
|
|
1111
|
-
}
|
|
1099
|
+
var SafeAreaView = SafeAreaView$2 ?? SafeAreaView$1;
|
|
1112
1100
|
function SafeWrapper({ children, avoidKeyboard = false, style }) {
|
|
1113
1101
|
const colors = useThemeColors();
|
|
1114
1102
|
const safeStyle = {
|
|
@@ -1132,11 +1120,7 @@ function SafeWrapper({ children, avoidKeyboard = false, style }) {
|
|
|
1132
1120
|
var styles11 = StyleSheet.create({
|
|
1133
1121
|
flex: { flex: 1 }
|
|
1134
1122
|
});
|
|
1135
|
-
var useIsFocused = null;
|
|
1136
|
-
try {
|
|
1137
|
-
useIsFocused = __require("@react-navigation/native").useIsFocused;
|
|
1138
|
-
} catch {
|
|
1139
|
-
}
|
|
1123
|
+
var useIsFocused = useIsFocused$1 ?? null;
|
|
1140
1124
|
var propsAreEqual = (prev, next) => {
|
|
1141
1125
|
if (__DEV__) return false;
|
|
1142
1126
|
return prev.animation === next.animation && prev.duration === next.duration && prev.delay === next.delay && prev.easing === next.easing && prev.shouldResetAnimation === next.shouldResetAnimation && prev.children === next.children && prev.style === next.style;
|
|
@@ -2657,24 +2641,6 @@ var styles24 = StyleSheet.create({
|
|
|
2657
2641
|
flex: 1
|
|
2658
2642
|
}
|
|
2659
2643
|
});
|
|
2660
|
-
var useSharedValue = null;
|
|
2661
|
-
var useAnimatedStyle = null;
|
|
2662
|
-
var withSpring = null;
|
|
2663
|
-
var PanGestureHandler = null;
|
|
2664
|
-
var GestureHandlerRootView = null;
|
|
2665
|
-
try {
|
|
2666
|
-
const rnr = __require("react-native-reanimated");
|
|
2667
|
-
useSharedValue = rnr.useSharedValue;
|
|
2668
|
-
useAnimatedStyle = rnr.useAnimatedStyle;
|
|
2669
|
-
withSpring = rnr.withSpring;
|
|
2670
|
-
} catch {
|
|
2671
|
-
}
|
|
2672
|
-
try {
|
|
2673
|
-
const gh = __require("react-native-gesture-handler");
|
|
2674
|
-
PanGestureHandler = gh.PanGestureHandler;
|
|
2675
|
-
GestureHandlerRootView = gh.GestureHandlerRootView;
|
|
2676
|
-
} catch {
|
|
2677
|
-
}
|
|
2678
2644
|
var { width: SCREEN_WIDTH3 } = Dimensions.get("window");
|
|
2679
2645
|
function SwipeDeckPanResponder({
|
|
2680
2646
|
data,
|
|
@@ -2878,7 +2844,7 @@ function SwipeCard({
|
|
|
2878
2844
|
style
|
|
2879
2845
|
}) {
|
|
2880
2846
|
const colors = useThemeColors();
|
|
2881
|
-
return /* @__PURE__ */ jsxs(View, { style: [styles27.card, { backgroundColor: colors.card }, style], children: [
|
|
2847
|
+
return /* @__PURE__ */ jsxs(View, { style: [styles27.card, { backgroundColor: colors.card, borderColor: colors.border }, style], children: [
|
|
2882
2848
|
children,
|
|
2883
2849
|
/* @__PURE__ */ jsx(SwipeOverlay, { direction: swipeDirection, intensity: swipeIntensity })
|
|
2884
2850
|
] });
|
|
@@ -2888,20 +2854,50 @@ var styles27 = StyleSheet.create({
|
|
|
2888
2854
|
flex: 1,
|
|
2889
2855
|
borderRadius: 16,
|
|
2890
2856
|
overflow: "hidden",
|
|
2857
|
+
borderWidth: StyleSheet.hairlineWidth,
|
|
2891
2858
|
elevation: 4,
|
|
2892
2859
|
shadowColor: "#000",
|
|
2893
|
-
shadowOffset: { width: 0, height:
|
|
2894
|
-
shadowOpacity: 0.
|
|
2860
|
+
shadowOffset: { width: 0, height: 4 },
|
|
2861
|
+
shadowOpacity: 0.15,
|
|
2895
2862
|
shadowRadius: 8
|
|
2896
2863
|
}
|
|
2897
2864
|
});
|
|
2865
|
+
function ActionButton({
|
|
2866
|
+
onPress,
|
|
2867
|
+
label,
|
|
2868
|
+
size,
|
|
2869
|
+
bg,
|
|
2870
|
+
textColor
|
|
2871
|
+
}) {
|
|
2872
|
+
return /* @__PURE__ */ jsx(
|
|
2873
|
+
Pressable,
|
|
2874
|
+
{
|
|
2875
|
+
onPress,
|
|
2876
|
+
style: [
|
|
2877
|
+
styles28.btn,
|
|
2878
|
+
{
|
|
2879
|
+
width: size,
|
|
2880
|
+
height: size,
|
|
2881
|
+
borderRadius: size / 2,
|
|
2882
|
+
backgroundColor: bg,
|
|
2883
|
+
elevation: 3,
|
|
2884
|
+
shadowColor: "#000",
|
|
2885
|
+
shadowOffset: { width: 0, height: 2 },
|
|
2886
|
+
shadowOpacity: 0.15,
|
|
2887
|
+
shadowRadius: 4
|
|
2888
|
+
}
|
|
2889
|
+
],
|
|
2890
|
+
children: /* @__PURE__ */ jsx(Text$1, { style: [styles28.btnText, { color: textColor, fontSize: size * 0.38 }], children: label })
|
|
2891
|
+
}
|
|
2892
|
+
);
|
|
2893
|
+
}
|
|
2898
2894
|
function SwipeActions({ onNope, onLike, onSuperLike, onRewind, style }) {
|
|
2899
2895
|
const colors = useThemeColors();
|
|
2900
2896
|
return /* @__PURE__ */ jsxs(View, { style: [styles28.row, style], children: [
|
|
2901
|
-
onRewind && /* @__PURE__ */ jsx(
|
|
2902
|
-
onNope && /* @__PURE__ */ jsx(
|
|
2903
|
-
onSuperLike && /* @__PURE__ */ jsx(
|
|
2904
|
-
onLike && /* @__PURE__ */ jsx(
|
|
2897
|
+
onRewind && /* @__PURE__ */ jsx(ActionButton, { onPress: onRewind, label: "\u21A9", size: 44, bg: colors.surface, textColor: colors.warning }),
|
|
2898
|
+
onNope && /* @__PURE__ */ jsx(ActionButton, { onPress: onNope, label: "\u2715", size: 60, bg: colors.surface, textColor: colors.error }),
|
|
2899
|
+
onSuperLike && /* @__PURE__ */ jsx(ActionButton, { onPress: onSuperLike, label: "\u2605", size: 52, bg: colors.surface, textColor: "#4FC3F7" }),
|
|
2900
|
+
onLike && /* @__PURE__ */ jsx(ActionButton, { onPress: onLike, label: "\u2665", size: 60, bg: colors.surface, textColor: colors.success })
|
|
2905
2901
|
] });
|
|
2906
2902
|
}
|
|
2907
2903
|
var styles28 = StyleSheet.create({
|
|
@@ -2909,22 +2905,14 @@ var styles28 = StyleSheet.create({
|
|
|
2909
2905
|
flexDirection: "row",
|
|
2910
2906
|
alignItems: "center",
|
|
2911
2907
|
justifyContent: "center",
|
|
2912
|
-
gap: 16
|
|
2913
|
-
paddingVertical: 16
|
|
2908
|
+
gap: 16
|
|
2914
2909
|
},
|
|
2915
2910
|
btn: {
|
|
2916
|
-
borderWidth: 2,
|
|
2917
|
-
borderRadius: 100,
|
|
2918
2911
|
alignItems: "center",
|
|
2919
|
-
justifyContent: "center"
|
|
2920
|
-
backgroundColor: "transparent"
|
|
2912
|
+
justifyContent: "center"
|
|
2921
2913
|
},
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
large: { width: 64, height: 64 },
|
|
2925
|
-
icon: {
|
|
2926
|
-
fontSize: 24,
|
|
2927
|
-
fontWeight: "600"
|
|
2914
|
+
btnText: {
|
|
2915
|
+
fontWeight: "700"
|
|
2928
2916
|
}
|
|
2929
2917
|
});
|
|
2930
2918
|
var { height: WINDOW_HEIGHT } = Dimensions.get("window");
|
|
@@ -3080,11 +3068,7 @@ var styles31 = StyleSheet.create({
|
|
|
3080
3068
|
textShadowRadius: 2
|
|
3081
3069
|
}
|
|
3082
3070
|
});
|
|
3083
|
-
var BlurView = null;
|
|
3084
|
-
try {
|
|
3085
|
-
BlurView = __require("expo-blur").BlurView;
|
|
3086
|
-
} catch {
|
|
3087
|
-
}
|
|
3071
|
+
var BlurView = BlurView$1 ?? null;
|
|
3088
3072
|
function GlassView({
|
|
3089
3073
|
children,
|
|
3090
3074
|
intensity = 40,
|
|
@@ -3151,11 +3135,7 @@ var styles33 = StyleSheet.create({
|
|
|
3151
3135
|
overflow: "hidden"
|
|
3152
3136
|
}
|
|
3153
3137
|
});
|
|
3154
|
-
var useSafeAreaInsets =
|
|
3155
|
-
try {
|
|
3156
|
-
useSafeAreaInsets = __require("react-native-safe-area-context").useSafeAreaInsets;
|
|
3157
|
-
} catch {
|
|
3158
|
-
}
|
|
3138
|
+
var useSafeAreaInsets = useSafeAreaInsets$1 ?? (() => ({ top: 0, bottom: 0, left: 0, right: 0 }));
|
|
3159
3139
|
function GlassHeader({ title, left, right, intensity = 50, style }) {
|
|
3160
3140
|
const colors = useThemeColors();
|
|
3161
3141
|
const insets = useSafeAreaInsets ? useSafeAreaInsets() : { top: Platform.OS === "ios" ? 44 : 24 };
|
|
@@ -3205,11 +3185,7 @@ var styles34 = StyleSheet.create({
|
|
|
3205
3185
|
fontWeight: "600"
|
|
3206
3186
|
}
|
|
3207
3187
|
});
|
|
3208
|
-
var useSafeAreaInsets2 =
|
|
3209
|
-
try {
|
|
3210
|
-
useSafeAreaInsets2 = __require("react-native-safe-area-context").useSafeAreaInsets;
|
|
3211
|
-
} catch {
|
|
3212
|
-
}
|
|
3188
|
+
var useSafeAreaInsets2 = useSafeAreaInsets$1 ?? (() => ({ top: 0, bottom: 0, left: 0, right: 0 }));
|
|
3213
3189
|
var { height: WINDOW_HEIGHT3 } = Dimensions.get("window");
|
|
3214
3190
|
function GlassSheet({
|
|
3215
3191
|
children,
|
|
@@ -3310,11 +3286,7 @@ var styles35 = StyleSheet.create({
|
|
|
3310
3286
|
fontSize: 18
|
|
3311
3287
|
}
|
|
3312
3288
|
});
|
|
3313
|
-
var useSafeAreaInsets3 =
|
|
3314
|
-
try {
|
|
3315
|
-
useSafeAreaInsets3 = __require("react-native-safe-area-context").useSafeAreaInsets;
|
|
3316
|
-
} catch {
|
|
3317
|
-
}
|
|
3289
|
+
var useSafeAreaInsets3 = useSafeAreaInsets$1 ?? (() => ({ top: 0, bottom: 0, left: 0, right: 0 }));
|
|
3318
3290
|
function GlassTabBar({ tabs, activeKey, onChange, intensity = 50, style }) {
|
|
3319
3291
|
const colors = useThemeColors();
|
|
3320
3292
|
const insets = useSafeAreaInsets3 ? useSafeAreaInsets3() : { bottom: Platform.OS === "ios" ? 34 : 0 };
|
|
@@ -4254,11 +4226,6 @@ var BlinkSwitch = ({
|
|
|
4254
4226
|
)
|
|
4255
4227
|
] });
|
|
4256
4228
|
};
|
|
4257
|
-
var RNSlider;
|
|
4258
|
-
try {
|
|
4259
|
-
RNSlider = __require("@react-native-community/slider").default;
|
|
4260
|
-
} catch {
|
|
4261
|
-
}
|
|
4262
4229
|
var Slider = ({
|
|
4263
4230
|
value,
|
|
4264
4231
|
onValueChange,
|
|
@@ -4295,28 +4262,6 @@ var Slider = ({
|
|
|
4295
4262
|
}
|
|
4296
4263
|
});
|
|
4297
4264
|
const fillPercent = (value - min) / (max - min) * 100;
|
|
4298
|
-
if (RNSlider) {
|
|
4299
|
-
return /* @__PURE__ */ jsxs(View, { style: [styles41.container, style], children: [
|
|
4300
|
-
showValue && /* @__PURE__ */ jsxs(View, { style: styles41.valueRow, children: [
|
|
4301
|
-
/* @__PURE__ */ jsx(Text$1, { style: styles41.valueText, children: min }),
|
|
4302
|
-
/* @__PURE__ */ jsx(Text$1, { style: styles41.valueText, children: value.toFixed(2) }),
|
|
4303
|
-
/* @__PURE__ */ jsx(Text$1, { style: styles41.valueText, children: max })
|
|
4304
|
-
] }),
|
|
4305
|
-
/* @__PURE__ */ jsx(
|
|
4306
|
-
RNSlider,
|
|
4307
|
-
{
|
|
4308
|
-
value,
|
|
4309
|
-
onValueChange,
|
|
4310
|
-
minimumValue: min,
|
|
4311
|
-
maximumValue: max,
|
|
4312
|
-
step,
|
|
4313
|
-
minimumTrackTintColor: colors.primary,
|
|
4314
|
-
maximumTrackTintColor: colors.border,
|
|
4315
|
-
thumbTintColor: colors.primary
|
|
4316
|
-
}
|
|
4317
|
-
)
|
|
4318
|
-
] });
|
|
4319
|
-
}
|
|
4320
4265
|
return /* @__PURE__ */ jsxs(View, { style: [styles41.container, style], children: [
|
|
4321
4266
|
showValue && /* @__PURE__ */ jsxs(View, { style: styles41.valueRow, children: [
|
|
4322
4267
|
/* @__PURE__ */ jsx(Text$1, { style: styles41.valueText, children: min }),
|
|
@@ -4326,14 +4271,7 @@ var Slider = ({
|
|
|
4326
4271
|
/* @__PURE__ */ jsx(View, { style: styles41.fallbackTrack, children: /* @__PURE__ */ jsx(View, { style: [styles41.fallbackFill, { width: `${fillPercent}%` }] }) })
|
|
4327
4272
|
] });
|
|
4328
4273
|
};
|
|
4329
|
-
|
|
4330
|
-
var SheetManager;
|
|
4331
|
-
try {
|
|
4332
|
-
const pkg = __require("react-native-actions-sheet");
|
|
4333
|
-
ActionSheet = pkg.default;
|
|
4334
|
-
SheetManager = pkg.SheetManager;
|
|
4335
|
-
} catch {
|
|
4336
|
-
}
|
|
4274
|
+
_ActionSheetPkg?.default ?? _ActionSheetPkg ?? null;
|
|
4337
4275
|
var Select = ({
|
|
4338
4276
|
options,
|
|
4339
4277
|
value,
|
|
@@ -4445,11 +4383,6 @@ var Select = ({
|
|
|
4445
4383
|
] }) }) })
|
|
4446
4384
|
] });
|
|
4447
4385
|
};
|
|
4448
|
-
var RNDateTimePicker;
|
|
4449
|
-
try {
|
|
4450
|
-
RNDateTimePicker = __require("@react-native-community/datetimepicker").default;
|
|
4451
|
-
} catch {
|
|
4452
|
-
}
|
|
4453
4386
|
var DatePicker = ({
|
|
4454
4387
|
value,
|
|
4455
4388
|
onChange,
|
|
@@ -4549,16 +4482,7 @@ var DatePicker = ({
|
|
|
4549
4482
|
}
|
|
4550
4483
|
)
|
|
4551
4484
|
] }),
|
|
4552
|
-
|
|
4553
|
-
RNDateTimePicker,
|
|
4554
|
-
{
|
|
4555
|
-
style: styles41.nativePicker,
|
|
4556
|
-
value: tempDate,
|
|
4557
|
-
mode,
|
|
4558
|
-
display: "spinner",
|
|
4559
|
-
onChange: (_, d) => d && setTempDate(d)
|
|
4560
|
-
}
|
|
4561
|
-
) : /* @__PURE__ */ jsx(Text$1, { style: styles41.fallbackText, children: "Install @react-native-community/datetimepicker for native date picker." })
|
|
4485
|
+
/* @__PURE__ */ jsx(Text$1, { style: styles41.fallbackText, children: "Install @react-native-community/datetimepicker for native date picker." })
|
|
4562
4486
|
] }) }) })
|
|
4563
4487
|
] });
|
|
4564
4488
|
};
|
|
@@ -4649,11 +4573,7 @@ var Counter = ({
|
|
|
4649
4573
|
)
|
|
4650
4574
|
] });
|
|
4651
4575
|
};
|
|
4652
|
-
var BlurView2;
|
|
4653
|
-
try {
|
|
4654
|
-
BlurView2 = __require("expo-blur").BlurView;
|
|
4655
|
-
} catch {
|
|
4656
|
-
}
|
|
4576
|
+
var BlurView2 = BlurView$1 ?? null;
|
|
4657
4577
|
var Header = ({
|
|
4658
4578
|
title,
|
|
4659
4579
|
subtitle,
|
|
@@ -4903,12 +4823,6 @@ var SegmentedControl = ({
|
|
|
4903
4823
|
) }, seg.value))
|
|
4904
4824
|
] });
|
|
4905
4825
|
};
|
|
4906
|
-
var ActionSheet2;
|
|
4907
|
-
try {
|
|
4908
|
-
const pkg = __require("react-native-actions-sheet");
|
|
4909
|
-
ActionSheet2 = pkg.default;
|
|
4910
|
-
} catch {
|
|
4911
|
-
}
|
|
4912
4826
|
var BottomSheetFallback = React29.forwardRef(
|
|
4913
4827
|
({ children, title, style }, ref) => {
|
|
4914
4828
|
const colors = useThemeColors();
|