[{"data":1,"prerenderedAt":3490},["ShallowReactive",2],{"navigation":3,"-docs-composables-use-overlay":964,"-docs-composables-use-overlay-description":3480},[4],{"title":5,"path":6,"stem":7,"children":8,"page":36},"Docs","\u002Fdocs","docs",[9,163,816,857],{"title":10,"path":11,"stem":12,"children":13,"framework":16,"category":16,"description":16,"icon":30},"Get Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[14,19,37,47,53,76,141],{"title":15,"path":11,"stem":12,"framework":16,"category":16,"description":17,"icon":18},"Introduction",null,"Nuxt UI is a comprehensive Vue UI component library (Nuxt optional), offering 125+ accessible, Tailwind CSS components for building modern web applications.","i-lucide-house",{"title":20,"framework":16,"category":16,"description":16,"shadow":21,"path":22,"stem":23,"children":24,"page":36},"Installation",true,"\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",[25,31],{"title":20,"path":26,"stem":27,"framework":28,"category":16,"description":29,"icon":30},"\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fnuxt","docs\u002F1.getting-started\u002F2.installation\u002F1.nuxt","nuxt","Learn how to install and configure Nuxt UI in your Nuxt application.","i-lucide-square-play",{"title":20,"path":32,"stem":33,"framework":34,"category":16,"description":35,"icon":30},"\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fvue","docs\u002F1.getting-started\u002F2.installation\u002F2.vue","vue","Learn how to install and configure Nuxt UI in your Vue application, compatible with both plain Vite and Inertia.",false,{"title":38,"framework":16,"category":16,"description":16,"icon":39,"shadow":21,"path":40,"stem":41,"children":42,"page":36},"Migration","i-lucide-arrow-right-left","\u002Fdocs\u002Fgetting-started\u002Fmigration","docs\u002F1.getting-started\u002F3.migration",[43],{"title":38,"path":44,"stem":45,"framework":16,"category":16,"description":46,"icon":39},"\u002Fdocs\u002Fgetting-started\u002Fmigration\u002Fv4","docs\u002F1.getting-started\u002F3.migration\u002F1.v4","A comprehensive guide to migrate your application from Nuxt UI v3 to Nuxt UI v4.",{"title":48,"path":49,"stem":50,"framework":16,"category":16,"description":51,"icon":52},"Contribution","\u002Fdocs\u002Fgetting-started\u002Fcontribution","docs\u002F1.getting-started\u002F4.contribution","A comprehensive guide on contributing to Nuxt UI, including project structure, development workflow, and best practices.","i-lucide-handshake",{"title":54,"path":55,"stem":56,"children":57,"page":36},"Theme","\u002Fdocs\u002Fgetting-started\u002Ftheme","docs\u002F1.getting-started\u002F5.theme",[58,64,70],{"title":59,"path":60,"stem":61,"framework":16,"category":16,"description":62,"icon":63},"Design System","\u002Fdocs\u002Fgetting-started\u002Ftheme\u002Fdesign-system","docs\u002F1.getting-started\u002F5.theme\u002F1.design-system","Nuxt UI's design system uses Tailwind CSS for simple theming and easy customization.","i-lucide-palette",{"title":65,"path":66,"stem":67,"framework":16,"category":16,"description":68,"icon":69},"CSS Variables","\u002Fdocs\u002Fgetting-started\u002Ftheme\u002Fcss-variables","docs\u002F1.getting-started\u002F5.theme\u002F2.css-variables","Nuxt UI uses CSS variables as design tokens for flexible, consistent theming with built-in light and dark mode support.","i-lucide-swatch-book",{"title":71,"path":72,"stem":73,"framework":16,"category":16,"description":74,"icon":75},"Components","\u002Fdocs\u002Fgetting-started\u002Ftheme\u002Fcomponents","docs\u002F1.getting-started\u002F5.theme\u002F3.components","Learn how to customize Nuxt UI components with the Tailwind Variants API for advanced, flexible, and maintainable styling.","i-lucide-layout-grid",{"title":77,"framework":16,"category":16,"description":16,"path":78,"stem":79,"children":80,"page":36},"Integrations","\u002Fdocs\u002Fgetting-started\u002Fintegrations","docs\u002F1.getting-started\u002F6.integrations",[81,95,101,115,129,135],{"title":82,"framework":16,"category":16,"description":16,"shadow":21,"path":83,"stem":84,"children":85,"page":36},"Icons","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Ficons","docs\u002F1.getting-started\u002F6.integrations\u002F1.icons",[86,91],{"title":82,"path":87,"stem":88,"framework":28,"category":16,"description":89,"icon":90},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Ficons\u002Fnuxt","docs\u002F1.getting-started\u002F6.integrations\u002F1.icons\u002F1.nuxt","Nuxt UI integrates with Nuxt Icon to access over 200,000+ icons from Iconify.","i-lucide-smile",{"title":82,"path":92,"stem":93,"framework":34,"category":16,"description":94,"icon":90},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Ficons\u002Fvue","docs\u002F1.getting-started\u002F6.integrations\u002F1.icons\u002F2.vue","Nuxt UI integrates with Iconify to access over 200,000+ icons.",{"title":96,"path":97,"stem":98,"framework":28,"category":16,"description":99,"icon":100},"Fonts","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Ffonts","docs\u002F1.getting-started\u002F6.integrations\u002F2.fonts","Nuxt UI integrates with Nuxt Fonts to provide plug-and-play font optimization.","i-lucide-a-large-small",{"title":102,"framework":16,"category":16,"description":16,"shadow":21,"path":103,"stem":104,"children":105,"page":36},"Color Mode","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcolor-mode","docs\u002F1.getting-started\u002F6.integrations\u002F3.color-mode",[106,111],{"title":102,"path":107,"stem":108,"framework":28,"category":16,"description":109,"icon":110},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcolor-mode\u002Fnuxt","docs\u002F1.getting-started\u002F6.integrations\u002F3.color-mode\u002F1.nuxt","Nuxt UI integrates with Nuxt Color Mode to allow for easy switching between light and dark themes.","i-lucide-sun-moon",{"title":102,"path":112,"stem":113,"framework":34,"category":16,"description":114,"icon":110},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcolor-mode\u002Fvue","docs\u002F1.getting-started\u002F6.integrations\u002F3.color-mode\u002F2.vue","Nuxt UI integrates with VueUse to allow for easy switching between light and dark themes.",{"title":116,"framework":16,"category":16,"description":16,"shadow":21,"path":117,"stem":118,"children":119,"page":36},"I18n","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fi18n","docs\u002F1.getting-started\u002F6.integrations\u002F4.i18n",[120,126],{"title":121,"path":122,"stem":123,"framework":28,"category":16,"description":124,"icon":125},"Internationalization (i18n)","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fi18n\u002Fnuxt","docs\u002F1.getting-started\u002F6.integrations\u002F4.i18n\u002F1.nuxt","Nuxt UI supports 50+ locales and multi-directional (LTR\u002FRTL) internationalization.","i-lucide-languages",{"title":121,"path":127,"stem":128,"framework":34,"category":16,"description":124,"icon":125},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fi18n\u002Fvue","docs\u002F1.getting-started\u002F6.integrations\u002F4.i18n\u002F2.vue",{"title":130,"path":131,"stem":132,"framework":28,"category":16,"description":133,"icon":134},"Content","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcontent","docs\u002F1.getting-started\u002F6.integrations\u002F5.content","Nuxt UI integrates with Nuxt Content to deliver beautiful typography and consistent component styling.","i-simple-icons-markdown",{"title":136,"path":137,"stem":138,"framework":34,"category":16,"description":139,"icon":140},"SSR","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fssr","docs\u002F1.getting-started\u002F6.integrations\u002F6.ssr","Nuxt UI has first-party support for Vue SSR. This guide will help you have it fully enabled.","i-lucide-server",{"title":142,"framework":16,"category":16,"description":16,"path":143,"stem":144,"children":145,"page":36},"Agents","\u002Fdocs\u002Fgetting-started\u002Fai","docs\u002F1.getting-started\u002F7.ai",[146,151,157],{"title":147,"path":148,"stem":149,"framework":16,"category":16,"description":150,"icon":140},"MCP Server","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fmcp","docs\u002F1.getting-started\u002F7.ai\u002F1.mcp","Use Nuxt UI components in your AI assistants with Model Context Protocol support.",{"title":152,"path":153,"stem":154,"framework":16,"category":16,"description":155,"icon":156},"LLMs.txt","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fllms-txt","docs\u002F1.getting-started\u002F7.ai\u002F2.llms-txt","How to get AI tools like Cursor, Windsurf, GitHub Copilot, ChatGPT, and Claude to understand Nuxt UI components, theming, and best practices.","i-lucide-bot",{"title":158,"path":159,"stem":160,"framework":16,"category":16,"description":161,"icon":162},"Skills","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fskills","docs\u002F1.getting-started\u002F7.ai\u002F3.skills","Install Nuxt UI skills to give AI coding agents deep knowledge of components, theming, and best practices.","i-lucide-sparkles",{"title":71,"framework":16,"category":16,"description":16,"icon":164,"path":165,"stem":166,"children":167,"page":36},"i-lucide-square-code","\u002Fdocs\u002Fcomponents","docs\u002F2.components",[168,174,180,186,192,197,202,207,212,217,222,228,233,238,243,248,253,258,264,269,274,279,284,289,295,300,305,311,316,321,326,332,337,342,347,352,357,362,367,373,378,383,388,393,399,405,410,415,420,425,430,435,440,445,450,455,460,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,587,592,597,602,607,612,617,622,627,632,637,642,647,652,657,662,667,672,677,682,687,692,697,702,707,712,717,722,727,732,737,742,747,752,757,762,767,772,777,782,787,791,796,801,806,811],{"title":169,"path":170,"stem":171,"framework":16,"category":172,"description":173},"Accordion","\u002Fdocs\u002Fcomponents\u002Faccordion","docs\u002F2.components\u002Faccordion","data","A stacked set of collapsible panels.",{"title":175,"path":176,"stem":177,"framework":16,"category":178,"description":179},"Alert","\u002Fdocs\u002Fcomponents\u002Falert","docs\u002F2.components\u002Falert","element","A callout to draw user's attention.",{"title":181,"path":182,"stem":183,"framework":16,"category":184,"description":185},"App","\u002Fdocs\u002Fcomponents\u002Fapp","docs\u002F2.components\u002Fapp","layout","Wraps your app to provide global configurations and more.",{"title":187,"path":188,"stem":189,"framework":16,"category":190,"description":191},"AuthForm","\u002Fdocs\u002Fcomponents\u002Fauth-form","docs\u002F2.components\u002Fauth-form","page","A customizable Form to create login, register or password reset forms.",{"title":193,"path":194,"stem":195,"framework":16,"category":178,"description":196},"Avatar","\u002Fdocs\u002Fcomponents\u002Favatar","docs\u002F2.components\u002Favatar","An img element with fallback and Nuxt Image support.",{"title":198,"path":199,"stem":200,"framework":16,"category":178,"description":201},"AvatarGroup","\u002Fdocs\u002Fcomponents\u002Favatar-group","docs\u002F2.components\u002Favatar-group","Stack multiple avatars in a group.",{"title":203,"path":204,"stem":205,"framework":16,"category":178,"description":206},"Badge","\u002Fdocs\u002Fcomponents\u002Fbadge","docs\u002F2.components\u002Fbadge","A short text to represent a status or a category.",{"title":208,"path":209,"stem":210,"framework":16,"category":178,"description":211},"Banner","\u002Fdocs\u002Fcomponents\u002Fbanner","docs\u002F2.components\u002Fbanner","Display a banner at the top of your website to inform users about important information.",{"title":213,"path":214,"stem":215,"framework":16,"category":190,"description":216},"BlogPost","\u002Fdocs\u002Fcomponents\u002Fblog-post","docs\u002F2.components\u002Fblog-post","A customizable article to display in a blog page.",{"title":218,"path":219,"stem":220,"framework":16,"category":190,"description":221},"BlogPosts","\u002Fdocs\u002Fcomponents\u002Fblog-posts","docs\u002F2.components\u002Fblog-posts","Display a list of blog posts in a responsive grid layout.",{"title":223,"path":224,"stem":225,"framework":16,"category":226,"description":227},"Breadcrumb","\u002Fdocs\u002Fcomponents\u002Fbreadcrumb","docs\u002F2.components\u002Fbreadcrumb","navigation","A hierarchy of links to navigate through a website.",{"title":229,"path":230,"stem":231,"framework":16,"category":178,"description":232},"Button","\u002Fdocs\u002Fcomponents\u002Fbutton","docs\u002F2.components\u002Fbutton","A button element that can act as a link or trigger an action.",{"title":234,"path":235,"stem":236,"framework":16,"category":178,"description":237},"Calendar","\u002Fdocs\u002Fcomponents\u002Fcalendar","docs\u002F2.components\u002Fcalendar","A calendar component for selecting single dates, multiple dates or date ranges.",{"title":239,"path":240,"stem":241,"framework":16,"category":178,"description":242},"Card","\u002Fdocs\u002Fcomponents\u002Fcard","docs\u002F2.components\u002Fcard","Display content in a card with a header, body and footer.",{"title":244,"path":245,"stem":246,"framework":16,"category":172,"description":247},"Carousel","\u002Fdocs\u002Fcomponents\u002Fcarousel","docs\u002F2.components\u002Fcarousel","A carousel with motion and swipe built using Embla.",{"title":249,"path":250,"stem":251,"framework":16,"category":190,"description":252},"ChangelogVersion","\u002Fdocs\u002Fcomponents\u002Fchangelog-version","docs\u002F2.components\u002Fchangelog-version","A customizable article to display in a changelog.",{"title":254,"path":255,"stem":256,"framework":16,"category":190,"description":257},"ChangelogVersions","\u002Fdocs\u002Fcomponents\u002Fchangelog-versions","docs\u002F2.components\u002Fchangelog-versions","Display a list of changelog versions in a timeline.",{"title":259,"path":260,"stem":261,"framework":16,"category":262,"description":263},"Chat","\u002Fdocs\u002Fcomponents\u002Fchat","docs\u002F2.components\u002Fchat","chat","Build AI chat interfaces with streaming, reasoning, and tool calling.",{"title":265,"path":266,"stem":267,"framework":16,"category":262,"description":268},"ChatMessage","\u002Fdocs\u002Fcomponents\u002Fchat-message","docs\u002F2.components\u002Fchat-message","Display a chat message with icon, avatar, and actions.",{"title":270,"path":271,"stem":272,"framework":16,"category":262,"description":273},"ChatMessages","\u002Fdocs\u002Fcomponents\u002Fchat-messages","docs\u002F2.components\u002Fchat-messages","Display a list of chat messages, designed to work seamlessly with Vercel AI SDK.",{"title":275,"path":276,"stem":277,"framework":16,"category":262,"description":278},"ChatPalette","\u002Fdocs\u002Fcomponents\u002Fchat-palette","docs\u002F2.components\u002Fchat-palette","A chat palette to create a chatbot interface inside an overlay.",{"title":280,"path":281,"stem":282,"framework":16,"category":262,"description":283},"ChatPrompt","\u002Fdocs\u002Fcomponents\u002Fchat-prompt","docs\u002F2.components\u002Fchat-prompt","An enhanced Textarea for submitting prompts in AI chat interfaces.",{"title":285,"path":286,"stem":287,"framework":16,"category":262,"description":288},"ChatPromptSubmit","\u002Fdocs\u002Fcomponents\u002Fchat-prompt-submit","docs\u002F2.components\u002Fchat-prompt-submit","A Button for submitting chat prompts with automatic status handling.",{"title":290,"path":291,"stem":292,"framework":16,"category":262,"description":293,"badge":294},"ChatReasoning","\u002Fdocs\u002Fcomponents\u002Fchat-reasoning","docs\u002F2.components\u002Fchat-reasoning","Display a collapsible AI reasoning or thinking process.","New",{"title":296,"path":297,"stem":298,"framework":16,"category":262,"description":299,"badge":294},"ChatShimmer","\u002Fdocs\u002Fcomponents\u002Fchat-shimmer","docs\u002F2.components\u002Fchat-shimmer","Display a text shimmer animation effect.",{"title":301,"path":302,"stem":303,"framework":16,"category":262,"description":304,"badge":294},"ChatTool","\u002Fdocs\u002Fcomponents\u002Fchat-tool","docs\u002F2.components\u002Fchat-tool","Display a collapsible AI tool invocation status.",{"title":306,"path":307,"stem":308,"framework":16,"category":309,"description":310},"Checkbox","\u002Fdocs\u002Fcomponents\u002Fcheckbox","docs\u002F2.components\u002Fcheckbox","form","An input element to toggle between checked and unchecked states.",{"title":312,"path":313,"stem":314,"framework":16,"category":309,"description":315},"CheckboxGroup","\u002Fdocs\u002Fcomponents\u002Fcheckbox-group","docs\u002F2.components\u002Fcheckbox-group","A set of checklist buttons to select multiple option from a list.",{"title":317,"path":318,"stem":319,"framework":16,"category":178,"description":320},"Chip","\u002Fdocs\u002Fcomponents\u002Fchip","docs\u002F2.components\u002Fchip","An indicator of a numeric value or a state.",{"title":322,"path":323,"stem":324,"framework":16,"category":178,"description":325},"Collapsible","\u002Fdocs\u002Fcomponents\u002Fcollapsible","docs\u002F2.components\u002Fcollapsible","A collapsible element to toggle visibility of its content.",{"title":327,"path":328,"stem":329,"framework":16,"category":330,"description":331},"ColorModeAvatar","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-avatar","docs\u002F2.components\u002Fcolor-mode-avatar","color-mode","An Avatar with a different source for light and dark mode.",{"title":333,"path":334,"stem":335,"framework":16,"category":330,"description":336},"ColorModeButton","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-button","docs\u002F2.components\u002Fcolor-mode-button","A Button to switch between light and dark mode.",{"title":338,"path":339,"stem":340,"framework":16,"category":330,"description":341},"ColorModeImage","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-image","docs\u002F2.components\u002Fcolor-mode-image","An image element with a different source for light and dark mode.",{"title":343,"path":344,"stem":345,"framework":16,"category":330,"description":346},"ColorModeSelect","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-select","docs\u002F2.components\u002Fcolor-mode-select","A Select to switch between system, dark & light mode.",{"title":348,"path":349,"stem":350,"framework":16,"category":330,"description":351},"ColorModeSwitch","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-switch","docs\u002F2.components\u002Fcolor-mode-switch","A switch to toggle between light and dark mode.",{"title":353,"path":354,"stem":355,"framework":16,"category":309,"description":356},"ColorPicker","\u002Fdocs\u002Fcomponents\u002Fcolor-picker","docs\u002F2.components\u002Fcolor-picker","A component to select a color.",{"title":358,"path":359,"stem":360,"framework":16,"category":226,"description":361},"CommandPalette","\u002Fdocs\u002Fcomponents\u002Fcommand-palette","docs\u002F2.components\u002Fcommand-palette","A command palette with full-text search powered by Fuse.js for efficient fuzzy matching.",{"title":363,"path":364,"stem":365,"framework":16,"category":184,"description":366},"Container","\u002Fdocs\u002Fcomponents\u002Fcontainer","docs\u002F2.components\u002Fcontainer","A container lets you center and constrain the width of your content.",{"title":368,"path":369,"stem":370,"framework":28,"category":371,"description":372},"ContentNavigation","\u002Fdocs\u002Fcomponents\u002Fcontent-navigation","docs\u002F2.components\u002Fcontent-navigation","content","An accordion-style navigation component for organizing page links.",{"title":374,"path":375,"stem":376,"framework":28,"category":371,"description":377},"ContentSearch","\u002Fdocs\u002Fcomponents\u002Fcontent-search","docs\u002F2.components\u002Fcontent-search","A ready to use CommandPalette to add to your documentation.",{"title":379,"path":380,"stem":381,"framework":28,"category":371,"description":382},"ContentSearchButton","\u002Fdocs\u002Fcomponents\u002Fcontent-search-button","docs\u002F2.components\u002Fcontent-search-button","A pre-styled Button to open the ContentSearch modal.",{"title":384,"path":385,"stem":386,"framework":28,"category":371,"description":387},"ContentSurround","\u002Fdocs\u002Fcomponents\u002Fcontent-surround","docs\u002F2.components\u002Fcontent-surround","A pair of prev and next links to navigate between pages.",{"title":389,"path":390,"stem":391,"framework":28,"category":371,"description":392},"ContentToc","\u002Fdocs\u002Fcomponents\u002Fcontent-toc","docs\u002F2.components\u002Fcontent-toc","A sticky Table of Contents with automatic active anchor link highlighting.",{"title":394,"path":395,"stem":396,"framework":16,"category":397,"description":398},"ContextMenu","\u002Fdocs\u002Fcomponents\u002Fcontext-menu","docs\u002F2.components\u002Fcontext-menu","overlay","A menu to display actions when right-clicking on an element.",{"title":400,"path":401,"stem":402,"framework":16,"category":403,"description":404},"DashboardGroup","\u002Fdocs\u002Fcomponents\u002Fdashboard-group","docs\u002F2.components\u002Fdashboard-group","dashboard","A fixed layout component that provides context for dashboard components with sidebar state management and persistence.",{"title":406,"path":407,"stem":408,"framework":16,"category":403,"description":409},"DashboardNavbar","\u002Fdocs\u002Fcomponents\u002Fdashboard-navbar","docs\u002F2.components\u002Fdashboard-navbar","A responsive navbar to display in a dashboard.",{"title":411,"path":412,"stem":413,"framework":16,"category":403,"description":414},"DashboardPanel","\u002Fdocs\u002Fcomponents\u002Fdashboard-panel","docs\u002F2.components\u002Fdashboard-panel","A resizable panel to display in a dashboard.",{"title":416,"path":417,"stem":418,"framework":16,"category":403,"description":419},"DashboardResizeHandle","\u002Fdocs\u002Fcomponents\u002Fdashboard-resize-handle","docs\u002F2.components\u002Fdashboard-resize-handle","A handle to resize a sidebar or panel.",{"title":421,"path":422,"stem":423,"framework":16,"category":403,"description":424},"DashboardSearch","\u002Fdocs\u002Fcomponents\u002Fdashboard-search","docs\u002F2.components\u002Fdashboard-search","A ready to use CommandPalette to add to your dashboard.",{"title":426,"path":427,"stem":428,"framework":16,"category":403,"description":429},"DashboardSearchButton","\u002Fdocs\u002Fcomponents\u002Fdashboard-search-button","docs\u002F2.components\u002Fdashboard-search-button","A pre-styled Button to open the DashboardSearch modal.",{"title":431,"path":432,"stem":433,"framework":16,"category":403,"description":434},"DashboardSidebar","\u002Fdocs\u002Fcomponents\u002Fdashboard-sidebar","docs\u002F2.components\u002Fdashboard-sidebar","A resizable and collapsible sidebar to display in a dashboard.",{"title":436,"path":437,"stem":438,"framework":16,"category":403,"description":439},"DashboardSidebarCollapse","\u002Fdocs\u002Fcomponents\u002Fdashboard-sidebar-collapse","docs\u002F2.components\u002Fdashboard-sidebar-collapse","A Button to collapse the sidebar on desktop.",{"title":441,"path":442,"stem":443,"framework":16,"category":403,"description":444},"DashboardSidebarToggle","\u002Fdocs\u002Fcomponents\u002Fdashboard-sidebar-toggle","docs\u002F2.components\u002Fdashboard-sidebar-toggle","A Button to toggle the sidebar on mobile.",{"title":446,"path":447,"stem":448,"framework":16,"category":403,"description":449},"DashboardToolbar","\u002Fdocs\u002Fcomponents\u002Fdashboard-toolbar","docs\u002F2.components\u002Fdashboard-toolbar","A toolbar to display under the navbar in a dashboard.",{"title":451,"path":452,"stem":453,"framework":16,"category":397,"description":454},"Drawer","\u002Fdocs\u002Fcomponents\u002Fdrawer","docs\u002F2.components\u002Fdrawer","A drawer that smoothly slides in & out of the screen.",{"title":456,"path":457,"stem":458,"framework":16,"category":397,"description":459},"DropdownMenu","\u002Fdocs\u002Fcomponents\u002Fdropdown-menu","docs\u002F2.components\u002Fdropdown-menu","A menu to display actions when clicking on an element.",{"title":461,"path":462,"stem":463,"framework":16,"category":464,"description":465},"Editor","\u002Fdocs\u002Fcomponents\u002Feditor","docs\u002F2.components\u002Feditor","editor","A rich text editor component based on TipTap with support for markdown, HTML, and JSON content types.",{"title":467,"path":468,"stem":469,"framework":16,"category":464,"description":470},"EditorDragHandle","\u002Fdocs\u002Fcomponents\u002Feditor-drag-handle","docs\u002F2.components\u002Feditor-drag-handle","A draggable handle for reordering and selecting blocks in the editor.",{"title":472,"path":473,"stem":474,"framework":16,"category":464,"description":475},"EditorEmojiMenu","\u002Fdocs\u002Fcomponents\u002Feditor-emoji-menu","docs\u002F2.components\u002Feditor-emoji-menu","An emoji picker menu that displays emoji suggestions when typing the : character in the editor.",{"title":477,"path":478,"stem":479,"framework":16,"category":464,"description":480},"EditorMentionMenu","\u002Fdocs\u002Fcomponents\u002Feditor-mention-menu","docs\u002F2.components\u002Feditor-mention-menu","A mention menu that displays user suggestions when typing a trigger character in the editor.",{"title":482,"path":483,"stem":484,"framework":16,"category":464,"description":485},"EditorSuggestionMenu","\u002Fdocs\u002Fcomponents\u002Feditor-suggestion-menu","docs\u002F2.components\u002Feditor-suggestion-menu","A command menu that displays formatting and action suggestions when typing the \u002F character in the editor.",{"title":487,"path":488,"stem":489,"framework":16,"category":464,"description":490},"EditorToolbar","\u002Fdocs\u002Fcomponents\u002Feditor-toolbar","docs\u002F2.components\u002Feditor-toolbar","A customizable toolbar for editor actions that can be displayed as fixed, bubble, or floating menu.",{"title":492,"path":493,"stem":494,"framework":16,"category":172,"description":495},"Empty","\u002Fdocs\u002Fcomponents\u002Fempty","docs\u002F2.components\u002Fempty","A component to display an empty state.",{"title":497,"path":498,"stem":499,"framework":16,"category":184,"description":500},"Error","\u002Fdocs\u002Fcomponents\u002Ferror","docs\u002F2.components\u002Ferror","A pre-built error component with NuxtError support.",{"title":502,"path":503,"stem":504,"framework":16,"category":178,"description":505},"FieldGroup","\u002Fdocs\u002Fcomponents\u002Ffield-group","docs\u002F2.components\u002Ffield-group","Group multiple button-like elements together.",{"title":507,"path":508,"stem":509,"framework":16,"category":309,"description":510},"FileUpload","\u002Fdocs\u002Fcomponents\u002Ffile-upload","docs\u002F2.components\u002Ffile-upload","An input element to upload files.",{"title":512,"path":513,"stem":514,"framework":16,"category":184,"description":515},"Footer","\u002Fdocs\u002Fcomponents\u002Ffooter","docs\u002F2.components\u002Ffooter","A responsive footer component.",{"title":517,"path":518,"stem":519,"framework":16,"category":226,"description":520},"FooterColumns","\u002Fdocs\u002Fcomponents\u002Ffooter-columns","docs\u002F2.components\u002Ffooter-columns","A list of links as columns to display in your Footer.",{"title":522,"path":523,"stem":524,"framework":16,"category":309,"description":525},"Form","\u002Fdocs\u002Fcomponents\u002Fform","docs\u002F2.components\u002Fform","A form component with built-in validation and submission handling.",{"title":527,"path":528,"stem":529,"framework":16,"category":309,"description":530},"FormField","\u002Fdocs\u002Fcomponents\u002Fform-field","docs\u002F2.components\u002Fform-field","A wrapper for form elements that provides validation and error handling.",{"title":532,"path":533,"stem":534,"framework":16,"category":184,"description":535},"Header","\u002Fdocs\u002Fcomponents\u002Fheader","docs\u002F2.components\u002Fheader","A responsive header component.",{"title":537,"path":538,"stem":539,"framework":16,"category":178,"description":540},"Icon","\u002Fdocs\u002Fcomponents\u002Ficon","docs\u002F2.components\u002Ficon","A component to display any icon from Iconify or another component.",{"title":542,"path":543,"stem":544,"framework":16,"category":309,"description":545},"Input","\u002Fdocs\u002Fcomponents\u002Finput","docs\u002F2.components\u002Finput","An input element to enter text.",{"title":547,"path":548,"stem":549,"framework":16,"category":309,"description":550},"InputDate","\u002Fdocs\u002Fcomponents\u002Finput-date","docs\u002F2.components\u002Finput-date","An input component for date selection.",{"title":552,"path":553,"stem":554,"framework":16,"category":309,"description":555},"InputMenu","\u002Fdocs\u002Fcomponents\u002Finput-menu","docs\u002F2.components\u002Finput-menu","An autocomplete input with real-time suggestions.",{"title":557,"path":558,"stem":559,"framework":16,"category":309,"description":560},"InputNumber","\u002Fdocs\u002Fcomponents\u002Finput-number","docs\u002F2.components\u002Finput-number","An input for numerical values with a customizable range.",{"title":562,"path":563,"stem":564,"framework":16,"category":309,"description":565},"InputTags","\u002Fdocs\u002Fcomponents\u002Finput-tags","docs\u002F2.components\u002Finput-tags","An input element that displays interactive tags.",{"title":567,"path":568,"stem":569,"framework":16,"category":309,"description":570},"InputTime","\u002Fdocs\u002Fcomponents\u002Finput-time","docs\u002F2.components\u002Finput-time","An input for selecting a time.",{"title":572,"path":573,"stem":574,"framework":16,"category":178,"description":575},"Kbd","\u002Fdocs\u002Fcomponents\u002Fkbd","docs\u002F2.components\u002Fkbd","A kbd element to display a keyboard key.",{"title":577,"path":578,"stem":579,"framework":16,"category":226,"description":580},"Link","\u002Fdocs\u002Fcomponents\u002Flink","docs\u002F2.components\u002Flink","A wrapper around \u003CNuxtLink> with extra props.",{"title":582,"path":583,"stem":584,"framework":16,"category":585,"description":586},"LocaleSelect","\u002Fdocs\u002Fcomponents\u002Flocale-select","docs\u002F2.components\u002Flocale-select","i18n","A Select to switch between locales.",{"title":588,"path":589,"stem":590,"framework":16,"category":184,"description":591},"Main","\u002Fdocs\u002Fcomponents\u002Fmain","docs\u002F2.components\u002Fmain","A main element that fills the available viewport height.",{"title":593,"path":594,"stem":595,"framework":16,"category":172,"description":596},"Marquee","\u002Fdocs\u002Fcomponents\u002Fmarquee","docs\u002F2.components\u002Fmarquee","A component to create infinite scrolling content.",{"title":598,"path":599,"stem":600,"framework":16,"category":397,"description":601},"Modal","\u002Fdocs\u002Fcomponents\u002Fmodal","docs\u002F2.components\u002Fmodal","A dialog window that can be used to display a message or request user input.",{"title":603,"path":604,"stem":605,"framework":16,"category":226,"description":606},"NavigationMenu","\u002Fdocs\u002Fcomponents\u002Fnavigation-menu","docs\u002F2.components\u002Fnavigation-menu","A list of links that can be displayed horizontally or vertically.",{"title":608,"path":609,"stem":610,"framework":16,"category":190,"description":611},"Page","\u002Fdocs\u002Fcomponents\u002Fpage","docs\u002F2.components\u002Fpage","A grid layout for your pages with left and right columns.",{"title":613,"path":614,"stem":615,"framework":16,"category":190,"description":616},"PageAnchors","\u002Fdocs\u002Fcomponents\u002Fpage-anchors","docs\u002F2.components\u002Fpage-anchors","A list of anchors to be displayed in the page.",{"title":618,"path":619,"stem":620,"framework":16,"category":190,"description":621},"PageAside","\u002Fdocs\u002Fcomponents\u002Fpage-aside","docs\u002F2.components\u002Fpage-aside","A sticky aside to display your page navigation.",{"title":623,"path":624,"stem":625,"framework":16,"category":190,"description":626},"PageBody","\u002Fdocs\u002Fcomponents\u002Fpage-body","docs\u002F2.components\u002Fpage-body","The main content of your page.",{"title":628,"path":629,"stem":630,"framework":16,"category":190,"description":631},"PageCard","\u002Fdocs\u002Fcomponents\u002Fpage-card","docs\u002F2.components\u002Fpage-card","A pre-styled card component that displays a title, description and optional link.",{"title":633,"path":634,"stem":635,"framework":16,"category":190,"description":636},"PageColumns","\u002Fdocs\u002Fcomponents\u002Fpage-columns","docs\u002F2.components\u002Fpage-columns","A responsive multi-column layout system for organizing content side-by-side.",{"title":638,"path":639,"stem":640,"framework":16,"category":190,"description":641},"PageCTA","\u002Fdocs\u002Fcomponents\u002Fpage-cta","docs\u002F2.components\u002Fpage-cta","A call to action section to display in your pages.",{"title":643,"path":644,"stem":645,"framework":16,"category":190,"description":646},"PageFeature","\u002Fdocs\u002Fcomponents\u002Fpage-feature","docs\u002F2.components\u002Fpage-feature","A component to showcase key features of your application.",{"title":648,"path":649,"stem":650,"framework":16,"category":190,"description":651},"PageGrid","\u002Fdocs\u002Fcomponents\u002Fpage-grid","docs\u002F2.components\u002Fpage-grid","A responsive grid system for displaying content in a flexible layout.",{"title":653,"path":654,"stem":655,"framework":16,"category":190,"description":656},"PageHeader","\u002Fdocs\u002Fcomponents\u002Fpage-header","docs\u002F2.components\u002Fpage-header","A responsive header for your pages.",{"title":658,"path":659,"stem":660,"framework":16,"category":190,"description":661},"PageHero","\u002Fdocs\u002Fcomponents\u002Fpage-hero","docs\u002F2.components\u002Fpage-hero","A responsive hero for your pages.",{"title":663,"path":664,"stem":665,"framework":16,"category":190,"description":666},"PageLinks","\u002Fdocs\u002Fcomponents\u002Fpage-links","docs\u002F2.components\u002Fpage-links","A list of links to be displayed in the page.",{"title":668,"path":669,"stem":670,"framework":16,"category":190,"description":671},"PageList","\u002Fdocs\u002Fcomponents\u002Fpage-list","docs\u002F2.components\u002Fpage-list","A vertical list layout for displaying content in a stacked format.",{"title":673,"path":674,"stem":675,"framework":16,"category":190,"description":676},"PageLogos","\u002Fdocs\u002Fcomponents\u002Fpage-logos","docs\u002F2.components\u002Fpage-logos","A list of logos or images to display on your pages.",{"title":678,"path":679,"stem":680,"framework":16,"category":190,"description":681},"PageSection","\u002Fdocs\u002Fcomponents\u002Fpage-section","docs\u002F2.components\u002Fpage-section","A responsive section for your pages.",{"title":683,"path":684,"stem":685,"framework":16,"category":226,"description":686},"Pagination","\u002Fdocs\u002Fcomponents\u002Fpagination","docs\u002F2.components\u002Fpagination","A list of buttons or links to navigate through pages.",{"title":688,"path":689,"stem":690,"framework":16,"category":309,"description":691},"PinInput","\u002Fdocs\u002Fcomponents\u002Fpin-input","docs\u002F2.components\u002Fpin-input","An input element to enter a pin.",{"title":693,"path":694,"stem":695,"framework":16,"category":397,"description":696},"Popover","\u002Fdocs\u002Fcomponents\u002Fpopover","docs\u002F2.components\u002Fpopover","A non-modal dialog that floats around a trigger element.",{"title":698,"path":699,"stem":700,"framework":16,"category":190,"description":701},"PricingPlan","\u002Fdocs\u002Fcomponents\u002Fpricing-plan","docs\u002F2.components\u002Fpricing-plan","A customizable pricing plan to display in a pricing page.",{"title":703,"path":704,"stem":705,"framework":16,"category":190,"description":706},"PricingPlans","\u002Fdocs\u002Fcomponents\u002Fpricing-plans","docs\u002F2.components\u002Fpricing-plans","Display a list of pricing plans in a responsive grid layout.",{"title":708,"path":709,"stem":710,"framework":16,"category":190,"description":711},"PricingTable","\u002Fdocs\u002Fcomponents\u002Fpricing-table","docs\u002F2.components\u002Fpricing-table","A responsive pricing table component that displays tiered pricing plans with feature comparisons.",{"title":713,"path":714,"stem":715,"framework":16,"category":178,"description":716},"Progress","\u002Fdocs\u002Fcomponents\u002Fprogress","docs\u002F2.components\u002Fprogress","An indicator showing the progress of a task.",{"title":718,"path":719,"stem":720,"framework":16,"category":309,"description":721},"RadioGroup","\u002Fdocs\u002Fcomponents\u002Fradio-group","docs\u002F2.components\u002Fradio-group","A set of radio buttons to select a single option from a list.",{"title":723,"path":724,"stem":725,"framework":16,"category":172,"description":726},"ScrollArea","\u002Fdocs\u002Fcomponents\u002Fscroll-area","docs\u002F2.components\u002Fscroll-area","A flexible scroll container with virtualization support.",{"title":728,"path":729,"stem":730,"framework":16,"category":309,"description":731},"Select","\u002Fdocs\u002Fcomponents\u002Fselect","docs\u002F2.components\u002Fselect","A select element to choose from a list of options.",{"title":733,"path":734,"stem":735,"framework":16,"category":309,"description":736},"SelectMenu","\u002Fdocs\u002Fcomponents\u002Fselect-menu","docs\u002F2.components\u002Fselect-menu","An advanced searchable select element.",{"title":738,"path":739,"stem":740,"framework":16,"category":178,"description":741},"Separator","\u002Fdocs\u002Fcomponents\u002Fseparator","docs\u002F2.components\u002Fseparator","Separates content horizontally or vertically.",{"title":743,"path":744,"stem":745,"framework":16,"category":184,"description":746,"badge":294},"Sidebar","\u002Fdocs\u002Fcomponents\u002Fsidebar","docs\u002F2.components\u002Fsidebar","A collapsible sidebar with multiple visual variants.",{"title":748,"path":749,"stem":750,"framework":16,"category":178,"description":751},"Skeleton","\u002Fdocs\u002Fcomponents\u002Fskeleton","docs\u002F2.components\u002Fskeleton","A placeholder to show while content is loading.",{"title":753,"path":754,"stem":755,"framework":16,"category":397,"description":756},"Slideover","\u002Fdocs\u002Fcomponents\u002Fslideover","docs\u002F2.components\u002Fslideover","A dialog that slides in from any side of the screen.",{"title":758,"path":759,"stem":760,"framework":16,"category":309,"description":761},"Slider","\u002Fdocs\u002Fcomponents\u002Fslider","docs\u002F2.components\u002Fslider","An input to select a numeric value within a range.",{"title":763,"path":764,"stem":765,"framework":16,"category":226,"description":766},"Stepper","\u002Fdocs\u002Fcomponents\u002Fstepper","docs\u002F2.components\u002Fstepper","A set of steps that are used to indicate progress through a multi-step process.",{"title":768,"path":769,"stem":770,"framework":16,"category":309,"description":771},"Switch","\u002Fdocs\u002Fcomponents\u002Fswitch","docs\u002F2.components\u002Fswitch","A control that toggles between two states.",{"title":773,"path":774,"stem":775,"framework":16,"category":172,"description":776},"Table","\u002Fdocs\u002Fcomponents\u002Ftable","docs\u002F2.components\u002Ftable","A responsive table element to display data in rows and columns.",{"title":778,"path":779,"stem":780,"framework":16,"category":226,"description":781},"Tabs","\u002Fdocs\u002Fcomponents\u002Ftabs","docs\u002F2.components\u002Ftabs","A set of tab panels that are displayed one at a time.",{"title":783,"path":784,"stem":785,"framework":16,"category":309,"description":786},"Textarea","\u002Fdocs\u002Fcomponents\u002Ftextarea","docs\u002F2.components\u002Ftextarea","A textarea element to input multi-line text.",{"title":54,"path":788,"stem":789,"framework":16,"category":184,"description":790},"\u002Fdocs\u002Fcomponents\u002Ftheme","docs\u002F2.components\u002Ftheme","A headless component to theme child components.",{"title":792,"path":793,"stem":794,"framework":16,"category":172,"description":795},"Timeline","\u002Fdocs\u002Fcomponents\u002Ftimeline","docs\u002F2.components\u002Ftimeline","A component that displays a sequence of events with dates, titles, icons or avatars.",{"title":797,"path":798,"stem":799,"framework":16,"category":397,"description":800},"Toast","\u002Fdocs\u002Fcomponents\u002Ftoast","docs\u002F2.components\u002Ftoast","A succinct message to provide information or feedback to the user.",{"title":802,"path":803,"stem":804,"framework":16,"category":397,"description":805},"Tooltip","\u002Fdocs\u002Fcomponents\u002Ftooltip","docs\u002F2.components\u002Ftooltip","A popup that reveals information when hovering over an element.",{"title":807,"path":808,"stem":809,"framework":16,"category":172,"description":810},"Tree","\u002Fdocs\u002Fcomponents\u002Ftree","docs\u002F2.components\u002Ftree","A tree view component to display and interact with hierarchical data structures.",{"title":812,"path":813,"stem":814,"framework":16,"category":172,"description":815},"User","\u002Fdocs\u002Fcomponents\u002Fuser","docs\u002F2.components\u002Fuser","Display user information with name, description and avatar.",{"title":817,"framework":16,"category":16,"description":16,"icon":818,"path":819,"stem":820,"children":821,"page":36},"Composables","i-lucide-square-function","\u002Fdocs\u002Fcomposables","docs\u002F3.composables",[822,827,832,837,842,847,852],{"title":823,"path":824,"stem":825,"framework":16,"category":16,"description":826},"defineLocale","\u002Fdocs\u002Fcomposables\u002Fdefine-locale","docs\u002F3.composables\u002Fdefine-locale","A utility to create a custom locale for your app.",{"title":828,"path":829,"stem":830,"framework":16,"category":16,"description":831},"defineShortcuts","\u002Fdocs\u002Fcomposables\u002Fdefine-shortcuts","docs\u002F3.composables\u002Fdefine-shortcuts","A composable to define keyboard shortcuts in your app.",{"title":833,"path":834,"stem":835,"framework":16,"category":16,"description":836},"extendLocale","\u002Fdocs\u002Fcomposables\u002Fextend-locale","docs\u002F3.composables\u002Fextend-locale","A utility to extend an existing locale with custom translations.",{"title":838,"path":839,"stem":840,"framework":16,"category":16,"description":841},"extractShortcuts","\u002Fdocs\u002Fcomposables\u002Fextract-shortcuts","docs\u002F3.composables\u002Fextract-shortcuts","A utility to extract keyboard shortcuts from menu items.",{"title":843,"path":844,"stem":845,"framework":16,"category":16,"description":846},"useOverlay","\u002Fdocs\u002Fcomposables\u002Fuse-overlay","docs\u002F3.composables\u002Fuse-overlay","A composable to programmatically control overlays.",{"title":848,"path":849,"stem":850,"framework":16,"category":16,"description":851,"badge":294},"useScrollShadow","\u002Fdocs\u002Fcomposables\u002Fuse-scroll-shadow","docs\u002F3.composables\u002Fuse-scroll-shadow","A composable to apply scroll shadow effects on any scrollable element.",{"title":853,"path":854,"stem":855,"framework":16,"category":16,"description":856},"useToast","\u002Fdocs\u002Fcomposables\u002Fuse-toast","docs\u002F3.composables\u002Fuse-toast","A composable to display toast notifications in your app.",{"title":858,"path":859,"stem":860,"children":861,"framework":16,"category":16,"description":16,"icon":963},"Typography","\u002Fdocs\u002Ftypography","docs\u002F4.typography\u002F1.index",[862,864,869,874,879,884,889,893,898,902,907,912,917,922,927,931,936,940,944,948,954,959],{"title":15,"path":859,"stem":860,"framework":16,"category":16,"description":863},"Beautiful typography components and utilities to style your content with Nuxt UI.",{"title":865,"path":866,"stem":867,"framework":16,"category":16,"description":868},"Headers and text","\u002Fdocs\u002Ftypography\u002Fheaders-and-text","docs\u002F4.typography\u002F2.headers-and-text","Beautifully styled headings, paragraphs, text formatting, and links for optimal readability.",{"title":870,"path":871,"stem":872,"framework":16,"category":16,"description":873},"Lists and tables","\u002Fdocs\u002Ftypography\u002Flists-and-tables","docs\u002F4.typography\u002F3.lists-and-tables","Organize information with styled lists and responsive tables for clear, consistent readability.",{"title":875,"path":876,"stem":877,"framework":16,"category":16,"description":878},"Images and embeds","\u002Fdocs\u002Ftypography\u002Fimages-and-embeds","docs\u002F4.typography\u002F4.images-and-embeds","Responsive images, videos, and rich media embeds to enhance and illustrate your documentation.",{"title":880,"path":881,"stem":882,"framework":16,"category":16,"description":883},"Code","\u002Fdocs\u002Ftypography\u002Fcode","docs\u002F4.typography\u002F5.code","Display inline code and syntax-highlighted code blocks with copy-to-clipboard support.",{"title":169,"path":885,"stem":886,"framework":16,"category":887,"description":888},"\u002Fdocs\u002Ftypography\u002Faccordion","docs\u002F4.typography\u002Faccordion","components","Create expandable content sections for better information organization.",{"title":203,"path":890,"stem":891,"framework":16,"category":887,"description":892},"\u002Fdocs\u002Ftypography\u002Fbadge","docs\u002F4.typography\u002Fbadge","Display version numbers, status labels, and tags within your content.",{"title":894,"path":895,"stem":896,"framework":16,"category":887,"description":897},"Callout","\u002Fdocs\u002Ftypography\u002Fcallout","docs\u002F4.typography\u002Fcallout","Highlight important information with eye-catching colored boxes and icons.",{"title":239,"path":899,"stem":900,"framework":16,"category":887,"description":901},"\u002Fdocs\u002Ftypography\u002Fcard","docs\u002F4.typography\u002Fcard","Create highlighted content blocks with optional links and navigation.",{"title":903,"path":904,"stem":905,"framework":16,"category":887,"description":906},"CardGroup","\u002Fdocs\u002Ftypography\u002Fcard-group","docs\u002F4.typography\u002Fcard-group","Organize multiple cards in responsive grid layouts for better content presentation.",{"title":908,"path":909,"stem":910,"framework":16,"category":887,"description":911},"CodeCollapse","\u002Fdocs\u002Ftypography\u002Fcode-collapse","docs\u002F4.typography\u002Fcode-collapse","Make long code blocks collapsible to save space and improve readability.",{"title":913,"path":914,"stem":915,"framework":16,"category":887,"description":916},"CodeGroup","\u002Fdocs\u002Ftypography\u002Fcode-group","docs\u002F4.typography\u002Fcode-group","Group multiple code examples in tabbed interfaces for easy comparison.",{"title":918,"path":919,"stem":920,"framework":16,"category":887,"description":921},"CodePreview","\u002Fdocs\u002Ftypography\u002Fcode-preview","docs\u002F4.typography\u002Fcode-preview","Display code examples with a preview and their source for clearer documentation.",{"title":923,"path":924,"stem":925,"framework":16,"category":887,"description":926},"CodeTree","\u002Fdocs\u002Ftypography\u002Fcode-tree","docs\u002F4.typography\u002Fcode-tree","Visualize file and folder structures with syntax-highlighted code.",{"title":322,"path":928,"stem":929,"framework":16,"category":887,"description":930},"\u002Fdocs\u002Ftypography\u002Fcollapsible","docs\u002F4.typography\u002Fcollapsible","Toggle content visibility with smooth expand and collapse animations.",{"title":932,"path":933,"stem":934,"framework":16,"category":887,"description":935},"Field","\u002Fdocs\u002Ftypography\u002Ffield","docs\u002F4.typography\u002Ffield","Document API parameters, props, and configuration options clearly.",{"title":502,"path":937,"stem":938,"framework":16,"category":887,"description":939},"\u002Fdocs\u002Ftypography\u002Ffield-group","docs\u002F4.typography\u002Ffield-group","Group related fields together for comprehensive API documentation.",{"title":537,"path":941,"stem":942,"framework":16,"category":887,"description":943},"\u002Fdocs\u002Ftypography\u002Ficon","docs\u002F4.typography\u002Ficon","Display icons from popular icon libraries to enhance your content.",{"title":572,"path":945,"stem":946,"framework":16,"category":887,"description":947},"\u002Fdocs\u002Ftypography\u002Fkbd","docs\u002F4.typography\u002Fkbd","Display keyboard shortcuts and key combinations with proper styling.",{"title":949,"path":950,"stem":951,"framework":16,"category":887,"description":952,"badge":953},"Prompt","\u002Fdocs\u002Ftypography\u002Fprompt","docs\u002F4.typography\u002Fprompt","Display pre-built AI prompts with one-click copy and IDE integration.","Soon",{"title":955,"path":956,"stem":957,"framework":16,"category":887,"description":958},"Steps","\u002Fdocs\u002Ftypography\u002Fsteps","docs\u002F4.typography\u002Fsteps","Transform headings into numbered step-by-step guides and tutorials.",{"title":778,"path":960,"stem":961,"framework":16,"category":887,"description":962},"\u002Fdocs\u002Ftypography\u002Ftabs","docs\u002F4.typography\u002Ftabs","Organize related content in interactive tabbed interfaces.","i-lucide-square-pilcrow",{"id":965,"title":843,"body":966,"category":16,"description":846,"extension":3476,"framework":16,"index":36,"links":16,"meta":3477,"navigation":16,"path":844,"seo":3478,"stem":845,"__hash__":3479},"docs\u002Fdocs\u002F3.composables\u002Fuse-overlay.md",{"type":967,"value":968,"toc":3451},"minimark",[969,974,989,1164,1178,1197,1201,1212,1217,1221,1257,1260,1265,1313,1316,1360,1365,1368,1381,1384,1413,1418,1421,1434,1438,1450,1453,1457,1493,1498,1501,1513,1517,1535,1540,1543,1549,1553,1573,1578,1581,1587,1590,1604,1607,1611,1614,1642,1652,1655,1661,1804,1807,1825,1828,1831,1837,1840,1866,1869,1872,1878,2080,2084,2088,2091,2465,2469,2479,2489,2836,2843,3054,3059,3277,3281,3285,3299,3306,3447],[970,971,973],"h2",{"id":972},"usage","Usage",[975,976,977,978,981,982,985,986,988],"p",{},"Use the auto-imported ",[979,980,843],"code",{}," composable to programmatically control ",[983,984,598],"a",{"href":599}," and ",[983,987,753],{"href":754}," components.",[990,991,995],"pre",{"className":992,"code":993,"language":34,"meta":994,"style":994},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nimport { LazyModalExample } from '#components'\n\nconst overlay = useOverlay()\n\nconst modal = overlay.create(LazyModalExample)\n\nasync function openModal() {\n  modal.open()\n}\n\u003C\u002Fscript>\n","",[979,996,997,1032,1061,1067,1085,1090,1112,1117,1135,1148,1154],{"__ignoreMap":994},[998,999,1002,1006,1010,1014,1017,1020,1023,1027,1029],"span",{"class":1000,"line":1001},"line",1,[998,1003,1005],{"class":1004},"sMK4o","\u003C",[998,1007,1009],{"class":1008},"swJcz","script",[998,1011,1013],{"class":1012},"spNyl"," setup",[998,1015,1016],{"class":1012}," lang",[998,1018,1019],{"class":1004},"=",[998,1021,1022],{"class":1004},"\"",[998,1024,1026],{"class":1025},"sfazB","ts",[998,1028,1022],{"class":1004},[998,1030,1031],{"class":1004},">\n",[998,1033,1035,1039,1042,1046,1049,1052,1055,1058],{"class":1000,"line":1034},2,[998,1036,1038],{"class":1037},"s7zQu","import",[998,1040,1041],{"class":1004}," {",[998,1043,1045],{"class":1044},"sTEyZ"," LazyModalExample",[998,1047,1048],{"class":1004}," }",[998,1050,1051],{"class":1037}," from",[998,1053,1054],{"class":1004}," '",[998,1056,1057],{"class":1025},"#components",[998,1059,1060],{"class":1004},"'\n",[998,1062,1064],{"class":1000,"line":1063},3,[998,1065,1066],{"emptyLinePlaceholder":21},"\n",[998,1068,1070,1073,1076,1078,1082],{"class":1000,"line":1069},4,[998,1071,1072],{"class":1012},"const",[998,1074,1075],{"class":1044}," overlay ",[998,1077,1019],{"class":1004},[998,1079,1081],{"class":1080},"s2Zo4"," useOverlay",[998,1083,1084],{"class":1044},"()\n",[998,1086,1088],{"class":1000,"line":1087},5,[998,1089,1066],{"emptyLinePlaceholder":21},[998,1091,1093,1095,1098,1100,1103,1106,1109],{"class":1000,"line":1092},6,[998,1094,1072],{"class":1012},[998,1096,1097],{"class":1044}," modal ",[998,1099,1019],{"class":1004},[998,1101,1102],{"class":1044}," overlay",[998,1104,1105],{"class":1004},".",[998,1107,1108],{"class":1080},"create",[998,1110,1111],{"class":1044},"(LazyModalExample)\n",[998,1113,1115],{"class":1000,"line":1114},7,[998,1116,1066],{"emptyLinePlaceholder":21},[998,1118,1120,1123,1126,1129,1132],{"class":1000,"line":1119},8,[998,1121,1122],{"class":1012},"async",[998,1124,1125],{"class":1012}," function",[998,1127,1128],{"class":1080}," openModal",[998,1130,1131],{"class":1004},"()",[998,1133,1134],{"class":1004}," {\n",[998,1136,1138,1141,1143,1146],{"class":1000,"line":1137},9,[998,1139,1140],{"class":1044},"  modal",[998,1142,1105],{"class":1004},[998,1144,1145],{"class":1080},"open",[998,1147,1084],{"class":1008},[998,1149,1151],{"class":1000,"line":1150},10,[998,1152,1153],{"class":1004},"}\n",[998,1155,1157,1160,1162],{"class":1000,"line":1156},11,[998,1158,1159],{"class":1004},"\u003C\u002F",[998,1161,1009],{"class":1008},[998,1163,1031],{"class":1004},[1165,1166,1167],"ul",{},[1168,1169,1170,1171,1173,1174,1177],"li",{},"The ",[979,1172,843],{}," composable is created using ",[979,1175,1176],{},"createSharedComposable",", ensuring that the same overlay state is shared across your entire application.",[1179,1180,1181],"note",{},[975,1182,1183,1184,1187,1188,1196],{},"In order to return a value from the overlay, the ",[979,1185,1186],{},"overlay.open()"," can be awaited. In order for this to work, however, the ",[1189,1190,1191,1192,1195],"strong",{},"overlay component must emit a ",[979,1193,1194],{},"close"," event",". See example below for details.",[970,1198,1200],{"id":1199},"api","API",[975,1202,1203],{},[979,1204,1207,1210],{"className":1205,"language":1206,"style":994},"language-ts-type shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","ts-type",[998,1208,843],{"class":1209},"sBMFI",[998,1211,1131],{"class":1004},[975,1213,1170,1214,1216],{},[979,1215,843],{}," composable provides methods to manage overlays globally. Each created overlay returns an instance with its own methods.",[1218,1219,1220],"h3",{"id":1108},"create()",[975,1222,1223],{},[979,1224,1225,1227,1230,1234,1237,1240,1243,1246,1248,1251,1254],{"className":1205,"language":1206,"style":994},[998,1226,1108],{"class":1209},[998,1228,1229],{"class":1004},"(",[998,1231,1233],{"class":1232},"sHdIc","component",[998,1235,1236],{"class":1004},":",[998,1238,1239],{"class":1209}," T",[998,1241,1242],{"class":1004},",",[998,1244,1245],{"class":1232}," options",[998,1247,1236],{"class":1004},[998,1249,1250],{"class":1209}," OverlayOptions",[998,1252,1253],{"class":1004},"):",[998,1255,1256],{"class":1209}," OverlayInstance",[975,1258,1259],{},"Create an overlay, and return a factory instance.",[1261,1262,1264],"h4",{"id":1263},"parameters","Parameters",[1266,1267,1268,1276],"field-group",{},[1269,1270,1273],"field",{"name":1233,"type":1271,":required":1272},"T","true",[975,1274,1275],{},"The overlay component to render.",[1269,1277,1280,1283],{"name":1278,"type":1279},"options","OverlayOptions",[975,1281,1282],{},"Configuration options for the overlay.",[1284,1285,1286],"collapsible",{},[1266,1287,1288,1298,1305],{},[1269,1289,1292],{"name":1290,"type":1291},"defaultOpen","boolean",[975,1293,1294,1295,1105],{},"Open the overlay immediately after being created. Defaults to ",[979,1296,1297],{},"false",[1269,1299,1302],{"name":1300,"type":1301},"props","ComponentProps",[975,1303,1304],{},"An optional object of props to pass to the rendered component.",[1269,1306,1308],{"name":1307,"type":1291},"destroyOnClose",[975,1309,1310,1311,1105],{},"Removes the overlay from memory when closed. Defaults to ",[979,1312,1297],{},[1218,1314,1315],{"id":1145},"open()",[975,1317,1318],{},[979,1319,1320,1322,1324,1327,1329,1332,1334,1337,1340,1343,1345,1347,1350,1353,1355,1357],{"className":1205,"language":1206,"style":994},[998,1321,1145],{"class":1209},[998,1323,1229],{"class":1004},[998,1325,1326],{"class":1232},"id",[998,1328,1236],{"class":1004},[998,1330,1331],{"class":1209}," symbol",[998,1333,1242],{"class":1004},[998,1335,1336],{"class":1232}," props",[998,1338,1339],{"class":1004},"?:",[998,1341,1342],{"class":1209}," ComponentProps",[998,1344,1005],{"class":1004},[998,1346,1271],{"class":1209},[998,1348,1349],{"class":1004},">):",[998,1351,1352],{"class":1209}," OpenedOverlay",[998,1354,1005],{"class":1004},[998,1356,1271],{"class":1209},[998,1358,1359],{"class":1004},">",[975,1361,1362,1363,1105],{},"Open an overlay by its ",[979,1364,1326],{},[1261,1366,1264],{"id":1367},"parameters-1",[1266,1369,1370,1376],{},[1269,1371,1373],{"name":1326,"type":1372,":required":1272},"symbol",[975,1374,1375],{},"The identifier of the overlay.",[1269,1377,1379],{"name":1300,"type":1378},"ComponentProps\u003CT>",[975,1380,1304],{},[1218,1382,1383],{"id":1194},"close()",[975,1385,1386],{},[979,1387,1388,1390,1392,1394,1396,1398,1400,1403,1405,1408,1410],{"className":1205,"language":1206,"style":994},[998,1389,1194],{"class":1209},[998,1391,1229],{"class":1004},[998,1393,1326],{"class":1232},[998,1395,1236],{"class":1004},[998,1397,1331],{"class":1209},[998,1399,1242],{"class":1004},[998,1401,1402],{"class":1232}," value",[998,1404,1339],{"class":1004},[998,1406,1407],{"class":1209}," any",[998,1409,1253],{"class":1004},[998,1411,1412],{"class":1209}," void",[975,1414,1415,1416,1105],{},"Close an overlay by its ",[979,1417,1326],{},[1261,1419,1264],{"id":1420},"parameters-2",[1266,1422,1423,1427],{},[1269,1424,1425],{"name":1326,"type":1372,":required":1272},[975,1426,1375],{},[1269,1428,1431],{"name":1429,"type":1430},"value","any",[975,1432,1433],{},"A value to resolve the overlay promise with.",[1218,1435,1437],{"id":1436},"closeall","closeAll()",[975,1439,1440],{},[979,1441,1442,1445,1448],{"className":1205,"language":1206,"style":994},[998,1443,1444],{"class":1209},"closeAll",[998,1446,1447],{"class":1004},"():",[998,1449,1412],{"class":1209},[975,1451,1452],{},"Close all open overlays.",[1218,1454,1456],{"id":1455},"patch","patch()",[975,1458,1459],{},[979,1460,1461,1463,1465,1467,1469,1471,1473,1475,1477,1480,1482,1484,1486,1488,1491],{"className":1205,"language":1206,"style":994},[998,1462,1455],{"class":1209},[998,1464,1229],{"class":1004},[998,1466,1326],{"class":1232},[998,1468,1236],{"class":1004},[998,1470,1331],{"class":1209},[998,1472,1242],{"class":1004},[998,1474,1336],{"class":1232},[998,1476,1236],{"class":1004},[998,1478,1479],{"class":1209}," Partial",[998,1481,1005],{"class":1004},[998,1483,1301],{"class":1209},[998,1485,1005],{"class":1004},[998,1487,1271],{"class":1209},[998,1489,1490],{"class":1004},">>):",[998,1492,1412],{"class":1209},[975,1494,1495,1496,1105],{},"Update an overlay by its ",[979,1497,1326],{},[1261,1499,1264],{"id":1500},"parameters-3",[1266,1502,1503,1507],{},[1269,1504,1505],{"name":1326,"type":1372,":required":1272},[975,1506,1375],{},[1269,1508,1510],{"name":1300,"type":1509,":required":1272},"Partial\u003CComponentProps\u003CT>>",[975,1511,1512],{},"An object of props to update on the rendered component.",[1218,1514,1516],{"id":1515},"unmount","unmount()",[975,1518,1519],{},[979,1520,1521,1523,1525,1527,1529,1531,1533],{"className":1205,"language":1206,"style":994},[998,1522,1515],{"class":1209},[998,1524,1229],{"class":1004},[998,1526,1326],{"class":1232},[998,1528,1236],{"class":1004},[998,1530,1331],{"class":1209},[998,1532,1253],{"class":1004},[998,1534,1412],{"class":1209},[975,1536,1537,1538,1105],{},"Remove an overlay from the DOM by its ",[979,1539,1326],{},[1261,1541,1264],{"id":1542},"parameters-4",[1266,1544,1545],{},[1269,1546,1547],{"name":1326,"type":1372,":required":1272},[975,1548,1375],{},[1218,1550,1552],{"id":1551},"isopen","isOpen()",[975,1554,1555],{},[979,1556,1557,1560,1562,1564,1566,1568,1570],{"className":1205,"language":1206,"style":994},[998,1558,1559],{"class":1209},"isOpen",[998,1561,1229],{"class":1004},[998,1563,1326],{"class":1232},[998,1565,1236],{"class":1004},[998,1567,1331],{"class":1209},[998,1569,1253],{"class":1004},[998,1571,1572],{"class":1209}," boolean",[975,1574,1575,1576,1105],{},"Check if an overlay is open using its ",[979,1577,1326],{},[1261,1579,1264],{"id":1580},"parameters-5",[1266,1582,1583],{},[1269,1584,1585],{"name":1326,"type":1372,":required":1272},[975,1586,1375],{},[1218,1588,1589],{"id":1589},"overlays",[975,1591,1592],{},[979,1593,1594,1596,1598,1601],{"className":1205,"language":1206,"style":994},[998,1595,1589],{"class":1209},[998,1597,1236],{"class":1004},[998,1599,1600],{"class":1209}," Overlay",[998,1602,1603],{"class":1044},"[]",[975,1605,1606],{},"In-memory list of all overlays that were created.",[970,1608,1610],{"id":1609},"instance-api","Instance API",[1218,1612,1315],{"id":1613},"open-1",[975,1615,1616],{},[979,1617,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636,1638,1640],{"className":1205,"language":1206,"style":994},[998,1619,1145],{"class":1209},[998,1621,1229],{"class":1004},[998,1623,1300],{"class":1232},[998,1625,1339],{"class":1004},[998,1627,1342],{"class":1209},[998,1629,1005],{"class":1004},[998,1631,1271],{"class":1209},[998,1633,1349],{"class":1004},[998,1635,1352],{"class":1209},[998,1637,1005],{"class":1004},[998,1639,1271],{"class":1209},[998,1641,1359],{"class":1004},[975,1643,1644,1645,1648,1649,1651],{},"Open the overlay. Returns an ",[979,1646,1647],{},"OpenedOverlay"," which is a Promise that resolves with the value emitted by the ",[979,1650,1194],{}," event.",[1261,1653,1264],{"id":1654},"parameters-6",[1266,1656,1657],{},[1269,1658,1659],{"name":1300,"type":1378},[975,1660,1304],{},[990,1662,1664],{"className":992,"code":1663,"language":34,"meta":994,"style":994},"\u003Cscript setup lang=\"ts\">\nimport { LazyModalExample } from '#components'\n\nconst overlay = useOverlay()\n\nconst modal = overlay.create(LazyModalExample)\n\nfunction openModal() {\n  modal.open({\n    title: 'Welcome'\n  })\n}\n\u003C\u002Fscript>\n",[979,1665,1666,1686,1704,1708,1720,1724,1740,1744,1755,1768,1782,1790,1795],{"__ignoreMap":994},[998,1667,1668,1670,1672,1674,1676,1678,1680,1682,1684],{"class":1000,"line":1001},[998,1669,1005],{"class":1004},[998,1671,1009],{"class":1008},[998,1673,1013],{"class":1012},[998,1675,1016],{"class":1012},[998,1677,1019],{"class":1004},[998,1679,1022],{"class":1004},[998,1681,1026],{"class":1025},[998,1683,1022],{"class":1004},[998,1685,1031],{"class":1004},[998,1687,1688,1690,1692,1694,1696,1698,1700,1702],{"class":1000,"line":1034},[998,1689,1038],{"class":1037},[998,1691,1041],{"class":1004},[998,1693,1045],{"class":1044},[998,1695,1048],{"class":1004},[998,1697,1051],{"class":1037},[998,1699,1054],{"class":1004},[998,1701,1057],{"class":1025},[998,1703,1060],{"class":1004},[998,1705,1706],{"class":1000,"line":1063},[998,1707,1066],{"emptyLinePlaceholder":21},[998,1709,1710,1712,1714,1716,1718],{"class":1000,"line":1069},[998,1711,1072],{"class":1012},[998,1713,1075],{"class":1044},[998,1715,1019],{"class":1004},[998,1717,1081],{"class":1080},[998,1719,1084],{"class":1044},[998,1721,1722],{"class":1000,"line":1087},[998,1723,1066],{"emptyLinePlaceholder":21},[998,1725,1726,1728,1730,1732,1734,1736,1738],{"class":1000,"line":1092},[998,1727,1072],{"class":1012},[998,1729,1097],{"class":1044},[998,1731,1019],{"class":1004},[998,1733,1102],{"class":1044},[998,1735,1105],{"class":1004},[998,1737,1108],{"class":1080},[998,1739,1111],{"class":1044},[998,1741,1742],{"class":1000,"line":1114},[998,1743,1066],{"emptyLinePlaceholder":21},[998,1745,1746,1749,1751,1753],{"class":1000,"line":1119},[998,1747,1748],{"class":1012},"function",[998,1750,1128],{"class":1080},[998,1752,1131],{"class":1004},[998,1754,1134],{"class":1004},[998,1756,1757,1759,1761,1763,1765],{"class":1000,"line":1137},[998,1758,1140],{"class":1044},[998,1760,1105],{"class":1004},[998,1762,1145],{"class":1080},[998,1764,1229],{"class":1008},[998,1766,1767],{"class":1004},"{\n",[998,1769,1770,1773,1775,1777,1780],{"class":1000,"line":1150},[998,1771,1772],{"class":1008},"    title",[998,1774,1236],{"class":1004},[998,1776,1054],{"class":1004},[998,1778,1779],{"class":1025},"Welcome",[998,1781,1060],{"class":1004},[998,1783,1784,1787],{"class":1000,"line":1156},[998,1785,1786],{"class":1004},"  }",[998,1788,1789],{"class":1008},")\n",[998,1791,1793],{"class":1000,"line":1792},12,[998,1794,1153],{"class":1004},[998,1796,1798,1800,1802],{"class":1000,"line":1797},13,[998,1799,1159],{"class":1004},[998,1801,1009],{"class":1008},[998,1803,1031],{"class":1004},[1218,1805,1383],{"id":1806},"close-1",[975,1808,1809],{},[979,1810,1811,1813,1815,1817,1819,1821,1823],{"className":1205,"language":1206,"style":994},[998,1812,1194],{"class":1209},[998,1814,1229],{"class":1004},[998,1816,1429],{"class":1232},[998,1818,1339],{"class":1004},[998,1820,1407],{"class":1209},[998,1822,1253],{"class":1004},[998,1824,1412],{"class":1209},[975,1826,1827],{},"Close the overlay.",[1261,1829,1264],{"id":1830},"parameters-7",[1266,1832,1833],{},[1269,1834,1835],{"name":1429,"type":1430},[975,1836,1433],{},[1218,1838,1456],{"id":1839},"patch-1",[975,1841,1842],{},[979,1843,1844,1846,1848,1850,1852,1854,1856,1858,1860,1862,1864],{"className":1205,"language":1206,"style":994},[998,1845,1455],{"class":1209},[998,1847,1229],{"class":1004},[998,1849,1300],{"class":1232},[998,1851,1236],{"class":1004},[998,1853,1479],{"class":1209},[998,1855,1005],{"class":1004},[998,1857,1301],{"class":1209},[998,1859,1005],{"class":1004},[998,1861,1271],{"class":1209},[998,1863,1490],{"class":1004},[998,1865,1412],{"class":1209},[975,1867,1868],{},"Update the props of the overlay.",[1261,1870,1264],{"id":1871},"parameters-8",[1266,1873,1874],{},[1269,1875,1876],{"name":1300,"type":1509,":required":1272},[975,1877,1512],{},[990,1879,1881],{"className":992,"code":1880,"language":34,"meta":994,"style":994},"\u003Cscript setup lang=\"ts\">\nimport { LazyModalExample } from '#components'\n\nconst overlay = useOverlay()\n\nconst modal = overlay.create(LazyModalExample, {\n  props: { title: 'Welcome' }\n})\n\nfunction openModal() {\n  modal.open()\n}\n\nfunction updateModalTitle() {\n  modal.patch({ title: 'Updated Title' })\n}\n\u003C\u002Fscript>\n",[979,1882,1883,1903,1921,1925,1937,1941,1962,1986,1993,1997,2007,2017,2021,2025,2037,2066,2071],{"__ignoreMap":994},[998,1884,1885,1887,1889,1891,1893,1895,1897,1899,1901],{"class":1000,"line":1001},[998,1886,1005],{"class":1004},[998,1888,1009],{"class":1008},[998,1890,1013],{"class":1012},[998,1892,1016],{"class":1012},[998,1894,1019],{"class":1004},[998,1896,1022],{"class":1004},[998,1898,1026],{"class":1025},[998,1900,1022],{"class":1004},[998,1902,1031],{"class":1004},[998,1904,1905,1907,1909,1911,1913,1915,1917,1919],{"class":1000,"line":1034},[998,1906,1038],{"class":1037},[998,1908,1041],{"class":1004},[998,1910,1045],{"class":1044},[998,1912,1048],{"class":1004},[998,1914,1051],{"class":1037},[998,1916,1054],{"class":1004},[998,1918,1057],{"class":1025},[998,1920,1060],{"class":1004},[998,1922,1923],{"class":1000,"line":1063},[998,1924,1066],{"emptyLinePlaceholder":21},[998,1926,1927,1929,1931,1933,1935],{"class":1000,"line":1069},[998,1928,1072],{"class":1012},[998,1930,1075],{"class":1044},[998,1932,1019],{"class":1004},[998,1934,1081],{"class":1080},[998,1936,1084],{"class":1044},[998,1938,1939],{"class":1000,"line":1087},[998,1940,1066],{"emptyLinePlaceholder":21},[998,1942,1943,1945,1947,1949,1951,1953,1955,1958,1960],{"class":1000,"line":1092},[998,1944,1072],{"class":1012},[998,1946,1097],{"class":1044},[998,1948,1019],{"class":1004},[998,1950,1102],{"class":1044},[998,1952,1105],{"class":1004},[998,1954,1108],{"class":1080},[998,1956,1957],{"class":1044},"(LazyModalExample",[998,1959,1242],{"class":1004},[998,1961,1134],{"class":1004},[998,1963,1964,1967,1969,1971,1974,1976,1978,1980,1983],{"class":1000,"line":1114},[998,1965,1966],{"class":1008},"  props",[998,1968,1236],{"class":1004},[998,1970,1041],{"class":1004},[998,1972,1973],{"class":1008}," title",[998,1975,1236],{"class":1004},[998,1977,1054],{"class":1004},[998,1979,1779],{"class":1025},[998,1981,1982],{"class":1004},"'",[998,1984,1985],{"class":1004}," }\n",[998,1987,1988,1991],{"class":1000,"line":1119},[998,1989,1990],{"class":1004},"}",[998,1992,1789],{"class":1044},[998,1994,1995],{"class":1000,"line":1137},[998,1996,1066],{"emptyLinePlaceholder":21},[998,1998,1999,2001,2003,2005],{"class":1000,"line":1150},[998,2000,1748],{"class":1012},[998,2002,1128],{"class":1080},[998,2004,1131],{"class":1004},[998,2006,1134],{"class":1004},[998,2008,2009,2011,2013,2015],{"class":1000,"line":1156},[998,2010,1140],{"class":1044},[998,2012,1105],{"class":1004},[998,2014,1145],{"class":1080},[998,2016,1084],{"class":1008},[998,2018,2019],{"class":1000,"line":1792},[998,2020,1153],{"class":1004},[998,2022,2023],{"class":1000,"line":1797},[998,2024,1066],{"emptyLinePlaceholder":21},[998,2026,2028,2030,2033,2035],{"class":1000,"line":2027},14,[998,2029,1748],{"class":1012},[998,2031,2032],{"class":1080}," updateModalTitle",[998,2034,1131],{"class":1004},[998,2036,1134],{"class":1004},[998,2038,2040,2042,2044,2046,2048,2051,2053,2055,2057,2060,2062,2064],{"class":1000,"line":2039},15,[998,2041,1140],{"class":1044},[998,2043,1105],{"class":1004},[998,2045,1455],{"class":1080},[998,2047,1229],{"class":1008},[998,2049,2050],{"class":1004},"{",[998,2052,1973],{"class":1008},[998,2054,1236],{"class":1004},[998,2056,1054],{"class":1004},[998,2058,2059],{"class":1025},"Updated Title",[998,2061,1982],{"class":1004},[998,2063,1048],{"class":1004},[998,2065,1789],{"class":1008},[998,2067,2069],{"class":1000,"line":2068},16,[998,2070,1153],{"class":1004},[998,2072,2074,2076,2078],{"class":1000,"line":2073},17,[998,2075,1159],{"class":1004},[998,2077,1009],{"class":1008},[998,2079,1031],{"class":1004},[970,2081,2083],{"id":2082},"examples","Examples",[1218,2085,2087],{"id":2086},"with-multiple-overlays","With multiple overlays",[975,2089,2090],{},"This example demonstrates how to manage multiple overlays and pass data between them:",[990,2092,2094],{"className":992,"code":2093,"language":34,"meta":994,"style":994},"\u003Cscript setup lang=\"ts\">\nimport { ModalA, ModalB, SlideoverA } from '#components'\n\nconst overlay = useOverlay()\n\n\u002F\u002F Create with default props\nconst modalA = overlay.create(ModalA, { props: { title: 'Welcome' } })\nconst modalB = overlay.create(ModalB)\nconst slideoverA = overlay.create(SlideoverA)\n\nconst openModalA = () => {\n  \u002F\u002F Open modalA, but override the title prop\n  modalA.open({ title: 'Hello' })\n}\n\nconst openModalB = async () => {\n  \u002F\u002F Open modalB, and wait for its result\n  const input = await modalB.open()\n\n  \u002F\u002F Pass the result from modalB to the slideover, and open it\n  slideoverA.open({ input })\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CUButton label=\"Open Modal\" @click=\"openModalA\" \u002F>\n\u003C\u002Ftemplate>\n",[979,2095,2096,2116,2145,2149,2161,2165,2171,2215,2233,2251,2255,2272,2277,2305,2309,2313,2331,2336,2360,2365,2371,2391,2396,2405,2410,2420,2456],{"__ignoreMap":994},[998,2097,2098,2100,2102,2104,2106,2108,2110,2112,2114],{"class":1000,"line":1001},[998,2099,1005],{"class":1004},[998,2101,1009],{"class":1008},[998,2103,1013],{"class":1012},[998,2105,1016],{"class":1012},[998,2107,1019],{"class":1004},[998,2109,1022],{"class":1004},[998,2111,1026],{"class":1025},[998,2113,1022],{"class":1004},[998,2115,1031],{"class":1004},[998,2117,2118,2120,2122,2125,2127,2130,2132,2135,2137,2139,2141,2143],{"class":1000,"line":1034},[998,2119,1038],{"class":1037},[998,2121,1041],{"class":1004},[998,2123,2124],{"class":1044}," ModalA",[998,2126,1242],{"class":1004},[998,2128,2129],{"class":1044}," ModalB",[998,2131,1242],{"class":1004},[998,2133,2134],{"class":1044}," SlideoverA",[998,2136,1048],{"class":1004},[998,2138,1051],{"class":1037},[998,2140,1054],{"class":1004},[998,2142,1057],{"class":1025},[998,2144,1060],{"class":1004},[998,2146,2147],{"class":1000,"line":1063},[998,2148,1066],{"emptyLinePlaceholder":21},[998,2150,2151,2153,2155,2157,2159],{"class":1000,"line":1069},[998,2152,1072],{"class":1012},[998,2154,1075],{"class":1044},[998,2156,1019],{"class":1004},[998,2158,1081],{"class":1080},[998,2160,1084],{"class":1044},[998,2162,2163],{"class":1000,"line":1087},[998,2164,1066],{"emptyLinePlaceholder":21},[998,2166,2167],{"class":1000,"line":1092},[998,2168,2170],{"class":2169},"sHwdD","\u002F\u002F Create with default props\n",[998,2172,2173,2175,2178,2180,2182,2184,2186,2189,2191,2193,2195,2197,2199,2201,2203,2205,2207,2209,2211,2213],{"class":1000,"line":1114},[998,2174,1072],{"class":1012},[998,2176,2177],{"class":1044}," modalA ",[998,2179,1019],{"class":1004},[998,2181,1102],{"class":1044},[998,2183,1105],{"class":1004},[998,2185,1108],{"class":1080},[998,2187,2188],{"class":1044},"(ModalA",[998,2190,1242],{"class":1004},[998,2192,1041],{"class":1004},[998,2194,1336],{"class":1008},[998,2196,1236],{"class":1004},[998,2198,1041],{"class":1004},[998,2200,1973],{"class":1008},[998,2202,1236],{"class":1004},[998,2204,1054],{"class":1004},[998,2206,1779],{"class":1025},[998,2208,1982],{"class":1004},[998,2210,1048],{"class":1004},[998,2212,1048],{"class":1004},[998,2214,1789],{"class":1044},[998,2216,2217,2219,2222,2224,2226,2228,2230],{"class":1000,"line":1119},[998,2218,1072],{"class":1012},[998,2220,2221],{"class":1044}," modalB ",[998,2223,1019],{"class":1004},[998,2225,1102],{"class":1044},[998,2227,1105],{"class":1004},[998,2229,1108],{"class":1080},[998,2231,2232],{"class":1044},"(ModalB)\n",[998,2234,2235,2237,2240,2242,2244,2246,2248],{"class":1000,"line":1137},[998,2236,1072],{"class":1012},[998,2238,2239],{"class":1044}," slideoverA ",[998,2241,1019],{"class":1004},[998,2243,1102],{"class":1044},[998,2245,1105],{"class":1004},[998,2247,1108],{"class":1080},[998,2249,2250],{"class":1044},"(SlideoverA)\n",[998,2252,2253],{"class":1000,"line":1150},[998,2254,1066],{"emptyLinePlaceholder":21},[998,2256,2257,2259,2262,2264,2267,2270],{"class":1000,"line":1156},[998,2258,1072],{"class":1012},[998,2260,2261],{"class":1044}," openModalA ",[998,2263,1019],{"class":1004},[998,2265,2266],{"class":1004}," ()",[998,2268,2269],{"class":1012}," =>",[998,2271,1134],{"class":1004},[998,2273,2274],{"class":1000,"line":1792},[998,2275,2276],{"class":2169},"  \u002F\u002F Open modalA, but override the title prop\n",[998,2278,2279,2282,2284,2286,2288,2290,2292,2294,2296,2299,2301,2303],{"class":1000,"line":1797},[998,2280,2281],{"class":1044},"  modalA",[998,2283,1105],{"class":1004},[998,2285,1145],{"class":1080},[998,2287,1229],{"class":1008},[998,2289,2050],{"class":1004},[998,2291,1973],{"class":1008},[998,2293,1236],{"class":1004},[998,2295,1054],{"class":1004},[998,2297,2298],{"class":1025},"Hello",[998,2300,1982],{"class":1004},[998,2302,1048],{"class":1004},[998,2304,1789],{"class":1008},[998,2306,2307],{"class":1000,"line":2027},[998,2308,1153],{"class":1004},[998,2310,2311],{"class":1000,"line":2039},[998,2312,1066],{"emptyLinePlaceholder":21},[998,2314,2315,2317,2320,2322,2325,2327,2329],{"class":1000,"line":2068},[998,2316,1072],{"class":1012},[998,2318,2319],{"class":1044}," openModalB ",[998,2321,1019],{"class":1004},[998,2323,2324],{"class":1012}," async",[998,2326,2266],{"class":1004},[998,2328,2269],{"class":1012},[998,2330,1134],{"class":1004},[998,2332,2333],{"class":1000,"line":2073},[998,2334,2335],{"class":2169},"  \u002F\u002F Open modalB, and wait for its result\n",[998,2337,2339,2342,2345,2348,2351,2354,2356,2358],{"class":1000,"line":2338},18,[998,2340,2341],{"class":1012},"  const",[998,2343,2344],{"class":1044}," input",[998,2346,2347],{"class":1004}," =",[998,2349,2350],{"class":1037}," await",[998,2352,2353],{"class":1044}," modalB",[998,2355,1105],{"class":1004},[998,2357,1145],{"class":1080},[998,2359,1084],{"class":1008},[998,2361,2363],{"class":1000,"line":2362},19,[998,2364,1066],{"emptyLinePlaceholder":21},[998,2366,2368],{"class":1000,"line":2367},20,[998,2369,2370],{"class":2169},"  \u002F\u002F Pass the result from modalB to the slideover, and open it\n",[998,2372,2374,2377,2379,2381,2383,2385,2387,2389],{"class":1000,"line":2373},21,[998,2375,2376],{"class":1044},"  slideoverA",[998,2378,1105],{"class":1004},[998,2380,1145],{"class":1080},[998,2382,1229],{"class":1008},[998,2384,2050],{"class":1004},[998,2386,2344],{"class":1044},[998,2388,1048],{"class":1004},[998,2390,1789],{"class":1008},[998,2392,2394],{"class":1000,"line":2393},22,[998,2395,1153],{"class":1004},[998,2397,2399,2401,2403],{"class":1000,"line":2398},23,[998,2400,1159],{"class":1004},[998,2402,1009],{"class":1008},[998,2404,1031],{"class":1004},[998,2406,2408],{"class":1000,"line":2407},24,[998,2409,1066],{"emptyLinePlaceholder":21},[998,2411,2413,2415,2418],{"class":1000,"line":2412},25,[998,2414,1005],{"class":1004},[998,2416,2417],{"class":1008},"template",[998,2419,1031],{"class":1004},[998,2421,2423,2426,2429,2432,2434,2436,2439,2441,2444,2446,2448,2451,2453],{"class":1000,"line":2422},26,[998,2424,2425],{"class":1004},"  \u003C",[998,2427,2428],{"class":1008},"UButton",[998,2430,2431],{"class":1012}," label",[998,2433,1019],{"class":1004},[998,2435,1022],{"class":1004},[998,2437,2438],{"class":1025},"Open Modal",[998,2440,1022],{"class":1004},[998,2442,2443],{"class":1012}," @click",[998,2445,1019],{"class":1004},[998,2447,1022],{"class":1004},[998,2449,2450],{"class":1025},"openModalA",[998,2452,1022],{"class":1004},[998,2454,2455],{"class":1004}," \u002F>\n",[998,2457,2459,2461,2463],{"class":1000,"line":2458},27,[998,2460,1159],{"class":1004},[998,2462,2417],{"class":1008},[998,2464,1031],{"class":1004},[1218,2466,2468],{"id":2467},"confirm-dialog","Confirm dialog",[975,2470,2471,2472,2475,2476,2478],{},"This example demonstrates how to create a reusable confirm dialog pattern using a custom ",[979,2473,2474],{},"useConfirmDialog"," composable that wraps ",[979,2477,843],{},". This approach enables opinionated dialogs tailored to specific business requirements and design preferences.",[2480,2481,2482],"ol",{},[1168,2483,2484,2485,2488],{},"Create a ",[979,2486,2487],{},"ConfirmDialog"," component that emits a boolean value when closed:",[990,2490,2493],{"className":992,"code":2491,"filename":2492,"language":34,"meta":994,"style":994},"\u003Cscript lang=\"ts\" setup>\ninterface ConfirmDialogProps {\n  title?: string\n  description?: string\n}\n\ndefineProps\u003CConfirmDialogProps>()\n\nconst emits = defineEmits\u003C{\n  close: [value: boolean]\n}>()\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CUModal\n    :title=\"title\"\n    :description=\"description\"\n    :dismissible=\"false\"\n    :ui=\"{ footer: 'justify-end' }\"\n  >\n    \u003Ctemplate #footer>\n      \u003CUButton label=\"Cancel\" color=\"neutral\" variant=\"outline\" @click=\"emits('close', false)\" \u002F>\n      \u003CUButton label=\"Confirm\" color=\"neutral\" @click=\"emits('close', true)\" \u002F>\n    \u003C\u002Ftemplate>\n  \u003C\u002FUModal>\n\u003C\u002Ftemplate>\n","components\u002FConfirmDialog.vue",[979,2494,2495,2515,2525,2535,2544,2548,2552,2566,2570,2585,2604,2611,2619,2623,2631,2638,2653,2667,2680,2694,2699,2714,2769,2809,2818,2828],{"__ignoreMap":994},[998,2496,2497,2499,2501,2503,2505,2507,2509,2511,2513],{"class":1000,"line":1001},[998,2498,1005],{"class":1004},[998,2500,1009],{"class":1008},[998,2502,1016],{"class":1012},[998,2504,1019],{"class":1004},[998,2506,1022],{"class":1004},[998,2508,1026],{"class":1025},[998,2510,1022],{"class":1004},[998,2512,1013],{"class":1012},[998,2514,1031],{"class":1004},[998,2516,2517,2520,2523],{"class":1000,"line":1034},[998,2518,2519],{"class":1012},"interface",[998,2521,2522],{"class":1209}," ConfirmDialogProps",[998,2524,1134],{"class":1004},[998,2526,2527,2530,2532],{"class":1000,"line":1063},[998,2528,2529],{"class":1008},"  title",[998,2531,1339],{"class":1004},[998,2533,2534],{"class":1209}," string\n",[998,2536,2537,2540,2542],{"class":1000,"line":1069},[998,2538,2539],{"class":1008},"  description",[998,2541,1339],{"class":1004},[998,2543,2534],{"class":1209},[998,2545,2546],{"class":1000,"line":1087},[998,2547,1153],{"class":1004},[998,2549,2550],{"class":1000,"line":1092},[998,2551,1066],{"emptyLinePlaceholder":21},[998,2553,2554,2557,2559,2562,2564],{"class":1000,"line":1114},[998,2555,2556],{"class":1080},"defineProps",[998,2558,1005],{"class":1004},[998,2560,2561],{"class":1209},"ConfirmDialogProps",[998,2563,1359],{"class":1004},[998,2565,1084],{"class":1044},[998,2567,2568],{"class":1000,"line":1119},[998,2569,1066],{"emptyLinePlaceholder":21},[998,2571,2572,2574,2577,2579,2582],{"class":1000,"line":1137},[998,2573,1072],{"class":1012},[998,2575,2576],{"class":1044}," emits ",[998,2578,1019],{"class":1004},[998,2580,2581],{"class":1080}," defineEmits",[998,2583,2584],{"class":1004},"\u003C{\n",[998,2586,2587,2590,2592,2595,2597,2599,2601],{"class":1000,"line":1150},[998,2588,2589],{"class":1008},"  close",[998,2591,1236],{"class":1004},[998,2593,2594],{"class":1044}," [",[998,2596,1429],{"class":1209},[998,2598,1236],{"class":1004},[998,2600,1572],{"class":1209},[998,2602,2603],{"class":1044},"]\n",[998,2605,2606,2609],{"class":1000,"line":1156},[998,2607,2608],{"class":1004},"}>",[998,2610,1084],{"class":1044},[998,2612,2613,2615,2617],{"class":1000,"line":1792},[998,2614,1159],{"class":1004},[998,2616,1009],{"class":1008},[998,2618,1031],{"class":1004},[998,2620,2621],{"class":1000,"line":1797},[998,2622,1066],{"emptyLinePlaceholder":21},[998,2624,2625,2627,2629],{"class":1000,"line":2027},[998,2626,1005],{"class":1004},[998,2628,2417],{"class":1008},[998,2630,1031],{"class":1004},[998,2632,2633,2635],{"class":1000,"line":2039},[998,2634,2425],{"class":1004},[998,2636,2637],{"class":1008},"UModal\n",[998,2639,2640,2643,2645,2647,2650],{"class":1000,"line":2068},[998,2641,2642],{"class":1012},"    :title",[998,2644,1019],{"class":1004},[998,2646,1022],{"class":1004},[998,2648,2649],{"class":1025},"title",[998,2651,2652],{"class":1004},"\"\n",[998,2654,2655,2658,2660,2662,2665],{"class":1000,"line":2073},[998,2656,2657],{"class":1012},"    :description",[998,2659,1019],{"class":1004},[998,2661,1022],{"class":1004},[998,2663,2664],{"class":1025},"description",[998,2666,2652],{"class":1004},[998,2668,2669,2672,2674,2676,2678],{"class":1000,"line":2338},[998,2670,2671],{"class":1012},"    :dismissible",[998,2673,1019],{"class":1004},[998,2675,1022],{"class":1004},[998,2677,1297],{"class":1025},[998,2679,2652],{"class":1004},[998,2681,2682,2685,2687,2689,2692],{"class":1000,"line":2362},[998,2683,2684],{"class":1012},"    :ui",[998,2686,1019],{"class":1004},[998,2688,1022],{"class":1004},[998,2690,2691],{"class":1025},"{ footer: 'justify-end' }",[998,2693,2652],{"class":1004},[998,2695,2696],{"class":1000,"line":2367},[998,2697,2698],{"class":1004},"  >\n",[998,2700,2701,2704,2706,2709,2712],{"class":1000,"line":2373},[998,2702,2703],{"class":1004},"    \u003C",[998,2705,2417],{"class":1008},[998,2707,2708],{"class":1004}," #",[998,2710,2711],{"class":1012},"footer",[998,2713,1031],{"class":1004},[998,2715,2716,2719,2721,2723,2725,2727,2730,2732,2735,2737,2739,2742,2744,2747,2749,2751,2754,2756,2758,2760,2762,2765,2767],{"class":1000,"line":2393},[998,2717,2718],{"class":1004},"      \u003C",[998,2720,2428],{"class":1008},[998,2722,2431],{"class":1012},[998,2724,1019],{"class":1004},[998,2726,1022],{"class":1004},[998,2728,2729],{"class":1025},"Cancel",[998,2731,1022],{"class":1004},[998,2733,2734],{"class":1012}," color",[998,2736,1019],{"class":1004},[998,2738,1022],{"class":1004},[998,2740,2741],{"class":1025},"neutral",[998,2743,1022],{"class":1004},[998,2745,2746],{"class":1012}," variant",[998,2748,1019],{"class":1004},[998,2750,1022],{"class":1004},[998,2752,2753],{"class":1025},"outline",[998,2755,1022],{"class":1004},[998,2757,2443],{"class":1012},[998,2759,1019],{"class":1004},[998,2761,1022],{"class":1004},[998,2763,2764],{"class":1025},"emits('close', false)",[998,2766,1022],{"class":1004},[998,2768,2455],{"class":1004},[998,2770,2771,2773,2775,2777,2779,2781,2784,2786,2788,2790,2792,2794,2796,2798,2800,2802,2805,2807],{"class":1000,"line":2398},[998,2772,2718],{"class":1004},[998,2774,2428],{"class":1008},[998,2776,2431],{"class":1012},[998,2778,1019],{"class":1004},[998,2780,1022],{"class":1004},[998,2782,2783],{"class":1025},"Confirm",[998,2785,1022],{"class":1004},[998,2787,2734],{"class":1012},[998,2789,1019],{"class":1004},[998,2791,1022],{"class":1004},[998,2793,2741],{"class":1025},[998,2795,1022],{"class":1004},[998,2797,2443],{"class":1012},[998,2799,1019],{"class":1004},[998,2801,1022],{"class":1004},[998,2803,2804],{"class":1025},"emits('close', true)",[998,2806,1022],{"class":1004},[998,2808,2455],{"class":1004},[998,2810,2811,2814,2816],{"class":1000,"line":2407},[998,2812,2813],{"class":1004},"    \u003C\u002F",[998,2815,2417],{"class":1008},[998,2817,1031],{"class":1004},[998,2819,2820,2823,2826],{"class":1000,"line":2412},[998,2821,2822],{"class":1004},"  \u003C\u002F",[998,2824,2825],{"class":1008},"UModal",[998,2827,1031],{"class":1004},[998,2829,2830,2832,2834],{"class":1000,"line":2422},[998,2831,1159],{"class":1004},[998,2833,2417],{"class":1008},[998,2835,1031],{"class":1004},[2480,2837,2838],{"start":1034},[1168,2839,2484,2840,2842],{},[979,2841,2474],{}," composable that returns a Promise:",[990,2844,2848],{"className":2845,"code":2846,"filename":2847,"language":1026,"meta":994,"style":994},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { ConfirmDialog } from '#components'\n\nexport interface ConfirmDialogOptions {\n  title: string\n  description?: string\n}\n\nexport const useConfirmDialog = () => {\n  const overlay = useOverlay()\n\n  return (options: ConfirmDialogOptions): Promise\u003Cboolean> => {\n    const modal = overlay.create(ConfirmDialog, {\n      destroyOnClose: true,\n      props: options\n    })\n\n    return modal.open()\n  }\n}\n","composables\u002FuseConfirmDialog.ts",[979,2849,2850,2869,2873,2886,2894,2902,2906,2910,2928,2940,2944,2973,2997,3011,3021,3028,3032,3045,3050],{"__ignoreMap":994},[998,2851,2852,2854,2856,2859,2861,2863,2865,2867],{"class":1000,"line":1001},[998,2853,1038],{"class":1037},[998,2855,1041],{"class":1004},[998,2857,2858],{"class":1044}," ConfirmDialog",[998,2860,1048],{"class":1004},[998,2862,1051],{"class":1037},[998,2864,1054],{"class":1004},[998,2866,1057],{"class":1025},[998,2868,1060],{"class":1004},[998,2870,2871],{"class":1000,"line":1034},[998,2872,1066],{"emptyLinePlaceholder":21},[998,2874,2875,2878,2881,2884],{"class":1000,"line":1063},[998,2876,2877],{"class":1037},"export",[998,2879,2880],{"class":1012}," interface",[998,2882,2883],{"class":1209}," ConfirmDialogOptions",[998,2885,1134],{"class":1004},[998,2887,2888,2890,2892],{"class":1000,"line":1069},[998,2889,2529],{"class":1008},[998,2891,1236],{"class":1004},[998,2893,2534],{"class":1209},[998,2895,2896,2898,2900],{"class":1000,"line":1087},[998,2897,2539],{"class":1008},[998,2899,1339],{"class":1004},[998,2901,2534],{"class":1209},[998,2903,2904],{"class":1000,"line":1092},[998,2905,1153],{"class":1004},[998,2907,2908],{"class":1000,"line":1114},[998,2909,1066],{"emptyLinePlaceholder":21},[998,2911,2912,2914,2917,2920,2922,2924,2926],{"class":1000,"line":1119},[998,2913,2877],{"class":1037},[998,2915,2916],{"class":1012}," const",[998,2918,2919],{"class":1044}," useConfirmDialog ",[998,2921,1019],{"class":1004},[998,2923,2266],{"class":1004},[998,2925,2269],{"class":1012},[998,2927,1134],{"class":1004},[998,2929,2930,2932,2934,2936,2938],{"class":1000,"line":1137},[998,2931,2341],{"class":1012},[998,2933,1102],{"class":1044},[998,2935,2347],{"class":1004},[998,2937,1081],{"class":1080},[998,2939,1084],{"class":1008},[998,2941,2942],{"class":1000,"line":1150},[998,2943,1066],{"emptyLinePlaceholder":21},[998,2945,2946,2949,2952,2954,2956,2958,2960,2963,2965,2967,2969,2971],{"class":1000,"line":1156},[998,2947,2948],{"class":1037},"  return",[998,2950,2951],{"class":1004}," (",[998,2953,1278],{"class":1232},[998,2955,1236],{"class":1004},[998,2957,2883],{"class":1209},[998,2959,1253],{"class":1004},[998,2961,2962],{"class":1209}," Promise",[998,2964,1005],{"class":1004},[998,2966,1291],{"class":1209},[998,2968,1359],{"class":1004},[998,2970,2269],{"class":1012},[998,2972,1134],{"class":1004},[998,2974,2975,2978,2981,2983,2985,2987,2989,2991,2993,2995],{"class":1000,"line":1792},[998,2976,2977],{"class":1012},"    const",[998,2979,2980],{"class":1044}," modal",[998,2982,2347],{"class":1004},[998,2984,1102],{"class":1044},[998,2986,1105],{"class":1004},[998,2988,1108],{"class":1080},[998,2990,1229],{"class":1008},[998,2992,2487],{"class":1044},[998,2994,1242],{"class":1004},[998,2996,1134],{"class":1004},[998,2998,2999,3002,3004,3008],{"class":1000,"line":1797},[998,3000,3001],{"class":1008},"      destroyOnClose",[998,3003,1236],{"class":1004},[998,3005,3007],{"class":3006},"sfNiH"," true",[998,3009,3010],{"class":1004},",\n",[998,3012,3013,3016,3018],{"class":1000,"line":2027},[998,3014,3015],{"class":1008},"      props",[998,3017,1236],{"class":1004},[998,3019,3020],{"class":1044}," options\n",[998,3022,3023,3026],{"class":1000,"line":2039},[998,3024,3025],{"class":1004},"    }",[998,3027,1789],{"class":1008},[998,3029,3030],{"class":1000,"line":2068},[998,3031,1066],{"emptyLinePlaceholder":21},[998,3033,3034,3037,3039,3041,3043],{"class":1000,"line":2073},[998,3035,3036],{"class":1037},"    return",[998,3038,2980],{"class":1044},[998,3040,1105],{"class":1004},[998,3042,1145],{"class":1080},[998,3044,1084],{"class":1008},[998,3046,3047],{"class":1000,"line":2338},[998,3048,3049],{"class":1004},"  }\n",[998,3051,3052],{"class":1000,"line":2362},[998,3053,1153],{"class":1004},[2480,3055,3056],{"start":1063},[1168,3057,3058],{},"Use the composable in your components:",[990,3060,3062],{"className":992,"code":3061,"language":34,"meta":994,"style":994},"\u003Cscript setup lang=\"ts\">\nconst confirm = useConfirmDialog()\n\nconst handleDelete = async () => {\n  const confirmed = await confirm({\n    title: 'Delete item',\n    description: 'Are you sure you want to delete this item?'\n  })\n\n  if (confirmed) {\n    console.log('Item deleted')\n  }\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CUButton label=\"Delete item\" @click=\"handleDelete\" \u002F>\n\u003C\u002Ftemplate>\n",[979,3063,3064,3084,3098,3102,3119,3137,3152,3166,3172,3176,3191,3212,3216,3220,3228,3232,3240,3269],{"__ignoreMap":994},[998,3065,3066,3068,3070,3072,3074,3076,3078,3080,3082],{"class":1000,"line":1001},[998,3067,1005],{"class":1004},[998,3069,1009],{"class":1008},[998,3071,1013],{"class":1012},[998,3073,1016],{"class":1012},[998,3075,1019],{"class":1004},[998,3077,1022],{"class":1004},[998,3079,1026],{"class":1025},[998,3081,1022],{"class":1004},[998,3083,1031],{"class":1004},[998,3085,3086,3088,3091,3093,3096],{"class":1000,"line":1034},[998,3087,1072],{"class":1012},[998,3089,3090],{"class":1044}," confirm ",[998,3092,1019],{"class":1004},[998,3094,3095],{"class":1080}," useConfirmDialog",[998,3097,1084],{"class":1044},[998,3099,3100],{"class":1000,"line":1063},[998,3101,1066],{"emptyLinePlaceholder":21},[998,3103,3104,3106,3109,3111,3113,3115,3117],{"class":1000,"line":1069},[998,3105,1072],{"class":1012},[998,3107,3108],{"class":1044}," handleDelete ",[998,3110,1019],{"class":1004},[998,3112,2324],{"class":1012},[998,3114,2266],{"class":1004},[998,3116,2269],{"class":1012},[998,3118,1134],{"class":1004},[998,3120,3121,3123,3126,3128,3130,3133,3135],{"class":1000,"line":1087},[998,3122,2341],{"class":1012},[998,3124,3125],{"class":1044}," confirmed",[998,3127,2347],{"class":1004},[998,3129,2350],{"class":1037},[998,3131,3132],{"class":1080}," confirm",[998,3134,1229],{"class":1008},[998,3136,1767],{"class":1004},[998,3138,3139,3141,3143,3145,3148,3150],{"class":1000,"line":1092},[998,3140,1772],{"class":1008},[998,3142,1236],{"class":1004},[998,3144,1054],{"class":1004},[998,3146,3147],{"class":1025},"Delete item",[998,3149,1982],{"class":1004},[998,3151,3010],{"class":1004},[998,3153,3154,3157,3159,3161,3164],{"class":1000,"line":1114},[998,3155,3156],{"class":1008},"    description",[998,3158,1236],{"class":1004},[998,3160,1054],{"class":1004},[998,3162,3163],{"class":1025},"Are you sure you want to delete this item?",[998,3165,1060],{"class":1004},[998,3167,3168,3170],{"class":1000,"line":1119},[998,3169,1786],{"class":1004},[998,3171,1789],{"class":1008},[998,3173,3174],{"class":1000,"line":1137},[998,3175,1066],{"emptyLinePlaceholder":21},[998,3177,3178,3181,3183,3186,3189],{"class":1000,"line":1150},[998,3179,3180],{"class":1037},"  if",[998,3182,2951],{"class":1008},[998,3184,3185],{"class":1044},"confirmed",[998,3187,3188],{"class":1008},") ",[998,3190,1767],{"class":1004},[998,3192,3193,3196,3198,3201,3203,3205,3208,3210],{"class":1000,"line":1156},[998,3194,3195],{"class":1044},"    console",[998,3197,1105],{"class":1004},[998,3199,3200],{"class":1080},"log",[998,3202,1229],{"class":1008},[998,3204,1982],{"class":1004},[998,3206,3207],{"class":1025},"Item deleted",[998,3209,1982],{"class":1004},[998,3211,1789],{"class":1008},[998,3213,3214],{"class":1000,"line":1792},[998,3215,3049],{"class":1004},[998,3217,3218],{"class":1000,"line":1797},[998,3219,1153],{"class":1004},[998,3221,3222,3224,3226],{"class":1000,"line":2027},[998,3223,1159],{"class":1004},[998,3225,1009],{"class":1008},[998,3227,1031],{"class":1004},[998,3229,3230],{"class":1000,"line":2039},[998,3231,1066],{"emptyLinePlaceholder":21},[998,3233,3234,3236,3238],{"class":1000,"line":2068},[998,3235,1005],{"class":1004},[998,3237,2417],{"class":1008},[998,3239,1031],{"class":1004},[998,3241,3242,3244,3246,3248,3250,3252,3254,3256,3258,3260,3262,3265,3267],{"class":1000,"line":2073},[998,3243,2425],{"class":1004},[998,3245,2428],{"class":1008},[998,3247,2431],{"class":1012},[998,3249,1019],{"class":1004},[998,3251,1022],{"class":1004},[998,3253,3147],{"class":1025},[998,3255,1022],{"class":1004},[998,3257,2443],{"class":1012},[998,3259,1019],{"class":1004},[998,3261,1022],{"class":1004},[998,3263,3264],{"class":1025},"handleDelete",[998,3266,1022],{"class":1004},[998,3268,2455],{"class":1004},[998,3270,3271,3273,3275],{"class":1000,"line":2338},[998,3272,1159],{"class":1004},[998,3274,2417],{"class":1008},[998,3276,1031],{"class":1004},[970,3278,3280],{"id":3279},"caveats","Caveats",[1218,3282,3284],{"id":3283},"provide-inject","Provide \u002F Inject",[975,3286,3287,3288,3291,3292,3295,3296,3298],{},"When opening overlays programmatically (e.g. modals, slideovers, etc), the overlay component can only access injected values from the component containing ",[979,3289,3290],{},"UApp"," (typically ",[979,3293,3294],{},"app.vue"," or layout components). This is because overlays are mounted outside of the page context by the ",[979,3297,3290],{}," component.",[975,3300,3301,3302,3305],{},"As such, using ",[979,3303,3304],{},"provide()"," in pages or parent components isn't supported directly. To pass provided values to overlays, the recommended approach is to use props instead:",[990,3307,3309],{"className":992,"code":3308,"language":34,"meta":994,"style":994},"\u003Cscript setup lang=\"ts\">\nimport { LazyModalExample } from '#components'\n\nconst overlay = useOverlay()\n\nconst providedValue = inject('valueProvidedInPage')\n\nconst modal = overlay.create(LazyModalExample, {\n  props: {\n    providedValue\n  }\n})\n\u003C\u002Fscript>\n",[979,3310,3311,3331,3349,3353,3365,3369,3392,3396,3416,3424,3429,3433,3439],{"__ignoreMap":994},[998,3312,3313,3315,3317,3319,3321,3323,3325,3327,3329],{"class":1000,"line":1001},[998,3314,1005],{"class":1004},[998,3316,1009],{"class":1008},[998,3318,1013],{"class":1012},[998,3320,1016],{"class":1012},[998,3322,1019],{"class":1004},[998,3324,1022],{"class":1004},[998,3326,1026],{"class":1025},[998,3328,1022],{"class":1004},[998,3330,1031],{"class":1004},[998,3332,3333,3335,3337,3339,3341,3343,3345,3347],{"class":1000,"line":1034},[998,3334,1038],{"class":1037},[998,3336,1041],{"class":1004},[998,3338,1045],{"class":1044},[998,3340,1048],{"class":1004},[998,3342,1051],{"class":1037},[998,3344,1054],{"class":1004},[998,3346,1057],{"class":1025},[998,3348,1060],{"class":1004},[998,3350,3351],{"class":1000,"line":1063},[998,3352,1066],{"emptyLinePlaceholder":21},[998,3354,3355,3357,3359,3361,3363],{"class":1000,"line":1069},[998,3356,1072],{"class":1012},[998,3358,1075],{"class":1044},[998,3360,1019],{"class":1004},[998,3362,1081],{"class":1080},[998,3364,1084],{"class":1044},[998,3366,3367],{"class":1000,"line":1087},[998,3368,1066],{"emptyLinePlaceholder":21},[998,3370,3371,3373,3376,3378,3381,3383,3385,3388,3390],{"class":1000,"line":1092},[998,3372,1072],{"class":1012},[998,3374,3375],{"class":1044}," providedValue ",[998,3377,1019],{"class":1004},[998,3379,3380],{"class":1080}," inject",[998,3382,1229],{"class":1044},[998,3384,1982],{"class":1004},[998,3386,3387],{"class":1025},"valueProvidedInPage",[998,3389,1982],{"class":1004},[998,3391,1789],{"class":1044},[998,3393,3394],{"class":1000,"line":1114},[998,3395,1066],{"emptyLinePlaceholder":21},[998,3397,3398,3400,3402,3404,3406,3408,3410,3412,3414],{"class":1000,"line":1119},[998,3399,1072],{"class":1012},[998,3401,1097],{"class":1044},[998,3403,1019],{"class":1004},[998,3405,1102],{"class":1044},[998,3407,1105],{"class":1004},[998,3409,1108],{"class":1080},[998,3411,1957],{"class":1044},[998,3413,1242],{"class":1004},[998,3415,1134],{"class":1004},[998,3417,3418,3420,3422],{"class":1000,"line":1137},[998,3419,1966],{"class":1008},[998,3421,1236],{"class":1004},[998,3423,1134],{"class":1004},[998,3425,3426],{"class":1000,"line":1150},[998,3427,3428],{"class":1044},"    providedValue\n",[998,3430,3431],{"class":1000,"line":1156},[998,3432,3049],{"class":1004},[998,3434,3435,3437],{"class":1000,"line":1792},[998,3436,1990],{"class":1004},[998,3438,1789],{"class":1044},[998,3440,3441,3443,3445],{"class":1000,"line":1797},[998,3442,1159],{"class":1004},[998,3444,1009],{"class":1008},[998,3446,1031],{"class":1004},[3448,3449,3450],"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 .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 .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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}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 .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":994,"searchDepth":1034,"depth":1034,"links":3452},[3453,3454,3464,3469,3473],{"id":972,"depth":1034,"text":973},{"id":1199,"depth":1034,"text":1200,"children":3455},[3456,3457,3458,3459,3460,3461,3462,3463],{"id":1108,"depth":1063,"text":1220},{"id":1145,"depth":1063,"text":1315},{"id":1194,"depth":1063,"text":1383},{"id":1436,"depth":1063,"text":1437},{"id":1455,"depth":1063,"text":1456},{"id":1515,"depth":1063,"text":1516},{"id":1551,"depth":1063,"text":1552},{"id":1589,"depth":1063,"text":1589},{"id":1609,"depth":1034,"text":1610,"children":3465},[3466,3467,3468],{"id":1613,"depth":1063,"text":1315},{"id":1806,"depth":1063,"text":1383},{"id":1839,"depth":1063,"text":1456},{"id":2082,"depth":1034,"text":2083,"children":3470},[3471,3472],{"id":2086,"depth":1063,"text":2087},{"id":2467,"depth":1063,"text":2468},{"id":3279,"depth":1034,"text":3280,"children":3474},[3475],{"id":3283,"depth":1063,"text":3284},"md",{},{"title":843,"description":846},"2j4b-5YsJxA_8P56p_HMMV8DWyRIZaXgbFTVLOzIOP8",{"data":3481,"body":3482},{},{"type":3483,"children":3484},"root",[3485],{"type":178,"tag":975,"props":3486,"children":3487},{},[3488],{"type":3489,"value":846},"text",1776682617498]