@tamagui/focus-scope 1.127.3 → 1.128.1

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 (86) hide show
  1. package/dist/cjs/FocusScope.cjs +29 -8
  2. package/dist/cjs/FocusScope.js +48 -20
  3. package/dist/cjs/FocusScope.js.map +1 -1
  4. package/dist/cjs/FocusScopeController.cjs +76 -0
  5. package/dist/cjs/FocusScopeController.js +69 -0
  6. package/dist/cjs/FocusScopeController.js.map +6 -0
  7. package/dist/cjs/FocusScopeController.native.js +67 -0
  8. package/dist/cjs/FocusScopeController.native.js.map +6 -0
  9. package/dist/cjs/index.cjs +2 -1
  10. package/dist/cjs/index.js +1 -0
  11. package/dist/cjs/index.js.map +1 -1
  12. package/dist/cjs/index.native.js +3 -1
  13. package/dist/cjs/index.native.js.map +1 -1
  14. package/dist/cjs/{FocusScopeProps.cjs → types.cjs} +2 -2
  15. package/dist/cjs/{FocusScopeProps.js → types.js} +3 -3
  16. package/dist/cjs/{FocusScopeProps.js.map → types.js.map} +1 -1
  17. package/dist/cjs/{FocusScopeProps.native.js → types.native.js} +3 -3
  18. package/dist/cjs/types.native.js.map +6 -0
  19. package/dist/esm/FocusScope.js +50 -20
  20. package/dist/esm/FocusScope.js.map +1 -1
  21. package/dist/esm/FocusScope.mjs +29 -8
  22. package/dist/esm/FocusScope.mjs.map +1 -1
  23. package/dist/esm/FocusScopeController.js +48 -0
  24. package/dist/esm/FocusScopeController.js.map +6 -0
  25. package/dist/esm/FocusScopeController.mjs +39 -0
  26. package/dist/esm/FocusScopeController.mjs.map +1 -0
  27. package/dist/esm/FocusScopeController.native.js +41 -0
  28. package/dist/esm/FocusScopeController.native.js.map +1 -0
  29. package/dist/esm/index.js +1 -0
  30. package/dist/esm/index.js.map +1 -1
  31. package/dist/esm/index.mjs +1 -0
  32. package/dist/esm/index.mjs.map +1 -1
  33. package/dist/esm/index.native.js +1 -0
  34. package/dist/esm/index.native.js.map +1 -1
  35. package/dist/esm/types.js +1 -0
  36. package/dist/esm/types.mjs +2 -0
  37. package/dist/esm/types.native.js +2 -0
  38. package/dist/jsx/FocusScope.js +50 -20
  39. package/dist/jsx/FocusScope.js.map +1 -1
  40. package/dist/jsx/FocusScope.mjs +29 -8
  41. package/dist/jsx/FocusScope.mjs.map +1 -1
  42. package/dist/jsx/FocusScopeController.js +48 -0
  43. package/dist/jsx/FocusScopeController.js.map +6 -0
  44. package/dist/jsx/FocusScopeController.mjs +39 -0
  45. package/dist/jsx/FocusScopeController.mjs.map +1 -0
  46. package/dist/jsx/FocusScopeController.native.js +39 -0
  47. package/dist/jsx/FocusScopeController.native.js.map +6 -0
  48. package/dist/jsx/index.js +1 -0
  49. package/dist/jsx/index.js.map +1 -1
  50. package/dist/jsx/index.mjs +1 -0
  51. package/dist/jsx/index.mjs.map +1 -1
  52. package/dist/jsx/index.native.js +1 -0
  53. package/dist/jsx/index.native.js.map +1 -1
  54. package/dist/jsx/types.js +1 -0
  55. package/dist/jsx/types.mjs +2 -0
  56. package/dist/jsx/types.native.js +1 -0
  57. package/package.json +7 -5
  58. package/src/FocusScope.native.tsx +1 -1
  59. package/src/FocusScope.tsx +83 -38
  60. package/src/FocusScopeController.tsx +78 -0
  61. package/src/index.ts +1 -0
  62. package/src/{FocusScopeProps.tsx → types.tsx} +10 -0
  63. package/types/FocusScope.d.ts +1 -1
  64. package/types/FocusScope.d.ts.map +1 -1
  65. package/types/FocusScope.native.d.ts +1 -1
  66. package/types/FocusScope.native.d.ts.map +1 -1
  67. package/types/FocusScopeController.d.ts +19 -0
  68. package/types/FocusScopeController.d.ts.map +1 -0
  69. package/types/index.d.ts +1 -0
  70. package/types/index.d.ts.map +1 -1
  71. package/types/{FocusScopeProps.d.ts → types.d.ts} +11 -1
  72. package/types/types.d.ts.map +1 -0
  73. package/dist/cjs/FocusScopeProps.native.js.map +0 -6
  74. package/dist/esm/FocusScopeProps.js +0 -1
  75. package/dist/esm/FocusScopeProps.mjs +0 -2
  76. package/dist/esm/FocusScopeProps.native.js +0 -2
  77. package/dist/jsx/FocusScopeProps.js +0 -1
  78. package/dist/jsx/FocusScopeProps.mjs +0 -2
  79. package/dist/jsx/FocusScopeProps.native.js +0 -1
  80. package/types/FocusScopeProps.d.ts.map +0 -1
  81. /package/dist/esm/{FocusScopeProps.js.map → types.js.map} +0 -0
  82. /package/dist/esm/{FocusScopeProps.mjs.map → types.mjs.map} +0 -0
  83. /package/dist/esm/{FocusScopeProps.native.js.map → types.native.js.map} +0 -0
  84. /package/dist/jsx/{FocusScopeProps.js.map → types.js.map} +0 -0
  85. /package/dist/jsx/{FocusScopeProps.mjs.map → types.mjs.map} +0 -0
  86. /package/dist/jsx/{FocusScopeProps.native.js.map → types.native.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/FocusScope.tsx"],
4
- "mappings": "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",
4
+ "mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAChC,SAAS,WAAW,OAAO,sBAAsB;AACjD,SAAS,gBAAgB;AACzB,YAAY,WAAW;AACvB,SAAS,sCAAsC;AA2ClC;AArCb,MAAM,qBAAqB,+BACrB,uBAAuB,iCACvB,gBAAgB,EAAE,SAAS,IAAO,YAAY,GAAK,GAUnD,aAAa,MAAM;AAAA,EACvB,SACE,EAAE,mBAAmB,GAAG,MAAM,GAC9B,cACA;AAEA,UAAM,UAAU,+BAA+B,cAAc,mBAAmB;AAAA,MAC9E,MAAM;AAAA,MACN,UAAU,CAAC;AAAA,IACb,CAAC,GAEK,cAA+B;AAAA,MACnC,GAAG;AAAA,MACH,SAAS,QAAQ,WAAW,MAAM;AAAA,MAClC,MAAM,QAAQ,QAAQ,MAAM;AAAA,MAC5B,SAAS,QAAQ,WAAW,MAAM;AAAA,MAClC,kBAAkB,QAAQ,oBAAoB,MAAM;AAAA,MACpD,oBAAoB,QAAQ,sBAAsB,MAAM;AAAA,MACxD,cAAc,QAAQ,gBAAgB,MAAM;AAAA,MAC5C,aAAa,QAAQ,eAAe,MAAM;AAAA,IAC5C,GAEM,aAAa,cAAc,aAAa,YAAY;AAE1D,WAAI,OAAO,YAAY,YAAa,aAC3B,gCAAG,sBAAY,SAAS,UAAU,GAAE,IAGtC,MAAM;AAAA,MACX,MAAM,SAAS,KAAK,YAAY,QAAQ;AAAA,MACxC;AAAA,IACF;AAAA,EACF;AACF;AAMO,SAAS,cACd,OACA,cACA;AACA,QAAM;AAAA,IACJ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,UAAU;AAAA,IACV,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA,GAAG;AAAA,EACL,IAAI,OACE,CAAC,WAAW,YAAY,IAAI,MAAM,SAA6B,IAAI,GACnE,mBAAmB,SAAS,oBAAoB,GAChD,qBAAqB,SAAS,sBAAsB,GACpD,wBAAwB,MAAM,OAA2B,IAAI,GAC7D,yBAAyB,MAAM;AAAA,IACnC,CAAC,SAAS;AACR,sBAAgB,MAAM;AACpB,qBAAa,IAAI;AAAA,MACnB,CAAC;AAAA,IACH;AAAA,IACA,CAAC,YAAY;AAAA,EACf,GACM,eAAe,gBAAgB,cAAc,sBAAsB,GAEnE,aAAa,MAAM,OAAO;AAAA,IAC9B,QAAQ;AAAA,IACR,QAAQ;AACN,WAAK,SAAS;AAAA,IAChB;AAAA,IACA,SAAS;AACP,WAAK,SAAS;AAAA,IAChB;AAAA,EACF,CAAC,EAAE;AAGH,QAAM,UAAU,MAAM;AAEpB,QADI,CAAC,WACD,CAAC,QAAS;AACd,UAAM,aAAa,IAAI,gBAAgB;AAEvC,aAAS,cAAc,OAAmB;AACxC,UAAI,WAAW,UAAU,CAAC,UAAW;AACrC,YAAM,SAAS,MAAM;AACrB,MAAI,UAAU,SAAS,MAAM,KAG3B,QAAQ,iBAAiB,QAAQ,YAAY,EAAE,QAAQ,WAAW,OAAO,CAAC,GAC1E,sBAAsB,UAAU,UAEhC,MAAM,sBAAsB,SAAS,EAAE,QAAQ,GAAK,CAAC;AAAA,IAEzD;AAEA,aAAS,eAAe,OAAmB;AAEzC,MADA,WAAW,MAAM,GACb,aAAW,UAAU,CAAC,eACrB,UAAU,SAAS,MAAM,aAAmC,KAC/D,MAAM,sBAAsB,SAAS,EAAE,QAAQ,GAAK,CAAC;AAAA,IAEzD;AAEA,aAAS,aAAa;AACpB,4BAAsB,UAAU;AAAA,IAClC;AAEA,oBAAS,iBAAiB,WAAW,aAAa,GAClD,SAAS,iBAAiB,YAAY,cAAc,GAC7C,MAAM;AACX,iBAAW,MAAM,GACjB,SAAS,oBAAoB,WAAW,aAAa,GACrD,SAAS,oBAAoB,YAAY,cAAc;AAAA,IACzD;AAAA,EACF,GAAG,CAAC,SAAS,cAAc,WAAW,WAAW,MAAM,CAAC,GAExD;AAAA,IACE,OAAO,WAAW;AAGhB,UAFI,CAAC,WACD,CAAC,aACD,aAAc;AAElB,uBAAiB,IAAI,UAAU;AAC/B,YAAM,2BAA2B,SAAS;AAG1C,UAAI,CAFwB,UAAU,SAAS,wBAAwB,GAE7C;AACxB,cAAM,aAAa,IAAI,YAAY,oBAAoB,aAAa;AAGpE,YAFA,UAAU,iBAAiB,oBAAoB,gBAAgB,GAC/D,UAAU,cAAc,UAAU,GAC9B,CAAC,WAAW,kBAAkB;AAEhC,UAAI,gBACF,MAAM,MAAM,OAAO,eAAgB,WAAW,cAAc,IAAI,MAAM,GACtE,MAAM,UAAU,MAAM;AAGxB,gBAAM,aAAa,YAAY,sBAAsB,SAAS,CAAC;AAE/D,qBAAW,YAAY,EAAE,QAAQ,GAAK,CAAC,GAEnC,SAAS,kBAAkB,4BAC7B,MAAM,SAAS;AAAA,QAEnB;AAAA,MACF;AAEA,aAAO,MAAM;AACX,kBAAU,oBAAoB,oBAAoB,gBAAgB;AAElE,cAAM,eAAe,IAAI,YAAY,sBAAsB,aAAa;AACxE,kBAAU,iBAAiB,sBAAsB,kBAAkB,GACnE,UAAU,cAAc,YAAY,GAC/B,aAAa,oBAChB,MAAM,4BAA4B,SAAS,MAAM,EAAE,QAAQ,GAAK,CAAC,GAGnE,UAAU,oBAAoB,sBAAsB,kBAAkB,GAEtE,iBAAiB,OAAO,UAAU;AAAA,MACpC;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAGA,QAAM,gBAAgB,MAAM;AAAA,IAC1B,CAAC,UAA+B;AAG9B,UAFI,CAAC,WACD,CAAC,QACD,WAAW,OAAQ;AAEvB,YAAM,WACJ,MAAM,QAAQ,SAAS,CAAC,MAAM,UAAU,CAAC,MAAM,WAAW,CAAC,MAAM,SAC7D,iBAAiB,SAAS;AAEhC,UAAI,YAAY,gBAAgB;AAC9B,cAAMA,aAAY,MAAM,eAClB,CAAC,OAAO,IAAI,IAAI,iBAAiBA,UAAS;AAIhD,QAHkC,SAAS,OAMrC,CAAC,MAAM,YAAY,mBAAmB,QACxC,MAAM,eAAe,GACjB,QAAM,MAAM,OAAO,EAAE,QAAQ,GAAK,CAAC,KAC9B,MAAM,YAAY,mBAAmB,UAC9C,MAAM,eAAe,GACjB,QAAM,MAAM,MAAM,EAAE,QAAQ,GAAK,CAAC,KAPpC,mBAAmBA,cAAW,MAAM,eAAe;AAAA,MAU3D;AAAA,IACF;AAAA,IACA,CAAC,MAAM,SAAS,WAAW,MAAM;AAAA,EACnC;AAEA,SAAO;AAAA,IACL,UAAU;AAAA,IACV,GAAG;AAAA,IACH,KAAK;AAAA,IACL,WAAW;AAAA,EACb;AACF;AAUA,SAAS,WAAW,YAA2B,EAAE,SAAS,GAAM,IAAI,CAAC,GAAG;AACtE,QAAM,2BAA2B,SAAS;AAC1C,aAAW,aAAa;AAEtB,QADA,MAAM,WAAW,EAAE,OAAO,CAAC,GACvB,SAAS,kBAAkB,yBAA0B;AAE7D;AAKA,SAAS,iBAAiB,WAAwB;AAChD,QAAM,aAAa,sBAAsB,SAAS,GAC5C,QAAQ,YAAY,YAAY,SAAS,GACzC,OAAO,YAAY,WAAW,QAAQ,GAAG,SAAS;AACxD,SAAO,CAAC,OAAO,IAAI;AACrB;AAYA,SAAS,sBAAsB,WAAwB;AACrD,QAAM,QAAuB,CAAC,GACxB,SAAS,SAAS,iBAAiB,WAAW,WAAW,cAAc;AAAA,IAC3E,YAAY,CAAC,SAAc;AACzB,YAAM,gBAAgB,KAAK,YAAY,WAAW,KAAK,SAAS;AAChE,aAAI,KAAK,YAAY,KAAK,UAAU,gBAAsB,WAAW,cAI9D,KAAK,YAAY,IAAI,WAAW,gBAAgB,WAAW;AAAA,IACpE;AAAA,EACF,CAAC;AACD,SAAO,OAAO,SAAS,IAAG,OAAM,KAAK,OAAO,WAA0B;AAGtE,SAAO;AACT;AAMA,SAAS,YAAY,UAAyB,WAAwB;AACpE,aAAW,WAAW;AAEpB,QAAI,CAAC,SAAS,SAAS,EAAE,MAAM,UAAU,CAAC,EAAG,QAAO;AAExD;AAEA,SAAS,SAAS,MAAmB,EAAE,KAAK,GAA2B;AACrE,MAAI,iBAAiB,IAAI,EAAE,eAAe,SAAU,QAAO;AAC3D,SAAO,QAAM;AAEX,QAAI,SAAS,UAAa,SAAS,KAAM,QAAO;AAChD,QAAI,iBAAiB,IAAI,EAAE,YAAY,OAAQ,QAAO;AACtD,WAAO,KAAK;AAAA,EACd;AACA,SAAO;AACT;AAEA,SAAS,kBACP,SACqD;AACrD,SAAO,mBAAmB,oBAAoB,YAAY;AAC5D;AAEA,SAAS,MAAM,SAAkC,EAAE,SAAS,GAAM,IAAI,CAAC,GAAG;AAExE,MAAI,SAAS,OAAO;AAClB,UAAM,2BAA2B,SAAS;AAE1C,YAAQ,MAAM,EAAE,eAAe,GAAK,CAAC,GAEjC,YAAY,4BAA4B,kBAAkB,OAAO,KAAK,UACxE,QAAQ,OAAO;AAAA,EACnB;AACF;AAOA,MAAM,mBAAmB,uBAAuB;AAEhD,SAAS,yBAAyB;AAEhC,MAAI,QAAyB,CAAC;AAE9B,SAAO;AAAA,IACL,IAAI,YAA2B;AAE7B,YAAM,mBAAmB,MAAM,CAAC;AAChC,MAAI,eAAe,oBACjB,kBAAkB,MAAM,GAG1B,QAAQ,YAAY,OAAO,UAAU,GACrC,MAAM,QAAQ,UAAU;AAAA,IAC1B;AAAA,IAEA,OAAO,YAA2B;AAChC,cAAQ,YAAY,OAAO,UAAU,GACrC,MAAM,CAAC,GAAG,OAAO;AAAA,IACnB;AAAA,EACF;AACF;AAEA,SAAS,YAAe,OAAY,MAAS;AAC3C,QAAM,eAAe,CAAC,GAAG,KAAK,GACxB,QAAQ,aAAa,QAAQ,IAAI;AACvC,SAAI,UAAU,MACZ,aAAa,OAAO,OAAO,CAAC,GAEvB;AACT;AAEA,SAAS,YAAY,OAAsB;AACzC,SAAO,MAAM,OAAO,CAAC,SAAS,KAAK,YAAY,GAAG;AACpD;",
5
5
  "names": ["container"]
6
6
  }
