@@ -114,11 +114,19 @@ async function resolveLongHand(ctx: Generator, name: string): Promise<string | u
114114async function isValidProperty ( ctx : Generator , name : string , patternName ?: string ) {
115115 const isValid = ctx . isValidProperty ( name )
116116 if ( isValid ) return true
117- if ( ! patternName ) return
117+ if ( ! patternName ) return false
118+
119+ // If the pattern name is the jsxFactory (e.g., 'styled'), we should accept
120+ // any property that is valid according to the global property check
121+ // Since styled components are generic wrappers, we don't need pattern-specific checks
122+ if ( patternName === ctx . config . jsxFactory ) {
123+ // Already checked globally above, so return false if we got here
124+ return false
125+ }
118126
119127 const pattern = ctx . patterns . details . find ( ( p ) => p . baseName === patternName || p . jsx . includes ( patternName ) ) ?. config
120128 . properties
121- if ( ! pattern ) return
129+ if ( ! pattern ) return false
122130 return Object . keys ( pattern ) . includes ( name )
123131}
124132
@@ -142,6 +150,10 @@ async function matchImports(ctx: Generator, result: MatchImportResult) {
142150 return isMatch
143151}
144152
153+ async function getJsxFactory ( ctx : Generator ) {
154+ return ctx . config . jsxFactory
155+ }
156+
145157export function runAsync ( action : 'filterInvalidTokens' , opts : Opts , paths : string [ ] ) : Promise < string [ ] >
146158export function runAsync ( action : 'isColorToken' , opts : Opts , value : string ) : Promise < boolean >
147159export function runAsync ( action : 'isColorAttribute' , opts : Opts , attr : string ) : Promise < boolean >
@@ -152,6 +164,7 @@ export function runAsync(action: 'isValidProperty', opts: Opts, name: string, pa
152164export function runAsync ( action : 'matchFile' , opts : Opts , name : string , imports : ImportResult [ ] ) : Promise < boolean >
153165export function runAsync ( action : 'matchImports' , opts : Opts , result : MatchImportResult ) : Promise < boolean >
154166export function runAsync ( action : 'getPropCategory' , opts : Opts , prop : string ) : Promise < string >
167+ export function runAsync ( action : 'getJsxFactory' , opts : Opts ) : Promise < string | undefined >
155168export function runAsync (
156169 action : 'filterDeprecatedTokens' ,
157170 opts : Opts ,
@@ -190,6 +203,8 @@ export async function runAsync(action: string, opts: Opts, ...args: any): Promis
190203 case 'getPropCategory' :
191204 // @ts -expect-error cast
192205 return getPropCategory ( ctx , ...args )
206+ case 'getJsxFactory' :
207+ return getJsxFactory ( ctx )
193208 case 'filterDeprecatedTokens' :
194209 // @ts -expect-error cast
195210 return filterDeprecatedTokens ( ctx , ...args )
@@ -206,6 +221,7 @@ export function run(action: 'isValidProperty', opts: Opts, name: string, pattern
206221export function run ( action : 'matchFile' , opts : Opts , name : string , imports : ImportResult [ ] ) : boolean
207222export function run ( action : 'matchImports' , opts : Opts , result : MatchImportResult ) : boolean
208223export function run ( action : 'getPropCategory' , opts : Opts , prop : string ) : string
224+ export function run ( action : 'getJsxFactory' , opts : Opts ) : string | undefined
209225export function run ( action : 'filterDeprecatedTokens' , opts : Opts , tokens : DeprecatedToken [ ] ) : DeprecatedToken [ ]
210226export function run ( action : string , opts : Opts , ...args : any [ ] ) : any {
211227 // @ts -expect-error cast
0 commit comments