zkit-ui 2.0.7 → 2.0.9
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/services/ActionDialogService/ActionDialog.d.ts.map +1 -1
- package/dist/services/ActionDialogService/ActionDialog.js +8 -5
- package/dist/services/CardToastService/index.d.ts.map +1 -1
- package/dist/services/CardToastService/index.js +14 -8
- package/dist/services/PermissionPurposeDialogService/index.d.ts.map +1 -1
- package/dist/services/PermissionPurposeDialogService/index.js +8 -5
- package/dist/ui/Button/index.d.ts.map +1 -1
- package/dist/ui/Button/index.js +39 -12
- package/dist/ui/SliderCaptcha/index.d.ts.map +1 -1
- package/dist/ui/SliderCaptcha/index.js +26 -16
- package/dist/ui/Switch/index.d.ts.map +1 -1
- package/dist/ui/Switch/index.js +6 -5
- package/dist/utils/shadow.d.ts +11 -0
- package/dist/utils/shadow.d.ts.map +1 -0
- package/dist/utils/shadow.js +40 -0
- package/package.json +1 -1
- package/src/services/ActionDialogService/ActionDialog.tsx +8 -5
- package/src/services/CardToastService/index.tsx +14 -8
- package/src/services/PermissionPurposeDialogService/index.tsx +8 -5
- package/src/ui/Button/index.tsx +50 -17
- package/src/ui/SliderCaptcha/index.tsx +38 -16
- package/src/ui/Switch/index.tsx +9 -7
- package/src/utils/shadow.ts +58 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionDialog.d.ts","sourceRoot":"","sources":["../../../src/services/ActionDialogService/ActionDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ActionDialog.d.ts","sourceRoot":"","sources":["../../../src/services/ActionDialogService/ActionDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAyC/B,OAAO,KAAK,EAIV,iBAAiB,EACjB,eAAe,EAGhB,MAAM,SAAS,CAAC;AAuoBjB,eAAO,MAAM,YAAY,sFAA+B,CAAC"}
|
|
@@ -45,6 +45,7 @@ const useI18n_1 = require("../../i18n/useI18n");
|
|
|
45
45
|
const useTheme_1 = require("../../theme/useTheme");
|
|
46
46
|
const index_1 = require("../../ui/Button/index");
|
|
47
47
|
const Text_1 = require("../../ui/Text");
|
|
48
|
+
const shadow_1 = require("../../utils/shadow");
|
|
48
49
|
const shared_1 = require("./shared");
|
|
49
50
|
const ENTER_BACKDROP_TIMING = {
|
|
50
51
|
duration: 190,
|
|
@@ -487,11 +488,13 @@ const styles = react_native_1.StyleSheet.create({
|
|
|
487
488
|
paddingHorizontal: (0, zkit_tools_1.wp)(16),
|
|
488
489
|
},
|
|
489
490
|
dialog: {
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
491
|
+
...(0, shadow_1.createShadowStyle)({
|
|
492
|
+
color: '#000000',
|
|
493
|
+
elevation: (0, zkit_tools_1.wp)(10),
|
|
494
|
+
offsetY: (0, zkit_tools_1.wp)(14),
|
|
495
|
+
opacity: 0.18,
|
|
496
|
+
radius: (0, zkit_tools_1.wp)(28),
|
|
497
|
+
}),
|
|
495
498
|
},
|
|
496
499
|
surface: {
|
|
497
500
|
overflow: 'hidden',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/CardToastService/index.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/CardToastService/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,7 @@ const react_native_worklets_1 = require("react-native-worklets");
|
|
|
50
50
|
const zkit_tools_1 = require("zkit-tools");
|
|
51
51
|
const useTheme_1 = require("../../theme/useTheme");
|
|
52
52
|
const Text_1 = require("../../ui/Text");
|
|
53
|
+
const shadow_1 = require("../../utils/shadow");
|
|
53
54
|
// ============================================================================
|
|
54
55
|
// Defaults
|
|
55
56
|
// ============================================================================
|
|
@@ -823,20 +824,25 @@ const styles = react_native_1.StyleSheet.create({
|
|
|
823
824
|
width: (0, zkit_tools_1.wp)(320),
|
|
824
825
|
maxWidth: '92%',
|
|
825
826
|
alignSelf: 'center',
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
827
|
+
...(0, shadow_1.createShadowStyle)({
|
|
828
|
+
color: '#000000',
|
|
829
|
+
elevation: (0, zkit_tools_1.wp)(3),
|
|
830
|
+
offsetY: (0, zkit_tools_1.wp)(2),
|
|
831
|
+
opacity: 0.1,
|
|
832
|
+
radius: (0, zkit_tools_1.wp)(8),
|
|
833
|
+
}),
|
|
831
834
|
},
|
|
832
835
|
toastSurface: {
|
|
833
836
|
borderRadius: (0, zkit_tools_1.wp)(10),
|
|
834
837
|
},
|
|
835
838
|
toastIOS: {
|
|
836
839
|
borderRadius: (0, zkit_tools_1.wp)(10),
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
+
...(0, shadow_1.createShadowStyle)({
|
|
841
|
+
color: '#000000',
|
|
842
|
+
offsetY: (0, zkit_tools_1.wp)(10),
|
|
843
|
+
opacity: 0.16,
|
|
844
|
+
radius: (0, zkit_tools_1.wp)(20),
|
|
845
|
+
}),
|
|
840
846
|
},
|
|
841
847
|
toastContent: {
|
|
842
848
|
borderRadius: (0, zkit_tools_1.wp)(10),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/PermissionPurposeDialogService/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/PermissionPurposeDialogService/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,kBAAkB;AAClB,MAAM,MAAM,iBAAiB,GACzB,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,QAAQ,GACR,cAAc,GACd,UAAU,GACV,UAAU,GACV,WAAW,GACX,QAAQ,GACR,QAAQ,CAAC;AAEb,WAAW;AACX,MAAM,MAAM,8BAA8B,GAAG;IAC3C,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oCAAoC;AACpC,MAAM,MAAM,6BAA6B,GAAG;IAC1C,iBAAiB;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,wBAAwB;IACxB,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,KAAK,IAAI,CAAC;CAClE,CAAC;AASF,KAAK,sCAAsC,GAAG;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,sCAAsC,CAAC;CACjD,CAAC;AA2FF;;;GAGG;AACH,cAAM,mCAAmC;IACvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,aAAa,CAA+C;IACpE,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,QAAQ,CAAmF;IAEnG,gBAAgB;IAChB,UAAU,CAAC,OAAO,EAAE,OAAO;IAS3B,gBAAgB;IAChB,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,4BAA4B,CAAC,CAAC,GAAG,IAAI;IAIlG,eAAe;IACf,IAAI,CAAC,OAAO,GAAE,8BAAmC,GAAG,6BAA6B;IAYjF,WAAW;IACX,IAAI;IAIJ,oBAAoB;IACpB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM;IAM7B,wBAAwB;IACxB,cAAc;IAId,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,YAAY;IAiBpB,+BAA+B;IAC/B,OAAO,CAAC,QAAQ;IAKhB,oBAAoB;IACpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,cAAc;CAMvB;AAED,mBAAmB;AACnB,eAAO,MAAM,uBAAuB,qCAA4C,CAAC;AAwFjF;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAmB1F"}
|
|
@@ -57,6 +57,7 @@ const react_native_1 = require("react-native");
|
|
|
57
57
|
const react_native_safe_area_context_1 = require("react-native-safe-area-context");
|
|
58
58
|
const zkit_tools_1 = require("zkit-tools");
|
|
59
59
|
const Text_1 = require("../../ui/Text");
|
|
60
|
+
const shadow_1 = require("../../utils/shadow");
|
|
60
61
|
/** 各权限类型的默认文案 */
|
|
61
62
|
const DEFAULT_PURPOSE_TEXT = {
|
|
62
63
|
location: {
|
|
@@ -335,11 +336,13 @@ const styles = react_native_1.StyleSheet.create({
|
|
|
335
336
|
maxWidth: '94%',
|
|
336
337
|
borderRadius: (0, zkit_tools_1.wp)(12),
|
|
337
338
|
backgroundColor: '#FFFFFF',
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
339
|
+
...(0, shadow_1.createShadowStyle)({
|
|
340
|
+
color: '#000000',
|
|
341
|
+
elevation: 8,
|
|
342
|
+
offsetY: (0, zkit_tools_1.wp)(4),
|
|
343
|
+
opacity: 0.12,
|
|
344
|
+
radius: (0, zkit_tools_1.wp)(12),
|
|
345
|
+
}),
|
|
343
346
|
},
|
|
344
347
|
content: {
|
|
345
348
|
paddingHorizontal: (0, zkit_tools_1.wp)(16),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/Button/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/Button/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/ui/Button/index.js
CHANGED
|
@@ -189,6 +189,10 @@ function colorToRgba(color, alpha) {
|
|
|
189
189
|
const a = Math.max(0, Math.min(1, alpha));
|
|
190
190
|
return `rgba(${r},${g},${b},${a})`;
|
|
191
191
|
}
|
|
192
|
+
function resolveBoxShadowColor(color, opacity) {
|
|
193
|
+
var _a;
|
|
194
|
+
return (_a = colorToRgba(color, opacity)) !== null && _a !== void 0 ? _a : color;
|
|
195
|
+
}
|
|
192
196
|
function resolveColorToken(input, fallback, theme) {
|
|
193
197
|
var _a;
|
|
194
198
|
if (input == null)
|
|
@@ -305,13 +309,22 @@ function resolveShadowStyle(shadow, scheme, variant) {
|
|
|
305
309
|
return undefined;
|
|
306
310
|
if (typeof shadow === 'object') {
|
|
307
311
|
const radius = Math.max(0, (_a = shadow.radius) !== null && _a !== void 0 ? _a : (0, zkit_tools_1.wp)(10));
|
|
312
|
+
const color = (_b = shadow.color) !== null && _b !== void 0 ? _b : '#000000';
|
|
313
|
+
const offsetX = (_c = shadow.offsetX) !== null && _c !== void 0 ? _c : 0;
|
|
314
|
+
const offsetY = (_d = shadow.offsetY) !== null && _d !== void 0 ? _d : (0, zkit_tools_1.wp)(3);
|
|
315
|
+
const opacity = (_e = shadow.opacity) !== null && _e !== void 0 ? _e : (scheme === 'dark' ? 0.28 : 0.14);
|
|
316
|
+
if (react_native_1.Platform.OS === 'web') {
|
|
317
|
+
return {
|
|
318
|
+
boxShadow: `${offsetX}px ${offsetY}px ${radius}px ${resolveBoxShadowColor(color, opacity)}`,
|
|
319
|
+
};
|
|
320
|
+
}
|
|
308
321
|
return {
|
|
309
|
-
shadowColor:
|
|
322
|
+
shadowColor: color,
|
|
310
323
|
shadowOffset: {
|
|
311
|
-
width:
|
|
312
|
-
height:
|
|
324
|
+
width: offsetX,
|
|
325
|
+
height: offsetY,
|
|
313
326
|
},
|
|
314
|
-
shadowOpacity:
|
|
327
|
+
shadowOpacity: opacity,
|
|
315
328
|
shadowRadius: radius,
|
|
316
329
|
elevation: (_f = shadow.elevation) !== null && _f !== void 0 ? _f : Math.max(0, Math.round(radius * 0.55)),
|
|
317
330
|
};
|
|
@@ -320,10 +333,17 @@ function resolveShadowStyle(shadow, scheme, variant) {
|
|
|
320
333
|
if (level <= 0)
|
|
321
334
|
return undefined;
|
|
322
335
|
const radius = (0, zkit_tools_1.wp)(level * 5 + 3);
|
|
336
|
+
const offsetY = (0, zkit_tools_1.wp)(level + 1);
|
|
337
|
+
const opacity = scheme === 'dark' ? 0.26 : 0.14;
|
|
338
|
+
if (react_native_1.Platform.OS === 'web') {
|
|
339
|
+
return {
|
|
340
|
+
boxShadow: `0px ${offsetY}px ${radius}px ${resolveBoxShadowColor('#000000', opacity)}`,
|
|
341
|
+
};
|
|
342
|
+
}
|
|
323
343
|
return {
|
|
324
344
|
shadowColor: '#000000',
|
|
325
|
-
shadowOffset: { width: 0, height:
|
|
326
|
-
shadowOpacity:
|
|
345
|
+
shadowOffset: { width: 0, height: offsetY },
|
|
346
|
+
shadowOpacity: opacity,
|
|
327
347
|
shadowRadius: radius,
|
|
328
348
|
elevation: Math.max(0, Math.round(radius * 0.55)),
|
|
329
349
|
};
|
|
@@ -539,6 +559,8 @@ function resolveWebCursorStyle(disabled) {
|
|
|
539
559
|
return undefined;
|
|
540
560
|
return { cursor: disabled ? 'not-allowed' : 'pointer' };
|
|
541
561
|
}
|
|
562
|
+
const nativeNonePointerEvents = react_native_1.Platform.OS === 'web' ? undefined : 'none';
|
|
563
|
+
const webNonePointerEventsStyle = react_native_1.Platform.OS === 'web' ? { pointerEvents: 'none' } : undefined;
|
|
542
564
|
function resolveRootAccessibilityRole() {
|
|
543
565
|
return react_native_1.Platform.OS === 'web' ? undefined : 'button';
|
|
544
566
|
}
|
|
@@ -741,15 +763,16 @@ function ButtonStaticImpl({ variant = 'solid', tone = 'primary', size = 'md', sh
|
|
|
741
763
|
...accessibilityState,
|
|
742
764
|
busy: Boolean(loading || (accessibilityState === null || accessibilityState === void 0 ? void 0 : accessibilityState.busy)),
|
|
743
765
|
disabled: Boolean(interactionDisabled || (accessibilityState === null || accessibilityState === void 0 ? void 0 : accessibilityState.disabled)),
|
|
744
|
-
}, disabled: interactionDisabled, hitSlop: hitSlop !== null && hitSlop !== void 0 ? hitSlop : defaultHitSlop, onPress: handlePress, style: rootStyle, testID: testID, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents:
|
|
766
|
+
}, disabled: interactionDisabled, hitSlop: hitSlop !== null && hitSlop !== void 0 ? hitSlop : defaultHitSlop, onPress: handlePress, style: rootStyle, testID: testID, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents: nativeNonePointerEvents, style: [
|
|
745
767
|
styles.content,
|
|
768
|
+
webNonePointerEventsStyle,
|
|
746
769
|
contentSizeStyle,
|
|
747
770
|
paddingStyle,
|
|
748
771
|
radiusStyle,
|
|
749
772
|
borderStyle,
|
|
750
773
|
{ backgroundColor: visualColors.backgroundColor },
|
|
751
774
|
contentStyle,
|
|
752
|
-
], children: [LinearGradientComponent && gradientCfg ? ((0, jsx_runtime_1.jsx)(LinearGradientComponent, { pointerEvents:
|
|
775
|
+
], children: [LinearGradientComponent && gradientCfg ? ((0, jsx_runtime_1.jsx)(LinearGradientComponent, { pointerEvents: nativeNonePointerEvents, colors: gradientCfg.colors, start: gradientCfg.start, end: gradientCfg.end, style: [react_native_1.StyleSheet.absoluteFillObject, webNonePointerEventsStyle, radiusStyle] })) : null, iconOnly ? ((icon !== null && icon !== void 0 ? icon : resolvedText)) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [icon && iconPlacement === 'start' ? ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [iconBaseBoxStyle, iconPlacedBoxStyle], children: icon })) : null, resolvedText, icon && iconPlacement === 'end' ? ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [iconBaseBoxStyle, iconPlacedBoxStyle], children: icon })) : null] }))] }) }));
|
|
753
776
|
}
|
|
754
777
|
function ButtonPressAnimatedImpl({ variant = 'solid', tone = 'primary', size = 'md', shape = 'rounded', block = false, disabled = false, loading = false, loadingMode: _loadingMode = 'inline', pressEffect = 'auto', icon, iconPlacement = 'start', iconOnly = false, color, colors, border, layout, gradient, shadow = 'none', children, style, contentStyle, textStyle, accessibilityLabel, accessibilityState, hitSlop, onPress, onPressIn, onPressOut, testID, ...pressableProps }, ref) {
|
|
755
778
|
const frame = useButtonFrame({
|
|
@@ -833,16 +856,18 @@ function ButtonPressAnimatedImpl({ variant = 'solid', tone = 'primary', size = '
|
|
|
833
856
|
...accessibilityState,
|
|
834
857
|
busy: Boolean(loading || (accessibilityState === null || accessibilityState === void 0 ? void 0 : accessibilityState.busy)),
|
|
835
858
|
disabled: Boolean(interactionDisabled || (accessibilityState === null || accessibilityState === void 0 ? void 0 : accessibilityState.disabled)),
|
|
836
|
-
}, disabled: interactionDisabled, hitSlop: hitSlop !== null && hitSlop !== void 0 ? hitSlop : defaultHitSlop, onPress: handlePress, onPressIn: handlePressIn, onPressOut: handlePressOut, style: [styles.root, rootSizeStyle, radiusStyle, shadowStyle, rootAnimatedStyle, webCursorStyle, style], testID: testID, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents:
|
|
859
|
+
}, disabled: interactionDisabled, hitSlop: hitSlop !== null && hitSlop !== void 0 ? hitSlop : defaultHitSlop, onPress: handlePress, onPressIn: handlePressIn, onPressOut: handlePressOut, style: [styles.root, rootSizeStyle, radiusStyle, shadowStyle, rootAnimatedStyle, webCursorStyle, style], testID: testID, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents: nativeNonePointerEvents, style: [
|
|
837
860
|
styles.content,
|
|
861
|
+
webNonePointerEventsStyle,
|
|
838
862
|
contentSizeStyle,
|
|
839
863
|
paddingStyle,
|
|
840
864
|
radiusStyle,
|
|
841
865
|
borderStyle,
|
|
842
866
|
{ backgroundColor: visualColors.backgroundColor },
|
|
843
867
|
contentStyle,
|
|
844
|
-
], children: [LinearGradientComponent && gradientCfg ? ((0, jsx_runtime_1.jsx)(LinearGradientComponent, { pointerEvents:
|
|
868
|
+
], children: [LinearGradientComponent && gradientCfg ? ((0, jsx_runtime_1.jsx)(LinearGradientComponent, { pointerEvents: nativeNonePointerEvents, colors: gradientCfg.colors, start: gradientCfg.start, end: gradientCfg.end, style: [react_native_1.StyleSheet.absoluteFillObject, webNonePointerEventsStyle, radiusStyle] })) : null, pressHighlightEnabled ? ((0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { pointerEvents: nativeNonePointerEvents, style: [
|
|
845
869
|
react_native_1.StyleSheet.absoluteFillObject,
|
|
870
|
+
webNonePointerEventsStyle,
|
|
846
871
|
radiusStyle,
|
|
847
872
|
{ backgroundColor: pressOverlay.color },
|
|
848
873
|
overlayAnimatedStyle,
|
|
@@ -1016,16 +1041,18 @@ function ButtonAnimatedImpl({ variant = 'solid', tone = 'primary', size = 'md',
|
|
|
1016
1041
|
...accessibilityState,
|
|
1017
1042
|
busy: Boolean(loading || (accessibilityState === null || accessibilityState === void 0 ? void 0 : accessibilityState.busy)),
|
|
1018
1043
|
disabled: Boolean(interactionDisabled || (accessibilityState === null || accessibilityState === void 0 ? void 0 : accessibilityState.disabled)),
|
|
1019
|
-
}, disabled: interactionDisabled, hitSlop: hitSlop !== null && hitSlop !== void 0 ? hitSlop : defaultHitSlop, onPress: handlePress, onPressIn: handlePressIn, onPressOut: handlePressOut, style: [styles.root, rootSizeStyle, radiusStyle, shadowStyle, rootAnimatedStyle, webCursorStyle, style], testID: testID, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents:
|
|
1044
|
+
}, disabled: interactionDisabled, hitSlop: hitSlop !== null && hitSlop !== void 0 ? hitSlop : defaultHitSlop, onPress: handlePress, onPressIn: handlePressIn, onPressOut: handlePressOut, style: [styles.root, rootSizeStyle, radiusStyle, shadowStyle, rootAnimatedStyle, webCursorStyle, style], testID: testID, children: (0, jsx_runtime_1.jsxs)(react_native_1.View, { pointerEvents: nativeNonePointerEvents, style: [
|
|
1020
1045
|
styles.content,
|
|
1046
|
+
webNonePointerEventsStyle,
|
|
1021
1047
|
contentSizeStyle,
|
|
1022
1048
|
paddingStyle,
|
|
1023
1049
|
radiusStyle,
|
|
1024
1050
|
borderStyle,
|
|
1025
1051
|
{ backgroundColor: visualColors.backgroundColor },
|
|
1026
1052
|
contentStyle,
|
|
1027
|
-
], children: [LinearGradientComponent && gradientCfg ? ((0, jsx_runtime_1.jsx)(LinearGradientComponent, { pointerEvents:
|
|
1053
|
+
], children: [LinearGradientComponent && gradientCfg ? ((0, jsx_runtime_1.jsx)(LinearGradientComponent, { pointerEvents: nativeNonePointerEvents, colors: gradientCfg.colors, start: gradientCfg.start, end: gradientCfg.end, style: [react_native_1.StyleSheet.absoluteFillObject, webNonePointerEventsStyle, radiusStyle] })) : null, (0, jsx_runtime_1.jsx)(react_native_reanimated_1.default.View, { pointerEvents: nativeNonePointerEvents, style: [
|
|
1028
1054
|
react_native_1.StyleSheet.absoluteFillObject,
|
|
1055
|
+
webNonePointerEventsStyle,
|
|
1029
1056
|
radiusStyle,
|
|
1030
1057
|
{ backgroundColor: pressOverlay.color },
|
|
1031
1058
|
overlayAnimatedStyle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/SliderCaptcha/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAOL,SAAS,EAGT,SAAS,EAEV,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/SliderCaptcha/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,7 @@ const react_native_worklets_1 = require("react-native-worklets");
|
|
|
43
43
|
const zkit_tools_1 = require("zkit-tools");
|
|
44
44
|
const useI18n_1 = require("../../i18n/useI18n");
|
|
45
45
|
const useTheme_1 = require("../../theme/useTheme");
|
|
46
|
+
const shadow_1 = require("../../utils/shadow");
|
|
46
47
|
const Text_1 = require("../Text");
|
|
47
48
|
const DEFAULT_CHALLENGE_WIDTH = 320;
|
|
48
49
|
const DEFAULT_CHALLENGE_HEIGHT = 220;
|
|
@@ -114,10 +115,6 @@ const styles = react_native_1.StyleSheet.create({
|
|
|
114
115
|
paddingHorizontal: CARD_HORIZONTAL_PADDING,
|
|
115
116
|
paddingTop: (0, zkit_tools_1.wp)(18),
|
|
116
117
|
paddingBottom: (0, zkit_tools_1.wp)(20),
|
|
117
|
-
shadowOffset: { width: 0, height: (0, zkit_tools_1.wp)(10) },
|
|
118
|
-
shadowOpacity: 0.1,
|
|
119
|
-
shadowRadius: (0, zkit_tools_1.wp)(20),
|
|
120
|
-
elevation: 10,
|
|
121
118
|
},
|
|
122
119
|
titleRow: {
|
|
123
120
|
flexDirection: 'row',
|
|
@@ -139,10 +136,6 @@ const styles = react_native_1.StyleSheet.create({
|
|
|
139
136
|
borderRadius: (0, zkit_tools_1.wp)(14),
|
|
140
137
|
alignItems: 'center',
|
|
141
138
|
justifyContent: 'center',
|
|
142
|
-
shadowOffset: { width: 0, height: (0, zkit_tools_1.wp)(2) },
|
|
143
|
-
shadowOpacity: 0.08,
|
|
144
|
-
shadowRadius: (0, zkit_tools_1.wp)(4),
|
|
145
|
-
elevation: 3,
|
|
146
139
|
},
|
|
147
140
|
headerActionSpacing: {
|
|
148
141
|
marginLeft: (0, zkit_tools_1.wp)(8),
|
|
@@ -205,10 +198,6 @@ const styles = react_native_1.StyleSheet.create({
|
|
|
205
198
|
borderRadius: SLIDER_THUMB_SIZE / 2,
|
|
206
199
|
alignItems: 'center',
|
|
207
200
|
justifyContent: 'center',
|
|
208
|
-
shadowOffset: { width: 0, height: (0, zkit_tools_1.wp)(2) },
|
|
209
|
-
shadowOpacity: 0.15,
|
|
210
|
-
shadowRadius: (0, zkit_tools_1.wp)(4),
|
|
211
|
-
elevation: 3,
|
|
212
201
|
borderWidth: (0, zkit_tools_1.wp)(0.5),
|
|
213
202
|
},
|
|
214
203
|
});
|
|
@@ -282,6 +271,27 @@ function SliderCaptcha({ visible, onClose, initialChallenge = null, loadChalleng
|
|
|
282
271
|
const canSlide = visible && Boolean(challenge) && !isBusy;
|
|
283
272
|
const backgroundImageUri = normalizeImageUri((_b = challenge === null || challenge === void 0 ? void 0 : challenge.backgroundImage) !== null && _b !== void 0 ? _b : '');
|
|
284
273
|
const blockImageUri = normalizeImageUri((_c = challenge === null || challenge === void 0 ? void 0 : challenge.blockImage) !== null && _c !== void 0 ? _c : '');
|
|
274
|
+
const cardShadowStyle = React.useMemo(() => (0, shadow_1.createShadowStyle)({
|
|
275
|
+
color: theme.colors.onSurface,
|
|
276
|
+
elevation: 10,
|
|
277
|
+
offsetY: (0, zkit_tools_1.wp)(10),
|
|
278
|
+
opacity: 0.1,
|
|
279
|
+
radius: (0, zkit_tools_1.wp)(20),
|
|
280
|
+
}), [theme.colors.onSurface]);
|
|
281
|
+
const headerActionShadowStyle = React.useMemo(() => (0, shadow_1.createShadowStyle)({
|
|
282
|
+
color: theme.colors.onSurface,
|
|
283
|
+
elevation: 3,
|
|
284
|
+
offsetY: (0, zkit_tools_1.wp)(2),
|
|
285
|
+
opacity: 0.08,
|
|
286
|
+
radius: (0, zkit_tools_1.wp)(4),
|
|
287
|
+
}), [theme.colors.onSurface]);
|
|
288
|
+
const sliderThumbShadowStyle = React.useMemo(() => (0, shadow_1.createShadowStyle)({
|
|
289
|
+
color: theme.colors.onSurface,
|
|
290
|
+
elevation: 3,
|
|
291
|
+
offsetY: (0, zkit_tools_1.wp)(2),
|
|
292
|
+
opacity: 0.15,
|
|
293
|
+
radius: (0, zkit_tools_1.wp)(4),
|
|
294
|
+
}), [theme.colors.onSurface]);
|
|
285
295
|
const requestChallenge = React.useCallback(async (reason) => {
|
|
286
296
|
if (!visibleRef.current)
|
|
287
297
|
return;
|
|
@@ -535,8 +545,8 @@ function SliderCaptcha({ visible, onClose, initialChallenge = null, loadChalleng
|
|
|
535
545
|
{
|
|
536
546
|
maxWidth: maxCardWidth,
|
|
537
547
|
backgroundColor: theme.colors.surface,
|
|
538
|
-
shadowColor: theme.colors.onSurface,
|
|
539
548
|
},
|
|
549
|
+
cardShadowStyle,
|
|
540
550
|
cardStyle,
|
|
541
551
|
], onPress: () => { }, collapsable: false, renderToHardwareTextureAndroid: react_native_1.Platform.OS === 'android', shouldRasterizeIOS: react_native_1.Platform.OS === 'ios', needsOffscreenAlphaCompositing: react_native_1.Platform.OS === 'android', children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.titleRow, children: [(0, jsx_runtime_1.jsx)(Text_1.Text, { style: [styles.title, { color: theme.colors.onSurface }], children: resolvedTexts.title }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.headerActions, children: [(0, jsx_runtime_1.jsx)(react_native_1.Pressable, { style: [
|
|
542
552
|
styles.headerActionButton,
|
|
@@ -544,15 +554,15 @@ function SliderCaptcha({ visible, onClose, initialChallenge = null, loadChalleng
|
|
|
544
554
|
backgroundColor: theme.colors.surface,
|
|
545
555
|
borderColor: theme.colors.border,
|
|
546
556
|
borderWidth: (0, zkit_tools_1.wp)(0.5),
|
|
547
|
-
shadowColor: theme.colors.onSurface,
|
|
548
557
|
},
|
|
558
|
+
headerActionShadowStyle,
|
|
549
559
|
], onPress: handleRefresh, disabled: !visible || isBusy, hitSlop: 10, children: isBusy ? ((0, jsx_runtime_1.jsx)(react_native_1.ActivityIndicator, { size: "small", color: theme.colors.muted })) : ((0, jsx_runtime_1.jsx)(vector_icons_1.Feather, { name: "refresh-cw", size: (0, zkit_tools_1.wp)(16), color: theme.colors.muted })) }), (0, jsx_runtime_1.jsx)(react_native_1.Pressable, { style: [
|
|
550
560
|
styles.headerActionButton,
|
|
551
561
|
styles.headerActionSpacing,
|
|
552
562
|
{
|
|
553
563
|
backgroundColor: theme.colors.secondary,
|
|
554
|
-
shadowColor: theme.colors.onSurface,
|
|
555
564
|
},
|
|
565
|
+
headerActionShadowStyle,
|
|
556
566
|
], onPress: handleRequestClose, disabled: !visible, hitSlop: 10, children: (0, jsx_runtime_1.jsx)(vector_icons_1.Feather, { name: "x", size: (0, zkit_tools_1.wp)(18), color: theme.colors.muted }) })] })] }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [
|
|
557
567
|
styles.canvasWrapper,
|
|
558
568
|
{
|
|
@@ -580,7 +590,7 @@ function SliderCaptcha({ visible, onClose, initialChallenge = null, loadChalleng
|
|
|
580
590
|
{
|
|
581
591
|
backgroundColor: theme.colors.primary,
|
|
582
592
|
borderColor: 'rgba(0,0,0,0.04)',
|
|
583
|
-
shadowColor: theme.colors.onSurface,
|
|
584
593
|
},
|
|
594
|
+
sliderThumbShadowStyle,
|
|
585
595
|
], children: isBusy ? ((0, jsx_runtime_1.jsx)(react_native_1.ActivityIndicator, { size: "small", color: theme.colors.onPrimary })) : ((0, jsx_runtime_1.jsx)(vector_icons_1.Feather, { name: "arrow-right", size: (0, zkit_tools_1.wp)(20), color: theme.colors.onPrimary })) }) })] }) }) })] }));
|
|
586
596
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/Switch/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAIV,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,SAAS,EAKT,IAAI,EACL,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/Switch/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/ui/Switch/index.js
CHANGED
|
@@ -40,6 +40,7 @@ const react_native_1 = require("react-native");
|
|
|
40
40
|
const react_native_reanimated_1 = __importStar(require("react-native-reanimated"));
|
|
41
41
|
const zkit_tools_1 = require("zkit-tools");
|
|
42
42
|
const useTheme_1 = require("../../theme/useTheme");
|
|
43
|
+
const shadow_1 = require("../../utils/shadow");
|
|
43
44
|
const LoadingSpinner_1 = require("../LoadingSpinner");
|
|
44
45
|
const Text_1 = require("../Text");
|
|
45
46
|
const SEMANTIC_COLORS = {
|
|
@@ -388,12 +389,12 @@ function SwitchImpl({ checked: checkedProp, defaultChecked = false, onCheckedCha
|
|
|
388
389
|
const trackRadius = Math.max(0, (_a = layout === null || layout === void 0 ? void 0 : layout.radius) !== null && _a !== void 0 ? _a : trackHeight / 2);
|
|
389
390
|
const thumbRadius = thumbSize / 2;
|
|
390
391
|
const defaultHitSlop = React.useMemo(() => resolveHitSlop(trackWidth, trackHeight, metrics.minTouchTarget), [metrics.minTouchTarget, trackHeight, trackWidth]);
|
|
391
|
-
const thumbShadowStyle = React.useMemo(() => ({
|
|
392
|
-
|
|
393
|
-
shadowOffset: { width: 0, height: (0, zkit_tools_1.wp)(1) },
|
|
394
|
-
shadowOpacity: disabled ? 0 : scheme === 'dark' ? 0.28 : 0.14,
|
|
395
|
-
shadowRadius: disabled ? 0 : (0, zkit_tools_1.wp)(4),
|
|
392
|
+
const thumbShadowStyle = React.useMemo(() => (0, shadow_1.createShadowStyle)({
|
|
393
|
+
color: '#000000',
|
|
396
394
|
elevation: disabled ? 0 : (0, zkit_tools_1.wp)(1),
|
|
395
|
+
offsetY: (0, zkit_tools_1.wp)(1),
|
|
396
|
+
opacity: disabled ? 0 : scheme === 'dark' ? 0.28 : 0.14,
|
|
397
|
+
radius: disabled ? 0 : (0, zkit_tools_1.wp)(4),
|
|
397
398
|
}), [disabled, scheme]);
|
|
398
399
|
const webCursorStyle = React.useMemo(() => resolveWebCursorStyle(interactionDisabled), [interactionDisabled]);
|
|
399
400
|
const resolvedDuration = resolveDuration(duration);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ViewStyle } from 'react-native';
|
|
2
|
+
export type ShadowStyleOptions = {
|
|
3
|
+
color?: string;
|
|
4
|
+
elevation?: number;
|
|
5
|
+
offsetX?: number;
|
|
6
|
+
offsetY?: number;
|
|
7
|
+
opacity?: number;
|
|
8
|
+
radius?: number;
|
|
9
|
+
};
|
|
10
|
+
export declare function createShadowStyle({ color, elevation, offsetX, offsetY, opacity, radius, }: ShadowStyleOptions): ViewStyle;
|
|
11
|
+
//# sourceMappingURL=shadow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../src/utils/shadow.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAsBF,wBAAgB,iBAAiB,CAAC,EAChC,KAAiB,EACjB,SAAS,EACT,OAAW,EACX,OAAW,EACX,OAAc,EACd,MAAU,GACX,EAAE,kBAAkB,GAAG,SAAS,CAmBhC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createShadowStyle = createShadowStyle;
|
|
4
|
+
const react_native_1 = require("react-native");
|
|
5
|
+
function normalizeOpacity(opacity) {
|
|
6
|
+
if (!Number.isFinite(opacity))
|
|
7
|
+
return 1;
|
|
8
|
+
return Math.max(0, Math.min(1, opacity));
|
|
9
|
+
}
|
|
10
|
+
function colorToRgba(color, opacity) {
|
|
11
|
+
const processed = (0, react_native_1.processColor)(color);
|
|
12
|
+
if (typeof processed !== 'number')
|
|
13
|
+
return undefined;
|
|
14
|
+
const normalized = processed >>> 0;
|
|
15
|
+
const r = (normalized >> 16) & 255;
|
|
16
|
+
const g = (normalized >> 8) & 255;
|
|
17
|
+
const b = normalized & 255;
|
|
18
|
+
return `rgba(${r},${g},${b},${normalizeOpacity(opacity)})`;
|
|
19
|
+
}
|
|
20
|
+
function resolveWebShadowColor(color, opacity) {
|
|
21
|
+
var _a;
|
|
22
|
+
return (_a = colorToRgba(color, opacity)) !== null && _a !== void 0 ? _a : color;
|
|
23
|
+
}
|
|
24
|
+
function createShadowStyle({ color = '#000000', elevation, offsetX = 0, offsetY = 0, opacity = 0.14, radius = 0, }) {
|
|
25
|
+
if (react_native_1.Platform.OS === 'web') {
|
|
26
|
+
return {
|
|
27
|
+
boxShadow: `${offsetX}px ${offsetY}px ${radius}px ${resolveWebShadowColor(color, opacity)}`,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
const style = {
|
|
31
|
+
shadowColor: color,
|
|
32
|
+
shadowOffset: { width: offsetX, height: offsetY },
|
|
33
|
+
shadowOpacity: opacity,
|
|
34
|
+
shadowRadius: radius,
|
|
35
|
+
};
|
|
36
|
+
if (elevation !== undefined) {
|
|
37
|
+
style.elevation = elevation;
|
|
38
|
+
}
|
|
39
|
+
return style;
|
|
40
|
+
}
|
package/package.json
CHANGED
|
@@ -28,6 +28,7 @@ import { useI18n } from '../../i18n/useI18n';
|
|
|
28
28
|
import { useTheme } from '../../theme/useTheme';
|
|
29
29
|
import { Button } from '../../ui/Button/index';
|
|
30
30
|
import { Text } from '../../ui/Text';
|
|
31
|
+
import { createShadowStyle } from '../../utils/shadow';
|
|
31
32
|
import {
|
|
32
33
|
ACTION_DIALOG_DEFAULT_COLORS,
|
|
33
34
|
ACTION_DIALOG_DEFAULT_Z_INDEX,
|
|
@@ -712,11 +713,13 @@ const styles = StyleSheet.create({
|
|
|
712
713
|
paddingHorizontal: wp(16),
|
|
713
714
|
},
|
|
714
715
|
dialog: {
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
716
|
+
...createShadowStyle({
|
|
717
|
+
color: '#000000',
|
|
718
|
+
elevation: wp(10),
|
|
719
|
+
offsetY: wp(14),
|
|
720
|
+
opacity: 0.18,
|
|
721
|
+
radius: wp(28),
|
|
722
|
+
}),
|
|
720
723
|
},
|
|
721
724
|
surface: {
|
|
722
725
|
overflow: 'hidden',
|
|
@@ -30,6 +30,7 @@ import { scheduleOnRN } from 'react-native-worklets';
|
|
|
30
30
|
import { wp } from 'zkit-tools';
|
|
31
31
|
import { useTheme } from '../../theme/useTheme';
|
|
32
32
|
import { Text } from '../../ui/Text';
|
|
33
|
+
import { createShadowStyle } from '../../utils/shadow';
|
|
33
34
|
|
|
34
35
|
// ============================================================================
|
|
35
36
|
// Public Types
|
|
@@ -1208,20 +1209,25 @@ const styles = StyleSheet.create({
|
|
|
1208
1209
|
width: wp(320),
|
|
1209
1210
|
maxWidth: '92%',
|
|
1210
1211
|
alignSelf: 'center',
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1212
|
+
...createShadowStyle({
|
|
1213
|
+
color: '#000000',
|
|
1214
|
+
elevation: wp(3),
|
|
1215
|
+
offsetY: wp(2),
|
|
1216
|
+
opacity: 0.1,
|
|
1217
|
+
radius: wp(8),
|
|
1218
|
+
}),
|
|
1216
1219
|
},
|
|
1217
1220
|
toastSurface: {
|
|
1218
1221
|
borderRadius: wp(10),
|
|
1219
1222
|
},
|
|
1220
1223
|
toastIOS: {
|
|
1221
1224
|
borderRadius: wp(10),
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
+
...createShadowStyle({
|
|
1226
|
+
color: '#000000',
|
|
1227
|
+
offsetY: wp(10),
|
|
1228
|
+
opacity: 0.16,
|
|
1229
|
+
radius: wp(20),
|
|
1230
|
+
}),
|
|
1225
1231
|
},
|
|
1226
1232
|
toastContent: {
|
|
1227
1233
|
borderRadius: wp(10),
|
|
@@ -20,6 +20,7 @@ import { Animated, Easing, Platform, StyleSheet, View } from 'react-native';
|
|
|
20
20
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
21
21
|
import { wp } from 'zkit-tools';
|
|
22
22
|
import { Text } from '../../ui/Text';
|
|
23
|
+
import { createShadowStyle } from '../../utils/shadow';
|
|
23
24
|
|
|
24
25
|
/** 内置支持的权限用途类型 */
|
|
25
26
|
export type PermissionPurpose =
|
|
@@ -424,11 +425,13 @@ const styles = StyleSheet.create({
|
|
|
424
425
|
maxWidth: '94%',
|
|
425
426
|
borderRadius: wp(12),
|
|
426
427
|
backgroundColor: '#FFFFFF',
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
428
|
+
...createShadowStyle({
|
|
429
|
+
color: '#000000',
|
|
430
|
+
elevation: 8,
|
|
431
|
+
offsetY: wp(4),
|
|
432
|
+
opacity: 0.12,
|
|
433
|
+
radius: wp(12),
|
|
434
|
+
}),
|
|
432
435
|
},
|
|
433
436
|
content: {
|
|
434
437
|
paddingHorizontal: wp(16),
|
package/src/ui/Button/index.tsx
CHANGED
|
@@ -352,6 +352,10 @@ function colorToRgba(color: string, alpha: number) {
|
|
|
352
352
|
return `rgba(${r},${g},${b},${a})`;
|
|
353
353
|
}
|
|
354
354
|
|
|
355
|
+
function resolveBoxShadowColor(color: string, opacity: number) {
|
|
356
|
+
return colorToRgba(color, opacity) ?? color;
|
|
357
|
+
}
|
|
358
|
+
|
|
355
359
|
function resolveColorToken(input: string | undefined, fallback: string, theme: Theme) {
|
|
356
360
|
if (input == null) return fallback;
|
|
357
361
|
|
|
@@ -484,13 +488,24 @@ function resolveShadowStyle(
|
|
|
484
488
|
|
|
485
489
|
if (typeof shadow === 'object') {
|
|
486
490
|
const radius = Math.max(0, shadow.radius ?? wp(10));
|
|
491
|
+
const color = shadow.color ?? '#000000';
|
|
492
|
+
const offsetX = shadow.offsetX ?? 0;
|
|
493
|
+
const offsetY = shadow.offsetY ?? wp(3);
|
|
494
|
+
const opacity = shadow.opacity ?? (scheme === 'dark' ? 0.28 : 0.14);
|
|
495
|
+
|
|
496
|
+
if (Platform.OS === 'web') {
|
|
497
|
+
return {
|
|
498
|
+
boxShadow: `${offsetX}px ${offsetY}px ${radius}px ${resolveBoxShadowColor(color, opacity)}`,
|
|
499
|
+
} as ViewStyle;
|
|
500
|
+
}
|
|
501
|
+
|
|
487
502
|
return {
|
|
488
|
-
shadowColor:
|
|
503
|
+
shadowColor: color,
|
|
489
504
|
shadowOffset: {
|
|
490
|
-
width:
|
|
491
|
-
height:
|
|
505
|
+
width: offsetX,
|
|
506
|
+
height: offsetY,
|
|
492
507
|
},
|
|
493
|
-
shadowOpacity:
|
|
508
|
+
shadowOpacity: opacity,
|
|
494
509
|
shadowRadius: radius,
|
|
495
510
|
elevation: shadow.elevation ?? Math.max(0, Math.round(radius * 0.55)),
|
|
496
511
|
};
|
|
@@ -500,10 +515,19 @@ function resolveShadowStyle(
|
|
|
500
515
|
if (level <= 0) return undefined;
|
|
501
516
|
|
|
502
517
|
const radius = wp(level * 5 + 3);
|
|
518
|
+
const offsetY = wp(level + 1);
|
|
519
|
+
const opacity = scheme === 'dark' ? 0.26 : 0.14;
|
|
520
|
+
|
|
521
|
+
if (Platform.OS === 'web') {
|
|
522
|
+
return {
|
|
523
|
+
boxShadow: `0px ${offsetY}px ${radius}px ${resolveBoxShadowColor('#000000', opacity)}`,
|
|
524
|
+
} as ViewStyle;
|
|
525
|
+
}
|
|
526
|
+
|
|
503
527
|
return {
|
|
504
528
|
shadowColor: '#000000',
|
|
505
|
-
shadowOffset: { width: 0, height:
|
|
506
|
-
shadowOpacity:
|
|
529
|
+
shadowOffset: { width: 0, height: offsetY },
|
|
530
|
+
shadowOpacity: opacity,
|
|
507
531
|
shadowRadius: radius,
|
|
508
532
|
elevation: Math.max(0, Math.round(radius * 0.55)),
|
|
509
533
|
};
|
|
@@ -839,6 +863,10 @@ function resolveWebCursorStyle(disabled: boolean): ViewStyle | undefined {
|
|
|
839
863
|
return { cursor: disabled ? 'not-allowed' : 'pointer' } as ViewStyle;
|
|
840
864
|
}
|
|
841
865
|
|
|
866
|
+
const nativeNonePointerEvents = Platform.OS === 'web' ? undefined : 'none';
|
|
867
|
+
const webNonePointerEventsStyle =
|
|
868
|
+
Platform.OS === 'web' ? ({ pointerEvents: 'none' } as ViewStyle) : undefined;
|
|
869
|
+
|
|
842
870
|
function resolveRootAccessibilityRole() {
|
|
843
871
|
return Platform.OS === 'web' ? undefined : 'button';
|
|
844
872
|
}
|
|
@@ -1218,9 +1246,10 @@ function ButtonStaticImpl(
|
|
|
1218
1246
|
testID={testID}
|
|
1219
1247
|
>
|
|
1220
1248
|
<View
|
|
1221
|
-
pointerEvents=
|
|
1249
|
+
pointerEvents={nativeNonePointerEvents}
|
|
1222
1250
|
style={[
|
|
1223
1251
|
styles.content,
|
|
1252
|
+
webNonePointerEventsStyle,
|
|
1224
1253
|
contentSizeStyle,
|
|
1225
1254
|
paddingStyle,
|
|
1226
1255
|
radiusStyle,
|
|
@@ -1231,11 +1260,11 @@ function ButtonStaticImpl(
|
|
|
1231
1260
|
>
|
|
1232
1261
|
{LinearGradientComponent && gradientCfg ? (
|
|
1233
1262
|
<LinearGradientComponent
|
|
1234
|
-
pointerEvents=
|
|
1263
|
+
pointerEvents={nativeNonePointerEvents}
|
|
1235
1264
|
colors={gradientCfg.colors}
|
|
1236
1265
|
start={gradientCfg.start}
|
|
1237
1266
|
end={gradientCfg.end}
|
|
1238
|
-
style={[StyleSheet.absoluteFillObject, radiusStyle]}
|
|
1267
|
+
style={[StyleSheet.absoluteFillObject, webNonePointerEventsStyle, radiusStyle]}
|
|
1239
1268
|
/>
|
|
1240
1269
|
) : null}
|
|
1241
1270
|
|
|
@@ -1437,9 +1466,10 @@ function ButtonPressAnimatedImpl(
|
|
|
1437
1466
|
testID={testID}
|
|
1438
1467
|
>
|
|
1439
1468
|
<View
|
|
1440
|
-
pointerEvents=
|
|
1469
|
+
pointerEvents={nativeNonePointerEvents}
|
|
1441
1470
|
style={[
|
|
1442
1471
|
styles.content,
|
|
1472
|
+
webNonePointerEventsStyle,
|
|
1443
1473
|
contentSizeStyle,
|
|
1444
1474
|
paddingStyle,
|
|
1445
1475
|
radiusStyle,
|
|
@@ -1450,19 +1480,20 @@ function ButtonPressAnimatedImpl(
|
|
|
1450
1480
|
>
|
|
1451
1481
|
{LinearGradientComponent && gradientCfg ? (
|
|
1452
1482
|
<LinearGradientComponent
|
|
1453
|
-
pointerEvents=
|
|
1483
|
+
pointerEvents={nativeNonePointerEvents}
|
|
1454
1484
|
colors={gradientCfg.colors}
|
|
1455
1485
|
start={gradientCfg.start}
|
|
1456
1486
|
end={gradientCfg.end}
|
|
1457
|
-
style={[StyleSheet.absoluteFillObject, radiusStyle]}
|
|
1487
|
+
style={[StyleSheet.absoluteFillObject, webNonePointerEventsStyle, radiusStyle]}
|
|
1458
1488
|
/>
|
|
1459
1489
|
) : null}
|
|
1460
1490
|
|
|
1461
1491
|
{pressHighlightEnabled ? (
|
|
1462
1492
|
<Animated.View
|
|
1463
|
-
pointerEvents=
|
|
1493
|
+
pointerEvents={nativeNonePointerEvents}
|
|
1464
1494
|
style={[
|
|
1465
1495
|
StyleSheet.absoluteFillObject,
|
|
1496
|
+
webNonePointerEventsStyle,
|
|
1466
1497
|
radiusStyle,
|
|
1467
1498
|
{ backgroundColor: pressOverlay.color },
|
|
1468
1499
|
overlayAnimatedStyle,
|
|
@@ -1777,9 +1808,10 @@ function ButtonAnimatedImpl(
|
|
|
1777
1808
|
testID={testID}
|
|
1778
1809
|
>
|
|
1779
1810
|
<View
|
|
1780
|
-
pointerEvents=
|
|
1811
|
+
pointerEvents={nativeNonePointerEvents}
|
|
1781
1812
|
style={[
|
|
1782
1813
|
styles.content,
|
|
1814
|
+
webNonePointerEventsStyle,
|
|
1783
1815
|
contentSizeStyle,
|
|
1784
1816
|
paddingStyle,
|
|
1785
1817
|
radiusStyle,
|
|
@@ -1790,18 +1822,19 @@ function ButtonAnimatedImpl(
|
|
|
1790
1822
|
>
|
|
1791
1823
|
{LinearGradientComponent && gradientCfg ? (
|
|
1792
1824
|
<LinearGradientComponent
|
|
1793
|
-
pointerEvents=
|
|
1825
|
+
pointerEvents={nativeNonePointerEvents}
|
|
1794
1826
|
colors={gradientCfg.colors}
|
|
1795
1827
|
start={gradientCfg.start}
|
|
1796
1828
|
end={gradientCfg.end}
|
|
1797
|
-
style={[StyleSheet.absoluteFillObject, radiusStyle]}
|
|
1829
|
+
style={[StyleSheet.absoluteFillObject, webNonePointerEventsStyle, radiusStyle]}
|
|
1798
1830
|
/>
|
|
1799
1831
|
) : null}
|
|
1800
1832
|
|
|
1801
1833
|
<Animated.View
|
|
1802
|
-
pointerEvents=
|
|
1834
|
+
pointerEvents={nativeNonePointerEvents}
|
|
1803
1835
|
style={[
|
|
1804
1836
|
StyleSheet.absoluteFillObject,
|
|
1837
|
+
webNonePointerEventsStyle,
|
|
1805
1838
|
radiusStyle,
|
|
1806
1839
|
{ backgroundColor: pressOverlay.color },
|
|
1807
1840
|
overlayAnimatedStyle,
|
|
@@ -24,6 +24,7 @@ import { scheduleOnRN } from 'react-native-worklets';
|
|
|
24
24
|
import { wp } from 'zkit-tools';
|
|
25
25
|
import { useI18n } from '../../i18n/useI18n';
|
|
26
26
|
import { useTheme } from '../../theme/useTheme';
|
|
27
|
+
import { createShadowStyle } from '../../utils/shadow';
|
|
27
28
|
import { Text } from '../Text';
|
|
28
29
|
|
|
29
30
|
const DEFAULT_CHALLENGE_WIDTH = 320;
|
|
@@ -177,10 +178,6 @@ const styles = StyleSheet.create({
|
|
|
177
178
|
paddingHorizontal: CARD_HORIZONTAL_PADDING,
|
|
178
179
|
paddingTop: wp(18),
|
|
179
180
|
paddingBottom: wp(20),
|
|
180
|
-
shadowOffset: { width: 0, height: wp(10) },
|
|
181
|
-
shadowOpacity: 0.1,
|
|
182
|
-
shadowRadius: wp(20),
|
|
183
|
-
elevation: 10,
|
|
184
181
|
},
|
|
185
182
|
titleRow: {
|
|
186
183
|
flexDirection: 'row',
|
|
@@ -202,10 +199,6 @@ const styles = StyleSheet.create({
|
|
|
202
199
|
borderRadius: wp(14),
|
|
203
200
|
alignItems: 'center',
|
|
204
201
|
justifyContent: 'center',
|
|
205
|
-
shadowOffset: { width: 0, height: wp(2) },
|
|
206
|
-
shadowOpacity: 0.08,
|
|
207
|
-
shadowRadius: wp(4),
|
|
208
|
-
elevation: 3,
|
|
209
202
|
},
|
|
210
203
|
headerActionSpacing: {
|
|
211
204
|
marginLeft: wp(8),
|
|
@@ -268,10 +261,6 @@ const styles = StyleSheet.create({
|
|
|
268
261
|
borderRadius: SLIDER_THUMB_SIZE / 2,
|
|
269
262
|
alignItems: 'center',
|
|
270
263
|
justifyContent: 'center',
|
|
271
|
-
shadowOffset: { width: 0, height: wp(2) },
|
|
272
|
-
shadowOpacity: 0.15,
|
|
273
|
-
shadowRadius: wp(4),
|
|
274
|
-
elevation: 3,
|
|
275
264
|
borderWidth: wp(0.5),
|
|
276
265
|
},
|
|
277
266
|
});
|
|
@@ -370,6 +359,39 @@ export function SliderCaptcha<TChallenge extends SliderCaptchaChallenge = Slider
|
|
|
370
359
|
|
|
371
360
|
const backgroundImageUri = normalizeImageUri(challenge?.backgroundImage ?? '');
|
|
372
361
|
const blockImageUri = normalizeImageUri(challenge?.blockImage ?? '');
|
|
362
|
+
const cardShadowStyle = React.useMemo(
|
|
363
|
+
() =>
|
|
364
|
+
createShadowStyle({
|
|
365
|
+
color: theme.colors.onSurface,
|
|
366
|
+
elevation: 10,
|
|
367
|
+
offsetY: wp(10),
|
|
368
|
+
opacity: 0.1,
|
|
369
|
+
radius: wp(20),
|
|
370
|
+
}),
|
|
371
|
+
[theme.colors.onSurface]
|
|
372
|
+
);
|
|
373
|
+
const headerActionShadowStyle = React.useMemo(
|
|
374
|
+
() =>
|
|
375
|
+
createShadowStyle({
|
|
376
|
+
color: theme.colors.onSurface,
|
|
377
|
+
elevation: 3,
|
|
378
|
+
offsetY: wp(2),
|
|
379
|
+
opacity: 0.08,
|
|
380
|
+
radius: wp(4),
|
|
381
|
+
}),
|
|
382
|
+
[theme.colors.onSurface]
|
|
383
|
+
);
|
|
384
|
+
const sliderThumbShadowStyle = React.useMemo(
|
|
385
|
+
() =>
|
|
386
|
+
createShadowStyle({
|
|
387
|
+
color: theme.colors.onSurface,
|
|
388
|
+
elevation: 3,
|
|
389
|
+
offsetY: wp(2),
|
|
390
|
+
opacity: 0.15,
|
|
391
|
+
radius: wp(4),
|
|
392
|
+
}),
|
|
393
|
+
[theme.colors.onSurface]
|
|
394
|
+
);
|
|
373
395
|
|
|
374
396
|
const requestChallenge = React.useCallback(
|
|
375
397
|
async (reason: SliderCaptchaLoadReason) => {
|
|
@@ -674,8 +696,8 @@ export function SliderCaptcha<TChallenge extends SliderCaptchaChallenge = Slider
|
|
|
674
696
|
{
|
|
675
697
|
maxWidth: maxCardWidth,
|
|
676
698
|
backgroundColor: theme.colors.surface,
|
|
677
|
-
shadowColor: theme.colors.onSurface,
|
|
678
699
|
},
|
|
700
|
+
cardShadowStyle,
|
|
679
701
|
cardStyle,
|
|
680
702
|
]}
|
|
681
703
|
onPress={() => {}}
|
|
@@ -696,8 +718,8 @@ export function SliderCaptcha<TChallenge extends SliderCaptchaChallenge = Slider
|
|
|
696
718
|
backgroundColor: theme.colors.surface,
|
|
697
719
|
borderColor: theme.colors.border,
|
|
698
720
|
borderWidth: wp(0.5),
|
|
699
|
-
shadowColor: theme.colors.onSurface,
|
|
700
721
|
},
|
|
722
|
+
headerActionShadowStyle,
|
|
701
723
|
]}
|
|
702
724
|
onPress={handleRefresh}
|
|
703
725
|
disabled={!visible || isBusy}
|
|
@@ -715,8 +737,8 @@ export function SliderCaptcha<TChallenge extends SliderCaptchaChallenge = Slider
|
|
|
715
737
|
styles.headerActionSpacing,
|
|
716
738
|
{
|
|
717
739
|
backgroundColor: theme.colors.secondary,
|
|
718
|
-
shadowColor: theme.colors.onSurface,
|
|
719
740
|
},
|
|
741
|
+
headerActionShadowStyle,
|
|
720
742
|
]}
|
|
721
743
|
onPress={handleRequestClose}
|
|
722
744
|
disabled={!visible}
|
|
@@ -797,8 +819,8 @@ export function SliderCaptcha<TChallenge extends SliderCaptchaChallenge = Slider
|
|
|
797
819
|
{
|
|
798
820
|
backgroundColor: theme.colors.primary,
|
|
799
821
|
borderColor: 'rgba(0,0,0,0.04)',
|
|
800
|
-
shadowColor: theme.colors.onSurface,
|
|
801
822
|
},
|
|
823
|
+
sliderThumbShadowStyle,
|
|
802
824
|
]}
|
|
803
825
|
>
|
|
804
826
|
{isBusy ? (
|
package/src/ui/Switch/index.tsx
CHANGED
|
@@ -29,6 +29,7 @@ import Animated, {
|
|
|
29
29
|
import { wp } from 'zkit-tools';
|
|
30
30
|
import type { Theme } from '../../theme/types';
|
|
31
31
|
import { useTheme } from '../../theme/useTheme';
|
|
32
|
+
import { createShadowStyle } from '../../utils/shadow';
|
|
32
33
|
import { LoadingSpinner } from '../LoadingSpinner';
|
|
33
34
|
import { Text } from '../Text';
|
|
34
35
|
|
|
@@ -619,13 +620,14 @@ function SwitchImpl(
|
|
|
619
620
|
[metrics.minTouchTarget, trackHeight, trackWidth]
|
|
620
621
|
);
|
|
621
622
|
const thumbShadowStyle = React.useMemo<ViewStyle>(
|
|
622
|
-
() =>
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
623
|
+
() =>
|
|
624
|
+
createShadowStyle({
|
|
625
|
+
color: '#000000',
|
|
626
|
+
elevation: disabled ? 0 : wp(1),
|
|
627
|
+
offsetY: wp(1),
|
|
628
|
+
opacity: disabled ? 0 : scheme === 'dark' ? 0.28 : 0.14,
|
|
629
|
+
radius: disabled ? 0 : wp(4),
|
|
630
|
+
}),
|
|
629
631
|
[disabled, scheme]
|
|
630
632
|
);
|
|
631
633
|
const webCursorStyle = React.useMemo(
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Platform, processColor, type ViewStyle } from 'react-native';
|
|
2
|
+
|
|
3
|
+
export type ShadowStyleOptions = {
|
|
4
|
+
color?: string;
|
|
5
|
+
elevation?: number;
|
|
6
|
+
offsetX?: number;
|
|
7
|
+
offsetY?: number;
|
|
8
|
+
opacity?: number;
|
|
9
|
+
radius?: number;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
function normalizeOpacity(opacity: number) {
|
|
13
|
+
if (!Number.isFinite(opacity)) return 1;
|
|
14
|
+
return Math.max(0, Math.min(1, opacity));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function colorToRgba(color: string, opacity: number) {
|
|
18
|
+
const processed = processColor(color);
|
|
19
|
+
if (typeof processed !== 'number') return undefined;
|
|
20
|
+
|
|
21
|
+
const normalized = processed >>> 0;
|
|
22
|
+
const r = (normalized >> 16) & 255;
|
|
23
|
+
const g = (normalized >> 8) & 255;
|
|
24
|
+
const b = normalized & 255;
|
|
25
|
+
return `rgba(${r},${g},${b},${normalizeOpacity(opacity)})`;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function resolveWebShadowColor(color: string, opacity: number) {
|
|
29
|
+
return colorToRgba(color, opacity) ?? color;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function createShadowStyle({
|
|
33
|
+
color = '#000000',
|
|
34
|
+
elevation,
|
|
35
|
+
offsetX = 0,
|
|
36
|
+
offsetY = 0,
|
|
37
|
+
opacity = 0.14,
|
|
38
|
+
radius = 0,
|
|
39
|
+
}: ShadowStyleOptions): ViewStyle {
|
|
40
|
+
if (Platform.OS === 'web') {
|
|
41
|
+
return {
|
|
42
|
+
boxShadow: `${offsetX}px ${offsetY}px ${radius}px ${resolveWebShadowColor(color, opacity)}`,
|
|
43
|
+
} as ViewStyle;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const style: ViewStyle = {
|
|
47
|
+
shadowColor: color,
|
|
48
|
+
shadowOffset: { width: offsetX, height: offsetY },
|
|
49
|
+
shadowOpacity: opacity,
|
|
50
|
+
shadowRadius: radius,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
if (elevation !== undefined) {
|
|
54
|
+
style.elevation = elevation;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return style;
|
|
58
|
+
}
|