@@ -1,7 +1,9 @@
1
1
  import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { useEvent } from "@tamagui/use-event";
3
2
  import { startTransition } from "@tamagui/start-transition";
3
+ import { fullyIdle, sleep, useAsyncEffect } from "@tamagui/use-async";
4
+ import { useEvent } from "@tamagui/use-event";
4
5
  import * as React from "react";
6
+ import { useFocusScopeControllerContext } from "./FocusScopeController.mjs";
5
7
  import { Fragment, jsx } from "react/jsx-runtime";
6
8
  const AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount",
7
9
  AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount",
@@ -9,11 +11,28 @@ const AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount",
9
11
  bubbles: !1,
10
12
  cancelable: !0
11
13
  },
12
- FocusScope = React.forwardRef(function (props, forwardedRef) {
13
- const childProps = useFocusScope(props, forwardedRef);
14
- return typeof props.children == "function" ? /* @__PURE__ */jsx(Fragment, {
15
- children: props.children(childProps)
16
- }) : React.cloneElement(React.Children.only(props.children), childProps);
14
+ FocusScope = React.forwardRef(function ({
15
+ __scopeFocusScope,
16
+ ...props
17
+ }, forwardedRef) {
18
+ const context = useFocusScopeControllerContext("FocusScope", __scopeFocusScope, {
19
+ warn: !1,
20
+ fallback: {}
21
+ }),
22
+ mergedProps = {
23
+ ...props,
24
+ enabled: context.enabled ?? props.enabled,
25
+ loop: context.loop ?? props.loop,
26
+ trapped: context.trapped ?? props.trapped,
27
+ onMountAutoFocus: context.onMountAutoFocus ?? props.onMountAutoFocus,
28
+ onUnmountAutoFocus: context.onUnmountAutoFocus ?? props.onUnmountAutoFocus,
29
+ forceUnmount: context.forceUnmount ?? props.forceUnmount,
30
+ focusOnIdle: context.focusOnIdle ?? props.focusOnIdle
31
+ },
32
+ childProps = useFocusScope(mergedProps, forwardedRef);
33
+ return typeof mergedProps.children == "function" ? /* @__PURE__ */jsx(Fragment, {
34
+ children: mergedProps.children(childProps)
35
+ }) : React.cloneElement(React.Children.only(mergedProps.children), childProps);
17
36
  });
18
37
  function useFocusScope(props, forwardedRef) {
19
38
  const {
@@ -23,6 +42,7 @@ function useFocusScope(props, forwardedRef) {
23
42
  onMountAutoFocus: onMountAutoFocusProp,
24
43
  onUnmountAutoFocus: onUnmountAutoFocusProp,
25
44
  forceUnmount,
45
+ focusOnIdle = !0,
26
46
  children,
27
47
  ...scopeProps
28
48
  } = props,
@@ -68,13 +88,14 @@ function useFocusScope(props, forwardedRef) {
68
88
  return document.addEventListener("focusin", handleFocusIn), document.addEventListener("focusout", handleFocusOut), () => {
69
89
  controller.abort(), document.removeEventListener("focusin", handleFocusIn), document.removeEventListener("focusout", handleFocusOut);
70
90
  };
71
- }, [trapped, forceUnmount, container, focusScope.paused]), React.useEffect(() => {
91
+ }, [trapped, forceUnmount, container, focusScope.paused]), useAsyncEffect(async signal => {
72
92
  if (!enabled || !container || forceUnmount) return;
73
93
  focusScopesStack.add(focusScope);
74
94
  const previouslyFocusedElement = document.activeElement;
75
95
  if (!container.contains(previouslyFocusedElement)) {
76
96
  const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
77
97
  if (container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus), container.dispatchEvent(mountEvent), !mountEvent.defaultPrevented) {
98
+ focusOnIdle && (await sleep(typeof focusOnIdle == "number" ? focusOnIdle : 16, signal), await fullyIdle(signal));
78
99
  const candidates = removeLinks(getTabbableCandidates(container));
79
100
  focusFirst(candidates, {
80
101
  select: !0
@@ -88,7 +109,7 @@ function useFocusScope(props, forwardedRef) {
88
109
  select: !0
89
110
  }), container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), focusScopesStack.remove(focusScope);
90
111
  };
91
- }, [enabled, container, forceUnmount, onMountAutoFocus, onUnmountAutoFocus, focusScope]);
112
+ }, [enabled, container, forceUnmount, onMountAutoFocus, onUnmountAutoFocus, focusScope, focusOnIdle]);
92
113
  const handleKeyDown = React.useCallback(event => {
93
114
  if (!trapped || !loop || focusScope.paused) return;
94
115
  const isTabKey = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey,
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","useEvent","startTransition","React","Fragment","jsx","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","bubbles","cancelable","FocusScope","forwardRef","props","forwardedRef","childProps","useFocusScope","children","cloneElement","Children","only","loop","enabled","trapped","onMountAutoFocus","onMountAutoFocusProp","onUnmountAutoFocus","onUnmountAutoFocusProp","forceUnmount","scopeProps","container","setContainer","useState","lastFocusedElementRef","useRef","setContainerTransition","useCallback","node","composedRefs","focusScope","paused","pause","resume","current","useEffect","controller","AbortController","handleFocusIn","event","target","contains","addEventListener","handleBlur","signal","focus","select","handleFocusOut","abort","relatedTarget","document","removeEventListener","focusScopesStack","add","previouslyFocusedElement","activeElement","mountEvent","CustomEvent","dispatchEvent","defaultPrevented","candidates","removeLinks","getTabbableCandidates","focusFirst","unmountEvent","body","remove","handleKeyDown","isTabKey","key","altKey","ctrlKey","metaKey","focusedElement","container2","currentTarget","first","last","getTabbableEdges","shiftKey","preventDefault","tabIndex","ref","onKeyDown","candidate","findVisible","reverse","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","tagName","type","disabled","hidden","FILTER_SKIP","FILTER_ACCEPT","nextNode","push","currentNode","elements","element","isHidden","upTo","getComputedStyle","visibility","display","parentElement","isSelectableInput","HTMLInputElement","preventScroll","createFocusScopesStack","stack","activeFocusScope","arrayRemove","unshift","array","item","updatedArray","index","indexOf","splice","items","filter"],"sources":["../../src/FocusScope.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useComposedRefs","startTransition","fullyIdle","sleep","useAsyncEffect","useEvent","React","useFocusScopeControllerContext","Fragment","jsx","AUTOFOCUS_ON_MOUNT","AUTOFOCUS_ON_UNMOUNT","EVENT_OPTIONS","bubbles","cancelable","FocusScope","forwardRef","__scopeFocusScope","props","forwardedRef","context","warn","fallback","mergedProps","enabled","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","forceUnmount","focusOnIdle","childProps","useFocusScope","children","cloneElement","Children","only","onMountAutoFocusProp","onUnmountAutoFocusProp","scopeProps","container","setContainer","useState","lastFocusedElementRef","useRef","setContainerTransition","useCallback","node","composedRefs","focusScope","paused","pause","resume","current","useEffect","controller","AbortController","handleFocusIn","event","target","contains","addEventListener","handleBlur","signal","focus","select","handleFocusOut","abort","relatedTarget","document","removeEventListener","focusScopesStack","add","previouslyFocusedElement","activeElement","mountEvent","CustomEvent","dispatchEvent","defaultPrevented","candidates","removeLinks","getTabbableCandidates","focusFirst","unmountEvent","body","remove","handleKeyDown","isTabKey","key","altKey","ctrlKey","metaKey","focusedElement","container2","currentTarget","first","last","getTabbableEdges","shiftKey","preventDefault","tabIndex","ref","onKeyDown","candidate","findVisible","reverse","nodes","walker","createTreeWalker","NodeFilter","SHOW_ELEMENT","acceptNode","isHiddenInput","tagName","type","disabled","hidden","FILTER_SKIP","FILTER_ACCEPT","nextNode","push","currentNode","elements","element","isHidden","upTo","getComputedStyle","visibility","display","parentElement","isSelectableInput","HTMLInputElement","preventScroll","createFocusScopesStack","stack","activeFocusScope","arrayRemove","unshift","array","item","updatedArray","index","indexOf","splice","items","filter"],"sources":["../../src/FocusScope.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAChC,SAASC,eAAA,QAAuB;AAChC,SAASC,SAAA,EAAWC,KAAA,EAAOC,cAAA,QAAsB;AACjD,SAASC,QAAA,QAAgB;AACzB,YAAYC,KAAA,MAAW;AACvB,SAASC,8BAAA,QAAsC;AA2ClC,SAAAC,QAAA,EAAAC,GAAA;AArCb,MAAMC,kBAAA,GAAqB;EACrBC,oBAAA,GAAuB;EACvBC,aAAA,GAAgB;IAAEC,OAAA,EAAS;IAAOC,UAAA,EAAY;EAAK;EAUnDC,UAAA,GAAaT,KAAA,CAAMU,UAAA,CACvB,UACE;IAAEC,iBAAA;IAAmB,GAAGC;EAAM,GAC9BC,YAAA,EACA;IAEA,MAAMC,OAAA,GAAUb,8BAAA,CAA+B,cAAcU,iBAAA,EAAmB;QAC9EI,IAAA,EAAM;QACNC,QAAA,EAAU,CAAC;MACb,CAAC;MAEKC,WAAA,GAA+B;QACnC,GAAGL,KAAA;QACHM,OAAA,EAASJ,OAAA,CAAQI,OAAA,IAAWN,KAAA,CAAMM,OAAA;QAClCC,IAAA,EAAML,OAAA,CAAQK,IAAA,IAAQP,KAAA,CAAMO,IAAA;QAC5BC,OAAA,EAASN,OAAA,CAAQM,OAAA,IAAWR,KAAA,CAAMQ,OAAA;QAClCC,gBAAA,EAAkBP,OAAA,CAAQO,gBAAA,IAAoBT,KAAA,CAAMS,gBAAA;QACpDC,kBAAA,EAAoBR,OAAA,CAAQQ,kBAAA,IAAsBV,KAAA,CAAMU,kBAAA;QACxDC,YAAA,EAAcT,OAAA,CAAQS,YAAA,IAAgBX,KAAA,CAAMW,YAAA;QAC5CC,WAAA,EAAaV,OAAA,CAAQU,WAAA,IAAeZ,KAAA,CAAMY;MAC5C;MAEMC,UAAA,GAAaC,aAAA,CAAcT,WAAA,EAAaJ,YAAY;IAE1D,OAAI,OAAOI,WAAA,CAAYU,QAAA,IAAa,aAC3B,eAAAxB,GAAA,CAAAD,QAAA;MAAGyB,QAAA,EAAAV,WAAA,CAAYU,QAAA,CAASF,UAAU;IAAA,CAAE,IAGtCzB,KAAA,CAAM4B,YAAA,CACX5B,KAAA,CAAM6B,QAAA,CAASC,IAAA,CAAKb,WAAA,CAAYU,QAAQ,GACxCF,UACF;EACF,CACF;AAMO,SAASC,cACdd,KAAA,EACAC,YAAA,EACA;EACA,MAAM;MACJM,IAAA,GAAO;MACPD,OAAA,GAAU;MACVE,OAAA,GAAU;MACVC,gBAAA,EAAkBU,oBAAA;MAClBT,kBAAA,EAAoBU,sBAAA;MACpBT,YAAA;MACAC,WAAA,GAAc;MACdG,QAAA;MACA,GAAGM;IACL,IAAIrB,KAAA;IACE,CAACsB,SAAA,EAAWC,YAAY,IAAInC,KAAA,CAAMoC,QAAA,CAA6B,IAAI;IACnEf,gBAAA,GAAmBtB,QAAA,CAASgC,oBAAoB;IAChDT,kBAAA,GAAqBvB,QAAA,CAASiC,sBAAsB;IACpDK,qBAAA,GAAwBrC,KAAA,CAAMsC,MAAA,CAA2B,IAAI;IAC7DC,sBAAA,GAAyBvC,KAAA,CAAMwC,WAAA,CAClCC,IAAA,IAAS;MACR9C,eAAA,CAAgB,MAAM;QACpBwC,YAAA,CAAaM,IAAI;MACnB,CAAC;IACH,GACA,CAACN,YAAY,CACf;IACMO,YAAA,GAAehD,eAAA,CAAgBmB,YAAA,EAAc0B,sBAAsB;IAEnEI,UAAA,GAAa3C,KAAA,CAAMsC,MAAA,CAAO;MAC9BM,MAAA,EAAQ;MACRC,MAAA,EAAQ;QACN,KAAKD,MAAA,GAAS;MAChB;MACAE,OAAA,EAAS;QACP,KAAKF,MAAA,GAAS;MAChB;IACF,CAAC,EAAEG,OAAA;EAGH/C,KAAA,CAAMgD,SAAA,CAAU,MAAM;IAEpB,IADI,CAAC9B,OAAA,IACD,CAACE,OAAA,EAAS;IACd,MAAM6B,UAAA,GAAa,IAAIC,eAAA,CAAgB;IAEvC,SAASC,cAAcC,KAAA,EAAmB;MACxC,IAAIT,UAAA,CAAWC,MAAA,IAAU,CAACV,SAAA,EAAW;MACrC,MAAMmB,MAAA,GAASD,KAAA,CAAMC,MAAA;MACjBnB,SAAA,CAAUoB,QAAA,CAASD,MAAM,KAG3BA,MAAA,EAAQE,gBAAA,CAAiB,QAAQC,UAAA,EAAY;QAAEC,MAAA,EAAQR,UAAA,CAAWQ;MAAO,CAAC,GAC1EpB,qBAAA,CAAsBU,OAAA,GAAUM,MAAA,IAEhCK,KAAA,CAAMrB,qBAAA,CAAsBU,OAAA,EAAS;QAAEY,MAAA,EAAQ;MAAK,CAAC;IAEzD;IAEA,SAASC,eAAeR,KAAA,EAAmB;MACzCH,UAAA,CAAWY,KAAA,CAAM,GACb,EAAAlB,UAAA,CAAWC,MAAA,IAAU,CAACV,SAAA,MACrBA,SAAA,CAAUoB,QAAA,CAASF,KAAA,CAAMU,aAAmC,KAC/DJ,KAAA,CAAMrB,qBAAA,CAAsBU,OAAA,EAAS;QAAEY,MAAA,EAAQ;MAAK,CAAC;IAEzD;IAEA,SAASH,WAAA,EAAa;MACpBnB,qBAAA,CAAsBU,OAAA,GAAUb,SAAA;IAClC;IAEA,OAAA6B,QAAA,CAASR,gBAAA,CAAiB,WAAWJ,aAAa,GAClDY,QAAA,CAASR,gBAAA,CAAiB,YAAYK,cAAc,GAC7C,MAAM;MACXX,UAAA,CAAWY,KAAA,CAAM,GACjBE,QAAA,CAASC,mBAAA,CAAoB,WAAWb,aAAa,GACrDY,QAAA,CAASC,mBAAA,CAAoB,YAAYJ,cAAc;IACzD;EACF,GAAG,CAACxC,OAAA,EAASG,YAAA,EAAcW,SAAA,EAAWS,UAAA,CAAWC,MAAM,CAAC,GAExD9C,cAAA,CACE,MAAO2D,MAAA,IAAW;IAGhB,IAFI,CAACvC,OAAA,IACD,CAACgB,SAAA,IACDX,YAAA,EAAc;IAElB0C,gBAAA,CAAiBC,GAAA,CAAIvB,UAAU;IAC/B,MAAMwB,wBAAA,GAA2BJ,QAAA,CAASK,aAAA;IAG1C,IAAI,CAFwBlC,SAAA,CAAUoB,QAAA,CAASa,wBAAwB,GAE7C;MACxB,MAAME,UAAA,GAAa,IAAIC,WAAA,CAAYlE,kBAAA,EAAoBE,aAAa;MAGpE,IAFA4B,SAAA,CAAUqB,gBAAA,CAAiBnD,kBAAA,EAAoBiB,gBAAgB,GAC/Da,SAAA,CAAUqC,aAAA,CAAcF,UAAU,GAC9B,CAACA,UAAA,CAAWG,gBAAA,EAAkB;QAE5BhD,WAAA,KACF,MAAM3B,KAAA,CAAM,OAAO2B,WAAA,IAAgB,WAAWA,WAAA,GAAc,IAAIiC,MAAM,GACtE,MAAM7D,SAAA,CAAU6D,MAAM;QAGxB,MAAMgB,UAAA,GAAaC,WAAA,CAAYC,qBAAA,CAAsBzC,SAAS,CAAC;QAE/D0C,UAAA,CAAWH,UAAA,EAAY;UAAEd,MAAA,EAAQ;QAAK,CAAC,GAEnCI,QAAA,CAASK,aAAA,KAAkBD,wBAAA,IAC7BT,KAAA,CAAMxB,SAAS;MAEnB;IACF;IAEA,OAAO,MAAM;MACXA,SAAA,CAAU8B,mBAAA,CAAoB5D,kBAAA,EAAoBiB,gBAAgB;MAElE,MAAMwD,YAAA,GAAe,IAAIP,WAAA,CAAYjE,oBAAA,EAAsBC,aAAa;MACxE4B,SAAA,CAAUqB,gBAAA,CAAiBlD,oBAAA,EAAsBiB,kBAAkB,GACnEY,SAAA,CAAUqC,aAAA,CAAcM,YAAY,GAC/BA,YAAA,CAAaL,gBAAA,IAChBd,KAAA,CAAMS,wBAAA,IAA4BJ,QAAA,CAASe,IAAA,EAAM;QAAEnB,MAAA,EAAQ;MAAK,CAAC,GAGnEzB,SAAA,CAAU8B,mBAAA,CAAoB3D,oBAAA,EAAsBiB,kBAAkB,GAEtE2C,gBAAA,CAAiBc,MAAA,CAAOpC,UAAU;IACpC;EACF,GACA,CACEzB,OAAA,EACAgB,SAAA,EACAX,YAAA,EACAF,gBAAA,EACAC,kBAAA,EACAqB,UAAA,EACAnB,WAAA,CAEJ;EAGA,MAAMwD,aAAA,GAAgBhF,KAAA,CAAMwC,WAAA,CACzBY,KAAA,IAA+B;IAG9B,IAFI,CAAChC,OAAA,IACD,CAACD,IAAA,IACDwB,UAAA,CAAWC,MAAA,EAAQ;IAEvB,MAAMqC,QAAA,GACJ7B,KAAA,CAAM8B,GAAA,KAAQ,SAAS,CAAC9B,KAAA,CAAM+B,MAAA,IAAU,CAAC/B,KAAA,CAAMgC,OAAA,IAAW,CAAChC,KAAA,CAAMiC,OAAA;MAC7DC,cAAA,GAAiBvB,QAAA,CAASK,aAAA;IAEhC,IAAIa,QAAA,IAAYK,cAAA,EAAgB;MAC9B,MAAMC,UAAA,GAAYnC,KAAA,CAAMoC,aAAA;QAClB,CAACC,KAAA,EAAOC,IAAI,IAAIC,gBAAA,CAAiBJ,UAAS;MACdE,KAAA,IAASC,IAAA,GAMrC,CAACtC,KAAA,CAAMwC,QAAA,IAAYN,cAAA,KAAmBI,IAAA,IACxCtC,KAAA,CAAMyC,cAAA,CAAe,GACjB1E,IAAA,IAAMuC,KAAA,CAAM+B,KAAA,EAAO;QAAE9B,MAAA,EAAQ;MAAK,CAAC,KAC9BP,KAAA,CAAMwC,QAAA,IAAYN,cAAA,KAAmBG,KAAA,KAC9CrC,KAAA,CAAMyC,cAAA,CAAe,GACjB1E,IAAA,IAAMuC,KAAA,CAAMgC,IAAA,EAAM;QAAE/B,MAAA,EAAQ;MAAK,CAAC,KAPpC2B,cAAA,KAAmBC,UAAA,IAAWnC,KAAA,CAAMyC,cAAA,CAAe;IAU3D;EACF,GACA,CAAC1E,IAAA,EAAMC,OAAA,EAASuB,UAAA,CAAWC,MAAM,CACnC;EAEA,OAAO;IACLkD,QAAA,EAAU;IACV,GAAG7D,UAAA;IACH8D,GAAA,EAAKrD,YAAA;IACLsD,SAAA,EAAWhB;EACb;AACF;AAUA,SAASJ,WAAWH,UAAA,EAA2B;EAAEd,MAAA,GAAS;AAAM,IAAI,CAAC,GAAG;EACtE,MAAMQ,wBAAA,GAA2BJ,QAAA,CAASK,aAAA;EAC1C,WAAW6B,SAAA,IAAaxB,UAAA,EAEtB,IADAf,KAAA,CAAMuC,SAAA,EAAW;IAAEtC;EAAO,CAAC,GACvBI,QAAA,CAASK,aAAA,KAAkBD,wBAAA,EAA0B;AAE7D;AAKA,SAASwB,iBAAiBzD,SAAA,EAAwB;EAChD,MAAMuC,UAAA,GAAaE,qBAAA,CAAsBzC,SAAS;IAC5CuD,KAAA,GAAQS,WAAA,CAAYzB,UAAA,EAAYvC,SAAS;IACzCwD,IAAA,GAAOQ,WAAA,CAAYzB,UAAA,CAAW0B,OAAA,CAAQ,GAAGjE,SAAS;EACxD,OAAO,CAACuD,KAAA,EAAOC,IAAI;AACrB;AAYA,SAASf,sBAAsBzC,SAAA,EAAwB;EACrD,MAAMkE,KAAA,GAAuB,EAAC;IACxBC,MAAA,GAAStC,QAAA,CAASuC,gBAAA,CAAiBpE,SAAA,EAAWqE,UAAA,CAAWC,YAAA,EAAc;MAC3EC,UAAA,EAAahE,IAAA,IAAc;QACzB,MAAMiE,aAAA,GAAgBjE,IAAA,CAAKkE,OAAA,KAAY,WAAWlE,IAAA,CAAKmE,IAAA,KAAS;QAChE,OAAInE,IAAA,CAAKoE,QAAA,IAAYpE,IAAA,CAAKqE,MAAA,IAAUJ,aAAA,GAAsBH,UAAA,CAAWQ,WAAA,GAI9DtE,IAAA,CAAKqD,QAAA,IAAY,IAAIS,UAAA,CAAWS,aAAA,GAAgBT,UAAA,CAAWQ,WAAA;MACpE;IACF,CAAC;EACD,OAAOV,MAAA,CAAOY,QAAA,CAAS,IAAGb,KAAA,CAAMc,IAAA,CAAKb,MAAA,CAAOc,WAA0B;EAGtE,OAAOf,KAAA;AACT;AAMA,SAASF,YAAYkB,QAAA,EAAyBlF,SAAA,EAAwB;EACpE,WAAWmF,OAAA,IAAWD,QAAA,EAEpB,IAAI,CAACE,QAAA,CAASD,OAAA,EAAS;IAAEE,IAAA,EAAMrF;EAAU,CAAC,GAAG,OAAOmF,OAAA;AAExD;AAEA,SAASC,SAAS7E,IAAA,EAAmB;EAAE8E;AAAK,GAA2B;EACrE,IAAIC,gBAAA,CAAiB/E,IAAI,EAAEgF,UAAA,KAAe,UAAU,OAAO;EAC3D,OAAOhF,IAAA,GAAM;IAEX,IAAI8E,IAAA,KAAS,UAAa9E,IAAA,KAAS8E,IAAA,EAAM,OAAO;IAChD,IAAIC,gBAAA,CAAiB/E,IAAI,EAAEiF,OAAA,KAAY,QAAQ,OAAO;IACtDjF,IAAA,GAAOA,IAAA,CAAKkF,aAAA;EACd;EACA,OAAO;AACT;AAEA,SAASC,kBACPP,OAAA,EACqD;EACrD,OAAOA,OAAA,YAAmBQ,gBAAA,IAAoB,YAAYR,OAAA;AAC5D;AAEA,SAAS3D,MAAM2D,OAAA,EAAkC;EAAE1D,MAAA,GAAS;AAAM,IAAI,CAAC,GAAG;EAExE,IAAI0D,OAAA,EAAS3D,KAAA,EAAO;IAClB,MAAMS,wBAAA,GAA2BJ,QAAA,CAASK,aAAA;IAE1CiD,OAAA,CAAQ3D,KAAA,CAAM;MAAEoE,aAAA,EAAe;IAAK,CAAC,GAEjCT,OAAA,KAAYlD,wBAAA,IAA4ByD,iBAAA,CAAkBP,OAAO,KAAK1D,MAAA,IACxE0D,OAAA,CAAQ1D,MAAA,CAAO;EACnB;AACF;AAOA,MAAMM,gBAAA,GAAmB8D,sBAAA,CAAuB;AAEhD,SAASA,uBAAA,EAAyB;EAEhC,IAAIC,KAAA,GAAyB,EAAC;EAE9B,OAAO;IACL9D,IAAIvB,UAAA,EAA2B;MAE7B,MAAMsF,gBAAA,GAAmBD,KAAA,CAAM,CAAC;MAC5BrF,UAAA,KAAesF,gBAAA,IACjBA,gBAAA,EAAkBpF,KAAA,CAAM,GAG1BmF,KAAA,GAAQE,WAAA,CAAYF,KAAA,EAAOrF,UAAU,GACrCqF,KAAA,CAAMG,OAAA,CAAQxF,UAAU;IAC1B;IAEAoC,OAAOpC,UAAA,EAA2B;MAChCqF,KAAA,GAAQE,WAAA,CAAYF,KAAA,EAAOrF,UAAU,GACrCqF,KAAA,CAAM,CAAC,GAAGlF,MAAA,CAAO;IACnB;EACF;AACF;AAEA,SAASoF,YAAeE,KAAA,EAAYC,IAAA,EAAS;EAC3C,MAAMC,YAAA,GAAe,CAAC,GAAGF,KAAK;IACxBG,KAAA,GAAQD,YAAA,CAAaE,OAAA,CAAQH,IAAI;EACvC,OAAIE,KAAA,KAAU,MACZD,YAAA,CAAaG,MAAA,CAAOF,KAAA,EAAO,CAAC,GAEvBD,YAAA;AACT;AAEA,SAAS5D,YAAYgE,KAAA,EAAsB;EACzC,OAAOA,KAAA,CAAMC,MAAA,CAAQN,IAAA,IAASA,IAAA,CAAK1B,OAAA,KAAY,GAAG;AACpD","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ import { createContextScope } from "@tamagui/create-context";
2
+ import { useEvent } from "@tamagui/use-event";
3
+ import * as React from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ const FOCUS_SCOPE_CONTROLLER_NAME = "FocusScopeController", [createFocusScopeControllerContext, createFocusScopeControllerScope] = createContextScope(FOCUS_SCOPE_CONTROLLER_NAME), [FocusScopeControllerProvider, useFocusScopeControllerContext] = createFocusScopeControllerContext(
6
+ FOCUS_SCOPE_CONTROLLER_NAME
7
+ );
8
+ function FocusScopeController(props) {
9
+ const {
10
+ __scopeFocusScope,
11
+ children,
12
+ enabled,
13
+ loop,
14
+ trapped,
15
+ onMountAutoFocus,
16
+ onUnmountAutoFocus,
17
+ forceUnmount,
18
+ focusOnIdle
19
+ } = props, stableOnMountAutoFocus = useEvent(onMountAutoFocus), stableOnUnmountAutoFocus = useEvent(onUnmountAutoFocus), contextValue = React.useMemo(
20
+ () => ({
21
+ enabled,
22
+ loop,
23
+ trapped,
24
+ onMountAutoFocus: stableOnMountAutoFocus,
25
+ onUnmountAutoFocus: stableOnUnmountAutoFocus,
26
+ forceUnmount,
27
+ focusOnIdle
28
+ }),
29
+ [
30
+ enabled,
31
+ loop,
32
+ trapped,
33
+ stableOnMountAutoFocus,
34
+ stableOnUnmountAutoFocus,
35
+ forceUnmount,
36
+ focusOnIdle
37
+ ]
38
+ );
39
+ return /* @__PURE__ */ jsx(FocusScopeControllerProvider, { scope: __scopeFocusScope, ...contextValue, children });
40
+ }
41
+ const FocusScopeControllerComponent = FocusScopeController;
42
+ export {
43
+ FocusScopeControllerComponent as FocusScopeController,
44
+ FocusScopeControllerProvider,
45
+ createFocusScopeControllerScope,
46
+ useFocusScopeControllerContext
47
+ };
48
+ //# sourceMappingURL=FocusScopeController.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/FocusScopeController.tsx"],
4
+ "mappings": "AAAA,SAAS,0BAA0B;AACnC,SAAS,gBAAgB;AACzB,YAAY,WAAW;AA8DnB;AA1DJ,MAAM,8BAA8B,wBAE9B,CAAC,mCAAmC,+BAA+B,IACvE,mBAAmB,2BAA2B,GAI1C,CAAC,8BAA8B,8BAA8B,IACjE;AAAA,EACE;AACF;AAUF,SAAS,qBAAqB,OAA+C;AAC3E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,OAEE,yBAAyB,SAAS,gBAAgB,GAClD,2BAA2B,SAAS,kBAAkB,GAEtD,eAAe,MAAM;AAAA,IACzB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SACE,oBAAC,gCAA6B,OAAO,mBAAoB,GAAG,cACzD,UACH;AAEJ;AAEA,MAAM,gCAAgC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,39 @@
1
+ import { createContextScope } from "@tamagui/create-context";
2
+ import { useEvent } from "@tamagui/use-event";
3
+ import * as React from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ const FOCUS_SCOPE_CONTROLLER_NAME = "FocusScopeController",
6
+ [createFocusScopeControllerContext, createFocusScopeControllerScope] = createContextScope(FOCUS_SCOPE_CONTROLLER_NAME),
7
+ [FocusScopeControllerProvider, useFocusScopeControllerContext] = createFocusScopeControllerContext(FOCUS_SCOPE_CONTROLLER_NAME);
8
+ function FocusScopeController(props) {
9
+ const {
10
+ __scopeFocusScope,
11
+ children,
12
+ enabled,
13
+ loop,
14
+ trapped,
15
+ onMountAutoFocus,
16
+ onUnmountAutoFocus,
17
+ forceUnmount,
18
+ focusOnIdle
19
+ } = props,
20
+ stableOnMountAutoFocus = useEvent(onMountAutoFocus),
21
+ stableOnUnmountAutoFocus = useEvent(onUnmountAutoFocus),
22
+ contextValue = React.useMemo(() => ({
23
+ enabled,
24
+ loop,
25
+ trapped,
26
+ onMountAutoFocus: stableOnMountAutoFocus,
27
+ onUnmountAutoFocus: stableOnUnmountAutoFocus,
28
+ forceUnmount,
29
+ focusOnIdle
30
+ }), [enabled, loop, trapped, stableOnMountAutoFocus, stableOnUnmountAutoFocus, forceUnmount, focusOnIdle]);
31
+ return /* @__PURE__ */jsx(FocusScopeControllerProvider, {
32
+ scope: __scopeFocusScope,
33
+ ...contextValue,
34
+ children
35
+ });
36
+ }
37
+ const FocusScopeControllerComponent = FocusScopeController;
38
+ export { FocusScopeControllerComponent as FocusScopeController, FocusScopeControllerProvider, createFocusScopeControllerScope, useFocusScopeControllerContext };
39
+ //# sourceMappingURL=FocusScopeController.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContextScope","useEvent","React","jsx","FOCUS_SCOPE_CONTROLLER_NAME","createFocusScopeControllerContext","createFocusScopeControllerScope","FocusScopeControllerProvider","useFocusScopeControllerContext","FocusScopeController","props","__scopeFocusScope","children","enabled","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","forceUnmount","focusOnIdle","stableOnMountAutoFocus","stableOnUnmountAutoFocus","contextValue","useMemo","scope","FocusScopeControllerComponent"],"sources":["../../src/FocusScopeController.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,kBAAA,QAA0B;AACnC,SAASC,QAAA,QAAgB;AACzB,YAAYC,KAAA,MAAW;AA8DnB,SAAAC,GAAA;AA1DJ,MAAMC,2BAAA,GAA8B;EAE9B,CAACC,iCAAA,EAAmCC,+BAA+B,IACvEN,kBAAA,CAAmBI,2BAA2B;EAI1C,CAACG,4BAAA,EAA8BC,8BAA8B,IACjEH,iCAAA,CACED,2BACF;AAUF,SAASK,qBAAqBC,KAAA,EAA+C;EAC3E,MAAM;MACJC,iBAAA;MACAC,QAAA;MACAC,OAAA;MACAC,IAAA;MACAC,OAAA;MACAC,gBAAA;MACAC,kBAAA;MACAC,YAAA;MACAC;IACF,IAAIT,KAAA;IAEEU,sBAAA,GAAyBnB,QAAA,CAASe,gBAAgB;IAClDK,wBAAA,GAA2BpB,QAAA,CAASgB,kBAAkB;IAEtDK,YAAA,GAAepB,KAAA,CAAMqB,OAAA,CACzB,OAAO;MACLV,OAAA;MACAC,IAAA;MACAC,OAAA;MACAC,gBAAA,EAAkBI,sBAAA;MAClBH,kBAAA,EAAoBI,wBAAA;MACpBH,YAAA;MACAC;IACF,IACA,CACEN,OAAA,EACAC,IAAA,EACAC,OAAA,EACAK,sBAAA,EACAC,wBAAA,EACAH,YAAA,EACAC,WAAA,CAEJ;EAEA,OACE,eAAAhB,GAAA,CAACI,4BAAA;IAA6BiB,KAAA,EAAOb,iBAAA;IAAoB,GAAGW,YAAA;IACzDV;EAAA,CACH;AAEJ;AAEA,MAAMa,6BAAA,GAAgChB,oBAAA","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createContextScope } from "@tamagui/create-context";
3
+ import { useEvent } from "@tamagui/use-event";
4
+ import * as React from "react";
5
+ var FOCUS_SCOPE_CONTROLLER_NAME = "FocusScopeController",
6
+ [createFocusScopeControllerContext, createFocusScopeControllerScope] = createContextScope(FOCUS_SCOPE_CONTROLLER_NAME),
7
+ [FocusScopeControllerProvider, useFocusScopeControllerContext] = createFocusScopeControllerContext(FOCUS_SCOPE_CONTROLLER_NAME);
8
+ function FocusScopeController(props) {
9
+ var {
10
+ __scopeFocusScope,
11
+ children,
12
+ enabled,
13
+ loop,
14
+ trapped,
15
+ onMountAutoFocus,
16
+ onUnmountAutoFocus,
17
+ forceUnmount,
18
+ focusOnIdle
19
+ } = props,
20
+ stableOnMountAutoFocus = useEvent(onMountAutoFocus),
21
+ stableOnUnmountAutoFocus = useEvent(onUnmountAutoFocus),
22
+ contextValue = React.useMemo(function () {
23
+ return {
24
+ enabled,
25
+ loop,
26
+ trapped,
27
+ onMountAutoFocus: stableOnMountAutoFocus,
28
+ onUnmountAutoFocus: stableOnUnmountAutoFocus,
29
+ forceUnmount,
30
+ focusOnIdle
31
+ };
32
+ }, [enabled, loop, trapped, stableOnMountAutoFocus, stableOnUnmountAutoFocus, forceUnmount, focusOnIdle]);
33
+ return /* @__PURE__ */_jsx(FocusScopeControllerProvider, {
34
+ scope: __scopeFocusScope,
35
+ ...contextValue,
36
+ children
37
+ });
38
+ }
39
+ var FocusScopeControllerComponent = FocusScopeController;
40
+ export { FocusScopeControllerComponent as FocusScopeController, FocusScopeControllerProvider, createFocusScopeControllerScope, useFocusScopeControllerContext };
41
+ //# sourceMappingURL=FocusScopeController.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","createContextScope","useEvent","React","FOCUS_SCOPE_CONTROLLER_NAME","createFocusScopeControllerContext","createFocusScopeControllerScope","FocusScopeControllerProvider","useFocusScopeControllerContext","FocusScopeController","props","__scopeFocusScope","children","enabled","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","forceUnmount","focusOnIdle","stableOnMountAutoFocus","stableOnUnmountAutoFocus","contextValue","useMemo","scope","FocusScopeControllerComponent"],"sources":["../../src/FocusScopeController.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,2BAA0B;AACnC,SAASC,kBAAgB;AACzB,SAAAC,QAAY,QAAW;AA8DnB,YAAAC,KAAA;AA1DJ,IAAAC,2BAAM,yBAA8B;EAAA,CAAAC,iCAE7B,EAAAC,+BAAmC,IAA+BL,kBACvE,CAAAG,2BAAmB;EAA2B,CAAAG,4BAIzC,EAAAC,8BAA8B,IAA8BH,iCACjE,CAAAD,2BAAA;AAAA,SACEK,qBAAAC,KAAA;EACF;MAAAC,iBAAA;MAAAC,QAAA;MAAAC,OAAA;MAAAC,IAAA;MAAAC,OAAA;MAAAC,gBAAA;MAAAC,kBAAA;MAAAC,YAAA;MAAAC;IAAA,IAAAT,KAAA;IAAAU,sBAAA,GAAAlB,QAAA,CAAAc,gBAAA;IAAAK,wBAAA,GAAAnB,QAAA,CAAAe,kBAAA;IAAAK,YAAA,GAAAnB,KAAA,CAAAoB,OAAA;MAUF,OAAS;QACPV,OAAM;QACJC,IAAA;QACAC,OAAA;QACAC,gBAAA,EAAAI,sBAAA;QACAH,kBAAA,EAAAI,wBAAA;QACAH,YAAA;QACAC;MACA;IAAA,GACA,CACAN,OAAA,EACFC,IAAI,EAMFC,OAAO,EAAAK,sBACL,EAAAC,wBACA,EAAAH,YACA,EAAAC,WACA,CAAkB;EACE,OACpB,eAAAnB,IAAA,CAAAO,4BAAA;IAAAiB,KACA,EAAAb,iBAAA;IACF,GAAAW,YAAA;IACAV;EAAA;AACE;AACA,IAAAa,6BACA,GAAAhB,oBAAA;AAAA,SACAgB,6BACA,IAAAhB,oBAAA,EAAAF,4BACA,EAAAD,+BACA,EAAAE,8BACF","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from "./FocusScope";
2
+ export * from "./FocusScopeController";
2
3
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,cAAc;",
4
+ "mappings": "AAAA,cAAc;AACd,cAAc;",
5
5
  "names": []
6
6
  }
@@ -1,2 +1,3 @@
1
1
  export * from "./FocusScope.mjs";
2
+ export * from "./FocusScopeController.mjs";
2
3
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc","ignoreList":[]}
@@ -1,2 +1,3 @@
1
1
  export * from "./FocusScope.native.js";
2
+ export * from "./FocusScopeController.native.js";
2
3
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc","ignoreList":[]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.native.js.map
@@ -1,12 +1,29 @@
1
1
  import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { useEvent } from "@tamagui/use-event";
3
2
  import { startTransition } from "@tamagui/start-transition";
3
+ import { fullyIdle, sleep, useAsyncEffect } from "@tamagui/use-async";
4
+ import { useEvent } from "@tamagui/use-event";
4
5
  import * as React from "react";
6
+ import { useFocusScopeControllerContext } from "./FocusScopeController";
5
7
  import { Fragment, jsx } from "react/jsx-runtime";
6
8
  const AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount", AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount", EVENT_OPTIONS = { bubbles: !1, cancelable: !0 }, FocusScope = React.forwardRef(
7
- function(props, forwardedRef) {
8
- const childProps = useFocusScope(props, forwardedRef);
9
- return typeof props.children == "function" ? /* @__PURE__ */ jsx(Fragment, { children: props.children(childProps) }) : React.cloneElement(React.Children.only(props.children), childProps);
9
+ function({ __scopeFocusScope, ...props }, forwardedRef) {
10
+ const context = useFocusScopeControllerContext("FocusScope", __scopeFocusScope, {
11
+ warn: !1,
12
+ fallback: {}
13
+ }), mergedProps = {
14
+ ...props,
15
+ enabled: context.enabled ?? props.enabled,
16
+ loop: context.loop ?? props.loop,
17
+ trapped: context.trapped ?? props.trapped,
18
+ onMountAutoFocus: context.onMountAutoFocus ?? props.onMountAutoFocus,
19
+ onUnmountAutoFocus: context.onUnmountAutoFocus ?? props.onUnmountAutoFocus,
20
+ forceUnmount: context.forceUnmount ?? props.forceUnmount,
21
+ focusOnIdle: context.focusOnIdle ?? props.focusOnIdle
22
+ }, childProps = useFocusScope(mergedProps, forwardedRef);
23
+ return typeof mergedProps.children == "function" ? /* @__PURE__ */ jsx(Fragment, { children: mergedProps.children(childProps) }) : React.cloneElement(
24
+ React.Children.only(mergedProps.children),
25
+ childProps
26
+ );
10
27
  }
11
28
  );
12
29
  function useFocusScope(props, forwardedRef) {
@@ -17,6 +34,7 @@ function useFocusScope(props, forwardedRef) {
17
34
  onMountAutoFocus: onMountAutoFocusProp,
18
35
  onUnmountAutoFocus: onUnmountAutoFocusProp,
19
36
  forceUnmount,
37
+ focusOnIdle = !0,
20
38
  children,
21
39
  ...scopeProps
22
40
  } = props, [container, setContainer] = React.useState(null), onMountAutoFocus = useEvent(onMountAutoFocusProp), onUnmountAutoFocus = useEvent(onUnmountAutoFocusProp), lastFocusedElementRef = React.useRef(null), setContainerTransition = React.useCallback(
@@ -52,23 +70,35 @@ function useFocusScope(props, forwardedRef) {
52
70
  return document.addEventListener("focusin", handleFocusIn), document.addEventListener("focusout", handleFocusOut), () => {
53
71
  controller.abort(), document.removeEventListener("focusin", handleFocusIn), document.removeEventListener("focusout", handleFocusOut);
54
72
  };
55
- }, [trapped, forceUnmount, container, focusScope.paused]), React.useEffect(() => {
56
- if (!enabled || !container || forceUnmount) return;
57
- focusScopesStack.add(focusScope);
58
- const previouslyFocusedElement = document.activeElement;
59
- if (!container.contains(previouslyFocusedElement)) {
60
- const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
61
- if (container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus), container.dispatchEvent(mountEvent), !mountEvent.defaultPrevented) {
62
- const candidates = removeLinks(getTabbableCandidates(container));
63
- focusFirst(candidates, { select: !0 }), document.activeElement === previouslyFocusedElement && focus(container);
73
+ }, [trapped, forceUnmount, container, focusScope.paused]), useAsyncEffect(
74
+ async (signal) => {
75
+ if (!enabled || !container || forceUnmount) return;
76
+ focusScopesStack.add(focusScope);
77
+ const previouslyFocusedElement = document.activeElement;
78
+ if (!container.contains(previouslyFocusedElement)) {
79
+ const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
80
+ if (container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus), container.dispatchEvent(mountEvent), !mountEvent.defaultPrevented) {
81
+ focusOnIdle && (await sleep(typeof focusOnIdle == "number" ? focusOnIdle : 16, signal), await fullyIdle(signal));
82
+ const candidates = removeLinks(getTabbableCandidates(container));
83
+ focusFirst(candidates, { select: !0 }), document.activeElement === previouslyFocusedElement && focus(container);
84
+ }
64
85
  }
65
- }
66
- return () => {
67
- container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
68
- const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);
69
- container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), container.dispatchEvent(unmountEvent), unmountEvent.defaultPrevented || focus(previouslyFocusedElement ?? document.body, { select: !0 }), container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), focusScopesStack.remove(focusScope);
70
- };
71
- }, [enabled, container, forceUnmount, onMountAutoFocus, onUnmountAutoFocus, focusScope]);
86
+ return () => {
87
+ container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
88
+ const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);
89
+ container.addEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), container.dispatchEvent(unmountEvent), unmountEvent.defaultPrevented || focus(previouslyFocusedElement ?? document.body, { select: !0 }), container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), focusScopesStack.remove(focusScope);
90
+ };
91
+ },
92
+ [
93
+ enabled,
94
+ container,
95
+ forceUnmount,
96
+ onMountAutoFocus,
97
+ onUnmountAutoFocus,
98
+ focusScope,
99
+ focusOnIdle
100
+ ]
101
+ );
72
102
  const handleKeyDown = React.useCallback(
73
103
  (event) => {
74
104
  if (!trapped || !loop || focusScope.paused) return;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/FocusScope.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["container"]
6
6
  }
@@ -1,7 +1,9 @@
1
1
  import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { useEvent } from "@tamagui/use-event";
3
2
  import { startTransition } from "@tamagui/start-transition";
3
+ import { fullyIdle, sleep, useAsyncEffect } from "@tamagui/use-async";
4
+ import { useEvent } from "@tamagui/use-event";
4
5
  import * as React from "react";
6
+ import { useFocusScopeControllerContext } from "./FocusScopeController.mjs";
5
7
  import { Fragment, jsx } from "react/jsx-runtime";
6
8
  const AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount",
7
9
  AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount",
@@ -9,11 +11,28 @@ const AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount",
9
11
  bubbles: !1,
10
12
  cancelable: !0
11
13
  },
