[{"data":1,"prerenderedAt":685},["ShallowReactive",2],{"navigation_docs":3,"-api-composables":81,"-api-composables-surround":681},[4,27,41,67],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":19,"path":20,"stem":21},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration",{"title":23,"path":24,"stem":25},"Directory Structure","\u002Fgetting-started\u002Fdirectory-structure","1.getting-started\u002F4.directory-structure",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Routing","i-lucide-route","\u002Frouting","2.routing",[33,37],{"title":34,"path":35,"stem":36},"Parallel Routes","\u002Frouting\u002Fparallel-routes","2.routing\u002F1.parallel-routes",{"title":38,"path":39,"stem":40},"Modal Routes","\u002Frouting\u002Fmodal-routes","2.routing\u002F2.modal-routes",{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":26},"Components","i-lucide-blocks","\u002Fcomponents","3.components",[47,51,55,59,63],{"title":48,"path":49,"stem":50},"\u003CPlusParallelPage \u002F>","\u002Fcomponents\u002Fplus-parallel-page","3.components\u002F1.plus-parallel-page",{"title":52,"path":53,"stem":54},"\u003CPlusModalApp \u002F>","\u002Fcomponents\u002Fplus-modal-app","3.components\u002F2.plus-modal-app",{"title":56,"path":57,"stem":58},"\u003CPlusModalNuxtPage \u002F>","\u002Fcomponents\u002Fplus-modal-nuxt-page","3.components\u002F3.plus-modal-nuxt-page",{"title":60,"path":61,"stem":62},"\u003CPlusModalPage \u002F>","\u002Fcomponents\u002Fplus-modal-page","3.components\u002F4.plus-modal-page",{"title":64,"path":65,"stem":66},"\u003CPlusModalLink \u002F>","\u002Fcomponents\u002Fplus-modal-link","3.components\u002F5.plus-modal-link",{"title":68,"icon":69,"path":70,"stem":71,"children":72,"page":26},"API","i-lucide-braces","\u002Fapi","4.api",[73,77],{"title":74,"path":75,"stem":76},"Composables","\u002Fapi\u002Fcomposables","4.api\u002F2.composables",{"title":78,"path":79,"stem":80},"Interfaces","\u002Fapi\u002Finterfaces","4.api\u002F3.interfaces",{"id":82,"title":74,"body":83,"description":164,"extension":676,"links":677,"meta":678,"navigation":585,"path":75,"seo":679,"stem":76,"__hash__":680},"docs\u002F4.api\u002F2.composables.md",{"type":84,"value":85,"toc":665},"minimark",[86,94,106,126,132,145,157,246,252,264,271,329,335,344,351,409,415,427,439,445,455,468,474,491,497,511,517,531,537,540,655,661],[87,88,90],"h2",{"id":89},"usemodalrouter",[91,92,93],"code",{},"useModalRouter",[95,96,97,98,105],"p",{},"Get the global modal router object. Returns a ",[99,100,102],"a",{"href":101},"\u002Fapi\u002Finterfaces#modalrouter",[91,103,104],{},"ModalRouter"," object.",[95,107,108,109,112,113,116,117,125],{},"You can also access it by ",[91,110,111],{},"$modalRouter"," in ",[91,114,115],{},"\u003Ctemplate>"," or ",[99,118,122],{"href":119,"rel":120},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-nuxt-app",[121],"nofollow",[91,123,124],{},"useNuxtApp",".",[87,127,129],{"id":128},"useparallelrouter",[91,130,131],{},"useParallelRouter",[95,133,134,135,141,142,125],{},"Gets the current component's parent parallel router and returns a ",[99,136,138],{"href":137},"\u002Fapi\u002Finterfaces#parallelrouter",[91,139,140],{},"ParallelRouter"," object. If the copmonent is inside global router, it will return ",[91,143,144],{},"undefined",[146,147,148,149,156],"warning",{},"This composables calls ",[99,150,153],{"href":151,"rel":152},"https:\u002F\u002Fvuejs.org\u002Fguide\u002Fcomponents\u002Fprovide-inject#inject",[121],[91,154,155],{},"inject"," so that it can only be used inside setup or functional components.",[158,159,165],"pre",{"className":160,"code":161,"filename":162,"language":163,"meta":164,"style":164},"language-html shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup>\nconst parentRouter = useParallelRouter()\nconsole.log(parentRouter.currentRoute.value.fullPath)\n\u003C\u002Fscript>\n","pages\u002F@foo\u002FTheFoo.vue","html","",[91,166,167,187,207,236],{"__ignoreMap":164},[168,169,172,176,180,184],"span",{"class":170,"line":171},"line",1,[168,173,175],{"class":174},"sMK4o","\u003C",[168,177,179],{"class":178},"swJcz","script",[168,181,183],{"class":182},"spNyl"," setup",[168,185,186],{"class":174},">\n",[168,188,190,193,197,200,204],{"class":170,"line":189},2,[168,191,192],{"class":182},"const",[168,194,196],{"class":195},"sTEyZ"," parentRouter ",[168,198,199],{"class":174},"=",[168,201,203],{"class":202},"s2Zo4"," useParallelRouter",[168,205,206],{"class":195},"()\n",[168,208,210,213,215,218,221,223,226,228,231,233],{"class":170,"line":209},3,[168,211,212],{"class":195},"console",[168,214,125],{"class":174},[168,216,217],{"class":202},"log",[168,219,220],{"class":195},"(parentRouter",[168,222,125],{"class":174},[168,224,225],{"class":195},"currentRoute",[168,227,125],{"class":174},[168,229,230],{"class":195},"value",[168,232,125],{"class":174},[168,234,235],{"class":195},"fullPath)\n",[168,237,239,242,244],{"class":170,"line":238},4,[168,240,241],{"class":174},"\u003C\u002F",[168,243,179],{"class":178},[168,245,186],{"class":174},[87,247,249],{"id":248},"useparallelroute",[91,250,251],{},"useParallelRoute",[95,253,254,255,141,262,125],{},"Gets the current component's parent parallel router's route and returns a ",[99,256,259],{"href":257,"rel":258},"https:\u002F\u002Frouter.vuejs.org\u002Fapi\u002Finterfaces\u002FRouteLocationNormalizedLoaded.html#Interface-RouteLocationNormalizedLoaded",[121],[91,260,261],{},"RouteLocationNormalizedLoaded",[91,263,144],{},[146,265,148,266,156],{},[99,267,269],{"href":151,"rel":268},[121],[91,270,155],{},[158,272,274],{"className":160,"code":273,"filename":162,"language":163,"meta":164,"style":164},"\u003Cscript setup>\nconst parentRouter = useParallelRoute()\nconsole.log(parentRouter.currentRoute.value.fullPath)\n\u003C\u002Fscript>\n",[91,275,276,286,299,321],{"__ignoreMap":164},[168,277,278,280,282,284],{"class":170,"line":171},[168,279,175],{"class":174},[168,281,179],{"class":178},[168,283,183],{"class":182},[168,285,186],{"class":174},[168,287,288,290,292,294,297],{"class":170,"line":189},[168,289,192],{"class":182},[168,291,196],{"class":195},[168,293,199],{"class":174},[168,295,296],{"class":202}," useParallelRoute",[168,298,206],{"class":195},[168,300,301,303,305,307,309,311,313,315,317,319],{"class":170,"line":209},[168,302,212],{"class":195},[168,304,125],{"class":174},[168,306,217],{"class":202},[168,308,220],{"class":195},[168,310,125],{"class":174},[168,312,225],{"class":195},[168,314,125],{"class":174},[168,316,230],{"class":195},[168,318,125],{"class":174},[168,320,235],{"class":195},[168,322,323,325,327],{"class":170,"line":238},[168,324,241],{"class":174},[168,326,179],{"class":178},[168,328,186],{"class":174},[87,330,332],{"id":331},"useparentroutername",[91,333,334],{},"useParentRouterName",[95,336,337,338,341,342,125],{},"Gets the current component's parent parallel router name in the ",[91,339,340],{},"MaybeRef\u003Cstring>"," type. If the copmonent is inside the global router, it will return ",[91,343,144],{},[146,345,148,346,156],{},[99,347,349],{"href":151,"rel":348},[121],[91,350,155],{},[158,352,354],{"className":160,"code":353,"filename":162,"language":163,"meta":164,"style":164},"\u003Cscript setup>\nconst parentRouterName = useParentRouterName()\nconsole.log(unref(parentRouterName)) \u002F\u002F 'foo'\n\u003C\u002Fscript>\n",[91,355,356,366,380,401],{"__ignoreMap":164},[168,357,358,360,362,364],{"class":170,"line":171},[168,359,175],{"class":174},[168,361,179],{"class":178},[168,363,183],{"class":182},[168,365,186],{"class":174},[168,367,368,370,373,375,378],{"class":170,"line":189},[168,369,192],{"class":182},[168,371,372],{"class":195}," parentRouterName ",[168,374,199],{"class":174},[168,376,377],{"class":202}," useParentRouterName",[168,379,206],{"class":195},[168,381,382,384,386,388,391,394,397],{"class":170,"line":209},[168,383,212],{"class":195},[168,385,125],{"class":174},[168,387,217],{"class":202},[168,389,390],{"class":195},"(",[168,392,393],{"class":202},"unref",[168,395,396],{"class":195},"(parentRouterName)) ",[168,398,400],{"class":399},"sHwdD","\u002F\u002F 'foo'\n",[168,402,403,405,407],{"class":170,"line":238},[168,404,241],{"class":174},[168,406,179],{"class":178},[168,408,186],{"class":174},[87,410,412],{"id":411},"useparallelrouters",[91,413,414],{},"useParallelRouters",[95,416,417,418,421,422,426],{},"Get all of the parallel routers in the application. Returns a ",[91,419,420],{},"Record"," of ",[99,423,424],{"href":137},[91,425,140],{}," objects, each identified by a unique router name key.",[95,428,108,429,112,432,116,434,125],{},[91,430,431],{},"$parallelRouters",[91,433,115],{},[99,435,437],{"href":119,"rel":436},[121],[91,438,124],{},[87,440,442],{"id":441},"useparallelroutes",[91,443,444],{},"useParallelRoutes",[95,446,447,448,421,450,426],{},"Get all of the parallel routers' routes in the application. Returns a ",[91,449,420],{},[99,451,453],{"href":257,"rel":452},[121],[91,454,261],{},[95,456,457,458,112,461,116,463,125],{},"You can also access it by using ",[91,459,460],{},"$parallelRoutes",[91,462,115],{},[99,464,466],{"href":119,"rel":465},[121],[91,467,124],{},[87,469,471],{"id":470},"useparentrouter",[91,472,473],{},"useParentRouter",[95,475,476,477,482,483,490],{},"Same as ",[99,478,480],{"href":479},"#useparallelrouter",[91,481,131],{}," but returns the global ",[99,484,487],{"href":485,"rel":486},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-router",[121],[91,488,489],{},"useRouter()"," if the component is inside the global router.",[87,492,494],{"id":493},"useparentroute",[91,495,496],{},"useParentRoute",[95,498,476,499,482,504,490],{},[99,500,502],{"href":501},"#useparentroute",[91,503,251],{},[99,505,508],{"href":506,"rel":507},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fapi\u002Fcomposables\u002Fuse-route",[121],[91,509,510],{},"useRoute()",[87,512,514],{"id":513},"resolveparallelroutersbypath",[91,515,516],{},"resolveParallelRoutersByPath",[158,518,522],{"className":519,"code":520,"language":521,"meta":164,"style":164},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","resolveParallelRoutersByPath(path: string): ParallelRouter[]\n","ts",[91,523,524],{"__ignoreMap":164},[168,525,526,528],{"class":170,"line":171},[168,527,516],{"class":202},[168,529,530],{"class":195},"(path: string): ParallelRouter[]\n",[95,532,533,534,125],{},"This function searches through all parallel routers and filters out those that contain the specified ",[91,535,536],{},"path",[95,538,539],{},"It's typically used in a global router context, for instance, in a catch-all path to determine whether to redirect to an error page when no parallel router contains the given path.",[158,541,544],{"className":160,"code":542,"filename":543,"language":163,"meta":164,"style":164},"\u003Cscript setup>\nconst routers = resolveParallelRoutersByPath(useRoute().path)\n\nif (routers.length === 0) {\n  showError(`Path not found: ${useRoute().path}`)\n\u003Cscript>\n","pages\u002F[...all].vue",[91,545,546,556,581,587,614,646],{"__ignoreMap":164},[168,547,548,550,552,554],{"class":170,"line":171},[168,549,175],{"class":174},[168,551,179],{"class":178},[168,553,183],{"class":182},[168,555,186],{"class":174},[168,557,558,560,563,565,568,570,573,576,578],{"class":170,"line":189},[168,559,192],{"class":182},[168,561,562],{"class":195}," routers ",[168,564,199],{"class":174},[168,566,567],{"class":202}," resolveParallelRoutersByPath",[168,569,390],{"class":195},[168,571,572],{"class":202},"useRoute",[168,574,575],{"class":195},"()",[168,577,125],{"class":174},[168,579,580],{"class":195},"path)\n",[168,582,583],{"class":170,"line":209},[168,584,586],{"emptyLinePlaceholder":585},true,"\n",[168,588,589,593,596,598,601,604,608,611],{"class":170,"line":238},[168,590,592],{"class":591},"s7zQu","if",[168,594,595],{"class":195}," (routers",[168,597,125],{"class":174},[168,599,600],{"class":195},"length ",[168,602,603],{"class":174},"===",[168,605,607],{"class":606},"sbssI"," 0",[168,609,610],{"class":195},") ",[168,612,613],{"class":174},"{\n",[168,615,617,620,622,625,629,632,634,636,638,640,643],{"class":170,"line":616},5,[168,618,619],{"class":202},"  showError",[168,621,390],{"class":178},[168,623,624],{"class":174},"`",[168,626,628],{"class":627},"sfazB","Path not found: ",[168,630,631],{"class":174},"${",[168,633,572],{"class":202},[168,635,575],{"class":195},[168,637,125],{"class":174},[168,639,536],{"class":195},[168,641,642],{"class":174},"}`",[168,644,645],{"class":178},")\n",[168,647,649,651,653],{"class":170,"line":648},6,[168,650,175],{"class":174},[168,652,179],{"class":178},[168,654,186],{"class":174},[95,656,657,658,660],{},"In this example, ",[91,659,516],{}," is used to find parallel routers that has the current route's path. If no router is found, an error is shown indicating that the path was not found.",[662,663,664],"style",{},"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 .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 .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 .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 .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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":164,"searchDepth":189,"depth":189,"links":666},[667,668,669,670,671,672,673,674,675],{"id":89,"depth":189,"text":93},{"id":128,"depth":189,"text":131},{"id":248,"depth":189,"text":251},{"id":331,"depth":189,"text":334},{"id":411,"depth":189,"text":414},{"id":441,"depth":189,"text":444},{"id":470,"depth":189,"text":473},{"id":493,"depth":189,"text":496},{"id":513,"depth":189,"text":516},"md",null,{},{"title":74,"description":164},"0bNjjPzYmqjAUEL2-W3dL4ec6xd0fUm8gJbZzeITkRE",[682,684],{"title":64,"path":65,"stem":66,"description":683,"children":-1},"Component to open a modal with a url or navigate inside modal view.",{"title":78,"path":79,"stem":80,"description":164,"children":-1},1786800920448]