@geometra/core 1.1.2 → 1.2.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 (64) hide show
  1. package/dist/a11y.d.ts.map +1 -1
  2. package/dist/a11y.js +8 -3
  3. package/dist/a11y.js.map +1 -1
  4. package/dist/animation.d.ts +18 -1
  5. package/dist/animation.d.ts.map +1 -1
  6. package/dist/animation.js +42 -5
  7. package/dist/animation.js.map +1 -1
  8. package/dist/app.d.ts +22 -2
  9. package/dist/app.d.ts.map +1 -1
  10. package/dist/app.js +15 -2
  11. package/dist/app.js.map +1 -1
  12. package/dist/canvas-polyfill.js +8 -8
  13. package/dist/canvas-polyfill.js.map +1 -1
  14. package/dist/direction.d.ts +9 -2
  15. package/dist/direction.d.ts.map +1 -1
  16. package/dist/direction.js +9 -2
  17. package/dist/direction.js.map +1 -1
  18. package/dist/elements.d.ts +9 -1
  19. package/dist/elements.d.ts.map +1 -1
  20. package/dist/elements.js +9 -1
  21. package/dist/elements.js.map +1 -1
  22. package/dist/focus.d.ts +4 -0
  23. package/dist/focus.d.ts.map +1 -1
  24. package/dist/focus.js +4 -0
  25. package/dist/focus.js.map +1 -1
  26. package/dist/fonts.d.ts +8 -1
  27. package/dist/fonts.d.ts.map +1 -1
  28. package/dist/fonts.js +22 -6
  29. package/dist/fonts.js.map +1 -1
  30. package/dist/hit-test.d.ts +10 -0
  31. package/dist/hit-test.d.ts.map +1 -1
  32. package/dist/hit-test.js +11 -3
  33. package/dist/hit-test.js.map +1 -1
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/keyboard.d.ts +4 -3
  37. package/dist/keyboard.d.ts.map +1 -1
  38. package/dist/keyboard.js +4 -3
  39. package/dist/keyboard.js.map +1 -1
  40. package/dist/layout-bounds.d.ts +5 -2
  41. package/dist/layout-bounds.d.ts.map +1 -1
  42. package/dist/layout-bounds.js +6 -3
  43. package/dist/layout-bounds.js.map +1 -1
  44. package/dist/selection.d.ts +16 -2
  45. package/dist/selection.d.ts.map +1 -1
  46. package/dist/selection.js +48 -9
  47. package/dist/selection.js.map +1 -1
  48. package/dist/seo.d.ts +3 -1
  49. package/dist/seo.d.ts.map +1 -1
  50. package/dist/seo.js +41 -27
  51. package/dist/seo.js.map +1 -1
  52. package/dist/text-input.d.ts.map +1 -1
  53. package/dist/text-input.js +16 -5
  54. package/dist/text-input.js.map +1 -1
  55. package/dist/tree.d.ts +7 -0
  56. package/dist/tree.d.ts.map +1 -1
  57. package/dist/tree.js +7 -0
  58. package/dist/tree.js.map +1 -1
  59. package/dist/types.d.ts +18 -4
  60. package/dist/types.d.ts.map +1 -1
  61. package/dist/virtual-scroll.d.ts.map +1 -1
  62. package/dist/virtual-scroll.js +2 -1
  63. package/dist/virtual-scroll.js.map +1 -1
  64. package/package.json +1 -1
