@tamagui/roving-focus 1.63.0 → 1.64.0

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.
@@ -0,0 +1,192 @@
1
+ import { createCollection } from "@tamagui/collection";
2
+ import { useComposedRefs } from "@tamagui/compose-refs";
3
+ import {
4
+ Stack,
5
+ composeEventHandlers,
6
+ isWeb,
7
+ useEvent,
8
+ withStaticProperties
9
+ } from "@tamagui/core";
10
+ import { createContextScope } from "@tamagui/create-context";
11
+ import { useControllableState } from "@tamagui/use-controllable-state";
12
+ import { useDirection } from "@tamagui/use-direction";
13
+ import * as React from "react";
14
+ import { jsx } from "react/jsx-runtime";
15
+ const ENTRY_FOCUS = "rovingFocusGroup.onEntryFocus", EVENT_OPTIONS = { bubbles: !1, cancelable: !0 }, RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {
16
+ const {
17
+ __scopeRovingFocusGroup,
18
+ orientation,
19
+ loop = !1,
20
+ dir,
21
+ currentTabStopId: currentTabStopIdProp,
22
+ defaultCurrentTabStopId,
23
+ onCurrentTabStopIdChange,
24
+ onEntryFocus,
25
+ ...groupProps
26
+ } = props, ref = React.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), direction = useDirection(dir), [currentTabStopId = null, setCurrentTabStopId] = useControllableState({
27
+ prop: currentTabStopIdProp,
28
+ defaultProp: defaultCurrentTabStopId ?? null,
29
+ onChange: onCurrentTabStopIdChange
30
+ }), [isTabbingBackOut, setIsTabbingBackOut] = React.useState(!1), handleEntryFocus = useEvent(onEntryFocus), getItems = useCollection(__scopeRovingFocusGroup), isClickFocusRef = React.useRef(!1), [focusableItemsCount, setFocusableItemsCount] = React.useState(0);
31
+ return React.useEffect(() => {
32
+ const node = ref.current;
33
+ if (node)
34
+ return node.addEventListener(ENTRY_FOCUS, handleEntryFocus), () => node.removeEventListener(ENTRY_FOCUS, handleEntryFocus);
35
+ }, [handleEntryFocus]), /* @__PURE__ */ jsx(
36
+ RovingFocusProvider,
37
+ {
38
+ scope: __scopeRovingFocusGroup,
39
+ orientation,
40
+ dir: direction,
41
+ loop,
42
+ currentTabStopId,
43
+ onItemFocus: React.useCallback(
44
+ (tabStopId) => setCurrentTabStopId(tabStopId),
45
+ [setCurrentTabStopId]
46
+ ),
47
+ onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(!0), []),
48
+ onFocusableItemAdd: React.useCallback(
49
+ () => setFocusableItemsCount((prevCount) => prevCount + 1),
50
+ []
51
+ ),
52
+ onFocusableItemRemove: React.useCallback(
53
+ () => setFocusableItemsCount((prevCount) => prevCount - 1),
54
+ []
55
+ ),
56
+ children: /* @__PURE__ */ jsx(
57
+ Stack,
58
+ {
59
+ tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,
60
+ "data-orientation": orientation,
61
+ ...groupProps,
62
+ ref: composedRefs,
63
+ style: [{ outline: "none" }, props.style],
64
+ onMouseDown: composeEventHandlers(props.onMouseDown, () => {
65
+ isClickFocusRef.current = !0;
66
+ }),
67
+ onFocus: composeEventHandlers(props.onFocus, (event) => {
68
+ const isKeyboardFocus = !isClickFocusRef.current;
69
+ if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {
70
+ const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);
71
+ if (event.currentTarget.dispatchEvent(entryFocusEvent), !entryFocusEvent.defaultPrevented) {
72
+ const items = getItems().filter((item) => item.focusable), activeItem = items.find((item) => item.active), currentItem = items.find((item) => item.id === currentTabStopId), candidateNodes = [activeItem, currentItem, ...items].filter(
73
+ Boolean
74
+ ).map((item) => item.ref.current);
75
+ focusFirst(candidateNodes);
76
+ }
77
+ }
78
+ isClickFocusRef.current = !1;
79
+ }),
80
+ onBlur: composeEventHandlers(
81
+ props.onBlur,
82
+ () => setIsTabbingBackOut(!1)
83
+ )
84
+ }
85
+ )
86
+ }
87
+ );
88
+ }), ITEM_NAME = "RovingFocusGroupItem", RovingFocusGroupItem = React.forwardRef((props, forwardedRef) => {
89
+ const {
90
+ __scopeRovingFocusGroup,
91
+ focusable = !0,
92
+ active = !1,
93
+ tabStopId,
94
+ ...itemProps
95
+ } = props, autoId = React.useId(), id = tabStopId || autoId, context = useRovingFocusContext(ITEM_NAME, __scopeRovingFocusGroup), isCurrentTabStop = context.currentTabStopId === id, getItems = useCollection(__scopeRovingFocusGroup), { onFocusableItemAdd, onFocusableItemRemove } = context;
96
+ return React.useEffect(() => {
97
+ if (focusable)
98
+ return onFocusableItemAdd(), () => onFocusableItemRemove();
99
+ }, [focusable, onFocusableItemAdd, onFocusableItemRemove]), /* @__PURE__ */ jsx(
100
+ Collection.ItemSlot,
101
+ {
102
+ scope: __scopeRovingFocusGroup,
103
+ id,
104
+ focusable,
105
+ active,
106
+ children: /* @__PURE__ */ jsx(
107
+ Stack,
108
+ {
109
+ tabIndex: isCurrentTabStop ? 0 : -1,
110
+ "data-orientation": context.orientation,
111
+ ...itemProps,
112
+ ref: forwardedRef,
113
+ onMouseDown: composeEventHandlers(props.onMouseDown, (event) => {
114
+ focusable ? context.onItemFocus(id) : event.preventDefault();
115
+ }),
116
+ onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),
117
+ ...isWeb && {
118
+ onKeyDown: composeEventHandlers(
119
+ props.onKeyDown,
120
+ (event) => {
121
+ if (event.key === "Tab" && event.shiftKey) {
122
+ context.onItemShiftTab();
123
+ return;
124
+ }
125
+ if (event.target !== event.currentTarget)
126
+ return;
127
+ const focusIntent = getFocusIntent(event, context.orientation, context.dir);
128
+ if (focusIntent !== void 0) {
129
+ event.preventDefault();
130
+ let candidateNodes = getItems().filter((item) => item.focusable).map((item) => item.ref.current);
131
+ if (focusIntent === "last")
132
+ candidateNodes.reverse();
133
+ else if (focusIntent === "prev" || focusIntent === "next") {
134
+ focusIntent === "prev" && candidateNodes.reverse();
135
+ const currentIndex = candidateNodes.indexOf(event.currentTarget);
136
+ candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);
137
+ }
138
+ setTimeout(() => focusFirst(candidateNodes));
139
+ }
140
+ }
141
+ )
142
+ }
143
+ }
144
+ )
145
+ }
146
+ );
147
+ });
148
+ RovingFocusGroupItem.displayName = ITEM_NAME;
149
+ const GROUP_NAME = "RovingFocusGroup", [Collection, useCollection, createCollectionScope] = createCollection(GROUP_NAME), [createRovingFocusGroupContext, createRovingFocusGroupScope] = createContextScope(
150
+ GROUP_NAME,
151
+ [createCollectionScope]
152
+ ), [RovingFocusProvider, useRovingFocusContext] = createRovingFocusGroupContext(GROUP_NAME), RovingFocusGroup = withStaticProperties(
153
+ React.forwardRef(
154
+ (props, forwardedRef) => /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeRovingFocusGroup, children: /* @__PURE__ */ jsx(RovingFocusGroupImpl, { ...props, ref: forwardedRef }) }) })
155
+ ),
156
+ {
157
+ Item: RovingFocusGroupItem
158
+ }
159
+ );
160
+ RovingFocusGroup.displayName = GROUP_NAME;
161
+ const MAP_KEY_TO_FOCUS_INTENT = {
162
+ ArrowLeft: "prev",
163
+ ArrowUp: "prev",
164
+ ArrowRight: "next",
165
+ ArrowDown: "next",
166
+ PageUp: "first",
167
+ Home: "first",
168
+ PageDown: "last",
169
+ End: "last"
170
+ };
171
+ function getDirectionAwareKey(key, dir) {
172
+ return dir !== "rtl" ? key : key === "ArrowLeft" ? "ArrowRight" : key === "ArrowRight" ? "ArrowLeft" : key;
173
+ }
174
+ function getFocusIntent(event, orientation, dir) {
175
+ const key = getDirectionAwareKey(event.key, dir);
176
+ if (!(orientation === "vertical" && ["ArrowLeft", "ArrowRight"].includes(key)) && !(orientation === "horizontal" && ["ArrowUp", "ArrowDown"].includes(key)))
177
+ return MAP_KEY_TO_FOCUS_INTENT[key];
178
+ }
179
+ function focusFirst(candidates) {
180
+ const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
181
+ for (const candidate of candidates)
182
+ if (candidate === PREVIOUSLY_FOCUSED_ELEMENT || (candidate.focus(), document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT))
183
+ return;
184
+ }
185
+ function wrapArray(array, startIndex) {
186
+ return array.map((_, index) => array[(startIndex + index) % array.length]);
187
+ }
188
+ export {
189
+ RovingFocusGroup,
190
+ createRovingFocusGroupScope
191
+ };
192
+ //# sourceMappingURL=RovingFocusGroup.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/RovingFocusGroup.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,11 +1,13 @@
1
+ import { jsx } from "react/jsx-runtime";
1
2
  import { Stack, withStaticProperties } from "@tamagui/core";
