@tamagui/focus-scope 2.0.0-rc.4 → 2.0.0-rc.40

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 (55) hide show
  1. package/dist/cjs/FocusScope.cjs +284 -167
  2. package/dist/cjs/FocusScope.native.js +28 -26
  3. package/dist/cjs/FocusScope.native.js.map +1 -1
  4. package/dist/cjs/FocusScopeController.cjs +52 -50
  5. package/dist/cjs/FocusScopeController.native.js +49 -47
  6. package/dist/cjs/FocusScopeController.native.js.map +1 -1
  7. package/dist/cjs/index.cjs +7 -5
  8. package/dist/cjs/index.native.js +7 -5
  9. package/dist/cjs/index.native.js.map +1 -1
  10. package/dist/cjs/types.cjs +7 -5
  11. package/dist/cjs/types.native.js +7 -5
  12. package/dist/cjs/types.native.js.map +1 -1
  13. package/dist/esm/FocusScope.mjs +253 -138
  14. package/dist/esm/FocusScope.mjs.map +1 -1
  15. package/dist/esm/FocusScopeController.mjs +24 -24
  16. package/dist/esm/FocusScopeController.mjs.map +1 -1
  17. package/dist/esm/FocusScopeController.native.js +21 -21
  18. package/dist/esm/FocusScopeController.native.js.map +1 -1
  19. package/dist/esm/index.js +2 -2
  20. package/dist/esm/index.js.map +1 -6
  21. package/dist/jsx/FocusScope.mjs +253 -138
  22. package/dist/jsx/FocusScope.mjs.map +1 -1
  23. package/dist/jsx/FocusScope.native.js +28 -26
  24. package/dist/jsx/FocusScope.native.js.map +1 -1
  25. package/dist/jsx/FocusScopeController.mjs +24 -24
  26. package/dist/jsx/FocusScopeController.mjs.map +1 -1
  27. package/dist/jsx/FocusScopeController.native.js +49 -47
  28. package/dist/jsx/FocusScopeController.native.js.map +1 -1
  29. package/dist/jsx/index.js +2 -2
  30. package/dist/jsx/index.js.map +1 -6
  31. package/dist/jsx/index.native.js +7 -5
  32. package/dist/jsx/types.native.js +7 -5
  33. package/package.json +11 -14
  34. package/src/FocusScope.tsx +33 -6
  35. package/types/FocusScope.d.ts.map +1 -1
  36. package/dist/cjs/FocusScope.js +0 -245
  37. package/dist/cjs/FocusScope.js.map +0 -6
  38. package/dist/cjs/FocusScopeController.js +0 -69
  39. package/dist/cjs/FocusScopeController.js.map +0 -6
  40. package/dist/cjs/index.js +0 -16
  41. package/dist/cjs/index.js.map +0 -6
  42. package/dist/cjs/types.js +0 -14
  43. package/dist/cjs/types.js.map +0 -6
  44. package/dist/esm/FocusScope.js +0 -227
  45. package/dist/esm/FocusScope.js.map +0 -6
  46. package/dist/esm/FocusScopeController.js +0 -48
  47. package/dist/esm/FocusScopeController.js.map +0 -6
  48. package/dist/esm/types.js +0 -1
  49. package/dist/esm/types.js.map +0 -6
  50. package/dist/jsx/FocusScope.js +0 -227
  51. package/dist/jsx/FocusScope.js.map +0 -6
  52. package/dist/jsx/FocusScopeController.js +0 -48
  53. package/dist/jsx/FocusScopeController.js.map +0 -6
  54. package/dist/jsx/types.js +0 -1
  55. package/dist/jsx/types.js.map +0 -6
