@astryxdesign/core 0.7.6-canary.d669762 → 0.7.6-canary.df8928a

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.
Files changed (120) hide show
  1. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  2. package/dist/ClickableCard/ClickableCard.js +4 -37
  3. package/dist/Layer/useLayer.d.ts +1 -1
  4. package/dist/Layer/useLayer.d.ts.map +1 -1
  5. package/dist/Layer/useLayer.js +59 -93
  6. package/dist/MultiSelector/CreateRow.a11y.chromium.spec.js +6 -7
  7. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  8. package/dist/MultiSelector/MultiSelector.js +8 -21
  9. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  10. package/dist/TopNav/TopNavMegaMenu.js +0 -3
  11. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  12. package/dist/TopNav/TopNavMenu.js +0 -1
  13. package/dist/gestures/GestureArena.d.ts +0 -6
  14. package/dist/gestures/GestureArena.d.ts.map +1 -1
  15. package/dist/gestures/GestureArena.js +0 -39
  16. package/dist/gestures/GestureRecognizer.d.ts +0 -10
  17. package/dist/gestures/GestureRecognizer.d.ts.map +1 -1
  18. package/dist/gestures/GestureRecognizer.js +0 -16
  19. package/dist/gestures/LongPressGestureRecognizer.d.ts +0 -1
  20. package/dist/gestures/LongPressGestureRecognizer.d.ts.map +1 -1
  21. package/dist/gestures/LongPressGestureRecognizer.js +0 -3
  22. package/dist/gestures/PanGestureRecognizer.d.ts +0 -1
  23. package/dist/gestures/PanGestureRecognizer.d.ts.map +1 -1
  24. package/dist/gestures/PanGestureRecognizer.js +0 -3
  25. package/dist/gestures/PinchGestureRecognizer.d.ts +0 -1
  26. package/dist/gestures/PinchGestureRecognizer.d.ts.map +1 -1
  27. package/dist/gestures/PinchGestureRecognizer.js +0 -3
  28. package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts +0 -1
  29. package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts.map +1 -1
  30. package/dist/gestures/ScreenEdgePanGestureRecognizer.js +0 -3
  31. package/dist/gestures/SwipeGestureRecognizer.d.ts +0 -1
  32. package/dist/gestures/SwipeGestureRecognizer.d.ts.map +1 -1
  33. package/dist/gestures/SwipeGestureRecognizer.js +0 -3
  34. package/dist/gestures/TapGestureRecognizer.d.ts +0 -1
  35. package/dist/gestures/TapGestureRecognizer.d.ts.map +1 -1
  36. package/dist/gestures/TapGestureRecognizer.js +0 -3
  37. package/dist/gestures/types.d.ts +0 -7
  38. package/dist/gestures/types.d.ts.map +1 -1
  39. package/dist/hooks/index.d.ts +1 -1
  40. package/dist/hooks/index.d.ts.map +1 -1
  41. package/dist/hooks/modalAnnounce.d.ts.map +1 -1
  42. package/dist/hooks/modalAnnounce.js +61 -107
  43. package/dist/hooks/useAnnounce.d.ts +42 -101
  44. package/dist/hooks/useAnnounce.d.ts.map +1 -1
  45. package/dist/hooks/useAnnounce.js +75 -161
  46. package/dist/hooks/useAnnounceRenderedText.d.ts +3 -11
  47. package/dist/hooks/useAnnounceRenderedText.d.ts.map +1 -1
  48. package/dist/hooks/useAnnounceRenderedText.js +3 -5
  49. package/dist/hooks/useBusyAnnouncement.d.ts.map +1 -1
  50. package/dist/hooks/useBusyAnnouncement.js +12 -6
  51. package/package.json +4 -4
  52. package/src/ClickableCard/ClickableCard.test.tsx +0 -96
  53. package/src/ClickableCard/ClickableCard.tsx +4 -48
  54. package/src/Kbd/Kbd.spec.md +38 -81
  55. package/src/Layer/useLayer.test.tsx +1 -348
  56. package/src/Layer/useLayer.tsx +71 -118
  57. package/src/MultiSelector/CreateRow.a11y.chromium.spec.ts +8 -7
  58. package/src/MultiSelector/MultiSelector.test.tsx +0 -152
  59. package/src/MultiSelector/MultiSelector.tsx +8 -19
  60. package/src/TopNav/TopNavMegaMenu.test.tsx +0 -21
  61. package/src/TopNav/TopNavMegaMenu.tsx +1 -4
  62. package/src/TopNav/TopNavMenu.test.tsx +0 -17
  63. package/src/TopNav/TopNavMenu.tsx +0 -1
  64. package/src/gestures/GestureArena.ts +0 -35
  65. package/src/gestures/GestureRecognizer.ts +0 -18
  66. package/src/gestures/LongPressGestureRecognizer.ts +0 -4
  67. package/src/gestures/PanGestureRecognizer.ts +0 -4
  68. package/src/gestures/PinchGestureRecognizer.ts +0 -4
  69. package/src/gestures/ScreenEdgePanGestureRecognizer.ts +0 -4
  70. package/src/gestures/SwipeGestureRecognizer.ts +0 -4
  71. package/src/gestures/TapGestureRecognizer.ts +0 -4
  72. package/src/gestures/__tests__/arena.test.ts +0 -5
  73. package/src/gestures/__tests__/arenaPinchSwipeEdge.test.ts +0 -5
  74. package/src/gestures/types.ts +0 -7
  75. package/src/hooks/index.ts +1 -5
  76. package/src/hooks/modalAnnounce.ts +72 -129
  77. package/src/hooks/useAnnounce.doc.mjs +3 -35
  78. package/src/hooks/useAnnounce.ts +102 -209
  79. package/src/hooks/useAnnounceRenderedText.ts +3 -17
  80. package/src/hooks/useBusyAnnouncement.ts +10 -7
  81. package/dist/Layer/popoverOperations.d.ts +0 -27
  82. package/dist/Layer/popoverOperations.d.ts.map +0 -1
  83. package/dist/Layer/popoverOperations.js +0 -159
  84. package/dist/gestures/GestureHost.d.ts +0 -352
  85. package/dist/gestures/GestureHost.d.ts.map +0 -1
  86. package/dist/gestures/GestureHost.js +0 -1773
  87. package/dist/gestures/haptics.d.ts +0 -65
  88. package/dist/gestures/haptics.d.ts.map +0 -1
  89. package/dist/gestures/haptics.js +0 -182
  90. package/dist/gestures/nativeScroll.d.ts +0 -42
  91. package/dist/gestures/nativeScroll.d.ts.map +0 -1
  92. package/dist/gestures/nativeScroll.js +0 -228
  93. package/dist/gestures/touchAction.d.ts +0 -60
  94. package/dist/gestures/touchAction.d.ts.map +0 -1
  95. package/dist/gestures/touchAction.js +0 -157
  96. package/dist/gestures/touchActionRule.d.ts +0 -34
  97. package/dist/gestures/touchActionRule.d.ts.map +0 -1
  98. package/dist/gestures/touchActionRule.js +0 -140
  99. package/dist/utils/primaryClick.d.ts +0 -11
  100. package/dist/utils/primaryClick.d.ts.map +0 -1
  101. package/dist/utils/primaryClick.js +0 -25
  102. package/src/Layer/__tests__/LayerBrowserHide.a11y.chromium.spec.ts +0 -126
  103. package/src/Layer/popoverOperations.test.ts +0 -205
  104. package/src/Layer/popoverOperations.ts +0 -172
  105. package/src/gestures/GestureHost.ts +0 -2065
  106. package/src/gestures/__tests__/GestureHost.test.ts +0 -2087
  107. package/src/gestures/__tests__/browser/build-fixture.mjs +0 -46
  108. package/src/gestures/__tests__/browser/fixture.ts +0 -307
  109. package/src/gestures/__tests__/browser/gestures.interaction.browser.spec.ts +0 -1137
  110. package/src/gestures/__tests__/browserNegotiation.test.ts +0 -293
  111. package/src/gestures/__tests__/haptics.test.ts +0 -187
  112. package/src/gestures/__tests__/recognizerKind.test.ts +0 -78
  113. package/src/gestures/__tests__/touchActionRule.test.ts +0 -54
  114. package/src/gestures/haptics.ts +0 -203
  115. package/src/gestures/nativeScroll.ts +0 -277
  116. package/src/gestures/touchAction.ts +0 -191
  117. package/src/gestures/touchActionRule.ts +0 -157
  118. package/src/hooks/useAnnounce.replace.test.tsx +0 -516
  119. package/src/utils/primaryClick.test.ts +0 -38
  120. package/src/utils/primaryClick.ts +0 -28
