@tamagui/roving-focus 2.7.7 → 3.0.0-beta.1091.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,28 +1,47 @@
1
1
  import { createCollection } from '@tamagui/collection'
2
2
  import { useComposedRefs } from '@tamagui/compose-refs'
3
3
  import { isWeb } from '@tamagui/constants'
4
- import { Slot, View, createStyledContext, useEvent } from '@tamagui/core'
4
+ import {
5
+ Slot,
6
+ View,
7
+ createChangeEventDetails,
8
+ createStyledContext,
9
+ useEvent,
10
+ createRefComponent,
11
+ type GetRef,
12
+ type TamaguiChangeEventDetails,
13
+ } from '@tamagui/core'
5
14
  import { composeEventHandlers, withStaticProperties } from '@tamagui/helpers'
6
15
  import { useControllableState } from '@tamagui/use-controllable-state'
7
16
  import { useDirection } from '@tamagui/use-direction'
8
17
  import * as React from 'react'
9
18
 
10
- const ENTRY_FOCUS = 'rovingFocusGroup.onEntryFocus'
11
- const EVENT_OPTIONS = { bubbles: false, cancelable: true }
12
-
13
19
  /* -----------------------------------------------------------------------------------------------*/
14
20
 
15
- type RovingFocusGroupImplElement = React.ElementRef<typeof View>
21
+ type RovingFocusGroupImplElement = GetRef<typeof View>
16
22
  type PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof View>
23
+ export type RovingFocusChangeDetails = TamaguiChangeEventDetails<
24
+ 'keyboard' | 'trigger-focus' | 'focus-out',
25
+ React.KeyboardEvent | React.MouseEvent | React.FocusEvent
26
+ >
27
+
28
+ export type RovingFocusEntryDetails = TamaguiChangeEventDetails<
29
+ 'trigger-focus',
30
+ React.FocusEvent
31
+ >
32
+
17
33
  interface RovingFocusGroupImplProps
18
34
  extends Omit<PrimitiveDivProps, 'dir'>, RovingFocusGroupOptions {
19
35
  currentTabStopId?: string | null
20
36
  defaultCurrentTabStopId?: string
21
- onCurrentTabStopIdChange?: (tabStopId: string | null) => void
22
- onEntryFocus?: (event: Event) => void
37
+ onCurrentTabStopIdChange?: (
38
+ tabStopId: string | null,
39
+ details: RovingFocusChangeDetails
40
+ ) => void
41
+ onEntryFocus?: (details: RovingFocusEntryDetails) => void
23
42
  }
24
43
 
25
- const RovingFocusGroupImpl = React.forwardRef<
44
+ const RovingFocusGroupImpl = createRefComponent<
26
45
  RovingFocusGroupImplElement,
27
46
  ScopedProps<RovingFocusGroupImplProps>
