[{"data":1,"prerenderedAt":348},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:Q7dktmOzdquFPsA0crueZkzrscASNTyrsvm2nK5YfmM":113,"content-page-surround:docs:Q7dktmOzdquFPsA0crueZkzrscASNTyrsvm2nK5YfmM":345},[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":114,"description":115,"body":116,"type":332,"id":333,"canonicalKey":111,"draft":9,"partial":9,"locale":8,"collection":334,"navigationFile":9,"file":335,"route":340,"resolution":342},"Release evidence","Track the evidence behind the first release candidate.",{"type":117,"children":118,"toc":321},"root",[119,127,133,140,145,150,156,189,194,200,217,222,228,240,245,251,256,261,266,272],{"type":120,"tag":121,"props":122,"children":124},"element","h1",{"id":123},"release-evidence",[125],{"type":126,"value":114},"text",{"type":120,"tag":128,"props":129,"children":130},"p",{},[131],{"type":126,"value":132},"This page records executable evidence. It is not a promise that automated tests\nreplace manual accessibility review.",{"type":120,"tag":134,"props":135,"children":137},"h2",{"id":136},"_1-definition-and-controller-kernel",[138],{"type":126,"value":139},"1. Definition and controller kernel",{"type":120,"tag":128,"props":141,"children":142},{},[143],{"type":126,"value":144},"Implemented: literal-preserving definitions, validation, application-scoped\nregistry, linear navigation, conditions, transition locking, aborts, cleanup,\nevents, and typed errors. Use fake route and target adapters in focused tests.",{"type":120,"tag":128,"props":146,"children":147},{},[148],{"type":126,"value":149},"Acceptance: the controller journeys in the runtime specification pass without a\nDOM or Nuxt application.",{"type":120,"tag":134,"props":151,"children":153},{"id":152},"_2-vue-runtime-and-semantic-targets",[154],{"type":126,"value":155},"2. Vue runtime and semantic targets",{"type":120,"tag":128,"props":157,"children":158},{},[159,161,167,169,174,175,180,182,187],{"type":126,"value":160},"Implemented: ",{"type":120,"tag":162,"props":163,"children":164},"code",{},[165],{"type":126,"value":166},"createTourPlugin()",{"type":126,"value":168},", ",{"type":120,"tag":162,"props":170,"children":171},{},[172],{"type":126,"value":173},"useTour()",{"type":126,"value":168},{"type":120,"tag":162,"props":176,"children":177},{},[178],{"type":126,"value":179},"useTourTarget()",{"type":126,"value":181},", app-bound\ndirectives, bounded waiting, and effect-scope cleanup. The ",{"type":120,"tag":162,"props":183,"children":184},{},[185],{"type":126,"value":186},"\u002Fvue",{"type":126,"value":188}," export is\nverified from the packed artifact.",{"type":120,"tag":128,"props":190,"children":191},{},[192],{"type":126,"value":193},"Evidence: focused tests use two Vue applications, duplicate semantic IDs,\nlate-rendered targets, SVG targets, target replacement, host teardown, and\ninjection inside lifecycle callbacks.",{"type":120,"tag":134,"props":195,"children":197},{"id":196},"_3-accessible-host",[198],{"type":126,"value":199},"3. Accessible host",{"type":120,"tag":128,"props":201,"children":202},{},[203,204,209,210,215],{"type":126,"value":160},{"type":120,"tag":162,"props":205,"children":206},{},[207],{"type":126,"value":208},"TourHost",{"type":126,"value":168},{"type":120,"tag":162,"props":211,"children":212},{},[213],{"type":126,"value":214},"TourContent",{"type":126,"value":216},", one spotlight, default card, full-card slot,\nfocus behavior, interaction modes, structural CSS, and reduced motion. Add\nFloating UI in this slice because this is the first code that uses it.",{"type":120,"tag":128,"props":218,"children":219},{},[220],{"type":126,"value":221},"Evidence: focused DOM tests cover naming, focus, inertness, nested Escape,\ntarget interaction, reduced motion, dark mode, and custom-card slots. Real\nbrowser journeys cover the high-risk behavior and viewport constraints.",{"type":120,"tag":134,"props":223,"children":225},{"id":224},"_4-nuxt-native-integration",[226],{"type":126,"value":227},"4. Nuxt-native integration",{"type":120,"tag":128,"props":229,"children":230},{},[231,233,238],{"type":126,"value":232},"Implemented: the Vue runtime, router adapter, auto-imports, components, and CSS.\nDiscover each Nuxt layer's ",{"type":120,"tag":162,"props":234,"children":235},{},[236],{"type":126,"value":237},"app\u002Ftours",{"type":126,"value":239}," files using the project's configured\nextensions. Generate the registry and application-specific tour, step, and\ntarget ID declarations. Add and unlink events regenerate only those templates.",{"type":120,"tag":128,"props":241,"children":242},{},[243],{"type":126,"value":244},"Evidence: the README shape builds without runtime imports; valid IDs infer;\ninvalid tour, step, and target IDs fail type checking; layer overrides and\ncross-route tours pass.",{"type":120,"tag":134,"props":246,"children":248},{"id":247},"_5-documentation-and-release-candidate",[249],{"type":126,"value":250},"5. Documentation and release candidate",{"type":120,"tag":128,"props":252,"children":253},{},[254],{"type":126,"value":255},"Release-candidate work includes verified user documentation, a clean packed\nconsumer, package-size review, and the browser matrix.",{"type":120,"tag":128,"props":257,"children":258},{},[259],{"type":126,"value":260},"The release gate runs lint, positive and negative type checking, unit and Nuxt\nintegration tests, module and documentation builds, a five-project Playwright\nmatrix, and a clean Nuxt build installed from the packed tarball. A focused\nconsumer matrix checks the declared Nuxt 4.0 and Vue 3.5 floors as well as the\ncurrent framework lines, supported Node boundaries, and a Windows consumer. It\ndoes not repeat the full documentation and browser gates. The browser journey covers route\nand Suspense settlement, a per-frame shading probe, target replacement, nested\nEscape, focus restoration, host removal, external navigation, browser Back,\nreduced motion, and dark mode.",{"type":120,"tag":128,"props":262,"children":263},{},[264],{"type":126,"value":265},"Manual keyboard, VoiceOver, NVDA, and touch-screen-reader checks remain human\nlaunch gates and must be recorded with browser, operating system, and date.",{"type":120,"tag":134,"props":267,"children":269},{"id":268},"frozen-version-1-decisions",[270],{"type":126,"value":271},"Frozen version 1 decisions",{"type":120,"tag":273,"props":274,"children":275},"ul",{},[276,282,292,304,316],{"type":120,"tag":277,"props":278,"children":279},"li",{},[280],{"type":126,"value":281},"Target waiting defaults to 5000 ms and missing targets fail.",{"type":120,"tag":277,"props":283,"children":284},{},[285,290],{"type":120,"tag":162,"props":286,"children":287},{},[288],{"type":126,"value":289},"cancel(reason)",{"type":126,"value":291}," accepts an application-owned string.",{"type":120,"tag":277,"props":293,"children":294},{},[295,297,302],{"type":126,"value":296},"The default theme exposes only the CSS variables used by the shipped card and\nfollows system, class-based, or ",{"type":120,"tag":162,"props":298,"children":299},{},[300],{"type":126,"value":301},"data-theme",{"type":126,"value":303}," light\u002Fdark modes.",{"type":120,"tag":277,"props":305,"children":306},{},[307,309,314],{"type":126,"value":308},"Nuxt augments the stable ",{"type":120,"tag":162,"props":310,"children":311},{},[312],{"type":126,"value":313},"@lupinum\u002Fnuxt-tour\u002Fregistry",{"type":126,"value":315}," type boundary from\ndirect definition imports.",{"type":120,"tag":277,"props":317,"children":318},{},[319],{"type":126,"value":320},"Nuxt 4 and Vue 3.5 or newer are the supported framework floor.",{"title":322,"searchDepth":323,"depth":323,"links":324},"",4,[325,327,328,329,330,331],{"id":136,"depth":326,"text":139},2,{"id":152,"depth":326,"text":155},{"id":196,"depth":326,"text":199},{"id":224,"depth":326,"text":227},{"id":247,"depth":326,"text":250},{"id":268,"depth":326,"text":271},"markdown","content:docs:4.implementation:1.index.md","docs",{"source":336,"path":337,"stem":338,"dir":334,"extension":339},"content","docs\u002F4.implementation\u002F1.index.md","docs\u002F4.implementation\u002F1.index","md",{"requestedPath":112,"resolvedPath":112,"alternates":341},[],{"requested":343,"resolved":344,"usedFallback":9},{},{"locale":8},{"previous":346,"next":347},{"title":104,"id":105,"canonicalKey":106,"locale":8,"draft":9,"path":107},null,1788188689800]