@edenapp/sdk 0.5.0 → 0.5.1

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.
Files changed (37) hide show
  1. package/dist/Eden.js +2 -2
  2. package/dist/Eden.js.map +1 -1
  3. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/.bin/tsc +2 -2
  4. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/.bin/tsserver +2 -2
  5. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/@edenapp/types/CHANGELOG.md +2 -0
  6. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/@edenapp/types/EdenConfig.d.ts +2 -0
  7. package/dist/apps/prebuilt/com.eden.example.hello/backend/node_modules/@edenapp/types/package.json +1 -1
  8. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/.bin/tsc +2 -2
  9. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/.bin/tsserver +2 -2
  10. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/.bin/vite +2 -2
  11. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/@edenapp/types/CHANGELOG.md +2 -0
  12. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/@edenapp/types/EdenConfig.d.ts +2 -0
  13. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/@edenapp/types/package.json +1 -1
  14. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/vite/node_modules/.bin/esbuild +2 -2
  15. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/vite/node_modules/.bin/rollup +2 -2
  16. package/dist/apps/prebuilt/com.eden.example.hello/frontend/node_modules/vite/node_modules/.bin/yaml +2 -2
  17. package/dist/main.d.ts +2 -0
  18. package/dist/main.d.ts.map +1 -0
  19. package/dist/main.js +15 -0
  20. package/dist/main.js.map +1 -0
  21. package/dist/view-manager/DevToolsManager.d.ts +29 -0
  22. package/dist/view-manager/DevToolsManager.d.ts.map +1 -0
  23. package/dist/view-manager/DevToolsManager.js +88 -0
  24. package/dist/view-manager/DevToolsManager.js.map +1 -0
  25. package/dist/view-manager/LayoutCalculator.d.ts +49 -0
  26. package/dist/view-manager/LayoutCalculator.d.ts.map +1 -0
  27. package/dist/view-manager/LayoutCalculator.js +94 -0
  28. package/dist/view-manager/LayoutCalculator.js.map +1 -0
  29. package/dist/view-manager/TilingManager.d.ts +61 -0
  30. package/dist/view-manager/TilingManager.d.ts.map +1 -0
  31. package/dist/view-manager/TilingManager.js +142 -0
  32. package/dist/view-manager/TilingManager.js.map +1 -0
  33. package/dist/view-manager/ViewLifecycle.d.ts +66 -0
  34. package/dist/view-manager/ViewLifecycle.d.ts.map +1 -0
  35. package/dist/view-manager/ViewLifecycle.js +142 -0
  36. package/dist/view-manager/ViewLifecycle.js.map +1 -0
  37. package/package.json +4 -4