28
47
  >((props: ScopedProps<RovingFocusGroupImplProps>, forwardedRef) => {
@@ -41,17 +60,29 @@ const RovingFocusGroupImpl = React.forwardRef<
41
60
  const ref = React.useRef<RovingFocusGroupImplElement>(null)
42
61
  const composedRefs = useComposedRefs(forwardedRef, ref)
43
62
  const direction = useDirection(dir)
44
- const [currentTabStopId = null, setCurrentTabStopId] = useControllableState({
63
+ const [currentTabStopId = null, setCurrentTabStopId] = useControllableState<
64
+ string | null,
65
+ RovingFocusChangeDetails
66
+ >({
45
67
  prop: currentTabStopIdProp,
46
68
  defaultProp: defaultCurrentTabStopId ?? null,
47
- onChange: onCurrentTabStopIdChange,
69
+ onChange: (tabStopId, details) => {
70
+ if (details) onCurrentTabStopIdChange?.(tabStopId, details)
71
+ },
48
72
  })
49
73
  const [isTabbingBackOut, setIsTabbingBackOut] = React.useState(false)
74
+ // registrations are unknown during ssr; keep an entry stop until effects settle.
75
+ const [hasMounted, setHasMounted] = React.useState(false)
50
76
  const handleEntryFocus = useEvent(onEntryFocus)
51
77
  const getItems = useCollection(__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT)
52
78
  const isClickFocusRef = React.useRef(false)
79
+ const pendingFocusDetailsRef = React.useRef<RovingFocusChangeDetails | null>(null)
53
80
  const [focusableItemsCount, setFocusableItemsCount] = React.useState(0)
54
81
 
82
+ React.useEffect(() => {
83
+ setHasMounted(true)
84
+ }, [])
85
+
55
86
  const Comp = (asChild ? Slot : View) as typeof View
56
87
 
57
88
  return (
@@ -62,9 +93,19 @@ const RovingFocusGroupImpl = React.forwardRef<
62
93
  loop={loop}
63
94
  currentTabStopId={currentTabStopId}
64
95
  onItemFocus={React.useCallback(
65
- (tabStopId) => setCurrentTabStopId(tabStopId),
66
- [setCurrentTabStopId]
96
+ (tabStopId, event) => {
97
+ if (tabStopId === currentTabStopId) return
98
+ const details =
99
+ pendingFocusDetailsRef.current ??
100
+ createChangeEventDetails('trigger-focus', event, event.currentTarget)
101
+ pendingFocusDetailsRef.current = null
102
+ setCurrentTabStopId(tabStopId, details)
103
+ },
104
+ [currentTabStopId, setCurrentTabStopId]
67
105
  )}
106
+ setPendingFocusDetails={React.useCallback((details) => {
107
+ pendingFocusDetailsRef.current = details
108
+ }, [])}
68
109
  onItemShiftTab={React.useCallback(() => setIsTabbingBackOut(true), [])}
69
110
  onFocusableItemAdd={React.useCallback(
70
111
  () => setFocusableItemsCount((prevCount) => prevCount + 1),
@@ -76,7 +117,7 @@ const RovingFocusGroupImpl = React.forwardRef<
76
117
  )}
77
118
  >
78
119
  <Comp
79
- tabIndex={isTabbingBackOut || focusableItemsCount === 0 ? -1 : 0}
120
+ tabIndex={isTabbingBackOut || (hasMounted && focusableItemsCount === 0) ? -1 : 0}
80
121
  data-orientation={orientation}
81
122
  {...groupProps}
82
123
  ref={composedRefs}
@@ -96,12 +137,14 @@ const RovingFocusGroupImpl = React.forwardRef<
96
137
  isKeyboardFocus &&
97
138
  !isTabbingBackOut
98
139
  ) {
99
- // create a cancelable event that onEntryFocus can call preventDefault on
100
- const entryFocusEvent = new CustomEvent(ENTRY_FOCUS, EVENT_OPTIONS)
101
- // call onEntryFocus directly (dispatching to DOM had issues with asChild/Slot)
102
- handleEntryFocus(entryFocusEvent)
103
-
104
- if (!entryFocusEvent.defaultPrevented) {
140
+ const details = createChangeEventDetails(
141
+ 'trigger-focus',
142
+ event,
143
+ event.currentTarget
144
+ )
145
+ handleEntryFocus(details)
146
+
147
+ if (!details.isCanceled) {
105
148
  const items = getItems().filter((item) => item.focusable)
106
149
  const activeItem = items.find((item) => item.active)
107
150
  const currentItem = items.find((item) => item.id === currentTabStopId)
@@ -130,30 +173,32 @@ const RovingFocusGroupImpl = React.forwardRef<
130
173
 
131
174
  const ITEM_NAME = 'RovingFocusGroupItem'
132
175
 
133
- type RovingFocusItemElement = React.ElementRef<typeof View>
176
+ type RovingFocusItemElement = GetRef<typeof View>
134
177
  type PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof View>
135
178
  interface RovingFocusItemProps extends PrimitiveSpanProps {
136
179
  tabStopId?: string
137
- focusable?: boolean
138
180
  active?: boolean
139
181
  }
140
182
 
141
- const RovingFocusGroupItem = React.forwardRef<
183
+ const RovingFocusGroupItem = createRefComponent<
142
184
  RovingFocusItemElement,
143
185
  ScopedProps<RovingFocusItemProps>
144
186
  >((props: ScopedProps<RovingFocusItemProps>, forwardedRef) => {
145
187
  const {
146
188
  __scopeRovingFocusGroup,
147
- focusable = true,
148
189
  active = false,
149
190
  tabStopId,
191
+ tabIndex: tabIndexProp,
150
192
  ...itemProps
151
193
  } = props
194
+ // authored tabindex controls eligibility; the group selects the single tab stop.
195
+ const focusable = Number(tabIndexProp ?? 0) >= 0
152
196
  const autoId = React.useId()
153
197
  const id = tabStopId || autoId
154
198
  const context = useRovingFocusContext(__scopeRovingFocusGroup)
155
199
  const isCurrentTabStop = context.currentTabStopId === id
156
200
  const getItems = useCollection(__scopeRovingFocusGroup || ROVING_FOCUS_GROUP_CONTEXT)
201
+ const skipNextFocusRequestRef = React.useRef(false)
157
202
 
158
203
  const { onFocusableItemAdd, onFocusableItemRemove } = context
159
204
 
@@ -172,7 +217,7 @@ const RovingFocusGroupItem = React.forwardRef<
172
217
  active={active}
173
218
  >
174
219
  <View
175
- tabIndex={focusable ? 0 : -1}
220
+ tabIndex={focusable && isCurrentTabStop ? 0 : -1}
176
221
  data-orientation={context.orientation}
177
222
  {...itemProps}
178
223
  ref={forwardedRef}
@@ -181,9 +226,21 @@ const RovingFocusGroupItem = React.forwardRef<
181
226
  // Even though the item has tabIndex={-1}, that only means take it out of the tab order.
182
227
  if (!focusable) event.preventDefault()
183
228
  // Safari doesn't focus a button when clicked so we run our logic on mousedown also
184
- else context.onItemFocus(id)
229
+ else {
230
+ skipNextFocusRequestRef.current = true
231
+ queueMicrotask(() => {
232
+ skipNextFocusRequestRef.current = false
233
+ })
234
+ context.onItemFocus(id, event)
235
+ }
236
+ })}
237
+ onFocus={composeEventHandlers(props.onFocus, (event) => {
238
+ if (skipNextFocusRequestRef.current) {
239
+ skipNextFocusRequestRef.current = false
240
+ return
241
+ }
242
+ context.onItemFocus(id, event)
185
243
  })}
186
- onFocus={composeEventHandlers(props.onFocus, () => context.onItemFocus(id))}
187
244
  {...(isWeb && {
188
245
  onKeyDown: composeEventHandlers(
189
246
  (props as React.ComponentProps<'span'>).onKeyDown,
@@ -215,7 +272,16 @@ const RovingFocusGroupItem = React.forwardRef<
215
272
  * Imperative focus during keydown is risky so we prevent React's batching updates
216
273
  * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332
217
274
  */
218
- setTimeout(() => focusFirst(candidateNodes, { focusVisible: true }))
275
+ const details = createChangeEventDetails(
276
+ 'keyboard',
277
+ event,
278
+ event.currentTarget
279
+ )
280
+ setTimeout(() => {
281
+ context.setPendingFocusDetails(details)
282
+ focusFirst(candidateNodes, { focusVisible: true })
283
+ context.setPendingFocusDetails(null)
284
+ })
219
285
  }
220
286
  }
221
287
  ),
@@ -264,7 +330,8 @@ interface RovingFocusGroupOptions {
264
330
 
265
331
  type RovingContextValue = RovingFocusGroupOptions & {
266
332
  currentTabStopId: string | null
267
- onItemFocus(tabStopId: string): void
333
+ onItemFocus(tabStopId: string, event: React.MouseEvent | React.FocusEvent): void
334
+ setPendingFocusDetails(details: RovingFocusChangeDetails | null): void
268
335
  onItemShiftTab(): void
269
336
  onFocusableItemAdd(): void
270
337
  onFocusableItemRemove(): void
@@ -282,7 +349,7 @@ interface RovingFocusGroupProps extends RovingFocusGroupImplProps {}
282
349
  const ROVING_FOCUS_GROUP_CONTEXT = 'RovingFocusGroupContext'
283
350
 
284
351
  const RovingFocusGroup = withStaticProperties(
285
- React.forwardRef<RovingFocusGroupElement, ScopedProps<RovingFocusGroupProps>>(
352
+ createRefComponent<RovingFocusGroupElement, ScopedProps<RovingFocusGroupProps>>(
286
353
  (props: ScopedProps<RovingFocusGroupProps>, forwardedRef) => {
287
354
  return (
288
355
  <Collection.Provider
@@ -1,21 +1,23 @@
1
- import { View } from '@tamagui/core';
1
+ import { View, type TamaguiChangeEventDetails } from '@tamagui/core';
2
2
  import * as React from 'react';
3
3
  type PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof View>;
4
+ export type RovingFocusChangeDetails = TamaguiChangeEventDetails<'keyboard' | 'trigger-focus' | 'focus-out', React.KeyboardEvent | React.MouseEvent | React.FocusEvent>;
5
+ export type RovingFocusEntryDetails = TamaguiChangeEventDetails<'trigger-focus', React.FocusEvent>;
4
6
  interface RovingFocusGroupImplProps extends Omit<PrimitiveDivProps, 'dir'>, RovingFocusGroupOptions {
5
7
  currentTabStopId?: string | null;
6
8
  defaultCurrentTabStopId?: string;
7
- onCurrentTabStopIdChange?: (tabStopId: string | null) => void;
8
- onEntryFocus?: (event: Event) => void;
9
+ onCurrentTabStopIdChange?: (tabStopId: string | null, details: RovingFocusChangeDetails) => void;
10
+ onEntryFocus?: (details: RovingFocusEntryDetails) => void;
9
11
  }
10
12
  type PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof View>;
11
13
  interface RovingFocusItemProps extends PrimitiveSpanProps {
12
14
  tabStopId?: string;
13
- focusable?: boolean;
14
15
  active?: boolean;
15
16
  }
16
- declare const RovingFocusGroupItem: React.ForwardRefExoticComponent<RovingFocusItemProps & {
17
+ declare const RovingFocusGroupItem: import("@tamagui/compose-refs").RefComponent<import("@tamagui/core").TamaguiElement, ScopedProps<RovingFocusItemProps>>;
18
+ type ScopedProps<P> = P & {
17
19
  __scopeRovingFocusGroup?: string;
18
- } & React.RefAttributes<(HTMLElement & import("@tamagui/core").TamaguiElementMethods) | import("react-native").View>>;
20
+ };
19
21
  type Orientation = React.AriaAttributes['aria-orientation'];
20
22
  type Direction = 'ltr' | 'rtl';
21
23
  interface RovingFocusGroupOptions {
@@ -36,12 +38,13 @@ interface RovingFocusGroupOptions {
36
38
  }
37
39
  interface RovingFocusGroupProps extends RovingFocusGroupImplProps {
38
40
  }
39
- declare const RovingFocusGroup: React.ForwardRefExoticComponent<RovingFocusGroupProps & {
41
+ declare const RovingFocusGroup: ((props: RovingFocusGroupProps & {
40
42
  __scopeRovingFocusGroup?: string;
41
- } & React.RefAttributes<(HTMLElement & import("@tamagui/core").TamaguiElementMethods) | import("react-native").View>> & {
42
- Item: React.ForwardRefExoticComponent<RovingFocusItemProps & {
43
- __scopeRovingFocusGroup?: string;
44
- } & React.RefAttributes<(HTMLElement & import("@tamagui/core").TamaguiElementMethods) | import("react-native").View>>;
43
+ } & import("@tamagui/compose-refs").RefProp<import("@tamagui/core").TamaguiElement>) => React.ReactNode) & {
44
+ displayName?: string;
45
+ propTypes?: any;
46
+ } & {
47
+ Item: import("@tamagui/compose-refs").RefComponent<import("@tamagui/core").TamaguiElement, ScopedProps<RovingFocusItemProps>>;
45
48
  };
46
49
  export { RovingFocusGroup, RovingFocusGroupItem };
47
50
  export type { RovingFocusGroupProps, RovingFocusItemProps };
@@ -1 +1 @@
1
- {"version":3,"file":"RovingFocusGroup.d.ts","sourceRoot":"","sources":["../src/RovingFocusGroup.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAQ,IAAI,EAAiC,MAAM,eAAe,CAAA;AAIzE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,KAAK,iBAAiB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,IAAI,CAAC,CAAA;AACpE,UAAU,yBACR,SAAQ,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,uBAAuB;IAC/D,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,wBAAwB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC7D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CACtC;AA+GD,KAAK,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,IAAI,CAAC,CAAA;AACrE,UAAU,oBAAqB,SAAQ,kBAAkB;IACvD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,QAAA,MAAM,oBAAoB;8BAkG4B,MAAM;qHAb1D,CAAA;AAmBF,KAAK,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAA;AAC3D,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK,CAAA;AAE9B,UAAU,uBAAuB;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB;;OAEG;IACH,GAAG,CAAC,EAAE,SAAS,CAAA;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAiBD,UAAU,qBAAsB,SAAQ,yBAAyB;CAAG;AAIpE,QAAA,MAAM,gBAAgB;8BA7CgC,MAAM;;;kCAAN,MAAM;;CAgE3D,CAAA;AAyDD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,CAAA;AAEjD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAA"}
1
+ {"version":3,"file":"RovingFocusGroup.d.ts","sourceRoot":"","sources":["../src/RovingFocusGroup.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,IAAI,EAMJ,KAAK,yBAAyB,EAC/B,MAAM,eAAe,CAAA;AAItB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,KAAK,iBAAiB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,IAAI,CAAC,CAAA;AACpE,MAAM,MAAM,wBAAwB,GAAG,yBAAyB,CAC9D,UAAU,GAAG,eAAe,GAAG,WAAW,EAC1C,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAC1D,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,yBAAyB,CAC7D,eAAe,EACf,KAAK,CAAC,UAAU,CACjB,CAAA;AAED,UAAU,yBACR,SAAQ,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,uBAAuB;IAC/D,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,wBAAwB,CAAC,EAAE,CACzB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,OAAO,EAAE,wBAAwB,KAC9B,IAAI,CAAA;IACT,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAA;CAC1D;AAuID,KAAK,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,IAAI,CAAC,CAAA;AACrE,UAAU,oBAAqB,SAAQ,kBAAkB;IACvD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,QAAA,MAAM,oBAAoB,yHA6GxB,CAAA;AAaF,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG;IAAE,uBAAuB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAM9D,KAAK,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAA;AAC3D,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK,CAAA;AAE9B,UAAU,uBAAuB;IAC/B;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB;;OAEG;IACH,GAAG,CAAC,EAAE,SAAS,CAAA;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAkBD,UAAU,qBAAsB,SAAQ,yBAAyB;CAAG;AAIpE,QAAA,MAAM,gBAAgB;8BA9CgC,MAAM;;;;;;CAiE3D,CAAA;AAyDD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,CAAA;AAEjD,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAA"}
@@ -1,6 +1,12 @@
1
1
  import type { RovingFocusGroupProps, RovingFocusItemProps } from './RovingFocusGroup';
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"> & {
2
+ declare const RovingFocusGroupItem: import("react").FunctionComponent<Omit<import("@tamagui/core").RNTamaguiViewNonStyleProps, keyof import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithFlatVariantValues<{}> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>> & {
3
+ ref?: import("react").Ref<import("@tamagui/core").TamaguiElement> | undefined;
4
+ }> & 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"> & {
5
+ __tama: [import("@tamagui/core").TamaDefer, import("@tamagui/core").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/core").StackStyleBase, {}, import("@tamagui/core").StaticConfigPublic];
6
+ };
7
+ declare const RovingFocusGroup: import("react").FunctionComponent<Omit<import("@tamagui/core").RNTamaguiViewNonStyleProps, keyof import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase> & import("@tamagui/core").WithFlatVariantValues<{}> & import("@tamagui/core").WithShorthands<import("@tamagui/core").WithThemeValues<import("@tamagui/core").StackStyleBase>> & {
8
+ ref?: import("react").Ref<import("@tamagui/core").TamaguiElement> | undefined;
9
+ }> & 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"> & {
4
10
  __tama: [import("@tamagui/core").TamaDefer, import("@tamagui/core").TamaguiElement, import("@tamagui/core").RNTamaguiViewNonStyleProps, import("@tamagui/core").StackStyleBase, {}, import("@tamagui/core").StaticConfigPublic];
5
11
  } & ((props: RovingFocusGroupProps & {
6
12
  children?: any;
@@ -1 +1 @@
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"}
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;;;;CAExB,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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}