[{"data":1,"prerenderedAt":1178},["ShallowReactive",2],{"navigation_docs":3,"-setup-package-linking":217,"-setup-package-linking-surround":1173},[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":137,"body":219,"description":1164,"extension":1165,"links":1166,"meta":1167,"navigation":1168,"path":138,"seo":1169,"stem":139,"__hash__":1172},"docs\u002F6.setup\u002F2.package-linking.md",{"type":220,"value":221,"toc":1151},"minimark",[222,254,263,268,273,368,373,396,402,416,419,427,473,477,528,533,556,564,577,579,583,630,634,657,671,676,685,687,691,807,809,813,823,860,867,949,952,979,1001,1003,1007,1032,1035,1069,1071,1075,1113,1115,1119,1147],[223,224,225,226,230,231,234,235,238,239,245,246,249,250,253],"p",{},"OWD is a ",[227,228,229],"strong",{},"federation of packages",": core and kits live in the ",[227,232,233],{},"client"," monorepo; themes and apps often live in ",[227,236,237],{},"separate Git repositories","; engine modules such as ",[227,240,241],{},[242,243,244],"code",{},"@owdproject\u002Fmodule-fs"," are ",[227,247,248],{},"optional npm packages",", not vendored inside ",[242,251,252],{},"packages\u002F"," anymore.",[223,255,256,257,262],{},"Choosing the wrong dependency specifier is the most common source of ",[227,258,259],{},[242,260,261],{},"pnpm install"," failures during local development. This page explains the three linking models and when to use each.",[264,265,267],"h2",{"id":266},"the-three-linking-models","The three linking models",[269,270,272],"h3",{"id":271},"_1-npm-registry-semver","1. npm registry (semver)",[274,275,280],"pre",{"className":276,"code":277,"language":278,"meta":279,"style":279},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"dependencies\": {\n    \"@owdproject\u002Fcore\": \"^3.3.0\",\n    \"@owdproject\u002Ftheme-nova\": \"^0.0.2\"\n  }\n}\n","json","",[242,281,282,291,310,336,356,362],{"__ignoreMap":279},[283,284,287],"span",{"class":285,"line":286},"line",1,[283,288,290],{"class":289},"sMK4o","{\n",[283,292,294,297,301,304,307],{"class":285,"line":293},2,[283,295,296],{"class":289},"  \"",[283,298,300],{"class":299},"spNyl","dependencies",[283,302,303],{"class":289},"\"",[283,305,306],{"class":289},":",[283,308,309],{"class":289}," {\n",[283,311,313,316,320,322,324,327,331,333],{"class":285,"line":312},3,[283,314,315],{"class":289},"    \"",[283,317,319],{"class":318},"sBMFI","@owdproject\u002Fcore",[283,321,303],{"class":289},[283,323,306],{"class":289},[283,325,326],{"class":289}," \"",[283,328,330],{"class":329},"sfazB","^3.3.0",[283,332,303],{"class":289},[283,334,335],{"class":289},",\n",[283,337,339,341,344,346,348,350,353],{"class":285,"line":338},4,[283,340,315],{"class":289},[283,342,343],{"class":318},"@owdproject\u002Ftheme-nova",[283,345,303],{"class":289},[283,347,306],{"class":289},[283,349,326],{"class":289},[283,351,352],{"class":329},"^0.0.2",[283,354,355],{"class":289},"\"\n",[283,357,359],{"class":285,"line":358},5,[283,360,361],{"class":289},"  }\n",[283,363,365],{"class":285,"line":364},6,[283,366,367],{"class":289},"}\n",[223,369,370],{},[227,371,372],{},"Use when:",[374,375,376,386,389],"ul",{},[377,378,379,380,385],"li",{},"You scaffolded with ",[227,381,382],{},[242,383,384],{},"npm create owd"," or consume published packages only.",[377,387,388],{},"You run CI or production builds without a local checkout of core.",[377,390,391,392,395],{},"A theme playground is a ",[227,393,394],{},"standalone repo"," and you want reproducible installs.",[223,397,398,401],{},[227,399,400],{},"Pros:"," semver, lockfile stability, no monorepo required.",[223,403,404,407,408,411,412,415],{},[227,405,406],{},"Cons:"," you must ",[227,409,410],{},"publish"," (or wait for) a core release before themes can declare new APIs; patch locally with ",[242,413,414],{},"pnpm patch"," or temporary overrides if you are blocked.",[417,418],"hr",{},[269,420,422,423,426],{"id":421},"_2-workspace-pnpm-monorepo","2. ",[242,424,425],{},"workspace:*"," (pnpm monorepo)",[274,428,430],{"className":276,"code":429,"language":278,"meta":279,"style":279},"{\n  \"devDependencies\": {\n    \"@owdproject\u002Fcore\": \"workspace:*\"\n  }\n}\n",[242,431,432,436,449,465,469],{"__ignoreMap":279},[283,433,434],{"class":285,"line":286},[283,435,290],{"class":289},[283,437,438,440,443,445,447],{"class":285,"line":293},[283,439,296],{"class":289},[283,441,442],{"class":299},"devDependencies",[283,444,303],{"class":289},[283,446,306],{"class":289},[283,448,309],{"class":289},[283,450,451,453,455,457,459,461,463],{"class":285,"line":312},[283,452,315],{"class":289},[283,454,319],{"class":318},[283,456,303],{"class":289},[283,458,306],{"class":289},[283,460,326],{"class":289},[283,462,425],{"class":329},[283,464,355],{"class":289},[283,466,467],{"class":285,"line":338},[283,468,361],{"class":289},[283,470,471],{"class":285,"line":358},[283,472,367],{"class":289},[223,474,475],{},[227,476,372],{},[374,478,479,506,513],{},[377,480,481,482,485,486,491,492,495,496,495,499,495,502,505],{},"The package ",[227,483,484],{},"physically exists"," under a path matched by ",[227,487,488],{},[242,489,490],{},"pnpm-workspace.yaml"," (typically ",[242,493,494],{},"packages\u002F*",", ",[242,497,498],{},"themes\u002F*",[242,500,501],{},"apps\u002F*",[242,503,504],{},"desktop\u002F",").",[377,507,508,509,512],{},"You develop ",[227,510,511],{},"core + desktop + kits"," together in the official client repo.",[377,514,515,516,519,520,523,524,527],{},"A theme or app folder is cloned ",[227,517,518],{},"inside"," ",[242,521,522],{},"themes\u002Fmy-theme"," or ",[242,525,526],{},"apps\u002Fmy-app"," and listed in the workspace.",[223,529,530,532],{},[227,531,400],{}," instant feedback — edit core source, reload desktop, no publish step.",[223,534,535,519,537,540,541,544,545,548,549,519,552,555],{},[227,536,406],{},[227,538,539],{},"only resolves packages that are in the workspace."," If ",[242,542,543],{},"package.json"," says ",[242,546,547],{},"\"@owdproject\u002Fmodule-fs\": \"workspace:*\""," but there is ",[227,550,551],{},"no",[242,553,554],{},"packages\u002Fmodule-fs\u002F"," (or cloned module) in the tree, pnpm fails with:",[274,557,562],{"className":558,"code":560,"language":561,"meta":279},[559],"language-text","ERR_PNPM_WORKSPACE_PKG_NOT_FOUND\n… is in the dependencies but no package named \"@owdproject\u002Fmodule-fs\" is present in the workspace\n","text",[242,563,560],{"__ignoreMap":279},[223,565,566,567,570,571,576],{},"That error means: switch to ",[227,568,569],{},"npm semver",", add the package via ",[227,572,573],{},[242,574,575],{},"desktop add module-fs --dev",", or remove the dependency if the feature is optional.",[417,578],{},[269,580,582],{"id":581},"_3-git-url-forks-unreleased-branches","3. Git URL (forks, unreleased branches)",[274,584,586],{"className":276,"code":585,"language":278,"meta":279,"style":279},"{\n  \"dependencies\": {\n    \"@owdproject\u002Ftheme-gnome\": \"git+https:\u002F\u002Fgithub.com\u002Fowdproject\u002Ftheme-gnome.git#main\"\n  }\n}\n",[242,587,588,592,604,622,626],{"__ignoreMap":279},[283,589,590],{"class":285,"line":286},[283,591,290],{"class":289},[283,593,594,596,598,600,602],{"class":285,"line":293},[283,595,296],{"class":289},[283,597,300],{"class":299},[283,599,303],{"class":289},[283,601,306],{"class":289},[283,603,309],{"class":289},[283,605,606,608,611,613,615,617,620],{"class":285,"line":312},[283,607,315],{"class":289},[283,609,610],{"class":318},"@owdproject\u002Ftheme-gnome",[283,612,303],{"class":289},[283,614,306],{"class":289},[283,616,326],{"class":289},[283,618,619],{"class":329},"git+https:\u002F\u002Fgithub.com\u002Fowdproject\u002Ftheme-gnome.git#main",[283,621,355],{"class":289},[283,623,624],{"class":285,"line":338},[283,625,361],{"class":289},[283,627,628],{"class":285,"line":358},[283,629,367],{"class":289},[223,631,632],{},[227,633,372],{},[374,635,636,643,654],{},[377,637,638,639,642],{},"You need a fix that is merged on GitHub but ",[227,640,641],{},"not yet on npm",".",[377,644,645,646,649,650,653],{},"You maintain a ",[227,647,648],{},"fork"," (",[242,651,652],{},"--from your-user"," in the CLI).",[377,655,656],{},"You pin a known-good commit for a demo:",[274,658,660],{"className":276,"code":659,"language":278,"meta":279,"style":279},"\"git+https:\u002F\u002Fgithub.com\u002Fowdproject\u002Fclient.git#89f2e6b\"\n",[242,661,662],{"__ignoreMap":279},[283,663,664,666,669],{"class":285,"line":286},[283,665,303],{"class":289},[283,667,668],{"class":329},"git+https:\u002F\u002Fgithub.com\u002Fowdproject\u002Fclient.git#89f2e6b",[283,670,355],{"class":289},[223,672,673,675],{},[227,674,400],{}," works outside the monorepo; good for cross-repo PR review.",[223,677,678,680,681,684],{},[227,679,406],{}," slower installs; you must track commit SHAs for reproducibility; some tooling assumes semver in ",[242,682,683],{},"peerDependencies"," checks.",[417,686],{},[264,688,690],{"id":689},"decision-matrix","Decision matrix",[692,693,694,716],"table",{},[695,696,697],"thead",{},[698,699,700,704,707,710],"tr",{},[701,702,703],"th",{},"You are…",[701,705,706],{},"Core",[701,708,709],{},"Theme \u002F app",[701,711,712,715],{},[242,713,714],{},"module-fs"," \u002F persistence",[717,718,719,751,773,789],"tbody",{},[698,720,721,727,731,739],{},[722,723,724],"td",{},[227,725,726],{},"Client monorepo contributor",[722,728,729],{},[242,730,425],{},[722,732,733,734,736,737],{},"clone under ",[242,735,498],{}," → ",[242,738,425],{},[722,740,741,742,519,745,519,748],{},"npm ",[242,743,744],{},"^0.0.x",[227,746,747],{},"or",[242,749,750],{},"desktop add … --dev",[698,752,753,758,763,766],{},[722,754,755],{},[227,756,757],{},"Theme author (separate repo)",[722,759,741,760,762],{},[242,761,330],{}," peer",[722,764,765],{},"—",[722,767,768,769,772],{},"npm in ",[227,770,771],{},"playground only"," if you test explorer",[698,774,775,780,783,786],{},[722,776,777],{},[227,778,779],{},"App author (separate repo)",[722,781,782],{},"npm peer",[722,784,785],{},"npm theme in playground",[722,787,788],{},"optional npm in playground",[698,790,791,796,799,801],{},[722,792,793],{},[227,794,795],{},"End user \u002F template project",[722,797,798],{},"npm",[722,800,798],{},[722,802,803,804],{},"npm via ",[242,805,806],{},"desktop add",[417,808],{},[264,810,812],{"id":811},"external-engine-modules","External engine modules",[223,814,815,816,819,820,822],{},"These packages are ",[227,817,818],{},"not"," part of the client ",[242,821,252],{}," tree (by design):",[692,824,825,835],{},[695,826,827],{},[698,828,829,832],{},[701,830,831],{},"Package",[701,833,834],{},"Role",[717,836,837,848],{},[698,838,839,845],{},[722,840,841],{},[227,842,843],{},[242,844,244],{},[722,846,847],{},"ZenFS virtual filesystem runtime",[698,849,850,857],{},[722,851,852],{},[227,853,854],{},[242,855,856],{},"@owdproject\u002Fmodule-persistence",[722,858,859],{},"Optional Pinia persistence (IndexedDB)",[223,861,862,863,866],{},"Kits in the monorepo depend on them as ",[227,864,865],{},"peers"," or document them as optional:",[692,868,869,877],{},[695,870,871],{},[698,872,873,875],{},[701,874,831],{},[701,876,834],{},[717,878,879,891,909,927],{},[698,880,881,888],{},[722,882,883],{},[227,884,885],{},[242,886,887],{},"@owdproject\u002Fkit-primevue",[722,889,890],{},"PrimeVue module, dialog impl, PV explorer chrome",[698,892,893,898],{},[722,894,895],{},[227,896,897],{},"core shell composables",[722,899,900,905,906],{},[227,901,902],{},[242,903,904],{},"useDesktopShellIdentity",", edge drop, overview, session — see ",[907,908,197],"a",{"href":198},[698,910,911,919],{},[722,912,913],{},[227,914,915,916],{},"core ",[242,917,918],{},"runtime\u002Fexplorer\u002F",[722,920,921,926],{},[227,922,923],{},[242,924,925],{},"useExplorerStore",", DnD, menu model (headless)",[698,928,929,946],{},[722,930,931],{},[932,933,934],"del",{},[227,935,936,939,940,939,943],{},[242,937,938],{},"kit-theme"," \u002F ",[242,941,942],{},"kit-fs",[242,944,945],{},"kit-explorer",[722,947,948],{},"Deprecated — use core + kit-primevue",[223,950,951],{},"Install modules into your desktop project:",[274,953,957],{"className":954,"code":955,"language":956,"meta":279,"style":279},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","desktop add module-fs\ndesktop add module-persistence\n","bash",[242,958,959,970],{"__ignoreMap":279},[283,960,961,964,967],{"class":285,"line":286},[283,962,963],{"class":318},"desktop",[283,965,966],{"class":329}," add",[283,968,969],{"class":329}," module-fs\n",[283,971,972,974,976],{"class":285,"line":293},[283,973,963],{"class":318},[283,975,966],{"class":329},[283,977,978],{"class":329}," module-persistence\n",[223,980,981,982,736,986,991,992,995,996,642],{},"Then list them in ",[227,983,984],{},[242,985,147],{},[227,987,988],{},[242,989,990],{},"modules",". Themes that ship an explorer UI typically check ",[242,993,994],{},"nuxt.options.modules.includes('@owdproject\u002Fmodule-fs')"," before installing ",[227,997,998],{},[242,999,1000],{},"@owdproject\u002Fkit-explorer",[417,1002],{},[264,1004,1006],{"id":1005},"nested-git-repositories","Nested Git repositories",[223,1008,1009,1010,1015,1016,1020,1021,1025,1026,642],{},"The client ",[227,1011,1012],{},[242,1013,1014],{},".gitignore"," excludes ",[227,1017,1018],{},[242,1019,87],{}," and ",[227,1022,1023],{},[242,1024,44],{}," so you can clone theme\u002Fapp repos locally without committing them to client. Each clone may have its ",[227,1027,1028,1029],{},"own ",[242,1030,1031],{},".git",[223,1033,1034],{},"Implications:",[374,1036,1037,1043,1057],{},[377,1038,1039,1042],{},[227,1040,1041],{},"IDE Git view"," may show nested repos — normal.",[377,1044,1045,1049,1050,1052,1053,1056],{},[227,1046,1047],{},[242,1048,425],{}," in a theme ",[242,1051,543],{}," only works when that theme folder is inside the client workspace ",[227,1054,1055],{},"and"," pnpm sees it as a workspace package.",[377,1058,1059,1060,1063,1064,1068],{},"For theme-only work, prefer ",[227,1061,1062],{},"npm peers"," on core and semver in the playground; use the client monorepo when you need ",[227,1065,1066],{},[242,1067,425],{}," on kits.",[417,1070],{},[264,1072,1074],{"id":1073},"after-changing-dependencies","After changing dependencies",[1076,1077,1078,1086,1104],"ol",{},[377,1079,1080,1081,1085],{},"Run ",[227,1082,1083],{},[242,1084,261],{}," at the workspace root (client) or in the theme\u002Fapp repo.",[377,1087,1080,1088,1093,1094,1099,1100,1103],{},[227,1089,1090],{},[242,1091,1092],{},"pnpm run prepare:stubs"," (client) or ",[227,1095,1096],{},[242,1097,1098],{},"pnpm run dev:prepare"," (module) so ",[242,1101,1102],{},"dist\u002F"," stubs exist.",[377,1105,1106,1107,1112],{},"Restart ",[227,1108,1109],{},[242,1110,1111],{},"pnpm run dev"," — Nuxt does not always pick up new module paths without a restart.",[417,1114],{},[264,1116,1118],{"id":1117},"related","Related",[374,1120,1121,1125,1129,1134,1139,1143],{},[377,1122,1123],{},[907,1124,142],{"href":143},[377,1126,1127],{},[907,1128,147],{"href":148},[377,1130,1131],{},[907,1132,1133],{"href":57},"Create an app",[377,1135,1136],{},[907,1137,1138],{"href":100},"Create a theme",[377,1140,1141],{},[907,1142,162],{"href":163},[377,1144,1145],{},[907,1146,192],{"href":193},[1148,1149,1150],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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 .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":279,"searchDepth":293,"depth":293,"links":1152},[1153,1159,1160,1161,1162,1163],{"id":266,"depth":293,"text":267,"children":1154},[1155,1156,1158],{"id":271,"depth":312,"text":272},{"id":421,"depth":312,"text":1157},"2. workspace:* (pnpm monorepo)",{"id":581,"depth":312,"text":582},{"id":689,"depth":293,"text":690},{"id":811,"depth":293,"text":812},{"id":1005,"depth":293,"text":1006},{"id":1073,"depth":293,"text":1074},{"id":1117,"depth":293,"text":1118},"How to wire @owdproject\u002F* dependencies with npm, pnpm workspace, or Git — and avoid common install failures.","md",null,{},{"icon":140},{"title":1170,"description":1171},"Package linking for OWD development","workspace:* vs npm semver vs git URLs when developing core, themes, apps, and external modules.","EdAakDkqEyBZfU_QhphjNjEIWkf6a-1d-cjUpl4eyxc",[1174,1176],{"title":133,"path":134,"stem":135,"description":1175,"icon":128,"children":-1},"pnpm desktop — control panel, dev, add, validate, init, template.",{"title":142,"path":143,"stem":144,"description":1177,"icon":145,"children":-1},"pnpm workspace layout, root scripts, and how the client repo is organized.",1782171655060]