@@ -15,6 +15,7 @@ import React, {
1515} from 'react' ;
1616import classNames from 'classnames' ;
1717
18+ import { getIconAffordanceStyles } from './_num_icons' ;
1819import {
1920 EuiFormControlLayoutIcons ,
2021 EuiFormControlLayoutIconsProps ,
@@ -68,6 +69,10 @@ export type EuiFormControlLayoutProps = CommonProps &
6869export class EuiFormControlLayout extends Component < EuiFormControlLayoutProps > {
6970 static contextType = FormContext ;
7071
72+ static defaultProps = {
73+ iconsPosition : 'absolute' ,
74+ } ;
75+
7176 render ( ) {
7277 const { defaultFullWidth } = this . context as FormContextValue ;
7378 const {
@@ -101,13 +106,27 @@ export class EuiFormControlLayout extends Component<EuiFormControlLayoutProps> {
101106 className
102107 ) ;
103108
109+ const iconAffordanceStyles =
110+ iconsPosition === 'absolute' // Static icons don't need padding affordance
111+ ? getIconAffordanceStyles ( {
112+ icon,
113+ clear,
114+ isInvalid,
115+ isLoading,
116+ isDropdown,
117+ } )
118+ : undefined ;
119+
104120 const prependNodes = this . renderSideNode ( 'prepend' , prepend , inputId ) ;
105121 const appendNodes = this . renderSideNode ( 'append' , append , inputId ) ;
106122
107123 return (
108124 < div className = { classes } { ...rest } >
109125 { prependNodes }
110- < div className = "euiFormControlLayout__childrenWrapper" >
126+ < div
127+ className = "euiFormControlLayout__childrenWrapper"
128+ style = { iconAffordanceStyles }
129+ >
111130 { this . renderLeftIcons ( ) }
112131 { children }
113132 { this . renderRightIcons ( ) }
0 commit comments