[{"data":1,"prerenderedAt":1865},["ShallowReactive",2],{"navigation_docs":3,"-guide-core-concepts-hierarchy":226,"-guide-core-concepts-hierarchy-surround":1860},[4,90],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":28},"Guide","i-lucide-book-open","\u002Fguide","1.guide",[10,29,51,68],{"title":11,"icon":12,"path":13,"stem":14,"children":15,"page":28},"Getting Started","i-lucide-rocket","\u002Fguide\u002Fgetting-started","1.guide\u002F1.getting-started",[16,20,24],{"title":17,"path":18,"stem":19},"Introduction","\u002Fguide\u002Fgetting-started\u002Fintroduction","1.guide\u002F1.getting-started\u002F1.introduction",{"title":21,"path":22,"stem":23},"First Tooltip","\u002Fguide\u002Fgetting-started\u002Ffirst-tooltip","1.guide\u002F1.getting-started\u002F2.first-tooltip",{"title":25,"path":26,"stem":27},"First Menu","\u002Fguide\u002Fgetting-started\u002Ffirst-menu","1.guide\u002F1.getting-started\u002F3.first-menu",false,{"title":30,"icon":31,"path":32,"stem":33,"children":34,"page":28},"Core Concepts","i-lucide-boxes","\u002Fguide\u002Fcore-concepts","1.guide\u002F2.core-concepts",[35,39,43,47],{"title":36,"path":37,"stem":38},"Floating node","\u002Fguide\u002Fcore-concepts\u002Ffloating-node","1.guide\u002F2.core-concepts\u002F1.floating-node",{"title":40,"path":41,"stem":42},"Positioning","\u002Fguide\u002Fcore-concepts\u002Fpositioning","1.guide\u002F2.core-concepts\u002F2.positioning",{"title":44,"path":45,"stem":46},"Interaction model","\u002Fguide\u002Fcore-concepts\u002Finteraction-model","1.guide\u002F2.core-concepts\u002F3.interaction-model",{"title":48,"path":49,"stem":50},"Hierarchy","\u002Fguide\u002Fcore-concepts\u002Fhierarchy","1.guide\u002F2.core-concepts\u002F4.hierarchy",{"title":40,"icon":52,"path":53,"stem":54,"children":55,"page":28},"i-lucide-crosshair","\u002Fguide\u002Fpositioning","1.guide\u002F3.positioning",[56,60,64],{"title":57,"path":58,"stem":59},"Middlewares","\u002Fguide\u002Fpositioning\u002Fmiddlewares","1.guide\u002F3.positioning\u002F1.middlewares",{"title":61,"path":62,"stem":63},"Virtual Anchors","\u002Fguide\u002Fpositioning\u002Fvirtual-anchors","1.guide\u002F3.positioning\u002F2.virtual-anchors",{"title":65,"path":66,"stem":67},"Animations and Transitions","\u002Fguide\u002Fpositioning\u002Fanimations-and-transitions","1.guide\u002F3.positioning\u002F3.animations-and-transitions",{"title":69,"icon":70,"path":71,"stem":72,"children":73,"page":28},"Accessibility","i-lucide-person-standing","\u002Fguide\u002Faccessibility","1.guide\u002F4.accessibility",[74,78,82,86],{"title":75,"path":76,"stem":77},"ARIA & Semantics","\u002Fguide\u002Faccessibility\u002Faria-and-semantics","1.guide\u002F4.accessibility\u002F1.aria-and-semantics",{"title":79,"path":80,"stem":81},"Focus Models","\u002Fguide\u002Faccessibility\u002Ffocus-models","1.guide\u002F4.accessibility\u002F2.focus-models",{"title":83,"path":84,"stem":85},"Keyboard Navigation","\u002Fguide\u002Faccessibility\u002Fkeyboard-navigation","1.guide\u002F4.accessibility\u002F3.keyboard-navigation",{"title":87,"path":88,"stem":89},"Hover & Dismissal","\u002Fguide\u002Faccessibility\u002Fhover-and-dismissal","1.guide\u002F4.accessibility\u002F4.hover-and-dismissal",{"title":91,"icon":92,"path":93,"stem":94,"children":95},"API Reference","i-lucide-code-xml","\u002Fapi","2.api",[96,100,110,120,137,171,188],{"title":97,"path":93,"stem":98,"icon":99},"Overview","2.api\u002Findex","i-lucide-file-text",{"title":101,"icon":102,"path":103,"stem":104,"children":105,"page":28},"Reference","i-lucide-braces","\u002Fapi\u002Foverview","2.api\u002F1.overview",[106],{"title":107,"path":108,"stem":109},"Types","\u002Fapi\u002Foverview\u002Ftypes","2.api\u002F1.overview\u002F1.types",{"title":111,"icon":112,"path":113,"stem":114,"children":115,"page":28},"Core","i-lucide-box","\u002Fapi\u002Fcore","2.api\u002F2.core",[116],{"title":117,"path":118,"stem":119},"useFloatingNode","\u002Fapi\u002Fcore\u002Fuse-floating-node","2.api\u002F2.core\u002F1.use-floating-node",{"title":40,"icon":121,"path":122,"stem":123,"children":124,"page":28},"i-lucide-move","\u002Fapi\u002Fpositioning","2.api\u002F3.positioning",[125,129,133],{"title":126,"path":127,"stem":128},"usePosition","\u002Fapi\u002Fpositioning\u002Fuse-position","2.api\u002F3.positioning\u002F1.use-position",{"title":130,"path":131,"stem":132},"useArrow","\u002Fapi\u002Fpositioning\u002Fuse-arrow","2.api\u002F3.positioning\u002F2.use-arrow",{"title":134,"path":135,"stem":136},"useClientPoint","\u002Fapi\u002Fpositioning\u002Fuse-client-point","2.api\u002F3.positioning\u002F3.use-client-point",{"title":138,"icon":139,"path":140,"stem":141,"children":142,"page":28},"Interactions","i-lucide-mouse-pointer-click","\u002Fapi\u002Finteractions","2.api\u002F4.interactions",[143,147,151,155,159,163,167],{"title":144,"path":145,"stem":146},"useClick","\u002Fapi\u002Finteractions\u002Fuse-click","2.api\u002F4.interactions\u002F1.use-click",{"title":148,"path":149,"stem":150},"useHover","\u002Fapi\u002Finteractions\u002Fuse-hover","2.api\u002F4.interactions\u002F2.use-hover",{"title":152,"path":153,"stem":154},"useFocus","\u002Fapi\u002Finteractions\u002Fuse-focus","2.api\u002F4.interactions\u002F3.use-focus",{"title":156,"path":157,"stem":158},"useFocusTrap","\u002Fapi\u002Finteractions\u002Fuse-focus-trap","2.api\u002F4.interactions\u002F4.use-focus-trap",{"title":160,"path":161,"stem":162},"useOutsideClick","\u002Fapi\u002Finteractions\u002Fuse-outside-click","2.api\u002F4.interactions\u002F5.use-outside-click",{"title":164,"path":165,"stem":166},"useEscapeKey","\u002Fapi\u002Finteractions\u002Fuse-escape-key","2.api\u002F4.interactions\u002F6.use-escape-key",{"title":168,"path":169,"stem":170},"useRole","\u002Fapi\u002Finteractions\u002Fuse-role","2.api\u002F4.interactions\u002F7.use-role",{"title":83,"icon":172,"path":173,"stem":174,"children":175,"page":28},"i-lucide-keyboard","\u002Fapi\u002Fkeyboard-navigation","2.api\u002F5.keyboard-navigation",[176,180,184],{"title":177,"path":178,"stem":179},"useRovingFocus","\u002Fapi\u002Fkeyboard-navigation\u002Fuse-roving-focus","2.api\u002F5.keyboard-navigation\u002F1.use-roving-focus",{"title":181,"path":182,"stem":183},"useAriaActivedescendant","\u002Fapi\u002Fkeyboard-navigation\u002Fuse-aria-activedescendant","2.api\u002F5.keyboard-navigation\u002F2.use-aria-activedescendant",{"title":185,"path":186,"stem":187},"useTypeahead","\u002Fapi\u002Fkeyboard-navigation\u002Fuse-typeahead","2.api\u002F5.keyboard-navigation\u002F3.use-typeahead",{"title":189,"icon":190,"path":191,"stem":192,"children":193,"page":28},"Middleware","i-lucide-blocks","\u002Fapi\u002Fmiddleware","2.api\u002F6.middleware",[194,198,202,206,210,214,218,222],{"title":195,"path":196,"stem":197},"offset","\u002Fapi\u002Fmiddleware\u002Foffset","2.api\u002F6.middleware\u002F1.offset",{"title":199,"path":200,"stem":201},"flip","\u002Fapi\u002Fmiddleware\u002Fflip","2.api\u002F6.middleware\u002F2.flip",{"title":203,"path":204,"stem":205},"shift","\u002Fapi\u002Fmiddleware\u002Fshift","2.api\u002F6.middleware\u002F3.shift",{"title":207,"path":208,"stem":209},"autoPlacement","\u002Fapi\u002Fmiddleware\u002Fautoplacement","2.api\u002F6.middleware\u002F4.autoplacement",{"title":211,"path":212,"stem":213},"size","\u002Fapi\u002Fmiddleware\u002Fsize","2.api\u002F6.middleware\u002F5.size",{"title":215,"path":216,"stem":217},"inline","\u002Fapi\u002Fmiddleware\u002Finline","2.api\u002F6.middleware\u002F6.inline",{"title":219,"path":220,"stem":221},"arrow","\u002Fapi\u002Fmiddleware\u002Farrow","2.api\u002F6.middleware\u002F7.arrow",{"title":223,"path":224,"stem":225},"hide","\u002Fapi\u002Fmiddleware\u002Fhide","2.api\u002F6.middleware\u002F8.hide",{"id":227,"title":48,"body":228,"description":1854,"extension":1855,"links":1856,"meta":1857,"navigation":397,"path":49,"seo":1858,"stem":50,"__hash__":1859},"docs\u002F1.guide\u002F2.core-concepts\u002F4.hierarchy.md",{"type":229,"value":230,"toc":1837},"minimark",[231,240,247,250,255,262,271,282,585,592,595,687,694,698,701,1598,1602,1606,1616,1623,1627,1633,1643,1646,1650,1656,1780,1783,1787,1797,1801,1808,1812,1833],[232,233,234,235,239],"p",{},"When you nest floating surfaces (like a submenu inside a dropdown or a select menu inside a modal), ",[236,237,238],"code",{},"\u003CTeleport to=\"body\">"," breaks their DOM ancestry.",[232,241,242,243,246],{},"In the DOM, the parent and child become flat siblings under ",[236,244,245],{},"\u003Cbody>",". Without coordination, clicking the child closes the parent, and pressing Escape dismisses the entire stack at once.",[232,248,249],{},"VFloat solves this by keeping parent-child links in the node itself.",[251,252,254],"h2",{"id":253},"connecting-parent-and-child","Connecting parent and child",[232,256,257,258,261],{},"Every ",[236,259,260],{},"FloatingNode"," tracks its parent and child relationships. You link them in one of two ways:",[263,264,266,267,270],"h3",{"id":265},"_1-automatic-injection-parent-auto","1. Automatic injection (",[236,268,269],{},"parent: \"auto\"",")",[232,272,273,274,277,278,281],{},"In multi-component setups, a child component automatically finds its nearest ancestor floating node using Vue ",[236,275,276],{},"provide"," and ",[236,279,280],{},"inject",":",[283,284,289],"pre",{"className":285,"code":286,"language":287,"meta":288,"style":288},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C!-- SubMenu.vue -->\n\u003Cscript setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport { useFloatingNode, usePosition } from \"v-float\";\n\nconst anchorEl = ref\u003CHTMLElement | null>(null);\nconst floatingEl = ref\u003CHTMLElement | null>(null);\n\n\u002F\u002F Automatically links to the parent menu node via Vue DI\nconst node = useFloatingNode({\n  anchorEl,\n  floatingEl,\n  parent: \"auto\",\n});\n\nusePosition(node, { placement: \"right-start\" });\n\u003C\u002Fscript>\n","vue","",[236,290,291,300,333,363,392,399,438,468,473,479,496,505,513,530,540,545,575],{"__ignoreMap":288},[292,293,296],"span",{"class":294,"line":295},"line",1,[292,297,299],{"class":298},"sHwdD","\u003C!-- SubMenu.vue -->\n",[292,301,303,307,311,315,318,321,324,328,330],{"class":294,"line":302},2,[292,304,306],{"class":305},"sMK4o","\u003C",[292,308,310],{"class":309},"swJcz","script",[292,312,314],{"class":313},"spNyl"," setup",[292,316,317],{"class":313}," lang",[292,319,320],{"class":305},"=",[292,322,323],{"class":305},"\"",[292,325,327],{"class":326},"sfazB","ts",[292,329,323],{"class":305},[292,331,332],{"class":305},">\n",[292,334,336,340,343,347,350,353,356,358,360],{"class":294,"line":335},3,[292,337,339],{"class":338},"s7zQu","import",[292,341,342],{"class":305}," {",[292,344,346],{"class":345},"sTEyZ"," ref",[292,348,349],{"class":305}," }",[292,351,352],{"class":338}," from",[292,354,355],{"class":305}," \"",[292,357,287],{"class":326},[292,359,323],{"class":305},[292,361,362],{"class":305},";\n",[292,364,366,368,370,373,376,379,381,383,385,388,390],{"class":294,"line":365},4,[292,367,339],{"class":338},[292,369,342],{"class":305},[292,371,372],{"class":345}," useFloatingNode",[292,374,375],{"class":305},",",[292,377,378],{"class":345}," usePosition",[292,380,349],{"class":305},[292,382,352],{"class":338},[292,384,355],{"class":305},[292,386,387],{"class":326},"v-float",[292,389,323],{"class":305},[292,391,362],{"class":305},[292,393,395],{"class":294,"line":394},5,[292,396,398],{"emptyLinePlaceholder":397},true,"\n",[292,400,402,405,408,410,413,415,419,422,425,428,431,434,436],{"class":294,"line":401},6,[292,403,404],{"class":313},"const",[292,406,407],{"class":345}," anchorEl ",[292,409,320],{"class":305},[292,411,346],{"class":412},"s2Zo4",[292,414,306],{"class":305},[292,416,418],{"class":417},"sBMFI","HTMLElement",[292,420,421],{"class":305}," |",[292,423,424],{"class":417}," null",[292,426,427],{"class":305},">",[292,429,430],{"class":345},"(",[292,432,433],{"class":305},"null",[292,435,270],{"class":345},[292,437,362],{"class":305},[292,439,441,443,446,448,450,452,454,456,458,460,462,464,466],{"class":294,"line":440},7,[292,442,404],{"class":313},[292,444,445],{"class":345}," floatingEl ",[292,447,320],{"class":305},[292,449,346],{"class":412},[292,451,306],{"class":305},[292,453,418],{"class":417},[292,455,421],{"class":305},[292,457,424],{"class":417},[292,459,427],{"class":305},[292,461,430],{"class":345},[292,463,433],{"class":305},[292,465,270],{"class":345},[292,467,362],{"class":305},[292,469,471],{"class":294,"line":470},8,[292,472,398],{"emptyLinePlaceholder":397},[292,474,476],{"class":294,"line":475},9,[292,477,478],{"class":298},"\u002F\u002F Automatically links to the parent menu node via Vue DI\n",[292,480,482,484,487,489,491,493],{"class":294,"line":481},10,[292,483,404],{"class":313},[292,485,486],{"class":345}," node ",[292,488,320],{"class":305},[292,490,372],{"class":412},[292,492,430],{"class":345},[292,494,495],{"class":305},"{\n",[292,497,499,502],{"class":294,"line":498},11,[292,500,501],{"class":345},"  anchorEl",[292,503,504],{"class":305},",\n",[292,506,508,511],{"class":294,"line":507},12,[292,509,510],{"class":345},"  floatingEl",[292,512,504],{"class":305},[292,514,516,519,521,523,526,528],{"class":294,"line":515},13,[292,517,518],{"class":309},"  parent",[292,520,281],{"class":305},[292,522,355],{"class":305},[292,524,525],{"class":326},"auto",[292,527,323],{"class":305},[292,529,504],{"class":305},[292,531,533,536,538],{"class":294,"line":532},14,[292,534,535],{"class":305},"}",[292,537,270],{"class":345},[292,539,362],{"class":305},[292,541,543],{"class":294,"line":542},15,[292,544,398],{"emptyLinePlaceholder":397},[292,546,548,550,553,555,557,560,562,564,567,569,571,573],{"class":294,"line":547},16,[292,549,126],{"class":412},[292,551,552],{"class":345},"(node",[292,554,375],{"class":305},[292,556,342],{"class":305},[292,558,559],{"class":309}," placement",[292,561,281],{"class":305},[292,563,355],{"class":305},[292,565,566],{"class":326},"right-start",[292,568,323],{"class":305},[292,570,349],{"class":305},[292,572,270],{"class":345},[292,574,362],{"class":305},[292,576,578,581,583],{"class":294,"line":577},17,[292,579,580],{"class":305},"\u003C\u002F",[292,582,310],{"class":309},[292,584,332],{"class":305},[263,586,588,589,270],{"id":587},"_2-explicit-reference-parent-parentnode","2. Explicit reference (",[236,590,591],{},"parent: parentNode",[232,593,594],{},"In a single component, pass the parent node directly:",[283,596,599],{"className":597,"code":598,"language":327,"meta":288,"style":288},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const root = useFloatingNode({ anchorEl: rootBtn, floatingEl: rootMenu });\nconst sub = useFloatingNode({ anchorEl: subBtn, floatingEl: subMenu, parent: root });\n",[236,600,601,641],{"__ignoreMap":288},[292,602,603,605,608,610,612,614,617,620,622,625,627,630,632,635,637,639],{"class":294,"line":295},[292,604,404],{"class":313},[292,606,607],{"class":345}," root ",[292,609,320],{"class":305},[292,611,372],{"class":412},[292,613,430],{"class":345},[292,615,616],{"class":305},"{",[292,618,619],{"class":309}," anchorEl",[292,621,281],{"class":305},[292,623,624],{"class":345}," rootBtn",[292,626,375],{"class":305},[292,628,629],{"class":309}," floatingEl",[292,631,281],{"class":305},[292,633,634],{"class":345}," rootMenu ",[292,636,535],{"class":305},[292,638,270],{"class":345},[292,640,362],{"class":305},[292,642,643,645,648,650,652,654,656,658,660,663,665,667,669,672,674,677,679,681,683,685],{"class":294,"line":302},[292,644,404],{"class":313},[292,646,647],{"class":345}," sub ",[292,649,320],{"class":305},[292,651,372],{"class":412},[292,653,430],{"class":345},[292,655,616],{"class":305},[292,657,619],{"class":309},[292,659,281],{"class":305},[292,661,662],{"class":345}," subBtn",[292,664,375],{"class":305},[292,666,629],{"class":309},[292,668,281],{"class":305},[292,670,671],{"class":345}," subMenu",[292,673,375],{"class":305},[292,675,676],{"class":309}," parent",[292,678,281],{"class":305},[292,680,607],{"class":345},[292,682,535],{"class":305},[292,684,270],{"class":345},[292,686,362],{"class":305},[232,688,689,690,693],{},"If ",[236,691,692],{},"parent"," is omitted, the node remains completely standalone. It will never adopt or be adopted by other surfaces accidentally.",[251,695,697],{"id":696},"complete-nested-menu-setup","Complete nested menu setup",[232,699,700],{},"Here is a full working setup coordinating a root menu with a child submenu:",[283,702,704],{"className":285,"code":703,"language":287,"meta":288,"style":288},"\u003Cscript setup lang=\"ts\">\nimport { ref } from \"vue\";\nimport {\n  useClick,\n  useEscapeKey,\n  useFloatingNode,\n  useHover,\n  useOutsideClick,\n  usePosition,\n} from \"v-float\";\n\nconst rootAnchor = ref\u003CHTMLElement | null>(null);\nconst rootFloating = ref\u003CHTMLElement | null>(null);\nconst subAnchor = ref\u003CHTMLElement | null>(null);\nconst subFloating = ref\u003CHTMLElement | null>(null);\n\n\u002F\u002F 1. Establish node hierarchy\nconst root = useFloatingNode({ anchorEl: rootAnchor, floatingEl: rootFloating });\nconst sub = useFloatingNode({ anchorEl: subAnchor, floatingEl: subFloating, parent: root });\n\n\u002F\u002F 2. Position both surfaces\nusePosition(root, { placement: \"bottom-start\" });\nusePosition(sub, { placement: \"right-start\" });\n\n\u002F\u002F 3. Root menu interactions\nuseClick(root);\nuseOutsideClick(root);\nuseEscapeKey(root);\n\n\u002F\u002F 4. Submenu interactions with hover intent and safe corridor\nuseHover(sub, {\n  delay: { open: 100, close: 200 },\n  safePolygon: true,\n});\nuseOutsideClick(sub);\nuseEscapeKey(sub);\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cbutton ref=\"rootAnchor\" type=\"button\">Options\u003C\u002Fbutton>\n\n  \u003CTeleport to=\"body\">\n    \u003Cdiv v-if=\"root.open.value\" ref=\"rootFloating\" class=\"menu\">\n      \u003Cbutton type=\"button\">New document\u003C\u002Fbutton>\n      \u003Cbutton ref=\"subAnchor\" type=\"button\">Share ›\u003C\u002Fbutton>\n      \u003Cbutton type=\"button\">Delete\u003C\u002Fbutton>\n    \u003C\u002Fdiv>\n\n    \u003Cdiv v-if=\"sub.open.value\" ref=\"subFloating\" class=\"submenu\">\n      \u003Cbutton type=\"button\">Copy link\u003C\u002Fbutton>\n      \u003Cbutton type=\"button\">Email invite\u003C\u002Fbutton>\n    \u003C\u002Fdiv>\n  \u003C\u002FTeleport>\n\u003C\u002Ftemplate>\n",[236,705,706,726,746,753,760,767,774,781,788,795,809,813,842,871,900,929,933,938,974,1019,1024,1030,1059,1087,1092,1098,1108,1117,1126,1131,1137,1148,1180,1194,1203,1213,1222,1231,1236,1246,1288,1293,1315,1361,1390,1429,1457,1467,1472,1514,1542,1570,1579,1589],{"__ignoreMap":288},[292,707,708,710,712,714,716,718,720,722,724],{"class":294,"line":295},[292,709,306],{"class":305},[292,711,310],{"class":309},[292,713,314],{"class":313},[292,715,317],{"class":313},[292,717,320],{"class":305},[292,719,323],{"class":305},[292,721,327],{"class":326},[292,723,323],{"class":305},[292,725,332],{"class":305},[292,727,728,730,732,734,736,738,740,742,744],{"class":294,"line":302},[292,729,339],{"class":338},[292,731,342],{"class":305},[292,733,346],{"class":345},[292,735,349],{"class":305},[292,737,352],{"class":338},[292,739,355],{"class":305},[292,741,287],{"class":326},[292,743,323],{"class":305},[292,745,362],{"class":305},[292,747,748,750],{"class":294,"line":335},[292,749,339],{"class":338},[292,751,752],{"class":305}," {\n",[292,754,755,758],{"class":294,"line":365},[292,756,757],{"class":345},"  useClick",[292,759,504],{"class":305},[292,761,762,765],{"class":294,"line":394},[292,763,764],{"class":345},"  useEscapeKey",[292,766,504],{"class":305},[292,768,769,772],{"class":294,"line":401},[292,770,771],{"class":345},"  useFloatingNode",[292,773,504],{"class":305},[292,775,776,779],{"class":294,"line":440},[292,777,778],{"class":345},"  useHover",[292,780,504],{"class":305},[292,782,783,786],{"class":294,"line":470},[292,784,785],{"class":345},"  useOutsideClick",[292,787,504],{"class":305},[292,789,790,793],{"class":294,"line":475},[292,791,792],{"class":345},"  usePosition",[292,794,504],{"class":305},[292,796,797,799,801,803,805,807],{"class":294,"line":481},[292,798,535],{"class":305},[292,800,352],{"class":338},[292,802,355],{"class":305},[292,804,387],{"class":326},[292,806,323],{"class":305},[292,808,362],{"class":305},[292,810,811],{"class":294,"line":498},[292,812,398],{"emptyLinePlaceholder":397},[292,814,815,817,820,822,824,826,828,830,832,834,836,838,840],{"class":294,"line":507},[292,816,404],{"class":313},[292,818,819],{"class":345}," rootAnchor ",[292,821,320],{"class":305},[292,823,346],{"class":412},[292,825,306],{"class":305},[292,827,418],{"class":417},[292,829,421],{"class":305},[292,831,424],{"class":417},[292,833,427],{"class":305},[292,835,430],{"class":345},[292,837,433],{"class":305},[292,839,270],{"class":345},[292,841,362],{"class":305},[292,843,844,846,849,851,853,855,857,859,861,863,865,867,869],{"class":294,"line":515},[292,845,404],{"class":313},[292,847,848],{"class":345}," rootFloating ",[292,850,320],{"class":305},[292,852,346],{"class":412},[292,854,306],{"class":305},[292,856,418],{"class":417},[292,858,421],{"class":305},[292,860,424],{"class":417},[292,862,427],{"class":305},[292,864,430],{"class":345},[292,866,433],{"class":305},[292,868,270],{"class":345},[292,870,362],{"class":305},[292,872,873,875,878,880,882,884,886,888,890,892,894,896,898],{"class":294,"line":532},[292,874,404],{"class":313},[292,876,877],{"class":345}," subAnchor ",[292,879,320],{"class":305},[292,881,346],{"class":412},[292,883,306],{"class":305},[292,885,418],{"class":417},[292,887,421],{"class":305},[292,889,424],{"class":417},[292,891,427],{"class":305},[292,893,430],{"class":345},[292,895,433],{"class":305},[292,897,270],{"class":345},[292,899,362],{"class":305},[292,901,902,904,907,909,911,913,915,917,919,921,923,925,927],{"class":294,"line":542},[292,903,404],{"class":313},[292,905,906],{"class":345}," subFloating ",[292,908,320],{"class":305},[292,910,346],{"class":412},[292,912,306],{"class":305},[292,914,418],{"class":417},[292,916,421],{"class":305},[292,918,424],{"class":417},[292,920,427],{"class":305},[292,922,430],{"class":345},[292,924,433],{"class":305},[292,926,270],{"class":345},[292,928,362],{"class":305},[292,930,931],{"class":294,"line":547},[292,932,398],{"emptyLinePlaceholder":397},[292,934,935],{"class":294,"line":577},[292,936,937],{"class":298},"\u002F\u002F 1. Establish node hierarchy\n",[292,939,941,943,945,947,949,951,953,955,957,960,962,964,966,968,970,972],{"class":294,"line":940},18,[292,942,404],{"class":313},[292,944,607],{"class":345},[292,946,320],{"class":305},[292,948,372],{"class":412},[292,950,430],{"class":345},[292,952,616],{"class":305},[292,954,619],{"class":309},[292,956,281],{"class":305},[292,958,959],{"class":345}," rootAnchor",[292,961,375],{"class":305},[292,963,629],{"class":309},[292,965,281],{"class":305},[292,967,848],{"class":345},[292,969,535],{"class":305},[292,971,270],{"class":345},[292,973,362],{"class":305},[292,975,977,979,981,983,985,987,989,991,993,996,998,1000,1002,1005,1007,1009,1011,1013,1015,1017],{"class":294,"line":976},19,[292,978,404],{"class":313},[292,980,647],{"class":345},[292,982,320],{"class":305},[292,984,372],{"class":412},[292,986,430],{"class":345},[292,988,616],{"class":305},[292,990,619],{"class":309},[292,992,281],{"class":305},[292,994,995],{"class":345}," subAnchor",[292,997,375],{"class":305},[292,999,629],{"class":309},[292,1001,281],{"class":305},[292,1003,1004],{"class":345}," subFloating",[292,1006,375],{"class":305},[292,1008,676],{"class":309},[292,1010,281],{"class":305},[292,1012,607],{"class":345},[292,1014,535],{"class":305},[292,1016,270],{"class":345},[292,1018,362],{"class":305},[292,1020,1022],{"class":294,"line":1021},20,[292,1023,398],{"emptyLinePlaceholder":397},[292,1025,1027],{"class":294,"line":1026},21,[292,1028,1029],{"class":298},"\u002F\u002F 2. Position both surfaces\n",[292,1031,1033,1035,1038,1040,1042,1044,1046,1048,1051,1053,1055,1057],{"class":294,"line":1032},22,[292,1034,126],{"class":412},[292,1036,1037],{"class":345},"(root",[292,1039,375],{"class":305},[292,1041,342],{"class":305},[292,1043,559],{"class":309},[292,1045,281],{"class":305},[292,1047,355],{"class":305},[292,1049,1050],{"class":326},"bottom-start",[292,1052,323],{"class":305},[292,1054,349],{"class":305},[292,1056,270],{"class":345},[292,1058,362],{"class":305},[292,1060,1062,1064,1067,1069,1071,1073,1075,1077,1079,1081,1083,1085],{"class":294,"line":1061},23,[292,1063,126],{"class":412},[292,1065,1066],{"class":345},"(sub",[292,1068,375],{"class":305},[292,1070,342],{"class":305},[292,1072,559],{"class":309},[292,1074,281],{"class":305},[292,1076,355],{"class":305},[292,1078,566],{"class":326},[292,1080,323],{"class":305},[292,1082,349],{"class":305},[292,1084,270],{"class":345},[292,1086,362],{"class":305},[292,1088,1090],{"class":294,"line":1089},24,[292,1091,398],{"emptyLinePlaceholder":397},[292,1093,1095],{"class":294,"line":1094},25,[292,1096,1097],{"class":298},"\u002F\u002F 3. Root menu interactions\n",[292,1099,1101,1103,1106],{"class":294,"line":1100},26,[292,1102,144],{"class":412},[292,1104,1105],{"class":345},"(root)",[292,1107,362],{"class":305},[292,1109,1111,1113,1115],{"class":294,"line":1110},27,[292,1112,160],{"class":412},[292,1114,1105],{"class":345},[292,1116,362],{"class":305},[292,1118,1120,1122,1124],{"class":294,"line":1119},28,[292,1121,164],{"class":412},[292,1123,1105],{"class":345},[292,1125,362],{"class":305},[292,1127,1129],{"class":294,"line":1128},29,[292,1130,398],{"emptyLinePlaceholder":397},[292,1132,1134],{"class":294,"line":1133},30,[292,1135,1136],{"class":298},"\u002F\u002F 4. Submenu interactions with hover intent and safe corridor\n",[292,1138,1140,1142,1144,1146],{"class":294,"line":1139},31,[292,1141,148],{"class":412},[292,1143,1066],{"class":345},[292,1145,375],{"class":305},[292,1147,752],{"class":305},[292,1149,1151,1154,1156,1158,1161,1163,1167,1169,1172,1174,1177],{"class":294,"line":1150},32,[292,1152,1153],{"class":309},"  delay",[292,1155,281],{"class":305},[292,1157,342],{"class":305},[292,1159,1160],{"class":309}," open",[292,1162,281],{"class":305},[292,1164,1166],{"class":1165},"sbssI"," 100",[292,1168,375],{"class":305},[292,1170,1171],{"class":309}," close",[292,1173,281],{"class":305},[292,1175,1176],{"class":1165}," 200",[292,1178,1179],{"class":305}," },\n",[292,1181,1183,1186,1188,1192],{"class":294,"line":1182},33,[292,1184,1185],{"class":309},"  safePolygon",[292,1187,281],{"class":305},[292,1189,1191],{"class":1190},"sfNiH"," true",[292,1193,504],{"class":305},[292,1195,1197,1199,1201],{"class":294,"line":1196},34,[292,1198,535],{"class":305},[292,1200,270],{"class":345},[292,1202,362],{"class":305},[292,1204,1206,1208,1211],{"class":294,"line":1205},35,[292,1207,160],{"class":412},[292,1209,1210],{"class":345},"(sub)",[292,1212,362],{"class":305},[292,1214,1216,1218,1220],{"class":294,"line":1215},36,[292,1217,164],{"class":412},[292,1219,1210],{"class":345},[292,1221,362],{"class":305},[292,1223,1225,1227,1229],{"class":294,"line":1224},37,[292,1226,580],{"class":305},[292,1228,310],{"class":309},[292,1230,332],{"class":305},[292,1232,1234],{"class":294,"line":1233},38,[292,1235,398],{"emptyLinePlaceholder":397},[292,1237,1239,1241,1244],{"class":294,"line":1238},39,[292,1240,306],{"class":305},[292,1242,1243],{"class":309},"template",[292,1245,332],{"class":305},[292,1247,1249,1252,1255,1257,1259,1261,1264,1266,1269,1271,1273,1275,1277,1279,1282,1284,1286],{"class":294,"line":1248},40,[292,1250,1251],{"class":305},"  \u003C",[292,1253,1254],{"class":309},"button",[292,1256,346],{"class":313},[292,1258,320],{"class":305},[292,1260,323],{"class":305},[292,1262,1263],{"class":326},"rootAnchor",[292,1265,323],{"class":305},[292,1267,1268],{"class":313}," type",[292,1270,320],{"class":305},[292,1272,323],{"class":305},[292,1274,1254],{"class":326},[292,1276,323],{"class":305},[292,1278,427],{"class":305},[292,1280,1281],{"class":345},"Options",[292,1283,580],{"class":305},[292,1285,1254],{"class":309},[292,1287,332],{"class":305},[292,1289,1291],{"class":294,"line":1290},41,[292,1292,398],{"emptyLinePlaceholder":397},[292,1294,1296,1298,1301,1304,1306,1308,1311,1313],{"class":294,"line":1295},42,[292,1297,1251],{"class":305},[292,1299,1300],{"class":309},"Teleport",[292,1302,1303],{"class":313}," to",[292,1305,320],{"class":305},[292,1307,323],{"class":305},[292,1309,1310],{"class":326},"body",[292,1312,323],{"class":305},[292,1314,332],{"class":305},[292,1316,1318,1321,1324,1327,1329,1331,1334,1336,1338,1340,1342,1345,1347,1350,1352,1354,1357,1359],{"class":294,"line":1317},43,[292,1319,1320],{"class":305},"    \u003C",[292,1322,1323],{"class":309},"div",[292,1325,1326],{"class":313}," v-if",[292,1328,320],{"class":305},[292,1330,323],{"class":305},[292,1332,1333],{"class":326},"root.open.value",[292,1335,323],{"class":305},[292,1337,346],{"class":313},[292,1339,320],{"class":305},[292,1341,323],{"class":305},[292,1343,1344],{"class":326},"rootFloating",[292,1346,323],{"class":305},[292,1348,1349],{"class":313}," class",[292,1351,320],{"class":305},[292,1353,323],{"class":305},[292,1355,1356],{"class":326},"menu",[292,1358,323],{"class":305},[292,1360,332],{"class":305},[292,1362,1364,1367,1369,1371,1373,1375,1377,1379,1381,1384,1386,1388],{"class":294,"line":1363},44,[292,1365,1366],{"class":305},"      \u003C",[292,1368,1254],{"class":309},[292,1370,1268],{"class":313},[292,1372,320],{"class":305},[292,1374,323],{"class":305},[292,1376,1254],{"class":326},[292,1378,323],{"class":305},[292,1380,427],{"class":305},[292,1382,1383],{"class":345},"New document",[292,1385,580],{"class":305},[292,1387,1254],{"class":309},[292,1389,332],{"class":305},[292,1391,1393,1395,1397,1399,1401,1403,1406,1408,1410,1412,1414,1416,1418,1420,1423,1425,1427],{"class":294,"line":1392},45,[292,1394,1366],{"class":305},[292,1396,1254],{"class":309},[292,1398,346],{"class":313},[292,1400,320],{"class":305},[292,1402,323],{"class":305},[292,1404,1405],{"class":326},"subAnchor",[292,1407,323],{"class":305},[292,1409,1268],{"class":313},[292,1411,320],{"class":305},[292,1413,323],{"class":305},[292,1415,1254],{"class":326},[292,1417,323],{"class":305},[292,1419,427],{"class":305},[292,1421,1422],{"class":345},"Share ›",[292,1424,580],{"class":305},[292,1426,1254],{"class":309},[292,1428,332],{"class":305},[292,1430,1432,1434,1436,1438,1440,1442,1444,1446,1448,1451,1453,1455],{"class":294,"line":1431},46,[292,1433,1366],{"class":305},[292,1435,1254],{"class":309},[292,1437,1268],{"class":313},[292,1439,320],{"class":305},[292,1441,323],{"class":305},[292,1443,1254],{"class":326},[292,1445,323],{"class":305},[292,1447,427],{"class":305},[292,1449,1450],{"class":345},"Delete",[292,1452,580],{"class":305},[292,1454,1254],{"class":309},[292,1456,332],{"class":305},[292,1458,1460,1463,1465],{"class":294,"line":1459},47,[292,1461,1462],{"class":305},"    \u003C\u002F",[292,1464,1323],{"class":309},[292,1466,332],{"class":305},[292,1468,1470],{"class":294,"line":1469},48,[292,1471,398],{"emptyLinePlaceholder":397},[292,1473,1475,1477,1479,1481,1483,1485,1488,1490,1492,1494,1496,1499,1501,1503,1505,1507,1510,1512],{"class":294,"line":1474},49,[292,1476,1320],{"class":305},[292,1478,1323],{"class":309},[292,1480,1326],{"class":313},[292,1482,320],{"class":305},[292,1484,323],{"class":305},[292,1486,1487],{"class":326},"sub.open.value",[292,1489,323],{"class":305},[292,1491,346],{"class":313},[292,1493,320],{"class":305},[292,1495,323],{"class":305},[292,1497,1498],{"class":326},"subFloating",[292,1500,323],{"class":305},[292,1502,1349],{"class":313},[292,1504,320],{"class":305},[292,1506,323],{"class":305},[292,1508,1509],{"class":326},"submenu",[292,1511,323],{"class":305},[292,1513,332],{"class":305},[292,1515,1517,1519,1521,1523,1525,1527,1529,1531,1533,1536,1538,1540],{"class":294,"line":1516},50,[292,1518,1366],{"class":305},[292,1520,1254],{"class":309},[292,1522,1268],{"class":313},[292,1524,320],{"class":305},[292,1526,323],{"class":305},[292,1528,1254],{"class":326},[292,1530,323],{"class":305},[292,1532,427],{"class":305},[292,1534,1535],{"class":345},"Copy link",[292,1537,580],{"class":305},[292,1539,1254],{"class":309},[292,1541,332],{"class":305},[292,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561,1564,1566,1568],{"class":294,"line":1544},51,[292,1546,1366],{"class":305},[292,1548,1254],{"class":309},[292,1550,1268],{"class":313},[292,1552,320],{"class":305},[292,1554,323],{"class":305},[292,1556,1254],{"class":326},[292,1558,323],{"class":305},[292,1560,427],{"class":305},[292,1562,1563],{"class":345},"Email invite",[292,1565,580],{"class":305},[292,1567,1254],{"class":309},[292,1569,332],{"class":305},[292,1571,1573,1575,1577],{"class":294,"line":1572},52,[292,1574,1462],{"class":305},[292,1576,1323],{"class":309},[292,1578,332],{"class":305},[292,1580,1582,1585,1587],{"class":294,"line":1581},53,[292,1583,1584],{"class":305},"  \u003C\u002F",[292,1586,1300],{"class":309},[292,1588,332],{"class":305},[292,1590,1592,1594,1596],{"class":294,"line":1591},54,[292,1593,580],{"class":305},[292,1595,1243],{"class":309},[292,1597,332],{"class":305},[251,1599,1601],{"id":1600},"what-hierarchy-coordinates","What hierarchy coordinates",[263,1603,1605],{"id":1604},"outside-click-protection","Outside click protection",[232,1607,1608,1609,1611,1612,1615],{},"When ",[236,1610,160],{}," checks whether a click happened outside a parent menu, it calls ",[236,1613,1614],{},"node.contains(event.target)",".",[232,1617,1618,1619,1622],{},"Instead of checking only its own DOM element, ",[236,1620,1621],{},"node.contains"," recursively checks open children. Clicking inside a teleported child submenu counts as inside the family, so the parent stays open.",[263,1624,1626],{"id":1625},"leaf-first-escape-dismissal","Leaf-first Escape dismissal",[232,1628,1629,1630,1632],{},"When the user presses Escape, ",[236,1631,164],{}," checks whether the current node has any open children:",[1634,1635,1636,1640],"ul",{},[1637,1638,1639],"li",{},"If open children exist, the node ignores the keypress.",[1637,1641,1642],{},"Only the innermost leaf node closes.",[232,1644,1645],{},"Pressing Escape a second time closes the next parent up the chain, guaranteeing predictable step-by-step dismissal.",[263,1647,1649],{"id":1648},"cascading-programmatic-teardown","Cascading programmatic teardown",[232,1651,1652,1653,281],{},"When the root menu closes (for example, on outside click or menuitem selection), you can tear down all open descendants using ",[236,1654,1655],{},"node.traverse",[283,1657,1659],{"className":597,"code":1658,"language":327,"meta":288,"style":288},"function closeAll() {\n  root.traverse(\n    (descendant) => {\n      descendant.open.value = false;\n    },\n    { order: \"bottom-up\" },\n  );\n  root.open.value = false;\n}\n",[236,1660,1661,1674,1687,1703,1726,1731,1750,1757,1775],{"__ignoreMap":288},[292,1662,1663,1666,1669,1672],{"class":294,"line":295},[292,1664,1665],{"class":313},"function",[292,1667,1668],{"class":412}," closeAll",[292,1670,1671],{"class":305},"()",[292,1673,752],{"class":305},[292,1675,1676,1679,1681,1684],{"class":294,"line":302},[292,1677,1678],{"class":345},"  root",[292,1680,1615],{"class":305},[292,1682,1683],{"class":412},"traverse",[292,1685,1686],{"class":309},"(\n",[292,1688,1689,1692,1696,1698,1701],{"class":294,"line":335},[292,1690,1691],{"class":305},"    (",[292,1693,1695],{"class":1694},"sHdIc","descendant",[292,1697,270],{"class":305},[292,1699,1700],{"class":313}," =>",[292,1702,752],{"class":305},[292,1704,1705,1708,1710,1713,1715,1718,1721,1724],{"class":294,"line":365},[292,1706,1707],{"class":345},"      descendant",[292,1709,1615],{"class":305},[292,1711,1712],{"class":345},"open",[292,1714,1615],{"class":305},[292,1716,1717],{"class":345},"value",[292,1719,1720],{"class":305}," =",[292,1722,1723],{"class":1190}," false",[292,1725,362],{"class":305},[292,1727,1728],{"class":294,"line":394},[292,1729,1730],{"class":305},"    },\n",[292,1732,1733,1736,1739,1741,1743,1746,1748],{"class":294,"line":401},[292,1734,1735],{"class":305},"    {",[292,1737,1738],{"class":309}," order",[292,1740,281],{"class":305},[292,1742,355],{"class":305},[292,1744,1745],{"class":326},"bottom-up",[292,1747,323],{"class":305},[292,1749,1179],{"class":305},[292,1751,1752,1755],{"class":294,"line":440},[292,1753,1754],{"class":309},"  )",[292,1756,362],{"class":305},[292,1758,1759,1761,1763,1765,1767,1769,1771,1773],{"class":294,"line":470},[292,1760,1678],{"class":345},[292,1762,1615],{"class":305},[292,1764,1712],{"class":345},[292,1766,1615],{"class":305},[292,1768,1717],{"class":345},[292,1770,1720],{"class":305},[292,1772,1723],{"class":1190},[292,1774,362],{"class":305},[292,1776,1777],{"class":294,"line":475},[292,1778,1779],{"class":305},"}\n",[232,1781,1782],{},"Visiting descendants bottom-up ensures child cleanup hooks and state listeners run before the root unmounts.",[263,1784,1786],{"id":1785},"focus-trap-family-coordination","Focus trap family coordination",[232,1788,1789,1790,1792,1793,1796],{},"When a modal dialog opens a select picker or date dropdown, ",[236,1791,156],{}," recognizes that focus has moved into a child floating surface via ",[236,1794,1795],{},"node.contains()",". The parent modal does not steal focus back or trap the user inside the dialog boundary.",[263,1798,1800],{"id":1799},"automatic-cleanup","Automatic cleanup",[232,1802,1803,1804,1807],{},"When a child component unmounts, Vue's scope disposal automatically removes the child from the parent's ",[236,1805,1806],{},"children"," set and clears the parent reference.",[251,1809,1811],{"id":1810},"where-to-go-next","Where to go next",[1634,1813,1814,1820,1825],{},[1637,1815,1816,1819],{},[1817,1818,83],"a",{"href":84},": Add roving focus and arrow key navigation to menus and submenus.",[1637,1821,1822,1824],{},[1817,1823,87],{"href":88},": Learn how safe polygons protect diagonal mouse paths into submenus.",[1637,1826,1827,1832],{},[1817,1828,1829,1831],{"href":118},[236,1830,117],{}," API",": Full options and parenting details.",[1834,1835,1836],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":288,"searchDepth":302,"depth":302,"links":1838},[1839,1845,1846,1853],{"id":253,"depth":302,"text":254,"children":1840},[1841,1843],{"id":265,"depth":335,"text":1842},"1. Automatic injection (parent: \"auto\")",{"id":587,"depth":335,"text":1844},"2. Explicit reference (parent: parentNode)",{"id":696,"depth":302,"text":697},{"id":1600,"depth":302,"text":1601,"children":1847},[1848,1849,1850,1851,1852],{"id":1604,"depth":335,"text":1605},{"id":1625,"depth":335,"text":1626},{"id":1648,"depth":335,"text":1649},{"id":1785,"depth":335,"text":1786},{"id":1799,"depth":335,"text":1800},{"id":1810,"depth":302,"text":1811},"How nested floating surfaces coordinate across teleport boundaries.","md",null,{},{"title":48,"description":1854},"fNPsECrQiV4RJKRl3-yRzF7qfHkt5qHIjmr3rkhcKys",[1861,1863],{"title":44,"path":45,"stem":46,"description":1862,"children":-1},"How VFloat opens, closes, and coordinates floating surfaces.",{"title":57,"path":58,"stem":59,"description":1864,"children":-1},"Configure positioning middlewares to handle spacing, collisions, sizing, and boundary constraints.",1791268047290]