npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@it-enterprise/forcebpm-ui-kit

v1.0.8

Published

FBPM UI Kit

Readme

ForceBPM UI Kit

A Vue 3 component library for ForceBPM applications, built on top of Vuetify 3.

Installation

npm install @it-enterprise/forcebpm-ui-kit

Requirements

| Package | Version | Required | | -------------- | --------- | ---------------------------------- | | vue | ^3.0.0 | yes | | vuetify | ^3.0.0 | yes | | vue-i18n | ^11.2.8 | optional (needed for translations) | | @vueuse/core | ^14.1.0 | optional |

The package ships raw Vue SFC and SCSS sources, so the host application must use a bundler that can process .vue and .scss files (Vite, Webpack with vue-loader, etc.).

Usage

1. As a plugin

// main.js
import { createApp } from 'vue'
import App from './App.vue'

import vuetify from './plugins/vuetify'
import i18n from './plugins/i18n'
import emitter, { eventBusPlugin } from './plugins/eventBus'
import events from './plugins/eventBus/events'

import ForceBPMUiKit from '@it-enterprise/forcebpm-ui-kit'

const app = createApp(App)

app.use(vuetify)
app.use(i18n)
app.use(eventBusPlugin)

app.use(ForceBPMUiKit, { i18n, emitter, events })

app.mount('#app')

2. Event bus

Some components can be triggered programmatically through an external event bus. Pass a mitt (or compatible) instance as emitter and an events map that the components use to subscribe to the correct event names.

// plugins/eventBus/events.js
export default {
  modal: {
    sharingAccess: 'sharing-access'
  },
  confirm: 'confirm-dialog'
}
// trigger a modal from anywhere in the app
emitter.emit(events.modal.sharingAccess, payload)
emitter.emit(events.confirm, payload)

Plugin options

| Option | Type | Default | Description | | ---------------- | ---------------- | ------- | ----------------------------------------------------------------------------------------------------- | | registerGlobal | boolean | true | Register components globally on the app instance | | prefix | string | 'F' | Component name prefix (e.g., set to 'Fbpm' to expose FbpmAvatar instead of FAvatar) | | i18n | object \| null | null | vue-i18n instance — built-in translations are merged into it | | messages | object \| null | null | Extra translations deep-merged on top of the defaults | | emitter | object \| null | null | Event bus instance (mitt, tiny-emitter, etc.) provided to components via inject('fbpm-emitter') | | events | object | {} | Map of event names provided via inject('fbpm-events') |

Components

Layout & overlays

| Component | Description | | ---------------- | -------------------------------- | | FDialog | Generic modal dialog | | FConfirmDialog | Confirmation dialog | | FShare | Share dialog | | FContextMenu | Context menu | | FToolbar | Toolbar container | | FTabPanel | Tab panel inside a toolbar | | FViewerPanel | View-mode panel inside a toolbar | | FFilterPanel | Filter panel inside a toolbar | | FSortPanel | Sort panel inside a toolbar |

Inputs & pickers

| Component | Description | | ------------------ | -------------------------------- | | FSearchPanel | Search input panel | | FDatePicker | Date picker | | FMenuDatePicker | Date picker wrapped in a menu | | FTextFieldDate | Date text field | | FUserGroupPicker | User / user-group picker | | FLangSwitcher | Language switcher | | FTiptapEditor | Rich-text editor based on Tiptap | | FQueryBuilder | Visual query builder |

Feedback & state

| Component | Description | | ----------------- | ------------------------------- | | FLoader | Animated dots loader | | FPreLoader | Full-screen / overlay preloader | | FNoData | "No data" placeholder | | FNotify | Toast list | | FActionSnackbar | Action snackbar | | FPagination | Pagination control |

Display

| Component | Description | | -------------- | -------------------------------------------- | | FAvatar | User avatar with info menu | | FUserRoles | User roles display | | FHtmlContent | Safe HTML renderer (powered by DOMPurify) | | FTruncate | Truncating wrapper with tooltip | | FIcon | Icon component bound to the bundled icon set |

Utilities

import { hexToRGBA, createRadialGradient, colorCollection } from '@it-enterprise/forcebpm-ui-kit'

| Export | Description | | --------------------------- | ---------------------------------- | | hexToRGBA(hex, alpha) | Convert a hex color to rgba() | | createRadialGradient(...) | Build a CSS radial-gradient string | | colorCollection | Palette used by avatars / pickers |

Localization

Built-in locales:

  • en — English
  • uk — Українська
  • ru — Русский

Add more or override existing keys via the messages plugin option.

Development

npm install
npm run test         # run vitest in watch mode
npm run test:run     # single test run
npm run test:coverage
npm run lint
npm run format

License

ISC — see LICENSE.