@geometra/core 1.49.0 → 1.53.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 (52) hide show
  1. package/README.md +14 -4
  2. package/dist/a11y.d.ts.map +1 -1
  3. package/dist/a11y.js +3 -2
  4. package/dist/a11y.js.map +1 -1
  5. package/dist/animation-choreography.d.ts +88 -0
  6. package/dist/animation-choreography.d.ts.map +1 -0
  7. package/dist/animation-choreography.js +283 -0
  8. package/dist/animation-choreography.js.map +1 -0
  9. package/dist/animation.d.ts.map +1 -1
  10. package/dist/animation.js +3 -2
  11. package/dist/animation.js.map +1 -1
  12. package/dist/app.js +2 -2
  13. package/dist/app.js.map +1 -1
  14. package/dist/focus.d.ts +2 -0
  15. package/dist/focus.d.ts.map +1 -1
  16. package/dist/focus.js +5 -2
  17. package/dist/focus.js.map +1 -1
  18. package/dist/gestures.d.ts +110 -0
  19. package/dist/gestures.d.ts.map +1 -0
  20. package/dist/gestures.js +248 -0
  21. package/dist/gestures.js.map +1 -0
  22. package/dist/hit-test.d.ts +6 -5
  23. package/dist/hit-test.d.ts.map +1 -1
  24. package/dist/hit-test.js +39 -44
  25. package/dist/hit-test.js.map +1 -1
  26. package/dist/index.d.ts +15 -5
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +12 -4
  29. package/dist/index.js.map +1 -1
  30. package/dist/layout-bounds.d.ts +13 -5
  31. package/dist/layout-bounds.d.ts.map +1 -1
  32. package/dist/layout-bounds.js +17 -7
  33. package/dist/layout-bounds.js.map +1 -1
  34. package/dist/performance-now.d.ts +14 -3
  35. package/dist/performance-now.d.ts.map +1 -1
  36. package/dist/performance-now.js +18 -4
  37. package/dist/performance-now.js.map +1 -1
  38. package/dist/selection.d.ts +2 -0
  39. package/dist/selection.d.ts.map +1 -1
  40. package/dist/selection.js +5 -2
  41. package/dist/selection.js.map +1 -1
  42. package/dist/text-input.d.ts +10 -1
  43. package/dist/text-input.d.ts.map +1 -1
  44. package/dist/text-input.js +12 -1
  45. package/dist/text-input.js.map +1 -1
  46. package/dist/types.d.ts +46 -6
  47. package/dist/types.d.ts.map +1 -1
  48. package/dist/virtual-scroll.d.ts +26 -5
  49. package/dist/virtual-scroll.d.ts.map +1 -1
  50. package/dist/virtual-scroll.js +40 -9
  51. package/dist/virtual-scroll.js.map +1 -1
  52. package/package.json +2 -2
@@ -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
@@ -2,9 +2,15 @@
2
2
  * @packageDocumentation
3
3
  * Public entry for `@geometra/core`: reactive primitives, element constructors (`box`, `text`, {@link bodyText},
4
4
  * `image`, `scene3d`), app mount, layout-tree
5
- * conversion, hit-testing, focus and keyboard/composition dispatch, text selection and input, web font
5
+ * conversion, hit-testing, shared layout coordinate helpers ({@link finiteNumberOrZero}, {@link finiteRootExtent},
6
+ * {@link isFinitePlainNumber}, {@link layoutBoundsAreFinite}, {@link scrollSafeChildOffsets},
7
+ * {@link pointInInclusiveLayoutRect}), monotonic timing helpers ({@link safePerformanceNowMs}, {@link readPerformanceNow},
8
+ * {@link clampNonNegativeLayoutWallMs}),
9
+ * focus and
10
+ * keyboard/composition dispatch, text selection and input, web font
6
11
  * helpers, {@link streamText} for coalesced token streams, viewport/breakpoint helpers ({@link createViewport},
7
- * {@link breakpoint}, {@link responsive}), animation and virtual-scroll utilities, SEO and accessibility snapshots,
12
+ * {@link breakpoint}, {@link responsive}), animation helpers, and virtual list windowing ({@link syncVirtualWindow},
13
+ * {@link inclusiveEndIndex}, {@link VirtualWindowState}), SEO and accessibility snapshots,
8
14
  * {@link import('./focus-candidates.js').hasFocusCandidateHandlers} for parity with Tab / click-to-focus
9
15
  * routing, and shared element types (`UIElement`, `Renderer`, `FrameTimings`, …).
10
16
  *
