[{"data":1,"prerenderedAt":3485},["ShallowReactive",2],{"navigation":3,"-docs-composables-use-overlay":959,"-docs-composables-use-overlay-description":3475},[4],{"title":5,"path":6,"stem":7,"children":8,"page":36},"Docs","\u002Fdocs","docs",[9,163,817,858],{"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,792,797,802,807,812],{"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.","Soon",{"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,"badge":791},"\u002Fdocs\u002Fcomponents\u002Ftheme","docs\u002F2.components\u002Ftheme","A headless component to theme child components.","New",{"title":793,"path":794,"stem":795,"framework":16,"category":172,"description":796},"Timeline","\u002Fdocs\u002Fcomponents\u002Ftimeline","docs\u002F2.components\u002Ftimeline","A component that displays a sequence of events with dates, titles, icons or avatars.",{"title":798,"path":799,"stem":800,"framework":16,"category":397,"description":801},"Toast","\u002Fdocs\u002Fcomponents\u002Ftoast","docs\u002F2.components\u002Ftoast","A succinct message to provide information or feedback to the user.",{"title":803,"path":804,"stem":805,"framework":16,"category":397,"description":806},"Tooltip","\u002Fdocs\u002Fcomponents\u002Ftooltip","docs\u002F2.components\u002Ftooltip","A popup that reveals information when hovering over an element.",{"title":808,"path":809,"stem":810,"framework":16,"category":172,"description":811},"Tree","\u002Fdocs\u002Fcomponents\u002Ftree","docs\u002F2.components\u002Ftree","A tree view component to display and interact with hierarchical data structures.",{"title":813,"path":814,"stem":815,"framework":16,"category":172,"description":816},"User","\u002Fdocs\u002Fcomponents\u002Fuser","docs\u002F2.components\u002Fuser","Display user information with name, description and avatar.",{"title":818,"framework":16,"category":16,"description":16,"icon":819,"path":820,"stem":821,"children":822,"page":36},"Composables","i-lucide-square-function","\u002Fdocs\u002Fcomposables","docs\u002F3.composables",[823,828,833,838,843,848,853],{"title":824,"path":825,"stem":826,"framework":16,"category":16,"description":827},"defineLocale","\u002Fdocs\u002Fcomposables\u002Fdefine-locale","docs\u002F3.composables\u002Fdefine-locale","A utility to create a custom locale for your app.",{"title":829,"path":830,"stem":831,"framework":16,"category":16,"description":832},"defineShortcuts","\u002Fdocs\u002Fcomposables\u002Fdefine-shortcuts","docs\u002F3.composables\u002Fdefine-shortcuts","A composable to define keyboard shortcuts in your app.",{"title":834,"path":835,"stem":836,"framework":16,"category":16,"description":837},"extendLocale","\u002Fdocs\u002Fcomposables\u002Fextend-locale","docs\u002F3.composables\u002Fextend-locale","A utility to extend an existing locale with custom translations.",{"title":839,"path":840,"stem":841,"framework":16,"category":16,"description":842},"extractShortcuts","\u002Fdocs\u002Fcomposables\u002Fextract-shortcuts","docs\u002F3.composables\u002Fextract-shortcuts","A utility to extract keyboard shortcuts from menu items.",{"title":844,"path":845,"stem":846,"framework":16,"category":16,"description":847},"useOverlay","\u002Fdocs\u002Fcomposables\u002Fuse-overlay","docs\u002F3.composables\u002Fuse-overlay","A composable to programmatically control overlays.",{"title":849,"path":850,"stem":851,"framework":16,"category":16,"description":852,"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":854,"path":855,"stem":856,"framework":16,"category":16,"description":857},"useToast","\u002Fdocs\u002Fcomposables\u002Fuse-toast","docs\u002F3.composables\u002Fuse-toast","A composable to display toast notifications in your app.",{"title":859,"path":860,"stem":861,"children":862,"framework":28,"category":16,"description":16,"icon":958},"Typography","\u002Fdocs\u002Ftypography","docs\u002F4.typography\u002F1.index",[863,865,870,875,880,885,890,894,899,903,908,913,918,923,928,932,937,941,945,949,954],{"title":15,"path":860,"stem":861,"framework":28,"category":16,"description":864},"Beautiful typography components and utilities to style your content with Nuxt UI.",{"title":866,"path":867,"stem":868,"framework":28,"category":16,"description":869},"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":871,"path":872,"stem":873,"framework":28,"category":16,"description":874},"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":876,"path":877,"stem":878,"framework":28,"category":16,"description":879},"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":881,"path":882,"stem":883,"framework":28,"category":16,"description":884},"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":886,"stem":887,"framework":28,"category":888,"description":889},"\u002Fdocs\u002Ftypography\u002Faccordion","docs\u002F4.typography\u002Faccordion","components","Create expandable content sections for better information organization.",{"title":203,"path":891,"stem":892,"framework":28,"category":888,"description":893},"\u002Fdocs\u002Ftypography\u002Fbadge","docs\u002F4.typography\u002Fbadge","Display version numbers, status labels, and tags within your content.",{"title":895,"path":896,"stem":897,"framework":28,"category":888,"description":898},"Callout","\u002Fdocs\u002Ftypography\u002Fcallout","docs\u002F4.typography\u002Fcallout","Highlight important information with eye-catching colored boxes and icons.",{"title":239,"path":900,"stem":901,"framework":28,"category":888,"description":902},"\u002Fdocs\u002Ftypography\u002Fcard","docs\u002F4.typography\u002Fcard","Create highlighted content blocks with optional links and navigation.",{"title":904,"path":905,"stem":906,"framework":28,"category":888,"description":907},"CardGroup","\u002Fdocs\u002Ftypography\u002Fcard-group","docs\u002F4.typography\u002Fcard-group","Organize multiple cards in responsive grid layouts for better content presentation.",{"title":909,"path":910,"stem":911,"framework":28,"category":888,"description":912},"CodeCollapse","\u002Fdocs\u002Ftypography\u002Fcode-collapse","docs\u002F4.typography\u002Fcode-collapse","Make long code blocks collapsible to save space and improve readability.",{"title":914,"path":915,"stem":916,"framework":28,"category":888,"description":917},"CodeGroup","\u002Fdocs\u002Ftypography\u002Fcode-group","docs\u002F4.typography\u002Fcode-group","Group multiple code examples in tabbed interfaces for easy comparison.",{"title":919,"path":920,"stem":921,"framework":28,"category":888,"description":922},"CodePreview","\u002Fdocs\u002Ftypography\u002Fcode-preview","docs\u002F4.typography\u002Fcode-preview","Display code examples with a preview and their source for clearer documentation.",{"title":924,"path":925,"stem":926,"framework":28,"category":888,"description":927},"CodeTree","\u002Fdocs\u002Ftypography\u002Fcode-tree","docs\u002F4.typography\u002Fcode-tree","Visualize file and folder structures with syntax-highlighted code.",{"title":322,"path":929,"stem":930,"framework":28,"category":888,"description":931},"\u002Fdocs\u002Ftypography\u002Fcollapsible","docs\u002F4.typography\u002Fcollapsible","Toggle content visibility with smooth expand and collapse animations.",{"title":933,"path":934,"stem":935,"framework":28,"category":888,"description":936},"Field","\u002Fdocs\u002Ftypography\u002Ffield","docs\u002F4.typography\u002Ffield","Document API parameters, props, and configuration options clearly.",{"title":502,"path":938,"stem":939,"framework":28,"category":888,"description":940},"\u002Fdocs\u002Ftypography\u002Ffield-group","docs\u002F4.typography\u002Ffield-group","Group related fields together for comprehensive API documentation.",{"title":537,"path":942,"stem":943,"framework":28,"category":888,"description":944},"\u002Fdocs\u002Ftypography\u002Ficon","docs\u002F4.typography\u002Ficon","Display icons from popular icon libraries to enhance your content.",{"title":572,"path":946,"stem":947,"framework":28,"category":888,"description":948},"\u002Fdocs\u002Ftypography\u002Fkbd","docs\u002F4.typography\u002Fkbd","Display keyboard shortcuts and key combinations with proper styling.",{"title":950,"path":951,"stem":952,"framework":28,"category":888,"description":953},"Steps","\u002Fdocs\u002Ftypography\u002Fsteps","docs\u002F4.typography\u002Fsteps","Transform headings into numbered step-by-step guides and tutorials.",{"title":778,"path":955,"stem":956,"framework":28,"category":888,"description":957},"\u002Fdocs\u002Ftypography\u002Ftabs","docs\u002F4.typography\u002Ftabs","Organize related content in interactive tabbed interfaces.","i-lucide-square-pilcrow",{"id":960,"title":844,"body":961,"category":16,"description":847,"extension":3471,"framework":16,"index":36,"links":16,"meta":3472,"navigation":16,"path":845,"seo":3473,"stem":846,"__hash__":3474},"docs\u002Fdocs\u002F3.composables\u002Fuse-overlay.md",{"type":962,"value":963,"toc":3446},"minimark",[964,969,984,1159,1173,1192,1196,1207,1212,1216,1252,1255,1260,1308,1311,1355,1360,1363,1376,1379,1408,1413,1416,1429,1433,1445,1448,1452,1488,1493,1496,1508,1512,1530,1535,1538,1544,1548,1568,1573,1576,1582,1585,1599,1602,1606,1609,1637,1647,1650,1656,1799,1802,1820,1823,1826,1832,1835,1861,1864,1867,1873,2075,2079,2083,2086,2460,2464,2474,2484,2831,2838,3049,3054,3272,3276,3280,3294,3301,3442],[965,966,968],"h2",{"id":967},"usage","Usage",[970,971,972,973,976,977,980,981,983],"p",{},"Use the auto-imported ",[974,975,844],"code",{}," composable to programmatically control ",[978,979,598],"a",{"href":599}," and ",[978,982,753],{"href":754}," components.",[985,986,990],"pre",{"className":987,"code":988,"language":34,"meta":989,"style":989},"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","",[974,991,992,1027,1056,1062,1080,1085,1107,1112,1130,1143,1149],{"__ignoreMap":989},[993,994,997,1001,1005,1009,1012,1015,1018,1022,1024],"span",{"class":995,"line":996},"line",1,[993,998,1000],{"class":999},"sMK4o","\u003C",[993,1002,1004],{"class":1003},"swJcz","script",[993,1006,1008],{"class":1007},"spNyl"," setup",[993,1010,1011],{"class":1007}," lang",[993,1013,1014],{"class":999},"=",[993,1016,1017],{"class":999},"\"",[993,1019,1021],{"class":1020},"sfazB","ts",[993,1023,1017],{"class":999},[993,1025,1026],{"class":999},">\n",[993,1028,1030,1034,1037,1041,1044,1047,1050,1053],{"class":995,"line":1029},2,[993,1031,1033],{"class":1032},"s7zQu","import",[993,1035,1036],{"class":999}," {",[993,1038,1040],{"class":1039},"sTEyZ"," LazyModalExample",[993,1042,1043],{"class":999}," }",[993,1045,1046],{"class":1032}," from",[993,1048,1049],{"class":999}," '",[993,1051,1052],{"class":1020},"#components",[993,1054,1055],{"class":999},"'\n",[993,1057,1059],{"class":995,"line":1058},3,[993,1060,1061],{"emptyLinePlaceholder":21},"\n",[993,1063,1065,1068,1071,1073,1077],{"class":995,"line":1064},4,[993,1066,1067],{"class":1007},"const",[993,1069,1070],{"class":1039}," overlay ",[993,1072,1014],{"class":999},[993,1074,1076],{"class":1075},"s2Zo4"," useOverlay",[993,1078,1079],{"class":1039},"()\n",[993,1081,1083],{"class":995,"line":1082},5,[993,1084,1061],{"emptyLinePlaceholder":21},[993,1086,1088,1090,1093,1095,1098,1101,1104],{"class":995,"line":1087},6,[993,1089,1067],{"class":1007},[993,1091,1092],{"class":1039}," modal ",[993,1094,1014],{"class":999},[993,1096,1097],{"class":1039}," overlay",[993,1099,1100],{"class":999},".",[993,1102,1103],{"class":1075},"create",[993,1105,1106],{"class":1039},"(LazyModalExample)\n",[993,1108,1110],{"class":995,"line":1109},7,[993,1111,1061],{"emptyLinePlaceholder":21},[993,1113,1115,1118,1121,1124,1127],{"class":995,"line":1114},8,[993,1116,1117],{"class":1007},"async",[993,1119,1120],{"class":1007}," function",[993,1122,1123],{"class":1075}," openModal",[993,1125,1126],{"class":999},"()",[993,1128,1129],{"class":999}," {\n",[993,1131,1133,1136,1138,1141],{"class":995,"line":1132},9,[993,1134,1135],{"class":1039},"  modal",[993,1137,1100],{"class":999},[993,1139,1140],{"class":1075},"open",[993,1142,1079],{"class":1003},[993,1144,1146],{"class":995,"line":1145},10,[993,1147,1148],{"class":999},"}\n",[993,1150,1152,1155,1157],{"class":995,"line":1151},11,[993,1153,1154],{"class":999},"\u003C\u002F",[993,1156,1004],{"class":1003},[993,1158,1026],{"class":999},[1160,1161,1162],"ul",{},[1163,1164,1165,1166,1168,1169,1172],"li",{},"The ",[974,1167,844],{}," composable is created using ",[974,1170,1171],{},"createSharedComposable",", ensuring that the same overlay state is shared across your entire application.",[1174,1175,1176],"note",{},[970,1177,1178,1179,1182,1183,1191],{},"In order to return a value from the overlay, the ",[974,1180,1181],{},"overlay.open()"," can be awaited. In order for this to work, however, the ",[1184,1185,1186,1187,1190],"strong",{},"overlay component must emit a ",[974,1188,1189],{},"close"," event",". See example below for details.",[965,1193,1195],{"id":1194},"api","API",[970,1197,1198],{},[974,1199,1202,1205],{"className":1200,"language":1201,"style":989},"language-ts-type shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","ts-type",[993,1203,844],{"class":1204},"sBMFI",[993,1206,1126],{"class":999},[970,1208,1165,1209,1211],{},[974,1210,844],{}," composable provides methods to manage overlays globally. Each created overlay returns an instance with its own methods.",[1213,1214,1215],"h3",{"id":1103},"create()",[970,1217,1218],{},[974,1219,1220,1222,1225,1229,1232,1235,1238,1241,1243,1246,1249],{"className":1200,"language":1201,"style":989},[993,1221,1103],{"class":1204},[993,1223,1224],{"class":999},"(",[993,1226,1228],{"class":1227},"sHdIc","component",[993,1230,1231],{"class":999},":",[993,1233,1234],{"class":1204}," T",[993,1236,1237],{"class":999},",",[993,1239,1240],{"class":1227}," options",[993,1242,1231],{"class":999},[993,1244,1245],{"class":1204}," OverlayOptions",[993,1247,1248],{"class":999},"):",[993,1250,1251],{"class":1204}," OverlayInstance",[970,1253,1254],{},"Create an overlay, and return a factory instance.",[1256,1257,1259],"h4",{"id":1258},"parameters","Parameters",[1261,1262,1263,1271],"field-group",{},[1264,1265,1268],"field",{"name":1228,"type":1266,":required":1267},"T","true",[970,1269,1270],{},"The overlay component to render.",[1264,1272,1275,1278],{"name":1273,"type":1274},"options","OverlayOptions",[970,1276,1277],{},"Configuration options for the overlay.",[1279,1280,1281],"collapsible",{},[1261,1282,1283,1293,1300],{},[1264,1284,1287],{"name":1285,"type":1286},"defaultOpen","boolean",[970,1288,1289,1290,1100],{},"Open the overlay immediately after being created. Defaults to ",[974,1291,1292],{},"false",[1264,1294,1297],{"name":1295,"type":1296},"props","ComponentProps",[970,1298,1299],{},"An optional object of props to pass to the rendered component.",[1264,1301,1303],{"name":1302,"type":1286},"destroyOnClose",[970,1304,1305,1306,1100],{},"Removes the overlay from memory when closed. Defaults to ",[974,1307,1292],{},[1213,1309,1310],{"id":1140},"open()",[970,1312,1313],{},[974,1314,1315,1317,1319,1322,1324,1327,1329,1332,1335,1338,1340,1342,1345,1348,1350,1352],{"className":1200,"language":1201,"style":989},[993,1316,1140],{"class":1204},[993,1318,1224],{"class":999},[993,1320,1321],{"class":1227},"id",[993,1323,1231],{"class":999},[993,1325,1326],{"class":1204}," symbol",[993,1328,1237],{"class":999},[993,1330,1331],{"class":1227}," props",[993,1333,1334],{"class":999},"?:",[993,1336,1337],{"class":1204}," ComponentProps",[993,1339,1000],{"class":999},[993,1341,1266],{"class":1204},[993,1343,1344],{"class":999},">):",[993,1346,1347],{"class":1204}," OpenedOverlay",[993,1349,1000],{"class":999},[993,1351,1266],{"class":1204},[993,1353,1354],{"class":999},">",[970,1356,1357,1358,1100],{},"Open an overlay by its ",[974,1359,1321],{},[1256,1361,1259],{"id":1362},"parameters-1",[1261,1364,1365,1371],{},[1264,1366,1368],{"name":1321,"type":1367,":required":1267},"symbol",[970,1369,1370],{},"The identifier of the overlay.",[1264,1372,1374],{"name":1295,"type":1373},"ComponentProps\u003CT>",[970,1375,1299],{},[1213,1377,1378],{"id":1189},"close()",[970,1380,1381],{},[974,1382,1383,1385,1387,1389,1391,1393,1395,1398,1400,1403,1405],{"className":1200,"language":1201,"style":989},[993,1384,1189],{"class":1204},[993,1386,1224],{"class":999},[993,1388,1321],{"class":1227},[993,1390,1231],{"class":999},[993,1392,1326],{"class":1204},[993,1394,1237],{"class":999},[993,1396,1397],{"class":1227}," value",[993,1399,1334],{"class":999},[993,1401,1402],{"class":1204}," any",[993,1404,1248],{"class":999},[993,1406,1407],{"class":1204}," void",[970,1409,1410,1411,1100],{},"Close an overlay by its ",[974,1412,1321],{},[1256,1414,1259],{"id":1415},"parameters-2",[1261,1417,1418,1422],{},[1264,1419,1420],{"name":1321,"type":1367,":required":1267},[970,1421,1370],{},[1264,1423,1426],{"name":1424,"type":1425},"value","any",[970,1427,1428],{},"A value to resolve the overlay promise with.",[1213,1430,1432],{"id":1431},"closeall","closeAll()",[970,1434,1435],{},[974,1436,1437,1440,1443],{"className":1200,"language":1201,"style":989},[993,1438,1439],{"class":1204},"closeAll",[993,1441,1442],{"class":999},"():",[993,1444,1407],{"class":1204},[970,1446,1447],{},"Close all open overlays.",[1213,1449,1451],{"id":1450},"patch","patch()",[970,1453,1454],{},[974,1455,1456,1458,1460,1462,1464,1466,1468,1470,1472,1475,1477,1479,1481,1483,1486],{"className":1200,"language":1201,"style":989},[993,1457,1450],{"class":1204},[993,1459,1224],{"class":999},[993,1461,1321],{"class":1227},[993,1463,1231],{"class":999},[993,1465,1326],{"class":1204},[993,1467,1237],{"class":999},[993,1469,1331],{"class":1227},[993,1471,1231],{"class":999},[993,1473,1474],{"class":1204}," Partial",[993,1476,1000],{"class":999},[993,1478,1296],{"class":1204},[993,1480,1000],{"class":999},[993,1482,1266],{"class":1204},[993,1484,1485],{"class":999},">>):",[993,1487,1407],{"class":1204},[970,1489,1490,1491,1100],{},"Update an overlay by its ",[974,1492,1321],{},[1256,1494,1259],{"id":1495},"parameters-3",[1261,1497,1498,1502],{},[1264,1499,1500],{"name":1321,"type":1367,":required":1267},[970,1501,1370],{},[1264,1503,1505],{"name":1295,"type":1504,":required":1267},"Partial\u003CComponentProps\u003CT>>",[970,1506,1507],{},"An object of props to update on the rendered component.",[1213,1509,1511],{"id":1510},"unmount","unmount()",[970,1513,1514],{},[974,1515,1516,1518,1520,1522,1524,1526,1528],{"className":1200,"language":1201,"style":989},[993,1517,1510],{"class":1204},[993,1519,1224],{"class":999},[993,1521,1321],{"class":1227},[993,1523,1231],{"class":999},[993,1525,1326],{"class":1204},[993,1527,1248],{"class":999},[993,1529,1407],{"class":1204},[970,1531,1532,1533,1100],{},"Remove an overlay from the DOM by its ",[974,1534,1321],{},[1256,1536,1259],{"id":1537},"parameters-4",[1261,1539,1540],{},[1264,1541,1542],{"name":1321,"type":1367,":required":1267},[970,1543,1370],{},[1213,1545,1547],{"id":1546},"isopen","isOpen()",[970,1549,1550],{},[974,1551,1552,1555,1557,1559,1561,1563,1565],{"className":1200,"language":1201,"style":989},[993,1553,1554],{"class":1204},"isOpen",[993,1556,1224],{"class":999},[993,1558,1321],{"class":1227},[993,1560,1231],{"class":999},[993,1562,1326],{"class":1204},[993,1564,1248],{"class":999},[993,1566,1567],{"class":1204}," boolean",[970,1569,1570,1571,1100],{},"Check if an overlay is open using its ",[974,1572,1321],{},[1256,1574,1259],{"id":1575},"parameters-5",[1261,1577,1578],{},[1264,1579,1580],{"name":1321,"type":1367,":required":1267},[970,1581,1370],{},[1213,1583,1584],{"id":1584},"overlays",[970,1586,1587],{},[974,1588,1589,1591,1593,1596],{"className":1200,"language":1201,"style":989},[993,1590,1584],{"class":1204},[993,1592,1231],{"class":999},[993,1594,1595],{"class":1204}," Overlay",[993,1597,1598],{"class":1039},"[]",[970,1600,1601],{},"In-memory list of all overlays that were created.",[965,1603,1605],{"id":1604},"instance-api","Instance API",[1213,1607,1310],{"id":1608},"open-1",[970,1610,1611],{},[974,1612,1613,1615,1617,1619,1621,1623,1625,1627,1629,1631,1633,1635],{"className":1200,"language":1201,"style":989},[993,1614,1140],{"class":1204},[993,1616,1224],{"class":999},[993,1618,1295],{"class":1227},[993,1620,1334],{"class":999},[993,1622,1337],{"class":1204},[993,1624,1000],{"class":999},[993,1626,1266],{"class":1204},[993,1628,1344],{"class":999},[993,1630,1347],{"class":1204},[993,1632,1000],{"class":999},[993,1634,1266],{"class":1204},[993,1636,1354],{"class":999},[970,1638,1639,1640,1643,1644,1646],{},"Open the overlay. Returns an ",[974,1641,1642],{},"OpenedOverlay"," which is a Promise that resolves with the value emitted by the ",[974,1645,1189],{}," event.",[1256,1648,1259],{"id":1649},"parameters-6",[1261,1651,1652],{},[1264,1653,1654],{"name":1295,"type":1373},[970,1655,1299],{},[985,1657,1659],{"className":987,"code":1658,"language":34,"meta":989,"style":989},"\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",[974,1660,1661,1681,1699,1703,1715,1719,1735,1739,1750,1763,1777,1785,1790],{"__ignoreMap":989},[993,1662,1663,1665,1667,1669,1671,1673,1675,1677,1679],{"class":995,"line":996},[993,1664,1000],{"class":999},[993,1666,1004],{"class":1003},[993,1668,1008],{"class":1007},[993,1670,1011],{"class":1007},[993,1672,1014],{"class":999},[993,1674,1017],{"class":999},[993,1676,1021],{"class":1020},[993,1678,1017],{"class":999},[993,1680,1026],{"class":999},[993,1682,1683,1685,1687,1689,1691,1693,1695,1697],{"class":995,"line":1029},[993,1684,1033],{"class":1032},[993,1686,1036],{"class":999},[993,1688,1040],{"class":1039},[993,1690,1043],{"class":999},[993,1692,1046],{"class":1032},[993,1694,1049],{"class":999},[993,1696,1052],{"class":1020},[993,1698,1055],{"class":999},[993,1700,1701],{"class":995,"line":1058},[993,1702,1061],{"emptyLinePlaceholder":21},[993,1704,1705,1707,1709,1711,1713],{"class":995,"line":1064},[993,1706,1067],{"class":1007},[993,1708,1070],{"class":1039},[993,1710,1014],{"class":999},[993,1712,1076],{"class":1075},[993,1714,1079],{"class":1039},[993,1716,1717],{"class":995,"line":1082},[993,1718,1061],{"emptyLinePlaceholder":21},[993,1720,1721,1723,1725,1727,1729,1731,1733],{"class":995,"line":1087},[993,1722,1067],{"class":1007},[993,1724,1092],{"class":1039},[993,1726,1014],{"class":999},[993,1728,1097],{"class":1039},[993,1730,1100],{"class":999},[993,1732,1103],{"class":1075},[993,1734,1106],{"class":1039},[993,1736,1737],{"class":995,"line":1109},[993,1738,1061],{"emptyLinePlaceholder":21},[993,1740,1741,1744,1746,1748],{"class":995,"line":1114},[993,1742,1743],{"class":1007},"function",[993,1745,1123],{"class":1075},[993,1747,1126],{"class":999},[993,1749,1129],{"class":999},[993,1751,1752,1754,1756,1758,1760],{"class":995,"line":1132},[993,1753,1135],{"class":1039},[993,1755,1100],{"class":999},[993,1757,1140],{"class":1075},[993,1759,1224],{"class":1003},[993,1761,1762],{"class":999},"{\n",[993,1764,1765,1768,1770,1772,1775],{"class":995,"line":1145},[993,1766,1767],{"class":1003},"    title",[993,1769,1231],{"class":999},[993,1771,1049],{"class":999},[993,1773,1774],{"class":1020},"Welcome",[993,1776,1055],{"class":999},[993,1778,1779,1782],{"class":995,"line":1151},[993,1780,1781],{"class":999},"  }",[993,1783,1784],{"class":1003},")\n",[993,1786,1788],{"class":995,"line":1787},12,[993,1789,1148],{"class":999},[993,1791,1793,1795,1797],{"class":995,"line":1792},13,[993,1794,1154],{"class":999},[993,1796,1004],{"class":1003},[993,1798,1026],{"class":999},[1213,1800,1378],{"id":1801},"close-1",[970,1803,1804],{},[974,1805,1806,1808,1810,1812,1814,1816,1818],{"className":1200,"language":1201,"style":989},[993,1807,1189],{"class":1204},[993,1809,1224],{"class":999},[993,1811,1424],{"class":1227},[993,1813,1334],{"class":999},[993,1815,1402],{"class":1204},[993,1817,1248],{"class":999},[993,1819,1407],{"class":1204},[970,1821,1822],{},"Close the overlay.",[1256,1824,1259],{"id":1825},"parameters-7",[1261,1827,1828],{},[1264,1829,1830],{"name":1424,"type":1425},[970,1831,1428],{},[1213,1833,1451],{"id":1834},"patch-1",[970,1836,1837],{},[974,1838,1839,1841,1843,1845,1847,1849,1851,1853,1855,1857,1859],{"className":1200,"language":1201,"style":989},[993,1840,1450],{"class":1204},[993,1842,1224],{"class":999},[993,1844,1295],{"class":1227},[993,1846,1231],{"class":999},[993,1848,1474],{"class":1204},[993,1850,1000],{"class":999},[993,1852,1296],{"class":1204},[993,1854,1000],{"class":999},[993,1856,1266],{"class":1204},[993,1858,1485],{"class":999},[993,1860,1407],{"class":1204},[970,1862,1863],{},"Update the props of the overlay.",[1256,1865,1259],{"id":1866},"parameters-8",[1261,1868,1869],{},[1264,1870,1871],{"name":1295,"type":1504,":required":1267},[970,1872,1507],{},[985,1874,1876],{"className":987,"code":1875,"language":34,"meta":989,"style":989},"\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",[974,1877,1878,1898,1916,1920,1932,1936,1957,1981,1988,1992,2002,2012,2016,2020,2032,2061,2066],{"__ignoreMap":989},[993,1879,1880,1882,1884,1886,1888,1890,1892,1894,1896],{"class":995,"line":996},[993,1881,1000],{"class":999},[993,1883,1004],{"class":1003},[993,1885,1008],{"class":1007},[993,1887,1011],{"class":1007},[993,1889,1014],{"class":999},[993,1891,1017],{"class":999},[993,1893,1021],{"class":1020},[993,1895,1017],{"class":999},[993,1897,1026],{"class":999},[993,1899,1900,1902,1904,1906,1908,1910,1912,1914],{"class":995,"line":1029},[993,1901,1033],{"class":1032},[993,1903,1036],{"class":999},[993,1905,1040],{"class":1039},[993,1907,1043],{"class":999},[993,1909,1046],{"class":1032},[993,1911,1049],{"class":999},[993,1913,1052],{"class":1020},[993,1915,1055],{"class":999},[993,1917,1918],{"class":995,"line":1058},[993,1919,1061],{"emptyLinePlaceholder":21},[993,1921,1922,1924,1926,1928,1930],{"class":995,"line":1064},[993,1923,1067],{"class":1007},[993,1925,1070],{"class":1039},[993,1927,1014],{"class":999},[993,1929,1076],{"class":1075},[993,1931,1079],{"class":1039},[993,1933,1934],{"class":995,"line":1082},[993,1935,1061],{"emptyLinePlaceholder":21},[993,1937,1938,1940,1942,1944,1946,1948,1950,1953,1955],{"class":995,"line":1087},[993,1939,1067],{"class":1007},[993,1941,1092],{"class":1039},[993,1943,1014],{"class":999},[993,1945,1097],{"class":1039},[993,1947,1100],{"class":999},[993,1949,1103],{"class":1075},[993,1951,1952],{"class":1039},"(LazyModalExample",[993,1954,1237],{"class":999},[993,1956,1129],{"class":999},[993,1958,1959,1962,1964,1966,1969,1971,1973,1975,1978],{"class":995,"line":1109},[993,1960,1961],{"class":1003},"  props",[993,1963,1231],{"class":999},[993,1965,1036],{"class":999},[993,1967,1968],{"class":1003}," title",[993,1970,1231],{"class":999},[993,1972,1049],{"class":999},[993,1974,1774],{"class":1020},[993,1976,1977],{"class":999},"'",[993,1979,1980],{"class":999}," }\n",[993,1982,1983,1986],{"class":995,"line":1114},[993,1984,1985],{"class":999},"}",[993,1987,1784],{"class":1039},[993,1989,1990],{"class":995,"line":1132},[993,1991,1061],{"emptyLinePlaceholder":21},[993,1993,1994,1996,1998,2000],{"class":995,"line":1145},[993,1995,1743],{"class":1007},[993,1997,1123],{"class":1075},[993,1999,1126],{"class":999},[993,2001,1129],{"class":999},[993,2003,2004,2006,2008,2010],{"class":995,"line":1151},[993,2005,1135],{"class":1039},[993,2007,1100],{"class":999},[993,2009,1140],{"class":1075},[993,2011,1079],{"class":1003},[993,2013,2014],{"class":995,"line":1787},[993,2015,1148],{"class":999},[993,2017,2018],{"class":995,"line":1792},[993,2019,1061],{"emptyLinePlaceholder":21},[993,2021,2023,2025,2028,2030],{"class":995,"line":2022},14,[993,2024,1743],{"class":1007},[993,2026,2027],{"class":1075}," updateModalTitle",[993,2029,1126],{"class":999},[993,2031,1129],{"class":999},[993,2033,2035,2037,2039,2041,2043,2046,2048,2050,2052,2055,2057,2059],{"class":995,"line":2034},15,[993,2036,1135],{"class":1039},[993,2038,1100],{"class":999},[993,2040,1450],{"class":1075},[993,2042,1224],{"class":1003},[993,2044,2045],{"class":999},"{",[993,2047,1968],{"class":1003},[993,2049,1231],{"class":999},[993,2051,1049],{"class":999},[993,2053,2054],{"class":1020},"Updated Title",[993,2056,1977],{"class":999},[993,2058,1043],{"class":999},[993,2060,1784],{"class":1003},[993,2062,2064],{"class":995,"line":2063},16,[993,2065,1148],{"class":999},[993,2067,2069,2071,2073],{"class":995,"line":2068},17,[993,2070,1154],{"class":999},[993,2072,1004],{"class":1003},[993,2074,1026],{"class":999},[965,2076,2078],{"id":2077},"examples","Examples",[1213,2080,2082],{"id":2081},"with-multiple-overlays","With multiple overlays",[970,2084,2085],{},"This example demonstrates how to manage multiple overlays and pass data between them:",[985,2087,2089],{"className":987,"code":2088,"language":34,"meta":989,"style":989},"\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",[974,2090,2091,2111,2140,2144,2156,2160,2166,2210,2228,2246,2250,2267,2272,2300,2304,2308,2326,2331,2355,2360,2366,2386,2391,2400,2405,2415,2451],{"__ignoreMap":989},[993,2092,2093,2095,2097,2099,2101,2103,2105,2107,2109],{"class":995,"line":996},[993,2094,1000],{"class":999},[993,2096,1004],{"class":1003},[993,2098,1008],{"class":1007},[993,2100,1011],{"class":1007},[993,2102,1014],{"class":999},[993,2104,1017],{"class":999},[993,2106,1021],{"class":1020},[993,2108,1017],{"class":999},[993,2110,1026],{"class":999},[993,2112,2113,2115,2117,2120,2122,2125,2127,2130,2132,2134,2136,2138],{"class":995,"line":1029},[993,2114,1033],{"class":1032},[993,2116,1036],{"class":999},[993,2118,2119],{"class":1039}," ModalA",[993,2121,1237],{"class":999},[993,2123,2124],{"class":1039}," ModalB",[993,2126,1237],{"class":999},[993,2128,2129],{"class":1039}," SlideoverA",[993,2131,1043],{"class":999},[993,2133,1046],{"class":1032},[993,2135,1049],{"class":999},[993,2137,1052],{"class":1020},[993,2139,1055],{"class":999},[993,2141,2142],{"class":995,"line":1058},[993,2143,1061],{"emptyLinePlaceholder":21},[993,2145,2146,2148,2150,2152,2154],{"class":995,"line":1064},[993,2147,1067],{"class":1007},[993,2149,1070],{"class":1039},[993,2151,1014],{"class":999},[993,2153,1076],{"class":1075},[993,2155,1079],{"class":1039},[993,2157,2158],{"class":995,"line":1082},[993,2159,1061],{"emptyLinePlaceholder":21},[993,2161,2162],{"class":995,"line":1087},[993,2163,2165],{"class":2164},"sHwdD","\u002F\u002F Create with default props\n",[993,2167,2168,2170,2173,2175,2177,2179,2181,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206,2208],{"class":995,"line":1109},[993,2169,1067],{"class":1007},[993,2171,2172],{"class":1039}," modalA ",[993,2174,1014],{"class":999},[993,2176,1097],{"class":1039},[993,2178,1100],{"class":999},[993,2180,1103],{"class":1075},[993,2182,2183],{"class":1039},"(ModalA",[993,2185,1237],{"class":999},[993,2187,1036],{"class":999},[993,2189,1331],{"class":1003},[993,2191,1231],{"class":999},[993,2193,1036],{"class":999},[993,2195,1968],{"class":1003},[993,2197,1231],{"class":999},[993,2199,1049],{"class":999},[993,2201,1774],{"class":1020},[993,2203,1977],{"class":999},[993,2205,1043],{"class":999},[993,2207,1043],{"class":999},[993,2209,1784],{"class":1039},[993,2211,2212,2214,2217,2219,2221,2223,2225],{"class":995,"line":1114},[993,2213,1067],{"class":1007},[993,2215,2216],{"class":1039}," modalB ",[993,2218,1014],{"class":999},[993,2220,1097],{"class":1039},[993,2222,1100],{"class":999},[993,2224,1103],{"class":1075},[993,2226,2227],{"class":1039},"(ModalB)\n",[993,2229,2230,2232,2235,2237,2239,2241,2243],{"class":995,"line":1132},[993,2231,1067],{"class":1007},[993,2233,2234],{"class":1039}," slideoverA ",[993,2236,1014],{"class":999},[993,2238,1097],{"class":1039},[993,2240,1100],{"class":999},[993,2242,1103],{"class":1075},[993,2244,2245],{"class":1039},"(SlideoverA)\n",[993,2247,2248],{"class":995,"line":1145},[993,2249,1061],{"emptyLinePlaceholder":21},[993,2251,2252,2254,2257,2259,2262,2265],{"class":995,"line":1151},[993,2253,1067],{"class":1007},[993,2255,2256],{"class":1039}," openModalA ",[993,2258,1014],{"class":999},[993,2260,2261],{"class":999}," ()",[993,2263,2264],{"class":1007}," =>",[993,2266,1129],{"class":999},[993,2268,2269],{"class":995,"line":1787},[993,2270,2271],{"class":2164},"  \u002F\u002F Open modalA, but override the title prop\n",[993,2273,2274,2277,2279,2281,2283,2285,2287,2289,2291,2294,2296,2298],{"class":995,"line":1792},[993,2275,2276],{"class":1039},"  modalA",[993,2278,1100],{"class":999},[993,2280,1140],{"class":1075},[993,2282,1224],{"class":1003},[993,2284,2045],{"class":999},[993,2286,1968],{"class":1003},[993,2288,1231],{"class":999},[993,2290,1049],{"class":999},[993,2292,2293],{"class":1020},"Hello",[993,2295,1977],{"class":999},[993,2297,1043],{"class":999},[993,2299,1784],{"class":1003},[993,2301,2302],{"class":995,"line":2022},[993,2303,1148],{"class":999},[993,2305,2306],{"class":995,"line":2034},[993,2307,1061],{"emptyLinePlaceholder":21},[993,2309,2310,2312,2315,2317,2320,2322,2324],{"class":995,"line":2063},[993,2311,1067],{"class":1007},[993,2313,2314],{"class":1039}," openModalB ",[993,2316,1014],{"class":999},[993,2318,2319],{"class":1007}," async",[993,2321,2261],{"class":999},[993,2323,2264],{"class":1007},[993,2325,1129],{"class":999},[993,2327,2328],{"class":995,"line":2068},[993,2329,2330],{"class":2164},"  \u002F\u002F Open modalB, and wait for its result\n",[993,2332,2334,2337,2340,2343,2346,2349,2351,2353],{"class":995,"line":2333},18,[993,2335,2336],{"class":1007},"  const",[993,2338,2339],{"class":1039}," input",[993,2341,2342],{"class":999}," =",[993,2344,2345],{"class":1032}," await",[993,2347,2348],{"class":1039}," modalB",[993,2350,1100],{"class":999},[993,2352,1140],{"class":1075},[993,2354,1079],{"class":1003},[993,2356,2358],{"class":995,"line":2357},19,[993,2359,1061],{"emptyLinePlaceholder":21},[993,2361,2363],{"class":995,"line":2362},20,[993,2364,2365],{"class":2164},"  \u002F\u002F Pass the result from modalB to the slideover, and open it\n",[993,2367,2369,2372,2374,2376,2378,2380,2382,2384],{"class":995,"line":2368},21,[993,2370,2371],{"class":1039},"  slideoverA",[993,2373,1100],{"class":999},[993,2375,1140],{"class":1075},[993,2377,1224],{"class":1003},[993,2379,2045],{"class":999},[993,2381,2339],{"class":1039},[993,2383,1043],{"class":999},[993,2385,1784],{"class":1003},[993,2387,2389],{"class":995,"line":2388},22,[993,2390,1148],{"class":999},[993,2392,2394,2396,2398],{"class":995,"line":2393},23,[993,2395,1154],{"class":999},[993,2397,1004],{"class":1003},[993,2399,1026],{"class":999},[993,2401,2403],{"class":995,"line":2402},24,[993,2404,1061],{"emptyLinePlaceholder":21},[993,2406,2408,2410,2413],{"class":995,"line":2407},25,[993,2409,1000],{"class":999},[993,2411,2412],{"class":1003},"template",[993,2414,1026],{"class":999},[993,2416,2418,2421,2424,2427,2429,2431,2434,2436,2439,2441,2443,2446,2448],{"class":995,"line":2417},26,[993,2419,2420],{"class":999},"  \u003C",[993,2422,2423],{"class":1003},"UButton",[993,2425,2426],{"class":1007}," label",[993,2428,1014],{"class":999},[993,2430,1017],{"class":999},[993,2432,2433],{"class":1020},"Open Modal",[993,2435,1017],{"class":999},[993,2437,2438],{"class":1007}," @click",[993,2440,1014],{"class":999},[993,2442,1017],{"class":999},[993,2444,2445],{"class":1020},"openModalA",[993,2447,1017],{"class":999},[993,2449,2450],{"class":999}," \u002F>\n",[993,2452,2454,2456,2458],{"class":995,"line":2453},27,[993,2455,1154],{"class":999},[993,2457,2412],{"class":1003},[993,2459,1026],{"class":999},[1213,2461,2463],{"id":2462},"confirm-dialog","Confirm dialog",[970,2465,2466,2467,2470,2471,2473],{},"This example demonstrates how to create a reusable confirm dialog pattern using a custom ",[974,2468,2469],{},"useConfirmDialog"," composable that wraps ",[974,2472,844],{},". This approach enables opinionated dialogs tailored to specific business requirements and design preferences.",[2475,2476,2477],"ol",{},[1163,2478,2479,2480,2483],{},"Create a ",[974,2481,2482],{},"ConfirmDialog"," component that emits a boolean value when closed:",[985,2485,2488],{"className":987,"code":2486,"filename":2487,"language":34,"meta":989,"style":989},"\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",[974,2489,2490,2510,2520,2530,2539,2543,2547,2561,2565,2580,2599,2606,2614,2618,2626,2633,2648,2662,2675,2689,2694,2709,2764,2804,2813,2823],{"__ignoreMap":989},[993,2491,2492,2494,2496,2498,2500,2502,2504,2506,2508],{"class":995,"line":996},[993,2493,1000],{"class":999},[993,2495,1004],{"class":1003},[993,2497,1011],{"class":1007},[993,2499,1014],{"class":999},[993,2501,1017],{"class":999},[993,2503,1021],{"class":1020},[993,2505,1017],{"class":999},[993,2507,1008],{"class":1007},[993,2509,1026],{"class":999},[993,2511,2512,2515,2518],{"class":995,"line":1029},[993,2513,2514],{"class":1007},"interface",[993,2516,2517],{"class":1204}," ConfirmDialogProps",[993,2519,1129],{"class":999},[993,2521,2522,2525,2527],{"class":995,"line":1058},[993,2523,2524],{"class":1003},"  title",[993,2526,1334],{"class":999},[993,2528,2529],{"class":1204}," string\n",[993,2531,2532,2535,2537],{"class":995,"line":1064},[993,2533,2534],{"class":1003},"  description",[993,2536,1334],{"class":999},[993,2538,2529],{"class":1204},[993,2540,2541],{"class":995,"line":1082},[993,2542,1148],{"class":999},[993,2544,2545],{"class":995,"line":1087},[993,2546,1061],{"emptyLinePlaceholder":21},[993,2548,2549,2552,2554,2557,2559],{"class":995,"line":1109},[993,2550,2551],{"class":1075},"defineProps",[993,2553,1000],{"class":999},[993,2555,2556],{"class":1204},"ConfirmDialogProps",[993,2558,1354],{"class":999},[993,2560,1079],{"class":1039},[993,2562,2563],{"class":995,"line":1114},[993,2564,1061],{"emptyLinePlaceholder":21},[993,2566,2567,2569,2572,2574,2577],{"class":995,"line":1132},[993,2568,1067],{"class":1007},[993,2570,2571],{"class":1039}," emits ",[993,2573,1014],{"class":999},[993,2575,2576],{"class":1075}," defineEmits",[993,2578,2579],{"class":999},"\u003C{\n",[993,2581,2582,2585,2587,2590,2592,2594,2596],{"class":995,"line":1145},[993,2583,2584],{"class":1003},"  close",[993,2586,1231],{"class":999},[993,2588,2589],{"class":1039}," [",[993,2591,1424],{"class":1204},[993,2593,1231],{"class":999},[993,2595,1567],{"class":1204},[993,2597,2598],{"class":1039},"]\n",[993,2600,2601,2604],{"class":995,"line":1151},[993,2602,2603],{"class":999},"}>",[993,2605,1079],{"class":1039},[993,2607,2608,2610,2612],{"class":995,"line":1787},[993,2609,1154],{"class":999},[993,2611,1004],{"class":1003},[993,2613,1026],{"class":999},[993,2615,2616],{"class":995,"line":1792},[993,2617,1061],{"emptyLinePlaceholder":21},[993,2619,2620,2622,2624],{"class":995,"line":2022},[993,2621,1000],{"class":999},[993,2623,2412],{"class":1003},[993,2625,1026],{"class":999},[993,2627,2628,2630],{"class":995,"line":2034},[993,2629,2420],{"class":999},[993,2631,2632],{"class":1003},"UModal\n",[993,2634,2635,2638,2640,2642,2645],{"class":995,"line":2063},[993,2636,2637],{"class":1007},"    :title",[993,2639,1014],{"class":999},[993,2641,1017],{"class":999},[993,2643,2644],{"class":1020},"title",[993,2646,2647],{"class":999},"\"\n",[993,2649,2650,2653,2655,2657,2660],{"class":995,"line":2068},[993,2651,2652],{"class":1007},"    :description",[993,2654,1014],{"class":999},[993,2656,1017],{"class":999},[993,2658,2659],{"class":1020},"description",[993,2661,2647],{"class":999},[993,2663,2664,2667,2669,2671,2673],{"class":995,"line":2333},[993,2665,2666],{"class":1007},"    :dismissible",[993,2668,1014],{"class":999},[993,2670,1017],{"class":999},[993,2672,1292],{"class":1020},[993,2674,2647],{"class":999},[993,2676,2677,2680,2682,2684,2687],{"class":995,"line":2357},[993,2678,2679],{"class":1007},"    :ui",[993,2681,1014],{"class":999},[993,2683,1017],{"class":999},[993,2685,2686],{"class":1020},"{ footer: 'justify-end' }",[993,2688,2647],{"class":999},[993,2690,2691],{"class":995,"line":2362},[993,2692,2693],{"class":999},"  >\n",[993,2695,2696,2699,2701,2704,2707],{"class":995,"line":2368},[993,2697,2698],{"class":999},"    \u003C",[993,2700,2412],{"class":1003},[993,2702,2703],{"class":999}," #",[993,2705,2706],{"class":1007},"footer",[993,2708,1026],{"class":999},[993,2710,2711,2714,2716,2718,2720,2722,2725,2727,2730,2732,2734,2737,2739,2742,2744,2746,2749,2751,2753,2755,2757,2760,2762],{"class":995,"line":2388},[993,2712,2713],{"class":999},"      \u003C",[993,2715,2423],{"class":1003},[993,2717,2426],{"class":1007},[993,2719,1014],{"class":999},[993,2721,1017],{"class":999},[993,2723,2724],{"class":1020},"Cancel",[993,2726,1017],{"class":999},[993,2728,2729],{"class":1007}," color",[993,2731,1014],{"class":999},[993,2733,1017],{"class":999},[993,2735,2736],{"class":1020},"neutral",[993,2738,1017],{"class":999},[993,2740,2741],{"class":1007}," variant",[993,2743,1014],{"class":999},[993,2745,1017],{"class":999},[993,2747,2748],{"class":1020},"outline",[993,2750,1017],{"class":999},[993,2752,2438],{"class":1007},[993,2754,1014],{"class":999},[993,2756,1017],{"class":999},[993,2758,2759],{"class":1020},"emits('close', false)",[993,2761,1017],{"class":999},[993,2763,2450],{"class":999},[993,2765,2766,2768,2770,2772,2774,2776,2779,2781,2783,2785,2787,2789,2791,2793,2795,2797,2800,2802],{"class":995,"line":2393},[993,2767,2713],{"class":999},[993,2769,2423],{"class":1003},[993,2771,2426],{"class":1007},[993,2773,1014],{"class":999},[993,2775,1017],{"class":999},[993,2777,2778],{"class":1020},"Confirm",[993,2780,1017],{"class":999},[993,2782,2729],{"class":1007},[993,2784,1014],{"class":999},[993,2786,1017],{"class":999},[993,2788,2736],{"class":1020},[993,2790,1017],{"class":999},[993,2792,2438],{"class":1007},[993,2794,1014],{"class":999},[993,2796,1017],{"class":999},[993,2798,2799],{"class":1020},"emits('close', true)",[993,2801,1017],{"class":999},[993,2803,2450],{"class":999},[993,2805,2806,2809,2811],{"class":995,"line":2402},[993,2807,2808],{"class":999},"    \u003C\u002F",[993,2810,2412],{"class":1003},[993,2812,1026],{"class":999},[993,2814,2815,2818,2821],{"class":995,"line":2407},[993,2816,2817],{"class":999},"  \u003C\u002F",[993,2819,2820],{"class":1003},"UModal",[993,2822,1026],{"class":999},[993,2824,2825,2827,2829],{"class":995,"line":2417},[993,2826,1154],{"class":999},[993,2828,2412],{"class":1003},[993,2830,1026],{"class":999},[2475,2832,2833],{"start":1029},[1163,2834,2479,2835,2837],{},[974,2836,2469],{}," composable that returns a Promise:",[985,2839,2843],{"className":2840,"code":2841,"filename":2842,"language":1021,"meta":989,"style":989},"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",[974,2844,2845,2864,2868,2881,2889,2897,2901,2905,2923,2935,2939,2968,2992,3006,3016,3023,3027,3040,3045],{"__ignoreMap":989},[993,2846,2847,2849,2851,2854,2856,2858,2860,2862],{"class":995,"line":996},[993,2848,1033],{"class":1032},[993,2850,1036],{"class":999},[993,2852,2853],{"class":1039}," ConfirmDialog",[993,2855,1043],{"class":999},[993,2857,1046],{"class":1032},[993,2859,1049],{"class":999},[993,2861,1052],{"class":1020},[993,2863,1055],{"class":999},[993,2865,2866],{"class":995,"line":1029},[993,2867,1061],{"emptyLinePlaceholder":21},[993,2869,2870,2873,2876,2879],{"class":995,"line":1058},[993,2871,2872],{"class":1032},"export",[993,2874,2875],{"class":1007}," interface",[993,2877,2878],{"class":1204}," ConfirmDialogOptions",[993,2880,1129],{"class":999},[993,2882,2883,2885,2887],{"class":995,"line":1064},[993,2884,2524],{"class":1003},[993,2886,1231],{"class":999},[993,2888,2529],{"class":1204},[993,2890,2891,2893,2895],{"class":995,"line":1082},[993,2892,2534],{"class":1003},[993,2894,1334],{"class":999},[993,2896,2529],{"class":1204},[993,2898,2899],{"class":995,"line":1087},[993,2900,1148],{"class":999},[993,2902,2903],{"class":995,"line":1109},[993,2904,1061],{"emptyLinePlaceholder":21},[993,2906,2907,2909,2912,2915,2917,2919,2921],{"class":995,"line":1114},[993,2908,2872],{"class":1032},[993,2910,2911],{"class":1007}," const",[993,2913,2914],{"class":1039}," useConfirmDialog ",[993,2916,1014],{"class":999},[993,2918,2261],{"class":999},[993,2920,2264],{"class":1007},[993,2922,1129],{"class":999},[993,2924,2925,2927,2929,2931,2933],{"class":995,"line":1132},[993,2926,2336],{"class":1007},[993,2928,1097],{"class":1039},[993,2930,2342],{"class":999},[993,2932,1076],{"class":1075},[993,2934,1079],{"class":1003},[993,2936,2937],{"class":995,"line":1145},[993,2938,1061],{"emptyLinePlaceholder":21},[993,2940,2941,2944,2947,2949,2951,2953,2955,2958,2960,2962,2964,2966],{"class":995,"line":1151},[993,2942,2943],{"class":1032},"  return",[993,2945,2946],{"class":999}," (",[993,2948,1273],{"class":1227},[993,2950,1231],{"class":999},[993,2952,2878],{"class":1204},[993,2954,1248],{"class":999},[993,2956,2957],{"class":1204}," Promise",[993,2959,1000],{"class":999},[993,2961,1286],{"class":1204},[993,2963,1354],{"class":999},[993,2965,2264],{"class":1007},[993,2967,1129],{"class":999},[993,2969,2970,2973,2976,2978,2980,2982,2984,2986,2988,2990],{"class":995,"line":1787},[993,2971,2972],{"class":1007},"    const",[993,2974,2975],{"class":1039}," modal",[993,2977,2342],{"class":999},[993,2979,1097],{"class":1039},[993,2981,1100],{"class":999},[993,2983,1103],{"class":1075},[993,2985,1224],{"class":1003},[993,2987,2482],{"class":1039},[993,2989,1237],{"class":999},[993,2991,1129],{"class":999},[993,2993,2994,2997,2999,3003],{"class":995,"line":1792},[993,2995,2996],{"class":1003},"      destroyOnClose",[993,2998,1231],{"class":999},[993,3000,3002],{"class":3001},"sfNiH"," true",[993,3004,3005],{"class":999},",\n",[993,3007,3008,3011,3013],{"class":995,"line":2022},[993,3009,3010],{"class":1003},"      props",[993,3012,1231],{"class":999},[993,3014,3015],{"class":1039}," options\n",[993,3017,3018,3021],{"class":995,"line":2034},[993,3019,3020],{"class":999},"    }",[993,3022,1784],{"class":1003},[993,3024,3025],{"class":995,"line":2063},[993,3026,1061],{"emptyLinePlaceholder":21},[993,3028,3029,3032,3034,3036,3038],{"class":995,"line":2068},[993,3030,3031],{"class":1032},"    return",[993,3033,2975],{"class":1039},[993,3035,1100],{"class":999},[993,3037,1140],{"class":1075},[993,3039,1079],{"class":1003},[993,3041,3042],{"class":995,"line":2333},[993,3043,3044],{"class":999},"  }\n",[993,3046,3047],{"class":995,"line":2357},[993,3048,1148],{"class":999},[2475,3050,3051],{"start":1058},[1163,3052,3053],{},"Use the composable in your components:",[985,3055,3057],{"className":987,"code":3056,"language":34,"meta":989,"style":989},"\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",[974,3058,3059,3079,3093,3097,3114,3132,3147,3161,3167,3171,3186,3207,3211,3215,3223,3227,3235,3264],{"__ignoreMap":989},[993,3060,3061,3063,3065,3067,3069,3071,3073,3075,3077],{"class":995,"line":996},[993,3062,1000],{"class":999},[993,3064,1004],{"class":1003},[993,3066,1008],{"class":1007},[993,3068,1011],{"class":1007},[993,3070,1014],{"class":999},[993,3072,1017],{"class":999},[993,3074,1021],{"class":1020},[993,3076,1017],{"class":999},[993,3078,1026],{"class":999},[993,3080,3081,3083,3086,3088,3091],{"class":995,"line":1029},[993,3082,1067],{"class":1007},[993,3084,3085],{"class":1039}," confirm ",[993,3087,1014],{"class":999},[993,3089,3090],{"class":1075}," useConfirmDialog",[993,3092,1079],{"class":1039},[993,3094,3095],{"class":995,"line":1058},[993,3096,1061],{"emptyLinePlaceholder":21},[993,3098,3099,3101,3104,3106,3108,3110,3112],{"class":995,"line":1064},[993,3100,1067],{"class":1007},[993,3102,3103],{"class":1039}," handleDelete ",[993,3105,1014],{"class":999},[993,3107,2319],{"class":1007},[993,3109,2261],{"class":999},[993,3111,2264],{"class":1007},[993,3113,1129],{"class":999},[993,3115,3116,3118,3121,3123,3125,3128,3130],{"class":995,"line":1082},[993,3117,2336],{"class":1007},[993,3119,3120],{"class":1039}," confirmed",[993,3122,2342],{"class":999},[993,3124,2345],{"class":1032},[993,3126,3127],{"class":1075}," confirm",[993,3129,1224],{"class":1003},[993,3131,1762],{"class":999},[993,3133,3134,3136,3138,3140,3143,3145],{"class":995,"line":1087},[993,3135,1767],{"class":1003},[993,3137,1231],{"class":999},[993,3139,1049],{"class":999},[993,3141,3142],{"class":1020},"Delete item",[993,3144,1977],{"class":999},[993,3146,3005],{"class":999},[993,3148,3149,3152,3154,3156,3159],{"class":995,"line":1109},[993,3150,3151],{"class":1003},"    description",[993,3153,1231],{"class":999},[993,3155,1049],{"class":999},[993,3157,3158],{"class":1020},"Are you sure you want to delete this item?",[993,3160,1055],{"class":999},[993,3162,3163,3165],{"class":995,"line":1114},[993,3164,1781],{"class":999},[993,3166,1784],{"class":1003},[993,3168,3169],{"class":995,"line":1132},[993,3170,1061],{"emptyLinePlaceholder":21},[993,3172,3173,3176,3178,3181,3184],{"class":995,"line":1145},[993,3174,3175],{"class":1032},"  if",[993,3177,2946],{"class":1003},[993,3179,3180],{"class":1039},"confirmed",[993,3182,3183],{"class":1003},") ",[993,3185,1762],{"class":999},[993,3187,3188,3191,3193,3196,3198,3200,3203,3205],{"class":995,"line":1151},[993,3189,3190],{"class":1039},"    console",[993,3192,1100],{"class":999},[993,3194,3195],{"class":1075},"log",[993,3197,1224],{"class":1003},[993,3199,1977],{"class":999},[993,3201,3202],{"class":1020},"Item deleted",[993,3204,1977],{"class":999},[993,3206,1784],{"class":1003},[993,3208,3209],{"class":995,"line":1787},[993,3210,3044],{"class":999},[993,3212,3213],{"class":995,"line":1792},[993,3214,1148],{"class":999},[993,3216,3217,3219,3221],{"class":995,"line":2022},[993,3218,1154],{"class":999},[993,3220,1004],{"class":1003},[993,3222,1026],{"class":999},[993,3224,3225],{"class":995,"line":2034},[993,3226,1061],{"emptyLinePlaceholder":21},[993,3228,3229,3231,3233],{"class":995,"line":2063},[993,3230,1000],{"class":999},[993,3232,2412],{"class":1003},[993,3234,1026],{"class":999},[993,3236,3237,3239,3241,3243,3245,3247,3249,3251,3253,3255,3257,3260,3262],{"class":995,"line":2068},[993,3238,2420],{"class":999},[993,3240,2423],{"class":1003},[993,3242,2426],{"class":1007},[993,3244,1014],{"class":999},[993,3246,1017],{"class":999},[993,3248,3142],{"class":1020},[993,3250,1017],{"class":999},[993,3252,2438],{"class":1007},[993,3254,1014],{"class":999},[993,3256,1017],{"class":999},[993,3258,3259],{"class":1020},"handleDelete",[993,3261,1017],{"class":999},[993,3263,2450],{"class":999},[993,3265,3266,3268,3270],{"class":995,"line":2333},[993,3267,1154],{"class":999},[993,3269,2412],{"class":1003},[993,3271,1026],{"class":999},[965,3273,3275],{"id":3274},"caveats","Caveats",[1213,3277,3279],{"id":3278},"provide-inject","Provide \u002F Inject",[970,3281,3282,3283,3286,3287,3290,3291,3293],{},"When opening overlays programmatically (e.g. modals, slideovers, etc), the overlay component can only access injected values from the component containing ",[974,3284,3285],{},"UApp"," (typically ",[974,3288,3289],{},"app.vue"," or layout components). This is because overlays are mounted outside of the page context by the ",[974,3292,3285],{}," component.",[970,3295,3296,3297,3300],{},"As such, using ",[974,3298,3299],{},"provide()"," in pages or parent components isn't supported directly. To pass provided values to overlays, the recommended approach is to use props instead:",[985,3302,3304],{"className":987,"code":3303,"language":34,"meta":989,"style":989},"\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",[974,3305,3306,3326,3344,3348,3360,3364,3387,3391,3411,3419,3424,3428,3434],{"__ignoreMap":989},[993,3307,3308,3310,3312,3314,3316,3318,3320,3322,3324],{"class":995,"line":996},[993,3309,1000],{"class":999},[993,3311,1004],{"class":1003},[993,3313,1008],{"class":1007},[993,3315,1011],{"class":1007},[993,3317,1014],{"class":999},[993,3319,1017],{"class":999},[993,3321,1021],{"class":1020},[993,3323,1017],{"class":999},[993,3325,1026],{"class":999},[993,3327,3328,3330,3332,3334,3336,3338,3340,3342],{"class":995,"line":1029},[993,3329,1033],{"class":1032},[993,3331,1036],{"class":999},[993,3333,1040],{"class":1039},[993,3335,1043],{"class":999},[993,3337,1046],{"class":1032},[993,3339,1049],{"class":999},[993,3341,1052],{"class":1020},[993,3343,1055],{"class":999},[993,3345,3346],{"class":995,"line":1058},[993,3347,1061],{"emptyLinePlaceholder":21},[993,3349,3350,3352,3354,3356,3358],{"class":995,"line":1064},[993,3351,1067],{"class":1007},[993,3353,1070],{"class":1039},[993,3355,1014],{"class":999},[993,3357,1076],{"class":1075},[993,3359,1079],{"class":1039},[993,3361,3362],{"class":995,"line":1082},[993,3363,1061],{"emptyLinePlaceholder":21},[993,3365,3366,3368,3371,3373,3376,3378,3380,3383,3385],{"class":995,"line":1087},[993,3367,1067],{"class":1007},[993,3369,3370],{"class":1039}," providedValue ",[993,3372,1014],{"class":999},[993,3374,3375],{"class":1075}," inject",[993,3377,1224],{"class":1039},[993,3379,1977],{"class":999},[993,3381,3382],{"class":1020},"valueProvidedInPage",[993,3384,1977],{"class":999},[993,3386,1784],{"class":1039},[993,3388,3389],{"class":995,"line":1109},[993,3390,1061],{"emptyLinePlaceholder":21},[993,3392,3393,3395,3397,3399,3401,3403,3405,3407,3409],{"class":995,"line":1114},[993,3394,1067],{"class":1007},[993,3396,1092],{"class":1039},[993,3398,1014],{"class":999},[993,3400,1097],{"class":1039},[993,3402,1100],{"class":999},[993,3404,1103],{"class":1075},[993,3406,1952],{"class":1039},[993,3408,1237],{"class":999},[993,3410,1129],{"class":999},[993,3412,3413,3415,3417],{"class":995,"line":1132},[993,3414,1961],{"class":1003},[993,3416,1231],{"class":999},[993,3418,1129],{"class":999},[993,3420,3421],{"class":995,"line":1145},[993,3422,3423],{"class":1039},"    providedValue\n",[993,3425,3426],{"class":995,"line":1151},[993,3427,3044],{"class":999},[993,3429,3430,3432],{"class":995,"line":1787},[993,3431,1985],{"class":999},[993,3433,1784],{"class":1039},[993,3435,3436,3438,3440],{"class":995,"line":1792},[993,3437,1154],{"class":999},[993,3439,1004],{"class":1003},[993,3441,1026],{"class":999},[3443,3444,3445],"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":989,"searchDepth":1029,"depth":1029,"links":3447},[3448,3449,3459,3464,3468],{"id":967,"depth":1029,"text":968},{"id":1194,"depth":1029,"text":1195,"children":3450},[3451,3452,3453,3454,3455,3456,3457,3458],{"id":1103,"depth":1058,"text":1215},{"id":1140,"depth":1058,"text":1310},{"id":1189,"depth":1058,"text":1378},{"id":1431,"depth":1058,"text":1432},{"id":1450,"depth":1058,"text":1451},{"id":1510,"depth":1058,"text":1511},{"id":1546,"depth":1058,"text":1547},{"id":1584,"depth":1058,"text":1584},{"id":1604,"depth":1029,"text":1605,"children":3460},[3461,3462,3463],{"id":1608,"depth":1058,"text":1310},{"id":1801,"depth":1058,"text":1378},{"id":1834,"depth":1058,"text":1451},{"id":2077,"depth":1029,"text":2078,"children":3465},[3466,3467],{"id":2081,"depth":1058,"text":2082},{"id":2462,"depth":1058,"text":2463},{"id":3274,"depth":1029,"text":3275,"children":3469},[3470],{"id":3278,"depth":1058,"text":3279},"md",{},{"title":844,"description":847},"2j4b-5YsJxA_8P56p_HMMV8DWyRIZaXgbFTVLOzIOP8",{"data":3476,"body":3477},{},{"type":3478,"children":3479},"root",[3480],{"type":178,"tag":970,"props":3481,"children":3482},{},[3483],{"type":3484,"value":847},"text",1774015944271]