@astryxdesign/core 0.7.7-canary.449486f → 0.7.7-canary.4a8a76e

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.
@@ -1 +1 @@
1
- {"version":3,"file":"GestureHost.d.ts","sourceRoot":"","sources":["../../src/gestures/GestureHost.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GestureHost.d.ts","sourceRoot":"","sources":["../../src/gestures/GestureHost.ts"],"names":[],"mappings":"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"}
@@ -913,12 +913,14 @@ export class GestureHost {
913
913
  * cancels it (or the click guard drops it, a late one included) and this one
914
914
  * is the tap's single activation.
915
915
  */
916
- clickRetargeted(target, x, y) {
916
+ clickRetargeted(target, x, y, pointerType) {
917
917
  const view = this.doc.defaultView;
918
918
  if (!(target instanceof Element) || !target.isConnected || view == null) {
919
919
  return;
920
920
  }
921
- armClickGuard(this.doc);
921
+ armClickGuard(this.doc, {
922
+ takesLateMouse: pointerType === 'touch'
923
+ });
922
924
  if (target instanceof view.HTMLElement && target.matches('input, textarea, select, [contenteditable]')) {
923
925
  target.focus();
924
926
  }
@@ -2639,7 +2641,7 @@ export class GestureHost {
2639
2641
  // A tap sent to what is drawn: the engine's click would hit the layout
2640
2642
  // position, so it is cancelled and the tap clicks what it touched.
2641
2643
  for (const end of retargetedEnds) {
2642
- if (this.clickRetargetedTap(end.landed, end, dispositions.get(end.id))) {
2644
+ if (this.clickRetargetedTap(end.landed, end, dispositions.get(end.id), 'touch')) {
2643
2645
  cancelsClick = true;
2644
2646
  }
2645
2647
  }
@@ -2647,7 +2649,9 @@ export class GestureHost {
2647
2649
  if (event.cancelable) {
2648
2650
  event.preventDefault();
2649
2651
  }
2650
- armClickGuard(this.doc);
2652
+ armClickGuard(this.doc, {
2653
+ takesLateMouse: true
2654
+ });
2651
2655
  }
2652
2656
  };
2653
2657
 
@@ -2657,7 +2661,7 @@ export class GestureHost {
2657
2661
  * (a taken contact is no longer retargeted), and the finger stayed within
2658
2662
  * a tap's movement. Returns whether it clicked.
2659
2663
  */
2660
- clickRetargetedTap(landed, end, disposition) {
2664
+ clickRetargetedTap(landed, end, disposition, pointerType) {
2661
2665
  if (landed == null || disposition !== 'allow') {
2662
2666
  return false;
2663
2667
  }
@@ -2665,7 +2669,7 @@ export class GestureHost {
2665
2669
  if (moved > UIKIT_TAP.allowableMovement.value) {
2666
2670
  return false;
2667
2671
  }
2668
- this.clickRetargeted(landed.target, end.x, end.y);
2672
+ this.clickRetargeted(landed.target, end.x, end.y, pointerType);
2669
2673
  return true;
2670
2674
  }
2671
2675
  onTouchCancel = event => {
@@ -3043,9 +3047,11 @@ export class GestureHost {
3043
3047
  const clicked = this.clickRetargetedTap(landed, {
3044
3048
  x: event.clientX,
3045
3049
  y: event.clientY
3046
- }, dispositions.get(id));
3050
+ }, dispositions.get(id), event.pointerType);
3047
3051
  if (!clicked && needsSuppression(dispositions)) {
3048
- armClickGuard(this.doc);
3052
+ armClickGuard(this.doc, {
3053
+ takesLateMouse: event.pointerType === 'touch'
3054
+ });
3049
3055
  }
3050
3056
  // A finger read from its pointer events: the touchend that follows the
3051
3057
  // lift is cancelled when a gesture took it, which the lift itself may
@@ -12,9 +12,15 @@ export interface ClickGuardOptions {
12
12
  * @default false
13
13
  */
14
14
  readonly staysInstalled?: boolean;
15
+ /**
16
+ * The gesture host's arm at a claimed touch's lift: the guard also takes
17
+ * that touch's late `mousedown` and `mouseup` while it is armed.
18
+ * @default false
19
+ */
20
+ readonly takesLateMouse?: boolean;
15
21
  }
16
22
  /** Swallow the browser's next click on `doc` (see the file header). */
17
- export declare function armClickGuard(doc: Document, { staysInstalled }?: ClickGuardOptions): void;
23
+ export declare function armClickGuard(doc: Document, { staysInstalled, takesLateMouse }?: ClickGuardOptions): void;
18
24
  /** Stop swallowing on `doc`; idempotent. */
19
25
  export declare function disarmClickGuard(doc: Document): void;
20
26
  /** Whether the guard on `doc` would swallow the next click. */
@@ -1 +1 @@
1
- {"version":3,"file":"clickGuard.d.ts","sourceRoot":"","sources":["../../src/utils/clickGuard.ts"],"names":[],"mappings":"AAgCA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AA8BD,uEAAuE;AACvE,wBAAgB,aAAa,CAC3B,GAAG,EAAE,QAAQ,EACb,EAAC,cAAsB,EAAC,GAAE,iBAAsB,GAC/C,IAAI,CAoBN;AAED,4CAA4C;AAC5C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAYpD;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAExD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAOzD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAQ/C"}
1
+ {"version":3,"file":"clickGuard.d.ts","sourceRoot":"","sources":["../../src/utils/clickGuard.ts"],"names":[],"mappings":"AAqCA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AA8BD,uEAAuE;AACvE,wBAAgB,aAAa,CAC3B,GAAG,EAAE,QAAQ,EACb,EAAC,cAAsB,EAAE,cAAsB,EAAC,GAAE,iBAAsB,GACvE,IAAI,CA2BN;AAED,4CAA4C;AAC5C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAYpD;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAExD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAOzD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAQ/C"}
@@ -21,6 +21,11 @@
21
21
  // page adds later (AST-057, AST-094). If only the gesture host arms it, the
22
22
  // click listener stays only while the guard is armed.
23
23
  //
24
+ // An arm at a claimed touch's lift also takes that touch's late `mousedown`
25
+ // and `mouseup`. WebKit sends them a few ms after a held tap's cancelled
26
+ // `touchend`, aimed at whatever is under the finger by then. They go with
27
+ // the click, the next `pointerdown` or the window, as the guard does.
28
+ //
24
29
  // Some clicks always pass:
25
30
  // - a click with `detail` 0: a keyboard's, a screen reader's, or one that the
26
31
  // page dispatches;
@@ -61,7 +66,8 @@ function listenForClicks(view) {
61
66
 
62
67
  /** Swallow the browser's next click on `doc` (see the file header). */
63
68
  export function armClickGuard(doc, {
64
- staysInstalled = false
69
+ staysInstalled = false,
70
+ takesLateMouse = false
65
71
  } = {}) {
66
72
  const view = doc.defaultView;
67
73
  if (view == null) {
@@ -83,6 +89,13 @@ export function armClickGuard(doc, {
83
89
  guard.unsubscribers.push(
84
90
  // The next press is a new gesture: its click must never be eaten.
85
91
  subscribeInput(view, 'pointerdown', () => disarmClickGuard(doc)));
92
+ if (takesLateMouse) {
93
+ for (const type of ['mousedown', 'mouseup']) {
94
+ guard.unsubscribers.push(subscribeInput(view, type, swallowLateMouse, {
95
+ cancels: true
96
+ }));
97
+ }
98
+ }
86
99
  guard.timer = setTimeout(() => disarmClickGuard(doc), CLICK_GUARD_WINDOW_MS);
87
100
  }
88
101
 
@@ -133,6 +146,15 @@ export function __resetClickGuardForTest() {
133
146
  stayingClickListeners.delete(window);
134
147
  }
135
148
  }
149
+
150
+ /** Swallows a claimed touch's late `mousedown` or `mouseup`. */
151
+ function swallowLateMouse(event) {
152
+ if (isExempt(event)) {
153
+ return;
154
+ }
155
+ event.preventDefault();
156
+ event.stopImmediatePropagation();
157
+ }
136
158
  function isExempt(event) {
137
159
  if (event.detail === 0 || unguardedDepth > 0) {
138
160
  return true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astryxdesign/core",
3
- "version": "0.7.7-canary.449486f",
3
+ "version": "0.7.7-canary.4a8a76e",
4
4
  "displayName": "Astryx Core",
5
5
  "description": "The component library. Accessible, themeable React components with built-in spacing, dark mode, and StyleX styling.",
6
6
  "author": "Meta Open Source",
@@ -865,9 +865,9 @@
865
865
  "react-dom": ">=19.0.0"
866
866
  },
867
867
  "devDependencies": {
868
- "@astryxdesign/a11y-spec": "0.7.7-canary.449486f",
869
- "@astryxdesign/cli": "0.7.7-canary.449486f",
870
- "@astryxdesign/interaction-harness": "0.7.7-canary.449486f",
868
+ "@astryxdesign/a11y-spec": "0.7.7-canary.4a8a76e",
869
+ "@astryxdesign/cli": "0.7.7-canary.4a8a76e",
870
+ "@astryxdesign/interaction-harness": "0.7.7-canary.4a8a76e",
871
871
  "@babel/cli": "^7.29.7",
872
872
  "@babel/core": "^7.29.7",
873
873
  "@babel/preset-react": "^7.29.7",
@@ -1203,12 +1203,17 @@ export class GestureHost {
1203
1203
  * cancels it (or the click guard drops it, a late one included) and this one
1204
1204
  * is the tap's single activation.
1205
1205
  */
1206
- private clickRetargeted(target: EventTarget, x: number, y: number): void {
1206
+ private clickRetargeted(
1207
+ target: EventTarget,
1208
+ x: number,
1209
+ y: number,
1210
+ pointerType: string,
1211
+ ): void {
1207
1212
  const view = this.doc.defaultView;
1208
1213
  if (!(target instanceof Element) || !target.isConnected || view == null) {
1209
1214
  return;
1210
1215
  }
1211
- armClickGuard(this.doc);
1216
+ armClickGuard(this.doc, {takesLateMouse: pointerType === 'touch'});
1212
1217
  if (
1213
1218
  target instanceof view.HTMLElement &&
1214
1219
  target.matches('input, textarea, select, [contenteditable]')
@@ -3146,7 +3151,14 @@ export class GestureHost {
3146
3151
  // A tap sent to what is drawn: the engine's click would hit the layout
3147
3152
  // position, so it is cancelled and the tap clicks what it touched.
3148
3153
  for (const end of retargetedEnds) {
3149
- if (this.clickRetargetedTap(end.landed, end, dispositions.get(end.id))) {
3154
+ if (
3155
+ this.clickRetargetedTap(
3156
+ end.landed,
3157
+ end,
3158
+ dispositions.get(end.id),
3159
+ 'touch',
3160
+ )
3161
+ ) {
3150
3162
  cancelsClick = true;
3151
3163
  }
3152
3164
  }
@@ -3154,7 +3166,7 @@ export class GestureHost {
3154
3166
  if (event.cancelable) {
3155
3167
  event.preventDefault();
3156
3168
  }
3157
- armClickGuard(this.doc);
3169
+ armClickGuard(this.doc, {takesLateMouse: true});
3158
3170
  }
3159
3171
  };
3160
3172
 
@@ -3168,6 +3180,7 @@ export class GestureHost {
3168
3180
  landed: {x: number; y: number; target: EventTarget} | undefined,
3169
3181
  end: {x: number; y: number},
3170
3182
  disposition: ClickDisposition | undefined,
3183
+ pointerType: string,
3171
3184
  ): boolean {
3172
3185
  if (landed == null || disposition !== 'allow') {
3173
3186
  return false;
@@ -3176,7 +3189,7 @@ export class GestureHost {
3176
3189
  if (moved > UIKIT_TAP.allowableMovement.value) {
3177
3190
  return false;
3178
3191
  }
3179
- this.clickRetargeted(landed.target, end.x, end.y);
3192
+ this.clickRetargeted(landed.target, end.x, end.y, pointerType);
3180
3193
  return true;
3181
3194
  }
3182
3195
 
@@ -3610,9 +3623,10 @@ export class GestureHost {
3610
3623
  landed,
3611
3624
  {x: event.clientX, y: event.clientY},
3612
3625
  dispositions.get(id),
3626
+ event.pointerType,
3613
3627
  );
3614
3628
  if (!clicked && needsSuppression(dispositions)) {
3615
- armClickGuard(this.doc);
3629
+ armClickGuard(this.doc, {takesLateMouse: event.pointerType === 'touch'});
3616
3630
  }
3617
3631
  // A finger read from its pointer events: the touchend that follows the
3618
3632
  // lift is cancelled when a gesture took it, which the lift itself may
@@ -21,6 +21,11 @@
21
21
  // page adds later (AST-057, AST-094). If only the gesture host arms it, the
22
22
  // click listener stays only while the guard is armed.
23
23
  //
24
+ // An arm at a claimed touch's lift also takes that touch's late `mousedown`
25
+ // and `mouseup`. WebKit sends them a few ms after a held tap's cancelled
26
+ // `touchend`, aimed at whatever is under the finger by then. They go with
27
+ // the click, the next `pointerdown` or the window, as the guard does.
28
+ //
24
29
  // Some clicks always pass:
25
30
  // - a click with `detail` 0: a keyboard's, a screen reader's, or one that the
26
31
  // page dispatches;
@@ -45,6 +50,12 @@ export interface ClickGuardOptions {
45
50
  * @default false
46
51
  */
47
52
  readonly staysInstalled?: boolean;
53
+ /**
54
+ * The gesture host's arm at a claimed touch's lift: the guard also takes
55
+ * that touch's late `mousedown` and `mouseup` while it is armed.
56
+ * @default false
57
+ */
58
+ readonly takesLateMouse?: boolean;
48
59
  }
49
60
 
50
61
  interface Guard {
@@ -78,7 +89,7 @@ function listenForClicks(view: Window): () => void {
78
89
  /** Swallow the browser's next click on `doc` (see the file header). */
79
90
  export function armClickGuard(
80
91
  doc: Document,
81
- {staysInstalled = false}: ClickGuardOptions = {},
92
+ {staysInstalled = false, takesLateMouse = false}: ClickGuardOptions = {},
82
93
  ): void {
83
94
  const view = doc.defaultView;
84
95
  if (view == null) {
@@ -98,6 +109,13 @@ export function armClickGuard(
98
109
  // The next press is a new gesture: its click must never be eaten.
99
110
  subscribeInput(view, 'pointerdown', () => disarmClickGuard(doc)),
100
111
  );
112
+ if (takesLateMouse) {
113
+ for (const type of ['mousedown', 'mouseup'] as const) {
114
+ guard.unsubscribers.push(
115
+ subscribeInput(view, type, swallowLateMouse, {cancels: true}),
116
+ );
117
+ }
118
+ }
101
119
  guard.timer = setTimeout(() => disarmClickGuard(doc), CLICK_GUARD_WINDOW_MS);
102
120
  }
103
121
 
@@ -149,6 +167,15 @@ export function __resetClickGuardForTest(): void {
149
167
  }
150
168
  }
151
169
 
170
+ /** Swallows a claimed touch's late `mousedown` or `mouseup`. */
171
+ function swallowLateMouse(event: MouseEvent): void {
172
+ if (isExempt(event)) {
173
+ return;
174
+ }
175
+ event.preventDefault();
176
+ event.stopImmediatePropagation();
177
+ }
178
+
152
179
  function isExempt(event: MouseEvent): boolean {
153
180
  if (event.detail === 0 || unguardedDepth > 0) {
154
181
  return true;