Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1052 commits
Select commit Hold shift + click to select a range
50f39fb
Merge cixzhang's #8309 head (dd8e9462f5: #8076 ee34b25079 and main 5b…
vjeux Oct 26, 2026
d0200c3
Merge main (5b691cda71) into #8270, as cixzhang's #8309 does
vjeux Oct 26, 2026
e84b0ad
Merge #8309 (her third pass folded: #8076 ee34b25079, main 5b691cda71…
vjeux Oct 26, 2026
f8faec3
Merge cixzhang's #8315 head (b9c536ffab: her #8309 merge)
vjeux Oct 26, 2026
9d5c20a
fix(interaction): a traced waitForRest skips scroll- and view-timelin…
cixzhang Oct 26, 2026
b4234d7
Merge #8505 (9320644717: a wait keeps waiting while the action's anim…
vjeux Oct 26, 2026
cb907b7
fix(interaction): the busy verdict judges a sparse cast from its firs…
vjeux Oct 26, 2026
462d82c
fix(interaction): a scroll- or view-timeline animation does not hold …
cixzhang Oct 26, 2026
8fc7f2e
docs(motion): the animator's SYNC list and test header name only file…
cixzhang Oct 26, 2026
0543b78
Merge #8446 (9d5c20a8: the harness line on #8505's waits) into useAni…
vjeux Oct 26, 2026
79dc151
Merge #8055 (8fc7f2ef: coast says a transition lands at once on a fin…
cixzhang Oct 26, 2026
1fde85a
docs(core): the gestures README says a cell's highlight waits only in…
vjeux Oct 26, 2026
a4b10f9
Merge 79dc151e53 (#8056 on #8055's 8fc7f2ef: the Reduce Motion change…
cixzhang Oct 26, 2026
1fe597d
refactor(core): the animator's Reduce Motion planner is its own module
cixzhang Oct 26, 2026
b33685a
refactor(core): play(curves) and pseudo-element support move to stack…
cixzhang Oct 26, 2026
fa62e29
feat(core): the animator plays any closed-form curve
cixzhang Oct 26, 2026
2cb04fe
feat(core): the animator drives a pseudo-element
cixzhang Oct 26, 2026
803e6d6
test(interaction): the long-task self-test judges the harness read, n…
vjeux Oct 26, 2026
fa8c8e2
Merge #8505 (462d82caaf: a scroll- or view-timeline animation does no…
vjeux Oct 26, 2026
1ffb20e
Merge branch 'interaction-harness-3-frames' into uikit/f3-recorder-st…
vjeux Oct 26, 2026
a9be409
fix(interaction): a scroll-driven animation at its end is not a finis…
cixzhang Oct 26, 2026
c2bc85e
Merge 2cb04fe6f6 (#8522, the top of #8056's split: core, play(curves)…
cixzhang Oct 26, 2026
c97ab3d
Merge f1b4c05434 (main) as a dependency
cixzhang Oct 26, 2026
c84803b
Merge #8505 (a9be409b35: a scroll-driven animation at its end is not …
vjeux Oct 26, 2026
84ea877
Merge main (30a4a2b3: #8055 landed) into the animator's Reduce Motion…
cixzhang Oct 26, 2026
3cb158a
Merge #8056 (main with #8055 landed) into play(curves)
cixzhang Oct 26, 2026
f0819b9
Merge #8521 (main with #8055 landed) into pseudo-element support
cixzhang Oct 26, 2026
f9f1162
Merge f0819b956e (#8522 with main through #8055's landing) as a depen…
cixzhang Oct 26, 2026
dcfecc9
Merge #8067 (f9f1162c: #8522, main through #8055) into the motion-rol…
cixzhang Oct 26, 2026
2267ee5
Merge #8258 (dcfecc93: #8067 f9f1162c, main through #8055) into the e…
cixzhang Oct 26, 2026
b84bcfc
refactor(core): drop the animator's unused TRAVEL alias
cixzhang Oct 26, 2026
648f355
Merge #8056 (the unused TRAVEL alias goes) into play(curves)
cixzhang Oct 26, 2026
c494681
Merge #8521 (the unused TRAVEL alias goes) into pseudo-element support
cixzhang Oct 26, 2026
24336ad
Merge 2267ee5154 (#8076 with main through #8055's landing, via #8067 …
cixzhang Oct 26, 2026
739aa81
Merge dbcfc30f7a (main) as a dependency
cixzhang Oct 26, 2026
09aa3f1
Merge #8076 (2267ee5154: #8073's fold with her b600a78a, main through…
vjeux Oct 26, 2026
1346af4
docs(core): the gestures README gives a control's release the shared …
vjeux Oct 26, 2026
02ff48f
fix(interaction): a watch stamps after the newest entry, and an exit …
cixzhang Oct 26, 2026
a9208c4
test(core): the FR30 own-scroll case moves its finger past the press …
cixzhang Oct 26, 2026
1d7254a
Merge #8309 (a9208c41: #8076 2267ee51, main through #8055) into the g…
cixzhang Oct 26, 2026
7847980
test(core): the animator's tests drop an unused import and binding
cixzhang Oct 26, 2026
c4d1994
Merge #8056 (unused test import and binding) into play(curves)
cixzhang Oct 26, 2026
374ab86
Merge #8521 (unused test import and binding) into pseudo-element support
cixzhang Oct 26, 2026
528dd2d
fix(interaction): after an on-screen start, the busy verdict judges t…
vjeux Oct 26, 2026
e05cdd1
Merge #8505 (02ff48fafe: a watch stamps after the newest entry, and a…
vjeux Oct 26, 2026
e1dfdff
fix(gestures): the arena reaches deliverBeganElsewhere through intern…
cixzhang Oct 26, 2026
b814769
fix(core): under Reduce Motion a move lands only while the element is…
cixzhang Oct 26, 2026
b3f68de
Merge #8056 (a move lands only while transparent) into play(curves)
cixzhang Oct 26, 2026
f866874
Merge #8521 (a move lands only while transparent) into pseudo-element…
cixzhang Oct 26, 2026
3190b1a
docs(core): a pseudo-element's hold lasts while the pseudo-element ex…
cixzhang Oct 26, 2026
d1b07a4
Merge #8045 (e05cdd163a, on #8505 02ff48fafe) into the recorder stand…
vjeux Oct 26, 2026
595b5c3
Merge #8076 (1346af4990: the README's control release and test list, …
vjeux Oct 26, 2026
14e78e0
Merge #8270 (09aa3f1883 with #8076 1346af4990: the README's control r…
vjeux Oct 26, 2026
363a213
Merge #8309 (#8270 09aa3f1883, #8076 1346af4990) into #8315
vjeux Oct 26, 2026
51688cd
fix(interaction): waitForAnimation and a watch's started() stand down…
vjeux Oct 26, 2026
274ee1b
fix(core): a handle's stop freezes its waiting Reduce Motion travel w…
cixzhang Oct 26, 2026
2f3d6ef
Merge #8056 (a handle's stop freezes its waiting travel) into play(cu…
cixzhang Oct 26, 2026
bb79455
Merge #8521 (handle stop, scale precedence) into pseudo-element support
cixzhang Oct 26, 2026
23e9ead
fix(core): play lets an explicit axis win over scale; the README pres…
cixzhang Oct 26, 2026
93c611d
Merge main (#8505 landed) into the storyboards
cixzhang Oct 26, 2026
79aa498
Merge #8348 (main with #8505 landed) into the frame evidence
cixzhang Oct 26, 2026
63218c8
Merge #8045 (main with #8505 landed) into the recorder stand-down
cixzhang Oct 26, 2026
0400cb2
Merge #8446 (63218c8a: the harness line on main 42a30b47 with #8505) …
cixzhang Oct 26, 2026
6c68865
Merge 0400cb2e4d (#8076 with main through #8055's landing) as a depen…
cixzhang Oct 26, 2026
a865057
Merge 6c688655c6 (#8270 with #8076 0400cb2e and main 42a30b47) as a d…
cixzhang Oct 26, 2026
d6a5845
Merge #8309 (a8650574: #8076 0400cb2e with the harness line on main) …
cixzhang Oct 26, 2026
be661e2
docs(core): a reopened dialog's backdrop is set right after showModal()
cixzhang Oct 26, 2026
7f36229
fix(core): a carried Reduce Motion move keeps its own call
cixzhang Oct 26, 2026
72c25bd
Merge #8056 (a carried move keeps its own call) into play(curves)
cixzhang Oct 26, 2026
3153b09
Merge #8521 (a carried move keeps its own call) into pseudo-element s…
cixzhang Oct 26, 2026
67fc000
test(gestures): the host never writes a touch-action wider than the a…
vjeux Oct 26, 2026
0648297
fix(gestures): the host reads an author's touch-action in the next fr…
vjeux Oct 26, 2026
610b9c1
test(gestures): the press tracker bundle carries only the UIKit group…
vjeux Oct 26, 2026
672ed7d
perf(gestures): the press tracker imports only the UIKit groups it reads
vjeux Oct 26, 2026
dfcb2b4
test(gestures): a press tracker disabled under the finger reports not…
vjeux Oct 26, 2026
fbf8258
fix(gestures): a press tracker disabled under the finger ends its pre…
vjeux Oct 26, 2026
8aa1d23
Merge #8309 (the next-frame author read; the press tracker's per-grou…
vjeux Oct 26, 2026
500f3ca
docs(gestures): the haptic switch's label rule says what the code does
vjeux Oct 26, 2026
5ad1170
fix(interaction): the WebKit container runs as the invoking user unde…
cixzhang Oct 26, 2026
49460a6
docs(interaction): a traced waitForAnimation on a CSS @keyframes anim…
cixzhang Oct 26, 2026
1a40c3a
fix(core): a held call still finds its start; a caught dismissal fade…
cixzhang Oct 26, 2026
f4e8812
Merge #8056 (held start, take-over, will-change) into play(curves)
cixzhang Oct 26, 2026
835e4e4
Merge #8521 (held start, take-over, will-change) into pseudo-element …
cixzhang Oct 26, 2026
eef7532
test(gestures): the host marks a recognizer's touch-action under a ru…
vjeux Oct 26, 2026
38ea7d9
fix(interaction): rootless docker runs the WebKit container without -…
cixzhang Oct 26, 2026
7c8aea9
test(gestures): in a browser, the host's touch-action is in force fro…
vjeux Oct 26, 2026
fd4d2c4
perf(gestures): the host marks a recognizer's touch-action under a ru…
vjeux Oct 26, 2026
19797f8
Merge #8309 (the touch-action mark under a rule an author rule outran…
vjeux Oct 26, 2026
9bf354f
test(gestures): a hold's selection lock suppresses a link's callout, …
vjeux Oct 26, 2026
730b103
fix(gestures): a hold's selection lock suppresses a link's callout, a…
vjeux Oct 26, 2026
215f031
fix(core): a waiting Reduce Motion call whose own opacity a later cal…
cixzhang Oct 26, 2026
da5dcb2
Merge #8056 (a retargeted opacity settles its waiting call interrupte…
cixzhang Oct 26, 2026
47a30b0
Merge #8521 (a retargeted opacity settles its waiting call interrupte…
cixzhang Oct 26, 2026
7f0f5c4
docs(interaction): waitForAnimation's JSDoc names the CSS @keyframes …
vjeux Oct 26, 2026
5712c49
Merge #8348 (38ea7d9c: rootless docker, WebKit container user) into t…
cixzhang Oct 26, 2026
4045092
chore(interaction): move four instruments out of the frame evidence
cixzhang Oct 26, 2026
6762cc5
chore(interaction): move rendering traces and the long-task log out o…
cixzhang Oct 26, 2026
03058f6
chore(interaction): move the compositor presentation record out of th…
cixzhang Oct 26, 2026
bf5950f
feat(interaction): Chromium rendering traces, the compositor presenta…
cixzhang Oct 26, 2026
d12ed28
feat(interaction): cast filmstrips, rect sampling, a Storybook highli…
cixzhang Oct 26, 2026
4574489
Merge #8270 (the selection lock's engine split; a link's callout supp…
vjeux Oct 26, 2026
6d5eaf1
Merge #8309 (#8270's selection-lock split) into #8315
vjeux Oct 26, 2026
61de06c
Merge #8549 (d12ed280: the frame evidence split into #8045, #8548 and…
cixzhang Oct 26, 2026
c1c46dc
fix(core): a held call keeps reading until it has a start
cixzhang Oct 26, 2026
ddf0e3a
Merge #8056 (a held call keeps reading until it has a start) into pla…
cixzhang Oct 26, 2026
f33aea7
Merge #8521 (a held call keeps reading until it has a start) into pse…
cixzhang Oct 26, 2026
d3275e1
docs(gestures): the README says a press tracker disabled under a fing…
vjeux Oct 26, 2026
daf723b
Merge 61de06c700 (#8446: the split harness line with #8348's containe…
cixzhang Oct 26, 2026
a2cf054
Merge #8309 (daf723b8: the harness line split, #8446 61de06c7) into t…
cixzhang Oct 26, 2026
357a725
feat(gestures): a screen-edge pan takes the axis across its edge only…
cixzhang Oct 26, 2026
bae8ff7
Merge #8309's window (#8270's selection-lock split, the touch-action …
vjeux Oct 26, 2026
57f866d
Merge #8315's window (the disabled-under-finger README note, #8309's …
vjeux Oct 26, 2026
fd8bf33
Merge #8309 (cixzhang's daf723b835 with the window) into #8315
vjeux Oct 26, 2026
92d6477
fix(core): decay takes touchRelease; a take-back fades straight back;…
cixzhang Oct 26, 2026
6c53298
Merge #8056 (decay touchRelease, take-back, entrance mid-exit) into p…
cixzhang Oct 26, 2026
1ca0138
Merge #8521 (decay touchRelease, take-back, entrance mid-exit) into p…
cixzhang Oct 26, 2026
45a454b
docs(core): the animator header and changeset name the touch-release …
cixzhang Oct 26, 2026
c6f0678
Merge #8056 (the touch-release cross-fade in the header and changeset…
cixzhang Oct 26, 2026
ed4a046
Merge #8521 (the touch-release cross-fade in the header and changeset…
cixzhang Oct 26, 2026
3e3c4e7
Merge main (#8348 landed) into the frame evidence
cixzhang Oct 26, 2026
a7ffe6e
Merge #8045 (main with #8348 landed) into the rendering traces
cixzhang Oct 26, 2026
36abaa1
Merge #8548 (main with #8348 landed) into the instruments
cixzhang Oct 26, 2026
2931530
Merge #8549 (main with #8348 landed) into the recorder stand-down
cixzhang Oct 26, 2026
5f625ff
Merge #8446 (2931530b12: the split harness line, with main's #8348) i…
vjeux Oct 26, 2026
1286a82
Merge 2931530b12 (#8446: the harness line on main with #8348 landed) …
cixzhang Oct 26, 2026
1910a64
Merge #8309 (1286a827: the harness line on main, #8348 landed) into t…
cixzhang Oct 26, 2026
8bc79c0
Merge #8270 (#8446 2931530b12, the same dependency) into #8309
vjeux Oct 26, 2026
e134fff
test(gestures): a finger the window blur cancelled lifts on nothing
vjeux Oct 26, 2026
b6869cf
fix(gestures): a finger the window blur cancelled lifts on nothing
vjeux Oct 26, 2026
ab343f5
test(gestures): a recognizer's own-scroll exemption lasts until the n…
vjeux Oct 26, 2026
ff306bc
fix(gestures): a recognizer's own-scroll exemption lasts until the ne…
vjeux Oct 26, 2026
ed0b174
test(gestures): a detach that leaves only disabled recognizers stops …
vjeux Oct 26, 2026
1be6b6c
fix(gestures): a detach that leaves only disabled recognizers stops t…
vjeux Oct 26, 2026
b4e0adb
Merge #8446 (2931530b: the harness line on main with #8348) into the …
cixzhang Oct 26, 2026
2b264d3
test(core): uikit.test.ts matches bindings in the file text again
cixzhang Oct 26, 2026
13eceed
Merge #8056 (uikit.test.ts back to main's line) into play(curves)
cixzhang Oct 26, 2026
212dbb1
Merge #8521 (uikit.test.ts back to main's line) into pseudo-element s…
cixzhang Oct 26, 2026
ecb9f20
Merge #8056 (2b264d3d: the held call's start, the Reduce Motion landi…
vjeux Oct 26, 2026
62ecda1
test(core): browser proofs that a Reduce Motion dip held before its f…
vjeux Oct 26, 2026
ee3f21c
Merge #8309 (#8270's #8446 2931530b12, the same dependency) into #8315
vjeux Oct 26, 2026
26345b2
Merge #8309 (blur, own-scroll exemption, detach re-sync) into #8315
vjeux Oct 26, 2026
66c651f
fix(interaction): a watch taken inside a trace right after a style ch…
cixzhang Oct 26, 2026
5613501
docs(interaction): the README's evidence list and busy recipe match w…
cixzhang Oct 26, 2026
a149b9c
Merge #8045 (README evidence list and FR5 block) into the rendering t…
cixzhang Oct 26, 2026
852d55c
fix(interaction): readLongTasks fails closed, and the README lists ev…
cixzhang Oct 26, 2026
4099d7e
Merge #8548 (readLongTasks fails closed) into the instruments
cixzhang Oct 26, 2026
6ccd5b4
fix(interaction): castStoryboard takes no clip it would ignore
cixzhang Oct 26, 2026
40c6be3
Merge #8549 (castStoryboard's clip, readLongTasks fails closed, READM…
cixzhang Oct 26, 2026
87e516b
docs(interaction): a traced watch restyles its element; take it befor…
cixzhang Oct 26, 2026
704fb38
Merge 87e516b545 (#8446: CodeBunny fixes up the harness line) as a de…
cixzhang Oct 26, 2026
572825b
fix(gestures): an off-zone edge pan decides at 10 px; a waiting swipe…
cixzhang Oct 26, 2026
60763a6
fix(gestures): the host's touch-action rules sit in the reset cascade…
cixzhang Oct 26, 2026
851525b
Merge #8309 (60763a66: touch-action rules in @layer reset, #8446 87e5…
cixzhang Oct 26, 2026
4c3df94
fix(gestures): a pan from several edges claims each axis only in its …
cixzhang Oct 26, 2026
c8d86ff
chore(changeset): the touch foundation's internal changesets stop cou…
vjeux Oct 26, 2026
bce5d90
fix(interaction): the compositor record refuses another open page
cixzhang Oct 26, 2026
7613c98
Merge #8548 (the compositor record refuses another page) into the ins…
cixzhang Oct 26, 2026
f79b8a9
fix(interaction): resolve ASTRYX_WEBKIT_SHADER_CACHE to a host path
cixzhang Oct 26, 2026
a1e7176
Merge #8549 (compositor record refuses another page, shader cache pat…
cixzhang Oct 26, 2026
ff365ff
docs(interaction): a traced waitForRest restyles a running element on…
cixzhang Oct 26, 2026
97436b2
fix(core): a node detached mid-dip lands its move where it was going
cixzhang Oct 26, 2026
c27baac
Merge #8521 (a node detached mid-dip lands its move) into pseudo-elem…
cixzhang Oct 26, 2026
bac4669
fix(interaction): a window that delivered under four frames is judged…
cixzhang Oct 26, 2026
f1c5125
Merge n8045 (the busy verdict judges a thin window against its span) …
cixzhang Oct 26, 2026
bd50829
Merge n8548 (the busy verdict judges a thin window against its span) …
cixzhang Oct 26, 2026
f405e7f
Merge n8549 (the busy verdict judges a thin window against its span) …
cixzhang Oct 26, 2026
959f1e1
Merge f405e7fa31 (#8446: CodeBunny's #8045 round up the harness line)…
cixzhang Oct 26, 2026
4e19448
Merge #8309 (959f1e1e: #8446 f405e7fa) into the gesture hook fixes
cixzhang Oct 26, 2026
54b35c5
test(gestures): a scroll takes an unclaimed touch from 10 px of trave…
vjeux Oct 26, 2026
702529b
fix(core): the unmount's landing leaves the detached node with nothin…
cixzhang Oct 26, 2026
fda011c
Merge #8521 (the unmount's landing leaves nothing running) into pseud…
cixzhang Oct 26, 2026
8715133
docs(interaction): the busy verdict's docs name the thin-window rule
cixzhang Oct 26, 2026
15e8c24
Merge n8045 (the busy docs name the thin-window rule) into n8548
cixzhang Oct 26, 2026
bc90acb
Merge n8548 (the busy docs name the thin-window rule) into n8549
cixzhang Oct 26, 2026
7aba599
Merge n8549 (the busy docs name the thin-window rule) into n8446b
cixzhang Oct 26, 2026
9f6748f
fix(core): a waiting move lands on the latest node detached, and disp…
cixzhang Oct 26, 2026
a103c43
Merge #8521 (the latest detached node) into pseudo-element support
cixzhang Oct 26, 2026
07b3383
fix(core): a press another hook's isEnabled sync resolves ends after …
cixzhang Oct 26, 2026
4012259
fix(interaction): the compositor record refuses a page that opened wh…
cixzhang Oct 26, 2026
2a6b934
Merge n8548 (the compositor record refuses a page opened while it ran…
cixzhang Oct 26, 2026
9f65026
Merge n8549 (the compositor record refuses a page opened while it ran…
cixzhang Oct 26, 2026
2ec969c
fix(core): a Reduce Motion call naming the opacity a waiting dip retu…
vjeux Oct 26, 2026
8a1f2ca
test(gestures): the isEnabled-sync press test names its refs as refs
vjeux Oct 26, 2026
1ddea08
fix(interaction): a traced wait on a missing element reports it missing
cixzhang Oct 26, 2026
213e86e
docs(motion): the Reduce Motion planner's fade length is no role, the…
vjeux Oct 26, 2026
6ef5186
perf(core): a promotion reads no style in its own task
vjeux Oct 26, 2026
c440ef6
test(gestures): a recognizer waiting on one a hook's Effect stops rep…
vjeux Oct 26, 2026
70c70e4
Merge #8061 (4c3df941: a screen-edge pan takes the axis across its ed…
vjeux Oct 26, 2026
67ff01b
fix(gestures): what a hook's Effect stop unblocks resolves just after it
vjeux Oct 26, 2026
6f4173c
test(core): the mid-dip unmount test reads the element after the defe…
cixzhang Oct 26, 2026
915f9d9
Merge #8521 (the mid-dip unmount test awaits the microtask) into pseu…
cixzhang Oct 26, 2026
d2c3c78
feat(gestures): an action group keeps working under a fine pointer, w…
cixzhang Oct 26, 2026
cc795a1
Merge d2c3c788f0 (#8072 (an action group under a fine pointer)) as a …
cixzhang Oct 26, 2026
266fa0a
Merge #8072 (d2c3c788: the action-group host exception) and #8446 (1d…
cixzhang Oct 27, 2026
8b0cb36
Merge #8309 (cc795a1e: #8072's action-group fine-pointer exception) a…
cixzhang Oct 27, 2026
a490ba1
Merge 1ddea08f3e (#8446 (the harness line's latest)) as a dependency
cixzhang Oct 27, 2026
03d8794
Merge 266fa0af50 (#8076 266fa0af (vjeux 70c70e41, #8072 d2c3c788, #84…
cixzhang Oct 27, 2026
8d59b3f
Merge #8309 (03d87941: #8076 266fa0af) as a dependency
cixzhang Oct 27, 2026
d5958e0
test(gestures): useGestureRecognizer attaches an action group the hos…
vjeux Oct 27, 2026
ce103c7
feat(gestures): useGestureRecognizer takes actionGroup
vjeux Oct 27, 2026
25b468c
Merge main (2c4f1728: #8056 merged) into play-curves
cixzhang Oct 27, 2026
182ef2e
Merge #8521 (main with #8056) into pseudo-element support
cixzhang Oct 27, 2026
2e60799
fix(gestures): under inputMode 'pointer-events' a finger is tracked o…
cixzhang Oct 27, 2026
e6e06dd
Merge 2e60799487 (#8072 (kt-ztcc: a finger tracked once under inputMo…
cixzhang Oct 27, 2026
793c8db
build(lab): Lab reaches core only through core's exports, with no sec…
cixzhang Oct 27, 2026
98803e9
Merge 793c8dbd (#8076: Lab reaches core only through core's exports) …
cixzhang Oct 27, 2026
b9c3b0b
Merge #8522 (182ef2e9: the animator line carrying main with #8056 lan…
cixzhang Oct 27, 2026
27eeeb8
fix(core): an unmount leaves no will-change read timer on the node it…
cixzhang Oct 27, 2026
07920f1
Merge #8076 (27eeeb8db4: main with #8056, the Lab route through core'…
vjeux Oct 27, 2026
dd1b124
Merge 27eeeb8d (#8076: carries main with #8056 landed, via #8522 182e…
cixzhang Oct 27, 2026
c177659
Merge #8309 (dd1b1244: #8076 27eeeb8d with #8056, and #8072 2e607994)…
cixzhang Oct 27, 2026
bec2283
fix(gestures): a gesture that cancels itself on a finger's move keeps…
vjeux Oct 26, 2026
0eafffd
test(gestures): real-touch states for AST-094 FR18–FR22: 9 and 10 px …
cixzhang Oct 27, 2026
a3e07d8
fix(core): the gesture host measures a screen-edge pan's view, so an …
cixzhang Oct 27, 2026
9adbe2d
fix(gestures): a strip authored at the edge region is the edge zone a…
cixzhang Oct 27, 2026
584ee5a
Merge a3e07d88 (#8076: the host's arena environment measures a view) …
cixzhang Oct 27, 2026
cc9afb6
Merge 9adbe2d8 (#8061: an edge strip within half a pixel of its band …
cixzhang Oct 27, 2026
2d1a06e
test(gestures): the real-touch edge strip is the band's own 40.2 px, …
cixzhang Oct 27, 2026
9800eb5
fix(gestures): a scroll takes a finger only after its 10 px of travel…
cixzhang Oct 27, 2026
9ac14dc
docs(gestures): the README's touch-action table qualifies the edge pa…
cixzhang Oct 27, 2026
c3375f6
Merge 9800eb54 (#8072: a scroll takes a finger after 10 px; pointer-e…
cixzhang Oct 27, 2026
8ae6540
Merge #8309 (c3375f65: #8076 a3e07d88, #8061 9adbe2d8, #8072 9800eb54…
cixzhang Oct 27, 2026
5c59af1
fix(gestures): a finger on an action group under a fine pointer reach…
cixzhang Oct 27, 2026
2d4b4bd
Merge 5c59af12 (#8072: a finger on an action group under a fine point…
cixzhang Oct 27, 2026
10abed5
Merge #8309 (2d4b4bdc: #8072 5c59af12, an action group's finger under…
cixzhang Oct 27, 2026
cba0ad9
Merge main (a00afee502: #8521 merged) into the experimental touch layer
vjeux Oct 27, 2026
050fb02
Merge #8076 (cba0ad93f6: a3e07d889b's edge-zone measuring, main with …
vjeux Oct 27, 2026
c5b1e89
test(gestures): the 41 px edge-band case skips WebKit like the file's…
cixzhang Oct 27, 2026
2850d32
Merge #8309 (c5b1e894: the 41 px edge-band case skips WebKit) as a de…
cixzhang Oct 27, 2026
d97753d
Merge #8270 (#8076 cba0ad93f6) into #8309
vjeux Oct 27, 2026
13f603d
Merge #8309 (#8076 cba0ad93f6) into #8315
vjeux Oct 27, 2026
3bfd7c3
fix(core): the animator reads no style for a node out of the document
vjeux 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
9db6af5
Merge #8270 (#8076 3bfd7c32da; the coarse-pointer query in utils/) in…
vjeux Oct 27, 2026
999afb7
Merge #8309 (#8076 3bfd7c32da; the coarse-pointer query in utils/) in…
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
e718566
Merge #8270 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641) into #8309
vjeux Oct 27, 2026
9486526
Merge #8309 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8641's moving…
vjeux Oct 27, 2026
3fb31dd
Merge main (6aea9bda01: #8663 merged, one release policy) into the ex…
vjeux Oct 27, 2026
170162d
Merge #8076 (main's #8663 rows in motion/README.md) into #8270
vjeux Oct 27, 2026
58dbb1a
Merge #8270 (#8076: main's #8663 rows in motion/README.md) into #8309
vjeux Oct 27, 2026
2e77071
Merge #8309 (#8076: main's #8663 rows in motion/README.md) into #8315
vjeux Oct 27, 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.

@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.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, with every press painter writing `data-astryx-press` through one internal writer in `utils/pressFeedback.ts`. 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-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/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/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
Loading
Loading