react-shepherd 4.2.0 → 5.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,75 @@
1
+ # react
2
+
3
+ [![NPM](https://img.shields.io/npm/v/@shepherdpro/react.svg)](https://www.npmjs.com/package/@shepherdpro/react)
4
+
5
+ This is a React wrapper for the [Shepherd](https://github.com/@shepherdpro/react) tour library.
6
+ It's mainly a wrapper around the Shepherd library that exposes the tour object and methods to the context object
7
+ that can be passed into props for dynamic interactivity.
8
+
9
+ ## Install
10
+
11
+ Use this simple NPM command or whatever package manager is your favorite.
12
+
13
+ ```bash
14
+ npm install --save @shepherdpro/react
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ### Via Provider/Context
20
+
21
+ ```tsx
22
+ import { Component, useContext } from 'react';
23
+ import { ShepherdJourneyProvider, useShepherd } from '@shepherdpro/react';
24
+ import newSteps from './steps';
25
+
26
+ const tourOptions = {
27
+ defaultStepOptions: {
28
+ cancelIcon: {
29
+ enabled: true
30
+ }
31
+ },
32
+ useModalOverlay: true
33
+ };
34
+
35
+ function Button() {
36
+ const shepherd = useShepherd(ShepherdTourContext);
37
+ const tour = shepherd.Tour({
38
+ ...tourOptions,
39
+ steps: newSteps
40
+ });
41
+
42
+ return (
43
+ <button className="button dark" onClick={tour.start}>
44
+ Start Tour
45
+ </button>
46
+ );
47
+ }
48
+
49
+ export default function App() {
50
+ return (
51
+ <div>
52
+ <ShepherdJourneyProvider>
53
+ <Button />
54
+ </ShepherdJourneyProvider>
55
+ </div>
56
+ );
57
+ }
58
+ ```
59
+
60
+ ## Configuration
61
+
62
+ The following configuration options for a tour can be set on the `useShepherd` hook to control the way that Shepherd is used. This is simply a POJO passed to Shepherd to use the options noted in the Shepherd Tour [options](https://shepherdjs.dev/docs/Tour.html). You can also pass an API Key to use [Shepherd Pro](https://shepherdpro.com) features for analytics related events tracking.
63
+
64
+ ### apiKey
65
+
66
+ `PropTypes.string`
67
+ Used to connect your tours to a Pro instance to get additional user information and feedback.
68
+
69
+ ## Steps
70
+
71
+ The options are the same as Shepherd [options](https://shepherdjs.dev/docs/Step.html).
72
+
73
+ ## License
74
+
75
+ MIT
package/dist/index.d.ts CHANGED
@@ -1,22 +1,24 @@
1
- import React, { FC } from 'react';
2
- import Shepherd from 'shepherd.js';
3
- import Step from 'shepherd.js/src/types/step';
4
- import Tour from 'shepherd.js/src/types/tour';
5
- declare type StepType = 'back' | 'cancel' | 'next';
6
- export interface ShepherdButtonWithType extends Step.StepOptionsButton {
7
- type?: StepType;
8
- }
9
- export interface ShepherdOptionsWithType extends Step.StepOptions {
10
- buttons?: ReadonlyArray<Step.StepOptionsButton | ShepherdButtonWithType>;
11
- }
12
- interface ShepherdProps {
13
- steps: Array<ShepherdOptionsWithType>;
14
- tourOptions: Tour.TourOptions;
15
- children: React.ReactNode;
16
- }
17
- declare const ShepherdTourContext: React.Context<Shepherd.Tour | null>;
18
- declare const ShepherdTourContextConsumer: React.Consumer<Shepherd.Tour | null>;
19
- export declare const ShepherdTour: FC<ShepherdProps>;
20
- export type { default as Step } from 'shepherd.js/src/types/step';
21
- export type { default as Tour } from 'shepherd.js/src/types/tour';
22
- export { ShepherdTourContextConsumer as TourMethods, ShepherdTourContext };
1
+ import { Consumer } from 'react';
2
+ import { Context } from 'react';
3
+ import { FC } from 'react';
4
+ import { ReactNode } from 'react';
5
+ import { ShepherdPro } from 'shepherd.js/tour';
6
+
7
+ export declare const JourneyMethods: Consumer<ShepherdContextType | undefined>;
8
+
9
+ declare interface ShepherdContextType {
10
+ Shepherd: typeof ShepherdPro;
11
+ }
12
+
13
+ export declare const ShepherdJourneyContext: Context<ShepherdContextType | undefined>;
14
+
15
+ export declare const ShepherdJourneyProvider: FC<ShepherdProviderProps>;
16
+
17
+ declare interface ShepherdProviderProps {
18
+ apiKey?: string;
19
+ children?: ReactNode;
20
+ }
21
+
22
+ export declare const useShepherd: () => ShepherdPro;
23
+
24
+ export { }