[{"data":1,"prerenderedAt":360},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:BnRQ_iyPulYUkdBgdeRPtmVSqpd3T2LaeADlMTB-G54":113,"content-page-surround:docs:BnRQ_iyPulYUkdBgdeRPtmVSqpd3T2LaeADlMTB-G54":353,"i-lucide:clipboard":356},[4,32,68,108],{"title":5,"id":6,"canonicalKey":7,"locale":8,"draft":9,"path":10,"children":11},"Getting started","content:docs:1.getting-started:.navigation.yml","1","en",false,"\u002Fdocs\u002Fgetting-started",[12,17,22,27],{"title":13,"id":14,"canonicalKey":15,"locale":8,"draft":9,"path":16},"Nuxt guide","content:docs:1.getting-started:2.nuxt.md","1\u002F2","\u002Fdocs\u002Fgetting-started\u002Fnuxt",{"title":18,"id":19,"canonicalKey":20,"locale":8,"draft":9,"path":21},"Vue guide","content:docs:1.getting-started:3.vue.md","1\u002F3","\u002Fdocs\u002Fgetting-started\u002Fvue",{"title":23,"id":24,"canonicalKey":25,"locale":8,"draft":9,"path":26},"Customize the tour","content:docs:1.getting-started:4.customization.md","1\u002F4","\u002Fdocs\u002Fgetting-started\u002Fcustomization",{"title":28,"id":29,"canonicalKey":30,"locale":8,"draft":9,"path":31},"Troubleshooting","content:docs:1.getting-started:5.troubleshooting.md","1\u002F5","\u002Fdocs\u002Fgetting-started\u002Ftroubleshooting",{"title":33,"id":34,"canonicalKey":35,"locale":8,"draft":9,"path":36,"children":37},"Recipes","content:docs:2.recipes:.navigation.yml","2","\u002Fdocs\u002Frecipes",[38,43,48,53,58,63],{"title":39,"id":40,"canonicalKey":41,"locale":8,"draft":9,"path":42},"Rich content and images","content:docs:2.recipes:2.rich-content.md","2\u002F2","\u002Fdocs\u002Frecipes\u002Frich-content",{"title":44,"id":45,"canonicalKey":46,"locale":8,"draft":9,"path":47},"Routes and dynamic targets","content:docs:2.recipes:3.routes-and-targets.md","2\u002F3","\u002Fdocs\u002Frecipes\u002Froutes-and-targets",{"title":49,"id":50,"canonicalKey":51,"locale":8,"draft":9,"path":52},"Conditions and preparation","content:docs:2.recipes:4.conditions-and-preparation.md","2\u002F4","\u002Fdocs\u002Frecipes\u002Fconditions-and-preparation",{"title":54,"id":55,"canonicalKey":56,"locale":8,"draft":9,"path":57},"Interaction and focus","content:docs:2.recipes:5.interaction-and-focus.md","2\u002F5","\u002Fdocs\u002Frecipes\u002Finteraction-and-focus",{"title":59,"id":60,"canonicalKey":61,"locale":8,"draft":9,"path":62},"Customization and labels","content:docs:2.recipes:6.customization.md","2\u002F6","\u002Fdocs\u002Frecipes\u002Fcustomization",{"title":64,"id":65,"canonicalKey":66,"locale":8,"draft":9,"path":67},"Events and progress","content:docs:2.recipes:7.events-and-progress.md","2\u002F7","\u002Fdocs\u002Frecipes\u002Fevents-and-progress",{"title":69,"page":9,"canonicalKey":70,"locale":8,"id":71,"draft":9,"children":72},"Design","3","content:docs:3.design:.navigation.yml",[73,78,83,88,93,98,103],{"title":74,"id":75,"canonicalKey":76,"locale":8,"draft":9,"path":77},"Product and scope","content:docs:3.design:1.product-and-scope.md","3\u002F1","\u002Fdocs\u002Fdesign\u002Fproduct-and-scope",{"title":79,"id":80,"canonicalKey":81,"locale":8,"draft":9,"path":82},"Public API","content:docs:3.design:2.public-api.md","3\u002F2","\u002Fdocs\u002Fdesign\u002Fpublic-api",{"title":84,"id":85,"canonicalKey":86,"locale":8,"draft":9,"path":87},"Runtime semantics","content:docs:3.design:3.runtime-semantics.md","3\u002F3","\u002Fdocs\u002Fdesign\u002Fruntime-semantics",{"title":89,"id":90,"canonicalKey":91,"locale":8,"draft":9,"path":92},"Nuxt and Vue integration","content:docs:3.design:4.nuxt-and-vue.md","3\u002F4","\u002Fdocs\u002Fdesign\u002Fnuxt-and-vue",{"title":94,"id":95,"canonicalKey":96,"locale":8,"draft":9,"path":97},"Rendering and accessibility","content:docs:3.design:5.rendering-and-accessibility.md","3\u002F5","\u002Fdocs\u002Fdesign\u002Frendering-and-accessibility",{"title":99,"id":100,"canonicalKey":101,"locale":8,"draft":9,"path":102},"Architecture and testing","content:docs:3.design:6.architecture-and-testing.md","3\u002F6","\u002Fdocs\u002Fdesign\u002Farchitecture-and-testing",{"title":104,"id":105,"canonicalKey":106,"locale":8,"draft":9,"path":107},"Research decisions","content:docs:3.design:7.research-decisions.md","3\u002F7","\u002Fdocs\u002Fdesign\u002Fresearch-decisions",{"title":109,"id":110,"canonicalKey":111,"locale":8,"draft":9,"path":112},"Implementation","content:docs:4.implementation:.navigation.yml","4","\u002Fdocs\u002Fimplementation",{"title":74,"description":114,"body":115,"type":340,"id":75,"canonicalKey":76,"draft":9,"partial":9,"locale":8,"collection":341,"navigationFile":9,"file":342,"route":348,"resolution":350},"Define the user, core job, v1 boundary, and success criteria.",{"type":116,"children":117,"toc":331},"root",[118,126,133,139,144,202,207,213,218,285,291,296,308,314,319],{"type":119,"tag":120,"props":121,"children":123},"element","h1",{"id":122},"product-and-scope",[124],{"type":125,"value":74},"text",{"type":119,"tag":127,"props":128,"children":130},"h2",{"id":129},"product-thesis",[131],{"type":125,"value":132},"Product thesis",{"type":119,"tag":134,"props":135,"children":136},"p",{},[137],{"type":125,"value":138},"Nuxt Tour is for Nuxt and Vue developers who need a reliable guided product\ntour without coordinating selectors, routes, overlays, focus, and cleanup in\napplication code.",{"type":119,"tag":134,"props":140,"children":141},{},[142],{"type":125,"value":143},"The core workflow has four concepts:",{"type":119,"tag":145,"props":146,"children":148},"pre",{"language":125,"class":147},"shiki shiki-themes material-theme-lighter material-theme-palenight dark:material-theme-palenight",[149],{"type":119,"tag":150,"props":151,"children":153},"code",{"class":152},"language-text",[154,165,167,175,176,184,185,193,194],{"type":119,"tag":155,"props":156,"children":159},"span",{"class":157,"style":158},"line","display: inline",[160],{"type":119,"tag":155,"props":161,"children":162},{},[163],{"type":125,"value":164},"defineTour()      describes the journey",{"type":125,"value":166},"\n",{"type":119,"tag":155,"props":168,"children":169},{"class":157,"style":158},[170],{"type":119,"tag":155,"props":171,"children":172},{},[173],{"type":125,"value":174},"target IDs        locate application elements",{"type":125,"value":166},{"type":119,"tag":155,"props":177,"children":178},{"class":157,"style":158},[179],{"type":119,"tag":155,"props":180,"children":181},{},[182],{"type":125,"value":183},"\u003CTourHost \u002F>      renders the active tour",{"type":125,"value":166},{"type":119,"tag":155,"props":186,"children":187},{"class":157,"style":158},[188],{"type":119,"tag":155,"props":189,"children":190},{},[191],{"type":125,"value":192},"useNuxtTour()     controls a discovered Nuxt journey",{"type":125,"value":166},{"type":119,"tag":155,"props":195,"children":196},{"class":157,"style":158},[197],{"type":119,"tag":155,"props":198,"children":199},{},[200],{"type":125,"value":201},"useTour()         controls a plain Vue definition",{"type":119,"tag":134,"props":203,"children":204},{},[205],{"type":125,"value":206},"The package wins when this workflow feels normal to a Vue developer and remains\nreliable in a real Nuxt application.",{"type":119,"tag":127,"props":208,"children":210},{"id":209},"accepted-v1-jobs",[211],{"type":125,"value":212},"Accepted v1 jobs",{"type":119,"tag":134,"props":214,"children":215},{},[216],{"type":125,"value":217},"Version 1 must support:",{"type":119,"tag":219,"props":220,"children":221},"ul",{},[222,228,233,238,243,248,253,258,263,268,273],{"type":119,"tag":223,"props":224,"children":225},"li",{},[226],{"type":125,"value":227},"targetless centered steps;",{"type":119,"tag":223,"props":229,"children":230},{},[231],{"type":125,"value":232},"semantic targets that can mount late;",{"type":119,"tag":223,"props":234,"children":235},{},[236],{"type":125,"value":237},"a linear tour with conditional steps;",{"type":119,"tag":223,"props":239,"children":240},{},[241],{"type":125,"value":242},"navigation to the destination step's Nuxt route;",{"type":119,"tag":223,"props":244,"children":245},{},[246],{"type":125,"value":247},"asynchronous preparation with guaranteed cleanup;",{"type":119,"tag":223,"props":249,"children":250},{},[251],{"type":125,"value":252},"one active tour per application;",{"type":119,"tag":223,"props":254,"children":255},{},[256],{"type":125,"value":257},"a good default card and a full-card slot;",{"type":119,"tag":223,"props":259,"children":260},{},[261],{"type":125,"value":262},"modal, target-only, and non-modal interaction;",{"type":119,"tag":223,"props":264,"children":265},{},[266],{"type":125,"value":267},"keyboard operation, focus restoration, and reduced motion;",{"type":119,"tag":223,"props":269,"children":270},{},[271],{"type":125,"value":272},"typed events and stable error codes; and",{"type":119,"tag":223,"props":274,"children":275},{},[276,278,283],{"type":125,"value":277},"generated tour, step, and semantic target ID types from ",{"type":119,"tag":150,"props":279,"children":280},{},[281],{"type":125,"value":282},"app\u002Ftours\u002F",{"type":125,"value":284},".",{"type":119,"tag":127,"props":286,"children":288},{"id":287},"explicit-non-goals",[289],{"type":125,"value":290},"Explicit non-goals",{"type":119,"tag":134,"props":292,"children":293},{},[294],{"type":125,"value":295},"Version 1 does not include persistence, automatic start rules, analytics\nproviders, hints, checklists, surveys, experiments, a visual editor, graph\nnavigation, multiple concurrent tours, iframe targets, multiple spotlight\nholes, arbitrary DOM-event advancement, or a public framework-neutral core.",{"type":119,"tag":134,"props":297,"children":298},{},[299,301,306],{"type":125,"value":300},"Applications can store completion and call ",{"type":119,"tag":150,"props":302,"children":303},{},[304],{"type":125,"value":305},"start()",{"type":125,"value":307}," themselves. Applications\ncan send analytics from typed events. These boundaries avoid a second source of\ntruth for product state.",{"type":119,"tag":127,"props":309,"children":311},{"id":310},"product-acceptance-criteria",[312],{"type":125,"value":313},"Product acceptance criteria",{"type":119,"tag":134,"props":315,"children":316},{},[317],{"type":125,"value":318},"A new consumer must be able to complete the quick start from one example. All\ncontroller navigation methods must settle only after the destination step is\nactive or the transition has failed cleanly. A failed or cancelled transition\nmust leave no observer, listener, overlay, focus trap, or preparation cleanup\nbehind.",{"type":119,"tag":134,"props":320,"children":321},{},[322,324,329],{"type":125,"value":323},"The package installs as one npm package. The Nuxt root export and ",{"type":119,"tag":150,"props":325,"children":326},{},[327],{"type":125,"value":328},"\u002Fvue",{"type":125,"value":330}," export\nshare one runtime contract and one version.",{"title":332,"searchDepth":333,"depth":333,"links":334},"",4,[335,337,338,339],{"id":129,"depth":336,"text":132},2,{"id":209,"depth":336,"text":212},{"id":287,"depth":336,"text":290},{"id":310,"depth":336,"text":313},"markdown","docs",{"source":343,"path":344,"stem":345,"dir":346,"extension":347},"content","docs\u002F3.design\u002F1.product-and-scope.md","docs\u002F3.design\u002F1.product-and-scope","design","md",{"requestedPath":77,"resolvedPath":77,"alternates":349},[],{"requested":351,"resolved":352,"usedFallback":9},{},{"locale":8},{"previous":354,"next":355},{"title":64,"id":65,"canonicalKey":66,"locale":8,"draft":9,"path":67},{"title":79,"id":80,"canonicalKey":81,"locale":8,"draft":9,"path":82},{"left":357,"top":357,"width":358,"height":358,"rotate":357,"vFlip":9,"hFlip":9,"body":359},0,24,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"8\" height=\"4\" x=\"8\" y=\"2\" rx=\"1\" ry=\"1\"\u002F>\u003Cpath d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"\u002F>\u003C\u002Fg>",1788188688534]