[{"data":1,"prerenderedAt":410},["ShallowReactive",2],{"navigation_docs":3,"-apps-package-layout":217,"-apps-package-layout-surround":405},[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":52,"body":219,"description":398,"extension":399,"links":400,"meta":401,"navigation":402,"path":53,"seo":403,"stem":54,"__hash__":404},"docs\u002F4.apps\u002F2.package-layout.md",{"type":220,"value":221,"toc":389},"minimark",[222,234,239,249,257,342,349,362,365,379],[223,224,225,226,233],"p",{},"Example aligned with ",[227,228,229],"strong",{},[230,231,232],"code",{},"app-about"," and common Nuxt module practice.",[235,236,238],"h2",{"id":237},"typical-tree","Typical tree",[240,241,247],"pre",{"className":242,"code":244,"language":245,"meta":246},[243],"language-text","@owdproject\u002Fmy-app\u002F\n├── package.json          # exports → dist\u002Fmodule.mjs, prepack \u002F dev:prepare scripts\n├── tsconfig.json\n├── project.json          # optional Nx target\n├── src\u002F\n│   ├── module.ts         # defineNuxtModule\n│   └── runtime\u002F\n│       ├── plugin.ts     # defineDesktopApp\n│       ├── app.config.ts # ApplicationConfig\n│       └── components\u002F\n│           └── Window\u002F\n│               └── WindowMain.vue\n├── playground\u002F           # minimal Nuxt app to develop the module\n│   ├── nuxt.config.ts    # modules: ['@owdproject\u002Fcore']\n│   ├── desktop.config.ts # theme + apps + modules\n│   ├── package.json      # must list every desktop.config dependency\n│   └── app\u002Fplugins\u002F      # optional launch-*.client.ts (dev auto-open)\n└── dist\u002F                 # from nuxt-module-build (omit from git if CI-only policy)\n","text","",[230,248,244],{"__ignoreMap":246},[235,250,252,253,256],{"id":251},"key-packagejson-fields","Key ",[230,254,255],{},"package.json"," fields",[258,259,260,268,284,296,314],"ul",{},[261,262,263],"li",{},[227,264,265],{},[230,266,267],{},"\"type\": \"module\"",[261,269,270,275,276,279,280,283],{},[227,271,272],{},[230,273,274],{},"exports",": point to ",[230,277,278],{},".\u002Fdist\u002Fmodule.mjs"," and generated types in ",[230,281,282],{},"dist\u002Ftypes.d.mts"," if applicable.",[261,285,286,291,292,295],{},[227,287,288],{},[230,289,290],{},"peerDependencies",": ",[230,293,294],{},"@owdproject\u002Fcore"," in a supported range.",[261,297,298,291,303,306,307,306,310,313],{},[227,299,300],{},[230,301,302],{},"devDependencies",[230,304,305],{},"nuxt",", ",[230,308,309],{},"@nuxt\u002Fmodule-builder",[230,311,312],{},"@nuxt\u002Fschema",", etc.",[261,315,316,319,320],{},[227,317,318],{},"Scripts",":\n",[258,321,322,332],{},[261,323,324,327,328,331],{},[230,325,326],{},"dev:prepare"," — stub build + ",[230,329,330],{},"nuxt prepare"," for the playground (daily dev).",[261,333,334,337,338,341],{},[230,335,336],{},"prepack"," — release build of the module (",[230,339,340],{},"nuxt-module-build build",").",[235,343,345,346],{"id":344},"why-src","Why ",[230,347,348],{},"src\u002F",[223,350,351,352,355,356,361],{},"Separates ",[227,353,354],{},"module source"," from the ",[227,357,358],{},[230,359,360],{},"dist\u002F"," artifact required by consumers installing from npm without TypeScript sources.",[235,363,75],{"id":364},"playground",[223,366,367,368,371,372,374,375,378],{},"A separate ",[227,369,370],{},"Nuxt"," folder that depends on ",[230,373,294],{}," and your in-development module: test windows and hot-reload without booting the full ",[230,376,377],{},"client\u002Fdesktop"," monorepo.",[223,380,381,382,385,386,388],{},"See ",[383,384,75],"a",{"href":76}," and ",[383,387,56],{"href":57},".",{"title":246,"searchDepth":390,"depth":390,"links":391},2,[392,393,395,397],{"id":237,"depth":390,"text":238},{"id":251,"depth":390,"text":394},"Key package.json fields",{"id":344,"depth":390,"text":396},"Why src\u002F",{"id":364,"depth":390,"text":75},"Recommended folder layout for an OWD app module (src, playground, dist).","md",null,{},{"icon":23},{"title":52,"description":398},"Rki2vFN6Kvt-9GNhx2S_EKLkOxxBTYkpjwNwdga_nCI",[406,408],{"title":5,"path":48,"stem":49,"description":407,"icon":50,"children":-1},"What an Open Web Desktop application is and how it plugs into the core.",{"title":56,"path":57,"stem":58,"description":409,"icon":59,"children":-1},"End-to-end guide to building an OWD app module, from scaffold to desktop integration.",1782171655060]