@@ -24,7 +30,7 @@ export type { ResolvedDirection } from './direction.js';
24
30
  export { dispatchHit, getCursorAtPoint, hasInteractiveHitAtPoint, hitPathAtPoint } from './hit-test.js';
25
31
  export type { HitDispatchResult } from './hit-test.js';
26
32
  export { finiteNumberOrZero, finiteRootExtent, isFinitePlainNumber, layoutBoundsAreFinite, pointInInclusiveLayoutRect, scrollSafeChildOffsets, } from './layout-bounds.js';
27
- export { safePerformanceNowMs, readPerformanceNow } from './performance-now.js';
33
+ export { safePerformanceNowMs, readPerformanceNow, clampNonNegativeLayoutWallMs } from './performance-now.js';
28
34
  export { extractFontFamiliesFromCSSFont, collectFontFamiliesFromTree, resolveFontLoadTimeoutMs, waitForFonts, } from './fonts.js';
29
35
  export { focusedElement, setFocus, clearFocus, focusNext, focusPrev, collectFocusOrder } from './focus.js';
30
36
  export type { FocusTarget } from './focus.js';
@@ -36,6 +42,10 @@ export type { TextNodeInfo, TextLineInfo, SelectionRange } from './selection.js'
36
42
  export { findInTextNodes } from './find.js';
37
43
  export { transition, spring, normalizeSpringConfig, easing, animationLoop, createTweenTimeline, createPropertyTimeline, setMotionPreference, getMotionPreference, } from './animation.js';
38
44
  export type { EasingFn, TweenPlaybackState, TweenTimeline, PropertyTimeline, MotionPreference, } from './animation.js';
45
+ export { sequence, parallel, stagger, createKeyframeTimeline, } from './animation-choreography.js';
46
+ export type { Choreographable, Choreography, Keyframe, KeyframeTimeline, KeyframeTimelinePlaybackState, } from './animation-choreography.js';
47
+ export { createPanRecognizer, createSwipeRecognizer, createPinchRecognizer, } from './gestures.js';
48
+ export type { PointerSample, PanEvent, PanRecognizer, PanRecognizerOptions, SwipeDirection, SwipeEvent, SwipeRecognizer, SwipeRecognizerOptions, PinchEvent, PinchRecognizer, PinchRecognizerOptions, } from './gestures.js';
39
49
  export { streamText } from './stream-text.js';
40
50
  export type { StreamText } from './stream-text.js';
41
51
  export { createViewport, breakpoint, responsive, defaultBreakpoints, } from './responsive.js';
@@ -46,9 +56,9 @@ export { toSemanticHTML } from './seo.js';
46
56
  export type { SemanticHTMLOptions } from './seo.js';
47
57
  export { toAccessibilityTree } from './a11y.js';
48
58
  export type { AccessibilityNode, AccessibilityBounds } from './a11y.js';
49
- export { isCollapsedSelection, getInputSelectionText, replaceInputSelection, insertInputText, backspaceInput, deleteInput, moveInputCaret, moveInputCaretByWord, moveInputCaretToLineBoundary, getInputCaretGeometry, } from './text-input.js';
59
+ export { isCollapsedSelection, getInputSelectionText, normalizePasteText, replaceInputSelection, insertInputText, backspaceInput, deleteInput, moveInputCaret, moveInputCaretByWord, moveInputCaretToLineBoundary, getInputCaretGeometry, } from './text-input.js';
50
60
  export type { TextInputState, TextInputEditResult, CaretGeometry } from './text-input.js';
51
61
  export { createTextInputHistory, pushTextInputHistory, undoTextInputHistory, redoTextInputHistory, } from './text-input-history.js';
52
62
  export type { TextInputHistoryState } from './text-input-history.js';
53
- export type { UIElement, BoxElement, TextElement, ImageElement, Scene3dElement, Scene3dObject, Scene3dSphere, Scene3dPoints, Scene3dLine, Scene3dRing, Scene3dAmbientLight, Scene3dDirectionalLight, Scene3dGroup, OrbitControlsConfig, StyleProps, CursorProp, Direction, DirectionProps, SemanticProps, EventHandlers, HitEvent, KeyboardHitEvent, CompositionHitEvent, Component, FrameTimings, Renderer, } from './types.js';
63
+ export type { UIElement, BoxElement, TextElement, ImageElement, Scene3dElement, Scene3dObject, Scene3dSphere, Scene3dPoints, Scene3dLine, Scene3dRing, Scene3dAmbientLight, Scene3dDirectionalLight, Scene3dGroup, OrbitControlsConfig, StyleProps, BorderRadiusCorners, CursorProp, Direction, DirectionProps, SemanticProps, EventHandlers, HitEvent, KeyboardHitEvent, CompositionHitEvent, Component, FrameTimings, Renderer, } from './types.js';
54
64
  //# 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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"}
