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

@hello-ai-company/editor-blocknote

v0.2.0

Published

OpenEditor BlockNote power layer: adapter, schema, commands, document index, navigation, and optional math/diagram/code. Requires BlockNote ^0.54.2.

Readme

@hello-ai-company/editor-blocknote

0.2.0

Requires editor-core ^0.2.0; BlockNote peers remain ^0.54.2, with math/diagram/code optional. Adds optional persistent database view configuration contracts and an accessible BlockEditDialog, improves outline/navigation and editing controls, and retains legacy database filter availability without requiring structured-filter support. Hosts still own data, permissions and persistence. Upgrade core and review its validation limits first. See the migration guide.

OpenEditor BlockNote power layer on BlockNote ^0.54.2 (MPL-2.0).

Install

npm install @hello-ai-company/editor-blocknote @hello-ai-company/editor-core
npm install @blocknote/core@^0.54.2 @blocknote/react@^0.54.2 react react-dom

Optional features (MPL-2.0 BlockNote packages; XL exporters stay optional/uninstalled):

npm install @blocknote/math-block@^0.54.2
npm install @blocknote/diagram-block@^0.54.2
npm install @blocknote/code-block@^0.54.2
import { createOpenEditorPowerPreset } from "@hello-ai-company/editor-blocknote";
import { createMathPowerFeature } from "@hello-ai-company/editor-blocknote/math";

const power = createOpenEditorPowerPreset({
  features: [createMathPowerFeature()]
});

Peer compatibility

| BlockNote | npm peer resolve | Source typecheck | Consumer smoke (widened peers) | | --- | --- | --- | --- | | 0.54.2 | PASS | PASS | PASS | | 0.52.1 | FAIL (ERESOLVE) | FAIL (syntaxHighlighter / missing math-diagram pkgs) | PASS (matrix-only; not supported) |

Decision: keep peerDependencies at ^0.54.2. Hosts still on BlockNote ^0.52.1 must upgrade before adopting this package. See blocknote-compat.md.

Exports

| Subpath | Purpose | |---------|---------| | . | Adapter, schema, commands, document index, references, preset | | ./react | Outline, quick nav, palette, block actions | | ./math | Optional math feature | | ./diagram | Optional Mermaid diagram feature | | ./code | Optional Shiki syntax highlighting | | ./power.css | OpenEditor-owned UI styles |

Host-owned saved database views

Database presentation settings are optional host-owned state. Pass a DatabaseViewConfigProvider through DatabaseViewRuntime.databaseViewConfig (or as the third argument to createDatabaseViewRuntimeFromStore). The provider stores one versioned config per database and view identity; it does not change EditorDocument or the editor-core database model.

import type { DatabaseViewConfig, DatabaseViewConfigProvider } from
  "@hello-ai-company/editor-blocknote";

const configs = new Map<string, DatabaseViewConfig>();
const key = (databaseId: string, viewId: string) => JSON.stringify([databaseId, viewId]);
const databaseViewConfig: DatabaseViewConfigProvider = {
  async load(databaseId, viewId) {
    return configs.get(key(databaseId, viewId)) ?? null;
  },
  async save(config) {
    configs.set(key(config.databaseId, config.viewId), config);
  },
  async list(databaseId) {
    return [...configs.values()]
      .filter((config) => config.databaseId === databaseId)
      .map(({ databaseId, viewId, viewType }) => ({ databaseId, viewId, viewType }));
  }
};

load is validated before the initial row query. Property-bound filters, sorts, and renderer selectors are checked against current database metadata. The optional list(databaseId) returns only view identities and lets hosts discover generated view IDs that are not present in EditorDatabase.views. If a load succeeds with no config, OpenEditor saves a validated default so the new view can be listed. Saves contain query, filters, sort, and presentation selectors only; row data, trash, pagination, focus, and loading state are never part of DatabaseViewConfig. A save failure leaves the current view usable and exposes a retry action.

If load fails, or property metadata needed to validate a saved setting is unavailable, OpenEditor shows a local fallback and blocks config writes until an explicit retry successfully rehydrates the view. + View is enabled only when the host implements both save and list; registration is confirmed by rediscovery before the editor switches to the new identity.

License boundary

  • Never depend on @blocknote/xl-*
  • Optional BlockNote packages are MPL-2.0; their XL exporter peers are marked optional and unused

Hot path

Do not call editor.document + full serializeEditorDocument on every keystroke. Use createBlockChangeBridge / useOpenEditorBlockChanges and createDocumentIndex().applyChanges(...).

Publication

Metadata targets public npmjs (publishConfig.access: public). Versions 0.1.0 and 0.1.1 are already published and immutable. Publishing 0.2.0 requires a reviewed main commit and an owner-triggered release; this repository does not auto-publish on merge.