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

intro.js-react16

v1.0.0

Published

Intro.js React Wrapper, temporay release until support for react 16 is built in.

Downloads

15

Readme

intro.js-react

Build Status Coverage Status

A small React wrapper around Intro.js. The wrapper provides support for both steps and hints.

Quicklinks

Example

You can find a small example here on codesandbox.io.

Installation

Install using Npm (don't forget to add the --save option if you're still using npm < 5):

$ npm install intro.js-react

Or Yarn:

$ yarn add intro.js-react

Make sure to have React & Intro.js installed (they're peer dependencies) and the Intro.js CSS definitions properly loaded into your project.

This would usually looks like:

import 'intro.js/introjs.css';

Usage

Two component are available for both steps and hints:

import { Steps, Hints } from 'intro.js-react';

Steps

Note: Steps indexes always starts from 0 in this wrapper instead of 1 like in Intro.js.

Basic example:

<Steps
  enabled={stepsEnabled}
  steps={steps}
  initialStep={initialStep}
  onExit={this.onExit}
/>

Props

| Name | Description | Type | Required | | --- | --- | :---: | :---: | | enabled | Defines if the steps are visible or not. Default: false. | Boolean | | | initialStep | Step index to start with when showing the steps. | Number | ✅ | | steps | All the steps. | Step[] | ✅ | | onExit | Callback called when the steps are disabled Required to force keeping track of the state when the steps are dismissed with an Intro.js event and not the enabled prop. | Function (stepIndex) | ✅ | | onStart | Callback called when the steps are enabled. | Function (stepIndex) | | | onChange | Callback called when the current step is changed. | Function (nextStepIndex, nextElement) | | | onBeforeChange | Callback called before changing the current step. If you want to prevent the transition to the next / previous step, you can return false in this callback (available since intro.js 2.8.0). | Function (nextStepIndex) | | | onAfterChange | Callback called after changing the current step. | Function (newStepIndex, newElement) | | | onPreventChange | Callback called if you prevented transitioning to a new step by returning false in onBeforeChange. | Function (stepIndex) | | | onComplete | Callback called when all the steps are completed. | Function () | | | options | Intro.js options. | Object | | |

Step

const steps = [
  {
    element: '.selector1',
    intro: 'test 1',
    position: 'right',
    tooltipClass: 'myTooltipClass',
    highlightClass: 'myHighlightClass',
  },
  {
    element: '.selector2',
    intro: 'test 2',
  },
  {
    element: '.selector3',
    intro: 'test 3',
  },
];

| Name | Description | Type | Required | | --- | --- | :---: | :---: | | element | CSS selector to use for the step. | String | | | intro | The tooltip text. | String | ✅ | | position | Position of the tooltip. | String | | | tooltipClass | CSS class of the tooltip. | String | | | highlightClass | CSS class of the helperLayer. | String | | |

Dynamic elements

If you want to use Intro.js Steps with dynamically created elements, you have to update the element associated to the step when it's available.

To do that, you can use the updateStepElement() API and pass to it the index of the step to update:

<Steps
  enabled={stepsEnabled}
  steps={steps}
  ref={steps => (this.steps = steps)}
/>
onBeforeChange = nextStepIndex => {
  if (nextStepIndex === 4) {
    this.steps.updateStepElement(nextStepIndex);
  }
}

Hints

Basic example:

<Hints
  enabled={hintsEnabled}
  hints={hints}
/>

Props

| Name | Description | Type | Required | | --- | --- | :---: | :---: | | enabled | Defines if the hints are visible or not. Default: false. | Boolean | | | hints | All the hints. | Hint[] | ✅ | | onClick | Callback called when a hint is clicked. | Function ( ) | | | onClose | Callback called when a hint is closed. | Function ( ) | | | options | Intro.js options. | Object | | |

Hint

const hints = [
  {
    element: '.selector1',
    hint: 'test 1',
    hintPosition: 'middle-middle',
  },
  {
    element: '.selector2',
    hint: 'test 2',
  },
];

| Name | Description | Type | Required | | --- | --- | :---: | :---: | | element | CSS selector to use for the hint. | String | ✅ | | hint | The tooltip text. | String | ✅ | | hintPosition | Position of the tooltip. | String | | |

Intro.js API

If for some reasons you need to use the Intro.js API, you can still get the Intro.js instance by using a ref on either the <Steps /> or <Hints /> components and using this.refName.introJs.

<Hints
  enabled={hintsEnabled}
  steps={hints}
  ref={hints => (this.hints = hints)}
/>

Intro.js options

You can find more details regarding Intro.js options and their default values in the documentation or directly in their code.

The wrapper overrides some Intro.js default options in the helpers/defaultProps.js file.

| Name | Description | Type | | --- | --- | :---: | | nextLabel | Next button label. | String | | prevLabel | Previous button label. | String | | skipLabel | Skip button label. | String | | doneLabel | Done button label. | String | | hidePrev | Hides the Previous button in the first step. | Boolean | | hideNextl | Hide the Next button in the last step. | Boolean | | tooltipPosition | Position of the tooltips. | String | | tooltipClass | CSS class of the tooltips. | String | | highlightClass | CSS class of the helperLayer. | String | | exitOnEsc | Exit by pressing Escape. | Boolean | | exitOnOverlayClick | Exit by clicking on the overlay layer. | Boolean | | showStepNumbers | Show steps number in a red circle. | Boolean | | keyboardNavigation | Allows navigation between steps using the keyboard. | Boolean | | showButtons | Show navigation buttons. | Boolean | | showBullets | Show bullets. | Boolean | | showProgress | Show progress indicator. | Boolean | | scrollToElement | Enables scrolling to hidden elements. | Boolean | | overlayOpacity | Opacity of the overlay. | Number | | scrollPadding | Padding when automatically scrolling to an element. | Number | | positionPrecedence | Precedence of positions. | String[] | | disableInteraction | Disables interaction inside elements. | Boolean | | hintPosition | Position of the hints. | String | | hintButtonLabel | Hint button label. | String | | hintAnimation | Enables hint animations. | Boolean |

License

Licensed under the MIT License, Copyright © HiDeoo.

See LICENSE for more information.