package/dist/index.js CHANGED
@@ -2,9 +2,15 @@
2
2
  * @packageDocumentation
3
3
  * Public entry for `@geometra/core`: reactive primitives, element constructors (`box`, `text`, {@link bodyText},
4
4
  * `image`, `scene3d`), app mount, layout-tree
5
- * conversion, hit-testing, focus and keyboard/composition dispatch, text selection and input, web font
5
+ * conversion, hit-testing, shared layout coordinate helpers ({@link finiteNumberOrZero}, {@link finiteRootExtent},
6
+ * {@link isFinitePlainNumber}, {@link layoutBoundsAreFinite}, {@link scrollSafeChildOffsets},
7
+ * {@link pointInInclusiveLayoutRect}), monotonic timing helpers ({@link safePerformanceNowMs}, {@link readPerformanceNow},
8
+ * {@link clampNonNegativeLayoutWallMs}),
9
+ * focus and
10
+ * keyboard/composition dispatch, text selection and input, web font
6
11
  * helpers, {@link streamText} for coalesced token streams, viewport/breakpoint helpers ({@link createViewport},
7
- * {@link breakpoint}, {@link responsive}), animation and virtual-scroll utilities, SEO and accessibility snapshots,
12
+ * {@link breakpoint}, {@link responsive}), animation helpers, and virtual list windowing ({@link syncVirtualWindow},
13
+ * {@link inclusiveEndIndex}, {@link VirtualWindowState}), SEO and accessibility snapshots,
8
14
  * {@link import('./focus-candidates.js').hasFocusCandidateHandlers} for parity with Tab / click-to-focus
9
15
  * routing, and shared element types (`UIElement`, `Renderer`, `FrameTimings`, …).
10
16
  *
