@geometra/core 1.1.0 → 1.1.2

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 (66) hide show
  1. package/dist/animation.d.ts +20 -1
  2. package/dist/animation.d.ts.map +1 -1
  3. package/dist/animation.js +33 -3
  4. package/dist/animation.js.map +1 -1
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +2 -1
  7. package/dist/app.js.map +1 -1
  8. package/dist/direction.d.ts +1 -0
  9. package/dist/direction.d.ts.map +1 -1
  10. package/dist/direction.js +6 -1
  11. package/dist/direction.js.map +1 -1
  12. package/dist/elements.d.ts +12 -3
  13. package/dist/elements.d.ts.map +1 -1
  14. package/dist/elements.js +12 -3
  15. package/dist/elements.js.map +1 -1
  16. package/dist/focus-trap.d.ts +3 -2
  17. package/dist/focus-trap.d.ts.map +1 -1
  18. package/dist/focus-trap.js +6 -2
  19. package/dist/focus-trap.js.map +1 -1
  20. package/dist/focus.d.ts +8 -1
  21. package/dist/focus.d.ts.map +1 -1
  22. package/dist/focus.js +37 -8
  23. package/dist/focus.js.map +1 -1
  24. package/dist/fonts.d.ts +11 -5
  25. package/dist/fonts.d.ts.map +1 -1
  26. package/dist/fonts.js +31 -9
  27. package/dist/fonts.js.map +1 -1
  28. package/dist/hit-test.d.ts +19 -3
  29. package/dist/hit-test.d.ts.map +1 -1
  30. package/dist/hit-test.js +48 -31
  31. package/dist/hit-test.js.map +1 -1
  32. package/dist/index.d.ts +2 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +2 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/keyboard.d.ts +15 -2
  37. package/dist/keyboard.d.ts.map +1 -1
  38. package/dist/keyboard.js +15 -2
  39. package/dist/keyboard.js.map +1 -1
  40. package/dist/layout-bounds.d.ts +16 -0
  41. package/dist/layout-bounds.d.ts.map +1 -0
  42. package/dist/layout-bounds.js +27 -0
  43. package/dist/layout-bounds.js.map +1 -0
  44. package/dist/node.d.ts +9 -0
  45. package/dist/node.d.ts.map +1 -1
  46. package/dist/node.js +9 -2
  47. package/dist/node.js.map +1 -1
  48. package/dist/selection.d.ts +7 -2
  49. package/dist/selection.d.ts.map +1 -1
  50. package/dist/selection.js +22 -7
  51. package/dist/selection.js.map +1 -1
  52. package/dist/seo.d.ts +12 -2
  53. package/dist/seo.d.ts.map +1 -1
  54. package/dist/seo.js +43 -12
  55. package/dist/seo.js.map +1 -1
  56. package/dist/signals.d.ts +40 -5
  57. package/dist/signals.d.ts.map +1 -1
  58. package/dist/signals.js +28 -5
  59. package/dist/signals.js.map +1 -1
  60. package/dist/tree.d.ts +11 -1
  61. package/dist/tree.d.ts.map +1 -1
  62. package/dist/tree.js +16 -2
  63. package/dist/tree.js.map +1 -1
  64. package/dist/types.d.ts +5 -1
  65. package/dist/types.d.ts.map +1 -1
  66. package/package.json +1 -1
