{"_id":"@brainfish-ai/wayfinder-vue","_rev":"3-0f4c55c262d0c71bcf86fe502ab861ae","name":"@brainfish-ai/wayfinder-vue","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@brainfish-ai/wayfinder-vue","version":"0.1.0","keywords":["wayfinder","product-tour","vue","onboarding"],"license":"MIT","_id":"@brainfish-ai/wayfinder-vue@0.1.0","maintainers":[{"name":"ajainvivek","email":"ajainvivek07@gmail.com"},{"name":"johnfumaster","email":"johnfumaster@gmail.com"},{"name":"charlie.shen.brainfi.sh","email":"charlie.shen@brainfi.sh"},{"name":"e.brainfish","email":"emmanuel@brainfi.sh"}],"dist":{"shasum":"38f992f7c94472a714b1d81534a132f72bd7bf1b","tarball":"https://registry.npmjs.org/@brainfish-ai/wayfinder-vue/-/wayfinder-vue-0.1.0.tgz","fileCount":11,"integrity":"sha512-/23LXI9h6XtK3WSzrlJwauVbtpx7H8/8uyfrl5qSqJafuw+2pLm2c2d8KQzwibJyWg81O/3/+diD+fQfTCQmmQ==","signatures":[{"sig":"MEUCIDPrEaOm22Z2Y5Me/JQ7wU45rHOj3BmimWeOJapEnXeuAiEAp6qG8A6IUa//tMzfTBWaWPSejMh3LCFIT9AzINTtkB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11954},"main":"./dist/wayfinder-vue.umd.cjs","type":"module","_from":"file:packages/vue/package.tgz","types":"./dist/index.d.ts","module":"./dist/wayfinder-vue.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/wayfinder-vue.js","require":"./dist/wayfinder-vue.umd.cjs"}},"scripts":{"dev":"node ../../node_modules/.bin/vite build --watch","build":"node ../../node_modules/.bin/vite build","typecheck":"node ../../node_modules/.bin/tsc --noEmit"},"_npmUser":{"name":"ajainvivek","email":"ajainvivek07@gmail.com"},"_resolved":"/home/runner/work/brainfish-wayfinder/brainfish-wayfinder/packages/vue/package.tgz","_integrity":"sha512-/23LXI9h6XtK3WSzrlJwauVbtpx7H8/8uyfrl5qSqJafuw+2pLm2c2d8KQzwibJyWg81O/3/+diD+fQfTCQmmQ==","_npmVersion":"10.9.4","description":"Vue helpers for @wayfinder/core — stable tour targets that survive class obfuscation","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.29"},"peerDependencies":{"vue":">=3.0.0","@brainfish-ai/wayfinder-core":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/wayfinder-vue_0.1.0_1773872855148_0.8635223398817351","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@brainfish-ai/wayfinder-vue","version":"0.1.1","keywords":["wayfinder","product-tour","vue","onboarding"],"license":"MIT","_id":"@brainfish-ai/wayfinder-vue@0.1.1","maintainers":[{"name":"ajainvivek","email":"ajainvivek07@gmail.com"},{"name":"johnfumaster","email":"johnfumaster@gmail.com"},{"name":"charlie.shen.brainfi.sh","email":"charlie.shen@brainfi.sh"},{"name":"e.brainfish","email":"emmanuel@brainfi.sh"}],"dist":{"shasum":"ec6f60afc086cc83efccfbdb339783c73bf85c03","tarball":"https://registry.npmjs.org/@brainfish-ai/wayfinder-vue/-/wayfinder-vue-0.1.1.tgz","fileCount":11,"integrity":"sha512-/GLT0CLjM5RVn1YM0LY2auLAqRxNp03OU6WBdHGI55XUOqTLWGzzUAwFuRqZXvowrWTObfhqrLZF7SfnchPKbQ==","signatures":[{"sig":"MEUCIFk3F65mjlM7iGY17gtEVHdOv8U0HMPDxQwDNy2CoMMDAiEAlQtadSmgAIhjyT6SG7JtTPHkeAkLzoVtOAftKD+5tXA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11954},"main":"./dist/wayfinder-vue.umd.cjs","type":"module","_from":"file:packages/vue/package.tgz","types":"./dist/index.d.ts","module":"./dist/wayfinder-vue.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/wayfinder-vue.js","require":"./dist/wayfinder-vue.umd.cjs"}},"scripts":{"dev":"node ../../node_modules/.bin/vite build --watch","build":"node ../../node_modules/.bin/vite build","typecheck":"node ../../node_modules/.bin/tsc --noEmit"},"_npmUser":{"name":"ajainvivek","email":"ajainvivek07@gmail.com"},"_resolved":"/home/runner/work/brainfish-wayfinder/brainfish-wayfinder/packages/vue/package.tgz","_integrity":"sha512-/GLT0CLjM5RVn1YM0LY2auLAqRxNp03OU6WBdHGI55XUOqTLWGzzUAwFuRqZXvowrWTObfhqrLZF7SfnchPKbQ==","_npmVersion":"10.9.4","description":"Vue helpers for @wayfinder/core — stable tour targets that survive class obfuscation","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.29"},"peerDependencies":{"vue":">=3.0.0","@brainfish-ai/wayfinder-core":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/wayfinder-vue_0.1.1_1773878396770_0.6659842104384006","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@brainfish-ai/wayfinder-vue","version":"0.1.2","description":"Vue helpers for @wayfinder/core — stable tour targets that survive class obfuscation","keywords":["wayfinder","product-tour","vue","onboarding"],"license":"MIT","type":"module","main":"./dist/wayfinder-vue.umd.cjs","module":"./dist/wayfinder-vue.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/wayfinder-vue.js","require":"./dist/wayfinder-vue.umd.cjs","types":"./dist/index.d.ts"}},"scripts":{"build":"node ../../node_modules/.bin/vite build","dev":"node ../../node_modules/.bin/vite build --watch","typecheck":"node ../../node_modules/.bin/tsc --noEmit"},"peerDependencies":{"@brainfish-ai/wayfinder-core":">=0.1.0","vue":">=3.0.0"},"devDependencies":{"vue":"^3.4.29"},"_id":"@brainfish-ai/wayfinder-vue@0.1.2","_integrity":"sha512-BkiYkmJqTE129evxMh9yCayakX/+YP0K4W2ZNPyZk2M51sXEhsyVnv1sjVf6Jq1JXJt6xyez0ZmTgAgwyeyQOA==","_resolved":"/home/runner/work/brainfish-wayfinder/brainfish-wayfinder/packages/vue/package.tgz","_from":"file:packages/vue/package.tgz","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-BkiYkmJqTE129evxMh9yCayakX/+YP0K4W2ZNPyZk2M51sXEhsyVnv1sjVf6Jq1JXJt6xyez0ZmTgAgwyeyQOA==","shasum":"01ff4127b8a5dc81946f9b4d7567a184d78df0b7","tarball":"https://registry.npmjs.org/@brainfish-ai/wayfinder-vue/-/wayfinder-vue-0.1.2.tgz","fileCount":11,"unpackedSize":11954,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFUxAl1YUhD2is4EMsJ9/7/thyH+g982fIS41CwLUQHiAiAkd6HrSI5/KO/PwPHBQA8b3mU2ApS5ViNsJpJHTlyJVA=="}]},"_npmUser":{"name":"ajainvivek","email":"ajainvivek07@gmail.com"},"directories":{},"maintainers":[{"name":"ajainvivek","email":"ajainvivek07@gmail.com"},{"name":"johnfumaster","email":"johnfumaster@gmail.com"},{"name":"charlie.shen.brainfi.sh","email":"charlie.shen@brainfi.sh"},{"name":"e.brainfish","email":"emmanuel@brainfi.sh"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wayfinder-vue_0.1.2_1773954850193_0.7164979264839642"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-18T22:27:35.009Z","modified":"2026-03-19T21:14:10.508Z","0.1.0":"2026-03-18T22:27:35.294Z","0.1.1":"2026-03-18T23:59:56.941Z","0.1.2":"2026-03-19T21:14:10.355Z"},"license":"MIT","keywords":["wayfinder","product-tour","vue","onboarding"],"description":"Vue helpers for @wayfinder/core — stable tour targets that survive class obfuscation","maintainers":[{"name":"ajainvivek","email":"ajainvivek07@gmail.com"},{"name":"johnfumaster","email":"johnfumaster@gmail.com"},{"name":"charlie.shen.brainfi.sh","email":"charlie.shen@brainfi.sh"},{"name":"e.brainfish","email":"emmanuel@brainfi.sh"}],"readme":"# @wayfinder/vue\n\nVue 3 helpers for [`@wayfinder/core`](../core) that let you target elements reliably even when class names are obfuscated by scoped styles, CSS Modules, or build minifiers.\n\n## Installation\n\n```bash\nnpm install @wayfinder/vue @wayfinder/core @floating-ui/dom\n```\n\n## The problem\n\nVue scoped styles append a unique hash to every class:\n\n```html\n<!-- Source -->\n<button class=\"create-btn\">New Project</button>\n\n<!-- After build -->\n<button class=\"create-btn\" data-v-7ba5bd90>New Project</button>\n```\n\nThe element is still addressable by class, but CSS-in-JS or third-party component libraries may produce fully unpredictable class names. Using a stable `data-tour` attribute sidesteps all of this.\n\n## Setup — register the plugin\n\n```typescript\nimport { createApp } from 'vue';\nimport { WayfinderPlugin } from '@wayfinder/vue';\nimport App from './App.vue';\n\nconst app = createApp(App);\napp.use(WayfinderPlugin);\napp.mount('#app');\n```\n\n## `v-tour-target` directive\n\nAfter registering the plugin, use the directive anywhere in your templates:\n\n```html\n<button v-tour-target=\"'create-btn'\">New Project</button>\n```\n\nThis writes `data-tour=\"create-btn\"` on the element. Pair it with `tourId()` in your Wayfinder config:\n\n```typescript\nimport { Wayfinder, tourId } from '@wayfinder/core';\n\nconst tour = new Wayfinder({\n  steps: [\n    {\n      id: 'create-btn',\n      target: tourId('create-btn'), // '[data-tour=\"create-btn\"]'\n      title: 'Create a new project',\n      description: 'Click here to get started.',\n    },\n  ],\n});\n```\n\n## Custom attribute name\n\nPass the attribute name as a directive argument:\n\n```html\n<button v-tour-target:data-wf-target=\"'create-btn'\">New Project</button>\n```\n\nPair it with `tourAttribute` in `WayfinderConfig`:\n\n```typescript\nnew Wayfinder({ tourAttribute: 'data-wf-target', steps: [...] });\n```\n\n## Use without the plugin\n\nRegister the directive locally on a single component:\n\n```typescript\nimport { vTourTarget } from '@wayfinder/vue';\n\nexport default {\n  directives: { tourTarget: vTourTarget },\n};\n```\n\n```html\n<button v-tour-target=\"'create-btn'\">New Project</button>\n```\n","readmeFilename":"README.md"}