@thewhileloop/whileui 1.1.1 → 1.2.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 +505 -38
- package/dist/blocks/chat/chat.d.ts.map +1 -1
- package/dist/blocks/chat/chat.js +15 -5
- package/dist/blocks/chat/chat.js.map +1 -1
- package/dist/blocks/commerce/feature-gate.d.ts +13 -0
- package/dist/blocks/commerce/feature-gate.d.ts.map +1 -0
- package/dist/blocks/commerce/feature-gate.js +13 -0
- package/dist/blocks/commerce/feature-gate.js.map +1 -0
- package/dist/blocks/commerce/index.d.ts +5 -0
- package/dist/blocks/commerce/index.d.ts.map +1 -1
- package/dist/blocks/commerce/index.js +5 -0
- package/dist/blocks/commerce/index.js.map +1 -1
- package/dist/blocks/commerce/metric-card.d.ts +3 -1
- package/dist/blocks/commerce/metric-card.d.ts.map +1 -1
- package/dist/blocks/commerce/metric-card.js +8 -1
- package/dist/blocks/commerce/metric-card.js.map +1 -1
- package/dist/blocks/commerce/plan-toggle.d.ts +12 -0
- package/dist/blocks/commerce/plan-toggle.d.ts.map +1 -0
- package/dist/blocks/commerce/plan-toggle.js +19 -0
- package/dist/blocks/commerce/plan-toggle.js.map +1 -0
- package/dist/blocks/commerce/pricing-card.d.ts +3 -1
- package/dist/blocks/commerce/pricing-card.d.ts.map +1 -1
- package/dist/blocks/commerce/pricing-card.js +9 -1
- package/dist/blocks/commerce/pricing-card.js.map +1 -1
- package/dist/blocks/commerce/product-card.d.ts +3 -1
- package/dist/blocks/commerce/product-card.d.ts.map +1 -1
- package/dist/blocks/commerce/product-card.js +16 -2
- package/dist/blocks/commerce/product-card.js.map +1 -1
- package/dist/blocks/commerce/subscription-card.d.ts +17 -0
- package/dist/blocks/commerce/subscription-card.d.ts.map +1 -0
- package/dist/blocks/commerce/subscription-card.js +18 -0
- package/dist/blocks/commerce/subscription-card.js.map +1 -0
- package/dist/blocks/commerce/upgrade-banner.d.ts +12 -0
- package/dist/blocks/commerce/upgrade-banner.d.ts.map +1 -0
- package/dist/blocks/commerce/upgrade-banner.js +9 -0
- package/dist/blocks/commerce/upgrade-banner.js.map +1 -0
- package/dist/blocks/commerce/usage-bar.d.ts +11 -0
- package/dist/blocks/commerce/usage-bar.d.ts.map +1 -0
- package/dist/blocks/commerce/usage-bar.js +33 -0
- package/dist/blocks/commerce/usage-bar.js.map +1 -0
- package/dist/blocks/datepicker/date-range-picker-modal.d.ts +3 -2
- package/dist/blocks/datepicker/date-range-picker-modal.d.ts.map +1 -1
- package/dist/blocks/datepicker/date-range-picker-modal.js +16 -3
- package/dist/blocks/datepicker/date-range-picker-modal.js.map +1 -1
- package/dist/blocks/datepicker/datepicker-inline.d.ts.map +1 -1
- package/dist/blocks/datepicker/datepicker-inline.js +3 -1
- package/dist/blocks/datepicker/datepicker-inline.js.map +1 -1
- package/dist/blocks/datepicker/datepicker-modal.d.ts +3 -2
- package/dist/blocks/datepicker/datepicker-modal.d.ts.map +1 -1
- package/dist/blocks/datepicker/datepicker-modal.js +16 -3
- package/dist/blocks/datepicker/datepicker-modal.js.map +1 -1
- package/dist/blocks/datepicker/use-calendar-theme.d.ts.map +1 -1
- package/dist/blocks/datepicker/use-calendar-theme.js +2 -1
- package/dist/blocks/datepicker/use-calendar-theme.js.map +1 -1
- package/dist/blocks/layout/app-shell.d.ts +5 -1
- package/dist/blocks/layout/app-shell.d.ts.map +1 -1
- package/dist/blocks/layout/app-shell.js +2 -2
- package/dist/blocks/layout/app-shell.js.map +1 -1
- package/dist/blocks/layout/confirm-action-sheet.d.ts +3 -2
- package/dist/blocks/layout/confirm-action-sheet.d.ts.map +1 -1
- package/dist/blocks/layout/confirm-action-sheet.js +23 -4
- package/dist/blocks/layout/confirm-action-sheet.js.map +1 -1
- package/dist/blocks/layout/form-modal-screen.d.ts.map +1 -1
- package/dist/blocks/layout/form-modal-screen.js +23 -1
- package/dist/blocks/layout/form-modal-screen.js.map +1 -1
- package/dist/blocks/layout/index.d.ts +2 -1
- package/dist/blocks/layout/index.d.ts.map +1 -1
- package/dist/blocks/layout/index.js +1 -0
- package/dist/blocks/layout/index.js.map +1 -1
- package/dist/blocks/layout/page-skeleton.d.ts +7 -1
- package/dist/blocks/layout/page-skeleton.d.ts.map +1 -1
- package/dist/blocks/layout/page-skeleton.js +7 -14
- package/dist/blocks/layout/page-skeleton.js.map +1 -1
- package/dist/blocks/layout/screen-skeleton.d.ts +16 -0
- package/dist/blocks/layout/screen-skeleton.d.ts.map +1 -0
- package/dist/blocks/layout/screen-skeleton.js +8 -0
- package/dist/blocks/layout/screen-skeleton.js.map +1 -0
- package/dist/blocks/layout/sheet.d.ts +3 -2
- package/dist/blocks/layout/sheet.d.ts.map +1 -1
- package/dist/blocks/layout/sheet.js +39 -6
- package/dist/blocks/layout/sheet.js.map +1 -1
- package/dist/blocks/layout/smart-input.d.ts.map +1 -1
- package/dist/blocks/layout/smart-input.js +8 -1
- package/dist/blocks/layout/smart-input.js.map +1 -1
- package/dist/blocks/lists/list-item.d.ts +3 -1
- package/dist/blocks/lists/list-item.d.ts.map +1 -1
- package/dist/blocks/lists/list-item.js +9 -1
- package/dist/blocks/lists/list-item.js.map +1 -1
- package/dist/blocks/lists/notification-item.d.ts +3 -1
- package/dist/blocks/lists/notification-item.d.ts.map +1 -1
- package/dist/blocks/lists/notification-item.js +10 -2
- package/dist/blocks/lists/notification-item.js.map +1 -1
- package/dist/blocks/lists/swipeable-item.d.ts.map +1 -1
- package/dist/blocks/lists/swipeable-item.js +5 -3
- package/dist/blocks/lists/swipeable-item.js.map +1 -1
- package/dist/blocks/navigation/bottom-nav.d.ts.map +1 -1
- package/dist/blocks/navigation/bottom-nav.js +9 -2
- package/dist/blocks/navigation/bottom-nav.js.map +1 -1
- package/dist/blocks/navigation/drawer-menu.d.ts +3 -2
- package/dist/blocks/navigation/drawer-menu.d.ts.map +1 -1
- package/dist/blocks/navigation/drawer-menu.js +88 -25
- package/dist/blocks/navigation/drawer-menu.js.map +1 -1
- package/dist/blocks/navigation/header.d.ts +1 -1
- package/dist/blocks/navigation/header.d.ts.map +1 -1
- package/dist/blocks/navigation/header.js +12 -3
- package/dist/blocks/navigation/header.js.map +1 -1
- package/dist/blocks/navigation/navigation-sidebar.d.ts.map +1 -1
- package/dist/blocks/navigation/navigation-sidebar.js +9 -2
- package/dist/blocks/navigation/navigation-sidebar.js.map +1 -1
- package/dist/blocks/navigation/tab-bar.d.ts.map +1 -1
- package/dist/blocks/navigation/tab-bar.js +8 -2
- package/dist/blocks/navigation/tab-bar.js.map +1 -1
- package/dist/components/accordion/accordion.d.ts +1 -1
- package/dist/components/accordion/accordion.d.ts.map +1 -1
- package/dist/components/accordion/accordion.js +10 -4
- package/dist/components/accordion/accordion.js.map +1 -1
- package/dist/components/alert/alert.js +4 -4
- package/dist/components/alert/alert.js.map +1 -1
- package/dist/components/alert-dialog/alert-dialog.d.ts +8 -4
- package/dist/components/alert-dialog/alert-dialog.d.ts.map +1 -1
- package/dist/components/alert-dialog/alert-dialog.js +159 -14
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/components/alert-dialog/index.d.ts +1 -1
- package/dist/components/alert-dialog/index.d.ts.map +1 -1
- package/dist/components/alert-dialog/index.js.map +1 -1
- package/dist/components/badge/badge.js +6 -6
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/button/button.d.ts.map +1 -1
- package/dist/components/button/button.js +11 -5
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/card/card.d.ts +2 -1
- package/dist/components/card/card.d.ts.map +1 -1
- package/dist/components/card/card.js +12 -3
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/checkbox.js +7 -1
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/context-menu/context-menu.d.ts +3 -2
- package/dist/components/context-menu/context-menu.d.ts.map +1 -1
- package/dist/components/context-menu/context-menu.js +12 -3
- package/dist/components/context-menu/context-menu.js.map +1 -1
- package/dist/components/data-row/data-row.d.ts.map +1 -1
- package/dist/components/data-row/data-row.js +8 -5
- package/dist/components/data-row/data-row.js.map +1 -1
- package/dist/components/dialog/dialog.d.ts +3 -2
- package/dist/components/dialog/dialog.d.ts.map +1 -1
- package/dist/components/dialog/dialog.js +14 -3
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -2
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.js +12 -3
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/form-field/form-field.d.ts.map +1 -1
- package/dist/components/form-field/form-field.js +6 -3
- package/dist/components/form-field/form-field.js.map +1 -1
- package/dist/components/hover-card/hover-card.d.ts +2 -1
- package/dist/components/hover-card/hover-card.d.ts.map +1 -1
- package/dist/components/hover-card/hover-card.js +17 -2
- package/dist/components/hover-card/hover-card.js.map +1 -1
- package/dist/components/input/input.d.ts.map +1 -1
- package/dist/components/input/input.js +3 -1
- package/dist/components/input/input.js.map +1 -1
- package/dist/components/labeled-field/labeled-field.d.ts.map +1 -1
- package/dist/components/labeled-field/labeled-field.js +3 -1
- package/dist/components/labeled-field/labeled-field.js.map +1 -1
- package/dist/components/menubar/menubar.d.ts +3 -2
- package/dist/components/menubar/menubar.d.ts.map +1 -1
- package/dist/components/menubar/menubar.js +12 -3
- package/dist/components/menubar/menubar.js.map +1 -1
- package/dist/components/numeric-input/numeric-input.d.ts.map +1 -1
- package/dist/components/numeric-input/numeric-input.js +15 -3
- package/dist/components/numeric-input/numeric-input.js.map +1 -1
- package/dist/components/otp-input/index.d.ts +2 -0
- package/dist/components/otp-input/index.d.ts.map +1 -0
- package/dist/components/otp-input/index.js +2 -0
- package/dist/components/otp-input/index.js.map +1 -0
- package/dist/components/otp-input/otp-input.d.ts +97 -0
- package/dist/components/otp-input/otp-input.d.ts.map +1 -0
- package/dist/components/otp-input/otp-input.js +88 -0
- package/dist/components/otp-input/otp-input.js.map +1 -0
- package/dist/components/popover/popover.d.ts +2 -1
- package/dist/components/popover/popover.d.ts.map +1 -1
- package/dist/components/popover/popover.js +16 -3
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/segmented-control/segmented-control.d.ts +3 -3
- package/dist/components/segmented-control/segmented-control.d.ts.map +1 -1
- package/dist/components/segmented-control/segmented-control.js +19 -5
- package/dist/components/segmented-control/segmented-control.js.map +1 -1
- package/dist/components/select/select.d.ts +2 -1
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/select/select.js +30 -11
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/skeleton/skeleton.d.ts.map +1 -1
- package/dist/components/skeleton/skeleton.js +6 -2
- package/dist/components/skeleton/skeleton.js.map +1 -1
- package/dist/components/switch/switch.d.ts.map +1 -1
- package/dist/components/switch/switch.js +7 -1
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/tabs/tabs.d.ts +3 -1
- package/dist/components/tabs/tabs.d.ts.map +1 -1
- package/dist/components/tabs/tabs.js +9 -3
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/textarea/textarea.d.ts +2 -2
- package/dist/components/textarea/textarea.d.ts.map +1 -1
- package/dist/components/textarea/textarea.js +19 -6
- package/dist/components/textarea/textarea.js.map +1 -1
- package/dist/components/toast/toast.d.ts.map +1 -1
- package/dist/components/toast/toast.js +12 -2
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/frosted-surface.d.ts +33 -0
- package/dist/lib/frosted-surface.d.ts.map +1 -0
- package/dist/lib/frosted-surface.js +181 -0
- package/dist/lib/frosted-surface.js.map +1 -0
- package/dist/lib/interaction-tokens.d.ts +26 -0
- package/dist/lib/interaction-tokens.d.ts.map +1 -0
- package/dist/lib/interaction-tokens.js +70 -0
- package/dist/lib/interaction-tokens.js.map +1 -0
- package/dist/lib/react-native-classname.d.ts +23 -0
- package/dist/lib/react-native-classname.d.ts.map +1 -0
- package/dist/lib/react-native-classname.js +2 -0
- package/dist/lib/react-native-classname.js.map +1 -0
- package/dist/lib/theme-colors.d.ts +33 -4
- package/dist/lib/theme-colors.d.ts.map +1 -1
- package/dist/lib/theme-colors.js +249 -37
- package/dist/lib/theme-colors.js.map +1 -1
- package/dist/lib/visual-tokens.d.ts +39 -0
- package/dist/lib/visual-tokens.d.ts.map +1 -0
- package/dist/lib/visual-tokens.js +91 -0
- package/dist/lib/visual-tokens.js.map +1 -0
- package/dist/vite.d.ts +47 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +110 -0
- package/dist/vite.js.map +1 -0
- package/package.json +10 -1
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Platform, StyleSheet, View } from 'react-native';
|
|
3
|
+
import { useUniwind } from 'uniwind';
|
|
4
|
+
import { useThemeColors } from './theme-colors';
|
|
5
|
+
import { useVisualTokens } from './visual-tokens';
|
|
6
|
+
let cachedBlurViewComponent;
|
|
7
|
+
let registeredBlurViewComponent = null;
|
|
8
|
+
/**
|
|
9
|
+
* Registers the app's BlurView implementation (e.g. from expo-blur).
|
|
10
|
+
* Keep this opt-in so consumers who do not install blur libraries still compile.
|
|
11
|
+
*/
|
|
12
|
+
export function registerFrostedBlurView(blurView) {
|
|
13
|
+
registeredBlurViewComponent = blurView ?? null;
|
|
14
|
+
cachedBlurViewComponent = undefined;
|
|
15
|
+
}
|
|
16
|
+
function getBlurViewComponent() {
|
|
17
|
+
if (registeredBlurViewComponent) {
|
|
18
|
+
return registeredBlurViewComponent;
|
|
19
|
+
}
|
|
20
|
+
if (cachedBlurViewComponent !== undefined) {
|
|
21
|
+
return cachedBlurViewComponent;
|
|
22
|
+
}
|
|
23
|
+
const runtimeRequire = typeof require === 'function'
|
|
24
|
+
? require
|
|
25
|
+
: (globalThis.require ?? null);
|
|
26
|
+
if (!runtimeRequire) {
|
|
27
|
+
cachedBlurViewComponent = null;
|
|
28
|
+
return cachedBlurViewComponent;
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
const packageName = ['expo', 'blur'].join('-');
|
|
32
|
+
const maybeBlurModule = runtimeRequire(packageName);
|
|
33
|
+
cachedBlurViewComponent =
|
|
34
|
+
typeof maybeBlurModule?.BlurView === 'function' ? maybeBlurModule.BlurView : null;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
cachedBlurViewComponent = null;
|
|
38
|
+
}
|
|
39
|
+
return cachedBlurViewComponent;
|
|
40
|
+
}
|
|
41
|
+
function resolveTintColor(colors, tintToken) {
|
|
42
|
+
if (tintToken === 'card')
|
|
43
|
+
return colors.card;
|
|
44
|
+
if (tintToken === 'popover')
|
|
45
|
+
return colors.popover;
|
|
46
|
+
if (tintToken === 'surfaceTranslucent')
|
|
47
|
+
return colors.surfaceTranslucent;
|
|
48
|
+
return colors.surfaceElevated;
|
|
49
|
+
}
|
|
50
|
+
function resolveBlurIntensity(visualTokens, blurIntensity, preset) {
|
|
51
|
+
if (typeof blurIntensity === 'number' && Number.isFinite(blurIntensity)) {
|
|
52
|
+
return Math.max(0, Math.round(blurIntensity));
|
|
53
|
+
}
|
|
54
|
+
if (preset === 'subtle')
|
|
55
|
+
return visualTokens.blurIntensitySubtle;
|
|
56
|
+
if (preset === 'strong')
|
|
57
|
+
return visualTokens.blurIntensityStrong;
|
|
58
|
+
return visualTokens.blurIntensityMedium;
|
|
59
|
+
}
|
|
60
|
+
function getInsetAbsoluteFillStyle() {
|
|
61
|
+
const inset = Math.max(0, StyleSheet.hairlineWidth);
|
|
62
|
+
if (inset <= 0) {
|
|
63
|
+
return StyleSheet.absoluteFillObject;
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
position: 'absolute',
|
|
67
|
+
top: inset,
|
|
68
|
+
right: inset,
|
|
69
|
+
bottom: inset,
|
|
70
|
+
left: inset,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function FrostedOverlay({ intensity, tintColor, highlightColor, saturationPct, highlightHeight, androidExperimentalBlurEnabled, }) {
|
|
74
|
+
const { theme } = useUniwind();
|
|
75
|
+
const BlurView = getBlurViewComponent();
|
|
76
|
+
const blurTint = theme === 'dark' ? 'dark' : 'light';
|
|
77
|
+
const blurProps = Platform.OS === 'android' && androidExperimentalBlurEnabled
|
|
78
|
+
? { experimentalBlurMethod: 'dimezisBlurView' }
|
|
79
|
+
: undefined;
|
|
80
|
+
const showHighlight = highlightHeight > 0;
|
|
81
|
+
const blurFill = getInsetAbsoluteFillStyle();
|
|
82
|
+
const tintFill = StyleSheet.absoluteFillObject;
|
|
83
|
+
const highlightInset = Math.max(0, StyleSheet.hairlineWidth);
|
|
84
|
+
if (!BlurView && Platform.OS === 'web') {
|
|
85
|
+
const webStyle = {
|
|
86
|
+
backdropFilter: `blur(${intensity}px) saturate(${saturationPct}%)`,
|
|
87
|
+
WebkitBackdropFilter: `blur(${intensity}px) saturate(${saturationPct}%)`,
|
|
88
|
+
};
|
|
89
|
+
return (_jsxs(_Fragment, { children: [_jsx(View, { pointerEvents: "none", style: [tintFill, webStyle, { backgroundColor: tintColor }] }), showHighlight ? (_jsx(View, { pointerEvents: "none", style: {
|
|
90
|
+
position: 'absolute',
|
|
91
|
+
top: highlightInset,
|
|
92
|
+
left: highlightInset,
|
|
93
|
+
right: highlightInset,
|
|
94
|
+
height: highlightHeight,
|
|
95
|
+
backgroundColor: highlightColor,
|
|
96
|
+
borderTopLeftRadius: 999,
|
|
97
|
+
borderTopRightRadius: 999,
|
|
98
|
+
} })) : null] }));
|
|
99
|
+
}
|
|
100
|
+
if (!BlurView) {
|
|
101
|
+
return (_jsxs(_Fragment, { children: [_jsx(View, { pointerEvents: "none", style: [tintFill, { backgroundColor: tintColor }] }), showHighlight ? (_jsx(View, { pointerEvents: "none", style: {
|
|
102
|
+
position: 'absolute',
|
|
103
|
+
top: highlightInset,
|
|
104
|
+
left: highlightInset,
|
|
105
|
+
right: highlightInset,
|
|
106
|
+
height: highlightHeight,
|
|
107
|
+
backgroundColor: highlightColor,
|
|
108
|
+
borderTopLeftRadius: 999,
|
|
109
|
+
borderTopRightRadius: 999,
|
|
110
|
+
} })) : null] }));
|
|
111
|
+
}
|
|
112
|
+
return (_jsxs(_Fragment, { children: [_jsx(BlurView, { pointerEvents: "none", intensity: intensity, tint: blurTint, ...blurProps, style: blurFill }), _jsx(View, { pointerEvents: "none", style: [tintFill, { backgroundColor: tintColor }] }), showHighlight ? (_jsx(View, { pointerEvents: "none", style: {
|
|
113
|
+
position: 'absolute',
|
|
114
|
+
top: highlightInset,
|
|
115
|
+
left: highlightInset,
|
|
116
|
+
right: highlightInset,
|
|
117
|
+
height: highlightHeight,
|
|
118
|
+
backgroundColor: highlightColor,
|
|
119
|
+
borderTopLeftRadius: 999,
|
|
120
|
+
borderTopRightRadius: 999,
|
|
121
|
+
} })) : null] }));
|
|
122
|
+
}
|
|
123
|
+
function FrostedBackdropOverlay({ intensity, tintColor, saturationPct, androidExperimentalBlurEnabled, }) {
|
|
124
|
+
const { theme } = useUniwind();
|
|
125
|
+
const BlurView = getBlurViewComponent();
|
|
126
|
+
const blurTint = theme === 'dark' ? 'dark' : 'light';
|
|
127
|
+
const blurProps = Platform.OS === 'android' && androidExperimentalBlurEnabled
|
|
128
|
+
? { experimentalBlurMethod: 'dimezisBlurView' }
|
|
129
|
+
: undefined;
|
|
130
|
+
const blurFill = getInsetAbsoluteFillStyle();
|
|
131
|
+
const tintFill = StyleSheet.absoluteFillObject;
|
|
132
|
+
if (!BlurView && Platform.OS === 'web') {
|
|
133
|
+
const webStyle = {
|
|
134
|
+
backdropFilter: `blur(${intensity}px) saturate(${saturationPct}%)`,
|
|
135
|
+
WebkitBackdropFilter: `blur(${intensity}px) saturate(${saturationPct}%)`,
|
|
136
|
+
};
|
|
137
|
+
return (_jsx(View, { pointerEvents: "none", style: [tintFill, webStyle, { backgroundColor: tintColor }] }));
|
|
138
|
+
}
|
|
139
|
+
if (!BlurView) {
|
|
140
|
+
return _jsx(View, { pointerEvents: "none", style: [tintFill, { backgroundColor: tintColor }] });
|
|
141
|
+
}
|
|
142
|
+
return (_jsxs(_Fragment, { children: [_jsx(BlurView, { pointerEvents: "none", intensity: intensity, tint: blurTint, ...blurProps, style: blurFill }), _jsx(View, { pointerEvents: "none", style: [tintFill, { backgroundColor: tintColor }] })] }));
|
|
143
|
+
}
|
|
144
|
+
export function useFrostedSurface({ frosted = false, blurIntensity, blurTintToken, defaultTintToken, defaultBlurPreset = 'medium', }) {
|
|
145
|
+
const colors = useThemeColors();
|
|
146
|
+
const visualTokens = useVisualTokens();
|
|
147
|
+
if (!frosted) {
|
|
148
|
+
return {
|
|
149
|
+
frosted: false,
|
|
150
|
+
overlay: null,
|
|
151
|
+
surfaceStyle: undefined,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
const tintToken = blurTintToken ?? defaultTintToken;
|
|
155
|
+
const tintColor = resolveTintColor(colors, tintToken);
|
|
156
|
+
const intensity = resolveBlurIntensity(visualTokens, blurIntensity, defaultBlurPreset);
|
|
157
|
+
const highlightColor = colors.surfaceHighlight;
|
|
158
|
+
const highlightHeight = visualTokens.frostedHighlightHeight;
|
|
159
|
+
const saturationPct = visualTokens.blurSaturationPct;
|
|
160
|
+
const androidExperimentalBlurEnabled = visualTokens.androidExperimentalBlurEnabled;
|
|
161
|
+
return {
|
|
162
|
+
frosted: true,
|
|
163
|
+
overlay: (_jsx(FrostedOverlay, { intensity: intensity, tintColor: tintColor, highlightColor: highlightColor, highlightHeight: highlightHeight, saturationPct: saturationPct, androidExperimentalBlurEnabled: androidExperimentalBlurEnabled })),
|
|
164
|
+
surfaceStyle: {
|
|
165
|
+
backgroundColor: 'transparent',
|
|
166
|
+
borderColor: colors.surfaceBorder,
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
export function useFrostedBackdrop({ frosted = false, blurIntensity, tintColor, }) {
|
|
171
|
+
const colors = useThemeColors();
|
|
172
|
+
const visualTokens = useVisualTokens();
|
|
173
|
+
if (!frosted)
|
|
174
|
+
return null;
|
|
175
|
+
const intensity = typeof blurIntensity === 'number' && Number.isFinite(blurIntensity)
|
|
176
|
+
? Math.max(0, Math.round(blurIntensity))
|
|
177
|
+
: visualTokens.frostedBackdropBlurIntensity;
|
|
178
|
+
const resolvedTintColor = tintColor ?? colors.overlay;
|
|
179
|
+
return (_jsx(FrostedBackdropOverlay, { intensity: intensity, tintColor: resolvedTintColor, saturationPct: visualTokens.blurSaturationPct, androidExperimentalBlurEnabled: visualTokens.androidExperimentalBlurEnabled }));
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=frosted-surface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frosted-surface.js","sourceRoot":"","sources":["../../src/lib/frosted-surface.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type PressableProps } from 'react-native';
|
|
2
|
+
export interface InteractionTokens {
|
|
3
|
+
pressOpacity: number;
|
|
4
|
+
pressOpacityStrong: number;
|
|
5
|
+
disabledOpacity: number;
|
|
6
|
+
disabledOpacitySoft: number;
|
|
7
|
+
disabledOpacitySubtle: number;
|
|
8
|
+
inactiveOpacity: number;
|
|
9
|
+
motionFast: number;
|
|
10
|
+
motionNormal: number;
|
|
11
|
+
motionSlow: number;
|
|
12
|
+
drawerOpenDuration: number;
|
|
13
|
+
drawerCloseDuration: number;
|
|
14
|
+
}
|
|
15
|
+
export type PressedVariant = 'default' | 'strong' | 'none';
|
|
16
|
+
export type DisabledVariant = 'default' | 'soft' | 'subtle' | 'none';
|
|
17
|
+
export interface InteractivePressableOptions {
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
pressedVariant?: PressedVariant;
|
|
20
|
+
disabledVariant?: DisabledVariant;
|
|
21
|
+
}
|
|
22
|
+
export declare function useInteractionTokens(): InteractionTokens;
|
|
23
|
+
type PressableStyle = PressableProps['style'];
|
|
24
|
+
export declare function withInteractivePressableStyle(styleProp: PressableStyle | undefined, tokens: InteractionTokens, options?: InteractivePressableOptions): PressableStyle;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=interaction-tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction-tokens.d.ts","sourceRoot":"","sources":["../../src/lib/interaction-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAIpB,MAAM,cAAc,CAAC;AAatB,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAErE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAwCxD;AAED,KAAK,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;AAqB9C,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,cAAc,GAAG,SAAS,EACrC,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,2BAAgC,GACxC,cAAc,CAiBhB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { useCSSVariable } from 'uniwind';
|
|
2
|
+
function parseNumber(value, fallback) {
|
|
3
|
+
if (value === undefined || value === null)
|
|
4
|
+
return fallback;
|
|
5
|
+
const parsed = Number.parseFloat(String(value));
|
|
6
|
+
return Number.isFinite(parsed) ? parsed : fallback;
|
|
7
|
+
}
|
|
8
|
+
function clampOpacity(value) {
|
|
9
|
+
return Math.max(0, Math.min(1, value));
|
|
10
|
+
}
|
|
11
|
+
export function useInteractionTokens() {
|
|
12
|
+
const [pressOpacity, pressOpacityStrong, disabledOpacity, disabledOpacitySoft, disabledOpacitySubtle, inactiveOpacity, motionFast, motionNormal, motionSlow, drawerOpenDuration, drawerCloseDuration,] = useCSSVariable([
|
|
13
|
+
'--ui-press-opacity',
|
|
14
|
+
'--ui-press-opacity-strong',
|
|
15
|
+
'--ui-disabled-opacity',
|
|
16
|
+
'--ui-disabled-opacity-soft',
|
|
17
|
+
'--ui-disabled-opacity-subtle',
|
|
18
|
+
'--ui-inactive-opacity',
|
|
19
|
+
'--ui-motion-fast',
|
|
20
|
+
'--ui-motion-normal',
|
|
21
|
+
'--ui-motion-slow',
|
|
22
|
+
'--ui-drawer-open-duration',
|
|
23
|
+
'--ui-drawer-close-duration',
|
|
24
|
+
]);
|
|
25
|
+
return {
|
|
26
|
+
pressOpacity: clampOpacity(parseNumber(pressOpacity, 0.72)),
|
|
27
|
+
pressOpacityStrong: clampOpacity(parseNumber(pressOpacityStrong, 0.9)),
|
|
28
|
+
disabledOpacity: clampOpacity(parseNumber(disabledOpacity, 0.5)),
|
|
29
|
+
disabledOpacitySoft: clampOpacity(parseNumber(disabledOpacitySoft, 0.6)),
|
|
30
|
+
disabledOpacitySubtle: clampOpacity(parseNumber(disabledOpacitySubtle, 0.4)),
|
|
31
|
+
inactiveOpacity: clampOpacity(parseNumber(inactiveOpacity, 0.5)),
|
|
32
|
+
motionFast: Math.max(0, Math.round(parseNumber(motionFast, 160))),
|
|
33
|
+
motionNormal: Math.max(0, Math.round(parseNumber(motionNormal, 220))),
|
|
34
|
+
motionSlow: Math.max(0, Math.round(parseNumber(motionSlow, 300))),
|
|
35
|
+
drawerOpenDuration: Math.max(0, Math.round(parseNumber(drawerOpenDuration, 300))),
|
|
36
|
+
drawerCloseDuration: Math.max(0, Math.round(parseNumber(drawerCloseDuration, 220))),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function resolveDisabledOpacity(tokens, variant) {
|
|
40
|
+
if (variant === 'none')
|
|
41
|
+
return undefined;
|
|
42
|
+
if (variant === 'soft')
|
|
43
|
+
return tokens.disabledOpacitySoft;
|
|
44
|
+
if (variant === 'subtle')
|
|
45
|
+
return tokens.disabledOpacitySubtle;
|
|
46
|
+
return tokens.disabledOpacity;
|
|
47
|
+
}
|
|
48
|
+
function resolvePressedOpacity(tokens, variant) {
|
|
49
|
+
if (variant === 'none')
|
|
50
|
+
return undefined;
|
|
51
|
+
if (variant === 'strong')
|
|
52
|
+
return tokens.pressOpacityStrong;
|
|
53
|
+
return tokens.pressOpacity;
|
|
54
|
+
}
|
|
55
|
+
export function withInteractivePressableStyle(styleProp, tokens, options = {}) {
|
|
56
|
+
const { disabled = false, pressedVariant = 'default', disabledVariant = 'default' } = options;
|
|
57
|
+
return (state) => {
|
|
58
|
+
const baseStyle = typeof styleProp === 'function'
|
|
59
|
+
? styleProp(state)
|
|
60
|
+
: styleProp;
|
|
61
|
+
const disabledOpacity = resolveDisabledOpacity(tokens, disabledVariant);
|
|
62
|
+
const pressedOpacity = resolvePressedOpacity(tokens, pressedVariant);
|
|
63
|
+
const feedbackOpacity = disabled ? disabledOpacity : state.pressed ? pressedOpacity : undefined;
|
|
64
|
+
return [
|
|
65
|
+
baseStyle,
|
|
66
|
+
feedbackOpacity !== undefined ? { opacity: feedbackOpacity } : null,
|
|
67
|
+
];
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=interaction-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction-tokens.js","sourceRoot":"","sources":["../../src/lib/interaction-tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import 'react-native';
|
|
2
|
+
declare module 'react-native' {
|
|
3
|
+
interface ViewProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
}
|
|
6
|
+
interface TextProps {
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
interface ImageProps {
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
interface PressableProps {
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
interface FlatListProps<ItemT> {
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
interface ScrollViewProps {
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=react-native-classname.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native-classname.d.ts","sourceRoot":"","sources":["../../src/lib/react-native-classname.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,SAAS;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IACD,UAAU,SAAS;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IACD,UAAU,UAAU;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IACD,UAAU,cAAc;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IACD,UAAU,aAAa,CAAC,KAAK;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IACD,UAAU,eAAe;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;CACF;AAED,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-native-classname.js","sourceRoot":"","sources":["../../src/lib/react-native-classname.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC"}
|
|
@@ -6,14 +6,40 @@ export interface ThemeColors {
|
|
|
6
6
|
primary: string;
|
|
7
7
|
primaryForeground: string;
|
|
8
8
|
foreground: string;
|
|
9
|
+
background: string;
|
|
10
|
+
card: string;
|
|
11
|
+
cardForeground: string;
|
|
12
|
+
popover: string;
|
|
13
|
+
popoverForeground: string;
|
|
14
|
+
secondary: string;
|
|
15
|
+
secondaryForeground: string;
|
|
9
16
|
muted: string;
|
|
10
17
|
mutedForeground: string;
|
|
11
|
-
/** For placeholder text (aliases mutedForeground; override via placeholderTextColor when needed) */
|
|
12
|
-
placeholder: string;
|
|
13
|
-
background: string;
|
|
14
18
|
border: string;
|
|
19
|
+
input: string;
|
|
20
|
+
ring: string;
|
|
15
21
|
accent: string;
|
|
22
|
+
accentForeground: string;
|
|
16
23
|
destructive: string;
|
|
24
|
+
destructiveForeground: string;
|
|
25
|
+
success: string;
|
|
26
|
+
successForeground: string;
|
|
27
|
+
warning: string;
|
|
28
|
+
warningForeground: string;
|
|
29
|
+
info: string;
|
|
30
|
+
infoForeground: string;
|
|
31
|
+
overlay: string;
|
|
32
|
+
overlayStrong: string;
|
|
33
|
+
surfaceElevated: string;
|
|
34
|
+
surfaceTranslucent: string;
|
|
35
|
+
surfaceTranslucentBorder: string;
|
|
36
|
+
surfaceBorder: string;
|
|
37
|
+
surfaceHighlight: string;
|
|
38
|
+
stateHover: string;
|
|
39
|
+
statePressed: string;
|
|
40
|
+
stateDisabled: string;
|
|
41
|
+
/** For placeholder text (aliases mutedForeground; override via placeholderTextColor when needed) */
|
|
42
|
+
placeholder: string;
|
|
17
43
|
}
|
|
18
44
|
export declare function useThemeColors(): ThemeColors;
|
|
19
45
|
/** Icon colors derived from theme. For @expo/vector-icons which need hex values. */
|
|
@@ -23,9 +49,12 @@ export declare function useIconColors(): {
|
|
|
23
49
|
primary: string;
|
|
24
50
|
primaryForeground: string;
|
|
25
51
|
accent: string;
|
|
52
|
+
warning: string;
|
|
53
|
+
success: string;
|
|
54
|
+
info: string;
|
|
26
55
|
destructive: string;
|
|
27
56
|
};
|
|
28
|
-
/** Alias for useThemeColors. Returns
|
|
57
|
+
/** Alias for useThemeColors. Returns RN-safe color strings (hex/rgb/rgba) for RefreshControl, LinearGradient, charts. */
|
|
29
58
|
export declare const useThemeTokens: typeof useThemeColors;
|
|
30
59
|
/** @deprecated Use useThemeTokens or useThemeColors. */
|
|
31
60
|
export declare const useResolvedThemeColors: typeof useThemeColors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-colors.d.ts","sourceRoot":"","sources":["../../src/lib/theme-colors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme-colors.d.ts","sourceRoot":"","sources":["../../src/lib/theme-colors.ts"],"names":[],"mappings":"AAgDA;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,oGAAoG;IACpG,WAAW,EAAE,MAAM,CAAC;CACrB;AAyND,wBAAgB,cAAc,IAAI,WAAW,CAkB5C;AAED,oFAAoF;AACpF,wBAAgB,aAAa;;;;;;;;;;EAa5B;AAED,yHAAyH;AACzH,eAAO,MAAM,cAAc,uBAAiB,CAAC;AAE7C,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,uBAAiB,CAAC"}
|