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

nscomponentsreact

v0.6.3

Published

React Wrapper Components for NSComponents

Downloads

126

Readme

nsComponentsReact

React wrapper components for the NSComponents UI library.

This package exposes React-friendly wrappers around the generated NSComponents JavaScript and CSS assets, along with TypeScript types for the main component settings.

Features

  • React wrappers for NSComponents widgets
  • TypeScript type exports for component settings and callbacks
  • Bundled generated JS and CSS assets under build/generated
  • Support for React 18 and 19
  • Optional integration with react-router-dom for navigation components

Installation

Install the package and its peer dependencies:

npm install nscomponentsreact react react-dom react-router-dom

Peer dependency ranges:

  • react: ^18.0.0 || ^19.0.0
  • react-dom: ^18.0.0 || ^19.0.0
  • react-router-dom: ^6.0.0 || ^7.0.0

Available Exports

React components currently exported from the package:

  • NSAjaxReact
  • NSCalendarReact
  • NSDatePickerReact
  • NSDashboardReact
  • NSEditorReact
  • NSGridReact
  • NSHorizontalNavigationReact
  • NSMessageBoxReact
  • NSMultiselectDropdownReact
  • NSNavigationReact
  • NSPanelReact
  • NSTabNavigatorReact
  • NSTextBoxReact
  • DynamicComponentService

The package also exports the underlying NSComponents constructors such as NSGrid, NSNavigation, NSDashboard, NSTextBox, and related TypeScript types from src/index.ts.

Basic Usage

Text box

import React from "react";
import { NSTextBoxReact } from "nscomponentsreact";

export function SearchBox() {
  return (
    <NSTextBoxReact
      containerStyle={{ width: "280px" }}
      setting={{
        placeholder: "Search",
      }}
    />
  );
}

Horizontal navigation

NSHorizontalNavigationReact can use react-router-dom when rendered inside a router. Menu items can provide href or link, and the component will navigate for you.

import React from "react";
import { BrowserRouter } from "react-router-dom";
import {
  NSHorizontalNavigationReact,
  INSHorizontalNavigationMenu,
} from "nscomponentsreact";

const menuItems: INSHorizontalNavigationMenu[] = [
  { menuName: "Home", href: "/" },
  { menuName: "Orders", href: "/orders" },
  {
    menuName: "Admin",
    childMenus: [
      { menuName: "Users", href: "/admin/users" },
      { menuName: "Roles", href: "/admin/roles" },
    ],
  },
];

export function AppNavigation() {
  return (
    <BrowserRouter>
      <NSHorizontalNavigationReact
        setting={{
          dataSource: menuItems,
          enableAnimation: true,
          enableOpenOnClick: true,
        }}
      />
    </BrowserRouter>
  );
}

Dashboard with React content

NSDashboardReact supports React content components through the internal DynamicComponentService.

import React from "react";
import { NSDashboardReact } from "nscomponentsreact";

function SalesPanel() {
  return <div style={{ padding: 16 }}>Sales summary</div>;
}

export function DashboardExample() {
  return (
    <NSDashboardReact
      containerStyle={{ width: "100%" }}
      setting={{
        panelPerRow: 2,
        arrPanelSetting: [
          {
            title: "Overview",
            contentComponent: SalesPanel,
          },
        ],
      }}
    />
  );
}

TypeScript

The library exports interfaces for component settings, menu models, callbacks, and imperative refs. A few common examples:

  • INSTextBoxReactSetting
  • INSHorizontalNavigationReactSettings
  • INSHorizontalNavigationReactRef
  • INSDashboardReactSettings
  • INSGridSetting
  • INSNavigationSetting

See src/index.ts for the complete export surface.

Development

Useful local scripts:

npm run build
npm run lint
npm run format
npm test

Build Output

The library is bundled with Rollup and publishes:

  • CommonJS: build/index.js
  • ESM: build/index.esm.js
  • Types: build/index.d.ts

The build step also copies generated static assets from src/generated into build/generated.

Repository

License

MIT. See LICENSE.