Skip to content

Commit 27c1e2a

Browse files
committed
feat: add types for MediaQuery
1 parent 939182a commit 27c1e2a

3 files changed

Lines changed: 164 additions & 2 deletions

File tree

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@
172172
"version": "0.54.3"
173173
},
174174
"dependencies": {
175-
"@react-native/typescript-config": "^0.82.0"
175+
"@react-native/typescript-config": "^0.82.0",
176+
"lightningcss": "^1.30.2"
176177
}
177178
}

src/specs/StyleRegistry/HybridStyleRegistry.nitro.ts

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import type {
2+
MediaFeatureComparison,
3+
MediaFeatureNameFor_MediaFeatureId,
4+
} from 'lightningcss';
15
import type { processColor } from 'react-native';
26
import type { AnyMap, HybridObject } from 'react-native-nitro-modules';
37

@@ -47,6 +51,8 @@ export interface RawStyleRegistry {
4751
registerExternalMethods(options: { processColor: typeof processColor }): void;
4852
}
4953

54+
/******************************* States *********************************/
55+
5056
export type Declarations = {
5157
classNames: string;
5258
variableScope?: string;
@@ -98,17 +104,44 @@ export type StyleConfig = [
98104
];
99105
export type StyleConfigNativeStyleToProp = [string, string[]];
100106

107+
/****************************** StyleRule *******************************/
108+
101109
interface StyleRule {
102110
s: SpecificityArray;
103111
v?: VariableDescriptor[];
104-
d?: AnyMap[];
112+
d?: StyleDescriptor[];
113+
114+
/** MediaQuery */
115+
m?: MediaCondition[];
105116
}
106117

107118
type SpecificityArray = number[];
119+
type StyleDescriptor = AnyMap;
108120

109121
/****************************** Variables *******************************/
110122

111123
type VariableDescriptor = [
112124
string,
113125
AnyMap | AnyMap[] | string | number | boolean,
114126
];
127+
128+
/****************************** Conditions ******************************/
129+
130+
export type MediaCondition =
131+
| [string, string]
132+
| [string, string[]]
133+
// Comparison
134+
| [
135+
MediaFeatureComparison,
136+
MediaFeatureNameFor_MediaFeatureId | 'dir',
137+
StyleDescriptor,
138+
]
139+
// [Start, End]
140+
| [
141+
string,
142+
MediaFeatureNameFor_MediaFeatureId,
143+
StyleDescriptor, // Start
144+
MediaFeatureComparison, // Start comparison
145+
StyleDescriptor, // End
146+
MediaFeatureComparison, // End comparison
147+
];

yarn.lock

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5490,6 +5490,13 @@ __metadata:
54905490
languageName: node
54915491
linkType: hard
54925492

5493+
"detect-libc@npm:^2.0.3":
5494+
version: 2.1.2
5495+
resolution: "detect-libc@npm:2.1.2"
5496+
checksum: 471740d52365084c4b2ae359e507b863f2b1d79b08a92835ebdf701918e08fc9cfba175b3db28483ca33b155e1311a91d69dc42c6d192b476f41a9e1f094ce6a
5497+
languageName: node
5498+
linkType: hard
5499+
54935500
"detect-newline@npm:^3.0.0":
54945501
version: 3.1.0
54955502
resolution: "detect-newline@npm:3.1.0"
@@ -8535,6 +8542,126 @@ __metadata:
85358542
languageName: node
85368543
linkType: hard
85378544

8545+
"lightningcss-android-arm64@npm:1.30.2":
8546+
version: 1.30.2
8547+
resolution: "lightningcss-android-arm64@npm:1.30.2"
8548+
conditions: os=android & cpu=arm64
8549+
languageName: node
8550+
linkType: hard
8551+
8552+
"lightningcss-darwin-arm64@npm:1.30.2":
8553+
version: 1.30.2
8554+
resolution: "lightningcss-darwin-arm64@npm:1.30.2"
8555+
conditions: os=darwin & cpu=arm64
8556+
languageName: node
8557+
linkType: hard
8558+
8559+
"lightningcss-darwin-x64@npm:1.30.2":
8560+
version: 1.30.2
8561+
resolution: "lightningcss-darwin-x64@npm:1.30.2"
8562+
conditions: os=darwin & cpu=x64
8563+
languageName: node
8564+
linkType: hard
8565+
8566+
"lightningcss-freebsd-x64@npm:1.30.2":
8567+
version: 1.30.2
8568+
resolution: "lightningcss-freebsd-x64@npm:1.30.2"
8569+
conditions: os=freebsd & cpu=x64
8570+
languageName: node
8571+
linkType: hard
8572+
8573+
"lightningcss-linux-arm-gnueabihf@npm:1.30.2":
8574+
version: 1.30.2
8575+
resolution: "lightningcss-linux-arm-gnueabihf@npm:1.30.2"
8576+
conditions: os=linux & cpu=arm
8577+
languageName: node
8578+
linkType: hard
8579+
8580+
"lightningcss-linux-arm64-gnu@npm:1.30.2":
8581+
version: 1.30.2
8582+
resolution: "lightningcss-linux-arm64-gnu@npm:1.30.2"
8583+
conditions: os=linux & cpu=arm64 & libc=glibc
8584+
languageName: node
8585+
linkType: hard
8586+
8587+
"lightningcss-linux-arm64-musl@npm:1.30.2":
8588+
version: 1.30.2
8589+
resolution: "lightningcss-linux-arm64-musl@npm:1.30.2"
8590+
conditions: os=linux & cpu=arm64 & libc=musl
8591+
languageName: node
8592+
linkType: hard
8593+
8594+
"lightningcss-linux-x64-gnu@npm:1.30.2":
8595+
version: 1.30.2
8596+
resolution: "lightningcss-linux-x64-gnu@npm:1.30.2"
8597+
conditions: os=linux & cpu=x64 & libc=glibc
8598+
languageName: node
8599+
linkType: hard
8600+
8601+
"lightningcss-linux-x64-musl@npm:1.30.2":
8602+
version: 1.30.2
8603+
resolution: "lightningcss-linux-x64-musl@npm:1.30.2"
8604+
conditions: os=linux & cpu=x64 & libc=musl
8605+
languageName: node
8606+
linkType: hard
8607+
8608+
"lightningcss-win32-arm64-msvc@npm:1.30.2":
8609+
version: 1.30.2
8610+
resolution: "lightningcss-win32-arm64-msvc@npm:1.30.2"
8611+
conditions: os=win32 & cpu=arm64
8612+
languageName: node
8613+
linkType: hard
8614+
8615+
"lightningcss-win32-x64-msvc@npm:1.30.2":
8616+
version: 1.30.2
8617+
resolution: "lightningcss-win32-x64-msvc@npm:1.30.2"
8618+
conditions: os=win32 & cpu=x64
8619+
languageName: node
8620+
linkType: hard
8621+
8622+
"lightningcss@npm:^1.30.2":
8623+
version: 1.30.2
8624+
resolution: "lightningcss@npm:1.30.2"
8625+
dependencies:
8626+
detect-libc: ^2.0.3
8627+
lightningcss-android-arm64: 1.30.2
8628+
lightningcss-darwin-arm64: 1.30.2
8629+
lightningcss-darwin-x64: 1.30.2
8630+
lightningcss-freebsd-x64: 1.30.2
8631+
lightningcss-linux-arm-gnueabihf: 1.30.2
8632+
lightningcss-linux-arm64-gnu: 1.30.2
8633+
lightningcss-linux-arm64-musl: 1.30.2
8634+
lightningcss-linux-x64-gnu: 1.30.2
8635+
lightningcss-linux-x64-musl: 1.30.2
8636+
lightningcss-win32-arm64-msvc: 1.30.2
8637+
lightningcss-win32-x64-msvc: 1.30.2
8638+
dependenciesMeta:
8639+
lightningcss-android-arm64:
8640+
optional: true
8641+
lightningcss-darwin-arm64:
8642+
optional: true
8643+
lightningcss-darwin-x64:
8644+
optional: true
8645+
lightningcss-freebsd-x64:
8646+
optional: true
8647+
lightningcss-linux-arm-gnueabihf:
8648+
optional: true
8649+
lightningcss-linux-arm64-gnu:
8650+
optional: true
8651+
lightningcss-linux-arm64-musl:
8652+
optional: true
8653+
lightningcss-linux-x64-gnu:
8654+
optional: true
8655+
lightningcss-linux-x64-musl:
8656+
optional: true
8657+
lightningcss-win32-arm64-msvc:
8658+
optional: true
8659+
lightningcss-win32-x64-msvc:
8660+
optional: true
8661+
checksum: 6e5ef66e7d7e57af8712ed7125968d31d8120a84cc530d7483d1cbc17b06a10f1187e63054b7a5cdd16d345429007cf7be46464bd7b327be7080f8604f246c73
8662+
languageName: node
8663+
linkType: hard
8664+
85388665
"lines-and-columns@npm:^1.1.6":
85398666
version: 1.2.4
85408667
resolution: "lines-and-columns@npm:1.2.4"
@@ -10349,6 +10476,7 @@ __metadata:
1034910476
eslint-config-prettier: ^10.1.8
1035010477
eslint-plugin-prettier: ^5.5.4
1035110478
jest: ^29.7.0
10479+
lightningcss: ^1.30.2
1035210480
nitrogen: ^0.29.1
1035310481
prettier: ^3.6.2
1035410482
react: 19.1.0

0 commit comments

Comments
 (0)