Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1788 commits
Select commit Hold shift + click to select a range
45c93cc
Merge #8356 (#8320 46fb7beee4) into #8358
vjeux Oct 27, 2026
87144e2
Merge #8293 (#8320 46fb7beee4) into #8356
vjeux Oct 27, 2026
ab71d20
Merge #8358 (#8320 46fb7beee4) into #8360
vjeux Oct 27, 2026
beec62a
test(gestures): a scroll-edge pan holds nothing while a second finger…
vjeux Oct 27, 2026
eb58587
fix(gestures): a scroll-edge pan holds nothing while a second finger …
vjeux Oct 27, 2026
3bfd7c3
fix(core): the animator reads no style for a node out of the document
vjeux Oct 27, 2026
3d79388
test(gestures): the watcher's browser test checks it reports moves af…
cixzhang Oct 27, 2026
e79f0f5
Merge #8589 (the watcher's browser test checks moves after the takeov…
cixzhang Oct 27, 2026
e744e52
Merge #8336 (vjeux's two-finger scroll-edge fix; #8589's watcher brow…
cixzhang Oct 27, 2026
2119cfa
Merge #8076 (3bfd7c32da: the animator reads no style for a node out o…
vjeux Oct 27, 2026
d70e066
test(core): the press feedback controller imports nothing from the ge…
vjeux Oct 27, 2026
fbed9d2
refactor(core): the coarse-pointer query moves to the environment que…
vjeux Oct 27, 2026
e585b5b
Merge #8270 (#8076 3bfd7c32da; the coarse-pointer query in utils/) in…
vjeux Oct 27, 2026
c645a98
Merge #8309 (#8076 3bfd7c32da; the coarse-pointer query in utils/) in…
vjeux Oct 27, 2026
fd4aa33
test(gestures): the watcher's browser test names its record type (lint)
cixzhang Oct 27, 2026
cdfff81
Merge #8589 (the watcher browser test's lint fix) into the host line
cixzhang Oct 27, 2026
f51a90c
Merge #8336 (#8589's lint fix) into the arena fixes
cixzhang Oct 27, 2026
1ddb1e2
test(gestures): the watcher's real-touch test reads its end before th…
vjeux Oct 27, 2026
2b148b1
Merge #8315 (#8076 3bfd7c32da; the coarse-pointer query in utils/) in…
vjeux Oct 27, 2026
0701cf6
Merge #8336 (#8076 3bfd7c32da; the coarse-pointer query in utils/) in…
vjeux Oct 27, 2026
6c6da32
Merge #8320 (cixzhang's ea8531cd9b: the scroll-edge hold for a lone f…
vjeux Oct 27, 2026
f877b37
Merge #8356 (#8320 ea8531cd9b; #8076 3bfd7c32da; the coarse-pointer q…
vjeux Oct 27, 2026
d848fde
Merge #8293 (#8320 ea8531cd9b; #8076 3bfd7c32da; the coarse-pointer q…
vjeux Oct 27, 2026
2085cf6
Merge #8358 (#8320 ea8531cd9b; #8076 3bfd7c32da; the coarse-pointer q…
vjeux Oct 27, 2026
76e92e7
test(gestures): gestures attach for every pointer (spec:AST-094 FR43,…
vjeux Oct 27, 2026
16dcb6d
Merge #8320 2fd96979f0 (F2's fY: #8076 3bfd7c32da, the lint fix, the …
vjeux Oct 27, 2026
aeefaa4
fix(Toast): a release moving back springs back, and the retract conti…
vjeux Oct 27, 2026
13581ef
Merge #8121 a5e702673e into uikit/c25-toast-pull-away
vjeux Oct 27, 2026
7880983
test(gestures): a press tracker's fine-pointer profile: no delay, and…
vjeux Oct 27, 2026
e0adb9a
test(gestures): the screen-edge pan stays off under a mouse and a pen…
vjeux Oct 27, 2026
865d0fe
feat(gestures): gestures attach for every pointer (spec:AST-094 FR43,…
vjeux Oct 27, 2026
79abb29
test(gestures): the browser proofs read FR43 under a fine pointer, wi…
vjeux Oct 27, 2026
1aade8a
test(gestures): an in-band touch on a wider element decides at 15 px …
vjeux Oct 27, 2026
3d85c30
fix(gestures): an in-band touch decides at 15 px whatever the element…
vjeux Oct 27, 2026
9d0f6f2
Merge #8061 (3d85c303e6: an in-band screen-edge touch decides at 15 p…
vjeux Oct 27, 2026
11dbebf
Merge #8641 (bec2283d0f: a gesture that cancels itself on a finger's …
vjeux Oct 27, 2026
d9a1e1a
fix(gestures): an in-band touch decides at 10 px on an element wider …
vjeux Oct 27, 2026
e6ab0b9
Merge #8061 (d9a1e1ad19: an in-band touch on an element wider than th…
vjeux Oct 27, 2026
e7b5b3c
Merge #8076 (e6ab0b9cd9: #8061 d9a1e1ad19, an in-band screen-edge tou…
vjeux Oct 27, 2026
c64fe2e
Merge #8270 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641) into #8309
vjeux Oct 27, 2026
3d7ccb7
Merge #8315 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641) into #8336
vjeux Oct 27, 2026
e720276
Merge #8309 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8641's moving…
vjeux Oct 27, 2026
06f3817
Merge the #8589 watcher-test fix (1b6e19f7b0: the real-touch test rea…
vjeux Oct 27, 2026
ff7b7f1
Merge #8336 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8589's watche…
vjeux Oct 27, 2026
5dcdc88
Merge #8356 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8589's watche…
vjeux Oct 27, 2026
f473a8b
Merge #8320 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8589's watche…
vjeux Oct 27, 2026
c13bfec
Merge #8293 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8589's watche…
vjeux Oct 27, 2026
f06bb9b
test(motion): retire the gate that kept the menus off the gestures table
vjeux Oct 27, 2026
bb31b24
Merge #8358 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8589's watche…
vjeux Oct 27, 2026
00e6409
Merge #8360 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8589's watche…
vjeux Oct 27, 2026
c275915
test(gestures): a finger from a browser that sends Touch Events but e…
vjeux Oct 27, 2026
a0beb31
fix(gestures): the host reads no Touch Events where it takes fingers …
vjeux Oct 27, 2026
bcd1387
Merge #8336 (the host takes a finger once where it reads its pointer …
vjeux Oct 27, 2026
d7d9109
Merge #8320 (the host takes a finger once where it reads its pointer …
vjeux Oct 27, 2026
655d296
Merge #8293 (the host takes a finger once where it reads its pointer …
vjeux Oct 27, 2026
d93fe7a
Merge #8356 (the host takes a finger once where it reads its pointer …
vjeux Oct 27, 2026
8300fc4
Merge #8320 3d7fa2ebcb (F2's fZ: #8076 e6ab0b9cd9, the watcher-test f…
vjeux Oct 27, 2026
97e536f
Merge #8121 fc1554456b into uikit/c25-toast-pull-away
vjeux Oct 27, 2026
193ccd5
test(motion): the uikit barrel keeps UIKIT_CLICK for importers writte…
vjeux Oct 27, 2026
4bf2891
fix(motion): the uikit barrel keeps UIKIT_CLICK, with the click guard…
vjeux Oct 27, 2026
b9e0935
Merge #8360 (the uikit barrel keeps UIKIT_CLICK) into the every-point…
vjeux Oct 27, 2026
f5d430e
test(Toast): a sideways touchmove lists its touches, as a browser's does
vjeux Oct 27, 2026
b06261f
Merge #8121 ac46115230 into uikit/c25-toast-pull-away
vjeux Oct 27, 2026
9e328e7
test(interaction-harness): wheel and pen input drivers for every-poin…
vjeux Oct 27, 2026
fad3f13
Merge #8358 (the host takes a finger once where it reads its pointer …
vjeux Oct 27, 2026
f776354
Merge #8360 (the host takes a finger once where it reads its pointer …
vjeux Oct 27, 2026
c621ecc
Merge #8666 (wheel and pen input drivers) into #8665 for FR43 follow-ups
vjeux Oct 27, 2026
dc3264f
Merge #8535 (the backward self-test dates the run by its own clock) i…
vjeux Oct 27, 2026
ad9e942
test(interaction-harness): wheel() resolves once the page has the step
vjeux Oct 27, 2026
97f9d6c
Merge #8666 ad9e94246d (wheel() resolves once the page has the step) …
vjeux Oct 27, 2026
930b586
test(core): Core's root, hooks and utils entries carry no gesture code
vjeux Oct 27, 2026
d53b591
fix(core): the haptic switch's attribute lives in utils, so Core's pu…
vjeux Oct 27, 2026
506f821
test(gestures): a claiming recognizer keeps its blocking touchmove un…
vjeux Oct 27, 2026
bab0eef
fix(gestures): a claiming recognizer's element keeps its blocking tou…
vjeux Oct 27, 2026
b4e7316
test(gestures): a mouse or a pen pan takes no text selection once it …
vjeux Oct 27, 2026
a1a884f
fix(gestures): a mouse or a pen pan takes no text selection once it c…
vjeux Oct 27, 2026
f8926ae
docs(gestures): the README and changeset name the claiming touchmove,…
vjeux Oct 27, 2026
e1a78ef
test(gestures): a right click or a ctrl-click on macOS starts no pres…
vjeux Oct 27, 2026
9a3fd6b
fix(gestures): a ctrl-click on macOS starts no press, as a right clic…
vjeux Oct 27, 2026
3932c06
Merge #8360 (the haptic switch's attribute lives in utils: Core's pub…
vjeux Oct 27, 2026
22e7e32
Merge #8665 f4be8f0f27 into the FR43 harness helper
vjeux Oct 27, 2026
3fb31dd
Merge main (6aea9bda01: #8663 merged, one release policy) into the ex…
vjeux Oct 27, 2026
b246458
test(interaction-harness): pen() presses once the page has presented …
vjeux Oct 27, 2026
efef18e
Merge #8666 b246458d75 (pen() presses once the page has presented two…
vjeux Oct 27, 2026
74fa49b
test(gestures): a pan takes wheel and trackpad scrolling it allows, a…
vjeux Oct 27, 2026
43691eb
feat(gestures): a pan takes wheel and trackpad scrolling it allows, a…
vjeux Oct 27, 2026
170162d
Merge #8076 (main's #8663 rows in motion/README.md) into #8270
vjeux Oct 27, 2026
e001ec5
Merge #8270 (#8076: main's #8663 rows in motion/README.md) into #8309
vjeux Oct 27, 2026
454a26e
Merge #8309 (#8076: main's #8663 rows in motion/README.md) into #8315
vjeux Oct 27, 2026
0c1d99b
Merge #8315 (#8076: main's #8663 rows in motion/README.md) into #8336
vjeux Oct 27, 2026
115d0dc
Merge #8336 (#8076: main's #8663 rows in motion/README.md) into #8320
vjeux Oct 27, 2026
8a1d6a5
Merge #8320 (#8076: main's #8663 rows in motion/README.md; this pull …
vjeux Oct 27, 2026
a487255
Merge #8358 (#8076: main's #8663 rows in motion/README.md) into #8360
vjeux Oct 27, 2026
270d0c7
Merge #8356 (#8076: main's #8663 rows in motion/README.md) into #8358
vjeux Oct 27, 2026
5fc105f
Merge #8293 (#8076: main's #8663 rows in motion/README.md) into #8356
vjeux Oct 27, 2026
26810a1
Merge #8360 (#8076: main's #8663 rows in motion/README.md) into the e…
vjeux Oct 27, 2026
ea3f9f6
Merge #8320 ca71fce61a (F2's fZ2, on #8076 3fb31ddb3e with main 6aea9…
vjeux Oct 27, 2026
bcbd4c5
Merge #8121 c262b9c2d7 into uikit/c25-toast-pull-away
vjeux Oct 27, 2026
ea643b3
Merge #8665 f785debd7b (on #8076 3fb31ddb3e) into the FR43 harness he…
vjeux Oct 27, 2026
5247797
test(gestures): a mouse drag a pan claimed selects no page text, in W…
vjeux Oct 27, 2026
389db4e
fix(core): usePressTracker rebuilds its tracker when its options change
vjeux Oct 27, 2026
5121e0d
fix(gestures): a claimed mouse or pen drag holds selection off docume…
vjeux Oct 27, 2026
b04aafc
test(gestures): a fine-pointer finger's press on an action group ends…
vjeux Oct 27, 2026
ca69c0f
Merge #8665 c1f24bf8ce (the WebKit document-wide selection hold) into…
vjeux Oct 27, 2026
12c3a29
Merge #8360 (only the utils entry is pinned gesture-free) into the ev…
vjeux Oct 27, 2026
a14f660
test(core): only the utils entry is pinned gesture-free; the root and…
vjeux Oct 27, 2026
35ade51
Merge #8665 9adc6f230b into the FR43 harness helper
vjeux Oct 27, 2026
9e30b79
Merge #8665 9adc6f230b (the README cascade, the document-wide drag se…
vjeux Oct 27, 2026
f84ff43
Merge X1's web input drivers (f8ef6ded7f: #8665 9adc6f230b, #8666, #8…
vjeux Oct 27, 2026
e6a403e
Merge #8665 9adc6f230b (gestures attach for every pointer, FR43) into…
vjeux Oct 27, 2026
b2a6225
feat(Toast): Toast's own swipe is a pan on the shared gesture host (s…
vjeux Oct 27, 2026
fbf5e4f
feat(Toast): a mouse swipes a toast too (spec:AST-094 FR43, FR41)
vjeux Oct 27, 2026
0277a9b
test(gestures): a recognizer inside a shadow root gets its finger and…
vjeux Oct 27, 2026
f1c0579
fix(gestures): the host resolves what an input landed on through the …
vjeux Oct 27, 2026
9a4c1f7
test(gestures): the drag selection case reads the page once the selec…
vjeux Oct 27, 2026
504f28e
test(gestures): a recognizer inside a shadow root gets its finger and…
vjeux Oct 27, 2026
c37e309
fix(gestures): the host resolves what an input landed on through the …
vjeux Oct 27, 2026
f15023b
Merge #8336 (a recognizer inside a shadow root gets its finger: the h…
vjeux Oct 27, 2026
a8566b0
Merge #8320 (#8336: a recognizer inside a shadow root gets its finger…
vjeux Oct 27, 2026
82c6d44
Merge #8358 (#8336: a recognizer inside a shadow root gets its finger…
vjeux Oct 27, 2026
7df085b
Merge #8356 (#8336: a recognizer inside a shadow root gets its finger…
vjeux Oct 27, 2026
a016dab
Merge #8293 (#8336: a recognizer inside a shadow root gets its finger…
vjeux Oct 27, 2026
ff63fba
Merge #8360 (#8336: a recognizer inside a shadow root gets its finger…
vjeux Oct 27, 2026
ec12e82
Merge #8665 (#8336: a recognizer inside a shadow root gets its finger…
vjeux Oct 27, 2026
b039876
test(core): the held-dip proofs wait for the dip to finish, not for 2…
vjeux Oct 27, 2026
7ec8508
test(gestures): a wheel gesture stays the pan's that took it when its…
vjeux Oct 27, 2026
8bc80fb
fix(gestures): a wheel gesture is latched to the recognizer that took…
vjeux Oct 27, 2026
34dc8e5
test(gestures): a scroll-edge pan takes a wheel only where no scrolle…
vjeux Oct 27, 2026
2761855
fix(gestures): a scroll-edge pan takes a wheel only past every scroll…
vjeux Oct 27, 2026
8e63860
test(gestures): a recognizer that takes only scroll input arms no pre…
vjeux Oct 27, 2026
49d79ab
fix(gestures): only a recognizer that takes a pointer arms its elemen…
vjeux Oct 27, 2026
55f53d2
Merge #8676 eb82bbdbaf (a pan takes wheel and trackpad scrolling it a…
vjeux Oct 27, 2026
46e25e5
feat(Toast): a trackpad scroll swipes a toast; a mouse wheel's notche…
vjeux Oct 27, 2026
f594126
test(useMenuPress): the trigger keeps the released tolerance on a fin…
vjeux Oct 27, 2026
93f806d
fix(useMenuPress): the trigger takes its tolerance when its press sta…
vjeux Oct 27, 2026
c2b4c56
test(useLongPress): the travel is measured on each axis, as its docum…
vjeux Oct 27, 2026
4e8bd6c
fix(useLongPress): the tolerance is measured on each axis again, as d…
vjeux Oct 27, 2026
f2d4536
test(gestures): a wheel reads a right-to-left scroller by its range, …
vjeux Oct 27, 2026
f8874f8
fix(gestures): a wheel reads a right-to-left scroller by its range, a…
vjeux Oct 27, 2026
8c6b72c
test(gestures): a scroll and its brake see a finger inside an open sh…
vjeux Oct 27, 2026
d618f43
fix(gestures): a scroll and its brake compare a finger along the flat…
vjeux Oct 27, 2026
53b1850
Merge #8336 (the host compares a finger with a scroller along the fla…
vjeux Oct 27, 2026
a69da45
Merge #8320 (#8336: the host compares a finger with a scroller along …
vjeux Oct 27, 2026
b28a3ee
Merge #8293 (#8336: the host compares a finger with a scroller along …
vjeux Oct 27, 2026
9b34a95
Merge #8356 (#8336: the host compares a finger with a scroller along …
vjeux Oct 27, 2026
3943bc8
Merge #8360 (the menu trigger takes its tolerance when its press star…
vjeux Oct 27, 2026
ca21fa9
Merge #8358 (useLongPress measures its tolerance on each axis again, …
vjeux Oct 27, 2026
a73074c
Merge #8665 (#8360: the menu trigger takes its tolerance at the press…
vjeux Oct 27, 2026
04c1f92
test(gestures): a claimed pen's stylus touchend is cancelled, as a fi…
vjeux Oct 27, 2026
777df79
fix(gestures): a claimed pen's stylus touchend is cancelled, as a fin…
vjeux Oct 27, 2026
4026790
Merge #8665 (a claimed pen's stylus touchend is cancelled, as a finge…
vjeux Oct 27, 2026
b59c4ac
refactor(useLongPress): the per-press tolerance stays off the public …
vjeux Oct 27, 2026
94a9e09
docs(gestures): the host's header and the host-owner changeset descri…
vjeux Oct 27, 2026
18b3af2
test(gestures): a right-to-left scroller a pixel short of its end rea…
vjeux Oct 27, 2026
db8ba98
fix(gestures): a wheel reads a scroller a pixel short of either end a…
vjeux Oct 27, 2026
9787d95
test(gestures): only a recognizer a wheel can drive adds the wheel li…
vjeux Oct 27, 2026
b9b5f43
fix(gestures): only a pan or a pinch that allows scroll input adds th…
vjeux Oct 27, 2026
2c2de6f
Merge #8665 6b3e60d3d8 (the host's header and the host-owner changese…
vjeux Oct 27, 2026
f847518
test(gestures): the screen-edge pan is locked to a finger; a widened …
vjeux Oct 27, 2026
2f76d32
fix(gestures): the screen-edge pan is a finger's only; its options ta…
vjeux Oct 27, 2026
59f54de
test(selectionLock): a finger's and a pen's hold take the lock under …
vjeux Oct 27, 2026
a46af15
fix(selectionLock): a finger's and a pen's hold take the lock under a…
vjeux Oct 27, 2026
7636814
test(gestures): a pan takes wheel and trackpad scrolling by default, …
vjeux Oct 27, 2026
e1a4dcb
fix(gestures): a pan takes wheel and trackpad scrolling by default, a…
vjeux Oct 27, 2026
1b7727b
Merge #8665 42baf0feb9 (the screen-edge pan locked to a finger; a fin…
vjeux Oct 27, 2026
b6bee2e
fix(gestures): the screen-edge pan takes no wheel or trackpad scrolli…
vjeux Oct 27, 2026
fba70ca
Merge #8676 1fabc498b9 (a pan takes wheel and trackpad scrolling by d…
vjeux Oct 27, 2026
a1a606b
fix(Toast): a mouse wheel swipes a toast too, as merged FR43 has a pa…
vjeux Oct 27, 2026
40530a0
test(clickGuard): a guard whose view goes away lets its window run ou…
vjeux Oct 27, 2026
b0815d0
test(gestures): a cancelled mouse or pen press lifts the document-wid…
vjeux Oct 27, 2026
5e9c753
fix(gestures): a click guard whose view went away drops without touch…
vjeux Oct 27, 2026
8c1d1fc
test(gestures): a wheel every taker declined is the page's from its f…
vjeux Oct 27, 2026
c4742e7
fix(gestures): a wheel every taker declined ends at once and scrolls …
vjeux Oct 27, 2026
f447b8c
Merge #8665 2d365a7b51 (a click guard whose view went away drops with…
vjeux Oct 27, 2026
49db6e8
Merge #8676 0e2342bcb5 (a wheel nobody takes stays the page's; #8665 …
vjeux Oct 27, 2026
90a56f0
fix(Toast): a scroll the page can still take stays the page's, and on…
vjeux Oct 27, 2026
8ce3367
test(gestures): a scroll-only claimer makes no touch listener cancell…
vjeux Oct 27, 2026
75d58a5
fix(gestures): only a recognizer that takes a finger or a pen makes t…
vjeux Oct 27, 2026
cc39928
docs(Toast): each Effect in the banner swipe names the system it sync…
vjeux Oct 27, 2026
fc36ef0
test(clickGuard): no guard outlives the test that armed it
vjeux Oct 27, 2026
c2856f6
fix(test-utils): the shared setup disarms every click guard as each t…
vjeux Oct 27, 2026
97e8b8c
test(gestures): a mouse wheel's notches release still, a trackpad's s…
vjeux Oct 27, 2026
6c63957
fix(gestures): a mouse wheel's notches release still, a trackpad's sc…
vjeux Oct 27, 2026
9de6c58
Merge #8665 9960efe095 (no click guard outlives its test; a cancel li…
vjeux Oct 27, 2026
3846b6a
Merge main 70ea85903c into #8073
vjeux Oct 28, 2026
ca2543d
Merge remote-tracking branch 'origin/main' into HEAD
cixzhang Oct 28, 2026
10c62f5
test(core): a mouse press ending early leaves a held row to its owner
vjeux Oct 28, 2026
fdf8766
fix(core): a press ended early clears its paint through the one writer
vjeux Oct 28, 2026
63128d3
test(core): pressFeedback.test.ts drops its unused durationToMs import
vjeux Oct 28, 2026
f24e872
Merge #8446 ca2543df75 and #8073 63128d3530 into #8076
vjeux Oct 28, 2026
94362e0
Merge main (70ea8590: #8045, #8046 landed)
cixzhang Oct 28, 2026
b55f29c
Merge main (70ea8590: #8045, #8046 landed)
cixzhang Oct 28, 2026
6f994bc
docs(core): the gestures README names both writers of the press attri…
vjeux Oct 28, 2026
97254a9
Merge #8076 6f994bcdfb into #8360
vjeux Oct 28, 2026
243ff3e
docs(core): pressFeedback says paintPress writes the presses it track…
vjeux Oct 28, 2026
1ed9855
Merge #8360 73e90c2fa6 into #8665
vjeux Oct 28, 2026
b6034ad
Merge main 84e8552562 into #8666 (harness files: main's #8045 text wi…
vjeux Oct 28, 2026
55b65dd
test(gestures): under a fine pointer the host drops its page listener…
vjeux Oct 28, 2026
29c99c1
fix(gestures): under a fine pointer the host drops its page listeners…
vjeux Oct 28, 2026
860be6b
docs(spec): AST-094 FR41 says a claimed mouse or pen drag suppresses …
vjeux Oct 28, 2026
17c7870
test(gestures): a pen's barrel button starts no press, as the gesture…
vjeux Oct 28, 2026
88a95ec
fix(gestures): a pen's barrel button starts no press
vjeux Oct 28, 2026
973c631
docs(gestures): the README says what a pen does, and how the host lis…
vjeux Oct 28, 2026
303cac3
docs(changeset): the press-tracking changeset names both writers of t…
vjeux Oct 28, 2026
08a2a28
docs(interaction-harness): the engine-limits table aligns again, and …
vjeux Oct 28, 2026
420b665
test(useMenuPress): a finger held on the trigger keeps FR29's drift a…
vjeux Oct 29, 2026
0ada905
fix(useMenuPress): a finger held on the trigger keeps FR29's drift al…
vjeux Oct 29, 2026
00da8f7
chore(gestures): the gesture files on this line have no unused bindings
vjeux Oct 29, 2026
955f494
test(gestures): a rotation re-based on every change releases at its r…
vjeux Oct 29, 2026
ea2dc0d
fix(gestures): a re-based rotation keeps its release velocity
vjeux Oct 29, 2026
b548954
test(motion): the Reduce Motion late-dip proof reads what the dip ani…
vjeux Oct 29, 2026
a075bcc
test(gestures): a finger inside an open shadow root is down in its sc…
vjeux Oct 29, 2026
7e6d12e
fix(gestures): a finger inside an open shadow root is compared along …
vjeux Oct 29, 2026
f91b558
test(gestures): an element stays an action group while any of its att…
vjeux Oct 29, 2026
965905b
fix(gestures): an element is an action group while any of its attachm…
vjeux Oct 29, 2026
6b8f098
test(gestures): a tap on a moving sheet's shadow-root content reaches…
vjeux Oct 29, 2026
16356f3
fix(gestures): the presented hit test descends into open shadow roots
vjeux Oct 29, 2026
d632cae
test(gestures): no touch-action rule stays once the last marked eleme…
vjeux Oct 29, 2026
cd05643
fix(gestures): a document's or shadow root's touch-action rules go wi…
vjeux Oct 29, 2026
91e5273
docs(gestures): presented hit testing names its review condition, and…
vjeux Oct 29, 2026
d3411f0
docs(gestures): the README and the barrel point Lab at @astryxdesign/…
vjeux Oct 29, 2026
65465d1
docs(core): the input stream's notes name the stops it fixes, what st…
vjeux Oct 29, 2026
d120ef2
docs(changeset): the build changeset names the treeshakeCompensation …
vjeux Oct 29, 2026
545fa8b
test(gestures): real-touch proofs for a still finger's sub-pixel jitt…
vjeux Oct 29, 2026
1768f21
test(gestures): a retargeted tap with only watchers attached activate…
vjeux Oct 29, 2026
bd2f129
Merge #8360 75392b296a into #8665
vjeux Oct 29, 2026
da78b29
test(gestures): an element stays a group while any of its gestures is…
vjeux Oct 29, 2026
3ac129d
Merge #8665 4362f354b5 into #8676
vjeux Oct 29, 2026
22679c2
test(gestures): a watcher pan stays off the wheel, a first wheel alre…
vjeux Oct 29, 2026
fd2da6b
fix(gestures): a watcher pan stays off the wheel, a first wheel alrea…
vjeux Oct 29, 2026
097caa7
docs(gestures): the wheel notes say a watcher never takes the wheel, …
vjeux Oct 29, 2026
0d3df64
Merge #8666 08a2a28331 into #8676
vjeux Oct 29, 2026
c3cc441
docs(core): the input stream's notes no longer list click among the g…
vjeux Oct 29, 2026
e4ee301
Merge #8360 045f666f7a into #8665
vjeux Oct 29, 2026
6a34d16
test(gestures): under a fine pointer an armed press cancels a claimed…
vjeux Oct 29, 2026
7cc3130
fix(gestures): under a fine pointer an armed press cancels a claimed …
vjeux Oct 29, 2026
cba466c
Merge #8360 045f666f7a (the re-folded gesture foundation, which carri…
vjeux Oct 29, 2026
7506895
Merge #8121 02a256a958 into uikit/c25-toast-pull-away
vjeux Oct 29, 2026
dcdd856
test(gestures): a press claimed at its own pointerdown keeps the page…
vjeux Oct 29, 2026
180fff5
Merge #8676 fb86ce41bf (the wheel input, on #8665 4362f354b5) into ui…
vjeux Oct 29, 2026
ebaf4a8
Merge #8144 ecf766db99 into uikit/c25-toast-every-pointer
vjeux Oct 29, 2026
99757b8
fix(gestures): a press that claims at its own pointerdown keeps the p…
vjeux Oct 29, 2026
4ddc315
docs(gestures): the host's notes, the selection test and FR41 say wha…
vjeux Oct 29, 2026
af66239
docs(spec): FR41 says what a claimed drag does with the page's select…
vjeux Oct 29, 2026
010a495
Merge #8665 c6c02fcf2b into #8676
vjeux Oct 29, 2026
147d1de
Merge #8676 35445d0c5e (the wheel input, on #8665 c6c02fcf2b) into ui…
vjeux Oct 29, 2026
bbb4d74
docs(Toast): the record states the notification presentation
vjeux Oct 29, 2026
fc370d4
Merge #8121 2b59f30346 into uikit/c25-toast-pull-away
vjeux Oct 29, 2026
c056718
Merge #8144 260694b4f1 into uikit/c25-toast-every-pointer
vjeux Oct 29, 2026
0e4fe36
docs(Toast): the record states that every pointer swipes a toast
vjeux Oct 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/build-stylex-cross-file-consts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/build': patch
---

[fix] `astryxStylex` resolves `defineConsts` values read from another file. With the `{stylexOptions}` form (the one Storybook uses), a file that read only constants from a `.stylex.ts` module lost that import once StyleX compiled it, so the constants never reached the CSS: a constant used as a media-query key failed the build ("Invalid empty selector") and one used as a value shipped as a custom property nothing declares. In either form, a constant defined on the other side of the layer split, or in an Astryx package (compiled with the library class-name prefix) and read from an app file (compiled with its own), stayed unresolved. The `{stylexOptions}` form now passes StyleX `treeshakeCompensation: true` by default (before, its babel pass ran with StyleX's default, `false`), as the plugin form already does; pass `treeshakeCompensation: false` in `stylexOptions` to restore the old behavior.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/click-guard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the gesture recognizers and the menu press model share one guard for the browser's click after a gesture that already acted, swallowing it for 400ms or until the next press. Keyboard and assistive-technology clicks (`detail` 0) always pass.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-arena-moving-cancel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: a gesture that cancels itself on a finger's move (a long press dragged past its tolerance) keeps that finger claimed until it lifts, so the page never takes the drag over midway; a resting finger is still given back when its gesture is cancelled. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-browser-negotiation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: touch-action derivation, the native scroll probe and haptics for the gesture system. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-hook-fixes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the gesture hooks call nothing back after unmount; `usePressTracker` brakes with the host by default and keeps one tracker, so an option change or a new ref never drops a press in progress; the recognizer's arena plumbing is `protected`. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-host-fixes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: gesture host fixes from review. A page scroll under a still finger keeps the press and its click; watchers and touches nothing can claim get passive listeners only; a claimed pen holds only its own stylus touches; an element's own `touch-action` is never widened; slotted content scrolls with its shadow-tree scroller. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-host-owner.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the gesture host becomes the one document-level touch owner: the finger count, touch gates, and a kept press for continuous-tracking controls, whose element gets `touch-action: manipulation` where the pointer is coarse. A scroll lock's page hold and the finger-scroll watch keep their own listeners and ask the host only about the touches it owns. A second finger fails a one-finger pan that has not claimed, so the page can pinch. A scroll-edge pan holds a lone finger from the first move that pulls away from an edge every scroller under it is at, so those moves are cancelled before it begins; with a second finger anywhere on the screen the page keeps its pinch. The host follows the primary pointer when it changes; what it attaches under a fine pointer is in the every-pointer changeset (`gestures-every-pointer.md`). A press tracker whose hold acts (a stepper's hold-repeat) can bring a selection lock for its presses, as a recognizer can. Internal, for the touch components that adopt them; not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-host.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the gesture system's DOM host (claims, click suppression, the browser's takeover, the pointer behind a contact). Not exported from the package entry point.

@vjeux
2 changes: 1 addition & 1 deletion .changeset/gesture-pan.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
'@astryxdesign/core': patch
---

[chore] Internal: the pan gesture recognizer, with UIKit's measured hysteresis and velocity filter. Not exported from the package entry point; no component uses it yet.
[chore] Internal: the pan gesture recognizer, with UIKit's measured hysteresis and velocity filter. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-press-tracking.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: UIControl press tracking with control and cell profiles and the gesture hooks. `paintPress` in `utils/pressFeedback.ts` writes `data-astryx-press` for every press it tracks; the action-group tracker writes its groups' presses itself. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the gesture system's README for component authors, with its browser proof in Chromium and WebKit.

@vjeux
2 changes: 1 addition & 1 deletion .changeset/gesture-recognizer-core.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
'@astryxdesign/core': patch
---

[chore] Internal: the gesture recognizer core for touch presentations: UIKit's recognizer state machine and the arena that settles which recognizer owns a touch. Not exported from the package entry point; no component uses it yet.
[chore] Internal: the gesture recognizer core for touch presentations: UIKit's recognizer state machine and the arena that settles which recognizer owns a touch. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-recognizer-fixes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: gesture recognizer and arena fixes from review; a pan claims nothing before it begins at 10 pt; one velocity tracker for every gesture (`spec:AST-100`: UIKit's measured blend, a scrolling surface's release through the pan's `scrollVelocity()`, and FR2's release rules). Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-swipe-pinch-rotation-edge-hover.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: swipe, pinch, rotation, screen-edge pan and hover gesture recognizers. Not exported from the package entry point.

@vjeux
2 changes: 1 addition & 1 deletion .changeset/gesture-tap-long-press.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
'@astryxdesign/core': patch
---

[chore] Internal: tap and long-press gesture recognizers with UIKit's measured thresholds. Not exported from the package entry point; no component uses them yet.
[chore] Internal: tap and long-press gesture recognizers with UIKit's measured thresholds. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-watcher.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: a recognizer created with `claimsTouches: false` is a watcher: passive listeners only, simultaneous with every recognizer, and it follows a touch the browser takes for a scroll to the lift. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gestures-every-pointer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: gestures attach for every pointer, a mouse, a pen and a finger alike (AST-094 FR43). Under a fine primary pointer an element that uses a gesture keeps one passive `pointerdown` listener (a recognizer that claims a moving finger also keeps its blocking `touchmove`, and a kept press gets its own only during a press), the page's listeners last only a press and go at a window blur, and a hovering mouse or pen reaches a hover recognizer through two passive listeners on its element. A pen's barrel button, like a right click, starts no press. A right click or a ctrl-click on macOS starts no press. A finger's or a pen's hold that does something keeps text unselected under any primary pointer, a touchscreen laptop's included, while a mouse keeps its released behavior (FR41). A mouse or pen drag that a recognizer claims takes no text selection from then on, anywhere on the page, and a finger is read once where the browser sends Touch Events without exposing `ontouchstart`. A press tracker takes a mouse press as a press, painting at once with no scroll brake. The screen-edge pan is a finger's only: it stays off under a mouse, a trackpad and a pen, and takes no `allowedPointerTypes`, and `perEventPointer` is accepted and does nothing. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gestures-wheel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: a pan takes wheel and trackpad scrolling by default, a mouse wheel's notches included (`allowedScrollTypes`, UIKit's `allowedScrollTypesMask`; `[]` opts out), along its own axis and after the scrollers under the pointer; the screen-edge pan takes none; and a pinch takes a ctrl-wheel, as a trackpad pinches (AST-094 FR43). A watcher pan never takes the wheel, and a wheel another handler already prevented stays the page's. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/input-stream.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[fix] The touch press feedback and the gesture recognizers now hear page-wide input through one shared stream on the window's capture phase, so an app's window-capture `stopPropagation`, or a document-capture `stopImmediatePropagation` registered before Core, no longer hides a touch from them. A recognizer that must claim a touch mid-gesture still needs the touch to reach its element. Each event type's listener is passive unless a subscriber cancels it (the gesture host's `touchend` and `contextmenu` while a claiming recognizer or press tracker is attached, the page hold's `touchmove` while it holds, and the click guard's `click` once it first arms), so a page of pressables registers no listener that can hold a scroll.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/long-press-one-source.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: `useLongPress` (ContextMenu's long press, and the held finger that opens a menu from its trigger) takes its default duration and tolerance, 500ms and 10px on either axis, from the same source as the long-press gesture recognizer. No behavior changes.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/menu-trigger-drift.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[fix] A finger held on a DropdownMenu trigger may drift up to 13px on each axis and still open the menu under every primary pointer, a phone's, a tablet's and a touchscreen laptop's alike, as AST-094 FR29 allows; it cancelled past 10px. No menu, row or trigger reads the pointer query.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/presented-hit-testing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] On iOS, a touch on an element the compositor animator is moving reaches what is drawn: the animator reports each moving element's offset from its layout box, and the gesture host sends the touch, press bounds and the tap's click there instead of to the layout position iOS WebKit hit-tests.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/reduced-motion-record.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: Reduce Motion for the touch presentations follows design:reduced-motion beyond the animator too. `reducedMotionFade()` gives code beside the animator the animator's own fade (an opacity-only 200 ms cross-fade on a coarse pointer or after a touch release, at once on any other pointer), `animator.reducedMotion()` reports which form a change takes for feedback that plays no fade of its own, and `reducedMotion.stylex.ts` holds the fade's constants for StyleX transitions. The fade's length is not a theme motion role. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/toast-flick-any-height.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[fix] A quick flick toward a toast's edge now dismisses it whatever its height. Before, a flick also had to travel 48 px (the distance that already dismisses a one-line toast), so on any toast up to 120 px tall a flick could only snap back; and its speed was timed by when the browser handled the touches rather than when they happened, which in browsers that deliver moves on the next frame made a quick flick look up to twice as slow.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/toast-own-swipe-shared-pan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[feat] A mouse now swipes a toast too, as a finger and a pen do: once the swipe takes a mouse or pen drag, the text selection it started is cleared and none follows. A mouse wheel or a trackpad scroll toward the edge moves the card and dismisses it the same way, once nothing under the pointer, the page beneath included, can scroll that way. Under reduced motion, a notification-presentation toast that a mouse, a trackpad or a pen releases now changes at once where the primary pointer is fine; a finger's release still cross-fades. Toast's own swipe (with a fine pointer, or `presentation="toast"`) now runs on the shared gesture system, as the notification swipe already does: it begins after 10 px of travel toward the edge instead of 8, a second finger no longer cancels a swipe that has begun (lifting the first finger still dismisses past the distance or as a flick), and a second finger that lands before the swipe begins leaves the touch to the page, so it can pinch. The card's feedback and release rule are unchanged.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/toast-swipe-follows-banner.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[feat] Toast takes `presentation`, on `ToastViewport` (every toast it shows) and on `Toast`: `'adaptive'` (the default), `'toast'` or `'notification'`. Under `'adaptive'`, a toast under a finger (a coarse primary pointer, on every touch device, iOS and Android alike) now follows iOS notification banners, as `'notification'` does on every device. The card stays still for the first 14 px of finger travel and then follows at 0.55 of the finger, with no jump. On release, a quick flick toward the edge dismisses even when it barely moved the card, as does a drag that leaves the card far enough out; a release moving back toward rest, or anything else, springs the card back. However a toast is dismissed (a swipe, the close button, the timeout, the app's dismiss), the card leaves as the banner does: it slides past its edge from where it is, continuing a flick's speed, without fading, and its row closes after it. While the card springs back or leaves, touches pass through to the page. Previously a toast under a finger followed Toast's own swipe, the card moving with the finger as it faded and shrank, and faded out when dismissed: `presentation="toast"` keeps that on every device. With a fine pointer the swipe and exit look as they did; a flick now reads the speed at the lift from the shared release filter instead of the drag's average, so a slow drag ending in a quick throw dismisses and a pen that rests before it lifts does not flick. Under reduced motion nothing slides, springs or drifts: on a touch screen the toast fades in place before its row closes, and with a mouse or keyboard it changes at once.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/toast-swipe-pull-away.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[fix] Under a finger (a coarse primary pointer, on every touch device), a Toast swipe that turns back away from the toast's edge now stretches the card the same way, at about half the finger's travel past the first 14 px, and springs it back on release, as iOS notification banners do; a release there never dismisses, however fast the finger flicks back toward the edge. Before, once the swipe had the touch, such a drag moved neither the card nor the page. With a fine pointer nothing changes.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/touch-selection-lock-gestures.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the gesture host applies a recognizer's own `selectionLock` to that recognizer's contact and imports no lock itself; a long press brings one only when it has a hold (a `minimumPressDuration` above 0), and `selectionLock: null` opts out. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/touch-selection-lock.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[fix] Where the primary pointer is fine (a mouse, a trackpad, a touchscreen laptop, a desktop pen tablet), the press feedback controller no longer registers a touch listener: it reads the primary pointer at the first finger or pen press and keeps its `touchcancel` listener only while that pointer is coarse.

@vjeux
2 changes: 1 addition & 1 deletion .changeset/uikit-constants-table.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
'@astryxdesign/core': patch
---

[chore] Internal: the UIKit constants table for touch presentations (springs, scroll physics, timing curves and navigation values), each value with its source and a checked list of the simulator measurements still owed. Not exported from the package entry point; no component reads it yet.
[chore] Internal: the UIKit constants table for touch presentations (springs, scroll physics, timing curves and navigation values), each value with its source and a checked list of the simulator measurements still owed. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/uikit-motion-animator-pseudo-element.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the touch presentations' animator drives a pseudo-element such as a dialog's ::backdrop: a static filling animation holds its value after a curve ends and after `set`, a custom property on its host promotes it, and a Reduce Motion dip borrows and hands back the pseudo-element's own opacity. Not exported from the package entry point.

@vjeux
2 changes: 1 addition & 1 deletion .changeset/uikit-motion-animator.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
'@astryxdesign/core': patch
---

[chore] Internal: a compositor animator for touch presentations. It plays UIKit's springs, and scroll coasts (built by a separate coast module, so a surface that never coasts does not carry them; `decay` plays momentum, and sends a spring back from past an edge through the Reduce Motion policy: a cross-fade on a coarse pointer or after a touch release, at once elsewhere) as Web Animations on translate, rotate, scale and opacity, so they keep running while JavaScript is busy, and reads values and velocities back from the curves for interruption, retargeting and Reduce Motion cross-fades. Not exported from the package entry point; no component uses it yet.
[chore] Internal: a compositor animator for touch presentations. It plays UIKit's springs, and scroll coasts (built by a separate coast module, so a surface that never coasts does not carry them; `decay` plays momentum, and sends a spring back from past an edge through the Reduce Motion policy: a cross-fade on a coarse pointer or after a touch release, at once elsewhere) as Web Animations on translate, rotate, scale and opacity, so they keep running while JavaScript is busy, and reads values and velocities back from the curves for interruption, retargeting and Reduce Motion cross-fades. Not exported from the package entry point.

@vjeux
2 changes: 1 addition & 1 deletion .changeset/uikit-motion-math.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
'@astryxdesign/core': patch
---

[chore] Internal: the spring, decay, rubber-band and projection math of UIKit for touch presentations, as pure functions checked against an independent integration and against values read from UIKit. Not exported from the package entry point; no component uses it yet.
[chore] Internal: the spring, decay, rubber-band and projection math of UIKit for touch presentations, as pure functions checked against an independent integration and against values read from UIKit. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/uikit-motion-use-animator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: useAnimator, a React wrapper around the touch presentations' animator that never re-renders per frame, and browser proofs on the interaction harness that the animator's motion keeps running through a blocked main thread in Chromium and WebKit. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/use-finger-scroll.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: `useFingerScroll(scroller)` tells a finger's scroll from the program's, and the gestures README gains a guide to migrating a raw-touch drag onto the recognizers. Internal to the touch components: not exported from the package entry point or the gestures barrel.

@vjeux
Loading
Loading