@react-x11/components 0.2.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README.md +6 -0
  2. package/dist/index.d.ts +4 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +5 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/internal/heights.d.ts +26 -1
  7. package/dist/internal/heights.d.ts.map +1 -1
  8. package/dist/internal/heights.js +57 -6
  9. package/dist/internal/heights.js.map +1 -1
  10. package/dist/internal/scroll.d.ts +11 -0
  11. package/dist/internal/scroll.d.ts.map +1 -1
  12. package/dist/internal/scroll.js +43 -3
  13. package/dist/internal/scroll.js.map +1 -1
  14. package/dist/internal/timers.d.ts +8 -0
  15. package/dist/internal/timers.d.ts.map +1 -1
  16. package/dist/internal/timers.js +10 -0
  17. package/dist/internal/timers.js.map +1 -1
  18. package/dist/internal/window.d.ts +161 -0
  19. package/dist/internal/window.d.ts.map +1 -0
  20. package/dist/internal/window.js +417 -0
  21. package/dist/internal/window.js.map +1 -0
  22. package/dist/qml/containers.d.ts +3 -0
  23. package/dist/qml/containers.d.ts.map +1 -0
  24. package/dist/qml/containers.js +331 -0
  25. package/dist/qml/containers.js.map +1 -0
  26. package/dist/qml/controls.d.ts +12 -0
  27. package/dist/qml/controls.d.ts.map +1 -0
  28. package/dist/qml/controls.js +21 -0
  29. package/dist/qml/controls.js.map +1 -0
  30. package/dist/qml/globals.d.ts +6 -0
  31. package/dist/qml/globals.d.ts.map +1 -0
  32. package/dist/qml/globals.js +25 -0
  33. package/dist/qml/globals.js.map +1 -0
  34. package/dist/qml/index.d.ts +15 -0
  35. package/dist/qml/index.d.ts.map +1 -0
  36. package/dist/qml/index.js +25 -0
  37. package/dist/qml/index.js.map +1 -0
  38. package/dist/qml/interaction.d.ts +12 -0
  39. package/dist/qml/interaction.d.ts.map +1 -0
  40. package/dist/qml/interaction.js +246 -0
  41. package/dist/qml/interaction.js.map +1 -0
  42. package/dist/qml/ir.d.ts +106 -0
  43. package/dist/qml/ir.d.ts.map +1 -0
  44. package/dist/qml/ir.js +7 -0
  45. package/dist/qml/ir.js.map +1 -0
  46. package/dist/qml/layouts.d.ts +3 -0
  47. package/dist/qml/layouts.d.ts.map +1 -0
  48. package/dist/qml/layouts.js +122 -0
  49. package/dist/qml/layouts.js.map +1 -0
  50. package/dist/qml/models.d.ts +14 -0
  51. package/dist/qml/models.d.ts.map +1 -0
  52. package/dist/qml/models.js +80 -0
  53. package/dist/qml/models.js.map +1 -0
  54. package/dist/qml/objects.d.ts +228 -0
  55. package/dist/qml/objects.d.ts.map +1 -0
  56. package/dist/qml/objects.js +1103 -0
  57. package/dist/qml/objects.js.map +1 -0
  58. package/dist/qml/parse.d.ts +10 -0
  59. package/dist/qml/parse.d.ts.map +1 -0
  60. package/dist/qml/parse.js +607 -0
  61. package/dist/qml/parse.js.map +1 -0
  62. package/dist/qml/qtquick.d.ts +7 -0
  63. package/dist/qml/qtquick.d.ts.map +1 -0
  64. package/dist/qml/qtquick.js +347 -0
  65. package/dist/qml/qtquick.js.map +1 -0
  66. package/dist/qml/react.d.ts +83 -0
  67. package/dist/qml/react.d.ts.map +1 -0
  68. package/dist/qml/react.js +323 -0
  69. package/dist/qml/react.js.map +1 -0
  70. package/dist/qml/resolver.d.ts +38 -0
  71. package/dist/qml/resolver.d.ts.map +1 -0
  72. package/dist/qml/resolver.js +64 -0
  73. package/dist/qml/resolver.js.map +1 -0
  74. package/dist/qml/slots.d.ts +65 -0
  75. package/dist/qml/slots.d.ts.map +1 -0
  76. package/dist/qml/slots.js +230 -0
  77. package/dist/qml/slots.js.map +1 -0
  78. package/dist/qml/states.d.ts +5 -0
  79. package/dist/qml/states.d.ts.map +1 -0
  80. package/dist/qml/states.js +276 -0
  81. package/dist/qml/states.js.map +1 -0
  82. package/dist/qml/view-utils.d.ts +42 -0
  83. package/dist/qml/view-utils.d.ts.map +1 -0
  84. package/dist/qml/view-utils.js +121 -0
  85. package/dist/qml/view-utils.js.map +1 -0
  86. package/dist/table/index.d.ts +73 -2
  87. package/dist/table/index.d.ts.map +1 -1
  88. package/dist/table/index.js +405 -161
  89. package/dist/table/index.js.map +1 -1
  90. package/dist/tabs/hx.d.ts +18 -0
  91. package/dist/tabs/hx.d.ts.map +1 -0
  92. package/dist/tabs/hx.js +10 -0
  93. package/dist/tabs/hx.js.map +1 -0
  94. package/dist/tabs/index.d.ts +143 -0
  95. package/dist/tabs/index.d.ts.map +1 -0
  96. package/dist/tabs/index.js +602 -0
  97. package/dist/tabs/index.js.map +1 -0
  98. package/dist/terminal/vt/index.d.ts +1 -1
  99. package/dist/terminal/vt/index.d.ts.map +1 -1
  100. package/dist/terminal/vt/index.js +3 -3
  101. package/dist/terminal/vt/index.js.map +1 -1
  102. package/dist/terminal/vt/pty.d.ts +16 -0
  103. package/dist/terminal/vt/pty.d.ts.map +1 -1
  104. package/dist/terminal/vt/pty.js +186 -0
  105. package/dist/terminal/vt/pty.js.map +1 -1
  106. package/dist/tree/index.d.ts +65 -5
  107. package/dist/tree/index.d.ts.map +1 -1
  108. package/dist/tree/index.js +446 -189
  109. package/dist/tree/index.js.map +1 -1
  110. package/package.json +11 -1
  111. package/src/index.ts +44 -0
  112. package/src/internal/heights.ts +57 -6
  113. package/src/internal/scroll.ts +59 -3
  114. package/src/internal/timers.ts +13 -0
  115. package/src/internal/window.ts +570 -0
  116. package/src/qml/containers.tsx +380 -0
  117. package/src/qml/controls.tsx +47 -0
  118. package/src/qml/globals.ts +33 -0
  119. package/src/qml/index.ts +67 -0
  120. package/src/qml/interaction.tsx +317 -0
  121. package/src/qml/ir.ts +80 -0
  122. package/src/qml/layouts.tsx +141 -0
  123. package/src/qml/models.ts +101 -0
  124. package/src/qml/objects.ts +1431 -0
  125. package/src/qml/parse.ts +624 -0
  126. package/src/qml/qtquick.tsx +413 -0
  127. package/src/qml/react.tsx +454 -0
  128. package/src/qml/resolver.ts +99 -0
  129. package/src/qml/slots.ts +249 -0
  130. package/src/qml/states.ts +318 -0
  131. package/src/qml/view-utils.ts +140 -0
  132. package/src/table/index.ts +599 -178
  133. package/src/tabs/hx.ts +31 -0
  134. package/src/tabs/index.ts +850 -0
  135. package/src/terminal/vt/index.ts +4 -2
  136. package/src/terminal/vt/pty.ts +243 -0
  137. package/src/tree/index.ts +687 -260
