@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,607 @@
1
+ // QML document → IR. Zero dependencies.
2
+ //
3
+ // This does not parse the JavaScript inside bindings — it finds where each
4
+ // expression ends (bracket depth + string/comment awareness + a
5
+ // QML-flavoured newline rule) and hands the source text to the runtime,
6
+ // which compiles it with `new Function`. That split is what keeps this
7
+ // small: QML's object grammar is tiny; JavaScript is the part we refuse to
8
+ // re-implement.
9
+ //
10
+ // Known, accepted holes (docs/components/qml.md, "the parser"): regex
11
+ // literals containing brackets or quotes, and a ternary branch that lands a
12
+ // bare `identifier :` at the start of a line. Real QML corpus hits neither.
13
+ const KEYWORDS = new Set([
14
+ 'import',
15
+ 'pragma',
16
+ 'property',
17
+ 'signal',
18
+ 'function',
19
+ 'readonly',
20
+ 'default',
21
+ 'required',
22
+ 'component',
23
+ 'enum',
24
+ 'on',
25
+ 'as',
26
+ ]);
27
+ export class ParseError extends Error {
28
+ line;
29
+ col;
30
+ constructor(message, source, pos) {
31
+ const { line, col } = lineCol(source, pos);
32
+ super(`QML parse error at ${line}:${col}: ${message}`);
33
+ this.line = line;
34
+ this.col = col;
35
+ }
36
+ }
37
+ function lineCol(source, pos) {
38
+ let line = 1;
39
+ let last = 0;
40
+ for (let i = 0; i < pos && i < source.length; i++) {
41
+ if (source[i] === '\n') {
42
+ line++;
43
+ last = i + 1;
44
+ }
45
+ }
46
+ return { line, col: pos - last + 1 };
47
+ }
48
+ const isIdStart = (c) => /[A-Za-z_$]/.test(c);
49
+ const isIdChar = (c) => /[A-Za-z0-9_$]/.test(c);
50
+ const isUpper = (c) => c >= 'A' && c <= 'Z';
51
+ class Scanner {
52
+ source;
53
+ pos = 0;
54
+ constructor(source) {
55
+ this.source = source;
56
+ }
57
+ error(message, pos = this.pos) {
58
+ return new ParseError(message, this.source, pos);
59
+ }
60
+ atEnd() {
61
+ return this.pos >= this.source.length;
62
+ }
63
+ /** Skip whitespace and comments. Returns true if a newline was crossed. */
64
+ skipTrivia() {
65
+ const src = this.source;
66
+ let newline = false;
67
+ while (this.pos < src.length) {
68
+ const c = src[this.pos];
69
+ if (c === '\n') {
70
+ newline = true;
71
+ this.pos++;
72
+ }
73
+ else if (c === ' ' || c === '\t' || c === '\r') {
74
+ this.pos++;
75
+ }
76
+ else if (c === '/' && src[this.pos + 1] === '/') {
77
+ while (this.pos < src.length && src[this.pos] !== '\n')
78
+ this.pos++;
79
+ }
80
+ else if (c === '/' && src[this.pos + 1] === '*') {
81
+ const end = src.indexOf('*/', this.pos + 2);
82
+ if (end === -1)
83
+ throw this.error('unterminated comment');
84
+ if (src.slice(this.pos, end).includes('\n'))
85
+ newline = true;
86
+ this.pos = end + 2;
87
+ }
88
+ else {
89
+ break;
90
+ }
91
+ }
92
+ return newline;
93
+ }
94
+ peekChar() {
95
+ const save = this.pos;
96
+ this.skipTrivia();
97
+ const c = this.source[this.pos];
98
+ this.pos = save;
99
+ return c;
100
+ }
101
+ /** The identifier at the next token position, or null. Does not consume. */
102
+ peekIdent() {
103
+ const save = this.pos;
104
+ this.skipTrivia();
105
+ const id = this.tryIdent();
106
+ this.pos = save;
107
+ return id;
108
+ }
109
+ tryIdent() {
110
+ if (this.atEnd() || !isIdStart(this.source[this.pos]))
111
+ return null;
112
+ const start = this.pos;
113
+ while (this.pos < this.source.length && isIdChar(this.source[this.pos]))
114
+ this.pos++;
115
+ return this.source.slice(start, this.pos);
116
+ }
117
+ expectIdent(what = 'identifier') {
118
+ this.skipTrivia();
119
+ const id = this.tryIdent();
120
+ if (!id)
121
+ throw this.error(`expected ${what}`);
122
+ return id;
123
+ }
124
+ tryPunct(p) {
125
+ const save = this.pos;
126
+ this.skipTrivia();
127
+ if (this.source.startsWith(p, this.pos)) {
128
+ this.pos += p.length;
129
+ return true;
130
+ }
131
+ this.pos = save;
132
+ return false;
133
+ }
134
+ expectPunct(p) {
135
+ if (!this.tryPunct(p))
136
+ throw this.error(`expected '${p}'`);
137
+ }
138
+ /** A dotted name: `anchors.fill`, `Component.onCompleted`. */
139
+ dottedName() {
140
+ const parts = [this.expectIdent()];
141
+ while (this.tryPunct('.'))
142
+ parts.push(this.expectIdent());
143
+ return parts;
144
+ }
145
+ // --- raw-source slurping ---------------------------------------------
146
+ /** Consume a string/template literal (opening quote at `pos`). */
147
+ skipString() {
148
+ const src = this.source;
149
+ const quote = src[this.pos];
150
+ this.pos++;
151
+ while (this.pos < src.length) {
152
+ const c = src[this.pos];
153
+ if (c === '\\') {
154
+ this.pos += 2;
155
+ continue;
156
+ }
157
+ if (c === quote) {
158
+ this.pos++;
159
+ return;
160
+ }
161
+ if (quote === '`' && c === '$' && src[this.pos + 1] === '{') {
162
+ this.pos += 2;
163
+ this.skipBalancedUntil('}');
164
+ continue;
165
+ }
166
+ this.pos++;
167
+ }
168
+ throw this.error('unterminated string');
169
+ }
170
+ /** After an opener was consumed, skip to its closer, tracking nesting. */
171
+ skipBalancedUntil(closer) {
172
+ const openers = { ')': '(', ']': '[', '}': '{' };
173
+ const depthFor = { '(': 0, '[': 0, '{': 0 };
174
+ const src = this.source;
175
+ while (this.pos < src.length) {
176
+ const c = src[this.pos];
177
+ if (c === '"' || c === "'" || c === '`') {
178
+ this.skipString();
179
+ continue;
180
+ }
181
+ if (c === '/' &&
182
+ (src[this.pos + 1] === '/' || src[this.pos + 1] === '*')) {
183
+ this.skipTrivia();
184
+ continue;
185
+ }
186
+ if (c === '(' || c === '[' || c === '{') {
187
+ depthFor[c]++;
188
+ this.pos++;
189
+ continue;
190
+ }
191
+ if (c === ')' || c === ']' || c === '}') {
192
+ const open = openers[c];
193
+ if (depthFor[open] === 0) {
194
+ if (c === closer) {
195
+ this.pos++;
196
+ return;
197
+ }
198
+ throw this.error(`unbalanced '${c}'`);
199
+ }
200
+ depthFor[open]--;
201
+ this.pos++;
202
+ continue;
203
+ }
204
+ this.pos++;
205
+ }
206
+ throw this.error(`expected '${closer}'`);
207
+ }
208
+ /** Slurp a balanced `{ … }` block; returns the inner source. */
209
+ slurpBlock() {
210
+ this.skipTrivia();
211
+ this.expectPunct('{');
212
+ const start = this.pos;
213
+ this.skipBalancedUntil('}');
214
+ return this.source.slice(start, this.pos - 1);
215
+ }
216
+ /**
217
+ * Slurp a JS expression as raw text. Ends at `;` (consumed), before an
218
+ * unbalanced `}`/`]`, at a depth-0 `,` (when `stopComma`), or at a
219
+ * newline followed by what can only be the next member (QML's ASI).
220
+ */
221
+ slurpExpression({ stopComma = false } = {}) {
222
+ const src = this.source;
223
+ this.skipTrivia();
224
+ const start = this.pos;
225
+ let depth = 0;
226
+ let lastSig = ''; // last significant char, for the continuation test
227
+ while (this.pos < src.length) {
228
+ const c = src[this.pos];
229
+ if (c === '"' || c === "'" || c === '`') {
230
+ this.skipString();
231
+ lastSig = '"';
232
+ continue;
233
+ }
234
+ if (c === '/' &&
235
+ (src[this.pos + 1] === '/' || src[this.pos + 1] === '*')) {
236
+ const crossed = this.skipTrivia();
237
+ if (crossed && depth === 0 && this.expressionEndsHere(lastSig))
238
+ break;
239
+ continue;
240
+ }
241
+ if (c === '(' || c === '[' || c === '{') {
242
+ depth++;
243
+ lastSig = c;
244
+ this.pos++;
245
+ continue;
246
+ }
247
+ if (c === ')' || c === ']' || c === '}') {
248
+ if (depth === 0)
249
+ break; // the parent context's closer
250
+ depth--;
251
+ lastSig = c;
252
+ this.pos++;
253
+ continue;
254
+ }
255
+ if (c === ';' && depth === 0) {
256
+ const end = this.pos;
257
+ this.pos++;
258
+ return src.slice(start, end);
259
+ }
260
+ if (c === ',' && depth === 0 && stopComma)
261
+ break;
262
+ if (c === '\n') {
263
+ if (depth === 0 && this.expressionEndsHere(lastSig))
264
+ break;
265
+ this.pos++;
266
+ continue;
267
+ }
268
+ if (!' \t\r'.includes(c))
269
+ lastSig = c;
270
+ this.pos++;
271
+ }
272
+ const text = src.slice(start, this.pos).trim();
273
+ if (!text)
274
+ throw this.error('expected expression', start);
275
+ return text;
276
+ }
277
+ /**
278
+ * At a depth-0 newline: does the expression end, or continue? It
279
+ * continues when the last char reads as an unfinished operator, or the
280
+ * next line starts with one; it ends when the next tokens look like a
281
+ * member start (`ident… :`, `Type {`, a keyword, or `}`).
282
+ */
283
+ expressionEndsHere(lastSig) {
284
+ if ('+-*/%<>=&|^!?:.,([{'.includes(lastSig) || lastSig === '')
285
+ return false;
286
+ const save = this.pos;
287
+ this.skipTrivia();
288
+ const c = this.source[this.pos];
289
+ if (c === undefined || c === '}' || c === ']') {
290
+ this.pos = save;
291
+ return true;
292
+ }
293
+ if ('+-*/%<>=&|^?:.'.includes(c) || c === ')' || c === ',') {
294
+ this.pos = save;
295
+ return false; // `.method()` chains, operators, ternary arms
296
+ }
297
+ const id = this.tryIdent();
298
+ if (id) {
299
+ if (KEYWORDS.has(id) && id !== 'on' && id !== 'as') {
300
+ this.pos = save;
301
+ return true;
302
+ }
303
+ // `Type {`, `Type on prop {`
304
+ if (isUpper(id[0])) {
305
+ const next = this.peekIdent();
306
+ if (this.peekChar() === '{' || next === 'on') {
307
+ this.pos = save;
308
+ return true;
309
+ }
310
+ }
311
+ // `name:` / `group.sub:` / `group {`
312
+ while (this.tryPunct('.')) {
313
+ if (!this.tryIdent())
314
+ break;
315
+ }
316
+ const after = this.peekChar();
317
+ this.pos = save;
318
+ return after === ':' || after === '{';
319
+ }
320
+ this.pos = save;
321
+ return false;
322
+ }
323
+ }
324
+ // --- grammar ---------------------------------------------------------------
325
+ export function parseQml(source, { fileName = '<qml>' } = {}) {
326
+ const s = new Scanner(source);
327
+ const imports = [];
328
+ const pragmas = [];
329
+ for (;;) {
330
+ const id = s.peekIdent();
331
+ if (id === 'import') {
332
+ s.expectIdent();
333
+ imports.push(parseImport(s));
334
+ }
335
+ else if (id === 'pragma') {
336
+ s.expectIdent();
337
+ pragmas.push(s.expectIdent('pragma name'));
338
+ }
339
+ else {
340
+ break;
341
+ }
342
+ }
343
+ const root = parseObject(s);
344
+ s.skipTrivia();
345
+ if (!s.atEnd())
346
+ throw s.error('expected end of document after root object');
347
+ return { fileName, imports, pragmas, root };
348
+ }
349
+ function parseImport(s) {
350
+ s.skipTrivia();
351
+ const imp = {};
352
+ if (s.source[s.pos] === '"' || s.source[s.pos] === "'") {
353
+ const start = s.pos;
354
+ s.skipString();
355
+ imp.path = s.source.slice(start + 1, s.pos - 1);
356
+ }
357
+ else {
358
+ imp.module = s.dottedName().join('.');
359
+ s.skipTrivia();
360
+ if (/[0-9]/.test(s.source[s.pos])) {
361
+ const m = /^[0-9]+(\.[0-9]+)?/.exec(s.source.slice(s.pos));
362
+ if (m) {
363
+ imp.version = m[0];
364
+ s.pos += m[0].length;
365
+ }
366
+ }
367
+ }
368
+ if (s.peekIdent() === 'as') {
369
+ s.expectIdent();
370
+ imp.alias = s.expectIdent('import alias');
371
+ }
372
+ s.tryPunct(';');
373
+ return imp;
374
+ }
375
+ function parseObject(s) {
376
+ s.skipTrivia();
377
+ const loc = s.pos;
378
+ const type = s.dottedName().join('.');
379
+ if (!isUpper(type[0]))
380
+ throw s.error(`type name must start uppercase: '${type}'`, loc);
381
+ return parseObjectBody(s, type, loc);
382
+ }
383
+ function parseObjectBody(s, type, loc) {
384
+ s.expectPunct('{');
385
+ const members = [];
386
+ const obj = { type, id: null, members, loc };
387
+ for (;;) {
388
+ s.skipTrivia();
389
+ if (s.tryPunct('}'))
390
+ return obj;
391
+ if (s.atEnd())
392
+ throw s.error('unterminated object body', loc);
393
+ members.push(parseMember(s, obj));
394
+ s.tryPunct(';');
395
+ }
396
+ }
397
+ // A declaration keyword used as a plain property name — Qt's own Binding
398
+ // element has `property: "width"` — is told apart by the colon right after.
399
+ function identIsBindingName(s) {
400
+ const save = s.pos;
401
+ s.skipTrivia();
402
+ s.tryIdent();
403
+ const colon = s.peekChar() === ':';
404
+ s.pos = save;
405
+ return colon;
406
+ }
407
+ function parseMember(s, obj) {
408
+ const loc = s.pos;
409
+ const kw = s.peekIdent();
410
+ const asBinding = kw !== null && KEYWORDS.has(kw) && identIsBindingName(s);
411
+ if (!asBinding &&
412
+ (kw === 'property' ||
413
+ kw === 'readonly' ||
414
+ kw === 'default' ||
415
+ kw === 'required')) {
416
+ return parsePropertyDecl(s, loc);
417
+ }
418
+ if (!asBinding && kw === 'signal') {
419
+ s.expectIdent();
420
+ const name = s.expectIdent('signal name');
421
+ const params = [];
422
+ if (s.tryPunct('(')) {
423
+ while (!s.tryPunct(')')) {
424
+ const a = s.expectIdent('parameter type');
425
+ const b = s.peekIdent() && s.peekChar() !== ',' && s.peekChar() !== ')'
426
+ ? s.expectIdent()
427
+ : null;
428
+ params.push(b ? { type: a, name: b } : { type: 'var', name: a });
429
+ if (s.tryPunct(':'))
430
+ s.expectIdent('parameter type'); // `x: int` style
431
+ s.tryPunct(',');
432
+ }
433
+ }
434
+ return { kind: 'signal', name, params, loc };
435
+ }
436
+ if (!asBinding && kw === 'function') {
437
+ s.expectIdent();
438
+ const name = s.expectIdent('function name');
439
+ s.expectPunct('(');
440
+ const start = s.pos;
441
+ s.skipBalancedUntil(')');
442
+ const params = s.source
443
+ .slice(start, s.pos - 1)
444
+ .split(',')
445
+ .map((p) => p.trim())
446
+ .filter(Boolean)
447
+ .map((p) => p.split(':')[0].trim()); // tolerate type annotations
448
+ const body = s.slurpBlock();
449
+ return { kind: 'function', name, params, body, loc };
450
+ }
451
+ if (!asBinding && kw === 'component') {
452
+ // inline component: `component Foo: Item { … }`
453
+ s.expectIdent();
454
+ const name = s.expectIdent('component name');
455
+ s.expectPunct(':');
456
+ const object = parseObject(s);
457
+ return { kind: 'inline-component', name, object, loc };
458
+ }
459
+ // From here: `Type {`, `Type on prop {`, `name: value`, `group { … }`.
460
+ const path = s.dottedName();
461
+ const head = path[0];
462
+ if (isUpper(head[0]) && path.length === 1 && s.peekIdent() === 'on') {
463
+ s.expectIdent(); // 'on'
464
+ const target = s.dottedName();
465
+ const object = parseObjectBody(s, head, loc);
466
+ return { kind: 'value-source', object, on: target, loc };
467
+ }
468
+ if (isUpper(head[0]) && s.peekChar() === '{') {
469
+ const object = parseObjectBody(s, path.join('.'), loc);
470
+ return { kind: 'object', object, loc };
471
+ }
472
+ if (s.tryPunct(':')) {
473
+ if (path.length === 1 && head === 'id') {
474
+ const id = s.expectIdent('id');
475
+ obj.id = id;
476
+ return { kind: 'id', id, loc };
477
+ }
478
+ const value = parseBindingValue(s);
479
+ return { kind: 'binding', path, value, loc };
480
+ }
481
+ if (s.peekChar() === '{' && !isUpper(head[0])) {
482
+ // grouped-property block: `anchors { fill: parent; margins: 4 }`
483
+ s.expectPunct('{');
484
+ const group = [];
485
+ for (;;) {
486
+ s.skipTrivia();
487
+ if (s.tryPunct('}'))
488
+ break;
489
+ const sub = s.dottedName();
490
+ s.expectPunct(':');
491
+ group.push({
492
+ kind: 'binding',
493
+ path: [...path, ...sub],
494
+ value: parseBindingValue(s),
495
+ loc,
496
+ });
497
+ s.tryPunct(';');
498
+ }
499
+ return { kind: 'group', bindings: group, loc };
500
+ }
501
+ throw s.error(`unexpected member '${path.join('.')}'`, loc);
502
+ }
503
+ function parsePropertyDecl(s, loc) {
504
+ let isReadonly = false;
505
+ let isDefault = false;
506
+ let isRequired = false;
507
+ for (;;) {
508
+ const kw = s.peekIdent();
509
+ if (kw === 'readonly') {
510
+ s.expectIdent();
511
+ isReadonly = true;
512
+ }
513
+ else if (kw === 'default') {
514
+ s.expectIdent();
515
+ isDefault = true;
516
+ }
517
+ else if (kw === 'required') {
518
+ s.expectIdent();
519
+ isRequired = true;
520
+ }
521
+ else
522
+ break;
523
+ }
524
+ const kw = s.expectIdent();
525
+ if (kw !== 'property')
526
+ throw s.error(`expected 'property', got '${kw}'`, loc);
527
+ let propType = s.expectIdent('property type');
528
+ if (propType === 'list') {
529
+ s.expectPunct('<');
530
+ s.dottedName();
531
+ s.expectPunct('>');
532
+ propType = 'list';
533
+ }
534
+ const name = s.expectIdent('property name');
535
+ let value = null;
536
+ if (s.tryPunct(':')) {
537
+ value =
538
+ propType === 'alias'
539
+ ? { kind: 'alias-target', path: s.dottedName() }
540
+ : parseBindingValue(s);
541
+ }
542
+ return {
543
+ kind: 'property',
544
+ name,
545
+ propType,
546
+ readonly: isReadonly,
547
+ default: isDefault,
548
+ required: isRequired,
549
+ value,
550
+ loc,
551
+ };
552
+ }
553
+ function parseBindingValue(s, { stopComma = false } = {}) {
554
+ s.skipTrivia();
555
+ const c = s.source[s.pos];
556
+ if (c === '[') {
557
+ // Array of objects (`states: [State { … }, …]`) or a JS array
558
+ // expression; objects win when the first element looks like `Type {`.
559
+ const save = s.pos;
560
+ s.expectPunct('[');
561
+ const first = s.peekIdent();
562
+ if (first && isUpper(first[0])) {
563
+ const inner = s.pos;
564
+ s.skipTrivia();
565
+ s.tryIdent();
566
+ while (s.tryPunct('.'))
567
+ s.tryIdent();
568
+ const isObj = s.peekChar() === '{';
569
+ s.pos = inner;
570
+ if (isObj) {
571
+ const items = [];
572
+ for (;;) {
573
+ s.skipTrivia();
574
+ if (s.tryPunct(']'))
575
+ break;
576
+ items.push({ kind: 'object', object: parseObject(s) });
577
+ s.tryPunct(',');
578
+ }
579
+ return { kind: 'array', items };
580
+ }
581
+ }
582
+ s.pos = save;
583
+ const loc = s.pos;
584
+ return { kind: 'expr', src: s.slurpExpression({ stopComma }), loc };
585
+ }
586
+ if (c === '{') {
587
+ // QML rule: a brace after ':' is a statement block, not an object
588
+ // literal (and the block is still a reactive binding).
589
+ const loc = s.pos;
590
+ return { kind: 'block', src: s.slurpBlock(), loc };
591
+ }
592
+ const id = s.peekIdent();
593
+ if (id && isUpper(id[0])) {
594
+ const save = s.pos;
595
+ s.skipTrivia();
596
+ s.tryIdent();
597
+ while (s.tryPunct('.'))
598
+ s.tryIdent();
599
+ const isObj = s.peekChar() === '{';
600
+ s.pos = save;
601
+ if (isObj)
602
+ return { kind: 'object', object: parseObject(s) };
603
+ }
604
+ const loc = s.pos;
605
+ return { kind: 'expr', src: s.slurpExpression({ stopComma }), loc };
606
+ }
607
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/qml/parse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { qmlColor } from './view-utils.js';
2
+ /** Populate the QtQuick registry — the family's one import-time side
3
+ * effect, called from `src/qml/index.ts` at module scope the way a
4
+ * component's `registerElement` is. */
5
+ export declare function registerQtQuick(): void;
6
+ export { qmlColor };
7
+ //# sourceMappingURL=qtquick.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qtquick.d.ts","sourceRoot":"","sources":["../../src/qml/qtquick.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAQL,QAAQ,EAGT,MAAM,iBAAiB,CAAC;AA0WzB;;uCAEuC;AACvC,wBAAgB,eAAe,IAAI,IAAI,CActC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}