[{"data":1,"prerenderedAt":698},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:YXGbA8bGOJzFE8vZfudpsALFv3fpP2-Kqr3vZOmr3g0":113,"content-page-surround:docs:YXGbA8bGOJzFE8vZfudpsALFv3fpP2-Kqr3vZOmr3g0":688,"i-logos:typescript-icon":691,"i-lucide:clipboard":695},[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":89,"description":114,"body":115,"type":675,"id":90,"canonicalKey":91,"draft":9,"partial":9,"locale":8,"collection":676,"navigationFile":9,"file":677,"route":683,"resolution":685},"Define file discovery, generated types, auto-imports, and Vue use.",{"type":116,"children":117,"toc":666},"root",[118,126,133,154,289,329,334,490,514,520,532,622,627,639,645,650,655,661],{"type":119,"tag":120,"props":121,"children":123},"element","h1",{"id":122},"nuxt-and-vue-integration",[124],{"type":125,"value":89},"text",{"type":119,"tag":127,"props":128,"children":130},"h2",{"id":129},"nuxt-convention",[131],{"type":125,"value":132},"Nuxt convention",{"type":119,"tag":134,"props":135,"children":136},"p",{},[137,139,145,147,152],{"type":125,"value":138},"The module scans ",{"type":119,"tag":140,"props":141,"children":142},"code",{},[143],{"type":125,"value":144},"app\u002Ftours",{"type":125,"value":146}," in every Nuxt layer. Each file default-exports one\n",{"type":119,"tag":140,"props":148,"children":149},{},[150],{"type":125,"value":151},"defineTour()",{"type":125,"value":153}," result. The module generates one registry and TypeScript\ndeclarations from these definitions. A project file overrides a file with the\nsame generated ID in a lower-priority layer.",{"type":119,"tag":155,"props":156,"children":159},"pre",{"language":157,"class":158},"ts","shiki shiki-themes material-theme-lighter material-theme-palenight dark:material-theme-palenight",[160],{"type":119,"tag":140,"props":161,"children":163},{"class":162},"language-ts",[164,219,221,230,231,234,235,280,281],{"type":119,"tag":165,"props":166,"children":169},"span",{"class":167,"style":168},"line","display: inline",[170,176,182,188,194,199,204,210,214],{"type":119,"tag":165,"props":171,"children":173},{"style":172},"color:#9C3EDA;--shiki-dark:#C792EA",[174],{"type":125,"value":175},"const",{"type":119,"tag":165,"props":177,"children":179},{"style":178},"color:#90A4AE;--shiki-dark:#BABED8",[180],{"type":125,"value":181}," tour ",{"type":119,"tag":165,"props":183,"children":185},{"style":184},"color:#39ADB5;--shiki-dark:#89DDFF",[186],{"type":125,"value":187},"=",{"type":119,"tag":165,"props":189,"children":191},{"style":190},"color:#6182B8;--shiki-dark:#82AAFF",[192],{"type":125,"value":193}," useNuxtTour",{"type":119,"tag":165,"props":195,"children":196},{"style":178},[197],{"type":125,"value":198},"(",{"type":119,"tag":165,"props":200,"children":201},{"style":184},[202],{"type":125,"value":203},"'",{"type":119,"tag":165,"props":205,"children":207},{"style":206},"color:#91B859;--shiki-dark:#C3E88D",[208],{"type":125,"value":209},"onbo",{"type":119,"tag":165,"props":211,"children":212},{"style":184},[213],{"type":125,"value":203},{"type":119,"tag":165,"props":215,"children":216},{"style":178},[217],{"type":125,"value":218},")",{"type":125,"value":220},"\n",{"type":119,"tag":165,"props":222,"children":223},{"class":167,"style":168},[224],{"type":119,"tag":165,"props":225,"children":227},{"style":226},"color:#90A4AE;--shiki-light-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[228],{"type":125,"value":229},"\u002F\u002F                         ^ completes \"onboarding\"",{"type":125,"value":220},{"type":119,"tag":165,"props":232,"children":233},{"class":167,"style":168},[],{"type":125,"value":220},{"type":119,"tag":165,"props":236,"children":237},{"class":167,"style":168},[238,244,249,254,259,263,267,272,276],{"type":119,"tag":165,"props":239,"children":241},{"style":240},"color:#39ADB5;--shiki-light-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[242],{"type":125,"value":243},"await",{"type":119,"tag":165,"props":245,"children":246},{"style":178},[247],{"type":125,"value":248}," tour",{"type":119,"tag":165,"props":250,"children":251},{"style":184},[252],{"type":125,"value":253},".",{"type":119,"tag":165,"props":255,"children":256},{"style":190},[257],{"type":125,"value":258},"goTo",{"type":119,"tag":165,"props":260,"children":261},{"style":178},[262],{"type":125,"value":198},{"type":119,"tag":165,"props":264,"children":265},{"style":184},[266],{"type":125,"value":203},{"type":119,"tag":165,"props":268,"children":269},{"style":206},[270],{"type":125,"value":271},"cre",{"type":119,"tag":165,"props":273,"children":274},{"style":184},[275],{"type":125,"value":203},{"type":119,"tag":165,"props":277,"children":278},{"style":178},[279],{"type":125,"value":218},{"type":125,"value":220},{"type":119,"tag":165,"props":282,"children":283},{"class":167,"style":168},[284],{"type":119,"tag":165,"props":285,"children":286},{"style":226},[287],{"type":125,"value":288},"\u002F\u002F                    ^ completes only steps in that tour",{"type":119,"tag":134,"props":290,"children":291},{},[292,294,299,301,306,308,313,315,320,322,327],{"type":125,"value":293},"The module auto-imports ",{"type":119,"tag":140,"props":295,"children":296},{},[297],{"type":125,"value":298},"defineTour",{"type":125,"value":300},", ",{"type":119,"tag":140,"props":302,"children":303},{},[304],{"type":125,"value":305},"useNuxtTour",{"type":125,"value":307},", and ",{"type":119,"tag":140,"props":309,"children":310},{},[311],{"type":125,"value":312},"useTourTarget",{"type":125,"value":314},". It\nauto-registers ",{"type":119,"tag":140,"props":316,"children":317},{},[318],{"type":125,"value":319},"TourHost",{"type":125,"value":321},". Import ",{"type":119,"tag":140,"props":323,"children":324},{},[325],{"type":125,"value":326},"TourContent",{"type":125,"value":328}," explicitly from the Vue entry\nwhen a custom card needs it. The Nuxt router adapter is automatic.\nThe normal application does not configure a router bridge.",{"type":119,"tag":134,"props":330,"children":331},{},[332],{"type":125,"value":333},"Nuxt module options stay small:",{"type":119,"tag":155,"props":335,"children":336},{"language":157,"class":158},[337],{"type":119,"tag":140,"props":338,"children":339},{"class":162},[340,364,365,384,385,429,430,481,482],{"type":119,"tag":165,"props":341,"children":342},{"class":167,"style":168},[343,348,353,359],{"type":119,"tag":165,"props":344,"children":345},{"style":240},[346],{"type":125,"value":347},"export",{"type":119,"tag":165,"props":349,"children":350},{"style":172},[351],{"type":125,"value":352}," interface",{"type":119,"tag":165,"props":354,"children":356},{"style":355},"color:#E2931D;--shiki-dark:#FFCB6B",[357],{"type":125,"value":358}," ModuleOptions",{"type":119,"tag":165,"props":360,"children":361},{"style":184},[362],{"type":125,"value":363}," {",{"type":125,"value":220},{"type":119,"tag":165,"props":366,"children":367},{"class":167,"style":168},[368,374,379],{"type":119,"tag":165,"props":369,"children":371},{"style":370},"color:#E53935;--shiki-dark:#F07178",[372],{"type":125,"value":373},"  targetTimeout",{"type":119,"tag":165,"props":375,"children":376},{"style":184},[377],{"type":125,"value":378},"?:",{"type":119,"tag":165,"props":380,"children":381},{"style":355},[382],{"type":125,"value":383}," number",{"type":125,"value":220},{"type":119,"tag":165,"props":386,"children":387},{"class":167,"style":168},[388,393,397,402,407,411,416,420,425],{"type":119,"tag":165,"props":389,"children":390},{"style":370},[391],{"type":125,"value":392},"  missingTarget",{"type":119,"tag":165,"props":394,"children":395},{"style":184},[396],{"type":125,"value":378},{"type":119,"tag":165,"props":398,"children":399},{"style":184},[400],{"type":125,"value":401}," '",{"type":119,"tag":165,"props":403,"children":404},{"style":206},[405],{"type":125,"value":406},"skip",{"type":119,"tag":165,"props":408,"children":409},{"style":184},[410],{"type":125,"value":203},{"type":119,"tag":165,"props":412,"children":413},{"style":184},[414],{"type":125,"value":415}," |",{"type":119,"tag":165,"props":417,"children":418},{"style":184},[419],{"type":125,"value":401},{"type":119,"tag":165,"props":421,"children":422},{"style":206},[423],{"type":125,"value":424},"error",{"type":119,"tag":165,"props":426,"children":427},{"style":184},[428],{"type":125,"value":203},{"type":125,"value":220},{"type":119,"tag":165,"props":431,"children":432},{"class":167,"style":168},[433,438,442,446,451,455,459,463,468,472,476],{"type":119,"tag":165,"props":434,"children":435},{"style":370},[436],{"type":125,"value":437},"  css",{"type":119,"tag":165,"props":439,"children":440},{"style":184},[441],{"type":125,"value":378},{"type":119,"tag":165,"props":443,"children":444},{"style":184},[445],{"type":125,"value":401},{"type":119,"tag":165,"props":447,"children":448},{"style":206},[449],{"type":125,"value":450},"structure",{"type":119,"tag":165,"props":452,"children":453},{"style":184},[454],{"type":125,"value":203},{"type":119,"tag":165,"props":456,"children":457},{"style":184},[458],{"type":125,"value":415},{"type":119,"tag":165,"props":460,"children":461},{"style":184},[462],{"type":125,"value":401},{"type":119,"tag":165,"props":464,"children":465},{"style":206},[466],{"type":125,"value":467},"all",{"type":119,"tag":165,"props":469,"children":470},{"style":184},[471],{"type":125,"value":203},{"type":119,"tag":165,"props":473,"children":474},{"style":184},[475],{"type":125,"value":415},{"type":119,"tag":165,"props":477,"children":478},{"style":355},[479],{"type":125,"value":480}," false",{"type":125,"value":220},{"type":119,"tag":165,"props":483,"children":484},{"class":167,"style":168},[485],{"type":119,"tag":165,"props":486,"children":487},{"style":184},[488],{"type":125,"value":489},"}",{"type":119,"tag":134,"props":491,"children":492},{},[493,495,500,502,507,508,513],{"type":125,"value":494},"These options are implemented. ",{"type":119,"tag":140,"props":496,"children":497},{},[498],{"type":125,"value":499},"nuxtTour",{"type":125,"value":501}," is the configuration key to avoid\ncollisions with application code and other modules. The defaults are a 5000 ms\ntimeout, ",{"type":119,"tag":140,"props":503,"children":504},{},[505],{"type":125,"value":506},"missingTarget: 'error'",{"type":125,"value":307},{"type":119,"tag":140,"props":509,"children":510},{},[511],{"type":125,"value":512},"css: 'all'",{"type":125,"value":253},{"type":119,"tag":127,"props":515,"children":517},{"id":516},"pure-vue",[518],{"type":125,"value":519},"Pure Vue",{"type":119,"tag":134,"props":521,"children":522},{},[523,525,530],{"type":125,"value":524},"The same definition and controller are available from\n",{"type":119,"tag":140,"props":526,"children":527},{},[528],{"type":125,"value":529},"@lupinum\u002Fnuxt-tour\u002Fvue",{"type":125,"value":531},":",{"type":119,"tag":155,"props":533,"children":534},{"language":157,"class":158},[535],{"type":119,"tag":140,"props":536,"children":537},{"class":162},[538,573,574,596,597,609,610],{"type":119,"tag":165,"props":539,"children":540},{"class":167,"style":168},[541,546,550,555,559,564,568],{"type":119,"tag":165,"props":542,"children":543},{"style":178},[544],{"type":125,"value":545},"app",{"type":119,"tag":165,"props":547,"children":548},{"style":184},[549],{"type":125,"value":253},{"type":119,"tag":165,"props":551,"children":552},{"style":190},[553],{"type":125,"value":554},"use",{"type":119,"tag":165,"props":556,"children":557},{"style":178},[558],{"type":125,"value":198},{"type":119,"tag":165,"props":560,"children":561},{"style":190},[562],{"type":125,"value":563},"createTourPlugin",{"type":119,"tag":165,"props":565,"children":566},{"style":178},[567],{"type":125,"value":198},{"type":119,"tag":165,"props":569,"children":570},{"style":184},[571],{"type":125,"value":572},"{",{"type":125,"value":220},{"type":119,"tag":165,"props":575,"children":576},{"class":167,"style":168},[577,582,586,591],{"type":119,"tag":165,"props":578,"children":579},{"style":370},[580],{"type":125,"value":581},"  tours",{"type":119,"tag":165,"props":583,"children":584},{"style":184},[585],{"type":125,"value":531},{"type":119,"tag":165,"props":587,"children":588},{"style":178},[589],{"type":125,"value":590}," [onboarding]",{"type":119,"tag":165,"props":592,"children":593},{"style":184},[594],{"type":125,"value":595},",",{"type":125,"value":220},{"type":119,"tag":165,"props":598,"children":599},{"class":167,"style":168},[600,605],{"type":119,"tag":165,"props":601,"children":602},{"style":178},[603],{"type":125,"value":604},"  router",{"type":119,"tag":165,"props":606,"children":607},{"style":184},[608],{"type":125,"value":595},{"type":125,"value":220},{"type":119,"tag":165,"props":611,"children":612},{"class":167,"style":168},[613,617],{"type":119,"tag":165,"props":614,"children":615},{"style":184},[616],{"type":125,"value":489},{"type":119,"tag":165,"props":618,"children":619},{"style":178},[620],{"type":125,"value":621},"))",{"type":119,"tag":134,"props":623,"children":624},{},[625],{"type":125,"value":626},"Pass Vue Router directly. The Vue integration waits for its navigation promise\nand Vue's next render tick. Nuxt uses a private adapter so it can also wait for\npage Suspense and page transitions to finish without exposing framework\ninternals as public configuration.",{"type":119,"tag":134,"props":628,"children":629},{},[630,632,637],{"type":125,"value":631},"The Vue entry does not use file discovery or generated application-specific\nIDs. Pass the definition to ",{"type":119,"tag":140,"props":633,"children":634},{},[635],{"type":125,"value":636},"useTour(onboarding)",{"type":125,"value":638}," to preserve its literal step\nIDs. Nuxt enhances the Vue runtime; it does not own a second runtime.",{"type":119,"tag":127,"props":640,"children":642},{"id":641},"server-rendering",[643],{"type":125,"value":644},"Server rendering",{"type":119,"tag":134,"props":646,"children":647},{},[648],{"type":125,"value":649},"Each Vue or Nuxt application owns its controller and registries. The package\ndoes not store active state in a process-global singleton. The server renders no\noverlay or card. DOM work begins in the browser.",{"type":119,"tag":134,"props":651,"children":652},{},[653],{"type":125,"value":654},"Tour definitions can contain functions and Vue components. The Nuxt module must\nnot serialize them into the Nuxt payload. Generated registry modules import the\ndefinitions directly.",{"type":119,"tag":127,"props":656,"children":658},{"id":657},"build-time-boundaries",[659],{"type":125,"value":660},"Build-time boundaries",{"type":119,"tag":134,"props":662,"children":663},{},[664],{"type":125,"value":665},"File discovery, generated imports, and generated declarations belong to the\nNuxt module. Tour execution, target resolution, and state belong to the shared\nVue runtime. Rendering and positioning consume runtime state but do not decide\nnavigation.",{"title":667,"searchDepth":668,"depth":668,"links":669},"",4,[670,672,673,674],{"id":129,"depth":671,"text":132},2,{"id":516,"depth":671,"text":519},{"id":641,"depth":671,"text":644},{"id":657,"depth":671,"text":660},"markdown","docs",{"source":678,"path":679,"stem":680,"dir":681,"extension":682},"content","docs\u002F3.design\u002F4.nuxt-and-vue.md","docs\u002F3.design\u002F4.nuxt-and-vue","design","md",{"requestedPath":92,"resolvedPath":92,"alternates":684},[],{"requested":686,"resolved":687,"usedFallback":9},{},{"locale":8},{"previous":689,"next":690},{"title":84,"id":85,"canonicalKey":86,"locale":8,"draft":9,"path":87},{"title":94,"id":95,"canonicalKey":96,"locale":8,"draft":9,"path":97},{"left":692,"top":692,"width":693,"height":693,"rotate":692,"vFlip":9,"hFlip":9,"body":694},0,256,"\u003Cpath fill=\"#3178c6\" d=\"M20 0h216c11.046 0 20 8.954 20 20v216c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20V20C0 8.954 8.954 0 20 0\"\u002F>\u003Cpath fill=\"#fff\" d=\"M150.518 200.475v27.62q6.738 3.453 15.938 5.179T185.849 235q9.934 0 18.874-1.899t15.678-6.257q6.738-4.359 10.669-11.394q3.93-7.033 3.93-17.391q0-7.51-2.246-13.163a30.8 30.8 0 0 0-6.479-10.055q-4.232-4.402-10.149-7.898t-13.347-6.602q-5.442-2.245-9.761-4.359t-7.342-4.316q-3.024-2.2-4.665-4.661t-1.641-5.567q0-2.848 1.468-5.135q1.469-2.288 4.147-3.927t6.565-2.547q3.887-.906 8.638-.906q3.456 0 7.299.518q3.844.517 7.732 1.597a54 54 0 0 1 7.558 2.719a41.7 41.7 0 0 1 6.781 3.797v-25.807q-6.306-2.417-13.778-3.582T198.633 107q-9.847 0-18.658 2.115q-8.811 2.114-15.506 6.602q-6.694 4.49-10.582 11.437Q150 134.102 150 143.769q0 12.342 7.127 21.06t21.638 14.759a292 292 0 0 1 10.625 4.575q4.924 2.244 8.509 4.66t5.658 5.265t2.073 6.474a9.9 9.9 0 0 1-1.296 4.963q-1.295 2.287-3.93 3.97t-6.565 2.632t-9.2.95q-8.983 0-17.794-3.151t-16.327-9.451m-46.036-68.733H140V109H41v22.742h35.345V233h28.137z\"\u002F>",{"left":692,"top":692,"width":696,"height":696,"rotate":692,"vFlip":9,"hFlip":9,"body":697},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>",1788188689096]