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

@powston-com/electrical-symbols

v0.1.0

Published

React SVG electrical schematic symbols for Australian single line diagrams (IEC 60617 / AS 60617)

Readme

@powston/electrical-symbols

React SVG electrical schematic symbols for Australian single line diagrams.

Typed, composable components following IEC 60617 / AS 60617 conventions, designed for solar PV, battery storage, and embedded generation EWR submissions.

Install

npm install @powston/electrical-symbols

Peer dependencies: react >= 18

Quick Start

import {
  SLDCanvas,
  GridConnection,
  EnergyMeter,
  MainSwitch,
  BusBar,
  CircuitBreaker,
  Isolator,
  Inverter,
  PVArray,
  BatteryBank,
  MENLink,
  Load,
  Connection,
  InfoBox,
} from "@powston/electrical-symbols";

function MySLD() {
  return (
    <SLDCanvas width={720} height={540} showGrid={false}>
      {/* Grid supply */}
      <GridConnection x={200} y={30} networkName="ENERGEX LV NETWORK" supplyDesc="1Ø 230V 50Hz" />

      {/* Meter */}
      <Connection from={{ x: 200, y: 42 }} to={{ x: 200, y: 56 }} />
      <EnergyMeter x={200} y={70} scheme="Net Energy" meterDesc="Import / Export" />

      {/* Main switch */}
      <Connection from={{ x: 200, y: 84 }} to={{ x: 200, y: 115 }} />
      <MainSwitch x={200} y={135} rating="63A" />
      <MENLink x={168} y={135} />

      {/* Bus */}
      <Connection from={{ x: 200, y: 155 }} to={{ x: 200, y: 195 }} />
      <BusBar from={{ x: 100, y: 195 }} to={{ x: 420, y: 195 }} label="MAIN SWITCHBOARD" />

      {/* Inverter branch */}
      <Connection from={{ x: 200, y: 195 }} to={{ x: 200, y: 240 }} />
      <Isolator x={200} y={250} label="AC Isolator" />
      <Connection from={{ x: 200, y: 264 }} to={{ x: 200, y: 286 }} />
      <Inverter x={200} y={310} make="Sungrow" model="SH10RS" rating="9.99 kW Single Phase" />

      {/* DC bus from inverter */}
      <Connection from={{ x: 200, y: 334 }} to={{ x: 200, y: 390 }} wireStyle="dc" />
      <Connection from={{ x: 120, y: 390 }} to={{ x: 280, y: 390 }} wireStyle="dc" />

      {/* PV array */}
      <Connection from={{ x: 120, y: 390 }} to={{ x: 120, y: 410 }} wireStyle="dc" />
      <Isolator x={120} y={420} dc />
      <Connection from={{ x: 120, y: 434 }} to={{ x: 120, y: 450 }} wireStyle="dc" />
      <PVArray x={120} y={468} capacity="20 kW" strings="4 MPPT" />

      {/* Battery */}
      <Connection from={{ x: 280, y: 390 }} to={{ x: 280, y: 410 }} wireStyle="dc" />
      <Isolator x={280} y={420} dc />
      <Connection from={{ x: 280, y: 434 }} to={{ x: 280, y: 450 }} wireStyle="dc" />
      <BatteryBank x={280} y={468} make="Sungrow" model="2× SBR224" capacity="44.8 kWh" coupling="DC Coupled" voltage="378-511V DC" />

      {/* Loads */}
      <Connection from={{ x: 380, y: 195 }} to={{ x: 380, y: 248 }} />
      <CircuitBreaker x={380} y={260} label="Load MCBs" />
      <Connection from={{ x: 380, y: 272 }} to={{ x: 380, y: 286 }} />
      <Load x={380} y={298} label="CONSUMER LOADS" />

      {/* Info boxes */}
      <InfoBox
        x={480} y={215}
        title="SYSTEM NOTES"
        lines={[
          "Export Limit: 5 kW (Partial)",
          "PQRM: Volt-VAR / Volt-Watt",
          "Metering: Net Energy",
        ]}
      />
      <InfoBox
        x={480} y={310}
        title="COMPLIANCE"
        lines={["AS/NZS 4777.1 & 4777.2", "AS/NZS 3000 | 5033 | 5139"]}
        fill="#f0fdf4"
        borderStroke="#16a34a"
        titleColor="#166534"
        textColor="#15803d"
      />
    </SLDCanvas>
  );
}

Components

Grid & Supply

| Component | Description | |-----------|-------------| | GridConnection | Distribution network supply point | | Transformer | Two-winding transformer |

Switching

| Component | Description | |-----------|-------------| | CircuitBreaker | MCB / MCCB | | Isolator | AC or DC switch-disconnector | | MainSwitch | Main supply switch | | Fuse | Fuse element |

Metering

| Component | Description | |-----------|-------------| | EnergyMeter | kWh meter (import/export) | | CTBlock | Current transformer |

Generation

| Component | Description | |-----------|-------------| | Inverter | Hybrid / string / micro inverter | | PVArray | Photovoltaic array with sun rays | | BatteryBank | Battery ESS with cell plates |

Protection

| Component | Description | |-----------|-------------| | RCD | RCD / RCBO | | SurgeProtector | SPD / varistor | | EarthSymbol | Protective earth | | MENLink | Multiple Earthed Neutral link |

Wiring

| Component | Description | |-----------|-------------| | Connection | Wire between two points (AC/DC/earth/control styles) | | BusBar | Heavy bus bar line with label | | Junction | Connection node dot | | Load | Generic consumer load (zigzag) |

Accessories

| Component | Description | |-----------|-------------| | DRMTerminal | Demand response mode terminal | | InfoBox | Annotation / notes box |

Layout

| Component | Description | |-----------|-------------| | SLDCanvas | SVG canvas wrapper with optional dev grid |

Port System

Every symbol exposes named ports — connection points at fixed offsets from its origin. Use ports to calculate wire start/end coordinates:

import { resolvePorts, circuitBreakerMeta } from "@powston/electrical-symbols";

const ports = resolvePorts(circuitBreakerMeta.ports, 200, 300);
// → [{ name: "top", absX: 200, absY: 288 }, { name: "bottom", absX: 200, absY: 312 }]

Or use the onPortsResolved callback on any symbol:

<CircuitBreaker
  x={200}
  y={300}
  rating="32A"
  onPortsResolved={(ports) => {
    // ports[0].absX, ports[0].absY, etc.
  }}
/>

Wire Styles

The Connection component supports these wireStyle values:

| Style | Appearance | Use | |-------|-----------|-----| | "ac" | Solid line | AC circuits | | "dc" | Long dash 6,3 | DC circuits | | "earth" | Short dash 4,2 | Earth / protective | | "control" | Fine dash, indigo | Control wiring | | "communication" | Dotted, blue | Comms / data |

Symbol Registry

All component metadata is available in SYMBOL_REGISTRY for building palettes, tooling, or documentation:

import { SYMBOL_REGISTRY } from "@powston/electrical-symbols";

SYMBOL_REGISTRY.forEach((meta) => {
  console.log(meta.id, meta.category, meta.ports);
});

Standards Reference

Symbols are based on:

  • IEC 60617 / AS 60617 — Graphical symbols for diagrams
  • AS/NZS 3000 — Wiring Rules
  • AS/NZS 4777.1 & 4777.2 — Grid connection of energy systems via inverters
  • AS/NZS 5033 — Installation and safety requirements for PV arrays
  • AS/NZS 5139 — Electrical installations - Safety of battery systems

License

MIT © Powston