@gtkx/cli 0.19.0 → 0.21.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/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +9 -1
- package/dist/builder.js.map +1 -1
- package/dist/create.d.ts +3 -2
- package/dist/create.d.ts.map +1 -1
- package/dist/create.js +16 -1
- package/dist/create.js.map +1 -1
- package/dist/dev-server.d.ts +0 -1
- package/dist/dev-server.d.ts.map +1 -1
- package/dist/dev-server.js +2 -0
- package/dist/dev-server.js.map +1 -1
- package/dist/mcp-client.js +5 -5
- package/dist/mcp-client.js.map +1 -1
- package/dist/vite-plugin-gtkx-gsettings.d.ts +28 -0
- package/dist/vite-plugin-gtkx-gsettings.d.ts.map +1 -0
- package/dist/vite-plugin-gtkx-gsettings.js +147 -0
- package/dist/vite-plugin-gtkx-gsettings.js.map +1 -0
- package/dist/vite-plugin-gtkx-native.js +2 -2
- package/dist/vite-plugin-gtkx-native.js.map +1 -1
- package/env.d.ts +5 -0
- package/package.json +13 -12
- package/src/builder.ts +9 -1
- package/src/create.ts +19 -3
- package/src/dev-server.tsx +2 -2
- package/src/mcp-client.ts +5 -5
- package/src/vite-plugin-gtkx-gsettings.ts +168 -0
- package/src/vite-plugin-gtkx-native.ts +2 -2
- package/templates/claude/EXAMPLES.md.ejs +37 -46
- package/templates/claude/WIDGETS.md.ejs +38 -36
package/dist/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,MAAM,CAAC;AAM7D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACvB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,IAAI,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,KAAK,GAAU,SAAS,YAAY,KAAG,OAAO,CAAC,IAAI,CAyC/D,CAAC"}
|
package/dist/builder.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { build as viteBuild } from "vite";
|
|
2
2
|
import { gtkxAssets } from "./vite-plugin-gtkx-assets.js";
|
|
3
3
|
import { gtkxBuiltUrl } from "./vite-plugin-gtkx-built-url.js";
|
|
4
|
+
import { gtkxGSettings } from "./vite-plugin-gtkx-gsettings.js";
|
|
4
5
|
import { gtkxNative } from "./vite-plugin-gtkx-native.js";
|
|
5
6
|
/**
|
|
6
7
|
* Builds a GTKX application for production using Vite's SSR build mode.
|
|
@@ -29,7 +30,13 @@ export const build = async (options) => {
|
|
|
29
30
|
const root = viteConfig?.root ?? process.cwd();
|
|
30
31
|
await viteBuild({
|
|
31
32
|
...viteConfig,
|
|
32
|
-
plugins: [
|
|
33
|
+
plugins: [
|
|
34
|
+
...(viteConfig?.plugins ?? []),
|
|
35
|
+
gtkxGSettings(),
|
|
36
|
+
gtkxAssets(),
|
|
37
|
+
gtkxBuiltUrl(assetBase),
|
|
38
|
+
gtkxNative(root),
|
|
39
|
+
],
|
|
33
40
|
build: {
|
|
34
41
|
...viteConfig?.build,
|
|
35
42
|
ssr: entry,
|
|
@@ -37,6 +44,7 @@ export const build = async (options) => {
|
|
|
37
44
|
assetsInlineLimit: 0,
|
|
38
45
|
outDir: viteConfig?.build?.outDir ?? "dist",
|
|
39
46
|
minify: true,
|
|
47
|
+
cssMinify: false,
|
|
40
48
|
rollupOptions: {
|
|
41
49
|
...viteConfig?.build?.rollupOptions,
|
|
42
50
|
output: {
|
package/dist/builder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAkC1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,OAAqB,EAAiB,EAAE;IAChE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,IAAI,GAAG,UAAU,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAE/C,MAAM,SAAS,CAAC;QACZ,GAAG,UAAU;QACb,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAkC1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,OAAqB,EAAiB,EAAE;IAChE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACvD,MAAM,IAAI,GAAG,UAAU,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAE/C,MAAM,SAAS,CAAC;QACZ,GAAG,UAAU;QACb,OAAO,EAAE;YACL,GAAG,CAAC,UAAU,EAAE,OAAO,IAAI,EAAE,CAAC;YAC9B,aAAa,EAAE;YACf,UAAU,EAAE;YACZ,YAAY,CAAC,SAAS,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC;SACnB;QACD,KAAK,EAAE;YACH,GAAG,UAAU,EAAE,KAAK;YACpB,GAAG,EAAE,KAAK;YACV,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,CAAC;YACpB,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,IAAI,MAAM;YAC3C,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE;gBACX,GAAG,UAAU,EAAE,KAAK,EAAE,aAAa;gBACnC,MAAM,EAAE;oBACJ,GAAI,CAAC,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,EAAE,CAA6B;oBAChF,cAAc,EAAE,WAAW;iBAC9B;aACJ;SACJ;QACD,MAAM,EAAE;YACJ,GAAG,UAAU,EAAE,MAAM;YACrB,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;SACvD;QACD,GAAG,EAAE;YACD,GAAG,UAAU,EAAE,GAAG;YAClB,UAAU,EAAE,IAAI;SACnB;QACD,YAAY,EAAE;YACV,GAAG,UAAU,EAAE,YAAY;SAC9B;KACJ,CAAC,CAAC;AACP,CAAC,CAAC"}
|
package/dist/create.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Supported package managers for GTKX projects.
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
type PackageManager = "pnpm" | "npm" | "yarn";
|
|
5
5
|
/**
|
|
6
6
|
* Whether to include testing setup in GTKX projects.
|
|
7
7
|
*/
|
|
@@ -11,7 +11,7 @@ export type TestingOption = "vitest" | "none";
|
|
|
11
11
|
*
|
|
12
12
|
* All options are optional; missing values will be prompted interactively.
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
type CreateOptions = {
|
|
15
15
|
name?: string;
|
|
16
16
|
appId?: string;
|
|
17
17
|
packageManager?: PackageManager;
|
|
@@ -51,4 +51,5 @@ export declare const isValidAppId: (appId: string) => boolean;
|
|
|
51
51
|
* ```
|
|
52
52
|
*/
|
|
53
53
|
export declare const createApp: (options?: CreateOptions) => Promise<void>;
|
|
54
|
+
export {};
|
|
54
55
|
//# sourceMappingURL=create.d.ts.map
|
package/dist/create.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,KAAK,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9C;;;;GAIG;AACH,KAAK,aAAa,GAAG;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAiBF,eAAO,MAAM,aAAa,GAAI,IAAI,cAAc,EAAE,MAAM,MAAM,EAAE,EAAE,KAAK,OAAO,KAAG,MAYhF,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,IAAI,cAAc,KAAG,MASlD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,KAAG,OAEjD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,OAE5C,CAAC;AAsMF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,SAAS,GAAU,UAAS,aAAkB,KAAG,OAAO,CAAC,IAAI,CAwBzE,CAAC"}
|
package/dist/create.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
1
|
+
import { execFileSync, spawn } from "node:child_process";
|
|
2
2
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { join, resolve } from "node:path";
|
|
4
4
|
import * as p from "@clack/prompts";
|
|
@@ -166,6 +166,12 @@ const installDependencies = async (projectPath, name, packageManager, devDeps) =
|
|
|
166
166
|
p.log.info(` ${getAddCommand(packageManager, devDeps, true)}`);
|
|
167
167
|
}
|
|
168
168
|
};
|
|
169
|
+
const initializeGitRepo = (projectPath) => {
|
|
170
|
+
const opts = { cwd: projectPath, stdio: "pipe" };
|
|
171
|
+
execFileSync("git", ["init"], opts);
|
|
172
|
+
execFileSync("git", ["add", "-A"], opts);
|
|
173
|
+
execFileSync("git", ["commit", "-m", "Initial commit"], opts);
|
|
174
|
+
};
|
|
169
175
|
const printNextSteps = (name, packageManager, testing) => {
|
|
170
176
|
const runCmd = getRunCommand(packageManager);
|
|
171
177
|
const nextSteps = `cd ${name}\n${runCmd}`;
|
|
@@ -216,6 +222,15 @@ export const createApp = async (options = {}) => {
|
|
|
216
222
|
s.stop("Project structure created!");
|
|
217
223
|
const devDeps = getDevDependencies(resolved.testing);
|
|
218
224
|
await installDependencies(projectPath, resolved.name, resolved.packageManager, devDeps);
|
|
225
|
+
const gitSpinner = p.spinner();
|
|
226
|
+
gitSpinner.start("Initializing git repository...");
|
|
227
|
+
try {
|
|
228
|
+
initializeGitRepo(projectPath);
|
|
229
|
+
gitSpinner.stop("Git repository initialized!");
|
|
230
|
+
}
|
|
231
|
+
catch {
|
|
232
|
+
gitSpinner.stop("Failed to initialize git repository");
|
|
233
|
+
}
|
|
219
234
|
printNextSteps(resolved.name, resolved.packageManager, resolved.testing);
|
|
220
235
|
};
|
|
221
236
|
//# sourceMappingURL=create.js.map
|
package/dist/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
|
package/dist/dev-server.d.ts
CHANGED
|
@@ -34,5 +34,4 @@ export type DevServerOptions = {
|
|
|
34
34
|
* @see {@link DevServerOptions} for configuration options
|
|
35
35
|
*/
|
|
36
36
|
export declare const createDevServer: (options: DevServerOptions) => Promise<ViteDevServer>;
|
|
37
|
-
export type { ViteDevServer };
|
|
38
37
|
//# sourceMappingURL=dev-server.d.ts.map
|
package/dist/dev-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../src/dev-server.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"dev-server.d.ts","sourceRoot":"","sources":["../src/dev-server.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,MAAM,CAAC;AAO3E;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,IAAI,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAMF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,eAAe,GAAU,SAAS,gBAAgB,KAAG,OAAO,CAAC,aAAa,CAiHtF,CAAC"}
|
package/dist/dev-server.js
CHANGED
|
@@ -4,6 +4,7 @@ import { setHotReloading, update } from "@gtkx/react";
|
|
|
4
4
|
import { createServer } from "vite";
|
|
5
5
|
import { isReactRefreshBoundary, performRefresh } from "./refresh-runtime.js";
|
|
6
6
|
import { gtkxAssets } from "./vite-plugin-gtkx-assets.js";
|
|
7
|
+
import { gtkxGSettings } from "./vite-plugin-gtkx-gsettings.js";
|
|
7
8
|
import { gtkxRefresh } from "./vite-plugin-gtkx-refresh.js";
|
|
8
9
|
import { swcSsrRefresh } from "./vite-plugin-swc-ssr-refresh.js";
|
|
9
10
|
/**
|
|
@@ -38,6 +39,7 @@ export const createDevServer = async (options) => {
|
|
|
38
39
|
...viteConfig,
|
|
39
40
|
appType: "custom",
|
|
40
41
|
plugins: [
|
|
42
|
+
gtkxGSettings(),
|
|
41
43
|
gtkxAssets(),
|
|
42
44
|
swcSsrRefresh(),
|
|
43
45
|
gtkxRefresh(),
|
package/dist/dev-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../src/dev-server.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../src/dev-server.tsx"],"names":[],"mappings":"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"}
|
package/dist/mcp-client.js
CHANGED
|
@@ -26,7 +26,7 @@ const loadTestingModule = async () => {
|
|
|
26
26
|
return testingModule;
|
|
27
27
|
}
|
|
28
28
|
catch (cause) {
|
|
29
|
-
testingLoadError = new Error("@gtkx/testing is not installed
|
|
29
|
+
testingLoadError = new Error("@gtkx/testing is not installed, install it to enable MCP widget interactions: pnpm add -D @gtkx/testing", { cause });
|
|
30
30
|
throw testingLoadError;
|
|
31
31
|
}
|
|
32
32
|
};
|
|
@@ -187,13 +187,13 @@ class McpClient {
|
|
|
187
187
|
});
|
|
188
188
|
}
|
|
189
189
|
send(message) {
|
|
190
|
-
if (!this.socket
|
|
190
|
+
if (!this.socket?.writable)
|
|
191
191
|
return;
|
|
192
192
|
this.socket.write(`${JSON.stringify(message)}\n`);
|
|
193
193
|
}
|
|
194
194
|
sendRequest(method, params) {
|
|
195
195
|
return new Promise((resolve, reject) => {
|
|
196
|
-
if (!this.socket
|
|
196
|
+
if (!this.socket?.writable) {
|
|
197
197
|
reject(new Error("Socket not connected"));
|
|
198
198
|
return;
|
|
199
199
|
}
|
|
@@ -308,8 +308,8 @@ class McpClient {
|
|
|
308
308
|
case "text":
|
|
309
309
|
widgets = await testing.findAllByText(app, String(p.value), p.options);
|
|
310
310
|
break;
|
|
311
|
-
case "
|
|
312
|
-
widgets = await testing.
|
|
311
|
+
case "name":
|
|
312
|
+
widgets = await testing.findAllByName(app, String(p.value), p.options);
|
|
313
313
|
break;
|
|
314
314
|
case "labelText":
|
|
315
315
|
widgets = await testing.findAllByLabelText(app, String(p.value), p.options);
|
package/dist/mcp-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Plugin } from "vite";
|
|
2
|
+
/**
|
|
3
|
+
* Vite plugin that compiles GSettings schemas when imported.
|
|
4
|
+
*
|
|
5
|
+
* Intercepts imports of `.gschema.xml` files. The import's default export
|
|
6
|
+
* is the schema ID extracted from the XML, so downstream code can use it
|
|
7
|
+
* directly with `useSetting`. When the file contains multiple `<schema>`
|
|
8
|
+
* elements, each ID is also available as a named export (with dots
|
|
9
|
+
* replaced by underscores).
|
|
10
|
+
*
|
|
11
|
+
* **Dev mode:** Copies the schema to a temporary directory, runs
|
|
12
|
+
* `glib-compile-schemas`, and sets `GSETTINGS_SCHEMA_DIR` so
|
|
13
|
+
* `Gio.Settings` can find the compiled result. Schema file changes
|
|
14
|
+
* trigger recompilation via HMR.
|
|
15
|
+
*
|
|
16
|
+
* **Build mode:** All imported schemas are compiled together at build time
|
|
17
|
+
* into a single `gschemas.compiled` asset emitted next to the bundle. At
|
|
18
|
+
* runtime a shared init module sets `GSETTINGS_SCHEMA_DIR` to the
|
|
19
|
+
* bundle's directory once, regardless of how many schemas are imported.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* import schemaId from "./com.example.myapp.gschema.xml";
|
|
24
|
+
* const [value, setValue] = useSetting(schemaId, "my-key", "string");
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare function gtkxGSettings(): Plugin;
|
|
28
|
+
//# sourceMappingURL=vite-plugin-gtkx-gsettings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-plugin-gtkx-gsettings.d.ts","sourceRoot":"","sources":["../src/vite-plugin-gtkx-gsettings.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAOnC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAmItC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
import { copyFileSync, mkdtempSync, readFileSync } from "node:fs";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { basename, join } from "node:path";
|
|
5
|
+
const SCHEMA_RE = /\.gschema\.xml$/;
|
|
6
|
+
const SCHEMA_ID_RE = /<schema\s+id="([^"]+)"/g;
|
|
7
|
+
const VIRTUAL_PREFIX = "\0gtkx-gsettings:";
|
|
8
|
+
const VIRTUAL_INIT = "\0gtkx-gsettings-init";
|
|
9
|
+
/**
|
|
10
|
+
* Vite plugin that compiles GSettings schemas when imported.
|
|
11
|
+
*
|
|
12
|
+
* Intercepts imports of `.gschema.xml` files. The import's default export
|
|
13
|
+
* is the schema ID extracted from the XML, so downstream code can use it
|
|
14
|
+
* directly with `useSetting`. When the file contains multiple `<schema>`
|
|
15
|
+
* elements, each ID is also available as a named export (with dots
|
|
16
|
+
* replaced by underscores).
|
|
17
|
+
*
|
|
18
|
+
* **Dev mode:** Copies the schema to a temporary directory, runs
|
|
19
|
+
* `glib-compile-schemas`, and sets `GSETTINGS_SCHEMA_DIR` so
|
|
20
|
+
* `Gio.Settings` can find the compiled result. Schema file changes
|
|
21
|
+
* trigger recompilation via HMR.
|
|
22
|
+
*
|
|
23
|
+
* **Build mode:** All imported schemas are compiled together at build time
|
|
24
|
+
* into a single `gschemas.compiled` asset emitted next to the bundle. At
|
|
25
|
+
* runtime a shared init module sets `GSETTINGS_SCHEMA_DIR` to the
|
|
26
|
+
* bundle's directory once, regardless of how many schemas are imported.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* import schemaId from "./com.example.myapp.gschema.xml";
|
|
31
|
+
* const [value, setValue] = useSetting(schemaId, "my-key", "string");
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export function gtkxGSettings() {
|
|
35
|
+
let schemaDir = null;
|
|
36
|
+
let isBuild = false;
|
|
37
|
+
const trackedSchemas = new Map();
|
|
38
|
+
const buildSchemas = new Map();
|
|
39
|
+
const ensureSchemaDir = () => {
|
|
40
|
+
if (!schemaDir) {
|
|
41
|
+
schemaDir = mkdtempSync(join(tmpdir(), "gtkx-schemas-"));
|
|
42
|
+
}
|
|
43
|
+
return schemaDir;
|
|
44
|
+
};
|
|
45
|
+
const compile = () => {
|
|
46
|
+
if (!schemaDir)
|
|
47
|
+
return;
|
|
48
|
+
execFileSync("glib-compile-schemas", [schemaDir]);
|
|
49
|
+
const existing = process.env.GSETTINGS_SCHEMA_DIR;
|
|
50
|
+
process.env.GSETTINGS_SCHEMA_DIR = existing ? `${schemaDir}:${existing}` : schemaDir;
|
|
51
|
+
};
|
|
52
|
+
return {
|
|
53
|
+
name: "gtkx:gsettings",
|
|
54
|
+
enforce: "pre",
|
|
55
|
+
configResolved(config) {
|
|
56
|
+
isBuild = config.command === "build";
|
|
57
|
+
},
|
|
58
|
+
async resolveId(source, importer, options) {
|
|
59
|
+
if (source === VIRTUAL_INIT)
|
|
60
|
+
return VIRTUAL_INIT;
|
|
61
|
+
if (!SCHEMA_RE.test(source))
|
|
62
|
+
return;
|
|
63
|
+
const resolved = await this.resolve(source, importer, {
|
|
64
|
+
...options,
|
|
65
|
+
skipSelf: true,
|
|
66
|
+
});
|
|
67
|
+
if (!resolved || resolved.external)
|
|
68
|
+
return;
|
|
69
|
+
return VIRTUAL_PREFIX + resolved.id;
|
|
70
|
+
},
|
|
71
|
+
load(id) {
|
|
72
|
+
if (id === VIRTUAL_INIT) {
|
|
73
|
+
return [
|
|
74
|
+
`import { dirname } from "node:path";`,
|
|
75
|
+
`import { fileURLToPath } from "node:url";`,
|
|
76
|
+
``,
|
|
77
|
+
`const bundleDir = dirname(fileURLToPath(import.meta.url));`,
|
|
78
|
+
`const existing = process.env.GSETTINGS_SCHEMA_DIR;`,
|
|
79
|
+
`process.env.GSETTINGS_SCHEMA_DIR = existing ? bundleDir + ":" + existing : bundleDir;`,
|
|
80
|
+
].join("\n");
|
|
81
|
+
}
|
|
82
|
+
if (!id.startsWith(VIRTUAL_PREFIX))
|
|
83
|
+
return;
|
|
84
|
+
const filePath = id.slice(VIRTUAL_PREFIX.length);
|
|
85
|
+
const xml = readFileSync(filePath, "utf-8");
|
|
86
|
+
const fileName = basename(filePath);
|
|
87
|
+
if (isBuild) {
|
|
88
|
+
buildSchemas.set(filePath, fileName);
|
|
89
|
+
console.log(`[gtkx] Queued GSettings schema: ${fileName}`);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
trackedSchemas.set(filePath, id);
|
|
93
|
+
const dir = ensureSchemaDir();
|
|
94
|
+
copyFileSync(filePath, join(dir, fileName));
|
|
95
|
+
compile();
|
|
96
|
+
console.log(`[gtkx] Compiled GSettings schema: ${fileName}`);
|
|
97
|
+
}
|
|
98
|
+
const schemaIds = [];
|
|
99
|
+
for (const match of xml.matchAll(SCHEMA_ID_RE)) {
|
|
100
|
+
schemaIds.push(match[1]);
|
|
101
|
+
}
|
|
102
|
+
if (schemaIds.length === 0) {
|
|
103
|
+
this.error(`No <schema id="..."> found in ${fileName}`);
|
|
104
|
+
}
|
|
105
|
+
const exports = [`export default ${JSON.stringify(schemaIds[0])};`];
|
|
106
|
+
for (const schemaId of schemaIds) {
|
|
107
|
+
const exportName = schemaId.replaceAll(".", "_");
|
|
108
|
+
exports.push(`export const ${exportName} = ${JSON.stringify(schemaId)};`);
|
|
109
|
+
}
|
|
110
|
+
if (isBuild) {
|
|
111
|
+
return [`import ${JSON.stringify(VIRTUAL_INIT)};`, "", ...exports].join("\n");
|
|
112
|
+
}
|
|
113
|
+
return exports.join("\n");
|
|
114
|
+
},
|
|
115
|
+
buildEnd() {
|
|
116
|
+
if (!isBuild || buildSchemas.size === 0)
|
|
117
|
+
return;
|
|
118
|
+
const dir = mkdtempSync(join(tmpdir(), "gtkx-schemas-build-"));
|
|
119
|
+
for (const [filePath, fileName] of buildSchemas) {
|
|
120
|
+
copyFileSync(filePath, join(dir, fileName));
|
|
121
|
+
}
|
|
122
|
+
execFileSync("glib-compile-schemas", [dir]);
|
|
123
|
+
const compiled = readFileSync(join(dir, "gschemas.compiled"));
|
|
124
|
+
this.emitFile({
|
|
125
|
+
type: "asset",
|
|
126
|
+
fileName: "gschemas.compiled",
|
|
127
|
+
source: compiled,
|
|
128
|
+
});
|
|
129
|
+
console.log(`[gtkx] Compiled ${buildSchemas.size} GSettings schema(s)`);
|
|
130
|
+
},
|
|
131
|
+
handleHotUpdate({ file, server }) {
|
|
132
|
+
const virtualId = trackedSchemas.get(file);
|
|
133
|
+
if (!virtualId)
|
|
134
|
+
return;
|
|
135
|
+
const dir = ensureSchemaDir();
|
|
136
|
+
copyFileSync(file, join(dir, basename(file)));
|
|
137
|
+
compile();
|
|
138
|
+
console.log(`[gtkx] Recompiled GSettings schema: ${basename(file)}`);
|
|
139
|
+
const mod = server.moduleGraph.getModuleById(virtualId);
|
|
140
|
+
if (mod) {
|
|
141
|
+
server.moduleGraph.invalidateModule(mod);
|
|
142
|
+
return [mod];
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=vite-plugin-gtkx-gsettings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite-plugin-gtkx-gsettings.js","sourceRoot":"","sources":["../src/vite-plugin-gtkx-gsettings.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,10 +26,10 @@ export function gtkxNative(root) {
|
|
|
26
26
|
const currentArch = arch();
|
|
27
27
|
const packageName = `@gtkx/native-linux-${currentArch}`;
|
|
28
28
|
if (currentPlatform !== "linux") {
|
|
29
|
-
throw new Error(`Unsupported build platform: ${currentPlatform}
|
|
29
|
+
throw new Error(`Unsupported build platform: ${currentPlatform}, only Linux is supported`);
|
|
30
30
|
}
|
|
31
31
|
if (currentArch !== "x64" && currentArch !== "arm64") {
|
|
32
|
-
throw new Error(`Unsupported build architecture: ${currentArch}
|
|
32
|
+
throw new Error(`Unsupported build architecture: ${currentArch}, only x64 and arm64 are supported`);
|
|
33
33
|
}
|
|
34
34
|
nativeIndexPath = projectRequire.resolve("@gtkx/native");
|
|
35
35
|
const nodePath = projectRequire.resolve(`${packageName}/index.node`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-plugin-gtkx-native.js","sourceRoot":"","sources":["../src/vite-plugin-gtkx-native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,sBAAsB,GAAG,+CAA+C,CAAC;AAC/E,MAAM,iBAAiB,GAAG,kDAAkD,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACnC,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IACjE,IAAI,eAAuB,CAAC;IAE5B,OAAO;QACH,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,KAAK;QAEd,UAAU;YACN,MAAM,eAAe,GAAG,QAAQ,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,IAAI,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,sBAAsB,WAAW,EAAE,CAAC;YAExD,IAAI,eAAe,KAAK,OAAO,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,eAAe,
|
|
1
|
+
{"version":3,"file":"vite-plugin-gtkx-native.js","sourceRoot":"","sources":["../src/vite-plugin-gtkx-native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,sBAAsB,GAAG,+CAA+C,CAAC;AAC/E,MAAM,iBAAiB,GAAG,kDAAkD,CAAC;AAE7E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACnC,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IACjE,IAAI,eAAuB,CAAC;IAE5B,OAAO;QACH,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,KAAK;QAEd,UAAU;YACN,MAAM,eAAe,GAAG,QAAQ,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,IAAI,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,sBAAsB,WAAW,EAAE,CAAC;YAExD,IAAI,eAAe,KAAK,OAAO,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,+BAA+B,eAAe,2BAA2B,CAAC,CAAC;YAC/F,CAAC;YAED,IAAI,WAAW,KAAK,KAAK,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,mCAAmC,WAAW,oCAAoC,CAAC,CAAC;YACxG,CAAC;YAED,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAEzD,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,WAAW,aAAa,CAAC,CAAC;YACrE,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YAEtC,IAAI,CAAC,QAAQ,CAAC;gBACV,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,WAAW;gBACrB,MAAM;aACT,CAAC,CAAC;QACP,CAAC;QAED,SAAS,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,EAAE,KAAK,eAAe,EAAE,CAAC;gBACzB,OAAO;YACX,CAAC;YAED,OAAO,IAAI;iBACN,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;iBAC9B,OAAO,CAAC,sBAAsB,EAAE,iEAAiE,CAAC,CAAC;QAC5G,CAAC;KACJ,CAAC;AACN,CAAC"}
|
package/env.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gtkx/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "CLI for GTKX - create and develop GTK4 React applications",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"gtkx",
|
|
@@ -60,25 +60,25 @@
|
|
|
60
60
|
"templates"
|
|
61
61
|
],
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@clack/prompts": "^1.0
|
|
64
|
-
"@swc/core": "^1.15.
|
|
63
|
+
"@clack/prompts": "^1.1.0",
|
|
64
|
+
"@swc/core": "^1.15.21",
|
|
65
65
|
"citty": "^0.2.1",
|
|
66
|
-
"ejs": "^
|
|
66
|
+
"ejs": "^5.0.1",
|
|
67
67
|
"react-refresh": "^0.18.0",
|
|
68
|
-
"vite": "^
|
|
69
|
-
"@gtkx/ffi": "0.
|
|
70
|
-
"@gtkx/
|
|
71
|
-
"@gtkx/
|
|
68
|
+
"vite": "^8.0.3",
|
|
69
|
+
"@gtkx/ffi": "0.21.0",
|
|
70
|
+
"@gtkx/mcp": "0.21.0",
|
|
71
|
+
"@gtkx/react": "0.21.0"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@types/ejs": "^3.1.5",
|
|
75
75
|
"@types/react-refresh": "^0.14.7",
|
|
76
|
-
"memfs": "^4.
|
|
77
|
-
"@gtkx/testing": "0.
|
|
76
|
+
"memfs": "^4.57.1",
|
|
77
|
+
"@gtkx/testing": "0.21.0"
|
|
78
78
|
},
|
|
79
79
|
"peerDependencies": {
|
|
80
80
|
"react": "^19",
|
|
81
|
-
"@gtkx/testing": "0.
|
|
81
|
+
"@gtkx/testing": "0.21.0"
|
|
82
82
|
},
|
|
83
83
|
"peerDependenciesMeta": {
|
|
84
84
|
"@gtkx/testing": {
|
|
@@ -87,6 +87,7 @@
|
|
|
87
87
|
},
|
|
88
88
|
"scripts": {
|
|
89
89
|
"build": "tsc -b",
|
|
90
|
-
"test": "vitest run"
|
|
90
|
+
"test": "vitest run",
|
|
91
|
+
"typecheck": "tsc -b --emitDeclarationOnly"
|
|
91
92
|
}
|
|
92
93
|
}
|
package/src/builder.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type InlineConfig, build as viteBuild } from "vite";
|
|
2
2
|
import { gtkxAssets } from "./vite-plugin-gtkx-assets.js";
|
|
3
3
|
import { gtkxBuiltUrl } from "./vite-plugin-gtkx-built-url.js";
|
|
4
|
+
import { gtkxGSettings } from "./vite-plugin-gtkx-gsettings.js";
|
|
4
5
|
import { gtkxNative } from "./vite-plugin-gtkx-native.js";
|
|
5
6
|
|
|
6
7
|
/**
|
|
@@ -63,7 +64,13 @@ export const build = async (options: BuildOptions): Promise<void> => {
|
|
|
63
64
|
|
|
64
65
|
await viteBuild({
|
|
65
66
|
...viteConfig,
|
|
66
|
-
plugins: [
|
|
67
|
+
plugins: [
|
|
68
|
+
...(viteConfig?.plugins ?? []),
|
|
69
|
+
gtkxGSettings(),
|
|
70
|
+
gtkxAssets(),
|
|
71
|
+
gtkxBuiltUrl(assetBase),
|
|
72
|
+
gtkxNative(root),
|
|
73
|
+
],
|
|
67
74
|
build: {
|
|
68
75
|
...viteConfig?.build,
|
|
69
76
|
ssr: entry,
|
|
@@ -71,6 +78,7 @@ export const build = async (options: BuildOptions): Promise<void> => {
|
|
|
71
78
|
assetsInlineLimit: 0,
|
|
72
79
|
outDir: viteConfig?.build?.outDir ?? "dist",
|
|
73
80
|
minify: true,
|
|
81
|
+
cssMinify: false,
|
|
74
82
|
rollupOptions: {
|
|
75
83
|
...viteConfig?.build?.rollupOptions,
|
|
76
84
|
output: {
|
package/src/create.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
1
|
+
import { execFileSync, spawn } from "node:child_process";
|
|
2
2
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { join, resolve } from "node:path";
|
|
4
4
|
import * as p from "@clack/prompts";
|
|
@@ -7,7 +7,7 @@ import { renderFile, type TemplateContext } from "./templates.js";
|
|
|
7
7
|
/**
|
|
8
8
|
* Supported package managers for GTKX projects.
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
type PackageManager = "pnpm" | "npm" | "yarn";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Whether to include testing setup in GTKX projects.
|
|
@@ -19,7 +19,7 @@ export type TestingOption = "vitest" | "none";
|
|
|
19
19
|
*
|
|
20
20
|
* All options are optional; missing values will be prompted interactively.
|
|
21
21
|
*/
|
|
22
|
-
|
|
22
|
+
type CreateOptions = {
|
|
23
23
|
name?: string;
|
|
24
24
|
appId?: string;
|
|
25
25
|
packageManager?: PackageManager;
|
|
@@ -248,6 +248,13 @@ const installDependencies = async (
|
|
|
248
248
|
}
|
|
249
249
|
};
|
|
250
250
|
|
|
251
|
+
const initializeGitRepo = (projectPath: string): void => {
|
|
252
|
+
const opts = { cwd: projectPath, stdio: "pipe" as const };
|
|
253
|
+
execFileSync("git", ["init"], opts);
|
|
254
|
+
execFileSync("git", ["add", "-A"], opts);
|
|
255
|
+
execFileSync("git", ["commit", "-m", "Initial commit"], opts);
|
|
256
|
+
};
|
|
257
|
+
|
|
251
258
|
const printNextSteps = (name: string, packageManager: PackageManager, testing: TestingOption): void => {
|
|
252
259
|
const runCmd = getRunCommand(packageManager);
|
|
253
260
|
const nextSteps = `cd ${name}\n${runCmd}`;
|
|
@@ -306,5 +313,14 @@ export const createApp = async (options: CreateOptions = {}): Promise<void> => {
|
|
|
306
313
|
const devDeps = getDevDependencies(resolved.testing);
|
|
307
314
|
await installDependencies(projectPath, resolved.name, resolved.packageManager, devDeps);
|
|
308
315
|
|
|
316
|
+
const gitSpinner = p.spinner();
|
|
317
|
+
gitSpinner.start("Initializing git repository...");
|
|
318
|
+
try {
|
|
319
|
+
initializeGitRepo(projectPath);
|
|
320
|
+
gitSpinner.stop("Git repository initialized!");
|
|
321
|
+
} catch {
|
|
322
|
+
gitSpinner.stop("Failed to initialize git repository");
|
|
323
|
+
}
|
|
324
|
+
|
|
309
325
|
printNextSteps(resolved.name, resolved.packageManager, resolved.testing);
|
|
310
326
|
};
|
package/src/dev-server.tsx
CHANGED
|
@@ -3,6 +3,7 @@ import { setHotReloading, update } from "@gtkx/react";
|
|
|
3
3
|
import { createServer, type InlineConfig, type ViteDevServer } from "vite";
|
|
4
4
|
import { isReactRefreshBoundary, performRefresh } from "./refresh-runtime.js";
|
|
5
5
|
import { gtkxAssets } from "./vite-plugin-gtkx-assets.js";
|
|
6
|
+
import { gtkxGSettings } from "./vite-plugin-gtkx-gsettings.js";
|
|
6
7
|
import { gtkxRefresh } from "./vite-plugin-gtkx-refresh.js";
|
|
7
8
|
import { swcSsrRefresh } from "./vite-plugin-swc-ssr-refresh.js";
|
|
8
9
|
|
|
@@ -54,6 +55,7 @@ export const createDevServer = async (options: DevServerOptions): Promise<ViteDe
|
|
|
54
55
|
...viteConfig,
|
|
55
56
|
appType: "custom",
|
|
56
57
|
plugins: [
|
|
58
|
+
gtkxGSettings(),
|
|
57
59
|
gtkxAssets(),
|
|
58
60
|
swcSsrRefresh(),
|
|
59
61
|
gtkxRefresh(),
|
|
@@ -158,5 +160,3 @@ export const createDevServer = async (options: DevServerOptions): Promise<ViteDe
|
|
|
158
160
|
|
|
159
161
|
return server;
|
|
160
162
|
};
|
|
161
|
-
|
|
162
|
-
export type { ViteDevServer };
|
package/src/mcp-client.ts
CHANGED
|
@@ -43,7 +43,7 @@ const loadTestingModule = async (): Promise<TestingModule> => {
|
|
|
43
43
|
return testingModule;
|
|
44
44
|
} catch (cause) {
|
|
45
45
|
testingLoadError = new Error(
|
|
46
|
-
"@gtkx/testing is not installed
|
|
46
|
+
"@gtkx/testing is not installed, install it to enable MCP widget interactions: pnpm add -D @gtkx/testing",
|
|
47
47
|
{ cause },
|
|
48
48
|
);
|
|
49
49
|
throw testingLoadError;
|
|
@@ -241,13 +241,13 @@ class McpClient {
|
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
private send(message: IpcRequest | IpcResponse): void {
|
|
244
|
-
if (!this.socket
|
|
244
|
+
if (!this.socket?.writable) return;
|
|
245
245
|
this.socket.write(`${JSON.stringify(message)}\n`);
|
|
246
246
|
}
|
|
247
247
|
|
|
248
248
|
private sendRequest(method: IpcMethod, params?: unknown): Promise<unknown> {
|
|
249
249
|
return new Promise((resolve, reject) => {
|
|
250
|
-
if (!this.socket
|
|
250
|
+
if (!this.socket?.writable) {
|
|
251
251
|
reject(new Error("Socket not connected"));
|
|
252
252
|
return;
|
|
253
253
|
}
|
|
@@ -377,8 +377,8 @@ class McpClient {
|
|
|
377
377
|
case "text":
|
|
378
378
|
widgets = await testing.findAllByText(app, String(p.value), p.options);
|
|
379
379
|
break;
|
|
380
|
-
case "
|
|
381
|
-
widgets = await testing.
|
|
380
|
+
case "name":
|
|
381
|
+
widgets = await testing.findAllByName(app, String(p.value), p.options);
|
|
382
382
|
break;
|
|
383
383
|
case "labelText":
|
|
384
384
|
widgets = await testing.findAllByLabelText(app, String(p.value), p.options);
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
import { copyFileSync, mkdtempSync, readFileSync } from "node:fs";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { basename, join } from "node:path";
|
|
5
|
+
import type { Plugin } from "vite";
|
|
6
|
+
|
|
7
|
+
const SCHEMA_RE = /\.gschema\.xml$/;
|
|
8
|
+
const SCHEMA_ID_RE = /<schema\s+id="([^"]+)"/g;
|
|
9
|
+
const VIRTUAL_PREFIX = "\0gtkx-gsettings:";
|
|
10
|
+
const VIRTUAL_INIT = "\0gtkx-gsettings-init";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Vite plugin that compiles GSettings schemas when imported.
|
|
14
|
+
*
|
|
15
|
+
* Intercepts imports of `.gschema.xml` files. The import's default export
|
|
16
|
+
* is the schema ID extracted from the XML, so downstream code can use it
|
|
17
|
+
* directly with `useSetting`. When the file contains multiple `<schema>`
|
|
18
|
+
* elements, each ID is also available as a named export (with dots
|
|
19
|
+
* replaced by underscores).
|
|
20
|
+
*
|
|
21
|
+
* **Dev mode:** Copies the schema to a temporary directory, runs
|
|
22
|
+
* `glib-compile-schemas`, and sets `GSETTINGS_SCHEMA_DIR` so
|
|
23
|
+
* `Gio.Settings` can find the compiled result. Schema file changes
|
|
24
|
+
* trigger recompilation via HMR.
|
|
25
|
+
*
|
|
26
|
+
* **Build mode:** All imported schemas are compiled together at build time
|
|
27
|
+
* into a single `gschemas.compiled` asset emitted next to the bundle. At
|
|
28
|
+
* runtime a shared init module sets `GSETTINGS_SCHEMA_DIR` to the
|
|
29
|
+
* bundle's directory once, regardless of how many schemas are imported.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* import schemaId from "./com.example.myapp.gschema.xml";
|
|
34
|
+
* const [value, setValue] = useSetting(schemaId, "my-key", "string");
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export function gtkxGSettings(): Plugin {
|
|
38
|
+
let schemaDir: string | null = null;
|
|
39
|
+
let isBuild = false;
|
|
40
|
+
const trackedSchemas = new Map<string, string>();
|
|
41
|
+
const buildSchemas = new Map<string, string>();
|
|
42
|
+
|
|
43
|
+
const ensureSchemaDir = (): string => {
|
|
44
|
+
if (!schemaDir) {
|
|
45
|
+
schemaDir = mkdtempSync(join(tmpdir(), "gtkx-schemas-"));
|
|
46
|
+
}
|
|
47
|
+
return schemaDir;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const compile = (): void => {
|
|
51
|
+
if (!schemaDir) return;
|
|
52
|
+
execFileSync("glib-compile-schemas", [schemaDir]);
|
|
53
|
+
|
|
54
|
+
const existing = process.env.GSETTINGS_SCHEMA_DIR;
|
|
55
|
+
process.env.GSETTINGS_SCHEMA_DIR = existing ? `${schemaDir}:${existing}` : schemaDir;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
return {
|
|
59
|
+
name: "gtkx:gsettings",
|
|
60
|
+
enforce: "pre",
|
|
61
|
+
|
|
62
|
+
configResolved(config) {
|
|
63
|
+
isBuild = config.command === "build";
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
async resolveId(source, importer, options) {
|
|
67
|
+
if (source === VIRTUAL_INIT) return VIRTUAL_INIT;
|
|
68
|
+
if (!SCHEMA_RE.test(source)) return;
|
|
69
|
+
|
|
70
|
+
const resolved = await this.resolve(source, importer, {
|
|
71
|
+
...options,
|
|
72
|
+
skipSelf: true,
|
|
73
|
+
});
|
|
74
|
+
if (!resolved || resolved.external) return;
|
|
75
|
+
|
|
76
|
+
return VIRTUAL_PREFIX + resolved.id;
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
load(id) {
|
|
80
|
+
if (id === VIRTUAL_INIT) {
|
|
81
|
+
return [
|
|
82
|
+
`import { dirname } from "node:path";`,
|
|
83
|
+
`import { fileURLToPath } from "node:url";`,
|
|
84
|
+
``,
|
|
85
|
+
`const bundleDir = dirname(fileURLToPath(import.meta.url));`,
|
|
86
|
+
`const existing = process.env.GSETTINGS_SCHEMA_DIR;`,
|
|
87
|
+
`process.env.GSETTINGS_SCHEMA_DIR = existing ? bundleDir + ":" + existing : bundleDir;`,
|
|
88
|
+
].join("\n");
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (!id.startsWith(VIRTUAL_PREFIX)) return;
|
|
92
|
+
|
|
93
|
+
const filePath = id.slice(VIRTUAL_PREFIX.length);
|
|
94
|
+
const xml = readFileSync(filePath, "utf-8");
|
|
95
|
+
const fileName = basename(filePath);
|
|
96
|
+
|
|
97
|
+
if (isBuild) {
|
|
98
|
+
buildSchemas.set(filePath, fileName);
|
|
99
|
+
console.log(`[gtkx] Queued GSettings schema: ${fileName}`);
|
|
100
|
+
} else {
|
|
101
|
+
trackedSchemas.set(filePath, id);
|
|
102
|
+
|
|
103
|
+
const dir = ensureSchemaDir();
|
|
104
|
+
copyFileSync(filePath, join(dir, fileName));
|
|
105
|
+
compile();
|
|
106
|
+
|
|
107
|
+
console.log(`[gtkx] Compiled GSettings schema: ${fileName}`);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const schemaIds: string[] = [];
|
|
111
|
+
for (const match of xml.matchAll(SCHEMA_ID_RE)) {
|
|
112
|
+
schemaIds.push(match[1] as string);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (schemaIds.length === 0) {
|
|
116
|
+
this.error(`No <schema id="..."> found in ${fileName}`);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const exports = [`export default ${JSON.stringify(schemaIds[0])};`];
|
|
120
|
+
for (const schemaId of schemaIds) {
|
|
121
|
+
const exportName = schemaId.replaceAll(".", "_");
|
|
122
|
+
exports.push(`export const ${exportName} = ${JSON.stringify(schemaId)};`);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (isBuild) {
|
|
126
|
+
return [`import ${JSON.stringify(VIRTUAL_INIT)};`, "", ...exports].join("\n");
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return exports.join("\n");
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
buildEnd() {
|
|
133
|
+
if (!isBuild || buildSchemas.size === 0) return;
|
|
134
|
+
|
|
135
|
+
const dir = mkdtempSync(join(tmpdir(), "gtkx-schemas-build-"));
|
|
136
|
+
for (const [filePath, fileName] of buildSchemas) {
|
|
137
|
+
copyFileSync(filePath, join(dir, fileName));
|
|
138
|
+
}
|
|
139
|
+
execFileSync("glib-compile-schemas", [dir]);
|
|
140
|
+
|
|
141
|
+
const compiled = readFileSync(join(dir, "gschemas.compiled"));
|
|
142
|
+
this.emitFile({
|
|
143
|
+
type: "asset",
|
|
144
|
+
fileName: "gschemas.compiled",
|
|
145
|
+
source: compiled,
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
console.log(`[gtkx] Compiled ${buildSchemas.size} GSettings schema(s)`);
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
handleHotUpdate({ file, server }) {
|
|
152
|
+
const virtualId = trackedSchemas.get(file);
|
|
153
|
+
if (!virtualId) return;
|
|
154
|
+
|
|
155
|
+
const dir = ensureSchemaDir();
|
|
156
|
+
copyFileSync(file, join(dir, basename(file)));
|
|
157
|
+
compile();
|
|
158
|
+
|
|
159
|
+
console.log(`[gtkx] Recompiled GSettings schema: ${basename(file)}`);
|
|
160
|
+
|
|
161
|
+
const mod = server.moduleGraph.getModuleById(virtualId);
|
|
162
|
+
if (mod) {
|
|
163
|
+
server.moduleGraph.invalidateModule(mod);
|
|
164
|
+
return [mod];
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
@@ -32,11 +32,11 @@ export function gtkxNative(root: string): Plugin {
|
|
|
32
32
|
const packageName = `@gtkx/native-linux-${currentArch}`;
|
|
33
33
|
|
|
34
34
|
if (currentPlatform !== "linux") {
|
|
35
|
-
throw new Error(`Unsupported build platform: ${currentPlatform}
|
|
35
|
+
throw new Error(`Unsupported build platform: ${currentPlatform}, only Linux is supported`);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
if (currentArch !== "x64" && currentArch !== "arm64") {
|
|
39
|
-
throw new Error(`Unsupported build architecture: ${currentArch}
|
|
39
|
+
throw new Error(`Unsupported build architecture: ${currentArch}, only x64 and arm64 are supported`);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
nativeIndexPath = projectRequire.resolve("@gtkx/native");
|
|
@@ -101,7 +101,7 @@ const LoginForm = () => {
|
|
|
101
101
|
|
|
102
102
|
```tsx
|
|
103
103
|
import * as Gtk from "@gtkx/ffi/gtk";
|
|
104
|
-
import { GtkBox, GtkButton, GtkEntry, GtkLabel, GtkScrolledWindow
|
|
104
|
+
import { GtkBox, GtkButton, GtkEntry, GtkLabel, GtkScrolledWindow } from "@gtkx/react";
|
|
105
105
|
import { useCallback, useState } from "react";
|
|
106
106
|
|
|
107
107
|
interface Todo {
|
|
@@ -133,17 +133,14 @@ const TodoList = () => {
|
|
|
133
133
|
</GtkBox>
|
|
134
134
|
<GtkScrolledWindow vexpand cssClasses={["card"]}>
|
|
135
135
|
<GtkListView
|
|
136
|
-
|
|
136
|
+
items={todos.map((todo) => ({ id: todo.id, value: todo }))}
|
|
137
|
+
renderItem={(todo: Todo) => (
|
|
137
138
|
<GtkBox spacing={8} marginStart={12} marginEnd={12} marginTop={8} marginBottom={8}>
|
|
138
|
-
<GtkLabel label={todo
|
|
139
|
-
<GtkButton iconName="edit-delete-symbolic" cssClasses={["flat"]} onClicked={() =>
|
|
139
|
+
<GtkLabel label={todo.text} hexpand halign={Gtk.Align.START} />
|
|
140
|
+
<GtkButton iconName="edit-delete-symbolic" cssClasses={["flat"]} onClicked={() => deleteTodo(todo.id)} />
|
|
140
141
|
</GtkBox>
|
|
141
142
|
)}
|
|
142
|
-
|
|
143
|
-
{todos.map((todo) => (
|
|
144
|
-
<x.ListItem key={todo.id} id={todo.id} value={todo} />
|
|
145
|
-
))}
|
|
146
|
-
</GtkListView>
|
|
143
|
+
/>
|
|
147
144
|
</GtkScrolledWindow>
|
|
148
145
|
</GtkBox>
|
|
149
146
|
);
|
|
@@ -158,7 +155,7 @@ const TodoList = () => {
|
|
|
158
155
|
|
|
159
156
|
```tsx
|
|
160
157
|
import * as Gtk from "@gtkx/ffi/gtk";
|
|
161
|
-
import { GtkBox, GtkLabel, GtkPaned, GtkScrolledWindow, GtkStack, x } from "@gtkx/react";
|
|
158
|
+
import { GtkBox, GtkLabel, GtkListView, GtkPaned, GtkScrolledWindow, GtkStack, x } from "@gtkx/react";
|
|
162
159
|
import { useState } from "react";
|
|
163
160
|
|
|
164
161
|
interface Page {
|
|
@@ -183,14 +180,11 @@ const SidebarNav = () => {
|
|
|
183
180
|
selected={[currentPage]}
|
|
184
181
|
selectionMode={Gtk.SelectionMode.SINGLE}
|
|
185
182
|
onSelectionChanged={(ids) => setCurrentPage(ids[0])}
|
|
186
|
-
|
|
187
|
-
|
|
183
|
+
items={pages.map((page) => ({ id: page.id, value: page }))}
|
|
184
|
+
renderItem={(page: Page) => (
|
|
185
|
+
<GtkLabel label={page.name} halign={Gtk.Align.START} marginStart={12} marginTop={8} marginBottom={8} />
|
|
188
186
|
)}
|
|
189
|
-
|
|
190
|
-
{pages.map((page) => (
|
|
191
|
-
<x.ListItem key={page.id} id={page.id} value={page} />
|
|
192
|
-
))}
|
|
193
|
-
</GtkListView>
|
|
187
|
+
/>
|
|
194
188
|
</GtkScrolledWindow>
|
|
195
189
|
</x.Slot>
|
|
196
190
|
<x.Slot for={GtkPaned} id="endChild">
|
|
@@ -339,13 +333,16 @@ const FileTable = () => {
|
|
|
339
333
|
|
|
340
334
|
return (
|
|
341
335
|
<GtkScrolledWindow vexpand cssClasses={["card"]}>
|
|
342
|
-
<GtkColumnView
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
{
|
|
347
|
-
|
|
348
|
-
|
|
336
|
+
<GtkColumnView
|
|
337
|
+
estimatedRowHeight={48}
|
|
338
|
+
sortColumn={sortColumn}
|
|
339
|
+
sortOrder={sortOrder}
|
|
340
|
+
onSortChanged={handleSort}
|
|
341
|
+
items={sortedFiles.map((file) => ({ id: file.id, value: file }))}
|
|
342
|
+
>
|
|
343
|
+
<x.ColumnViewColumn title="Name" id="name" expand sortable renderCell={(f: FileItem) => <GtkLabel label={f.name} />} />
|
|
344
|
+
<x.ColumnViewColumn title="Size" id="size" fixedWidth={100} sortable renderCell={(f: FileItem) => <GtkLabel label={`${f.size} KB`} />} />
|
|
345
|
+
<x.ColumnViewColumn title="Modified" id="modified" fixedWidth={120} sortable renderCell={(f: FileItem) => <GtkLabel label={f.modified} />} />
|
|
349
346
|
</GtkColumnView>
|
|
350
347
|
</GtkScrolledWindow>
|
|
351
348
|
);
|
|
@@ -398,7 +395,7 @@ const MenuDemo = () => {
|
|
|
398
395
|
|
|
399
396
|
```tsx
|
|
400
397
|
import * as Gtk from "@gtkx/ffi/gtk";
|
|
401
|
-
import { AdwSpinner, GtkBox, GtkLabel,
|
|
398
|
+
import { AdwSpinner, GtkBox, GtkLabel, GtkListView, GtkScrolledWindow } from "@gtkx/react";
|
|
402
399
|
import { useEffect, useState } from "react";
|
|
403
400
|
|
|
404
401
|
interface User {
|
|
@@ -442,17 +439,14 @@ const AsyncList = () => {
|
|
|
442
439
|
return (
|
|
443
440
|
<GtkScrolledWindow vexpand>
|
|
444
441
|
<GtkListView
|
|
445
|
-
|
|
442
|
+
items={users.map((user) => ({ id: user.id, value: user }))}
|
|
443
|
+
renderItem={(user: User) => (
|
|
446
444
|
<GtkBox orientation={Gtk.Orientation.VERTICAL} marginStart={12} marginTop={8} marginBottom={8}>
|
|
447
|
-
<GtkLabel label={user
|
|
448
|
-
<GtkLabel label={user
|
|
445
|
+
<GtkLabel label={user.name} halign={Gtk.Align.START} cssClasses={["heading"]} />
|
|
446
|
+
<GtkLabel label={user.email} halign={Gtk.Align.START} cssClasses={["dim-label"]} />
|
|
449
447
|
</GtkBox>
|
|
450
448
|
)}
|
|
451
|
-
|
|
452
|
-
{users.map((user) => (
|
|
453
|
-
<x.ListItem key={user.id} id={user.id} value={user} />
|
|
454
|
-
))}
|
|
455
|
-
</GtkListView>
|
|
449
|
+
/>
|
|
456
450
|
</GtkScrolledWindow>
|
|
457
451
|
);
|
|
458
452
|
};
|
|
@@ -632,7 +626,7 @@ const SplitViewDemo = () => {
|
|
|
632
626
|
|
|
633
627
|
```tsx
|
|
634
628
|
import * as Gtk from "@gtkx/ffi/gtk";
|
|
635
|
-
import { GtkBox, GtkImage, GtkLabel, GtkListView, GtkScrolledWindow
|
|
629
|
+
import { GtkBox, GtkImage, GtkLabel, GtkListView, GtkScrolledWindow } from "@gtkx/react";
|
|
636
630
|
import { useState } from "react";
|
|
637
631
|
|
|
638
632
|
interface FileNode {
|
|
@@ -667,21 +661,18 @@ const FileBrowser = () => {
|
|
|
667
661
|
selectionMode={Gtk.SelectionMode.SINGLE}
|
|
668
662
|
selected={selected ? [selected] : []}
|
|
669
663
|
onSelectionChanged={(ids) => setSelected(ids[0] ?? null)}
|
|
670
|
-
|
|
664
|
+
items={files.map((file) => ({
|
|
665
|
+
id: file.id,
|
|
666
|
+
value: file,
|
|
667
|
+
children: file.children?.map((child) => ({ id: child.id, value: child })),
|
|
668
|
+
}))}
|
|
669
|
+
renderItem={(item: FileNode) => (
|
|
671
670
|
<GtkBox spacing={8}>
|
|
672
|
-
<GtkImage iconName={item
|
|
673
|
-
<GtkLabel label={item
|
|
671
|
+
<GtkImage iconName={item.isDirectory ? "folder-symbolic" : "text-x-generic-symbolic"} />
|
|
672
|
+
<GtkLabel label={item.name} halign={Gtk.Align.START} />
|
|
674
673
|
</GtkBox>
|
|
675
674
|
)}
|
|
676
|
-
|
|
677
|
-
{files.map((file) => (
|
|
678
|
-
<x.ListItem key={file.id} id={file.id} value={file}>
|
|
679
|
-
{file.children?.map((child) => (
|
|
680
|
-
<x.ListItem key={child.id} id={child.id} value={child} />
|
|
681
|
-
))}
|
|
682
|
-
</x.ListItem>
|
|
683
|
-
))}
|
|
684
|
-
</GtkListView>
|
|
675
|
+
/>
|
|
685
676
|
</GtkScrolledWindow>
|
|
686
677
|
);
|
|
687
678
|
};
|
|
@@ -130,7 +130,7 @@ Scrollable container.
|
|
|
130
130
|
|
|
131
131
|
## Virtual Lists
|
|
132
132
|
|
|
133
|
-
All virtual list widgets use `
|
|
133
|
+
All virtual list widgets use an `items` data prop and a `renderItem` function. Items are `{ id: string, value: T }` objects.
|
|
134
134
|
|
|
135
135
|
### GtkListView
|
|
136
136
|
High-performance scrollable list with selection.
|
|
@@ -142,10 +142,9 @@ High-performance scrollable list with selection.
|
|
|
142
142
|
selected={selectedId ? [selectedId] : []}
|
|
143
143
|
selectionMode={Gtk.SelectionMode.SINGLE}
|
|
144
144
|
onSelectionChanged={(ids) => setSelectedId(ids[0])}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
</GtkListView>
|
|
145
|
+
items={items.map(item => ({ id: item.id, value: item }))}
|
|
146
|
+
renderItem={(item: Item) => <GtkLabel label={item.name} />}
|
|
147
|
+
/>
|
|
149
148
|
```
|
|
150
149
|
|
|
151
150
|
### GtkGridView
|
|
@@ -156,37 +155,41 @@ Grid-based virtual scrolling.
|
|
|
156
155
|
estimatedItemHeight={100}
|
|
157
156
|
minColumns={2}
|
|
158
157
|
maxColumns={4}
|
|
159
|
-
|
|
158
|
+
items={items.map(item => ({ id: item.id, value: item }))}
|
|
159
|
+
renderItem={(item: Item) => (
|
|
160
160
|
<GtkBox orientation={Gtk.Orientation.VERTICAL}>
|
|
161
|
-
<GtkImage iconName={item
|
|
162
|
-
<GtkLabel label={item
|
|
161
|
+
<GtkImage iconName={item.icon} />
|
|
162
|
+
<GtkLabel label={item.name} />
|
|
163
163
|
</GtkBox>
|
|
164
164
|
)}
|
|
165
|
-
|
|
166
|
-
{items.map(item => <x.ListItem key={item.id} id={item.id} value={item} />)}
|
|
167
|
-
</GtkGridView>
|
|
165
|
+
/>
|
|
168
166
|
```
|
|
169
167
|
|
|
170
168
|
### GtkColumnView
|
|
171
169
|
Table with sortable columns.
|
|
172
170
|
|
|
173
171
|
```tsx
|
|
174
|
-
<GtkColumnView
|
|
172
|
+
<GtkColumnView
|
|
173
|
+
estimatedRowHeight={48}
|
|
174
|
+
sortColumn="name"
|
|
175
|
+
sortOrder={Gtk.SortType.ASCENDING}
|
|
176
|
+
onSortChanged={handleSort}
|
|
177
|
+
items={items.map(item => ({ id: item.id, value: item }))}
|
|
178
|
+
>
|
|
175
179
|
<x.ColumnViewColumn
|
|
176
180
|
title="Name"
|
|
177
181
|
id="name"
|
|
178
182
|
expand
|
|
179
183
|
resizable
|
|
180
184
|
sortable
|
|
181
|
-
renderCell={(item: Item
|
|
185
|
+
renderCell={(item: Item) => <GtkLabel label={item.name} />}
|
|
182
186
|
/>
|
|
183
187
|
<x.ColumnViewColumn
|
|
184
188
|
title="Size"
|
|
185
189
|
id="size"
|
|
186
190
|
fixedWidth={100}
|
|
187
|
-
renderCell={(item: Item
|
|
191
|
+
renderCell={(item: Item) => <GtkLabel label={`${item.size} KB`} />}
|
|
188
192
|
/>
|
|
189
|
-
{items.map(item => <x.ListItem key={item.id} id={item.id} value={item} />)}
|
|
190
193
|
</GtkColumnView>
|
|
191
194
|
```
|
|
192
195
|
|
|
@@ -194,13 +197,15 @@ Table with sortable columns.
|
|
|
194
197
|
Selection dropdown.
|
|
195
198
|
|
|
196
199
|
```tsx
|
|
197
|
-
<GtkDropDown
|
|
198
|
-
|
|
199
|
-
|
|
200
|
+
<GtkDropDown
|
|
201
|
+
selectedId={selectedId}
|
|
202
|
+
onSelectionChanged={setSelectedId}
|
|
203
|
+
items={options.map(opt => ({ id: opt.id, value: opt.label }))}
|
|
204
|
+
/>
|
|
200
205
|
```
|
|
201
206
|
|
|
202
207
|
### GtkListView (tree mode)
|
|
203
|
-
Hierarchical tree with expand/collapse.
|
|
208
|
+
Hierarchical tree with expand/collapse. Items with nested `children` arrays trigger tree behavior.
|
|
204
209
|
|
|
205
210
|
```tsx
|
|
206
211
|
<GtkListView
|
|
@@ -210,24 +215,21 @@ Hierarchical tree with expand/collapse. Nesting `x.ListItem` children triggers t
|
|
|
210
215
|
selectionMode={Gtk.SelectionMode.SINGLE}
|
|
211
216
|
selected={selectedId ? [selectedId] : []}
|
|
212
217
|
onSelectionChanged={(ids) => setSelectedId(ids[0])}
|
|
213
|
-
|
|
218
|
+
items={files.map(file => ({
|
|
219
|
+
id: file.id,
|
|
220
|
+
value: file,
|
|
221
|
+
children: file.children?.map(child => ({ id: child.id, value: child })),
|
|
222
|
+
}))}
|
|
223
|
+
renderItem={(item: FileNode, row) => (
|
|
214
224
|
<GtkBox spacing={8}>
|
|
215
|
-
<GtkImage iconName={item
|
|
216
|
-
<GtkLabel label={item
|
|
225
|
+
<GtkImage iconName={item.isDirectory ? "folder-symbolic" : "text-x-generic-symbolic"} />
|
|
226
|
+
<GtkLabel label={item.name} />
|
|
217
227
|
</GtkBox>
|
|
218
228
|
)}
|
|
219
|
-
|
|
220
|
-
{files.map(file => (
|
|
221
|
-
<x.ListItem key={file.id} id={file.id} value={file}>
|
|
222
|
-
{file.children?.map(child => (
|
|
223
|
-
<x.ListItem key={child.id} id={child.id} value={child} />
|
|
224
|
-
))}
|
|
225
|
-
</x.ListItem>
|
|
226
|
-
))}
|
|
227
|
-
</GtkListView>
|
|
229
|
+
/>
|
|
228
230
|
```
|
|
229
231
|
|
|
230
|
-
**ListItem
|
|
232
|
+
**ListItem data props:** `id`, `value`, `children` (nested items for tree mode), `hideExpander`, `indentForDepth`, `indentForIcon`, `section` (for sectioned lists)
|
|
231
233
|
|
|
232
234
|
---
|
|
233
235
|
|
|
@@ -703,23 +705,23 @@ Type constants for `dropTypes`: `Type.STRING`, `Type.INT`, `Type.DOUBLE`, `Type.
|
|
|
703
705
|
|
|
704
706
|
## Custom Drawing
|
|
705
707
|
|
|
706
|
-
Render custom graphics with `GtkDrawingArea` using the `
|
|
708
|
+
Render custom graphics with `GtkDrawingArea` using the `render` callback:
|
|
707
709
|
|
|
708
710
|
```tsx
|
|
709
711
|
import type { Context } from "@gtkx/ffi/cairo";
|
|
710
712
|
|
|
711
713
|
const Canvas = () => {
|
|
712
|
-
const handleDraw = (
|
|
714
|
+
const handleDraw = (cr: Context, width: number, height: number) => {
|
|
713
715
|
cr.setSourceRgb(0.2, 0.4, 0.8);
|
|
714
716
|
cr.rectangle(10, 10, width - 20, height - 20);
|
|
715
717
|
cr.fill();
|
|
716
718
|
};
|
|
717
719
|
|
|
718
|
-
return <GtkDrawingArea contentWidth={400} contentHeight={300}
|
|
720
|
+
return <GtkDrawingArea contentWidth={400} contentHeight={300} render={handleDraw} />;
|
|
719
721
|
};
|
|
720
722
|
```
|
|
721
723
|
|
|
722
|
-
|
|
724
|
+
Changing the `render` callback reference automatically queues a redraw. Add a `GtkGestureDrag` child for interactive drawing.
|
|
723
725
|
|
|
724
726
|
## Event Controllers
|
|
725
727
|
|