@owdproject/core 3.3.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +98 -0
- package/DESKTOP_KERNEL.md +232 -0
- package/MIGRATION_3.3.2.md +23 -0
- package/MIGRATION_3.4.md +126 -0
- package/PLAYGROUND.md +91 -0
- package/README.md +13 -80
- package/dist/module.d.mts +2 -2
- package/dist/module.json +3 -3
- package/dist/module.mjs +86 -99
- package/index.ts +6 -3
- package/kit/authoring.ts +340 -0
- package/kit/defineDesktopApp.ts +56 -0
- package/module.ts +76 -108
- package/package.json +70 -40
- package/runtime/components/{Desktop/Application/DesktopApplicationRender.vue → Application/DesktopCoreApplicationRender.vue} +2 -2
- package/runtime/components/{Desktop/Application/DesktopApplicationWindowsRender.vue → Application/DesktopCoreApplicationWindowsRender.vue} +1 -1
- package/runtime/components/core/DesktopCore.vue +43 -0
- package/runtime/components/{Desktop/Window/DesktopWindow.vue → window/DesktopCoreWindow.vue} +17 -6
- package/runtime/components/window/DesktopCoreWindowSnapHintsBase.vue +74 -0
- package/runtime/components/workspace/DesktopCoreWorkspaceEdgeHintsBase.vue +84 -0
- package/runtime/composables/useBlockNonInputContextMenu.ts +30 -0
- package/runtime/composables/useDesktopConfig.ts +8 -0
- package/runtime/composables/useDesktopDialogs.ts +16 -0
- package/runtime/composables/useDesktopExtension.ts +8 -0
- package/runtime/composables/useDesktopManager.ts +2 -0
- package/runtime/composables/useDesktopManifest.ts +17 -0
- package/runtime/composables/useDesktopSession.ts +27 -0
- package/runtime/composables/useDesktopShellIdentity.ts +99 -0
- package/runtime/composables/useDesktopShellOptions.ts +36 -0
- package/runtime/composables/useDesktopShellReady.ts +7 -0
- package/runtime/composables/useDesktopWorkArea.ts +93 -0
- package/runtime/composables/useTerminalManager.ts +102 -9
- package/runtime/composables/useToggleWindowMaximize.ts +35 -0
- package/runtime/composables/useWindowDragHandlers.ts +47 -0
- package/runtime/composables/useWindowSnapDrop.ts +112 -0
- package/runtime/composables/useWorkspaceEdgeDrop.ts +176 -0
- package/runtime/composables/useWorkspaceManager.ts +26 -0
- package/runtime/composables/useWorkspaceOverviewCapture.ts +92 -0
- package/runtime/composables/useWorkspaceOverviewLiveScale.ts +151 -0
- package/runtime/constants/desktopShellKeys.ts +12 -0
- package/runtime/constants/shellLayout.ts +5 -0
- package/runtime/dialogs/desktopDialogProvider.ts +73 -0
- package/runtime/internal/controllers/ApplicationController.ts +8 -2
- package/runtime/internal/controllers/WindowController.ts +93 -8
- package/runtime/plugins/01.desktop-shell-init.client.ts +28 -0
- package/runtime/plugins/02.desktop-register-desktop-apps.client.ts +2 -6
- package/runtime/stores/storeApplicationMeta.ts +2 -1
- package/runtime/stores/storeApplicationWindows.ts +2 -1
- package/runtime/stores/storeDesktop.ts +17 -57
- package/runtime/stores/storeDesktopDefaultApps.ts +2 -1
- package/runtime/stores/storeDesktopVolume.ts +2 -1
- package/runtime/stores/storeDesktopWindow.ts +20 -2
- package/runtime/stores/storeDesktopWorkspace.ts +31 -1
- package/runtime/stores/storeIds.ts +35 -0
- package/runtime/types/desktopMenu.ts +10 -0
- package/runtime/utils/initDesktopShell.ts +80 -0
- package/runtime/utils/migratePersistedStoreIds.ts +57 -0
- package/runtime/utils/utilApp.ts +0 -12
- package/runtime/utils/{captureElementToCanvas.ts → utilCaptureElementToCanvas.ts} +1 -1
- package/runtime/utils/utilDetectSnapZone.ts +57 -0
- package/runtime/utils/utilWindowLayout.ts +82 -0
- package/runtime/utils/utilWindowMaximizeLayout.ts +44 -0
- package/runtime/utils/utilWorkspaceWindows.ts +33 -0
- package/types/index.d.ts +125 -14
- package/bin/cli.js +0 -395
- package/bin/desktop.js +0 -5
- package/bin/lib/catalog.js +0 -293
- package/bin/lib/config.js +0 -109
- package/bin/lib/desktopConfig.js +0 -56
- package/bin/lib/generateTemplate.js +0 -389
- package/bin/lib/install.js +0 -408
- package/bin/lib/migrateModulePlayground.config.mjs +0 -164
- package/bin/lib/migrateModulePlayground.mjs +0 -313
- package/bin/lib/npmVersions.js +0 -124
- package/bin/lib/playgroundContext.js +0 -188
- package/bin/lib/scaffold.js +0 -197
- package/bin/lib/status.js +0 -289
- package/bin/lib/validateModule.js +0 -697
- package/bin/lib/workspace.js +0 -182
- package/bin/owd.js +0 -5
- package/bin/tui.js +0 -1379
- package/runtime/components/Desktop/Core/DesktopCore.vue +0 -90
- package/runtime/utils/explorerEntryPath.ts +0 -10
- package/runtime/utils/resolveDesktopConfigPath.ts +0 -52
- package/runtime/utils/splitDesktopUserConfig.ts +0 -85
- package/runtime/utils/utilDesktop.ts +0 -35
- package/runtime/utils/validateDesktopUserConfig.ts +0 -44
- /package/runtime/components/{Desktop/Background/DesktopBackground.vue → background/DesktopCoreBackground.vue} +0 -0
- /package/runtime/components/{Desktop/Time/DesktopTime.vue → time/DesktopCoreTime.vue} +0 -0
- /package/runtime/components/{Desktop/Window/DesktopWindowContent.vue → window/DesktopCoreWindowContent.vue} +0 -0
- /package/runtime/components/{Desktop/Window/DesktopWindowNav.vue → window/DesktopCoreWindowNav.vue} +0 -0
- /package/runtime/utils/{utilWindow.ts → utilWindowControllerAdapter.ts} +0 -0
package/README.md
CHANGED
|
@@ -1,89 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
<img width="160" height="160" src="https://avatars.githubusercontent.com/u/65117737?s=160&v=4" />
|
|
3
|
-
</p>
|
|
4
|
-
<h1 align="center">Open Web Desktop</h1>
|
|
5
|
-
<h3 align="center">
|
|
6
|
-
A modular framework for building web-based desktop experiences.
|
|
7
|
-
</h3>
|
|
1
|
+
# 📦 OWD Core
|
|
8
2
|
|
|
9
|
-
|
|
3
|
+
> The kernel and runtime engine for Open Web Desktop
|
|
10
4
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
[Demo](https://atproto-os.pages.dev/) · [Community](https://discord.gg/zPNaN2HAaA) · [Documentation](https://owdproject.org/)
|
|
5
|
+
This package provides the core logic, Vue components, and Nuxt module required to run an Open Web Desktop experience.
|
|
14
6
|
|
|
15
7
|
## Features
|
|
16
8
|
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
- Fully localizable with nuxt-i18n support
|
|
22
|
-
|
|
23
|
-
## Getting started
|
|
24
|
-
|
|
25
|
-
Bootstrap a new project by running:
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
npm create owd
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
Once the process is done, you can start to develop:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
cd owd-client
|
|
35
|
-
|
|
36
|
-
# Run the dev server with hot-reload
|
|
37
|
-
pnpm install
|
|
38
|
-
pnpm run dev
|
|
39
|
-
|
|
40
|
-
# Build for production
|
|
41
|
-
pnpm run generate
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Extend your desktop
|
|
45
|
-
|
|
46
|
-
Thanks to Tailwind and PrimeVue, you can create custom themes from scratch and ensure a consistent look across all apps. Each theme defines its own style, making your desktop both cohesive and uniquely yours.
|
|
47
|
-
|
|
48
|
-
[Applications](https://github.com/topics/owd-apps) · [Modules](https://github.com/topics/owd-modules) · [Themes](https://github.com/topics/owd-themes)
|
|
49
|
-
|
|
50
|
-
### 🧩 Install an app
|
|
51
|
-
|
|
52
|
-
Discover apps by searching the [owd-apps](https://github.com/topics/owd-apps) tag on GitHub.
|
|
53
|
-
|
|
54
|
-
For example, to add the To-do app:
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
desktop add app-todo
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Shipped with `@owdproject/core` (`bin/desktop.js`). The `owd` binary is a deprecated alias.
|
|
61
|
-
|
|
62
|
-
### 🧩 Install a module
|
|
63
|
-
|
|
64
|
-
Discover modules by searching the [owd-modules](https://github.com/topics/owd-modules) tag on GitHub.
|
|
65
|
-
|
|
66
|
-
For example, to add Pinia persistence backed by IndexedDB (`idb-keyval`):
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
desktop add module-pinia-idb
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### 🖥️ Install a theme
|
|
73
|
-
|
|
74
|
-
Themes are full desktop environments that style all UI components independently, using [PrimeVue](https://primevue.org/).
|
|
75
|
-
Each theme provides a unique look and feel while maintaining consistent functionality across all applications.
|
|
76
|
-
|
|
77
|
-
Discover themes by searching the [owd-themes](https://github.com/topics/owd-themes) tag on GitHub.
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
desktop add theme-gnome
|
|
81
|
-
```
|
|
9
|
+
- **Window Management**: Z-index handling, focusing, and lifecycle.
|
|
10
|
+
- **Runtime Components**: \`DesktopCore\`, \`DesktopWindow\`, and more.
|
|
11
|
+
- **State Management**: Pinia stores for workspaces, applications, and settings.
|
|
12
|
+
- **Nuxt Integration**: Seamless module for Nuxt 3/4.
|
|
82
13
|
|
|
83
|
-
##
|
|
14
|
+
## Installation
|
|
84
15
|
|
|
85
|
-
|
|
16
|
+
\`\`\`bash
|
|
17
|
+
pnpm add @owdproject/core
|
|
18
|
+
\`\`\`
|
|
86
19
|
|
|
87
|
-
|
|
20
|
+
---
|
|
88
21
|
|
|
89
|
-
|
|
22
|
+
Licensed under [MIT](./LICENSE)
|
package/dist/module.d.mts
CHANGED
package/dist/module.json
CHANGED
package/dist/module.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineNuxtModule, createResolver,
|
|
1
|
+
import { installModule, defineNuxtModule, createResolver, resolvePath, addComponentsDir, addPlugin, addImportsDir } from '@nuxt/kit';
|
|
2
2
|
import { defu } from 'defu';
|
|
3
3
|
import { existsSync } from 'node:fs';
|
|
4
4
|
import { join } from 'node:path';
|
|
@@ -30,7 +30,6 @@ function assertValidDesktopUserConfig(config, configFile = "desktop.config.ts")
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
|
|
34
33
|
const DESKTOP_CONFIG_FILENAME = "desktop.config.ts";
|
|
35
34
|
const LEGACY_DESKTOP_CONFIG_FILENAME = "owd.config.ts";
|
|
36
35
|
const LEGACY_CONFIG_DEPRECATION = "[@owdproject/core] owd.config.ts is deprecated and kept only for backward compatibility; rename to desktop.config.ts (required from @owdproject/core 3.2).";
|
|
@@ -62,22 +61,8 @@ function warnLegacyDesktopConfig(resolved) {
|
|
|
62
61
|
console.warn(LEGACY_CONFIG_DEPRECATION);
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
|
-
|
|
66
|
-
const DESKTOP_MODULE_KEYS = ["theme", "apps", "modules"];
|
|
67
|
-
const DESKTOP_RUNTIME_KEYS = /* @__PURE__ */ new Set([
|
|
68
|
-
...DESKTOP_MODULE_KEYS,
|
|
69
|
-
"docs",
|
|
70
|
-
"name",
|
|
71
|
-
"defaultApps",
|
|
72
|
-
"features",
|
|
73
|
-
"explorer",
|
|
74
|
-
"systemBar",
|
|
75
|
-
"dockBar",
|
|
76
|
-
"workspaces"
|
|
77
|
-
]);
|
|
78
64
|
const NUXT_OPTION_KEYS = /* @__PURE__ */ new Set([
|
|
79
65
|
"ssr",
|
|
80
|
-
"modules",
|
|
81
66
|
"devtools",
|
|
82
67
|
"vite",
|
|
83
68
|
"nitro",
|
|
@@ -95,45 +80,75 @@ const NUXT_OPTION_KEYS = /* @__PURE__ */ new Set([
|
|
|
95
80
|
"tailwindcss",
|
|
96
81
|
"primevue"
|
|
97
82
|
]);
|
|
98
|
-
function
|
|
99
|
-
const
|
|
100
|
-
const apps = Array.isArray(config.apps) ? config.apps : void 0;
|
|
101
|
-
const modules = Array.isArray(config.modules) ? config.modules : void 0;
|
|
102
|
-
const desktopRuntime = {};
|
|
103
|
-
for (const [key, value] of Object.entries(config)) {
|
|
104
|
-
if (DESKTOP_MODULE_KEYS.includes(key)) {
|
|
105
|
-
continue;
|
|
106
|
-
}
|
|
107
|
-
desktopRuntime[key] = value;
|
|
83
|
+
function warnDesktopConfigKeys(config, configFile = "desktop.config.ts") {
|
|
84
|
+
for (const key of Object.keys(config)) {
|
|
108
85
|
if (NUXT_OPTION_KEYS.has(key)) {
|
|
109
86
|
console.warn(
|
|
110
87
|
`[@owdproject/core] ${configFile}: key "${key}" looks like a Nuxt option and is ignored for _nuxt.options. Move it to nuxt.config.ts; shell values belong under defineDesktopConfig({ systemBar, workspaces, ... }).`
|
|
111
88
|
);
|
|
112
|
-
} else if (!DESKTOP_RUNTIME_KEYS.has(key)) {
|
|
113
|
-
console.warn(
|
|
114
|
-
`[@owdproject/core] ${configFile}: unknown desktop key "${key}" \u2014 merged into runtimeConfig.public.desktop only.`
|
|
115
|
-
);
|
|
116
89
|
}
|
|
117
90
|
}
|
|
118
|
-
|
|
91
|
+
}
|
|
92
|
+
function readConfigKey(mod) {
|
|
93
|
+
const key = mod?.meta?.configKey ?? mod?.default?.meta?.configKey;
|
|
94
|
+
return typeof key === "string" && key.length > 0 ? key : void 0;
|
|
95
|
+
}
|
|
96
|
+
async function loadModuleDescriptor(modulePath) {
|
|
97
|
+
try {
|
|
98
|
+
const imported = await import(modulePath);
|
|
99
|
+
return imported.default ?? imported;
|
|
100
|
+
} catch (e) {
|
|
101
|
+
console.warn(`[@owdproject/core] Failed to load module descriptor for "${modulePath}":`, e.message || e);
|
|
102
|
+
return void 0;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
async function installDesktopPackage(nuxt, modulePath, desktop) {
|
|
106
|
+
const descriptor = await loadModuleDescriptor(modulePath);
|
|
107
|
+
const configKey = readConfigKey(descriptor);
|
|
108
|
+
if (configKey && desktop) {
|
|
109
|
+
const slice = desktop[configKey];
|
|
110
|
+
const inline = slice && typeof slice === "object" && !Array.isArray(slice) ? slice : {};
|
|
111
|
+
await installModule(modulePath, inline);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
await installModule(modulePath);
|
|
119
115
|
}
|
|
120
116
|
|
|
121
|
-
const version = "3.
|
|
117
|
+
const version = "3.4.0";
|
|
122
118
|
const pkg = {
|
|
123
119
|
version: version};
|
|
124
120
|
|
|
125
121
|
const module$1 = defineNuxtModule({
|
|
126
122
|
meta: {
|
|
127
123
|
name: "desktop",
|
|
128
|
-
configKey: "
|
|
124
|
+
configKey: "desktop"
|
|
129
125
|
},
|
|
130
126
|
defaults: {
|
|
131
127
|
theme: "@owdproject/theme-nova",
|
|
132
128
|
apps: [],
|
|
133
129
|
modules: []
|
|
134
130
|
},
|
|
131
|
+
moduleDependencies: {
|
|
132
|
+
"@pinia/nuxt": {},
|
|
133
|
+
"@nuxt/fonts": {},
|
|
134
|
+
"@nuxt/icon": {
|
|
135
|
+
defaults: {
|
|
136
|
+
clientBundle: {
|
|
137
|
+
scan: true,
|
|
138
|
+
sizeLimitKb: 256
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
"@vueuse/nuxt": {},
|
|
143
|
+
"@nuxtjs/i18n": {}
|
|
144
|
+
},
|
|
135
145
|
async setup(_options, _nuxt) {
|
|
136
146
|
const { resolve } = createResolver(import.meta.url);
|
|
147
|
+
let resolvedNanoid = null;
|
|
148
|
+
try {
|
|
149
|
+
resolvedNanoid = await resolvePath("nanoid", { url: import.meta.url });
|
|
150
|
+
} catch (e) {
|
|
151
|
+
}
|
|
137
152
|
_nuxt.options.experimental = {
|
|
138
153
|
..._nuxt.options.experimental,
|
|
139
154
|
viteEnvironmentApi: _nuxt.options.experimental?.viteEnvironmentApi ?? true
|
|
@@ -146,6 +161,8 @@ const module$1 = defineNuxtModule({
|
|
|
146
161
|
throw new Error(`[@owdproject/core] Cannot find desktop.config.ts in ${_nuxt.options.rootDir}. ${hint}`);
|
|
147
162
|
}
|
|
148
163
|
warnLegacyDesktopConfig(resolvedConfig);
|
|
164
|
+
_nuxt.options.watch ??= [];
|
|
165
|
+
_nuxt.options.watch.push(resolvedConfig.path);
|
|
149
166
|
try {
|
|
150
167
|
clientConfig = (await import(resolvedConfig.path)).default;
|
|
151
168
|
} catch (e) {
|
|
@@ -159,79 +176,41 @@ const module$1 = defineNuxtModule({
|
|
|
159
176
|
if (!clientConfig.theme) {
|
|
160
177
|
clientConfig.theme = "@owdproject/theme-nova";
|
|
161
178
|
}
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
desktopRuntime
|
|
167
|
-
} = splitDesktopUserConfig(
|
|
168
|
-
clientConfig,
|
|
169
|
-
resolvedConfig.file
|
|
170
|
-
);
|
|
171
|
-
clientConfig.theme = configTheme ?? clientConfig.theme;
|
|
172
|
-
if (configApps) clientConfig.apps = configApps;
|
|
173
|
-
if (configModules) clientConfig.modules = configModules;
|
|
174
|
-
_nuxt.options.runtimeConfig.public.desktop = defu(
|
|
175
|
-
desktopRuntime,
|
|
176
|
-
{ coreVersion: pkg.version }
|
|
177
|
-
);
|
|
178
|
-
await installModule("@pinia/nuxt");
|
|
179
|
+
const configRecord = clientConfig;
|
|
180
|
+
warnDesktopConfigKeys(configRecord, resolvedConfig.file);
|
|
181
|
+
const desktop = defu(configRecord, { coreVersion: pkg.version });
|
|
182
|
+
_nuxt.options.runtimeConfig.public.desktop = desktop;
|
|
179
183
|
{
|
|
180
|
-
if (
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
if (desktop.theme) {
|
|
185
|
+
try {
|
|
186
|
+
await installDesktopPackage(_nuxt, desktop.theme, desktop);
|
|
187
|
+
} catch (e) {
|
|
188
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
189
|
+
console.warn(`[@owdproject/core] Warning: Could not load theme "${desktop.theme}". Details: ${msg}`);
|
|
186
190
|
}
|
|
187
191
|
}
|
|
188
|
-
if (
|
|
189
|
-
for (const
|
|
190
|
-
|
|
192
|
+
if (Array.isArray(desktop.modules)) {
|
|
193
|
+
for (const modulePath of desktop.modules) {
|
|
194
|
+
try {
|
|
195
|
+
await installDesktopPackage(_nuxt, modulePath, desktop);
|
|
196
|
+
} catch (e) {
|
|
197
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
198
|
+
console.warn(`[@owdproject/core] Warning: Could not load module "${modulePath}". Details: ${msg}`);
|
|
199
|
+
}
|
|
191
200
|
}
|
|
192
201
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
if (include && include !== "*" && Array.isArray(include)) {
|
|
202
|
-
if (!include.includes("ConfirmDialog")) {
|
|
203
|
-
include.push("ConfirmDialog");
|
|
202
|
+
if (Array.isArray(desktop.apps)) {
|
|
203
|
+
for (const appPath of desktop.apps) {
|
|
204
|
+
try {
|
|
205
|
+
await installDesktopPackage(_nuxt, appPath, desktop);
|
|
206
|
+
} catch (e) {
|
|
207
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
208
|
+
console.warn(`[@owdproject/core] Warning: Could not load app "${appPath}". Details: ${msg}`);
|
|
209
|
+
}
|
|
204
210
|
}
|
|
205
211
|
}
|
|
206
|
-
await installModule("@primevue/nuxt-module");
|
|
207
|
-
}
|
|
208
|
-
{
|
|
209
|
-
const tailwindPaths = _nuxt.options.runtimeConfig.app.owd?.tailwindPaths || [];
|
|
210
|
-
tailwindPaths.push("./runtime/components/**/*.{vue,mjs,ts}");
|
|
211
|
-
_nuxt.options.tailwindcss = _nuxt.options.tailwindcss || {};
|
|
212
|
-
_nuxt.options.tailwindcss.config = _nuxt.options.tailwindcss.config || {};
|
|
213
|
-
_nuxt.options.tailwindcss.config.content = tailwindPaths;
|
|
214
|
-
await installModule("@nuxtjs/tailwindcss", {
|
|
215
|
-
viewer: false
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
{
|
|
219
|
-
await installModule("@nuxt/fonts");
|
|
220
|
-
}
|
|
221
|
-
{
|
|
222
|
-
await installModule("@nuxt/icon", {
|
|
223
|
-
clientBundle: {
|
|
224
|
-
scan: true,
|
|
225
|
-
sizeLimitKb: 256
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
{
|
|
230
|
-
await installModule("@vueuse/nuxt");
|
|
231
|
-
}
|
|
232
|
-
{
|
|
233
|
-
await installModule("@nuxtjs/i18n");
|
|
234
212
|
}
|
|
213
|
+
_nuxt.options.appConfig.desktop = _nuxt.options.runtimeConfig.public.desktop;
|
|
235
214
|
{
|
|
236
215
|
_nuxt.hook("vite:extendConfig", (viteConfig) => {
|
|
237
216
|
viteConfig.css = viteConfig.css || {};
|
|
@@ -239,6 +218,11 @@ const module$1 = defineNuxtModule({
|
|
|
239
218
|
viteConfig.css.preprocessorOptions.scss = {
|
|
240
219
|
api: "modern-compiler"
|
|
241
220
|
};
|
|
221
|
+
viteConfig.optimizeDeps = viteConfig.optimizeDeps || {};
|
|
222
|
+
viteConfig.optimizeDeps.include = viteConfig.optimizeDeps.include || [];
|
|
223
|
+
if (resolvedNanoid && !viteConfig.optimizeDeps.include.includes(resolvedNanoid)) {
|
|
224
|
+
viteConfig.optimizeDeps.include.push(resolvedNanoid);
|
|
225
|
+
}
|
|
242
226
|
});
|
|
243
227
|
}
|
|
244
228
|
{
|
|
@@ -247,13 +231,16 @@ const module$1 = defineNuxtModule({
|
|
|
247
231
|
{
|
|
248
232
|
addComponentsDir({
|
|
249
233
|
path: resolve("./runtime/components"),
|
|
250
|
-
prefix: "",
|
|
234
|
+
prefix: "Desktop",
|
|
251
235
|
pathPrefix: false,
|
|
252
236
|
global: true
|
|
253
237
|
});
|
|
254
238
|
}
|
|
255
239
|
{
|
|
256
240
|
addPlugin(resolve("./runtime/plugins/resize.client.ts"));
|
|
241
|
+
addPlugin(
|
|
242
|
+
resolve("./runtime/plugins/01.desktop-shell-init.client.ts")
|
|
243
|
+
);
|
|
257
244
|
addPlugin(
|
|
258
245
|
resolve("./runtime/plugins/02.desktop-register-desktop-apps.client.ts")
|
|
259
246
|
);
|
package/index.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
export { defineDesktopApp } from './kit/defineDesktopApp'
|
|
1
2
|
export {
|
|
2
|
-
defineDesktopApp,
|
|
3
3
|
defineDesktopConfig,
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
defineDesktopModule,
|
|
5
|
+
defineDesktopTheme,
|
|
6
|
+
mergeDesktopExtensionConfig,
|
|
7
|
+
setDesktopExtensionConfig,
|
|
8
|
+
} from './kit/authoring'
|