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

mngo-text-editor

v3.17.1

Published

A premium, highly interactive React and TypeScript component that mimics the aesthetics of the **Sublime Text Editor**. Build a beautiful developer profile or portfolio page instantly.

Readme

mngo-text-editor

A premium, highly interactive React and TypeScript component that mimics the aesthetics of the Sublime Text Editor. Build a beautiful developer profile or portfolio page instantly.

This library is available on npm at mngo-text-editor.


Live Demo


Features

  • Aesthetic UI: Smooth, dark terminal theme with window controls, responsive layout, and clean typography.
  • Dynamic File Tree: Interactive sidebar with folder toggles, arrow key keyboard navigation, and file selections.
  • Typewriter Compiler: Built-in typewriter HTML parser to simulate compiling and compiling success states.
  • Highly Modular: Decoupled component layers fully typed in TypeScript.
  • A11y (Accessibility): Screen-reader friendly DOM landmarks and full keyboard accessibility.
  • Native Fonts: Fast loading via native system font stacks.

Component Props

| Prop | Type | Default | Description | |---|---|---|---| | title | string | 'adityasuman' | The editor's primary project title shown in the header. | | files | FileNode[] | [] | Array describing the sidebar file/folder hierarchy. | | filesContent | FilesContentMap | {} | Key-value mapping of file keys to titles and HTML content. | | typeWriterFileKey | string | 'about_me.html' | The key of the file inside filesContent that will be typed out upon initial load. | | resumeFileKey | string | 'resume.html' | The key of the file containing the resume download button HTML. | | titleBarHeight | string | '25px' | CSS height of the window title bar. | | tabBarHeight | string | '30px' | CSS height of the editor tab bar. | | filesListBarWidth | string | '280px' | CSS width of the sidebar folder view. |


TypeScript Type Definitions

Below are the exact TypeScript interfaces for the props used by mngo-text-editor:

FileNode

Used to construct the sidebar directory structure dynamically.

export interface FileNode {
    type: 'file' | 'folder' | string; // Type of node
    srcKey: string;                    // Name/Key of the file or folder
    defaultOpen?: boolean;             // Open by default if it's a folder
    files?: FileNode[];                // Recursive child nodes (for folders)
    [key: string]: any;                // Supports additional developer attributes
}

FileContent

Represents the title and rich HTML layout data of an openable file.

export interface FileContent {
    title: string;                     // HTML Tag title wrapper (e.g. "About Me")
    content: string;                   // Rich HTML string representing file content
}

FilesContentMap

A map of file keys to their respective titles and contents.

export interface FilesContentMap {
    [fileKey: string]: FileContent;    // fileKey matches srcKey in FileNode (e.g., "about_me.html")
}

Usage

Basic Component Import

Install the package:

npm install mngo-text-editor

Use the component in your React application:

import React from 'react';
import { MNgoTextEditor, FileNode, FilesContentMap } from 'mngo-text-editor';
import 'mngo-text-editor/dist/style.css'; // Don't forget the CSS bundle!

const FILES: FileNode[] = [
  {
    type: "folder",
    srcKey: "my_project",
    defaultOpen: true,
    files: [
      { type: "file", srcKey: "about_me.html" },
      { type: "file", srcKey: "skills.html" }
    ]
  }
];

const FILES_CONTENT: FilesContentMap = {
  "about_me.html": {
    title: "About Me",
    content: "Hi, I am a <b>Software Engineer</b> utilizing React & Node.js."
  },
  "skills.html": {
    title: "Skills",
    content: "JavaScript, TypeScript, React, Next.js, CSS."
  }
};

function App() {
  return (
    <MNgoTextEditor
      title="portfolio"
      files={FILES}
      filesContent={FILES_CONTENT}
      typeWriterFileKey="about_me.html"
    />
  );
}

Available Scripts

In the project development workspace, you can run:

npm start

Runs the host application locally in development mode (using Vite).

npm run build

Compiles the static demo site into production assets.


License

All rights reserved under MNgo / MIT.