@react-x11/components 0.3.0 → 0.5.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/README.md +131 -4
- package/dist/charts/components.d.ts +3 -1
- package/dist/charts/components.d.ts.map +1 -1
- package/dist/charts/components.js +8 -4
- package/dist/charts/components.js.map +1 -1
- package/dist/charts/node.d.ts +13 -6
- package/dist/charts/node.d.ts.map +1 -1
- package/dist/charts/node.js +75 -24
- package/dist/charts/node.js.map +1 -1
- package/dist/charts/render.d.ts +4 -0
- package/dist/charts/render.d.ts.map +1 -1
- package/dist/charts/render.js +11 -6
- package/dist/charts/render.js.map +1 -1
- package/dist/code-editor/node.d.ts +47 -16
- package/dist/code-editor/node.d.ts.map +1 -1
- package/dist/code-editor/node.js +121 -51
- package/dist/code-editor/node.js.map +1 -1
- package/dist/flow/draw.d.ts +19 -1
- package/dist/flow/draw.d.ts.map +1 -1
- package/dist/flow/draw.js +64 -35
- package/dist/flow/draw.js.map +1 -1
- package/dist/flow/index.d.ts.map +1 -1
- package/dist/flow/index.js +24 -8
- package/dist/flow/index.js.map +1 -1
- package/dist/flow/model.d.ts +4 -2
- package/dist/flow/model.d.ts.map +1 -1
- package/dist/flow/model.js +4 -2
- package/dist/flow/model.js.map +1 -1
- package/dist/flow/node.d.ts +40 -9
- package/dist/flow/node.d.ts.map +1 -1
- package/dist/flow/node.js +142 -53
- package/dist/flow/node.js.map +1 -1
- package/dist/flow/types.d.ts +46 -21
- package/dist/flow/types.d.ts.map +1 -1
- package/dist/formula/index.d.ts +4 -2
- package/dist/formula/index.d.ts.map +1 -1
- package/dist/formula/index.js.map +1 -1
- package/dist/formula/node.d.ts +5 -1
- package/dist/formula/node.d.ts.map +1 -1
- package/dist/formula/node.js +19 -3
- package/dist/formula/node.js.map +1 -1
- package/dist/html/controls.d.ts +4 -1
- package/dist/html/controls.d.ts.map +1 -1
- package/dist/html/controls.js.map +1 -1
- package/dist/html/css/cascade.d.ts +11 -5
- package/dist/html/css/cascade.d.ts.map +1 -1
- package/dist/html/css/cascade.js +18 -8
- package/dist/html/css/cascade.js.map +1 -1
- package/dist/html/css/parse.d.ts +15 -10
- package/dist/html/css/parse.d.ts.map +1 -1
- package/dist/html/css/parse.js +41 -16
- package/dist/html/css/parse.js.map +1 -1
- package/dist/html/css/style.d.ts +3 -0
- package/dist/html/css/style.d.ts.map +1 -1
- package/dist/html/css/style.js +3 -1
- package/dist/html/css/style.js.map +1 -1
- package/dist/html/css/values.d.ts +14 -1
- package/dist/html/css/values.d.ts.map +1 -1
- package/dist/html/css/values.js +11 -8
- package/dist/html/css/values.js.map +1 -1
- package/dist/html/index.d.ts.map +1 -1
- package/dist/html/index.js +1 -0
- package/dist/html/index.js.map +1 -1
- package/dist/html/layout/boxes.d.ts +12 -5
- package/dist/html/layout/boxes.d.ts.map +1 -1
- package/dist/html/layout/boxes.js +7 -4
- package/dist/html/layout/boxes.js.map +1 -1
- package/dist/html/layout/inline.d.ts.map +1 -1
- package/dist/html/layout/inline.js +22 -1
- package/dist/html/layout/inline.js.map +1 -1
- package/dist/html/node.d.ts +22 -8
- package/dist/html/node.d.ts.map +1 -1
- package/dist/html/node.js +97 -15
- package/dist/html/node.js.map +1 -1
- package/dist/html/paint.d.ts +3 -0
- package/dist/html/paint.d.ts.map +1 -1
- package/dist/html/paint.js +2 -2
- package/dist/html/paint.js.map +1 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -1
- package/dist/maps/clip.d.ts +43 -0
- package/dist/maps/clip.d.ts.map +1 -0
- package/dist/maps/clip.js +171 -0
- package/dist/maps/clip.js.map +1 -0
- package/dist/maps/gzip.d.ts +15 -0
- package/dist/maps/gzip.d.ts.map +1 -0
- package/dist/maps/gzip.js +56 -0
- package/dist/maps/gzip.js.map +1 -0
- package/dist/maps/index.d.ts +55 -0
- package/dist/maps/index.d.ts.map +1 -0
- package/dist/maps/index.js +141 -0
- package/dist/maps/index.js.map +1 -0
- package/dist/maps/labels.d.ts +123 -0
- package/dist/maps/labels.d.ts.map +1 -0
- package/dist/maps/labels.js +323 -0
- package/dist/maps/labels.js.map +1 -0
- package/dist/maps/mvt.d.ts +244 -0
- package/dist/maps/mvt.d.ts.map +1 -0
- package/dist/maps/mvt.js +820 -0
- package/dist/maps/mvt.js.map +1 -0
- package/dist/maps/node.d.ts +278 -0
- package/dist/maps/node.d.ts.map +1 -0
- package/dist/maps/node.js +1459 -0
- package/dist/maps/node.js.map +1 -0
- package/dist/maps/overlay.d.ts +157 -0
- package/dist/maps/overlay.d.ts.map +1 -0
- package/dist/maps/overlay.js +472 -0
- package/dist/maps/overlay.js.map +1 -0
- package/dist/maps/paint.d.ts +226 -0
- package/dist/maps/paint.d.ts.map +1 -0
- package/dist/maps/paint.js +705 -0
- package/dist/maps/paint.js.map +1 -0
- package/dist/maps/proj.d.ts +281 -0
- package/dist/maps/proj.d.ts.map +1 -0
- package/dist/maps/proj.js +451 -0
- package/dist/maps/proj.js.map +1 -0
- package/dist/maps/sources.d.ts +256 -0
- package/dist/maps/sources.d.ts.map +1 -0
- package/dist/maps/sources.js +210 -0
- package/dist/maps/sources.js.map +1 -0
- package/dist/maps/style.d.ts +141 -0
- package/dist/maps/style.d.ts.map +1 -0
- package/dist/maps/style.js +147 -0
- package/dist/maps/style.js.map +1 -0
- package/dist/maps/styles.d.ts +82 -0
- package/dist/maps/styles.d.ts.map +1 -0
- package/dist/maps/styles.js +898 -0
- package/dist/maps/styles.js.map +1 -0
- package/dist/maps/tiles.d.ts +283 -0
- package/dist/maps/tiles.d.ts.map +1 -0
- package/dist/maps/tiles.js +469 -0
- package/dist/maps/tiles.js.map +1 -0
- package/dist/maps/types.d.ts +244 -0
- package/dist/maps/types.d.ts.map +1 -0
- package/dist/maps/types.js +2 -0
- package/dist/maps/types.js.map +1 -0
- package/dist/qml/containers.d.ts +3 -0
- package/dist/qml/containers.d.ts.map +1 -0
- package/dist/qml/containers.js +331 -0
- package/dist/qml/containers.js.map +1 -0
- package/dist/qml/controls.d.ts +12 -0
- package/dist/qml/controls.d.ts.map +1 -0
- package/dist/qml/controls.js +21 -0
- package/dist/qml/controls.js.map +1 -0
- package/dist/qml/globals.d.ts +6 -0
- package/dist/qml/globals.d.ts.map +1 -0
- package/dist/qml/globals.js +25 -0
- package/dist/qml/globals.js.map +1 -0
- package/dist/qml/index.d.ts +15 -0
- package/dist/qml/index.d.ts.map +1 -0
- package/dist/qml/index.js +25 -0
- package/dist/qml/index.js.map +1 -0
- package/dist/qml/interaction.d.ts +12 -0
- package/dist/qml/interaction.d.ts.map +1 -0
- package/dist/qml/interaction.js +246 -0
- package/dist/qml/interaction.js.map +1 -0
- package/dist/qml/ir.d.ts +106 -0
- package/dist/qml/ir.d.ts.map +1 -0
- package/dist/qml/ir.js +7 -0
- package/dist/qml/ir.js.map +1 -0
- package/dist/qml/layouts.d.ts +3 -0
- package/dist/qml/layouts.d.ts.map +1 -0
- package/dist/qml/layouts.js +122 -0
- package/dist/qml/layouts.js.map +1 -0
- package/dist/qml/models.d.ts +14 -0
- package/dist/qml/models.d.ts.map +1 -0
- package/dist/qml/models.js +80 -0
- package/dist/qml/models.js.map +1 -0
- package/dist/qml/objects.d.ts +228 -0
- package/dist/qml/objects.d.ts.map +1 -0
- package/dist/qml/objects.js +1103 -0
- package/dist/qml/objects.js.map +1 -0
- package/dist/qml/parse.d.ts +10 -0
- package/dist/qml/parse.d.ts.map +1 -0
- package/dist/qml/parse.js +607 -0
- package/dist/qml/parse.js.map +1 -0
- package/dist/qml/qtquick.d.ts +7 -0
- package/dist/qml/qtquick.d.ts.map +1 -0
- package/dist/qml/qtquick.js +347 -0
- package/dist/qml/qtquick.js.map +1 -0
- package/dist/qml/react.d.ts +83 -0
- package/dist/qml/react.d.ts.map +1 -0
- package/dist/qml/react.js +323 -0
- package/dist/qml/react.js.map +1 -0
- package/dist/qml/resolver.d.ts +38 -0
- package/dist/qml/resolver.d.ts.map +1 -0
- package/dist/qml/resolver.js +64 -0
- package/dist/qml/resolver.js.map +1 -0
- package/dist/qml/slots.d.ts +65 -0
- package/dist/qml/slots.d.ts.map +1 -0
- package/dist/qml/slots.js +230 -0
- package/dist/qml/slots.js.map +1 -0
- package/dist/qml/states.d.ts +5 -0
- package/dist/qml/states.d.ts.map +1 -0
- package/dist/qml/states.js +276 -0
- package/dist/qml/states.js.map +1 -0
- package/dist/qml/view-utils.d.ts +42 -0
- package/dist/qml/view-utils.d.ts.map +1 -0
- package/dist/qml/view-utils.js +121 -0
- package/dist/qml/view-utils.js.map +1 -0
- package/dist/reorder/hx.d.ts +18 -0
- package/dist/reorder/hx.d.ts.map +1 -0
- package/dist/reorder/hx.js +10 -0
- package/dist/reorder/hx.js.map +1 -0
- package/dist/reorder/index.d.ts +314 -0
- package/dist/reorder/index.d.ts.map +1 -0
- package/dist/reorder/index.js +1539 -0
- package/dist/reorder/index.js.map +1 -0
- package/dist/reorder/model.d.ts +107 -0
- package/dist/reorder/model.d.ts.map +1 -0
- package/dist/reorder/model.js +162 -0
- package/dist/reorder/model.js.map +1 -0
- package/dist/richtext/node.d.ts +15 -5
- package/dist/richtext/node.d.ts.map +1 -1
- package/dist/richtext/node.js +40 -11
- package/dist/richtext/node.js.map +1 -1
- package/dist/richtext/runs.d.ts +35 -13
- package/dist/richtext/runs.d.ts.map +1 -1
- package/dist/richtext/runs.js +83 -27
- package/dist/richtext/runs.js.map +1 -1
- package/dist/tabs/hx.d.ts +18 -0
- package/dist/tabs/hx.d.ts.map +1 -0
- package/dist/tabs/hx.js +10 -0
- package/dist/tabs/hx.js.map +1 -0
- package/dist/tabs/index.d.ts +160 -0
- package/dist/tabs/index.d.ts.map +1 -0
- package/dist/tabs/index.js +1265 -0
- package/dist/tabs/index.js.map +1 -0
- package/dist/terminal/vt/fonts.d.ts +45 -15
- package/dist/terminal/vt/fonts.d.ts.map +1 -1
- package/dist/terminal/vt/fonts.js +89 -19
- package/dist/terminal/vt/fonts.js.map +1 -1
- package/dist/terminal/vt/index.d.ts +1 -1
- package/dist/terminal/vt/index.d.ts.map +1 -1
- package/dist/terminal/vt/index.js +3 -3
- package/dist/terminal/vt/index.js.map +1 -1
- package/dist/terminal/vt/node.d.ts +42 -0
- package/dist/terminal/vt/node.d.ts.map +1 -1
- package/dist/terminal/vt/node.js +95 -11
- package/dist/terminal/vt/node.js.map +1 -1
- package/dist/terminal/vt/pty.d.ts +16 -0
- package/dist/terminal/vt/pty.d.ts.map +1 -1
- package/dist/terminal/vt/pty.js +186 -0
- package/dist/terminal/vt/pty.js.map +1 -1
- package/dist/terminal/vt/renderer.d.ts.map +1 -1
- package/dist/terminal/vt/renderer.js +13 -3
- package/dist/terminal/vt/renderer.js.map +1 -1
- package/package.json +23 -3
- package/src/charts/components.ts +14 -7
- package/src/charts/node.ts +81 -26
- package/src/charts/render.ts +16 -6
- package/src/code-editor/node.ts +147 -53
- package/src/flow/draw.ts +104 -35
- package/src/flow/index.ts +33 -13
- package/src/flow/model.ts +4 -2
- package/src/flow/node.ts +158 -59
- package/src/flow/types.ts +46 -21
- package/src/formula/index.ts +4 -2
- package/src/formula/node.ts +24 -5
- package/src/html/controls.ts +4 -1
- package/src/html/css/cascade.ts +18 -7
- package/src/html/css/parse.ts +46 -21
- package/src/html/css/style.ts +6 -1
- package/src/html/css/values.ts +25 -9
- package/src/html/index.ts +1 -0
- package/src/html/layout/boxes.ts +19 -9
- package/src/html/layout/inline.ts +23 -1
- package/src/html/node.ts +110 -17
- package/src/html/paint.ts +17 -2
- package/src/index.ts +142 -0
- package/src/maps/clip.ts +184 -0
- package/src/maps/gzip.ts +66 -0
- package/src/maps/index.ts +316 -0
- package/src/maps/labels.ts +442 -0
- package/src/maps/mvt.ts +857 -0
- package/src/maps/node.ts +1819 -0
- package/src/maps/overlay.ts +639 -0
- package/src/maps/paint.ts +978 -0
- package/src/maps/proj.ts +641 -0
- package/src/maps/sources.ts +425 -0
- package/src/maps/style.ts +309 -0
- package/src/maps/styles.ts +1040 -0
- package/src/maps/tiles.ts +676 -0
- package/src/maps/types.ts +260 -0
- package/src/qml/containers.tsx +380 -0
- package/src/qml/controls.tsx +47 -0
- package/src/qml/globals.ts +33 -0
- package/src/qml/index.ts +67 -0
- package/src/qml/interaction.tsx +317 -0
- package/src/qml/ir.ts +80 -0
- package/src/qml/layouts.tsx +141 -0
- package/src/qml/models.ts +101 -0
- package/src/qml/objects.ts +1431 -0
- package/src/qml/parse.ts +624 -0
- package/src/qml/qtquick.tsx +413 -0
- package/src/qml/react.tsx +454 -0
- package/src/qml/resolver.ts +99 -0
- package/src/qml/slots.ts +249 -0
- package/src/qml/states.ts +318 -0
- package/src/qml/view-utils.ts +140 -0
- package/src/reorder/hx.ts +31 -0
- package/src/reorder/index.ts +2223 -0
- package/src/reorder/model.ts +232 -0
- package/src/richtext/node.ts +49 -14
- package/src/richtext/runs.ts +115 -30
- package/src/tabs/hx.ts +31 -0
- package/src/tabs/index.ts +1686 -0
- package/src/terminal/vt/fonts.ts +128 -36
- package/src/terminal/vt/index.ts +4 -2
- package/src/terminal/vt/node.ts +105 -12
- package/src/terminal/vt/pty.ts +243 -0
- package/src/terminal/vt/renderer.ts +13 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controls.js","sourceRoot":"","sources":["../../src/qml/controls.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAYtC,MAAM,UAAU,gBAAgB,CAAC,EAAE,MAAM,EAAmB;IAC1D,iBAAiB,CAAC,kBAAkB,EAAE;QACpC,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACL,MAAM,EAAE;gBACN,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;oBACrB,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;iBAC5B;gBACD,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;gBACxB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAClB,cAAK,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,YAC7B,KAAC,MAAM,IACL,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,EAC7C,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,EAC/C,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAElC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GACvB,GACL,CACP;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function microtask(fn: () => void): void;
|
|
2
|
+
/** `Timer { interval: … }` — null when the host has no timer at all. */
|
|
3
|
+
export declare function schedule(fn: () => void, ms: number): unknown;
|
|
4
|
+
export declare function cancel(id: unknown): void;
|
|
5
|
+
export declare function warn(...args: unknown[]): void;
|
|
6
|
+
//# sourceMappingURL=globals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../../src/qml/globals.ts"],"names":[],"mappings":"AAgBA,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAG9C;AAED,wEAAwE;AACxE,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAExC;AAED,wBAAgB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAE7C"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// Host globals, reached structurally through `globalThis`. The build
|
|
2
|
+
// compiles `src/` with `types: []` on purpose — a Node global that wanders
|
|
3
|
+
// in must fail the build rather than become an implicit `@types/node`
|
|
4
|
+
// dependency (AGENTS.md) — so the few platform facilities the QML runtime
|
|
5
|
+
// needs are typed here, the way `charts/timers.ts` and `three/globals.ts`
|
|
6
|
+
// do it.
|
|
7
|
+
const g = globalThis;
|
|
8
|
+
export function microtask(fn) {
|
|
9
|
+
if (g.queueMicrotask)
|
|
10
|
+
g.queueMicrotask(fn);
|
|
11
|
+
else
|
|
12
|
+
void Promise.resolve().then(fn);
|
|
13
|
+
}
|
|
14
|
+
/** `Timer { interval: … }` — null when the host has no timer at all. */
|
|
15
|
+
export function schedule(fn, ms) {
|
|
16
|
+
return g.setTimeout ? g.setTimeout(fn, ms) : null;
|
|
17
|
+
}
|
|
18
|
+
export function cancel(id) {
|
|
19
|
+
if (id != null)
|
|
20
|
+
g.clearTimeout?.(id);
|
|
21
|
+
}
|
|
22
|
+
export function warn(...args) {
|
|
23
|
+
g.console?.warn(...args);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=globals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../../src/qml/globals.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,2EAA2E;AAC3E,sEAAsE;AACtE,0EAA0E;AAC1E,0EAA0E;AAC1E,SAAS;AAST,MAAM,CAAC,GAAG,UAAyB,CAAC;AAEpC,MAAM,UAAU,SAAS,CAAC,EAAc;IACtC,IAAI,CAAC,CAAC,cAAc;QAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;;QACtC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,QAAQ,CAAC,EAAc,EAAE,EAAU;IACjD,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAW;IAChC,IAAI,EAAE,IAAI,IAAI;QAAE,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,GAAG,IAAe;IACrC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { parseQml, ParseError } from './parse.js';
|
|
2
|
+
export type { QmlDocument, QmlImport, ObjectIR, MemberIR, ValueIR, } from './ir.js';
|
|
3
|
+
export { Qt, QmlInstance, Context, instantiateDocument, instantiateTemplate, migrateUserState, registerQmlModule, instanceOf, lookupType, } from './objects.js';
|
|
4
|
+
export type { QmlFacade, QmlTypeDef, QmlTypeInfo, QmlPropertyDef, ValueSourceHookup, InstantiateResult, QtNamespace, TemplateRef, } from './objects.js';
|
|
5
|
+
export { Slot, flushBindings } from './slots.js';
|
|
6
|
+
export { QmlView, QmlNode, registerReactComponent, renderQmlChildren, useQmlVersion, } from './react.js';
|
|
7
|
+
export type { QmlViewProps, QmlViewHandle, RegisterReactComponentOptions, } from './react.js';
|
|
8
|
+
export { qmlColor, registerQtQuick } from './qtquick.js';
|
|
9
|
+
export { createFileResolver } from './resolver.js';
|
|
10
|
+
export type { QmlResolver, DocLoad } from './resolver.js';
|
|
11
|
+
export { geometryStyle, preferredSpan } from './react.js';
|
|
12
|
+
export { captureNode, hostNode } from './view-utils.js';
|
|
13
|
+
export { registerControls } from './controls.js';
|
|
14
|
+
export type { ControlsWidgets } from './controls.js';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/qml/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAClD,YAAY,EACV,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,OAAO,GACR,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,EAAE,EACF,WAAW,EACX,OAAO,EACP,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EACL,OAAO,EACP,OAAO,EACP,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,YAAY,EACZ,aAAa,EACb,6BAA6B,GAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// `@react-x11/components/qml` — QML as an authoring layer over react-x11.
|
|
2
|
+
//
|
|
3
|
+
// A zero-dependency QML engine: the parser, the reactive slot graph with
|
|
4
|
+
// QML's binding-breaking assignment, the object model with Qt's scoping
|
|
5
|
+
// rules, and a QtQuick subset whose every pixel is an ordinary
|
|
6
|
+
// `<box>`/`<text>`/`<image>` committed through the renderer. The docs page
|
|
7
|
+
// is docs/components/qml.md; the design record is react-x11's QML RFC.
|
|
8
|
+
//
|
|
9
|
+
// Importing this module populates the QtQuick registry — the family's own
|
|
10
|
+
// module-level registry, no core state touched. That is this family's one
|
|
11
|
+
// import-time side effect, the same shape as a component registering its
|
|
12
|
+
// element (AGENTS.md, "Tree-shaking"): it lives here so a bundler that
|
|
13
|
+
// keeps the family runs it, and one that shakes the family drops it.
|
|
14
|
+
import { registerQtQuick } from './qtquick.js';
|
|
15
|
+
registerQtQuick();
|
|
16
|
+
export { parseQml, ParseError } from './parse.js';
|
|
17
|
+
export { Qt, QmlInstance, Context, instantiateDocument, instantiateTemplate, migrateUserState, registerQmlModule, instanceOf, lookupType, } from './objects.js';
|
|
18
|
+
export { Slot, flushBindings } from './slots.js';
|
|
19
|
+
export { QmlView, QmlNode, registerReactComponent, renderQmlChildren, useQmlVersion, } from './react.js';
|
|
20
|
+
export { qmlColor, registerQtQuick } from './qtquick.js';
|
|
21
|
+
export { createFileResolver } from './resolver.js';
|
|
22
|
+
export { geometryStyle, preferredSpan } from './react.js';
|
|
23
|
+
export { captureNode, hostNode } from './view-utils.js';
|
|
24
|
+
export { registerControls } from './controls.js';
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/qml/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,yEAAyE;AACzE,wEAAwE;AACxE,+DAA+D;AAC/D,2EAA2E;AAC3E,uEAAuE;AACvE,EAAE;AACF,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,uEAAuE;AACvE,qEAAqE;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,eAAe,EAAE,CAAC;AAElB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQlD,OAAO,EACL,EAAE,EACF,WAAW,EACX,OAAO,EACP,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAC;AAWtB,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EACL,OAAO,EACP,OAAO,EACP,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Style } from 'react-x11/style';
|
|
2
|
+
import { QmlInstance, type QmlTypeDef } from './objects.js';
|
|
3
|
+
/**
|
|
4
|
+
* The focus/keyboard props an Item earns from `focus: true`, `Keys.*`
|
|
5
|
+
* handlers, or being told to be focusable. `activeFocus` follows the real
|
|
6
|
+
* focus events.
|
|
7
|
+
*/
|
|
8
|
+
export declare function keyFocusProps(inst: QmlInstance): Record<string, unknown>;
|
|
9
|
+
/** The font/colour subset Text and the editors share. */
|
|
10
|
+
export declare function applyFontStyle(inst: QmlInstance, style: Style): void;
|
|
11
|
+
export declare const interactionTypes: Record<string, QmlTypeDef>;
|
|
12
|
+
//# sourceMappingURL=interaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../src/qml/interaction.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAe7C,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAoF5D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBxE;AAyED,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAepE;AA+CD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAoDvD,CAAC"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react-x11/jsx-runtime";
|
|
2
|
+
// Pointer and keyboard: MouseArea, the `Keys` attached handlers, `focus`/
|
|
3
|
+
// `activeFocus`, and the two text editors over core's `<textinput>` /
|
|
4
|
+
// `<textarea>`.
|
|
5
|
+
import { useEffect } from 'react';
|
|
6
|
+
import { XK_BACKSPACE, XK_DELETE, XK_DOWN, XK_ESCAPE, XK_KP_ENTER, XK_LEFT, XK_RETURN, XK_RIGHT, XK_SPACE, XK_TAB, XK_UP, } from 'react-x11/keysyms';
|
|
7
|
+
import { QmlInstance } from './objects.js';
|
|
8
|
+
import { renderQmlChildren, geometryStyle } from './react.js';
|
|
9
|
+
import { applyMotion, captureNode, hostNode, num, qmlColor, str, } from './view-utils.js';
|
|
10
|
+
// Qt's modifier flags, so `mouse.modifiers & Qt.ShiftModifier` reads as
|
|
11
|
+
// ported code expects.
|
|
12
|
+
const SHIFT = 0x02000000;
|
|
13
|
+
const CTRL = 0x04000000;
|
|
14
|
+
const ALT = 0x08000000;
|
|
15
|
+
const META = 0x10000000;
|
|
16
|
+
const modifiersOf = (e) => (e.shiftKey ? SHIFT : 0) |
|
|
17
|
+
(e.ctrlKey ? CTRL : 0) |
|
|
18
|
+
(e.altKey ? ALT : 0) |
|
|
19
|
+
(e.metaKey ? META : 0);
|
|
20
|
+
const NAMED_KEYS = {
|
|
21
|
+
[XK_RETURN]: 'Return',
|
|
22
|
+
[XK_KP_ENTER]: 'Enter',
|
|
23
|
+
[XK_ESCAPE]: 'Escape',
|
|
24
|
+
[XK_UP]: 'Up',
|
|
25
|
+
[XK_DOWN]: 'Down',
|
|
26
|
+
[XK_LEFT]: 'Left',
|
|
27
|
+
[XK_RIGHT]: 'Right',
|
|
28
|
+
[XK_TAB]: 'Tab',
|
|
29
|
+
[XK_SPACE]: 'Space',
|
|
30
|
+
[XK_DELETE]: 'Delete',
|
|
31
|
+
[XK_BACKSPACE]: 'Back',
|
|
32
|
+
};
|
|
33
|
+
function dispatchKeys(inst, e) {
|
|
34
|
+
const ev = {
|
|
35
|
+
key: e.keysym ?? 0,
|
|
36
|
+
text: e.key ?? '',
|
|
37
|
+
modifiers: modifiersOf(e),
|
|
38
|
+
accepted: false,
|
|
39
|
+
};
|
|
40
|
+
const named = NAMED_KEYS[ev.key];
|
|
41
|
+
if (named)
|
|
42
|
+
inst.attachedHandlers.get(`Keys.on${named}Pressed`)?.(ev);
|
|
43
|
+
if (!ev.accepted)
|
|
44
|
+
inst.attachedHandlers.get('Keys.onPressed')?.(ev);
|
|
45
|
+
if (ev.accepted)
|
|
46
|
+
e.stopPropagation?.();
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The focus/keyboard props an Item earns from `focus: true`, `Keys.*`
|
|
50
|
+
* handlers, or being told to be focusable. `activeFocus` follows the real
|
|
51
|
+
* focus events.
|
|
52
|
+
*/
|
|
53
|
+
export function keyFocusProps(inst) {
|
|
54
|
+
const wantsFocus = inst.slots.get('focus')?.peek() === true;
|
|
55
|
+
let hasKeys = false;
|
|
56
|
+
for (const k of inst.attachedHandlers.keys()) {
|
|
57
|
+
if (k.startsWith('Keys.')) {
|
|
58
|
+
hasKeys = true;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (!wantsFocus && !hasKeys)
|
|
63
|
+
return {};
|
|
64
|
+
const props = {
|
|
65
|
+
focusable: true,
|
|
66
|
+
onFocus: () => inst.slots.get('activeFocus')?.assign(true),
|
|
67
|
+
onBlur: () => inst.slots.get('activeFocus')?.assign(false),
|
|
68
|
+
};
|
|
69
|
+
if (wantsFocus)
|
|
70
|
+
props.autoFocus = true;
|
|
71
|
+
if (hasKeys)
|
|
72
|
+
props.onKeyDown = (e) => dispatchKeys(inst, e);
|
|
73
|
+
return props;
|
|
74
|
+
}
|
|
75
|
+
// --- MouseArea -------------------------------------------------------------
|
|
76
|
+
function MouseAreaView({ inst }) {
|
|
77
|
+
const enabled = inst.slot('enabled').peek() !== false;
|
|
78
|
+
const hoverEnabled = inst.slot('hoverEnabled').peek() === true;
|
|
79
|
+
const style = geometryStyle(inst);
|
|
80
|
+
applyMotion(inst, style);
|
|
81
|
+
const mouse = (e) => {
|
|
82
|
+
const abs = hostNode(inst)?.abs;
|
|
83
|
+
return {
|
|
84
|
+
x: e.x - (abs?.x ?? 0),
|
|
85
|
+
y: e.y - (abs?.y ?? 0),
|
|
86
|
+
button: e.button,
|
|
87
|
+
modifiers: modifiersOf(e),
|
|
88
|
+
accepted: true,
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
const handlers = {};
|
|
92
|
+
if (enabled) {
|
|
93
|
+
handlers.onClick = (e) => {
|
|
94
|
+
e.stopPropagation?.();
|
|
95
|
+
inst.emit('clicked', mouse(e));
|
|
96
|
+
if (e.detail === 2)
|
|
97
|
+
inst.emit('doubleClicked', mouse(e));
|
|
98
|
+
};
|
|
99
|
+
handlers.onMouseDown = (e) => {
|
|
100
|
+
e.stopPropagation?.();
|
|
101
|
+
inst.slot('pressed').assign(true);
|
|
102
|
+
inst.emit('pressed', mouse(e));
|
|
103
|
+
};
|
|
104
|
+
handlers.onMouseUp = (e) => {
|
|
105
|
+
e.stopPropagation?.();
|
|
106
|
+
inst.slot('pressed').assign(false);
|
|
107
|
+
inst.emit('released', mouse(e));
|
|
108
|
+
};
|
|
109
|
+
handlers.onMouseMove = (e) => {
|
|
110
|
+
inst.emit('positionChanged', mouse(e));
|
|
111
|
+
};
|
|
112
|
+
handlers.onWheel = (e) => {
|
|
113
|
+
inst.emit('wheel', {
|
|
114
|
+
...mouse(e),
|
|
115
|
+
angleDelta: { x: e.deltaX ?? 0, y: e.deltaY ?? 0 },
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
if (hoverEnabled) {
|
|
119
|
+
handlers.onMouseEnter = () => {
|
|
120
|
+
inst.slot('containsMouse').assign(true);
|
|
121
|
+
inst.emit('entered');
|
|
122
|
+
};
|
|
123
|
+
handlers.onMouseLeave = () => {
|
|
124
|
+
inst.slot('containsMouse').assign(false);
|
|
125
|
+
inst.emit('exited');
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return (_jsx("box", { ref: captureNode(inst), style: style, ...handlers, ...keyFocusProps(inst), children: renderQmlChildren(inst) }));
|
|
130
|
+
}
|
|
131
|
+
// --- TextInput / TextEdit --------------------------------------------------
|
|
132
|
+
/** The font/colour subset Text and the editors share. */
|
|
133
|
+
export function applyFontStyle(inst, style) {
|
|
134
|
+
const color = inst.slots.get('color')?.peek();
|
|
135
|
+
if (color !== undefined)
|
|
136
|
+
style.color = qmlColor(color);
|
|
137
|
+
const px = num(inst.slots.get('font.pixelSize')?.peek());
|
|
138
|
+
const pt = num(inst.slots.get('font.pointSize')?.peek());
|
|
139
|
+
if (px)
|
|
140
|
+
style.fontSize = px;
|
|
141
|
+
else if (pt)
|
|
142
|
+
style.fontSize = Math.round((pt * 96) / 72); // CSS's 1pt
|
|
143
|
+
const family = inst.slots.get('font.family')?.peek();
|
|
144
|
+
if (family)
|
|
145
|
+
style.fontFamily = String(family);
|
|
146
|
+
if (inst.slots.get('font.bold')?.peek())
|
|
147
|
+
style.fontWeight = 700;
|
|
148
|
+
else {
|
|
149
|
+
const weight = num(inst.slots.get('font.weight')?.peek());
|
|
150
|
+
if (weight)
|
|
151
|
+
style.fontWeight = weight;
|
|
152
|
+
}
|
|
153
|
+
if (inst.slots.get('font.italic')?.peek())
|
|
154
|
+
style.fontStyle = 'italic';
|
|
155
|
+
}
|
|
156
|
+
function useImplicitLineHeight(inst, text) {
|
|
157
|
+
useEffect(() => {
|
|
158
|
+
const node = hostNode(inst);
|
|
159
|
+
if (!node?.app?.fonts || !node.resolvedTextStyle)
|
|
160
|
+
return;
|
|
161
|
+
try {
|
|
162
|
+
const probe = node.app.fonts.layout(text || 'Mg', node.resolvedTextStyle());
|
|
163
|
+
inst.slots.get('implicitHeight')?.assign(Math.ceil(probe.height) + 8);
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
// No fonts loaded (headless without the fonts option): leave 0.
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
function editorView(tag) {
|
|
171
|
+
return function EditorView({ inst }) {
|
|
172
|
+
const style = geometryStyle(inst);
|
|
173
|
+
applyFontStyle(inst, style);
|
|
174
|
+
applyMotion(inst, style);
|
|
175
|
+
const text = str(inst.slot('text').peek());
|
|
176
|
+
useImplicitLineHeight(inst, text);
|
|
177
|
+
const maxLen = num(inst.slots.get('maximumLength')?.peek());
|
|
178
|
+
const props = {
|
|
179
|
+
ref: captureNode(inst),
|
|
180
|
+
style,
|
|
181
|
+
value: text,
|
|
182
|
+
onChange: (ev) => inst.slot('text').set(ev.value),
|
|
183
|
+
...keyFocusProps(inst),
|
|
184
|
+
};
|
|
185
|
+
if (tag === 'textinput') {
|
|
186
|
+
props.onSubmit = () => inst.emit('accepted');
|
|
187
|
+
if (maxLen > 0 && maxLen < 32767)
|
|
188
|
+
props.maxLength = maxLen;
|
|
189
|
+
return _jsx("textinput", { ...props });
|
|
190
|
+
}
|
|
191
|
+
return _jsx("textarea", { ...props });
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
// --- the type definitions --------------------------------------------------
|
|
195
|
+
export const interactionTypes = {
|
|
196
|
+
MouseArea: {
|
|
197
|
+
extends: 'Item',
|
|
198
|
+
view: MouseAreaView,
|
|
199
|
+
properties: {
|
|
200
|
+
pressed: { default: false },
|
|
201
|
+
containsMouse: { default: false },
|
|
202
|
+
hoverEnabled: { default: false },
|
|
203
|
+
},
|
|
204
|
+
signals: {
|
|
205
|
+
clicked: ['mouse'],
|
|
206
|
+
doubleClicked: ['mouse'],
|
|
207
|
+
pressed: ['mouse'],
|
|
208
|
+
released: ['mouse'],
|
|
209
|
+
positionChanged: ['mouse'],
|
|
210
|
+
entered: [],
|
|
211
|
+
exited: [],
|
|
212
|
+
wheel: ['wheel'],
|
|
213
|
+
},
|
|
214
|
+
},
|
|
215
|
+
TextInput: {
|
|
216
|
+
extends: 'Item',
|
|
217
|
+
view: editorView('textinput'),
|
|
218
|
+
properties: {
|
|
219
|
+
text: { default: '' },
|
|
220
|
+
color: { default: undefined },
|
|
221
|
+
maximumLength: { default: 32767 },
|
|
222
|
+
'font.pixelSize': { default: 0 },
|
|
223
|
+
'font.pointSize': { default: 0 },
|
|
224
|
+
'font.family': { default: '' },
|
|
225
|
+
'font.bold': { default: false },
|
|
226
|
+
'font.italic': { default: false },
|
|
227
|
+
'font.weight': { default: 0 },
|
|
228
|
+
},
|
|
229
|
+
signals: { accepted: [], editingFinished: [] },
|
|
230
|
+
},
|
|
231
|
+
TextEdit: {
|
|
232
|
+
extends: 'Item',
|
|
233
|
+
view: editorView('textarea'),
|
|
234
|
+
properties: {
|
|
235
|
+
text: { default: '' },
|
|
236
|
+
color: { default: undefined },
|
|
237
|
+
'font.pixelSize': { default: 0 },
|
|
238
|
+
'font.pointSize': { default: 0 },
|
|
239
|
+
'font.family': { default: '' },
|
|
240
|
+
'font.bold': { default: false },
|
|
241
|
+
'font.italic': { default: false },
|
|
242
|
+
'font.weight': { default: 0 },
|
|
243
|
+
},
|
|
244
|
+
},
|
|
245
|
+
};
|
|
246
|
+
//# sourceMappingURL=interaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/qml/interaction.tsx"],"names":[],"mappings":"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"}
|
package/dist/qml/ir.d.ts
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
export interface QmlImport {
|
|
2
|
+
/** `import QtQuick 2.15` — a registry module name. */
|
|
3
|
+
module?: string;
|
|
4
|
+
/** `import "./widgets"` — a path import (resolved by the host app). */
|
|
5
|
+
path?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
alias?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ObjectIR {
|
|
10
|
+
type: string;
|
|
11
|
+
id: string | null;
|
|
12
|
+
members: MemberIR[];
|
|
13
|
+
loc: number;
|
|
14
|
+
}
|
|
15
|
+
export type ValueIR =
|
|
16
|
+
/** A JavaScript expression, compiled lazily by the runtime. */
|
|
17
|
+
{
|
|
18
|
+
kind: 'expr';
|
|
19
|
+
src: string;
|
|
20
|
+
loc: number;
|
|
21
|
+
}
|
|
22
|
+
/** `prop: { …statements }` — a script binding (still reactive). */
|
|
23
|
+
| {
|
|
24
|
+
kind: 'block';
|
|
25
|
+
src: string;
|
|
26
|
+
loc: number;
|
|
27
|
+
}
|
|
28
|
+
/** `delegate: Component { … }`, `background: Rectangle { … }`. */
|
|
29
|
+
| {
|
|
30
|
+
kind: 'object';
|
|
31
|
+
object: ObjectIR;
|
|
32
|
+
}
|
|
33
|
+
/** `states: [State { … }, …]` — an array of object templates. */
|
|
34
|
+
| {
|
|
35
|
+
kind: 'array';
|
|
36
|
+
items: ValueIR[];
|
|
37
|
+
};
|
|
38
|
+
export interface AliasTargetIR {
|
|
39
|
+
kind: 'alias-target';
|
|
40
|
+
path: string[];
|
|
41
|
+
}
|
|
42
|
+
export type MemberIR = {
|
|
43
|
+
kind: 'property';
|
|
44
|
+
name: string;
|
|
45
|
+
propType: string;
|
|
46
|
+
readonly: boolean;
|
|
47
|
+
default: boolean;
|
|
48
|
+
required: boolean;
|
|
49
|
+
value: ValueIR | AliasTargetIR | null;
|
|
50
|
+
loc: number;
|
|
51
|
+
} | {
|
|
52
|
+
kind: 'signal';
|
|
53
|
+
name: string;
|
|
54
|
+
params: Array<{
|
|
55
|
+
type: string;
|
|
56
|
+
name: string;
|
|
57
|
+
}>;
|
|
58
|
+
loc: number;
|
|
59
|
+
} | {
|
|
60
|
+
kind: 'function';
|
|
61
|
+
name: string;
|
|
62
|
+
params: string[];
|
|
63
|
+
body: string;
|
|
64
|
+
loc: number;
|
|
65
|
+
} | {
|
|
66
|
+
kind: 'binding';
|
|
67
|
+
path: string[];
|
|
68
|
+
value: ValueIR;
|
|
69
|
+
loc: number;
|
|
70
|
+
} | {
|
|
71
|
+
kind: 'group';
|
|
72
|
+
bindings: BindingMemberIR[];
|
|
73
|
+
loc: number;
|
|
74
|
+
} | {
|
|
75
|
+
kind: 'object';
|
|
76
|
+
object: ObjectIR;
|
|
77
|
+
loc: number;
|
|
78
|
+
} | {
|
|
79
|
+
kind: 'value-source';
|
|
80
|
+
object: ObjectIR;
|
|
81
|
+
on: string[];
|
|
82
|
+
loc: number;
|
|
83
|
+
} | {
|
|
84
|
+
kind: 'id';
|
|
85
|
+
id: string;
|
|
86
|
+
loc: number;
|
|
87
|
+
} | {
|
|
88
|
+
kind: 'inline-component';
|
|
89
|
+
name: string;
|
|
90
|
+
object: ObjectIR;
|
|
91
|
+
loc: number;
|
|
92
|
+
};
|
|
93
|
+
export type BindingMemberIR = Extract<MemberIR, {
|
|
94
|
+
kind: 'binding';
|
|
95
|
+
}>;
|
|
96
|
+
export interface QmlDocument {
|
|
97
|
+
fileName: string;
|
|
98
|
+
imports: QmlImport[];
|
|
99
|
+
pragmas: string[];
|
|
100
|
+
root: ObjectIR;
|
|
101
|
+
/** How this document was loaded — set by the engine when a resolver is
|
|
102
|
+
* in play, so the type names it uses can resolve `.qml` files relative
|
|
103
|
+
* to it (resolver.ts). */
|
|
104
|
+
load?: import('./resolver.js').DocLoad;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=ir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../src/qml/ir.ts"],"names":[],"mappings":"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"}
|
package/dist/qml/ir.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// The intermediate representation both halves share: the parser produces it,
|
|
2
|
+
// the runtime instantiates it, and the future compiler will serialize it.
|
|
3
|
+
// Everything is plain data — no methods, no cycles — so a document parses
|
|
4
|
+
// once and instantiates many times (a Repeater's delegate is one ObjectIR,
|
|
5
|
+
// however many rows exist).
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=ir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/qml/ir.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,2EAA2E;AAC3E,4BAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layouts.d.ts","sourceRoot":"","sources":["../../src/qml/layouts.tsx"],"names":[],"mappings":"AAuBA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAkH5D,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAGlD,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react-x11/jsx-runtime";
|
|
2
|
+
// QtQuick.Layouts — RowLayout and ColumnLayout, lowered onto yoga.
|
|
3
|
+
//
|
|
4
|
+
// This is react-x11's home turf: the container renders a flex `<box>` and
|
|
5
|
+
// every child renders as a flex item styled from its `Layout.*` attached
|
|
6
|
+
// properties (react.tsx, `layoutChildStyle`) — `fillWidth` is `flexGrow`,
|
|
7
|
+
// `preferredWidth` is the basis, `alignment` is `alignSelf`, margins are
|
|
8
|
+
// margins. Yoga decides the geometry; the renderer never re-implements it.
|
|
9
|
+
//
|
|
10
|
+
// What QML still needs from that arrangement is *readable geometry*:
|
|
11
|
+
// `item.x` and `item.width` are ordinary properties other bindings consume.
|
|
12
|
+
// After each layout pass the container reads its children's laid-out rects
|
|
13
|
+
// and `reflect()`s them into the x/y/width/height slots — a write that
|
|
14
|
+
// disturbs no binding and no flag, so the implicit-width default keeps
|
|
15
|
+
// meaning "content-sized" and an author `width:` keeps reading as a size
|
|
16
|
+
// hint. Expressions see yoga's answer; yoga sees the hints.
|
|
17
|
+
//
|
|
18
|
+
// GridLayout is not here yet — yoga has no grid, and a half-true one would
|
|
19
|
+
// be worse than the clear unknown-type error; RowLayout, ColumnLayout and
|
|
20
|
+
// the full Layout.* set cover the linked reference page.
|
|
21
|
+
import { useEffect } from 'react';
|
|
22
|
+
import { QmlInstance } from './objects.js';
|
|
23
|
+
import { renderQmlChildren, geometryStyle, preferredSpan } from './react.js';
|
|
24
|
+
import { applyMotion, captureNode, hostNode, initItem, num, } from './view-utils.js';
|
|
25
|
+
import { afterLayout, cancelAfterLayout, } from '../internal/timers.js';
|
|
26
|
+
function isRow(inst) {
|
|
27
|
+
return inst.typeInfo.name === 'RowLayout';
|
|
28
|
+
}
|
|
29
|
+
/** Reflect yoga's answers into the managed children's geometry slots. */
|
|
30
|
+
function feedbackLayout(inst) {
|
|
31
|
+
if (inst.destroyed)
|
|
32
|
+
return;
|
|
33
|
+
const containerAbs = hostNode(inst)?.abs;
|
|
34
|
+
if (!containerAbs)
|
|
35
|
+
return;
|
|
36
|
+
for (const child of inst.visualChildren()) {
|
|
37
|
+
const abs = hostNode(child)?.abs;
|
|
38
|
+
if (!abs)
|
|
39
|
+
continue; // a custom view without captureNode: skip quietly
|
|
40
|
+
child.slots.get('x')?.reflect(abs.x - containerAbs.x);
|
|
41
|
+
child.slots.get('y')?.reflect(abs.y - containerAbs.y);
|
|
42
|
+
child.slots.get('width')?.reflect(abs.width);
|
|
43
|
+
child.slots.get('height')?.reflect(abs.height);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function LayoutView({ inst }) {
|
|
47
|
+
const horizontal = isRow(inst);
|
|
48
|
+
const style = geometryStyle(inst);
|
|
49
|
+
style.display = 'flex';
|
|
50
|
+
style.flexDirection = horizontal ? 'row' : 'column';
|
|
51
|
+
style.gap = num(inst.slot('spacing').peek());
|
|
52
|
+
applyMotion(inst, style);
|
|
53
|
+
// Feed geometry back after the layout flush — and again whenever any
|
|
54
|
+
// child re-renders (its size hints may have moved yoga). A reflect that
|
|
55
|
+
// changes nothing notifies nobody, so this settles.
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
let tick = null;
|
|
58
|
+
const schedule = () => {
|
|
59
|
+
cancelAfterLayout(tick);
|
|
60
|
+
tick = afterLayout(() => feedbackLayout(inst));
|
|
61
|
+
};
|
|
62
|
+
schedule();
|
|
63
|
+
const offs = inst.visualChildren().map((c) => c.subscribe(schedule));
|
|
64
|
+
return () => {
|
|
65
|
+
cancelAfterLayout(tick);
|
|
66
|
+
offs.forEach((off) => off());
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
return (_jsx("box", { ref: captureNode(inst), style: style, children: renderQmlChildren(inst) }));
|
|
70
|
+
}
|
|
71
|
+
/** The container's own size hint: sum of children's preferred spans on the
|
|
72
|
+
* main axis (plus spacing), max on the cross — tracked bindings, so a
|
|
73
|
+
* child's hint change resizes a content-sized layout. */
|
|
74
|
+
function layoutImplicit(inst) {
|
|
75
|
+
const horizontal = isRow(inst);
|
|
76
|
+
const tracked = (slot) => slot.get();
|
|
77
|
+
const mainExtent = () => {
|
|
78
|
+
let sum = 0;
|
|
79
|
+
let count = 0;
|
|
80
|
+
const spacing = num(inst.slot('spacing').get());
|
|
81
|
+
for (const child of inst.visualChildren()) {
|
|
82
|
+
if (child.slot('visible').get() === false)
|
|
83
|
+
continue;
|
|
84
|
+
sum += preferredSpan(child, horizontal, tracked) ?? 0;
|
|
85
|
+
count++;
|
|
86
|
+
}
|
|
87
|
+
return sum + spacing * Math.max(0, count - 1);
|
|
88
|
+
};
|
|
89
|
+
const crossExtent = () => {
|
|
90
|
+
let max = 0;
|
|
91
|
+
for (const child of inst.visualChildren()) {
|
|
92
|
+
if (child.slot('visible').get() === false)
|
|
93
|
+
continue;
|
|
94
|
+
max = Math.max(max, preferredSpan(child, !horizontal, tracked) ?? 0);
|
|
95
|
+
}
|
|
96
|
+
return max;
|
|
97
|
+
};
|
|
98
|
+
inst
|
|
99
|
+
.slot(horizontal ? 'implicitWidth' : 'implicitHeight')
|
|
100
|
+
.setBinding(mainExtent);
|
|
101
|
+
inst
|
|
102
|
+
.slot(horizontal ? 'implicitHeight' : 'implicitWidth')
|
|
103
|
+
.setBinding(crossExtent);
|
|
104
|
+
}
|
|
105
|
+
function layoutInit(inst) {
|
|
106
|
+
initItem(inst);
|
|
107
|
+
layoutImplicit(inst);
|
|
108
|
+
}
|
|
109
|
+
const layoutContainer = {
|
|
110
|
+
extends: 'Item',
|
|
111
|
+
managesChildLayout: true,
|
|
112
|
+
view: LayoutView,
|
|
113
|
+
// Qt's RowLayout/ColumnLayout default spacing.
|
|
114
|
+
properties: { spacing: { default: 5 } },
|
|
115
|
+
init: layoutInit,
|
|
116
|
+
onStructure: layoutImplicit, // a Repeater spliced new children in
|
|
117
|
+
};
|
|
118
|
+
export const layoutTypes = {
|
|
119
|
+
RowLayout: { ...layoutContainer },
|
|
120
|
+
ColumnLayout: { ...layoutContainer },
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=layouts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layouts.js","sourceRoot":"","sources":["../../src/qml/layouts.tsx"],"names":[],"mappings":"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"}
|