@tamagui/roving-focus 2.0.0-rc.9 → 2.0.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.
@@ -7,145 +7,153 @@ import { useControllableState } from "@tamagui/use-controllable-state";
7
7
  import { useDirection } from "@tamagui/use-direction";
8
8
  import * as React from "react";
9
9
  import { jsx } from "react/jsx-runtime";
10
- const ENTRY_FOCUS = "rovingFocusGroup.onEntryFocus",
11
- EVENT_OPTIONS = {
12
- bubbles: !1,
13
- cancelable: !0
14
- },
15
- 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
- asChild,
26
- ...groupProps
27
- } = props,
28
- ref = React.useRef(null),
29
- composedRefs = useComposedRefs(forwardedRef, ref),
30
- direction = useDirection(dir),
31
- [currentTabStopId = null, setCurrentTabStopId] = useControllableState({
32
- prop: currentTabStopIdProp,
33
- defaultProp: defaultCurrentTabStopId ?? null,
34
- onChange: onCurrentTabStopIdChange
10
+ const ENTRY_FOCUS = "rovingFocusGroup.onEntryFocus";
11
+ const EVENT_OPTIONS = {
12
+ bubbles: false,
13
+ cancelable: true
14
+ };
15
+ const RovingFocusGroupImpl = React.forwardRef((props, forwardedRef) => {
16
+ const {
17
+ __scopeRovingFocusGroup,
18
+ orientation,
19
+ loop = false,
20
+ dir,
21
+ currentTabStopId: currentTabStopIdProp,
22
+ defaultCurrentTabStopId,
23
+ onCurrentTabStopIdChange,
24
+ onEntryFocus,
25
+ asChild,
26
+ ...groupProps
27
+ } = props;
28
+ const ref = React.useRef(null);
29
+ const composedRefs = useComposedRefs(forwardedRef, ref);
30
+ const direction = useDirection(dir);
31
+ const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({
32
+ prop: currentTabStopIdProp,
33
+ defaultProp: defaultCurrentTabStopId ?? null,
34
+ onChange: onCurrentTabStopIdChange
35
+ });
36
+ const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false);
37
+ const handleEntryFocus = useEvent(onEntryFocus);
38
+ const getItems = useCollection(__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT);
39
+ const isClickFocusRef = React.useRef(false);
40
+ const [focusableItemsCount, setFocusableItemsCount] = React.useState(0);
41
+ const Comp = asChild ? Slot : View;
42
+ return /* @__PURE__ */jsx(RovingFocusProvider, {
43
+ scope: __scopeRovingFocusGroup,
44
+ orientation,
45
+ dir: direction,
46
+ loop,
47
+ currentTabStopId,
48
+ onItemFocus: React.useCallback(tabStopId => setCurrentTabStopId(tabStopId), [setCurrentTabStopId]),
49
+ onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(true), []),
50
+ onFocusableItemAdd: React.useCallback(() => setFocusableItemsCount(prevCount => prevCount + 1), []),
51
+ onFocusableItemRemove: React.useCallback(() => setFocusableItemsCount(prevCount => prevCount - 1), []),
52
+ children: /* @__PURE__ */jsx(Comp, {
53
+ tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,
54
+ "data-orientation": orientation,
55
+ ...groupProps,
56
+ ref: composedRefs,
57
+ outlineStyle: "none",
58
+ onMouseDown: composeEventHandlers(props.onMouseDown, () => {
59
+ isClickFocusRef.current = true;
35
60
  }),
36
- [isTabbingBackOut, setIsTabbingBackOut] = React.useState(!1),
37
- handleEntryFocus = useEvent(onEntryFocus),
38
- getItems = useCollection(__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT),
39
- isClickFocusRef = React.useRef(!1),
40
- [focusableItemsCount, setFocusableItemsCount] = React.useState(0),
41
- Comp = asChild ? Slot : View;
42
- return /* @__PURE__ */jsx(RovingFocusProvider, {
43
- scope: __scopeRovingFocusGroup,
44
- orientation,
45
- dir: direction,
46
- loop,
47
- currentTabStopId,
48
- onItemFocus: React.useCallback(tabStopId => setCurrentTabStopId(tabStopId), [setCurrentTabStopId]),
49
- onItemShiftTab: React.useCallback(() => setIsTabbingBackOut(!0), []),
50
- onFocusableItemAdd: React.useCallback(() => setFocusableItemsCount(prevCount => prevCount + 1), []),
51
- onFocusableItemRemove: React.useCallback(() => setFocusableItemsCount(prevCount => prevCount - 1), []),
52
- children: /* @__PURE__ */jsx(Comp, {
53
- tabIndex: isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0,
54
- "data-orientation": orientation,
55
- ...groupProps,
56
- ref: composedRefs,
57
- outlineStyle: "none",
58
- onMouseDown: composeEventHandlers(props.onMouseDown, () => {
59
- isClickFocusRef.current = !0;
60
- }),
61
- onFocus: composeEventHandlers(props.onFocus, event => {
62
- const isKeyboardFocus = !isClickFocusRef.current;
63
- if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {
64
- const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);
65
- if (handleEntryFocus(entryFocusEvent), !entryFocusEvent.defaultPrevented) {
66
- const items = getItems().filter(item => item.focusable),
67
- activeItem = items.find(item => item.active),
68
- currentItem = items.find(item => item.id === currentTabStopId),
69
- candidateNodes = [activeItem, currentItem, ...items].filter(Boolean).map(item => item.ref.current);
70
- focusFirst(candidateNodes, {
71
- focusVisible: !1
72
- });
73
- }
61
+ onFocus: composeEventHandlers(props.onFocus, event => {
62
+ const isKeyboardFocus = !isClickFocusRef.current;
63
+ if (event.target === event.currentTarget && isKeyboardFocus && !isTabbingBackOut) {
64
+ const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS);
65
+ handleEntryFocus(entryFocusEvent);
66
+ if (!entryFocusEvent.defaultPrevented) {
67
+ const items = getItems().filter(item => item.focusable);
68
+ const activeItem = items.find(item => item.active);
69
+ const currentItem = items.find(item => item.id === currentTabStopId);
70
+ const candidateItems = [activeItem, currentItem, ...items].filter(Boolean);
71
+ const candidateNodes = candidateItems.map(item => item.ref.current);
72
+ focusFirst(candidateNodes, {
73
+ focusVisible: false
74
+ });
74
75
  }
75
- isClickFocusRef.current = !1;
76
- }),
77
- onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(!1))
78
- })
79
- });
80
- }),
81
- ITEM_NAME = "RovingFocusGroupItem",
82
- RovingFocusGroupItem = React.forwardRef((props, forwardedRef) => {
83
- const {
84
- __scopeRovingFocusGroup,
85
- focusable = !0,
86
- active = !1,
87
- tabStopId,
88
- ...itemProps
89
- } = props,
90
- autoId = React.useId(),
91
- id = tabStopId || autoId,
92
- context = useRovingFocusContext(__scopeRovingFocusGroup),
93
- isCurrentTabStop = context.currentTabStopId === id,
94
- getItems = useCollection(__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT),
95
- {
96
- onFocusableItemAdd,
97
- onFocusableItemRemove
98
- } = context;
99
- return React.useEffect(() => {
100
- if (focusable) return onFocusableItemAdd(), () => onFocusableItemRemove();
101
- }, [focusable, onFocusableItemAdd, onFocusableItemRemove]), /* @__PURE__ */jsx(Collection.ItemSlot, {
102
- scope: __scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT,
103
- id,
104
- focusable,
105
- active,
106
- children: /* @__PURE__ */jsx(View, {
107
- tabIndex: focusable ? 0 : -1,
108
- "data-orientation": context.orientation,
109
- ...itemProps,
110
- ref: forwardedRef,
111
- onMouseDown: composeEventHandlers(props.onMouseDown, event => {
112
- focusable ? context.onItemFocus(id) : event.preventDefault();
113
- }),
114
- onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),
115
- ...(isWeb && {
116
- onKeyDown: composeEventHandlers(props.onKeyDown, event => {
117
- if (event.key === "Tab" && event.shiftKey) {
118
- context.onItemShiftTab();
119
- return;
120
- }
121
- if (event.target !== event.currentTarget) return;
122
- const focusIntent = getFocusIntent(event, context.orientation, context.dir);
123
- if (focusIntent !== void 0) {
124
- event.preventDefault();
125
- let candidateNodes = getItems().filter(item => item.focusable).map(item => item.ref.current);
126
- if (focusIntent === "last") candidateNodes.reverse();else if (focusIntent === "prev" || focusIntent === "next") {
127
- focusIntent === "prev" && candidateNodes.reverse();
128
- const currentIndex = candidateNodes.indexOf(event.currentTarget);
129
- candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);
130
- }
131
- setTimeout(() => focusFirst(candidateNodes, {
132
- focusVisible: !0
133
- }));
76
+ }
77
+ isClickFocusRef.current = false;
78
+ }),
79
+ onBlur: composeEventHandlers(props.onBlur, () => setIsTabbingBackOut(false))
80
+ })
81
+ });
82
+ });
83
+ const ITEM_NAME = "RovingFocusGroupItem";
84
+ const RovingFocusGroupItem = React.forwardRef((props, forwardedRef) => {
85
+ const {
86
+ __scopeRovingFocusGroup,
87
+ focusable = true,
88
+ active = false,
89
+ tabStopId,
90
+ ...itemProps
91
+ } = props;
92
+ const autoId = React.useId();
93
+ const id = tabStopId || autoId;
94
+ const context = useRovingFocusContext(__scopeRovingFocusGroup);
95
+ const isCurrentTabStop = context.currentTabStopId === id;
96
+ const getItems = useCollection(__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT);
97
+ const {
98
+ onFocusableItemAdd,
99
+ onFocusableItemRemove
100
+ } = context;
101
+ React.useEffect(() => {
102
+ if (focusable) {
103
+ onFocusableItemAdd();
104
+ return () => onFocusableItemRemove();
105
+ }
106
+ }, [focusable, onFocusableItemAdd, onFocusableItemRemove]);
107
+ return /* @__PURE__ */jsx(Collection.ItemSlot, {
108
+ scope: __scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT,
109
+ id,
110
+ focusable,
111
+ active,
112
+ children: /* @__PURE__ */jsx(View, {
113
+ tabIndex: focusable ? 0 : -1,
114
+ "data-orientation": context.orientation,
115
+ ...itemProps,
116
+ ref: forwardedRef,
117
+ onMouseDown: composeEventHandlers(props.onMouseDown, event => {
118
+ if (!focusable) event.preventDefault();else context.onItemFocus(id);
119
+ }),
120
+ onFocus: composeEventHandlers(props.onFocus, () => context.onItemFocus(id)),
121
+ ...(isWeb && {
122
+ onKeyDown: composeEventHandlers(props.onKeyDown, event => {
123
+ if (event.key === "Tab" && event.shiftKey) {
124
+ context.onItemShiftTab();
125
+ return;
126
+ }
127
+ if (event.target !== event.currentTarget) return;
128
+ const focusIntent = getFocusIntent(event, context.orientation, context.dir);
129
+ if (focusIntent !== void 0) {
130
+ event.preventDefault();
131
+ const items = getItems().filter(item => item.focusable);
132
+ let candidateNodes = items.map(item => item.ref.current);
133
+ if (focusIntent === "last") candidateNodes.reverse();else if (focusIntent === "prev" || focusIntent === "next") {
134
+ if (focusIntent === "prev") candidateNodes.reverse();
135
+ const currentIndex = candidateNodes.indexOf(event.currentTarget);
136
+ candidateNodes = context.loop ? wrapArray(candidateNodes, currentIndex + 1) : candidateNodes.slice(currentIndex + 1);
134
137
  }
135
- })
138
+ setTimeout(() => focusFirst(candidateNodes, {
139
+ focusVisible: true
140
+ }));
141
+ }
136
142
  })
137
143
  })
138
- });
144
+ })
139
145
  });
146
+ });
140
147
  RovingFocusGroupItem.displayName = ITEM_NAME;
141
- const GROUP_NAME = "RovingFocusGroup",
142
- [Collection, useCollection] = createCollection(GROUP_NAME),
143
- {
144
- Provider: RovingFocusProvider,
145
- useStyledContext: useRovingFocusContext
146
- } = createStyledContext(),
147
- ROVING_FOCUS_GROUP_CONTEXT = "RovingFocusGroupContext",
148
- RovingFocusGroup = withStaticProperties(React.forwardRef((props, forwardedRef) => /* @__PURE__ */jsx(Collection.Provider, {
148
+ const GROUP_NAME = "RovingFocusGroup";
149
+ const [Collection, useCollection] = createCollection(GROUP_NAME);
150
+ const {
151
+ Provider: RovingFocusProvider,
152
+ useStyledContext: useRovingFocusContext
153
+ } = createStyledContext();
154
+ const ROVING_FOCUS_GROUP_CONTEXT = "RovingFocusGroupContext";
155
+ const RovingFocusGroup = withStaticProperties(React.forwardRef((props, forwardedRef) => {
156
+ return /* @__PURE__ */jsx(Collection.Provider, {
149
157
  scope: props.__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT,
150
158
  children: /* @__PURE__ */jsx(Collection.Slot, {
151
159
  scope: props.__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT,
@@ -154,9 +162,10 @@ const GROUP_NAME = "RovingFocusGroup",
154
162
  ref: forwardedRef
155
163
  })
156
164
  })
157
- })), {
158
- Item: RovingFocusGroupItem
159
165
  });
166
+ }), {
167
+ Item: RovingFocusGroupItem
168
+ });
160
169
  RovingFocusGroup.displayName = GROUP_NAME;
161
170
  const MAP_KEY_TO_FOCUS_INTENT = {
162
171
  ArrowLeft: "prev",
@@ -169,17 +178,24 @@ const MAP_KEY_TO_FOCUS_INTENT = {
169
178
  End: "last"
170
179
  };
171
180
  function getDirectionAwareKey(key, dir) {
172
- return dir !== "rtl" ? key : key === "ArrowLeft" ? "ArrowRight" : key === "ArrowRight" ? "ArrowLeft" : key;
181
+ if (dir !== "rtl") return key;
182
+ return key === "ArrowLeft" ? "ArrowRight" : key === "ArrowRight" ? "ArrowLeft" : key;
173
183
  }
174
184
  function getFocusIntent(event, orientation, dir) {
175
185
  const key = getDirectionAwareKey(event.key, dir);
176
- if (!(orientation === "vertical" && ["ArrowLeft", "ArrowRight"].includes(key)) && !(orientation === "horizontal" && ["ArrowUp", "ArrowDown"].includes(key))) return MAP_KEY_TO_FOCUS_INTENT[key];
186
+ if (orientation === "vertical" && ["ArrowLeft", "ArrowRight"].includes(key)) return void 0;
187
+ if (orientation === "horizontal" && ["ArrowUp", "ArrowDown"].includes(key)) return void 0;
188
+ return MAP_KEY_TO_FOCUS_INTENT[key];
177
189
  }
178
190
  function focusFirst(candidates, options) {
179
191
  const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
180
- for (const candidate of candidates) if (candidate === PREVIOUSLY_FOCUSED_ELEMENT || (candidate.focus({
181
- focusVisible: options?.focusVisible
182
- }), document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT)) return;
192
+ for (const candidate of candidates) {
193
+ if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;
194
+ candidate.focus({
195
+ focusVisible: options?.focusVisible
196
+ });
197
+ if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;
198
+ }
183
199
  }
184
200
  function wrapArray(array, startIndex) {
185
201
  return array.map((_, index) => array[(startIndex + index) % array.length]);
@@ -1 +1 @@
1
- {"version":3,"names":["createCollection","useComposedRefs","isWeb","Slot","View","createStyledContext","useEvent","composeEventHandlers","withStaticProperties","useControllableState","useDirection","React","jsx","ENTRY_FOCUS","EVENT_OPTIONS","bubbles","cancelable","RovingFocusGroupImpl","forwardRef","props","forwardedRef","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopId","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","asChild","groupProps","ref","useRef","composedRefs","direction","setCurrentTabStopId","prop","defaultProp","onChange","isTabbingBackOut","setIsTabbingBackOut","useState","handleEntryFocus","getItems","useCollection","ROVING_FOCUS_GROUP_CONTEXT","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","Comp","RovingFocusProvider","scope","onItemFocus","useCallback","tabStopId","onItemShiftTab","onFocusableItemAdd","prevCount","onFocusableItemRemove","children","tabIndex","outlineStyle","onMouseDown","current","onFocus","event","isKeyboardFocus","target","currentTarget","entryFocusEvent","CustomEvent","defaultPrevented","items","filter","item","focusable","activeItem","find","active","currentItem","id","candidateNodes","Boolean","map","focusFirst","focusVisible","onBlur","ITEM_NAME","RovingFocusGroupItem","itemProps","autoId","useId","context","useRovingFocusContext","isCurrentTabStop","useEffect","Collection","ItemSlot","preventDefault","onKeyDown","key","shiftKey","focusIntent","getFocusIntent","reverse","currentIndex","indexOf","wrapArray","slice","setTimeout","displayName","GROUP_NAME","Provider","useStyledContext","RovingFocusGroup","Item","MAP_KEY_TO_FOCUS_INTENT","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","PageUp","Home","PageDown","End","getDirectionAwareKey","includes","candidates","options","PREVIOUSLY_FOCUSED_ELEMENT","document","activeElement","candidate","focus","array","startIndex","_","index","length"],"sources":["../../src/RovingFocusGroup.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createCollection","useComposedRefs","isWeb","Slot","View","createStyledContext","useEvent","composeEventHandlers","withStaticProperties","useControllableState","useDirection","React","jsx","ENTRY_FOCUS","EVENT_OPTIONS","bubbles","cancelable","RovingFocusGroupImpl","forwardRef","props","forwardedRef","__scopeRovingFocusGroup","orientation","loop","dir","currentTabStopId","currentTabStopIdProp","defaultCurrentTabStopId","onCurrentTabStopIdChange","onEntryFocus","asChild","groupProps","ref","useRef","composedRefs","direction","setCurrentTabStopId","prop","defaultProp","onChange","isTabbingBackOut","setIsTabbingBackOut","useState","handleEntryFocus","getItems","useCollection","ROVING_FOCUS_GROUP_CONTEXT","isClickFocusRef","focusableItemsCount","setFocusableItemsCount","Comp","RovingFocusProvider","scope","onItemFocus","useCallback","tabStopId","onItemShiftTab","onFocusableItemAdd","prevCount","onFocusableItemRemove","children","tabIndex","outlineStyle","onMouseDown","current","onFocus","event","isKeyboardFocus","target","currentTarget","entryFocusEvent","CustomEvent","defaultPrevented","items","filter","item","focusable","activeItem","find","active","currentItem","id","candidateItems","Boolean","candidateNodes","map","focusFirst","focusVisible","onBlur","ITEM_NAME","RovingFocusGroupItem","itemProps","autoId","useId","context","useRovingFocusContext","isCurrentTabStop","useEffect","Collection","ItemSlot","preventDefault","onKeyDown","key","shiftKey","focusIntent","getFocusIntent","reverse","currentIndex","indexOf","wrapArray","slice","setTimeout","displayName","GROUP_NAME","Provider","useStyledContext","RovingFocusGroup","Item","MAP_KEY_TO_FOCUS_INTENT","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","PageUp","Home","PageDown","End","getDirectionAwareKey","includes","candidates","options","PREVIOUSLY_FOCUSED_ELEMENT","document","activeElement","candidate","focus","array","startIndex","_","index","length"],"sources":["../../src/RovingFocusGroup.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,32 +1,16 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { View } from "@tamagui/core";
1
+ import { styled, View } from "@tamagui/core";
3
2
  import { withStaticProperties } from "@tamagui/helpers";
4
- import React from "react";
5
- var ITEM_NAME = "RovingFocusGroupItem",
6
- RovingFocusGroupItem = /* @__PURE__ */React.forwardRef(function (param, _ref) {
7
- var {
8
- children,
9
- ...props
10
- } = param;
11
- return /* @__PURE__ */_jsx(View, {
12
- ...props,
13
- children
14
- });
15
- });
16
- RovingFocusGroupItem.displayName = ITEM_NAME;
17
- var GROUP_NAME = "RovingFocusGroup",
18
- RovingFocusGroup = withStaticProperties(/* @__PURE__ */React.forwardRef(function (param, _ref) {
19
- var {
20
- children,
21
- ...props
22
- } = param;
23
- return /* @__PURE__ */_jsx(View, {
24
- ...props,
25
- children
26
- });
27
- }), {
28
- Item: RovingFocusGroupItem
29
- });
3
+ var ITEM_NAME = "RovingFocusGroupItem";
4
+ var RovingFocusGroupItem = styled(View, {
5
+ name: ITEM_NAME
6
+ });
7
+ var GROUP_NAME = "RovingFocusGroup";
8
+ var RovingFocusGroupFrame = styled(View, {
9
+ name: GROUP_NAME
10
+ });
11
+ var RovingFocusGroup = withStaticProperties(RovingFocusGroupFrame, {
12
+ Item: RovingFocusGroupItem
13
+ });
30
14
  RovingFocusGroup.displayName = GROUP_NAME;
31
15
  var createRovingFocusGroupScope = function () {
32
16
  return function () {
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","View","withStaticProperties","React","ITEM_NAME","RovingFocusGroupItem","forwardRef","param","_ref","children","props","displayName","GROUP_NAME","RovingFocusGroup","Item","createRovingFocusGroupScope"],"sources":["../../src/RovingFocusGroup.native.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAOC,IAAA,QAAY;AAC5B,SAASC,IAAA,QAAY;AACrB,SAASC,oBAAA,QAA4B;AACrC,OAAOC,KAAA,MAAW;AAElB,IAAIC,SAAA,GAAY;EACZC,oBAAA,GAAqC,eAAAF,KAAA,CAAMG,UAAA,CAAW,UAASC,KAAA,EAAOC,IAAA,EAAM;IAC5E,IAAI;MAAEC,QAAA;MAAU,GAAGC;IAAM,IAAIH,KAAA;IAC7B,OAAqB,eAAAP,IAAA,CAAKC,IAAA,EAAM;MAC5B,GAAGS,KAAA;MACHD;IACJ,CAAC;EACL,CAAC;AACDJ,oBAAA,CAAqBM,WAAA,GAAcP,SAAA;AACnC,IAAIQ,UAAA,GAAa;EACbC,gBAAA,GAAmBX,oBAAA,CAAmC,eAAAC,KAAA,CAAMG,UAAA,CAAW,UAASC,KAAA,EAAOC,IAAA,EAAM;IAC7F,IAAI;MAAEC,QAAA;MAAU,GAAGC;IAAM,IAAIH,KAAA;IAC7B,OAAqB,eAAAP,IAAA,CAAKC,IAAA,EAAM;MAC5B,GAAGS,KAAA;MACHD;IACJ,CAAC;EACL,CAAC,GAAG;IACAK,IAAA,EAAMT;EACV,CAAC;AACDQ,gBAAA,CAAiBF,WAAA,GAAcC,UAAA;AAC/B,IAAIG,2BAAA,GAA8B,SAAAA,CAAA,EAAW;EACzC,OAAO,YAAW;IACd,OAAO,CAAC;EACZ;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["styled","View","withStaticProperties","ITEM_NAME","RovingFocusGroupItem","name","GROUP_NAME","RovingFocusGroupFrame","RovingFocusGroup","Item","displayName","createRovingFocusGroupScope"],"sources":["../../src/RovingFocusGroup.native.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,EAAQC,IAAA,QAAY;AAC7B,SAASC,oBAAA,QAA4B;AAErC,IAAIC,SAAA,GAAY;AAChB,IAAIC,oBAAA,GAAuBJ,MAAA,CAAOC,IAAA,EAAM;EACpCI,IAAA,EAAMF;AACV,CAAC;AACD,IAAIG,UAAA,GAAa;AACjB,IAAIC,qBAAA,GAAwBP,MAAA,CAAOC,IAAA,EAAM;EACrCI,IAAA,EAAMC;AACV,CAAC;AACD,IAAIE,gBAAA,GAAmBN,oBAAA,CAAqBK,qBAAA,EAAuB;EAC/DE,IAAA,EAAML;AACV,CAAC;AACDI,gBAAA,CAAiBE,WAAA,GAAcJ,UAAA;AAC/B,IAAIK,2BAAA,GAA8B,SAAAA,CAAA,EAAW;EACzC,OAAO,YAAW;IACd,OAAO,CAAC;EACZ;AACJ","ignoreList":[]}
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export * from "./RovingFocusGroup";
1
+ export * from "./RovingFocusGroup.mjs";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA,cAAc;",
5
- "names": []
6
- }
1
+ {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/roving-focus",
3
- "version": "2.0.0-rc.9",
3
+ "version": "2.0.0",
4
4
  "gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14",
5
5
  "source": "src/index.ts",
6
6
  "files": [
@@ -20,10 +20,11 @@
20
20
  ".": {
21
21
  "types": "./types/index.d.ts",
22
22
  "react-native": "./dist/esm/index.native.js",
23
+ "browser": "./dist/esm/index.mjs",
23
24
  "module": "./dist/esm/index.mjs",
24
25
  "import": "./dist/esm/index.mjs",
25
26
  "require": "./dist/cjs/index.cjs",
26
- "default": "./dist/cjs/index.native.js"
27
+ "default": "./dist/esm/index.mjs"
27
28
  }
28
29
  },
29
30
  "publishConfig": {
@@ -36,18 +37,18 @@
36
37
  "clean:build": "tamagui-build clean:build"
37
38
  },
38
39
  "dependencies": {
39
- "@tamagui/collection": "2.0.0-rc.9",
40
- "@tamagui/compose-refs": "2.0.0-rc.9",
41
- "@tamagui/constants": "2.0.0-rc.9",
42
- "@tamagui/core": "2.0.0-rc.9",
43
- "@tamagui/create-context": "2.0.0-rc.9",
44
- "@tamagui/helpers": "2.0.0-rc.9",
45
- "@tamagui/use-controllable-state": "2.0.0-rc.9",
46
- "@tamagui/use-direction": "2.0.0-rc.9",
47
- "@tamagui/use-event": "2.0.0-rc.9"
40
+ "@tamagui/collection": "2.0.0",
41
+ "@tamagui/compose-refs": "2.0.0",
42
+ "@tamagui/constants": "2.0.0",
43
+ "@tamagui/core": "2.0.0",
44
+ "@tamagui/create-context": "2.0.0",
45
+ "@tamagui/helpers": "2.0.0",
46
+ "@tamagui/use-controllable-state": "2.0.0",
47
+ "@tamagui/use-direction": "2.0.0",
48
+ "@tamagui/use-event": "2.0.0"
48
49
  },
49
50
  "devDependencies": {
50
- "@tamagui/build": "2.0.0-rc.9",
51
+ "@tamagui/build": "2.0.0",
51
52
  "react": ">=19"
52
53
  },
53
54
  "peerDependencies": {
@@ -1,26 +1,28 @@
1
- import { View } from '@tamagui/core'
1
+ import { styled, View } from '@tamagui/core'
2
2
  import { withStaticProperties } from '@tamagui/helpers'
3
- import React from 'react'
4
3
 
5
4
  import type { RovingFocusGroupProps, RovingFocusItemProps } from './RovingFocusGroup'
6
5
 
7
6
  // noop native doesn't need keyboard accessibility
8
7
 
9
8
  const ITEM_NAME = 'RovingFocusGroupItem'
10
- const RovingFocusGroupItem = React.forwardRef(
11
- ({ children, ...props }: RovingFocusItemProps, _ref) => (
12
- <View {...props}>{children}</View>
13
- )
14
- )
15
- RovingFocusGroupItem.displayName = ITEM_NAME
9
+ const RovingFocusGroupItem = styled(View, {
10
+ name: ITEM_NAME,
11
+ })
12
+
16
13
  const GROUP_NAME = 'RovingFocusGroup'
14
+ const RovingFocusGroupFrame = styled(View, {
15
+ name: GROUP_NAME,
16
+ })
17
17
 
18
18
  const RovingFocusGroup = withStaticProperties(
19
- React.forwardRef(({ children, ...props }: RovingFocusGroupProps, _ref) => (
20
- <View {...props}>{children}</View>
21
- )),
19
+ RovingFocusGroupFrame as typeof RovingFocusGroupFrame & {
20
+ (props: RovingFocusGroupProps & { children?: any }): any
21
+ },
22
22
  {
23
- Item: RovingFocusGroupItem,
23
+ Item: RovingFocusGroupItem as typeof RovingFocusGroupItem & {
24
+ (props: RovingFocusItemProps & { children?: any }): any
25
+ },
24
26
  }
25
27
  )
26
28
 
@@ -1,7 +1,15 @@
1
- import React from 'react';
2
1
  import type { RovingFocusGroupProps, RovingFocusItemProps } from './RovingFocusGroup';
3
- declare const RovingFocusGroup: React.ForwardRefExoticComponent<RovingFocusGroupProps & React.RefAttributes<unknown>> & {
4
- Item: React.ForwardRefExoticComponent<RovingFocusItemProps & React.RefAttributes<unknown>>;
2
+ declare const RovingFocusGroupItem: import("@tamagui/core").TamaguiComponent<import("@tamagui/core").TamaDefer, import("@tamagui/core").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/core").StackStyleBase, {}, import("@tamagui/core").StaticConfigPublic>;
3
+ declare const RovingFocusGroup: import("react").ForwardRefExoticComponent<Omit<import("@tamagui/core").RNTamaguiViewNonStyleProps, keyof import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>> & import("@tamagui/core").WithPseudoProps<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>>> & import("@tamagui/core").WithMediaProps<import("@tamagui/core").WithThemeShorthandsAndPseudos<import("@tamagui/core").StackStyleBase, {}>> & import("react").RefAttributes<import("@tamagui/core").TamaguiElement>> & import("@tamagui/core").StaticComponentObject<import("@tamagui/core").TamaDefer, import("@tamagui/core").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/core").StackStyleBase, {}, import("@tamagui/core").StaticConfigPublic> & Omit<import("@tamagui/core").StaticConfigPublic, "staticConfig" | "styleable"> & {
4
+ __tama: [import("@tamagui/core").TamaDefer, import("@tamagui/core").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/core").StackStyleBase, {}, import("@tamagui/core").StaticConfigPublic];
5
+ } & ((props: RovingFocusGroupProps & {
6
+ children?: any;
7
+ }) => any) & {
8
+ Item: typeof RovingFocusGroupItem & {
9
+ (props: RovingFocusItemProps & {
10
+ children?: any;
11
+ }): any;
12
+ };
5
13
  };
6
14
  declare const createRovingFocusGroupScope: () => () => {};
7
15
  export { RovingFocusGroup, createRovingFocusGroupScope };
@@ -1 +1 @@
1
- {"version":3,"file":"RovingFocusGroup.native.d.ts","sourceRoot":"","sources":["../src/RovingFocusGroup.native.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAarF,QAAA,MAAM,gBAAgB;;CAOrB,CAAA;AAID,QAAA,MAAM,2BAA2B,gBAAmB,CAAA;AAEpD,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,CAAA;AACxD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAA"}
1
+ {"version":3,"file":"RovingFocusGroup.native.d.ts","sourceRoot":"","sources":["../src/RovingFocusGroup.native.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAKrF,QAAA,MAAM,oBAAoB,iQAExB,CAAA;AAOF,QAAA,MAAM,gBAAgB;;aAEV,qBAAqB,GAAG;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,KAAG,GAAG;UAG1B,OAAO,oBAAoB,GAAG;QAC1D,CAAC,KAAK,EAAE,oBAAoB,GAAG;YAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;SAAE,GAAG,GAAG,CAAA;KACxD;CAEJ,CAAA;AAID,QAAA,MAAM,2BAA2B,gBAAmB,CAAA;AAEpD,OAAO,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,CAAA;AACxD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAA"}