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 🙏

© 2024 – Pkg Stats / Ryan Hefner

@superblocksteam/embed

v1.2.0

Published

This repo contains the JavaScript SDK for embedding Superblocks Applications into external websites

Downloads

2

Readme

Superblocks Embed

This library is designed to simplify the integration of Superblocks applications within web projects. It provides a custom HTML element that can be used to embed Superblocks applications seamlessly into your web pages, handling initialization, authentication errors, navigation, and bidirectional communication.

Features

  • Easy embedding of Superblocks applications into web pages.
  • Support for dynamic updates of source URLs, tokens, and properties.
  • Custom event handlers for application loading, navigation, and authentication errors.

Installation

NPM

npm install @superblocksteam/embed

Alternatively, you can include the SuperblocksApp library directly from our CDN

<script src="https://prod-cdn.superblocks.com/packages/@superblocksteam/embed@latest/embed.bundle.js"></script>

Usage

Basic Embedding

To embed a Superblocks application, without custom authentication, you just need to set the src to the embed URL for you application. You can find the embed location here.

const sbApp = Superblocks.createSuperblocksEmbed({
    src: "https://app.superblocks.com/embed/applications/:applicationId",
});

document.body.appendChild(sbApp);

Custom authentication

To use custom authentication, generate a token following these instructions. Then pass the token to your embed:

const myToken = await fetch("/api/token");
const sbApp = Superblocks.createSuperblocksEmbed({
    src: "https://app.superblocks.com/embed/applications/:applicationId",
    token: myToken
});

document.body.appendChild(sbApp);

Properties

Pass in arbitrary properties to your embed, which will be accessible in the Superblocks App.

const properties = { myProp1: "test", myProp2: 1 }
const sbApp = Superblocks.createSuperblocksEmbed({
    src: "https://app.superblocks.com/embed/applications/:applicationId",
    properties,
});
document.body.appendChild(sbApp);

Style

Set the style of the iframe that loads the embedded app:

const sbApp = Superblocks.createSuperblocksEmbed({
  src: "https://app.superblocks.com/embed/applications/:applicationId",
  style: "height 400px; width: 100%"
})

Update the style:

sbApp.style.border = "1px solid black;"

Dynamically Updating Properties

You can dynamically update the token and properties of your Superblocks application after it has been embedded, without causing the full embed to reload:

const sbApp = Superblocks.createSuperblocksEmbed({
    src: "https://app.superblocks.com/embed/applications/:applicationId",
    id: "sb-app"
});
document.body.appendChild(sbApp);
...
const sbApp = document.getElementById("sb-app");
sbApp.token = "newAuthToken";
sbApp.properties = { myProp1: "newValue" };

API Reference

To enhance the readability and structure of your API Reference section, incorporating type information for clarity and completeness, you might format it as follows:


Methods

  • createSuperblocksEmbed(attributes: SuperblocksAppAttributes): SuperblocksAppElement

    Creates and returns a new superblocks-app element configured with the specified attributes.

Attributes

SuperblocksAppAttributes includes the following properties:

  • src: string: The URL of the Superblocks application to embed.
  • id?: string (optional): An identifier for the embed element.
  • token?: string (optional): Authentication token for the Superblocks application.
  • properties?: Record<string, unknown> (optional): Initial properties to pass to the Superblocks application.
  • style (optional): Style passed to the iframe element. By default, height and width are set to 100%.
  • onAppLoaded?: (event: AppLoadedEvent) => void (optional): Callback for the app loaded event.
  • onNavigation?: (event: NavigationEvent) => void (optional): Callback for navigation events.
  • onAuthError?: (event: AuthErrorEvent) => void (optional): Callback for authentication error events.
  • onEvent?: (eventName: string, payload: object) => void (optional): Callback for custom events emitted by the embedded application. Payload is an object of argument name to value.

Methods

Trigger custom events on the embedded application using the trigger function:

const sbApp = createSuperblocksEmbed(attributes);
sbApp.trigger("eventName", { arg1: "foo", arg2: "bar" });

Event Types

  • AppLoadedEvent: Fired when the Superblocks application has loaded successfully.

    • id: string: Identifier of the loaded application.
    • name: string: Name of the loaded application.
  • NavigationEvent: Fired on navigation events within the Superblocks application.

    • url: URL being navigated to.
    • appId?: string (optional): Identifier of the application being navigated to (if applicable).
  • AuthErrorEvent: Fired when there is an authentication error within the Superblocks application.

    • error: string: Description of the authentication error.