12
- FocusScope = React.forwardRef(function (props, forwardedRef) {
13
- const childProps = useFocusScope(props, forwardedRef);
14
- return typeof props.children == "function" ? /* @__PURE__ */jsx(Fragment, {
15
- children: props.children(childProps)
16
- }) : React.cloneElement(React.Children.only(props.children), childProps);
14
+ FocusScope = React.forwardRef(function ({
15
+ __scopeFocusScope,
16
+ ...props
17
+ }, forwardedRef) {
18
+ const context = useFocusScopeControllerContext("FocusScope", __scopeFocusScope, {
19
+ warn: !1,
20
+ fallback: {}
21
+ }),
22
+ mergedProps = {
23
+ ...props,
24
+ enabled: context.enabled ?? props.enabled,
25
+ loop: context.loop ?? props.loop,
26
+ trapped: context.trapped ?? props.trapped,
27
+ onMountAutoFocus: context.onMountAutoFocus ?? props.onMountAutoFocus,
28
+ onUnmountAutoFocus: context.onUnmountAutoFocus ?? props.onUnmountAutoFocus,
29
+ forceUnmount: context.forceUnmount ?? props.forceUnmount,
30
+ focusOnIdle: context.focusOnIdle ?? props.focusOnIdle
31
+ },
32
+ childProps = useFocusScope(mergedProps, forwardedRef);
33
+ return typeof mergedProps.children == "function" ? /* @__PURE__ */jsx(Fragment, {
34
+ children: mergedProps.children(childProps)
35
+ }) : React.cloneElement(React.Children.only(mergedProps.children), childProps);
17
36
  });
18
37
  function useFocusScope(props, forwardedRef) {
19
38
  const {
@@ -23,6 +42,7 @@ function useFocusScope(props, forwardedRef) {
23
42
  onMountAutoFocus: onMountAutoFocusProp,
24
43
  onUnmountAutoFocus: onUnmountAutoFocusProp,
25
44
  forceUnmount,
45
+ focusOnIdle = !0,
26
46
  children,
27
47
  ...scopeProps
28
48
  } = props,
@@ -68,13 +88,14 @@ function useFocusScope(props, forwardedRef) {
68
88
  return document.addEventListener("focusin", handleFocusIn), document.addEventListener("focusout", handleFocusOut), () => {
69
89
  controller.abort(), document.removeEventListener("focusin", handleFocusIn), document.removeEventListener("focusout", handleFocusOut);
70
90
  };
71
- }, [trapped, forceUnmount, container, focusScope.paused]), React.useEffect(() => {
91
+ }, [trapped, forceUnmount, container, focusScope.paused]), useAsyncEffect(async signal => {
72
92
  if (!enabled || !container || forceUnmount) return;
73
93
  focusScopesStack.add(focusScope);
74
94
  const previouslyFocusedElement = document.activeElement;
75
95
  if (!container.contains(previouslyFocusedElement)) {
76
96
  const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
77
97
  if (container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus), container.dispatchEvent(mountEvent), !mountEvent.defaultPrevented) {
98
+ focusOnIdle && (await sleep(typeof focusOnIdle == "number" ? focusOnIdle : 16, signal), await fullyIdle(signal));
78
99
  const candidates = removeLinks(getTabbableCandidates(container));
79
100
  focusFirst(candidates, {
80
101
  select: !0
@@ -88,7 +109,7 @@ function useFocusScope(props, forwardedRef) {
88
109
  select: !0
89
110
  }), container.removeEventListener(AUTOFOCUS_ON_UNMOUNT, onUnmountAutoFocus), focusScopesStack.remove(focusScope);
90
111
  };
91
- }, [enabled, container, forceUnmount, onMountAutoFocus, onUnmountAutoFocus, focusScope]);
112
+ }, [enabled, container, forceUnmount, onMountAutoFocus, onUnmountAutoFocus, focusScope, focusOnIdle]);
92
113
  const handleKeyDown = React.useCallback(event => {
93
114
  if (!trapped || !loop || focusScope.paused) return;
94
115
  const isTabKey = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey,