[{"data":1,"prerenderedAt":1699},["ShallowReactive",2],{"navigation_docs":3,"-apps-build-and-publish":217,"-apps-build-and-publish-surround":1694},[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":80,"body":219,"description":1687,"extension":1688,"links":1689,"meta":1690,"navigation":1691,"path":81,"seo":1692,"stem":82,"__hash__":1693},"docs\u002F4.apps\u002F8.build-and-publish.md",{"type":220,"value":221,"toc":1671},"minimark",[222,227,231,274,313,317,380,384,400,404,439,472,475,501,512,516,532,547,642,651,655,663,667,670,675,850,854,861,868,1358,1362,1474,1477,1481,1484,1585,1589,1594,1648,1652,1659,1667],[223,224,226],"h2",{"id":225},"local-build","Local build",[228,229,230],"p",{},"From the app package root:",[232,233,238],"pre",{"className":234,"code":235,"language":236,"meta":237,"style":237},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm run prepack\n# or, for stub during development:\npnpm run dev:prepare\n","bash","",[239,240,241,257,264],"code",{"__ignoreMap":237},[242,243,246,250,254],"span",{"class":244,"line":245},"line",1,[242,247,249],{"class":248},"sBMFI","pnpm",[242,251,253],{"class":252},"sfazB"," run",[242,255,256],{"class":252}," prepack\n",[242,258,260],{"class":244,"line":259},2,[242,261,263],{"class":262},"sHwdD","# or, for stub during development:\n",[242,265,267,269,271],{"class":244,"line":266},3,[242,268,249],{"class":248},[242,270,253],{"class":252},[242,272,273],{"class":252}," dev:prepare\n",[275,276,277,299],"ul",{},[278,279,280,286,287,292,293,298],"li",{},[281,282,283],"strong",{},[239,284,285],{},"prepack"," runs ",[281,288,289],{},[239,290,291],{},"nuxt-module-build build"," → ",[281,294,295],{},[239,296,297],{},"dist\u002Fmodule.mjs"," + types.",[278,300,301,306,307,312],{},[281,302,303],{},[239,304,305],{},"dev:prepare"," — stub + playground ",[281,308,309],{},[239,310,311],{},"nuxt prepare"," for daily dev.",[223,314,316],{"id":315},"what-to-publish","What to publish",[275,318,319,339,370],{},[278,320,321,326,327,332,333,338],{},[281,322,323],{},[239,324,325],{},"files",": typically ",[281,328,329],{},[239,330,331],{},"[\"dist\"]"," (or ",[281,334,335],{},[239,336,337],{},"[\"dist\", \"src\"]"," if you ship development exports — match your theme\u002Fapp convention).",[278,340,341,346,347,352,353,358,359,364,365,369],{},[281,342,343],{},[239,344,345],{},"README",": install via ",[281,348,349],{},[239,350,351],{},"desktop add my-app",", ",[281,354,355],{},[239,356,357],{},"peerDependencies"," on ",[281,360,361],{},[239,362,363],{},"@owdproject\u002Fcore",", minimal ",[281,366,367],{},[239,368,147],{}," snippet.",[278,371,372,375,376,379],{},[281,373,374],{},"Do not publish"," ",[239,377,378],{},"playground\u002F"," launch plugins — they are dev-only.",[223,381,383],{"id":382},"versioning","Versioning",[228,385,386,387,390,391,292,396,399],{},"Follow ",[281,388,389],{},"SemVer",". Breaking changes to public module exports or ",[281,392,393],{},[239,394,395],{},"ApplicationConfig",[281,397,398],{},"major"," bump + changelog.",[223,401,403],{"id":402},"consuming-from-the-client-monorepo","Consuming from the client monorepo",[232,405,409],{"className":406,"code":407,"language":408,"meta":237,"style":237},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F desktop\u002Fpackage.json\n\"@owdproject\u002Fmy-app\": \"workspace:*\"\n","json",[239,410,411,416],{"__ignoreMap":237},[242,412,413],{"class":244,"line":245},[242,414,415],{"class":262},"\u002F\u002F desktop\u002Fpackage.json\n",[242,417,418,422,425,427,431,433,436],{"class":244,"line":259},[242,419,421],{"class":420},"sMK4o","\"",[242,423,424],{"class":252},"@owdproject\u002Fmy-app",[242,426,421],{"class":420},[242,428,430],{"class":429},"sTEyZ",": ",[242,432,421],{"class":420},[242,434,435],{"class":252},"workspace:*",[242,437,438],{"class":420},"\"\n",[232,440,444],{"className":441,"code":442,"language":443,"meta":237,"style":237},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F desktop.config.ts\napps: ['@owdproject\u002Fmy-app']\n","ts",[239,445,446,451],{"__ignoreMap":237},[242,447,448],{"class":244,"line":245},[242,449,450],{"class":262},"\u002F\u002F desktop.config.ts\n",[242,452,453,456,459,462,465,467,469],{"class":244,"line":259},[242,454,455],{"class":248},"apps",[242,457,458],{"class":420},":",[242,460,461],{"class":429}," [",[242,463,464],{"class":420},"'",[242,466,424],{"class":252},[242,468,464],{"class":420},[242,470,471],{"class":429},"]\n",[228,473,474],{},"After editing app source:",[232,476,478],{"className":234,"code":477,"language":236,"meta":237,"style":237},"pnpm run prepare:apps   # or app’s dev:prepare\npnpm run dev\n",[239,479,480,492],{"__ignoreMap":237},[242,481,482,484,486,489],{"class":244,"line":245},[242,483,249],{"class":248},[242,485,253],{"class":252},[242,487,488],{"class":252}," prepare:apps",[242,490,491],{"class":262},"   # or app’s dev:prepare\n",[242,493,494,496,498],{"class":244,"line":259},[242,495,249],{"class":248},[242,497,253],{"class":252},[242,499,500],{"class":252}," dev\n",[228,502,503,504,507,508,511],{},"Standalone repos should use ",[281,505,506],{},"npm semver"," on core — see ",[509,510,137],"a",{"href":138},".",[223,513,515],{"id":514},"validation","Validation",[232,517,519],{"className":234,"code":518,"language":236,"meta":237,"style":237},"desktop validate .\n",[239,520,521],{"__ignoreMap":237},[242,522,523,526,529],{"class":244,"line":245},[242,524,525],{"class":248},"desktop",[242,527,528],{"class":252}," validate",[242,530,531],{"class":252}," .\n",[228,533,534,535,538,539,542,543,546],{},"Runs layout and migration checks before publish. Fix ",[281,536,537],{},"errors"," before ",[239,540,541],{},"npm publish","; ",[281,544,545],{},"warnings"," are recommended (launch plugin, CI, window centering).",[548,549,550,563],"table",{},[551,552,553],"thead",{},[554,555,556,560],"tr",{},[557,558,559],"th",{},"Area",[557,561,562],{},"Examples",[564,565,566,584,598,613,628],"tbody",{},[554,567,568,572],{},[569,570,571],"td",{},"Structure",[569,573,574,352,577,580,581],{},[239,575,576],{},"src\u002Fmodule.ts",[239,578,579],{},"src\u002Fruntime\u002Fapp.config.ts",", no duplicate root ",[239,582,583],{},"runtime\u002F",[554,585,586,589],{},[569,587,588],{},"Plugin contract",[569,590,591,352,594,597],{},[239,592,593],{},"defineDesktopApp",[239,595,596],{},"desktop-*-register"," name, server guard",[554,599,600,602],{},[569,601,75],{},[569,603,604,607,608,352,610],{},[239,605,606],{},"package.json"," depends on your package + ",[239,609,363],{},[239,611,612],{},"ssr: false",[554,614,615,618],{},[569,616,617],{},"Launch (optional)",[569,619,620,623,624,627],{},[239,621,622],{},"autoStartPlaygroundApps",", no ",[239,625,626],{},"import.meta.dev"," guard",[554,629,630,633],{},[569,631,632],{},"CI",[569,634,635,636,639,640],{},"client checkout overlay; avoid ",[239,637,638],{},"nypm"," alone with ",[239,641,435],{},[228,643,644,645,511],{},"Full checklist: ",[509,646,650],{"href":647,"rel":648},"https:\u002F\u002Fgithub.com\u002Fowdproject\u002Fcore\u002Fblob\u002Fmain\u002FPLAYGROUND.md",[649],"nofollow","core PLAYGROUND.md",[223,652,654],{"id":653},"discovery","Discovery",[228,656,657,658,511],{},"Tag the GitHub repository ",[281,659,660],{},[239,661,662],{},"owd-apps",[223,664,666],{"id":665},"publishing-checklist","Publishing Checklist",[228,668,669],{},"Follow this checklist to build, configure, and release your OWD application.",[671,672,674],"h3",{"id":673},"_1-preparation","1. Preparation",[275,676,677,816,832],{},[278,678,679,682,683,686,687,690,691,694,695,698,699,702,703,757,758,760,761],{},[281,680,681],{},"Locales File Format",": Do not use raw ",[239,684,685],{},".json"," files inside ",[239,688,689],{},"src\u002Fi18n\u002Flocales\u002F",". The Nuxt Module Builder does not copy JSON assets to the ",[239,692,693],{},"dist"," directory by default. Instead, use ",[239,696,697],{},".ts"," files (e.g., ",[239,700,701],{},"en.ts",") that export a default configuration:\n",[232,704,706],{"className":441,"code":705,"language":443,"meta":237,"style":237},"export default {\n  window: {\n    close: \"Close\"\n  }\n}\n",[239,707,708,720,730,745,751],{"__ignoreMap":237},[242,709,710,714,717],{"class":244,"line":245},[242,711,713],{"class":712},"s7zQu","export",[242,715,716],{"class":712}," default",[242,718,719],{"class":420}," {\n",[242,721,722,726,728],{"class":244,"line":259},[242,723,725],{"class":724},"swJcz","  window",[242,727,458],{"class":420},[242,729,719],{"class":420},[242,731,732,735,737,740,743],{"class":244,"line":266},[242,733,734],{"class":724},"    close",[242,736,458],{"class":420},[242,738,739],{"class":420}," \"",[242,741,742],{"class":252},"Close",[242,744,438],{"class":420},[242,746,748],{"class":244,"line":747},4,[242,749,750],{"class":420},"  }\n",[242,752,754],{"class":244,"line":753},5,[242,755,756],{"class":420},"}\n","\nRegister them in ",[239,759,576],{}," like this:\n",[232,762,764],{"className":441,"code":763,"language":443,"meta":237,"style":237},"locales: [\n  { code: 'en', file: 'locales\u002Fen.ts' }\n]\n",[239,765,766,776,812],{"__ignoreMap":237},[242,767,768,771,773],{"class":244,"line":245},[242,769,770],{"class":248},"locales",[242,772,458],{"class":420},[242,774,775],{"class":429}," [\n",[242,777,778,781,784,786,789,792,794,797,800,802,804,807,809],{"class":244,"line":259},[242,779,780],{"class":420},"  {",[242,782,783],{"class":724}," code",[242,785,458],{"class":420},[242,787,788],{"class":420}," '",[242,790,791],{"class":252},"en",[242,793,464],{"class":420},[242,795,796],{"class":420},",",[242,798,799],{"class":724}," file",[242,801,458],{"class":420},[242,803,788],{"class":420},[242,805,806],{"class":252},"locales\u002Fen.ts",[242,808,464],{"class":420},[242,810,811],{"class":420}," }\n",[242,813,814],{"class":244,"line":266},[242,815,471],{"class":429},[278,817,818,821,822,824,825,827,828,831],{},[281,819,820],{},"Peer Dependencies",": Set ",[239,823,363],{}," in ",[239,826,357],{}," to the latest compatible version (e.g. ",[239,829,830],{},"^3.4.0",").",[278,833,834,837,838,841,842,845,846,849],{},[281,835,836],{},"Workspace References",": Keep ",[239,839,840],{},"\"workspace:*\""," dependencies inside ",[239,843,844],{},"playground\u002Fpackage.json"," for development. ",[239,847,848],{},"pnpm publish"," will automatically rewrite them to matching published versions upon release.",[671,851,853],{"id":852},"_2-playground-ci-github-pages-workflow","2. Playground CI (GitHub Pages) Workflow",[228,855,856,857,860],{},"Since the client repository ignores other apps\u002Fthemes by default, the playground CI workflow must clone the parent ",[239,858,859],{},"client"," repository and checkout any necessary workspace packages before overlaying the module itself.",[228,862,863,864,867],{},"Update ",[239,865,866],{},".github\u002Fworkflows\u002Fpages.yml"," in your package:",[232,869,873],{"className":870,"code":871,"language":872,"meta":237,"style":237},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","jobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      # 1. Clone the parent client repo with recursive submodules (core, cli, nx)\n      - name: Checkout OWD client (workspace deps)\n        uses: actions\u002Fcheckout@v4\n        with:\n          repository: owdproject\u002Fclient\n          path: client\n          submodules: recursive\n\n      # 2. Checkout any other required workspace packages\n      - name: Checkout kit-tailwind\n        uses: actions\u002Fcheckout@v4\n        with:\n          repository: owdproject\u002Fkit-tailwind\n          path: client\u002Fpackages\u002Fkit-tailwind\n\n      - name: Checkout kit-primevue\n        uses: actions\u002Fcheckout@v4\n        with:\n          repository: owdproject\u002Fkit-primevue\n          path: client\u002Fpackages\u002Fkit-primevue\n\n      - name: Checkout module-fs\n        uses: actions\u002Fcheckout@v4\n        with:\n          repository: owdproject\u002Fmodule-fs\n          path: client\u002Fpackages\u002Fmodule-fs\n\n      # 3. Overlay the current module repository\n      - name: Overlay this repo\n        uses: actions\u002Fcheckout@v4\n        with:\n          path: client\u002Fapps\u002Fapp-about # adjust path depending on app\u002Ftheme\n\n      # 4. Install & Generate\n      - uses: actions\u002Fsetup-node@v4\n        with:\n          node-version: 22\n      - run: npm i -g --force corepack@latest && corepack enable\n\n      - name: Install monorepo dependencies\n        working-directory: client\n        run: pnpm install --no-frozen-lockfile\n\n      - name: Prepare and Generate\n        working-directory: client\u002Fapps\u002Fapp-about\n        run: |\n          pnpm run dev:prepare\n          pnpm run dev:generate\n        env:\n          NUXT_APP_BASE_URL: \u002Fapp-about\u002F\n","yaml",[239,874,875,883,890,900,907,912,926,937,945,956,967,978,985,991,1003,1012,1019,1029,1039,1044,1056,1065,1072,1082,1092,1097,1109,1118,1125,1135,1145,1150,1156,1168,1177,1184,1197,1202,1208,1221,1228,1240,1252,1257,1269,1279,1290,1295,1307,1317,1327,1333,1339,1347],{"__ignoreMap":237},[242,876,877,880],{"class":244,"line":245},[242,878,879],{"class":724},"jobs",[242,881,882],{"class":420},":\n",[242,884,885,888],{"class":244,"line":259},[242,886,887],{"class":724},"  build",[242,889,882],{"class":420},[242,891,892,895,897],{"class":244,"line":266},[242,893,894],{"class":724},"    runs-on",[242,896,458],{"class":420},[242,898,899],{"class":252}," ubuntu-latest\n",[242,901,902,905],{"class":244,"line":747},[242,903,904],{"class":724},"    steps",[242,906,882],{"class":420},[242,908,909],{"class":244,"line":753},[242,910,911],{"class":262},"      # 1. Clone the parent client repo with recursive submodules (core, cli, nx)\n",[242,913,915,918,921,923],{"class":244,"line":914},6,[242,916,917],{"class":420},"      -",[242,919,920],{"class":724}," name",[242,922,458],{"class":420},[242,924,925],{"class":252}," Checkout OWD client (workspace deps)\n",[242,927,929,932,934],{"class":244,"line":928},7,[242,930,931],{"class":724},"        uses",[242,933,458],{"class":420},[242,935,936],{"class":252}," actions\u002Fcheckout@v4\n",[242,938,940,943],{"class":244,"line":939},8,[242,941,942],{"class":724},"        with",[242,944,882],{"class":420},[242,946,948,951,953],{"class":244,"line":947},9,[242,949,950],{"class":724},"          repository",[242,952,458],{"class":420},[242,954,955],{"class":252}," owdproject\u002Fclient\n",[242,957,959,962,964],{"class":244,"line":958},10,[242,960,961],{"class":724},"          path",[242,963,458],{"class":420},[242,965,966],{"class":252}," client\n",[242,968,970,973,975],{"class":244,"line":969},11,[242,971,972],{"class":724},"          submodules",[242,974,458],{"class":420},[242,976,977],{"class":252}," recursive\n",[242,979,981],{"class":244,"line":980},12,[242,982,984],{"emptyLinePlaceholder":983},true,"\n",[242,986,988],{"class":244,"line":987},13,[242,989,990],{"class":262},"      # 2. Checkout any other required workspace packages\n",[242,992,994,996,998,1000],{"class":244,"line":993},14,[242,995,917],{"class":420},[242,997,920],{"class":724},[242,999,458],{"class":420},[242,1001,1002],{"class":252}," Checkout kit-tailwind\n",[242,1004,1006,1008,1010],{"class":244,"line":1005},15,[242,1007,931],{"class":724},[242,1009,458],{"class":420},[242,1011,936],{"class":252},[242,1013,1015,1017],{"class":244,"line":1014},16,[242,1016,942],{"class":724},[242,1018,882],{"class":420},[242,1020,1022,1024,1026],{"class":244,"line":1021},17,[242,1023,950],{"class":724},[242,1025,458],{"class":420},[242,1027,1028],{"class":252}," owdproject\u002Fkit-tailwind\n",[242,1030,1032,1034,1036],{"class":244,"line":1031},18,[242,1033,961],{"class":724},[242,1035,458],{"class":420},[242,1037,1038],{"class":252}," client\u002Fpackages\u002Fkit-tailwind\n",[242,1040,1042],{"class":244,"line":1041},19,[242,1043,984],{"emptyLinePlaceholder":983},[242,1045,1047,1049,1051,1053],{"class":244,"line":1046},20,[242,1048,917],{"class":420},[242,1050,920],{"class":724},[242,1052,458],{"class":420},[242,1054,1055],{"class":252}," Checkout kit-primevue\n",[242,1057,1059,1061,1063],{"class":244,"line":1058},21,[242,1060,931],{"class":724},[242,1062,458],{"class":420},[242,1064,936],{"class":252},[242,1066,1068,1070],{"class":244,"line":1067},22,[242,1069,942],{"class":724},[242,1071,882],{"class":420},[242,1073,1075,1077,1079],{"class":244,"line":1074},23,[242,1076,950],{"class":724},[242,1078,458],{"class":420},[242,1080,1081],{"class":252}," owdproject\u002Fkit-primevue\n",[242,1083,1085,1087,1089],{"class":244,"line":1084},24,[242,1086,961],{"class":724},[242,1088,458],{"class":420},[242,1090,1091],{"class":252}," client\u002Fpackages\u002Fkit-primevue\n",[242,1093,1095],{"class":244,"line":1094},25,[242,1096,984],{"emptyLinePlaceholder":983},[242,1098,1100,1102,1104,1106],{"class":244,"line":1099},26,[242,1101,917],{"class":420},[242,1103,920],{"class":724},[242,1105,458],{"class":420},[242,1107,1108],{"class":252}," Checkout module-fs\n",[242,1110,1112,1114,1116],{"class":244,"line":1111},27,[242,1113,931],{"class":724},[242,1115,458],{"class":420},[242,1117,936],{"class":252},[242,1119,1121,1123],{"class":244,"line":1120},28,[242,1122,942],{"class":724},[242,1124,882],{"class":420},[242,1126,1128,1130,1132],{"class":244,"line":1127},29,[242,1129,950],{"class":724},[242,1131,458],{"class":420},[242,1133,1134],{"class":252}," owdproject\u002Fmodule-fs\n",[242,1136,1138,1140,1142],{"class":244,"line":1137},30,[242,1139,961],{"class":724},[242,1141,458],{"class":420},[242,1143,1144],{"class":252}," client\u002Fpackages\u002Fmodule-fs\n",[242,1146,1148],{"class":244,"line":1147},31,[242,1149,984],{"emptyLinePlaceholder":983},[242,1151,1153],{"class":244,"line":1152},32,[242,1154,1155],{"class":262},"      # 3. Overlay the current module repository\n",[242,1157,1159,1161,1163,1165],{"class":244,"line":1158},33,[242,1160,917],{"class":420},[242,1162,920],{"class":724},[242,1164,458],{"class":420},[242,1166,1167],{"class":252}," Overlay this repo\n",[242,1169,1171,1173,1175],{"class":244,"line":1170},34,[242,1172,931],{"class":724},[242,1174,458],{"class":420},[242,1176,936],{"class":252},[242,1178,1180,1182],{"class":244,"line":1179},35,[242,1181,942],{"class":724},[242,1183,882],{"class":420},[242,1185,1187,1189,1191,1194],{"class":244,"line":1186},36,[242,1188,961],{"class":724},[242,1190,458],{"class":420},[242,1192,1193],{"class":252}," client\u002Fapps\u002Fapp-about",[242,1195,1196],{"class":262}," # adjust path depending on app\u002Ftheme\n",[242,1198,1200],{"class":244,"line":1199},37,[242,1201,984],{"emptyLinePlaceholder":983},[242,1203,1205],{"class":244,"line":1204},38,[242,1206,1207],{"class":262},"      # 4. Install & Generate\n",[242,1209,1211,1213,1216,1218],{"class":244,"line":1210},39,[242,1212,917],{"class":420},[242,1214,1215],{"class":724}," uses",[242,1217,458],{"class":420},[242,1219,1220],{"class":252}," actions\u002Fsetup-node@v4\n",[242,1222,1224,1226],{"class":244,"line":1223},40,[242,1225,942],{"class":724},[242,1227,882],{"class":420},[242,1229,1231,1234,1236],{"class":244,"line":1230},41,[242,1232,1233],{"class":724},"          node-version",[242,1235,458],{"class":420},[242,1237,1239],{"class":1238},"sbssI"," 22\n",[242,1241,1243,1245,1247,1249],{"class":244,"line":1242},42,[242,1244,917],{"class":420},[242,1246,253],{"class":724},[242,1248,458],{"class":420},[242,1250,1251],{"class":252}," npm i -g --force corepack@latest && corepack enable\n",[242,1253,1255],{"class":244,"line":1254},43,[242,1256,984],{"emptyLinePlaceholder":983},[242,1258,1260,1262,1264,1266],{"class":244,"line":1259},44,[242,1261,917],{"class":420},[242,1263,920],{"class":724},[242,1265,458],{"class":420},[242,1267,1268],{"class":252}," Install monorepo dependencies\n",[242,1270,1272,1275,1277],{"class":244,"line":1271},45,[242,1273,1274],{"class":724},"        working-directory",[242,1276,458],{"class":420},[242,1278,966],{"class":252},[242,1280,1282,1285,1287],{"class":244,"line":1281},46,[242,1283,1284],{"class":724},"        run",[242,1286,458],{"class":420},[242,1288,1289],{"class":252}," pnpm install --no-frozen-lockfile\n",[242,1291,1293],{"class":244,"line":1292},47,[242,1294,984],{"emptyLinePlaceholder":983},[242,1296,1298,1300,1302,1304],{"class":244,"line":1297},48,[242,1299,917],{"class":420},[242,1301,920],{"class":724},[242,1303,458],{"class":420},[242,1305,1306],{"class":252}," Prepare and Generate\n",[242,1308,1310,1312,1314],{"class":244,"line":1309},49,[242,1311,1274],{"class":724},[242,1313,458],{"class":420},[242,1315,1316],{"class":252}," client\u002Fapps\u002Fapp-about\n",[242,1318,1320,1322,1324],{"class":244,"line":1319},50,[242,1321,1284],{"class":724},[242,1323,458],{"class":420},[242,1325,1326],{"class":712}," |\n",[242,1328,1330],{"class":244,"line":1329},51,[242,1331,1332],{"class":252},"          pnpm run dev:prepare\n",[242,1334,1336],{"class":244,"line":1335},52,[242,1337,1338],{"class":252},"          pnpm run dev:generate\n",[242,1340,1342,1345],{"class":244,"line":1341},53,[242,1343,1344],{"class":724},"        env",[242,1346,882],{"class":420},[242,1348,1350,1353,1355],{"class":244,"line":1349},54,[242,1351,1352],{"class":724},"          NUXT_APP_BASE_URL",[242,1354,458],{"class":420},[242,1356,1357],{"class":252}," \u002Fapp-about\u002F\n",[671,1359,1361],{"id":1360},"_3-npm-publishing-flow","3. NPM Publishing Flow",[1363,1364,1365,1390,1438],"ol",{},[278,1366,1367,1368],{},"Verify the module compiles locally:\n",[232,1369,1371],{"className":234,"code":1370,"language":236,"meta":237,"style":237},"pnpm --filter \"@owdproject\u002Fmy-app\" run prepack\n",[239,1372,1373],{"__ignoreMap":237},[242,1374,1375,1377,1380,1382,1384,1386,1388],{"class":244,"line":245},[242,1376,249],{"class":248},[242,1378,1379],{"class":252}," --filter",[242,1381,739],{"class":420},[242,1383,424],{"class":252},[242,1385,421],{"class":420},[242,1387,253],{"class":252},[242,1389,256],{"class":252},[278,1391,1392,1393],{},"Commit and push the package changes to its repository:\n",[232,1394,1396],{"className":234,"code":1395,"language":236,"meta":237,"style":237},"git add .\ngit commit -m \"chore: release 0.1.0\"\ngit push origin main\n",[239,1397,1398,1408,1425],{"__ignoreMap":237},[242,1399,1400,1403,1406],{"class":244,"line":245},[242,1401,1402],{"class":248},"git",[242,1404,1405],{"class":252}," add",[242,1407,531],{"class":252},[242,1409,1410,1412,1415,1418,1420,1423],{"class":244,"line":259},[242,1411,1402],{"class":248},[242,1413,1414],{"class":252}," commit",[242,1416,1417],{"class":252}," -m",[242,1419,739],{"class":420},[242,1421,1422],{"class":252},"chore: release 0.1.0",[242,1424,438],{"class":420},[242,1426,1427,1429,1432,1435],{"class":244,"line":266},[242,1428,1402],{"class":248},[242,1430,1431],{"class":252}," push",[242,1433,1434],{"class":252}," origin",[242,1436,1437],{"class":252}," main\n",[278,1439,1440,1441,1444,1445],{},"Publish to NPM under the scoped registry (always specify ",[239,1442,1443],{},"--access public","):\n",[232,1446,1448],{"className":234,"code":1447,"language":236,"meta":237,"style":237},"pnpm --filter \"@owdproject\u002Fmy-app\" publish --access public --no-git-checks\n",[239,1449,1450],{"__ignoreMap":237},[242,1451,1452,1454,1456,1458,1460,1462,1465,1468,1471],{"class":244,"line":245},[242,1453,249],{"class":248},[242,1455,1379],{"class":252},[242,1457,739],{"class":420},[242,1459,424],{"class":252},[242,1461,421],{"class":420},[242,1463,1464],{"class":252}," publish",[242,1466,1467],{"class":252}," --access",[242,1469,1470],{"class":252}," public",[242,1472,1473],{"class":252}," --no-git-checks\n",[1475,1476],"hr",{},[223,1478,1480],{"id":1479},"readme-schema-template","README Schema Template",[228,1482,1483],{},"Every OWD application\u002Ftheme should share a consistent, high-quality README format.",[232,1485,1489],{"className":1486,"code":1487,"language":1488,"meta":237,"style":237},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cp align=\"center\">\n  \u003Cimg width=\"160\" height=\"160\" src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F65117737?s=160&v=4\" \u002F>\n\u003C\u002Fp>\n\u003Ch1 align=\"center\">App Name\u003C\u002Fh1>\n\u003Ch3 align=\"center\">\n  A short one-sentence subtitle describing what this package does.\n\u003C\u002Fh3>\n\n\u003Cbr \u002F>\n\n## Overview\n\nA paragraph describing the application, its primary features, and usage details.\n\n[Demo](https:\u002F\u002Fowdproject.github.io\u002Fapp-name\u002F) · [Documentation](https:\u002F\u002Fowdproject.github.io\u002Fdocs\u002F) · [Support](https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fowdproject)\n\n## Installation\n\n```bash\npnpm desktop add app-name\n","markdown",[239,1490,1491,1496,1501,1506,1511,1516,1521,1526,1530,1535,1539,1544,1548,1553,1557,1562,1566,1571,1575,1580],{"__ignoreMap":237},[242,1492,1493],{"class":244,"line":245},[242,1494,1495],{},"\u003Cp align=\"center\">\n",[242,1497,1498],{"class":244,"line":259},[242,1499,1500],{},"  \u003Cimg width=\"160\" height=\"160\" src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F65117737?s=160&v=4\" \u002F>\n",[242,1502,1503],{"class":244,"line":266},[242,1504,1505],{},"\u003C\u002Fp>\n",[242,1507,1508],{"class":244,"line":747},[242,1509,1510],{},"\u003Ch1 align=\"center\">App Name\u003C\u002Fh1>\n",[242,1512,1513],{"class":244,"line":753},[242,1514,1515],{},"\u003Ch3 align=\"center\">\n",[242,1517,1518],{"class":244,"line":914},[242,1519,1520],{},"  A short one-sentence subtitle describing what this package does.\n",[242,1522,1523],{"class":244,"line":928},[242,1524,1525],{},"\u003C\u002Fh3>\n",[242,1527,1528],{"class":244,"line":939},[242,1529,984],{"emptyLinePlaceholder":983},[242,1531,1532],{"class":244,"line":947},[242,1533,1534],{},"\u003Cbr \u002F>\n",[242,1536,1537],{"class":244,"line":958},[242,1538,984],{"emptyLinePlaceholder":983},[242,1540,1541],{"class":244,"line":969},[242,1542,1543],{},"## Overview\n",[242,1545,1546],{"class":244,"line":980},[242,1547,984],{"emptyLinePlaceholder":983},[242,1549,1550],{"class":244,"line":987},[242,1551,1552],{},"A paragraph describing the application, its primary features, and usage details.\n",[242,1554,1555],{"class":244,"line":993},[242,1556,984],{"emptyLinePlaceholder":983},[242,1558,1559],{"class":244,"line":1005},[242,1560,1561],{},"[Demo](https:\u002F\u002Fowdproject.github.io\u002Fapp-name\u002F) · [Documentation](https:\u002F\u002Fowdproject.github.io\u002Fdocs\u002F) · [Support](https:\u002F\u002Fgithub.com\u002Fsponsors\u002Fowdproject)\n",[242,1563,1564],{"class":244,"line":1014},[242,1565,984],{"emptyLinePlaceholder":983},[242,1567,1568],{"class":244,"line":1021},[242,1569,1570],{},"## Installation\n",[242,1572,1573],{"class":244,"line":1031},[242,1574,984],{"emptyLinePlaceholder":983},[242,1576,1577],{"class":244,"line":1041},[242,1578,1579],{},"```bash\n",[242,1581,1582],{"class":244,"line":1046},[242,1583,1584],{},"pnpm desktop add app-name\n",[223,1586,1588],{"id":1587},"configuration","Configuration",[228,1590,1591,1592,458],{},"Explain the configuration schema or properties inside ",[239,1593,147],{},[232,1595,1597],{"className":441,"code":1596,"language":443,"meta":237,"style":237},"export default defineDesktopConfig({\n  apps: [\n    '@owdproject\u002Fapp-name'\n  ]\n})\n",[239,1598,1599,1615,1624,1635,1640],{"__ignoreMap":237},[242,1600,1601,1603,1605,1609,1612],{"class":244,"line":245},[242,1602,713],{"class":712},[242,1604,716],{"class":712},[242,1606,1608],{"class":1607},"s2Zo4"," defineDesktopConfig",[242,1610,1611],{"class":429},"(",[242,1613,1614],{"class":420},"{\n",[242,1616,1617,1620,1622],{"class":244,"line":259},[242,1618,1619],{"class":724},"  apps",[242,1621,458],{"class":420},[242,1623,775],{"class":429},[242,1625,1626,1629,1632],{"class":244,"line":266},[242,1627,1628],{"class":420},"    '",[242,1630,1631],{"class":252},"@owdproject\u002Fapp-name",[242,1633,1634],{"class":420},"'\n",[242,1636,1637],{"class":244,"line":747},[242,1638,1639],{"class":429},"  ]\n",[242,1641,1642,1645],{"class":244,"line":753},[242,1643,1644],{"class":420},"}",[242,1646,1647],{"class":429},")\n",[223,1649,1651],{"id":1650},"license","License",[228,1653,1654,1655,511],{},"This application is released under the ",[509,1656,1658],{"href":1657},"LICENSE","MIT License",[232,1660,1665],{"className":1661,"code":1663,"language":1664},[1662],"language-text","\n---\n\n## Related\n\n- [Create from scratch](\u002Fapps\u002Fcreate-from-scratch)\n- [Playground](\u002Fapps\u002Fplayground)\n","text",[239,1666,1663],{"__ignoreMap":237},[1668,1669,1670],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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 .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 .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":237,"searchDepth":259,"depth":259,"links":1672},[1673,1674,1675,1676,1677,1678,1679,1684,1685,1686],{"id":225,"depth":259,"text":226},{"id":315,"depth":259,"text":316},{"id":382,"depth":259,"text":383},{"id":402,"depth":259,"text":403},{"id":514,"depth":259,"text":515},{"id":653,"depth":259,"text":654},{"id":665,"depth":259,"text":666,"children":1680},[1681,1682,1683],{"id":673,"depth":266,"text":674},{"id":852,"depth":266,"text":853},{"id":1360,"depth":266,"text":1361},{"id":1479,"depth":259,"text":1480},{"id":1587,"depth":259,"text":1588},{"id":1650,"depth":259,"text":1651},"nuxt-module-build, dist, npm publishing, and desktop validate for OWD apps.","md",null,{},{"icon":83},{"title":80,"description":1687},"j9EPn2unT_dZS_4TVyVPIRHQnGarcfQVXj5Ws7RwesE",[1695,1697],{"title":75,"path":76,"stem":77,"description":1696,"icon":78,"children":-1},"Develop an app module with a dedicated mini Nuxt app — deps, launch plugins, validation.",{"title":5,"path":91,"stem":92,"description":1698,"icon":50,"children":-1},"What an OWD theme is versus core and apps.",1782171655060]