@fluentui/react-tabster 9.0.0-beta.1 → 9.0.0-beta.5

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 (49) hide show
  1. package/CHANGELOG.json +147 -1
  2. package/CHANGELOG.md +51 -2
  3. package/dist/react-tabster.d.ts +13 -0
  4. package/lib/hooks/index.d.ts +1 -0
  5. package/lib/hooks/index.js +1 -0
  6. package/lib/hooks/index.js.map +1 -1
  7. package/lib/hooks/useArrowNavigationGroup.js +2 -2
  8. package/lib/hooks/useArrowNavigationGroup.js.map +1 -1
  9. package/lib/hooks/useFocusFinders.js +23 -33
  10. package/lib/hooks/useFocusFinders.js.map +1 -1
  11. package/lib/hooks/useFocusIndicatorStyle.js +34 -47
  12. package/lib/hooks/useFocusIndicatorStyle.js.map +1 -1
  13. package/lib/hooks/useFocusableGroup.d.ts +12 -0
  14. package/lib/hooks/useFocusableGroup.js +38 -0
  15. package/lib/hooks/useFocusableGroup.js.map +1 -0
  16. package/lib/hooks/useKeyboardNavAttribute.js +9 -11
  17. package/lib/hooks/useKeyboardNavAttribute.js.map +1 -1
  18. package/lib/hooks/useModalAttributes.js +12 -14
  19. package/lib/hooks/useModalAttributes.js.map +1 -1
  20. package/lib/hooks/useTabster.js +8 -5
  21. package/lib/hooks/useTabster.js.map +1 -1
  22. package/lib/hooks/useTabsterAttributes.js +1 -1
  23. package/lib/hooks/useTabsterAttributes.js.map +1 -1
  24. package/lib/symbols.js +2 -2
  25. package/lib/symbols.js.map +1 -1
  26. package/lib-commonjs/hooks/index.d.ts +1 -0
  27. package/lib-commonjs/hooks/index.js +3 -1
  28. package/lib-commonjs/hooks/index.js.map +1 -1
  29. package/lib-commonjs/hooks/useArrowNavigationGroup.js +5 -5
  30. package/lib-commonjs/hooks/useArrowNavigationGroup.js.map +1 -1
  31. package/lib-commonjs/hooks/useFocusFinders.js +25 -35
  32. package/lib-commonjs/hooks/useFocusFinders.js.map +1 -1
  33. package/lib-commonjs/hooks/useFocusIndicatorStyle.js +35 -49
  34. package/lib-commonjs/hooks/useFocusIndicatorStyle.js.map +1 -1
  35. package/lib-commonjs/hooks/useFocusableGroup.d.ts +12 -0
  36. package/lib-commonjs/hooks/useFocusableGroup.js +50 -0
  37. package/lib-commonjs/hooks/useFocusableGroup.js.map +1 -0
  38. package/lib-commonjs/hooks/useKeyboardNavAttribute.js +13 -15
  39. package/lib-commonjs/hooks/useKeyboardNavAttribute.js.map +1 -1
  40. package/lib-commonjs/hooks/useModalAttributes.js +16 -18
  41. package/lib-commonjs/hooks/useModalAttributes.js.map +1 -1
  42. package/lib-commonjs/hooks/useTabster.js +10 -7
  43. package/lib-commonjs/hooks/useTabster.js.map +1 -1
  44. package/lib-commonjs/hooks/useTabsterAttributes.js +3 -3
  45. package/lib-commonjs/hooks/useTabsterAttributes.js.map +1 -1
  46. package/lib-commonjs/index.js +1 -1
  47. package/lib-commonjs/symbols.js +1 -1
  48. package/lib-commonjs/symbols.js.map +1 -1
  49. package/package.json +7 -8
package/CHANGELOG.json CHANGED
@@ -2,7 +2,153 @@
2
2
  "name": "@fluentui/react-tabster",
