summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--gjs/.eslintrc.yml12
-rw-r--r--gjs/.gitignore5
-rw-r--r--gjs/index.ts2
-rw-r--r--gjs/package-lock.json240
-rw-r--r--gjs/package.json29
-rw-r--r--gjs/src/application.ts2
-rw-r--r--gjs/src/astalify.ts2
-rw-r--r--gjs/src/file.ts2
-rw-r--r--gjs/src/widgets.ts17
-rw-r--r--gjs/tsconfig.json20
11 files changed, 97 insertions, 236 deletions
diff --git a/README.md b/README.md
index cb5d17c..58cc229 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ python and lua should be stright forward, just run the interpreter
for javascript do
```bash
-cd js
+cd gjs
npm i
npm run types
npm run build -- --watch
diff --git a/gjs/.eslintrc.yml b/gjs/.eslintrc.yml
index bb0abc7..e4309b0 100644
--- a/gjs/.eslintrc.yml
+++ b/gjs/.eslintrc.yml
@@ -16,15 +16,6 @@ rules:
"@typescript-eslint/ban-ts-comment": error
"@typescript-eslint/no-explicit-any": off
"@typescript-eslint/no-non-null-assertion": off
- # "@typescript-eslint/no-unused-vars":
- # - error
- # - varsIgnorePattern: (^unused|_$)
- # argsIgnorePattern: ^(unused|_)
- # "@typescript-eslint/no-empty-interface": off
- # "@typescript-eslint/no-namespace": off
- # "@typescript-eslint/prefer-namespace-keyword": off
- # "@typescript-eslint/ban-types": off
- #
arrow-parens:
- error
- as-needed
@@ -81,7 +72,6 @@ rules:
max-len:
- error
- code: 100
-
func-call-spacing:
- error
array-bracket-spacing:
@@ -101,8 +91,6 @@ rules:
globals:
globalThis: readonly
imports: readonly
- log: readonly
- logError: readonly
print: readonly
printerr: readonly
console: readonly
diff --git a/gjs/.gitignore b/gjs/.gitignore
index 3ab63b7..8c2cc59 100644
--- a/gjs/.gitignore
+++ b/gjs/.gitignore
@@ -1,4 +1,3 @@
-node_modules
-result
-@girs/
+node_modules/
+result/
dist/
diff --git a/gjs/index.ts b/gjs/index.ts
index 2ed6f7f..901b264 100644
--- a/gjs/index.ts
+++ b/gjs/index.ts
@@ -7,7 +7,7 @@ export * from "./src/file.js"
export { bind, default as Binding } from "./src/binding.js"
export { Variable } from "./src/variable.js"
export * as Widget from "./src/widgets.js"
-export { App } from "./src/application.js"
+export { default as App } from "./src/application.js"
// gjs crashes if a widget is constructed before Gtk.init
Gtk.init(null)
diff --git a/gjs/package-lock.json b/gjs/package-lock.json
index cab1280..7245a27 100644
--- a/gjs/package-lock.json
+++ b/gjs/package-lock.json
@@ -7,12 +7,23 @@
"": {
"name": "astal",
"version": "0.1.0",
+ "license": "GPL",
+ "os": [
+ "linux"
+ ],
"devDependencies": {
"@ts-for-gir/cli": "^3.3.0",
"@typescript-eslint/eslint-plugin": "^5.33.0",
"@typescript-eslint/parser": "^5.33.0",
"eslint": "^8.42.0",
"typescript": "^5.1.0"
+ },
+ "engines": {
+ "gjs": ">=1.79.0"
+ },
+ "funding": {
+ "type": "kofi",
+ "url": "https://ko-fi.com/aylur"
}
},
"node_modules/@babel/code-frame": {
@@ -139,9 +150,9 @@
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz",
- "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==",
+ "version": "4.11.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz",
+ "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==",
"dev": true,
"engines": {
"node": "^12.0.0 || ^14.0.0 || >=16.0.0"
@@ -223,18 +234,6 @@
"node": ">=18"
}
},
- "node_modules/@ljharb/through": {
- "version": "2.3.13",
- "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.13.tgz",
- "integrity": "sha512-/gKJun8NNiWGZJkGzI/Ragc53cOdcLNdzjLaIa+GEjguQs0ulsurx8WN0jijdK9yPqDvziX995sMRLyLt1uZMQ==",
- "dev": true,
- "dependencies": {
- "call-bind": "^1.0.7"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -553,9 +552,9 @@
"dev": true
},
"node_modules/acorn": {
- "version": "8.12.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
- "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
+ "version": "8.12.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
+ "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
@@ -744,25 +743,6 @@
"ieee754": "^1.1.13"
}
},
- "node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
- "dev": true,
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -972,23 +952,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dev": true,
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -1052,27 +1015,6 @@
"is-arrayish": "^0.2.1"
}
},
- "node_modules/es-define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
- "dev": true,
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/escalade": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
@@ -1463,15 +1405,6 @@
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true
},
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/get-caller-file": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -1481,25 +1414,6 @@
"node": "6.* || 8.* || >= 10.*"
}
},
- "node_modules/get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
- "dev": true,
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@@ -1580,18 +1494,6 @@
"integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
"dev": true
},
- "node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dev": true,
- "dependencies": {
- "get-intrinsic": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/graphemer": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
@@ -1607,54 +1509,6 @@
"node": ">=8"
}
},
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "dev": true,
- "dependencies": {
- "es-define-property": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -1739,43 +1593,28 @@
"dev": true
},
"node_modules/inquirer": {
- "version": "9.2.23",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.23.tgz",
- "integrity": "sha512-kod5s+FBPIDM2xiy9fu+6wdU/SkK5le5GS9lh4FEBjBHqiMgD9lLFbCbuqFNAjNL2ZOy9Wd9F694IOzN9pZHBA==",
+ "version": "9.3.5",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.3.5.tgz",
+ "integrity": "sha512-SVRCRovA7KaT6nqWB2mCNpTvU4cuZ0hOXo5KPyiyOcNNUIZwq/JKtvXuDJNaxfuJKabBYRu1ecHze0YEwDYoRQ==",
"dev": true,
"dependencies": {
"@inquirer/figures": "^1.0.3",
- "@ljharb/through": "^2.3.13",
"ansi-escapes": "^4.3.2",
- "chalk": "^5.3.0",
- "cli-cursor": "^3.1.0",
"cli-width": "^4.1.0",
"external-editor": "^3.1.0",
- "lodash": "^4.17.21",
"mute-stream": "1.0.0",
"ora": "^5.4.1",
"run-async": "^3.0.0",
"rxjs": "^7.8.1",
"string-width": "^4.2.3",
"strip-ansi": "^6.0.1",
- "wrap-ansi": "^6.2.0"
+ "wrap-ansi": "^6.2.0",
+ "yoctocolors-cjs": "^2.1.2"
},
"engines": {
"node": ">=18"
}
},
- "node_modules/inquirer/node_modules/chalk": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
- "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
- "dev": true,
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
"node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@@ -2433,23 +2272,6 @@
"node": ">=10"
}
},
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "dev": true,
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -2643,9 +2465,9 @@
}
},
"node_modules/typescript": {
- "version": "5.4.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
- "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz",
+ "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -2770,6 +2592,18 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
+ },
+ "node_modules/yoctocolors-cjs": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz",
+ "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
}
}
}
diff --git a/gjs/package.json b/gjs/package.json
index 96e5d10..b632eb4 100644
--- a/gjs/package.json
+++ b/gjs/package.json
@@ -3,6 +3,33 @@
"version": "0.1.0",
"description": "Building blocks for buildin linux desktop shell",
"type": "module",
+ "author": "Aylur",
+ "license": "GPL",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/astal-sh/libastal.git",
+ "directory": "gjs"
+ },
+ "funding": {
+ "type": "kofi",
+ "url": "https://ko-fi.com/aylur"
+ },
+ "exports": {
+ ".": "./index.ts",
+ "./app": "./src/application.ts",
+ "./file": "./src/file.ts",
+ "./process": "./src/process.ts",
+ "./time": "./src/time.ts",
+ "./variable": "./src/variable.ts",
+ "./widgets": "./src/widgets.ts"
+ },
+ "engines": {
+ "gjs": ">=1.79.0"
+ },
+ "os": [
+ "linux"
+ ],
+ "publishConfig": {},
"devDependencies": {
"@ts-for-gir/cli": "^3.3.0",
"@typescript-eslint/eslint-plugin": "^5.33.0",
@@ -11,8 +38,6 @@
"typescript": "^5.1.0"
},
"scripts": {
- "build": "tsc",
- "dev": "tsc --watch",
"lint": "eslint .",
"types": "ts-for-gir generate"
}
diff --git a/gjs/src/application.ts b/gjs/src/application.ts
index 7147856..4a184e1 100644
--- a/gjs/src/application.ts
+++ b/gjs/src/application.ts
@@ -82,4 +82,4 @@ class AstalJS extends Astal.Application {
}
}
-export const App = new AstalJS
+export default new AstalJS
diff --git a/gjs/src/astalify.ts b/gjs/src/astalify.ts
index f198f68..6df57b4 100644
--- a/gjs/src/astalify.ts
+++ b/gjs/src/astalify.ts
@@ -105,7 +105,7 @@ function hook(
return self
}
-function ctor(self: any, config: any = {}, children: any[] = []) {
+function ctor(self: any, config: any = {}, children: any = []) {
const { setup, ...props } = config
props.visible ??= true
diff --git a/gjs/src/file.ts b/gjs/src/file.ts
index 0825e31..d15474b 100644
--- a/gjs/src/file.ts
+++ b/gjs/src/file.ts
@@ -36,5 +36,5 @@ export function monitorFile(
path: string,
callback: (file: string, event: Gio.FileMonitorEvent) => void,
): Gio.FileMonitor {
- return Astal.monitor_file(path, callback)
+ return Astal.monitor_file(path, callback)!
}
diff --git a/gjs/src/widgets.ts b/gjs/src/widgets.ts
index e363da0..29c0044 100644
--- a/gjs/src/widgets.ts
+++ b/gjs/src/widgets.ts
@@ -1,14 +1,16 @@
/* eslint-disable max-len */
import { Astal, Gtk } from "./imports.js"
-import astalify, { type ConstructProps } from "./astalify.js"
+import astalify, { type ConstructProps, type Widget } from "./astalify.js"
export { astalify, ConstructProps }
// Box
+export type Box = Widget<typeof Astal.Box>
export const Box = astalify<typeof Astal.Box, BoxProps, "Box">(Astal.Box)
export type BoxProps = ConstructProps<typeof Astal.Box, Astal.Box.ConstructorProperties>
// Button
+export type Button = Widget<typeof Astal.Button>
export const Button = astalify<typeof Astal.Button, ButtonProps, "Button">(Astal.Button)
export type ButtonProps = ConstructProps<typeof Astal.Button, Astal.Button.ConstructorProperties, {
onClicked: []
@@ -20,18 +22,21 @@ export type ButtonProps = ConstructProps<typeof Astal.Button, Astal.Button.Const
}>
// CenterBox
+export type CenterBox = Widget<typeof Astal.CenterBox>
export const CenterBox = astalify<typeof Astal.CenterBox, CenterBoxProps, "CenterBox">(Astal.CenterBox)
export type CenterBoxProps = ConstructProps<typeof Astal.CenterBox, Astal.CenterBox.ConstructorProperties>
// TODO: CircularProgress
// DrawingArea
+export type DrawingArea = Widget<typeof Gtk.DrawingArea>
export const DrawingArea = astalify<typeof Gtk.DrawingArea, DrawingAreaProps, "DrawingArea">(Gtk.DrawingArea)
export type DrawingAreaProps = ConstructProps<typeof Gtk.DrawingArea, Gtk.DrawingArea.ConstructorProperties, {
onDraw: [cr: any] // TODO: cairo types
}>
// Entry
+export type Entry = Widget<typeof Gtk.Entry>
export const Entry = astalify<typeof Gtk.Entry, EntryProps, "Entry">(Gtk.Entry)
export type EntryProps = ConstructProps<typeof Gtk.Entry, Gtk.Entry.ConstructorProperties, {
onChanged: []
@@ -39,6 +44,7 @@ export type EntryProps = ConstructProps<typeof Gtk.Entry, Gtk.Entry.ConstructorP
}>
// EventBox
+export type EventBox = Widget<typeof Astal.EventBox>
export const EventBox = astalify<typeof Astal.EventBox, EventBoxProps, "EventBox">(Astal.EventBox)
export type EventBoxProps = ConstructProps<typeof Astal.EventBox, Astal.EventBox.ConstructorProperties, {
onClick: [event: Astal.ClickEvent]
@@ -52,41 +58,50 @@ export type EventBoxProps = ConstructProps<typeof Astal.EventBox, Astal.EventBox
// TODO: FlowBox
// Icon
+export type Icon = Widget<typeof Astal.Icon>
export const Icon = astalify<typeof Astal.Icon, IconProps, "Icon">(Astal.Icon)
export type IconProps = ConstructProps<typeof Astal.Icon, Astal.Icon.ConstructorProperties>
// Label
+export type Label = Widget<typeof Gtk.Label>
export const Label = astalify<typeof Gtk.Label, LabelProps, "Label">(Gtk.Label)
export type LabelProps = ConstructProps<typeof Gtk.Label, Gtk.Label.ConstructorProperties>
// LevelBar
+export type LevelBar = Widget<typeof Astal.LevelBar>
export const LevelBar = astalify<typeof Astal.LevelBar, LevelBarProps, "LevelBar">(Astal.LevelBar)
export type LevelBarProps = ConstructProps<typeof Astal.LevelBar, Astal.LevelBar.ConstructorProperties>
// TODO: ListBox
// Overlay
+export type Overlay = Widget<typeof Astal.Overlay>
export const Overlay = astalify<typeof Astal.Overlay, OverlayProps, "Overlay">(Astal.Overlay)
export type OverlayProps = ConstructProps<typeof Astal.Overlay, Astal.Overlay.ConstructorProperties>
// Revealer
+export type Revealer = Widget<typeof Gtk.Revealer>
export const Revealer = astalify<typeof Gtk.Revealer, RevealerProps, "Revealer">(Gtk.Revealer)
export type RevealerProps = ConstructProps<typeof Gtk.Revealer, Gtk.Revealer.ConstructorProperties>
// Scrollable
+export type Scrollable = Widget<typeof Astal.Scrollable>
export const Scrollable = astalify<typeof Astal.Scrollable, ScrollableProps, "Scrollable">(Astal.Scrollable)
export type ScrollableProps = ConstructProps<typeof Astal.Scrollable, Astal.Scrollable.ConstructorProperties>
// Slider
+export type Slider = Widget<typeof Astal.Slider>
export const Slider = astalify<typeof Astal.Slider, SliderProps, "Slider">(Astal.Slider)
export type SliderProps = ConstructProps<typeof Astal.Slider, Astal.Slider.ConstructorProperties>
// TODO: Stack
// Switch
+export type Switch = Widget<typeof Gtk.Switch>
export const Switch = astalify<typeof Gtk.Switch, SwitchProps, "Switch">(Gtk.Switch)
export type SwitchProps = ConstructProps<typeof Gtk.Switch, Gtk.Switch.ConstructorProperties>
// Window
+export type Window = Widget<typeof Astal.Window>
export const Window = astalify<typeof Astal.Window, WindowProps, "Window">(Astal.Window)
export type WindowProps = ConstructProps<typeof Astal.Window, Astal.Window.ConstructorProperties>
diff --git a/gjs/tsconfig.json b/gjs/tsconfig.json
index b5b6115..a259dd9 100644
--- a/gjs/tsconfig.json
+++ b/gjs/tsconfig.json
@@ -1,23 +1,23 @@
{
"compilerOptions": {
- "target": "ES2022",
- "module": "ES2022",
+ "target": "ESNext",
+ "module": "ESNext",
"lib": [
- "ES2022"
+ "ESNext"
],
"outDir": "dist",
+ "declaration": true,
"strict": true,
- "moduleResolution": "node",
- "baseUrl": ".",
+ "moduleResolution": "Bundler",
"skipLibCheck": true,
- "forceConsistentCasingInFileNames": true,
- "declaration": true,
- "allowSyntheticDefaultImports": true
+ "checkJs": true,
+ "allowJs": true,
+ "jsx": "react-jsx",
+ "jsxImportSource": "./src/jsx"
},
"include": [
- "./node_modules/@girs",
"./src",
"./index.ts",
- "./sample.js"
+ "./node_modules/@girs"
]
}