@@ -0,0 +1,228 @@
1
+ import type { ComponentType } from 'react';
2
+ import type { ObjectIR, QmlDocument, ValueIR } from './ir.js';
3
+ import type { QmlResolver } from './resolver.js';
4
+ import { Slot, type BindingFn } from './slots.js';
5
+ /**
6
+ * A captured object template (`delegate:`, `sourceComponent:`, a `states:`
7
+ * entry) together with where it was written — its document (for compiling
8
+ * and imports) and its context (what its instances' names resolve
9
+ * through). A delegate handed to a file-backed ListView from the use site
10
+ * must keep resolving use-site names; carrying the pair is what makes
11
+ * that true.
12
+ */
13
+ export interface TemplateRef {
14
+ object: ObjectIR;
15
+ doc: QmlDocument;
16
+ context: Context;
17
+ }
18
+ /** The use-site half of a file-backed component instance: `MyBackdrop
19
+ * { width: 5; … }` — members evaluated in the *site's* scope, applied on
20
+ * the component document's root instance. */
21
+ interface SiteRef {
22
+ ir: ObjectIR;
23
+ doc: QmlDocument;
24
+ ctx: Context;
25
+ }
26
+ /**
27
+ * How expressions see an object: live property access, callable signals
28
+ * and methods. Deliberately `any`-valued — a facade is QML's dynamic edge,
29
+ * and `view.id('meter').width = 40` reading naturally is the point.
30
+ */
31
+ export type QmlFacade = Record<string, any>;
32
+ export interface QmlPropertyDef {
33
+ default?: unknown;
34
+ }
35
+ export interface ValueSourceHookup {
36
+ targetSlot: Slot;
37
+ target: QmlInstance;
38
+ }
39
+ /** What `registerQmlModule` takes, per type. */
40
+ export interface QmlTypeDef {
41
+ extends?: string;
42
+ nonVisual?: boolean;
43
+ /** Object children become templates under this key (Repeater's
44
+ * `delegate`, Loader's `sourceComponent`) instead of instantiating. */
45
+ capture?: string;
46
+ /** Bindings to undeclared names create slots (`PropertyChanges`,
47
+ * `ListElement`) instead of failing. */
48
+ dynamicProperties?: boolean;
49
+ /** `on<Signal>` members are collected, not attached — the type wires
50
+ * them itself (`Connections`). */
51
+ deferHandlers?: boolean;
52
+ /** RowLayout/ColumnLayout: children render as flex items (yoga decides
53
+ * geometry, read back into their slots) instead of absolutely. */
54
+ managesChildLayout?: boolean;
55
+ properties?: Record<string, QmlPropertyDef>;
56
+ signals?: Record<string, string[]>;
57
+ enums?: Record<string, number>;
58
+ init?: (inst: QmlInstance, hookup?: ValueSourceHookup) => void;
59
+ dispose?: (inst: QmlInstance) => void;
60
+ /** The instance's effective children changed (Repeater splice). */
61
+ onStructure?: (inst: QmlInstance) => void;
62
+ view?: ComponentType<{
63
+ inst: QmlInstance;
64
+ }>;
65
+ }
66
+ export interface QmlTypeInfo {
67
+ name: string;
68
+ base: QmlTypeInfo | null;
69
+ nonVisual: boolean;
70
+ capture: string | null;
71
+ dynamicProperties: boolean;
72
+ deferHandlers: boolean;
73
+ managesChildLayout: boolean;
74
+ properties: Record<string, QmlPropertyDef>;
75
+ signals: Record<string, string[]>;
76
+ enums: Record<string, number>;
77
+ init: ((inst: QmlInstance, hookup?: ValueSourceHookup) => void) | null;
78
+ dispose: ((inst: QmlInstance) => void) | null;
79
+ onStructure: ((inst: QmlInstance) => void) | null;
80
+ view: ComponentType<{
81
+ inst: QmlInstance;
82
+ }> | null;
83
+ }
84
+ export declare function registerQmlModule(name: string, { types }: {
85
+ version?: string;
86
+ types: Record<string, QmlTypeDef>;
87
+ }): void;
88
+ export declare function lookupType(doc: QmlDocument, typeName: string): QmlTypeInfo;
89
+ /** `Loader { source: "widgets/Meter.qml" }` — a relative path resolved
90
+ * against the document that names it. Null without a resolver or when the
91
+ * file is absent. */
92
+ export declare function resolveComponentByPath(fromDoc: QmlDocument, path: string): QmlDocument | null;
93
+ export declare class Context {
94
+ parent: Context | null;
95
+ doc: QmlDocument;
96
+ ids: Map<string, QmlInstance>;
97
+ extras: Map<string, Slot>;
98
+ root: QmlInstance | null;
99
+ constructor(parent: Context | null, doc: QmlDocument);
100
+ lookupId(name: string): QmlInstance | null;
101
+ lookupExtra(name: string): Slot | null;
102
+ }
103
+ export interface QtNamespace {
104
+ [key: string]: unknown;
105
+ rgba(r: number, g: number, b: number, a?: number): string;
106
+ hsla(h: number, s: number, l: number, a?: number): string;
107
+ point(x: number, y: number): {
108
+ x: number;
109
+ y: number;
110
+ };
111
+ size(width: number, height: number): {
112
+ width: number;
113
+ height: number;
114
+ };
115
+ rect(x: number, y: number, width: number, height: number): {
116
+ x: number;
117
+ y: number;
118
+ width: number;
119
+ height: number;
120
+ };
121
+ binding(fn: () => unknown): unknown;
122
+ qsTr(s: string): string;
123
+ }
124
+ export declare const Qt: QtNamespace;
125
+ export interface AnchorLine {
126
+ inst: QmlInstance;
127
+ edge: string;
128
+ }
129
+ export declare class QmlInstance {
130
+ readonly uid: number;
131
+ readonly typeInfo: QmlTypeInfo;
132
+ readonly doc: QmlDocument;
133
+ readonly context: Context;
134
+ parentInst: QmlInstance | null;
135
+ id: string | null;
136
+ ir: ObjectIR | null;
137
+ slots: Map<string, Slot>;
138
+ methods: Map<string, (...args: unknown[]) => unknown>;
139
+ signalParams: Map<string, string[]>;
140
+ signalSubs: Map<string, Set<(...args: unknown[]) => void>>;
141
+ /** Effective visual children — Repeater splices instances in here. */
142
+ children: QmlInstance[];
143
+ /** Captured object templates (`delegate`, `sourceComponent`, …). */
144
+ templates: Map<string, TemplateRef>;
145
+ /** For a file-backed component instance: the use-site members, applied
146
+ * in the site's own scope during activation. */
147
+ site: SiteRef | null;
148
+ valueSources: QmlInstance[];
149
+ /** `Keys.onPressed` and friends: attached handlers by dotted name. */
150
+ attachedHandlers: Map<string, (...args: unknown[]) => unknown>;
151
+ /** `Connections`: raw `onX` members, wired by the type's init. */
152
+ deferredHandlers: Array<{
153
+ name: string;
154
+ value: ValueIR;
155
+ }>;
156
+ onDestruction: Array<() => void>;
157
+ anchorLines: Map<string, AnchorLine>;
158
+ version: number;
159
+ structVersion: number;
160
+ listeners: Set<() => void>;
161
+ destroyed: boolean;
162
+ /** Per-type scratch: timers, behaviors, repeater items, host node… */
163
+ state: Record<string, unknown>;
164
+ scope: object;
165
+ facade: QmlFacade;
166
+ _activated: boolean;
167
+ constructor(typeInfo: QmlTypeInfo, doc: QmlDocument, context: Context, parentInst: QmlInstance | null);
168
+ addSlot(name: string, value: unknown): Slot;
169
+ slot(name: string): Slot;
170
+ /** undefined ⇒ not a member (so scope lookup continues up the chain). */
171
+ resolveMember(name: string): unknown;
172
+ getMember(name: string): unknown;
173
+ setMember(name: string, value: unknown): void;
174
+ emit(name: string, ...args: unknown[]): void;
175
+ onSignal(name: string, fn: (...args: unknown[]) => void): () => void;
176
+ anchorLine(edge: string): AnchorLine;
177
+ /** React bridge: any slot change bumps the version; one subscription
178
+ * per object. */
179
+ _changed(): void;
180
+ _structChanged(): void;
181
+ subscribe(fn: () => void): () => void;
182
+ visualChildren(): QmlInstance[];
183
+ destroy(): void;
184
+ }
185
+ /** The instance behind a facade, or null for anything else. */
186
+ export declare const instanceOf: (facade: unknown) => QmlInstance | null;
187
+ export interface InstantiateResult {
188
+ root: QmlInstance;
189
+ context: Context;
190
+ }
191
+ export declare function instantiateDocument(doc: QmlDocument, { context, extras, resolver, }?: {
192
+ context?: Context | null;
193
+ extras?: Record<string, unknown> | null;
194
+ /** Enables `.qml`-file resolution: the implicit same-directory import
195
+ * and quoted-path imports (resolver.ts). */
196
+ resolver?: QmlResolver | null;
197
+ }): InstantiateResult;
198
+ /**
199
+ * A delegate template instantiated into a child context (Repeater, Loader,
200
+ * ListView). `extras` become context properties (index, modelData, roles);
201
+ * ids inside the template scope to the child context while names from the
202
+ * enclosing document keep resolving through the chain.
203
+ */
204
+ export declare function instantiateTemplate(tpl: TemplateRef, parentInst: QmlInstance | null, extras?: Record<string, unknown> | null): {
205
+ inst: QmlInstance;
206
+ context: Context;
207
+ };
208
+ /**
209
+ * Instantiate a whole component document (Loader's `source` path). Its
210
+ * names resolve within its own file; only the top-level context — where
211
+ * `QmlView`'s context properties live — is shared through.
212
+ */
213
+ export declare function instantiateComponentDoc(compDoc: QmlDocument, nearContext: Context, parentInst: QmlInstance | null): {
214
+ inst: QmlInstance;
215
+ context: Context;
216
+ };
217
+ /**
218
+ * Hot reload: carry interactive state (slots assigned at runtime —
219
+ * toggles, counters, typed text) from the old tree onto the new one,
220
+ * matched by id + property name. Everything else re-derives from the
221
+ * edited source.
222
+ */
223
+ export declare function migrateUserState(oldContext: Context, newContext: Context): number;
224
+ /** Compile a stored handler in an instance's scope — how `Connections`
225
+ * wires its deferred `onX` members to another object's signals. */
226
+ export declare function makeHandlerFor(inst: QmlInstance, value: ValueIR, params: string[]): (...args: unknown[]) => unknown;
227
+ export type { BindingFn };
228
+ //# sourceMappingURL=objects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../../src/qml/objects.ts"],"names":[],"mappings":"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"}