Socket
Book a DemoInstallSign in
Socket

@blac/devtools-ui

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@blac/devtools-ui

DevTools UI components for BlaC state management

latest
Source
npmnpm
Version
2.0.1
Version published
Maintainers
1
Created
Source

@blac/devtools-ui

Reusable DevTools UI components for BlaC state management. Provides in-app debugging tools that can be embedded as floating overlays or Picture-in-Picture windows.

Installation

npm install @blac/devtools-ui @blac/devtools-connect @blac/react @blac/core
# or
pnpm add @blac/devtools-ui @blac/devtools-connect @blac/react @blac/core
# or
yarn add @blac/devtools-ui @blac/devtools-connect @blac/react @blac/core

Quick Start

Step 1: Register the DevTools plugin:

import { getPluginManager } from '@blac/core';
import { createDevToolsBrowserPlugin } from '@blac/devtools-connect';

getPluginManager().register(
  createDevToolsBrowserPlugin({
    enabled: import.meta.env.DEV,
  }),
);

Step 2: Add the DevTools UI component:

import { BlacDevtoolsUi } from '@blac/devtools-ui';

function App() {
  return (
    <>
      {import.meta.env.DEV && <BlacDevtoolsUi />}
      <YourApp />
    </>
  );
}

Step 3: Toggle with Alt+D

Components

BlacDevtoolsUi

Auto-initializing DevTools overlay component. Uses Picture-in-Picture API when available (Chrome 116+), falls back to draggable overlay.

import { BlacDevtoolsUi } from '@blac/devtools-ui';

// Auto-detect best mode
<BlacDevtoolsUi />

// Force overlay mode (skip PiP)
<BlacDevtoolsUi mode="overlay" />

// Force Picture-in-Picture mode
<BlacDevtoolsUi mode="pip" />

DraggableOverlay

Floating DevTools window that can be dragged and resized.

import { DraggableOverlay } from '@blac/devtools-ui';

<DraggableOverlay
  onMount={(instancesBloc) => {
    // Custom initialization logic
  }}
/>;

PictureInPictureDevTools

Opens DevTools in a separate Picture-in-Picture window (Chrome 116+).

import { PictureInPictureDevTools, isPiPSupported } from '@blac/devtools-ui';

if (isPiPSupported()) {
  <PictureInPictureDevTools />;
}

DevToolsPanel

Core panel component for custom integrations (Chrome extension, etc.).

import { DevToolsPanel } from '@blac/devtools-ui';

<DevToolsPanel
  onMount={(instancesBloc) => {
    // Connect to data source
    return () => {
      // Cleanup
    };
  }}
/>;

Features

  • Instance List - View all active state containers
  • State Viewer - Inspect current state as JSON tree
  • State Diff - See what changed between state updates
  • Event Logs - Track state changes, creation, and disposal
  • Search & Filter - Find instances by name or class
  • Keyboard Shortcuts - Toggle with Alt+D, close with Esc

Keyboard Shortcuts

ShortcutAction
Alt+DToggle DevTools
EscClose DevTools

Custom Events

Toggle DevTools programmatically:

window.dispatchEvent(new CustomEvent('blac-devtools-toggle'));

Listen for time-travel events:

window.addEventListener('blac-devtools-time-travel', (event) => {
  const { targetState, restoredCount } = event.detail;
  console.log(`Restored ${restoredCount} blocs`);
});

Blocs

The DevTools UI uses its own BlaC-based state management:

import {
  DevToolsInstancesBloc,
  DevToolsSearchBloc,
  DevToolsDiffBloc,
  DevToolsLayoutBloc,
  DevToolsLogsBloc,
} from '@blac/devtools-ui';

API Reference

Exports

// Main components
export { BlacDevtoolsUi } from '@blac/devtools-ui';
export { DevToolsPanel } from '@blac/devtools-ui';
export { DraggableOverlay, defaultDevToolsMount } from '@blac/devtools-ui';
export { PictureInPictureDevTools, isPiPSupported } from '@blac/devtools-ui';

// Blocs
export {
  DevToolsInstancesBloc,
  DevToolsSearchBloc,
  DevToolsDiffBloc,
  DevToolsLayoutBloc,
  DevToolsLogsBloc,
} from '@blac/devtools-ui';

// Types
export type {
  DevToolsUIProps,
  InstanceData,
  DraggableOverlayProps,
  PictureInPictureDevToolsProps,
  BlacDevtoolsUiProps,
} from '@blac/devtools-ui';

Browser Support

BrowserOverlay ModePicture-in-Picture Mode
Chrome 116+YesYes
Chrome < 116YesNo
FirefoxYesNo
SafariYesNo
EdgeYesYes (Chromium-based)

License

MIT

FAQs

Package last updated on 11 Jan 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts