15
15
</slot >
16
16
</HPopoverButton >
17
17
18
- <div v-if =" open" ref =" container" :class =" [ui.container, ui.width]" @mouseover =" onMouseOver" >
18
+ <div v-if =" open" ref =" container" :class =" [ui.container, ui.width]" :style = " containerStyle " @mouseover =" onMouseOver" >
19
19
<Transition appear v-bind =" ui.transition" >
20
20
<HPopoverPanel :class =" [ui.base, ui.background, ui.ring, ui.rounded, ui.shadow]" static >
21
21
<slot name =" panel" :open =" open" :close =" close" />
@@ -80,7 +80,7 @@ export default defineComponent({
80
80
81
81
const ui = computed <Partial <typeof appConfig .ui .popover >>(() => defu ({}, props .ui , appConfig .ui .popover ))
82
82
83
- const popper = computed <PopperOptions >(() => defu ({}, props .popper , ui .value .popper as PopperOptions ))
83
+ const popper = computed <PopperOptions >(() => defu (props . mode === ' hover ' ? { offsetDistance: 0 } : {}, props .popper , ui .value .popper as PopperOptions ))
84
84
85
85
const [trigger, container] = usePopper (popper .value )
86
86
@@ -100,6 +100,12 @@ export default defineComponent({
100
100
popoverApi .value = popoverProvidesSymbols .length && popoverProvides [popoverProvidesSymbols [0 ]]
101
101
})
102
102
103
+ const containerStyle = computed (() => {
104
+ const offsetDistance = (props .popper as PopperOptions )?.offsetDistance || (ui .value .popper as PopperOptions )?.offsetDistance || 8
105
+
106
+ return props .mode === ' hover' ? { paddingTop: ` ${offsetDistance }px ` , paddingBottom: ` ${offsetDistance }px ` } : {}
107
+ })
108
+
103
109
function onMouseOver () {
104
110
if (props .mode !== ' hover' || ! popoverApi .value ) {
105
111
return
@@ -146,6 +152,7 @@ export default defineComponent({
146
152
popover ,
147
153
trigger ,
148
154
container ,
155
+ containerStyle ,
149
156
onMouseOver ,
150
157
onMouseLeave
151
158
}
0 commit comments