[{"data":1,"prerenderedAt":804},["ShallowReactive",2],{"navigation_docs":3,"-internals-dialog-provider":217,"-internals-dialog-provider-surround":799},[4,25,41,84,126,165,201],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":24},"Overview","i-lucide-house","\u002Fgetting-started","1.getting-started",[10,14,19],{"title":11,"path":12,"stem":13,"icon":6},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F2.introduction",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F3.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Project structure","\u002Fgetting-started\u002Fproject-structure","1.getting-started\u002F4.project-structure","i-lucide-folder-tree",false,{"title":26,"icon":27,"path":28,"stem":29,"children":30,"page":24},"Architecture","i-lucide-cpu","\u002Farchitecture","3.architecture",[31,36],{"title":32,"path":33,"stem":34,"icon":35},"Core, themes, and apps","\u002Farchitecture\u002Foverview","3.architecture\u002F1.overview","i-lucide-layers",{"title":37,"path":38,"stem":39,"icon":40},"Kits and extension modules","\u002Farchitecture\u002Fkits","3.architecture\u002F3.kits","i-lucide-puzzle",{"title":42,"icon":43,"path":44,"stem":45,"children":46,"page":24},"Apps","i-lucide-app-window","\u002Fapps","4.apps",[47,51,55,60,64,69,74,79],{"title":5,"path":48,"stem":49,"icon":50},"\u002Fapps\u002Foverview","4.apps\u002F1.overview","i-lucide-info",{"title":52,"path":53,"stem":54,"icon":23},"Package layout","\u002Fapps\u002Fpackage-layout","4.apps\u002F2.package-layout",{"title":56,"path":57,"stem":58,"icon":59},"Create from scratch","\u002Fapps\u002Fcreate-from-scratch","4.apps\u002F3.create-from-scratch","i-lucide-list-checks",{"title":61,"path":62,"stem":63,"icon":40},"Module and runtime","\u002Fapps\u002Fmodule-and-runtime","4.apps\u002F4.module-and-runtime",{"title":65,"path":66,"stem":67,"icon":68},"Plugins","\u002Fapps\u002Fplugins","4.apps\u002F5.plugins","i-lucide-plug",{"title":70,"path":71,"stem":72,"icon":73},"Windows and commands","\u002Fapps\u002Fwindows-and-commands","4.apps\u002F6.windows-and-commands","i-lucide-layout-panel-top",{"title":75,"path":76,"stem":77,"icon":78},"Playground","\u002Fapps\u002Fplayground","4.apps\u002F7.playground","i-lucide-flask-conical",{"title":80,"path":81,"stem":82,"icon":83},"Build and publish","\u002Fapps\u002Fbuild-and-publish","4.apps\u002F8.build-and-publish","i-lucide-package",{"title":85,"icon":86,"path":87,"stem":88,"children":89,"page":24},"Themes","i-lucide-palette","\u002Fthemes","5.themes",[90,93,98,102,106,111,116,121],{"title":5,"path":91,"stem":92,"icon":50},"\u002Fthemes\u002Foverview","5.themes\u002F1.overview",{"title":94,"path":95,"stem":96,"icon":97},"Theme anatomy","\u002Fthemes\u002Ftheme-anatomy","5.themes\u002F2.theme-anatomy","i-lucide-component",{"title":99,"path":100,"stem":101},"Create From Scratch","\u002Fthemes\u002Fcreate-from-scratch","5.themes\u002F3.create-from-scratch",{"title":103,"path":104,"stem":105,"icon":68},"Theme plugins","\u002Fthemes\u002Fplugins","5.themes\u002F4.plugins",{"title":107,"path":108,"stem":109,"icon":110},"Styling and Tailwind","\u002Fthemes\u002Fstyling-and-tailwind","5.themes\u002F5.styling-and-tailwind","i-lucide-brush",{"title":112,"path":113,"stem":114,"icon":115},"Pages and boot flow","\u002Fthemes\u002Fpages-and-boot-flow","5.themes\u002F6.pages-and-boot-flow","i-lucide-power",{"title":117,"path":118,"stem":119,"icon":120},"Theme and optional modules","\u002Fthemes\u002Ftheme-and-optional-modules","5.themes\u002F7.theme-and-optional-modules","i-lucide-link",{"title":122,"path":123,"stem":124,"icon":125},"Window chrome and nav buttons","\u002Fthemes\u002Fwindow-chrome-and-nav-buttons","5.themes\u002F8.window-chrome-and-nav-buttons","i-lucide-square-mouse-pointer",{"title":127,"icon":128,"path":129,"stem":130,"children":131,"page":24},"Client & CLI","i-lucide-terminal","\u002Fsetup","6.setup",[132,136,141,146,151,156,161],{"title":133,"path":134,"stem":135,"icon":128},"desktop CLI","\u002Fsetup\u002Fdesktop-cli","6.setup\u002F1.desktop-cli",{"title":137,"path":138,"stem":139,"icon":140},"Package linking","\u002Fsetup\u002Fpackage-linking","6.setup\u002F2.package-linking","i-lucide-link-2",{"title":142,"path":143,"stem":144,"icon":145},"Monorepo and workspace","\u002Fsetup\u002Fmonorepo-workspace","6.setup\u002F3.monorepo-workspace","i-lucide-blocks",{"title":147,"path":148,"stem":149,"icon":150},"desktop.config.ts","\u002Fsetup\u002Fdesktop-config","6.setup\u002F4.desktop-config","i-lucide-file-code",{"title":152,"path":153,"stem":154,"icon":155},"Migrate themes, apps, and modules (3.3.2)","\u002Fsetup\u002Fmigrate-packages-3.3.2","6.setup\u002F5.migrate-packages-3.3.2","i-lucide-arrow-right-left",{"title":157,"path":158,"stem":159,"icon":160},"Migrate themes, apps, and modules (3.4)","\u002Fsetup\u002Fmigrate-packages-3.4","6.setup\u002F6.migrate-packages-3.4","i-lucide-arrow-up-right",{"title":162,"path":163,"stem":164},"Troubleshooting","\u002Fsetup\u002Ftroubleshooting","6.setup\u002F7.troubleshooting",{"title":166,"icon":167,"path":168,"stem":169,"children":170,"page":24},"Internals","i-lucide-book-open","\u002Finternals","7.internals",[171,176,181,186,191,196],{"title":172,"path":173,"stem":174,"icon":175},"Boot sequence","\u002Finternals\u002Fboot-sequence","7.internals\u002F1.boot-sequence","i-lucide-list-ordered",{"title":177,"path":178,"stem":179,"icon":180},"Stores and composables","\u002Finternals\u002Fstores-and-composables","7.internals\u002F2.stores-and-composables","i-lucide-database",{"title":182,"path":183,"stem":184,"icon":185},"Core components","\u002Finternals\u002Fcore-components","7.internals\u002F3.core-components","i-lucide-layout-grid",{"title":187,"path":188,"stem":189,"icon":190},"Dialog provider","\u002Finternals\u002Fdialog-provider","7.internals\u002F4.dialog-provider","i-lucide-message-square",{"title":192,"path":193,"stem":194,"icon":195},"Kernel contract","\u002Finternals\u002Fkernel-contract","7.internals\u002F5.kernel-contract","i-lucide-shield-check",{"title":197,"path":198,"stem":199,"icon":200},"Shell identity","\u002Finternals\u002Fshell-identity","7.internals\u002F6.shell-identity","i-lucide-user",{"title":202,"icon":203,"path":204,"stem":205,"children":206,"page":24},"Reference","i-lucide-book-marked","\u002Freference","8.reference",[207,212],{"title":208,"path":209,"stem":210,"icon":211},"Glossary","\u002Freference\u002Fglossary","8.reference\u002F1.glossary","i-lucide-book-a",{"title":213,"path":214,"stem":215,"icon":216},"Ecosystem","\u002Freference\u002Fuseful-links","8.reference\u002F2.useful-links","i-lucide-external-link",{"id":218,"title":187,"body":219,"description":792,"extension":793,"links":794,"meta":795,"navigation":796,"path":188,"seo":797,"stem":189,"__hash__":798},"docs\u002F7.internals\u002F4.dialog-provider.md",{"type":220,"value":221,"toc":783},"minimark",[222,248,253,262,327,331,507,537,541,577,585,594,617,640,657,660,705,712,716,746,750,779],[223,224,225,226,230,231,234,235,241,242,247],"p",{},"OWD standardizes ",[227,228,229],"strong",{},"how"," code asks for user confirmation or input, not ",[227,232,233],{},"which"," widget library renders it. Themes keep their own look (Win95, Win11, GNOME, Nova, …); shared code (",[227,236,237],{},[238,239,240],"code",{},"module-fs",", apps) calls a small provider instead of hard-coding ",[227,243,244],{},[238,245,246],{},"window.confirm"," or PrimeVue.",[249,250,252],"h2",{"id":251},"contract-core","Contract (core)",[223,254,255,256,261],{},"The interface lives in ",[227,257,258],{},[238,259,260],{},"@owdproject\u002Fcore",":",[263,264,265,319],"ul",{},[266,267,268,273,274,279,280],"li",{},[227,269,270],{},[238,271,272],{},"packages\u002Fcore\u002Fruntime\u002Fdialogs\u002FdesktopDialogProvider.ts"," — ",[227,275,276],{},[238,277,278],{},"DesktopDialogProvider",":\n",[263,281,282,295,307],{},[266,283,284,289,290],{},[227,285,286],{},[238,287,288],{},"confirm(options)"," → ",[227,291,292],{},[238,293,294],{},"Promise\u003Cboolean>",[266,296,297,289,302],{},[227,298,299],{},[238,300,301],{},"alert(message, options?)",[227,303,304],{},[238,305,306],{},"Promise\u003Cvoid>",[266,308,309,289,314],{},[227,310,311],{},[238,312,313],{},"prompt(message, defaultValue?)",[227,315,316],{},[238,317,318],{},"Promise\u003Cstring | null>",[266,320,321,322],{},"Injection key: ",[227,323,324],{},[238,325,326],{},"DESKTOP_DIALOG_PROVIDER_KEY",[249,328,330],{"id":329},"using-the-api","Using the API",[332,333,338],"pre",{"className":334,"code":335,"language":336,"meta":337,"style":337},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { useDesktopDialogs } from '@owdproject\u002Fcore\u002Fruntime\u002Fcomposables\u002FuseDesktopDialogs'\n\nconst dialogs = useDesktopDialogs()\nconst ok = await dialogs.confirm({\n  title: 'Delete items',\n  message: 'Send 3 items to the Recycle Bin?',\n  acceptLabel: 'Yes',\n  rejectLabel: 'No',\n})\n","ts","",[238,339,340,373,380,399,427,447,464,481,498],{"__ignoreMap":337},[341,342,345,349,353,357,360,363,366,370],"span",{"class":343,"line":344},"line",1,[341,346,348],{"class":347},"s7zQu","import",[341,350,352],{"class":351},"sMK4o"," {",[341,354,356],{"class":355},"sTEyZ"," useDesktopDialogs",[341,358,359],{"class":351}," }",[341,361,362],{"class":347}," from",[341,364,365],{"class":351}," '",[341,367,369],{"class":368},"sfazB","@owdproject\u002Fcore\u002Fruntime\u002Fcomposables\u002FuseDesktopDialogs",[341,371,372],{"class":351},"'\n",[341,374,376],{"class":343,"line":375},2,[341,377,379],{"emptyLinePlaceholder":378},true,"\n",[341,381,383,387,390,393,396],{"class":343,"line":382},3,[341,384,386],{"class":385},"spNyl","const",[341,388,389],{"class":355}," dialogs ",[341,391,392],{"class":351},"=",[341,394,356],{"class":395},"s2Zo4",[341,397,398],{"class":355},"()\n",[341,400,402,404,407,409,412,415,418,421,424],{"class":343,"line":401},4,[341,403,386],{"class":385},[341,405,406],{"class":355}," ok ",[341,408,392],{"class":351},[341,410,411],{"class":347}," await",[341,413,414],{"class":355}," dialogs",[341,416,417],{"class":351},".",[341,419,420],{"class":395},"confirm",[341,422,423],{"class":355},"(",[341,425,426],{"class":351},"{\n",[341,428,430,434,436,438,441,444],{"class":343,"line":429},5,[341,431,433],{"class":432},"swJcz","  title",[341,435,261],{"class":351},[341,437,365],{"class":351},[341,439,440],{"class":368},"Delete items",[341,442,443],{"class":351},"'",[341,445,446],{"class":351},",\n",[341,448,450,453,455,457,460,462],{"class":343,"line":449},6,[341,451,452],{"class":432},"  message",[341,454,261],{"class":351},[341,456,365],{"class":351},[341,458,459],{"class":368},"Send 3 items to the Recycle Bin?",[341,461,443],{"class":351},[341,463,446],{"class":351},[341,465,467,470,472,474,477,479],{"class":343,"line":466},7,[341,468,469],{"class":432},"  acceptLabel",[341,471,261],{"class":351},[341,473,365],{"class":351},[341,475,476],{"class":368},"Yes",[341,478,443],{"class":351},[341,480,446],{"class":351},[341,482,484,487,489,491,494,496],{"class":343,"line":483},8,[341,485,486],{"class":432},"  rejectLabel",[341,488,261],{"class":351},[341,490,365],{"class":351},[341,492,493],{"class":368},"No",[341,495,443],{"class":351},[341,497,446],{"class":351},[341,499,501,504],{"class":343,"line":500},9,[341,502,503],{"class":351},"}",[341,505,506],{"class":355},")\n",[223,508,509,510,513,514,519,520,525,526,530,531,536],{},"Pass ",[227,511,512],{},"already translated"," strings from ",[227,515,516],{},[238,517,518],{},"vue-i18n",". Optional ",[227,521,522],{},[238,523,524],{},"extras"," on ",[227,527,528],{},[238,529,420],{}," carries theme-specific payloads (e.g. Win95 delete dialog ",[227,532,533],{},[238,534,535],{},"{ toTrash: boolean }",").",[249,538,540],{"id":539},"fallback","Fallback",[223,542,543,544,549,550,554,555,554,560,565,566,571,572,417],{},"If no theme provider is registered, ",[227,545,546],{},[238,547,548],{},"useDesktopDialogs"," falls back to ",[227,551,552],{},[238,553,246],{}," \u002F ",[227,556,557],{},[238,558,559],{},"alert",[227,561,562],{},[238,563,564],{},"prompt",". On the server, confirm resolves to ",[227,567,568],{},[238,569,570],{},"false"," and prompt to ",[227,573,574],{},[238,575,576],{},"null",[249,578,580,581,584],{"id":579},"primevue-implementation-kit-primevue","PrimeVue implementation (",[238,582,583],{},"kit-primevue",")",[223,586,587,588,593],{},"Demo themes install ",[227,589,590],{},[238,591,592],{},"@owdproject\u002Fkit-primevue",", which:",[595,596,597,605],"ol",{},[266,598,599,600],{},"Registers ",[227,601,602],{},[238,603,604],{},"@primevue\u002Fnuxt-module",[266,606,607,608,611,612],{},"Runs a client plugin that **",[238,609,610],{},"provide","**s ",[227,613,614],{},[238,615,616],{},"createDesktopDialogs(useConfirm())",[332,618,620],{"className":334,"code":619,"language":336,"meta":337,"style":337},"await installModule('@owdproject\u002Fkit-primevue')\n",[238,621,622],{"__ignoreMap":337},[341,623,624,627,630,632,634,636,638],{"class":343,"line":344},[341,625,626],{"class":347},"await",[341,628,629],{"class":395}," installModule",[341,631,423],{"class":355},[341,633,443],{"class":351},[341,635,592],{"class":368},[341,637,443],{"class":351},[341,639,506],{"class":355},[223,641,642,643,648,649,652,653,656],{},"Themes mount ",[227,644,645],{},[238,646,647],{},"\u003CConfirmDialog \u002F>"," groups (",[238,650,651],{},"delete",", ",[238,654,655],{},"about",", …) with their own templates\u002FCSS.",[223,658,659],{},"Explicit imports (optional):",[332,661,663],{"className":334,"code":662,"language":336,"meta":337,"style":337},"import { DESKTOP_DIALOG_PROVIDER_KEY } from '@owdproject\u002Fcore\u002Fruntime\u002Fconstants\u002FdesktopShellKeys'\nimport { createDesktopDialogs } from '@owdproject\u002Fkit-primevue\u002Fruntime\u002Fdialogs\u002FcreateDesktopDialogs'\n",[238,664,665,685],{"__ignoreMap":337},[341,666,667,669,671,674,676,678,680,683],{"class":343,"line":344},[341,668,348],{"class":347},[341,670,352],{"class":351},[341,672,673],{"class":355}," DESKTOP_DIALOG_PROVIDER_KEY",[341,675,359],{"class":351},[341,677,362],{"class":347},[341,679,365],{"class":351},[341,681,682],{"class":368},"@owdproject\u002Fcore\u002Fruntime\u002Fconstants\u002FdesktopShellKeys",[341,684,372],{"class":351},[341,686,687,689,691,694,696,698,700,703],{"class":343,"line":375},[341,688,348],{"class":347},[341,690,352],{"class":351},[341,692,693],{"class":355}," createDesktopDialogs",[341,695,359],{"class":351},[341,697,362],{"class":347},[341,699,365],{"class":351},[341,701,702],{"class":368},"@owdproject\u002Fkit-primevue\u002Fruntime\u002Fdialogs\u002FcreateDesktopDialogs",[341,704,372],{"class":351},[223,706,707,708,417],{},"Custom PV themes can replace the plugin and still implement ",[227,709,710],{},[238,711,278],{},[249,713,715],{"id":714},"non-primevue-themes","Non-PrimeVue themes",[223,717,718,719,723,724,727,728,732,733,737,738,741,742,417],{},"Implement ",[227,720,721],{},[238,722,278],{}," (Vuetify, Nuxt UI, native ",[238,725,726],{},"\u003Cdialog>",", …) and ",[227,729,730],{},[238,731,610],{}," it on ",[227,734,735],{},[238,736,326],{}," in a client plugin. Do ",[227,739,740],{},"not"," require ",[227,743,744],{},[238,745,583],{},[249,747,749],{"id":748},"related","Related",[263,751,752,765,771,775],{},[266,753,754,759,760,764],{},[227,755,756],{},[238,757,758],{},"useExplorerFsOperations"," (core) calls ",[227,761,762],{},[238,763,548],{}," for file overwrite prompts.",[266,766,767,770],{},[768,769,197],"a",{"href":198}," — separate from dialogs.",[266,772,773],{},[768,774,37],{"href":38},[266,776,777],{},[768,778,94],{"href":95},[780,781,782],"style",{},"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 .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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);}",{"title":337,"searchDepth":375,"depth":375,"links":784},[785,786,787,788,790,791],{"id":251,"depth":375,"text":252},{"id":329,"depth":375,"text":330},{"id":539,"depth":375,"text":540},{"id":579,"depth":375,"text":789},"PrimeVue implementation (kit-primevue)",{"id":714,"depth":375,"text":715},{"id":748,"depth":375,"text":749},"Shared alert, confirm, and prompt API in core; PrimeVue implementation in kit-primevue.","md",null,{},{"icon":190},{"title":187,"description":792},"iS8Adxo2HK1QeWaO9Z-KbAnQkHJGSI9ZVQMPNfVYsP4",[800,802],{"title":182,"path":183,"stem":184,"description":801,"icon":185,"children":-1},"DesktopCore, DesktopWindow, and application rendering primitives.",{"title":192,"path":193,"stem":194,"description":803,"icon":195,"children":-1},"Public API surface of @owdproject\u002Fcore for themes, apps, and extension modules.",1782171657228]