package/dist/focus.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"focus.js","sourceRoot":"","sources":["../src/focus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"focus.js","sourceRoot":"","sources":["../src/focus.ts"],"names":[],"mappings":"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"}
package/dist/fonts.d.ts CHANGED
@@ -28,23 +28,30 @@ import type { UIElement } from './types.js';
28
28
  * segment (a common `src:` list paste into a fallback list); a leading `local(...)` after the size is kept
29
29
  * for callers that forward tokens to `document.fonts.load`.
30
30
  * The same spellings inside quotes are kept as literal family names (CSS `font-family` rules).
31
+ *
32
+ * Non-string values return an empty list so tree walks and callers with loose runtime data never throw.
31
33
  */
32
34
  export declare function extractFontFamiliesFromCSSFont(font: string): string[];
33
35
  /**
34
36
  * Collect unique font families referenced by text nodes in a UI tree.
35
37
  * Order is first-seen in a depth-first preorder walk (later duplicates are skipped).
38
+ * Image leaves carry no `font` shorthand and are skipped.
39
+ * Boxes with a missing or non-array `children` field are treated as empty (no throw) so bad
40
+ * deserialization cannot take down font collection.
36
41
  */
37
42
  export declare function collectFontFamiliesFromTree(root: UIElement): string[];
38
43
  /**
39
44
  * Resolve a font-load timeout in milliseconds. Used by {@link waitForFonts} and `createApp`'s
40
45
  * `fontLoadTimeoutMs` so `NaN`, `±Infinity`, negative values, and non-numbers (`null`, `bigint`,
41
46
  * objects, strings, …) all fall back to `defaultMs` (avoids `??` missing `NaN` and odd `setTimeout` coercion).
47
+ * If `defaultMs` is also invalid, falls back to `10_000`.
42
48
  * Signed zero (`-0`) is normalized to `+0`.
43
49
  */
44
50
  export declare function resolveFontLoadTimeoutMs(timeoutMs: number | undefined, defaultMs?: number): number;
45
51
  /**
46
52
  * Wait for web fonts used by the app. Browser only; no-op when `globalThis.document` is missing or null.
47
- * Uses `document.fonts.load` per family; timeouts are swallowed so startup never hard-fails.
53
+ * Uses `document.fonts.load` per family when it is a function; otherwise a no-op (avoids corrupt stubs).
54
+ * Timeouts are swallowed so startup never hard-fails.
48
55
  * Empty and whitespace-only family strings are ignored; names are trimmed before load and deduped.
49
56
  * `timeoutMs` must be a finite non-negative number; otherwise the default `10_000` is used (avoids
50
57
  * relying on `setTimeout` coercion for `NaN`, `±Infinity`, or negative values).
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AA6K3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAwKrE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,CAarE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,SAAS,GAAG,MAAM,CAIlG;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBxF"}
1
+ {"version":3,"file":"fonts.d.ts","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AA6K3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CA2KrE;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,CAkBrE;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,SAAS,GAAG,MAAM,CAMlG;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBxF"}
package/dist/fonts.js CHANGED
@@ -173,8 +173,13 @@ function splitFontFamilyList(tail) {
173
173
  * segment (a common `src:` list paste into a fallback list); a leading `local(...)` after the size is kept
174
174
  * for callers that forward tokens to `document.fonts.load`.
175
175
  * The same spellings inside quotes are kept as literal family names (CSS `font-family` rules).
176
+ *
177
+ * Non-string values return an empty list so tree walks and callers with loose runtime data never throw.
176
178
  */
177
179
  export function extractFontFamiliesFromCSSFont(font) {
180
+ if (typeof font !== 'string') {
181
+ return [];
182
+ }
178
183
  function filterFamilies(tail) {
179
184
  const out = [];
180
185
  const seen = new Set();
@@ -348,6 +353,9 @@ export function extractFontFamiliesFromCSSFont(font) {
348
353
  /**
349
354
  * Collect unique font families referenced by text nodes in a UI tree.
350
355
  * Order is first-seen in a depth-first preorder walk (later duplicates are skipped).
356
+ * Image leaves carry no `font` shorthand and are skipped.
357
+ * Boxes with a missing or non-array `children` field are treated as empty (no throw) so bad
358
+ * deserialization cannot take down font collection.
351
359
  */
352
360
  export function collectFontFamiliesFromTree(root) {
353
361
  const out = new Set();
@@ -356,11 +364,16 @@ export function collectFontFamiliesFromTree(root) {
356
364
  for (const f of extractFontFamiliesFromCSSFont(el.props.font)) {
357
365
  out.add(f);
358
366
  }
367
+ return;
359
368
  }
360
- else if (el.kind === 'box') {
361
- for (const c of el.children)
362
- walk(c);
369
+ if (el.kind === 'image') {
370
+ return;
363
371
  }
372
+ const { children } = el;
373
+ if (!Array.isArray(children))
374
+ return;
375
+ for (const c of children)
376
+ walk(c);
364
377
  }
365
378
  walk(root);
366
379
  return [...out];
@@ -369,16 +382,19 @@ export function collectFontFamiliesFromTree(root) {
369
382
  * Resolve a font-load timeout in milliseconds. Used by {@link waitForFonts} and `createApp`'s
370
383
  * `fontLoadTimeoutMs` so `NaN`, `±Infinity`, negative values, and non-numbers (`null`, `bigint`,
371
384
  * objects, strings, …) all fall back to `defaultMs` (avoids `??` missing `NaN` and odd `setTimeout` coercion).
385
+ * If `defaultMs` is also invalid, falls back to `10_000`.
372
386
  * Signed zero (`-0`) is normalized to `+0`.
373
387
  */
374
388
  export function resolveFontLoadTimeoutMs(timeoutMs, defaultMs = 10_000) {
389
+ const safeDefault = typeof defaultMs === 'number' && Number.isFinite(defaultMs) && defaultMs >= 0 ? Math.max(0, defaultMs) : 10_000;
375
390
  return typeof timeoutMs === 'number' && Number.isFinite(timeoutMs) && timeoutMs >= 0
376
391
  ? Math.max(0, timeoutMs)
377
- : defaultMs;
392
+ : safeDefault;
378
393
  }
379
394
  /**
380
395
  * Wait for web fonts used by the app. Browser only; no-op when `globalThis.document` is missing or null.
381
- * Uses `document.fonts.load` per family; timeouts are swallowed so startup never hard-fails.
396
+ * Uses `document.fonts.load` per family when it is a function; otherwise a no-op (avoids corrupt stubs).
397
+ * Timeouts are swallowed so startup never hard-fails.
382
398
  * Empty and whitespace-only family strings are ignored; names are trimmed before load and deduped.
383
399
  * `timeoutMs` must be a finite non-negative number; otherwise the default `10_000` is used (avoids
384
400
  * relying on `setTimeout` coercion for `NaN`, `±Infinity`, or negative values).
@@ -390,7 +406,7 @@ export async function waitForFonts(families, timeoutMs = 10_000) {
390
406
  if (root == null)
391
407
  return;
392
408
  const api = root.fonts;
393
- if (!api?.load)
409
+ if (api == null || typeof api.load !== 'function')
394
410
  return;
395
411
  const unique = [...new Set(families.map(f => f.trim()).filter(f => f.length > 0))];
396
412
  if (unique.length === 0)
package/dist/fonts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,OAAO;IACP,YAAY;IACZ,WAAW;IACX,SAAS;IACT,SAAS;IACT,WAAW;IACX,eAAe;IACf,UAAU;IACV,cAAc;IACd,YAAY;IACZ,OAAO;CACR,CAAC,CAAA;AAEF,oGAAoG;AACpG,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,SAAS;IACT,SAAS;IACT,OAAO;IACP,QAAQ;IACR,cAAc;CACf,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,SAAS;IACT,MAAM;IACN,MAAM;IACN,aAAa;IACb,eAAe;IACf,YAAY;CACb,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,cAAc,GAClB,yFAAyF;IACzF,wBAAwB;IACxB,8BAA8B;IAC9B,uBAAuB;IACvB,oDAAoD,CAAA;AAEtD,6FAA6F;AAC7F,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAA,gCAAgC,CAAA;AAEnE,kGAAkG;AAClG,MAAM,0BAA0B,GAC9B,MAAM,CAAC,GAAG,CAAA,aAAa,GAAG,gBAAgB,GAAG,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA,aAAa,CAAA;AAEvF;;;GAGG;AACH,MAAM,8BAA8B,GAAG,IAAI,MAAM,CAC/C,MAAM,CAAC,GAAG,CAAA,KAAK;IACb,gBAAgB;IAChB,cAAc;IACd,MAAM,CAAC,GAAG,CAAA,cAAc;IACxB,gBAAgB;IAChB,cAAc;IACd,MAAM,CAAC,GAAG,CAAA,mBAAmB,EAC/B,GAAG,CACJ,CAAA;AAED,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAC3C,MAAM,CAAC,GAAG,CAAA,KAAK,GAAG,gBAAgB,GAAG,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA,MAAM,GAAG,0BAA0B,GAAG,MAAM,CAAC,GAAG,CAAA,UAAU,EAC1H,GAAG,CACJ,CAAA;AAED,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,GAAG,GAAG,gBAAgB,GAAG,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA,GAAG,EAAE,GAAG,CAAC,CAAA;AAEzG,6GAA6G;AAC7G,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAC3C,MAAM,CAAC,GAAG,CAAA,GAAG,GAAG,gBAAgB,GAAG,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA,KAAK,EACnE,GAAG,CACJ,CAAA;AAED;;;GAGG;AACH,MAAM,8BAA8B,GAAG,IAAI,CAAA;AAE3C;;;GAGG;AACH,MAAM,iCAAiC,GAAG,MAAM,CAAA;AAEhD,qFAAqF;AACrF,MAAM,gCAAgC,GAAG,IAAI,CAAA;AAE7C,2GAA2G;AAC3G,MAAM,+BAA+B,GAAG,CAAC,CAAA;AAEzC;;;;GAIG;AACH,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC1C,UAAU;IACV,SAAS;IACT,OAAO;IACP,QAAQ;IACR,OAAO;IACP,SAAS;IACT,UAAU;IACV,WAAW;CACZ,CAAC,CAAA;AAEF,qFAAqF;AACrF,MAAM,yBAAyB,GAAG,uEAAuE,CAAA;AAEzG,8EAA8E;AAC9E,MAAM,+BAA+B,GAAG,EAAE,CAAA;AAE1C,wFAAwF;AACxF,SAAS,uBAAuB,CAAC,CAAS,EAAE,cAAsB;IAChE,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;QACf,IAAI,CAAC,KAAK,GAAG;YAAE,KAAK,EAAE,CAAA;aACjB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACnB,KAAK,EAAE,CAAA;YACP,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,iFAAiF;AACjF,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,IAAI,KAAK,GAAqB,IAAI,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;QAClB,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACtC,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAA;gBACnB,CAAC,EAAE,CAAA;gBACH,SAAQ;YACV,CAAC;YACD,GAAG,IAAI,CAAC,CAAA;YACR,IAAI,CAAC,KAAK,KAAK;gBAAE,KAAK,GAAG,IAAI,CAAA;YAC7B,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3B,KAAK,GAAG,CAAC,CAAA;YACT,GAAG,IAAI,CAAC,CAAA;YACR,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;YACpB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC/B,GAAG,GAAG,EAAE,CAAA;YACR,SAAQ;QACV,CAAC;QACD,GAAG,IAAI,CAAC,CAAA;IACV,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IACvB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACrC,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,8BAA8B,CAAC,IAAY;IACzD,SAAS,cAAc,CAAC,IAAY;QAClC,MAAM,GAAG,GAAa,EAAE,CAAA;QACxB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;QAC9B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;QAC1C,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAE,CAAA;YACzB,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;YACpB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YAC5B,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC1E,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC1E,MAAM,MAAM,GAAG,YAAY,IAAI,YAAY,CAAA;YAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;YAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YAChC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;YAC9B,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACzC,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAChD,IAAI,CAAC,MAAM,IAAI,EAAE,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAC5D,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAQ;YACnD,IAAI,CAAC,MAAM,IAAI,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBAAE,SAAQ;YAC7E,IACE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACzC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC/C,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC7C,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAC1B,CAAC;gBACD,SAAQ;YACV,CAAC;YACD,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;YAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAQ;YAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACb,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAOD,SAAS,sBAAsB,CAAC,IAAY;QAC1C,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IACnD,CAAC;IAED,uHAAuH;IACvH,SAAS,wBAAwB,CAAC,IAAY;QAC5C,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAA;QAC5B,qGAAqG;QACrG,uGAAuG;QACvG,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAA;QAC/B,OAAO,CACL,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1B,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;YACrC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAC1C,CAAA;IACH,CAAC;IAED,MAAM,cAAc,GAAG,+BAA+B,CAAA;IAEtD,SAAS,oBAAoB,CAAC,CAAS;QACrC,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAClD,IAAI,EAA0B,CAAA;QAC9B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;YAC3C,MAAM,UAAU,GAAG,uBAAuB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YACtD,IAAI,UAAU,KAAK,IAAI;gBAAE,SAAQ;YACjC,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,SAAQ;YACrC,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAClC,IAAI,MAAM,CACR,MAAM,CAAC,GAAG,CAAA,cAAc,GAAG,gBAAgB,GAAG,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA,mBAAmB,EAC5F,GAAG,CACJ,CACF,CAAA;YACD,IAAI,CAAC,cAAc;gBAAE,SAAQ;YAC7B,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACpC,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,EAAE,CAAA;YAClE,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAQ;YACtC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAA;QACnD,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,SAAS,iBAAiB,CAAC,CAAS;QAClC,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAClD,IAAI,EAA0B,CAAA;QAC9B,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;YAC3C,MAAM,UAAU,GAAG,uBAAuB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YACtD,IAAI,UAAU,KAAK,IAAI;gBAAE,SAAQ;YACjC,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YACnC,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;gBAAE,SAAQ;YACpC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;YACvC,IAAI,CAAC,IAAI;gBAAE,SAAQ;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAA;YACrB,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,EAAE,CAAA;YAClE,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QACjC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,SAAS,iBAAiB,CAAC,CAAS;QAClC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QACtD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC5B,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;YACpE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAA;YACpC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAA;QACtF,CAAC;QACD,MAAM,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;QACzC,IAAI,SAAS;YAAE,OAAO,SAAS,CAAA;QAE/B,4FAA4F;QAC5F,6FAA6F;QAC7F,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;QACpC,IAAI,OAAO;YAAE,OAAO,OAAO,CAAA;QAE3B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7C,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;YAClB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;YACpE,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA;YAC/B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAA;QACjF,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;IACzB,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,+BAA+B,EAAE,CAAC,EAAE,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAA;QAC/D,IAAI,UAAU,KAAK,OAAO;YAAE,MAAK;QACjC,OAAO,GAAG,UAAU,CAAA;IACtB,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,+BAA+B,EAAE,CAAC,EAAE,EAAE,CAAC;QACzD,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAClD,IAAI,CAAC,CAAC;YAAE,MAAK;QACb,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAA;IAClD,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,8BAA8B,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,MAAM,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,MAAK;QAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACtD,OAAO,GAAG,CAAC,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,iCAAiC,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAA;IACpC,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gCAAgC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1D,MAAM,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,MAAK;QAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACtD,OAAO,GAAG,CAAC,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACvC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAA;IACrC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAe;IACzD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7B,SAAS,IAAI,CAAC,EAAa;QACzB,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,IAAI,8BAA8B,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9D,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACZ,CAAC;QACH,CAAC;aAAM,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ;gBAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,CAAA;IACV,OAAO,CAAC,GAAG,GAAG,CAAC,CAAA;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAA6B,EAAE,SAAS,GAAG,MAAM;IACxF,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC;QAClF,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC;QACxB,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAkB,EAAE,SAAS,GAAG,MAAM;IACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IACjC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAA;IAChC,IAAI,IAAI,IAAI,IAAI;QAAE,OAAM;IACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;IACtB,IAAI,CAAC,GAAG,EAAE,IAAI;QAAE,OAAM;IAEtB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAClF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IAC/B,MAAM,aAAa,GAAG,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAChG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAClD,CAAA;IAED,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI;YACJ,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC9B,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,aAAa,CAAC,CAAA;YACzE,CAAC,CAAC;SACH,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,8 @@ export interface HitDispatchResult {
26
26
  * can pass modifier keys, `button`, wheel deltas, and other renderer-specific metadata.
27
27
  * For `onClick` only, the return value may include `focusTarget` for focus routing
28
28
  * (including click-to-focus when there is no `onClick` handler).
29
+ * Pointer `x` / `y` must be finite numbers: anything that fails `Number.isFinite` (including
30
+ * non-numbers at runtime) returns `{ handled: false }` without invoking handlers.
29
31
  * Layout bounds must be finite and non-negative on `width` and `height`; otherwise the node is
30
32
  * skipped for hit-testing (corrupt geometry from Yoga or a bad snapshot).
31
33
  *
@@ -43,6 +45,8 @@ export declare function dispatchHit(element: UIElement, layout: ComputedLayout,
43
45
  * (`onClick`, `onPointerDown` / `Up` / `Move`, `onWheel`). Keyboard and composition
44
46
  * handlers alone do not count — use this for hover / pointer-capture style checks.
45
47
  *
48
+ * Non-finite or non-number `x` / `y` return `false` (same `Number.isFinite` guard as {@link dispatchHit}).
49
+ *
46
50
  * Optional `offsetX` / `offsetY` match {@link hitPathAtPoint} / {@link dispatchHit} for rooted coordinate transforms.
47
51
  * Non-finite or non-number offsets are treated as `0`.
48
52
  */
@@ -51,6 +55,7 @@ export declare function hasInteractiveHitAtPoint(element: UIElement, layout: Com
51
55
  * Child indices from root to the deepest box under (x, y). Among overlapping siblings, prefers higher z-index (topmost);
52
56
  * non-finite or non-number `zIndex` values match `dispatchHit` / paint order (treated as `0`).
53
57
  * Boxes with `pointerEvents: 'none'` do not terminate the path when they have no deeper hit (same idea as `getCursorAtPoint` and `collectHits`).
58
+ * Non-finite or non-number `x` / `y` return `null` (same `Number.isFinite` guard as {@link dispatchHit}).
54
59
  * Returns `null` when the point misses the tree. Returns `[]` when the point hits the
55
60
  * root (or a leaf box) with no deeper box hit.
56
61
  * Root `offsetX` / `offsetY` follow {@link dispatchHit}: non-finite or non-number values are treated as `0`.
@@ -60,6 +65,11 @@ export declare function hitPathAtPoint(element: UIElement, layout: ComputedLayou
60
65
  * Resolve the deepest `cursor` style at `(x, y)` (boxes only; skips `pointerEvents: 'none'` the same way as
61
66
  * {@link hitPathAtPoint}). Scroll containers use the same clipping rules as {@link dispatchHit}.
62
67
  * Root `offsetX` / `offsetY` follow {@link dispatchHit}: non-finite or non-number values are treated as `0`.
68
+ * Non-finite or non-number `x` / `y` return `null`.
69
+ *
70
+ * An empty-string `cursor` on a nested box does not stop the walk (child results are checked with truthiness),
71
+ * so the nearest ancestor with a non-empty `cursor` wins. A root hit on a lone box with `cursor: ''` still
72
+ * yields `''`.
63
73
  */
64
74
  export declare function getCursorAtPoint(element: UIElement, layout: ComputedLayout, x: number, y: number, offsetX?: number, offsetY?: number): string | null;
65
75
  //# sourceMappingURL=hit-test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hit-test.d.ts","sourceRoot":"","sources":["../src/hit-test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAY,MAAM,YAAY,CAAA;AA6DhF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE,CAAA;CAC9D;AAmJD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,aAAa,EAC9B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,SAAI,EACX,OAAO,SAAI,GACV,iBAAiB,CAWnB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,SAAI,EACX,OAAO,SAAI,GACV,OAAO,CAgBT;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,SAAI,EACX,OAAO,SAAI,GACV,MAAM,EAAE,GAAG,IAAI,CA4CjB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,SAAI,EACX,OAAO,SAAI,GACV,MAAM,GAAG,IAAI,CA+Cf"}
1
+ {"version":3,"file":"hit-test.d.ts","sourceRoot":"","sources":["../src/hit-test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAY,MAAM,YAAY,CAAA;AA6DhF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE,CAAA;CAC9D;AAmJD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,aAAa,EAC9B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,SAAI,EACX,OAAO,SAAI,GACV,iBAAiB,CAWnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,SAAI,EACX,OAAO,SAAI,GACV,OAAO,CAgBT;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,SAAI,EACX,OAAO,SAAI,GACV,MAAM,EAAE,GAAG,IAAI,CA4CjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,SAAI,EACX,OAAO,SAAI,GACV,MAAM,GAAG,IAAI,CA6Cf"}
package/dist/hit-test.js CHANGED
@@ -151,6 +151,8 @@ function dispatchHitRecursive(element, layout, eventType, x, y, offsetX, offsetY
151
151
  * can pass modifier keys, `button`, wheel deltas, and other renderer-specific metadata.
152
152
  * For `onClick` only, the return value may include `focusTarget` for focus routing
153
153
  * (including click-to-focus when there is no `onClick` handler).
154
+ * Pointer `x` / `y` must be finite numbers: anything that fails `Number.isFinite` (including
155
+ * non-numbers at runtime) returns `{ handled: false }` without invoking handlers.
154
156
  * Layout bounds must be finite and non-negative on `width` and `height`; otherwise the node is
155
157
  * skipped for hit-testing (corrupt geometry from Yoga or a bad snapshot).
156
158
  *
@@ -170,6 +172,8 @@ export function dispatchHit(element, layout, eventType, x, y, extra, offsetX = 0
170
172
  * (`onClick`, `onPointerDown` / `Up` / `Move`, `onWheel`). Keyboard and composition
171
173
  * handlers alone do not count — use this for hover / pointer-capture style checks.
172
174
  *
175
+ * Non-finite or non-number `x` / `y` return `false` (same `Number.isFinite` guard as {@link dispatchHit}).
176
+ *
173
177
  * Optional `offsetX` / `offsetY` match {@link hitPathAtPoint} / {@link dispatchHit} for rooted coordinate transforms.
174
178
  * Non-finite or non-number offsets are treated as `0`.
175
179
  */
@@ -192,6 +196,7 @@ export function hasInteractiveHitAtPoint(element, layout, x, y, offsetX = 0, off
192
196
  * Child indices from root to the deepest box under (x, y). Among overlapping siblings, prefers higher z-index (topmost);
193
197
  * non-finite or non-number `zIndex` values match `dispatchHit` / paint order (treated as `0`).
194
198
  * Boxes with `pointerEvents: 'none'` do not terminate the path when they have no deeper hit (same idea as `getCursorAtPoint` and `collectHits`).
199
+ * Non-finite or non-number `x` / `y` return `null` (same `Number.isFinite` guard as {@link dispatchHit}).
195
200
  * Returns `null` when the point misses the tree. Returns `[]` when the point hits the
196
201
  * root (or a leaf box) with no deeper box hit.
197
202
  * Root `offsetX` / `offsetY` follow {@link dispatchHit}: non-finite or non-number values are treated as `0`.
@@ -244,6 +249,11 @@ export function hitPathAtPoint(element, layout, x, y, offsetX = 0, offsetY = 0)
244
249
  * Resolve the deepest `cursor` style at `(x, y)` (boxes only; skips `pointerEvents: 'none'` the same way as
245
250
  * {@link hitPathAtPoint}). Scroll containers use the same clipping rules as {@link dispatchHit}.
246
251
  * Root `offsetX` / `offsetY` follow {@link dispatchHit}: non-finite or non-number values are treated as `0`.
252
+ * Non-finite or non-number `x` / `y` return `null`.
253
+ *
254
+ * An empty-string `cursor` on a nested box does not stop the walk (child results are checked with truthiness),
255
+ * so the nearest ancestor with a non-empty `cursor` wins. A root hit on a lone box with `cursor: ''` still
256
+ * yields `''`.
247
257
  */
248
258
  export function getCursorAtPoint(element, layout, x, y, offsetX = 0, offsetY = 0) {
249
259
  if (!Number.isFinite(x) || !Number.isFinite(y))
@@ -285,8 +295,6 @@ export function getCursorAtPoint(element, layout, x, y, offsetX = 0, offsetY = 0
285
295
  }
286
296
  if (element.props.pointerEvents === 'none')
287
297
  return null;
288
- // Return this element's cursor
289
- const cursor = element.props.cursor;
290
- return cursor ?? null;
298
+ return element.props.cursor ?? null;
291
299
  }
292
300
  //# sourceMappingURL=hit-test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hit-test.js","sourceRoot":"","sources":["../src/hit-test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAgB1D,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAAgC,CAAA;AAEpE,2HAA2H;AAC3H,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACxE,CAAC;AAED,SAAS,QAAQ,CAAC,EAAa;IAC7B,MAAM,CAAC,GAAI,EAAE,CAAC,KAAiC,CAAC,MAAM,CAAA;IACtD,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5D,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAiB;IAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IAC1C,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC9D,IAAI,SAAS,GAAG,IAAI,CAAA;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;gBACvD,SAAS,GAAG,KAAK,CAAA;gBACjB,MAAK;YACP,CAAC;QACH,CAAC;QACD,IAAI,SAAS;YAAE,OAAO,MAAM,CAAC,GAAG,CAAA;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAC5D,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SAChB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAE,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC,CAAA;IAC5C,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7C,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAmC;IAC9D,OAAO,CAAC,CAAC,CACP,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,kBAAkB;QAC5B,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,gBAAgB,CAC3B,CAAA;AACH,CAAC;AAkBD,yFAAyF;AACzF,SAAS,WAAW,CAClB,OAAkB,EAClB,MAAsB,EACtB,CAAS,EACT,CAAS,EACT,OAAe,EACf,OAAe,EACf,OAAoB;IAEpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAM;IACtD,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;QAAE,OAAM;IAE1C,MAAM,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC,CAAA;IAE/B,4CAA4C;IAC5C,IAAI,YAAY,GAAG,IAAI,CAAA;IACvB,IAAI,YAAY,GAAG,IAAI,CAAA;IACvB,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACpD,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACnD,+CAA+C;YAC/C,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChF,OAAM;YACR,CAAC;QACH,CAAC;QACD,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,CAAA;QACrC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,MAAM,GACV,CAAC,IAAI,IAAI;QACT,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK;QACxB,CAAC,IAAI,IAAI;QACT,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;IAE3B,IAAI,CAAC,MAAM;QAAE,OAAM;IAEnB,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,OAAqB,CAAA;QACnC,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,KAAK,MAAM,CAAA;QACxD,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAChF,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACtC,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,CAAA;YACzF,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAkB,EAClB,MAAsB,EACtB,SAA8B,EAC9B,CAAS,EACT,CAAS,EACT,OAAe,EACf,OAAe,EACf,KAA0C;IAE1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IACzE,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC7D,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAErD,MAAM,KAAK,GAAG,OAAO,CAAA;IACrB,MAAM,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,OAAO,GAAG,MAAM,CAAC,CAAC,CAAA;IAE/B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,CAAA;IAClD,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACnD,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAChF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GACV,CAAC,IAAI,IAAI;QACT,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK;QACxB,CAAC,IAAI,IAAI;QACT,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;IAE3B,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAEtC,IAAI,WAA6C,CAAA;IACjD,MAAM,YAAY,GAAG,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACjD,MAAM,YAAY,GAAG,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IACjD,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAEpC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAA;QACjB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACtC,IAAI,CAAC,WAAW;YAAE,SAAQ;QAC1B,MAAM,WAAW,GAAG,oBAAoB,CACtC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,EAClB,WAAW,EACX,SAAS,EACT,CAAC,EACD,CAAC,EACD,YAAY,EACZ,YAAY,EACZ,KAAK,CACN,CAAA;QACD,IAAI,WAAW,CAAC,OAAO;YAAE,OAAO,WAAW,CAAA;QAC3C,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;YACvE,WAAW,GAAG,WAAW,CAAC,WAAW,CAAA;QACvC,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;IAC3E,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;IAC/B,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;IACrC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAa;YACtB,CAAC;YACD,CAAC;YACD,MAAM,EAAE,CAAC,GAAG,IAAI;YAChB,MAAM,EAAE,CAAC,GAAG,IAAI;YAChB,MAAM,EAAE,MAAM;YACd,GAAG,KAAK;SACT,CACA;QAAC,OAAiC,CAAC,KAAK,CAAC,CAAA;QAC1C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,WAAW,EACT,SAAS,KAAK,SAAS,IAAI,mBAAmB,CAAC,QAAQ,CAAC;gBACtD,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC5B,CAAC,CAAC,SAAS;SAChB,CAAA;IACH,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,WAAW,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7E,WAAW,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;IAC1C,CAAC;IAED,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;AAC3E,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,WAAW,CACzB,OAAkB,EAClB,MAAsB,EACtB,SAA8B,EAC9B,CAAS,EACT,CAAS,EACT,KAA+B,EAC/B,OAAO,GAAG,CAAC,EACX,OAAO,GAAG,CAAC;IAEX,OAAO,oBAAoB,CACzB,OAAO,EACP,MAAM,EACN,SAAS,EACT,CAAC,EACD,CAAC,EACD,YAAY,CAAC,OAAO,CAAC,EACrB,YAAY,CAAC,OAAO,CAAC,EACrB,KAAK,CACN,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAkB,EAClB,MAAsB,EACtB,CAAS,EACT,CAAS,EACT,OAAO,GAAG,CAAC,EACX,OAAO,GAAG,CAAC;IAEX,MAAM,IAAI,GAAgB,EAAE,CAAA;IAC5B,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;IACtF,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAA;QAClC,IACE,QAAQ,CAAC,OAAO;YAChB,QAAQ,CAAC,aAAa;YACtB,QAAQ,CAAC,WAAW;YACpB,QAAQ,CAAC,aAAa;YACtB,QAAQ,CAAC,OAAO,EAChB,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAkB,EAClB,MAAsB,EACtB,CAAS,EACT,CAAS,EACT,OAAO,GAAG,CAAC,EACX,OAAO,GAAG,CAAC;IAEX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3D,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAE/C,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAA;IAC1B,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAA;IAE1B,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAClC,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACnD,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChF,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GACV,CAAC,IAAI,IAAI;QACT,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK;QACxB,CAAC,IAAI,IAAI;QACT,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;IAE3B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvC,MAAM,KAAK,GAAG,OAAqB,CAAA;IACnC,IAAI,YAAY,GAAG,IAAI,CAAA;IACvB,IAAI,YAAY,GAAG,IAAI,CAAA;IACvB,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IACjD,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAEjD,MAAM,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACpC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAA;QACjB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QACtC,IAAI,CAAC,WAAW;YAAE,SAAQ;QAC1B,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;QAC7F,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAA;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACrD,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAkB,EAClB,MAAsB,EACtB,CAAS,EACT,CAAS,EACT,OAAO,GAAG,CAAC,EACX,OAAO,GAAG,CAAC;IAEX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3D,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAA;IAE/C,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;IAChC,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAA;IAC1B,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAA;IAE1B,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAClC,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACnD,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAChF,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GACV,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK;QACrC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;IAExC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAExB,+CAA+C;IAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,IAAI,SAAS,GAAG,IAAI,CAAA;QACpB,IAAI,SAAS,GAAG,IAAI,CAAA;QACpB,SAAS,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAChD,SAAS,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAEhD,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACtC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAA;YACjB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACtC,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;gBACnG,IAAI,WAAW;oBAAE,OAAO,WAAW,CAAA;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IAEvD,+BAA+B;IAC/B,MAAM,MAAM,GAAI,OAAO,CAAC,KAAiC,CAAC,MAA4B,CAAA;IACtF,OAAO,MAAM,IAAI,IAAI,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"hit-test.js","sourceRoot":"","sources":["../src/hit-test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -39,5 +39,5 @@ export { isCollapsedSelection, getInputSelectionText, replaceInputSelection, ins
39
39
  export type { TextInputState, TextInputEditResult, CaretGeometry } from './text-input.js';
40
40
  export { createTextInputHistory, pushTextInputHistory, undoTextInputHistory, redoTextInputHistory, } from './text-input-history.js';
41
41
  export type { TextInputHistoryState } from './text-input-history.js';
42
- export type { UIElement, BoxElement, TextElement, ImageElement, StyleProps, Direction, DirectionProps, SemanticProps, EventHandlers, HitEvent, KeyboardHitEvent, CompositionHitEvent, Component, FrameTimings, Renderer, } from './types.js';
42
+ export type { UIElement, BoxElement, TextElement, ImageElement, StyleProps, CursorProp, Direction, DirectionProps, SemanticProps, EventHandlers, HitEvent, KeyboardHitEvent, CompositionHitEvent, Component, FrameTimings, Renderer, } from './types.js';
43
43
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,10 @@ import type { UIElement, KeyboardHitEvent, CompositionHitEvent } from './types.j
11
11
  * `eventType` runs; otherwise `false`.
12
12
  *
13
13
  * @returns `true` when `partialEvent.key` is `'Tab'` and `eventType` is `'onKeyDown'` (traversal is
14
- * always attempted), or when a non-Tab event is delivered and the focused target’s handler for
15
- * `eventType` runs. `false` when there is no resolved focus target, no matching handler, or Tab is
16
- * received on `'onKeyUp'` (Tab never triggers traversal on keyup).
14
+ * always attempted, even when the tree has no focusables), or when a resolved focus target exists
15
+ * and its handler for `eventType` runs (including `'Tab'` on `'onKeyUp'` when `onKeyUp` is set
16
+ * traversal remains keydown-only). `false` when there is no resolved focus target or no matching
17
+ * handler.
17
18
  */
18
19
  export declare function dispatchKeyboardEvent(tree: UIElement, layout: ComputedLayout, eventType: 'onKeyDown' | 'onKeyUp', partialEvent: Omit<KeyboardHitEvent, 'target'>): boolean;
19
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGlF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAC7C,OAAO,CAqBT;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,kBAAkB,EAC5E,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAChD,OAAO,CAQT"}
1
+ {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAGlF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAC7C,OAAO,CAqBT;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,kBAAkB,EAC5E,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAChD,OAAO,CAQT"}
package/dist/keyboard.js CHANGED
@@ -10,9 +10,10 @@ import { focusNext, focusPrev, resolveFocusedTarget } from './focus.js';
10
10
  * `eventType` runs; otherwise `false`.
11
11
  *
12
12
  * @returns `true` when `partialEvent.key` is `'Tab'` and `eventType` is `'onKeyDown'` (traversal is
13
- * always attempted), or when a non-Tab event is delivered and the focused target’s handler for
14
- * `eventType` runs. `false` when there is no resolved focus target, no matching handler, or Tab is
15
- * received on `'onKeyUp'` (Tab never triggers traversal on keyup).
13
+ * always attempted, even when the tree has no focusables), or when a resolved focus target exists
14
+ * and its handler for `eventType` runs (including `'Tab'` on `'onKeyUp'` when `onKeyUp` is set
15
+ * traversal remains keydown-only). `false` when there is no resolved focus target or no matching
16
+ * handler.
16
17
  */
17
18
  export function dispatchKeyboardEvent(tree, layout, eventType, partialEvent) {
18
19
  if (partialEvent.key === 'Tab' && eventType === 'onKeyDown') {
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard.js","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEvE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAe,EACf,MAAsB,EACtB,SAAkC,EAClC,YAA8C;IAE9C,IAAI,YAAY,CAAC,GAAG,KAAK,KAAK,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC5D,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAqB,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAA;QAC3E,OAAO,CAAC,KAAK,CAAC,CAAA;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAAe,EACf,MAAsB,EACtB,SAA4E,EAC5E,YAAiD;IAEjD,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAC1B,MAAM,KAAK,GAAwB,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAA;IAC9E,OAAO,CAAC,KAAK,CAAC,CAAA;IACd,OAAO,IAAI,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"keyboard.js","sourceRoot":"","sources":["../src/keyboard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEvE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAe,EACf,MAAsB,EACtB,SAAkC,EAClC,YAA8C;IAE9C,IAAI,YAAY,CAAC,GAAG,KAAK,KAAK,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC5D,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAqB,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAA;QAC3E,OAAO,CAAC,KAAK,CAAC,CAAA;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAAe,EACf,MAAsB,EACtB,SAA4E,EAC5E,YAAiD;IAEjD,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAA;IAC1B,MAAM,KAAK,GAAwB,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAA;IAC9E,OAAO,CAAC,KAAK,CAAC,CAAA;IACd,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -6,11 +6,14 @@ import type { ComputedLayout } from 'textura';
6
6
  * Degenerate rects (`width` / `height` of `0`) are accepted; they still yield a well-defined
7
7
  * inclusive hit-test edge at the origin corner.
8
8
  *
9
- * Non-number fields (including BigInt) are rejected without throwing`Number.isFinite` would
10
- * throw on BigInt, which would otherwise take down pointer dispatch.
9
+ * Non-number fields (including `BigInt` and boxed `Number`) are rejected without coercionglobal
10
+ * `isFinite` would coerce operands and throws on `BigInt`, which would otherwise take down pointer dispatch.
11
11
  *
12
12
  * @param layout — Bounds from Textura/Yoga {@link ComputedLayout} output.
13
13
  * @returns `true` when `x`, `y`, `width`, and `height` are finite and both dimensions are `>= 0`.
14
+ *
15
+ * Only this node's own fields are inspected; {@link ComputedLayout.children} entries are not
16
+ * validated recursively. Callers walking a tree should check each visited layout when needed.
14
17
  */
15
18
  export declare function layoutBoundsAreFinite(layout: ComputedLayout): boolean;
16
19
  //# sourceMappingURL=layout-bounds.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout-bounds.d.ts","sourceRoot":"","sources":["../src/layout-bounds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7C;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAUrE"}
1
+ {"version":3,"file":"layout-bounds.d.ts","sourceRoot":"","sources":["../src/layout-bounds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAO7C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAUrE"}
@@ -1,4 +1,4 @@
1
- /** `Number.isFinite` throws on BigInt; gate with `typeof` so corrupt layout never crashes callers. */
1
+ /** True only for finite primitive numbers: `typeof` rejects `BigInt`, boxed numbers, and objects before `Number.isFinite`. */
2
2
  function isFiniteLayoutNumber(value) {
3
3
  return typeof value === 'number' && Number.isFinite(value);
4
4
  }
@@ -9,11 +9,14 @@ function isFiniteLayoutNumber(value) {
9
9
  * Degenerate rects (`width` / `height` of `0`) are accepted; they still yield a well-defined
10
10
  * inclusive hit-test edge at the origin corner.
11
11
  *
12
- * Non-number fields (including BigInt) are rejected without throwing`Number.isFinite` would
13
- * throw on BigInt, which would otherwise take down pointer dispatch.
12
+ * Non-number fields (including `BigInt` and boxed `Number`) are rejected without coercionglobal
13
+ * `isFinite` would coerce operands and throws on `BigInt`, which would otherwise take down pointer dispatch.
14
14
  *
15
15
  * @param layout — Bounds from Textura/Yoga {@link ComputedLayout} output.
16
16
  * @returns `true` when `x`, `y`, `width`, and `height` are finite and both dimensions are `>= 0`.
17
+ *
18
+ * Only this node's own fields are inspected; {@link ComputedLayout.children} entries are not
19
+ * validated recursively. Callers walking a tree should check each visited layout when needed.
17
20
  */
18
21
  export function layoutBoundsAreFinite(layout) {
19
22
  const { x, y, width, height } = layout;
@@ -1 +1 @@
1
- {"version":3,"file":"layout-bounds.js","sourceRoot":"","sources":["../src/layout-bounds.ts"],"names":[],"mappings":"AAEA,sGAAsG;AACtG,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAsB;IAC1D,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACtC,OAAO,CACL,oBAAoB,CAAC,CAAC,CAAC;QACvB,oBAAoB,CAAC,CAAC,CAAC;QACvB,oBAAoB,CAAC,KAAK,CAAC;QAC3B,oBAAoB,CAAC,MAAM,CAAC;QAC5B,KAAK,IAAI,CAAC;QACV,MAAM,IAAI,CAAC,CACZ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"layout-bounds.js","sourceRoot":"","sources":["../src/layout-bounds.ts"],"names":[],"mappings":"AAEA,8HAA8H;AAC9H,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC5D,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAsB;IAC1D,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACtC,OAAO,CACL,oBAAoB,CAAC,CAAC,CAAC;QACvB,oBAAoB,CAAC,CAAC,CAAC;QACvB,oBAAoB,CAAC,KAAK,CAAC;QAC3B,oBAAoB,CAAC,MAAM,CAAC;QAC5B,KAAK,IAAI,CAAC;QACV,MAAM,IAAI,CAAC,CACZ,CAAA;AACH,CAAC"}
@@ -42,11 +42,25 @@ export interface SelectionRange {
42
42
  * Root `offsetX` / `offsetY` share the same coordinate space as pointer hits; non-finite or non-number
43
43
  * values are treated as `0` (same rule as {@link import('./hit-test.js').dispatchHit} /
44
44
  * {@link import('./hit-test.js').hitPathAtPoint} for rooted surfaces).
45
+ *
46
+ * Nodes whose {@link ComputedLayout} bounds fail {@link layoutBoundsAreFinite} are skipped, and box
47
+ * subtrees under a corrupt parent are not walked — same rule as hit-testing and focus order so bad
48
+ * geometry cannot poison absolute coordinates or flood selection with unusable entries.
45
49
  */
46
50
  export declare function collectTextNodes(element: UIElement, layout: ComputedLayout, offsetX: number, offsetY: number, results: TextNodeInfo[], parentDirection?: ResolvedDirection): void;
47
- /** Get the selected text from a selection range and text node info list. */
51
+ /**
52
+ * Get the selected text from a selection range and text node info list.
53
+ *
54
+ * Node indices are clamped to existing `textNodes` so corrupt or deserialized ranges cannot walk
55
+ * millions of empty indices. When `focusNode` lies past the last node, the range end is treated as
56
+ * that last node so `focusOffset` still applies. When the normalized range lies entirely outside
57
+ * `[0, textNodes.length - 1]`, returns an empty string.
58
+ *
59
+ * Per-node character offsets are clamped to `[0, text.length]` and truncated toward zero so corrupt
60
+ * ranges cannot use `String.prototype.slice` negative indices or fractional positions.
61
+ */
48
62
  export declare function getSelectedText(range: SelectionRange, textNodes: TextNodeInfo[]): string;
49
- /** Find which text node and character offset is at a given (x, y) point. Non-finite pointer coordinates return `null`; nodes with non-finite or negative-size bounds are skipped (aligned with {@link import('./layout-bounds.js').layoutBoundsAreFinite}). */
63
+ /** Find which text node and character offset is at a given (x, y) point. Coordinates must be finite numbers otherwise `null` (e.g. NaN, ±Infinity, BigInt, or non-numbers). Nodes with non-finite or negative-size bounds are skipped (aligned with {@link import('./layout-bounds.js').layoutBoundsAreFinite}). */
50
64
  export declare function hitTestText(textNodes: TextNodeInfo[], px: number, py: number): {
51
65
  nodeIndex: number;
52
66
  charOffset: number;
@@ -1 +1 @@
1
- {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAGhF,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,CAAA;IACpB,gDAAgD;IAChD,SAAS,EAAE,iBAAiB,CAAA;IAC5B,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,uEAAuE;IACvE,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAMD,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAA;IACpB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EAAE,EACvB,eAAe,GAAE,iBAAyB,GACzC,IAAI,CASN;AAwCD,4EAA4E;AAC5E,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,YAAY,EAAE,GACxB,MAAM,CA+BR;AAYD,+PAA+P;AAC/P,wBAAgB,WAAW,CACzB,SAAS,EAAE,YAAY,EAAE,EACzB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAkDlD"}
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAGhF,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,CAAA;IACpB,gDAAgD;IAChD,SAAS,EAAE,iBAAiB,CAAA;IAC5B,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,uEAAuE;IACvE,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,+BAA+B;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAMD,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,2DAA2D;IAC3D,YAAY,EAAE,MAAM,CAAA;IACpB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,EAAE,EACvB,eAAe,GAAE,iBAAyB,GACzC,IAAI,CASN;AAmDD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,YAAY,EAAE,GACxB,MAAM,CA4CR;AAYD,sTAAsT;AACtT,wBAAgB,WAAW,CACzB,SAAS,EAAE,YAAY,EAAE,EACzB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAkDlD"}
package/dist/selection.js CHANGED
@@ -8,11 +8,17 @@ function finiteRootOffset(value) {
8
8
  * Root `offsetX` / `offsetY` share the same coordinate space as pointer hits; non-finite or non-number
9
9
  * values are treated as `0` (same rule as {@link import('./hit-test.js').dispatchHit} /
10
10
  * {@link import('./hit-test.js').hitPathAtPoint} for rooted surfaces).
11
+ *
12
+ * Nodes whose {@link ComputedLayout} bounds fail {@link layoutBoundsAreFinite} are skipped, and box
13
+ * subtrees under a corrupt parent are not walked — same rule as hit-testing and focus order so bad
14
+ * geometry cannot poison absolute coordinates or flood selection with unusable entries.
11
15
  */
12
16
  export function collectTextNodes(element, layout, offsetX, offsetY, results, parentDirection = 'ltr') {
13
17
  collectTextNodesWalk(element, layout, finiteRootOffset(offsetX), finiteRootOffset(offsetY), results, parentDirection);
14
18
  }
15
19
  function collectTextNodesWalk(element, layout, offsetX, offsetY, results, parentDirection) {
20
+ if (!layoutBoundsAreFinite(layout))
21
+ return;
16
22
  const x = offsetX + layout.x;
17
23
  const y = offsetY + layout.y;
18
24
  const direction = resolveElementDirection(element, parentDirection);
@@ -40,7 +46,28 @@ function collectTextNodesWalk(element, layout, offsetX, offsetY, results, parent
40
46
  }
41
47
  }
42
48
  }
43
- /** Get the selected text from a selection range and text node info list. */
49
+ /** Clamp a selection offset to `[0, textLength]`; non-finite / non-number `0` (no `slice` negative-index semantics). */
50
+ function clampCharIndex(offset, textLength) {
51
+ if (typeof offset !== 'number' || !Number.isFinite(offset))
52
+ return 0;
53
+ const t = Math.trunc(offset);
54
+ if (t < 0)
55
+ return 0;
56
+ if (t > textLength)
57
+ return textLength;
58
+ return t;
59
+ }
60
+ /**
61
+ * Get the selected text from a selection range and text node info list.
62
+ *
63
+ * Node indices are clamped to existing `textNodes` so corrupt or deserialized ranges cannot walk
64
+ * millions of empty indices. When `focusNode` lies past the last node, the range end is treated as
65
+ * that last node so `focusOffset` still applies. When the normalized range lies entirely outside
66
+ * `[0, textNodes.length - 1]`, returns an empty string.
67
+ *
68
+ * Per-node character offsets are clamped to `[0, text.length]` and truncated toward zero so corrupt
69
+ * ranges cannot use `String.prototype.slice` negative indices or fractional positions.
70
+ */
44
71
  export function getSelectedText(range, textNodes) {
45
72
  if (textNodes.length === 0)
46
73
  return '';
@@ -54,20 +81,32 @@ export function getSelectedText(range, textNodes) {
54
81
  [startNode, endNode] = [endNode, startNode];
55
82
  [startOffset, endOffset] = [endOffset, startOffset];
56
83
  }
84
+ const maxIdx = textNodes.length - 1;
85
+ if (endNode < 0 || startNode > maxIdx)
86
+ return '';
87
+ const lo = Math.max(0, startNode);
88
+ const hi = Math.min(endNode, maxIdx);
89
+ if (lo > hi)
90
+ return '';
91
+ const startClipped = startNode < 0;
92
+ const endClipped = endNode > maxIdx;
57
93
  const parts = [];
58
- for (let i = startNode; i <= endNode; i++) {
94
+ for (let i = lo; i <= hi; i++) {
59
95
  const node = textNodes[i];
60
96
  if (!node)
61
97
  continue;
62
98
  const fullText = node.element.props.text;
63
- if (i === startNode && i === endNode) {
64
- parts.push(fullText.slice(startOffset, endOffset));
99
+ const len = fullText.length;
100
+ const atStart = i === startNode || (startClipped && i === lo);
101
+ const atEnd = i === endNode || (endClipped && i === hi);
102
+ if (atStart && atEnd) {
103
+ parts.push(fullText.slice(clampCharIndex(startOffset, len), clampCharIndex(endOffset, len)));
65
104
  }
66
- else if (i === startNode) {
67
- parts.push(fullText.slice(startOffset));
105
+ else if (atStart) {
106
+ parts.push(fullText.slice(clampCharIndex(startOffset, len)));
68
107
  }
69
- else if (i === endNode) {
70
- parts.push(fullText.slice(0, endOffset));
108
+ else if (atEnd) {
109
+ parts.push(fullText.slice(0, clampCharIndex(endOffset, len)));
71
110
  }
72
111
  else {
73
112
  parts.push(fullText);
@@ -84,7 +123,7 @@ function textNodeBoundsAreFinite(node) {
84
123
  children: [],
85
124
  });
86
125
  }
87
- /** Find which text node and character offset is at a given (x, y) point. Non-finite pointer coordinates return `null`; nodes with non-finite or negative-size bounds are skipped (aligned with {@link import('./layout-bounds.js').layoutBoundsAreFinite}). */
126
+ /** Find which text node and character offset is at a given (x, y) point. Coordinates must be finite numbers otherwise `null` (e.g. NaN, ±Infinity, BigInt, or non-numbers). Nodes with non-finite or negative-size bounds are skipped (aligned with {@link import('./layout-bounds.js').layoutBoundsAreFinite}). */
88
127
  export function hitTestText(textNodes, px, py) {
89
128
  if (!Number.isFinite(px) || !Number.isFinite(py))
90
129
  return null;