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

@ryanmakes/side-pane-studio

v1.1.2

Published

Side Pane Studio is a visual builder for Dynamics 365 and Power Platforrm model-driven app side panes

Downloads

369

Readme

Side Pane Studio

Side Pane Studio is a visual builder for Dynamics 365 and Power Apps model-driven app side panes. It runs inside Power Platform Toolbox (PPTB), lets makers configure a pane without hand-writing JavaScript, previews the result, and generates the code needed to open the pane from a form, grid, command bar button, field change, or manual script.

What It Builds

Side panes can target:

  • Custom pages
  • Dataverse table records
  • Dataverse table lists
  • HTML or JavaScript web resources
  • Dashboards
  • Global search results (the studio warns that search is an undocumented navigateTo page type)

The generated configuration includes pane presentation, target content, trigger wiring, context handling, and behavior options such as pane reuse, expansion, and closing other panes.

Table-record targets support a form, tab, and JSON form data. Table-list targets support system and personal views. Metadata pickers include custom table quick filters, and record context can come from the current record, a selected row, a static record ID, or a clicked lookup tag.

Preview and Generate

  • Mock previews pane layout and presentation.
  • Form uses connected table metadata and form XML.
  • Grid uses a selected Dataverse view, its column order and display labels, and up to 10 records. Checkbox selection and Preview command let you try the configured interaction. Grid state survives workbench navigation within the current session.
  • Basic Script generates self-contained JavaScript.
  • Shared Library generates a handler that calls SidePaneHelper. Download the runtime from the Output panel, publish it as spstudio_/scripts/sidepane.runtime.js, and load it before the handler.
  • Command Steps provides deployment and trigger-wiring instructions.

Triggers include form load, form/grid/subgrid command buttons, grid/subgrid row selection, field change, lookup tag click, and console/manual execution. Validation blocks copying invalid configurations. Clipboard failures provide a manual-copy fallback.

Previews do not open a live side pane inside PPTB. Publish and test the generated script in the target model-driven app before shipping it.

Usage Guide

Start with the basic usage guide for the end-to-end workflow: connect PPTB, configure a target, preview the pane, generate code, and deploy the result into a model-driven app.

The user instruction manual starts with an installed tool and covers configuration, deployment, and troubleshooting. For installation and source builds, see How-To-Build.md.

See Change-Log.md for the v1.1.1 change summary.

Requirements

  • Node.js 20.19.0 or newer for local development, as declared in package.json
  • PPTB with host API 1.2.0 or newer and an active Dataverse connection
  • Access to a Dynamics 365 or Power Apps model-driven app environment

Local Development

Install dependencies:

npm install

Start the Vite dev server:

npm run dev

Build the package:

npm run build

The studio build is written to dist/. To build the separate shared runtime:

npm run build:runtime

This writes dist-runtime/sidepane.runtime.js for deployment as the shared JavaScript web resource. Basic Script output does not need that runtime.

Run tests:

npm test

Run type checking:

npm run typecheck

Run lint and test coverage:

npm run lint
npm run coverage

Use npm run preview to serve a production build locally. A standalone browser does not supply the PPTB and Dataverse APIs needed for connected features.

Project Structure

  • src/ - React app, services, types, and PPTB integration code.
  • src/components/ - Workbench panels, preview UI, config inputs, and output UI.
  • src/services/ - Code generation, validation, metadata, and form XML helpers.
  • src/contexts/ - Theme and preview session state.
  • src/runtime/ - Shared SidePaneHelper runtime and its entry point.
  • src/__tests__/ - Automated regression tests.
  • documentation/ - User-facing guides and supporting docs.

Notes

Side Pane Studio saves the current configuration through PPTB settings when available, so the last pane setup can be restored the next time the tool opens. If restoration fails, Retry restore or Continue with defaults lets you recover before new settings overwrite the saved configuration. Connection changes clear environment-specific selections and invalidate metadata and preview state. The studio follows PPTB's light or dark theme.