@@ -74,6 +74,8 @@ type UseStyleParamsNew<
7474 params ?: SecondParameter < P >
7575 componentId : keyof NewComponentTypes
7676 displayName ?: string
77+ //in case of a child component needed to use it's parent's tokens, provide parent's name
78+ useTokensFrom ?: keyof NewComponentTypes
7779}
7880
7981const isNewThemeObject = ( obj : BaseThemeOrOverride ) : obj is Theme => {
@@ -89,6 +91,7 @@ const useStyle = <
8991 | UseStyleParamsNew < P >
9092) : ReturnType < P > => {
9193 const { generateStyle, params, componentId, displayName } = useStyleParams
94+ const useTokensFrom = ( useStyleParams as UseStyleParamsNew < P > ) . useTokensFrom
9295 const generateComponentTheme : GenerateComponentTheme = (
9396 useStyleParams as UseStyleParamsWithTheme < P >
9497 ) ?. generateComponentTheme
@@ -98,18 +101,21 @@ const useStyle = <
98101 typeof generateComponentTheme === 'function'
99102 ? generateComponentTheme ( theme as Theme )
100103 : { }
104+ const componentWithTokensId = useTokensFrom ?? componentId
101105
102106 if (
103107 isNewThemeObject ( theme ) &&
104- theme . newTheme . components [ componentId as keyof NewComponentTypes ]
108+ theme . newTheme . components [ componentWithTokensId as keyof NewComponentTypes ]
105109 ) {
106110 baseComponentTheme =
107- theme . newTheme . components [ componentId as keyof NewComponentTypes ]
111+ theme . newTheme . components [
112+ componentWithTokensId as keyof NewComponentTypes
113+ ]
108114 }
109115 const themeOverride = getComponentThemeOverride (
110116 theme ,
111- displayName ? displayName : componentId || '' ,
112- componentId ,
117+ useTokensFrom ?? displayName ?? componentId ?? '' ,
118+ componentWithTokensId ,
113119 params ,
114120 baseComponentTheme
115121 )
0 commit comments