2
3
  import React from "react";
3
- import { jsx } from "react/jsx-runtime";
4
- const ITEM_NAME = "RovingFocusGroupItem", RovingFocusGroupItem = React.forwardRef(
4
+ const ITEM_NAME = "RovingFocusGroupItem";
5
+ const RovingFocusGroupItem = React.forwardRef(
5
6
  ({ children, ...props }, _ref) => /* @__PURE__ */ jsx(Stack, { ...props, children })
6
7
  );
7
8
  RovingFocusGroupItem.displayName = ITEM_NAME;
8
- const GROUP_NAME = "RovingFocusGroup", RovingFocusGroup = withStaticProperties(
9
+ const GROUP_NAME = "RovingFocusGroup";
10
+ const RovingFocusGroup = withStaticProperties(
9
11
  React.forwardRef(({ children, ...props }, _ref) => /* @__PURE__ */ jsx(Stack, { ...props, children })),
10
12
  {
11
13
  Item: RovingFocusGroupItem
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/RovingFocusGroup.native.tsx"],
4
- "mappings": "AAAA,SAAS,OAAO,4BAA4B;AAC5C,OAAO,WAAW;AASd;AAHJ,MAAM,YAAY,wBACZ,uBAAuB,MAAM;AAAA,EACjC,CAAC,EAAE,UAAU,GAAG,MAAM,GAAyB,SAC7C,oBAAC,SAAO,GAAG,OAAQ,UAAS;AAEhC;AACA,qBAAqB,cAAc;AACnC,MAAM,aAAa,oBAEb,mBAAmB;AAAA,EACvB,MAAM,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,GAA0B,SAC/D,oBAAC,SAAO,GAAG,OAAQ,UAAS,CAC7B;AAAA,EACD;AAAA,IACE,MAAM;AAAA,EACR;AACF;AAEA,iBAAiB,cAAc;AAE/B,MAAM,8BAA8B,MAAM,OAAO,CAAC;",
4
+ "mappings": "AAUI;AAVJ,SAAS,OAAO,4BAA4B;AAC5C,OAAO,WAAW;AAMlB,MAAM,YAAY;AAClB,MAAM,uBAAuB,MAAM;AAAA,EACjC,CAAC,EAAE,UAAU,GAAG,MAAM,GAAyB,SAC7C,oBAAC,SAAO,GAAG,OAAQ,UAAS;AAEhC;AACA,qBAAqB,cAAc;AACnC,MAAM,aAAa;AAEnB,MAAM,mBAAmB;AAAA,EACvB,MAAM,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,GAA0B,SAC/D,oBAAC,SAAO,GAAG,OAAQ,UAAS,CAC7B;AAAA,EACD;AAAA,IACE,MAAM;AAAA,EACR;AACF;AAEA,iBAAiB,cAAc;AAE/B,MAAM,8BAA8B,MAAM,OAAO,CAAC;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,20 @@
1
+ import { Stack, withStaticProperties } from "@tamagui/core";
2
+ import React from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ const ITEM_NAME = "RovingFocusGroupItem", RovingFocusGroupItem = React.forwardRef(
5
+ ({ children, ...props }, _ref) => /* @__PURE__ */ jsx(Stack, { ...props, children })
6
+ );
7
+ RovingFocusGroupItem.displayName = ITEM_NAME;
8
+ const GROUP_NAME = "RovingFocusGroup", RovingFocusGroup = withStaticProperties(
9
+ React.forwardRef(({ children, ...props }, _ref) => /* @__PURE__ */ jsx(Stack, { ...props, children })),
10
+ {
11
+ Item: RovingFocusGroupItem
12
+ }
13
+ );
14
+ RovingFocusGroup.displayName = GROUP_NAME;
15
+ const createRovingFocusGroupScope = () => () => ({});
16
+ export {
17
+ RovingFocusGroup,
18
+ createRovingFocusGroupScope
19
+ };
20
+ //# sourceMappingURL=RovingFocusGroup.native.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/RovingFocusGroup.native.tsx"],
4
- "mappings": "AASE;AATF,SAAS,OAAO,4BAA4B;AAC5C,OAAO,WAAW;AAMlB,MAAM,YAAY;AAClB,MAAM,uBAAuB,MAAM,WAAW,CAAC,EAAC,UAAS,GAAG,MAAK,GAAyB,SACxF,oBAAC,SAAO,GAAG,OAAQ,UAAS,CAC7B;AACD,qBAAqB,cAAc;AACnC,MAAM,aAAa;AAEnB,MAAM,mBAAmB;AAAA,EACvB,MAAM,WAAW,CAAC,EAAC,UAAS,GAAG,MAAK,GAA0B,SAC5D,oBAAC,SAAO,GAAG,OAAQ,UAAS,CAC7B;AAAA,EACD;AAAA,IACE,MAAM;AAAA,EACR;AACF;AAEA,iBAAiB,cAAc;AAE/B,MAAM,8BAA8B,MAAM,OAAO,CAAC;",
4
+ "mappings": "AAAA,SAAS,OAAO,4BAA4B;AAC5C,OAAO,WAAW;AASd;AAHJ,MAAM,YAAY,wBACZ,uBAAuB,MAAM;AAAA,EACjC,CAAC,EAAE,UAAU,GAAG,MAAM,GAAyB,SAC7C,oBAAC,SAAO,GAAG,OAAQ,UAAS;AAEhC;AACA,qBAAqB,cAAc;AACnC,MAAM,aAAa,oBAEb,mBAAmB;AAAA,EACvB,MAAM,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,GAA0B,SAC/D,oBAAC,SAAO,GAAG,OAAQ,UAAS,CAC7B;AAAA,EACD;AAAA,IACE,MAAM;AAAA,EACR;AACF;AAEA,iBAAiB,cAAc;AAE/B,MAAM,8BAA8B,MAAM,OAAO,CAAC;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,2 @@
1
+ export * from "./RovingFocusGroup";
2
+ //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/roving-focus",
3
- "version": "1.63.0",
3
+ "version": "1.64.0",
4
4
  "sideEffects": [
5
5
  "*.css"
6
6
  ],
@@ -27,19 +27,19 @@
27
27
  }
28
28
  },
29
29
  "dependencies": {
30
- "@tamagui/collection": "1.63.0",
31
- "@tamagui/compose-refs": "1.63.0",
32
- "@tamagui/core": "1.63.0",
33
- "@tamagui/create-context": "1.63.0",
34
- "@tamagui/use-controllable-state": "1.63.0",
35
- "@tamagui/use-direction": "1.63.0",
36
- "@tamagui/use-event": "1.63.0"
30
+ "@tamagui/collection": "1.64.0",
31
+ "@tamagui/compose-refs": "1.64.0",
32
+ "@tamagui/core": "1.64.0",
33
+ "@tamagui/create-context": "1.64.0",
34
+ "@tamagui/use-controllable-state": "1.64.0",
35
+ "@tamagui/use-direction": "1.64.0",
36
+ "@tamagui/use-event": "1.64.0"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "react": "*"
40
40
  },
41
41
  "devDependencies": {
42
- "@tamagui/build": "1.63.0",
42
+ "@tamagui/build": "1.64.0",
43
43
  "react": "^18.2.0"
44
44
  },
45
45
  "publishConfig": {