@@ -19,9 +19,12 @@ import { toPopperPlacement, popperModifiers } from './PopoverService';
19
19
const ReferenceWrapper = styled ( 'div' ) `
20
20
label: popover__button-wrapper;
21
21
display: inline-block;
22
+
22
23
&:focus {
23
24
outline: none;
24
25
}
26
+
27
+ ${ ( { referenceWrapperStyles, ...rest } ) => referenceWrapperStyles ( rest ) } ;
25
28
` ;
26
29
27
30
const basePopoverWrapperStyles = ( { theme } ) => css `
@@ -129,7 +132,11 @@ class Popover extends Component {
129
132
usePortal : PropTypes . bool ,
130
133
modifiers : PropTypes . shape ( ) ,
131
134
arrowRenderer : PropTypes . func ,
132
- referenceElement : PropTypes . element
135
+ referenceWrapperStyles : PropTypes . func ,
136
+ referenceElement : PropTypes . oneOfType ( [
137
+ PropTypes . instanceOf ( HTMLElement ) ,
138
+ PropTypes . element
139
+ ] )
133
140
} ;
134
141
135
142
static defaultProps = {
@@ -142,7 +149,8 @@ class Popover extends Component {
142
149
modifiers : { } ,
143
150
arrowRenderer : ( ) => null ,
144
151
renderReference : ( ) => null ,
145
- referenceElement : null
152
+ referenceElement : null ,
153
+ referenceWrapperStyles : ( ) => null
146
154
} ;
147
155
148
156
componentDidMount ( ) {
@@ -186,6 +194,7 @@ class Popover extends Component {
186
194
renderPopover,
187
195
renderReference,
188
196
referenceElement,
197
+ referenceWrapperStyles,
189
198
position,
190
199
align,
191
200
isOpen,
@@ -199,6 +208,7 @@ class Popover extends Component {
199
208
< Reference >
200
209
{ ( { ref } ) => (
201
210
< ReferenceWrapper
211
+ referenceWrapperStyles = { referenceWrapperStyles }
202
212
innerRef = { this . receiveButtonRef }
203
213
onClick = { this . handleReferenceClick }
204
214
>
0 commit comments