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