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

@iriograph/vue-editor

v0.12.3

Published

Embeddable Vue editor for Iriograph semantic diagrams.

Readme

@iriograph/vue-editor

Embeddable Vue 3 WYSIWYG editor for Iriograph portable documents. Vue is a peer dependency; Core and the editor use the same exact lockstep release.

Install

npm install --save-exact @iriograph/core @iriograph/vue-editor vue

Import the public stylesheet explicitly:

import { IriographEditor } from "@iriograph/vue-editor";
import "@iriograph/vue-editor/styles.css";

Embed

<IriographEditor
  ref="editor"
  v-model="document"
  v-model:active-view-id="activeViewId"
  :runtime-context="projectionRuntimeContext"
  :ui-locale="uiLocale"
  :semantic-locales="semanticLocales"
  :authoring-context="resolvedAuthoringContext"
  :semantic-validation-context="resolvedSemanticValidationContext"
  :resource-iri-allocator="resourceIriAllocator"
  :document-identity-allocator="documentIdentityAllocator"
  :asset-access="assetAccess"
  :asset-options="workspaceAssetOptions"
  :workspace-locator="workspaceLocator"
  :pick-asset="pickWorkspaceAsset"
  @save="saveToWorkspace"
  @duplicated-as-new="openDuplicatedDocument"
  @update:ui-locale="persistUiLocale"
/>

runtimeContext contains resolved catalogs and a layout registry. authoringContext enables structured semantic editing with opaque roles, predicates, capabilities, and policy. Workspace storage, network, authentication, permissions, and persistence remain host responsibilities.

Languages

The editor defaults to English and includes Japanese. uiLocale controls package chrome and update:uiLocale lets a host persist the user preference outside the portable document. semanticLocales is an ordered preference for existing RDF labels and comments; when omitted it follows uiLocale. The preference also selects Canvas node, edge, group, and comment text transiently, ahead of the saved view locale. Neither option translates or rewrites Turtle, changes a named view or overlay, creates history, or marks the document dirty.

Built-in relation and icon catalogs keep exact IRIs while selecting English or Japanese presentation metadata. User-authored semantic text falls back deterministically when the requested language is unavailable.

Editing model

The right inspector separates Meaning and View.

Meaning starts with create resource, create relation, edit resource, and edit relation. It uses canvas selection and localized profile choices rather than IRI input. Resource/group creation, multi-target relations, membership, Seq/Alt order, inline new members, types, localized text, reconnection, and deletion compile to atomic Core transactions. Non-deleting actions do not add a second Preview/Apply screen.

View editing changes sparse geometry, templates, icons, colors, label placement, terminal markers, anchors, and straight/orthogonal/Bezier routes without modifying Turtle or starting global layout.

Group movement and resize preserve nested containment and every multi-membership intersection. Grid, snap, selection, viewport, work-area expansion, minimap, and temporary visibility are session state.

Save and drafts

Before a host-owned save shortcut, call:

const ready = await editor.value?.flushPendingEdits();
if (ready) save(document.value);

The editor's own save event is emitted only after a successful flush; its handler must save the current model without re-entering the same flush. Incomplete structured forms are not auto-applied.

pendingDraftsChanged covers Turtle, active-view overlay JSON, full-document JSON, and structured drafts.

Assets

assetOptions maps stable asset IRIs to human labels and optional paths. workspaceLocator provides normalized segment completion; pickAsset returns one asset IRI. The editor never saves path text, resolved URLs, or bytes as identity.

Bundled package icons work without weakening host policy for workspace or external assets.

Navigation and accessibility

The component exposes pan, zoom, fit, reveal, focus, selection, and snap methods. Read-only mode preserves navigation and selection while disabling semantic and presentation mutation.

The canvas has one keyboard tab stop and supports object navigation, marquee/multi-selection, batch drag, align/distribute, keyboard movement/resize, route editing, context menus, and accessible dialogs/status. One gesture creates one presentation history item.

Documentation

License

MIT. See LICENSE.