@astryxdesign/core 0.7.6 → 0.7.7-canary.1d04d40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AppShell/AppShell.d.ts.map +1 -1
- package/dist/AppShell/AppShell.js +23 -3
- package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
- package/dist/BottomSheet/BottomSheetPanel.js +16 -9
- package/dist/Chat/ChatComposerInput.d.ts +9 -0
- package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
- package/dist/Chat/ChatComposerInput.js +2 -0
- package/dist/Chat/ChatMessage.js +2 -2
- package/dist/Chat/chatMessage.vars.stylex.d.ts +8 -8
- package/dist/Chat/chatMessage.vars.stylex.js +8 -8
- package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
- package/dist/CommandPalette/CommandPaletteInput.js +8 -1
- package/dist/DateInput/MonthScroller.d.ts.map +1 -1
- package/dist/DateInput/MonthScroller.js +72 -2
- package/dist/Drawer/Drawer.d.ts.map +1 -1
- package/dist/Drawer/Drawer.js +6 -0
- package/dist/DropdownMenu/useMenuOverflow.d.ts +13 -3
- package/dist/DropdownMenu/useMenuOverflow.d.ts.map +1 -1
- package/dist/DropdownMenu/useMenuOverflow.js +31 -8
- package/dist/Field/PanelSearchInput.d.ts.map +1 -1
- package/dist/Field/PanelSearchInput.js +8 -1
- package/dist/Field/textEntryTraits.d.ts +6 -6
- package/dist/Field/textEntryTraits.js +6 -6
- package/dist/Layer/layerClickBoundary.d.ts +7 -1
- package/dist/Layer/layerClickBoundary.d.ts.map +1 -1
- package/dist/Layer/layerClickBoundary.js +2 -2
- package/dist/Layer/usePressPin.d.ts +95 -0
- package/dist/Layer/usePressPin.d.ts.map +1 -0
- package/dist/Layer/usePressPin.js +335 -0
- package/dist/Layer/useTouchTrigger.d.ts +23 -1
- package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
- package/dist/Layer/useTouchTrigger.js +29 -2
- package/dist/Link/Link.d.ts.map +1 -1
- package/dist/Link/Link.js +1 -0
- package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/ProgressBar/ProgressBar.js +20 -9
- package/dist/ProgressBar/ProgressBarTouch.d.ts +29 -0
- package/dist/ProgressBar/ProgressBarTouch.d.ts.map +1 -0
- package/dist/ProgressBar/ProgressBarTouch.js +91 -0
- package/dist/Selector/Selector.d.ts.map +1 -1
- package/dist/Selector/Selector.js +25 -13
- package/dist/Slider/Slider.d.ts.map +1 -1
- package/dist/Slider/Slider.js +404 -131
- package/dist/Slider/sliderTouchController.d.ts +189 -0
- package/dist/Slider/sliderTouchController.d.ts.map +1 -0
- package/dist/Slider/sliderTouchController.js +1017 -0
- package/dist/Slider/useSliderTouch.d.ts +22 -0
- package/dist/Slider/useSliderTouch.d.ts.map +1 -0
- package/dist/Slider/useSliderTouch.js +56 -0
- package/dist/Tooltip/Tooltip.d.ts +30 -6
- package/dist/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/Tooltip/Tooltip.js +5 -0
- package/dist/Tooltip/index.d.ts +1 -1
- package/dist/Tooltip/index.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.d.ts +31 -5
- package/dist/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/Tooltip/useTooltip.js +59 -18
- package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
- package/dist/Typeahead/BaseTypeahead.js +19 -9
- package/dist/astryx.css +40 -6
- package/dist/gestures/GestureArena.d.ts +21 -2
- package/dist/gestures/GestureArena.d.ts.map +1 -1
- package/dist/gestures/GestureArena.js +23 -3
- package/dist/gestures/GestureHost.d.ts +123 -3
- package/dist/gestures/GestureHost.d.ts.map +1 -1
- package/dist/gestures/GestureHost.js +791 -12
- package/dist/gestures/GestureRecognizer.d.ts +15 -1
- package/dist/gestures/GestureRecognizer.d.ts.map +1 -1
- package/dist/gestures/GestureRecognizer.js +12 -0
- package/dist/gestures/PanGestureRecognizer.d.ts +8 -0
- package/dist/gestures/PanGestureRecognizer.d.ts.map +1 -1
- package/dist/gestures/PinchGestureRecognizer.d.ts +5 -1
- package/dist/gestures/PinchGestureRecognizer.d.ts.map +1 -1
- package/dist/gestures/PinchGestureRecognizer.js +10 -0
- package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts +3 -3
- package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts.map +1 -1
- package/dist/gestures/ScreenEdgePanGestureRecognizer.js +7 -5
- package/dist/gestures/nativeScroll.d.ts +16 -2
- package/dist/gestures/nativeScroll.d.ts.map +1 -1
- package/dist/gestures/nativeScroll.js +39 -8
- package/dist/gestures/recognizerInternals.d.ts +4 -2
- package/dist/gestures/recognizerInternals.d.ts.map +1 -1
- package/dist/gestures/types.d.ts +11 -0
- package/dist/gestures/types.d.ts.map +1 -1
- package/dist/gestures/types.js +7 -0
- package/dist/gestures/wheelSegmenter.d.ts +45 -0
- package/dist/gestures/wheelSegmenter.d.ts.map +1 -0
- package/dist/gestures/wheelSegmenter.js +98 -0
- package/dist/motion/animator.d.ts.map +1 -1
- package/dist/motion/animator.js +140 -19
- package/dist/motion/paging.d.ts +58 -0
- package/dist/motion/paging.d.ts.map +1 -0
- package/dist/motion/paging.js +128 -0
- package/dist/motion/uikit/index.d.ts +5 -3
- package/dist/motion/uikit/index.d.ts.map +1 -1
- package/dist/motion/uikit/index.js +5 -3
- package/dist/motion/uikit/paging.d.ts +160 -0
- package/dist/motion/uikit/paging.d.ts.map +1 -0
- package/dist/motion/uikit/paging.js +162 -0
- package/dist/motion/uikit/progressBar.d.ts +59 -0
- package/dist/motion/uikit/progressBar.d.ts.map +1 -0
- package/dist/motion/uikit/progressBar.js +82 -0
- package/dist/motion/uikit/scroll.d.ts +0 -19
- package/dist/motion/uikit/scroll.d.ts.map +1 -1
- package/dist/motion/uikit/scroll.js +2 -21
- package/dist/motion/uikit/slider.d.ts +97 -0
- package/dist/motion/uikit/slider.d.ts.map +1 -0
- package/dist/motion/uikit/slider.js +111 -0
- package/dist/motion/uikit/springs.d.ts +46 -1
- package/dist/motion/uikit/springs.d.ts.map +1 -1
- package/dist/motion/uikit/springs.js +48 -4
- package/dist/utils/selectionLock.d.ts +43 -0
- package/dist/utils/selectionLock.d.ts.map +1 -1
- package/dist/utils/selectionLock.js +394 -6
- package/package.json +5 -5
- package/src/AppShell/AppShell.doc.mjs +10 -0
- package/src/AppShell/AppShell.tsx +48 -2
- package/src/BottomSheet/BottomSheetPanel.tsx +16 -9
- package/src/Chat/Chat.doc.mjs +1 -0
- package/src/Chat/ChatComposerInput.doc.mjs +11 -0
- package/src/Chat/ChatComposerInput.tsx +11 -0
- package/src/Chat/ChatMessage.tsx +2 -2
- package/src/Chat/chatMessage.vars.stylex.ts +8 -8
- package/src/CommandPalette/CommandPaletteInput.tsx +6 -0
- package/src/DateInput/MonthScroller.tsx +63 -5
- package/src/Drawer/Drawer.tsx +6 -0
- package/src/DropdownMenu/useMenuOverflow.ts +44 -8
- package/src/Field/PanelSearchInput.tsx +6 -0
- package/src/Field/textEntryTraits.ts +6 -6
- package/src/Layer/layerClickBoundary.ts +2 -2
- package/src/Layer/usePressPin.ts +481 -0
- package/src/Layer/useTouchTrigger.ts +37 -1
- package/src/Link/Link.tsx +3 -0
- package/src/ProgressBar/ProgressBar.doc.mjs +3 -3
- package/src/ProgressBar/ProgressBar.tsx +82 -11
- package/src/ProgressBar/ProgressBarTouch.ts +109 -0
- package/src/Selector/Selector.tsx +29 -2
- package/src/Slider/Slider.doc.mjs +11 -7
- package/src/Slider/Slider.tsx +539 -132
- package/src/Slider/sliderTouchController.ts +1209 -0
- package/src/Slider/useSliderTouch.ts +78 -0
- package/src/Tooltip/Tooltip.doc.mjs +21 -6
- package/src/Tooltip/Tooltip.tsx +42 -5
- package/src/Tooltip/index.ts +1 -0
- package/src/Tooltip/useTooltip.doc.mjs +4 -2
- package/src/Tooltip/useTooltip.tsx +84 -21
- package/src/Typeahead/BaseTypeahead.tsx +16 -8
- package/src/gestures/GestureArena.ts +45 -4
- package/src/gestures/GestureHost.ts +949 -12
- package/src/gestures/GestureRecognizer.ts +28 -0
- package/src/gestures/PanGestureRecognizer.ts +8 -0
- package/src/gestures/PinchGestureRecognizer.ts +16 -1
- package/src/gestures/README.md +82 -3
- package/src/gestures/ScreenEdgePanGestureRecognizer.ts +7 -5
- package/src/gestures/nativeScroll.ts +49 -9
- package/src/gestures/recognizerInternals.ts +9 -2
- package/src/gestures/types.ts +12 -0
- package/src/gestures/wheelSegmenter.ts +114 -0
- package/src/motion/MEASUREMENTS.md +8 -1
- package/src/motion/README.md +6 -3
- package/src/motion/animator.ts +193 -25
- package/src/motion/paging.ts +138 -0
- package/src/motion/uikit/index.ts +5 -3
- package/src/motion/uikit/paging.ts +162 -0
- package/src/motion/uikit/progressBar.ts +82 -0
- package/src/motion/uikit/scroll.ts +2 -18
- package/src/motion/uikit/slider.ts +105 -0
- package/src/motion/uikit/springs.ts +37 -2
- package/src/utils/selectionLock.ts +501 -6
- package/dist/motion/selectPage.d.ts +0 -26
- package/dist/motion/selectPage.d.ts.map +0 -1
- package/dist/motion/selectPage.js +0 -55
- package/src/motion/selectPage.ts +0 -55
|
@@ -90,8 +90,18 @@ export interface ArenaBeganInput extends TouchBeganInput {
|
|
|
90
90
|
export interface GestureArenaOptions {
|
|
91
91
|
clock?: GestureClock;
|
|
92
92
|
environment?: GestureEnvironment;
|
|
93
|
-
/**
|
|
94
|
-
|
|
93
|
+
/**
|
|
94
|
+
* Touches a recognizer now owns, and the recognizer that claimed them. A
|
|
95
|
+
* claim comes in any state: a recognizer that waits on another's failure
|
|
96
|
+
* claims while `possible`, and a swipe claims as `ended`. Each claim is
|
|
97
|
+
* reported once.
|
|
98
|
+
*/
|
|
99
|
+
onClaim?: (
|
|
100
|
+
touchIds: ReadonlyArray<number>,
|
|
101
|
+
claimer: GestureRecognizer,
|
|
102
|
+
) => void;
|
|
103
|
+
/** Claimed touches given back to the browser (releaseClaim). */
|
|
104
|
+
onRelease?: (touchIds: ReadonlyArray<number>) => void;
|
|
95
105
|
/** A click deferred at touch end resolved: replay it, or drop it. */
|
|
96
106
|
onDeferredClick?: (touch: GestureTouch, allowed: boolean) => void;
|
|
97
107
|
/**
|
|
@@ -100,6 +110,13 @@ export interface GestureArenaOptions {
|
|
|
100
110
|
* listening now (`spec:AST-094` FR24).
|
|
101
111
|
*/
|
|
102
112
|
onIdle?: () => void;
|
|
113
|
+
/**
|
|
114
|
+
* Whether the browser keeps a contact for itself while it is down. Then no
|
|
115
|
+
* claiming recognizer recognizes with it before its lift. So a mouse or pen
|
|
116
|
+
* drag that starts on selectable text selects that text. A recognition at
|
|
117
|
+
* the lift, such as a tap's, is unaffected.
|
|
118
|
+
*/
|
|
119
|
+
refusesClaim?: (touch: GestureTouch) => boolean;
|
|
103
120
|
/** Every recognizer transition, for debugging and tests. */
|
|
104
121
|
onTransition?: (
|
|
105
122
|
recognizer: GestureRecognizer,
|
|
@@ -228,6 +245,7 @@ export class GestureArena {
|
|
|
228
245
|
target: input.target,
|
|
229
246
|
scroll: input.scroll ?? null,
|
|
230
247
|
takenByBrowser: false,
|
|
248
|
+
...(input.scrollType == null ? {} : {scrollType: input.scrollType}),
|
|
231
249
|
};
|
|
232
250
|
const participants: GestureRecognizer[] = [];
|
|
233
251
|
for (const [depth, recognizer] of input.recognizers.entries()) {
|
|
@@ -552,7 +570,8 @@ export class GestureArena {
|
|
|
552
570
|
): void {
|
|
553
571
|
if (
|
|
554
572
|
!internals(recognizer).shouldBegin() ||
|
|
555
|
-
this.isVetoedByConsumer(recognizer)
|
|
573
|
+
this.isVetoedByConsumer(recognizer) ||
|
|
574
|
+
this.isRefusedByBrowser(recognizer)
|
|
556
575
|
) {
|
|
557
576
|
this.fail(recognizer);
|
|
558
577
|
return;
|
|
@@ -634,6 +653,23 @@ export class GestureArena {
|
|
|
634
653
|
return winner.canPrevent(other) && other.canBePrevented(winner);
|
|
635
654
|
}
|
|
636
655
|
|
|
656
|
+
/**
|
|
657
|
+
* Whether a recognizer that claims touches would take a contact the
|
|
658
|
+
* browser keeps while it is down (`refusesClaim`).
|
|
659
|
+
*/
|
|
660
|
+
private isRefusedByBrowser(recognizer: GestureRecognizer): boolean {
|
|
661
|
+
const refuses = this.options.refusesClaim;
|
|
662
|
+
if (refuses == null || !recognizer.claimsTouches) {
|
|
663
|
+
return false;
|
|
664
|
+
}
|
|
665
|
+
return recognizer.trackedTouches.some(
|
|
666
|
+
touch =>
|
|
667
|
+
touch.phase !== 'ended' &&
|
|
668
|
+
touch.phase !== 'cancelled' &&
|
|
669
|
+
refuses(touch),
|
|
670
|
+
);
|
|
671
|
+
}
|
|
672
|
+
|
|
637
673
|
/** UIControl's rule: a control may veto an overlapping ancestor recognizer. */
|
|
638
674
|
private isVetoedByConsumer(recognizer: GestureRecognizer): boolean {
|
|
639
675
|
for (const id of internals(recognizer).seenTouchIds) {
|
|
@@ -673,6 +709,7 @@ export class GestureArena {
|
|
|
673
709
|
recognizer: GestureRecognizer,
|
|
674
710
|
keep: ReadonlySet<number> = new Set(),
|
|
675
711
|
): void {
|
|
712
|
+
const released: number[] = [];
|
|
676
713
|
for (const touch of recognizer.trackedTouches) {
|
|
677
714
|
const record = this.records.get(touch.id);
|
|
678
715
|
if (record == null || !record.isClaimed || keep.has(touch.id)) {
|
|
@@ -691,8 +728,12 @@ export class GestureArena {
|
|
|
691
728
|
);
|
|
692
729
|
if (!isOwned) {
|
|
693
730
|
record.isClaimed = false;
|
|
731
|
+
released.push(touch.id);
|
|
694
732
|
}
|
|
695
733
|
}
|
|
734
|
+
if (released.length > 0) {
|
|
735
|
+
this.options.onRelease?.(released);
|
|
736
|
+
}
|
|
696
737
|
}
|
|
697
738
|
|
|
698
739
|
private apply(recognizer: GestureRecognizer, next: GestureState): void {
|
|
@@ -767,7 +808,7 @@ export class GestureArena {
|
|
|
767
808
|
}
|
|
768
809
|
}
|
|
769
810
|
if (claimed.length > 0) {
|
|
770
|
-
this.options.onClaim?.(claimed);
|
|
811
|
+
this.options.onClaim?.(claimed, recognizer);
|
|
771
812
|
}
|
|
772
813
|
}
|
|
773
814
|
|