Repository navigation
feat(core): UIControl press tracking, press profiles, the press paint and hooks #8073
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Changes from all commits
Commits
Show all changes
138 commits
Select commit
Hold shift + click to select a range
4076bf3
spec(AST-094): touch presentations follow UIKit
vjeux 28343b4
chore(core): the UIKit constants table for touch presentations
vjeux 081b6c5
feat(core): gesture recognizer core — UIKit's state machine and the a…
vjeux f423ffe
feat(core): tap and long-press recognizers with UIKit's measured thre…
vjeux 5cb0543
feat(core): pan gesture recognizer with UIKit's hysteresis and velocity
vjeux 7d58f27
feat(core): swipe, pinch, rotation, screen-edge pan and hover recogni…
vjeux 1a76704
feat(core): touch-action derivation, native scroll probe and haptics
vjeux cfffebf
feat(core): gesture host — claims, click suppression and the browser'…
vjeux 0453495
feat(core): UIControl press tracking, press profiles, the press paint…
vjeux c784084
spec(AST-094): touch presentations feel native by default
cixzhang 0c35c43
chore(core): the UIKit constants table for touch presentations
vjeux 6bd2851
chore(core): the constants table names only what exists, and dates ev…
vjeux 4b3de64
Merge main into the constants table (lab typechecks with its tests)
vjeux da65388
fix(gestures): the velocity tracker is INV10's one filter, with AST-1…
cixzhang 9c93b37
Merge main (4bcd84ff07) into the pan recognizer
vjeux 6fd1ecb
fix(core): a committed early claim keeps its touch, and a handoff nev…
vjeux ee93b9e
docs(spec): the draft AST-094 leaves this stack
vjeux e7df427
perf(core): the gesture table's sources move to JSDoc, out of the bundle
vjeux 439dcc3
docs(spec): the draft AST-094 copy leaves this stack
vjeux 0bf13da
Merge main (the deploy typecheck gate test reads the step as written)…
vjeux bbbcb60
refactor(core): the platform presets are named for their use
vjeux 03bb055
refactor(core): a drag never changes hands midway: the pan's scrollHa…
vjeux 99991ad
Merge main (c66a4146) into the gesture recognizer core
cixzhang 6d0d390
Merge main into the stack (AST-094 is current on main)
cixzhang 889eea5
Merge main (67dc45f66d3) into #8061
cixzhang c748639
Merge main (67dc45f66d3) into #8071
cixzhang 03f66c3
fix(core): the UIKit table keeps only what a touch presentation plays…
cixzhang 1133bf9
Merge remote-tracking branch 'origin/main' into m8053
cixzhang e8f90e8
fix(core): a two-finger double tap recognizes
cixzhang eded944
style(core): MEASUREMENTS.md table widths after the dropped rows
cixzhang 4bec6a0
fix(gestures): a late timer yields to queued input, an idle cancel st…
cixzhang 9d1c740
fix(gestures, motion): the innermost recognizer wins across fingers, …
cixzhang 7e36bcd
fix(core): the table's notes point at what exists, and the press entr…
cixzhang 1b06fb1
fix(core): the gesture host cancels only touches a recognizer owns, a…
cixzhang 15b8e71
fix(gestures): the velocity tracker is INV10's one filter, with AST-1…
cixzhang a7591e0
fix(gestures): no early claim or scroll handoff; swipe, rotation and …
cixzhang 1f751c9
docs(core): M-S2 feeds scroll.decelerationRate, where the coast readi…
cixzhang 2823695
fix(gestures): the tap haptic keeps focus and the label's control; se…
cixzhang e43824f
fix(gestures): a code cancel keeps the event clock, simultaneity need…
cixzhang 08415d1
Merge main (8c3f3bea) into UIControl press tracking
cixzhang 0032cb6
Merge main (#8043, #7308 landed) into the UIKit constants table
cixzhang dd8720e
fix(gestures): a cell highlights at once outside a scroll view, and t…
cixzhang 927e70d
fix(gestures): pinch and rotation velocity settles; the swipe reads t…
cixzhang eb27e2b
fix(gestures): a lift settles the waiting recognitions it decides bef…
cixzhang 56fe65d
fix(gestures): the scroll probe follows a slotted node into its shado…
cixzhang e067db3
fix(gestures): a screen-edge pan from one edge leaves the browser eve…
cixzhang ce07485
Merge #8053 (0032cb6a7f: the UIKit table in its sourced, dated form) …
vjeux 8f65477
fix(core): the pan's early-claim distance is a dated entry of the UIK…
vjeux e039480
test(core): the scroll release reproduces UIKit's on four recorded UI…
vjeux 1ca9754
Merge main (99ad3f6d, the constants table landed) into the gesture re…
cixzhang 789b028
Merge #8058 (main with the #8053 tables resolved) into the tap and lo…
cixzhang c5909e4
Merge #8059 (main with the #8053 tables resolved) into the pan recogn…
cixzhang 2567700
Merge main (99ad3f6d906) into the gesture recognizers
cixzhang 7537284
Merge #8061's resolved head (25677005) into browser negotiation
cixzhang 61115f9
fix(gestures): a wrapped control keeps its name under the tap haptic;…
cixzhang 555a186
fix(core): a touch the browser took is never kept by a claiming recog…
cixzhang 2d98530
fix(gestures): no claim on a touch the browser took, one settle per e…
cixzhang cf16042
fix(core): the long press's taps phase counts only quick taps with it…
cixzhang bb9f7a6
Merge 61115f9fa2 (#8071 resolved against main) as a dependency
cixzhang 17cac8d
Merge 253fe637a0 (main) as a dependency
cixzhang d28dcb8
Merge #8058 (round-5 arena fixes) into the tap and long-press recogni…
cixzhang 03fac3f
fix(core): the gesture host turns selection and the callout off for o…
cixzhang 63df69a
Merge #8072 (03fac3f2: the resolved gesture host on main) into UICont…
cixzhang fb20886
Merge #8058 (2d985307: the gesture core's round-five fixes) into UICo…
cixzhang c23b4fa
Merge #8059 (d28dcb8d) into the pan recognizer; the pan claims nothin…
cixzhang a313e3b
fix(gestures): the barrel no longer exports the removed VelocityStrat…
cixzhang 2c3b0fe
Merge #8060 (c23b4fa5: the claim at the begin, the browser-taken rule…
cixzhang 4a231f9
Merge #8060's resolved head (c23b4fa5) into the gesture recognizers
cixzhang c9ffc9d
test(gestures): a waiting recognition that fails on its re-attempt gi…
cixzhang 83193a7
Merge #8061's head (4a231f97) into browser negotiation
cixzhang b1b7df4
Merge 83193a7bf2 (#8071 on #8061's 4a231f97) as a dependency
cixzhang 601be15
Merge e9b3f3edac (main) as a dependency
cixzhang 9976982
fix(core): the long press's taps-phase bounds name their measurement;…
cixzhang 3a2e069
Merge #8059 (9976982b: the taps-phase measurement named, FR10 test) i…
cixzhang 52e62af
docs(core): the per-press selection lock cites spec:AST-094 FR41 and …
cixzhang a8ebaca
Merge #8060's head (3a2e0696) into the gesture recognizers
cixzhang 685fc5e
Merge #8061's head into browser negotiation
cixzhang 18cb680
Merge #8072 (52e62afa: the per-press lock on #8071 and main) into UIC…
cixzhang 9e234f6
Merge #8060 (3a2e0696: with #8059 9976982b) into UIControl press trac…
cixzhang de4736c
fix(gestures): a deadline inside a re-entrant entry settles with the …
cixzhang 03209de
Merge main (16770e30, the per-group UIKit table) into the gesture rec…
cixzhang f4d9e0e
Merge 685fc5e05f (#8071 on #8061's a8ebacad) as a dependency
cixzhang 4e0edaf
Merge #8058 (main with the per-group UIKit table, #8468; re-entrant s…
cixzhang e227218
Merge #8072 (f4d9e0e0: on lane 4's #8071) into UIControl press tracking
cixzhang 0466e28
Merge #8058 (03209de6: main with the per-group UIKit table) into UICo…
cixzhang 411c960
Merge #8059 (4e0edafa: main's per-group UIKit table) into the pan rec…
cixzhang 22a166d
Merge #8061's head into browser negotiation
cixzhang 6350b02
Merge #8060's head (411c9607) into the gesture recognizers
cixzhang 05db673
Merge 22a166dc91 (#8071 with main's per-group table) as a dependency
cixzhang 1a789ff
docs(core): the gesture host's header no longer describes the early c…
cixzhang 82cb12d
docs(core): the pan's 10 pt begin is spec:AST-094 FR17
cixzhang 9cf5820
fix(core): a pan decides by its 10 px begin, whatever its axisRatio
cixzhang 7f74dd1
fix(gestures): a disabled hook gesture attaches nothing, and usePress…
cixzhang d61e266
fix(gestures): a control in a fixed bar is not inside a scroll view
cixzhang cead4e6
Merge d61e266cd5 (#8071: a control in a fixed bar is not in a scroll …
cixzhang 6d884e7
Merge 6322d94dbf (main) as a dependency
cixzhang 7f712c4
perf(core): the pan and the velocity tracker import only their own ta…
cixzhang d0d2dbc
Merge main (#8058 landed) into the pan recognizer
cixzhang c2b3dc2
fix(core): the gesture host listens only where the primary pointer is…
cixzhang 9b518eb
Merge #8060's head (d0d2dbce) into the gesture recognizers
cixzhang 9afe78e
Merge #8061's head into browser negotiation
cixzhang 7e5c4fa
Merge 9afe78ef24 (#8071 with main, #8058 and #8054 landed) as a depen…
cixzhang 99b47ce
Merge main (#8059 landed) into the pan recognizer
cixzhang 858d0e7
Merge #8072 (main b298b37d with the landed gesture recognizer core) i…
vjeux 447db56
Merge #8060's head (99b47ce5) into the gesture recognizers
cixzhang 8faa78c
Merge #8061's head into browser negotiation
cixzhang b0c024a
Merge 8faa78c72a (#8071 with main, #8059 landed) as a dependency
cixzhang 74221f0
test(core): the press-tracking tests declare a coarse primary pointer
vjeux 606e815
fix(core): a disabled press consumer does not make the gesture host l…
cixzhang e6548b9
Merge #8072 (606e8159: main through #8059, the fixed-bar fix, listene…
cixzhang 8f50e29
Merge #8072 (606e815973: main 19a7a463cc with the landed tap and long…
vjeux 1f991af
fix(gestures): a disabled press tracker gives the host no listener
cixzhang 51192ab
Merge main (cd4aca6453, #8060 squashed) into press tracking
vjeux 2817ba4
Merge vjeux's #8073 head (51192abe: #8072 606e8159 and main with #806…
cixzhang 4984fb6
Merge main (a17ee0a801e) into the gesture recognizers
cixzhang 1313a0e
Merge #8061's head into browser negotiation
cixzhang 6929751
Merge 1313a0e09d (#8071 with main, #8060 landed) as a dependency
cixzhang 1f79091
fix(core): the gesture host writes touch-action only where the primar…
cixzhang c0aea9b
refactor(core): one press machine and paint: pressPaint and the deleg…
vjeux 4155755
fix(gestures): recognizers read their own UIKit table groups; Hover c…
cixzhang 5b7d1eb
Merge #8061's head into browser negotiation
cixzhang 29578a0
Merge 5b7d1ebb04 (#8071 with #8061's per-group table imports) as a de…
cixzhang 0a5b023
Merge 4adaeda939 (main) as a dependency
cixzhang eca0738
Merge #8072 (0a5b023e: touch-action only on a coarse pointer, #8071 5…
cixzhang 95daacd
refactor(core): the gesture host drops the delegated consumer, which …
cixzhang c4bc6f8
fix(gestures): the tap haptic gives a disabled control no feedback
cixzhang e71ad6a
Merge c4bc6f8f70 (#8071: the FR23 disabled-control haptic fix) as a d…
cixzhang acbf411
Merge 51a0d3cca9 (main) as a dependency
cixzhang a1813b9
Merge #8072 (acbf411a: #8071 c4bc6f8f, the FR23 haptic fix, and main)…
cixzhang 61e891d
fix(core): the gesture host watches the pointer kind only while somet…
cixzhang c34bf73
fix(gestures): the hooks follow a replaced node, name what each Effec…
cixzhang 8a8ac32
Merge #8072 (61e891d7: the pointer-kind listener only while something…
cixzhang 347f0ac
fix(core): a finger on page content reaches tracking recognizers as b…
cixzhang b600a78
Merge #8072 (347f0aca: FR28 began-elsewhere for untracked fingers, FR…
cixzhang 3846b6a
Merge main 70ea85903c into #8073
vjeux 10c62f5
test(core): a mouse press ending early leaves a held row to its owner
vjeux fdf8766
fix(core): a press ended early clears its paint through the one writer
vjeux 63128d3
test(core): pressFeedback.test.ts drops its unused durationToMs import
vjeux File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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; no component uses them yet. | ||
|
|
||
| @vjeux |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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; no component uses it yet. | ||
|
|
||
| @vjeux |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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; no component uses them yet. | ||
|
|
||
| @vjeux | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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; no component uses them yet. | ||
|
|
||
| @vjeux |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hooks/actionGroupTracker.tsstill writesdata-astryx-pressdirectly, with its own fade clock, so "every press painter ... through one internal writer" is not true yet. Either route its paint, cut and release throughpaintPress, or narrow this sentence.