@@ -1,48 +0,0 @@
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
@@ -1,6 +0,0 @@
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
- }
package/dist/esm/types.js DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=types.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "mappings": "",
5
- "names": []
6
- }
@@ -1,227 +0,0 @@
1
- import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
3
- import { idle, useAsyncEffect } from "@tamagui/use-async";
4
- import { useEvent } from "@tamagui/use-event";
5
- import * as React from "react";
6
- import { useFocusScopeControllerContext } from "./FocusScopeController";
7
- import { Fragment, jsx } from "react/jsx-runtime";
8
- const AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount", AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount", EVENT_OPTIONS = { bubbles: !1, cancelable: !0 }, FocusScope = React.forwardRef(
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
- );
27
- }
28
- );
29
- function setupFocusTrap(container, lastFocusedElementRef, focusScope) {
30
- const controller = new AbortController();
31
- let rafId = null;
32
- function scheduleRefocus() {
33
- if (rafId) return;
34
- const elementToFocus = lastFocusedElementRef.current;
35
- rafId = requestAnimationFrame(() => {
36
- rafId = null, !focusScope.paused && (focusScope.stopped || container.isConnected && (container.contains(document.activeElement) || focus(elementToFocus)));
37
- });
38
- }
39
- function handleFocusIn(event) {
40
- if (focusScope.paused) return;
41
- const target = event.target;
42
- container.contains(target) ? (target?.addEventListener("blur", handleBlur, { signal: controller.signal }), lastFocusedElementRef.current = target) : scheduleRefocus();
43
- }
44
- function handleFocusOut(event) {
45
- controller.abort(), !focusScope.paused && (container.contains(event.relatedTarget) || scheduleRefocus());
46
- }
47
- function handleBlur() {
48
- }
49
- return document.addEventListener("focusin", handleFocusIn), document.addEventListener("focusout", handleFocusOut), () => {
50
- rafId && (cancelAnimationFrame(rafId), rafId = null), controller.abort(), document.removeEventListener("focusin", handleFocusIn), document.removeEventListener("focusout", handleFocusOut);
51
- };
52
- }
53
- function useFocusScope(props, forwardedRef) {
54
- const {
55
- loop = !1,
56
- enabled = !0,
57
- trapped = !1,
58
- onMountAutoFocus: onMountAutoFocusProp,
59
- onUnmountAutoFocus: onUnmountAutoFocusProp,
60
- forceUnmount,
61
- focusOnIdle = !0,
62
- children,
63
- ...scopeProps
64
- } = props, [container, setContainer] = React.useState(null), containerRef = React.useRef(null), onMountAutoFocus = useEvent(onMountAutoFocusProp), onUnmountAutoFocus = useEvent(onUnmountAutoFocusProp), lastFocusedElementRef = React.useRef(null), focusScopeRef = React.useRef({
65
- paused: !1,
66
- stopped: !1,
67
- // set to true when cleanup starts, signals trap to stop
68
- pause() {
69
- this.paused = !0;
70
- },
71
- resume() {
72
- this.paused = !1;
73
- },
74
- stop() {
75
- this.stopped = !0;
76
- }
77
- }), focusScope = focusScopeRef.current, trapCleanupRef = React.useRef(null), setContainerRef = React.useCallback(
78
- (node) => {
79
- trapCleanupRef.current && (trapCleanupRef.current(), trapCleanupRef.current = null), containerRef.current = node, isWeb && node && enabled && trapped && (trapCleanupRef.current = setupFocusTrap(
80
- node,
81
- lastFocusedElementRef,
82
- focusScopeRef.current
83
- )), setContainer(node);
84
- },
85
- [enabled, trapped]
86
- ), composedRefs = useComposedRefs(forwardedRef, setContainerRef);
87
- useIsomorphicLayoutEffect(() => () => {
88
- trapCleanupRef.current && (trapCleanupRef.current(), trapCleanupRef.current = null);
89
- }, []), useAsyncEffect(
90
- async (signal) => {
91
- if (!enabled || !container || forceUnmount) return;
92
- focusScope.stopped = !1, focusScopesStack.add(focusScope);
93
- const previouslyFocusedElement = document.activeElement;
94
- if (!container.contains(previouslyFocusedElement)) {
95
- const mountEvent = new CustomEvent(AUTOFOCUS_ON_MOUNT, EVENT_OPTIONS);
96
- if (container.addEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus), container.dispatchEvent(mountEvent), !mountEvent.defaultPrevented) {
97
- focusOnIdle && await idle(
98
- signal,
99
- typeof focusOnIdle == "object" ? focusOnIdle : {
100
- // we can't wait too long or else user can take an action and then we focus
101
- max: 200,
102
- min: typeof focusOnIdle == "number" ? focusOnIdle : 16
103
- }
104
- );
105
- const allCandidates = getTabbableCandidates(container), visibleCandidates = removeLinks(allCandidates).filter(
106
- (candidate) => !isHidden(candidate, { upTo: container })
107
- );
108
- focusFirst(visibleCandidates, { select: !0 }), visibleCandidates.length > 0 ? lastFocusedElementRef.current = visibleCandidates[0] : lastFocusedElementRef.current = container, document.activeElement === previouslyFocusedElement && visibleCandidates.length === 0 && focus(container);
109
- }
110
- }
111
- return () => {
112
- focusScope.stop(), container.removeEventListener(AUTOFOCUS_ON_MOUNT, onMountAutoFocus);
113
- const unmountEvent = new CustomEvent(AUTOFOCUS_ON_UNMOUNT, EVENT_OPTIONS);
114
- 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);
115
- };
116
- },
117
- [
118
- enabled,
119
- container,
120
- forceUnmount,
121
- onMountAutoFocus,
122
- onUnmountAutoFocus,
123
- focusScope,
124
- focusOnIdle
125
- ]
126
- );
127
- const handleKeyDown = React.useCallback(
128
- (event) => {
129
- if (!trapped || !loop || focusScope.paused || !enabled || !container) return;
130
- const isTabKey = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey, focusedElement = document.activeElement;
131
- if (isTabKey && focusedElement) {
132
- const [first, last] = getTabbableEdges(container);
133
- first && last ? !event.shiftKey && focusedElement === last ? (event.preventDefault(), loop && focus(first, { select: !0 })) : event.shiftKey && focusedElement === first && (event.preventDefault(), loop && focus(last, { select: !0 })) : focusedElement === container && event.preventDefault();
134
- }
135
- },
136
- [loop, trapped, focusScope.paused, enabled, container]
137
- );
138
- React.useEffect(() => {
139
- if (!container || !trapped || !loop || !enabled) return;
140
- const handleKeyDownCapture = (event) => {
141
- event.key === "Tab" && handleKeyDown(event);
142
- };
143
- return container.addEventListener("keydown", handleKeyDownCapture, !0), () => {
144
- container.removeEventListener("keydown", handleKeyDownCapture, !0);
145
- };
146
- }, [container, trapped, loop, enabled, handleKeyDown]);
147
- const existingOnKeyDown = scopeProps.onKeyDown, composedOnKeyDown = React.useCallback(
148
- (event) => {
149
- existingOnKeyDown?.(event);
150
- },
151
- [existingOnKeyDown]
152
- );
153
- return {
154
- ...scopeProps,
155
- ref: composedRefs,
156
- onKeyDown: composedOnKeyDown
157
- };
158
- }
159
- function focusFirst(candidates, { select = !1 } = {}) {
160
- const previouslyFocusedElement = document.activeElement;
161
- for (const candidate of candidates)
162
- if (focus(candidate, { select }), document.activeElement !== previouslyFocusedElement) return;
163
- }
164
- function getTabbableEdges(container) {
165
- const candidates = getTabbableCandidates(container), first = findVisible(candidates, container), last = findVisible(candidates.reverse(), container);
166
- return [first, last];
167
- }
168
- function getTabbableCandidates(container) {
169
- const nodes = [], walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
170
- acceptNode: (node) => {
171
- const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
172
- return node.disabled || node.hidden || isHiddenInput ? NodeFilter.FILTER_SKIP : node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
173
- }
174
- });
175
- for (; walker.nextNode(); ) nodes.push(walker.currentNode);
176
- return nodes;
177
- }
178
- function findVisible(elements, container) {
179
- for (const element of elements)
180
- if (!isHidden(element, { upTo: container })) return element;
181
- }
182
- function isHidden(node, { upTo }) {
183
- if (getComputedStyle(node).visibility === "hidden") return !0;
184
- for (; node; ) {
185
- if (upTo !== void 0 && node === upTo) return !1;
186
- if (getComputedStyle(node).display === "none") return !0;
187
- node = node.parentElement;
188
- }
189
- return !1;
190
- }
191
- function isSelectableInput(element) {
192
- return element instanceof HTMLInputElement && "select" in element;
193
- }
194
- function focus(element, { select = !1 } = {}) {
195
- if (element?.focus) {
196
- const previouslyFocusedElement = document.activeElement;
197
- try {
198
- element.focus({ preventScroll: !0 }), element !== previouslyFocusedElement && isSelectableInput(element) && select && element.select();
199
- } catch {
200
- }
201
- }
202
- }
203
- const focusScopesStack = createFocusScopesStack();
204
- function createFocusScopesStack() {
205
- let stack = [];
206
- return {
207
- add(focusScope) {
208
- const activeFocusScope = stack[0];
209
- focusScope !== activeFocusScope && activeFocusScope?.pause(), stack = arrayRemove(stack, focusScope), stack.unshift(focusScope);
210
- },
211
- remove(focusScope) {
212
- stack = arrayRemove(stack, focusScope), stack[0]?.resume();
213
- }
214
- };
215
- }
216
- function arrayRemove(array, item) {
217
- const updatedArray = [...array], index = updatedArray.indexOf(item);
218
- return index !== -1 && updatedArray.splice(index, 1), updatedArray;
219
- }
220
- function removeLinks(items) {
221
- return items.filter((item) => item.tagName !== "A");
222
- }
223
- export {
224
- FocusScope,
225
- useFocusScope
226
- };
227
- //# sourceMappingURL=FocusScope.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/FocusScope.tsx"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,48 +0,0 @@
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
@@ -1,6 +0,0 @@
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
- }
package/dist/jsx/types.js DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=types.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "mappings": "",
5
- "names": []
6
- }