Directives

April 28, 2026 ยท View on GitHub

License Stable Downloads Vue JavaScript npm Issues Merge Requests

Description

Vue directives used across Enso UI packages.

Installation

yarn add @enso-ui/directives

Features

  • exports reusable DOM and interaction directives consumed across Enso UI packages
  • supports focus, click-outside, select-on-focus, resize, long-click, and scroll-into-view flows
  • stays dependency-light and does not pull syntax highlighters or other large optional libraries

Usage

Register the directives you need locally:

import { clickOutside, scrollIntoView } from '@enso-ui/directives';

export default {
    directives: { clickOutside, scrollIntoView },
};

Or register them globally:

import * as directives from '@enso-ui/directives';

Object.entries(directives).forEach(([name, directive]) => {
    app.directive(name, directive);
});

API

v-click-outside

Calls a handler when the click target is outside the bound element.

v-fits-below

Computes whether an element fully fits in the current viewport and passes the result to a callback.

v-focus

Focuses the element after the current tick.

v-long-click

Runs a handler only after the pointer stays pressed for the configured duration in milliseconds.

v-resize

Auto-resizes an input to its content width. An optional numeric argument sets the minimum width in pixels.

v-scroll-into-view

Calls Element.scrollIntoView() when scroll transitions to true.

v-select-on-focus

Selects the current value when the element receives focus.

Depends On

  • Vue 3

Contributions

are welcome. Pull requests are great, but issues are good too.

Thank you to all the people who already contributed to Enso!

License

MIT