@yahoo/uds-mobile 2.21.1 → 2.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/bin/automated-config/dist/generated/generatedConfigs.mjs +67 -51
- package/dist/components/Button/buttonTheme.cjs +69 -0
- package/dist/components/Button/buttonTheme.d.cts +24 -0
- package/dist/components/Button/buttonTheme.d.cts.map +1 -0
- package/dist/components/Button/buttonTheme.d.ts +24 -0
- package/dist/components/Button/buttonTheme.d.ts.map +1 -0
- package/dist/components/Button/buttonTheme.js +68 -0
- package/dist/components/Button/buttonTheme.js.map +1 -0
- package/dist/components/Button.cjs +7 -1
- package/dist/components/Button.d.cts.map +1 -1
- package/dist/components/Button.d.ts.map +1 -1
- package/dist/components/Button.js +7 -1
- package/dist/components/Button.js.map +1 -1
- package/dist/components/IconButton.cjs +33 -21
- package/dist/components/IconButton.d.cts.map +1 -1
- package/dist/components/IconButton.d.ts.map +1 -1
- package/dist/components/IconButton.js +34 -22
- package/dist/components/IconButton.js.map +1 -1
- package/dist/components/Switch.cjs +34 -12
- package/dist/components/Switch.d.cts.map +1 -1
- package/dist/components/Switch.d.ts.map +1 -1
- package/dist/components/Switch.js +36 -14
- package/dist/components/Switch.js.map +1 -1
- package/dist/components/UDSGestureProvider.cjs +4 -0
- package/dist/components/UDSGestureProvider.d.cts +3 -0
- package/dist/components/UDSGestureProvider.d.ts +3 -0
- package/dist/components/UDSGestureProvider.js +3 -0
- package/dist/components/UDSProvider.cjs +10 -5
- package/dist/components/UDSProvider.d.cts +15 -7
- package/dist/components/UDSProvider.d.cts.map +1 -1
- package/dist/components/UDSProvider.d.ts +15 -7
- package/dist/components/UDSProvider.d.ts.map +1 -1
- package/dist/components/UDSProvider.js +10 -6
- package/dist/components/UDSProvider.js.map +1 -1
- package/dist/components/internal/Overlay/OverlayPortal.js.map +1 -1
- package/dist/jest/mocks/styles.cjs +21 -9
- package/dist/jest/mocks/styles.d.cts.map +1 -1
- package/dist/jest/mocks/styles.d.ts.map +1 -1
- package/dist/jest/mocks/styles.js +21 -9
- package/dist/jest/mocks/styles.js.map +1 -1
- package/dist/jest/mocks/unistyles.cjs +16 -1
- package/dist/jest/mocks/unistyles.d.cts +56 -2
- package/dist/jest/mocks/unistyles.d.cts.map +1 -1
- package/dist/jest/mocks/unistyles.d.ts +56 -2
- package/dist/jest/mocks/unistyles.d.ts.map +1 -1
- package/dist/jest/mocks/unistyles.js +16 -1
- package/dist/jest/mocks/unistyles.js.map +1 -1
- package/dist/portal.cjs +1 -1
- package/dist/portal.js +1 -1
- package/dist/portal.js.map +1 -1
- package/generated/styles.d.ts +1 -1
- package/package.json +11 -1
|
@@ -6,31 +6,35 @@ import { jsx } from "react/jsx-runtime";
|
|
|
6
6
|
import { GestureHandlerRootView } from "react-native-gesture-handler";
|
|
7
7
|
//#region src/components/UDSProvider.tsx
|
|
8
8
|
/**
|
|
9
|
-
* Root provider for UDS Mobile.
|
|
9
|
+
* Root gesture and portal provider for UDS Mobile overlays.
|
|
10
10
|
*
|
|
11
11
|
* Place this at the top of your app layout:
|
|
12
12
|
*
|
|
13
13
|
* @example
|
|
14
14
|
* ```tsx
|
|
15
|
-
* import {
|
|
15
|
+
* import { UDSGestureProvider } from '@yahoo/uds-mobile/UDSGestureProvider';
|
|
16
16
|
*
|
|
17
17
|
* export default function RootLayout() {
|
|
18
18
|
* return (
|
|
19
|
-
* <
|
|
19
|
+
* <UDSGestureProvider>
|
|
20
20
|
* <Stack />
|
|
21
|
-
* </
|
|
21
|
+
* </UDSGestureProvider>
|
|
22
22
|
* );
|
|
23
23
|
* }
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
-
const
|
|
26
|
+
const UDSGestureProvider = memo(function UDSGestureProvider({ children }) {
|
|
27
27
|
return /* @__PURE__ */ jsx(GestureHandlerRootView, {
|
|
28
28
|
style: styles.root,
|
|
29
29
|
children: /* @__PURE__ */ jsx(PortalProvider, { children })
|
|
30
30
|
});
|
|
31
31
|
});
|
|
32
|
+
/**
|
|
33
|
+
* @deprecated Use {@link UDSGestureProvider} from `@yahoo/uds-mobile/UDSGestureProvider`.
|
|
34
|
+
*/
|
|
35
|
+
const UDSProvider = UDSGestureProvider;
|
|
32
36
|
const styles = StyleSheet.create({ root: { flex: 1 } });
|
|
33
37
|
//#endregion
|
|
34
|
-
export { UDSProvider };
|
|
38
|
+
export { UDSGestureProvider, UDSProvider };
|
|
35
39
|
|
|
36
40
|
//# sourceMappingURL=UDSProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UDSProvider.js","names":[],"sources":["../../src/components/UDSProvider.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { memo } from 'react';\nimport { StyleSheet } from 'react-native';\nimport { GestureHandlerRootView } from 'react-native-gesture-handler';\n\nimport { PortalProvider } from '../portal';\n\ninterface
|
|
1
|
+
{"version":3,"file":"UDSProvider.js","names":[],"sources":["../../src/components/UDSProvider.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { memo } from 'react';\nimport { StyleSheet } from 'react-native';\nimport { GestureHandlerRootView } from 'react-native-gesture-handler';\n\nimport { PortalProvider } from '../portal';\n\ninterface UDSGestureProviderProps {\n children: ReactNode;\n}\n\n/**\n * Root gesture and portal provider for UDS Mobile overlays.\n *\n * Place this at the top of your app layout:\n *\n * @example\n * ```tsx\n * import { UDSGestureProvider } from '@yahoo/uds-mobile/UDSGestureProvider';\n *\n * export default function RootLayout() {\n * return (\n * <UDSGestureProvider>\n * <Stack />\n * </UDSGestureProvider>\n * );\n * }\n * ```\n */\nconst UDSGestureProvider = memo(function UDSGestureProvider({ children }: UDSGestureProviderProps) {\n return (\n <GestureHandlerRootView style={styles.root}>\n <PortalProvider>{children}</PortalProvider>\n </GestureHandlerRootView>\n );\n});\n\n/**\n * @deprecated Use {@link UDSGestureProvider} from `@yahoo/uds-mobile/UDSGestureProvider`.\n */\nconst UDSProvider = UDSGestureProvider;\n\nconst styles = StyleSheet.create({\n root: {\n flex: 1,\n },\n});\n\nexport { UDSGestureProvider, UDSProvider };\nexport type { UDSGestureProviderProps };\n/**\n * @deprecated Use {@link UDSGestureProviderProps}.\n */\nexport type UDSProviderProps = UDSGestureProviderProps;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAM,qBAAqB,KAAK,SAAS,mBAAmB,EAAE,YAAqC;CACjG,OACE,oBAAC,wBAAD;EAAwB,OAAO,OAAO;YACpC,oBAAC,gBAAD,EAAiB,UAA0B,CAAA;EACpB,CAAA;EAE3B;;;;AAKF,MAAM,cAAc;AAEpB,MAAM,SAAS,WAAW,OAAO,EAC/B,MAAM,EACJ,MAAM,GACP,EACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayPortal.js","names":[],"sources":["../../../../src/components/internal/Overlay/OverlayPortal.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport { FullWindowOverlay } from 'react-native-screens';\n\nimport { Portal, usePortalContext } from '../../../portal';\nimport type { OverlayPortalProps } from './types';\n\n/**\n * Internal portal wrapper for mobile overlays.\n *\n * Uses `FullWindowOverlay` on iOS when requested, otherwise renders through the UDS portal host.\n */\nfunction OverlayPortal({ children, useFullWindowOverlay = true }: OverlayPortalProps) {\n // Always assert
|
|
1
|
+
{"version":3,"file":"OverlayPortal.js","names":[],"sources":["../../../../src/components/internal/Overlay/OverlayPortal.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport { FullWindowOverlay } from 'react-native-screens';\n\nimport { Portal, usePortalContext } from '../../../portal';\nimport type { OverlayPortalProps } from './types';\n\n/**\n * Internal portal wrapper for mobile overlays.\n *\n * Uses `FullWindowOverlay` on iOS when requested, otherwise renders through the UDS portal host.\n */\nfunction OverlayPortal({ children, useFullWindowOverlay = true }: OverlayPortalProps) {\n // Always assert UDSGestureProvider presence, even when iOS renders through FullWindowOverlay.\n usePortalContext();\n\n if (Platform.OS === 'ios' && useFullWindowOverlay) {\n return <FullWindowOverlay>{children}</FullWindowOverlay>;\n }\n\n return <Portal>{children}</Portal>;\n}\n\nexport { OverlayPortal };\n"],"mappings":";;;;;;;;;;;AAWA,SAAS,cAAc,EAAE,UAAU,uBAAuB,QAA4B;CAEpF,kBAAkB;CAElB,IAAI,SAAS,OAAO,SAAS,sBAC3B,OAAO,oBAAC,mBAAD,EAAoB,UAA6B,CAAA;CAG1D,OAAO,oBAAC,QAAD,EAAS,UAAkB,CAAA"}
|
|
@@ -52,12 +52,13 @@ const defaultFoundation = {
|
|
|
52
52
|
boxShadow: ""
|
|
53
53
|
};
|
|
54
54
|
function createStyleObject(baseStyles = {}) {
|
|
55
|
-
|
|
55
|
+
const useVariants = jest.fn();
|
|
56
|
+
const proxy = new Proxy({
|
|
56
57
|
...defaultFoundation,
|
|
57
58
|
...baseStyles,
|
|
58
|
-
useVariants
|
|
59
|
+
useVariants
|
|
59
60
|
}, { get(target, prop) {
|
|
60
|
-
if (prop === "useVariants") return
|
|
61
|
+
if (prop === "useVariants") return useVariants;
|
|
61
62
|
if (prop in target) return target[prop];
|
|
62
63
|
if (typeof prop === "string") {
|
|
63
64
|
if (prop.includes("color") || prop.includes("Color")) return "#000000";
|
|
@@ -68,15 +69,20 @@ function createStyleObject(baseStyles = {}) {
|
|
|
68
69
|
if (prop.includes("gap") || prop.includes("Gap")) return 0;
|
|
69
70
|
}
|
|
70
71
|
} });
|
|
72
|
+
useVariants.mockReturnValue(proxy);
|
|
73
|
+
return proxy;
|
|
71
74
|
}
|
|
72
75
|
function createComponentStyles(styleKeys) {
|
|
73
|
-
const
|
|
76
|
+
const useVariants = jest.fn();
|
|
77
|
+
const result = { useVariants };
|
|
74
78
|
for (const [key, baseStyles] of Object.entries(styleKeys)) result[key] = createStyleObject(baseStyles);
|
|
75
|
-
|
|
76
|
-
if (prop === "useVariants") return
|
|
79
|
+
const proxy = new Proxy(result, { get(target, prop) {
|
|
80
|
+
if (prop === "useVariants") return useVariants;
|
|
77
81
|
if (prop in target) return target[prop];
|
|
78
82
|
if (typeof prop === "string") return createStyleObject();
|
|
79
83
|
} });
|
|
84
|
+
useVariants.mockReturnValue(proxy);
|
|
85
|
+
return proxy;
|
|
80
86
|
}
|
|
81
87
|
const styles = createComponentStyles({ foundation: defaultFoundation });
|
|
82
88
|
const buttonStyles = createComponentStyles({
|
|
@@ -182,19 +188,25 @@ const switchStyles = createComponentStyles({
|
|
|
182
188
|
alignItems: "center",
|
|
183
189
|
gap: 8
|
|
184
190
|
},
|
|
185
|
-
|
|
191
|
+
switch: {
|
|
186
192
|
width: 48,
|
|
187
193
|
height: 28,
|
|
188
194
|
borderRadius: 14,
|
|
189
195
|
backgroundColor: "#E0E0E0"
|
|
190
196
|
},
|
|
191
|
-
|
|
197
|
+
handle: {
|
|
192
198
|
width: 24,
|
|
193
199
|
height: 24,
|
|
194
200
|
borderRadius: 12,
|
|
195
201
|
backgroundColor: "#FFFFFF"
|
|
196
202
|
},
|
|
197
|
-
|
|
203
|
+
handleIcon: {
|
|
204
|
+
fontSize: 16,
|
|
205
|
+
iconSizeToken: "sm",
|
|
206
|
+
lineHeight: 16,
|
|
207
|
+
color: "#000000"
|
|
208
|
+
},
|
|
209
|
+
text: {
|
|
198
210
|
fontFamily: "YahooProductSans-Regular",
|
|
199
211
|
fontSize: 14,
|
|
200
212
|
lineHeight: 20,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.cts","names":[],"sources":["../../../src/jest/mocks/styles.ts"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"styles.d.cts","names":[],"sources":["../../../src/jest/mocks/styles.ts"],"mappings":";;;;;;;;;;cA8Ga,MAAA,EAAM,MAAA;AAAA,cAKN,YAAA,EAAY,MAAA;AAAA,cAgCZ,UAAA,EAAU,MAAA;AAAA,cAUV,WAAA,EAAW,MAAA;AAAA,cAuCX,cAAA,EAAc,MAAA;AAAA,cA2Bd,YAAA,EAAY,MAAA;AAAA,cAkCZ,YAAA,EAAY,MAAA;AAAA,cAqBZ,WAAA,EAAW,MAAA;AAAA,cAmBX,UAAA,EAAU,MAAA;AAAA,cAsBV,aAAA,EAAa,MAAA;AAAA,cAiBb,UAAA,EAAU,MAAA;AAAA,cAgBV,WAAA,EAAW,MAAA;AAAA,cA8BX,gBAAA,EAAgB,MAAA;AAAA,cAehB,iBAAA,EAAiB,MAAA;AAAA,cA0BjB,WAAA,EAAW,MAAA;AAAA,cASX,aAAA,EAAa,MAAA;AAAA,cAmCb,UAAA,EAAU,MAAA;AAAA,cASV,gBAAA,EAAgB,MAAA;AAAA,cAuBhB,WAAA,EAAW,MAAA;AAAA,cAuCX,WAAA,EAAW,MAAA;AAAA,UAiDP,UAAA;EACf,KAAA;EACA,eAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EAAA,CACC,GAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","names":[],"sources":["../../../src/jest/mocks/styles.ts"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"styles.d.ts","names":[],"sources":["../../../src/jest/mocks/styles.ts"],"mappings":";;;;;;;;;;cA8Ga,MAAA,EAAM,MAAA;AAAA,cAKN,YAAA,EAAY,MAAA;AAAA,cAgCZ,UAAA,EAAU,MAAA;AAAA,cAUV,WAAA,EAAW,MAAA;AAAA,cAuCX,cAAA,EAAc,MAAA;AAAA,cA2Bd,YAAA,EAAY,MAAA;AAAA,cAkCZ,YAAA,EAAY,MAAA;AAAA,cAqBZ,WAAA,EAAW,MAAA;AAAA,cAmBX,UAAA,EAAU,MAAA;AAAA,cAsBV,aAAA,EAAa,MAAA;AAAA,cAiBb,UAAA,EAAU,MAAA;AAAA,cAgBV,WAAA,EAAW,MAAA;AAAA,cA8BX,gBAAA,EAAgB,MAAA;AAAA,cAehB,iBAAA,EAAiB,MAAA;AAAA,cA0BjB,WAAA,EAAW,MAAA;AAAA,cASX,aAAA,EAAa,MAAA;AAAA,cAmCb,UAAA,EAAU,MAAA;AAAA,cASV,gBAAA,EAAgB,MAAA;AAAA,cAuBhB,WAAA,EAAW,MAAA;AAAA,cAuCX,WAAA,EAAW,MAAA;AAAA,UAiDP,UAAA;EACf,KAAA;EACA,eAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EAAA,CACC,GAAA;AAAA"}
|
|
@@ -52,12 +52,13 @@ const defaultFoundation = {
|
|
|
52
52
|
boxShadow: ""
|
|
53
53
|
};
|
|
54
54
|
function createStyleObject(baseStyles = {}) {
|
|
55
|
-
|
|
55
|
+
const useVariants = jest.fn();
|
|
56
|
+
const proxy = new Proxy({
|
|
56
57
|
...defaultFoundation,
|
|
57
58
|
...baseStyles,
|
|
58
|
-
useVariants
|
|
59
|
+
useVariants
|
|
59
60
|
}, { get(target, prop) {
|
|
60
|
-
if (prop === "useVariants") return
|
|
61
|
+
if (prop === "useVariants") return useVariants;
|
|
61
62
|
if (prop in target) return target[prop];
|
|
62
63
|
if (typeof prop === "string") {
|
|
63
64
|
if (prop.includes("color") || prop.includes("Color")) return "#000000";
|
|
@@ -68,15 +69,20 @@ function createStyleObject(baseStyles = {}) {
|
|
|
68
69
|
if (prop.includes("gap") || prop.includes("Gap")) return 0;
|
|
69
70
|
}
|
|
70
71
|
} });
|
|
72
|
+
useVariants.mockReturnValue(proxy);
|
|
73
|
+
return proxy;
|
|
71
74
|
}
|
|
72
75
|
function createComponentStyles(styleKeys) {
|
|
73
|
-
const
|
|
76
|
+
const useVariants = jest.fn();
|
|
77
|
+
const result = { useVariants };
|
|
74
78
|
for (const [key, baseStyles] of Object.entries(styleKeys)) result[key] = createStyleObject(baseStyles);
|
|
75
|
-
|
|
76
|
-
if (prop === "useVariants") return
|
|
79
|
+
const proxy = new Proxy(result, { get(target, prop) {
|
|
80
|
+
if (prop === "useVariants") return useVariants;
|
|
77
81
|
if (prop in target) return target[prop];
|
|
78
82
|
if (typeof prop === "string") return createStyleObject();
|
|
79
83
|
} });
|
|
84
|
+
useVariants.mockReturnValue(proxy);
|
|
85
|
+
return proxy;
|
|
80
86
|
}
|
|
81
87
|
const styles = createComponentStyles({ foundation: defaultFoundation });
|
|
82
88
|
const buttonStyles = createComponentStyles({
|
|
@@ -182,19 +188,25 @@ const switchStyles = createComponentStyles({
|
|
|
182
188
|
alignItems: "center",
|
|
183
189
|
gap: 8
|
|
184
190
|
},
|
|
185
|
-
|
|
191
|
+
switch: {
|
|
186
192
|
width: 48,
|
|
187
193
|
height: 28,
|
|
188
194
|
borderRadius: 14,
|
|
189
195
|
backgroundColor: "#E0E0E0"
|
|
190
196
|
},
|
|
191
|
-
|
|
197
|
+
handle: {
|
|
192
198
|
width: 24,
|
|
193
199
|
height: 24,
|
|
194
200
|
borderRadius: 12,
|
|
195
201
|
backgroundColor: "#FFFFFF"
|
|
196
202
|
},
|
|
197
|
-
|
|
203
|
+
handleIcon: {
|
|
204
|
+
fontSize: 16,
|
|
205
|
+
iconSizeToken: "sm",
|
|
206
|
+
lineHeight: 16,
|
|
207
|
+
color: "#000000"
|
|
208
|
+
},
|
|
209
|
+
text: {
|
|
198
210
|
fontFamily: "YahooProductSans-Regular",
|
|
199
211
|
fontSize: 14,
|
|
200
212
|
lineHeight: 20,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","names":[],"sources":["../../../src/jest/mocks/styles.ts"],"sourcesContent":["/**\n * Jest mock for generated/styles.\n *\n * Provides proxy-based mocks for the generated style objects\n * (styles, buttonStyles, etc.) with useVariants as a no-op.\n */\n\n/// <reference types=\"jest\" />\n\n// Default style values for foundation\nconst defaultFoundation = {\n // Layout\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n justifyContent: 'flex-start',\n // Spacing\n padding: 0,\n paddingHorizontal: 0,\n paddingVertical: 0,\n margin: 0,\n gap: 0,\n // Colors\n backgroundColor: 'transparent',\n color: '#000000',\n borderColor: 'transparent',\n // Border\n borderWidth: 0,\n borderRadius: 0,\n // Typography\n fontFamily: 'System',\n fontSize: 14,\n lineHeight: 20,\n fontWeight: 'regular',\n // Effects\n opacity: 1,\n boxShadow: '',\n};\n\n// Create a style object with useVariants attached\nfunction createStyleObject(baseStyles: Record<string, unknown> = {}) {\n const proxy = new Proxy(\n { ...defaultFoundation, ...baseStyles, useVariants: jest.fn() },\n {\n get(target, prop) {\n if (prop === 'useVariants') {\n return jest.fn();\n }\n if (prop in target) {\n return target[prop as keyof typeof target];\n }\n // Return sensible defaults for unknown properties\n if (typeof prop === 'string') {\n if (prop.includes('color') || prop.includes('Color')) {\n return '#000000';\n }\n if (prop.includes('width') || prop.includes('Width')) {\n return 0;\n }\n if (prop.includes('radius') || prop.includes('Radius')) {\n return 0;\n }\n if (prop.includes('size') || prop.includes('Size')) {\n return 16;\n }\n if (prop.includes('spacing') || prop.includes('Spacing')) {\n return 0;\n }\n if (prop.includes('gap') || prop.includes('Gap')) {\n return 0;\n }\n }\n return undefined;\n },\n },\n );\n return proxy;\n}\n\n// Create a component style object (like buttonStyles) with multiple style keys\nfunction createComponentStyles(styleKeys: Record<string, Record<string, unknown>>) {\n const result: Record<string, unknown> = { useVariants: jest.fn() };\n\n for (const [key, baseStyles] of Object.entries(styleKeys)) {\n result[key] = createStyleObject(baseStyles);\n }\n\n return new Proxy(result, {\n get(target, prop) {\n if (prop === 'useVariants') {\n return jest.fn();\n }\n if (prop in target) {\n return target[prop as keyof typeof target];\n }\n // Return a default style object for any unknown key\n if (typeof prop === 'string') {\n return createStyleObject();\n }\n return undefined;\n },\n });\n}\n\n// Main styles export\nexport const styles = createComponentStyles({\n foundation: defaultFoundation,\n});\n\n// Button styles\nexport const buttonStyles = createComponentStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n paddingHorizontal: 16,\n paddingVertical: 10,\n backgroundColor: '#6001D2',\n borderRadius: 8,\n borderWidth: 0,\n borderColor: 'transparent',\n opacity: 1,\n boxShadow: '',\n },\n text: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 14,\n letterSpacing: 0,\n lineHeight: 20,\n color: '#FFFFFF',\n },\n icon: {\n fontSize: 16,\n iconSizeToken: 'sm',\n lineHeight: 16,\n color: '#FFFFFF',\n },\n});\n\n// Text styles\nexport const textStyles = createComponentStyles({\n root: {\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 14,\n lineHeight: 20,\n color: '#000000',\n },\n});\n\n// Input styles\nexport const inputStyles = createComponentStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n },\n label: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 14,\n lineHeight: 20,\n color: '#000000',\n },\n inputContainer: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n paddingHorizontal: 12,\n paddingVertical: 10,\n backgroundColor: '#FFFFFF',\n borderRadius: 8,\n borderWidth: 1,\n borderColor: '#E0E0E0',\n },\n input: {\n flex: 1,\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 16,\n lineHeight: 24,\n color: '#000000',\n },\n helperText: {\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 12,\n lineHeight: 16,\n color: '#666666',\n },\n});\n\n// Checkbox styles\nexport const checkboxStyles = createComponentStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n checkbox: {\n width: 20,\n height: 20,\n borderRadius: 4,\n borderWidth: 2,\n borderColor: '#6001D2',\n backgroundColor: 'transparent',\n },\n checkboxIcon: {\n color: '#6001D2',\n },\n text: {\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 14,\n lineHeight: 20,\n color: '#000000',\n },\n});\n\n// Switch styles\nexport const switchStyles = createComponentStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n track: {\n width: 48,\n height: 28,\n borderRadius: 14,\n backgroundColor: '#E0E0E0',\n },\n thumb: {\n width: 24,\n height: 24,\n borderRadius: 12,\n backgroundColor: '#FFFFFF',\n },\n label: {\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 14,\n lineHeight: 20,\n color: '#000000',\n },\n});\n\n// Avatar styles\nexport const avatarStyles = createComponentStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 9999,\n backgroundColor: '#E0E0E0',\n overflow: 'hidden',\n },\n image: {\n width: '100%',\n height: '100%',\n },\n initials: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 14,\n color: '#000000',\n },\n});\n\n// Badge styles\nexport const badgeStyles = createComponentStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n paddingHorizontal: 8,\n paddingVertical: 2,\n borderRadius: 4,\n backgroundColor: '#E0E0E0',\n },\n text: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 12,\n lineHeight: 16,\n color: '#000000',\n },\n});\n\n// Chip styles\nexport const chipStyles = createComponentStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n paddingHorizontal: 12,\n paddingVertical: 6,\n borderRadius: 16,\n backgroundColor: '#F5F5F5',\n borderWidth: 1,\n borderColor: '#E0E0E0',\n },\n text: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 14,\n lineHeight: 20,\n color: '#000000',\n },\n});\n\n// Divider styles\nexport const dividerStyles = createComponentStyles({\n root: {\n gap: 8,\n },\n label: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 12,\n lineHeight: 16,\n color: '#000000',\n },\n line: {\n borderWidth: 1,\n borderColor: '#E0E0E0',\n },\n});\n\n// Link styles\nexport const linkStyles = createComponentStyles({\n root: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n },\n text: {\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 14,\n lineHeight: 20,\n color: '#6001D2',\n textDecorationLine: 'underline',\n },\n});\n\n// Radio styles\nexport const radioStyles = createComponentStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n circle: {\n width: 20,\n height: 20,\n borderRadius: 10,\n borderWidth: 2,\n borderColor: '#6001D2',\n backgroundColor: 'transparent',\n },\n dot: {\n width: 10,\n height: 10,\n borderRadius: 5,\n backgroundColor: '#6001D2',\n },\n label: {\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 14,\n lineHeight: 20,\n color: '#000000',\n },\n});\n\n// IconButton styles\nexport const iconButtonStyles = createComponentStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 8,\n backgroundColor: 'transparent',\n },\n icon: {\n fontSize: 24,\n color: '#000000',\n },\n});\n\n// BottomSheet styles\nexport const bottomSheetStyles = createComponentStyles({\n root: {\n backgroundColor: '#ffffff',\n backgroundBlurColor: '#ffffff',\n backgroundBlurRadius: 0,\n borderColor: '#e0e0e0',\n borderWidth: 1,\n borderRadius: 16,\n paddingHorizontal: 16,\n paddingVertical: 8,\n marginHorizontal: 8,\n marginBottom: 8,\n },\n header: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 16,\n letterSpacing: 0,\n lineHeight: 20,\n color: '#000000',\n },\n handleIndicator: {\n backgroundColor: '#999999',\n },\n});\n\n// Scrim styles\nexport const scrimStyles = createComponentStyles({\n root: {\n backgroundColor: '#000000',\n opacity: 0.2,\n backgroundBlurRadius: 0,\n },\n});\n\n// Popover styles\nexport const popoverStyles = createComponentStyles({\n root: {\n boxShadow: '0px 8px 16px rgba(0, 0, 0, 0.12)',\n },\n blur: {\n backgroundBlurRadius: 0,\n },\n closeIcon: {\n fontSize: 16,\n iconSizeToken: 'sm',\n lineHeight: 16,\n color: '#000000',\n },\n closeIconContainer: {\n padding: 8,\n },\n contentWrapper: {\n gap: 8,\n paddingHorizontal: 16,\n paddingVertical: 16,\n },\n svgBase: {\n borderRadius: 16,\n backgroundBlurColor: '#ffffff',\n backgroundBlurRadius: 0,\n backgroundColor: '#ffffff',\n backgroundOpacity: 1,\n },\n svgBorder: {\n borderColor: '#e0e0e0',\n borderWidth: 1,\n },\n});\n\n// Tabs (tab list chrome)\nexport const tabsStyles = createComponentStyles({\n root: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n});\n\n// Pagination styles\nexport const paginationStyles = createComponentStyles({\n root: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n },\n item: {\n alignItems: 'center',\n justifyContent: 'center',\n padding: 8,\n borderRadius: 999,\n },\n text: {\n fontSize: 14,\n lineHeight: 16,\n },\n icon: {\n fontSize: 16,\n lineHeight: 16,\n },\n});\n\n// Toast styles\nexport const toastStyles = createComponentStyles({\n root: {\n alignItems: 'center',\n backgroundBlurColor: 'rgba(255, 255, 255, 0.9)',\n backgroundBlurRadius: 0,\n backgroundColor: '#FFFFFF',\n borderColor: '#E0E0E0',\n borderRadius: 12,\n borderWidth: 1,\n boxShadow: '',\n flexDirection: 'row',\n gap: 8,\n paddingHorizontal: 12,\n paddingVertical: 10,\n },\n text: {\n color: '#000000',\n },\n icon: {\n color: '#000000',\n fontSize: 16,\n iconSizeToken: 'md',\n lineHeight: 16,\n },\n closeIcon: {\n color: '#000000',\n fontSize: 12,\n iconSizeToken: 'sm',\n lineHeight: 12,\n },\n label: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 14,\n letterSpacing: 0,\n lineHeight: 20,\n },\n});\n\n// Modal styles\nexport const modalStyles = createComponentStyles({\n root: {\n backgroundBlurColor: 'rgba(255, 255, 255, 0.9)',\n backgroundBlurRadius: 0,\n backgroundColor: '#FFFFFF',\n borderColor: '#E0E0E0',\n borderRadius: 16,\n borderWidth: 1,\n boxShadow: '',\n paddingVertical: 32,\n },\n actions: {\n gap: 12,\n },\n closeIcon: {\n color: '#000000',\n fontSize: 24,\n iconSizeToken: 'md',\n lineHeight: 24,\n },\n closeIconContainer: {\n padding: 8,\n },\n description: {\n color: '#000000',\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 18,\n letterSpacing: 0,\n lineHeight: 28,\n },\n scrim: {\n padding: 32,\n },\n spacingHorizontal: {\n paddingHorizontal: 32,\n },\n title: {\n color: '#000000',\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 28,\n letterSpacing: 0,\n lineHeight: 36,\n },\n titleDescriptionWrapper: {\n gap: 8,\n },\n});\n\n// Type for StyleProps\nexport interface StyleProps {\n color?: string;\n backgroundColor?: string;\n borderColor?: string;\n borderWidth?: number;\n borderRadius?: number;\n [key: string]: unknown;\n}\n"],"mappings":"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AsB;EACtB,iBAAiB;EACjB,aAAa;EACb,cAAc;EACd,aAAa;EACb,WAAW;EACX,eAAe;EACf,KAAK;EACL,mBAAmB;EACnB,iBAAiB;EAClB;CACD,MAAM,EACJ,OAAO,WACR;CACD,MAAM;EACJ,OAAO;EACP,UAAU;EACV,eAAe;EACf,YAAY;EACb;CACD,WAAW;EACT,OAAO;EACP,UAAU;EACV,eAAe;EACf,YAAY;EACb;CACD,OAAO;EACL,YAAY;EACZ,UAAU;EACV,eAAe;EACf,YAAY;EACb;CACF,CAAC;AAGF,MAAa,cAAc,sBAAsB;CAC/C,MAAM;EACJ,qBAAqB;EACrB,sBAAsB;EACtB,iBAAiB;EACjB,aAAa;EACb,cAAc;EACd,aAAa;EACb,WAAW;EACX,iBAAiB;EAClB;CACD,SAAS,EACP,KAAK,IACN;CACD,WAAW;EACT,OAAO;EACP,UAAU;EACV,eAAe;EACf,YAAY;EACb;CACD,oBAAoB,EAClB,SAAS,GACV;CACD,aAAa;EACX,OAAO;EACP,YAAY;EACZ,UAAU;EACV,eAAe;EACf,YAAY;EACb;CACD,OAAO,EACL,SAAS,IACV;CACD,mBAAmB,EACjB,mBAAmB,IACpB;CACD,OAAO;EACL,OAAO;EACP,YAAY;EACZ,UAAU;EACV,eAAe;EACf,YAAY;EACb;CACD,yBAAyB,EACvB,KAAK,GACN;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"styles.js","names":[],"sources":["../../../src/jest/mocks/styles.ts"],"sourcesContent":["/**\n * Jest mock for generated/styles.\n *\n * Provides proxy-based mocks for the generated style objects\n * (styles, buttonStyles, etc.) with useVariants as a no-op.\n */\n\n/// <reference types=\"jest\" />\n\n// Default style values for foundation\nconst defaultFoundation = {\n // Layout\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n justifyContent: 'flex-start',\n // Spacing\n padding: 0,\n paddingHorizontal: 0,\n paddingVertical: 0,\n margin: 0,\n gap: 0,\n // Colors\n backgroundColor: 'transparent',\n color: '#000000',\n borderColor: 'transparent',\n // Border\n borderWidth: 0,\n borderRadius: 0,\n // Typography\n fontFamily: 'System',\n fontSize: 14,\n lineHeight: 20,\n fontWeight: 'regular',\n // Effects\n opacity: 1,\n boxShadow: '',\n};\n\n// Create a style object with useVariants attached\nfunction createStyleObject(baseStyles: Record<string, unknown> = {}) {\n const useVariants = jest.fn();\n const proxy = new Proxy(\n { ...defaultFoundation, ...baseStyles, useVariants },\n {\n get(target, prop) {\n if (prop === 'useVariants') {\n return useVariants;\n }\n if (prop in target) {\n return target[prop as keyof typeof target];\n }\n // Return sensible defaults for unknown properties\n if (typeof prop === 'string') {\n if (prop.includes('color') || prop.includes('Color')) {\n return '#000000';\n }\n if (prop.includes('width') || prop.includes('Width')) {\n return 0;\n }\n if (prop.includes('radius') || prop.includes('Radius')) {\n return 0;\n }\n if (prop.includes('size') || prop.includes('Size')) {\n return 16;\n }\n if (prop.includes('spacing') || prop.includes('Spacing')) {\n return 0;\n }\n if (prop.includes('gap') || prop.includes('Gap')) {\n return 0;\n }\n }\n return undefined;\n },\n },\n );\n useVariants.mockReturnValue(proxy);\n return proxy;\n}\n\n// Create a component style object (like buttonStyles) with multiple style keys\nfunction createComponentStyles(styleKeys: Record<string, Record<string, unknown>>) {\n const useVariants = jest.fn();\n const result: Record<string, unknown> = { useVariants };\n\n for (const [key, baseStyles] of Object.entries(styleKeys)) {\n result[key] = createStyleObject(baseStyles);\n }\n\n const proxy = new Proxy(result, {\n get(target, prop) {\n if (prop === 'useVariants') {\n return useVariants;\n }\n if (prop in target) {\n return target[prop as keyof typeof target];\n }\n // Return a default style object for any unknown key\n if (typeof prop === 'string') {\n return createStyleObject();\n }\n return undefined;\n },\n });\n useVariants.mockReturnValue(proxy);\n return proxy;\n}\n\n// Main styles export\nexport const styles = createComponentStyles({\n foundation: defaultFoundation,\n});\n\n// Button styles\nexport const buttonStyles = createComponentStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 8,\n paddingHorizontal: 16,\n paddingVertical: 10,\n backgroundColor: '#6001D2',\n borderRadius: 8,\n borderWidth: 0,\n borderColor: 'transparent',\n opacity: 1,\n boxShadow: '',\n },\n text: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 14,\n letterSpacing: 0,\n lineHeight: 20,\n color: '#FFFFFF',\n },\n icon: {\n fontSize: 16,\n iconSizeToken: 'sm',\n lineHeight: 16,\n color: '#FFFFFF',\n },\n});\n\n// Text styles\nexport const textStyles = createComponentStyles({\n root: {\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 14,\n lineHeight: 20,\n color: '#000000',\n },\n});\n\n// Input styles\nexport const inputStyles = createComponentStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n },\n label: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 14,\n lineHeight: 20,\n color: '#000000',\n },\n inputContainer: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n paddingHorizontal: 12,\n paddingVertical: 10,\n backgroundColor: '#FFFFFF',\n borderRadius: 8,\n borderWidth: 1,\n borderColor: '#E0E0E0',\n },\n input: {\n flex: 1,\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 16,\n lineHeight: 24,\n color: '#000000',\n },\n helperText: {\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 12,\n lineHeight: 16,\n color: '#666666',\n },\n});\n\n// Checkbox styles\nexport const checkboxStyles = createComponentStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n checkbox: {\n width: 20,\n height: 20,\n borderRadius: 4,\n borderWidth: 2,\n borderColor: '#6001D2',\n backgroundColor: 'transparent',\n },\n checkboxIcon: {\n color: '#6001D2',\n },\n text: {\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 14,\n lineHeight: 20,\n color: '#000000',\n },\n});\n\n// Switch styles\nexport const switchStyles = createComponentStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n switch: {\n width: 48,\n height: 28,\n borderRadius: 14,\n backgroundColor: '#E0E0E0',\n },\n handle: {\n width: 24,\n height: 24,\n borderRadius: 12,\n backgroundColor: '#FFFFFF',\n },\n handleIcon: {\n fontSize: 16,\n iconSizeToken: 'sm',\n lineHeight: 16,\n color: '#000000',\n },\n text: {\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 14,\n lineHeight: 20,\n color: '#000000',\n },\n});\n\n// Avatar styles\nexport const avatarStyles = createComponentStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 9999,\n backgroundColor: '#E0E0E0',\n overflow: 'hidden',\n },\n image: {\n width: '100%',\n height: '100%',\n },\n initials: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 14,\n color: '#000000',\n },\n});\n\n// Badge styles\nexport const badgeStyles = createComponentStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n paddingHorizontal: 8,\n paddingVertical: 2,\n borderRadius: 4,\n backgroundColor: '#E0E0E0',\n },\n text: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 12,\n lineHeight: 16,\n color: '#000000',\n },\n});\n\n// Chip styles\nexport const chipStyles = createComponentStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n paddingHorizontal: 12,\n paddingVertical: 6,\n borderRadius: 16,\n backgroundColor: '#F5F5F5',\n borderWidth: 1,\n borderColor: '#E0E0E0',\n },\n text: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 14,\n lineHeight: 20,\n color: '#000000',\n },\n});\n\n// Divider styles\nexport const dividerStyles = createComponentStyles({\n root: {\n gap: 8,\n },\n label: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 12,\n lineHeight: 16,\n color: '#000000',\n },\n line: {\n borderWidth: 1,\n borderColor: '#E0E0E0',\n },\n});\n\n// Link styles\nexport const linkStyles = createComponentStyles({\n root: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n },\n text: {\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 14,\n lineHeight: 20,\n color: '#6001D2',\n textDecorationLine: 'underline',\n },\n});\n\n// Radio styles\nexport const radioStyles = createComponentStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n circle: {\n width: 20,\n height: 20,\n borderRadius: 10,\n borderWidth: 2,\n borderColor: '#6001D2',\n backgroundColor: 'transparent',\n },\n dot: {\n width: 10,\n height: 10,\n borderRadius: 5,\n backgroundColor: '#6001D2',\n },\n label: {\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 14,\n lineHeight: 20,\n color: '#000000',\n },\n});\n\n// IconButton styles\nexport const iconButtonStyles = createComponentStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 8,\n backgroundColor: 'transparent',\n },\n icon: {\n fontSize: 24,\n color: '#000000',\n },\n});\n\n// BottomSheet styles\nexport const bottomSheetStyles = createComponentStyles({\n root: {\n backgroundColor: '#ffffff',\n backgroundBlurColor: '#ffffff',\n backgroundBlurRadius: 0,\n borderColor: '#e0e0e0',\n borderWidth: 1,\n borderRadius: 16,\n paddingHorizontal: 16,\n paddingVertical: 8,\n marginHorizontal: 8,\n marginBottom: 8,\n },\n header: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 16,\n letterSpacing: 0,\n lineHeight: 20,\n color: '#000000',\n },\n handleIndicator: {\n backgroundColor: '#999999',\n },\n});\n\n// Scrim styles\nexport const scrimStyles = createComponentStyles({\n root: {\n backgroundColor: '#000000',\n opacity: 0.2,\n backgroundBlurRadius: 0,\n },\n});\n\n// Popover styles\nexport const popoverStyles = createComponentStyles({\n root: {\n boxShadow: '0px 8px 16px rgba(0, 0, 0, 0.12)',\n },\n blur: {\n backgroundBlurRadius: 0,\n },\n closeIcon: {\n fontSize: 16,\n iconSizeToken: 'sm',\n lineHeight: 16,\n color: '#000000',\n },\n closeIconContainer: {\n padding: 8,\n },\n contentWrapper: {\n gap: 8,\n paddingHorizontal: 16,\n paddingVertical: 16,\n },\n svgBase: {\n borderRadius: 16,\n backgroundBlurColor: '#ffffff',\n backgroundBlurRadius: 0,\n backgroundColor: '#ffffff',\n backgroundOpacity: 1,\n },\n svgBorder: {\n borderColor: '#e0e0e0',\n borderWidth: 1,\n },\n});\n\n// Tabs (tab list chrome)\nexport const tabsStyles = createComponentStyles({\n root: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 8,\n },\n});\n\n// Pagination styles\nexport const paginationStyles = createComponentStyles({\n root: {\n flexDirection: 'row',\n alignItems: 'center',\n gap: 4,\n },\n item: {\n alignItems: 'center',\n justifyContent: 'center',\n padding: 8,\n borderRadius: 999,\n },\n text: {\n fontSize: 14,\n lineHeight: 16,\n },\n icon: {\n fontSize: 16,\n lineHeight: 16,\n },\n});\n\n// Toast styles\nexport const toastStyles = createComponentStyles({\n root: {\n alignItems: 'center',\n backgroundBlurColor: 'rgba(255, 255, 255, 0.9)',\n backgroundBlurRadius: 0,\n backgroundColor: '#FFFFFF',\n borderColor: '#E0E0E0',\n borderRadius: 12,\n borderWidth: 1,\n boxShadow: '',\n flexDirection: 'row',\n gap: 8,\n paddingHorizontal: 12,\n paddingVertical: 10,\n },\n text: {\n color: '#000000',\n },\n icon: {\n color: '#000000',\n fontSize: 16,\n iconSizeToken: 'md',\n lineHeight: 16,\n },\n closeIcon: {\n color: '#000000',\n fontSize: 12,\n iconSizeToken: 'sm',\n lineHeight: 12,\n },\n label: {\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 14,\n letterSpacing: 0,\n lineHeight: 20,\n },\n});\n\n// Modal styles\nexport const modalStyles = createComponentStyles({\n root: {\n backgroundBlurColor: 'rgba(255, 255, 255, 0.9)',\n backgroundBlurRadius: 0,\n backgroundColor: '#FFFFFF',\n borderColor: '#E0E0E0',\n borderRadius: 16,\n borderWidth: 1,\n boxShadow: '',\n paddingVertical: 32,\n },\n actions: {\n gap: 12,\n },\n closeIcon: {\n color: '#000000',\n fontSize: 24,\n iconSizeToken: 'md',\n lineHeight: 24,\n },\n closeIconContainer: {\n padding: 8,\n },\n description: {\n color: '#000000',\n fontFamily: 'YahooProductSans-Regular',\n fontSize: 18,\n letterSpacing: 0,\n lineHeight: 28,\n },\n scrim: {\n padding: 32,\n },\n spacingHorizontal: {\n paddingHorizontal: 32,\n },\n title: {\n color: '#000000',\n fontFamily: 'YahooProductSans-Medium',\n fontSize: 28,\n letterSpacing: 0,\n lineHeight: 36,\n },\n titleDescriptionWrapper: {\n gap: 8,\n },\n});\n\n// Type for StyleProps\nexport interface StyleProps {\n color?: string;\n backgroundColor?: string;\n borderColor?: string;\n borderWidth?: number;\n borderRadius?: number;\n [key: string]: unknown;\n}\n"],"mappings":"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"}
|
|
@@ -78,7 +78,22 @@ const mockTheme = {
|
|
|
78
78
|
xl: 16,
|
|
79
79
|
full: 9999
|
|
80
80
|
},
|
|
81
|
-
components: {
|
|
81
|
+
components: {
|
|
82
|
+
"switch/variant/default/active/off/handle/rest": { backgroundColor: "#ffffff" },
|
|
83
|
+
"switch/variant/default/active/off/handleIcon/rest": { color: "#666666" },
|
|
84
|
+
"switch/variant/default/active/off/rootText/rest": { color: "#6001D2" },
|
|
85
|
+
"switch/variant/default/active/off/switch/rest": {
|
|
86
|
+
backgroundColor: "#188038",
|
|
87
|
+
borderColor: "#188038"
|
|
88
|
+
},
|
|
89
|
+
"switch/variant/default/active/on/handle/rest": { backgroundColor: "#ffffff" },
|
|
90
|
+
"switch/variant/default/active/on/handleIcon/rest": { color: "#6001D2" },
|
|
91
|
+
"switch/variant/default/active/on/rootText/rest": { color: "#D93025" },
|
|
92
|
+
"switch/variant/default/active/on/switch/rest": {
|
|
93
|
+
backgroundColor: "#D93025",
|
|
94
|
+
borderColor: "#D93025"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
82
97
|
};
|
|
83
98
|
const mockRuntime = {
|
|
84
99
|
themeName: "light",
|
|
@@ -72,7 +72,34 @@ declare const useUnistyles: jest.Mock<{
|
|
|
72
72
|
xl: number;
|
|
73
73
|
full: number;
|
|
74
74
|
};
|
|
75
|
-
components: {
|
|
75
|
+
components: {
|
|
76
|
+
'switch/variant/default/active/off/handle/rest': {
|
|
77
|
+
backgroundColor: string;
|
|
78
|
+
};
|
|
79
|
+
'switch/variant/default/active/off/handleIcon/rest': {
|
|
80
|
+
color: string;
|
|
81
|
+
};
|
|
82
|
+
'switch/variant/default/active/off/rootText/rest': {
|
|
83
|
+
color: string;
|
|
84
|
+
};
|
|
85
|
+
'switch/variant/default/active/off/switch/rest': {
|
|
86
|
+
backgroundColor: string;
|
|
87
|
+
borderColor: string;
|
|
88
|
+
};
|
|
89
|
+
'switch/variant/default/active/on/handle/rest': {
|
|
90
|
+
backgroundColor: string;
|
|
91
|
+
};
|
|
92
|
+
'switch/variant/default/active/on/handleIcon/rest': {
|
|
93
|
+
color: string;
|
|
94
|
+
};
|
|
95
|
+
'switch/variant/default/active/on/rootText/rest': {
|
|
96
|
+
color: string;
|
|
97
|
+
};
|
|
98
|
+
'switch/variant/default/active/on/switch/rest': {
|
|
99
|
+
backgroundColor: string;
|
|
100
|
+
borderColor: string;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
76
103
|
};
|
|
77
104
|
rt: {
|
|
78
105
|
themeName: "light" | "dark";
|
|
@@ -186,7 +213,34 @@ declare const useAnimatedTheme: jest.Mock<{
|
|
|
186
213
|
xl: number;
|
|
187
214
|
full: number;
|
|
188
215
|
};
|
|
189
|
-
components: {
|
|
216
|
+
components: {
|
|
217
|
+
'switch/variant/default/active/off/handle/rest': {
|
|
218
|
+
backgroundColor: string;
|
|
219
|
+
};
|
|
220
|
+
'switch/variant/default/active/off/handleIcon/rest': {
|
|
221
|
+
color: string;
|
|
222
|
+
};
|
|
223
|
+
'switch/variant/default/active/off/rootText/rest': {
|
|
224
|
+
color: string;
|
|
225
|
+
};
|
|
226
|
+
'switch/variant/default/active/off/switch/rest': {
|
|
227
|
+
backgroundColor: string;
|
|
228
|
+
borderColor: string;
|
|
229
|
+
};
|
|
230
|
+
'switch/variant/default/active/on/handle/rest': {
|
|
231
|
+
backgroundColor: string;
|
|
232
|
+
};
|
|
233
|
+
'switch/variant/default/active/on/handleIcon/rest': {
|
|
234
|
+
color: string;
|
|
235
|
+
};
|
|
236
|
+
'switch/variant/default/active/on/rootText/rest': {
|
|
237
|
+
color: string;
|
|
238
|
+
};
|
|
239
|
+
'switch/variant/default/active/on/switch/rest': {
|
|
240
|
+
backgroundColor: string;
|
|
241
|
+
borderColor: string;
|
|
242
|
+
};
|
|
243
|
+
};
|
|
190
244
|
};
|
|
191
245
|
}, [], any>;
|
|
192
246
|
declare const useAnimatedVariantColor: jest.Mock<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unistyles.d.cts","names":[],"sources":["../../../src/jest/mocks/unistyles.ts"],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"unistyles.d.cts","names":[],"sources":["../../../src/jest/mocks/unistyles.ts"],"mappings":";;;;;;;;;;;;cA6HM,YAAA,EAAY,IAAA,CAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKZ,eAAA,EAAe,IAAA,CAAA,IAAA;AAAA,cAwBf,UAAA;;aAGL,IAAA,CAAA,IAAA;AAAA;AAAA,cAEK,gBAAA;;;YAA8B,IAAA,CAAA,IAAA;kBAAA,IAAA,CAAA,IAAA;;;;;;;;;;;;;;;;;;cAK9B,gBAAA,EAAgB,IAAA,CAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAIhB,uBAAA,EAAuB,IAAA,CAAA,IAAA"}
|
|
@@ -72,7 +72,34 @@ declare const useUnistyles: jest.Mock<{
|
|
|
72
72
|
xl: number;
|
|
73
73
|
full: number;
|
|
74
74
|
};
|
|
75
|
-
components: {
|
|
75
|
+
components: {
|
|
76
|
+
'switch/variant/default/active/off/handle/rest': {
|
|
77
|
+
backgroundColor: string;
|
|
78
|
+
};
|
|
79
|
+
'switch/variant/default/active/off/handleIcon/rest': {
|
|
80
|
+
color: string;
|
|
81
|
+
};
|
|
82
|
+
'switch/variant/default/active/off/rootText/rest': {
|
|
83
|
+
color: string;
|
|
84
|
+
};
|
|
85
|
+
'switch/variant/default/active/off/switch/rest': {
|
|
86
|
+
backgroundColor: string;
|
|
87
|
+
borderColor: string;
|
|
88
|
+
};
|
|
89
|
+
'switch/variant/default/active/on/handle/rest': {
|
|
90
|
+
backgroundColor: string;
|
|
91
|
+
};
|
|
92
|
+
'switch/variant/default/active/on/handleIcon/rest': {
|
|
93
|
+
color: string;
|
|
94
|
+
};
|
|
95
|
+
'switch/variant/default/active/on/rootText/rest': {
|
|
96
|
+
color: string;
|
|
97
|
+
};
|
|
98
|
+
'switch/variant/default/active/on/switch/rest': {
|
|
99
|
+
backgroundColor: string;
|
|
100
|
+
borderColor: string;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
76
103
|
};
|
|
77
104
|
rt: {
|
|
78
105
|
themeName: "light" | "dark";
|
|
@@ -186,7 +213,34 @@ declare const useAnimatedTheme: jest.Mock<{
|
|
|
186
213
|
xl: number;
|
|
187
214
|
full: number;
|
|
188
215
|
};
|
|
189
|
-
components: {
|
|
216
|
+
components: {
|
|
217
|
+
'switch/variant/default/active/off/handle/rest': {
|
|
218
|
+
backgroundColor: string;
|
|
219
|
+
};
|
|
220
|
+
'switch/variant/default/active/off/handleIcon/rest': {
|
|
221
|
+
color: string;
|
|
222
|
+
};
|
|
223
|
+
'switch/variant/default/active/off/rootText/rest': {
|
|
224
|
+
color: string;
|
|
225
|
+
};
|
|
226
|
+
'switch/variant/default/active/off/switch/rest': {
|
|
227
|
+
backgroundColor: string;
|
|
228
|
+
borderColor: string;
|
|
229
|
+
};
|
|
230
|
+
'switch/variant/default/active/on/handle/rest': {
|
|
231
|
+
backgroundColor: string;
|
|
232
|
+
};
|
|
233
|
+
'switch/variant/default/active/on/handleIcon/rest': {
|
|
234
|
+
color: string;
|
|
235
|
+
};
|
|
236
|
+
'switch/variant/default/active/on/rootText/rest': {
|
|
237
|
+
color: string;
|
|
238
|
+
};
|
|
239
|
+
'switch/variant/default/active/on/switch/rest': {
|
|
240
|
+
backgroundColor: string;
|
|
241
|
+
borderColor: string;
|
|
242
|
+
};
|
|
243
|
+
};
|
|
190
244
|
};
|
|
191
245
|
}, [], any>;
|
|
192
246
|
declare const useAnimatedVariantColor: jest.Mock<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unistyles.d.ts","names":[],"sources":["../../../src/jest/mocks/unistyles.ts"],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"unistyles.d.ts","names":[],"sources":["../../../src/jest/mocks/unistyles.ts"],"mappings":";;;;;;;;;;;;cA6HM,YAAA,EAAY,IAAA,CAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKZ,eAAA,EAAe,IAAA,CAAA,IAAA;AAAA,cAwBf,UAAA;;aAGL,IAAA,CAAA,IAAA;AAAA;AAAA,cAEK,gBAAA;;;YAA8B,IAAA,CAAA,IAAA;kBAAA,IAAA,CAAA,IAAA;;;;;;;;;;;;;;;;;;cAK9B,gBAAA,EAAgB,IAAA,CAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAIhB,uBAAA,EAAuB,IAAA,CAAA,IAAA"}
|
|
@@ -78,7 +78,22 @@ const mockTheme = {
|
|
|
78
78
|
xl: 16,
|
|
79
79
|
full: 9999
|
|
80
80
|
},
|
|
81
|
-
components: {
|
|
81
|
+
components: {
|
|
82
|
+
"switch/variant/default/active/off/handle/rest": { backgroundColor: "#ffffff" },
|
|
83
|
+
"switch/variant/default/active/off/handleIcon/rest": { color: "#666666" },
|
|
84
|
+
"switch/variant/default/active/off/rootText/rest": { color: "#6001D2" },
|
|
85
|
+
"switch/variant/default/active/off/switch/rest": {
|
|
86
|
+
backgroundColor: "#188038",
|
|
87
|
+
borderColor: "#188038"
|
|
88
|
+
},
|
|
89
|
+
"switch/variant/default/active/on/handle/rest": { backgroundColor: "#ffffff" },
|
|
90
|
+
"switch/variant/default/active/on/handleIcon/rest": { color: "#6001D2" },
|
|
91
|
+
"switch/variant/default/active/on/rootText/rest": { color: "#D93025" },
|
|
92
|
+
"switch/variant/default/active/on/switch/rest": {
|
|
93
|
+
backgroundColor: "#D93025",
|
|
94
|
+
borderColor: "#D93025"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
82
97
|
};
|
|
83
98
|
const mockRuntime = {
|
|
84
99
|
themeName: "light",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unistyles.js","names":[],"sources":["../../../src/jest/mocks/unistyles.ts"],"sourcesContent":["/**\n * Jest mock for react-native-unistyles.\n *\n * Provides minimal implementations of:\n * - useUnistyles() hook\n * - StyleSheet.create() / StyleSheet.configure()\n * - UnistylesRuntime\n */\n\n/// <reference types=\"jest\" />\n\nconst mockTheme = {\n colors: {\n text: {\n primary: '#000000',\n secondary: '#666666',\n tertiary: '#999999',\n muted: '#CCCCCC',\n onColor: '#FFFFFF',\n brand: '#6001D2',\n alert: '#D93025',\n positive: '#188038',\n warning: '#F29900',\n info: '#1A73E8',\n },\n background: {\n primary: '#FFFFFF',\n secondary: '#F5F5F5',\n accent: '#E8E0F0',\n brand: '#6001D2',\n 'brand-secondary': '#F3E8FF',\n alert: '#D93025',\n 'alert-secondary': '#FDECEA',\n positive: '#188038',\n 'positive-secondary': '#E6F4EA',\n warning: '#F29900',\n 'warning-secondary': '#FEF7E0',\n info: '#1A73E8',\n 'info-secondary': '#E8F0FE',\n 'elevation-0': '#FFFFFF',\n 'elevation-1': '#FFFFFF',\n 'elevation-2': '#FFFFFF',\n 'elevation-3': '#FFFFFF',\n 'elevation-4': '#FFFFFF',\n 'elevation-5': '#FFFFFF',\n },\n border: {\n primary: '#E0E0E0',\n secondary: '#CCCCCC',\n },\n },\n spacing: {\n '0': 0,\n '1': 4,\n '2': 8,\n '3': 12,\n '4': 16,\n '5': 20,\n '6': 24,\n '8': 32,\n '10': 40,\n '12': 48,\n },\n borderRadius: {\n none: 0,\n xs: 2,\n sm: 4,\n md: 8,\n lg: 12,\n xl: 16,\n full: 9999,\n },\n components: {},\n};\n\nconst mockRuntime = {\n themeName: 'light' as 'light' | 'dark',\n colorScheme: 'light' as 'light' | 'dark',\n setTheme: jest.fn(),\n setColorScheme: jest.fn(),\n screen: {\n width: 375,\n height: 812,\n },\n insets: {\n top: 44,\n bottom: 34,\n left: 0,\n right: 0,\n },\n statusBar: {\n height: 44,\n },\n navigationBar: {\n height: 0,\n },\n};\n\nconst useUnistyles = jest.fn(() => ({\n theme: mockTheme,\n rt: mockRuntime,\n}));\n\nconst useInitialTheme = jest.fn();\n\n// StyleSheet mock that handles both static and dynamic styles\nconst createStyleSheet = (styleCreator: unknown) => {\n // If it's a function (dynamic styles), call it with mock theme\n if (typeof styleCreator === 'function') {\n const styles = styleCreator(mockTheme, mockRuntime);\n // Add useVariants as a no-op for each style object\n if (styles && typeof styles === 'object') {\n const result = { ...styles };\n for (const key of Object.keys(result)) {\n const styleObj = result[key];\n if (styleObj && typeof styleObj === 'object') {\n (styleObj as Record<string, unknown>).useVariants = jest.fn();\n }\n }\n return result;\n }\n return styles;\n }\n // Static styles, return as-is\n return styleCreator;\n};\n\nconst StyleSheet = {\n create: createStyleSheet,\n configure: jest.fn(),\n};\n\nconst UnistylesRuntime = mockRuntime;\n\n// react-native-unistyles/reanimated exports\n// These are used for animated theme values in components like Button, Switch, Link, IconButton\n\nconst useAnimatedTheme = jest.fn(() => ({\n value: mockTheme,\n}));\n\nconst useAnimatedVariantColor = jest.fn((_path: string, fallback?: string) => ({\n value: fallback ?? '#000000',\n}));\n\n// All exports at the end of the file\nexport {\n StyleSheet,\n UnistylesRuntime,\n useAnimatedTheme,\n useAnimatedVariantColor,\n useInitialTheme,\n useUnistyles,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAWA,MAAM,YAAY;CAChB,QAAQ;EACN,MAAM;GACJ,SAAS;GACT,WAAW;GACX,UAAU;GACV,OAAO;GACP,SAAS;GACT,OAAO;GACP,OAAO;GACP,UAAU;GACV,SAAS;GACT,MAAM;GACP;EACD,YAAY;GACV,SAAS;GACT,WAAW;GACX,QAAQ;GACR,OAAO;GACP,mBAAmB;GACnB,OAAO;GACP,mBAAmB;GACnB,UAAU;GACV,sBAAsB;GACtB,SAAS;GACT,qBAAqB;GACrB,MAAM;GACN,kBAAkB;GAClB,eAAe;GACf,eAAe;GACf,eAAe;GACf,eAAe;GACf,eAAe;GACf,eAAe;GAChB;EACD,QAAQ;GACN,SAAS;GACT,WAAW;GACZ;EACF;CACD,SAAS;EACP,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,MAAM;EACN,MAAM;EACP;CACD,cAAc;EACZ,MAAM;EACN,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,MAAM;EACP;CACD,YAAY,
|
|
1
|
+
{"version":3,"file":"unistyles.js","names":[],"sources":["../../../src/jest/mocks/unistyles.ts"],"sourcesContent":["/**\n * Jest mock for react-native-unistyles.\n *\n * Provides minimal implementations of:\n * - useUnistyles() hook\n * - StyleSheet.create() / StyleSheet.configure()\n * - UnistylesRuntime\n */\n\n/// <reference types=\"jest\" />\n\nconst mockTheme = {\n colors: {\n text: {\n primary: '#000000',\n secondary: '#666666',\n tertiary: '#999999',\n muted: '#CCCCCC',\n onColor: '#FFFFFF',\n brand: '#6001D2',\n alert: '#D93025',\n positive: '#188038',\n warning: '#F29900',\n info: '#1A73E8',\n },\n background: {\n primary: '#FFFFFF',\n secondary: '#F5F5F5',\n accent: '#E8E0F0',\n brand: '#6001D2',\n 'brand-secondary': '#F3E8FF',\n alert: '#D93025',\n 'alert-secondary': '#FDECEA',\n positive: '#188038',\n 'positive-secondary': '#E6F4EA',\n warning: '#F29900',\n 'warning-secondary': '#FEF7E0',\n info: '#1A73E8',\n 'info-secondary': '#E8F0FE',\n 'elevation-0': '#FFFFFF',\n 'elevation-1': '#FFFFFF',\n 'elevation-2': '#FFFFFF',\n 'elevation-3': '#FFFFFF',\n 'elevation-4': '#FFFFFF',\n 'elevation-5': '#FFFFFF',\n },\n border: {\n primary: '#E0E0E0',\n secondary: '#CCCCCC',\n },\n },\n spacing: {\n '0': 0,\n '1': 4,\n '2': 8,\n '3': 12,\n '4': 16,\n '5': 20,\n '6': 24,\n '8': 32,\n '10': 40,\n '12': 48,\n },\n borderRadius: {\n none: 0,\n xs: 2,\n sm: 4,\n md: 8,\n lg: 12,\n xl: 16,\n full: 9999,\n },\n components: {\n 'switch/variant/default/active/off/handle/rest': {\n backgroundColor: '#ffffff',\n },\n 'switch/variant/default/active/off/handleIcon/rest': {\n color: '#666666',\n },\n 'switch/variant/default/active/off/rootText/rest': {\n color: '#6001D2',\n },\n 'switch/variant/default/active/off/switch/rest': {\n backgroundColor: '#188038',\n borderColor: '#188038',\n },\n 'switch/variant/default/active/on/handle/rest': {\n backgroundColor: '#ffffff',\n },\n 'switch/variant/default/active/on/handleIcon/rest': {\n color: '#6001D2',\n },\n 'switch/variant/default/active/on/rootText/rest': {\n color: '#D93025',\n },\n 'switch/variant/default/active/on/switch/rest': {\n backgroundColor: '#D93025',\n borderColor: '#D93025',\n },\n },\n};\n\nconst mockRuntime = {\n themeName: 'light' as 'light' | 'dark',\n colorScheme: 'light' as 'light' | 'dark',\n setTheme: jest.fn(),\n setColorScheme: jest.fn(),\n screen: {\n width: 375,\n height: 812,\n },\n insets: {\n top: 44,\n bottom: 34,\n left: 0,\n right: 0,\n },\n statusBar: {\n height: 44,\n },\n navigationBar: {\n height: 0,\n },\n};\n\nconst useUnistyles = jest.fn(() => ({\n theme: mockTheme,\n rt: mockRuntime,\n}));\n\nconst useInitialTheme = jest.fn();\n\n// StyleSheet mock that handles both static and dynamic styles\nconst createStyleSheet = (styleCreator: unknown) => {\n // If it's a function (dynamic styles), call it with mock theme\n if (typeof styleCreator === 'function') {\n const styles = styleCreator(mockTheme, mockRuntime);\n // Add useVariants as a no-op for each style object\n if (styles && typeof styles === 'object') {\n const result = { ...styles };\n for (const key of Object.keys(result)) {\n const styleObj = result[key];\n if (styleObj && typeof styleObj === 'object') {\n (styleObj as Record<string, unknown>).useVariants = jest.fn();\n }\n }\n return result;\n }\n return styles;\n }\n // Static styles, return as-is\n return styleCreator;\n};\n\nconst StyleSheet = {\n create: createStyleSheet,\n configure: jest.fn(),\n};\n\nconst UnistylesRuntime = mockRuntime;\n\n// react-native-unistyles/reanimated exports\n// These are used for animated theme values in components like Button, Switch, Link, IconButton\n\nconst useAnimatedTheme = jest.fn(() => ({\n value: mockTheme,\n}));\n\nconst useAnimatedVariantColor = jest.fn((_path: string, fallback?: string) => ({\n value: fallback ?? '#000000',\n}));\n\n// All exports at the end of the file\nexport {\n StyleSheet,\n UnistylesRuntime,\n useAnimatedTheme,\n useAnimatedVariantColor,\n useInitialTheme,\n useUnistyles,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAWA,MAAM,YAAY;CAChB,QAAQ;EACN,MAAM;GACJ,SAAS;GACT,WAAW;GACX,UAAU;GACV,OAAO;GACP,SAAS;GACT,OAAO;GACP,OAAO;GACP,UAAU;GACV,SAAS;GACT,MAAM;GACP;EACD,YAAY;GACV,SAAS;GACT,WAAW;GACX,QAAQ;GACR,OAAO;GACP,mBAAmB;GACnB,OAAO;GACP,mBAAmB;GACnB,UAAU;GACV,sBAAsB;GACtB,SAAS;GACT,qBAAqB;GACrB,MAAM;GACN,kBAAkB;GAClB,eAAe;GACf,eAAe;GACf,eAAe;GACf,eAAe;GACf,eAAe;GACf,eAAe;GAChB;EACD,QAAQ;GACN,SAAS;GACT,WAAW;GACZ;EACF;CACD,SAAS;EACP,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,MAAM;EACN,MAAM;EACP;CACD,cAAc;EACZ,MAAM;EACN,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,IAAI;EACJ,MAAM;EACP;CACD,YAAY;EACV,iDAAiD,EAC/C,iBAAiB,WAClB;EACD,qDAAqD,EACnD,OAAO,WACR;EACD,mDAAmD,EACjD,OAAO,WACR;EACD,iDAAiD;GAC/C,iBAAiB;GACjB,aAAa;GACd;EACD,gDAAgD,EAC9C,iBAAiB,WAClB;EACD,oDAAoD,EAClD,OAAO,WACR;EACD,kDAAkD,EAChD,OAAO,WACR;EACD,gDAAgD;GAC9C,iBAAiB;GACjB,aAAa;GACd;EACF;CACF;AAED,MAAM,cAAc;CAClB,WAAW;CACX,aAAa;CACb,UAAU,KAAK,IAAI;CACnB,gBAAgB,KAAK,IAAI;CACzB,QAAQ;EACN,OAAO;EACP,QAAQ;EACT;CACD,QAAQ;EACN,KAAK;EACL,QAAQ;EACR,MAAM;EACN,OAAO;EACR;CACD,WAAW,EACT,QAAQ,IACT;CACD,eAAe,EACb,QAAQ,GACT;CACF;AAED,MAAM,eAAe,KAAK,UAAU;CAClC,OAAO;CACP,IAAI;CACL,EAAE;AAEH,MAAM,kBAAkB,KAAK,IAAI;AAGjC,MAAM,oBAAoB,iBAA0B;CAElD,IAAI,OAAO,iBAAiB,YAAY;EACtC,MAAM,SAAS,aAAa,WAAW,YAAY;EAEnD,IAAI,UAAU,OAAO,WAAW,UAAU;GACxC,MAAM,SAAS,EAAE,GAAG,QAAQ;GAC5B,KAAK,MAAM,OAAO,OAAO,KAAK,OAAO,EAAE;IACrC,MAAM,WAAW,OAAO;IACxB,IAAI,YAAY,OAAO,aAAa,UAClC,SAAsC,cAAc,KAAK,IAAI;;GAGjE,OAAO;;EAET,OAAO;;CAGT,OAAO;;AAGT,MAAM,aAAa;CACjB,QAAQ;CACR,WAAW,KAAK,IAAI;CACrB;AAED,MAAM,mBAAmB;AAKzB,MAAM,mBAAmB,KAAK,UAAU,EACtC,OAAO,WACR,EAAE;AAEH,MAAM,0BAA0B,KAAK,IAAI,OAAe,cAAuB,EAC7E,OAAO,YAAY,WACpB,EAAE"}
|
package/dist/portal.cjs
CHANGED
|
@@ -23,7 +23,7 @@ function portalReducer(state, action) {
|
|
|
23
23
|
const PortalContext = (0, react.createContext)(null);
|
|
24
24
|
function usePortalContext() {
|
|
25
25
|
const ctx = (0, react.useContext)(PortalContext);
|
|
26
|
-
if (!ctx) throw new Error("Portal must be used within a
|
|
26
|
+
if (!ctx) throw new Error("Portal must be used within a UDSGestureProvider.");
|
|
27
27
|
return ctx;
|
|
28
28
|
}
|
|
29
29
|
const PortalHost = (0, react.memo)(function PortalHost({ state }) {
|
package/dist/portal.js
CHANGED
|
@@ -21,7 +21,7 @@ function portalReducer(state, action) {
|
|
|
21
21
|
const PortalContext = createContext(null);
|
|
22
22
|
function usePortalContext() {
|
|
23
23
|
const ctx = useContext(PortalContext);
|
|
24
|
-
if (!ctx) throw new Error("Portal must be used within a
|
|
24
|
+
if (!ctx) throw new Error("Portal must be used within a UDSGestureProvider.");
|
|
25
25
|
return ctx;
|
|
26
26
|
}
|
|
27
27
|
const PortalHost = memo(function PortalHost({ state }) {
|
package/dist/portal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal.js","names":[],"sources":["../src/portal.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport {\n createContext,\n memo,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useReducer,\n} from 'react';\nimport { StyleSheet, View } from 'react-native';\n\n// ---------------------------------------------------------------------------\n// State\n// ---------------------------------------------------------------------------\n\ntype PortalState = Map<string, ReactNode>;\n\ntype PortalAction =\n | { type: 'register'; id: string; node: ReactNode }\n | { type: 'unregister'; id: string };\n\nfunction portalReducer(state: PortalState, action: PortalAction): PortalState {\n switch (action.type) {\n case 'register': {\n const next = new Map(state);\n next.set(action.id, action.node);\n return next;\n }\n case 'unregister': {\n if (!state.has(action.id)) {\n return state;\n }\n const next = new Map(state);\n next.delete(action.id);\n return next;\n }\n }\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\ninterface PortalContextValue {\n register: (id: string, node: ReactNode) => void;\n unregister: (id: string) => void;\n}\n\nconst PortalContext = createContext<PortalContextValue | null>(null);\n\nfunction usePortalContext(): PortalContextValue {\n const ctx = useContext(PortalContext);\n if (!ctx) {\n throw new Error('Portal must be used within a
|
|
1
|
+
{"version":3,"file":"portal.js","names":[],"sources":["../src/portal.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport {\n createContext,\n memo,\n useCallback,\n useContext,\n useEffect,\n useId,\n useMemo,\n useReducer,\n} from 'react';\nimport { StyleSheet, View } from 'react-native';\n\n// ---------------------------------------------------------------------------\n// State\n// ---------------------------------------------------------------------------\n\ntype PortalState = Map<string, ReactNode>;\n\ntype PortalAction =\n | { type: 'register'; id: string; node: ReactNode }\n | { type: 'unregister'; id: string };\n\nfunction portalReducer(state: PortalState, action: PortalAction): PortalState {\n switch (action.type) {\n case 'register': {\n const next = new Map(state);\n next.set(action.id, action.node);\n return next;\n }\n case 'unregister': {\n if (!state.has(action.id)) {\n return state;\n }\n const next = new Map(state);\n next.delete(action.id);\n return next;\n }\n }\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\ninterface PortalContextValue {\n register: (id: string, node: ReactNode) => void;\n unregister: (id: string) => void;\n}\n\nconst PortalContext = createContext<PortalContextValue | null>(null);\n\nfunction usePortalContext(): PortalContextValue {\n const ctx = useContext(PortalContext);\n if (!ctx) {\n throw new Error('Portal must be used within a UDSGestureProvider.');\n }\n return ctx;\n}\n\n// ---------------------------------------------------------------------------\n// PortalHost — renders registered portals. Place after children for z-order.\n// ---------------------------------------------------------------------------\n\nconst PortalHost = memo(function PortalHost({ state }: { state: PortalState }) {\n if (state.size === 0) {\n return null;\n }\n\n const nodes: ReactNode[] = [];\n state.forEach((node, id) => {\n nodes.push(\n <View key={id} style={styles.overlay} pointerEvents=\"box-none\">\n {node}\n </View>,\n );\n });\n return nodes;\n});\n\n// ---------------------------------------------------------------------------\n// Portal — registers children with the host. Renders nothing itself.\n// ---------------------------------------------------------------------------\n\nfunction Portal({ children }: { children: ReactNode }) {\n const id = useId();\n const { register, unregister } = usePortalContext();\n\n useEffect(() => {\n register(id, children);\n }, [id, children, register]);\n\n useEffect(() => {\n return () => unregister(id);\n }, [id, unregister]);\n\n return null;\n}\n\n// ---------------------------------------------------------------------------\n// PortalProvider — sets up the portal context and host.\n// ---------------------------------------------------------------------------\n\nfunction PortalProvider({ children }: { children: ReactNode }) {\n const [state, dispatch] = useReducer(portalReducer, new Map() as PortalState);\n\n const register = useCallback(\n (id: string, node: ReactNode) => dispatch({ type: 'register', id, node }),\n [],\n );\n const unregister = useCallback((id: string) => dispatch({ type: 'unregister', id }), []);\n\n const contextValue = useMemo(() => ({ register, unregister }), [register, unregister]);\n\n return (\n <PortalContext.Provider value={contextValue}>\n {children}\n <PortalHost state={state} />\n </PortalContext.Provider>\n );\n}\n\nconst styles = StyleSheet.create({\n overlay: {\n ...StyleSheet.absoluteFill,\n },\n});\n\nexport { Portal, PortalProvider, usePortalContext };\nexport type { PortalContextValue };\n"],"mappings":";;;;;AAuBA,SAAS,cAAc,OAAoB,QAAmC;CAC5E,QAAQ,OAAO,MAAf;EACE,KAAK,YAAY;GACf,MAAM,OAAO,IAAI,IAAI,MAAM;GAC3B,KAAK,IAAI,OAAO,IAAI,OAAO,KAAK;GAChC,OAAO;;EAET,KAAK,cAAc;GACjB,IAAI,CAAC,MAAM,IAAI,OAAO,GAAG,EACvB,OAAO;GAET,MAAM,OAAO,IAAI,IAAI,MAAM;GAC3B,KAAK,OAAO,OAAO,GAAG;GACtB,OAAO;;;;AAcb,MAAM,gBAAgB,cAAyC,KAAK;AAEpE,SAAS,mBAAuC;CAC9C,MAAM,MAAM,WAAW,cAAc;CACrC,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,mDAAmD;CAErE,OAAO;;AAOT,MAAM,aAAa,KAAK,SAAS,WAAW,EAAE,SAAiC;CAC7E,IAAI,MAAM,SAAS,GACjB,OAAO;CAGT,MAAM,QAAqB,EAAE;CAC7B,MAAM,SAAS,MAAM,OAAO;EAC1B,MAAM,KACJ,oBAAC,MAAD;GAAe,OAAO,OAAO;GAAS,eAAc;aACjD;GACI,EAFI,GAEJ,CACR;GACD;CACF,OAAO;EACP;AAMF,SAAS,OAAO,EAAE,YAAqC;CACrD,MAAM,KAAK,OAAO;CAClB,MAAM,EAAE,UAAU,eAAe,kBAAkB;CAEnD,gBAAgB;EACd,SAAS,IAAI,SAAS;IACrB;EAAC;EAAI;EAAU;EAAS,CAAC;CAE5B,gBAAgB;EACd,aAAa,WAAW,GAAG;IAC1B,CAAC,IAAI,WAAW,CAAC;CAEpB,OAAO;;AAOT,SAAS,eAAe,EAAE,YAAqC;CAC7D,MAAM,CAAC,OAAO,YAAY,WAAW,+BAAe,IAAI,KAAK,CAAgB;CAE7E,MAAM,WAAW,aACd,IAAY,SAAoB,SAAS;EAAE,MAAM;EAAY;EAAI;EAAM,CAAC,EACzE,EAAE,CACH;CACD,MAAM,aAAa,aAAa,OAAe,SAAS;EAAE,MAAM;EAAc;EAAI,CAAC,EAAE,EAAE,CAAC;CAExF,MAAM,eAAe,eAAe;EAAE;EAAU;EAAY,GAAG,CAAC,UAAU,WAAW,CAAC;CAEtF,OACE,qBAAC,cAAc,UAAf;EAAwB,OAAO;YAA/B,CACG,UACD,oBAAC,YAAD,EAAmB,OAAS,CAAA,CACL;;;AAI7B,MAAM,SAAS,WAAW,OAAO,EAC/B,SAAS,EACP,GAAG,WAAW,cACf,EACF,CAAC"}
|
package/generated/styles.d.ts
CHANGED
|
@@ -1717,7 +1717,7 @@ export declare const dividerStyles: {
|
|
|
1717
1717
|
|
|
1718
1718
|
export declare const iconButtonStyles: {
|
|
1719
1719
|
root: { padding: number };
|
|
1720
|
-
icon: { fontSize: number; iconSizeToken: '
|
|
1720
|
+
icon: { fontSize: number; iconSizeToken: 'sm' | 'lg' | 'xs'; lineHeight: number };
|
|
1721
1721
|
} & {
|
|
1722
1722
|
useVariants: (
|
|
1723
1723
|
variants:
|