package/dist/fonts.js CHANGED
@@ -165,15 +165,22 @@ function splitFontFamilyList(tail) {
165
165
  * Leading absolute size keywords (`medium`, `xx-small`, `large`, …) are stripped the same way.
166
166
  * A comma-list segment that is exactly an absolute size keyword is dropped when unquoted; the same word
167
167
  * inside quotes is kept (CSS requires quoting when a family name matches a keyword).
168
- * Unquoted `url(...)` and `format(...)` segments (e.g. mistaken `@font-face` `src` paste) are not
169
- * concrete family names and are skipped so {@link waitForFonts} does not call `load` with them.
168
+ * Broken `calc()`/`min()`/… values (unclosed parentheses) and stray `+` tails after a matched size
169
+ * token yield no families so {@link waitForFonts} is not called with math remnants.
170
+ * Unquoted `url(...)` and `format(...)` segments (e.g. mistaken `@font-face` `src` paste) are not concrete
171
+ * family names and are skipped so {@link waitForFonts} does not call `load` with them.
172
+ * The same applies to unquoted `local(...)` only when it appears **after** the first comma-separated family
173
+ * segment (a common `src:` list paste into a fallback list); a leading `local(...)` after the size is kept
174
+ * for callers that forward tokens to `document.fonts.load`.
170
175
  * The same spellings inside quotes are kept as literal family names (CSS `font-family` rules).
171
176
  */
172
177
  export function extractFontFamiliesFromCSSFont(font) {
173
178
  function filterFamilies(tail) {
174
179
  const out = [];
175
180
  const seen = new Set();
176
- for (const seg of splitFontFamilyList(tail)) {
181
+ const segments = splitFontFamilyList(tail);
182
+ for (let si = 0; si < segments.length; si++) {
183
+ const seg = segments[si];
177
184
  const t = seg.trim();
178
185
  if (t.length === 0)
179
186
  continue;
@@ -184,8 +191,12 @@ export function extractFontFamiliesFromCSSFont(font) {
184
191
  if (inner.length === 0)
185
192
  continue;
186
193
  const lead = inner.trimStart();
194
+ if (!quoted && /^\+/.test(lead))
195
+ continue;
187
196
  if (!quoted && /^url\s*\(/i.test(lead))
188
197
  continue;
198
+ if (!quoted && si > 0 && /^local\s*\(/i.test(lead))
199
+ continue;
189
200
  if (!quoted && /^format\s*\(/i.test(lead))
190
201
  continue;
191
202
  if (!quoted && ABSOLUTE_FONT_SIZE_KEYWORDS.has(inner.toLowerCase()))
@@ -210,6 +221,11 @@ export function extractFontFamiliesFromCSSFont(font) {
210
221
  /** True when the family tail still begins with another size token (dimension, stacked shorthand, or CSS math size). */
211
222
  function tailLeadsWithStackedSize(tail) {
212
223
  const first = firstFamilyListSegment(tail);
224
+ const tf = first.trimStart();
225
+ // Shorthand peel can match a dimension inside broken `calc(` / stacked tokens and leave a `+ …` math
226
+ // remnant; that is never a valid unquoted family name and must not be passed to `document.fonts.load`.
227
+ if (/^\+/.test(tf))
228
+ return true;
213
229
  return (FONT_SIZE_ONLY.test(first) ||
214
230
  TAIL_LEADS_WITH_SIZE_TOKEN.test(tail) ||
215
231
  /^(calc|min|max|clamp)\s*\(/i.test(first));
@@ -351,23 +367,29 @@ export function collectFontFamiliesFromTree(root) {
351
367
  }
352
368
  /**
353
369
  * Resolve a font-load timeout in milliseconds. Used by {@link waitForFonts} and `createApp`'s
354
- * `fontLoadTimeoutMs` so `NaN`, `±Infinity`, negative values, and non-numbers all fall back to
355
- * `defaultMs` (avoids `??` missing `NaN` and odd `setTimeout` coercion).
370
+ * `fontLoadTimeoutMs` so `NaN`, `±Infinity`, negative values, and non-numbers (`null`, `bigint`,
371
+ * objects, strings, …) all fall back to `defaultMs` (avoids `??` missing `NaN` and odd `setTimeout` coercion).
372
+ * Signed zero (`-0`) is normalized to `+0`.
356
373
  */
357
374
  export function resolveFontLoadTimeoutMs(timeoutMs, defaultMs = 10_000) {
358
- return typeof timeoutMs === 'number' && Number.isFinite(timeoutMs) && timeoutMs >= 0 ? timeoutMs : defaultMs;
375
+ return typeof timeoutMs === 'number' && Number.isFinite(timeoutMs) && timeoutMs >= 0
376
+ ? Math.max(0, timeoutMs)
377
+ : defaultMs;
359
378
  }
360
379
  /**
361
- * Wait for web fonts used by the app. Browser only; no-op on server.
380
+ * Wait for web fonts used by the app. Browser only; no-op when `globalThis.document` is missing or null.
362
381
  * Uses `document.fonts.load` per family; timeouts are swallowed so startup never hard-fails.
363
382
  * Empty and whitespace-only family strings are ignored; names are trimmed before load and deduped.
364
383
  * `timeoutMs` must be a finite non-negative number; otherwise the default `10_000` is used (avoids
365
384
  * relying on `setTimeout` coercion for `NaN`, `±Infinity`, or negative values).
366
385
  */
367
386
  export async function waitForFonts(families, timeoutMs = 10_000) {
368
- if (typeof document === 'undefined' || families.length === 0)
387
+ if (families.length === 0)
388
+ return;
389
+ const root = globalThis.document;
390
+ if (root == null)
369
391
  return;
370
- const api = document.fonts;
392
+ const api = root.fonts;
371
393
  if (!api?.load)
372
394
  return;
373
395
  const unique = [...new Set(families.map(f => f.trim()).filter(f => f.length > 0))];
package/dist/fonts.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../src/fonts.ts"],"names":[],"mappings":"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"}
@@ -28,22 +28,38 @@ export interface HitDispatchResult {
28
28
  * (including click-to-focus when there is no `onClick` handler).
29
29
  * Layout bounds must be finite and non-negative on `width` and `height`; otherwise the node is
30
30
  * skipped for hit-testing (corrupt geometry from Yoga or a bad snapshot).
31
+ *
32
+ * Optional `offsetX` / `offsetY` shift the root layout origin in the same coordinate space as `(x, y)` —
33
+ * use the same values as {@link hitPathAtPoint} and {@link getCursorAtPoint} when the tree is painted
34
+ * inside a translated or clipped surface (e.g. nested canvas, CSS transform). Defaults are `0`.
35
+ * Non-finite or non-number offsets are treated as `0` (same rule as scroll offsets on boxes).
36
+ * Event `x` / `y` remain the caller coordinates; `localX` / `localY` are relative to the hit target’s abs rect.
37
+ *
38
+ * @see {@link getCursorAtPoint} for resolving `cursor` at the same logical hit region.
31
39
  */
32
- export declare function dispatchHit(element: UIElement, layout: ComputedLayout, eventType: keyof EventHandlers, x: number, y: number, extra?: Record<string, unknown>): HitDispatchResult;
40
+ export declare function dispatchHit(element: UIElement, layout: ComputedLayout, eventType: keyof EventHandlers, x: number, y: number, extra?: Record<string, unknown>, offsetX?: number, offsetY?: number): HitDispatchResult;
33
41
  /**
34
42
  * True when the point is over an element that participates in pointer hit-testing
35
43
  * (`onClick`, `onPointerDown` / `Up` / `Move`, `onWheel`). Keyboard and composition
36
44
  * handlers alone do not count — use this for hover / pointer-capture style checks.
45
+ *
46
+ * Optional `offsetX` / `offsetY` match {@link hitPathAtPoint} / {@link dispatchHit} for rooted coordinate transforms.
47
+ * Non-finite or non-number offsets are treated as `0`.
37
48
  */
38
- export declare function hasInteractiveHitAtPoint(element: UIElement, layout: ComputedLayout, x: number, y: number): boolean;
49
+ export declare function hasInteractiveHitAtPoint(element: UIElement, layout: ComputedLayout, x: number, y: number, offsetX?: number, offsetY?: number): boolean;
39
50
  /**
40
51
  * Child indices from root to the deepest box under (x, y). Among overlapping siblings, prefers higher z-index (topmost);
41
52
  * non-finite or non-number `zIndex` values match `dispatchHit` / paint order (treated as `0`).
42
53
  * Boxes with `pointerEvents: 'none'` do not terminate the path when they have no deeper hit (same idea as `getCursorAtPoint` and `collectHits`).
43
54
  * Returns `null` when the point misses the tree. Returns `[]` when the point hits the
44
55
  * root (or a leaf box) with no deeper box hit.
56
+ * Root `offsetX` / `offsetY` follow {@link dispatchHit}: non-finite or non-number values are treated as `0`.
45
57
  */
46
58
  export declare function hitPathAtPoint(element: UIElement, layout: ComputedLayout, x: number, y: number, offsetX?: number, offsetY?: number): number[] | null;
47
- /** Get the cursor style at a given point by walking the tree. Returns the deepest element's cursor prop. */
59
+ /**
60
+ * Resolve the deepest `cursor` style at `(x, y)` (boxes only; skips `pointerEvents: 'none'` the same way as
61
+ * {@link hitPathAtPoint}). Scroll containers use the same clipping rules as {@link dispatchHit}.
62
+ * Root `offsetX` / `offsetY` follow {@link dispatchHit}: non-finite or non-number values are treated as `0`.
63
+ */
48
64
  export declare function getCursorAtPoint(element: UIElement, layout: ComputedLayout, x: number, y: number, offsetX?: number, offsetY?: number): string | null;
49
65
  //# 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;AA2EhF;;;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;;;;;;;;;;GAUG;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,GAC9B,iBAAiB,CAEnB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,cAAc,EACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,OAAO,CAgBT;AAED;;;;;;GAMG;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,CA0CjB;AAED,4GAA4G;AAC5G,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,CAoCf"}
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"}
package/dist/hit-test.js CHANGED
@@ -1,18 +1,7 @@
1
+ import { layoutBoundsAreFinite } from './layout-bounds.js';
1
2
  const zIndexOrderCache = new WeakMap();
2
- /**
3
- * Reject NaN, ±Infinity, and negative sizes so corrupt layout cannot invert the hit rect or make
4
- * `x <= absX + width` match unbounded spans when width is infinite.
5
- */
6
- function layoutBoundsAreFinite(layout) {
7
- return (Number.isFinite(layout.x) &&
8
- Number.isFinite(layout.y) &&
9
- Number.isFinite(layout.width) &&
10
- Number.isFinite(layout.height) &&
11
- layout.width >= 0 &&
12
- layout.height >= 0);
13
- }
14
- /** Ignore non-finite and non-number scroll props so child offsets stay finite (±Infinity would poison abs coords). */
15
- function finiteScrollOffset(value) {
3
+ /** Ignore non-finite and non-number values so derived coordinates stay finite (±Infinity/NaN cannot poison abs coords). */
4
+ function finiteNumber(value) {
16
5
  return typeof value === 'number' && Number.isFinite(value) ? value : 0;
17
6
  }
18
7
  function zIndexOf(el) {
@@ -66,8 +55,8 @@ function collectHits(element, layout, x, y, offsetX, offsetY, results) {
66
55
  return;
67
56
  }
68
57
  }
69
- childOffsetX -= finiteScrollOffset(scrollX);
70
- childOffsetY -= finiteScrollOffset(scrollY);
58
+ childOffsetX -= finiteNumber(scrollX);
59
+ childOffsetY -= finiteNumber(scrollY);
71
60
  }
72
61
  const inside = x >= absX &&
73
62
  x <= absX + layout.width &&
@@ -112,8 +101,8 @@ function dispatchHitRecursive(element, layout, eventType, x, y, offsetX, offsetY
112
101
  if (!inside)
113
102
  return { handled: false };
114
103
  let focusTarget;
115
- const childOffsetX = absX - finiteScrollOffset(scrollX);
116
- const childOffsetY = absY - finiteScrollOffset(scrollY);
104
+ const childOffsetX = absX - finiteNumber(scrollX);
105
+ const childOffsetY = absY - finiteNumber(scrollY);
117
106
  const asc = getChildrenByZAsc(boxEl);
118
107
  for (let k = asc.length - 1; k >= 0; k--) {
119
108
  const i = asc[k];
@@ -164,18 +153,29 @@ function dispatchHitRecursive(element, layout, eventType, x, y, offsetX, offsetY
164
153
  * (including click-to-focus when there is no `onClick` handler).
165
154
  * Layout bounds must be finite and non-negative on `width` and `height`; otherwise the node is
166
155
  * skipped for hit-testing (corrupt geometry from Yoga or a bad snapshot).
156
+ *
157
+ * Optional `offsetX` / `offsetY` shift the root layout origin in the same coordinate space as `(x, y)` —
158
+ * use the same values as {@link hitPathAtPoint} and {@link getCursorAtPoint} when the tree is painted
159
+ * inside a translated or clipped surface (e.g. nested canvas, CSS transform). Defaults are `0`.
160
+ * Non-finite or non-number offsets are treated as `0` (same rule as scroll offsets on boxes).
161
+ * Event `x` / `y` remain the caller coordinates; `localX` / `localY` are relative to the hit target’s abs rect.
162
+ *
163
+ * @see {@link getCursorAtPoint} for resolving `cursor` at the same logical hit region.
167
164
  */
168
- export function dispatchHit(element, layout, eventType, x, y, extra) {
169
- return dispatchHitRecursive(element, layout, eventType, x, y, 0, 0, extra);
165
+ export function dispatchHit(element, layout, eventType, x, y, extra, offsetX = 0, offsetY = 0) {
166
+ return dispatchHitRecursive(element, layout, eventType, x, y, finiteNumber(offsetX), finiteNumber(offsetY), extra);
170
167
  }
171
168
  /**
172
169
  * True when the point is over an element that participates in pointer hit-testing
173
170
  * (`onClick`, `onPointerDown` / `Up` / `Move`, `onWheel`). Keyboard and composition
174
171
  * handlers alone do not count — use this for hover / pointer-capture style checks.
172
+ *
173
+ * Optional `offsetX` / `offsetY` match {@link hitPathAtPoint} / {@link dispatchHit} for rooted coordinate transforms.
174
+ * Non-finite or non-number offsets are treated as `0`.
175
175
  */
176
- export function hasInteractiveHitAtPoint(element, layout, x, y) {
176
+ export function hasInteractiveHitAtPoint(element, layout, x, y, offsetX = 0, offsetY = 0) {
177
177
  const hits = [];
178
- collectHits(element, layout, x, y, 0, 0, hits);
178
+ collectHits(element, layout, x, y, finiteNumber(offsetX), finiteNumber(offsetY), hits);
179
179
  for (let i = hits.length - 1; i >= 0; i--) {
180
180
  const handlers = hits[i].handlers;
181
181
  if (handlers.onClick ||
@@ -194,14 +194,17 @@ export function hasInteractiveHitAtPoint(element, layout, x, y) {
194
194
  * Boxes with `pointerEvents: 'none'` do not terminate the path when they have no deeper hit (same idea as `getCursorAtPoint` and `collectHits`).
195
195
  * Returns `null` when the point misses the tree. Returns `[]` when the point hits the
196
196
  * root (or a leaf box) with no deeper box hit.
197
+ * Root `offsetX` / `offsetY` follow {@link dispatchHit}: non-finite or non-number values are treated as `0`.
197
198
  */
198
199
  export function hitPathAtPoint(element, layout, x, y, offsetX = 0, offsetY = 0) {
199
200
  if (!Number.isFinite(x) || !Number.isFinite(y))
200
201
  return null;
201
202
  if (!layoutBoundsAreFinite(layout))
202
203
  return null;
203
- const absX = offsetX + layout.x;
204
- const absY = offsetY + layout.y;
204
+ const ox = finiteNumber(offsetX);
205
+ const oy = finiteNumber(offsetY);
206
+ const absX = ox + layout.x;
207
+ const absY = oy + layout.y;
205
208
  if (element.kind === 'box') {
206
209
  const { overflow } = element.props;
207
210
  if (overflow === 'hidden' || overflow === 'scroll') {
@@ -221,8 +224,8 @@ export function hitPathAtPoint(element, layout, x, y, offsetX = 0, offsetY = 0)
221
224
  const boxEl = element;
222
225
  let childOffsetX = absX;
223
226
  let childOffsetY = absY;
224
- childOffsetX -= finiteScrollOffset(boxEl.props.scrollX);
225
- childOffsetY -= finiteScrollOffset(boxEl.props.scrollY);
227
+ childOffsetX -= finiteNumber(boxEl.props.scrollX);
228
+ childOffsetY -= finiteNumber(boxEl.props.scrollY);
226
229
  const asc = getChildrenByZAsc(boxEl);
227
230
  for (let k = asc.length - 1; k >= 0; k--) {
228
231
  const i = asc[k];
@@ -237,14 +240,28 @@ export function hitPathAtPoint(element, layout, x, y, offsetX = 0, offsetY = 0)
237
240
  return null;
238
241
  return [];
239
242
  }
240
- /** Get the cursor style at a given point by walking the tree. Returns the deepest element's cursor prop. */
243
+ /**
244
+ * Resolve the deepest `cursor` style at `(x, y)` (boxes only; skips `pointerEvents: 'none'` the same way as
245
+ * {@link hitPathAtPoint}). Scroll containers use the same clipping rules as {@link dispatchHit}.
246
+ * Root `offsetX` / `offsetY` follow {@link dispatchHit}: non-finite or non-number values are treated as `0`.
247
+ */
241
248
  export function getCursorAtPoint(element, layout, x, y, offsetX = 0, offsetY = 0) {
242
249
  if (!Number.isFinite(x) || !Number.isFinite(y))
243
250
  return null;
244
251
  if (!layoutBoundsAreFinite(layout))
245
252
  return null;
246
- const absX = offsetX + layout.x;
247
- const absY = offsetY + layout.y;
253
+ const ox = finiteNumber(offsetX);
254
+ const oy = finiteNumber(offsetY);
255
+ const absX = ox + layout.x;
256
+ const absY = oy + layout.y;
257
+ if (element.kind === 'box') {
258
+ const { overflow } = element.props;
259
+ if (overflow === 'hidden' || overflow === 'scroll') {
260
+ if (x < absX || x > absX + layout.width || y < absY || y > absY + layout.height) {
261
+ return null;
262
+ }
263
+ }
264
+ }
248
265
  const inside = x >= absX && x <= absX + layout.width &&
249
266
  y >= absY && y <= absY + layout.height;
250
267
  if (!inside)
@@ -253,8 +270,8 @@ export function getCursorAtPoint(element, layout, x, y, offsetX = 0, offsetY = 0
253
270
  if (element.kind === 'box') {
254
271
  let childOffX = absX;
255
272
  let childOffY = absY;
256
- childOffX -= finiteScrollOffset(element.props.scrollX);
257
- childOffY -= finiteScrollOffset(element.props.scrollY);
273
+ childOffX -= finiteNumber(element.props.scrollX);
274
+ childOffY -= finiteNumber(element.props.scrollY);
258
275
  const asc = getChildrenByZAsc(element);
259
276
  for (let k = asc.length - 1; k >= 0; k--) {
260
277
  const i = asc[k];
@@ -1 +1 @@
1
- {"version":3,"file":"hit-test.js","sourceRoot":"","sources":["../src/hit-test.ts"],"names":[],"mappings":"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"}
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
@@ -19,6 +19,7 @@ export { resolveDirectionValue, resolveElementDirection } from './direction.js';
19
19
  export type { ResolvedDirection } from './direction.js';
20
20
  export { dispatchHit, getCursorAtPoint, hasInteractiveHitAtPoint, hitPathAtPoint } from './hit-test.js';
21
21
  export type { HitDispatchResult } from './hit-test.js';
22
+ export { layoutBoundsAreFinite } from './layout-bounds.js';
22
23
  export { extractFontFamiliesFromCSSFont, collectFontFamiliesFromTree, resolveFontLoadTimeoutMs, waitForFonts, } from './fonts.js';
23
24
  export { focusedElement, setFocus, clearFocus, focusNext, focusPrev, collectFocusOrder } from './focus.js';
24
25
  export type { FocusTarget } from './focus.js';
@@ -26,7 +27,7 @@ export { trapFocusStep } from './focus-trap.js';
26
27
  export { dispatchCompositionEvent, dispatchKeyboardEvent } from './keyboard.js';
27
28
  export { collectTextNodes, getSelectedText, hitTestText } from './selection.js';
28
29
  export type { TextNodeInfo, TextLineInfo, SelectionRange } from './selection.js';
29
- export { transition, spring, easing, animationLoop, createTweenTimeline, createPropertyTimeline, setMotionPreference, getMotionPreference, } from './animation.js';
30
+ export { transition, spring, normalizeSpringConfig, easing, animationLoop, createTweenTimeline, createPropertyTimeline, setMotionPreference, getMotionPreference, } from './animation.js';
30
31
  export type { EasingFn, TweenPlaybackState, TweenTimeline, PropertyTimeline, MotionPreference, } from './animation.js';
31
32
  export { syncVirtualWindow } from './virtual-scroll.js';
32
33
  export type { VirtualWindowState } from './virtual-scroll.js';
@@ -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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"}
package/dist/index.js CHANGED
@@ -20,6 +20,7 @@ export { toLayoutTree } from './tree.js';
20
20
  export { resolveDirectionValue, resolveElementDirection } from './direction.js';
21
21
  // Hit testing
22
22
  export { dispatchHit, getCursorAtPoint, hasInteractiveHitAtPoint, hitPathAtPoint } from './hit-test.js';
23
+ export { layoutBoundsAreFinite } from './layout-bounds.js';
23
24
  // Web fonts (browser)
24
25
  export { extractFontFamiliesFromCSSFont, collectFontFamiliesFromTree, resolveFontLoadTimeoutMs, waitForFonts, } from './fonts.js';
25
26
  // Focus management
@@ -29,7 +30,7 @@ export { dispatchCompositionEvent, dispatchKeyboardEvent } from './keyboard.js';
29
30
  // Text selection
30
31
  export { collectTextNodes, getSelectedText, hitTestText } from './selection.js';
31
32
  // Animation
32
- export { transition, spring, easing, animationLoop, createTweenTimeline, createPropertyTimeline, setMotionPreference, getMotionPreference, } from './animation.js';
33
+ export { transition, spring, normalizeSpringConfig, easing, animationLoop, createTweenTimeline, createPropertyTimeline, setMotionPreference, getMotionPreference, } from './animation.js';
33
34
  // Virtual scroll helpers
34
35
  export { syncVirtualWindow } from './virtual-scroll.js';
35
36
  // SEO
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAG9D,uBAAuB;AACvB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGpC,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAG/E,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAGvG,sBAAsB;AACtB,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,EACxB,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE1G,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE/E,iBAAiB;AACjB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAG/E,YAAY;AACZ,OAAO,EACL,UAAU,EACV,MAAM,EACN,MAAM,EACN,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,gBAAgB,CAAA;AASvB,yBAAyB;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAGvD,MAAM;AACN,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAGzC,wBAAwB;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAG/C,wBAAwB;AACxB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAG9D,uBAAuB;AACvB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAEhD,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGpC,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AAG/E,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEvG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAE1D,sBAAsB;AACtB,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,wBAAwB,EACxB,YAAY,GACb,MAAM,YAAY,CAAA;AAEnB,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE1G,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE/E,iBAAiB;AACjB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAG/E,YAAY;AACZ,OAAO,EACL,UAAU,EACV,MAAM,EACN,qBAAqB,EACrB,MAAM,EACN,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,gBAAgB,CAAA;AASvB,yBAAyB;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAGvD,MAAM;AACN,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAGzC,wBAAwB;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAG/C,wBAAwB;AACxB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,yBAAyB,CAAA"}
@@ -2,12 +2,25 @@ import type { ComputedLayout } from 'textura';
2
2
  import type { UIElement, KeyboardHitEvent, CompositionHitEvent } from './types.js';
3
3
  /**
4
4
  * Dispatch keyboard events to the focused element.
5
- * Tab / Shift+Tab focus traversal runs only for `'onKeyDown'` (not `'onKeyUp'`).
5
+ *
6
+ * Tab / Shift+Tab runs only on `'onKeyDown'` (not `'onKeyUp'`). On keydown, Tab always returns
7
+ * `true` and runs focus traversal (`focusNext` / `focusPrev` from `./focus.js`); when the tree has
8
+ * no focusable boxes, those calls no-op and focus stays unset.
9
+ *
10
+ * For other keys, returns `true` only when a resolved focus target exists and its handler for
11
+ * `eventType` runs; otherwise `false`.
12
+ *
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).
6
17
  */
7
18
  export declare function dispatchKeyboardEvent(tree: UIElement, layout: ComputedLayout, eventType: 'onKeyDown' | 'onKeyUp', partialEvent: Omit<KeyboardHitEvent, 'target'>): boolean;
8
19
  /**
9
20
  * Dispatch IME composition events to the focused element.
10
- * Returns `false` when there is no resolved focus target or the target has no handler for `eventType`.
21
+ *
22
+ * @returns `true` when the focused target has a handler for `eventType` and it runs; `false` when
23
+ * there is no resolved focus target or no matching composition handler.
11
24
  */
12
25
  export declare function dispatchCompositionEvent(tree: UIElement, layout: ComputedLayout, eventType: 'onCompositionStart' | 'onCompositionUpdate' | 'onCompositionEnd', partialEvent: Omit<CompositionHitEvent, 'target'>): boolean;
13
26
  //# sourceMappingURL=keyboard.d.ts.map
@@ -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;;;GAGG;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;;;GAGG;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;;;;;;;;;;;;;;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"}
package/dist/keyboard.js CHANGED
@@ -1,7 +1,18 @@
1
1
  import { focusNext, focusPrev, resolveFocusedTarget } from './focus.js';
2
2
  /**
3
3
  * Dispatch keyboard events to the focused element.
4
- * Tab / Shift+Tab focus traversal runs only for `'onKeyDown'` (not `'onKeyUp'`).
4
+ *
5
+ * Tab / Shift+Tab runs only on `'onKeyDown'` (not `'onKeyUp'`). On keydown, Tab always returns
6
+ * `true` and runs focus traversal (`focusNext` / `focusPrev` from `./focus.js`); when the tree has
7
+ * no focusable boxes, those calls no-op and focus stays unset.
8
+ *
9
+ * For other keys, returns `true` only when a resolved focus target exists and its handler for
10
+ * `eventType` runs; otherwise `false`.
11
+ *
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).
5
16
  */
6
17
  export function dispatchKeyboardEvent(tree, layout, eventType, partialEvent) {
7
18
  if (partialEvent.key === 'Tab' && eventType === 'onKeyDown') {
@@ -26,7 +37,9 @@ export function dispatchKeyboardEvent(tree, layout, eventType, partialEvent) {
26
37
  }
27
38
  /**
28
39
  * Dispatch IME composition events to the focused element.
29
- * Returns `false` when there is no resolved focus target or the target has no handler for `eventType`.
40
+ *
41
+ * @returns `true` when the focused target has a handler for `eventType` and it runs; `false` when
42
+ * there is no resolved focus target or no matching composition handler.
30
43
  */
31
44
  export function dispatchCompositionEvent(tree, layout, eventType, partialEvent) {
32
45
  const focused = resolveFocusedTarget(tree, layout);
@@ -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;;;GAGG;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;;;GAGG;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;;;;;;;;;;;;;;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"}
@@ -0,0 +1,16 @@
1
+ import type { ComputedLayout } from 'textura';
2
+ /**
3
+ * Reject NaN, ±Infinity, and negative sizes so corrupt layout cannot invert rects or poison
4
+ * coordinate math. Shared by hit-testing, focus order, and focus traps.
5
+ *
6
+ * Degenerate rects (`width` / `height` of `0`) are accepted; they still yield a well-defined
7
+ * inclusive hit-test edge at the origin corner.
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.
11
+ *
12
+ * @param layout — Bounds from Textura/Yoga {@link ComputedLayout} output.
13
+ * @returns `true` when `x`, `y`, `width`, and `height` are finite and both dimensions are `>= 0`.
14
+ */
15
+ export declare function layoutBoundsAreFinite(layout: ComputedLayout): boolean;
16
+ //# sourceMappingURL=layout-bounds.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,27 @@
1
+ /** `Number.isFinite` throws on BigInt; gate with `typeof` so corrupt layout never crashes callers. */
2
+ function isFiniteLayoutNumber(value) {
3
+ return typeof value === 'number' && Number.isFinite(value);
4
+ }
5
+ /**
6
+ * Reject NaN, ±Infinity, and negative sizes so corrupt layout cannot invert rects or poison
7
+ * coordinate math. Shared by hit-testing, focus order, and focus traps.
8
+ *
9
+ * Degenerate rects (`width` / `height` of `0`) are accepted; they still yield a well-defined
10
+ * inclusive hit-test edge at the origin corner.
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.
14
+ *
15
+ * @param layout — Bounds from Textura/Yoga {@link ComputedLayout} output.
16
+ * @returns `true` when `x`, `y`, `width`, and `height` are finite and both dimensions are `>= 0`.
17
+ */
18
+ export function layoutBoundsAreFinite(layout) {
19
+ const { x, y, width, height } = layout;
20
+ return (isFiniteLayoutNumber(x) &&
21
+ isFiniteLayoutNumber(y) &&
22
+ isFiniteLayoutNumber(width) &&
23
+ isFiniteLayoutNumber(height) &&
24
+ width >= 0 &&
25
+ height >= 0);
26
+ }
27
+ //# sourceMappingURL=layout-bounds.js.map
@@ -0,0 +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"}
package/dist/node.d.ts CHANGED
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Node.js and Bun entry for the `@geometra/core/node` package subpath.
3
+ *
4
+ * Loads {@link ./canvas-polyfill.js} first so `globalThis.OffscreenCanvas` exists before any Textura /
5
+ * Pretext text measurement runs, then re-exports the same public API as `@geometra/core`.
6
+ *
7
+ * Prefer this entry for layout, SSR, or Node-based tests; use the root `@geometra/core` import when
8
+ * the host already provides canvas APIs (browser bundles).
9
+ */
1
10
  import './canvas-polyfill.js';
2
11
  export * from './index.js';
3
12
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,CAAA;AAC7B,cAAc,YAAY,CAAA"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,sBAAsB,CAAA;AAC7B,cAAc,YAAY,CAAA"}