@@ -102,6 +102,13 @@ export type GetResetStyles<
102102 AliasToken extends TokenType ,
103103> = ( token : Partial < AliasToken & CompTokenMap > ) => CSSInterpolation ;
104104
105+ export type GetCompUnitless <
106+ CompTokenMap extends TokenMap ,
107+ AliasToken extends TokenType ,
108+ > = < C extends TokenMapKey < CompTokenMap > > ( component : C | [ C , string ] ) => {
109+ [ key in ComponentTokenKey < CompTokenMap , AliasToken , C > ] : boolean ;
110+ }
111+
105112export default function genStyleUtils <
106113 CompTokenMap extends TokenMap ,
107114 AliasToken extends TokenType ,
@@ -112,6 +119,13 @@ export default function genStyleUtils<
112119 useToken : UseToken < CompTokenMap , AliasToken , DesignToken > ;
113120 useCSP ?: UseCSP ;
114121 getResetStyles ?: GetResetStyles < CompTokenMap , AliasToken > ,
122+ getCommonStyle ?: (
123+ token : OverrideTokenMap < CompTokenMap , AliasToken > ,
124+ componentPrefixCls : string ,
125+ rootCls ?: string ,
126+ resetFont ?: boolean ,
127+ ) => CSSObject ;
128+ getCompUnitless ?: GetCompUnitless < CompTokenMap , AliasToken > ,
115129 }
116130) {
117131 // Dependency inversion for preparing basic config.
@@ -120,6 +134,8 @@ export default function genStyleUtils<
120134 useToken,
121135 usePrefix,
122136 getResetStyles,
137+ getCommonStyle,
138+ getCompUnitless,
123139 } = config ;
124140
125141 function genStyleHooks < C extends TokenMapKey < CompTokenMap > > (
@@ -165,8 +181,11 @@ export default function genStyleUtils<
165181
166182 // Fill unitless
167183 const originUnitless = options ?. unitless || { } ;
184+
185+ const originCompUnitless = typeof getCompUnitless === 'function' ? getCompUnitless ( component ) : { } ;
186+
168187 const compUnitless : any = {
169- ...originUnitless ,
188+ ...originCompUnitless ,
170189 [ prefixToken ( 'zIndexPopup' ) ] : true ,
171190 } ;
172191 Object . keys ( originUnitless ) . forEach ( ( key ) => {
@@ -315,12 +334,6 @@ export default function genStyleUtils<
315334 unitless ?: {
316335 [ key in ComponentTokenKey < CompTokenMap , AliasToken , C > ] : boolean ;
317336 } ;
318- genCommonStyle ?: (
319- token : OverrideTokenMap < CompTokenMap , AliasToken > ,
320- componentPrefixCls : string ,
321- rootCls ?: string ,
322- resetFont ?: boolean ,
323- ) => CSSObject ;
324337 } = { } ,
325338 ) {
326339 const cells = (
@@ -364,8 +377,7 @@ export default function genStyleUtils<
364377 const { max, min } = genMaxMin ( type ) ;
365378
366379 // Shared config
367- const sharedConfig : Omit < Parameters < typeof useStyleRegister > [ 0 ] , 'path' > =
368- {
380+ const sharedConfig : Omit < Parameters < typeof useStyleRegister > [ 0 ] , 'path' > = {
369381 theme,
370382 token,
371383 hashId,
@@ -382,7 +394,7 @@ export default function genStyleUtils<
382394 // Generate style for all need reset tags.
383395 useStyleRegister (
384396 { ...sharedConfig , clientOnly : false , path : [ 'Shared' , rootPrefixCls ] } ,
385- ( ) => getResetStyles ?. ( token ) ?? [ ] ,
397+ ( ) => typeof getResetStyles === 'function' ? getResetStyles ( token ) : [ ] ,
386398 ) ;
387399
388400 const wrapSSR = useStyleRegister (
@@ -398,7 +410,7 @@ export default function genStyleUtils<
398410 CompTokenMap ,
399411 AliasToken ,
400412 C
401- > ( component , realToken , getDefaultToken ) ?? { } ;
413+ > ( component , realToken , getDefaultToken ) ;
402414
403415 const componentCls = `.${ prefixCls } ` ;
404416 const componentToken = getComponentToken < CompTokenMap , AliasToken , C > (
@@ -410,7 +422,7 @@ export default function genStyleUtils<
410422 } ,
411423 ) ;
412424
413- if ( cssVar ) {
425+ if ( cssVar && typeof defaultComponentToken === 'object' ) {
414426 Object . keys ( defaultComponentToken ) . forEach ( ( key ) => {
415427 defaultComponentToken [ key ] = `var(${ token2CSSVar (
416428 key ,
@@ -423,8 +435,8 @@ export default function genStyleUtils<
423435 {
424436 componentCls,
425437 prefixCls,
426- iconCls : ! ! iconPrefixCls . length ? '' : `.${ iconPrefixCls } ` ,
427- antCls : ! ! rootPrefixCls . length ? '' : `.${ rootPrefixCls } ` ,
438+ iconCls : `.${ iconPrefixCls } ` ,
439+ antCls : `.${ rootPrefixCls } ` ,
428440 calc,
429441 // @ts -ignore
430442 max,
@@ -441,15 +453,18 @@ export default function genStyleUtils<
441453 iconPrefixCls,
442454 } ) ;
443455 flush ( component , componentToken ) ;
456+ const commonStyle = typeof getCommonStyle === 'function'
457+ ? getCommonStyle (
458+ mergedToken ,
459+ prefixCls ,
460+ rootCls ,
461+ options . resetFont
462+ )
463+ : null ;
444464 return [
445465 options . resetStyle === false
446466 ? null
447- : options ?. genCommonStyle ?.(
448- mergedToken ,
449- prefixCls ,
450- rootCls ,
451- options . resetFont ,
452- ) ?? { } ,
467+ : commonStyle ,
453468 styleInterpolation ,
454469 ] ;
455470 } ,
0 commit comments