3
3
  "entries": [
4
4
  {
5
- "date": "Wed, 06 Oct 2021 10:36:00 GMT",
5
+ "date": "Thu, 25 Nov 2021 08:31:35 GMT",
6
+ "tag": "@fluentui/react-tabster_v9.0.0-beta.5",
7
+ "version": "9.0.0-beta.5",
8
+ "comments": {
9
+ "prerelease": [
10
+ {
11
+ "author": "beachball",
12
+ "package": "@fluentui/react-tabster",
13
+ "comment": "Bump @fluentui/make-styles to v9.0.0-beta.3",
14
+ "commit": "281e8820669214c1ffb9bc75e9b719a3b27fa9b6"
15
+ },
16
+ {
17
+ "author": "beachball",
18
+ "package": "@fluentui/react-tabster",
19
+ "comment": "Bump @fluentui/react-make-styles to v9.0.0-beta.4",
20
+ "commit": "281e8820669214c1ffb9bc75e9b719a3b27fa9b6"
21
+ },
22
+ {
23
+ "author": "beachball",
24
+ "package": "@fluentui/react-tabster",
25
+ "comment": "Bump @fluentui/react-shared-contexts to v9.0.0-beta.4",
26
+ "commit": "281e8820669214c1ffb9bc75e9b719a3b27fa9b6"
27
+ },
28
+ {
29
+ "author": "beachball",
30
+ "package": "@fluentui/react-tabster",
31
+ "comment": "Bump @fluentui/react-utilities to v9.0.0-beta.4",
32
+ "commit": "281e8820669214c1ffb9bc75e9b719a3b27fa9b6"
33
+ }
34
+ ]
35
+ }
36
+ },
37
+ {
38
+ "date": "Fri, 12 Nov 2021 13:25:07 GMT",
39
+ "tag": "@fluentui/react-tabster_v9.0.0-beta.4",
40
+ "version": "9.0.0-beta.4",
41
+ "comments": {
42
+ "prerelease": [
43
+ {
44
+ "author": "andredias@microsoft.com",
45
+ "package": "@fluentui/react-tabster",
46
+ "commit": "bdd19e2bb827fc1d8eb329e6ed48cd0542048358",
47
+ "comment": "Add useFocusableGroup hook"
48
+ },
49
+ {
50
+ "author": "lingfangao@hotmail.com",
51
+ "package": "@fluentui/react-tabster",
52
+ "commit": "ed2d7c8d638535c89e24e3c3de3534c4fae30172",
53
+ "comment": "Use uncontrolled tabbing by default"
54
+ },
55
+ {
56
+ "author": "gcox@microsoft.com",
57
+ "package": "@fluentui/react-tabster",
58
+ "commit": "c9bd5b5a02ae94a8239ce1b56cac2f0d0dbd3586",
59
+ "comment": "Updated beta and RC components to ES2019"
60
+ },
61
+ {
62
+ "author": "lingfangao@hotmail.com",
63
+ "package": "@fluentui/react-tabster",
64
+ "commit": "da10ba8b6cca0c4cf921dc176bb9b7ea57fde9fa",
65
+ "comment": "Bump tabster and keyborg to 1.0.7"
66
+ },
67
+ {
68
+ "author": "beachball",
69
+ "package": "@fluentui/react-tabster",
70
+ "comment": "Bump @fluentui/react-make-styles to v9.0.0-beta.3",
71
+ "commit": "742342e52c65066f779232e4e1302fedf0dd460d"
72
+ },
73
+ {
74
+ "author": "beachball",
75
+ "package": "@fluentui/react-tabster",
76
+ "comment": "Bump @fluentui/react-shared-contexts to v9.0.0-beta.3",
77
+ "commit": "742342e52c65066f779232e4e1302fedf0dd460d"
78
+ },
79
+ {
80
+ "author": "beachball",
81
+ "package": "@fluentui/react-tabster",
82
+ "comment": "Bump @fluentui/react-utilities to v9.0.0-beta.3",
83
+ "commit": "742342e52c65066f779232e4e1302fedf0dd460d"
84
+ }
85
+ ],
86
+ "none": [
87
+ {
88
+ "author": "lingfangao@hotmail.com",
89
+ "package": "@fluentui/react-tabster",
90
+ "commit": "00f70581480b536e723fb69edf0ae617beac4807",
91
+ "comment": "Remove beta release tag"
92
+ }
93
+ ]
94
+ }
95
+ },
96
+ {
97
+ "date": "Wed, 27 Oct 2021 12:14:22 GMT",
98
+ "tag": "@fluentui/react-tabster_v9.0.0-beta.3",
99
+ "version": "9.0.0-beta.3",
100
+ "comments": {
101
+ "prerelease": [
102
+ {
103
+ "author": "peter@draxler.ml",
104
+ "package": "@fluentui/react-tabster",
105
+ "commit": "f6db7c8d6b7db0902775e7857b62b745be35b59a",
106
+ "comment": "added styling of documentation"
107
+ },
108
+ {
109
+ "author": "beachball",
110
+ "package": "@fluentui/react-tabster",
111
+ "comment": "Bump @fluentui/make-styles to v9.0.0-beta.2",
112
+ "commit": "0f8f1ae7c2d908e51e29dd342d79e041f86fac08"
113
+ },
114
+ {
115
+ "author": "beachball",
116
+ "package": "@fluentui/react-tabster",
117
+ "comment": "Bump @fluentui/react-make-styles to v9.0.0-beta.2",
118
+ "commit": "0f8f1ae7c2d908e51e29dd342d79e041f86fac08"
119
+ },
120
+ {
121
+ "author": "beachball",
122
+ "package": "@fluentui/react-tabster",
123
+ "comment": "Bump @fluentui/react-shared-contexts to v9.0.0-beta.2",
124
+ "commit": "0f8f1ae7c2d908e51e29dd342d79e041f86fac08"
125
+ },
126
+ {
127
+ "author": "beachball",
128
+ "package": "@fluentui/react-tabster",
129
+ "comment": "Bump @fluentui/react-utilities to v9.0.0-beta.2",
130
+ "commit": "0f8f1ae7c2d908e51e29dd342d79e041f86fac08"
131
+ }
132
+ ]
133
+ }
134
+ },
135
+ {
136
+ "date": "Tue, 12 Oct 2021 19:45:58 GMT",
137
+ "tag": "@fluentui/react-tabster_v9.0.0-beta.2",
138
+ "version": "9.0.0-beta.2",
139
+ "comments": {
140
+ "prerelease": [
141
+ {
142
+ "author": "andredias@microsoft.com",
143
+ "package": "@fluentui/react-tabster",
144
+ "comment": "Add useFocusableGroup hook",
145
+ "commit": "bdd19e2bb827fc1d8eb329e6ed48cd0542048358"
146
+ }
147
+ ]
148
+ }
149
+ },
150
+ {
151
+ "date": "Wed, 06 Oct 2021 10:37:22 GMT",
6
152
  "tag": "@fluentui/react-tabster_v9.0.0-beta.1",
7
153
  "version": "9.0.0-beta.1",
8
154
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,61 @@
1
1
  # Change Log - @fluentui/react-tabster
2
2
 
3
- This log was last generated on Wed, 06 Oct 2021 10:36:00 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 25 Nov 2021 08:31:35 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## [9.0.0-beta.5](https://github.com/microsoft/fluentui/tree/@fluentui/react-tabster_v9.0.0-beta.5)
8
+
9
+ Thu, 25 Nov 2021 08:31:35 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tabster_v9.0.0-beta.4..@fluentui/react-tabster_v9.0.0-beta.5)
11
+
12
+ ### Changes
13
+
14
+ - Bump @fluentui/make-styles to v9.0.0-beta.3 ([PR #20609](https://github.com/microsoft/fluentui/pull/20609) by beachball)
15
+ - Bump @fluentui/react-make-styles to v9.0.0-beta.4 ([PR #20609](https://github.com/microsoft/fluentui/pull/20609) by beachball)
16
+ - Bump @fluentui/react-shared-contexts to v9.0.0-beta.4 ([PR #20609](https://github.com/microsoft/fluentui/pull/20609) by beachball)
17
+ - Bump @fluentui/react-utilities to v9.0.0-beta.4 ([PR #20609](https://github.com/microsoft/fluentui/pull/20609) by beachball)
18
+
19
+ ## [9.0.0-beta.4](https://github.com/microsoft/fluentui/tree/@fluentui/react-tabster_v9.0.0-beta.4)
20
+
21
+ Fri, 12 Nov 2021 13:25:07 GMT
22
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tabster_v9.0.0-beta.3..@fluentui/react-tabster_v9.0.0-beta.4)
23
+
24
+ ### Changes
25
+
26
+ - Add useFocusableGroup hook ([PR #20132](https://github.com/microsoft/fluentui/pull/20132) by andredias@microsoft.com)
27
+ - Use uncontrolled tabbing by default ([PR #20571](https://github.com/microsoft/fluentui/pull/20571) by lingfangao@hotmail.com)
28
+ - Updated beta and RC components to ES2019 ([PR #20405](https://github.com/microsoft/fluentui/pull/20405) by gcox@microsoft.com)
29
+ - Bump tabster and keyborg to 1.0.7 ([PR #20593](https://github.com/microsoft/fluentui/pull/20593) by lingfangao@hotmail.com)
30
+ - Bump @fluentui/react-make-styles to v9.0.0-beta.3 ([PR #20583](https://github.com/microsoft/fluentui/pull/20583) by beachball)
31
+ - Bump @fluentui/react-shared-contexts to v9.0.0-beta.3 ([PR #20583](https://github.com/microsoft/fluentui/pull/20583) by beachball)
32
+ - Bump @fluentui/react-utilities to v9.0.0-beta.3 ([PR #20583](https://github.com/microsoft/fluentui/pull/20583) by beachball)
33
+
34
+ ## [9.0.0-beta.3](https://github.com/microsoft/fluentui/tree/@fluentui/react-tabster_v9.0.0-beta.3)
35
+
36
+ Wed, 27 Oct 2021 12:14:22 GMT
37
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tabster_v9.0.0-beta.2..@fluentui/react-tabster_v9.0.0-beta.3)
38
+
39
+ ### Changes
40
+
41
+ - added styling of documentation ([PR #20193](https://github.com/microsoft/fluentui/pull/20193) by peter@draxler.ml)
42
+ - Bump @fluentui/make-styles to v9.0.0-beta.2 ([PR #20353](https://github.com/microsoft/fluentui/pull/20353) by beachball)
43
+ - Bump @fluentui/react-make-styles to v9.0.0-beta.2 ([PR #20353](https://github.com/microsoft/fluentui/pull/20353) by beachball)
44
+ - Bump @fluentui/react-shared-contexts to v9.0.0-beta.2 ([PR #20353](https://github.com/microsoft/fluentui/pull/20353) by beachball)
45
+ - Bump @fluentui/react-utilities to v9.0.0-beta.2 ([PR #20353](https://github.com/microsoft/fluentui/pull/20353) by beachball)
46
+
47
+ ## [9.0.0-beta.2](https://github.com/microsoft/fluentui/tree/@fluentui/react-tabster_v9.0.0-beta.2)
48
+
49
+ Tue, 12 Oct 2021 19:45:58 GMT
50
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tabster_v9.0.0-beta.1..@fluentui/react-tabster_v9.0.0-beta.2)
51
+
52
+ ### Changes
53
+
54
+ - Add useFocusableGroup hook ([PR #20132](https://github.com/microsoft/fluentui/pull/20132) by andredias@microsoft.com)
55
+
7
56
  ## [9.0.0-beta.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-tabster_v9.0.0-beta.1)
8
57
 
9
- Wed, 06 Oct 2021 10:36:00 GMT
58
+ Wed, 06 Oct 2021 10:37:22 GMT
10
59
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tabster_v9.0.0-alpha.73..@fluentui/react-tabster_v9.0.0-beta.1)
11
60
 
12
61
  ### Changes
@@ -64,6 +64,19 @@ export declare interface UseArrowNavigationGroupOptions {
64
64
  memorizeCurrent?: boolean;
65
65
  }
66
66
 
67
+ /**
68
+ * A hook that returns the necessary tabster attributes to support groupping.
69
+ * @param options - Options to configure keyboard navigation
70
+ */
71
+ export declare const useFocusableGroup: (options?: UseFocusableGroupOptions | undefined) => Types.TabsterDOMAttribute;
72
+
73
+ export declare interface UseFocusableGroupOptions {
74
+ /**
75
+ * Behavior for the Tab key.
76
+ */
77
+ tabBehavior?: 'unlimited' | 'limited' | 'limitedTrapFocus';
78
+ }
79
+
67
80
  /**
68
81
  * Returns a set of helper functions that will traverse focusable elements in the context of a root DOM element
69
82
  */
@@ -4,3 +4,4 @@ export * from './useModalAttributes';
4
4
  export * from './useTabsterAttributes';
5
5
  export * from './useFocusIndicatorStyle';
6
6
  export * from './useKeyboardNavAttribute';
7
+ export * from './useFocusableGroup';
@@ -4,4 +4,5 @@ export * from './useModalAttributes';
4
4
  export * from './useTabsterAttributes';
5
5
  export * from './useFocusIndicatorStyle';
6
6
  export * from './useKeyboardNavAttribute';
7
+ export * from './useFocusableGroup';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
@@ -6,10 +6,10 @@ import { useTabster } from './useTabster';
6
6
  * @param options - Options to configure keyboard navigation
7
7
  */
8
8
 
9
- export var useArrowNavigationGroup = function (options) {
9
+ export const useArrowNavigationGroup = options => {
10
10
  var _a;
11
11
 
12
- var tabster = useTabster();
12
+ const tabster = useTabster();
13
13
 
14
14
  if (tabster) {
15
15
  getMover(tabster);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useArrowNavigationGroup.ts"],"names":[],"mappings":"AAAA,SAAS,KAAT,EAAgB,QAAhB,QAAgC,SAAhC;AACA,SAAS,oBAAT,QAAqC,wBAArC;AACA,SAAS,UAAT,QAA2B,cAA3B;AAmBA;;;AAGG;;AACH,OAAO,IAAM,uBAAuB,GAAG,UAAC,OAAD,EAAyC;;;AAC9E,MAAM,OAAO,GAAG,UAAU,EAA1B;;AAEA,MAAI,OAAJ,EAAa;AACX,IAAA,QAAQ,CAAC,OAAD,CAAR;AACD;;AAED,SAAO,oBAAoB,CAAC;AAC1B,IAAA,KAAK,EAAE;AACL,MAAA,MAAM,EAAE,CAAC,EAAC,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,QAAV,CADJ;AAEL,MAAA,SAAS,EAAE,oBAAoB,CAAA,CAAA,EAAA,GAAC,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,IAAV,MAAc,IAAd,IAAc,EAAA,KAAA,KAAA,CAAd,GAAc,EAAd,GAAkB,UAAlB,CAF1B;AAGL,MAAA,eAAe,EAAE,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE;AAHrB;AADmB,GAAD,CAA3B;AAOD,CAdM;;AAgBP,SAAS,oBAAT,CAA8B,IAA9B,EAA0E;AACxE,UAAQ,IAAR;AACE,SAAK,YAAL;AACE,aAAO,KAAK,CAAC,eAAN,CAAsB,UAA7B;;AAEF,SAAK,UAAL;AACA;AACE,aAAO,KAAK,CAAC,eAAN,CAAsB,QAA7B;AANJ;AAQD","sourceRoot":""}
1
+ {"version":3,"sources":["../../src/hooks/useArrowNavigationGroup.ts"],"names":[],"mappings":"AAAA,SAAS,KAAT,EAAgB,QAAhB,QAAgC,SAAhC;AACA,SAAS,oBAAT,QAAqC,wBAArC;AACA,SAAS,UAAT,QAA2B,cAA3B;AAmBA;;;AAGG;;AACH,OAAO,MAAM,uBAAuB,GAAI,OAAD,IAA6C;;;AAClF,QAAM,OAAO,GAAG,UAAU,EAA1B;;AAEA,MAAI,OAAJ,EAAa;AACX,IAAA,QAAQ,CAAC,OAAD,CAAR;AACD;;AAED,SAAO,oBAAoB,CAAC;AAC1B,IAAA,KAAK,EAAE;AACL,MAAA,MAAM,EAAE,CAAC,EAAC,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,QAAV,CADJ;AAEL,MAAA,SAAS,EAAE,oBAAoB,CAAA,CAAA,EAAA,GAAC,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,IAAV,MAAc,IAAd,IAAc,EAAA,KAAA,KAAA,CAAd,GAAc,EAAd,GAAkB,UAAlB,CAF1B;AAGL,MAAA,eAAe,EAAE,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE;AAHrB;AADmB,GAAD,CAA3B;AAOD,CAdM;;AAgBP,SAAS,oBAAT,CAA8B,IAA9B,EAA0E;AACxE,UAAQ,IAAR;AACE,SAAK,YAAL;AACE,aAAO,KAAK,CAAC,eAAN,CAAsB,UAA7B;;AAEF,SAAK,UAAL;AACA;AACE,aAAO,KAAK,CAAC,eAAN,CAAsB,QAA7B;AANJ;AAQD","sourceRoot":""}
@@ -4,41 +4,31 @@ import { useTabster } from './useTabster';
4
4
  * Returns a set of helper functions that will traverse focusable elements in the context of a root DOM element
5
5
  */
6
6
 
7
- export var useFocusFinders = function () {
8
- var tabster = useTabster(); // Narrow props for now and let need dictate additional props in the future
7
+ export const useFocusFinders = () => {
8
+ const tabster = useTabster(); // Narrow props for now and let need dictate additional props in the future
9
9
 
10
- var findAllFocusable = React.useCallback(function (container, acceptCondition) {
11
- return (tabster === null || tabster === void 0 ? void 0 : tabster.focusable.findAll({
12
- container: container,
13
- acceptCondition: acceptCondition
14
- })) || [];
15
- }, [tabster]);
16
- var findFirstFocusable = React.useCallback(function (container) {
17
- return tabster === null || tabster === void 0 ? void 0 : tabster.focusable.findFirst({
18
- container: container
19
- });
20
- }, [tabster]);
21
- var findLastFocusable = React.useCallback(function (container) {
22
- return tabster === null || tabster === void 0 ? void 0 : tabster.focusable.findLast({
23
- container: container
24
- });
25
- }, [tabster]);
26
- var findNextFocusable = React.useCallback(function (currentElement) {
27
- return tabster === null || tabster === void 0 ? void 0 : tabster.focusable.findNext({
28
- currentElement: currentElement
29
- });
30
- }, [tabster]);
31
- var findPrevFocusable = React.useCallback(function (currentElement) {
32
- return tabster === null || tabster === void 0 ? void 0 : tabster.focusable.findPrev({
33
- currentElement: currentElement
34
- });
35
- }, [tabster]);
10
+ const findAllFocusable = React.useCallback((container, acceptCondition) => (tabster === null || tabster === void 0 ? void 0 : tabster.focusable.findAll({
11
+ container,
12
+ acceptCondition
13
+ })) || [], [tabster]);
14
+ const findFirstFocusable = React.useCallback(container => tabster === null || tabster === void 0 ? void 0 : tabster.focusable.findFirst({
15
+ container
16
+ }), [tabster]);
17
+ const findLastFocusable = React.useCallback(container => tabster === null || tabster === void 0 ? void 0 : tabster.focusable.findLast({
18
+ container
19
+ }), [tabster]);
20
+ const findNextFocusable = React.useCallback(currentElement => tabster === null || tabster === void 0 ? void 0 : tabster.focusable.findNext({
21
+ currentElement
22
+ }), [tabster]);
23
+ const findPrevFocusable = React.useCallback(currentElement => tabster === null || tabster === void 0 ? void 0 : tabster.focusable.findPrev({
24
+ currentElement
25
+ }), [tabster]);
36
26
  return {
37
- findAllFocusable: findAllFocusable,
38
- findFirstFocusable: findFirstFocusable,
39
- findLastFocusable: findLastFocusable,
40
- findNextFocusable: findNextFocusable,
41
- findPrevFocusable: findPrevFocusable
27
+ findAllFocusable,
28
+ findFirstFocusable,
29
+ findLastFocusable,
30
+ findNextFocusable,
31
+ findPrevFocusable
42
32
  };
43
33
  };
44
34
  //# sourceMappingURL=useFocusFinders.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useFocusFinders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,UAAT,QAA2B,cAA3B;AAEA;;AAEG;;AACH,OAAO,IAAM,eAAe,GAAG,YAAA;AAC7B,MAAM,OAAO,GAAG,UAAU,EAA1B,CAD6B,CAG7B;;AACA,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAN,CACvB,UAAC,SAAD,EAAyB,eAAzB,EAAsE;AACpE,WAAA,CAAA,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,SAAT,CAAmB,OAAnB,CAA2B;AAAE,MAAA,SAAS,EAAA,SAAX;AAAa,MAAA,eAAe,EAAA;AAA5B,KAA3B,CAAA,KAA8D,EAA9D;AAAgE,GAF3C,EAGvB,CAAC,OAAD,CAHuB,CAAzB;AAMA,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAN,CACzB,UAAC,SAAD,EAAuB;AAAA,WAAK,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,SAAT,CAAmB,SAAnB,CAA6B;AAAE,MAAA,SAAS,EAAA;AAAX,KAA7B,CAAL;AAAgD,GAD9C,EAEzB,CAAC,OAAD,CAFyB,CAA3B;AAKA,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAN,CAAkB,UAAC,SAAD,EAAuB;AAAA,WAAK,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,SAAT,CAAmB,QAAnB,CAA4B;AAAE,MAAA,SAAS,EAAA;AAAX,KAA5B,CAAL;AAA+C,GAAxF,EAA0F,CAClH,OADkH,CAA1F,CAA1B;AAIA,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAN,CACxB,UAAC,cAAD,EAA4B;AAAA,WAAK,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,SAAT,CAAmB,QAAnB,CAA4B;AAAE,MAAA,cAAc,EAAA;AAAhB,KAA5B,CAAL;AAAoD,GADxD,EAExB,CAAC,OAAD,CAFwB,CAA1B;AAKA,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAN,CACxB,UAAC,cAAD,EAA4B;AAAA,WAAK,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,SAAT,CAAmB,QAAnB,CAA4B;AAAE,MAAA,cAAc,EAAA;AAAhB,KAA5B,CAAL;AAAoD,GADxD,EAExB,CAAC,OAAD,CAFwB,CAA1B;AAKA,SAAO;AACL,IAAA,gBAAgB,EAAA,gBADX;AAEL,IAAA,kBAAkB,EAAA,kBAFb;AAGL,IAAA,iBAAiB,EAAA,iBAHZ;AAIL,IAAA,iBAAiB,EAAA,iBAJZ;AAKL,IAAA,iBAAiB,EAAA;AALZ,GAAP;AAOD,CApCM","sourceRoot":""}
1
+ {"version":3,"sources":["../../src/hooks/useFocusFinders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,UAAT,QAA2B,cAA3B;AAEA;;AAEG;;AACH,OAAO,MAAM,eAAe,GAAG,MAAK;AAClC,QAAM,OAAO,GAAG,UAAU,EAA1B,CADkC,CAGlC;;AACA,QAAM,gBAAgB,GAAG,KAAK,CAAC,WAAN,CACvB,CAAC,SAAD,EAAyB,eAAzB,KACE,CAAA,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,SAAT,CAAmB,OAAnB,CAA2B;AAAE,IAAA,SAAF;AAAa,IAAA;AAAb,GAA3B,CAAA,KAA8D,EAFzC,EAGvB,CAAC,OAAD,CAHuB,CAAzB;AAMA,QAAM,kBAAkB,GAAG,KAAK,CAAC,WAAN,CACxB,SAAD,IAA4B,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,SAAT,CAAmB,SAAnB,CAA6B;AAAE,IAAA;AAAF,GAA7B,CADH,EAEzB,CAAC,OAAD,CAFyB,CAA3B;AAKA,QAAM,iBAAiB,GAAG,KAAK,CAAC,WAAN,CAAmB,SAAD,IAA4B,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,SAAT,CAAmB,QAAnB,CAA4B;AAAE,IAAA;AAAF,GAA5B,CAA9C,EAA0F,CAClH,OADkH,CAA1F,CAA1B;AAIA,QAAM,iBAAiB,GAAG,KAAK,CAAC,WAAN,CACvB,cAAD,IAAiC,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,SAAT,CAAmB,QAAnB,CAA4B;AAAE,IAAA;AAAF,GAA5B,CADT,EAExB,CAAC,OAAD,CAFwB,CAA1B;AAKA,QAAM,iBAAiB,GAAG,KAAK,CAAC,WAAN,CACvB,cAAD,IAAiC,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,SAAT,CAAmB,QAAnB,CAA4B;AAAE,IAAA;AAAF,GAA5B,CADT,EAExB,CAAC,OAAD,CAFwB,CAA1B;AAKA,SAAO;AACL,IAAA,gBADK;AAEL,IAAA,kBAFK;AAGL,IAAA,iBAHK;AAIL,IAAA,iBAJK;AAKL,IAAA;AALK,GAAP;AAOD,CApCM","sourceRoot":""}
@@ -1,4 +1,3 @@
1
- import { __assign } from "tslib";
2
1
  import { KEYBOARD_NAV_SELECTOR } from '../symbols';
3
2
  /**
4
3
  * NOTE: the element with the focus outline needs to have `position: relative` so that the
@@ -8,17 +7,19 @@ import { KEYBOARD_NAV_SELECTOR } from '../symbols';
8
7
  * @returns focus outline styles object
9
8
  */
10
9
 
11
- var getFocusOutlineStyles = function (options) {
10
+ const getFocusOutlineStyles = options => {
12
11
  var _a, _b, _c, _d;
13
12
 
14
- var outlineRadius = options.outlineRadius,
15
- outlineColor = options.outlineColor,
16
- outlineOffset = options.outlineOffset,
17
- outlineWidth = options.outlineWidth;
18
- var outlineOffsetTop = ((_a = outlineOffset) === null || _a === void 0 ? void 0 : _a.top) || outlineOffset;
19
- var outlineOffsetBottom = ((_b = outlineOffset) === null || _b === void 0 ? void 0 : _b.bottom) || outlineOffset;
20
- var outlineOffsetLeft = ((_c = outlineOffset) === null || _c === void 0 ? void 0 : _c.left) || outlineOffset;
21
- var outlineOffsetRight = ((_d = outlineOffset) === null || _d === void 0 ? void 0 : _d.right) || outlineOffset;
13
+ const {
14
+ outlineRadius,
15
+ outlineColor,
16
+ outlineOffset,
17
+ outlineWidth
18
+ } = options;
19
+ const outlineOffsetTop = ((_a = outlineOffset) === null || _a === void 0 ? void 0 : _a.top) || outlineOffset;
20
+ const outlineOffsetBottom = ((_b = outlineOffset) === null || _b === void 0 ? void 0 : _b.bottom) || outlineOffset;
21
+ const outlineOffsetLeft = ((_c = outlineOffset) === null || _c === void 0 ? void 0 : _c.left) || outlineOffset;
22
+ const outlineOffsetRight = ((_d = outlineOffset) === null || _d === void 0 ? void 0 : _d.right) || outlineOffset;
22
23
  return {
23
24
  borderColor: 'transparent',
24
25
  ':after': {
@@ -31,15 +32,15 @@ var getFocusOutlineStyles = function (options) {
31
32
  borderWidth: outlineWidth,
32
33
  borderRadius: outlineRadius,
33
34
  borderColor: outlineColor,
34
- top: !outlineOffset ? "-" + outlineWidth : "calc(0px - " + outlineWidth + " - " + outlineOffsetTop + ")",
35
- bottom: !outlineOffset ? "-" + outlineWidth : "calc(0px - " + outlineWidth + " - " + outlineOffsetBottom + ")",
36
- left: !outlineOffset ? "-" + outlineWidth : "calc(0px - " + outlineWidth + " - " + outlineOffsetLeft + ")",
37
- right: !outlineOffset ? "-" + outlineWidth : "calc(0px - " + outlineWidth + " - " + outlineOffsetRight + ")"
35
+ top: !outlineOffset ? `-${outlineWidth}` : `calc(0px - ${outlineWidth} - ${outlineOffsetTop})`,
36
+ bottom: !outlineOffset ? `-${outlineWidth}` : `calc(0px - ${outlineWidth} - ${outlineOffsetBottom})`,
37
+ left: !outlineOffset ? `-${outlineWidth}` : `calc(0px - ${outlineWidth} - ${outlineOffsetLeft})`,
38
+ right: !outlineOffset ? `-${outlineWidth}` : `calc(0px - ${outlineWidth} - ${outlineOffsetRight})`
38
39
  }
39
40
  };
40
41
  };
41
42
 
42
- var defaultOptions = {
43
+ const defaultOptions = {
43
44
  selector: 'focus'
44
45
  };
45
46
  /**
@@ -51,26 +52,21 @@ var defaultOptions = {
51
52
  * @returns focus outline styles object for @see makeStyles
52
53
  */
53
54
 
54
- export var createFocusOutlineStyle = function (theme, options) {
55
- var _a;
56
-
57
- if (options === void 0) {
58
- options = __assign({
59
- style: {}
60
- }, defaultOptions);
61
- }
62
-
63
- return _a = {
64
- ':focus-visible': {
65
- outline: 'none'
66
- }
67
- }, _a[KEYBOARD_NAV_SELECTOR + " :" + (options.selector || defaultOptions.selector)] = getFocusOutlineStyles(__assign({
55
+ export const createFocusOutlineStyle = (theme, options = {
56
+ style: {},
57
+ ...defaultOptions
58
+ }) => ({
59
+ ':focus-visible': {
60
+ outline: 'none'
61
+ },
62
+ [`${KEYBOARD_NAV_SELECTOR} :${options.selector || defaultOptions.selector}`]: getFocusOutlineStyles({
68
63
  outlineColor: theme.colorStrokeFocus2,
69
64
  outlineRadius: theme.borderRadiusMedium,
70
65
  // FIXME: theme.global.strokeWidth.thick causes some weird bugs
71
- outlineWidth: '2px'
72
- }, options.style)), _a;
73
- };
66
+ outlineWidth: '2px',
67
+ ...options.style
68
+ })
69
+ });
74
70
  /**
75
71
  * Creates a style rule for @see makeStyles that includes the necessary selectors for focus.
76
72
  * Should be used only when @see createFocusOutlineStyle does not fit requirements
@@ -78,19 +74,10 @@ export var createFocusOutlineStyle = function (theme, options) {
78
74
  * @param rule - styling applied on focus, defaults to @see getDefaultFocusOutlineStyes
79
75
  */
80
76
 
81
- export var createCustomFocusIndicatorStyle = function (rule, options) {
82
- if (options === void 0) {
83
- options = defaultOptions;
84
- }
85
-
86
- return function (theme) {
87
- var _a;
88
-
89
- return _a = {
90
- ':focus-visible': {
91
- outline: 'none'
92
- }
93
- }, _a[KEYBOARD_NAV_SELECTOR + " :" + (options.selector || defaultOptions.selector)] = typeof rule === 'function' ? rule(theme) : rule, _a;
94
- };
95
- };
77
+ export const createCustomFocusIndicatorStyle = (rule, options = defaultOptions) => theme => ({
78
+ ':focus-visible': {
79
+ outline: 'none'
80
+ },
81
+ [`${KEYBOARD_NAV_SELECTOR} :${options.selector || defaultOptions.selector}`]: typeof rule === 'function' ? rule(theme) : rule
82
+ });
96
83
  //# sourceMappingURL=useFocusIndicatorStyle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useFocusIndicatorStyle.ts"],"names":[],"mappings":"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","sourceRoot":""}
1
+ {"version":3,"sources":["../../src/hooks/useFocusIndicatorStyle.ts"],"names":[],"mappings":"AAEA,SAAS,qBAAT,QAAsC,YAAtC;AAcA;;;;;;AAMG;;AACH,MAAM,qBAAqB,GAAI,OAAD,IAAsC;;;AAClE,QAAM;AAAE,IAAA,aAAF;AAAiB,IAAA,YAAjB;AAA+B,IAAA,aAA/B;AAA8C,IAAA;AAA9C,MAA+D,OAArE;AAEA,QAAM,gBAAgB,GAAG,CAAA,CAAA,EAAA,GAAC,aAAD,MAAqC,IAArC,IAAqC,EAAA,KAAA,KAAA,CAArC,GAAqC,KAAA,CAArC,GAAqC,EAAA,CAAE,GAAvC,KAA8C,aAAvE;AACA,QAAM,mBAAmB,GAAG,CAAA,CAAA,EAAA,GAAC,aAAD,MAAqC,IAArC,IAAqC,EAAA,KAAA,KAAA,CAArC,GAAqC,KAAA,CAArC,GAAqC,EAAA,CAAE,MAAvC,KAAiD,aAA7E;AACA,QAAM,iBAAiB,GAAG,CAAA,CAAA,EAAA,GAAC,aAAD,MAAqC,IAArC,IAAqC,EAAA,KAAA,KAAA,CAArC,GAAqC,KAAA,CAArC,GAAqC,EAAA,CAAE,IAAvC,KAA+C,aAAzE;AACA,QAAM,kBAAkB,GAAG,CAAA,CAAA,EAAA,GAAC,aAAD,MAAqC,IAArC,IAAqC,EAAA,KAAA,KAAA,CAArC,GAAqC,KAAA,CAArC,GAAqC,EAAA,CAAE,KAAvC,KAAgD,aAA3E;AAEA,SAAO;AACL,IAAA,WAAW,EAAE,aADR;AAEL,cAAU;AACR,MAAA,OAAO,EAAE,IADD;AAER,MAAA,QAAQ,EAAE,UAFF;AAGR,MAAA,aAAa,EAAE,MAHP;AAIR,MAAA,SAAS,EAAE,aAJH;AAKR,MAAA,MAAM,EAAE,CALA;AAOR,MAAA,WAAW,EAAE,OAPL;AAQR,MAAA,WAAW,EAAE,YARL;AASR,MAAA,YAAY,EAAE,aATN;AAUR,MAAA,WAAW,EAAE,YAVL;AAYR,MAAA,GAAG,EAAE,CAAC,aAAD,GAAiB,IAAI,YAAY,EAAjC,GAAsC,cAAc,YAAY,MAAM,gBAAgB,GAZnF;AAaR,MAAA,MAAM,EAAE,CAAC,aAAD,GAAiB,IAAI,YAAY,EAAjC,GAAsC,cAAc,YAAY,MAAM,mBAAmB,GAbzF;AAcR,MAAA,IAAI,EAAE,CAAC,aAAD,GAAiB,IAAI,YAAY,EAAjC,GAAsC,cAAc,YAAY,MAAM,iBAAiB,GAdrF;AAeR,MAAA,KAAK,EAAE,CAAC,aAAD,GAAiB,IAAI,YAAY,EAAjC,GAAsC,cAAc,YAAY,MAAM,kBAAkB;AAfvF;AAFL,GAAP;AAoBD,CA5BD;;AAkCA,MAAM,cAAc,GAAyC;AAC3D,EAAA,QAAQ,EAAE;AADiD,CAA7D;AAIA;;;;;;;AAOG;;AACH,OAAO,MAAM,uBAAuB,GAAG,CACrC,KADqC,EAErC,OAAA,GAE2C;AAAE,EAAA,KAAK,EAAE,EAAT;AAAa,KAAG;AAAhB,CAJN,MAKrB;AAChB,oBAAkB;AAChB,IAAA,OAAO,EAAE;AADO,GADF;AAIhB,GAAC,GAAG,qBAAqB,KAAK,OAAO,CAAC,QAAR,IAAoB,cAAc,CAAC,QAAQ,EAAzE,GAA8E,qBAAqB,CAAC;AAClG,IAAA,YAAY,EAAE,KAAK,CAAC,iBAD8E;AAElG,IAAA,aAAa,EAAE,KAAK,CAAC,kBAF6E;AAGlG;AACA,IAAA,YAAY,EAAE,KAJoF;AAKlG,OAAG,OAAO,CAAC;AALuF,GAAD;AAJnF,CALqB,CAAhC;AAkBP;;;;;AAKG;;AACH,OAAO,MAAM,+BAA+B,GAAG,CAC7C,IAD6C,EAE7C,OAAA,GAAgD,cAFH,KAGd,KAAK,KAAK;AACzC,oBAAkB;AAChB,IAAA,OAAO,EAAE;AADO,GADuB;AAIzC,GAAC,GAAG,qBAAqB,KAAK,OAAO,CAAC,QAAR,IAAoB,cAAc,CAAC,QAAQ,EAAzE,GACE,OAAO,IAAP,KAAgB,UAAhB,GAA6B,IAAI,CAAC,KAAD,CAAjC,GAA2C;AALJ,CAAL,CAH/B","sourceRoot":""}
@@ -0,0 +1,12 @@
1
+ import { Types } from 'tabster';
2
+ export interface UseFocusableGroupOptions {
3
+ /**
4
+ * Behavior for the Tab key.
5
+ */
6
+ tabBehavior?: 'unlimited' | 'limited' | 'limitedTrapFocus';
7
+ }
8
+ /**
9
+ * A hook that returns the necessary tabster attributes to support groupping.
10
+ * @param options - Options to configure keyboard navigation
11
+ */
12
+ export declare const useFocusableGroup: (options?: UseFocusableGroupOptions | undefined) => Types.TabsterDOMAttribute;
@@ -0,0 +1,38 @@
1
+ import { Types, getGroupper } from 'tabster';
2
+ import { useTabsterAttributes } from './useTabsterAttributes';
3
+ import { useTabster } from './useTabster';
4
+ /**
5
+ * A hook that returns the necessary tabster attributes to support groupping.
6
+ * @param options - Options to configure keyboard navigation
7
+ */
8
+
9
+ export const useFocusableGroup = options => {
10
+ const tabster = useTabster();
11
+
12
+ if (tabster) {
13
+ getGroupper(tabster);
14
+ }
15
+
16
+ return useTabsterAttributes({
17
+ groupper: {
18
+ tabbability: getTabbability(options === null || options === void 0 ? void 0 : options.tabBehavior)
19
+ }
20
+ });
21
+ };
22
+
23
+ const getTabbability = tabBehavior => {
24
+ switch (tabBehavior) {
25
+ case 'unlimited':
26
+ return Types.GroupperTabbabilities.Unlimited;
27
+
28
+ case 'limited':
29
+ return Types.GroupperTabbabilities.Limited;
30
+
31
+ case 'limitedTrapFocus':
32
+ return Types.GroupperTabbabilities.LimitedTrapFocus;
33
+
34
+ default:
35
+ return undefined;
36
+ }
37
+ };
38
+ //# sourceMappingURL=useFocusableGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/useFocusableGroup.ts"],"names":[],"mappings":"AAAA,SAAS,KAAT,EAAgB,WAAhB,QAAmC,SAAnC;AACA,SAAS,oBAAT,QAAqC,wBAArC;AACA,SAAS,UAAT,QAA2B,cAA3B;AASA;;;AAGG;;AACH,OAAO,MAAM,iBAAiB,GAAI,OAAD,IAAuC;AACtE,QAAM,OAAO,GAAG,UAAU,EAA1B;;AAEA,MAAI,OAAJ,EAAa;AACX,IAAA,WAAW,CAAC,OAAD,CAAX;AACD;;AAED,SAAO,oBAAoB,CAAC;AAC1B,IAAA,QAAQ,EAAE;AACR,MAAA,WAAW,EAAE,cAAc,CAAC,OAAO,KAAA,IAAP,IAAA,OAAO,KAAA,KAAA,CAAP,GAAO,KAAA,CAAP,GAAA,OAAO,CAAE,WAAV;AADnB;AADgB,GAAD,CAA3B;AAKD,CAZM;;AAcP,MAAM,cAAc,GAClB,WADqB,IAEoB;AACzC,UAAQ,WAAR;AACE,SAAK,WAAL;AACE,aAAO,KAAK,CAAC,qBAAN,CAA4B,SAAnC;;AACF,SAAK,SAAL;AACE,aAAO,KAAK,CAAC,qBAAN,CAA4B,OAAnC;;AACF,SAAK,kBAAL;AACE,aAAO,KAAK,CAAC,qBAAN,CAA4B,gBAAnC;;AACF;AACE,aAAO,SAAP;AARJ;AAUD,CAbD","sourceRoot":""}
@@ -7,23 +7,21 @@ import { useFluent } from '@fluentui/react-shared-contexts';
7
7
  */
8
8
 
9
9
  export function useKeyboardNavAttribute() {
10
- var targetDocument = useFluent().targetDocument;
11
- var keyborg = useMemo(function () {
12
- return targetDocument && createKeyborg(targetDocument.defaultView);
13
- }, [targetDocument]);
14
- var ref = useRef(null);
15
- useEffect(function () {
10
+ const {
11
+ targetDocument
12
+ } = useFluent();
13
+ const keyborg = useMemo(() => targetDocument && createKeyborg(targetDocument.defaultView), [targetDocument]);
14
+ const ref = useRef(null);
15
+ useEffect(() => {
16
16
  if (keyborg) {
17
17
  setBooleanAttribute(ref, KEYBOARD_NAV_ATTRIBUTE, keyborg.isNavigatingWithKeyboard());
18
18
 
19
- var cb_1 = function (next) {
19
+ const cb = next => {
20
20
  setBooleanAttribute(ref, KEYBOARD_NAV_ATTRIBUTE, next);
21
21
  };
22
22
 
23
- keyborg.subscribe(cb_1);
24
- return function () {
25
- return keyborg.unsubscribe(cb_1);
26
- };
23
+ keyborg.subscribe(cb);
24
+ return () => keyborg.unsubscribe(cb);
27
25
  }
28
26
  }, [keyborg]);
29
27
  return ref;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/useKeyboardNavAttribute.ts"],"names":[],"mappings":"AAAA,SAAS,aAAT,QAA8B,SAA9B;AACA,SAAS,SAAT,EAAoB,OAApB,EAA6B,MAA7B,QAA2C,OAA3C;AACA,SAAS,sBAAT,QAAuC,YAAvC;AACA,SAAS,SAAT,QAA0B,iCAA1B;AAIA;;AAEG;;AACH,OAAM,SAAU,uBAAV,GAAiC;AAC7B,MAAA,cAAc,GAAK,SAAS,GAAd,cAAd;AACR,MAAM,OAAO,GAAG,OAAO,CAAC,YAAA;AAAM,WAAA,cAAc,IAAI,aAAa,CAAC,cAAc,CAA9C,WAA+B,CAA/B;AAA4D,GAAnE,EAAqE,CAAC,cAAD,CAArE,CAAvB;AACA,MAAM,GAAG,GAAG,MAAM,CAAI,IAAJ,CAAlB;AACA,EAAA,SAAS,CAAC,YAAA;AACR,QAAI,OAAJ,EAAa;AACX,MAAA,mBAAmB,CAAC,GAAD,EAAM,sBAAN,EAA8B,OAAO,CAAC,wBAAR,EAA9B,CAAnB;;AACA,UAAM,IAAE,GAAoB,UAAA,IAAA,EAAI;AAC9B,QAAA,mBAAmB,CAAC,GAAD,EAAM,sBAAN,EAA8B,IAA9B,CAAnB;AACD,OAFD;;AAGA,MAAA,OAAO,CAAC,SAAR,CAAkB,IAAlB;AACA,aAAO,YAAA;AAAM,eAAA,OAAO,CAAC,WAAR,CAAA,IAAA,CAAA;AAAuB,OAApC;AACD;AACF,GATQ,EASN,CAAC,OAAD,CATM,CAAT;AAUA,SAAO,GAAP;AACD;;AAED,SAAS,mBAAT,CAA6B,UAA7B,EAAiE,SAAjE,EAAoF,KAApF,EAAkG;AAChG,MAAI,CAAC,UAAU,CAAC,OAAhB,EAAyB;AACvB;AACD;;AACD,MAAI,KAAJ,EAAW;AACT,IAAA,UAAU,CAAC,OAAX,CAAmB,YAAnB,CAAgC,SAAhC,EAA2C,EAA3C;AACD,GAFD,MAEO;AACL,IAAA,UAAU,CAAC,OAAX,CAAmB,eAAnB,CAAmC,SAAnC;AACD;AACF","sourceRoot":""}
1
+ {"version":3,"sources":["../../src/hooks/useKeyboardNavAttribute.ts"],"names":[],"mappings":"AAAA,SAAS,aAAT,QAA8B,SAA9B;AACA,SAAS,SAAT,EAAoB,OAApB,EAA6B,MAA7B,QAA2C,OAA3C;AACA,SAAS,sBAAT,QAAuC,YAAvC;AACA,SAAS,SAAT,QAA0B,iCAA1B;AAIA;;AAEG;;AACH,OAAM,SAAU,uBAAV,GAAiC;AACrC,QAAM;AAAE,IAAA;AAAF,MAAqB,SAAS,EAApC;AACA,QAAM,OAAO,GAAG,OAAO,CAAC,MAAM,cAAc,IAAI,aAAa,CAAC,cAAc,CAAC,WAAhB,CAAtC,EAAqE,CAAC,cAAD,CAArE,CAAvB;AACA,QAAM,GAAG,GAAG,MAAM,CAAI,IAAJ,CAAlB;AACA,EAAA,SAAS,CAAC,MAAK;AACb,QAAI,OAAJ,EAAa;AACX,MAAA,mBAAmB,CAAC,GAAD,EAAM,sBAAN,EAA8B,OAAO,CAAC,wBAAR,EAA9B,CAAnB;;AACA,YAAM,EAAE,GAAoB,IAAI,IAAG;AACjC,QAAA,mBAAmB,CAAC,GAAD,EAAM,sBAAN,EAA8B,IAA9B,CAAnB;AACD,OAFD;;AAGA,MAAA,OAAO,CAAC,SAAR,CAAkB,EAAlB;AACA,aAAO,MAAM,OAAO,CAAC,WAAR,CAAoB,EAApB,CAAb;AACD;AACF,GATQ,EASN,CAAC,OAAD,CATM,CAAT;AAUA,SAAO,GAAP;AACD;;AAED,SAAS,mBAAT,CAA6B,UAA7B,EAAiE,SAAjE,EAAoF,KAApF,EAAkG;AAChG,MAAI,CAAC,UAAU,CAAC,OAAhB,EAAyB;AACvB;AACD;;AACD,MAAI,KAAJ,EAAW;AACT,IAAA,UAAU,CAAC,OAAX,CAAmB,YAAnB,CAAgC,SAAhC,EAA2C,EAA3C;AACD,GAFD,MAEO;AACL,IAAA,UAAU,CAAC,OAAX,CAAmB,eAAnB,CAAmC,SAAnC;AACD;AACF","sourceRoot":""}