Skip to content

Popover ​

Basic ​

Placement ​

With Showable ​

HiPopover uses Showable's useShowableContextProvider for visibility and exposes show and close. Bind showableRef to HiPopover to open the popover from outside via popoverRef?.show().

vue
<script setup>
import { showableRef } from "hoci";

const popoverRef = showableRef();
</script>

<template>
  <button @click="popoverRef?.show()">
    Open from outside
  </button>
  <hi-popover ref="popoverRef" trigger-event="click">
    <button>Trigger</button>
    <template #popup>
      Content
    </template>
  </hi-popover>
</template>

Popover Props ​

NameTypeDefaultDescription
popupClassstring-Root class of the popup layer
placementPlacement"auto"Position relative to trigger: bottom, top, left, right, auto, top-left, top-right, bottom-left, bottom-right, left-top, left-bottom, right-top, right-bottom
triggerEventTriggerEvent"hover"Trigger: click, mousedown, dblclick, hover, contextmenu, focus, touch
offsetnumber8Gap between popup and trigger (px)
lazybooleanfalseWhen true, hover trigger requires longer delay (~800ms) to open
visiblebooleanfalseWhether visible; supports v-model:visible
disabledbooleanfalseWhether trigger is disabled
teleportstring | HTMLElement | booleantrueTeleport target; true for body, false to disable
asstring"div"Tag name of the trigger root

Popover Events ​

NameDescription
update:visibleEmitted when visible changes (for v-model:visible)
changeEmitted when visibility changes; payload is current visibility (value: boolean)

Ref methods ​

When the component is bound via ref, you can call:

MethodDescription
show()Open the popover
close()Close the popover