@@ -1 +1 @@
1
- {"version":3,"file":"ClickableCard.d.ts","sourceRoot":"","sources":["../../src/ClickableCard/ClickableCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EACL,KAAK,SAAS,EACd,KAAK,UAAU,EAGf,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAGtE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAwJ5C,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAE1B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEnD;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,yBAAyB;IACzB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,IAAI,EACJ,MAAM,EACN,UAAkB,EAClB,QAAQ,EACR,OAAO,EACP,OAAmB,EACnB,SAAkB,EAClB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,GAAG,EACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa,EACxB,KAAK,EACL,GAAG,KAAK,EACT,EAAE,kBAAkB,+BA+HpB;yBAlJe,aAAa"}
1
+ {"version":3,"file":"ClickableCard.d.ts","sourceRoot":"","sources":["../../src/ClickableCard/ClickableCard.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAE,KAAK,UAAU,EAAU,KAAK,GAAG,EAAC,MAAM,OAAO,CAAC;AASxE,OAAO,KAAK,EAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAGtE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAwJ5C,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAE1B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEnD;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,yBAAyB;IACzB,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,aAAa,EACxB,IAAI,EACJ,MAAM,EACN,UAAkB,EAClB,QAAQ,EACR,OAAO,EACP,OAAmB,EACnB,SAAkB,EAClB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,GAAG,EACH,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,aAAa,EACxB,KAAK,EACL,GAAG,KAAK,EACT,EAAE,kBAAkB,+BAyFpB;yBA5Ge,aAAa"}
@@ -28,7 +28,7 @@
28
28
  * For static display, use Card.
29
29
  * For toggle selection, use SelectableCard.
30
30
  */
31
- import { useCallback, useRef } from 'react';
31
+ import { useRef } from 'react';
32
32
  import * as stylex from '@stylexjs/stylex';
33
33
  import "../theme/tokens.stylex.js";
34
34
  import { borderVars, colorVars, durationVars, easeVars } from "../theme/tokens.stylex.js";
@@ -166,36 +166,6 @@ export function ClickableCard({
166
166
  const pressable = usePressFeedback();
167
167
  const containerRef = useRef(null);
168
168
  const interactiveRef = useRef(null);
169
- const restoreFocusRef = useRef(false);
170
- // The isDisabled value of the link that just detached: a link card that
171
- // flips it replaces its hidden link (router component and plain anchor),
172
- // and only that replacement takes focus back.
173
- const detachedDisabledRef = useRef(null);
174
-
175
- // A focused link remounts when isDisabled changes: the replacement takes
176
- // focus back, without scrolling, if focus fell to the page. Any other
177
- // detach and attach (a hidden Activity or Suspense boundary revealed
178
- // again) leaves focus where the person put it.
179
- const setInteractiveRef = useCallback(node => {
180
- if (node == null) {
181
- const previous = interactiveRef.current;
182
- restoreFocusRef.current = previous != null && previous === previous.ownerDocument.activeElement;
183
- detachedDisabledRef.current = isDisabled;
184
- interactiveRef.current = null;
185
- return;
186
- }
187
- interactiveRef.current = node;
188
- const isFlip = detachedDisabledRef.current != null && detachedDisabledRef.current !== isDisabled;
189
- const active = node.ownerDocument.activeElement;
190
- const hasFallen = active == null || active === node.ownerDocument.body;
191
- if (restoreFocusRef.current && isFlip && hasFallen) {
192
- node.focus({
193
- preventScroll: true
194
- });
195
- }
196
- restoreFocusRef.current = false;
197
- detachedDisabledRef.current = null;
198
- }, [isDisabled]);
199
169
  const LinkComponent = useLinkComponent();
200
170
  const {
201
171
  onClick,
@@ -214,9 +184,6 @@ export function ClickableCard({
214
184
  } : onMouseUp;
215
185
  const isLink = href != null;
216
186
 
217
- // Disabled links have no href, so bypass the router and render an anchor.
218
- const LinkRoot = isDisabled ? 'a' : LinkComponent;
219
-
220
187
  // Only the `default` variant has a visible border. Card draws a transparent
221
188
  // 1px border on every other variant purely to avoid layout jitter; we drop
222
189
  // it here so the hover overlay covers the full box with no untinted ring.
@@ -240,8 +207,8 @@ export function ClickableCard({
240
207
  onClick: !isDisabled ? onClick : undefined,
241
208
  onMouseUp: !isDisabled ? handleMouseUp : undefined,
242
209
  ...props,
243
- children: [isLink ? /*#__PURE__*/_jsx(LinkRoot, {
244
- ref: setInteractiveRef,
210
+ children: [isLink ? /*#__PURE__*/_jsx(LinkComponent, {
211
+ ref: interactiveRef,
245
212
  href: isDisabled ? undefined : href,
246
213
  target: isDisabled ? undefined : target,
247
214
  role: isDisabled ? 'link' : undefined,
@@ -255,7 +222,7 @@ export function ClickableCard({
255
222
  className: "x10l6tqk x1i1rx1s xjm9jq1 x1717udv xkdpibf xb3r6kr xzpqnlu xuxw1ft xc342km"
256
223
  }
257
224
  }) : /*#__PURE__*/_jsx("button", {
258
- ref: setInteractiveRef,
225
+ ref: interactiveRef,
259
226
  type: "button",
260
227
  "aria-label": label,
261
228
  "aria-disabled": isDisabled || undefined,
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @file useLayer.tsx
3
- * @input Uses React hooks, Popover API (its `beforetoggle`/`toggle` events through the popoverOperations ledger), CSS anchor positioning, shared text/provider boundaries
3
+ * @input Uses React hooks, Popover API, CSS anchor positioning, shared text/provider boundaries
4
4
  * @output Exports the public useLayer hook plus internal trigger helpers.
5
5
  * @position Core layer utility; used by useHoverCard, useTooltip, etc.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"useLayer.d.ts","sourceRoot":"","sources":["../../src/Layer/useLayer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useLayer.d.ts","sourceRoot":"","sources":["../../src/Layer/useLayer.tsx"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
 
5
5
  /**
6
6
  * @file useLayer.tsx
7
- * @input Uses React hooks, Popover API (its `beforetoggle`/`toggle` events through the popoverOperations ledger), CSS anchor positioning, shared text/provider boundaries
7
+ * @input Uses React hooks, Popover API, CSS anchor positioning, shared text/provider boundaries
8
8
  * @output Exports the public useLayer hook plus internal trigger helpers.
9
9
  * @position Core layer utility; used by useHoverCard, useTooltip, etc.
10
10
  *
@@ -26,7 +26,6 @@ import "./layerViewportInset.stylex.js";
26
26
  import { layerViewportInset } from "./layerViewportInset.stylex.js";
27
27
  import { layerInsetProperties } from "./layerInset.js";
28
28
  import { LAYER_CLEARANCE_PROPERTY, LAYER_CLEARS_ANCHOR_ATTRIBUTE, LAYER_SCROLLS_ATTRIBUTE, LAYER_CLEAR_FALLBACKS_PROPERTY, LAYER_TRY_FALLBACKS_PROPERTY, ensureSlideRules, getAnchorClearFallbacks, slideRuleName } from "./layerSlideRules.js";
29
- import { afterPopoverOperations, isBrowserHideInFlight, isPopoverOperationInFlight, observeBrowserHide, runPopoverOperation } from "./popoverOperations.js";
30
29
  import { preserveAnimations } from "./preserveAnimations.js";
31
30
  import { useLayerContext } from "./LayerContext.js";
32
31
  import { useIsomorphicLayoutEffect } from "../hooks/useIsomorphicLayoutEffect.js";
@@ -501,6 +500,35 @@ function observeAnchorClearance(layer, anchor, isCurrent) {
501
500
  };
502
501
  }
503
502
 
503
+ /**
504
+ * Popover operations in flight, per document.
505
+ *
506
+ * The Popover API refuses to show a popover while the document is in the
507
+ * middle of showing or hiding ANY popover: `showPopover()` throws an
508
+ * `InvalidStateError` ("Invalid to show a popover during another show
509
+ * operation"); an engine still rolling the rule out instead refuses silently
510
+ * with a console warning, which would leave this hook open with nothing
511
+ * shown. Hiding a popover restores focus to the element that had it —
512
+ * synchronously, inside that window — so a focus-driven layer on the element
513
+ * receiving focus (a tooltip on the trigger that just closed a popover) asks
514
+ * to show while the hide is still running. Every layer's show and hide passes
515
+ * through here, so the window is observable: a `show()` that arrives inside
516
+ * it is replayed in a microtask, which runs once the script that started the
517
+ * operation — and the event dispatch it answered — has unwound.
518
+ */
519
+ const popoverOperationsByDocument = new WeakMap();
520
+ function runPopoverOperation(doc, operation) {
521
+ popoverOperationsByDocument.set(doc, (popoverOperationsByDocument.get(doc) ?? 0) + 1);
522
+ try {
523
+ operation();
524
+ } finally {
525
+ popoverOperationsByDocument.set(doc, (popoverOperationsByDocument.get(doc) ?? 1) - 1);
526
+ }
527
+ }
528
+ function isPopoverOperationInFlight(doc) {
529
+ return (popoverOperationsByDocument.get(doc) ?? 0) > 0;
530
+ }
531
+
504
532
  /**
505
533
  * Where a context layer is hosted, published to the one component that
506
534
  * renders it. The hook resolves the mount from the marker's parent once the
@@ -823,56 +851,34 @@ function useLayerImplementation(options) {
823
851
  const gesture = currentGesture();
824
852
  return dismissedByGestureRef.current === gesture;
825
853
  }, []);
826
-
827
- /**
828
- * Asks the browser to show the popover. Returns false when the browser
829
- * refused with an `InvalidStateError` while a hide it runs itself is still
830
- * in flight (the ledger counts it from `beforetoggle`); the caller then
831
- * replays the show once that hide has ended. Any other failure, and a
832
- * refusal outside such a hide, reaches the caller: a replay runs outside
833
- * the hide, so one that fails is not caught here.
834
- */
835
854
  const showPopoverElement = useCallback(popover => {
836
855
  // Finding infra-4: the Popover API is unsupported on Safari <17 and
837
856
  // Firefox <125. On those browsers `showPopover` does not exist, so fall
838
857
  // back to plain visibility instead of throwing.
839
858
  if (typeof popover.showPopover === 'function') {
840
- const doc = popover.ownerDocument;
841
- const duringBrowserHide = isBrowserHideInFlight(doc);
842
- try {
843
- runPopoverOperation(doc, () => {
844
- // The trigger is passed as the popover's invoker `source`: a layer
845
- // hosted away from its trigger then still takes its sequential
846
- // focus order (and its popover nesting) from the trigger rather
847
- // than from its own DOM position. Browsers without the option
848
- // ignore it. `source` is declared as an `HTMLElement`. A
849
- // caller-rendered icon trigger is an `SVGElement`, whose dictionary
850
- // conversion throws before the popover opens. Omitting the option
851
- // for it still anchors the layer, because positioning reads the
852
- // anchor-name pair, and only gives up the invoker's focus order.
853
- // The check asks the trigger's own window: an HTML trigger rendered
854
- // into another document (an iframe, a Picture-in-Picture window) is
855
- // not an instance of this window's `HTMLElement`, and keeps its
856
- // source.
857
- const trigger = triggerRef.current;
858
- const triggerView = trigger?.ownerDocument.defaultView;
859
- popover.showPopover({
860
- source: triggerView != null && trigger instanceof triggerView.HTMLElement ? trigger : undefined
861
- });
859
+ runPopoverOperation(popover.ownerDocument, () => {
860
+ // The trigger is passed as the popover's invoker `source`: a layer
861
+ // hosted away from its trigger then still takes its sequential focus
862
+ // order (and its popover nesting) from the trigger rather than from
863
+ // its own DOM position. Browsers without the option ignore it.
864
+ // `source` is declared as an `HTMLElement`. A caller-rendered icon
865
+ // trigger is an `SVGElement`, whose dictionary conversion throws
866
+ // before the popover opens. Omitting the option for it still anchors
867
+ // the layer, because positioning reads the anchor-name pair, and only
868
+ // gives up the invoker's focus order. The check asks the trigger's own
869
+ // window: an HTML trigger rendered into another document (an iframe,
870
+ // a Picture-in-Picture window) is not an instance of this window's
871
+ // `HTMLElement`, and keeps its source.
872
+ const trigger = triggerRef.current;
873
+ const triggerView = trigger?.ownerDocument.defaultView;
874
+ popover.showPopover({
875
+ source: triggerView != null && trigger instanceof triggerView.HTMLElement ? trigger : undefined
862
876
  });
863
- } catch (error) {
864
- // The name, not the constructor: a popover in another document throws
865
- // that document's `DOMException`.
866
- if (duringBrowserHide && error?.name === 'InvalidStateError') {
867
- return false;
868
- }
869
- throw error;
870
- }
877
+ });
871
878
  } else {
872
879
  popover.style.display = 'block';
873
880
  }
874
881
  openedPopoverRef.current = popover;
875
- return true;
876
882
  }, []);
877
883
  const isCurrentContextPopover = useCallback(popover => {
878
884
  if (mode !== 'context') {
@@ -964,35 +970,23 @@ function useLayerImplementation(options) {
964
970
  return;
965
971
  }
966
972
  if (!isOpenRef.current) {
967
- const replayWhenSettled = () => {
973
+ // Another popover is mid show/hide (typically one whose hide is handing
974
+ // focus back to this layer's trigger): the browser would refuse the
975
+ // show, so replay this call once that operation has returned.
976
+ if (isPopoverOperationInFlight(popover.ownerDocument)) {
968
977
  pendingShowRef.current = true;
969
- afterPopoverOperations(popover.ownerDocument, () => {
978
+ queueMicrotask(() => {
970
979
  if (pendingShowRef.current) {
971
980
  pendingShowRef.current = false;
972
981
  showRef.current();
973
982
  }
974
983
  });
975
- };
976
- // Another layer's own show or hide is running (typically a hide that is
977
- // handing focus back to this layer's trigger): the browser would refuse
978
- // the show, so replay this call once that operation has returned.
979
- if (isPopoverOperationInFlight(popover.ownerDocument)) {
980
- replayWhenSettled();
981
984
  return;
982
985
  }
983
986
  popover.removeAttribute(LAYER_CLEARS_ANCHOR_ATTRIBUTE);
984
987
  popover.removeAttribute(LAYER_SCROLLS_ATTRIBUTE);
985
988
  applyDeferredWritingContext(popover);
986
- // A hide the browser runs itself (an Escape its close watcher answers)
987
- // is counted too, from `beforetoggle` until the element's `toggle`, a
988
- // task after the hide has returned. The show is asked of the browser
989
- // first, because the browser accepts it once its hide has returned (a
990
- // light dismiss at pointerup, then this show at the click); only a show
991
- // it refuses replays once the hide's count has ended.
992
- if (!showPopoverElement(popover)) {
993
- replayWhenSettled();
994
- return;
995
- }
989
+ showPopoverElement(popover);
996
990
  if (keepsAnchorClear) {
997
991
  keepAnchorClear(popover, triggerRef.current);
998
992
  }
@@ -1124,21 +1118,6 @@ function useLayerImplementation(options) {
1124
1118
  // The isOpenRef guard prevents double-firing: when our hide() already set
1125
1119
  // the ref to false, the subsequent toggle event (which the browser fires
1126
1120
  // as a side-effect of hidePopover) sees false and skips.
1127
- // A hide the browser runs itself (light dismiss, popover="auto" stack
1128
- // eviction, an Escape its close watcher answers) never passes through
1129
- // hide(), so the ledger of popover operations would not know the document
1130
- // is mid-hide, and a layer that the hide's focus restore wakes would ask the
1131
- // browser to show inside it. `beforetoggle` fires synchronously as such a
1132
- // hide starts; the ledger counts the hide from there until the element's
1133
- // own `toggle`, independent of this hook's bindings, which a render inside
1134
- // the hide can replace.
1135
- const handleBeforeToggle = useCallback(e => {
1136
- const toggleEvent = e;
1137
- const el = e.currentTarget;
1138
- if (toggleEvent.newState === 'closed' && isOpenRef.current && el != null) {
1139
- observeBrowserHide(el);
1140
- }
1141
- }, []);
1142
1121
  const handleToggle = useCallback(e => {
1143
1122
  const toggleEvent = e;
1144
1123
  if (toggleEvent.newState === 'closed' && isOpenRef.current) {
@@ -1161,17 +1140,15 @@ function useLayerImplementation(options) {
1161
1140
  const bindToggleListener = useCallback((el, handler) => {
1162
1141
  if (listenedElRef.current && listenedHandlerRef.current && (listenedElRef.current !== el || listenedHandlerRef.current !== handler)) {
1163
1142
  listenedElRef.current.removeEventListener('toggle', listenedHandlerRef.current);
1164
- listenedElRef.current.removeEventListener('beforetoggle', handleBeforeToggle);
1165
1143
  listenedElRef.current = null;
1166
1144
  listenedHandlerRef.current = null;
1167
1145
  }
1168
1146
  if (el && listenedElRef.current !== el) {
1169
1147
  el.addEventListener('toggle', handler);
1170
- el.addEventListener('beforetoggle', handleBeforeToggle);
1171
1148
  listenedElRef.current = el;
1172
1149
  listenedHandlerRef.current = handler;
1173
1150
  }
1174
- }, [handleBeforeToggle]);
1151
+ }, []);
1175
1152
  const popoverRefCallback = useCallback(el => {
1176
1153
  popoverRef.current = el;
1177
1154
  bindToggleListener(el, handleToggle);
@@ -1181,19 +1158,9 @@ function useLayerImplementation(options) {
1181
1158
  } else if (el && isOpenRef.current && openedPopoverRef.current !== el && isCurrentContextPopover(el)) {
1182
1159
  // Changing a portal target remounts the popover. Preserve the logical
1183
1160
  // open state without firing onShow again for the replacement element.
1184
- // A show the browser refused during one of its own hides replays once
1185
- // that hide has ended, for the element still mounted then.
1186
- if (showPopoverElement(el)) {
1187
- if (keepsAnchorClear) {
1188
- keepAnchorClear(el, triggerRef.current);
1189
- }
1190
- } else {
1191
- afterPopoverOperations(el.ownerDocument, () => {
1192
- const current = popoverRef.current;
1193
- if (isOpenRef.current && current === el && openedPopoverRef.current !== el && showPopoverElement(el) && keepsAnchorClear) {
1194
- keepAnchorClear(el, triggerRef.current);
1195
- }
1196
- });
1161
+ showPopoverElement(el);
1162
+ if (keepsAnchorClear) {
1163
+ keepAnchorClear(el, triggerRef.current);
1197
1164
  }
1198
1165
  }
1199
1166
  }, [handleToggle, bindToggleListener, show, showPopoverElement, isCurrentContextPopover, keepsAnchorClear]);
@@ -1216,12 +1183,11 @@ function useLayerImplementation(options) {
1216
1183
  return () => {
1217
1184
  if (listenedElRef.current && listenedHandlerRef.current) {
1218
1185
  listenedElRef.current.removeEventListener('toggle', listenedHandlerRef.current);
1219
- listenedElRef.current.removeEventListener('beforetoggle', handleBeforeToggle);
1220
1186
  listenedElRef.current = null;
1221
1187
  listenedHandlerRef.current = null;
1222
1188
  }
1223
1189
  };
1224
- }, [handleToggle, bindToggleListener, handleBeforeToggle]);
1190
+ }, [handleToggle, bindToggleListener]);
1225
1191
 
1226
1192
  // Anchor visibility (FR5). The first frame must already be right (FR8), so
1227
1193
  // the opening read is synchronous — a layout effect runs before paint, and a
@@ -58,11 +58,10 @@ async function politeSince(page, since) {
58
58
  }
59
59
 
60
60
  /**
61
- * Matches a polite region whose newest message is `message`. Messages from
62
- * different announcers written before the region exposes the previous one are
63
- * joined in order (spec:AST-086 FR9), so the creation can follow a search
64
- * status still waiting. The search's own statuses replace each other instead
65
- * (its `hasReplace` announcer), so they are read whole.
61
+ * Matches a polite region whose newest message is `message`. Messages written
62
+ * before the region exposes the previous one are joined in order
63
+ * (spec:AST-086 FR9), so typing faster than a frame can leave the previous
64
+ * keystroke's message ahead of the one under test.
66
65
  */
67
66
  function newestMessage(message) {
68
67
  const escaped = message.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
@@ -85,7 +84,7 @@ test('the create row is announced as it appears and the highlight survives it va
85
84
  // "Bu": a partial match plus the create row above it.
86
85
  await search.pressSequentially('Bu');
87
86
  await expect(page.getByRole('option')).toHaveText(['Create "Bu"', 'Bug']);
88
- await expect.poll(async () => politeSince(page, 0)).toBe('1 result');
87
+ await expect.poll(async () => politeSince(page, 0)).toMatch(newestMessage('1 result'));
89
88
 
90
89
  // Highlight the create row, then type the letter that makes it vanish: the
91
90
  // highlight must not be left pointing at a row that no longer exists.
@@ -103,7 +102,7 @@ test('the create row is announced as it appears and the highlight survives it va
103
102
  await search.fill('');
104
103
  await search.pressSequentially('Urgent');
105
104
  await expect(page.getByRole('option')).toHaveText(['Create "Urgent"']);
106
- await expect.poll(async () => politeSince(page, beforeUrgent)).toBe('Create "Urgent"');
105
+ await expect.poll(async () => politeSince(page, beforeUrgent)).toMatch(newestMessage('Create "Urgent"'));
107
106
 
108
107
  // Enter commits: the caller adds the option, the search clears, and the new
109
108
  // label is a real row.
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelector.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/MultiSelector.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MultiSelector.d.ts","sourceRoot":"","sources":["../../src/MultiSelector/MultiSelector.tsx"],"names":[],"mappings":"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"}
@@ -735,28 +735,20 @@ export function MultiSelector({
735
735
  // Announce the filtered result count from the query-change handler (matching
736
736
  // BaseTypeahead) rather than a reactive effect: computing the count for the
737
737
  // next query here fires the announcement exactly once per keystroke and does
738
- // not re-speak on unrelated re-renders. The count, the create row and the
739
- // empty panel's message state one thing, how the search ended, so they go
740
- // through the search's own `hasReplace` announcer: one the next keystroke
741
- // replaces before it is exposed is withdrawn rather than joined
742
- // (`spec:AST-086` FR9, FR13), and keystrokes arriving within one frame,
743
- // from a scanner, dictation or automation, say only the last query's.
744
- // Selection changes keep the plain announcer above, so they still join.
745
- const announceSearch = useAnnounce({
746
- hasReplace: true
747
- });
738
+ // not re-speak on unrelated re-renders. Reuses the announce instance shared
739
+ // with the selection-count announcements above.
748
740
  const handleSearchChange = useCallback(nextQuery => {
749
741
  setSearchQuery(nextQuery);
750
742
  if (nextQuery.length === 0) {
751
743
  // Emptying the query clears the region rather than announcing a count.
752
- announceSearch('');
744
+ announce('');
753
745
  return;
754
746
  }
755
747
  // While isLoading the panel deliberately shows nothing, so announcing a
756
748
  // result would put a claim in the one channel the screen has gone quiet
757
749
  // for.
758
750
  if (isLoading) {
759
- announceSearch('');
751
+ announce('');
760
752
  return;
761
753
  }
762
754
  const count = filterOptionsByQuery(selectableItems, nextQuery).length;
@@ -766,7 +758,7 @@ export function MultiSelector({
766
758
  // The create row is the one result on screen, so the panel is not
767
759
  // empty and the rendered-message route below stays silent; say the
768
760
  // row.
769
- announceSearch(t('@astryx.multiSelector.createOption', {
761
+ announce(t('@astryx.multiSelector.createOption', {
770
762
  query: nextCreateQuery
771
763
  }));
772
764
  return;
@@ -777,10 +769,10 @@ export function MultiSelector({
777
769
  // keystroke — an async load landing with nothing that matches.
778
770
  return;
779
771
  }
780
- announceSearch(t('@astryx.multiSelector.resultCount', {
772
+ announce(t('@astryx.multiSelector.resultCount', {
781
773
  count
782
774
  }));
783
- }, [announceSearch, isLoading, selectableItems, getCreateQuery, t]);
775
+ }, [announce, isLoading, selectableItems, getCreateQuery, t]);
784
776
 
785
777
  // The panel's empty message is role="presentation" — role="listbox" permits
786
778
  // only option and group children — so this region is its only route to
@@ -803,12 +795,7 @@ export function MultiSelector({
803
795
  const leadingCount = (hasCreateRow ? 1 : 0) + (hasSelectAll ? 1 : 0);
804
796
  const realItemCount = sortedItems.length - leadingCount;
805
797
  const isPanelEmpty = surface.isOpen && !isLoading && realItemCount === 0 && !hasCreateRow;
806
- // Through the search's announcer: the empty panel is how the search ended,
807
- // so it and the count replace each other while not yet exposed
808
- // (`spec:AST-086` FR13).
809
- useAnnounceRenderedText(emptyStateRef, isPanelEmpty, searchQuery, {
810
- announce: announceSearch
811
- });
798
+ useAnnounceRenderedText(emptyStateRef, isPanelEmpty, searchQuery);
812
799
 
813
800
  // Handle toggle
814
801
  // Clear all selected values. Shared by the clear button and the keyboard
@@ -1 +1 @@
1
- {"version":3,"file":"TopNavMegaMenu.d.ts","sourceRoot":"","sources":["../../src/TopNav/TopNavMegaMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,EAKZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAkBf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAiO5C,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACvE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EACH,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAW,EACX,SAAe,EACf,YAAY,EACZ,GAAG,IAAI,EACR,EAAE,mBAAmB,4BAwCrB;yBAjDe,cAAc"}
1
+ {"version":3,"file":"TopNavMegaMenu.d.ts","sourceRoot":"","sources":["../../src/TopNav/TopNavMegaMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,EAKZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAkBf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAiO5C,MAAM,WAAW,mBAAoB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACvE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EACH,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAW,EACX,SAAe,EACf,YAAY,EACZ,GAAG,IAAI,EACR,EAAE,mBAAmB,4BAuCrB;yBAhDe,cAAc"}
@@ -217,7 +217,6 @@ export function TopNavMegaMenu({
217
217
  // =========================================================================
218
218
  if (renderMode === 'drawer') {
219
219
  return /*#__PURE__*/_jsx(DrawerMegaMenu, {
220
- ref: ref,
221
220
  label: label,
222
221
  items: items,
223
222
  featured: featured,
@@ -376,7 +375,6 @@ function DefaultMegaMenu({
376
375
  // =============================================================================
377
376
 
378
377
  function DrawerMegaMenu({
379
- ref,
380
378
  label,
381
379
  items,
382
380
  featured,
@@ -394,7 +392,6 @@ function DrawerMegaMenu({
394
392
  className: "x78zum5 xdt5ytf"
395
393
  },
396
394
  children: [/*#__PURE__*/_jsxs("button", {
397
- ref: ref,
398
395
  type: "button",
399
396
  ...rest,
400
397
  onClick: composeEventHandlers(onClickProp, () => setIsExpanded(v => !v)),
@@ -1 +1 @@
1
- {"version":3,"file":"TopNavMenu.d.ts","sourceRoot":"","sources":["../../src/TopNav/TopNavMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,EAKZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAaf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAoN5C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAMD,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACnE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAE5B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,KAAK,EACL,KAAK,EACL,KAAW,EACX,SAAe,EACf,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,GAAG,IAAI,EACR,EAAE,eAAe,4BAsSjB;yBAnTe,UAAU"}
1
+ {"version":3,"file":"TopNavMenu.d.ts","sourceRoot":"","sources":["../../src/TopNav/TopNavMenu.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,EAKZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAaf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAoN5C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAMD,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACnE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAE5B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,wBAAgB,UAAU,CAAC,EACzB,GAAG,EACH,KAAK,EACL,KAAK,EACL,KAAW,EACX,SAAe,EACf,MAAM,EACN,SAAS,EACT,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,YAAY,EAAE,gBAAgB,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,GAAG,IAAI,EACR,EAAE,eAAe,4BAqSjB;yBAlTe,UAAU"}
@@ -315,7 +315,6 @@ export function TopNavMenu({
315
315
  className: "x78zum5 xdt5ytf"
316
316
  },
317
317
  children: [/*#__PURE__*/_jsxs("button", {
318
- ref: ref,
319
318
  type: "button",
320
319
  ...rest,
321
320
  onMouseEnter: onMouseEnterProp,
@@ -97,12 +97,6 @@ export declare class GestureArena {
97
97
  get involvedRecognizers(): ReadonlyArray<GestureRecognizer>;
98
98
  /** New contacts, each with the recognizers on its hit path. */
99
99
  began(inputs: ReadonlyArray<ArenaBeganInput>): void;
100
- /**
101
- * A contact began where nothing takes part (plain page content). It is
102
- * never tracked and stays the browser's; recognizers already tracking a
103
- * gesture hear of it, as of any touch off their hit path.
104
- */
105
- untrackedBegan(input: TouchBeganInput): void;
106
100
  /** Contacts moved. */
107
101
  moved(inputs: ReadonlyArray<TouchInput>): void;
108
102
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"GestureArena.d.ts","sourceRoot":"","sources":["../../src/gestures/GestureArena.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,kBAAkB,EAElB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,EAEX,MAAM,SAAS,CAAC;AAGjB,MAAM,WAAW,YAAY;IAC3B,GAAG,IAAI,MAAM,CAAC;IACd,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACtD,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACrC;AAED,+EAA+E;AAC/E,eAAO,MAAM,YAAY,EAAE,YAK1B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACvD,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,4EAA4E;IAC5E,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACpD,qEAAqE;IACrE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAClE,4DAA4D;IAC5D,YAAY,CAAC,EAAE,CACb,UAAU,EAAE,iBAAiB,EAC7B,IAAI,EAAE,YAAY,EAClB,EAAE,EAAE,YAAY,KACb,IAAI,CAAC;CACX;AAoBD,qBAAa,YAAY;IACvB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,4EAA4E;IAC5E,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,iBAAiB,CAA4B;IACrD,yEAAyE;IACzE,OAAO,CAAC,WAAW,CAAuB;IAC1C,wEAAwE;IACxE,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,KAAK,CAAK;gBAEN,OAAO,GAAE,mBAAwB;IAQ7C,2CAA2C;IAC3C,GAAG,IAAI,MAAM;IAIb,oFAAoF;IACpF,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI9B,mCAAmC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI9C,8EAA8E;IAC9E,IAAI,OAAO,IAAI,aAAa,CAAC,YAAY,CAAC,CAEzC;IAED,+EAA+E;IAC/E,IAAI,mBAAmB,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAE1D;IAID,+DAA+D;IAC/D,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI;IA2FnD;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IA8B5C,sBAAsB;IACtB,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI;IAsB9C;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC;IA2BvE,+EAA+E;IAC/E,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAsBzD;;;;;;;OAOG;IACH,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IA0B/D,4EAA4E;IAC5E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM/B,uDAAuD;IACvD,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI;IAuB1E,sEAAsE;IACtE,QAAQ,CACN,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,IAAI,GACnB,IAAI;IAKP,gBAAgB;IAChB,UAAU,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAM/C,2DAA2D;IAC3D,IAAI,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAkBzC,OAAO,CAAC,kBAAkB;IA8D1B,0DAA0D;IAC1D,OAAO,CAAC,SAAS;IAUjB,+EAA+E;IAC/E,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,IAAI;IAaZ;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,KAAK;IAgBb;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,KAAK;IAyBb,OAAO,CAAC,gBAAgB;IAgBxB,qEAAqE;IACrE,OAAO,CAAC,UAAU;IAqClB,0DAA0D;IAC1D,OAAO,CAAC,UAAU;IAoClB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,MAAM;IAyBd,OAAO,CAAC,SAAS;IAMjB;;;;;OAKG;IACH,OAAO,CAAC,GAAG;IAmBX,OAAO,CAAC,WAAW;IA+BnB,4EAA4E;IAC5E,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,MAAM;IAoCd,OAAO,CAAC,iBAAiB;CAkC1B"}
1
+ {"version":3,"file":"GestureArena.d.ts","sourceRoot":"","sources":["../../src/gestures/GestureArena.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,kBAAkB,EAElB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,EAEX,MAAM,SAAS,CAAC;AAGjB,MAAM,WAAW,YAAY;IAC3B,GAAG,IAAI,MAAM,CAAC;IACd,UAAU,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACtD,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;CACrC;AAED,+EAA+E;AAC/E,eAAO,MAAM,YAAY,EAAE,YAK1B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;AAE9D,MAAM,WAAW,eAAgB,SAAQ,eAAe;IACtD,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACvD,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,4EAA4E;IAC5E,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACpD,qEAAqE;IACrE,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAClE,4DAA4D;IAC5D,YAAY,CAAC,EAAE,CACb,UAAU,EAAE,iBAAiB,EAC7B,IAAI,EAAE,YAAY,EAClB,EAAE,EAAE,YAAY,KACb,IAAI,CAAC;CACX;AAoBD,qBAAa,YAAY;IACvB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,4EAA4E;IAC5E,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,iBAAiB,CAA4B;IACrD,yEAAyE;IACzE,OAAO,CAAC,WAAW,CAAuB;IAC1C,wEAAwE;IACxE,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,KAAK,CAAK;gBAEN,OAAO,GAAE,mBAAwB;IAQ7C,2CAA2C;IAC3C,GAAG,IAAI,MAAM;IAIb,oFAAoF;IACpF,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI9B,mCAAmC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI9C,8EAA8E;IAC9E,IAAI,OAAO,IAAI,aAAa,CAAC,YAAY,CAAC,CAEzC;IAED,+EAA+E;IAC/E,IAAI,mBAAmB,IAAI,aAAa,CAAC,iBAAiB,CAAC,CAE1D;IAID,+DAA+D;IAC/D,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,IAAI;IA2FnD,sBAAsB;IACtB,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI;IAsB9C;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC;IA2BvE,+EAA+E;IAC/E,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAsBzD;;;;;;;OAOG;IACH,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IA0B/D,4EAA4E;IAC5E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM/B,uDAAuD;IACvD,iBAAiB,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI;IAuB1E,sEAAsE;IACtE,QAAQ,CACN,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,IAAI,GACnB,IAAI;IAKP,gBAAgB;IAChB,UAAU,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAM/C,2DAA2D;IAC3D,IAAI,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAkBzC,OAAO,CAAC,kBAAkB;IA8D1B,0DAA0D;IAC1D,OAAO,CAAC,SAAS;IAUjB,+EAA+E;IAC/E,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,IAAI;IAaZ;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,KAAK;IAgBb;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,KAAK;IAyBb,OAAO,CAAC,gBAAgB;IAgBxB,qEAAqE;IACrE,OAAO,CAAC,UAAU;IAqClB,0DAA0D;IAC1D,OAAO,CAAC,UAAU;IAoClB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,MAAM;IAyBd,OAAO,CAAC,SAAS;IAMjB;;;;;OAKG;IACH,OAAO,CAAC,GAAG;IAmBX,OAAO,CAAC,WAAW;IA+BnB,4EAA4E;IAC5E,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,MAAM;IAoCd,OAAO,CAAC,iBAAiB;CAkC1B"}
@@ -195,45 +195,6 @@ export class GestureArena {
195
195
  });
196
196
  }
197
197
 
198
- /**
199
- * A contact began where nothing takes part (plain page content). It is
200
- * never tracked and stays the browser's; recognizers already tracking a
201
- * gesture hear of it, as of any touch off their hit path.
202
- */
203
- untrackedBegan(input) {
204
- if (!this.active.some(recognizer => recognizer.numberOfTouches > 0)) {
205
- return;
206
- }
207
- this.run(input.time, () => {
208
- const time = this.clampTime(input.time);
209
- const touch = {
210
- id: input.id,
211
- pointerType: input.pointerType,
212
- phase: 'began',
213
- x: input.x,
214
- y: input.y,
215
- time,
216
- startX: input.x,
217
- startY: input.y,
218
- startTime: time,
219
- samples: [{
220
- x: input.x,
221
- y: input.y,
222
- time
223
- }],
224
- target: input.target,
225
- scroll: input.scroll ?? null,
226
- takenByBrowser: false
227
- };
228
- const context = this.context();
229
- for (const recognizer of [...this.active]) {
230
- if (recognizer.numberOfTouches > 0) {
231
- recognizer.deliverBeganElsewhere([touch], context);
232
- }
233
- }
234
- });
235
- }
236
-
237
198
  /** Contacts moved. */
238
199
  moved(inputs) {
239
200
  if (inputs.length === 0) {