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

360dialog-connect-button

v1.0.1

Published

React component to trigger and consume the 360dialog Partner Integrated Onboarding process, as well as the 360dialog Permission Page.

Readme

360dialog Partner Integrated Onboarding

This package provides a button component to quickly integrate the 360dialog Partner Integrated Onboarding process into your application. It supports React.js as an importable component and Vanilla JavaScript / plain HTML via a CDN-hosted web component (<dialog-connect-button>), so you can use it on any website without a build step. To learn more about this process and how to participate in this as a 360dialog Partner, please visit our documentation or contact your account manager. If you want to become a 360dialog Partner in order to enable your clients to use the WhatsApp Business API, please get in touch with us.

Prerequisites

In order to access the 360dialog Partner Integrated Onboarding process you need to set your partner_redirect_url via the Partner API. This will be used to redirect the client after the onboarding process is finished. Important: To use the ConnectButton component the redirect URL needs to match the route, that has the button integrated.

Installation

With yarn

yarn add 360dialog-connect-button

With NPM

npm install 360dialog-connect-button

Getting started

React Usage

Add the connect button to your React app:

import { ConnectButton } from '360dialog-connect-button';

const App = () => {
  const handleCallback = callbackObject => {
    /* The callback function returns the client ID as well as all channel IDs, for which you're enabled to fetch the API key via the Partner API */

    console.log('client ID: ' + callbackObject.client);
    console.log('channel IDs: ' + callbackObject.channels);
  };

  return (
    <div>
      <ConnectButton partnerId={'your-partner-id'} callback={handleCallback} />
    </div>
  );
};

Vanilla JavaScript / HTML Usage

You can also use the connect button on any website without React or npm! Simply include the script from a CDN and use the <dialog-connect-button> HTML element.

CDN Installation

<!-- From unpkg -->
<script src="https://unpkg.com/360dialog-connect-button/dist/dialog-connect-button.umd.js"></script>

<!-- From jsdelivr -->
<script src="https://cdn.jsdelivr.net/npm/360dialog-connect-button/dist/dialog-connect-button.umd.js"></script>

Basic Example

<!DOCTYPE html>
<html>
  <head>
    <script src="https://unpkg.com/360dialog-connect-button/dist/dialog-connect-button.umd.js"></script>
  </head>
  <body>
    <dialog-connect-button
      partner-id="your-partner-id"
      label="Connect WhatsApp Business"
    >
    </dialog-connect-button>

    <script>
      document.addEventListener('dialog-connect-callback', event => {
        console.log('Client ID:', event.detail.client);
        console.log('Channels:', event.detail.channels);
      });
    </script>
  </body>
</html>

For more detailed vanilla JavaScript usage examples and API documentation, see VANILLA-USAGE.md.

Properties

Following properties are supported by the button component:

| Property name | Type | Description | Required | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | -------- | | partnerId | string | Your 360dialog Partner ID | ✅ | | callback | (callbackObject: {client: string, channels: string[], revokedChannels?: string[]}) => void | Callback function, that receives the returned client ID as well as channel IDs | ✅ | | requestedNumber | string | Optional parameter to request access for a specific phone number | | | label | string | Optional parameter to provide a custom button label | | | queryParameters | {email?: string, name?: string, state?: string, redirect_url?: string, next?: string, plan_selection?: string, flow?: string, io_signature?: string, io_timestamp?: string, preverified_phone_number_id?: string} | Optional query parameters that get passed to the sign up form for pre-filling | | | version | 'v1' \| 'v2' | Hub version to connect to — v1 uses hub.360dialog.com, v2 uses app.360dialog.com (default: 'v1') | | | useNewRedirect | boolean | Use the new CH IO redirect URL (default: false) | |

Styling

React Component Styling

The ConnectButton React component is an unstyled <button /> component. You can use any styling method, e.g. CSS-in-JS libraries such as styled-components.

import { ConnectButton } from '360dialog-connect-button';

const App = () => {
  const StyledConnectButton = styled(ConnectButton)`
    outline: none;
    background: #ff4369;
    color: white;
    padding: 8px 16px;
    border-radius: 3px;
    margin-top: 32px;
    border: none;
  `;

  return (
    <div>
      <StyledConnectButton
        partnerId={'your-partner-id'}
        callback={handleCallback}
      />
    </div>
  );
};

Vanilla JavaScript Styling

The <dialog-connect-button> web component can be styled using CSS custom properties (CSS variables) or regular CSS targeting the element.

Using CSS Custom Properties (Recommended)

<style>
  dialog-connect-button {
    --dialog-connect-bg: #007bff;
    --dialog-connect-color: white;
    --dialog-connect-hover-bg: #0056b3;
    --dialog-connect-padding: 12px 24px;
    --dialog-connect-border-radius: 6px;
    --dialog-connect-font-size: 16px;
  }
</style>

<dialog-connect-button
  partner-id="your-partner-id"
  label="Connect WhatsApp Business"
>
</dialog-connect-button>

Available CSS Custom Properties

| Property | Description | Default Value | | --------------------------------- | ------------------------- | --------------- | | --dialog-connect-bg | Background color | #007bff | | --dialog-connect-color | Text color | white | | --dialog-connect-border | Border style | none | | --dialog-connect-padding | Button padding | 12px 24px | | --dialog-connect-border-radius | Border radius | 4px | | --dialog-connect-font-size | Font size | 14px | | --dialog-connect-font-family | Font family | System fonts | | --dialog-connect-transition | CSS transition | all 0.2s ease | | --dialog-connect-hover-bg | Hover background color | Darker variant | | --dialog-connect-hover-color | Hover text color | Same as base | | --dialog-connect-active-bg | Active background color | Darker variant | | --dialog-connect-disabled-bg | Disabled background color | #ccc | | --dialog-connect-disabled-color | Disabled text color | #666 |

Using Regular CSS

<style>
  .my-connect-button {
    --dialog-connect-bg: #28a745;
    --dialog-connect-hover-bg: #218838;
    --dialog-connect-padding: 14px 28px;
    --dialog-connect-font-size: 18px;
    --dialog-connect-border-radius: 8px;
  }
</style>

<dialog-connect-button
  class="my-connect-button"
  partner-id="your-partner-id"
  label="🚀 Get Started"
>
</dialog-connect-button>