@@ -26,7 +32,7 @@ export { resolveDirectionValue, resolveElementDirection, resolveComputeLayoutDir
26
32
  // Hit testing
27
33
  export { dispatchHit, getCursorAtPoint, hasInteractiveHitAtPoint, hitPathAtPoint } from './hit-test.js';
28
34
  export { finiteNumberOrZero, finiteRootExtent, isFinitePlainNumber, layoutBoundsAreFinite, pointInInclusiveLayoutRect, scrollSafeChildOffsets, } from './layout-bounds.js';
29
- export { safePerformanceNowMs, readPerformanceNow } from './performance-now.js';
35
+ export { safePerformanceNowMs, readPerformanceNow, clampNonNegativeLayoutWallMs } from './performance-now.js';
30
36
  // Web fonts (browser)
31
37
  export { extractFontFamiliesFromCSSFont, collectFontFamiliesFromTree, resolveFontLoadTimeoutMs, waitForFonts, } from './fonts.js';
32
38
  // Focus management
@@ -40,6 +46,8 @@ export { collectTextNodes, getSelectedText, hitTestText } from './selection.js';
40
46
  export { findInTextNodes } from './find.js';
41
47
  // Animation
42
48
  export { transition, spring, normalizeSpringConfig, easing, animationLoop, createTweenTimeline, createPropertyTimeline, setMotionPreference, getMotionPreference, } from './animation.js';
49
+ export { sequence, parallel, stagger, createKeyframeTimeline, } from './animation-choreography.js';
50
+ export { createPanRecognizer, createSwipeRecognizer, createPinchRecognizer, } from './gestures.js';
43
51
  // Streaming text
44
52
  export { streamText } from './stream-text.js';
45
53
  // Responsive helpers
@@ -51,6 +59,6 @@ export { toSemanticHTML } from './seo.js';
51
59
  // Runtime accessibility
52
60
  export { toAccessibilityTree } from './a11y.js';
53
61
  // Text input foundation
54
- export { isCollapsedSelection, getInputSelectionText, replaceInputSelection, insertInputText, backspaceInput, deleteInput, moveInputCaret, moveInputCaretByWord, moveInputCaretToLineBoundary, getInputCaretGeometry, } from './text-input.js';
62
+ export { isCollapsedSelection, getInputSelectionText, normalizePasteText, replaceInputSelection, insertInputText, backspaceInput, deleteInput, moveInputCaret, moveInputCaretByWord, moveInputCaretToLineBoundary, getInputCaretGeometry, } from './text-input.js';
55
63
  export { createTextInputHistory, pushTextInputHistory, undoTextInputHistory, redoTextInputHistory, } from './text-input-history.js';
56
64
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;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,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEnE,yBAAyB;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAEjG,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGpC,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,gBAAgB,CAAA;AAGvB,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEvG,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE/E,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,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,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,sBAAsB;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,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,iBAAiB;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,qBAAqB;AACrB,OAAO,EACL,cAAc,EACd,UAAU,EACV,UAAU,EACV,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AAGxB,yBAAyB;AACzB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAG1E,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;;;;;;;;;;;;;;;;;;;GAmBG;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,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEnE,yBAAyB;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAEjG,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGpC,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,gBAAgB,CAAA;AAGvB,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEvG,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAA;AAE7G,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,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,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,sBAAsB;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,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;AAQvB,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,sBAAsB,GACvB,MAAM,6BAA6B,CAAA;AAQpC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,eAAe,CAAA;AAetB,iBAAiB;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAG7C,qBAAqB;AACrB,OAAO,EACL,cAAc,EACd,UAAU,EACV,UAAU,EACV,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AAGxB,yBAAyB;AACzB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAG1E,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,kBAAkB,EAClB,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"}
@@ -7,8 +7,14 @@
7
7
  import type { ComputedLayout } from 'textura';
8
8
  /**
9
9
  * True only for finite **primitive** numbers: `typeof` rejects `BigInt`, boxed numbers, and objects before
10
- * `Number.isFinite`. Shared with protocol patch validation (`@geometra/server` `coalescePatches`) so corrupt
11
- * serialized scalars are rejected under the same rules as layout bounds and hit-testing.
10
+ * `Number.isFinite`. The same guard is imported by `@geometra/server` (`packages/server/src/protocol.ts`)
11
+ * for GEOM layout patches non-negative dimension checks, per-field `x`/`y`/`width`/`height` updates, and
12
+ * `coalescePatches` merge rules — so corrupt wire scalars fail closed consistently with layout bounds and
13
+ * hit-testing.
14
+ *
15
+ * @param value — Any runtime value (deserialized layout fields, scroll offsets, protocol scalars).
16
+ * @returns `true` when `value` is a primitive finite IEEE-754 number (including **−0**); `false` for `NaN`,
17
+ * `±Infinity`, non-numbers, boxed numbers, `bigint`, and objects.
12
18
  */
13
19
  export declare function isFinitePlainNumber(value: unknown): value is number;
14
20
  /**
@@ -69,9 +75,11 @@ export declare function finiteRootExtent(value: unknown): number | undefined;
69
75
  * `children` is a real array (empty is fine). Missing or non-array `children` is rejected so parallel
70
76
  * tree walks (hit-test, focus, a11y) never throw on `layout.children[i]` from bad snapshots or transport bugs.
71
77
  *
72
- * `x` / `y` / `width` / `height` are read with normal property access (destructuring uses `[[Get]]`), so
73
- * inherited values on the prototype chain are observed the same as own fields including
74
- * non-enumerable prototype descriptors (enumerability affects `for...in`, not ordinary reads). Typical
78
+ * `children` is validated with `Array.isArray` before `x` / `y` / `width` / `height` are read, so corrupt
79
+ * snapshots without a real `children` array do not pay four numeric `[[Get]]`s (and avoid invoking
80
+ * accessors for bounds keys when the subtree cannot be walked). Numeric fields use normal property access
81
+ * (`[[Get]]`), so inherited values on the prototype chain match own fields — including non-enumerable
82
+ * prototype descriptors (enumerability affects `for...in`, not ordinary reads). Typical
75
83
  * {@link ComputedLayout} snapshots from Textura use plain objects with own fields only.
76
84
  * {@link ComputedLayout.children} is not validated recursively. Callers walking a tree should check
77
85
  * each visited layout when needed.
@@ -1 +1 @@
1
- {"version":3,"file":"layout-bounds.d.ts","sourceRoot":"","sources":["../src/layout-bounds.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GACf;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQnC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAInE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAWrE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAkBT"}
1
+ {"version":3,"file":"layout-bounds.d.ts","sourceRoot":"","sources":["../src/layout-bounds.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GACf;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQnC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAInE;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAarE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CACxC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAkBT"}
@@ -1,7 +1,13 @@
1
1
  /**
2
2
  * True only for finite **primitive** numbers: `typeof` rejects `BigInt`, boxed numbers, and objects before
3
- * `Number.isFinite`. Shared with protocol patch validation (`@geometra/server` `coalescePatches`) so corrupt
4
- * serialized scalars are rejected under the same rules as layout bounds and hit-testing.
3
+ * `Number.isFinite`. The same guard is imported by `@geometra/server` (`packages/server/src/protocol.ts`)
4
+ * for GEOM layout patches non-negative dimension checks, per-field `x`/`y`/`width`/`height` updates, and
5
+ * `coalescePatches` merge rules — so corrupt wire scalars fail closed consistently with layout bounds and
6
+ * hit-testing.
7
+ *
8
+ * @param value — Any runtime value (deserialized layout fields, scroll offsets, protocol scalars).
9
+ * @returns `true` when `value` is a primitive finite IEEE-754 number (including **−0**); `false` for `NaN`,
10
+ * `±Infinity`, non-numbers, boxed numbers, `bigint`, and objects.
5
11
  */
6
12
  export function isFinitePlainNumber(value) {
7
13
  return typeof value === 'number' && Number.isFinite(value);
@@ -77,17 +83,21 @@ export function finiteRootExtent(value) {
77
83
  * `children` is a real array (empty is fine). Missing or non-array `children` is rejected so parallel
78
84
  * tree walks (hit-test, focus, a11y) never throw on `layout.children[i]` from bad snapshots or transport bugs.
79
85
  *
80
- * `x` / `y` / `width` / `height` are read with normal property access (destructuring uses `[[Get]]`), so
81
- * inherited values on the prototype chain are observed the same as own fields including
82
- * non-enumerable prototype descriptors (enumerability affects `for...in`, not ordinary reads). Typical
86
+ * `children` is validated with `Array.isArray` before `x` / `y` / `width` / `height` are read, so corrupt
87
+ * snapshots without a real `children` array do not pay four numeric `[[Get]]`s (and avoid invoking
88
+ * accessors for bounds keys when the subtree cannot be walked). Numeric fields use normal property access
89
+ * (`[[Get]]`), so inherited values on the prototype chain match own fields — including non-enumerable
90
+ * prototype descriptors (enumerability affects `for...in`, not ordinary reads). Typical
83
91
  * {@link ComputedLayout} snapshots from Textura use plain objects with own fields only.
84
92
  * {@link ComputedLayout.children} is not validated recursively. Callers walking a tree should check
85
93
  * each visited layout when needed.
86
94
  */
87
95
  export function layoutBoundsAreFinite(layout) {
88
- const { x, y, width, height, children } = layout;
89
- if (!Array.isArray(children))
96
+ // Children first: corrupt snapshots often omit or mistype `children`; avoid reading x/y/width/height
97
+ // (and any throwing accessors on those keys) until we know parallel tree walks are safe.
98
+ if (!Array.isArray(layout.children))
90
99
  return false;
100
+ const { x, y, width, height } = layout;
91
101
  return (isFinitePlainNumber(x) &&
92
102
  isFinitePlainNumber(y) &&
93
103
  isFinitePlainNumber(width) &&
@@ -1 +1 @@
1
- {"version":3,"file":"layout-bounds.js","sourceRoot":"","sources":["../src/layout-bounds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout-bounds.js","sourceRoot":"","sources":["../src/layout-bounds.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@
4
4
  *
5
5
  * Returns a **finite** millisecond value: `NaN`, `±Infinity`, and any non-primitive-number return
6
6
  * from `now()` become `0`, so Yoga/layout wall-time deltas stay safe for
7
- * {@link import('./types.js').Renderer.setFrameTimings}.
7
+ * {@link import('./types.js').Renderer.setFrameTimings}. Negative finite values (offsets before the
8
+ * time origin) are preserved like positive magnitudes.
8
9
  *
9
10
  * Primitive IEEE **−0** is preserved (`Object.is` distinguishes −0 from +0).
10
11
  *
@@ -16,8 +17,8 @@ export declare function safePerformanceNowMs(): number;
16
17
  *
17
18
  * Unlike {@link safePerformanceNowMs}, any value with `typeof t === 'number'` is returned as-is,
18
19
  * including `NaN` and `±Infinity`, so broken clocks can be detected. Values that are not primitive
19
- * numbers (boxed numbers, `null` — `typeof null === 'object'`, strings, bigint, etc.) become `0` — `typeof` gates avoid `ToNumber`
20
- * coercion that could throw on `bigint`.
20
+ * numbers (boxed numbers, `null` — `typeof null === 'object'`, strings, bigint, objects with
21
+ * `Symbol.toPrimitive`, etc.) become `0` — `typeof` gates avoid `ToNumber` coercion that could throw on `bigint`.
21
22
  *
22
23
  * Callers computing wall-time deltas should clamp with `Number.isFinite` and `Math.max(0, …)` the
23
24
  * same way layout timings are sanitized after Yoga (see canvas renderer `lastRenderWallMs`).
@@ -25,4 +26,14 @@ export declare function safePerformanceNowMs(): number;
25
26
  * Never throws (covers missing `performance`, missing `now`, or a throwing implementation).
26
27
  */
27
28
  export declare function readPerformanceNow(): number;
29
+ /**
30
+ * Clamp raw layout wall time (ms) for {@link import('./types.js').Renderer.setFrameTimings} telemetry:
31
+ * only primitive finite numbers are honored (same `typeof` + `Number.isFinite` rule as
32
+ * {@link import('./layout-bounds.js').isFinitePlainNumber}); otherwise the value is treated as `0`.
33
+ * Negative finite values and IEEE **−0** become non-negative `0` via `Math.max`.
34
+ *
35
+ * @param value — Milliseconds from layout timing; widened to `unknown` so corrupt or mistyped telemetry cannot coerce via `ToNumber`.
36
+ * @returns A non-negative finite millisecond value, or `0` when the input is not a primitive finite number.
37
+ */
38
+ export declare function clampNonNegativeLayoutWallMs(value: unknown): number;
28
39
  //# sourceMappingURL=performance-now.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"performance-now.d.ts","sourceRoot":"","sources":["../src/performance-now.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAW7C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAW3C"}
1
+ {"version":3,"file":"performance-now.d.ts","sourceRoot":"","sources":["../src/performance-now.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAW7C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAW3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEnE"}
@@ -1,10 +1,12 @@
1
+ import { isFinitePlainNumber } from './layout-bounds.js';
1
2
  /**
2
3
  * Monotonic layout timing without throwing when `performance` is partial or hostile
3
4
  * (missing `now`, non-function `now`, or a throwing implementation).
4
5
  *
5
6
  * Returns a **finite** millisecond value: `NaN`, `±Infinity`, and any non-primitive-number return
6
7
  * from `now()` become `0`, so Yoga/layout wall-time deltas stay safe for
7
- * {@link import('./types.js').Renderer.setFrameTimings}.
8
+ * {@link import('./types.js').Renderer.setFrameTimings}. Negative finite values (offsets before the
9
+ * time origin) are preserved like positive magnitudes.
8
10
  *
9
11
  * Primitive IEEE **−0** is preserved (`Object.is` distinguishes −0 from +0).
10
12
  *
@@ -15,7 +17,7 @@ export function safePerformanceNowMs() {
15
17
  const perf = globalThis.performance;
16
18
  if (perf && typeof perf.now === 'function') {
17
19
  const t = perf.now();
18
- return typeof t === 'number' && Number.isFinite(t) ? t : 0;
20
+ return isFinitePlainNumber(t) ? t : 0;
19
21
  }
20
22
  }
21
23
  catch {
@@ -28,8 +30,8 @@ export function safePerformanceNowMs() {
28
30
  *
29
31
  * Unlike {@link safePerformanceNowMs}, any value with `typeof t === 'number'` is returned as-is,
30
32
  * including `NaN` and `±Infinity`, so broken clocks can be detected. Values that are not primitive
31
- * numbers (boxed numbers, `null` — `typeof null === 'object'`, strings, bigint, etc.) become `0` — `typeof` gates avoid `ToNumber`
32
- * coercion that could throw on `bigint`.
33
+ * numbers (boxed numbers, `null` — `typeof null === 'object'`, strings, bigint, objects with
34
+ * `Symbol.toPrimitive`, etc.) become `0` — `typeof` gates avoid `ToNumber` coercion that could throw on `bigint`.
33
35
  *
34
36
  * Callers computing wall-time deltas should clamp with `Number.isFinite` and `Math.max(0, …)` the
35
37
  * same way layout timings are sanitized after Yoga (see canvas renderer `lastRenderWallMs`).
@@ -49,4 +51,16 @@ export function readPerformanceNow() {
49
51
  }
50
52
  return 0;
51
53
  }
54
+ /**
55
+ * Clamp raw layout wall time (ms) for {@link import('./types.js').Renderer.setFrameTimings} telemetry:
56
+ * only primitive finite numbers are honored (same `typeof` + `Number.isFinite` rule as
57
+ * {@link import('./layout-bounds.js').isFinitePlainNumber}); otherwise the value is treated as `0`.
58
+ * Negative finite values and IEEE **−0** become non-negative `0` via `Math.max`.
59
+ *
60
+ * @param value — Milliseconds from layout timing; widened to `unknown` so corrupt or mistyped telemetry cannot coerce via `ToNumber`.
61
+ * @returns A non-negative finite millisecond value, or `0` when the input is not a primitive finite number.
62
+ */
63
+ export function clampNonNegativeLayoutWallMs(value) {
64
+ return Math.max(0, isFinitePlainNumber(value) ? value : 0);
65
+ }
52
66
  //# sourceMappingURL=performance-now.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"performance-now.js","sourceRoot":"","sources":["../src/performance-now.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAA;QACnC,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACpB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAA;QACnC,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACpB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC"}
1
+ {"version":3,"file":"performance-now.js","sourceRoot":"","sources":["../src/performance-now.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAA;QACnC,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACpB,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAA;QACnC,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACpB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5D,CAAC"}
@@ -48,6 +48,8 @@ export interface SelectionRange {
48
48
  * geometry cannot poison absolute coordinates or flood selection with unusable entries.
49
49
  * Boxes with a missing or non-array {@link import('./types.js').BoxElement.children} field are treated as
50
50
  * leaves (no throw), matching {@link import('./focus.js').collectFocusOrder} and hit-testing.
51
+ * Parallel walks skip an index when the element child is missing but `layout.children[i]` exists
52
+ * (holey `children` arrays), matching hit-testing.
51
53
  *
52
54
  * For each box, child origins subtract {@link import('./types.js').StyleProps.scrollX} /
53
55
  * `scrollY` (non-finite values → `0`), matching {@link import('./hit-test.js').dispatchHit} and
@@ -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;AAQhF,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;AAED,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;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;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;AAkED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,YAAY,EAAE,GACxB,MAAM,CAwDR;AAYD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,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,CA2DlD"}
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;AAQhF,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;AAED,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;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;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;AAmED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,YAAY,EAAE,GACxB,MAAM,CAwDR;AAYD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,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,CA2DlD"}
package/dist/selection.js CHANGED
@@ -11,6 +11,8 @@ import { finiteNumberOrZero, layoutBoundsAreFinite, pointInInclusiveLayoutRect,
11
11
  * geometry cannot poison absolute coordinates or flood selection with unusable entries.
12
12
  * Boxes with a missing or non-array {@link import('./types.js').BoxElement.children} field are treated as
13
13
  * leaves (no throw), matching {@link import('./focus.js').collectFocusOrder} and hit-testing.
14
+ * Parallel walks skip an index when the element child is missing but `layout.children[i]` exists
15
+ * (holey `children` arrays), matching hit-testing.
14
16
  *
15
17
  * For each box, child origins subtract {@link import('./types.js').StyleProps.scrollX} /
16
18
  * `scrollY` (non-finite values → `0`), matching {@link import('./hit-test.js').dispatchHit} and
@@ -60,9 +62,10 @@ function collectTextNodesWalk(element, layout, offsetX, offsetY, results, parent
60
62
  if (!childOrigin)
61
63
  return;
62
64
  for (let i = 0; i < kids.length; i++) {
65
+ const child = kids[i];
63
66
  const childLayout = layout.children[i];
64
- if (childLayout) {
65
- collectTextNodesWalk(kids[i], childLayout, childOrigin.ox, childOrigin.oy, results, direction);
67
+ if (child && childLayout) {
68
+ collectTextNodesWalk(child, childLayout, childOrigin.ox, childOrigin.oy, results, direction);
66
69
  }
67
70
  }
68
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"selection.js","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":"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"}
@@ -22,12 +22,21 @@ type ReadingDirection = 'ltr' | 'rtl';
22
22
  export declare function isCollapsedSelection(selection: SelectionRange): boolean;
23
23
  /** Extract selected text from editable nodes. */
24
24
  export declare function getInputSelectionText(nodes: string[], selection: SelectionRange): string;
25
+ /**
26
+ * Normalize clipboard/paste-style payloads: CRLF → LF, strip leading BOM.
27
+ * Apply before {@link insertInputText} when integrating external paste.
28
+ */
29
+ export declare function normalizePasteText(text: string): string;
25
30
  /**
26
31
  * Replace current selection with inserted text.
27
32
  * For multi-line insertion, newlines create additional nodes.
28
33
  */
29
34
  export declare function replaceInputSelection(nodes: string[], selection: SelectionRange, insertedText: string): TextInputEditResult;
30
- /** Insert text at current selection/caret. */
35
+ /**
36
+ * Insert text at current selection/caret.
37
+ * For paste-sized payloads, consider {@link normalizePasteText} so CRLF and BOM
38
+ * match how browsers deliver `paste` on some platforms.
39
+ */
31
40
  export declare function insertInputText(state: TextInputState, text: string): TextInputEditResult;
32
41
  /** Backspace behavior across node boundaries and active selections. */
33
42
  export declare function backspaceInput(state: TextInputState): TextInputEditResult;
@@ -1 +1 @@
1
- {"version":3,"file":"text-input.d.ts","sourceRoot":"","sources":["../src/text-input.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,oDAAoD;IACpD,SAAS,EAAE,cAAc,CAAA;IACzB,uHAAuH;IACvH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,0FAA0F;AAC1F,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAA;AAEhD,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,KAAK,gBAAgB,GAAG,KAAK,GAAG,KAAK,CAAA;AA4DrC,gDAAgD;AAChD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAKvE;AAED,iDAAiD;AACjD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,cAAc,GAAG,MAAM,CAiBxF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,EAAE,cAAc,EACzB,YAAY,EAAE,MAAM,GACnB,mBAAmB,CAgCrB;AAED,8CAA8C;AAC9C,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,MAAM,GACX,mBAAmB,CAErB;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,mBAAmB,CAqCzE;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,mBAAmB,CAoCtE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,EAC3C,eAAe,UAAQ,EACvB,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,GAAE,gBAAwB,GACzC,mBAAmB,CA8ErB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,GAAG,OAAO,EAC3B,eAAe,UAAQ,EACvB,gBAAgB,GAAE,gBAAwB,GACzC,mBAAmB,CAgDrB;AAED,+CAA+C;AAC/C,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,OAAO,GAAG,KAAK,EACzB,eAAe,UAAQ,EACvB,gBAAgB,GAAE,gBAAwB,GACzC,mBAAmB,CA8BrB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,YAAY,EAAE,EACzB,SAAS,EAAE,cAAc,GACxB,aAAa,GAAG,IAAI,CAkDtB"}
1
+ {"version":3,"file":"text-input.d.ts","sourceRoot":"","sources":["../src/text-input.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,oDAAoD;IACpD,SAAS,EAAE,cAAc,CAAA;IACzB,uHAAuH;IACvH,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,0FAA0F;AAC1F,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAA;AAEhD,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,KAAK,gBAAgB,GAAG,KAAK,GAAG,KAAK,CAAA;AA4DrC,gDAAgD;AAChD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAKvE;AAED,iDAAiD;AACjD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,cAAc,GAAG,MAAM,CAiBxF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,EAAE,cAAc,EACzB,YAAY,EAAE,MAAM,GACnB,mBAAmB,CAgCrB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,MAAM,GACX,mBAAmB,CAErB;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,mBAAmB,CAqCzE;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,mBAAmB,CAoCtE;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,EAC3C,eAAe,UAAQ,EACvB,YAAY,CAAC,EAAE,MAAM,EACrB,gBAAgB,GAAE,gBAAwB,GACzC,mBAAmB,CA8ErB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,GAAG,OAAO,EAC3B,eAAe,UAAQ,EACvB,gBAAgB,GAAE,gBAAwB,GACzC,mBAAmB,CAgDrB;AAED,+CAA+C;AAC/C,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,OAAO,GAAG,KAAK,EACzB,eAAe,UAAQ,EACvB,gBAAgB,GAAE,gBAAwB,GACzC,mBAAmB,CA8BrB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,YAAY,EAAE,EACzB,SAAS,EAAE,cAAc,GACxB,aAAa,GAAG,IAAI,CAkDtB"}
@@ -70,6 +70,13 @@ export function getInputSelectionText(nodes, selection) {
70
70
  }
71
71
  return parts.join('\n');
72
72
  }
73
+ /**
74
+ * Normalize clipboard/paste-style payloads: CRLF → LF, strip leading BOM.
75
+ * Apply before {@link insertInputText} when integrating external paste.
76
+ */
77
+ export function normalizePasteText(text) {
78
+ return text.replace(/\r\n/g, '\n').replace(/^\uFEFF/, '');
79
+ }
73
80
  /**
74
81
  * Replace current selection with inserted text.
75
82
  * For multi-line insertion, newlines create additional nodes.
@@ -102,7 +109,11 @@ export function replaceInputSelection(nodes, selection, insertedText) {
102
109
  },
103
110
  };
104
111
  }
105
- /** Insert text at current selection/caret. */
112
+ /**
113
+ * Insert text at current selection/caret.
114
+ * For paste-sized payloads, consider {@link normalizePasteText} so CRLF and BOM
115
+ * match how browsers deliver `paste` on some platforms.
116
+ */
106
117
  export function insertInputText(state, text) {
107
118
  return replaceInputSelection(state.nodes, state.selection, text);
108
119
  }