react-native-css 3.0.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/compiler/declarations.js +51 -0
- package/dist/commonjs/compiler/declarations.js.map +1 -1
- package/dist/commonjs/compiler/lightningcss-loader.js +12 -2
- package/dist/commonjs/compiler/lightningcss-loader.js.map +1 -1
- package/dist/commonjs/compiler/supports.js +3 -1
- package/dist/commonjs/compiler/supports.js.map +1 -1
- package/dist/commonjs/components/ActivityIndicator.js +4 -4
- package/dist/commonjs/components/ActivityIndicator.js.map +1 -1
- package/dist/commonjs/components/Button.js +4 -4
- package/dist/commonjs/components/Button.js.map +1 -1
- package/dist/commonjs/components/FlatList.js +4 -4
- package/dist/commonjs/components/FlatList.js.map +1 -1
- package/dist/commonjs/components/Image.js +4 -4
- package/dist/commonjs/components/Image.js.map +1 -1
- package/dist/commonjs/components/ImageBackground.js +4 -4
- package/dist/commonjs/components/ImageBackground.js.map +1 -1
- package/dist/commonjs/components/KeyboardAvoidingView.js +4 -4
- package/dist/commonjs/components/KeyboardAvoidingView.js.map +1 -1
- package/dist/commonjs/components/Pressable.js +4 -4
- package/dist/commonjs/components/Pressable.js.map +1 -1
- package/dist/commonjs/components/ScrollView.js +4 -4
- package/dist/commonjs/components/ScrollView.js.map +1 -1
- package/dist/commonjs/components/Switch.js +4 -4
- package/dist/commonjs/components/Switch.js.map +1 -1
- package/dist/commonjs/components/Text.js +4 -4
- package/dist/commonjs/components/Text.js.map +1 -1
- package/dist/commonjs/components/TextInput.js +4 -4
- package/dist/commonjs/components/TextInput.js.map +1 -1
- package/dist/commonjs/components/TouchableHighlight.js +4 -4
- package/dist/commonjs/components/TouchableHighlight.js.map +1 -1
- package/dist/commonjs/components/TouchableOpacity.js +4 -4
- package/dist/commonjs/components/TouchableOpacity.js.map +1 -1
- package/dist/commonjs/components/TouchableWithoutFeedback.js +4 -4
- package/dist/commonjs/components/TouchableWithoutFeedback.js.map +1 -1
- package/dist/commonjs/components/View.js +4 -4
- package/dist/commonjs/components/View.js.map +1 -1
- package/dist/commonjs/components/VirtualizedList.js +4 -4
- package/dist/commonjs/components/VirtualizedList.js.map +1 -1
- package/dist/commonjs/components/copyComponentProperties.js +19 -0
- package/dist/commonjs/components/copyComponentProperties.js.map +1 -0
- package/dist/commonjs/components/index.cjs +3 -3
- package/dist/commonjs/components/index.cjs.map +1 -1
- package/dist/commonjs/metro/resolver.js +5 -3
- package/dist/commonjs/metro/resolver.js.map +1 -1
- package/dist/commonjs/native/api.js +5 -1
- package/dist/commonjs/native/api.js.map +1 -1
- package/dist/commonjs/native/react/useNativeCss.js +11 -5
- package/dist/commonjs/native/react/useNativeCss.js.map +1 -1
- package/dist/commonjs/native/styles/functions/color-mix.js +50 -0
- package/dist/commonjs/native/styles/functions/color-mix.js.map +1 -0
- package/dist/commonjs/native/styles/functions/index.js +11 -0
- package/dist/commonjs/native/styles/functions/index.js.map +1 -1
- package/dist/commonjs/native/styles/index.js +249 -19
- package/dist/commonjs/native/styles/index.js.map +1 -1
- package/dist/commonjs/web/api.js +5 -2
- package/dist/commonjs/web/api.js.map +1 -1
- package/dist/module/compiler/declarations.js +50 -0
- package/dist/module/compiler/declarations.js.map +1 -1
- package/dist/module/compiler/lightningcss-loader.js +12 -2
- package/dist/module/compiler/lightningcss-loader.js.map +1 -1
- package/dist/module/compiler/supports.js +3 -1
- package/dist/module/compiler/supports.js.map +1 -1
- package/dist/module/components/ActivityIndicator.js +3 -2
- package/dist/module/components/ActivityIndicator.js.map +1 -1
- package/dist/module/components/Button.js +3 -2
- package/dist/module/components/Button.js.map +1 -1
- package/dist/module/components/FlatList.js +3 -2
- package/dist/module/components/FlatList.js.map +1 -1
- package/dist/module/components/Image.js +3 -2
- package/dist/module/components/Image.js.map +1 -1
- package/dist/module/components/ImageBackground.js +3 -2
- package/dist/module/components/ImageBackground.js.map +1 -1
- package/dist/module/components/KeyboardAvoidingView.js +3 -2
- package/dist/module/components/KeyboardAvoidingView.js.map +1 -1
- package/dist/module/components/Pressable.js +3 -2
- package/dist/module/components/Pressable.js.map +1 -1
- package/dist/module/components/ScrollView.js +3 -2
- package/dist/module/components/ScrollView.js.map +1 -1
- package/dist/module/components/Switch.js +3 -2
- package/dist/module/components/Switch.js.map +1 -1
- package/dist/module/components/Text.js +3 -2
- package/dist/module/components/Text.js.map +1 -1
- package/dist/module/components/TextInput.js +3 -2
- package/dist/module/components/TextInput.js.map +1 -1
- package/dist/module/components/TouchableHighlight.js +3 -2
- package/dist/module/components/TouchableHighlight.js.map +1 -1
- package/dist/module/components/TouchableOpacity.js +3 -2
- package/dist/module/components/TouchableOpacity.js.map +1 -1
- package/dist/module/components/TouchableWithoutFeedback.js +3 -2
- package/dist/module/components/TouchableWithoutFeedback.js.map +1 -1
- package/dist/module/components/View.js +3 -2
- package/dist/module/components/View.js.map +1 -1
- package/dist/module/components/VirtualizedList.js +3 -2
- package/dist/module/components/VirtualizedList.js.map +1 -1
- package/dist/module/components/copyComponentProperties.js +15 -0
- package/dist/module/components/copyComponentProperties.js.map +1 -0
- package/dist/module/components/index.cjs +3 -3
- package/dist/module/components/index.cjs.map +1 -1
- package/dist/module/metro/resolver.js +5 -3
- package/dist/module/metro/resolver.js.map +1 -1
- package/dist/module/native/api.js +4 -1
- package/dist/module/native/api.js.map +1 -1
- package/dist/module/native/react/useNativeCss.js +11 -5
- package/dist/module/native/react/useNativeCss.js.map +1 -1
- package/dist/module/native/styles/functions/color-mix.js +45 -0
- package/dist/module/native/styles/functions/color-mix.js.map +1 -0
- package/dist/module/native/styles/functions/index.js +1 -0
- package/dist/module/native/styles/functions/index.js.map +1 -1
- package/dist/module/native/styles/index.js +250 -19
- package/dist/module/native/styles/index.js.map +1 -1
- package/dist/module/web/api.js +5 -2
- package/dist/module/web/api.js.map +1 -1
- package/dist/typescript/commonjs/.config/eslint.config.d.mts +1 -1
- package/dist/typescript/commonjs/example/src/App.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/compiler/declarations.d.ts +1 -0
- package/dist/typescript/commonjs/src/compiler/declarations.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/compiler/lightningcss-loader.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/ActivityIndicator.d.ts +2 -4
- package/dist/typescript/commonjs/src/components/ActivityIndicator.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/Button.d.ts +2 -4
- package/dist/typescript/commonjs/src/components/Button.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/FlatList.d.ts +2 -2
- package/dist/typescript/commonjs/src/components/FlatList.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/Image.d.ts +2 -4
- package/dist/typescript/commonjs/src/components/Image.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/ImageBackground.d.ts +2 -4
- package/dist/typescript/commonjs/src/components/ImageBackground.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/KeyboardAvoidingView.d.ts +2 -4
- package/dist/typescript/commonjs/src/components/KeyboardAvoidingView.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/Pressable.d.ts +2 -4
- package/dist/typescript/commonjs/src/components/Pressable.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/ScrollView.d.ts +2 -4
- package/dist/typescript/commonjs/src/components/ScrollView.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/Switch.d.ts +2 -6
- package/dist/typescript/commonjs/src/components/Switch.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/Text.d.ts +2 -6
- package/dist/typescript/commonjs/src/components/Text.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/TextInput.d.ts +2 -4
- package/dist/typescript/commonjs/src/components/TextInput.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/TouchableHighlight.d.ts +2 -4
- package/dist/typescript/commonjs/src/components/TouchableHighlight.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/TouchableOpacity.d.ts +2 -4
- package/dist/typescript/commonjs/src/components/TouchableOpacity.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/TouchableWithoutFeedback.d.ts +2 -4
- package/dist/typescript/commonjs/src/components/TouchableWithoutFeedback.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/View.d.ts +2 -6
- package/dist/typescript/commonjs/src/components/View.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/VirtualizedList.d.ts +2 -2
- package/dist/typescript/commonjs/src/components/VirtualizedList.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/components/copyComponentProperties.d.ts +5 -0
- package/dist/typescript/commonjs/src/components/copyComponentProperties.d.ts.map +1 -0
- package/dist/typescript/commonjs/src/metro/resolver.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/api.d.ts +1 -1
- package/dist/typescript/commonjs/src/native/api.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/react/useNativeCss.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/styles/functions/color-mix.d.ts +3 -0
- package/dist/typescript/commonjs/src/native/styles/functions/color-mix.d.ts.map +1 -0
- package/dist/typescript/commonjs/src/native/styles/functions/index.d.ts +1 -0
- package/dist/typescript/commonjs/src/native/styles/functions/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/native/styles/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/utilities/dot-notation.types.d.ts +1 -1
- package/dist/typescript/commonjs/src/utilities/dot-notation.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/src/web/api.d.ts +2 -2
- package/dist/typescript/commonjs/src/web/api.d.ts.map +1 -1
- package/dist/typescript/module/.config/eslint.config.d.mts +1 -1
- package/dist/typescript/module/example/src/App.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/declarations.d.ts +1 -0
- package/dist/typescript/module/src/compiler/declarations.d.ts.map +1 -1
- package/dist/typescript/module/src/compiler/lightningcss-loader.d.ts.map +1 -1
- package/dist/typescript/module/src/components/ActivityIndicator.d.ts +2 -4
- package/dist/typescript/module/src/components/ActivityIndicator.d.ts.map +1 -1
- package/dist/typescript/module/src/components/Button.d.ts +2 -4
- package/dist/typescript/module/src/components/Button.d.ts.map +1 -1
- package/dist/typescript/module/src/components/FlatList.d.ts +2 -2
- package/dist/typescript/module/src/components/FlatList.d.ts.map +1 -1
- package/dist/typescript/module/src/components/Image.d.ts +2 -4
- package/dist/typescript/module/src/components/Image.d.ts.map +1 -1
- package/dist/typescript/module/src/components/ImageBackground.d.ts +2 -4
- package/dist/typescript/module/src/components/ImageBackground.d.ts.map +1 -1
- package/dist/typescript/module/src/components/KeyboardAvoidingView.d.ts +2 -4
- package/dist/typescript/module/src/components/KeyboardAvoidingView.d.ts.map +1 -1
- package/dist/typescript/module/src/components/Pressable.d.ts +2 -4
- package/dist/typescript/module/src/components/Pressable.d.ts.map +1 -1
- package/dist/typescript/module/src/components/ScrollView.d.ts +2 -4
- package/dist/typescript/module/src/components/ScrollView.d.ts.map +1 -1
- package/dist/typescript/module/src/components/Switch.d.ts +2 -6
- package/dist/typescript/module/src/components/Switch.d.ts.map +1 -1
- package/dist/typescript/module/src/components/Text.d.ts +2 -6
- package/dist/typescript/module/src/components/Text.d.ts.map +1 -1
- package/dist/typescript/module/src/components/TextInput.d.ts +2 -4
- package/dist/typescript/module/src/components/TextInput.d.ts.map +1 -1
- package/dist/typescript/module/src/components/TouchableHighlight.d.ts +2 -4
- package/dist/typescript/module/src/components/TouchableHighlight.d.ts.map +1 -1
- package/dist/typescript/module/src/components/TouchableOpacity.d.ts +2 -4
- package/dist/typescript/module/src/components/TouchableOpacity.d.ts.map +1 -1
- package/dist/typescript/module/src/components/TouchableWithoutFeedback.d.ts +2 -4
- package/dist/typescript/module/src/components/TouchableWithoutFeedback.d.ts.map +1 -1
- package/dist/typescript/module/src/components/View.d.ts +2 -6
- package/dist/typescript/module/src/components/View.d.ts.map +1 -1
- package/dist/typescript/module/src/components/VirtualizedList.d.ts +2 -2
- package/dist/typescript/module/src/components/VirtualizedList.d.ts.map +1 -1
- package/dist/typescript/module/src/components/copyComponentProperties.d.ts +5 -0
- package/dist/typescript/module/src/components/copyComponentProperties.d.ts.map +1 -0
- package/dist/typescript/module/src/metro/resolver.d.ts.map +1 -1
- package/dist/typescript/module/src/native/api.d.ts +1 -1
- package/dist/typescript/module/src/native/api.d.ts.map +1 -1
- package/dist/typescript/module/src/native/react/useNativeCss.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/functions/color-mix.d.ts +3 -0
- package/dist/typescript/module/src/native/styles/functions/color-mix.d.ts.map +1 -0
- package/dist/typescript/module/src/native/styles/functions/index.d.ts +1 -0
- package/dist/typescript/module/src/native/styles/functions/index.d.ts.map +1 -1
- package/dist/typescript/module/src/native/styles/index.d.ts.map +1 -1
- package/dist/typescript/module/src/utilities/dot-notation.types.d.ts +1 -1
- package/dist/typescript/module/src/utilities/dot-notation.types.d.ts.map +1 -1
- package/dist/typescript/module/src/web/api.d.ts +2 -2
- package/dist/typescript/module/src/web/api.d.ts.map +1 -1
- package/package.json +4 -3
- package/src/compiler/declarations.ts +96 -0
- package/src/compiler/lightningcss-loader.ts +20 -1
- package/src/compiler/supports.ts +2 -0
- package/src/components/ActivityIndicator.tsx +8 -5
- package/src/components/Button.tsx +8 -3
- package/src/components/FlatList.tsx +13 -4
- package/src/components/Image.tsx +8 -3
- package/src/components/ImageBackground.tsx +8 -5
- package/src/components/KeyboardAvoidingView.tsx +8 -5
- package/src/components/Pressable.tsx +8 -3
- package/src/components/ScrollView.tsx +8 -5
- package/src/components/Switch.tsx +8 -3
- package/src/components/Text.tsx +8 -3
- package/src/components/TextInput.tsx +8 -3
- package/src/components/TouchableHighlight.tsx +8 -5
- package/src/components/TouchableOpacity.tsx +8 -5
- package/src/components/TouchableWithoutFeedback.tsx +8 -5
- package/src/components/View.tsx +8 -3
- package/src/components/VirtualizedList.tsx +17 -5
- package/src/components/copyComponentProperties.ts +21 -0
- package/src/components/index.cts +3 -3
- package/src/metro/resolver.ts +10 -3
- package/src/native/api.tsx +6 -2
- package/src/native/react/useNativeCss.ts +13 -6
- package/src/native/styles/functions/color-mix.ts +68 -0
- package/src/native/styles/functions/index.ts +1 -0
- package/src/native/styles/index.ts +302 -26
- package/src/utilities/dot-notation.types.ts +10 -3
- package/src/web/api.tsx +9 -4
- package/types.d.ts +3 -0
|
@@ -9,14 +9,17 @@ import {
|
|
|
9
9
|
type StyledProps,
|
|
10
10
|
} from "react-native-css";
|
|
11
11
|
|
|
12
|
+
import { copyComponentProperties } from "./copyComponentProperties";
|
|
13
|
+
|
|
12
14
|
const mapping: StyledConfiguration<typeof RNTouchableHighlight> = {
|
|
13
15
|
className: "style",
|
|
14
16
|
};
|
|
15
17
|
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
) {
|
|
19
|
-
|
|
20
|
-
}
|
|
18
|
+
export const TouchableHighlight = copyComponentProperties(
|
|
19
|
+
RNTouchableHighlight,
|
|
20
|
+
(props: StyledProps<TouchableHighlightProps, typeof mapping>) => {
|
|
21
|
+
return useCssElement(RNTouchableHighlight, props, mapping);
|
|
22
|
+
},
|
|
23
|
+
);
|
|
21
24
|
|
|
22
25
|
export default TouchableHighlight;
|
|
@@ -9,14 +9,17 @@ import {
|
|
|
9
9
|
type StyledProps,
|
|
10
10
|
} from "react-native-css";
|
|
11
11
|
|
|
12
|
+
import { copyComponentProperties } from "./copyComponentProperties";
|
|
13
|
+
|
|
12
14
|
const mapping: StyledConfiguration<typeof RNTouchableOpacity> = {
|
|
13
15
|
className: "style",
|
|
14
16
|
};
|
|
15
17
|
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
) {
|
|
19
|
-
|
|
20
|
-
}
|
|
18
|
+
export const TouchableOpacity = copyComponentProperties(
|
|
19
|
+
RNTouchableOpacity,
|
|
20
|
+
(props: StyledProps<TouchableOpacityProps, typeof mapping>) => {
|
|
21
|
+
return useCssElement(RNTouchableOpacity, props, mapping);
|
|
22
|
+
},
|
|
23
|
+
);
|
|
21
24
|
|
|
22
25
|
export default TouchableOpacity;
|
|
@@ -9,14 +9,17 @@ import {
|
|
|
9
9
|
type StyledProps,
|
|
10
10
|
} from "react-native-css";
|
|
11
11
|
|
|
12
|
+
import { copyComponentProperties } from "./copyComponentProperties";
|
|
13
|
+
|
|
12
14
|
const mapping: StyledConfiguration<typeof RNTouchableWithoutFeedback> = {
|
|
13
15
|
className: "style",
|
|
14
16
|
};
|
|
15
17
|
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
) {
|
|
19
|
-
|
|
20
|
-
}
|
|
18
|
+
export const TouchableWithoutFeedback = copyComponentProperties(
|
|
19
|
+
RNTouchableWithoutFeedback,
|
|
20
|
+
(props: StyledProps<TouchableWithoutFeedbackProps, typeof mapping>) => {
|
|
21
|
+
return useCssElement(RNTouchableWithoutFeedback, props, mapping);
|
|
22
|
+
},
|
|
23
|
+
);
|
|
21
24
|
|
|
22
25
|
export default TouchableWithoutFeedback;
|
package/src/components/View.tsx
CHANGED
|
@@ -6,12 +6,17 @@ import {
|
|
|
6
6
|
type StyledProps,
|
|
7
7
|
} from "react-native-css";
|
|
8
8
|
|
|
9
|
+
import { copyComponentProperties } from "./copyComponentProperties";
|
|
10
|
+
|
|
9
11
|
const mapping = {
|
|
10
12
|
className: "style",
|
|
11
13
|
} satisfies StyledConfiguration<typeof RNView>;
|
|
12
14
|
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
export const View = copyComponentProperties(
|
|
16
|
+
RNView,
|
|
17
|
+
(props: StyledProps<ViewProps, typeof mapping>) => {
|
|
18
|
+
return useCssElement(RNView, props, mapping);
|
|
19
|
+
},
|
|
20
|
+
);
|
|
16
21
|
|
|
17
22
|
export default View;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
1
2
|
import {
|
|
2
3
|
VirtualizedList as RNVirtualizedList,
|
|
3
4
|
type VirtualizedListProps,
|
|
@@ -9,6 +10,8 @@ import {
|
|
|
9
10
|
type StyledProps,
|
|
10
11
|
} from "react-native-css";
|
|
11
12
|
|
|
13
|
+
import { copyComponentProperties } from "./copyComponentProperties";
|
|
14
|
+
|
|
12
15
|
const mapping: StyledConfiguration<typeof RNVirtualizedList> = {
|
|
13
16
|
className: "style",
|
|
14
17
|
ListFooterComponentClassName: "ListFooterComponentStyle",
|
|
@@ -16,10 +19,19 @@ const mapping: StyledConfiguration<typeof RNVirtualizedList> = {
|
|
|
16
19
|
contentContainerClassName: "contentContainerStyle",
|
|
17
20
|
};
|
|
18
21
|
|
|
19
|
-
export
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
export const VirtualizedList = copyComponentProperties(
|
|
23
|
+
RNVirtualizedList,
|
|
24
|
+
function <ItemT>(
|
|
25
|
+
props: StyledProps<VirtualizedListProps<ItemT>, typeof mapping>,
|
|
26
|
+
) {
|
|
27
|
+
return useCssElement(RNVirtualizedList, props, mapping);
|
|
28
|
+
},
|
|
29
|
+
) as unknown as typeof RNVirtualizedList &
|
|
30
|
+
(<ItemT>(
|
|
31
|
+
props: StyledProps<
|
|
32
|
+
VirtualizedListProps<ItemT>,
|
|
33
|
+
StyledConfiguration<typeof RNVirtualizedList>
|
|
34
|
+
>,
|
|
35
|
+
) => ReactNode);
|
|
24
36
|
|
|
25
37
|
export default VirtualizedList;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ComponentType } from "react";
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
|
+
type AnyComponent = ComponentType<any>;
|
|
5
|
+
|
|
6
|
+
export function copyComponentProperties<T extends AnyComponent>(
|
|
7
|
+
BaseComponent: T,
|
|
8
|
+
Component: AnyComponent,
|
|
9
|
+
) {
|
|
10
|
+
for (const [key, value] of Object.entries(BaseComponent)) {
|
|
11
|
+
if (key === "$$typeof" || key === "render" || key === "contextType") {
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
(Component as unknown as Record<string, unknown>)[key] = value;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
Component.displayName = BaseComponent.displayName;
|
|
19
|
+
|
|
20
|
+
return Component as unknown as T;
|
|
21
|
+
}
|
package/src/components/index.cts
CHANGED
|
@@ -25,6 +25,9 @@ module.exports = {
|
|
|
25
25
|
get Pressable() {
|
|
26
26
|
return require("./Pressable").Pressable;
|
|
27
27
|
},
|
|
28
|
+
get ScrollView() {
|
|
29
|
+
return require("./ScrollView").ScrollView;
|
|
30
|
+
},
|
|
28
31
|
get Switch() {
|
|
29
32
|
return require("./Switch").Switch;
|
|
30
33
|
},
|
|
@@ -71,9 +74,6 @@ module.exports = {
|
|
|
71
74
|
get SafeAreaView() {
|
|
72
75
|
return require("react-native").SafeAreaView;
|
|
73
76
|
},
|
|
74
|
-
get ScrollView() {
|
|
75
|
-
return require("react-native").ScrollView;
|
|
76
|
-
},
|
|
77
77
|
get SectionList() {
|
|
78
78
|
return require("react-native").SectionList;
|
|
79
79
|
},
|
package/src/metro/resolver.ts
CHANGED
|
@@ -26,7 +26,7 @@ export function nativeResolver(
|
|
|
26
26
|
const resolution = resolver(context, moduleName, platform);
|
|
27
27
|
const isInternal = isFromThisModule(context.originModulePath);
|
|
28
28
|
const isReactNativeIndex = context.originModulePath.endsWith(
|
|
29
|
-
|
|
29
|
+
`${sep}react-native${sep}index.js`,
|
|
30
30
|
);
|
|
31
31
|
|
|
32
32
|
if (isInternal || resolution.type !== "sourceFile" || isReactNativeIndex) {
|
|
@@ -73,7 +73,9 @@ export function webResolver(
|
|
|
73
73
|
// Only operate on source files
|
|
74
74
|
resolution.type !== "sourceFile" ||
|
|
75
75
|
// Skip anything that isn't importing from `react-native-web`
|
|
76
|
-
!resolution.filePath.includes(`${sep}react-native-web${sep}`)
|
|
76
|
+
!resolution.filePath.includes(`${sep}react-native-web${sep}`) ||
|
|
77
|
+
// Skip internal react-native-web files
|
|
78
|
+
resolution.filePath.includes(`${sep}react-native-web${sep}dist${sep}vendor`)
|
|
77
79
|
) {
|
|
78
80
|
return resolution;
|
|
79
81
|
}
|
|
@@ -83,7 +85,12 @@ export function webResolver(
|
|
|
83
85
|
const isIndex = segments.at(-1)?.startsWith("index.");
|
|
84
86
|
const module = segments.at(-2);
|
|
85
87
|
|
|
86
|
-
if (
|
|
88
|
+
if (
|
|
89
|
+
!isIndex ||
|
|
90
|
+
!module ||
|
|
91
|
+
!allowedModules.has(module) ||
|
|
92
|
+
module === "VirtualizedList"
|
|
93
|
+
) {
|
|
87
94
|
return resolution;
|
|
88
95
|
}
|
|
89
96
|
|
package/src/native/api.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
-
import { useContext, useState } from "react";
|
|
2
|
+
import { useContext, useState, type ComponentType } from "react";
|
|
3
3
|
import { Appearance } from "react-native";
|
|
4
4
|
|
|
5
5
|
import type { StyleDescriptor } from "react-native-css/compiler";
|
|
@@ -30,6 +30,10 @@ export {
|
|
|
30
30
|
|
|
31
31
|
export { useNativeCss };
|
|
32
32
|
|
|
33
|
+
const defaultMapping: StyledConfiguration<ComponentType<{ style: unknown }>> = {
|
|
34
|
+
className: "style",
|
|
35
|
+
};
|
|
36
|
+
|
|
33
37
|
/**
|
|
34
38
|
* Generates a new Higher-Order component the wraps the base component and applies the styles.
|
|
35
39
|
* This is added to the `interopComponents` map so that it can be used in the `wrapJSX` function
|
|
@@ -41,7 +45,7 @@ export const styled = <
|
|
|
41
45
|
const M extends StyledConfiguration<C>,
|
|
42
46
|
>(
|
|
43
47
|
baseComponent: C,
|
|
44
|
-
mapping: M,
|
|
48
|
+
mapping: M = defaultMapping as M,
|
|
45
49
|
options?: StyledOptions,
|
|
46
50
|
) => {
|
|
47
51
|
let component: any;
|
|
@@ -172,29 +172,36 @@ export function useNativeCss(
|
|
|
172
172
|
export function mappingToConfig(mapping: StyledConfiguration<any>) {
|
|
173
173
|
return Object.entries(mapping).flatMap(([key, value]): Config => {
|
|
174
174
|
if (value === true) {
|
|
175
|
-
return {
|
|
175
|
+
return {
|
|
176
|
+
source: key,
|
|
177
|
+
target: key,
|
|
178
|
+
};
|
|
176
179
|
} else if (value === false) {
|
|
177
180
|
return { source: key, target: false };
|
|
178
181
|
} else if (typeof value === "string") {
|
|
179
182
|
return { source: key, target: value.split(".") };
|
|
180
183
|
} else if (typeof value === "object") {
|
|
184
|
+
const nativeStyleMapping = value.nativeStyleMapping as
|
|
185
|
+
| Record<string, string>
|
|
186
|
+
| undefined;
|
|
187
|
+
|
|
181
188
|
if (Array.isArray(value)) {
|
|
182
|
-
return { source: key, target: value };
|
|
189
|
+
return { source: key, target: value, nativeStyleMapping };
|
|
183
190
|
}
|
|
184
191
|
|
|
185
192
|
if ("target" in value) {
|
|
186
193
|
if (value.target === false) {
|
|
187
|
-
return { source: key, target: false };
|
|
194
|
+
return { source: key, target: false, nativeStyleMapping };
|
|
188
195
|
} else if (typeof value.target === "string") {
|
|
189
196
|
const target = value.target.split(".");
|
|
190
197
|
|
|
191
198
|
if (target.length === 1) {
|
|
192
|
-
return { source: key, target: target[0]
|
|
199
|
+
return { source: key, target: target[0]!, nativeStyleMapping };
|
|
193
200
|
} else {
|
|
194
|
-
return { source: key, target };
|
|
201
|
+
return { source: key, target, nativeStyleMapping };
|
|
195
202
|
}
|
|
196
203
|
} else if (Array.isArray(value.target)) {
|
|
197
|
-
return { source: key, target: value.target };
|
|
204
|
+
return { source: key, target: value.target, nativeStyleMapping };
|
|
198
205
|
}
|
|
199
206
|
}
|
|
200
207
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
2
|
+
import type { PlainColorObject } from "colorjs.io";
|
|
3
|
+
import {
|
|
4
|
+
ColorSpace,
|
|
5
|
+
to as convert,
|
|
6
|
+
mix,
|
|
7
|
+
OKLab,
|
|
8
|
+
P3,
|
|
9
|
+
parse,
|
|
10
|
+
sRGB,
|
|
11
|
+
type ColorConstructor,
|
|
12
|
+
} from "colorjs.io/fn";
|
|
13
|
+
|
|
14
|
+
import type { StyleFunctionResolver } from "../resolve";
|
|
15
|
+
|
|
16
|
+
ColorSpace.register(sRGB);
|
|
17
|
+
ColorSpace.register(P3);
|
|
18
|
+
ColorSpace.register(OKLab);
|
|
19
|
+
|
|
20
|
+
export const colorMix: StyleFunctionResolver = (resolveValue, value) => {
|
|
21
|
+
const args = resolveValue(value[2]);
|
|
22
|
+
|
|
23
|
+
if (!Array.isArray(args) || args.length < 3) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
try {
|
|
28
|
+
const space = args.shift();
|
|
29
|
+
|
|
30
|
+
let left: ColorConstructor | PlainColorObject = parse(
|
|
31
|
+
args.shift() as string,
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
let next = args.shift();
|
|
35
|
+
|
|
36
|
+
if (typeof next === "string" && next.endsWith("%")) {
|
|
37
|
+
left.alpha = parseFloat(next) / 100;
|
|
38
|
+
next = args.shift();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (next === undefined) {
|
|
42
|
+
if (left.spaceId !== "srgb") {
|
|
43
|
+
left = convert(left, "srgb");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return `rgba(${(left.coords[0] ?? 0) * 255}, ${(left.coords[1] ?? 0) * 255}, ${(left.coords[2] ?? 0) * 255}, ${left.alpha})`;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (typeof next !== "string") {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const right = parse(next);
|
|
53
|
+
|
|
54
|
+
next = args.shift();
|
|
55
|
+
if (next && typeof next === "string" && next.endsWith("%")) {
|
|
56
|
+
right.alpha = parseFloat(next) / 100;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const result = mix(left, right, {
|
|
60
|
+
space,
|
|
61
|
+
outputSpace: "srgb",
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
return `rgba(${(result.coords[0] ?? 0) * 255}, ${(result.coords[1] ?? 0) * 255}, ${(result.coords[2] ?? 0) * 255}, ${result.alpha})`;
|
|
65
|
+
} catch {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
};
|