Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
AI review status for this pull request.
|
PR Analysis Report
Generated by PR Enrichment workflow | View current CI run |
There was a problem hiding this comment.
Changes requested for one fix in the table-imports guard. The internal-entry re-exports, the refreshControl table and the new catalog key match the current specs.
isInternalEntryinpackages/core/src/motion/uikit/tableImports.test.ts(lines 60–62) exempts every.tsfile underinternal/, includingindicatorPress.stylex.ts,sheetDraft.tsanduseDismissSearchOnTouchDrag.ts, whichCheckboxInput,TokenizerBottomSheetandPowerSearchBottomSheetimport; please exempt only internal files no Core source imports (orinternal/touch.tsalone) and correct the JSDoc that says no Core source imports one.
Optional: the comment at internal/touch.ts:45 can drop its first sentence, which restates the export list (suggestion inline). When RefreshControl leaves Lab, its springs, reveal curve and durations will need motion roles under the touch-presentations spec (FR4).
[Automated review]
0ddf2dc to
d4832f8
Compare
There was a problem hiding this comment.
Ready to approve. The internal-entry re-exports, the refreshControl table and the new catalog key match the current specs, and the table-imports guard now exempts only internal files no Core source imports, which resolves the earlier comment on isInternalEntry.
- Optional: the
internal/touch.tsheader is now 21 lines, and its@outputstill describes only the gesture core's primitives; moving the new@inputtext into@outputkeeps it accurate (suggestion inline). - When RefreshControl leaves Lab, its springs, reveal curve and durations need motion roles named in its component record (touch-presentations FR4).
[Automated review]
| * @input The gesture core: the arena, the recognizers, and their geometry; | ||
| * the motion math and UIKit tables that Lab's RefreshControl reads; the | ||
| * page's scroll-style claims | ||
| * @output `@astryxdesign/core/internal/touch`: the gesture core's primitives |
There was a problem hiding this comment.
Optional (comment style): @output still describes only the gesture core's primitives, while the entry now also serves the motion math, UIKit tables, touch presentation hook and scroll-style claims, and the header is now 21 lines. Moving the new @input text here and keeping @input to what the file reads keeps the header accurate and shorter.
d4832f8 to
8537352
Compare
There was a problem hiding this comment.
Approved pending CI: CI has not run on this head yet. The pull request is a draft from a fork, so once it is marked ready for review, a maintainer adds the ci:run label so CI runs.
The internal-entry re-exports, the refreshControl table and the new catalog key match the current specs, and the table-imports guard exempts only internal files that no Core source imports.
- Optional: the
internal/touch.tsheader is 21 lines, and its@outputstill describes only the gesture core's primitives; moving the new@inputtext into@outputkeeps it accurate (see the earlier inline suggestion). - When RefreshControl leaves Lab, its springs, reveal curve and durations need motion roles named in its component record (touch-presentations FR4).
[Automated review]
8537352 to
01db4bf
Compare
There was a problem hiding this comment.
Approved pending CI: CI has not run on this head yet. The pull request is a draft from a fork, so once it is marked ready for review, a maintainer adds the ci:run label so CI runs.
The internal-entry re-exports (now including startsOnSelectableText), the refreshControl table and the new catalog key match the current specs, and the table-imports guard exempts only internal files that no Core source imports.
- Optional: the
internal/touch.tsheader is 21 lines, and its@outputstill describes only the gesture core's primitives; moving the new@inputtext into@outputkeeps it accurate (see the earlier inline suggestion). - When RefreshControl leaves Lab, its springs, reveal curve and durations need motion roles named in its component record (touch-presentations FR4).
[Automated review]
01db4bf to
5a45b8d
Compare
There was a problem hiding this comment.
Approved pending CI: CI has not run on this head yet. The pull request is a draft from a fork, so once it is marked ready for review, a maintainer adds the ci:run label so CI runs.
The internal-entry re-exports (now including lockDragSelection and selectionRangesOf), the refreshControl table and the new catalog key match the current specs, and the table-imports guard exempts only internal files that no Core source imports.
- Optional: the
internal/touch.tsheader is 22 lines, and its@outputstill describes only the gesture core's primitives; moving the new@inputtext into@outputkeeps it accurate (see the earlier inline suggestion). - When RefreshControl leaves Lab, its springs, reveal curve and durations need motion roles named in its component record (touch-presentations FR4).
[Automated review]
… reads Core's internal touch entry re-exports, by name, what Lab's useRefreshControl reads: the pan recognizer, its hook and the gesture types; the motion animator and its settle threshold; the cubic Bézier, the motion resolver, the rubber band and its inverse, and the spring solver; and the UIKit scroll and timing tables. Each one is an existing internal, and Core's behavior does not change. A bundle test checks that the public entry exports none of them.
5a45b8d to
4a3074b
Compare
|
/approve-spec 4a3074b |
There was a problem hiding this comment.
Approved pending CI: CI has not run on this head yet. This is a draft from a fork, so a maintainer adds the ci:run label, and marking it ready for review then starts CI.
The new names on Core's internal touch entry match the current specs for internal subpaths, and the new tests show that none of them reaches the public entry.
- Optional: two comments in
packages/core/src/internal/touch.ts(lines 45–47 and 56–57) restate the exports or a name, and the header's@outputstill describes only the gesture core's primitives; suggestions are inline.
[Automated review]
| // Lab's useRefreshControl reads these: its pull's pan and the hook that | ||
| // starts it. It also reads the motion animator, math and UIKit tables of its | ||
| // pull, settle and end. |
There was a problem hiding this comment.
Optional (comment style): after the colon, the comment lists the exports below it again. A version that keeps only the reason:
// Lab's useRefreshControl reads these.| // The animator's internal factory. The public one, `createAnimator`, plays | ||
| // only the theme's state-change motion. |
There was a problem hiding this comment.
Miss: optional (comment style): "The animator's internal factory." restates the name createMotionAnimator. A version that keeps only the reason:
// The public `createAnimator` plays only the theme's state-change motion.
RefreshControl's Core part, now only internal re-exports for vetting. Supersedes #8086. It lands right before its first user, Lab's pull to refresh (#9865).
Maintainer impact
Lab's
useRefreshControlreads Core's pan recognizer, its hook and the motion engine through Core's internal touch entry. Lab may import Core only through Core's internal entries. This follows the precedent that Lab uses the internal motion engine with no public API.Intended invariant
No behavior change in Core. The internal touch entry gains named re-exports of existing internals only: no gathering object, no root re-export, no docs. It stays outside the public API, and lint allows it only in Core and Lab.
Change
internal/touch.tsre-exports these, each an existing internal:PanGestureRecognizer, typePanGestureRecognizerOptionsgestures/PanGestureRecognizerGestureEventContext,GestureTouch,PointerKindgestures/typesuseGestureRecognizergestures/useGestureRecognizercreateMotionAnimator,SETTLE_THRESHOLD, typesMotionAnimator,MotionAnimatorOptions,MotionCurvemotion/animatorcubicBeziermotion/bezierresolveMotionmotion/resolveMotionrubberBand,rubberBandInversemotion/rubberBandsolveSpring,toSpringmotion/springscrollmotion/uikit/scrollregisterTimingTable,timingmotion/uikit/timingNot in it: the page's scroll-style claims, the scroll-lock subscription, the text-selection helpers and the touch presentation hook. UIRefreshControl's values live in Lab, and no locale key is added (the app supplies the announcement).
Evidence
touch.test.tsfails against main's entry.Buttonis the control. The bundle test fails when the root entry exports one of them.Scope
Testing
Local gates at this head, on main 47790d3: UI 787 files / 19,747 tests and node 883 files. The core type check and lint report 0 errors, and
review:prefinds nothing.Overlap: #9669, #9696 and #9699 add some of the same names to this entry; whichever merges later rebases and drops its duplicate lines.