{"_id":"@adi-prasetyo/react-joyride","name":"@adi-prasetyo/react-joyride","dist-tags":{"adp":"2.9.3-adp.1","latest":"2.9.3-adp.1"},"versions":{"2.9.3-adp.1":{"name":"@adi-prasetyo/react-joyride","version":"2.9.3-adp.1","description":"Create guided tours for your apps (fork with additional fixes)","author":{"name":"Gil Barbara","email":"gilbarbara@gmail.com"},"contributors":[{"name":"Adi Prasetyo"}],"repository":{"type":"git","url":"git+https://github.com/adi-prasetyo/react-joyride.git"},"bugs":{"url":"https://github.com/adi-prasetyo/react-joyride/issues"},"homepage":"https://github.com/adi-prasetyo/react-joyride","keywords":["react","react-component","tooltips","joyride","walkthroughs","tour"],"main":"./dist/index.js","module":"./dist/index.mjs","exports":{"import":"./dist/index.mjs","require":"./dist/index.js"},"types":"dist/index.d.ts","sideEffects":false,"license":"MIT","peerDependencies":{"react":"15 - 19","react-dom":"15 - 19"},"dependencies":{"@gilbarbara/deep-equal":"^0.3.1","deep-diff":"^1.0.2","deepmerge":"^4.3.1","is-lite":"^1.2.1","react-floater":"^0.9.4","react-innertext":"^1.1.5","react-is":"^19.1.1","scroll":"^3.0.1","scrollparent":"^2.1.0","tree-changes":"^0.11.3","type-fest":"^4.41.0"},"devDependencies":{"@arethetypeswrong/cli":"^0.18.2","@gilbarbara/eslint-config":"^0.8.8","@gilbarbara/node-helpers":"^0.1.0","@gilbarbara/prettier-config":"^1.0.0","@gilbarbara/tsconfig":"^0.2.3","@playwright/experimental-ct-react":"^1.54.1","@size-limit/preset-big-lib":"^11.2.0","@swc/core":"^1.13.3","@testing-library/dom":"^10.4.1","@testing-library/jest-dom":"^6.6.4","@testing-library/react":"^16.3.0","@total-typescript/shoehorn":"^0.1.2","@types/exenv":"^1.2.2","@types/node":"^24.1.0","@types/react":"^19.1.9","@types/react-dom":"^19.1.7","@types/scroll":"^3.0.3","@types/scrollparent":"^2.0.3","@vitejs/plugin-react-swc":"^3.11.0","@vitest/coverage-v8":"^3.2.4","caniuse-lite":"^1.0.30001731","cross-env":"^10.0.0","csstype":"^3.1.3","del-cli":"^6.0.0","husky":"^9.1.7","is-ci-cli":"^2.2.0","jest-extended":"^6.0.0","jsdom":"^26.1.0","react":"^19.1.1","react-dom":"^19.1.1","repo-tools":"^0.3.1","size-limit":"^11.2.0","ts-node":"^10.9.2","tsup":"^8.5.0","typescript":"^5.9.2","vite-tsconfig-paths":"^5.1.4","vitest":"^3.2.4"},"scripts":{"build":"pnpm run clean && tsup && ts-node scripts/fix-cjs.ts","watch":"tsup --watch","clean":"del dist/*","lint":"eslint --fix src test","typecheck":"tsc -p test/tsconfig.json","typevalidation":"attw -P","test":"is-ci \"test:coverage\" \"test:watch\"","test:coverage":"vitest run --coverage","test:watch":"vitest watch","e2e":"playwright test -c playwright-ct.config.ts","e2e:debug":"pnpm run e2e -- --project=chromium --debug","e2e:ui":"pnpm run e2e -- --ui","format":"prettier \"**/*.{js,jsx,ts,tsx}\" --write","validate":"pnpm run lint && pnpm run typecheck && pnpm run test:coverage && pnpm run e2e && pnpm run build && pnpm run size && pnpm run typevalidation","size":"size-limit","prepare":"husky","prepublishOnly":"pnpm run validate"},"tsup":{"dts":true,"entry":["src/index.tsx"],"format":["cjs","esm"],"target":"es2018","sourcemap":true,"splitting":false},"eslintConfig":{"extends":["@gilbarbara/eslint-config","@gilbarbara/eslint-config/vitest","@gilbarbara/eslint-config/testing-library"],"overrides":[{"files":["test/**/*.ts?(x)"],"rules":{"no-console":"off","no-constructor-return":"off","prefer-destructuring":"off","jsx-a11y/anchor-has-content":"off","jsx-a11y/anchor-is-valid":"off","react/destructuring-assignment":"off","react/jsx-filename-extension":"off","react/prop-types":"off"}}]},"prettier":"@gilbarbara/prettier-config","size-limit":[{"name":"commonjs","path":"./dist/index.js","limit":"45 kB"},{"name":"esm","path":"./dist/index.mjs","limit":"35 kB"}],"_id":"@adi-prasetyo/react-joyride@2.9.3-adp.1","gitHead":"10ff4a99b6732512400b33783e98a9ed412db4b8","_nodeVersion":"22.16.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-MbUioo3kskOVZCF1kUXXQo+K0HN0gEnIIi+PRaU9Idtu9mum64tkPDH0SEhwdO9S159s4wQAxCKv55m6MiLdrA==","shasum":"dd7f8b331d945b834908899c05e4df31b04c2f47","tarball":"https://registry.npmjs.org/@adi-prasetyo/react-joyride/-/react-joyride-2.9.3-adp.1.tgz","fileCount":31,"unpackedSize":535380,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG78OtYNVKZjKIw5er4np6XkU4w31d3oUf40Hug5MGQcAiA2fDI+sBAS+q1tjlvVjXFECiDl87g5VdV1SYQTU95xyA=="}]},"_npmUser":{"name":"adi-prasetyo","email":"theghostsquad00@gmail.com"},"directories":{},"maintainers":[{"name":"adi-prasetyo","email":"theghostsquad00@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-joyride_2.9.3-adp.1_1754363517577_0.18130024896197772"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-05T03:11:57.471Z","2.9.3-adp.1":"2025-08-05T03:11:57.853Z","modified":"2025-08-05T03:11:58.137Z"},"maintainers":[{"name":"adi-prasetyo","email":"theghostsquad00@gmail.com"}],"description":"Create guided tours for your apps (fork with additional fixes)","homepage":"https://github.com/adi-prasetyo/react-joyride","keywords":["react","react-component","tooltips","joyride","walkthroughs","tour"],"repository":{"type":"git","url":"git+https://github.com/adi-prasetyo/react-joyride.git"},"contributors":[{"name":"Adi Prasetyo"}],"author":{"name":"Gil Barbara","email":"gilbarbara@gmail.com"},"bugs":{"url":"https://github.com/adi-prasetyo/react-joyride/issues"},"license":"MIT","readme":"# React Joyride\r\n\r\n[![](https://badge.fury.io/js/react-joyride.svg)](https://www.npmjs.com/package/react-joyride) [![CI](https://github.com/gilbarbara/react-joyride/actions/workflows/main.yml/badge.svg)](https://github.com/gilbarbara/react-joyride/actions/workflows/main.yml) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=gilbarbara_react-joyride&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=gilbarbara_react-joyride) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=gilbarbara_react-joyride&metric=coverage)](https://sonarcloud.io/summary/new_code?id=gilbarbara_react-joyride)\r\n\r\n[![Joyride example image](http://gilbarbara.com/files/react-joyride.png)](https://react-joyride.com/)\r\n\r\n#### Create awesome tours for your app!\r\n\r\nShowcase your app to new users or explain functionality of new features.\r\n\r\nIt uses [react-floater](https://github.com/gilbarbara/react-floater) for positioning and styling.  \r\nAnd you can use your own components too!\r\n\r\n**View the demo [here](https://react-joyride.com/)** (or the codesandbox [examples](https://codesandbox.io/s/github/gilbarbara/react-joyride-demo))\r\n\r\n**Read the [docs](https://docs.react-joyride.com/)**\r\n\r\nTalk about it on the [Discussions board](https://github.com/gilbarbara/react-joyride/discussions).\r\n\r\n## 🔀 About This Fork\r\n\r\n> **Note**: This is a maintained fork of the original react-joyride with modern dependency updates and React 19 compatibility.\r\n\r\n**Fork Repository**: [adi-prasetyo/react-joyride](https://github.com/adi-prasetyo/react-joyride)  \r\n**Branch**: `adp-maintained`  \r\n**Original**: [gilbarbara/react-joyride](https://github.com/gilbarbara/react-joyride)\r\n\r\n### Key Differences from Original:\r\n- ✅ **React 19 Support** - Full compatibility with React 19\r\n- ✅ **Modern Dependencies** - Updated to latest secure versions  \r\n- ✅ **Security Fixes** - Eliminated critical vulnerabilities\r\n- ✅ **Updated Tooling** - Vitest 3.x, TypeScript 5.9, modern build tools\r\n- ✅ **Backward Compatible** - Same API, no breaking changes for consumers\r\n\r\n**Installation for this fork:**\r\n```bash\r\nnpm install github:adi-prasetyo/react-joyride#adp-maintained\r\n```\r\n\r\nFor detailed differences, see [Fork Documentation](docs/fork-differences.md).\r\n\r\n## Setup\r\n\r\n```bash\r\nnpm i react-joyride\r\n```\r\n\r\n## Getting Started\r\n\r\n```jsx\r\nimport Joyride from 'react-joyride';\r\n\r\nexport class App extends React.Component {\r\n  state = {\r\n    steps: [\r\n      {\r\n        target: '.my-first-step',\r\n        content: 'This is my awesome feature!',\r\n      },\r\n      {\r\n        target: '.my-other-step',\r\n        content: 'This another awesome feature!',\r\n      },\r\n      ...\r\n    ]\r\n  };\r\n\r\n  render () {\r\n    const { steps } = this.state;\r\n\r\n    return (\r\n      <div className=\"app\">\r\n        <Joyride\r\n          steps={steps}\r\n          ...\r\n        />\r\n        ...\r\n      </div>\r\n    );\r\n  }\r\n}\r\n```\r\n\r\n> If you need to support legacy browsers you need to include the [scrollingelement](https://github.com/mathiasbynens/document.scrollingElement) polyfill.\r\n\r\n---\r\n\r\nSponsored by\r\n\r\n[![Frigade](https://files.gilbarbara.dev/media/frigade-sponsor-v2.png)](https://frigade.com/?source=joyride)\r\n\r\nReact Joyride is proud to be sponsored by [Frigade](https://frigade.com/?source=joyride), a developer tool for building better product onboarding: guided tours, getting started checklists, announcements, etc.\r\n\r\n---\r\n\r\n## Development\r\n\r\nSetting up a local development environment is easy!\r\n\r\nClone (or fork) this repo on your machine, navigate to its location in the terminal and run:\r\n\r\n```bash\r\nnpm install\r\nnpm link # link your local repo to your global packages\r\nnpm run watch # build the files and watch for changes\r\n```\r\n\r\nNow clone https://github.com/gilbarbara/react-joyride-demo and run:\r\n\r\n```bash\r\nnpm install\r\nnpm link react-joyride # just link your local copy into this project's node_modules\r\nnpm start\r\n```\r\n\r\n**Start coding!** 🎉\r\n","readmeFilename":"README.md","_rev":"1-3bd1c5fd97f556a659c9706800b449f7"}