package/dist/Eden.js CHANGED
@@ -157,8 +157,8 @@ class Eden {
157
157
  this.mainWindow = new electron_1.BrowserWindow({
158
158
  width: windowConfig.width || 1280,
159
159
  height: windowConfig.height || 800,
160
- minWidth: 800,
161
- minHeight: 600,
160
+ minWidth: Math.max(windowConfig.minWidth || 800, 800),
161
+ minHeight: Math.max(windowConfig.minHeight || 600, 600),
162
162
  title: windowConfig.title || "Eden",
163
163
  webPreferences: {
164
164
  nodeIntegration: false,
package/dist/Eden.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Eden.js","sourceRoot":"","sources":["../src/Eden.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Eden.js","sourceRoot":"","sources":["../src/Eden.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,9 @@ case `uname` in
10
10
  esac
11
11
 
12
12
  if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules"
13
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules"
14
14
  else
15
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
15
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
16
16
  fi
17
17
  if [ -x "$basedir/node" ]; then
18
18
  exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
@@ -10,9 +10,9 @@ case `uname` in
10
10
  esac
11
11
 
12
12
  if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules"
13
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules"
14
14
  else
15
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
15
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
16
16
  fi
17
17
  if [ -x "$basedir/node" ]; then
18
18
  exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
@@ -1,5 +1,7 @@
1
1
  # @edenapp/types
2
2
 
3
+ ## 0.5.1
4
+
3
5
  ## 0.5.0
4
6
 
5
7
  ### Minor Changes
@@ -28,6 +28,8 @@ export interface EdenConfig {
28
28
  window?: {
29
29
  width?: number;
30
30
  height?: number;
31
+ minWidth?: number;
32
+ minHeight?: number;
31
33
  title?: string;
32
34
  backgroundColor?: string;
33
35
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edenapp/types",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "TypeScript type definitions for the Eden platform",
5
5
  "types": "index.d.ts",
6
6
  "author": "Dariusz Majnert",
@@ -10,9 +10,9 @@ case `uname` in
10
10
  esac
11
11
 
12
12
  if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules"
13
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules"
14
14
  else
15
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
15
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
16
16
  fi
17
17
  if [ -x "$basedir/node" ]; then
18
18
  exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
@@ -10,9 +10,9 @@ case `uname` in
10
10
  esac
11
11
 
12
12
  if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules"
13
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules"
14
14
  else
15
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
15
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/typescript@5.6.3/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
16
16
  fi
17
17
  if [ -x "$basedir/node" ]; then
18
18
  exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
@@ -10,9 +10,9 @@ case `uname` in
10
10
  esac
11
11
 
12
12
  if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/vite@7.2.6_@types+node@24.10.10_yaml@2.8.2/node_modules/vite/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/vite@7.2.6_@types+node@24.10.10_yaml@2.8.2/node_modules/vite/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/vite@7.2.6_@types+node@24.10.10_yaml@2.8.2/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules"
13
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/vite@7.2.6_@types+node@24.10.10_yaml@2.8.2/node_modules/vite/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/vite@7.2.6_@types+node@24.10.10_yaml@2.8.2/node_modules/vite/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/vite@7.2.6_@types+node@24.10.10_yaml@2.8.2/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules"
14
14
  else
15
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/vite@7.2.6_@types+node@24.10.10_yaml@2.8.2/node_modules/vite/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/vite@7.2.6_@types+node@24.10.10_yaml@2.8.2/node_modules/vite/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/vite@7.2.6_@types+node@24.10.10_yaml@2.8.2/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
15
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/vite@7.2.6_@types+node@24.10.10_yaml@2.8.2/node_modules/vite/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/vite@7.2.6_@types+node@24.10.10_yaml@2.8.2/node_modules/vite/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/vite@7.2.6_@types+node@24.10.10_yaml@2.8.2/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
16
16
  fi
17
17
  if [ -x "$basedir/node" ]; then
18
18
  exec "$basedir/node" "$basedir/../vite/bin/vite.js" "$@"
@@ -1,5 +1,7 @@
1
1
  # @edenapp/types
2
2
 
3
+ ## 0.5.1
4
+
3
5
  ## 0.5.0
4
6
 
5
7
  ### Minor Changes
@@ -28,6 +28,8 @@ export interface EdenConfig {
28
28
  window?: {
29
29
  width?: number;
30
30
  height?: number;
31
+ minWidth?: number;
32
+ minHeight?: number;
31
33
  title?: string;
32
34
  backgroundColor?: string;
33
35
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edenapp/types",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "TypeScript type definitions for the Eden platform",
5
5
  "types": "index.d.ts",
6
6
  "author": "Dariusz Majnert",
@@ -10,9 +10,9 @@ case `uname` in
10
10
  esac
11
11
 
12
12
  if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/esbuild@0.25.12/node_modules/esbuild/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/esbuild@0.25.12/node_modules/esbuild/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/esbuild@0.25.12/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules"
13
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/esbuild@0.25.12/node_modules/esbuild/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/esbuild@0.25.12/node_modules/esbuild/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/esbuild@0.25.12/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules"
14
14
  else
15
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/esbuild@0.25.12/node_modules/esbuild/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/esbuild@0.25.12/node_modules/esbuild/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/esbuild@0.25.12/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
15
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/esbuild@0.25.12/node_modules/esbuild/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/esbuild@0.25.12/node_modules/esbuild/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/esbuild@0.25.12/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
16
16
  fi
17
17
  "$basedir/../../../esbuild/bin/esbuild" "$@"
18
18
  exit $?
@@ -10,9 +10,9 @@ case `uname` in
10
10
  esac
11
11
 
12
12
  if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/rollup@4.53.3/node_modules/rollup/dist/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/rollup@4.53.3/node_modules/rollup/dist/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/rollup@4.53.3/node_modules/rollup/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/rollup@4.53.3/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules"
13
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/rollup@4.53.3/node_modules/rollup/dist/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/rollup@4.53.3/node_modules/rollup/dist/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/rollup@4.53.3/node_modules/rollup/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/rollup@4.53.3/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules"
14
14
  else
15
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/rollup@4.53.3/node_modules/rollup/dist/bin/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/rollup@4.53.3/node_modules/rollup/dist/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/rollup@4.53.3/node_modules/rollup/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/rollup@4.53.3/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
15
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/rollup@4.53.3/node_modules/rollup/dist/bin/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/rollup@4.53.3/node_modules/rollup/dist/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/rollup@4.53.3/node_modules/rollup/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/rollup@4.53.3/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
16
16
  fi
17
17
  if [ -x "$basedir/node" ]; then
18
18
  exec "$basedir/node" "$basedir/../../../rollup/dist/bin/rollup" "$@"
@@ -10,9 +10,9 @@ case `uname` in
10
10
  esac
11
11
 
12
12
  if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/yaml@2.8.2/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules"
13
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/yaml@2.8.2/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules"
14
14
  else
15
- export NODE_PATH="/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/yaml@2.8.2/node_modules:/home/dariusz/Desktop/cockpit/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
15
+ export NODE_PATH="/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/yaml@2.8.2/node_modules/yaml/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/yaml@2.8.2/node_modules:/home/dariusz/Desktop/eden-linuxcnc/eden/node_modules/.pnpm/node_modules:$NODE_PATH"
16
16
  fi
17
17
  if [ -x "$basedir/node" ]; then
18
18
  exec "$basedir/node" "$basedir/../../../yaml/bin.mjs" "$@"
package/dist/main.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
package/dist/main.js ADDED
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Eden_1 = require("./Eden");
4
+ // Create and start the Eden app
5
+ new Eden_1.Eden({
6
+ development: process.env.NODE_ENV === "development",
7
+ tiling: {
8
+ mode: "horizontal", // Options: "none", "horizontal", "vertical", "grid"
9
+ gap: 8, // Gap between tiles in pixels
10
+ padding: 8, // Padding around workspace in pixels
11
+ },
12
+ userDirectory: ".",
13
+ autostart: ["com.eden.eveshell", "com.eden.toaster"],
14
+ });
15
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,iCAA8B;AAE9B,gCAAgC;AAChC,IAAI,WAAI,CAAC;IACP,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;IACnD,MAAM,EAAE;QACN,IAAI,EAAE,YAAY,EAAE,oDAAoD;QACxE,GAAG,EAAE,CAAC,EAAE,8BAA8B;QACtC,OAAO,EAAE,CAAC,EAAE,qCAAqC;KAClD;IACD,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;CACrD,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { WebContentsView } from "electron";
2
+ /**
3
+ * DevToolsManager
4
+ *
5
+ * Manages DevTools for WebContentsViews, including:
6
+ * - Keyboard shortcut registration (Ctrl+Shift+D)
7
+ * - Automatic cleanup when views are destroyed
8
+ */
9
+ export declare class DevToolsManager {
10
+ private viewsWithDevTools;
11
+ /**
12
+ * Register DevTools shortcut (Ctrl+Shift+D) on a WebContentsView
13
+ * Works on both X11 and Wayland
14
+ */
15
+ registerShortcut(view: WebContentsView): void;
16
+ /**
17
+ * Close DevTools for a view when it's being destroyed
18
+ */
19
+ closeDevToolsForView(view: WebContentsView): void;
20
+ /**
21
+ * Get the set of webContents IDs that have DevTools open
22
+ */
23
+ getViewsWithDevTools(): Set<number>;
24
+ /**
25
+ * Clear all tracked DevTools
26
+ */
27
+ clear(): void;
28
+ }
29
+ //# sourceMappingURL=DevToolsManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevToolsManager.d.ts","sourceRoot":"","sources":["../../src/view-manager/DevToolsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C;;;;;;GAMG;AACH,qBAEa,eAAe;IAC1B,OAAO,CAAC,iBAAiB,CAA0B;IAEnD;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IA8B7C;;OAEG;IACH,oBAAoB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAqBjD;;OAEG;IACH,oBAAoB,IAAI,GAAG,CAAC,MAAM,CAAC;IAInC;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.DevToolsManager = void 0;
10
+ const tsyringe_1 = require("tsyringe");
11
+ /**
12
+ * DevToolsManager
13
+ *
14
+ * Manages DevTools for WebContentsViews, including:
15
+ * - Keyboard shortcut registration (Ctrl+Shift+D)
16
+ * - Automatic cleanup when views are destroyed
17
+ */
18
+ let DevToolsManager = class DevToolsManager {
19
+ viewsWithDevTools = new Set();
20
+ /**
21
+ * Register DevTools shortcut (Ctrl+Shift+D) on a WebContentsView
22
+ * Works on both X11 and Wayland
23
+ */
24
+ registerShortcut(view) {
25
+ view.webContents.on("before-input-event", (event, input) => {
26
+ // Check for Ctrl+Shift+D (or Cmd+Shift+D on macOS)
27
+ if (input.type === "keyDown" &&
28
+ input.key.toLowerCase() === "d" &&
29
+ input.shift &&
30
+ (input.control || input.meta) &&
31
+ !input.alt) {
32
+ event.preventDefault();
33
+ try {
34
+ const webContentsId = view.webContents.id;
35
+ if (view.webContents.isDevToolsOpened()) {
36
+ view.webContents.closeDevTools();
37
+ this.viewsWithDevTools.delete(webContentsId);
38
+ console.log("Closed DevTools for view");
39
+ }
40
+ else {
41
+ view.webContents.openDevTools();
42
+ this.viewsWithDevTools.add(webContentsId);
43
+ console.log("Opened DevTools for view");
44
+ }
45
+ }
46
+ catch (err) {
47
+ console.error("Failed to toggle DevTools:", err);
48
+ }
49
+ }
50
+ });
51
+ }
52
+ /**
53
+ * Close DevTools for a view when it's being destroyed
54
+ */
55
+ closeDevToolsForView(view) {
56
+ try {
57
+ const webContentsId = view.webContents.id;
58
+ if (!view.webContents.isDestroyed() &&
59
+ view.webContents.isDevToolsOpened()) {
60
+ view.webContents.closeDevTools();
61
+ console.log(`Closed DevTools for view (webContents ID: ${webContentsId})`);
62
+ }
63
+ this.viewsWithDevTools.delete(webContentsId);
64
+ }
65
+ catch (err) {
66
+ // Ignore errors during cleanup
67
+ console.debug("Error closing DevTools during cleanup:", err);
68
+ }
69
+ }
70
+ /**
71
+ * Get the set of webContents IDs that have DevTools open
72
+ */
73
+ getViewsWithDevTools() {
74
+ return new Set(this.viewsWithDevTools);
75
+ }
76
+ /**
77
+ * Clear all tracked DevTools
78
+ */
79
+ clear() {
80
+ this.viewsWithDevTools.clear();
81
+ }
82
+ };
83
+ exports.DevToolsManager = DevToolsManager;
84
+ exports.DevToolsManager = DevToolsManager = __decorate([
85
+ (0, tsyringe_1.singleton)(),
86
+ (0, tsyringe_1.injectable)()
87
+ ], DevToolsManager);
88
+ //# sourceMappingURL=DevToolsManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevToolsManager.js","sourceRoot":"","sources":["../../src/view-manager/DevToolsManager.ts"],"names":[],"mappings":";;;;;;;;;AACA,uCAAiD;AAEjD;;;;;;GAMG;AAGI,IAAM,eAAe,GAArB,MAAM,eAAe;IAClB,iBAAiB,GAAgB,IAAI,GAAG,EAAE,CAAC;IAEnD;;;OAGG;IACH,gBAAgB,CAAC,IAAqB;QACpC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACzD,mDAAmD;YACnD,IACE,KAAK,CAAC,IAAI,KAAK,SAAS;gBACxB,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG;gBAC/B,KAAK,CAAC,KAAK;gBACX,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC;gBAC7B,CAAC,KAAK,CAAC,GAAG,EACV,CAAC;gBACD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;oBAE1C,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,EAAE,CAAC;wBACxC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;wBACjC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;wBAC7C,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;oBAC1C,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;wBAChC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;wBAC1C,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,IAAqB;QACxC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAE1C,IACE,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;gBAC/B,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,EACnC,CAAC;gBACD,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CACT,6CAA6C,aAAa,GAAG,CAC9D,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,+BAA+B;YAC/B,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;CACF,CAAA;AA1EY,0CAAe;0BAAf,eAAe;IAF3B,IAAA,oBAAS,GAAE;IACX,IAAA,qBAAU,GAAE;GACA,eAAe,CA0E3B"}
@@ -0,0 +1,49 @@
1
+ import { Rectangle as Bounds } from "electron";
2
+ import { TilingConfig } from "@edenapp/types";
3
+ /**
4
+ * Grid dimensions for a layout
5
+ */
6
+ interface GridDimensions {
7
+ rows: number;
8
+ columns: number;
9
+ }
10
+ /**
11
+ * Layout calculation parameters
12
+ */
13
+ interface LayoutParams {
14
+ workspace: Bounds;
15
+ tileIndex: number;
16
+ visibleCount: number;
17
+ config: TilingConfig;
18
+ }
19
+ /**
20
+ * LayoutCalculator
21
+ *
22
+ * Generic utility for calculating tile bounds in various layout modes.
23
+ * Provides a pluggable system for different tiling strategies.
24
+ */
25
+ export declare class LayoutCalculator {
26
+ /**
27
+ * Calculate bounds for a tile at a given index
28
+ */
29
+ static calculateTileBounds(params: LayoutParams): Bounds;
30
+ /**
31
+ * Apply padding to bounds
32
+ */
33
+ private static applyPadding;
34
+ /**
35
+ * Determine grid dimensions based on tiling mode
36
+ */
37
+ private static getGridDimensions;
38
+ /**
39
+ * Calculate bounds for a specific cell in a grid
40
+ */
41
+ private static calculateGridCell;
42
+ /**
43
+ * Calculate optimal grid dimensions for a given number of items
44
+ * Useful for auto-layout modes
45
+ */
46
+ static calculateOptimalGrid(itemCount: number): GridDimensions;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=LayoutCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutCalculator.d.ts","sourceRoot":"","sources":["../../src/view-manager/LayoutCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAC;AAE1D;;GAEG;AACH,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,UAAU,YAAY;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAmBxD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAS3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAwBhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAqBhC;;;OAGG;IACH,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;CAa/D"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LayoutCalculator = void 0;
4
+ /**
5
+ * LayoutCalculator
6
+ *
7
+ * Generic utility for calculating tile bounds in various layout modes.
8
+ * Provides a pluggable system for different tiling strategies.
9
+ */
10
+ class LayoutCalculator {
11
+ /**
12
+ * Calculate bounds for a tile at a given index
13
+ */
14
+ static calculateTileBounds(params) {
15
+ const { workspace, tileIndex, visibleCount, config } = params;
16
+ const { mode, gap = 0, padding = 0, columns = 2, rows = 2 } = config;
17
+ // Apply padding to workspace
18
+ const available = this.applyPadding(workspace, padding);
19
+ // No tiling or no visible items
20
+ if (mode === "none" || visibleCount === 0) {
21
+ return available;
22
+ }
23
+ // Calculate grid dimensions based on mode
24
+ const grid = this.getGridDimensions(mode, visibleCount, rows, columns);
25
+ // Calculate tile bounds in grid
26
+ return this.calculateGridCell(available, tileIndex, grid, gap);
27
+ }
28
+ /**
29
+ * Apply padding to bounds
30
+ */
31
+ static applyPadding(bounds, padding) {
32
+ return {
33
+ x: bounds.x + padding,
34
+ y: bounds.y + padding,
35
+ width: bounds.width - padding * 2,
36
+ height: bounds.height - padding * 2,
37
+ };
38
+ }
39
+ /**
40
+ * Determine grid dimensions based on tiling mode
41
+ */
42
+ static getGridDimensions(mode, visibleCount, configRows, configColumns) {
43
+ switch (mode) {
44
+ case "horizontal":
45
+ // Horizontal = 1 row × N columns
46
+ return { rows: 1, columns: visibleCount };
47
+ case "vertical":
48
+ // Vertical = N rows × 1 column
49
+ return { rows: visibleCount, columns: 1 };
50
+ case "grid":
51
+ // Use configured dimensions
52
+ return { rows: configRows, columns: configColumns };
53
+ default:
54
+ return { rows: 1, columns: 1 };
55
+ }
56
+ }
57
+ /**
58
+ * Calculate bounds for a specific cell in a grid
59
+ */
60
+ static calculateGridCell(available, index, grid, gap) {
61
+ const col = index % grid.columns;
62
+ const row = Math.floor(index / grid.columns);
63
+ const tileWidth = (available.width - gap * (grid.columns - 1)) / grid.columns;
64
+ const tileHeight = (available.height - gap * (grid.rows - 1)) / grid.rows;
65
+ return {
66
+ x: available.x + col * (tileWidth + gap),
67
+ y: available.y + row * (tileHeight + gap),
68
+ width: tileWidth,
69
+ height: tileHeight,
70
+ };
71
+ }
72
+ /**
73
+ * Calculate optimal grid dimensions for a given number of items
74
+ * Useful for auto-layout modes
75
+ */
76
+ static calculateOptimalGrid(itemCount) {
77
+ if (itemCount <= 0)
78
+ return { rows: 1, columns: 1 };
79
+ if (itemCount === 1)
80
+ return { rows: 1, columns: 1 };
81
+ if (itemCount === 2)
82
+ return { rows: 1, columns: 2 };
83
+ if (itemCount === 3)
84
+ return { rows: 1, columns: 3 };
85
+ if (itemCount === 4)
86
+ return { rows: 2, columns: 2 };
87
+ // For larger counts, try to make it roughly square
88
+ const columns = Math.ceil(Math.sqrt(itemCount));
89
+ const rows = Math.ceil(itemCount / columns);
90
+ return { rows, columns };
91
+ }
92
+ }
93
+ exports.LayoutCalculator = LayoutCalculator;
94
+ //# sourceMappingURL=LayoutCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutCalculator.js","sourceRoot":"","sources":["../../src/view-manager/LayoutCalculator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { Rectangle as Bounds } from "electron";
2
+ import { TilingConfig } from "@edenapp/types";
3
+ import { ViewInfo, ViewMode } from "./types";
4
+ /**
5
+ * TilingManager
6
+ *
7
+ * Handles tiling calculations and view positioning for tiled window mode.
8
+ * Extracted from ViewManager for better separation of concerns.
9
+ */
10
+ export declare class TilingManager {
11
+ private config;
12
+ private workspaceBounds;
13
+ constructor(config?: TilingConfig, workspaceBounds?: Bounds);
14
+ /**
15
+ * Update the workspace bounds used for tile calculations
16
+ */
17
+ setWorkspaceBounds(bounds: Bounds): void;
18
+ /**
19
+ * Get current workspace bounds
20
+ */
21
+ getWorkspaceBounds(): Bounds;
22
+ /**
23
+ * Update tiling configuration
24
+ */
25
+ setConfig(config: TilingConfig): void;
26
+ /**
27
+ * Get current tiling configuration
28
+ */
29
+ getConfig(): TilingConfig;
30
+ /**
31
+ * Check if tiling is enabled
32
+ */
33
+ isEnabled(): boolean;
34
+ /**
35
+ * Calculate bounds for a tile based on tiling configuration
36
+ * @param tileIndex - Index of the tile to calculate
37
+ * @param visibleCount - Total number of visible tiled views
38
+ */
39
+ calculateTileBounds(tileIndex: number, visibleCount: number): Bounds;
40
+ /**
41
+ * Get the next available tile index from a collection of views
42
+ * @param views - Iterable of view information
43
+ */
44
+ getNextTileIndex(views: Iterable<ViewInfo>): number;
45
+ /**
46
+ * Get count of visible tiled views
47
+ * @param views - Iterable of view information
48
+ */
49
+ getVisibleTiledCount(views: Iterable<ViewInfo>): number;
50
+ /**
51
+ * Recalculate bounds for all tiled views
52
+ * Returns updated views with new bounds applied
53
+ * @param views - Map of viewId to ViewInfo
54
+ */
55
+ recalculateTiledViews(views: Map<number, ViewInfo>): void;
56
+ /**
57
+ * Determine view mode based on manifest window config and tiling state
58
+ */
59
+ determineViewMode(windowMode?: "floating" | "tiled" | "both"): ViewMode;
60
+ }
61
+ //# sourceMappingURL=TilingManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TilingManager.d.ts","sourceRoot":"","sources":["../../src/view-manager/TilingManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAI7C;;;;;GAKG;AACH,qBAEa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAS;gBAG9B,MAAM,GAAE,YAAmD,EAC3D,eAAe,GAAE,MAAgD;IAMnE;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIrC;;OAEG;IACH,SAAS,IAAI,YAAY;IAIzB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IASpE;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM;IAWnD;;;OAGG;IACH,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM;IAKvD;;;;OAIG;IACH,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI;IAsBzD;;OAEG;IACH,iBAAiB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ;CAmBxE"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TilingManager = void 0;
13
+ const LayoutCalculator_1 = require("./LayoutCalculator");
14
+ const tsyringe_1 = require("tsyringe");
15
+ /**
16
+ * TilingManager
17
+ *
18
+ * Handles tiling calculations and view positioning for tiled window mode.
19
+ * Extracted from ViewManager for better separation of concerns.
20
+ */
21
+ let TilingManager = class TilingManager {
22
+ config;
23
+ workspaceBounds;
24
+ constructor(config = { mode: "none", gap: 0, padding: 0 }, workspaceBounds = { x: 0, y: 0, width: 800, height: 600 }) {
25
+ this.config = config;
26
+ this.workspaceBounds = workspaceBounds;
27
+ }
28
+ /**
29
+ * Update the workspace bounds used for tile calculations
30
+ */
31
+ setWorkspaceBounds(bounds) {
32
+ this.workspaceBounds = bounds;
33
+ }
34
+ /**
35
+ * Get current workspace bounds
36
+ */
37
+ getWorkspaceBounds() {
38
+ return this.workspaceBounds;
39
+ }
40
+ /**
41
+ * Update tiling configuration
42
+ */
43
+ setConfig(config) {
44
+ this.config = config;
45
+ }
46
+ /**
47
+ * Get current tiling configuration
48
+ */
49
+ getConfig() {
50
+ return this.config;
51
+ }
52
+ /**
53
+ * Check if tiling is enabled
54
+ */
55
+ isEnabled() {
56
+ return this.config.mode !== "none";
57
+ }
58
+ /**
59
+ * Calculate bounds for a tile based on tiling configuration
60
+ * @param tileIndex - Index of the tile to calculate
61
+ * @param visibleCount - Total number of visible tiled views
62
+ */
63
+ calculateTileBounds(tileIndex, visibleCount) {
64
+ return LayoutCalculator_1.LayoutCalculator.calculateTileBounds({
65
+ workspace: this.workspaceBounds,
66
+ tileIndex,
67
+ visibleCount,
68
+ config: this.config,
69
+ });
70
+ }
71
+ /**
72
+ * Get the next available tile index from a collection of views
73
+ * @param views - Iterable of view information
74
+ */
75
+ getNextTileIndex(views) {
76
+ const indices = Array.from(views)
77
+ .filter((v) => v.visible && v.mode === "tiled" && v.tileIndex !== undefined)
78
+ .map((v) => v.tileIndex);
79
+ if (indices.length === 0)
80
+ return 0;
81
+ return Math.max(...indices) + 1;
82
+ }
83
+ /**
84
+ * Get count of visible tiled views
85
+ * @param views - Iterable of view information
86
+ */
87
+ getVisibleTiledCount(views) {
88
+ return Array.from(views).filter((v) => v.visible && v.mode === "tiled")
89
+ .length;
90
+ }
91
+ /**
92
+ * Recalculate bounds for all tiled views
93
+ * Returns updated views with new bounds applied
94
+ * @param views - Map of viewId to ViewInfo
95
+ */
96
+ recalculateTiledViews(views) {
97
+ if (!this.isEnabled())
98
+ return;
99
+ // Get visible tiled views sorted by tile index
100
+ const visibleViews = Array.from(views.entries())
101
+ .filter(([_, info]) => info.visible && info.mode === "tiled")
102
+ .sort((a, b) => (a[1].tileIndex || 0) - (b[1].tileIndex || 0));
103
+ const visibleCount = visibleViews.length;
104
+ visibleViews.forEach(([viewId, info], index) => {
105
+ const bounds = this.calculateTileBounds(index, visibleCount);
106
+ info.tileIndex = index;
107
+ info.bounds = bounds;
108
+ // Only set bounds if view is not destroyed
109
+ if (!info.view.webContents.isDestroyed()) {
110
+ info.view.setBounds(bounds);
111
+ }
112
+ });
113
+ }
114
+ /**
115
+ * Determine view mode based on manifest window config and tiling state
116
+ */
117
+ determineViewMode(windowMode) {
118
+ // If no window config mode specified
119
+ if (!windowMode) {
120
+ return this.isEnabled() ? "tiled" : "floating";
121
+ }
122
+ // Check what the app supports
123
+ switch (windowMode) {
124
+ case "floating":
125
+ return "floating";
126
+ case "tiled":
127
+ return "tiled";
128
+ case "both":
129
+ // If app supports both, prefer tiled if tiling is enabled
130
+ return this.isEnabled() ? "tiled" : "floating";
131
+ default:
132
+ return this.isEnabled() ? "tiled" : "floating";
133
+ }
134
+ }
135
+ };
136
+ exports.TilingManager = TilingManager;
137
+ exports.TilingManager = TilingManager = __decorate([
138
+ (0, tsyringe_1.singleton)(),
139
+ (0, tsyringe_1.injectable)(),
140
+ __metadata("design:paramtypes", [Object, Object])
141
+ ], TilingManager);
142
+ //# sourceMappingURL=TilingManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TilingManager.js","sourceRoot":"","sources":["../../src/view-manager/TilingManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { BrowserWindow, WebContentsView } from "electron";
2
+ import { ViewInfo } from "./types";
3
+ /**
4
+ * ViewGuard
5
+ *
6
+ * Utility class for validating view state before operations.
7
+ * Provides defensive checks to prevent crashes from destroyed views.
8
+ */
9
+ export declare class ViewGuard {
10
+ /**
11
+ * Check if a WebContentsView exists and is valid
12
+ */
13
+ static isValid(view?: WebContentsView): view is WebContentsView;
14
+ /**
15
+ * Check if a WebContentsView's webContents is still alive (not destroyed)
16
+ */
17
+ static isAlive(view?: WebContentsView): boolean;
18
+ /**
19
+ * Check if a BrowserWindow exists and is not destroyed
20
+ */
21
+ static isWindowAlive(window?: BrowserWindow | null): window is BrowserWindow;
22
+ /**
23
+ * Get a view from the map with validation
24
+ * Throws an error if view is not found or destroyed
25
+ */
26
+ static requireView(viewId: number, views: Map<number, ViewInfo>): ViewInfo;
27
+ /**
28
+ * Get a view by app ID from the map, returning the first matching view
29
+ * Throws an error if view is not found or destroyed
30
+ */
31
+ static requireViewByAppId(appId: string, views: Map<number, ViewInfo>): {
32
+ viewId: number;
33
+ viewInfo: ViewInfo;
34
+ };
35
+ }
36
+ /**
37
+ * Options for creating a WebContentsView
38
+ */
39
+ export interface ViewCreationOptions {
40
+ preloadScript: string;
41
+ transparent?: boolean;
42
+ backgroundThrottling?: boolean;
43
+ additionalArguments?: string[];
44
+ }
45
+ /**
46
+ * ViewLifecycle
47
+ *
48
+ * Handles creation and destruction of WebContentsViews.
49
+ * Provides safe lifecycle management with proper cleanup.
50
+ */
51
+ export declare class ViewLifecycle {
52
+ /**
53
+ * Create a new WebContentsView with standard options
54
+ */
55
+ static createView(options: ViewCreationOptions): WebContentsView;
56
+ /**
57
+ * Safely destroy a view and remove it from the main window
58
+ */
59
+ static destroyView(viewInfo: ViewInfo, mainWindow: BrowserWindow | null): void;
60
+ /**
61
+ * Remove all destroyed views from a view map
62
+ * Returns the number of views cleaned up
63
+ */
64
+ static cleanupDestroyedViews(views: Map<number, ViewInfo>): number;
65
+ }
66
+ //# sourceMappingURL=ViewLifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewLifecycle.d.ts","sourceRoot":"","sources":["../../src/view-manager/ViewLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC;;;;;GAKG;AACH,qBAAa,SAAS;IACpB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,IAAI,eAAe;IAI/D;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO;IAS/C;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,MAAM,IAAI,aAAa;IAI5E;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ;IAc1E;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CACvB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAC3B;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE;CAY1C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED;;;;;GAKG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,eAAe;IAuBhE;;OAEG;IACH,MAAM,CAAC,WAAW,CAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,aAAa,GAAG,IAAI,GAC/B,IAAI;IA4BP;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM;CAqBnE"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViewLifecycle = exports.ViewGuard = void 0;
4
+ const electron_1 = require("electron");
5
+ /**
6
+ * ViewGuard
7
+ *
8
+ * Utility class for validating view state before operations.
9
+ * Provides defensive checks to prevent crashes from destroyed views.
10
+ */
11
+ class ViewGuard {
12
+ /**
13
+ * Check if a WebContentsView exists and is valid
14
+ */
15
+ static isValid(view) {
16
+ return view !== undefined && view !== null;
17
+ }
18
+ /**
19
+ * Check if a WebContentsView's webContents is still alive (not destroyed)
20
+ */
21
+ static isAlive(view) {
22
+ if (!ViewGuard.isValid(view))
23
+ return false;
24
+ try {
25
+ return !view.webContents.isDestroyed();
26
+ }
27
+ catch {
28
+ return false;
29
+ }
30
+ }
31
+ /**
32
+ * Check if a BrowserWindow exists and is not destroyed
33
+ */
34
+ static isWindowAlive(window) {
35
+ return window !== undefined && window !== null && !window.isDestroyed();
36
+ }
37
+ /**
38
+ * Get a view from the map with validation
39
+ * Throws an error if view is not found or destroyed
40
+ */
41
+ static requireView(viewId, views) {
42
+ const viewInfo = views.get(viewId);
43
+ if (!viewInfo) {
44
+ throw new Error(`View ${viewId} not found`);
45
+ }
46
+ if (!ViewGuard.isAlive(viewInfo.view)) {
47
+ throw new Error(`View ${viewId} is destroyed`);
48
+ }
49
+ return viewInfo;
50
+ }
51
+ /**
52
+ * Get a view by app ID from the map, returning the first matching view
53
+ * Throws an error if view is not found or destroyed
54
+ */
55
+ static requireViewByAppId(appId, views) {
56
+ for (const [viewId, info] of views.entries()) {
57
+ if (info.appId === appId) {
58
+ if (!ViewGuard.isAlive(info.view)) {
59
+ throw new Error(`View for app ${appId} is destroyed`);
60
+ }
61
+ return { viewId, viewInfo: info };
62
+ }
63
+ }
64
+ throw new Error(`No view found for app ${appId}`);
65
+ }
66
+ }
67
+ exports.ViewGuard = ViewGuard;
68
+ /**
69
+ * ViewLifecycle
70
+ *
71
+ * Handles creation and destruction of WebContentsViews.
72
+ * Provides safe lifecycle management with proper cleanup.
73
+ */
74
+ class ViewLifecycle {
75
+ /**
76
+ * Create a new WebContentsView with standard options
77
+ */
78
+ static createView(options) {
79
+ const { preloadScript, transparent = true, backgroundThrottling = false, additionalArguments = [], } = options;
80
+ return new electron_1.WebContentsView({
81
+ webPreferences: {
82
+ nodeIntegration: false,
83
+ contextIsolation: true,
84
+ sandbox: false,
85
+ preload: preloadScript,
86
+ transparent,
87
+ backgroundThrottling,
88
+ scrollBounce: false,
89
+ spellcheck: false,
90
+ additionalArguments,
91
+ },
92
+ });
93
+ }
94
+ /**
95
+ * Safely destroy a view and remove it from the main window
96
+ */
97
+ static destroyView(viewInfo, mainWindow) {
98
+ try {
99
+ // Check if view is already destroyed
100
+ if (!ViewGuard.isAlive(viewInfo.view)) {
101
+ // View already destroyed, nothing to do
102
+ return;
103
+ }
104
+ // Remove from main window if window still exists
105
+ if (ViewGuard.isWindowAlive(mainWindow)) {
106
+ try {
107
+ mainWindow.contentView.removeChildView(viewInfo.view);
108
+ }
109
+ catch (error) {
110
+ // Ignore errors during removal - view might already be removed
111
+ console.warn("[ViewLifecycle] Ignoring error during view removal:", error);
112
+ }
113
+ }
114
+ }
115
+ catch (error) {
116
+ const errorMessage = error instanceof Error ? error.message : String(error);
117
+ console.error("[ViewLifecycle] Failed to destroy view:", errorMessage);
118
+ throw new Error(`Failed to destroy view: ${errorMessage}`);
119
+ }
120
+ }
121
+ /**
122
+ * Remove all destroyed views from a view map
123
+ * Returns the number of views cleaned up
124
+ */
125
+ static cleanupDestroyedViews(views) {
126
+ const destroyedIds = [];
127
+ for (const [viewId, info] of views.entries()) {
128
+ if (!ViewGuard.isAlive(info.view)) {
129
+ destroyedIds.push(viewId);
130
+ }
131
+ }
132
+ for (const id of destroyedIds) {
133
+ views.delete(id);
134
+ }
135
+ if (destroyedIds.length > 0) {
136
+ console.log(`[ViewLifecycle] Cleaned up ${destroyedIds.length} destroyed views`);
137
+ }
138
+ return destroyedIds.length;
139
+ }
140
+ }
141
+ exports.ViewLifecycle = ViewLifecycle;
142
+ //# sourceMappingURL=ViewLifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewLifecycle.js","sourceRoot":"","sources":["../../src/view-manager/ViewLifecycle.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edenapp/sdk",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Eden Desktop Environment SDK - Build Electron-based desktop environments with modular app support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -28,8 +28,8 @@
28
28
  "keyv": "^5.1.0",
29
29
  "reflect-metadata": "^0.2.2",
30
30
  "tsyringe": "^4.10.0",
31
- "@edenapp/genesis": "0.5.0",
32
- "@edenapp/types": "0.5.0"
31
+ "@edenapp/types": "0.5.1",
32
+ "@edenapp/genesis": "0.5.1"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/jest": "^29.5.14",
@@ -42,7 +42,7 @@
42
42
  "ts-morph": "^27.0.2",
43
43
  "ts-node": "^10.9.2",
44
44
  "typescript": "^5.3.0",
45
- "@edenapp/scripts": "0.5.0"
45
+ "@edenapp/scripts": "0.5.1"
46
46
  },
47
47
  "scripts": {
48
48
  "build": "pnpm run tokens:build && pnpm run css:build && pnpm run codegen && pnpm run build:main && pnpm run bundle:app-frame && pnpm run bundle:app-runtime && pnpm run build:apps && pnpm run copy-assets",