[{"data":1,"prerenderedAt":660},["ShallowReactive",2],{"navigation_docs":3,"-internals-boot-sequence":217,"-internals-boot-sequence-surround":656},[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":172,"body":219,"description":649,"extension":650,"links":651,"meta":652,"navigation":653,"path":173,"seo":654,"stem":174,"__hash__":655},"docs\u002F7.internals\u002F1.boot-sequence.md",{"type":220,"value":221,"toc":645},"minimark",[222,234,390,397,402,411,542,551,555,558,631,641],[223,224,225,226,233],"p",{},"When Nuxt loads ",[227,228,229],"strong",{},[230,231,232],"code",{},"@owdproject\u002Fcore",", the engine runs roughly this sequence:",[235,236,237,261,295,329,341,371,377],"ol",{},[238,239,240,243,244,248,249,254,255,260],"li",{},[227,241,242],{},"Resolve config path"," — ",[227,245,246],{},[230,247,147],{},", or legacy ",[227,250,251],{},[230,252,253],{},"owd.config.ts",", from the desktop ",[227,256,257],{},[230,258,259],{},"rootDir",".",[238,262,263,243,266,271,272,271,277,282,283,288,289,294],{},[227,264,265],{},"Validate",[227,267,268],{},[230,269,270],{},"theme",", ",[227,273,274],{},[230,275,276],{},"apps",[227,278,279],{},[230,280,281],{},"modules"," shapes; warn on keys that look like Nuxt options (not on extension keys such as ",[227,284,285],{},[230,286,287],{},"fs"," \u002F ",[227,290,291],{},[230,292,293],{},"terminal",").",[238,296,297,300,301,305,306,311,312,317,318,323,324,260],{},[227,298,299],{},"Merge full config"," — entire ",[227,302,303],{},[230,304,147],{}," export → ",[227,307,308],{},[230,309,310],{},"runtimeConfig.public.desktop"," (+ ",[227,313,314],{},[230,315,316],{},"coreVersion","); same reference on ",[227,319,320],{},[230,321,322],{},"appConfig.desktop",". Never spread onto ",[227,325,326],{},[230,327,328],{},"_nuxt.options",[238,330,331,334,335,340],{},[227,332,333],{},"Install Pinia"," — required before theme\u002Fmodules\u002Fapps that use stores or ",[227,336,337],{},[230,338,339],{},"defineDesktopApp"," queues.",[238,342,343,349],{},[227,344,345,348],{},[230,346,347],{},"installDesktopPackage"," in order:",[350,351,352,358,365],"ul",{},[238,353,354],{},[227,355,356],{},[230,357,270],{},[238,359,360,361],{},"each entry in ",[227,362,363],{},[230,364,281],{},[238,366,360,367],{},[227,368,369],{},[230,370,276],{},[238,372,373,376],{},[227,374,375],{},"Shared stack"," — Nuxt Fonts, Nuxt Icon, Pinia, VueUse, i18n, etc. (as configured by core).",[238,378,379,382,383,271,386,389],{},[227,380,381],{},"Register globals"," — Core components (",[230,384,385],{},"DesktopCore",[230,387,388],{},"DesktopWindow",", etc.), composables, stores; client plugins (resize, app registration flush).",[223,391,392,393,396],{},"If step 1–2 fails, bootstrap ",[227,394,395],{},"stops"," (fail-fast).",[398,399,401],"h2",{"id":400},"theme-module-hook","Theme module hook",[223,403,404,405,410],{},"When the theme’s ",[227,406,407],{},[230,408,409],{},"setup"," runs, core has already written user shell config. The theme typically:",[412,413,418],"pre",{"className":414,"code":415,"language":416,"meta":417,"style":417},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defu } from 'defu'\n\nnuxt.options.runtimeConfig.public.desktop = defu(\n  nuxt.options.runtimeConfig.public.desktop ?? {},\n  options, \u002F\u002F module defaults\n)\n","ts","",[230,419,420,453,460,495,523,536],{"__ignoreMap":417},[421,422,425,429,433,437,440,443,446,450],"span",{"class":423,"line":424},"line",1,[421,426,428],{"class":427},"s7zQu","import",[421,430,432],{"class":431},"sMK4o"," {",[421,434,436],{"class":435},"sTEyZ"," defu",[421,438,439],{"class":431}," }",[421,441,442],{"class":427}," from",[421,444,445],{"class":431}," '",[421,447,449],{"class":448},"sfazB","defu",[421,451,452],{"class":431},"'\n",[421,454,456],{"class":423,"line":455},2,[421,457,459],{"emptyLinePlaceholder":458},true,"\n",[421,461,463,466,468,471,473,476,478,481,483,486,489,492],{"class":423,"line":462},3,[421,464,465],{"class":435},"nuxt",[421,467,260],{"class":431},[421,469,470],{"class":435},"options",[421,472,260],{"class":431},[421,474,475],{"class":435},"runtimeConfig",[421,477,260],{"class":431},[421,479,480],{"class":435},"public",[421,482,260],{"class":431},[421,484,485],{"class":435},"desktop ",[421,487,488],{"class":431},"=",[421,490,436],{"class":491},"s2Zo4",[421,493,494],{"class":435},"(\n",[421,496,498,501,503,505,507,509,511,513,515,517,520],{"class":423,"line":497},4,[421,499,500],{"class":435},"  nuxt",[421,502,260],{"class":431},[421,504,470],{"class":435},[421,506,260],{"class":431},[421,508,475],{"class":435},[421,510,260],{"class":431},[421,512,480],{"class":435},[421,514,260],{"class":431},[421,516,485],{"class":435},[421,518,519],{"class":431},"??",[421,521,522],{"class":431}," {},\n",[421,524,526,529,532],{"class":423,"line":525},5,[421,527,528],{"class":435},"  options",[421,530,531],{"class":431},",",[421,533,535],{"class":534},"sHwdD"," \u002F\u002F module defaults\n",[421,537,539],{"class":423,"line":538},6,[421,540,541],{"class":435},")\n",[223,543,544,545,550],{},"User values win; theme ",[227,546,547],{},[230,548,549],{},"defaults"," fill gaps.",[398,552,554],{"id":553},"conditional-explorer","Conditional explorer",[223,556,557],{},"Themes often gate extra installs:",[412,559,561],{"className":414,"code":560,"language":416,"meta":417,"style":417},"if (nuxt.options.modules.includes('@owdproject\u002Fmodule-fs')) {\n  await installModule('@owdproject\u002Fkit-explorer')\n  \u002F\u002F theme explorer plugins \u002F components\n}\n",[230,562,563,601,621,626],{"__ignoreMap":417},[421,564,565,568,571,573,575,577,579,581,584,587,590,593,595,598],{"class":423,"line":424},[421,566,567],{"class":427},"if",[421,569,570],{"class":435}," (nuxt",[421,572,260],{"class":431},[421,574,470],{"class":435},[421,576,260],{"class":431},[421,578,281],{"class":435},[421,580,260],{"class":431},[421,582,583],{"class":491},"includes",[421,585,586],{"class":435},"(",[421,588,589],{"class":431},"'",[421,591,592],{"class":448},"@owdproject\u002Fmodule-fs",[421,594,589],{"class":431},[421,596,597],{"class":435},")) ",[421,599,600],{"class":431},"{\n",[421,602,603,606,609,612,614,617,619],{"class":423,"line":455},[421,604,605],{"class":427},"  await",[421,607,608],{"class":491}," installModule",[421,610,586],{"class":611},"swJcz",[421,613,589],{"class":431},[421,615,616],{"class":448},"@owdproject\u002Fkit-explorer",[421,618,589],{"class":431},[421,620,541],{"class":611},[421,622,623],{"class":423,"line":462},[421,624,625],{"class":534},"  \u002F\u002F theme explorer plugins \u002F components\n",[421,627,628],{"class":423,"line":497},[421,629,630],{"class":431},"}\n",[223,632,633,634,637,638,260],{},"More detail: ",[635,636,192],"a",{"href":193}," · ",[635,639,640],{"href":33},"Architecture overview",[642,643,644],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":417,"searchDepth":455,"depth":455,"links":646},[647,648],{"id":400,"depth":455,"text":401},{"id":553,"depth":455,"text":554},"Order of operations when @owdproject\u002Fcore loads.","md",null,{},{"icon":175},{"title":172,"description":649},"G-JjeRSoPT1alqiBse88ySSpjJYBOJIgPd9N41AtljE",[657,658],{"title":162,"path":163,"stem":164,"description":417,"children":-1},{"title":177,"path":178,"stem":179,"description":659,"icon":180,"children":-1},"Where state lives and which APIs themes and apps should use.",1782171656880]