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

ui-layout-manager-dev

v0.0.4

Published

A react component to manage layout and themes in single page applications.

Readme

ui-layout-manager

A react component to manage layouts and themes in single page applications.

Link to storybook.

Developing

Install Libraries:

npm i

Run Storybook:

npm run storybook

Build Storybook:

npm run build-storybook

Build the library:

npm run build

Developing Locally Using Storybook

The configuration needed for developing the application locally using storybook has already been added. Run npm run storybook to start the server and update the relevant components and stories to see the changes in the UI.

Developing Locally Using npm link

To test the library locally by importing it into another react application, use the following steps:

  • run npm link in the component library folder.
  • run npm link ui-layout-manager in the local application which will import the library
  • You should now be able to import the component into the local application
  • run npm run build in the component library to push the changes to the local application

Background

As I began scoping out the observability platform from the ground up, it quickly became clear that the UI tools would become increasingly complex. The current approach of hardcoding UI layouts is not practical for managing more complex applications. This realization underscored the need for a layout manager, which motivated the development of this React component.

To ensure reusability and broad adoption, I decided to develop this layout manager as a standalone React library that can be integrated into any application.

Features

This layout manager component will provide the following features:

  • JSON-Based Layout Definition:
    • Define the entire application layout through a structured JSON object.
  • Dynamic Component Injection:
    • Programmatically load components into designated containers within the layout.
  • Support for Multiple Layouts:
    • Define and switch between multiple layout configurations using JSON.
  • Theme Support:
    • Define themes in JSON.
    • Load and apply themes dynamically across components.
  • Layout Persistence:
    • Cache layout state to local storage.
    • Load the saved layout state automatically on startup.
  • Collapsible Containers:
    • Allow containers to collapse into side menus for a cleaner and more flexible UI.
  • Tabbed Containers:
    • Define tabs within a container, each capable of rendering a different custom component.
  • Resizable and Movable Containers:
    • All containers should be fully resizable and draggable, giving users complete control over their workspace layout.

The objective is to abstract all layout logic away from the application developer. Developers should be able to define a layout, register their components, and integrate everything into a single-page application—without needing to manage layout behavior themselves.

Example JSON Document

To define the layout, the component will use a grid system represented by a JSON object. This grid system will allow developers to:

  • Position and size containers on a grid
  • Define which components go into each container
  • Specify tabbed content within containers
  • Configure collapsible menus for minimized or hidden containers

An example JSON schema will be provided as the layout specification is finalized. The design for collapsible menus will follow a model similar to applications like Adobe Photoshop, where panels can be collapsed and docked for space efficiency and quick access.