[{"data":1,"prerenderedAt":368},["ShallowReactive",2],{"docs-navigation:en":3,"content-page:docs:zuOFWDblRAqcxaHuSLpv2TYm9gV_2UQIjYL-wQQg0_c":113,"content-page-surround:docs:zuOFWDblRAqcxaHuSLpv2TYm9gV_2UQIjYL-wQQg0_c":365},[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":94,"description":114,"body":115,"type":352,"id":95,"canonicalKey":96,"draft":9,"partial":9,"locale":8,"collection":353,"navigationFile":9,"file":354,"route":360,"resolution":362},"Define the host, dialog behavior, interaction modes, and styling boundary.",{"type":116,"children":117,"toc":341},"root",[118,126,133,147,166,171,177,182,224,235,241,246,251,257,262,267,300,312,318,330,336],{"type":119,"tag":120,"props":121,"children":123},"element","h1",{"id":122},"rendering-and-accessibility",[124],{"type":125,"value":94},"text",{"type":119,"tag":127,"props":128,"children":130},"h2",{"id":129},"one-host",[131],{"type":125,"value":132},"One host",{"type":119,"tag":134,"props":135,"children":136},"p",{},[137,139,145],{"type":125,"value":138},"An application renders one ",{"type":119,"tag":140,"props":141,"children":142},"code",{},[143],{"type":125,"value":144},"\u003CTourHost \u002F>",{"type":125,"value":146},". The host renders the overlay, card,\narrow, and Vue content. A second host produces a development error instead of a\nsecond control plane.",{"type":119,"tag":134,"props":148,"children":149},{},[150,152,157,159,164],{"type":125,"value":151},"The default card must be good enough to ship. A single ",{"type":119,"tag":140,"props":153,"children":154},{},[155],{"type":125,"value":156},"#card",{"type":125,"value":158}," slot replaces the\ncomplete card for applications with another design system. Stable\n",{"type":119,"tag":140,"props":160,"children":161},{},[162],{"type":125,"value":163},"data-tour-part",{"type":125,"value":165}," attributes and a small set of CSS custom properties support\nvisual theming without freezing internal DOM structure.",{"type":119,"tag":134,"props":167,"children":168},{},[169],{"type":125,"value":170},"The package does not accept raw HTML strings. Rich content uses Vue components.\nThe package does not accept configured button arrays. The default card owns the\nnormal actions, and the full-card slot owns custom actions.",{"type":119,"tag":127,"props":172,"children":174},{"id":173},"interaction-modes",[175],{"type":125,"value":176},"Interaction modes",{"type":119,"tag":134,"props":178,"children":179},{},[180],{"type":125,"value":181},"An interactive tour card is a dialog, not an ARIA tooltip.",{"type":119,"tag":183,"props":184,"children":185},"ul",{},[186,204,214],{"type":119,"tag":187,"props":188,"children":189},"li",{},[190,195,197,202],{"type":119,"tag":140,"props":191,"children":192},{},[193],{"type":125,"value":194},"modal",{"type":125,"value":196}," prevents background interaction, traps focus, and uses\n",{"type":119,"tag":140,"props":198,"children":199},{},[200],{"type":125,"value":201},"aria-modal=\"true\"",{"type":125,"value":203},".",{"type":119,"tag":187,"props":205,"children":206},{},[207,212],{"type":119,"tag":140,"props":208,"children":209},{},[210],{"type":125,"value":211},"target",{"type":125,"value":213}," keeps the card and the current target interactive. The dialog is not\nmodal.",{"type":119,"tag":187,"props":215,"children":216},{},[217,222],{"type":119,"tag":140,"props":218,"children":219},{},[220],{"type":125,"value":221},"page",{"type":125,"value":223}," keeps the page generally interactive. The dialog is not modal.",{"type":119,"tag":134,"props":225,"children":226},{},[227,229,233],{"type":125,"value":228},"The package must not use ",{"type":119,"tag":140,"props":230,"children":231},{},[232],{"type":125,"value":201},{"type":125,"value":234}," only because an overlay is visible.",{"type":119,"tag":127,"props":236,"children":238},{"id":237},"keyboard-and-focus",[239],{"type":125,"value":240},"Keyboard and focus",{"type":119,"tag":134,"props":242,"children":243},{},[244],{"type":125,"value":245},"The default keyboard contract is Tab, Shift+Tab, Escape, and visible buttons.\nSafari follows the operating system's full-keyboard-access preference, so its\nTab order can omit buttons when that preference is disabled. Nuxt Tour respects\nthe browser's order and still keeps any focusable tour target inside the active\nfocus scope.\nLeft and right arrows are not global shortcuts because they conflict with\neditors, sliders, menus, grids, and text controls.",{"type":119,"tag":134,"props":247,"children":248},{},[249],{"type":125,"value":250},"When a modal step opens, focus moves to a useful heading or card control. A\nmaintained focus engine keeps focus inside the card. Target mode treats the card\nand highlighted target as one focus scope and makes unrelated subtrees inert.\nNested widgets receive Escape before the tour. When the tour ends, focus returns\nto the invoking element when that element still exists.",{"type":119,"tag":127,"props":252,"children":254},{"id":253},"positioning-and-motion",[255],{"type":125,"value":256},"Positioning and motion",{"type":119,"tag":134,"props":258,"children":259},{},[260],{"type":125,"value":261},"Floating UI is the intended positioning dependency. Nuxt Tour exposes common\nplacement and spacing concepts, not the full middleware configuration. The\ndependency is added only with the positioning implementation.",{"type":119,"tag":134,"props":263,"children":264},{},[265],{"type":125,"value":266},"Overlay geometry and card positioning are separate internal systems. Version 1\nsupports one spotlight hole: the current target. Multiple highlighted targets\nwait until a real journey proves the extra SVG geometry and browser test cost.",{"type":119,"tag":134,"props":268,"children":269},{},[270,272,277,279,284,286,291,293,298],{"type":125,"value":271},"Motion uses CSS and never restarts the backdrop while moving between steps.\nOn start, the spotlight is born closed and the card hidden while the immediate\nfull-page cover is active. The reveal then opens both from that painted state,\nso neither element can flash at its final appearance.\nScrolling starts immediately, while the previous spotlight opening closes\nbefore the runtime swaps to the next target geometry. This prevents a\ntranslucent rectangle from jumping between targets. Route changes and late\ntargets cannot expose an unshaded frame. The geometry handoff waits for the\nreal cover animation before replacing the spotlight target. The command can\ncomplete as soon as the destination is positioned and usable; it does not wait\nfor the decorative reveal to finish.\nThe backdrop starts as soon as the tour starts. A destination spotlight opens\nwhen its target is close and slow enough. Native smooth scrolling keeps the\ntravel distance adaptive without a second scrolling engine.\n",{"type":119,"tag":140,"props":273,"children":274},{},[275],{"type":125,"value":276},"prefers-reduced-motion",{"type":125,"value":278}," removes movement while preserving state and focus\nbehavior. The default theme follows the operating-system color scheme and also\nrecognizes ",{"type":119,"tag":140,"props":280,"children":281},{},[282],{"type":125,"value":283},".light",{"type":125,"value":285},", ",{"type":119,"tag":140,"props":287,"children":288},{},[289],{"type":125,"value":290},".dark",{"type":125,"value":292},", and matching ",{"type":119,"tag":140,"props":294,"children":295},{},[296],{"type":125,"value":297},"data-theme",{"type":125,"value":299}," application themes.",{"type":119,"tag":134,"props":301,"children":302},{},[303,305,310],{"type":125,"value":304},"The visual spotlight includes ",{"type":119,"tag":140,"props":306,"children":307},{},[308],{"type":125,"value":309},"--tour-spotlight-padding",{"type":125,"value":311}," so the target's focus\nring is not dimmed. Pointer isolation still uses the target's real rectangle.",{"type":119,"tag":127,"props":313,"children":315},{"id":314},"accessibility-evidence",[316],{"type":125,"value":317},"Accessibility evidence",{"type":119,"tag":134,"props":319,"children":320},{},[321,323,328],{"type":125,"value":322},"Automated release tests cover dialog naming, focus containment, nested Escape,\nfocus restoration, ",{"type":119,"tag":140,"props":324,"children":325},{},[326],{"type":125,"value":327},"inert",{"type":125,"value":329},", target interaction, reduced motion, dark mode, and\nChromium, Firefox, WebKit, mobile Chromium, and mobile WebKit projects. These\nchecks do not replace assistive-technology testing. A release must not claim a\nmanual NVDA, VoiceOver, or mobile screen-reader pass until that dated check is\nrecorded by a human.",{"type":119,"tag":127,"props":331,"children":333},{"id":332},"reference-standard",[334],{"type":125,"value":335},"Reference standard",{"type":119,"tag":134,"props":337,"children":338},{},[339],{"type":125,"value":340},"Implementation follows the WAI-ARIA dialog pattern. Tooltip semantics are not\nvalid for a card that contains buttons or other focusable content.",{"title":342,"searchDepth":343,"depth":343,"links":344},"",4,[345,347,348,349,350,351],{"id":129,"depth":346,"text":132},2,{"id":173,"depth":346,"text":176},{"id":237,"depth":346,"text":240},{"id":253,"depth":346,"text":256},{"id":314,"depth":346,"text":317},{"id":332,"depth":346,"text":335},"markdown","docs",{"source":355,"path":356,"stem":357,"dir":358,"extension":359},"content","docs\u002F3.design\u002F5.rendering-and-accessibility.md","docs\u002F3.design\u002F5.rendering-and-accessibility","design","md",{"requestedPath":97,"resolvedPath":97,"alternates":361},[],{"requested":363,"resolved":364,"usedFallback":9},{},{"locale":8},{"previous":366,"next":367},{"title":89,"id":90,"canonicalKey":91,"locale":8,"draft":9,"path":92},{"title":99,"id":100,"canonicalKey":101,"locale":8,"draft":9,"path":102},1788188689273]